]> git.ipfire.org Git - thirdparty/grsecurity-scrape.git/blob - test/grsecurity-3.1-4.3.3-201601051958.patch
Auto commit, 1 new patch{es}.
[thirdparty/grsecurity-scrape.git] / test / grsecurity-3.1-4.3.3-201601051958.patch
1 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
2 index 9de9813..1462492 100644
3 --- a/Documentation/dontdiff
4 +++ b/Documentation/dontdiff
5 @@ -3,9 +3,11 @@
6 *.bc
7 *.bin
8 *.bz2
9 +*.c.[012]*.*
10 *.cis
11 *.cpio
12 *.csp
13 +*.dbg
14 *.dsp
15 *.dvi
16 *.elf
17 @@ -15,6 +17,7 @@
18 *.gcov
19 *.gen.S
20 *.gif
21 +*.gmo
22 *.grep
23 *.grp
24 *.gz
25 @@ -51,14 +54,17 @@
26 *.tab.h
27 *.tex
28 *.ver
29 +*.vim
30 *.xml
31 *.xz
32 *_MODULES
33 +*_reg_safe.h
34 *_vga16.c
35 *~
36 \#*#
37 *.9
38 -.*
39 +.[^g]*
40 +.gen*
41 .*.d
42 .mm
43 53c700_d.h
44 @@ -72,9 +78,11 @@ Image
45 Module.markers
46 Module.symvers
47 PENDING
48 +PERF*
49 SCCS
50 System.map*
51 TAGS
52 +TRACEEVENT-CFLAGS
53 aconf
54 af_names.h
55 aic7*reg.h*
56 @@ -83,6 +91,7 @@ aic7*seq.h*
57 aicasm
58 aicdb.h*
59 altivec*.c
60 +ashldi3.S
61 asm-offsets.h
62 asm_offsets.h
63 autoconf.h*
64 @@ -95,32 +104,40 @@ bounds.h
65 bsetup
66 btfixupprep
67 build
68 +builtin-policy.h
69 bvmlinux
70 bzImage*
71 capability_names.h
72 capflags.c
73 classlist.h*
74 +clut_vga16.c
75 +common-cmds.h
76 comp*.log
77 compile.h*
78 conf
79 config
80 config-*
81 config_data.h*
82 +config.c
83 config.mak
84 config.mak.autogen
85 +config.tmp
86 conmakehash
87 consolemap_deftbl.c*
88 cpustr.h
89 crc32table.h*
90 cscope.*
91 defkeymap.c
92 +devicetable-offsets.h
93 devlist.h*
94 dnotify_test
95 docproc
96 dslm
97 +dtc-lexer.lex.c
98 elf2ecoff
99 elfconfig.h*
100 evergreen_reg_safe.h
101 +exception_policy.conf
102 fixdep
103 flask.h
104 fore200e_mkfirm
105 @@ -128,12 +145,15 @@ fore200e_pca_fw.c*
106 gconf
107 gconf.glade.h
108 gen-devlist
109 +gen-kdb_cmds.c
110 gen_crc32table
111 gen_init_cpio
112 generated
113 genheaders
114 genksyms
115 *_gray256.c
116 +hash
117 +hid-example
118 hpet_example
119 hugepage-mmap
120 hugepage-shm
121 @@ -148,14 +168,14 @@ int32.c
122 int4.c
123 int8.c
124 kallsyms
125 -kconfig
126 +kern_constants.h
127 keywords.c
128 ksym.c*
129 ksym.h*
130 kxgettext
131 lex.c
132 lex.*.c
133 -linux
134 +lib1funcs.S
135 logo_*.c
136 logo_*_clut224.c
137 logo_*_mono.c
138 @@ -165,14 +185,15 @@ mach-types.h
139 machtypes.h
140 map
141 map_hugetlb
142 -media
143 mconf
144 +mdp
145 miboot*
146 mk_elfconfig
147 mkboot
148 mkbugboot
149 mkcpustr
150 mkdep
151 +mkpiggy
152 mkprep
153 mkregtable
154 mktables
155 @@ -188,6 +209,8 @@ oui.c*
156 page-types
157 parse.c
158 parse.h
159 +parse-events*
160 +pasyms.h
161 patches*
162 pca200e.bin
163 pca200e_ecd.bin2
164 @@ -197,6 +220,7 @@ perf-archive
165 piggyback
166 piggy.gzip
167 piggy.S
168 +pmu-*
169 pnmtologo
170 ppc_defs.h*
171 pss_boot.h
172 @@ -206,7 +230,12 @@ r200_reg_safe.h
173 r300_reg_safe.h
174 r420_reg_safe.h
175 r600_reg_safe.h
176 +randomize_layout_hash.h
177 +randomize_layout_seed.h
178 +realmode.lds
179 +realmode.relocs
180 recordmcount
181 +regdb.c
182 relocs
183 rlim_names.h
184 rn50_reg_safe.h
185 @@ -216,8 +245,12 @@ series
186 setup
187 setup.bin
188 setup.elf
189 +signing_key*
190 +size_overflow_hash.h
191 sImage
192 +slabinfo
193 sm_tbl*
194 +sortextable
195 split-include
196 syscalltab.h
197 tables.c
198 @@ -227,6 +260,7 @@ tftpboot.img
199 timeconst.h
200 times.h*
201 trix_boot.h
202 +user_constants.h
203 utsrelease.h*
204 vdso-syms.lds
205 vdso.lds
206 @@ -238,13 +272,17 @@ vdso32.lds
207 vdso32.so.dbg
208 vdso64.lds
209 vdso64.so.dbg
210 +vdsox32.lds
211 +vdsox32-syms.lds
212 version.h*
213 vmImage
214 vmlinux
215 vmlinux-*
216 vmlinux.aout
217 vmlinux.bin.all
218 +vmlinux.bin.bz2
219 vmlinux.lds
220 +vmlinux.relocs
221 vmlinuz
222 voffset.h
223 vsyscall.lds
224 @@ -252,9 +290,12 @@ vsyscall_32.lds
225 wanxlfw.inc
226 uImage
227 unifdef
228 +utsrelease.h
229 wakeup.bin
230 wakeup.elf
231 wakeup.lds
232 +x509*
233 zImage*
234 zconf.hash.c
235 +zconf.lex.c
236 zoffset.h
237 diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
238 index 13f888a..250729b 100644
239 --- a/Documentation/kbuild/makefiles.txt
240 +++ b/Documentation/kbuild/makefiles.txt
241 @@ -23,10 +23,11 @@ This document describes the Linux kernel Makefiles.
242 === 4 Host Program support
243 --- 4.1 Simple Host Program
244 --- 4.2 Composite Host Programs
245 - --- 4.3 Using C++ for host programs
246 - --- 4.4 Controlling compiler options for host programs
247 - --- 4.5 When host programs are actually built
248 - --- 4.6 Using hostprogs-$(CONFIG_FOO)
249 + --- 4.3 Defining shared libraries
250 + --- 4.4 Using C++ for host programs
251 + --- 4.5 Controlling compiler options for host programs
252 + --- 4.6 When host programs are actually built
253 + --- 4.7 Using hostprogs-$(CONFIG_FOO)
254
255 === 5 Kbuild clean infrastructure
256
257 @@ -643,7 +644,29 @@ Both possibilities are described in the following.
258 Finally, the two .o files are linked to the executable, lxdialog.
259 Note: The syntax <executable>-y is not permitted for host-programs.
260
261 ---- 4.3 Using C++ for host programs
262 +--- 4.3 Defining shared libraries
263 +
264 + Objects with extension .so are considered shared libraries, and
265 + will be compiled as position independent objects.
266 + Kbuild provides support for shared libraries, but the usage
267 + shall be restricted.
268 + In the following example the libkconfig.so shared library is used
269 + to link the executable conf.
270 +
271 + Example:
272 + #scripts/kconfig/Makefile
273 + hostprogs-y := conf
274 + conf-objs := conf.o libkconfig.so
275 + libkconfig-objs := expr.o type.o
276 +
277 + Shared libraries always require a corresponding -objs line, and
278 + in the example above the shared library libkconfig is composed by
279 + the two objects expr.o and type.o.
280 + expr.o and type.o will be built as position independent code and
281 + linked as a shared library libkconfig.so. C++ is not supported for
282 + shared libraries.
283 +
284 +--- 4.4 Using C++ for host programs
285
286 kbuild offers support for host programs written in C++. This was
287 introduced solely to support kconfig, and is not recommended
288 @@ -666,7 +689,7 @@ Both possibilities are described in the following.
289 qconf-cxxobjs := qconf.o
290 qconf-objs := check.o
291
292 ---- 4.4 Controlling compiler options for host programs
293 +--- 4.5 Controlling compiler options for host programs
294
295 When compiling host programs, it is possible to set specific flags.
296 The programs will always be compiled utilising $(HOSTCC) passed
297 @@ -694,7 +717,7 @@ Both possibilities are described in the following.
298 When linking qconf, it will be passed the extra option
299 "-L$(QTDIR)/lib".
300
301 ---- 4.5 When host programs are actually built
302 +--- 4.6 When host programs are actually built
303
304 Kbuild will only build host-programs when they are referenced
305 as a prerequisite.
306 @@ -725,7 +748,7 @@ Both possibilities are described in the following.
307 This will tell kbuild to build lxdialog even if not referenced in
308 any rule.
309
310 ---- 4.6 Using hostprogs-$(CONFIG_FOO)
311 +--- 4.7 Using hostprogs-$(CONFIG_FOO)
312
313 A typical pattern in a Kbuild file looks like this:
314
315 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
316 index 22a4b68..0ec4c2a 100644
317 --- a/Documentation/kernel-parameters.txt
318 +++ b/Documentation/kernel-parameters.txt
319 @@ -1246,6 +1246,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
320 Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
321 Default: 1024
322
323 + grsec_proc_gid= [GRKERNSEC_PROC_USERGROUP] Chooses GID to
324 + ignore grsecurity's /proc restrictions
325 +
326 + grsec_sysfs_restrict= Format: 0 | 1
327 + Default: 1
328 + Disables GRKERNSEC_SYSFS_RESTRICT if enabled in config
329 +
330 hashdist= [KNL,NUMA] Large hashes allocated during boot
331 are distributed across NUMA nodes. Defaults on
332 for 64-bit NUMA, off otherwise.
333 @@ -2379,6 +2386,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
334 noexec=on: enable non-executable mappings (default)
335 noexec=off: disable non-executable mappings
336
337 + nopcid [X86-64]
338 + Disable PCID (Process-Context IDentifier) even if it
339 + is supported by the processor.
340 +
341 nosmap [X86]
342 Disable SMAP (Supervisor Mode Access Prevention)
343 even if it is supported by processor.
344 @@ -2677,6 +2688,35 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
345 the specified number of seconds. This is to be used if
346 your oopses keep scrolling off the screen.
347
348 + pax_nouderef [X86] disables UDEREF. Most likely needed under certain
349 + virtualization environments that don't cope well with the
350 + expand down segment used by UDEREF on X86-32 or the frequent
351 + page table updates on X86-64.
352 +
353 + pax_sanitize_slab=
354 + Format: { 0 | 1 | off | fast | full }
355 + Options '0' and '1' are only provided for backward
356 + compatibility, 'off' or 'fast' should be used instead.
357 + 0|off : disable slab object sanitization
358 + 1|fast: enable slab object sanitization excluding
359 + whitelisted slabs (default)
360 + full : sanitize all slabs, even the whitelisted ones
361 +
362 + pax_softmode= 0/1 to disable/enable PaX softmode on boot already.
363 +
364 + pax_extra_latent_entropy
365 + Enable a very simple form of latent entropy extraction
366 + from the first 4GB of memory as the bootmem allocator
367 + passes the memory pages to the buddy allocator.
368 +
369 + pax_size_overflow_report_only
370 + Enables rate-limited logging of size_overflow plugin
371 + violations while disabling killing of the violating
372 + task.
373 +
374 + pax_weakuderef [X86-64] enables the weaker but faster form of UDEREF
375 + when the processor supports PCID.
376 +
377 pcbit= [HW,ISDN]
378
379 pcd. [PARIDE]
380 diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
381 index 6fccb69..60c7c7a 100644
382 --- a/Documentation/sysctl/kernel.txt
383 +++ b/Documentation/sysctl/kernel.txt
384 @@ -41,6 +41,7 @@ show up in /proc/sys/kernel:
385 - kptr_restrict
386 - kstack_depth_to_print [ X86 only ]
387 - l2cr [ PPC only ]
388 +- modify_ldt [ X86 only ]
389 - modprobe ==> Documentation/debugging-modules.txt
390 - modules_disabled
391 - msg_next_id [ sysv ipc ]
392 @@ -391,6 +392,20 @@ This flag controls the L2 cache of G3 processor boards. If
393
394 ==============================================================
395
396 +modify_ldt: (X86 only)
397 +
398 +Enables (1) or disables (0) the modify_ldt syscall. Modifying the LDT
399 +(Local Descriptor Table) may be needed to run a 16-bit or segmented code
400 +such as Dosemu or Wine. This is done via a system call which is not needed
401 +to run portable applications, and which can sometimes be abused to exploit
402 +some weaknesses of the architecture, opening new vulnerabilities.
403 +
404 +This sysctl allows one to increase the system's security by disabling the
405 +system call, or to restore compatibility with specific applications when it
406 +was already disabled.
407 +
408 +==============================================================
409 +
410 modules_disabled:
411
412 A toggle value indicating if modules are allowed to be loaded
413 diff --git a/Makefile b/Makefile
414 index 2070d16..0bc2be1 100644
415 --- a/Makefile
416 +++ b/Makefile
417 @@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
418 HOSTCC = gcc
419 HOSTCXX = g++
420 HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
421 -HOSTCXXFLAGS = -O2
422 +HOSTCFLAGS = -W -Wno-unused-parameter -Wno-missing-field-initializers -fno-delete-null-pointer-checks
423 +HOSTCFLAGS += $(call cc-option, -Wno-empty-body)
424 +HOSTCXXFLAGS = -O2 -Wall -W -Wno-array-bounds
425
426 ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
427 HOSTCFLAGS += -Wno-unused-value -Wno-unused-parameter \
428 @@ -434,8 +436,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
429 # Rules shared between *config targets and build targets
430
431 # Basic helpers built in scripts/
432 -PHONY += scripts_basic
433 -scripts_basic:
434 +PHONY += scripts_basic gcc-plugins
435 +scripts_basic: gcc-plugins
436 $(Q)$(MAKE) $(build)=scripts/basic
437 $(Q)rm -f .tmp_quiet_recordmcount
438
439 @@ -615,6 +617,85 @@ endif
440 # Tell gcc to never replace conditional load with a non-conditional one
441 KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
442
443 +ifndef DISABLE_PAX_PLUGINS
444 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
445 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)")
446 +else
447 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)")
448 +endif
449 +ifneq ($(PLUGINCC),)
450 +ifdef CONFIG_PAX_CONSTIFY_PLUGIN
451 +CONSTIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN
452 +endif
453 +ifdef CONFIG_PAX_MEMORY_STACKLEAK
454 +STACKLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN
455 +STACKLEAK_PLUGIN_CFLAGS += -fplugin-arg-stackleak_plugin-track-lowest-sp=100
456 +endif
457 +ifdef CONFIG_KALLOCSTAT_PLUGIN
458 +KALLOCSTAT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kallocstat_plugin.so
459 +endif
460 +ifdef CONFIG_PAX_KERNEXEC_PLUGIN
461 +KERNEXEC_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kernexec_plugin.so
462 +KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
463 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
464 +endif
465 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT
466 +RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
467 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE
468 +RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
469 +endif
470 +endif
471 +ifdef CONFIG_CHECKER_PLUGIN
472 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
473 +CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
474 +ifdef CONFIG_CHECKER_PLUGIN_USER
475 +CHECKER_PLUGIN_CFLAGS += -fplugin-arg-checker_plugin-user -DCHECKER_PLUGIN_USER
476 +endif
477 +ifdef CONFIG_CHECKER_PLUGIN_CONTEXT
478 +CHECKER_PLUGIN_CFLAGS += -fplugin-arg-checker_plugin-context -DCHECKER_PLUGIN_CONTEXT
479 +endif
480 +endif
481 +endif
482 +COLORIZE_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/colorize_plugin.so
483 +ifdef CONFIG_PAX_SIZE_OVERFLOW
484 +SIZE_OVERFLOW_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/size_overflow_plugin/size_overflow_plugin.so -DSIZE_OVERFLOW_PLUGIN
485 +endif
486 +ifdef CONFIG_PAX_LATENT_ENTROPY
487 +LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN
488 +endif
489 +ifdef CONFIG_PAX_MEMORY_STRUCTLEAK
490 +STRUCTLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/structleak_plugin.so -DSTRUCTLEAK_PLUGIN
491 +endif
492 +INITIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/initify_plugin.so -DINITIFY_PLUGIN
493 +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
494 +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
495 +GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS)
496 +GCC_PLUGINS_CFLAGS += $(INITIFY_PLUGIN_CFLAGS)
497 +GCC_PLUGINS_CFLAGS += $(RANDSTRUCT_PLUGIN_CFLAGS)
498 +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
499 +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN LATENT_ENTROPY_PLUGIN_CFLAGS
500 +ifeq ($(KBUILD_EXTMOD),)
501 +gcc-plugins:
502 + $(Q)$(MAKE) $(build)=tools/gcc
503 +else
504 +gcc-plugins: ;
505 +endif
506 +else
507 +gcc-plugins:
508 +ifeq ($(call cc-ifversion, -ge, 0405, y), y)
509 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
510 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)"
511 +else
512 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)"
513 +endif
514 + $(error Your gcc installation does not support plugins. If the necessary headers for plugin support are missing, they should be installed. On Debian, apt-get install gcc-<ver>-plugin-dev. If you choose to ignore this error and lessen the improvements provided by this patch, re-run make with the DISABLE_PAX_PLUGINS=y argument.))
515 +else
516 + $(Q)echo "warning, your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least"
517 +endif
518 + $(Q)echo "PAX_MEMORY_STACKLEAK, constification, PAX_LATENT_ENTROPY and other features will be less secure. PAX_SIZE_OVERFLOW will not be active."
519 +endif
520 +endif
521 +
522 ifdef CONFIG_READABLE_ASM
523 # Disable optimizations that make assembler listings hard to read.
524 # reorder blocks reorders the control in the function
525 @@ -707,7 +788,7 @@ KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
526 else
527 KBUILD_CFLAGS += -g
528 endif
529 -KBUILD_AFLAGS += -Wa,-gdwarf-2
530 +KBUILD_AFLAGS += -Wa,--gdwarf-2
531 endif
532 ifdef CONFIG_DEBUG_INFO_DWARF4
533 KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
534 @@ -878,7 +959,7 @@ export mod_sign_cmd
535
536
537 ifeq ($(KBUILD_EXTMOD),)
538 -core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
539 +core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ grsecurity/
540
541 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
542 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
543 @@ -928,6 +1009,8 @@ endif
544
545 # The actual objects are generated when descending,
546 # make sure no implicit rule kicks in
547 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
548 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
549 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
550
551 # Handle descending into subdirectories listed in $(vmlinux-dirs)
552 @@ -937,7 +1020,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
553 # Error messages still appears in the original language
554
555 PHONY += $(vmlinux-dirs)
556 -$(vmlinux-dirs): prepare scripts
557 +$(vmlinux-dirs): gcc-plugins prepare scripts
558 $(Q)$(MAKE) $(build)=$@
559
560 define filechk_kernel.release
561 @@ -980,10 +1063,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
562
563 archprepare: archheaders archscripts prepare1 scripts_basic
564
565 +prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
566 +prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
567 prepare0: archprepare FORCE
568 $(Q)$(MAKE) $(build)=.
569
570 # All the preparing..
571 +prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
572 prepare: prepare0
573
574 # Generate some files
575 @@ -1091,6 +1177,8 @@ all: modules
576 # using awk while concatenating to the final file.
577
578 PHONY += modules
579 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
580 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
581 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
582 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
583 @$(kecho) ' Building modules, stage 2.';
584 @@ -1106,7 +1194,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
585
586 # Target to prepare building external modules
587 PHONY += modules_prepare
588 -modules_prepare: prepare scripts
589 +modules_prepare: gcc-plugins prepare scripts
590
591 # Target to install modules
592 PHONY += modules_install
593 @@ -1172,7 +1260,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
594 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
595 signing_key.pem signing_key.priv signing_key.x509 \
596 x509.genkey extra_certificates signing_key.x509.keyid \
597 - signing_key.x509.signer vmlinux-gdb.py
598 + signing_key.x509.signer vmlinux-gdb.py \
599 + tools/gcc/size_overflow_plugin/size_overflow_hash_aux.h \
600 + tools/gcc/size_overflow_plugin/size_overflow_hash.h \
601 + tools/gcc/randomize_layout_seed.h
602
603 # clean - Delete most, but leave enough to build external modules
604 #
605 @@ -1211,7 +1302,7 @@ distclean: mrproper
606 @find $(srctree) $(RCS_FIND_IGNORE) \
607 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
608 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
609 - -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
610 + -o -name '.*.rej' -o -name '*.so' -o -name '*%' -o -name 'core' \) \
611 -type f -print | xargs rm -f
612
613
614 @@ -1377,6 +1468,8 @@ PHONY += $(module-dirs) modules
615 $(module-dirs): crmodverdir $(objtree)/Module.symvers
616 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
617
618 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
619 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
620 modules: $(module-dirs)
621 @$(kecho) ' Building modules, stage 2.';
622 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
623 @@ -1518,17 +1611,21 @@ else
624 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
625 endif
626
627 -%.s: %.c prepare scripts FORCE
628 +%.s: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
629 +%.s: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
630 +%.s: %.c gcc-plugins prepare scripts FORCE
631 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
632 %.i: %.c prepare scripts FORCE
633 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
634 -%.o: %.c prepare scripts FORCE
635 +%.o: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
636 +%.o: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
637 +%.o: %.c gcc-plugins prepare scripts FORCE
638 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
639 %.lst: %.c prepare scripts FORCE
640 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
641 -%.s: %.S prepare scripts FORCE
642 +%.s: %.S gcc-plugins prepare scripts FORCE
643 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
644 -%.o: %.S prepare scripts FORCE
645 +%.o: %.S gcc-plugins prepare scripts FORCE
646 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
647 %.symtypes: %.c prepare scripts FORCE
648 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
649 @@ -1540,11 +1637,15 @@ endif
650 $(build)=$(build-dir)
651 # Make sure the latest headers are built for Documentation
652 Documentation/: headers_install
653 -%/: prepare scripts FORCE
654 +%/: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
655 +%/: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
656 +%/: gcc-plugins prepare scripts FORCE
657 $(cmd_crmodverdir)
658 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
659 $(build)=$(build-dir)
660 -%.ko: prepare scripts FORCE
661 +%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
662 +%.ko: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
663 +%.ko: gcc-plugins prepare scripts FORCE
664 $(cmd_crmodverdir)
665 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
666 $(build)=$(build-dir) $(@:.ko=.o)
667 diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
668 index e8c9560..b585f83 100644
669 --- a/arch/alpha/include/asm/atomic.h
670 +++ b/arch/alpha/include/asm/atomic.h
671 @@ -251,4 +251,14 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
672 #define atomic_dec(v) atomic_sub(1,(v))
673 #define atomic64_dec(v) atomic64_sub(1,(v))
674
675 +#define atomic64_read_unchecked(v) atomic64_read(v)
676 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
677 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
678 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
679 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
680 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
681 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
682 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
683 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
684 +
685 #endif /* _ALPHA_ATOMIC_H */
686 diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
687 index ad368a9..fbe0f25 100644
688 --- a/arch/alpha/include/asm/cache.h
689 +++ b/arch/alpha/include/asm/cache.h
690 @@ -4,19 +4,19 @@
691 #ifndef __ARCH_ALPHA_CACHE_H
692 #define __ARCH_ALPHA_CACHE_H
693
694 +#include <linux/const.h>
695
696 /* Bytes per L1 (data) cache line. */
697 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
698 -# define L1_CACHE_BYTES 64
699 # define L1_CACHE_SHIFT 6
700 #else
701 /* Both EV4 and EV5 are write-through, read-allocate,
702 direct-mapped, physical.
703 */
704 -# define L1_CACHE_BYTES 32
705 # define L1_CACHE_SHIFT 5
706 #endif
707
708 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
709 #define SMP_CACHE_BYTES L1_CACHE_BYTES
710
711 #endif
712 diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
713 index 968d999..d36b2df 100644
714 --- a/arch/alpha/include/asm/elf.h
715 +++ b/arch/alpha/include/asm/elf.h
716 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
717
718 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
719
720 +#ifdef CONFIG_PAX_ASLR
721 +#define PAX_ELF_ET_DYN_BASE (current->personality & ADDR_LIMIT_32BIT ? 0x10000 : 0x120000000UL)
722 +
723 +#define PAX_DELTA_MMAP_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 28)
724 +#define PAX_DELTA_STACK_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 19)
725 +#endif
726 +
727 /* $0 is set by ld.so to a pointer to a function which might be
728 registered using atexit. This provides a mean for the dynamic
729 linker to call DT_FINI functions for shared libraries that have
730 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
731 index aab14a0..b4fa3e7 100644
732 --- a/arch/alpha/include/asm/pgalloc.h
733 +++ b/arch/alpha/include/asm/pgalloc.h
734 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
735 pgd_set(pgd, pmd);
736 }
737
738 +static inline void
739 +pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
740 +{
741 + pgd_populate(mm, pgd, pmd);
742 +}
743 +
744 extern pgd_t *pgd_alloc(struct mm_struct *mm);
745
746 static inline void
747 diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
748 index a9a1195..e9b8417 100644
749 --- a/arch/alpha/include/asm/pgtable.h
750 +++ b/arch/alpha/include/asm/pgtable.h
751 @@ -101,6 +101,17 @@ struct vm_area_struct;
752 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
753 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
754 #define PAGE_READONLY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
755 +
756 +#ifdef CONFIG_PAX_PAGEEXEC
757 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOE)
758 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
759 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
760 +#else
761 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
762 +# define PAGE_COPY_NOEXEC PAGE_COPY
763 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
764 +#endif
765 +
766 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
767
768 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
769 diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
770 index 2fd00b7..cfd5069 100644
771 --- a/arch/alpha/kernel/module.c
772 +++ b/arch/alpha/kernel/module.c
773 @@ -160,7 +160,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
774
775 /* The small sections were sorted to the end of the segment.
776 The following should definitely cover them. */
777 - gp = (u64)me->module_core + me->core_size - 0x8000;
778 + gp = (u64)me->module_core_rw + me->core_size_rw - 0x8000;
779 got = sechdrs[me->arch.gotsecindex].sh_addr;
780
781 for (i = 0; i < n; i++) {
782 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
783 index 6cc0816..3dd424d 100644
784 --- a/arch/alpha/kernel/osf_sys.c
785 +++ b/arch/alpha/kernel/osf_sys.c
786 @@ -1300,10 +1300,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
787 generic version except that we know how to honor ADDR_LIMIT_32BIT. */
788
789 static unsigned long
790 -arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
791 - unsigned long limit)
792 +arch_get_unmapped_area_1(struct file *filp, unsigned long addr, unsigned long len,
793 + unsigned long limit, unsigned long flags)
794 {
795 struct vm_unmapped_area_info info;
796 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
797
798 info.flags = 0;
799 info.length = len;
800 @@ -1311,6 +1312,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
801 info.high_limit = limit;
802 info.align_mask = 0;
803 info.align_offset = 0;
804 + info.threadstack_offset = offset;
805 return vm_unmapped_area(&info);
806 }
807
808 @@ -1343,20 +1345,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
809 merely specific addresses, but regions of memory -- perhaps
810 this feature should be incorporated into all ports? */
811
812 +#ifdef CONFIG_PAX_RANDMMAP
813 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
814 +#endif
815 +
816 if (addr) {
817 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
818 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(addr), len, limit, flags);
819 if (addr != (unsigned long) -ENOMEM)
820 return addr;
821 }
822
823 /* Next, try allocating at TASK_UNMAPPED_BASE. */
824 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(TASK_UNMAPPED_BASE),
825 - len, limit);
826 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(current->mm->mmap_base), len, limit, flags);
827 +
828 if (addr != (unsigned long) -ENOMEM)
829 return addr;
830
831 /* Finally, try allocating in low memory. */
832 - addr = arch_get_unmapped_area_1 (PAGE_SIZE, len, limit);
833 + addr = arch_get_unmapped_area_1 (filp, PAGE_SIZE, len, limit, flags);
834
835 return addr;
836 }
837 diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
838 index 4a905bd..0a4da53 100644
839 --- a/arch/alpha/mm/fault.c
840 +++ b/arch/alpha/mm/fault.c
841 @@ -52,6 +52,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
842 __reload_thread(pcb);
843 }
844
845 +#ifdef CONFIG_PAX_PAGEEXEC
846 +/*
847 + * PaX: decide what to do with offenders (regs->pc = fault address)
848 + *
849 + * returns 1 when task should be killed
850 + * 2 when patched PLT trampoline was detected
851 + * 3 when unpatched PLT trampoline was detected
852 + */
853 +static int pax_handle_fetch_fault(struct pt_regs *regs)
854 +{
855 +
856 +#ifdef CONFIG_PAX_EMUPLT
857 + int err;
858 +
859 + do { /* PaX: patched PLT emulation #1 */
860 + unsigned int ldah, ldq, jmp;
861 +
862 + err = get_user(ldah, (unsigned int *)regs->pc);
863 + err |= get_user(ldq, (unsigned int *)(regs->pc+4));
864 + err |= get_user(jmp, (unsigned int *)(regs->pc+8));
865 +
866 + if (err)
867 + break;
868 +
869 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
870 + (ldq & 0xFFFF0000U) == 0xA77B0000U &&
871 + jmp == 0x6BFB0000U)
872 + {
873 + unsigned long r27, addr;
874 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
875 + unsigned long addrl = ldq | 0xFFFFFFFFFFFF0000UL;
876 +
877 + addr = regs->r27 + ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
878 + err = get_user(r27, (unsigned long *)addr);
879 + if (err)
880 + break;
881 +
882 + regs->r27 = r27;
883 + regs->pc = r27;
884 + return 2;
885 + }
886 + } while (0);
887 +
888 + do { /* PaX: patched PLT emulation #2 */
889 + unsigned int ldah, lda, br;
890 +
891 + err = get_user(ldah, (unsigned int *)regs->pc);
892 + err |= get_user(lda, (unsigned int *)(regs->pc+4));
893 + err |= get_user(br, (unsigned int *)(regs->pc+8));
894 +
895 + if (err)
896 + break;
897 +
898 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
899 + (lda & 0xFFFF0000U) == 0xA77B0000U &&
900 + (br & 0xFFE00000U) == 0xC3E00000U)
901 + {
902 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL;
903 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
904 + unsigned long addrl = lda | 0xFFFFFFFFFFFF0000UL;
905 +
906 + regs->r27 += ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
907 + regs->pc += 12 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
908 + return 2;
909 + }
910 + } while (0);
911 +
912 + do { /* PaX: unpatched PLT emulation */
913 + unsigned int br;
914 +
915 + err = get_user(br, (unsigned int *)regs->pc);
916 +
917 + if (!err && (br & 0xFFE00000U) == 0xC3800000U) {
918 + unsigned int br2, ldq, nop, jmp;
919 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL, resolver;
920 +
921 + addr = regs->pc + 4 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
922 + err = get_user(br2, (unsigned int *)addr);
923 + err |= get_user(ldq, (unsigned int *)(addr+4));
924 + err |= get_user(nop, (unsigned int *)(addr+8));
925 + err |= get_user(jmp, (unsigned int *)(addr+12));
926 + err |= get_user(resolver, (unsigned long *)(addr+16));
927 +
928 + if (err)
929 + break;
930 +
931 + if (br2 == 0xC3600000U &&
932 + ldq == 0xA77B000CU &&
933 + nop == 0x47FF041FU &&
934 + jmp == 0x6B7B0000U)
935 + {
936 + regs->r28 = regs->pc+4;
937 + regs->r27 = addr+16;
938 + regs->pc = resolver;
939 + return 3;
940 + }
941 + }
942 + } while (0);
943 +#endif
944 +
945 + return 1;
946 +}
947 +
948 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
949 +{
950 + unsigned long i;
951 +
952 + printk(KERN_ERR "PAX: bytes at PC: ");
953 + for (i = 0; i < 5; i++) {
954 + unsigned int c;
955 + if (get_user(c, (unsigned int *)pc+i))
956 + printk(KERN_CONT "???????? ");
957 + else
958 + printk(KERN_CONT "%08x ", c);
959 + }
960 + printk("\n");
961 +}
962 +#endif
963
964 /*
965 * This routine handles page faults. It determines the address,
966 @@ -132,8 +250,29 @@ retry:
967 good_area:
968 si_code = SEGV_ACCERR;
969 if (cause < 0) {
970 - if (!(vma->vm_flags & VM_EXEC))
971 + if (!(vma->vm_flags & VM_EXEC)) {
972 +
973 +#ifdef CONFIG_PAX_PAGEEXEC
974 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->pc)
975 + goto bad_area;
976 +
977 + up_read(&mm->mmap_sem);
978 + switch (pax_handle_fetch_fault(regs)) {
979 +
980 +#ifdef CONFIG_PAX_EMUPLT
981 + case 2:
982 + case 3:
983 + return;
984 +#endif
985 +
986 + }
987 + pax_report_fault(regs, (void *)regs->pc, (void *)rdusp());
988 + do_group_exit(SIGKILL);
989 +#else
990 goto bad_area;
991 +#endif
992 +
993 + }
994 } else if (!cause) {
995 /* Allow reads even for write-only mappings */
996 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
997 diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
998 index 78c0621..94cd626 100644
999 --- a/arch/arc/Kconfig
1000 +++ b/arch/arc/Kconfig
1001 @@ -487,6 +487,7 @@ config ARC_DBG_TLB_MISS_COUNT
1002 bool "Profile TLB Misses"
1003 default n
1004 select DEBUG_FS
1005 + depends on !GRKERNSEC_KMEM
1006 help
1007 Counts number of I and D TLB Misses and exports them via Debugfs
1008 The counters can be cleared via Debugfs as well
1009 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
1010 index 639411f..82e6320 100644
1011 --- a/arch/arm/Kconfig
1012 +++ b/arch/arm/Kconfig
1013 @@ -1785,7 +1785,7 @@ config ALIGNMENT_TRAP
1014
1015 config UACCESS_WITH_MEMCPY
1016 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
1017 - depends on MMU
1018 + depends on MMU && !PAX_MEMORY_UDEREF
1019 default y if CPU_FEROCEON
1020 help
1021 Implement faster copy_to_user and clear_user methods for CPU
1022 @@ -2022,6 +2022,7 @@ config KEXEC
1023 depends on (!SMP || PM_SLEEP_SMP)
1024 depends on !CPU_V7M
1025 select KEXEC_CORE
1026 + depends on !GRKERNSEC_KMEM
1027 help
1028 kexec is a system call that implements the ability to shutdown your
1029 current kernel, and to start another kernel. It is like a reboot
1030 diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
1031 index 0cfd7f947..63ed4c0 100644
1032 --- a/arch/arm/Kconfig.debug
1033 +++ b/arch/arm/Kconfig.debug
1034 @@ -7,6 +7,7 @@ config ARM_PTDUMP
1035 depends on DEBUG_KERNEL
1036 depends on MMU
1037 select DEBUG_FS
1038 + depends on !GRKERNSEC_KMEM
1039 ---help---
1040 Say Y here if you want to show the kernel pagetable layout in a
1041 debugfs file. This information is only useful for kernel developers
1042 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
1043 index fe3ef39..60e6ae2 100644
1044 --- a/arch/arm/include/asm/atomic.h
1045 +++ b/arch/arm/include/asm/atomic.h
1046 @@ -18,17 +18,41 @@
1047 #include <asm/barrier.h>
1048 #include <asm/cmpxchg.h>
1049
1050 +#ifdef CONFIG_GENERIC_ATOMIC64
1051 +#include <asm-generic/atomic64.h>
1052 +#endif
1053 +
1054 #define ATOMIC_INIT(i) { (i) }
1055
1056 #ifdef __KERNEL__
1057
1058 +#ifdef CONFIG_THUMB2_KERNEL
1059 +#define REFCOUNT_TRAP_INSN "bkpt 0xf1"
1060 +#else
1061 +#define REFCOUNT_TRAP_INSN "bkpt 0xf103"
1062 +#endif
1063 +
1064 +#define _ASM_EXTABLE(from, to) \
1065 +" .pushsection __ex_table,\"a\"\n"\
1066 +" .align 3\n" \
1067 +" .long " #from ", " #to"\n" \
1068 +" .popsection"
1069 +
1070 /*
1071 * On ARM, ordinary assignment (str instruction) doesn't clear the local
1072 * strex/ldrex monitor on some implementations. The reason we can use it for
1073 * atomic_set() is the clrex or dummy strex done on every exception return.
1074 */
1075 #define atomic_read(v) ACCESS_ONCE((v)->counter)
1076 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
1077 +{
1078 + return ACCESS_ONCE(v->counter);
1079 +}
1080 #define atomic_set(v,i) (((v)->counter) = (i))
1081 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
1082 +{
1083 + v->counter = i;
1084 +}
1085
1086 #if __LINUX_ARM_ARCH__ >= 6
1087
1088 @@ -38,38 +62,64 @@
1089 * to ensure that the update happens.
1090 */
1091
1092 -#define ATOMIC_OP(op, c_op, asm_op) \
1093 -static inline void atomic_##op(int i, atomic_t *v) \
1094 +#ifdef CONFIG_PAX_REFCOUNT
1095 +#define __OVERFLOW_POST \
1096 + " bvc 3f\n" \
1097 + "2: " REFCOUNT_TRAP_INSN "\n"\
1098 + "3:\n"
1099 +#define __OVERFLOW_POST_RETURN \
1100 + " bvc 3f\n" \
1101 +" mov %0, %1\n" \
1102 + "2: " REFCOUNT_TRAP_INSN "\n"\
1103 + "3:\n"
1104 +#define __OVERFLOW_EXTABLE \
1105 + "4:\n" \
1106 + _ASM_EXTABLE(2b, 4b)
1107 +#else
1108 +#define __OVERFLOW_POST
1109 +#define __OVERFLOW_POST_RETURN
1110 +#define __OVERFLOW_EXTABLE
1111 +#endif
1112 +
1113 +#define __ATOMIC_OP(op, suffix, c_op, asm_op, post_op, extable) \
1114 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1115 { \
1116 unsigned long tmp; \
1117 int result; \
1118 \
1119 prefetchw(&v->counter); \
1120 - __asm__ __volatile__("@ atomic_" #op "\n" \
1121 + __asm__ __volatile__("@ atomic_" #op #suffix "\n" \
1122 "1: ldrex %0, [%3]\n" \
1123 " " #asm_op " %0, %0, %4\n" \
1124 + post_op \
1125 " strex %1, %0, [%3]\n" \
1126 " teq %1, #0\n" \
1127 -" bne 1b" \
1128 +" bne 1b\n" \
1129 + extable \
1130 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1131 : "r" (&v->counter), "Ir" (i) \
1132 : "cc"); \
1133 } \
1134
1135 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1136 -static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
1137 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, _unchecked, c_op, asm_op, , )\
1138 + __ATOMIC_OP(op, , c_op, asm_op##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1139 +
1140 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op, post_op, extable) \
1141 +static inline int atomic_##op##_return##suffix##_relaxed(int i, atomic##suffix##_t *v)\
1142 { \
1143 unsigned long tmp; \
1144 int result; \
1145 \
1146 prefetchw(&v->counter); \
1147 \
1148 - __asm__ __volatile__("@ atomic_" #op "_return\n" \
1149 + __asm__ __volatile__("@ atomic_" #op "_return" #suffix "\n" \
1150 "1: ldrex %0, [%3]\n" \
1151 " " #asm_op " %0, %0, %4\n" \
1152 + post_op \
1153 " strex %1, %0, [%3]\n" \
1154 " teq %1, #0\n" \
1155 -" bne 1b" \
1156 +" bne 1b\n" \
1157 + extable \
1158 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1159 : "r" (&v->counter), "Ir" (i) \
1160 : "cc"); \
1161 @@ -78,8 +128,12 @@ static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
1162 }
1163
1164 #define atomic_add_return_relaxed atomic_add_return_relaxed
1165 +#define atomic_add_return_unchecked atomic_add_return_unchecked_relaxed
1166 #define atomic_sub_return_relaxed atomic_sub_return_relaxed
1167
1168 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op, , )\
1169 + __ATOMIC_OP_RETURN(op, , c_op, asm_op##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1170 +
1171 static inline int atomic_cmpxchg_relaxed(atomic_t *ptr, int old, int new)
1172 {
1173 int oldval;
1174 @@ -113,12 +167,24 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1175 __asm__ __volatile__ ("@ atomic_add_unless\n"
1176 "1: ldrex %0, [%4]\n"
1177 " teq %0, %5\n"
1178 -" beq 2f\n"
1179 -" add %1, %0, %6\n"
1180 +" beq 4f\n"
1181 +" adds %1, %0, %6\n"
1182 +
1183 +#ifdef CONFIG_PAX_REFCOUNT
1184 +" bvc 3f\n"
1185 +"2: " REFCOUNT_TRAP_INSN "\n"
1186 +"3:\n"
1187 +#endif
1188 +
1189 " strex %2, %1, [%4]\n"
1190 " teq %2, #0\n"
1191 " bne 1b\n"
1192 -"2:"
1193 +"4:"
1194 +
1195 +#ifdef CONFIG_PAX_REFCOUNT
1196 + _ASM_EXTABLE(2b, 4b)
1197 +#endif
1198 +
1199 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter)
1200 : "r" (&v->counter), "r" (u), "r" (a)
1201 : "cc");
1202 @@ -129,14 +195,36 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1203 return oldval;
1204 }
1205
1206 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
1207 +{
1208 + unsigned long oldval, res;
1209 +
1210 + smp_mb();
1211 +
1212 + do {
1213 + __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
1214 + "ldrex %1, [%3]\n"
1215 + "mov %0, #0\n"
1216 + "teq %1, %4\n"
1217 + "strexeq %0, %5, [%3]\n"
1218 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1219 + : "r" (&ptr->counter), "Ir" (old), "r" (new)
1220 + : "cc");
1221 + } while (res);
1222 +
1223 + smp_mb();
1224 +
1225 + return oldval;
1226 +}
1227 +
1228 #else /* ARM_ARCH_6 */
1229
1230 #ifdef CONFIG_SMP
1231 #error SMP not supported on pre-ARMv6 CPUs
1232 #endif
1233
1234 -#define ATOMIC_OP(op, c_op, asm_op) \
1235 -static inline void atomic_##op(int i, atomic_t *v) \
1236 +#define __ATOMIC_OP(op, suffix, c_op, asm_op) \
1237 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1238 { \
1239 unsigned long flags; \
1240 \
1241 @@ -145,8 +233,11 @@ static inline void atomic_##op(int i, atomic_t *v) \
1242 raw_local_irq_restore(flags); \
1243 } \
1244
1245 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1246 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1247 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, , c_op, asm_op) \
1248 + __ATOMIC_OP(op, _unchecked, c_op, asm_op)
1249 +
1250 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op) \
1251 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1252 { \
1253 unsigned long flags; \
1254 int val; \
1255 @@ -159,6 +250,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1256 return val; \
1257 }
1258
1259 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, , c_op, asm_op)\
1260 + __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op)
1261 +
1262 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1263 {
1264 int ret;
1265 @@ -173,6 +267,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1266 return ret;
1267 }
1268
1269 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
1270 +{
1271 + return atomic_cmpxchg((atomic_t *)v, old, new);
1272 +}
1273 +
1274 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1275 {
1276 int c, old;
1277 @@ -201,16 +300,38 @@ ATOMIC_OP(xor, ^=, eor)
1278
1279 #undef ATOMIC_OPS
1280 #undef ATOMIC_OP_RETURN
1281 +#undef __ATOMIC_OP_RETURN
1282 #undef ATOMIC_OP
1283 +#undef __ATOMIC_OP
1284
1285 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
1286 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
1287 +{
1288 + return xchg_relaxed(&v->counter, new);
1289 +}
1290
1291 #define atomic_inc(v) atomic_add(1, v)
1292 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
1293 +{
1294 + atomic_add_unchecked(1, v);
1295 +}
1296 #define atomic_dec(v) atomic_sub(1, v)
1297 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
1298 +{
1299 + atomic_sub_unchecked(1, v);
1300 +}
1301
1302 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
1303 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
1304 +{
1305 + return atomic_add_return_unchecked(1, v) == 0;
1306 +}
1307 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
1308 #define atomic_inc_return(v) (atomic_add_return(1, v))
1309 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
1310 +{
1311 + return atomic_add_return_unchecked(1, v);
1312 +}
1313 #define atomic_dec_return(v) (atomic_sub_return(1, v))
1314 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
1315
1316 @@ -221,6 +342,14 @@ typedef struct {
1317 long long counter;
1318 } atomic64_t;
1319
1320 +#ifdef CONFIG_PAX_REFCOUNT
1321 +typedef struct {
1322 + long long counter;
1323 +} atomic64_unchecked_t;
1324 +#else
1325 +typedef atomic64_t atomic64_unchecked_t;
1326 +#endif
1327 +
1328 #define ATOMIC64_INIT(i) { (i) }
1329
1330 #ifdef CONFIG_ARM_LPAE
1331 @@ -237,6 +366,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1332 return result;
1333 }
1334
1335 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1336 +{
1337 + long long result;
1338 +
1339 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1340 +" ldrd %0, %H0, [%1]"
1341 + : "=&r" (result)
1342 + : "r" (&v->counter), "Qo" (v->counter)
1343 + );
1344 +
1345 + return result;
1346 +}
1347 +
1348 static inline void atomic64_set(atomic64_t *v, long long i)
1349 {
1350 __asm__ __volatile__("@ atomic64_set\n"
1351 @@ -245,6 +387,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1352 : "r" (&v->counter), "r" (i)
1353 );
1354 }
1355 +
1356 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1357 +{
1358 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1359 +" strd %2, %H2, [%1]"
1360 + : "=Qo" (v->counter)
1361 + : "r" (&v->counter), "r" (i)
1362 + );
1363 +}
1364 #else
1365 static inline long long atomic64_read(const atomic64_t *v)
1366 {
1367 @@ -259,6 +410,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1368 return result;
1369 }
1370
1371 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1372 +{
1373 + long long result;
1374 +
1375 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1376 +" ldrexd %0, %H0, [%1]"
1377 + : "=&r" (result)
1378 + : "r" (&v->counter), "Qo" (v->counter)
1379 + );
1380 +
1381 + return result;
1382 +}
1383 +
1384 static inline void atomic64_set(atomic64_t *v, long long i)
1385 {
1386 long long tmp;
1387 @@ -273,43 +437,73 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1388 : "r" (&v->counter), "r" (i)
1389 : "cc");
1390 }
1391 +
1392 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1393 +{
1394 + long long tmp;
1395 +
1396 + prefetchw(&v->counter);
1397 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1398 +"1: ldrexd %0, %H0, [%2]\n"
1399 +" strexd %0, %3, %H3, [%2]\n"
1400 +" teq %0, #0\n"
1401 +" bne 1b"
1402 + : "=&r" (tmp), "=Qo" (v->counter)
1403 + : "r" (&v->counter), "r" (i)
1404 + : "cc");
1405 +}
1406 #endif
1407
1408 -#define ATOMIC64_OP(op, op1, op2) \
1409 -static inline void atomic64_##op(long long i, atomic64_t *v) \
1410 +#undef __OVERFLOW_POST_RETURN
1411 +#define __OVERFLOW_POST_RETURN \
1412 + " bvc 3f\n" \
1413 +" mov %0, %1\n" \
1414 +" mov %H0, %H1\n" \
1415 + "2: " REFCOUNT_TRAP_INSN "\n"\
1416 + "3:\n"
1417 +
1418 +#define __ATOMIC64_OP(op, suffix, op1, op2, post_op, extable) \
1419 +static inline void atomic64_##op##suffix(long long i, atomic64##suffix##_t *v)\
1420 { \
1421 long long result; \
1422 unsigned long tmp; \
1423 \
1424 prefetchw(&v->counter); \
1425 - __asm__ __volatile__("@ atomic64_" #op "\n" \
1426 + __asm__ __volatile__("@ atomic64_" #op #suffix "\n" \
1427 "1: ldrexd %0, %H0, [%3]\n" \
1428 " " #op1 " %Q0, %Q0, %Q4\n" \
1429 " " #op2 " %R0, %R0, %R4\n" \
1430 + post_op \
1431 " strexd %1, %0, %H0, [%3]\n" \
1432 " teq %1, #0\n" \
1433 -" bne 1b" \
1434 +" bne 1b\n" \
1435 + extable \
1436 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1437 : "r" (&v->counter), "r" (i) \
1438 : "cc"); \
1439 } \
1440
1441 -#define ATOMIC64_OP_RETURN(op, op1, op2) \
1442 +#define ATOMIC64_OP(op, op1, op2) __ATOMIC64_OP(op, _unchecked, op1, op2, , ) \
1443 + __ATOMIC64_OP(op, , op1, op2##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1444 +
1445 +#define __ATOMIC64_OP_RETURN(op, suffix, op1, op2, post_op, extable) \
1446 static inline long long \
1447 -atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
1448 +atomic64_##op##_return##suffix##_relaxed(long long i, atomic64##suffix##_t *v) \
1449 { \
1450 long long result; \
1451 unsigned long tmp; \
1452 \
1453 prefetchw(&v->counter); \
1454 \
1455 - __asm__ __volatile__("@ atomic64_" #op "_return\n" \
1456 + __asm__ __volatile__("@ atomic64_" #op "_return" #suffix "\n" \
1457 "1: ldrexd %0, %H0, [%3]\n" \
1458 " " #op1 " %Q0, %Q0, %Q4\n" \
1459 " " #op2 " %R0, %R0, %R4\n" \
1460 + post_op \
1461 " strexd %1, %0, %H0, [%3]\n" \
1462 " teq %1, #0\n" \
1463 -" bne 1b" \
1464 +" bne 1b\n" \
1465 + extable \
1466 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1467 : "r" (&v->counter), "r" (i) \
1468 : "cc"); \
1469 @@ -317,6 +511,9 @@ atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
1470 return result; \
1471 }
1472
1473 +#define ATOMIC64_OP_RETURN(op, op1, op2) __ATOMIC64_OP_RETURN(op, _unchecked, op1, op2, , ) \
1474 + __ATOMIC64_OP_RETURN(op, , op1, op2##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1475 +
1476 #define ATOMIC64_OPS(op, op1, op2) \
1477 ATOMIC64_OP(op, op1, op2) \
1478 ATOMIC64_OP_RETURN(op, op1, op2)
1479 @@ -325,6 +522,7 @@ ATOMIC64_OPS(add, adds, adc)
1480 ATOMIC64_OPS(sub, subs, sbc)
1481
1482 #define atomic64_add_return_relaxed atomic64_add_return_relaxed
1483 +#define atomic64_add_return_unchecked atomic64_add_return_unchecked_relaxed
1484 #define atomic64_sub_return_relaxed atomic64_sub_return_relaxed
1485
1486 #define atomic64_andnot atomic64_andnot
1487 @@ -336,7 +534,12 @@ ATOMIC64_OP(xor, eor, eor)
1488
1489 #undef ATOMIC64_OPS
1490 #undef ATOMIC64_OP_RETURN
1491 +#undef __ATOMIC64_OP_RETURN
1492 #undef ATOMIC64_OP
1493 +#undef __ATOMIC64_OP
1494 +#undef __OVERFLOW_EXTABLE
1495 +#undef __OVERFLOW_POST_RETURN
1496 +#undef __OVERFLOW_POST
1497
1498 static inline long long
1499 atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
1500 @@ -361,6 +564,33 @@ atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
1501 return oldval;
1502 }
1503 #define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
1504 +#define atomic64_cmpxchg_unchecked atomic64_cmpxchg_unchecked_relaxed
1505 +
1506 +static inline long long
1507 +atomic64_cmpxchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long old,
1508 + long long new)
1509 +{
1510 + long long oldval;
1511 + unsigned long res;
1512 +
1513 + smp_mb();
1514 +
1515 + do {
1516 + __asm__ __volatile__("@ atomic64_cmpxchg_unchecked\n"
1517 + "ldrexd %1, %H1, [%3]\n"
1518 + "mov %0, #0\n"
1519 + "teq %1, %4\n"
1520 + "teqeq %H1, %H4\n"
1521 + "strexdeq %0, %5, %H5, [%3]"
1522 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1523 + : "r" (&ptr->counter), "r" (old), "r" (new)
1524 + : "cc");
1525 + } while (res);
1526 +
1527 + smp_mb();
1528 +
1529 + return oldval;
1530 +}
1531
1532 static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
1533 {
1534 @@ -385,21 +615,35 @@ static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
1535 static inline long long atomic64_dec_if_positive(atomic64_t *v)
1536 {
1537 long long result;
1538 - unsigned long tmp;
1539 + u64 tmp;
1540
1541 smp_mb();
1542 prefetchw(&v->counter);
1543
1544 __asm__ __volatile__("@ atomic64_dec_if_positive\n"
1545 -"1: ldrexd %0, %H0, [%3]\n"
1546 -" subs %Q0, %Q0, #1\n"
1547 -" sbc %R0, %R0, #0\n"
1548 +"1: ldrexd %1, %H1, [%3]\n"
1549 +" subs %Q0, %Q1, #1\n"
1550 +" sbcs %R0, %R1, #0\n"
1551 +
1552 +#ifdef CONFIG_PAX_REFCOUNT
1553 +" bvc 3f\n"
1554 +" mov %Q0, %Q1\n"
1555 +" mov %R0, %R1\n"
1556 +"2: " REFCOUNT_TRAP_INSN "\n"
1557 +"3:\n"
1558 +#endif
1559 +
1560 " teq %R0, #0\n"
1561 -" bmi 2f\n"
1562 +" bmi 4f\n"
1563 " strexd %1, %0, %H0, [%3]\n"
1564 " teq %1, #0\n"
1565 " bne 1b\n"
1566 -"2:"
1567 +"4:\n"
1568 +
1569 +#ifdef CONFIG_PAX_REFCOUNT
1570 + _ASM_EXTABLE(2b, 4b)
1571 +#endif
1572 +
1573 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1574 : "r" (&v->counter)
1575 : "cc");
1576 @@ -423,13 +667,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1577 " teq %0, %5\n"
1578 " teqeq %H0, %H5\n"
1579 " moveq %1, #0\n"
1580 -" beq 2f\n"
1581 +" beq 4f\n"
1582 " adds %Q0, %Q0, %Q6\n"
1583 -" adc %R0, %R0, %R6\n"
1584 +" adcs %R0, %R0, %R6\n"
1585 +
1586 +#ifdef CONFIG_PAX_REFCOUNT
1587 +" bvc 3f\n"
1588 +"2: " REFCOUNT_TRAP_INSN "\n"
1589 +"3:\n"
1590 +#endif
1591 +
1592 " strexd %2, %0, %H0, [%4]\n"
1593 " teq %2, #0\n"
1594 " bne 1b\n"
1595 -"2:"
1596 +"4:\n"
1597 +
1598 +#ifdef CONFIG_PAX_REFCOUNT
1599 + _ASM_EXTABLE(2b, 4b)
1600 +#endif
1601 +
1602 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
1603 : "r" (&v->counter), "r" (u), "r" (a)
1604 : "cc");
1605 @@ -442,10 +698,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1606
1607 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
1608 #define atomic64_inc(v) atomic64_add(1LL, (v))
1609 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1LL, (v))
1610 #define atomic64_inc_return(v) atomic64_add_return(1LL, (v))
1611 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1LL, (v))
1612 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
1613 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
1614 #define atomic64_dec(v) atomic64_sub(1LL, (v))
1615 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1LL, (v))
1616 #define atomic64_dec_return(v) atomic64_sub_return(1LL, (v))
1617 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
1618 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
1619 diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
1620 index 75fe66b..ba3dee4 100644
1621 --- a/arch/arm/include/asm/cache.h
1622 +++ b/arch/arm/include/asm/cache.h
1623 @@ -4,8 +4,10 @@
1624 #ifndef __ASMARM_CACHE_H
1625 #define __ASMARM_CACHE_H
1626
1627 +#include <linux/const.h>
1628 +
1629 #define L1_CACHE_SHIFT CONFIG_ARM_L1_CACHE_SHIFT
1630 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
1631 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
1632
1633 /*
1634 * Memory returned by kmalloc() may be used for DMA, so we must make
1635 @@ -24,5 +26,6 @@
1636 #endif
1637
1638 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
1639 +#define __read_only __attribute__ ((__section__(".data..read_only")))
1640
1641 #endif
1642 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
1643 index d5525bf..e55725d 100644
1644 --- a/arch/arm/include/asm/cacheflush.h
1645 +++ b/arch/arm/include/asm/cacheflush.h
1646 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
1647 void (*dma_unmap_area)(const void *, size_t, int);
1648
1649 void (*dma_flush_range)(const void *, const void *);
1650 -};
1651 +} __no_const;
1652
1653 /*
1654 * Select the calling method
1655 diff --git a/arch/arm/include/asm/checksum.h b/arch/arm/include/asm/checksum.h
1656 index 5233151..87a71fa 100644
1657 --- a/arch/arm/include/asm/checksum.h
1658 +++ b/arch/arm/include/asm/checksum.h
1659 @@ -37,7 +37,19 @@ __wsum
1660 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
1661
1662 __wsum
1663 -csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1664 +__csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1665 +
1666 +static inline __wsum
1667 +csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr)
1668 +{
1669 + __wsum ret;
1670 + pax_open_userland();
1671 + ret = __csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
1672 + pax_close_userland();
1673 + return ret;
1674 +}
1675 +
1676 +
1677
1678 /*
1679 * Fold a partial checksum without adding pseudo headers
1680 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
1681 index 916a274..f988f55 100644
1682 --- a/arch/arm/include/asm/cmpxchg.h
1683 +++ b/arch/arm/include/asm/cmpxchg.h
1684 @@ -105,6 +105,10 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
1685 (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1686 sizeof(*(ptr))); \
1687 })
1688 +#define xchg_unchecked(ptr, x) ({ \
1689 + (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1690 + sizeof(*(ptr))); \
1691 +})
1692
1693 #include <asm-generic/cmpxchg-local.h>
1694
1695 diff --git a/arch/arm/include/asm/cpuidle.h b/arch/arm/include/asm/cpuidle.h
1696 index 0f84249..8e83c55 100644
1697 --- a/arch/arm/include/asm/cpuidle.h
1698 +++ b/arch/arm/include/asm/cpuidle.h
1699 @@ -32,7 +32,7 @@ struct device_node;
1700 struct cpuidle_ops {
1701 int (*suspend)(int cpu, unsigned long arg);
1702 int (*init)(struct device_node *, int cpu);
1703 -};
1704 +} __no_const;
1705
1706 struct of_cpuidle_method {
1707 const char *method;
1708 diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
1709 index fc8ba16..8b84f53 100644
1710 --- a/arch/arm/include/asm/domain.h
1711 +++ b/arch/arm/include/asm/domain.h
1712 @@ -42,7 +42,6 @@
1713 #define DOMAIN_USER 1
1714 #define DOMAIN_IO 0
1715 #endif
1716 -#define DOMAIN_VECTORS 3
1717
1718 /*
1719 * Domain types
1720 @@ -51,9 +50,27 @@
1721 #define DOMAIN_CLIENT 1
1722 #ifdef CONFIG_CPU_USE_DOMAINS
1723 #define DOMAIN_MANAGER 3
1724 +#define DOMAIN_VECTORS 3
1725 #else
1726 +
1727 +#ifdef CONFIG_PAX_KERNEXEC
1728 #define DOMAIN_MANAGER 1
1729 +#define DOMAIN_KERNEXEC 3
1730 +#else
1731 +#define DOMAIN_MANAGER 1
1732 +#endif
1733 +
1734 +#ifdef CONFIG_PAX_MEMORY_UDEREF
1735 +#define DOMAIN_USERCLIENT 0
1736 +#define DOMAIN_UDEREF 1
1737 +#define DOMAIN_VECTORS DOMAIN_KERNEL
1738 +#else
1739 +#define DOMAIN_USERCLIENT 1
1740 +#define DOMAIN_VECTORS DOMAIN_USER
1741 +#endif
1742 +
1743 #endif
1744 +#define DOMAIN_KERNELCLIENT 1
1745
1746 #define domain_mask(dom) ((3) << (2 * (dom)))
1747 #define domain_val(dom,type) ((type) << (2 * (dom)))
1748 @@ -62,7 +79,7 @@
1749 #define DACR_INIT \
1750 (domain_val(DOMAIN_USER, DOMAIN_NOACCESS) | \
1751 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
1752 - domain_val(DOMAIN_IO, DOMAIN_CLIENT) | \
1753 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT) | \
1754 domain_val(DOMAIN_VECTORS, DOMAIN_CLIENT))
1755 #else
1756 #define DACR_INIT \
1757 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
1758 index d2315ff..f60b47b 100644
1759 --- a/arch/arm/include/asm/elf.h
1760 +++ b/arch/arm/include/asm/elf.h
1761 @@ -117,7 +117,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
1762 the loader. We need to make sure that it is out of the way of the program
1763 that it will "exec", and that there is sufficient room for the brk. */
1764
1765 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1766 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1767 +
1768 +#ifdef CONFIG_PAX_ASLR
1769 +#define PAX_ELF_ET_DYN_BASE 0x00008000UL
1770 +
1771 +#define PAX_DELTA_MMAP_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1772 +#define PAX_DELTA_STACK_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1773 +#endif
1774
1775 /* When the program starts, a1 contains a pointer to a function to be
1776 registered with atexit, as per the SVR4 ABI. A value of 0 means we
1777 diff --git a/arch/arm/include/asm/fncpy.h b/arch/arm/include/asm/fncpy.h
1778 index de53547..52b9a28 100644
1779 --- a/arch/arm/include/asm/fncpy.h
1780 +++ b/arch/arm/include/asm/fncpy.h
1781 @@ -81,7 +81,9 @@
1782 BUG_ON((uintptr_t)(dest_buf) & (FNCPY_ALIGN - 1) || \
1783 (__funcp_address & ~(uintptr_t)1 & (FNCPY_ALIGN - 1))); \
1784 \
1785 + pax_open_kernel(); \
1786 memcpy(dest_buf, (void const *)(__funcp_address & ~1), size); \
1787 + pax_close_kernel(); \
1788 flush_icache_range((unsigned long)(dest_buf), \
1789 (unsigned long)(dest_buf) + (size)); \
1790 \
1791 diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
1792 index 6795368..b784325 100644
1793 --- a/arch/arm/include/asm/futex.h
1794 +++ b/arch/arm/include/asm/futex.h
1795 @@ -52,6 +52,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1796 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
1797 return -EFAULT;
1798
1799 + pax_open_userland();
1800 +
1801 smp_mb();
1802 /* Prefetching cannot fault */
1803 prefetchw(uaddr);
1804 @@ -71,6 +73,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1805 uaccess_restore(__ua_flags);
1806 smp_mb();
1807
1808 + pax_close_userland();
1809 +
1810 *uval = val;
1811 return ret;
1812 }
1813 @@ -107,6 +111,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1814 return -EFAULT;
1815
1816 preempt_disable();
1817 + pax_open_userland();
1818 +
1819 __ua_flags = uaccess_save_and_enable();
1820 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
1821 "1: " TUSER(ldr) " %1, [%4]\n"
1822 @@ -119,6 +125,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1823 : "cc", "memory");
1824 uaccess_restore(__ua_flags);
1825
1826 + pax_close_userland();
1827 +
1828 *uval = val;
1829 preempt_enable();
1830
1831 @@ -146,6 +154,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1832 preempt_disable();
1833 #endif
1834 pagefault_disable();
1835 + pax_open_userland();
1836
1837 switch (op) {
1838 case FUTEX_OP_SET:
1839 @@ -167,6 +176,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1840 ret = -ENOSYS;
1841 }
1842
1843 + pax_close_userland();
1844 pagefault_enable();
1845 #ifndef CONFIG_SMP
1846 preempt_enable();
1847 diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h
1848 index 83eb2f7..ed77159 100644
1849 --- a/arch/arm/include/asm/kmap_types.h
1850 +++ b/arch/arm/include/asm/kmap_types.h
1851 @@ -4,6 +4,6 @@
1852 /*
1853 * This is the "bare minimum". AIO seems to require this.
1854 */
1855 -#define KM_TYPE_NR 16
1856 +#define KM_TYPE_NR 17
1857
1858 #endif
1859 diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h
1860 index 9e614a1..3302cca 100644
1861 --- a/arch/arm/include/asm/mach/dma.h
1862 +++ b/arch/arm/include/asm/mach/dma.h
1863 @@ -22,7 +22,7 @@ struct dma_ops {
1864 int (*residue)(unsigned int, dma_t *); /* optional */
1865 int (*setspeed)(unsigned int, dma_t *, int); /* optional */
1866 const char *type;
1867 -};
1868 +} __do_const;
1869
1870 struct dma_struct {
1871 void *addr; /* single DMA address */
1872 diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
1873 index f98c7f3..e5c626d 100644
1874 --- a/arch/arm/include/asm/mach/map.h
1875 +++ b/arch/arm/include/asm/mach/map.h
1876 @@ -23,17 +23,19 @@ struct map_desc {
1877
1878 /* types 0-3 are defined in asm/io.h */
1879 enum {
1880 - MT_UNCACHED = 4,
1881 - MT_CACHECLEAN,
1882 - MT_MINICLEAN,
1883 + MT_UNCACHED_RW = 4,
1884 + MT_CACHECLEAN_RO,
1885 + MT_MINICLEAN_RO,
1886 MT_LOW_VECTORS,
1887 MT_HIGH_VECTORS,
1888 - MT_MEMORY_RWX,
1889 + __MT_MEMORY_RWX,
1890 MT_MEMORY_RW,
1891 - MT_ROM,
1892 - MT_MEMORY_RWX_NONCACHED,
1893 + MT_MEMORY_RX,
1894 + MT_ROM_RX,
1895 + MT_MEMORY_RW_NONCACHED,
1896 + MT_MEMORY_RX_NONCACHED,
1897 MT_MEMORY_RW_DTCM,
1898 - MT_MEMORY_RWX_ITCM,
1899 + MT_MEMORY_RX_ITCM,
1900 MT_MEMORY_RW_SO,
1901 MT_MEMORY_DMA_READY,
1902 };
1903 diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
1904 index c2bf24f..69e437c 100644
1905 --- a/arch/arm/include/asm/outercache.h
1906 +++ b/arch/arm/include/asm/outercache.h
1907 @@ -39,7 +39,7 @@ struct outer_cache_fns {
1908 /* This is an ARM L2C thing */
1909 void (*write_sec)(unsigned long, unsigned);
1910 void (*configure)(const struct l2x0_regs *);
1911 -};
1912 +} __no_const;
1913
1914 extern struct outer_cache_fns outer_cache;
1915
1916 diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
1917 index 4355f0e..cd9168e 100644
1918 --- a/arch/arm/include/asm/page.h
1919 +++ b/arch/arm/include/asm/page.h
1920 @@ -23,6 +23,7 @@
1921
1922 #else
1923
1924 +#include <linux/compiler.h>
1925 #include <asm/glue.h>
1926
1927 /*
1928 @@ -114,7 +115,7 @@ struct cpu_user_fns {
1929 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
1930 void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
1931 unsigned long vaddr, struct vm_area_struct *vma);
1932 -};
1933 +} __no_const;
1934
1935 #ifdef MULTI_USER
1936 extern struct cpu_user_fns cpu_user;
1937 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
1938 index 19cfab5..3f5c7e9 100644
1939 --- a/arch/arm/include/asm/pgalloc.h
1940 +++ b/arch/arm/include/asm/pgalloc.h
1941 @@ -17,6 +17,7 @@
1942 #include <asm/processor.h>
1943 #include <asm/cacheflush.h>
1944 #include <asm/tlbflush.h>
1945 +#include <asm/system_info.h>
1946
1947 #define check_pgt_cache() do { } while (0)
1948
1949 @@ -43,6 +44,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1950 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
1951 }
1952
1953 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1954 +{
1955 + pud_populate(mm, pud, pmd);
1956 +}
1957 +
1958 #else /* !CONFIG_ARM_LPAE */
1959
1960 /*
1961 @@ -51,6 +57,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1962 #define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })
1963 #define pmd_free(mm, pmd) do { } while (0)
1964 #define pud_populate(mm,pmd,pte) BUG()
1965 +#define pud_populate_kernel(mm,pmd,pte) BUG()
1966
1967 #endif /* CONFIG_ARM_LPAE */
1968
1969 @@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
1970 __free_page(pte);
1971 }
1972
1973 +static inline void __section_update(pmd_t *pmdp, unsigned long addr, pmdval_t prot)
1974 +{
1975 +#ifdef CONFIG_ARM_LPAE
1976 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1977 +#else
1978 + if (addr & SECTION_SIZE)
1979 + pmdp[1] = __pmd(pmd_val(pmdp[1]) | prot);
1980 + else
1981 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1982 +#endif
1983 + flush_pmd_entry(pmdp);
1984 +}
1985 +
1986 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
1987 pmdval_t prot)
1988 {
1989 diff --git a/arch/arm/include/asm/pgtable-2level-hwdef.h b/arch/arm/include/asm/pgtable-2level-hwdef.h
1990 index d0131ee..23a0939 100644
1991 --- a/arch/arm/include/asm/pgtable-2level-hwdef.h
1992 +++ b/arch/arm/include/asm/pgtable-2level-hwdef.h
1993 @@ -28,7 +28,7 @@
1994 /*
1995 * - section
1996 */
1997 -#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1998 +#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1999 #define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
2000 #define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
2001 #define PMD_SECT_XN (_AT(pmdval_t, 1) << 4) /* v6 */
2002 @@ -40,6 +40,7 @@
2003 #define PMD_SECT_nG (_AT(pmdval_t, 1) << 17) /* v6 */
2004 #define PMD_SECT_SUPER (_AT(pmdval_t, 1) << 18) /* v6 */
2005 #define PMD_SECT_AF (_AT(pmdval_t, 0))
2006 +#define PMD_SECT_RDONLY (_AT(pmdval_t, 0))
2007
2008 #define PMD_SECT_UNCACHED (_AT(pmdval_t, 0))
2009 #define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
2010 @@ -69,6 +70,7 @@
2011 * - extended small page/tiny page
2012 */
2013 #define PTE_EXT_XN (_AT(pteval_t, 1) << 0) /* v6 */
2014 +#define PTE_EXT_PXN (_AT(pteval_t, 1) << 2) /* v7 */
2015 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4)
2016 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
2017 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
2018 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
2019 index aeddd28..207745c 100644
2020 --- a/arch/arm/include/asm/pgtable-2level.h
2021 +++ b/arch/arm/include/asm/pgtable-2level.h
2022 @@ -127,6 +127,9 @@
2023 #define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
2024 #define L_PTE_NONE (_AT(pteval_t, 1) << 11)
2025
2026 +/* Two-level page tables only have PXN in the PGD, not in the PTE. */
2027 +#define L_PTE_PXN (_AT(pteval_t, 0))
2028 +
2029 /*
2030 * These are the memory types, defined to be compatible with
2031 * pre-ARMv6 CPUs cacheable and bufferable bits: n/a,n/a,C,B
2032 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
2033 index a745a2a..481350a 100644
2034 --- a/arch/arm/include/asm/pgtable-3level.h
2035 +++ b/arch/arm/include/asm/pgtable-3level.h
2036 @@ -80,6 +80,7 @@
2037 #define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
2038 #define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
2039 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
2040 +#define L_PTE_PXN (_AT(pteval_t, 1) << 53) /* PXN */
2041 #define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */
2042 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 55)
2043 #define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56)
2044 @@ -91,10 +92,12 @@
2045 #define L_PMD_SECT_SPLITTING (_AT(pmdval_t, 1) << 56)
2046 #define L_PMD_SECT_NONE (_AT(pmdval_t, 1) << 57)
2047 #define L_PMD_SECT_RDONLY (_AT(pteval_t, 1) << 58)
2048 +#define PMD_SECT_RDONLY PMD_SECT_AP2
2049
2050 /*
2051 * To be used in assembly code with the upper page attributes.
2052 */
2053 +#define L_PTE_PXN_HIGH (1 << (53 - 32))
2054 #define L_PTE_XN_HIGH (1 << (54 - 32))
2055 #define L_PTE_DIRTY_HIGH (1 << (55 - 32))
2056
2057 diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
2058 index f403541..b10df68 100644
2059 --- a/arch/arm/include/asm/pgtable.h
2060 +++ b/arch/arm/include/asm/pgtable.h
2061 @@ -33,6 +33,9 @@
2062 #include <asm/pgtable-2level.h>
2063 #endif
2064
2065 +#define ktla_ktva(addr) (addr)
2066 +#define ktva_ktla(addr) (addr)
2067 +
2068 /*
2069 * Just any arbitrary offset to the start of the vmalloc VM area: the
2070 * current 8MB value just means that there will be a 8MB "hole" after the
2071 @@ -48,6 +51,9 @@
2072 #define LIBRARY_TEXT_START 0x0c000000
2073
2074 #ifndef __ASSEMBLY__
2075 +extern pteval_t __supported_pte_mask;
2076 +extern pmdval_t __supported_pmd_mask;
2077 +
2078 extern void __pte_error(const char *file, int line, pte_t);
2079 extern void __pmd_error(const char *file, int line, pmd_t);
2080 extern void __pgd_error(const char *file, int line, pgd_t);
2081 @@ -56,6 +62,48 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2082 #define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
2083 #define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
2084
2085 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
2086 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
2087 +
2088 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2089 +#include <asm/domain.h>
2090 +#include <linux/thread_info.h>
2091 +#include <linux/preempt.h>
2092 +
2093 +static inline int test_domain(int domain, int domaintype)
2094 +{
2095 + return ((current_thread_info()->cpu_domain) & domain_val(domain, 3)) == domain_val(domain, domaintype);
2096 +}
2097 +#endif
2098 +
2099 +#ifdef CONFIG_PAX_KERNEXEC
2100 +static inline unsigned long pax_open_kernel(void) {
2101 +#ifdef CONFIG_ARM_LPAE
2102 + /* TODO */
2103 +#else
2104 + preempt_disable();
2105 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC));
2106 + modify_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC);
2107 +#endif
2108 + return 0;
2109 +}
2110 +
2111 +static inline unsigned long pax_close_kernel(void) {
2112 +#ifdef CONFIG_ARM_LPAE
2113 + /* TODO */
2114 +#else
2115 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_MANAGER));
2116 + /* DOMAIN_MANAGER = "client" under KERNEXEC */
2117 + modify_domain(DOMAIN_KERNEL, DOMAIN_MANAGER);
2118 + preempt_enable_no_resched();
2119 +#endif
2120 + return 0;
2121 +}
2122 +#else
2123 +static inline unsigned long pax_open_kernel(void) { return 0; }
2124 +static inline unsigned long pax_close_kernel(void) { return 0; }
2125 +#endif
2126 +
2127 /*
2128 * This is the lowest virtual address we can permit any user space
2129 * mapping to be mapped at. This is particularly important for
2130 @@ -75,8 +123,8 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2131 /*
2132 * The pgprot_* and protection_map entries will be fixed up in runtime
2133 * to include the cachable and bufferable bits based on memory policy,
2134 - * as well as any architecture dependent bits like global/ASID and SMP
2135 - * shared mapping bits.
2136 + * as well as any architecture dependent bits like global/ASID, PXN,
2137 + * and SMP shared mapping bits.
2138 */
2139 #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
2140
2141 @@ -307,7 +355,7 @@ static inline pte_t pte_mknexec(pte_t pte)
2142 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
2143 {
2144 const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
2145 - L_PTE_NONE | L_PTE_VALID;
2146 + L_PTE_NONE | L_PTE_VALID | __supported_pte_mask;
2147 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
2148 return pte;
2149 }
2150 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
2151 index ef35665..d69146d 100644
2152 --- a/arch/arm/include/asm/smp.h
2153 +++ b/arch/arm/include/asm/smp.h
2154 @@ -108,7 +108,7 @@ struct smp_operations {
2155 int (*cpu_disable)(unsigned int cpu);
2156 #endif
2157 #endif
2158 -};
2159 +} __no_const;
2160
2161 struct of_cpu_method {
2162 const char *method;
2163 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
2164 index 776757d..5a598df 100644
2165 --- a/arch/arm/include/asm/thread_info.h
2166 +++ b/arch/arm/include/asm/thread_info.h
2167 @@ -143,6 +143,10 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2168 #define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */
2169 #define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */
2170 #define TIF_SECCOMP 7 /* seccomp syscall filtering active */
2171 +/* within 8 bits of TIF_SYSCALL_TRACE
2172 + * to meet flexible second operand requirements
2173 + */
2174 +#define TIF_GRSEC_SETXID 8
2175
2176 #define TIF_NOHZ 12 /* in adaptive nohz mode */
2177 #define TIF_USING_IWMMXT 17
2178 @@ -158,10 +162,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2179 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
2180 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
2181 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
2182 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
2183
2184 /* Checks for any syscall work in entry-common.S */
2185 #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
2186 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
2187 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | _TIF_GRSEC_SETXID)
2188
2189 /*
2190 * Change these and you break ASM code in entry-common.S
2191 diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h
2192 index 5f833f7..76e6644 100644
2193 --- a/arch/arm/include/asm/tls.h
2194 +++ b/arch/arm/include/asm/tls.h
2195 @@ -3,6 +3,7 @@
2196
2197 #include <linux/compiler.h>
2198 #include <asm/thread_info.h>
2199 +#include <asm/pgtable.h>
2200
2201 #ifdef __ASSEMBLY__
2202 #include <asm/asm-offsets.h>
2203 @@ -89,7 +90,9 @@ static inline void set_tls(unsigned long val)
2204 * at 0xffff0fe0 must be used instead. (see
2205 * entry-armv.S for details)
2206 */
2207 + pax_open_kernel();
2208 *((unsigned int *)0xffff0ff0) = val;
2209 + pax_close_kernel();
2210 #endif
2211 }
2212
2213 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
2214 index 8cc85a4..5f24fe2 100644
2215 --- a/arch/arm/include/asm/uaccess.h
2216 +++ b/arch/arm/include/asm/uaccess.h
2217 @@ -18,6 +18,7 @@
2218 #include <asm/domain.h>
2219 #include <asm/unified.h>
2220 #include <asm/compiler.h>
2221 +#include <asm/pgtable.h>
2222
2223 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
2224 #include <asm-generic/uaccess-unaligned.h>
2225 @@ -99,11 +100,38 @@ extern int __put_user_bad(void);
2226 static inline void set_fs(mm_segment_t fs)
2227 {
2228 current_thread_info()->addr_limit = fs;
2229 - modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_CLIENT : DOMAIN_MANAGER);
2230 + modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_KERNELCLIENT : DOMAIN_MANAGER);
2231 }
2232
2233 #define segment_eq(a, b) ((a) == (b))
2234
2235 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
2236 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
2237 +
2238 +static inline void pax_open_userland(void)
2239 +{
2240 +
2241 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2242 + if (segment_eq(get_fs(), USER_DS)) {
2243 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF));
2244 + modify_domain(DOMAIN_USER, DOMAIN_UDEREF);
2245 + }
2246 +#endif
2247 +
2248 +}
2249 +
2250 +static inline void pax_close_userland(void)
2251 +{
2252 +
2253 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2254 + if (segment_eq(get_fs(), USER_DS)) {
2255 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS));
2256 + modify_domain(DOMAIN_USER, DOMAIN_NOACCESS);
2257 + }
2258 +#endif
2259 +
2260 +}
2261 +
2262 #define __addr_ok(addr) ({ \
2263 unsigned long flag; \
2264 __asm__("cmp %2, %0; movlo %0, #0" \
2265 @@ -229,8 +257,12 @@ extern int __get_user_64t_4(void *);
2266
2267 #define get_user(x, p) \
2268 ({ \
2269 + int __e; \
2270 might_fault(); \
2271 - __get_user_check(x, p); \
2272 + pax_open_userland(); \
2273 + __e = __get_user_check((x), (p)); \
2274 + pax_close_userland(); \
2275 + __e; \
2276 })
2277
2278 extern int __put_user_1(void *, unsigned int);
2279 @@ -277,8 +309,12 @@ extern int __put_user_8(void *, unsigned long long);
2280
2281 #define put_user(x, p) \
2282 ({ \
2283 + int __e; \
2284 might_fault(); \
2285 - __put_user_check(x, p); \
2286 + pax_open_userland(); \
2287 + __e = __put_user_check((x), (p)); \
2288 + pax_close_userland(); \
2289 + __e; \
2290 })
2291
2292 #else /* CONFIG_MMU */
2293 @@ -302,6 +338,7 @@ static inline void set_fs(mm_segment_t fs)
2294
2295 #endif /* CONFIG_MMU */
2296
2297 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
2298 #define access_ok(type, addr, size) (__range_ok(addr, size) == 0)
2299
2300 #define user_addr_max() \
2301 @@ -319,13 +356,17 @@ static inline void set_fs(mm_segment_t fs)
2302 #define __get_user(x, ptr) \
2303 ({ \
2304 long __gu_err = 0; \
2305 + pax_open_userland(); \
2306 __get_user_err((x), (ptr), __gu_err); \
2307 + pax_close_userland(); \
2308 __gu_err; \
2309 })
2310
2311 #define __get_user_error(x, ptr, err) \
2312 ({ \
2313 + pax_open_userland(); \
2314 __get_user_err((x), (ptr), err); \
2315 + pax_close_userland(); \
2316 (void) 0; \
2317 })
2318
2319 @@ -392,13 +433,17 @@ do { \
2320 #define __put_user(x, ptr) \
2321 ({ \
2322 long __pu_err = 0; \
2323 + pax_open_userland(); \
2324 __put_user_err((x), (ptr), __pu_err); \
2325 + pax_close_userland(); \
2326 __pu_err; \
2327 })
2328
2329 #define __put_user_error(x, ptr, err) \
2330 ({ \
2331 + pax_open_userland(); \
2332 __put_user_err((x), (ptr), err); \
2333 + pax_close_userland(); \
2334 (void) 0; \
2335 })
2336
2337 @@ -490,35 +535,41 @@ do { \
2338
2339
2340 #ifdef CONFIG_MMU
2341 -extern unsigned long __must_check
2342 +extern unsigned long __must_check __size_overflow(3)
2343 arm_copy_from_user(void *to, const void __user *from, unsigned long n);
2344
2345 -static inline unsigned long __must_check
2346 +static inline unsigned long __must_check __size_overflow(3)
2347 __copy_from_user(void *to, const void __user *from, unsigned long n)
2348 {
2349 - unsigned int __ua_flags = uaccess_save_and_enable();
2350 + unsigned int __ua_flags;
2351 +
2352 + check_object_size(to, n, false);
2353 + __ua_flags = uaccess_save_and_enable();
2354 n = arm_copy_from_user(to, from, n);
2355 uaccess_restore(__ua_flags);
2356 return n;
2357 }
2358
2359 -extern unsigned long __must_check
2360 +extern unsigned long __must_check __size_overflow(3)
2361 arm_copy_to_user(void __user *to, const void *from, unsigned long n);
2362 -extern unsigned long __must_check
2363 +extern unsigned long __must_check __size_overflow(3)
2364 __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2365
2366 static inline unsigned long __must_check
2367 __copy_to_user(void __user *to, const void *from, unsigned long n)
2368 {
2369 - unsigned int __ua_flags = uaccess_save_and_enable();
2370 + unsigned int __ua_flags;
2371 +
2372 + check_object_size(from, n, true);
2373 + __ua_flags = uaccess_save_and_enable();
2374 n = arm_copy_to_user(to, from, n);
2375 uaccess_restore(__ua_flags);
2376 return n;
2377 }
2378
2379 -extern unsigned long __must_check
2380 +extern unsigned long __must_check __size_overflow(2)
2381 arm_clear_user(void __user *addr, unsigned long n);
2382 -extern unsigned long __must_check
2383 +extern unsigned long __must_check __size_overflow(2)
2384 __clear_user_std(void __user *addr, unsigned long n);
2385
2386 static inline unsigned long __must_check
2387 @@ -538,6 +589,9 @@ __clear_user(void __user *addr, unsigned long n)
2388
2389 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
2390 {
2391 + if ((long)n < 0)
2392 + return n;
2393 +
2394 if (access_ok(VERIFY_READ, from, n))
2395 n = __copy_from_user(to, from, n);
2396 else /* security hole - plug it */
2397 @@ -547,6 +601,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
2398
2399 static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
2400 {
2401 + if ((long)n < 0)
2402 + return n;
2403 +
2404 if (access_ok(VERIFY_WRITE, to, n))
2405 n = __copy_to_user(to, from, n);
2406 return n;
2407 diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h
2408 index 5af0ed1..cea83883 100644
2409 --- a/arch/arm/include/uapi/asm/ptrace.h
2410 +++ b/arch/arm/include/uapi/asm/ptrace.h
2411 @@ -92,7 +92,7 @@
2412 * ARMv7 groups of PSR bits
2413 */
2414 #define APSR_MASK 0xf80f0000 /* N, Z, C, V, Q and GE flags */
2415 -#define PSR_ISET_MASK 0x01000010 /* ISA state (J, T) mask */
2416 +#define PSR_ISET_MASK 0x01000020 /* ISA state (J, T) mask */
2417 #define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
2418 #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
2419
2420 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
2421 index f89811f..1d110d1 100644
2422 --- a/arch/arm/kernel/armksyms.c
2423 +++ b/arch/arm/kernel/armksyms.c
2424 @@ -58,7 +58,7 @@ EXPORT_SYMBOL(arm_delay_ops);
2425
2426 /* networking */
2427 EXPORT_SYMBOL(csum_partial);
2428 -EXPORT_SYMBOL(csum_partial_copy_from_user);
2429 +EXPORT_SYMBOL(__csum_partial_copy_from_user);
2430 EXPORT_SYMBOL(csum_partial_copy_nocheck);
2431 EXPORT_SYMBOL(__csum_ipv6_magic);
2432
2433 diff --git a/arch/arm/kernel/cpuidle.c b/arch/arm/kernel/cpuidle.c
2434 index 318da33..373689f 100644
2435 --- a/arch/arm/kernel/cpuidle.c
2436 +++ b/arch/arm/kernel/cpuidle.c
2437 @@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
2438 static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
2439 __used __section(__cpuidle_method_of_table_end);
2440
2441 -static struct cpuidle_ops cpuidle_ops[NR_CPUS];
2442 +static struct cpuidle_ops cpuidle_ops[NR_CPUS] __read_only;
2443
2444 /**
2445 * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
2446 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
2447 index 3e1c26e..9ea61e6 100644
2448 --- a/arch/arm/kernel/entry-armv.S
2449 +++ b/arch/arm/kernel/entry-armv.S
2450 @@ -50,6 +50,87 @@
2451 9997:
2452 .endm
2453
2454 + .macro pax_enter_kernel
2455 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2456 + @ make aligned space for saved DACR
2457 + sub sp, sp, #8
2458 + @ save regs
2459 + stmdb sp!, {r1, r2}
2460 + @ read DACR from cpu_domain into r1
2461 + mov r2, sp
2462 + @ assume 8K pages, since we have to split the immediate in two
2463 + bic r2, r2, #(0x1fc0)
2464 + bic r2, r2, #(0x3f)
2465 + ldr r1, [r2, #TI_CPU_DOMAIN]
2466 + @ store old DACR on stack
2467 + str r1, [sp, #8]
2468 +#ifdef CONFIG_PAX_KERNEXEC
2469 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2470 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2471 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2472 +#endif
2473 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2474 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2475 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2476 +#endif
2477 + @ write r1 to current_thread_info()->cpu_domain
2478 + str r1, [r2, #TI_CPU_DOMAIN]
2479 + @ write r1 to DACR
2480 + mcr p15, 0, r1, c3, c0, 0
2481 + @ instruction sync
2482 + instr_sync
2483 + @ restore regs
2484 + ldmia sp!, {r1, r2}
2485 +#endif
2486 + .endm
2487 +
2488 + .macro pax_open_userland
2489 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2490 + @ save regs
2491 + stmdb sp!, {r0, r1}
2492 + @ read DACR from cpu_domain into r1
2493 + mov r0, sp
2494 + @ assume 8K pages, since we have to split the immediate in two
2495 + bic r0, r0, #(0x1fc0)
2496 + bic r0, r0, #(0x3f)
2497 + ldr r1, [r0, #TI_CPU_DOMAIN]
2498 + @ set current DOMAIN_USER to DOMAIN_CLIENT
2499 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2500 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2501 + @ write r1 to current_thread_info()->cpu_domain
2502 + str r1, [r0, #TI_CPU_DOMAIN]
2503 + @ write r1 to DACR
2504 + mcr p15, 0, r1, c3, c0, 0
2505 + @ instruction sync
2506 + instr_sync
2507 + @ restore regs
2508 + ldmia sp!, {r0, r1}
2509 +#endif
2510 + .endm
2511 +
2512 + .macro pax_close_userland
2513 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2514 + @ save regs
2515 + stmdb sp!, {r0, r1}
2516 + @ read DACR from cpu_domain into r1
2517 + mov r0, sp
2518 + @ assume 8K pages, since we have to split the immediate in two
2519 + bic r0, r0, #(0x1fc0)
2520 + bic r0, r0, #(0x3f)
2521 + ldr r1, [r0, #TI_CPU_DOMAIN]
2522 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2523 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2524 + @ write r1 to current_thread_info()->cpu_domain
2525 + str r1, [r0, #TI_CPU_DOMAIN]
2526 + @ write r1 to DACR
2527 + mcr p15, 0, r1, c3, c0, 0
2528 + @ instruction sync
2529 + instr_sync
2530 + @ restore regs
2531 + ldmia sp!, {r0, r1}
2532 +#endif
2533 + .endm
2534 +
2535 .macro pabt_helper
2536 @ PABORT handler takes pt_regs in r2, fault address in r4 and psr in r5
2537 #ifdef MULTI_PABORT
2538 @@ -92,11 +173,15 @@
2539 * Invalid mode handlers
2540 */
2541 .macro inv_entry, reason
2542 +
2543 + pax_enter_kernel
2544 +
2545 sub sp, sp, #S_FRAME_SIZE
2546 ARM( stmib sp, {r1 - lr} )
2547 THUMB( stmia sp, {r0 - r12} )
2548 THUMB( str sp, [sp, #S_SP] )
2549 THUMB( str lr, [sp, #S_LR] )
2550 +
2551 mov r1, #\reason
2552 .endm
2553
2554 @@ -152,6 +237,9 @@ ENDPROC(__und_invalid)
2555 .macro svc_entry, stack_hole=0, trace=1, uaccess=1
2556 UNWIND(.fnstart )
2557 UNWIND(.save {r0 - pc} )
2558 +
2559 + pax_enter_kernel
2560 +
2561 sub sp, sp, #(S_FRAME_SIZE + 8 + \stack_hole - 4)
2562 #ifdef CONFIG_THUMB2_KERNEL
2563 SPFIX( str r0, [sp] ) @ temporarily saved
2564 @@ -167,7 +255,12 @@ ENDPROC(__und_invalid)
2565 ldmia r0, {r3 - r5}
2566 add r7, sp, #S_SP - 4 @ here for interlock avoidance
2567 mov r6, #-1 @ "" "" "" ""
2568 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2569 + @ offset sp by 8 as done in pax_enter_kernel
2570 + add r2, sp, #(S_FRAME_SIZE + \stack_hole + 4)
2571 +#else
2572 add r2, sp, #(S_FRAME_SIZE + 8 + \stack_hole - 4)
2573 +#endif
2574 SPFIX( addeq r2, r2, #4 )
2575 str r3, [sp, #-4]! @ save the "real" r0 copied
2576 @ from the exception stack
2577 @@ -376,6 +469,9 @@ ENDPROC(__fiq_abt)
2578 .macro usr_entry, trace=1, uaccess=1
2579 UNWIND(.fnstart )
2580 UNWIND(.cantunwind ) @ don't unwind the user space
2581 +
2582 + pax_enter_kernel_user
2583 +
2584 sub sp, sp, #S_FRAME_SIZE
2585 ARM( stmib sp, {r1 - r12} )
2586 THUMB( stmia sp, {r0 - r12} )
2587 @@ -490,7 +586,9 @@ __und_usr:
2588 tst r3, #PSR_T_BIT @ Thumb mode?
2589 bne __und_usr_thumb
2590 sub r4, r2, #4 @ ARM instr at LR - 4
2591 + pax_open_userland
2592 1: ldrt r0, [r4]
2593 + pax_close_userland
2594 ARM_BE8(rev r0, r0) @ little endian instruction
2595
2596 uaccess_disable ip
2597 @@ -526,11 +624,15 @@ __und_usr_thumb:
2598 */
2599 .arch armv6t2
2600 #endif
2601 + pax_open_userland
2602 2: ldrht r5, [r4]
2603 + pax_close_userland
2604 ARM_BE8(rev16 r5, r5) @ little endian instruction
2605 cmp r5, #0xe800 @ 32bit instruction if xx != 0
2606 blo __und_usr_fault_16_pan @ 16bit undefined instruction
2607 + pax_open_userland
2608 3: ldrht r0, [r2]
2609 + pax_close_userland
2610 ARM_BE8(rev16 r0, r0) @ little endian instruction
2611 uaccess_disable ip
2612 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
2613 @@ -561,7 +663,8 @@ ENDPROC(__und_usr)
2614 */
2615 .pushsection .text.fixup, "ax"
2616 .align 2
2617 -4: str r4, [sp, #S_PC] @ retry current instruction
2618 +4: pax_close_userland
2619 + str r4, [sp, #S_PC] @ retry current instruction
2620 ret r9
2621 .popsection
2622 .pushsection __ex_table,"a"
2623 @@ -783,7 +886,7 @@ ENTRY(__switch_to)
2624 THUMB( str lr, [ip], #4 )
2625 ldr r4, [r2, #TI_TP_VALUE]
2626 ldr r5, [r2, #TI_TP_VALUE + 4]
2627 -#ifdef CONFIG_CPU_USE_DOMAINS
2628 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2629 mrc p15, 0, r6, c3, c0, 0 @ Get domain register
2630 str r6, [r1, #TI_CPU_DOMAIN] @ Save old domain register
2631 ldr r6, [r2, #TI_CPU_DOMAIN]
2632 @@ -794,7 +897,7 @@ ENTRY(__switch_to)
2633 ldr r8, =__stack_chk_guard
2634 ldr r7, [r7, #TSK_STACK_CANARY]
2635 #endif
2636 -#ifdef CONFIG_CPU_USE_DOMAINS
2637 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2638 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
2639 #endif
2640 mov r5, r0
2641 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
2642 index 30a7228..d071196 100644
2643 --- a/arch/arm/kernel/entry-common.S
2644 +++ b/arch/arm/kernel/entry-common.S
2645 @@ -11,18 +11,46 @@
2646 #include <asm/assembler.h>
2647 #include <asm/unistd.h>
2648 #include <asm/ftrace.h>
2649 +#include <asm/domain.h>
2650 #include <asm/unwind.h>
2651
2652 +#include "entry-header.S"
2653 +
2654 #ifdef CONFIG_NEED_RET_TO_USER
2655 #include <mach/entry-macro.S>
2656 #else
2657 .macro arch_ret_to_user, tmp1, tmp2
2658 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2659 + @ save regs
2660 + stmdb sp!, {r1, r2}
2661 + @ read DACR from cpu_domain into r1
2662 + mov r2, sp
2663 + @ assume 8K pages, since we have to split the immediate in two
2664 + bic r2, r2, #(0x1fc0)
2665 + bic r2, r2, #(0x3f)
2666 + ldr r1, [r2, #TI_CPU_DOMAIN]
2667 +#ifdef CONFIG_PAX_KERNEXEC
2668 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2669 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2670 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2671 +#endif
2672 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2673 + @ set current DOMAIN_USER to DOMAIN_UDEREF
2674 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2675 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2676 +#endif
2677 + @ write r1 to current_thread_info()->cpu_domain
2678 + str r1, [r2, #TI_CPU_DOMAIN]
2679 + @ write r1 to DACR
2680 + mcr p15, 0, r1, c3, c0, 0
2681 + @ instruction sync
2682 + instr_sync
2683 + @ restore regs
2684 + ldmia sp!, {r1, r2}
2685 +#endif
2686 .endm
2687 #endif
2688
2689 -#include "entry-header.S"
2690 -
2691 -
2692 .align 5
2693 #if !(IS_ENABLED(CONFIG_TRACE_IRQFLAGS) || IS_ENABLED(CONFIG_CONTEXT_TRACKING))
2694 /*
2695 @@ -36,7 +64,9 @@ ret_fast_syscall:
2696 UNWIND(.cantunwind )
2697 disable_irq_notrace @ disable interrupts
2698 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
2699 - tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
2700 + tst r1, #_TIF_SYSCALL_WORK
2701 + bne fast_work_pending
2702 + tst r1, #_TIF_WORK_MASK
2703 bne fast_work_pending
2704
2705 /* perform architecture specific actions before user return */
2706 @@ -62,7 +92,9 @@ ret_fast_syscall:
2707 str r0, [sp, #S_R0 + S_OFF]! @ save returned r0
2708 disable_irq_notrace @ disable interrupts
2709 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
2710 - tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
2711 + tst r1, #_TIF_SYSCALL_WORK
2712 + bne __sys_trace_return_nosave
2713 + tst r1, #_TIF_WORK_MASK
2714 beq no_work_pending
2715 UNWIND(.fnend )
2716 ENDPROC(ret_fast_syscall)
2717 @@ -199,6 +231,12 @@ ENTRY(vector_swi)
2718
2719 uaccess_disable tbl
2720
2721 + /*
2722 + * do this here to avoid a performance hit of wrapping the code above
2723 + * that directly dereferences userland to parse the SWI instruction
2724 + */
2725 + pax_enter_kernel_user
2726 +
2727 adr tbl, sys_call_table @ load syscall table pointer
2728
2729 #if defined(CONFIG_OABI_COMPAT)
2730 diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
2731 index 0d22ad2..d776aa0 100644
2732 --- a/arch/arm/kernel/entry-header.S
2733 +++ b/arch/arm/kernel/entry-header.S
2734 @@ -196,6 +196,59 @@
2735 msr cpsr_c, \rtemp @ switch back to the SVC mode
2736 .endm
2737
2738 + .macro pax_enter_kernel_user
2739 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2740 + @ save regs
2741 + stmdb sp!, {r0, r1}
2742 + @ read DACR from cpu_domain into r1
2743 + mov r0, sp
2744 + @ assume 8K pages, since we have to split the immediate in two
2745 + bic r0, r0, #(0x1fc0)
2746 + bic r0, r0, #(0x3f)
2747 + ldr r1, [r0, #TI_CPU_DOMAIN]
2748 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2749 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2750 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2751 +#endif
2752 +#ifdef CONFIG_PAX_KERNEXEC
2753 + @ set current DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2754 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2755 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2756 +#endif
2757 + @ write r1 to current_thread_info()->cpu_domain
2758 + str r1, [r0, #TI_CPU_DOMAIN]
2759 + @ write r1 to DACR
2760 + mcr p15, 0, r1, c3, c0, 0
2761 + @ instruction sync
2762 + instr_sync
2763 + @ restore regs
2764 + ldmia sp!, {r0, r1}
2765 +#endif
2766 + .endm
2767 +
2768 + .macro pax_exit_kernel
2769 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2770 + @ save regs
2771 + stmdb sp!, {r0, r1}
2772 + @ read old DACR from stack into r1
2773 + ldr r1, [sp, #(8 + S_SP)]
2774 + sub r1, r1, #8
2775 + ldr r1, [r1]
2776 +
2777 + @ write r1 to current_thread_info()->cpu_domain
2778 + mov r0, sp
2779 + @ assume 8K pages, since we have to split the immediate in two
2780 + bic r0, r0, #(0x1fc0)
2781 + bic r0, r0, #(0x3f)
2782 + str r1, [r0, #TI_CPU_DOMAIN]
2783 + @ write r1 to DACR
2784 + mcr p15, 0, r1, c3, c0, 0
2785 + @ instruction sync
2786 + instr_sync
2787 + @ restore regs
2788 + ldmia sp!, {r0, r1}
2789 +#endif
2790 + .endm
2791
2792 .macro svc_exit, rpsr, irq = 0
2793 .if \irq != 0
2794 @@ -217,6 +270,8 @@
2795 .endif
2796 uaccess_restore
2797
2798 + pax_exit_kernel
2799 +
2800 #ifndef CONFIG_THUMB2_KERNEL
2801 @ ARM mode SVC restore
2802 msr spsr_cxsf, \rpsr
2803 diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
2804 index 059c3da..8e45cfc 100644
2805 --- a/arch/arm/kernel/fiq.c
2806 +++ b/arch/arm/kernel/fiq.c
2807 @@ -95,7 +95,10 @@ void set_fiq_handler(void *start, unsigned int length)
2808 void *base = vectors_page;
2809 unsigned offset = FIQ_OFFSET;
2810
2811 + pax_open_kernel();
2812 memcpy(base + offset, start, length);
2813 + pax_close_kernel();
2814 +
2815 if (!cache_is_vipt_nonaliasing())
2816 flush_icache_range((unsigned long)base + offset, offset +
2817 length);
2818 diff --git a/arch/arm/kernel/module-plts.c b/arch/arm/kernel/module-plts.c
2819 index 097e2e2..3927085 100644
2820 --- a/arch/arm/kernel/module-plts.c
2821 +++ b/arch/arm/kernel/module-plts.c
2822 @@ -30,17 +30,12 @@ struct plt_entries {
2823 u32 lit[PLT_ENT_COUNT];
2824 };
2825
2826 -static bool in_init(const struct module *mod, u32 addr)
2827 -{
2828 - return addr - (u32)mod->module_init < mod->init_size;
2829 -}
2830 -
2831 u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
2832 {
2833 struct plt_entries *plt, *plt_end;
2834 int c, *count;
2835
2836 - if (in_init(mod, loc)) {
2837 + if (within_module_init(loc, mod)) {
2838 plt = (void *)mod->arch.init_plt->sh_addr;
2839 plt_end = (void *)plt + mod->arch.init_plt->sh_size;
2840 count = &mod->arch.init_plt_count;
2841 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
2842 index efdddcb..35e58f6 100644
2843 --- a/arch/arm/kernel/module.c
2844 +++ b/arch/arm/kernel/module.c
2845 @@ -38,17 +38,47 @@
2846 #endif
2847
2848 #ifdef CONFIG_MMU
2849 -void *module_alloc(unsigned long size)
2850 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
2851 {
2852 - void *p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2853 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2854 + void *p;
2855 +
2856 + if (!size || (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) && PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR))
2857 + return NULL;
2858 +
2859 + p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2860 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2861 __builtin_return_address(0));
2862 if (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || p)
2863 return p;
2864 return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
2865 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2866 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2867 __builtin_return_address(0));
2868 }
2869 +
2870 +void *module_alloc(unsigned long size)
2871 +{
2872 +
2873 +#ifdef CONFIG_PAX_KERNEXEC
2874 + return __module_alloc(size, PAGE_KERNEL);
2875 +#else
2876 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2877 +#endif
2878 +
2879 +}
2880 +
2881 +#ifdef CONFIG_PAX_KERNEXEC
2882 +void module_memfree_exec(void *module_region)
2883 +{
2884 + module_memfree(module_region);
2885 +}
2886 +EXPORT_SYMBOL(module_memfree_exec);
2887 +
2888 +void *module_alloc_exec(unsigned long size)
2889 +{
2890 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2891 +}
2892 +EXPORT_SYMBOL(module_alloc_exec);
2893 +#endif
2894 #endif
2895
2896 int
2897 diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c
2898 index 69bda1a..755113a 100644
2899 --- a/arch/arm/kernel/patch.c
2900 +++ b/arch/arm/kernel/patch.c
2901 @@ -66,6 +66,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2902 else
2903 __acquire(&patch_lock);
2904
2905 + pax_open_kernel();
2906 if (thumb2 && __opcode_is_thumb16(insn)) {
2907 *(u16 *)waddr = __opcode_to_mem_thumb16(insn);
2908 size = sizeof(u16);
2909 @@ -97,6 +98,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2910 *(u32 *)waddr = insn;
2911 size = sizeof(u32);
2912 }
2913 + pax_close_kernel();
2914
2915 if (waddr != addr) {
2916 flush_kernel_vmap_range(waddr, twopage ? size / 2 : size);
2917 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2918 index 7a7c4ce..bc91093 100644
2919 --- a/arch/arm/kernel/process.c
2920 +++ b/arch/arm/kernel/process.c
2921 @@ -98,8 +98,8 @@ void __show_regs(struct pt_regs *regs)
2922
2923 show_regs_print_info(KERN_DEFAULT);
2924
2925 - print_symbol("PC is at %s\n", instruction_pointer(regs));
2926 - print_symbol("LR is at %s\n", regs->ARM_lr);
2927 + printk("PC is at %pA\n", (void *)instruction_pointer(regs));
2928 + printk("LR is at %pA\n", (void *)regs->ARM_lr);
2929 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2930 "sp : %08lx ip : %08lx fp : %08lx\n",
2931 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2932 @@ -309,12 +309,6 @@ unsigned long get_wchan(struct task_struct *p)
2933 return 0;
2934 }
2935
2936 -unsigned long arch_randomize_brk(struct mm_struct *mm)
2937 -{
2938 - unsigned long range_end = mm->brk + 0x02000000;
2939 - return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
2940 -}
2941 -
2942 #ifdef CONFIG_MMU
2943 #ifdef CONFIG_KUSER_HELPERS
2944 /*
2945 @@ -330,7 +324,7 @@ static struct vm_area_struct gate_vma = {
2946
2947 static int __init gate_vma_init(void)
2948 {
2949 - gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
2950 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
2951 return 0;
2952 }
2953 arch_initcall(gate_vma_init);
2954 @@ -359,91 +353,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
2955 return is_gate_vma(vma) ? "[vectors]" : NULL;
2956 }
2957
2958 -/* If possible, provide a placement hint at a random offset from the
2959 - * stack for the sigpage and vdso pages.
2960 - */
2961 -static unsigned long sigpage_addr(const struct mm_struct *mm,
2962 - unsigned int npages)
2963 -{
2964 - unsigned long offset;
2965 - unsigned long first;
2966 - unsigned long last;
2967 - unsigned long addr;
2968 - unsigned int slots;
2969 -
2970 - first = PAGE_ALIGN(mm->start_stack);
2971 -
2972 - last = TASK_SIZE - (npages << PAGE_SHIFT);
2973 -
2974 - /* No room after stack? */
2975 - if (first > last)
2976 - return 0;
2977 -
2978 - /* Just enough room? */
2979 - if (first == last)
2980 - return first;
2981 -
2982 - slots = ((last - first) >> PAGE_SHIFT) + 1;
2983 -
2984 - offset = get_random_int() % slots;
2985 -
2986 - addr = first + (offset << PAGE_SHIFT);
2987 -
2988 - return addr;
2989 -}
2990 -
2991 -static struct page *signal_page;
2992 -extern struct page *get_signal_page(void);
2993 -
2994 -static const struct vm_special_mapping sigpage_mapping = {
2995 - .name = "[sigpage]",
2996 - .pages = &signal_page,
2997 -};
2998 -
2999 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
3000 {
3001 struct mm_struct *mm = current->mm;
3002 - struct vm_area_struct *vma;
3003 - unsigned long npages;
3004 - unsigned long addr;
3005 - unsigned long hint;
3006 - int ret = 0;
3007 -
3008 - if (!signal_page)
3009 - signal_page = get_signal_page();
3010 - if (!signal_page)
3011 - return -ENOMEM;
3012 -
3013 - npages = 1; /* for sigpage */
3014 - npages += vdso_total_pages;
3015
3016 down_write(&mm->mmap_sem);
3017 - hint = sigpage_addr(mm, npages);
3018 - addr = get_unmapped_area(NULL, hint, npages << PAGE_SHIFT, 0, 0);
3019 - if (IS_ERR_VALUE(addr)) {
3020 - ret = addr;
3021 - goto up_fail;
3022 - }
3023 -
3024 - vma = _install_special_mapping(mm, addr, PAGE_SIZE,
3025 - VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
3026 - &sigpage_mapping);
3027 -
3028 - if (IS_ERR(vma)) {
3029 - ret = PTR_ERR(vma);
3030 - goto up_fail;
3031 - }
3032 -
3033 - mm->context.sigpage = addr;
3034 -
3035 - /* Unlike the sigpage, failure to install the vdso is unlikely
3036 - * to be fatal to the process, so no error check needed
3037 - * here.
3038 - */
3039 - arm_install_vdso(mm, addr + PAGE_SIZE);
3040 -
3041 - up_fail:
3042 + mm->context.sigpage = (PAGE_OFFSET + (get_random_int() % 0x3FFEFFE0)) & 0xFFFFFFFC;
3043 up_write(&mm->mmap_sem);
3044 - return ret;
3045 + return 0;
3046 }
3047 #endif
3048 diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
3049 index ef9119f..31995a3 100644
3050 --- a/arch/arm/kernel/ptrace.c
3051 +++ b/arch/arm/kernel/ptrace.c
3052 @@ -928,10 +928,19 @@ static void tracehook_report_syscall(struct pt_regs *regs,
3053 regs->ARM_ip = ip;
3054 }
3055
3056 +#ifdef CONFIG_GRKERNSEC_SETXID
3057 +extern void gr_delayed_cred_worker(void);
3058 +#endif
3059 +
3060 asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
3061 {
3062 current_thread_info()->syscall = scno;
3063
3064 +#ifdef CONFIG_GRKERNSEC_SETXID
3065 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
3066 + gr_delayed_cred_worker();
3067 +#endif
3068 +
3069 /* Do the secure computing check first; failures should be fast. */
3070 #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
3071 if (secure_computing() == -1)
3072 diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
3073 index 3826935..8ed63ed 100644
3074 --- a/arch/arm/kernel/reboot.c
3075 +++ b/arch/arm/kernel/reboot.c
3076 @@ -122,6 +122,7 @@ void machine_power_off(void)
3077
3078 if (pm_power_off)
3079 pm_power_off();
3080 + while (1);
3081 }
3082
3083 /*
3084 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
3085 index 20edd34..e18ac81 100644
3086 --- a/arch/arm/kernel/setup.c
3087 +++ b/arch/arm/kernel/setup.c
3088 @@ -110,21 +110,23 @@ EXPORT_SYMBOL(elf_hwcap);
3089 unsigned int elf_hwcap2 __read_mostly;
3090 EXPORT_SYMBOL(elf_hwcap2);
3091
3092 +pteval_t __supported_pte_mask __read_only;
3093 +pmdval_t __supported_pmd_mask __read_only;
3094
3095 #ifdef MULTI_CPU
3096 -struct processor processor __read_mostly;
3097 +struct processor processor __read_only;
3098 #endif
3099 #ifdef MULTI_TLB
3100 -struct cpu_tlb_fns cpu_tlb __read_mostly;
3101 +struct cpu_tlb_fns cpu_tlb __read_only;
3102 #endif
3103 #ifdef MULTI_USER
3104 -struct cpu_user_fns cpu_user __read_mostly;
3105 +struct cpu_user_fns cpu_user __read_only;
3106 #endif
3107 #ifdef MULTI_CACHE
3108 -struct cpu_cache_fns cpu_cache __read_mostly;
3109 +struct cpu_cache_fns cpu_cache __read_only;
3110 #endif
3111 #ifdef CONFIG_OUTER_CACHE
3112 -struct outer_cache_fns outer_cache __read_mostly;
3113 +struct outer_cache_fns outer_cache __read_only;
3114 EXPORT_SYMBOL(outer_cache);
3115 #endif
3116
3117 @@ -255,9 +257,13 @@ static int __get_cpu_architecture(void)
3118 * Register 0 and check for VMSAv7 or PMSAv7 */
3119 unsigned int mmfr0 = read_cpuid_ext(CPUID_EXT_MMFR0);
3120 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
3121 - (mmfr0 & 0x000000f0) >= 0x00000030)
3122 + (mmfr0 & 0x000000f0) >= 0x00000030) {
3123 cpu_arch = CPU_ARCH_ARMv7;
3124 - else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3125 + if ((mmfr0 & 0x0000000f) == 0x00000005 || (mmfr0 & 0x0000000f) == 0x00000004) {
3126 + __supported_pte_mask |= L_PTE_PXN;
3127 + __supported_pmd_mask |= PMD_PXNTABLE;
3128 + }
3129 + } else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3130 (mmfr0 & 0x000000f0) == 0x00000020)
3131 cpu_arch = CPU_ARCH_ARMv6;
3132 else
3133 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
3134 index 7b8f214..ece8e28 100644
3135 --- a/arch/arm/kernel/signal.c
3136 +++ b/arch/arm/kernel/signal.c
3137 @@ -24,8 +24,6 @@
3138
3139 extern const unsigned long sigreturn_codes[7];
3140
3141 -static unsigned long signal_return_offset;
3142 -
3143 #ifdef CONFIG_CRUNCH
3144 static int preserve_crunch_context(struct crunch_sigframe __user *frame)
3145 {
3146 @@ -388,8 +386,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
3147 * except when the MPU has protected the vectors
3148 * page from PL0
3149 */
3150 - retcode = mm->context.sigpage + signal_return_offset +
3151 - (idx << 2) + thumb;
3152 + retcode = mm->context.sigpage + (idx << 2) + thumb;
3153 } else
3154 #endif
3155 {
3156 @@ -601,33 +598,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
3157 } while (thread_flags & _TIF_WORK_MASK);
3158 return 0;
3159 }
3160 -
3161 -struct page *get_signal_page(void)
3162 -{
3163 - unsigned long ptr;
3164 - unsigned offset;
3165 - struct page *page;
3166 - void *addr;
3167 -
3168 - page = alloc_pages(GFP_KERNEL, 0);
3169 -
3170 - if (!page)
3171 - return NULL;
3172 -
3173 - addr = page_address(page);
3174 -
3175 - /* Give the signal return code some randomness */
3176 - offset = 0x200 + (get_random_int() & 0x7fc);
3177 - signal_return_offset = offset;
3178 -
3179 - /*
3180 - * Copy signal return handlers into the vector page, and
3181 - * set sigreturn to be a pointer to these.
3182 - */
3183 - memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
3184 -
3185 - ptr = (unsigned long)addr + offset;
3186 - flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
3187 -
3188 - return page;
3189 -}
3190 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
3191 index 48185a7..426ae3a 100644
3192 --- a/arch/arm/kernel/smp.c
3193 +++ b/arch/arm/kernel/smp.c
3194 @@ -78,7 +78,7 @@ enum ipi_msg_type {
3195
3196 static DECLARE_COMPLETION(cpu_running);
3197
3198 -static struct smp_operations smp_ops;
3199 +static struct smp_operations smp_ops __read_only;
3200
3201 void __init smp_set_ops(struct smp_operations *ops)
3202 {
3203 diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
3204 index b83f3b7..087acb5 100644
3205 --- a/arch/arm/kernel/sys_oabi-compat.c
3206 +++ b/arch/arm/kernel/sys_oabi-compat.c
3207 @@ -193,15 +193,44 @@ struct oabi_flock64 {
3208 pid_t l_pid;
3209 } __attribute__ ((packed,aligned(4)));
3210
3211 -asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
3212 +static long do_locks(unsigned int fd, unsigned int cmd,
3213 unsigned long arg)
3214 {
3215 - struct oabi_flock64 user;
3216 struct flock64 kernel;
3217 - mm_segment_t fs = USER_DS; /* initialized to kill a warning */
3218 - unsigned long local_arg = arg;
3219 - int ret;
3220 + struct oabi_flock64 user;
3221 + mm_segment_t fs;
3222 + long ret;
3223
3224 + if (copy_from_user(&user, (struct oabi_flock64 __user *)arg,
3225 + sizeof(user)))
3226 + return -EFAULT;
3227 + kernel.l_type = user.l_type;
3228 + kernel.l_whence = user.l_whence;
3229 + kernel.l_start = user.l_start;
3230 + kernel.l_len = user.l_len;
3231 + kernel.l_pid = user.l_pid;
3232 +
3233 + fs = get_fs();
3234 + set_fs(KERNEL_DS);
3235 + ret = sys_fcntl64(fd, cmd, (unsigned long)&kernel);
3236 + set_fs(fs);
3237 +
3238 + if (!ret && (cmd == F_GETLK64 || cmd == F_OFD_GETLK)) {
3239 + user.l_type = kernel.l_type;
3240 + user.l_whence = kernel.l_whence;
3241 + user.l_start = kernel.l_start;
3242 + user.l_len = kernel.l_len;
3243 + user.l_pid = kernel.l_pid;
3244 + if (copy_to_user((struct oabi_flock64 __user *)arg,
3245 + &user, sizeof(user)))
3246 + ret = -EFAULT;
3247 + }
3248 + return ret;
3249 +}
3250 +
3251 +asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
3252 + unsigned long arg)
3253 +{
3254 switch (cmd) {
3255 case F_OFD_GETLK:
3256 case F_OFD_SETLK:
3257 @@ -209,39 +238,11 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
3258 case F_GETLK64:
3259 case F_SETLK64:
3260 case F_SETLKW64:
3261 - if (copy_from_user(&user, (struct oabi_flock64 __user *)arg,
3262 - sizeof(user)))
3263 - return -EFAULT;
3264 - kernel.l_type = user.l_type;
3265 - kernel.l_whence = user.l_whence;
3266 - kernel.l_start = user.l_start;
3267 - kernel.l_len = user.l_len;
3268 - kernel.l_pid = user.l_pid;
3269 - local_arg = (unsigned long)&kernel;
3270 - fs = get_fs();
3271 - set_fs(KERNEL_DS);
3272 - }
3273 -
3274 - ret = sys_fcntl64(fd, cmd, local_arg);
3275 + return do_locks(fd, cmd, arg);
3276
3277 - switch (cmd) {
3278 - case F_GETLK64:
3279 - if (!ret) {
3280 - user.l_type = kernel.l_type;
3281 - user.l_whence = kernel.l_whence;
3282 - user.l_start = kernel.l_start;
3283 - user.l_len = kernel.l_len;
3284 - user.l_pid = kernel.l_pid;
3285 - if (copy_to_user((struct oabi_flock64 __user *)arg,
3286 - &user, sizeof(user)))
3287 - ret = -EFAULT;
3288 - }
3289 - case F_SETLK64:
3290 - case F_SETLKW64:
3291 - set_fs(fs);
3292 + default:
3293 + return sys_fcntl64(fd, cmd, arg);
3294 }
3295 -
3296 - return ret;
3297 }
3298
3299 struct oabi_epoll_event {
3300 diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c
3301 index b10e136..cb5edf9 100644
3302 --- a/arch/arm/kernel/tcm.c
3303 +++ b/arch/arm/kernel/tcm.c
3304 @@ -64,7 +64,7 @@ static struct map_desc itcm_iomap[] __initdata = {
3305 .virtual = ITCM_OFFSET,
3306 .pfn = __phys_to_pfn(ITCM_OFFSET),
3307 .length = 0,
3308 - .type = MT_MEMORY_RWX_ITCM,
3309 + .type = MT_MEMORY_RX_ITCM,
3310 }
3311 };
3312
3313 @@ -362,7 +362,9 @@ no_dtcm:
3314 start = &__sitcm_text;
3315 end = &__eitcm_text;
3316 ram = &__itcm_start;
3317 + pax_open_kernel();
3318 memcpy(start, ram, itcm_code_sz);
3319 + pax_close_kernel();
3320 pr_debug("CPU ITCM: copied code from %p - %p\n",
3321 start, end);
3322 itcm_present = true;
3323 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
3324 index 969f9d9..8a96d0d 100644
3325 --- a/arch/arm/kernel/traps.c
3326 +++ b/arch/arm/kernel/traps.c
3327 @@ -65,7 +65,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
3328 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
3329 {
3330 #ifdef CONFIG_KALLSYMS
3331 - printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
3332 + printk("[<%08lx>] (%pA) from [<%08lx>] (%pA)\n", where, (void *)where, from, (void *)from);
3333 #else
3334 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
3335 #endif
3336 @@ -267,6 +267,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
3337 static int die_owner = -1;
3338 static unsigned int die_nest_count;
3339
3340 +extern void gr_handle_kernel_exploit(void);
3341 +
3342 static unsigned long oops_begin(void)
3343 {
3344 int cpu;
3345 @@ -309,6 +311,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
3346 panic("Fatal exception in interrupt");
3347 if (panic_on_oops)
3348 panic("Fatal exception");
3349 +
3350 + gr_handle_kernel_exploit();
3351 +
3352 if (signr)
3353 do_exit(signr);
3354 }
3355 diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
3356 index 8b60fde..8d986dd 100644
3357 --- a/arch/arm/kernel/vmlinux.lds.S
3358 +++ b/arch/arm/kernel/vmlinux.lds.S
3359 @@ -37,7 +37,7 @@
3360 #endif
3361
3362 #if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
3363 - defined(CONFIG_GENERIC_BUG)
3364 + defined(CONFIG_GENERIC_BUG) || defined(CONFIG_PAX_REFCOUNT)
3365 #define ARM_EXIT_KEEP(x) x
3366 #define ARM_EXIT_DISCARD(x)
3367 #else
3368 @@ -120,6 +120,8 @@ SECTIONS
3369 #ifdef CONFIG_DEBUG_RODATA
3370 . = ALIGN(1<<SECTION_SHIFT);
3371 #endif
3372 + _etext = .; /* End of text section */
3373 +
3374 RO_DATA(PAGE_SIZE)
3375
3376 . = ALIGN(4);
3377 @@ -150,8 +152,6 @@ SECTIONS
3378
3379 NOTES
3380
3381 - _etext = .; /* End of text and rodata section */
3382 -
3383 #ifndef CONFIG_XIP_KERNEL
3384 # ifdef CONFIG_ARM_KERNMEM_PERMS
3385 . = ALIGN(1<<SECTION_SHIFT);
3386 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
3387 index 78b2869..9255093 100644
3388 --- a/arch/arm/kvm/arm.c
3389 +++ b/arch/arm/kvm/arm.c
3390 @@ -57,7 +57,7 @@ static unsigned long hyp_default_vectors;
3391 static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
3392
3393 /* The VMID used in the VTTBR */
3394 -static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
3395 +static atomic64_unchecked_t kvm_vmid_gen = ATOMIC64_INIT(1);
3396 static u8 kvm_next_vmid;
3397 static DEFINE_SPINLOCK(kvm_vmid_lock);
3398
3399 @@ -369,7 +369,7 @@ void force_vm_exit(const cpumask_t *mask)
3400 */
3401 static bool need_new_vmid_gen(struct kvm *kvm)
3402 {
3403 - return unlikely(kvm->arch.vmid_gen != atomic64_read(&kvm_vmid_gen));
3404 + return unlikely(kvm->arch.vmid_gen != atomic64_read_unchecked(&kvm_vmid_gen));
3405 }
3406
3407 /**
3408 @@ -402,7 +402,7 @@ static void update_vttbr(struct kvm *kvm)
3409
3410 /* First user of a new VMID generation? */
3411 if (unlikely(kvm_next_vmid == 0)) {
3412 - atomic64_inc(&kvm_vmid_gen);
3413 + atomic64_inc_unchecked(&kvm_vmid_gen);
3414 kvm_next_vmid = 1;
3415
3416 /*
3417 @@ -419,7 +419,7 @@ static void update_vttbr(struct kvm *kvm)
3418 kvm_call_hyp(__kvm_flush_vm_context);
3419 }
3420
3421 - kvm->arch.vmid_gen = atomic64_read(&kvm_vmid_gen);
3422 + kvm->arch.vmid_gen = atomic64_read_unchecked(&kvm_vmid_gen);
3423 kvm->arch.vmid = kvm_next_vmid;
3424 kvm_next_vmid++;
3425
3426 diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
3427 index 6ee2f67..d1cce76 100644
3428 --- a/arch/arm/lib/copy_page.S
3429 +++ b/arch/arm/lib/copy_page.S
3430 @@ -10,6 +10,7 @@
3431 * ASM optimised string functions
3432 */
3433 #include <linux/linkage.h>
3434 +#include <linux/const.h>
3435 #include <asm/assembler.h>
3436 #include <asm/asm-offsets.h>
3437 #include <asm/cache.h>
3438 diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
3439 index 1712f13..a3165dc 100644
3440 --- a/arch/arm/lib/csumpartialcopyuser.S
3441 +++ b/arch/arm/lib/csumpartialcopyuser.S
3442 @@ -71,8 +71,8 @@
3443 * Returns : r0 = checksum, [[sp, #0], #0] = 0 or -EFAULT
3444 */
3445
3446 -#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
3447 -#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
3448 +#define FN_ENTRY ENTRY(__csum_partial_copy_from_user)
3449 +#define FN_EXIT ENDPROC(__csum_partial_copy_from_user)
3450
3451 #include "csumpartialcopygeneric.S"
3452
3453 diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
3454 index 8044591..c9b2609 100644
3455 --- a/arch/arm/lib/delay.c
3456 +++ b/arch/arm/lib/delay.c
3457 @@ -29,7 +29,7 @@
3458 /*
3459 * Default to the loop-based delay implementation.
3460 */
3461 -struct arm_delay_ops arm_delay_ops = {
3462 +struct arm_delay_ops arm_delay_ops __read_only = {
3463 .delay = __loop_delay,
3464 .const_udelay = __loop_const_udelay,
3465 .udelay = __loop_udelay,
3466 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
3467 index d72b909..0521929 100644
3468 --- a/arch/arm/lib/uaccess_with_memcpy.c
3469 +++ b/arch/arm/lib/uaccess_with_memcpy.c
3470 @@ -85,7 +85,7 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
3471 return 1;
3472 }
3473
3474 -static unsigned long noinline
3475 +static unsigned long noinline __size_overflow(3)
3476 __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
3477 {
3478 int atomic;
3479 @@ -150,7 +150,7 @@ arm_copy_to_user(void __user *to, const void *from, unsigned long n)
3480 return __copy_to_user_memcpy(to, from, n);
3481 }
3482
3483 -static unsigned long noinline
3484 +static unsigned long noinline __size_overflow(2)
3485 __clear_user_memset(void __user *addr, unsigned long n)
3486 {
3487 if (unlikely(segment_eq(get_fs(), KERNEL_DS))) {
3488 diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
3489 index e00eb39..0f95491 100644
3490 --- a/arch/arm/mach-exynos/suspend.c
3491 +++ b/arch/arm/mach-exynos/suspend.c
3492 @@ -730,8 +730,10 @@ void __init exynos_pm_init(void)
3493 tmp |= pm_data->wake_disable_mask;
3494 pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
3495
3496 - exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3497 - exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3498 + pax_open_kernel();
3499 + *(void **)&exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3500 + *(void **)&exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3501 + pax_close_kernel();
3502
3503 register_syscore_ops(&exynos_pm_syscore_ops);
3504 suspend_set_ops(&exynos_suspend_ops);
3505 diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
3506 index 44eedf3..13a0528 100644
3507 --- a/arch/arm/mach-mvebu/coherency.c
3508 +++ b/arch/arm/mach-mvebu/coherency.c
3509 @@ -105,7 +105,7 @@ static void __init armada_370_coherency_init(struct device_node *np)
3510
3511 /*
3512 * This ioremap hook is used on Armada 375/38x to ensure that PCIe
3513 - * memory areas are mapped as MT_UNCACHED instead of MT_DEVICE. This
3514 + * memory areas are mapped as MT_UNCACHED_RW instead of MT_DEVICE. This
3515 * is needed as a workaround for a deadlock issue between the PCIe
3516 * interface and the cache controller.
3517 */
3518 @@ -118,7 +118,7 @@ armada_pcie_wa_ioremap_caller(phys_addr_t phys_addr, size_t size,
3519 mvebu_mbus_get_pcie_mem_aperture(&pcie_mem);
3520
3521 if (pcie_mem.start <= phys_addr && (phys_addr + size) <= pcie_mem.end)
3522 - mtype = MT_UNCACHED;
3523 + mtype = MT_UNCACHED_RW;
3524
3525 return __arm_ioremap_caller(phys_addr, size, mtype, caller);
3526 }
3527 diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
3528 index b6443a4..20a0b74 100644
3529 --- a/arch/arm/mach-omap2/board-n8x0.c
3530 +++ b/arch/arm/mach-omap2/board-n8x0.c
3531 @@ -569,7 +569,7 @@ static int n8x0_menelaus_late_init(struct device *dev)
3532 }
3533 #endif
3534
3535 -struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
3536 +struct menelaus_platform_data n8x0_menelaus_platform_data __initconst = {
3537 .late_init = n8x0_menelaus_late_init,
3538 };
3539
3540 diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3541 index 65024af..70bf184 100644
3542 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3543 +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3544 @@ -86,7 +86,7 @@ struct cpu_pm_ops {
3545 void (*resume)(void);
3546 void (*scu_prepare)(unsigned int cpu_id, unsigned int cpu_state);
3547 void (*hotplug_restart)(void);
3548 -};
3549 +} __no_const;
3550
3551 static DEFINE_PER_CPU(struct omap4_cpu_pm_info, omap4_pm_info);
3552 static struct powerdomain *mpuss_pd;
3553 @@ -105,7 +105,7 @@ static void dummy_cpu_resume(void)
3554 static void dummy_scu_prepare(unsigned int cpu_id, unsigned int cpu_state)
3555 {}
3556
3557 -static struct cpu_pm_ops omap_pm_ops = {
3558 +static struct cpu_pm_ops omap_pm_ops __read_only = {
3559 .finish_suspend = default_finish_suspend,
3560 .resume = dummy_cpu_resume,
3561 .scu_prepare = dummy_scu_prepare,
3562 diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
3563 index 5305ec7..6d74045 100644
3564 --- a/arch/arm/mach-omap2/omap-smp.c
3565 +++ b/arch/arm/mach-omap2/omap-smp.c
3566 @@ -19,6 +19,7 @@
3567 #include <linux/device.h>
3568 #include <linux/smp.h>
3569 #include <linux/io.h>
3570 +#include <linux/irq.h>
3571 #include <linux/irqchip/arm-gic.h>
3572
3573 #include <asm/smp_scu.h>
3574 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
3575 index e1d2e99..d9b3177 100644
3576 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
3577 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
3578 @@ -330,7 +330,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
3579 return NOTIFY_OK;
3580 }
3581
3582 -static struct notifier_block __refdata irq_hotplug_notifier = {
3583 +static struct notifier_block irq_hotplug_notifier = {
3584 .notifier_call = irq_cpu_hotplug_notify,
3585 };
3586
3587 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3588 index 72ebc4c..18c4406 100644
3589 --- a/arch/arm/mach-omap2/omap_device.c
3590 +++ b/arch/arm/mach-omap2/omap_device.c
3591 @@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
3592 struct platform_device __init *omap_device_build(const char *pdev_name,
3593 int pdev_id,
3594 struct omap_hwmod *oh,
3595 - void *pdata, int pdata_len)
3596 + const void *pdata, int pdata_len)
3597 {
3598 struct omap_hwmod *ohs[] = { oh };
3599
3600 @@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
3601 struct platform_device __init *omap_device_build_ss(const char *pdev_name,
3602 int pdev_id,
3603 struct omap_hwmod **ohs,
3604 - int oh_cnt, void *pdata,
3605 + int oh_cnt, const void *pdata,
3606 int pdata_len)
3607 {
3608 int ret = -ENOMEM;
3609 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
3610 index 78c02b3..c94109a 100644
3611 --- a/arch/arm/mach-omap2/omap_device.h
3612 +++ b/arch/arm/mach-omap2/omap_device.h
3613 @@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
3614 /* Core code interface */
3615
3616 struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
3617 - struct omap_hwmod *oh, void *pdata,
3618 + struct omap_hwmod *oh, const void *pdata,
3619 int pdata_len);
3620
3621 struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id,
3622 struct omap_hwmod **oh, int oh_cnt,
3623 - void *pdata, int pdata_len);
3624 + const void *pdata, int pdata_len);
3625
3626 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3627 struct omap_hwmod **ohs, int oh_cnt);
3628 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3629 index cc8a987..dab541b 100644
3630 --- a/arch/arm/mach-omap2/omap_hwmod.c
3631 +++ b/arch/arm/mach-omap2/omap_hwmod.c
3632 @@ -200,10 +200,10 @@ struct omap_hwmod_soc_ops {
3633 int (*init_clkdm)(struct omap_hwmod *oh);
3634 void (*update_context_lost)(struct omap_hwmod *oh);
3635 int (*get_context_lost)(struct omap_hwmod *oh);
3636 -};
3637 +} __no_const;
3638
3639 /* soc_ops: adapts the omap_hwmod code to the currently-booted SoC */
3640 -static struct omap_hwmod_soc_ops soc_ops;
3641 +static struct omap_hwmod_soc_ops soc_ops __read_only;
3642
3643 /* omap_hwmod_list contains all registered struct omap_hwmods */
3644 static LIST_HEAD(omap_hwmod_list);
3645 diff --git a/arch/arm/mach-omap2/powerdomains43xx_data.c b/arch/arm/mach-omap2/powerdomains43xx_data.c
3646 index 95fee54..cfa9cf1 100644
3647 --- a/arch/arm/mach-omap2/powerdomains43xx_data.c
3648 +++ b/arch/arm/mach-omap2/powerdomains43xx_data.c
3649 @@ -10,6 +10,7 @@
3650
3651 #include <linux/kernel.h>
3652 #include <linux/init.h>
3653 +#include <asm/pgtable.h>
3654
3655 #include "powerdomain.h"
3656
3657 @@ -129,7 +130,9 @@ static int am43xx_check_vcvp(void)
3658
3659 void __init am43xx_powerdomains_init(void)
3660 {
3661 - omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3662 + pax_open_kernel();
3663 + *(void **)&omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3664 + pax_close_kernel();
3665 pwrdm_register_platform_funcs(&omap4_pwrdm_operations);
3666 pwrdm_register_pwrdms(powerdomains_am43xx);
3667 pwrdm_complete_init();
3668 diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
3669 index ff0a68c..b312aa0 100644
3670 --- a/arch/arm/mach-omap2/wd_timer.c
3671 +++ b/arch/arm/mach-omap2/wd_timer.c
3672 @@ -110,7 +110,9 @@ static int __init omap_init_wdt(void)
3673 struct omap_hwmod *oh;
3674 char *oh_name = "wd_timer2";
3675 char *dev_name = "omap_wdt";
3676 - struct omap_wd_timer_platform_data pdata;
3677 + static struct omap_wd_timer_platform_data pdata = {
3678 + .read_reset_sources = prm_read_reset_sources
3679 + };
3680
3681 if (!cpu_class_is_omap2() || of_have_populated_dt())
3682 return 0;
3683 @@ -121,8 +123,6 @@ static int __init omap_init_wdt(void)
3684 return -EINVAL;
3685 }
3686
3687 - pdata.read_reset_sources = prm_read_reset_sources;
3688 -
3689 pdev = omap_device_build(dev_name, id, oh, &pdata,
3690 sizeof(struct omap_wd_timer_platform_data));
3691 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
3692 diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c
3693 index 4e54512..ed7c349 100644
3694 --- a/arch/arm/mach-shmobile/platsmp-apmu.c
3695 +++ b/arch/arm/mach-shmobile/platsmp-apmu.c
3696 @@ -22,6 +22,7 @@
3697 #include <asm/proc-fns.h>
3698 #include <asm/smp_plat.h>
3699 #include <asm/suspend.h>
3700 +#include <asm/pgtable.h>
3701 #include "common.h"
3702 #include "platsmp-apmu.h"
3703
3704 @@ -233,6 +234,8 @@ static int shmobile_smp_apmu_enter_suspend(suspend_state_t state)
3705
3706 void __init shmobile_smp_apmu_suspend_init(void)
3707 {
3708 - shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3709 + pax_open_kernel();
3710 + *(void **)&shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3711 + pax_close_kernel();
3712 }
3713 #endif
3714 diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
3715 index 7469347..1ecc350 100644
3716 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c
3717 +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
3718 @@ -177,7 +177,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
3719 bool entered_lp2 = false;
3720
3721 if (tegra_pending_sgi())
3722 - ACCESS_ONCE(abort_flag) = true;
3723 + ACCESS_ONCE_RW(abort_flag) = true;
3724
3725 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3726
3727 diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
3728 index 3b9098d..15b390f 100644
3729 --- a/arch/arm/mach-tegra/irq.c
3730 +++ b/arch/arm/mach-tegra/irq.c
3731 @@ -20,6 +20,7 @@
3732 #include <linux/cpu_pm.h>
3733 #include <linux/interrupt.h>
3734 #include <linux/io.h>
3735 +#include <linux/irq.h>
3736 #include <linux/irqchip/arm-gic.h>
3737 #include <linux/irq.h>
3738 #include <linux/kernel.h>
3739 diff --git a/arch/arm/mach-ux500/pm.c b/arch/arm/mach-ux500/pm.c
3740 index 8538910..2f39bc4 100644
3741 --- a/arch/arm/mach-ux500/pm.c
3742 +++ b/arch/arm/mach-ux500/pm.c
3743 @@ -10,6 +10,7 @@
3744 */
3745
3746 #include <linux/kernel.h>
3747 +#include <linux/irq.h>
3748 #include <linux/irqchip/arm-gic.h>
3749 #include <linux/delay.h>
3750 #include <linux/io.h>
3751 diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
3752 index f66816c..228b951 100644
3753 --- a/arch/arm/mach-zynq/platsmp.c
3754 +++ b/arch/arm/mach-zynq/platsmp.c
3755 @@ -24,6 +24,7 @@
3756 #include <linux/io.h>
3757 #include <asm/cacheflush.h>
3758 #include <asm/smp_scu.h>
3759 +#include <linux/irq.h>
3760 #include <linux/irqchip/arm-gic.h>
3761 #include "common.h"
3762
3763 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
3764 index df7537f..b931a5f 100644
3765 --- a/arch/arm/mm/Kconfig
3766 +++ b/arch/arm/mm/Kconfig
3767 @@ -446,6 +446,7 @@ config CPU_32v5
3768
3769 config CPU_32v6
3770 bool
3771 + select CPU_USE_DOMAINS if CPU_V6 && MMU && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3772 select TLS_REG_EMUL if !CPU_32v6K && !MMU
3773
3774 config CPU_32v6K
3775 @@ -600,6 +601,7 @@ config CPU_CP15_MPU
3776
3777 config CPU_USE_DOMAINS
3778 bool
3779 + depends on !ARM_LPAE && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3780 help
3781 This option enables or disables the use of domain switching
3782 via the set_fs() function.
3783 @@ -818,7 +820,7 @@ config NEED_KUSER_HELPERS
3784
3785 config KUSER_HELPERS
3786 bool "Enable kuser helpers in vector page" if !NEED_KUSER_HELPERS
3787 - depends on MMU
3788 + depends on MMU && (!(CPU_V6 || CPU_V6K || CPU_V7) || GRKERNSEC_OLD_ARM_USERLAND)
3789 default y
3790 help
3791 Warning: disabling this option may break user programs.
3792 @@ -832,7 +834,7 @@ config KUSER_HELPERS
3793 See Documentation/arm/kernel_user_helpers.txt for details.
3794
3795 However, the fixed address nature of these helpers can be used
3796 - by ROP (return orientated programming) authors when creating
3797 + by ROP (Return Oriented Programming) authors when creating
3798 exploits.
3799
3800 If all of the binaries and libraries which run on your platform
3801 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
3802 index 00b7f7d..6fc28bc 100644
3803 --- a/arch/arm/mm/alignment.c
3804 +++ b/arch/arm/mm/alignment.c
3805 @@ -216,10 +216,12 @@ union offset_union {
3806 #define __get16_unaligned_check(ins,val,addr) \
3807 do { \
3808 unsigned int err = 0, v, a = addr; \
3809 + pax_open_userland(); \
3810 __get8_unaligned_check(ins,v,a,err); \
3811 val = v << ((BE) ? 8 : 0); \
3812 __get8_unaligned_check(ins,v,a,err); \
3813 val |= v << ((BE) ? 0 : 8); \
3814 + pax_close_userland(); \
3815 if (err) \
3816 goto fault; \
3817 } while (0)
3818 @@ -233,6 +235,7 @@ union offset_union {
3819 #define __get32_unaligned_check(ins,val,addr) \
3820 do { \
3821 unsigned int err = 0, v, a = addr; \
3822 + pax_open_userland(); \
3823 __get8_unaligned_check(ins,v,a,err); \
3824 val = v << ((BE) ? 24 : 0); \
3825 __get8_unaligned_check(ins,v,a,err); \
3826 @@ -241,6 +244,7 @@ union offset_union {
3827 val |= v << ((BE) ? 8 : 16); \
3828 __get8_unaligned_check(ins,v,a,err); \
3829 val |= v << ((BE) ? 0 : 24); \
3830 + pax_close_userland(); \
3831 if (err) \
3832 goto fault; \
3833 } while (0)
3834 @@ -254,6 +258,7 @@ union offset_union {
3835 #define __put16_unaligned_check(ins,val,addr) \
3836 do { \
3837 unsigned int err = 0, v = val, a = addr; \
3838 + pax_open_userland(); \
3839 __asm__( FIRST_BYTE_16 \
3840 ARM( "1: "ins" %1, [%2], #1\n" ) \
3841 THUMB( "1: "ins" %1, [%2]\n" ) \
3842 @@ -273,6 +278,7 @@ union offset_union {
3843 " .popsection\n" \
3844 : "=r" (err), "=&r" (v), "=&r" (a) \
3845 : "0" (err), "1" (v), "2" (a)); \
3846 + pax_close_userland(); \
3847 if (err) \
3848 goto fault; \
3849 } while (0)
3850 @@ -286,6 +292,7 @@ union offset_union {
3851 #define __put32_unaligned_check(ins,val,addr) \
3852 do { \
3853 unsigned int err = 0, v = val, a = addr; \
3854 + pax_open_userland(); \
3855 __asm__( FIRST_BYTE_32 \
3856 ARM( "1: "ins" %1, [%2], #1\n" ) \
3857 THUMB( "1: "ins" %1, [%2]\n" ) \
3858 @@ -315,6 +322,7 @@ union offset_union {
3859 " .popsection\n" \
3860 : "=r" (err), "=&r" (v), "=&r" (a) \
3861 : "0" (err), "1" (v), "2" (a)); \
3862 + pax_close_userland(); \
3863 if (err) \
3864 goto fault; \
3865 } while (0)
3866 diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
3867 index 493692d..42a4504 100644
3868 --- a/arch/arm/mm/cache-l2x0.c
3869 +++ b/arch/arm/mm/cache-l2x0.c
3870 @@ -44,7 +44,7 @@ struct l2c_init_data {
3871 void (*configure)(void __iomem *);
3872 void (*unlock)(void __iomem *, unsigned);
3873 struct outer_cache_fns outer_cache;
3874 -};
3875 +} __do_const;
3876
3877 #define CACHE_LINE_SIZE 32
3878
3879 diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
3880 index 845769e..4278fd7 100644
3881 --- a/arch/arm/mm/context.c
3882 +++ b/arch/arm/mm/context.c
3883 @@ -43,7 +43,7 @@
3884 #define NUM_USER_ASIDS ASID_FIRST_VERSION
3885
3886 static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
3887 -static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
3888 +static atomic64_unchecked_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
3889 static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
3890
3891 static DEFINE_PER_CPU(atomic64_t, active_asids);
3892 @@ -178,7 +178,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
3893 {
3894 static u32 cur_idx = 1;
3895 u64 asid = atomic64_read(&mm->context.id);
3896 - u64 generation = atomic64_read(&asid_generation);
3897 + u64 generation = atomic64_read_unchecked(&asid_generation);
3898
3899 if (asid != 0) {
3900 /*
3901 @@ -208,7 +208,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
3902 */
3903 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, cur_idx);
3904 if (asid == NUM_USER_ASIDS) {
3905 - generation = atomic64_add_return(ASID_FIRST_VERSION,
3906 + generation = atomic64_add_return_unchecked(ASID_FIRST_VERSION,
3907 &asid_generation);
3908 flush_context(cpu);
3909 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
3910 @@ -240,14 +240,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
3911 cpu_set_reserved_ttbr0();
3912
3913 asid = atomic64_read(&mm->context.id);
3914 - if (!((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS)
3915 + if (!((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS)
3916 && atomic64_xchg(&per_cpu(active_asids, cpu), asid))
3917 goto switch_mm_fastpath;
3918
3919 raw_spin_lock_irqsave(&cpu_asid_lock, flags);
3920 /* Check that our ASID belongs to the current generation. */
3921 asid = atomic64_read(&mm->context.id);
3922 - if ((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) {
3923 + if ((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS) {
3924 asid = new_context(mm, cpu);
3925 atomic64_set(&mm->context.id, asid);
3926 }
3927 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
3928 index 0d629b8..f13ad33 100644
3929 --- a/arch/arm/mm/fault.c
3930 +++ b/arch/arm/mm/fault.c
3931 @@ -25,6 +25,7 @@
3932 #include <asm/system_misc.h>
3933 #include <asm/system_info.h>
3934 #include <asm/tlbflush.h>
3935 +#include <asm/sections.h>
3936
3937 #include "fault.h"
3938
3939 @@ -138,6 +139,31 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
3940 if (fixup_exception(regs))
3941 return;
3942
3943 +#ifdef CONFIG_PAX_MEMORY_UDEREF
3944 + if (addr < TASK_SIZE) {
3945 + if (current->signal->curr_ip)
3946 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
3947 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3948 + else
3949 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
3950 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3951 + }
3952 +#endif
3953 +
3954 +#ifdef CONFIG_PAX_KERNEXEC
3955 + if ((fsr & FSR_WRITE) &&
3956 + (((unsigned long)_stext <= addr && addr < init_mm.end_code) ||
3957 + (MODULES_VADDR <= addr && addr < MODULES_END)))
3958 + {
3959 + if (current->signal->curr_ip)
3960 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
3961 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
3962 + else
3963 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
3964 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
3965 + }
3966 +#endif
3967 +
3968 /*
3969 * No handler, we'll have to terminate things with extreme prejudice.
3970 */
3971 @@ -173,6 +199,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
3972 }
3973 #endif
3974
3975 +#ifdef CONFIG_PAX_PAGEEXEC
3976 + if ((tsk->mm->pax_flags & MF_PAX_PAGEEXEC) && (fsr & FSR_LNX_PF)) {
3977 + pax_report_fault(regs, (void *)regs->ARM_pc, (void *)regs->ARM_sp);
3978 + do_group_exit(SIGKILL);
3979 + }
3980 +#endif
3981 +
3982 tsk->thread.address = addr;
3983 tsk->thread.error_code = fsr;
3984 tsk->thread.trap_no = 14;
3985 @@ -400,6 +433,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
3986 }
3987 #endif /* CONFIG_MMU */
3988
3989 +#ifdef CONFIG_PAX_PAGEEXEC
3990 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
3991 +{
3992 + long i;
3993 +
3994 + printk(KERN_ERR "PAX: bytes at PC: ");
3995 + for (i = 0; i < 20; i++) {
3996 + unsigned char c;
3997 + if (get_user(c, (__force unsigned char __user *)pc+i))
3998 + printk(KERN_CONT "?? ");
3999 + else
4000 + printk(KERN_CONT "%02x ", c);
4001 + }
4002 + printk("\n");
4003 +
4004 + printk(KERN_ERR "PAX: bytes at SP-4: ");
4005 + for (i = -1; i < 20; i++) {
4006 + unsigned long c;
4007 + if (get_user(c, (__force unsigned long __user *)sp+i))
4008 + printk(KERN_CONT "???????? ");
4009 + else
4010 + printk(KERN_CONT "%08lx ", c);
4011 + }
4012 + printk("\n");
4013 +}
4014 +#endif
4015 +
4016 /*
4017 * First Level Translation Fault Handler
4018 *
4019 @@ -547,9 +607,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
4020 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
4021 struct siginfo info;
4022
4023 +#ifdef CONFIG_PAX_MEMORY_UDEREF
4024 + if (addr < TASK_SIZE && is_domain_fault(fsr)) {
4025 + if (current->signal->curr_ip)
4026 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
4027 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4028 + else
4029 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
4030 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4031 + goto die;
4032 + }
4033 +#endif
4034 +
4035 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
4036 return;
4037
4038 +die:
4039 pr_alert("Unhandled fault: %s (0x%03x) at 0x%08lx\n",
4040 inf->name, fsr, addr);
4041 show_pte(current->mm, addr);
4042 @@ -574,15 +647,104 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
4043 ifsr_info[nr].name = name;
4044 }
4045
4046 +asmlinkage int sys_sigreturn(struct pt_regs *regs);
4047 +asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
4048 +
4049 asmlinkage void __exception
4050 do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
4051 {
4052 const struct fsr_info *inf = ifsr_info + fsr_fs(ifsr);
4053 struct siginfo info;
4054 + unsigned long pc = instruction_pointer(regs);
4055 +
4056 + if (user_mode(regs)) {
4057 + unsigned long sigpage = current->mm->context.sigpage;
4058 +
4059 + if (sigpage <= pc && pc < sigpage + 7*4) {
4060 + if (pc < sigpage + 3*4)
4061 + sys_sigreturn(regs);
4062 + else
4063 + sys_rt_sigreturn(regs);
4064 + return;
4065 + }
4066 + if (pc == 0xffff0f60UL) {
4067 + /*
4068 + * PaX: __kuser_cmpxchg64 emulation
4069 + */
4070 + // TODO
4071 + //regs->ARM_pc = regs->ARM_lr;
4072 + //return;
4073 + }
4074 + if (pc == 0xffff0fa0UL) {
4075 + /*
4076 + * PaX: __kuser_memory_barrier emulation
4077 + */
4078 + // dmb(); implied by the exception
4079 + regs->ARM_pc = regs->ARM_lr;
4080 + return;
4081 + }
4082 + if (pc == 0xffff0fc0UL) {
4083 + /*
4084 + * PaX: __kuser_cmpxchg emulation
4085 + */
4086 + // TODO
4087 + //long new;
4088 + //int op;
4089 +
4090 + //op = FUTEX_OP_SET << 28;
4091 + //new = futex_atomic_op_inuser(op, regs->ARM_r2);
4092 + //regs->ARM_r0 = old != new;
4093 + //regs->ARM_pc = regs->ARM_lr;
4094 + //return;
4095 + }
4096 + if (pc == 0xffff0fe0UL) {
4097 + /*
4098 + * PaX: __kuser_get_tls emulation
4099 + */
4100 + regs->ARM_r0 = current_thread_info()->tp_value[0];
4101 + regs->ARM_pc = regs->ARM_lr;
4102 + return;
4103 + }
4104 + }
4105 +
4106 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
4107 + else if (is_domain_fault(ifsr) || is_xn_fault(ifsr)) {
4108 + if (current->signal->curr_ip)
4109 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", &current->signal->curr_ip, current->comm, task_pid_nr(current),
4110 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
4111 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
4112 + else
4113 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", current->comm, task_pid_nr(current),
4114 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
4115 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
4116 + goto die;
4117 + }
4118 +#endif
4119 +
4120 +#ifdef CONFIG_PAX_REFCOUNT
4121 + if (fsr_fs(ifsr) == FAULT_CODE_DEBUG) {
4122 +#ifdef CONFIG_THUMB2_KERNEL
4123 + unsigned short bkpt;
4124 +
4125 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le16(bkpt) == 0xbef1) {
4126 +#else
4127 + unsigned int bkpt;
4128 +
4129 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le32(bkpt) == 0xe12f1073) {
4130 +#endif
4131 + current->thread.error_code = ifsr;
4132 + current->thread.trap_no = 0;
4133 + pax_report_refcount_overflow(regs);
4134 + fixup_exception(regs);
4135 + return;
4136 + }
4137 + }
4138 +#endif
4139
4140 if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
4141 return;
4142
4143 +die:
4144 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
4145 inf->name, ifsr, addr);
4146
4147 diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
4148 index cf08bdf..772656c 100644
4149 --- a/arch/arm/mm/fault.h
4150 +++ b/arch/arm/mm/fault.h
4151 @@ -3,6 +3,7 @@
4152
4153 /*
4154 * Fault status register encodings. We steal bit 31 for our own purposes.
4155 + * Set when the FSR value is from an instruction fault.
4156 */
4157 #define FSR_LNX_PF (1 << 31)
4158 #define FSR_WRITE (1 << 11)
4159 @@ -22,6 +23,17 @@ static inline int fsr_fs(unsigned int fsr)
4160 }
4161 #endif
4162
4163 +/* valid for LPAE and !LPAE */
4164 +static inline int is_xn_fault(unsigned int fsr)
4165 +{
4166 + return ((fsr_fs(fsr) & 0x3c) == 0xc);
4167 +}
4168 +
4169 +static inline int is_domain_fault(unsigned int fsr)
4170 +{
4171 + return ((fsr_fs(fsr) & 0xD) == 0x9);
4172 +}
4173 +
4174 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
4175 unsigned long search_exception_table(unsigned long addr);
4176
4177 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
4178 index 8a63b4c..6b04370 100644
4179 --- a/arch/arm/mm/init.c
4180 +++ b/arch/arm/mm/init.c
4181 @@ -710,7 +710,46 @@ void free_tcmmem(void)
4182 {
4183 #ifdef CONFIG_HAVE_TCM
4184 extern char __tcm_start, __tcm_end;
4185 +#endif
4186
4187 +#ifdef CONFIG_PAX_KERNEXEC
4188 + unsigned long addr;
4189 + pgd_t *pgd;
4190 + pud_t *pud;
4191 + pmd_t *pmd;
4192 + int cpu_arch = cpu_architecture();
4193 + unsigned int cr = get_cr();
4194 +
4195 + if (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP)) {
4196 + /* make pages tables, etc before .text NX */
4197 + for (addr = PAGE_OFFSET; addr < (unsigned long)_stext; addr += SECTION_SIZE) {
4198 + pgd = pgd_offset_k(addr);
4199 + pud = pud_offset(pgd, addr);
4200 + pmd = pmd_offset(pud, addr);
4201 + __section_update(pmd, addr, PMD_SECT_XN);
4202 + }
4203 + /* make init NX */
4204 + for (addr = (unsigned long)__init_begin; addr < (unsigned long)_sdata; addr += SECTION_SIZE) {
4205 + pgd = pgd_offset_k(addr);
4206 + pud = pud_offset(pgd, addr);
4207 + pmd = pmd_offset(pud, addr);
4208 + __section_update(pmd, addr, PMD_SECT_XN);
4209 + }
4210 + /* make kernel code/rodata RX */
4211 + for (addr = (unsigned long)_stext; addr < (unsigned long)__init_begin; addr += SECTION_SIZE) {
4212 + pgd = pgd_offset_k(addr);
4213 + pud = pud_offset(pgd, addr);
4214 + pmd = pmd_offset(pud, addr);
4215 +#ifdef CONFIG_ARM_LPAE
4216 + __section_update(pmd, addr, PMD_SECT_RDONLY);
4217 +#else
4218 + __section_update(pmd, addr, PMD_SECT_APX|PMD_SECT_AP_WRITE);
4219 +#endif
4220 + }
4221 + }
4222 +#endif
4223 +
4224 +#ifdef CONFIG_HAVE_TCM
4225 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
4226 free_reserved_area(&__tcm_start, &__tcm_end, -1, "TCM link");
4227 #endif
4228 diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
4229 index 0c81056..97279f7 100644
4230 --- a/arch/arm/mm/ioremap.c
4231 +++ b/arch/arm/mm/ioremap.c
4232 @@ -405,9 +405,9 @@ __arm_ioremap_exec(phys_addr_t phys_addr, size_t size, bool cached)
4233 unsigned int mtype;
4234
4235 if (cached)
4236 - mtype = MT_MEMORY_RWX;
4237 + mtype = MT_MEMORY_RX;
4238 else
4239 - mtype = MT_MEMORY_RWX_NONCACHED;
4240 + mtype = MT_MEMORY_RX_NONCACHED;
4241
4242 return __arm_ioremap_caller(phys_addr, size, mtype,
4243 __builtin_return_address(0));
4244 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
4245 index 407dc78..047ce9d 100644
4246 --- a/arch/arm/mm/mmap.c
4247 +++ b/arch/arm/mm/mmap.c
4248 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4249 struct vm_area_struct *vma;
4250 int do_align = 0;
4251 int aliasing = cache_is_vipt_aliasing();
4252 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4253 struct vm_unmapped_area_info info;
4254
4255 /*
4256 @@ -81,6 +82,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4257 if (len > TASK_SIZE)
4258 return -ENOMEM;
4259
4260 +#ifdef CONFIG_PAX_RANDMMAP
4261 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4262 +#endif
4263 +
4264 if (addr) {
4265 if (do_align)
4266 addr = COLOUR_ALIGN(addr, pgoff);
4267 @@ -88,8 +93,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4268 addr = PAGE_ALIGN(addr);
4269
4270 vma = find_vma(mm, addr);
4271 - if (TASK_SIZE - len >= addr &&
4272 - (!vma || addr + len <= vma->vm_start))
4273 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4274 return addr;
4275 }
4276
4277 @@ -99,6 +103,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4278 info.high_limit = TASK_SIZE;
4279 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4280 info.align_offset = pgoff << PAGE_SHIFT;
4281 + info.threadstack_offset = offset;
4282 return vm_unmapped_area(&info);
4283 }
4284
4285 @@ -112,6 +117,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4286 unsigned long addr = addr0;
4287 int do_align = 0;
4288 int aliasing = cache_is_vipt_aliasing();
4289 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4290 struct vm_unmapped_area_info info;
4291
4292 /*
4293 @@ -132,6 +138,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4294 return addr;
4295 }
4296
4297 +#ifdef CONFIG_PAX_RANDMMAP
4298 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4299 +#endif
4300 +
4301 /* requesting a specific address */
4302 if (addr) {
4303 if (do_align)
4304 @@ -139,8 +149,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4305 else
4306 addr = PAGE_ALIGN(addr);
4307 vma = find_vma(mm, addr);
4308 - if (TASK_SIZE - len >= addr &&
4309 - (!vma || addr + len <= vma->vm_start))
4310 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4311 return addr;
4312 }
4313
4314 @@ -150,6 +159,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4315 info.high_limit = mm->mmap_base;
4316 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4317 info.align_offset = pgoff << PAGE_SHIFT;
4318 + info.threadstack_offset = offset;
4319 addr = vm_unmapped_area(&info);
4320
4321 /*
4322 @@ -183,14 +193,30 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
4323 {
4324 unsigned long random_factor = 0UL;
4325
4326 +#ifdef CONFIG_PAX_RANDMMAP
4327 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4328 +#endif
4329 +
4330 if (current->flags & PF_RANDOMIZE)
4331 random_factor = arch_mmap_rnd();
4332
4333 if (mmap_is_legacy()) {
4334 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
4335 +
4336 +#ifdef CONFIG_PAX_RANDMMAP
4337 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4338 + mm->mmap_base += mm->delta_mmap;
4339 +#endif
4340 +
4341 mm->get_unmapped_area = arch_get_unmapped_area;
4342 } else {
4343 mm->mmap_base = mmap_base(random_factor);
4344 +
4345 +#ifdef CONFIG_PAX_RANDMMAP
4346 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4347 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
4348 +#endif
4349 +
4350 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4351 }
4352 }
4353 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
4354 index 7cd1514..0307305 100644
4355 --- a/arch/arm/mm/mmu.c
4356 +++ b/arch/arm/mm/mmu.c
4357 @@ -242,7 +242,15 @@ __setup("noalign", noalign_setup);
4358 #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
4359 #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
4360
4361 -static struct mem_type mem_types[] = {
4362 +#ifdef CONFIG_PAX_KERNEXEC
4363 +#define L_PTE_KERNEXEC L_PTE_RDONLY
4364 +#define PMD_SECT_KERNEXEC PMD_SECT_RDONLY
4365 +#else
4366 +#define L_PTE_KERNEXEC L_PTE_DIRTY
4367 +#define PMD_SECT_KERNEXEC PMD_SECT_AP_WRITE
4368 +#endif
4369 +
4370 +static struct mem_type mem_types[] __read_only = {
4371 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
4372 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
4373 L_PTE_SHARED,
4374 @@ -271,19 +279,19 @@ static struct mem_type mem_types[] = {
4375 .prot_sect = PROT_SECT_DEVICE,
4376 .domain = DOMAIN_IO,
4377 },
4378 - [MT_UNCACHED] = {
4379 + [MT_UNCACHED_RW] = {
4380 .prot_pte = PROT_PTE_DEVICE,
4381 .prot_l1 = PMD_TYPE_TABLE,
4382 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4383 .domain = DOMAIN_IO,
4384 },
4385 - [MT_CACHECLEAN] = {
4386 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4387 + [MT_CACHECLEAN_RO] = {
4388 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_RDONLY,
4389 .domain = DOMAIN_KERNEL,
4390 },
4391 #ifndef CONFIG_ARM_LPAE
4392 - [MT_MINICLEAN] = {
4393 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_MINICACHE,
4394 + [MT_MINICLEAN_RO] = {
4395 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE | PMD_SECT_XN | PMD_SECT_RDONLY,
4396 .domain = DOMAIN_KERNEL,
4397 },
4398 #endif
4399 @@ -299,7 +307,7 @@ static struct mem_type mem_types[] = {
4400 .prot_l1 = PMD_TYPE_TABLE,
4401 .domain = DOMAIN_VECTORS,
4402 },
4403 - [MT_MEMORY_RWX] = {
4404 + [__MT_MEMORY_RWX] = {
4405 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4406 .prot_l1 = PMD_TYPE_TABLE,
4407 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4408 @@ -312,17 +320,30 @@ static struct mem_type mem_types[] = {
4409 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4410 .domain = DOMAIN_KERNEL,
4411 },
4412 - [MT_ROM] = {
4413 - .prot_sect = PMD_TYPE_SECT,
4414 + [MT_MEMORY_RX] = {
4415 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4416 + .prot_l1 = PMD_TYPE_TABLE,
4417 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4418 + .domain = DOMAIN_KERNEL,
4419 + },
4420 + [MT_ROM_RX] = {
4421 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_RDONLY,
4422 .domain = DOMAIN_KERNEL,
4423 },
4424 - [MT_MEMORY_RWX_NONCACHED] = {
4425 + [MT_MEMORY_RW_NONCACHED] = {
4426 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4427 L_PTE_MT_BUFFERABLE,
4428 .prot_l1 = PMD_TYPE_TABLE,
4429 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4430 .domain = DOMAIN_KERNEL,
4431 },
4432 + [MT_MEMORY_RX_NONCACHED] = {
4433 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC |
4434 + L_PTE_MT_BUFFERABLE,
4435 + .prot_l1 = PMD_TYPE_TABLE,
4436 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4437 + .domain = DOMAIN_KERNEL,
4438 + },
4439 [MT_MEMORY_RW_DTCM] = {
4440 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4441 L_PTE_XN,
4442 @@ -330,9 +351,10 @@ static struct mem_type mem_types[] = {
4443 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4444 .domain = DOMAIN_KERNEL,
4445 },
4446 - [MT_MEMORY_RWX_ITCM] = {
4447 - .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4448 + [MT_MEMORY_RX_ITCM] = {
4449 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4450 .prot_l1 = PMD_TYPE_TABLE,
4451 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4452 .domain = DOMAIN_KERNEL,
4453 },
4454 [MT_MEMORY_RW_SO] = {
4455 @@ -585,9 +607,14 @@ static void __init build_mem_type_table(void)
4456 * Mark cache clean areas and XIP ROM read only
4457 * from SVC mode and no access from userspace.
4458 */
4459 - mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4460 - mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4461 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4462 + mem_types[MT_ROM_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4463 +#ifdef CONFIG_PAX_KERNEXEC
4464 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4465 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4466 + mem_types[MT_MEMORY_RX_ITCM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4467 +#endif
4468 + mem_types[MT_MINICLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4469 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4470 #endif
4471
4472 /*
4473 @@ -604,13 +631,17 @@ static void __init build_mem_type_table(void)
4474 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
4475 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
4476 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
4477 - mem_types[MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4478 - mem_types[MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4479 + mem_types[__MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4480 + mem_types[__MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4481 mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_S;
4482 mem_types[MT_MEMORY_RW].prot_pte |= L_PTE_SHARED;
4483 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_S;
4484 + mem_types[MT_MEMORY_RX].prot_pte |= L_PTE_SHARED;
4485 mem_types[MT_MEMORY_DMA_READY].prot_pte |= L_PTE_SHARED;
4486 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_S;
4487 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_pte |= L_PTE_SHARED;
4488 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_S;
4489 + mem_types[MT_MEMORY_RW_NONCACHED].prot_pte |= L_PTE_SHARED;
4490 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_S;
4491 + mem_types[MT_MEMORY_RX_NONCACHED].prot_pte |= L_PTE_SHARED;
4492 }
4493 }
4494
4495 @@ -621,15 +652,20 @@ static void __init build_mem_type_table(void)
4496 if (cpu_arch >= CPU_ARCH_ARMv6) {
4497 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4498 /* Non-cacheable Normal is XCB = 001 */
4499 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4500 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4501 + PMD_SECT_BUFFERED;
4502 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4503 PMD_SECT_BUFFERED;
4504 } else {
4505 /* For both ARMv6 and non-TEX-remapping ARMv7 */
4506 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4507 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4508 + PMD_SECT_TEX(1);
4509 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4510 PMD_SECT_TEX(1);
4511 }
4512 } else {
4513 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4514 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4515 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4516 }
4517
4518 #ifdef CONFIG_ARM_LPAE
4519 @@ -650,6 +686,8 @@ static void __init build_mem_type_table(void)
4520 user_pgprot |= PTE_EXT_PXN;
4521 #endif
4522
4523 + user_pgprot |= __supported_pte_mask;
4524 +
4525 for (i = 0; i < 16; i++) {
4526 pteval_t v = pgprot_val(protection_map[i]);
4527 protection_map[i] = __pgprot(v | user_pgprot);
4528 @@ -667,21 +705,24 @@ static void __init build_mem_type_table(void)
4529
4530 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
4531 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
4532 - mem_types[MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4533 - mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4534 + mem_types[__MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4535 + mem_types[__MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4536 mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
4537 mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
4538 + mem_types[MT_MEMORY_RX].prot_sect |= ecc_mask | cp->pmd;
4539 + mem_types[MT_MEMORY_RX].prot_pte |= kern_pgprot;
4540 mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
4541 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
4542 - mem_types[MT_ROM].prot_sect |= cp->pmd;
4543 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= ecc_mask;
4544 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= ecc_mask;
4545 + mem_types[MT_ROM_RX].prot_sect |= cp->pmd;
4546
4547 switch (cp->pmd) {
4548 case PMD_SECT_WT:
4549 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WT;
4550 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WT;
4551 break;
4552 case PMD_SECT_WB:
4553 case PMD_SECT_WBWA:
4554 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WB;
4555 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WB;
4556 break;
4557 }
4558 pr_info("Memory policy: %sData cache %s\n",
4559 @@ -895,7 +936,7 @@ static void __init create_mapping(struct map_desc *md)
4560 return;
4561 }
4562
4563 - if ((md->type == MT_DEVICE || md->type == MT_ROM) &&
4564 + if ((md->type == MT_DEVICE || md->type == MT_ROM_RX) &&
4565 md->virtual >= PAGE_OFFSET && md->virtual < FIXADDR_START &&
4566 (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) {
4567 pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n",
4568 @@ -1265,18 +1306,15 @@ void __init arm_mm_memblock_reserve(void)
4569 * Any other function or debugging method which may touch any device _will_
4570 * crash the kernel.
4571 */
4572 +
4573 +static char vectors[PAGE_SIZE * 2] __read_only __aligned(PAGE_SIZE);
4574 +
4575 static void __init devicemaps_init(const struct machine_desc *mdesc)
4576 {
4577 struct map_desc map;
4578 unsigned long addr;
4579 - void *vectors;
4580
4581 - /*
4582 - * Allocate the vector page early.
4583 - */
4584 - vectors = early_alloc(PAGE_SIZE * 2);
4585 -
4586 - early_trap_init(vectors);
4587 + early_trap_init(&vectors);
4588
4589 /*
4590 * Clear page table except top pmd used by early fixmaps
4591 @@ -1292,7 +1330,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4592 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
4593 map.virtual = MODULES_VADDR;
4594 map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
4595 - map.type = MT_ROM;
4596 + map.type = MT_ROM_RX;
4597 create_mapping(&map);
4598 #endif
4599
4600 @@ -1303,14 +1341,14 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4601 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS);
4602 map.virtual = FLUSH_BASE;
4603 map.length = SZ_1M;
4604 - map.type = MT_CACHECLEAN;
4605 + map.type = MT_CACHECLEAN_RO;
4606 create_mapping(&map);
4607 #endif
4608 #ifdef FLUSH_BASE_MINICACHE
4609 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M);
4610 map.virtual = FLUSH_BASE_MINICACHE;
4611 map.length = SZ_1M;
4612 - map.type = MT_MINICLEAN;
4613 + map.type = MT_MINICLEAN_RO;
4614 create_mapping(&map);
4615 #endif
4616
4617 @@ -1319,7 +1357,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4618 * location (0xffff0000). If we aren't using high-vectors, also
4619 * create a mapping at the low-vectors virtual address.
4620 */
4621 - map.pfn = __phys_to_pfn(virt_to_phys(vectors));
4622 + map.pfn = __phys_to_pfn(virt_to_phys(&vectors));
4623 map.virtual = 0xffff0000;
4624 map.length = PAGE_SIZE;
4625 #ifdef CONFIG_KUSER_HELPERS
4626 @@ -1379,8 +1417,10 @@ static void __init kmap_init(void)
4627 static void __init map_lowmem(void)
4628 {
4629 struct memblock_region *reg;
4630 +#ifndef CONFIG_PAX_KERNEXEC
4631 phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
4632 phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
4633 +#endif
4634
4635 /* Map all the lowmem memory banks. */
4636 for_each_memblock(memory, reg) {
4637 @@ -1393,11 +1433,48 @@ static void __init map_lowmem(void)
4638 if (start >= end)
4639 break;
4640
4641 +#ifdef CONFIG_PAX_KERNEXEC
4642 + map.pfn = __phys_to_pfn(start);
4643 + map.virtual = __phys_to_virt(start);
4644 + map.length = end - start;
4645 +
4646 + if (map.virtual <= (unsigned long)_stext && ((unsigned long)_end < (map.virtual + map.length))) {
4647 + struct map_desc kernel;
4648 + struct map_desc initmap;
4649 +
4650 + /* when freeing initmem we will make this RW */
4651 + initmap.pfn = __phys_to_pfn(__pa(__init_begin));
4652 + initmap.virtual = (unsigned long)__init_begin;
4653 + initmap.length = _sdata - __init_begin;
4654 + initmap.type = __MT_MEMORY_RWX;
4655 + create_mapping(&initmap);
4656 +
4657 + /* when freeing initmem we will make this RX */
4658 + kernel.pfn = __phys_to_pfn(__pa(_stext));
4659 + kernel.virtual = (unsigned long)_stext;
4660 + kernel.length = __init_begin - _stext;
4661 + kernel.type = __MT_MEMORY_RWX;
4662 + create_mapping(&kernel);
4663 +
4664 + if (map.virtual < (unsigned long)_stext) {
4665 + map.length = (unsigned long)_stext - map.virtual;
4666 + map.type = __MT_MEMORY_RWX;
4667 + create_mapping(&map);
4668 + }
4669 +
4670 + map.pfn = __phys_to_pfn(__pa(_sdata));
4671 + map.virtual = (unsigned long)_sdata;
4672 + map.length = end - __pa(_sdata);
4673 + }
4674 +
4675 + map.type = MT_MEMORY_RW;
4676 + create_mapping(&map);
4677 +#else
4678 if (end < kernel_x_start) {
4679 map.pfn = __phys_to_pfn(start);
4680 map.virtual = __phys_to_virt(start);
4681 map.length = end - start;
4682 - map.type = MT_MEMORY_RWX;
4683 + map.type = __MT_MEMORY_RWX;
4684
4685 create_mapping(&map);
4686 } else if (start >= kernel_x_end) {
4687 @@ -1421,7 +1498,7 @@ static void __init map_lowmem(void)
4688 map.pfn = __phys_to_pfn(kernel_x_start);
4689 map.virtual = __phys_to_virt(kernel_x_start);
4690 map.length = kernel_x_end - kernel_x_start;
4691 - map.type = MT_MEMORY_RWX;
4692 + map.type = __MT_MEMORY_RWX;
4693
4694 create_mapping(&map);
4695
4696 @@ -1434,6 +1511,7 @@ static void __init map_lowmem(void)
4697 create_mapping(&map);
4698 }
4699 }
4700 +#endif
4701 }
4702 }
4703
4704 diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
4705 index b8efb8c..88fa837 100644
4706 --- a/arch/arm/net/bpf_jit_32.c
4707 +++ b/arch/arm/net/bpf_jit_32.c
4708 @@ -20,6 +20,7 @@
4709 #include <asm/cacheflush.h>
4710 #include <asm/hwcap.h>
4711 #include <asm/opcodes.h>
4712 +#include <asm/pgtable.h>
4713
4714 #include "bpf_jit_32.h"
4715
4716 @@ -72,54 +73,38 @@ struct jit_ctx {
4717 #endif
4718 };
4719
4720 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
4721 +int bpf_jit_enable __read_only;
4722 +#else
4723 int bpf_jit_enable __read_mostly;
4724 +#endif
4725
4726 -static inline int call_neg_helper(struct sk_buff *skb, int offset, void *ret,
4727 - unsigned int size)
4728 -{
4729 - void *ptr = bpf_internal_load_pointer_neg_helper(skb, offset, size);
4730 -
4731 - if (!ptr)
4732 - return -EFAULT;
4733 - memcpy(ret, ptr, size);
4734 - return 0;
4735 -}
4736 -
4737 -static u64 jit_get_skb_b(struct sk_buff *skb, int offset)
4738 +static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
4739 {
4740 u8 ret;
4741 int err;
4742
4743 - if (offset < 0)
4744 - err = call_neg_helper(skb, offset, &ret, 1);
4745 - else
4746 - err = skb_copy_bits(skb, offset, &ret, 1);
4747 + err = skb_copy_bits(skb, offset, &ret, 1);
4748
4749 return (u64)err << 32 | ret;
4750 }
4751
4752 -static u64 jit_get_skb_h(struct sk_buff *skb, int offset)
4753 +static u64 jit_get_skb_h(struct sk_buff *skb, unsigned offset)
4754 {
4755 u16 ret;
4756 int err;
4757
4758 - if (offset < 0)
4759 - err = call_neg_helper(skb, offset, &ret, 2);
4760 - else
4761 - err = skb_copy_bits(skb, offset, &ret, 2);
4762 + err = skb_copy_bits(skb, offset, &ret, 2);
4763
4764 return (u64)err << 32 | ntohs(ret);
4765 }
4766
4767 -static u64 jit_get_skb_w(struct sk_buff *skb, int offset)
4768 +static u64 jit_get_skb_w(struct sk_buff *skb, unsigned offset)
4769 {
4770 u32 ret;
4771 int err;
4772
4773 - if (offset < 0)
4774 - err = call_neg_helper(skb, offset, &ret, 4);
4775 - else
4776 - err = skb_copy_bits(skb, offset, &ret, 4);
4777 + err = skb_copy_bits(skb, offset, &ret, 4);
4778
4779 return (u64)err << 32 | ntohl(ret);
4780 }
4781 @@ -199,8 +184,10 @@ static void jit_fill_hole(void *area, unsigned int size)
4782 {
4783 u32 *ptr;
4784 /* We are guaranteed to have aligned memory. */
4785 + pax_open_kernel();
4786 for (ptr = area; size >= sizeof(u32); size -= sizeof(u32))
4787 *ptr++ = __opcode_to_mem_arm(ARM_INST_UDF);
4788 + pax_close_kernel();
4789 }
4790
4791 static void build_prologue(struct jit_ctx *ctx)
4792 @@ -556,6 +543,9 @@ static int build_body(struct jit_ctx *ctx)
4793 case BPF_LD | BPF_B | BPF_ABS:
4794 load_order = 0;
4795 load:
4796 + /* the interpreter will deal with the negative K */
4797 + if ((int)k < 0)
4798 + return -ENOTSUPP;
4799 emit_mov_i(r_off, k, ctx);
4800 load_common:
4801 ctx->seen |= SEEN_DATA | SEEN_CALL;
4802 @@ -570,18 +560,6 @@ load_common:
4803 condt = ARM_COND_HI;
4804 }
4805
4806 - /*
4807 - * test for negative offset, only if we are
4808 - * currently scheduled to take the fast
4809 - * path. this will update the flags so that
4810 - * the slowpath instruction are ignored if the
4811 - * offset is negative.
4812 - *
4813 - * for loard_order == 0 the HI condition will
4814 - * make loads at offset 0 take the slow path too.
4815 - */
4816 - _emit(condt, ARM_CMP_I(r_off, 0), ctx);
4817 -
4818 _emit(condt, ARM_ADD_R(r_scratch, r_off, r_skb_data),
4819 ctx);
4820
4821 diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
4822 index 5b217f4..c23f40e 100644
4823 --- a/arch/arm/plat-iop/setup.c
4824 +++ b/arch/arm/plat-iop/setup.c
4825 @@ -24,7 +24,7 @@ static struct map_desc iop3xx_std_desc[] __initdata = {
4826 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
4827 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
4828 .length = IOP3XX_PERIPHERAL_SIZE,
4829 - .type = MT_UNCACHED,
4830 + .type = MT_UNCACHED_RW,
4831 },
4832 };
4833
4834 diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
4835 index a5bc92d..0bb4730 100644
4836 --- a/arch/arm/plat-omap/sram.c
4837 +++ b/arch/arm/plat-omap/sram.c
4838 @@ -93,6 +93,8 @@ void __init omap_map_sram(unsigned long start, unsigned long size,
4839 * Looks like we need to preserve some bootloader code at the
4840 * beginning of SRAM for jumping to flash for reboot to work...
4841 */
4842 + pax_open_kernel();
4843 memset_io(omap_sram_base + omap_sram_skip, 0,
4844 omap_sram_size - omap_sram_skip);
4845 + pax_close_kernel();
4846 }
4847 diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug
4848 index d6285ef..b684dac 100644
4849 --- a/arch/arm64/Kconfig.debug
4850 +++ b/arch/arm64/Kconfig.debug
4851 @@ -10,6 +10,7 @@ config ARM64_PTDUMP
4852 bool "Export kernel pagetable layout to userspace via debugfs"
4853 depends on DEBUG_KERNEL
4854 select DEBUG_FS
4855 + depends on !GRKERNSEC_KMEM
4856 help
4857 Say Y here if you want to show the kernel pagetable layout in a
4858 debugfs file. This information is only useful for kernel developers
4859 diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
4860 index 35a6778..caabbd36 100644
4861 --- a/arch/arm64/include/asm/atomic.h
4862 +++ b/arch/arm64/include/asm/atomic.h
4863 @@ -91,5 +91,15 @@
4864
4865 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
4866
4867 +#define atomic64_read_unchecked(v) atomic64_read(v)
4868 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
4869 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
4870 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
4871 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
4872 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
4873 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
4874 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
4875 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
4876 +
4877 #endif
4878 #endif
4879 diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
4880 index 0a456be..7799ff5 100644
4881 --- a/arch/arm64/include/asm/percpu.h
4882 +++ b/arch/arm64/include/asm/percpu.h
4883 @@ -127,16 +127,16 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size)
4884 {
4885 switch (size) {
4886 case 1:
4887 - ACCESS_ONCE(*(u8 *)ptr) = (u8)val;
4888 + ACCESS_ONCE_RW(*(u8 *)ptr) = (u8)val;
4889 break;
4890 case 2:
4891 - ACCESS_ONCE(*(u16 *)ptr) = (u16)val;
4892 + ACCESS_ONCE_RW(*(u16 *)ptr) = (u16)val;
4893 break;
4894 case 4:
4895 - ACCESS_ONCE(*(u32 *)ptr) = (u32)val;
4896 + ACCESS_ONCE_RW(*(u32 *)ptr) = (u32)val;
4897 break;
4898 case 8:
4899 - ACCESS_ONCE(*(u64 *)ptr) = (u64)val;
4900 + ACCESS_ONCE_RW(*(u64 *)ptr) = (u64)val;
4901 break;
4902 default:
4903 BUILD_BUG();
4904 diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
4905 index 7642056..bffc904 100644
4906 --- a/arch/arm64/include/asm/pgalloc.h
4907 +++ b/arch/arm64/include/asm/pgalloc.h
4908 @@ -46,6 +46,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
4909 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
4910 }
4911
4912 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
4913 +{
4914 + pud_populate(mm, pud, pmd);
4915 +}
4916 +
4917 #endif /* CONFIG_PGTABLE_LEVELS > 2 */
4918
4919 #if CONFIG_PGTABLE_LEVELS > 3
4920 diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
4921 index b2ede967..865eed5 100644
4922 --- a/arch/arm64/include/asm/uaccess.h
4923 +++ b/arch/arm64/include/asm/uaccess.h
4924 @@ -102,6 +102,7 @@ static inline void set_fs(mm_segment_t fs)
4925 flag; \
4926 })
4927
4928 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
4929 #define access_ok(type, addr, size) __range_ok(addr, size)
4930 #define user_addr_max get_fs
4931
4932 diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
4933 index 99224dc..148dfb7 100644
4934 --- a/arch/arm64/mm/dma-mapping.c
4935 +++ b/arch/arm64/mm/dma-mapping.c
4936 @@ -134,7 +134,7 @@ static void __dma_free_coherent(struct device *dev, size_t size,
4937 phys_to_page(paddr),
4938 size >> PAGE_SHIFT);
4939 if (!freed)
4940 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
4941 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
4942 }
4943
4944 static void *__dma_alloc(struct device *dev, size_t size,
4945 diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
4946 index c3a58a1..78fbf54 100644
4947 --- a/arch/avr32/include/asm/cache.h
4948 +++ b/arch/avr32/include/asm/cache.h
4949 @@ -1,8 +1,10 @@
4950 #ifndef __ASM_AVR32_CACHE_H
4951 #define __ASM_AVR32_CACHE_H
4952
4953 +#include <linux/const.h>
4954 +
4955 #define L1_CACHE_SHIFT 5
4956 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
4957 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4958
4959 /*
4960 * Memory returned by kmalloc() may be used for DMA, so we must make
4961 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
4962 index 0388ece..87c8df1 100644
4963 --- a/arch/avr32/include/asm/elf.h
4964 +++ b/arch/avr32/include/asm/elf.h
4965 @@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpregset_t;
4966 the loader. We need to make sure that it is out of the way of the program
4967 that it will "exec", and that there is sufficient room for the brk. */
4968
4969 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
4970 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
4971
4972 +#ifdef CONFIG_PAX_ASLR
4973 +#define PAX_ELF_ET_DYN_BASE 0x00001000UL
4974 +
4975 +#define PAX_DELTA_MMAP_LEN 15
4976 +#define PAX_DELTA_STACK_LEN 15
4977 +#endif
4978
4979 /* This yields a mask that user programs can use to figure out what
4980 instruction set this CPU supports. This could be done in user space,
4981 diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h
4982 index 479330b..53717a8 100644
4983 --- a/arch/avr32/include/asm/kmap_types.h
4984 +++ b/arch/avr32/include/asm/kmap_types.h
4985 @@ -2,9 +2,9 @@
4986 #define __ASM_AVR32_KMAP_TYPES_H
4987
4988 #ifdef CONFIG_DEBUG_HIGHMEM
4989 -# define KM_TYPE_NR 29
4990 +# define KM_TYPE_NR 30
4991 #else
4992 -# define KM_TYPE_NR 14
4993 +# define KM_TYPE_NR 15
4994 #endif
4995
4996 #endif /* __ASM_AVR32_KMAP_TYPES_H */
4997 diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
4998 index c035339..e1fa594 100644
4999 --- a/arch/avr32/mm/fault.c
5000 +++ b/arch/avr32/mm/fault.c
5001 @@ -41,6 +41,23 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
5002
5003 int exception_trace = 1;
5004
5005 +#ifdef CONFIG_PAX_PAGEEXEC
5006 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5007 +{
5008 + unsigned long i;
5009 +
5010 + printk(KERN_ERR "PAX: bytes at PC: ");
5011 + for (i = 0; i < 20; i++) {
5012 + unsigned char c;
5013 + if (get_user(c, (unsigned char *)pc+i))
5014 + printk(KERN_CONT "???????? ");
5015 + else
5016 + printk(KERN_CONT "%02x ", c);
5017 + }
5018 + printk("\n");
5019 +}
5020 +#endif
5021 +
5022 /*
5023 * This routine handles page faults. It determines the address and the
5024 * problem, and then passes it off to one of the appropriate routines.
5025 @@ -178,6 +195,16 @@ bad_area:
5026 up_read(&mm->mmap_sem);
5027
5028 if (user_mode(regs)) {
5029 +
5030 +#ifdef CONFIG_PAX_PAGEEXEC
5031 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
5032 + if (ecr == ECR_PROTECTION_X || ecr == ECR_TLB_MISS_X) {
5033 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->sp);
5034 + do_group_exit(SIGKILL);
5035 + }
5036 + }
5037 +#endif
5038 +
5039 if (exception_trace && printk_ratelimit())
5040 printk("%s%s[%d]: segfault at %08lx pc %08lx "
5041 "sp %08lx ecr %lu\n",
5042 diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
5043 index f3337ee..15b6f8d 100644
5044 --- a/arch/blackfin/Kconfig.debug
5045 +++ b/arch/blackfin/Kconfig.debug
5046 @@ -18,6 +18,7 @@ config DEBUG_VERBOSE
5047 config DEBUG_MMRS
5048 tristate "Generate Blackfin MMR tree"
5049 select DEBUG_FS
5050 + depends on !GRKERNSEC_KMEM
5051 help
5052 Create a tree of Blackfin MMRs via the debugfs tree. If
5053 you enable this, you will find all MMRs laid out in the
5054 diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
5055 index 568885a..f8008df 100644
5056 --- a/arch/blackfin/include/asm/cache.h
5057 +++ b/arch/blackfin/include/asm/cache.h
5058 @@ -7,6 +7,7 @@
5059 #ifndef __ARCH_BLACKFIN_CACHE_H
5060 #define __ARCH_BLACKFIN_CACHE_H
5061
5062 +#include <linux/const.h>
5063 #include <linux/linkage.h> /* for asmlinkage */
5064
5065 /*
5066 @@ -14,7 +15,7 @@
5067 * Blackfin loads 32 bytes for cache
5068 */
5069 #define L1_CACHE_SHIFT 5
5070 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5071 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5072 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5073
5074 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5075 diff --git a/arch/cris/include/arch-v10/arch/cache.h b/arch/cris/include/arch-v10/arch/cache.h
5076 index aea2718..3639a60 100644
5077 --- a/arch/cris/include/arch-v10/arch/cache.h
5078 +++ b/arch/cris/include/arch-v10/arch/cache.h
5079 @@ -1,8 +1,9 @@
5080 #ifndef _ASM_ARCH_CACHE_H
5081 #define _ASM_ARCH_CACHE_H
5082
5083 +#include <linux/const.h>
5084 /* Etrax 100LX have 32-byte cache-lines. */
5085 -#define L1_CACHE_BYTES 32
5086 #define L1_CACHE_SHIFT 5
5087 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5088
5089 #endif /* _ASM_ARCH_CACHE_H */
5090 diff --git a/arch/cris/include/arch-v32/arch/cache.h b/arch/cris/include/arch-v32/arch/cache.h
5091 index 7caf25d..ee65ac5 100644
5092 --- a/arch/cris/include/arch-v32/arch/cache.h
5093 +++ b/arch/cris/include/arch-v32/arch/cache.h
5094 @@ -1,11 +1,12 @@
5095 #ifndef _ASM_CRIS_ARCH_CACHE_H
5096 #define _ASM_CRIS_ARCH_CACHE_H
5097
5098 +#include <linux/const.h>
5099 #include <arch/hwregs/dma.h>
5100
5101 /* A cache-line is 32 bytes. */
5102 -#define L1_CACHE_BYTES 32
5103 #define L1_CACHE_SHIFT 5
5104 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5105
5106 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
5107
5108 diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h
5109 index 0da689d..3aad5fb 100644
5110 --- a/arch/frv/include/asm/atomic.h
5111 +++ b/arch/frv/include/asm/atomic.h
5112 @@ -166,6 +166,16 @@ static inline void atomic64_dec(atomic64_t *v)
5113 #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter))
5114 #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter))
5115
5116 +#define atomic64_read_unchecked(v) atomic64_read(v)
5117 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5118 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5119 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5120 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5121 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5122 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5123 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5124 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5125 +
5126 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5127 {
5128 int c, old;
5129 diff --git a/arch/frv/include/asm/cache.h b/arch/frv/include/asm/cache.h
5130 index 2797163..c2a401df9 100644
5131 --- a/arch/frv/include/asm/cache.h
5132 +++ b/arch/frv/include/asm/cache.h
5133 @@ -12,10 +12,11 @@
5134 #ifndef __ASM_CACHE_H
5135 #define __ASM_CACHE_H
5136
5137 +#include <linux/const.h>
5138
5139 /* bytes per L1 cache line */
5140 #define L1_CACHE_SHIFT (CONFIG_FRV_L1_CACHE_SHIFT)
5141 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5142 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5143
5144 #define __cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5145 #define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5146 diff --git a/arch/frv/include/asm/kmap_types.h b/arch/frv/include/asm/kmap_types.h
5147 index 43901f2..0d8b865 100644
5148 --- a/arch/frv/include/asm/kmap_types.h
5149 +++ b/arch/frv/include/asm/kmap_types.h
5150 @@ -2,6 +2,6 @@
5151 #ifndef _ASM_KMAP_TYPES_H
5152 #define _ASM_KMAP_TYPES_H
5153
5154 -#define KM_TYPE_NR 17
5155 +#define KM_TYPE_NR 18
5156
5157 #endif
5158 diff --git a/arch/frv/mm/elf-fdpic.c b/arch/frv/mm/elf-fdpic.c
5159 index 836f147..4cf23f5 100644
5160 --- a/arch/frv/mm/elf-fdpic.c
5161 +++ b/arch/frv/mm/elf-fdpic.c
5162 @@ -61,6 +61,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5163 {
5164 struct vm_area_struct *vma;
5165 struct vm_unmapped_area_info info;
5166 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
5167
5168 if (len > TASK_SIZE)
5169 return -ENOMEM;
5170 @@ -73,8 +74,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5171 if (addr) {
5172 addr = PAGE_ALIGN(addr);
5173 vma = find_vma(current->mm, addr);
5174 - if (TASK_SIZE - len >= addr &&
5175 - (!vma || addr + len <= vma->vm_start))
5176 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
5177 goto success;
5178 }
5179
5180 @@ -85,6 +85,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5181 info.high_limit = (current->mm->start_stack - 0x00200000);
5182 info.align_mask = 0;
5183 info.align_offset = 0;
5184 + info.threadstack_offset = offset;
5185 addr = vm_unmapped_area(&info);
5186 if (!(addr & ~PAGE_MASK))
5187 goto success;
5188 diff --git a/arch/hexagon/include/asm/cache.h b/arch/hexagon/include/asm/cache.h
5189 index 69952c18..4fa2908 100644
5190 --- a/arch/hexagon/include/asm/cache.h
5191 +++ b/arch/hexagon/include/asm/cache.h
5192 @@ -21,9 +21,11 @@
5193 #ifndef __ASM_CACHE_H
5194 #define __ASM_CACHE_H
5195
5196 +#include <linux/const.h>
5197 +
5198 /* Bytes per L1 cache line */
5199 -#define L1_CACHE_SHIFT (5)
5200 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5201 +#define L1_CACHE_SHIFT 5
5202 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5203
5204 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5205
5206 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
5207 index eb0249e..388ff32 100644
5208 --- a/arch/ia64/Kconfig
5209 +++ b/arch/ia64/Kconfig
5210 @@ -519,6 +519,7 @@ config KEXEC
5211 bool "kexec system call"
5212 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
5213 select KEXEC_CORE
5214 + depends on !GRKERNSEC_KMEM
5215 help
5216 kexec is a system call that implements the ability to shutdown your
5217 current kernel, and to start another kernel. It is like a reboot
5218 diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
5219 index 970d0bd..e750b9b 100644
5220 --- a/arch/ia64/Makefile
5221 +++ b/arch/ia64/Makefile
5222 @@ -98,5 +98,6 @@ endef
5223 archprepare: make_nr_irqs_h FORCE
5224 PHONY += make_nr_irqs_h FORCE
5225
5226 +make_nr_irqs_h: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
5227 make_nr_irqs_h: FORCE
5228 $(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
5229 diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
5230 index be4beeb..c0ec564 100644
5231 --- a/arch/ia64/include/asm/atomic.h
5232 +++ b/arch/ia64/include/asm/atomic.h
5233 @@ -209,4 +209,14 @@ atomic64_add_negative (__s64 i, atomic64_t *v)
5234 #define atomic64_inc(v) atomic64_add(1, (v))
5235 #define atomic64_dec(v) atomic64_sub(1, (v))
5236
5237 +#define atomic64_read_unchecked(v) atomic64_read(v)
5238 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5239 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5240 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5241 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5242 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5243 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5244 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5245 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5246 +
5247 #endif /* _ASM_IA64_ATOMIC_H */
5248 diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h
5249 index 988254a..e1ee885 100644
5250 --- a/arch/ia64/include/asm/cache.h
5251 +++ b/arch/ia64/include/asm/cache.h
5252 @@ -1,6 +1,7 @@
5253 #ifndef _ASM_IA64_CACHE_H
5254 #define _ASM_IA64_CACHE_H
5255
5256 +#include <linux/const.h>
5257
5258 /*
5259 * Copyright (C) 1998-2000 Hewlett-Packard Co
5260 @@ -9,7 +10,7 @@
5261
5262 /* Bytes per L1 (data) cache line. */
5263 #define L1_CACHE_SHIFT CONFIG_IA64_L1_CACHE_SHIFT
5264 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5265 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5266
5267 #ifdef CONFIG_SMP
5268 # define SMP_CACHE_SHIFT L1_CACHE_SHIFT
5269 diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
5270 index 5a83c5c..4d7f553 100644
5271 --- a/arch/ia64/include/asm/elf.h
5272 +++ b/arch/ia64/include/asm/elf.h
5273 @@ -42,6 +42,13 @@
5274 */
5275 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
5276
5277 +#ifdef CONFIG_PAX_ASLR
5278 +#define PAX_ELF_ET_DYN_BASE (current->personality == PER_LINUX32 ? 0x08048000UL : 0x4000000000000000UL)
5279 +
5280 +#define PAX_DELTA_MMAP_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5281 +#define PAX_DELTA_STACK_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5282 +#endif
5283 +
5284 #define PT_IA_64_UNWIND 0x70000001
5285
5286 /* IA-64 relocations: */
5287 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
5288 index f5e70e9..624fad5 100644
5289 --- a/arch/ia64/include/asm/pgalloc.h
5290 +++ b/arch/ia64/include/asm/pgalloc.h
5291 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5292 pgd_val(*pgd_entry) = __pa(pud);
5293 }
5294
5295 +static inline void
5296 +pgd_populate_kernel(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5297 +{
5298 + pgd_populate(mm, pgd_entry, pud);
5299 +}
5300 +
5301 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
5302 {
5303 return quicklist_alloc(0, GFP_KERNEL, NULL);
5304 @@ -57,6 +63,12 @@ pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5305 pud_val(*pud_entry) = __pa(pmd);
5306 }
5307
5308 +static inline void
5309 +pud_populate_kernel(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5310 +{
5311 + pud_populate(mm, pud_entry, pmd);
5312 +}
5313 +
5314 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
5315 {
5316 return quicklist_alloc(0, GFP_KERNEL, NULL);
5317 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
5318 index 9f3ed9e..c99b418 100644
5319 --- a/arch/ia64/include/asm/pgtable.h
5320 +++ b/arch/ia64/include/asm/pgtable.h
5321 @@ -12,7 +12,7 @@
5322 * David Mosberger-Tang <davidm@hpl.hp.com>
5323 */
5324
5325 -
5326 +#include <linux/const.h>
5327 #include <asm/mman.h>
5328 #include <asm/page.h>
5329 #include <asm/processor.h>
5330 @@ -139,6 +139,17 @@
5331 #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5332 #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5333 #define PAGE_COPY_EXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX)
5334 +
5335 +#ifdef CONFIG_PAX_PAGEEXEC
5336 +# define PAGE_SHARED_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RW)
5337 +# define PAGE_READONLY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5338 +# define PAGE_COPY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5339 +#else
5340 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
5341 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
5342 +# define PAGE_COPY_NOEXEC PAGE_COPY
5343 +#endif
5344 +
5345 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
5346 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
5347 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
5348 diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
5349 index 45698cd..e8e2dbc 100644
5350 --- a/arch/ia64/include/asm/spinlock.h
5351 +++ b/arch/ia64/include/asm/spinlock.h
5352 @@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
5353 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
5354
5355 asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
5356 - ACCESS_ONCE(*p) = (tmp + 2) & ~1;
5357 + ACCESS_ONCE_RW(*p) = (tmp + 2) & ~1;
5358 }
5359
5360 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
5361 diff --git a/arch/ia64/include/asm/uaccess.h b/arch/ia64/include/asm/uaccess.h
5362 index 4f3fb6cc..254055e 100644
5363 --- a/arch/ia64/include/asm/uaccess.h
5364 +++ b/arch/ia64/include/asm/uaccess.h
5365 @@ -70,6 +70,7 @@
5366 && ((segment).seg == KERNEL_DS.seg \
5367 || likely(REGION_OFFSET((unsigned long) (addr)) < RGN_MAP_LIMIT))); \
5368 })
5369 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5370 #define access_ok(type, addr, size) __access_ok((addr), (size), get_fs())
5371
5372 /*
5373 @@ -241,12 +242,24 @@ extern unsigned long __must_check __copy_user (void __user *to, const void __use
5374 static inline unsigned long
5375 __copy_to_user (void __user *to, const void *from, unsigned long count)
5376 {
5377 + if (count > INT_MAX)
5378 + return count;
5379 +
5380 + if (!__builtin_constant_p(count))
5381 + check_object_size(from, count, true);
5382 +
5383 return __copy_user(to, (__force void __user *) from, count);
5384 }
5385
5386 static inline unsigned long
5387 __copy_from_user (void *to, const void __user *from, unsigned long count)
5388 {
5389 + if (count > INT_MAX)
5390 + return count;
5391 +
5392 + if (!__builtin_constant_p(count))
5393 + check_object_size(to, count, false);
5394 +
5395 return __copy_user((__force void __user *) to, from, count);
5396 }
5397
5398 @@ -256,10 +269,13 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5399 ({ \
5400 void __user *__cu_to = (to); \
5401 const void *__cu_from = (from); \
5402 - long __cu_len = (n); \
5403 + unsigned long __cu_len = (n); \
5404 \
5405 - if (__access_ok(__cu_to, __cu_len, get_fs())) \
5406 + if (__cu_len <= INT_MAX && __access_ok(__cu_to, __cu_len, get_fs())) { \
5407 + if (!__builtin_constant_p(n)) \
5408 + check_object_size(__cu_from, __cu_len, true); \
5409 __cu_len = __copy_user(__cu_to, (__force void __user *) __cu_from, __cu_len); \
5410 + } \
5411 __cu_len; \
5412 })
5413
5414 @@ -267,11 +283,14 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5415 ({ \
5416 void *__cu_to = (to); \
5417 const void __user *__cu_from = (from); \
5418 - long __cu_len = (n); \
5419 + unsigned long __cu_len = (n); \
5420 \
5421 __chk_user_ptr(__cu_from); \
5422 - if (__access_ok(__cu_from, __cu_len, get_fs())) \
5423 + if (__cu_len <= INT_MAX && __access_ok(__cu_from, __cu_len, get_fs())) { \
5424 + if (!__builtin_constant_p(n)) \
5425 + check_object_size(__cu_to, __cu_len, false); \
5426 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
5427 + } \
5428 __cu_len; \
5429 })
5430
5431 diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
5432 index b15933c..098b1c8 100644
5433 --- a/arch/ia64/kernel/module.c
5434 +++ b/arch/ia64/kernel/module.c
5435 @@ -484,15 +484,39 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings,
5436 }
5437
5438 static inline int
5439 +in_init_rx (const struct module *mod, uint64_t addr)
5440 +{
5441 + return addr - (uint64_t) mod->module_init_rx < mod->init_size_rx;
5442 +}
5443 +
5444 +static inline int
5445 +in_init_rw (const struct module *mod, uint64_t addr)
5446 +{
5447 + return addr - (uint64_t) mod->module_init_rw < mod->init_size_rw;
5448 +}
5449 +
5450 +static inline int
5451 in_init (const struct module *mod, uint64_t addr)
5452 {
5453 - return addr - (uint64_t) mod->module_init < mod->init_size;
5454 + return in_init_rx(mod, addr) || in_init_rw(mod, addr);
5455 +}
5456 +
5457 +static inline int
5458 +in_core_rx (const struct module *mod, uint64_t addr)
5459 +{
5460 + return addr - (uint64_t) mod->module_core_rx < mod->core_size_rx;
5461 +}
5462 +
5463 +static inline int
5464 +in_core_rw (const struct module *mod, uint64_t addr)
5465 +{
5466 + return addr - (uint64_t) mod->module_core_rw < mod->core_size_rw;
5467 }
5468
5469 static inline int
5470 in_core (const struct module *mod, uint64_t addr)
5471 {
5472 - return addr - (uint64_t) mod->module_core < mod->core_size;
5473 + return in_core_rx(mod, addr) || in_core_rw(mod, addr);
5474 }
5475
5476 static inline int
5477 @@ -675,7 +699,14 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
5478 break;
5479
5480 case RV_BDREL:
5481 - val -= (uint64_t) (in_init(mod, val) ? mod->module_init : mod->module_core);
5482 + if (in_init_rx(mod, val))
5483 + val -= (uint64_t) mod->module_init_rx;
5484 + else if (in_init_rw(mod, val))
5485 + val -= (uint64_t) mod->module_init_rw;
5486 + else if (in_core_rx(mod, val))
5487 + val -= (uint64_t) mod->module_core_rx;
5488 + else if (in_core_rw(mod, val))
5489 + val -= (uint64_t) mod->module_core_rw;
5490 break;
5491
5492 case RV_LTV:
5493 @@ -810,15 +841,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind
5494 * addresses have been selected...
5495 */
5496 uint64_t gp;
5497 - if (mod->core_size > MAX_LTOFF)
5498 + if (mod->core_size_rx + mod->core_size_rw > MAX_LTOFF)
5499 /*
5500 * This takes advantage of fact that SHF_ARCH_SMALL gets allocated
5501 * at the end of the module.
5502 */
5503 - gp = mod->core_size - MAX_LTOFF / 2;
5504 + gp = mod->core_size_rx + mod->core_size_rw - MAX_LTOFF / 2;
5505 else
5506 - gp = mod->core_size / 2;
5507 - gp = (uint64_t) mod->module_core + ((gp + 7) & -8);
5508 + gp = (mod->core_size_rx + mod->core_size_rw) / 2;
5509 + gp = (uint64_t) mod->module_core_rx + ((gp + 7) & -8);
5510 mod->arch.gp = gp;
5511 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
5512 }
5513 diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
5514 index c39c3cd..3c77738 100644
5515 --- a/arch/ia64/kernel/palinfo.c
5516 +++ b/arch/ia64/kernel/palinfo.c
5517 @@ -980,7 +980,7 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
5518 return NOTIFY_OK;
5519 }
5520
5521 -static struct notifier_block __refdata palinfo_cpu_notifier =
5522 +static struct notifier_block palinfo_cpu_notifier =
5523 {
5524 .notifier_call = palinfo_cpu_callback,
5525 .priority = 0,
5526 diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
5527 index 41e33f8..65180b2a 100644
5528 --- a/arch/ia64/kernel/sys_ia64.c
5529 +++ b/arch/ia64/kernel/sys_ia64.c
5530 @@ -28,6 +28,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5531 unsigned long align_mask = 0;
5532 struct mm_struct *mm = current->mm;
5533 struct vm_unmapped_area_info info;
5534 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
5535
5536 if (len > RGN_MAP_LIMIT)
5537 return -ENOMEM;
5538 @@ -43,6 +44,13 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5539 if (REGION_NUMBER(addr) == RGN_HPAGE)
5540 addr = 0;
5541 #endif
5542 +
5543 +#ifdef CONFIG_PAX_RANDMMAP
5544 + if (mm->pax_flags & MF_PAX_RANDMMAP)
5545 + addr = mm->free_area_cache;
5546 + else
5547 +#endif
5548 +
5549 if (!addr)
5550 addr = TASK_UNMAPPED_BASE;
5551
5552 @@ -61,6 +69,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5553 info.high_limit = TASK_SIZE;
5554 info.align_mask = align_mask;
5555 info.align_offset = 0;
5556 + info.threadstack_offset = offset;
5557 return vm_unmapped_area(&info);
5558 }
5559
5560 diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
5561 index dc506b0..39baade 100644
5562 --- a/arch/ia64/kernel/vmlinux.lds.S
5563 +++ b/arch/ia64/kernel/vmlinux.lds.S
5564 @@ -171,7 +171,7 @@ SECTIONS {
5565 /* Per-cpu data: */
5566 . = ALIGN(PERCPU_PAGE_SIZE);
5567 PERCPU_VADDR(SMP_CACHE_BYTES, PERCPU_ADDR, :percpu)
5568 - __phys_per_cpu_start = __per_cpu_load;
5569 + __phys_per_cpu_start = per_cpu_load;
5570 /*
5571 * ensure percpu data fits
5572 * into percpu page size
5573 diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
5574 index 70b40d1..01a9a28 100644
5575 --- a/arch/ia64/mm/fault.c
5576 +++ b/arch/ia64/mm/fault.c
5577 @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
5578 return pte_present(pte);
5579 }
5580
5581 +#ifdef CONFIG_PAX_PAGEEXEC
5582 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5583 +{
5584 + unsigned long i;
5585 +
5586 + printk(KERN_ERR "PAX: bytes at PC: ");
5587 + for (i = 0; i < 8; i++) {
5588 + unsigned int c;
5589 + if (get_user(c, (unsigned int *)pc+i))
5590 + printk(KERN_CONT "???????? ");
5591 + else
5592 + printk(KERN_CONT "%08x ", c);
5593 + }
5594 + printk("\n");
5595 +}
5596 +#endif
5597 +
5598 # define VM_READ_BIT 0
5599 # define VM_WRITE_BIT 1
5600 # define VM_EXEC_BIT 2
5601 @@ -151,8 +168,21 @@ retry:
5602 if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
5603 goto bad_area;
5604
5605 - if ((vma->vm_flags & mask) != mask)
5606 + if ((vma->vm_flags & mask) != mask) {
5607 +
5608 +#ifdef CONFIG_PAX_PAGEEXEC
5609 + if (!(vma->vm_flags & VM_EXEC) && (mask & VM_EXEC)) {
5610 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->cr_iip)
5611 + goto bad_area;
5612 +
5613 + up_read(&mm->mmap_sem);
5614 + pax_report_fault(regs, (void *)regs->cr_iip, (void *)regs->r12);
5615 + do_group_exit(SIGKILL);
5616 + }
5617 +#endif
5618 +
5619 goto bad_area;
5620 + }
5621
5622 /*
5623 * If for any reason at all we couldn't handle the fault, make
5624 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
5625 index f50d4b3..c7975ee 100644
5626 --- a/arch/ia64/mm/hugetlbpage.c
5627 +++ b/arch/ia64/mm/hugetlbpage.c
5628 @@ -138,6 +138,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5629 unsigned long pgoff, unsigned long flags)
5630 {
5631 struct vm_unmapped_area_info info;
5632 + unsigned long offset = gr_rand_threadstack_offset(current->mm, file, flags);
5633
5634 if (len > RGN_MAP_LIMIT)
5635 return -ENOMEM;
5636 @@ -161,6 +162,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5637 info.high_limit = HPAGE_REGION_BASE + RGN_MAP_LIMIT;
5638 info.align_mask = PAGE_MASK & (HPAGE_SIZE - 1);
5639 info.align_offset = 0;
5640 + info.threadstack_offset = offset;
5641 return vm_unmapped_area(&info);
5642 }
5643
5644 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
5645 index 1841ef6..74d8330 100644
5646 --- a/arch/ia64/mm/init.c
5647 +++ b/arch/ia64/mm/init.c
5648 @@ -119,6 +119,19 @@ ia64_init_addr_space (void)
5649 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
5650 vma->vm_end = vma->vm_start + PAGE_SIZE;
5651 vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT;
5652 +
5653 +#ifdef CONFIG_PAX_PAGEEXEC
5654 + if (current->mm->pax_flags & MF_PAX_PAGEEXEC) {
5655 + vma->vm_flags &= ~VM_EXEC;
5656 +
5657 +#ifdef CONFIG_PAX_MPROTECT
5658 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
5659 + vma->vm_flags &= ~VM_MAYEXEC;
5660 +#endif
5661 +
5662 + }
5663 +#endif
5664 +
5665 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
5666 down_write(&current->mm->mmap_sem);
5667 if (insert_vm_struct(current->mm, vma)) {
5668 @@ -279,7 +292,7 @@ static int __init gate_vma_init(void)
5669 gate_vma.vm_start = FIXADDR_USER_START;
5670 gate_vma.vm_end = FIXADDR_USER_END;
5671 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
5672 - gate_vma.vm_page_prot = __P101;
5673 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
5674
5675 return 0;
5676 }
5677 diff --git a/arch/m32r/include/asm/cache.h b/arch/m32r/include/asm/cache.h
5678 index 40b3ee98..8c2c112 100644
5679 --- a/arch/m32r/include/asm/cache.h
5680 +++ b/arch/m32r/include/asm/cache.h
5681 @@ -1,8 +1,10 @@
5682 #ifndef _ASM_M32R_CACHE_H
5683 #define _ASM_M32R_CACHE_H
5684
5685 +#include <linux/const.h>
5686 +
5687 /* L1 cache line size */
5688 #define L1_CACHE_SHIFT 4
5689 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5690 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5691
5692 #endif /* _ASM_M32R_CACHE_H */
5693 diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c
5694 index 82abd15..d95ae5d 100644
5695 --- a/arch/m32r/lib/usercopy.c
5696 +++ b/arch/m32r/lib/usercopy.c
5697 @@ -14,6 +14,9 @@
5698 unsigned long
5699 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5700 {
5701 + if ((long)n < 0)
5702 + return n;
5703 +
5704 prefetch(from);
5705 if (access_ok(VERIFY_WRITE, to, n))
5706 __copy_user(to,from,n);
5707 @@ -23,6 +26,9 @@ __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5708 unsigned long
5709 __generic_copy_from_user(void *to, const void __user *from, unsigned long n)
5710 {
5711 + if ((long)n < 0)
5712 + return n;
5713 +
5714 prefetchw(to);
5715 if (access_ok(VERIFY_READ, from, n))
5716 __copy_user_zeroing(to,from,n);
5717 diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
5718 index 0395c51..5f26031 100644
5719 --- a/arch/m68k/include/asm/cache.h
5720 +++ b/arch/m68k/include/asm/cache.h
5721 @@ -4,9 +4,11 @@
5722 #ifndef __ARCH_M68K_CACHE_H
5723 #define __ARCH_M68K_CACHE_H
5724
5725 +#include <linux/const.h>
5726 +
5727 /* bytes per L1 cache line */
5728 #define L1_CACHE_SHIFT 4
5729 -#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
5730 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5731
5732 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5733
5734 diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
5735 index 53f0f6c..2dc07fd 100644
5736 --- a/arch/metag/mm/hugetlbpage.c
5737 +++ b/arch/metag/mm/hugetlbpage.c
5738 @@ -189,6 +189,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
5739 info.high_limit = TASK_SIZE;
5740 info.align_mask = PAGE_MASK & HUGEPT_MASK;
5741 info.align_offset = 0;
5742 + info.threadstack_offset = 0;
5743 return vm_unmapped_area(&info);
5744 }
5745
5746 diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
5747 index 4efe96a..60e8699 100644
5748 --- a/arch/microblaze/include/asm/cache.h
5749 +++ b/arch/microblaze/include/asm/cache.h
5750 @@ -13,11 +13,12 @@
5751 #ifndef _ASM_MICROBLAZE_CACHE_H
5752 #define _ASM_MICROBLAZE_CACHE_H
5753
5754 +#include <linux/const.h>
5755 #include <asm/registers.h>
5756
5757 #define L1_CACHE_SHIFT 5
5758 /* word-granular cache in microblaze */
5759 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5760 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5761
5762 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5763
5764 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
5765 index e3aa5b0..2ed7912 100644
5766 --- a/arch/mips/Kconfig
5767 +++ b/arch/mips/Kconfig
5768 @@ -2598,6 +2598,7 @@ source "kernel/Kconfig.preempt"
5769 config KEXEC
5770 bool "Kexec system call"
5771 select KEXEC_CORE
5772 + depends on !GRKERNSEC_KMEM
5773 help
5774 kexec is a system call that implements the ability to shutdown your
5775 current kernel, and to start another kernel. It is like a reboot
5776 diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
5777 index 2cd45f5..d0f4900 100644
5778 --- a/arch/mips/cavium-octeon/dma-octeon.c
5779 +++ b/arch/mips/cavium-octeon/dma-octeon.c
5780 @@ -191,7 +191,7 @@ static void *octeon_dma_alloc_coherent(struct device *dev, size_t size,
5781 static void octeon_dma_free_coherent(struct device *dev, size_t size,
5782 void *vaddr, dma_addr_t dma_handle, struct dma_attrs *attrs)
5783 {
5784 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5785 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5786 }
5787
5788 static dma_addr_t octeon_unity_phys_to_dma(struct device *dev, phys_addr_t paddr)
5789 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
5790 index 4c42fd9..fc7a48e 100644
5791 --- a/arch/mips/include/asm/atomic.h
5792 +++ b/arch/mips/include/asm/atomic.h
5793 @@ -22,15 +22,39 @@
5794 #include <asm/cmpxchg.h>
5795 #include <asm/war.h>
5796
5797 +#ifdef CONFIG_GENERIC_ATOMIC64
5798 +#include <asm-generic/atomic64.h>
5799 +#endif
5800 +
5801 #define ATOMIC_INIT(i) { (i) }
5802
5803 +#ifdef CONFIG_64BIT
5804 +#define _ASM_EXTABLE(from, to) \
5805 +" .section __ex_table,\"a\"\n" \
5806 +" .dword " #from ", " #to"\n" \
5807 +" .previous\n"
5808 +#else
5809 +#define _ASM_EXTABLE(from, to) \
5810 +" .section __ex_table,\"a\"\n" \
5811 +" .word " #from ", " #to"\n" \
5812 +" .previous\n"
5813 +#endif
5814 +
5815 /*
5816 * atomic_read - read atomic variable
5817 * @v: pointer of type atomic_t
5818 *
5819 * Atomically reads the value of @v.
5820 */
5821 -#define atomic_read(v) ACCESS_ONCE((v)->counter)
5822 +static inline int atomic_read(const atomic_t *v)
5823 +{
5824 + return ACCESS_ONCE(v->counter);
5825 +}
5826 +
5827 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
5828 +{
5829 + return ACCESS_ONCE(v->counter);
5830 +}
5831
5832 /*
5833 * atomic_set - set atomic variable
5834 @@ -39,47 +63,77 @@
5835 *
5836 * Atomically sets the value of @v to @i.
5837 */
5838 -#define atomic_set(v, i) ((v)->counter = (i))
5839 +static inline void atomic_set(atomic_t *v, int i)
5840 +{
5841 + v->counter = i;
5842 +}
5843
5844 -#define ATOMIC_OP(op, c_op, asm_op) \
5845 -static __inline__ void atomic_##op(int i, atomic_t * v) \
5846 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
5847 +{
5848 + v->counter = i;
5849 +}
5850 +
5851 +#ifdef CONFIG_PAX_REFCOUNT
5852 +#define __OVERFLOW_POST \
5853 + " b 4f \n" \
5854 + " .set noreorder \n" \
5855 + "3: b 5f \n" \
5856 + " move %0, %1 \n" \
5857 + " .set reorder \n"
5858 +#define __OVERFLOW_EXTABLE \
5859 + "3:\n" \
5860 + _ASM_EXTABLE(2b, 3b)
5861 +#else
5862 +#define __OVERFLOW_POST
5863 +#define __OVERFLOW_EXTABLE
5864 +#endif
5865 +
5866 +#define __ATOMIC_OP(op, suffix, asm_op, extable) \
5867 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t * v) \
5868 { \
5869 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
5870 int temp; \
5871 \
5872 __asm__ __volatile__( \
5873 - " .set arch=r4000 \n" \
5874 - "1: ll %0, %1 # atomic_" #op " \n" \
5875 - " " #asm_op " %0, %2 \n" \
5876 + " .set mips3 \n" \
5877 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
5878 + "2: " #asm_op " %0, %2 \n" \
5879 " sc %0, %1 \n" \
5880 " beqzl %0, 1b \n" \
5881 + extable \
5882 " .set mips0 \n" \
5883 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5884 : "Ir" (i)); \
5885 } else if (kernel_uses_llsc) { \
5886 int temp; \
5887 \
5888 - do { \
5889 - __asm__ __volatile__( \
5890 - " .set "MIPS_ISA_LEVEL" \n" \
5891 - " ll %0, %1 # atomic_" #op "\n" \
5892 - " " #asm_op " %0, %2 \n" \
5893 - " sc %0, %1 \n" \
5894 - " .set mips0 \n" \
5895 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5896 - : "Ir" (i)); \
5897 - } while (unlikely(!temp)); \
5898 + __asm__ __volatile__( \
5899 + " .set "MIPS_ISA_LEVEL" \n" \
5900 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
5901 + "2: " #asm_op " %0, %2 \n" \
5902 + " sc %0, %1 \n" \
5903 + " beqz %0, 1b \n" \
5904 + extable \
5905 + " .set mips0 \n" \
5906 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5907 + : "Ir" (i)); \
5908 } else { \
5909 unsigned long flags; \
5910 \
5911 raw_local_irq_save(flags); \
5912 - v->counter c_op i; \
5913 + __asm__ __volatile__( \
5914 + "2: " #asm_op " %0, %1 \n" \
5915 + extable \
5916 + : "+r" (v->counter) : "Ir" (i)); \
5917 raw_local_irq_restore(flags); \
5918 } \
5919 }
5920
5921 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
5922 -static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5923 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, _unchecked, asm_op##u, ) \
5924 + __ATOMIC_OP(op, , asm_op, __OVERFLOW_EXTABLE)
5925 +
5926 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op, extable) \
5927 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t * v) \
5928 { \
5929 int result; \
5930 \
5931 @@ -89,12 +143,15 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5932 int temp; \
5933 \
5934 __asm__ __volatile__( \
5935 - " .set arch=r4000 \n" \
5936 - "1: ll %1, %2 # atomic_" #op "_return \n" \
5937 - " " #asm_op " %0, %1, %3 \n" \
5938 + " .set mips3 \n" \
5939 + "1: ll %1, %2 # atomic_" #op "_return" #suffix"\n" \
5940 + "2: " #asm_op " %0, %1, %3 \n" \
5941 " sc %0, %2 \n" \
5942 " beqzl %0, 1b \n" \
5943 - " " #asm_op " %0, %1, %3 \n" \
5944 + post_op \
5945 + extable \
5946 + "4: " #asm_op " %0, %1, %3 \n" \
5947 + "5: \n" \
5948 " .set mips0 \n" \
5949 : "=&r" (result), "=&r" (temp), \
5950 "+" GCC_OFF_SMALL_ASM() (v->counter) \
5951 @@ -102,26 +159,33 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5952 } else if (kernel_uses_llsc) { \
5953 int temp; \
5954 \
5955 - do { \
5956 - __asm__ __volatile__( \
5957 - " .set "MIPS_ISA_LEVEL" \n" \
5958 - " ll %1, %2 # atomic_" #op "_return \n" \
5959 - " " #asm_op " %0, %1, %3 \n" \
5960 - " sc %0, %2 \n" \
5961 - " .set mips0 \n" \
5962 - : "=&r" (result), "=&r" (temp), \
5963 - "+" GCC_OFF_SMALL_ASM() (v->counter) \
5964 - : "Ir" (i)); \
5965 - } while (unlikely(!result)); \
5966 + __asm__ __volatile__( \
5967 + " .set "MIPS_ISA_LEVEL" \n" \
5968 + "1: ll %1, %2 # atomic_" #op "_return" #suffix "\n" \
5969 + "2: " #asm_op " %0, %1, %3 \n" \
5970 + " sc %0, %2 \n" \
5971 + post_op \
5972 + extable \
5973 + "4: " #asm_op " %0, %1, %3 \n" \
5974 + "5: \n" \
5975 + " .set mips0 \n" \
5976 + : "=&r" (result), "=&r" (temp), \
5977 + "+" GCC_OFF_SMALL_ASM() (v->counter) \
5978 + : "Ir" (i)); \
5979 \
5980 result = temp; result c_op i; \
5981 } else { \
5982 unsigned long flags; \
5983 \
5984 raw_local_irq_save(flags); \
5985 - result = v->counter; \
5986 - result c_op i; \
5987 - v->counter = result; \
5988 + __asm__ __volatile__( \
5989 + " lw %0, %1 \n" \
5990 + "2: " #asm_op " %0, %1, %2 \n" \
5991 + " sw %0, %1 \n" \
5992 + "3: \n" \
5993 + extable \
5994 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5995 + : "Ir" (i)); \
5996 raw_local_irq_restore(flags); \
5997 } \
5998 \
5999 @@ -130,20 +194,25 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6000 return result; \
6001 }
6002
6003 -#define ATOMIC_OPS(op, c_op, asm_op) \
6004 - ATOMIC_OP(op, c_op, asm_op) \
6005 - ATOMIC_OP_RETURN(op, c_op, asm_op)
6006 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6007 + __ATOMIC_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6008
6009 -ATOMIC_OPS(add, +=, addu)
6010 -ATOMIC_OPS(sub, -=, subu)
6011 +#define ATOMIC_OPS(op, asm_op) \
6012 + ATOMIC_OP(op, asm_op) \
6013 + ATOMIC_OP_RETURN(op, asm_op)
6014
6015 -ATOMIC_OP(and, &=, and)
6016 -ATOMIC_OP(or, |=, or)
6017 -ATOMIC_OP(xor, ^=, xor)
6018 +ATOMIC_OPS(add, add)
6019 +ATOMIC_OPS(sub, sub)
6020 +
6021 +ATOMIC_OP(and, and)
6022 +ATOMIC_OP(or, or)
6023 +ATOMIC_OP(xor, xor)
6024
6025 #undef ATOMIC_OPS
6026 #undef ATOMIC_OP_RETURN
6027 +#undef __ATOMIC_OP_RETURN
6028 #undef ATOMIC_OP
6029 +#undef __ATOMIC_OP
6030
6031 /*
6032 * atomic_sub_if_positive - conditionally subtract integer from atomic variable
6033 @@ -153,7 +222,7 @@ ATOMIC_OP(xor, ^=, xor)
6034 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6035 * The function returns the old value of @v minus @i.
6036 */
6037 -static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6038 +static __inline__ int atomic_sub_if_positive(int i, atomic_t *v)
6039 {
6040 int result;
6041
6042 @@ -163,7 +232,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6043 int temp;
6044
6045 __asm__ __volatile__(
6046 - " .set arch=r4000 \n"
6047 + " .set "MIPS_ISA_LEVEL" \n"
6048 "1: ll %1, %2 # atomic_sub_if_positive\n"
6049 " subu %0, %1, %3 \n"
6050 " bltz %0, 1f \n"
6051 @@ -212,8 +281,26 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6052 return result;
6053 }
6054
6055 -#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
6056 -#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
6057 +static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
6058 +{
6059 + return cmpxchg(&v->counter, old, new);
6060 +}
6061 +
6062 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old,
6063 + int new)
6064 +{
6065 + return cmpxchg(&(v->counter), old, new);
6066 +}
6067 +
6068 +static inline int atomic_xchg(atomic_t *v, int new)
6069 +{
6070 + return xchg(&v->counter, new);
6071 +}
6072 +
6073 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
6074 +{
6075 + return xchg(&(v->counter), new);
6076 +}
6077
6078 /**
6079 * __atomic_add_unless - add unless the number is a given value
6080 @@ -241,6 +328,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6081
6082 #define atomic_dec_return(v) atomic_sub_return(1, (v))
6083 #define atomic_inc_return(v) atomic_add_return(1, (v))
6084 +static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v)
6085 +{
6086 + return atomic_add_return_unchecked(1, v);
6087 +}
6088
6089 /*
6090 * atomic_sub_and_test - subtract value from variable and test result
6091 @@ -262,6 +353,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6092 * other cases.
6093 */
6094 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
6095 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
6096 +{
6097 + return atomic_add_return_unchecked(1, v) == 0;
6098 +}
6099
6100 /*
6101 * atomic_dec_and_test - decrement by 1 and test
6102 @@ -286,6 +381,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6103 * Atomically increments @v by 1.
6104 */
6105 #define atomic_inc(v) atomic_add(1, (v))
6106 +static __inline__ void atomic_inc_unchecked(atomic_unchecked_t *v)
6107 +{
6108 + atomic_add_unchecked(1, v);
6109 +}
6110
6111 /*
6112 * atomic_dec - decrement and test
6113 @@ -294,6 +393,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6114 * Atomically decrements @v by 1.
6115 */
6116 #define atomic_dec(v) atomic_sub(1, (v))
6117 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
6118 +{
6119 + atomic_sub_unchecked(1, v);
6120 +}
6121
6122 /*
6123 * atomic_add_negative - add and test if negative
6124 @@ -315,54 +418,77 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6125 * @v: pointer of type atomic64_t
6126 *
6127 */
6128 -#define atomic64_read(v) ACCESS_ONCE((v)->counter)
6129 +static inline long atomic64_read(const atomic64_t *v)
6130 +{
6131 + return ACCESS_ONCE(v->counter);
6132 +}
6133 +
6134 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
6135 +{
6136 + return ACCESS_ONCE(v->counter);
6137 +}
6138
6139 /*
6140 * atomic64_set - set atomic variable
6141 * @v: pointer of type atomic64_t
6142 * @i: required value
6143 */
6144 -#define atomic64_set(v, i) ((v)->counter = (i))
6145 +static inline void atomic64_set(atomic64_t *v, long i)
6146 +{
6147 + v->counter = i;
6148 +}
6149
6150 -#define ATOMIC64_OP(op, c_op, asm_op) \
6151 -static __inline__ void atomic64_##op(long i, atomic64_t * v) \
6152 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
6153 +{
6154 + v->counter = i;
6155 +}
6156 +
6157 +#define __ATOMIC64_OP(op, suffix, asm_op, extable) \
6158 +static inline void atomic64_##op##suffix(long i, atomic64##suffix##_t * v) \
6159 { \
6160 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
6161 long temp; \
6162 \
6163 __asm__ __volatile__( \
6164 - " .set arch=r4000 \n" \
6165 - "1: lld %0, %1 # atomic64_" #op " \n" \
6166 - " " #asm_op " %0, %2 \n" \
6167 + " .set "MIPS_ISA_LEVEL" \n" \
6168 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6169 + "2: " #asm_op " %0, %2 \n" \
6170 " scd %0, %1 \n" \
6171 " beqzl %0, 1b \n" \
6172 + extable \
6173 " .set mips0 \n" \
6174 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6175 : "Ir" (i)); \
6176 } else if (kernel_uses_llsc) { \
6177 long temp; \
6178 \
6179 - do { \
6180 - __asm__ __volatile__( \
6181 - " .set "MIPS_ISA_LEVEL" \n" \
6182 - " lld %0, %1 # atomic64_" #op "\n" \
6183 - " " #asm_op " %0, %2 \n" \
6184 - " scd %0, %1 \n" \
6185 - " .set mips0 \n" \
6186 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6187 - : "Ir" (i)); \
6188 - } while (unlikely(!temp)); \
6189 + __asm__ __volatile__( \
6190 + " .set "MIPS_ISA_LEVEL" \n" \
6191 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6192 + "2: " #asm_op " %0, %2 \n" \
6193 + " scd %0, %1 \n" \
6194 + " beqz %0, 1b \n" \
6195 + extable \
6196 + " .set mips0 \n" \
6197 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6198 + : "Ir" (i)); \
6199 } else { \
6200 unsigned long flags; \
6201 \
6202 raw_local_irq_save(flags); \
6203 - v->counter c_op i; \
6204 + __asm__ __volatile__( \
6205 + "2: " #asm_op " %0, %1 \n" \
6206 + extable \
6207 + : "+" GCC_OFF_SMALL_ASM() (v->counter) : "Ir" (i)); \
6208 raw_local_irq_restore(flags); \
6209 } \
6210 }
6211
6212 -#define ATOMIC64_OP_RETURN(op, c_op, asm_op) \
6213 -static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6214 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, _unchecked, asm_op##u, ) \
6215 + __ATOMIC64_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6216 +
6217 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6218 +static inline long atomic64_##op##_return##suffix(long i, atomic64##suffix##_t * v)\
6219 { \
6220 long result; \
6221 \
6222 @@ -372,12 +498,15 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6223 long temp; \
6224 \
6225 __asm__ __volatile__( \
6226 - " .set arch=r4000 \n" \
6227 + " .set mips3 \n" \
6228 "1: lld %1, %2 # atomic64_" #op "_return\n" \
6229 - " " #asm_op " %0, %1, %3 \n" \
6230 + "2: " #asm_op " %0, %1, %3 \n" \
6231 " scd %0, %2 \n" \
6232 " beqzl %0, 1b \n" \
6233 - " " #asm_op " %0, %1, %3 \n" \
6234 + post_op \
6235 + extable \
6236 + "4: " #asm_op " %0, %1, %3 \n" \
6237 + "5: \n" \
6238 " .set mips0 \n" \
6239 : "=&r" (result), "=&r" (temp), \
6240 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6241 @@ -385,27 +514,35 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6242 } else if (kernel_uses_llsc) { \
6243 long temp; \
6244 \
6245 - do { \
6246 - __asm__ __volatile__( \
6247 - " .set "MIPS_ISA_LEVEL" \n" \
6248 - " lld %1, %2 # atomic64_" #op "_return\n" \
6249 - " " #asm_op " %0, %1, %3 \n" \
6250 - " scd %0, %2 \n" \
6251 - " .set mips0 \n" \
6252 - : "=&r" (result), "=&r" (temp), \
6253 - "=" GCC_OFF_SMALL_ASM() (v->counter) \
6254 - : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6255 - : "memory"); \
6256 - } while (unlikely(!result)); \
6257 + __asm__ __volatile__( \
6258 + " .set "MIPS_ISA_LEVEL" \n" \
6259 + "1: lld %1, %2 # atomic64_" #op "_return" #suffix "\n"\
6260 + "2: " #asm_op " %0, %1, %3 \n" \
6261 + " scd %0, %2 \n" \
6262 + " beqz %0, 1b \n" \
6263 + post_op \
6264 + extable \
6265 + "4: " #asm_op " %0, %1, %3 \n" \
6266 + "5: \n" \
6267 + " .set mips0 \n" \
6268 + : "=&r" (result), "=&r" (temp), \
6269 + "=" GCC_OFF_SMALL_ASM() (v->counter) \
6270 + : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6271 + : "memory"); \
6272 \
6273 result = temp; result c_op i; \
6274 } else { \
6275 unsigned long flags; \
6276 \
6277 raw_local_irq_save(flags); \
6278 - result = v->counter; \
6279 - result c_op i; \
6280 - v->counter = result; \
6281 + __asm__ __volatile__( \
6282 + " ld %0, %1 \n" \
6283 + "2: " #asm_op " %0, %1, %2 \n" \
6284 + " sd %0, %1 \n" \
6285 + "3: \n" \
6286 + extable \
6287 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6288 + : "Ir" (i)); \
6289 raw_local_irq_restore(flags); \
6290 } \
6291 \
6292 @@ -414,19 +551,27 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6293 return result; \
6294 }
6295
6296 -#define ATOMIC64_OPS(op, c_op, asm_op) \
6297 - ATOMIC64_OP(op, c_op, asm_op) \
6298 - ATOMIC64_OP_RETURN(op, c_op, asm_op)
6299 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6300 + __ATOMIC64_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6301
6302 -ATOMIC64_OPS(add, +=, daddu)
6303 -ATOMIC64_OPS(sub, -=, dsubu)
6304 -ATOMIC64_OP(and, &=, and)
6305 -ATOMIC64_OP(or, |=, or)
6306 -ATOMIC64_OP(xor, ^=, xor)
6307 +#define ATOMIC64_OPS(op, asm_op) \
6308 + ATOMIC64_OP(op, asm_op) \
6309 + ATOMIC64_OP_RETURN(op, asm_op)
6310 +
6311 +ATOMIC64_OPS(add, dadd)
6312 +ATOMIC64_OPS(sub, dsub)
6313 +
6314 +ATOMIC64_OP(and, and)
6315 +ATOMIC64_OP(or, or)
6316 +ATOMIC64_OP(xor, xor)
6317
6318 #undef ATOMIC64_OPS
6319 #undef ATOMIC64_OP_RETURN
6320 +#undef __ATOMIC64_OP_RETURN
6321 #undef ATOMIC64_OP
6322 +#undef __ATOMIC64_OP
6323 +#undef __OVERFLOW_EXTABLE
6324 +#undef __OVERFLOW_POST
6325
6326 /*
6327 * atomic64_sub_if_positive - conditionally subtract integer from atomic
6328 @@ -437,7 +582,7 @@ ATOMIC64_OP(xor, ^=, xor)
6329 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6330 * The function returns the old value of @v minus @i.
6331 */
6332 -static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6333 +static __inline__ long atomic64_sub_if_positive(long i, atomic64_t *v)
6334 {
6335 long result;
6336
6337 @@ -447,7 +592,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6338 long temp;
6339
6340 __asm__ __volatile__(
6341 - " .set arch=r4000 \n"
6342 + " .set "MIPS_ISA_LEVEL" \n"
6343 "1: lld %1, %2 # atomic64_sub_if_positive\n"
6344 " dsubu %0, %1, %3 \n"
6345 " bltz %0, 1f \n"
6346 @@ -496,9 +641,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6347 return result;
6348 }
6349
6350 -#define atomic64_cmpxchg(v, o, n) \
6351 - ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
6352 -#define atomic64_xchg(v, new) (xchg(&((v)->counter), (new)))
6353 +static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
6354 +{
6355 + return cmpxchg(&v->counter, old, new);
6356 +}
6357 +
6358 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old,
6359 + long new)
6360 +{
6361 + return cmpxchg(&(v->counter), old, new);
6362 +}
6363 +
6364 +static inline long atomic64_xchg(atomic64_t *v, long new)
6365 +{
6366 + return xchg(&v->counter, new);
6367 +}
6368 +
6369 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
6370 +{
6371 + return xchg(&(v->counter), new);
6372 +}
6373
6374 /**
6375 * atomic64_add_unless - add unless the number is a given value
6376 @@ -528,6 +690,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6377
6378 #define atomic64_dec_return(v) atomic64_sub_return(1, (v))
6379 #define atomic64_inc_return(v) atomic64_add_return(1, (v))
6380 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1, (v))
6381
6382 /*
6383 * atomic64_sub_and_test - subtract value from variable and test result
6384 @@ -549,6 +712,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6385 * other cases.
6386 */
6387 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
6388 +#define atomic64_inc_and_test_unchecked(v) atomic64_add_return_unchecked(1, (v)) == 0)
6389
6390 /*
6391 * atomic64_dec_and_test - decrement by 1 and test
6392 @@ -573,6 +737,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6393 * Atomically increments @v by 1.
6394 */
6395 #define atomic64_inc(v) atomic64_add(1, (v))
6396 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1, (v))
6397
6398 /*
6399 * atomic64_dec - decrement and test
6400 @@ -581,6 +746,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6401 * Atomically decrements @v by 1.
6402 */
6403 #define atomic64_dec(v) atomic64_sub(1, (v))
6404 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1, (v))
6405
6406 /*
6407 * atomic64_add_negative - add and test if negative
6408 diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
6409 index b4db69f..8f3b093 100644
6410 --- a/arch/mips/include/asm/cache.h
6411 +++ b/arch/mips/include/asm/cache.h
6412 @@ -9,10 +9,11 @@
6413 #ifndef _ASM_CACHE_H
6414 #define _ASM_CACHE_H
6415
6416 +#include <linux/const.h>
6417 #include <kmalloc.h>
6418
6419 #define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
6420 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
6421 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
6422
6423 #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
6424 #define SMP_CACHE_BYTES L1_CACHE_BYTES
6425 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
6426 index 53b2693..13803b9 100644
6427 --- a/arch/mips/include/asm/elf.h
6428 +++ b/arch/mips/include/asm/elf.h
6429 @@ -419,6 +419,13 @@ extern const char *__elf_platform;
6430 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
6431 #endif
6432
6433 +#ifdef CONFIG_PAX_ASLR
6434 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6435 +
6436 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6437 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6438 +#endif
6439 +
6440 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
6441 struct linux_binprm;
6442 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
6443 diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
6444 index c1f6afa..38cc6e9 100644
6445 --- a/arch/mips/include/asm/exec.h
6446 +++ b/arch/mips/include/asm/exec.h
6447 @@ -12,6 +12,6 @@
6448 #ifndef _ASM_EXEC_H
6449 #define _ASM_EXEC_H
6450
6451 -extern unsigned long arch_align_stack(unsigned long sp);
6452 +#define arch_align_stack(x) ((x) & ~0xfUL)
6453
6454 #endif /* _ASM_EXEC_H */
6455 diff --git a/arch/mips/include/asm/hw_irq.h b/arch/mips/include/asm/hw_irq.h
6456 index 9e8ef59..1139d6b 100644
6457 --- a/arch/mips/include/asm/hw_irq.h
6458 +++ b/arch/mips/include/asm/hw_irq.h
6459 @@ -10,7 +10,7 @@
6460
6461 #include <linux/atomic.h>
6462
6463 -extern atomic_t irq_err_count;
6464 +extern atomic_unchecked_t irq_err_count;
6465
6466 /*
6467 * interrupt-retrigger: NOP for now. This may not be appropriate for all
6468 diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
6469 index 8feaed6..1bd8a64 100644
6470 --- a/arch/mips/include/asm/local.h
6471 +++ b/arch/mips/include/asm/local.h
6472 @@ -13,15 +13,25 @@ typedef struct
6473 atomic_long_t a;
6474 } local_t;
6475
6476 +typedef struct {
6477 + atomic_long_unchecked_t a;
6478 +} local_unchecked_t;
6479 +
6480 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
6481
6482 #define local_read(l) atomic_long_read(&(l)->a)
6483 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
6484 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
6485 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
6486
6487 #define local_add(i, l) atomic_long_add((i), (&(l)->a))
6488 +#define local_add_unchecked(i, l) atomic_long_add_unchecked((i), (&(l)->a))
6489 #define local_sub(i, l) atomic_long_sub((i), (&(l)->a))
6490 +#define local_sub_unchecked(i, l) atomic_long_sub_unchecked((i), (&(l)->a))
6491 #define local_inc(l) atomic_long_inc(&(l)->a)
6492 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
6493 #define local_dec(l) atomic_long_dec(&(l)->a)
6494 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
6495
6496 /*
6497 * Same as above, but return the result value
6498 @@ -71,6 +81,51 @@ static __inline__ long local_add_return(long i, local_t * l)
6499 return result;
6500 }
6501
6502 +static __inline__ long local_add_return_unchecked(long i, local_unchecked_t * l)
6503 +{
6504 + unsigned long result;
6505 +
6506 + if (kernel_uses_llsc && R10000_LLSC_WAR) {
6507 + unsigned long temp;
6508 +
6509 + __asm__ __volatile__(
6510 + " .set mips3 \n"
6511 + "1:" __LL "%1, %2 # local_add_return \n"
6512 + " addu %0, %1, %3 \n"
6513 + __SC "%0, %2 \n"
6514 + " beqzl %0, 1b \n"
6515 + " addu %0, %1, %3 \n"
6516 + " .set mips0 \n"
6517 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6518 + : "Ir" (i), "m" (l->a.counter)
6519 + : "memory");
6520 + } else if (kernel_uses_llsc) {
6521 + unsigned long temp;
6522 +
6523 + __asm__ __volatile__(
6524 + " .set mips3 \n"
6525 + "1:" __LL "%1, %2 # local_add_return \n"
6526 + " addu %0, %1, %3 \n"
6527 + __SC "%0, %2 \n"
6528 + " beqz %0, 1b \n"
6529 + " addu %0, %1, %3 \n"
6530 + " .set mips0 \n"
6531 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6532 + : "Ir" (i), "m" (l->a.counter)
6533 + : "memory");
6534 + } else {
6535 + unsigned long flags;
6536 +
6537 + local_irq_save(flags);
6538 + result = l->a.counter;
6539 + result += i;
6540 + l->a.counter = result;
6541 + local_irq_restore(flags);
6542 + }
6543 +
6544 + return result;
6545 +}
6546 +
6547 static __inline__ long local_sub_return(long i, local_t * l)
6548 {
6549 unsigned long result;
6550 @@ -118,6 +173,8 @@ static __inline__ long local_sub_return(long i, local_t * l)
6551
6552 #define local_cmpxchg(l, o, n) \
6553 ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6554 +#define local_cmpxchg_unchecked(l, o, n) \
6555 + ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6556 #define local_xchg(l, n) (atomic_long_xchg((&(l)->a), (n)))
6557
6558 /**
6559 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
6560 index 89dd7fe..a123c97 100644
6561 --- a/arch/mips/include/asm/page.h
6562 +++ b/arch/mips/include/asm/page.h
6563 @@ -118,7 +118,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
6564 #ifdef CONFIG_CPU_MIPS32
6565 typedef struct { unsigned long pte_low, pte_high; } pte_t;
6566 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
6567 - #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; })
6568 + #define __pte(x) ({ pte_t __pte = {(x), (x) >> 32}; __pte; })
6569 #else
6570 typedef struct { unsigned long long pte; } pte_t;
6571 #define pte_val(x) ((x).pte)
6572 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
6573 index b336037..5b874cc 100644
6574 --- a/arch/mips/include/asm/pgalloc.h
6575 +++ b/arch/mips/include/asm/pgalloc.h
6576 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6577 {
6578 set_pud(pud, __pud((unsigned long)pmd));
6579 }
6580 +
6581 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6582 +{
6583 + pud_populate(mm, pud, pmd);
6584 +}
6585 #endif
6586
6587 /*
6588 diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
6589 index 8957f15..c5b802e 100644
6590 --- a/arch/mips/include/asm/pgtable.h
6591 +++ b/arch/mips/include/asm/pgtable.h
6592 @@ -20,6 +20,9 @@
6593 #include <asm/io.h>
6594 #include <asm/pgtable-bits.h>
6595
6596 +#define ktla_ktva(addr) (addr)
6597 +#define ktva_ktla(addr) (addr)
6598 +
6599 struct mm_struct;
6600 struct vm_area_struct;
6601
6602 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
6603 index e309d8f..20eefec 100644
6604 --- a/arch/mips/include/asm/thread_info.h
6605 +++ b/arch/mips/include/asm/thread_info.h
6606 @@ -101,6 +101,9 @@ static inline struct thread_info *current_thread_info(void)
6607 #define TIF_NOTIFY_RESUME 5 /* callback before returning to user */
6608 #define TIF_UPROBE 6 /* breakpointed or singlestepping */
6609 #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal() */
6610 +/* li takes a 32bit immediate */
6611 +#define TIF_GRSEC_SETXID 10 /* update credentials on syscall entry/exit */
6612 +
6613 #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
6614 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
6615 #define TIF_NOHZ 19 /* in adaptive nohz mode */
6616 @@ -137,14 +140,16 @@ static inline struct thread_info *current_thread_info(void)
6617 #define _TIF_USEDMSA (1<<TIF_USEDMSA)
6618 #define _TIF_MSA_CTX_LIVE (1<<TIF_MSA_CTX_LIVE)
6619 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
6620 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
6621
6622 #define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6623 _TIF_SYSCALL_AUDIT | \
6624 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
6625 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
6626 + _TIF_GRSEC_SETXID)
6627
6628 /* work to do in syscall_trace_leave() */
6629 #define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6630 - _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
6631 + _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6632
6633 /* work to do on interrupt/exception return */
6634 #define _TIF_WORK_MASK \
6635 @@ -153,7 +158,7 @@ static inline struct thread_info *current_thread_info(void)
6636 /* work to do on any return to u-space */
6637 #define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
6638 _TIF_WORK_SYSCALL_EXIT | \
6639 - _TIF_SYSCALL_TRACEPOINT)
6640 + _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6641
6642 /*
6643 * We stash processor id into a COP0 register to retrieve it fast
6644 diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
6645 index 5305d69..1da2bf5 100644
6646 --- a/arch/mips/include/asm/uaccess.h
6647 +++ b/arch/mips/include/asm/uaccess.h
6648 @@ -146,6 +146,7 @@ static inline bool eva_kernel_access(void)
6649 __ok == 0; \
6650 })
6651
6652 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
6653 #define access_ok(type, addr, size) \
6654 likely(__access_ok((addr), (size), __access_mask))
6655
6656 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
6657 index 1188e00..41cf144 100644
6658 --- a/arch/mips/kernel/binfmt_elfn32.c
6659 +++ b/arch/mips/kernel/binfmt_elfn32.c
6660 @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6661 #undef ELF_ET_DYN_BASE
6662 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6663
6664 +#ifdef CONFIG_PAX_ASLR
6665 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6666 +
6667 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6668 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6669 +#endif
6670 +
6671 #include <asm/processor.h>
6672 #include <linux/module.h>
6673 #include <linux/elfcore.h>
6674 diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c
6675 index 9287678..f870e47 100644
6676 --- a/arch/mips/kernel/binfmt_elfo32.c
6677 +++ b/arch/mips/kernel/binfmt_elfo32.c
6678 @@ -70,6 +70,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6679 #undef ELF_ET_DYN_BASE
6680 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6681
6682 +#ifdef CONFIG_PAX_ASLR
6683 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6684 +
6685 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6686 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6687 +#endif
6688 +
6689 #include <asm/processor.h>
6690
6691 #include <linux/module.h>
6692 diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
6693 index 44a1f79..2bd6aa3 100644
6694 --- a/arch/mips/kernel/irq-gt641xx.c
6695 +++ b/arch/mips/kernel/irq-gt641xx.c
6696 @@ -110,7 +110,7 @@ void gt641xx_irq_dispatch(void)
6697 }
6698 }
6699
6700 - atomic_inc(&irq_err_count);
6701 + atomic_inc_unchecked(&irq_err_count);
6702 }
6703
6704 void __init gt641xx_irq_init(void)
6705 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
6706 index 8eb5af8..2baf465 100644
6707 --- a/arch/mips/kernel/irq.c
6708 +++ b/arch/mips/kernel/irq.c
6709 @@ -34,17 +34,17 @@ void ack_bad_irq(unsigned int irq)
6710 printk("unexpected IRQ # %d\n", irq);
6711 }
6712
6713 -atomic_t irq_err_count;
6714 +atomic_unchecked_t irq_err_count;
6715
6716 int arch_show_interrupts(struct seq_file *p, int prec)
6717 {
6718 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
6719 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
6720 return 0;
6721 }
6722
6723 asmlinkage void spurious_interrupt(void)
6724 {
6725 - atomic_inc(&irq_err_count);
6726 + atomic_inc_unchecked(&irq_err_count);
6727 }
6728
6729 void __init init_IRQ(void)
6730 @@ -58,6 +58,8 @@ void __init init_IRQ(void)
6731 }
6732
6733 #ifdef CONFIG_DEBUG_STACKOVERFLOW
6734 +
6735 +extern void gr_handle_kernel_exploit(void);
6736 static inline void check_stack_overflow(void)
6737 {
6738 unsigned long sp;
6739 @@ -73,6 +75,7 @@ static inline void check_stack_overflow(void)
6740 printk("do_IRQ: stack overflow: %ld\n",
6741 sp - sizeof(struct thread_info));
6742 dump_stack();
6743 + gr_handle_kernel_exploit();
6744 }
6745 }
6746 #else
6747 diff --git a/arch/mips/kernel/pm-cps.c b/arch/mips/kernel/pm-cps.c
6748 index f63a289..53037c22 100644
6749 --- a/arch/mips/kernel/pm-cps.c
6750 +++ b/arch/mips/kernel/pm-cps.c
6751 @@ -172,7 +172,7 @@ int cps_pm_enter_state(enum cps_pm_state state)
6752 nc_core_ready_count = nc_addr;
6753
6754 /* Ensure ready_count is zero-initialised before the assembly runs */
6755 - ACCESS_ONCE(*nc_core_ready_count) = 0;
6756 + ACCESS_ONCE_RW(*nc_core_ready_count) = 0;
6757 coupled_barrier(&per_cpu(pm_barrier, core), online);
6758
6759 /* Run the generated entry code */
6760 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
6761 index f2975d4..f61d355 100644
6762 --- a/arch/mips/kernel/process.c
6763 +++ b/arch/mips/kernel/process.c
6764 @@ -541,18 +541,6 @@ out:
6765 return pc;
6766 }
6767
6768 -/*
6769 - * Don't forget that the stack pointer must be aligned on a 8 bytes
6770 - * boundary for 32-bits ABI and 16 bytes for 64-bits ABI.
6771 - */
6772 -unsigned long arch_align_stack(unsigned long sp)
6773 -{
6774 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
6775 - sp -= get_random_int() & ~PAGE_MASK;
6776 -
6777 - return sp & ALMASK;
6778 -}
6779 -
6780 static void arch_dump_stack(void *info)
6781 {
6782 struct pt_regs *regs;
6783 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
6784 index 4f0ac78..491124a 100644
6785 --- a/arch/mips/kernel/ptrace.c
6786 +++ b/arch/mips/kernel/ptrace.c
6787 @@ -873,6 +873,10 @@ long arch_ptrace(struct task_struct *child, long request,
6788 return ret;
6789 }
6790
6791 +#ifdef CONFIG_GRKERNSEC_SETXID
6792 +extern void gr_delayed_cred_worker(void);
6793 +#endif
6794 +
6795 /*
6796 * Notification of system call entry/exit
6797 * - triggered by current->work.syscall_trace
6798 @@ -891,6 +895,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
6799 tracehook_report_syscall_entry(regs))
6800 ret = -1;
6801
6802 +#ifdef CONFIG_GRKERNSEC_SETXID
6803 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
6804 + gr_delayed_cred_worker();
6805 +#endif
6806 +
6807 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
6808 trace_sys_enter(regs, regs->regs[2]);
6809
6810 diff --git a/arch/mips/kernel/sync-r4k.c b/arch/mips/kernel/sync-r4k.c
6811 index 2242bdd..b284048 100644
6812 --- a/arch/mips/kernel/sync-r4k.c
6813 +++ b/arch/mips/kernel/sync-r4k.c
6814 @@ -18,8 +18,8 @@
6815 #include <asm/mipsregs.h>
6816
6817 static atomic_t count_start_flag = ATOMIC_INIT(0);
6818 -static atomic_t count_count_start = ATOMIC_INIT(0);
6819 -static atomic_t count_count_stop = ATOMIC_INIT(0);
6820 +static atomic_unchecked_t count_count_start = ATOMIC_INIT(0);
6821 +static atomic_unchecked_t count_count_stop = ATOMIC_INIT(0);
6822 static atomic_t count_reference = ATOMIC_INIT(0);
6823
6824 #define COUNTON 100
6825 @@ -58,13 +58,13 @@ void synchronise_count_master(int cpu)
6826
6827 for (i = 0; i < NR_LOOPS; i++) {
6828 /* slaves loop on '!= 2' */
6829 - while (atomic_read(&count_count_start) != 1)
6830 + while (atomic_read_unchecked(&count_count_start) != 1)
6831 mb();
6832 - atomic_set(&count_count_stop, 0);
6833 + atomic_set_unchecked(&count_count_stop, 0);
6834 smp_wmb();
6835
6836 /* this lets the slaves write their count register */
6837 - atomic_inc(&count_count_start);
6838 + atomic_inc_unchecked(&count_count_start);
6839
6840 /*
6841 * Everyone initialises count in the last loop:
6842 @@ -75,11 +75,11 @@ void synchronise_count_master(int cpu)
6843 /*
6844 * Wait for all slaves to leave the synchronization point:
6845 */
6846 - while (atomic_read(&count_count_stop) != 1)
6847 + while (atomic_read_unchecked(&count_count_stop) != 1)
6848 mb();
6849 - atomic_set(&count_count_start, 0);
6850 + atomic_set_unchecked(&count_count_start, 0);
6851 smp_wmb();
6852 - atomic_inc(&count_count_stop);
6853 + atomic_inc_unchecked(&count_count_stop);
6854 }
6855 /* Arrange for an interrupt in a short while */
6856 write_c0_compare(read_c0_count() + COUNTON);
6857 @@ -112,8 +112,8 @@ void synchronise_count_slave(int cpu)
6858 initcount = atomic_read(&count_reference);
6859
6860 for (i = 0; i < NR_LOOPS; i++) {
6861 - atomic_inc(&count_count_start);
6862 - while (atomic_read(&count_count_start) != 2)
6863 + atomic_inc_unchecked(&count_count_start);
6864 + while (atomic_read_unchecked(&count_count_start) != 2)
6865 mb();
6866
6867 /*
6868 @@ -122,8 +122,8 @@ void synchronise_count_slave(int cpu)
6869 if (i == NR_LOOPS-1)
6870 write_c0_count(initcount);
6871
6872 - atomic_inc(&count_count_stop);
6873 - while (atomic_read(&count_count_stop) != 2)
6874 + atomic_inc_unchecked(&count_count_stop);
6875 + while (atomic_read_unchecked(&count_count_stop) != 2)
6876 mb();
6877 }
6878 /* Arrange for an interrupt in a short while */
6879 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
6880 index fdb392b..c5cf284 100644
6881 --- a/arch/mips/kernel/traps.c
6882 +++ b/arch/mips/kernel/traps.c
6883 @@ -692,7 +692,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
6884 siginfo_t info;
6885
6886 prev_state = exception_enter();
6887 - die_if_kernel("Integer overflow", regs);
6888 + if (unlikely(!user_mode(regs))) {
6889 +
6890 +#ifdef CONFIG_PAX_REFCOUNT
6891 + if (fixup_exception(regs)) {
6892 + pax_report_refcount_overflow(regs);
6893 + exception_exit(prev_state);
6894 + return;
6895 + }
6896 +#endif
6897 +
6898 + die("Integer overflow", regs);
6899 + }
6900
6901 info.si_code = FPE_INTOVF;
6902 info.si_signo = SIGFPE;
6903 diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
6904 index 4b88fa0..b16bc17 100644
6905 --- a/arch/mips/mm/fault.c
6906 +++ b/arch/mips/mm/fault.c
6907 @@ -31,6 +31,23 @@
6908
6909 int show_unhandled_signals = 1;
6910
6911 +#ifdef CONFIG_PAX_PAGEEXEC
6912 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
6913 +{
6914 + unsigned long i;
6915 +
6916 + printk(KERN_ERR "PAX: bytes at PC: ");
6917 + for (i = 0; i < 5; i++) {
6918 + unsigned int c;
6919 + if (get_user(c, (unsigned int *)pc+i))
6920 + printk(KERN_CONT "???????? ");
6921 + else
6922 + printk(KERN_CONT "%08x ", c);
6923 + }
6924 + printk("\n");
6925 +}
6926 +#endif
6927 +
6928 /*
6929 * This routine handles page faults. It determines the address,
6930 * and the problem, and then passes it off to one of the appropriate
6931 @@ -205,6 +222,14 @@ bad_area:
6932 bad_area_nosemaphore:
6933 /* User mode accesses just cause a SIGSEGV */
6934 if (user_mode(regs)) {
6935 +
6936 +#ifdef CONFIG_PAX_PAGEEXEC
6937 + if (cpu_has_rixi && (mm->pax_flags & MF_PAX_PAGEEXEC) && !write && address == instruction_pointer(regs)) {
6938 + pax_report_fault(regs, (void *)address, (void *)user_stack_pointer(regs));
6939 + do_group_exit(SIGKILL);
6940 + }
6941 +#endif
6942 +
6943 tsk->thread.cp0_badvaddr = address;
6944 tsk->thread.error_code = write;
6945 if (show_unhandled_signals &&
6946 diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
6947 index 5c81fdd..db158d3 100644
6948 --- a/arch/mips/mm/mmap.c
6949 +++ b/arch/mips/mm/mmap.c
6950 @@ -59,6 +59,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6951 struct vm_area_struct *vma;
6952 unsigned long addr = addr0;
6953 int do_color_align;
6954 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
6955 struct vm_unmapped_area_info info;
6956
6957 if (unlikely(len > TASK_SIZE))
6958 @@ -84,6 +85,11 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6959 do_color_align = 1;
6960
6961 /* requesting a specific address */
6962 +
6963 +#ifdef CONFIG_PAX_RANDMMAP
6964 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
6965 +#endif
6966 +
6967 if (addr) {
6968 if (do_color_align)
6969 addr = COLOUR_ALIGN(addr, pgoff);
6970 @@ -91,14 +97,14 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6971 addr = PAGE_ALIGN(addr);
6972
6973 vma = find_vma(mm, addr);
6974 - if (TASK_SIZE - len >= addr &&
6975 - (!vma || addr + len <= vma->vm_start))
6976 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
6977 return addr;
6978 }
6979
6980 info.length = len;
6981 info.align_mask = do_color_align ? (PAGE_MASK & shm_align_mask) : 0;
6982 info.align_offset = pgoff << PAGE_SHIFT;
6983 + info.threadstack_offset = offset;
6984
6985 if (dir == DOWN) {
6986 info.flags = VM_UNMAPPED_AREA_TOPDOWN;
6987 @@ -160,45 +166,34 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
6988 {
6989 unsigned long random_factor = 0UL;
6990
6991 +#ifdef CONFIG_PAX_RANDMMAP
6992 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
6993 +#endif
6994 +
6995 if (current->flags & PF_RANDOMIZE)
6996 random_factor = arch_mmap_rnd();
6997
6998 if (mmap_is_legacy()) {
6999 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
7000 +
7001 +#ifdef CONFIG_PAX_RANDMMAP
7002 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7003 + mm->mmap_base += mm->delta_mmap;
7004 +#endif
7005 +
7006 mm->get_unmapped_area = arch_get_unmapped_area;
7007 } else {
7008 mm->mmap_base = mmap_base(random_factor);
7009 +
7010 +#ifdef CONFIG_PAX_RANDMMAP
7011 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7012 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7013 +#endif
7014 +
7015 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
7016 }
7017 }
7018
7019 -static inline unsigned long brk_rnd(void)
7020 -{
7021 - unsigned long rnd = get_random_int();
7022 -
7023 - rnd = rnd << PAGE_SHIFT;
7024 - /* 8MB for 32bit, 256MB for 64bit */
7025 - if (TASK_IS_32BIT_ADDR)
7026 - rnd = rnd & 0x7ffffful;
7027 - else
7028 - rnd = rnd & 0xffffffful;
7029 -
7030 - return rnd;
7031 -}
7032 -
7033 -unsigned long arch_randomize_brk(struct mm_struct *mm)
7034 -{
7035 - unsigned long base = mm->brk;
7036 - unsigned long ret;
7037 -
7038 - ret = PAGE_ALIGN(base + brk_rnd());
7039 -
7040 - if (ret < mm->brk)
7041 - return mm->brk;
7042 -
7043 - return ret;
7044 -}
7045 -
7046 int __virt_addr_valid(const volatile void *kaddr)
7047 {
7048 return pfn_valid(PFN_DOWN(virt_to_phys(kaddr)));
7049 diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
7050 index a2358b4..7cead4f 100644
7051 --- a/arch/mips/sgi-ip27/ip27-nmi.c
7052 +++ b/arch/mips/sgi-ip27/ip27-nmi.c
7053 @@ -187,9 +187,9 @@ void
7054 cont_nmi_dump(void)
7055 {
7056 #ifndef REAL_NMI_SIGNAL
7057 - static atomic_t nmied_cpus = ATOMIC_INIT(0);
7058 + static atomic_unchecked_t nmied_cpus = ATOMIC_INIT(0);
7059
7060 - atomic_inc(&nmied_cpus);
7061 + atomic_inc_unchecked(&nmied_cpus);
7062 #endif
7063 /*
7064 * Only allow 1 cpu to proceed
7065 @@ -233,7 +233,7 @@ cont_nmi_dump(void)
7066 udelay(10000);
7067 }
7068 #else
7069 - while (atomic_read(&nmied_cpus) != num_online_cpus());
7070 + while (atomic_read_unchecked(&nmied_cpus) != num_online_cpus());
7071 #endif
7072
7073 /*
7074 diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
7075 index a046b30..6799527 100644
7076 --- a/arch/mips/sni/rm200.c
7077 +++ b/arch/mips/sni/rm200.c
7078 @@ -270,7 +270,7 @@ spurious_8259A_irq:
7079 "spurious RM200 8259A interrupt: IRQ%d.\n", irq);
7080 spurious_irq_mask |= irqmask;
7081 }
7082 - atomic_inc(&irq_err_count);
7083 + atomic_inc_unchecked(&irq_err_count);
7084 /*
7085 * Theoretically we do not have to handle this IRQ,
7086 * but in Linux this does not cause problems and is
7087 diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
7088 index 41e873b..34d33a7 100644
7089 --- a/arch/mips/vr41xx/common/icu.c
7090 +++ b/arch/mips/vr41xx/common/icu.c
7091 @@ -653,7 +653,7 @@ static int icu_get_irq(unsigned int irq)
7092
7093 printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
7094
7095 - atomic_inc(&irq_err_count);
7096 + atomic_inc_unchecked(&irq_err_count);
7097
7098 return -1;
7099 }
7100 diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
7101 index ae0e4ee..e8f0692 100644
7102 --- a/arch/mips/vr41xx/common/irq.c
7103 +++ b/arch/mips/vr41xx/common/irq.c
7104 @@ -64,7 +64,7 @@ static void irq_dispatch(unsigned int irq)
7105 irq_cascade_t *cascade;
7106
7107 if (irq >= NR_IRQS) {
7108 - atomic_inc(&irq_err_count);
7109 + atomic_inc_unchecked(&irq_err_count);
7110 return;
7111 }
7112
7113 @@ -84,7 +84,7 @@ static void irq_dispatch(unsigned int irq)
7114 ret = cascade->get_irq(irq);
7115 irq = ret;
7116 if (ret < 0)
7117 - atomic_inc(&irq_err_count);
7118 + atomic_inc_unchecked(&irq_err_count);
7119 else
7120 irq_dispatch(irq);
7121 if (!irqd_irq_disabled(idata) && chip->irq_unmask)
7122 diff --git a/arch/mn10300/proc-mn103e010/include/proc/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7123 index 967d144..db12197 100644
7124 --- a/arch/mn10300/proc-mn103e010/include/proc/cache.h
7125 +++ b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7126 @@ -11,12 +11,14 @@
7127 #ifndef _ASM_PROC_CACHE_H
7128 #define _ASM_PROC_CACHE_H
7129
7130 +#include <linux/const.h>
7131 +
7132 /* L1 cache */
7133
7134 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7135 #define L1_CACHE_NENTRIES 256 /* number of entries in each way */
7136 -#define L1_CACHE_BYTES 16 /* bytes per entry */
7137 #define L1_CACHE_SHIFT 4 /* shift for bytes per entry */
7138 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7139 #define L1_CACHE_WAYDISP 0x1000 /* displacement of one way from the next */
7140
7141 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7142 diff --git a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7143 index bcb5df2..84fabd2 100644
7144 --- a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7145 +++ b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7146 @@ -16,13 +16,15 @@
7147 #ifndef _ASM_PROC_CACHE_H
7148 #define _ASM_PROC_CACHE_H
7149
7150 +#include <linux/const.h>
7151 +
7152 /*
7153 * L1 cache
7154 */
7155 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7156 #define L1_CACHE_NENTRIES 128 /* number of entries in each way */
7157 -#define L1_CACHE_BYTES 32 /* bytes per entry */
7158 #define L1_CACHE_SHIFT 5 /* shift for bytes per entry */
7159 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7160 #define L1_CACHE_WAYDISP 0x1000 /* distance from one way to the next */
7161
7162 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7163 diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
7164 index 4ce7a01..449202a 100644
7165 --- a/arch/openrisc/include/asm/cache.h
7166 +++ b/arch/openrisc/include/asm/cache.h
7167 @@ -19,11 +19,13 @@
7168 #ifndef __ASM_OPENRISC_CACHE_H
7169 #define __ASM_OPENRISC_CACHE_H
7170
7171 +#include <linux/const.h>
7172 +
7173 /* FIXME: How can we replace these with values from the CPU...
7174 * they shouldn't be hard-coded!
7175 */
7176
7177 -#define L1_CACHE_BYTES 16
7178 #define L1_CACHE_SHIFT 4
7179 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7180
7181 #endif /* __ASM_OPENRISC_CACHE_H */
7182 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
7183 index 2536965..5d3e884 100644
7184 --- a/arch/parisc/include/asm/atomic.h
7185 +++ b/arch/parisc/include/asm/atomic.h
7186 @@ -280,6 +280,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
7187 return dec;
7188 }
7189
7190 +#define atomic64_read_unchecked(v) atomic64_read(v)
7191 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
7192 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
7193 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
7194 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
7195 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
7196 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
7197 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
7198 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
7199 +
7200 #endif /* !CONFIG_64BIT */
7201
7202
7203 diff --git a/arch/parisc/include/asm/cache.h b/arch/parisc/include/asm/cache.h
7204 index 47f11c7..3420df2 100644
7205 --- a/arch/parisc/include/asm/cache.h
7206 +++ b/arch/parisc/include/asm/cache.h
7207 @@ -5,6 +5,7 @@
7208 #ifndef __ARCH_PARISC_CACHE_H
7209 #define __ARCH_PARISC_CACHE_H
7210
7211 +#include <linux/const.h>
7212
7213 /*
7214 * PA 2.0 processors have 64-byte cachelines; PA 1.1 processors have
7215 @@ -15,13 +16,13 @@
7216 * just ruin performance.
7217 */
7218 #ifdef CONFIG_PA20
7219 -#define L1_CACHE_BYTES 64
7220 #define L1_CACHE_SHIFT 6
7221 #else
7222 -#define L1_CACHE_BYTES 32
7223 #define L1_CACHE_SHIFT 5
7224 #endif
7225
7226 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7227 +
7228 #ifndef __ASSEMBLY__
7229
7230 #define SMP_CACHE_BYTES L1_CACHE_BYTES
7231 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
7232 index 78c9fd3..42fa66a 100644
7233 --- a/arch/parisc/include/asm/elf.h
7234 +++ b/arch/parisc/include/asm/elf.h
7235 @@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration... */
7236
7237 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
7238
7239 +#ifdef CONFIG_PAX_ASLR
7240 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
7241 +
7242 +#define PAX_DELTA_MMAP_LEN 16
7243 +#define PAX_DELTA_STACK_LEN 16
7244 +#endif
7245 +
7246 /* This yields a mask that user programs can use to figure out what
7247 instruction set this CPU supports. This could be done in user space,
7248 but it's not easy, and we've already done it here. */
7249 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
7250 index 3edbb9f..08fef28 100644
7251 --- a/arch/parisc/include/asm/pgalloc.h
7252 +++ b/arch/parisc/include/asm/pgalloc.h
7253 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7254 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT));
7255 }
7256
7257 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7258 +{
7259 + pgd_populate(mm, pgd, pmd);
7260 +}
7261 +
7262 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
7263 {
7264 pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
7265 @@ -97,6 +102,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
7266 #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
7267 #define pmd_free(mm, x) do { } while (0)
7268 #define pgd_populate(mm, pmd, pte) BUG()
7269 +#define pgd_populate_kernel(mm, pmd, pte) BUG()
7270
7271 #endif
7272
7273 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
7274 index f93c4a4..cfd5663 100644
7275 --- a/arch/parisc/include/asm/pgtable.h
7276 +++ b/arch/parisc/include/asm/pgtable.h
7277 @@ -231,6 +231,17 @@ static inline void purge_tlb_entries(struct mm_struct *mm, unsigned long addr)
7278 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
7279 #define PAGE_COPY PAGE_EXECREAD
7280 #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
7281 +
7282 +#ifdef CONFIG_PAX_PAGEEXEC
7283 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_ACCESSED)
7284 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7285 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7286 +#else
7287 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
7288 +# define PAGE_COPY_NOEXEC PAGE_COPY
7289 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
7290 +#endif
7291 +
7292 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
7293 #define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
7294 #define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
7295 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
7296 index 0abdd4c..1af92f0 100644
7297 --- a/arch/parisc/include/asm/uaccess.h
7298 +++ b/arch/parisc/include/asm/uaccess.h
7299 @@ -243,10 +243,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
7300 const void __user *from,
7301 unsigned long n)
7302 {
7303 - int sz = __compiletime_object_size(to);
7304 + size_t sz = __compiletime_object_size(to);
7305 int ret = -EFAULT;
7306
7307 - if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
7308 + if (likely(sz == (size_t)-1 || !__builtin_constant_p(n) || sz >= n))
7309 ret = __copy_from_user(to, from, n);
7310 else
7311 copy_from_user_overflow();
7312 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
7313 index 3c63a82..b1d6ee9 100644
7314 --- a/arch/parisc/kernel/module.c
7315 +++ b/arch/parisc/kernel/module.c
7316 @@ -98,16 +98,38 @@
7317
7318 /* three functions to determine where in the module core
7319 * or init pieces the location is */
7320 +static inline int in_init_rx(struct module *me, void *loc)
7321 +{
7322 + return (loc >= me->module_init_rx &&
7323 + loc < (me->module_init_rx + me->init_size_rx));
7324 +}
7325 +
7326 +static inline int in_init_rw(struct module *me, void *loc)
7327 +{
7328 + return (loc >= me->module_init_rw &&
7329 + loc < (me->module_init_rw + me->init_size_rw));
7330 +}
7331 +
7332 static inline int in_init(struct module *me, void *loc)
7333 {
7334 - return (loc >= me->module_init &&
7335 - loc <= (me->module_init + me->init_size));
7336 + return in_init_rx(me, loc) || in_init_rw(me, loc);
7337 +}
7338 +
7339 +static inline int in_core_rx(struct module *me, void *loc)
7340 +{
7341 + return (loc >= me->module_core_rx &&
7342 + loc < (me->module_core_rx + me->core_size_rx));
7343 +}
7344 +
7345 +static inline int in_core_rw(struct module *me, void *loc)
7346 +{
7347 + return (loc >= me->module_core_rw &&
7348 + loc < (me->module_core_rw + me->core_size_rw));
7349 }
7350
7351 static inline int in_core(struct module *me, void *loc)
7352 {
7353 - return (loc >= me->module_core &&
7354 - loc <= (me->module_core + me->core_size));
7355 + return in_core_rx(me, loc) || in_core_rw(me, loc);
7356 }
7357
7358 static inline int in_local(struct module *me, void *loc)
7359 @@ -367,13 +389,13 @@ int module_frob_arch_sections(CONST Elf_Ehdr *hdr,
7360 }
7361
7362 /* align things a bit */
7363 - me->core_size = ALIGN(me->core_size, 16);
7364 - me->arch.got_offset = me->core_size;
7365 - me->core_size += gots * sizeof(struct got_entry);
7366 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7367 + me->arch.got_offset = me->core_size_rw;
7368 + me->core_size_rw += gots * sizeof(struct got_entry);
7369
7370 - me->core_size = ALIGN(me->core_size, 16);
7371 - me->arch.fdesc_offset = me->core_size;
7372 - me->core_size += fdescs * sizeof(Elf_Fdesc);
7373 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7374 + me->arch.fdesc_offset = me->core_size_rw;
7375 + me->core_size_rw += fdescs * sizeof(Elf_Fdesc);
7376
7377 me->arch.got_max = gots;
7378 me->arch.fdesc_max = fdescs;
7379 @@ -391,7 +413,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7380
7381 BUG_ON(value == 0);
7382
7383 - got = me->module_core + me->arch.got_offset;
7384 + got = me->module_core_rw + me->arch.got_offset;
7385 for (i = 0; got[i].addr; i++)
7386 if (got[i].addr == value)
7387 goto out;
7388 @@ -409,7 +431,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7389 #ifdef CONFIG_64BIT
7390 static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7391 {
7392 - Elf_Fdesc *fdesc = me->module_core + me->arch.fdesc_offset;
7393 + Elf_Fdesc *fdesc = me->module_core_rw + me->arch.fdesc_offset;
7394
7395 if (!value) {
7396 printk(KERN_ERR "%s: zero OPD requested!\n", me->name);
7397 @@ -427,7 +449,7 @@ static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7398
7399 /* Create new one */
7400 fdesc->addr = value;
7401 - fdesc->gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7402 + fdesc->gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7403 return (Elf_Addr)fdesc;
7404 }
7405 #endif /* CONFIG_64BIT */
7406 @@ -839,7 +861,7 @@ register_unwind_table(struct module *me,
7407
7408 table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr;
7409 end = table + sechdrs[me->arch.unwind_section].sh_size;
7410 - gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7411 + gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7412
7413 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
7414 me->arch.unwind_section, table, end, gp);
7415 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
7416 index 5aba01a..47cdd5a 100644
7417 --- a/arch/parisc/kernel/sys_parisc.c
7418 +++ b/arch/parisc/kernel/sys_parisc.c
7419 @@ -92,6 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7420 unsigned long task_size = TASK_SIZE;
7421 int do_color_align, last_mmap;
7422 struct vm_unmapped_area_info info;
7423 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7424
7425 if (len > task_size)
7426 return -ENOMEM;
7427 @@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7428 goto found_addr;
7429 }
7430
7431 +#ifdef CONFIG_PAX_RANDMMAP
7432 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7433 +#endif
7434 +
7435 if (addr) {
7436 if (do_color_align && last_mmap)
7437 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7438 @@ -127,6 +132,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7439 info.high_limit = mmap_upper_limit();
7440 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7441 info.align_offset = shared_align_offset(last_mmap, pgoff);
7442 + info.threadstack_offset = offset;
7443 addr = vm_unmapped_area(&info);
7444
7445 found_addr:
7446 @@ -146,6 +152,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7447 unsigned long addr = addr0;
7448 int do_color_align, last_mmap;
7449 struct vm_unmapped_area_info info;
7450 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7451
7452 #ifdef CONFIG_64BIT
7453 /* This should only ever run for 32-bit processes. */
7454 @@ -170,6 +177,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7455 }
7456
7457 /* requesting a specific address */
7458 +#ifdef CONFIG_PAX_RANDMMAP
7459 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7460 +#endif
7461 +
7462 if (addr) {
7463 if (do_color_align && last_mmap)
7464 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7465 @@ -187,6 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7466 info.high_limit = mm->mmap_base;
7467 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7468 info.align_offset = shared_align_offset(last_mmap, pgoff);
7469 + info.threadstack_offset = offset;
7470 addr = vm_unmapped_area(&info);
7471 if (!(addr & ~PAGE_MASK))
7472 goto found_addr;
7473 @@ -252,6 +264,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7474 mm->mmap_legacy_base = mmap_legacy_base();
7475 mm->mmap_base = mmap_upper_limit();
7476
7477 +#ifdef CONFIG_PAX_RANDMMAP
7478 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
7479 + mm->mmap_legacy_base += mm->delta_mmap;
7480 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7481 + }
7482 +#endif
7483 +
7484 if (mmap_is_legacy()) {
7485 mm->mmap_base = mm->mmap_legacy_base;
7486 mm->get_unmapped_area = arch_get_unmapped_area;
7487 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
7488 index b99b39f..e3915ae 100644
7489 --- a/arch/parisc/kernel/traps.c
7490 +++ b/arch/parisc/kernel/traps.c
7491 @@ -722,9 +722,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
7492
7493 down_read(&current->mm->mmap_sem);
7494 vma = find_vma(current->mm,regs->iaoq[0]);
7495 - if (vma && (regs->iaoq[0] >= vma->vm_start)
7496 - && (vma->vm_flags & VM_EXEC)) {
7497 -
7498 + if (vma && (regs->iaoq[0] >= vma->vm_start)) {
7499 fault_address = regs->iaoq[0];
7500 fault_space = regs->iasq[0];
7501
7502 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
7503 index a762864..664087f 100644
7504 --- a/arch/parisc/mm/fault.c
7505 +++ b/arch/parisc/mm/fault.c
7506 @@ -16,6 +16,7 @@
7507 #include <linux/interrupt.h>
7508 #include <linux/module.h>
7509 #include <linux/uaccess.h>
7510 +#include <linux/unistd.h>
7511
7512 #include <asm/traps.h>
7513
7514 @@ -50,7 +51,7 @@ int show_unhandled_signals = 1;
7515 static unsigned long
7516 parisc_acctyp(unsigned long code, unsigned int inst)
7517 {
7518 - if (code == 6 || code == 16)
7519 + if (code == 6 || code == 7 || code == 16)
7520 return VM_EXEC;
7521
7522 switch (inst & 0xf0000000) {
7523 @@ -136,6 +137,116 @@ parisc_acctyp(unsigned long code, unsigned int inst)
7524 }
7525 #endif
7526
7527 +#ifdef CONFIG_PAX_PAGEEXEC
7528 +/*
7529 + * PaX: decide what to do with offenders (instruction_pointer(regs) = fault address)
7530 + *
7531 + * returns 1 when task should be killed
7532 + * 2 when rt_sigreturn trampoline was detected
7533 + * 3 when unpatched PLT trampoline was detected
7534 + */
7535 +static int pax_handle_fetch_fault(struct pt_regs *regs)
7536 +{
7537 +
7538 +#ifdef CONFIG_PAX_EMUPLT
7539 + int err;
7540 +
7541 + do { /* PaX: unpatched PLT emulation */
7542 + unsigned int bl, depwi;
7543 +
7544 + err = get_user(bl, (unsigned int *)instruction_pointer(regs));
7545 + err |= get_user(depwi, (unsigned int *)(instruction_pointer(regs)+4));
7546 +
7547 + if (err)
7548 + break;
7549 +
7550 + if (bl == 0xEA9F1FDDU && depwi == 0xD6801C1EU) {
7551 + unsigned int ldw, bv, ldw2, addr = instruction_pointer(regs)-12;
7552 +
7553 + err = get_user(ldw, (unsigned int *)addr);
7554 + err |= get_user(bv, (unsigned int *)(addr+4));
7555 + err |= get_user(ldw2, (unsigned int *)(addr+8));
7556 +
7557 + if (err)
7558 + break;
7559 +
7560 + if (ldw == 0x0E801096U &&
7561 + bv == 0xEAC0C000U &&
7562 + ldw2 == 0x0E881095U)
7563 + {
7564 + unsigned int resolver, map;
7565 +
7566 + err = get_user(resolver, (unsigned int *)(instruction_pointer(regs)+8));
7567 + err |= get_user(map, (unsigned int *)(instruction_pointer(regs)+12));
7568 + if (err)
7569 + break;
7570 +
7571 + regs->gr[20] = instruction_pointer(regs)+8;
7572 + regs->gr[21] = map;
7573 + regs->gr[22] = resolver;
7574 + regs->iaoq[0] = resolver | 3UL;
7575 + regs->iaoq[1] = regs->iaoq[0] + 4;
7576 + return 3;
7577 + }
7578 + }
7579 + } while (0);
7580 +#endif
7581 +
7582 +#ifdef CONFIG_PAX_EMUTRAMP
7583 +
7584 +#ifndef CONFIG_PAX_EMUSIGRT
7585 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
7586 + return 1;
7587 +#endif
7588 +
7589 + do { /* PaX: rt_sigreturn emulation */
7590 + unsigned int ldi1, ldi2, bel, nop;
7591 +
7592 + err = get_user(ldi1, (unsigned int *)instruction_pointer(regs));
7593 + err |= get_user(ldi2, (unsigned int *)(instruction_pointer(regs)+4));
7594 + err |= get_user(bel, (unsigned int *)(instruction_pointer(regs)+8));
7595 + err |= get_user(nop, (unsigned int *)(instruction_pointer(regs)+12));
7596 +
7597 + if (err)
7598 + break;
7599 +
7600 + if ((ldi1 == 0x34190000U || ldi1 == 0x34190002U) &&
7601 + ldi2 == 0x3414015AU &&
7602 + bel == 0xE4008200U &&
7603 + nop == 0x08000240U)
7604 + {
7605 + regs->gr[25] = (ldi1 & 2) >> 1;
7606 + regs->gr[20] = __NR_rt_sigreturn;
7607 + regs->gr[31] = regs->iaoq[1] + 16;
7608 + regs->sr[0] = regs->iasq[1];
7609 + regs->iaoq[0] = 0x100UL;
7610 + regs->iaoq[1] = regs->iaoq[0] + 4;
7611 + regs->iasq[0] = regs->sr[2];
7612 + regs->iasq[1] = regs->sr[2];
7613 + return 2;
7614 + }
7615 + } while (0);
7616 +#endif
7617 +
7618 + return 1;
7619 +}
7620 +
7621 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7622 +{
7623 + unsigned long i;
7624 +
7625 + printk(KERN_ERR "PAX: bytes at PC: ");
7626 + for (i = 0; i < 5; i++) {
7627 + unsigned int c;
7628 + if (get_user(c, (unsigned int *)pc+i))
7629 + printk(KERN_CONT "???????? ");
7630 + else
7631 + printk(KERN_CONT "%08x ", c);
7632 + }
7633 + printk("\n");
7634 +}
7635 +#endif
7636 +
7637 int fixup_exception(struct pt_regs *regs)
7638 {
7639 const struct exception_table_entry *fix;
7640 @@ -234,8 +345,33 @@ retry:
7641
7642 good_area:
7643
7644 - if ((vma->vm_flags & acc_type) != acc_type)
7645 + if ((vma->vm_flags & acc_type) != acc_type) {
7646 +
7647 +#ifdef CONFIG_PAX_PAGEEXEC
7648 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && (acc_type & VM_EXEC) &&
7649 + (address & ~3UL) == instruction_pointer(regs))
7650 + {
7651 + up_read(&mm->mmap_sem);
7652 + switch (pax_handle_fetch_fault(regs)) {
7653 +
7654 +#ifdef CONFIG_PAX_EMUPLT
7655 + case 3:
7656 + return;
7657 +#endif
7658 +
7659 +#ifdef CONFIG_PAX_EMUTRAMP
7660 + case 2:
7661 + return;
7662 +#endif
7663 +
7664 + }
7665 + pax_report_fault(regs, (void *)instruction_pointer(regs), (void *)regs->gr[30]);
7666 + do_group_exit(SIGKILL);
7667 + }
7668 +#endif
7669 +
7670 goto bad_area;
7671 + }
7672
7673 /*
7674 * If for any reason at all we couldn't handle the fault, make
7675 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
7676 index 9a7057e..5691c0b 100644
7677 --- a/arch/powerpc/Kconfig
7678 +++ b/arch/powerpc/Kconfig
7679 @@ -421,6 +421,7 @@ config KEXEC
7680 bool "kexec system call"
7681 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
7682 select KEXEC_CORE
7683 + depends on !GRKERNSEC_KMEM
7684 help
7685 kexec is a system call that implements the ability to shutdown your
7686 current kernel, and to start another kernel. It is like a reboot
7687 diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
7688 index 55f106e..70cc82a 100644
7689 --- a/arch/powerpc/include/asm/atomic.h
7690 +++ b/arch/powerpc/include/asm/atomic.h
7691 @@ -12,6 +12,11 @@
7692
7693 #define ATOMIC_INIT(i) { (i) }
7694
7695 +#define _ASM_EXTABLE(from, to) \
7696 +" .section __ex_table,\"a\"\n" \
7697 + PPC_LONG" " #from ", " #to"\n" \
7698 +" .previous\n"
7699 +
7700 static __inline__ int atomic_read(const atomic_t *v)
7701 {
7702 int t;
7703 @@ -21,39 +26,80 @@ static __inline__ int atomic_read(const atomic_t *v)
7704 return t;
7705 }
7706
7707 +static __inline__ int atomic_read_unchecked(const atomic_unchecked_t *v)
7708 +{
7709 + int t;
7710 +
7711 + __asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7712 +
7713 + return t;
7714 +}
7715 +
7716 static __inline__ void atomic_set(atomic_t *v, int i)
7717 {
7718 __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7719 }
7720
7721 -#define ATOMIC_OP(op, asm_op) \
7722 -static __inline__ void atomic_##op(int a, atomic_t *v) \
7723 +static __inline__ void atomic_set_unchecked(atomic_unchecked_t *v, int i)
7724 +{
7725 + __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7726 +}
7727 +
7728 +#ifdef CONFIG_PAX_REFCOUNT
7729 +#define __REFCOUNT_OP(op) op##o.
7730 +#define __OVERFLOW_PRE \
7731 + " mcrxr cr0\n"
7732 +#define __OVERFLOW_POST \
7733 + " bf 4*cr0+so, 3f\n" \
7734 + "2: .long 0x00c00b00\n" \
7735 + "3:\n"
7736 +#define __OVERFLOW_EXTABLE \
7737 + "\n4:\n"
7738 + _ASM_EXTABLE(2b, 4b)
7739 +#else
7740 +#define __REFCOUNT_OP(op) op
7741 +#define __OVERFLOW_PRE
7742 +#define __OVERFLOW_POST
7743 +#define __OVERFLOW_EXTABLE
7744 +#endif
7745 +
7746 +#define __ATOMIC_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7747 +static inline void atomic_##op##suffix(int a, atomic##suffix##_t *v) \
7748 { \
7749 int t; \
7750 \
7751 __asm__ __volatile__( \
7752 -"1: lwarx %0,0,%3 # atomic_" #op "\n" \
7753 +"1: lwarx %0,0,%3 # atomic_" #op #suffix "\n" \
7754 + pre_op \
7755 #asm_op " %0,%2,%0\n" \
7756 + post_op \
7757 PPC405_ERR77(0,%3) \
7758 " stwcx. %0,0,%3 \n" \
7759 " bne- 1b\n" \
7760 + extable \
7761 : "=&r" (t), "+m" (v->counter) \
7762 : "r" (a), "r" (&v->counter) \
7763 : "cc"); \
7764 } \
7765
7766 -#define ATOMIC_OP_RETURN(op, asm_op) \
7767 -static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
7768 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, , , asm_op, , ) \
7769 + __ATOMIC_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7770 +
7771 +#define __ATOMIC_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
7772 +static inline int atomic_##op##_return##suffix(int a, atomic##suffix##_t *v)\
7773 { \
7774 int t; \
7775 \
7776 __asm__ __volatile__( \
7777 PPC_ATOMIC_ENTRY_BARRIER \
7778 -"1: lwarx %0,0,%2 # atomic_" #op "_return\n" \
7779 +"1: lwarx %0,0,%2 # atomic_" #op "_return" #suffix "\n" \
7780 + pre_op \
7781 #asm_op " %0,%1,%0\n" \
7782 + post_op \
7783 PPC405_ERR77(0,%2) \
7784 " stwcx. %0,0,%2 \n" \
7785 " bne- 1b\n" \
7786 + extable \
7787 PPC_ATOMIC_EXIT_BARRIER \
7788 : "=&r" (t) \
7789 : "r" (a), "r" (&v->counter) \
7790 @@ -62,6 +108,9 @@ static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
7791 return t; \
7792 }
7793
7794 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, , , asm_op, , )\
7795 + __ATOMIC_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7796 +
7797 #define ATOMIC_OPS(op, asm_op) ATOMIC_OP(op, asm_op) ATOMIC_OP_RETURN(op, asm_op)
7798
7799 ATOMIC_OPS(add, add)
7800 @@ -73,42 +122,29 @@ ATOMIC_OP(xor, xor)
7801
7802 #undef ATOMIC_OPS
7803 #undef ATOMIC_OP_RETURN
7804 +#undef __ATOMIC_OP_RETURN
7805 #undef ATOMIC_OP
7806 +#undef __ATOMIC_OP
7807
7808 #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
7809
7810 -static __inline__ void atomic_inc(atomic_t *v)
7811 -{
7812 - int t;
7813 +/*
7814 + * atomic_inc - increment atomic variable
7815 + * @v: pointer of type atomic_t
7816 + *
7817 + * Automatically increments @v by 1
7818 + */
7819 +#define atomic_inc(v) atomic_add(1, (v))
7820 +#define atomic_inc_return(v) atomic_add_return(1, (v))
7821
7822 - __asm__ __volatile__(
7823 -"1: lwarx %0,0,%2 # atomic_inc\n\
7824 - addic %0,%0,1\n"
7825 - PPC405_ERR77(0,%2)
7826 -" stwcx. %0,0,%2 \n\
7827 - bne- 1b"
7828 - : "=&r" (t), "+m" (v->counter)
7829 - : "r" (&v->counter)
7830 - : "cc", "xer");
7831 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
7832 +{
7833 + atomic_add_unchecked(1, v);
7834 }
7835
7836 -static __inline__ int atomic_inc_return(atomic_t *v)
7837 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
7838 {
7839 - int t;
7840 -
7841 - __asm__ __volatile__(
7842 - PPC_ATOMIC_ENTRY_BARRIER
7843 -"1: lwarx %0,0,%1 # atomic_inc_return\n\
7844 - addic %0,%0,1\n"
7845 - PPC405_ERR77(0,%1)
7846 -" stwcx. %0,0,%1 \n\
7847 - bne- 1b"
7848 - PPC_ATOMIC_EXIT_BARRIER
7849 - : "=&r" (t)
7850 - : "r" (&v->counter)
7851 - : "cc", "xer", "memory");
7852 -
7853 - return t;
7854 + return atomic_add_return_unchecked(1, v);
7855 }
7856
7857 /*
7858 @@ -121,43 +157,38 @@ static __inline__ int atomic_inc_return(atomic_t *v)
7859 */
7860 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
7861
7862 -static __inline__ void atomic_dec(atomic_t *v)
7863 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
7864 {
7865 - int t;
7866 -
7867 - __asm__ __volatile__(
7868 -"1: lwarx %0,0,%2 # atomic_dec\n\
7869 - addic %0,%0,-1\n"
7870 - PPC405_ERR77(0,%2)\
7871 -" stwcx. %0,0,%2\n\
7872 - bne- 1b"
7873 - : "=&r" (t), "+m" (v->counter)
7874 - : "r" (&v->counter)
7875 - : "cc", "xer");
7876 + return atomic_add_return_unchecked(1, v) == 0;
7877 }
7878
7879 -static __inline__ int atomic_dec_return(atomic_t *v)
7880 +/*
7881 + * atomic_dec - decrement atomic variable
7882 + * @v: pointer of type atomic_t
7883 + *
7884 + * Atomically decrements @v by 1
7885 + */
7886 +#define atomic_dec(v) atomic_sub(1, (v))
7887 +#define atomic_dec_return(v) atomic_sub_return(1, (v))
7888 +
7889 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
7890 {
7891 - int t;
7892 -
7893 - __asm__ __volatile__(
7894 - PPC_ATOMIC_ENTRY_BARRIER
7895 -"1: lwarx %0,0,%1 # atomic_dec_return\n\
7896 - addic %0,%0,-1\n"
7897 - PPC405_ERR77(0,%1)
7898 -" stwcx. %0,0,%1\n\
7899 - bne- 1b"
7900 - PPC_ATOMIC_EXIT_BARRIER
7901 - : "=&r" (t)
7902 - : "r" (&v->counter)
7903 - : "cc", "xer", "memory");
7904 -
7905 - return t;
7906 + atomic_sub_unchecked(1, v);
7907 }
7908
7909 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
7910 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
7911
7912 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
7913 +{
7914 + return cmpxchg(&(v->counter), old, new);
7915 +}
7916 +
7917 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
7918 +{
7919 + return xchg(&(v->counter), new);
7920 +}
7921 +
7922 /**
7923 * __atomic_add_unless - add unless the number is a given value
7924 * @v: pointer of type atomic_t
7925 @@ -175,11 +206,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
7926 PPC_ATOMIC_ENTRY_BARRIER
7927 "1: lwarx %0,0,%1 # __atomic_add_unless\n\
7928 cmpw 0,%0,%3 \n\
7929 - beq- 2f \n\
7930 - add %0,%2,%0 \n"
7931 + beq- 2f \n"
7932 +
7933 +#ifdef CONFIG_PAX_REFCOUNT
7934 +" mcrxr cr0\n"
7935 +" addo. %0,%2,%0\n"
7936 +" bf 4*cr0+so, 4f\n"
7937 +"3:.long " "0x00c00b00""\n"
7938 +"4:\n"
7939 +#else
7940 + "add %0,%2,%0 \n"
7941 +#endif
7942 +
7943 PPC405_ERR77(0,%2)
7944 " stwcx. %0,0,%1 \n\
7945 bne- 1b \n"
7946 +"5:"
7947 +
7948 +#ifdef CONFIG_PAX_REFCOUNT
7949 + _ASM_EXTABLE(3b, 5b)
7950 +#endif
7951 +
7952 PPC_ATOMIC_EXIT_BARRIER
7953 " subf %0,%2,%0 \n\
7954 2:"
7955 @@ -252,6 +299,11 @@ static __inline__ int atomic_dec_if_positive(atomic_t *v)
7956 }
7957 #define atomic_dec_if_positive atomic_dec_if_positive
7958
7959 +#define smp_mb__before_atomic_dec() smp_mb()
7960 +#define smp_mb__after_atomic_dec() smp_mb()
7961 +#define smp_mb__before_atomic_inc() smp_mb()
7962 +#define smp_mb__after_atomic_inc() smp_mb()
7963 +
7964 #ifdef __powerpc64__
7965
7966 #define ATOMIC64_INIT(i) { (i) }
7967 @@ -265,37 +317,60 @@ static __inline__ long atomic64_read(const atomic64_t *v)
7968 return t;
7969 }
7970
7971 +static __inline__ long atomic64_read_unchecked(const atomic64_unchecked_t *v)
7972 +{
7973 + long t;
7974 +
7975 + __asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7976 +
7977 + return t;
7978 +}
7979 +
7980 static __inline__ void atomic64_set(atomic64_t *v, long i)
7981 {
7982 __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7983 }
7984
7985 -#define ATOMIC64_OP(op, asm_op) \
7986 -static __inline__ void atomic64_##op(long a, atomic64_t *v) \
7987 +static __inline__ void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
7988 +{
7989 + __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7990 +}
7991 +
7992 +#define __ATOMIC64_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7993 +static inline void atomic64_##op##suffix(long a, atomic64##suffix##_t *v)\
7994 { \
7995 long t; \
7996 \
7997 __asm__ __volatile__( \
7998 "1: ldarx %0,0,%3 # atomic64_" #op "\n" \
7999 + pre_op \
8000 #asm_op " %0,%2,%0\n" \
8001 + post_op \
8002 " stdcx. %0,0,%3 \n" \
8003 " bne- 1b\n" \
8004 + extable \
8005 : "=&r" (t), "+m" (v->counter) \
8006 : "r" (a), "r" (&v->counter) \
8007 : "cc"); \
8008 }
8009
8010 -#define ATOMIC64_OP_RETURN(op, asm_op) \
8011 -static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8012 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, , , asm_op, , ) \
8013 + __ATOMIC64_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8014 +
8015 +#define __ATOMIC64_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
8016 +static inline long atomic64_##op##_return##suffix(long a, atomic64##suffix##_t *v)\
8017 { \
8018 long t; \
8019 \
8020 __asm__ __volatile__( \
8021 PPC_ATOMIC_ENTRY_BARRIER \
8022 "1: ldarx %0,0,%2 # atomic64_" #op "_return\n" \
8023 + pre_op \
8024 #asm_op " %0,%1,%0\n" \
8025 + post_op \
8026 " stdcx. %0,0,%2 \n" \
8027 " bne- 1b\n" \
8028 + extable \
8029 PPC_ATOMIC_EXIT_BARRIER \
8030 : "=&r" (t) \
8031 : "r" (a), "r" (&v->counter) \
8032 @@ -304,6 +379,9 @@ static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8033 return t; \
8034 }
8035
8036 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, , , asm_op, , )\
8037 + __ATOMIC64_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8038 +
8039 #define ATOMIC64_OPS(op, asm_op) ATOMIC64_OP(op, asm_op) ATOMIC64_OP_RETURN(op, asm_op)
8040
8041 ATOMIC64_OPS(add, add)
8042 @@ -314,40 +392,33 @@ ATOMIC64_OP(xor, xor)
8043
8044 #undef ATOMIC64_OPS
8045 #undef ATOMIC64_OP_RETURN
8046 +#undef __ATOMIC64_OP_RETURN
8047 #undef ATOMIC64_OP
8048 +#undef __ATOMIC64_OP
8049 +#undef __OVERFLOW_EXTABLE
8050 +#undef __OVERFLOW_POST
8051 +#undef __OVERFLOW_PRE
8052 +#undef __REFCOUNT_OP
8053
8054 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
8055
8056 -static __inline__ void atomic64_inc(atomic64_t *v)
8057 -{
8058 - long t;
8059 +/*
8060 + * atomic64_inc - increment atomic variable
8061 + * @v: pointer of type atomic64_t
8062 + *
8063 + * Automatically increments @v by 1
8064 + */
8065 +#define atomic64_inc(v) atomic64_add(1, (v))
8066 +#define atomic64_inc_return(v) atomic64_add_return(1, (v))
8067
8068 - __asm__ __volatile__(
8069 -"1: ldarx %0,0,%2 # atomic64_inc\n\
8070 - addic %0,%0,1\n\
8071 - stdcx. %0,0,%2 \n\
8072 - bne- 1b"
8073 - : "=&r" (t), "+m" (v->counter)
8074 - : "r" (&v->counter)
8075 - : "cc", "xer");
8076 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
8077 +{
8078 + atomic64_add_unchecked(1, v);
8079 }
8080
8081 -static __inline__ long atomic64_inc_return(atomic64_t *v)
8082 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
8083 {
8084 - long t;
8085 -
8086 - __asm__ __volatile__(
8087 - PPC_ATOMIC_ENTRY_BARRIER
8088 -"1: ldarx %0,0,%1 # atomic64_inc_return\n\
8089 - addic %0,%0,1\n\
8090 - stdcx. %0,0,%1 \n\
8091 - bne- 1b"
8092 - PPC_ATOMIC_EXIT_BARRIER
8093 - : "=&r" (t)
8094 - : "r" (&v->counter)
8095 - : "cc", "xer", "memory");
8096 -
8097 - return t;
8098 + return atomic64_add_return_unchecked(1, v);
8099 }
8100
8101 /*
8102 @@ -360,36 +431,18 @@ static __inline__ long atomic64_inc_return(atomic64_t *v)
8103 */
8104 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
8105
8106 -static __inline__ void atomic64_dec(atomic64_t *v)
8107 +/*
8108 + * atomic64_dec - decrement atomic variable
8109 + * @v: pointer of type atomic64_t
8110 + *
8111 + * Atomically decrements @v by 1
8112 + */
8113 +#define atomic64_dec(v) atomic64_sub(1, (v))
8114 +#define atomic64_dec_return(v) atomic64_sub_return(1, (v))
8115 +
8116 +static __inline__ void atomic64_dec_unchecked(atomic64_unchecked_t *v)
8117 {
8118 - long t;
8119 -
8120 - __asm__ __volatile__(
8121 -"1: ldarx %0,0,%2 # atomic64_dec\n\
8122 - addic %0,%0,-1\n\
8123 - stdcx. %0,0,%2\n\
8124 - bne- 1b"
8125 - : "=&r" (t), "+m" (v->counter)
8126 - : "r" (&v->counter)
8127 - : "cc", "xer");
8128 -}
8129 -
8130 -static __inline__ long atomic64_dec_return(atomic64_t *v)
8131 -{
8132 - long t;
8133 -
8134 - __asm__ __volatile__(
8135 - PPC_ATOMIC_ENTRY_BARRIER
8136 -"1: ldarx %0,0,%1 # atomic64_dec_return\n\
8137 - addic %0,%0,-1\n\
8138 - stdcx. %0,0,%1\n\
8139 - bne- 1b"
8140 - PPC_ATOMIC_EXIT_BARRIER
8141 - : "=&r" (t)
8142 - : "r" (&v->counter)
8143 - : "cc", "xer", "memory");
8144 -
8145 - return t;
8146 + atomic64_sub_unchecked(1, v);
8147 }
8148
8149 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
8150 @@ -422,6 +475,16 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
8151 #define atomic64_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
8152 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
8153
8154 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
8155 +{
8156 + return cmpxchg(&(v->counter), old, new);
8157 +}
8158 +
8159 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
8160 +{
8161 + return xchg(&(v->counter), new);
8162 +}
8163 +
8164 /**
8165 * atomic64_add_unless - add unless the number is a given value
8166 * @v: pointer of type atomic64_t
8167 @@ -437,13 +500,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
8168
8169 __asm__ __volatile__ (
8170 PPC_ATOMIC_ENTRY_BARRIER
8171 -"1: ldarx %0,0,%1 # __atomic_add_unless\n\
8172 +"1: ldarx %0,0,%1 # atomic64_add_unless\n\
8173 cmpd 0,%0,%3 \n\
8174 - beq- 2f \n\
8175 - add %0,%2,%0 \n"
8176 + beq- 2f \n"
8177 +
8178 +#ifdef CONFIG_PAX_REFCOUNT
8179 +" mcrxr cr0\n"
8180 +" addo. %0,%2,%0\n"
8181 +" bf 4*cr0+so, 4f\n"
8182 +"3:.long " "0x00c00b00""\n"
8183 +"4:\n"
8184 +#else
8185 + "add %0,%2,%0 \n"
8186 +#endif
8187 +
8188 " stdcx. %0,0,%1 \n\
8189 bne- 1b \n"
8190 PPC_ATOMIC_EXIT_BARRIER
8191 +"5:"
8192 +
8193 +#ifdef CONFIG_PAX_REFCOUNT
8194 + _ASM_EXTABLE(3b, 5b)
8195 +#endif
8196 +
8197 " subf %0,%2,%0 \n\
8198 2:"
8199 : "=&r" (t)
8200 diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
8201 index 5f8229e..385d90b 100644
8202 --- a/arch/powerpc/include/asm/cache.h
8203 +++ b/arch/powerpc/include/asm/cache.h
8204 @@ -3,6 +3,8 @@
8205
8206 #ifdef __KERNEL__
8207
8208 +#include <asm/reg.h>
8209 +#include <linux/const.h>
8210
8211 /* bytes per L1 cache line */
8212 #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
8213 @@ -22,7 +24,7 @@
8214 #define L1_CACHE_SHIFT 7
8215 #endif
8216
8217 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
8218 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
8219
8220 #define SMP_CACHE_BYTES L1_CACHE_BYTES
8221
8222 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
8223 index ee46ffe..b36c98c 100644
8224 --- a/arch/powerpc/include/asm/elf.h
8225 +++ b/arch/powerpc/include/asm/elf.h
8226 @@ -30,6 +30,18 @@
8227
8228 #define ELF_ET_DYN_BASE 0x20000000
8229
8230 +#ifdef CONFIG_PAX_ASLR
8231 +#define PAX_ELF_ET_DYN_BASE (0x10000000UL)
8232 +
8233 +#ifdef __powerpc64__
8234 +#define PAX_DELTA_MMAP_LEN (is_32bit_task() ? 16 : 28)
8235 +#define PAX_DELTA_STACK_LEN (is_32bit_task() ? 16 : 28)
8236 +#else
8237 +#define PAX_DELTA_MMAP_LEN 15
8238 +#define PAX_DELTA_STACK_LEN 15
8239 +#endif
8240 +#endif
8241 +
8242 #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
8243
8244 /*
8245 diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
8246 index 8196e9c..d83a9f3 100644
8247 --- a/arch/powerpc/include/asm/exec.h
8248 +++ b/arch/powerpc/include/asm/exec.h
8249 @@ -4,6 +4,6 @@
8250 #ifndef _ASM_POWERPC_EXEC_H
8251 #define _ASM_POWERPC_EXEC_H
8252
8253 -extern unsigned long arch_align_stack(unsigned long sp);
8254 +#define arch_align_stack(x) ((x) & ~0xfUL)
8255
8256 #endif /* _ASM_POWERPC_EXEC_H */
8257 diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
8258 index 5acabbd..7ea14fa 100644
8259 --- a/arch/powerpc/include/asm/kmap_types.h
8260 +++ b/arch/powerpc/include/asm/kmap_types.h
8261 @@ -10,7 +10,7 @@
8262 * 2 of the License, or (at your option) any later version.
8263 */
8264
8265 -#define KM_TYPE_NR 16
8266 +#define KM_TYPE_NR 17
8267
8268 #endif /* __KERNEL__ */
8269 #endif /* _ASM_POWERPC_KMAP_TYPES_H */
8270 diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
8271 index b8da913..c02b593 100644
8272 --- a/arch/powerpc/include/asm/local.h
8273 +++ b/arch/powerpc/include/asm/local.h
8274 @@ -9,21 +9,65 @@ typedef struct
8275 atomic_long_t a;
8276 } local_t;
8277
8278 +typedef struct
8279 +{
8280 + atomic_long_unchecked_t a;
8281 +} local_unchecked_t;
8282 +
8283 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
8284
8285 #define local_read(l) atomic_long_read(&(l)->a)
8286 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
8287 #define local_set(l,i) atomic_long_set(&(l)->a, (i))
8288 +#define local_set_unchecked(l,i) atomic_long_set_unchecked(&(l)->a, (i))
8289
8290 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
8291 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
8292 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
8293 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
8294 #define local_inc(l) atomic_long_inc(&(l)->a)
8295 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
8296 #define local_dec(l) atomic_long_dec(&(l)->a)
8297 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
8298
8299 static __inline__ long local_add_return(long a, local_t *l)
8300 {
8301 long t;
8302
8303 __asm__ __volatile__(
8304 +"1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n"
8305 +
8306 +#ifdef CONFIG_PAX_REFCOUNT
8307 +" mcrxr cr0\n"
8308 +" addo. %0,%1,%0\n"
8309 +" bf 4*cr0+so, 3f\n"
8310 +"2:.long " "0x00c00b00""\n"
8311 +#else
8312 +" add %0,%1,%0\n"
8313 +#endif
8314 +
8315 +"3:\n"
8316 + PPC405_ERR77(0,%2)
8317 + PPC_STLCX "%0,0,%2 \n\
8318 + bne- 1b"
8319 +
8320 +#ifdef CONFIG_PAX_REFCOUNT
8321 +"\n4:\n"
8322 + _ASM_EXTABLE(2b, 4b)
8323 +#endif
8324 +
8325 + : "=&r" (t)
8326 + : "r" (a), "r" (&(l->a.counter))
8327 + : "cc", "memory");
8328 +
8329 + return t;
8330 +}
8331 +
8332 +static __inline__ long local_add_return_unchecked(long a, local_unchecked_t *l)
8333 +{
8334 + long t;
8335 +
8336 + __asm__ __volatile__(
8337 "1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n\
8338 add %0,%1,%0\n"
8339 PPC405_ERR77(0,%2)
8340 @@ -101,6 +145,8 @@ static __inline__ long local_dec_return(local_t *l)
8341
8342 #define local_cmpxchg(l, o, n) \
8343 (cmpxchg_local(&((l)->a.counter), (o), (n)))
8344 +#define local_cmpxchg_unchecked(l, o, n) \
8345 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
8346 #define local_xchg(l, n) (xchg_local(&((l)->a.counter), (n)))
8347
8348 /**
8349 diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h
8350 index 8565c25..2865190 100644
8351 --- a/arch/powerpc/include/asm/mman.h
8352 +++ b/arch/powerpc/include/asm/mman.h
8353 @@ -24,7 +24,7 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot)
8354 }
8355 #define arch_calc_vm_prot_bits(prot) arch_calc_vm_prot_bits(prot)
8356
8357 -static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
8358 +static inline pgprot_t arch_vm_get_page_prot(vm_flags_t vm_flags)
8359 {
8360 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
8361 }
8362 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
8363 index 71294a6..9e40aca 100644
8364 --- a/arch/powerpc/include/asm/page.h
8365 +++ b/arch/powerpc/include/asm/page.h
8366 @@ -227,8 +227,9 @@ extern long long virt_phys_offset;
8367 * and needs to be executable. This means the whole heap ends
8368 * up being executable.
8369 */
8370 -#define VM_DATA_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8371 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8372 +#define VM_DATA_DEFAULT_FLAGS32 \
8373 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8374 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8375
8376 #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8377 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8378 @@ -256,6 +257,9 @@ extern long long virt_phys_offset;
8379 #define is_kernel_addr(x) ((x) >= PAGE_OFFSET)
8380 #endif
8381
8382 +#define ktla_ktva(addr) (addr)
8383 +#define ktva_ktla(addr) (addr)
8384 +
8385 #ifndef CONFIG_PPC_BOOK3S_64
8386 /*
8387 * Use the top bit of the higher-level page table entries to indicate whether
8388 diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
8389 index d908a46..3753f71 100644
8390 --- a/arch/powerpc/include/asm/page_64.h
8391 +++ b/arch/powerpc/include/asm/page_64.h
8392 @@ -172,15 +172,18 @@ do { \
8393 * stack by default, so in the absence of a PT_GNU_STACK program header
8394 * we turn execute permission off.
8395 */
8396 -#define VM_STACK_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8397 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8398 +#define VM_STACK_DEFAULT_FLAGS32 \
8399 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8400 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8401
8402 #define VM_STACK_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8403 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8404
8405 +#ifndef CONFIG_PAX_PAGEEXEC
8406 #define VM_STACK_DEFAULT_FLAGS \
8407 (is_32bit_task() ? \
8408 VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64)
8409 +#endif
8410
8411 #include <asm-generic/getorder.h>
8412
8413 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
8414 index 4b0be20..c15a27d 100644
8415 --- a/arch/powerpc/include/asm/pgalloc-64.h
8416 +++ b/arch/powerpc/include/asm/pgalloc-64.h
8417 @@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
8418 #ifndef CONFIG_PPC_64K_PAGES
8419
8420 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
8421 +#define pgd_populate_kernel(MM, PGD, PUD) pgd_populate((MM), (PGD), (PUD))
8422
8423 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
8424 {
8425 @@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8426 pud_set(pud, (unsigned long)pmd);
8427 }
8428
8429 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8430 +{
8431 + pud_populate(mm, pud, pmd);
8432 +}
8433 +
8434 #define pmd_populate(mm, pmd, pte_page) \
8435 pmd_populate_kernel(mm, pmd, page_address(pte_page))
8436 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
8437 @@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
8438 #endif
8439
8440 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
8441 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
8442
8443 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
8444 pte_t *pte)
8445 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
8446 index 0717693..6a1f488 100644
8447 --- a/arch/powerpc/include/asm/pgtable.h
8448 +++ b/arch/powerpc/include/asm/pgtable.h
8449 @@ -2,6 +2,7 @@
8450 #define _ASM_POWERPC_PGTABLE_H
8451 #ifdef __KERNEL__
8452
8453 +#include <linux/const.h>
8454 #ifndef __ASSEMBLY__
8455 #include <linux/mmdebug.h>
8456 #include <linux/mmzone.h>
8457 diff --git a/arch/powerpc/include/asm/pte-hash32.h b/arch/powerpc/include/asm/pte-hash32.h
8458 index 62cfb0c..50c6402 100644
8459 --- a/arch/powerpc/include/asm/pte-hash32.h
8460 +++ b/arch/powerpc/include/asm/pte-hash32.h
8461 @@ -20,6 +20,7 @@
8462 #define _PAGE_HASHPTE 0x002 /* hash_page has made an HPTE for this pte */
8463 #define _PAGE_USER 0x004 /* usermode access allowed */
8464 #define _PAGE_GUARDED 0x008 /* G: prohibit speculative access */
8465 +#define _PAGE_EXEC _PAGE_GUARDED
8466 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
8467 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
8468 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
8469 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
8470 index a908ada..f3c8966 100644
8471 --- a/arch/powerpc/include/asm/reg.h
8472 +++ b/arch/powerpc/include/asm/reg.h
8473 @@ -252,6 +252,7 @@
8474 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
8475 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
8476 #define DSISR_NOHPTE 0x40000000 /* no translation found */
8477 +#define DSISR_GUARDED 0x10000000 /* fetch from guarded storage */
8478 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
8479 #define DSISR_ISSTORE 0x02000000 /* access was a store */
8480 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
8481 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
8482 index 825663c..f9e9134 100644
8483 --- a/arch/powerpc/include/asm/smp.h
8484 +++ b/arch/powerpc/include/asm/smp.h
8485 @@ -51,7 +51,7 @@ struct smp_ops_t {
8486 int (*cpu_disable)(void);
8487 void (*cpu_die)(unsigned int nr);
8488 int (*cpu_bootable)(unsigned int nr);
8489 -};
8490 +} __no_const;
8491
8492 extern void smp_send_debugger_break(void);
8493 extern void start_secondary_resume(void);
8494 diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h
8495 index 523673d..4aeef3b 100644
8496 --- a/arch/powerpc/include/asm/spinlock.h
8497 +++ b/arch/powerpc/include/asm/spinlock.h
8498 @@ -202,13 +202,29 @@ static inline long __arch_read_trylock(arch_rwlock_t *rw)
8499 __asm__ __volatile__(
8500 "1: " PPC_LWARX(%0,0,%1,1) "\n"
8501 __DO_SIGN_EXTEND
8502 -" addic. %0,%0,1\n\
8503 - ble- 2f\n"
8504 +
8505 +#ifdef CONFIG_PAX_REFCOUNT
8506 +" mcrxr cr0\n"
8507 +" addico. %0,%0,1\n"
8508 +" bf 4*cr0+so, 3f\n"
8509 +"2:.long " "0x00c00b00""\n"
8510 +#else
8511 +" addic. %0,%0,1\n"
8512 +#endif
8513 +
8514 +"3:\n"
8515 + "ble- 4f\n"
8516 PPC405_ERR77(0,%1)
8517 " stwcx. %0,0,%1\n\
8518 bne- 1b\n"
8519 PPC_ACQUIRE_BARRIER
8520 -"2:" : "=&r" (tmp)
8521 +"4:"
8522 +
8523 +#ifdef CONFIG_PAX_REFCOUNT
8524 + _ASM_EXTABLE(2b,4b)
8525 +#endif
8526 +
8527 + : "=&r" (tmp)
8528 : "r" (&rw->lock)
8529 : "cr0", "xer", "memory");
8530
8531 @@ -284,11 +300,27 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
8532 __asm__ __volatile__(
8533 "# read_unlock\n\t"
8534 PPC_RELEASE_BARRIER
8535 -"1: lwarx %0,0,%1\n\
8536 - addic %0,%0,-1\n"
8537 +"1: lwarx %0,0,%1\n"
8538 +
8539 +#ifdef CONFIG_PAX_REFCOUNT
8540 +" mcrxr cr0\n"
8541 +" addico. %0,%0,-1\n"
8542 +" bf 4*cr0+so, 3f\n"
8543 +"2:.long " "0x00c00b00""\n"
8544 +#else
8545 +" addic. %0,%0,-1\n"
8546 +#endif
8547 +
8548 +"3:\n"
8549 PPC405_ERR77(0,%1)
8550 " stwcx. %0,0,%1\n\
8551 bne- 1b"
8552 +
8553 +#ifdef CONFIG_PAX_REFCOUNT
8554 +"\n4:\n"
8555 + _ASM_EXTABLE(2b, 4b)
8556 +#endif
8557 +
8558 : "=&r"(tmp)
8559 : "r"(&rw->lock)
8560 : "cr0", "xer", "memory");
8561 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
8562 index 7efee4a..48d47cc 100644
8563 --- a/arch/powerpc/include/asm/thread_info.h
8564 +++ b/arch/powerpc/include/asm/thread_info.h
8565 @@ -101,6 +101,8 @@ static inline struct thread_info *current_thread_info(void)
8566 #if defined(CONFIG_PPC64)
8567 #define TIF_ELF2ABI 18 /* function descriptors must die! */
8568 #endif
8569 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
8570 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
8571
8572 /* as above, but as bit values */
8573 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
8574 @@ -119,9 +121,10 @@ static inline struct thread_info *current_thread_info(void)
8575 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
8576 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
8577 #define _TIF_NOHZ (1<<TIF_NOHZ)
8578 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
8579 #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
8580 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
8581 - _TIF_NOHZ)
8582 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
8583
8584 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
8585 _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
8586 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
8587 index 2a8ebae..5643c6f 100644
8588 --- a/arch/powerpc/include/asm/uaccess.h
8589 +++ b/arch/powerpc/include/asm/uaccess.h
8590 @@ -58,6 +58,7 @@
8591
8592 #endif
8593
8594 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
8595 #define access_ok(type, addr, size) \
8596 (__chk_user_ptr(addr), \
8597 __access_ok((__force unsigned long)(addr), (size), get_fs()))
8598 @@ -318,52 +319,6 @@ do { \
8599 extern unsigned long __copy_tofrom_user(void __user *to,
8600 const void __user *from, unsigned long size);
8601
8602 -#ifndef __powerpc64__
8603 -
8604 -static inline unsigned long copy_from_user(void *to,
8605 - const void __user *from, unsigned long n)
8606 -{
8607 - unsigned long over;
8608 -
8609 - if (access_ok(VERIFY_READ, from, n))
8610 - return __copy_tofrom_user((__force void __user *)to, from, n);
8611 - if ((unsigned long)from < TASK_SIZE) {
8612 - over = (unsigned long)from + n - TASK_SIZE;
8613 - return __copy_tofrom_user((__force void __user *)to, from,
8614 - n - over) + over;
8615 - }
8616 - return n;
8617 -}
8618 -
8619 -static inline unsigned long copy_to_user(void __user *to,
8620 - const void *from, unsigned long n)
8621 -{
8622 - unsigned long over;
8623 -
8624 - if (access_ok(VERIFY_WRITE, to, n))
8625 - return __copy_tofrom_user(to, (__force void __user *)from, n);
8626 - if ((unsigned long)to < TASK_SIZE) {
8627 - over = (unsigned long)to + n - TASK_SIZE;
8628 - return __copy_tofrom_user(to, (__force void __user *)from,
8629 - n - over) + over;
8630 - }
8631 - return n;
8632 -}
8633 -
8634 -#else /* __powerpc64__ */
8635 -
8636 -#define __copy_in_user(to, from, size) \
8637 - __copy_tofrom_user((to), (from), (size))
8638 -
8639 -extern unsigned long copy_from_user(void *to, const void __user *from,
8640 - unsigned long n);
8641 -extern unsigned long copy_to_user(void __user *to, const void *from,
8642 - unsigned long n);
8643 -extern unsigned long copy_in_user(void __user *to, const void __user *from,
8644 - unsigned long n);
8645 -
8646 -#endif /* __powerpc64__ */
8647 -
8648 static inline unsigned long __copy_from_user_inatomic(void *to,
8649 const void __user *from, unsigned long n)
8650 {
8651 @@ -387,6 +342,10 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
8652 if (ret == 0)
8653 return 0;
8654 }
8655 +
8656 + if (!__builtin_constant_p(n))
8657 + check_object_size(to, n, false);
8658 +
8659 return __copy_tofrom_user((__force void __user *)to, from, n);
8660 }
8661
8662 @@ -413,6 +372,10 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
8663 if (ret == 0)
8664 return 0;
8665 }
8666 +
8667 + if (!__builtin_constant_p(n))
8668 + check_object_size(from, n, true);
8669 +
8670 return __copy_tofrom_user(to, (__force const void __user *)from, n);
8671 }
8672
8673 @@ -430,6 +393,92 @@ static inline unsigned long __copy_to_user(void __user *to,
8674 return __copy_to_user_inatomic(to, from, size);
8675 }
8676
8677 +#ifndef __powerpc64__
8678 +
8679 +static inline unsigned long __must_check copy_from_user(void *to,
8680 + const void __user *from, unsigned long n)
8681 +{
8682 + unsigned long over;
8683 +
8684 + if ((long)n < 0)
8685 + return n;
8686 +
8687 + if (access_ok(VERIFY_READ, from, n)) {
8688 + if (!__builtin_constant_p(n))
8689 + check_object_size(to, n, false);
8690 + return __copy_tofrom_user((__force void __user *)to, from, n);
8691 + }
8692 + if ((unsigned long)from < TASK_SIZE) {
8693 + over = (unsigned long)from + n - TASK_SIZE;
8694 + if (!__builtin_constant_p(n - over))
8695 + check_object_size(to, n - over, false);
8696 + return __copy_tofrom_user((__force void __user *)to, from,
8697 + n - over) + over;
8698 + }
8699 + return n;
8700 +}
8701 +
8702 +static inline unsigned long __must_check copy_to_user(void __user *to,
8703 + const void *from, unsigned long n)
8704 +{
8705 + unsigned long over;
8706 +
8707 + if ((long)n < 0)
8708 + return n;
8709 +
8710 + if (access_ok(VERIFY_WRITE, to, n)) {
8711 + if (!__builtin_constant_p(n))
8712 + check_object_size(from, n, true);
8713 + return __copy_tofrom_user(to, (__force void __user *)from, n);
8714 + }
8715 + if ((unsigned long)to < TASK_SIZE) {
8716 + over = (unsigned long)to + n - TASK_SIZE;
8717 + if (!__builtin_constant_p(n))
8718 + check_object_size(from, n - over, true);
8719 + return __copy_tofrom_user(to, (__force void __user *)from,
8720 + n - over) + over;
8721 + }
8722 + return n;
8723 +}
8724 +
8725 +#else /* __powerpc64__ */
8726 +
8727 +#define __copy_in_user(to, from, size) \
8728 + __copy_tofrom_user((to), (from), (size))
8729 +
8730 +static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
8731 +{
8732 + if ((long)n < 0 || n > INT_MAX)
8733 + return n;
8734 +
8735 + if (!__builtin_constant_p(n))
8736 + check_object_size(to, n, false);
8737 +
8738 + if (likely(access_ok(VERIFY_READ, from, n)))
8739 + n = __copy_from_user(to, from, n);
8740 + else
8741 + memset(to, 0, n);
8742 + return n;
8743 +}
8744 +
8745 +static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
8746 +{
8747 + if ((long)n < 0 || n > INT_MAX)
8748 + return n;
8749 +
8750 + if (likely(access_ok(VERIFY_WRITE, to, n))) {
8751 + if (!__builtin_constant_p(n))
8752 + check_object_size(from, n, true);
8753 + n = __copy_to_user(to, from, n);
8754 + }
8755 + return n;
8756 +}
8757 +
8758 +extern unsigned long copy_in_user(void __user *to, const void __user *from,
8759 + unsigned long n);
8760 +
8761 +#endif /* __powerpc64__ */
8762 +
8763 extern unsigned long __clear_user(void __user *addr, unsigned long size);
8764
8765 static inline unsigned long clear_user(void __user *addr, unsigned long size)
8766 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
8767 index ba33693..d8db875 100644
8768 --- a/arch/powerpc/kernel/Makefile
8769 +++ b/arch/powerpc/kernel/Makefile
8770 @@ -14,6 +14,11 @@ CFLAGS_prom_init.o += -fPIC
8771 CFLAGS_btext.o += -fPIC
8772 endif
8773
8774 +CFLAGS_REMOVE_cputable.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8775 +CFLAGS_REMOVE_prom_init.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8776 +CFLAGS_REMOVE_btext.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8777 +CFLAGS_REMOVE_prom.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8778 +
8779 ifdef CONFIG_FUNCTION_TRACER
8780 # Do not trace early boot code
8781 CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
8782 @@ -26,6 +31,8 @@ CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
8783 CFLAGS_REMOVE_time.o = -pg -mno-sched-epilog
8784 endif
8785
8786 +CFLAGS_REMOVE_prom_init.o += $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8787 +
8788 obj-y := cputable.o ptrace.o syscalls.o \
8789 irq.o align.o signal_32.o pmc.o vdso.o \
8790 process.o systbl.o idle.o \
8791 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
8792 index f3bd5e7..50040455 100644
8793 --- a/arch/powerpc/kernel/exceptions-64e.S
8794 +++ b/arch/powerpc/kernel/exceptions-64e.S
8795 @@ -1010,6 +1010,7 @@ storage_fault_common:
8796 std r14,_DAR(r1)
8797 std r15,_DSISR(r1)
8798 addi r3,r1,STACK_FRAME_OVERHEAD
8799 + bl save_nvgprs
8800 mr r4,r14
8801 mr r5,r15
8802 ld r14,PACA_EXGEN+EX_R14(r13)
8803 @@ -1018,8 +1019,7 @@ storage_fault_common:
8804 cmpdi r3,0
8805 bne- 1f
8806 b ret_from_except_lite
8807 -1: bl save_nvgprs
8808 - mr r5,r3
8809 +1: mr r5,r3
8810 addi r3,r1,STACK_FRAME_OVERHEAD
8811 ld r4,_DAR(r1)
8812 bl bad_page_fault
8813 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
8814 index 0a0399c2..262a2e6 100644
8815 --- a/arch/powerpc/kernel/exceptions-64s.S
8816 +++ b/arch/powerpc/kernel/exceptions-64s.S
8817 @@ -1591,10 +1591,10 @@ handle_page_fault:
8818 11: ld r4,_DAR(r1)
8819 ld r5,_DSISR(r1)
8820 addi r3,r1,STACK_FRAME_OVERHEAD
8821 + bl save_nvgprs
8822 bl do_page_fault
8823 cmpdi r3,0
8824 beq+ 12f
8825 - bl save_nvgprs
8826 mr r5,r3
8827 addi r3,r1,STACK_FRAME_OVERHEAD
8828 lwz r4,_DAR(r1)
8829 diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
8830 index 290559d..0094ddb 100644
8831 --- a/arch/powerpc/kernel/irq.c
8832 +++ b/arch/powerpc/kernel/irq.c
8833 @@ -460,6 +460,8 @@ void migrate_irqs(void)
8834 }
8835 #endif
8836
8837 +extern void gr_handle_kernel_exploit(void);
8838 +
8839 static inline void check_stack_overflow(void)
8840 {
8841 #ifdef CONFIG_DEBUG_STACKOVERFLOW
8842 @@ -472,6 +474,7 @@ static inline void check_stack_overflow(void)
8843 pr_err("do_IRQ: stack overflow: %ld\n",
8844 sp - sizeof(struct thread_info));
8845 dump_stack();
8846 + gr_handle_kernel_exploit();
8847 }
8848 #endif
8849 }
8850 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
8851 index c94d2e0..992a9ce 100644
8852 --- a/arch/powerpc/kernel/module_32.c
8853 +++ b/arch/powerpc/kernel/module_32.c
8854 @@ -158,7 +158,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
8855 me->arch.core_plt_section = i;
8856 }
8857 if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
8858 - pr_err("Module doesn't contain .plt or .init.plt sections.\n");
8859 + pr_err("Module $s doesn't contain .plt or .init.plt sections.\n", me->name);
8860 return -ENOEXEC;
8861 }
8862
8863 @@ -188,11 +188,16 @@ static uint32_t do_plt_call(void *location,
8864
8865 pr_debug("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
8866 /* Init, or core PLT? */
8867 - if (location >= mod->module_core
8868 - && location < mod->module_core + mod->core_size)
8869 + if ((location >= mod->module_core_rx && location < mod->module_core_rx + mod->core_size_rx) ||
8870 + (location >= mod->module_core_rw && location < mod->module_core_rw + mod->core_size_rw))
8871 entry = (void *)sechdrs[mod->arch.core_plt_section].sh_addr;
8872 - else
8873 + else if ((location >= mod->module_init_rx && location < mod->module_init_rx + mod->init_size_rx) ||
8874 + (location >= mod->module_init_rw && location < mod->module_init_rw + mod->init_size_rw))
8875 entry = (void *)sechdrs[mod->arch.init_plt_section].sh_addr;
8876 + else {
8877 + printk(KERN_ERR "%s: invalid R_PPC_REL24 entry found\n", mod->name);
8878 + return ~0UL;
8879 + }
8880
8881 /* Find this entry, or if that fails, the next avail. entry */
8882 while (entry->jump[0]) {
8883 @@ -296,7 +301,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
8884 }
8885 #ifdef CONFIG_DYNAMIC_FTRACE
8886 module->arch.tramp =
8887 - do_plt_call(module->module_core,
8888 + do_plt_call(module->module_core_rx,
8889 (unsigned long)ftrace_caller,
8890 sechdrs, module);
8891 #endif
8892 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
8893 index 75b6676..41c72b5 100644
8894 --- a/arch/powerpc/kernel/process.c
8895 +++ b/arch/powerpc/kernel/process.c
8896 @@ -1033,8 +1033,8 @@ void show_regs(struct pt_regs * regs)
8897 * Lookup NIP late so we have the best change of getting the
8898 * above info out without failing
8899 */
8900 - printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip);
8901 - printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
8902 + printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
8903 + printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
8904 #endif
8905 show_stack(current, (unsigned long *) regs->gpr[1]);
8906 if (!user_mode(regs))
8907 @@ -1550,10 +1550,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
8908 newsp = stack[0];
8909 ip = stack[STACK_FRAME_LR_SAVE];
8910 if (!firstframe || ip != lr) {
8911 - printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
8912 + printk("["REG"] ["REG"] %pA", sp, ip, (void *)ip);
8913 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
8914 if ((ip == rth) && curr_frame >= 0) {
8915 - printk(" (%pS)",
8916 + printk(" (%pA)",
8917 (void *)current->ret_stack[curr_frame].ret);
8918 curr_frame--;
8919 }
8920 @@ -1573,7 +1573,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
8921 struct pt_regs *regs = (struct pt_regs *)
8922 (sp + STACK_FRAME_OVERHEAD);
8923 lr = regs->link;
8924 - printk("--- interrupt: %lx at %pS\n LR = %pS\n",
8925 + printk("--- interrupt: %lx at %pA\n LR = %pA\n",
8926 regs->trap, (void *)regs->nip, (void *)lr);
8927 firstframe = 1;
8928 }
8929 @@ -1609,49 +1609,3 @@ void notrace __ppc64_runlatch_off(void)
8930 mtspr(SPRN_CTRLT, ctrl);
8931 }
8932 #endif /* CONFIG_PPC64 */
8933 -
8934 -unsigned long arch_align_stack(unsigned long sp)
8935 -{
8936 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
8937 - sp -= get_random_int() & ~PAGE_MASK;
8938 - return sp & ~0xf;
8939 -}
8940 -
8941 -static inline unsigned long brk_rnd(void)
8942 -{
8943 - unsigned long rnd = 0;
8944 -
8945 - /* 8MB for 32bit, 1GB for 64bit */
8946 - if (is_32bit_task())
8947 - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT)));
8948 - else
8949 - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT)));
8950 -
8951 - return rnd << PAGE_SHIFT;
8952 -}
8953 -
8954 -unsigned long arch_randomize_brk(struct mm_struct *mm)
8955 -{
8956 - unsigned long base = mm->brk;
8957 - unsigned long ret;
8958 -
8959 -#ifdef CONFIG_PPC_STD_MMU_64
8960 - /*
8961 - * If we are using 1TB segments and we are allowed to randomise
8962 - * the heap, we can put it above 1TB so it is backed by a 1TB
8963 - * segment. Otherwise the heap will be in the bottom 1TB
8964 - * which always uses 256MB segments and this may result in a
8965 - * performance penalty.
8966 - */
8967 - if (!is_32bit_task() && (mmu_highuser_ssize == MMU_SEGSIZE_1T))
8968 - base = max_t(unsigned long, mm->brk, 1UL << SID_SHIFT_1T);
8969 -#endif
8970 -
8971 - ret = PAGE_ALIGN(base + brk_rnd());
8972 -
8973 - if (ret < mm->brk)
8974 - return mm->brk;
8975 -
8976 - return ret;
8977 -}
8978 -
8979 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
8980 index 737c0d0..59c7417 100644
8981 --- a/arch/powerpc/kernel/ptrace.c
8982 +++ b/arch/powerpc/kernel/ptrace.c
8983 @@ -1800,6 +1800,10 @@ static int do_seccomp(struct pt_regs *regs)
8984 static inline int do_seccomp(struct pt_regs *regs) { return 0; }
8985 #endif /* CONFIG_SECCOMP */
8986
8987 +#ifdef CONFIG_GRKERNSEC_SETXID
8988 +extern void gr_delayed_cred_worker(void);
8989 +#endif
8990 +
8991 /**
8992 * do_syscall_trace_enter() - Do syscall tracing on kernel entry.
8993 * @regs: the pt_regs of the task to trace (current)
8994 @@ -1828,6 +1832,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
8995 if (do_seccomp(regs))
8996 return -1;
8997
8998 +#ifdef CONFIG_GRKERNSEC_SETXID
8999 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9000 + gr_delayed_cred_worker();
9001 +#endif
9002 +
9003 if (test_thread_flag(TIF_SYSCALL_TRACE)) {
9004 /*
9005 * The tracer may decide to abort the syscall, if so tracehook
9006 @@ -1870,6 +1879,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
9007 {
9008 int step;
9009
9010 +#ifdef CONFIG_GRKERNSEC_SETXID
9011 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9012 + gr_delayed_cred_worker();
9013 +#endif
9014 +
9015 audit_syscall_exit(regs);
9016
9017 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
9018 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
9019 index 0dbee46..97b77b9 100644
9020 --- a/arch/powerpc/kernel/signal_32.c
9021 +++ b/arch/powerpc/kernel/signal_32.c
9022 @@ -1014,7 +1014,7 @@ int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
9023 /* Save user registers on the stack */
9024 frame = &rt_sf->uc.uc_mcontext;
9025 addr = frame;
9026 - if (vdso32_rt_sigtramp && current->mm->context.vdso_base) {
9027 + if (vdso32_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9028 sigret = 0;
9029 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
9030 } else {
9031 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
9032 index 20756df..300e2a4 100644
9033 --- a/arch/powerpc/kernel/signal_64.c
9034 +++ b/arch/powerpc/kernel/signal_64.c
9035 @@ -765,7 +765,7 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
9036 current->thread.fp_state.fpscr = 0;
9037
9038 /* Set up to return from userspace. */
9039 - if (vdso64_rt_sigtramp && current->mm->context.vdso_base) {
9040 + if (vdso64_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9041 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
9042 } else {
9043 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
9044 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
9045 index 37de90f..12472ac 100644
9046 --- a/arch/powerpc/kernel/traps.c
9047 +++ b/arch/powerpc/kernel/traps.c
9048 @@ -36,6 +36,7 @@
9049 #include <linux/debugfs.h>
9050 #include <linux/ratelimit.h>
9051 #include <linux/context_tracking.h>
9052 +#include <linux/uaccess.h>
9053
9054 #include <asm/emulated_ops.h>
9055 #include <asm/pgtable.h>
9056 @@ -142,6 +143,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
9057 return flags;
9058 }
9059
9060 +extern void gr_handle_kernel_exploit(void);
9061 +
9062 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9063 int signr)
9064 {
9065 @@ -191,6 +194,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9066 panic("Fatal exception in interrupt");
9067 if (panic_on_oops)
9068 panic("Fatal exception");
9069 +
9070 + gr_handle_kernel_exploit();
9071 +
9072 do_exit(signr);
9073 }
9074
9075 @@ -1139,6 +1145,26 @@ void __kprobes program_check_exception(struct pt_regs *regs)
9076 enum ctx_state prev_state = exception_enter();
9077 unsigned int reason = get_reason(regs);
9078
9079 +#ifdef CONFIG_PAX_REFCOUNT
9080 + unsigned int bkpt;
9081 + const struct exception_table_entry *entry;
9082 +
9083 + if (reason & REASON_ILLEGAL) {
9084 + /* Check if PaX bad instruction */
9085 + if (!probe_kernel_address(regs->nip, bkpt) && bkpt == 0xc00b00) {
9086 + current->thread.trap_nr = 0;
9087 + pax_report_refcount_overflow(regs);
9088 + /* fixup_exception() for PowerPC does not exist, simulate its job */
9089 + if ((entry = search_exception_tables(regs->nip)) != NULL) {
9090 + regs->nip = entry->fixup;
9091 + return;
9092 + }
9093 + /* fixup_exception() could not handle */
9094 + goto bail;
9095 + }
9096 + }
9097 +#endif
9098 +
9099 /* We can now get here via a FP Unavailable exception if the core
9100 * has no FPU, in that case the reason flags will be 0 */
9101
9102 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
9103 index b457bfa..9018cde 100644
9104 --- a/arch/powerpc/kernel/vdso.c
9105 +++ b/arch/powerpc/kernel/vdso.c
9106 @@ -34,6 +34,7 @@
9107 #include <asm/vdso.h>
9108 #include <asm/vdso_datapage.h>
9109 #include <asm/setup.h>
9110 +#include <asm/mman.h>
9111
9112 #undef DEBUG
9113
9114 @@ -179,7 +180,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9115 vdso_base = VDSO32_MBASE;
9116 #endif
9117
9118 - current->mm->context.vdso_base = 0;
9119 + current->mm->context.vdso_base = ~0UL;
9120
9121 /* vDSO has a problem and was disabled, just don't "enable" it for the
9122 * process
9123 @@ -199,7 +200,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9124 vdso_base = get_unmapped_area(NULL, vdso_base,
9125 (vdso_pages << PAGE_SHIFT) +
9126 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
9127 - 0, 0);
9128 + 0, MAP_PRIVATE | MAP_EXECUTABLE);
9129 if (IS_ERR_VALUE(vdso_base)) {
9130 rc = vdso_base;
9131 goto fail_mmapsem;
9132 diff --git a/arch/powerpc/lib/usercopy_64.c b/arch/powerpc/lib/usercopy_64.c
9133 index 5eea6f3..5d10396 100644
9134 --- a/arch/powerpc/lib/usercopy_64.c
9135 +++ b/arch/powerpc/lib/usercopy_64.c
9136 @@ -9,22 +9,6 @@
9137 #include <linux/module.h>
9138 #include <asm/uaccess.h>
9139
9140 -unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
9141 -{
9142 - if (likely(access_ok(VERIFY_READ, from, n)))
9143 - n = __copy_from_user(to, from, n);
9144 - else
9145 - memset(to, 0, n);
9146 - return n;
9147 -}
9148 -
9149 -unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
9150 -{
9151 - if (likely(access_ok(VERIFY_WRITE, to, n)))
9152 - n = __copy_to_user(to, from, n);
9153 - return n;
9154 -}
9155 -
9156 unsigned long copy_in_user(void __user *to, const void __user *from,
9157 unsigned long n)
9158 {
9159 @@ -35,7 +19,5 @@ unsigned long copy_in_user(void __user *to, const void __user *from,
9160 return n;
9161 }
9162
9163 -EXPORT_SYMBOL(copy_from_user);
9164 -EXPORT_SYMBOL(copy_to_user);
9165 EXPORT_SYMBOL(copy_in_user);
9166
9167 diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
9168 index a67c6d7..a662e6d 100644
9169 --- a/arch/powerpc/mm/fault.c
9170 +++ b/arch/powerpc/mm/fault.c
9171 @@ -34,6 +34,10 @@
9172 #include <linux/context_tracking.h>
9173 #include <linux/hugetlb.h>
9174 #include <linux/uaccess.h>
9175 +#include <linux/slab.h>
9176 +#include <linux/pagemap.h>
9177 +#include <linux/compiler.h>
9178 +#include <linux/unistd.h>
9179
9180 #include <asm/firmware.h>
9181 #include <asm/page.h>
9182 @@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
9183 }
9184 #endif
9185
9186 +#ifdef CONFIG_PAX_PAGEEXEC
9187 +/*
9188 + * PaX: decide what to do with offenders (regs->nip = fault address)
9189 + *
9190 + * returns 1 when task should be killed
9191 + */
9192 +static int pax_handle_fetch_fault(struct pt_regs *regs)
9193 +{
9194 + return 1;
9195 +}
9196 +
9197 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
9198 +{
9199 + unsigned long i;
9200 +
9201 + printk(KERN_ERR "PAX: bytes at PC: ");
9202 + for (i = 0; i < 5; i++) {
9203 + unsigned int c;
9204 + if (get_user(c, (unsigned int __user *)pc+i))
9205 + printk(KERN_CONT "???????? ");
9206 + else
9207 + printk(KERN_CONT "%08x ", c);
9208 + }
9209 + printk("\n");
9210 +}
9211 +#endif
9212 +
9213 /*
9214 * Check whether the instruction at regs->nip is a store using
9215 * an update addressing form which will update r1.
9216 @@ -227,7 +258,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
9217 * indicate errors in DSISR but can validly be set in SRR1.
9218 */
9219 if (trap == 0x400)
9220 - error_code &= 0x48200000;
9221 + error_code &= 0x58200000;
9222 else
9223 is_write = error_code & DSISR_ISSTORE;
9224 #else
9225 @@ -384,12 +415,16 @@ good_area:
9226 * "undefined". Of those that can be set, this is the only
9227 * one which seems bad.
9228 */
9229 - if (error_code & 0x10000000)
9230 + if (error_code & DSISR_GUARDED)
9231 /* Guarded storage error. */
9232 goto bad_area;
9233 #endif /* CONFIG_8xx */
9234
9235 if (is_exec) {
9236 +#ifdef CONFIG_PPC_STD_MMU
9237 + if (error_code & DSISR_GUARDED)
9238 + goto bad_area;
9239 +#endif
9240 /*
9241 * Allow execution from readable areas if the MMU does not
9242 * provide separate controls over reading and executing.
9243 @@ -484,6 +519,23 @@ bad_area:
9244 bad_area_nosemaphore:
9245 /* User mode accesses cause a SIGSEGV */
9246 if (user_mode(regs)) {
9247 +
9248 +#ifdef CONFIG_PAX_PAGEEXEC
9249 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
9250 +#ifdef CONFIG_PPC_STD_MMU
9251 + if (is_exec && (error_code & (DSISR_PROTFAULT | DSISR_GUARDED))) {
9252 +#else
9253 + if (is_exec && regs->nip == address) {
9254 +#endif
9255 + switch (pax_handle_fetch_fault(regs)) {
9256 + }
9257 +
9258 + pax_report_fault(regs, (void *)regs->nip, (void *)regs->gpr[PT_R1]);
9259 + do_group_exit(SIGKILL);
9260 + }
9261 + }
9262 +#endif
9263 +
9264 _exception(SIGSEGV, regs, code, address);
9265 goto bail;
9266 }
9267 diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
9268 index 0f0502e..bc3e7a3 100644
9269 --- a/arch/powerpc/mm/mmap.c
9270 +++ b/arch/powerpc/mm/mmap.c
9271 @@ -86,6 +86,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9272 {
9273 unsigned long random_factor = 0UL;
9274
9275 +#ifdef CONFIG_PAX_RANDMMAP
9276 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9277 +#endif
9278 +
9279 if (current->flags & PF_RANDOMIZE)
9280 random_factor = arch_mmap_rnd();
9281
9282 @@ -95,9 +99,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9283 */
9284 if (mmap_is_legacy()) {
9285 mm->mmap_base = TASK_UNMAPPED_BASE;
9286 +
9287 +#ifdef CONFIG_PAX_RANDMMAP
9288 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9289 + mm->mmap_base += mm->delta_mmap;
9290 +#endif
9291 +
9292 mm->get_unmapped_area = arch_get_unmapped_area;
9293 } else {
9294 mm->mmap_base = mmap_base(random_factor);
9295 +
9296 +#ifdef CONFIG_PAX_RANDMMAP
9297 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9298 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9299 +#endif
9300 +
9301 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
9302 }
9303 }
9304 diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
9305 index 0f432a7..abfe841 100644
9306 --- a/arch/powerpc/mm/slice.c
9307 +++ b/arch/powerpc/mm/slice.c
9308 @@ -105,7 +105,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
9309 if ((mm->task_size - len) < addr)
9310 return 0;
9311 vma = find_vma(mm, addr);
9312 - return (!vma || (addr + len) <= vma->vm_start);
9313 + return check_heap_stack_gap(vma, addr, len, 0);
9314 }
9315
9316 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
9317 @@ -277,6 +277,12 @@ static unsigned long slice_find_area_bottomup(struct mm_struct *mm,
9318 info.align_offset = 0;
9319
9320 addr = TASK_UNMAPPED_BASE;
9321 +
9322 +#ifdef CONFIG_PAX_RANDMMAP
9323 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9324 + addr += mm->delta_mmap;
9325 +#endif
9326 +
9327 while (addr < TASK_SIZE) {
9328 info.low_limit = addr;
9329 if (!slice_scan_available(addr, available, 1, &addr))
9330 @@ -410,6 +416,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
9331 if (fixed && addr > (mm->task_size - len))
9332 return -ENOMEM;
9333
9334 +#ifdef CONFIG_PAX_RANDMMAP
9335 + if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
9336 + addr = 0;
9337 +#endif
9338 +
9339 /* If hint, make sure it matches our alignment restrictions */
9340 if (!fixed && addr) {
9341 addr = _ALIGN_UP(addr, 1ul << pshift);
9342 diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
9343 index 5038fd5..87a2033 100644
9344 --- a/arch/powerpc/platforms/cell/spufs/file.c
9345 +++ b/arch/powerpc/platforms/cell/spufs/file.c
9346 @@ -263,9 +263,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
9347 return VM_FAULT_NOPAGE;
9348 }
9349
9350 -static int spufs_mem_mmap_access(struct vm_area_struct *vma,
9351 +static ssize_t spufs_mem_mmap_access(struct vm_area_struct *vma,
9352 unsigned long address,
9353 - void *buf, int len, int write)
9354 + void *buf, size_t len, int write)
9355 {
9356 struct spu_context *ctx = vma->vm_file->private_data;
9357 unsigned long offset = address - vma->vm_start;
9358 diff --git a/arch/s390/Kconfig.debug b/arch/s390/Kconfig.debug
9359 index c56878e..073d04e 100644
9360 --- a/arch/s390/Kconfig.debug
9361 +++ b/arch/s390/Kconfig.debug
9362 @@ -21,6 +21,7 @@ config S390_PTDUMP
9363 bool "Export kernel pagetable layout to userspace via debugfs"
9364 depends on DEBUG_KERNEL
9365 select DEBUG_FS
9366 + depends on !GRKERNSEC_KMEM
9367 ---help---
9368 Say Y here if you want to show the kernel pagetable layout in a
9369 debugfs file. This information is only useful for kernel developers
9370 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
9371 index 117fa5c..e2f6e51 100644
9372 --- a/arch/s390/include/asm/atomic.h
9373 +++ b/arch/s390/include/asm/atomic.h
9374 @@ -324,4 +324,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
9375 #define atomic64_dec_and_test(_v) (atomic64_sub_return(1, _v) == 0)
9376 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9377
9378 +#define atomic64_read_unchecked(v) atomic64_read(v)
9379 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
9380 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
9381 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
9382 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
9383 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
9384 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
9385 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
9386 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
9387 +
9388 #endif /* __ARCH_S390_ATOMIC__ */
9389 diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h
9390 index 4d7ccac..d03d0ad 100644
9391 --- a/arch/s390/include/asm/cache.h
9392 +++ b/arch/s390/include/asm/cache.h
9393 @@ -9,8 +9,10 @@
9394 #ifndef __ARCH_S390_CACHE_H
9395 #define __ARCH_S390_CACHE_H
9396
9397 -#define L1_CACHE_BYTES 256
9398 +#include <linux/const.h>
9399 +
9400 #define L1_CACHE_SHIFT 8
9401 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9402 #define NET_SKB_PAD 32
9403
9404 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9405 diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
9406 index 3ad48f2..64cc6f3 100644
9407 --- a/arch/s390/include/asm/elf.h
9408 +++ b/arch/s390/include/asm/elf.h
9409 @@ -163,6 +163,13 @@ extern unsigned int vdso_enabled;
9410 (STACK_TOP / 3 * 2) : \
9411 (STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
9412
9413 +#ifdef CONFIG_PAX_ASLR
9414 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
9415 +
9416 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9417 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9418 +#endif
9419 +
9420 /* This yields a mask that user programs can use to figure out what
9421 instruction set this CPU supports. */
9422
9423 diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
9424 index c4a93d6..4d2a9b4 100644
9425 --- a/arch/s390/include/asm/exec.h
9426 +++ b/arch/s390/include/asm/exec.h
9427 @@ -7,6 +7,6 @@
9428 #ifndef __ASM_EXEC_H
9429 #define __ASM_EXEC_H
9430
9431 -extern unsigned long arch_align_stack(unsigned long sp);
9432 +#define arch_align_stack(x) ((x) & ~0xfUL)
9433
9434 #endif /* __ASM_EXEC_H */
9435 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
9436 index 9dd4cc4..36f4b84 100644
9437 --- a/arch/s390/include/asm/uaccess.h
9438 +++ b/arch/s390/include/asm/uaccess.h
9439 @@ -59,6 +59,7 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
9440 __range_ok((unsigned long)(addr), (size)); \
9441 })
9442
9443 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
9444 #define access_ok(type, addr, size) __access_ok(addr, size)
9445
9446 /*
9447 @@ -278,6 +279,10 @@ static inline unsigned long __must_check
9448 copy_to_user(void __user *to, const void *from, unsigned long n)
9449 {
9450 might_fault();
9451 +
9452 + if ((long)n < 0)
9453 + return n;
9454 +
9455 return __copy_to_user(to, from, n);
9456 }
9457
9458 @@ -307,10 +312,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
9459 static inline unsigned long __must_check
9460 copy_from_user(void *to, const void __user *from, unsigned long n)
9461 {
9462 - unsigned int sz = __compiletime_object_size(to);
9463 + size_t sz = __compiletime_object_size(to);
9464
9465 might_fault();
9466 - if (unlikely(sz != -1 && sz < n)) {
9467 +
9468 + if ((long)n < 0)
9469 + return n;
9470 +
9471 + if (unlikely(sz != (size_t)-1 && sz < n)) {
9472 copy_from_user_overflow();
9473 return n;
9474 }
9475 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
9476 index 0c1a679..e1df357 100644
9477 --- a/arch/s390/kernel/module.c
9478 +++ b/arch/s390/kernel/module.c
9479 @@ -159,11 +159,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
9480
9481 /* Increase core size by size of got & plt and set start
9482 offsets for got and plt. */
9483 - me->core_size = ALIGN(me->core_size, 4);
9484 - me->arch.got_offset = me->core_size;
9485 - me->core_size += me->arch.got_size;
9486 - me->arch.plt_offset = me->core_size;
9487 - me->core_size += me->arch.plt_size;
9488 + me->core_size_rw = ALIGN(me->core_size_rw, 4);
9489 + me->arch.got_offset = me->core_size_rw;
9490 + me->core_size_rw += me->arch.got_size;
9491 + me->arch.plt_offset = me->core_size_rx;
9492 + me->core_size_rx += me->arch.plt_size;
9493 return 0;
9494 }
9495
9496 @@ -279,7 +279,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9497 if (info->got_initialized == 0) {
9498 Elf_Addr *gotent;
9499
9500 - gotent = me->module_core + me->arch.got_offset +
9501 + gotent = me->module_core_rw + me->arch.got_offset +
9502 info->got_offset;
9503 *gotent = val;
9504 info->got_initialized = 1;
9505 @@ -302,7 +302,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9506 rc = apply_rela_bits(loc, val, 0, 64, 0);
9507 else if (r_type == R_390_GOTENT ||
9508 r_type == R_390_GOTPLTENT) {
9509 - val += (Elf_Addr) me->module_core - loc;
9510 + val += (Elf_Addr) me->module_core_rw - loc;
9511 rc = apply_rela_bits(loc, val, 1, 32, 1);
9512 }
9513 break;
9514 @@ -315,7 +315,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9515 case R_390_PLTOFF64: /* 16 bit offset from GOT to PLT. */
9516 if (info->plt_initialized == 0) {
9517 unsigned int *ip;
9518 - ip = me->module_core + me->arch.plt_offset +
9519 + ip = me->module_core_rx + me->arch.plt_offset +
9520 info->plt_offset;
9521 ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */
9522 ip[1] = 0x100a0004;
9523 @@ -334,7 +334,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9524 val - loc + 0xffffUL < 0x1ffffeUL) ||
9525 (r_type == R_390_PLT32DBL &&
9526 val - loc + 0xffffffffULL < 0x1fffffffeULL)))
9527 - val = (Elf_Addr) me->module_core +
9528 + val = (Elf_Addr) me->module_core_rx +
9529 me->arch.plt_offset +
9530 info->plt_offset;
9531 val += rela->r_addend - loc;
9532 @@ -356,7 +356,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9533 case R_390_GOTOFF32: /* 32 bit offset to GOT. */
9534 case R_390_GOTOFF64: /* 64 bit offset to GOT. */
9535 val = val + rela->r_addend -
9536 - ((Elf_Addr) me->module_core + me->arch.got_offset);
9537 + ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
9538 if (r_type == R_390_GOTOFF16)
9539 rc = apply_rela_bits(loc, val, 0, 16, 0);
9540 else if (r_type == R_390_GOTOFF32)
9541 @@ -366,7 +366,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9542 break;
9543 case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */
9544 case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */
9545 - val = (Elf_Addr) me->module_core + me->arch.got_offset +
9546 + val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
9547 rela->r_addend - loc;
9548 if (r_type == R_390_GOTPC)
9549 rc = apply_rela_bits(loc, val, 1, 32, 0);
9550 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
9551 index f2dac9f..936c8c2 100644
9552 --- a/arch/s390/kernel/process.c
9553 +++ b/arch/s390/kernel/process.c
9554 @@ -232,27 +232,3 @@ unsigned long get_wchan(struct task_struct *p)
9555 }
9556 return 0;
9557 }
9558 -
9559 -unsigned long arch_align_stack(unsigned long sp)
9560 -{
9561 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9562 - sp -= get_random_int() & ~PAGE_MASK;
9563 - return sp & ~0xf;
9564 -}
9565 -
9566 -static inline unsigned long brk_rnd(void)
9567 -{
9568 - /* 8MB for 32bit, 1GB for 64bit */
9569 - if (is_32bit_task())
9570 - return (get_random_int() & 0x7ffUL) << PAGE_SHIFT;
9571 - else
9572 - return (get_random_int() & 0x3ffffUL) << PAGE_SHIFT;
9573 -}
9574 -
9575 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9576 -{
9577 - unsigned long ret;
9578 -
9579 - ret = PAGE_ALIGN(mm->brk + brk_rnd());
9580 - return (ret > mm->brk) ? ret : mm->brk;
9581 -}
9582 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
9583 index 6e552af..3e608a1 100644
9584 --- a/arch/s390/mm/mmap.c
9585 +++ b/arch/s390/mm/mmap.c
9586 @@ -239,6 +239,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9587 {
9588 unsigned long random_factor = 0UL;
9589
9590 +#ifdef CONFIG_PAX_RANDMMAP
9591 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9592 +#endif
9593 +
9594 if (current->flags & PF_RANDOMIZE)
9595 random_factor = arch_mmap_rnd();
9596
9597 @@ -248,9 +252,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9598 */
9599 if (mmap_is_legacy()) {
9600 mm->mmap_base = mmap_base_legacy(random_factor);
9601 +
9602 +#ifdef CONFIG_PAX_RANDMMAP
9603 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9604 + mm->mmap_base += mm->delta_mmap;
9605 +#endif
9606 +
9607 mm->get_unmapped_area = s390_get_unmapped_area;
9608 } else {
9609 mm->mmap_base = mmap_base(random_factor);
9610 +
9611 +#ifdef CONFIG_PAX_RANDMMAP
9612 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9613 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9614 +#endif
9615 +
9616 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
9617 }
9618 }
9619 diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
9620 index ae3d59f..f65f075 100644
9621 --- a/arch/score/include/asm/cache.h
9622 +++ b/arch/score/include/asm/cache.h
9623 @@ -1,7 +1,9 @@
9624 #ifndef _ASM_SCORE_CACHE_H
9625 #define _ASM_SCORE_CACHE_H
9626
9627 +#include <linux/const.h>
9628 +
9629 #define L1_CACHE_SHIFT 4
9630 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9631 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9632
9633 #endif /* _ASM_SCORE_CACHE_H */
9634 diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h
9635 index f9f3cd5..58ff438 100644
9636 --- a/arch/score/include/asm/exec.h
9637 +++ b/arch/score/include/asm/exec.h
9638 @@ -1,6 +1,6 @@
9639 #ifndef _ASM_SCORE_EXEC_H
9640 #define _ASM_SCORE_EXEC_H
9641
9642 -extern unsigned long arch_align_stack(unsigned long sp);
9643 +#define arch_align_stack(x) (x)
9644
9645 #endif /* _ASM_SCORE_EXEC_H */
9646 diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
9647 index a1519ad3..e8ac1ff 100644
9648 --- a/arch/score/kernel/process.c
9649 +++ b/arch/score/kernel/process.c
9650 @@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
9651
9652 return task_pt_regs(task)->cp0_epc;
9653 }
9654 -
9655 -unsigned long arch_align_stack(unsigned long sp)
9656 -{
9657 - return sp;
9658 -}
9659 diff --git a/arch/sh/include/asm/cache.h b/arch/sh/include/asm/cache.h
9660 index ef9e555..331bd29 100644
9661 --- a/arch/sh/include/asm/cache.h
9662 +++ b/arch/sh/include/asm/cache.h
9663 @@ -9,10 +9,11 @@
9664 #define __ASM_SH_CACHE_H
9665 #ifdef __KERNEL__
9666
9667 +#include <linux/const.h>
9668 #include <linux/init.h>
9669 #include <cpu/cache.h>
9670
9671 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9672 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9673
9674 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9675
9676 diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
9677 index 6777177..cb5e44f 100644
9678 --- a/arch/sh/mm/mmap.c
9679 +++ b/arch/sh/mm/mmap.c
9680 @@ -36,6 +36,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9681 struct mm_struct *mm = current->mm;
9682 struct vm_area_struct *vma;
9683 int do_colour_align;
9684 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9685 struct vm_unmapped_area_info info;
9686
9687 if (flags & MAP_FIXED) {
9688 @@ -55,6 +56,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9689 if (filp || (flags & MAP_SHARED))
9690 do_colour_align = 1;
9691
9692 +#ifdef CONFIG_PAX_RANDMMAP
9693 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9694 +#endif
9695 +
9696 if (addr) {
9697 if (do_colour_align)
9698 addr = COLOUR_ALIGN(addr, pgoff);
9699 @@ -62,14 +67,13 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9700 addr = PAGE_ALIGN(addr);
9701
9702 vma = find_vma(mm, addr);
9703 - if (TASK_SIZE - len >= addr &&
9704 - (!vma || addr + len <= vma->vm_start))
9705 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9706 return addr;
9707 }
9708
9709 info.flags = 0;
9710 info.length = len;
9711 - info.low_limit = TASK_UNMAPPED_BASE;
9712 + info.low_limit = mm->mmap_base;
9713 info.high_limit = TASK_SIZE;
9714 info.align_mask = do_colour_align ? (PAGE_MASK & shm_align_mask) : 0;
9715 info.align_offset = pgoff << PAGE_SHIFT;
9716 @@ -85,6 +89,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9717 struct mm_struct *mm = current->mm;
9718 unsigned long addr = addr0;
9719 int do_colour_align;
9720 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9721 struct vm_unmapped_area_info info;
9722
9723 if (flags & MAP_FIXED) {
9724 @@ -104,6 +109,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9725 if (filp || (flags & MAP_SHARED))
9726 do_colour_align = 1;
9727
9728 +#ifdef CONFIG_PAX_RANDMMAP
9729 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9730 +#endif
9731 +
9732 /* requesting a specific address */
9733 if (addr) {
9734 if (do_colour_align)
9735 @@ -112,8 +121,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9736 addr = PAGE_ALIGN(addr);
9737
9738 vma = find_vma(mm, addr);
9739 - if (TASK_SIZE - len >= addr &&
9740 - (!vma || addr + len <= vma->vm_start))
9741 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9742 return addr;
9743 }
9744
9745 @@ -135,6 +143,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9746 VM_BUG_ON(addr != -ENOMEM);
9747 info.flags = 0;
9748 info.low_limit = TASK_UNMAPPED_BASE;
9749 +
9750 +#ifdef CONFIG_PAX_RANDMMAP
9751 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9752 + info.low_limit += mm->delta_mmap;
9753 +#endif
9754 +
9755 info.high_limit = TASK_SIZE;
9756 addr = vm_unmapped_area(&info);
9757 }
9758 diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
9759 index 917084a..4ff965d 100644
9760 --- a/arch/sparc/include/asm/atomic_64.h
9761 +++ b/arch/sparc/include/asm/atomic_64.h
9762 @@ -15,18 +15,38 @@
9763 #define ATOMIC64_INIT(i) { (i) }
9764
9765 #define atomic_read(v) ACCESS_ONCE((v)->counter)
9766 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
9767 +{
9768 + return ACCESS_ONCE(v->counter);
9769 +}
9770 #define atomic64_read(v) ACCESS_ONCE((v)->counter)
9771 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
9772 +{
9773 + return ACCESS_ONCE(v->counter);
9774 +}
9775
9776 #define atomic_set(v, i) (((v)->counter) = i)
9777 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
9778 +{
9779 + v->counter = i;
9780 +}
9781 #define atomic64_set(v, i) (((v)->counter) = i)
9782 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
9783 +{
9784 + v->counter = i;
9785 +}
9786
9787 -#define ATOMIC_OP(op) \
9788 -void atomic_##op(int, atomic_t *); \
9789 -void atomic64_##op(long, atomic64_t *);
9790 +#define __ATOMIC_OP(op, suffix) \
9791 +void atomic_##op##suffix(int, atomic##suffix##_t *); \
9792 +void atomic64_##op##suffix(long, atomic64##suffix##_t *);
9793
9794 -#define ATOMIC_OP_RETURN(op) \
9795 -int atomic_##op##_return(int, atomic_t *); \
9796 -long atomic64_##op##_return(long, atomic64_t *);
9797 +#define ATOMIC_OP(op) __ATOMIC_OP(op, ) __ATOMIC_OP(op, _unchecked)
9798 +
9799 +#define __ATOMIC_OP_RETURN(op, suffix) \
9800 +int atomic_##op##_return##suffix(int, atomic##suffix##_t *); \
9801 +long atomic64_##op##_return##suffix(long, atomic64##suffix##_t *);
9802 +
9803 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, ) __ATOMIC_OP_RETURN(op, _unchecked)
9804
9805 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
9806
9807 @@ -39,13 +59,23 @@ ATOMIC_OP(xor)
9808
9809 #undef ATOMIC_OPS
9810 #undef ATOMIC_OP_RETURN
9811 +#undef __ATOMIC_OP_RETURN
9812 #undef ATOMIC_OP
9813 +#undef __ATOMIC_OP
9814
9815 #define atomic_dec_return(v) atomic_sub_return(1, v)
9816 #define atomic64_dec_return(v) atomic64_sub_return(1, v)
9817
9818 #define atomic_inc_return(v) atomic_add_return(1, v)
9819 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
9820 +{
9821 + return atomic_add_return_unchecked(1, v);
9822 +}
9823 #define atomic64_inc_return(v) atomic64_add_return(1, v)
9824 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
9825 +{
9826 + return atomic64_add_return_unchecked(1, v);
9827 +}
9828
9829 /*
9830 * atomic_inc_and_test - increment and test
9831 @@ -56,6 +86,10 @@ ATOMIC_OP(xor)
9832 * other cases.
9833 */
9834 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
9835 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
9836 +{
9837 + return atomic_inc_return_unchecked(v) == 0;
9838 +}
9839 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
9840
9841 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
9842 @@ -65,25 +99,60 @@ ATOMIC_OP(xor)
9843 #define atomic64_dec_and_test(v) (atomic64_sub_return(1, v) == 0)
9844
9845 #define atomic_inc(v) atomic_add(1, v)
9846 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
9847 +{
9848 + atomic_add_unchecked(1, v);
9849 +}
9850 #define atomic64_inc(v) atomic64_add(1, v)
9851 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
9852 +{
9853 + atomic64_add_unchecked(1, v);
9854 +}
9855
9856 #define atomic_dec(v) atomic_sub(1, v)
9857 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
9858 +{
9859 + atomic_sub_unchecked(1, v);
9860 +}
9861 #define atomic64_dec(v) atomic64_sub(1, v)
9862 +static inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
9863 +{
9864 + atomic64_sub_unchecked(1, v);
9865 +}
9866
9867 #define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0)
9868 #define atomic64_add_negative(i, v) (atomic64_add_return(i, v) < 0)
9869
9870 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
9871 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
9872 +{
9873 + return cmpxchg(&v->counter, old, new);
9874 +}
9875 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
9876 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
9877 +{
9878 + return xchg(&v->counter, new);
9879 +}
9880
9881 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
9882 {
9883 - int c, old;
9884 + int c, old, new;
9885 c = atomic_read(v);
9886 for (;;) {
9887 - if (unlikely(c == (u)))
9888 + if (unlikely(c == u))
9889 break;
9890 - old = atomic_cmpxchg((v), c, c + (a));
9891 +
9892 + asm volatile("addcc %2, %0, %0\n"
9893 +
9894 +#ifdef CONFIG_PAX_REFCOUNT
9895 + "tvs %%icc, 6\n"
9896 +#endif
9897 +
9898 + : "=r" (new)
9899 + : "0" (c), "ir" (a)
9900 + : "cc");
9901 +
9902 + old = atomic_cmpxchg(v, c, new);
9903 if (likely(old == c))
9904 break;
9905 c = old;
9906 @@ -94,20 +163,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
9907 #define atomic64_cmpxchg(v, o, n) \
9908 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
9909 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
9910 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
9911 +{
9912 + return xchg(&v->counter, new);
9913 +}
9914
9915 static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
9916 {
9917 - long c, old;
9918 + long c, old, new;
9919 c = atomic64_read(v);
9920 for (;;) {
9921 - if (unlikely(c == (u)))
9922 + if (unlikely(c == u))
9923 break;
9924 - old = atomic64_cmpxchg((v), c, c + (a));
9925 +
9926 + asm volatile("addcc %2, %0, %0\n"
9927 +
9928 +#ifdef CONFIG_PAX_REFCOUNT
9929 + "tvs %%xcc, 6\n"
9930 +#endif
9931 +
9932 + : "=r" (new)
9933 + : "0" (c), "ir" (a)
9934 + : "cc");
9935 +
9936 + old = atomic64_cmpxchg(v, c, new);
9937 if (likely(old == c))
9938 break;
9939 c = old;
9940 }
9941 - return c != (u);
9942 + return c != u;
9943 }
9944
9945 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9946 diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h
9947 index 5bb6991..5c2132e 100644
9948 --- a/arch/sparc/include/asm/cache.h
9949 +++ b/arch/sparc/include/asm/cache.h
9950 @@ -7,10 +7,12 @@
9951 #ifndef _SPARC_CACHE_H
9952 #define _SPARC_CACHE_H
9953
9954 +#include <linux/const.h>
9955 +
9956 #define ARCH_SLAB_MINALIGN __alignof__(unsigned long long)
9957
9958 #define L1_CACHE_SHIFT 5
9959 -#define L1_CACHE_BYTES 32
9960 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9961
9962 #ifdef CONFIG_SPARC32
9963 #define SMP_CACHE_BYTES_SHIFT 5
9964 diff --git a/arch/sparc/include/asm/elf_32.h b/arch/sparc/include/asm/elf_32.h
9965 index a24e41f..47677ff 100644
9966 --- a/arch/sparc/include/asm/elf_32.h
9967 +++ b/arch/sparc/include/asm/elf_32.h
9968 @@ -114,6 +114,13 @@ typedef struct {
9969
9970 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
9971
9972 +#ifdef CONFIG_PAX_ASLR
9973 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
9974 +
9975 +#define PAX_DELTA_MMAP_LEN 16
9976 +#define PAX_DELTA_STACK_LEN 16
9977 +#endif
9978 +
9979 /* This yields a mask that user programs can use to figure out what
9980 instruction set this cpu supports. This can NOT be done in userspace
9981 on Sparc. */
9982 diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h
9983 index 370ca1e..d4f4a98 100644
9984 --- a/arch/sparc/include/asm/elf_64.h
9985 +++ b/arch/sparc/include/asm/elf_64.h
9986 @@ -189,6 +189,13 @@ typedef struct {
9987 #define ELF_ET_DYN_BASE 0x0000010000000000UL
9988 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
9989
9990 +#ifdef CONFIG_PAX_ASLR
9991 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_32BIT) ? 0x10000UL : 0x100000UL)
9992 +
9993 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_32BIT) ? 14 : 28)
9994 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_32BIT) ? 15 : 29)
9995 +#endif
9996 +
9997 extern unsigned long sparc64_elf_hwcap;
9998 #define ELF_HWCAP sparc64_elf_hwcap
9999
10000 diff --git a/arch/sparc/include/asm/pgalloc_32.h b/arch/sparc/include/asm/pgalloc_32.h
10001 index a3890da..f6a408e 100644
10002 --- a/arch/sparc/include/asm/pgalloc_32.h
10003 +++ b/arch/sparc/include/asm/pgalloc_32.h
10004 @@ -35,6 +35,7 @@ static inline void pgd_set(pgd_t * pgdp, pmd_t * pmdp)
10005 }
10006
10007 #define pgd_populate(MM, PGD, PMD) pgd_set(PGD, PMD)
10008 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10009
10010 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm,
10011 unsigned long address)
10012 diff --git a/arch/sparc/include/asm/pgalloc_64.h b/arch/sparc/include/asm/pgalloc_64.h
10013 index 5e31871..13469c6 100644
10014 --- a/arch/sparc/include/asm/pgalloc_64.h
10015 +++ b/arch/sparc/include/asm/pgalloc_64.h
10016 @@ -21,6 +21,7 @@ static inline void __pgd_populate(pgd_t *pgd, pud_t *pud)
10017 }
10018
10019 #define pgd_populate(MM, PGD, PUD) __pgd_populate(PGD, PUD)
10020 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10021
10022 static inline pgd_t *pgd_alloc(struct mm_struct *mm)
10023 {
10024 @@ -38,6 +39,7 @@ static inline void __pud_populate(pud_t *pud, pmd_t *pmd)
10025 }
10026
10027 #define pud_populate(MM, PUD, PMD) __pud_populate(PUD, PMD)
10028 +#define pud_populate_kernel(MM, PUD, PMD) pud_populate((MM), (PUD), (PMD))
10029
10030 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
10031 {
10032 diff --git a/arch/sparc/include/asm/pgtable.h b/arch/sparc/include/asm/pgtable.h
10033 index 59ba6f6..4518128 100644
10034 --- a/arch/sparc/include/asm/pgtable.h
10035 +++ b/arch/sparc/include/asm/pgtable.h
10036 @@ -5,4 +5,8 @@
10037 #else
10038 #include <asm/pgtable_32.h>
10039 #endif
10040 +
10041 +#define ktla_ktva(addr) (addr)
10042 +#define ktva_ktla(addr) (addr)
10043 +
10044 #endif
10045 diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
10046 index 91b963a..9a806c1 100644
10047 --- a/arch/sparc/include/asm/pgtable_32.h
10048 +++ b/arch/sparc/include/asm/pgtable_32.h
10049 @@ -51,6 +51,9 @@ unsigned long __init bootmem_init(unsigned long *pages_avail);
10050 #define PAGE_SHARED SRMMU_PAGE_SHARED
10051 #define PAGE_COPY SRMMU_PAGE_COPY
10052 #define PAGE_READONLY SRMMU_PAGE_RDONLY
10053 +#define PAGE_SHARED_NOEXEC SRMMU_PAGE_SHARED_NOEXEC
10054 +#define PAGE_COPY_NOEXEC SRMMU_PAGE_COPY_NOEXEC
10055 +#define PAGE_READONLY_NOEXEC SRMMU_PAGE_RDONLY_NOEXEC
10056 #define PAGE_KERNEL SRMMU_PAGE_KERNEL
10057
10058 /* Top-level page directory - dummy used by init-mm.
10059 @@ -63,18 +66,18 @@ extern unsigned long ptr_in_current_pgd;
10060
10061 /* xwr */
10062 #define __P000 PAGE_NONE
10063 -#define __P001 PAGE_READONLY
10064 -#define __P010 PAGE_COPY
10065 -#define __P011 PAGE_COPY
10066 +#define __P001 PAGE_READONLY_NOEXEC
10067 +#define __P010 PAGE_COPY_NOEXEC
10068 +#define __P011 PAGE_COPY_NOEXEC
10069 #define __P100 PAGE_READONLY
10070 #define __P101 PAGE_READONLY
10071 #define __P110 PAGE_COPY
10072 #define __P111 PAGE_COPY
10073
10074 #define __S000 PAGE_NONE
10075 -#define __S001 PAGE_READONLY
10076 -#define __S010 PAGE_SHARED
10077 -#define __S011 PAGE_SHARED
10078 +#define __S001 PAGE_READONLY_NOEXEC
10079 +#define __S010 PAGE_SHARED_NOEXEC
10080 +#define __S011 PAGE_SHARED_NOEXEC
10081 #define __S100 PAGE_READONLY
10082 #define __S101 PAGE_READONLY
10083 #define __S110 PAGE_SHARED
10084 diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h
10085 index ae51a11..eadfd03 100644
10086 --- a/arch/sparc/include/asm/pgtsrmmu.h
10087 +++ b/arch/sparc/include/asm/pgtsrmmu.h
10088 @@ -111,6 +111,11 @@
10089 SRMMU_EXEC | SRMMU_REF)
10090 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
10091 SRMMU_EXEC | SRMMU_REF)
10092 +
10093 +#define SRMMU_PAGE_SHARED_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_WRITE | SRMMU_REF)
10094 +#define SRMMU_PAGE_COPY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10095 +#define SRMMU_PAGE_RDONLY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10096 +
10097 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
10098 SRMMU_DIRTY | SRMMU_REF)
10099
10100 diff --git a/arch/sparc/include/asm/setup.h b/arch/sparc/include/asm/setup.h
10101 index 29d64b1..4272fe8 100644
10102 --- a/arch/sparc/include/asm/setup.h
10103 +++ b/arch/sparc/include/asm/setup.h
10104 @@ -55,8 +55,8 @@ int handle_ldf_stq(u32 insn, struct pt_regs *regs);
10105 void handle_ld_nf(u32 insn, struct pt_regs *regs);
10106
10107 /* init_64.c */
10108 -extern atomic_t dcpage_flushes;
10109 -extern atomic_t dcpage_flushes_xcall;
10110 +extern atomic_unchecked_t dcpage_flushes;
10111 +extern atomic_unchecked_t dcpage_flushes_xcall;
10112
10113 extern int sysctl_tsb_ratio;
10114 #endif
10115 diff --git a/arch/sparc/include/asm/spinlock_64.h b/arch/sparc/include/asm/spinlock_64.h
10116 index 9689176..63c18ea 100644
10117 --- a/arch/sparc/include/asm/spinlock_64.h
10118 +++ b/arch/sparc/include/asm/spinlock_64.h
10119 @@ -92,14 +92,19 @@ static inline void arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long fla
10120
10121 /* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
10122
10123 -static void inline arch_read_lock(arch_rwlock_t *lock)
10124 +static inline void arch_read_lock(arch_rwlock_t *lock)
10125 {
10126 unsigned long tmp1, tmp2;
10127
10128 __asm__ __volatile__ (
10129 "1: ldsw [%2], %0\n"
10130 " brlz,pn %0, 2f\n"
10131 -"4: add %0, 1, %1\n"
10132 +"4: addcc %0, 1, %1\n"
10133 +
10134 +#ifdef CONFIG_PAX_REFCOUNT
10135 +" tvs %%icc, 6\n"
10136 +#endif
10137 +
10138 " cas [%2], %0, %1\n"
10139 " cmp %0, %1\n"
10140 " bne,pn %%icc, 1b\n"
10141 @@ -112,10 +117,10 @@ static void inline arch_read_lock(arch_rwlock_t *lock)
10142 " .previous"
10143 : "=&r" (tmp1), "=&r" (tmp2)
10144 : "r" (lock)
10145 - : "memory");
10146 + : "memory", "cc");
10147 }
10148
10149 -static int inline arch_read_trylock(arch_rwlock_t *lock)
10150 +static inline int arch_read_trylock(arch_rwlock_t *lock)
10151 {
10152 int tmp1, tmp2;
10153
10154 @@ -123,7 +128,12 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10155 "1: ldsw [%2], %0\n"
10156 " brlz,a,pn %0, 2f\n"
10157 " mov 0, %0\n"
10158 -" add %0, 1, %1\n"
10159 +" addcc %0, 1, %1\n"
10160 +
10161 +#ifdef CONFIG_PAX_REFCOUNT
10162 +" tvs %%icc, 6\n"
10163 +#endif
10164 +
10165 " cas [%2], %0, %1\n"
10166 " cmp %0, %1\n"
10167 " bne,pn %%icc, 1b\n"
10168 @@ -136,13 +146,18 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10169 return tmp1;
10170 }
10171
10172 -static void inline arch_read_unlock(arch_rwlock_t *lock)
10173 +static inline void arch_read_unlock(arch_rwlock_t *lock)
10174 {
10175 unsigned long tmp1, tmp2;
10176
10177 __asm__ __volatile__(
10178 "1: lduw [%2], %0\n"
10179 -" sub %0, 1, %1\n"
10180 +" subcc %0, 1, %1\n"
10181 +
10182 +#ifdef CONFIG_PAX_REFCOUNT
10183 +" tvs %%icc, 6\n"
10184 +#endif
10185 +
10186 " cas [%2], %0, %1\n"
10187 " cmp %0, %1\n"
10188 " bne,pn %%xcc, 1b\n"
10189 @@ -152,7 +167,7 @@ static void inline arch_read_unlock(arch_rwlock_t *lock)
10190 : "memory");
10191 }
10192
10193 -static void inline arch_write_lock(arch_rwlock_t *lock)
10194 +static inline void arch_write_lock(arch_rwlock_t *lock)
10195 {
10196 unsigned long mask, tmp1, tmp2;
10197
10198 @@ -177,7 +192,7 @@ static void inline arch_write_lock(arch_rwlock_t *lock)
10199 : "memory");
10200 }
10201
10202 -static void inline arch_write_unlock(arch_rwlock_t *lock)
10203 +static inline void arch_write_unlock(arch_rwlock_t *lock)
10204 {
10205 __asm__ __volatile__(
10206 " stw %%g0, [%0]"
10207 @@ -186,7 +201,7 @@ static void inline arch_write_unlock(arch_rwlock_t *lock)
10208 : "memory");
10209 }
10210
10211 -static int inline arch_write_trylock(arch_rwlock_t *lock)
10212 +static inline int arch_write_trylock(arch_rwlock_t *lock)
10213 {
10214 unsigned long mask, tmp1, tmp2, result;
10215
10216 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
10217 index 229475f..2fca9163 100644
10218 --- a/arch/sparc/include/asm/thread_info_32.h
10219 +++ b/arch/sparc/include/asm/thread_info_32.h
10220 @@ -48,6 +48,7 @@ struct thread_info {
10221 struct reg_window32 reg_window[NSWINS]; /* align for ldd! */
10222 unsigned long rwbuf_stkptrs[NSWINS];
10223 unsigned long w_saved;
10224 + unsigned long lowest_stack;
10225 };
10226
10227 /*
10228 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
10229 index bde5982..9cbb56d 100644
10230 --- a/arch/sparc/include/asm/thread_info_64.h
10231 +++ b/arch/sparc/include/asm/thread_info_64.h
10232 @@ -59,6 +59,8 @@ struct thread_info {
10233 struct pt_regs *kern_una_regs;
10234 unsigned int kern_una_insn;
10235
10236 + unsigned long lowest_stack;
10237 +
10238 unsigned long fpregs[(7 * 256) / sizeof(unsigned long)]
10239 __attribute__ ((aligned(64)));
10240 };
10241 @@ -180,12 +182,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
10242 #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
10243 /* flag bit 4 is available */
10244 #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
10245 -/* flag bit 6 is available */
10246 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
10247 #define TIF_32BIT 7 /* 32-bit binary */
10248 #define TIF_NOHZ 8 /* in adaptive nohz mode */
10249 #define TIF_SECCOMP 9 /* secure computing */
10250 #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
10251 #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
10252 +
10253 /* NOTE: Thread flags >= 12 should be ones we have no interest
10254 * in using in assembly, else we can't use the mask as
10255 * an immediate value in instructions such as andcc.
10256 @@ -205,12 +208,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
10257 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
10258 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
10259 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
10260 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
10261
10262 #define _TIF_USER_WORK_MASK ((0xff << TI_FLAG_WSAVED_SHIFT) | \
10263 _TIF_DO_NOTIFY_RESUME_MASK | \
10264 _TIF_NEED_RESCHED)
10265 #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
10266
10267 +#define _TIF_WORK_SYSCALL \
10268 + (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
10269 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
10270 +
10271 #define is_32bit_task() (test_thread_flag(TIF_32BIT))
10272
10273 /*
10274 diff --git a/arch/sparc/include/asm/uaccess.h b/arch/sparc/include/asm/uaccess.h
10275 index bd56c28..4b63d83 100644
10276 --- a/arch/sparc/include/asm/uaccess.h
10277 +++ b/arch/sparc/include/asm/uaccess.h
10278 @@ -1,5 +1,6 @@
10279 #ifndef ___ASM_SPARC_UACCESS_H
10280 #define ___ASM_SPARC_UACCESS_H
10281 +
10282 #if defined(__sparc__) && defined(__arch64__)
10283 #include <asm/uaccess_64.h>
10284 #else
10285 diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
10286 index 64ee103..388aef0 100644
10287 --- a/arch/sparc/include/asm/uaccess_32.h
10288 +++ b/arch/sparc/include/asm/uaccess_32.h
10289 @@ -47,6 +47,7 @@
10290 #define __user_ok(addr, size) ({ (void)(size); (addr) < STACK_TOP; })
10291 #define __kernel_ok (segment_eq(get_fs(), KERNEL_DS))
10292 #define __access_ok(addr, size) (__user_ok((addr) & get_fs().seg, (size)))
10293 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
10294 #define access_ok(type, addr, size) \
10295 ({ (void)(type); __access_ok((unsigned long)(addr), size); })
10296
10297 @@ -313,27 +314,46 @@ unsigned long __copy_user(void __user *to, const void __user *from, unsigned lon
10298
10299 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
10300 {
10301 - if (n && __access_ok((unsigned long) to, n))
10302 + if ((long)n < 0)
10303 + return n;
10304 +
10305 + if (n && __access_ok((unsigned long) to, n)) {
10306 + if (!__builtin_constant_p(n))
10307 + check_object_size(from, n, true);
10308 return __copy_user(to, (__force void __user *) from, n);
10309 - else
10310 + } else
10311 return n;
10312 }
10313
10314 static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n)
10315 {
10316 + if ((long)n < 0)
10317 + return n;
10318 +
10319 + if (!__builtin_constant_p(n))
10320 + check_object_size(from, n, true);
10321 +
10322 return __copy_user(to, (__force void __user *) from, n);
10323 }
10324
10325 static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
10326 {
10327 - if (n && __access_ok((unsigned long) from, n))
10328 + if ((long)n < 0)
10329 + return n;
10330 +
10331 + if (n && __access_ok((unsigned long) from, n)) {
10332 + if (!__builtin_constant_p(n))
10333 + check_object_size(to, n, false);
10334 return __copy_user((__force void __user *) to, from, n);
10335 - else
10336 + } else
10337 return n;
10338 }
10339
10340 static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
10341 {
10342 + if ((long)n < 0)
10343 + return n;
10344 +
10345 return __copy_user((__force void __user *) to, from, n);
10346 }
10347
10348 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
10349 index ea6e9a2..5703598 100644
10350 --- a/arch/sparc/include/asm/uaccess_64.h
10351 +++ b/arch/sparc/include/asm/uaccess_64.h
10352 @@ -10,6 +10,7 @@
10353 #include <linux/compiler.h>
10354 #include <linux/string.h>
10355 #include <linux/thread_info.h>
10356 +#include <linux/kernel.h>
10357 #include <asm/asi.h>
10358 #include <asm/spitfire.h>
10359 #include <asm-generic/uaccess-unaligned.h>
10360 @@ -76,6 +77,11 @@ static inline int __access_ok(const void __user * addr, unsigned long size)
10361 return 1;
10362 }
10363
10364 +static inline int access_ok_noprefault(int type, const void __user * addr, unsigned long size)
10365 +{
10366 + return 1;
10367 +}
10368 +
10369 static inline int access_ok(int type, const void __user * addr, unsigned long size)
10370 {
10371 return 1;
10372 @@ -250,8 +256,15 @@ unsigned long copy_from_user_fixup(void *to, const void __user *from,
10373 static inline unsigned long __must_check
10374 copy_from_user(void *to, const void __user *from, unsigned long size)
10375 {
10376 - unsigned long ret = ___copy_from_user(to, from, size);
10377 + unsigned long ret;
10378
10379 + if ((long)size < 0 || size > INT_MAX)
10380 + return size;
10381 +
10382 + if (!__builtin_constant_p(size))
10383 + check_object_size(to, size, false);
10384 +
10385 + ret = ___copy_from_user(to, from, size);
10386 if (unlikely(ret))
10387 ret = copy_from_user_fixup(to, from, size);
10388
10389 @@ -267,8 +280,15 @@ unsigned long copy_to_user_fixup(void __user *to, const void *from,
10390 static inline unsigned long __must_check
10391 copy_to_user(void __user *to, const void *from, unsigned long size)
10392 {
10393 - unsigned long ret = ___copy_to_user(to, from, size);
10394 + unsigned long ret;
10395
10396 + if ((long)size < 0 || size > INT_MAX)
10397 + return size;
10398 +
10399 + if (!__builtin_constant_p(size))
10400 + check_object_size(from, size, true);
10401 +
10402 + ret = ___copy_to_user(to, from, size);
10403 if (unlikely(ret))
10404 ret = copy_to_user_fixup(to, from, size);
10405 return ret;
10406 diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
10407 index 7cf9c6e..6206648 100644
10408 --- a/arch/sparc/kernel/Makefile
10409 +++ b/arch/sparc/kernel/Makefile
10410 @@ -4,7 +4,7 @@
10411 #
10412
10413 asflags-y := -ansi
10414 -ccflags-y := -Werror
10415 +#ccflags-y := -Werror
10416
10417 extra-y := head_$(BITS).o
10418
10419 diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
10420 index c5113c7..52322e4 100644
10421 --- a/arch/sparc/kernel/process_32.c
10422 +++ b/arch/sparc/kernel/process_32.c
10423 @@ -123,14 +123,14 @@ void show_regs(struct pt_regs *r)
10424
10425 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
10426 r->psr, r->pc, r->npc, r->y, print_tainted());
10427 - printk("PC: <%pS>\n", (void *) r->pc);
10428 + printk("PC: <%pA>\n", (void *) r->pc);
10429 printk("%%G: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10430 r->u_regs[0], r->u_regs[1], r->u_regs[2], r->u_regs[3],
10431 r->u_regs[4], r->u_regs[5], r->u_regs[6], r->u_regs[7]);
10432 printk("%%O: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10433 r->u_regs[8], r->u_regs[9], r->u_regs[10], r->u_regs[11],
10434 r->u_regs[12], r->u_regs[13], r->u_regs[14], r->u_regs[15]);
10435 - printk("RPC: <%pS>\n", (void *) r->u_regs[15]);
10436 + printk("RPC: <%pA>\n", (void *) r->u_regs[15]);
10437
10438 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10439 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
10440 @@ -167,7 +167,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10441 rw = (struct reg_window32 *) fp;
10442 pc = rw->ins[7];
10443 printk("[%08lx : ", pc);
10444 - printk("%pS ] ", (void *) pc);
10445 + printk("%pA ] ", (void *) pc);
10446 fp = rw->ins[6];
10447 } while (++count < 16);
10448 printk("\n");
10449 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
10450 index 46a5964..a35c62c 100644
10451 --- a/arch/sparc/kernel/process_64.c
10452 +++ b/arch/sparc/kernel/process_64.c
10453 @@ -161,7 +161,7 @@ static void show_regwindow(struct pt_regs *regs)
10454 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
10455 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
10456 if (regs->tstate & TSTATE_PRIV)
10457 - printk("I7: <%pS>\n", (void *) rwk->ins[7]);
10458 + printk("I7: <%pA>\n", (void *) rwk->ins[7]);
10459 }
10460
10461 void show_regs(struct pt_regs *regs)
10462 @@ -170,7 +170,7 @@ void show_regs(struct pt_regs *regs)
10463
10464 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
10465 regs->tpc, regs->tnpc, regs->y, print_tainted());
10466 - printk("TPC: <%pS>\n", (void *) regs->tpc);
10467 + printk("TPC: <%pA>\n", (void *) regs->tpc);
10468 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
10469 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
10470 regs->u_regs[3]);
10471 @@ -183,7 +183,7 @@ void show_regs(struct pt_regs *regs)
10472 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
10473 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
10474 regs->u_regs[15]);
10475 - printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
10476 + printk("RPC: <%pA>\n", (void *) regs->u_regs[15]);
10477 show_regwindow(regs);
10478 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
10479 }
10480 @@ -278,7 +278,7 @@ void arch_trigger_all_cpu_backtrace(bool include_self)
10481 ((tp && tp->task) ? tp->task->pid : -1));
10482
10483 if (gp->tstate & TSTATE_PRIV) {
10484 - printk(" TPC[%pS] O7[%pS] I7[%pS] RPC[%pS]\n",
10485 + printk(" TPC[%pA] O7[%pA] I7[%pA] RPC[%pA]\n",
10486 (void *) gp->tpc,
10487 (void *) gp->o7,
10488 (void *) gp->i7,
10489 diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c
10490 index 79cc0d1..ec62734 100644
10491 --- a/arch/sparc/kernel/prom_common.c
10492 +++ b/arch/sparc/kernel/prom_common.c
10493 @@ -144,7 +144,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf)
10494
10495 unsigned int prom_early_allocated __initdata;
10496
10497 -static struct of_pdt_ops prom_sparc_ops __initdata = {
10498 +static struct of_pdt_ops prom_sparc_ops __initconst = {
10499 .nextprop = prom_common_nextprop,
10500 .getproplen = prom_getproplen,
10501 .getproperty = prom_getproperty,
10502 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
10503 index 9ddc492..27a5619 100644
10504 --- a/arch/sparc/kernel/ptrace_64.c
10505 +++ b/arch/sparc/kernel/ptrace_64.c
10506 @@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
10507 return ret;
10508 }
10509
10510 +#ifdef CONFIG_GRKERNSEC_SETXID
10511 +extern void gr_delayed_cred_worker(void);
10512 +#endif
10513 +
10514 asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10515 {
10516 int ret = 0;
10517 @@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10518 if (test_thread_flag(TIF_NOHZ))
10519 user_exit();
10520
10521 +#ifdef CONFIG_GRKERNSEC_SETXID
10522 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10523 + gr_delayed_cred_worker();
10524 +#endif
10525 +
10526 if (test_thread_flag(TIF_SYSCALL_TRACE))
10527 ret = tracehook_report_syscall_entry(regs);
10528
10529 @@ -1088,6 +1097,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
10530 if (test_thread_flag(TIF_NOHZ))
10531 user_exit();
10532
10533 +#ifdef CONFIG_GRKERNSEC_SETXID
10534 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10535 + gr_delayed_cred_worker();
10536 +#endif
10537 +
10538 audit_syscall_exit(regs);
10539
10540 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
10541 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
10542 index 19cd08d..ff21e99 100644
10543 --- a/arch/sparc/kernel/smp_64.c
10544 +++ b/arch/sparc/kernel/smp_64.c
10545 @@ -891,7 +891,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10546 return;
10547
10548 #ifdef CONFIG_DEBUG_DCFLUSH
10549 - atomic_inc(&dcpage_flushes);
10550 + atomic_inc_unchecked(&dcpage_flushes);
10551 #endif
10552
10553 this_cpu = get_cpu();
10554 @@ -915,7 +915,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10555 xcall_deliver(data0, __pa(pg_addr),
10556 (u64) pg_addr, cpumask_of(cpu));
10557 #ifdef CONFIG_DEBUG_DCFLUSH
10558 - atomic_inc(&dcpage_flushes_xcall);
10559 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10560 #endif
10561 }
10562 }
10563 @@ -934,7 +934,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10564 preempt_disable();
10565
10566 #ifdef CONFIG_DEBUG_DCFLUSH
10567 - atomic_inc(&dcpage_flushes);
10568 + atomic_inc_unchecked(&dcpage_flushes);
10569 #endif
10570 data0 = 0;
10571 pg_addr = page_address(page);
10572 @@ -951,7 +951,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10573 xcall_deliver(data0, __pa(pg_addr),
10574 (u64) pg_addr, cpu_online_mask);
10575 #ifdef CONFIG_DEBUG_DCFLUSH
10576 - atomic_inc(&dcpage_flushes_xcall);
10577 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10578 #endif
10579 }
10580 __local_flush_dcache_page(page);
10581 diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
10582 index 646988d..b88905f 100644
10583 --- a/arch/sparc/kernel/sys_sparc_32.c
10584 +++ b/arch/sparc/kernel/sys_sparc_32.c
10585 @@ -54,7 +54,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10586 if (len > TASK_SIZE - PAGE_SIZE)
10587 return -ENOMEM;
10588 if (!addr)
10589 - addr = TASK_UNMAPPED_BASE;
10590 + addr = current->mm->mmap_base;
10591
10592 info.flags = 0;
10593 info.length = len;
10594 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
10595 index 30e7ddb..266a3b0 100644
10596 --- a/arch/sparc/kernel/sys_sparc_64.c
10597 +++ b/arch/sparc/kernel/sys_sparc_64.c
10598 @@ -89,13 +89,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10599 struct vm_area_struct * vma;
10600 unsigned long task_size = TASK_SIZE;
10601 int do_color_align;
10602 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10603 struct vm_unmapped_area_info info;
10604
10605 if (flags & MAP_FIXED) {
10606 /* We do not accept a shared mapping if it would violate
10607 * cache aliasing constraints.
10608 */
10609 - if ((flags & MAP_SHARED) &&
10610 + if ((filp || (flags & MAP_SHARED)) &&
10611 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10612 return -EINVAL;
10613 return addr;
10614 @@ -110,6 +111,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10615 if (filp || (flags & MAP_SHARED))
10616 do_color_align = 1;
10617
10618 +#ifdef CONFIG_PAX_RANDMMAP
10619 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10620 +#endif
10621 +
10622 if (addr) {
10623 if (do_color_align)
10624 addr = COLOR_ALIGN(addr, pgoff);
10625 @@ -117,22 +122,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10626 addr = PAGE_ALIGN(addr);
10627
10628 vma = find_vma(mm, addr);
10629 - if (task_size - len >= addr &&
10630 - (!vma || addr + len <= vma->vm_start))
10631 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10632 return addr;
10633 }
10634
10635 info.flags = 0;
10636 info.length = len;
10637 - info.low_limit = TASK_UNMAPPED_BASE;
10638 + info.low_limit = mm->mmap_base;
10639 info.high_limit = min(task_size, VA_EXCLUDE_START);
10640 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10641 info.align_offset = pgoff << PAGE_SHIFT;
10642 + info.threadstack_offset = offset;
10643 addr = vm_unmapped_area(&info);
10644
10645 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
10646 VM_BUG_ON(addr != -ENOMEM);
10647 info.low_limit = VA_EXCLUDE_END;
10648 +
10649 +#ifdef CONFIG_PAX_RANDMMAP
10650 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10651 + info.low_limit += mm->delta_mmap;
10652 +#endif
10653 +
10654 info.high_limit = task_size;
10655 addr = vm_unmapped_area(&info);
10656 }
10657 @@ -150,6 +161,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10658 unsigned long task_size = STACK_TOP32;
10659 unsigned long addr = addr0;
10660 int do_color_align;
10661 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10662 struct vm_unmapped_area_info info;
10663
10664 /* This should only ever run for 32-bit processes. */
10665 @@ -159,7 +171,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10666 /* We do not accept a shared mapping if it would violate
10667 * cache aliasing constraints.
10668 */
10669 - if ((flags & MAP_SHARED) &&
10670 + if ((filp || (flags & MAP_SHARED)) &&
10671 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10672 return -EINVAL;
10673 return addr;
10674 @@ -172,6 +184,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10675 if (filp || (flags & MAP_SHARED))
10676 do_color_align = 1;
10677
10678 +#ifdef CONFIG_PAX_RANDMMAP
10679 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10680 +#endif
10681 +
10682 /* requesting a specific address */
10683 if (addr) {
10684 if (do_color_align)
10685 @@ -180,8 +196,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10686 addr = PAGE_ALIGN(addr);
10687
10688 vma = find_vma(mm, addr);
10689 - if (task_size - len >= addr &&
10690 - (!vma || addr + len <= vma->vm_start))
10691 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10692 return addr;
10693 }
10694
10695 @@ -191,6 +206,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10696 info.high_limit = mm->mmap_base;
10697 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10698 info.align_offset = pgoff << PAGE_SHIFT;
10699 + info.threadstack_offset = offset;
10700 addr = vm_unmapped_area(&info);
10701
10702 /*
10703 @@ -203,6 +219,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10704 VM_BUG_ON(addr != -ENOMEM);
10705 info.flags = 0;
10706 info.low_limit = TASK_UNMAPPED_BASE;
10707 +
10708 +#ifdef CONFIG_PAX_RANDMMAP
10709 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10710 + info.low_limit += mm->delta_mmap;
10711 +#endif
10712 +
10713 info.high_limit = STACK_TOP32;
10714 addr = vm_unmapped_area(&info);
10715 }
10716 @@ -259,10 +281,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
10717 EXPORT_SYMBOL(get_fb_unmapped_area);
10718
10719 /* Essentially the same as PowerPC. */
10720 -static unsigned long mmap_rnd(void)
10721 +static unsigned long mmap_rnd(struct mm_struct *mm)
10722 {
10723 unsigned long rnd = 0UL;
10724
10725 +#ifdef CONFIG_PAX_RANDMMAP
10726 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10727 +#endif
10728 +
10729 if (current->flags & PF_RANDOMIZE) {
10730 unsigned long val = get_random_int();
10731 if (test_thread_flag(TIF_32BIT))
10732 @@ -275,7 +301,7 @@ static unsigned long mmap_rnd(void)
10733
10734 void arch_pick_mmap_layout(struct mm_struct *mm)
10735 {
10736 - unsigned long random_factor = mmap_rnd();
10737 + unsigned long random_factor = mmap_rnd(mm);
10738 unsigned long gap;
10739
10740 /*
10741 @@ -288,6 +314,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
10742 gap == RLIM_INFINITY ||
10743 sysctl_legacy_va_layout) {
10744 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
10745 +
10746 +#ifdef CONFIG_PAX_RANDMMAP
10747 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10748 + mm->mmap_base += mm->delta_mmap;
10749 +#endif
10750 +
10751 mm->get_unmapped_area = arch_get_unmapped_area;
10752 } else {
10753 /* We know it's 32-bit */
10754 @@ -299,6 +331,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
10755 gap = (task_size / 6 * 5);
10756
10757 mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
10758 +
10759 +#ifdef CONFIG_PAX_RANDMMAP
10760 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10761 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
10762 +#endif
10763 +
10764 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
10765 }
10766 }
10767 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
10768 index bb00089..e0ea580 100644
10769 --- a/arch/sparc/kernel/syscalls.S
10770 +++ b/arch/sparc/kernel/syscalls.S
10771 @@ -62,7 +62,7 @@ sys32_rt_sigreturn:
10772 #endif
10773 .align 32
10774 1: ldx [%g6 + TI_FLAGS], %l5
10775 - andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10776 + andcc %l5, _TIF_WORK_SYSCALL, %g0
10777 be,pt %icc, rtrap
10778 nop
10779 call syscall_trace_leave
10780 @@ -194,7 +194,7 @@ linux_sparc_syscall32:
10781
10782 srl %i3, 0, %o3 ! IEU0
10783 srl %i2, 0, %o2 ! IEU0 Group
10784 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10785 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10786 bne,pn %icc, linux_syscall_trace32 ! CTI
10787 mov %i0, %l5 ! IEU1
10788 5: call %l7 ! CTI Group brk forced
10789 @@ -218,7 +218,7 @@ linux_sparc_syscall:
10790
10791 mov %i3, %o3 ! IEU1
10792 mov %i4, %o4 ! IEU0 Group
10793 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10794 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10795 bne,pn %icc, linux_syscall_trace ! CTI Group
10796 mov %i0, %l5 ! IEU0
10797 2: call %l7 ! CTI Group brk forced
10798 @@ -233,7 +233,7 @@ ret_sys_call:
10799
10800 cmp %o0, -ERESTART_RESTARTBLOCK
10801 bgeu,pn %xcc, 1f
10802 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10803 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10804 ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
10805
10806 2:
10807 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
10808 index 4f21df7..0a374da 100644
10809 --- a/arch/sparc/kernel/traps_32.c
10810 +++ b/arch/sparc/kernel/traps_32.c
10811 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
10812 #define __SAVE __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
10813 #define __RESTORE __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
10814
10815 +extern void gr_handle_kernel_exploit(void);
10816 +
10817 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10818 {
10819 static int die_counter;
10820 @@ -76,15 +78,17 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10821 count++ < 30 &&
10822 (((unsigned long) rw) >= PAGE_OFFSET) &&
10823 !(((unsigned long) rw) & 0x7)) {
10824 - printk("Caller[%08lx]: %pS\n", rw->ins[7],
10825 + printk("Caller[%08lx]: %pA\n", rw->ins[7],
10826 (void *) rw->ins[7]);
10827 rw = (struct reg_window32 *)rw->ins[6];
10828 }
10829 }
10830 printk("Instruction DUMP:");
10831 instruction_dump ((unsigned long *) regs->pc);
10832 - if(regs->psr & PSR_PS)
10833 + if(regs->psr & PSR_PS) {
10834 + gr_handle_kernel_exploit();
10835 do_exit(SIGKILL);
10836 + }
10837 do_exit(SIGSEGV);
10838 }
10839
10840 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
10841 index d21cd62..00a4a17 100644
10842 --- a/arch/sparc/kernel/traps_64.c
10843 +++ b/arch/sparc/kernel/traps_64.c
10844 @@ -79,7 +79,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
10845 i + 1,
10846 p->trapstack[i].tstate, p->trapstack[i].tpc,
10847 p->trapstack[i].tnpc, p->trapstack[i].tt);
10848 - printk("TRAPLOG: TPC<%pS>\n", (void *) p->trapstack[i].tpc);
10849 + printk("TRAPLOG: TPC<%pA>\n", (void *) p->trapstack[i].tpc);
10850 }
10851 }
10852
10853 @@ -99,6 +99,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
10854
10855 lvl -= 0x100;
10856 if (regs->tstate & TSTATE_PRIV) {
10857 +
10858 +#ifdef CONFIG_PAX_REFCOUNT
10859 + if (lvl == 6)
10860 + pax_report_refcount_overflow(regs);
10861 +#endif
10862 +
10863 sprintf(buffer, "Kernel bad sw trap %lx", lvl);
10864 die_if_kernel(buffer, regs);
10865 }
10866 @@ -117,11 +123,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
10867 void bad_trap_tl1(struct pt_regs *regs, long lvl)
10868 {
10869 char buffer[32];
10870 -
10871 +
10872 if (notify_die(DIE_TRAP_TL1, "bad trap tl1", regs,
10873 0, lvl, SIGTRAP) == NOTIFY_STOP)
10874 return;
10875
10876 +#ifdef CONFIG_PAX_REFCOUNT
10877 + if (lvl == 6)
10878 + pax_report_refcount_overflow(regs);
10879 +#endif
10880 +
10881 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
10882
10883 sprintf (buffer, "Bad trap %lx at tl>0", lvl);
10884 @@ -1151,7 +1162,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
10885 regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
10886 printk("%s" "ERROR(%d): ",
10887 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
10888 - printk("TPC<%pS>\n", (void *) regs->tpc);
10889 + printk("TPC<%pA>\n", (void *) regs->tpc);
10890 printk("%s" "ERROR(%d): M_SYND(%lx), E_SYND(%lx)%s%s\n",
10891 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
10892 (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
10893 @@ -1758,7 +1769,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
10894 smp_processor_id(),
10895 (type & 0x1) ? 'I' : 'D',
10896 regs->tpc);
10897 - printk(KERN_EMERG "TPC<%pS>\n", (void *) regs->tpc);
10898 + printk(KERN_EMERG "TPC<%pA>\n", (void *) regs->tpc);
10899 panic("Irrecoverable Cheetah+ parity error.");
10900 }
10901
10902 @@ -1766,7 +1777,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
10903 smp_processor_id(),
10904 (type & 0x1) ? 'I' : 'D',
10905 regs->tpc);
10906 - printk(KERN_WARNING "TPC<%pS>\n", (void *) regs->tpc);
10907 + printk(KERN_WARNING "TPC<%pA>\n", (void *) regs->tpc);
10908 }
10909
10910 struct sun4v_error_entry {
10911 @@ -1839,8 +1850,8 @@ struct sun4v_error_entry {
10912 /*0x38*/u64 reserved_5;
10913 };
10914
10915 -static atomic_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
10916 -static atomic_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
10917 +static atomic_unchecked_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
10918 +static atomic_unchecked_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
10919
10920 static const char *sun4v_err_type_to_str(u8 type)
10921 {
10922 @@ -1932,7 +1943,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
10923 }
10924
10925 static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
10926 - int cpu, const char *pfx, atomic_t *ocnt)
10927 + int cpu, const char *pfx, atomic_unchecked_t *ocnt)
10928 {
10929 u64 *raw_ptr = (u64 *) ent;
10930 u32 attrs;
10931 @@ -1990,8 +2001,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
10932
10933 show_regs(regs);
10934
10935 - if ((cnt = atomic_read(ocnt)) != 0) {
10936 - atomic_set(ocnt, 0);
10937 + if ((cnt = atomic_read_unchecked(ocnt)) != 0) {
10938 + atomic_set_unchecked(ocnt, 0);
10939 wmb();
10940 printk("%s: Queue overflowed %d times.\n",
10941 pfx, cnt);
10942 @@ -2048,7 +2059,7 @@ out:
10943 */
10944 void sun4v_resum_overflow(struct pt_regs *regs)
10945 {
10946 - atomic_inc(&sun4v_resum_oflow_cnt);
10947 + atomic_inc_unchecked(&sun4v_resum_oflow_cnt);
10948 }
10949
10950 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
10951 @@ -2101,7 +2112,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
10952 /* XXX Actually even this can make not that much sense. Perhaps
10953 * XXX we should just pull the plug and panic directly from here?
10954 */
10955 - atomic_inc(&sun4v_nonresum_oflow_cnt);
10956 + atomic_inc_unchecked(&sun4v_nonresum_oflow_cnt);
10957 }
10958
10959 static void sun4v_tlb_error(struct pt_regs *regs)
10960 @@ -2120,9 +2131,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
10961
10962 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
10963 regs->tpc, tl);
10964 - printk(KERN_EMERG "SUN4V-ITLB: TPC<%pS>\n", (void *) regs->tpc);
10965 + printk(KERN_EMERG "SUN4V-ITLB: TPC<%pA>\n", (void *) regs->tpc);
10966 printk(KERN_EMERG "SUN4V-ITLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
10967 - printk(KERN_EMERG "SUN4V-ITLB: O7<%pS>\n",
10968 + printk(KERN_EMERG "SUN4V-ITLB: O7<%pA>\n",
10969 (void *) regs->u_regs[UREG_I7]);
10970 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
10971 "pte[%lx] error[%lx]\n",
10972 @@ -2143,9 +2154,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
10973
10974 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
10975 regs->tpc, tl);
10976 - printk(KERN_EMERG "SUN4V-DTLB: TPC<%pS>\n", (void *) regs->tpc);
10977 + printk(KERN_EMERG "SUN4V-DTLB: TPC<%pA>\n", (void *) regs->tpc);
10978 printk(KERN_EMERG "SUN4V-DTLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
10979 - printk(KERN_EMERG "SUN4V-DTLB: O7<%pS>\n",
10980 + printk(KERN_EMERG "SUN4V-DTLB: O7<%pA>\n",
10981 (void *) regs->u_regs[UREG_I7]);
10982 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
10983 "pte[%lx] error[%lx]\n",
10984 @@ -2362,13 +2373,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10985 fp = (unsigned long)sf->fp + STACK_BIAS;
10986 }
10987
10988 - printk(" [%016lx] %pS\n", pc, (void *) pc);
10989 + printk(" [%016lx] %pA\n", pc, (void *) pc);
10990 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
10991 if ((pc + 8UL) == (unsigned long) &return_to_handler) {
10992 int index = tsk->curr_ret_stack;
10993 if (tsk->ret_stack && index >= graph) {
10994 pc = tsk->ret_stack[index - graph].ret;
10995 - printk(" [%016lx] %pS\n", pc, (void *) pc);
10996 + printk(" [%016lx] %pA\n", pc, (void *) pc);
10997 graph++;
10998 }
10999 }
11000 @@ -2386,6 +2397,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
11001 return (struct reg_window *) (fp + STACK_BIAS);
11002 }
11003
11004 +extern void gr_handle_kernel_exploit(void);
11005 +
11006 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11007 {
11008 static int die_counter;
11009 @@ -2414,7 +2427,7 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11010 while (rw &&
11011 count++ < 30 &&
11012 kstack_valid(tp, (unsigned long) rw)) {
11013 - printk("Caller[%016lx]: %pS\n", rw->ins[7],
11014 + printk("Caller[%016lx]: %pA\n", rw->ins[7],
11015 (void *) rw->ins[7]);
11016
11017 rw = kernel_stack_up(rw);
11018 @@ -2429,8 +2442,10 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11019 }
11020 if (panic_on_oops)
11021 panic("Fatal exception");
11022 - if (regs->tstate & TSTATE_PRIV)
11023 + if (regs->tstate & TSTATE_PRIV) {
11024 + gr_handle_kernel_exploit();
11025 do_exit(SIGKILL);
11026 + }
11027 do_exit(SIGSEGV);
11028 }
11029 EXPORT_SYMBOL(die_if_kernel);
11030 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
11031 index 62098a8..547ab2c 100644
11032 --- a/arch/sparc/kernel/unaligned_64.c
11033 +++ b/arch/sparc/kernel/unaligned_64.c
11034 @@ -297,7 +297,7 @@ static void log_unaligned(struct pt_regs *regs)
11035 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
11036
11037 if (__ratelimit(&ratelimit)) {
11038 - printk("Kernel unaligned access at TPC[%lx] %pS\n",
11039 + printk("Kernel unaligned access at TPC[%lx] %pA\n",
11040 regs->tpc, (void *) regs->tpc);
11041 }
11042 }
11043 diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
11044 index 3269b02..64f5231 100644
11045 --- a/arch/sparc/lib/Makefile
11046 +++ b/arch/sparc/lib/Makefile
11047 @@ -2,7 +2,7 @@
11048 #
11049
11050 asflags-y := -ansi -DST_DIV0=0x02
11051 -ccflags-y := -Werror
11052 +#ccflags-y := -Werror
11053
11054 lib-$(CONFIG_SPARC32) += ashrdi3.o
11055 lib-$(CONFIG_SPARC32) += memcpy.o memset.o
11056 diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
11057 index d6b0363..552bcbb6 100644
11058 --- a/arch/sparc/lib/atomic_64.S
11059 +++ b/arch/sparc/lib/atomic_64.S
11060 @@ -15,11 +15,22 @@
11061 * a value and does the barriers.
11062 */
11063
11064 -#define ATOMIC_OP(op) \
11065 -ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11066 +#ifdef CONFIG_PAX_REFCOUNT
11067 +#define __REFCOUNT_OP(op) op##cc
11068 +#define __OVERFLOW_IOP tvs %icc, 6;
11069 +#define __OVERFLOW_XOP tvs %xcc, 6;
11070 +#else
11071 +#define __REFCOUNT_OP(op) op
11072 +#define __OVERFLOW_IOP
11073 +#define __OVERFLOW_XOP
11074 +#endif
11075 +
11076 +#define __ATOMIC_OP(op, suffix, asm_op, post_op) \
11077 +ENTRY(atomic_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11078 BACKOFF_SETUP(%o2); \
11079 1: lduw [%o1], %g1; \
11080 - op %g1, %o0, %g7; \
11081 + asm_op %g1, %o0, %g7; \
11082 + post_op \
11083 cas [%o1], %g1, %g7; \
11084 cmp %g1, %g7; \
11085 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11086 @@ -29,11 +40,15 @@ ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11087 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11088 ENDPROC(atomic_##op); \
11089
11090 -#define ATOMIC_OP_RETURN(op) \
11091 -ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11092 +#define ATOMIC_OP(op) __ATOMIC_OP(op, , op, ) \
11093 + __ATOMIC_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11094 +
11095 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op) \
11096 +ENTRY(atomic_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11097 BACKOFF_SETUP(%o2); \
11098 1: lduw [%o1], %g1; \
11099 - op %g1, %o0, %g7; \
11100 + asm_op %g1, %o0, %g7; \
11101 + post_op \
11102 cas [%o1], %g1, %g7; \
11103 cmp %g1, %g7; \
11104 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11105 @@ -43,6 +58,9 @@ ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11106 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11107 ENDPROC(atomic_##op##_return);
11108
11109 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, , op, ) \
11110 + __ATOMIC_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11111 +
11112 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11113
11114 ATOMIC_OPS(add)
11115 @@ -53,13 +71,16 @@ ATOMIC_OP(xor)
11116
11117 #undef ATOMIC_OPS
11118 #undef ATOMIC_OP_RETURN
11119 +#undef __ATOMIC_OP_RETURN
11120 #undef ATOMIC_OP
11121 +#undef __ATOMIC_OP
11122
11123 -#define ATOMIC64_OP(op) \
11124 -ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11125 +#define __ATOMIC64_OP(op, suffix, asm_op, post_op) \
11126 +ENTRY(atomic64_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11127 BACKOFF_SETUP(%o2); \
11128 1: ldx [%o1], %g1; \
11129 - op %g1, %o0, %g7; \
11130 + asm_op %g1, %o0, %g7; \
11131 + post_op \
11132 casx [%o1], %g1, %g7; \
11133 cmp %g1, %g7; \
11134 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11135 @@ -69,11 +90,15 @@ ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11136 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11137 ENDPROC(atomic64_##op); \
11138
11139 -#define ATOMIC64_OP_RETURN(op) \
11140 -ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11141 +#define ATOMIC64_OP(op) __ATOMIC64_OP(op, , op, ) \
11142 + __ATOMIC64_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11143 +
11144 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op) \
11145 +ENTRY(atomic64_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11146 BACKOFF_SETUP(%o2); \
11147 1: ldx [%o1], %g1; \
11148 - op %g1, %o0, %g7; \
11149 + asm_op %g1, %o0, %g7; \
11150 + post_op \
11151 casx [%o1], %g1, %g7; \
11152 cmp %g1, %g7; \
11153 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11154 @@ -83,6 +108,9 @@ ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11155 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11156 ENDPROC(atomic64_##op##_return);
11157
11158 +#define ATOMIC64_OP_RETURN(op) __ATOMIC64_OP_RETURN(op, , op, ) \
11159 +i __ATOMIC64_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11160 +
11161 #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op)
11162
11163 ATOMIC64_OPS(add)
11164 @@ -93,7 +121,12 @@ ATOMIC64_OP(xor)
11165
11166 #undef ATOMIC64_OPS
11167 #undef ATOMIC64_OP_RETURN
11168 +#undef __ATOMIC64_OP_RETURN
11169 #undef ATOMIC64_OP
11170 +#undef __ATOMIC64_OP
11171 +#undef __OVERFLOW_XOP
11172 +#undef __OVERFLOW_IOP
11173 +#undef __REFCOUNT_OP
11174
11175 ENTRY(atomic64_dec_if_positive) /* %o0 = atomic_ptr */
11176 BACKOFF_SETUP(%o2)
11177 diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
11178 index 8eb454c..9f95c5b 100644
11179 --- a/arch/sparc/lib/ksyms.c
11180 +++ b/arch/sparc/lib/ksyms.c
11181 @@ -101,7 +101,9 @@ EXPORT_SYMBOL(__clear_user);
11182 /* Atomic counter implementation. */
11183 #define ATOMIC_OP(op) \
11184 EXPORT_SYMBOL(atomic_##op); \
11185 -EXPORT_SYMBOL(atomic64_##op);
11186 +EXPORT_SYMBOL(atomic_##op##_unchecked); \
11187 +EXPORT_SYMBOL(atomic64_##op); \
11188 +EXPORT_SYMBOL(atomic64_##op##_unchecked);
11189
11190 #define ATOMIC_OP_RETURN(op) \
11191 EXPORT_SYMBOL(atomic_##op##_return); \
11192 @@ -110,6 +112,8 @@ EXPORT_SYMBOL(atomic64_##op##_return);
11193 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11194
11195 ATOMIC_OPS(add)
11196 +EXPORT_SYMBOL(atomic_add_ret_unchecked);
11197 +EXPORT_SYMBOL(atomic64_add_ret_unchecked);
11198 ATOMIC_OPS(sub)
11199 ATOMIC_OP(and)
11200 ATOMIC_OP(or)
11201 diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
11202 index 30c3ecc..736f015 100644
11203 --- a/arch/sparc/mm/Makefile
11204 +++ b/arch/sparc/mm/Makefile
11205 @@ -2,7 +2,7 @@
11206 #
11207
11208 asflags-y := -ansi
11209 -ccflags-y := -Werror
11210 +#ccflags-y := -Werror
11211
11212 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o gup.o
11213 obj-y += fault_$(BITS).o
11214 diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
11215 index c399e7b..2387414 100644
11216 --- a/arch/sparc/mm/fault_32.c
11217 +++ b/arch/sparc/mm/fault_32.c
11218 @@ -22,6 +22,9 @@
11219 #include <linux/interrupt.h>
11220 #include <linux/kdebug.h>
11221 #include <linux/uaccess.h>
11222 +#include <linux/slab.h>
11223 +#include <linux/pagemap.h>
11224 +#include <linux/compiler.h>
11225
11226 #include <asm/page.h>
11227 #include <asm/pgtable.h>
11228 @@ -156,6 +159,277 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
11229 return safe_compute_effective_address(regs, insn);
11230 }
11231
11232 +#ifdef CONFIG_PAX_PAGEEXEC
11233 +#ifdef CONFIG_PAX_DLRESOLVE
11234 +static void pax_emuplt_close(struct vm_area_struct *vma)
11235 +{
11236 + vma->vm_mm->call_dl_resolve = 0UL;
11237 +}
11238 +
11239 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11240 +{
11241 + unsigned int *kaddr;
11242 +
11243 + vmf->page = alloc_page(GFP_HIGHUSER);
11244 + if (!vmf->page)
11245 + return VM_FAULT_OOM;
11246 +
11247 + kaddr = kmap(vmf->page);
11248 + memset(kaddr, 0, PAGE_SIZE);
11249 + kaddr[0] = 0x9DE3BFA8U; /* save */
11250 + flush_dcache_page(vmf->page);
11251 + kunmap(vmf->page);
11252 + return VM_FAULT_MAJOR;
11253 +}
11254 +
11255 +static const struct vm_operations_struct pax_vm_ops = {
11256 + .close = pax_emuplt_close,
11257 + .fault = pax_emuplt_fault
11258 +};
11259 +
11260 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11261 +{
11262 + int ret;
11263 +
11264 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11265 + vma->vm_mm = current->mm;
11266 + vma->vm_start = addr;
11267 + vma->vm_end = addr + PAGE_SIZE;
11268 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11269 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11270 + vma->vm_ops = &pax_vm_ops;
11271 +
11272 + ret = insert_vm_struct(current->mm, vma);
11273 + if (ret)
11274 + return ret;
11275 +
11276 + ++current->mm->total_vm;
11277 + return 0;
11278 +}
11279 +#endif
11280 +
11281 +/*
11282 + * PaX: decide what to do with offenders (regs->pc = fault address)
11283 + *
11284 + * returns 1 when task should be killed
11285 + * 2 when patched PLT trampoline was detected
11286 + * 3 when unpatched PLT trampoline was detected
11287 + */
11288 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11289 +{
11290 +
11291 +#ifdef CONFIG_PAX_EMUPLT
11292 + int err;
11293 +
11294 + do { /* PaX: patched PLT emulation #1 */
11295 + unsigned int sethi1, sethi2, jmpl;
11296 +
11297 + err = get_user(sethi1, (unsigned int *)regs->pc);
11298 + err |= get_user(sethi2, (unsigned int *)(regs->pc+4));
11299 + err |= get_user(jmpl, (unsigned int *)(regs->pc+8));
11300 +
11301 + if (err)
11302 + break;
11303 +
11304 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11305 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11306 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11307 + {
11308 + unsigned int addr;
11309 +
11310 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11311 + addr = regs->u_regs[UREG_G1];
11312 + addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11313 + regs->pc = addr;
11314 + regs->npc = addr+4;
11315 + return 2;
11316 + }
11317 + } while (0);
11318 +
11319 + do { /* PaX: patched PLT emulation #2 */
11320 + unsigned int ba;
11321 +
11322 + err = get_user(ba, (unsigned int *)regs->pc);
11323 +
11324 + if (err)
11325 + break;
11326 +
11327 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11328 + unsigned int addr;
11329 +
11330 + if ((ba & 0xFFC00000U) == 0x30800000U)
11331 + addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11332 + else
11333 + addr = regs->pc + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11334 + regs->pc = addr;
11335 + regs->npc = addr+4;
11336 + return 2;
11337 + }
11338 + } while (0);
11339 +
11340 + do { /* PaX: patched PLT emulation #3 */
11341 + unsigned int sethi, bajmpl, nop;
11342 +
11343 + err = get_user(sethi, (unsigned int *)regs->pc);
11344 + err |= get_user(bajmpl, (unsigned int *)(regs->pc+4));
11345 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11346 +
11347 + if (err)
11348 + break;
11349 +
11350 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11351 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11352 + nop == 0x01000000U)
11353 + {
11354 + unsigned int addr;
11355 +
11356 + addr = (sethi & 0x003FFFFFU) << 10;
11357 + regs->u_regs[UREG_G1] = addr;
11358 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11359 + addr += (((bajmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11360 + else
11361 + addr = regs->pc + ((((bajmpl | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11362 + regs->pc = addr;
11363 + regs->npc = addr+4;
11364 + return 2;
11365 + }
11366 + } while (0);
11367 +
11368 + do { /* PaX: unpatched PLT emulation step 1 */
11369 + unsigned int sethi, ba, nop;
11370 +
11371 + err = get_user(sethi, (unsigned int *)regs->pc);
11372 + err |= get_user(ba, (unsigned int *)(regs->pc+4));
11373 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11374 +
11375 + if (err)
11376 + break;
11377 +
11378 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11379 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11380 + nop == 0x01000000U)
11381 + {
11382 + unsigned int addr, save, call;
11383 +
11384 + if ((ba & 0xFFC00000U) == 0x30800000U)
11385 + addr = regs->pc + 4 + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11386 + else
11387 + addr = regs->pc + 4 + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11388 +
11389 + err = get_user(save, (unsigned int *)addr);
11390 + err |= get_user(call, (unsigned int *)(addr+4));
11391 + err |= get_user(nop, (unsigned int *)(addr+8));
11392 + if (err)
11393 + break;
11394 +
11395 +#ifdef CONFIG_PAX_DLRESOLVE
11396 + if (save == 0x9DE3BFA8U &&
11397 + (call & 0xC0000000U) == 0x40000000U &&
11398 + nop == 0x01000000U)
11399 + {
11400 + struct vm_area_struct *vma;
11401 + unsigned long call_dl_resolve;
11402 +
11403 + down_read(&current->mm->mmap_sem);
11404 + call_dl_resolve = current->mm->call_dl_resolve;
11405 + up_read(&current->mm->mmap_sem);
11406 + if (likely(call_dl_resolve))
11407 + goto emulate;
11408 +
11409 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11410 +
11411 + down_write(&current->mm->mmap_sem);
11412 + if (current->mm->call_dl_resolve) {
11413 + call_dl_resolve = current->mm->call_dl_resolve;
11414 + up_write(&current->mm->mmap_sem);
11415 + if (vma)
11416 + kmem_cache_free(vm_area_cachep, vma);
11417 + goto emulate;
11418 + }
11419 +
11420 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11421 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11422 + up_write(&current->mm->mmap_sem);
11423 + if (vma)
11424 + kmem_cache_free(vm_area_cachep, vma);
11425 + return 1;
11426 + }
11427 +
11428 + if (pax_insert_vma(vma, call_dl_resolve)) {
11429 + up_write(&current->mm->mmap_sem);
11430 + kmem_cache_free(vm_area_cachep, vma);
11431 + return 1;
11432 + }
11433 +
11434 + current->mm->call_dl_resolve = call_dl_resolve;
11435 + up_write(&current->mm->mmap_sem);
11436 +
11437 +emulate:
11438 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11439 + regs->pc = call_dl_resolve;
11440 + regs->npc = addr+4;
11441 + return 3;
11442 + }
11443 +#endif
11444 +
11445 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11446 + if ((save & 0xFFC00000U) == 0x05000000U &&
11447 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11448 + nop == 0x01000000U)
11449 + {
11450 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11451 + regs->u_regs[UREG_G2] = addr + 4;
11452 + addr = (save & 0x003FFFFFU) << 10;
11453 + addr += (((call | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11454 + regs->pc = addr;
11455 + regs->npc = addr+4;
11456 + return 3;
11457 + }
11458 + }
11459 + } while (0);
11460 +
11461 + do { /* PaX: unpatched PLT emulation step 2 */
11462 + unsigned int save, call, nop;
11463 +
11464 + err = get_user(save, (unsigned int *)(regs->pc-4));
11465 + err |= get_user(call, (unsigned int *)regs->pc);
11466 + err |= get_user(nop, (unsigned int *)(regs->pc+4));
11467 + if (err)
11468 + break;
11469 +
11470 + if (save == 0x9DE3BFA8U &&
11471 + (call & 0xC0000000U) == 0x40000000U &&
11472 + nop == 0x01000000U)
11473 + {
11474 + unsigned int dl_resolve = regs->pc + ((((call | 0xC0000000U) ^ 0x20000000U) + 0x20000000U) << 2);
11475 +
11476 + regs->u_regs[UREG_RETPC] = regs->pc;
11477 + regs->pc = dl_resolve;
11478 + regs->npc = dl_resolve+4;
11479 + return 3;
11480 + }
11481 + } while (0);
11482 +#endif
11483 +
11484 + return 1;
11485 +}
11486 +
11487 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
11488 +{
11489 + unsigned long i;
11490 +
11491 + printk(KERN_ERR "PAX: bytes at PC: ");
11492 + for (i = 0; i < 8; i++) {
11493 + unsigned int c;
11494 + if (get_user(c, (unsigned int *)pc+i))
11495 + printk(KERN_CONT "???????? ");
11496 + else
11497 + printk(KERN_CONT "%08x ", c);
11498 + }
11499 + printk("\n");
11500 +}
11501 +#endif
11502 +
11503 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
11504 int text_fault)
11505 {
11506 @@ -226,6 +500,24 @@ good_area:
11507 if (!(vma->vm_flags & VM_WRITE))
11508 goto bad_area;
11509 } else {
11510 +
11511 +#ifdef CONFIG_PAX_PAGEEXEC
11512 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && text_fault && !(vma->vm_flags & VM_EXEC)) {
11513 + up_read(&mm->mmap_sem);
11514 + switch (pax_handle_fetch_fault(regs)) {
11515 +
11516 +#ifdef CONFIG_PAX_EMUPLT
11517 + case 2:
11518 + case 3:
11519 + return;
11520 +#endif
11521 +
11522 + }
11523 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->u_regs[UREG_FP]);
11524 + do_group_exit(SIGKILL);
11525 + }
11526 +#endif
11527 +
11528 /* Allow reads even for write-only mappings */
11529 if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
11530 goto bad_area;
11531 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
11532 index dbabe57..d34d315 100644
11533 --- a/arch/sparc/mm/fault_64.c
11534 +++ b/arch/sparc/mm/fault_64.c
11535 @@ -23,6 +23,9 @@
11536 #include <linux/percpu.h>
11537 #include <linux/context_tracking.h>
11538 #include <linux/uaccess.h>
11539 +#include <linux/slab.h>
11540 +#include <linux/pagemap.h>
11541 +#include <linux/compiler.h>
11542
11543 #include <asm/page.h>
11544 #include <asm/pgtable.h>
11545 @@ -76,7 +79,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
11546 printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
11547 regs->tpc);
11548 printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
11549 - printk("OOPS: RPC <%pS>\n", (void *) regs->u_regs[15]);
11550 + printk("OOPS: RPC <%pA>\n", (void *) regs->u_regs[15]);
11551 printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
11552 dump_stack();
11553 unhandled_fault(regs->tpc, current, regs);
11554 @@ -279,6 +282,466 @@ static void noinline __kprobes bogus_32bit_fault_tpc(struct pt_regs *regs)
11555 show_regs(regs);
11556 }
11557
11558 +#ifdef CONFIG_PAX_PAGEEXEC
11559 +#ifdef CONFIG_PAX_DLRESOLVE
11560 +static void pax_emuplt_close(struct vm_area_struct *vma)
11561 +{
11562 + vma->vm_mm->call_dl_resolve = 0UL;
11563 +}
11564 +
11565 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11566 +{
11567 + unsigned int *kaddr;
11568 +
11569 + vmf->page = alloc_page(GFP_HIGHUSER);
11570 + if (!vmf->page)
11571 + return VM_FAULT_OOM;
11572 +
11573 + kaddr = kmap(vmf->page);
11574 + memset(kaddr, 0, PAGE_SIZE);
11575 + kaddr[0] = 0x9DE3BFA8U; /* save */
11576 + flush_dcache_page(vmf->page);
11577 + kunmap(vmf->page);
11578 + return VM_FAULT_MAJOR;
11579 +}
11580 +
11581 +static const struct vm_operations_struct pax_vm_ops = {
11582 + .close = pax_emuplt_close,
11583 + .fault = pax_emuplt_fault
11584 +};
11585 +
11586 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11587 +{
11588 + int ret;
11589 +
11590 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11591 + vma->vm_mm = current->mm;
11592 + vma->vm_start = addr;
11593 + vma->vm_end = addr + PAGE_SIZE;
11594 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11595 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11596 + vma->vm_ops = &pax_vm_ops;
11597 +
11598 + ret = insert_vm_struct(current->mm, vma);
11599 + if (ret)
11600 + return ret;
11601 +
11602 + ++current->mm->total_vm;
11603 + return 0;
11604 +}
11605 +#endif
11606 +
11607 +/*
11608 + * PaX: decide what to do with offenders (regs->tpc = fault address)
11609 + *
11610 + * returns 1 when task should be killed
11611 + * 2 when patched PLT trampoline was detected
11612 + * 3 when unpatched PLT trampoline was detected
11613 + */
11614 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11615 +{
11616 +
11617 +#ifdef CONFIG_PAX_EMUPLT
11618 + int err;
11619 +
11620 + do { /* PaX: patched PLT emulation #1 */
11621 + unsigned int sethi1, sethi2, jmpl;
11622 +
11623 + err = get_user(sethi1, (unsigned int *)regs->tpc);
11624 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+4));
11625 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+8));
11626 +
11627 + if (err)
11628 + break;
11629 +
11630 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11631 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11632 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11633 + {
11634 + unsigned long addr;
11635 +
11636 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11637 + addr = regs->u_regs[UREG_G1];
11638 + addr += (((jmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11639 +
11640 + if (test_thread_flag(TIF_32BIT))
11641 + addr &= 0xFFFFFFFFUL;
11642 +
11643 + regs->tpc = addr;
11644 + regs->tnpc = addr+4;
11645 + return 2;
11646 + }
11647 + } while (0);
11648 +
11649 + do { /* PaX: patched PLT emulation #2 */
11650 + unsigned int ba;
11651 +
11652 + err = get_user(ba, (unsigned int *)regs->tpc);
11653 +
11654 + if (err)
11655 + break;
11656 +
11657 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11658 + unsigned long addr;
11659 +
11660 + if ((ba & 0xFFC00000U) == 0x30800000U)
11661 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11662 + else
11663 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11664 +
11665 + if (test_thread_flag(TIF_32BIT))
11666 + addr &= 0xFFFFFFFFUL;
11667 +
11668 + regs->tpc = addr;
11669 + regs->tnpc = addr+4;
11670 + return 2;
11671 + }
11672 + } while (0);
11673 +
11674 + do { /* PaX: patched PLT emulation #3 */
11675 + unsigned int sethi, bajmpl, nop;
11676 +
11677 + err = get_user(sethi, (unsigned int *)regs->tpc);
11678 + err |= get_user(bajmpl, (unsigned int *)(regs->tpc+4));
11679 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11680 +
11681 + if (err)
11682 + break;
11683 +
11684 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11685 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11686 + nop == 0x01000000U)
11687 + {
11688 + unsigned long addr;
11689 +
11690 + addr = (sethi & 0x003FFFFFU) << 10;
11691 + regs->u_regs[UREG_G1] = addr;
11692 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11693 + addr += (((bajmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11694 + else
11695 + addr = regs->tpc + ((((bajmpl | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11696 +
11697 + if (test_thread_flag(TIF_32BIT))
11698 + addr &= 0xFFFFFFFFUL;
11699 +
11700 + regs->tpc = addr;
11701 + regs->tnpc = addr+4;
11702 + return 2;
11703 + }
11704 + } while (0);
11705 +
11706 + do { /* PaX: patched PLT emulation #4 */
11707 + unsigned int sethi, mov1, call, mov2;
11708 +
11709 + err = get_user(sethi, (unsigned int *)regs->tpc);
11710 + err |= get_user(mov1, (unsigned int *)(regs->tpc+4));
11711 + err |= get_user(call, (unsigned int *)(regs->tpc+8));
11712 + err |= get_user(mov2, (unsigned int *)(regs->tpc+12));
11713 +
11714 + if (err)
11715 + break;
11716 +
11717 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11718 + mov1 == 0x8210000FU &&
11719 + (call & 0xC0000000U) == 0x40000000U &&
11720 + mov2 == 0x9E100001U)
11721 + {
11722 + unsigned long addr;
11723 +
11724 + regs->u_regs[UREG_G1] = regs->u_regs[UREG_RETPC];
11725 + addr = regs->tpc + 4 + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
11726 +
11727 + if (test_thread_flag(TIF_32BIT))
11728 + addr &= 0xFFFFFFFFUL;
11729 +
11730 + regs->tpc = addr;
11731 + regs->tnpc = addr+4;
11732 + return 2;
11733 + }
11734 + } while (0);
11735 +
11736 + do { /* PaX: patched PLT emulation #5 */
11737 + unsigned int sethi, sethi1, sethi2, or1, or2, sllx, jmpl, nop;
11738 +
11739 + err = get_user(sethi, (unsigned int *)regs->tpc);
11740 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
11741 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
11742 + err |= get_user(or1, (unsigned int *)(regs->tpc+12));
11743 + err |= get_user(or2, (unsigned int *)(regs->tpc+16));
11744 + err |= get_user(sllx, (unsigned int *)(regs->tpc+20));
11745 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+24));
11746 + err |= get_user(nop, (unsigned int *)(regs->tpc+28));
11747 +
11748 + if (err)
11749 + break;
11750 +
11751 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11752 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
11753 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11754 + (or1 & 0xFFFFE000U) == 0x82106000U &&
11755 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
11756 + sllx == 0x83287020U &&
11757 + jmpl == 0x81C04005U &&
11758 + nop == 0x01000000U)
11759 + {
11760 + unsigned long addr;
11761 +
11762 + regs->u_regs[UREG_G1] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
11763 + regs->u_regs[UREG_G1] <<= 32;
11764 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
11765 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
11766 + regs->tpc = addr;
11767 + regs->tnpc = addr+4;
11768 + return 2;
11769 + }
11770 + } while (0);
11771 +
11772 + do { /* PaX: patched PLT emulation #6 */
11773 + unsigned int sethi, sethi1, sethi2, sllx, or, jmpl, nop;
11774 +
11775 + err = get_user(sethi, (unsigned int *)regs->tpc);
11776 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
11777 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
11778 + err |= get_user(sllx, (unsigned int *)(regs->tpc+12));
11779 + err |= get_user(or, (unsigned int *)(regs->tpc+16));
11780 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+20));
11781 + err |= get_user(nop, (unsigned int *)(regs->tpc+24));
11782 +
11783 + if (err)
11784 + break;
11785 +
11786 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11787 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
11788 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11789 + sllx == 0x83287020U &&
11790 + (or & 0xFFFFE000U) == 0x8A116000U &&
11791 + jmpl == 0x81C04005U &&
11792 + nop == 0x01000000U)
11793 + {
11794 + unsigned long addr;
11795 +
11796 + regs->u_regs[UREG_G1] = (sethi1 & 0x003FFFFFU) << 10;
11797 + regs->u_regs[UREG_G1] <<= 32;
11798 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or & 0x3FFU);
11799 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
11800 + regs->tpc = addr;
11801 + regs->tnpc = addr+4;
11802 + return 2;
11803 + }
11804 + } while (0);
11805 +
11806 + do { /* PaX: unpatched PLT emulation step 1 */
11807 + unsigned int sethi, ba, nop;
11808 +
11809 + err = get_user(sethi, (unsigned int *)regs->tpc);
11810 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
11811 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11812 +
11813 + if (err)
11814 + break;
11815 +
11816 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11817 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11818 + nop == 0x01000000U)
11819 + {
11820 + unsigned long addr;
11821 + unsigned int save, call;
11822 + unsigned int sethi1, sethi2, or1, or2, sllx, add, jmpl;
11823 +
11824 + if ((ba & 0xFFC00000U) == 0x30800000U)
11825 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11826 + else
11827 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11828 +
11829 + if (test_thread_flag(TIF_32BIT))
11830 + addr &= 0xFFFFFFFFUL;
11831 +
11832 + err = get_user(save, (unsigned int *)addr);
11833 + err |= get_user(call, (unsigned int *)(addr+4));
11834 + err |= get_user(nop, (unsigned int *)(addr+8));
11835 + if (err)
11836 + break;
11837 +
11838 +#ifdef CONFIG_PAX_DLRESOLVE
11839 + if (save == 0x9DE3BFA8U &&
11840 + (call & 0xC0000000U) == 0x40000000U &&
11841 + nop == 0x01000000U)
11842 + {
11843 + struct vm_area_struct *vma;
11844 + unsigned long call_dl_resolve;
11845 +
11846 + down_read(&current->mm->mmap_sem);
11847 + call_dl_resolve = current->mm->call_dl_resolve;
11848 + up_read(&current->mm->mmap_sem);
11849 + if (likely(call_dl_resolve))
11850 + goto emulate;
11851 +
11852 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11853 +
11854 + down_write(&current->mm->mmap_sem);
11855 + if (current->mm->call_dl_resolve) {
11856 + call_dl_resolve = current->mm->call_dl_resolve;
11857 + up_write(&current->mm->mmap_sem);
11858 + if (vma)
11859 + kmem_cache_free(vm_area_cachep, vma);
11860 + goto emulate;
11861 + }
11862 +
11863 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11864 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11865 + up_write(&current->mm->mmap_sem);
11866 + if (vma)
11867 + kmem_cache_free(vm_area_cachep, vma);
11868 + return 1;
11869 + }
11870 +
11871 + if (pax_insert_vma(vma, call_dl_resolve)) {
11872 + up_write(&current->mm->mmap_sem);
11873 + kmem_cache_free(vm_area_cachep, vma);
11874 + return 1;
11875 + }
11876 +
11877 + current->mm->call_dl_resolve = call_dl_resolve;
11878 + up_write(&current->mm->mmap_sem);
11879 +
11880 +emulate:
11881 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11882 + regs->tpc = call_dl_resolve;
11883 + regs->tnpc = addr+4;
11884 + return 3;
11885 + }
11886 +#endif
11887 +
11888 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11889 + if ((save & 0xFFC00000U) == 0x05000000U &&
11890 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11891 + nop == 0x01000000U)
11892 + {
11893 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11894 + regs->u_regs[UREG_G2] = addr + 4;
11895 + addr = (save & 0x003FFFFFU) << 10;
11896 + addr += (((call | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11897 +
11898 + if (test_thread_flag(TIF_32BIT))
11899 + addr &= 0xFFFFFFFFUL;
11900 +
11901 + regs->tpc = addr;
11902 + regs->tnpc = addr+4;
11903 + return 3;
11904 + }
11905 +
11906 + /* PaX: 64-bit PLT stub */
11907 + err = get_user(sethi1, (unsigned int *)addr);
11908 + err |= get_user(sethi2, (unsigned int *)(addr+4));
11909 + err |= get_user(or1, (unsigned int *)(addr+8));
11910 + err |= get_user(or2, (unsigned int *)(addr+12));
11911 + err |= get_user(sllx, (unsigned int *)(addr+16));
11912 + err |= get_user(add, (unsigned int *)(addr+20));
11913 + err |= get_user(jmpl, (unsigned int *)(addr+24));
11914 + err |= get_user(nop, (unsigned int *)(addr+28));
11915 + if (err)
11916 + break;
11917 +
11918 + if ((sethi1 & 0xFFC00000U) == 0x09000000U &&
11919 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11920 + (or1 & 0xFFFFE000U) == 0x88112000U &&
11921 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
11922 + sllx == 0x89293020U &&
11923 + add == 0x8A010005U &&
11924 + jmpl == 0x89C14000U &&
11925 + nop == 0x01000000U)
11926 + {
11927 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11928 + regs->u_regs[UREG_G4] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
11929 + regs->u_regs[UREG_G4] <<= 32;
11930 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
11931 + regs->u_regs[UREG_G5] += regs->u_regs[UREG_G4];
11932 + regs->u_regs[UREG_G4] = addr + 24;
11933 + addr = regs->u_regs[UREG_G5];
11934 + regs->tpc = addr;
11935 + regs->tnpc = addr+4;
11936 + return 3;
11937 + }
11938 + }
11939 + } while (0);
11940 +
11941 +#ifdef CONFIG_PAX_DLRESOLVE
11942 + do { /* PaX: unpatched PLT emulation step 2 */
11943 + unsigned int save, call, nop;
11944 +
11945 + err = get_user(save, (unsigned int *)(regs->tpc-4));
11946 + err |= get_user(call, (unsigned int *)regs->tpc);
11947 + err |= get_user(nop, (unsigned int *)(regs->tpc+4));
11948 + if (err)
11949 + break;
11950 +
11951 + if (save == 0x9DE3BFA8U &&
11952 + (call & 0xC0000000U) == 0x40000000U &&
11953 + nop == 0x01000000U)
11954 + {
11955 + unsigned long dl_resolve = regs->tpc + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
11956 +
11957 + if (test_thread_flag(TIF_32BIT))
11958 + dl_resolve &= 0xFFFFFFFFUL;
11959 +
11960 + regs->u_regs[UREG_RETPC] = regs->tpc;
11961 + regs->tpc = dl_resolve;
11962 + regs->tnpc = dl_resolve+4;
11963 + return 3;
11964 + }
11965 + } while (0);
11966 +#endif
11967 +
11968 + do { /* PaX: patched PLT emulation #7, must be AFTER the unpatched PLT emulation */
11969 + unsigned int sethi, ba, nop;
11970 +
11971 + err = get_user(sethi, (unsigned int *)regs->tpc);
11972 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
11973 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11974 +
11975 + if (err)
11976 + break;
11977 +
11978 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11979 + (ba & 0xFFF00000U) == 0x30600000U &&
11980 + nop == 0x01000000U)
11981 + {
11982 + unsigned long addr;
11983 +
11984 + addr = (sethi & 0x003FFFFFU) << 10;
11985 + regs->u_regs[UREG_G1] = addr;
11986 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11987 +
11988 + if (test_thread_flag(TIF_32BIT))
11989 + addr &= 0xFFFFFFFFUL;
11990 +
11991 + regs->tpc = addr;
11992 + regs->tnpc = addr+4;
11993 + return 2;
11994 + }
11995 + } while (0);
11996 +
11997 +#endif
11998 +
11999 + return 1;
12000 +}
12001 +
12002 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
12003 +{
12004 + unsigned long i;
12005 +
12006 + printk(KERN_ERR "PAX: bytes at PC: ");
12007 + for (i = 0; i < 8; i++) {
12008 + unsigned int c;
12009 + if (get_user(c, (unsigned int *)pc+i))
12010 + printk(KERN_CONT "???????? ");
12011 + else
12012 + printk(KERN_CONT "%08x ", c);
12013 + }
12014 + printk("\n");
12015 +}
12016 +#endif
12017 +
12018 asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
12019 {
12020 enum ctx_state prev_state = exception_enter();
12021 @@ -353,6 +816,29 @@ retry:
12022 if (!vma)
12023 goto bad_area;
12024
12025 +#ifdef CONFIG_PAX_PAGEEXEC
12026 + /* PaX: detect ITLB misses on non-exec pages */
12027 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && vma->vm_start <= address &&
12028 + !(vma->vm_flags & VM_EXEC) && (fault_code & FAULT_CODE_ITLB))
12029 + {
12030 + if (address != regs->tpc)
12031 + goto good_area;
12032 +
12033 + up_read(&mm->mmap_sem);
12034 + switch (pax_handle_fetch_fault(regs)) {
12035 +
12036 +#ifdef CONFIG_PAX_EMUPLT
12037 + case 2:
12038 + case 3:
12039 + return;
12040 +#endif
12041 +
12042 + }
12043 + pax_report_fault(regs, (void *)regs->tpc, (void *)(regs->u_regs[UREG_FP] + STACK_BIAS));
12044 + do_group_exit(SIGKILL);
12045 + }
12046 +#endif
12047 +
12048 /* Pure DTLB misses do not tell us whether the fault causing
12049 * load/store/atomic was a write or not, it only says that there
12050 * was no match. So in such a case we (carefully) read the
12051 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
12052 index 131eaf4..285ea31 100644
12053 --- a/arch/sparc/mm/hugetlbpage.c
12054 +++ b/arch/sparc/mm/hugetlbpage.c
12055 @@ -25,8 +25,10 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12056 unsigned long addr,
12057 unsigned long len,
12058 unsigned long pgoff,
12059 - unsigned long flags)
12060 + unsigned long flags,
12061 + unsigned long offset)
12062 {
12063 + struct mm_struct *mm = current->mm;
12064 unsigned long task_size = TASK_SIZE;
12065 struct vm_unmapped_area_info info;
12066
12067 @@ -35,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12068
12069 info.flags = 0;
12070 info.length = len;
12071 - info.low_limit = TASK_UNMAPPED_BASE;
12072 + info.low_limit = mm->mmap_base;
12073 info.high_limit = min(task_size, VA_EXCLUDE_START);
12074 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12075 info.align_offset = 0;
12076 + info.threadstack_offset = offset;
12077 addr = vm_unmapped_area(&info);
12078
12079 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
12080 VM_BUG_ON(addr != -ENOMEM);
12081 info.low_limit = VA_EXCLUDE_END;
12082 +
12083 +#ifdef CONFIG_PAX_RANDMMAP
12084 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12085 + info.low_limit += mm->delta_mmap;
12086 +#endif
12087 +
12088 info.high_limit = task_size;
12089 addr = vm_unmapped_area(&info);
12090 }
12091 @@ -55,7 +64,8 @@ static unsigned long
12092 hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12093 const unsigned long len,
12094 const unsigned long pgoff,
12095 - const unsigned long flags)
12096 + const unsigned long flags,
12097 + const unsigned long offset)
12098 {
12099 struct mm_struct *mm = current->mm;
12100 unsigned long addr = addr0;
12101 @@ -70,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12102 info.high_limit = mm->mmap_base;
12103 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12104 info.align_offset = 0;
12105 + info.threadstack_offset = offset;
12106 addr = vm_unmapped_area(&info);
12107
12108 /*
12109 @@ -82,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12110 VM_BUG_ON(addr != -ENOMEM);
12111 info.flags = 0;
12112 info.low_limit = TASK_UNMAPPED_BASE;
12113 +
12114 +#ifdef CONFIG_PAX_RANDMMAP
12115 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12116 + info.low_limit += mm->delta_mmap;
12117 +#endif
12118 +
12119 info.high_limit = STACK_TOP32;
12120 addr = vm_unmapped_area(&info);
12121 }
12122 @@ -96,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12123 struct mm_struct *mm = current->mm;
12124 struct vm_area_struct *vma;
12125 unsigned long task_size = TASK_SIZE;
12126 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
12127
12128 if (test_thread_flag(TIF_32BIT))
12129 task_size = STACK_TOP32;
12130 @@ -111,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12131 return addr;
12132 }
12133
12134 +#ifdef CONFIG_PAX_RANDMMAP
12135 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
12136 +#endif
12137 +
12138 if (addr) {
12139 addr = ALIGN(addr, HPAGE_SIZE);
12140 vma = find_vma(mm, addr);
12141 - if (task_size - len >= addr &&
12142 - (!vma || addr + len <= vma->vm_start))
12143 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
12144 return addr;
12145 }
12146 if (mm->get_unmapped_area == arch_get_unmapped_area)
12147 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
12148 - pgoff, flags);
12149 + pgoff, flags, offset);
12150 else
12151 return hugetlb_get_unmapped_area_topdown(file, addr, len,
12152 - pgoff, flags);
12153 + pgoff, flags, offset);
12154 }
12155
12156 pte_t *huge_pte_alloc(struct mm_struct *mm,
12157 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
12158 index 4ac88b7..bac6cb2 100644
12159 --- a/arch/sparc/mm/init_64.c
12160 +++ b/arch/sparc/mm/init_64.c
12161 @@ -187,9 +187,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
12162 int num_kernel_image_mappings;
12163
12164 #ifdef CONFIG_DEBUG_DCFLUSH
12165 -atomic_t dcpage_flushes = ATOMIC_INIT(0);
12166 +atomic_unchecked_t dcpage_flushes = ATOMIC_INIT(0);
12167 #ifdef CONFIG_SMP
12168 -atomic_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12169 +atomic_unchecked_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12170 #endif
12171 #endif
12172
12173 @@ -197,7 +197,7 @@ inline void flush_dcache_page_impl(struct page *page)
12174 {
12175 BUG_ON(tlb_type == hypervisor);
12176 #ifdef CONFIG_DEBUG_DCFLUSH
12177 - atomic_inc(&dcpage_flushes);
12178 + atomic_inc_unchecked(&dcpage_flushes);
12179 #endif
12180
12181 #ifdef DCACHE_ALIASING_POSSIBLE
12182 @@ -469,10 +469,10 @@ void mmu_info(struct seq_file *m)
12183
12184 #ifdef CONFIG_DEBUG_DCFLUSH
12185 seq_printf(m, "DCPageFlushes\t: %d\n",
12186 - atomic_read(&dcpage_flushes));
12187 + atomic_read_unchecked(&dcpage_flushes));
12188 #ifdef CONFIG_SMP
12189 seq_printf(m, "DCPageFlushesXC\t: %d\n",
12190 - atomic_read(&dcpage_flushes_xcall));
12191 + atomic_read_unchecked(&dcpage_flushes_xcall));
12192 #endif /* CONFIG_SMP */
12193 #endif /* CONFIG_DEBUG_DCFLUSH */
12194 }
12195 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
12196 index 106c21b..185bf0f 100644
12197 --- a/arch/tile/Kconfig
12198 +++ b/arch/tile/Kconfig
12199 @@ -206,6 +206,7 @@ source "kernel/Kconfig.hz"
12200 config KEXEC
12201 bool "kexec system call"
12202 select KEXEC_CORE
12203 + depends on !GRKERNSEC_KMEM
12204 ---help---
12205 kexec is a system call that implements the ability to shutdown your
12206 current kernel, and to start another kernel. It is like a reboot
12207 diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
12208 index 096a56d..bffafc0 100644
12209 --- a/arch/tile/include/asm/atomic_64.h
12210 +++ b/arch/tile/include/asm/atomic_64.h
12211 @@ -145,6 +145,16 @@ static inline void atomic64_xor(long i, atomic64_t *v)
12212
12213 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
12214
12215 +#define atomic64_read_unchecked(v) atomic64_read(v)
12216 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
12217 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
12218 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
12219 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
12220 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
12221 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
12222 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
12223 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
12224 +
12225 #endif /* !__ASSEMBLY__ */
12226
12227 #endif /* _ASM_TILE_ATOMIC_64_H */
12228 diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
12229 index 6160761..00cac88 100644
12230 --- a/arch/tile/include/asm/cache.h
12231 +++ b/arch/tile/include/asm/cache.h
12232 @@ -15,11 +15,12 @@
12233 #ifndef _ASM_TILE_CACHE_H
12234 #define _ASM_TILE_CACHE_H
12235
12236 +#include <linux/const.h>
12237 #include <arch/chip.h>
12238
12239 /* bytes per L1 data cache line */
12240 #define L1_CACHE_SHIFT CHIP_L1D_LOG_LINE_SIZE()
12241 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12242 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12243
12244 /* bytes per L2 cache line */
12245 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
12246 diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
12247 index 0a9c4265..bfb62d1 100644
12248 --- a/arch/tile/include/asm/uaccess.h
12249 +++ b/arch/tile/include/asm/uaccess.h
12250 @@ -429,9 +429,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
12251 const void __user *from,
12252 unsigned long n)
12253 {
12254 - int sz = __compiletime_object_size(to);
12255 + size_t sz = __compiletime_object_size(to);
12256
12257 - if (likely(sz == -1 || sz >= n))
12258 + if (likely(sz == (size_t)-1 || sz >= n))
12259 n = _copy_from_user(to, from, n);
12260 else
12261 copy_from_user_overflow();
12262 diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c
12263 index c034dc3..cf1cc96 100644
12264 --- a/arch/tile/mm/hugetlbpage.c
12265 +++ b/arch/tile/mm/hugetlbpage.c
12266 @@ -174,6 +174,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
12267 info.high_limit = TASK_SIZE;
12268 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12269 info.align_offset = 0;
12270 + info.threadstack_offset = 0;
12271 return vm_unmapped_area(&info);
12272 }
12273
12274 @@ -191,6 +192,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
12275 info.high_limit = current->mm->mmap_base;
12276 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12277 info.align_offset = 0;
12278 + info.threadstack_offset = 0;
12279 addr = vm_unmapped_area(&info);
12280
12281 /*
12282 diff --git a/arch/um/Makefile b/arch/um/Makefile
12283 index e3abe6f..ae224ef 100644
12284 --- a/arch/um/Makefile
12285 +++ b/arch/um/Makefile
12286 @@ -73,6 +73,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -I%,,$(KBUILD_CFLAGS))) \
12287 -D_FILE_OFFSET_BITS=64 -idirafter $(srctree)/include \
12288 -idirafter $(obj)/include -D__KERNEL__ -D__UM_HOST__
12289
12290 +ifdef CONSTIFY_PLUGIN
12291 +USER_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12292 +endif
12293 +
12294 #This will adjust *FLAGS accordingly to the platform.
12295 include $(ARCH_DIR)/Makefile-os-$(OS)
12296
12297 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
12298 index 19e1bdd..3665b77 100644
12299 --- a/arch/um/include/asm/cache.h
12300 +++ b/arch/um/include/asm/cache.h
12301 @@ -1,6 +1,7 @@
12302 #ifndef __UM_CACHE_H
12303 #define __UM_CACHE_H
12304
12305 +#include <linux/const.h>
12306
12307 #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
12308 # define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
12309 @@ -12,6 +13,6 @@
12310 # define L1_CACHE_SHIFT 5
12311 #endif
12312
12313 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12314 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12315
12316 #endif
12317 diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h
12318 index 2e0a6b1..a64d0f5 100644
12319 --- a/arch/um/include/asm/kmap_types.h
12320 +++ b/arch/um/include/asm/kmap_types.h
12321 @@ -8,6 +8,6 @@
12322
12323 /* No more #include "asm/arch/kmap_types.h" ! */
12324
12325 -#define KM_TYPE_NR 14
12326 +#define KM_TYPE_NR 15
12327
12328 #endif
12329 diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h
12330 index 71c5d13..4c7b9f1 100644
12331 --- a/arch/um/include/asm/page.h
12332 +++ b/arch/um/include/asm/page.h
12333 @@ -14,6 +14,9 @@
12334 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
12335 #define PAGE_MASK (~(PAGE_SIZE-1))
12336
12337 +#define ktla_ktva(addr) (addr)
12338 +#define ktva_ktla(addr) (addr)
12339 +
12340 #ifndef __ASSEMBLY__
12341
12342 struct page;
12343 diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h
12344 index 2b4274e..754fe06 100644
12345 --- a/arch/um/include/asm/pgtable-3level.h
12346 +++ b/arch/um/include/asm/pgtable-3level.h
12347 @@ -58,6 +58,7 @@
12348 #define pud_present(x) (pud_val(x) & _PAGE_PRESENT)
12349 #define pud_populate(mm, pud, pmd) \
12350 set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
12351 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
12352
12353 #ifdef CONFIG_64BIT
12354 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
12355 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
12356 index a6d9226..d243e1e 100644
12357 --- a/arch/um/kernel/process.c
12358 +++ b/arch/um/kernel/process.c
12359 @@ -347,22 +347,6 @@ int singlestepping(void * t)
12360 return 2;
12361 }
12362
12363 -/*
12364 - * Only x86 and x86_64 have an arch_align_stack().
12365 - * All other arches have "#define arch_align_stack(x) (x)"
12366 - * in their asm/exec.h
12367 - * As this is included in UML from asm-um/system-generic.h,
12368 - * we can use it to behave as the subarch does.
12369 - */
12370 -#ifndef arch_align_stack
12371 -unsigned long arch_align_stack(unsigned long sp)
12372 -{
12373 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
12374 - sp -= get_random_int() % 8192;
12375 - return sp & ~0xf;
12376 -}
12377 -#endif
12378 -
12379 unsigned long get_wchan(struct task_struct *p)
12380 {
12381 unsigned long stack_page, sp, ip;
12382 diff --git a/arch/unicore32/include/asm/cache.h b/arch/unicore32/include/asm/cache.h
12383 index ad8f795..2c7eec6 100644
12384 --- a/arch/unicore32/include/asm/cache.h
12385 +++ b/arch/unicore32/include/asm/cache.h
12386 @@ -12,8 +12,10 @@
12387 #ifndef __UNICORE_CACHE_H__
12388 #define __UNICORE_CACHE_H__
12389
12390 -#define L1_CACHE_SHIFT (5)
12391 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12392 +#include <linux/const.h>
12393 +
12394 +#define L1_CACHE_SHIFT 5
12395 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12396
12397 /*
12398 * Memory returned by kmalloc() may be used for DMA, so we must make
12399 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
12400 index 96d058a..b581500 100644
12401 --- a/arch/x86/Kconfig
12402 +++ b/arch/x86/Kconfig
12403 @@ -36,14 +36,13 @@ config X86
12404 select ARCH_MIGHT_HAVE_PC_SERIO
12405 select ARCH_SUPPORTS_ATOMIC_RMW
12406 select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
12407 - select ARCH_SUPPORTS_INT128 if X86_64
12408 + select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
12409 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
12410 select ARCH_USE_BUILTIN_BSWAP
12411 select ARCH_USE_CMPXCHG_LOCKREF if X86_64
12412 select ARCH_USE_QUEUED_RWLOCKS
12413 select ARCH_USE_QUEUED_SPINLOCKS
12414 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if SMP
12415 - select ARCH_WANTS_DYNAMIC_TASK_STRUCT
12416 select ARCH_WANT_FRAME_POINTERS
12417 select ARCH_WANT_IPC_PARSE_VERSION if X86_32
12418 select ARCH_WANT_OPTIONAL_GPIOLIB
12419 @@ -87,7 +86,7 @@ config X86
12420 select HAVE_ARCH_TRACEHOOK
12421 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
12422 select HAVE_BPF_JIT if X86_64
12423 - select HAVE_CC_STACKPROTECTOR
12424 + select HAVE_CC_STACKPROTECTOR if X86_64 || !PAX_MEMORY_UDEREF
12425 select HAVE_CMPXCHG_DOUBLE
12426 select HAVE_CMPXCHG_LOCAL
12427 select HAVE_CONTEXT_TRACKING if X86_64
12428 @@ -276,7 +275,7 @@ config X86_64_SMP
12429
12430 config X86_32_LAZY_GS
12431 def_bool y
12432 - depends on X86_32 && !CC_STACKPROTECTOR
12433 + depends on X86_32 && !CC_STACKPROTECTOR && !PAX_MEMORY_UDEREF
12434
12435 config ARCH_HWEIGHT_CFLAGS
12436 string
12437 @@ -648,6 +647,7 @@ config SCHED_OMIT_FRAME_POINTER
12438
12439 menuconfig HYPERVISOR_GUEST
12440 bool "Linux guest support"
12441 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_GUEST || (GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_XEN)
12442 ---help---
12443 Say Y here to enable options for running Linux under various hyper-
12444 visors. This option enables basic hypervisor detection and platform
12445 @@ -1039,6 +1039,7 @@ config VM86
12446
12447 config X86_16BIT
12448 bool "Enable support for 16-bit segments" if EXPERT
12449 + depends on !GRKERNSEC
12450 default y
12451 depends on MODIFY_LDT_SYSCALL
12452 ---help---
12453 @@ -1208,6 +1209,7 @@ choice
12454
12455 config NOHIGHMEM
12456 bool "off"
12457 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12458 ---help---
12459 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
12460 However, the address space of 32-bit x86 processors is only 4
12461 @@ -1244,6 +1246,7 @@ config NOHIGHMEM
12462
12463 config HIGHMEM4G
12464 bool "4GB"
12465 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12466 ---help---
12467 Select this if you have a 32-bit processor and between 1 and 4
12468 gigabytes of physical RAM.
12469 @@ -1296,7 +1299,7 @@ config PAGE_OFFSET
12470 hex
12471 default 0xB0000000 if VMSPLIT_3G_OPT
12472 default 0x80000000 if VMSPLIT_2G
12473 - default 0x78000000 if VMSPLIT_2G_OPT
12474 + default 0x70000000 if VMSPLIT_2G_OPT
12475 default 0x40000000 if VMSPLIT_1G
12476 default 0xC0000000
12477 depends on X86_32
12478 @@ -1317,7 +1320,6 @@ config X86_PAE
12479
12480 config ARCH_PHYS_ADDR_T_64BIT
12481 def_bool y
12482 - depends on X86_64 || X86_PAE
12483
12484 config ARCH_DMA_ADDR_T_64BIT
12485 def_bool y
12486 @@ -1757,6 +1759,7 @@ source kernel/Kconfig.hz
12487 config KEXEC
12488 bool "kexec system call"
12489 select KEXEC_CORE
12490 + depends on !GRKERNSEC_KMEM
12491 ---help---
12492 kexec is a system call that implements the ability to shutdown your
12493 current kernel, and to start another kernel. It is like a reboot
12494 @@ -1939,7 +1942,9 @@ config X86_NEED_RELOCS
12495
12496 config PHYSICAL_ALIGN
12497 hex "Alignment value to which kernel should be aligned"
12498 - default "0x200000"
12499 + default "0x1000000"
12500 + range 0x200000 0x1000000 if PAX_KERNEXEC && X86_PAE
12501 + range 0x400000 0x1000000 if PAX_KERNEXEC && !X86_PAE
12502 range 0x2000 0x1000000 if X86_32
12503 range 0x200000 0x1000000 if X86_64
12504 ---help---
12505 @@ -2022,6 +2027,7 @@ config COMPAT_VDSO
12506 def_bool n
12507 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
12508 depends on X86_32 || IA32_EMULATION
12509 + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
12510 ---help---
12511 Certain buggy versions of glibc will crash if they are
12512 presented with a 32-bit vDSO that is not mapped at the address
12513 @@ -2102,6 +2108,22 @@ config MODIFY_LDT_SYSCALL
12514
12515 Saying 'N' here may make sense for embedded or server kernels.
12516
12517 +config DEFAULT_MODIFY_LDT_SYSCALL
12518 + bool "Allow userspace to modify the LDT by default"
12519 + default y
12520 +
12521 + ---help---
12522 + Modifying the LDT (Local Descriptor Table) may be needed to run a
12523 + 16-bit or segmented code such as Dosemu or Wine. This is done via
12524 + a system call which is not needed to run portable applications,
12525 + and which can sometimes be abused to exploit some weaknesses of
12526 + the architecture, opening new vulnerabilities.
12527 +
12528 + For this reason this option allows one to enable or disable the
12529 + feature at runtime. It is recommended to say 'N' here to leave
12530 + the system protected, and to enable it at runtime only if needed
12531 + by setting the sys.kernel.modify_ldt sysctl.
12532 +
12533 source "kernel/livepatch/Kconfig"
12534
12535 endmenu
12536 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
12537 index 6983314..54ad7e8 100644
12538 --- a/arch/x86/Kconfig.cpu
12539 +++ b/arch/x86/Kconfig.cpu
12540 @@ -319,7 +319,7 @@ config X86_PPRO_FENCE
12541
12542 config X86_F00F_BUG
12543 def_bool y
12544 - depends on M586MMX || M586TSC || M586 || M486
12545 + depends on (M586MMX || M586TSC || M586 || M486) && !PAX_KERNEXEC
12546
12547 config X86_INVD_BUG
12548 def_bool y
12549 @@ -327,7 +327,7 @@ config X86_INVD_BUG
12550
12551 config X86_ALIGNMENT_16
12552 def_bool y
12553 - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12554 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK8 || MK7 || MK6 || MCORE2 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12555
12556 config X86_INTEL_USERCOPY
12557 def_bool y
12558 @@ -369,7 +369,7 @@ config X86_CMPXCHG64
12559 # generates cmov.
12560 config X86_CMOV
12561 def_bool y
12562 - depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12563 + depends on (MK8 || MK7 || MCORE2 || MPSC || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12564
12565 config X86_MINIMUM_CPU_FAMILY
12566 int
12567 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
12568 index d8c0d32..28e3117 100644
12569 --- a/arch/x86/Kconfig.debug
12570 +++ b/arch/x86/Kconfig.debug
12571 @@ -69,6 +69,7 @@ config X86_PTDUMP
12572 bool "Export kernel pagetable layout to userspace via debugfs"
12573 depends on DEBUG_KERNEL
12574 select DEBUG_FS
12575 + depends on !GRKERNSEC_KMEM
12576 ---help---
12577 Say Y here if you want to show the kernel pagetable layout in a
12578 debugfs file. This information is only useful for kernel developers
12579 @@ -89,7 +90,7 @@ config EFI_PGT_DUMP
12580 config DEBUG_RODATA
12581 bool "Write protect kernel read-only data structures"
12582 default y
12583 - depends on DEBUG_KERNEL
12584 + depends on DEBUG_KERNEL && BROKEN
12585 ---help---
12586 Mark the kernel read-only data as write-protected in the pagetables,
12587 in order to catch accidental (and incorrect) writes to such const
12588 @@ -107,7 +108,7 @@ config DEBUG_RODATA_TEST
12589
12590 config DEBUG_SET_MODULE_RONX
12591 bool "Set loadable kernel module data as NX and text as RO"
12592 - depends on MODULES
12593 + depends on MODULES && BROKEN
12594 ---help---
12595 This option helps catch unintended modifications to loadable
12596 kernel module's text and read-only data. It also prevents execution
12597 @@ -359,6 +360,7 @@ config X86_DEBUG_FPU
12598 config PUNIT_ATOM_DEBUG
12599 tristate "ATOM Punit debug driver"
12600 select DEBUG_FS
12601 + depends on !GRKERNSEC_KMEM
12602 select IOSF_MBI
12603 ---help---
12604 This is a debug driver, which gets the power states
12605 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
12606 index 747860c..0374d1e 100644
12607 --- a/arch/x86/Makefile
12608 +++ b/arch/x86/Makefile
12609 @@ -75,9 +75,6 @@ ifeq ($(CONFIG_X86_32),y)
12610 # CPU-specific tuning. Anything which can be shared with UML should go here.
12611 include arch/x86/Makefile_32.cpu
12612 KBUILD_CFLAGS += $(cflags-y)
12613 -
12614 - # temporary until string.h is fixed
12615 - KBUILD_CFLAGS += -ffreestanding
12616 else
12617 BITS := 64
12618 UTS_MACHINE := x86_64
12619 @@ -126,6 +123,9 @@ else
12620 KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args)
12621 endif
12622
12623 +# temporary until string.h is fixed
12624 +KBUILD_CFLAGS += -ffreestanding
12625 +
12626 # Make sure compiler does not have buggy stack-protector support.
12627 ifdef CONFIG_CC_STACKPROTECTOR
12628 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
12629 @@ -191,6 +191,7 @@ archheaders:
12630 $(Q)$(MAKE) $(build)=arch/x86/entry/syscalls all
12631
12632 archprepare:
12633 + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
12634 ifeq ($(CONFIG_KEXEC_FILE),y)
12635 $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c
12636 endif
12637 @@ -276,3 +277,9 @@ define archhelp
12638 echo ' FDARGS="..." arguments for the booted kernel'
12639 echo ' FDINITRD=file initrd for the booted kernel'
12640 endef
12641 +
12642 +define OLD_LD
12643 +
12644 +*** ${VERSION}.${PATCHLEVEL} PaX kernels no longer build correctly with old versions of binutils.
12645 +*** Please upgrade your binutils to 2.18 or newer
12646 +endef
12647 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
12648 index 0d553e5..cecccf9 100644
12649 --- a/arch/x86/boot/Makefile
12650 +++ b/arch/x86/boot/Makefile
12651 @@ -58,6 +58,9 @@ clean-files += cpustr.h
12652 # ---------------------------------------------------------------------------
12653
12654 KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP
12655 +ifdef CONSTIFY_PLUGIN
12656 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12657 +endif
12658 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12659 GCOV_PROFILE := n
12660
12661 diff --git a/arch/x86/boot/bitops.h b/arch/x86/boot/bitops.h
12662 index 878e4b9..20537ab 100644
12663 --- a/arch/x86/boot/bitops.h
12664 +++ b/arch/x86/boot/bitops.h
12665 @@ -26,7 +26,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12666 u8 v;
12667 const u32 *p = (const u32 *)addr;
12668
12669 - asm("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12670 + asm volatile("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12671 return v;
12672 }
12673
12674 @@ -37,7 +37,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12675
12676 static inline void set_bit(int nr, void *addr)
12677 {
12678 - asm("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12679 + asm volatile("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12680 }
12681
12682 #endif /* BOOT_BITOPS_H */
12683 diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
12684 index 0033e96..b3179b9 100644
12685 --- a/arch/x86/boot/boot.h
12686 +++ b/arch/x86/boot/boot.h
12687 @@ -84,7 +84,7 @@ static inline void io_delay(void)
12688 static inline u16 ds(void)
12689 {
12690 u16 seg;
12691 - asm("movw %%ds,%0" : "=rm" (seg));
12692 + asm volatile("movw %%ds,%0" : "=rm" (seg));
12693 return seg;
12694 }
12695
12696 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
12697 index 0a291cd..9686efc 100644
12698 --- a/arch/x86/boot/compressed/Makefile
12699 +++ b/arch/x86/boot/compressed/Makefile
12700 @@ -30,6 +30,9 @@ KBUILD_CFLAGS += $(cflags-y)
12701 KBUILD_CFLAGS += -mno-mmx -mno-sse
12702 KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
12703 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
12704 +ifdef CONSTIFY_PLUGIN
12705 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12706 +endif
12707
12708 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12709 GCOV_PROFILE := n
12710 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
12711 index a53440e..c3dbf1e 100644
12712 --- a/arch/x86/boot/compressed/efi_stub_32.S
12713 +++ b/arch/x86/boot/compressed/efi_stub_32.S
12714 @@ -46,16 +46,13 @@ ENTRY(efi_call_phys)
12715 * parameter 2, ..., param n. To make things easy, we save the return
12716 * address of efi_call_phys in a global variable.
12717 */
12718 - popl %ecx
12719 - movl %ecx, saved_return_addr(%edx)
12720 - /* get the function pointer into ECX*/
12721 - popl %ecx
12722 - movl %ecx, efi_rt_function_ptr(%edx)
12723 + popl saved_return_addr(%edx)
12724 + popl efi_rt_function_ptr(%edx)
12725
12726 /*
12727 * 3. Call the physical function.
12728 */
12729 - call *%ecx
12730 + call *efi_rt_function_ptr(%edx)
12731
12732 /*
12733 * 4. Balance the stack. And because EAX contain the return value,
12734 @@ -67,15 +64,12 @@ ENTRY(efi_call_phys)
12735 1: popl %edx
12736 subl $1b, %edx
12737
12738 - movl efi_rt_function_ptr(%edx), %ecx
12739 - pushl %ecx
12740 + pushl efi_rt_function_ptr(%edx)
12741
12742 /*
12743 * 10. Push the saved return address onto the stack and return.
12744 */
12745 - movl saved_return_addr(%edx), %ecx
12746 - pushl %ecx
12747 - ret
12748 + jmpl *saved_return_addr(%edx)
12749 ENDPROC(efi_call_phys)
12750 .previous
12751
12752 diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S
12753 index 630384a..278e788 100644
12754 --- a/arch/x86/boot/compressed/efi_thunk_64.S
12755 +++ b/arch/x86/boot/compressed/efi_thunk_64.S
12756 @@ -189,8 +189,8 @@ efi_gdt64:
12757 .long 0 /* Filled out by user */
12758 .word 0
12759 .quad 0x0000000000000000 /* NULL descriptor */
12760 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
12761 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
12762 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
12763 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
12764 .quad 0x0080890000000000 /* TS descriptor */
12765 .quad 0x0000000000000000 /* TS continued */
12766 efi_gdt64_end:
12767 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
12768 index 8ef964d..fcfb8aa 100644
12769 --- a/arch/x86/boot/compressed/head_32.S
12770 +++ b/arch/x86/boot/compressed/head_32.S
12771 @@ -141,10 +141,10 @@ preferred_addr:
12772 addl %eax, %ebx
12773 notl %eax
12774 andl %eax, %ebx
12775 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
12776 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
12777 jge 1f
12778 #endif
12779 - movl $LOAD_PHYSICAL_ADDR, %ebx
12780 + movl $____LOAD_PHYSICAL_ADDR, %ebx
12781 1:
12782
12783 /* Target address to relocate to for decompression */
12784 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
12785 index b0c0d16..3b44ff8 100644
12786 --- a/arch/x86/boot/compressed/head_64.S
12787 +++ b/arch/x86/boot/compressed/head_64.S
12788 @@ -95,10 +95,10 @@ ENTRY(startup_32)
12789 addl %eax, %ebx
12790 notl %eax
12791 andl %eax, %ebx
12792 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
12793 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
12794 jge 1f
12795 #endif
12796 - movl $LOAD_PHYSICAL_ADDR, %ebx
12797 + movl $____LOAD_PHYSICAL_ADDR, %ebx
12798 1:
12799
12800 /* Target address to relocate to for decompression */
12801 @@ -323,10 +323,10 @@ preferred_addr:
12802 addq %rax, %rbp
12803 notq %rax
12804 andq %rax, %rbp
12805 - cmpq $LOAD_PHYSICAL_ADDR, %rbp
12806 + cmpq $____LOAD_PHYSICAL_ADDR, %rbp
12807 jge 1f
12808 #endif
12809 - movq $LOAD_PHYSICAL_ADDR, %rbp
12810 + movq $____LOAD_PHYSICAL_ADDR, %rbp
12811 1:
12812
12813 /* Target address to relocate to for decompression */
12814 @@ -435,8 +435,8 @@ gdt:
12815 .long gdt
12816 .word 0
12817 .quad 0x0000000000000000 /* NULL descriptor */
12818 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
12819 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
12820 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
12821 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
12822 .quad 0x0080890000000000 /* TS descriptor */
12823 .quad 0x0000000000000000 /* TS continued */
12824 gdt_end:
12825 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
12826 index 79dac17..1549446 100644
12827 --- a/arch/x86/boot/compressed/misc.c
12828 +++ b/arch/x86/boot/compressed/misc.c
12829 @@ -259,7 +259,7 @@ static void handle_relocations(void *output, unsigned long output_len)
12830 * Calculate the delta between where vmlinux was linked to load
12831 * and where it was actually loaded.
12832 */
12833 - delta = min_addr - LOAD_PHYSICAL_ADDR;
12834 + delta = min_addr - ____LOAD_PHYSICAL_ADDR;
12835 if (!delta) {
12836 debug_putstr("No relocation needed... ");
12837 return;
12838 @@ -341,7 +341,7 @@ static void parse_elf(void *output)
12839 Elf32_Ehdr ehdr;
12840 Elf32_Phdr *phdrs, *phdr;
12841 #endif
12842 - void *dest;
12843 + void *dest, *prev;
12844 int i;
12845
12846 memcpy(&ehdr, output, sizeof(ehdr));
12847 @@ -368,13 +368,16 @@ static void parse_elf(void *output)
12848 case PT_LOAD:
12849 #ifdef CONFIG_RELOCATABLE
12850 dest = output;
12851 - dest += (phdr->p_paddr - LOAD_PHYSICAL_ADDR);
12852 + dest += (phdr->p_paddr - ____LOAD_PHYSICAL_ADDR);
12853 #else
12854 dest = (void *)(phdr->p_paddr);
12855 #endif
12856 memcpy(dest,
12857 output + phdr->p_offset,
12858 phdr->p_filesz);
12859 + if (i)
12860 + memset(prev, 0xff, dest - prev);
12861 + prev = dest + phdr->p_filesz;
12862 break;
12863 default: /* Ignore other PT_* */ break;
12864 }
12865 @@ -443,7 +446,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
12866 error("Destination address too large");
12867 #endif
12868 #ifndef CONFIG_RELOCATABLE
12869 - if ((unsigned long)output != LOAD_PHYSICAL_ADDR)
12870 + if ((unsigned long)output != ____LOAD_PHYSICAL_ADDR)
12871 error("Wrong destination address");
12872 #endif
12873
12874 diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
12875 index 1fd7d57..0f7d096 100644
12876 --- a/arch/x86/boot/cpucheck.c
12877 +++ b/arch/x86/boot/cpucheck.c
12878 @@ -125,9 +125,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12879 u32 ecx = MSR_K7_HWCR;
12880 u32 eax, edx;
12881
12882 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12883 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12884 eax &= ~(1 << 15);
12885 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12886 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12887
12888 get_cpuflags(); /* Make sure it really did something */
12889 err = check_cpuflags();
12890 @@ -140,9 +140,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12891 u32 ecx = MSR_VIA_FCR;
12892 u32 eax, edx;
12893
12894 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12895 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12896 eax |= (1<<1)|(1<<7);
12897 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12898 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12899
12900 set_bit(X86_FEATURE_CX8, cpu.flags);
12901 err = check_cpuflags();
12902 @@ -153,12 +153,12 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12903 u32 eax, edx;
12904 u32 level = 1;
12905
12906 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12907 - asm("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
12908 - asm("cpuid"
12909 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12910 + asm volatile("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
12911 + asm volatile("cpuid"
12912 : "+a" (level), "=d" (cpu.flags[0])
12913 : : "ecx", "ebx");
12914 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12915 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12916
12917 err = check_cpuflags();
12918 } else if (err == 0x01 &&
12919 diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
12920 index 2d6b309..65defa1 100644
12921 --- a/arch/x86/boot/header.S
12922 +++ b/arch/x86/boot/header.S
12923 @@ -438,10 +438,14 @@ setup_data: .quad 0 # 64-bit physical pointer to
12924 # single linked list of
12925 # struct setup_data
12926
12927 -pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr
12928 +pref_address: .quad ____LOAD_PHYSICAL_ADDR # preferred load addr
12929
12930 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
12931 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
12932 +#define VO_INIT_SIZE (VO__end - VO__text - __PAGE_OFFSET - ____LOAD_PHYSICAL_ADDR)
12933 +#else
12934 #define VO_INIT_SIZE (VO__end - VO__text)
12935 +#endif
12936 #if ZO_INIT_SIZE > VO_INIT_SIZE
12937 #define INIT_SIZE ZO_INIT_SIZE
12938 #else
12939 diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
12940 index db75d07..8e6d0af 100644
12941 --- a/arch/x86/boot/memory.c
12942 +++ b/arch/x86/boot/memory.c
12943 @@ -19,7 +19,7 @@
12944
12945 static int detect_memory_e820(void)
12946 {
12947 - int count = 0;
12948 + unsigned int count = 0;
12949 struct biosregs ireg, oreg;
12950 struct e820entry *desc = boot_params.e820_map;
12951 static struct e820entry buf; /* static so it is zeroed */
12952 diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
12953 index ba3e100..6501b8f 100644
12954 --- a/arch/x86/boot/video-vesa.c
12955 +++ b/arch/x86/boot/video-vesa.c
12956 @@ -201,6 +201,7 @@ static void vesa_store_pm_info(void)
12957
12958 boot_params.screen_info.vesapm_seg = oreg.es;
12959 boot_params.screen_info.vesapm_off = oreg.di;
12960 + boot_params.screen_info.vesapm_size = oreg.cx;
12961 }
12962
12963 /*
12964 diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
12965 index 05111bb..a1ae1f0 100644
12966 --- a/arch/x86/boot/video.c
12967 +++ b/arch/x86/boot/video.c
12968 @@ -98,7 +98,7 @@ static void store_mode_params(void)
12969 static unsigned int get_entry(void)
12970 {
12971 char entry_buf[4];
12972 - int i, len = 0;
12973 + unsigned int i, len = 0;
12974 int key;
12975 unsigned int v;
12976
12977 diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S
12978 index 9105655..41779c1 100644
12979 --- a/arch/x86/crypto/aes-x86_64-asm_64.S
12980 +++ b/arch/x86/crypto/aes-x86_64-asm_64.S
12981 @@ -8,6 +8,8 @@
12982 * including this sentence is retained in full.
12983 */
12984
12985 +#include <asm/alternative-asm.h>
12986 +
12987 .extern crypto_ft_tab
12988 .extern crypto_it_tab
12989 .extern crypto_fl_tab
12990 @@ -70,6 +72,8 @@
12991 je B192; \
12992 leaq 32(r9),r9;
12993
12994 +#define ret pax_force_retaddr; ret
12995 +
12996 #define epilogue(FUNC,r1,r2,r3,r4,r5,r6,r7,r8,r9) \
12997 movq r1,r2; \
12998 movq r3,r4; \
12999 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
13000 index 6bd2c6c..368c93e 100644
13001 --- a/arch/x86/crypto/aesni-intel_asm.S
13002 +++ b/arch/x86/crypto/aesni-intel_asm.S
13003 @@ -31,6 +31,7 @@
13004
13005 #include <linux/linkage.h>
13006 #include <asm/inst.h>
13007 +#include <asm/alternative-asm.h>
13008
13009 /*
13010 * The following macros are used to move an (un)aligned 16 byte value to/from
13011 @@ -217,7 +218,7 @@ enc: .octa 0x2
13012 * num_initial_blocks = b mod 4
13013 * encrypt the initial num_initial_blocks blocks and apply ghash on
13014 * the ciphertext
13015 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13016 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13017 * are clobbered
13018 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13019 */
13020 @@ -227,8 +228,8 @@ enc: .octa 0x2
13021 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13022 MOVADQ SHUF_MASK(%rip), %xmm14
13023 mov arg7, %r10 # %r10 = AAD
13024 - mov arg8, %r12 # %r12 = aadLen
13025 - mov %r12, %r11
13026 + mov arg8, %r15 # %r15 = aadLen
13027 + mov %r15, %r11
13028 pxor %xmm\i, %xmm\i
13029
13030 _get_AAD_loop\num_initial_blocks\operation:
13031 @@ -237,17 +238,17 @@ _get_AAD_loop\num_initial_blocks\operation:
13032 psrldq $4, %xmm\i
13033 pxor \TMP1, %xmm\i
13034 add $4, %r10
13035 - sub $4, %r12
13036 + sub $4, %r15
13037 jne _get_AAD_loop\num_initial_blocks\operation
13038
13039 cmp $16, %r11
13040 je _get_AAD_loop2_done\num_initial_blocks\operation
13041
13042 - mov $16, %r12
13043 + mov $16, %r15
13044 _get_AAD_loop2\num_initial_blocks\operation:
13045 psrldq $4, %xmm\i
13046 - sub $4, %r12
13047 - cmp %r11, %r12
13048 + sub $4, %r15
13049 + cmp %r11, %r15
13050 jne _get_AAD_loop2\num_initial_blocks\operation
13051
13052 _get_AAD_loop2_done\num_initial_blocks\operation:
13053 @@ -442,7 +443,7 @@ _initial_blocks_done\num_initial_blocks\operation:
13054 * num_initial_blocks = b mod 4
13055 * encrypt the initial num_initial_blocks blocks and apply ghash on
13056 * the ciphertext
13057 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13058 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13059 * are clobbered
13060 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13061 */
13062 @@ -452,8 +453,8 @@ _initial_blocks_done\num_initial_blocks\operation:
13063 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13064 MOVADQ SHUF_MASK(%rip), %xmm14
13065 mov arg7, %r10 # %r10 = AAD
13066 - mov arg8, %r12 # %r12 = aadLen
13067 - mov %r12, %r11
13068 + mov arg8, %r15 # %r15 = aadLen
13069 + mov %r15, %r11
13070 pxor %xmm\i, %xmm\i
13071 _get_AAD_loop\num_initial_blocks\operation:
13072 movd (%r10), \TMP1
13073 @@ -461,15 +462,15 @@ _get_AAD_loop\num_initial_blocks\operation:
13074 psrldq $4, %xmm\i
13075 pxor \TMP1, %xmm\i
13076 add $4, %r10
13077 - sub $4, %r12
13078 + sub $4, %r15
13079 jne _get_AAD_loop\num_initial_blocks\operation
13080 cmp $16, %r11
13081 je _get_AAD_loop2_done\num_initial_blocks\operation
13082 - mov $16, %r12
13083 + mov $16, %r15
13084 _get_AAD_loop2\num_initial_blocks\operation:
13085 psrldq $4, %xmm\i
13086 - sub $4, %r12
13087 - cmp %r11, %r12
13088 + sub $4, %r15
13089 + cmp %r11, %r15
13090 jne _get_AAD_loop2\num_initial_blocks\operation
13091 _get_AAD_loop2_done\num_initial_blocks\operation:
13092 PSHUFB_XMM %xmm14, %xmm\i # byte-reflect the AAD data
13093 @@ -1280,7 +1281,7 @@ _esb_loop_\@:
13094 *
13095 *****************************************************************************/
13096 ENTRY(aesni_gcm_dec)
13097 - push %r12
13098 + push %r15
13099 push %r13
13100 push %r14
13101 mov %rsp, %r14
13102 @@ -1290,8 +1291,8 @@ ENTRY(aesni_gcm_dec)
13103 */
13104 sub $VARIABLE_OFFSET, %rsp
13105 and $~63, %rsp # align rsp to 64 bytes
13106 - mov %arg6, %r12
13107 - movdqu (%r12), %xmm13 # %xmm13 = HashKey
13108 + mov %arg6, %r15
13109 + movdqu (%r15), %xmm13 # %xmm13 = HashKey
13110 movdqa SHUF_MASK(%rip), %xmm2
13111 PSHUFB_XMM %xmm2, %xmm13
13112
13113 @@ -1319,10 +1320,10 @@ ENTRY(aesni_gcm_dec)
13114 movdqa %xmm13, HashKey(%rsp) # store HashKey<<1 (mod poly)
13115 mov %arg4, %r13 # save the number of bytes of plaintext/ciphertext
13116 and $-16, %r13 # %r13 = %r13 - (%r13 mod 16)
13117 - mov %r13, %r12
13118 - and $(3<<4), %r12
13119 + mov %r13, %r15
13120 + and $(3<<4), %r15
13121 jz _initial_num_blocks_is_0_decrypt
13122 - cmp $(2<<4), %r12
13123 + cmp $(2<<4), %r15
13124 jb _initial_num_blocks_is_1_decrypt
13125 je _initial_num_blocks_is_2_decrypt
13126 _initial_num_blocks_is_3_decrypt:
13127 @@ -1372,16 +1373,16 @@ _zero_cipher_left_decrypt:
13128 sub $16, %r11
13129 add %r13, %r11
13130 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte block
13131 - lea SHIFT_MASK+16(%rip), %r12
13132 - sub %r13, %r12
13133 + lea SHIFT_MASK+16(%rip), %r15
13134 + sub %r13, %r15
13135 # adjust the shuffle mask pointer to be able to shift 16-%r13 bytes
13136 # (%r13 is the number of bytes in plaintext mod 16)
13137 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13138 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13139 PSHUFB_XMM %xmm2, %xmm1 # right shift 16-%r13 butes
13140
13141 movdqa %xmm1, %xmm2
13142 pxor %xmm1, %xmm0 # Ciphertext XOR E(K, Yn)
13143 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13144 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13145 # get the appropriate mask to mask out top 16-%r13 bytes of %xmm0
13146 pand %xmm1, %xmm0 # mask out top 16-%r13 bytes of %xmm0
13147 pand %xmm1, %xmm2
13148 @@ -1410,9 +1411,9 @@ _less_than_8_bytes_left_decrypt:
13149 sub $1, %r13
13150 jne _less_than_8_bytes_left_decrypt
13151 _multiple_of_16_bytes_decrypt:
13152 - mov arg8, %r12 # %r13 = aadLen (number of bytes)
13153 - shl $3, %r12 # convert into number of bits
13154 - movd %r12d, %xmm15 # len(A) in %xmm15
13155 + mov arg8, %r15 # %r13 = aadLen (number of bytes)
13156 + shl $3, %r15 # convert into number of bits
13157 + movd %r15d, %xmm15 # len(A) in %xmm15
13158 shl $3, %arg4 # len(C) in bits (*128)
13159 MOVQ_R64_XMM %arg4, %xmm1
13160 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13161 @@ -1451,7 +1452,8 @@ _return_T_done_decrypt:
13162 mov %r14, %rsp
13163 pop %r14
13164 pop %r13
13165 - pop %r12
13166 + pop %r15
13167 + pax_force_retaddr
13168 ret
13169 ENDPROC(aesni_gcm_dec)
13170
13171 @@ -1540,7 +1542,7 @@ ENDPROC(aesni_gcm_dec)
13172 * poly = x^128 + x^127 + x^126 + x^121 + 1
13173 ***************************************************************************/
13174 ENTRY(aesni_gcm_enc)
13175 - push %r12
13176 + push %r15
13177 push %r13
13178 push %r14
13179 mov %rsp, %r14
13180 @@ -1550,8 +1552,8 @@ ENTRY(aesni_gcm_enc)
13181 #
13182 sub $VARIABLE_OFFSET, %rsp
13183 and $~63, %rsp
13184 - mov %arg6, %r12
13185 - movdqu (%r12), %xmm13
13186 + mov %arg6, %r15
13187 + movdqu (%r15), %xmm13
13188 movdqa SHUF_MASK(%rip), %xmm2
13189 PSHUFB_XMM %xmm2, %xmm13
13190
13191 @@ -1575,13 +1577,13 @@ ENTRY(aesni_gcm_enc)
13192 movdqa %xmm13, HashKey(%rsp)
13193 mov %arg4, %r13 # %xmm13 holds HashKey<<1 (mod poly)
13194 and $-16, %r13
13195 - mov %r13, %r12
13196 + mov %r13, %r15
13197
13198 # Encrypt first few blocks
13199
13200 - and $(3<<4), %r12
13201 + and $(3<<4), %r15
13202 jz _initial_num_blocks_is_0_encrypt
13203 - cmp $(2<<4), %r12
13204 + cmp $(2<<4), %r15
13205 jb _initial_num_blocks_is_1_encrypt
13206 je _initial_num_blocks_is_2_encrypt
13207 _initial_num_blocks_is_3_encrypt:
13208 @@ -1634,14 +1636,14 @@ _zero_cipher_left_encrypt:
13209 sub $16, %r11
13210 add %r13, %r11
13211 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte blocks
13212 - lea SHIFT_MASK+16(%rip), %r12
13213 - sub %r13, %r12
13214 + lea SHIFT_MASK+16(%rip), %r15
13215 + sub %r13, %r15
13216 # adjust the shuffle mask pointer to be able to shift 16-r13 bytes
13217 # (%r13 is the number of bytes in plaintext mod 16)
13218 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13219 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13220 PSHUFB_XMM %xmm2, %xmm1 # shift right 16-r13 byte
13221 pxor %xmm1, %xmm0 # Plaintext XOR Encrypt(K, Yn)
13222 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13223 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13224 # get the appropriate mask to mask out top 16-r13 bytes of xmm0
13225 pand %xmm1, %xmm0 # mask out top 16-r13 bytes of xmm0
13226 movdqa SHUF_MASK(%rip), %xmm10
13227 @@ -1674,9 +1676,9 @@ _less_than_8_bytes_left_encrypt:
13228 sub $1, %r13
13229 jne _less_than_8_bytes_left_encrypt
13230 _multiple_of_16_bytes_encrypt:
13231 - mov arg8, %r12 # %r12 = addLen (number of bytes)
13232 - shl $3, %r12
13233 - movd %r12d, %xmm15 # len(A) in %xmm15
13234 + mov arg8, %r15 # %r15 = addLen (number of bytes)
13235 + shl $3, %r15
13236 + movd %r15d, %xmm15 # len(A) in %xmm15
13237 shl $3, %arg4 # len(C) in bits (*128)
13238 MOVQ_R64_XMM %arg4, %xmm1
13239 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13240 @@ -1715,7 +1717,8 @@ _return_T_done_encrypt:
13241 mov %r14, %rsp
13242 pop %r14
13243 pop %r13
13244 - pop %r12
13245 + pop %r15
13246 + pax_force_retaddr
13247 ret
13248 ENDPROC(aesni_gcm_enc)
13249
13250 @@ -1733,6 +1736,7 @@ _key_expansion_256a:
13251 pxor %xmm1, %xmm0
13252 movaps %xmm0, (TKEYP)
13253 add $0x10, TKEYP
13254 + pax_force_retaddr
13255 ret
13256 ENDPROC(_key_expansion_128)
13257 ENDPROC(_key_expansion_256a)
13258 @@ -1759,6 +1763,7 @@ _key_expansion_192a:
13259 shufps $0b01001110, %xmm2, %xmm1
13260 movaps %xmm1, 0x10(TKEYP)
13261 add $0x20, TKEYP
13262 + pax_force_retaddr
13263 ret
13264 ENDPROC(_key_expansion_192a)
13265
13266 @@ -1779,6 +1784,7 @@ _key_expansion_192b:
13267
13268 movaps %xmm0, (TKEYP)
13269 add $0x10, TKEYP
13270 + pax_force_retaddr
13271 ret
13272 ENDPROC(_key_expansion_192b)
13273
13274 @@ -1792,6 +1798,7 @@ _key_expansion_256b:
13275 pxor %xmm1, %xmm2
13276 movaps %xmm2, (TKEYP)
13277 add $0x10, TKEYP
13278 + pax_force_retaddr
13279 ret
13280 ENDPROC(_key_expansion_256b)
13281
13282 @@ -1905,6 +1912,7 @@ ENTRY(aesni_set_key)
13283 #ifndef __x86_64__
13284 popl KEYP
13285 #endif
13286 + pax_force_retaddr
13287 ret
13288 ENDPROC(aesni_set_key)
13289
13290 @@ -1927,6 +1935,7 @@ ENTRY(aesni_enc)
13291 popl KLEN
13292 popl KEYP
13293 #endif
13294 + pax_force_retaddr
13295 ret
13296 ENDPROC(aesni_enc)
13297
13298 @@ -1985,6 +1994,7 @@ _aesni_enc1:
13299 AESENC KEY STATE
13300 movaps 0x70(TKEYP), KEY
13301 AESENCLAST KEY STATE
13302 + pax_force_retaddr
13303 ret
13304 ENDPROC(_aesni_enc1)
13305
13306 @@ -2094,6 +2104,7 @@ _aesni_enc4:
13307 AESENCLAST KEY STATE2
13308 AESENCLAST KEY STATE3
13309 AESENCLAST KEY STATE4
13310 + pax_force_retaddr
13311 ret
13312 ENDPROC(_aesni_enc4)
13313
13314 @@ -2117,6 +2128,7 @@ ENTRY(aesni_dec)
13315 popl KLEN
13316 popl KEYP
13317 #endif
13318 + pax_force_retaddr
13319 ret
13320 ENDPROC(aesni_dec)
13321
13322 @@ -2175,6 +2187,7 @@ _aesni_dec1:
13323 AESDEC KEY STATE
13324 movaps 0x70(TKEYP), KEY
13325 AESDECLAST KEY STATE
13326 + pax_force_retaddr
13327 ret
13328 ENDPROC(_aesni_dec1)
13329
13330 @@ -2284,6 +2297,7 @@ _aesni_dec4:
13331 AESDECLAST KEY STATE2
13332 AESDECLAST KEY STATE3
13333 AESDECLAST KEY STATE4
13334 + pax_force_retaddr
13335 ret
13336 ENDPROC(_aesni_dec4)
13337
13338 @@ -2342,6 +2356,7 @@ ENTRY(aesni_ecb_enc)
13339 popl KEYP
13340 popl LEN
13341 #endif
13342 + pax_force_retaddr
13343 ret
13344 ENDPROC(aesni_ecb_enc)
13345
13346 @@ -2401,6 +2416,7 @@ ENTRY(aesni_ecb_dec)
13347 popl KEYP
13348 popl LEN
13349 #endif
13350 + pax_force_retaddr
13351 ret
13352 ENDPROC(aesni_ecb_dec)
13353
13354 @@ -2443,6 +2459,7 @@ ENTRY(aesni_cbc_enc)
13355 popl LEN
13356 popl IVP
13357 #endif
13358 + pax_force_retaddr
13359 ret
13360 ENDPROC(aesni_cbc_enc)
13361
13362 @@ -2534,6 +2551,7 @@ ENTRY(aesni_cbc_dec)
13363 popl LEN
13364 popl IVP
13365 #endif
13366 + pax_force_retaddr
13367 ret
13368 ENDPROC(aesni_cbc_dec)
13369
13370 @@ -2561,6 +2579,7 @@ _aesni_inc_init:
13371 mov $1, TCTR_LOW
13372 MOVQ_R64_XMM TCTR_LOW INC
13373 MOVQ_R64_XMM CTR TCTR_LOW
13374 + pax_force_retaddr
13375 ret
13376 ENDPROC(_aesni_inc_init)
13377
13378 @@ -2590,6 +2609,7 @@ _aesni_inc:
13379 .Linc_low:
13380 movaps CTR, IV
13381 PSHUFB_XMM BSWAP_MASK IV
13382 + pax_force_retaddr
13383 ret
13384 ENDPROC(_aesni_inc)
13385
13386 @@ -2651,6 +2671,7 @@ ENTRY(aesni_ctr_enc)
13387 .Lctr_enc_ret:
13388 movups IV, (IVP)
13389 .Lctr_enc_just_ret:
13390 + pax_force_retaddr
13391 ret
13392 ENDPROC(aesni_ctr_enc)
13393
13394 @@ -2777,6 +2798,7 @@ ENTRY(aesni_xts_crypt8)
13395 pxor INC, STATE4
13396 movdqu STATE4, 0x70(OUTP)
13397
13398 + pax_force_retaddr
13399 ret
13400 ENDPROC(aesni_xts_crypt8)
13401
13402 diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13403 index 246c670..466e2d6 100644
13404 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
13405 +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13406 @@ -21,6 +21,7 @@
13407 */
13408
13409 #include <linux/linkage.h>
13410 +#include <asm/alternative-asm.h>
13411
13412 .file "blowfish-x86_64-asm.S"
13413 .text
13414 @@ -149,9 +150,11 @@ ENTRY(__blowfish_enc_blk)
13415 jnz .L__enc_xor;
13416
13417 write_block();
13418 + pax_force_retaddr
13419 ret;
13420 .L__enc_xor:
13421 xor_block();
13422 + pax_force_retaddr
13423 ret;
13424 ENDPROC(__blowfish_enc_blk)
13425
13426 @@ -183,6 +186,7 @@ ENTRY(blowfish_dec_blk)
13427
13428 movq %r11, %rbp;
13429
13430 + pax_force_retaddr
13431 ret;
13432 ENDPROC(blowfish_dec_blk)
13433
13434 @@ -334,6 +338,7 @@ ENTRY(__blowfish_enc_blk_4way)
13435
13436 popq %rbx;
13437 popq %rbp;
13438 + pax_force_retaddr
13439 ret;
13440
13441 .L__enc_xor4:
13442 @@ -341,6 +346,7 @@ ENTRY(__blowfish_enc_blk_4way)
13443
13444 popq %rbx;
13445 popq %rbp;
13446 + pax_force_retaddr
13447 ret;
13448 ENDPROC(__blowfish_enc_blk_4way)
13449
13450 @@ -375,5 +381,6 @@ ENTRY(blowfish_dec_blk_4way)
13451 popq %rbx;
13452 popq %rbp;
13453
13454 + pax_force_retaddr
13455 ret;
13456 ENDPROC(blowfish_dec_blk_4way)
13457 diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13458 index ce71f92..1dce7ec 100644
13459 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13460 +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13461 @@ -16,6 +16,7 @@
13462 */
13463
13464 #include <linux/linkage.h>
13465 +#include <asm/alternative-asm.h>
13466
13467 #define CAMELLIA_TABLE_BYTE_LEN 272
13468
13469 @@ -191,6 +192,7 @@ roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13470 roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
13471 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
13472 %rcx, (%r9));
13473 + pax_force_retaddr
13474 ret;
13475 ENDPROC(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13476
13477 @@ -199,6 +201,7 @@ roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13478 roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
13479 %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
13480 %rax, (%r9));
13481 + pax_force_retaddr
13482 ret;
13483 ENDPROC(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13484
13485 @@ -780,6 +783,7 @@ __camellia_enc_blk16:
13486 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13487 %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
13488
13489 + pax_force_retaddr
13490 ret;
13491
13492 .align 8
13493 @@ -865,6 +869,7 @@ __camellia_dec_blk16:
13494 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13495 %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
13496
13497 + pax_force_retaddr
13498 ret;
13499
13500 .align 8
13501 @@ -904,6 +909,7 @@ ENTRY(camellia_ecb_enc_16way)
13502 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13503 %xmm8, %rsi);
13504
13505 + pax_force_retaddr
13506 ret;
13507 ENDPROC(camellia_ecb_enc_16way)
13508
13509 @@ -932,6 +938,7 @@ ENTRY(camellia_ecb_dec_16way)
13510 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13511 %xmm8, %rsi);
13512
13513 + pax_force_retaddr
13514 ret;
13515 ENDPROC(camellia_ecb_dec_16way)
13516
13517 @@ -981,6 +988,7 @@ ENTRY(camellia_cbc_dec_16way)
13518 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13519 %xmm8, %rsi);
13520
13521 + pax_force_retaddr
13522 ret;
13523 ENDPROC(camellia_cbc_dec_16way)
13524
13525 @@ -1092,6 +1100,7 @@ ENTRY(camellia_ctr_16way)
13526 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13527 %xmm8, %rsi);
13528
13529 + pax_force_retaddr
13530 ret;
13531 ENDPROC(camellia_ctr_16way)
13532
13533 @@ -1234,6 +1243,7 @@ camellia_xts_crypt_16way:
13534 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13535 %xmm8, %rsi);
13536
13537 + pax_force_retaddr
13538 ret;
13539 ENDPROC(camellia_xts_crypt_16way)
13540
13541 diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13542 index 0e0b886..5a3123c 100644
13543 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13544 +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13545 @@ -11,6 +11,7 @@
13546 */
13547
13548 #include <linux/linkage.h>
13549 +#include <asm/alternative-asm.h>
13550
13551 #define CAMELLIA_TABLE_BYTE_LEN 272
13552
13553 @@ -230,6 +231,7 @@ roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13554 roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
13555 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
13556 %rcx, (%r9));
13557 + pax_force_retaddr
13558 ret;
13559 ENDPROC(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13560
13561 @@ -238,6 +240,7 @@ roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13562 roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
13563 %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
13564 %rax, (%r9));
13565 + pax_force_retaddr
13566 ret;
13567 ENDPROC(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13568
13569 @@ -820,6 +823,7 @@ __camellia_enc_blk32:
13570 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13571 %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
13572
13573 + pax_force_retaddr
13574 ret;
13575
13576 .align 8
13577 @@ -905,6 +909,7 @@ __camellia_dec_blk32:
13578 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13579 %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
13580
13581 + pax_force_retaddr
13582 ret;
13583
13584 .align 8
13585 @@ -948,6 +953,7 @@ ENTRY(camellia_ecb_enc_32way)
13586
13587 vzeroupper;
13588
13589 + pax_force_retaddr
13590 ret;
13591 ENDPROC(camellia_ecb_enc_32way)
13592
13593 @@ -980,6 +986,7 @@ ENTRY(camellia_ecb_dec_32way)
13594
13595 vzeroupper;
13596
13597 + pax_force_retaddr
13598 ret;
13599 ENDPROC(camellia_ecb_dec_32way)
13600
13601 @@ -1046,6 +1053,7 @@ ENTRY(camellia_cbc_dec_32way)
13602
13603 vzeroupper;
13604
13605 + pax_force_retaddr
13606 ret;
13607 ENDPROC(camellia_cbc_dec_32way)
13608
13609 @@ -1184,6 +1192,7 @@ ENTRY(camellia_ctr_32way)
13610
13611 vzeroupper;
13612
13613 + pax_force_retaddr
13614 ret;
13615 ENDPROC(camellia_ctr_32way)
13616
13617 @@ -1349,6 +1358,7 @@ camellia_xts_crypt_32way:
13618
13619 vzeroupper;
13620
13621 + pax_force_retaddr
13622 ret;
13623 ENDPROC(camellia_xts_crypt_32way)
13624
13625 diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
13626 index 310319c..db3d7b5 100644
13627 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S
13628 +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
13629 @@ -21,6 +21,7 @@
13630 */
13631
13632 #include <linux/linkage.h>
13633 +#include <asm/alternative-asm.h>
13634
13635 .file "camellia-x86_64-asm_64.S"
13636 .text
13637 @@ -228,12 +229,14 @@ ENTRY(__camellia_enc_blk)
13638 enc_outunpack(mov, RT1);
13639
13640 movq RRBP, %rbp;
13641 + pax_force_retaddr
13642 ret;
13643
13644 .L__enc_xor:
13645 enc_outunpack(xor, RT1);
13646
13647 movq RRBP, %rbp;
13648 + pax_force_retaddr
13649 ret;
13650 ENDPROC(__camellia_enc_blk)
13651
13652 @@ -272,6 +275,7 @@ ENTRY(camellia_dec_blk)
13653 dec_outunpack();
13654
13655 movq RRBP, %rbp;
13656 + pax_force_retaddr
13657 ret;
13658 ENDPROC(camellia_dec_blk)
13659
13660 @@ -463,6 +467,7 @@ ENTRY(__camellia_enc_blk_2way)
13661
13662 movq RRBP, %rbp;
13663 popq %rbx;
13664 + pax_force_retaddr
13665 ret;
13666
13667 .L__enc2_xor:
13668 @@ -470,6 +475,7 @@ ENTRY(__camellia_enc_blk_2way)
13669
13670 movq RRBP, %rbp;
13671 popq %rbx;
13672 + pax_force_retaddr
13673 ret;
13674 ENDPROC(__camellia_enc_blk_2way)
13675
13676 @@ -510,5 +516,6 @@ ENTRY(camellia_dec_blk_2way)
13677
13678 movq RRBP, %rbp;
13679 movq RXOR, %rbx;
13680 + pax_force_retaddr
13681 ret;
13682 ENDPROC(camellia_dec_blk_2way)
13683 diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13684 index c35fd5d..2d8c7db 100644
13685 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13686 +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13687 @@ -24,6 +24,7 @@
13688 */
13689
13690 #include <linux/linkage.h>
13691 +#include <asm/alternative-asm.h>
13692
13693 .file "cast5-avx-x86_64-asm_64.S"
13694
13695 @@ -281,6 +282,7 @@ __cast5_enc_blk16:
13696 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13697 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13698
13699 + pax_force_retaddr
13700 ret;
13701 ENDPROC(__cast5_enc_blk16)
13702
13703 @@ -352,6 +354,7 @@ __cast5_dec_blk16:
13704 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13705 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13706
13707 + pax_force_retaddr
13708 ret;
13709
13710 .L__skip_dec:
13711 @@ -388,6 +391,7 @@ ENTRY(cast5_ecb_enc_16way)
13712 vmovdqu RR4, (6*4*4)(%r11);
13713 vmovdqu RL4, (7*4*4)(%r11);
13714
13715 + pax_force_retaddr
13716 ret;
13717 ENDPROC(cast5_ecb_enc_16way)
13718
13719 @@ -420,6 +424,7 @@ ENTRY(cast5_ecb_dec_16way)
13720 vmovdqu RR4, (6*4*4)(%r11);
13721 vmovdqu RL4, (7*4*4)(%r11);
13722
13723 + pax_force_retaddr
13724 ret;
13725 ENDPROC(cast5_ecb_dec_16way)
13726
13727 @@ -430,10 +435,10 @@ ENTRY(cast5_cbc_dec_16way)
13728 * %rdx: src
13729 */
13730
13731 - pushq %r12;
13732 + pushq %r14;
13733
13734 movq %rsi, %r11;
13735 - movq %rdx, %r12;
13736 + movq %rdx, %r14;
13737
13738 vmovdqu (0*16)(%rdx), RL1;
13739 vmovdqu (1*16)(%rdx), RR1;
13740 @@ -447,16 +452,16 @@ ENTRY(cast5_cbc_dec_16way)
13741 call __cast5_dec_blk16;
13742
13743 /* xor with src */
13744 - vmovq (%r12), RX;
13745 + vmovq (%r14), RX;
13746 vpshufd $0x4f, RX, RX;
13747 vpxor RX, RR1, RR1;
13748 - vpxor 0*16+8(%r12), RL1, RL1;
13749 - vpxor 1*16+8(%r12), RR2, RR2;
13750 - vpxor 2*16+8(%r12), RL2, RL2;
13751 - vpxor 3*16+8(%r12), RR3, RR3;
13752 - vpxor 4*16+8(%r12), RL3, RL3;
13753 - vpxor 5*16+8(%r12), RR4, RR4;
13754 - vpxor 6*16+8(%r12), RL4, RL4;
13755 + vpxor 0*16+8(%r14), RL1, RL1;
13756 + vpxor 1*16+8(%r14), RR2, RR2;
13757 + vpxor 2*16+8(%r14), RL2, RL2;
13758 + vpxor 3*16+8(%r14), RR3, RR3;
13759 + vpxor 4*16+8(%r14), RL3, RL3;
13760 + vpxor 5*16+8(%r14), RR4, RR4;
13761 + vpxor 6*16+8(%r14), RL4, RL4;
13762
13763 vmovdqu RR1, (0*16)(%r11);
13764 vmovdqu RL1, (1*16)(%r11);
13765 @@ -467,8 +472,9 @@ ENTRY(cast5_cbc_dec_16way)
13766 vmovdqu RR4, (6*16)(%r11);
13767 vmovdqu RL4, (7*16)(%r11);
13768
13769 - popq %r12;
13770 + popq %r14;
13771
13772 + pax_force_retaddr
13773 ret;
13774 ENDPROC(cast5_cbc_dec_16way)
13775
13776 @@ -480,10 +486,10 @@ ENTRY(cast5_ctr_16way)
13777 * %rcx: iv (big endian, 64bit)
13778 */
13779
13780 - pushq %r12;
13781 + pushq %r14;
13782
13783 movq %rsi, %r11;
13784 - movq %rdx, %r12;
13785 + movq %rdx, %r14;
13786
13787 vpcmpeqd RTMP, RTMP, RTMP;
13788 vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */
13789 @@ -523,14 +529,14 @@ ENTRY(cast5_ctr_16way)
13790 call __cast5_enc_blk16;
13791
13792 /* dst = src ^ iv */
13793 - vpxor (0*16)(%r12), RR1, RR1;
13794 - vpxor (1*16)(%r12), RL1, RL1;
13795 - vpxor (2*16)(%r12), RR2, RR2;
13796 - vpxor (3*16)(%r12), RL2, RL2;
13797 - vpxor (4*16)(%r12), RR3, RR3;
13798 - vpxor (5*16)(%r12), RL3, RL3;
13799 - vpxor (6*16)(%r12), RR4, RR4;
13800 - vpxor (7*16)(%r12), RL4, RL4;
13801 + vpxor (0*16)(%r14), RR1, RR1;
13802 + vpxor (1*16)(%r14), RL1, RL1;
13803 + vpxor (2*16)(%r14), RR2, RR2;
13804 + vpxor (3*16)(%r14), RL2, RL2;
13805 + vpxor (4*16)(%r14), RR3, RR3;
13806 + vpxor (5*16)(%r14), RL3, RL3;
13807 + vpxor (6*16)(%r14), RR4, RR4;
13808 + vpxor (7*16)(%r14), RL4, RL4;
13809 vmovdqu RR1, (0*16)(%r11);
13810 vmovdqu RL1, (1*16)(%r11);
13811 vmovdqu RR2, (2*16)(%r11);
13812 @@ -540,7 +546,8 @@ ENTRY(cast5_ctr_16way)
13813 vmovdqu RR4, (6*16)(%r11);
13814 vmovdqu RL4, (7*16)(%r11);
13815
13816 - popq %r12;
13817 + popq %r14;
13818
13819 + pax_force_retaddr
13820 ret;
13821 ENDPROC(cast5_ctr_16way)
13822 diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13823 index e3531f8..e123f35 100644
13824 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13825 +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13826 @@ -24,6 +24,7 @@
13827 */
13828
13829 #include <linux/linkage.h>
13830 +#include <asm/alternative-asm.h>
13831 #include "glue_helper-asm-avx.S"
13832
13833 .file "cast6-avx-x86_64-asm_64.S"
13834 @@ -295,6 +296,7 @@ __cast6_enc_blk8:
13835 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
13836 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
13837
13838 + pax_force_retaddr
13839 ret;
13840 ENDPROC(__cast6_enc_blk8)
13841
13842 @@ -340,6 +342,7 @@ __cast6_dec_blk8:
13843 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
13844 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
13845
13846 + pax_force_retaddr
13847 ret;
13848 ENDPROC(__cast6_dec_blk8)
13849
13850 @@ -358,6 +361,7 @@ ENTRY(cast6_ecb_enc_8way)
13851
13852 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13853
13854 + pax_force_retaddr
13855 ret;
13856 ENDPROC(cast6_ecb_enc_8way)
13857
13858 @@ -376,6 +380,7 @@ ENTRY(cast6_ecb_dec_8way)
13859
13860 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13861
13862 + pax_force_retaddr
13863 ret;
13864 ENDPROC(cast6_ecb_dec_8way)
13865
13866 @@ -386,19 +391,20 @@ ENTRY(cast6_cbc_dec_8way)
13867 * %rdx: src
13868 */
13869
13870 - pushq %r12;
13871 + pushq %r14;
13872
13873 movq %rsi, %r11;
13874 - movq %rdx, %r12;
13875 + movq %rdx, %r14;
13876
13877 load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13878
13879 call __cast6_dec_blk8;
13880
13881 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13882 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13883
13884 - popq %r12;
13885 + popq %r14;
13886
13887 + pax_force_retaddr
13888 ret;
13889 ENDPROC(cast6_cbc_dec_8way)
13890
13891 @@ -410,20 +416,21 @@ ENTRY(cast6_ctr_8way)
13892 * %rcx: iv (little endian, 128bit)
13893 */
13894
13895 - pushq %r12;
13896 + pushq %r14;
13897
13898 movq %rsi, %r11;
13899 - movq %rdx, %r12;
13900 + movq %rdx, %r14;
13901
13902 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
13903 RD2, RX, RKR, RKM);
13904
13905 call __cast6_enc_blk8;
13906
13907 - store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13908 + store_ctr_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13909
13910 - popq %r12;
13911 + popq %r14;
13912
13913 + pax_force_retaddr
13914 ret;
13915 ENDPROC(cast6_ctr_8way)
13916
13917 @@ -446,6 +453,7 @@ ENTRY(cast6_xts_enc_8way)
13918 /* dst <= regs xor IVs(in dst) */
13919 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13920
13921 + pax_force_retaddr
13922 ret;
13923 ENDPROC(cast6_xts_enc_8way)
13924
13925 @@ -468,5 +476,6 @@ ENTRY(cast6_xts_dec_8way)
13926 /* dst <= regs xor IVs(in dst) */
13927 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13928
13929 + pax_force_retaddr
13930 ret;
13931 ENDPROC(cast6_xts_dec_8way)
13932 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13933 index 225be06..2885e731 100644
13934 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13935 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13936 @@ -45,6 +45,7 @@
13937
13938 #include <asm/inst.h>
13939 #include <linux/linkage.h>
13940 +#include <asm/alternative-asm.h>
13941
13942 ## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction
13943
13944 @@ -309,6 +310,7 @@ do_return:
13945 popq %rsi
13946 popq %rdi
13947 popq %rbx
13948 + pax_force_retaddr
13949 ret
13950
13951 ################################################################
13952 @@ -330,7 +332,7 @@ ENDPROC(crc_pcl)
13953 ## PCLMULQDQ tables
13954 ## Table is 128 entries x 2 words (8 bytes) each
13955 ################################################################
13956 -.section .rotata, "a", %progbits
13957 +.section .rodata, "a", %progbits
13958 .align 8
13959 K_table:
13960 .long 0x493c7d27, 0x00000001
13961 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S
13962 index 5d1e007..098cb4f 100644
13963 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S
13964 +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S
13965 @@ -18,6 +18,7 @@
13966
13967 #include <linux/linkage.h>
13968 #include <asm/inst.h>
13969 +#include <asm/alternative-asm.h>
13970
13971 .data
13972
13973 @@ -89,6 +90,7 @@ __clmul_gf128mul_ble:
13974 psrlq $1, T2
13975 pxor T2, T1
13976 pxor T1, DATA
13977 + pax_force_retaddr
13978 ret
13979 ENDPROC(__clmul_gf128mul_ble)
13980
13981 @@ -101,6 +103,7 @@ ENTRY(clmul_ghash_mul)
13982 call __clmul_gf128mul_ble
13983 PSHUFB_XMM BSWAP DATA
13984 movups DATA, (%rdi)
13985 + pax_force_retaddr
13986 ret
13987 ENDPROC(clmul_ghash_mul)
13988
13989 @@ -128,5 +131,6 @@ ENTRY(clmul_ghash_update)
13990 PSHUFB_XMM BSWAP DATA
13991 movups DATA, (%rdi)
13992 .Lupdate_just_ret:
13993 + pax_force_retaddr
13994 ret
13995 ENDPROC(clmul_ghash_update)
13996 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
13997 index 9279e0b..c4b3d2c 100644
13998 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
13999 +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S
14000 @@ -1,4 +1,5 @@
14001 #include <linux/linkage.h>
14002 +#include <asm/alternative-asm.h>
14003
14004 # enter salsa20_encrypt_bytes
14005 ENTRY(salsa20_encrypt_bytes)
14006 @@ -789,6 +790,7 @@ ENTRY(salsa20_encrypt_bytes)
14007 add %r11,%rsp
14008 mov %rdi,%rax
14009 mov %rsi,%rdx
14010 + pax_force_retaddr
14011 ret
14012 # bytesatleast65:
14013 ._bytesatleast65:
14014 @@ -889,6 +891,7 @@ ENTRY(salsa20_keysetup)
14015 add %r11,%rsp
14016 mov %rdi,%rax
14017 mov %rsi,%rdx
14018 + pax_force_retaddr
14019 ret
14020 ENDPROC(salsa20_keysetup)
14021
14022 @@ -914,5 +917,6 @@ ENTRY(salsa20_ivsetup)
14023 add %r11,%rsp
14024 mov %rdi,%rax
14025 mov %rsi,%rdx
14026 + pax_force_retaddr
14027 ret
14028 ENDPROC(salsa20_ivsetup)
14029 diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14030 index 2f202f4..d9164d6 100644
14031 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14032 +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14033 @@ -24,6 +24,7 @@
14034 */
14035
14036 #include <linux/linkage.h>
14037 +#include <asm/alternative-asm.h>
14038 #include "glue_helper-asm-avx.S"
14039
14040 .file "serpent-avx-x86_64-asm_64.S"
14041 @@ -618,6 +619,7 @@ __serpent_enc_blk8_avx:
14042 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14043 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14044
14045 + pax_force_retaddr
14046 ret;
14047 ENDPROC(__serpent_enc_blk8_avx)
14048
14049 @@ -672,6 +674,7 @@ __serpent_dec_blk8_avx:
14050 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14051 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14052
14053 + pax_force_retaddr
14054 ret;
14055 ENDPROC(__serpent_dec_blk8_avx)
14056
14057 @@ -688,6 +691,7 @@ ENTRY(serpent_ecb_enc_8way_avx)
14058
14059 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14060
14061 + pax_force_retaddr
14062 ret;
14063 ENDPROC(serpent_ecb_enc_8way_avx)
14064
14065 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_8way_avx)
14066
14067 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14068
14069 + pax_force_retaddr
14070 ret;
14071 ENDPROC(serpent_ecb_dec_8way_avx)
14072
14073 @@ -720,6 +725,7 @@ ENTRY(serpent_cbc_dec_8way_avx)
14074
14075 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14076
14077 + pax_force_retaddr
14078 ret;
14079 ENDPROC(serpent_cbc_dec_8way_avx)
14080
14081 @@ -738,6 +744,7 @@ ENTRY(serpent_ctr_8way_avx)
14082
14083 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14084
14085 + pax_force_retaddr
14086 ret;
14087 ENDPROC(serpent_ctr_8way_avx)
14088
14089 @@ -758,6 +765,7 @@ ENTRY(serpent_xts_enc_8way_avx)
14090 /* dst <= regs xor IVs(in dst) */
14091 store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14092
14093 + pax_force_retaddr
14094 ret;
14095 ENDPROC(serpent_xts_enc_8way_avx)
14096
14097 @@ -778,5 +786,6 @@ ENTRY(serpent_xts_dec_8way_avx)
14098 /* dst <= regs xor IVs(in dst) */
14099 store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14100
14101 + pax_force_retaddr
14102 ret;
14103 ENDPROC(serpent_xts_dec_8way_avx)
14104 diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S
14105 index b222085..abd483c 100644
14106 --- a/arch/x86/crypto/serpent-avx2-asm_64.S
14107 +++ b/arch/x86/crypto/serpent-avx2-asm_64.S
14108 @@ -15,6 +15,7 @@
14109 */
14110
14111 #include <linux/linkage.h>
14112 +#include <asm/alternative-asm.h>
14113 #include "glue_helper-asm-avx2.S"
14114
14115 .file "serpent-avx2-asm_64.S"
14116 @@ -610,6 +611,7 @@ __serpent_enc_blk16:
14117 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14118 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14119
14120 + pax_force_retaddr
14121 ret;
14122 ENDPROC(__serpent_enc_blk16)
14123
14124 @@ -664,6 +666,7 @@ __serpent_dec_blk16:
14125 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14126 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14127
14128 + pax_force_retaddr
14129 ret;
14130 ENDPROC(__serpent_dec_blk16)
14131
14132 @@ -684,6 +687,7 @@ ENTRY(serpent_ecb_enc_16way)
14133
14134 vzeroupper;
14135
14136 + pax_force_retaddr
14137 ret;
14138 ENDPROC(serpent_ecb_enc_16way)
14139
14140 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_16way)
14141
14142 vzeroupper;
14143
14144 + pax_force_retaddr
14145 ret;
14146 ENDPROC(serpent_ecb_dec_16way)
14147
14148 @@ -725,6 +730,7 @@ ENTRY(serpent_cbc_dec_16way)
14149
14150 vzeroupper;
14151
14152 + pax_force_retaddr
14153 ret;
14154 ENDPROC(serpent_cbc_dec_16way)
14155
14156 @@ -748,6 +754,7 @@ ENTRY(serpent_ctr_16way)
14157
14158 vzeroupper;
14159
14160 + pax_force_retaddr
14161 ret;
14162 ENDPROC(serpent_ctr_16way)
14163
14164 @@ -772,6 +779,7 @@ ENTRY(serpent_xts_enc_16way)
14165
14166 vzeroupper;
14167
14168 + pax_force_retaddr
14169 ret;
14170 ENDPROC(serpent_xts_enc_16way)
14171
14172 @@ -796,5 +804,6 @@ ENTRY(serpent_xts_dec_16way)
14173
14174 vzeroupper;
14175
14176 + pax_force_retaddr
14177 ret;
14178 ENDPROC(serpent_xts_dec_16way)
14179 diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14180 index acc066c..1559cc4 100644
14181 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14182 +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14183 @@ -25,6 +25,7 @@
14184 */
14185
14186 #include <linux/linkage.h>
14187 +#include <asm/alternative-asm.h>
14188
14189 .file "serpent-sse2-x86_64-asm_64.S"
14190 .text
14191 @@ -690,12 +691,14 @@ ENTRY(__serpent_enc_blk_8way)
14192 write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14193 write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14194
14195 + pax_force_retaddr
14196 ret;
14197
14198 .L__enc_xor8:
14199 xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14200 xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14201
14202 + pax_force_retaddr
14203 ret;
14204 ENDPROC(__serpent_enc_blk_8way)
14205
14206 @@ -750,5 +753,6 @@ ENTRY(serpent_dec_blk_8way)
14207 write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14208 write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14209
14210 + pax_force_retaddr
14211 ret;
14212 ENDPROC(serpent_dec_blk_8way)
14213 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
14214 index a410950..9dfe7ad 100644
14215 --- a/arch/x86/crypto/sha1_ssse3_asm.S
14216 +++ b/arch/x86/crypto/sha1_ssse3_asm.S
14217 @@ -29,6 +29,7 @@
14218 */
14219
14220 #include <linux/linkage.h>
14221 +#include <asm/alternative-asm.h>
14222
14223 #define CTX %rdi // arg1
14224 #define BUF %rsi // arg2
14225 @@ -75,9 +76,9 @@
14226
14227 push %rbx
14228 push %rbp
14229 - push %r12
14230 + push %r14
14231
14232 - mov %rsp, %r12
14233 + mov %rsp, %r14
14234 sub $64, %rsp # allocate workspace
14235 and $~15, %rsp # align stack
14236
14237 @@ -99,11 +100,12 @@
14238 xor %rax, %rax
14239 rep stosq
14240
14241 - mov %r12, %rsp # deallocate workspace
14242 + mov %r14, %rsp # deallocate workspace
14243
14244 - pop %r12
14245 + pop %r14
14246 pop %rbp
14247 pop %rbx
14248 + pax_force_retaddr
14249 ret
14250
14251 ENDPROC(\name)
14252 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
14253 index 92b3b5d..0dc1dcb 100644
14254 --- a/arch/x86/crypto/sha256-avx-asm.S
14255 +++ b/arch/x86/crypto/sha256-avx-asm.S
14256 @@ -49,6 +49,7 @@
14257
14258 #ifdef CONFIG_AS_AVX
14259 #include <linux/linkage.h>
14260 +#include <asm/alternative-asm.h>
14261
14262 ## assume buffers not aligned
14263 #define VMOVDQ vmovdqu
14264 @@ -460,6 +461,7 @@ done_hash:
14265 popq %r13
14266 popq %rbp
14267 popq %rbx
14268 + pax_force_retaddr
14269 ret
14270 ENDPROC(sha256_transform_avx)
14271
14272 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
14273 index 570ec5e..cf2b625 100644
14274 --- a/arch/x86/crypto/sha256-avx2-asm.S
14275 +++ b/arch/x86/crypto/sha256-avx2-asm.S
14276 @@ -50,6 +50,7 @@
14277
14278 #ifdef CONFIG_AS_AVX2
14279 #include <linux/linkage.h>
14280 +#include <asm/alternative-asm.h>
14281
14282 ## assume buffers not aligned
14283 #define VMOVDQ vmovdqu
14284 @@ -720,6 +721,7 @@ done_hash:
14285 popq %r12
14286 popq %rbp
14287 popq %rbx
14288 + pax_force_retaddr
14289 ret
14290 ENDPROC(sha256_transform_rorx)
14291
14292 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
14293 index 2cedc44..5144899 100644
14294 --- a/arch/x86/crypto/sha256-ssse3-asm.S
14295 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
14296 @@ -47,6 +47,7 @@
14297 ########################################################################
14298
14299 #include <linux/linkage.h>
14300 +#include <asm/alternative-asm.h>
14301
14302 ## assume buffers not aligned
14303 #define MOVDQ movdqu
14304 @@ -471,6 +472,7 @@ done_hash:
14305 popq %rbp
14306 popq %rbx
14307
14308 + pax_force_retaddr
14309 ret
14310 ENDPROC(sha256_transform_ssse3)
14311
14312 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
14313 index 565274d..af6bc08 100644
14314 --- a/arch/x86/crypto/sha512-avx-asm.S
14315 +++ b/arch/x86/crypto/sha512-avx-asm.S
14316 @@ -49,6 +49,7 @@
14317
14318 #ifdef CONFIG_AS_AVX
14319 #include <linux/linkage.h>
14320 +#include <asm/alternative-asm.h>
14321
14322 .text
14323
14324 @@ -364,6 +365,7 @@ updateblock:
14325 mov frame_RSPSAVE(%rsp), %rsp
14326
14327 nowork:
14328 + pax_force_retaddr
14329 ret
14330 ENDPROC(sha512_transform_avx)
14331
14332 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
14333 index 1f20b35..f25c8c1 100644
14334 --- a/arch/x86/crypto/sha512-avx2-asm.S
14335 +++ b/arch/x86/crypto/sha512-avx2-asm.S
14336 @@ -51,6 +51,7 @@
14337
14338 #ifdef CONFIG_AS_AVX2
14339 #include <linux/linkage.h>
14340 +#include <asm/alternative-asm.h>
14341
14342 .text
14343
14344 @@ -678,6 +679,7 @@ done_hash:
14345
14346 # Restore Stack Pointer
14347 mov frame_RSPSAVE(%rsp), %rsp
14348 + pax_force_retaddr
14349 ret
14350 ENDPROC(sha512_transform_rorx)
14351
14352 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
14353 index e610e29..ffcb5ed 100644
14354 --- a/arch/x86/crypto/sha512-ssse3-asm.S
14355 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
14356 @@ -48,6 +48,7 @@
14357 ########################################################################
14358
14359 #include <linux/linkage.h>
14360 +#include <asm/alternative-asm.h>
14361
14362 .text
14363
14364 @@ -363,6 +364,7 @@ updateblock:
14365 mov frame_RSPSAVE(%rsp), %rsp
14366
14367 nowork:
14368 + pax_force_retaddr
14369 ret
14370 ENDPROC(sha512_transform_ssse3)
14371
14372 diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14373 index 0505813..b067311 100644
14374 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14375 +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14376 @@ -24,6 +24,7 @@
14377 */
14378
14379 #include <linux/linkage.h>
14380 +#include <asm/alternative-asm.h>
14381 #include "glue_helper-asm-avx.S"
14382
14383 .file "twofish-avx-x86_64-asm_64.S"
14384 @@ -284,6 +285,7 @@ __twofish_enc_blk8:
14385 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
14386 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
14387
14388 + pax_force_retaddr
14389 ret;
14390 ENDPROC(__twofish_enc_blk8)
14391
14392 @@ -324,6 +326,7 @@ __twofish_dec_blk8:
14393 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
14394 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
14395
14396 + pax_force_retaddr
14397 ret;
14398 ENDPROC(__twofish_dec_blk8)
14399
14400 @@ -342,6 +345,7 @@ ENTRY(twofish_ecb_enc_8way)
14401
14402 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14403
14404 + pax_force_retaddr
14405 ret;
14406 ENDPROC(twofish_ecb_enc_8way)
14407
14408 @@ -360,6 +364,7 @@ ENTRY(twofish_ecb_dec_8way)
14409
14410 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14411
14412 + pax_force_retaddr
14413 ret;
14414 ENDPROC(twofish_ecb_dec_8way)
14415
14416 @@ -370,19 +375,20 @@ ENTRY(twofish_cbc_dec_8way)
14417 * %rdx: src
14418 */
14419
14420 - pushq %r12;
14421 + pushq %r14;
14422
14423 movq %rsi, %r11;
14424 - movq %rdx, %r12;
14425 + movq %rdx, %r14;
14426
14427 load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14428
14429 call __twofish_dec_blk8;
14430
14431 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14432 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14433
14434 - popq %r12;
14435 + popq %r14;
14436
14437 + pax_force_retaddr
14438 ret;
14439 ENDPROC(twofish_cbc_dec_8way)
14440
14441 @@ -394,20 +400,21 @@ ENTRY(twofish_ctr_8way)
14442 * %rcx: iv (little endian, 128bit)
14443 */
14444
14445 - pushq %r12;
14446 + pushq %r14;
14447
14448 movq %rsi, %r11;
14449 - movq %rdx, %r12;
14450 + movq %rdx, %r14;
14451
14452 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14453 RD2, RX0, RX1, RY0);
14454
14455 call __twofish_enc_blk8;
14456
14457 - store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14458 + store_ctr_8way(%r14, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14459
14460 - popq %r12;
14461 + popq %r14;
14462
14463 + pax_force_retaddr
14464 ret;
14465 ENDPROC(twofish_ctr_8way)
14466
14467 @@ -430,6 +437,7 @@ ENTRY(twofish_xts_enc_8way)
14468 /* dst <= regs xor IVs(in dst) */
14469 store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14470
14471 + pax_force_retaddr
14472 ret;
14473 ENDPROC(twofish_xts_enc_8way)
14474
14475 @@ -452,5 +460,6 @@ ENTRY(twofish_xts_dec_8way)
14476 /* dst <= regs xor IVs(in dst) */
14477 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14478
14479 + pax_force_retaddr
14480 ret;
14481 ENDPROC(twofish_xts_dec_8way)
14482 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14483 index 1c3b7ce..02f578d 100644
14484 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14485 +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14486 @@ -21,6 +21,7 @@
14487 */
14488
14489 #include <linux/linkage.h>
14490 +#include <asm/alternative-asm.h>
14491
14492 .file "twofish-x86_64-asm-3way.S"
14493 .text
14494 @@ -258,6 +259,7 @@ ENTRY(__twofish_enc_blk_3way)
14495 popq %r13;
14496 popq %r14;
14497 popq %r15;
14498 + pax_force_retaddr
14499 ret;
14500
14501 .L__enc_xor3:
14502 @@ -269,6 +271,7 @@ ENTRY(__twofish_enc_blk_3way)
14503 popq %r13;
14504 popq %r14;
14505 popq %r15;
14506 + pax_force_retaddr
14507 ret;
14508 ENDPROC(__twofish_enc_blk_3way)
14509
14510 @@ -308,5 +311,6 @@ ENTRY(twofish_dec_blk_3way)
14511 popq %r13;
14512 popq %r14;
14513 popq %r15;
14514 + pax_force_retaddr
14515 ret;
14516 ENDPROC(twofish_dec_blk_3way)
14517 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
14518 index a350c99..c1bac24 100644
14519 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
14520 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
14521 @@ -22,6 +22,7 @@
14522
14523 #include <linux/linkage.h>
14524 #include <asm/asm-offsets.h>
14525 +#include <asm/alternative-asm.h>
14526
14527 #define a_offset 0
14528 #define b_offset 4
14529 @@ -265,6 +266,7 @@ ENTRY(twofish_enc_blk)
14530
14531 popq R1
14532 movl $1,%eax
14533 + pax_force_retaddr
14534 ret
14535 ENDPROC(twofish_enc_blk)
14536
14537 @@ -317,5 +319,6 @@ ENTRY(twofish_dec_blk)
14538
14539 popq R1
14540 movl $1,%eax
14541 + pax_force_retaddr
14542 ret
14543 ENDPROC(twofish_dec_blk)
14544 diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
14545 index 3c71dd9..008b8db 100644
14546 --- a/arch/x86/entry/calling.h
14547 +++ b/arch/x86/entry/calling.h
14548 @@ -93,23 +93,26 @@ For 32-bit we have the following conventions - kernel is built with
14549 .endm
14550
14551 .macro SAVE_C_REGS_HELPER offset=0 rax=1 rcx=1 r8910=1 r11=1
14552 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14553 + movq %r12, R12+\offset(%rsp)
14554 +#endif
14555 .if \r11
14556 - movq %r11, 6*8+\offset(%rsp)
14557 + movq %r11, R11+\offset(%rsp)
14558 .endif
14559 .if \r8910
14560 - movq %r10, 7*8+\offset(%rsp)
14561 - movq %r9, 8*8+\offset(%rsp)
14562 - movq %r8, 9*8+\offset(%rsp)
14563 + movq %r10, R10+\offset(%rsp)
14564 + movq %r9, R9+\offset(%rsp)
14565 + movq %r8, R8+\offset(%rsp)
14566 .endif
14567 .if \rax
14568 - movq %rax, 10*8+\offset(%rsp)
14569 + movq %rax, RAX+\offset(%rsp)
14570 .endif
14571 .if \rcx
14572 - movq %rcx, 11*8+\offset(%rsp)
14573 + movq %rcx, RCX+\offset(%rsp)
14574 .endif
14575 - movq %rdx, 12*8+\offset(%rsp)
14576 - movq %rsi, 13*8+\offset(%rsp)
14577 - movq %rdi, 14*8+\offset(%rsp)
14578 + movq %rdx, RDX+\offset(%rsp)
14579 + movq %rsi, RSI+\offset(%rsp)
14580 + movq %rdi, RDI+\offset(%rsp)
14581 .endm
14582 .macro SAVE_C_REGS offset=0
14583 SAVE_C_REGS_HELPER \offset, 1, 1, 1, 1
14584 @@ -128,67 +131,78 @@ For 32-bit we have the following conventions - kernel is built with
14585 .endm
14586
14587 .macro SAVE_EXTRA_REGS offset=0
14588 - movq %r15, 0*8+\offset(%rsp)
14589 - movq %r14, 1*8+\offset(%rsp)
14590 - movq %r13, 2*8+\offset(%rsp)
14591 - movq %r12, 3*8+\offset(%rsp)
14592 - movq %rbp, 4*8+\offset(%rsp)
14593 - movq %rbx, 5*8+\offset(%rsp)
14594 + movq %r15, R15+\offset(%rsp)
14595 + movq %r14, R14+\offset(%rsp)
14596 + movq %r13, R13+\offset(%rsp)
14597 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14598 + movq %r12, R12+\offset(%rsp)
14599 +#endif
14600 + movq %rbp, RBP+\offset(%rsp)
14601 + movq %rbx, RBX+\offset(%rsp)
14602 .endm
14603
14604 .macro RESTORE_EXTRA_REGS offset=0
14605 - movq 0*8+\offset(%rsp), %r15
14606 - movq 1*8+\offset(%rsp), %r14
14607 - movq 2*8+\offset(%rsp), %r13
14608 - movq 3*8+\offset(%rsp), %r12
14609 - movq 4*8+\offset(%rsp), %rbp
14610 - movq 5*8+\offset(%rsp), %rbx
14611 + movq R15+\offset(%rsp), %r15
14612 + movq R14+\offset(%rsp), %r14
14613 + movq R13+\offset(%rsp), %r13
14614 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14615 + movq R12+\offset(%rsp), %r12
14616 +#endif
14617 + movq RBP+\offset(%rsp), %rbp
14618 + movq RBX+\offset(%rsp), %rbx
14619 .endm
14620
14621 .macro ZERO_EXTRA_REGS
14622 xorl %r15d, %r15d
14623 xorl %r14d, %r14d
14624 xorl %r13d, %r13d
14625 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14626 xorl %r12d, %r12d
14627 +#endif
14628 xorl %ebp, %ebp
14629 xorl %ebx, %ebx
14630 .endm
14631
14632 - .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1
14633 + .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1, rstor_r12=1
14634 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14635 + .if \rstor_r12
14636 + movq R12(%rsp), %r12
14637 + .endif
14638 +#endif
14639 .if \rstor_r11
14640 - movq 6*8(%rsp), %r11
14641 + movq R11(%rsp), %r11
14642 .endif
14643 .if \rstor_r8910
14644 - movq 7*8(%rsp), %r10
14645 - movq 8*8(%rsp), %r9
14646 - movq 9*8(%rsp), %r8
14647 + movq R10(%rsp), %r10
14648 + movq R9(%rsp), %r9
14649 + movq R8(%rsp), %r8
14650 .endif
14651 .if \rstor_rax
14652 - movq 10*8(%rsp), %rax
14653 + movq RAX(%rsp), %rax
14654 .endif
14655 .if \rstor_rcx
14656 - movq 11*8(%rsp), %rcx
14657 + movq RCX(%rsp), %rcx
14658 .endif
14659 .if \rstor_rdx
14660 - movq 12*8(%rsp), %rdx
14661 + movq RDX(%rsp), %rdx
14662 .endif
14663 - movq 13*8(%rsp), %rsi
14664 - movq 14*8(%rsp), %rdi
14665 + movq RSI(%rsp), %rsi
14666 + movq RDI(%rsp), %rdi
14667 .endm
14668 .macro RESTORE_C_REGS
14669 - RESTORE_C_REGS_HELPER 1,1,1,1,1
14670 + RESTORE_C_REGS_HELPER 1,1,1,1,1,1
14671 .endm
14672 .macro RESTORE_C_REGS_EXCEPT_RAX
14673 - RESTORE_C_REGS_HELPER 0,1,1,1,1
14674 + RESTORE_C_REGS_HELPER 0,1,1,1,1,0
14675 .endm
14676 .macro RESTORE_C_REGS_EXCEPT_RCX
14677 - RESTORE_C_REGS_HELPER 1,0,1,1,1
14678 + RESTORE_C_REGS_HELPER 1,0,1,1,1,0
14679 .endm
14680 .macro RESTORE_C_REGS_EXCEPT_R11
14681 - RESTORE_C_REGS_HELPER 1,1,0,1,1
14682 + RESTORE_C_REGS_HELPER 1,1,0,1,1,1
14683 .endm
14684 .macro RESTORE_C_REGS_EXCEPT_RCX_R11
14685 - RESTORE_C_REGS_HELPER 1,0,0,1,1
14686 + RESTORE_C_REGS_HELPER 1,0,0,1,1,1
14687 .endm
14688
14689 .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
14690 diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
14691 index 80dcc92..da58bb6 100644
14692 --- a/arch/x86/entry/common.c
14693 +++ b/arch/x86/entry/common.c
14694 @@ -150,6 +150,10 @@ unsigned long syscall_trace_enter_phase1(struct pt_regs *regs, u32 arch)
14695 return 1; /* Something is enabled that we can't handle in phase 1 */
14696 }
14697
14698 +#ifdef CONFIG_GRKERNSEC_SETXID
14699 +extern void gr_delayed_cred_worker(void);
14700 +#endif
14701 +
14702 /* Returns the syscall nr to run (which should match regs->orig_ax). */
14703 long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
14704 unsigned long phase1_result)
14705 @@ -160,6 +164,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
14706
14707 BUG_ON(regs != task_pt_regs(current));
14708
14709 +#ifdef CONFIG_GRKERNSEC_SETXID
14710 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
14711 + gr_delayed_cred_worker();
14712 +#endif
14713 +
14714 /*
14715 * If we stepped into a sysenter/syscall insn, it trapped in
14716 * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
14717 @@ -207,13 +216,6 @@ long syscall_trace_enter(struct pt_regs *regs)
14718 return syscall_trace_enter_phase2(regs, arch, phase1_result);
14719 }
14720
14721 -static struct thread_info *pt_regs_to_thread_info(struct pt_regs *regs)
14722 -{
14723 - unsigned long top_of_stack =
14724 - (unsigned long)(regs + 1) + TOP_OF_KERNEL_STACK_PADDING;
14725 - return (struct thread_info *)(top_of_stack - THREAD_SIZE);
14726 -}
14727 -
14728 /* Called with IRQs disabled. */
14729 __visible void prepare_exit_to_usermode(struct pt_regs *regs)
14730 {
14731 @@ -230,7 +232,7 @@ __visible void prepare_exit_to_usermode(struct pt_regs *regs)
14732 */
14733 while (true) {
14734 u32 cached_flags =
14735 - READ_ONCE(pt_regs_to_thread_info(regs)->flags);
14736 + READ_ONCE(current_thread_info()->flags);
14737
14738 if (!(cached_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME |
14739 _TIF_UPROBE | _TIF_NEED_RESCHED |
14740 @@ -271,7 +273,7 @@ __visible void prepare_exit_to_usermode(struct pt_regs *regs)
14741 */
14742 __visible void syscall_return_slowpath(struct pt_regs *regs)
14743 {
14744 - struct thread_info *ti = pt_regs_to_thread_info(regs);
14745 + struct thread_info *ti = current_thread_info();
14746 u32 cached_flags = READ_ONCE(ti->flags);
14747 bool step;
14748
14749 @@ -281,6 +283,11 @@ __visible void syscall_return_slowpath(struct pt_regs *regs)
14750 regs->orig_ax))
14751 local_irq_enable();
14752
14753 +#ifdef CONFIG_GRKERNSEC_SETXID
14754 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
14755 + gr_delayed_cred_worker();
14756 +#endif
14757 +
14758 /*
14759 * First do one-time work. If these work items are enabled, we
14760 * want to run them exactly once per syscall exit with IRQs on.
14761 @@ -301,7 +308,7 @@ __visible void syscall_return_slowpath(struct pt_regs *regs)
14762 step = unlikely(
14763 (cached_flags & (_TIF_SINGLESTEP | _TIF_SYSCALL_EMU))
14764 == _TIF_SINGLESTEP);
14765 - if (step || cached_flags & _TIF_SYSCALL_TRACE)
14766 + if (step || (cached_flags & _TIF_SYSCALL_TRACE))
14767 tracehook_report_syscall_exit(regs, step);
14768 }
14769
14770 diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
14771 index b2909bf..47ba402 100644
14772 --- a/arch/x86/entry/entry_32.S
14773 +++ b/arch/x86/entry/entry_32.S
14774 @@ -147,13 +147,154 @@
14775 movl \reg, PT_GS(%esp)
14776 .endm
14777 .macro SET_KERNEL_GS reg
14778 +
14779 +#ifdef CONFIG_CC_STACKPROTECTOR
14780 movl $(__KERNEL_STACK_CANARY), \reg
14781 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
14782 + movl $(__USER_DS), \reg
14783 +#else
14784 + xorl \reg, \reg
14785 +#endif
14786 +
14787 movl \reg, %gs
14788 .endm
14789
14790 #endif /* CONFIG_X86_32_LAZY_GS */
14791
14792 -.macro SAVE_ALL
14793 +.macro pax_enter_kernel
14794 +#ifdef CONFIG_PAX_KERNEXEC
14795 + call pax_enter_kernel
14796 +#endif
14797 +.endm
14798 +
14799 +.macro pax_exit_kernel
14800 +#ifdef CONFIG_PAX_KERNEXEC
14801 + call pax_exit_kernel
14802 +#endif
14803 +.endm
14804 +
14805 +#ifdef CONFIG_PAX_KERNEXEC
14806 +ENTRY(pax_enter_kernel)
14807 +#ifdef CONFIG_PARAVIRT
14808 + pushl %eax
14809 + pushl %ecx
14810 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0)
14811 + mov %eax, %esi
14812 +#else
14813 + mov %cr0, %esi
14814 +#endif
14815 + bts $X86_CR0_WP_BIT, %esi
14816 + jnc 1f
14817 + mov %cs, %esi
14818 + cmp $__KERNEL_CS, %esi
14819 + jz 3f
14820 + ljmp $__KERNEL_CS, $3f
14821 +1: ljmp $__KERNEXEC_KERNEL_CS, $2f
14822 +2:
14823 +#ifdef CONFIG_PARAVIRT
14824 + mov %esi, %eax
14825 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
14826 +#else
14827 + mov %esi, %cr0
14828 +#endif
14829 +3:
14830 +#ifdef CONFIG_PARAVIRT
14831 + popl %ecx
14832 + popl %eax
14833 +#endif
14834 + ret
14835 +ENDPROC(pax_enter_kernel)
14836 +
14837 +ENTRY(pax_exit_kernel)
14838 +#ifdef CONFIG_PARAVIRT
14839 + pushl %eax
14840 + pushl %ecx
14841 +#endif
14842 + mov %cs, %esi
14843 + cmp $__KERNEXEC_KERNEL_CS, %esi
14844 + jnz 2f
14845 +#ifdef CONFIG_PARAVIRT
14846 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0);
14847 + mov %eax, %esi
14848 +#else
14849 + mov %cr0, %esi
14850 +#endif
14851 + btr $X86_CR0_WP_BIT, %esi
14852 + ljmp $__KERNEL_CS, $1f
14853 +1:
14854 +#ifdef CONFIG_PARAVIRT
14855 + mov %esi, %eax
14856 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0);
14857 +#else
14858 + mov %esi, %cr0
14859 +#endif
14860 +2:
14861 +#ifdef CONFIG_PARAVIRT
14862 + popl %ecx
14863 + popl %eax
14864 +#endif
14865 + ret
14866 +ENDPROC(pax_exit_kernel)
14867 +#endif
14868 +
14869 + .macro pax_erase_kstack
14870 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
14871 + call pax_erase_kstack
14872 +#endif
14873 + .endm
14874 +
14875 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
14876 +/*
14877 + * ebp: thread_info
14878 + */
14879 +ENTRY(pax_erase_kstack)
14880 + pushl %edi
14881 + pushl %ecx
14882 + pushl %eax
14883 +
14884 + mov TI_lowest_stack(%ebp), %edi
14885 + mov $-0xBEEF, %eax
14886 + std
14887 +
14888 +1: mov %edi, %ecx
14889 + and $THREAD_SIZE_asm - 1, %ecx
14890 + shr $2, %ecx
14891 + repne scasl
14892 + jecxz 2f
14893 +
14894 + cmp $2*16, %ecx
14895 + jc 2f
14896 +
14897 + mov $2*16, %ecx
14898 + repe scasl
14899 + jecxz 2f
14900 + jne 1b
14901 +
14902 +2: cld
14903 + or $2*4, %edi
14904 + mov %esp, %ecx
14905 + sub %edi, %ecx
14906 +
14907 + cmp $THREAD_SIZE_asm, %ecx
14908 + jb 3f
14909 + ud2
14910 +3:
14911 +
14912 + shr $2, %ecx
14913 + rep stosl
14914 +
14915 + mov TI_task_thread_sp0(%ebp), %edi
14916 + sub $128, %edi
14917 + mov %edi, TI_lowest_stack(%ebp)
14918 +
14919 + popl %eax
14920 + popl %ecx
14921 + popl %edi
14922 + ret
14923 +ENDPROC(pax_erase_kstack)
14924 +#endif
14925 +
14926 +.macro __SAVE_ALL _DS
14927 cld
14928 PUSH_GS
14929 pushl %fs
14930 @@ -166,7 +307,7 @@
14931 pushl %edx
14932 pushl %ecx
14933 pushl %ebx
14934 - movl $(__USER_DS), %edx
14935 + movl $\_DS, %edx
14936 movl %edx, %ds
14937 movl %edx, %es
14938 movl $(__KERNEL_PERCPU), %edx
14939 @@ -174,6 +315,15 @@
14940 SET_KERNEL_GS %edx
14941 .endm
14942
14943 +.macro SAVE_ALL
14944 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
14945 + __SAVE_ALL __KERNEL_DS
14946 + pax_enter_kernel
14947 +#else
14948 + __SAVE_ALL __USER_DS
14949 +#endif
14950 +.endm
14951 +
14952 .macro RESTORE_INT_REGS
14953 popl %ebx
14954 popl %ecx
14955 @@ -212,7 +362,7 @@ ENTRY(ret_from_fork)
14956 pushl $0x0202 # Reset kernel eflags
14957 popfl
14958 jmp syscall_exit
14959 -END(ret_from_fork)
14960 +ENDPROC(ret_from_fork)
14961
14962 ENTRY(ret_from_kernel_thread)
14963 pushl %eax
14964 @@ -252,7 +402,15 @@ ret_from_intr:
14965 andl $SEGMENT_RPL_MASK, %eax
14966 #endif
14967 cmpl $USER_RPL, %eax
14968 +
14969 +#ifdef CONFIG_PAX_KERNEXEC
14970 + jae resume_userspace
14971 +
14972 + pax_exit_kernel
14973 + jmp resume_kernel
14974 +#else
14975 jb resume_kernel # not returning to v8086 or userspace
14976 +#endif
14977
14978 ENTRY(resume_userspace)
14979 LOCKDEP_SYS_EXIT
14980 @@ -260,8 +418,8 @@ ENTRY(resume_userspace)
14981 TRACE_IRQS_OFF
14982 movl %esp, %eax
14983 call prepare_exit_to_usermode
14984 - jmp restore_all
14985 -END(ret_from_exception)
14986 + jmp restore_all_pax
14987 +ENDPROC(ret_from_exception)
14988
14989 #ifdef CONFIG_PREEMPT
14990 ENTRY(resume_kernel)
14991 @@ -273,7 +431,7 @@ need_resched:
14992 jz restore_all
14993 call preempt_schedule_irq
14994 jmp need_resched
14995 -END(resume_kernel)
14996 +ENDPROC(resume_kernel)
14997 #endif
14998
14999 /*
15000 @@ -298,32 +456,44 @@ sysenter_past_esp:
15001 pushl $__USER_CS
15002 /*
15003 * Push current_thread_info()->sysenter_return to the stack.
15004 - * A tiny bit of offset fixup is necessary: TI_sysenter_return
15005 - * is relative to thread_info, which is at the bottom of the
15006 - * kernel stack page. 4*4 means the 4 words pushed above;
15007 - * TOP_OF_KERNEL_STACK_PADDING takes us to the top of the stack;
15008 - * and THREAD_SIZE takes us to the bottom.
15009 */
15010 - pushl ((TI_sysenter_return) - THREAD_SIZE + TOP_OF_KERNEL_STACK_PADDING + 4*4)(%esp)
15011 + pushl $0
15012
15013 pushl %eax
15014 SAVE_ALL
15015 + GET_THREAD_INFO(%ebp)
15016 + movl TI_sysenter_return(%ebp), %ebp
15017 + movl %ebp, PT_EIP(%esp)
15018 ENABLE_INTERRUPTS(CLBR_NONE)
15019
15020 /*
15021 * Load the potential sixth argument from user stack.
15022 * Careful about security.
15023 */
15024 + movl PT_OLDESP(%esp),%ebp
15025 +
15026 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15027 + mov PT_OLDSS(%esp), %ds
15028 +1: movl %ds:(%ebp), %ebp
15029 + push %ss
15030 + pop %ds
15031 +#else
15032 cmpl $__PAGE_OFFSET-3, %ebp
15033 jae syscall_fault
15034 ASM_STAC
15035 1: movl (%ebp), %ebp
15036 ASM_CLAC
15037 +#endif
15038 +
15039 movl %ebp, PT_EBP(%esp)
15040 _ASM_EXTABLE(1b, syscall_fault)
15041
15042 GET_THREAD_INFO(%ebp)
15043
15044 +#ifdef CONFIG_PAX_RANDKSTACK
15045 + pax_erase_kstack
15046 +#endif
15047 +
15048 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15049 jnz syscall_trace_entry
15050 sysenter_do_call:
15051 @@ -339,20 +509,38 @@ sysenter_after_call:
15052 testl $_TIF_ALLWORK_MASK, %ecx
15053 jnz syscall_exit_work_irqs_off
15054 sysenter_exit:
15055 +
15056 +#ifdef CONFIG_PAX_RANDKSTACK
15057 + pushl %eax
15058 + movl %esp, %eax
15059 + call pax_randomize_kstack
15060 + popl %eax
15061 +#endif
15062 +
15063 + pax_erase_kstack
15064 +
15065 /* if something modifies registers it must also disable sysexit */
15066 movl PT_EIP(%esp), %edx
15067 movl PT_OLDESP(%esp), %ecx
15068 xorl %ebp, %ebp
15069 TRACE_IRQS_ON
15070 1: mov PT_FS(%esp), %fs
15071 +2: mov PT_DS(%esp), %ds
15072 +3: mov PT_ES(%esp), %es
15073 PTGS_TO_GS
15074 ENABLE_INTERRUPTS_SYSEXIT
15075
15076 .pushsection .fixup, "ax"
15077 -2: movl $0, PT_FS(%esp)
15078 +4: movl $0, PT_FS(%esp)
15079 + jmp 1b
15080 +5: movl $0, PT_DS(%esp)
15081 + jmp 1b
15082 +6: movl $0, PT_ES(%esp)
15083 jmp 1b
15084 .popsection
15085 - _ASM_EXTABLE(1b, 2b)
15086 + _ASM_EXTABLE(1b, 4b)
15087 + _ASM_EXTABLE(2b, 5b)
15088 + _ASM_EXTABLE(3b, 6b)
15089 PTGS_TO_GS_EX
15090 ENDPROC(entry_SYSENTER_32)
15091
15092 @@ -362,6 +550,11 @@ ENTRY(entry_INT80_32)
15093 pushl %eax # save orig_eax
15094 SAVE_ALL
15095 GET_THREAD_INFO(%ebp)
15096 +
15097 +#ifdef CONFIG_PAX_RANDKSTACK
15098 + pax_erase_kstack
15099 +#endif
15100 +
15101 # system call tracing in operation / emulation
15102 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15103 jnz syscall_trace_entry
15104 @@ -375,6 +568,15 @@ syscall_exit:
15105 LOCKDEP_SYS_EXIT
15106 jmp syscall_exit_work
15107
15108 +restore_all_pax:
15109 +
15110 +#ifdef CONFIG_PAX_RANDKSTACK
15111 + movl %esp, %eax
15112 + call pax_randomize_kstack
15113 +#endif
15114 +
15115 + pax_erase_kstack
15116 +
15117 restore_all:
15118 TRACE_IRQS_IRET
15119 restore_all_notrace:
15120 @@ -429,14 +631,34 @@ ldt_ss:
15121 * compensating for the offset by changing to the ESPFIX segment with
15122 * a base address that matches for the difference.
15123 */
15124 -#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
15125 +#define GDT_ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)(%ebx)
15126 mov %esp, %edx /* load kernel esp */
15127 mov PT_OLDESP(%esp), %eax /* load userspace esp */
15128 mov %dx, %ax /* eax: new kernel esp */
15129 sub %eax, %edx /* offset (low word is 0) */
15130 +#ifdef CONFIG_SMP
15131 + movl PER_CPU_VAR(cpu_number), %ebx
15132 + shll $PAGE_SHIFT_asm, %ebx
15133 + addl $cpu_gdt_table, %ebx
15134 +#else
15135 + movl $cpu_gdt_table, %ebx
15136 +#endif
15137 shr $16, %edx
15138 - mov %dl, GDT_ESPFIX_SS + 4 /* bits 16..23 */
15139 - mov %dh, GDT_ESPFIX_SS + 7 /* bits 24..31 */
15140 +
15141 +#ifdef CONFIG_PAX_KERNEXEC
15142 + mov %cr0, %esi
15143 + btr $X86_CR0_WP_BIT, %esi
15144 + mov %esi, %cr0
15145 +#endif
15146 +
15147 + mov %dl, 4 + GDT_ESPFIX_SS /* bits 16..23 */
15148 + mov %dh, 7 + GDT_ESPFIX_SS /* bits 24..31 */
15149 +
15150 +#ifdef CONFIG_PAX_KERNEXEC
15151 + bts $X86_CR0_WP_BIT, %esi
15152 + mov %esi, %cr0
15153 +#endif
15154 +
15155 pushl $__ESPFIX_SS
15156 pushl %eax /* new kernel esp */
15157 /*
15158 @@ -456,11 +678,14 @@ syscall_trace_entry:
15159 movl $-ENOSYS, PT_EAX(%esp)
15160 movl %esp, %eax
15161 call syscall_trace_enter
15162 +
15163 + pax_erase_kstack
15164 +
15165 /* What it returned is what we'll actually use. */
15166 cmpl $(NR_syscalls), %eax
15167 jnae syscall_call
15168 jmp syscall_exit
15169 -END(syscall_trace_entry)
15170 +ENDPROC(syscall_trace_entry)
15171
15172 # perform syscall exit tracing
15173 ALIGN
15174 @@ -471,25 +696,29 @@ syscall_exit_work_irqs_off:
15175 syscall_exit_work:
15176 movl %esp, %eax
15177 call syscall_return_slowpath
15178 - jmp restore_all
15179 -END(syscall_exit_work)
15180 + jmp restore_all_pax
15181 +ENDPROC(syscall_exit_work)
15182
15183 syscall_fault:
15184 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15185 + push %ss
15186 + pop %ds
15187 +#endif
15188 ASM_CLAC
15189 GET_THREAD_INFO(%ebp)
15190 movl $-EFAULT, PT_EAX(%esp)
15191 jmp resume_userspace
15192 -END(syscall_fault)
15193 +ENDPROC(syscall_fault)
15194
15195 syscall_badsys:
15196 movl $-ENOSYS, %eax
15197 jmp syscall_after_call
15198 -END(syscall_badsys)
15199 +ENDPROC(syscall_badsys)
15200
15201 sysenter_badsys:
15202 movl $-ENOSYS, %eax
15203 jmp sysenter_after_call
15204 -END(sysenter_badsys)
15205 +ENDPROC(sysenter_badsys)
15206
15207 .macro FIXUP_ESPFIX_STACK
15208 /*
15209 @@ -501,8 +730,15 @@ END(sysenter_badsys)
15210 */
15211 #ifdef CONFIG_X86_ESPFIX32
15212 /* fixup the stack */
15213 - mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
15214 - mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
15215 +#ifdef CONFIG_SMP
15216 + movl PER_CPU_VAR(cpu_number), %ebx
15217 + shll $PAGE_SHIFT_asm, %ebx
15218 + addl $cpu_gdt_table, %ebx
15219 +#else
15220 + movl $cpu_gdt_table, %ebx
15221 +#endif
15222 + mov 4 + GDT_ESPFIX_SS, %al /* bits 16..23 */
15223 + mov 7 + GDT_ESPFIX_SS, %ah /* bits 24..31 */
15224 shl $16, %eax
15225 addl %esp, %eax /* the adjusted stack pointer */
15226 pushl $__KERNEL_DS
15227 @@ -538,7 +774,7 @@ ENTRY(irq_entries_start)
15228 jmp common_interrupt
15229 .align 8
15230 .endr
15231 -END(irq_entries_start)
15232 +ENDPROC(irq_entries_start)
15233
15234 /*
15235 * the CPU automatically disables interrupts when executing an IRQ vector,
15236 @@ -585,7 +821,7 @@ ENTRY(coprocessor_error)
15237 pushl $0
15238 pushl $do_coprocessor_error
15239 jmp error_code
15240 -END(coprocessor_error)
15241 +ENDPROC(coprocessor_error)
15242
15243 ENTRY(simd_coprocessor_error)
15244 ASM_CLAC
15245 @@ -599,25 +835,25 @@ ENTRY(simd_coprocessor_error)
15246 pushl $do_simd_coprocessor_error
15247 #endif
15248 jmp error_code
15249 -END(simd_coprocessor_error)
15250 +ENDPROC(simd_coprocessor_error)
15251
15252 ENTRY(device_not_available)
15253 ASM_CLAC
15254 pushl $-1 # mark this as an int
15255 pushl $do_device_not_available
15256 jmp error_code
15257 -END(device_not_available)
15258 +ENDPROC(device_not_available)
15259
15260 #ifdef CONFIG_PARAVIRT
15261 ENTRY(native_iret)
15262 iret
15263 _ASM_EXTABLE(native_iret, iret_exc)
15264 -END(native_iret)
15265 +ENDPROC(native_iret)
15266
15267 ENTRY(native_irq_enable_sysexit)
15268 sti
15269 sysexit
15270 -END(native_irq_enable_sysexit)
15271 +ENDPROC(native_irq_enable_sysexit)
15272 #endif
15273
15274 ENTRY(overflow)
15275 @@ -625,59 +861,59 @@ ENTRY(overflow)
15276 pushl $0
15277 pushl $do_overflow
15278 jmp error_code
15279 -END(overflow)
15280 +ENDPROC(overflow)
15281
15282 ENTRY(bounds)
15283 ASM_CLAC
15284 pushl $0
15285 pushl $do_bounds
15286 jmp error_code
15287 -END(bounds)
15288 +ENDPROC(bounds)
15289
15290 ENTRY(invalid_op)
15291 ASM_CLAC
15292 pushl $0
15293 pushl $do_invalid_op
15294 jmp error_code
15295 -END(invalid_op)
15296 +ENDPROC(invalid_op)
15297
15298 ENTRY(coprocessor_segment_overrun)
15299 ASM_CLAC
15300 pushl $0
15301 pushl $do_coprocessor_segment_overrun
15302 jmp error_code
15303 -END(coprocessor_segment_overrun)
15304 +ENDPROC(coprocessor_segment_overrun)
15305
15306 ENTRY(invalid_TSS)
15307 ASM_CLAC
15308 pushl $do_invalid_TSS
15309 jmp error_code
15310 -END(invalid_TSS)
15311 +ENDPROC(invalid_TSS)
15312
15313 ENTRY(segment_not_present)
15314 ASM_CLAC
15315 pushl $do_segment_not_present
15316 jmp error_code
15317 -END(segment_not_present)
15318 +ENDPROC(segment_not_present)
15319
15320 ENTRY(stack_segment)
15321 ASM_CLAC
15322 pushl $do_stack_segment
15323 jmp error_code
15324 -END(stack_segment)
15325 +ENDPROC(stack_segment)
15326
15327 ENTRY(alignment_check)
15328 ASM_CLAC
15329 pushl $do_alignment_check
15330 jmp error_code
15331 -END(alignment_check)
15332 +ENDPROC(alignment_check)
15333
15334 ENTRY(divide_error)
15335 ASM_CLAC
15336 pushl $0 # no error code
15337 pushl $do_divide_error
15338 jmp error_code
15339 -END(divide_error)
15340 +ENDPROC(divide_error)
15341
15342 #ifdef CONFIG_X86_MCE
15343 ENTRY(machine_check)
15344 @@ -685,7 +921,7 @@ ENTRY(machine_check)
15345 pushl $0
15346 pushl machine_check_vector
15347 jmp error_code
15348 -END(machine_check)
15349 +ENDPROC(machine_check)
15350 #endif
15351
15352 ENTRY(spurious_interrupt_bug)
15353 @@ -693,7 +929,7 @@ ENTRY(spurious_interrupt_bug)
15354 pushl $0
15355 pushl $do_spurious_interrupt_bug
15356 jmp error_code
15357 -END(spurious_interrupt_bug)
15358 +ENDPROC(spurious_interrupt_bug)
15359
15360 #ifdef CONFIG_XEN
15361 /*
15362 @@ -800,7 +1036,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
15363
15364 ENTRY(mcount)
15365 ret
15366 -END(mcount)
15367 +ENDPROC(mcount)
15368
15369 ENTRY(ftrace_caller)
15370 pushl %eax
15371 @@ -830,7 +1066,7 @@ ftrace_graph_call:
15372 .globl ftrace_stub
15373 ftrace_stub:
15374 ret
15375 -END(ftrace_caller)
15376 +ENDPROC(ftrace_caller)
15377
15378 ENTRY(ftrace_regs_caller)
15379 pushf /* push flags before compare (in cs location) */
15380 @@ -928,7 +1164,7 @@ trace:
15381 popl %ecx
15382 popl %eax
15383 jmp ftrace_stub
15384 -END(mcount)
15385 +ENDPROC(mcount)
15386 #endif /* CONFIG_DYNAMIC_FTRACE */
15387 #endif /* CONFIG_FUNCTION_TRACER */
15388
15389 @@ -946,7 +1182,7 @@ ENTRY(ftrace_graph_caller)
15390 popl %ecx
15391 popl %eax
15392 ret
15393 -END(ftrace_graph_caller)
15394 +ENDPROC(ftrace_graph_caller)
15395
15396 .globl return_to_handler
15397 return_to_handler:
15398 @@ -994,14 +1230,17 @@ error_code:
15399 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
15400 REG_TO_PTGS %ecx
15401 SET_KERNEL_GS %ecx
15402 - movl $(__USER_DS), %ecx
15403 + movl $(__KERNEL_DS), %ecx
15404 movl %ecx, %ds
15405 movl %ecx, %es
15406 +
15407 + pax_enter_kernel
15408 +
15409 TRACE_IRQS_OFF
15410 movl %esp, %eax # pt_regs pointer
15411 call *%edi
15412 jmp ret_from_exception
15413 -END(page_fault)
15414 +ENDPROC(page_fault)
15415
15416 /*
15417 * Debug traps and NMI can happen at the one SYSENTER instruction
15418 @@ -1039,7 +1278,7 @@ debug_stack_correct:
15419 movl %esp, %eax # pt_regs pointer
15420 call do_debug
15421 jmp ret_from_exception
15422 -END(debug)
15423 +ENDPROC(debug)
15424
15425 /*
15426 * NMI is doubly nasty. It can happen _while_ we're handling
15427 @@ -1078,6 +1317,9 @@ nmi_stack_correct:
15428 xorl %edx, %edx # zero error code
15429 movl %esp, %eax # pt_regs pointer
15430 call do_nmi
15431 +
15432 + pax_exit_kernel
15433 +
15434 jmp restore_all_notrace
15435
15436 nmi_stack_fixup:
15437 @@ -1111,11 +1353,14 @@ nmi_espfix_stack:
15438 FIXUP_ESPFIX_STACK # %eax == %esp
15439 xorl %edx, %edx # zero error code
15440 call do_nmi
15441 +
15442 + pax_exit_kernel
15443 +
15444 RESTORE_REGS
15445 lss 12+4(%esp), %esp # back to espfix stack
15446 jmp irq_return
15447 #endif
15448 -END(nmi)
15449 +ENDPROC(nmi)
15450
15451 ENTRY(int3)
15452 ASM_CLAC
15453 @@ -1126,17 +1371,17 @@ ENTRY(int3)
15454 movl %esp, %eax # pt_regs pointer
15455 call do_int3
15456 jmp ret_from_exception
15457 -END(int3)
15458 +ENDPROC(int3)
15459
15460 ENTRY(general_protection)
15461 pushl $do_general_protection
15462 jmp error_code
15463 -END(general_protection)
15464 +ENDPROC(general_protection)
15465
15466 #ifdef CONFIG_KVM_GUEST
15467 ENTRY(async_page_fault)
15468 ASM_CLAC
15469 pushl $do_async_page_fault
15470 jmp error_code
15471 -END(async_page_fault)
15472 +ENDPROC(async_page_fault)
15473 #endif
15474 diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
15475 index 055a01d..348b266 100644
15476 --- a/arch/x86/entry/entry_64.S
15477 +++ b/arch/x86/entry/entry_64.S
15478 @@ -36,6 +36,8 @@
15479 #include <asm/smap.h>
15480 #include <asm/pgtable_types.h>
15481 #include <linux/err.h>
15482 +#include <asm/pgtable.h>
15483 +#include <asm/alternative-asm.h>
15484
15485 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
15486 #include <linux/elf-em.h>
15487 @@ -53,6 +55,402 @@ ENTRY(native_usergs_sysret64)
15488 ENDPROC(native_usergs_sysret64)
15489 #endif /* CONFIG_PARAVIRT */
15490
15491 + .macro ljmpq sel, off
15492 +#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) || defined (CONFIG_MATOM)
15493 + .byte 0x48; ljmp *1234f(%rip)
15494 + .pushsection .rodata
15495 + .align 16
15496 + 1234: .quad \off; .word \sel
15497 + .popsection
15498 +#else
15499 + pushq $\sel
15500 + pushq $\off
15501 + lretq
15502 +#endif
15503 + .endm
15504 +
15505 + .macro pax_enter_kernel
15506 + pax_set_fptr_mask
15507 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15508 + call pax_enter_kernel
15509 +#endif
15510 + .endm
15511 +
15512 + .macro pax_exit_kernel
15513 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15514 + call pax_exit_kernel
15515 +#endif
15516 + .endm
15517 +
15518 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15519 +ENTRY(pax_enter_kernel)
15520 + pushq %rdi
15521 +
15522 +#ifdef CONFIG_PARAVIRT
15523 + PV_SAVE_REGS(CLBR_RDI)
15524 +#endif
15525 +
15526 +#ifdef CONFIG_PAX_KERNEXEC
15527 + GET_CR0_INTO_RDI
15528 + bts $X86_CR0_WP_BIT,%rdi
15529 + jnc 3f
15530 + mov %cs,%edi
15531 + cmp $__KERNEL_CS,%edi
15532 + jnz 2f
15533 +1:
15534 +#endif
15535 +
15536 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15537 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15538 + GET_CR3_INTO_RDI
15539 + cmp $0,%dil
15540 + jnz 112f
15541 + mov $__KERNEL_DS,%edi
15542 + mov %edi,%ss
15543 + jmp 111f
15544 +112: cmp $1,%dil
15545 + jz 113f
15546 + ud2
15547 +113: sub $4097,%rdi
15548 + bts $63,%rdi
15549 + SET_RDI_INTO_CR3
15550 + mov $__UDEREF_KERNEL_DS,%edi
15551 + mov %edi,%ss
15552 +111:
15553 +#endif
15554 +
15555 +#ifdef CONFIG_PARAVIRT
15556 + PV_RESTORE_REGS(CLBR_RDI)
15557 +#endif
15558 +
15559 + popq %rdi
15560 + pax_force_retaddr
15561 + retq
15562 +
15563 +#ifdef CONFIG_PAX_KERNEXEC
15564 +2: ljmpq __KERNEL_CS,1b
15565 +3: ljmpq __KERNEXEC_KERNEL_CS,4f
15566 +4: SET_RDI_INTO_CR0
15567 + jmp 1b
15568 +#endif
15569 +ENDPROC(pax_enter_kernel)
15570 +
15571 +ENTRY(pax_exit_kernel)
15572 + pushq %rdi
15573 +
15574 +#ifdef CONFIG_PARAVIRT
15575 + PV_SAVE_REGS(CLBR_RDI)
15576 +#endif
15577 +
15578 +#ifdef CONFIG_PAX_KERNEXEC
15579 + mov %cs,%rdi
15580 + cmp $__KERNEXEC_KERNEL_CS,%edi
15581 + jz 2f
15582 + GET_CR0_INTO_RDI
15583 + bts $X86_CR0_WP_BIT,%rdi
15584 + jnc 4f
15585 +1:
15586 +#endif
15587 +
15588 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15589 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15590 + mov %ss,%edi
15591 + cmp $__UDEREF_KERNEL_DS,%edi
15592 + jnz 111f
15593 + GET_CR3_INTO_RDI
15594 + cmp $0,%dil
15595 + jz 112f
15596 + ud2
15597 +112: add $4097,%rdi
15598 + bts $63,%rdi
15599 + SET_RDI_INTO_CR3
15600 + mov $__KERNEL_DS,%edi
15601 + mov %edi,%ss
15602 +111:
15603 +#endif
15604 +
15605 +#ifdef CONFIG_PARAVIRT
15606 + PV_RESTORE_REGS(CLBR_RDI);
15607 +#endif
15608 +
15609 + popq %rdi
15610 + pax_force_retaddr
15611 + retq
15612 +
15613 +#ifdef CONFIG_PAX_KERNEXEC
15614 +2: GET_CR0_INTO_RDI
15615 + btr $X86_CR0_WP_BIT,%rdi
15616 + jnc 4f
15617 + ljmpq __KERNEL_CS,3f
15618 +3: SET_RDI_INTO_CR0
15619 + jmp 1b
15620 +4: ud2
15621 + jmp 4b
15622 +#endif
15623 +ENDPROC(pax_exit_kernel)
15624 +#endif
15625 +
15626 + .macro pax_enter_kernel_user
15627 + pax_set_fptr_mask
15628 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15629 + call pax_enter_kernel_user
15630 +#endif
15631 + .endm
15632 +
15633 + .macro pax_exit_kernel_user
15634 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15635 + call pax_exit_kernel_user
15636 +#endif
15637 +#ifdef CONFIG_PAX_RANDKSTACK
15638 + pushq %rax
15639 + pushq %r11
15640 + call pax_randomize_kstack
15641 + popq %r11
15642 + popq %rax
15643 +#endif
15644 + .endm
15645 +
15646 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15647 +ENTRY(pax_enter_kernel_user)
15648 + pushq %rdi
15649 + pushq %rbx
15650 +
15651 +#ifdef CONFIG_PARAVIRT
15652 + PV_SAVE_REGS(CLBR_RDI)
15653 +#endif
15654 +
15655 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15656 + GET_CR3_INTO_RDI
15657 + cmp $1,%dil
15658 + jnz 4f
15659 + sub $4097,%rdi
15660 + bts $63,%rdi
15661 + SET_RDI_INTO_CR3
15662 + jmp 3f
15663 +111:
15664 +
15665 + GET_CR3_INTO_RDI
15666 + mov %rdi,%rbx
15667 + add $__START_KERNEL_map,%rbx
15668 + sub phys_base(%rip),%rbx
15669 +
15670 +#ifdef CONFIG_PARAVIRT
15671 + cmpl $0, pv_info+PARAVIRT_enabled
15672 + jz 1f
15673 + pushq %rdi
15674 + i = 0
15675 + .rept USER_PGD_PTRS
15676 + mov i*8(%rbx),%rsi
15677 + mov $0,%sil
15678 + lea i*8(%rbx),%rdi
15679 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15680 + i = i + 1
15681 + .endr
15682 + popq %rdi
15683 + jmp 2f
15684 +1:
15685 +#endif
15686 +
15687 + i = 0
15688 + .rept USER_PGD_PTRS
15689 + movb $0,i*8(%rbx)
15690 + i = i + 1
15691 + .endr
15692 +
15693 +2: SET_RDI_INTO_CR3
15694 +
15695 +#ifdef CONFIG_PAX_KERNEXEC
15696 + GET_CR0_INTO_RDI
15697 + bts $X86_CR0_WP_BIT,%rdi
15698 + SET_RDI_INTO_CR0
15699 +#endif
15700 +
15701 +3:
15702 +
15703 +#ifdef CONFIG_PARAVIRT
15704 + PV_RESTORE_REGS(CLBR_RDI)
15705 +#endif
15706 +
15707 + popq %rbx
15708 + popq %rdi
15709 + pax_force_retaddr
15710 + retq
15711 +4: ud2
15712 +ENDPROC(pax_enter_kernel_user)
15713 +
15714 +ENTRY(pax_exit_kernel_user)
15715 + pushq %rdi
15716 + pushq %rbx
15717 +
15718 +#ifdef CONFIG_PARAVIRT
15719 + PV_SAVE_REGS(CLBR_RDI)
15720 +#endif
15721 +
15722 + GET_CR3_INTO_RDI
15723 + ALTERNATIVE "jmp 1f", "", X86_FEATURE_PCID
15724 + cmp $0,%dil
15725 + jnz 3f
15726 + add $4097,%rdi
15727 + bts $63,%rdi
15728 + SET_RDI_INTO_CR3
15729 + jmp 2f
15730 +1:
15731 +
15732 + mov %rdi,%rbx
15733 +
15734 +#ifdef CONFIG_PAX_KERNEXEC
15735 + GET_CR0_INTO_RDI
15736 + btr $X86_CR0_WP_BIT,%rdi
15737 + jnc 3f
15738 + SET_RDI_INTO_CR0
15739 +#endif
15740 +
15741 + add $__START_KERNEL_map,%rbx
15742 + sub phys_base(%rip),%rbx
15743 +
15744 +#ifdef CONFIG_PARAVIRT
15745 + cmpl $0, pv_info+PARAVIRT_enabled
15746 + jz 1f
15747 + i = 0
15748 + .rept USER_PGD_PTRS
15749 + mov i*8(%rbx),%rsi
15750 + mov $0x67,%sil
15751 + lea i*8(%rbx),%rdi
15752 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15753 + i = i + 1
15754 + .endr
15755 + jmp 2f
15756 +1:
15757 +#endif
15758 +
15759 + i = 0
15760 + .rept USER_PGD_PTRS
15761 + movb $0x67,i*8(%rbx)
15762 + i = i + 1
15763 + .endr
15764 +2:
15765 +
15766 +#ifdef CONFIG_PARAVIRT
15767 + PV_RESTORE_REGS(CLBR_RDI)
15768 +#endif
15769 +
15770 + popq %rbx
15771 + popq %rdi
15772 + pax_force_retaddr
15773 + retq
15774 +3: ud2
15775 +ENDPROC(pax_exit_kernel_user)
15776 +#endif
15777 +
15778 + .macro pax_enter_kernel_nmi
15779 + pax_set_fptr_mask
15780 +
15781 +#ifdef CONFIG_PAX_KERNEXEC
15782 + GET_CR0_INTO_RDI
15783 + bts $X86_CR0_WP_BIT,%rdi
15784 + jc 110f
15785 + SET_RDI_INTO_CR0
15786 + or $2,%ebx
15787 +110:
15788 +#endif
15789 +
15790 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15791 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15792 + GET_CR3_INTO_RDI
15793 + cmp $0,%dil
15794 + jz 111f
15795 + sub $4097,%rdi
15796 + or $4,%ebx
15797 + bts $63,%rdi
15798 + SET_RDI_INTO_CR3
15799 + mov $__UDEREF_KERNEL_DS,%edi
15800 + mov %edi,%ss
15801 +111:
15802 +#endif
15803 + .endm
15804 +
15805 + .macro pax_exit_kernel_nmi
15806 +#ifdef CONFIG_PAX_KERNEXEC
15807 + btr $1,%ebx
15808 + jnc 110f
15809 + GET_CR0_INTO_RDI
15810 + btr $X86_CR0_WP_BIT,%rdi
15811 + SET_RDI_INTO_CR0
15812 +110:
15813 +#endif
15814 +
15815 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15816 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15817 + btr $2,%ebx
15818 + jnc 111f
15819 + GET_CR3_INTO_RDI
15820 + add $4097,%rdi
15821 + bts $63,%rdi
15822 + SET_RDI_INTO_CR3
15823 + mov $__KERNEL_DS,%edi
15824 + mov %edi,%ss
15825 +111:
15826 +#endif
15827 + .endm
15828 +
15829 + .macro pax_erase_kstack
15830 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15831 + call pax_erase_kstack
15832 +#endif
15833 + .endm
15834 +
15835 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15836 +ENTRY(pax_erase_kstack)
15837 + pushq %rdi
15838 + pushq %rcx
15839 + pushq %rax
15840 + pushq %r11
15841 +
15842 + GET_THREAD_INFO(%r11)
15843 + mov TI_lowest_stack(%r11), %rdi
15844 + mov $-0xBEEF, %rax
15845 + std
15846 +
15847 +1: mov %edi, %ecx
15848 + and $THREAD_SIZE_asm - 1, %ecx
15849 + shr $3, %ecx
15850 + repne scasq
15851 + jecxz 2f
15852 +
15853 + cmp $2*8, %ecx
15854 + jc 2f
15855 +
15856 + mov $2*8, %ecx
15857 + repe scasq
15858 + jecxz 2f
15859 + jne 1b
15860 +
15861 +2: cld
15862 + or $2*8, %rdi
15863 + mov %esp, %ecx
15864 + sub %edi, %ecx
15865 +
15866 + cmp $THREAD_SIZE_asm, %rcx
15867 + jb 3f
15868 + ud2
15869 +3:
15870 +
15871 + shr $3, %ecx
15872 + rep stosq
15873 +
15874 + mov TI_task_thread_sp0(%r11), %rdi
15875 + sub $256, %rdi
15876 + mov %rdi, TI_lowest_stack(%r11)
15877 +
15878 + popq %r11
15879 + popq %rax
15880 + popq %rcx
15881 + popq %rdi
15882 + pax_force_retaddr
15883 + ret
15884 +ENDPROC(pax_erase_kstack)
15885 +#endif
15886 +
15887 .macro TRACE_IRQS_IRETQ
15888 #ifdef CONFIG_TRACE_IRQFLAGS
15889 bt $9, EFLAGS(%rsp) /* interrupts off? */
15890 @@ -88,7 +486,7 @@ ENDPROC(native_usergs_sysret64)
15891 .endm
15892
15893 .macro TRACE_IRQS_IRETQ_DEBUG
15894 - bt $9, EFLAGS(%rsp) /* interrupts off? */
15895 + bt $X86_EFLAGS_IF_BIT, EFLAGS(%rsp) /* interrupts off? */
15896 jnc 1f
15897 TRACE_IRQS_ON_DEBUG
15898 1:
15899 @@ -148,14 +546,6 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
15900 /* Construct struct pt_regs on stack */
15901 pushq $__USER_DS /* pt_regs->ss */
15902 pushq PER_CPU_VAR(rsp_scratch) /* pt_regs->sp */
15903 - /*
15904 - * Re-enable interrupts.
15905 - * We use 'rsp_scratch' as a scratch space, hence irq-off block above
15906 - * must execute atomically in the face of possible interrupt-driven
15907 - * task preemption. We must enable interrupts only after we're done
15908 - * with using rsp_scratch:
15909 - */
15910 - ENABLE_INTERRUPTS(CLBR_NONE)
15911 pushq %r11 /* pt_regs->flags */
15912 pushq $__USER_CS /* pt_regs->cs */
15913 pushq %rcx /* pt_regs->ip */
15914 @@ -171,7 +561,27 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
15915 pushq %r11 /* pt_regs->r11 */
15916 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
15917
15918 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
15919 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
15920 + movq %r12, R12(%rsp)
15921 +#endif
15922 +
15923 + pax_enter_kernel_user
15924 +
15925 +#ifdef CONFIG_PAX_RANDKSTACK
15926 + pax_erase_kstack
15927 +#endif
15928 +
15929 + /*
15930 + * Re-enable interrupts.
15931 + * We use 'rsp_scratch' as a scratch space, hence irq-off block above
15932 + * must execute atomically in the face of possible interrupt-driven
15933 + * task preemption. We must enable interrupts only after we're done
15934 + * with using rsp_scratch:
15935 + */
15936 + ENABLE_INTERRUPTS(CLBR_NONE)
15937 +
15938 + GET_THREAD_INFO(%rcx)
15939 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%rcx)
15940 jnz tracesys
15941 entry_SYSCALL_64_fastpath:
15942 #if __SYSCALL_MASK == ~0
15943 @@ -204,9 +614,13 @@ entry_SYSCALL_64_fastpath:
15944 * flags (TIF_NOTIFY_RESUME, TIF_USER_RETURN_NOTIFY, etc) set is
15945 * very bad.
15946 */
15947 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
15948 + GET_THREAD_INFO(%rcx)
15949 + testl $_TIF_ALLWORK_MASK, TI_flags(%rcx)
15950 jnz int_ret_from_sys_call_irqs_off /* Go to the slow path */
15951
15952 + pax_exit_kernel_user
15953 + pax_erase_kstack
15954 +
15955 RESTORE_C_REGS_EXCEPT_RCX_R11
15956 movq RIP(%rsp), %rcx
15957 movq EFLAGS(%rsp), %r11
15958 @@ -240,6 +654,9 @@ tracesys:
15959 call syscall_trace_enter_phase1
15960 test %rax, %rax
15961 jnz tracesys_phase2 /* if needed, run the slow path */
15962 +
15963 + pax_erase_kstack
15964 +
15965 RESTORE_C_REGS_EXCEPT_RAX /* else restore clobbered regs */
15966 movq ORIG_RAX(%rsp), %rax
15967 jmp entry_SYSCALL_64_fastpath /* and return to the fast path */
15968 @@ -251,6 +668,8 @@ tracesys_phase2:
15969 movq %rax, %rdx
15970 call syscall_trace_enter_phase2
15971
15972 + pax_erase_kstack
15973 +
15974 /*
15975 * Reload registers from stack in case ptrace changed them.
15976 * We don't reload %rax because syscall_trace_entry_phase2() returned
15977 @@ -279,6 +698,8 @@ GLOBAL(int_ret_from_sys_call)
15978 SAVE_EXTRA_REGS
15979 movq %rsp, %rdi
15980 call syscall_return_slowpath /* returns with IRQs disabled */
15981 + pax_exit_kernel_user
15982 + pax_erase_kstack
15983 RESTORE_EXTRA_REGS
15984 TRACE_IRQS_IRETQ /* we're about to change IF */
15985
15986 @@ -353,14 +774,14 @@ syscall_return_via_sysret:
15987 opportunistic_sysret_failed:
15988 SWAPGS
15989 jmp restore_c_regs_and_iret
15990 -END(entry_SYSCALL_64)
15991 +ENDPROC(entry_SYSCALL_64)
15992
15993
15994 .macro FORK_LIKE func
15995 ENTRY(stub_\func)
15996 SAVE_EXTRA_REGS 8
15997 jmp sys_\func
15998 -END(stub_\func)
15999 +ENDPROC(stub_\func)
16000 .endm
16001
16002 FORK_LIKE clone
16003 @@ -380,7 +801,7 @@ return_from_execve:
16004 ZERO_EXTRA_REGS
16005 movq %rax, RAX(%rsp)
16006 jmp int_ret_from_sys_call
16007 -END(stub_execve)
16008 +ENDPROC(stub_execve)
16009 /*
16010 * Remaining execve stubs are only 7 bytes long.
16011 * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
16012 @@ -389,7 +810,7 @@ END(stub_execve)
16013 GLOBAL(stub_execveat)
16014 call sys_execveat
16015 jmp return_from_execve
16016 -END(stub_execveat)
16017 +ENDPROC(stub_execveat)
16018
16019 #if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION)
16020 .align 8
16021 @@ -397,15 +818,15 @@ GLOBAL(stub_x32_execve)
16022 GLOBAL(stub32_execve)
16023 call compat_sys_execve
16024 jmp return_from_execve
16025 -END(stub32_execve)
16026 -END(stub_x32_execve)
16027 +ENDPROC(stub32_execve)
16028 +ENDPROC(stub_x32_execve)
16029 .align 8
16030 GLOBAL(stub_x32_execveat)
16031 GLOBAL(stub32_execveat)
16032 call compat_sys_execveat
16033 jmp return_from_execve
16034 -END(stub32_execveat)
16035 -END(stub_x32_execveat)
16036 +ENDPROC(stub32_execveat)
16037 +ENDPROC(stub_x32_execveat)
16038 #endif
16039
16040 /*
16041 @@ -434,7 +855,7 @@ ENTRY(stub_x32_rt_sigreturn)
16042 SAVE_EXTRA_REGS 8
16043 call sys32_x32_rt_sigreturn
16044 jmp return_from_stub
16045 -END(stub_x32_rt_sigreturn)
16046 +ENDPROC(stub_x32_rt_sigreturn)
16047 #endif
16048
16049 /*
16050 @@ -473,7 +894,7 @@ ENTRY(ret_from_fork)
16051 movl $0, RAX(%rsp)
16052 RESTORE_EXTRA_REGS
16053 jmp int_ret_from_sys_call
16054 -END(ret_from_fork)
16055 +ENDPROC(ret_from_fork)
16056
16057 /*
16058 * Build the entry stubs with some assembler magic.
16059 @@ -488,7 +909,7 @@ ENTRY(irq_entries_start)
16060 jmp common_interrupt
16061 .align 8
16062 .endr
16063 -END(irq_entries_start)
16064 +ENDPROC(irq_entries_start)
16065
16066 /*
16067 * Interrupt entry/exit.
16068 @@ -513,11 +934,19 @@ END(irq_entries_start)
16069 * tracking that we're in kernel mode.
16070 */
16071 SWAPGS
16072 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16073 + pax_enter_kernel_user
16074 +#else
16075 + pax_enter_kernel
16076 +#endif
16077 +
16078 #ifdef CONFIG_CONTEXT_TRACKING
16079 call enter_from_user_mode
16080 #endif
16081
16082 -1:
16083 + jmp 2f
16084 +1: pax_enter_kernel
16085 +2:
16086 /*
16087 * Save previous stack pointer, optionally switch to interrupt stack.
16088 * irq_count is used to check if a CPU is already on an interrupt stack
16089 @@ -529,6 +958,7 @@ END(irq_entries_start)
16090 incl PER_CPU_VAR(irq_count)
16091 cmovzq PER_CPU_VAR(irq_stack_ptr), %rsp
16092 pushq %rdi
16093 +
16094 /* We entered an interrupt context - irqs are off: */
16095 TRACE_IRQS_OFF
16096
16097 @@ -561,6 +991,8 @@ ret_from_intr:
16098 GLOBAL(retint_user)
16099 mov %rsp,%rdi
16100 call prepare_exit_to_usermode
16101 + pax_exit_kernel_user
16102 +# pax_erase_kstack
16103 TRACE_IRQS_IRETQ
16104 SWAPGS
16105 jmp restore_regs_and_iret
16106 @@ -578,6 +1010,21 @@ retint_kernel:
16107 jmp 0b
16108 1:
16109 #endif
16110 +
16111 + pax_exit_kernel
16112 +
16113 +#if defined(CONFIG_EFI) && defined(CONFIG_PAX_KERNEXEC)
16114 + /* This is a quirk to allow IRQs/NMIs/MCEs during early EFI setup,
16115 + * namely calling EFI runtime services with a phys mapping. We're
16116 + * starting off with NOPs and patch in the real instrumentation
16117 + * (BTS/OR) before starting any userland process; even before starting
16118 + * up the APs.
16119 + */
16120 + ALTERNATIVE "", "pax_force_retaddr 16*8", X86_FEATURE_ALWAYS
16121 +#else
16122 + pax_force_retaddr RIP
16123 +#endif
16124 +
16125 /*
16126 * The iretq could re-enable interrupts:
16127 */
16128 @@ -621,15 +1068,15 @@ native_irq_return_ldt:
16129 SWAPGS
16130 movq PER_CPU_VAR(espfix_waddr), %rdi
16131 movq %rax, (0*8)(%rdi) /* RAX */
16132 - movq (2*8)(%rsp), %rax /* RIP */
16133 + movq (2*8 + RIP-RIP)(%rsp), %rax /* RIP */
16134 movq %rax, (1*8)(%rdi)
16135 - movq (3*8)(%rsp), %rax /* CS */
16136 + movq (2*8 + CS-RIP)(%rsp), %rax /* CS */
16137 movq %rax, (2*8)(%rdi)
16138 - movq (4*8)(%rsp), %rax /* RFLAGS */
16139 + movq (2*8 + EFLAGS-RIP)(%rsp), %rax /* RFLAGS */
16140 movq %rax, (3*8)(%rdi)
16141 - movq (6*8)(%rsp), %rax /* SS */
16142 + movq (2*8 + SS-RIP)(%rsp), %rax /* SS */
16143 movq %rax, (5*8)(%rdi)
16144 - movq (5*8)(%rsp), %rax /* RSP */
16145 + movq (2*8 + RSP-RIP)(%rsp), %rax /* RSP */
16146 movq %rax, (4*8)(%rdi)
16147 andl $0xffff0000, %eax
16148 popq %rdi
16149 @@ -639,7 +1086,7 @@ native_irq_return_ldt:
16150 popq %rax
16151 jmp native_irq_return_iret
16152 #endif
16153 -END(common_interrupt)
16154 +ENDPROC(common_interrupt)
16155
16156 /*
16157 * APIC interrupts.
16158 @@ -651,7 +1098,7 @@ ENTRY(\sym)
16159 .Lcommon_\sym:
16160 interrupt \do_sym
16161 jmp ret_from_intr
16162 -END(\sym)
16163 +ENDPROC(\sym)
16164 .endm
16165
16166 #ifdef CONFIG_TRACING
16167 @@ -716,7 +1163,7 @@ apicinterrupt IRQ_WORK_VECTOR irq_work_interrupt smp_irq_work_interrupt
16168 /*
16169 * Exception entry points.
16170 */
16171 -#define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss) + (TSS_ist + ((x) - 1) * 8)
16172 +#define CPU_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
16173
16174 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
16175 ENTRY(\sym)
16176 @@ -763,6 +1210,12 @@ ENTRY(\sym)
16177 .endif
16178
16179 .if \shift_ist != -1
16180 +#ifdef CONFIG_SMP
16181 + imul $TSS_size, PER_CPU_VAR(cpu_number), %r13d
16182 + lea cpu_tss(%r13), %r13
16183 +#else
16184 + lea cpu_tss(%rip), %r13
16185 +#endif
16186 subq $EXCEPTION_STKSZ, CPU_TSS_IST(\shift_ist)
16187 .endif
16188
16189 @@ -806,7 +1259,7 @@ ENTRY(\sym)
16190
16191 jmp error_exit /* %ebx: no swapgs flag */
16192 .endif
16193 -END(\sym)
16194 +ENDPROC(\sym)
16195 .endm
16196
16197 #ifdef CONFIG_TRACING
16198 @@ -848,8 +1301,9 @@ gs_change:
16199 2: mfence /* workaround */
16200 SWAPGS
16201 popfq
16202 + pax_force_retaddr
16203 ret
16204 -END(native_load_gs_index)
16205 +ENDPROC(native_load_gs_index)
16206
16207 _ASM_EXTABLE(gs_change, bad_gs)
16208 .section .fixup, "ax"
16209 @@ -871,8 +1325,9 @@ ENTRY(do_softirq_own_stack)
16210 call __do_softirq
16211 leaveq
16212 decl PER_CPU_VAR(irq_count)
16213 + pax_force_retaddr
16214 ret
16215 -END(do_softirq_own_stack)
16216 +ENDPROC(do_softirq_own_stack)
16217
16218 #ifdef CONFIG_XEN
16219 idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
16220 @@ -908,7 +1363,7 @@ ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */
16221 call xen_maybe_preempt_hcall
16222 #endif
16223 jmp error_exit
16224 -END(xen_do_hypervisor_callback)
16225 +ENDPROC(xen_do_hypervisor_callback)
16226
16227 /*
16228 * Hypervisor uses this for application faults while it executes.
16229 @@ -953,7 +1408,7 @@ ENTRY(xen_failsafe_callback)
16230 SAVE_C_REGS
16231 SAVE_EXTRA_REGS
16232 jmp error_exit
16233 -END(xen_failsafe_callback)
16234 +ENDPROC(xen_failsafe_callback)
16235
16236 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
16237 xen_hvm_callback_vector xen_evtchn_do_upcall
16238 @@ -1002,8 +1457,34 @@ ENTRY(paranoid_entry)
16239 js 1f /* negative -> in kernel */
16240 SWAPGS
16241 xorl %ebx, %ebx
16242 -1: ret
16243 -END(paranoid_entry)
16244 +1:
16245 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16246 + testb $3, CS+8(%rsp)
16247 + jz 1f
16248 + pax_enter_kernel_user
16249 + jmp 2f
16250 +#endif
16251 +1: pax_enter_kernel
16252 +2:
16253 + pax_force_retaddr
16254 + ret
16255 +ENDPROC(paranoid_entry)
16256 +
16257 +ENTRY(paranoid_entry_nmi)
16258 + cld
16259 + SAVE_C_REGS 8
16260 + SAVE_EXTRA_REGS 8
16261 + movl $1, %ebx
16262 + movl $MSR_GS_BASE, %ecx
16263 + rdmsr
16264 + testl %edx, %edx
16265 + js 1f /* negative -> in kernel */
16266 + SWAPGS
16267 + xorl %ebx, %ebx
16268 +1: pax_enter_kernel_nmi
16269 + pax_force_retaddr
16270 + ret
16271 +ENDPROC(paranoid_entry_nmi)
16272
16273 /*
16274 * "Paranoid" exit path from exception stack. This is invoked
16275 @@ -1020,19 +1501,26 @@ END(paranoid_entry)
16276 ENTRY(paranoid_exit)
16277 DISABLE_INTERRUPTS(CLBR_NONE)
16278 TRACE_IRQS_OFF_DEBUG
16279 - testl %ebx, %ebx /* swapgs needed? */
16280 + testl $1, %ebx /* swapgs needed? */
16281 jnz paranoid_exit_no_swapgs
16282 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16283 + pax_exit_kernel_user
16284 +#else
16285 + pax_exit_kernel
16286 +#endif
16287 TRACE_IRQS_IRETQ
16288 SWAPGS_UNSAFE_STACK
16289 jmp paranoid_exit_restore
16290 paranoid_exit_no_swapgs:
16291 + pax_exit_kernel
16292 TRACE_IRQS_IRETQ_DEBUG
16293 paranoid_exit_restore:
16294 RESTORE_EXTRA_REGS
16295 RESTORE_C_REGS
16296 REMOVE_PT_GPREGS_FROM_STACK 8
16297 + pax_force_retaddr_bts
16298 INTERRUPT_RETURN
16299 -END(paranoid_exit)
16300 +ENDPROC(paranoid_exit)
16301
16302 /*
16303 * Save all registers in pt_regs, and switch gs if needed.
16304 @@ -1046,21 +1534,26 @@ ENTRY(error_entry)
16305 testb $3, CS+8(%rsp)
16306 jz .Lerror_kernelspace
16307
16308 -.Lerror_entry_from_usermode_swapgs:
16309 /*
16310 * We entered from user mode or we're pretending to have entered
16311 * from user mode due to an IRET fault.
16312 */
16313 SWAPGS
16314
16315 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16316 + pax_enter_kernel_user
16317 +#else
16318 + pax_enter_kernel
16319 +#endif
16320 +
16321 .Lerror_entry_from_usermode_after_swapgs:
16322 #ifdef CONFIG_CONTEXT_TRACKING
16323 call enter_from_user_mode
16324 #endif
16325
16326 .Lerror_entry_done:
16327 -
16328 TRACE_IRQS_OFF
16329 + pax_force_retaddr
16330 ret
16331
16332 /*
16333 @@ -1078,14 +1571,16 @@ ENTRY(error_entry)
16334 cmpq %rax, RIP+8(%rsp)
16335 je .Lbstep_iret
16336 cmpq $gs_change, RIP+8(%rsp)
16337 - jne .Lerror_entry_done
16338 + jne 1f
16339
16340 /*
16341 * hack: gs_change can fail with user gsbase. If this happens, fix up
16342 * gsbase and proceed. We'll fix up the exception and land in
16343 * gs_change's error handler with kernel gsbase.
16344 */
16345 - jmp .Lerror_entry_from_usermode_swapgs
16346 + SWAPGS
16347 +1: pax_enter_kernel
16348 + jmp .Lerror_entry_done
16349
16350 .Lbstep_iret:
16351 /* Fix truncated RIP */
16352 @@ -1099,6 +1594,12 @@ ENTRY(error_entry)
16353 */
16354 SWAPGS
16355
16356 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16357 + pax_enter_kernel_user
16358 +#else
16359 + pax_enter_kernel
16360 +#endif
16361 +
16362 /*
16363 * Pretend that the exception came from user mode: set up pt_regs
16364 * as if we faulted immediately after IRET and clear EBX so that
16365 @@ -1109,11 +1610,11 @@ ENTRY(error_entry)
16366 mov %rax, %rsp
16367 decl %ebx
16368 jmp .Lerror_entry_from_usermode_after_swapgs
16369 -END(error_entry)
16370 +ENDPROC(error_entry)
16371
16372
16373 /*
16374 - * On entry, EBS is a "return to kernel mode" flag:
16375 + * On entry, EBX is a "return to kernel mode" flag:
16376 * 1: already in kernel mode, don't need SWAPGS
16377 * 0: user gsbase is loaded, we need SWAPGS and standard preparation for return to usermode
16378 */
16379 @@ -1121,10 +1622,10 @@ ENTRY(error_exit)
16380 movl %ebx, %eax
16381 DISABLE_INTERRUPTS(CLBR_NONE)
16382 TRACE_IRQS_OFF
16383 - testl %eax, %eax
16384 + testl $1, %eax
16385 jnz retint_kernel
16386 jmp retint_user
16387 -END(error_exit)
16388 +ENDPROC(error_exit)
16389
16390 /* Runs on exception stack */
16391 ENTRY(nmi)
16392 @@ -1178,6 +1679,8 @@ ENTRY(nmi)
16393 * other IST entries.
16394 */
16395
16396 + ASM_CLAC
16397 +
16398 /* Use %rdx as our temp variable throughout */
16399 pushq %rdx
16400
16401 @@ -1221,6 +1724,12 @@ ENTRY(nmi)
16402 pushq %r14 /* pt_regs->r14 */
16403 pushq %r15 /* pt_regs->r15 */
16404
16405 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16406 + xorl %ebx, %ebx
16407 +#endif
16408 +
16409 + pax_enter_kernel_nmi
16410 +
16411 /*
16412 * At this point we no longer need to worry about stack damage
16413 * due to nesting -- we're on the normal thread stack and we're
16414 @@ -1231,12 +1740,19 @@ ENTRY(nmi)
16415 movq $-1, %rsi
16416 call do_nmi
16417
16418 + pax_exit_kernel_nmi
16419 +
16420 /*
16421 * Return back to user mode. We must *not* do the normal exit
16422 * work, because we don't want to enable interrupts. Fortunately,
16423 * do_nmi doesn't modify pt_regs.
16424 */
16425 SWAPGS
16426 +
16427 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16428 + movq RBX(%rsp), %rbx
16429 +#endif
16430 +
16431 jmp restore_c_regs_and_iret
16432
16433 .Lnmi_from_kernel:
16434 @@ -1358,6 +1874,7 @@ nested_nmi_out:
16435 popq %rdx
16436
16437 /* We are returning to kernel mode, so this cannot result in a fault. */
16438 +# pax_force_retaddr_bts
16439 INTERRUPT_RETURN
16440
16441 first_nmi:
16442 @@ -1431,20 +1948,22 @@ end_repeat_nmi:
16443 ALLOC_PT_GPREGS_ON_STACK
16444
16445 /*
16446 - * Use paranoid_entry to handle SWAPGS, but no need to use paranoid_exit
16447 + * Use paranoid_entry_nmi to handle SWAPGS, but no need to use paranoid_exit
16448 * as we should not be calling schedule in NMI context.
16449 * Even with normal interrupts enabled. An NMI should not be
16450 * setting NEED_RESCHED or anything that normal interrupts and
16451 * exceptions might do.
16452 */
16453 - call paranoid_entry
16454 + call paranoid_entry_nmi
16455
16456 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
16457 movq %rsp, %rdi
16458 movq $-1, %rsi
16459 call do_nmi
16460
16461 - testl %ebx, %ebx /* swapgs needed? */
16462 + pax_exit_kernel_nmi
16463 +
16464 + testl $1, %ebx /* swapgs needed? */
16465 jnz nmi_restore
16466 nmi_swapgs:
16467 SWAPGS_UNSAFE_STACK
16468 @@ -1455,6 +1974,8 @@ nmi_restore:
16469 /* Point RSP at the "iret" frame. */
16470 REMOVE_PT_GPREGS_FROM_STACK 6*8
16471
16472 + pax_force_retaddr_bts
16473 +
16474 /*
16475 * Clear "NMI executing". Set DF first so that we can easily
16476 * distinguish the remaining code between here and IRET from
16477 @@ -1472,9 +1993,9 @@ nmi_restore:
16478 * mode, so this cannot result in a fault.
16479 */
16480 INTERRUPT_RETURN
16481 -END(nmi)
16482 +ENDPROC(nmi)
16483
16484 ENTRY(ignore_sysret)
16485 mov $-ENOSYS, %eax
16486 sysret
16487 -END(ignore_sysret)
16488 +ENDPROC(ignore_sysret)
16489 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
16490 index a9360d4..e87da3e 100644
16491 --- a/arch/x86/entry/entry_64_compat.S
16492 +++ b/arch/x86/entry/entry_64_compat.S
16493 @@ -13,8 +13,10 @@
16494 #include <asm/irqflags.h>
16495 #include <asm/asm.h>
16496 #include <asm/smap.h>
16497 +#include <asm/pgtable.h>
16498 #include <linux/linkage.h>
16499 #include <linux/err.h>
16500 +#include <asm/alternative-asm.h>
16501
16502 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
16503 #include <linux/elf-em.h>
16504 @@ -35,6 +37,32 @@ ENTRY(native_usergs_sysret32)
16505 ENDPROC(native_usergs_sysret32)
16506 #endif
16507
16508 + .macro pax_enter_kernel_user
16509 + pax_set_fptr_mask
16510 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16511 + call pax_enter_kernel_user
16512 +#endif
16513 + .endm
16514 +
16515 + .macro pax_exit_kernel_user
16516 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16517 + call pax_exit_kernel_user
16518 +#endif
16519 +#ifdef CONFIG_PAX_RANDKSTACK
16520 + pushq %rax
16521 + pushq %r11
16522 + call pax_randomize_kstack
16523 + popq %r11
16524 + popq %rax
16525 +#endif
16526 + .endm
16527 +
16528 + .macro pax_erase_kstack
16529 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16530 + call pax_erase_kstack
16531 +#endif
16532 + .endm
16533 +
16534 /*
16535 * 32-bit SYSENTER instruction entry.
16536 *
16537 @@ -65,20 +93,21 @@ ENTRY(entry_SYSENTER_compat)
16538 */
16539 SWAPGS_UNSAFE_STACK
16540 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16541 - ENABLE_INTERRUPTS(CLBR_NONE)
16542
16543 /* Zero-extending 32-bit regs, do not remove */
16544 movl %ebp, %ebp
16545 movl %eax, %eax
16546
16547 - movl ASM_THREAD_INFO(TI_sysenter_return, %rsp, 0), %r10d
16548 + GET_THREAD_INFO(%r11)
16549 + movl TI_sysenter_return(%r11), %r11d
16550
16551 /* Construct struct pt_regs on stack */
16552 pushq $__USER32_DS /* pt_regs->ss */
16553 pushq %rbp /* pt_regs->sp */
16554 pushfq /* pt_regs->flags */
16555 + orl $X86_EFLAGS_IF,(%rsp)
16556 pushq $__USER32_CS /* pt_regs->cs */
16557 - pushq %r10 /* pt_regs->ip = thread_info->sysenter_return */
16558 + pushq %r11 /* pt_regs->ip = thread_info->sysenter_return */
16559 pushq %rax /* pt_regs->orig_ax */
16560 pushq %rdi /* pt_regs->di */
16561 pushq %rsi /* pt_regs->si */
16562 @@ -88,15 +117,37 @@ ENTRY(entry_SYSENTER_compat)
16563 cld
16564 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16565
16566 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16567 + movq %r12, R12(%rsp)
16568 +#endif
16569 +
16570 + pax_enter_kernel_user
16571 +
16572 +#ifdef CONFIG_PAX_RANDKSTACK
16573 + pax_erase_kstack
16574 +#endif
16575 +
16576 + ENABLE_INTERRUPTS(CLBR_NONE)
16577 +
16578 /*
16579 * no need to do an access_ok check here because rbp has been
16580 * 32-bit zero extended
16581 */
16582 +
16583 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16584 + addq pax_user_shadow_base, %rbp
16585 + ASM_PAX_OPEN_USERLAND
16586 +#endif
16587 +
16588 ASM_STAC
16589 1: movl (%rbp), %ebp
16590 _ASM_EXTABLE(1b, ia32_badarg)
16591 ASM_CLAC
16592
16593 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16594 + ASM_PAX_CLOSE_USERLAND
16595 +#endif
16596 +
16597 /*
16598 * Sysenter doesn't filter flags, so we need to clear NT
16599 * ourselves. To save a few cycles, we can check whether
16600 @@ -106,8 +157,9 @@ ENTRY(entry_SYSENTER_compat)
16601 jnz sysenter_fix_flags
16602 sysenter_flags_fixed:
16603
16604 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16605 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16606 + GET_THREAD_INFO(%r11)
16607 + orl $TS_COMPAT, TI_status(%r11)
16608 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
16609 jnz sysenter_tracesys
16610
16611 sysenter_do_call:
16612 @@ -123,9 +175,10 @@ sysenter_dispatch:
16613 call *ia32_sys_call_table(, %rax, 8)
16614 movq %rax, RAX(%rsp)
16615 1:
16616 + GET_THREAD_INFO(%r11)
16617 DISABLE_INTERRUPTS(CLBR_NONE)
16618 TRACE_IRQS_OFF
16619 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16620 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
16621 jnz sysexit_audit
16622 sysexit_from_sys_call:
16623 /*
16624 @@ -138,11 +191,18 @@ sysexit_from_sys_call:
16625 * This code path is still called 'sysexit' because it pairs
16626 * with 'sysenter' and it uses the SYSENTER calling convention.
16627 */
16628 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16629 + pax_exit_kernel_user
16630 + pax_erase_kstack
16631 + andl $~TS_COMPAT, TI_status(%r11)
16632 movl RIP(%rsp), %ecx /* User %eip */
16633 movq RAX(%rsp), %rax
16634 movl RSI(%rsp), %esi
16635 movl RDI(%rsp), %edi
16636 +
16637 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16638 + movq R12(%rsp), %r12
16639 +#endif
16640 +
16641 xorl %edx, %edx /* Do not leak kernel information */
16642 xorq %r8, %r8
16643 xorq %r9, %r9
16644 @@ -195,6 +255,8 @@ sysexit_from_sys_call:
16645 movl %eax, %edi /* arg1 (RDI) <= syscall number (EAX) */
16646 call __audit_syscall_entry
16647
16648 + pax_erase_kstack
16649 +
16650 /*
16651 * We are going to jump back to the syscall dispatch code.
16652 * Prepare syscall args as required by the 64-bit C ABI.
16653 @@ -212,7 +274,7 @@ sysexit_from_sys_call:
16654 .macro auditsys_exit exit
16655 TRACE_IRQS_ON
16656 ENABLE_INTERRUPTS(CLBR_NONE)
16657 - testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16658 + testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16659 jnz ia32_ret_from_sys_call
16660 movl %eax, %esi /* second arg, syscall return value */
16661 cmpl $-MAX_ERRNO, %eax /* is it an error ? */
16662 @@ -221,10 +283,11 @@ sysexit_from_sys_call:
16663 1: setbe %al /* 1 if error, 0 if not */
16664 movzbl %al, %edi /* zero-extend that into %edi */
16665 call __audit_syscall_exit
16666 + GET_THREAD_INFO(%r11)
16667 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), %edi
16668 DISABLE_INTERRUPTS(CLBR_NONE)
16669 TRACE_IRQS_OFF
16670 - testl %edi, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16671 + testl %edi, TI_flags(%r11)
16672 jz \exit
16673 xorl %eax, %eax /* Do not leak kernel information */
16674 movq %rax, R11(%rsp)
16675 @@ -250,7 +313,7 @@ sysenter_fix_flags:
16676
16677 sysenter_tracesys:
16678 #ifdef CONFIG_AUDITSYSCALL
16679 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16680 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16681 jz sysenter_auditsys
16682 #endif
16683 SAVE_EXTRA_REGS
16684 @@ -270,6 +333,9 @@ sysenter_tracesys:
16685 movl %eax, %eax /* zero extension */
16686
16687 RESTORE_EXTRA_REGS
16688 +
16689 + pax_erase_kstack
16690 +
16691 jmp sysenter_do_call
16692 ENDPROC(entry_SYSENTER_compat)
16693
16694 @@ -312,7 +378,6 @@ ENTRY(entry_SYSCALL_compat)
16695 SWAPGS_UNSAFE_STACK
16696 movl %esp, %r8d
16697 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16698 - ENABLE_INTERRUPTS(CLBR_NONE)
16699
16700 /* Zero-extending 32-bit regs, do not remove */
16701 movl %eax, %eax
16702 @@ -332,16 +397,40 @@ ENTRY(entry_SYSCALL_compat)
16703 pushq $-ENOSYS /* pt_regs->ax */
16704 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16705
16706 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16707 + movq %r12, R12(%rsp)
16708 +#endif
16709 +
16710 + pax_enter_kernel_user
16711 +
16712 +#ifdef CONFIG_PAX_RANDKSTACK
16713 + pax_erase_kstack
16714 +#endif
16715 +
16716 + ENABLE_INTERRUPTS(CLBR_NONE)
16717 +
16718 /*
16719 * No need to do an access_ok check here because r8 has been
16720 * 32-bit zero extended:
16721 */
16722 +
16723 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16724 + addq pax_user_shadow_base, %r8
16725 + ASM_PAX_OPEN_USERLAND
16726 +#endif
16727 +
16728 ASM_STAC
16729 1: movl (%r8), %r9d
16730 _ASM_EXTABLE(1b, ia32_badarg)
16731 ASM_CLAC
16732 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16733 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16734 +
16735 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16736 + ASM_PAX_CLOSE_USERLAND
16737 +#endif
16738 +
16739 + GET_THREAD_INFO(%r11)
16740 + orl $TS_COMPAT,TI_status(%r11)
16741 + testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
16742 jnz cstar_tracesys
16743
16744 cstar_do_call:
16745 @@ -359,19 +448,27 @@ cstar_dispatch:
16746 call *ia32_sys_call_table(, %rax, 8)
16747 movq %rax, RAX(%rsp)
16748 1:
16749 + GET_THREAD_INFO(%r11)
16750 DISABLE_INTERRUPTS(CLBR_NONE)
16751 TRACE_IRQS_OFF
16752 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16753 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
16754 jnz sysretl_audit
16755
16756 sysretl_from_sys_call:
16757 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16758 + pax_exit_kernel_user
16759 + pax_erase_kstack
16760 + andl $~TS_COMPAT, TI_status(%r11)
16761 movl RDX(%rsp), %edx
16762 movl RSI(%rsp), %esi
16763 movl RDI(%rsp), %edi
16764 movl RIP(%rsp), %ecx
16765 movl EFLAGS(%rsp), %r11d
16766 - movq RAX(%rsp), %rax
16767 + movq RAX(%rsp), %rax
16768 +
16769 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16770 + movq R12(%rsp), %r12
16771 +#endif
16772 +
16773 xorq %r10, %r10
16774 xorq %r9, %r9
16775 xorq %r8, %r8
16776 @@ -406,7 +503,7 @@ sysretl_audit:
16777
16778 cstar_tracesys:
16779 #ifdef CONFIG_AUDITSYSCALL
16780 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16781 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16782 jz cstar_auditsys
16783 #endif
16784 xchgl %r9d, %ebp
16785 @@ -429,6 +526,9 @@ cstar_tracesys:
16786
16787 RESTORE_EXTRA_REGS
16788 xchgl %ebp, %r9d
16789 +
16790 + pax_erase_kstack
16791 +
16792 jmp cstar_do_call
16793 END(entry_SYSCALL_compat)
16794
16795 @@ -449,6 +549,11 @@ ia32_badarg:
16796 */
16797
16798 ASM_CLAC /* undo STAC */
16799 +
16800 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16801 + ASM_PAX_CLOSE_USERLAND
16802 +#endif
16803 +
16804 movq $-EFAULT, RAX(%rsp) /* return -EFAULT if possible */
16805
16806 /* Fill in the rest of pt_regs */
16807 @@ -505,14 +610,8 @@ ia32_ret_from_sys_call:
16808 */
16809
16810 ENTRY(entry_INT80_compat)
16811 - /*
16812 - * Interrupts are off on entry.
16813 - * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
16814 - * it is too small to ever cause noticeable irq latency.
16815 - */
16816 PARAVIRT_ADJUST_EXCEPTION_FRAME
16817 SWAPGS
16818 - ENABLE_INTERRUPTS(CLBR_NONE)
16819
16820 /* Zero-extending 32-bit regs, do not remove */
16821 movl %eax, %eax
16822 @@ -531,8 +630,26 @@ ENTRY(entry_INT80_compat)
16823 cld
16824 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
16825
16826 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16827 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16828 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16829 + movq %r12, R12(%rsp)
16830 +#endif
16831 +
16832 + pax_enter_kernel_user
16833 +
16834 +#ifdef CONFIG_PAX_RANDKSTACK
16835 + pax_erase_kstack
16836 +#endif
16837 +
16838 + /*
16839 + * Interrupts are off on entry.
16840 + * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
16841 + * it is too small to ever cause noticeable irq latency.
16842 + */
16843 + ENABLE_INTERRUPTS(CLBR_NONE)
16844 +
16845 + GET_THREAD_INFO(%r11)
16846 + orl $TS_COMPAT, TI_status(%r11)
16847 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
16848 jnz ia32_tracesys
16849
16850 ia32_do_call:
16851 @@ -567,6 +684,9 @@ ia32_tracesys:
16852 movl RDI(%rsp), %edi
16853 movl %eax, %eax /* zero extension */
16854 RESTORE_EXTRA_REGS
16855 +
16856 + pax_erase_kstack
16857 +
16858 jmp ia32_do_call
16859 END(entry_INT80_compat)
16860
16861 diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
16862 index efb2b93..8a9cb8e 100644
16863 --- a/arch/x86/entry/thunk_64.S
16864 +++ b/arch/x86/entry/thunk_64.S
16865 @@ -8,6 +8,7 @@
16866 #include <linux/linkage.h>
16867 #include "calling.h"
16868 #include <asm/asm.h>
16869 +#include <asm/alternative-asm.h>
16870
16871 /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
16872 .macro THUNK name, func, put_ret_addr_in_rdi=0
16873 @@ -62,6 +63,7 @@ restore:
16874 popq %rdx
16875 popq %rsi
16876 popq %rdi
16877 + pax_force_retaddr
16878 ret
16879 _ASM_NOKPROBE(restore)
16880 #endif
16881 diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
16882 index a3d0767..36d66c9 100644
16883 --- a/arch/x86/entry/vdso/Makefile
16884 +++ b/arch/x86/entry/vdso/Makefile
16885 @@ -175,7 +175,7 @@ quiet_cmd_vdso = VDSO $@
16886 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
16887 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
16888
16889 -VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=both) \
16890 +VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=both) \
16891 $(call cc-ldoption, -Wl$(comma)--build-id) -Wl,-Bsymbolic $(LTO_CFLAGS)
16892 GCOV_PROFILE := n
16893
16894 diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h
16895 index 0224987..0359810 100644
16896 --- a/arch/x86/entry/vdso/vdso2c.h
16897 +++ b/arch/x86/entry/vdso/vdso2c.h
16898 @@ -12,7 +12,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16899 unsigned long load_size = -1; /* Work around bogus warning */
16900 unsigned long mapping_size;
16901 ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
16902 - int i;
16903 + unsigned int i;
16904 unsigned long j;
16905 ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr, *secstrings_hdr,
16906 *alt_sec = NULL;
16907 @@ -83,7 +83,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16908 for (i = 0;
16909 i < GET_LE(&symtab_hdr->sh_size) / GET_LE(&symtab_hdr->sh_entsize);
16910 i++) {
16911 - int k;
16912 + unsigned int k;
16913 ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
16914 GET_LE(&symtab_hdr->sh_entsize) * i;
16915 const char *name = raw_addr + GET_LE(&strtab_hdr->sh_offset) +
16916 @@ -140,7 +140,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16917 fprintf(outfile, "#include <asm/vdso.h>\n");
16918 fprintf(outfile, "\n");
16919 fprintf(outfile,
16920 - "static unsigned char raw_data[%lu] __page_aligned_data = {",
16921 + "static unsigned char raw_data[%lu] __page_aligned_rodata = {",
16922 mapping_size);
16923 for (j = 0; j < stripped_len; j++) {
16924 if (j % 10 == 0)
16925 @@ -150,7 +150,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16926 }
16927 fprintf(outfile, "\n};\n\n");
16928
16929 - fprintf(outfile, "static struct page *pages[%lu];\n\n",
16930 + fprintf(outfile, "static struct page *pages[%lu] __read_only;\n\n",
16931 mapping_size / 4096);
16932
16933 fprintf(outfile, "const struct vdso_image %s = {\n", name);
16934 diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
16935 index 4345431..50ae49a 100644
16936 --- a/arch/x86/entry/vdso/vma.c
16937 +++ b/arch/x86/entry/vdso/vma.c
16938 @@ -19,10 +19,7 @@
16939 #include <asm/page.h>
16940 #include <asm/hpet.h>
16941 #include <asm/desc.h>
16942 -
16943 -#if defined(CONFIG_X86_64)
16944 -unsigned int __read_mostly vdso64_enabled = 1;
16945 -#endif
16946 +#include <asm/mman.h>
16947
16948 void __init init_vdso_image(const struct vdso_image *image)
16949 {
16950 @@ -101,6 +98,11 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16951 .pages = no_pages,
16952 };
16953
16954 +#ifdef CONFIG_PAX_RANDMMAP
16955 + if (mm->pax_flags & MF_PAX_RANDMMAP)
16956 + calculate_addr = false;
16957 +#endif
16958 +
16959 if (calculate_addr) {
16960 addr = vdso_addr(current->mm->start_stack,
16961 image->size - image->sym_vvar_start);
16962 @@ -111,14 +113,14 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16963 down_write(&mm->mmap_sem);
16964
16965 addr = get_unmapped_area(NULL, addr,
16966 - image->size - image->sym_vvar_start, 0, 0);
16967 + image->size - image->sym_vvar_start, 0, MAP_EXECUTABLE);
16968 if (IS_ERR_VALUE(addr)) {
16969 ret = addr;
16970 goto up_fail;
16971 }
16972
16973 text_start = addr - image->sym_vvar_start;
16974 - current->mm->context.vdso = (void __user *)text_start;
16975 + mm->context.vdso = text_start;
16976
16977 /*
16978 * MAYWRITE to allow gdb to COW and set breakpoints
16979 @@ -163,15 +165,12 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16980 hpet_address >> PAGE_SHIFT,
16981 PAGE_SIZE,
16982 pgprot_noncached(PAGE_READONLY));
16983 -
16984 - if (ret)
16985 - goto up_fail;
16986 }
16987 #endif
16988
16989 up_fail:
16990 if (ret)
16991 - current->mm->context.vdso = NULL;
16992 + current->mm->context.vdso = 0;
16993
16994 up_write(&mm->mmap_sem);
16995 return ret;
16996 @@ -191,8 +190,8 @@ static int load_vdso32(void)
16997
16998 if (selected_vdso32->sym_VDSO32_SYSENTER_RETURN)
16999 current_thread_info()->sysenter_return =
17000 - current->mm->context.vdso +
17001 - selected_vdso32->sym_VDSO32_SYSENTER_RETURN;
17002 + (void __force_user *)(current->mm->context.vdso +
17003 + selected_vdso32->sym_VDSO32_SYSENTER_RETURN);
17004
17005 return 0;
17006 }
17007 @@ -201,9 +200,6 @@ static int load_vdso32(void)
17008 #ifdef CONFIG_X86_64
17009 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17010 {
17011 - if (!vdso64_enabled)
17012 - return 0;
17013 -
17014 return map_vdso(&vdso_image_64, true);
17015 }
17016
17017 @@ -212,12 +208,8 @@ int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
17018 int uses_interp)
17019 {
17020 #ifdef CONFIG_X86_X32_ABI
17021 - if (test_thread_flag(TIF_X32)) {
17022 - if (!vdso64_enabled)
17023 - return 0;
17024 -
17025 + if (test_thread_flag(TIF_X32))
17026 return map_vdso(&vdso_image_x32, true);
17027 - }
17028 #endif
17029 #ifdef CONFIG_IA32_EMULATION
17030 return load_vdso32();
17031 @@ -234,15 +226,6 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17032 #endif
17033
17034 #ifdef CONFIG_X86_64
17035 -static __init int vdso_setup(char *s)
17036 -{
17037 - vdso64_enabled = simple_strtoul(s, NULL, 0);
17038 - return 0;
17039 -}
17040 -__setup("vdso=", vdso_setup);
17041 -#endif
17042 -
17043 -#ifdef CONFIG_X86_64
17044 static void vgetcpu_cpu_init(void *arg)
17045 {
17046 int cpu = smp_processor_id();
17047 diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
17048 index b160c0c..a00ee2f 100644
17049 --- a/arch/x86/entry/vsyscall/vsyscall_64.c
17050 +++ b/arch/x86/entry/vsyscall/vsyscall_64.c
17051 @@ -38,15 +38,13 @@
17052 #define CREATE_TRACE_POINTS
17053 #include "vsyscall_trace.h"
17054
17055 -static enum { EMULATE, NATIVE, NONE } vsyscall_mode = EMULATE;
17056 +static enum { EMULATE, NONE } vsyscall_mode = EMULATE;
17057
17058 static int __init vsyscall_setup(char *str)
17059 {
17060 if (str) {
17061 if (!strcmp("emulate", str))
17062 vsyscall_mode = EMULATE;
17063 - else if (!strcmp("native", str))
17064 - vsyscall_mode = NATIVE;
17065 else if (!strcmp("none", str))
17066 vsyscall_mode = NONE;
17067 else
17068 @@ -264,8 +262,7 @@ do_ret:
17069 return true;
17070
17071 sigsegv:
17072 - force_sig(SIGSEGV, current);
17073 - return true;
17074 + do_group_exit(SIGKILL);
17075 }
17076
17077 /*
17078 @@ -283,8 +280,8 @@ static const struct vm_operations_struct gate_vma_ops = {
17079 static struct vm_area_struct gate_vma = {
17080 .vm_start = VSYSCALL_ADDR,
17081 .vm_end = VSYSCALL_ADDR + PAGE_SIZE,
17082 - .vm_page_prot = PAGE_READONLY_EXEC,
17083 - .vm_flags = VM_READ | VM_EXEC,
17084 + .vm_page_prot = PAGE_READONLY,
17085 + .vm_flags = VM_READ,
17086 .vm_ops = &gate_vma_ops,
17087 };
17088
17089 @@ -325,10 +322,7 @@ void __init map_vsyscall(void)
17090 unsigned long physaddr_vsyscall = __pa_symbol(&__vsyscall_page);
17091
17092 if (vsyscall_mode != NONE)
17093 - __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall,
17094 - vsyscall_mode == NATIVE
17095 - ? PAGE_KERNEL_VSYSCALL
17096 - : PAGE_KERNEL_VVAR);
17097 + __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall, PAGE_KERNEL_VVAR);
17098
17099 BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_PAGE) !=
17100 (unsigned long)VSYSCALL_ADDR);
17101 diff --git a/arch/x86/entry/vsyscall/vsyscall_emu_64.S b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17102 index c9596a9..805b68d 100644
17103 --- a/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17104 +++ b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17105 @@ -12,7 +12,7 @@
17106 #include <asm/page_types.h>
17107 #include <asm/unistd_64.h>
17108
17109 -__PAGE_ALIGNED_DATA
17110 +.section ".data..read_only", "a"
17111 .globl __vsyscall_page
17112 .balign PAGE_SIZE, 0xcc
17113 .type __vsyscall_page, @object
17114 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
17115 index ae6aad1..719d6d9 100644
17116 --- a/arch/x86/ia32/ia32_aout.c
17117 +++ b/arch/x86/ia32/ia32_aout.c
17118 @@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
17119 unsigned long dump_start, dump_size;
17120 struct user32 dump;
17121
17122 + memset(&dump, 0, sizeof(dump));
17123 +
17124 fs = get_fs();
17125 set_fs(KERNEL_DS);
17126 has_dumped = 1;
17127 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
17128 index a0a19b7..10b0289 100644
17129 --- a/arch/x86/ia32/ia32_signal.c
17130 +++ b/arch/x86/ia32/ia32_signal.c
17131 @@ -123,7 +123,7 @@ asmlinkage long sys32_sigreturn(void)
17132 if (__get_user(set.sig[0], &frame->sc.oldmask)
17133 || (_COMPAT_NSIG_WORDS > 1
17134 && __copy_from_user((((char *) &set.sig) + 4),
17135 - &frame->extramask,
17136 + frame->extramask,
17137 sizeof(frame->extramask))))
17138 goto badframe;
17139
17140 @@ -243,7 +243,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
17141 sp -= frame_size;
17142 /* Align the stack pointer according to the i386 ABI,
17143 * i.e. so that on function entry ((sp + 4) & 15) == 0. */
17144 - sp = ((sp + 4) & -16ul) - 4;
17145 + sp = ((sp - 12) & -16ul) - 4;
17146 return (void __user *) sp;
17147 }
17148
17149 @@ -288,10 +288,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17150 } else {
17151 /* Return stub is in 32bit vsyscall page */
17152 if (current->mm->context.vdso)
17153 - restorer = current->mm->context.vdso +
17154 - selected_vdso32->sym___kernel_sigreturn;
17155 + restorer = (void __force_user *)(current->mm->context.vdso +
17156 + selected_vdso32->sym___kernel_sigreturn);
17157 else
17158 - restorer = &frame->retcode;
17159 + restorer = frame->retcode;
17160 }
17161
17162 put_user_try {
17163 @@ -301,7 +301,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17164 * These are actually not used anymore, but left because some
17165 * gdb versions depend on them as a marker.
17166 */
17167 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17168 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17169 } put_user_catch(err);
17170
17171 if (err)
17172 @@ -343,7 +343,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17173 0xb8,
17174 __NR_ia32_rt_sigreturn,
17175 0x80cd,
17176 - 0,
17177 + 0
17178 };
17179
17180 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate);
17181 @@ -366,16 +366,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17182
17183 if (ksig->ka.sa.sa_flags & SA_RESTORER)
17184 restorer = ksig->ka.sa.sa_restorer;
17185 + else if (current->mm->context.vdso)
17186 + /* Return stub is in 32bit vsyscall page */
17187 + restorer = (void __force_user *)(current->mm->context.vdso +
17188 + selected_vdso32->sym___kernel_rt_sigreturn);
17189 else
17190 - restorer = current->mm->context.vdso +
17191 - selected_vdso32->sym___kernel_rt_sigreturn;
17192 + restorer = frame->retcode;
17193 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
17194
17195 /*
17196 * Not actually used anymore, but left because some gdb
17197 * versions need it.
17198 */
17199 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17200 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17201 } put_user_catch(err);
17202
17203 err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
17204 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
17205 index 719cd70..72af944 100644
17206 --- a/arch/x86/ia32/sys_ia32.c
17207 +++ b/arch/x86/ia32/sys_ia32.c
17208 @@ -49,18 +49,26 @@
17209
17210 #define AA(__x) ((unsigned long)(__x))
17211
17212 +static inline loff_t compose_loff(unsigned int high, unsigned int low)
17213 +{
17214 + loff_t retval = low;
17215 +
17216 + BUILD_BUG_ON(sizeof retval != sizeof low + sizeof high);
17217 + __builtin_memcpy((unsigned char *)&retval + sizeof low, &high, sizeof high);
17218 + return retval;
17219 +}
17220
17221 asmlinkage long sys32_truncate64(const char __user *filename,
17222 - unsigned long offset_low,
17223 - unsigned long offset_high)
17224 + unsigned int offset_low,
17225 + unsigned int offset_high)
17226 {
17227 - return sys_truncate(filename, ((loff_t) offset_high << 32) | offset_low);
17228 + return sys_truncate(filename, compose_loff(offset_high, offset_low));
17229 }
17230
17231 -asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17232 - unsigned long offset_high)
17233 +asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned int offset_low,
17234 + unsigned int offset_high)
17235 {
17236 - return sys_ftruncate(fd, ((loff_t) offset_high << 32) | offset_low);
17237 + return sys_ftruncate(fd, ((unsigned long) offset_high << 32) | offset_low);
17238 }
17239
17240 /*
17241 @@ -69,8 +77,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17242 */
17243 static int cp_stat64(struct stat64 __user *ubuf, struct kstat *stat)
17244 {
17245 - typeof(ubuf->st_uid) uid = 0;
17246 - typeof(ubuf->st_gid) gid = 0;
17247 + typeof(((struct stat64 *)0)->st_uid) uid = 0;
17248 + typeof(((struct stat64 *)0)->st_gid) gid = 0;
17249 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid));
17250 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
17251 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
17252 @@ -196,29 +204,29 @@ long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,
17253 __u32 len_low, __u32 len_high, int advice)
17254 {
17255 return sys_fadvise64_64(fd,
17256 - (((u64)offset_high)<<32) | offset_low,
17257 - (((u64)len_high)<<32) | len_low,
17258 + compose_loff(offset_high, offset_low),
17259 + compose_loff(len_high, len_low),
17260 advice);
17261 }
17262
17263 asmlinkage ssize_t sys32_readahead(int fd, unsigned off_lo, unsigned off_hi,
17264 size_t count)
17265 {
17266 - return sys_readahead(fd, ((u64)off_hi << 32) | off_lo, count);
17267 + return sys_readahead(fd, compose_loff(off_hi, off_lo), count);
17268 }
17269
17270 asmlinkage long sys32_sync_file_range(int fd, unsigned off_low, unsigned off_hi,
17271 unsigned n_low, unsigned n_hi, int flags)
17272 {
17273 return sys_sync_file_range(fd,
17274 - ((u64)off_hi << 32) | off_low,
17275 - ((u64)n_hi << 32) | n_low, flags);
17276 + compose_loff(off_hi, off_low),
17277 + compose_loff(n_hi, n_low), flags);
17278 }
17279
17280 asmlinkage long sys32_fadvise64(int fd, unsigned offset_lo, unsigned offset_hi,
17281 - size_t len, int advice)
17282 + int len, int advice)
17283 {
17284 - return sys_fadvise64_64(fd, ((u64)offset_hi << 32) | offset_lo,
17285 + return sys_fadvise64_64(fd, compose_loff(offset_hi, offset_lo),
17286 len, advice);
17287 }
17288
17289 @@ -226,6 +234,6 @@ asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_lo,
17290 unsigned offset_hi, unsigned len_lo,
17291 unsigned len_hi)
17292 {
17293 - return sys_fallocate(fd, mode, ((u64)offset_hi << 32) | offset_lo,
17294 - ((u64)len_hi << 32) | len_lo);
17295 + return sys_fallocate(fd, mode, compose_loff(offset_hi, offset_lo),
17296 + compose_loff(len_hi, len_lo));
17297 }
17298 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
17299 index e7636ba..e1fb78a 100644
17300 --- a/arch/x86/include/asm/alternative-asm.h
17301 +++ b/arch/x86/include/asm/alternative-asm.h
17302 @@ -18,6 +18,45 @@
17303 .endm
17304 #endif
17305
17306 +#ifdef KERNEXEC_PLUGIN
17307 + .macro pax_force_retaddr_bts rip=0
17308 + btsq $63,\rip(%rsp)
17309 + .endm
17310 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
17311 + .macro pax_force_retaddr rip=0, reload=0
17312 + btsq $63,\rip(%rsp)
17313 + .endm
17314 + .macro pax_force_fptr ptr
17315 + btsq $63,\ptr
17316 + .endm
17317 + .macro pax_set_fptr_mask
17318 + .endm
17319 +#endif
17320 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
17321 + .macro pax_force_retaddr rip=0, reload=0
17322 + .if \reload
17323 + pax_set_fptr_mask
17324 + .endif
17325 + orq %r12,\rip(%rsp)
17326 + .endm
17327 + .macro pax_force_fptr ptr
17328 + orq %r12,\ptr
17329 + .endm
17330 + .macro pax_set_fptr_mask
17331 + movabs $0x8000000000000000,%r12
17332 + .endm
17333 +#endif
17334 +#else
17335 + .macro pax_force_retaddr rip=0, reload=0
17336 + .endm
17337 + .macro pax_force_fptr ptr
17338 + .endm
17339 + .macro pax_force_retaddr_bts rip=0
17340 + .endm
17341 + .macro pax_set_fptr_mask
17342 + .endm
17343 +#endif
17344 +
17345 /*
17346 * Issue one struct alt_instr descriptor entry (need to put it into
17347 * the section .altinstructions, see below). This entry contains
17348 @@ -50,7 +89,7 @@
17349 altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f,142b-141b
17350 .popsection
17351
17352 - .pushsection .altinstr_replacement,"ax"
17353 + .pushsection .altinstr_replacement,"a"
17354 143:
17355 \newinstr
17356 144:
17357 @@ -86,7 +125,7 @@
17358 altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f,142b-141b
17359 .popsection
17360
17361 - .pushsection .altinstr_replacement,"ax"
17362 + .pushsection .altinstr_replacement,"a"
17363 143:
17364 \newinstr1
17365 144:
17366 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
17367 index 7bfc85b..65d1ec4 100644
17368 --- a/arch/x86/include/asm/alternative.h
17369 +++ b/arch/x86/include/asm/alternative.h
17370 @@ -136,7 +136,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17371 ".pushsection .altinstructions,\"a\"\n" \
17372 ALTINSTR_ENTRY(feature, 1) \
17373 ".popsection\n" \
17374 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17375 + ".pushsection .altinstr_replacement, \"a\"\n" \
17376 ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
17377 ".popsection"
17378
17379 @@ -146,7 +146,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17380 ALTINSTR_ENTRY(feature1, 1) \
17381 ALTINSTR_ENTRY(feature2, 2) \
17382 ".popsection\n" \
17383 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17384 + ".pushsection .altinstr_replacement, \"a\"\n" \
17385 ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
17386 ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
17387 ".popsection"
17388 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
17389 index ebf6d5e..91c1cf2 100644
17390 --- a/arch/x86/include/asm/apic.h
17391 +++ b/arch/x86/include/asm/apic.h
17392 @@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
17393
17394 #ifdef CONFIG_X86_LOCAL_APIC
17395
17396 -extern unsigned int apic_verbosity;
17397 +extern int apic_verbosity;
17398 extern int local_apic_timer_c2_ok;
17399
17400 extern int disable_apic;
17401 diff --git a/arch/x86/include/asm/apm.h b/arch/x86/include/asm/apm.h
17402 index 20370c6..a2eb9b0 100644
17403 --- a/arch/x86/include/asm/apm.h
17404 +++ b/arch/x86/include/asm/apm.h
17405 @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
17406 __asm__ __volatile__(APM_DO_ZERO_SEGS
17407 "pushl %%edi\n\t"
17408 "pushl %%ebp\n\t"
17409 - "lcall *%%cs:apm_bios_entry\n\t"
17410 + "lcall *%%ss:apm_bios_entry\n\t"
17411 "setc %%al\n\t"
17412 "popl %%ebp\n\t"
17413 "popl %%edi\n\t"
17414 @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in,
17415 __asm__ __volatile__(APM_DO_ZERO_SEGS
17416 "pushl %%edi\n\t"
17417 "pushl %%ebp\n\t"
17418 - "lcall *%%cs:apm_bios_entry\n\t"
17419 + "lcall *%%ss:apm_bios_entry\n\t"
17420 "setc %%bl\n\t"
17421 "popl %%ebp\n\t"
17422 "popl %%edi\n\t"
17423 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
17424 index fb52aa6..527487e 100644
17425 --- a/arch/x86/include/asm/atomic.h
17426 +++ b/arch/x86/include/asm/atomic.h
17427 @@ -28,6 +28,17 @@ static __always_inline int atomic_read(const atomic_t *v)
17428 }
17429
17430 /**
17431 + * atomic_read_unchecked - read atomic variable
17432 + * @v: pointer of type atomic_unchecked_t
17433 + *
17434 + * Atomically reads the value of @v.
17435 + */
17436 +static __always_inline int __intentional_overflow(-1) atomic_read_unchecked(const atomic_unchecked_t *v)
17437 +{
17438 + return ACCESS_ONCE((v)->counter);
17439 +}
17440 +
17441 +/**
17442 * atomic_set - set atomic variable
17443 * @v: pointer of type atomic_t
17444 * @i: required value
17445 @@ -40,6 +51,18 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17446 }
17447
17448 /**
17449 + * atomic_set_unchecked - set atomic variable
17450 + * @v: pointer of type atomic_unchecked_t
17451 + * @i: required value
17452 + *
17453 + * Atomically sets the value of @v to @i.
17454 + */
17455 +static __always_inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
17456 +{
17457 + v->counter = i;
17458 +}
17459 +
17460 +/**
17461 * atomic_add - add integer to atomic variable
17462 * @i: integer value to add
17463 * @v: pointer of type atomic_t
17464 @@ -48,7 +71,29 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17465 */
17466 static __always_inline void atomic_add(int i, atomic_t *v)
17467 {
17468 - asm volatile(LOCK_PREFIX "addl %1,%0"
17469 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17470 +
17471 +#ifdef CONFIG_PAX_REFCOUNT
17472 + "jno 0f\n"
17473 + LOCK_PREFIX "subl %1,%0\n"
17474 + "int $4\n0:\n"
17475 + _ASM_EXTABLE(0b, 0b)
17476 +#endif
17477 +
17478 + : "+m" (v->counter)
17479 + : "ir" (i));
17480 +}
17481 +
17482 +/**
17483 + * atomic_add_unchecked - add integer to atomic variable
17484 + * @i: integer value to add
17485 + * @v: pointer of type atomic_unchecked_t
17486 + *
17487 + * Atomically adds @i to @v.
17488 + */
17489 +static __always_inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
17490 +{
17491 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17492 : "+m" (v->counter)
17493 : "ir" (i));
17494 }
17495 @@ -62,7 +107,29 @@ static __always_inline void atomic_add(int i, atomic_t *v)
17496 */
17497 static __always_inline void atomic_sub(int i, atomic_t *v)
17498 {
17499 - asm volatile(LOCK_PREFIX "subl %1,%0"
17500 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17501 +
17502 +#ifdef CONFIG_PAX_REFCOUNT
17503 + "jno 0f\n"
17504 + LOCK_PREFIX "addl %1,%0\n"
17505 + "int $4\n0:\n"
17506 + _ASM_EXTABLE(0b, 0b)
17507 +#endif
17508 +
17509 + : "+m" (v->counter)
17510 + : "ir" (i));
17511 +}
17512 +
17513 +/**
17514 + * atomic_sub_unchecked - subtract integer from atomic variable
17515 + * @i: integer value to subtract
17516 + * @v: pointer of type atomic_unchecked_t
17517 + *
17518 + * Atomically subtracts @i from @v.
17519 + */
17520 +static __always_inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
17521 +{
17522 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17523 : "+m" (v->counter)
17524 : "ir" (i));
17525 }
17526 @@ -78,7 +145,7 @@ static __always_inline void atomic_sub(int i, atomic_t *v)
17527 */
17528 static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17529 {
17530 - GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
17531 + GEN_BINARY_RMWcc(LOCK_PREFIX "subl", LOCK_PREFIX "addl", v->counter, "er", i, "%0", "e");
17532 }
17533
17534 /**
17535 @@ -89,7 +156,27 @@ static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17536 */
17537 static __always_inline void atomic_inc(atomic_t *v)
17538 {
17539 - asm volatile(LOCK_PREFIX "incl %0"
17540 + asm volatile(LOCK_PREFIX "incl %0\n"
17541 +
17542 +#ifdef CONFIG_PAX_REFCOUNT
17543 + "jno 0f\n"
17544 + LOCK_PREFIX "decl %0\n"
17545 + "int $4\n0:\n"
17546 + _ASM_EXTABLE(0b, 0b)
17547 +#endif
17548 +
17549 + : "+m" (v->counter));
17550 +}
17551 +
17552 +/**
17553 + * atomic_inc_unchecked - increment atomic variable
17554 + * @v: pointer of type atomic_unchecked_t
17555 + *
17556 + * Atomically increments @v by 1.
17557 + */
17558 +static __always_inline void atomic_inc_unchecked(atomic_unchecked_t *v)
17559 +{
17560 + asm volatile(LOCK_PREFIX "incl %0\n"
17561 : "+m" (v->counter));
17562 }
17563
17564 @@ -101,7 +188,27 @@ static __always_inline void atomic_inc(atomic_t *v)
17565 */
17566 static __always_inline void atomic_dec(atomic_t *v)
17567 {
17568 - asm volatile(LOCK_PREFIX "decl %0"
17569 + asm volatile(LOCK_PREFIX "decl %0\n"
17570 +
17571 +#ifdef CONFIG_PAX_REFCOUNT
17572 + "jno 0f\n"
17573 + LOCK_PREFIX "incl %0\n"
17574 + "int $4\n0:\n"
17575 + _ASM_EXTABLE(0b, 0b)
17576 +#endif
17577 +
17578 + : "+m" (v->counter));
17579 +}
17580 +
17581 +/**
17582 + * atomic_dec_unchecked - decrement atomic variable
17583 + * @v: pointer of type atomic_unchecked_t
17584 + *
17585 + * Atomically decrements @v by 1.
17586 + */
17587 +static __always_inline void atomic_dec_unchecked(atomic_unchecked_t *v)
17588 +{
17589 + asm volatile(LOCK_PREFIX "decl %0\n"
17590 : "+m" (v->counter));
17591 }
17592
17593 @@ -115,7 +222,7 @@ static __always_inline void atomic_dec(atomic_t *v)
17594 */
17595 static __always_inline int atomic_dec_and_test(atomic_t *v)
17596 {
17597 - GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
17598 + GEN_UNARY_RMWcc(LOCK_PREFIX "decl", LOCK_PREFIX "incl", v->counter, "%0", "e");
17599 }
17600
17601 /**
17602 @@ -128,7 +235,20 @@ static __always_inline int atomic_dec_and_test(atomic_t *v)
17603 */
17604 static __always_inline int atomic_inc_and_test(atomic_t *v)
17605 {
17606 - GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", "e");
17607 + GEN_UNARY_RMWcc(LOCK_PREFIX "incl", LOCK_PREFIX "decl", v->counter, "%0", "e");
17608 +}
17609 +
17610 +/**
17611 + * atomic_inc_and_test_unchecked - increment and test
17612 + * @v: pointer of type atomic_unchecked_t
17613 + *
17614 + * Atomically increments @v by 1
17615 + * and returns true if the result is zero, or false for all
17616 + * other cases.
17617 + */
17618 +static __always_inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
17619 +{
17620 + GEN_UNARY_RMWcc_unchecked(LOCK_PREFIX "incl", v->counter, "%0", "e");
17621 }
17622
17623 /**
17624 @@ -142,7 +262,7 @@ static __always_inline int atomic_inc_and_test(atomic_t *v)
17625 */
17626 static __always_inline int atomic_add_negative(int i, atomic_t *v)
17627 {
17628 - GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", "s");
17629 + GEN_BINARY_RMWcc(LOCK_PREFIX "addl", LOCK_PREFIX "subl", v->counter, "er", i, "%0", "s");
17630 }
17631
17632 /**
17633 @@ -152,7 +272,19 @@ static __always_inline int atomic_add_negative(int i, atomic_t *v)
17634 *
17635 * Atomically adds @i to @v and returns @i + @v
17636 */
17637 -static __always_inline int atomic_add_return(int i, atomic_t *v)
17638 +static __always_inline int __intentional_overflow(-1) atomic_add_return(int i, atomic_t *v)
17639 +{
17640 + return i + xadd_check_overflow(&v->counter, i);
17641 +}
17642 +
17643 +/**
17644 + * atomic_add_return_unchecked - add integer and return
17645 + * @i: integer value to add
17646 + * @v: pointer of type atomi_uncheckedc_t
17647 + *
17648 + * Atomically adds @i to @v and returns @i + @v
17649 + */
17650 +static __always_inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
17651 {
17652 return i + xadd(&v->counter, i);
17653 }
17654 @@ -164,15 +296,24 @@ static __always_inline int atomic_add_return(int i, atomic_t *v)
17655 *
17656 * Atomically subtracts @i from @v and returns @v - @i
17657 */
17658 -static __always_inline int atomic_sub_return(int i, atomic_t *v)
17659 +static __always_inline int __intentional_overflow(-1) atomic_sub_return(int i, atomic_t *v)
17660 {
17661 return atomic_add_return(-i, v);
17662 }
17663
17664 #define atomic_inc_return(v) (atomic_add_return(1, v))
17665 +static __always_inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
17666 +{
17667 + return atomic_add_return_unchecked(1, v);
17668 +}
17669 #define atomic_dec_return(v) (atomic_sub_return(1, v))
17670
17671 -static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
17672 +static __always_inline int __intentional_overflow(-1) atomic_cmpxchg(atomic_t *v, int old, int new)
17673 +{
17674 + return cmpxchg(&v->counter, old, new);
17675 +}
17676 +
17677 +static __always_inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
17678 {
17679 return cmpxchg(&v->counter, old, new);
17680 }
17681 @@ -182,6 +323,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
17682 return xchg(&v->counter, new);
17683 }
17684
17685 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
17686 +{
17687 + return xchg(&v->counter, new);
17688 +}
17689 +
17690 #define ATOMIC_OP(op) \
17691 static inline void atomic_##op(int i, atomic_t *v) \
17692 { \
17693 @@ -208,12 +354,25 @@ ATOMIC_OP(xor)
17694 */
17695 static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17696 {
17697 - int c, old;
17698 + int c, old, new;
17699 c = atomic_read(v);
17700 for (;;) {
17701 - if (unlikely(c == (u)))
17702 + if (unlikely(c == u))
17703 break;
17704 - old = atomic_cmpxchg((v), c, c + (a));
17705 +
17706 + asm volatile("addl %2,%0\n"
17707 +
17708 +#ifdef CONFIG_PAX_REFCOUNT
17709 + "jno 0f\n"
17710 + "subl %2,%0\n"
17711 + "int $4\n0:\n"
17712 + _ASM_EXTABLE(0b, 0b)
17713 +#endif
17714 +
17715 + : "=r" (new)
17716 + : "0" (c), "ir" (a));
17717 +
17718 + old = atomic_cmpxchg(v, c, new);
17719 if (likely(old == c))
17720 break;
17721 c = old;
17722 @@ -222,6 +381,49 @@ static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17723 }
17724
17725 /**
17726 + * atomic_inc_not_zero_hint - increment if not null
17727 + * @v: pointer of type atomic_t
17728 + * @hint: probable value of the atomic before the increment
17729 + *
17730 + * This version of atomic_inc_not_zero() gives a hint of probable
17731 + * value of the atomic. This helps processor to not read the memory
17732 + * before doing the atomic read/modify/write cycle, lowering
17733 + * number of bus transactions on some arches.
17734 + *
17735 + * Returns: 0 if increment was not done, 1 otherwise.
17736 + */
17737 +#define atomic_inc_not_zero_hint atomic_inc_not_zero_hint
17738 +static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
17739 +{
17740 + int val, c = hint, new;
17741 +
17742 + /* sanity test, should be removed by compiler if hint is a constant */
17743 + if (!hint)
17744 + return __atomic_add_unless(v, 1, 0);
17745 +
17746 + do {
17747 + asm volatile("incl %0\n"
17748 +
17749 +#ifdef CONFIG_PAX_REFCOUNT
17750 + "jno 0f\n"
17751 + "decl %0\n"
17752 + "int $4\n0:\n"
17753 + _ASM_EXTABLE(0b, 0b)
17754 +#endif
17755 +
17756 + : "=r" (new)
17757 + : "0" (c));
17758 +
17759 + val = atomic_cmpxchg(v, c, new);
17760 + if (val == c)
17761 + return 1;
17762 + c = val;
17763 + } while (c);
17764 +
17765 + return 0;
17766 +}
17767 +
17768 +/**
17769 * atomic_inc_short - increment of a short integer
17770 * @v: pointer to type int
17771 *
17772 diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
17773 index a11c30b..66fd8a0 100644
17774 --- a/arch/x86/include/asm/atomic64_32.h
17775 +++ b/arch/x86/include/asm/atomic64_32.h
17776 @@ -12,6 +12,14 @@ typedef struct {
17777 u64 __aligned(8) counter;
17778 } atomic64_t;
17779
17780 +#ifdef CONFIG_PAX_REFCOUNT
17781 +typedef struct {
17782 + u64 __aligned(8) counter;
17783 +} atomic64_unchecked_t;
17784 +#else
17785 +typedef atomic64_t atomic64_unchecked_t;
17786 +#endif
17787 +
17788 #define ATOMIC64_INIT(val) { (val) }
17789
17790 #define __ATOMIC64_DECL(sym) void atomic64_##sym(atomic64_t *, ...)
17791 @@ -37,21 +45,31 @@ typedef struct {
17792 ATOMIC64_DECL_ONE(sym##_386)
17793
17794 ATOMIC64_DECL_ONE(add_386);
17795 +ATOMIC64_DECL_ONE(add_unchecked_386);
17796 ATOMIC64_DECL_ONE(sub_386);
17797 +ATOMIC64_DECL_ONE(sub_unchecked_386);
17798 ATOMIC64_DECL_ONE(inc_386);
17799 +ATOMIC64_DECL_ONE(inc_unchecked_386);
17800 ATOMIC64_DECL_ONE(dec_386);
17801 +ATOMIC64_DECL_ONE(dec_unchecked_386);
17802 #endif
17803
17804 #define alternative_atomic64(f, out, in...) \
17805 __alternative_atomic64(f, f, ASM_OUTPUT2(out), ## in)
17806
17807 ATOMIC64_DECL(read);
17808 +ATOMIC64_DECL(read_unchecked);
17809 ATOMIC64_DECL(set);
17810 +ATOMIC64_DECL(set_unchecked);
17811 ATOMIC64_DECL(xchg);
17812 ATOMIC64_DECL(add_return);
17813 +ATOMIC64_DECL(add_return_unchecked);
17814 ATOMIC64_DECL(sub_return);
17815 +ATOMIC64_DECL(sub_return_unchecked);
17816 ATOMIC64_DECL(inc_return);
17817 +ATOMIC64_DECL(inc_return_unchecked);
17818 ATOMIC64_DECL(dec_return);
17819 +ATOMIC64_DECL(dec_return_unchecked);
17820 ATOMIC64_DECL(dec_if_positive);
17821 ATOMIC64_DECL(inc_not_zero);
17822 ATOMIC64_DECL(add_unless);
17823 @@ -77,6 +95,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
17824 }
17825
17826 /**
17827 + * atomic64_cmpxchg_unchecked - cmpxchg atomic64 variable
17828 + * @p: pointer to type atomic64_unchecked_t
17829 + * @o: expected value
17830 + * @n: new value
17831 + *
17832 + * Atomically sets @v to @n if it was equal to @o and returns
17833 + * the old value.
17834 + */
17835 +
17836 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long long o, long long n)
17837 +{
17838 + return cmpxchg64(&v->counter, o, n);
17839 +}
17840 +
17841 +/**
17842 * atomic64_xchg - xchg atomic64 variable
17843 * @v: pointer to type atomic64_t
17844 * @n: value to assign
17845 @@ -112,6 +145,22 @@ static inline void atomic64_set(atomic64_t *v, long long i)
17846 }
17847
17848 /**
17849 + * atomic64_set_unchecked - set atomic64 variable
17850 + * @v: pointer to type atomic64_unchecked_t
17851 + * @n: value to assign
17852 + *
17853 + * Atomically sets the value of @v to @n.
17854 + */
17855 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
17856 +{
17857 + unsigned high = (unsigned)(i >> 32);
17858 + unsigned low = (unsigned)i;
17859 + alternative_atomic64(set, /* no output */,
17860 + "S" (v), "b" (low), "c" (high)
17861 + : "eax", "edx", "memory");
17862 +}
17863 +
17864 +/**
17865 * atomic64_read - read atomic64 variable
17866 * @v: pointer to type atomic64_t
17867 *
17868 @@ -125,6 +174,19 @@ static inline long long atomic64_read(const atomic64_t *v)
17869 }
17870
17871 /**
17872 + * atomic64_read_unchecked - read atomic64 variable
17873 + * @v: pointer to type atomic64_unchecked_t
17874 + *
17875 + * Atomically reads the value of @v and returns it.
17876 + */
17877 +static inline long long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
17878 +{
17879 + long long r;
17880 + alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
17881 + return r;
17882 + }
17883 +
17884 +/**
17885 * atomic64_add_return - add and return
17886 * @i: integer value to add
17887 * @v: pointer to type atomic64_t
17888 @@ -139,6 +201,21 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
17889 return i;
17890 }
17891
17892 +/**
17893 + * atomic64_add_return_unchecked - add and return
17894 + * @i: integer value to add
17895 + * @v: pointer to type atomic64_unchecked_t
17896 + *
17897 + * Atomically adds @i to @v and returns @i + *@v
17898 + */
17899 +static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
17900 +{
17901 + alternative_atomic64(add_return_unchecked,
17902 + ASM_OUTPUT2("+A" (i), "+c" (v)),
17903 + ASM_NO_INPUT_CLOBBER("memory"));
17904 + return i;
17905 +}
17906 +
17907 /*
17908 * Other variants with different arithmetic operators:
17909 */
17910 @@ -158,6 +235,14 @@ static inline long long atomic64_inc_return(atomic64_t *v)
17911 return a;
17912 }
17913
17914 +static inline long long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
17915 +{
17916 + long long a;
17917 + alternative_atomic64(inc_return_unchecked, "=&A" (a),
17918 + "S" (v) : "memory", "ecx");
17919 + return a;
17920 +}
17921 +
17922 static inline long long atomic64_dec_return(atomic64_t *v)
17923 {
17924 long long a;
17925 @@ -182,6 +267,21 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
17926 }
17927
17928 /**
17929 + * atomic64_add_unchecked - add integer to atomic64 variable
17930 + * @i: integer value to add
17931 + * @v: pointer to type atomic64_unchecked_t
17932 + *
17933 + * Atomically adds @i to @v.
17934 + */
17935 +static inline long long atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
17936 +{
17937 + __alternative_atomic64(add_unchecked, add_return_unchecked,
17938 + ASM_OUTPUT2("+A" (i), "+c" (v)),
17939 + ASM_NO_INPUT_CLOBBER("memory"));
17940 + return i;
17941 +}
17942 +
17943 +/**
17944 * atomic64_sub - subtract the atomic64 variable
17945 * @i: integer value to subtract
17946 * @v: pointer to type atomic64_t
17947 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
17948 index 50e33ef..d36dd50 100644
17949 --- a/arch/x86/include/asm/atomic64_64.h
17950 +++ b/arch/x86/include/asm/atomic64_64.h
17951 @@ -22,6 +22,18 @@ static inline long atomic64_read(const atomic64_t *v)
17952 }
17953
17954 /**
17955 + * atomic64_read_unchecked - read atomic64 variable
17956 + * @v: pointer of type atomic64_unchecked_t
17957 + *
17958 + * Atomically reads the value of @v.
17959 + * Doesn't imply a read memory barrier.
17960 + */
17961 +static inline long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
17962 +{
17963 + return ACCESS_ONCE((v)->counter);
17964 +}
17965 +
17966 +/**
17967 * atomic64_set - set atomic64 variable
17968 * @v: pointer to type atomic64_t
17969 * @i: required value
17970 @@ -34,6 +46,18 @@ static inline void atomic64_set(atomic64_t *v, long i)
17971 }
17972
17973 /**
17974 + * atomic64_set_unchecked - set atomic64 variable
17975 + * @v: pointer to type atomic64_unchecked_t
17976 + * @i: required value
17977 + *
17978 + * Atomically sets the value of @v to @i.
17979 + */
17980 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
17981 +{
17982 + v->counter = i;
17983 +}
17984 +
17985 +/**
17986 * atomic64_add - add integer to atomic64 variable
17987 * @i: integer value to add
17988 * @v: pointer to type atomic64_t
17989 @@ -42,6 +66,28 @@ static inline void atomic64_set(atomic64_t *v, long i)
17990 */
17991 static __always_inline void atomic64_add(long i, atomic64_t *v)
17992 {
17993 + asm volatile(LOCK_PREFIX "addq %1,%0\n"
17994 +
17995 +#ifdef CONFIG_PAX_REFCOUNT
17996 + "jno 0f\n"
17997 + LOCK_PREFIX "subq %1,%0\n"
17998 + "int $4\n0:\n"
17999 + _ASM_EXTABLE(0b, 0b)
18000 +#endif
18001 +
18002 + : "=m" (v->counter)
18003 + : "er" (i), "m" (v->counter));
18004 +}
18005 +
18006 +/**
18007 + * atomic64_add_unchecked - add integer to atomic64 variable
18008 + * @i: integer value to add
18009 + * @v: pointer to type atomic64_unchecked_t
18010 + *
18011 + * Atomically adds @i to @v.
18012 + */
18013 +static __always_inline void atomic64_add_unchecked(long i, atomic64_unchecked_t *v)
18014 +{
18015 asm volatile(LOCK_PREFIX "addq %1,%0"
18016 : "=m" (v->counter)
18017 : "er" (i), "m" (v->counter));
18018 @@ -56,7 +102,29 @@ static __always_inline void atomic64_add(long i, atomic64_t *v)
18019 */
18020 static inline void atomic64_sub(long i, atomic64_t *v)
18021 {
18022 - asm volatile(LOCK_PREFIX "subq %1,%0"
18023 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18024 +
18025 +#ifdef CONFIG_PAX_REFCOUNT
18026 + "jno 0f\n"
18027 + LOCK_PREFIX "addq %1,%0\n"
18028 + "int $4\n0:\n"
18029 + _ASM_EXTABLE(0b, 0b)
18030 +#endif
18031 +
18032 + : "=m" (v->counter)
18033 + : "er" (i), "m" (v->counter));
18034 +}
18035 +
18036 +/**
18037 + * atomic64_sub_unchecked - subtract the atomic64 variable
18038 + * @i: integer value to subtract
18039 + * @v: pointer to type atomic64_unchecked_t
18040 + *
18041 + * Atomically subtracts @i from @v.
18042 + */
18043 +static inline void atomic64_sub_unchecked(long i, atomic64_unchecked_t *v)
18044 +{
18045 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18046 : "=m" (v->counter)
18047 : "er" (i), "m" (v->counter));
18048 }
18049 @@ -72,7 +140,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
18050 */
18051 static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18052 {
18053 - GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e");
18054 + GEN_BINARY_RMWcc(LOCK_PREFIX "subq", LOCK_PREFIX "addq", v->counter, "er", i, "%0", "e");
18055 }
18056
18057 /**
18058 @@ -83,6 +151,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18059 */
18060 static __always_inline void atomic64_inc(atomic64_t *v)
18061 {
18062 + asm volatile(LOCK_PREFIX "incq %0\n"
18063 +
18064 +#ifdef CONFIG_PAX_REFCOUNT
18065 + "jno 0f\n"
18066 + LOCK_PREFIX "decq %0\n"
18067 + "int $4\n0:\n"
18068 + _ASM_EXTABLE(0b, 0b)
18069 +#endif
18070 +
18071 + : "=m" (v->counter)
18072 + : "m" (v->counter));
18073 +}
18074 +
18075 +/**
18076 + * atomic64_inc_unchecked - increment atomic64 variable
18077 + * @v: pointer to type atomic64_unchecked_t
18078 + *
18079 + * Atomically increments @v by 1.
18080 + */
18081 +static __always_inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
18082 +{
18083 asm volatile(LOCK_PREFIX "incq %0"
18084 : "=m" (v->counter)
18085 : "m" (v->counter));
18086 @@ -96,7 +185,28 @@ static __always_inline void atomic64_inc(atomic64_t *v)
18087 */
18088 static __always_inline void atomic64_dec(atomic64_t *v)
18089 {
18090 - asm volatile(LOCK_PREFIX "decq %0"
18091 + asm volatile(LOCK_PREFIX "decq %0\n"
18092 +
18093 +#ifdef CONFIG_PAX_REFCOUNT
18094 + "jno 0f\n"
18095 + LOCK_PREFIX "incq %0\n"
18096 + "int $4\n0:\n"
18097 + _ASM_EXTABLE(0b, 0b)
18098 +#endif
18099 +
18100 + : "=m" (v->counter)
18101 + : "m" (v->counter));
18102 +}
18103 +
18104 +/**
18105 + * atomic64_dec_unchecked - decrement atomic64 variable
18106 + * @v: pointer to type atomic64_t
18107 + *
18108 + * Atomically decrements @v by 1.
18109 + */
18110 +static __always_inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
18111 +{
18112 + asm volatile(LOCK_PREFIX "decq %0\n"
18113 : "=m" (v->counter)
18114 : "m" (v->counter));
18115 }
18116 @@ -111,7 +221,7 @@ static __always_inline void atomic64_dec(atomic64_t *v)
18117 */
18118 static inline int atomic64_dec_and_test(atomic64_t *v)
18119 {
18120 - GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e");
18121 + GEN_UNARY_RMWcc(LOCK_PREFIX "decq", LOCK_PREFIX "incq", v->counter, "%0", "e");
18122 }
18123
18124 /**
18125 @@ -124,7 +234,7 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
18126 */
18127 static inline int atomic64_inc_and_test(atomic64_t *v)
18128 {
18129 - GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e");
18130 + GEN_UNARY_RMWcc(LOCK_PREFIX "incq", LOCK_PREFIX "decq", v->counter, "%0", "e");
18131 }
18132
18133 /**
18134 @@ -138,7 +248,7 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
18135 */
18136 static inline int atomic64_add_negative(long i, atomic64_t *v)
18137 {
18138 - GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s");
18139 + GEN_BINARY_RMWcc(LOCK_PREFIX "addq", LOCK_PREFIX "subq", v->counter, "er", i, "%0", "s");
18140 }
18141
18142 /**
18143 @@ -150,6 +260,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
18144 */
18145 static __always_inline long atomic64_add_return(long i, atomic64_t *v)
18146 {
18147 + return i + xadd_check_overflow(&v->counter, i);
18148 +}
18149 +
18150 +/**
18151 + * atomic64_add_return_unchecked - add and return
18152 + * @i: integer value to add
18153 + * @v: pointer to type atomic64_unchecked_t
18154 + *
18155 + * Atomically adds @i to @v and returns @i + @v
18156 + */
18157 +static __always_inline long atomic64_add_return_unchecked(long i, atomic64_unchecked_t *v)
18158 +{
18159 return i + xadd(&v->counter, i);
18160 }
18161
18162 @@ -159,6 +281,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
18163 }
18164
18165 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
18166 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
18167 +{
18168 + return atomic64_add_return_unchecked(1, v);
18169 +}
18170 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
18171
18172 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18173 @@ -166,6 +292,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18174 return cmpxchg(&v->counter, old, new);
18175 }
18176
18177 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
18178 +{
18179 + return cmpxchg(&v->counter, old, new);
18180 +}
18181 +
18182 static inline long atomic64_xchg(atomic64_t *v, long new)
18183 {
18184 return xchg(&v->counter, new);
18185 @@ -182,17 +313,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
18186 */
18187 static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
18188 {
18189 - long c, old;
18190 + long c, old, new;
18191 c = atomic64_read(v);
18192 for (;;) {
18193 - if (unlikely(c == (u)))
18194 + if (unlikely(c == u))
18195 break;
18196 - old = atomic64_cmpxchg((v), c, c + (a));
18197 +
18198 + asm volatile("add %2,%0\n"
18199 +
18200 +#ifdef CONFIG_PAX_REFCOUNT
18201 + "jno 0f\n"
18202 + "sub %2,%0\n"
18203 + "int $4\n0:\n"
18204 + _ASM_EXTABLE(0b, 0b)
18205 +#endif
18206 +
18207 + : "=r" (new)
18208 + : "0" (c), "ir" (a));
18209 +
18210 + old = atomic64_cmpxchg(v, c, new);
18211 if (likely(old == c))
18212 break;
18213 c = old;
18214 }
18215 - return c != (u);
18216 + return c != u;
18217 }
18218
18219 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
18220 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
18221 index cfe3b95..d01b118 100644
18222 --- a/arch/x86/include/asm/bitops.h
18223 +++ b/arch/x86/include/asm/bitops.h
18224 @@ -50,7 +50,7 @@
18225 * a mask operation on a byte.
18226 */
18227 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
18228 -#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3))
18229 +#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((volatile void *)(addr) + ((nr)>>3))
18230 #define CONST_MASK(nr) (1 << ((nr) & 7))
18231
18232 /**
18233 @@ -203,7 +203,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr)
18234 */
18235 static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
18236 {
18237 - GEN_BINARY_RMWcc(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18238 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18239 }
18240
18241 /**
18242 @@ -249,7 +249,7 @@ static inline int __test_and_set_bit(long nr, volatile unsigned long *addr)
18243 */
18244 static inline int test_and_clear_bit(long nr, volatile unsigned long *addr)
18245 {
18246 - GEN_BINARY_RMWcc(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18247 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18248 }
18249
18250 /**
18251 @@ -302,7 +302,7 @@ static inline int __test_and_change_bit(long nr, volatile unsigned long *addr)
18252 */
18253 static inline int test_and_change_bit(long nr, volatile unsigned long *addr)
18254 {
18255 - GEN_BINARY_RMWcc(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18256 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18257 }
18258
18259 static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr)
18260 @@ -343,7 +343,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
18261 *
18262 * Undefined if no bit exists, so code should check against 0 first.
18263 */
18264 -static inline unsigned long __ffs(unsigned long word)
18265 +static inline unsigned long __intentional_overflow(-1) __ffs(unsigned long word)
18266 {
18267 asm("rep; bsf %1,%0"
18268 : "=r" (word)
18269 @@ -357,7 +357,7 @@ static inline unsigned long __ffs(unsigned long word)
18270 *
18271 * Undefined if no zero exists, so code should check against ~0UL first.
18272 */
18273 -static inline unsigned long ffz(unsigned long word)
18274 +static inline unsigned long __intentional_overflow(-1) ffz(unsigned long word)
18275 {
18276 asm("rep; bsf %1,%0"
18277 : "=r" (word)
18278 @@ -371,7 +371,7 @@ static inline unsigned long ffz(unsigned long word)
18279 *
18280 * Undefined if no set bit exists, so code should check against 0 first.
18281 */
18282 -static inline unsigned long __fls(unsigned long word)
18283 +static inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
18284 {
18285 asm("bsr %1,%0"
18286 : "=r" (word)
18287 @@ -434,7 +434,7 @@ static inline int ffs(int x)
18288 * set bit if value is nonzero. The last (most significant) bit is
18289 * at position 32.
18290 */
18291 -static inline int fls(int x)
18292 +static inline int __intentional_overflow(-1) fls(int x)
18293 {
18294 int r;
18295
18296 @@ -476,7 +476,7 @@ static inline int fls(int x)
18297 * at position 64.
18298 */
18299 #ifdef CONFIG_X86_64
18300 -static __always_inline int fls64(__u64 x)
18301 +static __always_inline __intentional_overflow(-1) int fls64(__u64 x)
18302 {
18303 int bitpos = -1;
18304 /*
18305 diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
18306 index 4fa687a..4ca636f 100644
18307 --- a/arch/x86/include/asm/boot.h
18308 +++ b/arch/x86/include/asm/boot.h
18309 @@ -6,7 +6,7 @@
18310 #include <uapi/asm/boot.h>
18311
18312 /* Physical address where kernel should be loaded. */
18313 -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18314 +#define ____LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18315 + (CONFIG_PHYSICAL_ALIGN - 1)) \
18316 & ~(CONFIG_PHYSICAL_ALIGN - 1))
18317
18318 diff --git a/arch/x86/include/asm/cache.h b/arch/x86/include/asm/cache.h
18319 index 48f99f1..d78ebf9 100644
18320 --- a/arch/x86/include/asm/cache.h
18321 +++ b/arch/x86/include/asm/cache.h
18322 @@ -5,12 +5,13 @@
18323
18324 /* L1 cache line size */
18325 #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
18326 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
18327 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
18328
18329 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
18330 +#define __read_only __attribute__((__section__(".data..read_only")))
18331
18332 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
18333 -#define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
18334 +#define INTERNODE_CACHE_BYTES (_AC(1,UL) << INTERNODE_CACHE_SHIFT)
18335
18336 #ifdef CONFIG_X86_VSMP
18337 #ifdef CONFIG_SMP
18338 diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
18339 index f50de69..2b0a458 100644
18340 --- a/arch/x86/include/asm/checksum_32.h
18341 +++ b/arch/x86/include/asm/checksum_32.h
18342 @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,
18343 int len, __wsum sum,
18344 int *src_err_ptr, int *dst_err_ptr);
18345
18346 +asmlinkage __wsum csum_partial_copy_generic_to_user(const void *src, void *dst,
18347 + int len, __wsum sum,
18348 + int *src_err_ptr, int *dst_err_ptr);
18349 +
18350 +asmlinkage __wsum csum_partial_copy_generic_from_user(const void *src, void *dst,
18351 + int len, __wsum sum,
18352 + int *src_err_ptr, int *dst_err_ptr);
18353 +
18354 /*
18355 * Note: when you get a NULL pointer exception here this means someone
18356 * passed in an incorrect kernel address to one of these functions.
18357 @@ -53,7 +61,7 @@ static inline __wsum csum_partial_copy_from_user(const void __user *src,
18358
18359 might_sleep();
18360 stac();
18361 - ret = csum_partial_copy_generic((__force void *)src, dst,
18362 + ret = csum_partial_copy_generic_from_user((__force void *)src, dst,
18363 len, sum, err_ptr, NULL);
18364 clac();
18365
18366 @@ -187,7 +195,7 @@ static inline __wsum csum_and_copy_to_user(const void *src,
18367 might_sleep();
18368 if (access_ok(VERIFY_WRITE, dst, len)) {
18369 stac();
18370 - ret = csum_partial_copy_generic(src, (__force void *)dst,
18371 + ret = csum_partial_copy_generic_to_user(src, (__force void *)dst,
18372 len, sum, NULL, err_ptr);
18373 clac();
18374 return ret;
18375 diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
18376 index ad19841..0784041 100644
18377 --- a/arch/x86/include/asm/cmpxchg.h
18378 +++ b/arch/x86/include/asm/cmpxchg.h
18379 @@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
18380 __compiletime_error("Bad argument size for cmpxchg");
18381 extern void __xadd_wrong_size(void)
18382 __compiletime_error("Bad argument size for xadd");
18383 +extern void __xadd_check_overflow_wrong_size(void)
18384 + __compiletime_error("Bad argument size for xadd_check_overflow");
18385 extern void __add_wrong_size(void)
18386 __compiletime_error("Bad argument size for add");
18387 +extern void __add_check_overflow_wrong_size(void)
18388 + __compiletime_error("Bad argument size for add_check_overflow");
18389
18390 /*
18391 * Constants for operation sizes. On 32-bit, the 64-bit size it set to
18392 @@ -67,6 +71,38 @@ extern void __add_wrong_size(void)
18393 __ret; \
18394 })
18395
18396 +#ifdef CONFIG_PAX_REFCOUNT
18397 +#define __xchg_op_check_overflow(ptr, arg, op, lock) \
18398 + ({ \
18399 + __typeof__ (*(ptr)) __ret = (arg); \
18400 + switch (sizeof(*(ptr))) { \
18401 + case __X86_CASE_L: \
18402 + asm volatile (lock #op "l %0, %1\n" \
18403 + "jno 0f\n" \
18404 + "mov %0,%1\n" \
18405 + "int $4\n0:\n" \
18406 + _ASM_EXTABLE(0b, 0b) \
18407 + : "+r" (__ret), "+m" (*(ptr)) \
18408 + : : "memory", "cc"); \
18409 + break; \
18410 + case __X86_CASE_Q: \
18411 + asm volatile (lock #op "q %q0, %1\n" \
18412 + "jno 0f\n" \
18413 + "mov %0,%1\n" \
18414 + "int $4\n0:\n" \
18415 + _ASM_EXTABLE(0b, 0b) \
18416 + : "+r" (__ret), "+m" (*(ptr)) \
18417 + : : "memory", "cc"); \
18418 + break; \
18419 + default: \
18420 + __ ## op ## _check_overflow_wrong_size(); \
18421 + } \
18422 + __ret; \
18423 + })
18424 +#else
18425 +#define __xchg_op_check_overflow(ptr, arg, op, lock) __xchg_op(ptr, arg, op, lock)
18426 +#endif
18427 +
18428 /*
18429 * Note: no "lock" prefix even on SMP: xchg always implies lock anyway.
18430 * Since this is generally used to protect other memory information, we
18431 @@ -165,6 +201,9 @@ extern void __add_wrong_size(void)
18432 #define xadd_sync(ptr, inc) __xadd((ptr), (inc), "lock; ")
18433 #define xadd_local(ptr, inc) __xadd((ptr), (inc), "")
18434
18435 +#define __xadd_check_overflow(ptr, inc, lock) __xchg_op_check_overflow((ptr), (inc), xadd, lock)
18436 +#define xadd_check_overflow(ptr, inc) __xadd_check_overflow((ptr), (inc), LOCK_PREFIX)
18437 +
18438 #define __add(ptr, inc, lock) \
18439 ({ \
18440 __typeof__ (*(ptr)) __ret = (inc); \
18441 diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
18442 index acdee09..e5c31cd 100644
18443 --- a/arch/x86/include/asm/compat.h
18444 +++ b/arch/x86/include/asm/compat.h
18445 @@ -41,7 +41,11 @@ typedef s64 __attribute__((aligned(4))) compat_s64;
18446 typedef u32 compat_uint_t;
18447 typedef u32 compat_ulong_t;
18448 typedef u64 __attribute__((aligned(4))) compat_u64;
18449 +#ifdef CHECKER_PLUGIN_USER
18450 typedef u32 compat_uptr_t;
18451 +#else
18452 +typedef u32 __user compat_uptr_t;
18453 +#endif
18454
18455 struct compat_timespec {
18456 compat_time_t tv_sec;
18457 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
18458 index 9727b3b..183784a 100644
18459 --- a/arch/x86/include/asm/cpufeature.h
18460 +++ b/arch/x86/include/asm/cpufeature.h
18461 @@ -216,7 +216,8 @@
18462 #define X86_FEATURE_PAUSEFILTER ( 8*32+13) /* AMD filtered pause intercept */
18463 #define X86_FEATURE_PFTHRESHOLD ( 8*32+14) /* AMD pause filter threshold */
18464 #define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
18465 -
18466 +#define X86_FEATURE_PCIDUDEREF ( 8*32+30) /* PaX PCID based UDEREF */
18467 +#define X86_FEATURE_STRONGUDEREF (8*32+31) /* PaX PCID based strong UDEREF */
18468
18469 /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
18470 #define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
18471 @@ -224,7 +225,7 @@
18472 #define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
18473 #define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
18474 #define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
18475 -#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
18476 +#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Prevention */
18477 #define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
18478 #define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
18479 #define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
18480 @@ -404,6 +405,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
18481 #define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU)
18482 #define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT)
18483 #define cpu_has_bpext boot_cpu_has(X86_FEATURE_BPEXT)
18484 +#define cpu_has_pcid boot_cpu_has(X86_FEATURE_PCID)
18485
18486 #if __GNUC__ >= 4
18487 extern void warn_pre_alternatives(void);
18488 @@ -457,7 +459,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18489
18490 #ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
18491 t_warn:
18492 - warn_pre_alternatives();
18493 + if (bit != X86_FEATURE_PCID && bit != X86_FEATURE_INVPCID && bit != X86_FEATURE_PCIDUDEREF)
18494 + warn_pre_alternatives();
18495 return false;
18496 #endif
18497
18498 @@ -478,7 +481,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18499 ".section .discard,\"aw\",@progbits\n"
18500 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18501 ".previous\n"
18502 - ".section .altinstr_replacement,\"ax\"\n"
18503 + ".section .altinstr_replacement,\"a\"\n"
18504 "3: movb $1,%0\n"
18505 "4:\n"
18506 ".previous\n"
18507 @@ -513,7 +516,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18508 " .byte 5f - 4f\n" /* repl len */
18509 " .byte 3b - 2b\n" /* pad len */
18510 ".previous\n"
18511 - ".section .altinstr_replacement,\"ax\"\n"
18512 + ".section .altinstr_replacement,\"a\"\n"
18513 "4: jmp %l[t_no]\n"
18514 "5:\n"
18515 ".previous\n"
18516 @@ -548,7 +551,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18517 ".section .discard,\"aw\",@progbits\n"
18518 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18519 ".previous\n"
18520 - ".section .altinstr_replacement,\"ax\"\n"
18521 + ".section .altinstr_replacement,\"a\"\n"
18522 "3: movb $0,%0\n"
18523 "4:\n"
18524 ".previous\n"
18525 @@ -563,7 +566,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18526 ".section .discard,\"aw\",@progbits\n"
18527 " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
18528 ".previous\n"
18529 - ".section .altinstr_replacement,\"ax\"\n"
18530 + ".section .altinstr_replacement,\"a\"\n"
18531 "5: movb $1,%0\n"
18532 "6:\n"
18533 ".previous\n"
18534 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
18535 index 4e10d73..7319a47 100644
18536 --- a/arch/x86/include/asm/desc.h
18537 +++ b/arch/x86/include/asm/desc.h
18538 @@ -4,6 +4,7 @@
18539 #include <asm/desc_defs.h>
18540 #include <asm/ldt.h>
18541 #include <asm/mmu.h>
18542 +#include <asm/pgtable.h>
18543
18544 #include <linux/smp.h>
18545 #include <linux/percpu.h>
18546 @@ -17,6 +18,7 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18547
18548 desc->type = (info->read_exec_only ^ 1) << 1;
18549 desc->type |= info->contents << 2;
18550 + desc->type |= info->seg_not_present ^ 1;
18551
18552 desc->s = 1;
18553 desc->dpl = 0x3;
18554 @@ -35,19 +37,14 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18555 }
18556
18557 extern struct desc_ptr idt_descr;
18558 -extern gate_desc idt_table[];
18559 -extern struct desc_ptr debug_idt_descr;
18560 -extern gate_desc debug_idt_table[];
18561 -
18562 -struct gdt_page {
18563 - struct desc_struct gdt[GDT_ENTRIES];
18564 -} __attribute__((aligned(PAGE_SIZE)));
18565 -
18566 -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
18567 +extern gate_desc idt_table[IDT_ENTRIES];
18568 +extern const struct desc_ptr debug_idt_descr;
18569 +extern gate_desc debug_idt_table[IDT_ENTRIES];
18570
18571 +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)];
18572 static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
18573 {
18574 - return per_cpu(gdt_page, cpu).gdt;
18575 + return cpu_gdt_table[cpu];
18576 }
18577
18578 #ifdef CONFIG_X86_64
18579 @@ -72,8 +69,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
18580 unsigned long base, unsigned dpl, unsigned flags,
18581 unsigned short seg)
18582 {
18583 - gate->a = (seg << 16) | (base & 0xffff);
18584 - gate->b = (base & 0xffff0000) | (((0x80 | type | (dpl << 5)) & 0xff) << 8);
18585 + gate->gate.offset_low = base;
18586 + gate->gate.seg = seg;
18587 + gate->gate.reserved = 0;
18588 + gate->gate.type = type;
18589 + gate->gate.s = 0;
18590 + gate->gate.dpl = dpl;
18591 + gate->gate.p = 1;
18592 + gate->gate.offset_high = base >> 16;
18593 }
18594
18595 #endif
18596 @@ -118,12 +121,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
18597
18598 static inline void native_write_idt_entry(gate_desc *idt, int entry, const gate_desc *gate)
18599 {
18600 + pax_open_kernel();
18601 memcpy(&idt[entry], gate, sizeof(*gate));
18602 + pax_close_kernel();
18603 }
18604
18605 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc)
18606 {
18607 + pax_open_kernel();
18608 memcpy(&ldt[entry], desc, 8);
18609 + pax_close_kernel();
18610 }
18611
18612 static inline void
18613 @@ -137,7 +144,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
18614 default: size = sizeof(*gdt); break;
18615 }
18616
18617 + pax_open_kernel();
18618 memcpy(&gdt[entry], desc, size);
18619 + pax_close_kernel();
18620 }
18621
18622 static inline void pack_descriptor(struct desc_struct *desc, unsigned long base,
18623 @@ -210,7 +219,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
18624
18625 static inline void native_load_tr_desc(void)
18626 {
18627 + pax_open_kernel();
18628 asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8));
18629 + pax_close_kernel();
18630 }
18631
18632 static inline void native_load_gdt(const struct desc_ptr *dtr)
18633 @@ -247,8 +258,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
18634 struct desc_struct *gdt = get_cpu_gdt_table(cpu);
18635 unsigned int i;
18636
18637 + pax_open_kernel();
18638 for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++)
18639 gdt[GDT_ENTRY_TLS_MIN + i] = t->tls_array[i];
18640 + pax_close_kernel();
18641 }
18642
18643 /* This intentionally ignores lm, since 32-bit apps don't have that field. */
18644 @@ -280,7 +293,7 @@ static inline void clear_LDT(void)
18645 set_ldt(NULL, 0);
18646 }
18647
18648 -static inline unsigned long get_desc_base(const struct desc_struct *desc)
18649 +static inline unsigned long __intentional_overflow(-1) get_desc_base(const struct desc_struct *desc)
18650 {
18651 return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24));
18652 }
18653 @@ -304,7 +317,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
18654 }
18655
18656 #ifdef CONFIG_X86_64
18657 -static inline void set_nmi_gate(int gate, void *addr)
18658 +static inline void set_nmi_gate(int gate, const void *addr)
18659 {
18660 gate_desc s;
18661
18662 @@ -314,14 +327,14 @@ static inline void set_nmi_gate(int gate, void *addr)
18663 #endif
18664
18665 #ifdef CONFIG_TRACING
18666 -extern struct desc_ptr trace_idt_descr;
18667 -extern gate_desc trace_idt_table[];
18668 +extern const struct desc_ptr trace_idt_descr;
18669 +extern gate_desc trace_idt_table[IDT_ENTRIES];
18670 static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18671 {
18672 write_idt_entry(trace_idt_table, entry, gate);
18673 }
18674
18675 -static inline void _trace_set_gate(int gate, unsigned type, void *addr,
18676 +static inline void _trace_set_gate(int gate, unsigned type, const void *addr,
18677 unsigned dpl, unsigned ist, unsigned seg)
18678 {
18679 gate_desc s;
18680 @@ -341,7 +354,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18681 #define _trace_set_gate(gate, type, addr, dpl, ist, seg)
18682 #endif
18683
18684 -static inline void _set_gate(int gate, unsigned type, void *addr,
18685 +static inline void _set_gate(int gate, unsigned type, const void *addr,
18686 unsigned dpl, unsigned ist, unsigned seg)
18687 {
18688 gate_desc s;
18689 @@ -364,14 +377,14 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
18690 #define set_intr_gate_notrace(n, addr) \
18691 do { \
18692 BUG_ON((unsigned)n > 0xFF); \
18693 - _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0, \
18694 + _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0, \
18695 __KERNEL_CS); \
18696 } while (0)
18697
18698 #define set_intr_gate(n, addr) \
18699 do { \
18700 set_intr_gate_notrace(n, addr); \
18701 - _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
18702 + _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
18703 0, 0, __KERNEL_CS); \
18704 } while (0)
18705
18706 @@ -399,19 +412,19 @@ static inline void alloc_system_vector(int vector)
18707 /*
18708 * This routine sets up an interrupt gate at directory privilege level 3.
18709 */
18710 -static inline void set_system_intr_gate(unsigned int n, void *addr)
18711 +static inline void set_system_intr_gate(unsigned int n, const void *addr)
18712 {
18713 BUG_ON((unsigned)n > 0xFF);
18714 _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
18715 }
18716
18717 -static inline void set_system_trap_gate(unsigned int n, void *addr)
18718 +static inline void set_system_trap_gate(unsigned int n, const void *addr)
18719 {
18720 BUG_ON((unsigned)n > 0xFF);
18721 _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
18722 }
18723
18724 -static inline void set_trap_gate(unsigned int n, void *addr)
18725 +static inline void set_trap_gate(unsigned int n, const void *addr)
18726 {
18727 BUG_ON((unsigned)n > 0xFF);
18728 _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
18729 @@ -420,16 +433,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
18730 static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
18731 {
18732 BUG_ON((unsigned)n > 0xFF);
18733 - _set_gate(n, GATE_TASK, (void *)0, 0, 0, (gdt_entry<<3));
18734 + _set_gate(n, GATE_TASK, (const void *)0, 0, 0, (gdt_entry<<3));
18735 }
18736
18737 -static inline void set_intr_gate_ist(int n, void *addr, unsigned ist)
18738 +static inline void set_intr_gate_ist(int n, const void *addr, unsigned ist)
18739 {
18740 BUG_ON((unsigned)n > 0xFF);
18741 _set_gate(n, GATE_INTERRUPT, addr, 0, ist, __KERNEL_CS);
18742 }
18743
18744 -static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
18745 +static inline void set_system_intr_gate_ist(int n, const void *addr, unsigned ist)
18746 {
18747 BUG_ON((unsigned)n > 0xFF);
18748 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
18749 @@ -501,4 +514,17 @@ static inline void load_current_idt(void)
18750 else
18751 load_idt((const struct desc_ptr *)&idt_descr);
18752 }
18753 +
18754 +#ifdef CONFIG_X86_32
18755 +static inline void set_user_cs(unsigned long base, unsigned long limit, int cpu)
18756 +{
18757 + struct desc_struct d;
18758 +
18759 + if (likely(limit))
18760 + limit = (limit - 1UL) >> PAGE_SHIFT;
18761 + pack_descriptor(&d, base, limit, 0xFB, 0xC);
18762 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_DEFAULT_USER_CS, &d, DESCTYPE_S);
18763 +}
18764 +#endif
18765 +
18766 #endif /* _ASM_X86_DESC_H */
18767 diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h
18768 index 278441f..b95a174 100644
18769 --- a/arch/x86/include/asm/desc_defs.h
18770 +++ b/arch/x86/include/asm/desc_defs.h
18771 @@ -31,6 +31,12 @@ struct desc_struct {
18772 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
18773 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
18774 };
18775 + struct {
18776 + u16 offset_low;
18777 + u16 seg;
18778 + unsigned reserved: 8, type: 4, s: 1, dpl: 2, p: 1;
18779 + unsigned offset_high: 16;
18780 + } gate;
18781 };
18782 } __attribute__((packed));
18783
18784 diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h
18785 index ced283a..ffe04cc 100644
18786 --- a/arch/x86/include/asm/div64.h
18787 +++ b/arch/x86/include/asm/div64.h
18788 @@ -39,7 +39,7 @@
18789 __mod; \
18790 })
18791
18792 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
18793 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
18794 {
18795 union {
18796 u64 v64;
18797 diff --git a/arch/x86/include/asm/dma.h b/arch/x86/include/asm/dma.h
18798 index fe884e1..46149ae 100644
18799 --- a/arch/x86/include/asm/dma.h
18800 +++ b/arch/x86/include/asm/dma.h
18801 @@ -149,6 +149,7 @@
18802 #ifdef CONFIG_ISA_DMA_API
18803 extern spinlock_t dma_spin_lock;
18804
18805 +static inline unsigned long claim_dma_lock(void) __acquires(&dma_spin_lock);
18806 static inline unsigned long claim_dma_lock(void)
18807 {
18808 unsigned long flags;
18809 @@ -156,6 +157,7 @@ static inline unsigned long claim_dma_lock(void)
18810 return flags;
18811 }
18812
18813 +static inline void release_dma_lock(unsigned long flags) __releases(&dma_spin_lock);
18814 static inline void release_dma_lock(unsigned long flags)
18815 {
18816 spin_unlock_irqrestore(&dma_spin_lock, flags);
18817 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
18818 index 141c561..120c5386 100644
18819 --- a/arch/x86/include/asm/elf.h
18820 +++ b/arch/x86/include/asm/elf.h
18821 @@ -75,9 +75,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
18822
18823 #include <asm/vdso.h>
18824
18825 -#ifdef CONFIG_X86_64
18826 -extern unsigned int vdso64_enabled;
18827 -#endif
18828 #if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
18829 extern unsigned int vdso32_enabled;
18830 #endif
18831 @@ -250,7 +247,25 @@ extern int force_personality32;
18832 the loader. We need to make sure that it is out of the way of the program
18833 that it will "exec", and that there is sufficient room for the brk. */
18834
18835 +#ifdef CONFIG_PAX_SEGMEXEC
18836 +#define ELF_ET_DYN_BASE ((current->mm->pax_flags & MF_PAX_SEGMEXEC) ? SEGMEXEC_TASK_SIZE/3*2 : TASK_SIZE/3*2)
18837 +#else
18838 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
18839 +#endif
18840 +
18841 +#ifdef CONFIG_PAX_ASLR
18842 +#ifdef CONFIG_X86_32
18843 +#define PAX_ELF_ET_DYN_BASE 0x10000000UL
18844 +
18845 +#define PAX_DELTA_MMAP_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
18846 +#define PAX_DELTA_STACK_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
18847 +#else
18848 +#define PAX_ELF_ET_DYN_BASE 0x400000UL
18849 +
18850 +#define PAX_DELTA_MMAP_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
18851 +#define PAX_DELTA_STACK_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
18852 +#endif
18853 +#endif
18854
18855 /* This yields a mask that user programs can use to figure out what
18856 instruction set this CPU supports. This could be done in user space,
18857 @@ -299,17 +314,13 @@ do { \
18858
18859 #define ARCH_DLINFO \
18860 do { \
18861 - if (vdso64_enabled) \
18862 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
18863 - (unsigned long __force)current->mm->context.vdso); \
18864 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
18865 } while (0)
18866
18867 /* As a historical oddity, the x32 and x86_64 vDSOs are controlled together. */
18868 #define ARCH_DLINFO_X32 \
18869 do { \
18870 - if (vdso64_enabled) \
18871 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
18872 - (unsigned long __force)current->mm->context.vdso); \
18873 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
18874 } while (0)
18875
18876 #define AT_SYSINFO 32
18877 @@ -324,10 +335,10 @@ else \
18878
18879 #endif /* !CONFIG_X86_32 */
18880
18881 -#define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso)
18882 +#define VDSO_CURRENT_BASE (current->mm->context.vdso)
18883
18884 #define VDSO_ENTRY \
18885 - ((unsigned long)current->mm->context.vdso + \
18886 + (current->mm->context.vdso + \
18887 selected_vdso32->sym___kernel_vsyscall)
18888
18889 struct linux_binprm;
18890 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
18891 index 77a99ac..39ff7f5 100644
18892 --- a/arch/x86/include/asm/emergency-restart.h
18893 +++ b/arch/x86/include/asm/emergency-restart.h
18894 @@ -1,6 +1,6 @@
18895 #ifndef _ASM_X86_EMERGENCY_RESTART_H
18896 #define _ASM_X86_EMERGENCY_RESTART_H
18897
18898 -extern void machine_emergency_restart(void);
18899 +extern void machine_emergency_restart(void) __noreturn;
18900
18901 #endif /* _ASM_X86_EMERGENCY_RESTART_H */
18902 diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h
18903 index 1c7eefe..d0e4702 100644
18904 --- a/arch/x86/include/asm/floppy.h
18905 +++ b/arch/x86/include/asm/floppy.h
18906 @@ -229,18 +229,18 @@ static struct fd_routine_l {
18907 int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
18908 } fd_routine[] = {
18909 {
18910 - request_dma,
18911 - free_dma,
18912 - get_dma_residue,
18913 - dma_mem_alloc,
18914 - hard_dma_setup
18915 + ._request_dma = request_dma,
18916 + ._free_dma = free_dma,
18917 + ._get_dma_residue = get_dma_residue,
18918 + ._dma_mem_alloc = dma_mem_alloc,
18919 + ._dma_setup = hard_dma_setup
18920 },
18921 {
18922 - vdma_request_dma,
18923 - vdma_nop,
18924 - vdma_get_dma_residue,
18925 - vdma_mem_alloc,
18926 - vdma_dma_setup
18927 + ._request_dma = vdma_request_dma,
18928 + ._free_dma = vdma_nop,
18929 + ._get_dma_residue = vdma_get_dma_residue,
18930 + ._dma_mem_alloc = vdma_mem_alloc,
18931 + ._dma_setup = vdma_dma_setup
18932 }
18933 };
18934
18935 diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
18936 index 3c3550c..ca9e4c3 100644
18937 --- a/arch/x86/include/asm/fpu/internal.h
18938 +++ b/arch/x86/include/asm/fpu/internal.h
18939 @@ -97,8 +97,11 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
18940 #define user_insn(insn, output, input...) \
18941 ({ \
18942 int err; \
18943 + pax_open_userland(); \
18944 asm volatile(ASM_STAC "\n" \
18945 - "1:" #insn "\n\t" \
18946 + "1:" \
18947 + __copyuser_seg \
18948 + #insn "\n\t" \
18949 "2: " ASM_CLAC "\n" \
18950 ".section .fixup,\"ax\"\n" \
18951 "3: movl $-1,%[err]\n" \
18952 @@ -107,6 +110,7 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
18953 _ASM_EXTABLE(1b, 3b) \
18954 : [err] "=r" (err), output \
18955 : "0"(0), input); \
18956 + pax_close_userland(); \
18957 err; \
18958 })
18959
18960 @@ -186,9 +190,9 @@ static inline int copy_user_to_fregs(struct fregs_state __user *fx)
18961 static inline void copy_fxregs_to_kernel(struct fpu *fpu)
18962 {
18963 if (config_enabled(CONFIG_X86_32))
18964 - asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state.fxsave));
18965 + asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave));
18966 else if (config_enabled(CONFIG_AS_FXSAVEQ))
18967 - asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state.fxsave));
18968 + asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state->fxsave));
18969 else {
18970 /* Using "rex64; fxsave %0" is broken because, if the memory
18971 * operand uses any extended registers for addressing, a second
18972 @@ -205,15 +209,15 @@ static inline void copy_fxregs_to_kernel(struct fpu *fpu)
18973 * an extended register is needed for addressing (fix submitted
18974 * to mainline 2005-11-21).
18975 *
18976 - * asm volatile("rex64/fxsave %0" : "=m" (fpu->state.fxsave));
18977 + * asm volatile("rex64/fxsave %0" : "=m" (fpu->state->fxsave));
18978 *
18979 * This, however, we can work around by forcing the compiler to
18980 * select an addressing mode that doesn't require extended
18981 * registers.
18982 */
18983 asm volatile( "rex64/fxsave (%[fx])"
18984 - : "=m" (fpu->state.fxsave)
18985 - : [fx] "R" (&fpu->state.fxsave));
18986 + : "=m" (fpu->state->fxsave)
18987 + : [fx] "R" (&fpu->state->fxsave));
18988 }
18989 }
18990
18991 @@ -388,12 +392,16 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
18992 if (unlikely(err))
18993 return -EFAULT;
18994
18995 + pax_open_userland();
18996 __asm__ __volatile__(ASM_STAC "\n"
18997 - "1:"XSAVE"\n"
18998 + "1:"
18999 + __copyuser_seg
19000 + XSAVE"\n"
19001 "2: " ASM_CLAC "\n"
19002 xstate_fault(err)
19003 : "D" (buf), "a" (-1), "d" (-1), "0" (err)
19004 : "memory");
19005 + pax_close_userland();
19006 return err;
19007 }
19008
19009 @@ -402,17 +410,21 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
19010 */
19011 static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19012 {
19013 - struct xregs_state *xstate = ((__force struct xregs_state *)buf);
19014 + struct xregs_state *xstate = ((__force_kernel struct xregs_state *)buf);
19015 u32 lmask = mask;
19016 u32 hmask = mask >> 32;
19017 int err = 0;
19018
19019 + pax_open_userland();
19020 __asm__ __volatile__(ASM_STAC "\n"
19021 - "1:"XRSTOR"\n"
19022 + "1:"
19023 + __copyuser_seg
19024 + XRSTOR"\n"
19025 "2: " ASM_CLAC "\n"
19026 xstate_fault(err)
19027 : "D" (xstate), "a" (lmask), "d" (hmask), "0" (err)
19028 : "memory"); /* memory required? */
19029 + pax_close_userland();
19030 return err;
19031 }
19032
19033 @@ -429,7 +441,7 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19034 static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19035 {
19036 if (likely(use_xsave())) {
19037 - copy_xregs_to_kernel(&fpu->state.xsave);
19038 + copy_xregs_to_kernel(&fpu->state->xsave);
19039 return 1;
19040 }
19041
19042 @@ -442,7 +454,7 @@ static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19043 * Legacy FPU register saving, FNSAVE always clears FPU registers,
19044 * so we have to mark them inactive:
19045 */
19046 - asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state.fsave));
19047 + asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state->fsave));
19048
19049 return 0;
19050 }
19051 @@ -471,7 +483,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate)
19052 "fnclex\n\t"
19053 "emms\n\t"
19054 "fildl %P[addr]" /* set F?P to defined value */
19055 - : : [addr] "m" (fpstate));
19056 + : : [addr] "m" (cpu_tss[raw_smp_processor_id()].x86_tss.sp0));
19057 }
19058
19059 __copy_kernel_to_fpregs(fpstate);
19060 @@ -611,7 +623,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19061 if (fpu.preload) {
19062 new_fpu->counter++;
19063 __fpregs_activate(new_fpu);
19064 - prefetch(&new_fpu->state);
19065 + prefetch(new_fpu->state);
19066 } else {
19067 __fpregs_deactivate_hw();
19068 }
19069 @@ -623,7 +635,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19070 if (fpu_want_lazy_restore(new_fpu, cpu))
19071 fpu.preload = 0;
19072 else
19073 - prefetch(&new_fpu->state);
19074 + prefetch(new_fpu->state);
19075 fpregs_activate(new_fpu);
19076 }
19077 }
19078 @@ -643,7 +655,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19079 static inline void switch_fpu_finish(struct fpu *new_fpu, fpu_switch_t fpu_switch)
19080 {
19081 if (fpu_switch.preload)
19082 - copy_kernel_to_fpregs(&new_fpu->state);
19083 + copy_kernel_to_fpregs(new_fpu->state);
19084 }
19085
19086 /*
19087 diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
19088 index c49c517..0a6e089 100644
19089 --- a/arch/x86/include/asm/fpu/types.h
19090 +++ b/arch/x86/include/asm/fpu/types.h
19091 @@ -189,7 +189,6 @@ union fpregs_state {
19092 struct fxregs_state fxsave;
19093 struct swregs_state soft;
19094 struct xregs_state xsave;
19095 - u8 __padding[PAGE_SIZE];
19096 };
19097
19098 /*
19099 @@ -199,6 +198,39 @@ union fpregs_state {
19100 */
19101 struct fpu {
19102 /*
19103 + * @state:
19104 + *
19105 + * In-memory copy of all FPU registers that we save/restore
19106 + * over context switches. If the task is using the FPU then
19107 + * the registers in the FPU are more recent than this state
19108 + * copy. If the task context-switches away then they get
19109 + * saved here and represent the FPU state.
19110 + *
19111 + * After context switches there may be a (short) time period
19112 + * during which the in-FPU hardware registers are unchanged
19113 + * and still perfectly match this state, if the tasks
19114 + * scheduled afterwards are not using the FPU.
19115 + *
19116 + * This is the 'lazy restore' window of optimization, which
19117 + * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19118 + *
19119 + * We detect whether a subsequent task uses the FPU via setting
19120 + * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19121 + *
19122 + * During this window, if the task gets scheduled again, we
19123 + * might be able to skip having to do a restore from this
19124 + * memory buffer to the hardware registers - at the cost of
19125 + * incurring the overhead of #NM fault traps.
19126 + *
19127 + * Note that on modern CPUs that support the XSAVEOPT (or other
19128 + * optimized XSAVE instructions), we don't use #NM traps anymore,
19129 + * as the hardware can track whether FPU registers need saving
19130 + * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19131 + * logic, which unconditionally saves/restores all FPU state
19132 + * across context switches. (if FPU state exists.)
19133 + */
19134 + union fpregs_state *state;
19135 + /*
19136 * @last_cpu:
19137 *
19138 * Records the last CPU on which this context was loaded into
19139 @@ -255,43 +287,6 @@ struct fpu {
19140 * deal with bursty apps that only use the FPU for a short time:
19141 */
19142 unsigned char counter;
19143 - /*
19144 - * @state:
19145 - *
19146 - * In-memory copy of all FPU registers that we save/restore
19147 - * over context switches. If the task is using the FPU then
19148 - * the registers in the FPU are more recent than this state
19149 - * copy. If the task context-switches away then they get
19150 - * saved here and represent the FPU state.
19151 - *
19152 - * After context switches there may be a (short) time period
19153 - * during which the in-FPU hardware registers are unchanged
19154 - * and still perfectly match this state, if the tasks
19155 - * scheduled afterwards are not using the FPU.
19156 - *
19157 - * This is the 'lazy restore' window of optimization, which
19158 - * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19159 - *
19160 - * We detect whether a subsequent task uses the FPU via setting
19161 - * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19162 - *
19163 - * During this window, if the task gets scheduled again, we
19164 - * might be able to skip having to do a restore from this
19165 - * memory buffer to the hardware registers - at the cost of
19166 - * incurring the overhead of #NM fault traps.
19167 - *
19168 - * Note that on modern CPUs that support the XSAVEOPT (or other
19169 - * optimized XSAVE instructions), we don't use #NM traps anymore,
19170 - * as the hardware can track whether FPU registers need saving
19171 - * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19172 - * logic, which unconditionally saves/restores all FPU state
19173 - * across context switches. (if FPU state exists.)
19174 - */
19175 - union fpregs_state state;
19176 - /*
19177 - * WARNING: 'state' is dynamically-sized. Do not put
19178 - * anything after it here.
19179 - */
19180 };
19181
19182 #endif /* _ASM_X86_FPU_H */
19183 diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
19184 index b4c1f54..e290c08 100644
19185 --- a/arch/x86/include/asm/futex.h
19186 +++ b/arch/x86/include/asm/futex.h
19187 @@ -12,6 +12,7 @@
19188 #include <asm/smap.h>
19189
19190 #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \
19191 + typecheck(u32 __user *, uaddr); \
19192 asm volatile("\t" ASM_STAC "\n" \
19193 "1:\t" insn "\n" \
19194 "2:\t" ASM_CLAC "\n" \
19195 @@ -20,15 +21,16 @@
19196 "\tjmp\t2b\n" \
19197 "\t.previous\n" \
19198 _ASM_EXTABLE(1b, 3b) \
19199 - : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
19200 + : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr)) \
19201 : "i" (-EFAULT), "0" (oparg), "1" (0))
19202
19203 #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \
19204 + typecheck(u32 __user *, uaddr); \
19205 asm volatile("\t" ASM_STAC "\n" \
19206 "1:\tmovl %2, %0\n" \
19207 "\tmovl\t%0, %3\n" \
19208 "\t" insn "\n" \
19209 - "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
19210 + "2:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %3, %2\n" \
19211 "\tjnz\t1b\n" \
19212 "3:\t" ASM_CLAC "\n" \
19213 "\t.section .fixup,\"ax\"\n" \
19214 @@ -38,7 +40,7 @@
19215 _ASM_EXTABLE(1b, 4b) \
19216 _ASM_EXTABLE(2b, 4b) \
19217 : "=&a" (oldval), "=&r" (ret), \
19218 - "+m" (*uaddr), "=&r" (tem) \
19219 + "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem) \
19220 : "r" (oparg), "i" (-EFAULT), "1" (0))
19221
19222 static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19223 @@ -57,12 +59,13 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19224
19225 pagefault_disable();
19226
19227 + pax_open_userland();
19228 switch (op) {
19229 case FUTEX_OP_SET:
19230 - __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
19231 + __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
19232 break;
19233 case FUTEX_OP_ADD:
19234 - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
19235 + __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
19236 uaddr, oparg);
19237 break;
19238 case FUTEX_OP_OR:
19239 @@ -77,6 +80,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19240 default:
19241 ret = -ENOSYS;
19242 }
19243 + pax_close_userland();
19244
19245 pagefault_enable();
19246
19247 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
19248 index 1e3408e..67c5ba1 100644
19249 --- a/arch/x86/include/asm/hw_irq.h
19250 +++ b/arch/x86/include/asm/hw_irq.h
19251 @@ -158,8 +158,8 @@ static inline void unlock_vector_lock(void) {}
19252 #endif /* CONFIG_X86_LOCAL_APIC */
19253
19254 /* Statistics */
19255 -extern atomic_t irq_err_count;
19256 -extern atomic_t irq_mis_count;
19257 +extern atomic_unchecked_t irq_err_count;
19258 +extern atomic_unchecked_t irq_mis_count;
19259
19260 extern void elcr_set_level_irq(unsigned int irq);
19261
19262 diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
19263 index 39bcefc..272d904 100644
19264 --- a/arch/x86/include/asm/i8259.h
19265 +++ b/arch/x86/include/asm/i8259.h
19266 @@ -63,7 +63,7 @@ struct legacy_pic {
19267 int (*probe)(void);
19268 int (*irq_pending)(unsigned int irq);
19269 void (*make_irq)(unsigned int irq);
19270 -};
19271 +} __do_const;
19272
19273 extern struct legacy_pic *legacy_pic;
19274 extern struct legacy_pic null_legacy_pic;
19275 diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
19276 index de25aad..dc04476 100644
19277 --- a/arch/x86/include/asm/io.h
19278 +++ b/arch/x86/include/asm/io.h
19279 @@ -42,6 +42,7 @@
19280 #include <asm/page.h>
19281 #include <asm/early_ioremap.h>
19282 #include <asm/pgtable_types.h>
19283 +#include <asm/processor.h>
19284
19285 #define build_mmio_read(name, size, type, reg, barrier) \
19286 static inline type name(const volatile void __iomem *addr) \
19287 @@ -54,12 +55,12 @@ static inline void name(type val, volatile void __iomem *addr) \
19288 "m" (*(volatile type __force *)addr) barrier); }
19289
19290 build_mmio_read(readb, "b", unsigned char, "=q", :"memory")
19291 -build_mmio_read(readw, "w", unsigned short, "=r", :"memory")
19292 -build_mmio_read(readl, "l", unsigned int, "=r", :"memory")
19293 +build_mmio_read(__intentional_overflow(-1) readw, "w", unsigned short, "=r", :"memory")
19294 +build_mmio_read(__intentional_overflow(-1) readl, "l", unsigned int, "=r", :"memory")
19295
19296 build_mmio_read(__readb, "b", unsigned char, "=q", )
19297 -build_mmio_read(__readw, "w", unsigned short, "=r", )
19298 -build_mmio_read(__readl, "l", unsigned int, "=r", )
19299 +build_mmio_read(__intentional_overflow(-1) __readw, "w", unsigned short, "=r", )
19300 +build_mmio_read(__intentional_overflow(-1) __readl, "l", unsigned int, "=r", )
19301
19302 build_mmio_write(writeb, "b", unsigned char, "q", :"memory")
19303 build_mmio_write(writew, "w", unsigned short, "r", :"memory")
19304 @@ -115,7 +116,7 @@ build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
19305 * this function
19306 */
19307
19308 -static inline phys_addr_t virt_to_phys(volatile void *address)
19309 +static inline phys_addr_t __intentional_overflow(-1) virt_to_phys(volatile void *address)
19310 {
19311 return __pa(address);
19312 }
19313 @@ -194,7 +195,7 @@ static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
19314 return ioremap_nocache(offset, size);
19315 }
19316
19317 -extern void iounmap(volatile void __iomem *addr);
19318 +extern void iounmap(const volatile void __iomem *addr);
19319
19320 extern void set_iounmap_nonlazy(void);
19321
19322 @@ -202,6 +203,17 @@ extern void set_iounmap_nonlazy(void);
19323
19324 #include <asm-generic/iomap.h>
19325
19326 +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
19327 +static inline int valid_phys_addr_range(unsigned long addr, size_t count)
19328 +{
19329 + return ((addr + count + PAGE_SIZE - 1) >> PAGE_SHIFT) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19330 +}
19331 +
19332 +static inline int valid_mmap_phys_addr_range(unsigned long pfn, size_t count)
19333 +{
19334 + return (pfn + (count >> PAGE_SHIFT)) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19335 +}
19336 +
19337 /*
19338 * Convert a virtual cached pointer to an uncached pointer
19339 */
19340 diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
19341 index b77f5ed..a2f791e 100644
19342 --- a/arch/x86/include/asm/irqflags.h
19343 +++ b/arch/x86/include/asm/irqflags.h
19344 @@ -137,6 +137,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
19345 swapgs; \
19346 sysretl
19347
19348 +#define GET_CR0_INTO_RDI mov %cr0, %rdi
19349 +#define SET_RDI_INTO_CR0 mov %rdi, %cr0
19350 +#define GET_CR3_INTO_RDI mov %cr3, %rdi
19351 +#define SET_RDI_INTO_CR3 mov %rdi, %cr3
19352 +
19353 #else
19354 #define INTERRUPT_RETURN iret
19355 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
19356 diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h
19357 index 4421b5d..8543006 100644
19358 --- a/arch/x86/include/asm/kprobes.h
19359 +++ b/arch/x86/include/asm/kprobes.h
19360 @@ -37,13 +37,8 @@ typedef u8 kprobe_opcode_t;
19361 #define RELATIVEJUMP_SIZE 5
19362 #define RELATIVECALL_OPCODE 0xe8
19363 #define RELATIVE_ADDR_SIZE 4
19364 -#define MAX_STACK_SIZE 64
19365 -#define MIN_STACK_SIZE(ADDR) \
19366 - (((MAX_STACK_SIZE) < (((unsigned long)current_thread_info()) + \
19367 - THREAD_SIZE - (unsigned long)(ADDR))) \
19368 - ? (MAX_STACK_SIZE) \
19369 - : (((unsigned long)current_thread_info()) + \
19370 - THREAD_SIZE - (unsigned long)(ADDR)))
19371 +#define MAX_STACK_SIZE 64UL
19372 +#define MIN_STACK_SIZE(ADDR) min(MAX_STACK_SIZE, current->thread.sp0 - (unsigned long)(ADDR))
19373
19374 #define flush_insn_slot(p) do { } while (0)
19375
19376 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
19377 index 4ad6560..75c7bdd 100644
19378 --- a/arch/x86/include/asm/local.h
19379 +++ b/arch/x86/include/asm/local.h
19380 @@ -10,33 +10,97 @@ typedef struct {
19381 atomic_long_t a;
19382 } local_t;
19383
19384 +typedef struct {
19385 + atomic_long_unchecked_t a;
19386 +} local_unchecked_t;
19387 +
19388 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
19389
19390 #define local_read(l) atomic_long_read(&(l)->a)
19391 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
19392 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
19393 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
19394
19395 static inline void local_inc(local_t *l)
19396 {
19397 - asm volatile(_ASM_INC "%0"
19398 + asm volatile(_ASM_INC "%0\n"
19399 +
19400 +#ifdef CONFIG_PAX_REFCOUNT
19401 + "jno 0f\n"
19402 + _ASM_DEC "%0\n"
19403 + "int $4\n0:\n"
19404 + _ASM_EXTABLE(0b, 0b)
19405 +#endif
19406 +
19407 + : "+m" (l->a.counter));
19408 +}
19409 +
19410 +static inline void local_inc_unchecked(local_unchecked_t *l)
19411 +{
19412 + asm volatile(_ASM_INC "%0\n"
19413 : "+m" (l->a.counter));
19414 }
19415
19416 static inline void local_dec(local_t *l)
19417 {
19418 - asm volatile(_ASM_DEC "%0"
19419 + asm volatile(_ASM_DEC "%0\n"
19420 +
19421 +#ifdef CONFIG_PAX_REFCOUNT
19422 + "jno 0f\n"
19423 + _ASM_INC "%0\n"
19424 + "int $4\n0:\n"
19425 + _ASM_EXTABLE(0b, 0b)
19426 +#endif
19427 +
19428 + : "+m" (l->a.counter));
19429 +}
19430 +
19431 +static inline void local_dec_unchecked(local_unchecked_t *l)
19432 +{
19433 + asm volatile(_ASM_DEC "%0\n"
19434 : "+m" (l->a.counter));
19435 }
19436
19437 static inline void local_add(long i, local_t *l)
19438 {
19439 - asm volatile(_ASM_ADD "%1,%0"
19440 + asm volatile(_ASM_ADD "%1,%0\n"
19441 +
19442 +#ifdef CONFIG_PAX_REFCOUNT
19443 + "jno 0f\n"
19444 + _ASM_SUB "%1,%0\n"
19445 + "int $4\n0:\n"
19446 + _ASM_EXTABLE(0b, 0b)
19447 +#endif
19448 +
19449 + : "+m" (l->a.counter)
19450 + : "ir" (i));
19451 +}
19452 +
19453 +static inline void local_add_unchecked(long i, local_unchecked_t *l)
19454 +{
19455 + asm volatile(_ASM_ADD "%1,%0\n"
19456 : "+m" (l->a.counter)
19457 : "ir" (i));
19458 }
19459
19460 static inline void local_sub(long i, local_t *l)
19461 {
19462 - asm volatile(_ASM_SUB "%1,%0"
19463 + asm volatile(_ASM_SUB "%1,%0\n"
19464 +
19465 +#ifdef CONFIG_PAX_REFCOUNT
19466 + "jno 0f\n"
19467 + _ASM_ADD "%1,%0\n"
19468 + "int $4\n0:\n"
19469 + _ASM_EXTABLE(0b, 0b)
19470 +#endif
19471 +
19472 + : "+m" (l->a.counter)
19473 + : "ir" (i));
19474 +}
19475 +
19476 +static inline void local_sub_unchecked(long i, local_unchecked_t *l)
19477 +{
19478 + asm volatile(_ASM_SUB "%1,%0\n"
19479 : "+m" (l->a.counter)
19480 : "ir" (i));
19481 }
19482 @@ -52,7 +116,7 @@ static inline void local_sub(long i, local_t *l)
19483 */
19484 static inline int local_sub_and_test(long i, local_t *l)
19485 {
19486 - GEN_BINARY_RMWcc(_ASM_SUB, l->a.counter, "er", i, "%0", "e");
19487 + GEN_BINARY_RMWcc(_ASM_SUB, _ASM_ADD, l->a.counter, "er", i, "%0", "e");
19488 }
19489
19490 /**
19491 @@ -65,7 +129,7 @@ static inline int local_sub_and_test(long i, local_t *l)
19492 */
19493 static inline int local_dec_and_test(local_t *l)
19494 {
19495 - GEN_UNARY_RMWcc(_ASM_DEC, l->a.counter, "%0", "e");
19496 + GEN_UNARY_RMWcc(_ASM_DEC, _ASM_INC, l->a.counter, "%0", "e");
19497 }
19498
19499 /**
19500 @@ -78,7 +142,7 @@ static inline int local_dec_and_test(local_t *l)
19501 */
19502 static inline int local_inc_and_test(local_t *l)
19503 {
19504 - GEN_UNARY_RMWcc(_ASM_INC, l->a.counter, "%0", "e");
19505 + GEN_UNARY_RMWcc(_ASM_INC, _ASM_DEC, l->a.counter, "%0", "e");
19506 }
19507
19508 /**
19509 @@ -92,7 +156,7 @@ static inline int local_inc_and_test(local_t *l)
19510 */
19511 static inline int local_add_negative(long i, local_t *l)
19512 {
19513 - GEN_BINARY_RMWcc(_ASM_ADD, l->a.counter, "er", i, "%0", "s");
19514 + GEN_BINARY_RMWcc(_ASM_ADD, _ASM_SUB, l->a.counter, "er", i, "%0", "s");
19515 }
19516
19517 /**
19518 @@ -105,6 +169,30 @@ static inline int local_add_negative(long i, local_t *l)
19519 static inline long local_add_return(long i, local_t *l)
19520 {
19521 long __i = i;
19522 + asm volatile(_ASM_XADD "%0, %1\n"
19523 +
19524 +#ifdef CONFIG_PAX_REFCOUNT
19525 + "jno 0f\n"
19526 + _ASM_MOV "%0,%1\n"
19527 + "int $4\n0:\n"
19528 + _ASM_EXTABLE(0b, 0b)
19529 +#endif
19530 +
19531 + : "+r" (i), "+m" (l->a.counter)
19532 + : : "memory");
19533 + return i + __i;
19534 +}
19535 +
19536 +/**
19537 + * local_add_return_unchecked - add and return
19538 + * @i: integer value to add
19539 + * @l: pointer to type local_unchecked_t
19540 + *
19541 + * Atomically adds @i to @l and returns @i + @l
19542 + */
19543 +static inline long local_add_return_unchecked(long i, local_unchecked_t *l)
19544 +{
19545 + long __i = i;
19546 asm volatile(_ASM_XADD "%0, %1;"
19547 : "+r" (i), "+m" (l->a.counter)
19548 : : "memory");
19549 @@ -121,6 +209,8 @@ static inline long local_sub_return(long i, local_t *l)
19550
19551 #define local_cmpxchg(l, o, n) \
19552 (cmpxchg_local(&((l)->a.counter), (o), (n)))
19553 +#define local_cmpxchg_unchecked(l, o, n) \
19554 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
19555 /* Always has a lock prefix */
19556 #define local_xchg(l, n) (xchg(&((l)->a.counter), (n)))
19557
19558 diff --git a/arch/x86/include/asm/mman.h b/arch/x86/include/asm/mman.h
19559 new file mode 100644
19560 index 0000000..2bfd3ba
19561 --- /dev/null
19562 +++ b/arch/x86/include/asm/mman.h
19563 @@ -0,0 +1,15 @@
19564 +#ifndef _X86_MMAN_H
19565 +#define _X86_MMAN_H
19566 +
19567 +#include <uapi/asm/mman.h>
19568 +
19569 +#ifdef __KERNEL__
19570 +#ifndef __ASSEMBLY__
19571 +#ifdef CONFIG_X86_32
19572 +#define arch_mmap_check i386_mmap_check
19573 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags);
19574 +#endif
19575 +#endif
19576 +#endif
19577 +
19578 +#endif /* X86_MMAN_H */
19579 diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
19580 index 55234d5..7e3c4bf 100644
19581 --- a/arch/x86/include/asm/mmu.h
19582 +++ b/arch/x86/include/asm/mmu.h
19583 @@ -19,7 +19,19 @@ typedef struct {
19584 #endif
19585
19586 struct mutex lock;
19587 - void __user *vdso;
19588 + unsigned long vdso;
19589 +
19590 +#ifdef CONFIG_X86_32
19591 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
19592 + unsigned long user_cs_base;
19593 + unsigned long user_cs_limit;
19594 +
19595 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19596 + cpumask_t cpu_user_cs_mask;
19597 +#endif
19598 +
19599 +#endif
19600 +#endif
19601
19602 atomic_t perf_rdpmc_allowed; /* nonzero if rdpmc is allowed */
19603 } mm_context_t;
19604 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
19605 index 379cd36..25f4ba2 100644
19606 --- a/arch/x86/include/asm/mmu_context.h
19607 +++ b/arch/x86/include/asm/mmu_context.h
19608 @@ -46,7 +46,7 @@ struct ldt_struct {
19609 * allocations, but it's not worth trying to optimize.
19610 */
19611 struct desc_struct *entries;
19612 - int size;
19613 + unsigned int size;
19614 };
19615
19616 /*
19617 @@ -98,26 +98,95 @@ static inline void load_mm_ldt(struct mm_struct *mm)
19618
19619 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
19620 {
19621 +
19622 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19623 + if (!(static_cpu_has(X86_FEATURE_PCIDUDEREF))) {
19624 + unsigned int i;
19625 + pgd_t *pgd;
19626 +
19627 + pax_open_kernel();
19628 + pgd = get_cpu_pgd(smp_processor_id(), kernel);
19629 + for (i = USER_PGD_PTRS; i < 2 * USER_PGD_PTRS; ++i)
19630 + set_pgd_batched(pgd+i, native_make_pgd(0));
19631 + pax_close_kernel();
19632 + }
19633 +#endif
19634 +
19635 #ifdef CONFIG_SMP
19636 if (this_cpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
19637 this_cpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
19638 #endif
19639 }
19640
19641 +static inline void pax_switch_mm(struct mm_struct *next, unsigned int cpu)
19642 +{
19643 +
19644 +#ifdef CONFIG_PAX_PER_CPU_PGD
19645 + pax_open_kernel();
19646 +
19647 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19648 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
19649 + __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
19650 + else
19651 +#endif
19652 +
19653 + __clone_user_pgds(get_cpu_pgd(cpu, kernel), next->pgd);
19654 +
19655 + __shadow_user_pgds(get_cpu_pgd(cpu, kernel) + USER_PGD_PTRS, next->pgd);
19656 +
19657 + pax_close_kernel();
19658 +
19659 + BUG_ON((__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL) != (read_cr3() & __PHYSICAL_MASK) && (__pa(get_cpu_pgd(cpu, user)) | PCID_USER) != (read_cr3() & __PHYSICAL_MASK));
19660 +
19661 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19662 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
19663 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
19664 + u64 descriptor[2];
19665 + descriptor[0] = PCID_USER;
19666 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19667 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF)) {
19668 + descriptor[0] = PCID_KERNEL;
19669 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19670 + }
19671 + } else {
19672 + write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
19673 + if (static_cpu_has(X86_FEATURE_STRONGUDEREF))
19674 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
19675 + else
19676 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
19677 + }
19678 + } else
19679 +#endif
19680 +
19681 + load_cr3(get_cpu_pgd(cpu, kernel));
19682 +#endif
19683 +
19684 +}
19685 +
19686 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19687 struct task_struct *tsk)
19688 {
19689 unsigned cpu = smp_processor_id();
19690 +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19691 + int tlbstate = TLBSTATE_OK;
19692 +#endif
19693
19694 if (likely(prev != next)) {
19695 #ifdef CONFIG_SMP
19696 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19697 + tlbstate = this_cpu_read(cpu_tlbstate.state);
19698 +#endif
19699 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19700 this_cpu_write(cpu_tlbstate.active_mm, next);
19701 #endif
19702 cpumask_set_cpu(cpu, mm_cpumask(next));
19703
19704 /* Re-load page tables */
19705 +#ifdef CONFIG_PAX_PER_CPU_PGD
19706 + pax_switch_mm(next, cpu);
19707 +#else
19708 load_cr3(next->pgd);
19709 +#endif
19710 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19711
19712 /* Stop flush ipis for the previous mm */
19713 @@ -142,9 +211,31 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19714 if (unlikely(prev->context.ldt != next->context.ldt))
19715 load_mm_ldt(next);
19716 #endif
19717 +
19718 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19719 + if (!(__supported_pte_mask & _PAGE_NX)) {
19720 + smp_mb__before_atomic();
19721 + cpumask_clear_cpu(cpu, &prev->context.cpu_user_cs_mask);
19722 + smp_mb__after_atomic();
19723 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19724 + }
19725 +#endif
19726 +
19727 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19728 + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base ||
19729 + prev->context.user_cs_limit != next->context.user_cs_limit))
19730 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19731 +#ifdef CONFIG_SMP
19732 + else if (unlikely(tlbstate != TLBSTATE_OK))
19733 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19734 +#endif
19735 +#endif
19736 +
19737 }
19738 + else {
19739 + pax_switch_mm(next, cpu);
19740 +
19741 #ifdef CONFIG_SMP
19742 - else {
19743 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19744 BUG_ON(this_cpu_read(cpu_tlbstate.active_mm) != next);
19745
19746 @@ -161,13 +252,30 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19747 * tlb flush IPI delivery. We must reload CR3
19748 * to make sure to use no freed page tables.
19749 */
19750 +
19751 +#ifndef CONFIG_PAX_PER_CPU_PGD
19752 load_cr3(next->pgd);
19753 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19754 +#endif
19755 +
19756 load_mm_cr4(next);
19757 load_mm_ldt(next);
19758 +
19759 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
19760 + if (!(__supported_pte_mask & _PAGE_NX))
19761 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19762 +#endif
19763 +
19764 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19765 +#ifdef CONFIG_PAX_PAGEEXEC
19766 + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && (__supported_pte_mask & _PAGE_NX)))
19767 +#endif
19768 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19769 +#endif
19770 +
19771 }
19772 +#endif
19773 }
19774 -#endif
19775 }
19776
19777 #define activate_mm(prev, next) \
19778 diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h
19779 index e3b7819..b257c64 100644
19780 --- a/arch/x86/include/asm/module.h
19781 +++ b/arch/x86/include/asm/module.h
19782 @@ -5,6 +5,7 @@
19783
19784 #ifdef CONFIG_X86_64
19785 /* X86_64 does not define MODULE_PROC_FAMILY */
19786 +#define MODULE_PROC_FAMILY ""
19787 #elif defined CONFIG_M486
19788 #define MODULE_PROC_FAMILY "486 "
19789 #elif defined CONFIG_M586
19790 @@ -57,8 +58,20 @@
19791 #error unknown processor family
19792 #endif
19793
19794 -#ifdef CONFIG_X86_32
19795 -# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
19796 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
19797 +#define MODULE_PAX_KERNEXEC "KERNEXEC_BTS "
19798 +#elif defined(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR)
19799 +#define MODULE_PAX_KERNEXEC "KERNEXEC_OR "
19800 +#else
19801 +#define MODULE_PAX_KERNEXEC ""
19802 #endif
19803
19804 +#ifdef CONFIG_PAX_MEMORY_UDEREF
19805 +#define MODULE_PAX_UDEREF "UDEREF "
19806 +#else
19807 +#define MODULE_PAX_UDEREF ""
19808 +#endif
19809 +
19810 +#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_PAX_KERNEXEC MODULE_PAX_UDEREF
19811 +
19812 #endif /* _ASM_X86_MODULE_H */
19813 diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
19814 index 5f2fc44..106caa6 100644
19815 --- a/arch/x86/include/asm/nmi.h
19816 +++ b/arch/x86/include/asm/nmi.h
19817 @@ -36,26 +36,35 @@ enum {
19818
19819 typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
19820
19821 +struct nmiaction;
19822 +
19823 +struct nmiwork {
19824 + const struct nmiaction *action;
19825 + u64 max_duration;
19826 + struct irq_work irq_work;
19827 +};
19828 +
19829 struct nmiaction {
19830 struct list_head list;
19831 nmi_handler_t handler;
19832 - u64 max_duration;
19833 - struct irq_work irq_work;
19834 unsigned long flags;
19835 const char *name;
19836 -};
19837 + struct nmiwork *work;
19838 +} __do_const;
19839
19840 #define register_nmi_handler(t, fn, fg, n, init...) \
19841 ({ \
19842 - static struct nmiaction init fn##_na = { \
19843 + static struct nmiwork fn##_nw; \
19844 + static const struct nmiaction init fn##_na = { \
19845 .handler = (fn), \
19846 .name = (n), \
19847 .flags = (fg), \
19848 + .work = &fn##_nw, \
19849 }; \
19850 __register_nmi_handler((t), &fn##_na); \
19851 })
19852
19853 -int __register_nmi_handler(unsigned int, struct nmiaction *);
19854 +int __register_nmi_handler(unsigned int, const struct nmiaction *);
19855
19856 void unregister_nmi_handler(unsigned int, const char *);
19857
19858 diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
19859 index 802dde3..9183e68 100644
19860 --- a/arch/x86/include/asm/page.h
19861 +++ b/arch/x86/include/asm/page.h
19862 @@ -52,6 +52,7 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
19863 __phys_addr_symbol(__phys_reloc_hide((unsigned long)(x)))
19864
19865 #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
19866 +#define __early_va(x) ((void *)((unsigned long)(x)+__START_KERNEL_map - phys_base))
19867
19868 #define __boot_va(x) __va(x)
19869 #define __boot_pa(x) __pa(x)
19870 @@ -60,11 +61,21 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
19871 * virt_to_page(kaddr) returns a valid pointer if and only if
19872 * virt_addr_valid(kaddr) returns true.
19873 */
19874 -#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
19875 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
19876 extern bool __virt_addr_valid(unsigned long kaddr);
19877 #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr))
19878
19879 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
19880 +#define virt_to_page(kaddr) \
19881 + ({ \
19882 + const void *__kaddr = (const void *)(kaddr); \
19883 + BUG_ON(!virt_addr_valid(__kaddr)); \
19884 + pfn_to_page(__pa(__kaddr) >> PAGE_SHIFT); \
19885 + })
19886 +#else
19887 +#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
19888 +#endif
19889 +
19890 #endif /* __ASSEMBLY__ */
19891
19892 #include <asm-generic/memory_model.h>
19893 diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
19894 index 904f528..b4d0d24 100644
19895 --- a/arch/x86/include/asm/page_32.h
19896 +++ b/arch/x86/include/asm/page_32.h
19897 @@ -7,11 +7,17 @@
19898
19899 #define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
19900 #ifdef CONFIG_DEBUG_VIRTUAL
19901 -extern unsigned long __phys_addr(unsigned long);
19902 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
19903 #else
19904 -#define __phys_addr(x) __phys_addr_nodebug(x)
19905 +static inline unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x)
19906 +{
19907 + return __phys_addr_nodebug(x);
19908 +}
19909 #endif
19910 -#define __phys_addr_symbol(x) __phys_addr(x)
19911 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
19912 +{
19913 + return __phys_addr(x);
19914 +}
19915 #define __phys_reloc_hide(x) RELOC_HIDE((x), 0)
19916
19917 #ifdef CONFIG_FLATMEM
19918 diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
19919 index b3bebf9..cb419e7 100644
19920 --- a/arch/x86/include/asm/page_64.h
19921 +++ b/arch/x86/include/asm/page_64.h
19922 @@ -7,9 +7,9 @@
19923
19924 /* duplicated to the one in bootmem.h */
19925 extern unsigned long max_pfn;
19926 -extern unsigned long phys_base;
19927 +extern const unsigned long phys_base;
19928
19929 -static inline unsigned long __phys_addr_nodebug(unsigned long x)
19930 +static inline unsigned long __intentional_overflow(-1) __phys_addr_nodebug(unsigned long x)
19931 {
19932 unsigned long y = x - __START_KERNEL_map;
19933
19934 @@ -20,12 +20,14 @@ static inline unsigned long __phys_addr_nodebug(unsigned long x)
19935 }
19936
19937 #ifdef CONFIG_DEBUG_VIRTUAL
19938 -extern unsigned long __phys_addr(unsigned long);
19939 -extern unsigned long __phys_addr_symbol(unsigned long);
19940 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
19941 +extern unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long);
19942 #else
19943 #define __phys_addr(x) __phys_addr_nodebug(x)
19944 -#define __phys_addr_symbol(x) \
19945 - ((unsigned long)(x) - __START_KERNEL_map + phys_base)
19946 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
19947 +{
19948 + return x - __START_KERNEL_map + phys_base;
19949 +}
19950 #endif
19951
19952 #define __phys_reloc_hide(x) (x)
19953 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
19954 index 10d0596..16a2a7c 100644
19955 --- a/arch/x86/include/asm/paravirt.h
19956 +++ b/arch/x86/include/asm/paravirt.h
19957 @@ -530,7 +530,7 @@ static inline pmd_t __pmd(pmdval_t val)
19958 return (pmd_t) { ret };
19959 }
19960
19961 -static inline pmdval_t pmd_val(pmd_t pmd)
19962 +static inline __intentional_overflow(-1) pmdval_t pmd_val(pmd_t pmd)
19963 {
19964 pmdval_t ret;
19965
19966 @@ -596,6 +596,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
19967 val);
19968 }
19969
19970 +static inline void set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
19971 +{
19972 + pgdval_t val = native_pgd_val(pgd);
19973 +
19974 + if (sizeof(pgdval_t) > sizeof(long))
19975 + PVOP_VCALL3(pv_mmu_ops.set_pgd_batched, pgdp,
19976 + val, (u64)val >> 32);
19977 + else
19978 + PVOP_VCALL2(pv_mmu_ops.set_pgd_batched, pgdp,
19979 + val);
19980 +}
19981 +
19982 static inline void pgd_clear(pgd_t *pgdp)
19983 {
19984 set_pgd(pgdp, __pgd(0));
19985 @@ -680,6 +692,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
19986 pv_mmu_ops.set_fixmap(idx, phys, flags);
19987 }
19988
19989 +#ifdef CONFIG_PAX_KERNEXEC
19990 +static inline unsigned long pax_open_kernel(void)
19991 +{
19992 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_open_kernel);
19993 +}
19994 +
19995 +static inline unsigned long pax_close_kernel(void)
19996 +{
19997 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_close_kernel);
19998 +}
19999 +#else
20000 +static inline unsigned long pax_open_kernel(void) { return 0; }
20001 +static inline unsigned long pax_close_kernel(void) { return 0; }
20002 +#endif
20003 +
20004 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
20005
20006 #ifdef CONFIG_QUEUED_SPINLOCKS
20007 @@ -903,7 +930,7 @@ extern void default_banner(void);
20008
20009 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
20010 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
20011 -#define PARA_INDIRECT(addr) *%cs:addr
20012 +#define PARA_INDIRECT(addr) *%ss:addr
20013 #endif
20014
20015 #define INTERRUPT_RETURN \
20016 @@ -973,6 +1000,21 @@ extern void default_banner(void);
20017 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \
20018 CLBR_NONE, \
20019 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
20020 +
20021 +#define GET_CR0_INTO_RDI \
20022 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
20023 + mov %rax,%rdi
20024 +
20025 +#define SET_RDI_INTO_CR0 \
20026 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
20027 +
20028 +#define GET_CR3_INTO_RDI \
20029 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr3); \
20030 + mov %rax,%rdi
20031 +
20032 +#define SET_RDI_INTO_CR3 \
20033 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_write_cr3)
20034 +
20035 #endif /* CONFIG_X86_32 */
20036
20037 #endif /* __ASSEMBLY__ */
20038 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
20039 index 31247b5..6b5b8ef 100644
20040 --- a/arch/x86/include/asm/paravirt_types.h
20041 +++ b/arch/x86/include/asm/paravirt_types.h
20042 @@ -84,7 +84,7 @@ struct pv_init_ops {
20043 */
20044 unsigned (*patch)(u8 type, u16 clobber, void *insnbuf,
20045 unsigned long addr, unsigned len);
20046 -};
20047 +} __no_const __no_randomize_layout;
20048
20049
20050 struct pv_lazy_ops {
20051 @@ -92,12 +92,12 @@ struct pv_lazy_ops {
20052 void (*enter)(void);
20053 void (*leave)(void);
20054 void (*flush)(void);
20055 -};
20056 +} __no_randomize_layout;
20057
20058 struct pv_time_ops {
20059 unsigned long long (*sched_clock)(void);
20060 unsigned long long (*steal_clock)(int cpu);
20061 -};
20062 +} __no_const __no_randomize_layout;
20063
20064 struct pv_cpu_ops {
20065 /* hooks for various privileged instructions */
20066 @@ -190,7 +190,7 @@ struct pv_cpu_ops {
20067
20068 void (*start_context_switch)(struct task_struct *prev);
20069 void (*end_context_switch)(struct task_struct *next);
20070 -};
20071 +} __no_const __no_randomize_layout;
20072
20073 struct pv_irq_ops {
20074 /*
20075 @@ -213,7 +213,7 @@ struct pv_irq_ops {
20076 #ifdef CONFIG_X86_64
20077 void (*adjust_exception_frame)(void);
20078 #endif
20079 -};
20080 +} __no_randomize_layout;
20081
20082 struct pv_apic_ops {
20083 #ifdef CONFIG_X86_LOCAL_APIC
20084 @@ -221,7 +221,7 @@ struct pv_apic_ops {
20085 unsigned long start_eip,
20086 unsigned long start_esp);
20087 #endif
20088 -};
20089 +} __no_const __no_randomize_layout;
20090
20091 struct pv_mmu_ops {
20092 unsigned long (*read_cr2)(void);
20093 @@ -311,6 +311,7 @@ struct pv_mmu_ops {
20094 struct paravirt_callee_save make_pud;
20095
20096 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
20097 + void (*set_pgd_batched)(pgd_t *pudp, pgd_t pgdval);
20098 #endif /* CONFIG_PGTABLE_LEVELS == 4 */
20099 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
20100
20101 @@ -322,7 +323,13 @@ struct pv_mmu_ops {
20102 an mfn. We can tell which is which from the index. */
20103 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
20104 phys_addr_t phys, pgprot_t flags);
20105 -};
20106 +
20107 +#ifdef CONFIG_PAX_KERNEXEC
20108 + unsigned long (*pax_open_kernel)(void);
20109 + unsigned long (*pax_close_kernel)(void);
20110 +#endif
20111 +
20112 +} __no_randomize_layout;
20113
20114 struct arch_spinlock;
20115 #ifdef CONFIG_SMP
20116 @@ -344,11 +351,14 @@ struct pv_lock_ops {
20117 struct paravirt_callee_save lock_spinning;
20118 void (*unlock_kick)(struct arch_spinlock *lock, __ticket_t ticket);
20119 #endif /* !CONFIG_QUEUED_SPINLOCKS */
20120 -};
20121 +} __no_randomize_layout;
20122
20123 /* This contains all the paravirt structures: we get a convenient
20124 * number for each function using the offset which we use to indicate
20125 - * what to patch. */
20126 + * what to patch.
20127 + * shouldn't be randomized due to the "NEAT TRICK" in paravirt.c
20128 + */
20129 +
20130 struct paravirt_patch_template {
20131 struct pv_init_ops pv_init_ops;
20132 struct pv_time_ops pv_time_ops;
20133 @@ -357,7 +367,7 @@ struct paravirt_patch_template {
20134 struct pv_apic_ops pv_apic_ops;
20135 struct pv_mmu_ops pv_mmu_ops;
20136 struct pv_lock_ops pv_lock_ops;
20137 -};
20138 +} __no_randomize_layout;
20139
20140 extern struct pv_info pv_info;
20141 extern struct pv_init_ops pv_init_ops;
20142 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
20143 index bf7f8b5..ca5799d 100644
20144 --- a/arch/x86/include/asm/pgalloc.h
20145 +++ b/arch/x86/include/asm/pgalloc.h
20146 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
20147 pmd_t *pmd, pte_t *pte)
20148 {
20149 paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20150 + set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
20151 +}
20152 +
20153 +static inline void pmd_populate_user(struct mm_struct *mm,
20154 + pmd_t *pmd, pte_t *pte)
20155 +{
20156 + paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20157 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
20158 }
20159
20160 @@ -108,12 +115,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
20161
20162 #ifdef CONFIG_X86_PAE
20163 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
20164 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
20165 +{
20166 + pud_populate(mm, pudp, pmd);
20167 +}
20168 #else /* !CONFIG_X86_PAE */
20169 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20170 {
20171 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20172 set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
20173 }
20174 +
20175 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20176 +{
20177 + paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20178 + set_pud(pud, __pud(_KERNPG_TABLE | __pa(pmd)));
20179 +}
20180 #endif /* CONFIG_X86_PAE */
20181
20182 #if CONFIG_PGTABLE_LEVELS > 3
20183 @@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20184 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
20185 }
20186
20187 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20188 +{
20189 + paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT);
20190 + set_pgd(pgd, __pgd(_KERNPG_TABLE | __pa(pud)));
20191 +}
20192 +
20193 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
20194 {
20195 return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
20196 diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
20197 index fd74a11..35fd5af 100644
20198 --- a/arch/x86/include/asm/pgtable-2level.h
20199 +++ b/arch/x86/include/asm/pgtable-2level.h
20200 @@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t *ptep , pte_t pte)
20201
20202 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20203 {
20204 + pax_open_kernel();
20205 *pmdp = pmd;
20206 + pax_close_kernel();
20207 }
20208
20209 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20210 diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
20211 index cdaa58c..ae30f0d 100644
20212 --- a/arch/x86/include/asm/pgtable-3level.h
20213 +++ b/arch/x86/include/asm/pgtable-3level.h
20214 @@ -92,12 +92,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20215
20216 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20217 {
20218 + pax_open_kernel();
20219 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd));
20220 + pax_close_kernel();
20221 }
20222
20223 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20224 {
20225 + pax_open_kernel();
20226 set_64bit((unsigned long long *)(pudp), native_pud_val(pud));
20227 + pax_close_kernel();
20228 }
20229
20230 /*
20231 @@ -116,9 +120,12 @@ static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr,
20232 static inline void native_pmd_clear(pmd_t *pmd)
20233 {
20234 u32 *tmp = (u32 *)pmd;
20235 +
20236 + pax_open_kernel();
20237 *tmp = 0;
20238 smp_wmb();
20239 *(tmp + 1) = 0;
20240 + pax_close_kernel();
20241 }
20242
20243 static inline void pud_clear(pud_t *pudp)
20244 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
20245 index 867da5b..7ec083d 100644
20246 --- a/arch/x86/include/asm/pgtable.h
20247 +++ b/arch/x86/include/asm/pgtable.h
20248 @@ -47,6 +47,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20249
20250 #ifndef __PAGETABLE_PUD_FOLDED
20251 #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
20252 +#define set_pgd_batched(pgdp, pgd) native_set_pgd_batched(pgdp, pgd)
20253 #define pgd_clear(pgd) native_pgd_clear(pgd)
20254 #endif
20255
20256 @@ -84,12 +85,53 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20257
20258 #define arch_end_context_switch(prev) do {} while(0)
20259
20260 +#define pax_open_kernel() native_pax_open_kernel()
20261 +#define pax_close_kernel() native_pax_close_kernel()
20262 #endif /* CONFIG_PARAVIRT */
20263
20264 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
20265 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
20266 +
20267 +#ifdef CONFIG_PAX_KERNEXEC
20268 +static inline unsigned long native_pax_open_kernel(void)
20269 +{
20270 + unsigned long cr0;
20271 +
20272 + preempt_disable();
20273 + barrier();
20274 + cr0 = read_cr0() ^ X86_CR0_WP;
20275 + BUG_ON(cr0 & X86_CR0_WP);
20276 + write_cr0(cr0);
20277 + barrier();
20278 + return cr0 ^ X86_CR0_WP;
20279 +}
20280 +
20281 +static inline unsigned long native_pax_close_kernel(void)
20282 +{
20283 + unsigned long cr0;
20284 +
20285 + barrier();
20286 + cr0 = read_cr0() ^ X86_CR0_WP;
20287 + BUG_ON(!(cr0 & X86_CR0_WP));
20288 + write_cr0(cr0);
20289 + barrier();
20290 + preempt_enable_no_resched();
20291 + return cr0 ^ X86_CR0_WP;
20292 +}
20293 +#else
20294 +static inline unsigned long native_pax_open_kernel(void) { return 0; }
20295 +static inline unsigned long native_pax_close_kernel(void) { return 0; }
20296 +#endif
20297 +
20298 /*
20299 * The following only work if pte_present() is true.
20300 * Undefined behaviour if not..
20301 */
20302 +static inline int pte_user(pte_t pte)
20303 +{
20304 + return pte_val(pte) & _PAGE_USER;
20305 +}
20306 +
20307 static inline int pte_dirty(pte_t pte)
20308 {
20309 return pte_flags(pte) & _PAGE_DIRTY;
20310 @@ -150,6 +192,11 @@ static inline unsigned long pud_pfn(pud_t pud)
20311 return (pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT;
20312 }
20313
20314 +static inline unsigned long pgd_pfn(pgd_t pgd)
20315 +{
20316 + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT;
20317 +}
20318 +
20319 #define pte_page(pte) pfn_to_page(pte_pfn(pte))
20320
20321 static inline int pmd_large(pmd_t pte)
20322 @@ -203,9 +250,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
20323 return pte_clear_flags(pte, _PAGE_RW);
20324 }
20325
20326 +static inline pte_t pte_mkread(pte_t pte)
20327 +{
20328 + return __pte(pte_val(pte) | _PAGE_USER);
20329 +}
20330 +
20331 static inline pte_t pte_mkexec(pte_t pte)
20332 {
20333 - return pte_clear_flags(pte, _PAGE_NX);
20334 +#ifdef CONFIG_X86_PAE
20335 + if (__supported_pte_mask & _PAGE_NX)
20336 + return pte_clear_flags(pte, _PAGE_NX);
20337 + else
20338 +#endif
20339 + return pte_set_flags(pte, _PAGE_USER);
20340 +}
20341 +
20342 +static inline pte_t pte_exprotect(pte_t pte)
20343 +{
20344 +#ifdef CONFIG_X86_PAE
20345 + if (__supported_pte_mask & _PAGE_NX)
20346 + return pte_set_flags(pte, _PAGE_NX);
20347 + else
20348 +#endif
20349 + return pte_clear_flags(pte, _PAGE_USER);
20350 }
20351
20352 static inline pte_t pte_mkdirty(pte_t pte)
20353 @@ -426,6 +493,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
20354 #endif
20355
20356 #ifndef __ASSEMBLY__
20357 +
20358 +#ifdef CONFIG_PAX_PER_CPU_PGD
20359 +extern pgd_t cpu_pgd[NR_CPUS][2][PTRS_PER_PGD];
20360 +enum cpu_pgd_type {kernel = 0, user = 1};
20361 +static inline pgd_t *get_cpu_pgd(unsigned int cpu, enum cpu_pgd_type type)
20362 +{
20363 + return cpu_pgd[cpu][type];
20364 +}
20365 +#endif
20366 +
20367 #include <linux/mm_types.h>
20368 #include <linux/mmdebug.h>
20369 #include <linux/log2.h>
20370 @@ -577,7 +654,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
20371 * Currently stuck as a macro due to indirect forward reference to
20372 * linux/mmzone.h's __section_mem_map_addr() definition:
20373 */
20374 -#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
20375 +#define pud_page(pud) pfn_to_page((pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT)
20376
20377 /* Find an entry in the second-level page table.. */
20378 static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
20379 @@ -617,7 +694,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
20380 * Currently stuck as a macro due to indirect forward reference to
20381 * linux/mmzone.h's __section_mem_map_addr() definition:
20382 */
20383 -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
20384 +#define pgd_page(pgd) pfn_to_page((pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT)
20385
20386 /* to find an entry in a page-table-directory. */
20387 static inline unsigned long pud_index(unsigned long address)
20388 @@ -632,7 +709,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
20389
20390 static inline int pgd_bad(pgd_t pgd)
20391 {
20392 - return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
20393 + return (pgd_flags(pgd) & ~(_PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE;
20394 }
20395
20396 static inline int pgd_none(pgd_t pgd)
20397 @@ -655,7 +732,12 @@ static inline int pgd_none(pgd_t pgd)
20398 * pgd_offset() returns a (pgd_t *)
20399 * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
20400 */
20401 -#define pgd_offset(mm, address) ((mm)->pgd + pgd_index((address)))
20402 +#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))
20403 +
20404 +#ifdef CONFIG_PAX_PER_CPU_PGD
20405 +#define pgd_offset_cpu(cpu, type, address) (get_cpu_pgd(cpu, type) + pgd_index(address))
20406 +#endif
20407 +
20408 /*
20409 * a shortcut which implies the use of the kernel's pgd, instead
20410 * of a process's
20411 @@ -666,6 +748,25 @@ static inline int pgd_none(pgd_t pgd)
20412 #define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
20413 #define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
20414
20415 +#ifdef CONFIG_X86_32
20416 +#define USER_PGD_PTRS KERNEL_PGD_BOUNDARY
20417 +#else
20418 +#define TASK_SIZE_MAX_SHIFT CONFIG_TASK_SIZE_MAX_SHIFT
20419 +#define USER_PGD_PTRS (_AC(1,UL) << (TASK_SIZE_MAX_SHIFT - PGDIR_SHIFT))
20420 +
20421 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20422 +#ifdef __ASSEMBLY__
20423 +#define pax_user_shadow_base pax_user_shadow_base(%rip)
20424 +#else
20425 +extern unsigned long pax_user_shadow_base;
20426 +extern pgdval_t clone_pgd_mask;
20427 +#endif
20428 +#else
20429 +#define pax_user_shadow_base (0UL)
20430 +#endif
20431 +
20432 +#endif
20433 +
20434 #ifndef __ASSEMBLY__
20435
20436 extern int direct_gbpages;
20437 @@ -832,11 +933,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
20438 * dst and src can be on the same page, but the range must not overlap,
20439 * and must not cross a page boundary.
20440 */
20441 -static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
20442 +static inline void clone_pgd_range(pgd_t *dst, const pgd_t *src, int count)
20443 {
20444 - memcpy(dst, src, count * sizeof(pgd_t));
20445 + pax_open_kernel();
20446 + while (count--)
20447 + *dst++ = *src++;
20448 + pax_close_kernel();
20449 }
20450
20451 +#ifdef CONFIG_PAX_PER_CPU_PGD
20452 +extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src);
20453 +#endif
20454 +
20455 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
20456 +extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src);
20457 +#else
20458 +static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) {}
20459 +#endif
20460 +
20461 #define PTE_SHIFT ilog2(PTRS_PER_PTE)
20462 static inline int page_level_shift(enum pg_level level)
20463 {
20464 diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
20465 index b6c0b40..3535d47 100644
20466 --- a/arch/x86/include/asm/pgtable_32.h
20467 +++ b/arch/x86/include/asm/pgtable_32.h
20468 @@ -25,9 +25,6 @@
20469 struct mm_struct;
20470 struct vm_area_struct;
20471
20472 -extern pgd_t swapper_pg_dir[1024];
20473 -extern pgd_t initial_page_table[1024];
20474 -
20475 static inline void pgtable_cache_init(void) { }
20476 static inline void check_pgt_cache(void) { }
20477 void paging_init(void);
20478 @@ -45,6 +42,12 @@ void paging_init(void);
20479 # include <asm/pgtable-2level.h>
20480 #endif
20481
20482 +extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
20483 +extern pgd_t initial_page_table[PTRS_PER_PGD];
20484 +#ifdef CONFIG_X86_PAE
20485 +extern pmd_t swapper_pm_dir[PTRS_PER_PGD][PTRS_PER_PMD];
20486 +#endif
20487 +
20488 #if defined(CONFIG_HIGHPTE)
20489 #define pte_offset_map(dir, address) \
20490 ((pte_t *)kmap_atomic(pmd_page(*(dir))) + \
20491 @@ -59,12 +62,17 @@ void paging_init(void);
20492 /* Clear a kernel PTE and flush it from the TLB */
20493 #define kpte_clear_flush(ptep, vaddr) \
20494 do { \
20495 + pax_open_kernel(); \
20496 pte_clear(&init_mm, (vaddr), (ptep)); \
20497 + pax_close_kernel(); \
20498 __flush_tlb_one((vaddr)); \
20499 } while (0)
20500
20501 #endif /* !__ASSEMBLY__ */
20502
20503 +#define HAVE_ARCH_UNMAPPED_AREA
20504 +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
20505 +
20506 /*
20507 * kern_addr_valid() is (1) for FLATMEM and (0) for
20508 * SPARSEMEM and DISCONTIGMEM
20509 diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
20510 index 9fb2f2b..8e18c70 100644
20511 --- a/arch/x86/include/asm/pgtable_32_types.h
20512 +++ b/arch/x86/include/asm/pgtable_32_types.h
20513 @@ -8,7 +8,7 @@
20514 */
20515 #ifdef CONFIG_X86_PAE
20516 # include <asm/pgtable-3level_types.h>
20517 -# define PMD_SIZE (1UL << PMD_SHIFT)
20518 +# define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
20519 # define PMD_MASK (~(PMD_SIZE - 1))
20520 #else
20521 # include <asm/pgtable-2level_types.h>
20522 @@ -46,6 +46,28 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
20523 # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
20524 #endif
20525
20526 +#ifdef CONFIG_PAX_KERNEXEC
20527 +#ifndef __ASSEMBLY__
20528 +extern unsigned char MODULES_EXEC_VADDR[];
20529 +extern unsigned char MODULES_EXEC_END[];
20530 +
20531 +extern unsigned char __LOAD_PHYSICAL_ADDR[];
20532 +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR)
20533 +static inline unsigned long __intentional_overflow(-1) ktla_ktva(unsigned long addr)
20534 +{
20535 + return addr + LOAD_PHYSICAL_ADDR + PAGE_OFFSET;
20536 +
20537 +}
20538 +static inline unsigned long __intentional_overflow(-1) ktva_ktla(unsigned long addr)
20539 +{
20540 + return addr - LOAD_PHYSICAL_ADDR - PAGE_OFFSET;
20541 +}
20542 +#endif
20543 +#else
20544 +#define ktla_ktva(addr) (addr)
20545 +#define ktva_ktla(addr) (addr)
20546 +#endif
20547 +
20548 #define MODULES_VADDR VMALLOC_START
20549 #define MODULES_END VMALLOC_END
20550 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
20551 diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
20552 index 2ee7811..afd76c0 100644
20553 --- a/arch/x86/include/asm/pgtable_64.h
20554 +++ b/arch/x86/include/asm/pgtable_64.h
20555 @@ -16,11 +16,17 @@
20556
20557 extern pud_t level3_kernel_pgt[512];
20558 extern pud_t level3_ident_pgt[512];
20559 +extern pud_t level3_vmalloc_start_pgt[512];
20560 +extern pud_t level3_vmalloc_end_pgt[512];
20561 +extern pud_t level3_vmemmap_pgt[512];
20562 +extern pud_t level2_vmemmap_pgt[512];
20563 extern pmd_t level2_kernel_pgt[512];
20564 extern pmd_t level2_fixmap_pgt[512];
20565 -extern pmd_t level2_ident_pgt[512];
20566 -extern pte_t level1_fixmap_pgt[512];
20567 -extern pgd_t init_level4_pgt[];
20568 +extern pmd_t level2_ident_pgt[2][512];
20569 +extern pte_t level1_modules_pgt[4][512];
20570 +extern pte_t level1_fixmap_pgt[3][512];
20571 +extern pte_t level1_vsyscall_pgt[512];
20572 +extern pgd_t init_level4_pgt[512];
20573
20574 #define swapper_pg_dir init_level4_pgt
20575
20576 @@ -62,7 +68,9 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20577
20578 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20579 {
20580 + pax_open_kernel();
20581 *pmdp = pmd;
20582 + pax_close_kernel();
20583 }
20584
20585 static inline void native_pmd_clear(pmd_t *pmd)
20586 @@ -98,7 +106,9 @@ static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
20587
20588 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20589 {
20590 + pax_open_kernel();
20591 *pudp = pud;
20592 + pax_close_kernel();
20593 }
20594
20595 static inline void native_pud_clear(pud_t *pud)
20596 @@ -108,6 +118,13 @@ static inline void native_pud_clear(pud_t *pud)
20597
20598 static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
20599 {
20600 + pax_open_kernel();
20601 + *pgdp = pgd;
20602 + pax_close_kernel();
20603 +}
20604 +
20605 +static inline void native_set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20606 +{
20607 *pgdp = pgd;
20608 }
20609
20610 diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
20611 index e6844df..432b56e 100644
20612 --- a/arch/x86/include/asm/pgtable_64_types.h
20613 +++ b/arch/x86/include/asm/pgtable_64_types.h
20614 @@ -60,11 +60,16 @@ typedef struct { pteval_t pte; } pte_t;
20615 #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
20616 #define MODULES_END _AC(0xffffffffff000000, UL)
20617 #define MODULES_LEN (MODULES_END - MODULES_VADDR)
20618 +#define MODULES_EXEC_VADDR MODULES_VADDR
20619 +#define MODULES_EXEC_END MODULES_END
20620 #define ESPFIX_PGD_ENTRY _AC(-2, UL)
20621 #define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT)
20622 #define EFI_VA_START ( -4 * (_AC(1, UL) << 30))
20623 #define EFI_VA_END (-68 * (_AC(1, UL) << 30))
20624
20625 +#define ktla_ktva(addr) (addr)
20626 +#define ktva_ktla(addr) (addr)
20627 +
20628 #define EARLY_DYNAMIC_PAGE_TABLES 64
20629
20630 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
20631 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
20632 index 13f310b..f0ef42e 100644
20633 --- a/arch/x86/include/asm/pgtable_types.h
20634 +++ b/arch/x86/include/asm/pgtable_types.h
20635 @@ -85,8 +85,10 @@
20636
20637 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
20638 #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
20639 -#else
20640 +#elif defined(CONFIG_KMEMCHECK) || defined(CONFIG_MEM_SOFT_DIRTY)
20641 #define _PAGE_NX (_AT(pteval_t, 0))
20642 +#else
20643 +#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_HIDDEN)
20644 #endif
20645
20646 #define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
20647 @@ -141,6 +143,9 @@ enum page_cache_mode {
20648 #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
20649 _PAGE_ACCESSED)
20650
20651 +#define PAGE_READONLY_NOEXEC PAGE_READONLY
20652 +#define PAGE_SHARED_NOEXEC PAGE_SHARED
20653 +
20654 #define __PAGE_KERNEL_EXEC \
20655 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
20656 #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
20657 @@ -148,7 +153,7 @@ enum page_cache_mode {
20658 #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
20659 #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
20660 #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_NOCACHE)
20661 -#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
20662 +#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RO | _PAGE_USER)
20663 #define __PAGE_KERNEL_VVAR (__PAGE_KERNEL_RO | _PAGE_USER)
20664 #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
20665 #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
20666 @@ -194,7 +199,7 @@ enum page_cache_mode {
20667 #ifdef CONFIG_X86_64
20668 #define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
20669 #else
20670 -#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
20671 +#define PTE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20672 #define PDE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20673 #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
20674 #endif
20675 @@ -233,7 +238,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
20676 {
20677 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
20678 }
20679 +#endif
20680
20681 +#if CONFIG_PGTABLE_LEVELS == 3
20682 +#include <asm-generic/pgtable-nopud.h>
20683 +#endif
20684 +
20685 +#if CONFIG_PGTABLE_LEVELS == 2
20686 +#include <asm-generic/pgtable-nopmd.h>
20687 +#endif
20688 +
20689 +#ifndef __ASSEMBLY__
20690 #if CONFIG_PGTABLE_LEVELS > 3
20691 typedef struct { pudval_t pud; } pud_t;
20692
20693 @@ -247,8 +262,6 @@ static inline pudval_t native_pud_val(pud_t pud)
20694 return pud.pud;
20695 }
20696 #else
20697 -#include <asm-generic/pgtable-nopud.h>
20698 -
20699 static inline pudval_t native_pud_val(pud_t pud)
20700 {
20701 return native_pgd_val(pud.pgd);
20702 @@ -268,8 +281,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
20703 return pmd.pmd;
20704 }
20705 #else
20706 -#include <asm-generic/pgtable-nopmd.h>
20707 -
20708 static inline pmdval_t native_pmd_val(pmd_t pmd)
20709 {
20710 return native_pgd_val(pmd.pud.pgd);
20711 @@ -362,7 +373,6 @@ typedef struct page *pgtable_t;
20712
20713 extern pteval_t __supported_pte_mask;
20714 extern void set_nx(void);
20715 -extern int nx_enabled;
20716
20717 #define pgprot_writecombine pgprot_writecombine
20718 extern pgprot_t pgprot_writecombine(pgprot_t prot);
20719 diff --git a/arch/x86/include/asm/pmem.h b/arch/x86/include/asm/pmem.h
20720 index d8ce3ec..96b12e2 100644
20721 --- a/arch/x86/include/asm/pmem.h
20722 +++ b/arch/x86/include/asm/pmem.h
20723 @@ -41,7 +41,7 @@ static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src,
20724 * before the WARN+BUG.
20725 */
20726 unwritten = __copy_from_user_inatomic_nocache((void __force *) dst,
20727 - (void __user *) src, n);
20728 + (void __force_user *) src, n);
20729 if (WARN(unwritten, "%s: fault copying %p <- %p unwritten: %d\n",
20730 __func__, dst, src, unwritten))
20731 BUG();
20732 diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
20733 index b12f810..aedcc13 100644
20734 --- a/arch/x86/include/asm/preempt.h
20735 +++ b/arch/x86/include/asm/preempt.h
20736 @@ -84,7 +84,7 @@ static __always_inline void __preempt_count_sub(int val)
20737 */
20738 static __always_inline bool __preempt_count_dec_and_test(void)
20739 {
20740 - GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
20741 + GEN_UNARY_RMWcc("decl", "incl", __preempt_count, __percpu_arg(0), "e");
20742 }
20743
20744 /*
20745 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
20746 index 19577dd..f4acc54 100644
20747 --- a/arch/x86/include/asm/processor.h
20748 +++ b/arch/x86/include/asm/processor.h
20749 @@ -136,7 +136,7 @@ struct cpuinfo_x86 {
20750 /* Index into per_cpu list: */
20751 u16 cpu_index;
20752 u32 microcode;
20753 -};
20754 +} __randomize_layout;
20755
20756 #define X86_VENDOR_INTEL 0
20757 #define X86_VENDOR_CYRIX 1
20758 @@ -206,9 +206,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
20759 : "memory");
20760 }
20761
20762 +/* invpcid (%rdx),%rax */
20763 +#define __ASM_INVPCID ".byte 0x66,0x0f,0x38,0x82,0x02"
20764 +
20765 +#define INVPCID_SINGLE_ADDRESS 0UL
20766 +#define INVPCID_SINGLE_CONTEXT 1UL
20767 +#define INVPCID_ALL_GLOBAL 2UL
20768 +#define INVPCID_ALL_NONGLOBAL 3UL
20769 +
20770 +#define PCID_KERNEL 0UL
20771 +#define PCID_USER 1UL
20772 +#define PCID_NOFLUSH (1UL << 63)
20773 +
20774 static inline void load_cr3(pgd_t *pgdir)
20775 {
20776 - write_cr3(__pa(pgdir));
20777 + write_cr3(__pa(pgdir) | PCID_KERNEL);
20778 }
20779
20780 #ifdef CONFIG_X86_32
20781 @@ -305,11 +317,9 @@ struct tss_struct {
20782
20783 } ____cacheline_aligned;
20784
20785 -DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss);
20786 +extern struct tss_struct cpu_tss[NR_CPUS];
20787
20788 -#ifdef CONFIG_X86_32
20789 DECLARE_PER_CPU(unsigned long, cpu_current_top_of_stack);
20790 -#endif
20791
20792 /*
20793 * Save the original ist values for checking stack pointers during debugging
20794 @@ -381,6 +391,7 @@ struct thread_struct {
20795 unsigned short ds;
20796 unsigned short fsindex;
20797 unsigned short gsindex;
20798 + unsigned short ss;
20799 #endif
20800 #ifdef CONFIG_X86_32
20801 unsigned long ip;
20802 @@ -390,6 +401,9 @@ struct thread_struct {
20803 #endif
20804 unsigned long gs;
20805
20806 + /* Floating point and extended processor state */
20807 + struct fpu fpu;
20808 +
20809 /* Save middle states of ptrace breakpoints */
20810 struct perf_event *ptrace_bps[HBP_NUM];
20811 /* Debug status used for traps, single steps, etc... */
20812 @@ -409,13 +423,6 @@ struct thread_struct {
20813 unsigned long iopl;
20814 /* Max allowed port in the bitmap, in bytes: */
20815 unsigned io_bitmap_max;
20816 -
20817 - /* Floating point and extended processor state */
20818 - struct fpu fpu;
20819 - /*
20820 - * WARNING: 'fpu' is dynamically-sized. It *MUST* be at
20821 - * the end.
20822 - */
20823 };
20824
20825 /*
20826 @@ -457,10 +464,10 @@ static inline void native_swapgs(void)
20827 #endif
20828 }
20829
20830 -static inline unsigned long current_top_of_stack(void)
20831 +static inline unsigned long current_top_of_stack(unsigned int cpu)
20832 {
20833 #ifdef CONFIG_X86_64
20834 - return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
20835 + return cpu_tss[cpu].x86_tss.sp0;
20836 #else
20837 /* sp0 on x86_32 is special in and around vm86 mode. */
20838 return this_cpu_read_stable(cpu_current_top_of_stack);
20839 @@ -695,19 +702,29 @@ static inline void spin_lock_prefetch(const void *x)
20840 #define TOP_OF_INIT_STACK ((unsigned long)&init_stack + sizeof(init_stack) - \
20841 TOP_OF_KERNEL_STACK_PADDING)
20842
20843 +extern union fpregs_state init_fpregs_state;
20844 +
20845 #ifdef CONFIG_X86_32
20846 /*
20847 * User space process size: 3GB (default).
20848 */
20849 #define TASK_SIZE PAGE_OFFSET
20850 #define TASK_SIZE_MAX TASK_SIZE
20851 +
20852 +#ifdef CONFIG_PAX_SEGMEXEC
20853 +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2)
20854 +#define STACK_TOP ((current->mm->pax_flags & MF_PAX_SEGMEXEC)?SEGMEXEC_TASK_SIZE:TASK_SIZE)
20855 +#else
20856 #define STACK_TOP TASK_SIZE
20857 -#define STACK_TOP_MAX STACK_TOP
20858 +#endif
20859 +
20860 +#define STACK_TOP_MAX TASK_SIZE
20861
20862 #define INIT_THREAD { \
20863 .sp0 = TOP_OF_INIT_STACK, \
20864 .sysenter_cs = __KERNEL_CS, \
20865 .io_bitmap_ptr = NULL, \
20866 + .fpu.state = &init_fpregs_state, \
20867 }
20868
20869 extern unsigned long thread_saved_pc(struct task_struct *tsk);
20870 @@ -722,12 +739,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20871 * "struct pt_regs" is possible, but they may contain the
20872 * completely wrong values.
20873 */
20874 -#define task_pt_regs(task) \
20875 -({ \
20876 - unsigned long __ptr = (unsigned long)task_stack_page(task); \
20877 - __ptr += THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING; \
20878 - ((struct pt_regs *)__ptr) - 1; \
20879 -})
20880 +#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1)
20881
20882 #define KSTK_ESP(task) (task_pt_regs(task)->sp)
20883
20884 @@ -741,13 +753,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20885 * particular problem by preventing anything from being mapped
20886 * at the maximum canonical address.
20887 */
20888 -#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
20889 +#define TASK_SIZE_MAX ((1UL << TASK_SIZE_MAX_SHIFT) - PAGE_SIZE)
20890
20891 /* This decides where the kernel will search for a free chunk of vm
20892 * space during mmap's.
20893 */
20894 #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \
20895 - 0xc0000000 : 0xFFFFe000)
20896 + 0xc0000000 : 0xFFFFf000)
20897
20898 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
20899 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
20900 @@ -758,7 +770,8 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20901 #define STACK_TOP_MAX TASK_SIZE_MAX
20902
20903 #define INIT_THREAD { \
20904 - .sp0 = TOP_OF_INIT_STACK \
20905 + .sp0 = TOP_OF_INIT_STACK, \
20906 + .fpu.state = &init_fpregs_state, \
20907 }
20908
20909 /*
20910 @@ -781,6 +794,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
20911 */
20912 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
20913
20914 +#ifdef CONFIG_PAX_SEGMEXEC
20915 +#define SEGMEXEC_TASK_UNMAPPED_BASE (PAGE_ALIGN(SEGMEXEC_TASK_SIZE / 3))
20916 +#endif
20917 +
20918 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
20919
20920 /* Get/set a process' ability to use the timestamp counter instruction */
20921 @@ -826,7 +843,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
20922 return 0;
20923 }
20924
20925 -extern unsigned long arch_align_stack(unsigned long sp);
20926 +#define arch_align_stack(x) ((x) & ~0xfUL)
20927 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
20928
20929 void default_idle(void);
20930 @@ -836,6 +853,6 @@ bool xen_set_default_idle(void);
20931 #define xen_set_default_idle 0
20932 #endif
20933
20934 -void stop_this_cpu(void *dummy);
20935 +void stop_this_cpu(void *dummy) __noreturn;
20936 void df_debug(struct pt_regs *regs, long error_code);
20937 #endif /* _ASM_X86_PROCESSOR_H */
20938 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
20939 index 6271281..e2ba226 100644
20940 --- a/arch/x86/include/asm/ptrace.h
20941 +++ b/arch/x86/include/asm/ptrace.h
20942 @@ -124,15 +124,16 @@ static inline int v8086_mode(struct pt_regs *regs)
20943 #ifdef CONFIG_X86_64
20944 static inline bool user_64bit_mode(struct pt_regs *regs)
20945 {
20946 + unsigned long cs = regs->cs & 0xffff;
20947 #ifndef CONFIG_PARAVIRT
20948 /*
20949 * On non-paravirt systems, this is the only long mode CPL 3
20950 * selector. We do not allow long mode selectors in the LDT.
20951 */
20952 - return regs->cs == __USER_CS;
20953 + return cs == __USER_CS;
20954 #else
20955 /* Headers are too twisted for this to go in paravirt.h. */
20956 - return regs->cs == __USER_CS || regs->cs == pv_info.extra_user_64bit_cs;
20957 + return cs == __USER_CS || cs == pv_info.extra_user_64bit_cs;
20958 #endif
20959 }
20960
20961 @@ -179,9 +180,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
20962 * Traps from the kernel do not save sp and ss.
20963 * Use the helper function to retrieve sp.
20964 */
20965 - if (offset == offsetof(struct pt_regs, sp) &&
20966 - regs->cs == __KERNEL_CS)
20967 - return kernel_stack_pointer(regs);
20968 + if (offset == offsetof(struct pt_regs, sp)) {
20969 + unsigned long cs = regs->cs & 0xffff;
20970 + if (cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS)
20971 + return kernel_stack_pointer(regs);
20972 + }
20973 #endif
20974 return *(unsigned long *)((unsigned long)regs + offset);
20975 }
20976 diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
20977 index 9c6b890..5305f53 100644
20978 --- a/arch/x86/include/asm/realmode.h
20979 +++ b/arch/x86/include/asm/realmode.h
20980 @@ -22,16 +22,14 @@ struct real_mode_header {
20981 #endif
20982 /* APM/BIOS reboot */
20983 u32 machine_real_restart_asm;
20984 -#ifdef CONFIG_X86_64
20985 u32 machine_real_restart_seg;
20986 -#endif
20987 };
20988
20989 /* This must match data at trampoline_32/64.S */
20990 struct trampoline_header {
20991 #ifdef CONFIG_X86_32
20992 u32 start;
20993 - u16 gdt_pad;
20994 + u16 boot_cs;
20995 u16 gdt_limit;
20996 u32 gdt_base;
20997 #else
20998 diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h
20999 index a82c4f1..ac45053 100644
21000 --- a/arch/x86/include/asm/reboot.h
21001 +++ b/arch/x86/include/asm/reboot.h
21002 @@ -6,13 +6,13 @@
21003 struct pt_regs;
21004
21005 struct machine_ops {
21006 - void (*restart)(char *cmd);
21007 - void (*halt)(void);
21008 - void (*power_off)(void);
21009 + void (* __noreturn restart)(char *cmd);
21010 + void (* __noreturn halt)(void);
21011 + void (* __noreturn power_off)(void);
21012 void (*shutdown)(void);
21013 void (*crash_shutdown)(struct pt_regs *);
21014 - void (*emergency_restart)(void);
21015 -};
21016 + void (* __noreturn emergency_restart)(void);
21017 +} __no_const;
21018
21019 extern struct machine_ops machine_ops;
21020
21021 diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
21022 index 8f7866a..e442f20 100644
21023 --- a/arch/x86/include/asm/rmwcc.h
21024 +++ b/arch/x86/include/asm/rmwcc.h
21025 @@ -3,7 +3,34 @@
21026
21027 #ifdef CC_HAVE_ASM_GOTO
21028
21029 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21030 +#ifdef CONFIG_PAX_REFCOUNT
21031 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21032 +do { \
21033 + asm_volatile_goto (fullop \
21034 + ";jno 0f\n" \
21035 + fullantiop \
21036 + ";int $4\n0:\n" \
21037 + _ASM_EXTABLE(0b, 0b) \
21038 + ";j" cc " %l[cc_label]" \
21039 + : : "m" (var), ## __VA_ARGS__ \
21040 + : "memory" : cc_label); \
21041 + return 0; \
21042 +cc_label: \
21043 + return 1; \
21044 +} while (0)
21045 +#else
21046 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21047 +do { \
21048 + asm_volatile_goto (fullop ";j" cc " %l[cc_label]" \
21049 + : : "m" (var), ## __VA_ARGS__ \
21050 + : "memory" : cc_label); \
21051 + return 0; \
21052 +cc_label: \
21053 + return 1; \
21054 +} while (0)
21055 +#endif
21056 +
21057 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21058 do { \
21059 asm_volatile_goto (fullop "; j" cc " %l[cc_label]" \
21060 : : "m" (var), ## __VA_ARGS__ \
21061 @@ -13,15 +40,46 @@ cc_label: \
21062 return 1; \
21063 } while (0)
21064
21065 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21066 - __GEN_RMWcc(op " " arg0, var, cc)
21067 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21068 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21069
21070 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21071 - __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
21072 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21073 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21074 +
21075 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21076 + __GEN_RMWcc(op " %1, " arg0, antiop " %1, " arg0, var, cc, vcon (val))
21077 +
21078 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21079 + __GEN_RMWcc_unchecked(op " %1, " arg0, var, cc, vcon (val))
21080
21081 #else /* !CC_HAVE_ASM_GOTO */
21082
21083 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21084 +#ifdef CONFIG_PAX_REFCOUNT
21085 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21086 +do { \
21087 + char c; \
21088 + asm volatile (fullop \
21089 + ";jno 0f\n" \
21090 + fullantiop \
21091 + ";int $4\n0:\n" \
21092 + _ASM_EXTABLE(0b, 0b) \
21093 + "; set" cc " %1" \
21094 + : "+m" (var), "=qm" (c) \
21095 + : __VA_ARGS__ : "memory"); \
21096 + return c != 0; \
21097 +} while (0)
21098 +#else
21099 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21100 +do { \
21101 + char c; \
21102 + asm volatile (fullop "; set" cc " %1" \
21103 + : "+m" (var), "=qm" (c) \
21104 + : __VA_ARGS__ : "memory"); \
21105 + return c != 0; \
21106 +} while (0)
21107 +#endif
21108 +
21109 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21110 do { \
21111 char c; \
21112 asm volatile (fullop "; set" cc " %1" \
21113 @@ -30,11 +88,17 @@ do { \
21114 return c != 0; \
21115 } while (0)
21116
21117 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21118 - __GEN_RMWcc(op " " arg0, var, cc)
21119 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21120 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21121 +
21122 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21123 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21124 +
21125 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21126 + __GEN_RMWcc(op " %2, " arg0, antiop " %2, " arg0, var, cc, vcon (val))
21127
21128 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21129 - __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
21130 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21131 + __GEN_RMWcc_unchecked(op " %2, " arg0, var, cc, vcon (val))
21132
21133 #endif /* CC_HAVE_ASM_GOTO */
21134
21135 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
21136 index cad82c9..2e5c5c1 100644
21137 --- a/arch/x86/include/asm/rwsem.h
21138 +++ b/arch/x86/include/asm/rwsem.h
21139 @@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
21140 {
21141 asm volatile("# beginning down_read\n\t"
21142 LOCK_PREFIX _ASM_INC "(%1)\n\t"
21143 +
21144 +#ifdef CONFIG_PAX_REFCOUNT
21145 + "jno 0f\n"
21146 + LOCK_PREFIX _ASM_DEC "(%1)\n"
21147 + "int $4\n0:\n"
21148 + _ASM_EXTABLE(0b, 0b)
21149 +#endif
21150 +
21151 /* adds 0x00000001 */
21152 " jns 1f\n"
21153 " call call_rwsem_down_read_failed\n"
21154 @@ -85,6 +93,14 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
21155 "1:\n\t"
21156 " mov %1,%2\n\t"
21157 " add %3,%2\n\t"
21158 +
21159 +#ifdef CONFIG_PAX_REFCOUNT
21160 + "jno 0f\n"
21161 + "sub %3,%2\n"
21162 + "int $4\n0:\n"
21163 + _ASM_EXTABLE(0b, 0b)
21164 +#endif
21165 +
21166 " jle 2f\n\t"
21167 LOCK_PREFIX " cmpxchg %2,%0\n\t"
21168 " jnz 1b\n\t"
21169 @@ -104,6 +120,14 @@ static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
21170 long tmp;
21171 asm volatile("# beginning down_write\n\t"
21172 LOCK_PREFIX " xadd %1,(%2)\n\t"
21173 +
21174 +#ifdef CONFIG_PAX_REFCOUNT
21175 + "jno 0f\n"
21176 + "mov %1,(%2)\n"
21177 + "int $4\n0:\n"
21178 + _ASM_EXTABLE(0b, 0b)
21179 +#endif
21180 +
21181 /* adds 0xffff0001, returns the old value */
21182 " test " __ASM_SEL(%w1,%k1) "," __ASM_SEL(%w1,%k1) "\n\t"
21183 /* was the active mask 0 before? */
21184 @@ -155,6 +179,14 @@ static inline void __up_read(struct rw_semaphore *sem)
21185 long tmp;
21186 asm volatile("# beginning __up_read\n\t"
21187 LOCK_PREFIX " xadd %1,(%2)\n\t"
21188 +
21189 +#ifdef CONFIG_PAX_REFCOUNT
21190 + "jno 0f\n"
21191 + "mov %1,(%2)\n"
21192 + "int $4\n0:\n"
21193 + _ASM_EXTABLE(0b, 0b)
21194 +#endif
21195 +
21196 /* subtracts 1, returns the old value */
21197 " jns 1f\n\t"
21198 " call call_rwsem_wake\n" /* expects old value in %edx */
21199 @@ -173,6 +205,14 @@ static inline void __up_write(struct rw_semaphore *sem)
21200 long tmp;
21201 asm volatile("# beginning __up_write\n\t"
21202 LOCK_PREFIX " xadd %1,(%2)\n\t"
21203 +
21204 +#ifdef CONFIG_PAX_REFCOUNT
21205 + "jno 0f\n"
21206 + "mov %1,(%2)\n"
21207 + "int $4\n0:\n"
21208 + _ASM_EXTABLE(0b, 0b)
21209 +#endif
21210 +
21211 /* subtracts 0xffff0001, returns the old value */
21212 " jns 1f\n\t"
21213 " call call_rwsem_wake\n" /* expects old value in %edx */
21214 @@ -190,6 +230,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21215 {
21216 asm volatile("# beginning __downgrade_write\n\t"
21217 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t"
21218 +
21219 +#ifdef CONFIG_PAX_REFCOUNT
21220 + "jno 0f\n"
21221 + LOCK_PREFIX _ASM_SUB "%2,(%1)\n"
21222 + "int $4\n0:\n"
21223 + _ASM_EXTABLE(0b, 0b)
21224 +#endif
21225 +
21226 /*
21227 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386)
21228 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64)
21229 @@ -208,7 +256,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21230 */
21231 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21232 {
21233 - asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0"
21234 + asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0\n"
21235 +
21236 +#ifdef CONFIG_PAX_REFCOUNT
21237 + "jno 0f\n"
21238 + LOCK_PREFIX _ASM_SUB "%1,%0\n"
21239 + "int $4\n0:\n"
21240 + _ASM_EXTABLE(0b, 0b)
21241 +#endif
21242 +
21243 : "+m" (sem->count)
21244 : "er" (delta));
21245 }
21246 @@ -218,7 +274,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21247 */
21248 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
21249 {
21250 - return delta + xadd(&sem->count, delta);
21251 + return delta + xadd_check_overflow(&sem->count, delta);
21252 }
21253
21254 #endif /* __KERNEL__ */
21255 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
21256 index 7d5a192..23ef1aa 100644
21257 --- a/arch/x86/include/asm/segment.h
21258 +++ b/arch/x86/include/asm/segment.h
21259 @@ -82,14 +82,20 @@
21260 * 26 - ESPFIX small SS
21261 * 27 - per-cpu [ offset to per-cpu data area ]
21262 * 28 - stack_canary-20 [ for stack protector ] <=== cacheline #8
21263 - * 29 - unused
21264 - * 30 - unused
21265 + * 29 - PCI BIOS CS
21266 + * 30 - PCI BIOS DS
21267 * 31 - TSS for double fault handler
21268 */
21269 +#define GDT_ENTRY_KERNEXEC_EFI_CS (1)
21270 +#define GDT_ENTRY_KERNEXEC_EFI_DS (2)
21271 +#define __KERNEXEC_EFI_CS (GDT_ENTRY_KERNEXEC_EFI_CS*8)
21272 +#define __KERNEXEC_EFI_DS (GDT_ENTRY_KERNEXEC_EFI_DS*8)
21273 +
21274 #define GDT_ENTRY_TLS_MIN 6
21275 #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
21276
21277 #define GDT_ENTRY_KERNEL_CS 12
21278 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 4
21279 #define GDT_ENTRY_KERNEL_DS 13
21280 #define GDT_ENTRY_DEFAULT_USER_CS 14
21281 #define GDT_ENTRY_DEFAULT_USER_DS 15
21282 @@ -106,6 +112,12 @@
21283 #define GDT_ENTRY_PERCPU 27
21284 #define GDT_ENTRY_STACK_CANARY 28
21285
21286 +#define GDT_ENTRY_PCIBIOS_CS 29
21287 +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
21288 +
21289 +#define GDT_ENTRY_PCIBIOS_DS 30
21290 +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8)
21291 +
21292 #define GDT_ENTRY_DOUBLEFAULT_TSS 31
21293
21294 /*
21295 @@ -118,6 +130,7 @@
21296 */
21297
21298 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21299 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21300 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21301 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21302 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8 + 3)
21303 @@ -129,7 +142,7 @@
21304 #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16*8)
21305
21306 /* "Is this PNP code selector (PNP_CS32 or PNP_CS16)?" */
21307 -#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == PNP_CS32)
21308 +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
21309
21310 /* data segment for BIOS: */
21311 #define PNP_DS (GDT_ENTRY_PNPBIOS_DS*8)
21312 @@ -176,6 +189,8 @@
21313 #define GDT_ENTRY_DEFAULT_USER_DS 5
21314 #define GDT_ENTRY_DEFAULT_USER_CS 6
21315
21316 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 7
21317 +
21318 /* Needs two entries */
21319 #define GDT_ENTRY_TSS 8
21320 /* Needs two entries */
21321 @@ -187,10 +202,12 @@
21322 /* Abused to load per CPU data from limit */
21323 #define GDT_ENTRY_PER_CPU 15
21324
21325 +#define GDT_ENTRY_UDEREF_KERNEL_DS 16
21326 +
21327 /*
21328 * Number of entries in the GDT table:
21329 */
21330 -#define GDT_ENTRIES 16
21331 +#define GDT_ENTRIES 17
21332
21333 /*
21334 * Segment selector values corresponding to the above entries:
21335 @@ -200,7 +217,9 @@
21336 */
21337 #define __KERNEL32_CS (GDT_ENTRY_KERNEL32_CS*8)
21338 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21339 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21340 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21341 +#define __UDEREF_KERNEL_DS (GDT_ENTRY_UDEREF_KERNEL_DS*8)
21342 #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3)
21343 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21344 #define __USER32_DS __USER_DS
21345 diff --git a/arch/x86/include/asm/smap.h b/arch/x86/include/asm/smap.h
21346 index ba665eb..0f72938 100644
21347 --- a/arch/x86/include/asm/smap.h
21348 +++ b/arch/x86/include/asm/smap.h
21349 @@ -25,6 +25,18 @@
21350
21351 #include <asm/alternative-asm.h>
21352
21353 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21354 +#define ASM_PAX_OPEN_USERLAND \
21355 + ALTERNATIVE "", "call __pax_open_userland", X86_FEATURE_STRONGUDEREF
21356 +
21357 +#define ASM_PAX_CLOSE_USERLAND \
21358 + ALTERNATIVE "", "call __pax_close_userland", X86_FEATURE_STRONGUDEREF
21359 +
21360 +#else
21361 +#define ASM_PAX_OPEN_USERLAND
21362 +#define ASM_PAX_CLOSE_USERLAND
21363 +#endif
21364 +
21365 #ifdef CONFIG_X86_SMAP
21366
21367 #define ASM_CLAC \
21368 @@ -44,6 +56,37 @@
21369
21370 #include <asm/alternative.h>
21371
21372 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
21373 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
21374 +
21375 +extern void __pax_open_userland(void);
21376 +static __always_inline unsigned long pax_open_userland(void)
21377 +{
21378 +
21379 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21380 + asm volatile(ALTERNATIVE("", "call %P[open]", X86_FEATURE_STRONGUDEREF)
21381 + :
21382 + : [open] "i" (__pax_open_userland)
21383 + : "memory", "rax");
21384 +#endif
21385 +
21386 + return 0;
21387 +}
21388 +
21389 +extern void __pax_close_userland(void);
21390 +static __always_inline unsigned long pax_close_userland(void)
21391 +{
21392 +
21393 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21394 + asm volatile(ALTERNATIVE("", "call %P[close]", X86_FEATURE_STRONGUDEREF)
21395 + :
21396 + : [close] "i" (__pax_close_userland)
21397 + : "memory", "rax");
21398 +#endif
21399 +
21400 + return 0;
21401 +}
21402 +
21403 #ifdef CONFIG_X86_SMAP
21404
21405 static __always_inline void clac(void)
21406 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
21407 index 222a6a3..839da8d 100644
21408 --- a/arch/x86/include/asm/smp.h
21409 +++ b/arch/x86/include/asm/smp.h
21410 @@ -35,7 +35,7 @@ DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_map);
21411 /* cpus sharing the last level cache: */
21412 DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_llc_shared_map);
21413 DECLARE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id);
21414 -DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
21415 +DECLARE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
21416
21417 static inline struct cpumask *cpu_llc_shared_mask(int cpu)
21418 {
21419 @@ -68,7 +68,7 @@ struct smp_ops {
21420
21421 void (*send_call_func_ipi)(const struct cpumask *mask);
21422 void (*send_call_func_single_ipi)(int cpu);
21423 -};
21424 +} __no_const;
21425
21426 /* Globals due to paravirt */
21427 extern void set_cpu_sibling_map(int cpu);
21428 @@ -182,14 +182,8 @@ extern unsigned disabled_cpus;
21429 extern int safe_smp_processor_id(void);
21430
21431 #elif defined(CONFIG_X86_64_SMP)
21432 -#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21433 -
21434 -#define stack_smp_processor_id() \
21435 -({ \
21436 - struct thread_info *ti; \
21437 - __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
21438 - ti->cpu; \
21439 -})
21440 +#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21441 +#define stack_smp_processor_id() raw_smp_processor_id()
21442 #define safe_smp_processor_id() smp_processor_id()
21443
21444 #endif
21445 diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
21446 index 58505f0..bff3b5b 100644
21447 --- a/arch/x86/include/asm/stackprotector.h
21448 +++ b/arch/x86/include/asm/stackprotector.h
21449 @@ -49,7 +49,7 @@
21450 * head_32 for boot CPU and setup_per_cpu_areas() for others.
21451 */
21452 #define GDT_STACK_CANARY_INIT \
21453 - [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x18),
21454 + [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x17),
21455
21456 /*
21457 * Initialize the stackprotector canary value.
21458 @@ -114,7 +114,7 @@ static inline void setup_stack_canary_segment(int cpu)
21459
21460 static inline void load_stack_canary_segment(void)
21461 {
21462 -#ifdef CONFIG_X86_32
21463 +#if defined(CONFIG_X86_32) && !defined(CONFIG_PAX_MEMORY_UDEREF)
21464 asm volatile ("mov %0, %%gs" : : "r" (0));
21465 #endif
21466 }
21467 diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h
21468 index 70bbe39..4ae2bd4 100644
21469 --- a/arch/x86/include/asm/stacktrace.h
21470 +++ b/arch/x86/include/asm/stacktrace.h
21471 @@ -11,28 +11,20 @@
21472
21473 extern int kstack_depth_to_print;
21474
21475 -struct thread_info;
21476 +struct task_struct;
21477 struct stacktrace_ops;
21478
21479 -typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
21480 - unsigned long *stack,
21481 - unsigned long bp,
21482 - const struct stacktrace_ops *ops,
21483 - void *data,
21484 - unsigned long *end,
21485 - int *graph);
21486 +typedef unsigned long walk_stack_t(struct task_struct *task,
21487 + void *stack_start,
21488 + unsigned long *stack,
21489 + unsigned long bp,
21490 + const struct stacktrace_ops *ops,
21491 + void *data,
21492 + unsigned long *end,
21493 + int *graph);
21494
21495 -extern unsigned long
21496 -print_context_stack(struct thread_info *tinfo,
21497 - unsigned long *stack, unsigned long bp,
21498 - const struct stacktrace_ops *ops, void *data,
21499 - unsigned long *end, int *graph);
21500 -
21501 -extern unsigned long
21502 -print_context_stack_bp(struct thread_info *tinfo,
21503 - unsigned long *stack, unsigned long bp,
21504 - const struct stacktrace_ops *ops, void *data,
21505 - unsigned long *end, int *graph);
21506 +extern walk_stack_t print_context_stack;
21507 +extern walk_stack_t print_context_stack_bp;
21508
21509 /* Generic stack tracer with callbacks */
21510
21511 @@ -40,7 +32,7 @@ struct stacktrace_ops {
21512 void (*address)(void *data, unsigned long address, int reliable);
21513 /* On negative return stop dumping */
21514 int (*stack)(void *data, char *name);
21515 - walk_stack_t walk_stack;
21516 + walk_stack_t *walk_stack;
21517 };
21518
21519 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
21520 diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
21521 index d7f3b3b..3cc39f1 100644
21522 --- a/arch/x86/include/asm/switch_to.h
21523 +++ b/arch/x86/include/asm/switch_to.h
21524 @@ -108,7 +108,7 @@ do { \
21525 "call __switch_to\n\t" \
21526 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
21527 __switch_canary \
21528 - "movq %P[thread_info](%%rsi),%%r8\n\t" \
21529 + "movq "__percpu_arg([thread_info])",%%r8\n\t" \
21530 "movq %%rax,%%rdi\n\t" \
21531 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
21532 "jnz ret_from_fork\n\t" \
21533 @@ -119,7 +119,7 @@ do { \
21534 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
21535 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
21536 [_tif_fork] "i" (_TIF_FORK), \
21537 - [thread_info] "i" (offsetof(struct task_struct, stack)), \
21538 + [thread_info] "m" (current_tinfo), \
21539 [current_task] "m" (current_task) \
21540 __switch_canary_iparam \
21541 : "memory", "cc" __EXTRA_CLOBBER)
21542 diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
21543 index 82c34ee..940fa40 100644
21544 --- a/arch/x86/include/asm/sys_ia32.h
21545 +++ b/arch/x86/include/asm/sys_ia32.h
21546 @@ -20,8 +20,8 @@
21547 #include <asm/ia32.h>
21548
21549 /* ia32/sys_ia32.c */
21550 -asmlinkage long sys32_truncate64(const char __user *, unsigned long, unsigned long);
21551 -asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long);
21552 +asmlinkage long sys32_truncate64(const char __user *, unsigned int, unsigned int);
21553 +asmlinkage long sys32_ftruncate64(unsigned int, unsigned int, unsigned int);
21554
21555 asmlinkage long sys32_stat64(const char __user *, struct stat64 __user *);
21556 asmlinkage long sys32_lstat64(const char __user *, struct stat64 __user *);
21557 @@ -42,7 +42,7 @@ long sys32_vm86_warning(void);
21558 asmlinkage ssize_t sys32_readahead(int, unsigned, unsigned, size_t);
21559 asmlinkage long sys32_sync_file_range(int, unsigned, unsigned,
21560 unsigned, unsigned, int);
21561 -asmlinkage long sys32_fadvise64(int, unsigned, unsigned, size_t, int);
21562 +asmlinkage long sys32_fadvise64(int, unsigned, unsigned, int, int);
21563 asmlinkage long sys32_fallocate(int, int, unsigned,
21564 unsigned, unsigned, unsigned);
21565
21566 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
21567 index 8afdc3e..ca2f1b4 100644
21568 --- a/arch/x86/include/asm/thread_info.h
21569 +++ b/arch/x86/include/asm/thread_info.h
21570 @@ -39,7 +39,7 @@
21571 # define TOP_OF_KERNEL_STACK_PADDING 8
21572 # endif
21573 #else
21574 -# define TOP_OF_KERNEL_STACK_PADDING 0
21575 +# define TOP_OF_KERNEL_STACK_PADDING 16
21576 #endif
21577
21578 /*
21579 @@ -53,27 +53,26 @@ struct task_struct;
21580 #include <linux/atomic.h>
21581
21582 struct thread_info {
21583 - struct task_struct *task; /* main task structure */
21584 __u32 flags; /* low level flags */
21585 __u32 status; /* thread synchronous flags */
21586 __u32 cpu; /* current CPU */
21587 int saved_preempt_count;
21588 mm_segment_t addr_limit;
21589 void __user *sysenter_return;
21590 + unsigned long lowest_stack;
21591 unsigned int sig_on_uaccess_error:1;
21592 unsigned int uaccess_err:1; /* uaccess failed */
21593 };
21594
21595 -#define INIT_THREAD_INFO(tsk) \
21596 +#define INIT_THREAD_INFO \
21597 { \
21598 - .task = &tsk, \
21599 .flags = 0, \
21600 .cpu = 0, \
21601 .saved_preempt_count = INIT_PREEMPT_COUNT, \
21602 .addr_limit = KERNEL_DS, \
21603 }
21604
21605 -#define init_thread_info (init_thread_union.thread_info)
21606 +#define init_thread_info (init_thread_union.stack)
21607 #define init_stack (init_thread_union.stack)
21608
21609 #else /* !__ASSEMBLY__ */
21610 @@ -113,6 +112,7 @@ struct thread_info {
21611 #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */
21612 #define TIF_ADDR32 29 /* 32-bit address space on 64 bits */
21613 #define TIF_X32 30 /* 32-bit native x86-64 binary */
21614 +#define TIF_GRSEC_SETXID 31 /* update credentials on syscall entry/exit */
21615
21616 #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
21617 #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
21618 @@ -136,17 +136,18 @@ struct thread_info {
21619 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
21620 #define _TIF_ADDR32 (1 << TIF_ADDR32)
21621 #define _TIF_X32 (1 << TIF_X32)
21622 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
21623
21624 /* work to do in syscall_trace_enter() */
21625 #define _TIF_WORK_SYSCALL_ENTRY \
21626 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \
21627 _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
21628 - _TIF_NOHZ)
21629 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21630
21631 /* work to do on any return to user space */
21632 #define _TIF_ALLWORK_MASK \
21633 ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
21634 - _TIF_NOHZ)
21635 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21636
21637 /* flags to check in __switch_to() */
21638 #define _TIF_WORK_CTXSW \
21639 @@ -164,9 +165,11 @@ struct thread_info {
21640 */
21641 #ifndef __ASSEMBLY__
21642
21643 +DECLARE_PER_CPU(struct thread_info *, current_tinfo);
21644 +
21645 static inline struct thread_info *current_thread_info(void)
21646 {
21647 - return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
21648 + return this_cpu_read_stable(current_tinfo);
21649 }
21650
21651 static inline unsigned long current_stack_pointer(void)
21652 @@ -182,14 +185,9 @@ static inline unsigned long current_stack_pointer(void)
21653
21654 #else /* !__ASSEMBLY__ */
21655
21656 -#ifdef CONFIG_X86_64
21657 -# define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
21658 -#endif
21659 -
21660 /* Load thread_info address into "reg" */
21661 #define GET_THREAD_INFO(reg) \
21662 - _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \
21663 - _ASM_SUB $(THREAD_SIZE),reg ;
21664 + _ASM_MOV PER_CPU_VAR(current_tinfo),reg ;
21665
21666 /*
21667 * ASM operand which evaluates to a 'thread_info' address of
21668 @@ -282,5 +280,12 @@ static inline bool is_ia32_task(void)
21669 extern void arch_task_cache_init(void);
21670 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
21671 extern void arch_release_task_struct(struct task_struct *tsk);
21672 +
21673 +#define __HAVE_THREAD_FUNCTIONS
21674 +#define task_thread_info(task) (&(task)->tinfo)
21675 +#define task_stack_page(task) ((task)->stack)
21676 +#define setup_thread_stack(p, org) do {} while (0)
21677 +#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
21678 +
21679 #endif
21680 #endif /* _ASM_X86_THREAD_INFO_H */
21681 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
21682 index 6df2029..a359a58 100644
21683 --- a/arch/x86/include/asm/tlbflush.h
21684 +++ b/arch/x86/include/asm/tlbflush.h
21685 @@ -86,18 +86,44 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
21686
21687 static inline void __native_flush_tlb(void)
21688 {
21689 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21690 + u64 descriptor[2];
21691 +
21692 + descriptor[0] = PCID_KERNEL;
21693 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_NONGLOBAL) : "memory");
21694 + return;
21695 + }
21696 +
21697 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21698 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21699 + unsigned int cpu = raw_get_cpu();
21700 +
21701 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
21702 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
21703 + raw_put_cpu_no_resched();
21704 + return;
21705 + }
21706 +#endif
21707 +
21708 native_write_cr3(native_read_cr3());
21709 }
21710
21711 static inline void __native_flush_tlb_global_irq_disabled(void)
21712 {
21713 - unsigned long cr4;
21714 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21715 + u64 descriptor[2];
21716
21717 - cr4 = this_cpu_read(cpu_tlbstate.cr4);
21718 - /* clear PGE */
21719 - native_write_cr4(cr4 & ~X86_CR4_PGE);
21720 - /* write old PGE again and flush TLBs */
21721 - native_write_cr4(cr4);
21722 + descriptor[0] = PCID_KERNEL;
21723 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_GLOBAL) : "memory");
21724 + } else {
21725 + unsigned long cr4;
21726 +
21727 + cr4 = this_cpu_read(cpu_tlbstate.cr4);
21728 + /* clear PGE */
21729 + native_write_cr4(cr4 & ~X86_CR4_PGE);
21730 + /* write old PGE again and flush TLBs */
21731 + native_write_cr4(cr4);
21732 + }
21733 }
21734
21735 static inline void __native_flush_tlb_global(void)
21736 @@ -118,6 +144,43 @@ static inline void __native_flush_tlb_global(void)
21737
21738 static inline void __native_flush_tlb_single(unsigned long addr)
21739 {
21740 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21741 + u64 descriptor[2];
21742 +
21743 + descriptor[0] = PCID_KERNEL;
21744 + descriptor[1] = addr;
21745 +
21746 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21747 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21748 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
21749 + if (addr < TASK_SIZE_MAX)
21750 + descriptor[1] += pax_user_shadow_base;
21751 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
21752 + }
21753 +
21754 + descriptor[0] = PCID_USER;
21755 + descriptor[1] = addr;
21756 + }
21757 +#endif
21758 +
21759 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
21760 + return;
21761 + }
21762 +
21763 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21764 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21765 + unsigned int cpu = raw_get_cpu();
21766 +
21767 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
21768 + asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
21769 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
21770 + raw_put_cpu_no_resched();
21771 +
21772 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) && addr < TASK_SIZE_MAX)
21773 + addr += pax_user_shadow_base;
21774 + }
21775 +#endif
21776 +
21777 asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
21778 }
21779
21780 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
21781 index a8df874..e0aaf5f 100644
21782 --- a/arch/x86/include/asm/uaccess.h
21783 +++ b/arch/x86/include/asm/uaccess.h
21784 @@ -7,6 +7,7 @@
21785 #include <linux/compiler.h>
21786 #include <linux/thread_info.h>
21787 #include <linux/string.h>
21788 +#include <linux/spinlock.h>
21789 #include <asm/asm.h>
21790 #include <asm/page.h>
21791 #include <asm/smap.h>
21792 @@ -29,7 +30,12 @@
21793
21794 #define get_ds() (KERNEL_DS)
21795 #define get_fs() (current_thread_info()->addr_limit)
21796 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
21797 +void __set_fs(mm_segment_t x);
21798 +void set_fs(mm_segment_t x);
21799 +#else
21800 #define set_fs(x) (current_thread_info()->addr_limit = (x))
21801 +#endif
21802
21803 #define segment_eq(a, b) ((a).seg == (b).seg)
21804
21805 @@ -86,8 +92,36 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
21806 * checks that the pointer is in the user space range - after calling
21807 * this function, memory access functions may still return -EFAULT.
21808 */
21809 -#define access_ok(type, addr, size) \
21810 - likely(!__range_not_ok(addr, size, user_addr_max()))
21811 +extern int _cond_resched(void);
21812 +#define access_ok_noprefault(type, addr, size) (likely(!__range_not_ok(addr, size, user_addr_max())))
21813 +#define access_ok(type, addr, size) \
21814 +({ \
21815 + unsigned long __size = size; \
21816 + unsigned long __addr = (unsigned long)addr; \
21817 + bool __ret_ao = __range_not_ok(__addr, __size, user_addr_max()) == 0;\
21818 + if (__ret_ao && __size) { \
21819 + unsigned long __addr_ao = __addr & PAGE_MASK; \
21820 + unsigned long __end_ao = __addr + __size - 1; \
21821 + if (unlikely((__end_ao ^ __addr_ao) & PAGE_MASK)) { \
21822 + while (__addr_ao <= __end_ao) { \
21823 + char __c_ao; \
21824 + __addr_ao += PAGE_SIZE; \
21825 + if (__size > PAGE_SIZE) \
21826 + _cond_resched(); \
21827 + if (__get_user(__c_ao, (char __user *)__addr)) \
21828 + break; \
21829 + if ((type) != VERIFY_WRITE) { \
21830 + __addr = __addr_ao; \
21831 + continue; \
21832 + } \
21833 + if (__put_user(__c_ao, (char __user *)__addr)) \
21834 + break; \
21835 + __addr = __addr_ao; \
21836 + } \
21837 + } \
21838 + } \
21839 + __ret_ao; \
21840 +})
21841
21842 /*
21843 * The exception table consists of pairs of addresses relative to the
21844 @@ -135,11 +169,13 @@ extern int __get_user_8(void);
21845 extern int __get_user_bad(void);
21846
21847 /*
21848 - * This is a type: either unsigned long, if the argument fits into
21849 - * that type, or otherwise unsigned long long.
21850 + * This is a type: either (un)signed int, if the argument fits into
21851 + * that type, or otherwise (un)signed long long.
21852 */
21853 #define __inttype(x) \
21854 -__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21855 +__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0U), \
21856 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0ULL, 0LL),\
21857 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0U, 0)))
21858
21859 /**
21860 * get_user: - Get a simple variable from user space.
21861 @@ -178,10 +214,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21862 register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
21863 __chk_user_ptr(ptr); \
21864 might_fault(); \
21865 + pax_open_userland(); \
21866 asm volatile("call __get_user_%P3" \
21867 : "=a" (__ret_gu), "=r" (__val_gu) \
21868 : "0" (ptr), "i" (sizeof(*(ptr)))); \
21869 (x) = (__force __typeof__(*(ptr))) __val_gu; \
21870 + pax_close_userland(); \
21871 __ret_gu; \
21872 })
21873
21874 @@ -189,13 +227,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21875 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
21876 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
21877
21878 -
21879 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
21880 +#define __copyuser_seg "gs;"
21881 +#define __COPYUSER_SET_ES "pushl %%gs; popl %%es\n"
21882 +#define __COPYUSER_RESTORE_ES "pushl %%ss; popl %%es\n"
21883 +#else
21884 +#define __copyuser_seg
21885 +#define __COPYUSER_SET_ES
21886 +#define __COPYUSER_RESTORE_ES
21887 +#endif
21888
21889 #ifdef CONFIG_X86_32
21890 #define __put_user_asm_u64(x, addr, err, errret) \
21891 asm volatile(ASM_STAC "\n" \
21892 - "1: movl %%eax,0(%2)\n" \
21893 - "2: movl %%edx,4(%2)\n" \
21894 + "1: "__copyuser_seg"movl %%eax,0(%2)\n" \
21895 + "2: "__copyuser_seg"movl %%edx,4(%2)\n" \
21896 "3: " ASM_CLAC "\n" \
21897 ".section .fixup,\"ax\"\n" \
21898 "4: movl %3,%0\n" \
21899 @@ -208,8 +254,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21900
21901 #define __put_user_asm_ex_u64(x, addr) \
21902 asm volatile(ASM_STAC "\n" \
21903 - "1: movl %%eax,0(%1)\n" \
21904 - "2: movl %%edx,4(%1)\n" \
21905 + "1: "__copyuser_seg"movl %%eax,0(%1)\n" \
21906 + "2: "__copyuser_seg"movl %%edx,4(%1)\n" \
21907 "3: " ASM_CLAC "\n" \
21908 _ASM_EXTABLE_EX(1b, 2b) \
21909 _ASM_EXTABLE_EX(2b, 3b) \
21910 @@ -257,10 +303,11 @@ extern void __put_user_8(void);
21911 #define put_user(x, ptr) \
21912 ({ \
21913 int __ret_pu; \
21914 - __typeof__(*(ptr)) __pu_val; \
21915 + __inttype(*(ptr)) __pu_val; \
21916 __chk_user_ptr(ptr); \
21917 might_fault(); \
21918 - __pu_val = x; \
21919 + __pu_val = (__inttype(*(ptr)))(x); \
21920 + pax_open_userland(); \
21921 switch (sizeof(*(ptr))) { \
21922 case 1: \
21923 __put_user_x(1, __pu_val, ptr, __ret_pu); \
21924 @@ -278,6 +325,7 @@ extern void __put_user_8(void);
21925 __put_user_x(X, __pu_val, ptr, __ret_pu); \
21926 break; \
21927 } \
21928 + pax_close_userland(); \
21929 __ret_pu; \
21930 })
21931
21932 @@ -341,10 +389,10 @@ do { \
21933 __chk_user_ptr(ptr); \
21934 switch (size) { \
21935 case 1: \
21936 - __get_user_asm(x, ptr, retval, "b", "b", "=q", errret); \
21937 + __get_user_asm(x, ptr, retval, "zbl", "k", "=r", errret);\
21938 break; \
21939 case 2: \
21940 - __get_user_asm(x, ptr, retval, "w", "w", "=r", errret); \
21941 + __get_user_asm(x, ptr, retval, "zwl", "k", "=r", errret);\
21942 break; \
21943 case 4: \
21944 __get_user_asm(x, ptr, retval, "l", "k", "=r", errret); \
21945 @@ -358,27 +406,31 @@ do { \
21946 } while (0)
21947
21948 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
21949 +do { \
21950 + pax_open_userland(); \
21951 asm volatile(ASM_STAC "\n" \
21952 - "1: mov"itype" %2,%"rtype"1\n" \
21953 + "1: "__copyuser_seg"mov"itype" %2,%"rtype"1\n"\
21954 "2: " ASM_CLAC "\n" \
21955 ".section .fixup,\"ax\"\n" \
21956 "3: mov %3,%0\n" \
21957 - " xor"itype" %"rtype"1,%"rtype"1\n" \
21958 + " xorl %k1,%k1\n" \
21959 " jmp 2b\n" \
21960 ".previous\n" \
21961 _ASM_EXTABLE(1b, 3b) \
21962 - : "=r" (err), ltype(x) \
21963 - : "m" (__m(addr)), "i" (errret), "0" (err))
21964 + : "=r" (err), ltype (x) \
21965 + : "m" (__m(addr)), "i" (errret), "0" (err)); \
21966 + pax_close_userland(); \
21967 +} while (0)
21968
21969 #define __get_user_size_ex(x, ptr, size) \
21970 do { \
21971 __chk_user_ptr(ptr); \
21972 switch (size) { \
21973 case 1: \
21974 - __get_user_asm_ex(x, ptr, "b", "b", "=q"); \
21975 + __get_user_asm_ex(x, ptr, "zbl", "k", "=r"); \
21976 break; \
21977 case 2: \
21978 - __get_user_asm_ex(x, ptr, "w", "w", "=r"); \
21979 + __get_user_asm_ex(x, ptr, "zwl", "k", "=r"); \
21980 break; \
21981 case 4: \
21982 __get_user_asm_ex(x, ptr, "l", "k", "=r"); \
21983 @@ -392,7 +444,7 @@ do { \
21984 } while (0)
21985
21986 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
21987 - asm volatile("1: mov"itype" %1,%"rtype"0\n" \
21988 + asm volatile("1: "__copyuser_seg"mov"itype" %1,%"rtype"0\n"\
21989 "2:\n" \
21990 _ASM_EXTABLE_EX(1b, 2b) \
21991 : ltype(x) : "m" (__m(addr)))
21992 @@ -407,15 +459,26 @@ do { \
21993 #define __get_user_nocheck(x, ptr, size) \
21994 ({ \
21995 int __gu_err; \
21996 - unsigned long __gu_val; \
21997 + __inttype(*(ptr)) __gu_val; \
21998 __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
21999 - (x) = (__force __typeof__(*(ptr)))__gu_val; \
22000 + (x) = (__typeof__(*(ptr)))__gu_val; \
22001 __gu_err; \
22002 })
22003
22004 /* FIXME: this hack is definitely wrong -AK */
22005 struct __large_struct { unsigned long buf[100]; };
22006 -#define __m(x) (*(struct __large_struct __user *)(x))
22007 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22008 +#define ____m(x) \
22009 +({ \
22010 + unsigned long ____x = (unsigned long)(x); \
22011 + if (____x < pax_user_shadow_base) \
22012 + ____x += pax_user_shadow_base; \
22013 + (typeof(x))____x; \
22014 +})
22015 +#else
22016 +#define ____m(x) (x)
22017 +#endif
22018 +#define __m(x) (*(struct __large_struct __user *)____m(x))
22019
22020 /*
22021 * Tell gcc we read from memory instead of writing: this is because
22022 @@ -423,8 +486,10 @@ struct __large_struct { unsigned long buf[100]; };
22023 * aliasing issues.
22024 */
22025 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
22026 +do { \
22027 + pax_open_userland(); \
22028 asm volatile(ASM_STAC "\n" \
22029 - "1: mov"itype" %"rtype"1,%2\n" \
22030 + "1: "__copyuser_seg"mov"itype" %"rtype"1,%2\n"\
22031 "2: " ASM_CLAC "\n" \
22032 ".section .fixup,\"ax\"\n" \
22033 "3: mov %3,%0\n" \
22034 @@ -432,10 +497,12 @@ struct __large_struct { unsigned long buf[100]; };
22035 ".previous\n" \
22036 _ASM_EXTABLE(1b, 3b) \
22037 : "=r"(err) \
22038 - : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
22039 + : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err));\
22040 + pax_close_userland(); \
22041 +} while (0)
22042
22043 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
22044 - asm volatile("1: mov"itype" %"rtype"0,%1\n" \
22045 + asm volatile("1: "__copyuser_seg"mov"itype" %"rtype"0,%1\n"\
22046 "2:\n" \
22047 _ASM_EXTABLE_EX(1b, 2b) \
22048 : : ltype(x), "m" (__m(addr)))
22049 @@ -445,11 +512,13 @@ struct __large_struct { unsigned long buf[100]; };
22050 */
22051 #define uaccess_try do { \
22052 current_thread_info()->uaccess_err = 0; \
22053 + pax_open_userland(); \
22054 stac(); \
22055 barrier();
22056
22057 #define uaccess_catch(err) \
22058 clac(); \
22059 + pax_close_userland(); \
22060 (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
22061 } while (0)
22062
22063 @@ -475,8 +544,12 @@ struct __large_struct { unsigned long buf[100]; };
22064 * On error, the variable @x is set to zero.
22065 */
22066
22067 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22068 +#define __get_user(x, ptr) get_user((x), (ptr))
22069 +#else
22070 #define __get_user(x, ptr) \
22071 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
22072 +#endif
22073
22074 /**
22075 * __put_user: - Write a simple value into user space, with less checking.
22076 @@ -499,8 +572,12 @@ struct __large_struct { unsigned long buf[100]; };
22077 * Returns zero on success, or -EFAULT on error.
22078 */
22079
22080 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22081 +#define __put_user(x, ptr) put_user((x), (ptr))
22082 +#else
22083 #define __put_user(x, ptr) \
22084 __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
22085 +#endif
22086
22087 #define __get_user_unaligned __get_user
22088 #define __put_user_unaligned __put_user
22089 @@ -518,7 +595,7 @@ struct __large_struct { unsigned long buf[100]; };
22090 #define get_user_ex(x, ptr) do { \
22091 unsigned long __gue_val; \
22092 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
22093 - (x) = (__force __typeof__(*(ptr)))__gue_val; \
22094 + (x) = (__typeof__(*(ptr)))__gue_val; \
22095 } while (0)
22096
22097 #define put_user_try uaccess_try
22098 @@ -536,7 +613,7 @@ extern __must_check long strlen_user(const char __user *str);
22099 extern __must_check long strnlen_user(const char __user *str, long n);
22100
22101 unsigned long __must_check clear_user(void __user *mem, unsigned long len);
22102 -unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
22103 +unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
22104
22105 extern void __cmpxchg_wrong_size(void)
22106 __compiletime_error("Bad argument size for cmpxchg");
22107 @@ -544,21 +621,22 @@ extern void __cmpxchg_wrong_size(void)
22108 #define __user_atomic_cmpxchg_inatomic(uval, ptr, old, new, size) \
22109 ({ \
22110 int __ret = 0; \
22111 - __typeof__(ptr) __uval = (uval); \
22112 - __typeof__(*(ptr)) __old = (old); \
22113 - __typeof__(*(ptr)) __new = (new); \
22114 + __typeof__(uval) __uval = (uval); \
22115 + __typeof__(*(uval)) __old = (old); \
22116 + __typeof__(*(uval)) __new = (new); \
22117 + pax_open_userland(); \
22118 switch (size) { \
22119 case 1: \
22120 { \
22121 asm volatile("\t" ASM_STAC "\n" \
22122 - "1:\t" LOCK_PREFIX "cmpxchgb %4, %2\n" \
22123 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgb %4, %2\n"\
22124 "2:\t" ASM_CLAC "\n" \
22125 "\t.section .fixup, \"ax\"\n" \
22126 "3:\tmov %3, %0\n" \
22127 "\tjmp 2b\n" \
22128 "\t.previous\n" \
22129 _ASM_EXTABLE(1b, 3b) \
22130 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22131 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22132 : "i" (-EFAULT), "q" (__new), "1" (__old) \
22133 : "memory" \
22134 ); \
22135 @@ -567,14 +645,14 @@ extern void __cmpxchg_wrong_size(void)
22136 case 2: \
22137 { \
22138 asm volatile("\t" ASM_STAC "\n" \
22139 - "1:\t" LOCK_PREFIX "cmpxchgw %4, %2\n" \
22140 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgw %4, %2\n"\
22141 "2:\t" ASM_CLAC "\n" \
22142 "\t.section .fixup, \"ax\"\n" \
22143 "3:\tmov %3, %0\n" \
22144 "\tjmp 2b\n" \
22145 "\t.previous\n" \
22146 _ASM_EXTABLE(1b, 3b) \
22147 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22148 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22149 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22150 : "memory" \
22151 ); \
22152 @@ -583,14 +661,14 @@ extern void __cmpxchg_wrong_size(void)
22153 case 4: \
22154 { \
22155 asm volatile("\t" ASM_STAC "\n" \
22156 - "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" \
22157 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"\
22158 "2:\t" ASM_CLAC "\n" \
22159 "\t.section .fixup, \"ax\"\n" \
22160 "3:\tmov %3, %0\n" \
22161 "\tjmp 2b\n" \
22162 "\t.previous\n" \
22163 _ASM_EXTABLE(1b, 3b) \
22164 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22165 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22166 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22167 : "memory" \
22168 ); \
22169 @@ -602,14 +680,14 @@ extern void __cmpxchg_wrong_size(void)
22170 __cmpxchg_wrong_size(); \
22171 \
22172 asm volatile("\t" ASM_STAC "\n" \
22173 - "1:\t" LOCK_PREFIX "cmpxchgq %4, %2\n" \
22174 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgq %4, %2\n"\
22175 "2:\t" ASM_CLAC "\n" \
22176 "\t.section .fixup, \"ax\"\n" \
22177 "3:\tmov %3, %0\n" \
22178 "\tjmp 2b\n" \
22179 "\t.previous\n" \
22180 _ASM_EXTABLE(1b, 3b) \
22181 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22182 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22183 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22184 : "memory" \
22185 ); \
22186 @@ -618,6 +696,7 @@ extern void __cmpxchg_wrong_size(void)
22187 default: \
22188 __cmpxchg_wrong_size(); \
22189 } \
22190 + pax_close_userland(); \
22191 *__uval = __old; \
22192 __ret; \
22193 })
22194 @@ -641,17 +720,6 @@ extern struct movsl_mask {
22195
22196 #define ARCH_HAS_NOCACHE_UACCESS 1
22197
22198 -#ifdef CONFIG_X86_32
22199 -# include <asm/uaccess_32.h>
22200 -#else
22201 -# include <asm/uaccess_64.h>
22202 -#endif
22203 -
22204 -unsigned long __must_check _copy_from_user(void *to, const void __user *from,
22205 - unsigned n);
22206 -unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22207 - unsigned n);
22208 -
22209 #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
22210 # define copy_user_diag __compiletime_error
22211 #else
22212 @@ -661,7 +729,7 @@ unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22213 extern void copy_user_diag("copy_from_user() buffer size is too small")
22214 copy_from_user_overflow(void);
22215 extern void copy_user_diag("copy_to_user() buffer size is too small")
22216 -copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22217 +copy_to_user_overflow(void);
22218
22219 #undef copy_user_diag
22220
22221 @@ -674,7 +742,7 @@ __copy_from_user_overflow(void) __asm__("copy_from_user_overflow");
22222
22223 extern void
22224 __compiletime_warning("copy_to_user() buffer size is not provably correct")
22225 -__copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22226 +__copy_to_user_overflow(void) __asm__("copy_to_user_overflow");
22227 #define __copy_to_user_overflow(size, count) __copy_to_user_overflow()
22228
22229 #else
22230 @@ -689,10 +757,16 @@ __copy_from_user_overflow(int size, unsigned long count)
22231
22232 #endif
22233
22234 +#ifdef CONFIG_X86_32
22235 +# include <asm/uaccess_32.h>
22236 +#else
22237 +# include <asm/uaccess_64.h>
22238 +#endif
22239 +
22240 static inline unsigned long __must_check
22241 copy_from_user(void *to, const void __user *from, unsigned long n)
22242 {
22243 - int sz = __compiletime_object_size(to);
22244 + size_t sz = __compiletime_object_size(to);
22245
22246 might_fault();
22247
22248 @@ -714,12 +788,15 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22249 * case, and do only runtime checking for non-constant sizes.
22250 */
22251
22252 - if (likely(sz < 0 || sz >= n))
22253 - n = _copy_from_user(to, from, n);
22254 - else if(__builtin_constant_p(n))
22255 - copy_from_user_overflow();
22256 - else
22257 - __copy_from_user_overflow(sz, n);
22258 + if (likely(sz != (size_t)-1 && sz < n)) {
22259 + if(__builtin_constant_p(n))
22260 + copy_from_user_overflow();
22261 + else
22262 + __copy_from_user_overflow(sz, n);
22263 + } else if (access_ok(VERIFY_READ, from, n))
22264 + n = __copy_from_user(to, from, n);
22265 + else if ((long)n > 0)
22266 + memset(to, 0, n);
22267
22268 return n;
22269 }
22270 @@ -727,17 +804,18 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22271 static inline unsigned long __must_check
22272 copy_to_user(void __user *to, const void *from, unsigned long n)
22273 {
22274 - int sz = __compiletime_object_size(from);
22275 + size_t sz = __compiletime_object_size(from);
22276
22277 might_fault();
22278
22279 /* See the comment in copy_from_user() above. */
22280 - if (likely(sz < 0 || sz >= n))
22281 - n = _copy_to_user(to, from, n);
22282 - else if(__builtin_constant_p(n))
22283 - copy_to_user_overflow();
22284 - else
22285 - __copy_to_user_overflow(sz, n);
22286 + if (likely(sz != (size_t)-1 && sz < n)) {
22287 + if(__builtin_constant_p(n))
22288 + copy_to_user_overflow();
22289 + else
22290 + __copy_to_user_overflow(sz, n);
22291 + } else if (access_ok(VERIFY_WRITE, to, n))
22292 + n = __copy_to_user(to, from, n);
22293
22294 return n;
22295 }
22296 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
22297 index f5dcb52..da2c15b 100644
22298 --- a/arch/x86/include/asm/uaccess_32.h
22299 +++ b/arch/x86/include/asm/uaccess_32.h
22300 @@ -40,9 +40,14 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
22301 * anything, so this is accurate.
22302 */
22303
22304 -static __always_inline unsigned long __must_check
22305 +static __always_inline __size_overflow(3) unsigned long __must_check
22306 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
22307 {
22308 + if ((long)n < 0)
22309 + return n;
22310 +
22311 + check_object_size(from, n, true);
22312 +
22313 if (__builtin_constant_p(n)) {
22314 unsigned long ret;
22315
22316 @@ -87,12 +92,16 @@ static __always_inline unsigned long __must_check
22317 __copy_to_user(void __user *to, const void *from, unsigned long n)
22318 {
22319 might_fault();
22320 +
22321 return __copy_to_user_inatomic(to, from, n);
22322 }
22323
22324 -static __always_inline unsigned long
22325 +static __always_inline __size_overflow(3) unsigned long
22326 __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n)
22327 {
22328 + if ((long)n < 0)
22329 + return n;
22330 +
22331 /* Avoid zeroing the tail if the copy fails..
22332 * If 'n' is constant and 1, 2, or 4, we do still zero on a failure,
22333 * but as the zeroing behaviour is only significant when n is not
22334 @@ -143,6 +152,12 @@ static __always_inline unsigned long
22335 __copy_from_user(void *to, const void __user *from, unsigned long n)
22336 {
22337 might_fault();
22338 +
22339 + if ((long)n < 0)
22340 + return n;
22341 +
22342 + check_object_size(to, n, false);
22343 +
22344 if (__builtin_constant_p(n)) {
22345 unsigned long ret;
22346
22347 @@ -165,6 +180,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
22348 const void __user *from, unsigned long n)
22349 {
22350 might_fault();
22351 +
22352 + if ((long)n < 0)
22353 + return n;
22354 +
22355 if (__builtin_constant_p(n)) {
22356 unsigned long ret;
22357
22358 @@ -187,7 +206,10 @@ static __always_inline unsigned long
22359 __copy_from_user_inatomic_nocache(void *to, const void __user *from,
22360 unsigned long n)
22361 {
22362 - return __copy_from_user_ll_nocache_nozero(to, from, n);
22363 + if ((long)n < 0)
22364 + return n;
22365 +
22366 + return __copy_from_user_ll_nocache_nozero(to, from, n);
22367 }
22368
22369 #endif /* _ASM_X86_UACCESS_32_H */
22370 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
22371 index f2f9b39..2ae1bf8 100644
22372 --- a/arch/x86/include/asm/uaccess_64.h
22373 +++ b/arch/x86/include/asm/uaccess_64.h
22374 @@ -10,6 +10,9 @@
22375 #include <asm/alternative.h>
22376 #include <asm/cpufeature.h>
22377 #include <asm/page.h>
22378 +#include <asm/pgtable.h>
22379 +
22380 +#define set_fs(x) (current_thread_info()->addr_limit = (x))
22381
22382 /*
22383 * Copy To/From Userspace
22384 @@ -23,8 +26,8 @@ copy_user_generic_string(void *to, const void *from, unsigned len);
22385 __must_check unsigned long
22386 copy_user_generic_unrolled(void *to, const void *from, unsigned len);
22387
22388 -static __always_inline __must_check unsigned long
22389 -copy_user_generic(void *to, const void *from, unsigned len)
22390 +static __always_inline __must_check __size_overflow(3) unsigned long
22391 +copy_user_generic(void *to, const void *from, unsigned long len)
22392 {
22393 unsigned ret;
22394
22395 @@ -46,121 +49,170 @@ copy_user_generic(void *to, const void *from, unsigned len)
22396 }
22397
22398 __must_check unsigned long
22399 -copy_in_user(void __user *to, const void __user *from, unsigned len);
22400 +copy_in_user(void __user *to, const void __user *from, unsigned long len);
22401
22402 static __always_inline __must_check
22403 -int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size)
22404 +unsigned long __copy_from_user_nocheck(void *dst, const void __user *src, unsigned long size)
22405 {
22406 - int ret = 0;
22407 + size_t sz = __compiletime_object_size(dst);
22408 + unsigned ret = 0;
22409 +
22410 + if (size > INT_MAX)
22411 + return size;
22412 +
22413 + check_object_size(dst, size, false);
22414 +
22415 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22416 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22417 + return size;
22418 +#endif
22419 +
22420 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22421 + if(__builtin_constant_p(size))
22422 + copy_from_user_overflow();
22423 + else
22424 + __copy_from_user_overflow(sz, size);
22425 + return size;
22426 + }
22427
22428 if (!__builtin_constant_p(size))
22429 - return copy_user_generic(dst, (__force void *)src, size);
22430 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22431 switch (size) {
22432 - case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src,
22433 + case 1:__get_user_asm(*(u8 *)dst, (const u8 __user *)src,
22434 ret, "b", "b", "=q", 1);
22435 return ret;
22436 - case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src,
22437 + case 2:__get_user_asm(*(u16 *)dst, (const u16 __user *)src,
22438 ret, "w", "w", "=r", 2);
22439 return ret;
22440 - case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src,
22441 + case 4:__get_user_asm(*(u32 *)dst, (const u32 __user *)src,
22442 ret, "l", "k", "=r", 4);
22443 return ret;
22444 - case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src,
22445 + case 8:__get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22446 ret, "q", "", "=r", 8);
22447 return ret;
22448 case 10:
22449 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22450 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22451 ret, "q", "", "=r", 10);
22452 if (unlikely(ret))
22453 return ret;
22454 __get_user_asm(*(u16 *)(8 + (char *)dst),
22455 - (u16 __user *)(8 + (char __user *)src),
22456 + (const u16 __user *)(8 + (const char __user *)src),
22457 ret, "w", "w", "=r", 2);
22458 return ret;
22459 case 16:
22460 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22461 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22462 ret, "q", "", "=r", 16);
22463 if (unlikely(ret))
22464 return ret;
22465 __get_user_asm(*(u64 *)(8 + (char *)dst),
22466 - (u64 __user *)(8 + (char __user *)src),
22467 + (const u64 __user *)(8 + (const char __user *)src),
22468 ret, "q", "", "=r", 8);
22469 return ret;
22470 default:
22471 - return copy_user_generic(dst, (__force void *)src, size);
22472 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22473 }
22474 }
22475
22476 static __always_inline __must_check
22477 -int __copy_from_user(void *dst, const void __user *src, unsigned size)
22478 +unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
22479 {
22480 might_fault();
22481 return __copy_from_user_nocheck(dst, src, size);
22482 }
22483
22484 static __always_inline __must_check
22485 -int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size)
22486 +unsigned long __copy_to_user_nocheck(void __user *dst, const void *src, unsigned long size)
22487 {
22488 - int ret = 0;
22489 + size_t sz = __compiletime_object_size(src);
22490 + unsigned ret = 0;
22491 +
22492 + if (size > INT_MAX)
22493 + return size;
22494 +
22495 + check_object_size(src, size, true);
22496 +
22497 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22498 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22499 + return size;
22500 +#endif
22501 +
22502 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22503 + if(__builtin_constant_p(size))
22504 + copy_to_user_overflow();
22505 + else
22506 + __copy_to_user_overflow(sz, size);
22507 + return size;
22508 + }
22509
22510 if (!__builtin_constant_p(size))
22511 - return copy_user_generic((__force void *)dst, src, size);
22512 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22513 switch (size) {
22514 - case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst,
22515 + case 1:__put_user_asm(*(const u8 *)src, (u8 __user *)dst,
22516 ret, "b", "b", "iq", 1);
22517 return ret;
22518 - case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst,
22519 + case 2:__put_user_asm(*(const u16 *)src, (u16 __user *)dst,
22520 ret, "w", "w", "ir", 2);
22521 return ret;
22522 - case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst,
22523 + case 4:__put_user_asm(*(const u32 *)src, (u32 __user *)dst,
22524 ret, "l", "k", "ir", 4);
22525 return ret;
22526 - case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst,
22527 + case 8:__put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22528 ret, "q", "", "er", 8);
22529 return ret;
22530 case 10:
22531 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22532 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22533 ret, "q", "", "er", 10);
22534 if (unlikely(ret))
22535 return ret;
22536 asm("":::"memory");
22537 - __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst,
22538 + __put_user_asm(4[(const u16 *)src], 4 + (u16 __user *)dst,
22539 ret, "w", "w", "ir", 2);
22540 return ret;
22541 case 16:
22542 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22543 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22544 ret, "q", "", "er", 16);
22545 if (unlikely(ret))
22546 return ret;
22547 asm("":::"memory");
22548 - __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst,
22549 + __put_user_asm(1[(const u64 *)src], 1 + (u64 __user *)dst,
22550 ret, "q", "", "er", 8);
22551 return ret;
22552 default:
22553 - return copy_user_generic((__force void *)dst, src, size);
22554 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22555 }
22556 }
22557
22558 static __always_inline __must_check
22559 -int __copy_to_user(void __user *dst, const void *src, unsigned size)
22560 +unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
22561 {
22562 might_fault();
22563 return __copy_to_user_nocheck(dst, src, size);
22564 }
22565
22566 static __always_inline __must_check
22567 -int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22568 +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22569 {
22570 - int ret = 0;
22571 + unsigned ret = 0;
22572
22573 might_fault();
22574 +
22575 + if (size > INT_MAX)
22576 + return size;
22577 +
22578 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22579 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22580 + return size;
22581 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22582 + return size;
22583 +#endif
22584 +
22585 if (!__builtin_constant_p(size))
22586 - return copy_user_generic((__force void *)dst,
22587 - (__force void *)src, size);
22588 + return copy_user_generic((__force_kernel void *)____m(dst),
22589 + (__force_kernel const void *)____m(src), size);
22590 switch (size) {
22591 case 1: {
22592 u8 tmp;
22593 - __get_user_asm(tmp, (u8 __user *)src,
22594 + __get_user_asm(tmp, (const u8 __user *)src,
22595 ret, "b", "b", "=q", 1);
22596 if (likely(!ret))
22597 __put_user_asm(tmp, (u8 __user *)dst,
22598 @@ -169,7 +221,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22599 }
22600 case 2: {
22601 u16 tmp;
22602 - __get_user_asm(tmp, (u16 __user *)src,
22603 + __get_user_asm(tmp, (const u16 __user *)src,
22604 ret, "w", "w", "=r", 2);
22605 if (likely(!ret))
22606 __put_user_asm(tmp, (u16 __user *)dst,
22607 @@ -179,7 +231,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22608
22609 case 4: {
22610 u32 tmp;
22611 - __get_user_asm(tmp, (u32 __user *)src,
22612 + __get_user_asm(tmp, (const u32 __user *)src,
22613 ret, "l", "k", "=r", 4);
22614 if (likely(!ret))
22615 __put_user_asm(tmp, (u32 __user *)dst,
22616 @@ -188,7 +240,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22617 }
22618 case 8: {
22619 u64 tmp;
22620 - __get_user_asm(tmp, (u64 __user *)src,
22621 + __get_user_asm(tmp, (const u64 __user *)src,
22622 ret, "q", "", "=r", 8);
22623 if (likely(!ret))
22624 __put_user_asm(tmp, (u64 __user *)dst,
22625 @@ -196,41 +248,58 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22626 return ret;
22627 }
22628 default:
22629 - return copy_user_generic((__force void *)dst,
22630 - (__force void *)src, size);
22631 + return copy_user_generic((__force_kernel void *)____m(dst),
22632 + (__force_kernel const void *)____m(src), size);
22633 }
22634 }
22635
22636 -static __must_check __always_inline int
22637 -__copy_from_user_inatomic(void *dst, const void __user *src, unsigned size)
22638 +static __must_check __always_inline unsigned long
22639 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
22640 {
22641 return __copy_from_user_nocheck(dst, src, size);
22642 }
22643
22644 -static __must_check __always_inline int
22645 -__copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
22646 +static __must_check __always_inline unsigned long
22647 +__copy_to_user_inatomic(void __user *dst, const void *src, unsigned long size)
22648 {
22649 return __copy_to_user_nocheck(dst, src, size);
22650 }
22651
22652 -extern long __copy_user_nocache(void *dst, const void __user *src,
22653 - unsigned size, int zerorest);
22654 +extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
22655 + unsigned long size, int zerorest);
22656
22657 -static inline int
22658 -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
22659 +static inline unsigned long
22660 +__copy_from_user_nocache(void *dst, const void __user *src, unsigned long size)
22661 {
22662 might_fault();
22663 +
22664 + if (size > INT_MAX)
22665 + return size;
22666 +
22667 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22668 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22669 + return size;
22670 +#endif
22671 +
22672 return __copy_user_nocache(dst, src, size, 1);
22673 }
22674
22675 -static inline int
22676 +static inline unsigned long
22677 __copy_from_user_inatomic_nocache(void *dst, const void __user *src,
22678 - unsigned size)
22679 + unsigned long size)
22680 {
22681 + if (size > INT_MAX)
22682 + return size;
22683 +
22684 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22685 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22686 + return size;
22687 +#endif
22688 +
22689 return __copy_user_nocache(dst, src, size, 0);
22690 }
22691
22692 unsigned long
22693 -copy_user_handle_tail(char *to, char *from, unsigned len);
22694 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len) __size_overflow(3);
22695
22696 #endif /* _ASM_X86_UACCESS_64_H */
22697 diff --git a/arch/x86/include/asm/word-at-a-time.h b/arch/x86/include/asm/word-at-a-time.h
22698 index 5b238981..77fdd78 100644
22699 --- a/arch/x86/include/asm/word-at-a-time.h
22700 +++ b/arch/x86/include/asm/word-at-a-time.h
22701 @@ -11,7 +11,7 @@
22702 * and shift, for example.
22703 */
22704 struct word_at_a_time {
22705 - const unsigned long one_bits, high_bits;
22706 + unsigned long one_bits, high_bits;
22707 };
22708
22709 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
22710 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
22711 index 48d34d2..90671c7 100644
22712 --- a/arch/x86/include/asm/x86_init.h
22713 +++ b/arch/x86/include/asm/x86_init.h
22714 @@ -129,7 +129,7 @@ struct x86_init_ops {
22715 struct x86_init_timers timers;
22716 struct x86_init_iommu iommu;
22717 struct x86_init_pci pci;
22718 -};
22719 +} __no_const;
22720
22721 /**
22722 * struct x86_cpuinit_ops - platform specific cpu hotplug setups
22723 @@ -140,7 +140,7 @@ struct x86_cpuinit_ops {
22724 void (*setup_percpu_clockev)(void);
22725 void (*early_percpu_clock_init)(void);
22726 void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
22727 -};
22728 +} __no_const;
22729
22730 struct timespec;
22731
22732 @@ -168,7 +168,7 @@ struct x86_platform_ops {
22733 void (*save_sched_clock_state)(void);
22734 void (*restore_sched_clock_state)(void);
22735 void (*apic_post_init)(void);
22736 -};
22737 +} __no_const;
22738
22739 struct pci_dev;
22740
22741 @@ -177,12 +177,12 @@ struct x86_msi_ops {
22742 void (*teardown_msi_irq)(unsigned int irq);
22743 void (*teardown_msi_irqs)(struct pci_dev *dev);
22744 void (*restore_msi_irqs)(struct pci_dev *dev);
22745 -};
22746 +} __no_const;
22747
22748 struct x86_io_apic_ops {
22749 unsigned int (*read) (unsigned int apic, unsigned int reg);
22750 void (*disable)(void);
22751 -};
22752 +} __no_const;
22753
22754 extern struct x86_init_ops x86_init;
22755 extern struct x86_cpuinit_ops x86_cpuinit;
22756 diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
22757 index 0679e11..10ba732 100644
22758 --- a/arch/x86/include/asm/xen/page.h
22759 +++ b/arch/x86/include/asm/xen/page.h
22760 @@ -80,7 +80,7 @@ static inline int xen_safe_read_ulong(unsigned long *addr, unsigned long *val)
22761 * - get_phys_to_machine() is to be called by __pfn_to_mfn() only in special
22762 * cases needing an extended handling.
22763 */
22764 -static inline unsigned long __pfn_to_mfn(unsigned long pfn)
22765 +static inline unsigned long __intentional_overflow(-1) __pfn_to_mfn(unsigned long pfn)
22766 {
22767 unsigned long mfn;
22768
22769 diff --git a/arch/x86/include/uapi/asm/e820.h b/arch/x86/include/uapi/asm/e820.h
22770 index 9dafe59..0293c1d 100644
22771 --- a/arch/x86/include/uapi/asm/e820.h
22772 +++ b/arch/x86/include/uapi/asm/e820.h
22773 @@ -69,7 +69,7 @@ struct e820map {
22774 #define ISA_START_ADDRESS 0xa0000
22775 #define ISA_END_ADDRESS 0x100000
22776
22777 -#define BIOS_BEGIN 0x000a0000
22778 +#define BIOS_BEGIN 0x000c0000
22779 #define BIOS_END 0x00100000
22780
22781 #define BIOS_ROM_BASE 0xffe00000
22782 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
22783 index b1b78ff..92eb188 100644
22784 --- a/arch/x86/kernel/Makefile
22785 +++ b/arch/x86/kernel/Makefile
22786 @@ -30,7 +30,7 @@ obj-$(CONFIG_MODIFY_LDT_SYSCALL) += ldt.o
22787 obj-y += setup.o x86_init.o i8259.o irqinit.o jump_label.o
22788 obj-$(CONFIG_IRQ_WORK) += irq_work.o
22789 obj-y += probe_roms.o
22790 -obj-$(CONFIG_X86_32) += i386_ksyms_32.o
22791 +obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
22792 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
22793 obj-$(CONFIG_X86_64) += mcount_64.o
22794 obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
22795 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
22796 index ded848c..b7a508ed 100644
22797 --- a/arch/x86/kernel/acpi/boot.c
22798 +++ b/arch/x86/kernel/acpi/boot.c
22799 @@ -1327,7 +1327,7 @@ static void __init acpi_reduced_hw_init(void)
22800 * If your system is blacklisted here, but you find that acpi=force
22801 * works for you, please contact linux-acpi@vger.kernel.org
22802 */
22803 -static struct dmi_system_id __initdata acpi_dmi_table[] = {
22804 +static const struct dmi_system_id __initconst acpi_dmi_table[] = {
22805 /*
22806 * Boxes that need ACPI disabled
22807 */
22808 @@ -1402,7 +1402,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
22809 };
22810
22811 /* second table for DMI checks that should run after early-quirks */
22812 -static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
22813 +static const struct dmi_system_id __initconst acpi_dmi_table_late[] = {
22814 /*
22815 * HP laptops which use a DSDT reporting as HP/SB400/10000,
22816 * which includes some code which overrides all temperature
22817 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
22818 index d1daead..acd77e2 100644
22819 --- a/arch/x86/kernel/acpi/sleep.c
22820 +++ b/arch/x86/kernel/acpi/sleep.c
22821 @@ -99,8 +99,12 @@ int x86_acpi_suspend_lowlevel(void)
22822 #else /* CONFIG_64BIT */
22823 #ifdef CONFIG_SMP
22824 stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
22825 +
22826 + pax_open_kernel();
22827 early_gdt_descr.address =
22828 (unsigned long)get_cpu_gdt_table(smp_processor_id());
22829 + pax_close_kernel();
22830 +
22831 initial_gs = per_cpu_offset(smp_processor_id());
22832 #endif
22833 initial_code = (unsigned long)wakeup_long64;
22834 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
22835 index 0c26b1b..a766e85 100644
22836 --- a/arch/x86/kernel/acpi/wakeup_32.S
22837 +++ b/arch/x86/kernel/acpi/wakeup_32.S
22838 @@ -31,13 +31,11 @@ wakeup_pmode_return:
22839 # and restore the stack ... but you need gdt for this to work
22840 movl saved_context_esp, %esp
22841
22842 - movl %cs:saved_magic, %eax
22843 - cmpl $0x12345678, %eax
22844 + cmpl $0x12345678, saved_magic
22845 jne bogus_magic
22846
22847 # jump to place where we left off
22848 - movl saved_eip, %eax
22849 - jmp *%eax
22850 + jmp *(saved_eip)
22851
22852 bogus_magic:
22853 jmp bogus_magic
22854 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
22855 index 25f9093..f630040 100644
22856 --- a/arch/x86/kernel/alternative.c
22857 +++ b/arch/x86/kernel/alternative.c
22858 @@ -20,6 +20,7 @@
22859 #include <asm/tlbflush.h>
22860 #include <asm/io.h>
22861 #include <asm/fixmap.h>
22862 +#include <asm/boot.h>
22863
22864 int __read_mostly alternatives_patched;
22865
22866 @@ -261,7 +262,9 @@ static void __init_or_module add_nops(void *insns, unsigned int len)
22867 unsigned int noplen = len;
22868 if (noplen > ASM_NOP_MAX)
22869 noplen = ASM_NOP_MAX;
22870 + pax_open_kernel();
22871 memcpy(insns, ideal_nops[noplen], noplen);
22872 + pax_close_kernel();
22873 insns += noplen;
22874 len -= noplen;
22875 }
22876 @@ -289,6 +292,13 @@ recompute_jump(struct alt_instr *a, u8 *orig_insn, u8 *repl_insn, u8 *insnbuf)
22877 if (a->replacementlen != 5)
22878 return;
22879
22880 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22881 + if (orig_insn < (u8 *)_text || (u8 *)_einittext <= orig_insn)
22882 + orig_insn = (u8 *)ktva_ktla((unsigned long)orig_insn);
22883 + else
22884 + orig_insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22885 +#endif
22886 +
22887 o_dspl = *(s32 *)(insnbuf + 1);
22888
22889 /* next_rip of the replacement JMP */
22890 @@ -364,6 +374,7 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
22891 {
22892 struct alt_instr *a;
22893 u8 *instr, *replacement;
22894 + u8 *vinstr, *vreplacement;
22895 u8 insnbuf[MAX_PATCH_LEN];
22896
22897 DPRINTK("alt table %p -> %p", start, end);
22898 @@ -379,46 +390,71 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
22899 for (a = start; a < end; a++) {
22900 int insnbuf_sz = 0;
22901
22902 - instr = (u8 *)&a->instr_offset + a->instr_offset;
22903 - replacement = (u8 *)&a->repl_offset + a->repl_offset;
22904 + vinstr = instr = (u8 *)&a->instr_offset + a->instr_offset;
22905 +
22906 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22907 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= instr &&
22908 + instr < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
22909 + instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22910 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
22911 + } else if ((u8 *)_text <= instr && instr < (u8 *)_einittext) {
22912 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
22913 + } else {
22914 + instr = (u8 *)ktva_ktla((unsigned long)instr);
22915 + }
22916 +#endif
22917 +
22918 + vreplacement = replacement = (u8 *)&a->repl_offset + a->repl_offset;
22919 +
22920 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22921 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= replacement &&
22922 + replacement < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
22923 + replacement += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22924 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
22925 + } else if ((u8 *)_text <= replacement && replacement < (u8 *)_einittext) {
22926 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
22927 + } else
22928 + replacement = (u8 *)ktva_ktla((unsigned long)replacement);
22929 +#endif
22930 +
22931 BUG_ON(a->instrlen > sizeof(insnbuf));
22932 BUG_ON(a->cpuid >= (NCAPINTS + NBUGINTS) * 32);
22933 if (!boot_cpu_has(a->cpuid)) {
22934 if (a->padlen > 1)
22935 - optimize_nops(a, instr);
22936 + optimize_nops(a, vinstr);
22937
22938 continue;
22939 }
22940
22941 - DPRINTK("feat: %d*32+%d, old: (%p, len: %d), repl: (%p, len: %d), pad: %d",
22942 + DPRINTK("feat: %d*32+%d, old: (%p/%p, len: %d), repl: (%p, len: %d), pad: %d",
22943 a->cpuid >> 5,
22944 a->cpuid & 0x1f,
22945 - instr, a->instrlen,
22946 - replacement, a->replacementlen, a->padlen);
22947 + instr, vinstr, a->instrlen,
22948 + vreplacement, a->replacementlen, a->padlen);
22949
22950 - DUMP_BYTES(instr, a->instrlen, "%p: old_insn: ", instr);
22951 - DUMP_BYTES(replacement, a->replacementlen, "%p: rpl_insn: ", replacement);
22952 + DUMP_BYTES(vinstr, a->instrlen, "%p: old_insn: ", vinstr);
22953 + DUMP_BYTES(vreplacement, a->replacementlen, "%p: rpl_insn: ", vreplacement);
22954
22955 - memcpy(insnbuf, replacement, a->replacementlen);
22956 + memcpy(insnbuf, vreplacement, a->replacementlen);
22957 insnbuf_sz = a->replacementlen;
22958
22959 /* 0xe8 is a relative jump; fix the offset. */
22960 if (*insnbuf == 0xe8 && a->replacementlen == 5) {
22961 - *(s32 *)(insnbuf + 1) += replacement - instr;
22962 + *(s32 *)(insnbuf + 1) += vreplacement - instr;
22963 DPRINTK("Fix CALL offset: 0x%x, CALL 0x%lx",
22964 *(s32 *)(insnbuf + 1),
22965 - (unsigned long)instr + *(s32 *)(insnbuf + 1) + 5);
22966 + (unsigned long)vinstr + *(s32 *)(insnbuf + 1) + 5);
22967 }
22968
22969 - if (a->replacementlen && is_jmp(replacement[0]))
22970 - recompute_jump(a, instr, replacement, insnbuf);
22971 + if (a->replacementlen && is_jmp(vreplacement[0]))
22972 + recompute_jump(a, instr, vreplacement, insnbuf);
22973
22974 if (a->instrlen > a->replacementlen) {
22975 add_nops(insnbuf + a->replacementlen,
22976 a->instrlen - a->replacementlen);
22977 insnbuf_sz += a->instrlen - a->replacementlen;
22978 }
22979 - DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", instr);
22980 + DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", vinstr);
22981
22982 text_poke_early(instr, insnbuf, insnbuf_sz);
22983 }
22984 @@ -434,10 +470,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
22985 for (poff = start; poff < end; poff++) {
22986 u8 *ptr = (u8 *)poff + *poff;
22987
22988 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22989 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22990 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
22991 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22992 +#endif
22993 +
22994 if (!*poff || ptr < text || ptr >= text_end)
22995 continue;
22996 /* turn DS segment override prefix into lock prefix */
22997 - if (*ptr == 0x3e)
22998 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0x3e)
22999 text_poke(ptr, ((unsigned char []){0xf0}), 1);
23000 }
23001 mutex_unlock(&text_mutex);
23002 @@ -452,10 +494,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
23003 for (poff = start; poff < end; poff++) {
23004 u8 *ptr = (u8 *)poff + *poff;
23005
23006 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23007 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23008 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
23009 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23010 +#endif
23011 +
23012 if (!*poff || ptr < text || ptr >= text_end)
23013 continue;
23014 /* turn lock prefix into DS segment override prefix */
23015 - if (*ptr == 0xf0)
23016 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0xf0)
23017 text_poke(ptr, ((unsigned char []){0x3E}), 1);
23018 }
23019 mutex_unlock(&text_mutex);
23020 @@ -592,7 +640,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
23021
23022 BUG_ON(p->len > MAX_PATCH_LEN);
23023 /* prep the buffer with the original instructions */
23024 - memcpy(insnbuf, p->instr, p->len);
23025 + memcpy(insnbuf, (const void *)ktla_ktva((unsigned long)p->instr), p->len);
23026 used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
23027 (unsigned long)p->instr, p->len);
23028
23029 @@ -639,7 +687,7 @@ void __init alternative_instructions(void)
23030 if (!uniproc_patched || num_possible_cpus() == 1)
23031 free_init_pages("SMP alternatives",
23032 (unsigned long)__smp_locks,
23033 - (unsigned long)__smp_locks_end);
23034 + PAGE_ALIGN((unsigned long)__smp_locks_end));
23035 #endif
23036
23037 apply_paravirt(__parainstructions, __parainstructions_end);
23038 @@ -660,13 +708,17 @@ void __init alternative_instructions(void)
23039 * instructions. And on the local CPU you need to be protected again NMI or MCE
23040 * handlers seeing an inconsistent instruction while you patch.
23041 */
23042 -void *__init_or_module text_poke_early(void *addr, const void *opcode,
23043 +void *__kprobes text_poke_early(void *addr, const void *opcode,
23044 size_t len)
23045 {
23046 unsigned long flags;
23047 local_irq_save(flags);
23048 - memcpy(addr, opcode, len);
23049 +
23050 + pax_open_kernel();
23051 + memcpy((void *)ktla_ktva((unsigned long)addr), opcode, len);
23052 sync_core();
23053 + pax_close_kernel();
23054 +
23055 local_irq_restore(flags);
23056 /* Could also do a CLFLUSH here to speed up CPU recovery; but
23057 that causes hangs on some VIA CPUs. */
23058 @@ -688,36 +740,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
23059 */
23060 void *text_poke(void *addr, const void *opcode, size_t len)
23061 {
23062 - unsigned long flags;
23063 - char *vaddr;
23064 + unsigned char *vaddr = (void *)ktla_ktva((unsigned long)addr);
23065 struct page *pages[2];
23066 - int i;
23067 + size_t i;
23068
23069 if (!core_kernel_text((unsigned long)addr)) {
23070 - pages[0] = vmalloc_to_page(addr);
23071 - pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
23072 + pages[0] = vmalloc_to_page(vaddr);
23073 + pages[1] = vmalloc_to_page(vaddr + PAGE_SIZE);
23074 } else {
23075 - pages[0] = virt_to_page(addr);
23076 + pages[0] = virt_to_page(vaddr);
23077 WARN_ON(!PageReserved(pages[0]));
23078 - pages[1] = virt_to_page(addr + PAGE_SIZE);
23079 + pages[1] = virt_to_page(vaddr + PAGE_SIZE);
23080 }
23081 BUG_ON(!pages[0]);
23082 - local_irq_save(flags);
23083 - set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0]));
23084 - if (pages[1])
23085 - set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1]));
23086 - vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0);
23087 - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
23088 - clear_fixmap(FIX_TEXT_POKE0);
23089 - if (pages[1])
23090 - clear_fixmap(FIX_TEXT_POKE1);
23091 - local_flush_tlb();
23092 - sync_core();
23093 - /* Could also do a CLFLUSH here to speed up CPU recovery; but
23094 - that causes hangs on some VIA CPUs. */
23095 + text_poke_early(addr, opcode, len);
23096 for (i = 0; i < len; i++)
23097 - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]);
23098 - local_irq_restore(flags);
23099 + BUG_ON((vaddr)[i] != ((const unsigned char *)opcode)[i]);
23100 return addr;
23101 }
23102
23103 @@ -771,7 +809,7 @@ int poke_int3_handler(struct pt_regs *regs)
23104 */
23105 void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
23106 {
23107 - unsigned char int3 = 0xcc;
23108 + const unsigned char int3 = 0xcc;
23109
23110 bp_int3_handler = handler;
23111 bp_int3_addr = (u8 *)addr + sizeof(int3);
23112 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
23113 index 24e94ce..7bd6977 100644
23114 --- a/arch/x86/kernel/apic/apic.c
23115 +++ b/arch/x86/kernel/apic/apic.c
23116 @@ -171,7 +171,7 @@ int first_system_vector = FIRST_SYSTEM_VECTOR;
23117 /*
23118 * Debug level, exported for io_apic.c
23119 */
23120 -unsigned int apic_verbosity;
23121 +int apic_verbosity;
23122
23123 int pic_mode;
23124
23125 @@ -1868,7 +1868,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
23126 apic_write(APIC_ESR, 0);
23127 v = apic_read(APIC_ESR);
23128 ack_APIC_irq();
23129 - atomic_inc(&irq_err_count);
23130 + atomic_inc_unchecked(&irq_err_count);
23131
23132 apic_printk(APIC_DEBUG, KERN_DEBUG "APIC error on CPU%d: %02x",
23133 smp_processor_id(), v);
23134 diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
23135 index f92ab36..1884323 100644
23136 --- a/arch/x86/kernel/apic/apic_flat_64.c
23137 +++ b/arch/x86/kernel/apic/apic_flat_64.c
23138 @@ -25,7 +25,7 @@
23139 static struct apic apic_physflat;
23140 static struct apic apic_flat;
23141
23142 -struct apic __read_mostly *apic = &apic_flat;
23143 +struct apic *apic __read_only = &apic_flat;
23144 EXPORT_SYMBOL_GPL(apic);
23145
23146 static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
23147 @@ -154,7 +154,7 @@ static int flat_probe(void)
23148 return 1;
23149 }
23150
23151 -static struct apic apic_flat = {
23152 +static struct apic apic_flat __read_only = {
23153 .name = "flat",
23154 .probe = flat_probe,
23155 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
23156 @@ -259,7 +259,7 @@ static int physflat_probe(void)
23157 return 0;
23158 }
23159
23160 -static struct apic apic_physflat = {
23161 +static struct apic apic_physflat __read_only = {
23162
23163 .name = "physical flat",
23164 .probe = physflat_probe,
23165 diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c
23166 index 0d96749..ce6b722 100644
23167 --- a/arch/x86/kernel/apic/apic_noop.c
23168 +++ b/arch/x86/kernel/apic/apic_noop.c
23169 @@ -108,7 +108,7 @@ static void noop_apic_write(u32 reg, u32 v)
23170 WARN_ON_ONCE(cpu_has_apic && !disable_apic);
23171 }
23172
23173 -struct apic apic_noop = {
23174 +struct apic apic_noop __read_only = {
23175 .name = "noop",
23176 .probe = noop_probe,
23177 .acpi_madt_oem_check = NULL,
23178 diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
23179 index 971cf88..a8e01ae 100644
23180 --- a/arch/x86/kernel/apic/bigsmp_32.c
23181 +++ b/arch/x86/kernel/apic/bigsmp_32.c
23182 @@ -147,7 +147,7 @@ static int probe_bigsmp(void)
23183 return dmi_bigsmp;
23184 }
23185
23186 -static struct apic apic_bigsmp = {
23187 +static struct apic apic_bigsmp __read_only = {
23188
23189 .name = "bigsmp",
23190 .probe = probe_bigsmp,
23191 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
23192 index 4f28215..e0b9a5d 100644
23193 --- a/arch/x86/kernel/apic/io_apic.c
23194 +++ b/arch/x86/kernel/apic/io_apic.c
23195 @@ -1682,7 +1682,7 @@ static unsigned int startup_ioapic_irq(struct irq_data *data)
23196 return was_pending;
23197 }
23198
23199 -atomic_t irq_mis_count;
23200 +atomic_unchecked_t irq_mis_count;
23201
23202 #ifdef CONFIG_GENERIC_PENDING_IRQ
23203 static bool io_apic_level_ack_pending(struct mp_chip_data *data)
23204 @@ -1821,7 +1821,7 @@ static void ioapic_ack_level(struct irq_data *irq_data)
23205 * at the cpu.
23206 */
23207 if (!(v & (1 << (i & 0x1f)))) {
23208 - atomic_inc(&irq_mis_count);
23209 + atomic_inc_unchecked(&irq_mis_count);
23210 eoi_ioapic_pin(cfg->vector, irq_data->chip_data);
23211 }
23212
23213 @@ -1867,7 +1867,7 @@ static int ioapic_set_affinity(struct irq_data *irq_data,
23214 return ret;
23215 }
23216
23217 -static struct irq_chip ioapic_chip __read_mostly = {
23218 +static struct irq_chip ioapic_chip = {
23219 .name = "IO-APIC",
23220 .irq_startup = startup_ioapic_irq,
23221 .irq_mask = mask_ioapic_irq,
23222 @@ -1936,7 +1936,7 @@ static void ack_lapic_irq(struct irq_data *data)
23223 ack_APIC_irq();
23224 }
23225
23226 -static struct irq_chip lapic_chip __read_mostly = {
23227 +static struct irq_chip lapic_chip = {
23228 .name = "local-APIC",
23229 .irq_mask = mask_lapic_irq,
23230 .irq_unmask = unmask_lapic_irq,
23231 diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
23232 index 5f1feb6..199d454 100644
23233 --- a/arch/x86/kernel/apic/msi.c
23234 +++ b/arch/x86/kernel/apic/msi.c
23235 @@ -267,7 +267,7 @@ static void hpet_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
23236 hpet_msi_write(irq_data_get_irq_handler_data(data), msg);
23237 }
23238
23239 -static struct irq_chip hpet_msi_controller = {
23240 +static irq_chip_no_const hpet_msi_controller __read_only = {
23241 .name = "HPET-MSI",
23242 .irq_unmask = hpet_msi_unmask,
23243 .irq_mask = hpet_msi_mask,
23244 diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
23245 index 7694ae6..5abb08e 100644
23246 --- a/arch/x86/kernel/apic/probe_32.c
23247 +++ b/arch/x86/kernel/apic/probe_32.c
23248 @@ -72,7 +72,7 @@ static int probe_default(void)
23249 return 1;
23250 }
23251
23252 -static struct apic apic_default = {
23253 +static struct apic apic_default __read_only = {
23254
23255 .name = "default",
23256 .probe = probe_default,
23257 @@ -126,7 +126,7 @@ static struct apic apic_default = {
23258
23259 apic_driver(apic_default);
23260
23261 -struct apic *apic = &apic_default;
23262 +struct apic *apic __read_only = &apic_default;
23263 EXPORT_SYMBOL_GPL(apic);
23264
23265 static int cmdline_apic __initdata;
23266 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
23267 index 861bc59..a721835 100644
23268 --- a/arch/x86/kernel/apic/vector.c
23269 +++ b/arch/x86/kernel/apic/vector.c
23270 @@ -36,6 +36,7 @@ static struct irq_chip lapic_controller;
23271 static struct apic_chip_data *legacy_irq_data[NR_IRQS_LEGACY];
23272 #endif
23273
23274 +void lock_vector_lock(void) __acquires(&vector_lock);
23275 void lock_vector_lock(void)
23276 {
23277 /* Used to the online set of cpus does not change
23278 @@ -44,6 +45,7 @@ void lock_vector_lock(void)
23279 raw_spin_lock(&vector_lock);
23280 }
23281
23282 +void unlock_vector_lock(void) __releases(&vector_lock);
23283 void unlock_vector_lock(void)
23284 {
23285 raw_spin_unlock(&vector_lock);
23286 diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
23287 index cc8311c..d72f027 100644
23288 --- a/arch/x86/kernel/apic/x2apic_cluster.c
23289 +++ b/arch/x86/kernel/apic/x2apic_cluster.c
23290 @@ -234,7 +234,7 @@ static void cluster_vector_allocation_domain(int cpu, struct cpumask *retmask,
23291 cpumask_and(retmask, mask, per_cpu(cpus_in_cluster, cpu));
23292 }
23293
23294 -static struct apic apic_x2apic_cluster = {
23295 +static struct apic apic_x2apic_cluster __read_only = {
23296
23297 .name = "cluster x2apic",
23298 .probe = x2apic_cluster_probe,
23299 diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
23300 index 662e915..e721634 100644
23301 --- a/arch/x86/kernel/apic/x2apic_phys.c
23302 +++ b/arch/x86/kernel/apic/x2apic_phys.c
23303 @@ -90,7 +90,7 @@ static int x2apic_phys_probe(void)
23304 return apic == &apic_x2apic_phys;
23305 }
23306
23307 -static struct apic apic_x2apic_phys = {
23308 +static struct apic apic_x2apic_phys __read_only = {
23309
23310 .name = "physical x2apic",
23311 .probe = x2apic_phys_probe,
23312 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
23313 index 4a13946..067ed8c 100644
23314 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
23315 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
23316 @@ -374,7 +374,7 @@ static int uv_probe(void)
23317 return apic == &apic_x2apic_uv_x;
23318 }
23319
23320 -static struct apic __refdata apic_x2apic_uv_x = {
23321 +static struct apic apic_x2apic_uv_x __read_only = {
23322
23323 .name = "UV large system",
23324 .probe = uv_probe,
23325 diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
23326 index 052c9c3..bc22ccdba 100644
23327 --- a/arch/x86/kernel/apm_32.c
23328 +++ b/arch/x86/kernel/apm_32.c
23329 @@ -432,7 +432,7 @@ static DEFINE_MUTEX(apm_mutex);
23330 * This is for buggy BIOS's that refer to (real mode) segment 0x40
23331 * even though they are called in protected mode.
23332 */
23333 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
23334 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
23335 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
23336
23337 static const char driver_version[] = "1.16ac"; /* no spaces */
23338 @@ -610,7 +610,10 @@ static long __apm_bios_call(void *_call)
23339 BUG_ON(cpu != 0);
23340 gdt = get_cpu_gdt_table(cpu);
23341 save_desc_40 = gdt[0x40 / 8];
23342 +
23343 + pax_open_kernel();
23344 gdt[0x40 / 8] = bad_bios_desc;
23345 + pax_close_kernel();
23346
23347 apm_irq_save(flags);
23348 APM_DO_SAVE_SEGS;
23349 @@ -619,7 +622,11 @@ static long __apm_bios_call(void *_call)
23350 &call->esi);
23351 APM_DO_RESTORE_SEGS;
23352 apm_irq_restore(flags);
23353 +
23354 + pax_open_kernel();
23355 gdt[0x40 / 8] = save_desc_40;
23356 + pax_close_kernel();
23357 +
23358 put_cpu();
23359
23360 return call->eax & 0xff;
23361 @@ -686,7 +693,10 @@ static long __apm_bios_call_simple(void *_call)
23362 BUG_ON(cpu != 0);
23363 gdt = get_cpu_gdt_table(cpu);
23364 save_desc_40 = gdt[0x40 / 8];
23365 +
23366 + pax_open_kernel();
23367 gdt[0x40 / 8] = bad_bios_desc;
23368 + pax_close_kernel();
23369
23370 apm_irq_save(flags);
23371 APM_DO_SAVE_SEGS;
23372 @@ -694,7 +704,11 @@ static long __apm_bios_call_simple(void *_call)
23373 &call->eax);
23374 APM_DO_RESTORE_SEGS;
23375 apm_irq_restore(flags);
23376 +
23377 + pax_open_kernel();
23378 gdt[0x40 / 8] = save_desc_40;
23379 + pax_close_kernel();
23380 +
23381 put_cpu();
23382 return error;
23383 }
23384 @@ -2039,7 +2053,7 @@ static int __init swab_apm_power_in_minutes(const struct dmi_system_id *d)
23385 return 0;
23386 }
23387
23388 -static struct dmi_system_id __initdata apm_dmi_table[] = {
23389 +static const struct dmi_system_id __initconst apm_dmi_table[] = {
23390 {
23391 print_if_true,
23392 KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.",
23393 @@ -2349,12 +2363,15 @@ static int __init apm_init(void)
23394 * code to that CPU.
23395 */
23396 gdt = get_cpu_gdt_table(0);
23397 +
23398 + pax_open_kernel();
23399 set_desc_base(&gdt[APM_CS >> 3],
23400 (unsigned long)__va((unsigned long)apm_info.bios.cseg << 4));
23401 set_desc_base(&gdt[APM_CS_16 >> 3],
23402 (unsigned long)__va((unsigned long)apm_info.bios.cseg_16 << 4));
23403 set_desc_base(&gdt[APM_DS >> 3],
23404 (unsigned long)__va((unsigned long)apm_info.bios.dseg << 4));
23405 + pax_close_kernel();
23406
23407 proc_create("apm", 0, NULL, &apm_file_ops);
23408
23409 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
23410 index 8e3d22a1..37118b6 100644
23411 --- a/arch/x86/kernel/asm-offsets.c
23412 +++ b/arch/x86/kernel/asm-offsets.c
23413 @@ -32,6 +32,8 @@ void common(void) {
23414 OFFSET(TI_flags, thread_info, flags);
23415 OFFSET(TI_status, thread_info, status);
23416 OFFSET(TI_addr_limit, thread_info, addr_limit);
23417 + OFFSET(TI_lowest_stack, thread_info, lowest_stack);
23418 + DEFINE(TI_task_thread_sp0, offsetof(struct task_struct, thread.sp0) - offsetof(struct task_struct, tinfo));
23419
23420 BLANK();
23421 OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
23422 @@ -73,8 +75,26 @@ void common(void) {
23423 #endif
23424 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
23425 OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2);
23426 +
23427 +#ifdef CONFIG_PAX_KERNEXEC
23428 + OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0);
23429 #endif
23430
23431 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23432 + OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3);
23433 + OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3);
23434 +#ifdef CONFIG_X86_64
23435 + OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched);
23436 +#endif
23437 +#endif
23438 +
23439 +#endif
23440 +
23441 + BLANK();
23442 + DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
23443 + DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT);
23444 + DEFINE(THREAD_SIZE_asm, THREAD_SIZE);
23445 +
23446 #ifdef CONFIG_XEN
23447 BLANK();
23448 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
23449 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
23450 index d8f42f9..a46f1fc 100644
23451 --- a/arch/x86/kernel/asm-offsets_64.c
23452 +++ b/arch/x86/kernel/asm-offsets_64.c
23453 @@ -59,6 +59,7 @@ int main(void)
23454 BLANK();
23455 #undef ENTRY
23456
23457 + DEFINE(TSS_size, sizeof(struct tss_struct));
23458 OFFSET(TSS_ist, tss_struct, x86_tss.ist);
23459 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
23460 BLANK();
23461 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
23462 index 4eb065c..40dd012 100644
23463 --- a/arch/x86/kernel/cpu/Makefile
23464 +++ b/arch/x86/kernel/cpu/Makefile
23465 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
23466 CFLAGS_REMOVE_perf_event.o = -pg
23467 endif
23468
23469 -# Make sure load_percpu_segment has no stackprotector
23470 -nostackp := $(call cc-option, -fno-stack-protector)
23471 -CFLAGS_common.o := $(nostackp)
23472 -
23473 obj-y := intel_cacheinfo.o scattered.o topology.o
23474 obj-y += common.o
23475 obj-y += rdrand.o
23476 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
23477 index 4a70fc6..7720ca5 100644
23478 --- a/arch/x86/kernel/cpu/amd.c
23479 +++ b/arch/x86/kernel/cpu/amd.c
23480 @@ -754,7 +754,7 @@ static void init_amd(struct cpuinfo_x86 *c)
23481 static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
23482 {
23483 /* AMD errata T13 (order #21922) */
23484 - if ((c->x86 == 6)) {
23485 + if (c->x86 == 6) {
23486 /* Duron Rev A0 */
23487 if (c->x86_model == 3 && c->x86_mask == 0)
23488 size = 64;
23489 diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c
23490 index 04f0fe5..3c0598c 100644
23491 --- a/arch/x86/kernel/cpu/bugs_64.c
23492 +++ b/arch/x86/kernel/cpu/bugs_64.c
23493 @@ -10,6 +10,7 @@
23494 #include <asm/processor.h>
23495 #include <asm/mtrr.h>
23496 #include <asm/cacheflush.h>
23497 +#include <asm/sections.h>
23498
23499 void __init check_bugs(void)
23500 {
23501 @@ -18,6 +19,7 @@ void __init check_bugs(void)
23502 printk(KERN_INFO "CPU: ");
23503 print_cpu_info(&boot_cpu_data);
23504 #endif
23505 + set_memory_nx((unsigned long)_sinitdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sinitdata) >> PAGE_SHIFT);
23506 alternative_instructions();
23507
23508 /*
23509 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
23510 index 1a292573..f917fff 100644
23511 --- a/arch/x86/kernel/cpu/common.c
23512 +++ b/arch/x86/kernel/cpu/common.c
23513 @@ -92,60 +92,6 @@ static const struct cpu_dev default_cpu = {
23514
23515 static const struct cpu_dev *this_cpu = &default_cpu;
23516
23517 -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
23518 -#ifdef CONFIG_X86_64
23519 - /*
23520 - * We need valid kernel segments for data and code in long mode too
23521 - * IRET will check the segment types kkeil 2000/10/28
23522 - * Also sysret mandates a special GDT layout
23523 - *
23524 - * TLS descriptors are currently at a different place compared to i386.
23525 - * Hopefully nobody expects them at a fixed place (Wine?)
23526 - */
23527 - [GDT_ENTRY_KERNEL32_CS] = GDT_ENTRY_INIT(0xc09b, 0, 0xfffff),
23528 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xa09b, 0, 0xfffff),
23529 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc093, 0, 0xfffff),
23530 - [GDT_ENTRY_DEFAULT_USER32_CS] = GDT_ENTRY_INIT(0xc0fb, 0, 0xfffff),
23531 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f3, 0, 0xfffff),
23532 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xa0fb, 0, 0xfffff),
23533 -#else
23534 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xc09a, 0, 0xfffff),
23535 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23536 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xc0fa, 0, 0xfffff),
23537 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f2, 0, 0xfffff),
23538 - /*
23539 - * Segments used for calling PnP BIOS have byte granularity.
23540 - * They code segments and data segments have fixed 64k limits,
23541 - * the transfer segment sizes are set at run time.
23542 - */
23543 - /* 32-bit code */
23544 - [GDT_ENTRY_PNPBIOS_CS32] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23545 - /* 16-bit code */
23546 - [GDT_ENTRY_PNPBIOS_CS16] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23547 - /* 16-bit data */
23548 - [GDT_ENTRY_PNPBIOS_DS] = GDT_ENTRY_INIT(0x0092, 0, 0xffff),
23549 - /* 16-bit data */
23550 - [GDT_ENTRY_PNPBIOS_TS1] = GDT_ENTRY_INIT(0x0092, 0, 0),
23551 - /* 16-bit data */
23552 - [GDT_ENTRY_PNPBIOS_TS2] = GDT_ENTRY_INIT(0x0092, 0, 0),
23553 - /*
23554 - * The APM segments have byte granularity and their bases
23555 - * are set at run time. All have 64k limits.
23556 - */
23557 - /* 32-bit code */
23558 - [GDT_ENTRY_APMBIOS_BASE] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23559 - /* 16-bit code */
23560 - [GDT_ENTRY_APMBIOS_BASE+1] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23561 - /* data */
23562 - [GDT_ENTRY_APMBIOS_BASE+2] = GDT_ENTRY_INIT(0x4092, 0, 0xffff),
23563 -
23564 - [GDT_ENTRY_ESPFIX_SS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23565 - [GDT_ENTRY_PERCPU] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23566 - GDT_STACK_CANARY_INIT
23567 -#endif
23568 -} };
23569 -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
23570 -
23571 static int __init x86_mpx_setup(char *s)
23572 {
23573 /* require an exact match without trailing characters */
23574 @@ -287,6 +233,109 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
23575 }
23576 }
23577
23578 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23579 +#ifdef CONFIG_X86_64
23580 +static bool uderef_enabled __read_only = true;
23581 +unsigned long pax_user_shadow_base __read_only;
23582 +EXPORT_SYMBOL(pax_user_shadow_base);
23583 +extern char pax_enter_kernel_user[];
23584 +extern char pax_exit_kernel_user[];
23585 +
23586 +static int __init setup_pax_weakuderef(char *str)
23587 +{
23588 + if (uderef_enabled)
23589 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23590 + return 1;
23591 +}
23592 +__setup("pax_weakuderef", setup_pax_weakuderef);
23593 +#endif
23594 +
23595 +static int __init setup_pax_nouderef(char *str)
23596 +{
23597 +#ifdef CONFIG_X86_32
23598 + unsigned int cpu;
23599 + struct desc_struct *gdt;
23600 +
23601 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
23602 + gdt = get_cpu_gdt_table(cpu);
23603 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
23604 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
23605 + gdt[GDT_ENTRY_DEFAULT_USER_CS].limit = 0xf;
23606 + gdt[GDT_ENTRY_DEFAULT_USER_DS].limit = 0xf;
23607 + }
23608 + loadsegment(ds, __KERNEL_DS);
23609 + loadsegment(es, __KERNEL_DS);
23610 + loadsegment(ss, __KERNEL_DS);
23611 +#else
23612 + memcpy(pax_enter_kernel_user, (unsigned char []){0xc3}, 1);
23613 + memcpy(pax_exit_kernel_user, (unsigned char []){0xc3}, 1);
23614 + clone_pgd_mask = ~(pgdval_t)0UL;
23615 + pax_user_shadow_base = 0UL;
23616 + setup_clear_cpu_cap(X86_FEATURE_PCIDUDEREF);
23617 + uderef_enabled = false;
23618 +#endif
23619 +
23620 + return 0;
23621 +}
23622 +early_param("pax_nouderef", setup_pax_nouderef);
23623 +#endif
23624 +
23625 +#ifdef CONFIG_X86_64
23626 +static __init int setup_disable_pcid(char *arg)
23627 +{
23628 + setup_clear_cpu_cap(X86_FEATURE_PCID);
23629 + setup_clear_cpu_cap(X86_FEATURE_INVPCID);
23630 +
23631 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23632 + if (uderef_enabled)
23633 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23634 +#endif
23635 +
23636 + return 1;
23637 +}
23638 +__setup("nopcid", setup_disable_pcid);
23639 +
23640 +static void setup_pcid(struct cpuinfo_x86 *c)
23641 +{
23642 + if (cpu_has(c, X86_FEATURE_PCID)) {
23643 + printk("PAX: PCID detected\n");
23644 + cr4_set_bits(X86_CR4_PCIDE);
23645 + } else
23646 + clear_cpu_cap(c, X86_FEATURE_INVPCID);
23647 +
23648 + if (cpu_has(c, X86_FEATURE_INVPCID))
23649 + printk("PAX: INVPCID detected\n");
23650 +
23651 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23652 + if (!uderef_enabled) {
23653 + printk("PAX: UDEREF disabled\n");
23654 + return;
23655 + }
23656 +
23657 + if (!cpu_has(c, X86_FEATURE_PCID)) {
23658 + pax_open_kernel();
23659 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23660 + pax_close_kernel();
23661 + printk("PAX: slow and weak UDEREF enabled\n");
23662 + return;
23663 + }
23664 +
23665 + set_cpu_cap(c, X86_FEATURE_PCIDUDEREF);
23666 +
23667 + pax_open_kernel();
23668 + clone_pgd_mask = ~(pgdval_t)0UL;
23669 + pax_close_kernel();
23670 + if (pax_user_shadow_base)
23671 + printk("PAX: weak UDEREF enabled\n");
23672 + else {
23673 + set_cpu_cap(c, X86_FEATURE_STRONGUDEREF);
23674 + printk("PAX: strong UDEREF enabled\n");
23675 + }
23676 +#endif
23677 +
23678 +}
23679 +#endif
23680 +
23681 /*
23682 * Some CPU features depend on higher CPUID levels, which may not always
23683 * be available due to CPUID level capping or broken virtualization
23684 @@ -387,7 +436,7 @@ void switch_to_new_gdt(int cpu)
23685 {
23686 struct desc_ptr gdt_descr;
23687
23688 - gdt_descr.address = (long)get_cpu_gdt_table(cpu);
23689 + gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
23690 gdt_descr.size = GDT_SIZE - 1;
23691 load_gdt(&gdt_descr);
23692 /* Reload the per-cpu base */
23693 @@ -918,6 +967,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
23694 setup_smep(c);
23695 setup_smap(c);
23696
23697 +#ifdef CONFIG_X86_32
23698 +#ifdef CONFIG_PAX_PAGEEXEC
23699 + if (!(__supported_pte_mask & _PAGE_NX))
23700 + clear_cpu_cap(c, X86_FEATURE_PSE);
23701 +#endif
23702 +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
23703 + clear_cpu_cap(c, X86_FEATURE_SEP);
23704 +#endif
23705 +#endif
23706 +
23707 +#ifdef CONFIG_X86_64
23708 + setup_pcid(c);
23709 +#endif
23710 +
23711 /*
23712 * The vendor-specific functions might have changed features.
23713 * Now we do "generic changes."
23714 @@ -992,7 +1055,7 @@ void enable_sep_cpu(void)
23715 int cpu;
23716
23717 cpu = get_cpu();
23718 - tss = &per_cpu(cpu_tss, cpu);
23719 + tss = cpu_tss + cpu;
23720
23721 if (!boot_cpu_has(X86_FEATURE_SEP))
23722 goto out;
23723 @@ -1138,10 +1201,12 @@ static __init int setup_disablecpuid(char *arg)
23724 }
23725 __setup("clearcpuid=", setup_disablecpuid);
23726
23727 +DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
23728 +EXPORT_PER_CPU_SYMBOL(current_tinfo);
23729 +
23730 #ifdef CONFIG_X86_64
23731 -struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23732 -struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1,
23733 - (unsigned long) debug_idt_table };
23734 +struct desc_ptr idt_descr __read_only = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23735 +const struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) debug_idt_table };
23736
23737 DEFINE_PER_CPU_FIRST(union irq_stack_union,
23738 irq_stack_union) __aligned(PAGE_SIZE) __visible;
23739 @@ -1253,21 +1318,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
23740 DEFINE_PER_CPU(int, __preempt_count) = INIT_PREEMPT_COUNT;
23741 EXPORT_PER_CPU_SYMBOL(__preempt_count);
23742
23743 +#ifdef CONFIG_CC_STACKPROTECTOR
23744 +DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23745 +#endif
23746 +
23747 +#endif /* CONFIG_X86_64 */
23748 +
23749 /*
23750 * On x86_32, vm86 modifies tss.sp0, so sp0 isn't a reliable way to find
23751 * the top of the kernel stack. Use an extra percpu variable to track the
23752 * top of the kernel stack directly.
23753 */
23754 DEFINE_PER_CPU(unsigned long, cpu_current_top_of_stack) =
23755 - (unsigned long)&init_thread_union + THREAD_SIZE;
23756 + (unsigned long)&init_thread_union - 16 + THREAD_SIZE;
23757 EXPORT_PER_CPU_SYMBOL(cpu_current_top_of_stack);
23758
23759 -#ifdef CONFIG_CC_STACKPROTECTOR
23760 -DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23761 -#endif
23762 -
23763 -#endif /* CONFIG_X86_64 */
23764 -
23765 /*
23766 * Clear all 6 debug registers:
23767 */
23768 @@ -1343,7 +1408,7 @@ void cpu_init(void)
23769 */
23770 load_ucode_ap();
23771
23772 - t = &per_cpu(cpu_tss, cpu);
23773 + t = cpu_tss + cpu;
23774 oist = &per_cpu(orig_ist, cpu);
23775
23776 #ifdef CONFIG_NUMA
23777 @@ -1375,7 +1440,6 @@ void cpu_init(void)
23778 wrmsrl(MSR_KERNEL_GS_BASE, 0);
23779 barrier();
23780
23781 - x86_configure_nx();
23782 x2apic_setup();
23783
23784 /*
23785 @@ -1427,7 +1491,7 @@ void cpu_init(void)
23786 {
23787 int cpu = smp_processor_id();
23788 struct task_struct *curr = current;
23789 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
23790 + struct tss_struct *t = cpu_tss + cpu;
23791 struct thread_struct *thread = &curr->thread;
23792
23793 wait_for_master_cpu(cpu);
23794 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
23795 index be4febc..f7af533 100644
23796 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
23797 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
23798 @@ -519,25 +519,23 @@ cache_private_attrs_is_visible(struct kobject *kobj,
23799 return 0;
23800 }
23801
23802 +static struct attribute *amd_l3_attrs[4];
23803 +
23804 static struct attribute_group cache_private_group = {
23805 .is_visible = cache_private_attrs_is_visible,
23806 + .attrs = amd_l3_attrs,
23807 };
23808
23809 static void init_amd_l3_attrs(void)
23810 {
23811 int n = 1;
23812 - static struct attribute **amd_l3_attrs;
23813 -
23814 - if (amd_l3_attrs) /* already initialized */
23815 - return;
23816
23817 if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
23818 n += 2;
23819 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
23820 n += 1;
23821
23822 - amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
23823 - if (!amd_l3_attrs)
23824 + if (n > 1 && amd_l3_attrs[0]) /* already initialized */
23825 return;
23826
23827 n = 0;
23828 @@ -547,8 +545,6 @@ static void init_amd_l3_attrs(void)
23829 }
23830 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
23831 amd_l3_attrs[n++] = &dev_attr_subcaches.attr;
23832 -
23833 - cache_private_group.attrs = amd_l3_attrs;
23834 }
23835
23836 const struct attribute_group *
23837 @@ -559,7 +555,7 @@ cache_get_priv_group(struct cacheinfo *this_leaf)
23838 if (this_leaf->level < 3 || !nb)
23839 return NULL;
23840
23841 - if (nb && nb->l3_cache.indices)
23842 + if (nb->l3_cache.indices)
23843 init_amd_l3_attrs();
23844
23845 return &cache_private_group;
23846 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
23847 index 9d014b82..8186c29 100644
23848 --- a/arch/x86/kernel/cpu/mcheck/mce.c
23849 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
23850 @@ -47,6 +47,7 @@
23851 #include <asm/tlbflush.h>
23852 #include <asm/mce.h>
23853 #include <asm/msr.h>
23854 +#include <asm/local.h>
23855
23856 #include "mce-internal.h"
23857
23858 @@ -212,8 +213,7 @@ static struct notifier_block mce_srao_nb;
23859 void mce_register_decode_chain(struct notifier_block *nb)
23860 {
23861 /* Ensure SRAO notifier has the highest priority in the decode chain. */
23862 - if (nb != &mce_srao_nb && nb->priority == INT_MAX)
23863 - nb->priority -= 1;
23864 + BUG_ON(nb != &mce_srao_nb && nb->priority == INT_MAX);
23865
23866 atomic_notifier_chain_register(&x86_mce_decoder_chain, nb);
23867 }
23868 @@ -237,7 +237,7 @@ static void print_mce(struct mce *m)
23869 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
23870 m->cs, m->ip);
23871
23872 - if (m->cs == __KERNEL_CS)
23873 + if (m->cs == __KERNEL_CS || m->cs == __KERNEXEC_KERNEL_CS)
23874 print_symbol("{%s}", m->ip);
23875 pr_cont("\n");
23876 }
23877 @@ -270,10 +270,10 @@ static void print_mce(struct mce *m)
23878
23879 #define PANIC_TIMEOUT 5 /* 5 seconds */
23880
23881 -static atomic_t mce_panicked;
23882 +static atomic_unchecked_t mce_panicked;
23883
23884 static int fake_panic;
23885 -static atomic_t mce_fake_panicked;
23886 +static atomic_unchecked_t mce_fake_panicked;
23887
23888 /* Panic in progress. Enable interrupts and wait for final IPI */
23889 static void wait_for_panic(void)
23890 @@ -297,7 +297,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23891 /*
23892 * Make sure only one CPU runs in machine check panic
23893 */
23894 - if (atomic_inc_return(&mce_panicked) > 1)
23895 + if (atomic_inc_return_unchecked(&mce_panicked) > 1)
23896 wait_for_panic();
23897 barrier();
23898
23899 @@ -305,7 +305,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23900 console_verbose();
23901 } else {
23902 /* Don't log too much for fake panic */
23903 - if (atomic_inc_return(&mce_fake_panicked) > 1)
23904 + if (atomic_inc_return_unchecked(&mce_fake_panicked) > 1)
23905 return;
23906 }
23907 /* First print corrected ones that are still unlogged */
23908 @@ -344,7 +344,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23909 if (!fake_panic) {
23910 if (panic_timeout == 0)
23911 panic_timeout = mca_cfg.panic_timeout;
23912 - panic(msg);
23913 + panic("%s", msg);
23914 } else
23915 pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
23916 }
23917 @@ -697,7 +697,7 @@ static int mce_timed_out(u64 *t, const char *msg)
23918 * might have been modified by someone else.
23919 */
23920 rmb();
23921 - if (atomic_read(&mce_panicked))
23922 + if (atomic_read_unchecked(&mce_panicked))
23923 wait_for_panic();
23924 if (!mca_cfg.monarch_timeout)
23925 goto out;
23926 @@ -1654,7 +1654,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
23927 }
23928
23929 /* Call the installed machine check handler for this CPU setup. */
23930 -void (*machine_check_vector)(struct pt_regs *, long error_code) =
23931 +void (*machine_check_vector)(struct pt_regs *, long error_code) __read_only =
23932 unexpected_machine_check;
23933
23934 /*
23935 @@ -1683,7 +1683,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
23936 return;
23937 }
23938
23939 + pax_open_kernel();
23940 machine_check_vector = do_machine_check;
23941 + pax_close_kernel();
23942
23943 __mcheck_cpu_init_generic();
23944 __mcheck_cpu_init_vendor(c);
23945 @@ -1714,7 +1716,7 @@ void mcheck_cpu_clear(struct cpuinfo_x86 *c)
23946 */
23947
23948 static DEFINE_SPINLOCK(mce_chrdev_state_lock);
23949 -static int mce_chrdev_open_count; /* #times opened */
23950 +static local_t mce_chrdev_open_count; /* #times opened */
23951 static int mce_chrdev_open_exclu; /* already open exclusive? */
23952
23953 static int mce_chrdev_open(struct inode *inode, struct file *file)
23954 @@ -1722,7 +1724,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
23955 spin_lock(&mce_chrdev_state_lock);
23956
23957 if (mce_chrdev_open_exclu ||
23958 - (mce_chrdev_open_count && (file->f_flags & O_EXCL))) {
23959 + (local_read(&mce_chrdev_open_count) && (file->f_flags & O_EXCL))) {
23960 spin_unlock(&mce_chrdev_state_lock);
23961
23962 return -EBUSY;
23963 @@ -1730,7 +1732,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
23964
23965 if (file->f_flags & O_EXCL)
23966 mce_chrdev_open_exclu = 1;
23967 - mce_chrdev_open_count++;
23968 + local_inc(&mce_chrdev_open_count);
23969
23970 spin_unlock(&mce_chrdev_state_lock);
23971
23972 @@ -1741,7 +1743,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
23973 {
23974 spin_lock(&mce_chrdev_state_lock);
23975
23976 - mce_chrdev_open_count--;
23977 + local_dec(&mce_chrdev_open_count);
23978 mce_chrdev_open_exclu = 0;
23979
23980 spin_unlock(&mce_chrdev_state_lock);
23981 @@ -2421,7 +2423,7 @@ static __init void mce_init_banks(void)
23982
23983 for (i = 0; i < mca_cfg.banks; i++) {
23984 struct mce_bank *b = &mce_banks[i];
23985 - struct device_attribute *a = &b->attr;
23986 + device_attribute_no_const *a = &b->attr;
23987
23988 sysfs_attr_init(&a->attr);
23989 a->attr.name = b->attrname;
23990 @@ -2528,7 +2530,7 @@ struct dentry *mce_get_debugfs_dir(void)
23991 static void mce_reset(void)
23992 {
23993 cpu_missing = 0;
23994 - atomic_set(&mce_fake_panicked, 0);
23995 + atomic_set_unchecked(&mce_fake_panicked, 0);
23996 atomic_set(&mce_executing, 0);
23997 atomic_set(&mce_callin, 0);
23998 atomic_set(&global_nwo, 0);
23999 diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
24000 index 12402e1..9e0f230 100644
24001 --- a/arch/x86/kernel/cpu/mcheck/p5.c
24002 +++ b/arch/x86/kernel/cpu/mcheck/p5.c
24003 @@ -12,6 +12,7 @@
24004 #include <asm/tlbflush.h>
24005 #include <asm/mce.h>
24006 #include <asm/msr.h>
24007 +#include <asm/pgtable.h>
24008
24009 /* By default disabled */
24010 int mce_p5_enabled __read_mostly;
24011 @@ -54,7 +55,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
24012 if (!cpu_has(c, X86_FEATURE_MCE))
24013 return;
24014
24015 + pax_open_kernel();
24016 machine_check_vector = pentium_machine_check;
24017 + pax_close_kernel();
24018 /* Make sure the vector pointer is visible before we enable MCEs: */
24019 wmb();
24020
24021 diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
24022 index 01dd870..6fd1c59 100644
24023 --- a/arch/x86/kernel/cpu/mcheck/winchip.c
24024 +++ b/arch/x86/kernel/cpu/mcheck/winchip.c
24025 @@ -11,6 +11,7 @@
24026 #include <asm/tlbflush.h>
24027 #include <asm/mce.h>
24028 #include <asm/msr.h>
24029 +#include <asm/pgtable.h>
24030
24031 /* Machine check handler for WinChip C6: */
24032 static void winchip_machine_check(struct pt_regs *regs, long error_code)
24033 @@ -28,7 +29,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
24034 {
24035 u32 lo, hi;
24036
24037 + pax_open_kernel();
24038 machine_check_vector = winchip_machine_check;
24039 + pax_close_kernel();
24040 /* Make sure the vector pointer is visible before we enable MCEs: */
24041 wmb();
24042
24043 diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
24044 index 969dc17..a9c3fdd 100644
24045 --- a/arch/x86/kernel/cpu/microcode/intel.c
24046 +++ b/arch/x86/kernel/cpu/microcode/intel.c
24047 @@ -237,13 +237,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
24048
24049 static int get_ucode_user(void *to, const void *from, size_t n)
24050 {
24051 - return copy_from_user(to, from, n);
24052 + return copy_from_user(to, (const void __force_user *)from, n);
24053 }
24054
24055 static enum ucode_state
24056 request_microcode_user(int cpu, const void __user *buf, size_t size)
24057 {
24058 - return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
24059 + return generic_load_microcode(cpu, (__force_kernel void *)buf, size, &get_ucode_user);
24060 }
24061
24062 static void microcode_fini_cpu(int cpu)
24063 diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
24064 index 3b533cf..b40d426 100644
24065 --- a/arch/x86/kernel/cpu/mtrr/generic.c
24066 +++ b/arch/x86/kernel/cpu/mtrr/generic.c
24067 @@ -723,7 +723,8 @@ static DEFINE_RAW_SPINLOCK(set_atomicity_lock);
24068 * The caller must ensure that local interrupts are disabled and
24069 * are reenabled after post_set() has been called.
24070 */
24071 -static void prepare_set(void) __acquires(set_atomicity_lock)
24072 +static void prepare_set(void) __acquires(&set_atomicity_lock);
24073 +static void prepare_set(void)
24074 {
24075 unsigned long cr0;
24076
24077 @@ -759,7 +760,8 @@ static void prepare_set(void) __acquires(set_atomicity_lock)
24078 wbinvd();
24079 }
24080
24081 -static void post_set(void) __releases(set_atomicity_lock)
24082 +static void post_set(void) __releases(&set_atomicity_lock);
24083 +static void post_set(void)
24084 {
24085 /* Flush TLBs (no need to flush caches - they are disabled) */
24086 count_vm_tlb_event(NR_TLB_LOCAL_FLUSH_ALL);
24087 diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
24088 index f891b47..9dff300 100644
24089 --- a/arch/x86/kernel/cpu/mtrr/main.c
24090 +++ b/arch/x86/kernel/cpu/mtrr/main.c
24091 @@ -72,7 +72,7 @@ static DEFINE_MUTEX(mtrr_mutex);
24092 u64 size_or_mask, size_and_mask;
24093 static bool mtrr_aps_delayed_init;
24094
24095 -static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM];
24096 +static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM] __read_only;
24097
24098 const struct mtrr_ops *mtrr_if;
24099
24100 diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
24101 index 951884d..4796b75 100644
24102 --- a/arch/x86/kernel/cpu/mtrr/mtrr.h
24103 +++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
24104 @@ -25,7 +25,7 @@ struct mtrr_ops {
24105 int (*validate_add_page)(unsigned long base, unsigned long size,
24106 unsigned int type);
24107 int (*have_wrcomb)(void);
24108 -};
24109 +} __do_const;
24110
24111 extern int generic_get_free_region(unsigned long base, unsigned long size,
24112 int replace_reg);
24113 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
24114 index 66dd3fe9..c9bfa35 100644
24115 --- a/arch/x86/kernel/cpu/perf_event.c
24116 +++ b/arch/x86/kernel/cpu/perf_event.c
24117 @@ -1518,7 +1518,7 @@ static void __init pmu_check_apic(void)
24118
24119 }
24120
24121 -static struct attribute_group x86_pmu_format_group = {
24122 +static attribute_group_no_const x86_pmu_format_group = {
24123 .name = "format",
24124 .attrs = NULL,
24125 };
24126 @@ -1617,7 +1617,7 @@ static struct attribute *events_attr[] = {
24127 NULL,
24128 };
24129
24130 -static struct attribute_group x86_pmu_events_group = {
24131 +static attribute_group_no_const x86_pmu_events_group = {
24132 .name = "events",
24133 .attrs = events_attr,
24134 };
24135 @@ -2176,7 +2176,7 @@ valid_user_frame(const void __user *fp, unsigned long size)
24136 static unsigned long get_segment_base(unsigned int segment)
24137 {
24138 struct desc_struct *desc;
24139 - int idx = segment >> 3;
24140 + unsigned int idx = segment >> 3;
24141
24142 if ((segment & SEGMENT_TI_MASK) == SEGMENT_LDT) {
24143 #ifdef CONFIG_MODIFY_LDT_SYSCALL
24144 @@ -2198,7 +2198,7 @@ static unsigned long get_segment_base(unsigned int segment)
24145 if (idx > GDT_ENTRIES)
24146 return 0;
24147
24148 - desc = raw_cpu_ptr(gdt_page.gdt) + idx;
24149 + desc = get_cpu_gdt_table(smp_processor_id()) + idx;
24150 }
24151
24152 return get_desc_base(desc);
24153 @@ -2288,7 +2288,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
24154 break;
24155
24156 perf_callchain_store(entry, frame.return_address);
24157 - fp = frame.next_frame;
24158 + fp = (const void __force_user *)frame.next_frame;
24159 }
24160 }
24161
24162 diff --git a/arch/x86/kernel/cpu/perf_event_amd_iommu.c b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24163 index 97242a9..cf9c30e 100644
24164 --- a/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24165 +++ b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24166 @@ -402,7 +402,7 @@ static void perf_iommu_del(struct perf_event *event, int flags)
24167 static __init int _init_events_attrs(struct perf_amd_iommu *perf_iommu)
24168 {
24169 struct attribute **attrs;
24170 - struct attribute_group *attr_group;
24171 + attribute_group_no_const *attr_group;
24172 int i = 0, j;
24173
24174 while (amd_iommu_v2_event_descs[i].attr.attr.name)
24175 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
24176 index f63360b..5bf835d 100644
24177 --- a/arch/x86/kernel/cpu/perf_event_intel.c
24178 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
24179 @@ -2119,6 +2119,8 @@ __intel_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
24180 }
24181
24182 static void
24183 +intel_start_scheduling(struct cpu_hw_events *cpuc) __acquires(&cpuc->excl_cntrs->lock);
24184 +static void
24185 intel_start_scheduling(struct cpu_hw_events *cpuc)
24186 {
24187 struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
24188 @@ -2128,14 +2130,18 @@ intel_start_scheduling(struct cpu_hw_events *cpuc)
24189 /*
24190 * nothing needed if in group validation mode
24191 */
24192 - if (cpuc->is_fake || !is_ht_workaround_enabled())
24193 + if (cpuc->is_fake || !is_ht_workaround_enabled()) {
24194 + __acquire(&excl_cntrs->lock);
24195 return;
24196 + }
24197
24198 /*
24199 * no exclusion needed
24200 */
24201 - if (WARN_ON_ONCE(!excl_cntrs))
24202 + if (WARN_ON_ONCE(!excl_cntrs)) {
24203 + __acquire(&excl_cntrs->lock);
24204 return;
24205 + }
24206
24207 xl = &excl_cntrs->states[tid];
24208
24209 @@ -2175,6 +2181,8 @@ static void intel_commit_scheduling(struct cpu_hw_events *cpuc, int idx, int cnt
24210 }
24211
24212 static void
24213 +intel_stop_scheduling(struct cpu_hw_events *cpuc) __releases(&cpuc->excl_cntrs->lock);
24214 +static void
24215 intel_stop_scheduling(struct cpu_hw_events *cpuc)
24216 {
24217 struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
24218 @@ -2184,13 +2192,18 @@ intel_stop_scheduling(struct cpu_hw_events *cpuc)
24219 /*
24220 * nothing needed if in group validation mode
24221 */
24222 - if (cpuc->is_fake || !is_ht_workaround_enabled())
24223 + if (cpuc->is_fake || !is_ht_workaround_enabled()) {
24224 + __release(&excl_cntrs->lock);
24225 return;
24226 + }
24227 +
24228 /*
24229 * no exclusion needed
24230 */
24231 - if (WARN_ON_ONCE(!excl_cntrs))
24232 + if (WARN_ON_ONCE(!excl_cntrs)) {
24233 + __release(&excl_cntrs->lock);
24234 return;
24235 + }
24236
24237 xl = &excl_cntrs->states[tid];
24238
24239 @@ -2373,19 +2386,22 @@ static void intel_put_excl_constraints(struct cpu_hw_events *cpuc,
24240 * unused now.
24241 */
24242 if (hwc->idx >= 0) {
24243 + bool sched_started;
24244 +
24245 xl = &excl_cntrs->states[tid];
24246 + sched_started = xl->sched_started;
24247
24248 /*
24249 * put_constraint may be called from x86_schedule_events()
24250 * which already has the lock held so here make locking
24251 * conditional.
24252 */
24253 - if (!xl->sched_started)
24254 + if (!sched_started)
24255 raw_spin_lock(&excl_cntrs->lock);
24256
24257 xl->state[hwc->idx] = INTEL_EXCL_UNUSED;
24258
24259 - if (!xl->sched_started)
24260 + if (!sched_started)
24261 raw_spin_unlock(&excl_cntrs->lock);
24262 }
24263 }
24264 @@ -3258,10 +3274,10 @@ __init int intel_pmu_init(void)
24265 x86_pmu.num_counters_fixed = max((int)edx.split.num_counters_fixed, 3);
24266
24267 if (boot_cpu_has(X86_FEATURE_PDCM)) {
24268 - u64 capabilities;
24269 + u64 capabilities = x86_pmu.intel_cap.capabilities;
24270
24271 - rdmsrl(MSR_IA32_PERF_CAPABILITIES, capabilities);
24272 - x86_pmu.intel_cap.capabilities = capabilities;
24273 + if (rdmsrl_safe(MSR_IA32_PERF_CAPABILITIES, &x86_pmu.intel_cap.capabilities))
24274 + x86_pmu.intel_cap.capabilities = capabilities;
24275 }
24276
24277 intel_ds_init();
24278 diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24279 index d1c0f25..9d7332c 100644
24280 --- a/arch/x86/kernel/cpu/perf_event_intel_bts.c
24281 +++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24282 @@ -250,7 +250,7 @@ static void bts_event_start(struct perf_event *event, int flags)
24283 __bts_event_start(event);
24284
24285 /* PMI handler: this counter is running and likely generating PMIs */
24286 - ACCESS_ONCE(bts->started) = 1;
24287 + ACCESS_ONCE_RW(bts->started) = 1;
24288 }
24289
24290 static void __bts_event_stop(struct perf_event *event)
24291 @@ -264,7 +264,7 @@ static void __bts_event_stop(struct perf_event *event)
24292 if (event->hw.state & PERF_HES_STOPPED)
24293 return;
24294
24295 - ACCESS_ONCE(event->hw.state) |= PERF_HES_STOPPED;
24296 + ACCESS_ONCE_RW(event->hw.state) |= PERF_HES_STOPPED;
24297 }
24298
24299 static void bts_event_stop(struct perf_event *event, int flags)
24300 @@ -272,7 +272,7 @@ static void bts_event_stop(struct perf_event *event, int flags)
24301 struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
24302
24303 /* PMI handler: don't restart this counter */
24304 - ACCESS_ONCE(bts->started) = 0;
24305 + ACCESS_ONCE_RW(bts->started) = 0;
24306
24307 __bts_event_stop(event);
24308
24309 diff --git a/arch/x86/kernel/cpu/perf_event_intel_cqm.c b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24310 index 377e8f8..2982f48 100644
24311 --- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24312 +++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24313 @@ -1364,7 +1364,9 @@ static int __init intel_cqm_init(void)
24314 goto out;
24315 }
24316
24317 - event_attr_intel_cqm_llc_scale.event_str = str;
24318 + pax_open_kernel();
24319 + *(const char **)&event_attr_intel_cqm_llc_scale.event_str = str;
24320 + pax_close_kernel();
24321
24322 ret = intel_cqm_setup_rmid_cache();
24323 if (ret)
24324 diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24325 index 4216928..cdae603 100644
24326 --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
24327 +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24328 @@ -132,16 +132,12 @@ static const struct attribute_group *pt_attr_groups[] = {
24329
24330 static int __init pt_pmu_hw_init(void)
24331 {
24332 - struct dev_ext_attribute *de_attrs;
24333 - struct attribute **attrs;
24334 - size_t size;
24335 - int ret;
24336 + static struct dev_ext_attribute de_attrs[ARRAY_SIZE(pt_caps)];
24337 + static struct attribute *attrs[ARRAY_SIZE(pt_caps)];
24338 long i;
24339
24340 - attrs = NULL;
24341 - ret = -ENODEV;
24342 if (!test_cpu_cap(&boot_cpu_data, X86_FEATURE_INTEL_PT))
24343 - goto fail;
24344 + return -ENODEV;
24345
24346 for (i = 0; i < PT_CPUID_LEAVES; i++) {
24347 cpuid_count(20, i,
24348 @@ -151,39 +147,25 @@ static int __init pt_pmu_hw_init(void)
24349 &pt_pmu.caps[CR_EDX + i*PT_CPUID_REGS_NUM]);
24350 }
24351
24352 - ret = -ENOMEM;
24353 - size = sizeof(struct attribute *) * (ARRAY_SIZE(pt_caps)+1);
24354 - attrs = kzalloc(size, GFP_KERNEL);
24355 - if (!attrs)
24356 - goto fail;
24357 -
24358 - size = sizeof(struct dev_ext_attribute) * (ARRAY_SIZE(pt_caps)+1);
24359 - de_attrs = kzalloc(size, GFP_KERNEL);
24360 - if (!de_attrs)
24361 - goto fail;
24362 -
24363 + pax_open_kernel();
24364 for (i = 0; i < ARRAY_SIZE(pt_caps); i++) {
24365 - struct dev_ext_attribute *de_attr = de_attrs + i;
24366 + struct dev_ext_attribute *de_attr = &de_attrs[i];
24367
24368 - de_attr->attr.attr.name = pt_caps[i].name;
24369 + *(const char **)&de_attr->attr.attr.name = pt_caps[i].name;
24370
24371 sysfs_attr_init(&de_attr->attr.attr);
24372
24373 - de_attr->attr.attr.mode = S_IRUGO;
24374 - de_attr->attr.show = pt_cap_show;
24375 - de_attr->var = (void *)i;
24376 + *(umode_t *)&de_attr->attr.attr.mode = S_IRUGO;
24377 + *(void **)&de_attr->attr.show = pt_cap_show;
24378 + *(void **)&de_attr->var = (void *)i;
24379
24380 attrs[i] = &de_attr->attr.attr;
24381 }
24382
24383 - pt_cap_group.attrs = attrs;
24384 + *(struct attribute ***)&pt_cap_group.attrs = attrs;
24385 + pax_close_kernel();
24386
24387 return 0;
24388 -
24389 -fail:
24390 - kfree(attrs);
24391 -
24392 - return ret;
24393 }
24394
24395 #define RTIT_CTL_CYC_PSB (RTIT_CTL_CYCLEACC | \
24396 @@ -999,7 +981,7 @@ static void pt_event_start(struct perf_event *event, int mode)
24397 return;
24398 }
24399
24400 - ACCESS_ONCE(pt->handle_nmi) = 1;
24401 + ACCESS_ONCE_RW(pt->handle_nmi) = 1;
24402 event->hw.state = 0;
24403
24404 pt_config_buffer(buf->cur->table, buf->cur_idx,
24405 @@ -1015,7 +997,7 @@ static void pt_event_stop(struct perf_event *event, int mode)
24406 * Protect against the PMI racing with disabling wrmsr,
24407 * see comment in intel_pt_interrupt().
24408 */
24409 - ACCESS_ONCE(pt->handle_nmi) = 0;
24410 + ACCESS_ONCE_RW(pt->handle_nmi) = 0;
24411 pt_config_start(false);
24412
24413 if (event->hw.state == PERF_HES_STOPPED)
24414 diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24415 index 81431c0..bc7524c 100644
24416 --- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24417 +++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24418 @@ -502,7 +502,7 @@ static struct attribute *rapl_events_knl_attr[] = {
24419 NULL,
24420 };
24421
24422 -static struct attribute_group rapl_pmu_events_group = {
24423 +static attribute_group_no_const rapl_pmu_events_group __read_only = {
24424 .name = "events",
24425 .attrs = NULL, /* patched at runtime */
24426 };
24427 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24428 index 560e525..f5d28a9 100644
24429 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24430 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24431 @@ -731,7 +731,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
24432 static int __init uncore_type_init(struct intel_uncore_type *type)
24433 {
24434 struct intel_uncore_pmu *pmus;
24435 - struct attribute_group *attr_group;
24436 + attribute_group_no_const *attr_group;
24437 struct attribute **attrs;
24438 int i, j;
24439
24440 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24441 index 72c54c2..c4170a4b 100644
24442 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24443 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24444 @@ -115,7 +115,7 @@ struct intel_uncore_box {
24445 struct uncore_event_desc {
24446 struct kobj_attribute attr;
24447 const char *config;
24448 -};
24449 +} __do_const;
24450
24451 ssize_t uncore_event_show(struct kobject *kobj,
24452 struct kobj_attribute *attr, char *buf);
24453 diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
24454 index afa64ad..dce67dd 100644
24455 --- a/arch/x86/kernel/crash_dump_64.c
24456 +++ b/arch/x86/kernel/crash_dump_64.c
24457 @@ -36,7 +36,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
24458 return -ENOMEM;
24459
24460 if (userbuf) {
24461 - if (copy_to_user(buf, vaddr + offset, csize)) {
24462 + if (copy_to_user((char __force_user *)buf, vaddr + offset, csize)) {
24463 iounmap(vaddr);
24464 return -EFAULT;
24465 }
24466 diff --git a/arch/x86/kernel/doublefault.c b/arch/x86/kernel/doublefault.c
24467 index f6dfd93..892ade4 100644
24468 --- a/arch/x86/kernel/doublefault.c
24469 +++ b/arch/x86/kernel/doublefault.c
24470 @@ -12,7 +12,7 @@
24471
24472 #define DOUBLEFAULT_STACKSIZE (1024)
24473 static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE];
24474 -#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE)
24475 +#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE-2)
24476
24477 #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM)
24478
24479 @@ -22,7 +22,7 @@ static void doublefault_fn(void)
24480 unsigned long gdt, tss;
24481
24482 native_store_gdt(&gdt_desc);
24483 - gdt = gdt_desc.address;
24484 + gdt = (unsigned long)gdt_desc.address;
24485
24486 printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);
24487
24488 @@ -59,10 +59,10 @@ struct tss_struct doublefault_tss __cacheline_aligned = {
24489 /* 0x2 bit is always set */
24490 .flags = X86_EFLAGS_SF | 0x2,
24491 .sp = STACK_START,
24492 - .es = __USER_DS,
24493 + .es = __KERNEL_DS,
24494 .cs = __KERNEL_CS,
24495 .ss = __KERNEL_DS,
24496 - .ds = __USER_DS,
24497 + .ds = __KERNEL_DS,
24498 .fs = __KERNEL_PERCPU,
24499
24500 .__cr3 = __pa_nodebug(swapper_pg_dir),
24501 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
24502 index 9c30acf..8cf2411 100644
24503 --- a/arch/x86/kernel/dumpstack.c
24504 +++ b/arch/x86/kernel/dumpstack.c
24505 @@ -2,6 +2,9 @@
24506 * Copyright (C) 1991, 1992 Linus Torvalds
24507 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
24508 */
24509 +#ifdef CONFIG_GRKERNSEC_HIDESYM
24510 +#define __INCLUDED_BY_HIDESYM 1
24511 +#endif
24512 #include <linux/kallsyms.h>
24513 #include <linux/kprobes.h>
24514 #include <linux/uaccess.h>
24515 @@ -35,23 +38,21 @@ static void printk_stack_address(unsigned long address, int reliable,
24516
24517 void printk_address(unsigned long address)
24518 {
24519 - pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address);
24520 + pr_cont(" [<%p>] %pA\n", (void *)address, (void *)address);
24521 }
24522
24523 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
24524 static void
24525 print_ftrace_graph_addr(unsigned long addr, void *data,
24526 const struct stacktrace_ops *ops,
24527 - struct thread_info *tinfo, int *graph)
24528 + struct task_struct *task, int *graph)
24529 {
24530 - struct task_struct *task;
24531 unsigned long ret_addr;
24532 int index;
24533
24534 if (addr != (unsigned long)return_to_handler)
24535 return;
24536
24537 - task = tinfo->task;
24538 index = task->curr_ret_stack;
24539
24540 if (!task->ret_stack || index < *graph)
24541 @@ -68,7 +69,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24542 static inline void
24543 print_ftrace_graph_addr(unsigned long addr, void *data,
24544 const struct stacktrace_ops *ops,
24545 - struct thread_info *tinfo, int *graph)
24546 + struct task_struct *task, int *graph)
24547 { }
24548 #endif
24549
24550 @@ -79,10 +80,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24551 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
24552 */
24553
24554 -static inline int valid_stack_ptr(struct thread_info *tinfo,
24555 - void *p, unsigned int size, void *end)
24556 +static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
24557 {
24558 - void *t = tinfo;
24559 if (end) {
24560 if (p < end && p >= (end-THREAD_SIZE))
24561 return 1;
24562 @@ -93,14 +92,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
24563 }
24564
24565 unsigned long
24566 -print_context_stack(struct thread_info *tinfo,
24567 +print_context_stack(struct task_struct *task, void *stack_start,
24568 unsigned long *stack, unsigned long bp,
24569 const struct stacktrace_ops *ops, void *data,
24570 unsigned long *end, int *graph)
24571 {
24572 struct stack_frame *frame = (struct stack_frame *)bp;
24573
24574 - while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
24575 + while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
24576 unsigned long addr;
24577
24578 addr = *stack;
24579 @@ -112,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
24580 } else {
24581 ops->address(data, addr, 0);
24582 }
24583 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24584 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24585 }
24586 stack++;
24587 }
24588 @@ -121,7 +120,7 @@ print_context_stack(struct thread_info *tinfo,
24589 EXPORT_SYMBOL_GPL(print_context_stack);
24590
24591 unsigned long
24592 -print_context_stack_bp(struct thread_info *tinfo,
24593 +print_context_stack_bp(struct task_struct *task, void *stack_start,
24594 unsigned long *stack, unsigned long bp,
24595 const struct stacktrace_ops *ops, void *data,
24596 unsigned long *end, int *graph)
24597 @@ -129,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24598 struct stack_frame *frame = (struct stack_frame *)bp;
24599 unsigned long *ret_addr = &frame->return_address;
24600
24601 - while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
24602 + while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
24603 unsigned long addr = *ret_addr;
24604
24605 if (!__kernel_text_address(addr))
24606 @@ -138,7 +137,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24607 ops->address(data, addr, 1);
24608 frame = frame->next_frame;
24609 ret_addr = &frame->return_address;
24610 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24611 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24612 }
24613
24614 return (unsigned long)frame;
24615 @@ -226,6 +225,8 @@ unsigned long oops_begin(void)
24616 EXPORT_SYMBOL_GPL(oops_begin);
24617 NOKPROBE_SYMBOL(oops_begin);
24618
24619 +extern void gr_handle_kernel_exploit(void);
24620 +
24621 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24622 {
24623 if (regs && kexec_should_crash(current))
24624 @@ -247,7 +248,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24625 panic("Fatal exception in interrupt");
24626 if (panic_on_oops)
24627 panic("Fatal exception");
24628 - do_exit(signr);
24629 +
24630 + gr_handle_kernel_exploit();
24631 +
24632 + do_group_exit(signr);
24633 }
24634 NOKPROBE_SYMBOL(oops_end);
24635
24636 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
24637 index 464ffd6..01f2cda 100644
24638 --- a/arch/x86/kernel/dumpstack_32.c
24639 +++ b/arch/x86/kernel/dumpstack_32.c
24640 @@ -61,15 +61,14 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24641 bp = stack_frame(task, regs);
24642
24643 for (;;) {
24644 - struct thread_info *context;
24645 + void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24646 void *end_stack;
24647
24648 end_stack = is_hardirq_stack(stack, cpu);
24649 if (!end_stack)
24650 end_stack = is_softirq_stack(stack, cpu);
24651
24652 - context = task_thread_info(task);
24653 - bp = ops->walk_stack(context, stack, bp, ops, data,
24654 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data,
24655 end_stack, &graph);
24656
24657 /* Stop if not on irq stack */
24658 @@ -137,16 +136,17 @@ void show_regs(struct pt_regs *regs)
24659 unsigned int code_len = code_bytes;
24660 unsigned char c;
24661 u8 *ip;
24662 + unsigned long cs_base = get_desc_base(&get_cpu_gdt_table(0)[(0xffff & regs->cs) >> 3]);
24663
24664 pr_emerg("Stack:\n");
24665 show_stack_log_lvl(NULL, regs, &regs->sp, 0, KERN_EMERG);
24666
24667 pr_emerg("Code:");
24668
24669 - ip = (u8 *)regs->ip - code_prologue;
24670 + ip = (u8 *)regs->ip - code_prologue + cs_base;
24671 if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) {
24672 /* try starting at IP */
24673 - ip = (u8 *)regs->ip;
24674 + ip = (u8 *)regs->ip + cs_base;
24675 code_len = code_len - code_prologue + 1;
24676 }
24677 for (i = 0; i < code_len; i++, ip++) {
24678 @@ -155,7 +155,7 @@ void show_regs(struct pt_regs *regs)
24679 pr_cont(" Bad EIP value.");
24680 break;
24681 }
24682 - if (ip == (u8 *)regs->ip)
24683 + if (ip == (u8 *)regs->ip + cs_base)
24684 pr_cont(" <%02x>", c);
24685 else
24686 pr_cont(" %02x", c);
24687 @@ -168,6 +168,7 @@ int is_valid_bugaddr(unsigned long ip)
24688 {
24689 unsigned short ud2;
24690
24691 + ip = ktla_ktva(ip);
24692 if (ip < PAGE_OFFSET)
24693 return 0;
24694 if (probe_kernel_address((unsigned short *)ip, ud2))
24695 @@ -175,3 +176,15 @@ int is_valid_bugaddr(unsigned long ip)
24696
24697 return ud2 == 0x0b0f;
24698 }
24699 +
24700 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24701 +void __used pax_check_alloca(unsigned long size)
24702 +{
24703 + unsigned long sp = (unsigned long)&sp, stack_left;
24704 +
24705 + /* all kernel stacks are of the same size */
24706 + stack_left = sp & (THREAD_SIZE - 1);
24707 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24708 +}
24709 +EXPORT_SYMBOL(pax_check_alloca);
24710 +#endif
24711 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
24712 index 5f1c626..1cba97e 100644
24713 --- a/arch/x86/kernel/dumpstack_64.c
24714 +++ b/arch/x86/kernel/dumpstack_64.c
24715 @@ -153,12 +153,12 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24716 const struct stacktrace_ops *ops, void *data)
24717 {
24718 const unsigned cpu = get_cpu();
24719 - struct thread_info *tinfo;
24720 unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu);
24721 unsigned long dummy;
24722 unsigned used = 0;
24723 int graph = 0;
24724 int done = 0;
24725 + void *stack_start;
24726
24727 if (!task)
24728 task = current;
24729 @@ -179,7 +179,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24730 * current stack address. If the stacks consist of nested
24731 * exceptions
24732 */
24733 - tinfo = task_thread_info(task);
24734 while (!done) {
24735 unsigned long *stack_end;
24736 enum stack_type stype;
24737 @@ -202,7 +201,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24738 if (ops->stack(data, id) < 0)
24739 break;
24740
24741 - bp = ops->walk_stack(tinfo, stack, bp, ops,
24742 + bp = ops->walk_stack(task, stack_end - EXCEPTION_STKSZ, stack, bp, ops,
24743 data, stack_end, &graph);
24744 ops->stack(data, "<EOE>");
24745 /*
24746 @@ -210,6 +209,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24747 * second-to-last pointer (index -2 to end) in the
24748 * exception stack:
24749 */
24750 + if ((u16)stack_end[-1] != __KERNEL_DS)
24751 + goto out;
24752 stack = (unsigned long *) stack_end[-2];
24753 done = 0;
24754 break;
24755 @@ -218,7 +219,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24756
24757 if (ops->stack(data, "IRQ") < 0)
24758 break;
24759 - bp = ops->walk_stack(tinfo, stack, bp,
24760 + bp = ops->walk_stack(task, irq_stack, stack, bp,
24761 ops, data, stack_end, &graph);
24762 /*
24763 * We link to the next stack (which would be
24764 @@ -240,7 +241,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24765 /*
24766 * This handles the process stack:
24767 */
24768 - bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
24769 + stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24770 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
24771 +out:
24772 put_cpu();
24773 }
24774 EXPORT_SYMBOL(dump_trace);
24775 @@ -347,8 +350,55 @@ int is_valid_bugaddr(unsigned long ip)
24776 {
24777 unsigned short ud2;
24778
24779 - if (__copy_from_user(&ud2, (const void __user *) ip, sizeof(ud2)))
24780 + if (probe_kernel_address((unsigned short *)ip, ud2))
24781 return 0;
24782
24783 return ud2 == 0x0b0f;
24784 }
24785 +
24786 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24787 +void __used pax_check_alloca(unsigned long size)
24788 +{
24789 + unsigned long sp = (unsigned long)&sp, stack_start, stack_end;
24790 + unsigned cpu, used;
24791 + char *id;
24792 +
24793 + /* check the process stack first */
24794 + stack_start = (unsigned long)task_stack_page(current);
24795 + stack_end = stack_start + THREAD_SIZE;
24796 + if (likely(stack_start <= sp && sp < stack_end)) {
24797 + unsigned long stack_left = sp & (THREAD_SIZE - 1);
24798 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24799 + return;
24800 + }
24801 +
24802 + cpu = get_cpu();
24803 +
24804 + /* check the irq stacks */
24805 + stack_end = (unsigned long)per_cpu(irq_stack_ptr, cpu);
24806 + stack_start = stack_end - IRQ_STACK_SIZE;
24807 + if (stack_start <= sp && sp < stack_end) {
24808 + unsigned long stack_left = sp & (IRQ_STACK_SIZE - 1);
24809 + put_cpu();
24810 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24811 + return;
24812 + }
24813 +
24814 + /* check the exception stacks */
24815 + used = 0;
24816 + stack_end = (unsigned long)in_exception_stack(cpu, sp, &used, &id);
24817 + stack_start = stack_end - EXCEPTION_STKSZ;
24818 + if (stack_end && stack_start <= sp && sp < stack_end) {
24819 + unsigned long stack_left = sp & (EXCEPTION_STKSZ - 1);
24820 + put_cpu();
24821 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24822 + return;
24823 + }
24824 +
24825 + put_cpu();
24826 +
24827 + /* unknown stack */
24828 + BUG();
24829 +}
24830 +EXPORT_SYMBOL(pax_check_alloca);
24831 +#endif
24832 diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
24833 index a102564..d1f0b73 100644
24834 --- a/arch/x86/kernel/e820.c
24835 +++ b/arch/x86/kernel/e820.c
24836 @@ -803,8 +803,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
24837
24838 static void early_panic(char *msg)
24839 {
24840 - early_printk(msg);
24841 - panic(msg);
24842 + early_printk("%s", msg);
24843 + panic("%s", msg);
24844 }
24845
24846 static int userdef __initdata;
24847 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
24848 index eec40f5..4fee808 100644
24849 --- a/arch/x86/kernel/early_printk.c
24850 +++ b/arch/x86/kernel/early_printk.c
24851 @@ -7,6 +7,7 @@
24852 #include <linux/pci_regs.h>
24853 #include <linux/pci_ids.h>
24854 #include <linux/errno.h>
24855 +#include <linux/sched.h>
24856 #include <asm/io.h>
24857 #include <asm/processor.h>
24858 #include <asm/fcntl.h>
24859 diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
24860 index 4d38416..ec7cc4e 100644
24861 --- a/arch/x86/kernel/espfix_64.c
24862 +++ b/arch/x86/kernel/espfix_64.c
24863 @@ -41,6 +41,7 @@
24864 #include <asm/pgalloc.h>
24865 #include <asm/setup.h>
24866 #include <asm/espfix.h>
24867 +#include <asm/bug.h>
24868
24869 /*
24870 * Note: we only need 6*8 = 48 bytes for the espfix stack, but round
24871 @@ -70,8 +71,10 @@ static DEFINE_MUTEX(espfix_init_mutex);
24872 #define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE)
24873 static void *espfix_pages[ESPFIX_MAX_PAGES];
24874
24875 -static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD]
24876 - __aligned(PAGE_SIZE);
24877 +static __page_aligned_rodata pud_t espfix_pud_page[PTRS_PER_PUD];
24878 +static __page_aligned_rodata pmd_t espfix_pmd_page[PTRS_PER_PMD];
24879 +static __page_aligned_rodata pte_t espfix_pte_page[PTRS_PER_PTE];
24880 +static __page_aligned_rodata char espfix_stack_page[ESPFIX_MAX_PAGES][PAGE_SIZE];
24881
24882 static unsigned int page_random, slot_random;
24883
24884 @@ -122,10 +125,19 @@ static void init_espfix_random(void)
24885 void __init init_espfix_bsp(void)
24886 {
24887 pgd_t *pgd_p;
24888 + pud_t *pud_p;
24889 + unsigned long index = pgd_index(ESPFIX_BASE_ADDR);
24890
24891 /* Install the espfix pud into the kernel page directory */
24892 - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
24893 - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
24894 + pgd_p = &init_level4_pgt[index];
24895 + pud_p = espfix_pud_page;
24896 + paravirt_alloc_pud(&init_mm, __pa(pud_p) >> PAGE_SHIFT);
24897 + set_pgd(pgd_p, __pgd(PGTABLE_PROT | __pa(pud_p)));
24898 +
24899 +#ifdef CONFIG_PAX_PER_CPU_PGD
24900 + clone_pgd_range(get_cpu_pgd(0, kernel) + index, swapper_pg_dir + index, 1);
24901 + clone_pgd_range(get_cpu_pgd(0, user) + index, swapper_pg_dir + index, 1);
24902 +#endif
24903
24904 /* Randomize the locations */
24905 init_espfix_random();
24906 @@ -170,35 +182,39 @@ void init_espfix_ap(int cpu)
24907 pud_p = &espfix_pud_page[pud_index(addr)];
24908 pud = *pud_p;
24909 if (!pud_present(pud)) {
24910 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
24911 -
24912 - pmd_p = (pmd_t *)page_address(page);
24913 + if (cpu)
24914 + pmd_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
24915 + else
24916 + pmd_p = espfix_pmd_page;
24917 pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask));
24918 paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT);
24919 for (n = 0; n < ESPFIX_PUD_CLONES; n++)
24920 set_pud(&pud_p[n], pud);
24921 - }
24922 + } else
24923 + BUG_ON(!cpu);
24924
24925 pmd_p = pmd_offset(&pud, addr);
24926 pmd = *pmd_p;
24927 if (!pmd_present(pmd)) {
24928 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
24929 -
24930 - pte_p = (pte_t *)page_address(page);
24931 + if (cpu)
24932 + pte_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
24933 + else
24934 + pte_p = espfix_pte_page;
24935 pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
24936 paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT);
24937 for (n = 0; n < ESPFIX_PMD_CLONES; n++)
24938 set_pmd(&pmd_p[n], pmd);
24939 - }
24940 + } else
24941 + BUG_ON(!cpu);
24942
24943 pte_p = pte_offset_kernel(&pmd, addr);
24944 - stack_page = page_address(alloc_pages_node(node, GFP_KERNEL, 0));
24945 + stack_page = espfix_stack_page[page];
24946 pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask));
24947 for (n = 0; n < ESPFIX_PTE_CLONES; n++)
24948 set_pte(&pte_p[n*PTE_STRIDE], pte);
24949
24950 /* Job is done for this CPU and any CPU which shares this page */
24951 - ACCESS_ONCE(espfix_pages[page]) = stack_page;
24952 + ACCESS_ONCE_RW(espfix_pages[page]) = stack_page;
24953
24954 unlock_done:
24955 mutex_unlock(&espfix_init_mutex);
24956 diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
24957 index d25097c..e2df353 100644
24958 --- a/arch/x86/kernel/fpu/core.c
24959 +++ b/arch/x86/kernel/fpu/core.c
24960 @@ -127,7 +127,7 @@ void __kernel_fpu_end(void)
24961 struct fpu *fpu = &current->thread.fpu;
24962
24963 if (fpu->fpregs_active)
24964 - copy_kernel_to_fpregs(&fpu->state);
24965 + copy_kernel_to_fpregs(fpu->state);
24966 else
24967 __fpregs_deactivate_hw();
24968
24969 @@ -238,7 +238,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
24970 * leak into the child task:
24971 */
24972 if (use_eager_fpu())
24973 - memset(&dst_fpu->state.xsave, 0, xstate_size);
24974 + memset(&dst_fpu->state->xsave, 0, xstate_size);
24975
24976 /*
24977 * Save current FPU registers directly into the child
24978 @@ -258,7 +258,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
24979 */
24980 preempt_disable();
24981 if (!copy_fpregs_to_fpstate(dst_fpu)) {
24982 - memcpy(&src_fpu->state, &dst_fpu->state, xstate_size);
24983 + memcpy(src_fpu->state, dst_fpu->state, xstate_size);
24984 fpregs_deactivate(src_fpu);
24985 }
24986 preempt_enable();
24987 @@ -285,7 +285,7 @@ void fpu__activate_curr(struct fpu *fpu)
24988 WARN_ON_FPU(fpu != &current->thread.fpu);
24989
24990 if (!fpu->fpstate_active) {
24991 - fpstate_init(&fpu->state);
24992 + fpstate_init(fpu->state);
24993
24994 /* Safe to do for the current task: */
24995 fpu->fpstate_active = 1;
24996 @@ -311,7 +311,7 @@ void fpu__activate_fpstate_read(struct fpu *fpu)
24997 fpu__save(fpu);
24998 } else {
24999 if (!fpu->fpstate_active) {
25000 - fpstate_init(&fpu->state);
25001 + fpstate_init(fpu->state);
25002
25003 /* Safe to do for current and for stopped child tasks: */
25004 fpu->fpstate_active = 1;
25005 @@ -344,7 +344,7 @@ void fpu__activate_fpstate_write(struct fpu *fpu)
25006 /* Invalidate any lazy state: */
25007 fpu->last_cpu = -1;
25008 } else {
25009 - fpstate_init(&fpu->state);
25010 + fpstate_init(fpu->state);
25011
25012 /* Safe to do for stopped child tasks: */
25013 fpu->fpstate_active = 1;
25014 @@ -368,7 +368,7 @@ void fpu__restore(struct fpu *fpu)
25015 /* Avoid __kernel_fpu_begin() right after fpregs_activate() */
25016 kernel_fpu_disable();
25017 fpregs_activate(fpu);
25018 - copy_kernel_to_fpregs(&fpu->state);
25019 + copy_kernel_to_fpregs(fpu->state);
25020 fpu->counter++;
25021 kernel_fpu_enable();
25022 }
25023 @@ -442,25 +442,25 @@ void fpu__clear(struct fpu *fpu)
25024 static inline unsigned short get_fpu_cwd(struct fpu *fpu)
25025 {
25026 if (cpu_has_fxsr) {
25027 - return fpu->state.fxsave.cwd;
25028 + return fpu->state->fxsave.cwd;
25029 } else {
25030 - return (unsigned short)fpu->state.fsave.cwd;
25031 + return (unsigned short)fpu->state->fsave.cwd;
25032 }
25033 }
25034
25035 static inline unsigned short get_fpu_swd(struct fpu *fpu)
25036 {
25037 if (cpu_has_fxsr) {
25038 - return fpu->state.fxsave.swd;
25039 + return fpu->state->fxsave.swd;
25040 } else {
25041 - return (unsigned short)fpu->state.fsave.swd;
25042 + return (unsigned short)fpu->state->fsave.swd;
25043 }
25044 }
25045
25046 static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
25047 {
25048 if (cpu_has_xmm) {
25049 - return fpu->state.fxsave.mxcsr;
25050 + return fpu->state->fxsave.mxcsr;
25051 } else {
25052 return MXCSR_DEFAULT;
25053 }
25054 diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
25055 index d14e9ac..13442f0 100644
25056 --- a/arch/x86/kernel/fpu/init.c
25057 +++ b/arch/x86/kernel/fpu/init.c
25058 @@ -42,7 +42,7 @@ static void fpu__init_cpu_generic(void)
25059 /* Flush out any pending x87 state: */
25060 #ifdef CONFIG_MATH_EMULATION
25061 if (!cpu_has_fpu)
25062 - fpstate_init_soft(&current->thread.fpu.state.soft);
25063 + fpstate_init_soft(&current->thread.fpu.state->soft);
25064 else
25065 #endif
25066 asm volatile ("fninit");
25067 @@ -143,42 +143,7 @@ static void __init fpu__init_system_generic(void)
25068 unsigned int xstate_size;
25069 EXPORT_SYMBOL_GPL(xstate_size);
25070
25071 -/* Enforce that 'MEMBER' is the last field of 'TYPE': */
25072 -#define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
25073 - BUILD_BUG_ON(sizeof(TYPE) != offsetofend(TYPE, MEMBER))
25074 -
25075 -/*
25076 - * We append the 'struct fpu' to the task_struct:
25077 - */
25078 -static void __init fpu__init_task_struct_size(void)
25079 -{
25080 - int task_size = sizeof(struct task_struct);
25081 -
25082 - /*
25083 - * Subtract off the static size of the register state.
25084 - * It potentially has a bunch of padding.
25085 - */
25086 - task_size -= sizeof(((struct task_struct *)0)->thread.fpu.state);
25087 -
25088 - /*
25089 - * Add back the dynamically-calculated register state
25090 - * size.
25091 - */
25092 - task_size += xstate_size;
25093 -
25094 - /*
25095 - * We dynamically size 'struct fpu', so we require that
25096 - * it be at the end of 'thread_struct' and that
25097 - * 'thread_struct' be at the end of 'task_struct'. If
25098 - * you hit a compile error here, check the structure to
25099 - * see if something got added to the end.
25100 - */
25101 - CHECK_MEMBER_AT_END_OF(struct fpu, state);
25102 - CHECK_MEMBER_AT_END_OF(struct thread_struct, fpu);
25103 - CHECK_MEMBER_AT_END_OF(struct task_struct, thread);
25104 -
25105 - arch_task_struct_size = task_size;
25106 -}
25107 +union fpregs_state init_fpregs_state;
25108
25109 /*
25110 * Set up the xstate_size based on the legacy FPU context size.
25111 @@ -331,7 +296,6 @@ void __init fpu__init_system(struct cpuinfo_x86 *c)
25112 fpu__init_system_generic();
25113 fpu__init_system_xstate_size_legacy();
25114 fpu__init_system_xstate();
25115 - fpu__init_task_struct_size();
25116
25117 fpu__init_system_ctx_switch();
25118 }
25119 diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
25120 index dc60810..6c8a1fa 100644
25121 --- a/arch/x86/kernel/fpu/regset.c
25122 +++ b/arch/x86/kernel/fpu/regset.c
25123 @@ -37,7 +37,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset,
25124 fpstate_sanitize_xstate(fpu);
25125
25126 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25127 - &fpu->state.fxsave, 0, -1);
25128 + &fpu->state->fxsave, 0, -1);
25129 }
25130
25131 int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25132 @@ -54,19 +54,19 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25133 fpstate_sanitize_xstate(fpu);
25134
25135 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25136 - &fpu->state.fxsave, 0, -1);
25137 + &fpu->state->fxsave, 0, -1);
25138
25139 /*
25140 * mxcsr reserved bits must be masked to zero for security reasons.
25141 */
25142 - fpu->state.fxsave.mxcsr &= mxcsr_feature_mask;
25143 + fpu->state->fxsave.mxcsr &= mxcsr_feature_mask;
25144
25145 /*
25146 * update the header bits in the xsave header, indicating the
25147 * presence of FP and SSE state.
25148 */
25149 if (cpu_has_xsave)
25150 - fpu->state.xsave.header.xfeatures |= XSTATE_FPSSE;
25151 + fpu->state->xsave.header.xfeatures |= XSTATE_FPSSE;
25152
25153 return ret;
25154 }
25155 @@ -84,7 +84,7 @@ int xstateregs_get(struct task_struct *target, const struct user_regset *regset,
25156
25157 fpu__activate_fpstate_read(fpu);
25158
25159 - xsave = &fpu->state.xsave;
25160 + xsave = &fpu->state->xsave;
25161
25162 /*
25163 * Copy the 48bytes defined by the software first into the xstate
25164 @@ -113,7 +113,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,
25165
25166 fpu__activate_fpstate_write(fpu);
25167
25168 - xsave = &fpu->state.xsave;
25169 + xsave = &fpu->state->xsave;
25170
25171 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, xsave, 0, -1);
25172 /*
25173 @@ -204,7 +204,7 @@ static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave)
25174 void
25175 convert_from_fxsr(struct user_i387_ia32_struct *env, struct task_struct *tsk)
25176 {
25177 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25178 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25179 struct _fpreg *to = (struct _fpreg *) &env->st_space[0];
25180 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0];
25181 int i;
25182 @@ -242,7 +242,7 @@ void convert_to_fxsr(struct task_struct *tsk,
25183 const struct user_i387_ia32_struct *env)
25184
25185 {
25186 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25187 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25188 struct _fpreg *from = (struct _fpreg *) &env->st_space[0];
25189 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0];
25190 int i;
25191 @@ -280,7 +280,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
25192
25193 if (!cpu_has_fxsr)
25194 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25195 - &fpu->state.fsave, 0,
25196 + &fpu->state->fsave, 0,
25197 -1);
25198
25199 fpstate_sanitize_xstate(fpu);
25200 @@ -311,7 +311,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25201
25202 if (!cpu_has_fxsr)
25203 return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25204 - &fpu->state.fsave, 0,
25205 + &fpu->state->fsave, 0,
25206 -1);
25207
25208 if (pos > 0 || count < sizeof(env))
25209 @@ -326,7 +326,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25210 * presence of FP.
25211 */
25212 if (cpu_has_xsave)
25213 - fpu->state.xsave.header.xfeatures |= XSTATE_FP;
25214 + fpu->state->xsave.header.xfeatures |= XSTATE_FP;
25215 return ret;
25216 }
25217
25218 diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
25219 index 6545e6d..32d7f10 100644
25220 --- a/arch/x86/kernel/fpu/signal.c
25221 +++ b/arch/x86/kernel/fpu/signal.c
25222 @@ -54,7 +54,7 @@ static inline int check_for_xstate(struct fxregs_state __user *buf,
25223 static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
25224 {
25225 if (use_fxsr()) {
25226 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25227 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25228 struct user_i387_ia32_struct env;
25229 struct _fpstate_ia32 __user *fp = buf;
25230
25231 @@ -83,18 +83,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25232
25233 /* Setup the bytes not touched by the [f]xsave and reserved for SW. */
25234 sw_bytes = ia32_frame ? &fx_sw_reserved_ia32 : &fx_sw_reserved;
25235 - err = __copy_to_user(&x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25236 + err = __copy_to_user(x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25237
25238 if (!use_xsave())
25239 return err;
25240
25241 - err |= __put_user(FP_XSTATE_MAGIC2, (__u32 *)(buf + xstate_size));
25242 + err |= __put_user(FP_XSTATE_MAGIC2, (__u32 __user *)(buf + xstate_size));
25243
25244 /*
25245 * Read the xfeatures which we copied (directly from the cpu or
25246 * from the state in task struct) to the user buffers.
25247 */
25248 - err |= __get_user(xfeatures, (__u32 *)&x->header.xfeatures);
25249 + err |= __get_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25250
25251 /*
25252 * For legacy compatible, we always set FP/SSE bits in the bit
25253 @@ -109,7 +109,7 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25254 */
25255 xfeatures |= XSTATE_FPSSE;
25256
25257 - err |= __put_user(xfeatures, (__u32 *)&x->header.xfeatures);
25258 + err |= __put_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25259
25260 return err;
25261 }
25262 @@ -118,6 +118,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25263 {
25264 int err;
25265
25266 + buf = (struct xregs_state __user *)____m(buf);
25267 if (use_xsave())
25268 err = copy_xregs_to_user(buf);
25269 else if (use_fxsr())
25270 @@ -152,7 +153,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25271 */
25272 int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
25273 {
25274 - struct xregs_state *xsave = &current->thread.fpu.state.xsave;
25275 + struct xregs_state *xsave = &current->thread.fpu.state->xsave;
25276 struct task_struct *tsk = current;
25277 int ia32_fxstate = (buf != buf_fx);
25278
25279 @@ -195,7 +196,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25280 struct user_i387_ia32_struct *ia32_env,
25281 u64 xfeatures, int fx_only)
25282 {
25283 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25284 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25285 struct xstate_header *header = &xsave->header;
25286
25287 if (use_xsave()) {
25288 @@ -228,6 +229,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25289 */
25290 static inline int copy_user_to_fpregs_zeroing(void __user *buf, u64 xbv, int fx_only)
25291 {
25292 + buf = (void __user *)____m(buf);
25293 if (use_xsave()) {
25294 if ((unsigned long)buf % 64 || fx_only) {
25295 u64 init_bv = xfeatures_mask & ~XSTATE_FPSSE;
25296 @@ -308,9 +310,9 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
25297 */
25298 fpu__drop(fpu);
25299
25300 - if (__copy_from_user(&fpu->state.xsave, buf_fx, state_size) ||
25301 + if (__copy_from_user(&fpu->state->xsave, buf_fx, state_size) ||
25302 __copy_from_user(&env, buf, sizeof(env))) {
25303 - fpstate_init(&fpu->state);
25304 + fpstate_init(fpu->state);
25305 err = -1;
25306 } else {
25307 sanitize_restored_xstate(tsk, &env, xfeatures, fx_only);
25308 diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
25309 index 2c4ac07..099cbd7 100644
25310 --- a/arch/x86/kernel/fpu/xstate.c
25311 +++ b/arch/x86/kernel/fpu/xstate.c
25312 @@ -93,14 +93,14 @@ EXPORT_SYMBOL_GPL(cpu_has_xfeatures);
25313 */
25314 void fpstate_sanitize_xstate(struct fpu *fpu)
25315 {
25316 - struct fxregs_state *fx = &fpu->state.fxsave;
25317 + struct fxregs_state *fx = &fpu->state->fxsave;
25318 int feature_bit;
25319 u64 xfeatures;
25320
25321 if (!use_xsaveopt())
25322 return;
25323
25324 - xfeatures = fpu->state.xsave.header.xfeatures;
25325 + xfeatures = fpu->state->xsave.header.xfeatures;
25326
25327 /*
25328 * None of the feature bits are in init state. So nothing else
25329 @@ -456,5 +456,5 @@ const void *get_xsave_field_ptr(int xsave_state)
25330 */
25331 fpu__save(fpu);
25332
25333 - return get_xsave_addr(&fpu->state.xsave, xsave_state);
25334 + return get_xsave_addr(&fpu->state->xsave, xsave_state);
25335 }
25336 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
25337 index 8b7b0a5..02219db 100644
25338 --- a/arch/x86/kernel/ftrace.c
25339 +++ b/arch/x86/kernel/ftrace.c
25340 @@ -89,7 +89,7 @@ static unsigned long text_ip_addr(unsigned long ip)
25341 * kernel identity mapping to modify code.
25342 */
25343 if (within(ip, (unsigned long)_text, (unsigned long)_etext))
25344 - ip = (unsigned long)__va(__pa_symbol(ip));
25345 + ip = (unsigned long)__va(__pa_symbol(ktla_ktva(ip)));
25346
25347 return ip;
25348 }
25349 @@ -105,6 +105,8 @@ ftrace_modify_code_direct(unsigned long ip, unsigned const char *old_code,
25350 {
25351 unsigned char replaced[MCOUNT_INSN_SIZE];
25352
25353 + ip = ktla_ktva(ip);
25354 +
25355 /*
25356 * Note: Due to modules and __init, code can
25357 * disappear and change, we need to protect against faulting
25358 @@ -230,7 +232,7 @@ static int update_ftrace_func(unsigned long ip, void *new)
25359 unsigned char old[MCOUNT_INSN_SIZE];
25360 int ret;
25361
25362 - memcpy(old, (void *)ip, MCOUNT_INSN_SIZE);
25363 + memcpy(old, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE);
25364
25365 ftrace_update_func = ip;
25366 /* Make sure the breakpoints see the ftrace_update_func update */
25367 @@ -311,7 +313,7 @@ static int add_break(unsigned long ip, const char *old)
25368 unsigned char replaced[MCOUNT_INSN_SIZE];
25369 unsigned char brk = BREAKPOINT_INSTRUCTION;
25370
25371 - if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
25372 + if (probe_kernel_read(replaced, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE))
25373 return -EFAULT;
25374
25375 /* Make sure it is what we expect it to be */
25376 @@ -670,11 +672,11 @@ static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr)
25377 /* Module allocation simplifies allocating memory for code */
25378 static inline void *alloc_tramp(unsigned long size)
25379 {
25380 - return module_alloc(size);
25381 + return module_alloc_exec(size);
25382 }
25383 static inline void tramp_free(void *tramp)
25384 {
25385 - module_memfree(tramp);
25386 + module_memfree_exec(tramp);
25387 }
25388 #else
25389 /* Trampolines can only be created if modules are supported */
25390 @@ -753,7 +755,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25391 *tramp_size = size + MCOUNT_INSN_SIZE + sizeof(void *);
25392
25393 /* Copy ftrace_caller onto the trampoline memory */
25394 + pax_open_kernel();
25395 ret = probe_kernel_read(trampoline, (void *)start_offset, size);
25396 + pax_close_kernel();
25397 if (WARN_ON(ret < 0)) {
25398 tramp_free(trampoline);
25399 return 0;
25400 @@ -763,6 +767,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25401
25402 /* The trampoline ends with a jmp to ftrace_return */
25403 jmp = ftrace_jmp_replace(ip, (unsigned long)ftrace_return);
25404 + pax_open_kernel();
25405 memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE);
25406
25407 /*
25408 @@ -775,6 +780,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25409
25410 ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE);
25411 *ptr = (unsigned long)ops;
25412 + pax_close_kernel();
25413
25414 op_offset -= start_offset;
25415 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE);
25416 @@ -792,7 +798,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25417 op_ptr.offset = offset;
25418
25419 /* put in the new offset to the ftrace_ops */
25420 + pax_open_kernel();
25421 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE);
25422 + pax_close_kernel();
25423
25424 /* ALLOC_TRAMP flags lets us know we created it */
25425 ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP;
25426 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
25427 index f129a9a..af8f6da 100644
25428 --- a/arch/x86/kernel/head64.c
25429 +++ b/arch/x86/kernel/head64.c
25430 @@ -68,12 +68,12 @@ again:
25431 pgd = *pgd_p;
25432
25433 /*
25434 - * The use of __START_KERNEL_map rather than __PAGE_OFFSET here is
25435 - * critical -- __PAGE_OFFSET would point us back into the dynamic
25436 + * The use of __early_va rather than __va here is critical:
25437 + * __va would point us back into the dynamic
25438 * range and we might end up looping forever...
25439 */
25440 if (pgd)
25441 - pud_p = (pudval_t *)((pgd & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25442 + pud_p = (pudval_t *)(__early_va(pgd & PTE_PFN_MASK));
25443 else {
25444 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25445 reset_early_page_tables();
25446 @@ -83,13 +83,13 @@ again:
25447 pud_p = (pudval_t *)early_dynamic_pgts[next_early_pgt++];
25448 for (i = 0; i < PTRS_PER_PUD; i++)
25449 pud_p[i] = 0;
25450 - *pgd_p = (pgdval_t)pud_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25451 + *pgd_p = (pgdval_t)__pa(pud_p) + _KERNPG_TABLE;
25452 }
25453 pud_p += pud_index(address);
25454 pud = *pud_p;
25455
25456 if (pud)
25457 - pmd_p = (pmdval_t *)((pud & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25458 + pmd_p = (pmdval_t *)(__early_va(pud & PTE_PFN_MASK));
25459 else {
25460 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25461 reset_early_page_tables();
25462 @@ -99,7 +99,7 @@ again:
25463 pmd_p = (pmdval_t *)early_dynamic_pgts[next_early_pgt++];
25464 for (i = 0; i < PTRS_PER_PMD; i++)
25465 pmd_p[i] = 0;
25466 - *pud_p = (pudval_t)pmd_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25467 + *pud_p = (pudval_t)__pa(pmd_p) + _KERNPG_TABLE;
25468 }
25469 pmd = (physaddr & PMD_MASK) + early_pmd_flags;
25470 pmd_p[pmd_index(address)] = pmd;
25471 @@ -163,8 +163,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
25472
25473 clear_bss();
25474
25475 - clear_page(init_level4_pgt);
25476 -
25477 kasan_early_init();
25478
25479 for (i = 0; i < NUM_EXCEPTION_VECTORS; i++)
25480 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
25481 index 0e2d96f..5889003 100644
25482 --- a/arch/x86/kernel/head_32.S
25483 +++ b/arch/x86/kernel/head_32.S
25484 @@ -27,6 +27,12 @@
25485 /* Physical address */
25486 #define pa(X) ((X) - __PAGE_OFFSET)
25487
25488 +#ifdef CONFIG_PAX_KERNEXEC
25489 +#define ta(X) (X)
25490 +#else
25491 +#define ta(X) ((X) - __PAGE_OFFSET)
25492 +#endif
25493 +
25494 /*
25495 * References to members of the new_cpu_data structure.
25496 */
25497 @@ -56,11 +62,7 @@
25498 * and small than max_low_pfn, otherwise will waste some page table entries
25499 */
25500
25501 -#if PTRS_PER_PMD > 1
25502 -#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
25503 -#else
25504 -#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
25505 -#endif
25506 +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE)
25507
25508 /*
25509 * Number of possible pages in the lowmem region.
25510 @@ -86,6 +88,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
25511 RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25512
25513 /*
25514 + * Real beginning of normal "text" segment
25515 + */
25516 +ENTRY(stext)
25517 +ENTRY(_stext)
25518 +
25519 +/*
25520 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
25521 * %esi points to the real-mode code as a 32-bit pointer.
25522 * CS and DS must be 4 GB flat segments, but we don't depend on
25523 @@ -93,6 +101,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25524 * can.
25525 */
25526 __HEAD
25527 +
25528 +#ifdef CONFIG_PAX_KERNEXEC
25529 + jmp startup_32
25530 +/* PaX: fill first page in .text with int3 to catch NULL derefs in kernel mode */
25531 +.fill PAGE_SIZE-5,1,0xcc
25532 +#endif
25533 +
25534 ENTRY(startup_32)
25535 movl pa(stack_start),%ecx
25536
25537 @@ -114,6 +129,66 @@ ENTRY(startup_32)
25538 2:
25539 leal -__PAGE_OFFSET(%ecx),%esp
25540
25541 +#ifdef CONFIG_SMP
25542 + movl $pa(cpu_gdt_table),%edi
25543 + movl $__per_cpu_load,%eax
25544 + movw %ax,GDT_ENTRY_PERCPU * 8 + 2(%edi)
25545 + rorl $16,%eax
25546 + movb %al,GDT_ENTRY_PERCPU * 8 + 4(%edi)
25547 + movb %ah,GDT_ENTRY_PERCPU * 8 + 7(%edi)
25548 + movl $__per_cpu_end - 1,%eax
25549 + subl $__per_cpu_start,%eax
25550 + cmpl $0x100000,%eax
25551 + jb 1f
25552 + shrl $PAGE_SHIFT,%eax
25553 + orb $0x80,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25554 +1:
25555 + movw %ax,GDT_ENTRY_PERCPU * 8 + 0(%edi)
25556 + shrl $16,%eax
25557 + orb %al,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25558 +#endif
25559 +
25560 +#ifdef CONFIG_PAX_MEMORY_UDEREF
25561 + movl $NR_CPUS,%ecx
25562 + movl $pa(cpu_gdt_table),%edi
25563 +1:
25564 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c09700),GDT_ENTRY_KERNEL_DS * 8 + 4(%edi)
25565 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0fb00),GDT_ENTRY_DEFAULT_USER_CS * 8 + 4(%edi)
25566 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0f300),GDT_ENTRY_DEFAULT_USER_DS * 8 + 4(%edi)
25567 + addl $PAGE_SIZE_asm,%edi
25568 + loop 1b
25569 +#endif
25570 +
25571 +#ifdef CONFIG_PAX_KERNEXEC
25572 + movl $pa(boot_gdt),%edi
25573 + movl $__LOAD_PHYSICAL_ADDR,%eax
25574 + movw %ax,GDT_ENTRY_BOOT_CS * 8 + 2(%edi)
25575 + rorl $16,%eax
25576 + movb %al,GDT_ENTRY_BOOT_CS * 8 + 4(%edi)
25577 + movb %ah,GDT_ENTRY_BOOT_CS * 8 + 7(%edi)
25578 + rorl $16,%eax
25579 +
25580 + ljmp $(__BOOT_CS),$1f
25581 +1:
25582 +
25583 + movl $NR_CPUS,%ecx
25584 + movl $pa(cpu_gdt_table),%edi
25585 + addl $__PAGE_OFFSET,%eax
25586 +1:
25587 + movb $0xc0,GDT_ENTRY_KERNEL_CS * 8 + 6(%edi)
25588 + movb $0xc0,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 6(%edi)
25589 + movw %ax,GDT_ENTRY_KERNEL_CS * 8 + 2(%edi)
25590 + movw %ax,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 2(%edi)
25591 + rorl $16,%eax
25592 + movb %al,GDT_ENTRY_KERNEL_CS * 8 + 4(%edi)
25593 + movb %al,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 4(%edi)
25594 + movb %ah,GDT_ENTRY_KERNEL_CS * 8 + 7(%edi)
25595 + movb %ah,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 7(%edi)
25596 + rorl $16,%eax
25597 + addl $PAGE_SIZE_asm,%edi
25598 + loop 1b
25599 +#endif
25600 +
25601 /*
25602 * Clear BSS first so that there are no surprises...
25603 */
25604 @@ -209,8 +284,11 @@ ENTRY(startup_32)
25605 movl %eax, pa(max_pfn_mapped)
25606
25607 /* Do early initialization of the fixmap area */
25608 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25609 - movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
25610 +#ifdef CONFIG_COMPAT_VDSO
25611 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_pg_pmd+0x1000*KPMDS-8)
25612 +#else
25613 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_pg_pmd+0x1000*KPMDS-8)
25614 +#endif
25615 #else /* Not PAE */
25616
25617 page_pde_offset = (__PAGE_OFFSET >> 20);
25618 @@ -240,8 +318,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25619 movl %eax, pa(max_pfn_mapped)
25620
25621 /* Do early initialization of the fixmap area */
25622 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25623 - movl %eax,pa(initial_page_table+0xffc)
25624 +#ifdef CONFIG_COMPAT_VDSO
25625 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_page_table+0xffc)
25626 +#else
25627 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_page_table+0xffc)
25628 +#endif
25629 #endif
25630
25631 #ifdef CONFIG_PARAVIRT
25632 @@ -255,9 +336,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25633 cmpl $num_subarch_entries, %eax
25634 jae bad_subarch
25635
25636 - movl pa(subarch_entries)(,%eax,4), %eax
25637 - subl $__PAGE_OFFSET, %eax
25638 - jmp *%eax
25639 + jmp *pa(subarch_entries)(,%eax,4)
25640
25641 bad_subarch:
25642 WEAK(lguest_entry)
25643 @@ -269,10 +348,10 @@ WEAK(xen_entry)
25644 __INITDATA
25645
25646 subarch_entries:
25647 - .long default_entry /* normal x86/PC */
25648 - .long lguest_entry /* lguest hypervisor */
25649 - .long xen_entry /* Xen hypervisor */
25650 - .long default_entry /* Moorestown MID */
25651 + .long ta(default_entry) /* normal x86/PC */
25652 + .long ta(lguest_entry) /* lguest hypervisor */
25653 + .long ta(xen_entry) /* Xen hypervisor */
25654 + .long ta(default_entry) /* Moorestown MID */
25655 num_subarch_entries = (. - subarch_entries) / 4
25656 .previous
25657 #else
25658 @@ -362,6 +441,7 @@ default_entry:
25659 movl pa(mmu_cr4_features),%eax
25660 movl %eax,%cr4
25661
25662 +#ifdef CONFIG_X86_PAE
25663 testb $X86_CR4_PAE, %al # check if PAE is enabled
25664 jz enable_paging
25665
25666 @@ -390,6 +470,9 @@ default_entry:
25667 /* Make changes effective */
25668 wrmsr
25669
25670 + btsl $_PAGE_BIT_NX-32,pa(__supported_pte_mask+4)
25671 +#endif
25672 +
25673 enable_paging:
25674
25675 /*
25676 @@ -457,14 +540,20 @@ is486:
25677 1: movl $(__KERNEL_DS),%eax # reload all the segment registers
25678 movl %eax,%ss # after changing gdt.
25679
25680 - movl $(__USER_DS),%eax # DS/ES contains default USER segment
25681 +# movl $(__KERNEL_DS),%eax # DS/ES contains default KERNEL segment
25682 movl %eax,%ds
25683 movl %eax,%es
25684
25685 movl $(__KERNEL_PERCPU), %eax
25686 movl %eax,%fs # set this cpu's percpu
25687
25688 +#ifdef CONFIG_CC_STACKPROTECTOR
25689 movl $(__KERNEL_STACK_CANARY),%eax
25690 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
25691 + movl $(__USER_DS),%eax
25692 +#else
25693 + xorl %eax,%eax
25694 +#endif
25695 movl %eax,%gs
25696
25697 xorl %eax,%eax # Clear LDT
25698 @@ -521,8 +610,11 @@ setup_once:
25699 * relocation. Manually set base address in stack canary
25700 * segment descriptor.
25701 */
25702 - movl $gdt_page,%eax
25703 + movl $cpu_gdt_table,%eax
25704 movl $stack_canary,%ecx
25705 +#ifdef CONFIG_SMP
25706 + addl $__per_cpu_load,%ecx
25707 +#endif
25708 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
25709 shrl $16, %ecx
25710 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
25711 @@ -559,7 +651,7 @@ early_idt_handler_common:
25712 cmpl $2,(%esp) # X86_TRAP_NMI
25713 je .Lis_nmi # Ignore NMI
25714
25715 - cmpl $2,%ss:early_recursion_flag
25716 + cmpl $1,%ss:early_recursion_flag
25717 je hlt_loop
25718 incl %ss:early_recursion_flag
25719
25720 @@ -597,8 +689,8 @@ early_idt_handler_common:
25721 pushl (20+6*4)(%esp) /* trapno */
25722 pushl $fault_msg
25723 call printk
25724 -#endif
25725 call dump_stack
25726 +#endif
25727 hlt_loop:
25728 hlt
25729 jmp hlt_loop
25730 @@ -618,8 +710,11 @@ ENDPROC(early_idt_handler_common)
25731 /* This is the default interrupt "handler" :-) */
25732 ALIGN
25733 ignore_int:
25734 - cld
25735 #ifdef CONFIG_PRINTK
25736 + cmpl $2,%ss:early_recursion_flag
25737 + je hlt_loop
25738 + incl %ss:early_recursion_flag
25739 + cld
25740 pushl %eax
25741 pushl %ecx
25742 pushl %edx
25743 @@ -628,9 +723,6 @@ ignore_int:
25744 movl $(__KERNEL_DS),%eax
25745 movl %eax,%ds
25746 movl %eax,%es
25747 - cmpl $2,early_recursion_flag
25748 - je hlt_loop
25749 - incl early_recursion_flag
25750 pushl 16(%esp)
25751 pushl 24(%esp)
25752 pushl 32(%esp)
25753 @@ -664,29 +756,34 @@ ENTRY(setup_once_ref)
25754 /*
25755 * BSS section
25756 */
25757 -__PAGE_ALIGNED_BSS
25758 - .align PAGE_SIZE
25759 #ifdef CONFIG_X86_PAE
25760 +.section .initial_pg_pmd,"a",@progbits
25761 initial_pg_pmd:
25762 .fill 1024*KPMDS,4,0
25763 #else
25764 +.section .initial_page_table,"a",@progbits
25765 ENTRY(initial_page_table)
25766 .fill 1024,4,0
25767 #endif
25768 +.section .initial_pg_fixmap,"a",@progbits
25769 initial_pg_fixmap:
25770 .fill 1024,4,0
25771 +.section .empty_zero_page,"a",@progbits
25772 ENTRY(empty_zero_page)
25773 .fill 4096,1,0
25774 +.section .swapper_pg_dir,"a",@progbits
25775 ENTRY(swapper_pg_dir)
25776 +#ifdef CONFIG_X86_PAE
25777 + .fill 4,8,0
25778 +#else
25779 .fill 1024,4,0
25780 +#endif
25781
25782 /*
25783 * This starts the data section.
25784 */
25785 #ifdef CONFIG_X86_PAE
25786 -__PAGE_ALIGNED_DATA
25787 - /* Page-aligned for the benefit of paravirt? */
25788 - .align PAGE_SIZE
25789 +.section .initial_page_table,"a",@progbits
25790 ENTRY(initial_page_table)
25791 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
25792 # if KPMDS == 3
25793 @@ -705,12 +802,20 @@ ENTRY(initial_page_table)
25794 # error "Kernel PMDs should be 1, 2 or 3"
25795 # endif
25796 .align PAGE_SIZE /* needs to be page-sized too */
25797 +
25798 +#ifdef CONFIG_PAX_PER_CPU_PGD
25799 +ENTRY(cpu_pgd)
25800 + .rept 2*NR_CPUS
25801 + .fill 4,8,0
25802 + .endr
25803 +#endif
25804 +
25805 #endif
25806
25807 .data
25808 .balign 4
25809 ENTRY(stack_start)
25810 - .long init_thread_union+THREAD_SIZE
25811 + .long init_thread_union+THREAD_SIZE-8
25812
25813 __INITRODATA
25814 int_msg:
25815 @@ -738,7 +843,7 @@ fault_msg:
25816 * segment size, and 32-bit linear address value:
25817 */
25818
25819 - .data
25820 +.section .rodata,"a",@progbits
25821 .globl boot_gdt_descr
25822 .globl idt_descr
25823
25824 @@ -747,7 +852,7 @@ fault_msg:
25825 .word 0 # 32 bit align gdt_desc.address
25826 boot_gdt_descr:
25827 .word __BOOT_DS+7
25828 - .long boot_gdt - __PAGE_OFFSET
25829 + .long pa(boot_gdt)
25830
25831 .word 0 # 32-bit align idt_desc.address
25832 idt_descr:
25833 @@ -758,7 +863,7 @@ idt_descr:
25834 .word 0 # 32 bit align gdt_desc.address
25835 ENTRY(early_gdt_descr)
25836 .word GDT_ENTRIES*8-1
25837 - .long gdt_page /* Overwritten for secondary CPUs */
25838 + .long cpu_gdt_table /* Overwritten for secondary CPUs */
25839
25840 /*
25841 * The boot_gdt must mirror the equivalent in setup.S and is
25842 @@ -767,5 +872,65 @@ ENTRY(early_gdt_descr)
25843 .align L1_CACHE_BYTES
25844 ENTRY(boot_gdt)
25845 .fill GDT_ENTRY_BOOT_CS,8,0
25846 - .quad 0x00cf9a000000ffff /* kernel 4GB code at 0x00000000 */
25847 - .quad 0x00cf92000000ffff /* kernel 4GB data at 0x00000000 */
25848 + .quad 0x00cf9b000000ffff /* kernel 4GB code at 0x00000000 */
25849 + .quad 0x00cf93000000ffff /* kernel 4GB data at 0x00000000 */
25850 +
25851 + .align PAGE_SIZE_asm
25852 +ENTRY(cpu_gdt_table)
25853 + .rept NR_CPUS
25854 + .quad 0x0000000000000000 /* NULL descriptor */
25855 + .quad 0x0000000000000000 /* 0x0b reserved */
25856 + .quad 0x0000000000000000 /* 0x13 reserved */
25857 + .quad 0x0000000000000000 /* 0x1b reserved */
25858 +
25859 +#ifdef CONFIG_PAX_KERNEXEC
25860 + .quad 0x00cf9b000000ffff /* 0x20 alternate kernel 4GB code at 0x00000000 */
25861 +#else
25862 + .quad 0x0000000000000000 /* 0x20 unused */
25863 +#endif
25864 +
25865 + .quad 0x0000000000000000 /* 0x28 unused */
25866 + .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
25867 + .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
25868 + .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
25869 + .quad 0x0000000000000000 /* 0x4b reserved */
25870 + .quad 0x0000000000000000 /* 0x53 reserved */
25871 + .quad 0x0000000000000000 /* 0x5b reserved */
25872 +
25873 + .quad 0x00cf9b000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
25874 + .quad 0x00cf93000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
25875 + .quad 0x00cffb000000ffff /* 0x73 user 4GB code at 0x00000000 */
25876 + .quad 0x00cff3000000ffff /* 0x7b user 4GB data at 0x00000000 */
25877 +
25878 + .quad 0x0000000000000000 /* 0x80 TSS descriptor */
25879 + .quad 0x0000000000000000 /* 0x88 LDT descriptor */
25880 +
25881 + /*
25882 + * Segments used for calling PnP BIOS have byte granularity.
25883 + * The code segments and data segments have fixed 64k limits,
25884 + * the transfer segment sizes are set at run time.
25885 + */
25886 + .quad 0x00409b000000ffff /* 0x90 32-bit code */
25887 + .quad 0x00009b000000ffff /* 0x98 16-bit code */
25888 + .quad 0x000093000000ffff /* 0xa0 16-bit data */
25889 + .quad 0x0000930000000000 /* 0xa8 16-bit data */
25890 + .quad 0x0000930000000000 /* 0xb0 16-bit data */
25891 +
25892 + /*
25893 + * The APM segments have byte granularity and their bases
25894 + * are set at run time. All have 64k limits.
25895 + */
25896 + .quad 0x00409b000000ffff /* 0xb8 APM CS code */
25897 + .quad 0x00009b000000ffff /* 0xc0 APM CS 16 code (16 bit) */
25898 + .quad 0x004093000000ffff /* 0xc8 APM DS data */
25899 +
25900 + .quad 0x00c093000000ffff /* 0xd0 - ESPFIX SS */
25901 + .quad 0x0040930000000000 /* 0xd8 - PERCPU */
25902 + .quad 0x0040910000000017 /* 0xe0 - STACK_CANARY */
25903 + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_CS */
25904 + .quad 0x0000000000000000 /* 0xf0 - PCIBIOS_DS */
25905 + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
25906 +
25907 + /* Be sure this is zeroed to avoid false validations in Xen */
25908 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
25909 + .endr
25910 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
25911 index ffdc0e8..f429d4f 100644
25912 --- a/arch/x86/kernel/head_64.S
25913 +++ b/arch/x86/kernel/head_64.S
25914 @@ -20,6 +20,8 @@
25915 #include <asm/processor-flags.h>
25916 #include <asm/percpu.h>
25917 #include <asm/nops.h>
25918 +#include <asm/cpufeature.h>
25919 +#include <asm/alternative-asm.h>
25920
25921 #ifdef CONFIG_PARAVIRT
25922 #include <asm/asm-offsets.h>
25923 @@ -41,6 +43,12 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET)
25924 L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET)
25925 L4_START_KERNEL = pgd_index(__START_KERNEL_map)
25926 L3_START_KERNEL = pud_index(__START_KERNEL_map)
25927 +L4_VMALLOC_START = pgd_index(VMALLOC_START)
25928 +L3_VMALLOC_START = pud_index(VMALLOC_START)
25929 +L4_VMALLOC_END = pgd_index(VMALLOC_END)
25930 +L3_VMALLOC_END = pud_index(VMALLOC_END)
25931 +L4_VMEMMAP_START = pgd_index(VMEMMAP_START)
25932 +L3_VMEMMAP_START = pud_index(VMEMMAP_START)
25933
25934 .text
25935 __HEAD
25936 @@ -92,11 +100,33 @@ startup_64:
25937 * Fixup the physical addresses in the page table
25938 */
25939 addq %rbp, early_level4_pgt + (L4_START_KERNEL*8)(%rip)
25940 + addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip)
25941 + addq %rbp, init_level4_pgt + (L4_VMALLOC_START*8)(%rip)
25942 + addq %rbp, init_level4_pgt + (L4_VMALLOC_END*8)(%rip)
25943 + addq %rbp, init_level4_pgt + (L4_VMEMMAP_START*8)(%rip)
25944 + addq %rbp, init_level4_pgt + (L4_START_KERNEL*8)(%rip)
25945
25946 - addq %rbp, level3_kernel_pgt + (510*8)(%rip)
25947 - addq %rbp, level3_kernel_pgt + (511*8)(%rip)
25948 + addq %rbp, level3_ident_pgt + (0*8)(%rip)
25949 +#ifndef CONFIG_XEN
25950 + addq %rbp, level3_ident_pgt + (1*8)(%rip)
25951 +#endif
25952
25953 + addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
25954 +
25955 + addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
25956 + addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
25957 +
25958 + addq %rbp, level2_ident_pgt + (0*8)(%rip)
25959 +
25960 + addq %rbp, level2_fixmap_pgt + (0*8)(%rip)
25961 + addq %rbp, level2_fixmap_pgt + (1*8)(%rip)
25962 + addq %rbp, level2_fixmap_pgt + (2*8)(%rip)
25963 + addq %rbp, level2_fixmap_pgt + (3*8)(%rip)
25964 +
25965 + addq %rbp, level2_fixmap_pgt + (504*8)(%rip)
25966 + addq %rbp, level2_fixmap_pgt + (505*8)(%rip)
25967 addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
25968 + addq %rbp, level2_fixmap_pgt + (507*8)(%rip)
25969
25970 /*
25971 * Set up the identity mapping for the switchover. These
25972 @@ -180,11 +210,12 @@ ENTRY(secondary_startup_64)
25973 /* Sanitize CPU configuration */
25974 call verify_cpu
25975
25976 + orq $-1, %rbp
25977 movq $(init_level4_pgt - __START_KERNEL_map), %rax
25978 1:
25979
25980 - /* Enable PAE mode and PGE */
25981 - movl $(X86_CR4_PAE | X86_CR4_PGE), %ecx
25982 + /* Enable PAE mode and PSE/PGE */
25983 + movl $(X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE), %ecx
25984 movq %rcx, %cr4
25985
25986 /* Setup early boot stage 4 level pagetables. */
25987 @@ -205,10 +236,21 @@ ENTRY(secondary_startup_64)
25988 movl $MSR_EFER, %ecx
25989 rdmsr
25990 btsl $_EFER_SCE, %eax /* Enable System Call */
25991 - btl $20,%edi /* No Execute supported? */
25992 + btl $(X86_FEATURE_NX & 31),%edi /* No Execute supported? */
25993 jnc 1f
25994 btsl $_EFER_NX, %eax
25995 + cmpq $-1, %rbp
25996 + je 1f
25997 btsq $_PAGE_BIT_NX,early_pmd_flags(%rip)
25998 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_PAGE_OFFSET(%rip)
25999 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_START(%rip)
26000 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_END(%rip)
26001 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMEMMAP_START(%rip)
26002 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*504(%rip)
26003 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*505(%rip)
26004 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*506(%rip)
26005 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*507(%rip)
26006 + btsq $_PAGE_BIT_NX, __supported_pte_mask(%rip)
26007 1: wrmsr /* Make changes effective */
26008
26009 /* Setup cr0 */
26010 @@ -288,6 +330,7 @@ ENTRY(secondary_startup_64)
26011 * REX.W + FF /5 JMP m16:64 Jump far, absolute indirect,
26012 * address given in m16:64.
26013 */
26014 + pax_set_fptr_mask
26015 movq initial_code(%rip),%rax
26016 pushq $0 # fake return address to stop unwinder
26017 pushq $__KERNEL_CS # set correct cs
26018 @@ -321,7 +364,7 @@ ENDPROC(start_cpu0)
26019 .quad INIT_PER_CPU_VAR(irq_stack_union)
26020
26021 GLOBAL(stack_start)
26022 - .quad init_thread_union+THREAD_SIZE-8
26023 + .quad init_thread_union+THREAD_SIZE-16
26024 .word 0
26025 __FINITDATA
26026
26027 @@ -401,7 +444,7 @@ early_idt_handler_common:
26028 call dump_stack
26029 #ifdef CONFIG_KALLSYMS
26030 leaq early_idt_ripmsg(%rip),%rdi
26031 - movq 40(%rsp),%rsi # %rip again
26032 + movq 88(%rsp),%rsi # %rip again
26033 call __print_symbol
26034 #endif
26035 #endif /* EARLY_PRINTK */
26036 @@ -430,6 +473,7 @@ ENDPROC(early_idt_handler_common)
26037 early_recursion_flag:
26038 .long 0
26039
26040 + .section .rodata,"a",@progbits
26041 #ifdef CONFIG_EARLY_PRINTK
26042 early_idt_msg:
26043 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
26044 @@ -452,40 +496,67 @@ GLOBAL(name)
26045 __INITDATA
26046 NEXT_PAGE(early_level4_pgt)
26047 .fill 511,8,0
26048 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26049 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26050
26051 NEXT_PAGE(early_dynamic_pgts)
26052 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
26053
26054 - .data
26055 + .section .rodata,"a",@progbits
26056
26057 -#ifndef CONFIG_XEN
26058 NEXT_PAGE(init_level4_pgt)
26059 - .fill 512,8,0
26060 -#else
26061 -NEXT_PAGE(init_level4_pgt)
26062 - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26063 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
26064 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26065 + .org init_level4_pgt + L4_VMALLOC_START*8, 0
26066 + .quad level3_vmalloc_start_pgt - __START_KERNEL_map + _KERNPG_TABLE
26067 + .org init_level4_pgt + L4_VMALLOC_END*8, 0
26068 + .quad level3_vmalloc_end_pgt - __START_KERNEL_map + _KERNPG_TABLE
26069 + .org init_level4_pgt + L4_VMEMMAP_START*8, 0
26070 + .quad level3_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26071 .org init_level4_pgt + L4_START_KERNEL*8, 0
26072 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
26073 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26074 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26075 +
26076 +#ifdef CONFIG_PAX_PER_CPU_PGD
26077 +NEXT_PAGE(cpu_pgd)
26078 + .rept 2*NR_CPUS
26079 + .fill 512,8,0
26080 + .endr
26081 +#endif
26082
26083 NEXT_PAGE(level3_ident_pgt)
26084 .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26085 +#ifdef CONFIG_XEN
26086 .fill 511, 8, 0
26087 +#else
26088 + .quad level2_ident_pgt + PAGE_SIZE - __START_KERNEL_map + _KERNPG_TABLE
26089 + .fill 510,8,0
26090 +#endif
26091 +
26092 +NEXT_PAGE(level3_vmalloc_start_pgt)
26093 + .fill 512,8,0
26094 +
26095 +NEXT_PAGE(level3_vmalloc_end_pgt)
26096 + .fill 512,8,0
26097 +
26098 +NEXT_PAGE(level3_vmemmap_pgt)
26099 + .fill L3_VMEMMAP_START,8,0
26100 + .quad level2_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26101 +
26102 NEXT_PAGE(level2_ident_pgt)
26103 - /* Since I easily can, map the first 1G.
26104 + .quad level1_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26105 + /* Since I easily can, map the first 2G.
26106 * Don't set NX because code runs from these pages.
26107 */
26108 - PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD)
26109 -#endif
26110 + PMDS(PMD_SIZE, __PAGE_KERNEL_IDENT_LARGE_EXEC, 2*PTRS_PER_PMD - 1)
26111
26112 NEXT_PAGE(level3_kernel_pgt)
26113 .fill L3_START_KERNEL,8,0
26114 /* (2^48-(2*1024*1024*1024)-((2^39)*511))/(2^30) = 510 */
26115 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26116 - .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26117 + .quad level2_fixmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26118 +
26119 +NEXT_PAGE(level2_vmemmap_pgt)
26120 + .fill 512,8,0
26121
26122 NEXT_PAGE(level2_kernel_pgt)
26123 /*
26124 @@ -502,31 +573,79 @@ NEXT_PAGE(level2_kernel_pgt)
26125 KERNEL_IMAGE_SIZE/PMD_SIZE)
26126
26127 NEXT_PAGE(level2_fixmap_pgt)
26128 - .fill 506,8,0
26129 - .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26130 - /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
26131 - .fill 5,8,0
26132 + .quad level1_modules_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26133 + .quad level1_modules_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26134 + .quad level1_modules_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26135 + .quad level1_modules_pgt - __START_KERNEL_map + 3 * PAGE_SIZE + _KERNPG_TABLE
26136 + .fill 500,8,0
26137 + .quad level1_fixmap_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26138 + .quad level1_fixmap_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26139 + .quad level1_fixmap_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26140 + .quad level1_vsyscall_pgt - __START_KERNEL_map + _KERNPG_TABLE
26141 + /* 6MB reserved for vsyscalls + a 2MB hole = 3 + 1 entries */
26142 + .fill 4,8,0
26143 +
26144 +NEXT_PAGE(level1_ident_pgt)
26145 + .fill 512,8,0
26146 +
26147 +NEXT_PAGE(level1_modules_pgt)
26148 + .fill 4*512,8,0
26149
26150 NEXT_PAGE(level1_fixmap_pgt)
26151 + .fill 3*512,8,0
26152 +
26153 +NEXT_PAGE(level1_vsyscall_pgt)
26154 .fill 512,8,0
26155
26156 #undef PMDS
26157
26158 - .data
26159 + .align PAGE_SIZE
26160 +ENTRY(cpu_gdt_table)
26161 + .rept NR_CPUS
26162 + .quad 0x0000000000000000 /* NULL descriptor */
26163 + .quad 0x00cf9b000000ffff /* __KERNEL32_CS */
26164 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
26165 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
26166 + .quad 0x00cffb000000ffff /* __USER32_CS */
26167 + .quad 0x00cff3000000ffff /* __USER_DS, __USER32_DS */
26168 + .quad 0x00affb000000ffff /* __USER_CS */
26169 +
26170 +#ifdef CONFIG_PAX_KERNEXEC
26171 + .quad 0x00af9b000000ffff /* __KERNEXEC_KERNEL_CS */
26172 +#else
26173 + .quad 0x0 /* unused */
26174 +#endif
26175 +
26176 + .quad 0,0 /* TSS */
26177 + .quad 0,0 /* LDT */
26178 + .quad 0,0,0 /* three TLS descriptors */
26179 + .quad 0x0000f40000000000 /* node/CPU stored in limit */
26180 + /* asm/segment.h:GDT_ENTRIES must match this */
26181 +
26182 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26183 + .quad 0x00cf93000000ffff /* __UDEREF_KERNEL_DS */
26184 +#else
26185 + .quad 0x0 /* unused */
26186 +#endif
26187 +
26188 + /* zero the remaining page */
26189 + .fill PAGE_SIZE / 8 - GDT_ENTRIES,8,0
26190 + .endr
26191 +
26192 .align 16
26193 .globl early_gdt_descr
26194 early_gdt_descr:
26195 .word GDT_ENTRIES*8-1
26196 early_gdt_descr_base:
26197 - .quad INIT_PER_CPU_VAR(gdt_page)
26198 + .quad cpu_gdt_table
26199
26200 ENTRY(phys_base)
26201 /* This must match the first entry in level2_kernel_pgt */
26202 .quad 0x0000000000000000
26203
26204 #include "../../x86/xen/xen-head.S"
26205 -
26206 - __PAGE_ALIGNED_BSS
26207 +
26208 + .section .rodata,"a",@progbits
26209 NEXT_PAGE(empty_zero_page)
26210 .skip PAGE_SIZE
26211
26212 diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
26213 index 64341aa..b1e6632 100644
26214 --- a/arch/x86/kernel/i386_ksyms_32.c
26215 +++ b/arch/x86/kernel/i386_ksyms_32.c
26216 @@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
26217 EXPORT_SYMBOL(cmpxchg8b_emu);
26218 #endif
26219
26220 +EXPORT_SYMBOL_GPL(cpu_gdt_table);
26221 +
26222 /* Networking helper routines. */
26223 EXPORT_SYMBOL(csum_partial_copy_generic);
26224 +EXPORT_SYMBOL(csum_partial_copy_generic_to_user);
26225 +EXPORT_SYMBOL(csum_partial_copy_generic_from_user);
26226
26227 EXPORT_SYMBOL(__get_user_1);
26228 EXPORT_SYMBOL(__get_user_2);
26229 @@ -42,3 +46,11 @@ EXPORT_SYMBOL(empty_zero_page);
26230 EXPORT_SYMBOL(___preempt_schedule);
26231 EXPORT_SYMBOL(___preempt_schedule_notrace);
26232 #endif
26233 +
26234 +#ifdef CONFIG_PAX_KERNEXEC
26235 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
26236 +#endif
26237 +
26238 +#ifdef CONFIG_PAX_PER_CPU_PGD
26239 +EXPORT_SYMBOL(cpu_pgd);
26240 +#endif
26241 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
26242 index be22f5a..c5d0e1f 100644
26243 --- a/arch/x86/kernel/i8259.c
26244 +++ b/arch/x86/kernel/i8259.c
26245 @@ -110,7 +110,7 @@ static int i8259A_irq_pending(unsigned int irq)
26246 static void make_8259A_irq(unsigned int irq)
26247 {
26248 disable_irq_nosync(irq);
26249 - io_apic_irqs &= ~(1<<irq);
26250 + io_apic_irqs &= ~(1UL<<irq);
26251 irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq);
26252 enable_irq(irq);
26253 }
26254 @@ -208,7 +208,7 @@ spurious_8259A_irq:
26255 "spurious 8259A interrupt: IRQ%d.\n", irq);
26256 spurious_irq_mask |= irqmask;
26257 }
26258 - atomic_inc(&irq_err_count);
26259 + atomic_inc_unchecked(&irq_err_count);
26260 /*
26261 * Theoretically we do not have to handle this IRQ,
26262 * but in Linux this does not cause problems and is
26263 @@ -356,14 +356,16 @@ static void init_8259A(int auto_eoi)
26264 /* (slave's support for AEOI in flat mode is to be investigated) */
26265 outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR);
26266
26267 + pax_open_kernel();
26268 if (auto_eoi)
26269 /*
26270 * In AEOI mode we just have to mask the interrupt
26271 * when acking.
26272 */
26273 - i8259A_chip.irq_mask_ack = disable_8259A_irq;
26274 + *(void **)&i8259A_chip.irq_mask_ack = disable_8259A_irq;
26275 else
26276 - i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26277 + *(void **)&i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26278 + pax_close_kernel();
26279
26280 udelay(100); /* wait for 8259A to initialize */
26281
26282 diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
26283 index a979b5b..1d6db75 100644
26284 --- a/arch/x86/kernel/io_delay.c
26285 +++ b/arch/x86/kernel/io_delay.c
26286 @@ -58,7 +58,7 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
26287 * Quirk table for systems that misbehave (lock up, etc.) if port
26288 * 0x80 is used:
26289 */
26290 -static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
26291 +static const struct dmi_system_id __initconst io_delay_0xed_port_dmi_table[] = {
26292 {
26293 .callback = dmi_io_delay_0xed_port,
26294 .ident = "Compaq Presario V6000",
26295 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
26296 index 37dae79..620dd84 100644
26297 --- a/arch/x86/kernel/ioport.c
26298 +++ b/arch/x86/kernel/ioport.c
26299 @@ -6,6 +6,7 @@
26300 #include <linux/sched.h>
26301 #include <linux/kernel.h>
26302 #include <linux/capability.h>
26303 +#include <linux/security.h>
26304 #include <linux/errno.h>
26305 #include <linux/types.h>
26306 #include <linux/ioport.h>
26307 @@ -30,6 +31,12 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26308 return -EINVAL;
26309 if (turn_on && !capable(CAP_SYS_RAWIO))
26310 return -EPERM;
26311 +#ifdef CONFIG_GRKERNSEC_IO
26312 + if (turn_on && grsec_disable_privio) {
26313 + gr_handle_ioperm();
26314 + return -ENODEV;
26315 + }
26316 +#endif
26317
26318 /*
26319 * If it's the first ioperm() call in this thread's lifetime, set the
26320 @@ -54,7 +61,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26321 * because the ->io_bitmap_max value must match the bitmap
26322 * contents:
26323 */
26324 - tss = &per_cpu(cpu_tss, get_cpu());
26325 + tss = cpu_tss + get_cpu();
26326
26327 if (turn_on)
26328 bitmap_clear(t->io_bitmap_ptr, from, num);
26329 @@ -105,6 +112,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
26330 if (level > old) {
26331 if (!capable(CAP_SYS_RAWIO))
26332 return -EPERM;
26333 +#ifdef CONFIG_GRKERNSEC_IO
26334 + if (grsec_disable_privio) {
26335 + gr_handle_iopl();
26336 + return -ENODEV;
26337 + }
26338 +#endif
26339 }
26340 regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
26341 t->iopl = level << 12;
26342 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
26343 index f8062aa..c37b60f 100644
26344 --- a/arch/x86/kernel/irq.c
26345 +++ b/arch/x86/kernel/irq.c
26346 @@ -28,7 +28,7 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
26347 DEFINE_PER_CPU(struct pt_regs *, irq_regs);
26348 EXPORT_PER_CPU_SYMBOL(irq_regs);
26349
26350 -atomic_t irq_err_count;
26351 +atomic_unchecked_t irq_err_count;
26352
26353 /* Function pointer for generic interrupt vector handling */
26354 void (*x86_platform_ipi_callback)(void) = NULL;
26355 @@ -147,9 +147,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
26356 seq_puts(p, " Hypervisor callback interrupts\n");
26357 }
26358 #endif
26359 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
26360 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
26361 #if defined(CONFIG_X86_IO_APIC)
26362 - seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
26363 + seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read_unchecked(&irq_mis_count));
26364 #endif
26365 #ifdef CONFIG_HAVE_KVM
26366 seq_printf(p, "%*s: ", prec, "PIN");
26367 @@ -201,7 +201,7 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
26368
26369 u64 arch_irq_stat(void)
26370 {
26371 - u64 sum = atomic_read(&irq_err_count);
26372 + u64 sum = atomic_read_unchecked(&irq_err_count);
26373 return sum;
26374 }
26375
26376 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
26377 index 38da8f2..5653e36 100644
26378 --- a/arch/x86/kernel/irq_32.c
26379 +++ b/arch/x86/kernel/irq_32.c
26380 @@ -23,6 +23,8 @@
26381
26382 #ifdef CONFIG_DEBUG_STACKOVERFLOW
26383
26384 +extern void gr_handle_kernel_exploit(void);
26385 +
26386 int sysctl_panic_on_stackoverflow __read_mostly;
26387
26388 /* Debugging check for stack overflow: is there less than 1KB free? */
26389 @@ -33,13 +35,14 @@ static int check_stack_overflow(void)
26390 __asm__ __volatile__("andl %%esp,%0" :
26391 "=r" (sp) : "0" (THREAD_SIZE - 1));
26392
26393 - return sp < (sizeof(struct thread_info) + STACK_WARN);
26394 + return sp < STACK_WARN;
26395 }
26396
26397 static void print_stack_overflow(void)
26398 {
26399 printk(KERN_WARNING "low stack detected by irq handler\n");
26400 dump_stack();
26401 + gr_handle_kernel_exploit();
26402 if (sysctl_panic_on_stackoverflow)
26403 panic("low stack detected by irq handler - check messages\n");
26404 }
26405 @@ -70,10 +73,9 @@ static inline void *current_stack(void)
26406
26407 static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26408 {
26409 - struct irq_stack *curstk, *irqstk;
26410 + struct irq_stack *irqstk;
26411 u32 *isp, *prev_esp, arg1;
26412
26413 - curstk = (struct irq_stack *) current_stack();
26414 irqstk = __this_cpu_read(hardirq_stack);
26415
26416 /*
26417 @@ -82,15 +84,19 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26418 * handler) we can't do that and just have to keep using the
26419 * current stack (which is the irq stack already after all)
26420 */
26421 - if (unlikely(curstk == irqstk))
26422 + if (unlikely((void *)current_stack_pointer - (void *)irqstk < THREAD_SIZE))
26423 return 0;
26424
26425 - isp = (u32 *) ((char *)irqstk + sizeof(*irqstk));
26426 + isp = (u32 *) ((char *)irqstk + sizeof(*irqstk) - 8);
26427
26428 /* Save the next esp at the bottom of the stack */
26429 prev_esp = (u32 *)irqstk;
26430 *prev_esp = current_stack_pointer();
26431
26432 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26433 + __set_fs(MAKE_MM_SEG(0));
26434 +#endif
26435 +
26436 if (unlikely(overflow))
26437 call_on_stack(print_stack_overflow, isp);
26438
26439 @@ -101,6 +107,11 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26440 : "0" (desc), "1" (isp),
26441 "D" (desc->handle_irq)
26442 : "memory", "cc", "ecx");
26443 +
26444 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26445 + __set_fs(current_thread_info()->addr_limit);
26446 +#endif
26447 +
26448 return 1;
26449 }
26450
26451 @@ -109,32 +120,18 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26452 */
26453 void irq_ctx_init(int cpu)
26454 {
26455 - struct irq_stack *irqstk;
26456 -
26457 if (per_cpu(hardirq_stack, cpu))
26458 return;
26459
26460 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26461 - THREADINFO_GFP,
26462 - THREAD_SIZE_ORDER));
26463 - per_cpu(hardirq_stack, cpu) = irqstk;
26464 -
26465 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26466 - THREADINFO_GFP,
26467 - THREAD_SIZE_ORDER));
26468 - per_cpu(softirq_stack, cpu) = irqstk;
26469 -
26470 - printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
26471 - cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
26472 + per_cpu(hardirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26473 + per_cpu(softirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26474 }
26475
26476 void do_softirq_own_stack(void)
26477 {
26478 - struct thread_info *curstk;
26479 struct irq_stack *irqstk;
26480 u32 *isp, *prev_esp;
26481
26482 - curstk = current_stack();
26483 irqstk = __this_cpu_read(softirq_stack);
26484
26485 /* build the stack frame on the softirq stack */
26486 @@ -144,7 +141,16 @@ void do_softirq_own_stack(void)
26487 prev_esp = (u32 *)irqstk;
26488 *prev_esp = current_stack_pointer();
26489
26490 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26491 + __set_fs(MAKE_MM_SEG(0));
26492 +#endif
26493 +
26494 call_on_stack(__do_softirq, isp);
26495 +
26496 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26497 + __set_fs(current_thread_info()->addr_limit);
26498 +#endif
26499 +
26500 }
26501
26502 bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
26503 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
26504 index c767cf2..425a7ec 100644
26505 --- a/arch/x86/kernel/irq_64.c
26506 +++ b/arch/x86/kernel/irq_64.c
26507 @@ -20,6 +20,8 @@
26508 #include <asm/idle.h>
26509 #include <asm/apic.h>
26510
26511 +extern void gr_handle_kernel_exploit(void);
26512 +
26513 int sysctl_panic_on_stackoverflow;
26514
26515 /*
26516 @@ -63,6 +65,8 @@ static inline void stack_overflow_check(struct pt_regs *regs)
26517 irq_stack_top, irq_stack_bottom,
26518 estack_top, estack_bottom);
26519
26520 + gr_handle_kernel_exploit();
26521 +
26522 if (sysctl_panic_on_stackoverflow)
26523 panic("low stack detected by irq handler - check messages\n");
26524 #endif
26525 diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
26526 index e565e0e..fdfeb45 100644
26527 --- a/arch/x86/kernel/jump_label.c
26528 +++ b/arch/x86/kernel/jump_label.c
26529 @@ -31,6 +31,8 @@ static void bug_at(unsigned char *ip, int line)
26530 * Something went wrong. Crash the box, as something could be
26531 * corrupting the kernel.
26532 */
26533 + ip = (unsigned char *)ktla_ktva((unsigned long)ip);
26534 + pr_warning("Unexpected op at %pS [%p] %s:%d\n", ip, ip, __FILE__, line);
26535 pr_warning("Unexpected op at %pS [%p] (%02x %02x %02x %02x %02x) %s:%d\n",
26536 ip, ip, ip[0], ip[1], ip[2], ip[3], ip[4], __FILE__, line);
26537 BUG();
26538 @@ -51,7 +53,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26539 * Jump label is enabled for the first time.
26540 * So we expect a default_nop...
26541 */
26542 - if (unlikely(memcmp((void *)entry->code, default_nop, 5)
26543 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5)
26544 != 0))
26545 bug_at((void *)entry->code, __LINE__);
26546 } else {
26547 @@ -59,7 +61,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26548 * ...otherwise expect an ideal_nop. Otherwise
26549 * something went horribly wrong.
26550 */
26551 - if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
26552 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5)
26553 != 0))
26554 bug_at((void *)entry->code, __LINE__);
26555 }
26556 @@ -75,13 +77,13 @@ static void __jump_label_transform(struct jump_entry *entry,
26557 * are converting the default nop to the ideal nop.
26558 */
26559 if (init) {
26560 - if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
26561 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
26562 bug_at((void *)entry->code, __LINE__);
26563 } else {
26564 code.jump = 0xe9;
26565 code.offset = entry->target -
26566 (entry->code + JUMP_LABEL_NOP_SIZE);
26567 - if (unlikely(memcmp((void *)entry->code, &code, 5) != 0))
26568 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), &code, 5) != 0))
26569 bug_at((void *)entry->code, __LINE__);
26570 }
26571 memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
26572 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
26573 index d6178d9..598681f 100644
26574 --- a/arch/x86/kernel/kgdb.c
26575 +++ b/arch/x86/kernel/kgdb.c
26576 @@ -228,7 +228,10 @@ static void kgdb_correct_hw_break(void)
26577 bp->attr.bp_addr = breakinfo[breakno].addr;
26578 bp->attr.bp_len = breakinfo[breakno].len;
26579 bp->attr.bp_type = breakinfo[breakno].type;
26580 - info->address = breakinfo[breakno].addr;
26581 + if (breakinfo[breakno].type == X86_BREAKPOINT_EXECUTE)
26582 + info->address = ktla_ktva(breakinfo[breakno].addr);
26583 + else
26584 + info->address = breakinfo[breakno].addr;
26585 info->len = breakinfo[breakno].len;
26586 info->type = breakinfo[breakno].type;
26587 val = arch_install_hw_breakpoint(bp);
26588 @@ -475,12 +478,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
26589 case 'k':
26590 /* clear the trace bit */
26591 linux_regs->flags &= ~X86_EFLAGS_TF;
26592 - atomic_set(&kgdb_cpu_doing_single_step, -1);
26593 + atomic_set_unchecked(&kgdb_cpu_doing_single_step, -1);
26594
26595 /* set the trace bit if we're stepping */
26596 if (remcomInBuffer[0] == 's') {
26597 linux_regs->flags |= X86_EFLAGS_TF;
26598 - atomic_set(&kgdb_cpu_doing_single_step,
26599 + atomic_set_unchecked(&kgdb_cpu_doing_single_step,
26600 raw_smp_processor_id());
26601 }
26602
26603 @@ -545,7 +548,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
26604
26605 switch (cmd) {
26606 case DIE_DEBUG:
26607 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
26608 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
26609 if (user_mode(regs))
26610 return single_step_cont(regs, args);
26611 break;
26612 @@ -750,11 +753,11 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26613 #endif /* CONFIG_DEBUG_RODATA */
26614
26615 bpt->type = BP_BREAKPOINT;
26616 - err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
26617 + err = probe_kernel_read(bpt->saved_instr, (const void *)ktla_ktva(bpt->bpt_addr),
26618 BREAK_INSTR_SIZE);
26619 if (err)
26620 return err;
26621 - err = probe_kernel_write((char *)bpt->bpt_addr,
26622 + err = probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26623 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
26624 #ifdef CONFIG_DEBUG_RODATA
26625 if (!err)
26626 @@ -767,7 +770,7 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26627 return -EBUSY;
26628 text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr,
26629 BREAK_INSTR_SIZE);
26630 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26631 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26632 if (err)
26633 return err;
26634 if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE))
26635 @@ -792,13 +795,13 @@ int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
26636 if (mutex_is_locked(&text_mutex))
26637 goto knl_write;
26638 text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE);
26639 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26640 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26641 if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE))
26642 goto knl_write;
26643 return err;
26644 knl_write:
26645 #endif /* CONFIG_DEBUG_RODATA */
26646 - return probe_kernel_write((char *)bpt->bpt_addr,
26647 + return probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26648 (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
26649 }
26650
26651 diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
26652 index 1deffe6..3be342a 100644
26653 --- a/arch/x86/kernel/kprobes/core.c
26654 +++ b/arch/x86/kernel/kprobes/core.c
26655 @@ -120,9 +120,12 @@ __synthesize_relative_insn(void *from, void *to, u8 op)
26656 s32 raddr;
26657 } __packed *insn;
26658
26659 - insn = (struct __arch_relative_insn *)from;
26660 + insn = (struct __arch_relative_insn *)ktla_ktva((unsigned long)from);
26661 +
26662 + pax_open_kernel();
26663 insn->raddr = (s32)((long)(to) - ((long)(from) + 5));
26664 insn->op = op;
26665 + pax_close_kernel();
26666 }
26667
26668 /* Insert a jump instruction at address 'from', which jumps to address 'to'.*/
26669 @@ -168,7 +171,7 @@ int can_boost(kprobe_opcode_t *opcodes)
26670 kprobe_opcode_t opcode;
26671 kprobe_opcode_t *orig_opcodes = opcodes;
26672
26673 - if (search_exception_tables((unsigned long)opcodes))
26674 + if (search_exception_tables(ktva_ktla((unsigned long)opcodes)))
26675 return 0; /* Page fault may occur on this address. */
26676
26677 retry:
26678 @@ -260,12 +263,12 @@ __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr)
26679 * Fortunately, we know that the original code is the ideal 5-byte
26680 * long NOP.
26681 */
26682 - memcpy(buf, (void *)addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26683 + memcpy(buf, (void *)ktla_ktva(addr), MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26684 if (faddr)
26685 memcpy(buf, ideal_nops[NOP_ATOMIC5], 5);
26686 else
26687 buf[0] = kp->opcode;
26688 - return (unsigned long)buf;
26689 + return ktva_ktla((unsigned long)buf);
26690 }
26691
26692 /*
26693 @@ -367,7 +370,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26694 /* Another subsystem puts a breakpoint, failed to recover */
26695 if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
26696 return 0;
26697 + pax_open_kernel();
26698 memcpy(dest, insn.kaddr, length);
26699 + pax_close_kernel();
26700
26701 #ifdef CONFIG_X86_64
26702 if (insn_rip_relative(&insn)) {
26703 @@ -394,7 +399,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26704 return 0;
26705 }
26706 disp = (u8 *) dest + insn_offset_displacement(&insn);
26707 + pax_open_kernel();
26708 *(s32 *) disp = (s32) newdisp;
26709 + pax_close_kernel();
26710 }
26711 #endif
26712 return length;
26713 @@ -536,7 +543,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26714 * nor set current_kprobe, because it doesn't use single
26715 * stepping.
26716 */
26717 - regs->ip = (unsigned long)p->ainsn.insn;
26718 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26719 preempt_enable_no_resched();
26720 return;
26721 }
26722 @@ -553,9 +560,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26723 regs->flags &= ~X86_EFLAGS_IF;
26724 /* single step inline if the instruction is an int3 */
26725 if (p->opcode == BREAKPOINT_INSTRUCTION)
26726 - regs->ip = (unsigned long)p->addr;
26727 + regs->ip = ktla_ktva((unsigned long)p->addr);
26728 else
26729 - regs->ip = (unsigned long)p->ainsn.insn;
26730 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26731 }
26732 NOKPROBE_SYMBOL(setup_singlestep);
26733
26734 @@ -640,7 +647,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
26735 setup_singlestep(p, regs, kcb, 0);
26736 return 1;
26737 }
26738 - } else if (*addr != BREAKPOINT_INSTRUCTION) {
26739 + } else if (*(kprobe_opcode_t *)ktla_ktva((unsigned long)addr) != BREAKPOINT_INSTRUCTION) {
26740 /*
26741 * The breakpoint instruction was removed right
26742 * after we hit it. Another cpu has removed
26743 @@ -687,6 +694,9 @@ static void __used kretprobe_trampoline_holder(void)
26744 " movq %rax, 152(%rsp)\n"
26745 RESTORE_REGS_STRING
26746 " popfq\n"
26747 +#ifdef KERNEXEC_PLUGIN
26748 + " btsq $63,(%rsp)\n"
26749 +#endif
26750 #else
26751 " pushf\n"
26752 SAVE_REGS_STRING
26753 @@ -827,7 +837,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
26754 struct kprobe_ctlblk *kcb)
26755 {
26756 unsigned long *tos = stack_addr(regs);
26757 - unsigned long copy_ip = (unsigned long)p->ainsn.insn;
26758 + unsigned long copy_ip = ktva_ktla((unsigned long)p->ainsn.insn);
26759 unsigned long orig_ip = (unsigned long)p->addr;
26760 kprobe_opcode_t *insn = p->ainsn.insn;
26761
26762 diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
26763 index 7b3b9d1..e2478b91 100644
26764 --- a/arch/x86/kernel/kprobes/opt.c
26765 +++ b/arch/x86/kernel/kprobes/opt.c
26766 @@ -79,6 +79,7 @@ found:
26767 /* Insert a move instruction which sets a pointer to eax/rdi (1st arg). */
26768 static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26769 {
26770 + pax_open_kernel();
26771 #ifdef CONFIG_X86_64
26772 *addr++ = 0x48;
26773 *addr++ = 0xbf;
26774 @@ -86,6 +87,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26775 *addr++ = 0xb8;
26776 #endif
26777 *(unsigned long *)addr = val;
26778 + pax_close_kernel();
26779 }
26780
26781 asm (
26782 @@ -342,7 +344,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26783 * Verify if the address gap is in 2GB range, because this uses
26784 * a relative jump.
26785 */
26786 - rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
26787 + rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
26788 if (abs(rel) > 0x7fffffff) {
26789 __arch_remove_optimized_kprobe(op, 0);
26790 return -ERANGE;
26791 @@ -359,16 +361,18 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26792 op->optinsn.size = ret;
26793
26794 /* Copy arch-dep-instance from template */
26795 - memcpy(buf, &optprobe_template_entry, TMPL_END_IDX);
26796 + pax_open_kernel();
26797 + memcpy(buf, ktla_ktva(&optprobe_template_entry), TMPL_END_IDX);
26798 + pax_close_kernel();
26799
26800 /* Set probe information */
26801 synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
26802
26803 /* Set probe function call */
26804 - synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
26805 + synthesize_relcall(ktva_ktla(buf) + TMPL_CALL_IDX, optimized_callback);
26806
26807 /* Set returning jmp instruction at the tail of out-of-line buffer */
26808 - synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
26809 + synthesize_reljump(ktva_ktla(buf) + TMPL_END_IDX + op->optinsn.size,
26810 (u8 *)op->kp.addr + op->optinsn.size);
26811
26812 flush_icache_range((unsigned long) buf,
26813 @@ -393,7 +397,7 @@ void arch_optimize_kprobes(struct list_head *oplist)
26814 WARN_ON(kprobe_disabled(&op->kp));
26815
26816 /* Backup instructions which will be replaced by jump address */
26817 - memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
26818 + memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
26819 RELATIVE_ADDR_SIZE);
26820
26821 insn_buf[0] = RELATIVEJUMP_OPCODE;
26822 @@ -441,7 +445,7 @@ int setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
26823 /* This kprobe is really able to run optimized path. */
26824 op = container_of(p, struct optimized_kprobe, kp);
26825 /* Detour through copied instructions */
26826 - regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX;
26827 + regs->ip = ktva_ktla((unsigned long)op->optinsn.insn) + TMPL_END_IDX;
26828 if (!reenter)
26829 reset_current_kprobe();
26830 preempt_enable_no_resched();
26831 diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
26832 index c2bedae..25e7ab60 100644
26833 --- a/arch/x86/kernel/ksysfs.c
26834 +++ b/arch/x86/kernel/ksysfs.c
26835 @@ -184,7 +184,7 @@ out:
26836
26837 static struct kobj_attribute type_attr = __ATTR_RO(type);
26838
26839 -static struct bin_attribute data_attr = {
26840 +static bin_attribute_no_const data_attr __read_only = {
26841 .attr = {
26842 .name = "data",
26843 .mode = S_IRUGO,
26844 diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
26845 index 2c7aafa..7ac2af2 100644
26846 --- a/arch/x86/kernel/kvmclock.c
26847 +++ b/arch/x86/kernel/kvmclock.c
26848 @@ -29,7 +29,7 @@
26849 #include <asm/x86_init.h>
26850 #include <asm/reboot.h>
26851
26852 -static int kvmclock = 1;
26853 +static int kvmclock __read_only = 1;
26854 static int msr_kvm_system_time = MSR_KVM_SYSTEM_TIME;
26855 static int msr_kvm_wall_clock = MSR_KVM_WALL_CLOCK;
26856
26857 @@ -41,7 +41,7 @@ static int parse_no_kvmclock(char *arg)
26858 early_param("no-kvmclock", parse_no_kvmclock);
26859
26860 /* The hypervisor will put information about time periodically here */
26861 -static struct pvclock_vsyscall_time_info *hv_clock;
26862 +static struct pvclock_vsyscall_time_info hv_clock[NR_CPUS] __page_aligned_bss;
26863 static struct pvclock_wall_clock wall_clock;
26864
26865 /*
26866 @@ -132,7 +132,7 @@ bool kvm_check_and_clear_guest_paused(void)
26867 struct pvclock_vcpu_time_info *src;
26868 int cpu = smp_processor_id();
26869
26870 - if (!hv_clock)
26871 + if (!kvmclock)
26872 return ret;
26873
26874 src = &hv_clock[cpu].pvti;
26875 @@ -159,7 +159,7 @@ int kvm_register_clock(char *txt)
26876 int low, high, ret;
26877 struct pvclock_vcpu_time_info *src;
26878
26879 - if (!hv_clock)
26880 + if (!kvmclock)
26881 return 0;
26882
26883 src = &hv_clock[cpu].pvti;
26884 @@ -219,7 +219,6 @@ static void kvm_shutdown(void)
26885 void __init kvmclock_init(void)
26886 {
26887 struct pvclock_vcpu_time_info *vcpu_time;
26888 - unsigned long mem;
26889 int size, cpu;
26890 u8 flags;
26891
26892 @@ -237,15 +236,8 @@ void __init kvmclock_init(void)
26893 printk(KERN_INFO "kvm-clock: Using msrs %x and %x",
26894 msr_kvm_system_time, msr_kvm_wall_clock);
26895
26896 - mem = memblock_alloc(size, PAGE_SIZE);
26897 - if (!mem)
26898 - return;
26899 - hv_clock = __va(mem);
26900 - memset(hv_clock, 0, size);
26901 -
26902 if (kvm_register_clock("primary cpu clock")) {
26903 - hv_clock = NULL;
26904 - memblock_free(mem, size);
26905 + kvmclock = 0;
26906 return;
26907 }
26908 pv_time_ops.sched_clock = kvm_clock_read;
26909 @@ -286,7 +278,7 @@ int __init kvm_setup_vsyscall_timeinfo(void)
26910 struct pvclock_vcpu_time_info *vcpu_time;
26911 unsigned int size;
26912
26913 - if (!hv_clock)
26914 + if (!kvmclock)
26915 return 0;
26916
26917 size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)*NR_CPUS);
26918 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
26919 index 6acc9dd..f72931d 100644
26920 --- a/arch/x86/kernel/ldt.c
26921 +++ b/arch/x86/kernel/ldt.c
26922 @@ -11,6 +11,7 @@
26923 #include <linux/sched.h>
26924 #include <linux/string.h>
26925 #include <linux/mm.h>
26926 +#include <linux/ratelimit.h>
26927 #include <linux/smp.h>
26928 #include <linux/slab.h>
26929 #include <linux/vmalloc.h>
26930 @@ -21,6 +22,14 @@
26931 #include <asm/mmu_context.h>
26932 #include <asm/syscalls.h>
26933
26934 +#ifdef CONFIG_GRKERNSEC
26935 +int sysctl_modify_ldt __read_only = 0;
26936 +#elif defined(CONFIG_DEFAULT_MODIFY_LDT_SYSCALL)
26937 +int sysctl_modify_ldt __read_only = 1;
26938 +#else
26939 +int sysctl_modify_ldt __read_only = 0;
26940 +#endif
26941 +
26942 /* context.lock is held for us, so we don't need any locking. */
26943 static void flush_ldt(void *current_mm)
26944 {
26945 @@ -109,6 +118,23 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
26946 struct mm_struct *old_mm;
26947 int retval = 0;
26948
26949 + if (tsk == current) {
26950 + mm->context.vdso = 0;
26951 +
26952 +#ifdef CONFIG_X86_32
26953 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
26954 + mm->context.user_cs_base = 0UL;
26955 + mm->context.user_cs_limit = ~0UL;
26956 +
26957 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
26958 + cpumask_clear(&mm->context.cpu_user_cs_mask);
26959 +#endif
26960 +
26961 +#endif
26962 +#endif
26963 +
26964 + }
26965 +
26966 mutex_init(&mm->context.lock);
26967 old_mm = current->mm;
26968 if (!old_mm) {
26969 @@ -235,6 +261,14 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
26970 /* The user wants to clear the entry. */
26971 memset(&ldt, 0, sizeof(ldt));
26972 } else {
26973 +
26974 +#ifdef CONFIG_PAX_SEGMEXEC
26975 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (ldt_info.contents & MODIFY_LDT_CONTENTS_CODE)) {
26976 + error = -EINVAL;
26977 + goto out;
26978 + }
26979 +#endif
26980 +
26981 if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
26982 error = -EINVAL;
26983 goto out;
26984 @@ -276,6 +310,15 @@ asmlinkage int sys_modify_ldt(int func, void __user *ptr,
26985 {
26986 int ret = -ENOSYS;
26987
26988 + if (!sysctl_modify_ldt) {
26989 + printk_ratelimited(KERN_INFO
26990 + "Denied a call to modify_ldt() from %s[%d] (uid: %d)."
26991 + " Adjust sysctl if this was not an exploit attempt.\n",
26992 + current->comm, task_pid_nr(current),
26993 + from_kuid_munged(current_user_ns(), current_uid()));
26994 + return ret;
26995 + }
26996 +
26997 switch (func) {
26998 case 0:
26999 ret = read_ldt(ptr, bytecount);
27000 diff --git a/arch/x86/kernel/livepatch.c b/arch/x86/kernel/livepatch.c
27001 index ff3c3101d..d7c0cd8 100644
27002 --- a/arch/x86/kernel/livepatch.c
27003 +++ b/arch/x86/kernel/livepatch.c
27004 @@ -41,9 +41,10 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27005 int ret, numpages, size = 4;
27006 bool readonly;
27007 unsigned long val;
27008 - unsigned long core = (unsigned long)mod->module_core;
27009 - unsigned long core_ro_size = mod->core_ro_size;
27010 - unsigned long core_size = mod->core_size;
27011 + unsigned long core_rx = (unsigned long)mod->module_core_rx;
27012 + unsigned long core_rw = (unsigned long)mod->module_core_rw;
27013 + unsigned long core_size_rx = mod->core_size_rx;
27014 + unsigned long core_size_rw = mod->core_size_rw;
27015
27016 switch (type) {
27017 case R_X86_64_NONE:
27018 @@ -66,11 +67,12 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27019 return -EINVAL;
27020 }
27021
27022 - if (loc < core || loc >= core + core_size)
27023 + if ((loc < core_rx || loc >= core_rx + core_size_rx) &&
27024 + (loc < core_rw || loc >= core_rw + core_size_rw))
27025 /* loc does not point to any symbol inside the module */
27026 return -EINVAL;
27027
27028 - if (loc < core + core_ro_size)
27029 + if (loc < core_rx + core_size_rx)
27030 readonly = true;
27031 else
27032 readonly = false;
27033 diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
27034 index 469b23d..5449cfe 100644
27035 --- a/arch/x86/kernel/machine_kexec_32.c
27036 +++ b/arch/x86/kernel/machine_kexec_32.c
27037 @@ -26,7 +26,7 @@
27038 #include <asm/cacheflush.h>
27039 #include <asm/debugreg.h>
27040
27041 -static void set_idt(void *newidt, __u16 limit)
27042 +static void set_idt(struct desc_struct *newidt, __u16 limit)
27043 {
27044 struct desc_ptr curidt;
27045
27046 @@ -38,7 +38,7 @@ static void set_idt(void *newidt, __u16 limit)
27047 }
27048
27049
27050 -static void set_gdt(void *newgdt, __u16 limit)
27051 +static void set_gdt(struct desc_struct *newgdt, __u16 limit)
27052 {
27053 struct desc_ptr curgdt;
27054
27055 @@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image)
27056 }
27057
27058 control_page = page_address(image->control_code_page);
27059 - memcpy(control_page, relocate_kernel, KEXEC_CONTROL_CODE_MAX_SIZE);
27060 + memcpy(control_page, (void *)ktla_ktva((unsigned long)relocate_kernel), KEXEC_CONTROL_CODE_MAX_SIZE);
27061
27062 relocate_kernel_ptr = control_page;
27063 page_list[PA_CONTROL_PAGE] = __pa(control_page);
27064 diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
27065 index 94ea120..4154cea 100644
27066 --- a/arch/x86/kernel/mcount_64.S
27067 +++ b/arch/x86/kernel/mcount_64.S
27068 @@ -7,7 +7,7 @@
27069 #include <linux/linkage.h>
27070 #include <asm/ptrace.h>
27071 #include <asm/ftrace.h>
27072 -
27073 +#include <asm/alternative-asm.h>
27074
27075 .code64
27076 .section .entry.text, "ax"
27077 @@ -148,8 +148,9 @@
27078 #ifdef CONFIG_DYNAMIC_FTRACE
27079
27080 ENTRY(function_hook)
27081 + pax_force_retaddr
27082 retq
27083 -END(function_hook)
27084 +ENDPROC(function_hook)
27085
27086 ENTRY(ftrace_caller)
27087 /* save_mcount_regs fills in first two parameters */
27088 @@ -181,8 +182,9 @@ GLOBAL(ftrace_graph_call)
27089 #endif
27090
27091 GLOBAL(ftrace_stub)
27092 + pax_force_retaddr
27093 retq
27094 -END(ftrace_caller)
27095 +ENDPROC(ftrace_caller)
27096
27097 ENTRY(ftrace_regs_caller)
27098 /* Save the current flags before any operations that can change them */
27099 @@ -253,7 +255,7 @@ GLOBAL(ftrace_regs_caller_end)
27100
27101 jmp ftrace_return
27102
27103 -END(ftrace_regs_caller)
27104 +ENDPROC(ftrace_regs_caller)
27105
27106
27107 #else /* ! CONFIG_DYNAMIC_FTRACE */
27108 @@ -272,18 +274,20 @@ fgraph_trace:
27109 #endif
27110
27111 GLOBAL(ftrace_stub)
27112 + pax_force_retaddr
27113 retq
27114
27115 trace:
27116 /* save_mcount_regs fills in first two parameters */
27117 save_mcount_regs
27118
27119 + pax_force_fptr ftrace_trace_function
27120 call *ftrace_trace_function
27121
27122 restore_mcount_regs
27123
27124 jmp fgraph_trace
27125 -END(function_hook)
27126 +ENDPROC(function_hook)
27127 #endif /* CONFIG_DYNAMIC_FTRACE */
27128 #endif /* CONFIG_FUNCTION_TRACER */
27129
27130 @@ -305,8 +309,9 @@ ENTRY(ftrace_graph_caller)
27131
27132 restore_mcount_regs
27133
27134 + pax_force_retaddr
27135 retq
27136 -END(ftrace_graph_caller)
27137 +ENDPROC(ftrace_graph_caller)
27138
27139 GLOBAL(return_to_handler)
27140 subq $24, %rsp
27141 @@ -322,5 +327,7 @@ GLOBAL(return_to_handler)
27142 movq 8(%rsp), %rdx
27143 movq (%rsp), %rax
27144 addq $24, %rsp
27145 + pax_force_fptr %rdi
27146 jmp *%rdi
27147 +ENDPROC(return_to_handler)
27148 #endif
27149 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
27150 index 005c03e..7000fe4 100644
27151 --- a/arch/x86/kernel/module.c
27152 +++ b/arch/x86/kernel/module.c
27153 @@ -75,17 +75,17 @@ static unsigned long int get_module_load_offset(void)
27154 }
27155 #endif
27156
27157 -void *module_alloc(unsigned long size)
27158 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
27159 {
27160 void *p;
27161
27162 - if (PAGE_ALIGN(size) > MODULES_LEN)
27163 + if (!size || PAGE_ALIGN(size) > MODULES_LEN)
27164 return NULL;
27165
27166 p = __vmalloc_node_range(size, MODULE_ALIGN,
27167 MODULES_VADDR + get_module_load_offset(),
27168 - MODULES_END, GFP_KERNEL | __GFP_HIGHMEM,
27169 - PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
27170 + MODULES_END, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
27171 + prot, 0, NUMA_NO_NODE,
27172 __builtin_return_address(0));
27173 if (p && (kasan_module_alloc(p, size) < 0)) {
27174 vfree(p);
27175 @@ -95,6 +95,51 @@ void *module_alloc(unsigned long size)
27176 return p;
27177 }
27178
27179 +void *module_alloc(unsigned long size)
27180 +{
27181 +
27182 +#ifdef CONFIG_PAX_KERNEXEC
27183 + return __module_alloc(size, PAGE_KERNEL);
27184 +#else
27185 + return __module_alloc(size, PAGE_KERNEL_EXEC);
27186 +#endif
27187 +
27188 +}
27189 +
27190 +#ifdef CONFIG_PAX_KERNEXEC
27191 +#ifdef CONFIG_X86_32
27192 +void *module_alloc_exec(unsigned long size)
27193 +{
27194 + struct vm_struct *area;
27195 +
27196 + if (size == 0)
27197 + return NULL;
27198 +
27199 + area = __get_vm_area(size, VM_ALLOC, (unsigned long)&MODULES_EXEC_VADDR, (unsigned long)&MODULES_EXEC_END);
27200 +return area ? area->addr : NULL;
27201 +}
27202 +EXPORT_SYMBOL(module_alloc_exec);
27203 +
27204 +void module_memfree_exec(void *module_region)
27205 +{
27206 + vunmap(module_region);
27207 +}
27208 +EXPORT_SYMBOL(module_memfree_exec);
27209 +#else
27210 +void module_memfree_exec(void *module_region)
27211 +{
27212 + module_memfree(module_region);
27213 +}
27214 +EXPORT_SYMBOL(module_memfree_exec);
27215 +
27216 +void *module_alloc_exec(unsigned long size)
27217 +{
27218 + return __module_alloc(size, PAGE_KERNEL_RX);
27219 +}
27220 +EXPORT_SYMBOL(module_alloc_exec);
27221 +#endif
27222 +#endif
27223 +
27224 #ifdef CONFIG_X86_32
27225 int apply_relocate(Elf32_Shdr *sechdrs,
27226 const char *strtab,
27227 @@ -105,14 +150,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27228 unsigned int i;
27229 Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
27230 Elf32_Sym *sym;
27231 - uint32_t *location;
27232 + uint32_t *plocation, location;
27233
27234 DEBUGP("Applying relocate section %u to %u\n",
27235 relsec, sechdrs[relsec].sh_info);
27236 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
27237 /* This is where to make the change */
27238 - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
27239 - + rel[i].r_offset;
27240 + plocation = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr + rel[i].r_offset;
27241 + location = (uint32_t)plocation;
27242 + if (sechdrs[sechdrs[relsec].sh_info].sh_flags & SHF_EXECINSTR)
27243 + plocation = (uint32_t *)ktla_ktva((unsigned long)plocation);
27244 /* This is the symbol it is referring to. Note that all
27245 undefined symbols have been resolved. */
27246 sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
27247 @@ -121,11 +168,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27248 switch (ELF32_R_TYPE(rel[i].r_info)) {
27249 case R_386_32:
27250 /* We add the value into the location given */
27251 - *location += sym->st_value;
27252 + pax_open_kernel();
27253 + *plocation += sym->st_value;
27254 + pax_close_kernel();
27255 break;
27256 case R_386_PC32:
27257 /* Add the value, subtract its position */
27258 - *location += sym->st_value - (uint32_t)location;
27259 + pax_open_kernel();
27260 + *plocation += sym->st_value - location;
27261 + pax_close_kernel();
27262 break;
27263 default:
27264 pr_err("%s: Unknown relocation: %u\n",
27265 @@ -170,21 +221,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
27266 case R_X86_64_NONE:
27267 break;
27268 case R_X86_64_64:
27269 + pax_open_kernel();
27270 *(u64 *)loc = val;
27271 + pax_close_kernel();
27272 break;
27273 case R_X86_64_32:
27274 + pax_open_kernel();
27275 *(u32 *)loc = val;
27276 + pax_close_kernel();
27277 if (val != *(u32 *)loc)
27278 goto overflow;
27279 break;
27280 case R_X86_64_32S:
27281 + pax_open_kernel();
27282 *(s32 *)loc = val;
27283 + pax_close_kernel();
27284 if ((s64)val != *(s32 *)loc)
27285 goto overflow;
27286 break;
27287 case R_X86_64_PC32:
27288 val -= (u64)loc;
27289 + pax_open_kernel();
27290 *(u32 *)loc = val;
27291 + pax_close_kernel();
27292 +
27293 #if 0
27294 if ((s64)val != *(s32 *)loc)
27295 goto overflow;
27296 diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
27297 index 113e707..0a690e1 100644
27298 --- a/arch/x86/kernel/msr.c
27299 +++ b/arch/x86/kernel/msr.c
27300 @@ -39,6 +39,7 @@
27301 #include <linux/notifier.h>
27302 #include <linux/uaccess.h>
27303 #include <linux/gfp.h>
27304 +#include <linux/grsecurity.h>
27305
27306 #include <asm/processor.h>
27307 #include <asm/msr.h>
27308 @@ -105,6 +106,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
27309 int err = 0;
27310 ssize_t bytes = 0;
27311
27312 +#ifdef CONFIG_GRKERNSEC_KMEM
27313 + gr_handle_msr_write();
27314 + return -EPERM;
27315 +#endif
27316 +
27317 if (count % 8)
27318 return -EINVAL; /* Invalid chunk size */
27319
27320 @@ -152,6 +158,10 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
27321 err = -EBADF;
27322 break;
27323 }
27324 +#ifdef CONFIG_GRKERNSEC_KMEM
27325 + gr_handle_msr_write();
27326 + return -EPERM;
27327 +#endif
27328 if (copy_from_user(&regs, uregs, sizeof regs)) {
27329 err = -EFAULT;
27330 break;
27331 @@ -235,7 +245,7 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
27332 return notifier_from_errno(err);
27333 }
27334
27335 -static struct notifier_block __refdata msr_class_cpu_notifier = {
27336 +static struct notifier_block msr_class_cpu_notifier = {
27337 .notifier_call = msr_class_cpu_callback,
27338 };
27339
27340 diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
27341 index 697f90d..8b1c639 100644
27342 --- a/arch/x86/kernel/nmi.c
27343 +++ b/arch/x86/kernel/nmi.c
27344 @@ -98,16 +98,16 @@ fs_initcall(nmi_warning_debugfs);
27345
27346 static void nmi_max_handler(struct irq_work *w)
27347 {
27348 - struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
27349 + struct nmiwork *n = container_of(w, struct nmiwork, irq_work);
27350 int remainder_ns, decimal_msecs;
27351 - u64 whole_msecs = ACCESS_ONCE(a->max_duration);
27352 + u64 whole_msecs = ACCESS_ONCE(n->max_duration);
27353
27354 remainder_ns = do_div(whole_msecs, (1000 * 1000));
27355 decimal_msecs = remainder_ns / 1000;
27356
27357 printk_ratelimited(KERN_INFO
27358 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
27359 - a->handler, whole_msecs, decimal_msecs);
27360 + n->action->handler, whole_msecs, decimal_msecs);
27361 }
27362
27363 static int nmi_handle(unsigned int type, struct pt_regs *regs)
27364 @@ -134,11 +134,11 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs)
27365 delta = sched_clock() - delta;
27366 trace_nmi_handler(a->handler, (int)delta, thishandled);
27367
27368 - if (delta < nmi_longest_ns || delta < a->max_duration)
27369 + if (delta < nmi_longest_ns || delta < a->work->max_duration)
27370 continue;
27371
27372 - a->max_duration = delta;
27373 - irq_work_queue(&a->irq_work);
27374 + a->work->max_duration = delta;
27375 + irq_work_queue(&a->work->irq_work);
27376 }
27377
27378 rcu_read_unlock();
27379 @@ -148,7 +148,7 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs)
27380 }
27381 NOKPROBE_SYMBOL(nmi_handle);
27382
27383 -int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27384 +int __register_nmi_handler(unsigned int type, const struct nmiaction *action)
27385 {
27386 struct nmi_desc *desc = nmi_to_desc(type);
27387 unsigned long flags;
27388 @@ -156,7 +156,8 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27389 if (!action->handler)
27390 return -EINVAL;
27391
27392 - init_irq_work(&action->irq_work, nmi_max_handler);
27393 + action->work->action = action;
27394 + init_irq_work(&action->work->irq_work, nmi_max_handler);
27395
27396 spin_lock_irqsave(&desc->lock, flags);
27397
27398 @@ -174,9 +175,9 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27399 * event confuses some handlers (kdump uses this flag)
27400 */
27401 if (action->flags & NMI_FLAG_FIRST)
27402 - list_add_rcu(&action->list, &desc->head);
27403 + pax_list_add_rcu((struct list_head *)&action->list, &desc->head);
27404 else
27405 - list_add_tail_rcu(&action->list, &desc->head);
27406 + pax_list_add_tail_rcu((struct list_head *)&action->list, &desc->head);
27407
27408 spin_unlock_irqrestore(&desc->lock, flags);
27409 return 0;
27410 @@ -199,7 +200,7 @@ void unregister_nmi_handler(unsigned int type, const char *name)
27411 if (!strcmp(n->name, name)) {
27412 WARN(in_nmi(),
27413 "Trying to free NMI (%s) from NMI context!\n", n->name);
27414 - list_del_rcu(&n->list);
27415 + pax_list_del_rcu((struct list_head *)&n->list);
27416 break;
27417 }
27418 }
27419 @@ -481,6 +482,17 @@ static DEFINE_PER_CPU(int, update_debug_stack);
27420 dotraplinkage notrace void
27421 do_nmi(struct pt_regs *regs, long error_code)
27422 {
27423 +
27424 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
27425 + if (!user_mode(regs)) {
27426 + unsigned long cs = regs->cs & 0xFFFF;
27427 + unsigned long ip = ktva_ktla(regs->ip);
27428 +
27429 + if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
27430 + regs->ip = ip;
27431 + }
27432 +#endif
27433 +
27434 if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
27435 this_cpu_write(nmi_state, NMI_LATCHED);
27436 return;
27437 diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
27438 index 6d9582e..f746287 100644
27439 --- a/arch/x86/kernel/nmi_selftest.c
27440 +++ b/arch/x86/kernel/nmi_selftest.c
27441 @@ -43,7 +43,7 @@ static void __init init_nmi_testsuite(void)
27442 {
27443 /* trap all the unknown NMIs we may generate */
27444 register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk",
27445 - __initdata);
27446 + __initconst);
27447 }
27448
27449 static void __init cleanup_nmi_testsuite(void)
27450 @@ -66,7 +66,7 @@ static void __init test_nmi_ipi(struct cpumask *mask)
27451 unsigned long timeout;
27452
27453 if (register_nmi_handler(NMI_LOCAL, test_nmi_ipi_callback,
27454 - NMI_FLAG_FIRST, "nmi_selftest", __initdata)) {
27455 + NMI_FLAG_FIRST, "nmi_selftest", __initconst)) {
27456 nmi_fail = FAILURE;
27457 return;
27458 }
27459 diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
27460 index 33ee3e0..da3519a 100644
27461 --- a/arch/x86/kernel/paravirt-spinlocks.c
27462 +++ b/arch/x86/kernel/paravirt-spinlocks.c
27463 @@ -23,7 +23,7 @@ bool pv_is_native_spin_unlock(void)
27464 }
27465 #endif
27466
27467 -struct pv_lock_ops pv_lock_ops = {
27468 +struct pv_lock_ops pv_lock_ops __read_only = {
27469 #ifdef CONFIG_SMP
27470 #ifdef CONFIG_QUEUED_SPINLOCKS
27471 .queued_spin_lock_slowpath = native_queued_spin_lock_slowpath,
27472 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
27473 index c2130ae..d52ca15 100644
27474 --- a/arch/x86/kernel/paravirt.c
27475 +++ b/arch/x86/kernel/paravirt.c
27476 @@ -64,6 +64,9 @@ u64 _paravirt_ident_64(u64 x)
27477 {
27478 return x;
27479 }
27480 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27481 +PV_CALLEE_SAVE_REGS_THUNK(_paravirt_ident_64);
27482 +#endif
27483
27484 void __init default_banner(void)
27485 {
27486 @@ -150,16 +153,20 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
27487
27488 if (opfunc == NULL)
27489 /* If there's no function, patch it with a ud2a (BUG) */
27490 - ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
27491 - else if (opfunc == _paravirt_nop)
27492 + ret = paravirt_patch_insns(insnbuf, len, (const char *)ktva_ktla((unsigned long)ud2a), ud2a+sizeof(ud2a));
27493 + else if (opfunc == (void *)_paravirt_nop)
27494 /* If the operation is a nop, then nop the callsite */
27495 ret = paravirt_patch_nop();
27496
27497 /* identity functions just return their single argument */
27498 - else if (opfunc == _paravirt_ident_32)
27499 + else if (opfunc == (void *)_paravirt_ident_32)
27500 ret = paravirt_patch_ident_32(insnbuf, len);
27501 - else if (opfunc == _paravirt_ident_64)
27502 + else if (opfunc == (void *)_paravirt_ident_64)
27503 ret = paravirt_patch_ident_64(insnbuf, len);
27504 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27505 + else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64)
27506 + ret = paravirt_patch_ident_64(insnbuf, len);
27507 +#endif
27508
27509 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
27510 #ifdef CONFIG_X86_32
27511 @@ -186,7 +193,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
27512 if (insn_len > len || start == NULL)
27513 insn_len = len;
27514 else
27515 - memcpy(insnbuf, start, insn_len);
27516 + memcpy(insnbuf, (const char *)ktla_ktva((unsigned long)start), insn_len);
27517
27518 return insn_len;
27519 }
27520 @@ -310,7 +317,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
27521 return this_cpu_read(paravirt_lazy_mode);
27522 }
27523
27524 -struct pv_info pv_info = {
27525 +struct pv_info pv_info __read_only = {
27526 .name = "bare hardware",
27527 .paravirt_enabled = 0,
27528 .kernel_rpl = 0,
27529 @@ -321,16 +328,16 @@ struct pv_info pv_info = {
27530 #endif
27531 };
27532
27533 -struct pv_init_ops pv_init_ops = {
27534 +struct pv_init_ops pv_init_ops __read_only = {
27535 .patch = native_patch,
27536 };
27537
27538 -struct pv_time_ops pv_time_ops = {
27539 +struct pv_time_ops pv_time_ops __read_only = {
27540 .sched_clock = native_sched_clock,
27541 .steal_clock = native_steal_clock,
27542 };
27543
27544 -__visible struct pv_irq_ops pv_irq_ops = {
27545 +__visible struct pv_irq_ops pv_irq_ops __read_only = {
27546 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
27547 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
27548 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
27549 @@ -342,7 +349,7 @@ __visible struct pv_irq_ops pv_irq_ops = {
27550 #endif
27551 };
27552
27553 -__visible struct pv_cpu_ops pv_cpu_ops = {
27554 +__visible struct pv_cpu_ops pv_cpu_ops __read_only = {
27555 .cpuid = native_cpuid,
27556 .get_debugreg = native_get_debugreg,
27557 .set_debugreg = native_set_debugreg,
27558 @@ -403,21 +410,26 @@ NOKPROBE_SYMBOL(native_get_debugreg);
27559 NOKPROBE_SYMBOL(native_set_debugreg);
27560 NOKPROBE_SYMBOL(native_load_idt);
27561
27562 -struct pv_apic_ops pv_apic_ops = {
27563 +struct pv_apic_ops pv_apic_ops __read_only= {
27564 #ifdef CONFIG_X86_LOCAL_APIC
27565 .startup_ipi_hook = paravirt_nop,
27566 #endif
27567 };
27568
27569 -#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
27570 +#ifdef CONFIG_X86_32
27571 +#ifdef CONFIG_X86_PAE
27572 +/* 64-bit pagetable entries */
27573 +#define PTE_IDENT PV_CALLEE_SAVE(_paravirt_ident_64)
27574 +#else
27575 /* 32-bit pagetable entries */
27576 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
27577 +#endif
27578 #else
27579 /* 64-bit pagetable entries */
27580 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
27581 #endif
27582
27583 -struct pv_mmu_ops pv_mmu_ops = {
27584 +struct pv_mmu_ops pv_mmu_ops __read_only = {
27585
27586 .read_cr2 = native_read_cr2,
27587 .write_cr2 = native_write_cr2,
27588 @@ -467,6 +479,7 @@ struct pv_mmu_ops pv_mmu_ops = {
27589 .make_pud = PTE_IDENT,
27590
27591 .set_pgd = native_set_pgd,
27592 + .set_pgd_batched = native_set_pgd_batched,
27593 #endif
27594 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
27595
27596 @@ -487,6 +500,12 @@ struct pv_mmu_ops pv_mmu_ops = {
27597 },
27598
27599 .set_fixmap = native_set_fixmap,
27600 +
27601 +#ifdef CONFIG_PAX_KERNEXEC
27602 + .pax_open_kernel = native_pax_open_kernel,
27603 + .pax_close_kernel = native_pax_close_kernel,
27604 +#endif
27605 +
27606 };
27607
27608 EXPORT_SYMBOL_GPL(pv_time_ops);
27609 diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
27610 index 8aa0558..465512e 100644
27611 --- a/arch/x86/kernel/paravirt_patch_64.c
27612 +++ b/arch/x86/kernel/paravirt_patch_64.c
27613 @@ -9,7 +9,11 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax");
27614 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
27615 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
27616 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
27617 +
27618 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27619 DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
27620 +#endif
27621 +
27622 DEF_NATIVE(pv_cpu_ops, clts, "clts");
27623 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
27624
27625 @@ -62,7 +66,11 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
27626 PATCH_SITE(pv_mmu_ops, read_cr3);
27627 PATCH_SITE(pv_mmu_ops, write_cr3);
27628 PATCH_SITE(pv_cpu_ops, clts);
27629 +
27630 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27631 PATCH_SITE(pv_mmu_ops, flush_tlb_single);
27632 +#endif
27633 +
27634 PATCH_SITE(pv_cpu_ops, wbinvd);
27635 #if defined(CONFIG_PARAVIRT_SPINLOCKS) && defined(CONFIG_QUEUED_SPINLOCKS)
27636 case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
27637 diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
27638 index 0497f71..7186c0d 100644
27639 --- a/arch/x86/kernel/pci-calgary_64.c
27640 +++ b/arch/x86/kernel/pci-calgary_64.c
27641 @@ -1347,7 +1347,7 @@ static void __init get_tce_space_from_tar(void)
27642 tce_space = be64_to_cpu(readq(target));
27643 tce_space = tce_space & TAR_SW_BITS;
27644
27645 - tce_space = tce_space & (~specified_table_size);
27646 + tce_space = tce_space & (~(unsigned long)specified_table_size);
27647 info->tce_space = (u64 *)__va(tce_space);
27648 }
27649 }
27650 diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c
27651 index 35ccf75..7a15747 100644
27652 --- a/arch/x86/kernel/pci-iommu_table.c
27653 +++ b/arch/x86/kernel/pci-iommu_table.c
27654 @@ -2,7 +2,7 @@
27655 #include <asm/iommu_table.h>
27656 #include <linux/string.h>
27657 #include <linux/kallsyms.h>
27658 -
27659 +#include <linux/sched.h>
27660
27661 #define DEBUG 1
27662
27663 diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
27664 index adf0392..88a7576 100644
27665 --- a/arch/x86/kernel/pci-swiotlb.c
27666 +++ b/arch/x86/kernel/pci-swiotlb.c
27667 @@ -40,7 +40,7 @@ void x86_swiotlb_free_coherent(struct device *dev, size_t size,
27668 struct dma_attrs *attrs)
27669 {
27670 if (is_swiotlb_buffer(dma_to_phys(dev, dma_addr)))
27671 - swiotlb_free_coherent(dev, size, vaddr, dma_addr);
27672 + swiotlb_free_coherent(dev, size, vaddr, dma_addr, attrs);
27673 else
27674 dma_generic_free_coherent(dev, size, vaddr, dma_addr, attrs);
27675 }
27676 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
27677 index 9f7c21c..854f412 100644
27678 --- a/arch/x86/kernel/process.c
27679 +++ b/arch/x86/kernel/process.c
27680 @@ -15,6 +15,7 @@
27681 #include <linux/dmi.h>
27682 #include <linux/utsname.h>
27683 #include <linux/stackprotector.h>
27684 +#include <linux/kthread.h>
27685 #include <linux/tick.h>
27686 #include <linux/cpuidle.h>
27687 #include <trace/events/power.h>
27688 @@ -39,7 +40,8 @@
27689 * section. Since TSS's are completely CPU-local, we want them
27690 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
27691 */
27692 -__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27693 +struct tss_struct cpu_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = {
27694 + [0 ... NR_CPUS-1] = {
27695 .x86_tss = {
27696 .sp0 = TOP_OF_INIT_STACK,
27697 #ifdef CONFIG_X86_32
27698 @@ -57,6 +59,7 @@ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27699 */
27700 .io_bitmap = { [0 ... IO_BITMAP_LONGS] = ~0 },
27701 #endif
27702 +}
27703 };
27704 EXPORT_PER_CPU_SYMBOL(cpu_tss);
27705
27706 @@ -77,13 +80,26 @@ void idle_notifier_unregister(struct notifier_block *n)
27707 EXPORT_SYMBOL_GPL(idle_notifier_unregister);
27708 #endif
27709
27710 +struct kmem_cache *fpregs_state_cachep;
27711 +EXPORT_SYMBOL(fpregs_state_cachep);
27712 +
27713 +void __init arch_task_cache_init(void)
27714 +{
27715 + /* create a slab on which task_structs can be allocated */
27716 + fpregs_state_cachep =
27717 + kmem_cache_create("fpregs_state", xstate_size,
27718 + ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
27719 +}
27720 +
27721 /*
27722 * this gets called so that we can store lazy state into memory and copy the
27723 * current task into the new thread.
27724 */
27725 int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27726 {
27727 - memcpy(dst, src, arch_task_struct_size);
27728 + *dst = *src;
27729 + dst->thread.fpu.state = kmem_cache_alloc_node(fpregs_state_cachep, GFP_KERNEL, tsk_fork_get_node(src));
27730 + memcpy(dst->thread.fpu.state, src->thread.fpu.state, xstate_size);
27731 #ifdef CONFIG_VM86
27732 dst->thread.vm86 = NULL;
27733 #endif
27734 @@ -91,6 +107,12 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27735 return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
27736 }
27737
27738 +void arch_release_task_struct(struct task_struct *tsk)
27739 +{
27740 + kmem_cache_free(fpregs_state_cachep, tsk->thread.fpu.state);
27741 + tsk->thread.fpu.state = NULL;
27742 +}
27743 +
27744 /*
27745 * Free current thread data structures etc..
27746 */
27747 @@ -102,7 +124,7 @@ void exit_thread(void)
27748 struct fpu *fpu = &t->fpu;
27749
27750 if (bp) {
27751 - struct tss_struct *tss = &per_cpu(cpu_tss, get_cpu());
27752 + struct tss_struct *tss = cpu_tss + get_cpu();
27753
27754 t->io_bitmap_ptr = NULL;
27755 clear_thread_flag(TIF_IO_BITMAP);
27756 @@ -124,6 +146,9 @@ void flush_thread(void)
27757 {
27758 struct task_struct *tsk = current;
27759
27760 +#if defined(CONFIG_X86_32) && !defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_PAX_MEMORY_UDEREF)
27761 + loadsegment(gs, 0);
27762 +#endif
27763 flush_ptrace_hw_breakpoint(tsk);
27764 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
27765
27766 @@ -265,7 +290,7 @@ static void __exit_idle(void)
27767 void exit_idle(void)
27768 {
27769 /* idle loop has pid 0 */
27770 - if (current->pid)
27771 + if (task_pid_nr(current))
27772 return;
27773 __exit_idle();
27774 }
27775 @@ -318,7 +343,7 @@ bool xen_set_default_idle(void)
27776 return ret;
27777 }
27778 #endif
27779 -void stop_this_cpu(void *dummy)
27780 +__noreturn void stop_this_cpu(void *dummy)
27781 {
27782 local_irq_disable();
27783 /*
27784 @@ -496,13 +521,6 @@ static int __init idle_setup(char *str)
27785 }
27786 early_param("idle", idle_setup);
27787
27788 -unsigned long arch_align_stack(unsigned long sp)
27789 -{
27790 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
27791 - sp -= get_random_int() % 8192;
27792 - return sp & ~0xf;
27793 -}
27794 -
27795 unsigned long arch_randomize_brk(struct mm_struct *mm)
27796 {
27797 unsigned long range_end = mm->brk + 0x02000000;
27798 @@ -534,9 +552,7 @@ unsigned long get_wchan(struct task_struct *p)
27799 * PADDING
27800 * ----------- top = topmax - TOP_OF_KERNEL_STACK_PADDING
27801 * stack
27802 - * ----------- bottom = start + sizeof(thread_info)
27803 - * thread_info
27804 - * ----------- start
27805 + * ----------- bottom = start
27806 *
27807 * The tasks stack pointer points at the location where the
27808 * framepointer is stored. The data on the stack is:
27809 @@ -547,7 +563,7 @@ unsigned long get_wchan(struct task_struct *p)
27810 */
27811 top = start + THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING;
27812 top -= 2 * sizeof(unsigned long);
27813 - bottom = start + sizeof(struct thread_info);
27814 + bottom = start;
27815
27816 sp = READ_ONCE(p->thread.sp);
27817 if (sp < bottom || sp > top)
27818 @@ -564,3 +580,35 @@ unsigned long get_wchan(struct task_struct *p)
27819 } while (count++ < 16 && p->state != TASK_RUNNING);
27820 return 0;
27821 }
27822 +
27823 +#ifdef CONFIG_PAX_RANDKSTACK
27824 +void pax_randomize_kstack(struct pt_regs *regs)
27825 +{
27826 + struct thread_struct *thread = &current->thread;
27827 + unsigned long time;
27828 +
27829 + if (!randomize_va_space)
27830 + return;
27831 +
27832 + if (v8086_mode(regs))
27833 + return;
27834 +
27835 + time = rdtsc();
27836 +
27837 + /* P4 seems to return a 0 LSB, ignore it */
27838 +#ifdef CONFIG_MPENTIUM4
27839 + time &= 0x3EUL;
27840 + time <<= 2;
27841 +#elif defined(CONFIG_X86_64)
27842 + time &= 0xFUL;
27843 + time <<= 4;
27844 +#else
27845 + time &= 0x1FUL;
27846 + time <<= 3;
27847 +#endif
27848 +
27849 + thread->sp0 ^= time;
27850 + load_sp0(cpu_tss + smp_processor_id(), thread);
27851 + this_cpu_write(cpu_current_top_of_stack, thread->sp0);
27852 +}
27853 +#endif
27854 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
27855 index 737527b..ebf7a85 100644
27856 --- a/arch/x86/kernel/process_32.c
27857 +++ b/arch/x86/kernel/process_32.c
27858 @@ -64,6 +64,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
27859 unsigned long thread_saved_pc(struct task_struct *tsk)
27860 {
27861 return ((unsigned long *)tsk->thread.sp)[3];
27862 +//XXX return tsk->thread.eip;
27863 }
27864
27865 void __show_regs(struct pt_regs *regs, int all)
27866 @@ -76,16 +77,15 @@ void __show_regs(struct pt_regs *regs, int all)
27867 if (user_mode(regs)) {
27868 sp = regs->sp;
27869 ss = regs->ss & 0xffff;
27870 - gs = get_user_gs(regs);
27871 } else {
27872 sp = kernel_stack_pointer(regs);
27873 savesegment(ss, ss);
27874 - savesegment(gs, gs);
27875 }
27876 + gs = get_user_gs(regs);
27877
27878 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
27879 (u16)regs->cs, regs->ip, regs->flags,
27880 - smp_processor_id());
27881 + raw_smp_processor_id());
27882 print_symbol("EIP is at %s\n", regs->ip);
27883
27884 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
27885 @@ -132,21 +132,22 @@ void release_thread(struct task_struct *dead_task)
27886 int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27887 unsigned long arg, struct task_struct *p, unsigned long tls)
27888 {
27889 - struct pt_regs *childregs = task_pt_regs(p);
27890 + struct pt_regs *childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
27891 struct task_struct *tsk;
27892 int err;
27893
27894 p->thread.sp = (unsigned long) childregs;
27895 p->thread.sp0 = (unsigned long) (childregs+1);
27896 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
27897 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
27898
27899 if (unlikely(p->flags & PF_KTHREAD)) {
27900 /* kernel thread */
27901 memset(childregs, 0, sizeof(struct pt_regs));
27902 p->thread.ip = (unsigned long) ret_from_kernel_thread;
27903 - task_user_gs(p) = __KERNEL_STACK_CANARY;
27904 - childregs->ds = __USER_DS;
27905 - childregs->es = __USER_DS;
27906 + savesegment(gs, childregs->gs);
27907 + childregs->ds = __KERNEL_DS;
27908 + childregs->es = __KERNEL_DS;
27909 childregs->fs = __KERNEL_PERCPU;
27910 childregs->bx = sp; /* function */
27911 childregs->bp = arg;
27912 @@ -246,7 +247,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27913 struct fpu *prev_fpu = &prev->fpu;
27914 struct fpu *next_fpu = &next->fpu;
27915 int cpu = smp_processor_id();
27916 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
27917 + struct tss_struct *tss = cpu_tss + cpu;
27918 fpu_switch_t fpu_switch;
27919
27920 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
27921 @@ -265,6 +266,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27922 */
27923 lazy_save_gs(prev->gs);
27924
27925 +#ifdef CONFIG_PAX_MEMORY_UDEREF
27926 + __set_fs(task_thread_info(next_p)->addr_limit);
27927 +#endif
27928 +
27929 /*
27930 * Load the per-thread Thread-Local Storage descriptor.
27931 */
27932 @@ -308,9 +313,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27933 * current_thread_info().
27934 */
27935 load_sp0(tss, next);
27936 - this_cpu_write(cpu_current_top_of_stack,
27937 - (unsigned long)task_stack_page(next_p) +
27938 - THREAD_SIZE);
27939 + this_cpu_write(current_task, next_p);
27940 + this_cpu_write(current_tinfo, &next_p->tinfo);
27941 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
27942
27943 /*
27944 * Restore %gs if needed (which is common)
27945 @@ -320,7 +325,5 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27946
27947 switch_fpu_finish(next_fpu, fpu_switch);
27948
27949 - this_cpu_write(current_task, next_p);
27950 -
27951 return prev_p;
27952 }
27953 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
27954 index b35921a..c995d0b 100644
27955 --- a/arch/x86/kernel/process_64.c
27956 +++ b/arch/x86/kernel/process_64.c
27957 @@ -159,9 +159,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27958 struct pt_regs *childregs;
27959 struct task_struct *me = current;
27960
27961 - p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE;
27962 + p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE - 16;
27963 childregs = task_pt_regs(p);
27964 p->thread.sp = (unsigned long) childregs;
27965 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
27966 set_tsk_thread_flag(p, TIF_FORK);
27967 p->thread.io_bitmap_ptr = NULL;
27968
27969 @@ -171,6 +172,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27970 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
27971 savesegment(es, p->thread.es);
27972 savesegment(ds, p->thread.ds);
27973 + savesegment(ss, p->thread.ss);
27974 + BUG_ON(p->thread.ss == __UDEREF_KERNEL_DS);
27975 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
27976
27977 if (unlikely(p->flags & PF_KTHREAD)) {
27978 @@ -278,7 +281,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27979 struct fpu *prev_fpu = &prev->fpu;
27980 struct fpu *next_fpu = &next->fpu;
27981 int cpu = smp_processor_id();
27982 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
27983 + struct tss_struct *tss = cpu_tss + cpu;
27984 unsigned fsindex, gsindex;
27985 fpu_switch_t fpu_switch;
27986
27987 @@ -329,6 +332,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27988 if (unlikely(next->ds | prev->ds))
27989 loadsegment(ds, next->ds);
27990
27991 + savesegment(ss, prev->ss);
27992 + if (unlikely(next->ss != prev->ss))
27993 + loadsegment(ss, next->ss);
27994 +
27995 /*
27996 * Switch FS and GS.
27997 *
27998 @@ -400,6 +407,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27999 * Switch the PDA and FPU contexts.
28000 */
28001 this_cpu_write(current_task, next_p);
28002 + this_cpu_write(current_tinfo, &next_p->tinfo);
28003
28004 /*
28005 * If it were not for PREEMPT_ACTIVE we could guarantee that the
28006 @@ -412,6 +420,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28007 /* Reload esp0 and ss1. This changes current_thread_info(). */
28008 load_sp0(tss, next);
28009
28010 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
28011 +
28012 /*
28013 * Now maybe reload the debug registers and handle I/O bitmaps
28014 */
28015 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
28016 index 558f50e..2312c52 100644
28017 --- a/arch/x86/kernel/ptrace.c
28018 +++ b/arch/x86/kernel/ptrace.c
28019 @@ -184,10 +184,10 @@ unsigned long kernel_stack_pointer(struct pt_regs *regs)
28020 unsigned long sp = (unsigned long)&regs->sp;
28021 u32 *prev_esp;
28022
28023 - if (context == (sp & ~(THREAD_SIZE - 1)))
28024 + if (context == ((sp + 8) & ~(THREAD_SIZE - 1)))
28025 return sp;
28026
28027 - prev_esp = (u32 *)(context);
28028 + prev_esp = *(u32 **)(context);
28029 if (prev_esp)
28030 return (unsigned long)prev_esp;
28031
28032 @@ -444,6 +444,20 @@ static int putreg(struct task_struct *child,
28033 if (child->thread.gs != value)
28034 return do_arch_prctl(child, ARCH_SET_GS, value);
28035 return 0;
28036 +
28037 + case offsetof(struct user_regs_struct,ip):
28038 + /*
28039 + * Protect against any attempt to set ip to an
28040 + * impossible address. There are dragons lurking if the
28041 + * address is noncanonical. (This explicitly allows
28042 + * setting ip to TASK_SIZE_MAX, because user code can do
28043 + * that all by itself by running off the end of its
28044 + * address space.
28045 + */
28046 + if (value > TASK_SIZE_MAX)
28047 + return -EIO;
28048 + break;
28049 +
28050 #endif
28051 }
28052
28053 @@ -580,7 +594,7 @@ static void ptrace_triggered(struct perf_event *bp,
28054 static unsigned long ptrace_get_dr7(struct perf_event *bp[])
28055 {
28056 int i;
28057 - int dr7 = 0;
28058 + unsigned long dr7 = 0;
28059 struct arch_hw_breakpoint *info;
28060
28061 for (i = 0; i < HBP_NUM; i++) {
28062 @@ -814,7 +828,7 @@ long arch_ptrace(struct task_struct *child, long request,
28063 unsigned long addr, unsigned long data)
28064 {
28065 int ret;
28066 - unsigned long __user *datap = (unsigned long __user *)data;
28067 + unsigned long __user *datap = (__force unsigned long __user *)data;
28068
28069 switch (request) {
28070 /* read the word at location addr in the USER area. */
28071 @@ -899,14 +913,14 @@ long arch_ptrace(struct task_struct *child, long request,
28072 if ((int) addr < 0)
28073 return -EIO;
28074 ret = do_get_thread_area(child, addr,
28075 - (struct user_desc __user *)data);
28076 + (__force struct user_desc __user *) data);
28077 break;
28078
28079 case PTRACE_SET_THREAD_AREA:
28080 if ((int) addr < 0)
28081 return -EIO;
28082 ret = do_set_thread_area(child, addr,
28083 - (struct user_desc __user *)data, 0);
28084 + (__force struct user_desc __user *) data, 0);
28085 break;
28086 #endif
28087
28088 @@ -1294,7 +1308,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
28089
28090 #ifdef CONFIG_X86_64
28091
28092 -static struct user_regset x86_64_regsets[] __read_mostly = {
28093 +static user_regset_no_const x86_64_regsets[] __read_only = {
28094 [REGSET_GENERAL] = {
28095 .core_note_type = NT_PRSTATUS,
28096 .n = sizeof(struct user_regs_struct) / sizeof(long),
28097 @@ -1335,7 +1349,7 @@ static const struct user_regset_view user_x86_64_view = {
28098 #endif /* CONFIG_X86_64 */
28099
28100 #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
28101 -static struct user_regset x86_32_regsets[] __read_mostly = {
28102 +static user_regset_no_const x86_32_regsets[] __read_only = {
28103 [REGSET_GENERAL] = {
28104 .core_note_type = NT_PRSTATUS,
28105 .n = sizeof(struct user_regs_struct32) / sizeof(u32),
28106 @@ -1388,7 +1402,7 @@ static const struct user_regset_view user_x86_32_view = {
28107 */
28108 u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
28109
28110 -void update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28111 +void __init update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28112 {
28113 #ifdef CONFIG_X86_64
28114 x86_64_regsets[REGSET_XSTATE].n = size / sizeof(u64);
28115 @@ -1423,7 +1437,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
28116 memset(info, 0, sizeof(*info));
28117 info->si_signo = SIGTRAP;
28118 info->si_code = si_code;
28119 - info->si_addr = user_mode(regs) ? (void __user *)regs->ip : NULL;
28120 + info->si_addr = user_mode(regs) ? (__force void __user *)regs->ip : NULL;
28121 }
28122
28123 void user_single_step_siginfo(struct task_struct *tsk,
28124 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
28125 index 2f355d2..e75ed0a 100644
28126 --- a/arch/x86/kernel/pvclock.c
28127 +++ b/arch/x86/kernel/pvclock.c
28128 @@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
28129 reset_hung_task_detector();
28130 }
28131
28132 -static atomic64_t last_value = ATOMIC64_INIT(0);
28133 +static atomic64_unchecked_t last_value = ATOMIC64_INIT(0);
28134
28135 void pvclock_resume(void)
28136 {
28137 - atomic64_set(&last_value, 0);
28138 + atomic64_set_unchecked(&last_value, 0);
28139 }
28140
28141 u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
28142 @@ -105,11 +105,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
28143 * updating at the same time, and one of them could be slightly behind,
28144 * making the assumption that last_value always go forward fail to hold.
28145 */
28146 - last = atomic64_read(&last_value);
28147 + last = atomic64_read_unchecked(&last_value);
28148 do {
28149 if (ret < last)
28150 return last;
28151 - last = atomic64_cmpxchg(&last_value, last, ret);
28152 + last = atomic64_cmpxchg_unchecked(&last_value, last, ret);
28153 } while (unlikely(last != ret));
28154
28155 return ret;
28156 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
28157 index 02693dd..33a1546 100644
28158 --- a/arch/x86/kernel/reboot.c
28159 +++ b/arch/x86/kernel/reboot.c
28160 @@ -70,6 +70,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
28161
28162 void __noreturn machine_real_restart(unsigned int type)
28163 {
28164 +
28165 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF))
28166 + struct desc_struct *gdt;
28167 +#endif
28168 +
28169 local_irq_disable();
28170
28171 /*
28172 @@ -97,7 +102,29 @@ void __noreturn machine_real_restart(unsigned int type)
28173
28174 /* Jump to the identity-mapped low memory code */
28175 #ifdef CONFIG_X86_32
28176 - asm volatile("jmpl *%0" : :
28177 +
28178 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
28179 + gdt = get_cpu_gdt_table(smp_processor_id());
28180 + pax_open_kernel();
28181 +#ifdef CONFIG_PAX_MEMORY_UDEREF
28182 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
28183 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
28184 + loadsegment(ds, __KERNEL_DS);
28185 + loadsegment(es, __KERNEL_DS);
28186 + loadsegment(ss, __KERNEL_DS);
28187 +#endif
28188 +#ifdef CONFIG_PAX_KERNEXEC
28189 + gdt[GDT_ENTRY_KERNEL_CS].base0 = 0;
28190 + gdt[GDT_ENTRY_KERNEL_CS].base1 = 0;
28191 + gdt[GDT_ENTRY_KERNEL_CS].base2 = 0;
28192 + gdt[GDT_ENTRY_KERNEL_CS].limit0 = 0xffff;
28193 + gdt[GDT_ENTRY_KERNEL_CS].limit = 0xf;
28194 + gdt[GDT_ENTRY_KERNEL_CS].g = 1;
28195 +#endif
28196 + pax_close_kernel();
28197 +#endif
28198 +
28199 + asm volatile("ljmpl *%0" : :
28200 "rm" (real_mode_header->machine_real_restart_asm),
28201 "a" (type));
28202 #else
28203 @@ -137,7 +164,7 @@ static int __init set_kbd_reboot(const struct dmi_system_id *d)
28204 /*
28205 * This is a single dmi_table handling all reboot quirks.
28206 */
28207 -static struct dmi_system_id __initdata reboot_dmi_table[] = {
28208 +static const struct dmi_system_id __initconst reboot_dmi_table[] = {
28209
28210 /* Acer */
28211 { /* Handle reboot issue on Acer Aspire one */
28212 @@ -511,7 +538,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
28213 * This means that this function can never return, it can misbehave
28214 * by not rebooting properly and hanging.
28215 */
28216 -static void native_machine_emergency_restart(void)
28217 +static void __noreturn native_machine_emergency_restart(void)
28218 {
28219 int i;
28220 int attempt = 0;
28221 @@ -631,13 +658,13 @@ void native_machine_shutdown(void)
28222 #endif
28223 }
28224
28225 -static void __machine_emergency_restart(int emergency)
28226 +static void __noreturn __machine_emergency_restart(int emergency)
28227 {
28228 reboot_emergency = emergency;
28229 machine_ops.emergency_restart();
28230 }
28231
28232 -static void native_machine_restart(char *__unused)
28233 +static void __noreturn native_machine_restart(char *__unused)
28234 {
28235 pr_notice("machine restart\n");
28236
28237 @@ -646,7 +673,7 @@ static void native_machine_restart(char *__unused)
28238 __machine_emergency_restart(0);
28239 }
28240
28241 -static void native_machine_halt(void)
28242 +static void __noreturn native_machine_halt(void)
28243 {
28244 /* Stop other cpus and apics */
28245 machine_shutdown();
28246 @@ -656,7 +683,7 @@ static void native_machine_halt(void)
28247 stop_this_cpu(NULL);
28248 }
28249
28250 -static void native_machine_power_off(void)
28251 +static void __noreturn native_machine_power_off(void)
28252 {
28253 if (pm_power_off) {
28254 if (!reboot_force)
28255 @@ -665,9 +692,10 @@ static void native_machine_power_off(void)
28256 }
28257 /* A fallback in case there is no PM info available */
28258 tboot_shutdown(TB_SHUTDOWN_HALT);
28259 + unreachable();
28260 }
28261
28262 -struct machine_ops machine_ops = {
28263 +struct machine_ops machine_ops __read_only = {
28264 .power_off = native_machine_power_off,
28265 .shutdown = native_machine_shutdown,
28266 .emergency_restart = native_machine_emergency_restart,
28267 diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
28268 index c8e41e9..64049ef 100644
28269 --- a/arch/x86/kernel/reboot_fixups_32.c
28270 +++ b/arch/x86/kernel/reboot_fixups_32.c
28271 @@ -57,7 +57,7 @@ struct device_fixup {
28272 unsigned int vendor;
28273 unsigned int device;
28274 void (*reboot_fixup)(struct pci_dev *);
28275 -};
28276 +} __do_const;
28277
28278 /*
28279 * PCI ids solely used for fixups_table go here
28280 diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
28281 index 98111b3..73ca125 100644
28282 --- a/arch/x86/kernel/relocate_kernel_64.S
28283 +++ b/arch/x86/kernel/relocate_kernel_64.S
28284 @@ -96,8 +96,7 @@ relocate_kernel:
28285
28286 /* jump to identity mapped page */
28287 addq $(identity_mapped - relocate_kernel), %r8
28288 - pushq %r8
28289 - ret
28290 + jmp *%r8
28291
28292 identity_mapped:
28293 /* set return address to 0 if not preserving context */
28294 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
28295 index 37c8ea8..c0e8efa 100644
28296 --- a/arch/x86/kernel/setup.c
28297 +++ b/arch/x86/kernel/setup.c
28298 @@ -111,6 +111,7 @@
28299 #include <asm/mce.h>
28300 #include <asm/alternative.h>
28301 #include <asm/prom.h>
28302 +#include <asm/boot.h>
28303
28304 /*
28305 * max_low_pfn_mapped: highest direct mapped pfn under 4GB
28306 @@ -206,10 +207,12 @@ EXPORT_SYMBOL(boot_cpu_data);
28307 #endif
28308
28309
28310 -#if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
28311 -__visible unsigned long mmu_cr4_features;
28312 +#ifdef CONFIG_X86_64
28313 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
28314 +#elif defined(CONFIG_X86_PAE)
28315 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
28316 #else
28317 -__visible unsigned long mmu_cr4_features = X86_CR4_PAE;
28318 +__visible unsigned long mmu_cr4_features __read_only;
28319 #endif
28320
28321 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
28322 @@ -752,7 +755,7 @@ static void __init trim_bios_range(void)
28323 * area (640->1Mb) as ram even though it is not.
28324 * take them out.
28325 */
28326 - e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1);
28327 + e820_remove_range(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RAM, 1);
28328
28329 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
28330 }
28331 @@ -760,7 +763,7 @@ static void __init trim_bios_range(void)
28332 /* called before trim_bios_range() to spare extra sanitize */
28333 static void __init e820_add_kernel_range(void)
28334 {
28335 - u64 start = __pa_symbol(_text);
28336 + u64 start = __pa_symbol(ktla_ktva((unsigned long)_text));
28337 u64 size = __pa_symbol(_end) - start;
28338
28339 /*
28340 @@ -841,8 +844,8 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
28341
28342 void __init setup_arch(char **cmdline_p)
28343 {
28344 - memblock_reserve(__pa_symbol(_text),
28345 - (unsigned long)__bss_stop - (unsigned long)_text);
28346 + memblock_reserve(__pa_symbol(ktla_ktva((unsigned long)_text)),
28347 + (unsigned long)__bss_stop - ktla_ktva((unsigned long)_text));
28348
28349 early_reserve_initrd();
28350
28351 @@ -935,16 +938,16 @@ void __init setup_arch(char **cmdline_p)
28352
28353 if (!boot_params.hdr.root_flags)
28354 root_mountflags &= ~MS_RDONLY;
28355 - init_mm.start_code = (unsigned long) _text;
28356 - init_mm.end_code = (unsigned long) _etext;
28357 - init_mm.end_data = (unsigned long) _edata;
28358 + init_mm.start_code = ktla_ktva((unsigned long)_text);
28359 + init_mm.end_code = ktla_ktva((unsigned long)_etext);
28360 + init_mm.end_data = (unsigned long)_edata;
28361 init_mm.brk = _brk_end;
28362
28363 mpx_mm_init(&init_mm);
28364
28365 - code_resource.start = __pa_symbol(_text);
28366 - code_resource.end = __pa_symbol(_etext)-1;
28367 - data_resource.start = __pa_symbol(_etext);
28368 + code_resource.start = __pa_symbol(ktla_ktva((unsigned long)_text));
28369 + code_resource.end = __pa_symbol(ktla_ktva((unsigned long)_etext))-1;
28370 + data_resource.start = __pa_symbol(_sdata);
28371 data_resource.end = __pa_symbol(_edata)-1;
28372 bss_resource.start = __pa_symbol(__bss_start);
28373 bss_resource.end = __pa_symbol(__bss_stop)-1;
28374 diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
28375 index e4fcb87..9c06c55 100644
28376 --- a/arch/x86/kernel/setup_percpu.c
28377 +++ b/arch/x86/kernel/setup_percpu.c
28378 @@ -21,19 +21,17 @@
28379 #include <asm/cpu.h>
28380 #include <asm/stackprotector.h>
28381
28382 -DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number);
28383 +#ifdef CONFIG_SMP
28384 +DEFINE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
28385 EXPORT_PER_CPU_SYMBOL(cpu_number);
28386 +#endif
28387
28388 -#ifdef CONFIG_X86_64
28389 #define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
28390 -#else
28391 -#define BOOT_PERCPU_OFFSET 0
28392 -#endif
28393
28394 DEFINE_PER_CPU_READ_MOSTLY(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
28395 EXPORT_PER_CPU_SYMBOL(this_cpu_off);
28396
28397 -unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
28398 +unsigned long __per_cpu_offset[NR_CPUS] __read_only = {
28399 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
28400 };
28401 EXPORT_SYMBOL(__per_cpu_offset);
28402 @@ -66,7 +64,7 @@ static bool __init pcpu_need_numa(void)
28403 {
28404 #ifdef CONFIG_NEED_MULTIPLE_NODES
28405 pg_data_t *last = NULL;
28406 - unsigned int cpu;
28407 + int cpu;
28408
28409 for_each_possible_cpu(cpu) {
28410 int node = early_cpu_to_node(cpu);
28411 @@ -155,10 +153,10 @@ static inline void setup_percpu_segment(int cpu)
28412 {
28413 #ifdef CONFIG_X86_32
28414 struct desc_struct gdt;
28415 + unsigned long base = per_cpu_offset(cpu);
28416
28417 - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
28418 - 0x2 | DESCTYPE_S, 0x8);
28419 - gdt.s = 1;
28420 + pack_descriptor(&gdt, base, (VMALLOC_END - base - 1) >> PAGE_SHIFT,
28421 + 0x83 | DESCTYPE_S, 0xC);
28422 write_gdt_entry(get_cpu_gdt_table(cpu),
28423 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
28424 #endif
28425 @@ -219,6 +217,11 @@ void __init setup_per_cpu_areas(void)
28426 /* alrighty, percpu areas up and running */
28427 delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
28428 for_each_possible_cpu(cpu) {
28429 +#ifdef CONFIG_CC_STACKPROTECTOR
28430 +#ifdef CONFIG_X86_32
28431 + unsigned long canary = per_cpu(stack_canary.canary, cpu);
28432 +#endif
28433 +#endif
28434 per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu];
28435 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
28436 per_cpu(cpu_number, cpu) = cpu;
28437 @@ -259,6 +262,12 @@ void __init setup_per_cpu_areas(void)
28438 */
28439 set_cpu_numa_node(cpu, early_cpu_to_node(cpu));
28440 #endif
28441 +#ifdef CONFIG_CC_STACKPROTECTOR
28442 +#ifdef CONFIG_X86_32
28443 + if (!cpu)
28444 + per_cpu(stack_canary.canary, cpu) = canary;
28445 +#endif
28446 +#endif
28447 /*
28448 * Up to this point, the boot CPU has been using .init.data
28449 * area. Reload any changed state for the boot CPU.
28450 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
28451 index da52e6b..8c18d64 100644
28452 --- a/arch/x86/kernel/signal.c
28453 +++ b/arch/x86/kernel/signal.c
28454 @@ -189,7 +189,7 @@ static unsigned long align_sigframe(unsigned long sp)
28455 * Align the stack pointer according to the i386 ABI,
28456 * i.e. so that on function entry ((sp + 4) & 15) == 0.
28457 */
28458 - sp = ((sp + 4) & -16ul) - 4;
28459 + sp = ((sp - 12) & -16ul) - 4;
28460 #else /* !CONFIG_X86_32 */
28461 sp = round_down(sp, 16) - 8;
28462 #endif
28463 @@ -298,10 +298,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28464 }
28465
28466 if (current->mm->context.vdso)
28467 - restorer = current->mm->context.vdso +
28468 - selected_vdso32->sym___kernel_sigreturn;
28469 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_sigreturn);
28470 else
28471 - restorer = &frame->retcode;
28472 + restorer = (void __user *)&frame->retcode;
28473 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28474 restorer = ksig->ka.sa.sa_restorer;
28475
28476 @@ -315,7 +314,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28477 * reasons and because gdb uses it as a signature to notice
28478 * signal handler stack frames.
28479 */
28480 - err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode);
28481 + err |= __put_user(*((u64 *)&retcode), (u64 __user *)frame->retcode);
28482
28483 if (err)
28484 return -EFAULT;
28485 @@ -362,8 +361,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28486 save_altstack_ex(&frame->uc.uc_stack, regs->sp);
28487
28488 /* Set up to return from userspace. */
28489 - restorer = current->mm->context.vdso +
28490 - selected_vdso32->sym___kernel_rt_sigreturn;
28491 + if (current->mm->context.vdso)
28492 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_rt_sigreturn);
28493 + else
28494 + restorer = (void __user *)&frame->retcode;
28495 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28496 restorer = ksig->ka.sa.sa_restorer;
28497 put_user_ex(restorer, &frame->pretcode);
28498 @@ -375,7 +376,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28499 * reasons and because gdb uses it as a signature to notice
28500 * signal handler stack frames.
28501 */
28502 - put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
28503 + put_user_ex(*((u64 *)&rt_retcode), (u64 __user *)frame->retcode);
28504 } put_user_catch(err);
28505
28506 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
28507 @@ -611,7 +612,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28508 {
28509 int usig = ksig->sig;
28510 sigset_t *set = sigmask_to_save();
28511 - compat_sigset_t *cset = (compat_sigset_t *) set;
28512 + sigset_t sigcopy;
28513 + compat_sigset_t *cset;
28514 +
28515 + sigcopy = *set;
28516 +
28517 + cset = (compat_sigset_t *) &sigcopy;
28518
28519 /* Set up the stack frame */
28520 if (is_ia32_frame()) {
28521 @@ -622,7 +628,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28522 } else if (is_x32_frame()) {
28523 return x32_setup_rt_frame(ksig, cset, regs);
28524 } else {
28525 - return __setup_rt_frame(ksig->sig, ksig, set, regs);
28526 + return __setup_rt_frame(ksig->sig, ksig, &sigcopy, regs);
28527 }
28528 }
28529
28530 diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
28531 index 12c8286..aa65d13 100644
28532 --- a/arch/x86/kernel/smp.c
28533 +++ b/arch/x86/kernel/smp.c
28534 @@ -336,7 +336,7 @@ static int __init nonmi_ipi_setup(char *str)
28535
28536 __setup("nonmi_ipi", nonmi_ipi_setup);
28537
28538 -struct smp_ops smp_ops = {
28539 +struct smp_ops smp_ops __read_only = {
28540 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
28541 .smp_prepare_cpus = native_smp_prepare_cpus,
28542 .smp_cpus_done = native_smp_cpus_done,
28543 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
28544 index 892ee2e5..be6b3f6 100644
28545 --- a/arch/x86/kernel/smpboot.c
28546 +++ b/arch/x86/kernel/smpboot.c
28547 @@ -213,14 +213,17 @@ static void notrace start_secondary(void *unused)
28548
28549 enable_start_cpu0 = 0;
28550
28551 -#ifdef CONFIG_X86_32
28552 + /* otherwise gcc will move up smp_processor_id before the cpu_init */
28553 + barrier();
28554 +
28555 /* switch away from the initial page table */
28556 +#ifdef CONFIG_PAX_PER_CPU_PGD
28557 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
28558 +#else
28559 load_cr3(swapper_pg_dir);
28560 +#endif
28561 __flush_tlb_all();
28562 -#endif
28563
28564 - /* otherwise gcc will move up smp_processor_id before the cpu_init */
28565 - barrier();
28566 /*
28567 * Check TSC synchronization with the BP:
28568 */
28569 @@ -809,16 +812,15 @@ void common_cpu_up(unsigned int cpu, struct task_struct *idle)
28570 alternatives_enable_smp();
28571
28572 per_cpu(current_task, cpu) = idle;
28573 + per_cpu(current_tinfo, cpu) = &idle->tinfo;
28574
28575 #ifdef CONFIG_X86_32
28576 - /* Stack for startup_32 can be just as for start_secondary onwards */
28577 irq_ctx_init(cpu);
28578 - per_cpu(cpu_current_top_of_stack, cpu) =
28579 - (unsigned long)task_stack_page(idle) + THREAD_SIZE;
28580 #else
28581 clear_tsk_thread_flag(idle, TIF_FORK);
28582 initial_gs = per_cpu_offset(cpu);
28583 #endif
28584 + per_cpu(cpu_current_top_of_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
28585 }
28586
28587 /*
28588 @@ -839,9 +841,11 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
28589 unsigned long timeout;
28590
28591 idle->thread.sp = (unsigned long) (((struct pt_regs *)
28592 - (THREAD_SIZE + task_stack_page(idle))) - 1);
28593 + (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
28594
28595 + pax_open_kernel();
28596 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
28597 + pax_close_kernel();
28598 initial_code = (unsigned long)start_secondary;
28599 stack_start = idle->thread.sp;
28600
28601 @@ -989,6 +993,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
28602
28603 common_cpu_up(cpu, tidle);
28604
28605 +#ifdef CONFIG_PAX_PER_CPU_PGD
28606 + clone_pgd_range(get_cpu_pgd(cpu, kernel) + KERNEL_PGD_BOUNDARY,
28607 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28608 + KERNEL_PGD_PTRS);
28609 + clone_pgd_range(get_cpu_pgd(cpu, user) + KERNEL_PGD_BOUNDARY,
28610 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28611 + KERNEL_PGD_PTRS);
28612 +#endif
28613 +
28614 /*
28615 * We have to walk the irq descriptors to setup the vector
28616 * space for the cpu which comes online. Prevent irq
28617 diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
28618 index c9a0738..f0ab628 100644
28619 --- a/arch/x86/kernel/step.c
28620 +++ b/arch/x86/kernel/step.c
28621 @@ -45,7 +45,8 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
28622 addr += base;
28623 }
28624 mutex_unlock(&child->mm->context.lock);
28625 - }
28626 + } else if (seg == __KERNEL_CS || seg == __KERNEXEC_KERNEL_CS)
28627 + addr = ktla_ktva(addr);
28628 #endif
28629
28630 return addr;
28631 @@ -57,6 +58,9 @@ static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
28632 unsigned char opcode[15];
28633 unsigned long addr = convert_ip_to_linear(child, regs);
28634
28635 + if (addr == -EINVAL)
28636 + return 0;
28637 +
28638 copied = access_process_vm(child, addr, opcode, sizeof(opcode), 0);
28639 for (i = 0; i < copied; i++) {
28640 switch (opcode[i]) {
28641 diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c
28642 new file mode 100644
28643 index 0000000..5877189
28644 --- /dev/null
28645 +++ b/arch/x86/kernel/sys_i386_32.c
28646 @@ -0,0 +1,189 @@
28647 +/*
28648 + * This file contains various random system calls that
28649 + * have a non-standard calling sequence on the Linux/i386
28650 + * platform.
28651 + */
28652 +
28653 +#include <linux/errno.h>
28654 +#include <linux/sched.h>
28655 +#include <linux/mm.h>
28656 +#include <linux/fs.h>
28657 +#include <linux/smp.h>
28658 +#include <linux/sem.h>
28659 +#include <linux/msg.h>
28660 +#include <linux/shm.h>
28661 +#include <linux/stat.h>
28662 +#include <linux/syscalls.h>
28663 +#include <linux/mman.h>
28664 +#include <linux/file.h>
28665 +#include <linux/utsname.h>
28666 +#include <linux/ipc.h>
28667 +#include <linux/elf.h>
28668 +
28669 +#include <linux/uaccess.h>
28670 +#include <linux/unistd.h>
28671 +
28672 +#include <asm/syscalls.h>
28673 +
28674 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags)
28675 +{
28676 + unsigned long pax_task_size = TASK_SIZE;
28677 +
28678 +#ifdef CONFIG_PAX_SEGMEXEC
28679 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
28680 + pax_task_size = SEGMEXEC_TASK_SIZE;
28681 +#endif
28682 +
28683 + if (flags & MAP_FIXED)
28684 + if (len > pax_task_size || addr > pax_task_size - len)
28685 + return -EINVAL;
28686 +
28687 + return 0;
28688 +}
28689 +
28690 +/*
28691 + * Align a virtual address to avoid aliasing in the I$ on AMD F15h.
28692 + */
28693 +static unsigned long get_align_mask(void)
28694 +{
28695 + if (va_align.flags < 0 || !(va_align.flags & ALIGN_VA_32))
28696 + return 0;
28697 +
28698 + if (!(current->flags & PF_RANDOMIZE))
28699 + return 0;
28700 +
28701 + return va_align.mask;
28702 +}
28703 +
28704 +unsigned long
28705 +arch_get_unmapped_area(struct file *filp, unsigned long addr,
28706 + unsigned long len, unsigned long pgoff, unsigned long flags)
28707 +{
28708 + struct mm_struct *mm = current->mm;
28709 + struct vm_area_struct *vma;
28710 + unsigned long pax_task_size = TASK_SIZE;
28711 + struct vm_unmapped_area_info info;
28712 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28713 +
28714 +#ifdef CONFIG_PAX_SEGMEXEC
28715 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28716 + pax_task_size = SEGMEXEC_TASK_SIZE;
28717 +#endif
28718 +
28719 + pax_task_size -= PAGE_SIZE;
28720 +
28721 + if (len > pax_task_size)
28722 + return -ENOMEM;
28723 +
28724 + if (flags & MAP_FIXED)
28725 + return addr;
28726 +
28727 +#ifdef CONFIG_PAX_RANDMMAP
28728 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28729 +#endif
28730 +
28731 + if (addr) {
28732 + addr = PAGE_ALIGN(addr);
28733 + if (pax_task_size - len >= addr) {
28734 + vma = find_vma(mm, addr);
28735 + if (check_heap_stack_gap(vma, addr, len, offset))
28736 + return addr;
28737 + }
28738 + }
28739 +
28740 + info.flags = 0;
28741 + info.length = len;
28742 + info.align_mask = filp ? get_align_mask() : 0;
28743 + info.align_offset = pgoff << PAGE_SHIFT;
28744 + info.threadstack_offset = offset;
28745 +
28746 +#ifdef CONFIG_PAX_PAGEEXEC
28747 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE)) {
28748 + info.low_limit = 0x00110000UL;
28749 + info.high_limit = mm->start_code;
28750 +
28751 +#ifdef CONFIG_PAX_RANDMMAP
28752 + if (mm->pax_flags & MF_PAX_RANDMMAP)
28753 + info.low_limit += mm->delta_mmap & 0x03FFF000UL;
28754 +#endif
28755 +
28756 + if (info.low_limit < info.high_limit) {
28757 + addr = vm_unmapped_area(&info);
28758 + if (!IS_ERR_VALUE(addr))
28759 + return addr;
28760 + }
28761 + } else
28762 +#endif
28763 +
28764 + info.low_limit = mm->mmap_base;
28765 + info.high_limit = pax_task_size;
28766 +
28767 + return vm_unmapped_area(&info);
28768 +}
28769 +
28770 +unsigned long
28771 +arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28772 + const unsigned long len, const unsigned long pgoff,
28773 + const unsigned long flags)
28774 +{
28775 + struct vm_area_struct *vma;
28776 + struct mm_struct *mm = current->mm;
28777 + unsigned long addr = addr0, pax_task_size = TASK_SIZE;
28778 + struct vm_unmapped_area_info info;
28779 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28780 +
28781 +#ifdef CONFIG_PAX_SEGMEXEC
28782 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28783 + pax_task_size = SEGMEXEC_TASK_SIZE;
28784 +#endif
28785 +
28786 + pax_task_size -= PAGE_SIZE;
28787 +
28788 + /* requested length too big for entire address space */
28789 + if (len > pax_task_size)
28790 + return -ENOMEM;
28791 +
28792 + if (flags & MAP_FIXED)
28793 + return addr;
28794 +
28795 +#ifdef CONFIG_PAX_PAGEEXEC
28796 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE))
28797 + goto bottomup;
28798 +#endif
28799 +
28800 +#ifdef CONFIG_PAX_RANDMMAP
28801 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28802 +#endif
28803 +
28804 + /* requesting a specific address */
28805 + if (addr) {
28806 + addr = PAGE_ALIGN(addr);
28807 + if (pax_task_size - len >= addr) {
28808 + vma = find_vma(mm, addr);
28809 + if (check_heap_stack_gap(vma, addr, len, offset))
28810 + return addr;
28811 + }
28812 + }
28813 +
28814 + info.flags = VM_UNMAPPED_AREA_TOPDOWN;
28815 + info.length = len;
28816 + info.low_limit = PAGE_SIZE;
28817 + info.high_limit = mm->mmap_base;
28818 + info.align_mask = filp ? get_align_mask() : 0;
28819 + info.align_offset = pgoff << PAGE_SHIFT;
28820 + info.threadstack_offset = offset;
28821 +
28822 + addr = vm_unmapped_area(&info);
28823 + if (!(addr & ~PAGE_MASK))
28824 + return addr;
28825 + VM_BUG_ON(addr != -ENOMEM);
28826 +
28827 +bottomup:
28828 + /*
28829 + * A failed mmap() very likely causes application failure,
28830 + * so fall back to the bottom-up function here. This scenario
28831 + * can happen with large stack limits and large mmap()
28832 + * allocations.
28833 + */
28834 + return arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
28835 +}
28836 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
28837 index 10e0272..b4bb9a7 100644
28838 --- a/arch/x86/kernel/sys_x86_64.c
28839 +++ b/arch/x86/kernel/sys_x86_64.c
28840 @@ -97,8 +97,8 @@ out:
28841 return error;
28842 }
28843
28844 -static void find_start_end(unsigned long flags, unsigned long *begin,
28845 - unsigned long *end)
28846 +static void find_start_end(struct mm_struct *mm, unsigned long flags,
28847 + unsigned long *begin, unsigned long *end)
28848 {
28849 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
28850 unsigned long new_begin;
28851 @@ -117,7 +117,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
28852 *begin = new_begin;
28853 }
28854 } else {
28855 - *begin = current->mm->mmap_legacy_base;
28856 + *begin = mm->mmap_legacy_base;
28857 *end = TASK_SIZE;
28858 }
28859 }
28860 @@ -130,20 +130,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
28861 struct vm_area_struct *vma;
28862 struct vm_unmapped_area_info info;
28863 unsigned long begin, end;
28864 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28865
28866 if (flags & MAP_FIXED)
28867 return addr;
28868
28869 - find_start_end(flags, &begin, &end);
28870 + find_start_end(mm, flags, &begin, &end);
28871
28872 if (len > end)
28873 return -ENOMEM;
28874
28875 +#ifdef CONFIG_PAX_RANDMMAP
28876 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28877 +#endif
28878 +
28879 if (addr) {
28880 addr = PAGE_ALIGN(addr);
28881 vma = find_vma(mm, addr);
28882 - if (end - len >= addr &&
28883 - (!vma || addr + len <= vma->vm_start))
28884 + if (end - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
28885 return addr;
28886 }
28887
28888 @@ -157,6 +161,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
28889 info.align_mask = get_align_mask();
28890 info.align_offset += get_align_bits();
28891 }
28892 + info.threadstack_offset = offset;
28893 return vm_unmapped_area(&info);
28894 }
28895
28896 @@ -169,6 +174,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28897 struct mm_struct *mm = current->mm;
28898 unsigned long addr = addr0;
28899 struct vm_unmapped_area_info info;
28900 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28901
28902 /* requested length too big for entire address space */
28903 if (len > TASK_SIZE)
28904 @@ -181,12 +187,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28905 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
28906 goto bottomup;
28907
28908 +#ifdef CONFIG_PAX_RANDMMAP
28909 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28910 +#endif
28911 +
28912 /* requesting a specific address */
28913 if (addr) {
28914 addr = PAGE_ALIGN(addr);
28915 vma = find_vma(mm, addr);
28916 - if (TASK_SIZE - len >= addr &&
28917 - (!vma || addr + len <= vma->vm_start))
28918 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
28919 return addr;
28920 }
28921
28922 @@ -200,6 +209,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28923 info.align_mask = get_align_mask();
28924 info.align_offset += get_align_bits();
28925 }
28926 + info.threadstack_offset = offset;
28927 addr = vm_unmapped_area(&info);
28928 if (!(addr & ~PAGE_MASK))
28929 return addr;
28930 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
28931 index 91a4496..6414b5c 100644
28932 --- a/arch/x86/kernel/tboot.c
28933 +++ b/arch/x86/kernel/tboot.c
28934 @@ -44,6 +44,7 @@
28935 #include <asm/setup.h>
28936 #include <asm/e820.h>
28937 #include <asm/io.h>
28938 +#include <asm/tlbflush.h>
28939
28940 #include "../realmode/rm/wakeup.h"
28941
28942 @@ -151,6 +152,10 @@ static int map_tboot_pages(unsigned long vaddr, unsigned long start_pfn,
28943 if (!tboot_pg_dir)
28944 return -1;
28945
28946 + clone_pgd_range(tboot_pg_dir + KERNEL_PGD_BOUNDARY,
28947 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28948 + KERNEL_PGD_PTRS);
28949 +
28950 for (; nr > 0; nr--, vaddr += PAGE_SIZE, start_pfn++) {
28951 if (map_tboot_page(vaddr, start_pfn, PAGE_KERNEL_EXEC))
28952 return -1;
28953 @@ -221,8 +226,6 @@ static int tboot_setup_sleep(void)
28954
28955 void tboot_shutdown(u32 shutdown_type)
28956 {
28957 - void (*shutdown)(void);
28958 -
28959 if (!tboot_enabled())
28960 return;
28961
28962 @@ -242,9 +245,12 @@ void tboot_shutdown(u32 shutdown_type)
28963 tboot->shutdown_type = shutdown_type;
28964
28965 switch_to_tboot_pt();
28966 + __write_cr4(__read_cr4() & ~X86_CR4_PCIDE);
28967
28968 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
28969 - shutdown();
28970 + /*
28971 + * PaX: can't be a C indirect function call due to KERNEXEC
28972 + */
28973 + asm volatile("jmp *%0" : : "r"((unsigned long)tboot->shutdown_entry));
28974
28975 /* should not reach here */
28976 while (1)
28977 @@ -310,7 +316,7 @@ static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
28978 return -ENODEV;
28979 }
28980
28981 -static atomic_t ap_wfs_count;
28982 +static atomic_unchecked_t ap_wfs_count;
28983
28984 static int tboot_wait_for_aps(int num_aps)
28985 {
28986 @@ -334,9 +340,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
28987 {
28988 switch (action) {
28989 case CPU_DYING:
28990 - atomic_inc(&ap_wfs_count);
28991 + atomic_inc_unchecked(&ap_wfs_count);
28992 if (num_online_cpus() == 1)
28993 - if (tboot_wait_for_aps(atomic_read(&ap_wfs_count)))
28994 + if (tboot_wait_for_aps(atomic_read_unchecked(&ap_wfs_count)))
28995 return NOTIFY_BAD;
28996 break;
28997 }
28998 @@ -422,7 +428,7 @@ static __init int tboot_late_init(void)
28999
29000 tboot_create_trampoline();
29001
29002 - atomic_set(&ap_wfs_count, 0);
29003 + atomic_set_unchecked(&ap_wfs_count, 0);
29004 register_hotcpu_notifier(&tboot_cpu_notifier);
29005
29006 #ifdef CONFIG_DEBUG_FS
29007 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
29008 index d39c091..1df4349 100644
29009 --- a/arch/x86/kernel/time.c
29010 +++ b/arch/x86/kernel/time.c
29011 @@ -32,7 +32,7 @@ unsigned long profile_pc(struct pt_regs *regs)
29012
29013 if (!user_mode(regs) && in_lock_functions(pc)) {
29014 #ifdef CONFIG_FRAME_POINTER
29015 - return *(unsigned long *)(regs->bp + sizeof(long));
29016 + return ktla_ktva(*(unsigned long *)(regs->bp + sizeof(long)));
29017 #else
29018 unsigned long *sp =
29019 (unsigned long *)kernel_stack_pointer(regs);
29020 @@ -41,11 +41,17 @@ unsigned long profile_pc(struct pt_regs *regs)
29021 * or above a saved flags. Eflags has bits 22-31 zero,
29022 * kernel addresses don't.
29023 */
29024 +
29025 +#ifdef CONFIG_PAX_KERNEXEC
29026 + return ktla_ktva(sp[0]);
29027 +#else
29028 if (sp[0] >> 22)
29029 return sp[0];
29030 if (sp[1] >> 22)
29031 return sp[1];
29032 #endif
29033 +
29034 +#endif
29035 }
29036 return pc;
29037 }
29038 diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
29039 index 7fc5e84..c6e445a 100644
29040 --- a/arch/x86/kernel/tls.c
29041 +++ b/arch/x86/kernel/tls.c
29042 @@ -139,6 +139,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
29043 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
29044 return -EINVAL;
29045
29046 +#ifdef CONFIG_PAX_SEGMEXEC
29047 + if ((p->mm->pax_flags & MF_PAX_SEGMEXEC) && (info.contents & MODIFY_LDT_CONTENTS_CODE))
29048 + return -EINVAL;
29049 +#endif
29050 +
29051 set_tls_desc(p, idx, &info, 1);
29052
29053 return 0;
29054 @@ -256,7 +261,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
29055
29056 if (kbuf)
29057 info = kbuf;
29058 - else if (__copy_from_user(infobuf, ubuf, count))
29059 + else if (count > sizeof infobuf || __copy_from_user(infobuf, ubuf, count))
29060 return -EFAULT;
29061 else
29062 info = infobuf;
29063 diff --git a/arch/x86/kernel/tracepoint.c b/arch/x86/kernel/tracepoint.c
29064 index 1c113db..287b42e 100644
29065 --- a/arch/x86/kernel/tracepoint.c
29066 +++ b/arch/x86/kernel/tracepoint.c
29067 @@ -9,11 +9,11 @@
29068 #include <linux/atomic.h>
29069
29070 atomic_t trace_idt_ctr = ATOMIC_INIT(0);
29071 -struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29072 +const struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29073 (unsigned long) trace_idt_table };
29074
29075 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29076 -gate_desc trace_idt_table[NR_VECTORS] __page_aligned_bss;
29077 +gate_desc trace_idt_table[NR_VECTORS] __page_aligned_rodata;
29078
29079 static int trace_irq_vector_refcount;
29080 static DEFINE_MUTEX(irq_vector_mutex);
29081 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
29082 index 346eec7..d98e7a6 100644
29083 --- a/arch/x86/kernel/traps.c
29084 +++ b/arch/x86/kernel/traps.c
29085 @@ -70,7 +70,7 @@
29086 #include <asm/proto.h>
29087
29088 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29089 -gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29090 +gate_desc debug_idt_table[NR_VECTORS] __page_aligned_rodata;
29091 #else
29092 #include <asm/processor-flags.h>
29093 #include <asm/setup.h>
29094 @@ -78,7 +78,7 @@ gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29095 #endif
29096
29097 /* Must be page-aligned because the real IDT is used in a fixmap. */
29098 -gate_desc idt_table[NR_VECTORS] __page_aligned_bss;
29099 +gate_desc idt_table[NR_VECTORS] __page_aligned_rodata;
29100
29101 DECLARE_BITMAP(used_vectors, NR_VECTORS);
29102 EXPORT_SYMBOL_GPL(used_vectors);
29103 @@ -165,7 +165,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
29104 * will catch asm bugs and any attempt to use ist_preempt_enable
29105 * from double_fault.
29106 */
29107 - BUG_ON((unsigned long)(current_top_of_stack() -
29108 + BUG_ON((unsigned long)(current_top_of_stack(smp_processor_id()) -
29109 current_stack_pointer()) >= THREAD_SIZE);
29110
29111 preempt_count_sub(HARDIRQ_OFFSET);
29112 @@ -182,7 +182,7 @@ void ist_end_non_atomic(void)
29113 }
29114
29115 static nokprobe_inline int
29116 -do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29117 +do_trap_no_signal(struct task_struct *tsk, int trapnr, const char *str,
29118 struct pt_regs *regs, long error_code)
29119 {
29120 if (v8086_mode(regs)) {
29121 @@ -202,8 +202,20 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29122 if (!fixup_exception(regs)) {
29123 tsk->thread.error_code = error_code;
29124 tsk->thread.trap_nr = trapnr;
29125 +
29126 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29127 + if (trapnr == X86_TRAP_SS && ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS))
29128 + str = "PAX: suspicious stack segment fault";
29129 +#endif
29130 +
29131 die(str, regs, error_code);
29132 }
29133 +
29134 +#ifdef CONFIG_PAX_REFCOUNT
29135 + if (trapnr == X86_TRAP_OF)
29136 + pax_report_refcount_overflow(regs);
29137 +#endif
29138 +
29139 return 0;
29140 }
29141
29142 @@ -242,7 +254,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
29143 }
29144
29145 static void
29146 -do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29147 +do_trap(int trapnr, int signr, const char *str, struct pt_regs *regs,
29148 long error_code, siginfo_t *info)
29149 {
29150 struct task_struct *tsk = current;
29151 @@ -266,7 +278,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29152 if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
29153 printk_ratelimit()) {
29154 pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
29155 - tsk->comm, tsk->pid, str,
29156 + tsk->comm, task_pid_nr(tsk), str,
29157 regs->ip, regs->sp, error_code);
29158 print_vma_addr(" in ", regs->ip);
29159 pr_cont("\n");
29160 @@ -347,6 +359,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
29161 tsk->thread.error_code = error_code;
29162 tsk->thread.trap_nr = X86_TRAP_DF;
29163
29164 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
29165 + if ((unsigned long)tsk->stack - regs->sp <= PAGE_SIZE)
29166 + die("grsec: kernel stack overflow detected", regs, error_code);
29167 +#endif
29168 +
29169 #ifdef CONFIG_DOUBLEFAULT
29170 df_debug(regs, error_code);
29171 #endif
29172 @@ -459,11 +476,35 @@ do_general_protection(struct pt_regs *regs, long error_code)
29173 tsk->thread.error_code = error_code;
29174 tsk->thread.trap_nr = X86_TRAP_GP;
29175 if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
29176 - X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP)
29177 + X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP) {
29178 +
29179 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29180 + if ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS)
29181 + die("PAX: suspicious general protection fault", regs, error_code);
29182 + else
29183 +#endif
29184 +
29185 die("general protection fault", regs, error_code);
29186 + }
29187 return;
29188 }
29189
29190 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
29191 + if (!(__supported_pte_mask & _PAGE_NX) && tsk->mm && (tsk->mm->pax_flags & MF_PAX_PAGEEXEC)) {
29192 + struct mm_struct *mm = tsk->mm;
29193 + unsigned long limit;
29194 +
29195 + down_write(&mm->mmap_sem);
29196 + limit = mm->context.user_cs_limit;
29197 + if (limit < TASK_SIZE) {
29198 + track_exec_limit(mm, limit, TASK_SIZE, VM_EXEC);
29199 + up_write(&mm->mmap_sem);
29200 + return;
29201 + }
29202 + up_write(&mm->mmap_sem);
29203 + }
29204 +#endif
29205 +
29206 tsk->thread.error_code = error_code;
29207 tsk->thread.trap_nr = X86_TRAP_GP;
29208
29209 @@ -559,6 +600,9 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
29210 container_of(task_pt_regs(current),
29211 struct bad_iret_stack, regs);
29212
29213 + if ((current->thread.sp0 ^ (unsigned long)s) < THREAD_SIZE)
29214 + new_stack = s;
29215 +
29216 /* Copy the IRET target to the new stack. */
29217 memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8);
29218
29219 diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
29220 index c3f7602..f6033e1 100644
29221 --- a/arch/x86/kernel/tsc.c
29222 +++ b/arch/x86/kernel/tsc.c
29223 @@ -151,7 +151,7 @@ static void cyc2ns_write_end(int cpu, struct cyc2ns_data *data)
29224 */
29225 smp_wmb();
29226
29227 - ACCESS_ONCE(c2n->head) = data;
29228 + ACCESS_ONCE_RW(c2n->head) = data;
29229 }
29230
29231 /*
29232 diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
29233 index bf4db6e..d491400 100644
29234 --- a/arch/x86/kernel/uprobes.c
29235 +++ b/arch/x86/kernel/uprobes.c
29236 @@ -978,7 +978,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
29237
29238 if (nleft != rasize) {
29239 pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, "
29240 - "%%ip=%#lx\n", current->pid, regs->sp, regs->ip);
29241 + "%%ip=%#lx\n", task_pid_nr(current), regs->sp, regs->ip);
29242
29243 force_sig_info(SIGSEGV, SEND_SIG_FORCED, current);
29244 }
29245 diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
29246 index 4cf401f..ae8c9cf 100644
29247 --- a/arch/x86/kernel/verify_cpu.S
29248 +++ b/arch/x86/kernel/verify_cpu.S
29249 @@ -20,6 +20,7 @@
29250 * arch/x86/boot/compressed/head_64.S: Boot cpu verification
29251 * arch/x86/kernel/trampoline_64.S: secondary processor verification
29252 * arch/x86/kernel/head_32.S: processor startup
29253 + * arch/x86/kernel/acpi/realmode/wakeup.S: 32bit processor resume
29254 *
29255 * verify_cpu, returns the status of longmode and SSE in register %eax.
29256 * 0: Success 1: Failure
29257 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
29258 index 5246193..c6bed42 100644
29259 --- a/arch/x86/kernel/vm86_32.c
29260 +++ b/arch/x86/kernel/vm86_32.c
29261 @@ -144,7 +144,7 @@ void save_v86_state(struct kernel_vm86_regs *regs, int retval)
29262 do_exit(SIGSEGV);
29263 }
29264
29265 - tss = &per_cpu(cpu_tss, get_cpu());
29266 + tss = cpu_tss + get_cpu();
29267 tsk->thread.sp0 = vm86->saved_sp0;
29268 tsk->thread.sysenter_cs = __KERNEL_CS;
29269 load_sp0(tss, &tsk->thread);
29270 @@ -259,6 +259,13 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
29271 return -EPERM;
29272 }
29273
29274 +#ifdef CONFIG_GRKERNSEC_VM86
29275 + if (!capable(CAP_SYS_RAWIO)) {
29276 + gr_handle_vm86();
29277 + return -EPERM;
29278 + }
29279 +#endif
29280 +
29281 if (!vm86) {
29282 if (!(vm86 = kzalloc(sizeof(*vm86), GFP_KERNEL)))
29283 return -ENOMEM;
29284 @@ -354,7 +361,7 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
29285 vm86->saved_sp0 = tsk->thread.sp0;
29286 lazy_save_gs(vm86->regs32.gs);
29287
29288 - tss = &per_cpu(cpu_tss, get_cpu());
29289 + tss = cpu_tss + get_cpu();
29290 /* make room for real-mode segments */
29291 tsk->thread.sp0 += 16;
29292 if (cpu_has_sep)
29293 @@ -535,7 +542,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
29294 goto cannot_handle;
29295 if (i == 0x21 && is_revectored(AH(regs), &vm86->int21_revectored))
29296 goto cannot_handle;
29297 - intr_ptr = (unsigned long __user *) (i << 2);
29298 + intr_ptr = (unsigned long __force_user *) (i << 2);
29299 if (get_user(segoffs, intr_ptr))
29300 goto cannot_handle;
29301 if ((segoffs >> 16) == BIOSSEG)
29302 @@ -828,6 +835,14 @@ static inline int get_and_reset_irq(int irqnumber)
29303 static int do_vm86_irq_handling(int subfunction, int irqnumber)
29304 {
29305 int ret;
29306 +
29307 +#ifdef CONFIG_GRKERNSEC_VM86
29308 + if (!capable(CAP_SYS_RAWIO)) {
29309 + gr_handle_vm86();
29310 + return -EPERM;
29311 + }
29312 +#endif
29313 +
29314 switch (subfunction) {
29315 case VM86_GET_AND_RESET_IRQ: {
29316 return get_and_reset_irq(irqnumber);
29317 diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
29318 index 74e4bf1..a9a6168 100644
29319 --- a/arch/x86/kernel/vmlinux.lds.S
29320 +++ b/arch/x86/kernel/vmlinux.lds.S
29321 @@ -26,6 +26,13 @@
29322 #include <asm/page_types.h>
29323 #include <asm/cache.h>
29324 #include <asm/boot.h>
29325 +#include <asm/segment.h>
29326 +
29327 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29328 +#define __KERNEL_TEXT_OFFSET (LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR)
29329 +#else
29330 +#define __KERNEL_TEXT_OFFSET 0
29331 +#endif
29332
29333 #undef i386 /* in case the preprocessor is a 32bit one */
29334
29335 @@ -69,30 +76,43 @@ jiffies_64 = jiffies;
29336
29337 PHDRS {
29338 text PT_LOAD FLAGS(5); /* R_E */
29339 +#ifdef CONFIG_X86_32
29340 + module PT_LOAD FLAGS(5); /* R_E */
29341 +#endif
29342 +#ifdef CONFIG_XEN
29343 + rodata PT_LOAD FLAGS(5); /* R_E */
29344 +#else
29345 + rodata PT_LOAD FLAGS(4); /* R__ */
29346 +#endif
29347 data PT_LOAD FLAGS(6); /* RW_ */
29348 -#ifdef CONFIG_X86_64
29349 + init.begin PT_LOAD FLAGS(6); /* RW_ */
29350 #ifdef CONFIG_SMP
29351 percpu PT_LOAD FLAGS(6); /* RW_ */
29352 #endif
29353 - init PT_LOAD FLAGS(7); /* RWE */
29354 -#endif
29355 + text.init PT_LOAD FLAGS(5); /* R_E */
29356 + text.exit PT_LOAD FLAGS(5); /* R_E */
29357 + init PT_LOAD FLAGS(6); /* RW_ */
29358 note PT_NOTE FLAGS(0); /* ___ */
29359 }
29360
29361 SECTIONS
29362 {
29363 #ifdef CONFIG_X86_32
29364 - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
29365 - phys_startup_32 = startup_32 - LOAD_OFFSET;
29366 + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR;
29367 #else
29368 - . = __START_KERNEL;
29369 - phys_startup_64 = startup_64 - LOAD_OFFSET;
29370 + . = __START_KERNEL;
29371 #endif
29372
29373 /* Text and read-only data */
29374 - .text : AT(ADDR(.text) - LOAD_OFFSET) {
29375 - _text = .;
29376 + .text (. - __KERNEL_TEXT_OFFSET): AT(ADDR(.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29377 /* bootstrapping code */
29378 +#ifdef CONFIG_X86_32
29379 + phys_startup_32 = startup_32 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29380 +#else
29381 + phys_startup_64 = startup_64 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29382 +#endif
29383 + __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29384 + _text = .;
29385 HEAD_TEXT
29386 . = ALIGN(8);
29387 _stext = .;
29388 @@ -104,13 +124,47 @@ SECTIONS
29389 IRQENTRY_TEXT
29390 *(.fixup)
29391 *(.gnu.warning)
29392 - /* End of text section */
29393 - _etext = .;
29394 } :text = 0x9090
29395
29396 - NOTES :text :note
29397 + . += __KERNEL_TEXT_OFFSET;
29398
29399 - EXCEPTION_TABLE(16) :text = 0x9090
29400 +#ifdef CONFIG_X86_32
29401 + . = ALIGN(PAGE_SIZE);
29402 + .module.text : AT(ADDR(.module.text) - LOAD_OFFSET) {
29403 +
29404 +#ifdef CONFIG_PAX_KERNEXEC
29405 + MODULES_EXEC_VADDR = .;
29406 + BYTE(0)
29407 + . += (CONFIG_PAX_KERNEXEC_MODULE_TEXT * 1024 * 1024);
29408 + . = ALIGN(HPAGE_SIZE) - 1;
29409 + MODULES_EXEC_END = .;
29410 +#endif
29411 +
29412 + } :module
29413 +#endif
29414 +
29415 + .text.end : AT(ADDR(.text.end) - LOAD_OFFSET) {
29416 + /* End of text section */
29417 + BYTE(0)
29418 + _etext = . - __KERNEL_TEXT_OFFSET;
29419 + }
29420 +
29421 +#ifdef CONFIG_X86_32
29422 + . = ALIGN(PAGE_SIZE);
29423 + .rodata.page_aligned : AT(ADDR(.rodata.page_aligned) - LOAD_OFFSET) {
29424 + . = ALIGN(PAGE_SIZE);
29425 + *(.empty_zero_page)
29426 + *(.initial_pg_fixmap)
29427 + *(.initial_pg_pmd)
29428 + *(.initial_page_table)
29429 + *(.swapper_pg_dir)
29430 + } :rodata
29431 +#endif
29432 +
29433 + . = ALIGN(PAGE_SIZE);
29434 + NOTES :rodata :note
29435 +
29436 + EXCEPTION_TABLE(16) :rodata
29437
29438 #if defined(CONFIG_DEBUG_RODATA)
29439 /* .text should occupy whole number of pages */
29440 @@ -122,16 +176,20 @@ SECTIONS
29441
29442 /* Data */
29443 .data : AT(ADDR(.data) - LOAD_OFFSET) {
29444 +
29445 +#ifdef CONFIG_PAX_KERNEXEC
29446 + . = ALIGN(HPAGE_SIZE);
29447 +#else
29448 + . = ALIGN(PAGE_SIZE);
29449 +#endif
29450 +
29451 /* Start of data section */
29452 _sdata = .;
29453
29454 /* init_task */
29455 INIT_TASK_DATA(THREAD_SIZE)
29456
29457 -#ifdef CONFIG_X86_32
29458 - /* 32 bit has nosave before _edata */
29459 NOSAVE_DATA
29460 -#endif
29461
29462 PAGE_ALIGNED_DATA(PAGE_SIZE)
29463
29464 @@ -174,12 +232,19 @@ SECTIONS
29465 . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
29466
29467 /* Init code and data - will be freed after init */
29468 - . = ALIGN(PAGE_SIZE);
29469 .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) {
29470 + BYTE(0)
29471 +
29472 +#ifdef CONFIG_PAX_KERNEXEC
29473 + . = ALIGN(HPAGE_SIZE);
29474 +#else
29475 + . = ALIGN(PAGE_SIZE);
29476 +#endif
29477 +
29478 __init_begin = .; /* paired with __init_end */
29479 - }
29480 + } :init.begin
29481
29482 -#if defined(CONFIG_X86_64) && defined(CONFIG_SMP)
29483 +#ifdef CONFIG_SMP
29484 /*
29485 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
29486 * output PHDR, so the next output section - .init.text - should
29487 @@ -190,12 +255,33 @@ SECTIONS
29488 "per-CPU data too large - increase CONFIG_PHYSICAL_START")
29489 #endif
29490
29491 - INIT_TEXT_SECTION(PAGE_SIZE)
29492 -#ifdef CONFIG_X86_64
29493 - :init
29494 + . = ALIGN(PAGE_SIZE);
29495 + init_begin = .;
29496 + .init.text (. - __KERNEL_TEXT_OFFSET): AT(init_begin - LOAD_OFFSET) {
29497 + VMLINUX_SYMBOL(_sinittext) = .;
29498 + INIT_TEXT
29499 + . = ALIGN(PAGE_SIZE);
29500 + } :text.init
29501 +
29502 + /*
29503 + * .exit.text is discard at runtime, not link time, to deal with
29504 + * references from .altinstructions and .eh_frame
29505 + */
29506 + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29507 + EXIT_TEXT
29508 + VMLINUX_SYMBOL(_einittext) = .;
29509 +
29510 +#ifdef CONFIG_PAX_KERNEXEC
29511 + . = ALIGN(HPAGE_SIZE);
29512 +#else
29513 + . = ALIGN(16);
29514 #endif
29515
29516 - INIT_DATA_SECTION(16)
29517 + } :text.exit
29518 + . = init_begin + SIZEOF(.init.text) + SIZEOF(.exit.text);
29519 +
29520 + . = ALIGN(PAGE_SIZE);
29521 + INIT_DATA_SECTION(16) :init
29522
29523 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
29524 __x86_cpu_dev_start = .;
29525 @@ -266,19 +352,12 @@ SECTIONS
29526 }
29527
29528 . = ALIGN(8);
29529 - /*
29530 - * .exit.text is discard at runtime, not link time, to deal with
29531 - * references from .altinstructions and .eh_frame
29532 - */
29533 - .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
29534 - EXIT_TEXT
29535 - }
29536
29537 .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
29538 EXIT_DATA
29539 }
29540
29541 -#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
29542 +#ifndef CONFIG_SMP
29543 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
29544 #endif
29545
29546 @@ -297,16 +376,10 @@ SECTIONS
29547 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
29548 __smp_locks = .;
29549 *(.smp_locks)
29550 - . = ALIGN(PAGE_SIZE);
29551 __smp_locks_end = .;
29552 + . = ALIGN(PAGE_SIZE);
29553 }
29554
29555 -#ifdef CONFIG_X86_64
29556 - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
29557 - NOSAVE_DATA
29558 - }
29559 -#endif
29560 -
29561 /* BSS */
29562 . = ALIGN(PAGE_SIZE);
29563 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
29564 @@ -322,6 +395,7 @@ SECTIONS
29565 __brk_base = .;
29566 . += 64 * 1024; /* 64k alignment slop space */
29567 *(.brk_reservation) /* areas brk users have reserved */
29568 + . = ALIGN(HPAGE_SIZE);
29569 __brk_limit = .;
29570 }
29571
29572 @@ -348,13 +422,12 @@ SECTIONS
29573 * for the boot processor.
29574 */
29575 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
29576 -INIT_PER_CPU(gdt_page);
29577 INIT_PER_CPU(irq_stack_union);
29578
29579 /*
29580 * Build-time check on the image size:
29581 */
29582 -. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
29583 +. = ASSERT((_end - _text - __KERNEL_TEXT_OFFSET <= KERNEL_IMAGE_SIZE),
29584 "kernel image bigger than KERNEL_IMAGE_SIZE");
29585
29586 #ifdef CONFIG_SMP
29587 diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
29588 index a0695be..33e180c 100644
29589 --- a/arch/x86/kernel/x8664_ksyms_64.c
29590 +++ b/arch/x86/kernel/x8664_ksyms_64.c
29591 @@ -34,8 +34,6 @@ EXPORT_SYMBOL(copy_user_generic_string);
29592 EXPORT_SYMBOL(copy_user_generic_unrolled);
29593 EXPORT_SYMBOL(copy_user_enhanced_fast_string);
29594 EXPORT_SYMBOL(__copy_user_nocache);
29595 -EXPORT_SYMBOL(_copy_from_user);
29596 -EXPORT_SYMBOL(_copy_to_user);
29597
29598 EXPORT_SYMBOL(copy_page);
29599 EXPORT_SYMBOL(clear_page);
29600 @@ -77,3 +75,7 @@ EXPORT_SYMBOL(native_load_gs_index);
29601 EXPORT_SYMBOL(___preempt_schedule);
29602 EXPORT_SYMBOL(___preempt_schedule_notrace);
29603 #endif
29604 +
29605 +#ifdef CONFIG_PAX_PER_CPU_PGD
29606 +EXPORT_SYMBOL(cpu_pgd);
29607 +#endif
29608 diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
29609 index 3839628..2e5b5b35 100644
29610 --- a/arch/x86/kernel/x86_init.c
29611 +++ b/arch/x86/kernel/x86_init.c
29612 @@ -92,7 +92,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
29613 static void default_nmi_init(void) { };
29614 static int default_i8042_detect(void) { return 1; };
29615
29616 -struct x86_platform_ops x86_platform = {
29617 +struct x86_platform_ops x86_platform __read_only = {
29618 .calibrate_tsc = native_calibrate_tsc,
29619 .get_wallclock = mach_get_cmos_time,
29620 .set_wallclock = mach_set_rtc_mmss,
29621 @@ -108,7 +108,7 @@ struct x86_platform_ops x86_platform = {
29622 EXPORT_SYMBOL_GPL(x86_platform);
29623
29624 #if defined(CONFIG_PCI_MSI)
29625 -struct x86_msi_ops x86_msi = {
29626 +struct x86_msi_ops x86_msi __read_only = {
29627 .setup_msi_irqs = native_setup_msi_irqs,
29628 .teardown_msi_irq = native_teardown_msi_irq,
29629 .teardown_msi_irqs = default_teardown_msi_irqs,
29630 @@ -137,7 +137,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev)
29631 }
29632 #endif
29633
29634 -struct x86_io_apic_ops x86_io_apic_ops = {
29635 +struct x86_io_apic_ops x86_io_apic_ops __read_only = {
29636 .read = native_io_apic_read,
29637 .disable = native_disable_io_apic,
29638 };
29639 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
29640 index 2fbea25..9e0f8c7 100644
29641 --- a/arch/x86/kvm/cpuid.c
29642 +++ b/arch/x86/kvm/cpuid.c
29643 @@ -206,15 +206,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
29644 struct kvm_cpuid2 *cpuid,
29645 struct kvm_cpuid_entry2 __user *entries)
29646 {
29647 - int r;
29648 + int r, i;
29649
29650 r = -E2BIG;
29651 if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
29652 goto out;
29653 r = -EFAULT;
29654 - if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
29655 - cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29656 + if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29657 goto out;
29658 + for (i = 0; i < cpuid->nent; ++i) {
29659 + struct kvm_cpuid_entry2 cpuid_entry;
29660 + if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
29661 + goto out;
29662 + vcpu->arch.cpuid_entries[i] = cpuid_entry;
29663 + }
29664 vcpu->arch.cpuid_nent = cpuid->nent;
29665 kvm_apic_set_version(vcpu);
29666 kvm_x86_ops->cpuid_update(vcpu);
29667 @@ -227,15 +232,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
29668 struct kvm_cpuid2 *cpuid,
29669 struct kvm_cpuid_entry2 __user *entries)
29670 {
29671 - int r;
29672 + int r, i;
29673
29674 r = -E2BIG;
29675 if (cpuid->nent < vcpu->arch.cpuid_nent)
29676 goto out;
29677 r = -EFAULT;
29678 - if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
29679 - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29680 + if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29681 goto out;
29682 + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
29683 + struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
29684 + if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
29685 + goto out;
29686 + }
29687 return 0;
29688
29689 out:
29690 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
29691 index 1505587..0f0516c 100644
29692 --- a/arch/x86/kvm/emulate.c
29693 +++ b/arch/x86/kvm/emulate.c
29694 @@ -1881,7 +1881,7 @@ static int em_push_sreg(struct x86_emulate_ctxt *ctxt)
29695 static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
29696 {
29697 int seg = ctxt->src2.val;
29698 - unsigned long selector;
29699 + u16 selector;
29700 int rc;
29701
29702 rc = emulate_pop(ctxt, &selector, 2);
29703 @@ -1893,7 +1893,7 @@ static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
29704 if (ctxt->op_bytes > 2)
29705 rsp_increment(ctxt, ctxt->op_bytes - 2);
29706
29707 - rc = load_segment_descriptor(ctxt, (u16)selector, seg);
29708 + rc = load_segment_descriptor(ctxt, selector, seg);
29709 return rc;
29710 }
29711
29712 @@ -3870,7 +3870,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
29713 int cr = ctxt->modrm_reg;
29714 u64 efer = 0;
29715
29716 - static u64 cr_reserved_bits[] = {
29717 + static const u64 cr_reserved_bits[] = {
29718 0xffffffff00000000ULL,
29719 0, 0, 0, /* CR3 checked later */
29720 CR4_RESERVED_BITS,
29721 diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
29722 index 7cc2360..6ae1236 100644
29723 --- a/arch/x86/kvm/i8259.c
29724 +++ b/arch/x86/kvm/i8259.c
29725 @@ -39,14 +39,14 @@
29726
29727 static void pic_irq_request(struct kvm *kvm, int level);
29728
29729 +static void pic_lock(struct kvm_pic *s) __acquires(&s->lock);
29730 static void pic_lock(struct kvm_pic *s)
29731 - __acquires(&s->lock)
29732 {
29733 spin_lock(&s->lock);
29734 }
29735
29736 +static void pic_unlock(struct kvm_pic *s) __releases(&s->lock);
29737 static void pic_unlock(struct kvm_pic *s)
29738 - __releases(&s->lock)
29739 {
29740 bool wakeup = s->wakeup_needed;
29741 struct kvm_vcpu *vcpu, *found = NULL;
29742 @@ -72,6 +72,7 @@ static void pic_unlock(struct kvm_pic *s)
29743 }
29744 }
29745
29746 +static void pic_clear_isr(struct kvm_kpic_state *s, int irq) __must_hold(s->pics_state);
29747 static void pic_clear_isr(struct kvm_kpic_state *s, int irq)
29748 {
29749 s->isr &= ~(1 << irq);
29750 @@ -219,6 +220,7 @@ void kvm_pic_clear_all(struct kvm_pic *s, int irq_source_id)
29751 /*
29752 * acknowledge interrupt 'irq'
29753 */
29754 +static inline void pic_intack(struct kvm_kpic_state *s, int irq) __must_hold(s);
29755 static inline void pic_intack(struct kvm_kpic_state *s, int irq)
29756 {
29757 s->isr |= 1 << irq;
29758 @@ -273,6 +275,7 @@ int kvm_pic_read_irq(struct kvm *kvm)
29759 return intno;
29760 }
29761
29762 +void kvm_pic_reset(struct kvm_kpic_state *s) __must_hold(s);
29763 void kvm_pic_reset(struct kvm_kpic_state *s)
29764 {
29765 int irq, i;
29766 @@ -307,6 +310,7 @@ void kvm_pic_reset(struct kvm_kpic_state *s)
29767 pic_clear_isr(s, irq);
29768 }
29769
29770 +static void pic_ioport_write(void *opaque, u32 addr, u32 val) __must_hold(opaque);
29771 static void pic_ioport_write(void *opaque, u32 addr, u32 val)
29772 {
29773 struct kvm_kpic_state *s = opaque;
29774 @@ -400,6 +404,7 @@ static void pic_ioport_write(void *opaque, u32 addr, u32 val)
29775 }
29776 }
29777
29778 +static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1) __must_hold(s);
29779 static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1)
29780 {
29781 int ret;
29782 @@ -422,6 +427,7 @@ static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1)
29783 return ret;
29784 }
29785
29786 +static u32 pic_ioport_read(void *opaque, u32 addr1) __must_hold(opaque);
29787 static u32 pic_ioport_read(void *opaque, u32 addr1)
29788 {
29789 struct kvm_kpic_state *s = opaque;
29790 diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
29791 index 856f791..bfc7694 100644
29792 --- a/arch/x86/kvm/ioapic.c
29793 +++ b/arch/x86/kvm/ioapic.c
29794 @@ -422,6 +422,8 @@ static void kvm_ioapic_eoi_inject_work(struct work_struct *work)
29795 #define IOAPIC_SUCCESSIVE_IRQ_MAX_COUNT 10000
29796
29797 static void __kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu,
29798 + struct kvm_ioapic *ioapic, int vector, int trigger_mode) __must_hold(&ioapic->lock);
29799 +static void __kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu,
29800 struct kvm_ioapic *ioapic, int vector, int trigger_mode)
29801 {
29802 int i;
29803 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
29804 index ae4483a..0eac8a1 100644
29805 --- a/arch/x86/kvm/lapic.c
29806 +++ b/arch/x86/kvm/lapic.c
29807 @@ -56,7 +56,7 @@
29808 #define APIC_BUS_CYCLE_NS 1
29809
29810 /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */
29811 -#define apic_debug(fmt, arg...)
29812 +#define apic_debug(fmt, arg...) do {} while (0)
29813
29814 #define APIC_LVT_NUM 6
29815 /* 14 is the version for Xeon and Pentium 8.4.8*/
29816 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
29817 index 736e6ab..b2e3094 100644
29818 --- a/arch/x86/kvm/paging_tmpl.h
29819 +++ b/arch/x86/kvm/paging_tmpl.h
29820 @@ -335,7 +335,7 @@ retry_walk:
29821 if (unlikely(kvm_is_error_hva(host_addr)))
29822 goto error;
29823
29824 - ptep_user = (pt_element_t __user *)((void *)host_addr + offset);
29825 + ptep_user = (pt_element_t __force_user *)((void *)host_addr + offset);
29826 if (unlikely(__copy_from_user(&pte, ptep_user, sizeof(pte))))
29827 goto error;
29828 walker->ptep_user[walker->level - 1] = ptep_user;
29829 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
29830 index d7f8938..bc95a50 100644
29831 --- a/arch/x86/kvm/svm.c
29832 +++ b/arch/x86/kvm/svm.c
29833 @@ -1108,6 +1108,7 @@ static void init_vmcb(struct vcpu_svm *svm)
29834 set_exception_intercept(svm, UD_VECTOR);
29835 set_exception_intercept(svm, MC_VECTOR);
29836 set_exception_intercept(svm, AC_VECTOR);
29837 + set_exception_intercept(svm, DB_VECTOR);
29838
29839 set_intercept(svm, INTERCEPT_INTR);
29840 set_intercept(svm, INTERCEPT_NMI);
29841 @@ -1642,20 +1643,13 @@ static void svm_set_segment(struct kvm_vcpu *vcpu,
29842 mark_dirty(svm->vmcb, VMCB_SEG);
29843 }
29844
29845 -static void update_db_bp_intercept(struct kvm_vcpu *vcpu)
29846 +static void update_bp_intercept(struct kvm_vcpu *vcpu)
29847 {
29848 struct vcpu_svm *svm = to_svm(vcpu);
29849
29850 - clr_exception_intercept(svm, DB_VECTOR);
29851 clr_exception_intercept(svm, BP_VECTOR);
29852
29853 - if (svm->nmi_singlestep)
29854 - set_exception_intercept(svm, DB_VECTOR);
29855 -
29856 if (vcpu->guest_debug & KVM_GUESTDBG_ENABLE) {
29857 - if (vcpu->guest_debug &
29858 - (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))
29859 - set_exception_intercept(svm, DB_VECTOR);
29860 if (vcpu->guest_debug & KVM_GUESTDBG_USE_SW_BP)
29861 set_exception_intercept(svm, BP_VECTOR);
29862 } else
29863 @@ -1761,7 +1755,6 @@ static int db_interception(struct vcpu_svm *svm)
29864 if (!(svm->vcpu.guest_debug & KVM_GUESTDBG_SINGLESTEP))
29865 svm->vmcb->save.rflags &=
29866 ~(X86_EFLAGS_TF | X86_EFLAGS_RF);
29867 - update_db_bp_intercept(&svm->vcpu);
29868 }
29869
29870 if (svm->vcpu.guest_debug &
29871 @@ -3595,7 +3588,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
29872 int cpu = raw_smp_processor_id();
29873
29874 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
29875 +
29876 + pax_open_kernel();
29877 sd->tss_desc->type = 9; /* available 32/64-bit TSS */
29878 + pax_close_kernel();
29879 +
29880 load_TR_desc();
29881 }
29882
29883 @@ -3761,7 +3758,6 @@ static void enable_nmi_window(struct kvm_vcpu *vcpu)
29884 */
29885 svm->nmi_singlestep = true;
29886 svm->vmcb->save.rflags |= (X86_EFLAGS_TF | X86_EFLAGS_RF);
29887 - update_db_bp_intercept(vcpu);
29888 }
29889
29890 static int svm_set_tss_addr(struct kvm *kvm, unsigned int addr)
29891 @@ -3991,6 +3987,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
29892 #endif
29893 #endif
29894
29895 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
29896 + __set_fs(current_thread_info()->addr_limit);
29897 +#endif
29898 +
29899 reload_tss(vcpu);
29900
29901 local_irq_disable();
29902 @@ -4364,7 +4364,7 @@ static void svm_sched_in(struct kvm_vcpu *vcpu, int cpu)
29903 {
29904 }
29905
29906 -static struct kvm_x86_ops svm_x86_ops = {
29907 +static struct kvm_x86_ops svm_x86_ops __read_only = {
29908 .cpu_has_kvm_support = has_svm,
29909 .disabled_by_bios = is_disabled,
29910 .hardware_setup = svm_hardware_setup,
29911 @@ -4383,7 +4383,7 @@ static struct kvm_x86_ops svm_x86_ops = {
29912 .vcpu_load = svm_vcpu_load,
29913 .vcpu_put = svm_vcpu_put,
29914
29915 - .update_db_bp_intercept = update_db_bp_intercept,
29916 + .update_db_bp_intercept = update_bp_intercept,
29917 .get_msr = svm_get_msr,
29918 .set_msr = svm_set_msr,
29919 .get_segment_base = svm_get_segment_base,
29920 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
29921 index 343d369..95ade96 100644
29922 --- a/arch/x86/kvm/vmx.c
29923 +++ b/arch/x86/kvm/vmx.c
29924 @@ -1440,12 +1440,12 @@ static void vmcs_write64(unsigned long field, u64 value)
29925 #endif
29926 }
29927
29928 -static void vmcs_clear_bits(unsigned long field, u32 mask)
29929 +static void vmcs_clear_bits(unsigned long field, unsigned long mask)
29930 {
29931 vmcs_writel(field, vmcs_readl(field) & ~mask);
29932 }
29933
29934 -static void vmcs_set_bits(unsigned long field, u32 mask)
29935 +static void vmcs_set_bits(unsigned long field, unsigned long mask)
29936 {
29937 vmcs_writel(field, vmcs_readl(field) | mask);
29938 }
29939 @@ -1705,7 +1705,11 @@ static void reload_tss(void)
29940 struct desc_struct *descs;
29941
29942 descs = (void *)gdt->address;
29943 +
29944 + pax_open_kernel();
29945 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
29946 + pax_close_kernel();
29947 +
29948 load_TR_desc();
29949 }
29950
29951 @@ -1941,6 +1945,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
29952 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
29953 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
29954
29955 +#ifdef CONFIG_PAX_PER_CPU_PGD
29956 + vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
29957 +#endif
29958 +
29959 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
29960 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
29961 vmx->loaded_vmcs->cpu = cpu;
29962 @@ -2232,7 +2240,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
29963 * reads and returns guest's timestamp counter "register"
29964 * guest_tsc = host_tsc + tsc_offset -- 21.3
29965 */
29966 -static u64 guest_read_tsc(void)
29967 +static u64 __intentional_overflow(-1) guest_read_tsc(void)
29968 {
29969 u64 host_tsc, tsc_offset;
29970
29971 @@ -4450,7 +4458,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
29972 unsigned long cr4;
29973
29974 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
29975 +
29976 +#ifndef CONFIG_PAX_PER_CPU_PGD
29977 vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
29978 +#endif
29979
29980 /* Save the most likely value for this task's CR4 in the VMCS. */
29981 cr4 = cr4_read_shadow();
29982 @@ -4477,7 +4488,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
29983 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
29984 vmx->host_idt_base = dt.address;
29985
29986 - vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */
29987 + vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */
29988
29989 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
29990 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
29991 @@ -6015,11 +6026,17 @@ static __init int hardware_setup(void)
29992 * page upon invalidation. No need to do anything if not
29993 * using the APIC_ACCESS_ADDR VMCS field.
29994 */
29995 - if (!flexpriority_enabled)
29996 + if (!flexpriority_enabled) {
29997 + pax_open_kernel();
29998 kvm_x86_ops->set_apic_access_page_addr = NULL;
29999 + pax_close_kernel();
30000 + }
30001
30002 - if (!cpu_has_vmx_tpr_shadow())
30003 + if (!cpu_has_vmx_tpr_shadow()) {
30004 + pax_open_kernel();
30005 kvm_x86_ops->update_cr8_intercept = NULL;
30006 + pax_close_kernel();
30007 + }
30008
30009 if (enable_ept && !cpu_has_vmx_ept_2m_page())
30010 kvm_disable_largepages();
30011 @@ -6030,6 +6047,7 @@ static __init int hardware_setup(void)
30012 if (!cpu_has_vmx_apicv())
30013 enable_apicv = 0;
30014
30015 + pax_open_kernel();
30016 if (enable_apicv)
30017 kvm_x86_ops->update_cr8_intercept = NULL;
30018 else {
30019 @@ -6038,6 +6056,7 @@ static __init int hardware_setup(void)
30020 kvm_x86_ops->deliver_posted_interrupt = NULL;
30021 kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
30022 }
30023 + pax_close_kernel();
30024
30025 vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
30026 vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
30027 @@ -6092,10 +6111,12 @@ static __init int hardware_setup(void)
30028 enable_pml = 0;
30029
30030 if (!enable_pml) {
30031 + pax_open_kernel();
30032 kvm_x86_ops->slot_enable_log_dirty = NULL;
30033 kvm_x86_ops->slot_disable_log_dirty = NULL;
30034 kvm_x86_ops->flush_log_dirty = NULL;
30035 kvm_x86_ops->enable_log_dirty_pt_masked = NULL;
30036 + pax_close_kernel();
30037 }
30038
30039 return alloc_kvm_area();
30040 @@ -8351,6 +8372,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30041 "jmp 2f \n\t"
30042 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
30043 "2: "
30044 +
30045 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30046 + "ljmp %[cs],$3f\n\t"
30047 + "3: "
30048 +#endif
30049 +
30050 /* Save guest registers, load host registers, keep flags */
30051 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
30052 "pop %0 \n\t"
30053 @@ -8403,6 +8430,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30054 #endif
30055 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
30056 [wordsize]"i"(sizeof(ulong))
30057 +
30058 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30059 + ,[cs]"i"(__KERNEL_CS)
30060 +#endif
30061 +
30062 : "cc", "memory"
30063 #ifdef CONFIG_X86_64
30064 , "rax", "rbx", "rdi", "rsi"
30065 @@ -8416,7 +8448,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30066 if (debugctlmsr)
30067 update_debugctlmsr(debugctlmsr);
30068
30069 -#ifndef CONFIG_X86_64
30070 +#ifdef CONFIG_X86_32
30071 /*
30072 * The sysexit path does not restore ds/es, so we must set them to
30073 * a reasonable value ourselves.
30074 @@ -8425,8 +8457,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30075 * may be executed in interrupt context, which saves and restore segments
30076 * around it, nullifying its effect.
30077 */
30078 - loadsegment(ds, __USER_DS);
30079 - loadsegment(es, __USER_DS);
30080 + loadsegment(ds, __KERNEL_DS);
30081 + loadsegment(es, __KERNEL_DS);
30082 + loadsegment(ss, __KERNEL_DS);
30083 +
30084 +#ifdef CONFIG_PAX_KERNEXEC
30085 + loadsegment(fs, __KERNEL_PERCPU);
30086 +#endif
30087 +
30088 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30089 + __set_fs(current_thread_info()->addr_limit);
30090 +#endif
30091 +
30092 #endif
30093
30094 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
30095 @@ -10280,7 +10322,7 @@ static void vmx_enable_log_dirty_pt_masked(struct kvm *kvm,
30096 kvm_mmu_clear_dirty_pt_masked(kvm, memslot, offset, mask);
30097 }
30098
30099 -static struct kvm_x86_ops vmx_x86_ops = {
30100 +static struct kvm_x86_ops vmx_x86_ops __read_only = {
30101 .cpu_has_kvm_support = cpu_has_kvm_support,
30102 .disabled_by_bios = vmx_disabled_by_bios,
30103 .hardware_setup = hardware_setup,
30104 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
30105 index 43609af..f8b7b2c 100644
30106 --- a/arch/x86/kvm/x86.c
30107 +++ b/arch/x86/kvm/x86.c
30108 @@ -1828,8 +1828,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
30109 {
30110 struct kvm *kvm = vcpu->kvm;
30111 int lm = is_long_mode(vcpu);
30112 - u8 *blob_addr = lm ? (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30113 - : (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30114 + u8 __user *blob_addr = lm ? (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30115 + : (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30116 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
30117 : kvm->arch.xen_hvm_config.blob_size_32;
30118 u32 page_num = data & ~PAGE_MASK;
30119 @@ -2530,6 +2530,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
30120 if (n < msr_list.nmsrs)
30121 goto out;
30122 r = -EFAULT;
30123 + if (num_msrs_to_save > ARRAY_SIZE(msrs_to_save))
30124 + goto out;
30125 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
30126 num_msrs_to_save * sizeof(u32)))
30127 goto out;
30128 @@ -2890,7 +2892,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
30129
30130 static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30131 {
30132 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30133 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30134 u64 xstate_bv = xsave->header.xfeatures;
30135 u64 valid;
30136
30137 @@ -2926,7 +2928,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30138
30139 static void load_xsave(struct kvm_vcpu *vcpu, u8 *src)
30140 {
30141 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30142 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30143 u64 xstate_bv = *(u64 *)(src + XSAVE_HDR_OFFSET);
30144 u64 valid;
30145
30146 @@ -2970,7 +2972,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
30147 fill_xsave((u8 *) guest_xsave->region, vcpu);
30148 } else {
30149 memcpy(guest_xsave->region,
30150 - &vcpu->arch.guest_fpu.state.fxsave,
30151 + &vcpu->arch.guest_fpu.state->fxsave,
30152 sizeof(struct fxregs_state));
30153 *(u64 *)&guest_xsave->region[XSAVE_HDR_OFFSET / sizeof(u32)] =
30154 XSTATE_FPSSE;
30155 @@ -2995,7 +2997,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
30156 } else {
30157 if (xstate_bv & ~XSTATE_FPSSE)
30158 return -EINVAL;
30159 - memcpy(&vcpu->arch.guest_fpu.state.fxsave,
30160 + memcpy(&vcpu->arch.guest_fpu.state->fxsave,
30161 guest_xsave->region, sizeof(struct fxregs_state));
30162 }
30163 return 0;
30164 @@ -6214,6 +6216,7 @@ void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm,
30165 * exiting to the userspace. Otherwise, the value will be returned to the
30166 * userspace.
30167 */
30168 +static int vcpu_enter_guest(struct kvm_vcpu *vcpu) __must_hold(&vcpu->kvm->srcu);
30169 static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
30170 {
30171 int r;
30172 @@ -6437,6 +6440,7 @@ out:
30173 return r;
30174 }
30175
30176 +static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) __must_hold(&kvm->srcu);
30177 static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)
30178 {
30179 if (!kvm_arch_vcpu_runnable(vcpu)) {
30180 @@ -6976,7 +6980,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
30181 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30182 {
30183 struct fxregs_state *fxsave =
30184 - &vcpu->arch.guest_fpu.state.fxsave;
30185 + &vcpu->arch.guest_fpu.state->fxsave;
30186
30187 memcpy(fpu->fpr, fxsave->st_space, 128);
30188 fpu->fcw = fxsave->cwd;
30189 @@ -6993,7 +6997,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30190 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30191 {
30192 struct fxregs_state *fxsave =
30193 - &vcpu->arch.guest_fpu.state.fxsave;
30194 + &vcpu->arch.guest_fpu.state->fxsave;
30195
30196 memcpy(fxsave->st_space, fpu->fpr, 128);
30197 fxsave->cwd = fpu->fcw;
30198 @@ -7009,9 +7013,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30199
30200 static void fx_init(struct kvm_vcpu *vcpu)
30201 {
30202 - fpstate_init(&vcpu->arch.guest_fpu.state);
30203 + fpstate_init(vcpu->arch.guest_fpu.state);
30204 if (cpu_has_xsaves)
30205 - vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
30206 + vcpu->arch.guest_fpu.state->xsave.header.xcomp_bv =
30207 host_xcr0 | XSTATE_COMPACTION_ENABLED;
30208
30209 /*
30210 @@ -7035,7 +7039,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
30211 kvm_put_guest_xcr0(vcpu);
30212 vcpu->guest_fpu_loaded = 1;
30213 __kernel_fpu_begin();
30214 - __copy_kernel_to_fpregs(&vcpu->arch.guest_fpu.state);
30215 + __copy_kernel_to_fpregs(vcpu->arch.guest_fpu.state);
30216 trace_kvm_fpu(1);
30217 }
30218
30219 @@ -7324,6 +7328,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
30220
30221 struct static_key kvm_no_apic_vcpu __read_mostly;
30222
30223 +extern struct kmem_cache *fpregs_state_cachep;
30224 +
30225 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30226 {
30227 struct page *page;
30228 @@ -7340,11 +7346,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30229 else
30230 vcpu->arch.mp_state = KVM_MP_STATE_UNINITIALIZED;
30231
30232 - page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30233 - if (!page) {
30234 - r = -ENOMEM;
30235 + r = -ENOMEM;
30236 + vcpu->arch.guest_fpu.state = kmem_cache_alloc(fpregs_state_cachep, GFP_KERNEL);
30237 + if (!vcpu->arch.guest_fpu.state)
30238 goto fail;
30239 - }
30240 +
30241 + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30242 + if (!page)
30243 + goto fail_free_fpregs;
30244 vcpu->arch.pio_data = page_address(page);
30245
30246 kvm_set_tsc_khz(vcpu, max_tsc_khz);
30247 @@ -7398,6 +7407,9 @@ fail_mmu_destroy:
30248 kvm_mmu_destroy(vcpu);
30249 fail_free_pio_data:
30250 free_page((unsigned long)vcpu->arch.pio_data);
30251 +fail_free_fpregs:
30252 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30253 + vcpu->arch.guest_fpu.state = NULL;
30254 fail:
30255 return r;
30256 }
30257 @@ -7415,6 +7427,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
30258 free_page((unsigned long)vcpu->arch.pio_data);
30259 if (!irqchip_in_kernel(vcpu->kvm))
30260 static_key_slow_dec(&kvm_no_apic_vcpu);
30261 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30262 + vcpu->arch.guest_fpu.state = NULL;
30263 }
30264
30265 void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
30266 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
30267 index a0d09f6..92ede76 100644
30268 --- a/arch/x86/lguest/boot.c
30269 +++ b/arch/x86/lguest/boot.c
30270 @@ -1336,9 +1336,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
30271 * Rebooting also tells the Host we're finished, but the RESTART flag tells the
30272 * Launcher to reboot us.
30273 */
30274 -static void lguest_restart(char *reason)
30275 +static __noreturn void lguest_restart(char *reason)
30276 {
30277 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0, 0);
30278 + BUG();
30279 }
30280
30281 /*G:050
30282 diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
30283 index 9b0ca8f..bb4af41 100644
30284 --- a/arch/x86/lib/atomic64_386_32.S
30285 +++ b/arch/x86/lib/atomic64_386_32.S
30286 @@ -45,6 +45,10 @@ BEGIN(read)
30287 movl (v), %eax
30288 movl 4(v), %edx
30289 RET_ENDP
30290 +BEGIN(read_unchecked)
30291 + movl (v), %eax
30292 + movl 4(v), %edx
30293 +RET_ENDP
30294 #undef v
30295
30296 #define v %esi
30297 @@ -52,6 +56,10 @@ BEGIN(set)
30298 movl %ebx, (v)
30299 movl %ecx, 4(v)
30300 RET_ENDP
30301 +BEGIN(set_unchecked)
30302 + movl %ebx, (v)
30303 + movl %ecx, 4(v)
30304 +RET_ENDP
30305 #undef v
30306
30307 #define v %esi
30308 @@ -67,6 +75,20 @@ RET_ENDP
30309 BEGIN(add)
30310 addl %eax, (v)
30311 adcl %edx, 4(v)
30312 +
30313 +#ifdef CONFIG_PAX_REFCOUNT
30314 + jno 0f
30315 + subl %eax, (v)
30316 + sbbl %edx, 4(v)
30317 + int $4
30318 +0:
30319 + _ASM_EXTABLE(0b, 0b)
30320 +#endif
30321 +
30322 +RET_ENDP
30323 +BEGIN(add_unchecked)
30324 + addl %eax, (v)
30325 + adcl %edx, 4(v)
30326 RET_ENDP
30327 #undef v
30328
30329 @@ -74,6 +96,24 @@ RET_ENDP
30330 BEGIN(add_return)
30331 addl (v), %eax
30332 adcl 4(v), %edx
30333 +
30334 +#ifdef CONFIG_PAX_REFCOUNT
30335 + into
30336 +1234:
30337 + _ASM_EXTABLE(1234b, 2f)
30338 +#endif
30339 +
30340 + movl %eax, (v)
30341 + movl %edx, 4(v)
30342 +
30343 +#ifdef CONFIG_PAX_REFCOUNT
30344 +2:
30345 +#endif
30346 +
30347 +RET_ENDP
30348 +BEGIN(add_return_unchecked)
30349 + addl (v), %eax
30350 + adcl 4(v), %edx
30351 movl %eax, (v)
30352 movl %edx, 4(v)
30353 RET_ENDP
30354 @@ -83,6 +123,20 @@ RET_ENDP
30355 BEGIN(sub)
30356 subl %eax, (v)
30357 sbbl %edx, 4(v)
30358 +
30359 +#ifdef CONFIG_PAX_REFCOUNT
30360 + jno 0f
30361 + addl %eax, (v)
30362 + adcl %edx, 4(v)
30363 + int $4
30364 +0:
30365 + _ASM_EXTABLE(0b, 0b)
30366 +#endif
30367 +
30368 +RET_ENDP
30369 +BEGIN(sub_unchecked)
30370 + subl %eax, (v)
30371 + sbbl %edx, 4(v)
30372 RET_ENDP
30373 #undef v
30374
30375 @@ -93,6 +147,27 @@ BEGIN(sub_return)
30376 sbbl $0, %edx
30377 addl (v), %eax
30378 adcl 4(v), %edx
30379 +
30380 +#ifdef CONFIG_PAX_REFCOUNT
30381 + into
30382 +1234:
30383 + _ASM_EXTABLE(1234b, 2f)
30384 +#endif
30385 +
30386 + movl %eax, (v)
30387 + movl %edx, 4(v)
30388 +
30389 +#ifdef CONFIG_PAX_REFCOUNT
30390 +2:
30391 +#endif
30392 +
30393 +RET_ENDP
30394 +BEGIN(sub_return_unchecked)
30395 + negl %edx
30396 + negl %eax
30397 + sbbl $0, %edx
30398 + addl (v), %eax
30399 + adcl 4(v), %edx
30400 movl %eax, (v)
30401 movl %edx, 4(v)
30402 RET_ENDP
30403 @@ -102,6 +177,20 @@ RET_ENDP
30404 BEGIN(inc)
30405 addl $1, (v)
30406 adcl $0, 4(v)
30407 +
30408 +#ifdef CONFIG_PAX_REFCOUNT
30409 + jno 0f
30410 + subl $1, (v)
30411 + sbbl $0, 4(v)
30412 + int $4
30413 +0:
30414 + _ASM_EXTABLE(0b, 0b)
30415 +#endif
30416 +
30417 +RET_ENDP
30418 +BEGIN(inc_unchecked)
30419 + addl $1, (v)
30420 + adcl $0, 4(v)
30421 RET_ENDP
30422 #undef v
30423
30424 @@ -111,6 +200,26 @@ BEGIN(inc_return)
30425 movl 4(v), %edx
30426 addl $1, %eax
30427 adcl $0, %edx
30428 +
30429 +#ifdef CONFIG_PAX_REFCOUNT
30430 + into
30431 +1234:
30432 + _ASM_EXTABLE(1234b, 2f)
30433 +#endif
30434 +
30435 + movl %eax, (v)
30436 + movl %edx, 4(v)
30437 +
30438 +#ifdef CONFIG_PAX_REFCOUNT
30439 +2:
30440 +#endif
30441 +
30442 +RET_ENDP
30443 +BEGIN(inc_return_unchecked)
30444 + movl (v), %eax
30445 + movl 4(v), %edx
30446 + addl $1, %eax
30447 + adcl $0, %edx
30448 movl %eax, (v)
30449 movl %edx, 4(v)
30450 RET_ENDP
30451 @@ -120,6 +229,20 @@ RET_ENDP
30452 BEGIN(dec)
30453 subl $1, (v)
30454 sbbl $0, 4(v)
30455 +
30456 +#ifdef CONFIG_PAX_REFCOUNT
30457 + jno 0f
30458 + addl $1, (v)
30459 + adcl $0, 4(v)
30460 + int $4
30461 +0:
30462 + _ASM_EXTABLE(0b, 0b)
30463 +#endif
30464 +
30465 +RET_ENDP
30466 +BEGIN(dec_unchecked)
30467 + subl $1, (v)
30468 + sbbl $0, 4(v)
30469 RET_ENDP
30470 #undef v
30471
30472 @@ -129,6 +252,26 @@ BEGIN(dec_return)
30473 movl 4(v), %edx
30474 subl $1, %eax
30475 sbbl $0, %edx
30476 +
30477 +#ifdef CONFIG_PAX_REFCOUNT
30478 + into
30479 +1234:
30480 + _ASM_EXTABLE(1234b, 2f)
30481 +#endif
30482 +
30483 + movl %eax, (v)
30484 + movl %edx, 4(v)
30485 +
30486 +#ifdef CONFIG_PAX_REFCOUNT
30487 +2:
30488 +#endif
30489 +
30490 +RET_ENDP
30491 +BEGIN(dec_return_unchecked)
30492 + movl (v), %eax
30493 + movl 4(v), %edx
30494 + subl $1, %eax
30495 + sbbl $0, %edx
30496 movl %eax, (v)
30497 movl %edx, 4(v)
30498 RET_ENDP
30499 @@ -140,6 +283,13 @@ BEGIN(add_unless)
30500 adcl %edx, %edi
30501 addl (v), %eax
30502 adcl 4(v), %edx
30503 +
30504 +#ifdef CONFIG_PAX_REFCOUNT
30505 + into
30506 +1234:
30507 + _ASM_EXTABLE(1234b, 2f)
30508 +#endif
30509 +
30510 cmpl %eax, %ecx
30511 je 3f
30512 1:
30513 @@ -165,6 +315,13 @@ BEGIN(inc_not_zero)
30514 1:
30515 addl $1, %eax
30516 adcl $0, %edx
30517 +
30518 +#ifdef CONFIG_PAX_REFCOUNT
30519 + into
30520 +1234:
30521 + _ASM_EXTABLE(1234b, 2f)
30522 +#endif
30523 +
30524 movl %eax, (v)
30525 movl %edx, 4(v)
30526 movl $1, %eax
30527 @@ -183,6 +340,13 @@ BEGIN(dec_if_positive)
30528 movl 4(v), %edx
30529 subl $1, %eax
30530 sbbl $0, %edx
30531 +
30532 +#ifdef CONFIG_PAX_REFCOUNT
30533 + into
30534 +1234:
30535 + _ASM_EXTABLE(1234b, 1f)
30536 +#endif
30537 +
30538 js 1f
30539 movl %eax, (v)
30540 movl %edx, 4(v)
30541 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
30542 index db3ae854..b8ad0de 100644
30543 --- a/arch/x86/lib/atomic64_cx8_32.S
30544 +++ b/arch/x86/lib/atomic64_cx8_32.S
30545 @@ -22,9 +22,16 @@
30546
30547 ENTRY(atomic64_read_cx8)
30548 read64 %ecx
30549 + pax_force_retaddr
30550 ret
30551 ENDPROC(atomic64_read_cx8)
30552
30553 +ENTRY(atomic64_read_unchecked_cx8)
30554 + read64 %ecx
30555 + pax_force_retaddr
30556 + ret
30557 +ENDPROC(atomic64_read_unchecked_cx8)
30558 +
30559 ENTRY(atomic64_set_cx8)
30560 1:
30561 /* we don't need LOCK_PREFIX since aligned 64-bit writes
30562 @@ -32,20 +39,33 @@ ENTRY(atomic64_set_cx8)
30563 cmpxchg8b (%esi)
30564 jne 1b
30565
30566 + pax_force_retaddr
30567 ret
30568 ENDPROC(atomic64_set_cx8)
30569
30570 +ENTRY(atomic64_set_unchecked_cx8)
30571 +1:
30572 +/* we don't need LOCK_PREFIX since aligned 64-bit writes
30573 + * are atomic on 586 and newer */
30574 + cmpxchg8b (%esi)
30575 + jne 1b
30576 +
30577 + pax_force_retaddr
30578 + ret
30579 +ENDPROC(atomic64_set_unchecked_cx8)
30580 +
30581 ENTRY(atomic64_xchg_cx8)
30582 1:
30583 LOCK_PREFIX
30584 cmpxchg8b (%esi)
30585 jne 1b
30586
30587 + pax_force_retaddr
30588 ret
30589 ENDPROC(atomic64_xchg_cx8)
30590
30591 -.macro addsub_return func ins insc
30592 -ENTRY(atomic64_\func\()_return_cx8)
30593 +.macro addsub_return func ins insc unchecked=""
30594 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30595 pushl %ebp
30596 pushl %ebx
30597 pushl %esi
30598 @@ -61,26 +81,43 @@ ENTRY(atomic64_\func\()_return_cx8)
30599 movl %edx, %ecx
30600 \ins\()l %esi, %ebx
30601 \insc\()l %edi, %ecx
30602 +
30603 +.ifb \unchecked
30604 +#ifdef CONFIG_PAX_REFCOUNT
30605 + into
30606 +2:
30607 + _ASM_EXTABLE(2b, 3f)
30608 +#endif
30609 +.endif
30610 +
30611 LOCK_PREFIX
30612 cmpxchg8b (%ebp)
30613 jne 1b
30614 -
30615 -10:
30616 movl %ebx, %eax
30617 movl %ecx, %edx
30618 +
30619 +.ifb \unchecked
30620 +#ifdef CONFIG_PAX_REFCOUNT
30621 +3:
30622 +#endif
30623 +.endif
30624 +
30625 popl %edi
30626 popl %esi
30627 popl %ebx
30628 popl %ebp
30629 + pax_force_retaddr
30630 ret
30631 -ENDPROC(atomic64_\func\()_return_cx8)
30632 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30633 .endm
30634
30635 addsub_return add add adc
30636 addsub_return sub sub sbb
30637 +addsub_return add add adc _unchecked
30638 +addsub_return sub sub sbb _unchecked
30639
30640 -.macro incdec_return func ins insc
30641 -ENTRY(atomic64_\func\()_return_cx8)
30642 +.macro incdec_return func ins insc unchecked=""
30643 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30644 pushl %ebx
30645
30646 read64 %esi
30647 @@ -89,20 +126,37 @@ ENTRY(atomic64_\func\()_return_cx8)
30648 movl %edx, %ecx
30649 \ins\()l $1, %ebx
30650 \insc\()l $0, %ecx
30651 +
30652 +.ifb \unchecked
30653 +#ifdef CONFIG_PAX_REFCOUNT
30654 + into
30655 +2:
30656 + _ASM_EXTABLE(2b, 3f)
30657 +#endif
30658 +.endif
30659 +
30660 LOCK_PREFIX
30661 cmpxchg8b (%esi)
30662 jne 1b
30663 -
30664 -10:
30665 movl %ebx, %eax
30666 movl %ecx, %edx
30667 +
30668 +.ifb \unchecked
30669 +#ifdef CONFIG_PAX_REFCOUNT
30670 +3:
30671 +#endif
30672 +.endif
30673 +
30674 popl %ebx
30675 + pax_force_retaddr
30676 ret
30677 -ENDPROC(atomic64_\func\()_return_cx8)
30678 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30679 .endm
30680
30681 incdec_return inc add adc
30682 incdec_return dec sub sbb
30683 +incdec_return inc add adc _unchecked
30684 +incdec_return dec sub sbb _unchecked
30685
30686 ENTRY(atomic64_dec_if_positive_cx8)
30687 pushl %ebx
30688 @@ -113,6 +167,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
30689 movl %edx, %ecx
30690 subl $1, %ebx
30691 sbb $0, %ecx
30692 +
30693 +#ifdef CONFIG_PAX_REFCOUNT
30694 + into
30695 +1234:
30696 + _ASM_EXTABLE(1234b, 2f)
30697 +#endif
30698 +
30699 js 2f
30700 LOCK_PREFIX
30701 cmpxchg8b (%esi)
30702 @@ -122,6 +183,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
30703 movl %ebx, %eax
30704 movl %ecx, %edx
30705 popl %ebx
30706 + pax_force_retaddr
30707 ret
30708 ENDPROC(atomic64_dec_if_positive_cx8)
30709
30710 @@ -144,6 +206,13 @@ ENTRY(atomic64_add_unless_cx8)
30711 movl %edx, %ecx
30712 addl %ebp, %ebx
30713 adcl %edi, %ecx
30714 +
30715 +#ifdef CONFIG_PAX_REFCOUNT
30716 + into
30717 +1234:
30718 + _ASM_EXTABLE(1234b, 3f)
30719 +#endif
30720 +
30721 LOCK_PREFIX
30722 cmpxchg8b (%esi)
30723 jne 1b
30724 @@ -153,6 +222,7 @@ ENTRY(atomic64_add_unless_cx8)
30725 addl $8, %esp
30726 popl %ebx
30727 popl %ebp
30728 + pax_force_retaddr
30729 ret
30730 4:
30731 cmpl %edx, 4(%esp)
30732 @@ -173,6 +243,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
30733 xorl %ecx, %ecx
30734 addl $1, %ebx
30735 adcl %edx, %ecx
30736 +
30737 +#ifdef CONFIG_PAX_REFCOUNT
30738 + into
30739 +1234:
30740 + _ASM_EXTABLE(1234b, 3f)
30741 +#endif
30742 +
30743 LOCK_PREFIX
30744 cmpxchg8b (%esi)
30745 jne 1b
30746 @@ -180,5 +257,6 @@ ENTRY(atomic64_inc_not_zero_cx8)
30747 movl $1, %eax
30748 3:
30749 popl %ebx
30750 + pax_force_retaddr
30751 ret
30752 ENDPROC(atomic64_inc_not_zero_cx8)
30753 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
30754 index c1e6232..ebbeba7 100644
30755 --- a/arch/x86/lib/checksum_32.S
30756 +++ b/arch/x86/lib/checksum_32.S
30757 @@ -28,7 +28,8 @@
30758 #include <linux/linkage.h>
30759 #include <asm/errno.h>
30760 #include <asm/asm.h>
30761 -
30762 +#include <asm/segment.h>
30763 +
30764 /*
30765 * computes a partial checksum, e.g. for TCP/UDP fragments
30766 */
30767 @@ -280,7 +281,22 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
30768
30769 #define ARGBASE 16
30770 #define FP 12
30771 -
30772 +
30773 +ENTRY(csum_partial_copy_generic_to_user)
30774 +
30775 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30776 + pushl %gs
30777 + popl %es
30778 + jmp csum_partial_copy_generic
30779 +#endif
30780 +
30781 +ENTRY(csum_partial_copy_generic_from_user)
30782 +
30783 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30784 + pushl %gs
30785 + popl %ds
30786 +#endif
30787 +
30788 ENTRY(csum_partial_copy_generic)
30789 subl $4,%esp
30790 pushl %edi
30791 @@ -299,7 +315,7 @@ ENTRY(csum_partial_copy_generic)
30792 jmp 4f
30793 SRC(1: movw (%esi), %bx )
30794 addl $2, %esi
30795 -DST( movw %bx, (%edi) )
30796 +DST( movw %bx, %es:(%edi) )
30797 addl $2, %edi
30798 addw %bx, %ax
30799 adcl $0, %eax
30800 @@ -311,30 +327,30 @@ DST( movw %bx, (%edi) )
30801 SRC(1: movl (%esi), %ebx )
30802 SRC( movl 4(%esi), %edx )
30803 adcl %ebx, %eax
30804 -DST( movl %ebx, (%edi) )
30805 +DST( movl %ebx, %es:(%edi) )
30806 adcl %edx, %eax
30807 -DST( movl %edx, 4(%edi) )
30808 +DST( movl %edx, %es:4(%edi) )
30809
30810 SRC( movl 8(%esi), %ebx )
30811 SRC( movl 12(%esi), %edx )
30812 adcl %ebx, %eax
30813 -DST( movl %ebx, 8(%edi) )
30814 +DST( movl %ebx, %es:8(%edi) )
30815 adcl %edx, %eax
30816 -DST( movl %edx, 12(%edi) )
30817 +DST( movl %edx, %es:12(%edi) )
30818
30819 SRC( movl 16(%esi), %ebx )
30820 SRC( movl 20(%esi), %edx )
30821 adcl %ebx, %eax
30822 -DST( movl %ebx, 16(%edi) )
30823 +DST( movl %ebx, %es:16(%edi) )
30824 adcl %edx, %eax
30825 -DST( movl %edx, 20(%edi) )
30826 +DST( movl %edx, %es:20(%edi) )
30827
30828 SRC( movl 24(%esi), %ebx )
30829 SRC( movl 28(%esi), %edx )
30830 adcl %ebx, %eax
30831 -DST( movl %ebx, 24(%edi) )
30832 +DST( movl %ebx, %es:24(%edi) )
30833 adcl %edx, %eax
30834 -DST( movl %edx, 28(%edi) )
30835 +DST( movl %edx, %es:28(%edi) )
30836
30837 lea 32(%esi), %esi
30838 lea 32(%edi), %edi
30839 @@ -348,7 +364,7 @@ DST( movl %edx, 28(%edi) )
30840 shrl $2, %edx # This clears CF
30841 SRC(3: movl (%esi), %ebx )
30842 adcl %ebx, %eax
30843 -DST( movl %ebx, (%edi) )
30844 +DST( movl %ebx, %es:(%edi) )
30845 lea 4(%esi), %esi
30846 lea 4(%edi), %edi
30847 dec %edx
30848 @@ -360,12 +376,12 @@ DST( movl %ebx, (%edi) )
30849 jb 5f
30850 SRC( movw (%esi), %cx )
30851 leal 2(%esi), %esi
30852 -DST( movw %cx, (%edi) )
30853 +DST( movw %cx, %es:(%edi) )
30854 leal 2(%edi), %edi
30855 je 6f
30856 shll $16,%ecx
30857 SRC(5: movb (%esi), %cl )
30858 -DST( movb %cl, (%edi) )
30859 +DST( movb %cl, %es:(%edi) )
30860 6: addl %ecx, %eax
30861 adcl $0, %eax
30862 7:
30863 @@ -376,7 +392,7 @@ DST( movb %cl, (%edi) )
30864
30865 6001:
30866 movl ARGBASE+20(%esp), %ebx # src_err_ptr
30867 - movl $-EFAULT, (%ebx)
30868 + movl $-EFAULT, %ss:(%ebx)
30869
30870 # zero the complete destination - computing the rest
30871 # is too much work
30872 @@ -389,34 +405,58 @@ DST( movb %cl, (%edi) )
30873
30874 6002:
30875 movl ARGBASE+24(%esp), %ebx # dst_err_ptr
30876 - movl $-EFAULT,(%ebx)
30877 + movl $-EFAULT,%ss:(%ebx)
30878 jmp 5000b
30879
30880 .previous
30881
30882 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30883 + pushl %ss
30884 + popl %ds
30885 + pushl %ss
30886 + popl %es
30887 +#endif
30888 +
30889 popl %ebx
30890 popl %esi
30891 popl %edi
30892 popl %ecx # equivalent to addl $4,%esp
30893 ret
30894 -ENDPROC(csum_partial_copy_generic)
30895 +ENDPROC(csum_partial_copy_generic_to_user)
30896
30897 #else
30898
30899 /* Version for PentiumII/PPro */
30900
30901 #define ROUND1(x) \
30902 + nop; nop; nop; \
30903 SRC(movl x(%esi), %ebx ) ; \
30904 addl %ebx, %eax ; \
30905 - DST(movl %ebx, x(%edi) ) ;
30906 + DST(movl %ebx, %es:x(%edi)) ;
30907
30908 #define ROUND(x) \
30909 + nop; nop; nop; \
30910 SRC(movl x(%esi), %ebx ) ; \
30911 adcl %ebx, %eax ; \
30912 - DST(movl %ebx, x(%edi) ) ;
30913 + DST(movl %ebx, %es:x(%edi)) ;
30914
30915 #define ARGBASE 12
30916 -
30917 +
30918 +ENTRY(csum_partial_copy_generic_to_user)
30919 +
30920 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30921 + pushl %gs
30922 + popl %es
30923 + jmp csum_partial_copy_generic
30924 +#endif
30925 +
30926 +ENTRY(csum_partial_copy_generic_from_user)
30927 +
30928 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30929 + pushl %gs
30930 + popl %ds
30931 +#endif
30932 +
30933 ENTRY(csum_partial_copy_generic)
30934 pushl %ebx
30935 pushl %edi
30936 @@ -435,7 +475,7 @@ ENTRY(csum_partial_copy_generic)
30937 subl %ebx, %edi
30938 lea -1(%esi),%edx
30939 andl $-32,%edx
30940 - lea 3f(%ebx,%ebx), %ebx
30941 + lea 3f(%ebx,%ebx,2), %ebx
30942 testl %esi, %esi
30943 jmp *%ebx
30944 1: addl $64,%esi
30945 @@ -456,19 +496,19 @@ ENTRY(csum_partial_copy_generic)
30946 jb 5f
30947 SRC( movw (%esi), %dx )
30948 leal 2(%esi), %esi
30949 -DST( movw %dx, (%edi) )
30950 +DST( movw %dx, %es:(%edi) )
30951 leal 2(%edi), %edi
30952 je 6f
30953 shll $16,%edx
30954 5:
30955 SRC( movb (%esi), %dl )
30956 -DST( movb %dl, (%edi) )
30957 +DST( movb %dl, %es:(%edi) )
30958 6: addl %edx, %eax
30959 adcl $0, %eax
30960 7:
30961 .section .fixup, "ax"
30962 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr
30963 - movl $-EFAULT, (%ebx)
30964 + movl $-EFAULT, %ss:(%ebx)
30965 # zero the complete destination (computing the rest is too much work)
30966 movl ARGBASE+8(%esp),%edi # dst
30967 movl ARGBASE+12(%esp),%ecx # len
30968 @@ -476,15 +516,22 @@ DST( movb %dl, (%edi) )
30969 rep; stosb
30970 jmp 7b
30971 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr
30972 - movl $-EFAULT, (%ebx)
30973 + movl $-EFAULT, %ss:(%ebx)
30974 jmp 7b
30975 .previous
30976
30977 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30978 + pushl %ss
30979 + popl %ds
30980 + pushl %ss
30981 + popl %es
30982 +#endif
30983 +
30984 popl %esi
30985 popl %edi
30986 popl %ebx
30987 ret
30988 -ENDPROC(csum_partial_copy_generic)
30989 +ENDPROC(csum_partial_copy_generic_to_user)
30990
30991 #undef ROUND
30992 #undef ROUND1
30993 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
30994 index a2fe51b..507dab0 100644
30995 --- a/arch/x86/lib/clear_page_64.S
30996 +++ b/arch/x86/lib/clear_page_64.S
30997 @@ -21,6 +21,7 @@ ENTRY(clear_page)
30998 movl $4096/8,%ecx
30999 xorl %eax,%eax
31000 rep stosq
31001 + pax_force_retaddr
31002 ret
31003 ENDPROC(clear_page)
31004
31005 @@ -43,6 +44,7 @@ ENTRY(clear_page_orig)
31006 leaq 64(%rdi),%rdi
31007 jnz .Lloop
31008 nop
31009 + pax_force_retaddr
31010 ret
31011 ENDPROC(clear_page_orig)
31012
31013 @@ -50,5 +52,6 @@ ENTRY(clear_page_c_e)
31014 movl $4096,%ecx
31015 xorl %eax,%eax
31016 rep stosb
31017 + pax_force_retaddr
31018 ret
31019 ENDPROC(clear_page_c_e)
31020 diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S
31021 index 9b33024..e52ee44 100644
31022 --- a/arch/x86/lib/cmpxchg16b_emu.S
31023 +++ b/arch/x86/lib/cmpxchg16b_emu.S
31024 @@ -7,6 +7,7 @@
31025 */
31026 #include <linux/linkage.h>
31027 #include <asm/percpu.h>
31028 +#include <asm/alternative-asm.h>
31029
31030 .text
31031
31032 @@ -43,11 +44,13 @@ ENTRY(this_cpu_cmpxchg16b_emu)
31033
31034 popfq
31035 mov $1, %al
31036 + pax_force_retaddr
31037 ret
31038
31039 .Lnot_same:
31040 popfq
31041 xor %al,%al
31042 + pax_force_retaddr
31043 ret
31044
31045 ENDPROC(this_cpu_cmpxchg16b_emu)
31046 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
31047 index 009f982..9b3db5e 100644
31048 --- a/arch/x86/lib/copy_page_64.S
31049 +++ b/arch/x86/lib/copy_page_64.S
31050 @@ -15,13 +15,14 @@ ENTRY(copy_page)
31051 ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD
31052 movl $4096/8, %ecx
31053 rep movsq
31054 + pax_force_retaddr
31055 ret
31056 ENDPROC(copy_page)
31057
31058 ENTRY(copy_page_regs)
31059 subq $2*8, %rsp
31060 movq %rbx, (%rsp)
31061 - movq %r12, 1*8(%rsp)
31062 + movq %r13, 1*8(%rsp)
31063
31064 movl $(4096/64)-5, %ecx
31065 .p2align 4
31066 @@ -34,7 +35,7 @@ ENTRY(copy_page_regs)
31067 movq 0x8*4(%rsi), %r9
31068 movq 0x8*5(%rsi), %r10
31069 movq 0x8*6(%rsi), %r11
31070 - movq 0x8*7(%rsi), %r12
31071 + movq 0x8*7(%rsi), %r13
31072
31073 prefetcht0 5*64(%rsi)
31074
31075 @@ -45,7 +46,7 @@ ENTRY(copy_page_regs)
31076 movq %r9, 0x8*4(%rdi)
31077 movq %r10, 0x8*5(%rdi)
31078 movq %r11, 0x8*6(%rdi)
31079 - movq %r12, 0x8*7(%rdi)
31080 + movq %r13, 0x8*7(%rdi)
31081
31082 leaq 64 (%rsi), %rsi
31083 leaq 64 (%rdi), %rdi
31084 @@ -64,7 +65,7 @@ ENTRY(copy_page_regs)
31085 movq 0x8*4(%rsi), %r9
31086 movq 0x8*5(%rsi), %r10
31087 movq 0x8*6(%rsi), %r11
31088 - movq 0x8*7(%rsi), %r12
31089 + movq 0x8*7(%rsi), %r13
31090
31091 movq %rax, 0x8*0(%rdi)
31092 movq %rbx, 0x8*1(%rdi)
31093 @@ -73,14 +74,15 @@ ENTRY(copy_page_regs)
31094 movq %r9, 0x8*4(%rdi)
31095 movq %r10, 0x8*5(%rdi)
31096 movq %r11, 0x8*6(%rdi)
31097 - movq %r12, 0x8*7(%rdi)
31098 + movq %r13, 0x8*7(%rdi)
31099
31100 leaq 64(%rdi), %rdi
31101 leaq 64(%rsi), %rsi
31102 jnz .Loop2
31103
31104 movq (%rsp), %rbx
31105 - movq 1*8(%rsp), %r12
31106 + movq 1*8(%rsp), %r13
31107 addq $2*8, %rsp
31108 + pax_force_retaddr
31109 ret
31110 ENDPROC(copy_page_regs)
31111 diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
31112 index 982ce34..8e14731 100644
31113 --- a/arch/x86/lib/copy_user_64.S
31114 +++ b/arch/x86/lib/copy_user_64.S
31115 @@ -14,50 +14,7 @@
31116 #include <asm/alternative-asm.h>
31117 #include <asm/asm.h>
31118 #include <asm/smap.h>
31119 -
31120 -/* Standard copy_to_user with segment limit checking */
31121 -ENTRY(_copy_to_user)
31122 - GET_THREAD_INFO(%rax)
31123 - movq %rdi,%rcx
31124 - addq %rdx,%rcx
31125 - jc bad_to_user
31126 - cmpq TI_addr_limit(%rax),%rcx
31127 - ja bad_to_user
31128 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31129 - "jmp copy_user_generic_string", \
31130 - X86_FEATURE_REP_GOOD, \
31131 - "jmp copy_user_enhanced_fast_string", \
31132 - X86_FEATURE_ERMS
31133 -ENDPROC(_copy_to_user)
31134 -
31135 -/* Standard copy_from_user with segment limit checking */
31136 -ENTRY(_copy_from_user)
31137 - GET_THREAD_INFO(%rax)
31138 - movq %rsi,%rcx
31139 - addq %rdx,%rcx
31140 - jc bad_from_user
31141 - cmpq TI_addr_limit(%rax),%rcx
31142 - ja bad_from_user
31143 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31144 - "jmp copy_user_generic_string", \
31145 - X86_FEATURE_REP_GOOD, \
31146 - "jmp copy_user_enhanced_fast_string", \
31147 - X86_FEATURE_ERMS
31148 -ENDPROC(_copy_from_user)
31149 -
31150 - .section .fixup,"ax"
31151 - /* must zero dest */
31152 -ENTRY(bad_from_user)
31153 -bad_from_user:
31154 - movl %edx,%ecx
31155 - xorl %eax,%eax
31156 - rep
31157 - stosb
31158 -bad_to_user:
31159 - movl %edx,%eax
31160 - ret
31161 -ENDPROC(bad_from_user)
31162 - .previous
31163 +#include <asm/pgtable.h>
31164
31165 /*
31166 * copy_user_generic_unrolled - memory copy with exception handling.
31167 @@ -73,6 +30,7 @@ ENDPROC(bad_from_user)
31168 * eax uncopied bytes or 0 if successful.
31169 */
31170 ENTRY(copy_user_generic_unrolled)
31171 + ASM_PAX_OPEN_USERLAND
31172 ASM_STAC
31173 cmpl $8,%edx
31174 jb 20f /* less then 8 bytes, go to byte copy loop */
31175 @@ -122,6 +80,8 @@ ENTRY(copy_user_generic_unrolled)
31176 jnz 21b
31177 23: xor %eax,%eax
31178 ASM_CLAC
31179 + ASM_PAX_CLOSE_USERLAND
31180 + pax_force_retaddr
31181 ret
31182
31183 .section .fixup,"ax"
31184 @@ -175,6 +135,7 @@ ENDPROC(copy_user_generic_unrolled)
31185 * eax uncopied bytes or 0 if successful.
31186 */
31187 ENTRY(copy_user_generic_string)
31188 + ASM_PAX_OPEN_USERLAND
31189 ASM_STAC
31190 cmpl $8,%edx
31191 jb 2f /* less than 8 bytes, go to byte copy loop */
31192 @@ -189,6 +150,8 @@ ENTRY(copy_user_generic_string)
31193 movsb
31194 xorl %eax,%eax
31195 ASM_CLAC
31196 + ASM_PAX_CLOSE_USERLAND
31197 + pax_force_retaddr
31198 ret
31199
31200 .section .fixup,"ax"
31201 @@ -214,12 +177,15 @@ ENDPROC(copy_user_generic_string)
31202 * eax uncopied bytes or 0 if successful.
31203 */
31204 ENTRY(copy_user_enhanced_fast_string)
31205 + ASM_PAX_OPEN_USERLAND
31206 ASM_STAC
31207 movl %edx,%ecx
31208 1: rep
31209 movsb
31210 xorl %eax,%eax
31211 ASM_CLAC
31212 + ASM_PAX_CLOSE_USERLAND
31213 + pax_force_retaddr
31214 ret
31215
31216 .section .fixup,"ax"
31217 @@ -235,6 +201,16 @@ ENDPROC(copy_user_enhanced_fast_string)
31218 * This will force destination/source out of cache for more performance.
31219 */
31220 ENTRY(__copy_user_nocache)
31221 +
31222 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31223 + mov pax_user_shadow_base,%rcx
31224 + cmp %rcx,%rsi
31225 + jae 1f
31226 + add %rcx,%rsi
31227 +1:
31228 +#endif
31229 +
31230 + ASM_PAX_OPEN_USERLAND
31231 ASM_STAC
31232 cmpl $8,%edx
31233 jb 20f /* less then 8 bytes, go to byte copy loop */
31234 @@ -284,7 +260,9 @@ ENTRY(__copy_user_nocache)
31235 jnz 21b
31236 23: xorl %eax,%eax
31237 ASM_CLAC
31238 + ASM_PAX_CLOSE_USERLAND
31239 sfence
31240 + pax_force_retaddr
31241 ret
31242
31243 .section .fixup,"ax"
31244 diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
31245 index 7e48807..cc966ff 100644
31246 --- a/arch/x86/lib/csum-copy_64.S
31247 +++ b/arch/x86/lib/csum-copy_64.S
31248 @@ -8,6 +8,7 @@
31249 #include <linux/linkage.h>
31250 #include <asm/errno.h>
31251 #include <asm/asm.h>
31252 +#include <asm/alternative-asm.h>
31253
31254 /*
31255 * Checksum copy with exception handling.
31256 @@ -52,7 +53,7 @@ ENTRY(csum_partial_copy_generic)
31257 .Lignore:
31258 subq $7*8, %rsp
31259 movq %rbx, 2*8(%rsp)
31260 - movq %r12, 3*8(%rsp)
31261 + movq %r15, 3*8(%rsp)
31262 movq %r14, 4*8(%rsp)
31263 movq %r13, 5*8(%rsp)
31264 movq %rbp, 6*8(%rsp)
31265 @@ -64,16 +65,16 @@ ENTRY(csum_partial_copy_generic)
31266 movl %edx, %ecx
31267
31268 xorl %r9d, %r9d
31269 - movq %rcx, %r12
31270 + movq %rcx, %r15
31271
31272 - shrq $6, %r12
31273 + shrq $6, %r15
31274 jz .Lhandle_tail /* < 64 */
31275
31276 clc
31277
31278 /* main loop. clear in 64 byte blocks */
31279 /* r9: zero, r8: temp2, rbx: temp1, rax: sum, rcx: saved length */
31280 - /* r11: temp3, rdx: temp4, r12 loopcnt */
31281 + /* r11: temp3, rdx: temp4, r15 loopcnt */
31282 /* r10: temp5, rbp: temp6, r14 temp7, r13 temp8 */
31283 .p2align 4
31284 .Lloop:
31285 @@ -107,7 +108,7 @@ ENTRY(csum_partial_copy_generic)
31286 adcq %r14, %rax
31287 adcq %r13, %rax
31288
31289 - decl %r12d
31290 + decl %r15d
31291
31292 dest
31293 movq %rbx, (%rsi)
31294 @@ -200,11 +201,12 @@ ENTRY(csum_partial_copy_generic)
31295
31296 .Lende:
31297 movq 2*8(%rsp), %rbx
31298 - movq 3*8(%rsp), %r12
31299 + movq 3*8(%rsp), %r15
31300 movq 4*8(%rsp), %r14
31301 movq 5*8(%rsp), %r13
31302 movq 6*8(%rsp), %rbp
31303 addq $7*8, %rsp
31304 + pax_force_retaddr
31305 ret
31306
31307 /* Exception handlers. Very simple, zeroing is done in the wrappers */
31308 diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
31309 index 1318f75..44c30fd 100644
31310 --- a/arch/x86/lib/csum-wrappers_64.c
31311 +++ b/arch/x86/lib/csum-wrappers_64.c
31312 @@ -52,10 +52,12 @@ csum_partial_copy_from_user(const void __user *src, void *dst,
31313 len -= 2;
31314 }
31315 }
31316 + pax_open_userland();
31317 stac();
31318 - isum = csum_partial_copy_generic((__force const void *)src,
31319 + isum = csum_partial_copy_generic((const void __force_kernel *)____m(src),
31320 dst, len, isum, errp, NULL);
31321 clac();
31322 + pax_close_userland();
31323 if (unlikely(*errp))
31324 goto out_err;
31325
31326 @@ -109,10 +111,12 @@ csum_partial_copy_to_user(const void *src, void __user *dst,
31327 }
31328
31329 *errp = 0;
31330 + pax_open_userland();
31331 stac();
31332 - ret = csum_partial_copy_generic(src, (void __force *)dst,
31333 + ret = csum_partial_copy_generic(src, (void __force_kernel *)____m(dst),
31334 len, isum, NULL, errp);
31335 clac();
31336 + pax_close_userland();
31337 return ret;
31338 }
31339 EXPORT_SYMBOL(csum_partial_copy_to_user);
31340 diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
31341 index 46668cd..a3bdfb9 100644
31342 --- a/arch/x86/lib/getuser.S
31343 +++ b/arch/x86/lib/getuser.S
31344 @@ -32,42 +32,93 @@
31345 #include <asm/thread_info.h>
31346 #include <asm/asm.h>
31347 #include <asm/smap.h>
31348 +#include <asm/segment.h>
31349 +#include <asm/pgtable.h>
31350 +#include <asm/alternative-asm.h>
31351 +
31352 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
31353 +#define __copyuser_seg gs;
31354 +#else
31355 +#define __copyuser_seg
31356 +#endif
31357
31358 .text
31359 ENTRY(__get_user_1)
31360 +
31361 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31362 GET_THREAD_INFO(%_ASM_DX)
31363 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31364 jae bad_get_user
31365 +
31366 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31367 + mov pax_user_shadow_base,%_ASM_DX
31368 + cmp %_ASM_DX,%_ASM_AX
31369 + jae 1234f
31370 + add %_ASM_DX,%_ASM_AX
31371 +1234:
31372 +#endif
31373 +
31374 +#endif
31375 +
31376 ASM_STAC
31377 -1: movzbl (%_ASM_AX),%edx
31378 +1: __copyuser_seg movzbl (%_ASM_AX),%edx
31379 xor %eax,%eax
31380 ASM_CLAC
31381 + pax_force_retaddr
31382 ret
31383 ENDPROC(__get_user_1)
31384
31385 ENTRY(__get_user_2)
31386 add $1,%_ASM_AX
31387 +
31388 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31389 jc bad_get_user
31390 GET_THREAD_INFO(%_ASM_DX)
31391 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31392 jae bad_get_user
31393 +
31394 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31395 + mov pax_user_shadow_base,%_ASM_DX
31396 + cmp %_ASM_DX,%_ASM_AX
31397 + jae 1234f
31398 + add %_ASM_DX,%_ASM_AX
31399 +1234:
31400 +#endif
31401 +
31402 +#endif
31403 +
31404 ASM_STAC
31405 -2: movzwl -1(%_ASM_AX),%edx
31406 +2: __copyuser_seg movzwl -1(%_ASM_AX),%edx
31407 xor %eax,%eax
31408 ASM_CLAC
31409 + pax_force_retaddr
31410 ret
31411 ENDPROC(__get_user_2)
31412
31413 ENTRY(__get_user_4)
31414 add $3,%_ASM_AX
31415 +
31416 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31417 jc bad_get_user
31418 GET_THREAD_INFO(%_ASM_DX)
31419 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31420 jae bad_get_user
31421 +
31422 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31423 + mov pax_user_shadow_base,%_ASM_DX
31424 + cmp %_ASM_DX,%_ASM_AX
31425 + jae 1234f
31426 + add %_ASM_DX,%_ASM_AX
31427 +1234:
31428 +#endif
31429 +
31430 +#endif
31431 +
31432 ASM_STAC
31433 -3: movl -3(%_ASM_AX),%edx
31434 +3: __copyuser_seg movl -3(%_ASM_AX),%edx
31435 xor %eax,%eax
31436 ASM_CLAC
31437 + pax_force_retaddr
31438 ret
31439 ENDPROC(__get_user_4)
31440
31441 @@ -78,10 +129,20 @@ ENTRY(__get_user_8)
31442 GET_THREAD_INFO(%_ASM_DX)
31443 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31444 jae bad_get_user
31445 +
31446 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31447 + mov pax_user_shadow_base,%_ASM_DX
31448 + cmp %_ASM_DX,%_ASM_AX
31449 + jae 1234f
31450 + add %_ASM_DX,%_ASM_AX
31451 +1234:
31452 +#endif
31453 +
31454 ASM_STAC
31455 4: movq -7(%_ASM_AX),%rdx
31456 xor %eax,%eax
31457 ASM_CLAC
31458 + pax_force_retaddr
31459 ret
31460 #else
31461 add $7,%_ASM_AX
31462 @@ -90,10 +151,11 @@ ENTRY(__get_user_8)
31463 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31464 jae bad_get_user_8
31465 ASM_STAC
31466 -4: movl -7(%_ASM_AX),%edx
31467 -5: movl -3(%_ASM_AX),%ecx
31468 +4: __copyuser_seg movl -7(%_ASM_AX),%edx
31469 +5: __copyuser_seg movl -3(%_ASM_AX),%ecx
31470 xor %eax,%eax
31471 ASM_CLAC
31472 + pax_force_retaddr
31473 ret
31474 #endif
31475 ENDPROC(__get_user_8)
31476 @@ -103,6 +165,7 @@ bad_get_user:
31477 xor %edx,%edx
31478 mov $(-EFAULT),%_ASM_AX
31479 ASM_CLAC
31480 + pax_force_retaddr
31481 ret
31482 END(bad_get_user)
31483
31484 @@ -112,6 +175,7 @@ bad_get_user_8:
31485 xor %ecx,%ecx
31486 mov $(-EFAULT),%_ASM_AX
31487 ASM_CLAC
31488 + pax_force_retaddr
31489 ret
31490 END(bad_get_user_8)
31491 #endif
31492 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
31493 index 8f72b33..4667a46 100644
31494 --- a/arch/x86/lib/insn.c
31495 +++ b/arch/x86/lib/insn.c
31496 @@ -20,8 +20,10 @@
31497
31498 #ifdef __KERNEL__
31499 #include <linux/string.h>
31500 +#include <asm/pgtable_types.h>
31501 #else
31502 #include <string.h>
31503 +#define ktla_ktva(addr) addr
31504 #endif
31505 #include <asm/inat.h>
31506 #include <asm/insn.h>
31507 @@ -60,9 +62,9 @@ void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
31508 buf_len = MAX_INSN_SIZE;
31509
31510 memset(insn, 0, sizeof(*insn));
31511 - insn->kaddr = kaddr;
31512 - insn->end_kaddr = kaddr + buf_len;
31513 - insn->next_byte = kaddr;
31514 + insn->kaddr = (void *)ktla_ktva((unsigned long)kaddr);
31515 + insn->end_kaddr = insn->kaddr + buf_len;
31516 + insn->next_byte = insn->kaddr;
31517 insn->x86_64 = x86_64 ? 1 : 0;
31518 insn->opnd_bytes = 4;
31519 if (x86_64)
31520 diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S
31521 index 33147fe..12a8815 100644
31522 --- a/arch/x86/lib/iomap_copy_64.S
31523 +++ b/arch/x86/lib/iomap_copy_64.S
31524 @@ -16,6 +16,7 @@
31525 */
31526
31527 #include <linux/linkage.h>
31528 +#include <asm/alternative-asm.h>
31529
31530 /*
31531 * override generic version in lib/iomap_copy.c
31532 @@ -23,5 +24,6 @@
31533 ENTRY(__iowrite32_copy)
31534 movl %edx,%ecx
31535 rep movsd
31536 + pax_force_retaddr
31537 ret
31538 ENDPROC(__iowrite32_copy)
31539 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
31540 index 16698bb..971d300 100644
31541 --- a/arch/x86/lib/memcpy_64.S
31542 +++ b/arch/x86/lib/memcpy_64.S
31543 @@ -36,6 +36,7 @@ ENTRY(memcpy)
31544 rep movsq
31545 movl %edx, %ecx
31546 rep movsb
31547 + pax_force_retaddr
31548 ret
31549 ENDPROC(memcpy)
31550 ENDPROC(__memcpy)
31551 @@ -48,6 +49,7 @@ ENTRY(memcpy_erms)
31552 movq %rdi, %rax
31553 movq %rdx, %rcx
31554 rep movsb
31555 + pax_force_retaddr
31556 ret
31557 ENDPROC(memcpy_erms)
31558
31559 @@ -132,6 +134,7 @@ ENTRY(memcpy_orig)
31560 movq %r9, 1*8(%rdi)
31561 movq %r10, -2*8(%rdi, %rdx)
31562 movq %r11, -1*8(%rdi, %rdx)
31563 + pax_force_retaddr
31564 retq
31565 .p2align 4
31566 .Lless_16bytes:
31567 @@ -144,6 +147,7 @@ ENTRY(memcpy_orig)
31568 movq -1*8(%rsi, %rdx), %r9
31569 movq %r8, 0*8(%rdi)
31570 movq %r9, -1*8(%rdi, %rdx)
31571 + pax_force_retaddr
31572 retq
31573 .p2align 4
31574 .Lless_8bytes:
31575 @@ -157,6 +161,7 @@ ENTRY(memcpy_orig)
31576 movl -4(%rsi, %rdx), %r8d
31577 movl %ecx, (%rdi)
31578 movl %r8d, -4(%rdi, %rdx)
31579 + pax_force_retaddr
31580 retq
31581 .p2align 4
31582 .Lless_3bytes:
31583 @@ -175,5 +180,6 @@ ENTRY(memcpy_orig)
31584 movb %cl, (%rdi)
31585
31586 .Lend:
31587 + pax_force_retaddr
31588 retq
31589 ENDPROC(memcpy_orig)
31590 diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
31591 index ca2afdd..2e474fa 100644
31592 --- a/arch/x86/lib/memmove_64.S
31593 +++ b/arch/x86/lib/memmove_64.S
31594 @@ -41,7 +41,7 @@ ENTRY(__memmove)
31595 jg 2f
31596
31597 .Lmemmove_begin_forward:
31598 - ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
31599 + ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; pax_force_retaddr; retq", X86_FEATURE_ERMS
31600
31601 /*
31602 * movsq instruction have many startup latency
31603 @@ -204,6 +204,7 @@ ENTRY(__memmove)
31604 movb (%rsi), %r11b
31605 movb %r11b, (%rdi)
31606 13:
31607 + pax_force_retaddr
31608 retq
31609 ENDPROC(__memmove)
31610 ENDPROC(memmove)
31611 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
31612 index 2661fad..b584d5c 100644
31613 --- a/arch/x86/lib/memset_64.S
31614 +++ b/arch/x86/lib/memset_64.S
31615 @@ -40,6 +40,7 @@ ENTRY(__memset)
31616 movl %edx,%ecx
31617 rep stosb
31618 movq %r9,%rax
31619 + pax_force_retaddr
31620 ret
31621 ENDPROC(memset)
31622 ENDPROC(__memset)
31623 @@ -61,6 +62,7 @@ ENTRY(memset_erms)
31624 movq %rdx,%rcx
31625 rep stosb
31626 movq %r9,%rax
31627 + pax_force_retaddr
31628 ret
31629 ENDPROC(memset_erms)
31630
31631 @@ -123,6 +125,7 @@ ENTRY(memset_orig)
31632
31633 .Lende:
31634 movq %r10,%rax
31635 + pax_force_retaddr
31636 ret
31637
31638 .Lbad_alignment:
31639 diff --git a/arch/x86/lib/mmx_32.c b/arch/x86/lib/mmx_32.c
31640 index e5e3ed8..d7c08c2 100644
31641 --- a/arch/x86/lib/mmx_32.c
31642 +++ b/arch/x86/lib/mmx_32.c
31643 @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31644 {
31645 void *p;
31646 int i;
31647 + unsigned long cr0;
31648
31649 if (unlikely(in_interrupt()))
31650 return __memcpy(to, from, len);
31651 @@ -39,44 +40,72 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31652 kernel_fpu_begin();
31653
31654 __asm__ __volatile__ (
31655 - "1: prefetch (%0)\n" /* This set is 28 bytes */
31656 - " prefetch 64(%0)\n"
31657 - " prefetch 128(%0)\n"
31658 - " prefetch 192(%0)\n"
31659 - " prefetch 256(%0)\n"
31660 + "1: prefetch (%1)\n" /* This set is 28 bytes */
31661 + " prefetch 64(%1)\n"
31662 + " prefetch 128(%1)\n"
31663 + " prefetch 192(%1)\n"
31664 + " prefetch 256(%1)\n"
31665 "2: \n"
31666 ".section .fixup, \"ax\"\n"
31667 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31668 + "3: \n"
31669 +
31670 +#ifdef CONFIG_PAX_KERNEXEC
31671 + " movl %%cr0, %0\n"
31672 + " movl %0, %%eax\n"
31673 + " andl $0xFFFEFFFF, %%eax\n"
31674 + " movl %%eax, %%cr0\n"
31675 +#endif
31676 +
31677 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31678 +
31679 +#ifdef CONFIG_PAX_KERNEXEC
31680 + " movl %0, %%cr0\n"
31681 +#endif
31682 +
31683 " jmp 2b\n"
31684 ".previous\n"
31685 _ASM_EXTABLE(1b, 3b)
31686 - : : "r" (from));
31687 + : "=&r" (cr0) : "r" (from) : "ax");
31688
31689 for ( ; i > 5; i--) {
31690 __asm__ __volatile__ (
31691 - "1: prefetch 320(%0)\n"
31692 - "2: movq (%0), %%mm0\n"
31693 - " movq 8(%0), %%mm1\n"
31694 - " movq 16(%0), %%mm2\n"
31695 - " movq 24(%0), %%mm3\n"
31696 - " movq %%mm0, (%1)\n"
31697 - " movq %%mm1, 8(%1)\n"
31698 - " movq %%mm2, 16(%1)\n"
31699 - " movq %%mm3, 24(%1)\n"
31700 - " movq 32(%0), %%mm0\n"
31701 - " movq 40(%0), %%mm1\n"
31702 - " movq 48(%0), %%mm2\n"
31703 - " movq 56(%0), %%mm3\n"
31704 - " movq %%mm0, 32(%1)\n"
31705 - " movq %%mm1, 40(%1)\n"
31706 - " movq %%mm2, 48(%1)\n"
31707 - " movq %%mm3, 56(%1)\n"
31708 + "1: prefetch 320(%1)\n"
31709 + "2: movq (%1), %%mm0\n"
31710 + " movq 8(%1), %%mm1\n"
31711 + " movq 16(%1), %%mm2\n"
31712 + " movq 24(%1), %%mm3\n"
31713 + " movq %%mm0, (%2)\n"
31714 + " movq %%mm1, 8(%2)\n"
31715 + " movq %%mm2, 16(%2)\n"
31716 + " movq %%mm3, 24(%2)\n"
31717 + " movq 32(%1), %%mm0\n"
31718 + " movq 40(%1), %%mm1\n"
31719 + " movq 48(%1), %%mm2\n"
31720 + " movq 56(%1), %%mm3\n"
31721 + " movq %%mm0, 32(%2)\n"
31722 + " movq %%mm1, 40(%2)\n"
31723 + " movq %%mm2, 48(%2)\n"
31724 + " movq %%mm3, 56(%2)\n"
31725 ".section .fixup, \"ax\"\n"
31726 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31727 + "3:\n"
31728 +
31729 +#ifdef CONFIG_PAX_KERNEXEC
31730 + " movl %%cr0, %0\n"
31731 + " movl %0, %%eax\n"
31732 + " andl $0xFFFEFFFF, %%eax\n"
31733 + " movl %%eax, %%cr0\n"
31734 +#endif
31735 +
31736 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31737 +
31738 +#ifdef CONFIG_PAX_KERNEXEC
31739 + " movl %0, %%cr0\n"
31740 +#endif
31741 +
31742 " jmp 2b\n"
31743 ".previous\n"
31744 _ASM_EXTABLE(1b, 3b)
31745 - : : "r" (from), "r" (to) : "memory");
31746 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31747
31748 from += 64;
31749 to += 64;
31750 @@ -158,6 +187,7 @@ static void fast_clear_page(void *page)
31751 static void fast_copy_page(void *to, void *from)
31752 {
31753 int i;
31754 + unsigned long cr0;
31755
31756 kernel_fpu_begin();
31757
31758 @@ -166,42 +196,70 @@ static void fast_copy_page(void *to, void *from)
31759 * but that is for later. -AV
31760 */
31761 __asm__ __volatile__(
31762 - "1: prefetch (%0)\n"
31763 - " prefetch 64(%0)\n"
31764 - " prefetch 128(%0)\n"
31765 - " prefetch 192(%0)\n"
31766 - " prefetch 256(%0)\n"
31767 + "1: prefetch (%1)\n"
31768 + " prefetch 64(%1)\n"
31769 + " prefetch 128(%1)\n"
31770 + " prefetch 192(%1)\n"
31771 + " prefetch 256(%1)\n"
31772 "2: \n"
31773 ".section .fixup, \"ax\"\n"
31774 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31775 + "3: \n"
31776 +
31777 +#ifdef CONFIG_PAX_KERNEXEC
31778 + " movl %%cr0, %0\n"
31779 + " movl %0, %%eax\n"
31780 + " andl $0xFFFEFFFF, %%eax\n"
31781 + " movl %%eax, %%cr0\n"
31782 +#endif
31783 +
31784 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31785 +
31786 +#ifdef CONFIG_PAX_KERNEXEC
31787 + " movl %0, %%cr0\n"
31788 +#endif
31789 +
31790 " jmp 2b\n"
31791 ".previous\n"
31792 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
31793 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
31794
31795 for (i = 0; i < (4096-320)/64; i++) {
31796 __asm__ __volatile__ (
31797 - "1: prefetch 320(%0)\n"
31798 - "2: movq (%0), %%mm0\n"
31799 - " movntq %%mm0, (%1)\n"
31800 - " movq 8(%0), %%mm1\n"
31801 - " movntq %%mm1, 8(%1)\n"
31802 - " movq 16(%0), %%mm2\n"
31803 - " movntq %%mm2, 16(%1)\n"
31804 - " movq 24(%0), %%mm3\n"
31805 - " movntq %%mm3, 24(%1)\n"
31806 - " movq 32(%0), %%mm4\n"
31807 - " movntq %%mm4, 32(%1)\n"
31808 - " movq 40(%0), %%mm5\n"
31809 - " movntq %%mm5, 40(%1)\n"
31810 - " movq 48(%0), %%mm6\n"
31811 - " movntq %%mm6, 48(%1)\n"
31812 - " movq 56(%0), %%mm7\n"
31813 - " movntq %%mm7, 56(%1)\n"
31814 + "1: prefetch 320(%1)\n"
31815 + "2: movq (%1), %%mm0\n"
31816 + " movntq %%mm0, (%2)\n"
31817 + " movq 8(%1), %%mm1\n"
31818 + " movntq %%mm1, 8(%2)\n"
31819 + " movq 16(%1), %%mm2\n"
31820 + " movntq %%mm2, 16(%2)\n"
31821 + " movq 24(%1), %%mm3\n"
31822 + " movntq %%mm3, 24(%2)\n"
31823 + " movq 32(%1), %%mm4\n"
31824 + " movntq %%mm4, 32(%2)\n"
31825 + " movq 40(%1), %%mm5\n"
31826 + " movntq %%mm5, 40(%2)\n"
31827 + " movq 48(%1), %%mm6\n"
31828 + " movntq %%mm6, 48(%2)\n"
31829 + " movq 56(%1), %%mm7\n"
31830 + " movntq %%mm7, 56(%2)\n"
31831 ".section .fixup, \"ax\"\n"
31832 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31833 + "3:\n"
31834 +
31835 +#ifdef CONFIG_PAX_KERNEXEC
31836 + " movl %%cr0, %0\n"
31837 + " movl %0, %%eax\n"
31838 + " andl $0xFFFEFFFF, %%eax\n"
31839 + " movl %%eax, %%cr0\n"
31840 +#endif
31841 +
31842 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31843 +
31844 +#ifdef CONFIG_PAX_KERNEXEC
31845 + " movl %0, %%cr0\n"
31846 +#endif
31847 +
31848 " jmp 2b\n"
31849 ".previous\n"
31850 - _ASM_EXTABLE(1b, 3b) : : "r" (from), "r" (to) : "memory");
31851 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31852
31853 from += 64;
31854 to += 64;
31855 @@ -280,47 +338,76 @@ static void fast_clear_page(void *page)
31856 static void fast_copy_page(void *to, void *from)
31857 {
31858 int i;
31859 + unsigned long cr0;
31860
31861 kernel_fpu_begin();
31862
31863 __asm__ __volatile__ (
31864 - "1: prefetch (%0)\n"
31865 - " prefetch 64(%0)\n"
31866 - " prefetch 128(%0)\n"
31867 - " prefetch 192(%0)\n"
31868 - " prefetch 256(%0)\n"
31869 + "1: prefetch (%1)\n"
31870 + " prefetch 64(%1)\n"
31871 + " prefetch 128(%1)\n"
31872 + " prefetch 192(%1)\n"
31873 + " prefetch 256(%1)\n"
31874 "2: \n"
31875 ".section .fixup, \"ax\"\n"
31876 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31877 + "3: \n"
31878 +
31879 +#ifdef CONFIG_PAX_KERNEXEC
31880 + " movl %%cr0, %0\n"
31881 + " movl %0, %%eax\n"
31882 + " andl $0xFFFEFFFF, %%eax\n"
31883 + " movl %%eax, %%cr0\n"
31884 +#endif
31885 +
31886 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31887 +
31888 +#ifdef CONFIG_PAX_KERNEXEC
31889 + " movl %0, %%cr0\n"
31890 +#endif
31891 +
31892 " jmp 2b\n"
31893 ".previous\n"
31894 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
31895 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
31896
31897 for (i = 0; i < 4096/64; i++) {
31898 __asm__ __volatile__ (
31899 - "1: prefetch 320(%0)\n"
31900 - "2: movq (%0), %%mm0\n"
31901 - " movq 8(%0), %%mm1\n"
31902 - " movq 16(%0), %%mm2\n"
31903 - " movq 24(%0), %%mm3\n"
31904 - " movq %%mm0, (%1)\n"
31905 - " movq %%mm1, 8(%1)\n"
31906 - " movq %%mm2, 16(%1)\n"
31907 - " movq %%mm3, 24(%1)\n"
31908 - " movq 32(%0), %%mm0\n"
31909 - " movq 40(%0), %%mm1\n"
31910 - " movq 48(%0), %%mm2\n"
31911 - " movq 56(%0), %%mm3\n"
31912 - " movq %%mm0, 32(%1)\n"
31913 - " movq %%mm1, 40(%1)\n"
31914 - " movq %%mm2, 48(%1)\n"
31915 - " movq %%mm3, 56(%1)\n"
31916 + "1: prefetch 320(%1)\n"
31917 + "2: movq (%1), %%mm0\n"
31918 + " movq 8(%1), %%mm1\n"
31919 + " movq 16(%1), %%mm2\n"
31920 + " movq 24(%1), %%mm3\n"
31921 + " movq %%mm0, (%2)\n"
31922 + " movq %%mm1, 8(%2)\n"
31923 + " movq %%mm2, 16(%2)\n"
31924 + " movq %%mm3, 24(%2)\n"
31925 + " movq 32(%1), %%mm0\n"
31926 + " movq 40(%1), %%mm1\n"
31927 + " movq 48(%1), %%mm2\n"
31928 + " movq 56(%1), %%mm3\n"
31929 + " movq %%mm0, 32(%2)\n"
31930 + " movq %%mm1, 40(%2)\n"
31931 + " movq %%mm2, 48(%2)\n"
31932 + " movq %%mm3, 56(%2)\n"
31933 ".section .fixup, \"ax\"\n"
31934 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31935 + "3:\n"
31936 +
31937 +#ifdef CONFIG_PAX_KERNEXEC
31938 + " movl %%cr0, %0\n"
31939 + " movl %0, %%eax\n"
31940 + " andl $0xFFFEFFFF, %%eax\n"
31941 + " movl %%eax, %%cr0\n"
31942 +#endif
31943 +
31944 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31945 +
31946 +#ifdef CONFIG_PAX_KERNEXEC
31947 + " movl %0, %%cr0\n"
31948 +#endif
31949 +
31950 " jmp 2b\n"
31951 ".previous\n"
31952 _ASM_EXTABLE(1b, 3b)
31953 - : : "r" (from), "r" (to) : "memory");
31954 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31955
31956 from += 64;
31957 to += 64;
31958 diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S
31959 index c815564..303dcfa 100644
31960 --- a/arch/x86/lib/msr-reg.S
31961 +++ b/arch/x86/lib/msr-reg.S
31962 @@ -2,6 +2,7 @@
31963 #include <linux/errno.h>
31964 #include <asm/asm.h>
31965 #include <asm/msr.h>
31966 +#include <asm/alternative-asm.h>
31967
31968 #ifdef CONFIG_X86_64
31969 /*
31970 @@ -34,6 +35,7 @@ ENTRY(\op\()_safe_regs)
31971 movl %edi, 28(%r10)
31972 popq %rbp
31973 popq %rbx
31974 + pax_force_retaddr
31975 ret
31976 3:
31977 movl $-EIO, %r11d
31978 diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S
31979 index e0817a1..bc9cf66 100644
31980 --- a/arch/x86/lib/putuser.S
31981 +++ b/arch/x86/lib/putuser.S
31982 @@ -15,7 +15,9 @@
31983 #include <asm/errno.h>
31984 #include <asm/asm.h>
31985 #include <asm/smap.h>
31986 -
31987 +#include <asm/segment.h>
31988 +#include <asm/pgtable.h>
31989 +#include <asm/alternative-asm.h>
31990
31991 /*
31992 * __put_user_X
31993 @@ -29,55 +31,124 @@
31994 * as they get called from within inline assembly.
31995 */
31996
31997 -#define ENTER GET_THREAD_INFO(%_ASM_BX)
31998 -#define EXIT ASM_CLAC ; \
31999 +#define ENTER
32000 +#define EXIT ASM_CLAC ; \
32001 + pax_force_retaddr ; \
32002 ret
32003
32004 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32005 +#define _DEST %_ASM_CX,%_ASM_BX
32006 +#else
32007 +#define _DEST %_ASM_CX
32008 +#endif
32009 +
32010 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
32011 +#define __copyuser_seg gs;
32012 +#else
32013 +#define __copyuser_seg
32014 +#endif
32015 +
32016 .text
32017 ENTRY(__put_user_1)
32018 ENTER
32019 +
32020 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32021 + GET_THREAD_INFO(%_ASM_BX)
32022 cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
32023 jae bad_put_user
32024 +
32025 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32026 + mov pax_user_shadow_base,%_ASM_BX
32027 + cmp %_ASM_BX,%_ASM_CX
32028 + jb 1234f
32029 + xor %ebx,%ebx
32030 +1234:
32031 +#endif
32032 +
32033 +#endif
32034 +
32035 ASM_STAC
32036 -1: movb %al,(%_ASM_CX)
32037 +1: __copyuser_seg movb %al,(_DEST)
32038 xor %eax,%eax
32039 EXIT
32040 ENDPROC(__put_user_1)
32041
32042 ENTRY(__put_user_2)
32043 ENTER
32044 +
32045 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32046 + GET_THREAD_INFO(%_ASM_BX)
32047 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32048 sub $1,%_ASM_BX
32049 cmp %_ASM_BX,%_ASM_CX
32050 jae bad_put_user
32051 +
32052 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32053 + mov pax_user_shadow_base,%_ASM_BX
32054 + cmp %_ASM_BX,%_ASM_CX
32055 + jb 1234f
32056 + xor %ebx,%ebx
32057 +1234:
32058 +#endif
32059 +
32060 +#endif
32061 +
32062 ASM_STAC
32063 -2: movw %ax,(%_ASM_CX)
32064 +2: __copyuser_seg movw %ax,(_DEST)
32065 xor %eax,%eax
32066 EXIT
32067 ENDPROC(__put_user_2)
32068
32069 ENTRY(__put_user_4)
32070 ENTER
32071 +
32072 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32073 + GET_THREAD_INFO(%_ASM_BX)
32074 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32075 sub $3,%_ASM_BX
32076 cmp %_ASM_BX,%_ASM_CX
32077 jae bad_put_user
32078 +
32079 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32080 + mov pax_user_shadow_base,%_ASM_BX
32081 + cmp %_ASM_BX,%_ASM_CX
32082 + jb 1234f
32083 + xor %ebx,%ebx
32084 +1234:
32085 +#endif
32086 +
32087 +#endif
32088 +
32089 ASM_STAC
32090 -3: movl %eax,(%_ASM_CX)
32091 +3: __copyuser_seg movl %eax,(_DEST)
32092 xor %eax,%eax
32093 EXIT
32094 ENDPROC(__put_user_4)
32095
32096 ENTRY(__put_user_8)
32097 ENTER
32098 +
32099 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32100 + GET_THREAD_INFO(%_ASM_BX)
32101 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32102 sub $7,%_ASM_BX
32103 cmp %_ASM_BX,%_ASM_CX
32104 jae bad_put_user
32105 +
32106 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32107 + mov pax_user_shadow_base,%_ASM_BX
32108 + cmp %_ASM_BX,%_ASM_CX
32109 + jb 1234f
32110 + xor %ebx,%ebx
32111 +1234:
32112 +#endif
32113 +
32114 +#endif
32115 +
32116 ASM_STAC
32117 -4: mov %_ASM_AX,(%_ASM_CX)
32118 +4: __copyuser_seg mov %_ASM_AX,(_DEST)
32119 #ifdef CONFIG_X86_32
32120 -5: movl %edx,4(%_ASM_CX)
32121 +5: __copyuser_seg movl %edx,4(_DEST)
32122 #endif
32123 xor %eax,%eax
32124 EXIT
32125 diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S
32126 index 40027db..37bb69d 100644
32127 --- a/arch/x86/lib/rwsem.S
32128 +++ b/arch/x86/lib/rwsem.S
32129 @@ -90,6 +90,7 @@ ENTRY(call_rwsem_down_read_failed)
32130 call rwsem_down_read_failed
32131 __ASM_SIZE(pop,) %__ASM_REG(dx)
32132 restore_common_regs
32133 + pax_force_retaddr
32134 ret
32135 ENDPROC(call_rwsem_down_read_failed)
32136
32137 @@ -98,6 +99,7 @@ ENTRY(call_rwsem_down_write_failed)
32138 movq %rax,%rdi
32139 call rwsem_down_write_failed
32140 restore_common_regs
32141 + pax_force_retaddr
32142 ret
32143 ENDPROC(call_rwsem_down_write_failed)
32144
32145 @@ -109,7 +111,8 @@ ENTRY(call_rwsem_wake)
32146 movq %rax,%rdi
32147 call rwsem_wake
32148 restore_common_regs
32149 -1: ret
32150 +1: pax_force_retaddr
32151 + ret
32152 ENDPROC(call_rwsem_wake)
32153
32154 ENTRY(call_rwsem_downgrade_wake)
32155 @@ -119,5 +122,6 @@ ENTRY(call_rwsem_downgrade_wake)
32156 call rwsem_downgrade_wake
32157 __ASM_SIZE(pop,) %__ASM_REG(dx)
32158 restore_common_regs
32159 + pax_force_retaddr
32160 ret
32161 ENDPROC(call_rwsem_downgrade_wake)
32162 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
32163 index 91d93b9..4b22130 100644
32164 --- a/arch/x86/lib/usercopy_32.c
32165 +++ b/arch/x86/lib/usercopy_32.c
32166 @@ -42,11 +42,13 @@ do { \
32167 int __d0; \
32168 might_fault(); \
32169 __asm__ __volatile__( \
32170 + __COPYUSER_SET_ES \
32171 ASM_STAC "\n" \
32172 "0: rep; stosl\n" \
32173 " movl %2,%0\n" \
32174 "1: rep; stosb\n" \
32175 "2: " ASM_CLAC "\n" \
32176 + __COPYUSER_RESTORE_ES \
32177 ".section .fixup,\"ax\"\n" \
32178 "3: lea 0(%2,%0,4),%0\n" \
32179 " jmp 2b\n" \
32180 @@ -98,7 +100,7 @@ EXPORT_SYMBOL(__clear_user);
32181
32182 #ifdef CONFIG_X86_INTEL_USERCOPY
32183 static unsigned long
32184 -__copy_user_intel(void __user *to, const void *from, unsigned long size)
32185 +__generic_copy_to_user_intel(void __user *to, const void *from, unsigned long size)
32186 {
32187 int d0, d1;
32188 __asm__ __volatile__(
32189 @@ -110,36 +112,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32190 " .align 2,0x90\n"
32191 "3: movl 0(%4), %%eax\n"
32192 "4: movl 4(%4), %%edx\n"
32193 - "5: movl %%eax, 0(%3)\n"
32194 - "6: movl %%edx, 4(%3)\n"
32195 + "5: "__copyuser_seg" movl %%eax, 0(%3)\n"
32196 + "6: "__copyuser_seg" movl %%edx, 4(%3)\n"
32197 "7: movl 8(%4), %%eax\n"
32198 "8: movl 12(%4),%%edx\n"
32199 - "9: movl %%eax, 8(%3)\n"
32200 - "10: movl %%edx, 12(%3)\n"
32201 + "9: "__copyuser_seg" movl %%eax, 8(%3)\n"
32202 + "10: "__copyuser_seg" movl %%edx, 12(%3)\n"
32203 "11: movl 16(%4), %%eax\n"
32204 "12: movl 20(%4), %%edx\n"
32205 - "13: movl %%eax, 16(%3)\n"
32206 - "14: movl %%edx, 20(%3)\n"
32207 + "13: "__copyuser_seg" movl %%eax, 16(%3)\n"
32208 + "14: "__copyuser_seg" movl %%edx, 20(%3)\n"
32209 "15: movl 24(%4), %%eax\n"
32210 "16: movl 28(%4), %%edx\n"
32211 - "17: movl %%eax, 24(%3)\n"
32212 - "18: movl %%edx, 28(%3)\n"
32213 + "17: "__copyuser_seg" movl %%eax, 24(%3)\n"
32214 + "18: "__copyuser_seg" movl %%edx, 28(%3)\n"
32215 "19: movl 32(%4), %%eax\n"
32216 "20: movl 36(%4), %%edx\n"
32217 - "21: movl %%eax, 32(%3)\n"
32218 - "22: movl %%edx, 36(%3)\n"
32219 + "21: "__copyuser_seg" movl %%eax, 32(%3)\n"
32220 + "22: "__copyuser_seg" movl %%edx, 36(%3)\n"
32221 "23: movl 40(%4), %%eax\n"
32222 "24: movl 44(%4), %%edx\n"
32223 - "25: movl %%eax, 40(%3)\n"
32224 - "26: movl %%edx, 44(%3)\n"
32225 + "25: "__copyuser_seg" movl %%eax, 40(%3)\n"
32226 + "26: "__copyuser_seg" movl %%edx, 44(%3)\n"
32227 "27: movl 48(%4), %%eax\n"
32228 "28: movl 52(%4), %%edx\n"
32229 - "29: movl %%eax, 48(%3)\n"
32230 - "30: movl %%edx, 52(%3)\n"
32231 + "29: "__copyuser_seg" movl %%eax, 48(%3)\n"
32232 + "30: "__copyuser_seg" movl %%edx, 52(%3)\n"
32233 "31: movl 56(%4), %%eax\n"
32234 "32: movl 60(%4), %%edx\n"
32235 - "33: movl %%eax, 56(%3)\n"
32236 - "34: movl %%edx, 60(%3)\n"
32237 + "33: "__copyuser_seg" movl %%eax, 56(%3)\n"
32238 + "34: "__copyuser_seg" movl %%edx, 60(%3)\n"
32239 " addl $-64, %0\n"
32240 " addl $64, %4\n"
32241 " addl $64, %3\n"
32242 @@ -149,10 +151,116 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32243 " shrl $2, %0\n"
32244 " andl $3, %%eax\n"
32245 " cld\n"
32246 + __COPYUSER_SET_ES
32247 "99: rep; movsl\n"
32248 "36: movl %%eax, %0\n"
32249 "37: rep; movsb\n"
32250 "100:\n"
32251 + __COPYUSER_RESTORE_ES
32252 + ".section .fixup,\"ax\"\n"
32253 + "101: lea 0(%%eax,%0,4),%0\n"
32254 + " jmp 100b\n"
32255 + ".previous\n"
32256 + _ASM_EXTABLE(1b,100b)
32257 + _ASM_EXTABLE(2b,100b)
32258 + _ASM_EXTABLE(3b,100b)
32259 + _ASM_EXTABLE(4b,100b)
32260 + _ASM_EXTABLE(5b,100b)
32261 + _ASM_EXTABLE(6b,100b)
32262 + _ASM_EXTABLE(7b,100b)
32263 + _ASM_EXTABLE(8b,100b)
32264 + _ASM_EXTABLE(9b,100b)
32265 + _ASM_EXTABLE(10b,100b)
32266 + _ASM_EXTABLE(11b,100b)
32267 + _ASM_EXTABLE(12b,100b)
32268 + _ASM_EXTABLE(13b,100b)
32269 + _ASM_EXTABLE(14b,100b)
32270 + _ASM_EXTABLE(15b,100b)
32271 + _ASM_EXTABLE(16b,100b)
32272 + _ASM_EXTABLE(17b,100b)
32273 + _ASM_EXTABLE(18b,100b)
32274 + _ASM_EXTABLE(19b,100b)
32275 + _ASM_EXTABLE(20b,100b)
32276 + _ASM_EXTABLE(21b,100b)
32277 + _ASM_EXTABLE(22b,100b)
32278 + _ASM_EXTABLE(23b,100b)
32279 + _ASM_EXTABLE(24b,100b)
32280 + _ASM_EXTABLE(25b,100b)
32281 + _ASM_EXTABLE(26b,100b)
32282 + _ASM_EXTABLE(27b,100b)
32283 + _ASM_EXTABLE(28b,100b)
32284 + _ASM_EXTABLE(29b,100b)
32285 + _ASM_EXTABLE(30b,100b)
32286 + _ASM_EXTABLE(31b,100b)
32287 + _ASM_EXTABLE(32b,100b)
32288 + _ASM_EXTABLE(33b,100b)
32289 + _ASM_EXTABLE(34b,100b)
32290 + _ASM_EXTABLE(35b,100b)
32291 + _ASM_EXTABLE(36b,100b)
32292 + _ASM_EXTABLE(37b,100b)
32293 + _ASM_EXTABLE(99b,101b)
32294 + : "=&c"(size), "=&D" (d0), "=&S" (d1)
32295 + : "1"(to), "2"(from), "0"(size)
32296 + : "eax", "edx", "memory");
32297 + return size;
32298 +}
32299 +
32300 +static unsigned long
32301 +__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
32302 +{
32303 + int d0, d1;
32304 + __asm__ __volatile__(
32305 + " .align 2,0x90\n"
32306 + "1: "__copyuser_seg" movl 32(%4), %%eax\n"
32307 + " cmpl $67, %0\n"
32308 + " jbe 3f\n"
32309 + "2: "__copyuser_seg" movl 64(%4), %%eax\n"
32310 + " .align 2,0x90\n"
32311 + "3: "__copyuser_seg" movl 0(%4), %%eax\n"
32312 + "4: "__copyuser_seg" movl 4(%4), %%edx\n"
32313 + "5: movl %%eax, 0(%3)\n"
32314 + "6: movl %%edx, 4(%3)\n"
32315 + "7: "__copyuser_seg" movl 8(%4), %%eax\n"
32316 + "8: "__copyuser_seg" movl 12(%4),%%edx\n"
32317 + "9: movl %%eax, 8(%3)\n"
32318 + "10: movl %%edx, 12(%3)\n"
32319 + "11: "__copyuser_seg" movl 16(%4), %%eax\n"
32320 + "12: "__copyuser_seg" movl 20(%4), %%edx\n"
32321 + "13: movl %%eax, 16(%3)\n"
32322 + "14: movl %%edx, 20(%3)\n"
32323 + "15: "__copyuser_seg" movl 24(%4), %%eax\n"
32324 + "16: "__copyuser_seg" movl 28(%4), %%edx\n"
32325 + "17: movl %%eax, 24(%3)\n"
32326 + "18: movl %%edx, 28(%3)\n"
32327 + "19: "__copyuser_seg" movl 32(%4), %%eax\n"
32328 + "20: "__copyuser_seg" movl 36(%4), %%edx\n"
32329 + "21: movl %%eax, 32(%3)\n"
32330 + "22: movl %%edx, 36(%3)\n"
32331 + "23: "__copyuser_seg" movl 40(%4), %%eax\n"
32332 + "24: "__copyuser_seg" movl 44(%4), %%edx\n"
32333 + "25: movl %%eax, 40(%3)\n"
32334 + "26: movl %%edx, 44(%3)\n"
32335 + "27: "__copyuser_seg" movl 48(%4), %%eax\n"
32336 + "28: "__copyuser_seg" movl 52(%4), %%edx\n"
32337 + "29: movl %%eax, 48(%3)\n"
32338 + "30: movl %%edx, 52(%3)\n"
32339 + "31: "__copyuser_seg" movl 56(%4), %%eax\n"
32340 + "32: "__copyuser_seg" movl 60(%4), %%edx\n"
32341 + "33: movl %%eax, 56(%3)\n"
32342 + "34: movl %%edx, 60(%3)\n"
32343 + " addl $-64, %0\n"
32344 + " addl $64, %4\n"
32345 + " addl $64, %3\n"
32346 + " cmpl $63, %0\n"
32347 + " ja 1b\n"
32348 + "35: movl %0, %%eax\n"
32349 + " shrl $2, %0\n"
32350 + " andl $3, %%eax\n"
32351 + " cld\n"
32352 + "99: rep; "__copyuser_seg" movsl\n"
32353 + "36: movl %%eax, %0\n"
32354 + "37: rep; "__copyuser_seg" movsb\n"
32355 + "100:\n"
32356 ".section .fixup,\"ax\"\n"
32357 "101: lea 0(%%eax,%0,4),%0\n"
32358 " jmp 100b\n"
32359 @@ -207,41 +315,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32360 int d0, d1;
32361 __asm__ __volatile__(
32362 " .align 2,0x90\n"
32363 - "0: movl 32(%4), %%eax\n"
32364 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32365 " cmpl $67, %0\n"
32366 " jbe 2f\n"
32367 - "1: movl 64(%4), %%eax\n"
32368 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32369 " .align 2,0x90\n"
32370 - "2: movl 0(%4), %%eax\n"
32371 - "21: movl 4(%4), %%edx\n"
32372 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32373 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32374 " movl %%eax, 0(%3)\n"
32375 " movl %%edx, 4(%3)\n"
32376 - "3: movl 8(%4), %%eax\n"
32377 - "31: movl 12(%4),%%edx\n"
32378 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32379 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32380 " movl %%eax, 8(%3)\n"
32381 " movl %%edx, 12(%3)\n"
32382 - "4: movl 16(%4), %%eax\n"
32383 - "41: movl 20(%4), %%edx\n"
32384 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32385 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32386 " movl %%eax, 16(%3)\n"
32387 " movl %%edx, 20(%3)\n"
32388 - "10: movl 24(%4), %%eax\n"
32389 - "51: movl 28(%4), %%edx\n"
32390 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32391 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32392 " movl %%eax, 24(%3)\n"
32393 " movl %%edx, 28(%3)\n"
32394 - "11: movl 32(%4), %%eax\n"
32395 - "61: movl 36(%4), %%edx\n"
32396 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32397 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32398 " movl %%eax, 32(%3)\n"
32399 " movl %%edx, 36(%3)\n"
32400 - "12: movl 40(%4), %%eax\n"
32401 - "71: movl 44(%4), %%edx\n"
32402 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32403 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32404 " movl %%eax, 40(%3)\n"
32405 " movl %%edx, 44(%3)\n"
32406 - "13: movl 48(%4), %%eax\n"
32407 - "81: movl 52(%4), %%edx\n"
32408 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32409 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32410 " movl %%eax, 48(%3)\n"
32411 " movl %%edx, 52(%3)\n"
32412 - "14: movl 56(%4), %%eax\n"
32413 - "91: movl 60(%4), %%edx\n"
32414 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32415 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32416 " movl %%eax, 56(%3)\n"
32417 " movl %%edx, 60(%3)\n"
32418 " addl $-64, %0\n"
32419 @@ -253,9 +361,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32420 " shrl $2, %0\n"
32421 " andl $3, %%eax\n"
32422 " cld\n"
32423 - "6: rep; movsl\n"
32424 + "6: rep; "__copyuser_seg" movsl\n"
32425 " movl %%eax,%0\n"
32426 - "7: rep; movsb\n"
32427 + "7: rep; "__copyuser_seg" movsb\n"
32428 "8:\n"
32429 ".section .fixup,\"ax\"\n"
32430 "9: lea 0(%%eax,%0,4),%0\n"
32431 @@ -305,41 +413,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32432
32433 __asm__ __volatile__(
32434 " .align 2,0x90\n"
32435 - "0: movl 32(%4), %%eax\n"
32436 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32437 " cmpl $67, %0\n"
32438 " jbe 2f\n"
32439 - "1: movl 64(%4), %%eax\n"
32440 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32441 " .align 2,0x90\n"
32442 - "2: movl 0(%4), %%eax\n"
32443 - "21: movl 4(%4), %%edx\n"
32444 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32445 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32446 " movnti %%eax, 0(%3)\n"
32447 " movnti %%edx, 4(%3)\n"
32448 - "3: movl 8(%4), %%eax\n"
32449 - "31: movl 12(%4),%%edx\n"
32450 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32451 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32452 " movnti %%eax, 8(%3)\n"
32453 " movnti %%edx, 12(%3)\n"
32454 - "4: movl 16(%4), %%eax\n"
32455 - "41: movl 20(%4), %%edx\n"
32456 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32457 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32458 " movnti %%eax, 16(%3)\n"
32459 " movnti %%edx, 20(%3)\n"
32460 - "10: movl 24(%4), %%eax\n"
32461 - "51: movl 28(%4), %%edx\n"
32462 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32463 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32464 " movnti %%eax, 24(%3)\n"
32465 " movnti %%edx, 28(%3)\n"
32466 - "11: movl 32(%4), %%eax\n"
32467 - "61: movl 36(%4), %%edx\n"
32468 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32469 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32470 " movnti %%eax, 32(%3)\n"
32471 " movnti %%edx, 36(%3)\n"
32472 - "12: movl 40(%4), %%eax\n"
32473 - "71: movl 44(%4), %%edx\n"
32474 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32475 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32476 " movnti %%eax, 40(%3)\n"
32477 " movnti %%edx, 44(%3)\n"
32478 - "13: movl 48(%4), %%eax\n"
32479 - "81: movl 52(%4), %%edx\n"
32480 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32481 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32482 " movnti %%eax, 48(%3)\n"
32483 " movnti %%edx, 52(%3)\n"
32484 - "14: movl 56(%4), %%eax\n"
32485 - "91: movl 60(%4), %%edx\n"
32486 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32487 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32488 " movnti %%eax, 56(%3)\n"
32489 " movnti %%edx, 60(%3)\n"
32490 " addl $-64, %0\n"
32491 @@ -352,9 +460,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32492 " shrl $2, %0\n"
32493 " andl $3, %%eax\n"
32494 " cld\n"
32495 - "6: rep; movsl\n"
32496 + "6: rep; "__copyuser_seg" movsl\n"
32497 " movl %%eax,%0\n"
32498 - "7: rep; movsb\n"
32499 + "7: rep; "__copyuser_seg" movsb\n"
32500 "8:\n"
32501 ".section .fixup,\"ax\"\n"
32502 "9: lea 0(%%eax,%0,4),%0\n"
32503 @@ -399,41 +507,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
32504
32505 __asm__ __volatile__(
32506 " .align 2,0x90\n"
32507 - "0: movl 32(%4), %%eax\n"
32508 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32509 " cmpl $67, %0\n"
32510 " jbe 2f\n"
32511 - "1: movl 64(%4), %%eax\n"
32512 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32513 " .align 2,0x90\n"
32514 - "2: movl 0(%4), %%eax\n"
32515 - "21: movl 4(%4), %%edx\n"
32516 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32517 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32518 " movnti %%eax, 0(%3)\n"
32519 " movnti %%edx, 4(%3)\n"
32520 - "3: movl 8(%4), %%eax\n"
32521 - "31: movl 12(%4),%%edx\n"
32522 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32523 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32524 " movnti %%eax, 8(%3)\n"
32525 " movnti %%edx, 12(%3)\n"
32526 - "4: movl 16(%4), %%eax\n"
32527 - "41: movl 20(%4), %%edx\n"
32528 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32529 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32530 " movnti %%eax, 16(%3)\n"
32531 " movnti %%edx, 20(%3)\n"
32532 - "10: movl 24(%4), %%eax\n"
32533 - "51: movl 28(%4), %%edx\n"
32534 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32535 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32536 " movnti %%eax, 24(%3)\n"
32537 " movnti %%edx, 28(%3)\n"
32538 - "11: movl 32(%4), %%eax\n"
32539 - "61: movl 36(%4), %%edx\n"
32540 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32541 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32542 " movnti %%eax, 32(%3)\n"
32543 " movnti %%edx, 36(%3)\n"
32544 - "12: movl 40(%4), %%eax\n"
32545 - "71: movl 44(%4), %%edx\n"
32546 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32547 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32548 " movnti %%eax, 40(%3)\n"
32549 " movnti %%edx, 44(%3)\n"
32550 - "13: movl 48(%4), %%eax\n"
32551 - "81: movl 52(%4), %%edx\n"
32552 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32553 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32554 " movnti %%eax, 48(%3)\n"
32555 " movnti %%edx, 52(%3)\n"
32556 - "14: movl 56(%4), %%eax\n"
32557 - "91: movl 60(%4), %%edx\n"
32558 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32559 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32560 " movnti %%eax, 56(%3)\n"
32561 " movnti %%edx, 60(%3)\n"
32562 " addl $-64, %0\n"
32563 @@ -446,9 +554,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
32564 " shrl $2, %0\n"
32565 " andl $3, %%eax\n"
32566 " cld\n"
32567 - "6: rep; movsl\n"
32568 + "6: rep; "__copyuser_seg" movsl\n"
32569 " movl %%eax,%0\n"
32570 - "7: rep; movsb\n"
32571 + "7: rep; "__copyuser_seg" movsb\n"
32572 "8:\n"
32573 ".section .fixup,\"ax\"\n"
32574 "9: lea 0(%%eax,%0,4),%0\n"
32575 @@ -488,32 +596,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
32576 */
32577 unsigned long __copy_user_zeroing_intel(void *to, const void __user *from,
32578 unsigned long size);
32579 -unsigned long __copy_user_intel(void __user *to, const void *from,
32580 +unsigned long __generic_copy_to_user_intel(void __user *to, const void *from,
32581 + unsigned long size);
32582 +unsigned long __generic_copy_from_user_intel(void *to, const void __user *from,
32583 unsigned long size);
32584 unsigned long __copy_user_zeroing_intel_nocache(void *to,
32585 const void __user *from, unsigned long size);
32586 #endif /* CONFIG_X86_INTEL_USERCOPY */
32587
32588 /* Generic arbitrary sized copy. */
32589 -#define __copy_user(to, from, size) \
32590 +#define __copy_user(to, from, size, prefix, set, restore) \
32591 do { \
32592 int __d0, __d1, __d2; \
32593 __asm__ __volatile__( \
32594 + set \
32595 " cmp $7,%0\n" \
32596 " jbe 1f\n" \
32597 " movl %1,%0\n" \
32598 " negl %0\n" \
32599 " andl $7,%0\n" \
32600 " subl %0,%3\n" \
32601 - "4: rep; movsb\n" \
32602 + "4: rep; "prefix"movsb\n" \
32603 " movl %3,%0\n" \
32604 " shrl $2,%0\n" \
32605 " andl $3,%3\n" \
32606 " .align 2,0x90\n" \
32607 - "0: rep; movsl\n" \
32608 + "0: rep; "prefix"movsl\n" \
32609 " movl %3,%0\n" \
32610 - "1: rep; movsb\n" \
32611 + "1: rep; "prefix"movsb\n" \
32612 "2:\n" \
32613 + restore \
32614 ".section .fixup,\"ax\"\n" \
32615 "5: addl %3,%0\n" \
32616 " jmp 2b\n" \
32617 @@ -538,14 +650,14 @@ do { \
32618 " negl %0\n" \
32619 " andl $7,%0\n" \
32620 " subl %0,%3\n" \
32621 - "4: rep; movsb\n" \
32622 + "4: rep; "__copyuser_seg"movsb\n" \
32623 " movl %3,%0\n" \
32624 " shrl $2,%0\n" \
32625 " andl $3,%3\n" \
32626 " .align 2,0x90\n" \
32627 - "0: rep; movsl\n" \
32628 + "0: rep; "__copyuser_seg"movsl\n" \
32629 " movl %3,%0\n" \
32630 - "1: rep; movsb\n" \
32631 + "1: rep; "__copyuser_seg"movsb\n" \
32632 "2:\n" \
32633 ".section .fixup,\"ax\"\n" \
32634 "5: addl %3,%0\n" \
32635 @@ -572,9 +684,9 @@ unsigned long __copy_to_user_ll(void __user *to, const void *from,
32636 {
32637 stac();
32638 if (movsl_is_ok(to, from, n))
32639 - __copy_user(to, from, n);
32640 + __copy_user(to, from, n, "", __COPYUSER_SET_ES, __COPYUSER_RESTORE_ES);
32641 else
32642 - n = __copy_user_intel(to, from, n);
32643 + n = __generic_copy_to_user_intel(to, from, n);
32644 clac();
32645 return n;
32646 }
32647 @@ -598,10 +710,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
32648 {
32649 stac();
32650 if (movsl_is_ok(to, from, n))
32651 - __copy_user(to, from, n);
32652 + __copy_user(to, from, n, __copyuser_seg, "", "");
32653 else
32654 - n = __copy_user_intel((void __user *)to,
32655 - (const void *)from, n);
32656 + n = __generic_copy_from_user_intel(to, from, n);
32657 clac();
32658 return n;
32659 }
32660 @@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
32661 if (n > 64 && cpu_has_xmm2)
32662 n = __copy_user_intel_nocache(to, from, n);
32663 else
32664 - __copy_user(to, from, n);
32665 + __copy_user(to, from, n, __copyuser_seg, "", "");
32666 #else
32667 - __copy_user(to, from, n);
32668 + __copy_user(to, from, n, __copyuser_seg, "", "");
32669 #endif
32670 clac();
32671 return n;
32672 }
32673 EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero);
32674
32675 -/**
32676 - * copy_to_user: - Copy a block of data into user space.
32677 - * @to: Destination address, in user space.
32678 - * @from: Source address, in kernel space.
32679 - * @n: Number of bytes to copy.
32680 - *
32681 - * Context: User context only. This function may sleep if pagefaults are
32682 - * enabled.
32683 - *
32684 - * Copy data from kernel space to user space.
32685 - *
32686 - * Returns number of bytes that could not be copied.
32687 - * On success, this will be zero.
32688 - */
32689 -unsigned long _copy_to_user(void __user *to, const void *from, unsigned n)
32690 +#ifdef CONFIG_PAX_MEMORY_UDEREF
32691 +void __set_fs(mm_segment_t x)
32692 {
32693 - if (access_ok(VERIFY_WRITE, to, n))
32694 - n = __copy_to_user(to, from, n);
32695 - return n;
32696 + switch (x.seg) {
32697 + case 0:
32698 + loadsegment(gs, 0);
32699 + break;
32700 + case TASK_SIZE_MAX:
32701 + loadsegment(gs, __USER_DS);
32702 + break;
32703 + case -1UL:
32704 + loadsegment(gs, __KERNEL_DS);
32705 + break;
32706 + default:
32707 + BUG();
32708 + }
32709 }
32710 -EXPORT_SYMBOL(_copy_to_user);
32711 +EXPORT_SYMBOL(__set_fs);
32712
32713 -/**
32714 - * copy_from_user: - Copy a block of data from user space.
32715 - * @to: Destination address, in kernel space.
32716 - * @from: Source address, in user space.
32717 - * @n: Number of bytes to copy.
32718 - *
32719 - * Context: User context only. This function may sleep if pagefaults are
32720 - * enabled.
32721 - *
32722 - * Copy data from user space to kernel space.
32723 - *
32724 - * Returns number of bytes that could not be copied.
32725 - * On success, this will be zero.
32726 - *
32727 - * If some data could not be copied, this function will pad the copied
32728 - * data to the requested size using zero bytes.
32729 - */
32730 -unsigned long _copy_from_user(void *to, const void __user *from, unsigned n)
32731 +void set_fs(mm_segment_t x)
32732 {
32733 - if (access_ok(VERIFY_READ, from, n))
32734 - n = __copy_from_user(to, from, n);
32735 - else
32736 - memset(to, 0, n);
32737 - return n;
32738 + current_thread_info()->addr_limit = x;
32739 + __set_fs(x);
32740 }
32741 -EXPORT_SYMBOL(_copy_from_user);
32742 +EXPORT_SYMBOL(set_fs);
32743 +#endif
32744 diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
32745 index 0a42327..45c0063 100644
32746 --- a/arch/x86/lib/usercopy_64.c
32747 +++ b/arch/x86/lib/usercopy_64.c
32748 @@ -18,6 +18,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32749 might_fault();
32750 /* no memory constraint because it doesn't change any memory gcc knows
32751 about */
32752 + pax_open_userland();
32753 stac();
32754 asm volatile(
32755 " testq %[size8],%[size8]\n"
32756 @@ -39,9 +40,10 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32757 _ASM_EXTABLE(0b,3b)
32758 _ASM_EXTABLE(1b,2b)
32759 : [size8] "=&c"(size), [dst] "=&D" (__d0)
32760 - : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
32761 + : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(____m(addr)),
32762 [zero] "r" (0UL), [eight] "r" (8UL));
32763 clac();
32764 + pax_close_userland();
32765 return size;
32766 }
32767 EXPORT_SYMBOL(__clear_user);
32768 @@ -54,12 +56,11 @@ unsigned long clear_user(void __user *to, unsigned long n)
32769 }
32770 EXPORT_SYMBOL(clear_user);
32771
32772 -unsigned long copy_in_user(void __user *to, const void __user *from, unsigned len)
32773 +unsigned long copy_in_user(void __user *to, const void __user *from, unsigned long len)
32774 {
32775 - if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len)) {
32776 - return copy_user_generic((__force void *)to, (__force void *)from, len);
32777 - }
32778 - return len;
32779 + if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len))
32780 + return copy_user_generic((void __force_kernel *)____m(to), (void __force_kernel *)____m(from), len);
32781 + return len;
32782 }
32783 EXPORT_SYMBOL(copy_in_user);
32784
32785 @@ -69,8 +70,10 @@ EXPORT_SYMBOL(copy_in_user);
32786 * it is not necessary to optimize tail handling.
32787 */
32788 __visible unsigned long
32789 -copy_user_handle_tail(char *to, char *from, unsigned len)
32790 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len)
32791 {
32792 + clac();
32793 + pax_close_userland();
32794 for (; len; --len, to++) {
32795 char c;
32796
32797 @@ -79,10 +82,9 @@ copy_user_handle_tail(char *to, char *from, unsigned len)
32798 if (__put_user_nocheck(c, to, sizeof(char)))
32799 break;
32800 }
32801 - clac();
32802
32803 /* If the destination is a kernel buffer, we always clear the end */
32804 - if (!__addr_ok(to))
32805 - memset(to, 0, len);
32806 + if (!__addr_ok(to) && (unsigned long)to >= TASK_SIZE_MAX + pax_user_shadow_base)
32807 + memset((void __force_kernel *)to, 0, len);
32808 return len;
32809 }
32810 diff --git a/arch/x86/math-emu/fpu_aux.c b/arch/x86/math-emu/fpu_aux.c
32811 index dd76a05..df65688 100644
32812 --- a/arch/x86/math-emu/fpu_aux.c
32813 +++ b/arch/x86/math-emu/fpu_aux.c
32814 @@ -52,7 +52,7 @@ void fpstate_init_soft(struct swregs_state *soft)
32815
32816 void finit(void)
32817 {
32818 - fpstate_init_soft(&current->thread.fpu.state.soft);
32819 + fpstate_init_soft(&current->thread.fpu.state->soft);
32820 }
32821
32822 /*
32823 diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
32824 index 3d8f2e4..ef7cf4e 100644
32825 --- a/arch/x86/math-emu/fpu_entry.c
32826 +++ b/arch/x86/math-emu/fpu_entry.c
32827 @@ -677,7 +677,7 @@ int fpregs_soft_set(struct task_struct *target,
32828 unsigned int pos, unsigned int count,
32829 const void *kbuf, const void __user *ubuf)
32830 {
32831 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32832 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32833 void *space = s387->st_space;
32834 int ret;
32835 int offset, other, i, tags, regnr, tag, newtop;
32836 @@ -729,7 +729,7 @@ int fpregs_soft_get(struct task_struct *target,
32837 unsigned int pos, unsigned int count,
32838 void *kbuf, void __user *ubuf)
32839 {
32840 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32841 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32842 const void *space = s387->st_space;
32843 int ret;
32844 int offset = (S387->ftop & 7) * 10, other = 80 - offset;
32845 diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
32846 index 5e044d5..d342fce 100644
32847 --- a/arch/x86/math-emu/fpu_system.h
32848 +++ b/arch/x86/math-emu/fpu_system.h
32849 @@ -46,7 +46,7 @@ static inline struct desc_struct FPU_get_ldt_descriptor(unsigned seg)
32850 #define SEG_EXPAND_DOWN(s) (((s).b & ((1 << 11) | (1 << 10))) \
32851 == (1 << 10))
32852
32853 -#define I387 (&current->thread.fpu.state)
32854 +#define I387 (current->thread.fpu.state)
32855 #define FPU_info (I387->soft.info)
32856
32857 #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
32858 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
32859 index a482d10..1a6edb5 100644
32860 --- a/arch/x86/mm/Makefile
32861 +++ b/arch/x86/mm/Makefile
32862 @@ -33,3 +33,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
32863 obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
32864
32865 obj-$(CONFIG_X86_INTEL_MPX) += mpx.o
32866 +
32867 +quote:="
32868 +obj-$(CONFIG_X86_64) += uderef_64.o
32869 +CFLAGS_uderef_64.o := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) -fcall-saved-rax
32870 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
32871 index 903ec1e..41b4708 100644
32872 --- a/arch/x86/mm/extable.c
32873 +++ b/arch/x86/mm/extable.c
32874 @@ -2,16 +2,29 @@
32875 #include <linux/spinlock.h>
32876 #include <linux/sort.h>
32877 #include <asm/uaccess.h>
32878 +#include <asm/boot.h>
32879
32880 static inline unsigned long
32881 ex_insn_addr(const struct exception_table_entry *x)
32882 {
32883 - return (unsigned long)&x->insn + x->insn;
32884 + unsigned long reloc = 0;
32885 +
32886 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32887 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32888 +#endif
32889 +
32890 + return (unsigned long)&x->insn + x->insn + reloc;
32891 }
32892 static inline unsigned long
32893 ex_fixup_addr(const struct exception_table_entry *x)
32894 {
32895 - return (unsigned long)&x->fixup + x->fixup;
32896 + unsigned long reloc = 0;
32897 +
32898 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32899 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32900 +#endif
32901 +
32902 + return (unsigned long)&x->fixup + x->fixup + reloc;
32903 }
32904
32905 int fixup_exception(struct pt_regs *regs)
32906 @@ -20,7 +33,7 @@ int fixup_exception(struct pt_regs *regs)
32907 unsigned long new_ip;
32908
32909 #ifdef CONFIG_PNPBIOS
32910 - if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
32911 + if (unlikely(!v8086_mode(regs) && SEGMENT_IS_PNP_CODE(regs->cs))) {
32912 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
32913 extern u32 pnp_bios_is_utter_crap;
32914 pnp_bios_is_utter_crap = 1;
32915 @@ -145,6 +158,13 @@ void sort_extable(struct exception_table_entry *start,
32916 i += 4;
32917 p->fixup -= i;
32918 i += 4;
32919 +
32920 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32921 + BUILD_BUG_ON(!IS_ENABLED(CONFIG_BUILDTIME_EXTABLE_SORT));
32922 + p->insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32923 + p->fixup -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32924 +#endif
32925 +
32926 }
32927 }
32928
32929 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
32930 index eef44d9..79b0e58 100644
32931 --- a/arch/x86/mm/fault.c
32932 +++ b/arch/x86/mm/fault.c
32933 @@ -14,6 +14,8 @@
32934 #include <linux/prefetch.h> /* prefetchw */
32935 #include <linux/context_tracking.h> /* exception_enter(), ... */
32936 #include <linux/uaccess.h> /* faulthandler_disabled() */
32937 +#include <linux/unistd.h>
32938 +#include <linux/compiler.h>
32939
32940 #include <asm/traps.h> /* dotraplinkage, ... */
32941 #include <asm/pgalloc.h> /* pgd_*(), ... */
32942 @@ -21,6 +23,11 @@
32943 #include <asm/fixmap.h> /* VSYSCALL_ADDR */
32944 #include <asm/vsyscall.h> /* emulate_vsyscall */
32945 #include <asm/vm86.h> /* struct vm86 */
32946 +#include <asm/tlbflush.h>
32947 +
32948 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32949 +#include <asm/stacktrace.h>
32950 +#endif
32951
32952 #define CREATE_TRACE_POINTS
32953 #include <asm/trace/exceptions.h>
32954 @@ -122,7 +129,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
32955 return !instr_lo || (instr_lo>>1) == 1;
32956 case 0x00:
32957 /* Prefetch instruction is 0x0F0D or 0x0F18 */
32958 - if (probe_kernel_address(instr, opcode))
32959 + if (user_mode(regs)) {
32960 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
32961 + return 0;
32962 + } else if (probe_kernel_address(instr, opcode))
32963 return 0;
32964
32965 *prefetch = (instr_lo == 0xF) &&
32966 @@ -156,7 +166,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
32967 while (instr < max_instr) {
32968 unsigned char opcode;
32969
32970 - if (probe_kernel_address(instr, opcode))
32971 + if (user_mode(regs)) {
32972 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
32973 + break;
32974 + } else if (probe_kernel_address(instr, opcode))
32975 break;
32976
32977 instr++;
32978 @@ -187,6 +200,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
32979 force_sig_info(si_signo, &info, tsk);
32980 }
32981
32982 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
32983 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
32984 +#endif
32985 +
32986 +#ifdef CONFIG_PAX_EMUTRAMP
32987 +static int pax_handle_fetch_fault(struct pt_regs *regs);
32988 +#endif
32989 +
32990 +#ifdef CONFIG_PAX_PAGEEXEC
32991 +static inline pmd_t * pax_get_pmd(struct mm_struct *mm, unsigned long address)
32992 +{
32993 + pgd_t *pgd;
32994 + pud_t *pud;
32995 + pmd_t *pmd;
32996 +
32997 + pgd = pgd_offset(mm, address);
32998 + if (!pgd_present(*pgd))
32999 + return NULL;
33000 + pud = pud_offset(pgd, address);
33001 + if (!pud_present(*pud))
33002 + return NULL;
33003 + pmd = pmd_offset(pud, address);
33004 + if (!pmd_present(*pmd))
33005 + return NULL;
33006 + return pmd;
33007 +}
33008 +#endif
33009 +
33010 DEFINE_SPINLOCK(pgd_lock);
33011 LIST_HEAD(pgd_list);
33012
33013 @@ -237,10 +278,27 @@ void vmalloc_sync_all(void)
33014 for (address = VMALLOC_START & PMD_MASK;
33015 address >= TASK_SIZE && address < FIXADDR_TOP;
33016 address += PMD_SIZE) {
33017 +
33018 +#ifdef CONFIG_PAX_PER_CPU_PGD
33019 + unsigned long cpu;
33020 +#else
33021 struct page *page;
33022 +#endif
33023
33024 spin_lock(&pgd_lock);
33025 +
33026 +#ifdef CONFIG_PAX_PER_CPU_PGD
33027 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
33028 + pgd_t *pgd = get_cpu_pgd(cpu, user);
33029 + pmd_t *ret;
33030 +
33031 + ret = vmalloc_sync_one(pgd, address);
33032 + if (!ret)
33033 + break;
33034 + pgd = get_cpu_pgd(cpu, kernel);
33035 +#else
33036 list_for_each_entry(page, &pgd_list, lru) {
33037 + pgd_t *pgd;
33038 spinlock_t *pgt_lock;
33039 pmd_t *ret;
33040
33041 @@ -248,8 +306,14 @@ void vmalloc_sync_all(void)
33042 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
33043
33044 spin_lock(pgt_lock);
33045 - ret = vmalloc_sync_one(page_address(page), address);
33046 + pgd = page_address(page);
33047 +#endif
33048 +
33049 + ret = vmalloc_sync_one(pgd, address);
33050 +
33051 +#ifndef CONFIG_PAX_PER_CPU_PGD
33052 spin_unlock(pgt_lock);
33053 +#endif
33054
33055 if (!ret)
33056 break;
33057 @@ -283,6 +347,12 @@ static noinline int vmalloc_fault(unsigned long address)
33058 * an interrupt in the middle of a task switch..
33059 */
33060 pgd_paddr = read_cr3();
33061 +
33062 +#ifdef CONFIG_PAX_PER_CPU_PGD
33063 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (pgd_paddr & __PHYSICAL_MASK));
33064 + vmalloc_sync_one(__va(pgd_paddr + PAGE_SIZE), address);
33065 +#endif
33066 +
33067 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
33068 if (!pmd_k)
33069 return -1;
33070 @@ -381,11 +451,25 @@ static noinline int vmalloc_fault(unsigned long address)
33071 * happen within a race in page table update. In the later
33072 * case just flush:
33073 */
33074 - pgd = pgd_offset(current->active_mm, address);
33075 +
33076 pgd_ref = pgd_offset_k(address);
33077 if (pgd_none(*pgd_ref))
33078 return -1;
33079
33080 +#ifdef CONFIG_PAX_PER_CPU_PGD
33081 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (read_cr3() & __PHYSICAL_MASK));
33082 + pgd = pgd_offset_cpu(smp_processor_id(), user, address);
33083 + if (pgd_none(*pgd)) {
33084 + set_pgd(pgd, *pgd_ref);
33085 + arch_flush_lazy_mmu_mode();
33086 + } else {
33087 + BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
33088 + }
33089 + pgd = pgd_offset_cpu(smp_processor_id(), kernel, address);
33090 +#else
33091 + pgd = pgd_offset(current->active_mm, address);
33092 +#endif
33093 +
33094 if (pgd_none(*pgd)) {
33095 set_pgd(pgd, *pgd_ref);
33096 arch_flush_lazy_mmu_mode();
33097 @@ -552,7 +636,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
33098 static int is_errata100(struct pt_regs *regs, unsigned long address)
33099 {
33100 #ifdef CONFIG_X86_64
33101 - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
33102 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && (address >> 32))
33103 return 1;
33104 #endif
33105 return 0;
33106 @@ -579,9 +663,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
33107 }
33108
33109 static const char nx_warning[] = KERN_CRIT
33110 -"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
33111 +"kernel tried to execute NX-protected page - exploit attempt? (uid: %d, task: %s, pid: %d)\n";
33112 static const char smep_warning[] = KERN_CRIT
33113 -"unable to execute userspace code (SMEP?) (uid: %d)\n";
33114 +"unable to execute userspace code (SMEP?) (uid: %d, task: %s, pid: %d)\n";
33115
33116 static void
33117 show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33118 @@ -590,7 +674,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33119 if (!oops_may_print())
33120 return;
33121
33122 - if (error_code & PF_INSTR) {
33123 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR)) {
33124 unsigned int level;
33125 pgd_t *pgd;
33126 pte_t *pte;
33127 @@ -601,13 +685,25 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33128 pte = lookup_address_in_pgd(pgd, address, &level);
33129
33130 if (pte && pte_present(*pte) && !pte_exec(*pte))
33131 - printk(nx_warning, from_kuid(&init_user_ns, current_uid()));
33132 + printk(nx_warning, from_kuid_munged(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33133 if (pte && pte_present(*pte) && pte_exec(*pte) &&
33134 (pgd_flags(*pgd) & _PAGE_USER) &&
33135 (__read_cr4() & X86_CR4_SMEP))
33136 - printk(smep_warning, from_kuid(&init_user_ns, current_uid()));
33137 + printk(smep_warning, from_kuid(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33138 }
33139
33140 +#ifdef CONFIG_PAX_KERNEXEC
33141 + if (init_mm.start_code <= address && address < init_mm.end_code) {
33142 + if (current->signal->curr_ip)
33143 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
33144 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
33145 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33146 + else
33147 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
33148 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33149 + }
33150 +#endif
33151 +
33152 printk(KERN_ALERT "BUG: unable to handle kernel ");
33153 if (address < PAGE_SIZE)
33154 printk(KERN_CONT "NULL pointer dereference");
33155 @@ -786,6 +882,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
33156 return;
33157 }
33158 #endif
33159 +
33160 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33161 + if (pax_is_fetch_fault(regs, error_code, address)) {
33162 +
33163 +#ifdef CONFIG_PAX_EMUTRAMP
33164 + switch (pax_handle_fetch_fault(regs)) {
33165 + case 2:
33166 + return;
33167 + }
33168 +#endif
33169 +
33170 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33171 + do_group_exit(SIGKILL);
33172 + }
33173 +#endif
33174 +
33175 /* Kernel addresses are always protection faults: */
33176 if (address >= TASK_SIZE)
33177 error_code |= PF_PROT;
33178 @@ -868,7 +980,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
33179 if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
33180 printk(KERN_ERR
33181 "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
33182 - tsk->comm, tsk->pid, address);
33183 + tsk->comm, task_pid_nr(tsk), address);
33184 code = BUS_MCEERR_AR;
33185 }
33186 #endif
33187 @@ -920,6 +1032,107 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
33188 return 1;
33189 }
33190
33191 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33192 +static inline unsigned long get_limit(unsigned long segment)
33193 +{
33194 + unsigned long __limit;
33195 +
33196 + asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
33197 + return __limit + 1;
33198 +}
33199 +
33200 +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code)
33201 +{
33202 + pte_t *pte;
33203 + pmd_t *pmd;
33204 + spinlock_t *ptl;
33205 + unsigned char pte_mask;
33206 +
33207 + if ((__supported_pte_mask & _PAGE_NX) || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) ||
33208 + !(mm->pax_flags & MF_PAX_PAGEEXEC))
33209 + return 0;
33210 +
33211 + /* PaX: it's our fault, let's handle it if we can */
33212 +
33213 + /* PaX: take a look at read faults before acquiring any locks */
33214 + if (unlikely(!(error_code & PF_WRITE) && (regs->ip == address))) {
33215 + /* instruction fetch attempt from a protected page in user mode */
33216 + up_read(&mm->mmap_sem);
33217 +
33218 +#ifdef CONFIG_PAX_EMUTRAMP
33219 + switch (pax_handle_fetch_fault(regs)) {
33220 + case 2:
33221 + return 1;
33222 + }
33223 +#endif
33224 +
33225 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33226 + do_group_exit(SIGKILL);
33227 + }
33228 +
33229 + pmd = pax_get_pmd(mm, address);
33230 + if (unlikely(!pmd))
33231 + return 0;
33232 +
33233 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
33234 + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) {
33235 + pte_unmap_unlock(pte, ptl);
33236 + return 0;
33237 + }
33238 +
33239 + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) {
33240 + /* write attempt to a protected page in user mode */
33241 + pte_unmap_unlock(pte, ptl);
33242 + return 0;
33243 + }
33244 +
33245 +#ifdef CONFIG_SMP
33246 + if (likely(address > get_limit(regs->cs) && cpumask_test_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask)))
33247 +#else
33248 + if (likely(address > get_limit(regs->cs)))
33249 +#endif
33250 + {
33251 + set_pte(pte, pte_mkread(*pte));
33252 + __flush_tlb_one(address);
33253 + pte_unmap_unlock(pte, ptl);
33254 + up_read(&mm->mmap_sem);
33255 + return 1;
33256 + }
33257 +
33258 + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1));
33259 +
33260 + /*
33261 + * PaX: fill DTLB with user rights and retry
33262 + */
33263 + __asm__ __volatile__ (
33264 + "orb %2,(%1)\n"
33265 +#if defined(CONFIG_M586) || defined(CONFIG_M586TSC)
33266 +/*
33267 + * PaX: let this uncommented 'invlpg' remind us on the behaviour of Intel's
33268 + * (and AMD's) TLBs. namely, they do not cache PTEs that would raise *any*
33269 + * page fault when examined during a TLB load attempt. this is true not only
33270 + * for PTEs holding a non-present entry but also present entries that will
33271 + * raise a page fault (such as those set up by PaX, or the copy-on-write
33272 + * mechanism). in effect it means that we do *not* need to flush the TLBs
33273 + * for our target pages since their PTEs are simply not in the TLBs at all.
33274 +
33275 + * the best thing in omitting it is that we gain around 15-20% speed in the
33276 + * fast path of the page fault handler and can get rid of tracing since we
33277 + * can no longer flush unintended entries.
33278 + */
33279 + "invlpg (%0)\n"
33280 +#endif
33281 + __copyuser_seg"testb $0,(%0)\n"
33282 + "xorb %3,(%1)\n"
33283 + :
33284 + : "r" (address), "r" (pte), "q" (pte_mask), "i" (_PAGE_USER)
33285 + : "memory", "cc");
33286 + pte_unmap_unlock(pte, ptl);
33287 + up_read(&mm->mmap_sem);
33288 + return 1;
33289 +}
33290 +#endif
33291 +
33292 /*
33293 * Handle a spurious fault caused by a stale TLB entry.
33294 *
33295 @@ -1005,6 +1218,9 @@ int show_unhandled_signals = 1;
33296 static inline int
33297 access_error(unsigned long error_code, struct vm_area_struct *vma)
33298 {
33299 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC))
33300 + return 1;
33301 +
33302 if (error_code & PF_WRITE) {
33303 /* write, present and write, not present: */
33304 if (unlikely(!(vma->vm_flags & VM_WRITE)))
33305 @@ -1067,6 +1283,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
33306 tsk = current;
33307 mm = tsk->mm;
33308
33309 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33310 + if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
33311 + if (!search_exception_tables(regs->ip)) {
33312 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33313 + bad_area_nosemaphore(regs, error_code, address);
33314 + return;
33315 + }
33316 + if (address < pax_user_shadow_base) {
33317 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33318 + printk(KERN_EMERG "PAX: faulting IP: %pS\n", (void *)regs->ip);
33319 + show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_EMERG);
33320 + } else
33321 + address -= pax_user_shadow_base;
33322 + }
33323 +#endif
33324 +
33325 /*
33326 * Detect and handle instructions that would cause a page fault for
33327 * both a tracked kernel page and a userspace page.
33328 @@ -1191,6 +1423,11 @@ retry:
33329 might_sleep();
33330 }
33331
33332 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33333 + if (pax_handle_pageexec_fault(regs, mm, address, error_code))
33334 + return;
33335 +#endif
33336 +
33337 vma = find_vma(mm, address);
33338 if (unlikely(!vma)) {
33339 bad_area(regs, error_code, address);
33340 @@ -1202,18 +1439,24 @@ retry:
33341 bad_area(regs, error_code, address);
33342 return;
33343 }
33344 - if (error_code & PF_USER) {
33345 - /*
33346 - * Accessing the stack below %sp is always a bug.
33347 - * The large cushion allows instructions like enter
33348 - * and pusha to work. ("enter $65535, $31" pushes
33349 - * 32 pointers and then decrements %sp by 65535.)
33350 - */
33351 - if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
33352 - bad_area(regs, error_code, address);
33353 - return;
33354 - }
33355 + /*
33356 + * Accessing the stack below %sp is always a bug.
33357 + * The large cushion allows instructions like enter
33358 + * and pusha to work. ("enter $65535, $31" pushes
33359 + * 32 pointers and then decrements %sp by 65535.)
33360 + */
33361 + if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp)) {
33362 + bad_area(regs, error_code, address);
33363 + return;
33364 }
33365 +
33366 +#ifdef CONFIG_PAX_SEGMEXEC
33367 + if (unlikely((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1)) {
33368 + bad_area(regs, error_code, address);
33369 + return;
33370 + }
33371 +#endif
33372 +
33373 if (unlikely(expand_stack(vma, address))) {
33374 bad_area(regs, error_code, address);
33375 return;
33376 @@ -1333,3 +1576,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
33377 }
33378 NOKPROBE_SYMBOL(trace_do_page_fault);
33379 #endif /* CONFIG_TRACING */
33380 +
33381 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33382 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
33383 +{
33384 + struct mm_struct *mm = current->mm;
33385 + unsigned long ip = regs->ip;
33386 +
33387 + if (v8086_mode(regs))
33388 + ip = ((regs->cs & 0xffff) << 4) + (ip & 0xffff);
33389 +
33390 +#ifdef CONFIG_PAX_PAGEEXEC
33391 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
33392 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR))
33393 + return true;
33394 + if (!(error_code & (PF_PROT | PF_WRITE)) && ip == address)
33395 + return true;
33396 + return false;
33397 + }
33398 +#endif
33399 +
33400 +#ifdef CONFIG_PAX_SEGMEXEC
33401 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
33402 + if (!(error_code & (PF_PROT | PF_WRITE)) && (ip + SEGMEXEC_TASK_SIZE == address))
33403 + return true;
33404 + return false;
33405 + }
33406 +#endif
33407 +
33408 + return false;
33409 +}
33410 +#endif
33411 +
33412 +#ifdef CONFIG_PAX_EMUTRAMP
33413 +static int pax_handle_fetch_fault_32(struct pt_regs *regs)
33414 +{
33415 + int err;
33416 +
33417 + do { /* PaX: libffi trampoline emulation */
33418 + unsigned char mov, jmp;
33419 + unsigned int addr1, addr2;
33420 +
33421 +#ifdef CONFIG_X86_64
33422 + if ((regs->ip + 9) >> 32)
33423 + break;
33424 +#endif
33425 +
33426 + err = get_user(mov, (unsigned char __user *)regs->ip);
33427 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33428 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33429 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33430 +
33431 + if (err)
33432 + break;
33433 +
33434 + if (mov == 0xB8 && jmp == 0xE9) {
33435 + regs->ax = addr1;
33436 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33437 + return 2;
33438 + }
33439 + } while (0);
33440 +
33441 + do { /* PaX: gcc trampoline emulation #1 */
33442 + unsigned char mov1, mov2;
33443 + unsigned short jmp;
33444 + unsigned int addr1, addr2;
33445 +
33446 +#ifdef CONFIG_X86_64
33447 + if ((regs->ip + 11) >> 32)
33448 + break;
33449 +#endif
33450 +
33451 + err = get_user(mov1, (unsigned char __user *)regs->ip);
33452 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33453 + err |= get_user(mov2, (unsigned char __user *)(regs->ip + 5));
33454 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33455 + err |= get_user(jmp, (unsigned short __user *)(regs->ip + 10));
33456 +
33457 + if (err)
33458 + break;
33459 +
33460 + if (mov1 == 0xB9 && mov2 == 0xB8 && jmp == 0xE0FF) {
33461 + regs->cx = addr1;
33462 + regs->ax = addr2;
33463 + regs->ip = addr2;
33464 + return 2;
33465 + }
33466 + } while (0);
33467 +
33468 + do { /* PaX: gcc trampoline emulation #2 */
33469 + unsigned char mov, jmp;
33470 + unsigned int addr1, addr2;
33471 +
33472 +#ifdef CONFIG_X86_64
33473 + if ((regs->ip + 9) >> 32)
33474 + break;
33475 +#endif
33476 +
33477 + err = get_user(mov, (unsigned char __user *)regs->ip);
33478 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33479 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33480 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33481 +
33482 + if (err)
33483 + break;
33484 +
33485 + if (mov == 0xB9 && jmp == 0xE9) {
33486 + regs->cx = addr1;
33487 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33488 + return 2;
33489 + }
33490 + } while (0);
33491 +
33492 + return 1; /* PaX in action */
33493 +}
33494 +
33495 +#ifdef CONFIG_X86_64
33496 +static int pax_handle_fetch_fault_64(struct pt_regs *regs)
33497 +{
33498 + int err;
33499 +
33500 + do { /* PaX: libffi trampoline emulation */
33501 + unsigned short mov1, mov2, jmp1;
33502 + unsigned char stcclc, jmp2;
33503 + unsigned long addr1, addr2;
33504 +
33505 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33506 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33507 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33508 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33509 + err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20));
33510 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21));
33511 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23));
33512 +
33513 + if (err)
33514 + break;
33515 +
33516 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33517 + regs->r11 = addr1;
33518 + regs->r10 = addr2;
33519 + if (stcclc == 0xF8)
33520 + regs->flags &= ~X86_EFLAGS_CF;
33521 + else
33522 + regs->flags |= X86_EFLAGS_CF;
33523 + regs->ip = addr1;
33524 + return 2;
33525 + }
33526 + } while (0);
33527 +
33528 + do { /* PaX: gcc trampoline emulation #1 */
33529 + unsigned short mov1, mov2, jmp1;
33530 + unsigned char jmp2;
33531 + unsigned int addr1;
33532 + unsigned long addr2;
33533 +
33534 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33535 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 2));
33536 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 6));
33537 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 8));
33538 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 16));
33539 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 18));
33540 +
33541 + if (err)
33542 + break;
33543 +
33544 + if (mov1 == 0xBB41 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33545 + regs->r11 = addr1;
33546 + regs->r10 = addr2;
33547 + regs->ip = addr1;
33548 + return 2;
33549 + }
33550 + } while (0);
33551 +
33552 + do { /* PaX: gcc trampoline emulation #2 */
33553 + unsigned short mov1, mov2, jmp1;
33554 + unsigned char jmp2;
33555 + unsigned long addr1, addr2;
33556 +
33557 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33558 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33559 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33560 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33561 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 20));
33562 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 22));
33563 +
33564 + if (err)
33565 + break;
33566 +
33567 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33568 + regs->r11 = addr1;
33569 + regs->r10 = addr2;
33570 + regs->ip = addr1;
33571 + return 2;
33572 + }
33573 + } while (0);
33574 +
33575 + return 1; /* PaX in action */
33576 +}
33577 +#endif
33578 +
33579 +/*
33580 + * PaX: decide what to do with offenders (regs->ip = fault address)
33581 + *
33582 + * returns 1 when task should be killed
33583 + * 2 when gcc trampoline was detected
33584 + */
33585 +static int pax_handle_fetch_fault(struct pt_regs *regs)
33586 +{
33587 + if (v8086_mode(regs))
33588 + return 1;
33589 +
33590 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
33591 + return 1;
33592 +
33593 +#ifdef CONFIG_X86_32
33594 + return pax_handle_fetch_fault_32(regs);
33595 +#else
33596 + if (regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))
33597 + return pax_handle_fetch_fault_32(regs);
33598 + else
33599 + return pax_handle_fetch_fault_64(regs);
33600 +#endif
33601 +}
33602 +#endif
33603 +
33604 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33605 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
33606 +{
33607 + long i;
33608 +
33609 + printk(KERN_ERR "PAX: bytes at PC: ");
33610 + for (i = 0; i < 20; i++) {
33611 + unsigned char c;
33612 + if (get_user(c, (unsigned char __force_user *)pc+i))
33613 + printk(KERN_CONT "?? ");
33614 + else
33615 + printk(KERN_CONT "%02x ", c);
33616 + }
33617 + printk("\n");
33618 +
33619 + printk(KERN_ERR "PAX: bytes at SP-%lu: ", (unsigned long)sizeof(long));
33620 + for (i = -1; i < 80 / (long)sizeof(long); i++) {
33621 + unsigned long c;
33622 + if (get_user(c, (unsigned long __force_user *)sp+i)) {
33623 +#ifdef CONFIG_X86_32
33624 + printk(KERN_CONT "???????? ");
33625 +#else
33626 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)))
33627 + printk(KERN_CONT "???????? ???????? ");
33628 + else
33629 + printk(KERN_CONT "???????????????? ");
33630 +#endif
33631 + } else {
33632 +#ifdef CONFIG_X86_64
33633 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))) {
33634 + printk(KERN_CONT "%08x ", (unsigned int)c);
33635 + printk(KERN_CONT "%08x ", (unsigned int)(c >> 32));
33636 + } else
33637 +#endif
33638 + printk(KERN_CONT "%0*lx ", 2 * (int)sizeof(long), c);
33639 + }
33640 + }
33641 + printk("\n");
33642 +}
33643 +#endif
33644 +
33645 +/**
33646 + * probe_kernel_write(): safely attempt to write to a location
33647 + * @dst: address to write to
33648 + * @src: pointer to the data that shall be written
33649 + * @size: size of the data chunk
33650 + *
33651 + * Safely write to address @dst from the buffer at @src. If a kernel fault
33652 + * happens, handle that and return -EFAULT.
33653 + */
33654 +long notrace probe_kernel_write(void *dst, const void *src, size_t size)
33655 +{
33656 + long ret;
33657 + mm_segment_t old_fs = get_fs();
33658 +
33659 + set_fs(KERNEL_DS);
33660 + pagefault_disable();
33661 + pax_open_kernel();
33662 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
33663 + pax_close_kernel();
33664 + pagefault_enable();
33665 + set_fs(old_fs);
33666 +
33667 + return ret ? -EFAULT : 0;
33668 +}
33669 diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
33670 index 81bf3d2..7ef25c2 100644
33671 --- a/arch/x86/mm/gup.c
33672 +++ b/arch/x86/mm/gup.c
33673 @@ -268,7 +268,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
33674 addr = start;
33675 len = (unsigned long) nr_pages << PAGE_SHIFT;
33676 end = start + len;
33677 - if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
33678 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33679 (void __user *)start, len)))
33680 return 0;
33681
33682 @@ -344,6 +344,10 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
33683 goto slow_irqon;
33684 #endif
33685
33686 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33687 + (void __user *)start, len)))
33688 + return 0;
33689 +
33690 /*
33691 * XXX: batch / limit 'nr', to avoid large irq off latency
33692 * needs some instrumenting to determine the common sizes used by
33693 diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
33694 index eecb207a..e76b7f4 100644
33695 --- a/arch/x86/mm/highmem_32.c
33696 +++ b/arch/x86/mm/highmem_32.c
33697 @@ -35,6 +35,8 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33698 unsigned long vaddr;
33699 int idx, type;
33700
33701 + BUG_ON(pgprot_val(prot) & _PAGE_USER);
33702 +
33703 preempt_disable();
33704 pagefault_disable();
33705
33706 @@ -45,7 +47,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33707 idx = type + KM_TYPE_NR*smp_processor_id();
33708 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
33709 BUG_ON(!pte_none(*(kmap_pte-idx)));
33710 +
33711 + pax_open_kernel();
33712 set_pte(kmap_pte-idx, mk_pte(page, prot));
33713 + pax_close_kernel();
33714 +
33715 arch_flush_lazy_mmu_mode();
33716
33717 return (void *)vaddr;
33718 diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
33719 index 42982b2..7168fc3 100644
33720 --- a/arch/x86/mm/hugetlbpage.c
33721 +++ b/arch/x86/mm/hugetlbpage.c
33722 @@ -74,23 +74,24 @@ int pud_huge(pud_t pud)
33723 #ifdef CONFIG_HUGETLB_PAGE
33724 static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
33725 unsigned long addr, unsigned long len,
33726 - unsigned long pgoff, unsigned long flags)
33727 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33728 {
33729 struct hstate *h = hstate_file(file);
33730 struct vm_unmapped_area_info info;
33731 -
33732 +
33733 info.flags = 0;
33734 info.length = len;
33735 info.low_limit = current->mm->mmap_legacy_base;
33736 info.high_limit = TASK_SIZE;
33737 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33738 info.align_offset = 0;
33739 + info.threadstack_offset = offset;
33740 return vm_unmapped_area(&info);
33741 }
33742
33743 static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33744 unsigned long addr0, unsigned long len,
33745 - unsigned long pgoff, unsigned long flags)
33746 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33747 {
33748 struct hstate *h = hstate_file(file);
33749 struct vm_unmapped_area_info info;
33750 @@ -102,6 +103,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33751 info.high_limit = current->mm->mmap_base;
33752 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33753 info.align_offset = 0;
33754 + info.threadstack_offset = offset;
33755 addr = vm_unmapped_area(&info);
33756
33757 /*
33758 @@ -114,6 +116,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33759 VM_BUG_ON(addr != -ENOMEM);
33760 info.flags = 0;
33761 info.low_limit = TASK_UNMAPPED_BASE;
33762 +
33763 +#ifdef CONFIG_PAX_RANDMMAP
33764 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
33765 + info.low_limit += current->mm->delta_mmap;
33766 +#endif
33767 +
33768 info.high_limit = TASK_SIZE;
33769 addr = vm_unmapped_area(&info);
33770 }
33771 @@ -128,10 +136,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33772 struct hstate *h = hstate_file(file);
33773 struct mm_struct *mm = current->mm;
33774 struct vm_area_struct *vma;
33775 + unsigned long pax_task_size = TASK_SIZE;
33776 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
33777
33778 if (len & ~huge_page_mask(h))
33779 return -EINVAL;
33780 - if (len > TASK_SIZE)
33781 +
33782 +#ifdef CONFIG_PAX_SEGMEXEC
33783 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
33784 + pax_task_size = SEGMEXEC_TASK_SIZE;
33785 +#endif
33786 +
33787 + pax_task_size -= PAGE_SIZE;
33788 +
33789 + if (len > pax_task_size)
33790 return -ENOMEM;
33791
33792 if (flags & MAP_FIXED) {
33793 @@ -140,19 +158,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33794 return addr;
33795 }
33796
33797 +#ifdef CONFIG_PAX_RANDMMAP
33798 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
33799 +#endif
33800 +
33801 if (addr) {
33802 addr = ALIGN(addr, huge_page_size(h));
33803 vma = find_vma(mm, addr);
33804 - if (TASK_SIZE - len >= addr &&
33805 - (!vma || addr + len <= vma->vm_start))
33806 + if (pax_task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
33807 return addr;
33808 }
33809 if (mm->get_unmapped_area == arch_get_unmapped_area)
33810 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
33811 - pgoff, flags);
33812 + pgoff, flags, offset);
33813 else
33814 return hugetlb_get_unmapped_area_topdown(file, addr, len,
33815 - pgoff, flags);
33816 + pgoff, flags, offset);
33817 }
33818 #endif /* CONFIG_HUGETLB_PAGE */
33819
33820 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
33821 index 1d8a83d..e435d63 100644
33822 --- a/arch/x86/mm/init.c
33823 +++ b/arch/x86/mm/init.c
33824 @@ -4,6 +4,7 @@
33825 #include <linux/swap.h>
33826 #include <linux/memblock.h>
33827 #include <linux/bootmem.h> /* for max_low_pfn */
33828 +#include <linux/tboot.h>
33829
33830 #include <asm/cacheflush.h>
33831 #include <asm/e820.h>
33832 @@ -17,6 +18,8 @@
33833 #include <asm/proto.h>
33834 #include <asm/dma.h> /* for MAX_DMA_PFN */
33835 #include <asm/microcode.h>
33836 +#include <asm/desc.h>
33837 +#include <asm/bios_ebda.h>
33838
33839 /*
33840 * We need to define the tracepoints somewhere, and tlb.c
33841 @@ -618,7 +621,18 @@ void __init init_mem_mapping(void)
33842 early_ioremap_page_table_range_init();
33843 #endif
33844
33845 +#ifdef CONFIG_PAX_PER_CPU_PGD
33846 + clone_pgd_range(get_cpu_pgd(0, kernel) + KERNEL_PGD_BOUNDARY,
33847 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33848 + KERNEL_PGD_PTRS);
33849 + clone_pgd_range(get_cpu_pgd(0, user) + KERNEL_PGD_BOUNDARY,
33850 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33851 + KERNEL_PGD_PTRS);
33852 + load_cr3(get_cpu_pgd(0, kernel));
33853 +#else
33854 load_cr3(swapper_pg_dir);
33855 +#endif
33856 +
33857 __flush_tlb_all();
33858
33859 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
33860 @@ -634,10 +648,40 @@ void __init init_mem_mapping(void)
33861 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
33862 * mmio resources as well as potential bios/acpi data regions.
33863 */
33864 +
33865 +#ifdef CONFIG_GRKERNSEC_KMEM
33866 +static unsigned int ebda_start __read_only;
33867 +static unsigned int ebda_end __read_only;
33868 +#endif
33869 +
33870 int devmem_is_allowed(unsigned long pagenr)
33871 {
33872 - if (pagenr < 256)
33873 +#ifdef CONFIG_GRKERNSEC_KMEM
33874 + /* allow BDA */
33875 + if (!pagenr)
33876 return 1;
33877 + /* allow EBDA */
33878 + if (pagenr >= ebda_start && pagenr < ebda_end)
33879 + return 1;
33880 + /* if tboot is in use, allow access to its hardcoded serial log range */
33881 + if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT)))
33882 + return 1;
33883 +#else
33884 + if (!pagenr)
33885 + return 1;
33886 +#ifdef CONFIG_VM86
33887 + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
33888 + return 1;
33889 +#endif
33890 +#endif
33891 +
33892 + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
33893 + return 1;
33894 +#ifdef CONFIG_GRKERNSEC_KMEM
33895 + /* throw out everything else below 1MB */
33896 + if (pagenr <= 256)
33897 + return 0;
33898 +#endif
33899 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
33900 return 0;
33901 if (!page_is_ram(pagenr))
33902 @@ -683,8 +727,127 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
33903 #endif
33904 }
33905
33906 +#ifdef CONFIG_GRKERNSEC_KMEM
33907 +static inline void gr_init_ebda(void)
33908 +{
33909 + unsigned int ebda_addr;
33910 + unsigned int ebda_size = 0;
33911 +
33912 + ebda_addr = get_bios_ebda();
33913 + if (ebda_addr) {
33914 + ebda_size = *(unsigned char *)phys_to_virt(ebda_addr);
33915 + ebda_size <<= 10;
33916 + }
33917 + if (ebda_addr && ebda_size) {
33918 + ebda_start = ebda_addr >> PAGE_SHIFT;
33919 + ebda_end = min((unsigned int)PAGE_ALIGN(ebda_addr + ebda_size), (unsigned int)0xa0000) >> PAGE_SHIFT;
33920 + } else {
33921 + ebda_start = 0x9f000 >> PAGE_SHIFT;
33922 + ebda_end = 0xa0000 >> PAGE_SHIFT;
33923 + }
33924 +}
33925 +#else
33926 +static inline void gr_init_ebda(void) { }
33927 +#endif
33928 +
33929 void free_initmem(void)
33930 {
33931 +#ifdef CONFIG_PAX_KERNEXEC
33932 +#ifdef CONFIG_X86_32
33933 + /* PaX: limit KERNEL_CS to actual size */
33934 + unsigned long addr, limit;
33935 + struct desc_struct d;
33936 + int cpu;
33937 +#else
33938 + pgd_t *pgd;
33939 + pud_t *pud;
33940 + pmd_t *pmd;
33941 + unsigned long addr, end;
33942 +#endif
33943 +#endif
33944 +
33945 + gr_init_ebda();
33946 +
33947 +#ifdef CONFIG_PAX_KERNEXEC
33948 +#ifdef CONFIG_X86_32
33949 + limit = paravirt_enabled() ? ktva_ktla(0xffffffff) : (unsigned long)&_etext;
33950 + limit = (limit - 1UL) >> PAGE_SHIFT;
33951 +
33952 + memset(__LOAD_PHYSICAL_ADDR + PAGE_OFFSET, POISON_FREE_INITMEM, PAGE_SIZE);
33953 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
33954 + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC);
33955 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S);
33956 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEXEC_KERNEL_CS, &d, DESCTYPE_S);
33957 + }
33958 +
33959 + /* PaX: make KERNEL_CS read-only */
33960 + addr = PFN_ALIGN(ktla_ktva((unsigned long)&_text));
33961 + if (!paravirt_enabled())
33962 + set_memory_ro(addr, (PFN_ALIGN(_sdata) - addr) >> PAGE_SHIFT);
33963 +/*
33964 + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_sdata; addr += PMD_SIZE) {
33965 + pgd = pgd_offset_k(addr);
33966 + pud = pud_offset(pgd, addr);
33967 + pmd = pmd_offset(pud, addr);
33968 + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
33969 + }
33970 +*/
33971 +#ifdef CONFIG_X86_PAE
33972 + set_memory_nx(PFN_ALIGN(__init_begin), (PFN_ALIGN(__init_end) - PFN_ALIGN(__init_begin)) >> PAGE_SHIFT);
33973 +/*
33974 + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) {
33975 + pgd = pgd_offset_k(addr);
33976 + pud = pud_offset(pgd, addr);
33977 + pmd = pmd_offset(pud, addr);
33978 + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
33979 + }
33980 +*/
33981 +#endif
33982 +
33983 +#ifdef CONFIG_MODULES
33984 + set_memory_4k((unsigned long)MODULES_EXEC_VADDR, (MODULES_EXEC_END - MODULES_EXEC_VADDR) >> PAGE_SHIFT);
33985 +#endif
33986 +
33987 +#else
33988 + /* PaX: make kernel code/rodata read-only, rest non-executable */
33989 + set_memory_ro((unsigned long)_text, ((unsigned long)(_sdata - _text) >> PAGE_SHIFT));
33990 + set_memory_nx((unsigned long)_sdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sdata) >> PAGE_SHIFT);
33991 +
33992 + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) {
33993 + pgd = pgd_offset_k(addr);
33994 + pud = pud_offset(pgd, addr);
33995 + pmd = pmd_offset(pud, addr);
33996 + if (!pmd_present(*pmd))
33997 + continue;
33998 + if (addr >= (unsigned long)_text)
33999 + BUG_ON(!pmd_large(*pmd));
34000 + if ((unsigned long)_text <= addr && addr < (unsigned long)_sdata)
34001 + BUG_ON(pmd_write(*pmd));
34002 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34003 + else
34004 + BUG_ON(!(pmd_flags(*pmd) & _PAGE_NX));
34005 +// set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
34006 + }
34007 +
34008 + addr = (unsigned long)__va(__pa(__START_KERNEL_map));
34009 + end = addr + KERNEL_IMAGE_SIZE;
34010 + for (; addr < end; addr += PMD_SIZE) {
34011 + pgd = pgd_offset_k(addr);
34012 + pud = pud_offset(pgd, addr);
34013 + pmd = pmd_offset(pud, addr);
34014 + if (!pmd_present(*pmd))
34015 + continue;
34016 + if (addr >= (unsigned long)_text)
34017 + BUG_ON(!pmd_large(*pmd));
34018 + if ((unsigned long)__va(__pa(_text)) <= addr && addr < (unsigned long)__va(__pa(_sdata)))
34019 + BUG_ON(pmd_write(*pmd));
34020 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34021 + }
34022 +#endif
34023 +
34024 + flush_tlb_all();
34025 +#endif
34026 +
34027 free_init_pages("unused kernel",
34028 (unsigned long)(&__init_begin),
34029 (unsigned long)(&__init_end));
34030 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
34031 index 7562f42..6859164 100644
34032 --- a/arch/x86/mm/init_32.c
34033 +++ b/arch/x86/mm/init_32.c
34034 @@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void);
34035 bool __read_mostly __vmalloc_start_set = false;
34036
34037 /*
34038 - * Creates a middle page table and puts a pointer to it in the
34039 - * given global directory entry. This only returns the gd entry
34040 - * in non-PAE compilation mode, since the middle layer is folded.
34041 - */
34042 -static pmd_t * __init one_md_table_init(pgd_t *pgd)
34043 -{
34044 - pud_t *pud;
34045 - pmd_t *pmd_table;
34046 -
34047 -#ifdef CONFIG_X86_PAE
34048 - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
34049 - pmd_table = (pmd_t *)alloc_low_page();
34050 - paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT);
34051 - set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
34052 - pud = pud_offset(pgd, 0);
34053 - BUG_ON(pmd_table != pmd_offset(pud, 0));
34054 -
34055 - return pmd_table;
34056 - }
34057 -#endif
34058 - pud = pud_offset(pgd, 0);
34059 - pmd_table = pmd_offset(pud, 0);
34060 -
34061 - return pmd_table;
34062 -}
34063 -
34064 -/*
34065 * Create a page table and place a pointer to it in a middle page
34066 * directory entry:
34067 */
34068 @@ -98,13 +71,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
34069 pte_t *page_table = (pte_t *)alloc_low_page();
34070
34071 paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
34072 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
34073 + set_pmd(pmd, __pmd(__pa(page_table) | _KERNPG_TABLE));
34074 +#else
34075 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
34076 +#endif
34077 BUG_ON(page_table != pte_offset_kernel(pmd, 0));
34078 }
34079
34080 return pte_offset_kernel(pmd, 0);
34081 }
34082
34083 +static pmd_t * __init one_md_table_init(pgd_t *pgd)
34084 +{
34085 + pud_t *pud;
34086 + pmd_t *pmd_table;
34087 +
34088 + pud = pud_offset(pgd, 0);
34089 + pmd_table = pmd_offset(pud, 0);
34090 +
34091 + return pmd_table;
34092 +}
34093 +
34094 pmd_t * __init populate_extra_pmd(unsigned long vaddr)
34095 {
34096 int pgd_idx = pgd_index(vaddr);
34097 @@ -209,6 +197,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34098 int pgd_idx, pmd_idx;
34099 unsigned long vaddr;
34100 pgd_t *pgd;
34101 + pud_t *pud;
34102 pmd_t *pmd;
34103 pte_t *pte = NULL;
34104 unsigned long count = page_table_range_init_count(start, end);
34105 @@ -223,8 +212,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34106 pgd = pgd_base + pgd_idx;
34107
34108 for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
34109 - pmd = one_md_table_init(pgd);
34110 - pmd = pmd + pmd_index(vaddr);
34111 + pud = pud_offset(pgd, vaddr);
34112 + pmd = pmd_offset(pud, vaddr);
34113 +
34114 +#ifdef CONFIG_X86_PAE
34115 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34116 +#endif
34117 +
34118 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
34119 pmd++, pmd_idx++) {
34120 pte = page_table_kmap_check(one_page_table_init(pmd),
34121 @@ -236,11 +230,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34122 }
34123 }
34124
34125 -static inline int is_kernel_text(unsigned long addr)
34126 +static inline int is_kernel_text(unsigned long start, unsigned long end)
34127 {
34128 - if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end)
34129 - return 1;
34130 - return 0;
34131 + if ((start >= ktla_ktva((unsigned long)_etext) ||
34132 + end <= ktla_ktva((unsigned long)_stext)) &&
34133 + (start >= ktla_ktva((unsigned long)_einittext) ||
34134 + end <= ktla_ktva((unsigned long)_sinittext)) &&
34135 +
34136 +#ifdef CONFIG_ACPI_SLEEP
34137 + (start >= (unsigned long)__va(acpi_wakeup_address) + 0x4000 || end <= (unsigned long)__va(acpi_wakeup_address)) &&
34138 +#endif
34139 +
34140 + (start > (unsigned long)__va(0xfffff) || end <= (unsigned long)__va(0xc0000)))
34141 + return 0;
34142 + return 1;
34143 }
34144
34145 /*
34146 @@ -257,9 +260,10 @@ kernel_physical_mapping_init(unsigned long start,
34147 unsigned long last_map_addr = end;
34148 unsigned long start_pfn, end_pfn;
34149 pgd_t *pgd_base = swapper_pg_dir;
34150 - int pgd_idx, pmd_idx, pte_ofs;
34151 + unsigned int pgd_idx, pmd_idx, pte_ofs;
34152 unsigned long pfn;
34153 pgd_t *pgd;
34154 + pud_t *pud;
34155 pmd_t *pmd;
34156 pte_t *pte;
34157 unsigned pages_2m, pages_4k;
34158 @@ -292,8 +296,13 @@ repeat:
34159 pfn = start_pfn;
34160 pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34161 pgd = pgd_base + pgd_idx;
34162 - for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
34163 - pmd = one_md_table_init(pgd);
34164 + for (; pgd_idx < PTRS_PER_PGD && pfn < max_low_pfn; pgd++, pgd_idx++) {
34165 + pud = pud_offset(pgd, 0);
34166 + pmd = pmd_offset(pud, 0);
34167 +
34168 +#ifdef CONFIG_X86_PAE
34169 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34170 +#endif
34171
34172 if (pfn >= end_pfn)
34173 continue;
34174 @@ -305,14 +314,13 @@ repeat:
34175 #endif
34176 for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn;
34177 pmd++, pmd_idx++) {
34178 - unsigned int addr = pfn * PAGE_SIZE + PAGE_OFFSET;
34179 + unsigned long address = pfn * PAGE_SIZE + PAGE_OFFSET;
34180
34181 /*
34182 * Map with big pages if possible, otherwise
34183 * create normal page tables:
34184 */
34185 if (use_pse) {
34186 - unsigned int addr2;
34187 pgprot_t prot = PAGE_KERNEL_LARGE;
34188 /*
34189 * first pass will use the same initial
34190 @@ -323,11 +331,7 @@ repeat:
34191 _PAGE_PSE);
34192
34193 pfn &= PMD_MASK >> PAGE_SHIFT;
34194 - addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE +
34195 - PAGE_OFFSET + PAGE_SIZE-1;
34196 -
34197 - if (is_kernel_text(addr) ||
34198 - is_kernel_text(addr2))
34199 + if (is_kernel_text(address, address + PMD_SIZE))
34200 prot = PAGE_KERNEL_LARGE_EXEC;
34201
34202 pages_2m++;
34203 @@ -344,7 +348,7 @@ repeat:
34204 pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34205 pte += pte_ofs;
34206 for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn;
34207 - pte++, pfn++, pte_ofs++, addr += PAGE_SIZE) {
34208 + pte++, pfn++, pte_ofs++, address += PAGE_SIZE) {
34209 pgprot_t prot = PAGE_KERNEL;
34210 /*
34211 * first pass will use the same initial
34212 @@ -352,7 +356,7 @@ repeat:
34213 */
34214 pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
34215
34216 - if (is_kernel_text(addr))
34217 + if (is_kernel_text(address, address + PAGE_SIZE))
34218 prot = PAGE_KERNEL_EXEC;
34219
34220 pages_4k++;
34221 @@ -475,7 +479,7 @@ void __init native_pagetable_init(void)
34222
34223 pud = pud_offset(pgd, va);
34224 pmd = pmd_offset(pud, va);
34225 - if (!pmd_present(*pmd))
34226 + if (!pmd_present(*pmd)) // PAX TODO || pmd_large(*pmd))
34227 break;
34228
34229 /* should not be large page here */
34230 @@ -533,12 +537,10 @@ void __init early_ioremap_page_table_range_init(void)
34231
34232 static void __init pagetable_init(void)
34233 {
34234 - pgd_t *pgd_base = swapper_pg_dir;
34235 -
34236 - permanent_kmaps_init(pgd_base);
34237 + permanent_kmaps_init(swapper_pg_dir);
34238 }
34239
34240 -pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL);
34241 +pteval_t __supported_pte_mask __read_only = ~(_PAGE_NX | _PAGE_GLOBAL);
34242 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34243
34244 /* user-defined highmem size */
34245 @@ -788,10 +790,10 @@ void __init mem_init(void)
34246 ((unsigned long)&__init_end -
34247 (unsigned long)&__init_begin) >> 10,
34248
34249 - (unsigned long)&_etext, (unsigned long)&_edata,
34250 - ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
34251 + (unsigned long)&_sdata, (unsigned long)&_edata,
34252 + ((unsigned long)&_edata - (unsigned long)&_sdata) >> 10,
34253
34254 - (unsigned long)&_text, (unsigned long)&_etext,
34255 + ktla_ktva((unsigned long)&_text), ktla_ktva((unsigned long)&_etext),
34256 ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
34257
34258 /*
34259 @@ -885,6 +887,7 @@ void set_kernel_text_rw(void)
34260 if (!kernel_set_to_readonly)
34261 return;
34262
34263 + start = ktla_ktva(start);
34264 pr_debug("Set kernel text: %lx - %lx for read write\n",
34265 start, start+size);
34266
34267 @@ -899,6 +902,7 @@ void set_kernel_text_ro(void)
34268 if (!kernel_set_to_readonly)
34269 return;
34270
34271 + start = ktla_ktva(start);
34272 pr_debug("Set kernel text: %lx - %lx for read only\n",
34273 start, start+size);
34274
34275 @@ -927,6 +931,7 @@ void mark_rodata_ro(void)
34276 unsigned long start = PFN_ALIGN(_text);
34277 unsigned long size = PFN_ALIGN(_etext) - start;
34278
34279 + start = ktla_ktva(start);
34280 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
34281 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
34282 size >> 10);
34283 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
34284 index df48430..0a2197b 100644
34285 --- a/arch/x86/mm/init_64.c
34286 +++ b/arch/x86/mm/init_64.c
34287 @@ -136,7 +136,7 @@ int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page,
34288 * around without checking the pgd every time.
34289 */
34290
34291 -pteval_t __supported_pte_mask __read_mostly = ~0;
34292 +pteval_t __supported_pte_mask __read_only = ~_PAGE_NX;
34293 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34294
34295 int force_personality32;
34296 @@ -169,7 +169,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34297
34298 for (address = start; address <= end; address += PGDIR_SIZE) {
34299 const pgd_t *pgd_ref = pgd_offset_k(address);
34300 +
34301 +#ifdef CONFIG_PAX_PER_CPU_PGD
34302 + unsigned long cpu;
34303 +#else
34304 struct page *page;
34305 +#endif
34306
34307 /*
34308 * When it is called after memory hot remove, pgd_none()
34309 @@ -180,6 +185,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34310 continue;
34311
34312 spin_lock(&pgd_lock);
34313 +
34314 +#ifdef CONFIG_PAX_PER_CPU_PGD
34315 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34316 + pgd_t *pgd = pgd_offset_cpu(cpu, user, address);
34317 +
34318 + if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34319 + BUG_ON(pgd_page_vaddr(*pgd)
34320 + != pgd_page_vaddr(*pgd_ref));
34321 +
34322 + if (removed) {
34323 + if (pgd_none(*pgd_ref) && !pgd_none(*pgd))
34324 + pgd_clear(pgd);
34325 + } else {
34326 + if (pgd_none(*pgd))
34327 + set_pgd(pgd, *pgd_ref);
34328 + }
34329 +
34330 + pgd = pgd_offset_cpu(cpu, kernel, address);
34331 +#else
34332 list_for_each_entry(page, &pgd_list, lru) {
34333 pgd_t *pgd;
34334 spinlock_t *pgt_lock;
34335 @@ -188,6 +212,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34336 /* the pgt_lock only for Xen */
34337 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
34338 spin_lock(pgt_lock);
34339 +#endif
34340
34341 if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34342 BUG_ON(pgd_page_vaddr(*pgd)
34343 @@ -201,7 +226,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34344 set_pgd(pgd, *pgd_ref);
34345 }
34346
34347 +#ifndef CONFIG_PAX_PER_CPU_PGD
34348 spin_unlock(pgt_lock);
34349 +#endif
34350 +
34351 }
34352 spin_unlock(&pgd_lock);
34353 }
34354 @@ -234,7 +262,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
34355 {
34356 if (pgd_none(*pgd)) {
34357 pud_t *pud = (pud_t *)spp_getpage();
34358 - pgd_populate(&init_mm, pgd, pud);
34359 + pgd_populate_kernel(&init_mm, pgd, pud);
34360 if (pud != pud_offset(pgd, 0))
34361 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
34362 pud, pud_offset(pgd, 0));
34363 @@ -246,7 +274,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
34364 {
34365 if (pud_none(*pud)) {
34366 pmd_t *pmd = (pmd_t *) spp_getpage();
34367 - pud_populate(&init_mm, pud, pmd);
34368 + pud_populate_kernel(&init_mm, pud, pmd);
34369 if (pmd != pmd_offset(pud, 0))
34370 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
34371 pmd, pmd_offset(pud, 0));
34372 @@ -275,7 +303,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
34373 pmd = fill_pmd(pud, vaddr);
34374 pte = fill_pte(pmd, vaddr);
34375
34376 + pax_open_kernel();
34377 set_pte(pte, new_pte);
34378 + pax_close_kernel();
34379
34380 /*
34381 * It's enough to flush this one mapping.
34382 @@ -337,14 +367,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
34383 pgd = pgd_offset_k((unsigned long)__va(phys));
34384 if (pgd_none(*pgd)) {
34385 pud = (pud_t *) spp_getpage();
34386 - set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE |
34387 - _PAGE_USER));
34388 + set_pgd(pgd, __pgd(__pa(pud) | _PAGE_TABLE));
34389 }
34390 pud = pud_offset(pgd, (unsigned long)__va(phys));
34391 if (pud_none(*pud)) {
34392 pmd = (pmd_t *) spp_getpage();
34393 - set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE |
34394 - _PAGE_USER));
34395 + set_pud(pud, __pud(__pa(pmd) | _PAGE_TABLE));
34396 }
34397 pmd = pmd_offset(pud, phys);
34398 BUG_ON(!pmd_none(*pmd));
34399 @@ -585,7 +613,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
34400 prot);
34401
34402 spin_lock(&init_mm.page_table_lock);
34403 - pud_populate(&init_mm, pud, pmd);
34404 + pud_populate_kernel(&init_mm, pud, pmd);
34405 spin_unlock(&init_mm.page_table_lock);
34406 }
34407 __flush_tlb_all();
34408 @@ -626,7 +654,7 @@ kernel_physical_mapping_init(unsigned long start,
34409 page_size_mask);
34410
34411 spin_lock(&init_mm.page_table_lock);
34412 - pgd_populate(&init_mm, pgd, pud);
34413 + pgd_populate_kernel(&init_mm, pgd, pud);
34414 spin_unlock(&init_mm.page_table_lock);
34415 pgd_changed = true;
34416 }
34417 diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
34418 index 9c0ff04..9020d5f 100644
34419 --- a/arch/x86/mm/iomap_32.c
34420 +++ b/arch/x86/mm/iomap_32.c
34421 @@ -65,7 +65,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
34422 type = kmap_atomic_idx_push();
34423 idx = type + KM_TYPE_NR * smp_processor_id();
34424 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34425 +
34426 + pax_open_kernel();
34427 set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
34428 + pax_close_kernel();
34429 +
34430 arch_flush_lazy_mmu_mode();
34431
34432 return (void *)vaddr;
34433 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
34434 index b9c78f3..c757af4 100644
34435 --- a/arch/x86/mm/ioremap.c
34436 +++ b/arch/x86/mm/ioremap.c
34437 @@ -59,8 +59,8 @@ static int __ioremap_check_ram(unsigned long start_pfn, unsigned long nr_pages,
34438 unsigned long i;
34439
34440 for (i = 0; i < nr_pages; ++i)
34441 - if (pfn_valid(start_pfn + i) &&
34442 - !PageReserved(pfn_to_page(start_pfn + i)))
34443 + if (pfn_valid(start_pfn + i) && (start_pfn + i >= 0x100 ||
34444 + !PageReserved(pfn_to_page(start_pfn + i))))
34445 return 1;
34446
34447 return 0;
34448 @@ -332,7 +332,7 @@ EXPORT_SYMBOL(ioremap_prot);
34449 *
34450 * Caller must ensure there is only one unmapping for the same pointer.
34451 */
34452 -void iounmap(volatile void __iomem *addr)
34453 +void iounmap(const volatile void __iomem *addr)
34454 {
34455 struct vm_struct *p, *o;
34456
34457 @@ -395,31 +395,37 @@ int __init arch_ioremap_pmd_supported(void)
34458 */
34459 void *xlate_dev_mem_ptr(phys_addr_t phys)
34460 {
34461 - unsigned long start = phys & PAGE_MASK;
34462 - unsigned long offset = phys & ~PAGE_MASK;
34463 - void *vaddr;
34464 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34465
34466 - /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
34467 - if (page_is_ram(start >> PAGE_SHIFT))
34468 - return __va(phys);
34469 + if (page_is_ram(pfn)) {
34470 +#ifdef CONFIG_HIGHMEM
34471 + if (pfn >= max_low_pfn)
34472 + return kmap_high(pfn_to_page(pfn));
34473 + else
34474 +#endif
34475 + return __va(phys);
34476 + }
34477
34478 - vaddr = ioremap_cache(start, PAGE_SIZE);
34479 - /* Only add the offset on success and return NULL if the ioremap() failed: */
34480 - if (vaddr)
34481 - vaddr += offset;
34482 -
34483 - return vaddr;
34484 + return (void __force *)ioremap_cache(phys, 1);
34485 }
34486
34487 void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr)
34488 {
34489 - if (page_is_ram(phys >> PAGE_SHIFT))
34490 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34491 +
34492 + if (page_is_ram(pfn)) {
34493 +#ifdef CONFIG_HIGHMEM
34494 + if (pfn >= max_low_pfn)
34495 + kunmap_high(pfn_to_page(pfn));
34496 +#endif
34497 return;
34498 + }
34499
34500 - iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
34501 + iounmap((void __iomem __force *)addr);
34502 }
34503
34504 -static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
34505 +static pte_t __bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_rodata;
34506 +static pte_t *bm_pte __read_only = __bm_pte;
34507
34508 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
34509 {
34510 @@ -455,8 +461,14 @@ void __init early_ioremap_init(void)
34511 early_ioremap_setup();
34512
34513 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
34514 - memset(bm_pte, 0, sizeof(bm_pte));
34515 - pmd_populate_kernel(&init_mm, pmd, bm_pte);
34516 + if (pmd_none(*pmd))
34517 +#ifdef CONFIG_COMPAT_VDSO
34518 + pmd_populate_user(&init_mm, pmd, __bm_pte);
34519 +#else
34520 + pmd_populate_kernel(&init_mm, pmd, __bm_pte);
34521 +#endif
34522 + else
34523 + bm_pte = (pte_t *)pmd_page_vaddr(*pmd);
34524
34525 /*
34526 * The boot-ioremap range spans multiple pmds, for which
34527 diff --git a/arch/x86/mm/kmemcheck/kmemcheck.c b/arch/x86/mm/kmemcheck/kmemcheck.c
34528 index b4f2e7e..96c9c3e 100644
34529 --- a/arch/x86/mm/kmemcheck/kmemcheck.c
34530 +++ b/arch/x86/mm/kmemcheck/kmemcheck.c
34531 @@ -628,9 +628,9 @@ bool kmemcheck_fault(struct pt_regs *regs, unsigned long address,
34532 * memory (e.g. tracked pages)? For now, we need this to avoid
34533 * invoking kmemcheck for PnP BIOS calls.
34534 */
34535 - if (regs->flags & X86_VM_MASK)
34536 + if (v8086_mode(regs))
34537 return false;
34538 - if (regs->cs != __KERNEL_CS)
34539 + if (regs->cs != __KERNEL_CS && regs->cs != __KERNEXEC_KERNEL_CS)
34540 return false;
34541
34542 pte = kmemcheck_pte_lookup(address);
34543 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
34544 index 844b06d..f363c86 100644
34545 --- a/arch/x86/mm/mmap.c
34546 +++ b/arch/x86/mm/mmap.c
34547 @@ -52,7 +52,7 @@ static unsigned long stack_maxrandom_size(void)
34548 * Leave an at least ~128 MB hole with possible stack randomization.
34549 */
34550 #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
34551 -#define MAX_GAP (TASK_SIZE/6*5)
34552 +#define MAX_GAP (pax_task_size/6*5)
34553
34554 static int mmap_is_legacy(void)
34555 {
34556 @@ -81,27 +81,40 @@ unsigned long arch_mmap_rnd(void)
34557 return rnd << PAGE_SHIFT;
34558 }
34559
34560 -static unsigned long mmap_base(unsigned long rnd)
34561 +static unsigned long mmap_base(struct mm_struct *mm, unsigned long rnd)
34562 {
34563 unsigned long gap = rlimit(RLIMIT_STACK);
34564 + unsigned long pax_task_size = TASK_SIZE;
34565 +
34566 +#ifdef CONFIG_PAX_SEGMEXEC
34567 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34568 + pax_task_size = SEGMEXEC_TASK_SIZE;
34569 +#endif
34570
34571 if (gap < MIN_GAP)
34572 gap = MIN_GAP;
34573 else if (gap > MAX_GAP)
34574 gap = MAX_GAP;
34575
34576 - return PAGE_ALIGN(TASK_SIZE - gap - rnd);
34577 + return PAGE_ALIGN(pax_task_size - gap - rnd);
34578 }
34579
34580 /*
34581 * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
34582 * does, but not when emulating X86_32
34583 */
34584 -static unsigned long mmap_legacy_base(unsigned long rnd)
34585 +static unsigned long mmap_legacy_base(struct mm_struct *mm, unsigned long rnd)
34586 {
34587 - if (mmap_is_ia32())
34588 + if (mmap_is_ia32()) {
34589 +
34590 +#ifdef CONFIG_PAX_SEGMEXEC
34591 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34592 + return SEGMEXEC_TASK_UNMAPPED_BASE;
34593 + else
34594 +#endif
34595 +
34596 return TASK_UNMAPPED_BASE;
34597 - else
34598 + } else
34599 return TASK_UNMAPPED_BASE + rnd;
34600 }
34601
34602 @@ -113,18 +126,29 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
34603 {
34604 unsigned long random_factor = 0UL;
34605
34606 +#ifdef CONFIG_PAX_RANDMMAP
34607 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
34608 +#endif
34609 if (current->flags & PF_RANDOMIZE)
34610 random_factor = arch_mmap_rnd();
34611
34612 - mm->mmap_legacy_base = mmap_legacy_base(random_factor);
34613 + mm->mmap_legacy_base = mmap_legacy_base(mm, random_factor);
34614
34615 if (mmap_is_legacy()) {
34616 mm->mmap_base = mm->mmap_legacy_base;
34617 mm->get_unmapped_area = arch_get_unmapped_area;
34618 } else {
34619 - mm->mmap_base = mmap_base(random_factor);
34620 + mm->mmap_base = mmap_base(mm, random_factor);
34621 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
34622 }
34623 +
34624 +#ifdef CONFIG_PAX_RANDMMAP
34625 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
34626 + mm->mmap_legacy_base += mm->delta_mmap;
34627 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
34628 + }
34629 +#endif
34630 +
34631 }
34632
34633 const char *arch_vma_name(struct vm_area_struct *vma)
34634 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
34635 index 0057a7acc..95c7edd 100644
34636 --- a/arch/x86/mm/mmio-mod.c
34637 +++ b/arch/x86/mm/mmio-mod.c
34638 @@ -194,7 +194,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
34639 break;
34640 default:
34641 {
34642 - unsigned char *ip = (unsigned char *)instptr;
34643 + unsigned char *ip = (unsigned char *)ktla_ktva(instptr);
34644 my_trace->opcode = MMIO_UNKNOWN_OP;
34645 my_trace->width = 0;
34646 my_trace->value = (*ip) << 16 | *(ip + 1) << 8 |
34647 @@ -234,7 +234,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
34648 static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34649 void __iomem *addr)
34650 {
34651 - static atomic_t next_id;
34652 + static atomic_unchecked_t next_id;
34653 struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
34654 /* These are page-unaligned. */
34655 struct mmiotrace_map map = {
34656 @@ -258,7 +258,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34657 .private = trace
34658 },
34659 .phys = offset,
34660 - .id = atomic_inc_return(&next_id)
34661 + .id = atomic_inc_return_unchecked(&next_id)
34662 };
34663 map.map_id = trace->id;
34664
34665 @@ -290,7 +290,7 @@ void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
34666 ioremap_trace_core(offset, size, addr);
34667 }
34668
34669 -static void iounmap_trace_core(volatile void __iomem *addr)
34670 +static void iounmap_trace_core(const volatile void __iomem *addr)
34671 {
34672 struct mmiotrace_map map = {
34673 .phys = 0,
34674 @@ -328,7 +328,7 @@ not_enabled:
34675 }
34676 }
34677
34678 -void mmiotrace_iounmap(volatile void __iomem *addr)
34679 +void mmiotrace_iounmap(const volatile void __iomem *addr)
34680 {
34681 might_sleep();
34682 if (is_enabled()) /* recheck and proper locking in *_core() */
34683 diff --git a/arch/x86/mm/mpx.c b/arch/x86/mm/mpx.c
34684 index 71fc79a..7388ad7 100644
34685 --- a/arch/x86/mm/mpx.c
34686 +++ b/arch/x86/mm/mpx.c
34687 @@ -292,11 +292,11 @@ siginfo_t *mpx_generate_siginfo(struct pt_regs *regs)
34688 * We were not able to extract an address from the instruction,
34689 * probably because there was something invalid in it.
34690 */
34691 - if (info->si_addr == (void *)-1) {
34692 + if (info->si_addr == (void __user *)-1) {
34693 err = -EINVAL;
34694 goto err_out;
34695 }
34696 - trace_mpx_bounds_register_exception(info->si_addr, bndreg);
34697 + trace_mpx_bounds_register_exception((void __force_kernel *)info->si_addr, bndreg);
34698 return info;
34699 err_out:
34700 /* info might be NULL, but kfree() handles that */
34701 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
34702 index c3b3f65..8919a28 100644
34703 --- a/arch/x86/mm/numa.c
34704 +++ b/arch/x86/mm/numa.c
34705 @@ -508,7 +508,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
34706 }
34707 }
34708
34709 -static int __init numa_register_memblks(struct numa_meminfo *mi)
34710 +static int __init __intentional_overflow(-1) numa_register_memblks(struct numa_meminfo *mi)
34711 {
34712 unsigned long uninitialized_var(pfn_align);
34713 int i, nid;
34714 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
34715 index 2c44c07..5c5e457 100644
34716 --- a/arch/x86/mm/pageattr.c
34717 +++ b/arch/x86/mm/pageattr.c
34718 @@ -259,7 +259,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34719 */
34720 #ifdef CONFIG_PCI_BIOS
34721 if (pcibios_enabled && within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
34722 - pgprot_val(forbidden) |= _PAGE_NX;
34723 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34724 #endif
34725
34726 /*
34727 @@ -267,9 +267,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34728 * Does not cover __inittext since that is gone later on. On
34729 * 64bit we do not enforce !NX on the low mapping
34730 */
34731 - if (within(address, (unsigned long)_text, (unsigned long)_etext))
34732 - pgprot_val(forbidden) |= _PAGE_NX;
34733 + if (within(address, ktla_ktva((unsigned long)_text), ktla_ktva((unsigned long)_etext)))
34734 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34735
34736 +#ifdef CONFIG_DEBUG_RODATA
34737 /*
34738 * The .rodata section needs to be read-only. Using the pfn
34739 * catches all aliases.
34740 @@ -277,6 +278,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34741 if (within(pfn, __pa_symbol(__start_rodata) >> PAGE_SHIFT,
34742 __pa_symbol(__end_rodata) >> PAGE_SHIFT))
34743 pgprot_val(forbidden) |= _PAGE_RW;
34744 +#endif
34745
34746 #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
34747 /*
34748 @@ -315,6 +317,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34749 }
34750 #endif
34751
34752 +#ifdef CONFIG_PAX_KERNEXEC
34753 + if (within(pfn, __pa(ktla_ktva((unsigned long)&_text)), __pa((unsigned long)&_sdata))) {
34754 + pgprot_val(forbidden) |= _PAGE_RW;
34755 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34756 + }
34757 +#endif
34758 +
34759 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
34760
34761 return prot;
34762 @@ -435,23 +444,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
34763 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
34764 {
34765 /* change init_mm */
34766 + pax_open_kernel();
34767 set_pte_atomic(kpte, pte);
34768 +
34769 #ifdef CONFIG_X86_32
34770 if (!SHARED_KERNEL_PMD) {
34771 +
34772 +#ifdef CONFIG_PAX_PER_CPU_PGD
34773 + unsigned long cpu;
34774 +#else
34775 struct page *page;
34776 +#endif
34777
34778 +#ifdef CONFIG_PAX_PER_CPU_PGD
34779 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34780 + pgd_t *pgd = get_cpu_pgd(cpu, kernel);
34781 +#else
34782 list_for_each_entry(page, &pgd_list, lru) {
34783 - pgd_t *pgd;
34784 + pgd_t *pgd = (pgd_t *)page_address(page);
34785 +#endif
34786 +
34787 pud_t *pud;
34788 pmd_t *pmd;
34789
34790 - pgd = (pgd_t *)page_address(page) + pgd_index(address);
34791 + pgd += pgd_index(address);
34792 pud = pud_offset(pgd, address);
34793 pmd = pmd_offset(pud, address);
34794 set_pte_atomic((pte_t *)pmd, pte);
34795 }
34796 }
34797 #endif
34798 + pax_close_kernel();
34799 }
34800
34801 static int
34802 @@ -504,7 +527,8 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
34803 * up accordingly.
34804 */
34805 old_pte = *kpte;
34806 - old_prot = req_prot = pgprot_large_2_4k(pte_pgprot(old_pte));
34807 + old_prot = pte_pgprot(old_pte);
34808 + req_prot = pgprot_large_2_4k(old_prot);
34809
34810 pgprot_val(req_prot) &= ~pgprot_val(cpa->mask_clr);
34811 pgprot_val(req_prot) |= pgprot_val(cpa->mask_set);
34812 @@ -674,6 +698,10 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
34813 return 0;
34814 }
34815
34816 +#if debug_pagealloc == 0
34817 +static int split_large_page(struct cpa_data *cpa, pte_t *kpte,
34818 + unsigned long address) __must_hold(&cpa_lock);
34819 +#endif
34820 static int split_large_page(struct cpa_data *cpa, pte_t *kpte,
34821 unsigned long address)
34822 {
34823 @@ -1117,6 +1145,9 @@ static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr,
34824 }
34825 }
34826
34827 +#if debug_pagealloc == 0
34828 +static int __change_page_attr(struct cpa_data *cpa, int primary) __must_hold(&cpa_lock);
34829 +#endif
34830 static int __change_page_attr(struct cpa_data *cpa, int primary)
34831 {
34832 unsigned long address;
34833 @@ -1175,7 +1206,9 @@ repeat:
34834 * Do we really change anything ?
34835 */
34836 if (pte_val(old_pte) != pte_val(new_pte)) {
34837 + pax_open_kernel();
34838 set_pte_atomic(kpte, new_pte);
34839 + pax_close_kernel();
34840 cpa->flags |= CPA_FLUSHTLB;
34841 }
34842 cpa->numpages = 1;
34843 diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
34844 index 188e3e0..5c75446 100644
34845 --- a/arch/x86/mm/pat.c
34846 +++ b/arch/x86/mm/pat.c
34847 @@ -588,7 +588,7 @@ int free_memtype(u64 start, u64 end)
34848
34849 if (!entry) {
34850 pr_info("x86/PAT: %s:%d freeing invalid memtype [mem %#010Lx-%#010Lx]\n",
34851 - current->comm, current->pid, start, end - 1);
34852 + current->comm, task_pid_nr(current), start, end - 1);
34853 return -EINVAL;
34854 }
34855
34856 @@ -711,8 +711,8 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34857
34858 while (cursor < to) {
34859 if (!devmem_is_allowed(pfn)) {
34860 - pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx], PAT prevents it\n",
34861 - current->comm, from, to - 1);
34862 + pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx), PAT prevents it\n",
34863 + current->comm, from, to - 1, cursor);
34864 return 0;
34865 }
34866 cursor += PAGE_SIZE;
34867 @@ -782,7 +782,7 @@ int kernel_map_sync_memtype(u64 base, unsigned long size,
34868
34869 if (ioremap_change_attr((unsigned long)__va(base), id_sz, pcm) < 0) {
34870 pr_info("x86/PAT: %s:%d ioremap_change_attr failed %s for [mem %#010Lx-%#010Lx]\n",
34871 - current->comm, current->pid,
34872 + current->comm, task_pid_nr(current),
34873 cattr_name(pcm),
34874 base, (unsigned long long)(base + size-1));
34875 return -EINVAL;
34876 @@ -817,7 +817,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34877 pcm = lookup_memtype(paddr);
34878 if (want_pcm != pcm) {
34879 pr_warn("x86/PAT: %s:%d map pfn RAM range req %s for [mem %#010Lx-%#010Lx], got %s\n",
34880 - current->comm, current->pid,
34881 + current->comm, task_pid_nr(current),
34882 cattr_name(want_pcm),
34883 (unsigned long long)paddr,
34884 (unsigned long long)(paddr + size - 1),
34885 @@ -838,7 +838,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34886 !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) {
34887 free_memtype(paddr, paddr + size);
34888 pr_err("x86/PAT: %s:%d map pfn expected mapping type %s for [mem %#010Lx-%#010Lx], got %s\n",
34889 - current->comm, current->pid,
34890 + current->comm, task_pid_nr(current),
34891 cattr_name(want_pcm),
34892 (unsigned long long)paddr,
34893 (unsigned long long)(paddr + size - 1),
34894 diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
34895 index 6393108..890adda 100644
34896 --- a/arch/x86/mm/pat_rbtree.c
34897 +++ b/arch/x86/mm/pat_rbtree.c
34898 @@ -161,7 +161,7 @@ success:
34899
34900 failure:
34901 pr_info("x86/PAT: %s:%d conflicting memory types %Lx-%Lx %s<->%s\n",
34902 - current->comm, current->pid, start, end,
34903 + current->comm, task_pid_nr(current), start, end,
34904 cattr_name(found_type), cattr_name(match->type));
34905 return -EBUSY;
34906 }
34907 diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c
34908 index 9f0614d..92ae64a 100644
34909 --- a/arch/x86/mm/pf_in.c
34910 +++ b/arch/x86/mm/pf_in.c
34911 @@ -148,7 +148,7 @@ enum reason_type get_ins_type(unsigned long ins_addr)
34912 int i;
34913 enum reason_type rv = OTHERS;
34914
34915 - p = (unsigned char *)ins_addr;
34916 + p = (unsigned char *)ktla_ktva(ins_addr);
34917 p += skip_prefix(p, &prf);
34918 p += get_opcode(p, &opcode);
34919
34920 @@ -168,7 +168,7 @@ static unsigned int get_ins_reg_width(unsigned long ins_addr)
34921 struct prefix_bits prf;
34922 int i;
34923
34924 - p = (unsigned char *)ins_addr;
34925 + p = (unsigned char *)ktla_ktva(ins_addr);
34926 p += skip_prefix(p, &prf);
34927 p += get_opcode(p, &opcode);
34928
34929 @@ -191,7 +191,7 @@ unsigned int get_ins_mem_width(unsigned long ins_addr)
34930 struct prefix_bits prf;
34931 int i;
34932
34933 - p = (unsigned char *)ins_addr;
34934 + p = (unsigned char *)ktla_ktva(ins_addr);
34935 p += skip_prefix(p, &prf);
34936 p += get_opcode(p, &opcode);
34937
34938 @@ -415,7 +415,7 @@ unsigned long get_ins_reg_val(unsigned long ins_addr, struct pt_regs *regs)
34939 struct prefix_bits prf;
34940 int i;
34941
34942 - p = (unsigned char *)ins_addr;
34943 + p = (unsigned char *)ktla_ktva(ins_addr);
34944 p += skip_prefix(p, &prf);
34945 p += get_opcode(p, &opcode);
34946 for (i = 0; i < ARRAY_SIZE(reg_rop); i++)
34947 @@ -470,7 +470,7 @@ unsigned long get_ins_imm_val(unsigned long ins_addr)
34948 struct prefix_bits prf;
34949 int i;
34950
34951 - p = (unsigned char *)ins_addr;
34952 + p = (unsigned char *)ktla_ktva(ins_addr);
34953 p += skip_prefix(p, &prf);
34954 p += get_opcode(p, &opcode);
34955 for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
34956 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
34957 index fb0a9dd..5ab49c4 100644
34958 --- a/arch/x86/mm/pgtable.c
34959 +++ b/arch/x86/mm/pgtable.c
34960 @@ -98,10 +98,75 @@ static inline void pgd_list_del(pgd_t *pgd)
34961 list_del(&page->lru);
34962 }
34963
34964 -#define UNSHARED_PTRS_PER_PGD \
34965 - (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
34966 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
34967 +pgdval_t clone_pgd_mask __read_only = ~_PAGE_PRESENT;
34968
34969 +void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
34970 +{
34971 + unsigned int count = USER_PGD_PTRS;
34972
34973 + if (!pax_user_shadow_base)
34974 + return;
34975 +
34976 + while (count--)
34977 + *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
34978 +}
34979 +#endif
34980 +
34981 +#ifdef CONFIG_PAX_PER_CPU_PGD
34982 +void __clone_user_pgds(pgd_t *dst, const pgd_t *src)
34983 +{
34984 + unsigned int count = USER_PGD_PTRS;
34985 +
34986 + while (count--) {
34987 + pgd_t pgd;
34988 +
34989 +#ifdef CONFIG_X86_64
34990 + pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
34991 +#else
34992 + pgd = *src++;
34993 +#endif
34994 +
34995 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
34996 + pgd = __pgd(pgd_val(pgd) & clone_pgd_mask);
34997 +#endif
34998 +
34999 + *dst++ = pgd;
35000 + }
35001 +
35002 +}
35003 +#endif
35004 +
35005 +#ifdef CONFIG_X86_64
35006 +#define pxd_t pud_t
35007 +#define pyd_t pgd_t
35008 +#define paravirt_release_pxd(pfn) paravirt_release_pud(pfn)
35009 +#define pgtable_pxd_page_ctor(page) true
35010 +#define pgtable_pxd_page_dtor(page) do {} while (0)
35011 +#define pxd_free(mm, pud) pud_free((mm), (pud))
35012 +#define pyd_populate(mm, pgd, pud) pgd_populate((mm), (pgd), (pud))
35013 +#define pyd_offset(mm, address) pgd_offset((mm), (address))
35014 +#define PYD_SIZE PGDIR_SIZE
35015 +#define mm_inc_nr_pxds(mm) do {} while (0)
35016 +#define mm_dec_nr_pxds(mm) do {} while (0)
35017 +#else
35018 +#define pxd_t pmd_t
35019 +#define pyd_t pud_t
35020 +#define paravirt_release_pxd(pfn) paravirt_release_pmd(pfn)
35021 +#define pgtable_pxd_page_ctor(page) pgtable_pmd_page_ctor(page)
35022 +#define pgtable_pxd_page_dtor(page) pgtable_pmd_page_dtor(page)
35023 +#define pxd_free(mm, pud) pmd_free((mm), (pud))
35024 +#define pyd_populate(mm, pgd, pud) pud_populate((mm), (pgd), (pud))
35025 +#define pyd_offset(mm, address) pud_offset((mm), (address))
35026 +#define PYD_SIZE PUD_SIZE
35027 +#define mm_inc_nr_pxds(mm) mm_inc_nr_pmds(mm)
35028 +#define mm_dec_nr_pxds(mm) mm_dec_nr_pmds(mm)
35029 +#endif
35030 +
35031 +#ifdef CONFIG_PAX_PER_CPU_PGD
35032 +static inline void pgd_ctor(struct mm_struct *mm, pgd_t *pgd) {}
35033 +static inline void pgd_dtor(pgd_t *pgd) {}
35034 +#else
35035 static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
35036 {
35037 BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
35038 @@ -142,6 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
35039 pgd_list_del(pgd);
35040 spin_unlock(&pgd_lock);
35041 }
35042 +#endif
35043
35044 /*
35045 * List of all pgd's needed for non-PAE so it can invalidate entries
35046 @@ -154,7 +220,7 @@ static void pgd_dtor(pgd_t *pgd)
35047 * -- nyc
35048 */
35049
35050 -#ifdef CONFIG_X86_PAE
35051 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
35052 /*
35053 * In PAE mode, we need to do a cr3 reload (=tlb flush) when
35054 * updating the top-level pagetable entries to guarantee the
35055 @@ -166,7 +232,7 @@ static void pgd_dtor(pgd_t *pgd)
35056 * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
35057 * and initialize the kernel pmds here.
35058 */
35059 -#define PREALLOCATED_PMDS UNSHARED_PTRS_PER_PGD
35060 +#define PREALLOCATED_PXDS (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
35061
35062 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35063 {
35064 @@ -184,46 +250,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35065 */
35066 flush_tlb_mm(mm);
35067 }
35068 +#elif defined(CONFIG_X86_64) && defined(CONFIG_PAX_PER_CPU_PGD)
35069 +#define PREALLOCATED_PXDS USER_PGD_PTRS
35070 #else /* !CONFIG_X86_PAE */
35071
35072 /* No need to prepopulate any pagetable entries in non-PAE modes. */
35073 -#define PREALLOCATED_PMDS 0
35074 +#define PREALLOCATED_PXDS 0
35075
35076 #endif /* CONFIG_X86_PAE */
35077
35078 -static void free_pmds(struct mm_struct *mm, pmd_t *pmds[])
35079 +static void free_pxds(struct mm_struct *mm, pxd_t *pxds[])
35080 {
35081 int i;
35082
35083 - for(i = 0; i < PREALLOCATED_PMDS; i++)
35084 - if (pmds[i]) {
35085 - pgtable_pmd_page_dtor(virt_to_page(pmds[i]));
35086 - free_page((unsigned long)pmds[i]);
35087 - mm_dec_nr_pmds(mm);
35088 + for(i = 0; i < PREALLOCATED_PXDS; i++)
35089 + if (pxds[i]) {
35090 + pgtable_pxd_page_dtor(virt_to_page(pxds[i]));
35091 + free_page((unsigned long)pxds[i]);
35092 + mm_dec_nr_pxds(mm);
35093 }
35094 }
35095
35096 -static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35097 +static int preallocate_pxds(struct mm_struct *mm, pxd_t *pxds[])
35098 {
35099 int i;
35100 bool failed = false;
35101
35102 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35103 - pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
35104 - if (!pmd)
35105 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35106 + pxd_t *pxd = (pxd_t *)__get_free_page(PGALLOC_GFP);
35107 + if (!pxd)
35108 failed = true;
35109 - if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
35110 - free_page((unsigned long)pmd);
35111 - pmd = NULL;
35112 + if (pxd && !pgtable_pxd_page_ctor(virt_to_page(pxd))) {
35113 + free_page((unsigned long)pxd);
35114 + pxd = NULL;
35115 failed = true;
35116 }
35117 - if (pmd)
35118 - mm_inc_nr_pmds(mm);
35119 - pmds[i] = pmd;
35120 + if (pxd)
35121 + mm_inc_nr_pxds(mm);
35122 + pxds[i] = pxd;
35123 }
35124
35125 if (failed) {
35126 - free_pmds(mm, pmds);
35127 + free_pxds(mm, pxds);
35128 return -ENOMEM;
35129 }
35130
35131 @@ -236,43 +304,47 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35132 * preallocate which never got a corresponding vma will need to be
35133 * freed manually.
35134 */
35135 -static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
35136 +static void pgd_mop_up_pxds(struct mm_struct *mm, pgd_t *pgdp)
35137 {
35138 int i;
35139
35140 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35141 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35142 pgd_t pgd = pgdp[i];
35143
35144 if (pgd_val(pgd) != 0) {
35145 - pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
35146 + pxd_t *pxd = (pxd_t *)pgd_page_vaddr(pgd);
35147
35148 - pgdp[i] = native_make_pgd(0);
35149 + set_pgd(pgdp + i, native_make_pgd(0));
35150
35151 - paravirt_release_pmd(pgd_val(pgd) >> PAGE_SHIFT);
35152 - pmd_free(mm, pmd);
35153 - mm_dec_nr_pmds(mm);
35154 + paravirt_release_pxd(pgd_val(pgd) >> PAGE_SHIFT);
35155 + pxd_free(mm, pxd);
35156 + mm_dec_nr_pxds(mm);
35157 }
35158 }
35159 }
35160
35161 -static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
35162 +static void pgd_prepopulate_pxd(struct mm_struct *mm, pgd_t *pgd, pxd_t *pxds[])
35163 {
35164 - pud_t *pud;
35165 + pyd_t *pyd;
35166 int i;
35167
35168 - if (PREALLOCATED_PMDS == 0) /* Work around gcc-3.4.x bug */
35169 + if (PREALLOCATED_PXDS == 0) /* Work around gcc-3.4.x bug */
35170 return;
35171
35172 - pud = pud_offset(pgd, 0);
35173 +#ifdef CONFIG_X86_64
35174 + pyd = pyd_offset(mm, 0L);
35175 +#else
35176 + pyd = pyd_offset(pgd, 0L);
35177 +#endif
35178
35179 - for (i = 0; i < PREALLOCATED_PMDS; i++, pud++) {
35180 - pmd_t *pmd = pmds[i];
35181 + for (i = 0; i < PREALLOCATED_PXDS; i++, pyd++) {
35182 + pxd_t *pxd = pxds[i];
35183
35184 if (i >= KERNEL_PGD_BOUNDARY)
35185 - memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35186 - sizeof(pmd_t) * PTRS_PER_PMD);
35187 + memcpy(pxd, (pxd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35188 + sizeof(pxd_t) * PTRS_PER_PMD);
35189
35190 - pud_populate(mm, pud, pmd);
35191 + pyd_populate(mm, pyd, pxd);
35192 }
35193 }
35194
35195 @@ -354,7 +426,7 @@ static inline void _pgd_free(pgd_t *pgd)
35196 pgd_t *pgd_alloc(struct mm_struct *mm)
35197 {
35198 pgd_t *pgd;
35199 - pmd_t *pmds[PREALLOCATED_PMDS];
35200 + pxd_t *pxds[PREALLOCATED_PXDS];
35201
35202 pgd = _pgd_alloc();
35203
35204 @@ -363,11 +435,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35205
35206 mm->pgd = pgd;
35207
35208 - if (preallocate_pmds(mm, pmds) != 0)
35209 + if (preallocate_pxds(mm, pxds) != 0)
35210 goto out_free_pgd;
35211
35212 if (paravirt_pgd_alloc(mm) != 0)
35213 - goto out_free_pmds;
35214 + goto out_free_pxds;
35215
35216 /*
35217 * Make sure that pre-populating the pmds is atomic with
35218 @@ -377,14 +449,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35219 spin_lock(&pgd_lock);
35220
35221 pgd_ctor(mm, pgd);
35222 - pgd_prepopulate_pmd(mm, pgd, pmds);
35223 + pgd_prepopulate_pxd(mm, pgd, pxds);
35224
35225 spin_unlock(&pgd_lock);
35226
35227 return pgd;
35228
35229 -out_free_pmds:
35230 - free_pmds(mm, pmds);
35231 +out_free_pxds:
35232 + free_pxds(mm, pxds);
35233 out_free_pgd:
35234 _pgd_free(pgd);
35235 out:
35236 @@ -393,7 +465,7 @@ out:
35237
35238 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
35239 {
35240 - pgd_mop_up_pmds(mm, pgd);
35241 + pgd_mop_up_pxds(mm, pgd);
35242 pgd_dtor(pgd);
35243 paravirt_pgd_free(mm, pgd);
35244 _pgd_free(pgd);
35245 @@ -544,6 +616,55 @@ void __init reserve_top_address(unsigned long reserve)
35246
35247 int fixmaps_set;
35248
35249 +static void fix_user_fixmap(enum fixed_addresses idx, unsigned long address)
35250 +{
35251 +#ifdef CONFIG_X86_64
35252 + pgd_t *pgd;
35253 + pud_t *pud;
35254 + pmd_t *pmd;
35255 +
35256 + switch (idx) {
35257 + default:
35258 + return;
35259 +
35260 +#ifdef CONFIG_X86_VSYSCALL_EMULATION
35261 + case VSYSCALL_PAGE:
35262 + break;
35263 +#endif
35264 +
35265 +#ifdef CONFIG_PARAVIRT_CLOCK
35266 + case PVCLOCK_FIXMAP_BEGIN ... PVCLOCK_FIXMAP_END:
35267 + break;
35268 +#endif
35269 + }
35270 +
35271 + pgd = pgd_offset_k(address);
35272 + if (!(pgd_val(*pgd) & _PAGE_USER)) {
35273 +#ifdef CONFIG_PAX_PER_CPU_PGD
35274 + unsigned int cpu;
35275 + pgd_t *pgd_cpu;
35276 +
35277 + for_each_possible_cpu(cpu) {
35278 + pgd_cpu = pgd_offset_cpu(cpu, kernel, address);
35279 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35280 +
35281 + pgd_cpu = pgd_offset_cpu(cpu, user, address);
35282 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35283 + }
35284 +#endif
35285 + set_pgd(pgd, __pgd(pgd_val(*pgd) | _PAGE_USER));
35286 + }
35287 +
35288 + pud = pud_offset(pgd, address);
35289 + if (!(pud_val(*pud) & _PAGE_USER))
35290 + set_pud(pud, __pud(pud_val(*pud) | _PAGE_USER));
35291 +
35292 + pmd = pmd_offset(pud, address);
35293 + if (!(pmd_val(*pmd) & _PAGE_USER))
35294 + set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
35295 +#endif
35296 +}
35297 +
35298 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35299 {
35300 unsigned long address = __fix_to_virt(idx);
35301 @@ -554,6 +675,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35302 }
35303 set_pte_vaddr(address, pte);
35304 fixmaps_set++;
35305 + fix_user_fixmap(idx, address);
35306 }
35307
35308 void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
35309 @@ -620,9 +742,11 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
35310
35311 prot = pgprot_4k_2_large(prot);
35312
35313 + pax_open_kernel();
35314 set_pte((pte_t *)pmd, pfn_pte(
35315 (u64)addr >> PAGE_SHIFT,
35316 __pgprot(pgprot_val(prot) | _PAGE_PSE)));
35317 + pax_close_kernel();
35318
35319 return 1;
35320 }
35321 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
35322 index 75cc097..79a097f 100644
35323 --- a/arch/x86/mm/pgtable_32.c
35324 +++ b/arch/x86/mm/pgtable_32.c
35325 @@ -47,10 +47,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
35326 return;
35327 }
35328 pte = pte_offset_kernel(pmd, vaddr);
35329 +
35330 + pax_open_kernel();
35331 if (pte_val(pteval))
35332 set_pte_at(&init_mm, vaddr, pte, pteval);
35333 else
35334 pte_clear(&init_mm, vaddr, pte);
35335 + pax_close_kernel();
35336
35337 /*
35338 * It's enough to flush this one mapping.
35339 diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
35340 index 90555bf..f5f1828 100644
35341 --- a/arch/x86/mm/setup_nx.c
35342 +++ b/arch/x86/mm/setup_nx.c
35343 @@ -5,8 +5,10 @@
35344 #include <asm/pgtable.h>
35345 #include <asm/proto.h>
35346
35347 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35348 static int disable_nx;
35349
35350 +#ifndef CONFIG_PAX_PAGEEXEC
35351 /*
35352 * noexec = on|off
35353 *
35354 @@ -28,12 +30,17 @@ static int __init noexec_setup(char *str)
35355 return 0;
35356 }
35357 early_param("noexec", noexec_setup);
35358 +#endif
35359 +
35360 +#endif
35361
35362 void x86_configure_nx(void)
35363 {
35364 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35365 if (cpu_has_nx && !disable_nx)
35366 __supported_pte_mask |= _PAGE_NX;
35367 else
35368 +#endif
35369 __supported_pte_mask &= ~_PAGE_NX;
35370 }
35371
35372 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
35373 index 8ddb5d0..6f70318 100644
35374 --- a/arch/x86/mm/tlb.c
35375 +++ b/arch/x86/mm/tlb.c
35376 @@ -45,7 +45,11 @@ void leave_mm(int cpu)
35377 BUG();
35378 if (cpumask_test_cpu(cpu, mm_cpumask(active_mm))) {
35379 cpumask_clear_cpu(cpu, mm_cpumask(active_mm));
35380 +
35381 +#ifndef CONFIG_PAX_PER_CPU_PGD
35382 load_cr3(swapper_pg_dir);
35383 +#endif
35384 +
35385 /*
35386 * This gets called in the idle path where RCU
35387 * functions differently. Tracing normally
35388 diff --git a/arch/x86/mm/uderef_64.c b/arch/x86/mm/uderef_64.c
35389 new file mode 100644
35390 index 0000000..3fda3f3
35391 --- /dev/null
35392 +++ b/arch/x86/mm/uderef_64.c
35393 @@ -0,0 +1,37 @@
35394 +#include <linux/mm.h>
35395 +#include <asm/pgtable.h>
35396 +#include <asm/uaccess.h>
35397 +
35398 +#ifdef CONFIG_PAX_MEMORY_UDEREF
35399 +/* PaX: due to the special call convention these functions must
35400 + * - remain leaf functions under all configurations,
35401 + * - never be called directly, only dereferenced from the wrappers.
35402 + */
35403 +void __used __pax_open_userland(void)
35404 +{
35405 + unsigned int cpu;
35406 +
35407 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35408 + return;
35409 +
35410 + cpu = raw_get_cpu();
35411 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_KERNEL);
35412 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
35413 + raw_put_cpu_no_resched();
35414 +}
35415 +EXPORT_SYMBOL(__pax_open_userland);
35416 +
35417 +void __used __pax_close_userland(void)
35418 +{
35419 + unsigned int cpu;
35420 +
35421 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35422 + return;
35423 +
35424 + cpu = raw_get_cpu();
35425 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_USER);
35426 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
35427 + raw_put_cpu_no_resched();
35428 +}
35429 +EXPORT_SYMBOL(__pax_close_userland);
35430 +#endif
35431 diff --git a/arch/x86/net/bpf_jit.S b/arch/x86/net/bpf_jit.S
35432 index 4093216..44b6b83 100644
35433 --- a/arch/x86/net/bpf_jit.S
35434 +++ b/arch/x86/net/bpf_jit.S
35435 @@ -8,6 +8,7 @@
35436 * of the License.
35437 */
35438 #include <linux/linkage.h>
35439 +#include <asm/alternative-asm.h>
35440
35441 /*
35442 * Calling convention :
35443 @@ -37,6 +38,7 @@ sk_load_word_positive_offset:
35444 jle bpf_slow_path_word
35445 mov (SKBDATA,%rsi),%eax
35446 bswap %eax /* ntohl() */
35447 + pax_force_retaddr
35448 ret
35449
35450 sk_load_half:
35451 @@ -54,6 +56,7 @@ sk_load_half_positive_offset:
35452 jle bpf_slow_path_half
35453 movzwl (SKBDATA,%rsi),%eax
35454 rol $8,%ax # ntohs()
35455 + pax_force_retaddr
35456 ret
35457
35458 sk_load_byte:
35459 @@ -68,6 +71,7 @@ sk_load_byte_positive_offset:
35460 cmp %esi,%r9d /* if (offset >= hlen) goto bpf_slow_path_byte */
35461 jle bpf_slow_path_byte
35462 movzbl (SKBDATA,%rsi),%eax
35463 + pax_force_retaddr
35464 ret
35465
35466 /* rsi contains offset and can be scratched */
35467 @@ -89,6 +93,7 @@ bpf_slow_path_word:
35468 js bpf_error
35469 mov - MAX_BPF_STACK + 32(%rbp),%eax
35470 bswap %eax
35471 + pax_force_retaddr
35472 ret
35473
35474 bpf_slow_path_half:
35475 @@ -97,12 +102,14 @@ bpf_slow_path_half:
35476 mov - MAX_BPF_STACK + 32(%rbp),%ax
35477 rol $8,%ax
35478 movzwl %ax,%eax
35479 + pax_force_retaddr
35480 ret
35481
35482 bpf_slow_path_byte:
35483 bpf_slow_path_common(1)
35484 js bpf_error
35485 movzbl - MAX_BPF_STACK + 32(%rbp),%eax
35486 + pax_force_retaddr
35487 ret
35488
35489 #define sk_negative_common(SIZE) \
35490 @@ -125,6 +132,7 @@ sk_load_word_negative_offset:
35491 sk_negative_common(4)
35492 mov (%rax), %eax
35493 bswap %eax
35494 + pax_force_retaddr
35495 ret
35496
35497 bpf_slow_path_half_neg:
35498 @@ -136,6 +144,7 @@ sk_load_half_negative_offset:
35499 mov (%rax),%ax
35500 rol $8,%ax
35501 movzwl %ax,%eax
35502 + pax_force_retaddr
35503 ret
35504
35505 bpf_slow_path_byte_neg:
35506 @@ -145,6 +154,7 @@ sk_load_byte_negative_offset:
35507 .globl sk_load_byte_negative_offset
35508 sk_negative_common(1)
35509 movzbl (%rax), %eax
35510 + pax_force_retaddr
35511 ret
35512
35513 bpf_error:
35514 @@ -155,4 +165,5 @@ bpf_error:
35515 mov - MAX_BPF_STACK + 16(%rbp),%r14
35516 mov - MAX_BPF_STACK + 24(%rbp),%r15
35517 leaveq
35518 + pax_force_retaddr
35519 ret
35520 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
35521 index 70efcd0..0a689c9 100644
35522 --- a/arch/x86/net/bpf_jit_comp.c
35523 +++ b/arch/x86/net/bpf_jit_comp.c
35524 @@ -14,7 +14,11 @@
35525 #include <asm/cacheflush.h>
35526 #include <linux/bpf.h>
35527
35528 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
35529 +int bpf_jit_enable __read_only;
35530 +#else
35531 int bpf_jit_enable __read_mostly;
35532 +#endif
35533
35534 /*
35535 * assembly code in arch/x86/net/bpf_jit.S
35536 @@ -176,7 +180,9 @@ static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg)
35537 static void jit_fill_hole(void *area, unsigned int size)
35538 {
35539 /* fill whole space with int3 instructions */
35540 + pax_open_kernel();
35541 memset(area, 0xcc, size);
35542 + pax_close_kernel();
35543 }
35544
35545 struct jit_context {
35546 @@ -1030,7 +1036,9 @@ common_load:
35547 pr_err("bpf_jit_compile fatal error\n");
35548 return -EFAULT;
35549 }
35550 + pax_open_kernel();
35551 memcpy(image + proglen, temp, ilen);
35552 + pax_close_kernel();
35553 }
35554 proglen += ilen;
35555 addrs[i] = proglen;
35556 @@ -1107,7 +1115,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
35557
35558 if (image) {
35559 bpf_flush_icache(header, image + proglen);
35560 - set_memory_ro((unsigned long)header, header->pages);
35561 prog->bpf_func = (void *)image;
35562 prog->jited = true;
35563 }
35564 @@ -1120,12 +1127,8 @@ void bpf_jit_free(struct bpf_prog *fp)
35565 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
35566 struct bpf_binary_header *header = (void *)addr;
35567
35568 - if (!fp->jited)
35569 - goto free_filter;
35570 + if (fp->jited)
35571 + bpf_jit_binary_free(header);
35572
35573 - set_memory_rw(addr, header->pages);
35574 - bpf_jit_binary_free(header);
35575 -
35576 -free_filter:
35577 bpf_prog_unlock_free(fp);
35578 }
35579 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
35580 index 4e664bd..2beeaa2 100644
35581 --- a/arch/x86/oprofile/backtrace.c
35582 +++ b/arch/x86/oprofile/backtrace.c
35583 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
35584 struct stack_frame_ia32 *fp;
35585 unsigned long bytes;
35586
35587 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35588 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35589 if (bytes != 0)
35590 return NULL;
35591
35592 - fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame);
35593 + fp = (struct stack_frame_ia32 __force_kernel *) compat_ptr(bufhead[0].next_frame);
35594
35595 oprofile_add_trace(bufhead[0].return_address);
35596
35597 @@ -92,7 +92,7 @@ static struct stack_frame *dump_user_backtrace(struct stack_frame *head)
35598 struct stack_frame bufhead[2];
35599 unsigned long bytes;
35600
35601 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35602 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35603 if (bytes != 0)
35604 return NULL;
35605
35606 diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
35607 index 1d2e639..f6ef82a 100644
35608 --- a/arch/x86/oprofile/nmi_int.c
35609 +++ b/arch/x86/oprofile/nmi_int.c
35610 @@ -23,6 +23,7 @@
35611 #include <asm/nmi.h>
35612 #include <asm/msr.h>
35613 #include <asm/apic.h>
35614 +#include <asm/pgtable.h>
35615
35616 #include "op_counter.h"
35617 #include "op_x86_model.h"
35618 @@ -785,8 +786,11 @@ int __init op_nmi_init(struct oprofile_operations *ops)
35619 if (ret)
35620 return ret;
35621
35622 - if (!model->num_virt_counters)
35623 - model->num_virt_counters = model->num_counters;
35624 + if (!model->num_virt_counters) {
35625 + pax_open_kernel();
35626 + *(unsigned int *)&model->num_virt_counters = model->num_counters;
35627 + pax_close_kernel();
35628 + }
35629
35630 mux_init(ops);
35631
35632 diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
35633 index 50d86c0..7985318 100644
35634 --- a/arch/x86/oprofile/op_model_amd.c
35635 +++ b/arch/x86/oprofile/op_model_amd.c
35636 @@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops)
35637 num_counters = AMD64_NUM_COUNTERS;
35638 }
35639
35640 - op_amd_spec.num_counters = num_counters;
35641 - op_amd_spec.num_controls = num_counters;
35642 - op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35643 + pax_open_kernel();
35644 + *(unsigned int *)&op_amd_spec.num_counters = num_counters;
35645 + *(unsigned int *)&op_amd_spec.num_controls = num_counters;
35646 + *(unsigned int *)&op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35647 + pax_close_kernel();
35648
35649 return 0;
35650 }
35651 diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
35652 index d90528e..0127e2b 100644
35653 --- a/arch/x86/oprofile/op_model_ppro.c
35654 +++ b/arch/x86/oprofile/op_model_ppro.c
35655 @@ -19,6 +19,7 @@
35656 #include <asm/msr.h>
35657 #include <asm/apic.h>
35658 #include <asm/nmi.h>
35659 +#include <asm/pgtable.h>
35660
35661 #include "op_x86_model.h"
35662 #include "op_counter.h"
35663 @@ -221,8 +222,10 @@ static void arch_perfmon_setup_counters(void)
35664
35665 num_counters = min((int)eax.split.num_counters, OP_MAX_COUNTER);
35666
35667 - op_arch_perfmon_spec.num_counters = num_counters;
35668 - op_arch_perfmon_spec.num_controls = num_counters;
35669 + pax_open_kernel();
35670 + *(unsigned int *)&op_arch_perfmon_spec.num_counters = num_counters;
35671 + *(unsigned int *)&op_arch_perfmon_spec.num_controls = num_counters;
35672 + pax_close_kernel();
35673 }
35674
35675 static int arch_perfmon_init(struct oprofile_operations *ignore)
35676 diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h
35677 index 71e8a67..6a313bb 100644
35678 --- a/arch/x86/oprofile/op_x86_model.h
35679 +++ b/arch/x86/oprofile/op_x86_model.h
35680 @@ -52,7 +52,7 @@ struct op_x86_model_spec {
35681 void (*switch_ctrl)(struct op_x86_model_spec const *model,
35682 struct op_msrs const * const msrs);
35683 #endif
35684 -};
35685 +} __do_const;
35686
35687 struct op_counter_config;
35688
35689 diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
35690 index 0d24e7c..d937be3 100644
35691 --- a/arch/x86/pci/intel_mid_pci.c
35692 +++ b/arch/x86/pci/intel_mid_pci.c
35693 @@ -283,7 +283,7 @@ int __init intel_mid_pci_init(void)
35694 pci_mmcfg_late_init();
35695 pcibios_enable_irq = intel_mid_pci_irq_enable;
35696 pcibios_disable_irq = intel_mid_pci_irq_disable;
35697 - pci_root_ops = intel_mid_pci_ops;
35698 + memcpy((void *)&pci_root_ops, &intel_mid_pci_ops, sizeof pci_root_ops);
35699 pci_soc_mode = 1;
35700 /* Continue with standard init */
35701 return 1;
35702 diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
35703 index 32e7034..bf2dd06 100644
35704 --- a/arch/x86/pci/irq.c
35705 +++ b/arch/x86/pci/irq.c
35706 @@ -51,7 +51,7 @@ struct irq_router {
35707 struct irq_router_handler {
35708 u16 vendor;
35709 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
35710 -};
35711 +} __do_const;
35712
35713 int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
35714 void (*pcibios_disable_irq)(struct pci_dev *dev) = pirq_disable_irq;
35715 @@ -792,7 +792,7 @@ static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router
35716 return 0;
35717 }
35718
35719 -static __initdata struct irq_router_handler pirq_routers[] = {
35720 +static __initconst const struct irq_router_handler pirq_routers[] = {
35721 { PCI_VENDOR_ID_INTEL, intel_router_probe },
35722 { PCI_VENDOR_ID_AL, ali_router_probe },
35723 { PCI_VENDOR_ID_ITE, ite_router_probe },
35724 @@ -819,7 +819,7 @@ static struct pci_dev *pirq_router_dev;
35725 static void __init pirq_find_router(struct irq_router *r)
35726 {
35727 struct irq_routing_table *rt = pirq_table;
35728 - struct irq_router_handler *h;
35729 + const struct irq_router_handler *h;
35730
35731 #ifdef CONFIG_PCI_BIOS
35732 if (!rt->signature) {
35733 @@ -1092,7 +1092,7 @@ static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d)
35734 return 0;
35735 }
35736
35737 -static struct dmi_system_id __initdata pciirq_dmi_table[] = {
35738 +static const struct dmi_system_id __initconst pciirq_dmi_table[] = {
35739 {
35740 .callback = fix_broken_hp_bios_irq9,
35741 .ident = "HP Pavilion N5400 Series Laptop",
35742 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
35743 index 9b83b90..2c256c5 100644
35744 --- a/arch/x86/pci/pcbios.c
35745 +++ b/arch/x86/pci/pcbios.c
35746 @@ -79,7 +79,7 @@ union bios32 {
35747 static struct {
35748 unsigned long address;
35749 unsigned short segment;
35750 -} bios32_indirect __initdata = { 0, __KERNEL_CS };
35751 +} bios32_indirect __initdata = { 0, __PCIBIOS_CS };
35752
35753 /*
35754 * Returns the entry point for the given service, NULL on error
35755 @@ -92,37 +92,80 @@ static unsigned long __init bios32_service(unsigned long service)
35756 unsigned long length; /* %ecx */
35757 unsigned long entry; /* %edx */
35758 unsigned long flags;
35759 + struct desc_struct d, *gdt;
35760
35761 local_irq_save(flags);
35762 - __asm__("lcall *(%%edi); cld"
35763 +
35764 + gdt = get_cpu_gdt_table(smp_processor_id());
35765 +
35766 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x9B, 0xC);
35767 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35768 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x93, 0xC);
35769 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35770 +
35771 + __asm__("movw %w7, %%ds; lcall *(%%edi); push %%ss; pop %%ds; cld"
35772 : "=a" (return_code),
35773 "=b" (address),
35774 "=c" (length),
35775 "=d" (entry)
35776 : "0" (service),
35777 "1" (0),
35778 - "D" (&bios32_indirect));
35779 + "D" (&bios32_indirect),
35780 + "r"(__PCIBIOS_DS)
35781 + : "memory");
35782 +
35783 + pax_open_kernel();
35784 + gdt[GDT_ENTRY_PCIBIOS_CS].a = 0;
35785 + gdt[GDT_ENTRY_PCIBIOS_CS].b = 0;
35786 + gdt[GDT_ENTRY_PCIBIOS_DS].a = 0;
35787 + gdt[GDT_ENTRY_PCIBIOS_DS].b = 0;
35788 + pax_close_kernel();
35789 +
35790 local_irq_restore(flags);
35791
35792 switch (return_code) {
35793 - case 0:
35794 - return address + entry;
35795 - case 0x80: /* Not present */
35796 - printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35797 - return 0;
35798 - default: /* Shouldn't happen */
35799 - printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35800 - service, return_code);
35801 + case 0: {
35802 + int cpu;
35803 + unsigned char flags;
35804 +
35805 + printk(KERN_INFO "bios32_service: base:%08lx length:%08lx entry:%08lx\n", address, length, entry);
35806 + if (address >= 0xFFFF0 || length > 0x100000 - address || length <= entry) {
35807 + printk(KERN_WARNING "bios32_service: not valid\n");
35808 return 0;
35809 + }
35810 + address = address + PAGE_OFFSET;
35811 + length += 16UL; /* some BIOSs underreport this... */
35812 + flags = 4;
35813 + if (length >= 64*1024*1024) {
35814 + length >>= PAGE_SHIFT;
35815 + flags |= 8;
35816 + }
35817 +
35818 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
35819 + gdt = get_cpu_gdt_table(cpu);
35820 + pack_descriptor(&d, address, length, 0x9b, flags);
35821 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35822 + pack_descriptor(&d, address, length, 0x93, flags);
35823 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35824 + }
35825 + return entry;
35826 + }
35827 + case 0x80: /* Not present */
35828 + printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35829 + return 0;
35830 + default: /* Shouldn't happen */
35831 + printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35832 + service, return_code);
35833 + return 0;
35834 }
35835 }
35836
35837 static struct {
35838 unsigned long address;
35839 unsigned short segment;
35840 -} pci_indirect = { 0, __KERNEL_CS };
35841 +} pci_indirect __read_only = { 0, __PCIBIOS_CS };
35842
35843 -static int pci_bios_present;
35844 +static int pci_bios_present __read_only;
35845
35846 static int __init check_pcibios(void)
35847 {
35848 @@ -131,11 +174,13 @@ static int __init check_pcibios(void)
35849 unsigned long flags, pcibios_entry;
35850
35851 if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
35852 - pci_indirect.address = pcibios_entry + PAGE_OFFSET;
35853 + pci_indirect.address = pcibios_entry;
35854
35855 local_irq_save(flags);
35856 - __asm__(
35857 - "lcall *(%%edi); cld\n\t"
35858 + __asm__("movw %w6, %%ds\n\t"
35859 + "lcall *%%ss:(%%edi); cld\n\t"
35860 + "push %%ss\n\t"
35861 + "pop %%ds\n\t"
35862 "jc 1f\n\t"
35863 "xor %%ah, %%ah\n"
35864 "1:"
35865 @@ -144,7 +189,8 @@ static int __init check_pcibios(void)
35866 "=b" (ebx),
35867 "=c" (ecx)
35868 : "1" (PCIBIOS_PCI_BIOS_PRESENT),
35869 - "D" (&pci_indirect)
35870 + "D" (&pci_indirect),
35871 + "r" (__PCIBIOS_DS)
35872 : "memory");
35873 local_irq_restore(flags);
35874
35875 @@ -189,7 +235,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35876
35877 switch (len) {
35878 case 1:
35879 - __asm__("lcall *(%%esi); cld\n\t"
35880 + __asm__("movw %w6, %%ds\n\t"
35881 + "lcall *%%ss:(%%esi); cld\n\t"
35882 + "push %%ss\n\t"
35883 + "pop %%ds\n\t"
35884 "jc 1f\n\t"
35885 "xor %%ah, %%ah\n"
35886 "1:"
35887 @@ -198,7 +247,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35888 : "1" (PCIBIOS_READ_CONFIG_BYTE),
35889 "b" (bx),
35890 "D" ((long)reg),
35891 - "S" (&pci_indirect));
35892 + "S" (&pci_indirect),
35893 + "r" (__PCIBIOS_DS));
35894 /*
35895 * Zero-extend the result beyond 8 bits, do not trust the
35896 * BIOS having done it:
35897 @@ -206,7 +256,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35898 *value &= 0xff;
35899 break;
35900 case 2:
35901 - __asm__("lcall *(%%esi); cld\n\t"
35902 + __asm__("movw %w6, %%ds\n\t"
35903 + "lcall *%%ss:(%%esi); cld\n\t"
35904 + "push %%ss\n\t"
35905 + "pop %%ds\n\t"
35906 "jc 1f\n\t"
35907 "xor %%ah, %%ah\n"
35908 "1:"
35909 @@ -215,7 +268,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35910 : "1" (PCIBIOS_READ_CONFIG_WORD),
35911 "b" (bx),
35912 "D" ((long)reg),
35913 - "S" (&pci_indirect));
35914 + "S" (&pci_indirect),
35915 + "r" (__PCIBIOS_DS));
35916 /*
35917 * Zero-extend the result beyond 16 bits, do not trust the
35918 * BIOS having done it:
35919 @@ -223,7 +277,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35920 *value &= 0xffff;
35921 break;
35922 case 4:
35923 - __asm__("lcall *(%%esi); cld\n\t"
35924 + __asm__("movw %w6, %%ds\n\t"
35925 + "lcall *%%ss:(%%esi); cld\n\t"
35926 + "push %%ss\n\t"
35927 + "pop %%ds\n\t"
35928 "jc 1f\n\t"
35929 "xor %%ah, %%ah\n"
35930 "1:"
35931 @@ -232,7 +289,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35932 : "1" (PCIBIOS_READ_CONFIG_DWORD),
35933 "b" (bx),
35934 "D" ((long)reg),
35935 - "S" (&pci_indirect));
35936 + "S" (&pci_indirect),
35937 + "r" (__PCIBIOS_DS));
35938 break;
35939 }
35940
35941 @@ -256,7 +314,10 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35942
35943 switch (len) {
35944 case 1:
35945 - __asm__("lcall *(%%esi); cld\n\t"
35946 + __asm__("movw %w6, %%ds\n\t"
35947 + "lcall *%%ss:(%%esi); cld\n\t"
35948 + "push %%ss\n\t"
35949 + "pop %%ds\n\t"
35950 "jc 1f\n\t"
35951 "xor %%ah, %%ah\n"
35952 "1:"
35953 @@ -265,10 +326,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35954 "c" (value),
35955 "b" (bx),
35956 "D" ((long)reg),
35957 - "S" (&pci_indirect));
35958 + "S" (&pci_indirect),
35959 + "r" (__PCIBIOS_DS));
35960 break;
35961 case 2:
35962 - __asm__("lcall *(%%esi); cld\n\t"
35963 + __asm__("movw %w6, %%ds\n\t"
35964 + "lcall *%%ss:(%%esi); cld\n\t"
35965 + "push %%ss\n\t"
35966 + "pop %%ds\n\t"
35967 "jc 1f\n\t"
35968 "xor %%ah, %%ah\n"
35969 "1:"
35970 @@ -277,10 +342,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35971 "c" (value),
35972 "b" (bx),
35973 "D" ((long)reg),
35974 - "S" (&pci_indirect));
35975 + "S" (&pci_indirect),
35976 + "r" (__PCIBIOS_DS));
35977 break;
35978 case 4:
35979 - __asm__("lcall *(%%esi); cld\n\t"
35980 + __asm__("movw %w6, %%ds\n\t"
35981 + "lcall *%%ss:(%%esi); cld\n\t"
35982 + "push %%ss\n\t"
35983 + "pop %%ds\n\t"
35984 "jc 1f\n\t"
35985 "xor %%ah, %%ah\n"
35986 "1:"
35987 @@ -289,7 +358,8 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35988 "c" (value),
35989 "b" (bx),
35990 "D" ((long)reg),
35991 - "S" (&pci_indirect));
35992 + "S" (&pci_indirect),
35993 + "r" (__PCIBIOS_DS));
35994 break;
35995 }
35996
35997 @@ -394,10 +464,13 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
35998
35999 DBG("PCI: Fetching IRQ routing table... ");
36000 __asm__("push %%es\n\t"
36001 + "movw %w8, %%ds\n\t"
36002 "push %%ds\n\t"
36003 "pop %%es\n\t"
36004 - "lcall *(%%esi); cld\n\t"
36005 + "lcall *%%ss:(%%esi); cld\n\t"
36006 "pop %%es\n\t"
36007 + "push %%ss\n\t"
36008 + "pop %%ds\n"
36009 "jc 1f\n\t"
36010 "xor %%ah, %%ah\n"
36011 "1:"
36012 @@ -408,7 +481,8 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
36013 "1" (0),
36014 "D" ((long) &opt),
36015 "S" (&pci_indirect),
36016 - "m" (opt)
36017 + "m" (opt),
36018 + "r" (__PCIBIOS_DS)
36019 : "memory");
36020 DBG("OK ret=%d, size=%d, map=%x\n", ret, opt.size, map);
36021 if (ret & 0xff00)
36022 @@ -432,7 +506,10 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36023 {
36024 int ret;
36025
36026 - __asm__("lcall *(%%esi); cld\n\t"
36027 + __asm__("movw %w5, %%ds\n\t"
36028 + "lcall *%%ss:(%%esi); cld\n\t"
36029 + "push %%ss\n\t"
36030 + "pop %%ds\n"
36031 "jc 1f\n\t"
36032 "xor %%ah, %%ah\n"
36033 "1:"
36034 @@ -440,7 +517,8 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36035 : "0" (PCIBIOS_SET_PCI_HW_INT),
36036 "b" ((dev->bus->number << 8) | dev->devfn),
36037 "c" ((irq << 8) | (pin + 10)),
36038 - "S" (&pci_indirect));
36039 + "S" (&pci_indirect),
36040 + "r" (__PCIBIOS_DS));
36041 return !(ret & 0xff00);
36042 }
36043 EXPORT_SYMBOL(pcibios_set_irq_routing);
36044 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
36045 index ed5b673..24d2d53 100644
36046 --- a/arch/x86/platform/efi/efi_32.c
36047 +++ b/arch/x86/platform/efi/efi_32.c
36048 @@ -61,11 +61,27 @@ pgd_t * __init efi_call_phys_prolog(void)
36049 struct desc_ptr gdt_descr;
36050 pgd_t *save_pgd;
36051
36052 +#ifdef CONFIG_PAX_KERNEXEC
36053 + struct desc_struct d;
36054 +#endif
36055 +
36056 /* Current pgd is swapper_pg_dir, we'll restore it later: */
36057 +#ifdef CONFIG_PAX_PER_CPU_PGD
36058 + save_pgd = get_cpu_pgd(smp_processor_id(), kernel);
36059 +#else
36060 save_pgd = swapper_pg_dir;
36061 +#endif
36062 +
36063 load_cr3(initial_page_table);
36064 __flush_tlb_all();
36065
36066 +#ifdef CONFIG_PAX_KERNEXEC
36067 + pack_descriptor(&d, 0, 0xFFFFF, 0x9B, 0xC);
36068 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36069 + pack_descriptor(&d, 0, 0xFFFFF, 0x93, 0xC);
36070 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36071 +#endif
36072 +
36073 gdt_descr.address = __pa(get_cpu_gdt_table(0));
36074 gdt_descr.size = GDT_SIZE - 1;
36075 load_gdt(&gdt_descr);
36076 @@ -77,6 +93,14 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36077 {
36078 struct desc_ptr gdt_descr;
36079
36080 +#ifdef CONFIG_PAX_KERNEXEC
36081 + struct desc_struct d;
36082 +
36083 + memset(&d, 0, sizeof d);
36084 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36085 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36086 +#endif
36087 +
36088 gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
36089 gdt_descr.size = GDT_SIZE - 1;
36090 load_gdt(&gdt_descr);
36091 diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
36092 index a0ac0f9..f41d324 100644
36093 --- a/arch/x86/platform/efi/efi_64.c
36094 +++ b/arch/x86/platform/efi/efi_64.c
36095 @@ -96,6 +96,11 @@ pgd_t * __init efi_call_phys_prolog(void)
36096 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
36097 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
36098 }
36099 +
36100 +#ifdef CONFIG_PAX_PER_CPU_PGD
36101 + load_cr3(swapper_pg_dir);
36102 +#endif
36103 +
36104 __flush_tlb_all();
36105
36106 return save_pgd;
36107 @@ -119,6 +124,10 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36108
36109 kfree(save_pgd);
36110
36111 +#ifdef CONFIG_PAX_PER_CPU_PGD
36112 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
36113 +#endif
36114 +
36115 __flush_tlb_all();
36116 early_code_mapping_set_exec(0);
36117 }
36118 @@ -148,8 +157,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
36119 unsigned npages;
36120 pgd_t *pgd;
36121
36122 - if (efi_enabled(EFI_OLD_MEMMAP))
36123 + if (efi_enabled(EFI_OLD_MEMMAP)) {
36124 + /* PaX: We need to disable the NX bit in the PGD, otherwise we won't be
36125 + * able to execute the EFI services.
36126 + */
36127 + if (__supported_pte_mask & _PAGE_NX) {
36128 + unsigned long addr = (unsigned long) __va(0);
36129 + pgd_t pe = __pgd(pgd_val(*pgd_offset_k(addr)) & ~_PAGE_NX);
36130 +
36131 + pr_alert("PAX: Disabling NX protection for low memory map. Try booting without \"efi=old_map\"\n");
36132 +#ifdef CONFIG_PAX_PER_CPU_PGD
36133 + set_pgd(pgd_offset_cpu(0, kernel, addr), pe);
36134 +#endif
36135 + set_pgd(pgd_offset_k(addr), pe);
36136 + }
36137 +
36138 return 0;
36139 + }
36140
36141 efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd;
36142 pgd = __va(efi_scratch.efi_pgt);
36143 diff --git a/arch/x86/platform/efi/efi_stub_32.S b/arch/x86/platform/efi/efi_stub_32.S
36144 index 040192b..7d3300f 100644
36145 --- a/arch/x86/platform/efi/efi_stub_32.S
36146 +++ b/arch/x86/platform/efi/efi_stub_32.S
36147 @@ -6,7 +6,9 @@
36148 */
36149
36150 #include <linux/linkage.h>
36151 +#include <linux/init.h>
36152 #include <asm/page_types.h>
36153 +#include <asm/segment.h>
36154
36155 /*
36156 * efi_call_phys(void *, ...) is a function with variable parameters.
36157 @@ -20,7 +22,7 @@
36158 * service functions will comply with gcc calling convention, too.
36159 */
36160
36161 -.text
36162 +__INIT
36163 ENTRY(efi_call_phys)
36164 /*
36165 * 0. The function can only be called in Linux kernel. So CS has been
36166 @@ -36,10 +38,24 @@ ENTRY(efi_call_phys)
36167 * The mapping of lower virtual memory has been created in prolog and
36168 * epilog.
36169 */
36170 - movl $1f, %edx
36171 - subl $__PAGE_OFFSET, %edx
36172 - jmp *%edx
36173 +#ifdef CONFIG_PAX_KERNEXEC
36174 + movl $(__KERNEXEC_EFI_DS), %edx
36175 + mov %edx, %ds
36176 + mov %edx, %es
36177 + mov %edx, %ss
36178 + addl $2f,(1f)
36179 + ljmp *(1f)
36180 +
36181 +__INITDATA
36182 +1: .long __LOAD_PHYSICAL_ADDR, __KERNEXEC_EFI_CS
36183 +.previous
36184 +
36185 +2:
36186 + subl $2b,(1b)
36187 +#else
36188 + jmp 1f-__PAGE_OFFSET
36189 1:
36190 +#endif
36191
36192 /*
36193 * 2. Now on the top of stack is the return
36194 @@ -47,14 +63,8 @@ ENTRY(efi_call_phys)
36195 * parameter 2, ..., param n. To make things easy, we save the return
36196 * address of efi_call_phys in a global variable.
36197 */
36198 - popl %edx
36199 - movl %edx, saved_return_addr
36200 - /* get the function pointer into ECX*/
36201 - popl %ecx
36202 - movl %ecx, efi_rt_function_ptr
36203 - movl $2f, %edx
36204 - subl $__PAGE_OFFSET, %edx
36205 - pushl %edx
36206 + popl (saved_return_addr)
36207 + popl (efi_rt_function_ptr)
36208
36209 /*
36210 * 3. Clear PG bit in %CR0.
36211 @@ -73,9 +83,8 @@ ENTRY(efi_call_phys)
36212 /*
36213 * 5. Call the physical function.
36214 */
36215 - jmp *%ecx
36216 + call *(efi_rt_function_ptr-__PAGE_OFFSET)
36217
36218 -2:
36219 /*
36220 * 6. After EFI runtime service returns, control will return to
36221 * following instruction. We'd better readjust stack pointer first.
36222 @@ -88,35 +97,36 @@ ENTRY(efi_call_phys)
36223 movl %cr0, %edx
36224 orl $0x80000000, %edx
36225 movl %edx, %cr0
36226 - jmp 1f
36227 -1:
36228 +
36229 /*
36230 * 8. Now restore the virtual mode from flat mode by
36231 * adding EIP with PAGE_OFFSET.
36232 */
36233 - movl $1f, %edx
36234 - jmp *%edx
36235 +#ifdef CONFIG_PAX_KERNEXEC
36236 + movl $(__KERNEL_DS), %edx
36237 + mov %edx, %ds
36238 + mov %edx, %es
36239 + mov %edx, %ss
36240 + ljmp $(__KERNEL_CS),$1f
36241 +#else
36242 + jmp 1f+__PAGE_OFFSET
36243 +#endif
36244 1:
36245
36246 /*
36247 * 9. Balance the stack. And because EAX contain the return value,
36248 * we'd better not clobber it.
36249 */
36250 - leal efi_rt_function_ptr, %edx
36251 - movl (%edx), %ecx
36252 - pushl %ecx
36253 + pushl (efi_rt_function_ptr)
36254
36255 /*
36256 - * 10. Push the saved return address onto the stack and return.
36257 + * 10. Return to the saved return address.
36258 */
36259 - leal saved_return_addr, %edx
36260 - movl (%edx), %ecx
36261 - pushl %ecx
36262 - ret
36263 + jmpl *(saved_return_addr)
36264 ENDPROC(efi_call_phys)
36265 .previous
36266
36267 -.data
36268 +__INITDATA
36269 saved_return_addr:
36270 .long 0
36271 efi_rt_function_ptr:
36272 diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S
36273 index 86d0f9e..6d499f4 100644
36274 --- a/arch/x86/platform/efi/efi_stub_64.S
36275 +++ b/arch/x86/platform/efi/efi_stub_64.S
36276 @@ -11,6 +11,7 @@
36277 #include <asm/msr.h>
36278 #include <asm/processor-flags.h>
36279 #include <asm/page_types.h>
36280 +#include <asm/alternative-asm.h>
36281
36282 #define SAVE_XMM \
36283 mov %rsp, %rax; \
36284 @@ -88,6 +89,7 @@ ENTRY(efi_call)
36285 RESTORE_PGT
36286 addq $48, %rsp
36287 RESTORE_XMM
36288 + pax_force_retaddr 0, 1
36289 ret
36290 ENDPROC(efi_call)
36291
36292 diff --git a/arch/x86/platform/intel-mid/intel-mid.c b/arch/x86/platform/intel-mid/intel-mid.c
36293 index 01d54ea..ba1d71c 100644
36294 --- a/arch/x86/platform/intel-mid/intel-mid.c
36295 +++ b/arch/x86/platform/intel-mid/intel-mid.c
36296 @@ -63,7 +63,7 @@ enum intel_mid_timer_options intel_mid_timer_options;
36297 /* intel_mid_ops to store sub arch ops */
36298 struct intel_mid_ops *intel_mid_ops;
36299 /* getter function for sub arch ops*/
36300 -static void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36301 +static const void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36302 enum intel_mid_cpu_type __intel_mid_cpu_chip;
36303 EXPORT_SYMBOL_GPL(__intel_mid_cpu_chip);
36304
36305 @@ -71,9 +71,10 @@ static void intel_mid_power_off(void)
36306 {
36307 };
36308
36309 -static void intel_mid_reboot(void)
36310 +static void __noreturn intel_mid_reboot(void)
36311 {
36312 intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
36313 + BUG();
36314 }
36315
36316 static unsigned long __init intel_mid_calibrate_tsc(void)
36317 diff --git a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36318 index 3c1c386..59a68ed 100644
36319 --- a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36320 +++ b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36321 @@ -13,6 +13,6 @@
36322 /* For every CPU addition a new get_<cpuname>_ops interface needs
36323 * to be added.
36324 */
36325 -extern void *get_penwell_ops(void);
36326 -extern void *get_cloverview_ops(void);
36327 -extern void *get_tangier_ops(void);
36328 +extern const void *get_penwell_ops(void);
36329 +extern const void *get_cloverview_ops(void);
36330 +extern const void *get_tangier_ops(void);
36331 diff --git a/arch/x86/platform/intel-mid/mfld.c b/arch/x86/platform/intel-mid/mfld.c
36332 index 23381d2..8ddc10e 100644
36333 --- a/arch/x86/platform/intel-mid/mfld.c
36334 +++ b/arch/x86/platform/intel-mid/mfld.c
36335 @@ -64,12 +64,12 @@ static void __init penwell_arch_setup(void)
36336 pm_power_off = mfld_power_off;
36337 }
36338
36339 -void *get_penwell_ops(void)
36340 +const void *get_penwell_ops(void)
36341 {
36342 return &penwell_ops;
36343 }
36344
36345 -void *get_cloverview_ops(void)
36346 +const void *get_cloverview_ops(void)
36347 {
36348 return &penwell_ops;
36349 }
36350 diff --git a/arch/x86/platform/intel-mid/mrfl.c b/arch/x86/platform/intel-mid/mrfl.c
36351 index aaca917..66eadbc 100644
36352 --- a/arch/x86/platform/intel-mid/mrfl.c
36353 +++ b/arch/x86/platform/intel-mid/mrfl.c
36354 @@ -97,7 +97,7 @@ static struct intel_mid_ops tangier_ops = {
36355 .arch_setup = tangier_arch_setup,
36356 };
36357
36358 -void *get_tangier_ops(void)
36359 +const void *get_tangier_ops(void)
36360 {
36361 return &tangier_ops;
36362 }
36363 diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c
36364 index 278e4da..35db1a9 100644
36365 --- a/arch/x86/platform/intel-quark/imr_selftest.c
36366 +++ b/arch/x86/platform/intel-quark/imr_selftest.c
36367 @@ -55,7 +55,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
36368 */
36369 static void __init imr_self_test(void)
36370 {
36371 - phys_addr_t base = virt_to_phys(&_text);
36372 + phys_addr_t base = virt_to_phys((void *)ktla_ktva((unsigned long)_text));
36373 size_t size = virt_to_phys(&__end_rodata) - base;
36374 const char *fmt_over = "overlapped IMR @ (0x%08lx - 0x%08lx)\n";
36375 int ret;
36376 diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
36377 index d6ee929..3637cb5 100644
36378 --- a/arch/x86/platform/olpc/olpc_dt.c
36379 +++ b/arch/x86/platform/olpc/olpc_dt.c
36380 @@ -156,7 +156,7 @@ void * __init prom_early_alloc(unsigned long size)
36381 return res;
36382 }
36383
36384 -static struct of_pdt_ops prom_olpc_ops __initdata = {
36385 +static struct of_pdt_ops prom_olpc_ops __initconst = {
36386 .nextprop = olpc_dt_nextprop,
36387 .getproplen = olpc_dt_getproplen,
36388 .getproperty = olpc_dt_getproperty,
36389 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
36390 index 9ab5279..8ba4611 100644
36391 --- a/arch/x86/power/cpu.c
36392 +++ b/arch/x86/power/cpu.c
36393 @@ -134,11 +134,8 @@ static void do_fpu_end(void)
36394 static void fix_processor_context(void)
36395 {
36396 int cpu = smp_processor_id();
36397 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
36398 -#ifdef CONFIG_X86_64
36399 - struct desc_struct *desc = get_cpu_gdt_table(cpu);
36400 - tss_desc tss;
36401 -#endif
36402 + struct tss_struct *t = cpu_tss + cpu;
36403 +
36404 set_tss_desc(cpu, t); /*
36405 * This just modifies memory; should not be
36406 * necessary. But... This is necessary, because
36407 @@ -147,10 +144,6 @@ static void fix_processor_context(void)
36408 */
36409
36410 #ifdef CONFIG_X86_64
36411 - memcpy(&tss, &desc[GDT_ENTRY_TSS], sizeof(tss_desc));
36412 - tss.type = 0x9; /* The available 64-bit TSS (see AMD vol 2, pg 91 */
36413 - write_gdt_entry(desc, GDT_ENTRY_TSS, &tss, DESC_TSS);
36414 -
36415 syscall_init(); /* This sets MSR_*STAR and related */
36416 #endif
36417 load_TR_desc(); /* This does ltr */
36418 diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
36419 index 0b7a63d..dff2199 100644
36420 --- a/arch/x86/realmode/init.c
36421 +++ b/arch/x86/realmode/init.c
36422 @@ -68,7 +68,13 @@ void __init setup_real_mode(void)
36423 __va(real_mode_header->trampoline_header);
36424
36425 #ifdef CONFIG_X86_32
36426 - trampoline_header->start = __pa_symbol(startup_32_smp);
36427 + trampoline_header->start = __pa_symbol(ktla_ktva((unsigned long)startup_32_smp));
36428 +
36429 +#ifdef CONFIG_PAX_KERNEXEC
36430 + trampoline_header->start -= LOAD_PHYSICAL_ADDR;
36431 +#endif
36432 +
36433 + trampoline_header->boot_cs = __BOOT_CS;
36434 trampoline_header->gdt_limit = __BOOT_DS + 7;
36435 trampoline_header->gdt_base = __pa_symbol(boot_gdt);
36436 #else
36437 @@ -84,7 +90,7 @@ void __init setup_real_mode(void)
36438 *trampoline_cr4_features = __read_cr4();
36439
36440 trampoline_pgd = (u64 *) __va(real_mode_header->trampoline_pgd);
36441 - trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd;
36442 + trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd & ~_PAGE_NX;
36443 trampoline_pgd[511] = init_level4_pgt[511].pgd;
36444 #endif
36445 }
36446 diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile
36447 index 2730d77..2e4cd19 100644
36448 --- a/arch/x86/realmode/rm/Makefile
36449 +++ b/arch/x86/realmode/rm/Makefile
36450 @@ -68,5 +68,8 @@ $(obj)/realmode.relocs: $(obj)/realmode.elf FORCE
36451
36452 KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \
36453 -I$(srctree)/arch/x86/boot
36454 +ifdef CONSTIFY_PLUGIN
36455 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
36456 +endif
36457 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
36458 GCOV_PROFILE := n
36459 diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
36460 index a28221d..93c40f1 100644
36461 --- a/arch/x86/realmode/rm/header.S
36462 +++ b/arch/x86/realmode/rm/header.S
36463 @@ -30,7 +30,9 @@ GLOBAL(real_mode_header)
36464 #endif
36465 /* APM/BIOS reboot */
36466 .long pa_machine_real_restart_asm
36467 -#ifdef CONFIG_X86_64
36468 +#ifdef CONFIG_X86_32
36469 + .long __KERNEL_CS
36470 +#else
36471 .long __KERNEL32_CS
36472 #endif
36473 END(real_mode_header)
36474 diff --git a/arch/x86/realmode/rm/reboot.S b/arch/x86/realmode/rm/reboot.S
36475 index d66c607..3def845 100644
36476 --- a/arch/x86/realmode/rm/reboot.S
36477 +++ b/arch/x86/realmode/rm/reboot.S
36478 @@ -27,6 +27,10 @@ ENTRY(machine_real_restart_asm)
36479 lgdtl pa_tr_gdt
36480
36481 /* Disable paging to drop us out of long mode */
36482 + movl %cr4, %eax
36483 + andl $~X86_CR4_PCIDE, %eax
36484 + movl %eax, %cr4
36485 +
36486 movl %cr0, %eax
36487 andl $~X86_CR0_PG, %eax
36488 movl %eax, %cr0
36489 diff --git a/arch/x86/realmode/rm/trampoline_32.S b/arch/x86/realmode/rm/trampoline_32.S
36490 index 48ddd76..c26749f 100644
36491 --- a/arch/x86/realmode/rm/trampoline_32.S
36492 +++ b/arch/x86/realmode/rm/trampoline_32.S
36493 @@ -24,6 +24,12 @@
36494 #include <asm/page_types.h>
36495 #include "realmode.h"
36496
36497 +#ifdef CONFIG_PAX_KERNEXEC
36498 +#define ta(X) (X)
36499 +#else
36500 +#define ta(X) (pa_ ## X)
36501 +#endif
36502 +
36503 .text
36504 .code16
36505
36506 @@ -38,8 +44,6 @@ ENTRY(trampoline_start)
36507
36508 cli # We should be safe anyway
36509
36510 - movl tr_start, %eax # where we need to go
36511 -
36512 movl $0xA5A5A5A5, trampoline_status
36513 # write marker for master knows we're running
36514
36515 @@ -55,7 +59,7 @@ ENTRY(trampoline_start)
36516 movw $1, %dx # protected mode (PE) bit
36517 lmsw %dx # into protected mode
36518
36519 - ljmpl $__BOOT_CS, $pa_startup_32
36520 + ljmpl *(trampoline_header)
36521
36522 .section ".text32","ax"
36523 .code32
36524 @@ -66,7 +70,7 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S
36525 .balign 8
36526 GLOBAL(trampoline_header)
36527 tr_start: .space 4
36528 - tr_gdt_pad: .space 2
36529 + tr_boot_cs: .space 2
36530 tr_gdt: .space 6
36531 END(trampoline_header)
36532
36533 diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
36534 index dac7b20..72dbaca 100644
36535 --- a/arch/x86/realmode/rm/trampoline_64.S
36536 +++ b/arch/x86/realmode/rm/trampoline_64.S
36537 @@ -93,6 +93,7 @@ ENTRY(startup_32)
36538 movl %edx, %gs
36539
36540 movl pa_tr_cr4, %eax
36541 + andl $~X86_CR4_PCIDE, %eax
36542 movl %eax, %cr4 # Enable PAE mode
36543
36544 # Setup trampoline 4 level pagetables
36545 @@ -106,7 +107,7 @@ ENTRY(startup_32)
36546 wrmsr
36547
36548 # Enable paging and in turn activate Long Mode
36549 - movl $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE), %eax
36550 + movl $(X86_CR0_PG | X86_CR0_PE), %eax
36551 movl %eax, %cr0
36552
36553 /*
36554 diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S
36555 index 9e7e147..25a4158 100644
36556 --- a/arch/x86/realmode/rm/wakeup_asm.S
36557 +++ b/arch/x86/realmode/rm/wakeup_asm.S
36558 @@ -126,11 +126,10 @@ ENTRY(wakeup_start)
36559 lgdtl pmode_gdt
36560
36561 /* This really couldn't... */
36562 - movl pmode_entry, %eax
36563 movl pmode_cr0, %ecx
36564 movl %ecx, %cr0
36565 - ljmpl $__KERNEL_CS, $pa_startup_32
36566 - /* -> jmp *%eax in trampoline_32.S */
36567 +
36568 + ljmpl *pmode_entry
36569 #else
36570 jmp trampoline_start
36571 #endif
36572 diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
36573 index 604a37e..e49702a 100644
36574 --- a/arch/x86/tools/Makefile
36575 +++ b/arch/x86/tools/Makefile
36576 @@ -37,7 +37,7 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in
36577
36578 $(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
36579
36580 -HOST_EXTRACFLAGS += -I$(srctree)/tools/include
36581 +HOST_EXTRACFLAGS += -I$(srctree)/tools/include -ggdb
36582 hostprogs-y += relocs
36583 relocs-objs := relocs_32.o relocs_64.o relocs_common.o
36584 PHONY += relocs
36585 diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
36586 index 0c2fae8..88d7719 100644
36587 --- a/arch/x86/tools/relocs.c
36588 +++ b/arch/x86/tools/relocs.c
36589 @@ -1,5 +1,7 @@
36590 /* This is included from relocs_32/64.c */
36591
36592 +#include "../../../include/generated/autoconf.h"
36593 +
36594 #define ElfW(type) _ElfW(ELF_BITS, type)
36595 #define _ElfW(bits, type) __ElfW(bits, type)
36596 #define __ElfW(bits, type) Elf##bits##_##type
36597 @@ -11,6 +13,7 @@
36598 #define Elf_Sym ElfW(Sym)
36599
36600 static Elf_Ehdr ehdr;
36601 +static Elf_Phdr *phdr;
36602
36603 struct relocs {
36604 uint32_t *offset;
36605 @@ -386,9 +389,39 @@ static void read_ehdr(FILE *fp)
36606 }
36607 }
36608
36609 +static void read_phdrs(FILE *fp)
36610 +{
36611 + unsigned int i;
36612 +
36613 + phdr = calloc(ehdr.e_phnum, sizeof(Elf_Phdr));
36614 + if (!phdr) {
36615 + die("Unable to allocate %d program headers\n",
36616 + ehdr.e_phnum);
36617 + }
36618 + if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
36619 + die("Seek to %d failed: %s\n",
36620 + ehdr.e_phoff, strerror(errno));
36621 + }
36622 + if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
36623 + die("Cannot read ELF program headers: %s\n",
36624 + strerror(errno));
36625 + }
36626 + for(i = 0; i < ehdr.e_phnum; i++) {
36627 + phdr[i].p_type = elf_word_to_cpu(phdr[i].p_type);
36628 + phdr[i].p_offset = elf_off_to_cpu(phdr[i].p_offset);
36629 + phdr[i].p_vaddr = elf_addr_to_cpu(phdr[i].p_vaddr);
36630 + phdr[i].p_paddr = elf_addr_to_cpu(phdr[i].p_paddr);
36631 + phdr[i].p_filesz = elf_word_to_cpu(phdr[i].p_filesz);
36632 + phdr[i].p_memsz = elf_word_to_cpu(phdr[i].p_memsz);
36633 + phdr[i].p_flags = elf_word_to_cpu(phdr[i].p_flags);
36634 + phdr[i].p_align = elf_word_to_cpu(phdr[i].p_align);
36635 + }
36636 +
36637 +}
36638 +
36639 static void read_shdrs(FILE *fp)
36640 {
36641 - int i;
36642 + unsigned int i;
36643 Elf_Shdr shdr;
36644
36645 secs = calloc(ehdr.e_shnum, sizeof(struct section));
36646 @@ -423,7 +456,7 @@ static void read_shdrs(FILE *fp)
36647
36648 static void read_strtabs(FILE *fp)
36649 {
36650 - int i;
36651 + unsigned int i;
36652 for (i = 0; i < ehdr.e_shnum; i++) {
36653 struct section *sec = &secs[i];
36654 if (sec->shdr.sh_type != SHT_STRTAB) {
36655 @@ -448,7 +481,7 @@ static void read_strtabs(FILE *fp)
36656
36657 static void read_symtabs(FILE *fp)
36658 {
36659 - int i,j;
36660 + unsigned int i,j;
36661 for (i = 0; i < ehdr.e_shnum; i++) {
36662 struct section *sec = &secs[i];
36663 if (sec->shdr.sh_type != SHT_SYMTAB) {
36664 @@ -479,9 +512,11 @@ static void read_symtabs(FILE *fp)
36665 }
36666
36667
36668 -static void read_relocs(FILE *fp)
36669 +static void read_relocs(FILE *fp, int use_real_mode)
36670 {
36671 - int i,j;
36672 + unsigned int i,j;
36673 + uint32_t base;
36674 +
36675 for (i = 0; i < ehdr.e_shnum; i++) {
36676 struct section *sec = &secs[i];
36677 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36678 @@ -501,9 +536,22 @@ static void read_relocs(FILE *fp)
36679 die("Cannot read symbol table: %s\n",
36680 strerror(errno));
36681 }
36682 + base = 0;
36683 +
36684 +#ifdef CONFIG_X86_32
36685 + for (j = 0; !use_real_mode && j < ehdr.e_phnum; j++) {
36686 + if (phdr[j].p_type != PT_LOAD )
36687 + continue;
36688 + if (secs[sec->shdr.sh_info].shdr.sh_offset < phdr[j].p_offset || secs[sec->shdr.sh_info].shdr.sh_offset >= phdr[j].p_offset + phdr[j].p_filesz)
36689 + continue;
36690 + base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
36691 + break;
36692 + }
36693 +#endif
36694 +
36695 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
36696 Elf_Rel *rel = &sec->reltab[j];
36697 - rel->r_offset = elf_addr_to_cpu(rel->r_offset);
36698 + rel->r_offset = elf_addr_to_cpu(rel->r_offset) + base;
36699 rel->r_info = elf_xword_to_cpu(rel->r_info);
36700 #if (SHT_REL_TYPE == SHT_RELA)
36701 rel->r_addend = elf_xword_to_cpu(rel->r_addend);
36702 @@ -515,7 +563,7 @@ static void read_relocs(FILE *fp)
36703
36704 static void print_absolute_symbols(void)
36705 {
36706 - int i;
36707 + unsigned int i;
36708 const char *format;
36709
36710 if (ELF_BITS == 64)
36711 @@ -528,7 +576,7 @@ static void print_absolute_symbols(void)
36712 for (i = 0; i < ehdr.e_shnum; i++) {
36713 struct section *sec = &secs[i];
36714 char *sym_strtab;
36715 - int j;
36716 + unsigned int j;
36717
36718 if (sec->shdr.sh_type != SHT_SYMTAB) {
36719 continue;
36720 @@ -555,7 +603,7 @@ static void print_absolute_symbols(void)
36721
36722 static void print_absolute_relocs(void)
36723 {
36724 - int i, printed = 0;
36725 + unsigned int i, printed = 0;
36726 const char *format;
36727
36728 if (ELF_BITS == 64)
36729 @@ -568,7 +616,7 @@ static void print_absolute_relocs(void)
36730 struct section *sec_applies, *sec_symtab;
36731 char *sym_strtab;
36732 Elf_Sym *sh_symtab;
36733 - int j;
36734 + unsigned int j;
36735 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36736 continue;
36737 }
36738 @@ -645,13 +693,13 @@ static void add_reloc(struct relocs *r, uint32_t offset)
36739 static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36740 Elf_Sym *sym, const char *symname))
36741 {
36742 - int i;
36743 + unsigned int i;
36744 /* Walk through the relocations */
36745 for (i = 0; i < ehdr.e_shnum; i++) {
36746 char *sym_strtab;
36747 Elf_Sym *sh_symtab;
36748 struct section *sec_applies, *sec_symtab;
36749 - int j;
36750 + unsigned int j;
36751 struct section *sec = &secs[i];
36752
36753 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36754 @@ -697,7 +745,7 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36755 * kernel data and does not require special treatment.
36756 *
36757 */
36758 -static int per_cpu_shndx = -1;
36759 +static unsigned int per_cpu_shndx = ~0;
36760 static Elf_Addr per_cpu_load_addr;
36761
36762 static void percpu_init(void)
36763 @@ -830,6 +878,23 @@ static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36764 {
36765 unsigned r_type = ELF32_R_TYPE(rel->r_info);
36766 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
36767 + char *sym_strtab = sec->link->link->strtab;
36768 +
36769 + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
36770 + if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
36771 + return 0;
36772 +
36773 +#ifdef CONFIG_PAX_KERNEXEC
36774 + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
36775 + if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
36776 + return 0;
36777 + if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
36778 + return 0;
36779 + if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
36780 + return 0;
36781 + if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
36782 + return 0;
36783 +#endif
36784
36785 switch (r_type) {
36786 case R_386_NONE:
36787 @@ -968,7 +1033,7 @@ static int write32_as_text(uint32_t v, FILE *f)
36788
36789 static void emit_relocs(int as_text, int use_real_mode)
36790 {
36791 - int i;
36792 + unsigned int i;
36793 int (*write_reloc)(uint32_t, FILE *) = write32;
36794 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36795 const char *symname);
36796 @@ -1078,10 +1143,11 @@ void process(FILE *fp, int use_real_mode, int as_text,
36797 {
36798 regex_init(use_real_mode);
36799 read_ehdr(fp);
36800 + read_phdrs(fp);
36801 read_shdrs(fp);
36802 read_strtabs(fp);
36803 read_symtabs(fp);
36804 - read_relocs(fp);
36805 + read_relocs(fp, use_real_mode);
36806 if (ELF_BITS == 64)
36807 percpu_init();
36808 if (show_absolute_syms) {
36809 diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c
36810 index 744afdc..a0b8a0d 100644
36811 --- a/arch/x86/um/mem_32.c
36812 +++ b/arch/x86/um/mem_32.c
36813 @@ -20,7 +20,7 @@ static int __init gate_vma_init(void)
36814 gate_vma.vm_start = FIXADDR_USER_START;
36815 gate_vma.vm_end = FIXADDR_USER_END;
36816 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
36817 - gate_vma.vm_page_prot = __P101;
36818 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
36819
36820 return 0;
36821 }
36822 diff --git a/arch/x86/um/tls_32.c b/arch/x86/um/tls_32.c
36823 index 48e3858..ab4458c 100644
36824 --- a/arch/x86/um/tls_32.c
36825 +++ b/arch/x86/um/tls_32.c
36826 @@ -261,7 +261,7 @@ out:
36827 if (unlikely(task == current &&
36828 !t->arch.tls_array[idx - GDT_ENTRY_TLS_MIN].flushed)) {
36829 printk(KERN_ERR "get_tls_entry: task with pid %d got here "
36830 - "without flushed TLS.", current->pid);
36831 + "without flushed TLS.", task_pid_nr(current));
36832 }
36833
36834 return 0;
36835 diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
36836 index c7b15f3..cc09a65 100644
36837 --- a/arch/x86/xen/Kconfig
36838 +++ b/arch/x86/xen/Kconfig
36839 @@ -10,6 +10,7 @@ config XEN
36840 select XEN_HAVE_VPMU
36841 depends on X86_64 || (X86_32 && X86_PAE)
36842 depends on X86_LOCAL_APIC && X86_TSC
36843 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_XEN
36844 help
36845 This is the Linux Xen port. Enabling this will allow the
36846 kernel to boot in a paravirtualized environment under the
36847 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
36848 index 993b7a7..59dec9a 100644
36849 --- a/arch/x86/xen/enlighten.c
36850 +++ b/arch/x86/xen/enlighten.c
36851 @@ -130,8 +130,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
36852
36853 struct shared_info xen_dummy_shared_info;
36854
36855 -void *xen_initial_gdt;
36856 -
36857 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
36858 __read_mostly int xen_have_vector_callback;
36859 EXPORT_SYMBOL_GPL(xen_have_vector_callback);
36860 @@ -589,8 +587,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
36861 {
36862 unsigned long va = dtr->address;
36863 unsigned int size = dtr->size + 1;
36864 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36865 - unsigned long frames[pages];
36866 + unsigned long frames[65536 / PAGE_SIZE];
36867 int f;
36868
36869 /*
36870 @@ -638,8 +635,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36871 {
36872 unsigned long va = dtr->address;
36873 unsigned int size = dtr->size + 1;
36874 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36875 - unsigned long frames[pages];
36876 + unsigned long frames[(GDT_SIZE + PAGE_SIZE - 1) / PAGE_SIZE];
36877 int f;
36878
36879 /*
36880 @@ -647,7 +643,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36881 * 8-byte entries, or 16 4k pages..
36882 */
36883
36884 - BUG_ON(size > 65536);
36885 + BUG_ON(size > GDT_SIZE);
36886 BUG_ON(va & ~PAGE_MASK);
36887
36888 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
36889 @@ -1270,7 +1266,7 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
36890 #endif
36891 };
36892
36893 -static void xen_reboot(int reason)
36894 +static __noreturn void xen_reboot(int reason)
36895 {
36896 struct sched_shutdown r = { .reason = reason };
36897 int cpu;
36898 @@ -1278,26 +1274,26 @@ static void xen_reboot(int reason)
36899 for_each_online_cpu(cpu)
36900 xen_pmu_finish(cpu);
36901
36902 - if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
36903 - BUG();
36904 + HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
36905 + BUG();
36906 }
36907
36908 -static void xen_restart(char *msg)
36909 +static __noreturn void xen_restart(char *msg)
36910 {
36911 xen_reboot(SHUTDOWN_reboot);
36912 }
36913
36914 -static void xen_emergency_restart(void)
36915 +static __noreturn void xen_emergency_restart(void)
36916 {
36917 xen_reboot(SHUTDOWN_reboot);
36918 }
36919
36920 -static void xen_machine_halt(void)
36921 +static __noreturn void xen_machine_halt(void)
36922 {
36923 xen_reboot(SHUTDOWN_poweroff);
36924 }
36925
36926 -static void xen_machine_power_off(void)
36927 +static __noreturn void xen_machine_power_off(void)
36928 {
36929 if (pm_power_off)
36930 pm_power_off();
36931 @@ -1450,8 +1446,11 @@ static void __ref xen_setup_gdt(int cpu)
36932 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
36933 pv_cpu_ops.load_gdt = xen_load_gdt_boot;
36934
36935 - setup_stack_canary_segment(0);
36936 - switch_to_new_gdt(0);
36937 + setup_stack_canary_segment(cpu);
36938 +#ifdef CONFIG_X86_64
36939 + load_percpu_segment(cpu);
36940 +#endif
36941 + switch_to_new_gdt(cpu);
36942
36943 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
36944 pv_cpu_ops.load_gdt = xen_load_gdt;
36945 @@ -1567,7 +1566,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
36946 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
36947
36948 /* Work out if we support NX */
36949 - x86_configure_nx();
36950 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
36951 + if ((cpuid_eax(0x80000000) & 0xffff0000) == 0x80000000 &&
36952 + (cpuid_edx(0x80000001) & (1U << (X86_FEATURE_NX & 31)))) {
36953 + unsigned l, h;
36954 +
36955 + __supported_pte_mask |= _PAGE_NX;
36956 + rdmsr(MSR_EFER, l, h);
36957 + l |= EFER_NX;
36958 + wrmsr(MSR_EFER, l, h);
36959 + }
36960 +#endif
36961
36962 /* Get mfn list */
36963 xen_build_dynamic_phys_to_machine();
36964 @@ -1595,13 +1604,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
36965
36966 machine_ops = xen_machine_ops;
36967
36968 - /*
36969 - * The only reliable way to retain the initial address of the
36970 - * percpu gdt_page is to remember it here, so we can go and
36971 - * mark it RW later, when the initial percpu area is freed.
36972 - */
36973 - xen_initial_gdt = &per_cpu(gdt_page, 0);
36974 -
36975 xen_smp_init();
36976
36977 #ifdef CONFIG_ACPI_NUMA
36978 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
36979 index 9c479fe..7ec4091 100644
36980 --- a/arch/x86/xen/mmu.c
36981 +++ b/arch/x86/xen/mmu.c
36982 @@ -1950,7 +1950,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
36983 * L3_k[511] -> level2_fixmap_pgt */
36984 convert_pfn_mfn(level3_kernel_pgt);
36985
36986 + convert_pfn_mfn(level3_vmalloc_start_pgt);
36987 + convert_pfn_mfn(level3_vmalloc_end_pgt);
36988 + convert_pfn_mfn(level3_vmemmap_pgt);
36989 /* L3_k[511][506] -> level1_fixmap_pgt */
36990 + /* L3_k[511][507] -> level1_vsyscall_pgt */
36991 convert_pfn_mfn(level2_fixmap_pgt);
36992 }
36993 /* We get [511][511] and have Xen's version of level2_kernel_pgt */
36994 @@ -1980,11 +1984,22 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
36995 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
36996 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
36997 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
36998 + set_page_prot(level3_vmalloc_start_pgt, PAGE_KERNEL_RO);
36999 + set_page_prot(level3_vmalloc_end_pgt, PAGE_KERNEL_RO);
37000 + set_page_prot(level3_vmemmap_pgt, PAGE_KERNEL_RO);
37001 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
37002 set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
37003 + set_page_prot(level2_vmemmap_pgt, PAGE_KERNEL_RO);
37004 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
37005 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
37006 - set_page_prot(level1_fixmap_pgt, PAGE_KERNEL_RO);
37007 + set_page_prot(level1_modules_pgt[0], PAGE_KERNEL_RO);
37008 + set_page_prot(level1_modules_pgt[1], PAGE_KERNEL_RO);
37009 + set_page_prot(level1_modules_pgt[2], PAGE_KERNEL_RO);
37010 + set_page_prot(level1_modules_pgt[3], PAGE_KERNEL_RO);
37011 + set_page_prot(level1_fixmap_pgt[0], PAGE_KERNEL_RO);
37012 + set_page_prot(level1_fixmap_pgt[1], PAGE_KERNEL_RO);
37013 + set_page_prot(level1_fixmap_pgt[2], PAGE_KERNEL_RO);
37014 + set_page_prot(level1_vsyscall_pgt, PAGE_KERNEL_RO);
37015
37016 /* Pin down new L4 */
37017 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
37018 @@ -2395,6 +2410,7 @@ static void __init xen_post_allocator_init(void)
37019 pv_mmu_ops.set_pud = xen_set_pud;
37020 #if CONFIG_PGTABLE_LEVELS == 4
37021 pv_mmu_ops.set_pgd = xen_set_pgd;
37022 + pv_mmu_ops.set_pgd_batched = xen_set_pgd;
37023 #endif
37024
37025 /* This will work as long as patching hasn't happened yet
37026 @@ -2473,6 +2489,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
37027 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
37028 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
37029 .set_pgd = xen_set_pgd_hyper,
37030 + .set_pgd_batched = xen_set_pgd_hyper,
37031
37032 .alloc_pud = xen_alloc_pmd_init,
37033 .release_pud = xen_release_pmd_init,
37034 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
37035 index 3f4ebf0..f074dc1 100644
37036 --- a/arch/x86/xen/smp.c
37037 +++ b/arch/x86/xen/smp.c
37038 @@ -306,17 +306,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
37039
37040 if (xen_pv_domain()) {
37041 if (!xen_feature(XENFEAT_writable_page_tables))
37042 - /* We've switched to the "real" per-cpu gdt, so make
37043 - * sure the old memory can be recycled. */
37044 - make_lowmem_page_readwrite(xen_initial_gdt);
37045 -
37046 #ifdef CONFIG_X86_32
37047 /*
37048 * Xen starts us with XEN_FLAT_RING1_DS, but linux code
37049 * expects __USER_DS
37050 */
37051 - loadsegment(ds, __USER_DS);
37052 - loadsegment(es, __USER_DS);
37053 + loadsegment(ds, __KERNEL_DS);
37054 + loadsegment(es, __KERNEL_DS);
37055 #endif
37056
37057 xen_filter_cpu_maps();
37058 @@ -399,7 +395,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37059 #ifdef CONFIG_X86_32
37060 /* Note: PVH is not yet supported on x86_32. */
37061 ctxt->user_regs.fs = __KERNEL_PERCPU;
37062 - ctxt->user_regs.gs = __KERNEL_STACK_CANARY;
37063 + savesegment(gs, ctxt->user_regs.gs);
37064 #endif
37065 memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
37066
37067 @@ -407,8 +403,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37068 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
37069 ctxt->flags = VGCF_IN_KERNEL;
37070 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
37071 - ctxt->user_regs.ds = __USER_DS;
37072 - ctxt->user_regs.es = __USER_DS;
37073 + ctxt->user_regs.ds = __KERNEL_DS;
37074 + ctxt->user_regs.es = __KERNEL_DS;
37075 ctxt->user_regs.ss = __KERNEL_DS;
37076
37077 xen_copy_trap_info(ctxt->trap_ctxt);
37078 @@ -747,7 +743,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
37079
37080 void __init xen_smp_init(void)
37081 {
37082 - smp_ops = xen_smp_ops;
37083 + memcpy((void *)&smp_ops, &xen_smp_ops, sizeof smp_ops);
37084 xen_fill_possible_map();
37085 }
37086
37087 diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
37088 index fd92a64..1f72641 100644
37089 --- a/arch/x86/xen/xen-asm_32.S
37090 +++ b/arch/x86/xen/xen-asm_32.S
37091 @@ -99,7 +99,7 @@ ENTRY(xen_iret)
37092 pushw %fs
37093 movl $(__KERNEL_PERCPU), %eax
37094 movl %eax, %fs
37095 - movl %fs:xen_vcpu, %eax
37096 + mov PER_CPU_VAR(xen_vcpu), %eax
37097 POP_FS
37098 #else
37099 movl %ss:xen_vcpu, %eax
37100 diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
37101 index b65f59a..c43f9c6 100644
37102 --- a/arch/x86/xen/xen-head.S
37103 +++ b/arch/x86/xen/xen-head.S
37104 @@ -41,6 +41,17 @@ ENTRY(startup_xen)
37105 #ifdef CONFIG_X86_32
37106 mov %esi,xen_start_info
37107 mov $init_thread_union+THREAD_SIZE,%esp
37108 +#ifdef CONFIG_SMP
37109 + movl $cpu_gdt_table,%edi
37110 + movl $__per_cpu_load,%eax
37111 + movw %ax,__KERNEL_PERCPU + 2(%edi)
37112 + rorl $16,%eax
37113 + movb %al,__KERNEL_PERCPU + 4(%edi)
37114 + movb %ah,__KERNEL_PERCPU + 7(%edi)
37115 + movl $__per_cpu_end - 1,%eax
37116 + subl $__per_cpu_start,%eax
37117 + movw %ax,__KERNEL_PERCPU + 0(%edi)
37118 +#endif
37119 #else
37120 mov %rsi,xen_start_info
37121 mov $init_thread_union+THREAD_SIZE,%rsp
37122 diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
37123 index 1399423..b1ae0fa 100644
37124 --- a/arch/x86/xen/xen-ops.h
37125 +++ b/arch/x86/xen/xen-ops.h
37126 @@ -16,8 +16,6 @@ void xen_syscall_target(void);
37127 void xen_syscall32_target(void);
37128 #endif
37129
37130 -extern void *xen_initial_gdt;
37131 -
37132 struct trap_info;
37133 void xen_copy_trap_info(struct trap_info *traps);
37134
37135 diff --git a/arch/xtensa/variants/dc232b/include/variant/core.h b/arch/xtensa/variants/dc232b/include/variant/core.h
37136 index 525bd3d..ef888b1 100644
37137 --- a/arch/xtensa/variants/dc232b/include/variant/core.h
37138 +++ b/arch/xtensa/variants/dc232b/include/variant/core.h
37139 @@ -119,9 +119,9 @@
37140 ----------------------------------------------------------------------*/
37141
37142 #define XCHAL_ICACHE_LINESIZE 32 /* I-cache line size in bytes */
37143 -#define XCHAL_DCACHE_LINESIZE 32 /* D-cache line size in bytes */
37144 #define XCHAL_ICACHE_LINEWIDTH 5 /* log2(I line size in bytes) */
37145 #define XCHAL_DCACHE_LINEWIDTH 5 /* log2(D line size in bytes) */
37146 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37147
37148 #define XCHAL_ICACHE_SIZE 16384 /* I-cache size in bytes or 0 */
37149 #define XCHAL_DCACHE_SIZE 16384 /* D-cache size in bytes or 0 */
37150 diff --git a/arch/xtensa/variants/fsf/include/variant/core.h b/arch/xtensa/variants/fsf/include/variant/core.h
37151 index 2f33760..835e50a 100644
37152 --- a/arch/xtensa/variants/fsf/include/variant/core.h
37153 +++ b/arch/xtensa/variants/fsf/include/variant/core.h
37154 @@ -11,6 +11,7 @@
37155 #ifndef _XTENSA_CORE_H
37156 #define _XTENSA_CORE_H
37157
37158 +#include <linux/const.h>
37159
37160 /****************************************************************************
37161 Parameters Useful for Any Code, USER or PRIVILEGED
37162 @@ -112,9 +113,9 @@
37163 ----------------------------------------------------------------------*/
37164
37165 #define XCHAL_ICACHE_LINESIZE 16 /* I-cache line size in bytes */
37166 -#define XCHAL_DCACHE_LINESIZE 16 /* D-cache line size in bytes */
37167 #define XCHAL_ICACHE_LINEWIDTH 4 /* log2(I line size in bytes) */
37168 #define XCHAL_DCACHE_LINEWIDTH 4 /* log2(D line size in bytes) */
37169 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37170
37171 #define XCHAL_ICACHE_SIZE 8192 /* I-cache size in bytes or 0 */
37172 #define XCHAL_DCACHE_SIZE 8192 /* D-cache size in bytes or 0 */
37173 diff --git a/block/bio.c b/block/bio.c
37174 index ad3f276..bef6d50 100644
37175 --- a/block/bio.c
37176 +++ b/block/bio.c
37177 @@ -1140,7 +1140,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
37178 /*
37179 * Overflow, abort
37180 */
37181 - if (end < start)
37182 + if (end < start || end - start > INT_MAX - nr_pages)
37183 return ERR_PTR(-EINVAL);
37184
37185 nr_pages += end - start;
37186 @@ -1265,7 +1265,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
37187 /*
37188 * Overflow, abort
37189 */
37190 - if (end < start)
37191 + if (end < start || end - start > INT_MAX - nr_pages)
37192 return ERR_PTR(-EINVAL);
37193
37194 nr_pages += end - start;
37195 diff --git a/block/blk-core.c b/block/blk-core.c
37196 index 18e92a6..1834d7c 100644
37197 --- a/block/blk-core.c
37198 +++ b/block/blk-core.c
37199 @@ -1616,8 +1616,6 @@ static void blk_queue_bio(struct request_queue *q, struct bio *bio)
37200 struct request *req;
37201 unsigned int request_count = 0;
37202
37203 - blk_queue_split(q, &bio, q->bio_split);
37204 -
37205 /*
37206 * low level driver can indicate that it wants pages above a
37207 * certain limit bounced to low memory (ie for highmem, or even
37208 @@ -1625,6 +1623,8 @@ static void blk_queue_bio(struct request_queue *q, struct bio *bio)
37209 */
37210 blk_queue_bounce(q, &bio);
37211
37212 + blk_queue_split(q, &bio, q->bio_split);
37213 +
37214 if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) {
37215 bio->bi_error = -EIO;
37216 bio_endio(bio);
37217 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
37218 index 0736729..2ec3b48 100644
37219 --- a/block/blk-iopoll.c
37220 +++ b/block/blk-iopoll.c
37221 @@ -74,7 +74,7 @@ void blk_iopoll_complete(struct blk_iopoll *iop)
37222 }
37223 EXPORT_SYMBOL(blk_iopoll_complete);
37224
37225 -static void blk_iopoll_softirq(struct softirq_action *h)
37226 +static __latent_entropy void blk_iopoll_softirq(void)
37227 {
37228 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
37229 int rearm = 0, budget = blk_iopoll_budget;
37230 diff --git a/block/blk-map.c b/block/blk-map.c
37231 index f565e11..f05b424 100644
37232 --- a/block/blk-map.c
37233 +++ b/block/blk-map.c
37234 @@ -214,7 +214,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
37235 if (!len || !kbuf)
37236 return -EINVAL;
37237
37238 - do_copy = !blk_rq_aligned(q, addr, len) || object_is_on_stack(kbuf);
37239 + do_copy = !blk_rq_aligned(q, addr, len) || object_starts_on_stack(kbuf);
37240 if (do_copy)
37241 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
37242 else
37243 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
37244 index 53b1737..08177d2e 100644
37245 --- a/block/blk-softirq.c
37246 +++ b/block/blk-softirq.c
37247 @@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
37248 * Softirq action handler - move entries to local list and loop over them
37249 * while passing them to the queue registered handler.
37250 */
37251 -static void blk_done_softirq(struct softirq_action *h)
37252 +static __latent_entropy void blk_done_softirq(void)
37253 {
37254 struct list_head *cpu_list, local_list;
37255
37256 diff --git a/block/bsg.c b/block/bsg.c
37257 index d214e92..9649863 100644
37258 --- a/block/bsg.c
37259 +++ b/block/bsg.c
37260 @@ -140,16 +140,24 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
37261 struct sg_io_v4 *hdr, struct bsg_device *bd,
37262 fmode_t has_write_perm)
37263 {
37264 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37265 + unsigned char *cmdptr;
37266 +
37267 if (hdr->request_len > BLK_MAX_CDB) {
37268 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
37269 if (!rq->cmd)
37270 return -ENOMEM;
37271 - }
37272 + cmdptr = rq->cmd;
37273 + } else
37274 + cmdptr = tmpcmd;
37275
37276 - if (copy_from_user(rq->cmd, (void __user *)(unsigned long)hdr->request,
37277 + if (copy_from_user(cmdptr, (void __user *)(unsigned long)hdr->request,
37278 hdr->request_len))
37279 return -EFAULT;
37280
37281 + if (cmdptr != rq->cmd)
37282 + memcpy(rq->cmd, cmdptr, hdr->request_len);
37283 +
37284 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
37285 if (blk_verify_command(rq->cmd, has_write_perm))
37286 return -EPERM;
37287 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
37288 index f678c73..f35aa18 100644
37289 --- a/block/compat_ioctl.c
37290 +++ b/block/compat_ioctl.c
37291 @@ -156,7 +156,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
37292 cgc = compat_alloc_user_space(sizeof(*cgc));
37293 cgc32 = compat_ptr(arg);
37294
37295 - if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
37296 + if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
37297 get_user(data, &cgc32->buffer) ||
37298 put_user(compat_ptr(data), &cgc->buffer) ||
37299 copy_in_user(&cgc->buflen, &cgc32->buflen,
37300 @@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
37301 err |= __get_user(f->spec1, &uf->spec1);
37302 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
37303 err |= __get_user(name, &uf->name);
37304 - f->name = compat_ptr(name);
37305 + f->name = (void __force_kernel *)compat_ptr(name);
37306 if (err) {
37307 err = -EFAULT;
37308 goto out;
37309 diff --git a/block/genhd.c b/block/genhd.c
37310 index 0c706f3..7e54d22 100644
37311 --- a/block/genhd.c
37312 +++ b/block/genhd.c
37313 @@ -470,21 +470,24 @@ static char *bdevt_str(dev_t devt, char *buf)
37314
37315 /*
37316 * Register device numbers dev..(dev+range-1)
37317 - * range must be nonzero
37318 + * Noop if @range is zero.
37319 * The hash chain is sorted on range, so that subranges can override.
37320 */
37321 void blk_register_region(dev_t devt, unsigned long range, struct module *module,
37322 struct kobject *(*probe)(dev_t, int *, void *),
37323 int (*lock)(dev_t, void *), void *data)
37324 {
37325 - kobj_map(bdev_map, devt, range, module, probe, lock, data);
37326 + if (range)
37327 + kobj_map(bdev_map, devt, range, module, probe, lock, data);
37328 }
37329
37330 EXPORT_SYMBOL(blk_register_region);
37331
37332 +/* undo blk_register_region(), noop if @range is zero */
37333 void blk_unregister_region(dev_t devt, unsigned long range)
37334 {
37335 - kobj_unmap(bdev_map, devt, range);
37336 + if (range)
37337 + kobj_unmap(bdev_map, devt, range);
37338 }
37339
37340 EXPORT_SYMBOL(blk_unregister_region);
37341 diff --git a/block/partitions/efi.c b/block/partitions/efi.c
37342 index 26cb624..a49c3a5 100644
37343 --- a/block/partitions/efi.c
37344 +++ b/block/partitions/efi.c
37345 @@ -293,14 +293,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
37346 if (!gpt)
37347 return NULL;
37348
37349 + if (!le32_to_cpu(gpt->num_partition_entries))
37350 + return NULL;
37351 + pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
37352 + if (!pte)
37353 + return NULL;
37354 +
37355 count = le32_to_cpu(gpt->num_partition_entries) *
37356 le32_to_cpu(gpt->sizeof_partition_entry);
37357 - if (!count)
37358 - return NULL;
37359 - pte = kmalloc(count, GFP_KERNEL);
37360 - if (!pte)
37361 - return NULL;
37362 -
37363 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
37364 (u8 *) pte, count) < count) {
37365 kfree(pte);
37366 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
37367 index dda653c..028a13ee 100644
37368 --- a/block/scsi_ioctl.c
37369 +++ b/block/scsi_ioctl.c
37370 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
37371 return put_user(0, p);
37372 }
37373
37374 -static int sg_get_timeout(struct request_queue *q)
37375 +static int __intentional_overflow(-1) sg_get_timeout(struct request_queue *q)
37376 {
37377 return jiffies_to_clock_t(q->sg_timeout);
37378 }
37379 @@ -227,8 +227,20 @@ EXPORT_SYMBOL(blk_verify_command);
37380 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
37381 struct sg_io_hdr *hdr, fmode_t mode)
37382 {
37383 - if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
37384 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37385 + unsigned char *cmdptr;
37386 +
37387 + if (rq->cmd != rq->__cmd)
37388 + cmdptr = rq->cmd;
37389 + else
37390 + cmdptr = tmpcmd;
37391 +
37392 + if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
37393 return -EFAULT;
37394 +
37395 + if (cmdptr != rq->cmd)
37396 + memcpy(rq->cmd, cmdptr, hdr->cmd_len);
37397 +
37398 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
37399 return -EPERM;
37400
37401 @@ -420,6 +432,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37402 int err;
37403 unsigned int in_len, out_len, bytes, opcode, cmdlen;
37404 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
37405 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37406 + unsigned char *cmdptr;
37407
37408 if (!sic)
37409 return -EINVAL;
37410 @@ -458,9 +472,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37411 */
37412 err = -EFAULT;
37413 rq->cmd_len = cmdlen;
37414 - if (copy_from_user(rq->cmd, sic->data, cmdlen))
37415 +
37416 + if (rq->cmd != rq->__cmd)
37417 + cmdptr = rq->cmd;
37418 + else
37419 + cmdptr = tmpcmd;
37420 +
37421 + if (copy_from_user(cmdptr, sic->data, cmdlen))
37422 goto error;
37423
37424 + if (rq->cmd != cmdptr)
37425 + memcpy(rq->cmd, cmdptr, cmdlen);
37426 +
37427 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
37428 goto error;
37429
37430 diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
37431 index b4ffc5b..e5b5721 100644
37432 --- a/crypto/ablkcipher.c
37433 +++ b/crypto/ablkcipher.c
37434 @@ -277,12 +277,12 @@ static int ablkcipher_walk_first(struct ablkcipher_request *req,
37435 if (WARN_ON_ONCE(in_irq()))
37436 return -EDEADLK;
37437
37438 + walk->iv = req->info;
37439 walk->nbytes = walk->total;
37440 if (unlikely(!walk->total))
37441 return 0;
37442
37443 walk->iv_buffer = NULL;
37444 - walk->iv = req->info;
37445 if (unlikely(((unsigned long)walk->iv & alignmask))) {
37446 int err = ablkcipher_copy_iv(walk, tfm, alignmask);
37447
37448 diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
37449 index 11b9814..8cc1622 100644
37450 --- a/crypto/blkcipher.c
37451 +++ b/crypto/blkcipher.c
37452 @@ -326,12 +326,12 @@ static int blkcipher_walk_first(struct blkcipher_desc *desc,
37453 if (WARN_ON_ONCE(in_irq()))
37454 return -EDEADLK;
37455
37456 + walk->iv = desc->info;
37457 walk->nbytes = walk->total;
37458 if (unlikely(!walk->total))
37459 return 0;
37460
37461 walk->buffer = NULL;
37462 - walk->iv = desc->info;
37463 if (unlikely(((unsigned long)walk->iv & walk->alignmask))) {
37464 int err = blkcipher_copy_iv(walk);
37465 if (err)
37466 diff --git a/crypto/cryptd.c b/crypto/cryptd.c
37467 index c81861b..dbf894f 100644
37468 --- a/crypto/cryptd.c
37469 +++ b/crypto/cryptd.c
37470 @@ -63,7 +63,7 @@ struct cryptd_blkcipher_ctx {
37471
37472 struct cryptd_blkcipher_request_ctx {
37473 crypto_completion_t complete;
37474 -};
37475 +} __no_const;
37476
37477 struct cryptd_hash_ctx {
37478 struct crypto_shash *child;
37479 @@ -80,7 +80,7 @@ struct cryptd_aead_ctx {
37480
37481 struct cryptd_aead_request_ctx {
37482 crypto_completion_t complete;
37483 -};
37484 +} __no_const;
37485
37486 static void cryptd_queue_worker(struct work_struct *work);
37487
37488 diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
37489 index ee9cfb9..30b36ed 100644
37490 --- a/crypto/pcrypt.c
37491 +++ b/crypto/pcrypt.c
37492 @@ -392,7 +392,7 @@ static int pcrypt_sysfs_add(struct padata_instance *pinst, const char *name)
37493 int ret;
37494
37495 pinst->kobj.kset = pcrypt_kset;
37496 - ret = kobject_add(&pinst->kobj, NULL, name);
37497 + ret = kobject_add(&pinst->kobj, NULL, "%s", name);
37498 if (!ret)
37499 kobject_uevent(&pinst->kobj, KOBJ_ADD);
37500
37501 diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
37502 index ea5815c..5880da6 100644
37503 --- a/crypto/scatterwalk.c
37504 +++ b/crypto/scatterwalk.c
37505 @@ -109,14 +109,20 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
37506 {
37507 struct scatter_walk walk;
37508 struct scatterlist tmp[2];
37509 + void *realbuf = buf;
37510
37511 if (!nbytes)
37512 return;
37513
37514 sg = scatterwalk_ffwd(tmp, sg, start);
37515
37516 - if (sg_page(sg) == virt_to_page(buf) &&
37517 - sg->offset == offset_in_page(buf))
37518 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
37519 + if (object_starts_on_stack(buf))
37520 + realbuf = buf - current->stack + current->lowmem_stack;
37521 +#endif
37522 +
37523 + if (sg_page(sg) == virt_to_page(realbuf) &&
37524 + sg->offset == offset_in_page(realbuf))
37525 return;
37526
37527 scatterwalk_start(&walk, sg);
37528 diff --git a/crypto/zlib.c b/crypto/zlib.c
37529 index d51a30a..b6891a3 100644
37530 --- a/crypto/zlib.c
37531 +++ b/crypto/zlib.c
37532 @@ -95,10 +95,10 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37533 zlib_comp_exit(ctx);
37534
37535 window_bits = tb[ZLIB_COMP_WINDOWBITS]
37536 - ? nla_get_u32(tb[ZLIB_COMP_WINDOWBITS])
37537 + ? nla_get_s32(tb[ZLIB_COMP_WINDOWBITS])
37538 : MAX_WBITS;
37539 mem_level = tb[ZLIB_COMP_MEMLEVEL]
37540 - ? nla_get_u32(tb[ZLIB_COMP_MEMLEVEL])
37541 + ? nla_get_s32(tb[ZLIB_COMP_MEMLEVEL])
37542 : DEF_MEM_LEVEL;
37543
37544 workspacesize = zlib_deflate_workspacesize(window_bits, mem_level);
37545 @@ -108,15 +108,15 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37546
37547 ret = zlib_deflateInit2(stream,
37548 tb[ZLIB_COMP_LEVEL]
37549 - ? nla_get_u32(tb[ZLIB_COMP_LEVEL])
37550 + ? nla_get_s32(tb[ZLIB_COMP_LEVEL])
37551 : Z_DEFAULT_COMPRESSION,
37552 tb[ZLIB_COMP_METHOD]
37553 - ? nla_get_u32(tb[ZLIB_COMP_METHOD])
37554 + ? nla_get_s32(tb[ZLIB_COMP_METHOD])
37555 : Z_DEFLATED,
37556 window_bits,
37557 mem_level,
37558 tb[ZLIB_COMP_STRATEGY]
37559 - ? nla_get_u32(tb[ZLIB_COMP_STRATEGY])
37560 + ? nla_get_s32(tb[ZLIB_COMP_STRATEGY])
37561 : Z_DEFAULT_STRATEGY);
37562 if (ret != Z_OK) {
37563 vfree(stream->workspace);
37564 @@ -224,7 +224,7 @@ static int zlib_decompress_setup(struct crypto_pcomp *tfm, const void *params,
37565 zlib_decomp_exit(ctx);
37566
37567 ctx->decomp_windowBits = tb[ZLIB_DECOMP_WINDOWBITS]
37568 - ? nla_get_u32(tb[ZLIB_DECOMP_WINDOWBITS])
37569 + ? nla_get_s32(tb[ZLIB_DECOMP_WINDOWBITS])
37570 : DEF_WBITS;
37571
37572 stream->workspace = vzalloc(zlib_inflate_workspacesize());
37573 diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
37574 index 5778e8e..03a478b 100644
37575 --- a/drivers/acpi/acpi_video.c
37576 +++ b/drivers/acpi/acpi_video.c
37577 @@ -394,7 +394,7 @@ static int video_disable_backlight_sysfs_if(
37578 return 0;
37579 }
37580
37581 -static struct dmi_system_id video_dmi_table[] = {
37582 +static const struct dmi_system_id video_dmi_table[] = {
37583 /*
37584 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
37585 */
37586 diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
37587 index d62a616..387dbd0 100644
37588 --- a/drivers/acpi/acpica/hwxfsleep.c
37589 +++ b/drivers/acpi/acpica/hwxfsleep.c
37590 @@ -70,11 +70,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
37591 /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE */
37592
37593 static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
37594 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37595 - acpi_hw_extended_sleep},
37596 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37597 - acpi_hw_extended_wake_prep},
37598 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), acpi_hw_extended_wake}
37599 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37600 + .extended_function = acpi_hw_extended_sleep},
37601 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37602 + .extended_function = acpi_hw_extended_wake_prep},
37603 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake),
37604 + .extended_function = acpi_hw_extended_wake}
37605 };
37606
37607 /*
37608 diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
37609 index 16129c7..8b675cd 100644
37610 --- a/drivers/acpi/apei/apei-internal.h
37611 +++ b/drivers/acpi/apei/apei-internal.h
37612 @@ -19,7 +19,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx,
37613 struct apei_exec_ins_type {
37614 u32 flags;
37615 apei_exec_ins_func_t run;
37616 -};
37617 +} __do_const;
37618
37619 struct apei_exec_context {
37620 u32 ip;
37621 diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
37622 index 23981ac..35eb27e 100644
37623 --- a/drivers/acpi/apei/ghes.c
37624 +++ b/drivers/acpi/apei/ghes.c
37625 @@ -474,7 +474,7 @@ static void __ghes_print_estatus(const char *pfx,
37626 const struct acpi_hest_generic *generic,
37627 const struct acpi_hest_generic_status *estatus)
37628 {
37629 - static atomic_t seqno;
37630 + static atomic_unchecked_t seqno;
37631 unsigned int curr_seqno;
37632 char pfx_seq[64];
37633
37634 @@ -485,7 +485,7 @@ static void __ghes_print_estatus(const char *pfx,
37635 else
37636 pfx = KERN_ERR;
37637 }
37638 - curr_seqno = atomic_inc_return(&seqno);
37639 + curr_seqno = atomic_inc_return_unchecked(&seqno);
37640 snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
37641 printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
37642 pfx_seq, generic->header.source_id);
37643 diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c
37644 index a83e3c6..c3d617f 100644
37645 --- a/drivers/acpi/bgrt.c
37646 +++ b/drivers/acpi/bgrt.c
37647 @@ -86,8 +86,10 @@ static int __init bgrt_init(void)
37648 if (!bgrt_image)
37649 return -ENODEV;
37650
37651 - bin_attr_image.private = bgrt_image;
37652 - bin_attr_image.size = bgrt_image_size;
37653 + pax_open_kernel();
37654 + *(void **)&bin_attr_image.private = bgrt_image;
37655 + *(size_t *)&bin_attr_image.size = bgrt_image_size;
37656 + pax_close_kernel();
37657
37658 bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
37659 if (!bgrt_kobj)
37660 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
37661 index 96809cd..6a49f97 100644
37662 --- a/drivers/acpi/blacklist.c
37663 +++ b/drivers/acpi/blacklist.c
37664 @@ -47,7 +47,7 @@ struct acpi_blacklist_item {
37665 u32 is_critical_error;
37666 };
37667
37668 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata;
37669 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst;
37670
37671 /*
37672 * POLICY: If *anything* doesn't work, put it on the blacklist.
37673 @@ -168,7 +168,7 @@ static int __init dmi_enable_rev_override(const struct dmi_system_id *d)
37674 }
37675 #endif
37676
37677 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
37678 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
37679 {
37680 .callback = dmi_disable_osi_vista,
37681 .ident = "Fujitsu Siemens",
37682 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
37683 index a212cef..443c9c4 100644
37684 --- a/drivers/acpi/bus.c
37685 +++ b/drivers/acpi/bus.c
37686 @@ -63,7 +63,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
37687 }
37688 #endif
37689
37690 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37691 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37692 /*
37693 * Invoke DSDT corruption work-around on all Toshiba Satellite.
37694 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
37695 @@ -79,7 +79,7 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37696 {}
37697 };
37698 #else
37699 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37700 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37701 {}
37702 };
37703 #endif
37704 diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
37705 index c68e724..e863008 100644
37706 --- a/drivers/acpi/custom_method.c
37707 +++ b/drivers/acpi/custom_method.c
37708 @@ -29,6 +29,10 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
37709 struct acpi_table_header table;
37710 acpi_status status;
37711
37712 +#ifdef CONFIG_GRKERNSEC_KMEM
37713 + return -EPERM;
37714 +#endif
37715 +
37716 if (!(*ppos)) {
37717 /* parse the table header to get the table length */
37718 if (count <= sizeof(struct acpi_table_header))
37719 diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c
37720 index 4806b7f..78f0746 100644
37721 --- a/drivers/acpi/device_pm.c
37722 +++ b/drivers/acpi/device_pm.c
37723 @@ -1041,6 +1041,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
37724
37725 #endif /* CONFIG_PM_SLEEP */
37726
37727 +static void acpi_dev_pm_detach(struct device *dev, bool power_off);
37728 +
37729 static struct dev_pm_domain acpi_general_pm_domain = {
37730 .ops = {
37731 .runtime_suspend = acpi_subsys_runtime_suspend,
37732 @@ -1057,6 +1059,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
37733 .restore_early = acpi_subsys_resume_early,
37734 #endif
37735 },
37736 + .detach = acpi_dev_pm_detach
37737 };
37738
37739 /**
37740 @@ -1134,7 +1137,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
37741 acpi_device_wakeup(adev, ACPI_STATE_S0, false);
37742 }
37743
37744 - dev->pm_domain->detach = acpi_dev_pm_detach;
37745 return 0;
37746 }
37747 EXPORT_SYMBOL_GPL(acpi_dev_pm_attach);
37748 diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
37749 index 42c66b6..52256bc 100644
37750 --- a/drivers/acpi/ec.c
37751 +++ b/drivers/acpi/ec.c
37752 @@ -1470,7 +1470,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
37753 return 0;
37754 }
37755
37756 -static struct dmi_system_id ec_dmi_table[] __initdata = {
37757 +static const struct dmi_system_id ec_dmi_table[] __initconst = {
37758 {
37759 ec_skip_dsdt_scan, "Compal JFL92", {
37760 DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
37761 diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c
37762 index 7188e53..6012bc4 100644
37763 --- a/drivers/acpi/pci_slot.c
37764 +++ b/drivers/acpi/pci_slot.c
37765 @@ -191,7 +191,7 @@ static int do_sta_before_sun(const struct dmi_system_id *d)
37766 return 0;
37767 }
37768
37769 -static struct dmi_system_id acpi_pci_slot_dmi_table[] __initdata = {
37770 +static const struct dmi_system_id acpi_pci_slot_dmi_table[] __initconst = {
37771 /*
37772 * Fujitsu Primequest machines will return 1023 to indicate an
37773 * error if the _SUN method is evaluated on SxFy objects that
37774 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
37775 index 175c86b..f8226f0 100644
37776 --- a/drivers/acpi/processor_idle.c
37777 +++ b/drivers/acpi/processor_idle.c
37778 @@ -906,7 +906,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
37779 {
37780 int i, count = CPUIDLE_DRIVER_STATE_START;
37781 struct acpi_processor_cx *cx;
37782 - struct cpuidle_state *state;
37783 + cpuidle_state_no_const *state;
37784 struct cpuidle_driver *drv = &acpi_idle_driver;
37785
37786 if (!pr->flags.power_setup_done)
37787 diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
37788 index 7cfbda4..74f738c 100644
37789 --- a/drivers/acpi/processor_pdc.c
37790 +++ b/drivers/acpi/processor_pdc.c
37791 @@ -173,7 +173,7 @@ static int __init set_no_mwait(const struct dmi_system_id *id)
37792 return 0;
37793 }
37794
37795 -static struct dmi_system_id processor_idle_dmi_table[] __initdata = {
37796 +static const struct dmi_system_id processor_idle_dmi_table[] __initconst = {
37797 {
37798 set_no_mwait, "Extensa 5220", {
37799 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
37800 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
37801 index 2f0d4db..b9e9b15 100644
37802 --- a/drivers/acpi/sleep.c
37803 +++ b/drivers/acpi/sleep.c
37804 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
37805 return 0;
37806 }
37807
37808 -static struct dmi_system_id acpisleep_dmi_table[] __initdata = {
37809 +static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
37810 {
37811 .callback = init_old_suspend_ordering,
37812 .ident = "Abit KN9 (nForce4 variant)",
37813 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
37814 index 40a4265..bb254e2 100644
37815 --- a/drivers/acpi/sysfs.c
37816 +++ b/drivers/acpi/sysfs.c
37817 @@ -486,11 +486,11 @@ static u32 num_counters;
37818 static struct attribute **all_attrs;
37819 static u32 acpi_gpe_count;
37820
37821 -static struct attribute_group interrupt_stats_attr_group = {
37822 +static attribute_group_no_const interrupt_stats_attr_group = {
37823 .name = "interrupts",
37824 };
37825
37826 -static struct kobj_attribute *counter_attrs;
37827 +static kobj_attribute_no_const *counter_attrs;
37828
37829 static void delete_gpe_attr_array(void)
37830 {
37831 diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
37832 index 30d8518..06efb1e 100644
37833 --- a/drivers/acpi/thermal.c
37834 +++ b/drivers/acpi/thermal.c
37835 @@ -1208,7 +1208,7 @@ static int thermal_psv(const struct dmi_system_id *d) {
37836 return 0;
37837 }
37838
37839 -static struct dmi_system_id thermal_dmi_table[] __initdata = {
37840 +static const struct dmi_system_id thermal_dmi_table[] __initconst = {
37841 /*
37842 * Award BIOS on this AOpen makes thermal control almost worthless.
37843 * http://bugzilla.kernel.org/show_bug.cgi?id=8842
37844 diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
37845 index 2922f1f..6c2fdaf 100644
37846 --- a/drivers/acpi/video_detect.c
37847 +++ b/drivers/acpi/video_detect.c
37848 @@ -41,7 +41,6 @@ ACPI_MODULE_NAME("video");
37849 void acpi_video_unregister_backlight(void);
37850
37851 static bool backlight_notifier_registered;
37852 -static struct notifier_block backlight_nb;
37853 static struct work_struct backlight_notify_work;
37854
37855 static enum acpi_backlight_type acpi_backlight_cmdline = acpi_backlight_undef;
37856 @@ -284,6 +283,10 @@ static int acpi_video_backlight_notify(struct notifier_block *nb,
37857 return NOTIFY_OK;
37858 }
37859
37860 +static struct notifier_block backlight_nb = {
37861 + .notifier_call = acpi_video_backlight_notify,
37862 +};
37863 +
37864 /*
37865 * Determine which type of backlight interface to use on this system,
37866 * First check cmdline, then dmi quirks, then do autodetect.
37867 @@ -314,8 +317,6 @@ enum acpi_backlight_type acpi_video_get_backlight_type(void)
37868 &video_caps, NULL);
37869 INIT_WORK(&backlight_notify_work,
37870 acpi_video_backlight_notify_work);
37871 - backlight_nb.notifier_call = acpi_video_backlight_notify;
37872 - backlight_nb.priority = 0;
37873 if (backlight_register_notifier(&backlight_nb) == 0)
37874 backlight_notifier_registered = true;
37875 init_done = true;
37876 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
37877 index b79cb10..7daa9f7 100644
37878 --- a/drivers/ata/libata-core.c
37879 +++ b/drivers/ata/libata-core.c
37880 @@ -102,7 +102,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
37881 static void ata_dev_xfermask(struct ata_device *dev);
37882 static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
37883
37884 -atomic_t ata_print_id = ATOMIC_INIT(0);
37885 +atomic_unchecked_t ata_print_id = ATOMIC_INIT(0);
37886
37887 struct ata_force_param {
37888 const char *name;
37889 @@ -4801,7 +4801,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
37890 struct ata_port *ap;
37891 unsigned int tag;
37892
37893 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37894 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37895 ap = qc->ap;
37896
37897 qc->flags = 0;
37898 @@ -4818,7 +4818,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
37899 struct ata_port *ap;
37900 struct ata_link *link;
37901
37902 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37903 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37904 WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
37905 ap = qc->ap;
37906 link = qc->dev->link;
37907 @@ -5925,6 +5925,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37908 return;
37909
37910 spin_lock(&lock);
37911 + pax_open_kernel();
37912
37913 for (cur = ops->inherits; cur; cur = cur->inherits) {
37914 void **inherit = (void **)cur;
37915 @@ -5938,8 +5939,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37916 if (IS_ERR(*pp))
37917 *pp = NULL;
37918
37919 - ops->inherits = NULL;
37920 + *(struct ata_port_operations **)&ops->inherits = NULL;
37921
37922 + pax_close_kernel();
37923 spin_unlock(&lock);
37924 }
37925
37926 @@ -6135,7 +6137,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
37927
37928 /* give ports names and add SCSI hosts */
37929 for (i = 0; i < host->n_ports; i++) {
37930 - host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
37931 + host->ports[i]->print_id = atomic_inc_return_unchecked(&ata_print_id);
37932 host->ports[i]->local_port_no = i + 1;
37933 }
37934
37935 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
37936 index 0d7f0da..bc20aa6 100644
37937 --- a/drivers/ata/libata-scsi.c
37938 +++ b/drivers/ata/libata-scsi.c
37939 @@ -4193,7 +4193,7 @@ int ata_sas_port_init(struct ata_port *ap)
37940
37941 if (rc)
37942 return rc;
37943 - ap->print_id = atomic_inc_return(&ata_print_id);
37944 + ap->print_id = atomic_inc_return_unchecked(&ata_print_id);
37945 return 0;
37946 }
37947 EXPORT_SYMBOL_GPL(ata_sas_port_init);
37948 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
37949 index f840ca1..edd6ef3 100644
37950 --- a/drivers/ata/libata.h
37951 +++ b/drivers/ata/libata.h
37952 @@ -53,7 +53,7 @@ enum {
37953 ATA_DNXFER_QUIET = (1 << 31),
37954 };
37955
37956 -extern atomic_t ata_print_id;
37957 +extern atomic_unchecked_t ata_print_id;
37958 extern int atapi_passthru16;
37959 extern int libata_fua;
37960 extern int libata_noacpi;
37961 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
37962 index 80fe0f6..8c0fa3f 100644
37963 --- a/drivers/ata/pata_arasan_cf.c
37964 +++ b/drivers/ata/pata_arasan_cf.c
37965 @@ -864,7 +864,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
37966 /* Handle platform specific quirks */
37967 if (quirk) {
37968 if (quirk & CF_BROKEN_PIO) {
37969 - ap->ops->set_piomode = NULL;
37970 + pax_open_kernel();
37971 + *(void **)&ap->ops->set_piomode = NULL;
37972 + pax_close_kernel();
37973 ap->pio_mask = 0;
37974 }
37975 if (quirk & CF_BROKEN_MWDMA)
37976 diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
37977 index f9b983a..887b9d8 100644
37978 --- a/drivers/atm/adummy.c
37979 +++ b/drivers/atm/adummy.c
37980 @@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct sk_buff *skb)
37981 vcc->pop(vcc, skb);
37982 else
37983 dev_kfree_skb_any(skb);
37984 - atomic_inc(&vcc->stats->tx);
37985 + atomic_inc_unchecked(&vcc->stats->tx);
37986
37987 return 0;
37988 }
37989 diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
37990 index f1a9198..f466a4a 100644
37991 --- a/drivers/atm/ambassador.c
37992 +++ b/drivers/atm/ambassador.c
37993 @@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, tx_out * tx) {
37994 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
37995
37996 // VC layer stats
37997 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
37998 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
37999
38000 // free the descriptor
38001 kfree (tx_descr);
38002 @@ -495,7 +495,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38003 dump_skb ("<<<", vc, skb);
38004
38005 // VC layer stats
38006 - atomic_inc(&atm_vcc->stats->rx);
38007 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38008 __net_timestamp(skb);
38009 // end of our responsibility
38010 atm_vcc->push (atm_vcc, skb);
38011 @@ -510,7 +510,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38012 } else {
38013 PRINTK (KERN_INFO, "dropped over-size frame");
38014 // should we count this?
38015 - atomic_inc(&atm_vcc->stats->rx_drop);
38016 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38017 }
38018
38019 } else {
38020 @@ -1338,7 +1338,7 @@ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
38021 }
38022
38023 if (check_area (skb->data, skb->len)) {
38024 - atomic_inc(&atm_vcc->stats->tx_err);
38025 + atomic_inc_unchecked(&atm_vcc->stats->tx_err);
38026 return -ENOMEM; // ?
38027 }
38028
38029 diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c
38030 index 480fa6f..947067c 100644
38031 --- a/drivers/atm/atmtcp.c
38032 +++ b/drivers/atm/atmtcp.c
38033 @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38034 if (vcc->pop) vcc->pop(vcc,skb);
38035 else dev_kfree_skb(skb);
38036 if (dev_data) return 0;
38037 - atomic_inc(&vcc->stats->tx_err);
38038 + atomic_inc_unchecked(&vcc->stats->tx_err);
38039 return -ENOLINK;
38040 }
38041 size = skb->len+sizeof(struct atmtcp_hdr);
38042 @@ -214,7 +214,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38043 if (!new_skb) {
38044 if (vcc->pop) vcc->pop(vcc,skb);
38045 else dev_kfree_skb(skb);
38046 - atomic_inc(&vcc->stats->tx_err);
38047 + atomic_inc_unchecked(&vcc->stats->tx_err);
38048 return -ENOBUFS;
38049 }
38050 hdr = (void *) skb_put(new_skb,sizeof(struct atmtcp_hdr));
38051 @@ -225,8 +225,8 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38052 if (vcc->pop) vcc->pop(vcc,skb);
38053 else dev_kfree_skb(skb);
38054 out_vcc->push(out_vcc,new_skb);
38055 - atomic_inc(&vcc->stats->tx);
38056 - atomic_inc(&out_vcc->stats->rx);
38057 + atomic_inc_unchecked(&vcc->stats->tx);
38058 + atomic_inc_unchecked(&out_vcc->stats->rx);
38059 return 0;
38060 }
38061
38062 @@ -300,7 +300,7 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38063 read_unlock(&vcc_sklist_lock);
38064 if (!out_vcc) {
38065 result = -EUNATCH;
38066 - atomic_inc(&vcc->stats->tx_err);
38067 + atomic_inc_unchecked(&vcc->stats->tx_err);
38068 goto done;
38069 }
38070 skb_pull(skb,sizeof(struct atmtcp_hdr));
38071 @@ -312,8 +312,8 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38072 __net_timestamp(new_skb);
38073 skb_copy_from_linear_data(skb, skb_put(new_skb, skb->len), skb->len);
38074 out_vcc->push(out_vcc,new_skb);
38075 - atomic_inc(&vcc->stats->tx);
38076 - atomic_inc(&out_vcc->stats->rx);
38077 + atomic_inc_unchecked(&vcc->stats->tx);
38078 + atomic_inc_unchecked(&out_vcc->stats->rx);
38079 done:
38080 if (vcc->pop) vcc->pop(vcc,skb);
38081 else dev_kfree_skb(skb);
38082 diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
38083 index 6339efd..2b441d5 100644
38084 --- a/drivers/atm/eni.c
38085 +++ b/drivers/atm/eni.c
38086 @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc)
38087 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
38088 vcc->dev->number);
38089 length = 0;
38090 - atomic_inc(&vcc->stats->rx_err);
38091 + atomic_inc_unchecked(&vcc->stats->rx_err);
38092 }
38093 else {
38094 length = ATM_CELL_SIZE-1; /* no HEC */
38095 @@ -580,7 +580,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38096 size);
38097 }
38098 eff = length = 0;
38099 - atomic_inc(&vcc->stats->rx_err);
38100 + atomic_inc_unchecked(&vcc->stats->rx_err);
38101 }
38102 else {
38103 size = (descr & MID_RED_COUNT)*(ATM_CELL_PAYLOAD >> 2);
38104 @@ -597,7 +597,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38105 "(VCI=%d,length=%ld,size=%ld (descr 0x%lx))\n",
38106 vcc->dev->number,vcc->vci,length,size << 2,descr);
38107 length = eff = 0;
38108 - atomic_inc(&vcc->stats->rx_err);
38109 + atomic_inc_unchecked(&vcc->stats->rx_err);
38110 }
38111 }
38112 skb = eff ? atm_alloc_charge(vcc,eff << 2,GFP_ATOMIC) : NULL;
38113 @@ -770,7 +770,7 @@ rx_dequeued++;
38114 vcc->push(vcc,skb);
38115 pushed++;
38116 }
38117 - atomic_inc(&vcc->stats->rx);
38118 + atomic_inc_unchecked(&vcc->stats->rx);
38119 }
38120 wake_up(&eni_dev->rx_wait);
38121 }
38122 @@ -1230,7 +1230,7 @@ static void dequeue_tx(struct atm_dev *dev)
38123 DMA_TO_DEVICE);
38124 if (vcc->pop) vcc->pop(vcc,skb);
38125 else dev_kfree_skb_irq(skb);
38126 - atomic_inc(&vcc->stats->tx);
38127 + atomic_inc_unchecked(&vcc->stats->tx);
38128 wake_up(&eni_dev->tx_wait);
38129 dma_complete++;
38130 }
38131 diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
38132 index 82f2ae0..f205c02 100644
38133 --- a/drivers/atm/firestream.c
38134 +++ b/drivers/atm/firestream.c
38135 @@ -749,7 +749,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
38136 }
38137 }
38138
38139 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38140 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38141
38142 fs_dprintk (FS_DEBUG_TXMEM, "i");
38143 fs_dprintk (FS_DEBUG_ALLOC, "Free t-skb: %p\n", skb);
38144 @@ -816,7 +816,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38145 #endif
38146 skb_put (skb, qe->p1 & 0xffff);
38147 ATM_SKB(skb)->vcc = atm_vcc;
38148 - atomic_inc(&atm_vcc->stats->rx);
38149 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38150 __net_timestamp(skb);
38151 fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p (pushed)\n", skb);
38152 atm_vcc->push (atm_vcc, skb);
38153 @@ -837,12 +837,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38154 kfree (pe);
38155 }
38156 if (atm_vcc)
38157 - atomic_inc(&atm_vcc->stats->rx_drop);
38158 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38159 break;
38160 case 0x1f: /* Reassembly abort: no buffers. */
38161 /* Silently increment error counter. */
38162 if (atm_vcc)
38163 - atomic_inc(&atm_vcc->stats->rx_drop);
38164 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38165 break;
38166 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
38167 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
38168 diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
38169 index 75dde90..4309ead 100644
38170 --- a/drivers/atm/fore200e.c
38171 +++ b/drivers/atm/fore200e.c
38172 @@ -932,9 +932,9 @@ fore200e_tx_irq(struct fore200e* fore200e)
38173 #endif
38174 /* check error condition */
38175 if (*entry->status & STATUS_ERROR)
38176 - atomic_inc(&vcc->stats->tx_err);
38177 + atomic_inc_unchecked(&vcc->stats->tx_err);
38178 else
38179 - atomic_inc(&vcc->stats->tx);
38180 + atomic_inc_unchecked(&vcc->stats->tx);
38181 }
38182 }
38183
38184 @@ -1083,7 +1083,7 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38185 if (skb == NULL) {
38186 DPRINTK(2, "unable to alloc new skb, rx PDU length = %d\n", pdu_len);
38187
38188 - atomic_inc(&vcc->stats->rx_drop);
38189 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38190 return -ENOMEM;
38191 }
38192
38193 @@ -1126,14 +1126,14 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38194
38195 dev_kfree_skb_any(skb);
38196
38197 - atomic_inc(&vcc->stats->rx_drop);
38198 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38199 return -ENOMEM;
38200 }
38201
38202 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38203
38204 vcc->push(vcc, skb);
38205 - atomic_inc(&vcc->stats->rx);
38206 + atomic_inc_unchecked(&vcc->stats->rx);
38207
38208 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38209
38210 @@ -1211,7 +1211,7 @@ fore200e_rx_irq(struct fore200e* fore200e)
38211 DPRINTK(2, "damaged PDU on %d.%d.%d\n",
38212 fore200e->atm_dev->number,
38213 entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
38214 - atomic_inc(&vcc->stats->rx_err);
38215 + atomic_inc_unchecked(&vcc->stats->rx_err);
38216 }
38217 }
38218
38219 @@ -1656,7 +1656,7 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
38220 goto retry_here;
38221 }
38222
38223 - atomic_inc(&vcc->stats->tx_err);
38224 + atomic_inc_unchecked(&vcc->stats->tx_err);
38225
38226 fore200e->tx_sat++;
38227 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
38228 diff --git a/drivers/atm/he.c b/drivers/atm/he.c
38229 index 0f5cb37..c8bcdef 100644
38230 --- a/drivers/atm/he.c
38231 +++ b/drivers/atm/he.c
38232 @@ -1689,7 +1689,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38233
38234 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
38235 hprintk("HBUF_ERR! (cid 0x%x)\n", cid);
38236 - atomic_inc(&vcc->stats->rx_drop);
38237 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38238 goto return_host_buffers;
38239 }
38240
38241 @@ -1716,7 +1716,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38242 RBRQ_LEN_ERR(he_dev->rbrq_head)
38243 ? "LEN_ERR" : "",
38244 vcc->vpi, vcc->vci);
38245 - atomic_inc(&vcc->stats->rx_err);
38246 + atomic_inc_unchecked(&vcc->stats->rx_err);
38247 goto return_host_buffers;
38248 }
38249
38250 @@ -1768,7 +1768,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38251 vcc->push(vcc, skb);
38252 spin_lock(&he_dev->global_lock);
38253
38254 - atomic_inc(&vcc->stats->rx);
38255 + atomic_inc_unchecked(&vcc->stats->rx);
38256
38257 return_host_buffers:
38258 ++pdus_assembled;
38259 @@ -2094,7 +2094,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
38260 tpd->vcc->pop(tpd->vcc, tpd->skb);
38261 else
38262 dev_kfree_skb_any(tpd->skb);
38263 - atomic_inc(&tpd->vcc->stats->tx_err);
38264 + atomic_inc_unchecked(&tpd->vcc->stats->tx_err);
38265 }
38266 dma_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
38267 return;
38268 @@ -2506,7 +2506,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38269 vcc->pop(vcc, skb);
38270 else
38271 dev_kfree_skb_any(skb);
38272 - atomic_inc(&vcc->stats->tx_err);
38273 + atomic_inc_unchecked(&vcc->stats->tx_err);
38274 return -EINVAL;
38275 }
38276
38277 @@ -2517,7 +2517,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38278 vcc->pop(vcc, skb);
38279 else
38280 dev_kfree_skb_any(skb);
38281 - atomic_inc(&vcc->stats->tx_err);
38282 + atomic_inc_unchecked(&vcc->stats->tx_err);
38283 return -EINVAL;
38284 }
38285 #endif
38286 @@ -2529,7 +2529,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38287 vcc->pop(vcc, skb);
38288 else
38289 dev_kfree_skb_any(skb);
38290 - atomic_inc(&vcc->stats->tx_err);
38291 + atomic_inc_unchecked(&vcc->stats->tx_err);
38292 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38293 return -ENOMEM;
38294 }
38295 @@ -2571,7 +2571,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38296 vcc->pop(vcc, skb);
38297 else
38298 dev_kfree_skb_any(skb);
38299 - atomic_inc(&vcc->stats->tx_err);
38300 + atomic_inc_unchecked(&vcc->stats->tx_err);
38301 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38302 return -ENOMEM;
38303 }
38304 @@ -2602,7 +2602,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38305 __enqueue_tpd(he_dev, tpd, cid);
38306 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38307
38308 - atomic_inc(&vcc->stats->tx);
38309 + atomic_inc_unchecked(&vcc->stats->tx);
38310
38311 return 0;
38312 }
38313 diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
38314 index 527bbd5..96570c8 100644
38315 --- a/drivers/atm/horizon.c
38316 +++ b/drivers/atm/horizon.c
38317 @@ -1018,7 +1018,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
38318 {
38319 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
38320 // VC layer stats
38321 - atomic_inc(&vcc->stats->rx);
38322 + atomic_inc_unchecked(&vcc->stats->rx);
38323 __net_timestamp(skb);
38324 // end of our responsibility
38325 vcc->push (vcc, skb);
38326 @@ -1170,7 +1170,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
38327 dev->tx_iovec = NULL;
38328
38329 // VC layer stats
38330 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38331 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38332
38333 // free the skb
38334 hrz_kfree_skb (skb);
38335 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
38336 index 074616b..d6b3d5f 100644
38337 --- a/drivers/atm/idt77252.c
38338 +++ b/drivers/atm/idt77252.c
38339 @@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
38340 else
38341 dev_kfree_skb(skb);
38342
38343 - atomic_inc(&vcc->stats->tx);
38344 + atomic_inc_unchecked(&vcc->stats->tx);
38345 }
38346
38347 atomic_dec(&scq->used);
38348 @@ -1073,13 +1073,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38349 if ((sb = dev_alloc_skb(64)) == NULL) {
38350 printk("%s: Can't allocate buffers for aal0.\n",
38351 card->name);
38352 - atomic_add(i, &vcc->stats->rx_drop);
38353 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38354 break;
38355 }
38356 if (!atm_charge(vcc, sb->truesize)) {
38357 RXPRINTK("%s: atm_charge() dropped aal0 packets.\n",
38358 card->name);
38359 - atomic_add(i - 1, &vcc->stats->rx_drop);
38360 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop);
38361 dev_kfree_skb(sb);
38362 break;
38363 }
38364 @@ -1096,7 +1096,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38365 ATM_SKB(sb)->vcc = vcc;
38366 __net_timestamp(sb);
38367 vcc->push(vcc, sb);
38368 - atomic_inc(&vcc->stats->rx);
38369 + atomic_inc_unchecked(&vcc->stats->rx);
38370
38371 cell += ATM_CELL_PAYLOAD;
38372 }
38373 @@ -1133,13 +1133,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38374 "(CDC: %08x)\n",
38375 card->name, len, rpp->len, readl(SAR_REG_CDC));
38376 recycle_rx_pool_skb(card, rpp);
38377 - atomic_inc(&vcc->stats->rx_err);
38378 + atomic_inc_unchecked(&vcc->stats->rx_err);
38379 return;
38380 }
38381 if (stat & SAR_RSQE_CRC) {
38382 RXPRINTK("%s: AAL5 CRC error.\n", card->name);
38383 recycle_rx_pool_skb(card, rpp);
38384 - atomic_inc(&vcc->stats->rx_err);
38385 + atomic_inc_unchecked(&vcc->stats->rx_err);
38386 return;
38387 }
38388 if (skb_queue_len(&rpp->queue) > 1) {
38389 @@ -1150,7 +1150,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38390 RXPRINTK("%s: Can't alloc RX skb.\n",
38391 card->name);
38392 recycle_rx_pool_skb(card, rpp);
38393 - atomic_inc(&vcc->stats->rx_err);
38394 + atomic_inc_unchecked(&vcc->stats->rx_err);
38395 return;
38396 }
38397 if (!atm_charge(vcc, skb->truesize)) {
38398 @@ -1169,7 +1169,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38399 __net_timestamp(skb);
38400
38401 vcc->push(vcc, skb);
38402 - atomic_inc(&vcc->stats->rx);
38403 + atomic_inc_unchecked(&vcc->stats->rx);
38404
38405 return;
38406 }
38407 @@ -1191,7 +1191,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38408 __net_timestamp(skb);
38409
38410 vcc->push(vcc, skb);
38411 - atomic_inc(&vcc->stats->rx);
38412 + atomic_inc_unchecked(&vcc->stats->rx);
38413
38414 if (skb->truesize > SAR_FB_SIZE_3)
38415 add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
38416 @@ -1302,14 +1302,14 @@ idt77252_rx_raw(struct idt77252_dev *card)
38417 if (vcc->qos.aal != ATM_AAL0) {
38418 RPRINTK("%s: raw cell for non AAL0 vc %u.%u\n",
38419 card->name, vpi, vci);
38420 - atomic_inc(&vcc->stats->rx_drop);
38421 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38422 goto drop;
38423 }
38424
38425 if ((sb = dev_alloc_skb(64)) == NULL) {
38426 printk("%s: Can't allocate buffers for AAL0.\n",
38427 card->name);
38428 - atomic_inc(&vcc->stats->rx_err);
38429 + atomic_inc_unchecked(&vcc->stats->rx_err);
38430 goto drop;
38431 }
38432
38433 @@ -1328,7 +1328,7 @@ idt77252_rx_raw(struct idt77252_dev *card)
38434 ATM_SKB(sb)->vcc = vcc;
38435 __net_timestamp(sb);
38436 vcc->push(vcc, sb);
38437 - atomic_inc(&vcc->stats->rx);
38438 + atomic_inc_unchecked(&vcc->stats->rx);
38439
38440 drop:
38441 skb_pull(queue, 64);
38442 @@ -1953,13 +1953,13 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38443
38444 if (vc == NULL) {
38445 printk("%s: NULL connection in send().\n", card->name);
38446 - atomic_inc(&vcc->stats->tx_err);
38447 + atomic_inc_unchecked(&vcc->stats->tx_err);
38448 dev_kfree_skb(skb);
38449 return -EINVAL;
38450 }
38451 if (!test_bit(VCF_TX, &vc->flags)) {
38452 printk("%s: Trying to transmit on a non-tx VC.\n", card->name);
38453 - atomic_inc(&vcc->stats->tx_err);
38454 + atomic_inc_unchecked(&vcc->stats->tx_err);
38455 dev_kfree_skb(skb);
38456 return -EINVAL;
38457 }
38458 @@ -1971,14 +1971,14 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38459 break;
38460 default:
38461 printk("%s: Unsupported AAL: %d\n", card->name, vcc->qos.aal);
38462 - atomic_inc(&vcc->stats->tx_err);
38463 + atomic_inc_unchecked(&vcc->stats->tx_err);
38464 dev_kfree_skb(skb);
38465 return -EINVAL;
38466 }
38467
38468 if (skb_shinfo(skb)->nr_frags != 0) {
38469 printk("%s: No scatter-gather yet.\n", card->name);
38470 - atomic_inc(&vcc->stats->tx_err);
38471 + atomic_inc_unchecked(&vcc->stats->tx_err);
38472 dev_kfree_skb(skb);
38473 return -EINVAL;
38474 }
38475 @@ -1986,7 +1986,7 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38476
38477 err = queue_skb(card, vc, skb, oam);
38478 if (err) {
38479 - atomic_inc(&vcc->stats->tx_err);
38480 + atomic_inc_unchecked(&vcc->stats->tx_err);
38481 dev_kfree_skb(skb);
38482 return err;
38483 }
38484 @@ -2009,7 +2009,7 @@ idt77252_send_oam(struct atm_vcc *vcc, void *cell, int flags)
38485 skb = dev_alloc_skb(64);
38486 if (!skb) {
38487 printk("%s: Out of memory in send_oam().\n", card->name);
38488 - atomic_inc(&vcc->stats->tx_err);
38489 + atomic_inc_unchecked(&vcc->stats->tx_err);
38490 return -ENOMEM;
38491 }
38492 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
38493 diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
38494 index 65e6590..df77d04 100644
38495 --- a/drivers/atm/iphase.c
38496 +++ b/drivers/atm/iphase.c
38497 @@ -1145,7 +1145,7 @@ static int rx_pkt(struct atm_dev *dev)
38498 status = (u_short) (buf_desc_ptr->desc_mode);
38499 if (status & (RX_CER | RX_PTE | RX_OFL))
38500 {
38501 - atomic_inc(&vcc->stats->rx_err);
38502 + atomic_inc_unchecked(&vcc->stats->rx_err);
38503 IF_ERR(printk("IA: bad packet, dropping it");)
38504 if (status & RX_CER) {
38505 IF_ERR(printk(" cause: packet CRC error\n");)
38506 @@ -1168,7 +1168,7 @@ static int rx_pkt(struct atm_dev *dev)
38507 len = dma_addr - buf_addr;
38508 if (len > iadev->rx_buf_sz) {
38509 printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz);
38510 - atomic_inc(&vcc->stats->rx_err);
38511 + atomic_inc_unchecked(&vcc->stats->rx_err);
38512 goto out_free_desc;
38513 }
38514
38515 @@ -1318,7 +1318,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38516 ia_vcc = INPH_IA_VCC(vcc);
38517 if (ia_vcc == NULL)
38518 {
38519 - atomic_inc(&vcc->stats->rx_err);
38520 + atomic_inc_unchecked(&vcc->stats->rx_err);
38521 atm_return(vcc, skb->truesize);
38522 dev_kfree_skb_any(skb);
38523 goto INCR_DLE;
38524 @@ -1330,7 +1330,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38525 if ((length > iadev->rx_buf_sz) || (length >
38526 (skb->len - sizeof(struct cpcs_trailer))))
38527 {
38528 - atomic_inc(&vcc->stats->rx_err);
38529 + atomic_inc_unchecked(&vcc->stats->rx_err);
38530 IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)",
38531 length, skb->len);)
38532 atm_return(vcc, skb->truesize);
38533 @@ -1346,7 +1346,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38534
38535 IF_RX(printk("rx_dle_intr: skb push");)
38536 vcc->push(vcc,skb);
38537 - atomic_inc(&vcc->stats->rx);
38538 + atomic_inc_unchecked(&vcc->stats->rx);
38539 iadev->rx_pkt_cnt++;
38540 }
38541 INCR_DLE:
38542 @@ -2828,15 +2828,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
38543 {
38544 struct k_sonet_stats *stats;
38545 stats = &PRIV(_ia_dev[board])->sonet_stats;
38546 - printk("section_bip: %d\n", atomic_read(&stats->section_bip));
38547 - printk("line_bip : %d\n", atomic_read(&stats->line_bip));
38548 - printk("path_bip : %d\n", atomic_read(&stats->path_bip));
38549 - printk("line_febe : %d\n", atomic_read(&stats->line_febe));
38550 - printk("path_febe : %d\n", atomic_read(&stats->path_febe));
38551 - printk("corr_hcs : %d\n", atomic_read(&stats->corr_hcs));
38552 - printk("uncorr_hcs : %d\n", atomic_read(&stats->uncorr_hcs));
38553 - printk("tx_cells : %d\n", atomic_read(&stats->tx_cells));
38554 - printk("rx_cells : %d\n", atomic_read(&stats->rx_cells));
38555 + printk("section_bip: %d\n", atomic_read_unchecked(&stats->section_bip));
38556 + printk("line_bip : %d\n", atomic_read_unchecked(&stats->line_bip));
38557 + printk("path_bip : %d\n", atomic_read_unchecked(&stats->path_bip));
38558 + printk("line_febe : %d\n", atomic_read_unchecked(&stats->line_febe));
38559 + printk("path_febe : %d\n", atomic_read_unchecked(&stats->path_febe));
38560 + printk("corr_hcs : %d\n", atomic_read_unchecked(&stats->corr_hcs));
38561 + printk("uncorr_hcs : %d\n", atomic_read_unchecked(&stats->uncorr_hcs));
38562 + printk("tx_cells : %d\n", atomic_read_unchecked(&stats->tx_cells));
38563 + printk("rx_cells : %d\n", atomic_read_unchecked(&stats->rx_cells));
38564 }
38565 ia_cmds.status = 0;
38566 break;
38567 @@ -2941,7 +2941,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38568 if ((desc == 0) || (desc > iadev->num_tx_desc))
38569 {
38570 IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);)
38571 - atomic_inc(&vcc->stats->tx);
38572 + atomic_inc_unchecked(&vcc->stats->tx);
38573 if (vcc->pop)
38574 vcc->pop(vcc, skb);
38575 else
38576 @@ -3046,14 +3046,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38577 ATM_DESC(skb) = vcc->vci;
38578 skb_queue_tail(&iadev->tx_dma_q, skb);
38579
38580 - atomic_inc(&vcc->stats->tx);
38581 + atomic_inc_unchecked(&vcc->stats->tx);
38582 iadev->tx_pkt_cnt++;
38583 /* Increment transaction counter */
38584 writel(2, iadev->dma+IPHASE5575_TX_COUNTER);
38585
38586 #if 0
38587 /* add flow control logic */
38588 - if (atomic_read(&vcc->stats->tx) % 20 == 0) {
38589 + if (atomic_read_unchecked(&vcc->stats->tx) % 20 == 0) {
38590 if (iavcc->vc_desc_cnt > 10) {
38591 vcc->tx_quota = vcc->tx_quota * 3 / 4;
38592 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
38593 diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
38594 index ce43ae3..969de38 100644
38595 --- a/drivers/atm/lanai.c
38596 +++ b/drivers/atm/lanai.c
38597 @@ -1295,7 +1295,7 @@ static void lanai_send_one_aal5(struct lanai_dev *lanai,
38598 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
38599 lanai_endtx(lanai, lvcc);
38600 lanai_free_skb(lvcc->tx.atmvcc, skb);
38601 - atomic_inc(&lvcc->tx.atmvcc->stats->tx);
38602 + atomic_inc_unchecked(&lvcc->tx.atmvcc->stats->tx);
38603 }
38604
38605 /* Try to fill the buffer - don't call unless there is backlog */
38606 @@ -1418,7 +1418,7 @@ static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr)
38607 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc;
38608 __net_timestamp(skb);
38609 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb);
38610 - atomic_inc(&lvcc->rx.atmvcc->stats->rx);
38611 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx);
38612 out:
38613 lvcc->rx.buf.ptr = end;
38614 cardvcc_write(lvcc, endptr, vcc_rxreadptr);
38615 @@ -1659,7 +1659,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38616 DPRINTK("(itf %d) got RX service entry 0x%X for non-AAL5 "
38617 "vcc %d\n", lanai->number, (unsigned int) s, vci);
38618 lanai->stats.service_rxnotaal5++;
38619 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38620 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38621 return 0;
38622 }
38623 if (likely(!(s & (SERVICE_TRASH | SERVICE_STREAM | SERVICE_CRCERR)))) {
38624 @@ -1671,7 +1671,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38625 int bytes;
38626 read_unlock(&vcc_sklist_lock);
38627 DPRINTK("got trashed rx pdu on vci %d\n", vci);
38628 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38629 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38630 lvcc->stats.x.aal5.service_trash++;
38631 bytes = (SERVICE_GET_END(s) * 16) -
38632 (((unsigned long) lvcc->rx.buf.ptr) -
38633 @@ -1683,7 +1683,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38634 }
38635 if (s & SERVICE_STREAM) {
38636 read_unlock(&vcc_sklist_lock);
38637 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38638 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38639 lvcc->stats.x.aal5.service_stream++;
38640 printk(KERN_ERR DEV_LABEL "(itf %d): Got AAL5 stream "
38641 "PDU on VCI %d!\n", lanai->number, vci);
38642 @@ -1691,7 +1691,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38643 return 0;
38644 }
38645 DPRINTK("got rx crc error on vci %d\n", vci);
38646 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38647 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38648 lvcc->stats.x.aal5.service_rxcrc++;
38649 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
38650 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
38651 diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
38652 index ddc4ceb..36e29aa 100644
38653 --- a/drivers/atm/nicstar.c
38654 +++ b/drivers/atm/nicstar.c
38655 @@ -1632,7 +1632,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38656 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
38657 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
38658 card->index);
38659 - atomic_inc(&vcc->stats->tx_err);
38660 + atomic_inc_unchecked(&vcc->stats->tx_err);
38661 dev_kfree_skb_any(skb);
38662 return -EINVAL;
38663 }
38664 @@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38665 if (!vc->tx) {
38666 printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
38667 card->index);
38668 - atomic_inc(&vcc->stats->tx_err);
38669 + atomic_inc_unchecked(&vcc->stats->tx_err);
38670 dev_kfree_skb_any(skb);
38671 return -EINVAL;
38672 }
38673 @@ -1648,14 +1648,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38674 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
38675 printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
38676 card->index);
38677 - atomic_inc(&vcc->stats->tx_err);
38678 + atomic_inc_unchecked(&vcc->stats->tx_err);
38679 dev_kfree_skb_any(skb);
38680 return -EINVAL;
38681 }
38682
38683 if (skb_shinfo(skb)->nr_frags != 0) {
38684 printk("nicstar%d: No scatter-gather yet.\n", card->index);
38685 - atomic_inc(&vcc->stats->tx_err);
38686 + atomic_inc_unchecked(&vcc->stats->tx_err);
38687 dev_kfree_skb_any(skb);
38688 return -EINVAL;
38689 }
38690 @@ -1703,11 +1703,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38691 }
38692
38693 if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
38694 - atomic_inc(&vcc->stats->tx_err);
38695 + atomic_inc_unchecked(&vcc->stats->tx_err);
38696 dev_kfree_skb_any(skb);
38697 return -EIO;
38698 }
38699 - atomic_inc(&vcc->stats->tx);
38700 + atomic_inc_unchecked(&vcc->stats->tx);
38701
38702 return 0;
38703 }
38704 @@ -2024,14 +2024,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38705 printk
38706 ("nicstar%d: Can't allocate buffers for aal0.\n",
38707 card->index);
38708 - atomic_add(i, &vcc->stats->rx_drop);
38709 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38710 break;
38711 }
38712 if (!atm_charge(vcc, sb->truesize)) {
38713 RXPRINTK
38714 ("nicstar%d: atm_charge() dropped aal0 packets.\n",
38715 card->index);
38716 - atomic_add(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38717 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38718 dev_kfree_skb_any(sb);
38719 break;
38720 }
38721 @@ -2046,7 +2046,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38722 ATM_SKB(sb)->vcc = vcc;
38723 __net_timestamp(sb);
38724 vcc->push(vcc, sb);
38725 - atomic_inc(&vcc->stats->rx);
38726 + atomic_inc_unchecked(&vcc->stats->rx);
38727 cell += ATM_CELL_PAYLOAD;
38728 }
38729
38730 @@ -2063,7 +2063,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38731 if (iovb == NULL) {
38732 printk("nicstar%d: Out of iovec buffers.\n",
38733 card->index);
38734 - atomic_inc(&vcc->stats->rx_drop);
38735 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38736 recycle_rx_buf(card, skb);
38737 return;
38738 }
38739 @@ -2087,7 +2087,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38740 small or large buffer itself. */
38741 } else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
38742 printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
38743 - atomic_inc(&vcc->stats->rx_err);
38744 + atomic_inc_unchecked(&vcc->stats->rx_err);
38745 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38746 NS_MAX_IOVECS);
38747 NS_PRV_IOVCNT(iovb) = 0;
38748 @@ -2107,7 +2107,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38749 ("nicstar%d: Expected a small buffer, and this is not one.\n",
38750 card->index);
38751 which_list(card, skb);
38752 - atomic_inc(&vcc->stats->rx_err);
38753 + atomic_inc_unchecked(&vcc->stats->rx_err);
38754 recycle_rx_buf(card, skb);
38755 vc->rx_iov = NULL;
38756 recycle_iov_buf(card, iovb);
38757 @@ -2120,7 +2120,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38758 ("nicstar%d: Expected a large buffer, and this is not one.\n",
38759 card->index);
38760 which_list(card, skb);
38761 - atomic_inc(&vcc->stats->rx_err);
38762 + atomic_inc_unchecked(&vcc->stats->rx_err);
38763 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38764 NS_PRV_IOVCNT(iovb));
38765 vc->rx_iov = NULL;
38766 @@ -2143,7 +2143,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38767 printk(" - PDU size mismatch.\n");
38768 else
38769 printk(".\n");
38770 - atomic_inc(&vcc->stats->rx_err);
38771 + atomic_inc_unchecked(&vcc->stats->rx_err);
38772 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38773 NS_PRV_IOVCNT(iovb));
38774 vc->rx_iov = NULL;
38775 @@ -2157,14 +2157,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38776 /* skb points to a small buffer */
38777 if (!atm_charge(vcc, skb->truesize)) {
38778 push_rxbufs(card, skb);
38779 - atomic_inc(&vcc->stats->rx_drop);
38780 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38781 } else {
38782 skb_put(skb, len);
38783 dequeue_sm_buf(card, skb);
38784 ATM_SKB(skb)->vcc = vcc;
38785 __net_timestamp(skb);
38786 vcc->push(vcc, skb);
38787 - atomic_inc(&vcc->stats->rx);
38788 + atomic_inc_unchecked(&vcc->stats->rx);
38789 }
38790 } else if (NS_PRV_IOVCNT(iovb) == 2) { /* One small plus one large buffer */
38791 struct sk_buff *sb;
38792 @@ -2175,14 +2175,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38793 if (len <= NS_SMBUFSIZE) {
38794 if (!atm_charge(vcc, sb->truesize)) {
38795 push_rxbufs(card, sb);
38796 - atomic_inc(&vcc->stats->rx_drop);
38797 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38798 } else {
38799 skb_put(sb, len);
38800 dequeue_sm_buf(card, sb);
38801 ATM_SKB(sb)->vcc = vcc;
38802 __net_timestamp(sb);
38803 vcc->push(vcc, sb);
38804 - atomic_inc(&vcc->stats->rx);
38805 + atomic_inc_unchecked(&vcc->stats->rx);
38806 }
38807
38808 push_rxbufs(card, skb);
38809 @@ -2191,7 +2191,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38810
38811 if (!atm_charge(vcc, skb->truesize)) {
38812 push_rxbufs(card, skb);
38813 - atomic_inc(&vcc->stats->rx_drop);
38814 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38815 } else {
38816 dequeue_lg_buf(card, skb);
38817 skb_push(skb, NS_SMBUFSIZE);
38818 @@ -2201,7 +2201,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38819 ATM_SKB(skb)->vcc = vcc;
38820 __net_timestamp(skb);
38821 vcc->push(vcc, skb);
38822 - atomic_inc(&vcc->stats->rx);
38823 + atomic_inc_unchecked(&vcc->stats->rx);
38824 }
38825
38826 push_rxbufs(card, sb);
38827 @@ -2222,7 +2222,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38828 printk
38829 ("nicstar%d: Out of huge buffers.\n",
38830 card->index);
38831 - atomic_inc(&vcc->stats->rx_drop);
38832 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38833 recycle_iovec_rx_bufs(card,
38834 (struct iovec *)
38835 iovb->data,
38836 @@ -2273,7 +2273,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38837 card->hbpool.count++;
38838 } else
38839 dev_kfree_skb_any(hb);
38840 - atomic_inc(&vcc->stats->rx_drop);
38841 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38842 } else {
38843 /* Copy the small buffer to the huge buffer */
38844 sb = (struct sk_buff *)iov->iov_base;
38845 @@ -2307,7 +2307,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38846 ATM_SKB(hb)->vcc = vcc;
38847 __net_timestamp(hb);
38848 vcc->push(vcc, hb);
38849 - atomic_inc(&vcc->stats->rx);
38850 + atomic_inc_unchecked(&vcc->stats->rx);
38851 }
38852 }
38853
38854 diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
38855 index 3d7fb65..0f26393 100644
38856 --- a/drivers/atm/solos-pci.c
38857 +++ b/drivers/atm/solos-pci.c
38858 @@ -843,7 +843,7 @@ static void solos_bh(unsigned long card_arg)
38859 }
38860 atm_charge(vcc, skb->truesize);
38861 vcc->push(vcc, skb);
38862 - atomic_inc(&vcc->stats->rx);
38863 + atomic_inc_unchecked(&vcc->stats->rx);
38864 break;
38865
38866 case PKT_STATUS:
38867 @@ -1124,7 +1124,7 @@ static uint32_t fpga_tx(struct solos_card *card)
38868 vcc = SKB_CB(oldskb)->vcc;
38869
38870 if (vcc) {
38871 - atomic_inc(&vcc->stats->tx);
38872 + atomic_inc_unchecked(&vcc->stats->tx);
38873 solos_pop(vcc, oldskb);
38874 } else {
38875 dev_kfree_skb_irq(oldskb);
38876 diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
38877 index 0215934..ce9f5b1 100644
38878 --- a/drivers/atm/suni.c
38879 +++ b/drivers/atm/suni.c
38880 @@ -49,8 +49,8 @@ static DEFINE_SPINLOCK(sunis_lock);
38881
38882
38883 #define ADD_LIMITED(s,v) \
38884 - atomic_add((v),&stats->s); \
38885 - if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX);
38886 + atomic_add_unchecked((v),&stats->s); \
38887 + if (atomic_read_unchecked(&stats->s) < 0) atomic_set_unchecked(&stats->s,INT_MAX);
38888
38889
38890 static void suni_hz(unsigned long from_timer)
38891 diff --git a/drivers/atm/uPD98402.c b/drivers/atm/uPD98402.c
38892 index 5120a96..e2572bd 100644
38893 --- a/drivers/atm/uPD98402.c
38894 +++ b/drivers/atm/uPD98402.c
38895 @@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *dev,struct sonet_stats __user *arg,int ze
38896 struct sonet_stats tmp;
38897 int error = 0;
38898
38899 - atomic_add(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38900 + atomic_add_unchecked(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38901 sonet_copy_stats(&PRIV(dev)->sonet_stats,&tmp);
38902 if (arg) error = copy_to_user(arg,&tmp,sizeof(tmp));
38903 if (zero && !error) {
38904 @@ -161,9 +161,9 @@ static int uPD98402_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
38905
38906
38907 #define ADD_LIMITED(s,v) \
38908 - { atomic_add(GET(v),&PRIV(dev)->sonet_stats.s); \
38909 - if (atomic_read(&PRIV(dev)->sonet_stats.s) < 0) \
38910 - atomic_set(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38911 + { atomic_add_unchecked(GET(v),&PRIV(dev)->sonet_stats.s); \
38912 + if (atomic_read_unchecked(&PRIV(dev)->sonet_stats.s) < 0) \
38913 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38914
38915
38916 static void stat_event(struct atm_dev *dev)
38917 @@ -194,7 +194,7 @@ static void uPD98402_int(struct atm_dev *dev)
38918 if (reason & uPD98402_INT_PFM) stat_event(dev);
38919 if (reason & uPD98402_INT_PCO) {
38920 (void) GET(PCOCR); /* clear interrupt cause */
38921 - atomic_add(GET(HECCT),
38922 + atomic_add_unchecked(GET(HECCT),
38923 &PRIV(dev)->sonet_stats.uncorr_hcs);
38924 }
38925 if ((reason & uPD98402_INT_RFO) &&
38926 @@ -222,9 +222,9 @@ static int uPD98402_start(struct atm_dev *dev)
38927 PUT(~(uPD98402_INT_PFM | uPD98402_INT_ALM | uPD98402_INT_RFO |
38928 uPD98402_INT_LOS),PIMR); /* enable them */
38929 (void) fetch_stats(dev,NULL,1); /* clear kernel counters */
38930 - atomic_set(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38931 - atomic_set(&PRIV(dev)->sonet_stats.tx_cells,-1);
38932 - atomic_set(&PRIV(dev)->sonet_stats.rx_cells,-1);
38933 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38934 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.tx_cells,-1);
38935 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.rx_cells,-1);
38936 return 0;
38937 }
38938
38939 diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
38940 index cecfb94..87009ec 100644
38941 --- a/drivers/atm/zatm.c
38942 +++ b/drivers/atm/zatm.c
38943 @@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38944 }
38945 if (!size) {
38946 dev_kfree_skb_irq(skb);
38947 - if (vcc) atomic_inc(&vcc->stats->rx_err);
38948 + if (vcc) atomic_inc_unchecked(&vcc->stats->rx_err);
38949 continue;
38950 }
38951 if (!atm_charge(vcc,skb->truesize)) {
38952 @@ -469,7 +469,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38953 skb->len = size;
38954 ATM_SKB(skb)->vcc = vcc;
38955 vcc->push(vcc,skb);
38956 - atomic_inc(&vcc->stats->rx);
38957 + atomic_inc_unchecked(&vcc->stats->rx);
38958 }
38959 zout(pos & 0xffff,MTA(mbx));
38960 #if 0 /* probably a stupid idea */
38961 @@ -733,7 +733,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
38962 skb_queue_head(&zatm_vcc->backlog,skb);
38963 break;
38964 }
38965 - atomic_inc(&vcc->stats->tx);
38966 + atomic_inc_unchecked(&vcc->stats->tx);
38967 wake_up(&zatm_vcc->tx_wait);
38968 }
38969
38970 diff --git a/drivers/base/bus.c b/drivers/base/bus.c
38971 index 5005924..9fc06c4 100644
38972 --- a/drivers/base/bus.c
38973 +++ b/drivers/base/bus.c
38974 @@ -1141,7 +1141,7 @@ int subsys_interface_register(struct subsys_interface *sif)
38975 return -EINVAL;
38976
38977 mutex_lock(&subsys->p->mutex);
38978 - list_add_tail(&sif->node, &subsys->p->interfaces);
38979 + pax_list_add_tail((struct list_head *)&sif->node, &subsys->p->interfaces);
38980 if (sif->add_dev) {
38981 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
38982 while ((dev = subsys_dev_iter_next(&iter)))
38983 @@ -1166,7 +1166,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
38984 subsys = sif->subsys;
38985
38986 mutex_lock(&subsys->p->mutex);
38987 - list_del_init(&sif->node);
38988 + pax_list_del_init((struct list_head *)&sif->node);
38989 if (sif->remove_dev) {
38990 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
38991 while ((dev = subsys_dev_iter_next(&iter)))
38992 diff --git a/drivers/base/devres.c b/drivers/base/devres.c
38993 index 8754646..6828fbe 100644
38994 --- a/drivers/base/devres.c
38995 +++ b/drivers/base/devres.c
38996 @@ -475,7 +475,9 @@ static int remove_nodes(struct device *dev,
38997
38998 static int release_nodes(struct device *dev, struct list_head *first,
38999 struct list_head *end, unsigned long flags)
39000 - __releases(&dev->devres_lock)
39001 + __releases(&dev->devres_lock);
39002 +static int release_nodes(struct device *dev, struct list_head *first,
39003 + struct list_head *end, unsigned long flags)
39004 {
39005 LIST_HEAD(todo);
39006 int cnt;
39007 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
39008 index 68f0314..ca2a609 100644
39009 --- a/drivers/base/devtmpfs.c
39010 +++ b/drivers/base/devtmpfs.c
39011 @@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
39012 if (!thread)
39013 return 0;
39014
39015 - err = sys_mount("devtmpfs", (char *)mntdir, "devtmpfs", MS_SILENT, NULL);
39016 + err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)mntdir, (char __force_user *)"devtmpfs", MS_SILENT, NULL);
39017 if (err)
39018 printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
39019 else
39020 @@ -380,11 +380,11 @@ static int devtmpfsd(void *p)
39021 *err = sys_unshare(CLONE_NEWNS);
39022 if (*err)
39023 goto out;
39024 - *err = sys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, options);
39025 + *err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)"/", (char __force_user *)"devtmpfs", MS_SILENT, (char __force_user *)options);
39026 if (*err)
39027 goto out;
39028 - sys_chdir("/.."); /* will traverse into overmounted root */
39029 - sys_chroot(".");
39030 + sys_chdir((char __force_user *)"/.."); /* will traverse into overmounted root */
39031 + sys_chroot((char __force_user *)".");
39032 complete(&setup_done);
39033 while (1) {
39034 spin_lock(&req_lock);
39035 diff --git a/drivers/base/node.c b/drivers/base/node.c
39036 index 560751b..3a4847a 100644
39037 --- a/drivers/base/node.c
39038 +++ b/drivers/base/node.c
39039 @@ -627,7 +627,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
39040 struct node_attr {
39041 struct device_attribute attr;
39042 enum node_states state;
39043 -};
39044 +} __do_const;
39045
39046 static ssize_t show_node_state(struct device *dev,
39047 struct device_attribute *attr, char *buf)
39048 diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
39049 index 134483d..5588d1c 100644
39050 --- a/drivers/base/platform-msi.c
39051 +++ b/drivers/base/platform-msi.c
39052 @@ -24,6 +24,8 @@
39053 #include <linux/msi.h>
39054 #include <linux/slab.h>
39055
39056 +#include <asm/pgtable.h>
39057 +
39058 #define DEV_ID_SHIFT 24
39059
39060 /*
39061 @@ -77,10 +79,12 @@ static void platform_msi_update_dom_ops(struct msi_domain_info *info)
39062
39063 BUG_ON(!ops);
39064
39065 + pax_open_kernel();
39066 if (ops->msi_init == NULL)
39067 - ops->msi_init = platform_msi_init;
39068 + *(void **)&ops->msi_init = platform_msi_init;
39069 if (ops->set_desc == NULL)
39070 - ops->set_desc = platform_msi_set_desc;
39071 + *(void **)&ops->set_desc = platform_msi_set_desc;
39072 + pax_close_kernel();
39073 }
39074
39075 static void platform_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
39076 @@ -98,16 +102,18 @@ static void platform_msi_update_chip_ops(struct msi_domain_info *info)
39077 struct irq_chip *chip = info->chip;
39078
39079 BUG_ON(!chip);
39080 + pax_open_kernel();
39081 if (!chip->irq_mask)
39082 - chip->irq_mask = irq_chip_mask_parent;
39083 + *(void **)&chip->irq_mask = irq_chip_mask_parent;
39084 if (!chip->irq_unmask)
39085 - chip->irq_unmask = irq_chip_unmask_parent;
39086 + *(void **)&chip->irq_unmask = irq_chip_unmask_parent;
39087 if (!chip->irq_eoi)
39088 - chip->irq_eoi = irq_chip_eoi_parent;
39089 + *(void **)&chip->irq_eoi = irq_chip_eoi_parent;
39090 if (!chip->irq_set_affinity)
39091 - chip->irq_set_affinity = msi_domain_set_affinity;
39092 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
39093 if (!chip->irq_write_msi_msg)
39094 - chip->irq_write_msi_msg = platform_msi_write_msg;
39095 + *(void **)&chip->irq_write_msi_msg = platform_msi_write_msg;
39096 + pax_close_kernel();
39097 }
39098
39099 static void platform_msi_free_descs(struct device *dev)
39100 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
39101 index 16550c6..322c4c7 100644
39102 --- a/drivers/base/power/domain.c
39103 +++ b/drivers/base/power/domain.c
39104 @@ -1517,7 +1517,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
39105 {
39106 struct cpuidle_driver *cpuidle_drv;
39107 struct gpd_cpuidle_data *cpuidle_data;
39108 - struct cpuidle_state *idle_state;
39109 + cpuidle_state_no_const *idle_state;
39110 int ret = 0;
39111
39112 if (IS_ERR_OR_NULL(genpd) || state < 0)
39113 @@ -1585,7 +1585,7 @@ int pm_genpd_name_attach_cpuidle(const char *name, int state)
39114 int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
39115 {
39116 struct gpd_cpuidle_data *cpuidle_data;
39117 - struct cpuidle_state *idle_state;
39118 + cpuidle_state_no_const *idle_state;
39119 int ret = 0;
39120
39121 if (IS_ERR_OR_NULL(genpd))
39122 @@ -2021,8 +2021,11 @@ int genpd_dev_pm_attach(struct device *dev)
39123 goto out;
39124 }
39125
39126 - dev->pm_domain->detach = genpd_dev_pm_detach;
39127 - dev->pm_domain->sync = genpd_dev_pm_sync;
39128 + pax_open_kernel();
39129 + *(void **)&dev->pm_domain->detach = genpd_dev_pm_detach;
39130 + *(void **)&dev->pm_domain->sync = genpd_dev_pm_sync;
39131 + pax_close_kernel();
39132 +
39133 ret = pm_genpd_poweron(pd);
39134
39135 out:
39136 diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
39137 index e1a10a0..a6bc363 100644
39138 --- a/drivers/base/power/runtime.c
39139 +++ b/drivers/base/power/runtime.c
39140 @@ -263,8 +263,8 @@ static int rpm_check_suspend_allowed(struct device *dev)
39141 * @cb: Runtime PM callback to run.
39142 * @dev: Device to run the callback for.
39143 */
39144 +static int __rpm_callback(int (*cb)(struct device *), struct device *dev) __must_hold(&dev->power.lock);
39145 static int __rpm_callback(int (*cb)(struct device *), struct device *dev)
39146 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
39147 {
39148 int retval;
39149
39150 @@ -412,8 +412,8 @@ static int rpm_callback(int (*cb)(struct device *), struct device *dev)
39151 *
39152 * This function must be called under dev->power.lock with interrupts disabled.
39153 */
39154 +static int rpm_suspend(struct device *dev, int rpmflags) __must_hold(&dev->power.lock);
39155 static int rpm_suspend(struct device *dev, int rpmflags)
39156 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
39157 {
39158 int (*callback)(struct device *);
39159 struct device *parent = NULL;
39160 @@ -594,8 +594,8 @@ static int rpm_suspend(struct device *dev, int rpmflags)
39161 *
39162 * This function must be called under dev->power.lock with interrupts disabled.
39163 */
39164 +static int rpm_resume(struct device *dev, int rpmflags) __must_hold(&dev->power.lock);
39165 static int rpm_resume(struct device *dev, int rpmflags)
39166 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
39167 {
39168 int (*callback)(struct device *);
39169 struct device *parent = NULL;
39170 diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
39171 index a7b4679..d302490 100644
39172 --- a/drivers/base/power/sysfs.c
39173 +++ b/drivers/base/power/sysfs.c
39174 @@ -181,7 +181,7 @@ static ssize_t rtpm_status_show(struct device *dev,
39175 return -EIO;
39176 }
39177 }
39178 - return sprintf(buf, p);
39179 + return sprintf(buf, "%s", p);
39180 }
39181
39182 static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL);
39183 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
39184 index 51f15bc..892a668 100644
39185 --- a/drivers/base/power/wakeup.c
39186 +++ b/drivers/base/power/wakeup.c
39187 @@ -33,14 +33,14 @@ static bool pm_abort_suspend __read_mostly;
39188 * They need to be modified together atomically, so it's better to use one
39189 * atomic variable to hold them both.
39190 */
39191 -static atomic_t combined_event_count = ATOMIC_INIT(0);
39192 +static atomic_unchecked_t combined_event_count = ATOMIC_INIT(0);
39193
39194 #define IN_PROGRESS_BITS (sizeof(int) * 4)
39195 #define MAX_IN_PROGRESS ((1 << IN_PROGRESS_BITS) - 1)
39196
39197 static void split_counters(unsigned int *cnt, unsigned int *inpr)
39198 {
39199 - unsigned int comb = atomic_read(&combined_event_count);
39200 + unsigned int comb = atomic_read_unchecked(&combined_event_count);
39201
39202 *cnt = (comb >> IN_PROGRESS_BITS);
39203 *inpr = comb & MAX_IN_PROGRESS;
39204 @@ -537,7 +537,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
39205 ws->start_prevent_time = ws->last_time;
39206
39207 /* Increment the counter of events in progress. */
39208 - cec = atomic_inc_return(&combined_event_count);
39209 + cec = atomic_inc_return_unchecked(&combined_event_count);
39210
39211 trace_wakeup_source_activate(ws->name, cec);
39212 }
39213 @@ -663,7 +663,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
39214 * Increment the counter of registered wakeup events and decrement the
39215 * couter of wakeup events in progress simultaneously.
39216 */
39217 - cec = atomic_add_return(MAX_IN_PROGRESS, &combined_event_count);
39218 + cec = atomic_add_return_unchecked(MAX_IN_PROGRESS, &combined_event_count);
39219 trace_wakeup_source_deactivate(ws->name, cec);
39220
39221 split_counters(&cnt, &inpr);
39222 diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
39223 index 4c55cfb..b4c21fb 100644
39224 --- a/drivers/base/regmap/regmap-debugfs.c
39225 +++ b/drivers/base/regmap/regmap-debugfs.c
39226 @@ -30,7 +30,7 @@ static LIST_HEAD(regmap_debugfs_early_list);
39227 static DEFINE_MUTEX(regmap_debugfs_early_lock);
39228
39229 /* Calculate the length of a fixed format */
39230 -static size_t regmap_calc_reg_len(int max_val, char *buf, size_t buf_size)
39231 +static size_t regmap_calc_reg_len(int max_val)
39232 {
39233 return snprintf(NULL, 0, "%x", max_val);
39234 }
39235 @@ -173,8 +173,7 @@ static inline void regmap_calc_tot_len(struct regmap *map,
39236 {
39237 /* Calculate the length of a fixed format */
39238 if (!map->debugfs_tot_len) {
39239 - map->debugfs_reg_len = regmap_calc_reg_len(map->max_register,
39240 - buf, count);
39241 + map->debugfs_reg_len = regmap_calc_reg_len(map->max_register);
39242 map->debugfs_val_len = 2 * map->format.val_bytes;
39243 map->debugfs_tot_len = map->debugfs_reg_len +
39244 map->debugfs_val_len + 3; /* : \n */
39245 @@ -404,7 +403,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39246 char __user *user_buf, size_t count,
39247 loff_t *ppos)
39248 {
39249 - int reg_len, tot_len;
39250 + size_t reg_len, tot_len;
39251 size_t buf_pos = 0;
39252 loff_t p = 0;
39253 ssize_t ret;
39254 @@ -420,7 +419,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39255 return -ENOMEM;
39256
39257 /* Calculate the length of a fixed format */
39258 - reg_len = regmap_calc_reg_len(map->max_register, buf, count);
39259 + reg_len = regmap_calc_reg_len(map->max_register);
39260 tot_len = reg_len + 10; /* ': R W V P\n' */
39261
39262 for (i = 0; i <= map->max_register; i += map->reg_stride) {
39263 @@ -437,7 +436,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39264 /* Format the register */
39265 snprintf(buf + buf_pos, count - buf_pos,
39266 "%.*x: %c %c %c %c\n",
39267 - reg_len, i,
39268 + (int)reg_len, i,
39269 regmap_readable(map, i) ? 'y' : 'n',
39270 regmap_writeable(map, i) ? 'y' : 'n',
39271 regmap_volatile(map, i) ? 'y' : 'n',
39272 diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
39273 index afaf562..722e2a9 100644
39274 --- a/drivers/base/regmap/regmap.c
39275 +++ b/drivers/base/regmap/regmap.c
39276 @@ -344,8 +344,8 @@ static void regmap_unlock_mutex(void *__map)
39277 mutex_unlock(&map->mutex);
39278 }
39279
39280 +static void regmap_lock_spinlock(void *__map) __acquires(&map->spinlock);
39281 static void regmap_lock_spinlock(void *__map)
39282 -__acquires(&map->spinlock)
39283 {
39284 struct regmap *map = __map;
39285 unsigned long flags;
39286 @@ -354,8 +354,8 @@ __acquires(&map->spinlock)
39287 map->spinlock_flags = flags;
39288 }
39289
39290 +static void regmap_unlock_spinlock(void *__map) __releases(&map->spinlock);
39291 static void regmap_unlock_spinlock(void *__map)
39292 -__releases(&map->spinlock)
39293 {
39294 struct regmap *map = __map;
39295 spin_unlock_irqrestore(&map->spinlock, map->spinlock_flags);
39296 diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
39297 index 8d98a32..61d3165 100644
39298 --- a/drivers/base/syscore.c
39299 +++ b/drivers/base/syscore.c
39300 @@ -22,7 +22,7 @@ static DEFINE_MUTEX(syscore_ops_lock);
39301 void register_syscore_ops(struct syscore_ops *ops)
39302 {
39303 mutex_lock(&syscore_ops_lock);
39304 - list_add_tail(&ops->node, &syscore_ops_list);
39305 + pax_list_add_tail((struct list_head *)&ops->node, &syscore_ops_list);
39306 mutex_unlock(&syscore_ops_lock);
39307 }
39308 EXPORT_SYMBOL_GPL(register_syscore_ops);
39309 @@ -34,7 +34,7 @@ EXPORT_SYMBOL_GPL(register_syscore_ops);
39310 void unregister_syscore_ops(struct syscore_ops *ops)
39311 {
39312 mutex_lock(&syscore_ops_lock);
39313 - list_del(&ops->node);
39314 + pax_list_del((struct list_head *)&ops->node);
39315 mutex_unlock(&syscore_ops_lock);
39316 }
39317 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
39318 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
39319 index 0422c47..b222c7a 100644
39320 --- a/drivers/block/cciss.c
39321 +++ b/drivers/block/cciss.c
39322 @@ -3024,7 +3024,7 @@ static void start_io(ctlr_info_t *h)
39323 while (!list_empty(&h->reqQ)) {
39324 c = list_entry(h->reqQ.next, CommandList_struct, list);
39325 /* can't do anything if fifo is full */
39326 - if ((h->access.fifo_full(h))) {
39327 + if ((h->access->fifo_full(h))) {
39328 dev_warn(&h->pdev->dev, "fifo full\n");
39329 break;
39330 }
39331 @@ -3034,7 +3034,7 @@ static void start_io(ctlr_info_t *h)
39332 h->Qdepth--;
39333
39334 /* Tell the controller execute command */
39335 - h->access.submit_command(h, c);
39336 + h->access->submit_command(h, c);
39337
39338 /* Put job onto the completed Q */
39339 addQ(&h->cmpQ, c);
39340 @@ -3460,17 +3460,17 @@ startio:
39341
39342 static inline unsigned long get_next_completion(ctlr_info_t *h)
39343 {
39344 - return h->access.command_completed(h);
39345 + return h->access->command_completed(h);
39346 }
39347
39348 static inline int interrupt_pending(ctlr_info_t *h)
39349 {
39350 - return h->access.intr_pending(h);
39351 + return h->access->intr_pending(h);
39352 }
39353
39354 static inline long interrupt_not_for_us(ctlr_info_t *h)
39355 {
39356 - return ((h->access.intr_pending(h) == 0) ||
39357 + return ((h->access->intr_pending(h) == 0) ||
39358 (h->interrupts_enabled == 0));
39359 }
39360
39361 @@ -3503,7 +3503,7 @@ static inline u32 next_command(ctlr_info_t *h)
39362 u32 a;
39363
39364 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
39365 - return h->access.command_completed(h);
39366 + return h->access->command_completed(h);
39367
39368 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
39369 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
39370 @@ -4060,7 +4060,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
39371 trans_support & CFGTBL_Trans_use_short_tags);
39372
39373 /* Change the access methods to the performant access methods */
39374 - h->access = SA5_performant_access;
39375 + h->access = &SA5_performant_access;
39376 h->transMethod = CFGTBL_Trans_Performant;
39377
39378 return;
39379 @@ -4334,7 +4334,7 @@ static int cciss_pci_init(ctlr_info_t *h)
39380 if (prod_index < 0)
39381 return -ENODEV;
39382 h->product_name = products[prod_index].product_name;
39383 - h->access = *(products[prod_index].access);
39384 + h->access = products[prod_index].access;
39385
39386 if (cciss_board_disabled(h)) {
39387 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
39388 @@ -5065,7 +5065,7 @@ reinit_after_soft_reset:
39389 }
39390
39391 /* make sure the board interrupts are off */
39392 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39393 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39394 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
39395 if (rc)
39396 goto clean2;
39397 @@ -5115,7 +5115,7 @@ reinit_after_soft_reset:
39398 * fake ones to scoop up any residual completions.
39399 */
39400 spin_lock_irqsave(&h->lock, flags);
39401 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39402 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39403 spin_unlock_irqrestore(&h->lock, flags);
39404 free_irq(h->intr[h->intr_mode], h);
39405 rc = cciss_request_irq(h, cciss_msix_discard_completions,
39406 @@ -5135,9 +5135,9 @@ reinit_after_soft_reset:
39407 dev_info(&h->pdev->dev, "Board READY.\n");
39408 dev_info(&h->pdev->dev,
39409 "Waiting for stale completions to drain.\n");
39410 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39411 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39412 msleep(10000);
39413 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39414 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39415
39416 rc = controller_reset_failed(h->cfgtable);
39417 if (rc)
39418 @@ -5160,7 +5160,7 @@ reinit_after_soft_reset:
39419 cciss_scsi_setup(h);
39420
39421 /* Turn the interrupts on so we can service requests */
39422 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39423 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39424
39425 /* Get the firmware version */
39426 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
39427 @@ -5232,7 +5232,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
39428 kfree(flush_buf);
39429 if (return_code != IO_OK)
39430 dev_warn(&h->pdev->dev, "Error flushing cache\n");
39431 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39432 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39433 free_irq(h->intr[h->intr_mode], h);
39434 }
39435
39436 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
39437 index 7fda30e..2f27946 100644
39438 --- a/drivers/block/cciss.h
39439 +++ b/drivers/block/cciss.h
39440 @@ -101,7 +101,7 @@ struct ctlr_info
39441 /* information about each logical volume */
39442 drive_info_struct *drv[CISS_MAX_LUN];
39443
39444 - struct access_method access;
39445 + struct access_method *access;
39446
39447 /* queue and queue Info */
39448 struct list_head reqQ;
39449 @@ -402,27 +402,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
39450 }
39451
39452 static struct access_method SA5_access = {
39453 - SA5_submit_command,
39454 - SA5_intr_mask,
39455 - SA5_fifo_full,
39456 - SA5_intr_pending,
39457 - SA5_completed,
39458 + .submit_command = SA5_submit_command,
39459 + .set_intr_mask = SA5_intr_mask,
39460 + .fifo_full = SA5_fifo_full,
39461 + .intr_pending = SA5_intr_pending,
39462 + .command_completed = SA5_completed,
39463 };
39464
39465 static struct access_method SA5B_access = {
39466 - SA5_submit_command,
39467 - SA5B_intr_mask,
39468 - SA5_fifo_full,
39469 - SA5B_intr_pending,
39470 - SA5_completed,
39471 + .submit_command = SA5_submit_command,
39472 + .set_intr_mask = SA5B_intr_mask,
39473 + .fifo_full = SA5_fifo_full,
39474 + .intr_pending = SA5B_intr_pending,
39475 + .command_completed = SA5_completed,
39476 };
39477
39478 static struct access_method SA5_performant_access = {
39479 - SA5_submit_command,
39480 - SA5_performant_intr_mask,
39481 - SA5_fifo_full,
39482 - SA5_performant_intr_pending,
39483 - SA5_performant_completed,
39484 + .submit_command = SA5_submit_command,
39485 + .set_intr_mask = SA5_performant_intr_mask,
39486 + .fifo_full = SA5_fifo_full,
39487 + .intr_pending = SA5_performant_intr_pending,
39488 + .command_completed = SA5_performant_completed,
39489 };
39490
39491 struct board_type {
39492 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
39493 index f749df9..5f8b9c4 100644
39494 --- a/drivers/block/cpqarray.c
39495 +++ b/drivers/block/cpqarray.c
39496 @@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39497 if (register_blkdev(COMPAQ_SMART2_MAJOR+i, hba[i]->devname)) {
39498 goto Enomem4;
39499 }
39500 - hba[i]->access.set_intr_mask(hba[i], 0);
39501 + hba[i]->access->set_intr_mask(hba[i], 0);
39502 if (request_irq(hba[i]->intr, do_ida_intr, IRQF_SHARED,
39503 hba[i]->devname, hba[i]))
39504 {
39505 @@ -459,7 +459,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39506 add_timer(&hba[i]->timer);
39507
39508 /* Enable IRQ now that spinlock and rate limit timer are set up */
39509 - hba[i]->access.set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39510 + hba[i]->access->set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39511
39512 for(j=0; j<NWD; j++) {
39513 struct gendisk *disk = ida_gendisk[i][j];
39514 @@ -694,7 +694,7 @@ DBGINFO(
39515 for(i=0; i<NR_PRODUCTS; i++) {
39516 if (board_id == products[i].board_id) {
39517 c->product_name = products[i].product_name;
39518 - c->access = *(products[i].access);
39519 + c->access = products[i].access;
39520 break;
39521 }
39522 }
39523 @@ -792,7 +792,7 @@ static int cpqarray_eisa_detect(void)
39524 hba[ctlr]->intr = intr;
39525 sprintf(hba[ctlr]->devname, "ida%d", nr_ctlr);
39526 hba[ctlr]->product_name = products[j].product_name;
39527 - hba[ctlr]->access = *(products[j].access);
39528 + hba[ctlr]->access = products[j].access;
39529 hba[ctlr]->ctlr = ctlr;
39530 hba[ctlr]->board_id = board_id;
39531 hba[ctlr]->pci_dev = NULL; /* not PCI */
39532 @@ -978,7 +978,7 @@ static void start_io(ctlr_info_t *h)
39533
39534 while((c = h->reqQ) != NULL) {
39535 /* Can't do anything if we're busy */
39536 - if (h->access.fifo_full(h) == 0)
39537 + if (h->access->fifo_full(h) == 0)
39538 return;
39539
39540 /* Get the first entry from the request Q */
39541 @@ -986,7 +986,7 @@ static void start_io(ctlr_info_t *h)
39542 h->Qdepth--;
39543
39544 /* Tell the controller to do our bidding */
39545 - h->access.submit_command(h, c);
39546 + h->access->submit_command(h, c);
39547
39548 /* Get onto the completion Q */
39549 addQ(&h->cmpQ, c);
39550 @@ -1048,7 +1048,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39551 unsigned long flags;
39552 __u32 a,a1;
39553
39554 - istat = h->access.intr_pending(h);
39555 + istat = h->access->intr_pending(h);
39556 /* Is this interrupt for us? */
39557 if (istat == 0)
39558 return IRQ_NONE;
39559 @@ -1059,7 +1059,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39560 */
39561 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
39562 if (istat & FIFO_NOT_EMPTY) {
39563 - while((a = h->access.command_completed(h))) {
39564 + while((a = h->access->command_completed(h))) {
39565 a1 = a; a &= ~3;
39566 if ((c = h->cmpQ) == NULL)
39567 {
39568 @@ -1448,11 +1448,11 @@ static int sendcmd(
39569 /*
39570 * Disable interrupt
39571 */
39572 - info_p->access.set_intr_mask(info_p, 0);
39573 + info_p->access->set_intr_mask(info_p, 0);
39574 /* Make sure there is room in the command FIFO */
39575 /* Actually it should be completely empty at this time. */
39576 for (i = 200000; i > 0; i--) {
39577 - temp = info_p->access.fifo_full(info_p);
39578 + temp = info_p->access->fifo_full(info_p);
39579 if (temp != 0) {
39580 break;
39581 }
39582 @@ -1465,7 +1465,7 @@ DBG(
39583 /*
39584 * Send the cmd
39585 */
39586 - info_p->access.submit_command(info_p, c);
39587 + info_p->access->submit_command(info_p, c);
39588 complete = pollcomplete(ctlr);
39589
39590 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
39591 @@ -1548,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
39592 * we check the new geometry. Then turn interrupts back on when
39593 * we're done.
39594 */
39595 - host->access.set_intr_mask(host, 0);
39596 + host->access->set_intr_mask(host, 0);
39597 getgeometry(ctlr);
39598 - host->access.set_intr_mask(host, FIFO_NOT_EMPTY);
39599 + host->access->set_intr_mask(host, FIFO_NOT_EMPTY);
39600
39601 for(i=0; i<NWD; i++) {
39602 struct gendisk *disk = ida_gendisk[ctlr][i];
39603 @@ -1590,7 +1590,7 @@ static int pollcomplete(int ctlr)
39604 /* Wait (up to 2 seconds) for a command to complete */
39605
39606 for (i = 200000; i > 0; i--) {
39607 - done = hba[ctlr]->access.command_completed(hba[ctlr]);
39608 + done = hba[ctlr]->access->command_completed(hba[ctlr]);
39609 if (done == 0) {
39610 udelay(10); /* a short fixed delay */
39611 } else
39612 diff --git a/drivers/block/cpqarray.h b/drivers/block/cpqarray.h
39613 index be73e9d..7fbf140 100644
39614 --- a/drivers/block/cpqarray.h
39615 +++ b/drivers/block/cpqarray.h
39616 @@ -99,7 +99,7 @@ struct ctlr_info {
39617 drv_info_t drv[NWD];
39618 struct proc_dir_entry *proc;
39619
39620 - struct access_method access;
39621 + struct access_method *access;
39622
39623 cmdlist_t *reqQ;
39624 cmdlist_t *cmpQ;
39625 diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
39626 index e5e0f19..a5dfbd4 100644
39627 --- a/drivers/block/drbd/drbd_bitmap.c
39628 +++ b/drivers/block/drbd/drbd_bitmap.c
39629 @@ -1027,7 +1027,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, int page_nr) __must_ho
39630 submit_bio(rw, bio);
39631 /* this should not count as user activity and cause the
39632 * resync to throttle -- see drbd_rs_should_slow_down(). */
39633 - atomic_add(len >> 9, &device->rs_sect_ev);
39634 + atomic_add_unchecked(len >> 9, &device->rs_sect_ev);
39635 }
39636 }
39637
39638 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
39639 index 015c6e9..8226d6c 100644
39640 --- a/drivers/block/drbd/drbd_int.h
39641 +++ b/drivers/block/drbd/drbd_int.h
39642 @@ -386,7 +386,7 @@ struct drbd_epoch {
39643 struct drbd_connection *connection;
39644 struct list_head list;
39645 unsigned int barrier_nr;
39646 - atomic_t epoch_size; /* increased on every request added. */
39647 + atomic_unchecked_t epoch_size; /* increased on every request added. */
39648 atomic_t active; /* increased on every req. added, and dec on every finished. */
39649 unsigned long flags;
39650 };
39651 @@ -947,7 +947,7 @@ struct drbd_device {
39652 unsigned int al_tr_number;
39653 int al_tr_cycle;
39654 wait_queue_head_t seq_wait;
39655 - atomic_t packet_seq;
39656 + atomic_unchecked_t packet_seq;
39657 unsigned int peer_seq;
39658 spinlock_t peer_seq_lock;
39659 unsigned long comm_bm_set; /* communicated number of set bits. */
39660 @@ -956,8 +956,8 @@ struct drbd_device {
39661 struct mutex own_state_mutex;
39662 struct mutex *state_mutex; /* either own_state_mutex or first_peer_device(device)->connection->cstate_mutex */
39663 char congestion_reason; /* Why we where congested... */
39664 - atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39665 - atomic_t rs_sect_ev; /* for submitted resync data rate, both */
39666 + atomic_unchecked_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39667 + atomic_unchecked_t rs_sect_ev; /* for submitted resync data rate, both */
39668 int rs_last_sect_ev; /* counter to compare with */
39669 int rs_last_events; /* counter of read or write "events" (unit sectors)
39670 * on the lower level device when we last looked. */
39671 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
39672 index 74d97f4..bb5a486 100644
39673 --- a/drivers/block/drbd/drbd_main.c
39674 +++ b/drivers/block/drbd/drbd_main.c
39675 @@ -1328,7 +1328,7 @@ static int _drbd_send_ack(struct drbd_peer_device *peer_device, enum drbd_packet
39676 p->sector = sector;
39677 p->block_id = block_id;
39678 p->blksize = blksize;
39679 - p->seq_num = cpu_to_be32(atomic_inc_return(&peer_device->device->packet_seq));
39680 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&peer_device->device->packet_seq));
39681 return drbd_send_command(peer_device, sock, cmd, sizeof(*p), NULL, 0);
39682 }
39683
39684 @@ -1634,7 +1634,7 @@ int drbd_send_dblock(struct drbd_peer_device *peer_device, struct drbd_request *
39685 return -EIO;
39686 p->sector = cpu_to_be64(req->i.sector);
39687 p->block_id = (unsigned long)req;
39688 - p->seq_num = cpu_to_be32(atomic_inc_return(&device->packet_seq));
39689 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&device->packet_seq));
39690 dp_flags = bio_flags_to_wire(peer_device->connection, req->master_bio->bi_rw);
39691 if (device->state.conn >= C_SYNC_SOURCE &&
39692 device->state.conn <= C_PAUSED_SYNC_T)
39693 @@ -1915,8 +1915,8 @@ void drbd_init_set_defaults(struct drbd_device *device)
39694 atomic_set(&device->unacked_cnt, 0);
39695 atomic_set(&device->local_cnt, 0);
39696 atomic_set(&device->pp_in_use_by_net, 0);
39697 - atomic_set(&device->rs_sect_in, 0);
39698 - atomic_set(&device->rs_sect_ev, 0);
39699 + atomic_set_unchecked(&device->rs_sect_in, 0);
39700 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39701 atomic_set(&device->ap_in_flight, 0);
39702 atomic_set(&device->md_io.in_use, 0);
39703
39704 @@ -2683,8 +2683,8 @@ void drbd_destroy_connection(struct kref *kref)
39705 struct drbd_connection *connection = container_of(kref, struct drbd_connection, kref);
39706 struct drbd_resource *resource = connection->resource;
39707
39708 - if (atomic_read(&connection->current_epoch->epoch_size) != 0)
39709 - drbd_err(connection, "epoch_size:%d\n", atomic_read(&connection->current_epoch->epoch_size));
39710 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size) != 0)
39711 + drbd_err(connection, "epoch_size:%d\n", atomic_read_unchecked(&connection->current_epoch->epoch_size));
39712 kfree(connection->current_epoch);
39713
39714 idr_destroy(&connection->peer_devices);
39715 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
39716 index e80cbef..42533f1 100644
39717 --- a/drivers/block/drbd/drbd_nl.c
39718 +++ b/drivers/block/drbd/drbd_nl.c
39719 @@ -3637,13 +3637,13 @@ finish:
39720
39721 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib)
39722 {
39723 - static atomic_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39724 + static atomic_unchecked_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39725 struct sk_buff *msg;
39726 struct drbd_genlmsghdr *d_out;
39727 unsigned seq;
39728 int err = -ENOMEM;
39729
39730 - seq = atomic_inc_return(&drbd_genl_seq);
39731 + seq = atomic_inc_return_unchecked(&drbd_genl_seq);
39732 msg = genlmsg_new(NLMSG_GOODSIZE, GFP_NOIO);
39733 if (!msg)
39734 goto failed;
39735 diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
39736 index c097909..b0dd588 100644
39737 --- a/drivers/block/drbd/drbd_receiver.c
39738 +++ b/drivers/block/drbd/drbd_receiver.c
39739 @@ -870,7 +870,7 @@ int drbd_connected(struct drbd_peer_device *peer_device)
39740 struct drbd_device *device = peer_device->device;
39741 int err;
39742
39743 - atomic_set(&device->packet_seq, 0);
39744 + atomic_set_unchecked(&device->packet_seq, 0);
39745 device->peer_seq = 0;
39746
39747 device->state_mutex = peer_device->connection->agreed_pro_version < 100 ?
39748 @@ -1233,7 +1233,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39749 do {
39750 next_epoch = NULL;
39751
39752 - epoch_size = atomic_read(&epoch->epoch_size);
39753 + epoch_size = atomic_read_unchecked(&epoch->epoch_size);
39754
39755 switch (ev & ~EV_CLEANUP) {
39756 case EV_PUT:
39757 @@ -1273,7 +1273,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39758 rv = FE_DESTROYED;
39759 } else {
39760 epoch->flags = 0;
39761 - atomic_set(&epoch->epoch_size, 0);
39762 + atomic_set_unchecked(&epoch->epoch_size, 0);
39763 /* atomic_set(&epoch->active, 0); is already zero */
39764 if (rv == FE_STILL_LIVE)
39765 rv = FE_RECYCLED;
39766 @@ -1550,7 +1550,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39767 conn_wait_active_ee_empty(connection);
39768 drbd_flush(connection);
39769
39770 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39771 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39772 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
39773 if (epoch)
39774 break;
39775 @@ -1564,11 +1564,11 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39776 }
39777
39778 epoch->flags = 0;
39779 - atomic_set(&epoch->epoch_size, 0);
39780 + atomic_set_unchecked(&epoch->epoch_size, 0);
39781 atomic_set(&epoch->active, 0);
39782
39783 spin_lock(&connection->epoch_lock);
39784 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39785 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39786 list_add(&epoch->list, &connection->current_epoch->list);
39787 connection->current_epoch = epoch;
39788 connection->epochs++;
39789 @@ -1780,7 +1780,9 @@ static int e_end_resync_block(struct drbd_work *w, int unused)
39790 }
39791
39792 static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t sector,
39793 - struct packet_info *pi) __releases(local)
39794 + struct packet_info *pi) __releases(local);
39795 +static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t sector,
39796 + struct packet_info *pi)
39797 {
39798 struct drbd_device *device = peer_device->device;
39799 struct drbd_peer_request *peer_req;
39800 @@ -1802,7 +1804,7 @@ static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t secto
39801 list_add_tail(&peer_req->w.list, &device->sync_ee);
39802 spin_unlock_irq(&device->resource->req_lock);
39803
39804 - atomic_add(pi->size >> 9, &device->rs_sect_ev);
39805 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_ev);
39806 if (drbd_submit_peer_request(device, peer_req, WRITE, DRBD_FAULT_RS_WR) == 0)
39807 return 0;
39808
39809 @@ -1900,7 +1902,7 @@ static int receive_RSDataReply(struct drbd_connection *connection, struct packet
39810 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39811 }
39812
39813 - atomic_add(pi->size >> 9, &device->rs_sect_in);
39814 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_in);
39815
39816 return err;
39817 }
39818 @@ -2290,7 +2292,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39819
39820 err = wait_for_and_update_peer_seq(peer_device, peer_seq);
39821 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39822 - atomic_inc(&connection->current_epoch->epoch_size);
39823 + atomic_inc_unchecked(&connection->current_epoch->epoch_size);
39824 err2 = drbd_drain_block(peer_device, pi->size);
39825 if (!err)
39826 err = err2;
39827 @@ -2334,7 +2336,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39828
39829 spin_lock(&connection->epoch_lock);
39830 peer_req->epoch = connection->current_epoch;
39831 - atomic_inc(&peer_req->epoch->epoch_size);
39832 + atomic_inc_unchecked(&peer_req->epoch->epoch_size);
39833 atomic_inc(&peer_req->epoch->active);
39834 spin_unlock(&connection->epoch_lock);
39835
39836 @@ -2479,7 +2481,7 @@ bool drbd_rs_c_min_rate_throttle(struct drbd_device *device)
39837
39838 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
39839 (int)part_stat_read(&disk->part0, sectors[1]) -
39840 - atomic_read(&device->rs_sect_ev);
39841 + atomic_read_unchecked(&device->rs_sect_ev);
39842
39843 if (atomic_read(&device->ap_actlog_cnt)
39844 || curr_events - device->rs_last_events > 64) {
39845 @@ -2618,7 +2620,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39846 device->use_csums = true;
39847 } else if (pi->cmd == P_OV_REPLY) {
39848 /* track progress, we may need to throttle */
39849 - atomic_add(size >> 9, &device->rs_sect_in);
39850 + atomic_add_unchecked(size >> 9, &device->rs_sect_in);
39851 peer_req->w.cb = w_e_end_ov_reply;
39852 dec_rs_pending(device);
39853 /* drbd_rs_begin_io done when we sent this request,
39854 @@ -2691,7 +2693,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39855 goto out_free_e;
39856
39857 submit_for_resync:
39858 - atomic_add(size >> 9, &device->rs_sect_ev);
39859 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39860
39861 submit:
39862 update_receiver_timing_details(connection, drbd_submit_peer_request);
39863 @@ -4564,7 +4566,7 @@ struct data_cmd {
39864 int expect_payload;
39865 size_t pkt_size;
39866 int (*fn)(struct drbd_connection *, struct packet_info *);
39867 -};
39868 +} __do_const;
39869
39870 static struct data_cmd drbd_cmd_handler[] = {
39871 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
39872 @@ -4678,7 +4680,7 @@ static void conn_disconnect(struct drbd_connection *connection)
39873 if (!list_empty(&connection->current_epoch->list))
39874 drbd_err(connection, "ASSERTION FAILED: connection->current_epoch->list not empty\n");
39875 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
39876 - atomic_set(&connection->current_epoch->epoch_size, 0);
39877 + atomic_set_unchecked(&connection->current_epoch->epoch_size, 0);
39878 connection->send.seen_any_write_yet = false;
39879
39880 drbd_info(connection, "Connection closed\n");
39881 @@ -5182,7 +5184,7 @@ static int got_IsInSync(struct drbd_connection *connection, struct packet_info *
39882 put_ldev(device);
39883 }
39884 dec_rs_pending(device);
39885 - atomic_add(blksize >> 9, &device->rs_sect_in);
39886 + atomic_add_unchecked(blksize >> 9, &device->rs_sect_in);
39887
39888 return 0;
39889 }
39890 @@ -5470,7 +5472,7 @@ static int connection_finish_peer_reqs(struct drbd_connection *connection)
39891 struct asender_cmd {
39892 size_t pkt_size;
39893 int (*fn)(struct drbd_connection *connection, struct packet_info *);
39894 -};
39895 +} __do_const;
39896
39897 static struct asender_cmd asender_tbl[] = {
39898 [P_PING] = { 0, got_Ping },
39899 diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
39900 index 5578c14..a05f791 100644
39901 --- a/drivers/block/drbd/drbd_worker.c
39902 +++ b/drivers/block/drbd/drbd_worker.c
39903 @@ -94,7 +94,8 @@ void drbd_md_endio(struct bio *bio)
39904 /* reads on behalf of the partner,
39905 * "submitted" by the receiver
39906 */
39907 -static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __releases(local)
39908 +static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __releases(local);
39909 +static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req)
39910 {
39911 unsigned long flags = 0;
39912 struct drbd_peer_device *peer_device = peer_req->peer_device;
39913 @@ -115,7 +116,8 @@ static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __rele
39914
39915 /* writes on behalf of the partner, or resync writes,
39916 * "submitted" by the receiver, final stage. */
39917 -void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req) __releases(local)
39918 +void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req) __releases(local);
39919 +void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req)
39920 {
39921 unsigned long flags = 0;
39922 struct drbd_peer_device *peer_device = peer_req->peer_device;
39923 @@ -386,7 +388,7 @@ static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector,
39924 list_add_tail(&peer_req->w.list, &device->read_ee);
39925 spin_unlock_irq(&device->resource->req_lock);
39926
39927 - atomic_add(size >> 9, &device->rs_sect_ev);
39928 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39929 if (drbd_submit_peer_request(device, peer_req, READ, DRBD_FAULT_RS_RD) == 0)
39930 return 0;
39931
39932 @@ -531,7 +533,7 @@ static int drbd_rs_number_requests(struct drbd_device *device)
39933 unsigned int sect_in; /* Number of sectors that came in since the last turn */
39934 int number, mxb;
39935
39936 - sect_in = atomic_xchg(&device->rs_sect_in, 0);
39937 + sect_in = atomic_xchg_unchecked(&device->rs_sect_in, 0);
39938 device->rs_in_flight -= sect_in;
39939
39940 rcu_read_lock();
39941 @@ -1573,8 +1575,8 @@ void drbd_rs_controller_reset(struct drbd_device *device)
39942 struct gendisk *disk = device->ldev->backing_bdev->bd_contains->bd_disk;
39943 struct fifo_buffer *plan;
39944
39945 - atomic_set(&device->rs_sect_in, 0);
39946 - atomic_set(&device->rs_sect_ev, 0);
39947 + atomic_set_unchecked(&device->rs_sect_in, 0);
39948 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39949 device->rs_in_flight = 0;
39950 device->rs_last_events =
39951 (int)part_stat_read(&disk->part0, sectors[0]) +
39952 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
39953 index 7be2375..8747286 100644
39954 --- a/drivers/block/pktcdvd.c
39955 +++ b/drivers/block/pktcdvd.c
39956 @@ -109,7 +109,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
39957
39958 static sector_t get_zone(sector_t sector, struct pktcdvd_device *pd)
39959 {
39960 - return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1);
39961 + return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1UL);
39962 }
39963
39964 /*
39965 @@ -1890,7 +1890,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
39966 return -EROFS;
39967 }
39968 pd->settings.fp = ti.fp;
39969 - pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1);
39970 + pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1UL);
39971
39972 if (ti.nwa_v) {
39973 pd->nwa = be32_to_cpu(ti.next_writable);
39974 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
39975 index 8630a77..aad8d5aa 100644
39976 --- a/drivers/block/rbd.c
39977 +++ b/drivers/block/rbd.c
39978 @@ -64,7 +64,7 @@
39979 * If the counter is already at its maximum value returns
39980 * -EINVAL without updating it.
39981 */
39982 -static int atomic_inc_return_safe(atomic_t *v)
39983 +static int __intentional_overflow(-1) atomic_inc_return_safe(atomic_t *v)
39984 {
39985 unsigned int counter;
39986
39987 diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h
39988 index e5565fb..71be10b4 100644
39989 --- a/drivers/block/smart1,2.h
39990 +++ b/drivers/block/smart1,2.h
39991 @@ -108,11 +108,11 @@ static unsigned long smart4_intr_pending(ctlr_info_t *h)
39992 }
39993
39994 static struct access_method smart4_access = {
39995 - smart4_submit_command,
39996 - smart4_intr_mask,
39997 - smart4_fifo_full,
39998 - smart4_intr_pending,
39999 - smart4_completed,
40000 + .submit_command = smart4_submit_command,
40001 + .set_intr_mask = smart4_intr_mask,
40002 + .fifo_full = smart4_fifo_full,
40003 + .intr_pending = smart4_intr_pending,
40004 + .command_completed = smart4_completed,
40005 };
40006
40007 /*
40008 @@ -144,11 +144,11 @@ static unsigned long smart2_intr_pending(ctlr_info_t *h)
40009 }
40010
40011 static struct access_method smart2_access = {
40012 - smart2_submit_command,
40013 - smart2_intr_mask,
40014 - smart2_fifo_full,
40015 - smart2_intr_pending,
40016 - smart2_completed,
40017 + .submit_command = smart2_submit_command,
40018 + .set_intr_mask = smart2_intr_mask,
40019 + .fifo_full = smart2_fifo_full,
40020 + .intr_pending = smart2_intr_pending,
40021 + .command_completed = smart2_completed,
40022 };
40023
40024 /*
40025 @@ -180,11 +180,11 @@ static unsigned long smart2e_intr_pending(ctlr_info_t *h)
40026 }
40027
40028 static struct access_method smart2e_access = {
40029 - smart2e_submit_command,
40030 - smart2e_intr_mask,
40031 - smart2e_fifo_full,
40032 - smart2e_intr_pending,
40033 - smart2e_completed,
40034 + .submit_command = smart2e_submit_command,
40035 + .set_intr_mask = smart2e_intr_mask,
40036 + .fifo_full = smart2e_fifo_full,
40037 + .intr_pending = smart2e_intr_pending,
40038 + .command_completed = smart2e_completed,
40039 };
40040
40041 /*
40042 @@ -270,9 +270,9 @@ static unsigned long smart1_intr_pending(ctlr_info_t *h)
40043 }
40044
40045 static struct access_method smart1_access = {
40046 - smart1_submit_command,
40047 - smart1_intr_mask,
40048 - smart1_fifo_full,
40049 - smart1_intr_pending,
40050 - smart1_completed,
40051 + .submit_command = smart1_submit_command,
40052 + .set_intr_mask = smart1_intr_mask,
40053 + .fifo_full = smart1_fifo_full,
40054 + .intr_pending = smart1_intr_pending,
40055 + .command_completed = smart1_completed,
40056 };
40057 diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
40058 index 7a722df..54b76ab 100644
40059 --- a/drivers/bluetooth/btwilink.c
40060 +++ b/drivers/bluetooth/btwilink.c
40061 @@ -288,7 +288,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
40062
40063 static int bt_ti_probe(struct platform_device *pdev)
40064 {
40065 - static struct ti_st *hst;
40066 + struct ti_st *hst;
40067 struct hci_dev *hdev;
40068 int err;
40069
40070 diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
40071 index 577cc4b..bfe0c2d 100644
40072 --- a/drivers/bus/arm-cci.c
40073 +++ b/drivers/bus/arm-cci.c
40074 @@ -1249,16 +1249,22 @@ static int cci_pmu_init_attrs(struct cci_pmu *cci_pmu, struct platform_device *p
40075 model->event_attrs);
40076 if (!attrs)
40077 return -ENOMEM;
40078 - pmu_event_attr_group.attrs = attrs;
40079 + pax_open_kernel();
40080 + *(struct attribute ***)&pmu_event_attr_group.attrs = attrs;
40081 + pax_close_kernel();
40082 }
40083 if (model->nformat_attrs) {
40084 attrs = alloc_attrs(pdev, model->nformat_attrs,
40085 model->format_attrs);
40086 if (!attrs)
40087 return -ENOMEM;
40088 - pmu_format_attr_group.attrs = attrs;
40089 + pax_open_kernel();
40090 + *(struct attribute ***)&pmu_format_attr_group.attrs = attrs;
40091 + pax_close_kernel();
40092 }
40093 - pmu_cpumask_attr.var = cci_pmu;
40094 + pax_open_kernel();
40095 + *(void **)&pmu_cpumask_attr.var = cci_pmu;
40096 + pax_close_kernel();
40097
40098 return 0;
40099 }
40100 diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
40101 index 5d28a45..a538f90 100644
40102 --- a/drivers/cdrom/cdrom.c
40103 +++ b/drivers/cdrom/cdrom.c
40104 @@ -610,7 +610,6 @@ int register_cdrom(struct cdrom_device_info *cdi)
40105 ENSURE(reset, CDC_RESET);
40106 ENSURE(generic_packet, CDC_GENERIC_PACKET);
40107 cdi->mc_flags = 0;
40108 - cdo->n_minors = 0;
40109 cdi->options = CDO_USE_FFLAGS;
40110
40111 if (autoclose == 1 && CDROM_CAN(CDC_CLOSE_TRAY))
40112 @@ -630,8 +629,11 @@ int register_cdrom(struct cdrom_device_info *cdi)
40113 else
40114 cdi->cdda_method = CDDA_OLD;
40115
40116 - if (!cdo->generic_packet)
40117 - cdo->generic_packet = cdrom_dummy_generic_packet;
40118 + if (!cdo->generic_packet) {
40119 + pax_open_kernel();
40120 + *(void **)&cdo->generic_packet = cdrom_dummy_generic_packet;
40121 + pax_close_kernel();
40122 + }
40123
40124 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
40125 mutex_lock(&cdrom_mutex);
40126 @@ -652,7 +654,6 @@ void unregister_cdrom(struct cdrom_device_info *cdi)
40127 if (cdi->exit)
40128 cdi->exit(cdi);
40129
40130 - cdi->ops->n_minors--;
40131 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" unregistered\n", cdi->name);
40132 }
40133
40134 @@ -2126,7 +2127,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
40135 */
40136 nr = nframes;
40137 do {
40138 - cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
40139 + cgc.buffer = kzalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
40140 if (cgc.buffer)
40141 break;
40142
40143 @@ -3434,7 +3435,7 @@ static int cdrom_print_info(const char *header, int val, char *info,
40144 struct cdrom_device_info *cdi;
40145 int ret;
40146
40147 - ret = scnprintf(info + *pos, max_size - *pos, header);
40148 + ret = scnprintf(info + *pos, max_size - *pos, "%s", header);
40149 if (!ret)
40150 return 1;
40151
40152 diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
40153 index 584bc31..e64a12c 100644
40154 --- a/drivers/cdrom/gdrom.c
40155 +++ b/drivers/cdrom/gdrom.c
40156 @@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = {
40157 .audio_ioctl = gdrom_audio_ioctl,
40158 .capability = CDC_MULTI_SESSION | CDC_MEDIA_CHANGED |
40159 CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R,
40160 - .n_minors = 1,
40161 };
40162
40163 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
40164 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
40165 index a043107..1263e4a 100644
40166 --- a/drivers/char/Kconfig
40167 +++ b/drivers/char/Kconfig
40168 @@ -17,7 +17,8 @@ config DEVMEM
40169
40170 config DEVKMEM
40171 bool "/dev/kmem virtual device support"
40172 - default y
40173 + default n
40174 + depends on !GRKERNSEC_KMEM
40175 help
40176 Say Y here if you want to support the /dev/kmem device. The
40177 /dev/kmem device is rarely used, but can be used for certain
40178 @@ -586,6 +587,7 @@ config DEVPORT
40179 bool
40180 depends on !M68K
40181 depends on ISA || PCI
40182 + depends on !GRKERNSEC_KMEM
40183 default y
40184
40185 source "drivers/s390/char/Kconfig"
40186 diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
40187 index a48e05b..6bac831 100644
40188 --- a/drivers/char/agp/compat_ioctl.c
40189 +++ b/drivers/char/agp/compat_ioctl.c
40190 @@ -108,7 +108,7 @@ static int compat_agpioc_reserve_wrap(struct agp_file_private *priv, void __user
40191 return -ENOMEM;
40192 }
40193
40194 - if (copy_from_user(usegment, (void __user *) ureserve.seg_list,
40195 + if (copy_from_user(usegment, (void __force_user *) ureserve.seg_list,
40196 sizeof(*usegment) * ureserve.seg_count)) {
40197 kfree(usegment);
40198 kfree(ksegment);
40199 diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
40200 index 09f17eb..8531d2f 100644
40201 --- a/drivers/char/agp/frontend.c
40202 +++ b/drivers/char/agp/frontend.c
40203 @@ -806,7 +806,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40204 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
40205 return -EFAULT;
40206
40207 - if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment))
40208 + if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment_priv))
40209 return -EFAULT;
40210
40211 client = agp_find_client_by_pid(reserve.pid);
40212 @@ -836,7 +836,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40213 if (segment == NULL)
40214 return -ENOMEM;
40215
40216 - if (copy_from_user(segment, (void __user *) reserve.seg_list,
40217 + if (copy_from_user(segment, (void __force_user *) reserve.seg_list,
40218 sizeof(struct agp_segment) * reserve.seg_count)) {
40219 kfree(segment);
40220 return -EFAULT;
40221 diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
40222 index 1341a94..8a45bc2 100644
40223 --- a/drivers/char/agp/intel-gtt.c
40224 +++ b/drivers/char/agp/intel-gtt.c
40225 @@ -1408,8 +1408,8 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
40226 }
40227 EXPORT_SYMBOL(intel_gmch_probe);
40228
40229 -void intel_gtt_get(u64 *gtt_total, size_t *stolen_size,
40230 - phys_addr_t *mappable_base, u64 *mappable_end)
40231 +void intel_gtt_get(u64 *gtt_total, u64 *stolen_size,
40232 + u64 *mappable_base, u64 *mappable_end)
40233 {
40234 *gtt_total = intel_private.gtt_total_entries << PAGE_SHIFT;
40235 *stolen_size = intel_private.stolen_size;
40236 diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
40237 index 4f94375..413694e 100644
40238 --- a/drivers/char/genrtc.c
40239 +++ b/drivers/char/genrtc.c
40240 @@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
40241 switch (cmd) {
40242
40243 case RTC_PLL_GET:
40244 + memset(&pll, 0, sizeof(pll));
40245 if (get_rtc_pll(&pll))
40246 return -EINVAL;
40247 else
40248 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
40249 index 5c0baa9..44011b1 100644
40250 --- a/drivers/char/hpet.c
40251 +++ b/drivers/char/hpet.c
40252 @@ -575,7 +575,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
40253 }
40254
40255 static int
40256 -hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg,
40257 +hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
40258 struct hpet_info *info)
40259 {
40260 struct hpet_timer __iomem *timer;
40261 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
40262 index e3536da..b1617f0 100644
40263 --- a/drivers/char/ipmi/ipmi_msghandler.c
40264 +++ b/drivers/char/ipmi/ipmi_msghandler.c
40265 @@ -436,7 +436,7 @@ struct ipmi_smi {
40266 struct proc_dir_entry *proc_dir;
40267 char proc_dir_name[10];
40268
40269 - atomic_t stats[IPMI_NUM_STATS];
40270 + atomic_unchecked_t stats[IPMI_NUM_STATS];
40271
40272 /*
40273 * run_to_completion duplicate of smb_info, smi_info
40274 @@ -468,9 +468,9 @@ static LIST_HEAD(smi_watchers);
40275 static DEFINE_MUTEX(smi_watchers_mutex);
40276
40277 #define ipmi_inc_stat(intf, stat) \
40278 - atomic_inc(&(intf)->stats[IPMI_STAT_ ## stat])
40279 + atomic_inc_unchecked(&(intf)->stats[IPMI_STAT_ ## stat])
40280 #define ipmi_get_stat(intf, stat) \
40281 - ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
40282 + ((unsigned int) atomic_read_unchecked(&(intf)->stats[IPMI_STAT_ ## stat]))
40283
40284 static char *addr_src_to_str[] = { "invalid", "hotmod", "hardcoded", "SPMI",
40285 "ACPI", "SMBIOS", "PCI",
40286 @@ -2834,7 +2834,7 @@ int ipmi_register_smi(const struct ipmi_smi_handlers *handlers,
40287 INIT_LIST_HEAD(&intf->cmd_rcvrs);
40288 init_waitqueue_head(&intf->waitq);
40289 for (i = 0; i < IPMI_NUM_STATS; i++)
40290 - atomic_set(&intf->stats[i], 0);
40291 + atomic_set_unchecked(&intf->stats[i], 0);
40292
40293 intf->proc_dir = NULL;
40294
40295 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
40296 index 654f6f3..b36fbf4 100644
40297 --- a/drivers/char/ipmi/ipmi_si_intf.c
40298 +++ b/drivers/char/ipmi/ipmi_si_intf.c
40299 @@ -300,7 +300,7 @@ struct smi_info {
40300 unsigned char slave_addr;
40301
40302 /* Counters and things for the proc filesystem. */
40303 - atomic_t stats[SI_NUM_STATS];
40304 + atomic_unchecked_t stats[SI_NUM_STATS];
40305
40306 struct task_struct *thread;
40307
40308 @@ -309,9 +309,9 @@ struct smi_info {
40309 };
40310
40311 #define smi_inc_stat(smi, stat) \
40312 - atomic_inc(&(smi)->stats[SI_STAT_ ## stat])
40313 + atomic_inc_unchecked(&(smi)->stats[SI_STAT_ ## stat])
40314 #define smi_get_stat(smi, stat) \
40315 - ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat]))
40316 + ((unsigned int) atomic_read_unchecked(&(smi)->stats[SI_STAT_ ## stat]))
40317
40318 #define SI_MAX_PARMS 4
40319
40320 @@ -1208,14 +1208,14 @@ static int smi_start_processing(void *send_info,
40321
40322 new_smi->intf = intf;
40323
40324 - /* Try to claim any interrupts. */
40325 - if (new_smi->irq_setup)
40326 - new_smi->irq_setup(new_smi);
40327 -
40328 /* Set up the timer that drives the interface. */
40329 setup_timer(&new_smi->si_timer, smi_timeout, (long)new_smi);
40330 smi_mod_timer(new_smi, jiffies + SI_TIMEOUT_JIFFIES);
40331
40332 + /* Try to claim any interrupts. */
40333 + if (new_smi->irq_setup)
40334 + new_smi->irq_setup(new_smi);
40335 +
40336 /*
40337 * Check if the user forcefully enabled the daemon.
40338 */
40339 @@ -3598,7 +3598,7 @@ static int try_smi_init(struct smi_info *new_smi)
40340 atomic_set(&new_smi->req_events, 0);
40341 new_smi->run_to_completion = false;
40342 for (i = 0; i < SI_NUM_STATS; i++)
40343 - atomic_set(&new_smi->stats[i], 0);
40344 + atomic_set_unchecked(&new_smi->stats[i], 0);
40345
40346 new_smi->interrupt_disabled = true;
40347 atomic_set(&new_smi->need_watch, 0);
40348 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
40349 index 6b1721f..fda9398 100644
40350 --- a/drivers/char/mem.c
40351 +++ b/drivers/char/mem.c
40352 @@ -18,6 +18,7 @@
40353 #include <linux/raw.h>
40354 #include <linux/tty.h>
40355 #include <linux/capability.h>
40356 +#include <linux/security.h>
40357 #include <linux/ptrace.h>
40358 #include <linux/device.h>
40359 #include <linux/highmem.h>
40360 @@ -36,6 +37,10 @@
40361
40362 #define DEVPORT_MINOR 4
40363
40364 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40365 +extern const struct file_operations grsec_fops;
40366 +#endif
40367 +
40368 static inline unsigned long size_inside_page(unsigned long start,
40369 unsigned long size)
40370 {
40371 @@ -67,9 +72,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40372
40373 while (cursor < to) {
40374 if (!devmem_is_allowed(pfn)) {
40375 +#ifdef CONFIG_GRKERNSEC_KMEM
40376 + gr_handle_mem_readwrite(from, to);
40377 +#else
40378 printk(KERN_INFO
40379 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
40380 current->comm, from, to);
40381 +#endif
40382 return 0;
40383 }
40384 cursor += PAGE_SIZE;
40385 @@ -77,6 +86,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40386 }
40387 return 1;
40388 }
40389 +#elif defined(CONFIG_GRKERNSEC_KMEM)
40390 +static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40391 +{
40392 + return 0;
40393 +}
40394 #else
40395 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40396 {
40397 @@ -124,7 +138,8 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40398 #endif
40399
40400 while (count > 0) {
40401 - unsigned long remaining;
40402 + unsigned long remaining = 0;
40403 + char *temp;
40404
40405 sz = size_inside_page(p, count);
40406
40407 @@ -140,7 +155,24 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40408 if (!ptr)
40409 return -EFAULT;
40410
40411 - remaining = copy_to_user(buf, ptr, sz);
40412 +#ifdef CONFIG_PAX_USERCOPY
40413 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40414 + if (!temp) {
40415 + unxlate_dev_mem_ptr(p, ptr);
40416 + return -ENOMEM;
40417 + }
40418 + remaining = probe_kernel_read(temp, ptr, sz);
40419 +#else
40420 + temp = ptr;
40421 +#endif
40422 +
40423 + if (!remaining)
40424 + remaining = copy_to_user(buf, temp, sz);
40425 +
40426 +#ifdef CONFIG_PAX_USERCOPY
40427 + kfree(temp);
40428 +#endif
40429 +
40430 unxlate_dev_mem_ptr(p, ptr);
40431 if (remaining)
40432 return -EFAULT;
40433 @@ -380,9 +412,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40434 size_t count, loff_t *ppos)
40435 {
40436 unsigned long p = *ppos;
40437 - ssize_t low_count, read, sz;
40438 + ssize_t low_count, read, sz, err = 0;
40439 char *kbuf; /* k-addr because vread() takes vmlist_lock rwlock */
40440 - int err = 0;
40441
40442 read = 0;
40443 if (p < (unsigned long) high_memory) {
40444 @@ -404,6 +435,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40445 }
40446 #endif
40447 while (low_count > 0) {
40448 + char *temp;
40449 +
40450 sz = size_inside_page(p, low_count);
40451
40452 /*
40453 @@ -413,7 +446,23 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40454 */
40455 kbuf = xlate_dev_kmem_ptr((void *)p);
40456
40457 - if (copy_to_user(buf, kbuf, sz))
40458 +#ifdef CONFIG_PAX_USERCOPY
40459 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40460 + if (!temp)
40461 + return -ENOMEM;
40462 + err = probe_kernel_read(temp, kbuf, sz);
40463 +#else
40464 + temp = kbuf;
40465 +#endif
40466 +
40467 + if (!err)
40468 + err = copy_to_user(buf, temp, sz);
40469 +
40470 +#ifdef CONFIG_PAX_USERCOPY
40471 + kfree(temp);
40472 +#endif
40473 +
40474 + if (err)
40475 return -EFAULT;
40476 buf += sz;
40477 p += sz;
40478 @@ -802,6 +851,9 @@ static const struct memdev {
40479 #ifdef CONFIG_PRINTK
40480 [11] = { "kmsg", 0644, &kmsg_fops, 0 },
40481 #endif
40482 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40483 + [13] = { "grsec",S_IRUSR | S_IWUGO, &grsec_fops, 0 },
40484 +#endif
40485 };
40486
40487 static int memory_open(struct inode *inode, struct file *filp)
40488 @@ -863,7 +915,7 @@ static int __init chr_dev_init(void)
40489 continue;
40490
40491 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
40492 - NULL, devlist[minor].name);
40493 + NULL, "%s", devlist[minor].name);
40494 }
40495
40496 return tty_init();
40497 diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
40498 index 97c2d8d..aa03a89 100644
40499 --- a/drivers/char/nvram.c
40500 +++ b/drivers/char/nvram.c
40501 @@ -247,7 +247,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
40502
40503 spin_unlock_irq(&rtc_lock);
40504
40505 - if (copy_to_user(buf, contents, tmp - contents))
40506 + if (tmp - contents > sizeof(contents) || copy_to_user(buf, contents, tmp - contents))
40507 return -EFAULT;
40508
40509 *ppos = i;
40510 diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
40511 index 7680d52..073f799e 100644
40512 --- a/drivers/char/pcmcia/synclink_cs.c
40513 +++ b/drivers/char/pcmcia/synclink_cs.c
40514 @@ -2345,7 +2345,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40515
40516 if (debug_level >= DEBUG_LEVEL_INFO)
40517 printk("%s(%d):mgslpc_close(%s) entry, count=%d\n",
40518 - __FILE__, __LINE__, info->device_name, port->count);
40519 + __FILE__, __LINE__, info->device_name, atomic_read(&port->count));
40520
40521 if (tty_port_close_start(port, tty, filp) == 0)
40522 goto cleanup;
40523 @@ -2363,7 +2363,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40524 cleanup:
40525 if (debug_level >= DEBUG_LEVEL_INFO)
40526 printk("%s(%d):mgslpc_close(%s) exit, count=%d\n", __FILE__, __LINE__,
40527 - tty->driver->name, port->count);
40528 + tty->driver->name, atomic_read(&port->count));
40529 }
40530
40531 /* Wait until the transmitter is empty.
40532 @@ -2505,7 +2505,7 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40533
40534 if (debug_level >= DEBUG_LEVEL_INFO)
40535 printk("%s(%d):mgslpc_open(%s), old ref count = %d\n",
40536 - __FILE__, __LINE__, tty->driver->name, port->count);
40537 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
40538
40539 /* If port is closing, signal caller to try again */
40540 if (port->flags & ASYNC_CLOSING){
40541 @@ -2525,11 +2525,11 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40542 goto cleanup;
40543 }
40544 spin_lock(&port->lock);
40545 - port->count++;
40546 + atomic_inc(&port->count);
40547 spin_unlock(&port->lock);
40548 spin_unlock_irqrestore(&info->netlock, flags);
40549
40550 - if (port->count == 1) {
40551 + if (atomic_read(&port->count) == 1) {
40552 /* 1st open on this device, init hardware */
40553 retval = startup(info, tty);
40554 if (retval < 0)
40555 @@ -3918,7 +3918,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
40556 unsigned short new_crctype;
40557
40558 /* return error if TTY interface open */
40559 - if (info->port.count)
40560 + if (atomic_read(&info->port.count))
40561 return -EBUSY;
40562
40563 switch (encoding)
40564 @@ -4022,7 +4022,7 @@ static int hdlcdev_open(struct net_device *dev)
40565
40566 /* arbitrate between network and tty opens */
40567 spin_lock_irqsave(&info->netlock, flags);
40568 - if (info->port.count != 0 || info->netcount != 0) {
40569 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
40570 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
40571 spin_unlock_irqrestore(&info->netlock, flags);
40572 return -EBUSY;
40573 @@ -4112,7 +4112,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
40574 printk("%s:hdlcdev_ioctl(%s)\n", __FILE__, dev->name);
40575
40576 /* return error if TTY interface open */
40577 - if (info->port.count)
40578 + if (atomic_read(&info->port.count))
40579 return -EBUSY;
40580
40581 if (cmd != SIOCWANDEV)
40582 diff --git a/drivers/char/random.c b/drivers/char/random.c
40583 index d0da5d8..739fd3a 100644
40584 --- a/drivers/char/random.c
40585 +++ b/drivers/char/random.c
40586 @@ -289,9 +289,6 @@
40587 /*
40588 * To allow fractional bits to be tracked, the entropy_count field is
40589 * denominated in units of 1/8th bits.
40590 - *
40591 - * 2*(ENTROPY_SHIFT + log2(poolbits)) must <= 31, or the multiply in
40592 - * credit_entropy_bits() needs to be 64 bits wide.
40593 */
40594 #define ENTROPY_SHIFT 3
40595 #define ENTROPY_BITS(r) ((r)->entropy_count >> ENTROPY_SHIFT)
40596 @@ -442,9 +439,9 @@ struct entropy_store {
40597 };
40598
40599 static void push_to_pool(struct work_struct *work);
40600 -static __u32 input_pool_data[INPUT_POOL_WORDS];
40601 -static __u32 blocking_pool_data[OUTPUT_POOL_WORDS];
40602 -static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS];
40603 +static __u32 input_pool_data[INPUT_POOL_WORDS] __latent_entropy;
40604 +static __u32 blocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40605 +static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40606
40607 static struct entropy_store input_pool = {
40608 .poolinfo = &poolinfo_table[0],
40609 @@ -654,7 +651,7 @@ retry:
40610 /* The +2 corresponds to the /4 in the denominator */
40611
40612 do {
40613 - unsigned int anfrac = min(pnfrac, pool_size/2);
40614 + u64 anfrac = min(pnfrac, pool_size/2);
40615 unsigned int add =
40616 ((pool_size - entropy_count)*anfrac*3) >> s;
40617
40618 @@ -1227,7 +1224,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
40619
40620 extract_buf(r, tmp);
40621 i = min_t(int, nbytes, EXTRACT_SIZE);
40622 - if (copy_to_user(buf, tmp, i)) {
40623 + if (i > sizeof(tmp) || copy_to_user(buf, tmp, i)) {
40624 ret = -EFAULT;
40625 break;
40626 }
40627 @@ -1668,7 +1665,7 @@ static char sysctl_bootid[16];
40628 static int proc_do_uuid(struct ctl_table *table, int write,
40629 void __user *buffer, size_t *lenp, loff_t *ppos)
40630 {
40631 - struct ctl_table fake_table;
40632 + ctl_table_no_const fake_table;
40633 unsigned char buf[64], tmp_uuid[16], *uuid;
40634
40635 uuid = table->data;
40636 @@ -1698,7 +1695,7 @@ static int proc_do_uuid(struct ctl_table *table, int write,
40637 static int proc_do_entropy(struct ctl_table *table, int write,
40638 void __user *buffer, size_t *lenp, loff_t *ppos)
40639 {
40640 - struct ctl_table fake_table;
40641 + ctl_table_no_const fake_table;
40642 int entropy_count;
40643
40644 entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
40645 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
40646 index e496dae..3db53b6 100644
40647 --- a/drivers/char/sonypi.c
40648 +++ b/drivers/char/sonypi.c
40649 @@ -54,6 +54,7 @@
40650
40651 #include <asm/uaccess.h>
40652 #include <asm/io.h>
40653 +#include <asm/local.h>
40654
40655 #include <linux/sonypi.h>
40656
40657 @@ -490,7 +491,7 @@ static struct sonypi_device {
40658 spinlock_t fifo_lock;
40659 wait_queue_head_t fifo_proc_list;
40660 struct fasync_struct *fifo_async;
40661 - int open_count;
40662 + local_t open_count;
40663 int model;
40664 struct input_dev *input_jog_dev;
40665 struct input_dev *input_key_dev;
40666 @@ -892,7 +893,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
40667 static int sonypi_misc_release(struct inode *inode, struct file *file)
40668 {
40669 mutex_lock(&sonypi_device.lock);
40670 - sonypi_device.open_count--;
40671 + local_dec(&sonypi_device.open_count);
40672 mutex_unlock(&sonypi_device.lock);
40673 return 0;
40674 }
40675 @@ -901,9 +902,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
40676 {
40677 mutex_lock(&sonypi_device.lock);
40678 /* Flush input queue on first open */
40679 - if (!sonypi_device.open_count)
40680 + if (!local_read(&sonypi_device.open_count))
40681 kfifo_reset(&sonypi_device.fifo);
40682 - sonypi_device.open_count++;
40683 + local_inc(&sonypi_device.open_count);
40684 mutex_unlock(&sonypi_device.lock);
40685
40686 return 0;
40687 @@ -1491,7 +1492,7 @@ static struct platform_driver sonypi_driver = {
40688
40689 static struct platform_device *sonypi_platform_device;
40690
40691 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
40692 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
40693 {
40694 .ident = "Sony Vaio",
40695 .matches = {
40696 diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
40697 index 565a947..dcdc06e 100644
40698 --- a/drivers/char/tpm/tpm_acpi.c
40699 +++ b/drivers/char/tpm/tpm_acpi.c
40700 @@ -98,11 +98,12 @@ int read_log(struct tpm_bios_log *log)
40701 virt = acpi_os_map_iomem(start, len);
40702 if (!virt) {
40703 kfree(log->bios_event_log);
40704 + log->bios_event_log = NULL;
40705 printk("%s: ERROR - Unable to map memory\n", __func__);
40706 return -EIO;
40707 }
40708
40709 - memcpy_fromio(log->bios_event_log, virt, len);
40710 + memcpy_fromio(log->bios_event_log, (const char __force_kernel *)virt, len);
40711
40712 acpi_os_unmap_iomem(virt, len);
40713 return 0;
40714 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
40715 index 3a56a13..f6570e6 100644
40716 --- a/drivers/char/tpm/tpm_eventlog.c
40717 +++ b/drivers/char/tpm/tpm_eventlog.c
40718 @@ -95,7 +95,7 @@ static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos)
40719 event = addr;
40720
40721 if ((event->event_type == 0 && event->event_size == 0) ||
40722 - ((addr + sizeof(struct tcpa_event) + event->event_size) >= limit))
40723 + (event->event_size >= limit - addr - sizeof(struct tcpa_event)))
40724 return NULL;
40725
40726 return addr;
40727 @@ -120,7 +120,7 @@ static void *tpm_bios_measurements_next(struct seq_file *m, void *v,
40728 return NULL;
40729
40730 if ((event->event_type == 0 && event->event_size == 0) ||
40731 - ((v + sizeof(struct tcpa_event) + event->event_size) >= limit))
40732 + (event->event_size >= limit - v - sizeof(struct tcpa_event)))
40733 return NULL;
40734
40735 (*pos)++;
40736 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
40737 index d2406fe..473a5c0 100644
40738 --- a/drivers/char/virtio_console.c
40739 +++ b/drivers/char/virtio_console.c
40740 @@ -685,11 +685,11 @@ static ssize_t fill_readbuf(struct port *port, char __user *out_buf,
40741 if (to_user) {
40742 ssize_t ret;
40743
40744 - ret = copy_to_user(out_buf, buf->buf + buf->offset, out_count);
40745 + ret = copy_to_user((char __force_user *)out_buf, buf->buf + buf->offset, out_count);
40746 if (ret)
40747 return -EFAULT;
40748 } else {
40749 - memcpy((__force char *)out_buf, buf->buf + buf->offset,
40750 + memcpy((__force_kernel char *)out_buf, buf->buf + buf->offset,
40751 out_count);
40752 }
40753
40754 @@ -1164,7 +1164,7 @@ static int get_chars(u32 vtermno, char *buf, int count)
40755 /* If we don't have an input queue yet, we can't get input. */
40756 BUG_ON(!port->in_vq);
40757
40758 - return fill_readbuf(port, (__force char __user *)buf, count, false);
40759 + return fill_readbuf(port, (char __force_user *)buf, count, false);
40760 }
40761
40762 static void resize_console(struct port *port)
40763 diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
40764 index 4735de0..de4ffc9 100644
40765 --- a/drivers/clk/clk-composite.c
40766 +++ b/drivers/clk/clk-composite.c
40767 @@ -196,7 +196,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
40768 struct clk *clk;
40769 struct clk_init_data init;
40770 struct clk_composite *composite;
40771 - struct clk_ops *clk_composite_ops;
40772 + clk_ops_no_const *clk_composite_ops;
40773
40774 composite = kzalloc(sizeof(*composite), GFP_KERNEL);
40775 if (!composite)
40776 diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
40777 index aa872d2..afeae37 100644
40778 --- a/drivers/clk/samsung/clk.h
40779 +++ b/drivers/clk/samsung/clk.h
40780 @@ -261,7 +261,7 @@ struct samsung_gate_clock {
40781 #define GATE_DA(_id, dname, cname, pname, o, b, f, gf, a) \
40782 __GATE(_id, dname, cname, pname, o, b, f, gf, a)
40783
40784 -#define PNAME(x) static const char *x[] __initdata
40785 +#define PNAME(x) static const char * const x[] __initconst
40786
40787 /**
40788 * struct samsung_clk_reg_dump: register dump of clock controller registers.
40789 diff --git a/drivers/clk/socfpga/clk-gate.c b/drivers/clk/socfpga/clk-gate.c
40790 index aa7a6e6..e67210d 100644
40791 --- a/drivers/clk/socfpga/clk-gate.c
40792 +++ b/drivers/clk/socfpga/clk-gate.c
40793 @@ -21,6 +21,7 @@
40794 #include <linux/mfd/syscon.h>
40795 #include <linux/of.h>
40796 #include <linux/regmap.h>
40797 +#include <asm/pgtable.h>
40798
40799 #include "clk.h"
40800
40801 @@ -169,7 +170,7 @@ static int socfpga_clk_prepare(struct clk_hw *hwclk)
40802 return 0;
40803 }
40804
40805 -static struct clk_ops gateclk_ops = {
40806 +static clk_ops_no_const gateclk_ops __read_only = {
40807 .prepare = socfpga_clk_prepare,
40808 .recalc_rate = socfpga_clk_recalc_rate,
40809 .get_parent = socfpga_clk_get_parent,
40810 @@ -202,8 +203,10 @@ static void __init __socfpga_gate_init(struct device_node *node,
40811 socfpga_clk->hw.reg = clk_mgr_base_addr + clk_gate[0];
40812 socfpga_clk->hw.bit_idx = clk_gate[1];
40813
40814 - gateclk_ops.enable = clk_gate_ops.enable;
40815 - gateclk_ops.disable = clk_gate_ops.disable;
40816 + pax_open_kernel();
40817 + *(void **)&gateclk_ops.enable = clk_gate_ops.enable;
40818 + *(void **)&gateclk_ops.disable = clk_gate_ops.disable;
40819 + pax_close_kernel();
40820 }
40821
40822 rc = of_property_read_u32(node, "fixed-divider", &fixed_div);
40823 diff --git a/drivers/clk/socfpga/clk-pll.c b/drivers/clk/socfpga/clk-pll.c
40824 index c7f4631..463813a 100644
40825 --- a/drivers/clk/socfpga/clk-pll.c
40826 +++ b/drivers/clk/socfpga/clk-pll.c
40827 @@ -20,6 +20,7 @@
40828 #include <linux/io.h>
40829 #include <linux/of.h>
40830 #include <linux/of_address.h>
40831 +#include <asm/pgtable.h>
40832
40833 #include "clk.h"
40834
40835 @@ -75,7 +76,7 @@ static u8 clk_pll_get_parent(struct clk_hw *hwclk)
40836 CLK_MGR_PLL_CLK_SRC_MASK;
40837 }
40838
40839 -static struct clk_ops clk_pll_ops = {
40840 +static clk_ops_no_const clk_pll_ops __read_only = {
40841 .recalc_rate = clk_pll_recalc_rate,
40842 .get_parent = clk_pll_get_parent,
40843 };
40844 @@ -114,8 +115,10 @@ static __init struct clk *__socfpga_pll_init(struct device_node *node,
40845 pll_clk->hw.hw.init = &init;
40846
40847 pll_clk->hw.bit_idx = SOCFPGA_PLL_EXT_ENA;
40848 - clk_pll_ops.enable = clk_gate_ops.enable;
40849 - clk_pll_ops.disable = clk_gate_ops.disable;
40850 + pax_open_kernel();
40851 + *(void **)&clk_pll_ops.enable = clk_gate_ops.enable;
40852 + *(void **)&clk_pll_ops.disable = clk_gate_ops.disable;
40853 + pax_close_kernel();
40854
40855 clk = clk_register(NULL, &pll_clk->hw.hw);
40856 if (WARN_ON(IS_ERR(clk))) {
40857 diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
40858 index b5bcd77..0f7bd99 100644
40859 --- a/drivers/clk/ti/clk.c
40860 +++ b/drivers/clk/ti/clk.c
40861 @@ -25,6 +25,8 @@
40862 #include <linux/regmap.h>
40863 #include <linux/bootmem.h>
40864
40865 +#include <asm/pgtable.h>
40866 +
40867 #include "clock.h"
40868
40869 #undef pr_fmt
40870 @@ -84,8 +86,10 @@ int ti_clk_setup_ll_ops(struct ti_clk_ll_ops *ops)
40871 }
40872
40873 ti_clk_ll_ops = ops;
40874 - ops->clk_readl = clk_memmap_readl;
40875 - ops->clk_writel = clk_memmap_writel;
40876 + pax_open_kernel();
40877 + *(void **)&ops->clk_readl = clk_memmap_readl;
40878 + *(void **)&ops->clk_writel = clk_memmap_writel;
40879 + pax_close_kernel();
40880
40881 return 0;
40882 }
40883 diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c
40884 index 30f5228..c19e7fc 100644
40885 --- a/drivers/connector/connector.c
40886 +++ b/drivers/connector/connector.c
40887 @@ -178,26 +178,21 @@ static int cn_call_callback(struct sk_buff *skb)
40888 *
40889 * It checks skb, netlink header and msg sizes, and calls callback helper.
40890 */
40891 -static void cn_rx_skb(struct sk_buff *__skb)
40892 +static void cn_rx_skb(struct sk_buff *skb)
40893 {
40894 struct nlmsghdr *nlh;
40895 - struct sk_buff *skb;
40896 int len, err;
40897
40898 - skb = skb_get(__skb);
40899 -
40900 if (skb->len >= NLMSG_HDRLEN) {
40901 nlh = nlmsg_hdr(skb);
40902 len = nlmsg_len(nlh);
40903
40904 if (len < (int)sizeof(struct cn_msg) ||
40905 skb->len < nlh->nlmsg_len ||
40906 - len > CONNECTOR_MAX_MSG_SIZE) {
40907 - kfree_skb(skb);
40908 + len > CONNECTOR_MAX_MSG_SIZE)
40909 return;
40910 - }
40911
40912 - err = cn_call_callback(skb);
40913 + err = cn_call_callback(skb_get(skb));
40914 if (err < 0)
40915 kfree_skb(skb);
40916 }
40917 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
40918 index cec1ee2..d8e33a0 100644
40919 --- a/drivers/cpufreq/acpi-cpufreq.c
40920 +++ b/drivers/cpufreq/acpi-cpufreq.c
40921 @@ -687,8 +687,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40922 data->acpi_perf_cpu = cpu;
40923 policy->driver_data = data;
40924
40925 - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC))
40926 - acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40927 + if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) {
40928 + pax_open_kernel();
40929 + *(u8 *)&acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40930 + pax_close_kernel();
40931 + }
40932
40933 result = acpi_processor_register_performance(perf, cpu);
40934 if (result)
40935 @@ -821,7 +824,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40936 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
40937 break;
40938 case ACPI_ADR_SPACE_FIXED_HARDWARE:
40939 - acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40940 + pax_open_kernel();
40941 + *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40942 + pax_close_kernel();
40943 break;
40944 default:
40945 break;
40946 @@ -916,8 +921,10 @@ static void __init acpi_cpufreq_boost_init(void)
40947 if (!msrs)
40948 return;
40949
40950 - acpi_cpufreq_driver.boost_supported = true;
40951 - acpi_cpufreq_driver.boost_enabled = boost_state(0);
40952 + pax_open_kernel();
40953 + *(bool *)&acpi_cpufreq_driver.boost_supported = true;
40954 + *(bool *)&acpi_cpufreq_driver.boost_enabled = boost_state(0);
40955 + pax_close_kernel();
40956
40957 cpu_notifier_register_begin();
40958
40959 diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
40960 index 7c0d70e..a09ca84 100644
40961 --- a/drivers/cpufreq/cpufreq-dt.c
40962 +++ b/drivers/cpufreq/cpufreq-dt.c
40963 @@ -456,7 +456,9 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
40964 if (!IS_ERR(cpu_reg))
40965 regulator_put(cpu_reg);
40966
40967 - dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40968 + pax_open_kernel();
40969 + *(void **)&dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40970 + pax_close_kernel();
40971
40972 ret = cpufreq_register_driver(&dt_cpufreq_driver);
40973 if (ret)
40974 diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
40975 index 25c4c15..6052159 100644
40976 --- a/drivers/cpufreq/cpufreq.c
40977 +++ b/drivers/cpufreq/cpufreq.c
40978 @@ -2120,7 +2120,7 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
40979 read_unlock_irqrestore(&cpufreq_driver_lock, flags);
40980
40981 mutex_lock(&cpufreq_governor_mutex);
40982 - list_del(&governor->governor_list);
40983 + pax_list_del(&governor->governor_list);
40984 mutex_unlock(&cpufreq_governor_mutex);
40985 return;
40986 }
40987 @@ -2346,7 +2346,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
40988 return NOTIFY_OK;
40989 }
40990
40991 -static struct notifier_block __refdata cpufreq_cpu_notifier = {
40992 +static struct notifier_block cpufreq_cpu_notifier = {
40993 .notifier_call = cpufreq_cpu_callback,
40994 };
40995
40996 @@ -2386,13 +2386,17 @@ int cpufreq_boost_trigger_state(int state)
40997 return 0;
40998
40999 write_lock_irqsave(&cpufreq_driver_lock, flags);
41000 - cpufreq_driver->boost_enabled = state;
41001 + pax_open_kernel();
41002 + *(bool *)&cpufreq_driver->boost_enabled = state;
41003 + pax_close_kernel();
41004 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
41005
41006 ret = cpufreq_driver->set_boost(state);
41007 if (ret) {
41008 write_lock_irqsave(&cpufreq_driver_lock, flags);
41009 - cpufreq_driver->boost_enabled = !state;
41010 + pax_open_kernel();
41011 + *(bool *)&cpufreq_driver->boost_enabled = !state;
41012 + pax_close_kernel();
41013 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
41014
41015 pr_err("%s: Cannot %s BOOST\n",
41016 @@ -2422,8 +2426,11 @@ static int create_boost_sysfs_file(void)
41017 * Check if driver provides function to enable boost -
41018 * if not, use cpufreq_boost_set_sw as default
41019 */
41020 - if (!cpufreq_driver->set_boost)
41021 - cpufreq_driver->set_boost = cpufreq_boost_set_sw;
41022 + if (!cpufreq_driver->set_boost) {
41023 + pax_open_kernel();
41024 + *(void **)&cpufreq_driver->set_boost = cpufreq_boost_set_sw;
41025 + pax_close_kernel();
41026 + }
41027
41028 ret = cpufreq_sysfs_create_file(&boost.attr);
41029 if (ret)
41030 @@ -2447,7 +2454,9 @@ int cpufreq_enable_boost_support(void)
41031 if (cpufreq_boost_supported())
41032 return 0;
41033
41034 - cpufreq_driver->boost_supported = true;
41035 + pax_open_kernel();
41036 + *(bool *)&cpufreq_driver->boost_supported = true;
41037 + pax_close_kernel();
41038
41039 /* This will get removed on driver unregister */
41040 return create_boost_sysfs_file();
41041 @@ -2504,8 +2513,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
41042 cpufreq_driver = driver_data;
41043 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
41044
41045 - if (driver_data->setpolicy)
41046 - driver_data->flags |= CPUFREQ_CONST_LOOPS;
41047 + if (driver_data->setpolicy) {
41048 + pax_open_kernel();
41049 + *(u8 *)&driver_data->flags |= CPUFREQ_CONST_LOOPS;
41050 + pax_close_kernel();
41051 + }
41052
41053 ret = create_boost_sysfs_file();
41054 if (ret)
41055 diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
41056 index 939197f..02cf2e1 100644
41057 --- a/drivers/cpufreq/cpufreq_governor.c
41058 +++ b/drivers/cpufreq/cpufreq_governor.c
41059 @@ -466,7 +466,7 @@ static int cpufreq_governor_start(struct cpufreq_policy *policy,
41060 cs_dbs_info->enable = 1;
41061 cs_dbs_info->requested_freq = policy->cur;
41062 } else {
41063 - struct od_ops *od_ops = cdata->gov_ops;
41064 + const struct od_ops *od_ops = cdata->gov_ops;
41065 struct od_cpu_dbs_info_s *od_dbs_info = cdata->get_cpu_dbs_info_s(cpu);
41066
41067 od_dbs_info->rate_mult = 1;
41068 diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
41069 index 50f1717..7e99891 100644
41070 --- a/drivers/cpufreq/cpufreq_governor.h
41071 +++ b/drivers/cpufreq/cpufreq_governor.h
41072 @@ -218,7 +218,7 @@ struct common_dbs_data {
41073 void (*exit)(struct dbs_data *dbs_data, bool notify);
41074
41075 /* Governor specific ops, see below */
41076 - void *gov_ops;
41077 + const void *gov_ops;
41078
41079 /*
41080 * Protects governor's data (struct dbs_data and struct common_dbs_data)
41081 @@ -240,7 +240,7 @@ struct od_ops {
41082 unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
41083 unsigned int freq_next, unsigned int relation);
41084 void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
41085 -};
41086 +} __no_const;
41087
41088 static inline int delay_for_sampling_rate(unsigned int sampling_rate)
41089 {
41090 diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
41091 index 1fa9088..d05d551 100644
41092 --- a/drivers/cpufreq/cpufreq_ondemand.c
41093 +++ b/drivers/cpufreq/cpufreq_ondemand.c
41094 @@ -517,7 +517,7 @@ static void od_exit(struct dbs_data *dbs_data, bool notify)
41095
41096 define_get_cpu_dbs_routines(od_cpu_dbs_info);
41097
41098 -static struct od_ops od_ops = {
41099 +static struct od_ops od_ops __read_only = {
41100 .powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
41101 .powersave_bias_target = generic_powersave_bias_target,
41102 .freq_increase = dbs_freq_increase,
41103 @@ -576,14 +576,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
41104 (struct cpufreq_policy *, unsigned int, unsigned int),
41105 unsigned int powersave_bias)
41106 {
41107 - od_ops.powersave_bias_target = f;
41108 + pax_open_kernel();
41109 + *(void **)&od_ops.powersave_bias_target = f;
41110 + pax_close_kernel();
41111 od_set_powersave_bias(powersave_bias);
41112 }
41113 EXPORT_SYMBOL_GPL(od_register_powersave_bias_handler);
41114
41115 void od_unregister_powersave_bias_handler(void)
41116 {
41117 - od_ops.powersave_bias_target = generic_powersave_bias_target;
41118 + pax_open_kernel();
41119 + *(void **)&od_ops.powersave_bias_target = generic_powersave_bias_target;
41120 + pax_close_kernel();
41121 od_set_powersave_bias(0);
41122 }
41123 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
41124 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
41125 index aa33b92..42d64c8 100644
41126 --- a/drivers/cpufreq/intel_pstate.c
41127 +++ b/drivers/cpufreq/intel_pstate.c
41128 @@ -137,10 +137,10 @@ struct pstate_funcs {
41129 struct cpu_defaults {
41130 struct pstate_adjust_policy pid_policy;
41131 struct pstate_funcs funcs;
41132 -};
41133 +} __do_const;
41134
41135 static struct pstate_adjust_policy pid_params;
41136 -static struct pstate_funcs pstate_funcs;
41137 +static struct pstate_funcs *pstate_funcs;
41138 static int hwp_active;
41139
41140 struct perf_limits {
41141 @@ -736,18 +736,18 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate, bool force)
41142
41143 cpu->pstate.current_pstate = pstate;
41144
41145 - pstate_funcs.set(cpu, pstate);
41146 + pstate_funcs->set(cpu, pstate);
41147 }
41148
41149 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
41150 {
41151 - cpu->pstate.min_pstate = pstate_funcs.get_min();
41152 - cpu->pstate.max_pstate = pstate_funcs.get_max();
41153 - cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
41154 - cpu->pstate.scaling = pstate_funcs.get_scaling();
41155 + cpu->pstate.min_pstate = pstate_funcs->get_min();
41156 + cpu->pstate.max_pstate = pstate_funcs->get_max();
41157 + cpu->pstate.turbo_pstate = pstate_funcs->get_turbo();
41158 + cpu->pstate.scaling = pstate_funcs->get_scaling();
41159
41160 - if (pstate_funcs.get_vid)
41161 - pstate_funcs.get_vid(cpu);
41162 + if (pstate_funcs->get_vid)
41163 + pstate_funcs->get_vid(cpu);
41164 intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate, false);
41165 }
41166
41167 @@ -1097,15 +1097,15 @@ static unsigned int force_load;
41168
41169 static int intel_pstate_msrs_not_valid(void)
41170 {
41171 - if (!pstate_funcs.get_max() ||
41172 - !pstate_funcs.get_min() ||
41173 - !pstate_funcs.get_turbo())
41174 + if (!pstate_funcs->get_max() ||
41175 + !pstate_funcs->get_min() ||
41176 + !pstate_funcs->get_turbo())
41177 return -ENODEV;
41178
41179 return 0;
41180 }
41181
41182 -static void copy_pid_params(struct pstate_adjust_policy *policy)
41183 +static void copy_pid_params(const struct pstate_adjust_policy *policy)
41184 {
41185 pid_params.sample_rate_ms = policy->sample_rate_ms;
41186 pid_params.p_gain_pct = policy->p_gain_pct;
41187 @@ -1117,12 +1117,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
41188
41189 static void copy_cpu_funcs(struct pstate_funcs *funcs)
41190 {
41191 - pstate_funcs.get_max = funcs->get_max;
41192 - pstate_funcs.get_min = funcs->get_min;
41193 - pstate_funcs.get_turbo = funcs->get_turbo;
41194 - pstate_funcs.get_scaling = funcs->get_scaling;
41195 - pstate_funcs.set = funcs->set;
41196 - pstate_funcs.get_vid = funcs->get_vid;
41197 + pstate_funcs = funcs;
41198 }
41199
41200 #if IS_ENABLED(CONFIG_ACPI)
41201 diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
41202 index 5dd95da..abc3837 100644
41203 --- a/drivers/cpufreq/p4-clockmod.c
41204 +++ b/drivers/cpufreq/p4-clockmod.c
41205 @@ -134,10 +134,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
41206 case 0x0F: /* Core Duo */
41207 case 0x16: /* Celeron Core */
41208 case 0x1C: /* Atom */
41209 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41210 + pax_open_kernel();
41211 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41212 + pax_close_kernel();
41213 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
41214 case 0x0D: /* Pentium M (Dothan) */
41215 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41216 + pax_open_kernel();
41217 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41218 + pax_close_kernel();
41219 /* fall through */
41220 case 0x09: /* Pentium M (Banias) */
41221 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
41222 @@ -149,7 +153,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
41223
41224 /* on P-4s, the TSC runs with constant frequency independent whether
41225 * throttling is active or not. */
41226 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41227 + pax_open_kernel();
41228 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41229 + pax_close_kernel();
41230
41231 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
41232 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
41233 diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
41234 index 9bb42ba..b01b4a2 100644
41235 --- a/drivers/cpufreq/sparc-us3-cpufreq.c
41236 +++ b/drivers/cpufreq/sparc-us3-cpufreq.c
41237 @@ -18,14 +18,12 @@
41238 #include <asm/head.h>
41239 #include <asm/timer.h>
41240
41241 -static struct cpufreq_driver *cpufreq_us3_driver;
41242 -
41243 struct us3_freq_percpu_info {
41244 struct cpufreq_frequency_table table[4];
41245 };
41246
41247 /* Indexed by cpu number. */
41248 -static struct us3_freq_percpu_info *us3_freq_table;
41249 +static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
41250
41251 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
41252 * in the Safari config register.
41253 @@ -156,16 +154,27 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
41254
41255 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
41256 {
41257 - if (cpufreq_us3_driver)
41258 - us3_freq_target(policy, 0);
41259 + us3_freq_target(policy, 0);
41260
41261 return 0;
41262 }
41263
41264 +static int __init us3_freq_init(void);
41265 +static void __exit us3_freq_exit(void);
41266 +
41267 +static struct cpufreq_driver cpufreq_us3_driver = {
41268 + .init = us3_freq_cpu_init,
41269 + .verify = cpufreq_generic_frequency_table_verify,
41270 + .target_index = us3_freq_target,
41271 + .get = us3_freq_get,
41272 + .exit = us3_freq_cpu_exit,
41273 + .name = "UltraSPARC-III",
41274 +
41275 +};
41276 +
41277 static int __init us3_freq_init(void)
41278 {
41279 unsigned long manuf, impl, ver;
41280 - int ret;
41281
41282 if (tlb_type != cheetah && tlb_type != cheetah_plus)
41283 return -ENODEV;
41284 @@ -178,55 +187,15 @@ static int __init us3_freq_init(void)
41285 (impl == CHEETAH_IMPL ||
41286 impl == CHEETAH_PLUS_IMPL ||
41287 impl == JAGUAR_IMPL ||
41288 - impl == PANTHER_IMPL)) {
41289 - struct cpufreq_driver *driver;
41290 -
41291 - ret = -ENOMEM;
41292 - driver = kzalloc(sizeof(*driver), GFP_KERNEL);
41293 - if (!driver)
41294 - goto err_out;
41295 -
41296 - us3_freq_table = kzalloc((NR_CPUS * sizeof(*us3_freq_table)),
41297 - GFP_KERNEL);
41298 - if (!us3_freq_table)
41299 - goto err_out;
41300 -
41301 - driver->init = us3_freq_cpu_init;
41302 - driver->verify = cpufreq_generic_frequency_table_verify;
41303 - driver->target_index = us3_freq_target;
41304 - driver->get = us3_freq_get;
41305 - driver->exit = us3_freq_cpu_exit;
41306 - strcpy(driver->name, "UltraSPARC-III");
41307 -
41308 - cpufreq_us3_driver = driver;
41309 - ret = cpufreq_register_driver(driver);
41310 - if (ret)
41311 - goto err_out;
41312 -
41313 - return 0;
41314 -
41315 -err_out:
41316 - if (driver) {
41317 - kfree(driver);
41318 - cpufreq_us3_driver = NULL;
41319 - }
41320 - kfree(us3_freq_table);
41321 - us3_freq_table = NULL;
41322 - return ret;
41323 - }
41324 + impl == PANTHER_IMPL))
41325 + return cpufreq_register_driver(&cpufreq_us3_driver);
41326
41327 return -ENODEV;
41328 }
41329
41330 static void __exit us3_freq_exit(void)
41331 {
41332 - if (cpufreq_us3_driver) {
41333 - cpufreq_unregister_driver(cpufreq_us3_driver);
41334 - kfree(cpufreq_us3_driver);
41335 - cpufreq_us3_driver = NULL;
41336 - kfree(us3_freq_table);
41337 - us3_freq_table = NULL;
41338 - }
41339 + cpufreq_unregister_driver(&cpufreq_us3_driver);
41340 }
41341
41342 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
41343 diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
41344 index 7d4a315..21bb886 100644
41345 --- a/drivers/cpufreq/speedstep-centrino.c
41346 +++ b/drivers/cpufreq/speedstep-centrino.c
41347 @@ -351,8 +351,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
41348 !cpu_has(cpu, X86_FEATURE_EST))
41349 return -ENODEV;
41350
41351 - if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC))
41352 - centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41353 + if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) {
41354 + pax_open_kernel();
41355 + *(u8 *)&centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41356 + pax_close_kernel();
41357 + }
41358
41359 if (policy->cpu != 0)
41360 return -ENODEV;
41361 diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
41362 index 389ade4..e328b5ce 100644
41363 --- a/drivers/cpuidle/driver.c
41364 +++ b/drivers/cpuidle/driver.c
41365 @@ -193,7 +193,7 @@ static int poll_idle(struct cpuidle_device *dev,
41366
41367 static void poll_idle_init(struct cpuidle_driver *drv)
41368 {
41369 - struct cpuidle_state *state = &drv->states[0];
41370 + cpuidle_state_no_const *state = &drv->states[0];
41371
41372 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
41373 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
41374 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c
41375 index a5c111b..1113002 100644
41376 --- a/drivers/cpuidle/dt_idle_states.c
41377 +++ b/drivers/cpuidle/dt_idle_states.c
41378 @@ -21,7 +21,7 @@
41379
41380 #include "dt_idle_states.h"
41381
41382 -static int init_state_node(struct cpuidle_state *idle_state,
41383 +static int init_state_node(cpuidle_state_no_const *idle_state,
41384 const struct of_device_id *matches,
41385 struct device_node *state_node)
41386 {
41387 diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
41388 index fb9f511..213e6cc 100644
41389 --- a/drivers/cpuidle/governor.c
41390 +++ b/drivers/cpuidle/governor.c
41391 @@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
41392 mutex_lock(&cpuidle_lock);
41393 if (__cpuidle_find_governor(gov->name) == NULL) {
41394 ret = 0;
41395 - list_add_tail(&gov->governor_list, &cpuidle_governors);
41396 + pax_list_add_tail((struct list_head *)&gov->governor_list, &cpuidle_governors);
41397 if (!cpuidle_curr_governor ||
41398 cpuidle_curr_governor->rating < gov->rating)
41399 cpuidle_switch_governor(gov);
41400 diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
41401 index 832a2c3..1794080 100644
41402 --- a/drivers/cpuidle/sysfs.c
41403 +++ b/drivers/cpuidle/sysfs.c
41404 @@ -135,7 +135,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
41405 NULL
41406 };
41407
41408 -static struct attribute_group cpuidle_attr_group = {
41409 +static attribute_group_no_const cpuidle_attr_group = {
41410 .attrs = cpuidle_default_attrs,
41411 .name = "cpuidle",
41412 };
41413 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
41414 index 8d2a772..33826c9 100644
41415 --- a/drivers/crypto/hifn_795x.c
41416 +++ b/drivers/crypto/hifn_795x.c
41417 @@ -51,7 +51,7 @@ module_param_string(hifn_pll_ref, hifn_pll_ref, sizeof(hifn_pll_ref), 0444);
41418 MODULE_PARM_DESC(hifn_pll_ref,
41419 "PLL reference clock (pci[freq] or ext[freq], default ext)");
41420
41421 -static atomic_t hifn_dev_number;
41422 +static atomic_unchecked_t hifn_dev_number;
41423
41424 #define ACRYPTO_OP_DECRYPT 0
41425 #define ACRYPTO_OP_ENCRYPT 1
41426 @@ -2577,7 +2577,7 @@ static int hifn_probe(struct pci_dev *pdev, const struct pci_device_id *id)
41427 goto err_out_disable_pci_device;
41428
41429 snprintf(name, sizeof(name), "hifn%d",
41430 - atomic_inc_return(&hifn_dev_number)-1);
41431 + atomic_inc_return_unchecked(&hifn_dev_number)-1);
41432
41433 err = pci_request_regions(pdev, name);
41434 if (err)
41435 diff --git a/drivers/crypto/nx/nx-aes-ccm.c b/drivers/crypto/nx/nx-aes-ccm.c
41436 index 73ef499..7038f36 100644
41437 --- a/drivers/crypto/nx/nx-aes-ccm.c
41438 +++ b/drivers/crypto/nx/nx-aes-ccm.c
41439 @@ -409,7 +409,7 @@ static int ccm_nx_decrypt(struct aead_request *req,
41440 processed += to_process;
41441 } while (processed < nbytes);
41442
41443 - rc = memcmp(csbcpb->cpb.aes_ccm.out_pat_or_mac, priv->oauth_tag,
41444 + rc = crypto_memneq(csbcpb->cpb.aes_ccm.out_pat_or_mac, priv->oauth_tag,
41445 authsize) ? -EBADMSG : 0;
41446 out:
41447 spin_unlock_irqrestore(&nx_ctx->lock, irq_flags);
41448 diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c
41449 index eee624f..bf61bed 100644
41450 --- a/drivers/crypto/nx/nx-aes-gcm.c
41451 +++ b/drivers/crypto/nx/nx-aes-gcm.c
41452 @@ -418,7 +418,7 @@ mac:
41453 itag, req->src, req->assoclen + nbytes,
41454 crypto_aead_authsize(crypto_aead_reqtfm(req)),
41455 SCATTERWALK_FROM_SG);
41456 - rc = memcmp(itag, otag,
41457 + rc = crypto_memneq(itag, otag,
41458 crypto_aead_authsize(crypto_aead_reqtfm(req))) ?
41459 -EBADMSG : 0;
41460 }
41461 diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
41462 index 3b20a1b..8b327d8 100644
41463 --- a/drivers/crypto/talitos.c
41464 +++ b/drivers/crypto/talitos.c
41465 @@ -1015,7 +1015,7 @@ static void ipsec_esp_decrypt_swauth_done(struct device *dev,
41466 } else
41467 oicv = (char *)&edesc->link_tbl[0];
41468
41469 - err = memcmp(oicv, icv, authsize) ? -EBADMSG : 0;
41470 + err = crypto_memneq(oicv, icv, authsize) ? -EBADMSG : 0;
41471 }
41472
41473 kfree(edesc);
41474 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
41475 index ca848cc..9049c89 100644
41476 --- a/drivers/devfreq/devfreq.c
41477 +++ b/drivers/devfreq/devfreq.c
41478 @@ -671,7 +671,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
41479 goto err_out;
41480 }
41481
41482 - list_add(&governor->node, &devfreq_governor_list);
41483 + pax_list_add((struct list_head *)&governor->node, &devfreq_governor_list);
41484
41485 list_for_each_entry(devfreq, &devfreq_list, node) {
41486 int ret = 0;
41487 @@ -759,7 +759,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
41488 }
41489 }
41490
41491 - list_del(&governor->node);
41492 + pax_list_del((struct list_head *)&governor->node);
41493 err_out:
41494 mutex_unlock(&devfreq_list_lock);
41495
41496 diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
41497 index 10fcaba..326f709 100644
41498 --- a/drivers/dma/sh/shdma-base.c
41499 +++ b/drivers/dma/sh/shdma-base.c
41500 @@ -227,8 +227,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
41501 schan->slave_id = -EINVAL;
41502 }
41503
41504 - schan->desc = kcalloc(NR_DESCS_PER_CHANNEL,
41505 - sdev->desc_size, GFP_KERNEL);
41506 + schan->desc = kcalloc(sdev->desc_size,
41507 + NR_DESCS_PER_CHANNEL, GFP_KERNEL);
41508 if (!schan->desc) {
41509 ret = -ENOMEM;
41510 goto edescalloc;
41511 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
41512 index 11707df..2ea96f7 100644
41513 --- a/drivers/dma/sh/shdmac.c
41514 +++ b/drivers/dma/sh/shdmac.c
41515 @@ -513,7 +513,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
41516 return ret;
41517 }
41518
41519 -static struct notifier_block sh_dmae_nmi_notifier __read_mostly = {
41520 +static struct notifier_block sh_dmae_nmi_notifier = {
41521 .notifier_call = sh_dmae_nmi_handler,
41522
41523 /* Run before NMI debug handler and KGDB */
41524 diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
41525 index 592af5f..bb1d583 100644
41526 --- a/drivers/edac/edac_device.c
41527 +++ b/drivers/edac/edac_device.c
41528 @@ -477,9 +477,9 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
41529 */
41530 int edac_device_alloc_index(void)
41531 {
41532 - static atomic_t device_indexes = ATOMIC_INIT(0);
41533 + static atomic_unchecked_t device_indexes = ATOMIC_INIT(0);
41534
41535 - return atomic_inc_return(&device_indexes) - 1;
41536 + return atomic_inc_return_unchecked(&device_indexes) - 1;
41537 }
41538 EXPORT_SYMBOL_GPL(edac_device_alloc_index);
41539
41540 diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
41541 index 33df7d9..0794989 100644
41542 --- a/drivers/edac/edac_mc_sysfs.c
41543 +++ b/drivers/edac/edac_mc_sysfs.c
41544 @@ -154,7 +154,7 @@ static const char * const edac_caps[] = {
41545 struct dev_ch_attribute {
41546 struct device_attribute attr;
41547 int channel;
41548 -};
41549 +} __do_const;
41550
41551 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
41552 static struct dev_ch_attribute dev_attr_legacy_##_name = \
41553 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
41554 index 2cf44b4d..6dd2dc7 100644
41555 --- a/drivers/edac/edac_pci.c
41556 +++ b/drivers/edac/edac_pci.c
41557 @@ -29,7 +29,7 @@
41558
41559 static DEFINE_MUTEX(edac_pci_ctls_mutex);
41560 static LIST_HEAD(edac_pci_list);
41561 -static atomic_t pci_indexes = ATOMIC_INIT(0);
41562 +static atomic_unchecked_t pci_indexes = ATOMIC_INIT(0);
41563
41564 /*
41565 * edac_pci_alloc_ctl_info
41566 @@ -315,7 +315,7 @@ EXPORT_SYMBOL_GPL(edac_pci_reset_delay_period);
41567 */
41568 int edac_pci_alloc_index(void)
41569 {
41570 - return atomic_inc_return(&pci_indexes) - 1;
41571 + return atomic_inc_return_unchecked(&pci_indexes) - 1;
41572 }
41573 EXPORT_SYMBOL_GPL(edac_pci_alloc_index);
41574
41575 diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
41576 index 24d877f..4e30133 100644
41577 --- a/drivers/edac/edac_pci_sysfs.c
41578 +++ b/drivers/edac/edac_pci_sysfs.c
41579 @@ -23,8 +23,8 @@ static int edac_pci_log_pe = 1; /* log PCI parity errors */
41580 static int edac_pci_log_npe = 1; /* log PCI non-parity error errors */
41581 static int edac_pci_poll_msec = 1000; /* one second workq period */
41582
41583 -static atomic_t pci_parity_count = ATOMIC_INIT(0);
41584 -static atomic_t pci_nonparity_count = ATOMIC_INIT(0);
41585 +static atomic_unchecked_t pci_parity_count = ATOMIC_INIT(0);
41586 +static atomic_unchecked_t pci_nonparity_count = ATOMIC_INIT(0);
41587
41588 static struct kobject *edac_pci_top_main_kobj;
41589 static atomic_t edac_pci_sysfs_refcount = ATOMIC_INIT(0);
41590 @@ -232,7 +232,7 @@ struct edac_pci_dev_attribute {
41591 void *value;
41592 ssize_t(*show) (void *, char *);
41593 ssize_t(*store) (void *, const char *, size_t);
41594 -};
41595 +} __do_const;
41596
41597 /* Set of show/store abstract level functions for PCI Parity object */
41598 static ssize_t edac_pci_dev_show(struct kobject *kobj, struct attribute *attr,
41599 @@ -576,7 +576,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41600 edac_printk(KERN_CRIT, EDAC_PCI,
41601 "Signaled System Error on %s\n",
41602 pci_name(dev));
41603 - atomic_inc(&pci_nonparity_count);
41604 + atomic_inc_unchecked(&pci_nonparity_count);
41605 }
41606
41607 if (status & (PCI_STATUS_PARITY)) {
41608 @@ -584,7 +584,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41609 "Master Data Parity Error on %s\n",
41610 pci_name(dev));
41611
41612 - atomic_inc(&pci_parity_count);
41613 + atomic_inc_unchecked(&pci_parity_count);
41614 }
41615
41616 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41617 @@ -592,7 +592,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41618 "Detected Parity Error on %s\n",
41619 pci_name(dev));
41620
41621 - atomic_inc(&pci_parity_count);
41622 + atomic_inc_unchecked(&pci_parity_count);
41623 }
41624 }
41625
41626 @@ -615,7 +615,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41627 edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
41628 "Signaled System Error on %s\n",
41629 pci_name(dev));
41630 - atomic_inc(&pci_nonparity_count);
41631 + atomic_inc_unchecked(&pci_nonparity_count);
41632 }
41633
41634 if (status & (PCI_STATUS_PARITY)) {
41635 @@ -623,7 +623,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41636 "Master Data Parity Error on "
41637 "%s\n", pci_name(dev));
41638
41639 - atomic_inc(&pci_parity_count);
41640 + atomic_inc_unchecked(&pci_parity_count);
41641 }
41642
41643 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41644 @@ -631,7 +631,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41645 "Detected Parity Error on %s\n",
41646 pci_name(dev));
41647
41648 - atomic_inc(&pci_parity_count);
41649 + atomic_inc_unchecked(&pci_parity_count);
41650 }
41651 }
41652 }
41653 @@ -669,7 +669,7 @@ void edac_pci_do_parity_check(void)
41654 if (!check_pci_errors)
41655 return;
41656
41657 - before_count = atomic_read(&pci_parity_count);
41658 + before_count = atomic_read_unchecked(&pci_parity_count);
41659
41660 /* scan all PCI devices looking for a Parity Error on devices and
41661 * bridges.
41662 @@ -681,7 +681,7 @@ void edac_pci_do_parity_check(void)
41663 /* Only if operator has selected panic on PCI Error */
41664 if (edac_pci_get_panic_on_pe()) {
41665 /* If the count is different 'after' from 'before' */
41666 - if (before_count != atomic_read(&pci_parity_count))
41667 + if (before_count != atomic_read_unchecked(&pci_parity_count))
41668 panic("EDAC: PCI Parity Error");
41669 }
41670 }
41671 diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
41672 index c2359a1..8bd119d 100644
41673 --- a/drivers/edac/mce_amd.h
41674 +++ b/drivers/edac/mce_amd.h
41675 @@ -74,7 +74,7 @@ struct amd_decoder_ops {
41676 bool (*mc0_mce)(u16, u8);
41677 bool (*mc1_mce)(u16, u8);
41678 bool (*mc2_mce)(u16, u8);
41679 -};
41680 +} __no_const;
41681
41682 void amd_report_gart_errors(bool);
41683 void amd_register_ecc_decoder(void (*f)(int, struct mce *));
41684 diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
41685 index 57ea7f4..af06b76 100644
41686 --- a/drivers/firewire/core-card.c
41687 +++ b/drivers/firewire/core-card.c
41688 @@ -528,9 +528,9 @@ void fw_card_initialize(struct fw_card *card,
41689 const struct fw_card_driver *driver,
41690 struct device *device)
41691 {
41692 - static atomic_t index = ATOMIC_INIT(-1);
41693 + static atomic_unchecked_t index = ATOMIC_INIT(-1);
41694
41695 - card->index = atomic_inc_return(&index);
41696 + card->index = atomic_inc_return_unchecked(&index);
41697 card->driver = driver;
41698 card->device = device;
41699 card->current_tlabel = 0;
41700 @@ -680,7 +680,7 @@ EXPORT_SYMBOL_GPL(fw_card_release);
41701
41702 void fw_core_remove_card(struct fw_card *card)
41703 {
41704 - struct fw_card_driver dummy_driver = dummy_driver_template;
41705 + fw_card_driver_no_const dummy_driver = dummy_driver_template;
41706
41707 card->driver->update_phy_reg(card, 4,
41708 PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
41709 diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
41710 index f9e3aee..269dbdb 100644
41711 --- a/drivers/firewire/core-device.c
41712 +++ b/drivers/firewire/core-device.c
41713 @@ -256,7 +256,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma);
41714 struct config_rom_attribute {
41715 struct device_attribute attr;
41716 u32 key;
41717 -};
41718 +} __do_const;
41719
41720 static ssize_t show_immediate(struct device *dev,
41721 struct device_attribute *dattr, char *buf)
41722 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
41723 index d6a09b9..18e90dd 100644
41724 --- a/drivers/firewire/core-transaction.c
41725 +++ b/drivers/firewire/core-transaction.c
41726 @@ -38,6 +38,7 @@
41727 #include <linux/timer.h>
41728 #include <linux/types.h>
41729 #include <linux/workqueue.h>
41730 +#include <linux/sched.h>
41731
41732 #include <asm/byteorder.h>
41733
41734 diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
41735 index e1480ff6..1a429bd 100644
41736 --- a/drivers/firewire/core.h
41737 +++ b/drivers/firewire/core.h
41738 @@ -111,6 +111,7 @@ struct fw_card_driver {
41739
41740 int (*stop_iso)(struct fw_iso_context *ctx);
41741 };
41742 +typedef struct fw_card_driver __no_const fw_card_driver_no_const;
41743
41744 void fw_card_initialize(struct fw_card *card,
41745 const struct fw_card_driver *driver, struct device *device);
41746 diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
41747 index c2f5117..e36414d 100644
41748 --- a/drivers/firewire/ohci.c
41749 +++ b/drivers/firewire/ohci.c
41750 @@ -2049,10 +2049,12 @@ static void bus_reset_work(struct work_struct *work)
41751 be32_to_cpu(ohci->next_header));
41752 }
41753
41754 +#ifndef CONFIG_GRKERNSEC
41755 if (param_remote_dma) {
41756 reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
41757 reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
41758 }
41759 +#endif
41760
41761 spin_unlock_irq(&ohci->lock);
41762
41763 @@ -2584,8 +2586,10 @@ static int ohci_enable_phys_dma(struct fw_card *card,
41764 unsigned long flags;
41765 int n, ret = 0;
41766
41767 +#ifndef CONFIG_GRKERNSEC
41768 if (param_remote_dma)
41769 return 0;
41770 +#endif
41771
41772 /*
41773 * FIXME: Make sure this bitmask is cleared when we clear the busReset
41774 diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
41775 index 94a58a0..f5eba42 100644
41776 --- a/drivers/firmware/dmi-id.c
41777 +++ b/drivers/firmware/dmi-id.c
41778 @@ -16,7 +16,7 @@
41779 struct dmi_device_attribute{
41780 struct device_attribute dev_attr;
41781 int field;
41782 -};
41783 +} __do_const;
41784 #define to_dmi_dev_attr(_dev_attr) \
41785 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
41786
41787 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
41788 index ac1ce4a..321745e 100644
41789 --- a/drivers/firmware/dmi_scan.c
41790 +++ b/drivers/firmware/dmi_scan.c
41791 @@ -690,14 +690,18 @@ static int __init dmi_init(void)
41792 if (!dmi_table)
41793 goto err_tables;
41794
41795 - bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41796 - bin_attr_smbios_entry_point.private = smbios_entry_point;
41797 + pax_open_kernel();
41798 + *(size_t *)&bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41799 + *(void **)&bin_attr_smbios_entry_point.private = smbios_entry_point;
41800 + pax_close_kernel();
41801 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_smbios_entry_point);
41802 if (ret)
41803 goto err_unmap;
41804
41805 - bin_attr_DMI.size = dmi_len;
41806 - bin_attr_DMI.private = dmi_table;
41807 + pax_open_kernel();
41808 + *(size_t *)&bin_attr_DMI.size = dmi_len;
41809 + *(void **)&bin_attr_DMI.private = dmi_table;
41810 + pax_close_kernel();
41811 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_DMI);
41812 if (!ret)
41813 return 0;
41814 diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
41815 index d425374..1da1716 100644
41816 --- a/drivers/firmware/efi/cper.c
41817 +++ b/drivers/firmware/efi/cper.c
41818 @@ -44,12 +44,12 @@ static char rcd_decode_str[CPER_REC_LEN];
41819 */
41820 u64 cper_next_record_id(void)
41821 {
41822 - static atomic64_t seq;
41823 + static atomic64_unchecked_t seq;
41824
41825 - if (!atomic64_read(&seq))
41826 - atomic64_set(&seq, ((u64)get_seconds()) << 32);
41827 + if (!atomic64_read_unchecked(&seq))
41828 + atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
41829
41830 - return atomic64_inc_return(&seq);
41831 + return atomic64_inc_return_unchecked(&seq);
41832 }
41833 EXPORT_SYMBOL_GPL(cper_next_record_id);
41834
41835 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
41836 index d6144e3..23f9686 100644
41837 --- a/drivers/firmware/efi/efi.c
41838 +++ b/drivers/firmware/efi/efi.c
41839 @@ -170,14 +170,16 @@ static struct attribute_group efi_subsys_attr_group = {
41840 };
41841
41842 static struct efivars generic_efivars;
41843 -static struct efivar_operations generic_ops;
41844 +static efivar_operations_no_const generic_ops __read_only;
41845
41846 static int generic_ops_register(void)
41847 {
41848 - generic_ops.get_variable = efi.get_variable;
41849 - generic_ops.set_variable = efi.set_variable;
41850 - generic_ops.get_next_variable = efi.get_next_variable;
41851 - generic_ops.query_variable_store = efi_query_variable_store;
41852 + pax_open_kernel();
41853 + *(void **)&generic_ops.get_variable = efi.get_variable;
41854 + *(void **)&generic_ops.set_variable = efi.set_variable;
41855 + *(void **)&generic_ops.get_next_variable = efi.get_next_variable;
41856 + *(void **)&generic_ops.query_variable_store = efi_query_variable_store;
41857 + pax_close_kernel();
41858
41859 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
41860 }
41861 diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
41862 index 756eca8..2336d08 100644
41863 --- a/drivers/firmware/efi/efivars.c
41864 +++ b/drivers/firmware/efi/efivars.c
41865 @@ -590,7 +590,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
41866 static int
41867 create_efivars_bin_attributes(void)
41868 {
41869 - struct bin_attribute *attr;
41870 + bin_attribute_no_const *attr;
41871 int error;
41872
41873 /* new_var */
41874 diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
41875 index 5c55227..97f4978 100644
41876 --- a/drivers/firmware/efi/runtime-map.c
41877 +++ b/drivers/firmware/efi/runtime-map.c
41878 @@ -97,7 +97,7 @@ static void map_release(struct kobject *kobj)
41879 kfree(entry);
41880 }
41881
41882 -static struct kobj_type __refdata map_ktype = {
41883 +static const struct kobj_type __refconst map_ktype = {
41884 .sysfs_ops = &map_attr_ops,
41885 .default_attrs = def_attrs,
41886 .release = map_release,
41887 diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c
41888 index f1ab05e..ab51228 100644
41889 --- a/drivers/firmware/google/gsmi.c
41890 +++ b/drivers/firmware/google/gsmi.c
41891 @@ -709,7 +709,7 @@ static u32 __init hash_oem_table_id(char s[8])
41892 return local_hash_64(input, 32);
41893 }
41894
41895 -static struct dmi_system_id gsmi_dmi_table[] __initdata = {
41896 +static const struct dmi_system_id gsmi_dmi_table[] __initconst = {
41897 {
41898 .ident = "Google Board",
41899 .matches = {
41900 diff --git a/drivers/firmware/google/memconsole.c b/drivers/firmware/google/memconsole.c
41901 index 2f569aa..26e4f39 100644
41902 --- a/drivers/firmware/google/memconsole.c
41903 +++ b/drivers/firmware/google/memconsole.c
41904 @@ -136,7 +136,7 @@ static bool __init found_memconsole(void)
41905 return false;
41906 }
41907
41908 -static struct dmi_system_id memconsole_dmi_table[] __initdata = {
41909 +static const struct dmi_system_id memconsole_dmi_table[] __initconst = {
41910 {
41911 .ident = "Google Board",
41912 .matches = {
41913 @@ -155,7 +155,10 @@ static int __init memconsole_init(void)
41914 if (!found_memconsole())
41915 return -ENODEV;
41916
41917 - memconsole_bin_attr.size = memconsole_length;
41918 + pax_open_kernel();
41919 + *(size_t *)&memconsole_bin_attr.size = memconsole_length;
41920 + pax_close_kernel();
41921 +
41922 return sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
41923 }
41924
41925 diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c
41926 index 5de3ed2..d839c56 100644
41927 --- a/drivers/firmware/memmap.c
41928 +++ b/drivers/firmware/memmap.c
41929 @@ -124,7 +124,7 @@ static void __meminit release_firmware_map_entry(struct kobject *kobj)
41930 kfree(entry);
41931 }
41932
41933 -static struct kobj_type __refdata memmap_ktype = {
41934 +static const struct kobj_type __refconst memmap_ktype = {
41935 .release = release_firmware_map_entry,
41936 .sysfs_ops = &memmap_attr_ops,
41937 .default_attrs = def_attrs,
41938 diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
41939 index 42700f0..3745ec6 100644
41940 --- a/drivers/firmware/psci.c
41941 +++ b/drivers/firmware/psci.c
41942 @@ -52,7 +52,7 @@ bool psci_tos_resident_on(int cpu)
41943 return cpu == resident_cpu;
41944 }
41945
41946 -struct psci_operations psci_ops;
41947 +struct psci_operations psci_ops __read_only;
41948
41949 typedef unsigned long (psci_fn)(unsigned long, unsigned long,
41950 unsigned long, unsigned long);
41951 diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
41952 index 5e71538..00b7406 100644
41953 --- a/drivers/gpio/gpio-davinci.c
41954 +++ b/drivers/gpio/gpio-davinci.c
41955 @@ -441,9 +441,9 @@ static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq)
41956 return &gpio_unbanked.chip;
41957 };
41958
41959 -static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq)
41960 +static irq_chip_no_const *keystone_gpio_get_irq_chip(unsigned int irq)
41961 {
41962 - static struct irq_chip gpio_unbanked;
41963 + static irq_chip_no_const gpio_unbanked;
41964
41965 gpio_unbanked = *irq_get_chip(irq);
41966 return &gpio_unbanked;
41967 @@ -473,7 +473,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev)
41968 struct davinci_gpio_regs __iomem *g;
41969 struct irq_domain *irq_domain = NULL;
41970 const struct of_device_id *match;
41971 - struct irq_chip *irq_chip;
41972 + irq_chip_no_const *irq_chip;
41973 gpio_get_irq_chip_cb_t gpio_get_irq_chip;
41974
41975 /*
41976 diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c
41977 index 6bca1e1..ed8b22e 100644
41978 --- a/drivers/gpio/gpio-em.c
41979 +++ b/drivers/gpio/gpio-em.c
41980 @@ -274,7 +274,7 @@ static int em_gio_probe(struct platform_device *pdev)
41981 struct em_gio_priv *p;
41982 struct resource *io[2], *irq[2];
41983 struct gpio_chip *gpio_chip;
41984 - struct irq_chip *irq_chip;
41985 + irq_chip_no_const *irq_chip;
41986 const char *name = dev_name(&pdev->dev);
41987 unsigned int ngpios;
41988 int ret;
41989 diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
41990 index 4ba7ed5..1536b5d 100644
41991 --- a/drivers/gpio/gpio-ich.c
41992 +++ b/drivers/gpio/gpio-ich.c
41993 @@ -94,7 +94,7 @@ struct ichx_desc {
41994 * this option allows driver caching written output values
41995 */
41996 bool use_outlvl_cache;
41997 -};
41998 +} __do_const;
41999
42000 static struct {
42001 spinlock_t lock;
42002 diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
42003 index 5236db1..74e292a 100644
42004 --- a/drivers/gpio/gpio-omap.c
42005 +++ b/drivers/gpio/gpio-omap.c
42006 @@ -1072,7 +1072,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
42007 writel_relaxed(0, base + bank->regs->ctrl);
42008 }
42009
42010 -static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
42011 +static int omap_gpio_chip_init(struct gpio_bank *bank, irq_chip_no_const *irqc)
42012 {
42013 static int gpio;
42014 int irq_base = 0;
42015 @@ -1157,7 +1157,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
42016 const struct omap_gpio_platform_data *pdata;
42017 struct resource *res;
42018 struct gpio_bank *bank;
42019 - struct irq_chip *irqc;
42020 + irq_chip_no_const *irqc;
42021 int ret;
42022
42023 match = of_match_device(of_match_ptr(omap_gpio_match), dev);
42024 diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
42025 index 2a81224..ec01fb3 100644
42026 --- a/drivers/gpio/gpio-rcar.c
42027 +++ b/drivers/gpio/gpio-rcar.c
42028 @@ -398,7 +398,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
42029 struct gpio_rcar_priv *p;
42030 struct resource *io, *irq;
42031 struct gpio_chip *gpio_chip;
42032 - struct irq_chip *irq_chip;
42033 + irq_chip_no_const *irq_chip;
42034 struct device *dev = &pdev->dev;
42035 const char *name = dev_name(dev);
42036 int ret;
42037 diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c
42038 index c1caa45..f0f97d2 100644
42039 --- a/drivers/gpio/gpio-vr41xx.c
42040 +++ b/drivers/gpio/gpio-vr41xx.c
42041 @@ -224,7 +224,7 @@ static int giu_get_irq(unsigned int irq)
42042 printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
42043 maskl, pendl, maskh, pendh);
42044
42045 - atomic_inc(&irq_err_count);
42046 + atomic_inc_unchecked(&irq_err_count);
42047
42048 return -EINVAL;
42049 }
42050 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
42051 index 5db3445..21414d5 100644
42052 --- a/drivers/gpio/gpiolib.c
42053 +++ b/drivers/gpio/gpiolib.c
42054 @@ -572,8 +572,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
42055 }
42056
42057 if (gpiochip->irqchip) {
42058 - gpiochip->irqchip->irq_request_resources = NULL;
42059 - gpiochip->irqchip->irq_release_resources = NULL;
42060 + pax_open_kernel();
42061 + *(void **)&gpiochip->irqchip->irq_request_resources = NULL;
42062 + *(void **)&gpiochip->irqchip->irq_release_resources = NULL;
42063 + pax_close_kernel();
42064 gpiochip->irqchip = NULL;
42065 }
42066 }
42067 @@ -649,8 +651,10 @@ int _gpiochip_irqchip_add(struct gpio_chip *gpiochip,
42068 */
42069 if (!irqchip->irq_request_resources &&
42070 !irqchip->irq_release_resources) {
42071 - irqchip->irq_request_resources = gpiochip_irq_reqres;
42072 - irqchip->irq_release_resources = gpiochip_irq_relres;
42073 + pax_open_kernel();
42074 + *(void **)&irqchip->irq_request_resources = gpiochip_irq_reqres;
42075 + *(void **)&irqchip->irq_release_resources = gpiochip_irq_relres;
42076 + pax_close_kernel();
42077 }
42078
42079 /*
42080 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
42081 index 8e99514..3d68786 100644
42082 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
42083 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
42084 @@ -737,44 +737,44 @@ static int amdgpu_cgs_get_firmware_info(void *cgs_device,
42085 }
42086
42087 static const struct cgs_ops amdgpu_cgs_ops = {
42088 - amdgpu_cgs_gpu_mem_info,
42089 - amdgpu_cgs_gmap_kmem,
42090 - amdgpu_cgs_gunmap_kmem,
42091 - amdgpu_cgs_alloc_gpu_mem,
42092 - amdgpu_cgs_free_gpu_mem,
42093 - amdgpu_cgs_gmap_gpu_mem,
42094 - amdgpu_cgs_gunmap_gpu_mem,
42095 - amdgpu_cgs_kmap_gpu_mem,
42096 - amdgpu_cgs_kunmap_gpu_mem,
42097 - amdgpu_cgs_read_register,
42098 - amdgpu_cgs_write_register,
42099 - amdgpu_cgs_read_ind_register,
42100 - amdgpu_cgs_write_ind_register,
42101 - amdgpu_cgs_read_pci_config_byte,
42102 - amdgpu_cgs_read_pci_config_word,
42103 - amdgpu_cgs_read_pci_config_dword,
42104 - amdgpu_cgs_write_pci_config_byte,
42105 - amdgpu_cgs_write_pci_config_word,
42106 - amdgpu_cgs_write_pci_config_dword,
42107 - amdgpu_cgs_atom_get_data_table,
42108 - amdgpu_cgs_atom_get_cmd_table_revs,
42109 - amdgpu_cgs_atom_exec_cmd_table,
42110 - amdgpu_cgs_create_pm_request,
42111 - amdgpu_cgs_destroy_pm_request,
42112 - amdgpu_cgs_set_pm_request,
42113 - amdgpu_cgs_pm_request_clock,
42114 - amdgpu_cgs_pm_request_engine,
42115 - amdgpu_cgs_pm_query_clock_limits,
42116 - amdgpu_cgs_set_camera_voltages,
42117 - amdgpu_cgs_get_firmware_info,
42118 - amdgpu_cgs_set_powergating_state,
42119 - amdgpu_cgs_set_clockgating_state
42120 + .gpu_mem_info = amdgpu_cgs_gpu_mem_info,
42121 + .gmap_kmem = amdgpu_cgs_gmap_kmem,
42122 + .gunmap_kmem = amdgpu_cgs_gunmap_kmem,
42123 + .alloc_gpu_mem = amdgpu_cgs_alloc_gpu_mem,
42124 + .free_gpu_mem = amdgpu_cgs_free_gpu_mem,
42125 + .gmap_gpu_mem = amdgpu_cgs_gmap_gpu_mem,
42126 + .gunmap_gpu_mem = amdgpu_cgs_gunmap_gpu_mem,
42127 + .kmap_gpu_mem = amdgpu_cgs_kmap_gpu_mem,
42128 + .kunmap_gpu_mem = amdgpu_cgs_kunmap_gpu_mem,
42129 + .read_register = amdgpu_cgs_read_register,
42130 + .write_register = amdgpu_cgs_write_register,
42131 + .read_ind_register = amdgpu_cgs_read_ind_register,
42132 + .write_ind_register = amdgpu_cgs_write_ind_register,
42133 + .read_pci_config_byte = amdgpu_cgs_read_pci_config_byte,
42134 + .read_pci_config_word = amdgpu_cgs_read_pci_config_word,
42135 + .read_pci_config_dword = amdgpu_cgs_read_pci_config_dword,
42136 + .write_pci_config_byte = amdgpu_cgs_write_pci_config_byte,
42137 + .write_pci_config_word = amdgpu_cgs_write_pci_config_word,
42138 + .write_pci_config_dword = amdgpu_cgs_write_pci_config_dword,
42139 + .atom_get_data_table = amdgpu_cgs_atom_get_data_table,
42140 + .atom_get_cmd_table_revs = amdgpu_cgs_atom_get_cmd_table_revs,
42141 + .atom_exec_cmd_table = amdgpu_cgs_atom_exec_cmd_table,
42142 + .create_pm_request = amdgpu_cgs_create_pm_request,
42143 + .destroy_pm_request = amdgpu_cgs_destroy_pm_request,
42144 + .set_pm_request = amdgpu_cgs_set_pm_request,
42145 + .pm_request_clock = amdgpu_cgs_pm_request_clock,
42146 + .pm_request_engine = amdgpu_cgs_pm_request_engine,
42147 + .pm_query_clock_limits = amdgpu_cgs_pm_query_clock_limits,
42148 + .set_camera_voltages = amdgpu_cgs_set_camera_voltages,
42149 + .get_firmware_info = amdgpu_cgs_get_firmware_info,
42150 + .set_powergating_state = amdgpu_cgs_set_powergating_state,
42151 + .set_clockgating_state = amdgpu_cgs_set_clockgating_state
42152 };
42153
42154 static const struct cgs_os_ops amdgpu_cgs_os_ops = {
42155 - amdgpu_cgs_add_irq_source,
42156 - amdgpu_cgs_irq_get,
42157 - amdgpu_cgs_irq_put
42158 + .add_irq_source = amdgpu_cgs_add_irq_source,
42159 + .irq_get = amdgpu_cgs_irq_get,
42160 + .irq_put = amdgpu_cgs_irq_put
42161 };
42162
42163 void *amdgpu_cgs_create_device(struct amdgpu_device *adev)
42164 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42165 index 6068d82..7ecd87c 100644
42166 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42167 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42168 @@ -1074,7 +1074,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev *pdev)
42169 * locking inversion with the driver load path. And the access here is
42170 * completely racy anyway. So don't bother with locking for now.
42171 */
42172 - return dev->open_count == 0;
42173 + return local_read(&dev->open_count) == 0;
42174 }
42175
42176 static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = {
42177 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42178 index c6a1b4c..32873f8 100644
42179 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42180 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42181 @@ -419,7 +419,7 @@ static int kfd_ioctl_set_memory_policy(struct file *filep,
42182 (args->alternate_policy == KFD_IOC_CACHE_POLICY_COHERENT)
42183 ? cache_policy_coherent : cache_policy_noncoherent;
42184
42185 - if (!dev->dqm->ops.set_cache_memory_policy(dev->dqm,
42186 + if (!dev->dqm->ops->set_cache_memory_policy(dev->dqm,
42187 &pdd->qpd,
42188 default_policy,
42189 alternate_policy,
42190 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42191 index 3f95f7c..0a62dad 100644
42192 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42193 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42194 @@ -298,7 +298,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
42195 goto device_queue_manager_error;
42196 }
42197
42198 - if (kfd->dqm->ops.start(kfd->dqm) != 0) {
42199 + if (kfd->dqm->ops->start(kfd->dqm) != 0) {
42200 dev_err(kfd_device,
42201 "Error starting queuen manager for device (%x:%x)\n",
42202 kfd->pdev->vendor, kfd->pdev->device);
42203 @@ -354,7 +354,7 @@ void kgd2kfd_suspend(struct kfd_dev *kfd)
42204 BUG_ON(kfd == NULL);
42205
42206 if (kfd->init_complete) {
42207 - kfd->dqm->ops.stop(kfd->dqm);
42208 + kfd->dqm->ops->stop(kfd->dqm);
42209 amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
42210 amd_iommu_set_invalid_ppr_cb(kfd->pdev, NULL);
42211 amd_iommu_free_device(kfd->pdev);
42212 @@ -377,7 +377,7 @@ int kgd2kfd_resume(struct kfd_dev *kfd)
42213 amd_iommu_set_invalidate_ctx_cb(kfd->pdev,
42214 iommu_pasid_shutdown_callback);
42215 amd_iommu_set_invalid_ppr_cb(kfd->pdev, iommu_invalid_ppr_cb);
42216 - kfd->dqm->ops.start(kfd->dqm);
42217 + kfd->dqm->ops->start(kfd->dqm);
42218 }
42219
42220 return 0;
42221 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42222 index 4bb7f42..320fcac 100644
42223 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42224 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42225 @@ -242,7 +242,7 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm,
42226
42227 BUG_ON(!dqm || !q || !qpd);
42228
42229 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42230 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42231 if (mqd == NULL)
42232 return -ENOMEM;
42233
42234 @@ -288,14 +288,14 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
42235 mutex_lock(&dqm->lock);
42236
42237 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) {
42238 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42239 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42240 if (mqd == NULL) {
42241 retval = -ENOMEM;
42242 goto out;
42243 }
42244 deallocate_hqd(dqm, q);
42245 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) {
42246 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42247 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42248 if (mqd == NULL) {
42249 retval = -ENOMEM;
42250 goto out;
42251 @@ -347,7 +347,7 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
42252 BUG_ON(!dqm || !q || !q->mqd);
42253
42254 mutex_lock(&dqm->lock);
42255 - mqd = dqm->ops.get_mqd_manager(dqm,
42256 + mqd = dqm->ops->get_mqd_manager(dqm,
42257 get_mqd_type_from_queue_type(q->properties.type));
42258 if (mqd == NULL) {
42259 mutex_unlock(&dqm->lock);
42260 @@ -414,7 +414,7 @@ static int register_process_nocpsch(struct device_queue_manager *dqm,
42261 mutex_lock(&dqm->lock);
42262 list_add(&n->list, &dqm->queues);
42263
42264 - retval = dqm->ops_asic_specific.register_process(dqm, qpd);
42265 + retval = dqm->ops_asic_specific->register_process(dqm, qpd);
42266
42267 dqm->processes_count++;
42268
42269 @@ -502,7 +502,7 @@ int init_pipelines(struct device_queue_manager *dqm,
42270
42271 memset(hpdptr, 0, CIK_HPD_EOP_BYTES * pipes_num);
42272
42273 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42274 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42275 if (mqd == NULL) {
42276 kfd_gtt_sa_free(dqm->dev, dqm->pipeline_mem);
42277 return -ENOMEM;
42278 @@ -635,7 +635,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42279 struct mqd_manager *mqd;
42280 int retval;
42281
42282 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42283 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42284 if (!mqd)
42285 return -ENOMEM;
42286
42287 @@ -650,7 +650,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42288 pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id);
42289 pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id);
42290
42291 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42292 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42293 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42294 &q->gart_mqd_addr, &q->properties);
42295 if (retval != 0) {
42296 @@ -712,7 +712,7 @@ static int initialize_cpsch(struct device_queue_manager *dqm)
42297 dqm->queue_count = dqm->processes_count = 0;
42298 dqm->sdma_queue_count = 0;
42299 dqm->active_runlist = false;
42300 - retval = dqm->ops_asic_specific.initialize(dqm);
42301 + retval = dqm->ops_asic_specific->initialize(dqm);
42302 if (retval != 0)
42303 goto fail_init_pipelines;
42304
42305 @@ -879,7 +879,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42306 if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
42307 select_sdma_engine_id(q);
42308
42309 - mqd = dqm->ops.get_mqd_manager(dqm,
42310 + mqd = dqm->ops->get_mqd_manager(dqm,
42311 get_mqd_type_from_queue_type(q->properties.type));
42312
42313 if (mqd == NULL) {
42314 @@ -887,7 +887,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42315 return -ENOMEM;
42316 }
42317
42318 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42319 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42320 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42321 &q->gart_mqd_addr, &q->properties);
42322 if (retval != 0)
42323 @@ -1060,7 +1060,7 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
42324
42325 }
42326
42327 - mqd = dqm->ops.get_mqd_manager(dqm,
42328 + mqd = dqm->ops->get_mqd_manager(dqm,
42329 get_mqd_type_from_queue_type(q->properties.type));
42330 if (!mqd) {
42331 retval = -ENOMEM;
42332 @@ -1149,7 +1149,7 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm,
42333 qpd->sh_mem_ape1_limit = limit >> 16;
42334 }
42335
42336 - retval = dqm->ops_asic_specific.set_cache_memory_policy(
42337 + retval = dqm->ops_asic_specific->set_cache_memory_policy(
42338 dqm,
42339 qpd,
42340 default_policy,
42341 @@ -1172,6 +1172,36 @@ out:
42342 return false;
42343 }
42344
42345 +static const struct device_queue_manager_ops cp_dqm_ops = {
42346 + .create_queue = create_queue_cpsch,
42347 + .initialize = initialize_cpsch,
42348 + .start = start_cpsch,
42349 + .stop = stop_cpsch,
42350 + .destroy_queue = destroy_queue_cpsch,
42351 + .update_queue = update_queue,
42352 + .get_mqd_manager = get_mqd_manager_nocpsch,
42353 + .register_process = register_process_nocpsch,
42354 + .unregister_process = unregister_process_nocpsch,
42355 + .uninitialize = uninitialize_nocpsch,
42356 + .create_kernel_queue = create_kernel_queue_cpsch,
42357 + .destroy_kernel_queue = destroy_kernel_queue_cpsch,
42358 + .set_cache_memory_policy = set_cache_memory_policy,
42359 +};
42360 +
42361 +static const struct device_queue_manager_ops no_cp_dqm_ops = {
42362 + .start = start_nocpsch,
42363 + .stop = stop_nocpsch,
42364 + .create_queue = create_queue_nocpsch,
42365 + .destroy_queue = destroy_queue_nocpsch,
42366 + .update_queue = update_queue,
42367 + .get_mqd_manager = get_mqd_manager_nocpsch,
42368 + .register_process = register_process_nocpsch,
42369 + .unregister_process = unregister_process_nocpsch,
42370 + .initialize = initialize_nocpsch,
42371 + .uninitialize = uninitialize_nocpsch,
42372 + .set_cache_memory_policy = set_cache_memory_policy,
42373 +};
42374 +
42375 struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42376 {
42377 struct device_queue_manager *dqm;
42378 @@ -1189,33 +1219,11 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42379 case KFD_SCHED_POLICY_HWS:
42380 case KFD_SCHED_POLICY_HWS_NO_OVERSUBSCRIPTION:
42381 /* initialize dqm for cp scheduling */
42382 - dqm->ops.create_queue = create_queue_cpsch;
42383 - dqm->ops.initialize = initialize_cpsch;
42384 - dqm->ops.start = start_cpsch;
42385 - dqm->ops.stop = stop_cpsch;
42386 - dqm->ops.destroy_queue = destroy_queue_cpsch;
42387 - dqm->ops.update_queue = update_queue;
42388 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42389 - dqm->ops.register_process = register_process_nocpsch;
42390 - dqm->ops.unregister_process = unregister_process_nocpsch;
42391 - dqm->ops.uninitialize = uninitialize_nocpsch;
42392 - dqm->ops.create_kernel_queue = create_kernel_queue_cpsch;
42393 - dqm->ops.destroy_kernel_queue = destroy_kernel_queue_cpsch;
42394 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42395 + dqm->ops = &cp_dqm_ops;
42396 break;
42397 case KFD_SCHED_POLICY_NO_HWS:
42398 /* initialize dqm for no cp scheduling */
42399 - dqm->ops.start = start_nocpsch;
42400 - dqm->ops.stop = stop_nocpsch;
42401 - dqm->ops.create_queue = create_queue_nocpsch;
42402 - dqm->ops.destroy_queue = destroy_queue_nocpsch;
42403 - dqm->ops.update_queue = update_queue;
42404 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42405 - dqm->ops.register_process = register_process_nocpsch;
42406 - dqm->ops.unregister_process = unregister_process_nocpsch;
42407 - dqm->ops.initialize = initialize_nocpsch;
42408 - dqm->ops.uninitialize = uninitialize_nocpsch;
42409 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42410 + dqm->ops = &no_cp_dqm_ops;
42411 break;
42412 default:
42413 BUG();
42414 @@ -1224,15 +1232,15 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42415
42416 switch (dev->device_info->asic_family) {
42417 case CHIP_CARRIZO:
42418 - device_queue_manager_init_vi(&dqm->ops_asic_specific);
42419 + device_queue_manager_init_vi(dqm);
42420 break;
42421
42422 case CHIP_KAVERI:
42423 - device_queue_manager_init_cik(&dqm->ops_asic_specific);
42424 + device_queue_manager_init_cik(dqm);
42425 break;
42426 }
42427
42428 - if (dqm->ops.initialize(dqm) != 0) {
42429 + if (dqm->ops->initialize(dqm) != 0) {
42430 kfree(dqm);
42431 return NULL;
42432 }
42433 @@ -1244,6 +1252,6 @@ void device_queue_manager_uninit(struct device_queue_manager *dqm)
42434 {
42435 BUG_ON(!dqm);
42436
42437 - dqm->ops.uninitialize(dqm);
42438 + dqm->ops->uninitialize(dqm);
42439 kfree(dqm);
42440 }
42441 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42442 index ec4036a..a7800c0 100644
42443 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42444 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42445 @@ -154,8 +154,8 @@ struct device_queue_manager_asic_ops {
42446 */
42447
42448 struct device_queue_manager {
42449 - struct device_queue_manager_ops ops;
42450 - struct device_queue_manager_asic_ops ops_asic_specific;
42451 + const struct device_queue_manager_ops *ops;
42452 + const struct device_queue_manager_asic_ops *ops_asic_specific;
42453
42454 struct mqd_manager *mqds[KFD_MQD_TYPE_MAX];
42455 struct packet_manager packets;
42456 @@ -178,8 +178,8 @@ struct device_queue_manager {
42457 bool active_runlist;
42458 };
42459
42460 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops);
42461 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops);
42462 +void device_queue_manager_init_cik(struct device_queue_manager *dqm);
42463 +void device_queue_manager_init_vi(struct device_queue_manager *dqm);
42464 void program_sh_mem_settings(struct device_queue_manager *dqm,
42465 struct qcm_process_device *qpd);
42466 int init_pipelines(struct device_queue_manager *dqm,
42467 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42468 index c6f435a..34fb247 100644
42469 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42470 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42471 @@ -37,12 +37,16 @@ static int initialize_cpsch_cik(struct device_queue_manager *dqm);
42472 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42473 struct qcm_process_device *qpd);
42474
42475 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops)
42476 +static const struct device_queue_manager_asic_ops cik_dqm_asic_ops = {
42477 + .set_cache_memory_policy = set_cache_memory_policy_cik,
42478 + .register_process = register_process_cik,
42479 + .initialize = initialize_cpsch_cik,
42480 + .init_sdma_vm = init_sdma_vm,
42481 +};
42482 +
42483 +void device_queue_manager_init_cik(struct device_queue_manager *dqm)
42484 {
42485 - ops->set_cache_memory_policy = set_cache_memory_policy_cik;
42486 - ops->register_process = register_process_cik;
42487 - ops->initialize = initialize_cpsch_cik;
42488 - ops->init_sdma_vm = init_sdma_vm;
42489 + dqm->ops_asic_specific = &cik_dqm_asic_ops;
42490 }
42491
42492 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42493 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42494 index 7e9cae9..fbe7ba5 100644
42495 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42496 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42497 @@ -39,12 +39,16 @@ static int initialize_cpsch_vi(struct device_queue_manager *dqm);
42498 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42499 struct qcm_process_device *qpd);
42500
42501 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops)
42502 +static const struct device_queue_manager_asic_ops vi_dqm_asic_ops = {
42503 + .set_cache_memory_policy = set_cache_memory_policy_vi,
42504 + .register_process = register_process_vi,
42505 + .initialize = initialize_cpsch_vi,
42506 + .init_sdma_vm = init_sdma_vm,
42507 +};
42508 +
42509 +void device_queue_manager_init_vi(struct device_queue_manager *dqm)
42510 {
42511 - ops->set_cache_memory_policy = set_cache_memory_policy_vi;
42512 - ops->register_process = register_process_vi;
42513 - ops->initialize = initialize_cpsch_vi;
42514 - ops->init_sdma_vm = init_sdma_vm;
42515 + dqm->ops_asic_specific = &vi_dqm_asic_ops;
42516 }
42517
42518 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42519 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42520 index 7f134aa..cd34d4a 100644
42521 --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42522 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42523 @@ -50,8 +50,8 @@ static void interrupt_wq(struct work_struct *);
42524
42525 int kfd_interrupt_init(struct kfd_dev *kfd)
42526 {
42527 - void *interrupt_ring = kmalloc_array(KFD_INTERRUPT_RING_SIZE,
42528 - kfd->device_info->ih_ring_entry_size,
42529 + void *interrupt_ring = kmalloc_array(kfd->device_info->ih_ring_entry_size,
42530 + KFD_INTERRUPT_RING_SIZE,
42531 GFP_KERNEL);
42532 if (!interrupt_ring)
42533 return -ENOMEM;
42534 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42535 index 8fa8941..5ae07df 100644
42536 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42537 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42538 @@ -56,7 +56,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
42539 switch (type) {
42540 case KFD_QUEUE_TYPE_DIQ:
42541 case KFD_QUEUE_TYPE_HIQ:
42542 - kq->mqd = dev->dqm->ops.get_mqd_manager(dev->dqm,
42543 + kq->mqd = dev->dqm->ops->get_mqd_manager(dev->dqm,
42544 KFD_MQD_TYPE_HIQ);
42545 break;
42546 default:
42547 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42548 index 5940531..a75b0e5 100644
42549 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42550 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42551 @@ -62,7 +62,7 @@ struct kernel_queue_ops {
42552
42553 void (*submit_packet)(struct kernel_queue *kq);
42554 void (*rollback_packet)(struct kernel_queue *kq);
42555 -};
42556 +} __no_const;
42557
42558 struct kernel_queue {
42559 struct kernel_queue_ops ops;
42560 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42561 index 7b69070..d7bd78b 100644
42562 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42563 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42564 @@ -194,7 +194,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42565
42566 if (list_empty(&pqm->queues)) {
42567 pdd->qpd.pqm = pqm;
42568 - dev->dqm->ops.register_process(dev->dqm, &pdd->qpd);
42569 + dev->dqm->ops->register_process(dev->dqm, &pdd->qpd);
42570 }
42571
42572 pqn = kzalloc(sizeof(struct process_queue_node), GFP_KERNEL);
42573 @@ -220,7 +220,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42574 goto err_create_queue;
42575 pqn->q = q;
42576 pqn->kq = NULL;
42577 - retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd,
42578 + retval = dev->dqm->ops->create_queue(dev->dqm, q, &pdd->qpd,
42579 &q->properties.vmid);
42580 pr_debug("DQM returned %d for create_queue\n", retval);
42581 print_queue(q);
42582 @@ -234,7 +234,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42583 kq->queue->properties.queue_id = *qid;
42584 pqn->kq = kq;
42585 pqn->q = NULL;
42586 - retval = dev->dqm->ops.create_kernel_queue(dev->dqm,
42587 + retval = dev->dqm->ops->create_kernel_queue(dev->dqm,
42588 kq, &pdd->qpd);
42589 break;
42590 default:
42591 @@ -265,7 +265,7 @@ err_allocate_pqn:
42592 /* check if queues list is empty unregister process from device */
42593 clear_bit(*qid, pqm->queue_slot_bitmap);
42594 if (list_empty(&pqm->queues))
42595 - dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd);
42596 + dev->dqm->ops->unregister_process(dev->dqm, &pdd->qpd);
42597 return retval;
42598 }
42599
42600 @@ -306,13 +306,13 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42601 if (pqn->kq) {
42602 /* destroy kernel queue (DIQ) */
42603 dqm = pqn->kq->dev->dqm;
42604 - dqm->ops.destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42605 + dqm->ops->destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42606 kernel_queue_uninit(pqn->kq);
42607 }
42608
42609 if (pqn->q) {
42610 dqm = pqn->q->device->dqm;
42611 - retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q);
42612 + retval = dqm->ops->destroy_queue(dqm, &pdd->qpd, pqn->q);
42613 if (retval != 0)
42614 return retval;
42615
42616 @@ -324,7 +324,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42617 clear_bit(qid, pqm->queue_slot_bitmap);
42618
42619 if (list_empty(&pqm->queues))
42620 - dqm->ops.unregister_process(dqm, &pdd->qpd);
42621 + dqm->ops->unregister_process(dqm, &pdd->qpd);
42622
42623 return retval;
42624 }
42625 @@ -349,7 +349,7 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid,
42626 pqn->q->properties.queue_percent = p->queue_percent;
42627 pqn->q->properties.priority = p->priority;
42628
42629 - retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm,
42630 + retval = pqn->q->device->dqm->ops->update_queue(pqn->q->device->dqm,
42631 pqn->q);
42632 if (retval != 0)
42633 return retval;
42634 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
42635 index 8328e70..fbd9db2 100644
42636 --- a/drivers/gpu/drm/drm_crtc.c
42637 +++ b/drivers/gpu/drm/drm_crtc.c
42638 @@ -4058,7 +4058,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42639 goto done;
42640 }
42641
42642 - if (copy_to_user(&enum_ptr[copied].name,
42643 + if (copy_to_user(enum_ptr[copied].name,
42644 &prop_enum->name, DRM_PROP_NAME_LEN)) {
42645 ret = -EFAULT;
42646 goto done;
42647 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
42648 index 53d09a1..b55a078 100644
42649 --- a/drivers/gpu/drm/drm_drv.c
42650 +++ b/drivers/gpu/drm/drm_drv.c
42651 @@ -433,7 +433,7 @@ void drm_unplug_dev(struct drm_device *dev)
42652
42653 drm_device_set_unplugged(dev);
42654
42655 - if (dev->open_count == 0) {
42656 + if (local_read(&dev->open_count) == 0) {
42657 drm_put_dev(dev);
42658 }
42659 mutex_unlock(&drm_global_mutex);
42660 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
42661 index c59ce4d..056d413 100644
42662 --- a/drivers/gpu/drm/drm_fops.c
42663 +++ b/drivers/gpu/drm/drm_fops.c
42664 @@ -89,7 +89,7 @@ int drm_open(struct inode *inode, struct file *filp)
42665 return PTR_ERR(minor);
42666
42667 dev = minor->dev;
42668 - if (!dev->open_count++)
42669 + if (local_inc_return(&dev->open_count) == 1)
42670 need_setup = 1;
42671
42672 /* share address_space across all char-devs of a single device */
42673 @@ -106,7 +106,7 @@ int drm_open(struct inode *inode, struct file *filp)
42674 return 0;
42675
42676 err_undo:
42677 - dev->open_count--;
42678 + local_dec(&dev->open_count);
42679 drm_minor_release(minor);
42680 return retcode;
42681 }
42682 @@ -377,7 +377,7 @@ int drm_release(struct inode *inode, struct file *filp)
42683
42684 mutex_lock(&drm_global_mutex);
42685
42686 - DRM_DEBUG("open_count = %d\n", dev->open_count);
42687 + DRM_DEBUG("open_count = %ld\n", local_read(&dev->open_count));
42688
42689 mutex_lock(&dev->struct_mutex);
42690 list_del(&file_priv->lhead);
42691 @@ -392,10 +392,10 @@ int drm_release(struct inode *inode, struct file *filp)
42692 * Begin inline drm_release
42693 */
42694
42695 - DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
42696 + DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %ld\n",
42697 task_pid_nr(current),
42698 (long)old_encode_dev(file_priv->minor->kdev->devt),
42699 - dev->open_count);
42700 + local_read(&dev->open_count));
42701
42702 /* if the master has gone away we can't do anything with the lock */
42703 if (file_priv->minor->master)
42704 @@ -465,7 +465,7 @@ int drm_release(struct inode *inode, struct file *filp)
42705 * End inline drm_release
42706 */
42707
42708 - if (!--dev->open_count) {
42709 + if (local_dec_and_test(&dev->open_count)) {
42710 retcode = drm_lastclose(dev);
42711 if (drm_device_is_unplugged(dev))
42712 drm_put_dev(dev);
42713 diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c
42714 index 3d2e91c..d31c4c9 100644
42715 --- a/drivers/gpu/drm/drm_global.c
42716 +++ b/drivers/gpu/drm/drm_global.c
42717 @@ -36,7 +36,7 @@
42718 struct drm_global_item {
42719 struct mutex mutex;
42720 void *object;
42721 - int refcount;
42722 + atomic_t refcount;
42723 };
42724
42725 static struct drm_global_item glob[DRM_GLOBAL_NUM];
42726 @@ -49,7 +49,7 @@ void drm_global_init(void)
42727 struct drm_global_item *item = &glob[i];
42728 mutex_init(&item->mutex);
42729 item->object = NULL;
42730 - item->refcount = 0;
42731 + atomic_set(&item->refcount, 0);
42732 }
42733 }
42734
42735 @@ -59,7 +59,7 @@ void drm_global_release(void)
42736 for (i = 0; i < DRM_GLOBAL_NUM; ++i) {
42737 struct drm_global_item *item = &glob[i];
42738 BUG_ON(item->object != NULL);
42739 - BUG_ON(item->refcount != 0);
42740 + BUG_ON(atomic_read(&item->refcount) != 0);
42741 }
42742 }
42743
42744 @@ -69,7 +69,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42745 struct drm_global_item *item = &glob[ref->global_type];
42746
42747 mutex_lock(&item->mutex);
42748 - if (item->refcount == 0) {
42749 + if (atomic_read(&item->refcount) == 0) {
42750 item->object = kzalloc(ref->size, GFP_KERNEL);
42751 if (unlikely(item->object == NULL)) {
42752 ret = -ENOMEM;
42753 @@ -82,7 +82,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42754 goto out_err;
42755
42756 }
42757 - ++item->refcount;
42758 + atomic_inc(&item->refcount);
42759 ref->object = item->object;
42760 mutex_unlock(&item->mutex);
42761 return 0;
42762 @@ -98,9 +98,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
42763 struct drm_global_item *item = &glob[ref->global_type];
42764
42765 mutex_lock(&item->mutex);
42766 - BUG_ON(item->refcount == 0);
42767 + BUG_ON(atomic_read(&item->refcount) == 0);
42768 BUG_ON(ref->object != item->object);
42769 - if (--item->refcount == 0) {
42770 + if (atomic_dec_and_test(&item->refcount)) {
42771 ref->release(ref);
42772 item->object = NULL;
42773 }
42774 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
42775 index cbb4fc0..5c756cb9 100644
42776 --- a/drivers/gpu/drm/drm_info.c
42777 +++ b/drivers/gpu/drm/drm_info.c
42778 @@ -77,10 +77,13 @@ int drm_vm_info(struct seq_file *m, void *data)
42779 struct drm_local_map *map;
42780 struct drm_map_list *r_list;
42781
42782 - /* Hardcoded from _DRM_FRAME_BUFFER,
42783 - _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
42784 - _DRM_SCATTER_GATHER and _DRM_CONSISTENT */
42785 - const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
42786 + static const char * const types[] = {
42787 + [_DRM_FRAME_BUFFER] = "FB",
42788 + [_DRM_REGISTERS] = "REG",
42789 + [_DRM_SHM] = "SHM",
42790 + [_DRM_AGP] = "AGP",
42791 + [_DRM_SCATTER_GATHER] = "SG",
42792 + [_DRM_CONSISTENT] = "PCI"};
42793 const char *type;
42794 int i;
42795
42796 @@ -91,7 +94,7 @@ int drm_vm_info(struct seq_file *m, void *data)
42797 map = r_list->map;
42798 if (!map)
42799 continue;
42800 - if (map->type < 0 || map->type > 5)
42801 + if (map->type >= ARRAY_SIZE(types))
42802 type = "??";
42803 else
42804 type = types[map->type];
42805 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
42806 index ddfa601..be1def0 100644
42807 --- a/drivers/gpu/drm/drm_ioc32.c
42808 +++ b/drivers/gpu/drm/drm_ioc32.c
42809 @@ -458,7 +458,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
42810 request = compat_alloc_user_space(nbytes);
42811 if (!request)
42812 return -EFAULT;
42813 - list = (struct drm_buf_desc *) (request + 1);
42814 + list = (struct drm_buf_desc __user *) (request + 1);
42815
42816 if (__put_user(count, &request->count)
42817 || __put_user(list, &request->list))
42818 @@ -519,7 +519,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
42819 request = compat_alloc_user_space(nbytes);
42820 if (!request)
42821 return -EFAULT;
42822 - list = (struct drm_buf_pub *) (request + 1);
42823 + list = (struct drm_buf_pub __user *) (request + 1);
42824
42825 if (__put_user(count, &request->count)
42826 || __put_user(list, &request->list))
42827 @@ -1072,7 +1072,7 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
42828 return 0;
42829 }
42830
42831 -static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42832 +static drm_ioctl_compat_t drm_compat_ioctls[] = {
42833 [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
42834 [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique,
42835 [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap,
42836 @@ -1119,7 +1119,6 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42837 long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42838 {
42839 unsigned int nr = DRM_IOCTL_NR(cmd);
42840 - drm_ioctl_compat_t *fn;
42841 int ret;
42842
42843 /* Assume that ioctls without an explicit compat routine will just
42844 @@ -1129,10 +1128,8 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42845 if (nr >= ARRAY_SIZE(drm_compat_ioctls))
42846 return drm_ioctl(filp, cmd, arg);
42847
42848 - fn = drm_compat_ioctls[nr];
42849 -
42850 - if (fn != NULL)
42851 - ret = (*fn) (filp, cmd, arg);
42852 + if (drm_compat_ioctls[nr] != NULL)
42853 + ret = (*drm_compat_ioctls[nr]) (filp, cmd, arg);
42854 else
42855 ret = drm_ioctl(filp, cmd, arg);
42856
42857 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
42858 index d93e737..edb8a4a 100644
42859 --- a/drivers/gpu/drm/drm_ioctl.c
42860 +++ b/drivers/gpu/drm/drm_ioctl.c
42861 @@ -652,7 +652,7 @@ long drm_ioctl(struct file *filp,
42862 struct drm_file *file_priv = filp->private_data;
42863 struct drm_device *dev;
42864 const struct drm_ioctl_desc *ioctl = NULL;
42865 - drm_ioctl_t *func;
42866 + drm_ioctl_no_const_t func;
42867 unsigned int nr = DRM_IOCTL_NR(cmd);
42868 int retcode = -EINVAL;
42869 char stack_kdata[128];
42870 diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42871 index d4813e0..6c1ab4d 100644
42872 --- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42873 +++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42874 @@ -825,10 +825,16 @@ void mdfld_dsi_dpi_mode_set(struct drm_encoder *encoder,
42875 u32 pipeconf_reg = PIPEACONF;
42876 u32 dspcntr_reg = DSPACNTR;
42877
42878 - u32 pipeconf = dev_priv->pipeconf[pipe];
42879 - u32 dspcntr = dev_priv->dspcntr[pipe];
42880 + u32 pipeconf;
42881 + u32 dspcntr;
42882 u32 mipi = MIPI_PORT_EN | PASS_FROM_SPHY_TO_AFE | SEL_FLOPPED_HSTX;
42883
42884 + if (pipe == -1)
42885 + return;
42886 +
42887 + pipeconf = dev_priv->pipeconf[pipe];
42888 + dspcntr = dev_priv->dspcntr[pipe];
42889 +
42890 if (pipe) {
42891 pipeconf_reg = PIPECCONF;
42892 dspcntr_reg = DSPCCNTR;
42893 diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
42894 index 93ec5dc..82acbaf 100644
42895 --- a/drivers/gpu/drm/i810/i810_drv.h
42896 +++ b/drivers/gpu/drm/i810/i810_drv.h
42897 @@ -110,8 +110,8 @@ typedef struct drm_i810_private {
42898 int page_flipping;
42899
42900 wait_queue_head_t irq_queue;
42901 - atomic_t irq_received;
42902 - atomic_t irq_emitted;
42903 + atomic_unchecked_t irq_received;
42904 + atomic_unchecked_t irq_emitted;
42905
42906 int front_offset;
42907 } drm_i810_private_t;
42908 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
42909 index ab37d11..df030da 100644
42910 --- a/drivers/gpu/drm/i915/i915_dma.c
42911 +++ b/drivers/gpu/drm/i915/i915_dma.c
42912 @@ -383,7 +383,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
42913 * locking inversion with the driver load path. And the access here is
42914 * completely racy anyway. So don't bother with locking for now.
42915 */
42916 - return dev->open_count == 0;
42917 + return local_read(&dev->open_count) == 0;
42918 }
42919
42920 static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
42921 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42922 index a953d49..bf179e7 100644
42923 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42924 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42925 @@ -940,12 +940,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
42926 static int
42927 validate_exec_list(struct drm_device *dev,
42928 struct drm_i915_gem_exec_object2 *exec,
42929 - int count)
42930 + unsigned int count)
42931 {
42932 unsigned relocs_total = 0;
42933 unsigned relocs_max = UINT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
42934 unsigned invalid_flags;
42935 - int i;
42936 + unsigned int i;
42937
42938 invalid_flags = __EXEC_OBJECT_UNKNOWN_FLAGS;
42939 if (USES_FULL_PPGTT(dev))
42940 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
42941 index 96054a5..bdd1955 100644
42942 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
42943 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
42944 @@ -2408,8 +2408,8 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
42945
42946 static int gen8_gmch_probe(struct drm_device *dev,
42947 u64 *gtt_total,
42948 - size_t *stolen,
42949 - phys_addr_t *mappable_base,
42950 + u64 *stolen,
42951 + u64 *mappable_base,
42952 u64 *mappable_end)
42953 {
42954 struct drm_i915_private *dev_priv = dev->dev_private;
42955 @@ -2456,8 +2456,8 @@ static int gen8_gmch_probe(struct drm_device *dev,
42956
42957 static int gen6_gmch_probe(struct drm_device *dev,
42958 u64 *gtt_total,
42959 - size_t *stolen,
42960 - phys_addr_t *mappable_base,
42961 + u64 *stolen,
42962 + u64 *mappable_base,
42963 u64 *mappable_end)
42964 {
42965 struct drm_i915_private *dev_priv = dev->dev_private;
42966 @@ -2507,8 +2507,8 @@ static void gen6_gmch_remove(struct i915_address_space *vm)
42967
42968 static int i915_gmch_probe(struct drm_device *dev,
42969 u64 *gtt_total,
42970 - size_t *stolen,
42971 - phys_addr_t *mappable_base,
42972 + u64 *stolen,
42973 + u64 *mappable_base,
42974 u64 *mappable_end)
42975 {
42976 struct drm_i915_private *dev_priv = dev->dev_private;
42977 @@ -2576,8 +2576,8 @@ int i915_gem_gtt_init(struct drm_device *dev)
42978 /* GMADR is the PCI mmio aperture into the global GTT. */
42979 DRM_INFO("Memory usable by graphics device = %lluM\n",
42980 gtt->base.total >> 20);
42981 - DRM_DEBUG_DRIVER("GMADR size = %lldM\n", gtt->mappable_end >> 20);
42982 - DRM_DEBUG_DRIVER("GTT stolen size = %zdM\n", gtt->stolen_size >> 20);
42983 + DRM_DEBUG_DRIVER("GMADR size = %lluM\n", gtt->mappable_end >> 20);
42984 + DRM_DEBUG_DRIVER("GTT stolen size = %lluM\n", gtt->stolen_size >> 20);
42985 #ifdef CONFIG_INTEL_IOMMU
42986 if (intel_iommu_gfx_mapped)
42987 DRM_INFO("VT-d active for gfx access\n");
42988 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
42989 index e1cfa29..0092778 100644
42990 --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
42991 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
42992 @@ -317,10 +317,10 @@ struct i915_address_space {
42993 struct i915_gtt {
42994 struct i915_address_space base;
42995
42996 - size_t stolen_size; /* Total size of stolen memory */
42997 + u64 stolen_size; /* Total size of stolen memory */
42998 u64 mappable_end; /* End offset that we can CPU map */
42999 struct io_mapping *mappable; /* Mapping to our CPU mappable region */
43000 - phys_addr_t mappable_base; /* PA of our GMADR */
43001 + u64 mappable_base; /* PA of our GMADR */
43002
43003 /** "Graphics Stolen Memory" holds the global PTEs */
43004 void __iomem *gsm;
43005 @@ -331,7 +331,7 @@ struct i915_gtt {
43006
43007 /* global gtt ops */
43008 int (*gtt_probe)(struct drm_device *dev, u64 *gtt_total,
43009 - size_t *stolen, phys_addr_t *mappable_base,
43010 + u64 *stolen, u64 *mappable_base,
43011 u64 *mappable_end);
43012 };
43013
43014 diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
43015 index 97f3a56..32c712e 100644
43016 --- a/drivers/gpu/drm/i915/i915_ioc32.c
43017 +++ b/drivers/gpu/drm/i915/i915_ioc32.c
43018 @@ -65,7 +65,7 @@ static int compat_i915_getparam(struct file *file, unsigned int cmd,
43019 (unsigned long)request);
43020 }
43021
43022 -static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43023 +static drm_ioctl_compat_t i915_compat_ioctls[] = {
43024 [DRM_I915_GETPARAM] = compat_i915_getparam,
43025 };
43026
43027 @@ -81,17 +81,13 @@ static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43028 long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43029 {
43030 unsigned int nr = DRM_IOCTL_NR(cmd);
43031 - drm_ioctl_compat_t *fn = NULL;
43032 int ret;
43033
43034 if (nr < DRM_COMMAND_BASE || nr >= DRM_COMMAND_END)
43035 return drm_compat_ioctl(filp, cmd, arg);
43036
43037 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls))
43038 - fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE];
43039 -
43040 - if (fn != NULL)
43041 - ret = (*fn) (filp, cmd, arg);
43042 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls) && i915_compat_ioctls[nr - DRM_COMMAND_BASE])
43043 + ret = (*i915_compat_ioctls[nr - DRM_COMMAND_BASE])(filp, cmd, arg);
43044 else
43045 ret = drm_ioctl(filp, cmd, arg);
43046
43047 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
43048 index b2270d5..e5c48fe 100644
43049 --- a/drivers/gpu/drm/i915/intel_display.c
43050 +++ b/drivers/gpu/drm/i915/intel_display.c
43051 @@ -14594,13 +14594,13 @@ struct intel_quirk {
43052 int subsystem_vendor;
43053 int subsystem_device;
43054 void (*hook)(struct drm_device *dev);
43055 -};
43056 +} __do_const;
43057
43058 /* For systems that don't have a meaningful PCI subdevice/subvendor ID */
43059 struct intel_dmi_quirk {
43060 void (*hook)(struct drm_device *dev);
43061 const struct dmi_system_id (*dmi_id_list)[];
43062 -};
43063 +} __do_const;
43064
43065 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43066 {
43067 @@ -14608,18 +14608,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43068 return 1;
43069 }
43070
43071 -static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43072 +static const struct dmi_system_id intel_dmi_quirks_table[] = {
43073 {
43074 - .dmi_id_list = &(const struct dmi_system_id[]) {
43075 - {
43076 - .callback = intel_dmi_reverse_brightness,
43077 - .ident = "NCR Corporation",
43078 - .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43079 - DMI_MATCH(DMI_PRODUCT_NAME, ""),
43080 - },
43081 - },
43082 - { } /* terminating entry */
43083 + .callback = intel_dmi_reverse_brightness,
43084 + .ident = "NCR Corporation",
43085 + .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43086 + DMI_MATCH(DMI_PRODUCT_NAME, ""),
43087 },
43088 + },
43089 + { } /* terminating entry */
43090 +};
43091 +
43092 +static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43093 + {
43094 + .dmi_id_list = &intel_dmi_quirks_table,
43095 .hook = quirk_invert_brightness,
43096 },
43097 };
43098 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
43099 index 74f505b..21f6914 100644
43100 --- a/drivers/gpu/drm/imx/imx-drm-core.c
43101 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
43102 @@ -355,7 +355,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
43103 if (imxdrm->pipes >= MAX_CRTC)
43104 return -EINVAL;
43105
43106 - if (imxdrm->drm->open_count)
43107 + if (local_read(&imxdrm->drm->open_count))
43108 return -EBUSY;
43109
43110 imx_drm_crtc = kzalloc(sizeof(*imx_drm_crtc), GFP_KERNEL);
43111 diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
43112 index b4a20149..219ab78 100644
43113 --- a/drivers/gpu/drm/mga/mga_drv.h
43114 +++ b/drivers/gpu/drm/mga/mga_drv.h
43115 @@ -122,9 +122,9 @@ typedef struct drm_mga_private {
43116 u32 clear_cmd;
43117 u32 maccess;
43118
43119 - atomic_t vbl_received; /**< Number of vblanks received. */
43120 + atomic_unchecked_t vbl_received; /**< Number of vblanks received. */
43121 wait_queue_head_t fence_queue;
43122 - atomic_t last_fence_retired;
43123 + atomic_unchecked_t last_fence_retired;
43124 u32 next_fence_to_post;
43125
43126 unsigned int fb_cpp;
43127 diff --git a/drivers/gpu/drm/mga/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c
43128 index 729bfd5..14bae78 100644
43129 --- a/drivers/gpu/drm/mga/mga_ioc32.c
43130 +++ b/drivers/gpu/drm/mga/mga_ioc32.c
43131 @@ -190,7 +190,7 @@ static int compat_mga_dma_bootstrap(struct file *file, unsigned int cmd,
43132 return 0;
43133 }
43134
43135 -drm_ioctl_compat_t *mga_compat_ioctls[] = {
43136 +drm_ioctl_compat_t mga_compat_ioctls[] = {
43137 [DRM_MGA_INIT] = compat_mga_init,
43138 [DRM_MGA_GETPARAM] = compat_mga_getparam,
43139 [DRM_MGA_DMA_BOOTSTRAP] = compat_mga_dma_bootstrap,
43140 @@ -208,17 +208,13 @@ drm_ioctl_compat_t *mga_compat_ioctls[] = {
43141 long mga_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43142 {
43143 unsigned int nr = DRM_IOCTL_NR(cmd);
43144 - drm_ioctl_compat_t *fn = NULL;
43145 int ret;
43146
43147 if (nr < DRM_COMMAND_BASE)
43148 return drm_compat_ioctl(filp, cmd, arg);
43149
43150 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls))
43151 - fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE];
43152 -
43153 - if (fn != NULL)
43154 - ret = (*fn) (filp, cmd, arg);
43155 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls) && mga_compat_ioctls[nr - DRM_COMMAND_BASE])
43156 + ret = (*mga_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43157 else
43158 ret = drm_ioctl(filp, cmd, arg);
43159
43160 diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
43161 index 1b071b8..de8601a 100644
43162 --- a/drivers/gpu/drm/mga/mga_irq.c
43163 +++ b/drivers/gpu/drm/mga/mga_irq.c
43164 @@ -43,7 +43,7 @@ u32 mga_get_vblank_counter(struct drm_device *dev, int crtc)
43165 if (crtc != 0)
43166 return 0;
43167
43168 - return atomic_read(&dev_priv->vbl_received);
43169 + return atomic_read_unchecked(&dev_priv->vbl_received);
43170 }
43171
43172
43173 @@ -59,7 +59,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43174 /* VBLANK interrupt */
43175 if (status & MGA_VLINEPEN) {
43176 MGA_WRITE(MGA_ICLEAR, MGA_VLINEICLR);
43177 - atomic_inc(&dev_priv->vbl_received);
43178 + atomic_inc_unchecked(&dev_priv->vbl_received);
43179 drm_handle_vblank(dev, 0);
43180 handled = 1;
43181 }
43182 @@ -78,7 +78,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43183 if ((prim_start & ~0x03) != (prim_end & ~0x03))
43184 MGA_WRITE(MGA_PRIMEND, prim_end);
43185
43186 - atomic_inc(&dev_priv->last_fence_retired);
43187 + atomic_inc_unchecked(&dev_priv->last_fence_retired);
43188 wake_up(&dev_priv->fence_queue);
43189 handled = 1;
43190 }
43191 @@ -129,7 +129,7 @@ int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence)
43192 * using fences.
43193 */
43194 DRM_WAIT_ON(ret, dev_priv->fence_queue, 3 * HZ,
43195 - (((cur_fence = atomic_read(&dev_priv->last_fence_retired))
43196 + (((cur_fence = atomic_read_unchecked(&dev_priv->last_fence_retired))
43197 - *sequence) <= (1 << 23)));
43198
43199 *sequence = cur_fence;
43200 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
43201 index 4dca65a..3486961 100644
43202 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
43203 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
43204 @@ -964,7 +964,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
43205 struct bit_table {
43206 const char id;
43207 int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
43208 -};
43209 +} __no_const;
43210
43211 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
43212
43213 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
43214 index 3c902c2..1b2d658 100644
43215 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
43216 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
43217 @@ -125,7 +125,6 @@ struct nouveau_drm {
43218 struct drm_global_reference mem_global_ref;
43219 struct ttm_bo_global_ref bo_global_ref;
43220 struct ttm_bo_device bdev;
43221 - atomic_t validate_sequence;
43222 int (*move)(struct nouveau_channel *,
43223 struct ttm_buffer_object *,
43224 struct ttm_mem_reg *, struct ttm_mem_reg *);
43225 diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43226 index 462679a..88e32a7 100644
43227 --- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43228 +++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43229 @@ -50,7 +50,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
43230 unsigned long arg)
43231 {
43232 unsigned int nr = DRM_IOCTL_NR(cmd);
43233 - drm_ioctl_compat_t *fn = NULL;
43234 + drm_ioctl_compat_t fn = NULL;
43235 int ret;
43236
43237 if (nr < DRM_COMMAND_BASE)
43238 diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43239 index 3f0fb55..ad5fa4a 100644
43240 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
43241 +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43242 @@ -104,10 +104,10 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
43243 }
43244
43245 const struct ttm_mem_type_manager_func nouveau_vram_manager = {
43246 - nouveau_vram_manager_init,
43247 - nouveau_vram_manager_fini,
43248 - nouveau_vram_manager_new,
43249 - nouveau_vram_manager_del,
43250 + .init = nouveau_vram_manager_init,
43251 + .takedown = nouveau_vram_manager_fini,
43252 + .get_node = nouveau_vram_manager_new,
43253 + .put_node = nouveau_vram_manager_del,
43254 };
43255
43256 static int
43257 @@ -180,11 +180,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43258 }
43259
43260 const struct ttm_mem_type_manager_func nouveau_gart_manager = {
43261 - nouveau_gart_manager_init,
43262 - nouveau_gart_manager_fini,
43263 - nouveau_gart_manager_new,
43264 - nouveau_gart_manager_del,
43265 - nouveau_gart_manager_debug
43266 + .init = nouveau_gart_manager_init,
43267 + .takedown = nouveau_gart_manager_fini,
43268 + .get_node = nouveau_gart_manager_new,
43269 + .put_node = nouveau_gart_manager_del,
43270 + .debug = nouveau_gart_manager_debug
43271 };
43272
43273 /*XXX*/
43274 @@ -253,11 +253,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43275 }
43276
43277 const struct ttm_mem_type_manager_func nv04_gart_manager = {
43278 - nv04_gart_manager_init,
43279 - nv04_gart_manager_fini,
43280 - nv04_gart_manager_new,
43281 - nv04_gart_manager_del,
43282 - nv04_gart_manager_debug
43283 + .init = nv04_gart_manager_init,
43284 + .takedown = nv04_gart_manager_fini,
43285 + .get_node = nv04_gart_manager_new,
43286 + .put_node = nv04_gart_manager_del,
43287 + .debug = nv04_gart_manager_debug
43288 };
43289
43290 int
43291 diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
43292 index af89c36..83ef136 100644
43293 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c
43294 +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
43295 @@ -73,7 +73,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
43296 * locking inversion with the driver load path. And the access here is
43297 * completely racy anyway. So don't bother with locking for now.
43298 */
43299 - return dev->open_count == 0;
43300 + return local_read(&dev->open_count) == 0;
43301 }
43302
43303 static const struct vga_switcheroo_client_ops
43304 diff --git a/drivers/gpu/drm/omapdrm/Makefile b/drivers/gpu/drm/omapdrm/Makefile
43305 index 778372b..4b81cb4 100644
43306 --- a/drivers/gpu/drm/omapdrm/Makefile
43307 +++ b/drivers/gpu/drm/omapdrm/Makefile
43308 @@ -3,7 +3,7 @@
43309 # Direct Rendering Infrastructure (DRI)
43310 #
43311
43312 -ccflags-y := -Iinclude/drm -Werror
43313 +ccflags-y := -Iinclude/drm
43314 omapdrm-y := omap_drv.o \
43315 omap_irq.o \
43316 omap_debugfs.o \
43317 diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
43318 index fdc1833..f307630 100644
43319 --- a/drivers/gpu/drm/qxl/qxl_cmd.c
43320 +++ b/drivers/gpu/drm/qxl/qxl_cmd.c
43321 @@ -285,27 +285,27 @@ static int wait_for_io_cmd_user(struct qxl_device *qdev, uint8_t val, long port,
43322 int ret;
43323
43324 mutex_lock(&qdev->async_io_mutex);
43325 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43326 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43327 if (qdev->last_sent_io_cmd > irq_num) {
43328 if (intr)
43329 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43330 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43331 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43332 else
43333 ret = wait_event_timeout(qdev->io_cmd_event,
43334 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43335 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43336 /* 0 is timeout, just bail the "hw" has gone away */
43337 if (ret <= 0)
43338 goto out;
43339 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43340 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43341 }
43342 outb(val, addr);
43343 qdev->last_sent_io_cmd = irq_num + 1;
43344 if (intr)
43345 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43346 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43347 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43348 else
43349 ret = wait_event_timeout(qdev->io_cmd_event,
43350 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43351 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43352 out:
43353 if (ret > 0)
43354 ret = 0;
43355 diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c
43356 index 6911b8c..89d6867 100644
43357 --- a/drivers/gpu/drm/qxl/qxl_debugfs.c
43358 +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
43359 @@ -42,10 +42,10 @@ qxl_debugfs_irq_received(struct seq_file *m, void *data)
43360 struct drm_info_node *node = (struct drm_info_node *) m->private;
43361 struct qxl_device *qdev = node->minor->dev->dev_private;
43362
43363 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received));
43364 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_display));
43365 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_cursor));
43366 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_io_cmd));
43367 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received));
43368 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_display));
43369 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_cursor));
43370 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_io_cmd));
43371 seq_printf(m, "%d\n", qdev->irq_received_error);
43372 return 0;
43373 }
43374 diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
43375 index 01a8694..584fb48 100644
43376 --- a/drivers/gpu/drm/qxl/qxl_drv.h
43377 +++ b/drivers/gpu/drm/qxl/qxl_drv.h
43378 @@ -290,10 +290,10 @@ struct qxl_device {
43379 unsigned int last_sent_io_cmd;
43380
43381 /* interrupt handling */
43382 - atomic_t irq_received;
43383 - atomic_t irq_received_display;
43384 - atomic_t irq_received_cursor;
43385 - atomic_t irq_received_io_cmd;
43386 + atomic_unchecked_t irq_received;
43387 + atomic_unchecked_t irq_received_display;
43388 + atomic_unchecked_t irq_received_cursor;
43389 + atomic_unchecked_t irq_received_io_cmd;
43390 unsigned irq_received_error;
43391 wait_queue_head_t display_event;
43392 wait_queue_head_t cursor_event;
43393 diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
43394 index bda5c5f..140ac46 100644
43395 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c
43396 +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
43397 @@ -183,7 +183,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43398
43399 /* TODO copy slow path code from i915 */
43400 fb_cmd = qxl_bo_kmap_atomic_page(qdev, cmd_bo, (release->release_offset & PAGE_SIZE));
43401 - 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);
43402 + 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);
43403
43404 {
43405 struct qxl_drawable *draw = fb_cmd;
43406 @@ -203,7 +203,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43407 struct drm_qxl_reloc reloc;
43408
43409 if (copy_from_user(&reloc,
43410 - &((struct drm_qxl_reloc *)(uintptr_t)cmd->relocs)[i],
43411 + &((struct drm_qxl_reloc __force_user *)(uintptr_t)cmd->relocs)[i],
43412 sizeof(reloc))) {
43413 ret = -EFAULT;
43414 goto out_free_bos;
43415 @@ -282,10 +282,10 @@ static int qxl_execbuffer_ioctl(struct drm_device *dev, void *data,
43416
43417 for (cmd_num = 0; cmd_num < execbuffer->commands_num; ++cmd_num) {
43418
43419 - struct drm_qxl_command *commands =
43420 - (struct drm_qxl_command *)(uintptr_t)execbuffer->commands;
43421 + struct drm_qxl_command __user *commands =
43422 + (struct drm_qxl_command __user *)(uintptr_t)execbuffer->commands;
43423
43424 - if (copy_from_user(&user_cmd, &commands[cmd_num],
43425 + if (copy_from_user(&user_cmd, (struct drm_qxl_command __force_user *)&commands[cmd_num],
43426 sizeof(user_cmd)))
43427 return -EFAULT;
43428
43429 diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
43430 index 0bf1e20..42a7310 100644
43431 --- a/drivers/gpu/drm/qxl/qxl_irq.c
43432 +++ b/drivers/gpu/drm/qxl/qxl_irq.c
43433 @@ -36,19 +36,19 @@ irqreturn_t qxl_irq_handler(int irq, void *arg)
43434 if (!pending)
43435 return IRQ_NONE;
43436
43437 - atomic_inc(&qdev->irq_received);
43438 + atomic_inc_unchecked(&qdev->irq_received);
43439
43440 if (pending & QXL_INTERRUPT_DISPLAY) {
43441 - atomic_inc(&qdev->irq_received_display);
43442 + atomic_inc_unchecked(&qdev->irq_received_display);
43443 wake_up_all(&qdev->display_event);
43444 qxl_queue_garbage_collect(qdev, false);
43445 }
43446 if (pending & QXL_INTERRUPT_CURSOR) {
43447 - atomic_inc(&qdev->irq_received_cursor);
43448 + atomic_inc_unchecked(&qdev->irq_received_cursor);
43449 wake_up_all(&qdev->cursor_event);
43450 }
43451 if (pending & QXL_INTERRUPT_IO_CMD) {
43452 - atomic_inc(&qdev->irq_received_io_cmd);
43453 + atomic_inc_unchecked(&qdev->irq_received_io_cmd);
43454 wake_up_all(&qdev->io_cmd_event);
43455 }
43456 if (pending & QXL_INTERRUPT_ERROR) {
43457 @@ -85,10 +85,10 @@ int qxl_irq_init(struct qxl_device *qdev)
43458 init_waitqueue_head(&qdev->io_cmd_event);
43459 INIT_WORK(&qdev->client_monitors_config_work,
43460 qxl_client_monitors_config_work_func);
43461 - atomic_set(&qdev->irq_received, 0);
43462 - atomic_set(&qdev->irq_received_display, 0);
43463 - atomic_set(&qdev->irq_received_cursor, 0);
43464 - atomic_set(&qdev->irq_received_io_cmd, 0);
43465 + atomic_set_unchecked(&qdev->irq_received, 0);
43466 + atomic_set_unchecked(&qdev->irq_received_display, 0);
43467 + atomic_set_unchecked(&qdev->irq_received_cursor, 0);
43468 + atomic_set_unchecked(&qdev->irq_received_io_cmd, 0);
43469 qdev->irq_received_error = 0;
43470 ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);
43471 qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
43472 diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
43473 index 0cbc4c9..0e46686 100644
43474 --- a/drivers/gpu/drm/qxl/qxl_ttm.c
43475 +++ b/drivers/gpu/drm/qxl/qxl_ttm.c
43476 @@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
43477 }
43478 }
43479
43480 -static struct vm_operations_struct qxl_ttm_vm_ops;
43481 +static vm_operations_struct_no_const qxl_ttm_vm_ops __read_only;
43482 static const struct vm_operations_struct *ttm_vm_ops;
43483
43484 static int qxl_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43485 @@ -145,8 +145,10 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
43486 return r;
43487 if (unlikely(ttm_vm_ops == NULL)) {
43488 ttm_vm_ops = vma->vm_ops;
43489 + pax_open_kernel();
43490 qxl_ttm_vm_ops = *ttm_vm_ops;
43491 qxl_ttm_vm_ops.fault = &qxl_ttm_fault;
43492 + pax_close_kernel();
43493 }
43494 vma->vm_ops = &qxl_ttm_vm_ops;
43495 return 0;
43496 @@ -464,25 +466,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
43497 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
43498 {
43499 #if defined(CONFIG_DEBUG_FS)
43500 - static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES];
43501 - static char qxl_mem_types_names[QXL_DEBUGFS_MEM_TYPES][32];
43502 - unsigned i;
43503 + static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES] = {
43504 + {
43505 + .name = "qxl_mem_mm",
43506 + .show = &qxl_mm_dump_table,
43507 + },
43508 + {
43509 + .name = "qxl_surf_mm",
43510 + .show = &qxl_mm_dump_table,
43511 + }
43512 + };
43513
43514 - for (i = 0; i < QXL_DEBUGFS_MEM_TYPES; i++) {
43515 - if (i == 0)
43516 - sprintf(qxl_mem_types_names[i], "qxl_mem_mm");
43517 - else
43518 - sprintf(qxl_mem_types_names[i], "qxl_surf_mm");
43519 - qxl_mem_types_list[i].name = qxl_mem_types_names[i];
43520 - qxl_mem_types_list[i].show = &qxl_mm_dump_table;
43521 - qxl_mem_types_list[i].driver_features = 0;
43522 - if (i == 0)
43523 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43524 - else
43525 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43526 + pax_open_kernel();
43527 + *(void **)&qxl_mem_types_list[0].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43528 + *(void **)&qxl_mem_types_list[1].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43529 + pax_close_kernel();
43530
43531 - }
43532 - return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
43533 + return qxl_debugfs_add_files(qdev, qxl_mem_types_list, QXL_DEBUGFS_MEM_TYPES);
43534 #else
43535 return 0;
43536 #endif
43537 diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
43538 index 2c45ac9..5d740f8 100644
43539 --- a/drivers/gpu/drm/r128/r128_cce.c
43540 +++ b/drivers/gpu/drm/r128/r128_cce.c
43541 @@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
43542
43543 /* GH: Simple idle check.
43544 */
43545 - atomic_set(&dev_priv->idle_count, 0);
43546 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43547
43548 /* We don't support anything other than bus-mastering ring mode,
43549 * but the ring can be in either AGP or PCI space for the ring
43550 diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
43551 index 723e5d6..102dbaf 100644
43552 --- a/drivers/gpu/drm/r128/r128_drv.h
43553 +++ b/drivers/gpu/drm/r128/r128_drv.h
43554 @@ -93,14 +93,14 @@ typedef struct drm_r128_private {
43555 int is_pci;
43556 unsigned long cce_buffers_offset;
43557
43558 - atomic_t idle_count;
43559 + atomic_unchecked_t idle_count;
43560
43561 int page_flipping;
43562 int current_page;
43563 u32 crtc_offset;
43564 u32 crtc_offset_cntl;
43565
43566 - atomic_t vbl_received;
43567 + atomic_unchecked_t vbl_received;
43568
43569 u32 color_fmt;
43570 unsigned int front_offset;
43571 diff --git a/drivers/gpu/drm/r128/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c
43572 index 663f38c..ec159a1 100644
43573 --- a/drivers/gpu/drm/r128/r128_ioc32.c
43574 +++ b/drivers/gpu/drm/r128/r128_ioc32.c
43575 @@ -178,7 +178,7 @@ static int compat_r128_getparam(struct file *file, unsigned int cmd,
43576 return drm_ioctl(file, DRM_IOCTL_R128_GETPARAM, (unsigned long)getparam);
43577 }
43578
43579 -drm_ioctl_compat_t *r128_compat_ioctls[] = {
43580 +drm_ioctl_compat_t r128_compat_ioctls[] = {
43581 [DRM_R128_INIT] = compat_r128_init,
43582 [DRM_R128_DEPTH] = compat_r128_depth,
43583 [DRM_R128_STIPPLE] = compat_r128_stipple,
43584 @@ -197,17 +197,13 @@ drm_ioctl_compat_t *r128_compat_ioctls[] = {
43585 long r128_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43586 {
43587 unsigned int nr = DRM_IOCTL_NR(cmd);
43588 - drm_ioctl_compat_t *fn = NULL;
43589 int ret;
43590
43591 if (nr < DRM_COMMAND_BASE)
43592 return drm_compat_ioctl(filp, cmd, arg);
43593
43594 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls))
43595 - fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE];
43596 -
43597 - if (fn != NULL)
43598 - ret = (*fn) (filp, cmd, arg);
43599 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls) && r128_compat_ioctls[nr - DRM_COMMAND_BASE])
43600 + ret = (*r128_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43601 else
43602 ret = drm_ioctl(filp, cmd, arg);
43603
43604 diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
43605 index c2ae496..30b5993 100644
43606 --- a/drivers/gpu/drm/r128/r128_irq.c
43607 +++ b/drivers/gpu/drm/r128/r128_irq.c
43608 @@ -41,7 +41,7 @@ u32 r128_get_vblank_counter(struct drm_device *dev, int crtc)
43609 if (crtc != 0)
43610 return 0;
43611
43612 - return atomic_read(&dev_priv->vbl_received);
43613 + return atomic_read_unchecked(&dev_priv->vbl_received);
43614 }
43615
43616 irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43617 @@ -55,7 +55,7 @@ irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43618 /* VBLANK interrupt */
43619 if (status & R128_CRTC_VBLANK_INT) {
43620 R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK);
43621 - atomic_inc(&dev_priv->vbl_received);
43622 + atomic_inc_unchecked(&dev_priv->vbl_received);
43623 drm_handle_vblank(dev, 0);
43624 return IRQ_HANDLED;
43625 }
43626 diff --git a/drivers/gpu/drm/r128/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
43627 index 8fd2d9f..18c9660 100644
43628 --- a/drivers/gpu/drm/r128/r128_state.c
43629 +++ b/drivers/gpu/drm/r128/r128_state.c
43630 @@ -320,10 +320,10 @@ static void r128_clear_box(drm_r128_private_t *dev_priv,
43631
43632 static void r128_cce_performance_boxes(drm_r128_private_t *dev_priv)
43633 {
43634 - if (atomic_read(&dev_priv->idle_count) == 0)
43635 + if (atomic_read_unchecked(&dev_priv->idle_count) == 0)
43636 r128_clear_box(dev_priv, 64, 4, 8, 8, 0, 255, 0);
43637 else
43638 - atomic_set(&dev_priv->idle_count, 0);
43639 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43640 }
43641
43642 #endif
43643 diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c
43644 index b928c17..e5d9400 100644
43645 --- a/drivers/gpu/drm/radeon/mkregtable.c
43646 +++ b/drivers/gpu/drm/radeon/mkregtable.c
43647 @@ -624,14 +624,14 @@ static int parser_auth(struct table *t, const char *filename)
43648 regex_t mask_rex;
43649 regmatch_t match[4];
43650 char buf[1024];
43651 - size_t end;
43652 + long end;
43653 int len;
43654 int done = 0;
43655 int r;
43656 unsigned o;
43657 struct offset *offset;
43658 char last_reg_s[10];
43659 - int last_reg;
43660 + unsigned long last_reg;
43661
43662 if (regcomp
43663 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
43664 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
43665 index f3f562f..0c099bb 100644
43666 --- a/drivers/gpu/drm/radeon/radeon_device.c
43667 +++ b/drivers/gpu/drm/radeon/radeon_device.c
43668 @@ -1253,7 +1253,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
43669 * locking inversion with the driver load path. And the access here is
43670 * completely racy anyway. So don't bother with locking for now.
43671 */
43672 - return dev->open_count == 0;
43673 + return local_read(&dev->open_count) == 0;
43674 }
43675
43676 static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
43677 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
43678 index 46bd393..6ae4719 100644
43679 --- a/drivers/gpu/drm/radeon/radeon_drv.h
43680 +++ b/drivers/gpu/drm/radeon/radeon_drv.h
43681 @@ -264,7 +264,7 @@ typedef struct drm_radeon_private {
43682
43683 /* SW interrupt */
43684 wait_queue_head_t swi_queue;
43685 - atomic_t swi_emitted;
43686 + atomic_unchecked_t swi_emitted;
43687 int vblank_crtc;
43688 uint32_t irq_enable_reg;
43689 uint32_t r500_disp_irq_reg;
43690 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
43691 index 0b98ea1..a3c770f 100644
43692 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
43693 +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c
43694 @@ -358,7 +358,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43695 request = compat_alloc_user_space(sizeof(*request));
43696 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
43697 || __put_user(req32.param, &request->param)
43698 - || __put_user((void __user *)(unsigned long)req32.value,
43699 + || __put_user((unsigned long)req32.value,
43700 &request->value))
43701 return -EFAULT;
43702
43703 @@ -368,7 +368,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43704 #define compat_radeon_cp_setparam NULL
43705 #endif /* X86_64 || IA64 */
43706
43707 -static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43708 +static drm_ioctl_compat_t radeon_compat_ioctls[] = {
43709 [DRM_RADEON_CP_INIT] = compat_radeon_cp_init,
43710 [DRM_RADEON_CLEAR] = compat_radeon_cp_clear,
43711 [DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple,
43712 @@ -393,17 +393,13 @@ static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43713 long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43714 {
43715 unsigned int nr = DRM_IOCTL_NR(cmd);
43716 - drm_ioctl_compat_t *fn = NULL;
43717 int ret;
43718
43719 if (nr < DRM_COMMAND_BASE)
43720 return drm_compat_ioctl(filp, cmd, arg);
43721
43722 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls))
43723 - fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE];
43724 -
43725 - if (fn != NULL)
43726 - ret = (*fn) (filp, cmd, arg);
43727 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls) && radeon_compat_ioctls[nr - DRM_COMMAND_BASE])
43728 + ret = (*radeon_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43729 else
43730 ret = drm_ioctl(filp, cmd, arg);
43731
43732 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
43733 index 244b19b..c19226d 100644
43734 --- a/drivers/gpu/drm/radeon/radeon_irq.c
43735 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
43736 @@ -226,8 +226,8 @@ static int radeon_emit_irq(struct drm_device * dev)
43737 unsigned int ret;
43738 RING_LOCALS;
43739
43740 - atomic_inc(&dev_priv->swi_emitted);
43741 - ret = atomic_read(&dev_priv->swi_emitted);
43742 + atomic_inc_unchecked(&dev_priv->swi_emitted);
43743 + ret = atomic_read_unchecked(&dev_priv->swi_emitted);
43744
43745 BEGIN_RING(4);
43746 OUT_RING_REG(RADEON_LAST_SWI_REG, ret);
43747 @@ -353,7 +353,7 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
43748 drm_radeon_private_t *dev_priv =
43749 (drm_radeon_private_t *) dev->dev_private;
43750
43751 - atomic_set(&dev_priv->swi_emitted, 0);
43752 + atomic_set_unchecked(&dev_priv->swi_emitted, 0);
43753 init_waitqueue_head(&dev_priv->swi_queue);
43754
43755 dev->max_vblank_count = 0x001fffff;
43756 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
43757 index 15aee72..cda326e 100644
43758 --- a/drivers/gpu/drm/radeon/radeon_state.c
43759 +++ b/drivers/gpu/drm/radeon/radeon_state.c
43760 @@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_device *dev, void *data, struct drm_file *
43761 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
43762 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
43763
43764 - if (copy_from_user(&depth_boxes, clear->depth_boxes,
43765 + if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS || copy_from_user(&depth_boxes, clear->depth_boxes,
43766 sarea_priv->nbox * sizeof(depth_boxes[0])))
43767 return -EFAULT;
43768
43769 @@ -3031,7 +3031,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
43770 {
43771 drm_radeon_private_t *dev_priv = dev->dev_private;
43772 drm_radeon_getparam_t *param = data;
43773 - int value;
43774 + int value = 0;
43775
43776 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
43777
43778 diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
43779 index 06ac59fe..57e0681 100644
43780 --- a/drivers/gpu/drm/radeon/radeon_ttm.c
43781 +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
43782 @@ -961,7 +961,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
43783 man->size = size >> PAGE_SHIFT;
43784 }
43785
43786 -static struct vm_operations_struct radeon_ttm_vm_ops;
43787 +static vm_operations_struct_no_const radeon_ttm_vm_ops __read_only;
43788 static const struct vm_operations_struct *ttm_vm_ops = NULL;
43789
43790 static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43791 @@ -1002,8 +1002,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
43792 }
43793 if (unlikely(ttm_vm_ops == NULL)) {
43794 ttm_vm_ops = vma->vm_ops;
43795 + pax_open_kernel();
43796 radeon_ttm_vm_ops = *ttm_vm_ops;
43797 radeon_ttm_vm_ops.fault = &radeon_ttm_fault;
43798 + pax_close_kernel();
43799 }
43800 vma->vm_ops = &radeon_ttm_vm_ops;
43801 return 0;
43802 diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
43803 index ddefb85..9011500 100644
43804 --- a/drivers/gpu/drm/tegra/dc.c
43805 +++ b/drivers/gpu/drm/tegra/dc.c
43806 @@ -1656,7 +1656,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
43807 }
43808
43809 for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
43810 - dc->debugfs_files[i].data = dc;
43811 + *(void **)&dc->debugfs_files[i].data = dc;
43812
43813 err = drm_debugfs_create_files(dc->debugfs_files,
43814 ARRAY_SIZE(debugfs_files),
43815 diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
43816 index f0a138e..a390c07 100644
43817 --- a/drivers/gpu/drm/tegra/dsi.c
43818 +++ b/drivers/gpu/drm/tegra/dsi.c
43819 @@ -62,7 +62,7 @@ struct tegra_dsi {
43820 struct clk *clk_lp;
43821 struct clk *clk;
43822
43823 - struct drm_info_list *debugfs_files;
43824 + drm_info_list_no_const *debugfs_files;
43825 struct drm_minor *minor;
43826 struct dentry *debugfs;
43827
43828 diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
43829 index 52b32cb..a8b2d5b 100644
43830 --- a/drivers/gpu/drm/tegra/hdmi.c
43831 +++ b/drivers/gpu/drm/tegra/hdmi.c
43832 @@ -64,7 +64,7 @@ struct tegra_hdmi {
43833 bool stereo;
43834 bool dvi;
43835
43836 - struct drm_info_list *debugfs_files;
43837 + drm_info_list_no_const *debugfs_files;
43838 struct drm_minor *minor;
43839 struct dentry *debugfs;
43840 };
43841 diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
43842 index da1715e..f6fee95 100644
43843 --- a/drivers/gpu/drm/tegra/sor.c
43844 +++ b/drivers/gpu/drm/tegra/sor.c
43845 @@ -1003,8 +1003,11 @@ static int tegra_sor_debugfs_init(struct tegra_sor *sor,
43846 goto remove;
43847 }
43848
43849 - for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
43850 - sor->debugfs_files[i].data = sor;
43851 + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) {
43852 + pax_open_kernel();
43853 + *(void **)&sor->debugfs_files[i].data = sor;
43854 + pax_close_kernel();
43855 + }
43856
43857 err = drm_debugfs_create_files(sor->debugfs_files,
43858 ARRAY_SIZE(debugfs_files),
43859 diff --git a/drivers/gpu/drm/tilcdc/Makefile b/drivers/gpu/drm/tilcdc/Makefile
43860 index deeca48..54e1b6c 100644
43861 --- a/drivers/gpu/drm/tilcdc/Makefile
43862 +++ b/drivers/gpu/drm/tilcdc/Makefile
43863 @@ -1,7 +1,7 @@
43864 ccflags-y := -Iinclude/drm
43865 -ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
43866 - ccflags-y += -Werror
43867 -endif
43868 +#ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
43869 +# ccflags-y += -Werror
43870 +#endif
43871
43872 obj-$(CONFIG_DRM_TILCDC_SLAVE_COMPAT) += tilcdc_slave_compat.o \
43873 tilcdc_slave_compat.dtb.o
43874 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
43875 index aa0bd054..aea6a01 100644
43876 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
43877 +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
43878 @@ -148,10 +148,10 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
43879 }
43880
43881 const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
43882 - ttm_bo_man_init,
43883 - ttm_bo_man_takedown,
43884 - ttm_bo_man_get_node,
43885 - ttm_bo_man_put_node,
43886 - ttm_bo_man_debug
43887 + .init = ttm_bo_man_init,
43888 + .takedown = ttm_bo_man_takedown,
43889 + .get_node = ttm_bo_man_get_node,
43890 + .put_node = ttm_bo_man_put_node,
43891 + .debug = ttm_bo_man_debug
43892 };
43893 EXPORT_SYMBOL(ttm_bo_manager_func);
43894 diff --git a/drivers/gpu/drm/ttm/ttm_memory.c b/drivers/gpu/drm/ttm/ttm_memory.c
43895 index a1803fb..c53f6b0 100644
43896 --- a/drivers/gpu/drm/ttm/ttm_memory.c
43897 +++ b/drivers/gpu/drm/ttm/ttm_memory.c
43898 @@ -264,7 +264,7 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
43899 zone->glob = glob;
43900 glob->zone_kernel = zone;
43901 ret = kobject_init_and_add(
43902 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
43903 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
43904 if (unlikely(ret != 0)) {
43905 kobject_put(&zone->kobj);
43906 return ret;
43907 @@ -348,7 +348,7 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
43908 zone->glob = glob;
43909 glob->zone_dma32 = zone;
43910 ret = kobject_init_and_add(
43911 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
43912 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
43913 if (unlikely(ret != 0)) {
43914 kobject_put(&zone->kobj);
43915 return ret;
43916 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
43917 index 025c429..314062f 100644
43918 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
43919 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
43920 @@ -54,7 +54,7 @@
43921
43922 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
43923 #define SMALL_ALLOCATION 16
43924 -#define FREE_ALL_PAGES (~0U)
43925 +#define FREE_ALL_PAGES (~0UL)
43926 /* times are in msecs */
43927 #define PAGE_FREE_INTERVAL 1000
43928
43929 @@ -299,15 +299,14 @@ static void ttm_pool_update_free_locked(struct ttm_page_pool *pool,
43930 * @free_all: If set to true will free all pages in pool
43931 * @use_static: Safe to use static buffer
43932 **/
43933 -static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
43934 +static unsigned long ttm_page_pool_free(struct ttm_page_pool *pool, unsigned long nr_free,
43935 bool use_static)
43936 {
43937 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
43938 unsigned long irq_flags;
43939 struct page *p;
43940 struct page **pages_to_free;
43941 - unsigned freed_pages = 0,
43942 - npages_to_free = nr_free;
43943 + unsigned long freed_pages = 0, npages_to_free = nr_free;
43944
43945 if (NUM_PAGES_TO_ALLOC < nr_free)
43946 npages_to_free = NUM_PAGES_TO_ALLOC;
43947 @@ -371,7 +370,8 @@ restart:
43948 __list_del(&p->lru, &pool->list);
43949
43950 ttm_pool_update_free_locked(pool, freed_pages);
43951 - nr_free -= freed_pages;
43952 + if (likely(nr_free != FREE_ALL_PAGES))
43953 + nr_free -= freed_pages;
43954 }
43955
43956 spin_unlock_irqrestore(&pool->lock, irq_flags);
43957 @@ -399,7 +399,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43958 unsigned i;
43959 unsigned pool_offset;
43960 struct ttm_page_pool *pool;
43961 - int shrink_pages = sc->nr_to_scan;
43962 + unsigned long shrink_pages = sc->nr_to_scan;
43963 unsigned long freed = 0;
43964
43965 if (!mutex_trylock(&lock))
43966 @@ -407,7 +407,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43967 pool_offset = ++start_pool % NUM_POOLS;
43968 /* select start pool in round robin fashion */
43969 for (i = 0; i < NUM_POOLS; ++i) {
43970 - unsigned nr_free = shrink_pages;
43971 + unsigned long nr_free = shrink_pages;
43972 if (shrink_pages == 0)
43973 break;
43974 pool = &_manager->pools[(i + pool_offset)%NUM_POOLS];
43975 @@ -673,7 +673,7 @@ out:
43976 }
43977
43978 /* Put all pages in pages list to correct pool to wait for reuse */
43979 -static void ttm_put_pages(struct page **pages, unsigned npages, int flags,
43980 +static void ttm_put_pages(struct page **pages, unsigned long npages, int flags,
43981 enum ttm_caching_state cstate)
43982 {
43983 unsigned long irq_flags;
43984 @@ -728,7 +728,7 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags,
43985 struct list_head plist;
43986 struct page *p = NULL;
43987 gfp_t gfp_flags = GFP_USER;
43988 - unsigned count;
43989 + unsigned long count;
43990 int r;
43991
43992 /* set zero flag for page allocation if required */
43993 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43994 index 624d941..106fa1f 100644
43995 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43996 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43997 @@ -56,7 +56,7 @@
43998
43999 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
44000 #define SMALL_ALLOCATION 4
44001 -#define FREE_ALL_PAGES (~0U)
44002 +#define FREE_ALL_PAGES (~0UL)
44003 /* times are in msecs */
44004 #define IS_UNDEFINED (0)
44005 #define IS_WC (1<<1)
44006 @@ -416,7 +416,7 @@ static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
44007 * @nr_free: If set to true will free all pages in pool
44008 * @use_static: Safe to use static buffer
44009 **/
44010 -static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44011 +static unsigned long ttm_dma_page_pool_free(struct dma_pool *pool, unsigned long nr_free,
44012 bool use_static)
44013 {
44014 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
44015 @@ -424,8 +424,7 @@ static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44016 struct dma_page *dma_p, *tmp;
44017 struct page **pages_to_free;
44018 struct list_head d_pages;
44019 - unsigned freed_pages = 0,
44020 - npages_to_free = nr_free;
44021 + unsigned long freed_pages = 0, npages_to_free = nr_free;
44022
44023 if (NUM_PAGES_TO_ALLOC < nr_free)
44024 npages_to_free = NUM_PAGES_TO_ALLOC;
44025 @@ -502,7 +501,8 @@ restart:
44026 /* remove range of pages from the pool */
44027 if (freed_pages) {
44028 ttm_pool_update_free_locked(pool, freed_pages);
44029 - nr_free -= freed_pages;
44030 + if (likely(nr_free != FREE_ALL_PAGES))
44031 + nr_free -= freed_pages;
44032 }
44033
44034 spin_unlock_irqrestore(&pool->lock, irq_flags);
44035 @@ -939,7 +939,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
44036 struct dma_page *d_page, *next;
44037 enum pool_type type;
44038 bool is_cached = false;
44039 - unsigned count = 0, i, npages = 0;
44040 + unsigned long count = 0, i, npages = 0;
44041 unsigned long irq_flags;
44042
44043 type = ttm_to_type(ttm->page_flags, ttm->caching_state);
44044 @@ -1014,7 +1014,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44045 static unsigned start_pool;
44046 unsigned idx = 0;
44047 unsigned pool_offset;
44048 - unsigned shrink_pages = sc->nr_to_scan;
44049 + unsigned long shrink_pages = sc->nr_to_scan;
44050 struct device_pools *p;
44051 unsigned long freed = 0;
44052
44053 @@ -1027,7 +1027,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44054 goto out;
44055 pool_offset = ++start_pool % _manager->npools;
44056 list_for_each_entry(p, &_manager->pools, pools) {
44057 - unsigned nr_free;
44058 + unsigned long nr_free;
44059
44060 if (!p->dev)
44061 continue;
44062 @@ -1041,7 +1041,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44063 shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free, true);
44064 freed += nr_free - shrink_pages;
44065
44066 - pr_debug("%s: (%s:%d) Asked to shrink %d, have %d more to go\n",
44067 + pr_debug("%s: (%s:%d) Asked to shrink %lu, have %lu more to go\n",
44068 p->pool->dev_name, p->pool->name, current->pid,
44069 nr_free, shrink_pages);
44070 }
44071 diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
44072 index 62c7b1d..2018818 100644
44073 --- a/drivers/gpu/drm/udl/udl_fb.c
44074 +++ b/drivers/gpu/drm/udl/udl_fb.c
44075 @@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user)
44076 fb_deferred_io_cleanup(info);
44077 kfree(info->fbdefio);
44078 info->fbdefio = NULL;
44079 - info->fbops->fb_mmap = udl_fb_mmap;
44080 }
44081
44082 pr_warn("released /dev/fb%d user=%d count=%d\n",
44083 diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
44084 index ef8c500..01030c8 100644
44085 --- a/drivers/gpu/drm/via/via_drv.h
44086 +++ b/drivers/gpu/drm/via/via_drv.h
44087 @@ -53,7 +53,7 @@ typedef struct drm_via_ring_buffer {
44088 typedef uint32_t maskarray_t[5];
44089
44090 typedef struct drm_via_irq {
44091 - atomic_t irq_received;
44092 + atomic_unchecked_t irq_received;
44093 uint32_t pending_mask;
44094 uint32_t enable_mask;
44095 wait_queue_head_t irq_queue;
44096 @@ -77,7 +77,7 @@ typedef struct drm_via_private {
44097 struct timeval last_vblank;
44098 int last_vblank_valid;
44099 unsigned usec_per_vblank;
44100 - atomic_t vbl_received;
44101 + atomic_unchecked_t vbl_received;
44102 drm_via_state_t hc_state;
44103 char pci_buf[VIA_PCI_BUF_SIZE];
44104 const uint32_t *fire_offsets[VIA_FIRE_BUF_SIZE];
44105 diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
44106 index 1319433..a993b0c 100644
44107 --- a/drivers/gpu/drm/via/via_irq.c
44108 +++ b/drivers/gpu/drm/via/via_irq.c
44109 @@ -101,7 +101,7 @@ u32 via_get_vblank_counter(struct drm_device *dev, int crtc)
44110 if (crtc != 0)
44111 return 0;
44112
44113 - return atomic_read(&dev_priv->vbl_received);
44114 + return atomic_read_unchecked(&dev_priv->vbl_received);
44115 }
44116
44117 irqreturn_t via_driver_irq_handler(int irq, void *arg)
44118 @@ -116,8 +116,8 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44119
44120 status = VIA_READ(VIA_REG_INTERRUPT);
44121 if (status & VIA_IRQ_VBLANK_PENDING) {
44122 - atomic_inc(&dev_priv->vbl_received);
44123 - if (!(atomic_read(&dev_priv->vbl_received) & 0x0F)) {
44124 + atomic_inc_unchecked(&dev_priv->vbl_received);
44125 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0x0F)) {
44126 do_gettimeofday(&cur_vblank);
44127 if (dev_priv->last_vblank_valid) {
44128 dev_priv->usec_per_vblank =
44129 @@ -127,7 +127,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44130 dev_priv->last_vblank = cur_vblank;
44131 dev_priv->last_vblank_valid = 1;
44132 }
44133 - if (!(atomic_read(&dev_priv->vbl_received) & 0xFF)) {
44134 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0xFF)) {
44135 DRM_DEBUG("US per vblank is: %u\n",
44136 dev_priv->usec_per_vblank);
44137 }
44138 @@ -137,7 +137,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44139
44140 for (i = 0; i < dev_priv->num_irqs; ++i) {
44141 if (status & cur_irq->pending_mask) {
44142 - atomic_inc(&cur_irq->irq_received);
44143 + atomic_inc_unchecked(&cur_irq->irq_received);
44144 wake_up(&cur_irq->irq_queue);
44145 handled = 1;
44146 if (dev_priv->irq_map[drm_via_irq_dma0_td] == i)
44147 @@ -242,11 +242,11 @@ via_driver_irq_wait(struct drm_device *dev, unsigned int irq, int force_sequence
44148 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44149 ((VIA_READ(masks[irq][2]) & masks[irq][3]) ==
44150 masks[irq][4]));
44151 - cur_irq_sequence = atomic_read(&cur_irq->irq_received);
44152 + cur_irq_sequence = atomic_read_unchecked(&cur_irq->irq_received);
44153 } else {
44154 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44155 (((cur_irq_sequence =
44156 - atomic_read(&cur_irq->irq_received)) -
44157 + atomic_read_unchecked(&cur_irq->irq_received)) -
44158 *sequence) <= (1 << 23)));
44159 }
44160 *sequence = cur_irq_sequence;
44161 @@ -284,7 +284,7 @@ void via_driver_irq_preinstall(struct drm_device *dev)
44162 }
44163
44164 for (i = 0; i < dev_priv->num_irqs; ++i) {
44165 - atomic_set(&cur_irq->irq_received, 0);
44166 + atomic_set_unchecked(&cur_irq->irq_received, 0);
44167 cur_irq->enable_mask = dev_priv->irq_masks[i][0];
44168 cur_irq->pending_mask = dev_priv->irq_masks[i][1];
44169 init_waitqueue_head(&cur_irq->irq_queue);
44170 @@ -366,7 +366,7 @@ int via_wait_irq(struct drm_device *dev, void *data, struct drm_file *file_priv)
44171 switch (irqwait->request.type & ~VIA_IRQ_FLAGS_MASK) {
44172 case VIA_IRQ_RELATIVE:
44173 irqwait->request.sequence +=
44174 - atomic_read(&cur_irq->irq_received);
44175 + atomic_read_unchecked(&cur_irq->irq_received);
44176 irqwait->request.type &= ~_DRM_VBLANK_RELATIVE;
44177 case VIA_IRQ_ABSOLUTE:
44178 break;
44179 diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44180 index b092d7b..3bbecd9 100644
44181 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
44182 +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44183 @@ -197,11 +197,11 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44184 }
44185
44186 static const struct ttm_mem_type_manager_func virtio_gpu_bo_manager_func = {
44187 - ttm_bo_man_init,
44188 - ttm_bo_man_takedown,
44189 - ttm_bo_man_get_node,
44190 - ttm_bo_man_put_node,
44191 - ttm_bo_man_debug
44192 + .init = &ttm_bo_man_init,
44193 + .takedown = &ttm_bo_man_takedown,
44194 + .get_node = &ttm_bo_man_get_node,
44195 + .put_node = &ttm_bo_man_put_node,
44196 + .debug = &ttm_bo_man_debug
44197 };
44198
44199 static int virtio_gpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
44200 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44201 index f19fd39..429e1ebe 100644
44202 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44203 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44204 @@ -434,7 +434,7 @@ struct vmw_private {
44205 * Fencing and IRQs.
44206 */
44207
44208 - atomic_t marker_seq;
44209 + atomic_unchecked_t marker_seq;
44210 wait_queue_head_t fence_queue;
44211 wait_queue_head_t fifo_queue;
44212 spinlock_t waiter_lock;
44213 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44214 index 80c40c3..ed6de49 100644
44215 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44216 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44217 @@ -156,7 +156,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
44218 (unsigned int) min,
44219 (unsigned int) fifo->capabilities);
44220
44221 - atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44222 + atomic_set_unchecked(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44223 iowrite32(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
44224 vmw_marker_queue_init(&fifo->marker_queue);
44225
44226 @@ -378,7 +378,7 @@ static void *vmw_local_fifo_reserve(struct vmw_private *dev_priv,
44227 if (reserveable)
44228 iowrite32(bytes, fifo_mem +
44229 SVGA_FIFO_RESERVED);
44230 - return (void __force *) (fifo_mem +
44231 + return (void __force_kernel *) (fifo_mem +
44232 (next_cmd >> 2));
44233 } else {
44234 need_bounce = true;
44235 @@ -568,7 +568,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44236
44237 fm = vmw_fifo_reserve(dev_priv, bytes);
44238 if (unlikely(fm == NULL)) {
44239 - *seqno = atomic_read(&dev_priv->marker_seq);
44240 + *seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44241 ret = -ENOMEM;
44242 (void)vmw_fallback_wait(dev_priv, false, true, *seqno,
44243 false, 3*HZ);
44244 @@ -576,7 +576,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44245 }
44246
44247 do {
44248 - *seqno = atomic_add_return(1, &dev_priv->marker_seq);
44249 + *seqno = atomic_add_return_unchecked(1, &dev_priv->marker_seq);
44250 } while (*seqno == 0);
44251
44252 if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
44253 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44254 index 170b61b..fec7348 100644
44255 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44256 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44257 @@ -164,9 +164,9 @@ static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
44258 }
44259
44260 const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
44261 - vmw_gmrid_man_init,
44262 - vmw_gmrid_man_takedown,
44263 - vmw_gmrid_man_get_node,
44264 - vmw_gmrid_man_put_node,
44265 - vmw_gmrid_man_debug
44266 + .init = vmw_gmrid_man_init,
44267 + .takedown = vmw_gmrid_man_takedown,
44268 + .get_node = vmw_gmrid_man_get_node,
44269 + .put_node = vmw_gmrid_man_put_node,
44270 + .debug = vmw_gmrid_man_debug
44271 };
44272 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44273 index 9498a5e..d532ac1 100644
44274 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44275 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44276 @@ -105,7 +105,7 @@ bool vmw_seqno_passed(struct vmw_private *dev_priv,
44277 * emitted. Then the fence is stale and signaled.
44278 */
44279
44280 - ret = ((atomic_read(&dev_priv->marker_seq) - seqno)
44281 + ret = ((atomic_read_unchecked(&dev_priv->marker_seq) - seqno)
44282 > VMW_FENCE_WRAP);
44283
44284 return ret;
44285 @@ -144,7 +144,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
44286 }
44287 }
44288
44289 - signal_seq = atomic_read(&dev_priv->marker_seq);
44290 + signal_seq = atomic_read_unchecked(&dev_priv->marker_seq);
44291 ret = 0;
44292
44293 for (;;) {
44294 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44295 index efd1ffd..0ae13ca 100644
44296 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44297 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44298 @@ -135,7 +135,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
44299 while (!vmw_lag_lt(queue, us)) {
44300 spin_lock(&queue->lock);
44301 if (list_empty(&queue->head))
44302 - seqno = atomic_read(&dev_priv->marker_seq);
44303 + seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44304 else {
44305 marker = list_first_entry(&queue->head,
44306 struct vmw_marker, head);
44307 diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
44308 index 2106066..e759b59 100644
44309 --- a/drivers/gpu/vga/vga_switcheroo.c
44310 +++ b/drivers/gpu/vga/vga_switcheroo.c
44311 @@ -657,7 +657,7 @@ static int vga_switcheroo_runtime_resume(struct device *dev)
44312 /* this version is for the case where the power switch is separate
44313 to the device being powered down. */
44314 int vga_switcheroo_init_domain_pm_ops(struct device *dev,
44315 - struct dev_pm_domain *domain)
44316 + dev_pm_domain_no_const *domain)
44317 {
44318 /* copy over all the bus versions */
44319 if (dev->bus && dev->bus->pm) {
44320 @@ -711,7 +711,7 @@ static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
44321
44322 int
44323 vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev,
44324 - struct dev_pm_domain *domain)
44325 + dev_pm_domain_no_const *domain)
44326 {
44327 /* copy over all the bus versions */
44328 if (dev->bus && dev->bus->pm) {
44329 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
44330 index 70a11ac..9852312 100644
44331 --- a/drivers/hid/hid-core.c
44332 +++ b/drivers/hid/hid-core.c
44333 @@ -2575,7 +2575,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
44334
44335 int hid_add_device(struct hid_device *hdev)
44336 {
44337 - static atomic_t id = ATOMIC_INIT(0);
44338 + static atomic_unchecked_t id = ATOMIC_INIT(0);
44339 int ret;
44340
44341 if (WARN_ON(hdev->status & HID_STAT_ADDED))
44342 @@ -2618,7 +2618,7 @@ int hid_add_device(struct hid_device *hdev)
44343 /* XXX hack, any other cleaner solution after the driver core
44344 * is converted to allow more than 20 bytes as the device name? */
44345 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
44346 - hdev->vendor, hdev->product, atomic_inc_return(&id));
44347 + hdev->vendor, hdev->product, atomic_inc_return_unchecked(&id));
44348
44349 hid_debug_register(hdev, dev_name(&hdev->dev));
44350 ret = device_add(&hdev->dev);
44351 diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
44352 index 5614fee..8a6f5f6 100644
44353 --- a/drivers/hid/hid-sensor-custom.c
44354 +++ b/drivers/hid/hid-sensor-custom.c
44355 @@ -590,7 +590,7 @@ static int hid_sensor_custom_add_attributes(struct hid_sensor_custom
44356 j = 0;
44357 while (j < HID_CUSTOM_TOTAL_ATTRS &&
44358 hid_custom_attrs[j].name) {
44359 - struct device_attribute *device_attr;
44360 + device_attribute_no_const *device_attr;
44361
44362 device_attr = &sensor_inst->fields[i].sd_attrs[j];
44363
44364 diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
44365 index c13fb5b..55a3802 100644
44366 --- a/drivers/hid/hid-wiimote-debug.c
44367 +++ b/drivers/hid/hid-wiimote-debug.c
44368 @@ -66,7 +66,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
44369 else if (size == 0)
44370 return -EIO;
44371
44372 - if (copy_to_user(u, buf, size))
44373 + if (size > sizeof(buf) || copy_to_user(u, buf, size))
44374 return -EFAULT;
44375
44376 *off += size;
44377 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
44378 index c4dcab0..a505f18 100644
44379 --- a/drivers/hv/channel.c
44380 +++ b/drivers/hv/channel.c
44381 @@ -382,7 +382,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
44382 int ret = 0;
44383
44384 next_gpadl_handle =
44385 - (atomic_inc_return(&vmbus_connection.next_gpadl_handle) - 1);
44386 + (atomic_inc_return_unchecked(&vmbus_connection.next_gpadl_handle) - 1);
44387
44388 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
44389 if (ret)
44390 @@ -696,9 +696,7 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
44391 * Adjust the size down since vmbus_channel_packet_page_buffer is the
44392 * largest size we support
44393 */
44394 - descsize = sizeof(struct vmbus_channel_packet_page_buffer) -
44395 - ((MAX_PAGE_BUFFER_COUNT - pagecount) *
44396 - sizeof(struct hv_page_buffer));
44397 + descsize = offsetof(struct vmbus_channel_packet_page_buffer, range[pagecount]);
44398 packetlen = descsize + bufferlen;
44399 packetlen_aligned = ALIGN(packetlen, sizeof(u64));
44400
44401 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
44402 index 6341be8..1a2fc8d 100644
44403 --- a/drivers/hv/hv.c
44404 +++ b/drivers/hv/hv.c
44405 @@ -95,7 +95,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
44406 {
44407 u64 input_address = (input) ? virt_to_phys(input) : 0;
44408 u64 output_address = (output) ? virt_to_phys(output) : 0;
44409 - void *hypercall_page = hv_context.hypercall_page;
44410 + void *hypercall_page = (void *)ktva_ktla((unsigned long)hv_context.hypercall_page);
44411 #ifdef CONFIG_X86_64
44412 u64 hv_status = 0;
44413
44414 @@ -219,7 +219,7 @@ int hv_init(void)
44415 /* See if the hypercall page is already set */
44416 rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
44417
44418 - virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
44419 + virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
44420
44421 if (!virtaddr)
44422 goto cleanup;
44423 diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
44424 index b853b4b..3647b37 100644
44425 --- a/drivers/hv/hv_balloon.c
44426 +++ b/drivers/hv/hv_balloon.c
44427 @@ -471,7 +471,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
44428
44429 module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
44430 MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
44431 -static atomic_t trans_id = ATOMIC_INIT(0);
44432 +static atomic_unchecked_t trans_id = ATOMIC_INIT(0);
44433
44434 static int dm_ring_size = (5 * PAGE_SIZE);
44435
44436 @@ -945,7 +945,7 @@ static void hot_add_req(struct work_struct *dummy)
44437 pr_info("Memory hot add failed\n");
44438
44439 dm->state = DM_INITIALIZED;
44440 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44441 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44442 vmbus_sendpacket(dm->dev->channel, &resp,
44443 sizeof(struct dm_hot_add_response),
44444 (unsigned long)NULL,
44445 @@ -1026,7 +1026,7 @@ static void post_status(struct hv_dynmem_device *dm)
44446 memset(&status, 0, sizeof(struct dm_status));
44447 status.hdr.type = DM_STATUS_REPORT;
44448 status.hdr.size = sizeof(struct dm_status);
44449 - status.hdr.trans_id = atomic_inc_return(&trans_id);
44450 + status.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44451
44452 /*
44453 * The host expects the guest to report free and committed memory.
44454 @@ -1050,7 +1050,7 @@ static void post_status(struct hv_dynmem_device *dm)
44455 * send the status. This can happen if we were interrupted
44456 * after we picked our transaction ID.
44457 */
44458 - if (status.hdr.trans_id != atomic_read(&trans_id))
44459 + if (status.hdr.trans_id != atomic_read_unchecked(&trans_id))
44460 return;
44461
44462 /*
44463 @@ -1195,7 +1195,7 @@ static void balloon_up(struct work_struct *dummy)
44464 */
44465
44466 do {
44467 - bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
44468 + bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44469 ret = vmbus_sendpacket(dm_device.dev->channel,
44470 bl_resp,
44471 bl_resp->hdr.size,
44472 @@ -1241,7 +1241,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
44473
44474 memset(&resp, 0, sizeof(struct dm_unballoon_response));
44475 resp.hdr.type = DM_UNBALLOON_RESPONSE;
44476 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44477 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44478 resp.hdr.size = sizeof(struct dm_unballoon_response);
44479
44480 vmbus_sendpacket(dm_device.dev->channel, &resp,
44481 @@ -1301,7 +1301,7 @@ static void version_resp(struct hv_dynmem_device *dm,
44482 memset(&version_req, 0, sizeof(struct dm_version_request));
44483 version_req.hdr.type = DM_VERSION_REQUEST;
44484 version_req.hdr.size = sizeof(struct dm_version_request);
44485 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44486 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44487 version_req.version.version = dm->next_version;
44488
44489 /*
44490 @@ -1487,7 +1487,7 @@ static int balloon_probe(struct hv_device *dev,
44491 memset(&version_req, 0, sizeof(struct dm_version_request));
44492 version_req.hdr.type = DM_VERSION_REQUEST;
44493 version_req.hdr.size = sizeof(struct dm_version_request);
44494 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44495 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44496 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN10;
44497 version_req.is_last_attempt = 0;
44498
44499 @@ -1518,7 +1518,7 @@ static int balloon_probe(struct hv_device *dev,
44500 memset(&cap_msg, 0, sizeof(struct dm_capabilities));
44501 cap_msg.hdr.type = DM_CAPABILITIES_REPORT;
44502 cap_msg.hdr.size = sizeof(struct dm_capabilities);
44503 - cap_msg.hdr.trans_id = atomic_inc_return(&trans_id);
44504 + cap_msg.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44505
44506 cap_msg.caps.cap_bits.balloon = 1;
44507 cap_msg.caps.cap_bits.hot_add = 1;
44508 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
44509 index 3d70e36..465d989 100644
44510 --- a/drivers/hv/hyperv_vmbus.h
44511 +++ b/drivers/hv/hyperv_vmbus.h
44512 @@ -659,7 +659,7 @@ enum vmbus_connect_state {
44513 struct vmbus_connection {
44514 enum vmbus_connect_state conn_state;
44515
44516 - atomic_t next_gpadl_handle;
44517 + atomic_unchecked_t next_gpadl_handle;
44518
44519 struct completion unload_event;
44520 /*
44521 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
44522 index 579bdf9..0dac21d5 100644
44523 --- a/drivers/hwmon/acpi_power_meter.c
44524 +++ b/drivers/hwmon/acpi_power_meter.c
44525 @@ -116,7 +116,7 @@ struct sensor_template {
44526 struct device_attribute *devattr,
44527 const char *buf, size_t count);
44528 int index;
44529 -};
44530 +} __do_const;
44531
44532 /* Averaging interval */
44533 static int update_avg_interval(struct acpi_power_meter_resource *resource)
44534 @@ -631,7 +631,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
44535 struct sensor_template *attrs)
44536 {
44537 struct device *dev = &resource->acpi_dev->dev;
44538 - struct sensor_device_attribute *sensors =
44539 + sensor_device_attribute_no_const *sensors =
44540 &resource->sensors[resource->num_sensors];
44541 int res = 0;
44542
44543 @@ -973,7 +973,7 @@ static int __init enable_cap_knobs(const struct dmi_system_id *d)
44544 return 0;
44545 }
44546
44547 -static struct dmi_system_id __initdata pm_dmi_table[] = {
44548 +static const struct dmi_system_id __initconst pm_dmi_table[] = {
44549 {
44550 enable_cap_knobs, "IBM Active Energy Manager",
44551 {
44552 diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
44553 index 0af63da..05a183a 100644
44554 --- a/drivers/hwmon/applesmc.c
44555 +++ b/drivers/hwmon/applesmc.c
44556 @@ -1105,7 +1105,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
44557 {
44558 struct applesmc_node_group *grp;
44559 struct applesmc_dev_attr *node;
44560 - struct attribute *attr;
44561 + attribute_no_const *attr;
44562 int ret, i;
44563
44564 for (grp = groups; grp->format; grp++) {
44565 diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
44566 index cccef87..06ce8ec 100644
44567 --- a/drivers/hwmon/asus_atk0110.c
44568 +++ b/drivers/hwmon/asus_atk0110.c
44569 @@ -147,10 +147,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
44570 struct atk_sensor_data {
44571 struct list_head list;
44572 struct atk_data *data;
44573 - struct device_attribute label_attr;
44574 - struct device_attribute input_attr;
44575 - struct device_attribute limit1_attr;
44576 - struct device_attribute limit2_attr;
44577 + device_attribute_no_const label_attr;
44578 + device_attribute_no_const input_attr;
44579 + device_attribute_no_const limit1_attr;
44580 + device_attribute_no_const limit2_attr;
44581 char label_attr_name[ATTR_NAME_SIZE];
44582 char input_attr_name[ATTR_NAME_SIZE];
44583 char limit1_attr_name[ATTR_NAME_SIZE];
44584 @@ -270,7 +270,7 @@ static ssize_t atk_name_show(struct device *dev,
44585 static struct device_attribute atk_name_attr =
44586 __ATTR(name, 0444, atk_name_show, NULL);
44587
44588 -static void atk_init_attribute(struct device_attribute *attr, char *name,
44589 +static void atk_init_attribute(device_attribute_no_const *attr, char *name,
44590 sysfs_show_func show)
44591 {
44592 sysfs_attr_init(&attr->attr);
44593 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
44594 index 3e03379..ec521d3 100644
44595 --- a/drivers/hwmon/coretemp.c
44596 +++ b/drivers/hwmon/coretemp.c
44597 @@ -783,7 +783,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
44598 return NOTIFY_OK;
44599 }
44600
44601 -static struct notifier_block coretemp_cpu_notifier __refdata = {
44602 +static struct notifier_block coretemp_cpu_notifier = {
44603 .notifier_call = coretemp_cpu_callback,
44604 };
44605
44606 diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
44607 index c848789..e9e9217 100644
44608 --- a/drivers/hwmon/dell-smm-hwmon.c
44609 +++ b/drivers/hwmon/dell-smm-hwmon.c
44610 @@ -819,7 +819,7 @@ static const struct i8k_config_data i8k_config_data[] = {
44611 },
44612 };
44613
44614 -static struct dmi_system_id i8k_dmi_table[] __initdata = {
44615 +static const struct dmi_system_id i8k_dmi_table[] __initconst = {
44616 {
44617 .ident = "Dell Inspiron",
44618 .matches = {
44619 diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
44620 index 7a8a6fb..015c1fd 100644
44621 --- a/drivers/hwmon/ibmaem.c
44622 +++ b/drivers/hwmon/ibmaem.c
44623 @@ -924,7 +924,7 @@ static int aem_register_sensors(struct aem_data *data,
44624 struct aem_rw_sensor_template *rw)
44625 {
44626 struct device *dev = &data->pdev->dev;
44627 - struct sensor_device_attribute *sensors = data->sensors;
44628 + sensor_device_attribute_no_const *sensors = data->sensors;
44629 int err;
44630
44631 /* Set up read-only sensors */
44632 diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
44633 index 17ae2eb..21b71dd 100644
44634 --- a/drivers/hwmon/iio_hwmon.c
44635 +++ b/drivers/hwmon/iio_hwmon.c
44636 @@ -61,7 +61,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
44637 {
44638 struct device *dev = &pdev->dev;
44639 struct iio_hwmon_state *st;
44640 - struct sensor_device_attribute *a;
44641 + sensor_device_attribute_no_const *a;
44642 int ret, i;
44643 int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1;
44644 enum iio_chan_type type;
44645 diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
44646 index 37f0170..414ec2c 100644
44647 --- a/drivers/hwmon/nct6683.c
44648 +++ b/drivers/hwmon/nct6683.c
44649 @@ -397,11 +397,11 @@ static struct attribute_group *
44650 nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44651 int repeat)
44652 {
44653 - struct sensor_device_attribute_2 *a2;
44654 - struct sensor_device_attribute *a;
44655 + sensor_device_attribute_2_no_const *a2;
44656 + sensor_device_attribute_no_const *a;
44657 struct sensor_device_template **t;
44658 struct sensor_device_attr_u *su;
44659 - struct attribute_group *group;
44660 + attribute_group_no_const *group;
44661 struct attribute **attrs;
44662 int i, j, count;
44663
44664 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
44665 index 8b4fa55..fb3c20b 100644
44666 --- a/drivers/hwmon/nct6775.c
44667 +++ b/drivers/hwmon/nct6775.c
44668 @@ -970,10 +970,10 @@ static struct attribute_group *
44669 nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44670 int repeat)
44671 {
44672 - struct attribute_group *group;
44673 + attribute_group_no_const *group;
44674 struct sensor_device_attr_u *su;
44675 - struct sensor_device_attribute *a;
44676 - struct sensor_device_attribute_2 *a2;
44677 + sensor_device_attribute_no_const *a;
44678 + sensor_device_attribute_2_no_const *a2;
44679 struct attribute **attrs;
44680 struct sensor_device_template **t;
44681 int i, count;
44682 diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
44683 index ba59eae..dbf694c 100644
44684 --- a/drivers/hwmon/pmbus/pmbus_core.c
44685 +++ b/drivers/hwmon/pmbus/pmbus_core.c
44686 @@ -824,7 +824,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
44687 return 0;
44688 }
44689
44690 -static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44691 +static void pmbus_dev_attr_init(device_attribute_no_const *dev_attr,
44692 const char *name,
44693 umode_t mode,
44694 ssize_t (*show)(struct device *dev,
44695 @@ -841,7 +841,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44696 dev_attr->store = store;
44697 }
44698
44699 -static void pmbus_attr_init(struct sensor_device_attribute *a,
44700 +static void pmbus_attr_init(sensor_device_attribute_no_const *a,
44701 const char *name,
44702 umode_t mode,
44703 ssize_t (*show)(struct device *dev,
44704 @@ -863,7 +863,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
44705 u16 reg, u8 mask)
44706 {
44707 struct pmbus_boolean *boolean;
44708 - struct sensor_device_attribute *a;
44709 + sensor_device_attribute_no_const *a;
44710
44711 boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL);
44712 if (!boolean)
44713 @@ -888,7 +888,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
44714 bool update, bool readonly)
44715 {
44716 struct pmbus_sensor *sensor;
44717 - struct device_attribute *a;
44718 + device_attribute_no_const *a;
44719
44720 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL);
44721 if (!sensor)
44722 @@ -919,7 +919,7 @@ static int pmbus_add_label(struct pmbus_data *data,
44723 const char *lstring, int index)
44724 {
44725 struct pmbus_label *label;
44726 - struct device_attribute *a;
44727 + device_attribute_no_const *a;
44728
44729 label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL);
44730 if (!label)
44731 diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
44732 index a2fdbb7..e749a3c 100644
44733 --- a/drivers/hwmon/sht15.c
44734 +++ b/drivers/hwmon/sht15.c
44735 @@ -170,7 +170,7 @@ struct sht15_data {
44736 int supply_uv;
44737 bool supply_uv_valid;
44738 struct work_struct update_supply_work;
44739 - atomic_t interrupt_handled;
44740 + atomic_unchecked_t interrupt_handled;
44741 };
44742
44743 /**
44744 @@ -530,13 +530,13 @@ static int sht15_measurement(struct sht15_data *data,
44745 ret = gpio_direction_input(data->pdata->gpio_data);
44746 if (ret)
44747 return ret;
44748 - atomic_set(&data->interrupt_handled, 0);
44749 + atomic_set_unchecked(&data->interrupt_handled, 0);
44750
44751 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44752 if (gpio_get_value(data->pdata->gpio_data) == 0) {
44753 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
44754 /* Only relevant if the interrupt hasn't occurred. */
44755 - if (!atomic_read(&data->interrupt_handled))
44756 + if (!atomic_read_unchecked(&data->interrupt_handled))
44757 schedule_work(&data->read_work);
44758 }
44759 ret = wait_event_timeout(data->wait_queue,
44760 @@ -808,7 +808,7 @@ static irqreturn_t sht15_interrupt_fired(int irq, void *d)
44761
44762 /* First disable the interrupt */
44763 disable_irq_nosync(irq);
44764 - atomic_inc(&data->interrupt_handled);
44765 + atomic_inc_unchecked(&data->interrupt_handled);
44766 /* Then schedule a reading work struct */
44767 if (data->state != SHT15_READING_NOTHING)
44768 schedule_work(&data->read_work);
44769 @@ -830,11 +830,11 @@ static void sht15_bh_read_data(struct work_struct *work_s)
44770 * If not, then start the interrupt again - care here as could
44771 * have gone low in meantime so verify it hasn't!
44772 */
44773 - atomic_set(&data->interrupt_handled, 0);
44774 + atomic_set_unchecked(&data->interrupt_handled, 0);
44775 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44776 /* If still not occurred or another handler was scheduled */
44777 if (gpio_get_value(data->pdata->gpio_data)
44778 - || atomic_read(&data->interrupt_handled))
44779 + || atomic_read_unchecked(&data->interrupt_handled))
44780 return;
44781 }
44782
44783 diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c
44784 index ac91c07..8e69663 100644
44785 --- a/drivers/hwmon/via-cputemp.c
44786 +++ b/drivers/hwmon/via-cputemp.c
44787 @@ -295,7 +295,7 @@ static int via_cputemp_cpu_callback(struct notifier_block *nfb,
44788 return NOTIFY_OK;
44789 }
44790
44791 -static struct notifier_block via_cputemp_cpu_notifier __refdata = {
44792 +static struct notifier_block via_cputemp_cpu_notifier = {
44793 .notifier_call = via_cputemp_cpu_callback,
44794 };
44795
44796 diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
44797 index 65e3240..e6c511d 100644
44798 --- a/drivers/i2c/busses/i2c-amd756-s4882.c
44799 +++ b/drivers/i2c/busses/i2c-amd756-s4882.c
44800 @@ -39,7 +39,7 @@
44801 extern struct i2c_adapter amd756_smbus;
44802
44803 static struct i2c_adapter *s4882_adapter;
44804 -static struct i2c_algorithm *s4882_algo;
44805 +static i2c_algorithm_no_const *s4882_algo;
44806
44807 /* Wrapper access functions for multiplexed SMBus */
44808 static DEFINE_MUTEX(amd756_lock);
44809 diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
44810 index df23e8c..1354d8e 100644
44811 --- a/drivers/i2c/busses/i2c-designware-pcidrv.c
44812 +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
44813 @@ -60,7 +60,7 @@ struct dw_scl_sda_cfg {
44814 };
44815
44816 struct dw_pci_controller {
44817 - u32 bus_num;
44818 + int bus_num;
44819 u32 bus_cfg;
44820 u32 tx_fifo_depth;
44821 u32 rx_fifo_depth;
44822 diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
44823 index 88eda09..cf40434 100644
44824 --- a/drivers/i2c/busses/i2c-nforce2-s4985.c
44825 +++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
44826 @@ -37,7 +37,7 @@
44827 extern struct i2c_adapter *nforce2_smbus;
44828
44829 static struct i2c_adapter *s4985_adapter;
44830 -static struct i2c_algorithm *s4985_algo;
44831 +static i2c_algorithm_no_const *s4985_algo;
44832
44833 /* Wrapper access functions for multiplexed SMBus */
44834 static DEFINE_MUTEX(nforce2_lock);
44835 diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
44836 index 71c7a39..71dd3e0 100644
44837 --- a/drivers/i2c/i2c-dev.c
44838 +++ b/drivers/i2c/i2c-dev.c
44839 @@ -272,7 +272,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
44840 break;
44841 }
44842
44843 - data_ptrs[i] = (u8 __user *)rdwr_pa[i].buf;
44844 + data_ptrs[i] = (u8 __force_user *)rdwr_pa[i].buf;
44845 rdwr_pa[i].buf = memdup_user(data_ptrs[i], rdwr_pa[i].len);
44846 if (IS_ERR(rdwr_pa[i].buf)) {
44847 res = PTR_ERR(rdwr_pa[i].buf);
44848 diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
44849 index 64a6b82..a524354 100644
44850 --- a/drivers/ide/ide-cd.c
44851 +++ b/drivers/ide/ide-cd.c
44852 @@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
44853 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
44854 if ((unsigned long)buf & alignment
44855 || blk_rq_bytes(rq) & q->dma_pad_mask
44856 - || object_is_on_stack(buf))
44857 + || object_starts_on_stack(buf))
44858 drive->dma = 0;
44859 }
44860 }
44861 diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
44862 index 56b9708..980b63b 100644
44863 --- a/drivers/ide/ide-disk.c
44864 +++ b/drivers/ide/ide-disk.c
44865 @@ -178,7 +178,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44866 * 1073741822 == 549756 MB or 48bit addressing fake drive
44867 */
44868
44869 -static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44870 +static ide_startstop_t __intentional_overflow(-1) ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44871 sector_t block)
44872 {
44873 ide_hwif_t *hwif = drive->hwif;
44874 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
44875 index b3fcc2c..6f90dc4 100644
44876 --- a/drivers/iio/industrialio-core.c
44877 +++ b/drivers/iio/industrialio-core.c
44878 @@ -590,7 +590,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
44879 }
44880
44881 static
44882 -int __iio_device_attr_init(struct device_attribute *dev_attr,
44883 +int __iio_device_attr_init(device_attribute_no_const *dev_attr,
44884 const char *postfix,
44885 struct iio_chan_spec const *chan,
44886 ssize_t (*readfunc)(struct device *dev,
44887 diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
44888 index b13936d..65322b2 100644
44889 --- a/drivers/iio/magnetometer/ak8975.c
44890 +++ b/drivers/iio/magnetometer/ak8975.c
44891 @@ -776,7 +776,7 @@ static int ak8975_probe(struct i2c_client *client,
44892 name = id->name;
44893 } else if (ACPI_HANDLE(&client->dev))
44894 name = ak8975_match_acpi_device(&client->dev, &chipset);
44895 - else
44896 + if (!name)
44897 return -ENOSYS;
44898
44899 if (chipset >= AK_MAX_TYPE) {
44900 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
44901 index 4f918b9..97b5a90 100644
44902 --- a/drivers/infiniband/core/cm.c
44903 +++ b/drivers/infiniband/core/cm.c
44904 @@ -115,7 +115,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
44905
44906 struct cm_counter_group {
44907 struct kobject obj;
44908 - atomic_long_t counter[CM_ATTR_COUNT];
44909 + atomic_long_unchecked_t counter[CM_ATTR_COUNT];
44910 };
44911
44912 struct cm_counter_attribute {
44913 @@ -1476,7 +1476,7 @@ static void cm_dup_req_handler(struct cm_work *work,
44914 struct ib_mad_send_buf *msg = NULL;
44915 int ret;
44916
44917 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44918 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44919 counter[CM_REQ_COUNTER]);
44920
44921 /* Quick state check to discard duplicate REQs. */
44922 @@ -1862,7 +1862,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
44923 if (!cm_id_priv)
44924 return;
44925
44926 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44927 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44928 counter[CM_REP_COUNTER]);
44929 ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
44930 if (ret)
44931 @@ -2029,7 +2029,7 @@ static int cm_rtu_handler(struct cm_work *work)
44932 if (cm_id_priv->id.state != IB_CM_REP_SENT &&
44933 cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
44934 spin_unlock_irq(&cm_id_priv->lock);
44935 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44936 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44937 counter[CM_RTU_COUNTER]);
44938 goto out;
44939 }
44940 @@ -2212,7 +2212,7 @@ static int cm_dreq_handler(struct cm_work *work)
44941 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
44942 dreq_msg->local_comm_id);
44943 if (!cm_id_priv) {
44944 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44945 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44946 counter[CM_DREQ_COUNTER]);
44947 cm_issue_drep(work->port, work->mad_recv_wc);
44948 return -EINVAL;
44949 @@ -2237,7 +2237,7 @@ static int cm_dreq_handler(struct cm_work *work)
44950 case IB_CM_MRA_REP_RCVD:
44951 break;
44952 case IB_CM_TIMEWAIT:
44953 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44954 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44955 counter[CM_DREQ_COUNTER]);
44956 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
44957 goto unlock;
44958 @@ -2251,7 +2251,7 @@ static int cm_dreq_handler(struct cm_work *work)
44959 cm_free_msg(msg);
44960 goto deref;
44961 case IB_CM_DREQ_RCVD:
44962 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44963 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44964 counter[CM_DREQ_COUNTER]);
44965 goto unlock;
44966 default:
44967 @@ -2618,7 +2618,7 @@ static int cm_mra_handler(struct cm_work *work)
44968 ib_modify_mad(cm_id_priv->av.port->mad_agent,
44969 cm_id_priv->msg, timeout)) {
44970 if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
44971 - atomic_long_inc(&work->port->
44972 + atomic_long_inc_unchecked(&work->port->
44973 counter_group[CM_RECV_DUPLICATES].
44974 counter[CM_MRA_COUNTER]);
44975 goto out;
44976 @@ -2627,7 +2627,7 @@ static int cm_mra_handler(struct cm_work *work)
44977 break;
44978 case IB_CM_MRA_REQ_RCVD:
44979 case IB_CM_MRA_REP_RCVD:
44980 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44981 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44982 counter[CM_MRA_COUNTER]);
44983 /* fall through */
44984 default:
44985 @@ -2789,7 +2789,7 @@ static int cm_lap_handler(struct cm_work *work)
44986 case IB_CM_LAP_IDLE:
44987 break;
44988 case IB_CM_MRA_LAP_SENT:
44989 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44990 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44991 counter[CM_LAP_COUNTER]);
44992 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
44993 goto unlock;
44994 @@ -2805,7 +2805,7 @@ static int cm_lap_handler(struct cm_work *work)
44995 cm_free_msg(msg);
44996 goto deref;
44997 case IB_CM_LAP_RCVD:
44998 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44999 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45000 counter[CM_LAP_COUNTER]);
45001 goto unlock;
45002 default:
45003 @@ -3091,7 +3091,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
45004 cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
45005 if (cur_cm_id_priv) {
45006 spin_unlock_irq(&cm.lock);
45007 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45008 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45009 counter[CM_SIDR_REQ_COUNTER]);
45010 goto out; /* Duplicate message. */
45011 }
45012 @@ -3305,10 +3305,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
45013 if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
45014 msg->retries = 1;
45015
45016 - atomic_long_add(1 + msg->retries,
45017 + atomic_long_add_unchecked(1 + msg->retries,
45018 &port->counter_group[CM_XMIT].counter[attr_index]);
45019 if (msg->retries)
45020 - atomic_long_add(msg->retries,
45021 + atomic_long_add_unchecked(msg->retries,
45022 &port->counter_group[CM_XMIT_RETRIES].
45023 counter[attr_index]);
45024
45025 @@ -3534,7 +3534,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
45026 }
45027
45028 attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
45029 - atomic_long_inc(&port->counter_group[CM_RECV].
45030 + atomic_long_inc_unchecked(&port->counter_group[CM_RECV].
45031 counter[attr_id - CM_ATTR_ID_OFFSET]);
45032
45033 work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
45034 @@ -3777,7 +3777,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
45035 cm_attr = container_of(attr, struct cm_counter_attribute, attr);
45036
45037 return sprintf(buf, "%ld\n",
45038 - atomic_long_read(&group->counter[cm_attr->index]));
45039 + atomic_long_read_unchecked(&group->counter[cm_attr->index]));
45040 }
45041
45042 static const struct sysfs_ops cm_counter_ops = {
45043 diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
45044 index 9f5ad7c..588cd84 100644
45045 --- a/drivers/infiniband/core/fmr_pool.c
45046 +++ b/drivers/infiniband/core/fmr_pool.c
45047 @@ -98,8 +98,8 @@ struct ib_fmr_pool {
45048
45049 struct task_struct *thread;
45050
45051 - atomic_t req_ser;
45052 - atomic_t flush_ser;
45053 + atomic_unchecked_t req_ser;
45054 + atomic_unchecked_t flush_ser;
45055
45056 wait_queue_head_t force_wait;
45057 };
45058 @@ -179,10 +179,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45059 struct ib_fmr_pool *pool = pool_ptr;
45060
45061 do {
45062 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) < 0) {
45063 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) < 0) {
45064 ib_fmr_batch_release(pool);
45065
45066 - atomic_inc(&pool->flush_ser);
45067 + atomic_inc_unchecked(&pool->flush_ser);
45068 wake_up_interruptible(&pool->force_wait);
45069
45070 if (pool->flush_function)
45071 @@ -190,7 +190,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45072 }
45073
45074 set_current_state(TASK_INTERRUPTIBLE);
45075 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) >= 0 &&
45076 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) >= 0 &&
45077 !kthread_should_stop())
45078 schedule();
45079 __set_current_state(TASK_RUNNING);
45080 @@ -282,8 +282,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
45081 pool->dirty_watermark = params->dirty_watermark;
45082 pool->dirty_len = 0;
45083 spin_lock_init(&pool->pool_lock);
45084 - atomic_set(&pool->req_ser, 0);
45085 - atomic_set(&pool->flush_ser, 0);
45086 + atomic_set_unchecked(&pool->req_ser, 0);
45087 + atomic_set_unchecked(&pool->flush_ser, 0);
45088 init_waitqueue_head(&pool->force_wait);
45089
45090 pool->thread = kthread_run(ib_fmr_cleanup_thread,
45091 @@ -411,11 +411,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
45092 }
45093 spin_unlock_irq(&pool->pool_lock);
45094
45095 - serial = atomic_inc_return(&pool->req_ser);
45096 + serial = atomic_inc_return_unchecked(&pool->req_ser);
45097 wake_up_process(pool->thread);
45098
45099 if (wait_event_interruptible(pool->force_wait,
45100 - atomic_read(&pool->flush_ser) - serial >= 0))
45101 + atomic_read_unchecked(&pool->flush_ser) - serial >= 0))
45102 return -EINTR;
45103
45104 return 0;
45105 @@ -525,7 +525,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
45106 } else {
45107 list_add_tail(&fmr->list, &pool->dirty_list);
45108 if (++pool->dirty_len >= pool->dirty_watermark) {
45109 - atomic_inc(&pool->req_ser);
45110 + atomic_inc_unchecked(&pool->req_ser);
45111 wake_up_process(pool->thread);
45112 }
45113 }
45114 diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
45115 index be4cb9f..a2bd947 100644
45116 --- a/drivers/infiniband/core/uverbs_cmd.c
45117 +++ b/drivers/infiniband/core/uverbs_cmd.c
45118 @@ -959,6 +959,9 @@ ssize_t ib_uverbs_reg_mr(struct ib_uverbs_file *file,
45119 if (copy_from_user(&cmd, buf, sizeof cmd))
45120 return -EFAULT;
45121
45122 + if (!access_ok_noprefault(VERIFY_READ, cmd.start, cmd.length))
45123 + return -EFAULT;
45124 +
45125 INIT_UDATA(&udata, buf + sizeof cmd,
45126 (unsigned long) cmd.response + sizeof resp,
45127 in_len - sizeof cmd, out_len - sizeof resp);
45128 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
45129 index 026b91e..47c3bdb 100644
45130 --- a/drivers/infiniband/hw/cxgb4/mem.c
45131 +++ b/drivers/infiniband/hw/cxgb4/mem.c
45132 @@ -256,7 +256,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45133 int err;
45134 struct fw_ri_tpte tpt;
45135 u32 stag_idx;
45136 - static atomic_t key;
45137 + static atomic_unchecked_t key;
45138
45139 if (c4iw_fatal_error(rdev))
45140 return -EIO;
45141 @@ -277,7 +277,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45142 if (rdev->stats.stag.cur > rdev->stats.stag.max)
45143 rdev->stats.stag.max = rdev->stats.stag.cur;
45144 mutex_unlock(&rdev->stats.lock);
45145 - *stag = (stag_idx << 8) | (atomic_inc_return(&key) & 0xff);
45146 + *stag = (stag_idx << 8) | (atomic_inc_return_unchecked(&key) & 0xff);
45147 }
45148 PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
45149 __func__, stag_state, type, pdid, stag_idx);
45150 diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
45151 index 1cd75ff..8fc6bc7 100644
45152 --- a/drivers/infiniband/hw/mlx4/mad.c
45153 +++ b/drivers/infiniband/hw/mlx4/mad.c
45154 @@ -98,7 +98,7 @@ __be64 mlx4_ib_gen_node_guid(void)
45155
45156 __be64 mlx4_ib_get_new_demux_tid(struct mlx4_ib_demux_ctx *ctx)
45157 {
45158 - return cpu_to_be64(atomic_inc_return(&ctx->tid)) |
45159 + return cpu_to_be64(atomic_inc_return_unchecked(&ctx->tid)) |
45160 cpu_to_be64(0xff00000000000000LL);
45161 }
45162
45163 diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
45164 index 2d5bccd..a5d2030 100644
45165 --- a/drivers/infiniband/hw/mlx4/mcg.c
45166 +++ b/drivers/infiniband/hw/mlx4/mcg.c
45167 @@ -1046,7 +1046,7 @@ int mlx4_ib_mcg_port_init(struct mlx4_ib_demux_ctx *ctx)
45168 {
45169 char name[20];
45170
45171 - atomic_set(&ctx->tid, 0);
45172 + atomic_set_unchecked(&ctx->tid, 0);
45173 sprintf(name, "mlx4_ib_mcg%d", ctx->port);
45174 ctx->mcg_wq = create_singlethread_workqueue(name);
45175 if (!ctx->mcg_wq)
45176 diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45177 index 1e7b23b..527fb1d 100644
45178 --- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
45179 +++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45180 @@ -448,7 +448,7 @@ struct mlx4_ib_demux_ctx {
45181 struct list_head mcg_mgid0_list;
45182 struct workqueue_struct *mcg_wq;
45183 struct mlx4_ib_demux_pv_ctx **tun;
45184 - atomic_t tid;
45185 + atomic_unchecked_t tid;
45186 int flushing; /* flushing the work queue */
45187 };
45188
45189 diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
45190 index c7f49bb..6a021bb 100644
45191 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c
45192 +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
45193 @@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base)
45194 mthca_dbg(dev, "Mapped doorbell page for posting FW commands\n");
45195 }
45196
45197 -int mthca_QUERY_FW(struct mthca_dev *dev)
45198 +int __intentional_overflow(-1) mthca_QUERY_FW(struct mthca_dev *dev)
45199 {
45200 struct mthca_mailbox *mailbox;
45201 u32 *outbox;
45202 @@ -1612,7 +1612,7 @@ int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45203 CMD_TIME_CLASS_B);
45204 }
45205
45206 -int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45207 +int __intentional_overflow(-1) mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45208 int num_mtt)
45209 {
45210 return mthca_cmd(dev, mailbox->dma, num_mtt, 0, CMD_WRITE_MTT,
45211 @@ -1634,7 +1634,7 @@ int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap,
45212 0, CMD_MAP_EQ, CMD_TIME_CLASS_B);
45213 }
45214
45215 -int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45216 +int __intentional_overflow(-1) mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45217 int eq_num)
45218 {
45219 return mthca_cmd(dev, mailbox->dma, eq_num, 0, CMD_SW2HW_EQ,
45220 @@ -1857,7 +1857,7 @@ int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn)
45221 CMD_TIME_CLASS_B);
45222 }
45223
45224 -int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45225 +int __intentional_overflow(-1) mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45226 int port, const struct ib_wc *in_wc, const struct ib_grh *in_grh,
45227 const void *in_mad, void *response_mad)
45228 {
45229 diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
45230 index ded76c1..0cf0a08 100644
45231 --- a/drivers/infiniband/hw/mthca/mthca_main.c
45232 +++ b/drivers/infiniband/hw/mthca/mthca_main.c
45233 @@ -692,7 +692,7 @@ err_close:
45234 return err;
45235 }
45236
45237 -static int mthca_setup_hca(struct mthca_dev *dev)
45238 +static int __intentional_overflow(-1) mthca_setup_hca(struct mthca_dev *dev)
45239 {
45240 int err;
45241
45242 diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
45243 index ed9a989..6aa5dc2 100644
45244 --- a/drivers/infiniband/hw/mthca/mthca_mr.c
45245 +++ b/drivers/infiniband/hw/mthca/mthca_mr.c
45246 @@ -81,7 +81,7 @@ struct mthca_mpt_entry {
45247 * through the bitmaps)
45248 */
45249
45250 -static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45251 +static u32 __intentional_overflow(-1) mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45252 {
45253 int o;
45254 int m;
45255 @@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key)
45256 return key;
45257 }
45258
45259 -int mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45260 +int __intentional_overflow(-1) mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45261 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
45262 {
45263 struct mthca_mailbox *mailbox;
45264 @@ -516,7 +516,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd,
45265 return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
45266 }
45267
45268 -int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45269 +int __intentional_overflow(-1) mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45270 u64 *buffer_list, int buffer_size_shift,
45271 int list_len, u64 iova, u64 total_size,
45272 u32 access, struct mthca_mr *mr)
45273 diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
45274 index dc2d48c..c1deb7b 100644
45275 --- a/drivers/infiniband/hw/mthca/mthca_provider.c
45276 +++ b/drivers/infiniband/hw/mthca/mthca_provider.c
45277 @@ -772,7 +772,7 @@ unlock:
45278 return 0;
45279 }
45280
45281 -static int mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45282 +static int __intentional_overflow(-1) mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45283 {
45284 struct mthca_dev *dev = to_mdev(ibcq->device);
45285 struct mthca_cq *cq = to_mcq(ibcq);
45286 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
45287 index 9f9d5c5..3c19aac 100644
45288 --- a/drivers/infiniband/hw/nes/nes.c
45289 +++ b/drivers/infiniband/hw/nes/nes.c
45290 @@ -97,7 +97,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
45291 LIST_HEAD(nes_adapter_list);
45292 static LIST_HEAD(nes_dev_list);
45293
45294 -atomic_t qps_destroyed;
45295 +atomic_unchecked_t qps_destroyed;
45296
45297 static unsigned int ee_flsh_adapter;
45298 static unsigned int sysfs_nonidx_addr;
45299 @@ -279,7 +279,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
45300 struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
45301 struct nes_adapter *nesadapter = nesdev->nesadapter;
45302
45303 - atomic_inc(&qps_destroyed);
45304 + atomic_inc_unchecked(&qps_destroyed);
45305
45306 /* Free the control structures */
45307
45308 diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
45309 index bd9d132..70d84f4 100644
45310 --- a/drivers/infiniband/hw/nes/nes.h
45311 +++ b/drivers/infiniband/hw/nes/nes.h
45312 @@ -180,17 +180,17 @@ extern unsigned int nes_debug_level;
45313 extern unsigned int wqm_quanta;
45314 extern struct list_head nes_adapter_list;
45315
45316 -extern atomic_t cm_connects;
45317 -extern atomic_t cm_accepts;
45318 -extern atomic_t cm_disconnects;
45319 -extern atomic_t cm_closes;
45320 -extern atomic_t cm_connecteds;
45321 -extern atomic_t cm_connect_reqs;
45322 -extern atomic_t cm_rejects;
45323 -extern atomic_t mod_qp_timouts;
45324 -extern atomic_t qps_created;
45325 -extern atomic_t qps_destroyed;
45326 -extern atomic_t sw_qps_destroyed;
45327 +extern atomic_unchecked_t cm_connects;
45328 +extern atomic_unchecked_t cm_accepts;
45329 +extern atomic_unchecked_t cm_disconnects;
45330 +extern atomic_unchecked_t cm_closes;
45331 +extern atomic_unchecked_t cm_connecteds;
45332 +extern atomic_unchecked_t cm_connect_reqs;
45333 +extern atomic_unchecked_t cm_rejects;
45334 +extern atomic_unchecked_t mod_qp_timouts;
45335 +extern atomic_unchecked_t qps_created;
45336 +extern atomic_unchecked_t qps_destroyed;
45337 +extern atomic_unchecked_t sw_qps_destroyed;
45338 extern u32 mh_detected;
45339 extern u32 mh_pauses_sent;
45340 extern u32 cm_packets_sent;
45341 @@ -199,16 +199,16 @@ extern u32 cm_packets_created;
45342 extern u32 cm_packets_received;
45343 extern u32 cm_packets_dropped;
45344 extern u32 cm_packets_retrans;
45345 -extern atomic_t cm_listens_created;
45346 -extern atomic_t cm_listens_destroyed;
45347 +extern atomic_unchecked_t cm_listens_created;
45348 +extern atomic_unchecked_t cm_listens_destroyed;
45349 extern u32 cm_backlog_drops;
45350 -extern atomic_t cm_loopbacks;
45351 -extern atomic_t cm_nodes_created;
45352 -extern atomic_t cm_nodes_destroyed;
45353 -extern atomic_t cm_accel_dropped_pkts;
45354 -extern atomic_t cm_resets_recvd;
45355 -extern atomic_t pau_qps_created;
45356 -extern atomic_t pau_qps_destroyed;
45357 +extern atomic_unchecked_t cm_loopbacks;
45358 +extern atomic_unchecked_t cm_nodes_created;
45359 +extern atomic_unchecked_t cm_nodes_destroyed;
45360 +extern atomic_unchecked_t cm_accel_dropped_pkts;
45361 +extern atomic_unchecked_t cm_resets_recvd;
45362 +extern atomic_unchecked_t pau_qps_created;
45363 +extern atomic_unchecked_t pau_qps_destroyed;
45364
45365 extern u32 int_mod_timer_init;
45366 extern u32 int_mod_cq_depth_256;
45367 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
45368 index 8a3ad17..e1ed4bc 100644
45369 --- a/drivers/infiniband/hw/nes/nes_cm.c
45370 +++ b/drivers/infiniband/hw/nes/nes_cm.c
45371 @@ -69,14 +69,14 @@ u32 cm_packets_dropped;
45372 u32 cm_packets_retrans;
45373 u32 cm_packets_created;
45374 u32 cm_packets_received;
45375 -atomic_t cm_listens_created;
45376 -atomic_t cm_listens_destroyed;
45377 +atomic_unchecked_t cm_listens_created;
45378 +atomic_unchecked_t cm_listens_destroyed;
45379 u32 cm_backlog_drops;
45380 -atomic_t cm_loopbacks;
45381 -atomic_t cm_nodes_created;
45382 -atomic_t cm_nodes_destroyed;
45383 -atomic_t cm_accel_dropped_pkts;
45384 -atomic_t cm_resets_recvd;
45385 +atomic_unchecked_t cm_loopbacks;
45386 +atomic_unchecked_t cm_nodes_created;
45387 +atomic_unchecked_t cm_nodes_destroyed;
45388 +atomic_unchecked_t cm_accel_dropped_pkts;
45389 +atomic_unchecked_t cm_resets_recvd;
45390
45391 static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
45392 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
45393 @@ -135,28 +135,28 @@ static void record_ird_ord(struct nes_cm_node *, u16, u16);
45394 /* instance of function pointers for client API */
45395 /* set address of this instance to cm_core->cm_ops at cm_core alloc */
45396 static struct nes_cm_ops nes_cm_api = {
45397 - mini_cm_accelerated,
45398 - mini_cm_listen,
45399 - mini_cm_del_listen,
45400 - mini_cm_connect,
45401 - mini_cm_close,
45402 - mini_cm_accept,
45403 - mini_cm_reject,
45404 - mini_cm_recv_pkt,
45405 - mini_cm_dealloc_core,
45406 - mini_cm_get,
45407 - mini_cm_set
45408 + .accelerated = mini_cm_accelerated,
45409 + .listen = mini_cm_listen,
45410 + .stop_listener = mini_cm_del_listen,
45411 + .connect = mini_cm_connect,
45412 + .close = mini_cm_close,
45413 + .accept = mini_cm_accept,
45414 + .reject = mini_cm_reject,
45415 + .recv_pkt = mini_cm_recv_pkt,
45416 + .destroy_cm_core = mini_cm_dealloc_core,
45417 + .get = mini_cm_get,
45418 + .set = mini_cm_set
45419 };
45420
45421 static struct nes_cm_core *g_cm_core;
45422
45423 -atomic_t cm_connects;
45424 -atomic_t cm_accepts;
45425 -atomic_t cm_disconnects;
45426 -atomic_t cm_closes;
45427 -atomic_t cm_connecteds;
45428 -atomic_t cm_connect_reqs;
45429 -atomic_t cm_rejects;
45430 +atomic_unchecked_t cm_connects;
45431 +atomic_unchecked_t cm_accepts;
45432 +atomic_unchecked_t cm_disconnects;
45433 +atomic_unchecked_t cm_closes;
45434 +atomic_unchecked_t cm_connecteds;
45435 +atomic_unchecked_t cm_connect_reqs;
45436 +atomic_unchecked_t cm_rejects;
45437
45438 int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
45439 {
45440 @@ -1461,7 +1461,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
45441 kfree(listener);
45442 listener = NULL;
45443 ret = 0;
45444 - atomic_inc(&cm_listens_destroyed);
45445 + atomic_inc_unchecked(&cm_listens_destroyed);
45446 } else {
45447 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
45448 }
45449 @@ -1670,7 +1670,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
45450 cm_node->rem_mac);
45451
45452 add_hte_node(cm_core, cm_node);
45453 - atomic_inc(&cm_nodes_created);
45454 + atomic_inc_unchecked(&cm_nodes_created);
45455
45456 return cm_node;
45457 }
45458 @@ -1731,7 +1731,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
45459 }
45460
45461 atomic_dec(&cm_core->node_cnt);
45462 - atomic_inc(&cm_nodes_destroyed);
45463 + atomic_inc_unchecked(&cm_nodes_destroyed);
45464 nesqp = cm_node->nesqp;
45465 if (nesqp) {
45466 nesqp->cm_node = NULL;
45467 @@ -1795,7 +1795,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
45468
45469 static void drop_packet(struct sk_buff *skb)
45470 {
45471 - atomic_inc(&cm_accel_dropped_pkts);
45472 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45473 dev_kfree_skb_any(skb);
45474 }
45475
45476 @@ -1858,7 +1858,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
45477 {
45478
45479 int reset = 0; /* whether to send reset in case of err.. */
45480 - atomic_inc(&cm_resets_recvd);
45481 + atomic_inc_unchecked(&cm_resets_recvd);
45482 nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
45483 " refcnt=%d\n", cm_node, cm_node->state,
45484 atomic_read(&cm_node->ref_count));
45485 @@ -2526,7 +2526,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
45486 rem_ref_cm_node(cm_node->cm_core, cm_node);
45487 return NULL;
45488 }
45489 - atomic_inc(&cm_loopbacks);
45490 + atomic_inc_unchecked(&cm_loopbacks);
45491 loopbackremotenode->loopbackpartner = cm_node;
45492 loopbackremotenode->tcp_cntxt.rcv_wscale =
45493 NES_CM_DEFAULT_RCV_WND_SCALE;
45494 @@ -2807,7 +2807,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
45495 nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
45496 else {
45497 rem_ref_cm_node(cm_core, cm_node);
45498 - atomic_inc(&cm_accel_dropped_pkts);
45499 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45500 dev_kfree_skb_any(skb);
45501 }
45502 break;
45503 @@ -3118,7 +3118,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45504
45505 if ((cm_id) && (cm_id->event_handler)) {
45506 if (issue_disconn) {
45507 - atomic_inc(&cm_disconnects);
45508 + atomic_inc_unchecked(&cm_disconnects);
45509 cm_event.event = IW_CM_EVENT_DISCONNECT;
45510 cm_event.status = disconn_status;
45511 cm_event.local_addr = cm_id->local_addr;
45512 @@ -3140,7 +3140,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45513 }
45514
45515 if (issue_close) {
45516 - atomic_inc(&cm_closes);
45517 + atomic_inc_unchecked(&cm_closes);
45518 nes_disconnect(nesqp, 1);
45519
45520 cm_id->provider_data = nesqp;
45521 @@ -3278,7 +3278,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45522
45523 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
45524 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
45525 - atomic_inc(&cm_accepts);
45526 + atomic_inc_unchecked(&cm_accepts);
45527
45528 nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
45529 netdev_refcnt_read(nesvnic->netdev));
45530 @@ -3476,7 +3476,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
45531 struct nes_cm_core *cm_core;
45532 u8 *start_buff;
45533
45534 - atomic_inc(&cm_rejects);
45535 + atomic_inc_unchecked(&cm_rejects);
45536 cm_node = (struct nes_cm_node *)cm_id->provider_data;
45537 loopback = cm_node->loopbackpartner;
45538 cm_core = cm_node->cm_core;
45539 @@ -3541,7 +3541,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45540 ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
45541 ntohs(laddr->sin_port));
45542
45543 - atomic_inc(&cm_connects);
45544 + atomic_inc_unchecked(&cm_connects);
45545 nesqp->active_conn = 1;
45546
45547 /* cache the cm_id in the qp */
45548 @@ -3688,7 +3688,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
45549 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
45550 return err;
45551 }
45552 - atomic_inc(&cm_listens_created);
45553 + atomic_inc_unchecked(&cm_listens_created);
45554 }
45555
45556 cm_id->add_ref(cm_id);
45557 @@ -3795,7 +3795,7 @@ static void cm_event_connected(struct nes_cm_event *event)
45558
45559 if (nesqp->destroyed)
45560 return;
45561 - atomic_inc(&cm_connecteds);
45562 + atomic_inc_unchecked(&cm_connecteds);
45563 nes_debug(NES_DBG_CM, "QP%u attempting to connect to 0x%08X:0x%04X on"
45564 " local port 0x%04X. jiffies = %lu.\n",
45565 nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
45566 @@ -3980,7 +3980,7 @@ static void cm_event_reset(struct nes_cm_event *event)
45567
45568 cm_id->add_ref(cm_id);
45569 ret = cm_id->event_handler(cm_id, &cm_event);
45570 - atomic_inc(&cm_closes);
45571 + atomic_inc_unchecked(&cm_closes);
45572 cm_event.event = IW_CM_EVENT_CLOSE;
45573 cm_event.status = 0;
45574 cm_event.provider_data = cm_id->provider_data;
45575 @@ -4020,7 +4020,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
45576 return;
45577 cm_id = cm_node->cm_id;
45578
45579 - atomic_inc(&cm_connect_reqs);
45580 + atomic_inc_unchecked(&cm_connect_reqs);
45581 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45582 cm_node, cm_id, jiffies);
45583
45584 @@ -4069,7 +4069,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
45585 return;
45586 cm_id = cm_node->cm_id;
45587
45588 - atomic_inc(&cm_connect_reqs);
45589 + atomic_inc_unchecked(&cm_connect_reqs);
45590 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45591 cm_node, cm_id, jiffies);
45592
45593 diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
45594 index 4166452..fc952c3 100644
45595 --- a/drivers/infiniband/hw/nes/nes_mgt.c
45596 +++ b/drivers/infiniband/hw/nes/nes_mgt.c
45597 @@ -40,8 +40,8 @@
45598 #include "nes.h"
45599 #include "nes_mgt.h"
45600
45601 -atomic_t pau_qps_created;
45602 -atomic_t pau_qps_destroyed;
45603 +atomic_unchecked_t pau_qps_created;
45604 +atomic_unchecked_t pau_qps_destroyed;
45605
45606 static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
45607 {
45608 @@ -621,7 +621,7 @@ void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp)
45609 {
45610 struct sk_buff *skb;
45611 unsigned long flags;
45612 - atomic_inc(&pau_qps_destroyed);
45613 + atomic_inc_unchecked(&pau_qps_destroyed);
45614
45615 /* Free packets that have not yet been forwarded */
45616 /* Lock is acquired by skb_dequeue when removing the skb */
45617 @@ -810,7 +810,7 @@ static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *
45618 cq->cq_vbase[head].cqe_words[NES_NIC_CQE_HASH_RCVNXT]);
45619 skb_queue_head_init(&nesqp->pau_list);
45620 spin_lock_init(&nesqp->pau_lock);
45621 - atomic_inc(&pau_qps_created);
45622 + atomic_inc_unchecked(&pau_qps_created);
45623 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp);
45624 }
45625
45626 diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
45627 index 70acda9..a96de9d 100644
45628 --- a/drivers/infiniband/hw/nes/nes_nic.c
45629 +++ b/drivers/infiniband/hw/nes/nes_nic.c
45630 @@ -1274,39 +1274,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
45631 target_stat_values[++index] = mh_detected;
45632 target_stat_values[++index] = mh_pauses_sent;
45633 target_stat_values[++index] = nesvnic->endnode_ipv4_tcp_retransmits;
45634 - target_stat_values[++index] = atomic_read(&cm_connects);
45635 - target_stat_values[++index] = atomic_read(&cm_accepts);
45636 - target_stat_values[++index] = atomic_read(&cm_disconnects);
45637 - target_stat_values[++index] = atomic_read(&cm_connecteds);
45638 - target_stat_values[++index] = atomic_read(&cm_connect_reqs);
45639 - target_stat_values[++index] = atomic_read(&cm_rejects);
45640 - target_stat_values[++index] = atomic_read(&mod_qp_timouts);
45641 - target_stat_values[++index] = atomic_read(&qps_created);
45642 - target_stat_values[++index] = atomic_read(&sw_qps_destroyed);
45643 - target_stat_values[++index] = atomic_read(&qps_destroyed);
45644 - target_stat_values[++index] = atomic_read(&cm_closes);
45645 + target_stat_values[++index] = atomic_read_unchecked(&cm_connects);
45646 + target_stat_values[++index] = atomic_read_unchecked(&cm_accepts);
45647 + target_stat_values[++index] = atomic_read_unchecked(&cm_disconnects);
45648 + target_stat_values[++index] = atomic_read_unchecked(&cm_connecteds);
45649 + target_stat_values[++index] = atomic_read_unchecked(&cm_connect_reqs);
45650 + target_stat_values[++index] = atomic_read_unchecked(&cm_rejects);
45651 + target_stat_values[++index] = atomic_read_unchecked(&mod_qp_timouts);
45652 + target_stat_values[++index] = atomic_read_unchecked(&qps_created);
45653 + target_stat_values[++index] = atomic_read_unchecked(&sw_qps_destroyed);
45654 + target_stat_values[++index] = atomic_read_unchecked(&qps_destroyed);
45655 + target_stat_values[++index] = atomic_read_unchecked(&cm_closes);
45656 target_stat_values[++index] = cm_packets_sent;
45657 target_stat_values[++index] = cm_packets_bounced;
45658 target_stat_values[++index] = cm_packets_created;
45659 target_stat_values[++index] = cm_packets_received;
45660 target_stat_values[++index] = cm_packets_dropped;
45661 target_stat_values[++index] = cm_packets_retrans;
45662 - target_stat_values[++index] = atomic_read(&cm_listens_created);
45663 - target_stat_values[++index] = atomic_read(&cm_listens_destroyed);
45664 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_created);
45665 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_destroyed);
45666 target_stat_values[++index] = cm_backlog_drops;
45667 - target_stat_values[++index] = atomic_read(&cm_loopbacks);
45668 - target_stat_values[++index] = atomic_read(&cm_nodes_created);
45669 - target_stat_values[++index] = atomic_read(&cm_nodes_destroyed);
45670 - target_stat_values[++index] = atomic_read(&cm_accel_dropped_pkts);
45671 - target_stat_values[++index] = atomic_read(&cm_resets_recvd);
45672 + target_stat_values[++index] = atomic_read_unchecked(&cm_loopbacks);
45673 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_created);
45674 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_destroyed);
45675 + target_stat_values[++index] = atomic_read_unchecked(&cm_accel_dropped_pkts);
45676 + target_stat_values[++index] = atomic_read_unchecked(&cm_resets_recvd);
45677 target_stat_values[++index] = nesadapter->free_4kpbl;
45678 target_stat_values[++index] = nesadapter->free_256pbl;
45679 target_stat_values[++index] = int_mod_timer_init;
45680 target_stat_values[++index] = nesvnic->lro_mgr.stats.aggregated;
45681 target_stat_values[++index] = nesvnic->lro_mgr.stats.flushed;
45682 target_stat_values[++index] = nesvnic->lro_mgr.stats.no_desc;
45683 - target_stat_values[++index] = atomic_read(&pau_qps_created);
45684 - target_stat_values[++index] = atomic_read(&pau_qps_destroyed);
45685 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_created);
45686 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_destroyed);
45687 }
45688
45689 /**
45690 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
45691 index 44cb513..6702198 100644
45692 --- a/drivers/infiniband/hw/nes/nes_verbs.c
45693 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
45694 @@ -46,9 +46,9 @@
45695
45696 #include <rdma/ib_umem.h>
45697
45698 -atomic_t mod_qp_timouts;
45699 -atomic_t qps_created;
45700 -atomic_t sw_qps_destroyed;
45701 +atomic_unchecked_t mod_qp_timouts;
45702 +atomic_unchecked_t qps_created;
45703 +atomic_unchecked_t sw_qps_destroyed;
45704
45705 static void nes_unregister_ofa_device(struct nes_ib_device *nesibdev);
45706
45707 @@ -1146,7 +1146,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
45708 if (init_attr->create_flags)
45709 return ERR_PTR(-EINVAL);
45710
45711 - atomic_inc(&qps_created);
45712 + atomic_inc_unchecked(&qps_created);
45713 switch (init_attr->qp_type) {
45714 case IB_QPT_RC:
45715 if (nes_drv_opt & NES_DRV_OPT_NO_INLINE_DATA) {
45716 @@ -1480,7 +1480,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
45717 struct iw_cm_event cm_event;
45718 int ret = 0;
45719
45720 - atomic_inc(&sw_qps_destroyed);
45721 + atomic_inc_unchecked(&sw_qps_destroyed);
45722 nesqp->destroyed = 1;
45723
45724 /* Blow away the connection if it exists. */
45725 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
45726 index 7df16f7..7e1b21e 100644
45727 --- a/drivers/infiniband/hw/qib/qib.h
45728 +++ b/drivers/infiniband/hw/qib/qib.h
45729 @@ -52,6 +52,7 @@
45730 #include <linux/kref.h>
45731 #include <linux/sched.h>
45732 #include <linux/kthread.h>
45733 +#include <linux/slab.h>
45734
45735 #include "qib_common.h"
45736 #include "qib_verbs.h"
45737 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45738 index cdc7df4..a2fdfdb 100644
45739 --- a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45740 +++ b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45741 @@ -156,7 +156,7 @@ static size_t ipoib_get_size(const struct net_device *dev)
45742 nla_total_size(2); /* IFLA_IPOIB_UMCAST */
45743 }
45744
45745 -static struct rtnl_link_ops ipoib_link_ops __read_mostly = {
45746 +static struct rtnl_link_ops ipoib_link_ops = {
45747 .kind = "ipoib",
45748 .maxtype = IFLA_IPOIB_MAX,
45749 .policy = ipoib_policy,
45750 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
45751 index 4a2a9e3..b9261a7 100644
45752 --- a/drivers/input/gameport/gameport.c
45753 +++ b/drivers/input/gameport/gameport.c
45754 @@ -527,14 +527,14 @@ EXPORT_SYMBOL(gameport_set_phys);
45755 */
45756 static void gameport_init_port(struct gameport *gameport)
45757 {
45758 - static atomic_t gameport_no = ATOMIC_INIT(-1);
45759 + static atomic_unchecked_t gameport_no = ATOMIC_INIT(-1);
45760
45761 __module_get(THIS_MODULE);
45762
45763 mutex_init(&gameport->drv_mutex);
45764 device_initialize(&gameport->dev);
45765 dev_set_name(&gameport->dev, "gameport%lu",
45766 - (unsigned long)atomic_inc_return(&gameport_no));
45767 + (unsigned long)atomic_inc_return_unchecked(&gameport_no));
45768 gameport->dev.bus = &gameport_bus;
45769 gameport->dev.release = gameport_release_port;
45770 if (gameport->parent)
45771 diff --git a/drivers/input/input.c b/drivers/input/input.c
45772 index 5391abd..d454638 100644
45773 --- a/drivers/input/input.c
45774 +++ b/drivers/input/input.c
45775 @@ -1781,7 +1781,7 @@ EXPORT_SYMBOL_GPL(input_class);
45776 */
45777 struct input_dev *input_allocate_device(void)
45778 {
45779 - static atomic_t input_no = ATOMIC_INIT(-1);
45780 + static atomic_unchecked_t input_no = ATOMIC_INIT(-1);
45781 struct input_dev *dev;
45782
45783 dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
45784 @@ -1796,7 +1796,7 @@ struct input_dev *input_allocate_device(void)
45785 INIT_LIST_HEAD(&dev->node);
45786
45787 dev_set_name(&dev->dev, "input%lu",
45788 - (unsigned long)atomic_inc_return(&input_no));
45789 + (unsigned long)atomic_inc_return_unchecked(&input_no));
45790
45791 __module_get(THIS_MODULE);
45792 }
45793 diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
45794 index 4a95b22..874c182 100644
45795 --- a/drivers/input/joystick/sidewinder.c
45796 +++ b/drivers/input/joystick/sidewinder.c
45797 @@ -30,6 +30,7 @@
45798 #include <linux/kernel.h>
45799 #include <linux/module.h>
45800 #include <linux/slab.h>
45801 +#include <linux/sched.h>
45802 #include <linux/input.h>
45803 #include <linux/gameport.h>
45804 #include <linux/jiffies.h>
45805 diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
45806 index f8850f9..9708a2d 100644
45807 --- a/drivers/input/joystick/xpad.c
45808 +++ b/drivers/input/joystick/xpad.c
45809 @@ -959,7 +959,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
45810
45811 static int xpad_led_probe(struct usb_xpad *xpad)
45812 {
45813 - static atomic_t led_seq = ATOMIC_INIT(-1);
45814 + static atomic_unchecked_t led_seq = ATOMIC_INIT(-1);
45815 struct xpad_led *led;
45816 struct led_classdev *led_cdev;
45817 int error;
45818 @@ -971,7 +971,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
45819 if (!led)
45820 return -ENOMEM;
45821
45822 - xpad->led_no = atomic_inc_return(&led_seq);
45823 + xpad->led_no = atomic_inc_return_unchecked(&led_seq);
45824
45825 snprintf(led->name, sizeof(led->name), "xpad%lu", xpad->led_no);
45826 led->xpad = xpad;
45827 diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
45828 index ac1fa5f..5f7502c 100644
45829 --- a/drivers/input/misc/ims-pcu.c
45830 +++ b/drivers/input/misc/ims-pcu.c
45831 @@ -1851,7 +1851,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 *device_id)
45832
45833 static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
45834 {
45835 - static atomic_t device_no = ATOMIC_INIT(-1);
45836 + static atomic_unchecked_t device_no = ATOMIC_INIT(-1);
45837
45838 const struct ims_pcu_device_info *info;
45839 int error;
45840 @@ -1882,7 +1882,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
45841 }
45842
45843 /* Device appears to be operable, complete initialization */
45844 - pcu->device_no = atomic_inc_return(&device_no);
45845 + pcu->device_no = atomic_inc_return_unchecked(&device_no);
45846
45847 /*
45848 * PCU-B devices, both GEN_1 and GEN_2 do not have OFN sensor
45849 diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
45850 index ad5a5a1..5eac214 100644
45851 --- a/drivers/input/mouse/psmouse.h
45852 +++ b/drivers/input/mouse/psmouse.h
45853 @@ -125,7 +125,7 @@ struct psmouse_attribute {
45854 ssize_t (*set)(struct psmouse *psmouse, void *data,
45855 const char *buf, size_t count);
45856 bool protect;
45857 -};
45858 +} __do_const;
45859 #define to_psmouse_attr(a) container_of((a), struct psmouse_attribute, dattr)
45860
45861 ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *attr,
45862 diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
45863 index b604564..3f14ae4 100644
45864 --- a/drivers/input/mousedev.c
45865 +++ b/drivers/input/mousedev.c
45866 @@ -744,7 +744,7 @@ static ssize_t mousedev_read(struct file *file, char __user *buffer,
45867
45868 spin_unlock_irq(&client->packet_lock);
45869
45870 - if (copy_to_user(buffer, data, count))
45871 + if (count > sizeof(data) || copy_to_user(buffer, data, count))
45872 return -EFAULT;
45873
45874 return count;
45875 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
45876 index 8f82897..f5efcd9 100644
45877 --- a/drivers/input/serio/serio.c
45878 +++ b/drivers/input/serio/serio.c
45879 @@ -512,7 +512,7 @@ static void serio_release_port(struct device *dev)
45880 */
45881 static void serio_init_port(struct serio *serio)
45882 {
45883 - static atomic_t serio_no = ATOMIC_INIT(-1);
45884 + static atomic_unchecked_t serio_no = ATOMIC_INIT(-1);
45885
45886 __module_get(THIS_MODULE);
45887
45888 @@ -523,7 +523,7 @@ static void serio_init_port(struct serio *serio)
45889 mutex_init(&serio->drv_mutex);
45890 device_initialize(&serio->dev);
45891 dev_set_name(&serio->dev, "serio%lu",
45892 - (unsigned long)atomic_inc_return(&serio_no));
45893 + (unsigned long)atomic_inc_return_unchecked(&serio_no));
45894 serio->dev.bus = &serio_bus;
45895 serio->dev.release = serio_release_port;
45896 serio->dev.groups = serio_device_attr_groups;
45897 diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
45898 index 71ef5d6..93380a9 100644
45899 --- a/drivers/input/serio/serio_raw.c
45900 +++ b/drivers/input/serio/serio_raw.c
45901 @@ -292,7 +292,7 @@ static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data,
45902
45903 static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
45904 {
45905 - static atomic_t serio_raw_no = ATOMIC_INIT(-1);
45906 + static atomic_unchecked_t serio_raw_no = ATOMIC_INIT(-1);
45907 struct serio_raw *serio_raw;
45908 int err;
45909
45910 @@ -303,7 +303,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
45911 }
45912
45913 snprintf(serio_raw->name, sizeof(serio_raw->name),
45914 - "serio_raw%ld", (long)atomic_inc_return(&serio_raw_no));
45915 + "serio_raw%ld", (long)atomic_inc_return_unchecked(&serio_raw_no));
45916 kref_init(&serio_raw->kref);
45917 INIT_LIST_HEAD(&serio_raw->client_list);
45918 init_waitqueue_head(&serio_raw->wait);
45919 diff --git a/drivers/input/touchscreen/htcpen.c b/drivers/input/touchscreen/htcpen.c
45920 index 92e2243..8fd9092 100644
45921 --- a/drivers/input/touchscreen/htcpen.c
45922 +++ b/drivers/input/touchscreen/htcpen.c
45923 @@ -219,7 +219,7 @@ static struct isa_driver htcpen_isa_driver = {
45924 }
45925 };
45926
45927 -static struct dmi_system_id htcshift_dmi_table[] __initdata = {
45928 +static const struct dmi_system_id htcshift_dmi_table[] __initconst = {
45929 {
45930 .ident = "Shift",
45931 .matches = {
45932 diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
45933 index cbe6a89..da64411 100644
45934 --- a/drivers/iommu/Kconfig
45935 +++ b/drivers/iommu/Kconfig
45936 @@ -102,6 +102,7 @@ config AMD_IOMMU_STATS
45937 bool "Export AMD IOMMU statistics to debugfs"
45938 depends on AMD_IOMMU
45939 select DEBUG_FS
45940 + depends on !GRKERNSEC_KMEM
45941 ---help---
45942 This option enables code in the AMD IOMMU driver to collect various
45943 statistics about whats happening in the driver and exports that
45944 diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
45945 index 532e2a2..a60aa73 100644
45946 --- a/drivers/iommu/amd_iommu.c
45947 +++ b/drivers/iommu/amd_iommu.c
45948 @@ -794,11 +794,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
45949
45950 static void build_completion_wait(struct iommu_cmd *cmd, u64 address)
45951 {
45952 + phys_addr_t physaddr;
45953 WARN_ON(address & 0x7ULL);
45954
45955 memset(cmd, 0, sizeof(*cmd));
45956 - cmd->data[0] = lower_32_bits(__pa(address)) | CMD_COMPL_WAIT_STORE_MASK;
45957 - cmd->data[1] = upper_32_bits(__pa(address));
45958 +
45959 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
45960 + if (object_starts_on_stack((void *)address)) {
45961 + void *adjbuf = (void *)address - current->stack + current->lowmem_stack;
45962 + physaddr = __pa((u64)adjbuf);
45963 + } else
45964 +#endif
45965 + physaddr = __pa(address);
45966 +
45967 + cmd->data[0] = lower_32_bits(physaddr) | CMD_COMPL_WAIT_STORE_MASK;
45968 + cmd->data[1] = upper_32_bits(physaddr);
45969 cmd->data[2] = 1;
45970 CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
45971 }
45972 diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
45973 index 286e890..c2220cc 100644
45974 --- a/drivers/iommu/arm-smmu-v3.c
45975 +++ b/drivers/iommu/arm-smmu-v3.c
45976 @@ -1516,7 +1516,7 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain)
45977 .iommu_dev = smmu->dev,
45978 };
45979
45980 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
45981 + pgtbl_ops = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
45982 if (!pgtbl_ops)
45983 return -ENOMEM;
45984
45985 diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
45986 index 48a39df..d7db978 100644
45987 --- a/drivers/iommu/arm-smmu.c
45988 +++ b/drivers/iommu/arm-smmu.c
45989 @@ -331,7 +331,7 @@ enum arm_smmu_domain_stage {
45990
45991 struct arm_smmu_domain {
45992 struct arm_smmu_device *smmu;
45993 - struct io_pgtable_ops *pgtbl_ops;
45994 + struct io_pgtable *pgtbl;
45995 spinlock_t pgtbl_lock;
45996 struct arm_smmu_cfg cfg;
45997 enum arm_smmu_domain_stage stage;
45998 @@ -793,7 +793,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
45999 {
46000 int irq, start, ret = 0;
46001 unsigned long ias, oas;
46002 - struct io_pgtable_ops *pgtbl_ops;
46003 + struct io_pgtable *pgtbl;
46004 struct io_pgtable_cfg pgtbl_cfg;
46005 enum io_pgtable_fmt fmt;
46006 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46007 @@ -879,14 +879,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46008 };
46009
46010 smmu_domain->smmu = smmu;
46011 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
46012 - if (!pgtbl_ops) {
46013 + pgtbl = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
46014 + if (!pgtbl) {
46015 ret = -ENOMEM;
46016 goto out_clear_smmu;
46017 }
46018
46019 /* Update our support page sizes to reflect the page table format */
46020 - arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46021 + pax_open_kernel();
46022 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46023 + pax_close_kernel();
46024
46025 /* Initialise the context bank with our page table cfg */
46026 arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg);
46027 @@ -907,7 +909,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46028 mutex_unlock(&smmu_domain->init_mutex);
46029
46030 /* Publish page table ops for map/unmap */
46031 - smmu_domain->pgtbl_ops = pgtbl_ops;
46032 + smmu_domain->pgtbl = pgtbl;
46033 return 0;
46034
46035 out_clear_smmu:
46036 @@ -940,8 +942,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
46037 free_irq(irq, domain);
46038 }
46039
46040 - if (smmu_domain->pgtbl_ops)
46041 - free_io_pgtable_ops(smmu_domain->pgtbl_ops);
46042 + free_io_pgtable(smmu_domain->pgtbl);
46043
46044 __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx);
46045 }
46046 @@ -1167,13 +1168,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
46047 int ret;
46048 unsigned long flags;
46049 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46050 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46051 + struct io_pgtable *iop = smmu_domain->pgtbl;
46052
46053 - if (!ops)
46054 + if (!iop)
46055 return -ENODEV;
46056
46057 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46058 - ret = ops->map(ops, iova, paddr, size, prot);
46059 + ret = iop->ops->map(iop, iova, paddr, size, prot);
46060 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46061 return ret;
46062 }
46063 @@ -1184,13 +1185,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
46064 size_t ret;
46065 unsigned long flags;
46066 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46067 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46068 + struct io_pgtable *iop = smmu_domain->pgtbl;
46069
46070 - if (!ops)
46071 + if (!iop)
46072 return 0;
46073
46074 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46075 - ret = ops->unmap(ops, iova, size);
46076 + ret = iop->ops->unmap(iop, iova, size);
46077 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46078 return ret;
46079 }
46080 @@ -1201,7 +1202,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46081 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46082 struct arm_smmu_device *smmu = smmu_domain->smmu;
46083 struct arm_smmu_cfg *cfg = &smmu_domain->cfg;
46084 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46085 + struct io_pgtable *iop = smmu_domain->pgtbl;
46086 struct device *dev = smmu->dev;
46087 void __iomem *cb_base;
46088 u32 tmp;
46089 @@ -1224,7 +1225,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46090 dev_err(dev,
46091 "iova to phys timed out on 0x%pad. Falling back to software table walk.\n",
46092 &iova);
46093 - return ops->iova_to_phys(ops, iova);
46094 + return iop->ops->iova_to_phys(iop, iova);
46095 }
46096
46097 phys = readl_relaxed(cb_base + ARM_SMMU_CB_PAR_LO);
46098 @@ -1245,9 +1246,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46099 phys_addr_t ret;
46100 unsigned long flags;
46101 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46102 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46103 + struct io_pgtable *iop = smmu_domain->pgtbl;
46104
46105 - if (!ops)
46106 + if (!iop)
46107 return 0;
46108
46109 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46110 @@ -1255,7 +1256,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46111 smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
46112 ret = arm_smmu_iova_to_phys_hard(domain, iova);
46113 } else {
46114 - ret = ops->iova_to_phys(ops, iova);
46115 + ret = iop->ops->iova_to_phys(iop, iova);
46116 }
46117
46118 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46119 @@ -1658,7 +1659,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
46120 size |= SZ_64K | SZ_512M;
46121 }
46122
46123 - arm_smmu_ops.pgsize_bitmap &= size;
46124 + pax_open_kernel();
46125 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap &= size;
46126 + pax_close_kernel();
46127 dev_notice(smmu->dev, "\tSupported page sizes: 0x%08lx\n", size);
46128
46129 if (smmu->features & ARM_SMMU_FEAT_TRANS_S1)
46130 diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
46131 index 7df9777..6fc3d9a 100644
46132 --- a/drivers/iommu/io-pgtable-arm.c
46133 +++ b/drivers/iommu/io-pgtable-arm.c
46134 @@ -38,12 +38,6 @@
46135 #define io_pgtable_to_data(x) \
46136 container_of((x), struct arm_lpae_io_pgtable, iop)
46137
46138 -#define io_pgtable_ops_to_pgtable(x) \
46139 - container_of((x), struct io_pgtable, ops)
46140 -
46141 -#define io_pgtable_ops_to_data(x) \
46142 - io_pgtable_to_data(io_pgtable_ops_to_pgtable(x))
46143 -
46144 /*
46145 * For consistency with the architecture, we always consider
46146 * ARM_LPAE_MAX_LEVELS levels, with the walk starting at level n >=0
46147 @@ -376,10 +370,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
46148 return pte;
46149 }
46150
46151 -static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
46152 +static int arm_lpae_map(struct io_pgtable *iop, unsigned long iova,
46153 phys_addr_t paddr, size_t size, int iommu_prot)
46154 {
46155 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46156 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46157 arm_lpae_iopte *ptep = data->pgd;
46158 int ret, lvl = ARM_LPAE_START_LVL(data);
46159 arm_lpae_iopte prot;
46160 @@ -523,12 +517,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
46161 return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
46162 }
46163
46164 -static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46165 +static int arm_lpae_unmap(struct io_pgtable *iop, unsigned long iova,
46166 size_t size)
46167 {
46168 size_t unmapped;
46169 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46170 - struct io_pgtable *iop = &data->iop;
46171 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46172 arm_lpae_iopte *ptep = data->pgd;
46173 int lvl = ARM_LPAE_START_LVL(data);
46174
46175 @@ -539,10 +532,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46176 return unmapped;
46177 }
46178
46179 -static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
46180 +static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable *iop,
46181 unsigned long iova)
46182 {
46183 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46184 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46185 arm_lpae_iopte pte, *ptep = data->pgd;
46186 int lvl = ARM_LPAE_START_LVL(data);
46187
46188 @@ -609,6 +602,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
46189 }
46190 }
46191
46192 +static struct io_pgtable_ops arm_lpae_io_pgtable_ops = {
46193 + .map = arm_lpae_map,
46194 + .unmap = arm_lpae_unmap,
46195 + .iova_to_phys = arm_lpae_iova_to_phys,
46196 +};
46197 +
46198 static struct arm_lpae_io_pgtable *
46199 arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46200 {
46201 @@ -645,11 +644,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46202 pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
46203 data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
46204
46205 - data->iop.ops = (struct io_pgtable_ops) {
46206 - .map = arm_lpae_map,
46207 - .unmap = arm_lpae_unmap,
46208 - .iova_to_phys = arm_lpae_iova_to_phys,
46209 - };
46210 + data->iop.ops = &arm_lpae_io_pgtable_ops;
46211
46212 return data;
46213 }
46214 @@ -907,9 +902,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
46215 .tlb_sync = dummy_tlb_sync,
46216 };
46217
46218 -static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46219 +static void __init arm_lpae_dump_ops(struct io_pgtable *iop)
46220 {
46221 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46222 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46223 struct io_pgtable_cfg *cfg = &data->iop.cfg;
46224
46225 pr_err("cfg: pgsize_bitmap 0x%lx, ias %u-bit\n",
46226 @@ -919,9 +914,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46227 data->bits_per_level, data->pgd);
46228 }
46229
46230 -#define __FAIL(ops, i) ({ \
46231 +#define __FAIL(iop, i) ({ \
46232 WARN(1, "selftest: test failed for fmt idx %d\n", (i)); \
46233 - arm_lpae_dump_ops(ops); \
46234 + arm_lpae_dump_ops(iop); \
46235 selftest_running = false; \
46236 -EFAULT; \
46237 })
46238 @@ -936,30 +931,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46239 int i, j;
46240 unsigned long iova;
46241 size_t size;
46242 - struct io_pgtable_ops *ops;
46243 + struct io_pgtable *iop;
46244 + const struct io_pgtable_ops *ops;
46245
46246 selftest_running = true;
46247
46248 for (i = 0; i < ARRAY_SIZE(fmts); ++i) {
46249 cfg_cookie = cfg;
46250 - ops = alloc_io_pgtable_ops(fmts[i], cfg, cfg);
46251 - if (!ops) {
46252 + iop = alloc_io_pgtable(fmts[i], cfg, cfg);
46253 + if (!iop) {
46254 pr_err("selftest: failed to allocate io pgtable ops\n");
46255 return -ENOMEM;
46256 }
46257 + ops = iop->ops;
46258
46259 /*
46260 * Initial sanity checks.
46261 * Empty page tables shouldn't provide any translations.
46262 */
46263 - if (ops->iova_to_phys(ops, 42))
46264 - return __FAIL(ops, i);
46265 + if (ops->iova_to_phys(iop, 42))
46266 + return __FAIL(iop, i);
46267
46268 - if (ops->iova_to_phys(ops, SZ_1G + 42))
46269 - return __FAIL(ops, i);
46270 + if (ops->iova_to_phys(iop, SZ_1G + 42))
46271 + return __FAIL(iop, i);
46272
46273 - if (ops->iova_to_phys(ops, SZ_2G + 42))
46274 - return __FAIL(ops, i);
46275 + if (ops->iova_to_phys(iop, SZ_2G + 42))
46276 + return __FAIL(iop, i);
46277
46278 /*
46279 * Distinct mappings of different granule sizes.
46280 @@ -969,19 +966,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46281 while (j != BITS_PER_LONG) {
46282 size = 1UL << j;
46283
46284 - if (ops->map(ops, iova, iova, size, IOMMU_READ |
46285 + if (ops->map(iop, iova, iova, size, IOMMU_READ |
46286 IOMMU_WRITE |
46287 IOMMU_NOEXEC |
46288 IOMMU_CACHE))
46289 - return __FAIL(ops, i);
46290 + return __FAIL(iop, i);
46291
46292 /* Overlapping mappings */
46293 - if (!ops->map(ops, iova, iova + size, size,
46294 + if (!ops->map(iop, iova, iova + size, size,
46295 IOMMU_READ | IOMMU_NOEXEC))
46296 - return __FAIL(ops, i);
46297 + return __FAIL(iop, i);
46298
46299 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46300 - return __FAIL(ops, i);
46301 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46302 + return __FAIL(iop, i);
46303
46304 iova += SZ_1G;
46305 j++;
46306 @@ -990,15 +987,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46307
46308 /* Partial unmap */
46309 size = 1UL << __ffs(cfg->pgsize_bitmap);
46310 - if (ops->unmap(ops, SZ_1G + size, size) != size)
46311 - return __FAIL(ops, i);
46312 + if (ops->unmap(iop, SZ_1G + size, size) != size)
46313 + return __FAIL(iop, i);
46314
46315 /* Remap of partial unmap */
46316 - if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ))
46317 - return __FAIL(ops, i);
46318 + if (ops->map(iop, SZ_1G + size, size, size, IOMMU_READ))
46319 + return __FAIL(iop, i);
46320
46321 - if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
46322 - return __FAIL(ops, i);
46323 + if (ops->iova_to_phys(iop, SZ_1G + size + 42) != (size + 42))
46324 + return __FAIL(iop, i);
46325
46326 /* Full unmap */
46327 iova = 0;
46328 @@ -1006,25 +1003,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46329 while (j != BITS_PER_LONG) {
46330 size = 1UL << j;
46331
46332 - if (ops->unmap(ops, iova, size) != size)
46333 - return __FAIL(ops, i);
46334 + if (ops->unmap(iop, iova, size) != size)
46335 + return __FAIL(iop, i);
46336
46337 - if (ops->iova_to_phys(ops, iova + 42))
46338 - return __FAIL(ops, i);
46339 + if (ops->iova_to_phys(iop, iova + 42))
46340 + return __FAIL(iop, i);
46341
46342 /* Remap full block */
46343 - if (ops->map(ops, iova, iova, size, IOMMU_WRITE))
46344 - return __FAIL(ops, i);
46345 + if (ops->map(iop, iova, iova, size, IOMMU_WRITE))
46346 + return __FAIL(iop, i);
46347
46348 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46349 - return __FAIL(ops, i);
46350 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46351 + return __FAIL(iop, i);
46352
46353 iova += SZ_1G;
46354 j++;
46355 j = find_next_bit(&cfg->pgsize_bitmap, BITS_PER_LONG, j);
46356 }
46357
46358 - free_io_pgtable_ops(ops);
46359 + free_io_pgtable(iop);
46360 }
46361
46362 selftest_running = false;
46363 diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
46364 index 6f2e319..c24d09a 100644
46365 --- a/drivers/iommu/io-pgtable.c
46366 +++ b/drivers/iommu/io-pgtable.c
46367 @@ -35,7 +35,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] =
46368 #endif
46369 };
46370
46371 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46372 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46373 struct io_pgtable_cfg *cfg,
46374 void *cookie)
46375 {
46376 @@ -57,21 +57,18 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46377 iop->cookie = cookie;
46378 iop->cfg = *cfg;
46379
46380 - return &iop->ops;
46381 + return iop;
46382 }
46383
46384 /*
46385 * It is the IOMMU driver's responsibility to ensure that the page table
46386 * is no longer accessible to the walker by this point.
46387 */
46388 -void free_io_pgtable_ops(struct io_pgtable_ops *ops)
46389 +void free_io_pgtable(struct io_pgtable *iop)
46390 {
46391 - struct io_pgtable *iop;
46392 -
46393 - if (!ops)
46394 + if (!iop)
46395 return;
46396
46397 - iop = container_of(ops, struct io_pgtable, ops);
46398 iop->cfg.tlb->tlb_flush_all(iop->cookie);
46399 io_pgtable_init_table[iop->fmt]->free(iop);
46400 }
46401 diff --git a/drivers/iommu/io-pgtable.h b/drivers/iommu/io-pgtable.h
46402 index ac9e234..a2f206e 100644
46403 --- a/drivers/iommu/io-pgtable.h
46404 +++ b/drivers/iommu/io-pgtable.h
46405 @@ -78,17 +78,18 @@ struct io_pgtable_cfg {
46406 * These functions map directly onto the iommu_ops member functions with
46407 * the same names.
46408 */
46409 +struct io_pgtable;
46410 struct io_pgtable_ops {
46411 - int (*map)(struct io_pgtable_ops *ops, unsigned long iova,
46412 + int (*map)(struct io_pgtable *iop, unsigned long iova,
46413 phys_addr_t paddr, size_t size, int prot);
46414 - int (*unmap)(struct io_pgtable_ops *ops, unsigned long iova,
46415 + int (*unmap)(struct io_pgtable *iop, unsigned long iova,
46416 size_t size);
46417 - phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *ops,
46418 + phys_addr_t (*iova_to_phys)(struct io_pgtable *iop,
46419 unsigned long iova);
46420 };
46421
46422 /**
46423 - * alloc_io_pgtable_ops() - Allocate a page table allocator for use by an IOMMU.
46424 + * alloc_io_pgtable() - Allocate a page table allocator for use by an IOMMU.
46425 *
46426 * @fmt: The page table format.
46427 * @cfg: The page table configuration. This will be modified to represent
46428 @@ -97,9 +98,9 @@ struct io_pgtable_ops {
46429 * @cookie: An opaque token provided by the IOMMU driver and passed back to
46430 * the callback routines in cfg->tlb.
46431 */
46432 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46433 - struct io_pgtable_cfg *cfg,
46434 - void *cookie);
46435 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46436 + struct io_pgtable_cfg *cfg,
46437 + void *cookie);
46438
46439 /**
46440 * free_io_pgtable_ops() - Free an io_pgtable_ops structure. The caller
46441 @@ -108,7 +109,7 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46442 *
46443 * @ops: The ops returned from alloc_io_pgtable_ops.
46444 */
46445 -void free_io_pgtable_ops(struct io_pgtable_ops *ops);
46446 +void free_io_pgtable(struct io_pgtable *iop);
46447
46448
46449 /*
46450 @@ -128,7 +129,7 @@ struct io_pgtable {
46451 enum io_pgtable_fmt fmt;
46452 void *cookie;
46453 struct io_pgtable_cfg cfg;
46454 - struct io_pgtable_ops ops;
46455 + const struct io_pgtable_ops *ops;
46456 };
46457
46458 /**
46459 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
46460 index 049df49..da1f16d 100644
46461 --- a/drivers/iommu/iommu.c
46462 +++ b/drivers/iommu/iommu.c
46463 @@ -934,7 +934,7 @@ static int iommu_bus_notifier(struct notifier_block *nb,
46464 static int iommu_bus_init(struct bus_type *bus, const struct iommu_ops *ops)
46465 {
46466 int err;
46467 - struct notifier_block *nb;
46468 + notifier_block_no_const *nb;
46469 struct iommu_callback_data cb = {
46470 .ops = ops,
46471 };
46472 diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
46473 index 8cf605f..388b01f 100644
46474 --- a/drivers/iommu/ipmmu-vmsa.c
46475 +++ b/drivers/iommu/ipmmu-vmsa.c
46476 @@ -41,7 +41,7 @@ struct ipmmu_vmsa_domain {
46477 struct iommu_domain io_domain;
46478
46479 struct io_pgtable_cfg cfg;
46480 - struct io_pgtable_ops *iop;
46481 + struct io_pgtable *iop;
46482
46483 unsigned int context_id;
46484 spinlock_t lock; /* Protects mappings */
46485 @@ -319,8 +319,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
46486 */
46487 domain->cfg.iommu_dev = domain->mmu->dev;
46488
46489 - domain->iop = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &domain->cfg,
46490 - domain);
46491 + domain->iop = alloc_io_pgtable(ARM_32_LPAE_S1, &domain->cfg, domain);
46492 if (!domain->iop)
46493 return -EINVAL;
46494
46495 @@ -478,7 +477,7 @@ static void ipmmu_domain_free(struct iommu_domain *io_domain)
46496 * been detached.
46497 */
46498 ipmmu_domain_destroy_context(domain);
46499 - free_io_pgtable_ops(domain->iop);
46500 + free_io_pgtable(domain->iop);
46501 kfree(domain);
46502 }
46503
46504 @@ -547,7 +546,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
46505 if (!domain)
46506 return -ENODEV;
46507
46508 - return domain->iop->map(domain->iop, iova, paddr, size, prot);
46509 + return domain->iop->ops->map(domain->iop, iova, paddr, size, prot);
46510 }
46511
46512 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46513 @@ -555,7 +554,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46514 {
46515 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain);
46516
46517 - return domain->iop->unmap(domain->iop, iova, size);
46518 + return domain->iop->ops->unmap(domain->iop, iova, size);
46519 }
46520
46521 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46522 @@ -565,7 +564,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46523
46524 /* TODO: Is locking needed ? */
46525
46526 - return domain->iop->iova_to_phys(domain->iop, iova);
46527 + return domain->iop->ops->iova_to_phys(domain->iop, iova);
46528 }
46529
46530 static int ipmmu_find_utlbs(struct ipmmu_vmsa_device *mmu, struct device *dev,
46531 diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
46532 index 913455a..d7e8048 100644
46533 --- a/drivers/iommu/irq_remapping.c
46534 +++ b/drivers/iommu/irq_remapping.c
46535 @@ -149,7 +149,7 @@ int __init irq_remap_enable_fault_handling(void)
46536 void panic_if_irq_remap(const char *msg)
46537 {
46538 if (irq_remapping_enabled)
46539 - panic(msg);
46540 + panic("%s", msg);
46541 }
46542
46543 void ir_ack_apic_edge(struct irq_data *data)
46544 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
46545 index 982c09c..47e1aa8 100644
46546 --- a/drivers/irqchip/irq-gic.c
46547 +++ b/drivers/irqchip/irq-gic.c
46548 @@ -368,7 +368,7 @@ static void gic_handle_cascade_irq(struct irq_desc *desc)
46549 chained_irq_exit(chip, desc);
46550 }
46551
46552 -static struct irq_chip gic_chip = {
46553 +static irq_chip_no_const gic_chip __read_only = {
46554 .name = "GIC",
46555 .irq_mask = gic_mask_irq,
46556 .irq_unmask = gic_unmask_irq,
46557 diff --git a/drivers/irqchip/irq-i8259.c b/drivers/irqchip/irq-i8259.c
46558 index e484fd2..b6cdf69 100644
46559 --- a/drivers/irqchip/irq-i8259.c
46560 +++ b/drivers/irqchip/irq-i8259.c
46561 @@ -204,7 +204,7 @@ spurious_8259A_irq:
46562 printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
46563 spurious_irq_mask |= irqmask;
46564 }
46565 - atomic_inc(&irq_err_count);
46566 + atomic_inc_unchecked(&irq_err_count);
46567 /*
46568 * Theoretically we do not have to handle this IRQ,
46569 * but in Linux this does not cause problems and is
46570 diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
46571 index 9525335..f0322eb 100644
46572 --- a/drivers/irqchip/irq-renesas-intc-irqpin.c
46573 +++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
46574 @@ -382,7 +382,7 @@ static int intc_irqpin_probe(struct platform_device *pdev)
46575 struct intc_irqpin_iomem *i;
46576 struct resource *io[INTC_IRQPIN_REG_NR];
46577 struct resource *irq;
46578 - struct irq_chip *irq_chip;
46579 + irq_chip_no_const *irq_chip;
46580 void (*enable_fn)(struct irq_data *d);
46581 void (*disable_fn)(struct irq_data *d);
46582 const char *name = dev_name(dev);
46583 diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
46584 index 35bf97b..7b361c00 100644
46585 --- a/drivers/irqchip/irq-renesas-irqc.c
46586 +++ b/drivers/irqchip/irq-renesas-irqc.c
46587 @@ -181,7 +181,7 @@ static int irqc_probe(struct platform_device *pdev)
46588 struct irqc_priv *p;
46589 struct resource *io;
46590 struct resource *irq;
46591 - struct irq_chip *irq_chip;
46592 + irq_chip_no_const *irq_chip;
46593 const char *name = dev_name(&pdev->dev);
46594 int ret;
46595 int k;
46596 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
46597 index 6a2df32..dc962f1 100644
46598 --- a/drivers/isdn/capi/capi.c
46599 +++ b/drivers/isdn/capi/capi.c
46600 @@ -81,8 +81,8 @@ struct capiminor {
46601
46602 struct capi20_appl *ap;
46603 u32 ncci;
46604 - atomic_t datahandle;
46605 - atomic_t msgid;
46606 + atomic_unchecked_t datahandle;
46607 + atomic_unchecked_t msgid;
46608
46609 struct tty_port port;
46610 int ttyinstop;
46611 @@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
46612 capimsg_setu16(s, 2, mp->ap->applid);
46613 capimsg_setu8 (s, 4, CAPI_DATA_B3);
46614 capimsg_setu8 (s, 5, CAPI_RESP);
46615 - capimsg_setu16(s, 6, atomic_inc_return(&mp->msgid));
46616 + capimsg_setu16(s, 6, atomic_inc_return_unchecked(&mp->msgid));
46617 capimsg_setu32(s, 8, mp->ncci);
46618 capimsg_setu16(s, 12, datahandle);
46619 }
46620 @@ -512,14 +512,14 @@ static void handle_minor_send(struct capiminor *mp)
46621 mp->outbytes -= len;
46622 spin_unlock_bh(&mp->outlock);
46623
46624 - datahandle = atomic_inc_return(&mp->datahandle);
46625 + datahandle = atomic_inc_return_unchecked(&mp->datahandle);
46626 skb_push(skb, CAPI_DATA_B3_REQ_LEN);
46627 memset(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46628 capimsg_setu16(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46629 capimsg_setu16(skb->data, 2, mp->ap->applid);
46630 capimsg_setu8 (skb->data, 4, CAPI_DATA_B3);
46631 capimsg_setu8 (skb->data, 5, CAPI_REQ);
46632 - capimsg_setu16(skb->data, 6, atomic_inc_return(&mp->msgid));
46633 + capimsg_setu16(skb->data, 6, atomic_inc_return_unchecked(&mp->msgid));
46634 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
46635 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
46636 capimsg_setu16(skb->data, 16, len); /* Data length */
46637 diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
46638 index aecec6d..11e13c5 100644
46639 --- a/drivers/isdn/gigaset/bas-gigaset.c
46640 +++ b/drivers/isdn/gigaset/bas-gigaset.c
46641 @@ -2565,22 +2565,22 @@ static int gigaset_post_reset(struct usb_interface *intf)
46642
46643
46644 static const struct gigaset_ops gigops = {
46645 - gigaset_write_cmd,
46646 - gigaset_write_room,
46647 - gigaset_chars_in_buffer,
46648 - gigaset_brkchars,
46649 - gigaset_init_bchannel,
46650 - gigaset_close_bchannel,
46651 - gigaset_initbcshw,
46652 - gigaset_freebcshw,
46653 - gigaset_reinitbcshw,
46654 - gigaset_initcshw,
46655 - gigaset_freecshw,
46656 - gigaset_set_modem_ctrl,
46657 - gigaset_baud_rate,
46658 - gigaset_set_line_ctrl,
46659 - gigaset_isoc_send_skb,
46660 - gigaset_isoc_input,
46661 + .write_cmd = gigaset_write_cmd,
46662 + .write_room = gigaset_write_room,
46663 + .chars_in_buffer = gigaset_chars_in_buffer,
46664 + .brkchars = gigaset_brkchars,
46665 + .init_bchannel = gigaset_init_bchannel,
46666 + .close_bchannel = gigaset_close_bchannel,
46667 + .initbcshw = gigaset_initbcshw,
46668 + .freebcshw = gigaset_freebcshw,
46669 + .reinitbcshw = gigaset_reinitbcshw,
46670 + .initcshw = gigaset_initcshw,
46671 + .freecshw = gigaset_freecshw,
46672 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46673 + .baud_rate = gigaset_baud_rate,
46674 + .set_line_ctrl = gigaset_set_line_ctrl,
46675 + .send_skb = gigaset_isoc_send_skb,
46676 + .handle_input = gigaset_isoc_input,
46677 };
46678
46679 /* bas_gigaset_init
46680 diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
46681 index 600c79b..3752bab 100644
46682 --- a/drivers/isdn/gigaset/interface.c
46683 +++ b/drivers/isdn/gigaset/interface.c
46684 @@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp)
46685 }
46686 tty->driver_data = cs;
46687
46688 - ++cs->port.count;
46689 + atomic_inc(&cs->port.count);
46690
46691 - if (cs->port.count == 1) {
46692 + if (atomic_read(&cs->port.count) == 1) {
46693 tty_port_tty_set(&cs->port, tty);
46694 cs->port.low_latency = 1;
46695 }
46696 @@ -156,9 +156,9 @@ static void if_close(struct tty_struct *tty, struct file *filp)
46697
46698 if (!cs->connected)
46699 gig_dbg(DEBUG_IF, "not connected"); /* nothing to do */
46700 - else if (!cs->port.count)
46701 + else if (!atomic_read(&cs->port.count))
46702 dev_warn(cs->dev, "%s: device not opened\n", __func__);
46703 - else if (!--cs->port.count)
46704 + else if (!atomic_dec_return(&cs->port.count))
46705 tty_port_tty_set(&cs->port, NULL);
46706
46707 mutex_unlock(&cs->mutex);
46708 diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/isdn/gigaset/ser-gigaset.c
46709 index 375be50..675293c 100644
46710 --- a/drivers/isdn/gigaset/ser-gigaset.c
46711 +++ b/drivers/isdn/gigaset/ser-gigaset.c
46712 @@ -453,22 +453,22 @@ static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag)
46713 }
46714
46715 static const struct gigaset_ops ops = {
46716 - gigaset_write_cmd,
46717 - gigaset_write_room,
46718 - gigaset_chars_in_buffer,
46719 - gigaset_brkchars,
46720 - gigaset_init_bchannel,
46721 - gigaset_close_bchannel,
46722 - gigaset_initbcshw,
46723 - gigaset_freebcshw,
46724 - gigaset_reinitbcshw,
46725 - gigaset_initcshw,
46726 - gigaset_freecshw,
46727 - gigaset_set_modem_ctrl,
46728 - gigaset_baud_rate,
46729 - gigaset_set_line_ctrl,
46730 - gigaset_m10x_send_skb, /* asyncdata.c */
46731 - gigaset_m10x_input, /* asyncdata.c */
46732 + .write_cmd = gigaset_write_cmd,
46733 + .write_room = gigaset_write_room,
46734 + .chars_in_buffer = gigaset_chars_in_buffer,
46735 + .brkchars = gigaset_brkchars,
46736 + .init_bchannel = gigaset_init_bchannel,
46737 + .close_bchannel = gigaset_close_bchannel,
46738 + .initbcshw = gigaset_initbcshw,
46739 + .freebcshw = gigaset_freebcshw,
46740 + .reinitbcshw = gigaset_reinitbcshw,
46741 + .initcshw = gigaset_initcshw,
46742 + .freecshw = gigaset_freecshw,
46743 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46744 + .baud_rate = gigaset_baud_rate,
46745 + .set_line_ctrl = gigaset_set_line_ctrl,
46746 + .send_skb = gigaset_m10x_send_skb, /* asyncdata.c */
46747 + .handle_input = gigaset_m10x_input, /* asyncdata.c */
46748 };
46749
46750
46751 diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
46752 index 5f306e2..5342f88 100644
46753 --- a/drivers/isdn/gigaset/usb-gigaset.c
46754 +++ b/drivers/isdn/gigaset/usb-gigaset.c
46755 @@ -543,7 +543,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
46756 gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf);
46757 memcpy(cs->hw.usb->bchars, buf, 6);
46758 return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41,
46759 - 0, 0, &buf, 6, 2000);
46760 + 0, 0, buf, 6, 2000);
46761 }
46762
46763 static void gigaset_freebcshw(struct bc_state *bcs)
46764 @@ -862,22 +862,22 @@ static int gigaset_pre_reset(struct usb_interface *intf)
46765 }
46766
46767 static const struct gigaset_ops ops = {
46768 - gigaset_write_cmd,
46769 - gigaset_write_room,
46770 - gigaset_chars_in_buffer,
46771 - gigaset_brkchars,
46772 - gigaset_init_bchannel,
46773 - gigaset_close_bchannel,
46774 - gigaset_initbcshw,
46775 - gigaset_freebcshw,
46776 - gigaset_reinitbcshw,
46777 - gigaset_initcshw,
46778 - gigaset_freecshw,
46779 - gigaset_set_modem_ctrl,
46780 - gigaset_baud_rate,
46781 - gigaset_set_line_ctrl,
46782 - gigaset_m10x_send_skb,
46783 - gigaset_m10x_input,
46784 + .write_cmd = gigaset_write_cmd,
46785 + .write_room = gigaset_write_room,
46786 + .chars_in_buffer = gigaset_chars_in_buffer,
46787 + .brkchars = gigaset_brkchars,
46788 + .init_bchannel = gigaset_init_bchannel,
46789 + .close_bchannel = gigaset_close_bchannel,
46790 + .initbcshw = gigaset_initbcshw,
46791 + .freebcshw = gigaset_freebcshw,
46792 + .reinitbcshw = gigaset_reinitbcshw,
46793 + .initcshw = gigaset_initcshw,
46794 + .freecshw = gigaset_freecshw,
46795 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46796 + .baud_rate = gigaset_baud_rate,
46797 + .set_line_ctrl = gigaset_set_line_ctrl,
46798 + .send_skb = gigaset_m10x_send_skb,
46799 + .handle_input = gigaset_m10x_input,
46800 };
46801
46802 /*
46803 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
46804 index 4d9b195..455075c 100644
46805 --- a/drivers/isdn/hardware/avm/b1.c
46806 +++ b/drivers/isdn/hardware/avm/b1.c
46807 @@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
46808 }
46809 if (left) {
46810 if (t4file->user) {
46811 - if (copy_from_user(buf, dp, left))
46812 + if (left > sizeof buf || copy_from_user(buf, dp, left))
46813 return -EFAULT;
46814 } else {
46815 memcpy(buf, dp, left);
46816 @@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart *config)
46817 }
46818 if (left) {
46819 if (config->user) {
46820 - if (copy_from_user(buf, dp, left))
46821 + if (left > sizeof buf || copy_from_user(buf, dp, left))
46822 return -EFAULT;
46823 } else {
46824 memcpy(buf, dp, left);
46825 diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
46826 index b33f53b..bf04d2a 100644
46827 --- a/drivers/isdn/hisax/config.c
46828 +++ b/drivers/isdn/hisax/config.c
46829 @@ -1896,7 +1896,7 @@ static void EChannel_proc_rcv(struct hisax_d_if *d_if)
46830 ptr--;
46831 *ptr++ = '\n';
46832 *ptr = 0;
46833 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46834 + HiSax_putstatus(cs, NULL, cs->dlog);
46835 } else
46836 HiSax_putstatus(cs, "LogEcho: ",
46837 "warning Frame too big (%d)",
46838 diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
46839 index 4a48255..90449e1 100644
46840 --- a/drivers/isdn/hisax/hfc_pci.c
46841 +++ b/drivers/isdn/hisax/hfc_pci.c
46842 @@ -901,7 +901,7 @@ Begin:
46843 ptr--;
46844 *ptr++ = '\n';
46845 *ptr = 0;
46846 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46847 + HiSax_putstatus(cs, NULL, cs->dlog);
46848 } else
46849 HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", total - 3);
46850 }
46851 diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
46852 index b1fad81..13b2151 100644
46853 --- a/drivers/isdn/hisax/hfc_sx.c
46854 +++ b/drivers/isdn/hisax/hfc_sx.c
46855 @@ -674,7 +674,7 @@ receive_emsg(struct IsdnCardState *cs)
46856 ptr--;
46857 *ptr++ = '\n';
46858 *ptr = 0;
46859 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46860 + HiSax_putstatus(cs, NULL, cs->dlog);
46861 } else
46862 HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", skb->len);
46863 }
46864 diff --git a/drivers/isdn/hisax/q931.c b/drivers/isdn/hisax/q931.c
46865 index b420f8b..ba4beb2 100644
46866 --- a/drivers/isdn/hisax/q931.c
46867 +++ b/drivers/isdn/hisax/q931.c
46868 @@ -1179,7 +1179,7 @@ LogFrame(struct IsdnCardState *cs, u_char *buf, int size)
46869 dp--;
46870 *dp++ = '\n';
46871 *dp = 0;
46872 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46873 + HiSax_putstatus(cs, NULL, cs->dlog);
46874 } else
46875 HiSax_putstatus(cs, "LogFrame: ", "warning Frame too big (%d)", size);
46876 }
46877 @@ -1246,7 +1246,7 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
46878 }
46879 if (finish) {
46880 *dp = 0;
46881 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46882 + HiSax_putstatus(cs, NULL, cs->dlog);
46883 return;
46884 }
46885 if ((0xfe & buf[0]) == PROTO_DIS_N0) { /* 1TR6 */
46886 @@ -1509,5 +1509,5 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
46887 dp += sprintf(dp, "Unknown protocol %x!", buf[0]);
46888 }
46889 *dp = 0;
46890 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
46891 + HiSax_putstatus(cs, NULL, cs->dlog);
46892 }
46893 diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
46894 index 9b856e1..fa03c92 100644
46895 --- a/drivers/isdn/i4l/isdn_common.c
46896 +++ b/drivers/isdn/i4l/isdn_common.c
46897 @@ -1654,6 +1654,8 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
46898 } else
46899 return -EINVAL;
46900 case IIOCDBGVAR:
46901 + if (!capable(CAP_SYS_RAWIO))
46902 + return -EPERM;
46903 if (arg) {
46904 if (copy_to_user(argp, &dev, sizeof(ulong)))
46905 return -EFAULT;
46906 diff --git a/drivers/isdn/i4l/isdn_concap.c b/drivers/isdn/i4l/isdn_concap.c
46907 index 91d5730..336523e 100644
46908 --- a/drivers/isdn/i4l/isdn_concap.c
46909 +++ b/drivers/isdn/i4l/isdn_concap.c
46910 @@ -80,9 +80,9 @@ static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
46911 }
46912
46913 struct concap_device_ops isdn_concap_reliable_dl_dops = {
46914 - &isdn_concap_dl_data_req,
46915 - &isdn_concap_dl_connect_req,
46916 - &isdn_concap_dl_disconn_req
46917 + .data_req = &isdn_concap_dl_data_req,
46918 + .connect_req = &isdn_concap_dl_connect_req,
46919 + .disconn_req = &isdn_concap_dl_disconn_req
46920 };
46921
46922 /* The following should better go into a dedicated source file such that
46923 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
46924 index bc91261..2ef7e36 100644
46925 --- a/drivers/isdn/i4l/isdn_tty.c
46926 +++ b/drivers/isdn/i4l/isdn_tty.c
46927 @@ -1503,9 +1503,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
46928
46929 #ifdef ISDN_DEBUG_MODEM_OPEN
46930 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
46931 - port->count);
46932 + atomic_read(&port->count));
46933 #endif
46934 - port->count++;
46935 + atomic_inc(&port->count);
46936 port->tty = tty;
46937 /*
46938 * Start up serial port
46939 @@ -1549,7 +1549,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
46940 #endif
46941 return;
46942 }
46943 - if ((tty->count == 1) && (port->count != 1)) {
46944 + if ((tty->count == 1) && (atomic_read(&port->count) != 1)) {
46945 /*
46946 * Uh, oh. tty->count is 1, which means that the tty
46947 * structure will be freed. Info->count should always
46948 @@ -1558,15 +1558,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
46949 * serial port won't be shutdown.
46950 */
46951 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, "
46952 - "info->count is %d\n", port->count);
46953 - port->count = 1;
46954 + "info->count is %d\n", atomic_read(&port->count));
46955 + atomic_set(&port->count, 1);
46956 }
46957 - if (--port->count < 0) {
46958 + if (atomic_dec_return(&port->count) < 0) {
46959 printk(KERN_ERR "isdn_tty_close: bad port count for ttyi%d: %d\n",
46960 - info->line, port->count);
46961 - port->count = 0;
46962 + info->line, atomic_read(&port->count));
46963 + atomic_set(&port->count, 0);
46964 }
46965 - if (port->count) {
46966 + if (atomic_read(&port->count)) {
46967 #ifdef ISDN_DEBUG_MODEM_OPEN
46968 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n");
46969 #endif
46970 @@ -1620,7 +1620,7 @@ isdn_tty_hangup(struct tty_struct *tty)
46971 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup"))
46972 return;
46973 isdn_tty_shutdown(info);
46974 - port->count = 0;
46975 + atomic_set(&port->count, 0);
46976 port->flags &= ~ASYNC_NORMAL_ACTIVE;
46977 port->tty = NULL;
46978 wake_up_interruptible(&port->open_wait);
46979 @@ -1965,7 +1965,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
46980 for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
46981 modem_info *info = &dev->mdm.info[i];
46982
46983 - if (info->port.count == 0)
46984 + if (atomic_read(&info->port.count) == 0)
46985 continue;
46986 if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) && /* SI1 is matching */
46987 (info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
46988 diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
46989 index e2d4e58..40cd045 100644
46990 --- a/drivers/isdn/i4l/isdn_x25iface.c
46991 +++ b/drivers/isdn/i4l/isdn_x25iface.c
46992 @@ -53,14 +53,14 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *);
46993
46994
46995 static struct concap_proto_ops ix25_pops = {
46996 - &isdn_x25iface_proto_new,
46997 - &isdn_x25iface_proto_del,
46998 - &isdn_x25iface_proto_restart,
46999 - &isdn_x25iface_proto_close,
47000 - &isdn_x25iface_xmit,
47001 - &isdn_x25iface_receive,
47002 - &isdn_x25iface_connect_ind,
47003 - &isdn_x25iface_disconn_ind
47004 + .proto_new = &isdn_x25iface_proto_new,
47005 + .proto_del = &isdn_x25iface_proto_del,
47006 + .restart = &isdn_x25iface_proto_restart,
47007 + .close = &isdn_x25iface_proto_close,
47008 + .encap_and_xmit = &isdn_x25iface_xmit,
47009 + .data_ind = &isdn_x25iface_receive,
47010 + .connect_ind = &isdn_x25iface_connect_ind,
47011 + .disconn_ind = &isdn_x25iface_disconn_ind
47012 };
47013
47014 /* error message helper function */
47015 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
47016 index 358a574..b4987ea 100644
47017 --- a/drivers/isdn/icn/icn.c
47018 +++ b/drivers/isdn/icn/icn.c
47019 @@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
47020 if (count > len)
47021 count = len;
47022 if (user) {
47023 - if (copy_from_user(msg, buf, count))
47024 + if (count > sizeof msg || copy_from_user(msg, buf, count))
47025 return -EFAULT;
47026 } else
47027 memcpy(msg, buf, count);
47028 diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
47029 index 8e3aa00..65200ac 100644
47030 --- a/drivers/isdn/mISDN/dsp_cmx.c
47031 +++ b/drivers/isdn/mISDN/dsp_cmx.c
47032 @@ -1625,7 +1625,7 @@ unsigned long dsp_spl_jiffies; /* calculate the next time to fire */
47033 static u16 dsp_count; /* last sample count */
47034 static int dsp_count_valid; /* if we have last sample count */
47035
47036 -void
47037 +void __intentional_overflow(-1)
47038 dsp_cmx_send(void *arg)
47039 {
47040 struct dsp_conf *conf;
47041 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
47042 index 312ffd3..d060510 100644
47043 --- a/drivers/lguest/core.c
47044 +++ b/drivers/lguest/core.c
47045 @@ -96,9 +96,17 @@ static __init int map_switcher(void)
47046 * The end address needs +1 because __get_vm_area allocates an
47047 * extra guard page, so we need space for that.
47048 */
47049 +
47050 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
47051 + switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47052 + VM_ALLOC | VM_KERNEXEC, switcher_addr, switcher_addr
47053 + + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47054 +#else
47055 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47056 VM_ALLOC, switcher_addr, switcher_addr
47057 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47058 +#endif
47059 +
47060 if (!switcher_vma) {
47061 err = -ENOMEM;
47062 printk("lguest: could not map switcher pages high\n");
47063 @@ -121,7 +129,7 @@ static __init int map_switcher(void)
47064 * Now the Switcher is mapped at the right address, we can't fail!
47065 * Copy in the compiled-in Switcher code (from x86/switcher_32.S).
47066 */
47067 - memcpy(switcher_vma->addr, start_switcher_text,
47068 + memcpy(switcher_vma->addr, (void *)ktla_ktva((unsigned long)start_switcher_text),
47069 end_switcher_text - start_switcher_text);
47070
47071 printk(KERN_INFO "lguest: mapped switcher at %p\n",
47072 diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
47073 index e3abebc9..6a35328 100644
47074 --- a/drivers/lguest/page_tables.c
47075 +++ b/drivers/lguest/page_tables.c
47076 @@ -585,7 +585,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
47077 /*:*/
47078
47079 #ifdef CONFIG_X86_PAE
47080 -static void release_pmd(pmd_t *spmd)
47081 +static void __intentional_overflow(-1) release_pmd(pmd_t *spmd)
47082 {
47083 /* If the entry's not present, there's nothing to release. */
47084 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
47085 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
47086 index 6a4cd77..c9e2d9f 100644
47087 --- a/drivers/lguest/x86/core.c
47088 +++ b/drivers/lguest/x86/core.c
47089 @@ -60,7 +60,7 @@ static struct {
47090 /* Offset from where switcher.S was compiled to where we've copied it */
47091 static unsigned long switcher_offset(void)
47092 {
47093 - return switcher_addr - (unsigned long)start_switcher_text;
47094 + return switcher_addr - ktla_ktva((unsigned long)start_switcher_text);
47095 }
47096
47097 /* This cpu's struct lguest_pages (after the Switcher text page) */
47098 @@ -100,7 +100,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages)
47099 * These copies are pretty cheap, so we do them unconditionally: */
47100 /* Save the current Host top-level page directory.
47101 */
47102 +
47103 +#ifdef CONFIG_PAX_PER_CPU_PGD
47104 + pages->state.host_cr3 = read_cr3();
47105 +#else
47106 pages->state.host_cr3 = __pa(current->mm->pgd);
47107 +#endif
47108 +
47109 /*
47110 * Set up the Guest's page tables to see this CPU's pages (and no
47111 * other CPU's pages).
47112 @@ -494,7 +500,7 @@ void __init lguest_arch_host_init(void)
47113 * compiled-in switcher code and the high-mapped copy we just made.
47114 */
47115 for (i = 0; i < IDT_ENTRIES; i++)
47116 - default_idt_entries[i] += switcher_offset();
47117 + default_idt_entries[i] = ktla_ktva(default_idt_entries[i]) + switcher_offset();
47118
47119 /*
47120 * Set up the Switcher's per-cpu areas.
47121 @@ -577,7 +583,7 @@ void __init lguest_arch_host_init(void)
47122 * it will be undisturbed when we switch. To change %cs and jump we
47123 * need this structure to feed to Intel's "lcall" instruction.
47124 */
47125 - lguest_entry.offset = (long)switch_to_guest + switcher_offset();
47126 + lguest_entry.offset = ktla_ktva((unsigned long)switch_to_guest) + switcher_offset();
47127 lguest_entry.segment = LGUEST_CS;
47128
47129 /*
47130 diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
47131 index 40634b0..4f5855e 100644
47132 --- a/drivers/lguest/x86/switcher_32.S
47133 +++ b/drivers/lguest/x86/switcher_32.S
47134 @@ -87,6 +87,7 @@
47135 #include <asm/page.h>
47136 #include <asm/segment.h>
47137 #include <asm/lguest.h>
47138 +#include <asm/processor-flags.h>
47139
47140 // We mark the start of the code to copy
47141 // It's placed in .text tho it's never run here
47142 @@ -149,6 +150,13 @@ ENTRY(switch_to_guest)
47143 // Changes type when we load it: damn Intel!
47144 // For after we switch over our page tables
47145 // That entry will be read-only: we'd crash.
47146 +
47147 +#ifdef CONFIG_PAX_KERNEXEC
47148 + mov %cr0, %edx
47149 + xor $X86_CR0_WP, %edx
47150 + mov %edx, %cr0
47151 +#endif
47152 +
47153 movl $(GDT_ENTRY_TSS*8), %edx
47154 ltr %dx
47155
47156 @@ -157,9 +165,15 @@ ENTRY(switch_to_guest)
47157 // Let's clear it again for our return.
47158 // The GDT descriptor of the Host
47159 // Points to the table after two "size" bytes
47160 - movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %edx
47161 + movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %eax
47162 // Clear "used" from type field (byte 5, bit 2)
47163 - andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%edx)
47164 + andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%eax)
47165 +
47166 +#ifdef CONFIG_PAX_KERNEXEC
47167 + mov %cr0, %eax
47168 + xor $X86_CR0_WP, %eax
47169 + mov %eax, %cr0
47170 +#endif
47171
47172 // Once our page table's switched, the Guest is live!
47173 // The Host fades as we run this final step.
47174 @@ -295,13 +309,12 @@ deliver_to_host:
47175 // I consulted gcc, and it gave
47176 // These instructions, which I gladly credit:
47177 leal (%edx,%ebx,8), %eax
47178 - movzwl (%eax),%edx
47179 - movl 4(%eax), %eax
47180 - xorw %ax, %ax
47181 - orl %eax, %edx
47182 + movl 4(%eax), %edx
47183 + movw (%eax), %dx
47184 // Now the address of the handler's in %edx
47185 // We call it now: its "iret" drops us home.
47186 - jmp *%edx
47187 + ljmp $__KERNEL_CS, $1f
47188 +1: jmp *%edx
47189
47190 // Every interrupt can come to us here
47191 // But we must truly tell each apart.
47192 diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
47193 index 4d20088..de60cb2 100644
47194 --- a/drivers/md/bcache/Kconfig
47195 +++ b/drivers/md/bcache/Kconfig
47196 @@ -20,6 +20,7 @@ config BCACHE_CLOSURES_DEBUG
47197 bool "Debug closures"
47198 depends on BCACHE
47199 select DEBUG_FS
47200 + depends on !GRKERNSEC_KMEM
47201 ---help---
47202 Keeps all active closures in a linked list and provides a debugfs
47203 interface to list them, which makes it possible to see asynchronous
47204 diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
47205 index 782cc2c..4fdd593 100644
47206 --- a/drivers/md/bcache/closure.h
47207 +++ b/drivers/md/bcache/closure.h
47208 @@ -238,7 +238,7 @@ static inline void closure_set_stopped(struct closure *cl)
47209 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
47210 struct workqueue_struct *wq)
47211 {
47212 - BUG_ON(object_is_on_stack(cl));
47213 + BUG_ON(object_starts_on_stack(cl));
47214 closure_set_ip(cl);
47215 cl->fn = fn;
47216 cl->wq = wq;
47217 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
47218 index 48b5890..b0af0ca 100644
47219 --- a/drivers/md/bitmap.c
47220 +++ b/drivers/md/bitmap.c
47221 @@ -1933,7 +1933,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
47222 chunk_kb ? "KB" : "B");
47223 if (bitmap->storage.file) {
47224 seq_printf(seq, ", file: ");
47225 - seq_file_path(seq, bitmap->storage.file, " \t\n");
47226 + seq_file_path(seq, bitmap->storage.file, " \t\n\\");
47227 }
47228
47229 seq_printf(seq, "\n");
47230 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
47231 index 80a4395..a5a8981 100644
47232 --- a/drivers/md/dm-ioctl.c
47233 +++ b/drivers/md/dm-ioctl.c
47234 @@ -1773,7 +1773,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
47235 cmd == DM_LIST_VERSIONS_CMD)
47236 return 0;
47237
47238 - if ((cmd == DM_DEV_CREATE_CMD)) {
47239 + if (cmd == DM_DEV_CREATE_CMD) {
47240 if (!*param->name) {
47241 DMWARN("name not supplied when creating device");
47242 return -EINVAL;
47243 diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
47244 index f2a363a..9f4763b 100644
47245 --- a/drivers/md/dm-raid1.c
47246 +++ b/drivers/md/dm-raid1.c
47247 @@ -42,7 +42,7 @@ enum dm_raid1_error {
47248
47249 struct mirror {
47250 struct mirror_set *ms;
47251 - atomic_t error_count;
47252 + atomic_unchecked_t error_count;
47253 unsigned long error_type;
47254 struct dm_dev *dev;
47255 sector_t offset;
47256 @@ -188,7 +188,7 @@ static struct mirror *get_valid_mirror(struct mirror_set *ms)
47257 struct mirror *m;
47258
47259 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++)
47260 - if (!atomic_read(&m->error_count))
47261 + if (!atomic_read_unchecked(&m->error_count))
47262 return m;
47263
47264 return NULL;
47265 @@ -220,7 +220,7 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)
47266 * simple way to tell if a device has encountered
47267 * errors.
47268 */
47269 - atomic_inc(&m->error_count);
47270 + atomic_inc_unchecked(&m->error_count);
47271
47272 if (test_and_set_bit(error_type, &m->error_type))
47273 return;
47274 @@ -378,7 +378,7 @@ static void reset_ms_flags(struct mirror_set *ms)
47275
47276 ms->leg_failure = 0;
47277 for (m = 0; m < ms->nr_mirrors; m++) {
47278 - atomic_set(&(ms->mirror[m].error_count), 0);
47279 + atomic_set_unchecked(&(ms->mirror[m].error_count), 0);
47280 ms->mirror[m].error_type = 0;
47281 }
47282 }
47283 @@ -423,7 +423,7 @@ static struct mirror *choose_mirror(struct mirror_set *ms, sector_t sector)
47284 struct mirror *m = get_default_mirror(ms);
47285
47286 do {
47287 - if (likely(!atomic_read(&m->error_count)))
47288 + if (likely(!atomic_read_unchecked(&m->error_count)))
47289 return m;
47290
47291 if (m-- == ms->mirror)
47292 @@ -437,7 +437,7 @@ static int default_ok(struct mirror *m)
47293 {
47294 struct mirror *default_mirror = get_default_mirror(m->ms);
47295
47296 - return !atomic_read(&default_mirror->error_count);
47297 + return !atomic_read_unchecked(&default_mirror->error_count);
47298 }
47299
47300 static int mirror_available(struct mirror_set *ms, struct bio *bio)
47301 @@ -576,7 +576,7 @@ static void do_reads(struct mirror_set *ms, struct bio_list *reads)
47302 */
47303 if (likely(region_in_sync(ms, region, 1)))
47304 m = choose_mirror(ms, bio->bi_iter.bi_sector);
47305 - else if (m && atomic_read(&m->error_count))
47306 + else if (m && atomic_read_unchecked(&m->error_count))
47307 m = NULL;
47308
47309 if (likely(m))
47310 @@ -960,7 +960,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
47311 }
47312
47313 ms->mirror[mirror].ms = ms;
47314 - atomic_set(&(ms->mirror[mirror].error_count), 0);
47315 + atomic_set_unchecked(&(ms->mirror[mirror].error_count), 0);
47316 ms->mirror[mirror].error_type = 0;
47317 ms->mirror[mirror].offset = offset;
47318
47319 @@ -1384,7 +1384,7 @@ static void mirror_resume(struct dm_target *ti)
47320 */
47321 static char device_status_char(struct mirror *m)
47322 {
47323 - if (!atomic_read(&(m->error_count)))
47324 + if (!atomic_read_unchecked(&(m->error_count)))
47325 return 'A';
47326
47327 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
47328 diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
47329 index 8289804..12db118 100644
47330 --- a/drivers/md/dm-stats.c
47331 +++ b/drivers/md/dm-stats.c
47332 @@ -435,7 +435,7 @@ do_sync_free:
47333 synchronize_rcu_expedited();
47334 dm_stat_free(&s->rcu_head);
47335 } else {
47336 - ACCESS_ONCE(dm_stat_need_rcu_barrier) = 1;
47337 + ACCESS_ONCE_RW(dm_stat_need_rcu_barrier) = 1;
47338 call_rcu(&s->rcu_head, dm_stat_free);
47339 }
47340 return 0;
47341 @@ -648,8 +648,8 @@ void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
47342 ((bi_rw & (REQ_WRITE | REQ_DISCARD)) ==
47343 (ACCESS_ONCE(last->last_rw) & (REQ_WRITE | REQ_DISCARD)))
47344 ));
47345 - ACCESS_ONCE(last->last_sector) = end_sector;
47346 - ACCESS_ONCE(last->last_rw) = bi_rw;
47347 + ACCESS_ONCE_RW(last->last_sector) = end_sector;
47348 + ACCESS_ONCE_RW(last->last_rw) = bi_rw;
47349 }
47350
47351 rcu_read_lock();
47352 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
47353 index 797ddb9..9595c24 100644
47354 --- a/drivers/md/dm-stripe.c
47355 +++ b/drivers/md/dm-stripe.c
47356 @@ -21,7 +21,7 @@ struct stripe {
47357 struct dm_dev *dev;
47358 sector_t physical_start;
47359
47360 - atomic_t error_count;
47361 + atomic_unchecked_t error_count;
47362 };
47363
47364 struct stripe_c {
47365 @@ -190,7 +190,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
47366 kfree(sc);
47367 return r;
47368 }
47369 - atomic_set(&(sc->stripe[i].error_count), 0);
47370 + atomic_set_unchecked(&(sc->stripe[i].error_count), 0);
47371 }
47372
47373 ti->private = sc;
47374 @@ -334,7 +334,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
47375 DMEMIT("%d ", sc->stripes);
47376 for (i = 0; i < sc->stripes; i++) {
47377 DMEMIT("%s ", sc->stripe[i].dev->name);
47378 - buffer[i] = atomic_read(&(sc->stripe[i].error_count)) ?
47379 + buffer[i] = atomic_read_unchecked(&(sc->stripe[i].error_count)) ?
47380 'D' : 'A';
47381 }
47382 buffer[i] = '\0';
47383 @@ -379,8 +379,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
47384 */
47385 for (i = 0; i < sc->stripes; i++)
47386 if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
47387 - atomic_inc(&(sc->stripe[i].error_count));
47388 - if (atomic_read(&(sc->stripe[i].error_count)) <
47389 + atomic_inc_unchecked(&(sc->stripe[i].error_count));
47390 + if (atomic_read_unchecked(&(sc->stripe[i].error_count)) <
47391 DM_IO_ERROR_THRESHOLD)
47392 schedule_work(&sc->trigger_event);
47393 }
47394 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
47395 index e76ed00..aee345b 100644
47396 --- a/drivers/md/dm-table.c
47397 +++ b/drivers/md/dm-table.c
47398 @@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
47399 if (!dev_size)
47400 return 0;
47401
47402 - if ((start >= dev_size) || (start + len > dev_size)) {
47403 + if ((start >= dev_size) || (len > dev_size - start)) {
47404 DMWARN("%s: %s too small for target: "
47405 "start=%llu, len=%llu, dev_size=%llu",
47406 dm_device_name(ti->table->md), bdevname(bdev, b),
47407 diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
47408 index 6ba47cf..a870ba2 100644
47409 --- a/drivers/md/dm-thin-metadata.c
47410 +++ b/drivers/md/dm-thin-metadata.c
47411 @@ -403,7 +403,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47412 {
47413 pmd->info.tm = pmd->tm;
47414 pmd->info.levels = 2;
47415 - pmd->info.value_type.context = pmd->data_sm;
47416 + pmd->info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47417 pmd->info.value_type.size = sizeof(__le64);
47418 pmd->info.value_type.inc = data_block_inc;
47419 pmd->info.value_type.dec = data_block_dec;
47420 @@ -422,7 +422,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47421
47422 pmd->bl_info.tm = pmd->tm;
47423 pmd->bl_info.levels = 1;
47424 - pmd->bl_info.value_type.context = pmd->data_sm;
47425 + pmd->bl_info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47426 pmd->bl_info.value_type.size = sizeof(__le64);
47427 pmd->bl_info.value_type.inc = data_block_inc;
47428 pmd->bl_info.value_type.dec = data_block_dec;
47429 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
47430 index 1b5c604..cd00629 100644
47431 --- a/drivers/md/dm.c
47432 +++ b/drivers/md/dm.c
47433 @@ -193,9 +193,9 @@ struct mapped_device {
47434 /*
47435 * Event handling.
47436 */
47437 - atomic_t event_nr;
47438 + atomic_unchecked_t event_nr;
47439 wait_queue_head_t eventq;
47440 - atomic_t uevent_seq;
47441 + atomic_unchecked_t uevent_seq;
47442 struct list_head uevent_list;
47443 spinlock_t uevent_lock; /* Protect access to uevent_list */
47444
47445 @@ -704,14 +704,16 @@ static void queue_io(struct mapped_device *md, struct bio *bio)
47446 * function to access the md->map field, and make sure they call
47447 * dm_put_live_table() when finished.
47448 */
47449 -struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx) __acquires(md->io_barrier)
47450 +struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx) __acquires(&md->io_barrier);
47451 +struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx)
47452 {
47453 *srcu_idx = srcu_read_lock(&md->io_barrier);
47454
47455 return srcu_dereference(md->map, &md->io_barrier);
47456 }
47457
47458 -void dm_put_live_table(struct mapped_device *md, int srcu_idx) __releases(md->io_barrier)
47459 +void dm_put_live_table(struct mapped_device *md, int srcu_idx) __releases(&md->io_barrier);
47460 +void dm_put_live_table(struct mapped_device *md, int srcu_idx)
47461 {
47462 srcu_read_unlock(&md->io_barrier, srcu_idx);
47463 }
47464 @@ -726,13 +728,15 @@ void dm_sync_table(struct mapped_device *md)
47465 * A fast alternative to dm_get_live_table/dm_put_live_table.
47466 * The caller must not block between these two functions.
47467 */
47468 -static struct dm_table *dm_get_live_table_fast(struct mapped_device *md) __acquires(RCU)
47469 +static struct dm_table *dm_get_live_table_fast(struct mapped_device *md) __acquires(RCU);
47470 +static struct dm_table *dm_get_live_table_fast(struct mapped_device *md)
47471 {
47472 rcu_read_lock();
47473 return rcu_dereference(md->map);
47474 }
47475
47476 -static void dm_put_live_table_fast(struct mapped_device *md) __releases(RCU)
47477 +static void dm_put_live_table_fast(struct mapped_device *md) __releases(RCU);
47478 +static void dm_put_live_table_fast(struct mapped_device *md)
47479 {
47480 rcu_read_unlock();
47481 }
47482 @@ -2286,8 +2290,8 @@ static struct mapped_device *alloc_dev(int minor)
47483 spin_lock_init(&md->deferred_lock);
47484 atomic_set(&md->holders, 1);
47485 atomic_set(&md->open_count, 0);
47486 - atomic_set(&md->event_nr, 0);
47487 - atomic_set(&md->uevent_seq, 0);
47488 + atomic_set_unchecked(&md->event_nr, 0);
47489 + atomic_set_unchecked(&md->uevent_seq, 0);
47490 INIT_LIST_HEAD(&md->uevent_list);
47491 INIT_LIST_HEAD(&md->table_devices);
47492 spin_lock_init(&md->uevent_lock);
47493 @@ -2428,7 +2432,7 @@ static void event_callback(void *context)
47494
47495 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
47496
47497 - atomic_inc(&md->event_nr);
47498 + atomic_inc_unchecked(&md->event_nr);
47499 wake_up(&md->eventq);
47500 }
47501
47502 @@ -3365,18 +3369,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
47503
47504 uint32_t dm_next_uevent_seq(struct mapped_device *md)
47505 {
47506 - return atomic_add_return(1, &md->uevent_seq);
47507 + return atomic_add_return_unchecked(1, &md->uevent_seq);
47508 }
47509
47510 uint32_t dm_get_event_nr(struct mapped_device *md)
47511 {
47512 - return atomic_read(&md->event_nr);
47513 + return atomic_read_unchecked(&md->event_nr);
47514 }
47515
47516 int dm_wait_event(struct mapped_device *md, int event_nr)
47517 {
47518 return wait_event_interruptible(md->eventq,
47519 - (event_nr != atomic_read(&md->event_nr)));
47520 + (event_nr != atomic_read_unchecked(&md->event_nr)));
47521 }
47522
47523 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
47524 diff --git a/drivers/md/md.c b/drivers/md/md.c
47525 index 3fe3d04..e7adf83 100644
47526 --- a/drivers/md/md.c
47527 +++ b/drivers/md/md.c
47528 @@ -197,10 +197,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
47529 * start build, activate spare
47530 */
47531 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
47532 -static atomic_t md_event_count;
47533 +static atomic_unchecked_t md_event_count;
47534 void md_new_event(struct mddev *mddev)
47535 {
47536 - atomic_inc(&md_event_count);
47537 + atomic_inc_unchecked(&md_event_count);
47538 wake_up(&md_event_waiters);
47539 }
47540 EXPORT_SYMBOL_GPL(md_new_event);
47541 @@ -210,7 +210,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
47542 */
47543 static void md_new_event_inintr(struct mddev *mddev)
47544 {
47545 - atomic_inc(&md_event_count);
47546 + atomic_inc_unchecked(&md_event_count);
47547 wake_up(&md_event_waiters);
47548 }
47549
47550 @@ -1431,7 +1431,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
47551 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
47552 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
47553 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
47554 - atomic_set(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47555 + atomic_set_unchecked(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47556
47557 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
47558 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
47559 @@ -1682,7 +1682,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
47560 else
47561 sb->resync_offset = cpu_to_le64(0);
47562
47563 - sb->cnt_corrected_read = cpu_to_le32(atomic_read(&rdev->corrected_errors));
47564 + sb->cnt_corrected_read = cpu_to_le32(atomic_read_unchecked(&rdev->corrected_errors));
47565
47566 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
47567 sb->size = cpu_to_le64(mddev->dev_sectors);
47568 @@ -2604,7 +2604,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
47569 static ssize_t
47570 errors_show(struct md_rdev *rdev, char *page)
47571 {
47572 - return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
47573 + return sprintf(page, "%d\n", atomic_read_unchecked(&rdev->corrected_errors));
47574 }
47575
47576 static ssize_t
47577 @@ -2616,7 +2616,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
47578 rv = kstrtouint(buf, 10, &n);
47579 if (rv < 0)
47580 return rv;
47581 - atomic_set(&rdev->corrected_errors, n);
47582 + atomic_set_unchecked(&rdev->corrected_errors, n);
47583 return len;
47584 }
47585 static struct rdev_sysfs_entry rdev_errors =
47586 @@ -3053,8 +3053,8 @@ int md_rdev_init(struct md_rdev *rdev)
47587 rdev->sb_loaded = 0;
47588 rdev->bb_page = NULL;
47589 atomic_set(&rdev->nr_pending, 0);
47590 - atomic_set(&rdev->read_errors, 0);
47591 - atomic_set(&rdev->corrected_errors, 0);
47592 + atomic_set_unchecked(&rdev->read_errors, 0);
47593 + atomic_set_unchecked(&rdev->corrected_errors, 0);
47594
47595 INIT_LIST_HEAD(&rdev->same_set);
47596 init_waitqueue_head(&rdev->blocked_wait);
47597 @@ -5709,9 +5709,10 @@ static int get_array_info(struct mddev *mddev, void __user *arg)
47598 info.patch_version = MD_PATCHLEVEL_VERSION;
47599 info.ctime = mddev->ctime;
47600 info.level = mddev->level;
47601 - info.size = mddev->dev_sectors / 2;
47602 - if (info.size != mddev->dev_sectors / 2) /* overflow */
47603 + if (2 * (sector_t)INT_MAX < mddev->dev_sectors) /* overflow */
47604 info.size = -1;
47605 + else
47606 + info.size = mddev->dev_sectors / 2;
47607 info.nr_disks = nr;
47608 info.raid_disks = mddev->raid_disks;
47609 info.md_minor = mddev->md_minor;
47610 @@ -7257,7 +7258,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
47611
47612 spin_unlock(&pers_lock);
47613 seq_printf(seq, "\n");
47614 - seq->poll_event = atomic_read(&md_event_count);
47615 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47616 return 0;
47617 }
47618 if (v == (void*)2) {
47619 @@ -7355,7 +7356,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
47620 return error;
47621
47622 seq = file->private_data;
47623 - seq->poll_event = atomic_read(&md_event_count);
47624 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47625 return error;
47626 }
47627
47628 @@ -7372,7 +7373,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
47629 /* always allow read */
47630 mask = POLLIN | POLLRDNORM;
47631
47632 - if (seq->poll_event != atomic_read(&md_event_count))
47633 + if (seq->poll_event != atomic_read_unchecked(&md_event_count))
47634 mask |= POLLERR | POLLPRI;
47635 return mask;
47636 }
47637 @@ -7472,7 +7473,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
47638 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
47639 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
47640 (int)part_stat_read(&disk->part0, sectors[1]) -
47641 - atomic_read(&disk->sync_io);
47642 + atomic_read_unchecked(&disk->sync_io);
47643 /* sync IO will cause sync_io to increase before the disk_stats
47644 * as sync_io is counted when a request starts, and
47645 * disk_stats is counted when it completes.
47646 diff --git a/drivers/md/md.h b/drivers/md/md.h
47647 index ab33957..126a644 100644
47648 --- a/drivers/md/md.h
47649 +++ b/drivers/md/md.h
47650 @@ -96,13 +96,13 @@ struct md_rdev {
47651 * only maintained for arrays that
47652 * support hot removal
47653 */
47654 - atomic_t read_errors; /* number of consecutive read errors that
47655 + atomic_unchecked_t read_errors; /* number of consecutive read errors that
47656 * we have tried to ignore.
47657 */
47658 struct timespec last_read_error; /* monotonic time since our
47659 * last read error
47660 */
47661 - atomic_t corrected_errors; /* number of corrected read errors,
47662 + atomic_unchecked_t corrected_errors; /* number of corrected read errors,
47663 * for reporting to userspace and storing
47664 * in superblock.
47665 */
47666 @@ -479,7 +479,7 @@ extern void mddev_unlock(struct mddev *mddev);
47667
47668 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
47669 {
47670 - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47671 + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47672 }
47673
47674 struct md_personality
47675 diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
47676 index 5309129..7fb096e 100644
47677 --- a/drivers/md/persistent-data/dm-space-map-metadata.c
47678 +++ b/drivers/md/persistent-data/dm-space-map-metadata.c
47679 @@ -691,7 +691,7 @@ static int sm_metadata_extend(struct dm_space_map *sm, dm_block_t extra_blocks)
47680 * Flick into a mode where all blocks get allocated in the new area.
47681 */
47682 smm->begin = old_len;
47683 - memcpy(sm, &bootstrap_ops, sizeof(*sm));
47684 + memcpy((void *)sm, &bootstrap_ops, sizeof(*sm));
47685
47686 /*
47687 * Extend.
47688 @@ -728,7 +728,7 @@ out:
47689 /*
47690 * Switch back to normal behaviour.
47691 */
47692 - memcpy(sm, &ops, sizeof(*sm));
47693 + memcpy((void *)sm, &ops, sizeof(*sm));
47694 return r;
47695 }
47696
47697 diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
47698 index 3e6d115..ffecdeb 100644
47699 --- a/drivers/md/persistent-data/dm-space-map.h
47700 +++ b/drivers/md/persistent-data/dm-space-map.h
47701 @@ -71,6 +71,7 @@ struct dm_space_map {
47702 dm_sm_threshold_fn fn,
47703 void *context);
47704 };
47705 +typedef struct dm_space_map __no_const dm_space_map_no_const;
47706
47707 /*----------------------------------------------------------------*/
47708
47709 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
47710 index d9d031e..38e5356 100644
47711 --- a/drivers/md/raid1.c
47712 +++ b/drivers/md/raid1.c
47713 @@ -1061,7 +1061,7 @@ static void make_request(struct mddev *mddev, struct bio * bio)
47714 struct blk_plug_cb *cb;
47715 struct raid1_plug_cb *plug = NULL;
47716 int first_clone;
47717 - int sectors_handled;
47718 + sector_t sectors_handled;
47719 int max_sectors;
47720 sector_t start_next_window;
47721
47722 @@ -1884,7 +1884,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
47723 if (r1_sync_page_io(rdev, sect, s,
47724 bio->bi_io_vec[idx].bv_page,
47725 READ) != 0)
47726 - atomic_add(s, &rdev->corrected_errors);
47727 + atomic_add_unchecked(s, &rdev->corrected_errors);
47728 }
47729 sectors -= s;
47730 sect += s;
47731 @@ -2116,7 +2116,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
47732 !test_bit(Faulty, &rdev->flags)) {
47733 if (r1_sync_page_io(rdev, sect, s,
47734 conf->tmppage, READ)) {
47735 - atomic_add(s, &rdev->corrected_errors);
47736 + atomic_add_unchecked(s, &rdev->corrected_errors);
47737 printk(KERN_INFO
47738 "md/raid1:%s: read error corrected "
47739 "(%d sectors at %llu on %s)\n",
47740 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
47741 index 96f3659..38437f5 100644
47742 --- a/drivers/md/raid10.c
47743 +++ b/drivers/md/raid10.c
47744 @@ -1068,7 +1068,7 @@ static void __make_request(struct mddev *mddev, struct bio *bio)
47745 struct md_rdev *blocked_rdev;
47746 struct blk_plug_cb *cb;
47747 struct raid10_plug_cb *plug = NULL;
47748 - int sectors_handled;
47749 + sector_t sectors_handled;
47750 int max_sectors;
47751 int sectors;
47752
47753 @@ -1827,7 +1827,7 @@ static void end_sync_read(struct bio *bio)
47754 /* The write handler will notice the lack of
47755 * R10BIO_Uptodate and record any errors etc
47756 */
47757 - atomic_add(r10_bio->sectors,
47758 + atomic_add_unchecked(r10_bio->sectors,
47759 &conf->mirrors[d].rdev->corrected_errors);
47760
47761 /* for reconstruct, we always reschedule after a read.
47762 @@ -2173,7 +2173,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
47763 {
47764 struct timespec cur_time_mon;
47765 unsigned long hours_since_last;
47766 - unsigned int read_errors = atomic_read(&rdev->read_errors);
47767 + unsigned int read_errors = atomic_read_unchecked(&rdev->read_errors);
47768
47769 ktime_get_ts(&cur_time_mon);
47770
47771 @@ -2195,9 +2195,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
47772 * overflowing the shift of read_errors by hours_since_last.
47773 */
47774 if (hours_since_last >= 8 * sizeof(read_errors))
47775 - atomic_set(&rdev->read_errors, 0);
47776 + atomic_set_unchecked(&rdev->read_errors, 0);
47777 else
47778 - atomic_set(&rdev->read_errors, read_errors >> hours_since_last);
47779 + atomic_set_unchecked(&rdev->read_errors, read_errors >> hours_since_last);
47780 }
47781
47782 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
47783 @@ -2251,8 +2251,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47784 return;
47785
47786 check_decay_read_errors(mddev, rdev);
47787 - atomic_inc(&rdev->read_errors);
47788 - if (atomic_read(&rdev->read_errors) > max_read_errors) {
47789 + atomic_inc_unchecked(&rdev->read_errors);
47790 + if (atomic_read_unchecked(&rdev->read_errors) > max_read_errors) {
47791 char b[BDEVNAME_SIZE];
47792 bdevname(rdev->bdev, b);
47793
47794 @@ -2260,7 +2260,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47795 "md/raid10:%s: %s: Raid device exceeded "
47796 "read_error threshold [cur %d:max %d]\n",
47797 mdname(mddev), b,
47798 - atomic_read(&rdev->read_errors), max_read_errors);
47799 + atomic_read_unchecked(&rdev->read_errors), max_read_errors);
47800 printk(KERN_NOTICE
47801 "md/raid10:%s: %s: Failing raid device\n",
47802 mdname(mddev), b);
47803 @@ -2413,7 +2413,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47804 sect +
47805 choose_data_offset(r10_bio, rdev)),
47806 bdevname(rdev->bdev, b));
47807 - atomic_add(s, &rdev->corrected_errors);
47808 + atomic_add_unchecked(s, &rdev->corrected_errors);
47809 }
47810
47811 rdev_dec_pending(rdev, mddev);
47812 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
47813 index 45933c1..831da5f 100644
47814 --- a/drivers/md/raid5.c
47815 +++ b/drivers/md/raid5.c
47816 @@ -1115,23 +1115,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
47817 struct bio_vec bvl;
47818 struct bvec_iter iter;
47819 struct page *bio_page;
47820 - int page_offset;
47821 + s64 page_offset;
47822 struct async_submit_ctl submit;
47823 enum async_tx_flags flags = 0;
47824
47825 if (bio->bi_iter.bi_sector >= sector)
47826 - page_offset = (signed)(bio->bi_iter.bi_sector - sector) * 512;
47827 + page_offset = (s64)(bio->bi_iter.bi_sector - sector) * 512;
47828 else
47829 - page_offset = (signed)(sector - bio->bi_iter.bi_sector) * -512;
47830 + page_offset = (s64)(sector - bio->bi_iter.bi_sector) * -512;
47831
47832 if (frombio)
47833 flags |= ASYNC_TX_FENCE;
47834 init_async_submit(&submit, flags, tx, NULL, NULL, NULL);
47835
47836 bio_for_each_segment(bvl, bio, iter) {
47837 - int len = bvl.bv_len;
47838 - int clen;
47839 - int b_offset = 0;
47840 + s64 len = bvl.bv_len;
47841 + s64 clen;
47842 + s64 b_offset = 0;
47843
47844 if (page_offset < 0) {
47845 b_offset = -page_offset;
47846 @@ -2022,6 +2022,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t gfp)
47847 return 1;
47848 }
47849
47850 +#ifdef CONFIG_GRKERNSEC_HIDESYM
47851 +static atomic_unchecked_t raid5_cache_id = ATOMIC_INIT(0);
47852 +#endif
47853 +
47854 static int grow_stripes(struct r5conf *conf, int num)
47855 {
47856 struct kmem_cache *sc;
47857 @@ -2032,7 +2036,11 @@ static int grow_stripes(struct r5conf *conf, int num)
47858 "raid%d-%s", conf->level, mdname(conf->mddev));
47859 else
47860 sprintf(conf->cache_name[0],
47861 +#ifdef CONFIG_GRKERNSEC_HIDESYM
47862 + "raid%d-%08lx", conf->level, atomic_inc_return_unchecked(&raid5_cache_id));
47863 +#else
47864 "raid%d-%p", conf->level, conf->mddev);
47865 +#endif
47866 sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
47867
47868 conf->active_name = 0;
47869 @@ -2323,21 +2331,21 @@ static void raid5_end_read_request(struct bio * bi)
47870 mdname(conf->mddev), STRIPE_SECTORS,
47871 (unsigned long long)s,
47872 bdevname(rdev->bdev, b));
47873 - atomic_add(STRIPE_SECTORS, &rdev->corrected_errors);
47874 + atomic_add_unchecked(STRIPE_SECTORS, &rdev->corrected_errors);
47875 clear_bit(R5_ReadError, &sh->dev[i].flags);
47876 clear_bit(R5_ReWrite, &sh->dev[i].flags);
47877 } else if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
47878 clear_bit(R5_ReadNoMerge, &sh->dev[i].flags);
47879
47880 - if (atomic_read(&rdev->read_errors))
47881 - atomic_set(&rdev->read_errors, 0);
47882 + if (atomic_read_unchecked(&rdev->read_errors))
47883 + atomic_set_unchecked(&rdev->read_errors, 0);
47884 } else {
47885 const char *bdn = bdevname(rdev->bdev, b);
47886 int retry = 0;
47887 int set_bad = 0;
47888
47889 clear_bit(R5_UPTODATE, &sh->dev[i].flags);
47890 - atomic_inc(&rdev->read_errors);
47891 + atomic_inc_unchecked(&rdev->read_errors);
47892 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
47893 printk_ratelimited(
47894 KERN_WARNING
47895 @@ -2365,7 +2373,7 @@ static void raid5_end_read_request(struct bio * bi)
47896 mdname(conf->mddev),
47897 (unsigned long long)s,
47898 bdn);
47899 - } else if (atomic_read(&rdev->read_errors)
47900 + } else if (atomic_read_unchecked(&rdev->read_errors)
47901 > conf->max_nr_stripes)
47902 printk(KERN_WARNING
47903 "md/raid:%s: Too many read errors, failing device %s.\n",
47904 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
47905 index 13bb57f..0ca21b2 100644
47906 --- a/drivers/media/dvb-core/dvbdev.c
47907 +++ b/drivers/media/dvb-core/dvbdev.c
47908 @@ -272,7 +272,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
47909 const struct dvb_device *template, void *priv, int type)
47910 {
47911 struct dvb_device *dvbdev;
47912 - struct file_operations *dvbdevfops;
47913 + file_operations_no_const *dvbdevfops;
47914 struct device *clsdev;
47915 int minor;
47916 int id;
47917 diff --git a/drivers/media/dvb-frontends/af9033.h b/drivers/media/dvb-frontends/af9033.h
47918 index 6ad22b6..6e90e2a 100644
47919 --- a/drivers/media/dvb-frontends/af9033.h
47920 +++ b/drivers/media/dvb-frontends/af9033.h
47921 @@ -96,6 +96,6 @@ struct af9033_ops {
47922 int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff);
47923 int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid,
47924 int onoff);
47925 -};
47926 +} __no_const;
47927
47928 #endif /* AF9033_H */
47929 diff --git a/drivers/media/dvb-frontends/dib3000.h b/drivers/media/dvb-frontends/dib3000.h
47930 index 6ae9899..07d8543 100644
47931 --- a/drivers/media/dvb-frontends/dib3000.h
47932 +++ b/drivers/media/dvb-frontends/dib3000.h
47933 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
47934 int (*fifo_ctrl)(struct dvb_frontend *fe, int onoff);
47935 int (*pid_ctrl)(struct dvb_frontend *fe, int index, int pid, int onoff);
47936 int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
47937 -};
47938 +} __no_const;
47939
47940 #if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
47941 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
47942 diff --git a/drivers/media/dvb-frontends/dib7000p.h b/drivers/media/dvb-frontends/dib7000p.h
47943 index baa2789..c8de7fe 100644
47944 --- a/drivers/media/dvb-frontends/dib7000p.h
47945 +++ b/drivers/media/dvb-frontends/dib7000p.h
47946 @@ -64,7 +64,7 @@ struct dib7000p_ops {
47947 int (*get_adc_power)(struct dvb_frontend *fe);
47948 int (*slave_reset)(struct dvb_frontend *fe);
47949 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
47950 -};
47951 +} __no_const;
47952
47953 #if IS_REACHABLE(CONFIG_DVB_DIB7000P)
47954 void *dib7000p_attach(struct dib7000p_ops *ops);
47955 diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h
47956 index 2b8b4b1..8cef451 100644
47957 --- a/drivers/media/dvb-frontends/dib8000.h
47958 +++ b/drivers/media/dvb-frontends/dib8000.h
47959 @@ -61,7 +61,7 @@ struct dib8000_ops {
47960 int (*pid_filter_ctrl)(struct dvb_frontend *fe, u8 onoff);
47961 int (*pid_filter)(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
47962 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg);
47963 -};
47964 +} __no_const;
47965
47966 #if IS_REACHABLE(CONFIG_DVB_DIB8000)
47967 void *dib8000_attach(struct dib8000_ops *ops);
47968 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
47969 index 400e5ca..f69f748 100644
47970 --- a/drivers/media/pci/cx88/cx88-video.c
47971 +++ b/drivers/media/pci/cx88/cx88-video.c
47972 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
47973
47974 /* ------------------------------------------------------------------ */
47975
47976 -static unsigned int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47977 -static unsigned int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47978 -static unsigned int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47979 +static int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47980 +static int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47981 +static int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47982
47983 module_param_array(video_nr, int, NULL, 0444);
47984 module_param_array(vbi_nr, int, NULL, 0444);
47985 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
47986 index 8616fa8..e16eeaf 100644
47987 --- a/drivers/media/pci/ivtv/ivtv-driver.c
47988 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
47989 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
47990 MODULE_DEVICE_TABLE(pci,ivtv_pci_tbl);
47991
47992 /* ivtv instance counter */
47993 -static atomic_t ivtv_instance = ATOMIC_INIT(0);
47994 +static atomic_unchecked_t ivtv_instance = ATOMIC_INIT(0);
47995
47996 /* Parameter declarations */
47997 static int cardtype[IVTV_MAX_CARDS];
47998 diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c
47999 index f50d072..0214f25 100644
48000 --- a/drivers/media/pci/solo6x10/solo6x10-core.c
48001 +++ b/drivers/media/pci/solo6x10/solo6x10-core.c
48002 @@ -411,7 +411,7 @@ static void solo_device_release(struct device *dev)
48003
48004 static int solo_sysfs_init(struct solo_dev *solo_dev)
48005 {
48006 - struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
48007 + bin_attribute_no_const *sdram_attr = &solo_dev->sdram_attr;
48008 struct device *dev = &solo_dev->dev;
48009 const char *driver;
48010 int i;
48011 diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
48012 index 4a37a1c..7e82dfd 100644
48013 --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
48014 +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
48015 @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
48016
48017 int solo_g723_init(struct solo_dev *solo_dev)
48018 {
48019 - static struct snd_device_ops ops = { NULL };
48020 + static struct snd_device_ops ops = { };
48021 struct snd_card *card;
48022 struct snd_kcontrol_new kctl;
48023 char name[32];
48024 diff --git a/drivers/media/pci/solo6x10/solo6x10-p2m.c b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48025 index 8c84846..27b4f83 100644
48026 --- a/drivers/media/pci/solo6x10/solo6x10-p2m.c
48027 +++ b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48028 @@ -73,7 +73,7 @@ int solo_p2m_dma_desc(struct solo_dev *solo_dev,
48029
48030 /* Get next ID. According to Softlogic, 6110 has problems on !=0 P2M */
48031 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) {
48032 - p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;
48033 + p2m_id = atomic_inc_return_unchecked(&solo_dev->p2m_count) % SOLO_NR_P2M;
48034 if (p2m_id < 0)
48035 p2m_id = -p2m_id;
48036 }
48037 diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
48038 index 27423d7..c3332fd 100644
48039 --- a/drivers/media/pci/solo6x10/solo6x10.h
48040 +++ b/drivers/media/pci/solo6x10/solo6x10.h
48041 @@ -217,7 +217,7 @@ struct solo_dev {
48042
48043 /* P2M DMA Engine */
48044 struct solo_p2m_dev p2m_dev[SOLO_NR_P2M];
48045 - atomic_t p2m_count;
48046 + atomic_unchecked_t p2m_count;
48047 int p2m_jiffies;
48048 unsigned int p2m_timeouts;
48049
48050 diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
48051 index 04706cc..23ae0ae 100644
48052 --- a/drivers/media/pci/tw68/tw68-core.c
48053 +++ b/drivers/media/pci/tw68/tw68-core.c
48054 @@ -61,7 +61,7 @@ static unsigned int card[] = {[0 ... (TW68_MAXBOARDS - 1)] = UNSET };
48055 module_param_array(card, int, NULL, 0444);
48056 MODULE_PARM_DESC(card, "card type");
48057
48058 -static atomic_t tw68_instance = ATOMIC_INIT(0);
48059 +static atomic_unchecked_t tw68_instance = ATOMIC_INIT(0);
48060
48061 /* ------------------------------------------------------------------ */
48062
48063 diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
48064 index 70c28d1..ff21b13 100644
48065 --- a/drivers/media/platform/omap/omap_vout.c
48066 +++ b/drivers/media/platform/omap/omap_vout.c
48067 @@ -63,7 +63,6 @@ enum omap_vout_channels {
48068 OMAP_VIDEO2,
48069 };
48070
48071 -static struct videobuf_queue_ops video_vbq_ops;
48072 /* Variables configurable through module params*/
48073 static u32 video1_numbuffers = 3;
48074 static u32 video2_numbuffers = 3;
48075 @@ -1001,6 +1000,12 @@ static int omap_vout_open(struct file *file)
48076 {
48077 struct videobuf_queue *q;
48078 struct omap_vout_device *vout = NULL;
48079 + static struct videobuf_queue_ops video_vbq_ops = {
48080 + .buf_setup = omap_vout_buffer_setup,
48081 + .buf_prepare = omap_vout_buffer_prepare,
48082 + .buf_release = omap_vout_buffer_release,
48083 + .buf_queue = omap_vout_buffer_queue,
48084 + };
48085
48086 vout = video_drvdata(file);
48087 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
48088 @@ -1018,10 +1023,6 @@ static int omap_vout_open(struct file *file)
48089 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
48090
48091 q = &vout->vbq;
48092 - video_vbq_ops.buf_setup = omap_vout_buffer_setup;
48093 - video_vbq_ops.buf_prepare = omap_vout_buffer_prepare;
48094 - video_vbq_ops.buf_release = omap_vout_buffer_release;
48095 - video_vbq_ops.buf_queue = omap_vout_buffer_queue;
48096 spin_lock_init(&vout->vbq_lock);
48097
48098 videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
48099 diff --git a/drivers/media/platform/s5p-tv/mixer.h b/drivers/media/platform/s5p-tv/mixer.h
48100 index fb2acc5..a2fcbdc4 100644
48101 --- a/drivers/media/platform/s5p-tv/mixer.h
48102 +++ b/drivers/media/platform/s5p-tv/mixer.h
48103 @@ -156,7 +156,7 @@ struct mxr_layer {
48104 /** layer index (unique identifier) */
48105 int idx;
48106 /** callbacks for layer methods */
48107 - struct mxr_layer_ops ops;
48108 + struct mxr_layer_ops *ops;
48109 /** format array */
48110 const struct mxr_format **fmt_array;
48111 /** size of format array */
48112 diff --git a/drivers/media/platform/s5p-tv/mixer_grp_layer.c b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48113 index 74344c7..a39e70e 100644
48114 --- a/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48115 +++ b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48116 @@ -235,7 +235,7 @@ struct mxr_layer *mxr_graph_layer_create(struct mxr_device *mdev, int idx)
48117 {
48118 struct mxr_layer *layer;
48119 int ret;
48120 - struct mxr_layer_ops ops = {
48121 + static struct mxr_layer_ops ops = {
48122 .release = mxr_graph_layer_release,
48123 .buffer_set = mxr_graph_buffer_set,
48124 .stream_set = mxr_graph_stream_set,
48125 diff --git a/drivers/media/platform/s5p-tv/mixer_reg.c b/drivers/media/platform/s5p-tv/mixer_reg.c
48126 index 5127acb..a188d0a 100644
48127 --- a/drivers/media/platform/s5p-tv/mixer_reg.c
48128 +++ b/drivers/media/platform/s5p-tv/mixer_reg.c
48129 @@ -276,7 +276,7 @@ static void mxr_irq_layer_handle(struct mxr_layer *layer)
48130 layer->update_buf = next;
48131 }
48132
48133 - layer->ops.buffer_set(layer, layer->update_buf);
48134 + layer->ops->buffer_set(layer, layer->update_buf);
48135
48136 if (done && done != layer->shadow_buf)
48137 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
48138 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
48139 index 751f3b6..d829203 100644
48140 --- a/drivers/media/platform/s5p-tv/mixer_video.c
48141 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
48142 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
48143 layer->geo.src.height = layer->geo.src.full_height;
48144
48145 mxr_geometry_dump(mdev, &layer->geo);
48146 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48147 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48148 mxr_geometry_dump(mdev, &layer->geo);
48149 }
48150
48151 @@ -228,7 +228,7 @@ static void mxr_layer_update_output(struct mxr_layer *layer)
48152 layer->geo.dst.full_width = mbus_fmt.width;
48153 layer->geo.dst.full_height = mbus_fmt.height;
48154 layer->geo.dst.field = mbus_fmt.field;
48155 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48156 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48157
48158 mxr_geometry_dump(mdev, &layer->geo);
48159 }
48160 @@ -334,7 +334,7 @@ static int mxr_s_fmt(struct file *file, void *priv,
48161 /* set source size to highest accepted value */
48162 geo->src.full_width = max(geo->dst.full_width, pix->width);
48163 geo->src.full_height = max(geo->dst.full_height, pix->height);
48164 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48165 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48166 mxr_geometry_dump(mdev, &layer->geo);
48167 /* set cropping to total visible screen */
48168 geo->src.width = pix->width;
48169 @@ -342,12 +342,12 @@ static int mxr_s_fmt(struct file *file, void *priv,
48170 geo->src.x_offset = 0;
48171 geo->src.y_offset = 0;
48172 /* assure consistency of geometry */
48173 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48174 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48175 mxr_geometry_dump(mdev, &layer->geo);
48176 /* set full size to lowest possible value */
48177 geo->src.full_width = 0;
48178 geo->src.full_height = 0;
48179 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48180 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48181 mxr_geometry_dump(mdev, &layer->geo);
48182
48183 /* returning results */
48184 @@ -474,7 +474,7 @@ static int mxr_s_selection(struct file *file, void *fh,
48185 target->width = s->r.width;
48186 target->height = s->r.height;
48187
48188 - layer->ops.fix_geometry(layer, stage, s->flags);
48189 + layer->ops->fix_geometry(layer, stage, s->flags);
48190
48191 /* retrieve update selection rectangle */
48192 res.left = target->x_offset;
48193 @@ -938,13 +938,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
48194 mxr_output_get(mdev);
48195
48196 mxr_layer_update_output(layer);
48197 - layer->ops.format_set(layer);
48198 + layer->ops->format_set(layer);
48199 /* enabling layer in hardware */
48200 spin_lock_irqsave(&layer->enq_slock, flags);
48201 layer->state = MXR_LAYER_STREAMING;
48202 spin_unlock_irqrestore(&layer->enq_slock, flags);
48203
48204 - layer->ops.stream_set(layer, MXR_ENABLE);
48205 + layer->ops->stream_set(layer, MXR_ENABLE);
48206 mxr_streamer_get(mdev);
48207
48208 return 0;
48209 @@ -1014,7 +1014,7 @@ static void stop_streaming(struct vb2_queue *vq)
48210 spin_unlock_irqrestore(&layer->enq_slock, flags);
48211
48212 /* disabling layer in hardware */
48213 - layer->ops.stream_set(layer, MXR_DISABLE);
48214 + layer->ops->stream_set(layer, MXR_DISABLE);
48215 /* remove one streamer */
48216 mxr_streamer_put(mdev);
48217 /* allow changes in output configuration */
48218 @@ -1052,8 +1052,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer)
48219
48220 void mxr_layer_release(struct mxr_layer *layer)
48221 {
48222 - if (layer->ops.release)
48223 - layer->ops.release(layer);
48224 + if (layer->ops->release)
48225 + layer->ops->release(layer);
48226 }
48227
48228 void mxr_base_layer_release(struct mxr_layer *layer)
48229 @@ -1079,7 +1079,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev,
48230
48231 layer->mdev = mdev;
48232 layer->idx = idx;
48233 - layer->ops = *ops;
48234 + layer->ops = ops;
48235
48236 spin_lock_init(&layer->enq_slock);
48237 INIT_LIST_HEAD(&layer->enq_list);
48238 diff --git a/drivers/media/platform/s5p-tv/mixer_vp_layer.c b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48239 index c9388c4..ce71ece 100644
48240 --- a/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48241 +++ b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48242 @@ -206,7 +206,7 @@ struct mxr_layer *mxr_vp_layer_create(struct mxr_device *mdev, int idx)
48243 {
48244 struct mxr_layer *layer;
48245 int ret;
48246 - struct mxr_layer_ops ops = {
48247 + static struct mxr_layer_ops ops = {
48248 .release = mxr_vp_layer_release,
48249 .buffer_set = mxr_vp_buffer_set,
48250 .stream_set = mxr_vp_stream_set,
48251 diff --git a/drivers/media/platform/sti/c8sectpfe/Kconfig b/drivers/media/platform/sti/c8sectpfe/Kconfig
48252 index 641ad8f..02eacb9 100644
48253 --- a/drivers/media/platform/sti/c8sectpfe/Kconfig
48254 +++ b/drivers/media/platform/sti/c8sectpfe/Kconfig
48255 @@ -5,6 +5,7 @@ config DVB_C8SECTPFE
48256 select FW_LOADER
48257 select FW_LOADER_USER_HELPER_FALLBACK
48258 select DEBUG_FS
48259 + depends on !GRKERNSEC_KMEM
48260 select DVB_LNBP21 if MEDIA_SUBDRV_AUTOSELECT
48261 select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT
48262 select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT
48263 diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
48264 index 084d346..e15eef6 100644
48265 --- a/drivers/media/platform/vivid/vivid-osd.c
48266 +++ b/drivers/media/platform/vivid/vivid-osd.c
48267 @@ -85,6 +85,7 @@ static int vivid_fb_ioctl(struct fb_info *info, unsigned cmd, unsigned long arg)
48268 case FBIOGET_VBLANK: {
48269 struct fb_vblank vblank;
48270
48271 + memset(&vblank, 0, sizeof(vblank));
48272 vblank.flags = FB_VBLANK_HAVE_COUNT | FB_VBLANK_HAVE_VCOUNT |
48273 FB_VBLANK_HAVE_VSYNC;
48274 vblank.count = 0;
48275 diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
48276 index 82affae..42833ec 100644
48277 --- a/drivers/media/radio/radio-cadet.c
48278 +++ b/drivers/media/radio/radio-cadet.c
48279 @@ -333,6 +333,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48280 unsigned char readbuf[RDS_BUFFER];
48281 int i = 0;
48282
48283 + if (count > RDS_BUFFER)
48284 + return -EFAULT;
48285 mutex_lock(&dev->lock);
48286 if (dev->rdsstat == 0)
48287 cadet_start_rds(dev);
48288 @@ -349,8 +351,9 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48289 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
48290 mutex_unlock(&dev->lock);
48291
48292 - if (i && copy_to_user(data, readbuf, i))
48293 - return -EFAULT;
48294 + if (i > sizeof(readbuf) || (i && copy_to_user(data, readbuf, i)))
48295 + i = -EFAULT;
48296 +
48297 return i;
48298 }
48299
48300 diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
48301 index 5236035..c622c74 100644
48302 --- a/drivers/media/radio/radio-maxiradio.c
48303 +++ b/drivers/media/radio/radio-maxiradio.c
48304 @@ -61,7 +61,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
48305 /* TEA5757 pin mappings */
48306 static const int clk = 1, data = 2, wren = 4, mo_st = 8, power = 16;
48307
48308 -static atomic_t maxiradio_instance = ATOMIC_INIT(0);
48309 +static atomic_unchecked_t maxiradio_instance = ATOMIC_INIT(0);
48310
48311 #define PCI_VENDOR_ID_GUILLEMOT 0x5046
48312 #define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
48313 diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
48314 index 050b3bb..79f62b9 100644
48315 --- a/drivers/media/radio/radio-shark.c
48316 +++ b/drivers/media/radio/radio-shark.c
48317 @@ -79,7 +79,7 @@ struct shark_device {
48318 u32 last_val;
48319 };
48320
48321 -static atomic_t shark_instance = ATOMIC_INIT(0);
48322 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48323
48324 static void shark_write_val(struct snd_tea575x *tea, u32 val)
48325 {
48326 diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
48327 index 8654e0d..0608a64 100644
48328 --- a/drivers/media/radio/radio-shark2.c
48329 +++ b/drivers/media/radio/radio-shark2.c
48330 @@ -74,7 +74,7 @@ struct shark_device {
48331 u8 *transfer_buffer;
48332 };
48333
48334 -static atomic_t shark_instance = ATOMIC_INIT(0);
48335 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48336
48337 static int shark_write_reg(struct radio_tea5777 *tea, u64 reg)
48338 {
48339 diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
48340 index 9cbb8cd..2bf2ff3 100644
48341 --- a/drivers/media/radio/radio-si476x.c
48342 +++ b/drivers/media/radio/radio-si476x.c
48343 @@ -1445,7 +1445,7 @@ static int si476x_radio_probe(struct platform_device *pdev)
48344 struct si476x_radio *radio;
48345 struct v4l2_ctrl *ctrl;
48346
48347 - static atomic_t instance = ATOMIC_INIT(0);
48348 + static atomic_unchecked_t instance = ATOMIC_INIT(0);
48349
48350 radio = devm_kzalloc(&pdev->dev, sizeof(*radio), GFP_KERNEL);
48351 if (!radio)
48352 diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c
48353 index ebc73b0..ca6babf 100644
48354 --- a/drivers/media/radio/wl128x/fmdrv_common.c
48355 +++ b/drivers/media/radio/wl128x/fmdrv_common.c
48356 @@ -71,7 +71,7 @@ module_param(default_rds_buf, uint, 0444);
48357 MODULE_PARM_DESC(rds_buf, "RDS buffer entries");
48358
48359 /* Radio Nr */
48360 -static u32 radio_nr = -1;
48361 +static int radio_nr = -1;
48362 module_param(radio_nr, int, 0444);
48363 MODULE_PARM_DESC(radio_nr, "Radio Nr");
48364
48365 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-core.c b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48366 index 9fd1527..8927230 100644
48367 --- a/drivers/media/usb/dvb-usb/cinergyT2-core.c
48368 +++ b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48369 @@ -50,29 +50,73 @@ static struct dvb_usb_device_properties cinergyt2_properties;
48370
48371 static int cinergyt2_streaming_ctrl(struct dvb_usb_adapter *adap, int enable)
48372 {
48373 - char buf[] = { CINERGYT2_EP1_CONTROL_STREAM_TRANSFER, enable ? 1 : 0 };
48374 - char result[64];
48375 - return dvb_usb_generic_rw(adap->dev, buf, sizeof(buf), result,
48376 - sizeof(result), 0);
48377 + char *buf;
48378 + char *result;
48379 + int retval;
48380 +
48381 + buf = kmalloc(2, GFP_KERNEL);
48382 + if (buf == NULL)
48383 + return -ENOMEM;
48384 + result = kmalloc(64, GFP_KERNEL);
48385 + if (result == NULL) {
48386 + kfree(buf);
48387 + return -ENOMEM;
48388 + }
48389 +
48390 + buf[0] = CINERGYT2_EP1_CONTROL_STREAM_TRANSFER;
48391 + buf[1] = enable ? 1 : 0;
48392 +
48393 + retval = dvb_usb_generic_rw(adap->dev, buf, 2, result, 64, 0);
48394 +
48395 + kfree(buf);
48396 + kfree(result);
48397 + return retval;
48398 }
48399
48400 static int cinergyt2_power_ctrl(struct dvb_usb_device *d, int enable)
48401 {
48402 - char buf[] = { CINERGYT2_EP1_SLEEP_MODE, enable ? 0 : 1 };
48403 - char state[3];
48404 - return dvb_usb_generic_rw(d, buf, sizeof(buf), state, sizeof(state), 0);
48405 + char *buf;
48406 + char *state;
48407 + int retval;
48408 +
48409 + buf = kmalloc(2, GFP_KERNEL);
48410 + if (buf == NULL)
48411 + return -ENOMEM;
48412 + state = kmalloc(3, GFP_KERNEL);
48413 + if (state == NULL) {
48414 + kfree(buf);
48415 + return -ENOMEM;
48416 + }
48417 +
48418 + buf[0] = CINERGYT2_EP1_SLEEP_MODE;
48419 + buf[1] = enable ? 1 : 0;
48420 +
48421 + retval = dvb_usb_generic_rw(d, buf, 2, state, 3, 0);
48422 +
48423 + kfree(buf);
48424 + kfree(state);
48425 + return retval;
48426 }
48427
48428 static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48429 {
48430 - char query[] = { CINERGYT2_EP1_GET_FIRMWARE_VERSION };
48431 - char state[3];
48432 + char *query;
48433 + char *state;
48434 int ret;
48435 + query = kmalloc(1, GFP_KERNEL);
48436 + if (query == NULL)
48437 + return -ENOMEM;
48438 + state = kmalloc(3, GFP_KERNEL);
48439 + if (state == NULL) {
48440 + kfree(query);
48441 + return -ENOMEM;
48442 + }
48443 +
48444 + query[0] = CINERGYT2_EP1_GET_FIRMWARE_VERSION;
48445
48446 adap->fe_adap[0].fe = cinergyt2_fe_attach(adap->dev);
48447
48448 - ret = dvb_usb_generic_rw(adap->dev, query, sizeof(query), state,
48449 - sizeof(state), 0);
48450 + ret = dvb_usb_generic_rw(adap->dev, query, 1, state, 3, 0);
48451 if (ret < 0) {
48452 deb_rc("cinergyt2_power_ctrl() Failed to retrieve sleep "
48453 "state info\n");
48454 @@ -80,7 +124,8 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48455
48456 /* Copy this pointer as we are gonna need it in the release phase */
48457 cinergyt2_usb_device = adap->dev;
48458 -
48459 + kfree(query);
48460 + kfree(state);
48461 return 0;
48462 }
48463
48464 @@ -141,12 +186,23 @@ static int repeatable_keys[] = {
48465 static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48466 {
48467 struct cinergyt2_state *st = d->priv;
48468 - u8 key[5] = {0, 0, 0, 0, 0}, cmd = CINERGYT2_EP1_GET_RC_EVENTS;
48469 + u8 *key, *cmd;
48470 int i;
48471
48472 + cmd = kmalloc(1, GFP_KERNEL);
48473 + if (cmd == NULL)
48474 + return -EINVAL;
48475 + key = kzalloc(5, GFP_KERNEL);
48476 + if (key == NULL) {
48477 + kfree(cmd);
48478 + return -EINVAL;
48479 + }
48480 +
48481 + cmd[0] = CINERGYT2_EP1_GET_RC_EVENTS;
48482 +
48483 *state = REMOTE_NO_KEY_PRESSED;
48484
48485 - dvb_usb_generic_rw(d, &cmd, 1, key, sizeof(key), 0);
48486 + dvb_usb_generic_rw(d, cmd, 1, key, 5, 0);
48487 if (key[4] == 0xff) {
48488 /* key repeat */
48489 st->rc_counter++;
48490 @@ -157,12 +213,12 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48491 *event = d->last_event;
48492 deb_rc("repeat key, event %x\n",
48493 *event);
48494 - return 0;
48495 + goto out;
48496 }
48497 }
48498 deb_rc("repeated key (non repeatable)\n");
48499 }
48500 - return 0;
48501 + goto out;
48502 }
48503
48504 /* hack to pass checksum on the custom field */
48505 @@ -174,6 +230,9 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48506
48507 deb_rc("key: %*ph\n", 5, key);
48508 }
48509 +out:
48510 + kfree(cmd);
48511 + kfree(key);
48512 return 0;
48513 }
48514
48515 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-fe.c b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48516 index b3ec743..9c0e418 100644
48517 --- a/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48518 +++ b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48519 @@ -145,103 +145,176 @@ static int cinergyt2_fe_read_status(struct dvb_frontend *fe,
48520 enum fe_status *status)
48521 {
48522 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48523 - struct dvbt_get_status_msg result;
48524 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48525 + struct dvbt_get_status_msg *result;
48526 + u8 *cmd;
48527 int ret;
48528
48529 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&result,
48530 - sizeof(result), 0);
48531 + cmd = kmalloc(1, GFP_KERNEL);
48532 + if (cmd == NULL)
48533 + return -ENOMEM;
48534 + result = kmalloc(sizeof(*result), GFP_KERNEL);
48535 + if (result == NULL) {
48536 + kfree(cmd);
48537 + return -ENOMEM;
48538 + }
48539 +
48540 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48541 +
48542 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)result,
48543 + sizeof(*result), 0);
48544 if (ret < 0)
48545 - return ret;
48546 + goto out;
48547
48548 *status = 0;
48549
48550 - if (0xffff - le16_to_cpu(result.gain) > 30)
48551 + if (0xffff - le16_to_cpu(result->gain) > 30)
48552 *status |= FE_HAS_SIGNAL;
48553 - if (result.lock_bits & (1 << 6))
48554 + if (result->lock_bits & (1 << 6))
48555 *status |= FE_HAS_LOCK;
48556 - if (result.lock_bits & (1 << 5))
48557 + if (result->lock_bits & (1 << 5))
48558 *status |= FE_HAS_SYNC;
48559 - if (result.lock_bits & (1 << 4))
48560 + if (result->lock_bits & (1 << 4))
48561 *status |= FE_HAS_CARRIER;
48562 - if (result.lock_bits & (1 << 1))
48563 + if (result->lock_bits & (1 << 1))
48564 *status |= FE_HAS_VITERBI;
48565
48566 if ((*status & (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC)) !=
48567 (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC))
48568 *status &= ~FE_HAS_LOCK;
48569
48570 - return 0;
48571 +out:
48572 + kfree(cmd);
48573 + kfree(result);
48574 + return ret;
48575 }
48576
48577 static int cinergyt2_fe_read_ber(struct dvb_frontend *fe, u32 *ber)
48578 {
48579 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48580 - struct dvbt_get_status_msg status;
48581 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48582 + struct dvbt_get_status_msg *status;
48583 + char *cmd;
48584 int ret;
48585
48586 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48587 - sizeof(status), 0);
48588 + cmd = kmalloc(1, GFP_KERNEL);
48589 + if (cmd == NULL)
48590 + return -ENOMEM;
48591 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48592 + if (status == NULL) {
48593 + kfree(cmd);
48594 + return -ENOMEM;
48595 + }
48596 +
48597 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48598 +
48599 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48600 + sizeof(*status), 0);
48601 if (ret < 0)
48602 - return ret;
48603 + goto out;
48604
48605 - *ber = le32_to_cpu(status.viterbi_error_rate);
48606 + *ber = le32_to_cpu(status->viterbi_error_rate);
48607 +out:
48608 + kfree(cmd);
48609 + kfree(status);
48610 return 0;
48611 }
48612
48613 static int cinergyt2_fe_read_unc_blocks(struct dvb_frontend *fe, u32 *unc)
48614 {
48615 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48616 - struct dvbt_get_status_msg status;
48617 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48618 + struct dvbt_get_status_msg *status;
48619 + u8 *cmd;
48620 int ret;
48621
48622 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&status,
48623 - sizeof(status), 0);
48624 + cmd = kmalloc(1, GFP_KERNEL);
48625 + if (cmd == NULL)
48626 + return -ENOMEM;
48627 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48628 + if (status == NULL) {
48629 + kfree(cmd);
48630 + return -ENOMEM;
48631 + }
48632 +
48633 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48634 +
48635 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)status,
48636 + sizeof(*status), 0);
48637 if (ret < 0) {
48638 err("cinergyt2_fe_read_unc_blocks() Failed! (Error=%d)\n",
48639 ret);
48640 - return ret;
48641 + goto out;
48642 }
48643 - *unc = le32_to_cpu(status.uncorrected_block_count);
48644 - return 0;
48645 + *unc = le32_to_cpu(status->uncorrected_block_count);
48646 +
48647 +out:
48648 + kfree(cmd);
48649 + kfree(status);
48650 + return ret;
48651 }
48652
48653 static int cinergyt2_fe_read_signal_strength(struct dvb_frontend *fe,
48654 u16 *strength)
48655 {
48656 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48657 - struct dvbt_get_status_msg status;
48658 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48659 + struct dvbt_get_status_msg *status;
48660 + char *cmd;
48661 int ret;
48662
48663 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48664 - sizeof(status), 0);
48665 + cmd = kmalloc(1, GFP_KERNEL);
48666 + if (cmd == NULL)
48667 + return -ENOMEM;
48668 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48669 + if (status == NULL) {
48670 + kfree(cmd);
48671 + return -ENOMEM;
48672 + }
48673 +
48674 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48675 +
48676 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48677 + sizeof(*status), 0);
48678 if (ret < 0) {
48679 err("cinergyt2_fe_read_signal_strength() Failed!"
48680 " (Error=%d)\n", ret);
48681 - return ret;
48682 + goto out;
48683 }
48684 - *strength = (0xffff - le16_to_cpu(status.gain));
48685 + *strength = (0xffff - le16_to_cpu(status->gain));
48686 +
48687 +out:
48688 + kfree(cmd);
48689 + kfree(status);
48690 return 0;
48691 }
48692
48693 static int cinergyt2_fe_read_snr(struct dvb_frontend *fe, u16 *snr)
48694 {
48695 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48696 - struct dvbt_get_status_msg status;
48697 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48698 + struct dvbt_get_status_msg *status;
48699 + char *cmd;
48700 int ret;
48701
48702 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48703 - sizeof(status), 0);
48704 + cmd = kmalloc(1, GFP_KERNEL);
48705 + if (cmd == NULL)
48706 + return -ENOMEM;
48707 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48708 + if (status == NULL) {
48709 + kfree(cmd);
48710 + return -ENOMEM;
48711 + }
48712 +
48713 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48714 +
48715 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48716 + sizeof(*status), 0);
48717 if (ret < 0) {
48718 err("cinergyt2_fe_read_snr() Failed! (Error=%d)\n", ret);
48719 - return ret;
48720 + goto out;
48721 }
48722 - *snr = (status.snr << 8) | status.snr;
48723 - return 0;
48724 + *snr = (status->snr << 8) | status->snr;
48725 +
48726 +out:
48727 + kfree(cmd);
48728 + kfree(status);
48729 + return ret;
48730 }
48731
48732 static int cinergyt2_fe_init(struct dvb_frontend *fe)
48733 @@ -266,35 +339,46 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
48734 {
48735 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
48736 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48737 - struct dvbt_set_parameters_msg param;
48738 - char result[2];
48739 + struct dvbt_set_parameters_msg *param;
48740 + char *result;
48741 int err;
48742
48743 - param.cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
48744 - param.tps = cpu_to_le16(compute_tps(fep));
48745 - param.freq = cpu_to_le32(fep->frequency / 1000);
48746 - param.flags = 0;
48747 + result = kmalloc(2, GFP_KERNEL);
48748 + if (result == NULL)
48749 + return -ENOMEM;
48750 + param = kmalloc(sizeof(*param), GFP_KERNEL);
48751 + if (param == NULL) {
48752 + kfree(result);
48753 + return -ENOMEM;
48754 + }
48755 +
48756 + param->cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
48757 + param->tps = cpu_to_le16(compute_tps(fep));
48758 + param->freq = cpu_to_le32(fep->frequency / 1000);
48759 + param->flags = 0;
48760
48761 switch (fep->bandwidth_hz) {
48762 default:
48763 case 8000000:
48764 - param.bandwidth = 8;
48765 + param->bandwidth = 8;
48766 break;
48767 case 7000000:
48768 - param.bandwidth = 7;
48769 + param->bandwidth = 7;
48770 break;
48771 case 6000000:
48772 - param.bandwidth = 6;
48773 + param->bandwidth = 6;
48774 break;
48775 }
48776
48777 err = dvb_usb_generic_rw(state->d,
48778 - (char *)&param, sizeof(param),
48779 - result, sizeof(result), 0);
48780 + (char *)param, sizeof(*param),
48781 + result, 2, 0);
48782 if (err < 0)
48783 err("cinergyt2_fe_set_frontend() Failed! err=%d\n", err);
48784
48785 - return (err < 0) ? err : 0;
48786 + kfree(result);
48787 + kfree(param);
48788 + return err;
48789 }
48790
48791 static void cinergyt2_fe_release(struct dvb_frontend *fe)
48792 diff --git a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48793 index 733a7ff..f8b52e3 100644
48794 --- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48795 +++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48796 @@ -35,42 +35,57 @@ static int usb_cypress_writemem(struct usb_device *udev,u16 addr,u8 *data, u8 le
48797
48798 int usb_cypress_load_firmware(struct usb_device *udev, const struct firmware *fw, int type)
48799 {
48800 - struct hexline hx;
48801 - u8 reset;
48802 + struct hexline *hx;
48803 + u8 *reset;
48804 int ret,pos=0;
48805
48806 + reset = kmalloc(1, GFP_KERNEL);
48807 + if (reset == NULL)
48808 + return -ENOMEM;
48809 +
48810 + hx = kmalloc(sizeof(struct hexline), GFP_KERNEL);
48811 + if (hx == NULL) {
48812 + kfree(reset);
48813 + return -ENOMEM;
48814 + }
48815 +
48816 /* stop the CPU */
48817 - reset = 1;
48818 - if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1)) != 1)
48819 + reset[0] = 1;
48820 + if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1)) != 1)
48821 err("could not stop the USB controller CPU.");
48822
48823 - while ((ret = dvb_usb_get_hexline(fw,&hx,&pos)) > 0) {
48824 - deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx.addr,hx.len,hx.chk);
48825 - ret = usb_cypress_writemem(udev,hx.addr,hx.data,hx.len);
48826 + while ((ret = dvb_usb_get_hexline(fw,hx,&pos)) > 0) {
48827 + deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx->addr,hx->len,hx->chk);
48828 + ret = usb_cypress_writemem(udev,hx->addr,hx->data,hx->len);
48829
48830 - if (ret != hx.len) {
48831 + if (ret != hx->len) {
48832 err("error while transferring firmware "
48833 "(transferred size: %d, block size: %d)",
48834 - ret,hx.len);
48835 + ret,hx->len);
48836 ret = -EINVAL;
48837 break;
48838 }
48839 }
48840 if (ret < 0) {
48841 err("firmware download failed at %d with %d",pos,ret);
48842 + kfree(reset);
48843 + kfree(hx);
48844 return ret;
48845 }
48846
48847 if (ret == 0) {
48848 /* restart the CPU */
48849 - reset = 0;
48850 - if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1) != 1) {
48851 + reset[0] = 0;
48852 + if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1) != 1) {
48853 err("could not restart the USB controller CPU.");
48854 ret = -EINVAL;
48855 }
48856 } else
48857 ret = -EIO;
48858
48859 + kfree(reset);
48860 + kfree(hx);
48861 +
48862 return ret;
48863 }
48864 EXPORT_SYMBOL(usb_cypress_load_firmware);
48865 diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
48866 index 6c3c477..6c435a4 100644
48867 --- a/drivers/media/usb/dvb-usb/technisat-usb2.c
48868 +++ b/drivers/media/usb/dvb-usb/technisat-usb2.c
48869 @@ -87,8 +87,11 @@ struct technisat_usb2_state {
48870 static int technisat_usb2_i2c_access(struct usb_device *udev,
48871 u8 device_addr, u8 *tx, u8 txlen, u8 *rx, u8 rxlen)
48872 {
48873 - u8 b[64];
48874 - int ret, actual_length;
48875 + u8 *b = kmalloc(64, GFP_KERNEL);
48876 + int ret, actual_length, error = 0;
48877 +
48878 + if (b == NULL)
48879 + return -ENOMEM;
48880
48881 deb_i2c("i2c-access: %02x, tx: ", device_addr);
48882 debug_dump(tx, txlen, deb_i2c);
48883 @@ -121,7 +124,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48884
48885 if (ret < 0) {
48886 err("i2c-error: out failed %02x = %d", device_addr, ret);
48887 - return -ENODEV;
48888 + error = -ENODEV;
48889 + goto out;
48890 }
48891
48892 ret = usb_bulk_msg(udev,
48893 @@ -129,7 +133,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48894 b, 64, &actual_length, 1000);
48895 if (ret < 0) {
48896 err("i2c-error: in failed %02x = %d", device_addr, ret);
48897 - return -ENODEV;
48898 + error = -ENODEV;
48899 + goto out;
48900 }
48901
48902 if (b[0] != I2C_STATUS_OK) {
48903 @@ -137,8 +142,10 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48904 /* handle tuner-i2c-nak */
48905 if (!(b[0] == I2C_STATUS_NAK &&
48906 device_addr == 0x60
48907 - /* && device_is_technisat_usb2 */))
48908 - return -ENODEV;
48909 + /* && device_is_technisat_usb2 */)) {
48910 + error = -ENODEV;
48911 + goto out;
48912 + }
48913 }
48914
48915 deb_i2c("status: %d, ", b[0]);
48916 @@ -152,7 +159,9 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48917
48918 deb_i2c("\n");
48919
48920 - return 0;
48921 +out:
48922 + kfree(b);
48923 + return error;
48924 }
48925
48926 static int technisat_usb2_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
48927 @@ -224,14 +233,16 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
48928 {
48929 int ret;
48930
48931 - u8 led[8] = {
48932 - red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
48933 - 0
48934 - };
48935 + u8 *led = kzalloc(8, GFP_KERNEL);
48936 +
48937 + if (led == NULL)
48938 + return -ENOMEM;
48939
48940 if (disable_led_control && state != TECH_LED_OFF)
48941 return 0;
48942
48943 + led[0] = red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST;
48944 +
48945 switch (state) {
48946 case TECH_LED_ON:
48947 led[1] = 0x82;
48948 @@ -263,16 +274,22 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
48949 red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
48950 USB_TYPE_VENDOR | USB_DIR_OUT,
48951 0, 0,
48952 - led, sizeof(led), 500);
48953 + led, 8, 500);
48954
48955 mutex_unlock(&d->i2c_mutex);
48956 +
48957 + kfree(led);
48958 +
48959 return ret;
48960 }
48961
48962 static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 green)
48963 {
48964 int ret;
48965 - u8 b = 0;
48966 + u8 *b = kzalloc(1, GFP_KERNEL);
48967 +
48968 + if (b == NULL)
48969 + return -ENOMEM;
48970
48971 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
48972 return -EAGAIN;
48973 @@ -281,10 +298,12 @@ static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 gre
48974 SET_LED_TIMER_DIVIDER_VENDOR_REQUEST,
48975 USB_TYPE_VENDOR | USB_DIR_OUT,
48976 (red << 8) | green, 0,
48977 - &b, 1, 500);
48978 + b, 1, 500);
48979
48980 mutex_unlock(&d->i2c_mutex);
48981
48982 + kfree(b);
48983 +
48984 return ret;
48985 }
48986
48987 @@ -328,7 +347,7 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
48988 struct dvb_usb_device_description **desc, int *cold)
48989 {
48990 int ret;
48991 - u8 version[3];
48992 + u8 *version = kmalloc(3, GFP_KERNEL);
48993
48994 /* first select the interface */
48995 if (usb_set_interface(udev, 0, 1) != 0)
48996 @@ -338,11 +357,14 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
48997
48998 *cold = 0; /* by default do not download a firmware - just in case something is wrong */
48999
49000 + if (version == NULL)
49001 + return 0;
49002 +
49003 ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
49004 GET_VERSION_INFO_VENDOR_REQUEST,
49005 USB_TYPE_VENDOR | USB_DIR_IN,
49006 0, 0,
49007 - version, sizeof(version), 500);
49008 + version, 3, 500);
49009
49010 if (ret < 0)
49011 *cold = 1;
49012 @@ -351,6 +373,8 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
49013 *cold = 0;
49014 }
49015
49016 + kfree(version);
49017 +
49018 return 0;
49019 }
49020
49021 @@ -594,10 +618,15 @@ static int technisat_usb2_frontend_attach(struct dvb_usb_adapter *a)
49022
49023 static int technisat_usb2_get_ir(struct dvb_usb_device *d)
49024 {
49025 - u8 buf[62], *b;
49026 + u8 *buf, *b;
49027 int ret;
49028 struct ir_raw_event ev;
49029
49030 + buf = kmalloc(62, GFP_KERNEL);
49031 +
49032 + if (buf == NULL)
49033 + return -ENOMEM;
49034 +
49035 buf[0] = GET_IR_DATA_VENDOR_REQUEST;
49036 buf[1] = 0x08;
49037 buf[2] = 0x8f;
49038 @@ -620,16 +649,20 @@ static int technisat_usb2_get_ir(struct dvb_usb_device *d)
49039 GET_IR_DATA_VENDOR_REQUEST,
49040 USB_TYPE_VENDOR | USB_DIR_IN,
49041 0x8080, 0,
49042 - buf, sizeof(buf), 500);
49043 + buf, 62, 500);
49044
49045 unlock:
49046 mutex_unlock(&d->i2c_mutex);
49047
49048 - if (ret < 0)
49049 + if (ret < 0) {
49050 + kfree(buf);
49051 return ret;
49052 + }
49053
49054 - if (ret == 1)
49055 + if (ret == 1) {
49056 + kfree(buf);
49057 return 0; /* no key pressed */
49058 + }
49059
49060 /* decoding */
49061 b = buf+1;
49062 @@ -656,6 +689,8 @@ unlock:
49063
49064 ir_raw_event_handle(d->rc_dev);
49065
49066 + kfree(buf);
49067 +
49068 return 1;
49069 }
49070
49071 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49072 index af63543..0436f20 100644
49073 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49074 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49075 @@ -429,7 +429,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49076 * by passing a very big num_planes value */
49077 uplane = compat_alloc_user_space(num_planes *
49078 sizeof(struct v4l2_plane));
49079 - kp->m.planes = (__force struct v4l2_plane *)uplane;
49080 + kp->m.planes = (__force_kernel struct v4l2_plane *)uplane;
49081
49082 while (--num_planes >= 0) {
49083 ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
49084 @@ -500,7 +500,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49085 if (num_planes == 0)
49086 return 0;
49087
49088 - uplane = (__force struct v4l2_plane __user *)kp->m.planes;
49089 + uplane = (struct v4l2_plane __force_user *)kp->m.planes;
49090 if (get_user(p, &up->m.planes))
49091 return -EFAULT;
49092 uplane32 = compat_ptr(p);
49093 @@ -564,7 +564,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
49094 get_user(kp->flags, &up->flags) ||
49095 copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt)))
49096 return -EFAULT;
49097 - kp->base = (__force void *)compat_ptr(tmp);
49098 + kp->base = (__force_kernel void *)compat_ptr(tmp);
49099 return 0;
49100 }
49101
49102 @@ -669,7 +669,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49103 n * sizeof(struct v4l2_ext_control32)))
49104 return -EFAULT;
49105 kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
49106 - kp->controls = (__force struct v4l2_ext_control *)kcontrols;
49107 + kp->controls = (__force_kernel struct v4l2_ext_control *)kcontrols;
49108 while (--n >= 0) {
49109 u32 id;
49110
49111 @@ -696,7 +696,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49112 {
49113 struct v4l2_ext_control32 __user *ucontrols;
49114 struct v4l2_ext_control __user *kcontrols =
49115 - (__force struct v4l2_ext_control __user *)kp->controls;
49116 + (struct v4l2_ext_control __force_user *)kp->controls;
49117 int n = kp->count;
49118 compat_caddr_t p;
49119
49120 @@ -780,7 +780,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up)
49121 get_user(tmp, &up->edid) ||
49122 copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved)))
49123 return -EFAULT;
49124 - kp->edid = (__force u8 *)compat_ptr(tmp);
49125 + kp->edid = (__force_kernel u8 *)compat_ptr(tmp);
49126 return 0;
49127 }
49128
49129 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
49130 index 5b0a30b..1974b38 100644
49131 --- a/drivers/media/v4l2-core/v4l2-device.c
49132 +++ b/drivers/media/v4l2-core/v4l2-device.c
49133 @@ -74,9 +74,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
49134 EXPORT_SYMBOL_GPL(v4l2_device_put);
49135
49136 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
49137 - atomic_t *instance)
49138 + atomic_unchecked_t *instance)
49139 {
49140 - int num = atomic_inc_return(instance) - 1;
49141 + int num = atomic_inc_return_unchecked(instance) - 1;
49142 int len = strlen(basename);
49143
49144 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
49145 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
49146 index 4a384fc..4b562e4 100644
49147 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
49148 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
49149 @@ -2341,7 +2341,8 @@ struct v4l2_ioctl_info {
49150 struct file *file, void *fh, void *p);
49151 } u;
49152 void (*debug)(const void *arg, bool write_only);
49153 -};
49154 +} __do_const;
49155 +typedef struct v4l2_ioctl_info __no_const v4l2_ioctl_info_no_const;
49156
49157 /* This control needs a priority check */
49158 #define INFO_FL_PRIO (1 << 0)
49159 @@ -2525,7 +2526,7 @@ static long __video_do_ioctl(struct file *file,
49160 struct video_device *vfd = video_devdata(file);
49161 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops;
49162 bool write_only = false;
49163 - struct v4l2_ioctl_info default_info;
49164 + v4l2_ioctl_info_no_const default_info;
49165 const struct v4l2_ioctl_info *info;
49166 void *fh = file->private_data;
49167 struct v4l2_fh *vfh = NULL;
49168 @@ -2616,7 +2617,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49169 ret = -EINVAL;
49170 break;
49171 }
49172 - *user_ptr = (void __user *)buf->m.planes;
49173 + *user_ptr = (void __force_user *)buf->m.planes;
49174 *kernel_ptr = (void **)&buf->m.planes;
49175 *array_size = sizeof(struct v4l2_plane) * buf->length;
49176 ret = 1;
49177 @@ -2633,7 +2634,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49178 ret = -EINVAL;
49179 break;
49180 }
49181 - *user_ptr = (void __user *)edid->edid;
49182 + *user_ptr = (void __force_user *)edid->edid;
49183 *kernel_ptr = (void **)&edid->edid;
49184 *array_size = edid->blocks * 128;
49185 ret = 1;
49186 @@ -2651,7 +2652,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49187 ret = -EINVAL;
49188 break;
49189 }
49190 - *user_ptr = (void __user *)ctrls->controls;
49191 + *user_ptr = (void __force_user *)ctrls->controls;
49192 *kernel_ptr = (void **)&ctrls->controls;
49193 *array_size = sizeof(struct v4l2_ext_control)
49194 * ctrls->count;
49195 @@ -2752,7 +2753,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
49196 }
49197
49198 if (has_array_args) {
49199 - *kernel_ptr = (void __force *)user_ptr;
49200 + *kernel_ptr = (void __force_kernel *)user_ptr;
49201 if (copy_to_user(user_ptr, mbuf, array_size))
49202 err = -EFAULT;
49203 goto out_array_args;
49204 diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
49205 index 6515dfc..3d39b80 100644
49206 --- a/drivers/memory/omap-gpmc.c
49207 +++ b/drivers/memory/omap-gpmc.c
49208 @@ -232,7 +232,6 @@ struct omap3_gpmc_regs {
49209 };
49210
49211 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
49212 -static struct irq_chip gpmc_irq_chip;
49213 static int gpmc_irq_start;
49214
49215 static struct resource gpmc_mem_root;
49216 @@ -1145,6 +1144,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
49217
49218 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
49219
49220 +static struct irq_chip gpmc_irq_chip = {
49221 + .name = "gpmc",
49222 + .irq_startup = gpmc_irq_noop_ret,
49223 + .irq_enable = gpmc_irq_enable,
49224 + .irq_disable = gpmc_irq_disable,
49225 + .irq_shutdown = gpmc_irq_noop,
49226 + .irq_ack = gpmc_irq_noop,
49227 + .irq_mask = gpmc_irq_noop,
49228 + .irq_unmask = gpmc_irq_noop,
49229 +};
49230 +
49231 static int gpmc_setup_irq(void)
49232 {
49233 int i;
49234 @@ -1159,15 +1169,6 @@ static int gpmc_setup_irq(void)
49235 return gpmc_irq_start;
49236 }
49237
49238 - gpmc_irq_chip.name = "gpmc";
49239 - gpmc_irq_chip.irq_startup = gpmc_irq_noop_ret;
49240 - gpmc_irq_chip.irq_enable = gpmc_irq_enable;
49241 - gpmc_irq_chip.irq_disable = gpmc_irq_disable;
49242 - gpmc_irq_chip.irq_shutdown = gpmc_irq_noop;
49243 - gpmc_irq_chip.irq_ack = gpmc_irq_noop;
49244 - gpmc_irq_chip.irq_mask = gpmc_irq_noop;
49245 - gpmc_irq_chip.irq_unmask = gpmc_irq_noop;
49246 -
49247 gpmc_client_irq[0].bitmask = GPMC_IRQ_FIFOEVENTENABLE;
49248 gpmc_client_irq[1].bitmask = GPMC_IRQ_COUNT_EVENT;
49249
49250 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
49251 index 5dcc031..e08ecd2 100644
49252 --- a/drivers/message/fusion/mptbase.c
49253 +++ b/drivers/message/fusion/mptbase.c
49254 @@ -6722,8 +6722,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49255 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
49256 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
49257
49258 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49259 + seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n", NULL, NULL);
49260 +#else
49261 seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n",
49262 (void *)ioc->req_frames, (void *)(ulong)ioc->req_frames_dma);
49263 +#endif
49264 +
49265 /*
49266 * Rounding UP to nearest 4-kB boundary here...
49267 */
49268 @@ -6736,7 +6741,11 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49269 ioc->facts.GlobalCredits);
49270
49271 seq_printf(m, " Frames @ 0x%p (Dma @ 0x%p)\n",
49272 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49273 + NULL, NULL);
49274 +#else
49275 (void *)ioc->alloc, (void *)(ulong)ioc->alloc_dma);
49276 +#endif
49277 sz = (ioc->reply_sz * ioc->reply_depth) + 128;
49278 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n",
49279 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
49280 diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
49281 index 005a88b..5a90fbb 100644
49282 --- a/drivers/message/fusion/mptsas.c
49283 +++ b/drivers/message/fusion/mptsas.c
49284 @@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
49285 return 0;
49286 }
49287
49288 +static inline void
49289 +mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49290 +{
49291 + if (phy_info->port_details) {
49292 + phy_info->port_details->rphy = rphy;
49293 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49294 + ioc->name, rphy));
49295 + }
49296 +
49297 + if (rphy) {
49298 + dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49299 + &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49300 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49301 + ioc->name, rphy, rphy->dev.release));
49302 + }
49303 +}
49304 +
49305 /* no mutex */
49306 static void
49307 mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
49308 @@ -484,23 +501,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
49309 return NULL;
49310 }
49311
49312 -static inline void
49313 -mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49314 -{
49315 - if (phy_info->port_details) {
49316 - phy_info->port_details->rphy = rphy;
49317 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49318 - ioc->name, rphy));
49319 - }
49320 -
49321 - if (rphy) {
49322 - dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49323 - &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49324 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49325 - ioc->name, rphy, rphy->dev.release));
49326 - }
49327 -}
49328 -
49329 static inline struct sas_port *
49330 mptsas_get_port(struct mptsas_phyinfo *phy_info)
49331 {
49332 diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
49333 index 0236cd7..53b10d7 100644
49334 --- a/drivers/mfd/ab8500-debugfs.c
49335 +++ b/drivers/mfd/ab8500-debugfs.c
49336 @@ -100,7 +100,7 @@ static int irq_last;
49337 static u32 *irq_count;
49338 static int num_irqs;
49339
49340 -static struct device_attribute **dev_attr;
49341 +static device_attribute_no_const **dev_attr;
49342 static char **event_name;
49343
49344 static u8 avg_sample = SAMPLE_16;
49345 diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
49346 index 463f4ea..1624d49 100644
49347 --- a/drivers/mfd/kempld-core.c
49348 +++ b/drivers/mfd/kempld-core.c
49349 @@ -499,7 +499,7 @@ static struct platform_driver kempld_driver = {
49350 .remove = kempld_remove,
49351 };
49352
49353 -static struct dmi_system_id kempld_dmi_table[] __initdata = {
49354 +static const struct dmi_system_id kempld_dmi_table[] __initconst = {
49355 {
49356 .ident = "BBL6",
49357 .matches = {
49358 diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
49359 index b0fe810..eee08c4 100644
49360 --- a/drivers/mfd/max8925-i2c.c
49361 +++ b/drivers/mfd/max8925-i2c.c
49362 @@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
49363 const struct i2c_device_id *id)
49364 {
49365 struct max8925_platform_data *pdata = dev_get_platdata(&client->dev);
49366 - static struct max8925_chip *chip;
49367 + struct max8925_chip *chip;
49368 struct device_node *node = client->dev.of_node;
49369
49370 if (node && !pdata) {
49371 diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
49372 index f7ab115..16b2087 100644
49373 --- a/drivers/mfd/tps65910.c
49374 +++ b/drivers/mfd/tps65910.c
49375 @@ -230,7 +230,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
49376 struct tps65910_platform_data *pdata)
49377 {
49378 int ret = 0;
49379 - static struct regmap_irq_chip *tps6591x_irqs_chip;
49380 + struct regmap_irq_chip *tps6591x_irqs_chip;
49381
49382 if (!irq) {
49383 dev_warn(tps65910->dev, "No interrupt support, no core IRQ\n");
49384 diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
49385 index 40e51b0..b986312 100644
49386 --- a/drivers/mfd/twl4030-irq.c
49387 +++ b/drivers/mfd/twl4030-irq.c
49388 @@ -34,6 +34,7 @@
49389 #include <linux/of.h>
49390 #include <linux/irqdomain.h>
49391 #include <linux/i2c/twl.h>
49392 +#include <asm/pgtable.h>
49393
49394 #include "twl-core.h"
49395
49396 @@ -720,10 +721,12 @@ int twl4030_init_irq(struct device *dev, int irq_num)
49397 * Install an irq handler for each of the SIH modules;
49398 * clone dummy irq_chip since PIH can't *do* anything
49399 */
49400 - twl4030_irq_chip = dummy_irq_chip;
49401 - twl4030_irq_chip.name = "twl4030";
49402 + pax_open_kernel();
49403 + memcpy((void *)&twl4030_irq_chip, &dummy_irq_chip, sizeof twl4030_irq_chip);
49404 + *(const char **)&twl4030_irq_chip.name = "twl4030";
49405
49406 - twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49407 + *(void **)&twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49408 + pax_close_kernel();
49409
49410 for (i = irq_base; i < irq_end; i++) {
49411 irq_set_chip_and_handler(i, &twl4030_irq_chip,
49412 diff --git a/drivers/mfd/wm5110-tables.c b/drivers/mfd/wm5110-tables.c
49413 index c4b9374..9afdda4 100644
49414 --- a/drivers/mfd/wm5110-tables.c
49415 +++ b/drivers/mfd/wm5110-tables.c
49416 @@ -250,7 +250,7 @@ static const struct reg_sequence wm5110_revd_patch[] = {
49417 };
49418
49419 /* Add extra headphone write sequence locations */
49420 -static const struct reg_default wm5110_reve_patch[] = {
49421 +static const struct reg_sequence wm5110_reve_patch[] = {
49422 { 0x80, 0x3 },
49423 { 0x80, 0x3 },
49424 { 0x4b, 0x138 },
49425 diff --git a/drivers/mfd/wm8998-tables.c b/drivers/mfd/wm8998-tables.c
49426 index e6de3cd..607640c 100644
49427 --- a/drivers/mfd/wm8998-tables.c
49428 +++ b/drivers/mfd/wm8998-tables.c
49429 @@ -21,7 +21,7 @@
49430 #define WM8998_NUM_AOD_ISR 2
49431 #define WM8998_NUM_ISR 5
49432
49433 -static const struct reg_default wm8998_rev_a_patch[] = {
49434 +static const struct reg_sequence wm8998_rev_a_patch[] = {
49435 { 0x0212, 0x0000 },
49436 { 0x0211, 0x0014 },
49437 { 0x04E4, 0x0E0D },
49438 diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
49439 index 464419b..64bae8d 100644
49440 --- a/drivers/misc/c2port/core.c
49441 +++ b/drivers/misc/c2port/core.c
49442 @@ -922,7 +922,9 @@ struct c2port_device *c2port_device_register(char *name,
49443 goto error_idr_alloc;
49444 c2dev->id = ret;
49445
49446 - bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49447 + pax_open_kernel();
49448 + *(size_t *)&bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49449 + pax_close_kernel();
49450
49451 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
49452 "c2port%d", c2dev->id);
49453 diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
49454 index 9a60bd4..cee2069 100644
49455 --- a/drivers/misc/kgdbts.c
49456 +++ b/drivers/misc/kgdbts.c
49457 @@ -834,7 +834,7 @@ static void run_plant_and_detach_test(int is_early)
49458 char before[BREAK_INSTR_SIZE];
49459 char after[BREAK_INSTR_SIZE];
49460
49461 - probe_kernel_read(before, (char *)kgdbts_break_test,
49462 + probe_kernel_read(before, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49463 BREAK_INSTR_SIZE);
49464 init_simple_test();
49465 ts.tst = plant_and_detach_test;
49466 @@ -842,7 +842,7 @@ static void run_plant_and_detach_test(int is_early)
49467 /* Activate test with initial breakpoint */
49468 if (!is_early)
49469 kgdb_breakpoint();
49470 - probe_kernel_read(after, (char *)kgdbts_break_test,
49471 + probe_kernel_read(after, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49472 BREAK_INSTR_SIZE);
49473 if (memcmp(before, after, BREAK_INSTR_SIZE)) {
49474 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
49475 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
49476 index fb8705f..dc2f679 100644
49477 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
49478 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
49479 @@ -497,7 +497,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
49480 * the lid is closed. This leads to interrupts as soon as a little move
49481 * is done.
49482 */
49483 - atomic_inc(&lis3->count);
49484 + atomic_inc_unchecked(&lis3->count);
49485
49486 wake_up_interruptible(&lis3->misc_wait);
49487 kill_fasync(&lis3->async_queue, SIGIO, POLL_IN);
49488 @@ -583,7 +583,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
49489 if (lis3->pm_dev)
49490 pm_runtime_get_sync(lis3->pm_dev);
49491
49492 - atomic_set(&lis3->count, 0);
49493 + atomic_set_unchecked(&lis3->count, 0);
49494 return 0;
49495 }
49496
49497 @@ -615,7 +615,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
49498 add_wait_queue(&lis3->misc_wait, &wait);
49499 while (true) {
49500 set_current_state(TASK_INTERRUPTIBLE);
49501 - data = atomic_xchg(&lis3->count, 0);
49502 + data = atomic_xchg_unchecked(&lis3->count, 0);
49503 if (data)
49504 break;
49505
49506 @@ -656,7 +656,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
49507 struct lis3lv02d, miscdev);
49508
49509 poll_wait(file, &lis3->misc_wait, wait);
49510 - if (atomic_read(&lis3->count))
49511 + if (atomic_read_unchecked(&lis3->count))
49512 return POLLIN | POLLRDNORM;
49513 return 0;
49514 }
49515 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
49516 index c439c82..1f20f57 100644
49517 --- a/drivers/misc/lis3lv02d/lis3lv02d.h
49518 +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
49519 @@ -297,7 +297,7 @@ struct lis3lv02d {
49520 struct input_polled_dev *idev; /* input device */
49521 struct platform_device *pdev; /* platform device */
49522 struct regulator_bulk_data regulators[2];
49523 - atomic_t count; /* interrupt count after last read */
49524 + atomic_unchecked_t count; /* interrupt count after last read */
49525 union axis_conversion ac; /* hw -> logical axis */
49526 int mapped_btns[3];
49527
49528 diff --git a/drivers/misc/mic/scif/scif_rb.c b/drivers/misc/mic/scif/scif_rb.c
49529 index 637cc46..4fb1267 100644
49530 --- a/drivers/misc/mic/scif/scif_rb.c
49531 +++ b/drivers/misc/mic/scif/scif_rb.c
49532 @@ -138,7 +138,7 @@ void scif_rb_commit(struct scif_rb *rb)
49533 * the read barrier in scif_rb_count(..)
49534 */
49535 wmb();
49536 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49537 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49538 #ifdef CONFIG_INTEL_MIC_CARD
49539 /*
49540 * X100 Si bug: For the case where a Core is performing an EXT_WR
49541 @@ -147,7 +147,7 @@ void scif_rb_commit(struct scif_rb *rb)
49542 * This way, if ordering is violated for the Interrupt Message, it will
49543 * fall just behind the first Posted associated with the first EXT_WR.
49544 */
49545 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49546 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49547 #endif
49548 }
49549
49550 @@ -210,7 +210,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49551 * scif_rb_space(..)
49552 */
49553 mb();
49554 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49555 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49556 #ifdef CONFIG_INTEL_MIC_CARD
49557 /*
49558 * X100 Si Bug: For the case where a Core is performing an EXT_WR
49559 @@ -219,7 +219,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49560 * This way, if ordering is violated for the Interrupt Message, it will
49561 * fall just behind the first Posted associated with the first EXT_WR.
49562 */
49563 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49564 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49565 #endif
49566 }
49567
49568 diff --git a/drivers/misc/sgi-gru/gruhandles.c b/drivers/misc/sgi-gru/gruhandles.c
49569 index 2f30bad..c4c13d0 100644
49570 --- a/drivers/misc/sgi-gru/gruhandles.c
49571 +++ b/drivers/misc/sgi-gru/gruhandles.c
49572 @@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op op, unsigned long clks)
49573 unsigned long nsec;
49574
49575 nsec = CLKS2NSEC(clks);
49576 - atomic_long_inc(&mcs_op_statistics[op].count);
49577 - atomic_long_add(nsec, &mcs_op_statistics[op].total);
49578 + atomic_long_inc_unchecked(&mcs_op_statistics[op].count);
49579 + atomic_long_add_unchecked(nsec, &mcs_op_statistics[op].total);
49580 if (mcs_op_statistics[op].max < nsec)
49581 mcs_op_statistics[op].max = nsec;
49582 }
49583 diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
49584 index 4f76359..cdfcb2e 100644
49585 --- a/drivers/misc/sgi-gru/gruprocfs.c
49586 +++ b/drivers/misc/sgi-gru/gruprocfs.c
49587 @@ -32,9 +32,9 @@
49588
49589 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
49590
49591 -static void printstat_val(struct seq_file *s, atomic_long_t *v, char *id)
49592 +static void printstat_val(struct seq_file *s, atomic_long_unchecked_t *v, char *id)
49593 {
49594 - unsigned long val = atomic_long_read(v);
49595 + unsigned long val = atomic_long_read_unchecked(v);
49596
49597 seq_printf(s, "%16lu %s\n", val, id);
49598 }
49599 @@ -134,8 +134,8 @@ static int mcs_statistics_show(struct seq_file *s, void *p)
49600
49601 seq_printf(s, "%-20s%12s%12s%12s\n", "#id", "count", "aver-clks", "max-clks");
49602 for (op = 0; op < mcsop_last; op++) {
49603 - count = atomic_long_read(&mcs_op_statistics[op].count);
49604 - total = atomic_long_read(&mcs_op_statistics[op].total);
49605 + count = atomic_long_read_unchecked(&mcs_op_statistics[op].count);
49606 + total = atomic_long_read_unchecked(&mcs_op_statistics[op].total);
49607 max = mcs_op_statistics[op].max;
49608 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
49609 count ? total / count : 0, max);
49610 diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h
49611 index 5c3ce24..4915ccb 100644
49612 --- a/drivers/misc/sgi-gru/grutables.h
49613 +++ b/drivers/misc/sgi-gru/grutables.h
49614 @@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
49615 * GRU statistics.
49616 */
49617 struct gru_stats_s {
49618 - atomic_long_t vdata_alloc;
49619 - atomic_long_t vdata_free;
49620 - atomic_long_t gts_alloc;
49621 - atomic_long_t gts_free;
49622 - atomic_long_t gms_alloc;
49623 - atomic_long_t gms_free;
49624 - atomic_long_t gts_double_allocate;
49625 - atomic_long_t assign_context;
49626 - atomic_long_t assign_context_failed;
49627 - atomic_long_t free_context;
49628 - atomic_long_t load_user_context;
49629 - atomic_long_t load_kernel_context;
49630 - atomic_long_t lock_kernel_context;
49631 - atomic_long_t unlock_kernel_context;
49632 - atomic_long_t steal_user_context;
49633 - atomic_long_t steal_kernel_context;
49634 - atomic_long_t steal_context_failed;
49635 - atomic_long_t nopfn;
49636 - atomic_long_t asid_new;
49637 - atomic_long_t asid_next;
49638 - atomic_long_t asid_wrap;
49639 - atomic_long_t asid_reuse;
49640 - atomic_long_t intr;
49641 - atomic_long_t intr_cbr;
49642 - atomic_long_t intr_tfh;
49643 - atomic_long_t intr_spurious;
49644 - atomic_long_t intr_mm_lock_failed;
49645 - atomic_long_t call_os;
49646 - atomic_long_t call_os_wait_queue;
49647 - atomic_long_t user_flush_tlb;
49648 - atomic_long_t user_unload_context;
49649 - atomic_long_t user_exception;
49650 - atomic_long_t set_context_option;
49651 - atomic_long_t check_context_retarget_intr;
49652 - atomic_long_t check_context_unload;
49653 - atomic_long_t tlb_dropin;
49654 - atomic_long_t tlb_preload_page;
49655 - atomic_long_t tlb_dropin_fail_no_asid;
49656 - atomic_long_t tlb_dropin_fail_upm;
49657 - atomic_long_t tlb_dropin_fail_invalid;
49658 - atomic_long_t tlb_dropin_fail_range_active;
49659 - atomic_long_t tlb_dropin_fail_idle;
49660 - atomic_long_t tlb_dropin_fail_fmm;
49661 - atomic_long_t tlb_dropin_fail_no_exception;
49662 - atomic_long_t tfh_stale_on_fault;
49663 - atomic_long_t mmu_invalidate_range;
49664 - atomic_long_t mmu_invalidate_page;
49665 - atomic_long_t flush_tlb;
49666 - atomic_long_t flush_tlb_gru;
49667 - atomic_long_t flush_tlb_gru_tgh;
49668 - atomic_long_t flush_tlb_gru_zero_asid;
49669 + atomic_long_unchecked_t vdata_alloc;
49670 + atomic_long_unchecked_t vdata_free;
49671 + atomic_long_unchecked_t gts_alloc;
49672 + atomic_long_unchecked_t gts_free;
49673 + atomic_long_unchecked_t gms_alloc;
49674 + atomic_long_unchecked_t gms_free;
49675 + atomic_long_unchecked_t gts_double_allocate;
49676 + atomic_long_unchecked_t assign_context;
49677 + atomic_long_unchecked_t assign_context_failed;
49678 + atomic_long_unchecked_t free_context;
49679 + atomic_long_unchecked_t load_user_context;
49680 + atomic_long_unchecked_t load_kernel_context;
49681 + atomic_long_unchecked_t lock_kernel_context;
49682 + atomic_long_unchecked_t unlock_kernel_context;
49683 + atomic_long_unchecked_t steal_user_context;
49684 + atomic_long_unchecked_t steal_kernel_context;
49685 + atomic_long_unchecked_t steal_context_failed;
49686 + atomic_long_unchecked_t nopfn;
49687 + atomic_long_unchecked_t asid_new;
49688 + atomic_long_unchecked_t asid_next;
49689 + atomic_long_unchecked_t asid_wrap;
49690 + atomic_long_unchecked_t asid_reuse;
49691 + atomic_long_unchecked_t intr;
49692 + atomic_long_unchecked_t intr_cbr;
49693 + atomic_long_unchecked_t intr_tfh;
49694 + atomic_long_unchecked_t intr_spurious;
49695 + atomic_long_unchecked_t intr_mm_lock_failed;
49696 + atomic_long_unchecked_t call_os;
49697 + atomic_long_unchecked_t call_os_wait_queue;
49698 + atomic_long_unchecked_t user_flush_tlb;
49699 + atomic_long_unchecked_t user_unload_context;
49700 + atomic_long_unchecked_t user_exception;
49701 + atomic_long_unchecked_t set_context_option;
49702 + atomic_long_unchecked_t check_context_retarget_intr;
49703 + atomic_long_unchecked_t check_context_unload;
49704 + atomic_long_unchecked_t tlb_dropin;
49705 + atomic_long_unchecked_t tlb_preload_page;
49706 + atomic_long_unchecked_t tlb_dropin_fail_no_asid;
49707 + atomic_long_unchecked_t tlb_dropin_fail_upm;
49708 + atomic_long_unchecked_t tlb_dropin_fail_invalid;
49709 + atomic_long_unchecked_t tlb_dropin_fail_range_active;
49710 + atomic_long_unchecked_t tlb_dropin_fail_idle;
49711 + atomic_long_unchecked_t tlb_dropin_fail_fmm;
49712 + atomic_long_unchecked_t tlb_dropin_fail_no_exception;
49713 + atomic_long_unchecked_t tfh_stale_on_fault;
49714 + atomic_long_unchecked_t mmu_invalidate_range;
49715 + atomic_long_unchecked_t mmu_invalidate_page;
49716 + atomic_long_unchecked_t flush_tlb;
49717 + atomic_long_unchecked_t flush_tlb_gru;
49718 + atomic_long_unchecked_t flush_tlb_gru_tgh;
49719 + atomic_long_unchecked_t flush_tlb_gru_zero_asid;
49720
49721 - atomic_long_t copy_gpa;
49722 - atomic_long_t read_gpa;
49723 + atomic_long_unchecked_t copy_gpa;
49724 + atomic_long_unchecked_t read_gpa;
49725
49726 - atomic_long_t mesq_receive;
49727 - atomic_long_t mesq_receive_none;
49728 - atomic_long_t mesq_send;
49729 - atomic_long_t mesq_send_failed;
49730 - atomic_long_t mesq_noop;
49731 - atomic_long_t mesq_send_unexpected_error;
49732 - atomic_long_t mesq_send_lb_overflow;
49733 - atomic_long_t mesq_send_qlimit_reached;
49734 - atomic_long_t mesq_send_amo_nacked;
49735 - atomic_long_t mesq_send_put_nacked;
49736 - atomic_long_t mesq_page_overflow;
49737 - atomic_long_t mesq_qf_locked;
49738 - atomic_long_t mesq_qf_noop_not_full;
49739 - atomic_long_t mesq_qf_switch_head_failed;
49740 - atomic_long_t mesq_qf_unexpected_error;
49741 - atomic_long_t mesq_noop_unexpected_error;
49742 - atomic_long_t mesq_noop_lb_overflow;
49743 - atomic_long_t mesq_noop_qlimit_reached;
49744 - atomic_long_t mesq_noop_amo_nacked;
49745 - atomic_long_t mesq_noop_put_nacked;
49746 - atomic_long_t mesq_noop_page_overflow;
49747 + atomic_long_unchecked_t mesq_receive;
49748 + atomic_long_unchecked_t mesq_receive_none;
49749 + atomic_long_unchecked_t mesq_send;
49750 + atomic_long_unchecked_t mesq_send_failed;
49751 + atomic_long_unchecked_t mesq_noop;
49752 + atomic_long_unchecked_t mesq_send_unexpected_error;
49753 + atomic_long_unchecked_t mesq_send_lb_overflow;
49754 + atomic_long_unchecked_t mesq_send_qlimit_reached;
49755 + atomic_long_unchecked_t mesq_send_amo_nacked;
49756 + atomic_long_unchecked_t mesq_send_put_nacked;
49757 + atomic_long_unchecked_t mesq_page_overflow;
49758 + atomic_long_unchecked_t mesq_qf_locked;
49759 + atomic_long_unchecked_t mesq_qf_noop_not_full;
49760 + atomic_long_unchecked_t mesq_qf_switch_head_failed;
49761 + atomic_long_unchecked_t mesq_qf_unexpected_error;
49762 + atomic_long_unchecked_t mesq_noop_unexpected_error;
49763 + atomic_long_unchecked_t mesq_noop_lb_overflow;
49764 + atomic_long_unchecked_t mesq_noop_qlimit_reached;
49765 + atomic_long_unchecked_t mesq_noop_amo_nacked;
49766 + atomic_long_unchecked_t mesq_noop_put_nacked;
49767 + atomic_long_unchecked_t mesq_noop_page_overflow;
49768
49769 };
49770
49771 @@ -251,8 +251,8 @@ enum mcs_op {cchop_allocate, cchop_start, cchop_interrupt, cchop_interrupt_sync,
49772 tghop_invalidate, mcsop_last};
49773
49774 struct mcs_op_statistic {
49775 - atomic_long_t count;
49776 - atomic_long_t total;
49777 + atomic_long_unchecked_t count;
49778 + atomic_long_unchecked_t total;
49779 unsigned long max;
49780 };
49781
49782 @@ -275,7 +275,7 @@ extern struct mcs_op_statistic mcs_op_statistics[mcsop_last];
49783
49784 #define STAT(id) do { \
49785 if (gru_options & OPT_STATS) \
49786 - atomic_long_inc(&gru_stats.id); \
49787 + atomic_long_inc_unchecked(&gru_stats.id); \
49788 } while (0)
49789
49790 #ifdef CONFIG_SGI_GRU_DEBUG
49791 diff --git a/drivers/misc/sgi-xp/xp.h b/drivers/misc/sgi-xp/xp.h
49792 index c862cd4..0d176fe 100644
49793 --- a/drivers/misc/sgi-xp/xp.h
49794 +++ b/drivers/misc/sgi-xp/xp.h
49795 @@ -288,7 +288,7 @@ struct xpc_interface {
49796 xpc_notify_func, void *);
49797 void (*received) (short, int, void *);
49798 enum xp_retval (*partid_to_nasids) (short, void *);
49799 -};
49800 +} __no_const;
49801
49802 extern struct xpc_interface xpc_interface;
49803
49804 diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
49805 index 01be66d..e3a0c7e 100644
49806 --- a/drivers/misc/sgi-xp/xp_main.c
49807 +++ b/drivers/misc/sgi-xp/xp_main.c
49808 @@ -78,13 +78,13 @@ xpc_notloaded(void)
49809 }
49810
49811 struct xpc_interface xpc_interface = {
49812 - (void (*)(int))xpc_notloaded,
49813 - (void (*)(int))xpc_notloaded,
49814 - (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
49815 - (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
49816 + .connect = (void (*)(int))xpc_notloaded,
49817 + .disconnect = (void (*)(int))xpc_notloaded,
49818 + .send = (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
49819 + .send_notify = (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
49820 void *))xpc_notloaded,
49821 - (void (*)(short, int, void *))xpc_notloaded,
49822 - (enum xp_retval(*)(short, void *))xpc_notloaded
49823 + .received = (void (*)(short, int, void *))xpc_notloaded,
49824 + .partid_to_nasids = (enum xp_retval(*)(short, void *))xpc_notloaded
49825 };
49826 EXPORT_SYMBOL_GPL(xpc_interface);
49827
49828 diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
49829 index b94d5f7..7f494c5 100644
49830 --- a/drivers/misc/sgi-xp/xpc.h
49831 +++ b/drivers/misc/sgi-xp/xpc.h
49832 @@ -835,6 +835,7 @@ struct xpc_arch_operations {
49833 void (*received_payload) (struct xpc_channel *, void *);
49834 void (*notify_senders_of_disconnect) (struct xpc_channel *);
49835 };
49836 +typedef struct xpc_arch_operations __no_const xpc_arch_operations_no_const;
49837
49838 /* struct xpc_partition act_state values (for XPC HB) */
49839
49840 @@ -876,7 +877,7 @@ extern struct xpc_registration xpc_registrations[];
49841 /* found in xpc_main.c */
49842 extern struct device *xpc_part;
49843 extern struct device *xpc_chan;
49844 -extern struct xpc_arch_operations xpc_arch_ops;
49845 +extern xpc_arch_operations_no_const xpc_arch_ops;
49846 extern int xpc_disengage_timelimit;
49847 extern int xpc_disengage_timedout;
49848 extern int xpc_activate_IRQ_rcvd;
49849 diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
49850 index 7f32712..8539ab2 100644
49851 --- a/drivers/misc/sgi-xp/xpc_main.c
49852 +++ b/drivers/misc/sgi-xp/xpc_main.c
49853 @@ -166,7 +166,7 @@ static struct notifier_block xpc_die_notifier = {
49854 .notifier_call = xpc_system_die,
49855 };
49856
49857 -struct xpc_arch_operations xpc_arch_ops;
49858 +xpc_arch_operations_no_const xpc_arch_ops;
49859
49860 /*
49861 * Timer function to enforce the timelimit on the partition disengage.
49862 diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
49863 index c742cfd..805f5e1 100644
49864 --- a/drivers/mmc/card/block.c
49865 +++ b/drivers/mmc/card/block.c
49866 @@ -582,7 +582,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
49867 if (idata->ic.postsleep_min_us)
49868 usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
49869
49870 - if (copy_to_user(&(ic_ptr->response), cmd.resp, sizeof(cmd.resp))) {
49871 + if (copy_to_user(ic_ptr->response, cmd.resp, sizeof(cmd.resp))) {
49872 err = -EFAULT;
49873 goto cmd_rel_host;
49874 }
49875 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
49876 index 8ce4674..a23c858 100644
49877 --- a/drivers/mmc/host/dw_mmc.h
49878 +++ b/drivers/mmc/host/dw_mmc.h
49879 @@ -286,5 +286,5 @@ struct dw_mci_drv_data {
49880 struct mmc_ios *ios);
49881 int (*switch_voltage)(struct mmc_host *mmc,
49882 struct mmc_ios *ios);
49883 -};
49884 +} __do_const;
49885 #endif /* _DW_MMC_H_ */
49886 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
49887 index fb26674..3172c2b 100644
49888 --- a/drivers/mmc/host/mmci.c
49889 +++ b/drivers/mmc/host/mmci.c
49890 @@ -1633,7 +1633,9 @@ static int mmci_probe(struct amba_device *dev,
49891 mmc->caps |= MMC_CAP_CMD23;
49892
49893 if (variant->busy_detect) {
49894 - mmci_ops.card_busy = mmci_card_busy;
49895 + pax_open_kernel();
49896 + *(void **)&mmci_ops.card_busy = mmci_card_busy;
49897 + pax_close_kernel();
49898 mmci_write_datactrlreg(host, MCI_ST_DPSM_BUSYMODE);
49899 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
49900 mmc->max_busy_timeout = 0;
49901 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
49902 index 7fb0753..ad156f0 100644
49903 --- a/drivers/mmc/host/omap_hsmmc.c
49904 +++ b/drivers/mmc/host/omap_hsmmc.c
49905 @@ -2088,7 +2088,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
49906
49907 if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
49908 dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
49909 - omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
49910 + pax_open_kernel();
49911 + *(void **)&omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
49912 + pax_close_kernel();
49913 }
49914
49915 device_init_wakeup(&pdev->dev, true);
49916 diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
49917 index 886d230..289d769 100644
49918 --- a/drivers/mmc/host/sdhci-esdhc-imx.c
49919 +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
49920 @@ -1191,9 +1191,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
49921 host->ioaddr + 0x6c);
49922 }
49923
49924 - if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
49925 - sdhci_esdhc_ops.platform_execute_tuning =
49926 + if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
49927 + pax_open_kernel();
49928 + *(void **)&sdhci_esdhc_ops.platform_execute_tuning =
49929 esdhc_executing_tuning;
49930 + pax_close_kernel();
49931 + }
49932
49933 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
49934 writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
49935 diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
49936 index 70c724b..308aafc 100644
49937 --- a/drivers/mmc/host/sdhci-s3c.c
49938 +++ b/drivers/mmc/host/sdhci-s3c.c
49939 @@ -598,9 +598,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
49940 * we can use overriding functions instead of default.
49941 */
49942 if (sc->no_divider) {
49943 - sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
49944 - sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
49945 - sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
49946 + pax_open_kernel();
49947 + *(void **)&sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
49948 + *(void **)&sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
49949 + *(void **)&sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
49950 + pax_close_kernel();
49951 }
49952
49953 /* It supports additional host capabilities if needed */
49954 diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
49955 index 9a1a6ff..b8f1a57 100644
49956 --- a/drivers/mtd/chips/cfi_cmdset_0020.c
49957 +++ b/drivers/mtd/chips/cfi_cmdset_0020.c
49958 @@ -666,7 +666,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs,
49959 size_t totlen = 0, thislen;
49960 int ret = 0;
49961 size_t buflen = 0;
49962 - static char *buffer;
49963 + char *buffer;
49964
49965 if (!ECCBUF_SIZE) {
49966 /* We should fall back to a general writev implementation.
49967 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
49968 index 870c7fc..c7d6440 100644
49969 --- a/drivers/mtd/nand/denali.c
49970 +++ b/drivers/mtd/nand/denali.c
49971 @@ -24,6 +24,7 @@
49972 #include <linux/slab.h>
49973 #include <linux/mtd/mtd.h>
49974 #include <linux/module.h>
49975 +#include <linux/slab.h>
49976
49977 #include "denali.h"
49978
49979 diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49980 index 1b8f350..990f2e9 100644
49981 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49982 +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49983 @@ -386,7 +386,7 @@ void prepare_data_dma(struct gpmi_nand_data *this, enum dma_data_direction dr)
49984
49985 /* first try to map the upper buffer directly */
49986 if (virt_addr_valid(this->upper_buf) &&
49987 - !object_is_on_stack(this->upper_buf)) {
49988 + !object_starts_on_stack(this->upper_buf)) {
49989 sg_init_one(sgl, this->upper_buf, this->upper_len);
49990 ret = dma_map_sg(this->dev, sgl, 1, dr);
49991 if (ret == 0)
49992 diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
49993 index a5dfbfb..8042ab4 100644
49994 --- a/drivers/mtd/nftlmount.c
49995 +++ b/drivers/mtd/nftlmount.c
49996 @@ -24,6 +24,7 @@
49997 #include <asm/errno.h>
49998 #include <linux/delay.h>
49999 #include <linux/slab.h>
50000 +#include <linux/sched.h>
50001 #include <linux/mtd/mtd.h>
50002 #include <linux/mtd/nand.h>
50003 #include <linux/mtd/nftl.h>
50004 diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
50005 index c23184a..4115c41 100644
50006 --- a/drivers/mtd/sm_ftl.c
50007 +++ b/drivers/mtd/sm_ftl.c
50008 @@ -56,7 +56,7 @@ static ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
50009 #define SM_CIS_VENDOR_OFFSET 0x59
50010 static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
50011 {
50012 - struct attribute_group *attr_group;
50013 + attribute_group_no_const *attr_group;
50014 struct attribute **attributes;
50015 struct sm_sysfs_attribute *vendor_attribute;
50016 char *vendor;
50017 diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
50018 index db760e8..d53ca99 100644
50019 --- a/drivers/net/bonding/bond_netlink.c
50020 +++ b/drivers/net/bonding/bond_netlink.c
50021 @@ -662,7 +662,7 @@ nla_put_failure:
50022 return -EMSGSIZE;
50023 }
50024
50025 -struct rtnl_link_ops bond_link_ops __read_mostly = {
50026 +struct rtnl_link_ops bond_link_ops = {
50027 .kind = "bond",
50028 .priv_size = sizeof(struct bonding),
50029 .setup = bond_setup,
50030 diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c
50031 index 615c65d..c6c0439 100644
50032 --- a/drivers/net/caif/caif_hsi.c
50033 +++ b/drivers/net/caif/caif_hsi.c
50034 @@ -1444,7 +1444,7 @@ err:
50035 return -ENODEV;
50036 }
50037
50038 -static struct rtnl_link_ops caif_hsi_link_ops __read_mostly = {
50039 +static struct rtnl_link_ops caif_hsi_link_ops = {
50040 .kind = "cfhsi",
50041 .priv_size = sizeof(struct cfhsi),
50042 .setup = cfhsi_setup,
50043 diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
50044 index e8c96b8..516a96c 100644
50045 --- a/drivers/net/can/Kconfig
50046 +++ b/drivers/net/can/Kconfig
50047 @@ -98,7 +98,7 @@ config CAN_JANZ_ICAN3
50048
50049 config CAN_FLEXCAN
50050 tristate "Support for Freescale FLEXCAN based chips"
50051 - depends on ARM || PPC
50052 + depends on (ARM && CPU_LITTLE_ENDIAN) || PPC
50053 ---help---
50054 Say Y here if you want to support for Freescale FlexCAN.
50055
50056 diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
50057 index 141c2a4..ca734ed 100644
50058 --- a/drivers/net/can/dev.c
50059 +++ b/drivers/net/can/dev.c
50060 @@ -961,7 +961,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
50061 return -EOPNOTSUPP;
50062 }
50063
50064 -static struct rtnl_link_ops can_link_ops __read_mostly = {
50065 +static struct rtnl_link_ops can_link_ops = {
50066 .kind = "can",
50067 .maxtype = IFLA_CAN_MAX,
50068 .policy = can_policy,
50069 diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c
50070 index 674f367..ec3a31f 100644
50071 --- a/drivers/net/can/vcan.c
50072 +++ b/drivers/net/can/vcan.c
50073 @@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
50074 dev->destructor = free_netdev;
50075 }
50076
50077 -static struct rtnl_link_ops vcan_link_ops __read_mostly = {
50078 +static struct rtnl_link_ops vcan_link_ops = {
50079 .kind = "vcan",
50080 .setup = vcan_setup,
50081 };
50082 diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
50083 index 815eb94..38ef9b7 100644
50084 --- a/drivers/net/dummy.c
50085 +++ b/drivers/net/dummy.c
50086 @@ -163,7 +163,7 @@ static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])
50087 return 0;
50088 }
50089
50090 -static struct rtnl_link_ops dummy_link_ops __read_mostly = {
50091 +static struct rtnl_link_ops dummy_link_ops = {
50092 .kind = DRV_NAME,
50093 .setup = dummy_setup,
50094 .validate = dummy_validate,
50095 diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
50096 index 0443654..4f0aa18 100644
50097 --- a/drivers/net/ethernet/8390/ax88796.c
50098 +++ b/drivers/net/ethernet/8390/ax88796.c
50099 @@ -889,9 +889,11 @@ static int ax_probe(struct platform_device *pdev)
50100 if (ax->plat->reg_offsets)
50101 ei_local->reg_offset = ax->plat->reg_offsets;
50102 else {
50103 + resource_size_t _mem_size = mem_size;
50104 + do_div(_mem_size, 0x18);
50105 ei_local->reg_offset = ax->reg_offsets;
50106 for (ret = 0; ret < 0x18; ret++)
50107 - ax->reg_offsets[ret] = (mem_size / 0x18) * ret;
50108 + ax->reg_offsets[ret] = _mem_size * ret;
50109 }
50110
50111 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
50112 diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
50113 index fe64482..9a24726 100644
50114 --- a/drivers/net/ethernet/altera/altera_tse_main.c
50115 +++ b/drivers/net/ethernet/altera/altera_tse_main.c
50116 @@ -1255,7 +1255,7 @@ static int tse_shutdown(struct net_device *dev)
50117 return 0;
50118 }
50119
50120 -static struct net_device_ops altera_tse_netdev_ops = {
50121 +static net_device_ops_no_const altera_tse_netdev_ops __read_only = {
50122 .ndo_open = tse_open,
50123 .ndo_stop = tse_shutdown,
50124 .ndo_start_xmit = tse_start_xmit,
50125 @@ -1492,11 +1492,13 @@ static int altera_tse_probe(struct platform_device *pdev)
50126 ndev->netdev_ops = &altera_tse_netdev_ops;
50127 altera_tse_set_ethtool_ops(ndev);
50128
50129 + pax_open_kernel();
50130 altera_tse_netdev_ops.ndo_set_rx_mode = tse_set_rx_mode;
50131
50132 if (priv->hash_filter)
50133 altera_tse_netdev_ops.ndo_set_rx_mode =
50134 tse_set_rx_mode_hashfilter;
50135 + pax_close_kernel();
50136
50137 /* Scatter/gather IO is not supported,
50138 * so it is turned off
50139 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50140 index b6fa891..31ef157 100644
50141 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50142 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50143 @@ -1279,14 +1279,14 @@ do { \
50144 * operations, everything works on mask values.
50145 */
50146 #define XMDIO_READ(_pdata, _mmd, _reg) \
50147 - ((_pdata)->hw_if.read_mmd_regs((_pdata), 0, \
50148 + ((_pdata)->hw_if->read_mmd_regs((_pdata), 0, \
50149 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff)))
50150
50151 #define XMDIO_READ_BITS(_pdata, _mmd, _reg, _mask) \
50152 (XMDIO_READ((_pdata), _mmd, _reg) & _mask)
50153
50154 #define XMDIO_WRITE(_pdata, _mmd, _reg, _val) \
50155 - ((_pdata)->hw_if.write_mmd_regs((_pdata), 0, \
50156 + ((_pdata)->hw_if->write_mmd_regs((_pdata), 0, \
50157 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff), (_val)))
50158
50159 #define XMDIO_WRITE_BITS(_pdata, _mmd, _reg, _mask, _val) \
50160 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50161 index a6b9899..2e5e972 100644
50162 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50163 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50164 @@ -190,7 +190,7 @@ static int xgbe_dcb_ieee_setets(struct net_device *netdev,
50165
50166 memcpy(pdata->ets, ets, sizeof(*pdata->ets));
50167
50168 - pdata->hw_if.config_dcb_tc(pdata);
50169 + pdata->hw_if->config_dcb_tc(pdata);
50170
50171 return 0;
50172 }
50173 @@ -230,7 +230,7 @@ static int xgbe_dcb_ieee_setpfc(struct net_device *netdev,
50174
50175 memcpy(pdata->pfc, pfc, sizeof(*pdata->pfc));
50176
50177 - pdata->hw_if.config_dcb_pfc(pdata);
50178 + pdata->hw_if->config_dcb_pfc(pdata);
50179
50180 return 0;
50181 }
50182 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50183 index b3bc87f..5bdfdd3 100644
50184 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50185 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50186 @@ -353,7 +353,7 @@ static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata,
50187
50188 static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50189 {
50190 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50191 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50192 struct xgbe_channel *channel;
50193 struct xgbe_ring *ring;
50194 struct xgbe_ring_data *rdata;
50195 @@ -394,7 +394,7 @@ static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50196
50197 static void xgbe_wrapper_rx_descriptor_init(struct xgbe_prv_data *pdata)
50198 {
50199 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50200 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50201 struct xgbe_channel *channel;
50202 struct xgbe_ring *ring;
50203 struct xgbe_ring_desc *rdesc;
50204 @@ -628,17 +628,12 @@ err_out:
50205 return 0;
50206 }
50207
50208 -void xgbe_init_function_ptrs_desc(struct xgbe_desc_if *desc_if)
50209 -{
50210 - DBGPR("-->xgbe_init_function_ptrs_desc\n");
50211 -
50212 - desc_if->alloc_ring_resources = xgbe_alloc_ring_resources;
50213 - desc_if->free_ring_resources = xgbe_free_ring_resources;
50214 - desc_if->map_tx_skb = xgbe_map_tx_skb;
50215 - desc_if->map_rx_buffer = xgbe_map_rx_buffer;
50216 - desc_if->unmap_rdata = xgbe_unmap_rdata;
50217 - desc_if->wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init;
50218 - desc_if->wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init;
50219 -
50220 - DBGPR("<--xgbe_init_function_ptrs_desc\n");
50221 -}
50222 +const struct xgbe_desc_if default_xgbe_desc_if = {
50223 + .alloc_ring_resources = xgbe_alloc_ring_resources,
50224 + .free_ring_resources = xgbe_free_ring_resources,
50225 + .map_tx_skb = xgbe_map_tx_skb,
50226 + .map_rx_buffer = xgbe_map_rx_buffer,
50227 + .unmap_rdata = xgbe_unmap_rdata,
50228 + .wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init,
50229 + .wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init,
50230 +};
50231 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50232 index f672dba3..d71818d 100644
50233 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50234 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50235 @@ -2776,7 +2776,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
50236
50237 static int xgbe_init(struct xgbe_prv_data *pdata)
50238 {
50239 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50240 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50241 int ret;
50242
50243 DBGPR("-->xgbe_init\n");
50244 @@ -2842,106 +2842,101 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
50245 return 0;
50246 }
50247
50248 -void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *hw_if)
50249 -{
50250 - DBGPR("-->xgbe_init_function_ptrs\n");
50251 -
50252 - hw_if->tx_complete = xgbe_tx_complete;
50253 -
50254 - hw_if->set_mac_address = xgbe_set_mac_address;
50255 - hw_if->config_rx_mode = xgbe_config_rx_mode;
50256 -
50257 - hw_if->enable_rx_csum = xgbe_enable_rx_csum;
50258 - hw_if->disable_rx_csum = xgbe_disable_rx_csum;
50259 -
50260 - hw_if->enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping;
50261 - hw_if->disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping;
50262 - hw_if->enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering;
50263 - hw_if->disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering;
50264 - hw_if->update_vlan_hash_table = xgbe_update_vlan_hash_table;
50265 -
50266 - hw_if->read_mmd_regs = xgbe_read_mmd_regs;
50267 - hw_if->write_mmd_regs = xgbe_write_mmd_regs;
50268 -
50269 - hw_if->set_gmii_speed = xgbe_set_gmii_speed;
50270 - hw_if->set_gmii_2500_speed = xgbe_set_gmii_2500_speed;
50271 - hw_if->set_xgmii_speed = xgbe_set_xgmii_speed;
50272 -
50273 - hw_if->enable_tx = xgbe_enable_tx;
50274 - hw_if->disable_tx = xgbe_disable_tx;
50275 - hw_if->enable_rx = xgbe_enable_rx;
50276 - hw_if->disable_rx = xgbe_disable_rx;
50277 -
50278 - hw_if->powerup_tx = xgbe_powerup_tx;
50279 - hw_if->powerdown_tx = xgbe_powerdown_tx;
50280 - hw_if->powerup_rx = xgbe_powerup_rx;
50281 - hw_if->powerdown_rx = xgbe_powerdown_rx;
50282 -
50283 - hw_if->dev_xmit = xgbe_dev_xmit;
50284 - hw_if->dev_read = xgbe_dev_read;
50285 - hw_if->enable_int = xgbe_enable_int;
50286 - hw_if->disable_int = xgbe_disable_int;
50287 - hw_if->init = xgbe_init;
50288 - hw_if->exit = xgbe_exit;
50289 +const struct xgbe_hw_if default_xgbe_hw_if = {
50290 + .tx_complete = xgbe_tx_complete,
50291 +
50292 + .set_mac_address = xgbe_set_mac_address,
50293 + .config_rx_mode = xgbe_config_rx_mode,
50294 +
50295 + .enable_rx_csum = xgbe_enable_rx_csum,
50296 + .disable_rx_csum = xgbe_disable_rx_csum,
50297 +
50298 + .enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping,
50299 + .disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping,
50300 + .enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering,
50301 + .disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering,
50302 + .update_vlan_hash_table = xgbe_update_vlan_hash_table,
50303 +
50304 + .read_mmd_regs = xgbe_read_mmd_regs,
50305 + .write_mmd_regs = xgbe_write_mmd_regs,
50306 +
50307 + .set_gmii_speed = xgbe_set_gmii_speed,
50308 + .set_gmii_2500_speed = xgbe_set_gmii_2500_speed,
50309 + .set_xgmii_speed = xgbe_set_xgmii_speed,
50310 +
50311 + .enable_tx = xgbe_enable_tx,
50312 + .disable_tx = xgbe_disable_tx,
50313 + .enable_rx = xgbe_enable_rx,
50314 + .disable_rx = xgbe_disable_rx,
50315 +
50316 + .powerup_tx = xgbe_powerup_tx,
50317 + .powerdown_tx = xgbe_powerdown_tx,
50318 + .powerup_rx = xgbe_powerup_rx,
50319 + .powerdown_rx = xgbe_powerdown_rx,
50320 +
50321 + .dev_xmit = xgbe_dev_xmit,
50322 + .dev_read = xgbe_dev_read,
50323 + .enable_int = xgbe_enable_int,
50324 + .disable_int = xgbe_disable_int,
50325 + .init = xgbe_init,
50326 + .exit = xgbe_exit,
50327
50328 /* Descriptor related Sequences have to be initialized here */
50329 - hw_if->tx_desc_init = xgbe_tx_desc_init;
50330 - hw_if->rx_desc_init = xgbe_rx_desc_init;
50331 - hw_if->tx_desc_reset = xgbe_tx_desc_reset;
50332 - hw_if->rx_desc_reset = xgbe_rx_desc_reset;
50333 - hw_if->is_last_desc = xgbe_is_last_desc;
50334 - hw_if->is_context_desc = xgbe_is_context_desc;
50335 - hw_if->tx_start_xmit = xgbe_tx_start_xmit;
50336 + .tx_desc_init = xgbe_tx_desc_init,
50337 + .rx_desc_init = xgbe_rx_desc_init,
50338 + .tx_desc_reset = xgbe_tx_desc_reset,
50339 + .rx_desc_reset = xgbe_rx_desc_reset,
50340 + .is_last_desc = xgbe_is_last_desc,
50341 + .is_context_desc = xgbe_is_context_desc,
50342 + .tx_start_xmit = xgbe_tx_start_xmit,
50343
50344 /* For FLOW ctrl */
50345 - hw_if->config_tx_flow_control = xgbe_config_tx_flow_control;
50346 - hw_if->config_rx_flow_control = xgbe_config_rx_flow_control;
50347 + .config_tx_flow_control = xgbe_config_tx_flow_control,
50348 + .config_rx_flow_control = xgbe_config_rx_flow_control,
50349
50350 /* For RX coalescing */
50351 - hw_if->config_rx_coalesce = xgbe_config_rx_coalesce;
50352 - hw_if->config_tx_coalesce = xgbe_config_tx_coalesce;
50353 - hw_if->usec_to_riwt = xgbe_usec_to_riwt;
50354 - hw_if->riwt_to_usec = xgbe_riwt_to_usec;
50355 + .config_rx_coalesce = xgbe_config_rx_coalesce,
50356 + .config_tx_coalesce = xgbe_config_tx_coalesce,
50357 + .usec_to_riwt = xgbe_usec_to_riwt,
50358 + .riwt_to_usec = xgbe_riwt_to_usec,
50359
50360 /* For RX and TX threshold config */
50361 - hw_if->config_rx_threshold = xgbe_config_rx_threshold;
50362 - hw_if->config_tx_threshold = xgbe_config_tx_threshold;
50363 + .config_rx_threshold = xgbe_config_rx_threshold,
50364 + .config_tx_threshold = xgbe_config_tx_threshold,
50365
50366 /* For RX and TX Store and Forward Mode config */
50367 - hw_if->config_rsf_mode = xgbe_config_rsf_mode;
50368 - hw_if->config_tsf_mode = xgbe_config_tsf_mode;
50369 + .config_rsf_mode = xgbe_config_rsf_mode,
50370 + .config_tsf_mode = xgbe_config_tsf_mode,
50371
50372 /* For TX DMA Operating on Second Frame config */
50373 - hw_if->config_osp_mode = xgbe_config_osp_mode;
50374 + .config_osp_mode = xgbe_config_osp_mode,
50375
50376 /* For RX and TX PBL config */
50377 - hw_if->config_rx_pbl_val = xgbe_config_rx_pbl_val;
50378 - hw_if->get_rx_pbl_val = xgbe_get_rx_pbl_val;
50379 - hw_if->config_tx_pbl_val = xgbe_config_tx_pbl_val;
50380 - hw_if->get_tx_pbl_val = xgbe_get_tx_pbl_val;
50381 - hw_if->config_pblx8 = xgbe_config_pblx8;
50382 + .config_rx_pbl_val = xgbe_config_rx_pbl_val,
50383 + .get_rx_pbl_val = xgbe_get_rx_pbl_val,
50384 + .config_tx_pbl_val = xgbe_config_tx_pbl_val,
50385 + .get_tx_pbl_val = xgbe_get_tx_pbl_val,
50386 + .config_pblx8 = xgbe_config_pblx8,
50387
50388 /* For MMC statistics support */
50389 - hw_if->tx_mmc_int = xgbe_tx_mmc_int;
50390 - hw_if->rx_mmc_int = xgbe_rx_mmc_int;
50391 - hw_if->read_mmc_stats = xgbe_read_mmc_stats;
50392 + .tx_mmc_int = xgbe_tx_mmc_int,
50393 + .rx_mmc_int = xgbe_rx_mmc_int,
50394 + .read_mmc_stats = xgbe_read_mmc_stats,
50395
50396 /* For PTP config */
50397 - hw_if->config_tstamp = xgbe_config_tstamp;
50398 - hw_if->update_tstamp_addend = xgbe_update_tstamp_addend;
50399 - hw_if->set_tstamp_time = xgbe_set_tstamp_time;
50400 - hw_if->get_tstamp_time = xgbe_get_tstamp_time;
50401 - hw_if->get_tx_tstamp = xgbe_get_tx_tstamp;
50402 + .config_tstamp = xgbe_config_tstamp,
50403 + .update_tstamp_addend = xgbe_update_tstamp_addend,
50404 + .set_tstamp_time = xgbe_set_tstamp_time,
50405 + .get_tstamp_time = xgbe_get_tstamp_time,
50406 + .get_tx_tstamp = xgbe_get_tx_tstamp,
50407
50408 /* For Data Center Bridging config */
50409 - hw_if->config_dcb_tc = xgbe_config_dcb_tc;
50410 - hw_if->config_dcb_pfc = xgbe_config_dcb_pfc;
50411 + .config_dcb_tc = xgbe_config_dcb_tc,
50412 + .config_dcb_pfc = xgbe_config_dcb_pfc,
50413
50414 /* For Receive Side Scaling */
50415 - hw_if->enable_rss = xgbe_enable_rss;
50416 - hw_if->disable_rss = xgbe_disable_rss;
50417 - hw_if->set_rss_hash_key = xgbe_set_rss_hash_key;
50418 - hw_if->set_rss_lookup_table = xgbe_set_rss_lookup_table;
50419 -
50420 - DBGPR("<--xgbe_init_function_ptrs\n");
50421 -}
50422 + .enable_rss = xgbe_enable_rss,
50423 + .disable_rss = xgbe_disable_rss,
50424 + .set_rss_hash_key = xgbe_set_rss_hash_key,
50425 + .set_rss_lookup_table = xgbe_set_rss_lookup_table,
50426 +};
50427 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50428 index dde0486..831e127 100644
50429 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50430 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50431 @@ -245,7 +245,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
50432 * support, tell it now
50433 */
50434 if (ring->tx.xmit_more)
50435 - pdata->hw_if.tx_start_xmit(channel, ring);
50436 + pdata->hw_if->tx_start_xmit(channel, ring);
50437
50438 return NETDEV_TX_BUSY;
50439 }
50440 @@ -273,7 +273,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
50441
50442 static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50443 {
50444 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50445 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50446 struct xgbe_channel *channel;
50447 enum xgbe_int int_id;
50448 unsigned int i;
50449 @@ -295,7 +295,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50450
50451 static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50452 {
50453 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50454 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50455 struct xgbe_channel *channel;
50456 enum xgbe_int int_id;
50457 unsigned int i;
50458 @@ -318,7 +318,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50459 static irqreturn_t xgbe_isr(int irq, void *data)
50460 {
50461 struct xgbe_prv_data *pdata = data;
50462 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50463 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50464 struct xgbe_channel *channel;
50465 unsigned int dma_isr, dma_ch_isr;
50466 unsigned int mac_isr, mac_tssr;
50467 @@ -443,7 +443,7 @@ static void xgbe_service(struct work_struct *work)
50468 struct xgbe_prv_data,
50469 service_work);
50470
50471 - pdata->phy_if.phy_status(pdata);
50472 + pdata->phy_if->phy_status(pdata);
50473 }
50474
50475 static void xgbe_service_timer(unsigned long data)
50476 @@ -702,7 +702,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
50477
50478 void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50479 {
50480 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50481 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50482
50483 DBGPR("-->xgbe_init_tx_coalesce\n");
50484
50485 @@ -716,7 +716,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50486
50487 void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50488 {
50489 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50490 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50491
50492 DBGPR("-->xgbe_init_rx_coalesce\n");
50493
50494 @@ -731,7 +731,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50495
50496 static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50497 {
50498 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50499 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50500 struct xgbe_channel *channel;
50501 struct xgbe_ring *ring;
50502 struct xgbe_ring_data *rdata;
50503 @@ -756,7 +756,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50504
50505 static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
50506 {
50507 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50508 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50509 struct xgbe_channel *channel;
50510 struct xgbe_ring *ring;
50511 struct xgbe_ring_data *rdata;
50512 @@ -784,13 +784,13 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata)
50513 pdata->phy_link = -1;
50514 pdata->phy_speed = SPEED_UNKNOWN;
50515
50516 - return pdata->phy_if.phy_reset(pdata);
50517 + return pdata->phy_if->phy_reset(pdata);
50518 }
50519
50520 int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50521 {
50522 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50523 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50524 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50525 unsigned long flags;
50526
50527 DBGPR("-->xgbe_powerdown\n");
50528 @@ -829,7 +829,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50529 int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50530 {
50531 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50532 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50533 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50534 unsigned long flags;
50535
50536 DBGPR("-->xgbe_powerup\n");
50537 @@ -866,8 +866,8 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50538
50539 static int xgbe_start(struct xgbe_prv_data *pdata)
50540 {
50541 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50542 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50543 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50544 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50545 struct net_device *netdev = pdata->netdev;
50546 int ret;
50547
50548 @@ -910,8 +910,8 @@ err_phy:
50549
50550 static void xgbe_stop(struct xgbe_prv_data *pdata)
50551 {
50552 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50553 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50554 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50555 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50556 struct xgbe_channel *channel;
50557 struct net_device *netdev = pdata->netdev;
50558 struct netdev_queue *txq;
50559 @@ -1139,7 +1139,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
50560 return -ERANGE;
50561 }
50562
50563 - pdata->hw_if.config_tstamp(pdata, mac_tscr);
50564 + pdata->hw_if->config_tstamp(pdata, mac_tscr);
50565
50566 memcpy(&pdata->tstamp_config, &config, sizeof(config));
50567
50568 @@ -1288,7 +1288,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
50569 static int xgbe_open(struct net_device *netdev)
50570 {
50571 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50572 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50573 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50574 int ret;
50575
50576 DBGPR("-->xgbe_open\n");
50577 @@ -1360,7 +1360,7 @@ err_sysclk:
50578 static int xgbe_close(struct net_device *netdev)
50579 {
50580 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50581 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50582 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50583
50584 DBGPR("-->xgbe_close\n");
50585
50586 @@ -1387,8 +1387,8 @@ static int xgbe_close(struct net_device *netdev)
50587 static int xgbe_xmit(struct sk_buff *skb, struct net_device *netdev)
50588 {
50589 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50590 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50591 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50592 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50593 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50594 struct xgbe_channel *channel;
50595 struct xgbe_ring *ring;
50596 struct xgbe_packet_data *packet;
50597 @@ -1457,7 +1457,7 @@ tx_netdev_return:
50598 static void xgbe_set_rx_mode(struct net_device *netdev)
50599 {
50600 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50601 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50602 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50603
50604 DBGPR("-->xgbe_set_rx_mode\n");
50605
50606 @@ -1469,7 +1469,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
50607 static int xgbe_set_mac_address(struct net_device *netdev, void *addr)
50608 {
50609 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50610 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50611 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50612 struct sockaddr *saddr = addr;
50613
50614 DBGPR("-->xgbe_set_mac_address\n");
50615 @@ -1544,7 +1544,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
50616
50617 DBGPR("-->%s\n", __func__);
50618
50619 - pdata->hw_if.read_mmc_stats(pdata);
50620 + pdata->hw_if->read_mmc_stats(pdata);
50621
50622 s->rx_packets = pstats->rxframecount_gb;
50623 s->rx_bytes = pstats->rxoctetcount_gb;
50624 @@ -1571,7 +1571,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
50625 u16 vid)
50626 {
50627 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50628 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50629 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50630
50631 DBGPR("-->%s\n", __func__);
50632
50633 @@ -1587,7 +1587,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
50634 u16 vid)
50635 {
50636 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50637 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50638 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50639
50640 DBGPR("-->%s\n", __func__);
50641
50642 @@ -1654,7 +1654,7 @@ static int xgbe_set_features(struct net_device *netdev,
50643 netdev_features_t features)
50644 {
50645 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50646 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50647 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50648 netdev_features_t rxhash, rxcsum, rxvlan, rxvlan_filter;
50649 int ret = 0;
50650
50651 @@ -1720,8 +1720,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
50652 static void xgbe_rx_refresh(struct xgbe_channel *channel)
50653 {
50654 struct xgbe_prv_data *pdata = channel->pdata;
50655 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50656 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50657 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50658 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50659 struct xgbe_ring *ring = channel->rx_ring;
50660 struct xgbe_ring_data *rdata;
50661
50662 @@ -1798,8 +1798,8 @@ static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
50663 static int xgbe_tx_poll(struct xgbe_channel *channel)
50664 {
50665 struct xgbe_prv_data *pdata = channel->pdata;
50666 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50667 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50668 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50669 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50670 struct xgbe_ring *ring = channel->tx_ring;
50671 struct xgbe_ring_data *rdata;
50672 struct xgbe_ring_desc *rdesc;
50673 @@ -1869,7 +1869,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
50674 static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
50675 {
50676 struct xgbe_prv_data *pdata = channel->pdata;
50677 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50678 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50679 struct xgbe_ring *ring = channel->rx_ring;
50680 struct xgbe_ring_data *rdata;
50681 struct xgbe_packet_data *packet;
50682 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50683 index 59e090e..90bc0b4 100644
50684 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50685 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50686 @@ -211,7 +211,7 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev,
50687
50688 DBGPR("-->%s\n", __func__);
50689
50690 - pdata->hw_if.read_mmc_stats(pdata);
50691 + pdata->hw_if->read_mmc_stats(pdata);
50692 for (i = 0; i < XGBE_STATS_COUNT; i++) {
50693 stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset;
50694 *data++ = *(u64 *)stat;
50695 @@ -284,7 +284,7 @@ static int xgbe_set_pauseparam(struct net_device *netdev,
50696 pdata->phy.advertising ^= ADVERTISED_Asym_Pause;
50697
50698 if (netif_running(netdev))
50699 - ret = pdata->phy_if.phy_config_aneg(pdata);
50700 + ret = pdata->phy_if->phy_config_aneg(pdata);
50701
50702 DBGPR("<--xgbe_set_pauseparam\n");
50703
50704 @@ -364,7 +364,7 @@ static int xgbe_set_settings(struct net_device *netdev,
50705 pdata->phy.advertising &= ~ADVERTISED_Autoneg;
50706
50707 if (netif_running(netdev))
50708 - ret = pdata->phy_if.phy_config_aneg(pdata);
50709 + ret = pdata->phy_if->phy_config_aneg(pdata);
50710
50711 DBGPR("<--xgbe_set_settings\n");
50712
50713 @@ -411,7 +411,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
50714 struct ethtool_coalesce *ec)
50715 {
50716 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50717 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50718 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50719 unsigned int rx_frames, rx_riwt, rx_usecs;
50720 unsigned int tx_frames;
50721
50722 @@ -536,7 +536,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
50723 const u8 *key, const u8 hfunc)
50724 {
50725 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50726 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50727 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50728 unsigned int ret;
50729
50730 if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)
50731 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50732 index e83bd76..f2d5d56 100644
50733 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50734 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50735 @@ -202,13 +202,6 @@ static void xgbe_default_config(struct xgbe_prv_data *pdata)
50736 DBGPR("<--xgbe_default_config\n");
50737 }
50738
50739 -static void xgbe_init_all_fptrs(struct xgbe_prv_data *pdata)
50740 -{
50741 - xgbe_init_function_ptrs_dev(&pdata->hw_if);
50742 - xgbe_init_function_ptrs_phy(&pdata->phy_if);
50743 - xgbe_init_function_ptrs_desc(&pdata->desc_if);
50744 -}
50745 -
50746 #ifdef CONFIG_ACPI
50747 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
50748 {
50749 @@ -641,10 +634,12 @@ static int xgbe_probe(struct platform_device *pdev)
50750 memcpy(netdev->dev_addr, pdata->mac_addr, netdev->addr_len);
50751
50752 /* Set all the function pointers */
50753 - xgbe_init_all_fptrs(pdata);
50754 + pdata->hw_if = &default_xgbe_hw_if;
50755 + pdata->phy_if = &default_xgbe_phy_if;
50756 + pdata->desc_if = &default_xgbe_desc_if;
50757
50758 /* Issue software reset to device */
50759 - pdata->hw_if.exit(pdata);
50760 + pdata->hw_if->exit(pdata);
50761
50762 /* Populate the hardware features */
50763 xgbe_get_all_hw_features(pdata);
50764 @@ -698,7 +693,7 @@ static int xgbe_probe(struct platform_device *pdev)
50765 XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
50766
50767 /* Call MDIO/PHY initialization routine */
50768 - pdata->phy_if.phy_init(pdata);
50769 + pdata->phy_if->phy_init(pdata);
50770
50771 /* Set device operations */
50772 netdev->netdev_ops = xgbe_get_netdev_ops();
50773 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50774 index 9088c3a..2ffe7c4 100644
50775 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50776 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50777 @@ -202,7 +202,7 @@ static void xgbe_xgmii_mode(struct xgbe_prv_data *pdata)
50778 xgbe_an_enable_kr_training(pdata);
50779
50780 /* Set MAC to 10G speed */
50781 - pdata->hw_if.set_xgmii_speed(pdata);
50782 + pdata->hw_if->set_xgmii_speed(pdata);
50783
50784 /* Set PCS to KR/10G speed */
50785 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50786 @@ -250,7 +250,7 @@ static void xgbe_gmii_2500_mode(struct xgbe_prv_data *pdata)
50787 xgbe_an_disable_kr_training(pdata);
50788
50789 /* Set MAC to 2.5G speed */
50790 - pdata->hw_if.set_gmii_2500_speed(pdata);
50791 + pdata->hw_if->set_gmii_2500_speed(pdata);
50792
50793 /* Set PCS to KX/1G speed */
50794 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50795 @@ -298,7 +298,7 @@ static void xgbe_gmii_mode(struct xgbe_prv_data *pdata)
50796 xgbe_an_disable_kr_training(pdata);
50797
50798 /* Set MAC to 1G speed */
50799 - pdata->hw_if.set_gmii_speed(pdata);
50800 + pdata->hw_if->set_gmii_speed(pdata);
50801
50802 /* Set PCS to KX/1G speed */
50803 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50804 @@ -872,13 +872,13 @@ static void xgbe_phy_adjust_link(struct xgbe_prv_data *pdata)
50805
50806 if (pdata->tx_pause != pdata->phy.tx_pause) {
50807 new_state = 1;
50808 - pdata->hw_if.config_tx_flow_control(pdata);
50809 + pdata->hw_if->config_tx_flow_control(pdata);
50810 pdata->tx_pause = pdata->phy.tx_pause;
50811 }
50812
50813 if (pdata->rx_pause != pdata->phy.rx_pause) {
50814 new_state = 1;
50815 - pdata->hw_if.config_rx_flow_control(pdata);
50816 + pdata->hw_if->config_rx_flow_control(pdata);
50817 pdata->rx_pause = pdata->phy.rx_pause;
50818 }
50819
50820 @@ -1351,14 +1351,13 @@ static void xgbe_phy_init(struct xgbe_prv_data *pdata)
50821 xgbe_dump_phy_registers(pdata);
50822 }
50823
50824 -void xgbe_init_function_ptrs_phy(struct xgbe_phy_if *phy_if)
50825 -{
50826 - phy_if->phy_init = xgbe_phy_init;
50827 +const struct xgbe_phy_if default_xgbe_phy_if = {
50828 + .phy_init = xgbe_phy_init,
50829
50830 - phy_if->phy_reset = xgbe_phy_reset;
50831 - phy_if->phy_start = xgbe_phy_start;
50832 - phy_if->phy_stop = xgbe_phy_stop;
50833 + .phy_reset = xgbe_phy_reset,
50834 + .phy_start = xgbe_phy_start,
50835 + .phy_stop = xgbe_phy_stop,
50836
50837 - phy_if->phy_status = xgbe_phy_status;
50838 - phy_if->phy_config_aneg = xgbe_phy_config_aneg;
50839 -}
50840 + .phy_status = xgbe_phy_status,
50841 + .phy_config_aneg = xgbe_phy_config_aneg,
50842 +};
50843 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50844 index b03e4f5..78e4cc4 100644
50845 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50846 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50847 @@ -129,7 +129,7 @@ static cycle_t xgbe_cc_read(const struct cyclecounter *cc)
50848 tstamp_cc);
50849 u64 nsec;
50850
50851 - nsec = pdata->hw_if.get_tstamp_time(pdata);
50852 + nsec = pdata->hw_if->get_tstamp_time(pdata);
50853
50854 return nsec;
50855 }
50856 @@ -158,7 +158,7 @@ static int xgbe_adjfreq(struct ptp_clock_info *info, s32 delta)
50857
50858 spin_lock_irqsave(&pdata->tstamp_lock, flags);
50859
50860 - pdata->hw_if.update_tstamp_addend(pdata, addend);
50861 + pdata->hw_if->update_tstamp_addend(pdata, addend);
50862
50863 spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
50864
50865 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
50866 index 8c9d01e..8c7bd644 100644
50867 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
50868 +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
50869 @@ -801,9 +801,9 @@ struct xgbe_prv_data {
50870 int dev_irq;
50871 unsigned int per_channel_irq;
50872
50873 - struct xgbe_hw_if hw_if;
50874 - struct xgbe_phy_if phy_if;
50875 - struct xgbe_desc_if desc_if;
50876 + struct xgbe_hw_if *hw_if;
50877 + struct xgbe_phy_if *phy_if;
50878 + struct xgbe_desc_if *desc_if;
50879
50880 /* AXI DMA settings */
50881 unsigned int coherent;
50882 @@ -964,6 +964,10 @@ struct xgbe_prv_data {
50883 #endif
50884 };
50885
50886 +extern const struct xgbe_hw_if default_xgbe_hw_if;
50887 +extern const struct xgbe_phy_if default_xgbe_phy_if;
50888 +extern const struct xgbe_desc_if default_xgbe_desc_if;
50889 +
50890 /* Function prototypes*/
50891
50892 void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *);
50893 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50894 index b7d32e8..ea5b559 100644
50895 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50896 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50897 @@ -1122,7 +1122,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
50898 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
50899 {
50900 /* RX_MODE controlling object */
50901 - bnx2x_init_rx_mode_obj(bp, &bp->rx_mode_obj);
50902 + bnx2x_init_rx_mode_obj(bp);
50903
50904 /* multicast configuration controlling object */
50905 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
50906 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50907 index ff702a7..cb3ae16 100644
50908 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50909 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50910 @@ -2576,15 +2576,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
50911 return rc;
50912 }
50913
50914 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
50915 - struct bnx2x_rx_mode_obj *o)
50916 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp)
50917 {
50918 if (CHIP_IS_E1x(bp)) {
50919 - o->wait_comp = bnx2x_empty_rx_mode_wait;
50920 - o->config_rx_mode = bnx2x_set_rx_mode_e1x;
50921 + bp->rx_mode_obj.wait_comp = bnx2x_empty_rx_mode_wait;
50922 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e1x;
50923 } else {
50924 - o->wait_comp = bnx2x_wait_rx_mode_comp_e2;
50925 - o->config_rx_mode = bnx2x_set_rx_mode_e2;
50926 + bp->rx_mode_obj.wait_comp = bnx2x_wait_rx_mode_comp_e2;
50927 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e2;
50928 }
50929 }
50930
50931 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50932 index 4048fc5..333809f 100644
50933 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50934 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50935 @@ -1436,8 +1436,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
50936
50937 /********************* RX MODE ****************/
50938
50939 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
50940 - struct bnx2x_rx_mode_obj *o);
50941 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp);
50942
50943 /**
50944 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
50945 diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
50946 index 31c9f82..e65e986 100644
50947 --- a/drivers/net/ethernet/broadcom/tg3.h
50948 +++ b/drivers/net/ethernet/broadcom/tg3.h
50949 @@ -150,6 +150,7 @@
50950 #define CHIPREV_ID_5750_A0 0x4000
50951 #define CHIPREV_ID_5750_A1 0x4001
50952 #define CHIPREV_ID_5750_A3 0x4003
50953 +#define CHIPREV_ID_5750_C1 0x4201
50954 #define CHIPREV_ID_5750_C2 0x4202
50955 #define CHIPREV_ID_5752_A0_HW 0x5000
50956 #define CHIPREV_ID_5752_A0 0x6000
50957 diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
50958 index 4e5c387..bba8173 100644
50959 --- a/drivers/net/ethernet/brocade/bna/bna_enet.c
50960 +++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
50961 @@ -1676,10 +1676,10 @@ bna_cb_ioceth_reset(void *arg)
50962 }
50963
50964 static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
50965 - bna_cb_ioceth_enable,
50966 - bna_cb_ioceth_disable,
50967 - bna_cb_ioceth_hbfail,
50968 - bna_cb_ioceth_reset
50969 + .enable_cbfn = bna_cb_ioceth_enable,
50970 + .disable_cbfn = bna_cb_ioceth_disable,
50971 + .hbfail_cbfn = bna_cb_ioceth_hbfail,
50972 + .reset_cbfn = bna_cb_ioceth_reset
50973 };
50974
50975 static void bna_attr_init(struct bna_ioceth *ioceth)
50976 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50977 index 29f3308..b594c38 100644
50978 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50979 +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50980 @@ -265,9 +265,9 @@ static void octnet_mdio_resp_callback(struct octeon_device *oct,
50981 if (status) {
50982 dev_err(&oct->pci_dev->dev, "MIDO instruction failed. Status: %llx\n",
50983 CVM_CAST64(status));
50984 - ACCESS_ONCE(mdio_cmd_ctx->cond) = -1;
50985 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = -1;
50986 } else {
50987 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 1;
50988 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 1;
50989 }
50990 wake_up_interruptible(&mdio_cmd_ctx->wc);
50991 }
50992 @@ -298,7 +298,7 @@ octnet_mdio45_access(struct lio *lio, int op, int loc, int *value)
50993 mdio_cmd_rsp = (struct oct_mdio_cmd_resp *)sc->virtrptr;
50994 mdio_cmd = (struct oct_mdio_cmd *)sc->virtdptr;
50995
50996 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 0;
50997 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 0;
50998 mdio_cmd_ctx->octeon_id = lio_get_device_id(oct_dev);
50999 mdio_cmd->op = op;
51000 mdio_cmd->mdio_addr = loc;
51001 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
51002 index f683d97..8c4419a 100644
51003 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
51004 +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
51005 @@ -1726,7 +1726,7 @@ static void if_cfg_callback(struct octeon_device *oct,
51006 if (resp->status)
51007 dev_err(&oct->pci_dev->dev, "nic if cfg instruction failed. Status: %llx\n",
51008 CVM_CAST64(resp->status));
51009 - ACCESS_ONCE(ctx->cond) = 1;
51010 + ACCESS_ONCE_RW(ctx->cond) = 1;
51011
51012 /* This barrier is required to be sure that the response has been
51013 * written fully before waking up the handler
51014 @@ -3176,7 +3176,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
51015 dev_dbg(&octeon_dev->pci_dev->dev,
51016 "requesting config for interface %d, iqs %d, oqs %d\n",
51017 i, num_iqueues, num_oqueues);
51018 - ACCESS_ONCE(ctx->cond) = 0;
51019 + ACCESS_ONCE_RW(ctx->cond) = 0;
51020 ctx->octeon_id = lio_get_device_id(octeon_dev);
51021 init_waitqueue_head(&ctx->wc);
51022
51023 @@ -3239,8 +3239,11 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
51024 props = &octeon_dev->props[i];
51025 props->netdev = netdev;
51026
51027 - if (num_iqueues > 1)
51028 - lionetdevops.ndo_select_queue = select_q;
51029 + if (num_iqueues > 1) {
51030 + pax_open_kernel();
51031 + *(void **)&lionetdevops.ndo_select_queue = select_q;
51032 + pax_close_kernel();
51033 + }
51034
51035 /* Associate the routines that will handle different
51036 * netdev tasks.
51037 diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51038 index 8cffcdf..aadf043 100644
51039 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51040 +++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51041 @@ -87,7 +87,7 @@ typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
51042 */
51043 struct l2t_skb_cb {
51044 arp_failure_handler_func arp_failure_handler;
51045 -};
51046 +} __no_const;
51047
51048 #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
51049
51050 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
51051 index 8966f31..e15a101 100644
51052 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
51053 +++ b/drivers/net/ethernet/dec/tulip/de4x5.c
51054 @@ -5373,7 +5373,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51055 for (i=0; i<ETH_ALEN; i++) {
51056 tmp.addr[i] = dev->dev_addr[i];
51057 }
51058 - if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51059 + if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51060 break;
51061
51062 case DE4X5_SET_HWADDR: /* Set the hardware address */
51063 @@ -5413,7 +5413,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51064 spin_lock_irqsave(&lp->lock, flags);
51065 memcpy(&statbuf, &lp->pktStats, ioc->len);
51066 spin_unlock_irqrestore(&lp->lock, flags);
51067 - if (copy_to_user(ioc->data, &statbuf, ioc->len))
51068 + if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
51069 return -EFAULT;
51070 break;
51071 }
51072 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
51073 index eb48a97..60c72cd 100644
51074 --- a/drivers/net/ethernet/emulex/benet/be_main.c
51075 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
51076 @@ -551,7 +551,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
51077
51078 if (wrapped)
51079 newacc += 65536;
51080 - ACCESS_ONCE(*acc) = newacc;
51081 + ACCESS_ONCE_RW(*acc) = newacc;
51082 }
51083
51084 static void populate_erx_stats(struct be_adapter *adapter,
51085 diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
51086 index 6d0c5d5..55be363 100644
51087 --- a/drivers/net/ethernet/faraday/ftgmac100.c
51088 +++ b/drivers/net/ethernet/faraday/ftgmac100.c
51089 @@ -30,6 +30,8 @@
51090 #include <linux/netdevice.h>
51091 #include <linux/phy.h>
51092 #include <linux/platform_device.h>
51093 +#include <linux/interrupt.h>
51094 +#include <linux/irqreturn.h>
51095 #include <net/ip.h>
51096
51097 #include "ftgmac100.h"
51098 diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
51099 index dce5f7b..2433466 100644
51100 --- a/drivers/net/ethernet/faraday/ftmac100.c
51101 +++ b/drivers/net/ethernet/faraday/ftmac100.c
51102 @@ -31,6 +31,8 @@
51103 #include <linux/module.h>
51104 #include <linux/netdevice.h>
51105 #include <linux/platform_device.h>
51106 +#include <linux/interrupt.h>
51107 +#include <linux/irqreturn.h>
51108
51109 #include "ftmac100.h"
51110
51111 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51112 index 8c40d6e..87ecdb3 100644
51113 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51114 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51115 @@ -418,7 +418,7 @@ void i40e_ptp_set_increment(struct i40e_pf *pf)
51116 wr32(hw, I40E_PRTTSYN_INC_H, incval >> 32);
51117
51118 /* Update the base adjustement value. */
51119 - ACCESS_ONCE(pf->ptp_base_adj) = incval;
51120 + ACCESS_ONCE_RW(pf->ptp_base_adj) = incval;
51121 smp_mb(); /* Force the above update. */
51122 }
51123
51124 diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51125 index e5ba040..d47531c 100644
51126 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51127 +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51128 @@ -782,7 +782,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
51129 }
51130
51131 /* update the base incval used to calculate frequency adjustment */
51132 - ACCESS_ONCE(adapter->base_incval) = incval;
51133 + ACCESS_ONCE_RW(adapter->base_incval) = incval;
51134 smp_mb();
51135
51136 /* need lock to prevent incorrect read while modifying cyclecounter */
51137 diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51138 index 4421bf54..c07afb0 100644
51139 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51140 +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51141 @@ -475,8 +475,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
51142 wmb();
51143
51144 /* we want to dirty this cache line once */
51145 - ACCESS_ONCE(ring->last_nr_txbb) = last_nr_txbb;
51146 - ACCESS_ONCE(ring->cons) = ring_cons + txbbs_skipped;
51147 + ACCESS_ONCE_RW(ring->last_nr_txbb) = last_nr_txbb;
51148 + ACCESS_ONCE_RW(ring->cons) = ring_cons + txbbs_skipped;
51149
51150 netdev_tx_completed_queue(ring->tx_queue, packets, bytes);
51151
51152 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51153 index 443632d..7b43236 100644
51154 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51155 +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51156 @@ -2025,8 +2025,11 @@ static void mlx5e_build_netdev(struct net_device *netdev)
51157
51158 SET_NETDEV_DEV(netdev, &mdev->pdev->dev);
51159
51160 - if (priv->params.num_tc > 1)
51161 - mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51162 + if (priv->params.num_tc > 1) {
51163 + pax_open_kernel();
51164 + *(void **)&mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51165 + pax_close_kernel();
51166 + }
51167
51168 netdev->netdev_ops = &mlx5e_netdev_ops;
51169 netdev->watchdog_timeo = 15 * HZ;
51170 diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51171 index 6223930..975033d 100644
51172 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
51173 +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51174 @@ -3457,7 +3457,10 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51175 struct __vxge_hw_fifo *fifo;
51176 struct vxge_hw_fifo_config *config;
51177 u32 txdl_size, txdl_per_memblock;
51178 - struct vxge_hw_mempool_cbs fifo_mp_callback;
51179 + static struct vxge_hw_mempool_cbs fifo_mp_callback = {
51180 + .item_func_alloc = __vxge_hw_fifo_mempool_item_alloc,
51181 + };
51182 +
51183 struct __vxge_hw_virtualpath *vpath;
51184
51185 if ((vp == NULL) || (attr == NULL)) {
51186 @@ -3540,8 +3543,6 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51187 goto exit;
51188 }
51189
51190 - fifo_mp_callback.item_func_alloc = __vxge_hw_fifo_mempool_item_alloc;
51191 -
51192 fifo->mempool =
51193 __vxge_hw_mempool_create(vpath->hldev,
51194 fifo->config->memblock_size,
51195 diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
51196 index 75e88f4..1db3bf6 100644
51197 --- a/drivers/net/ethernet/nvidia/forcedeth.c
51198 +++ b/drivers/net/ethernet/nvidia/forcedeth.c
51199 @@ -357,8 +357,8 @@ struct ring_desc {
51200 };
51201
51202 struct ring_desc_ex {
51203 - __le32 bufhigh;
51204 - __le32 buflow;
51205 + __le32 bufhigh __intentional_overflow(0);
51206 + __le32 buflow __intentional_overflow(0);
51207 __le32 txvlan;
51208 __le32 flaglen;
51209 };
51210 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51211 index bf89216..4044d8c 100644
51212 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51213 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51214 @@ -2324,7 +2324,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
51215 max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
51216 } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
51217 ahw->nic_mode = QLCNIC_DEFAULT_MODE;
51218 - adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51219 + pax_open_kernel();
51220 + *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51221 + pax_close_kernel();
51222 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51223 max_sds_rings = QLCNIC_MAX_SDS_RINGS;
51224 max_tx_rings = QLCNIC_MAX_TX_RINGS;
51225 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51226 index be7d7a6..a8983f8 100644
51227 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51228 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51229 @@ -207,17 +207,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
51230 case QLCNIC_NON_PRIV_FUNC:
51231 ahw->op_mode = QLCNIC_NON_PRIV_FUNC;
51232 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51233 - nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51234 + pax_open_kernel();
51235 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51236 + pax_close_kernel();
51237 break;
51238 case QLCNIC_PRIV_FUNC:
51239 ahw->op_mode = QLCNIC_PRIV_FUNC;
51240 ahw->idc.state_entry = qlcnic_83xx_idc_vnic_pf_entry;
51241 - nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51242 + pax_open_kernel();
51243 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51244 + pax_close_kernel();
51245 break;
51246 case QLCNIC_MGMT_FUNC:
51247 ahw->op_mode = QLCNIC_MGMT_FUNC;
51248 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51249 - nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51250 + pax_open_kernel();
51251 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51252 + pax_close_kernel();
51253 break;
51254 default:
51255 dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
51256 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51257 index cda9e60..4019992 100644
51258 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51259 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51260 @@ -1285,7 +1285,7 @@ flash_temp:
51261 int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
51262 {
51263 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump;
51264 - static const struct qlcnic_dump_operations *fw_dump_ops;
51265 + const struct qlcnic_dump_operations *fw_dump_ops;
51266 struct qlcnic_83xx_dump_template_hdr *hdr_83xx;
51267 u32 entry_offset, dump, no_entries, buf_offset = 0;
51268 int i, k, ops_cnt, ops_index, dump_size = 0;
51269 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
51270 index 79ef799..59bbd1f 100644
51271 --- a/drivers/net/ethernet/realtek/r8169.c
51272 +++ b/drivers/net/ethernet/realtek/r8169.c
51273 @@ -798,22 +798,22 @@ struct rtl8169_private {
51274 struct mdio_ops {
51275 void (*write)(struct rtl8169_private *, int, int);
51276 int (*read)(struct rtl8169_private *, int);
51277 - } mdio_ops;
51278 + } __no_const mdio_ops;
51279
51280 struct pll_power_ops {
51281 void (*down)(struct rtl8169_private *);
51282 void (*up)(struct rtl8169_private *);
51283 - } pll_power_ops;
51284 + } __no_const pll_power_ops;
51285
51286 struct jumbo_ops {
51287 void (*enable)(struct rtl8169_private *);
51288 void (*disable)(struct rtl8169_private *);
51289 - } jumbo_ops;
51290 + } __no_const jumbo_ops;
51291
51292 struct csi_ops {
51293 void (*write)(struct rtl8169_private *, int, int);
51294 u32 (*read)(struct rtl8169_private *, int);
51295 - } csi_ops;
51296 + } __no_const csi_ops;
51297
51298 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
51299 int (*get_settings)(struct net_device *, struct ethtool_cmd *);
51300 diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
51301 index ad62615..a4c124d 100644
51302 --- a/drivers/net/ethernet/sfc/ptp.c
51303 +++ b/drivers/net/ethernet/sfc/ptp.c
51304 @@ -832,7 +832,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
51305 ptp->start.dma_addr);
51306
51307 /* Clear flag that signals MC ready */
51308 - ACCESS_ONCE(*start) = 0;
51309 + ACCESS_ONCE_RW(*start) = 0;
51310 rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
51311 MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
51312 EFX_BUG_ON_PARANOID(rc);
51313 diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51314 index 3f20bb1..59add41 100644
51315 --- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51316 +++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51317 @@ -140,8 +140,8 @@ void dwmac_mmc_ctrl(void __iomem *ioaddr, unsigned int mode)
51318
51319 writel(value, ioaddr + MMC_CNTRL);
51320
51321 - pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51322 - MMC_CNTRL, value);
51323 +// pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51324 +// MMC_CNTRL, value);
51325 }
51326
51327 /* To mask all all interrupts.*/
51328 diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
51329 index 2b7550c..f75bc6c 100644
51330 --- a/drivers/net/ethernet/via/via-rhine.c
51331 +++ b/drivers/net/ethernet/via/via-rhine.c
51332 @@ -2600,7 +2600,7 @@ static struct platform_driver rhine_driver_platform = {
51333 }
51334 };
51335
51336 -static struct dmi_system_id rhine_dmi_table[] __initdata = {
51337 +static const struct dmi_system_id rhine_dmi_table[] __initconst = {
51338 {
51339 .ident = "EPIA-M",
51340 .matches = {
51341 diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
51342 index 445071c..6be9e60 100644
51343 --- a/drivers/net/geneve.c
51344 +++ b/drivers/net/geneve.c
51345 @@ -971,7 +971,7 @@ nla_put_failure:
51346 return -EMSGSIZE;
51347 }
51348
51349 -static struct rtnl_link_ops geneve_link_ops __read_mostly = {
51350 +static struct rtnl_link_ops geneve_link_ops = {
51351 .kind = "geneve",
51352 .maxtype = IFLA_GENEVE_MAX,
51353 .policy = geneve_policy,
51354 diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
51355 index 5fa98f5..322f0f8 100644
51356 --- a/drivers/net/hyperv/hyperv_net.h
51357 +++ b/drivers/net/hyperv/hyperv_net.h
51358 @@ -178,7 +178,7 @@ struct rndis_device {
51359 enum rndis_device_state state;
51360 bool link_state;
51361 bool link_change;
51362 - atomic_t new_req_id;
51363 + atomic_unchecked_t new_req_id;
51364
51365 spinlock_t request_lock;
51366 struct list_head req_list;
51367 diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
51368 index 5931a79..134ce31 100644
51369 --- a/drivers/net/hyperv/rndis_filter.c
51370 +++ b/drivers/net/hyperv/rndis_filter.c
51371 @@ -101,7 +101,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
51372 * template
51373 */
51374 set = &rndis_msg->msg.set_req;
51375 - set->req_id = atomic_inc_return(&dev->new_req_id);
51376 + set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51377
51378 /* Add to the request list */
51379 spin_lock_irqsave(&dev->request_lock, flags);
51380 @@ -924,7 +924,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
51381
51382 /* Setup the rndis set */
51383 halt = &request->request_msg.msg.halt_req;
51384 - halt->req_id = atomic_inc_return(&dev->new_req_id);
51385 + halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51386
51387 /* Ignore return since this msg is optional. */
51388 rndis_filter_send_request(dev, request);
51389 @@ -1138,8 +1138,7 @@ int rndis_filter_device_add(struct hv_device *dev,
51390 if (net_device->num_chn == 1)
51391 goto out;
51392
51393 - net_device->sub_cb_buf = vzalloc((net_device->num_chn - 1) *
51394 - NETVSC_PACKET_SIZE);
51395 + net_device->sub_cb_buf = vzalloc(net_device->num_sc_offered * NETVSC_PACKET_SIZE);
51396 if (!net_device->sub_cb_buf) {
51397 net_device->num_chn = 1;
51398 dev_info(&dev->device, "No memory for subchannels.\n");
51399 diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
51400 index cc56fac..c15b884 100644
51401 --- a/drivers/net/ifb.c
51402 +++ b/drivers/net/ifb.c
51403 @@ -287,7 +287,7 @@ static int ifb_validate(struct nlattr *tb[], struct nlattr *data[])
51404 return 0;
51405 }
51406
51407 -static struct rtnl_link_ops ifb_link_ops __read_mostly = {
51408 +static struct rtnl_link_ops ifb_link_ops = {
51409 .kind = "ifb",
51410 .priv_size = sizeof(struct ifb_dev_private),
51411 .setup = ifb_setup,
51412 diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
51413 index 207f62e..af3f5e5 100644
51414 --- a/drivers/net/ipvlan/ipvlan_core.c
51415 +++ b/drivers/net/ipvlan/ipvlan_core.c
51416 @@ -466,7 +466,7 @@ static void ipvlan_multicast_enqueue(struct ipvl_port *port,
51417 schedule_work(&port->wq);
51418 } else {
51419 spin_unlock(&port->backlog.lock);
51420 - atomic_long_inc(&skb->dev->rx_dropped);
51421 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51422 kfree_skb(skb);
51423 }
51424 }
51425 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
51426 index 47da435..a4a7bd8 100644
51427 --- a/drivers/net/macvlan.c
51428 +++ b/drivers/net/macvlan.c
51429 @@ -335,7 +335,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
51430 free_nskb:
51431 kfree_skb(nskb);
51432 err:
51433 - atomic_long_inc(&skb->dev->rx_dropped);
51434 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51435 }
51436
51437 static void macvlan_flush_sources(struct macvlan_port *port,
51438 @@ -1481,13 +1481,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
51439 int macvlan_link_register(struct rtnl_link_ops *ops)
51440 {
51441 /* common fields */
51442 - ops->priv_size = sizeof(struct macvlan_dev);
51443 - ops->validate = macvlan_validate;
51444 - ops->maxtype = IFLA_MACVLAN_MAX;
51445 - ops->policy = macvlan_policy;
51446 - ops->changelink = macvlan_changelink;
51447 - ops->get_size = macvlan_get_size;
51448 - ops->fill_info = macvlan_fill_info;
51449 + pax_open_kernel();
51450 + *(size_t *)&ops->priv_size = sizeof(struct macvlan_dev);
51451 + *(void **)&ops->validate = macvlan_validate;
51452 + *(int *)&ops->maxtype = IFLA_MACVLAN_MAX;
51453 + *(const void **)&ops->policy = macvlan_policy;
51454 + *(void **)&ops->changelink = macvlan_changelink;
51455 + *(void **)&ops->get_size = macvlan_get_size;
51456 + *(void **)&ops->fill_info = macvlan_fill_info;
51457 + pax_close_kernel();
51458
51459 return rtnl_link_register(ops);
51460 };
51461 @@ -1573,7 +1575,7 @@ static int macvlan_device_event(struct notifier_block *unused,
51462 return NOTIFY_DONE;
51463 }
51464
51465 -static struct notifier_block macvlan_notifier_block __read_mostly = {
51466 +static struct notifier_block macvlan_notifier_block = {
51467 .notifier_call = macvlan_device_event,
51468 };
51469
51470 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
51471 index 197c939..5f7bee5 100644
51472 --- a/drivers/net/macvtap.c
51473 +++ b/drivers/net/macvtap.c
51474 @@ -485,7 +485,7 @@ static void macvtap_setup(struct net_device *dev)
51475 dev->tx_queue_len = TUN_READQ_SIZE;
51476 }
51477
51478 -static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
51479 +static struct rtnl_link_ops macvtap_link_ops = {
51480 .kind = "macvtap",
51481 .setup = macvtap_setup,
51482 .newlink = macvtap_newlink,
51483 @@ -1090,7 +1090,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
51484
51485 ret = 0;
51486 u = q->flags;
51487 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51488 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51489 put_user(u, &ifr->ifr_flags))
51490 ret = -EFAULT;
51491 macvtap_put_vlan(vlan);
51492 @@ -1173,8 +1173,8 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
51493 }
51494 ret = 0;
51495 u = vlan->dev->type;
51496 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51497 - copy_to_user(&ifr->ifr_hwaddr.sa_data, vlan->dev->dev_addr, ETH_ALEN) ||
51498 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51499 + copy_to_user(ifr->ifr_hwaddr.sa_data, vlan->dev->dev_addr, ETH_ALEN) ||
51500 put_user(u, &ifr->ifr_hwaddr.sa_family))
51501 ret = -EFAULT;
51502 macvtap_put_vlan(vlan);
51503 @@ -1308,7 +1308,7 @@ static int macvtap_device_event(struct notifier_block *unused,
51504 return NOTIFY_DONE;
51505 }
51506
51507 -static struct notifier_block macvtap_notifier_block __read_mostly = {
51508 +static struct notifier_block macvtap_notifier_block = {
51509 .notifier_call = macvtap_device_event,
51510 };
51511
51512 diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
51513 index 7b7c70e..a92dc83 100644
51514 --- a/drivers/net/nlmon.c
51515 +++ b/drivers/net/nlmon.c
51516 @@ -154,7 +154,7 @@ static int nlmon_validate(struct nlattr *tb[], struct nlattr *data[])
51517 return 0;
51518 }
51519
51520 -static struct rtnl_link_ops nlmon_link_ops __read_mostly = {
51521 +static struct rtnl_link_ops nlmon_link_ops = {
51522 .kind = "nlmon",
51523 .priv_size = sizeof(struct nlmon),
51524 .setup = nlmon_setup,
51525 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
51526 index f761288..a1024be 100644
51527 --- a/drivers/net/phy/phy_device.c
51528 +++ b/drivers/net/phy/phy_device.c
51529 @@ -218,7 +218,7 @@ EXPORT_SYMBOL(phy_device_create);
51530 * zero on success.
51531 *
51532 */
51533 -static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
51534 +static int get_phy_c45_ids(struct mii_bus *bus, int addr, int *phy_id,
51535 struct phy_c45_device_ids *c45_ids) {
51536 int phy_reg;
51537 int i, reg_addr;
51538 @@ -296,7 +296,7 @@ retry: reg_addr = MII_ADDR_C45 | i << 16 | MDIO_DEVS2;
51539 * its return value is in turn returned.
51540 *
51541 */
51542 -static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51543 +static int get_phy_id(struct mii_bus *bus, int addr, int *phy_id,
51544 bool is_c45, struct phy_c45_device_ids *c45_ids)
51545 {
51546 int phy_reg;
51547 @@ -334,7 +334,7 @@ static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51548 struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
51549 {
51550 struct phy_c45_device_ids c45_ids = {0};
51551 - u32 phy_id = 0;
51552 + int phy_id = 0;
51553 int r;
51554
51555 r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
51556 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
51557 index ed00446..943fe2c 100644
51558 --- a/drivers/net/ppp/ppp_generic.c
51559 +++ b/drivers/net/ppp/ppp_generic.c
51560 @@ -1047,7 +1047,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51561 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
51562 struct ppp_stats stats;
51563 struct ppp_comp_stats cstats;
51564 - char *vers;
51565
51566 switch (cmd) {
51567 case SIOCGPPPSTATS:
51568 @@ -1069,8 +1068,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51569 break;
51570
51571 case SIOCGPPPVER:
51572 - vers = PPP_VERSION;
51573 - if (copy_to_user(addr, vers, strlen(vers) + 1))
51574 + if (copy_to_user(addr, PPP_VERSION, sizeof(PPP_VERSION)))
51575 break;
51576 err = 0;
51577 break;
51578 diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
51579 index 5e0b432..0a37f84 100644
51580 --- a/drivers/net/ppp/pppoe.c
51581 +++ b/drivers/net/ppp/pppoe.c
51582 @@ -568,6 +568,9 @@ static int pppoe_create(struct net *net, struct socket *sock, int kern)
51583 sk->sk_family = PF_PPPOX;
51584 sk->sk_protocol = PX_PROTO_OE;
51585
51586 + INIT_WORK(&pppox_sk(sk)->proto.pppoe.padt_work,
51587 + pppoe_unbind_sock_work);
51588 +
51589 return 0;
51590 }
51591
51592 @@ -632,8 +635,6 @@ static int pppoe_connect(struct socket *sock, struct sockaddr *uservaddr,
51593
51594 lock_sock(sk);
51595
51596 - INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
51597 -
51598 error = -EINVAL;
51599 if (sp->sa_protocol != PX_PROTO_OE)
51600 goto end;
51601 @@ -663,8 +664,13 @@ static int pppoe_connect(struct socket *sock, struct sockaddr *uservaddr,
51602 po->pppoe_dev = NULL;
51603 }
51604
51605 - memset(sk_pppox(po) + 1, 0,
51606 - sizeof(struct pppox_sock) - sizeof(struct sock));
51607 + po->pppoe_ifindex = 0;
51608 + memset(&po->pppoe_pa, 0, sizeof(po->pppoe_pa));
51609 + memset(&po->pppoe_relay, 0, sizeof(po->pppoe_relay));
51610 + memset(&po->chan, 0, sizeof(po->chan));
51611 + po->next = NULL;
51612 + po->num = 0;
51613 +
51614 sk->sk_state = PPPOX_NONE;
51615 }
51616
51617 diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c
51618 index 686f37d..b910cae 100644
51619 --- a/drivers/net/ppp/pptp.c
51620 +++ b/drivers/net/ppp/pptp.c
51621 @@ -418,6 +418,9 @@ static int pptp_bind(struct socket *sock, struct sockaddr *uservaddr,
51622 struct pptp_opt *opt = &po->proto.pptp;
51623 int error = 0;
51624
51625 + if (sockaddr_len < sizeof(struct sockaddr_pppox))
51626 + return -EINVAL;
51627 +
51628 lock_sock(sk);
51629
51630 opt->src_addr = sp->sa_addr.pptp;
51631 @@ -439,6 +442,9 @@ static int pptp_connect(struct socket *sock, struct sockaddr *uservaddr,
51632 struct flowi4 fl4;
51633 int error = 0;
51634
51635 + if (sockaddr_len < sizeof(struct sockaddr_pppox))
51636 + return -EINVAL;
51637 +
51638 if (sp->sa_protocol != PX_PROTO_PPTP)
51639 return -EINVAL;
51640
51641 diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c
51642 index 079f7ad..7e59810 100644
51643 --- a/drivers/net/slip/slhc.c
51644 +++ b/drivers/net/slip/slhc.c
51645 @@ -94,6 +94,9 @@ slhc_init(int rslots, int tslots)
51646 register struct cstate *ts;
51647 struct slcompress *comp;
51648
51649 + if (rslots <= 0 || tslots <= 0 || rslots >= 256 || tslots >= 256)
51650 + goto out_fail;
51651 +
51652 comp = kzalloc(sizeof(struct slcompress), GFP_KERNEL);
51653 if (! comp)
51654 goto out_fail;
51655 @@ -487,7 +490,7 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize)
51656 register struct tcphdr *thp;
51657 register struct iphdr *ip;
51658 register struct cstate *cs;
51659 - int len, hdrlen;
51660 + long len, hdrlen;
51661 unsigned char *cp = icp;
51662
51663 /* We've got a compressed packet; read the change byte */
51664 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
51665 index 651d35e..4249181 100644
51666 --- a/drivers/net/team/team.c
51667 +++ b/drivers/net/team/team.c
51668 @@ -2107,7 +2107,7 @@ static unsigned int team_get_num_rx_queues(void)
51669 return TEAM_DEFAULT_NUM_RX_QUEUES;
51670 }
51671
51672 -static struct rtnl_link_ops team_link_ops __read_mostly = {
51673 +static struct rtnl_link_ops team_link_ops = {
51674 .kind = DRV_NAME,
51675 .priv_size = sizeof(struct team),
51676 .setup = team_setup,
51677 @@ -2897,7 +2897,7 @@ static int team_device_event(struct notifier_block *unused,
51678 return NOTIFY_DONE;
51679 }
51680
51681 -static struct notifier_block team_notifier_block __read_mostly = {
51682 +static struct notifier_block team_notifier_block = {
51683 .notifier_call = team_device_event,
51684 };
51685
51686 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
51687 index 976aa97..c1efed2 100644
51688 --- a/drivers/net/tun.c
51689 +++ b/drivers/net/tun.c
51690 @@ -1473,7 +1473,7 @@ static int tun_validate(struct nlattr *tb[], struct nlattr *data[])
51691 return -EINVAL;
51692 }
51693
51694 -static struct rtnl_link_ops tun_link_ops __read_mostly = {
51695 +static struct rtnl_link_ops tun_link_ops = {
51696 .kind = DRV_NAME,
51697 .priv_size = sizeof(struct tun_struct),
51698 .setup = tun_setup,
51699 @@ -1872,7 +1872,7 @@ unlock:
51700 }
51701
51702 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51703 - unsigned long arg, int ifreq_len)
51704 + unsigned long arg, size_t ifreq_len)
51705 {
51706 struct tun_file *tfile = file->private_data;
51707 struct tun_struct *tun;
51708 @@ -1886,6 +1886,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51709 int le;
51710 int ret;
51711
51712 + if (ifreq_len > sizeof ifr)
51713 + return -EFAULT;
51714 +
51715 if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == 0x89) {
51716 if (copy_from_user(&ifr, argp, ifreq_len))
51717 return -EFAULT;
51718 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
51719 index 111d907..1ee643e 100644
51720 --- a/drivers/net/usb/hso.c
51721 +++ b/drivers/net/usb/hso.c
51722 @@ -70,7 +70,7 @@
51723 #include <asm/byteorder.h>
51724 #include <linux/serial_core.h>
51725 #include <linux/serial.h>
51726 -
51727 +#include <asm/local.h>
51728
51729 #define MOD_AUTHOR "Option Wireless"
51730 #define MOD_DESCRIPTION "USB High Speed Option driver"
51731 @@ -1183,7 +1183,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
51732 struct urb *urb;
51733
51734 urb = serial->rx_urb[0];
51735 - if (serial->port.count > 0) {
51736 + if (atomic_read(&serial->port.count) > 0) {
51737 count = put_rxbuf_data(urb, serial);
51738 if (count == -1)
51739 return;
51740 @@ -1221,7 +1221,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
51741 DUMP1(urb->transfer_buffer, urb->actual_length);
51742
51743 /* Anyone listening? */
51744 - if (serial->port.count == 0)
51745 + if (atomic_read(&serial->port.count) == 0)
51746 return;
51747
51748 if (serial->parent->port_spec & HSO_INFO_CRC_BUG)
51749 @@ -1282,8 +1282,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
51750 tty_port_tty_set(&serial->port, tty);
51751
51752 /* check for port already opened, if not set the termios */
51753 - serial->port.count++;
51754 - if (serial->port.count == 1) {
51755 + if (atomic_inc_return(&serial->port.count) == 1) {
51756 serial->rx_state = RX_IDLE;
51757 /* Force default termio settings */
51758 _hso_serial_set_termios(tty, NULL);
51759 @@ -1293,7 +1292,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
51760 result = hso_start_serial_device(serial->parent, GFP_KERNEL);
51761 if (result) {
51762 hso_stop_serial_device(serial->parent);
51763 - serial->port.count--;
51764 + atomic_dec(&serial->port.count);
51765 } else {
51766 kref_get(&serial->parent->ref);
51767 }
51768 @@ -1331,10 +1330,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
51769
51770 /* reset the rts and dtr */
51771 /* do the actual close */
51772 - serial->port.count--;
51773 + atomic_dec(&serial->port.count);
51774
51775 - if (serial->port.count <= 0) {
51776 - serial->port.count = 0;
51777 + if (atomic_read(&serial->port.count) <= 0) {
51778 + atomic_set(&serial->port.count, 0);
51779 tty_port_tty_set(&serial->port, NULL);
51780 if (!usb_gone)
51781 hso_stop_serial_device(serial->parent);
51782 @@ -1417,7 +1416,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
51783
51784 /* the actual setup */
51785 spin_lock_irqsave(&serial->serial_lock, flags);
51786 - if (serial->port.count)
51787 + if (atomic_read(&serial->port.count))
51788 _hso_serial_set_termios(tty, old);
51789 else
51790 tty->termios = *old;
51791 @@ -1891,7 +1890,7 @@ static void intr_callback(struct urb *urb)
51792 D1("Pending read interrupt on port %d\n", i);
51793 spin_lock(&serial->serial_lock);
51794 if (serial->rx_state == RX_IDLE &&
51795 - serial->port.count > 0) {
51796 + atomic_read(&serial->port.count) > 0) {
51797 /* Setup and send a ctrl req read on
51798 * port i */
51799 if (!serial->rx_urb_filled[0]) {
51800 @@ -3058,7 +3057,7 @@ static int hso_resume(struct usb_interface *iface)
51801 /* Start all serial ports */
51802 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
51803 if (serial_table[i] && (serial_table[i]->interface == iface)) {
51804 - if (dev2ser(serial_table[i])->port.count) {
51805 + if (atomic_read(&dev2ser(serial_table[i])->port.count)) {
51806 result =
51807 hso_start_serial_device(serial_table[i], GFP_NOIO);
51808 hso_kick_transmit(dev2ser(serial_table[i]));
51809 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
51810 index d9427ca..37520a8 100644
51811 --- a/drivers/net/usb/r8152.c
51812 +++ b/drivers/net/usb/r8152.c
51813 @@ -615,7 +615,7 @@ struct r8152 {
51814 int (*eee_get)(struct r8152 *, struct ethtool_eee *);
51815 int (*eee_set)(struct r8152 *, struct ethtool_eee *);
51816 bool (*in_nway)(struct r8152 *);
51817 - } rtl_ops;
51818 + } __no_const rtl_ops;
51819
51820 int intr_interval;
51821 u32 saved_wolopts;
51822 diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
51823 index a2515887..6d13233 100644
51824 --- a/drivers/net/usb/sierra_net.c
51825 +++ b/drivers/net/usb/sierra_net.c
51826 @@ -51,7 +51,7 @@ static const char driver_name[] = "sierra_net";
51827 /* atomic counter partially included in MAC address to make sure 2 devices
51828 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
51829 */
51830 -static atomic_t iface_counter = ATOMIC_INIT(0);
51831 +static atomic_unchecked_t iface_counter = ATOMIC_INIT(0);
51832
51833 /*
51834 * SYNC Timer Delay definition used to set the expiry time
51835 @@ -697,7 +697,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
51836 dev->net->netdev_ops = &sierra_net_device_ops;
51837
51838 /* change MAC addr to include, ifacenum, and to be unique */
51839 - dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
51840 + dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return_unchecked(&iface_counter);
51841 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
51842
51843 /* we will have to manufacture ethernet headers, prepare template */
51844 diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
51845 index d8838ded..6c93f77 100644
51846 --- a/drivers/net/virtio_net.c
51847 +++ b/drivers/net/virtio_net.c
51848 @@ -48,7 +48,7 @@ module_param(gso, bool, 0444);
51849 DECLARE_EWMA(pkt_len, 1, 64)
51850
51851 /* Minimum alignment for mergeable packet buffers. */
51852 -#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256)
51853 +#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256UL)
51854
51855 #define VIRTNET_DRIVER_VERSION "1.0.0"
51856
51857 diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
51858 index c9e309c..745a638 100644
51859 --- a/drivers/net/vrf.c
51860 +++ b/drivers/net/vrf.c
51861 @@ -618,7 +618,7 @@ static const struct nla_policy vrf_nl_policy[IFLA_VRF_MAX + 1] = {
51862 [IFLA_VRF_TABLE] = { .type = NLA_U32 },
51863 };
51864
51865 -static struct rtnl_link_ops vrf_link_ops __read_mostly = {
51866 +static struct rtnl_link_ops vrf_link_ops = {
51867 .kind = DRV_NAME,
51868 .priv_size = sizeof(struct net_vrf),
51869
51870 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
51871 index c1587ec..dcd13ca 100644
51872 --- a/drivers/net/vxlan.c
51873 +++ b/drivers/net/vxlan.c
51874 @@ -3037,7 +3037,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
51875 return vxlan->net;
51876 }
51877
51878 -static struct rtnl_link_ops vxlan_link_ops __read_mostly = {
51879 +static struct rtnl_link_ops vxlan_link_ops = {
51880 .kind = "vxlan",
51881 .maxtype = IFLA_VXLAN_MAX,
51882 .policy = vxlan_policy,
51883 @@ -3085,7 +3085,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
51884 return NOTIFY_DONE;
51885 }
51886
51887 -static struct notifier_block vxlan_notifier_block __read_mostly = {
51888 +static struct notifier_block vxlan_notifier_block = {
51889 .notifier_call = vxlan_lowerdev_event,
51890 };
51891
51892 diff --git a/drivers/net/wan/lmc/lmc_media.c b/drivers/net/wan/lmc/lmc_media.c
51893 index 5920c99..ff2e4a5 100644
51894 --- a/drivers/net/wan/lmc/lmc_media.c
51895 +++ b/drivers/net/wan/lmc/lmc_media.c
51896 @@ -95,62 +95,63 @@ static inline void write_av9110_bit (lmc_softc_t *, int);
51897 static void write_av9110(lmc_softc_t *, u32, u32, u32, u32, u32);
51898
51899 lmc_media_t lmc_ds3_media = {
51900 - lmc_ds3_init, /* special media init stuff */
51901 - lmc_ds3_default, /* reset to default state */
51902 - lmc_ds3_set_status, /* reset status to state provided */
51903 - lmc_dummy_set_1, /* set clock source */
51904 - lmc_dummy_set2_1, /* set line speed */
51905 - lmc_ds3_set_100ft, /* set cable length */
51906 - lmc_ds3_set_scram, /* set scrambler */
51907 - lmc_ds3_get_link_status, /* get link status */
51908 - lmc_dummy_set_1, /* set link status */
51909 - lmc_ds3_set_crc_length, /* set CRC length */
51910 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51911 - lmc_ds3_watchdog
51912 + .init = lmc_ds3_init, /* special media init stuff */
51913 + .defaults = lmc_ds3_default, /* reset to default state */
51914 + .set_status = lmc_ds3_set_status, /* reset status to state provided */
51915 + .set_clock_source = lmc_dummy_set_1, /* set clock source */
51916 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51917 + .set_cable_length = lmc_ds3_set_100ft, /* set cable length */
51918 + .set_scrambler = lmc_ds3_set_scram, /* set scrambler */
51919 + .get_link_status = lmc_ds3_get_link_status, /* get link status */
51920 + .set_link_status = lmc_dummy_set_1, /* set link status */
51921 + .set_crc_length = lmc_ds3_set_crc_length, /* set CRC length */
51922 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51923 + .watchdog = lmc_ds3_watchdog
51924 };
51925
51926 lmc_media_t lmc_hssi_media = {
51927 - lmc_hssi_init, /* special media init stuff */
51928 - lmc_hssi_default, /* reset to default state */
51929 - lmc_hssi_set_status, /* reset status to state provided */
51930 - lmc_hssi_set_clock, /* set clock source */
51931 - lmc_dummy_set2_1, /* set line speed */
51932 - lmc_dummy_set_1, /* set cable length */
51933 - lmc_dummy_set_1, /* set scrambler */
51934 - lmc_hssi_get_link_status, /* get link status */
51935 - lmc_hssi_set_link_status, /* set link status */
51936 - lmc_hssi_set_crc_length, /* set CRC length */
51937 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51938 - lmc_hssi_watchdog
51939 + .init = lmc_hssi_init, /* special media init stuff */
51940 + .defaults = lmc_hssi_default, /* reset to default state */
51941 + .set_status = lmc_hssi_set_status, /* reset status to state provided */
51942 + .set_clock_source = lmc_hssi_set_clock, /* set clock source */
51943 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51944 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51945 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
51946 + .get_link_status = lmc_hssi_get_link_status, /* get link status */
51947 + .set_link_status = lmc_hssi_set_link_status, /* set link status */
51948 + .set_crc_length = lmc_hssi_set_crc_length, /* set CRC length */
51949 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51950 + .watchdog = lmc_hssi_watchdog
51951 };
51952
51953 -lmc_media_t lmc_ssi_media = { lmc_ssi_init, /* special media init stuff */
51954 - lmc_ssi_default, /* reset to default state */
51955 - lmc_ssi_set_status, /* reset status to state provided */
51956 - lmc_ssi_set_clock, /* set clock source */
51957 - lmc_ssi_set_speed, /* set line speed */
51958 - lmc_dummy_set_1, /* set cable length */
51959 - lmc_dummy_set_1, /* set scrambler */
51960 - lmc_ssi_get_link_status, /* get link status */
51961 - lmc_ssi_set_link_status, /* set link status */
51962 - lmc_ssi_set_crc_length, /* set CRC length */
51963 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51964 - lmc_ssi_watchdog
51965 +lmc_media_t lmc_ssi_media = {
51966 + .init = lmc_ssi_init, /* special media init stuff */
51967 + .defaults = lmc_ssi_default, /* reset to default state */
51968 + .set_status = lmc_ssi_set_status, /* reset status to state provided */
51969 + .set_clock_source = lmc_ssi_set_clock, /* set clock source */
51970 + .set_speed = lmc_ssi_set_speed, /* set line speed */
51971 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51972 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
51973 + .get_link_status = lmc_ssi_get_link_status, /* get link status */
51974 + .set_link_status = lmc_ssi_set_link_status, /* set link status */
51975 + .set_crc_length = lmc_ssi_set_crc_length, /* set CRC length */
51976 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51977 + .watchdog = lmc_ssi_watchdog
51978 };
51979
51980 lmc_media_t lmc_t1_media = {
51981 - lmc_t1_init, /* special media init stuff */
51982 - lmc_t1_default, /* reset to default state */
51983 - lmc_t1_set_status, /* reset status to state provided */
51984 - lmc_t1_set_clock, /* set clock source */
51985 - lmc_dummy_set2_1, /* set line speed */
51986 - lmc_dummy_set_1, /* set cable length */
51987 - lmc_dummy_set_1, /* set scrambler */
51988 - lmc_t1_get_link_status, /* get link status */
51989 - lmc_dummy_set_1, /* set link status */
51990 - lmc_t1_set_crc_length, /* set CRC length */
51991 - lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
51992 - lmc_t1_watchdog
51993 + .init = lmc_t1_init, /* special media init stuff */
51994 + .defaults = lmc_t1_default, /* reset to default state */
51995 + .set_status = lmc_t1_set_status, /* reset status to state provided */
51996 + .set_clock_source = lmc_t1_set_clock, /* set clock source */
51997 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51998 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51999 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
52000 + .get_link_status = lmc_t1_get_link_status, /* get link status */
52001 + .set_link_status = lmc_dummy_set_1, /* set link status */
52002 + .set_crc_length = lmc_t1_set_crc_length, /* set CRC length */
52003 + .set_circuit_type = lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
52004 + .watchdog = lmc_t1_watchdog
52005 };
52006
52007 static void
52008 diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c
52009 index 5c47b01..cd39025 100644
52010 --- a/drivers/net/wan/x25_asy.c
52011 +++ b/drivers/net/wan/x25_asy.c
52012 @@ -549,16 +549,12 @@ static void x25_asy_receive_buf(struct tty_struct *tty,
52013
52014 static int x25_asy_open_tty(struct tty_struct *tty)
52015 {
52016 - struct x25_asy *sl = tty->disc_data;
52017 + struct x25_asy *sl;
52018 int err;
52019
52020 if (tty->ops->write == NULL)
52021 return -EOPNOTSUPP;
52022
52023 - /* First make sure we're not already connected. */
52024 - if (sl && sl->magic == X25_ASY_MAGIC)
52025 - return -EEXIST;
52026 -
52027 /* OK. Find a free X.25 channel to use. */
52028 sl = x25_asy_alloc();
52029 if (sl == NULL)
52030 diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
52031 index 2f0bd69..e46ed7b 100644
52032 --- a/drivers/net/wan/z85230.c
52033 +++ b/drivers/net/wan/z85230.c
52034 @@ -485,9 +485,9 @@ static void z8530_status(struct z8530_channel *chan)
52035
52036 struct z8530_irqhandler z8530_sync =
52037 {
52038 - z8530_rx,
52039 - z8530_tx,
52040 - z8530_status
52041 + .rx = z8530_rx,
52042 + .tx = z8530_tx,
52043 + .status = z8530_status
52044 };
52045
52046 EXPORT_SYMBOL(z8530_sync);
52047 @@ -605,15 +605,15 @@ static void z8530_dma_status(struct z8530_channel *chan)
52048 }
52049
52050 static struct z8530_irqhandler z8530_dma_sync = {
52051 - z8530_dma_rx,
52052 - z8530_dma_tx,
52053 - z8530_dma_status
52054 + .rx = z8530_dma_rx,
52055 + .tx = z8530_dma_tx,
52056 + .status = z8530_dma_status
52057 };
52058
52059 static struct z8530_irqhandler z8530_txdma_sync = {
52060 - z8530_rx,
52061 - z8530_dma_tx,
52062 - z8530_dma_status
52063 + .rx = z8530_rx,
52064 + .tx = z8530_dma_tx,
52065 + .status = z8530_dma_status
52066 };
52067
52068 /**
52069 @@ -680,9 +680,9 @@ static void z8530_status_clear(struct z8530_channel *chan)
52070
52071 struct z8530_irqhandler z8530_nop=
52072 {
52073 - z8530_rx_clear,
52074 - z8530_tx_clear,
52075 - z8530_status_clear
52076 + .rx = z8530_rx_clear,
52077 + .tx = z8530_tx_clear,
52078 + .status = z8530_status_clear
52079 };
52080
52081
52082 diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
52083 index 0b60295..b8bfa5b 100644
52084 --- a/drivers/net/wimax/i2400m/rx.c
52085 +++ b/drivers/net/wimax/i2400m/rx.c
52086 @@ -1359,7 +1359,7 @@ int i2400m_rx_setup(struct i2400m *i2400m)
52087 if (i2400m->rx_roq == NULL)
52088 goto error_roq_alloc;
52089
52090 - rd = kcalloc(I2400M_RO_CIN + 1, sizeof(*i2400m->rx_roq[0].log),
52091 + rd = kcalloc(sizeof(*i2400m->rx_roq[0].log), I2400M_RO_CIN + 1,
52092 GFP_KERNEL);
52093 if (rd == NULL) {
52094 result = -ENOMEM;
52095 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
52096 index d0c97c2..108f59b 100644
52097 --- a/drivers/net/wireless/airo.c
52098 +++ b/drivers/net/wireless/airo.c
52099 @@ -7846,7 +7846,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
52100 struct airo_info *ai = dev->ml_priv;
52101 int ridcode;
52102 int enabled;
52103 - static int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
52104 + int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
52105 unsigned char *iobuf;
52106
52107 /* Only super-user can write RIDs */
52108 diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
52109 index dab2513..4c4b65d 100644
52110 --- a/drivers/net/wireless/at76c50x-usb.c
52111 +++ b/drivers/net/wireless/at76c50x-usb.c
52112 @@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
52113 }
52114
52115 /* Convert timeout from the DFU status to jiffies */
52116 -static inline unsigned long at76_get_timeout(struct dfu_status *s)
52117 +static inline unsigned long __intentional_overflow(-1) at76_get_timeout(struct dfu_status *s)
52118 {
52119 return msecs_to_jiffies((s->poll_timeout[2] << 16)
52120 | (s->poll_timeout[1] << 8)
52121 diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
52122 index cf28fbe..a63dd1b 100644
52123 --- a/drivers/net/wireless/ath/ath10k/ce.c
52124 +++ b/drivers/net/wireless/ath/ath10k/ce.c
52125 @@ -897,12 +897,12 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
52126 return 0;
52127 }
52128
52129 -static struct ath10k_ce_ring *
52130 +static struct ath10k_ce_ring * __intentional_overflow(-1)
52131 ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id,
52132 const struct ce_attr *attr)
52133 {
52134 struct ath10k_ce_ring *src_ring;
52135 - u32 nentries = attr->src_nentries;
52136 + unsigned long nentries = attr->src_nentries;
52137 dma_addr_t base_addr;
52138
52139 nentries = roundup_pow_of_two(nentries);
52140 @@ -969,7 +969,7 @@ ath10k_ce_alloc_dest_ring(struct ath10k *ar, unsigned int ce_id,
52141 const struct ce_attr *attr)
52142 {
52143 struct ath10k_ce_ring *dest_ring;
52144 - u32 nentries;
52145 + unsigned long nentries;
52146 dma_addr_t base_addr;
52147
52148 nentries = roundup_pow_of_two(attr->dest_nentries);
52149 diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
52150 index 32d9ff1..0952b33 100644
52151 --- a/drivers/net/wireless/ath/ath10k/htc.c
52152 +++ b/drivers/net/wireless/ath/ath10k/htc.c
52153 @@ -841,7 +841,10 @@ int ath10k_htc_start(struct ath10k_htc *htc)
52154 /* registered target arrival callback from the HIF layer */
52155 int ath10k_htc_init(struct ath10k *ar)
52156 {
52157 - struct ath10k_hif_cb htc_callbacks;
52158 + static struct ath10k_hif_cb htc_callbacks = {
52159 + .rx_completion = ath10k_htc_rx_completion_handler,
52160 + .tx_completion = ath10k_htc_tx_completion_handler,
52161 + };
52162 struct ath10k_htc_ep *ep = NULL;
52163 struct ath10k_htc *htc = &ar->htc;
52164
52165 @@ -850,8 +853,6 @@ int ath10k_htc_init(struct ath10k *ar)
52166 ath10k_htc_reset_endpoint_states(htc);
52167
52168 /* setup HIF layer callbacks */
52169 - htc_callbacks.rx_completion = ath10k_htc_rx_completion_handler;
52170 - htc_callbacks.tx_completion = ath10k_htc_tx_completion_handler;
52171 htc->ar = ar;
52172
52173 /* Get HIF default pipe for HTC message exchange */
52174 diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
52175 index 527179c..a890150 100644
52176 --- a/drivers/net/wireless/ath/ath10k/htc.h
52177 +++ b/drivers/net/wireless/ath/ath10k/htc.h
52178 @@ -270,13 +270,13 @@ enum ath10k_htc_ep_id {
52179
52180 struct ath10k_htc_ops {
52181 void (*target_send_suspend_complete)(struct ath10k *ar);
52182 -};
52183 +} __no_const;
52184
52185 struct ath10k_htc_ep_ops {
52186 void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
52187 void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
52188 void (*ep_tx_credits)(struct ath10k *);
52189 -};
52190 +} __no_const;
52191
52192 /* service connection information */
52193 struct ath10k_htc_svc_conn_req {
52194 diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
52195 index fee0cad..a7a3b63 100644
52196 --- a/drivers/net/wireless/ath/ath9k/Kconfig
52197 +++ b/drivers/net/wireless/ath/ath9k/Kconfig
52198 @@ -3,7 +3,6 @@ config ATH9K_HW
52199 config ATH9K_COMMON
52200 tristate
52201 select ATH_COMMON
52202 - select DEBUG_FS
52203 select RELAY
52204 config ATH9K_DFS_DEBUGFS
52205 def_bool y
52206 diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52207 index f816909..e56cd8b 100644
52208 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52209 +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52210 @@ -220,8 +220,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52211 ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
52212 ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
52213
52214 - ACCESS_ONCE(ads->ds_link) = i->link;
52215 - ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
52216 + ACCESS_ONCE_RW(ads->ds_link) = i->link;
52217 + ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
52218
52219 ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
52220 ctl6 = SM(i->keytype, AR_EncrType);
52221 @@ -235,26 +235,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52222
52223 if ((i->is_first || i->is_last) &&
52224 i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
52225 - ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
52226 + ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
52227 | set11nTries(i->rates, 1)
52228 | set11nTries(i->rates, 2)
52229 | set11nTries(i->rates, 3)
52230 | (i->dur_update ? AR_DurUpdateEna : 0)
52231 | SM(0, AR_BurstDur);
52232
52233 - ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
52234 + ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
52235 | set11nRate(i->rates, 1)
52236 | set11nRate(i->rates, 2)
52237 | set11nRate(i->rates, 3);
52238 } else {
52239 - ACCESS_ONCE(ads->ds_ctl2) = 0;
52240 - ACCESS_ONCE(ads->ds_ctl3) = 0;
52241 + ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
52242 + ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
52243 }
52244
52245 if (!i->is_first) {
52246 - ACCESS_ONCE(ads->ds_ctl0) = 0;
52247 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52248 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52249 + ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
52250 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52251 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52252 return;
52253 }
52254
52255 @@ -279,7 +279,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52256 break;
52257 }
52258
52259 - ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52260 + ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52261 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52262 | SM(i->txpower[0], AR_XmitPower0)
52263 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52264 @@ -289,27 +289,27 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52265 | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
52266 (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
52267
52268 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52269 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52270 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52271 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52272
52273 if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
52274 return;
52275
52276 - ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52277 + ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52278 | set11nPktDurRTSCTS(i->rates, 1);
52279
52280 - ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52281 + ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52282 | set11nPktDurRTSCTS(i->rates, 3);
52283
52284 - ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52285 + ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52286 | set11nRateFlags(i->rates, 1)
52287 | set11nRateFlags(i->rates, 2)
52288 | set11nRateFlags(i->rates, 3)
52289 | SM(i->rtscts_rate, AR_RTSCTSRate);
52290
52291 - ACCESS_ONCE(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52292 - ACCESS_ONCE(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52293 - ACCESS_ONCE(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52294 + ACCESS_ONCE_RW(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52295 + ACCESS_ONCE_RW(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52296 + ACCESS_ONCE_RW(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52297 }
52298
52299 static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
52300 diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52301 index da84b70..83e4978 100644
52302 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52303 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52304 @@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52305 (i->qcu << AR_TxQcuNum_S) | desc_len;
52306
52307 checksum += val;
52308 - ACCESS_ONCE(ads->info) = val;
52309 + ACCESS_ONCE_RW(ads->info) = val;
52310
52311 checksum += i->link;
52312 - ACCESS_ONCE(ads->link) = i->link;
52313 + ACCESS_ONCE_RW(ads->link) = i->link;
52314
52315 checksum += i->buf_addr[0];
52316 - ACCESS_ONCE(ads->data0) = i->buf_addr[0];
52317 + ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
52318 checksum += i->buf_addr[1];
52319 - ACCESS_ONCE(ads->data1) = i->buf_addr[1];
52320 + ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
52321 checksum += i->buf_addr[2];
52322 - ACCESS_ONCE(ads->data2) = i->buf_addr[2];
52323 + ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
52324 checksum += i->buf_addr[3];
52325 - ACCESS_ONCE(ads->data3) = i->buf_addr[3];
52326 + ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
52327
52328 checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
52329 - ACCESS_ONCE(ads->ctl3) = val;
52330 + ACCESS_ONCE_RW(ads->ctl3) = val;
52331 checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
52332 - ACCESS_ONCE(ads->ctl5) = val;
52333 + ACCESS_ONCE_RW(ads->ctl5) = val;
52334 checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
52335 - ACCESS_ONCE(ads->ctl7) = val;
52336 + ACCESS_ONCE_RW(ads->ctl7) = val;
52337 checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
52338 - ACCESS_ONCE(ads->ctl9) = val;
52339 + ACCESS_ONCE_RW(ads->ctl9) = val;
52340
52341 checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
52342 - ACCESS_ONCE(ads->ctl10) = checksum;
52343 + ACCESS_ONCE_RW(ads->ctl10) = checksum;
52344
52345 if (i->is_first || i->is_last) {
52346 - ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
52347 + ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
52348 | set11nTries(i->rates, 1)
52349 | set11nTries(i->rates, 2)
52350 | set11nTries(i->rates, 3)
52351 | (i->dur_update ? AR_DurUpdateEna : 0)
52352 | SM(0, AR_BurstDur);
52353
52354 - ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
52355 + ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
52356 | set11nRate(i->rates, 1)
52357 | set11nRate(i->rates, 2)
52358 | set11nRate(i->rates, 3);
52359 } else {
52360 - ACCESS_ONCE(ads->ctl13) = 0;
52361 - ACCESS_ONCE(ads->ctl14) = 0;
52362 + ACCESS_ONCE_RW(ads->ctl13) = 0;
52363 + ACCESS_ONCE_RW(ads->ctl14) = 0;
52364 }
52365
52366 ads->ctl20 = 0;
52367 @@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52368
52369 ctl17 = SM(i->keytype, AR_EncrType);
52370 if (!i->is_first) {
52371 - ACCESS_ONCE(ads->ctl11) = 0;
52372 - ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52373 - ACCESS_ONCE(ads->ctl15) = 0;
52374 - ACCESS_ONCE(ads->ctl16) = 0;
52375 - ACCESS_ONCE(ads->ctl17) = ctl17;
52376 - ACCESS_ONCE(ads->ctl18) = 0;
52377 - ACCESS_ONCE(ads->ctl19) = 0;
52378 + ACCESS_ONCE_RW(ads->ctl11) = 0;
52379 + ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52380 + ACCESS_ONCE_RW(ads->ctl15) = 0;
52381 + ACCESS_ONCE_RW(ads->ctl16) = 0;
52382 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52383 + ACCESS_ONCE_RW(ads->ctl18) = 0;
52384 + ACCESS_ONCE_RW(ads->ctl19) = 0;
52385 return;
52386 }
52387
52388 - ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52389 + ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52390 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52391 | SM(i->txpower[0], AR_XmitPower0)
52392 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52393 @@ -135,26 +135,26 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52394 val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
52395 ctl12 |= SM(val, AR_PAPRDChainMask);
52396
52397 - ACCESS_ONCE(ads->ctl12) = ctl12;
52398 - ACCESS_ONCE(ads->ctl17) = ctl17;
52399 + ACCESS_ONCE_RW(ads->ctl12) = ctl12;
52400 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52401
52402 - ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52403 + ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52404 | set11nPktDurRTSCTS(i->rates, 1);
52405
52406 - ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52407 + ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52408 | set11nPktDurRTSCTS(i->rates, 3);
52409
52410 - ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
52411 + ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
52412 | set11nRateFlags(i->rates, 1)
52413 | set11nRateFlags(i->rates, 2)
52414 | set11nRateFlags(i->rates, 3)
52415 | SM(i->rtscts_rate, AR_RTSCTSRate);
52416
52417 - ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
52418 + ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
52419
52420 - ACCESS_ONCE(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52421 - ACCESS_ONCE(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52422 - ACCESS_ONCE(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52423 + ACCESS_ONCE_RW(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52424 + ACCESS_ONCE_RW(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52425 + ACCESS_ONCE_RW(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52426 }
52427
52428 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
52429 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
52430 index e8454db..c7b26fe 100644
52431 --- a/drivers/net/wireless/ath/ath9k/hw.h
52432 +++ b/drivers/net/wireless/ath/ath9k/hw.h
52433 @@ -671,7 +671,7 @@ struct ath_hw_private_ops {
52434 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52435 bool (*is_aic_enabled)(struct ath_hw *ah);
52436 #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
52437 -};
52438 +} __no_const;
52439
52440 /**
52441 * struct ath_spec_scan - parameters for Atheros spectral scan
52442 @@ -747,7 +747,7 @@ struct ath_hw_ops {
52443 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52444 void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
52445 #endif
52446 -};
52447 +} __no_const;
52448
52449 struct ath_nf_limits {
52450 s16 max;
52451 diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
52452 index c27143b..bd90160 100644
52453 --- a/drivers/net/wireless/ath/ath9k/main.c
52454 +++ b/drivers/net/wireless/ath/ath9k/main.c
52455 @@ -2579,16 +2579,18 @@ void ath9k_fill_chanctx_ops(void)
52456 if (!ath9k_is_chanctx_enabled())
52457 return;
52458
52459 - ath9k_ops.hw_scan = ath9k_hw_scan;
52460 - ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52461 - ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52462 - ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52463 - ath9k_ops.add_chanctx = ath9k_add_chanctx;
52464 - ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52465 - ath9k_ops.change_chanctx = ath9k_change_chanctx;
52466 - ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52467 - ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52468 - ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52469 + pax_open_kernel();
52470 + *(void **)&ath9k_ops.hw_scan = ath9k_hw_scan;
52471 + *(void **)&ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52472 + *(void **)&ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52473 + *(void **)&ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52474 + *(void **)&ath9k_ops.add_chanctx = ath9k_add_chanctx;
52475 + *(void **)&ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52476 + *(void **)&ath9k_ops.change_chanctx = ath9k_change_chanctx;
52477 + *(void **)&ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52478 + *(void **)&ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52479 + *(void **)&ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52480 + pax_close_kernel();
52481 }
52482
52483 #endif
52484 diff --git a/drivers/net/wireless/ath/wil6210/wil_platform.h b/drivers/net/wireless/ath/wil6210/wil_platform.h
52485 index d7fa19b..6d84263 100644
52486 --- a/drivers/net/wireless/ath/wil6210/wil_platform.h
52487 +++ b/drivers/net/wireless/ath/wil6210/wil_platform.h
52488 @@ -27,7 +27,7 @@ struct wil_platform_ops {
52489 int (*suspend)(void *handle);
52490 int (*resume)(void *handle);
52491 void (*uninit)(void *handle);
52492 -};
52493 +} __no_const;
52494
52495 void *wil_platform_init(struct device *dev, struct wil_platform_ops *ops);
52496
52497 diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
52498 index 058a9f2..d5cb1ba 100644
52499 --- a/drivers/net/wireless/b43/phy_lp.c
52500 +++ b/drivers/net/wireless/b43/phy_lp.c
52501 @@ -2502,7 +2502,7 @@ static int lpphy_b2063_tune(struct b43_wldev *dev,
52502 {
52503 struct ssb_bus *bus = dev->dev->sdev->bus;
52504
52505 - static const struct b206x_channel *chandata = NULL;
52506 + const struct b206x_channel *chandata = NULL;
52507 u32 crystal_freq = bus->chipco.pmu.crystalfreq * 1000;
52508 u32 freqref, vco_freq, val1, val2, val3, timeout, timeoutref, count;
52509 u16 old_comm15, scale;
52510 diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
52511 index af1b3e6..d5d82713 100644
52512 --- a/drivers/net/wireless/iwlegacy/3945-mac.c
52513 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
52514 @@ -3633,7 +3633,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
52515 */
52516 if (il3945_mod_params.disable_hw_scan) {
52517 D_INFO("Disabling hw_scan\n");
52518 - il3945_mac_ops.hw_scan = NULL;
52519 + pax_open_kernel();
52520 + *(void **)&il3945_mac_ops.hw_scan = NULL;
52521 + pax_close_kernel();
52522 }
52523
52524 D_INFO("*** LOAD DRIVER ***\n");
52525 diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52526 index b15e44f..8658af2 100644
52527 --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52528 +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52529 @@ -188,7 +188,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
52530 {
52531 struct iwl_priv *priv = file->private_data;
52532 char buf[64];
52533 - int buf_size;
52534 + size_t buf_size;
52535 u32 offset, len;
52536
52537 memset(buf, 0, sizeof(buf));
52538 @@ -454,7 +454,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
52539 struct iwl_priv *priv = file->private_data;
52540
52541 char buf[8];
52542 - int buf_size;
52543 + size_t buf_size;
52544 u32 reset_flag;
52545
52546 memset(buf, 0, sizeof(buf));
52547 @@ -535,7 +535,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
52548 {
52549 struct iwl_priv *priv = file->private_data;
52550 char buf[8];
52551 - int buf_size;
52552 + size_t buf_size;
52553 int ht40;
52554
52555 memset(buf, 0, sizeof(buf));
52556 @@ -587,7 +587,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
52557 {
52558 struct iwl_priv *priv = file->private_data;
52559 char buf[8];
52560 - int buf_size;
52561 + size_t buf_size;
52562 int value;
52563
52564 memset(buf, 0, sizeof(buf));
52565 @@ -679,10 +679,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
52566 DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
52567 DEBUGFS_READ_FILE_OPS(current_sleep_command);
52568
52569 -static const char *fmt_value = " %-30s %10u\n";
52570 -static const char *fmt_hex = " %-30s 0x%02X\n";
52571 -static const char *fmt_table = " %-30s %10u %10u %10u %10u\n";
52572 -static const char *fmt_header =
52573 +static const char fmt_value[] = " %-30s %10u\n";
52574 +static const char fmt_hex[] = " %-30s 0x%02X\n";
52575 +static const char fmt_table[] = " %-30s %10u %10u %10u %10u\n";
52576 +static const char fmt_header[] =
52577 "%-32s current cumulative delta max\n";
52578
52579 static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
52580 @@ -1852,7 +1852,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
52581 {
52582 struct iwl_priv *priv = file->private_data;
52583 char buf[8];
52584 - int buf_size;
52585 + size_t buf_size;
52586 int clear;
52587
52588 memset(buf, 0, sizeof(buf));
52589 @@ -1897,7 +1897,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
52590 {
52591 struct iwl_priv *priv = file->private_data;
52592 char buf[8];
52593 - int buf_size;
52594 + size_t buf_size;
52595 int trace;
52596
52597 memset(buf, 0, sizeof(buf));
52598 @@ -1968,7 +1968,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
52599 {
52600 struct iwl_priv *priv = file->private_data;
52601 char buf[8];
52602 - int buf_size;
52603 + size_t buf_size;
52604 int missed;
52605
52606 memset(buf, 0, sizeof(buf));
52607 @@ -2009,7 +2009,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
52608
52609 struct iwl_priv *priv = file->private_data;
52610 char buf[8];
52611 - int buf_size;
52612 + size_t buf_size;
52613 int plcp;
52614
52615 memset(buf, 0, sizeof(buf));
52616 @@ -2069,7 +2069,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
52617
52618 struct iwl_priv *priv = file->private_data;
52619 char buf[8];
52620 - int buf_size;
52621 + size_t buf_size;
52622 int flush;
52623
52624 memset(buf, 0, sizeof(buf));
52625 @@ -2159,7 +2159,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
52626
52627 struct iwl_priv *priv = file->private_data;
52628 char buf[8];
52629 - int buf_size;
52630 + size_t buf_size;
52631 int rts;
52632
52633 if (!priv->cfg->ht_params)
52634 @@ -2200,7 +2200,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
52635 {
52636 struct iwl_priv *priv = file->private_data;
52637 char buf[8];
52638 - int buf_size;
52639 + size_t buf_size;
52640
52641 memset(buf, 0, sizeof(buf));
52642 buf_size = min(count, sizeof(buf) - 1);
52643 @@ -2234,7 +2234,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
52644 struct iwl_priv *priv = file->private_data;
52645 u32 event_log_flag;
52646 char buf[8];
52647 - int buf_size;
52648 + size_t buf_size;
52649
52650 /* check that the interface is up */
52651 if (!iwl_is_ready(priv))
52652 @@ -2288,7 +2288,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
52653 struct iwl_priv *priv = file->private_data;
52654 char buf[8];
52655 u32 calib_disabled;
52656 - int buf_size;
52657 + size_t buf_size;
52658
52659 memset(buf, 0, sizeof(buf));
52660 buf_size = min(count, sizeof(buf) - 1);
52661 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
52662 index 9028345..5b66ca3 100644
52663 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
52664 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
52665 @@ -2049,7 +2049,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
52666 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
52667
52668 char buf[8];
52669 - int buf_size;
52670 + size_t buf_size;
52671 u32 reset_flag;
52672
52673 memset(buf, 0, sizeof(buf));
52674 @@ -2070,7 +2070,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
52675 {
52676 struct iwl_trans *trans = file->private_data;
52677 char buf[8];
52678 - int buf_size;
52679 + size_t buf_size;
52680 int csr;
52681
52682 memset(buf, 0, sizeof(buf));
52683 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
52684 index 520bef8..67e3bdf 100644
52685 --- a/drivers/net/wireless/mac80211_hwsim.c
52686 +++ b/drivers/net/wireless/mac80211_hwsim.c
52687 @@ -3151,20 +3151,20 @@ static int __init init_mac80211_hwsim(void)
52688 if (channels < 1)
52689 return -EINVAL;
52690
52691 - mac80211_hwsim_mchan_ops = mac80211_hwsim_ops;
52692 - mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52693 - mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52694 - mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52695 - mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52696 - mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52697 - mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52698 - mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52699 - mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52700 - mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52701 - mac80211_hwsim_mchan_ops.assign_vif_chanctx =
52702 - mac80211_hwsim_assign_vif_chanctx;
52703 - mac80211_hwsim_mchan_ops.unassign_vif_chanctx =
52704 - mac80211_hwsim_unassign_vif_chanctx;
52705 + pax_open_kernel();
52706 + memcpy((void *)&mac80211_hwsim_mchan_ops, &mac80211_hwsim_ops, sizeof mac80211_hwsim_mchan_ops);
52707 + *(void **)&mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52708 + *(void **)&mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52709 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52710 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52711 + *(void **)&mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52712 + *(void **)&mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52713 + *(void **)&mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52714 + *(void **)&mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52715 + *(void **)&mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52716 + *(void **)&mac80211_hwsim_mchan_ops.assign_vif_chanctx = mac80211_hwsim_assign_vif_chanctx;
52717 + *(void **)&mac80211_hwsim_mchan_ops.unassign_vif_chanctx = mac80211_hwsim_unassign_vif_chanctx;
52718 + pax_close_kernel();
52719
52720 spin_lock_init(&hwsim_radio_lock);
52721 INIT_LIST_HEAD(&hwsim_radios);
52722 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
52723 index 71a825c..ce7d6c3 100644
52724 --- a/drivers/net/wireless/rndis_wlan.c
52725 +++ b/drivers/net/wireless/rndis_wlan.c
52726 @@ -1236,7 +1236,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
52727
52728 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
52729
52730 - if (rts_threshold < 0 || rts_threshold > 2347)
52731 + if (rts_threshold > 2347)
52732 rts_threshold = 2347;
52733
52734 tmp = cpu_to_le32(rts_threshold);
52735 diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
52736 index 3282ddb..26aabb5 100644
52737 --- a/drivers/net/wireless/rt2x00/rt2x00.h
52738 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
52739 @@ -377,7 +377,7 @@ struct rt2x00_intf {
52740 * for hardware which doesn't support hardware
52741 * sequence counting.
52742 */
52743 - atomic_t seqno;
52744 + atomic_unchecked_t seqno;
52745 };
52746
52747 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
52748 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
52749 index 68b620b..92ecd9e 100644
52750 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
52751 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
52752 @@ -224,9 +224,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
52753 * sequence counter given by mac80211.
52754 */
52755 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
52756 - seqno = atomic_add_return(0x10, &intf->seqno);
52757 + seqno = atomic_add_return_unchecked(0x10, &intf->seqno);
52758 else
52759 - seqno = atomic_read(&intf->seqno);
52760 + seqno = atomic_read_unchecked(&intf->seqno);
52761
52762 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
52763 hdr->seq_ctrl |= cpu_to_le16(seqno);
52764 diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
52765 index b661f896..ddf7d2b 100644
52766 --- a/drivers/net/wireless/ti/wl1251/sdio.c
52767 +++ b/drivers/net/wireless/ti/wl1251/sdio.c
52768 @@ -282,13 +282,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
52769
52770 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
52771
52772 - wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
52773 - wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
52774 + pax_open_kernel();
52775 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
52776 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
52777 + pax_close_kernel();
52778
52779 wl1251_info("using dedicated interrupt line");
52780 } else {
52781 - wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
52782 - wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
52783 + pax_open_kernel();
52784 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
52785 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
52786 + pax_close_kernel();
52787
52788 wl1251_info("using SDIO interrupt");
52789 }
52790 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
52791 index af0fe2e..d04986b 100644
52792 --- a/drivers/net/wireless/ti/wl12xx/main.c
52793 +++ b/drivers/net/wireless/ti/wl12xx/main.c
52794 @@ -655,7 +655,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
52795 sizeof(wl->conf.mem));
52796
52797 /* read data preparation is only needed by wl127x */
52798 - wl->ops->prepare_read = wl127x_prepare_read;
52799 + pax_open_kernel();
52800 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
52801 + pax_close_kernel();
52802
52803 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
52804 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
52805 @@ -680,7 +682,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
52806 sizeof(wl->conf.mem));
52807
52808 /* read data preparation is only needed by wl127x */
52809 - wl->ops->prepare_read = wl127x_prepare_read;
52810 + pax_open_kernel();
52811 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
52812 + pax_close_kernel();
52813
52814 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
52815 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
52816 diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
52817 index abbf054..6ad2ddb 100644
52818 --- a/drivers/net/wireless/ti/wl18xx/main.c
52819 +++ b/drivers/net/wireless/ti/wl18xx/main.c
52820 @@ -2005,8 +2005,10 @@ static int wl18xx_setup(struct wl1271 *wl)
52821 }
52822
52823 if (!checksum_param) {
52824 - wl18xx_ops.set_rx_csum = NULL;
52825 - wl18xx_ops.init_vif = NULL;
52826 + pax_open_kernel();
52827 + *(void **)&wl18xx_ops.set_rx_csum = NULL;
52828 + *(void **)&wl18xx_ops.init_vif = NULL;
52829 + pax_close_kernel();
52830 }
52831
52832 /* Enable 11a Band only if we have 5G antennas */
52833 diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
52834 index a912dc0..a8225ba 100644
52835 --- a/drivers/net/wireless/zd1211rw/zd_usb.c
52836 +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
52837 @@ -385,7 +385,7 @@ static inline void handle_regs_int(struct urb *urb)
52838 {
52839 struct zd_usb *usb = urb->context;
52840 struct zd_usb_interrupt *intr = &usb->intr;
52841 - int len;
52842 + unsigned int len;
52843 u16 int_num;
52844
52845 ZD_ASSERT(in_interrupt());
52846 diff --git a/drivers/nfc/nfcwilink.c b/drivers/nfc/nfcwilink.c
52847 index ce2e2cf..f81e500 100644
52848 --- a/drivers/nfc/nfcwilink.c
52849 +++ b/drivers/nfc/nfcwilink.c
52850 @@ -497,7 +497,7 @@ static struct nci_ops nfcwilink_ops = {
52851
52852 static int nfcwilink_probe(struct platform_device *pdev)
52853 {
52854 - static struct nfcwilink *drv;
52855 + struct nfcwilink *drv;
52856 int rc;
52857 __u32 protocols;
52858
52859 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
52860 index 6e82bc42..ab4145c 100644
52861 --- a/drivers/of/fdt.c
52862 +++ b/drivers/of/fdt.c
52863 @@ -1161,7 +1161,9 @@ static int __init of_fdt_raw_init(void)
52864 pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
52865 return 0;
52866 }
52867 - of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
52868 + pax_open_kernel();
52869 + *(size_t *)&of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
52870 + pax_close_kernel();
52871 return sysfs_create_bin_file(firmware_kobj, &of_fdt_raw_attr);
52872 }
52873 late_initcall(of_fdt_raw_init);
52874 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
52875 index 82f7000..d6d0447 100644
52876 --- a/drivers/oprofile/buffer_sync.c
52877 +++ b/drivers/oprofile/buffer_sync.c
52878 @@ -345,7 +345,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
52879 if (cookie == NO_COOKIE)
52880 offset = pc;
52881 if (cookie == INVALID_COOKIE) {
52882 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
52883 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
52884 offset = pc;
52885 }
52886 if (cookie != last_cookie) {
52887 @@ -389,14 +389,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
52888 /* add userspace sample */
52889
52890 if (!mm) {
52891 - atomic_inc(&oprofile_stats.sample_lost_no_mm);
52892 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mm);
52893 return 0;
52894 }
52895
52896 cookie = lookup_dcookie(mm, s->eip, &offset);
52897
52898 if (cookie == INVALID_COOKIE) {
52899 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
52900 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
52901 return 0;
52902 }
52903
52904 @@ -554,7 +554,7 @@ void sync_buffer(int cpu)
52905 /* ignore backtraces if failed to add a sample */
52906 if (state == sb_bt_start) {
52907 state = sb_bt_ignore;
52908 - atomic_inc(&oprofile_stats.bt_lost_no_mapping);
52909 + atomic_inc_unchecked(&oprofile_stats.bt_lost_no_mapping);
52910 }
52911 }
52912 release_mm(mm);
52913 diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
52914 index c0cc4e7..44d4e54 100644
52915 --- a/drivers/oprofile/event_buffer.c
52916 +++ b/drivers/oprofile/event_buffer.c
52917 @@ -53,7 +53,7 @@ void add_event_entry(unsigned long value)
52918 }
52919
52920 if (buffer_pos == buffer_size) {
52921 - atomic_inc(&oprofile_stats.event_lost_overflow);
52922 + atomic_inc_unchecked(&oprofile_stats.event_lost_overflow);
52923 return;
52924 }
52925
52926 diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
52927 index ed2c3ec..deda85a 100644
52928 --- a/drivers/oprofile/oprof.c
52929 +++ b/drivers/oprofile/oprof.c
52930 @@ -110,7 +110,7 @@ static void switch_worker(struct work_struct *work)
52931 if (oprofile_ops.switch_events())
52932 return;
52933
52934 - atomic_inc(&oprofile_stats.multiplex_counter);
52935 + atomic_inc_unchecked(&oprofile_stats.multiplex_counter);
52936 start_switch_worker();
52937 }
52938
52939 diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
52940 index 59659ce..6c860a0 100644
52941 --- a/drivers/oprofile/oprofile_stats.c
52942 +++ b/drivers/oprofile/oprofile_stats.c
52943 @@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
52944 cpu_buf->sample_invalid_eip = 0;
52945 }
52946
52947 - atomic_set(&oprofile_stats.sample_lost_no_mm, 0);
52948 - atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
52949 - atomic_set(&oprofile_stats.event_lost_overflow, 0);
52950 - atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
52951 - atomic_set(&oprofile_stats.multiplex_counter, 0);
52952 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mm, 0);
52953 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mapping, 0);
52954 + atomic_set_unchecked(&oprofile_stats.event_lost_overflow, 0);
52955 + atomic_set_unchecked(&oprofile_stats.bt_lost_no_mapping, 0);
52956 + atomic_set_unchecked(&oprofile_stats.multiplex_counter, 0);
52957 }
52958
52959
52960 diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
52961 index 1fc622b..8c48fc3 100644
52962 --- a/drivers/oprofile/oprofile_stats.h
52963 +++ b/drivers/oprofile/oprofile_stats.h
52964 @@ -13,11 +13,11 @@
52965 #include <linux/atomic.h>
52966
52967 struct oprofile_stat_struct {
52968 - atomic_t sample_lost_no_mm;
52969 - atomic_t sample_lost_no_mapping;
52970 - atomic_t bt_lost_no_mapping;
52971 - atomic_t event_lost_overflow;
52972 - atomic_t multiplex_counter;
52973 + atomic_unchecked_t sample_lost_no_mm;
52974 + atomic_unchecked_t sample_lost_no_mapping;
52975 + atomic_unchecked_t bt_lost_no_mapping;
52976 + atomic_unchecked_t event_lost_overflow;
52977 + atomic_unchecked_t multiplex_counter;
52978 };
52979
52980 extern struct oprofile_stat_struct oprofile_stats;
52981 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
52982 index dd92c5e..dfc04b5 100644
52983 --- a/drivers/oprofile/oprofilefs.c
52984 +++ b/drivers/oprofile/oprofilefs.c
52985 @@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
52986
52987 static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
52988 {
52989 - atomic_t *val = file->private_data;
52990 - return oprofilefs_ulong_to_user(atomic_read(val), buf, count, offset);
52991 + atomic_unchecked_t *val = file->private_data;
52992 + return oprofilefs_ulong_to_user(atomic_read_unchecked(val), buf, count, offset);
52993 }
52994
52995
52996 @@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
52997
52998
52999 int oprofilefs_create_ro_atomic(struct dentry *root,
53000 - char const *name, atomic_t *val)
53001 + char const *name, atomic_unchecked_t *val)
53002 {
53003 return __oprofilefs_create_file(root, name,
53004 &atomic_ro_fops, 0444, val);
53005 diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c
53006 index bdef916..88c7dee 100644
53007 --- a/drivers/oprofile/timer_int.c
53008 +++ b/drivers/oprofile/timer_int.c
53009 @@ -93,7 +93,7 @@ static int oprofile_cpu_notify(struct notifier_block *self,
53010 return NOTIFY_OK;
53011 }
53012
53013 -static struct notifier_block __refdata oprofile_cpu_notifier = {
53014 +static struct notifier_block oprofile_cpu_notifier = {
53015 .notifier_call = oprofile_cpu_notify,
53016 };
53017
53018 diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
53019 index c776333..aa6b325 100644
53020 --- a/drivers/parport/procfs.c
53021 +++ b/drivers/parport/procfs.c
53022 @@ -65,7 +65,7 @@ static int do_active_device(struct ctl_table *table, int write,
53023
53024 *ppos += len;
53025
53026 - return copy_to_user(result, buffer, len) ? -EFAULT : 0;
53027 + return (len > sizeof buffer || copy_to_user(result, buffer, len)) ? -EFAULT : 0;
53028 }
53029
53030 #ifdef CONFIG_PARPORT_1284
53031 @@ -107,7 +107,7 @@ static int do_autoprobe(struct ctl_table *table, int write,
53032
53033 *ppos += len;
53034
53035 - return copy_to_user (result, buffer, len) ? -EFAULT : 0;
53036 + return (len > sizeof buffer || copy_to_user (result, buffer, len)) ? -EFAULT : 0;
53037 }
53038 #endif /* IEEE1284.3 support. */
53039
53040 diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c
53041 index 265dd25..41a02dd 100644
53042 --- a/drivers/pci/host/pci-host-generic.c
53043 +++ b/drivers/pci/host/pci-host-generic.c
53044 @@ -26,9 +26,9 @@
53045 #include <linux/platform_device.h>
53046
53047 struct gen_pci_cfg_bus_ops {
53048 + struct pci_ops ops;
53049 u32 bus_shift;
53050 - void __iomem *(*map_bus)(struct pci_bus *, unsigned int, int);
53051 -};
53052 +} __do_const;
53053
53054 struct gen_pci_cfg_windows {
53055 struct resource res;
53056 @@ -64,8 +64,12 @@ static void __iomem *gen_pci_map_cfg_bus_cam(struct pci_bus *bus,
53057 }
53058
53059 static struct gen_pci_cfg_bus_ops gen_pci_cfg_cam_bus_ops = {
53060 + .ops = {
53061 + .map_bus = gen_pci_map_cfg_bus_cam,
53062 + .read = pci_generic_config_read,
53063 + .write = pci_generic_config_write,
53064 + },
53065 .bus_shift = 16,
53066 - .map_bus = gen_pci_map_cfg_bus_cam,
53067 };
53068
53069 static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
53070 @@ -79,13 +83,12 @@ static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
53071 }
53072
53073 static struct gen_pci_cfg_bus_ops gen_pci_cfg_ecam_bus_ops = {
53074 + .ops = {
53075 + .map_bus = gen_pci_map_cfg_bus_ecam,
53076 + .read = pci_generic_config_read,
53077 + .write = pci_generic_config_write,
53078 + },
53079 .bus_shift = 20,
53080 - .map_bus = gen_pci_map_cfg_bus_ecam,
53081 -};
53082 -
53083 -static struct pci_ops gen_pci_ops = {
53084 - .read = pci_generic_config_read,
53085 - .write = pci_generic_config_write,
53086 };
53087
53088 static const struct of_device_id gen_pci_of_match[] = {
53089 @@ -235,7 +238,6 @@ static int gen_pci_probe(struct platform_device *pdev)
53090
53091 of_id = of_match_node(gen_pci_of_match, np);
53092 pci->cfg.ops = of_id->data;
53093 - gen_pci_ops.map_bus = pci->cfg.ops->map_bus;
53094 pci->host.dev.parent = dev;
53095 INIT_LIST_HEAD(&pci->host.windows);
53096 INIT_LIST_HEAD(&pci->resources);
53097 @@ -256,7 +258,7 @@ static int gen_pci_probe(struct platform_device *pdev)
53098 if (!pci_has_flag(PCI_PROBE_ONLY))
53099 pci_add_flags(PCI_REASSIGN_ALL_RSRC | PCI_REASSIGN_ALL_BUS);
53100
53101 - bus = pci_scan_root_bus(dev, 0, &gen_pci_ops, pci, &pci->resources);
53102 + bus = pci_scan_root_bus(dev, 0, &pci->cfg.ops->ops, pci, &pci->resources);
53103 if (!bus) {
53104 dev_err(dev, "Scanning rootbus failed");
53105 return -ENODEV;
53106 diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
53107 index 6ca2399..68d866b 100644
53108 --- a/drivers/pci/hotplug/acpiphp_ibm.c
53109 +++ b/drivers/pci/hotplug/acpiphp_ibm.c
53110 @@ -452,7 +452,9 @@ static int __init ibm_acpiphp_init(void)
53111 goto init_cleanup;
53112 }
53113
53114 - ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
53115 + pax_open_kernel();
53116 + *(size_t *)&ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
53117 + pax_close_kernel();
53118 retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr);
53119
53120 return retval;
53121 diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c
53122 index 66b7bbe..26bee78 100644
53123 --- a/drivers/pci/hotplug/cpcihp_generic.c
53124 +++ b/drivers/pci/hotplug/cpcihp_generic.c
53125 @@ -73,7 +73,6 @@ static u16 port;
53126 static unsigned int enum_bit;
53127 static u8 enum_mask;
53128
53129 -static struct cpci_hp_controller_ops generic_hpc_ops;
53130 static struct cpci_hp_controller generic_hpc;
53131
53132 static int __init validate_parameters(void)
53133 @@ -139,6 +138,10 @@ static int query_enum(void)
53134 return ((value & enum_mask) == enum_mask);
53135 }
53136
53137 +static struct cpci_hp_controller_ops generic_hpc_ops = {
53138 + .query_enum = query_enum,
53139 +};
53140 +
53141 static int __init cpcihp_generic_init(void)
53142 {
53143 int status;
53144 @@ -165,7 +168,6 @@ static int __init cpcihp_generic_init(void)
53145 pci_dev_put(dev);
53146
53147 memset(&generic_hpc, 0, sizeof (struct cpci_hp_controller));
53148 - generic_hpc_ops.query_enum = query_enum;
53149 generic_hpc.ops = &generic_hpc_ops;
53150
53151 status = cpci_hp_register_controller(&generic_hpc);
53152 diff --git a/drivers/pci/hotplug/cpcihp_zt5550.c b/drivers/pci/hotplug/cpcihp_zt5550.c
53153 index 7ecf34e..effed62 100644
53154 --- a/drivers/pci/hotplug/cpcihp_zt5550.c
53155 +++ b/drivers/pci/hotplug/cpcihp_zt5550.c
53156 @@ -59,7 +59,6 @@
53157 /* local variables */
53158 static bool debug;
53159 static bool poll;
53160 -static struct cpci_hp_controller_ops zt5550_hpc_ops;
53161 static struct cpci_hp_controller zt5550_hpc;
53162
53163 /* Primary cPCI bus bridge device */
53164 @@ -204,6 +203,10 @@ static int zt5550_hc_disable_irq(void)
53165 return 0;
53166 }
53167
53168 +static struct cpci_hp_controller_ops zt5550_hpc_ops = {
53169 + .query_enum = zt5550_hc_query_enum,
53170 +};
53171 +
53172 static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
53173 {
53174 int status;
53175 @@ -215,16 +218,17 @@ static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id
53176 dbg("returned from zt5550_hc_config");
53177
53178 memset(&zt5550_hpc, 0, sizeof (struct cpci_hp_controller));
53179 - zt5550_hpc_ops.query_enum = zt5550_hc_query_enum;
53180 zt5550_hpc.ops = &zt5550_hpc_ops;
53181 if (!poll) {
53182 zt5550_hpc.irq = hc_dev->irq;
53183 zt5550_hpc.irq_flags = IRQF_SHARED;
53184 zt5550_hpc.dev_id = hc_dev;
53185
53186 - zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53187 - zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53188 - zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53189 + pax_open_kernel();
53190 + *(void **)&zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53191 + *(void **)&zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53192 + *(void **)&zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53193 + pax_open_kernel();
53194 } else {
53195 info("using ENUM# polling mode");
53196 }
53197 diff --git a/drivers/pci/hotplug/cpqphp_nvram.c b/drivers/pci/hotplug/cpqphp_nvram.c
53198 index 1e08ff8c..3cd145f 100644
53199 --- a/drivers/pci/hotplug/cpqphp_nvram.c
53200 +++ b/drivers/pci/hotplug/cpqphp_nvram.c
53201 @@ -425,8 +425,10 @@ static u32 store_HRT (void __iomem *rom_start)
53202
53203 void compaq_nvram_init (void __iomem *rom_start)
53204 {
53205 +#ifndef CONFIG_PAX_KERNEXEC
53206 if (rom_start)
53207 compaq_int15_entry_point = (rom_start + ROM_INT15_PHY_ADDR - ROM_PHY_ADDR);
53208 +#endif
53209
53210 dbg("int15 entry = %p\n", compaq_int15_entry_point);
53211
53212 diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
53213 index d1fab97..71d04bf 100644
53214 --- a/drivers/pci/hotplug/pci_hotplug_core.c
53215 +++ b/drivers/pci/hotplug/pci_hotplug_core.c
53216 @@ -436,8 +436,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
53217 return -EINVAL;
53218 }
53219
53220 - slot->ops->owner = owner;
53221 - slot->ops->mod_name = mod_name;
53222 + pax_open_kernel();
53223 + *(struct module **)&slot->ops->owner = owner;
53224 + *(const char **)&slot->ops->mod_name = mod_name;
53225 + pax_close_kernel();
53226
53227 mutex_lock(&pci_hp_mutex);
53228 /*
53229 diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
53230 index 612b21a..9494a5e 100644
53231 --- a/drivers/pci/hotplug/pciehp_core.c
53232 +++ b/drivers/pci/hotplug/pciehp_core.c
53233 @@ -87,7 +87,7 @@ static int init_slot(struct controller *ctrl)
53234 struct slot *slot = ctrl->slot;
53235 struct hotplug_slot *hotplug = NULL;
53236 struct hotplug_slot_info *info = NULL;
53237 - struct hotplug_slot_ops *ops = NULL;
53238 + hotplug_slot_ops_no_const *ops = NULL;
53239 char name[SLOT_NAME_SIZE];
53240 int retval = -ENOMEM;
53241
53242 diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
53243 index 4a7da3c..74dbaf1 100644
53244 --- a/drivers/pci/msi.c
53245 +++ b/drivers/pci/msi.c
53246 @@ -468,8 +468,8 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
53247 {
53248 struct attribute **msi_attrs;
53249 struct attribute *msi_attr;
53250 - struct device_attribute *msi_dev_attr;
53251 - struct attribute_group *msi_irq_group;
53252 + device_attribute_no_const *msi_dev_attr;
53253 + attribute_group_no_const *msi_irq_group;
53254 const struct attribute_group **msi_irq_groups;
53255 struct msi_desc *entry;
53256 int ret = -ENOMEM;
53257 @@ -528,7 +528,7 @@ error_attrs:
53258 count = 0;
53259 msi_attr = msi_attrs[count];
53260 while (msi_attr) {
53261 - msi_dev_attr = container_of(msi_attr, struct device_attribute, attr);
53262 + msi_dev_attr = container_of(msi_attr, device_attribute_no_const, attr);
53263 kfree(msi_attr->name);
53264 kfree(msi_dev_attr);
53265 ++count;
53266 @@ -1227,12 +1227,14 @@ static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
53267 if (ops == NULL) {
53268 info->ops = &pci_msi_domain_ops_default;
53269 } else {
53270 + pax_open_kernel();
53271 if (ops->set_desc == NULL)
53272 - ops->set_desc = pci_msi_domain_set_desc;
53273 + *(void **)&ops->set_desc = pci_msi_domain_set_desc;
53274 if (ops->msi_check == NULL)
53275 - ops->msi_check = pci_msi_domain_check_cap;
53276 + *(void **)&ops->msi_check = pci_msi_domain_check_cap;
53277 if (ops->handle_error == NULL)
53278 - ops->handle_error = pci_msi_domain_handle_error;
53279 + *(void **)&ops->handle_error = pci_msi_domain_handle_error;
53280 + pax_close_kernel();
53281 }
53282 }
53283
53284 @@ -1241,12 +1243,14 @@ static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
53285 struct irq_chip *chip = info->chip;
53286
53287 BUG_ON(!chip);
53288 + pax_open_kernel();
53289 if (!chip->irq_write_msi_msg)
53290 - chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53291 + *(void **)&chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53292 if (!chip->irq_mask)
53293 - chip->irq_mask = pci_msi_mask_irq;
53294 + *(void **)&chip->irq_mask = pci_msi_mask_irq;
53295 if (!chip->irq_unmask)
53296 - chip->irq_unmask = pci_msi_unmask_irq;
53297 + *(void **)&chip->irq_unmask = pci_msi_unmask_irq;
53298 + pax_close_kernel();
53299 }
53300
53301 /**
53302 diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
53303 index 9261868..8b7d036 100644
53304 --- a/drivers/pci/pci-sysfs.c
53305 +++ b/drivers/pci/pci-sysfs.c
53306 @@ -216,7 +216,7 @@ static ssize_t numa_node_store(struct device *dev,
53307 if (ret)
53308 return ret;
53309
53310 - if (node >= MAX_NUMNODES || !node_online(node))
53311 + if (node < 0 || node >= MAX_NUMNODES || !node_online(node))
53312 return -EINVAL;
53313
53314 add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
53315 @@ -1140,7 +1140,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
53316 {
53317 /* allocate attribute structure, piggyback attribute name */
53318 int name_len = write_combine ? 13 : 10;
53319 - struct bin_attribute *res_attr;
53320 + bin_attribute_no_const *res_attr;
53321 int retval;
53322
53323 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
53324 @@ -1317,7 +1317,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
53325 static int pci_create_capabilities_sysfs(struct pci_dev *dev)
53326 {
53327 int retval;
53328 - struct bin_attribute *attr;
53329 + bin_attribute_no_const *attr;
53330
53331 /* If the device has VPD, try to expose it in sysfs. */
53332 if (dev->vpd) {
53333 @@ -1364,7 +1364,7 @@ int __must_check pci_create_sysfs_dev_files(struct pci_dev *pdev)
53334 {
53335 int retval;
53336 int rom_size = 0;
53337 - struct bin_attribute *attr;
53338 + bin_attribute_no_const *attr;
53339
53340 if (!sysfs_initialized)
53341 return -EACCES;
53342 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
53343 index 24ba9dc..d2711f9 100644
53344 --- a/drivers/pci/pci.h
53345 +++ b/drivers/pci/pci.h
53346 @@ -101,7 +101,7 @@ struct pci_vpd_ops {
53347 struct pci_vpd {
53348 unsigned int len;
53349 const struct pci_vpd_ops *ops;
53350 - struct bin_attribute *attr; /* descriptor for sysfs VPD entry */
53351 + bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */
53352 };
53353
53354 int pci_vpd_pci22_init(struct pci_dev *dev);
53355 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
53356 index 317e355..21f7b91 100644
53357 --- a/drivers/pci/pcie/aspm.c
53358 +++ b/drivers/pci/pcie/aspm.c
53359 @@ -27,9 +27,9 @@
53360 #define MODULE_PARAM_PREFIX "pcie_aspm."
53361
53362 /* Note: those are not register definitions */
53363 -#define ASPM_STATE_L0S_UP (1) /* Upstream direction L0s state */
53364 -#define ASPM_STATE_L0S_DW (2) /* Downstream direction L0s state */
53365 -#define ASPM_STATE_L1 (4) /* L1 state */
53366 +#define ASPM_STATE_L0S_UP (1U) /* Upstream direction L0s state */
53367 +#define ASPM_STATE_L0S_DW (2U) /* Downstream direction L0s state */
53368 +#define ASPM_STATE_L1 (4U) /* L1 state */
53369 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
53370 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
53371
53372 diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
53373 index be35da2..ec16cdb 100644
53374 --- a/drivers/pci/pcie/portdrv_pci.c
53375 +++ b/drivers/pci/pcie/portdrv_pci.c
53376 @@ -324,7 +324,7 @@ static int __init dmi_pcie_pme_disable_msi(const struct dmi_system_id *d)
53377 return 0;
53378 }
53379
53380 -static struct dmi_system_id __initdata pcie_portdrv_dmi_table[] = {
53381 +static const struct dmi_system_id __initconst pcie_portdrv_dmi_table[] = {
53382 /*
53383 * Boxes that should not use MSI for PCIe PME signaling.
53384 */
53385 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
53386 index 8361d27..d81f096 100644
53387 --- a/drivers/pci/probe.c
53388 +++ b/drivers/pci/probe.c
53389 @@ -176,7 +176,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
53390 u16 orig_cmd;
53391 struct pci_bus_region region, inverted_region;
53392
53393 - mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
53394 + mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
53395
53396 /* No printks while decoding is disabled! */
53397 if (!dev->mmio_always_on) {
53398 diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
53399 index 3f155e7..0f4b1f0 100644
53400 --- a/drivers/pci/proc.c
53401 +++ b/drivers/pci/proc.c
53402 @@ -434,7 +434,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
53403 static int __init pci_proc_init(void)
53404 {
53405 struct pci_dev *dev = NULL;
53406 +
53407 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
53408 +#ifdef CONFIG_GRKERNSEC_PROC_USER
53409 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR, NULL);
53410 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
53411 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
53412 +#endif
53413 +#else
53414 proc_bus_pci_dir = proc_mkdir("bus/pci", NULL);
53415 +#endif
53416 proc_create("devices", 0, proc_bus_pci_dir,
53417 &proc_bus_pci_dev_operations);
53418 proc_initialized = 1;
53419 diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
53420 index 96cf039..ad82396 100644
53421 --- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
53422 +++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
53423 @@ -1230,7 +1230,7 @@ static int nmk_gpio_probe(struct platform_device *dev)
53424 struct device_node *np = dev->dev.of_node;
53425 struct nmk_gpio_chip *nmk_chip;
53426 struct gpio_chip *chip;
53427 - struct irq_chip *irqchip;
53428 + irq_chip_no_const *irqchip;
53429 int latent_irq;
53430 bool supports_sleepmode;
53431 int irq;
53432 diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
53433 index b0fde0f..70d6a7b 100644
53434 --- a/drivers/pinctrl/pinctrl-at91.c
53435 +++ b/drivers/pinctrl/pinctrl-at91.c
53436 @@ -24,6 +24,7 @@
53437 #include <linux/pinctrl/pinmux.h>
53438 /* Since we request GPIOs from ourself */
53439 #include <linux/pinctrl/consumer.h>
53440 +#include <asm/pgtable.h>
53441
53442 #include "pinctrl-at91.h"
53443 #include "core.h"
53444 @@ -1632,7 +1633,9 @@ static int at91_gpio_of_irq_setup(struct platform_device *pdev,
53445 at91_gpio->pioc_hwirq = irqd_to_hwirq(d);
53446
53447 /* Setup proper .irq_set_type function */
53448 - gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53449 + pax_open_kernel();
53450 + *(void **)&gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53451 + pax_close_kernel();
53452
53453 /* Disable irqs of this PIO controller */
53454 writel_relaxed(~0, at91_gpio->regbase + PIO_IDR);
53455 diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c
53456 index 3474920..acc9581 100644
53457 --- a/drivers/platform/chrome/chromeos_pstore.c
53458 +++ b/drivers/platform/chrome/chromeos_pstore.c
53459 @@ -13,7 +13,7 @@
53460 #include <linux/platform_device.h>
53461 #include <linux/pstore_ram.h>
53462
53463 -static struct dmi_system_id chromeos_pstore_dmi_table[] __initdata = {
53464 +static const struct dmi_system_id chromeos_pstore_dmi_table[] __initconst = {
53465 {
53466 /*
53467 * Today all Chromebooks/boxes ship with Google_* as version and
53468 diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
53469 index 1e1e594..8fe59c5 100644
53470 --- a/drivers/platform/x86/alienware-wmi.c
53471 +++ b/drivers/platform/x86/alienware-wmi.c
53472 @@ -150,7 +150,7 @@ struct wmax_led_args {
53473 } __packed;
53474
53475 static struct platform_device *platform_device;
53476 -static struct device_attribute *zone_dev_attrs;
53477 +static device_attribute_no_const *zone_dev_attrs;
53478 static struct attribute **zone_attrs;
53479 static struct platform_zone *zone_data;
53480
53481 @@ -160,7 +160,7 @@ static struct platform_driver platform_driver = {
53482 }
53483 };
53484
53485 -static struct attribute_group zone_attribute_group = {
53486 +static attribute_group_no_const zone_attribute_group = {
53487 .name = "rgb_zones",
53488 };
53489
53490 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
53491 index efbc3f0..18ae682 100644
53492 --- a/drivers/platform/x86/asus-wmi.c
53493 +++ b/drivers/platform/x86/asus-wmi.c
53494 @@ -1868,6 +1868,10 @@ static int show_dsts(struct seq_file *m, void *data)
53495 int err;
53496 u32 retval = -1;
53497
53498 +#ifdef CONFIG_GRKERNSEC_KMEM
53499 + return -EPERM;
53500 +#endif
53501 +
53502 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
53503
53504 if (err < 0)
53505 @@ -1884,6 +1888,10 @@ static int show_devs(struct seq_file *m, void *data)
53506 int err;
53507 u32 retval = -1;
53508
53509 +#ifdef CONFIG_GRKERNSEC_KMEM
53510 + return -EPERM;
53511 +#endif
53512 +
53513 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
53514 &retval);
53515
53516 @@ -1908,6 +1916,10 @@ static int show_call(struct seq_file *m, void *data)
53517 union acpi_object *obj;
53518 acpi_status status;
53519
53520 +#ifdef CONFIG_GRKERNSEC_KMEM
53521 + return -EPERM;
53522 +#endif
53523 +
53524 status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
53525 1, asus->debug.method_id,
53526 &input, &output);
53527 diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c
53528 index f2706d2..850edfa4 100644
53529 --- a/drivers/platform/x86/compal-laptop.c
53530 +++ b/drivers/platform/x86/compal-laptop.c
53531 @@ -765,7 +765,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
53532 return 1;
53533 }
53534
53535 -static struct dmi_system_id __initdata compal_dmi_table[] = {
53536 +static const struct dmi_system_id __initconst compal_dmi_table[] = {
53537 {
53538 .ident = "FL90/IFL90",
53539 .matches = {
53540 diff --git a/drivers/platform/x86/hdaps.c b/drivers/platform/x86/hdaps.c
53541 index 458e6c9..089aee7 100644
53542 --- a/drivers/platform/x86/hdaps.c
53543 +++ b/drivers/platform/x86/hdaps.c
53544 @@ -514,7 +514,7 @@ static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id)
53545 "ThinkPad T42p", so the order of the entries matters.
53546 If your ThinkPad is not recognized, please update to latest
53547 BIOS. This is especially the case for some R52 ThinkPads. */
53548 -static struct dmi_system_id __initdata hdaps_whitelist[] = {
53549 +static const struct dmi_system_id __initconst hdaps_whitelist[] = {
53550 HDAPS_DMI_MATCH_INVERT("IBM", "ThinkPad R50p", HDAPS_BOTH_AXES),
53551 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R50"),
53552 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R51"),
53553 diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c
53554 index 97c2be1..2ee50ce 100644
53555 --- a/drivers/platform/x86/ibm_rtl.c
53556 +++ b/drivers/platform/x86/ibm_rtl.c
53557 @@ -227,7 +227,7 @@ static void rtl_teardown_sysfs(void) {
53558 }
53559
53560
53561 -static struct dmi_system_id __initdata ibm_rtl_dmi_table[] = {
53562 +static const struct dmi_system_id __initconst ibm_rtl_dmi_table[] = {
53563 { \
53564 .matches = { \
53565 DMI_MATCH(DMI_SYS_VENDOR, "IBM"), \
53566 diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
53567 index 6aa33c4..cfb5425 100644
53568 --- a/drivers/platform/x86/intel_oaktrail.c
53569 +++ b/drivers/platform/x86/intel_oaktrail.c
53570 @@ -299,7 +299,7 @@ static int dmi_check_cb(const struct dmi_system_id *id)
53571 return 0;
53572 }
53573
53574 -static struct dmi_system_id __initdata oaktrail_dmi_table[] = {
53575 +static const struct dmi_system_id __initconst oaktrail_dmi_table[] = {
53576 {
53577 .ident = "OakTrail platform",
53578 .matches = {
53579 diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
53580 index 4231770..10a6caf 100644
53581 --- a/drivers/platform/x86/msi-laptop.c
53582 +++ b/drivers/platform/x86/msi-laptop.c
53583 @@ -605,7 +605,7 @@ static int dmi_check_cb(const struct dmi_system_id *dmi)
53584 return 1;
53585 }
53586
53587 -static struct dmi_system_id __initdata msi_dmi_table[] = {
53588 +static const struct dmi_system_id __initconst msi_dmi_table[] = {
53589 {
53590 .ident = "MSI S270",
53591 .matches = {
53592 @@ -1000,12 +1000,14 @@ static int __init load_scm_model_init(struct platform_device *sdev)
53593
53594 if (!quirks->ec_read_only) {
53595 /* allow userland write sysfs file */
53596 - dev_attr_bluetooth.store = store_bluetooth;
53597 - dev_attr_wlan.store = store_wlan;
53598 - dev_attr_threeg.store = store_threeg;
53599 - dev_attr_bluetooth.attr.mode |= S_IWUSR;
53600 - dev_attr_wlan.attr.mode |= S_IWUSR;
53601 - dev_attr_threeg.attr.mode |= S_IWUSR;
53602 + pax_open_kernel();
53603 + *(void **)&dev_attr_bluetooth.store = store_bluetooth;
53604 + *(void **)&dev_attr_wlan.store = store_wlan;
53605 + *(void **)&dev_attr_threeg.store = store_threeg;
53606 + *(umode_t *)&dev_attr_bluetooth.attr.mode |= S_IWUSR;
53607 + *(umode_t *)&dev_attr_wlan.attr.mode |= S_IWUSR;
53608 + *(umode_t *)&dev_attr_threeg.attr.mode |= S_IWUSR;
53609 + pax_close_kernel();
53610 }
53611
53612 /* disable hardware control by fn key */
53613 diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
53614 index 978e6d6..1f0b37d 100644
53615 --- a/drivers/platform/x86/msi-wmi.c
53616 +++ b/drivers/platform/x86/msi-wmi.c
53617 @@ -184,7 +184,7 @@ static const struct backlight_ops msi_backlight_ops = {
53618 static void msi_wmi_notify(u32 value, void *context)
53619 {
53620 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
53621 - static struct key_entry *key;
53622 + struct key_entry *key;
53623 union acpi_object *obj;
53624 acpi_status status;
53625
53626 diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
53627 index 8c146e2..356c62e 100644
53628 --- a/drivers/platform/x86/samsung-laptop.c
53629 +++ b/drivers/platform/x86/samsung-laptop.c
53630 @@ -1567,7 +1567,7 @@ static int __init samsung_dmi_matched(const struct dmi_system_id *d)
53631 return 0;
53632 }
53633
53634 -static struct dmi_system_id __initdata samsung_dmi_table[] = {
53635 +static const struct dmi_system_id __initconst samsung_dmi_table[] = {
53636 {
53637 .matches = {
53638 DMI_MATCH(DMI_SYS_VENDOR,
53639 diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
53640 index e6aac72..e11ff24 100644
53641 --- a/drivers/platform/x86/samsung-q10.c
53642 +++ b/drivers/platform/x86/samsung-q10.c
53643 @@ -95,7 +95,7 @@ static int __init dmi_check_callback(const struct dmi_system_id *id)
53644 return 1;
53645 }
53646
53647 -static struct dmi_system_id __initdata samsungq10_dmi_table[] = {
53648 +static const struct dmi_system_id __initconst samsungq10_dmi_table[] = {
53649 {
53650 .ident = "Samsung Q10",
53651 .matches = {
53652 diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
53653 index aeb80d1..3eb376b 100644
53654 --- a/drivers/platform/x86/sony-laptop.c
53655 +++ b/drivers/platform/x86/sony-laptop.c
53656 @@ -2527,7 +2527,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
53657 }
53658
53659 /* High speed charging function */
53660 -static struct device_attribute *hsc_handle;
53661 +static device_attribute_no_const *hsc_handle;
53662
53663 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
53664 struct device_attribute *attr,
53665 @@ -2601,7 +2601,7 @@ static void sony_nc_highspeed_charging_cleanup(struct platform_device *pd)
53666 }
53667
53668 /* low battery function */
53669 -static struct device_attribute *lowbatt_handle;
53670 +static device_attribute_no_const *lowbatt_handle;
53671
53672 static ssize_t sony_nc_lowbatt_store(struct device *dev,
53673 struct device_attribute *attr,
53674 @@ -2667,7 +2667,7 @@ static void sony_nc_lowbatt_cleanup(struct platform_device *pd)
53675 }
53676
53677 /* fan speed function */
53678 -static struct device_attribute *fan_handle, *hsf_handle;
53679 +static device_attribute_no_const *fan_handle, *hsf_handle;
53680
53681 static ssize_t sony_nc_hsfan_store(struct device *dev,
53682 struct device_attribute *attr,
53683 @@ -2774,7 +2774,7 @@ static void sony_nc_fanspeed_cleanup(struct platform_device *pd)
53684 }
53685
53686 /* USB charge function */
53687 -static struct device_attribute *uc_handle;
53688 +static device_attribute_no_const *uc_handle;
53689
53690 static ssize_t sony_nc_usb_charge_store(struct device *dev,
53691 struct device_attribute *attr,
53692 @@ -2848,7 +2848,7 @@ static void sony_nc_usb_charge_cleanup(struct platform_device *pd)
53693 }
53694
53695 /* Panel ID function */
53696 -static struct device_attribute *panel_handle;
53697 +static device_attribute_no_const *panel_handle;
53698
53699 static ssize_t sony_nc_panelid_show(struct device *dev,
53700 struct device_attribute *attr, char *buffer)
53701 @@ -2895,7 +2895,7 @@ static void sony_nc_panelid_cleanup(struct platform_device *pd)
53702 }
53703
53704 /* smart connect function */
53705 -static struct device_attribute *sc_handle;
53706 +static device_attribute_no_const *sc_handle;
53707
53708 static ssize_t sony_nc_smart_conn_store(struct device *dev,
53709 struct device_attribute *attr,
53710 @@ -4851,7 +4851,7 @@ static struct acpi_driver sony_pic_driver = {
53711 .drv.pm = &sony_pic_pm,
53712 };
53713
53714 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
53715 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
53716 {
53717 .ident = "Sony Vaio",
53718 .matches = {
53719 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
53720 index 131dd74..d7deb43 100644
53721 --- a/drivers/platform/x86/thinkpad_acpi.c
53722 +++ b/drivers/platform/x86/thinkpad_acpi.c
53723 @@ -2460,10 +2460,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
53724 && !tp_features.bright_unkfw)
53725 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
53726 }
53727 +}
53728
53729 #undef TPACPI_COMPARE_KEY
53730 #undef TPACPI_MAY_SEND_KEY
53731 -}
53732
53733 /*
53734 * Polling driver
53735 diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c
53736 index 438d4c7..ca8a2fb 100644
53737 --- a/drivers/pnp/pnpbios/bioscalls.c
53738 +++ b/drivers/pnp/pnpbios/bioscalls.c
53739 @@ -59,7 +59,7 @@ do { \
53740 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
53741 } while(0)
53742
53743 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
53744 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
53745 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
53746
53747 /*
53748 @@ -96,7 +96,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53749
53750 cpu = get_cpu();
53751 save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8];
53752 +
53753 + pax_open_kernel();
53754 get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc;
53755 + pax_close_kernel();
53756
53757 /* On some boxes IRQ's during PnP BIOS calls are deadly. */
53758 spin_lock_irqsave(&pnp_bios_lock, flags);
53759 @@ -134,7 +137,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53760 :"memory");
53761 spin_unlock_irqrestore(&pnp_bios_lock, flags);
53762
53763 + pax_open_kernel();
53764 get_cpu_gdt_table(cpu)[0x40 / 8] = save_desc_40;
53765 + pax_close_kernel();
53766 +
53767 put_cpu();
53768
53769 /* If we get here and this is set then the PnP BIOS faulted on us. */
53770 @@ -468,7 +474,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
53771 return status;
53772 }
53773
53774 -void pnpbios_calls_init(union pnp_bios_install_struct *header)
53775 +void __init pnpbios_calls_init(union pnp_bios_install_struct *header)
53776 {
53777 int i;
53778
53779 @@ -476,6 +482,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
53780 pnp_bios_callpoint.offset = header->fields.pm16offset;
53781 pnp_bios_callpoint.segment = PNP_CS16;
53782
53783 + pax_open_kernel();
53784 +
53785 for_each_possible_cpu(i) {
53786 struct desc_struct *gdt = get_cpu_gdt_table(i);
53787 if (!gdt)
53788 @@ -487,4 +495,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
53789 set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
53790 (unsigned long)__va(header->fields.pm16dseg));
53791 }
53792 +
53793 + pax_close_kernel();
53794 }
53795 diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
53796 index facd43b..b291260 100644
53797 --- a/drivers/pnp/pnpbios/core.c
53798 +++ b/drivers/pnp/pnpbios/core.c
53799 @@ -494,7 +494,7 @@ static int __init exploding_pnp_bios(const struct dmi_system_id *d)
53800 return 0;
53801 }
53802
53803 -static struct dmi_system_id pnpbios_dmi_table[] __initdata = {
53804 +static const struct dmi_system_id pnpbios_dmi_table[] __initconst = {
53805 { /* PnPBIOS GPF on boot */
53806 .callback = exploding_pnp_bios,
53807 .ident = "Higraded P14H",
53808 diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
53809 index dfe1ee8..67e820c 100644
53810 --- a/drivers/power/pda_power.c
53811 +++ b/drivers/power/pda_power.c
53812 @@ -38,7 +38,11 @@ static struct power_supply *pda_psy_ac, *pda_psy_usb;
53813
53814 #if IS_ENABLED(CONFIG_USB_PHY)
53815 static struct usb_phy *transceiver;
53816 -static struct notifier_block otg_nb;
53817 +static int otg_handle_notification(struct notifier_block *nb,
53818 + unsigned long event, void *unused);
53819 +static struct notifier_block otg_nb = {
53820 + .notifier_call = otg_handle_notification
53821 +};
53822 #endif
53823
53824 static struct regulator *ac_draw;
53825 @@ -373,7 +377,6 @@ static int pda_power_probe(struct platform_device *pdev)
53826
53827 #if IS_ENABLED(CONFIG_USB_PHY)
53828 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
53829 - otg_nb.notifier_call = otg_handle_notification;
53830 ret = usb_register_notifier(transceiver, &otg_nb);
53831 if (ret) {
53832 dev_err(dev, "failure to register otg notifier\n");
53833 diff --git a/drivers/power/power_supply.h b/drivers/power/power_supply.h
53834 index cc439fd..8fa30df 100644
53835 --- a/drivers/power/power_supply.h
53836 +++ b/drivers/power/power_supply.h
53837 @@ -16,12 +16,12 @@ struct power_supply;
53838
53839 #ifdef CONFIG_SYSFS
53840
53841 -extern void power_supply_init_attrs(struct device_type *dev_type);
53842 +extern void power_supply_init_attrs(void);
53843 extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env);
53844
53845 #else
53846
53847 -static inline void power_supply_init_attrs(struct device_type *dev_type) {}
53848 +static inline void power_supply_init_attrs(void) {}
53849 #define power_supply_uevent NULL
53850
53851 #endif /* CONFIG_SYSFS */
53852 diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
53853 index 456987c..45396a3 100644
53854 --- a/drivers/power/power_supply_core.c
53855 +++ b/drivers/power/power_supply_core.c
53856 @@ -28,7 +28,10 @@ EXPORT_SYMBOL_GPL(power_supply_class);
53857 ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
53858 EXPORT_SYMBOL_GPL(power_supply_notifier);
53859
53860 -static struct device_type power_supply_dev_type;
53861 +extern const struct attribute_group *power_supply_attr_groups[];
53862 +static struct device_type power_supply_dev_type = {
53863 + .groups = power_supply_attr_groups,
53864 +};
53865
53866 #define POWER_SUPPLY_DEFERRED_REGISTER_TIME msecs_to_jiffies(10)
53867
53868 @@ -960,7 +963,7 @@ static int __init power_supply_class_init(void)
53869 return PTR_ERR(power_supply_class);
53870
53871 power_supply_class->dev_uevent = power_supply_uevent;
53872 - power_supply_init_attrs(&power_supply_dev_type);
53873 + power_supply_init_attrs();
53874
53875 return 0;
53876 }
53877 diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
53878 index ed2d7fd..266b28f 100644
53879 --- a/drivers/power/power_supply_sysfs.c
53880 +++ b/drivers/power/power_supply_sysfs.c
53881 @@ -238,17 +238,15 @@ static struct attribute_group power_supply_attr_group = {
53882 .is_visible = power_supply_attr_is_visible,
53883 };
53884
53885 -static const struct attribute_group *power_supply_attr_groups[] = {
53886 +const struct attribute_group *power_supply_attr_groups[] = {
53887 &power_supply_attr_group,
53888 NULL,
53889 };
53890
53891 -void power_supply_init_attrs(struct device_type *dev_type)
53892 +void power_supply_init_attrs(void)
53893 {
53894 int i;
53895
53896 - dev_type->groups = power_supply_attr_groups;
53897 -
53898 for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++)
53899 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
53900 }
53901 diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
53902 index c378d4e..f7946c3 100644
53903 --- a/drivers/power/reset/at91-reset.c
53904 +++ b/drivers/power/reset/at91-reset.c
53905 @@ -16,6 +16,7 @@
53906 #include <linux/of_address.h>
53907 #include <linux/platform_device.h>
53908 #include <linux/reboot.h>
53909 +#include <asm/pgtable.h>
53910
53911 #include <soc/at91/at91sam9_ddrsdr.h>
53912 #include <soc/at91/at91sam9_sdramc.h>
53913 @@ -203,7 +204,9 @@ static int at91_reset_of_probe(struct platform_device *pdev)
53914 }
53915
53916 match = of_match_node(at91_reset_of_match, pdev->dev.of_node);
53917 - at91_restart_nb.notifier_call = match->data;
53918 + pax_open_kernel();
53919 + *(void **)&at91_restart_nb.notifier_call = match->data;
53920 + pax_close_kernel();
53921 return register_restart_handler(&at91_restart_nb);
53922 }
53923
53924 @@ -231,9 +234,11 @@ static int at91_reset_platform_probe(struct platform_device *pdev)
53925 }
53926
53927 match = platform_get_device_id(pdev);
53928 - at91_restart_nb.notifier_call =
53929 + pax_open_kernel();
53930 + *(void **)&at91_restart_nb.notifier_call =
53931 (int (*)(struct notifier_block *,
53932 unsigned long, void *)) match->driver_data;
53933 + pax_close_kernel();
53934
53935 return register_restart_handler(&at91_restart_nb);
53936 }
53937 diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
53938 index 84419af..268ede8 100644
53939 --- a/drivers/powercap/powercap_sys.c
53940 +++ b/drivers/powercap/powercap_sys.c
53941 @@ -154,8 +154,77 @@ struct powercap_constraint_attr {
53942 struct device_attribute name_attr;
53943 };
53944
53945 +static ssize_t show_constraint_name(struct device *dev,
53946 + struct device_attribute *dev_attr,
53947 + char *buf);
53948 +
53949 static struct powercap_constraint_attr
53950 - constraint_attrs[MAX_CONSTRAINTS_PER_ZONE];
53951 + constraint_attrs[MAX_CONSTRAINTS_PER_ZONE] = {
53952 + [0 ... MAX_CONSTRAINTS_PER_ZONE - 1] = {
53953 + .power_limit_attr = {
53954 + .attr = {
53955 + .name = NULL,
53956 + .mode = S_IWUSR | S_IRUGO
53957 + },
53958 + .show = show_constraint_power_limit_uw,
53959 + .store = store_constraint_power_limit_uw
53960 + },
53961 +
53962 + .time_window_attr = {
53963 + .attr = {
53964 + .name = NULL,
53965 + .mode = S_IWUSR | S_IRUGO
53966 + },
53967 + .show = show_constraint_time_window_us,
53968 + .store = store_constraint_time_window_us
53969 + },
53970 +
53971 + .max_power_attr = {
53972 + .attr = {
53973 + .name = NULL,
53974 + .mode = S_IRUGO
53975 + },
53976 + .show = show_constraint_max_power_uw,
53977 + .store = NULL
53978 + },
53979 +
53980 + .min_power_attr = {
53981 + .attr = {
53982 + .name = NULL,
53983 + .mode = S_IRUGO
53984 + },
53985 + .show = show_constraint_min_power_uw,
53986 + .store = NULL
53987 + },
53988 +
53989 + .max_time_window_attr = {
53990 + .attr = {
53991 + .name = NULL,
53992 + .mode = S_IRUGO
53993 + },
53994 + .show = show_constraint_max_time_window_us,
53995 + .store = NULL
53996 + },
53997 +
53998 + .min_time_window_attr = {
53999 + .attr = {
54000 + .name = NULL,
54001 + .mode = S_IRUGO
54002 + },
54003 + .show = show_constraint_min_time_window_us,
54004 + .store = NULL
54005 + },
54006 +
54007 + .name_attr = {
54008 + .attr = {
54009 + .name = NULL,
54010 + .mode = S_IRUGO
54011 + },
54012 + .show = show_constraint_name,
54013 + .store = NULL
54014 + }
54015 + }
54016 +};
54017
54018 /* A list of powercap control_types */
54019 static LIST_HEAD(powercap_cntrl_list);
54020 @@ -193,23 +262,16 @@ static ssize_t show_constraint_name(struct device *dev,
54021 }
54022
54023 static int create_constraint_attribute(int id, const char *name,
54024 - int mode,
54025 - struct device_attribute *dev_attr,
54026 - ssize_t (*show)(struct device *,
54027 - struct device_attribute *, char *),
54028 - ssize_t (*store)(struct device *,
54029 - struct device_attribute *,
54030 - const char *, size_t)
54031 - )
54032 + struct device_attribute *dev_attr)
54033 {
54034 + name = kasprintf(GFP_KERNEL, "constraint_%d_%s", id, name);
54035
54036 - dev_attr->attr.name = kasprintf(GFP_KERNEL, "constraint_%d_%s",
54037 - id, name);
54038 - if (!dev_attr->attr.name)
54039 + if (!name)
54040 return -ENOMEM;
54041 - dev_attr->attr.mode = mode;
54042 - dev_attr->show = show;
54043 - dev_attr->store = store;
54044 +
54045 + pax_open_kernel();
54046 + *(const char **)&dev_attr->attr.name = name;
54047 + pax_close_kernel();
54048
54049 return 0;
54050 }
54051 @@ -236,49 +298,31 @@ static int seed_constraint_attributes(void)
54052
54053 for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
54054 ret = create_constraint_attribute(i, "power_limit_uw",
54055 - S_IWUSR | S_IRUGO,
54056 - &constraint_attrs[i].power_limit_attr,
54057 - show_constraint_power_limit_uw,
54058 - store_constraint_power_limit_uw);
54059 + &constraint_attrs[i].power_limit_attr);
54060 if (ret)
54061 goto err_alloc;
54062 ret = create_constraint_attribute(i, "time_window_us",
54063 - S_IWUSR | S_IRUGO,
54064 - &constraint_attrs[i].time_window_attr,
54065 - show_constraint_time_window_us,
54066 - store_constraint_time_window_us);
54067 + &constraint_attrs[i].time_window_attr);
54068 if (ret)
54069 goto err_alloc;
54070 - ret = create_constraint_attribute(i, "name", S_IRUGO,
54071 - &constraint_attrs[i].name_attr,
54072 - show_constraint_name,
54073 - NULL);
54074 + ret = create_constraint_attribute(i, "name",
54075 + &constraint_attrs[i].name_attr);
54076 if (ret)
54077 goto err_alloc;
54078 - ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
54079 - &constraint_attrs[i].max_power_attr,
54080 - show_constraint_max_power_uw,
54081 - NULL);
54082 + ret = create_constraint_attribute(i, "max_power_uw",
54083 + &constraint_attrs[i].max_power_attr);
54084 if (ret)
54085 goto err_alloc;
54086 - ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
54087 - &constraint_attrs[i].min_power_attr,
54088 - show_constraint_min_power_uw,
54089 - NULL);
54090 + ret = create_constraint_attribute(i, "min_power_uw",
54091 + &constraint_attrs[i].min_power_attr);
54092 if (ret)
54093 goto err_alloc;
54094 ret = create_constraint_attribute(i, "max_time_window_us",
54095 - S_IRUGO,
54096 - &constraint_attrs[i].max_time_window_attr,
54097 - show_constraint_max_time_window_us,
54098 - NULL);
54099 + &constraint_attrs[i].max_time_window_attr);
54100 if (ret)
54101 goto err_alloc;
54102 ret = create_constraint_attribute(i, "min_time_window_us",
54103 - S_IRUGO,
54104 - &constraint_attrs[i].min_time_window_attr,
54105 - show_constraint_min_time_window_us,
54106 - NULL);
54107 + &constraint_attrs[i].min_time_window_attr);
54108 if (ret)
54109 goto err_alloc;
54110
54111 @@ -378,10 +422,12 @@ static void create_power_zone_common_attributes(
54112 power_zone->zone_dev_attrs[count++] =
54113 &dev_attr_max_energy_range_uj.attr;
54114 if (power_zone->ops->get_energy_uj) {
54115 + pax_open_kernel();
54116 if (power_zone->ops->reset_energy_uj)
54117 - dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
54118 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
54119 else
54120 - dev_attr_energy_uj.attr.mode = S_IRUGO;
54121 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IRUGO;
54122 + pax_close_kernel();
54123 power_zone->zone_dev_attrs[count++] =
54124 &dev_attr_energy_uj.attr;
54125 }
54126 diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h
54127 index 9c5d414..c7900ce 100644
54128 --- a/drivers/ptp/ptp_private.h
54129 +++ b/drivers/ptp/ptp_private.h
54130 @@ -51,7 +51,7 @@ struct ptp_clock {
54131 struct mutex pincfg_mux; /* protect concurrent info->pin_config access */
54132 wait_queue_head_t tsev_wq;
54133 int defunct; /* tells readers to go away when clock is being removed */
54134 - struct device_attribute *pin_dev_attr;
54135 + device_attribute_no_const *pin_dev_attr;
54136 struct attribute **pin_attr;
54137 struct attribute_group pin_attr_group;
54138 };
54139 diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c
54140 index 302e626..12579af 100644
54141 --- a/drivers/ptp/ptp_sysfs.c
54142 +++ b/drivers/ptp/ptp_sysfs.c
54143 @@ -280,7 +280,7 @@ static int ptp_populate_pins(struct ptp_clock *ptp)
54144 goto no_pin_attr;
54145
54146 for (i = 0; i < n_pins; i++) {
54147 - struct device_attribute *da = &ptp->pin_dev_attr[i];
54148 + device_attribute_no_const *da = &ptp->pin_dev_attr[i];
54149 sysfs_attr_init(&da->attr);
54150 da->attr.name = info->pin_config[i].name;
54151 da->attr.mode = 0644;
54152 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
54153 index 8a34f6a..e4b3e44 100644
54154 --- a/drivers/regulator/core.c
54155 +++ b/drivers/regulator/core.c
54156 @@ -3681,7 +3681,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
54157 const struct regulation_constraints *constraints = NULL;
54158 const struct regulator_init_data *init_data;
54159 struct regulator_config *config = NULL;
54160 - static atomic_t regulator_no = ATOMIC_INIT(-1);
54161 + static atomic_unchecked_t regulator_no = ATOMIC_INIT(-1);
54162 struct regulator_dev *rdev;
54163 struct device *dev;
54164 int ret, i;
54165 @@ -3764,7 +3764,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
54166 rdev->dev.class = &regulator_class;
54167 rdev->dev.parent = dev;
54168 dev_set_name(&rdev->dev, "regulator.%lu",
54169 - (unsigned long) atomic_inc_return(&regulator_no));
54170 + (unsigned long) atomic_inc_return_unchecked(&regulator_no));
54171 ret = device_register(&rdev->dev);
54172 if (ret != 0) {
54173 put_device(&rdev->dev);
54174 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
54175 index b87f62d..345b9a1 100644
54176 --- a/drivers/regulator/max8660.c
54177 +++ b/drivers/regulator/max8660.c
54178 @@ -423,8 +423,10 @@ static int max8660_probe(struct i2c_client *client,
54179 max8660->shadow_regs[MAX8660_OVER1] = 5;
54180 } else {
54181 /* Otherwise devices can be toggled via software */
54182 - max8660_dcdc_ops.enable = max8660_dcdc_enable;
54183 - max8660_dcdc_ops.disable = max8660_dcdc_disable;
54184 + pax_open_kernel();
54185 + *(void **)&max8660_dcdc_ops.enable = max8660_dcdc_enable;
54186 + *(void **)&max8660_dcdc_ops.disable = max8660_dcdc_disable;
54187 + pax_close_kernel();
54188 }
54189
54190 /*
54191 diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
54192 index 5b75b7c..142c226 100644
54193 --- a/drivers/regulator/max8973-regulator.c
54194 +++ b/drivers/regulator/max8973-regulator.c
54195 @@ -658,9 +658,11 @@ static int max8973_probe(struct i2c_client *client,
54196 if (!pdata->enable_ext_control) {
54197 max->desc.enable_reg = MAX8973_VOUT;
54198 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54199 - max->ops.enable = regulator_enable_regmap;
54200 - max->ops.disable = regulator_disable_regmap;
54201 - max->ops.is_enabled = regulator_is_enabled_regmap;
54202 + pax_open_kernel();
54203 + *(void **)&max->ops.enable = regulator_enable_regmap;
54204 + *(void **)&max->ops.disable = regulator_disable_regmap;
54205 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54206 + pax_close_kernel();
54207 break;
54208 }
54209
54210 @@ -688,9 +690,11 @@ static int max8973_probe(struct i2c_client *client,
54211
54212 max->desc.enable_reg = MAX8973_VOUT;
54213 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54214 - max->ops.enable = regulator_enable_regmap;
54215 - max->ops.disable = regulator_disable_regmap;
54216 - max->ops.is_enabled = regulator_is_enabled_regmap;
54217 + pax_open_kernel();
54218 + *(void **)&max->ops.enable = regulator_enable_regmap;
54219 + *(void **)&max->ops.disable = regulator_disable_regmap;
54220 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54221 + pax_close_kernel();
54222 max->ops.set_current_limit = max8973_set_current_limit;
54223 max->ops.get_current_limit = max8973_get_current_limit;
54224 break;
54225 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
54226 index 0d17c92..a29f627 100644
54227 --- a/drivers/regulator/mc13892-regulator.c
54228 +++ b/drivers/regulator/mc13892-regulator.c
54229 @@ -584,10 +584,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
54230 mc13xxx_unlock(mc13892);
54231
54232 /* update mc13892_vcam ops */
54233 - memcpy(&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54234 + pax_open_kernel();
54235 + memcpy((void *)&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54236 sizeof(struct regulator_ops));
54237 - mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54238 - mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54239 + *(void **)&mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54240 + *(void **)&mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54241 + pax_close_kernel();
54242 mc13892_regulators[MC13892_VCAM].desc.ops = &mc13892_vcam_ops;
54243
54244 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
54245 diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
54246 index 9a3f2a6..604f463 100644
54247 --- a/drivers/rtc/rtc-armada38x.c
54248 +++ b/drivers/rtc/rtc-armada38x.c
54249 @@ -18,6 +18,7 @@
54250 #include <linux/of.h>
54251 #include <linux/platform_device.h>
54252 #include <linux/rtc.h>
54253 +#include <asm/pgtable.h>
54254
54255 #define RTC_STATUS 0x0
54256 #define RTC_STATUS_ALARM1 BIT(0)
54257 @@ -246,8 +247,10 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
54258 * If there is no interrupt available then we can't
54259 * use the alarm
54260 */
54261 - armada38x_rtc_ops.set_alarm = NULL;
54262 - armada38x_rtc_ops.alarm_irq_enable = NULL;
54263 + pax_open_kernel();
54264 + *(void **)&armada38x_rtc_ops.set_alarm = NULL;
54265 + *(void **)&armada38x_rtc_ops.alarm_irq_enable = NULL;
54266 + pax_close_kernel();
54267 }
54268 platform_set_drvdata(pdev, rtc);
54269 if (rtc->irq != -1)
54270 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
54271 index 8f7034b..2ddd4b3 100644
54272 --- a/drivers/rtc/rtc-cmos.c
54273 +++ b/drivers/rtc/rtc-cmos.c
54274 @@ -735,7 +735,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
54275 hpet_rtc_timer_init();
54276
54277 /* export at least the first block of NVRAM */
54278 - nvram.size = address_space - NVRAM_OFFSET;
54279 + pax_open_kernel();
54280 + *(size_t *)&nvram.size = address_space - NVRAM_OFFSET;
54281 + pax_close_kernel();
54282 retval = sysfs_create_bin_file(&dev->kobj, &nvram);
54283 if (retval < 0) {
54284 dev_dbg(dev, "can't create nvram file? %d\n", retval);
54285 diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
54286 index a6d9434..dc26b71 100644
54287 --- a/drivers/rtc/rtc-dev.c
54288 +++ b/drivers/rtc/rtc-dev.c
54289 @@ -16,6 +16,7 @@
54290 #include <linux/module.h>
54291 #include <linux/rtc.h>
54292 #include <linux/sched.h>
54293 +#include <linux/grsecurity.h>
54294 #include "rtc-core.h"
54295
54296 static dev_t rtc_devt;
54297 @@ -347,6 +348,8 @@ static long rtc_dev_ioctl(struct file *file,
54298 if (copy_from_user(&tm, uarg, sizeof(tm)))
54299 return -EFAULT;
54300
54301 + gr_log_timechange();
54302 +
54303 return rtc_set_time(rtc, &tm);
54304
54305 case RTC_PIE_ON:
54306 diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
54307 index a705e64..7710ad0 100644
54308 --- a/drivers/rtc/rtc-ds1307.c
54309 +++ b/drivers/rtc/rtc-ds1307.c
54310 @@ -110,7 +110,7 @@ struct ds1307 {
54311 u8 offset; /* register's offset */
54312 u8 regs[11];
54313 u16 nvram_offset;
54314 - struct bin_attribute *nvram;
54315 + bin_attribute_no_const *nvram;
54316 enum ds_type type;
54317 unsigned long flags;
54318 #define HAS_NVRAM 0 /* bit 0 == sysfs file active */
54319 diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c
54320 index d99a705..f8ebd79 100644
54321 --- a/drivers/rtc/rtc-m48t59.c
54322 +++ b/drivers/rtc/rtc-m48t59.c
54323 @@ -485,7 +485,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev)
54324 if (IS_ERR(m48t59->rtc))
54325 return PTR_ERR(m48t59->rtc);
54326
54327 - m48t59_nvram_attr.size = pdata->offset;
54328 + pax_open_kernel();
54329 + *(size_t *)&m48t59_nvram_attr.size = pdata->offset;
54330 + pax_close_kernel();
54331
54332 ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr);
54333 if (ret)
54334 diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
54335 index 3a2da4c..e88493c 100644
54336 --- a/drivers/rtc/rtc-test.c
54337 +++ b/drivers/rtc/rtc-test.c
54338 @@ -112,8 +112,10 @@ static int test_probe(struct platform_device *plat_dev)
54339 struct rtc_device *rtc;
54340
54341 if (test_mmss64) {
54342 - test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54343 - test_rtc_ops.set_mmss = NULL;
54344 + pax_open_kernel();
54345 + *(void **)&test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54346 + *(void **)&test_rtc_ops.set_mmss = NULL;
54347 + pax_close_kernel();
54348 }
54349
54350 rtc = devm_rtc_device_register(&plat_dev->dev, "test",
54351 diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
54352 index 7a6dbfb..5cdcd29 100644
54353 --- a/drivers/scsi/be2iscsi/be_main.c
54354 +++ b/drivers/scsi/be2iscsi/be_main.c
54355 @@ -3184,7 +3184,7 @@ be_sgl_create_contiguous(void *virtual_address,
54356 {
54357 WARN_ON(!virtual_address);
54358 WARN_ON(!physical_address);
54359 - WARN_ON(!length > 0);
54360 + WARN_ON(!length);
54361 WARN_ON(!sgl);
54362
54363 sgl->va = virtual_address;
54364 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
54365 index e693af6..2e525b6 100644
54366 --- a/drivers/scsi/bfa/bfa_fcpim.h
54367 +++ b/drivers/scsi/bfa/bfa_fcpim.h
54368 @@ -36,7 +36,7 @@ struct bfa_iotag_s {
54369
54370 struct bfa_itn_s {
54371 bfa_isr_func_t isr;
54372 -};
54373 +} __no_const;
54374
54375 void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
54376 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
54377 diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
54378 index 0f19455..ef7adb5 100644
54379 --- a/drivers/scsi/bfa/bfa_fcs.c
54380 +++ b/drivers/scsi/bfa/bfa_fcs.c
54381 @@ -38,10 +38,21 @@ struct bfa_fcs_mod_s {
54382 #define BFA_FCS_MODULE(_mod) { _mod ## _modinit, _mod ## _modexit }
54383
54384 static struct bfa_fcs_mod_s fcs_modules[] = {
54385 - { bfa_fcs_port_attach, NULL, NULL },
54386 - { bfa_fcs_uf_attach, NULL, NULL },
54387 - { bfa_fcs_fabric_attach, bfa_fcs_fabric_modinit,
54388 - bfa_fcs_fabric_modexit },
54389 + {
54390 + .attach = bfa_fcs_port_attach,
54391 + .modinit = NULL,
54392 + .modexit = NULL
54393 + },
54394 + {
54395 + .attach = bfa_fcs_uf_attach,
54396 + .modinit = NULL,
54397 + .modexit = NULL
54398 + },
54399 + {
54400 + .attach = bfa_fcs_fabric_attach,
54401 + .modinit = bfa_fcs_fabric_modinit,
54402 + .modexit = bfa_fcs_fabric_modexit
54403 + },
54404 };
54405
54406 /*
54407 diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
54408 index ff75ef8..2dfe00a 100644
54409 --- a/drivers/scsi/bfa/bfa_fcs_lport.c
54410 +++ b/drivers/scsi/bfa/bfa_fcs_lport.c
54411 @@ -89,15 +89,26 @@ static struct {
54412 void (*offline) (struct bfa_fcs_lport_s *port);
54413 } __port_action[] = {
54414 {
54415 - bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
54416 - bfa_fcs_lport_unknown_offline}, {
54417 - bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
54418 - bfa_fcs_lport_fab_offline}, {
54419 - bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
54420 - bfa_fcs_lport_n2n_offline}, {
54421 - bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
54422 - bfa_fcs_lport_loop_offline},
54423 - };
54424 + .init = bfa_fcs_lport_unknown_init,
54425 + .online = bfa_fcs_lport_unknown_online,
54426 + .offline = bfa_fcs_lport_unknown_offline
54427 + },
54428 + {
54429 + .init = bfa_fcs_lport_fab_init,
54430 + .online = bfa_fcs_lport_fab_online,
54431 + .offline = bfa_fcs_lport_fab_offline
54432 + },
54433 + {
54434 + .init = bfa_fcs_lport_n2n_init,
54435 + .online = bfa_fcs_lport_n2n_online,
54436 + .offline = bfa_fcs_lport_n2n_offline
54437 + },
54438 + {
54439 + .init = bfa_fcs_lport_loop_init,
54440 + .online = bfa_fcs_lport_loop_online,
54441 + .offline = bfa_fcs_lport_loop_offline
54442 + },
54443 +};
54444
54445 /*
54446 * fcs_port_sm FCS logical port state machine
54447 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
54448 index a38aafa0..fe8f03b 100644
54449 --- a/drivers/scsi/bfa/bfa_ioc.h
54450 +++ b/drivers/scsi/bfa/bfa_ioc.h
54451 @@ -258,7 +258,7 @@ struct bfa_ioc_cbfn_s {
54452 bfa_ioc_disable_cbfn_t disable_cbfn;
54453 bfa_ioc_hbfail_cbfn_t hbfail_cbfn;
54454 bfa_ioc_reset_cbfn_t reset_cbfn;
54455 -};
54456 +} __no_const;
54457
54458 /*
54459 * IOC event notification mechanism.
54460 @@ -352,7 +352,7 @@ struct bfa_ioc_hwif_s {
54461 void (*ioc_set_alt_fwstate) (struct bfa_ioc_s *ioc,
54462 enum bfi_ioc_state fwstate);
54463 enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc_s *ioc);
54464 -};
54465 +} __no_const;
54466
54467 /*
54468 * Queue element to wait for room in request queue. FIFO order is
54469 diff --git a/drivers/scsi/bfa/bfa_modules.h b/drivers/scsi/bfa/bfa_modules.h
54470 index a14c784..6de6790 100644
54471 --- a/drivers/scsi/bfa/bfa_modules.h
54472 +++ b/drivers/scsi/bfa/bfa_modules.h
54473 @@ -78,12 +78,12 @@ enum {
54474 \
54475 extern struct bfa_module_s hal_mod_ ## __mod; \
54476 struct bfa_module_s hal_mod_ ## __mod = { \
54477 - bfa_ ## __mod ## _meminfo, \
54478 - bfa_ ## __mod ## _attach, \
54479 - bfa_ ## __mod ## _detach, \
54480 - bfa_ ## __mod ## _start, \
54481 - bfa_ ## __mod ## _stop, \
54482 - bfa_ ## __mod ## _iocdisable, \
54483 + .meminfo = bfa_ ## __mod ## _meminfo, \
54484 + .attach = bfa_ ## __mod ## _attach, \
54485 + .detach = bfa_ ## __mod ## _detach, \
54486 + .start = bfa_ ## __mod ## _start, \
54487 + .stop = bfa_ ## __mod ## _stop, \
54488 + .iocdisable = bfa_ ## __mod ## _iocdisable, \
54489 }
54490
54491 #define BFA_CACHELINE_SZ (256)
54492 diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
54493 index 045c4e1..13de803 100644
54494 --- a/drivers/scsi/fcoe/fcoe_sysfs.c
54495 +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
54496 @@ -33,8 +33,8 @@
54497 */
54498 #include "libfcoe.h"
54499
54500 -static atomic_t ctlr_num;
54501 -static atomic_t fcf_num;
54502 +static atomic_unchecked_t ctlr_num;
54503 +static atomic_unchecked_t fcf_num;
54504
54505 /*
54506 * fcoe_fcf_dev_loss_tmo: the default number of seconds that fcoe sysfs
54507 @@ -685,7 +685,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
54508 if (!ctlr)
54509 goto out;
54510
54511 - ctlr->id = atomic_inc_return(&ctlr_num) - 1;
54512 + ctlr->id = atomic_inc_return_unchecked(&ctlr_num) - 1;
54513 ctlr->f = f;
54514 ctlr->mode = FIP_CONN_TYPE_FABRIC;
54515 INIT_LIST_HEAD(&ctlr->fcfs);
54516 @@ -902,7 +902,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
54517 fcf->dev.parent = &ctlr->dev;
54518 fcf->dev.bus = &fcoe_bus_type;
54519 fcf->dev.type = &fcoe_fcf_device_type;
54520 - fcf->id = atomic_inc_return(&fcf_num) - 1;
54521 + fcf->id = atomic_inc_return_unchecked(&fcf_num) - 1;
54522 fcf->state = FCOE_FCF_STATE_UNKNOWN;
54523
54524 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo;
54525 @@ -938,8 +938,8 @@ int __init fcoe_sysfs_setup(void)
54526 {
54527 int error;
54528
54529 - atomic_set(&ctlr_num, 0);
54530 - atomic_set(&fcf_num, 0);
54531 + atomic_set_unchecked(&ctlr_num, 0);
54532 + atomic_set_unchecked(&fcf_num, 0);
54533
54534 error = bus_register(&fcoe_bus_type);
54535 if (error)
54536 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
54537 index 8bb173e..20236b4 100644
54538 --- a/drivers/scsi/hosts.c
54539 +++ b/drivers/scsi/hosts.c
54540 @@ -42,7 +42,7 @@
54541 #include "scsi_logging.h"
54542
54543
54544 -static atomic_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54545 +static atomic_unchecked_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54546
54547
54548 static void scsi_host_cls_release(struct device *dev)
54549 @@ -392,7 +392,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
54550 * subtract one because we increment first then return, but we need to
54551 * know what the next host number was before increment
54552 */
54553 - shost->host_no = atomic_inc_return(&scsi_host_next_hn) - 1;
54554 + shost->host_no = atomic_inc_return_unchecked(&scsi_host_next_hn) - 1;
54555 shost->dma_channel = 0xff;
54556
54557 /* These three are default values which can be overridden */
54558 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
54559 index 40669f8..826df08 100644
54560 --- a/drivers/scsi/hpsa.c
54561 +++ b/drivers/scsi/hpsa.c
54562 @@ -897,10 +897,10 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
54563 struct reply_queue_buffer *rq = &h->reply_queue[q];
54564
54565 if (h->transMethod & CFGTBL_Trans_io_accel1)
54566 - return h->access.command_completed(h, q);
54567 + return h->access->command_completed(h, q);
54568
54569 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
54570 - return h->access.command_completed(h, q);
54571 + return h->access->command_completed(h, q);
54572
54573 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
54574 a = rq->head[rq->current_entry];
54575 @@ -1082,7 +1082,7 @@ static void __enqueue_cmd_and_start_io(struct ctlr_info *h,
54576 break;
54577 default:
54578 set_performant_mode(h, c, reply_queue);
54579 - h->access.submit_command(h, c);
54580 + h->access->submit_command(h, c);
54581 }
54582 }
54583
54584 @@ -6406,17 +6406,17 @@ static void __iomem *remap_pci_mem(ulong base, ulong size)
54585
54586 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
54587 {
54588 - return h->access.command_completed(h, q);
54589 + return h->access->command_completed(h, q);
54590 }
54591
54592 static inline bool interrupt_pending(struct ctlr_info *h)
54593 {
54594 - return h->access.intr_pending(h);
54595 + return h->access->intr_pending(h);
54596 }
54597
54598 static inline long interrupt_not_for_us(struct ctlr_info *h)
54599 {
54600 - return (h->access.intr_pending(h) == 0) ||
54601 + return (h->access->intr_pending(h) == 0) ||
54602 (h->interrupts_enabled == 0);
54603 }
54604
54605 @@ -7354,7 +7354,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
54606 if (prod_index < 0)
54607 return prod_index;
54608 h->product_name = products[prod_index].product_name;
54609 - h->access = *(products[prod_index].access);
54610 + h->access = products[prod_index].access;
54611
54612 h->needs_abort_tags_swizzled =
54613 ctlr_needs_abort_tags_swizzled(h->board_id);
54614 @@ -7753,7 +7753,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
54615 unsigned long flags;
54616 u32 lockup_detected;
54617
54618 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54619 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54620 spin_lock_irqsave(&h->lock, flags);
54621 lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
54622 if (!lockup_detected) {
54623 @@ -8036,7 +8036,7 @@ reinit_after_soft_reset:
54624 }
54625
54626 /* make sure the board interrupts are off */
54627 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54628 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54629
54630 rc = hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx);
54631 if (rc)
54632 @@ -8094,7 +8094,7 @@ reinit_after_soft_reset:
54633 * fake ones to scoop up any residual completions.
54634 */
54635 spin_lock_irqsave(&h->lock, flags);
54636 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54637 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54638 spin_unlock_irqrestore(&h->lock, flags);
54639 hpsa_free_irqs(h);
54640 rc = hpsa_request_irqs(h, hpsa_msix_discard_completions,
54641 @@ -8124,9 +8124,9 @@ reinit_after_soft_reset:
54642 dev_info(&h->pdev->dev, "Board READY.\n");
54643 dev_info(&h->pdev->dev,
54644 "Waiting for stale completions to drain.\n");
54645 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54646 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54647 msleep(10000);
54648 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54649 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54650
54651 rc = controller_reset_failed(h->cfgtable);
54652 if (rc)
54653 @@ -8151,7 +8151,7 @@ reinit_after_soft_reset:
54654
54655
54656 /* Turn the interrupts on so we can service requests */
54657 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54658 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54659
54660 hpsa_hba_inquiry(h);
54661
54662 @@ -8167,7 +8167,7 @@ reinit_after_soft_reset:
54663
54664 clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
54665 hpsa_free_performant_mode(h);
54666 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54667 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54668 clean6: /* sg, cmd, irq, pci, lockup, wq/aer/h */
54669 hpsa_free_sg_chain_blocks(h);
54670 clean5: /* cmd, irq, shost, pci, lu, aer/h */
54671 @@ -8237,7 +8237,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
54672 * To write all data in the battery backed cache to disks
54673 */
54674 hpsa_flush_cache(h);
54675 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54676 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54677 hpsa_free_irqs(h); /* init_one 4 */
54678 hpsa_disable_interrupt_mode(h); /* pci_init 2 */
54679 }
54680 @@ -8375,7 +8375,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54681 CFGTBL_Trans_enable_directed_msix |
54682 (trans_support & (CFGTBL_Trans_io_accel1 |
54683 CFGTBL_Trans_io_accel2));
54684 - struct access_method access = SA5_performant_access;
54685 + struct access_method *access = &SA5_performant_access;
54686
54687 /* This is a bit complicated. There are 8 registers on
54688 * the controller which we write to to tell it 8 different
54689 @@ -8417,7 +8417,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54690 * perform the superfluous readl() after each command submission.
54691 */
54692 if (trans_support & (CFGTBL_Trans_io_accel1 | CFGTBL_Trans_io_accel2))
54693 - access = SA5_performant_access_no_read;
54694 + access = &SA5_performant_access_no_read;
54695
54696 /* Controller spec: zero out this buffer. */
54697 for (i = 0; i < h->nreply_queues; i++)
54698 @@ -8447,12 +8447,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54699 * enable outbound interrupt coalescing in accelerator mode;
54700 */
54701 if (trans_support & CFGTBL_Trans_io_accel1) {
54702 - access = SA5_ioaccel_mode1_access;
54703 + access = &SA5_ioaccel_mode1_access;
54704 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54705 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54706 } else {
54707 if (trans_support & CFGTBL_Trans_io_accel2) {
54708 - access = SA5_ioaccel_mode2_access;
54709 + access = &SA5_ioaccel_mode2_access;
54710 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54711 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54712 }
54713 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
54714 index 27debb3..394d998 100644
54715 --- a/drivers/scsi/hpsa.h
54716 +++ b/drivers/scsi/hpsa.h
54717 @@ -153,7 +153,7 @@ struct ctlr_info {
54718 unsigned int msix_vector;
54719 unsigned int msi_vector;
54720 int intr_mode; /* either PERF_MODE_INT or SIMPLE_MODE_INT */
54721 - struct access_method access;
54722 + struct access_method *access;
54723
54724 /* queue and queue Info */
54725 unsigned int Qdepth;
54726 @@ -542,38 +542,38 @@ static unsigned long SA5_ioaccel_mode1_completed(struct ctlr_info *h, u8 q)
54727 }
54728
54729 static struct access_method SA5_access = {
54730 - SA5_submit_command,
54731 - SA5_intr_mask,
54732 - SA5_intr_pending,
54733 - SA5_completed,
54734 + .submit_command = SA5_submit_command,
54735 + .set_intr_mask = SA5_intr_mask,
54736 + .intr_pending = SA5_intr_pending,
54737 + .command_completed = SA5_completed,
54738 };
54739
54740 static struct access_method SA5_ioaccel_mode1_access = {
54741 - SA5_submit_command,
54742 - SA5_performant_intr_mask,
54743 - SA5_ioaccel_mode1_intr_pending,
54744 - SA5_ioaccel_mode1_completed,
54745 + .submit_command = SA5_submit_command,
54746 + .set_intr_mask = SA5_performant_intr_mask,
54747 + .intr_pending = SA5_ioaccel_mode1_intr_pending,
54748 + .command_completed = SA5_ioaccel_mode1_completed,
54749 };
54750
54751 static struct access_method SA5_ioaccel_mode2_access = {
54752 - SA5_submit_command_ioaccel2,
54753 - SA5_performant_intr_mask,
54754 - SA5_performant_intr_pending,
54755 - SA5_performant_completed,
54756 + .submit_command = SA5_submit_command_ioaccel2,
54757 + .set_intr_mask = SA5_performant_intr_mask,
54758 + .intr_pending = SA5_performant_intr_pending,
54759 + .command_completed = SA5_performant_completed,
54760 };
54761
54762 static struct access_method SA5_performant_access = {
54763 - SA5_submit_command,
54764 - SA5_performant_intr_mask,
54765 - SA5_performant_intr_pending,
54766 - SA5_performant_completed,
54767 + .submit_command = SA5_submit_command,
54768 + .set_intr_mask = SA5_performant_intr_mask,
54769 + .intr_pending = SA5_performant_intr_pending,
54770 + .command_completed = SA5_performant_completed,
54771 };
54772
54773 static struct access_method SA5_performant_access_no_read = {
54774 - SA5_submit_command_no_read,
54775 - SA5_performant_intr_mask,
54776 - SA5_performant_intr_pending,
54777 - SA5_performant_completed,
54778 + .submit_command = SA5_submit_command_no_read,
54779 + .set_intr_mask = SA5_performant_intr_mask,
54780 + .intr_pending = SA5_performant_intr_pending,
54781 + .command_completed = SA5_performant_completed,
54782 };
54783
54784 struct board_type {
54785 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
54786 index 30f9ef0..a1e29ac 100644
54787 --- a/drivers/scsi/libfc/fc_exch.c
54788 +++ b/drivers/scsi/libfc/fc_exch.c
54789 @@ -101,12 +101,12 @@ struct fc_exch_mgr {
54790 u16 pool_max_index;
54791
54792 struct {
54793 - atomic_t no_free_exch;
54794 - atomic_t no_free_exch_xid;
54795 - atomic_t xid_not_found;
54796 - atomic_t xid_busy;
54797 - atomic_t seq_not_found;
54798 - atomic_t non_bls_resp;
54799 + atomic_unchecked_t no_free_exch;
54800 + atomic_unchecked_t no_free_exch_xid;
54801 + atomic_unchecked_t xid_not_found;
54802 + atomic_unchecked_t xid_busy;
54803 + atomic_unchecked_t seq_not_found;
54804 + atomic_unchecked_t non_bls_resp;
54805 } stats;
54806 };
54807
54808 @@ -809,7 +809,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
54809 /* allocate memory for exchange */
54810 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
54811 if (!ep) {
54812 - atomic_inc(&mp->stats.no_free_exch);
54813 + atomic_inc_unchecked(&mp->stats.no_free_exch);
54814 goto out;
54815 }
54816 memset(ep, 0, sizeof(*ep));
54817 @@ -872,7 +872,7 @@ out:
54818 return ep;
54819 err:
54820 spin_unlock_bh(&pool->lock);
54821 - atomic_inc(&mp->stats.no_free_exch_xid);
54822 + atomic_inc_unchecked(&mp->stats.no_free_exch_xid);
54823 mempool_free(ep, mp->ep_pool);
54824 return NULL;
54825 }
54826 @@ -1021,7 +1021,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54827 xid = ntohs(fh->fh_ox_id); /* we originated exch */
54828 ep = fc_exch_find(mp, xid);
54829 if (!ep) {
54830 - atomic_inc(&mp->stats.xid_not_found);
54831 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54832 reject = FC_RJT_OX_ID;
54833 goto out;
54834 }
54835 @@ -1051,7 +1051,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54836 ep = fc_exch_find(mp, xid);
54837 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
54838 if (ep) {
54839 - atomic_inc(&mp->stats.xid_busy);
54840 + atomic_inc_unchecked(&mp->stats.xid_busy);
54841 reject = FC_RJT_RX_ID;
54842 goto rel;
54843 }
54844 @@ -1062,7 +1062,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54845 }
54846 xid = ep->xid; /* get our XID */
54847 } else if (!ep) {
54848 - atomic_inc(&mp->stats.xid_not_found);
54849 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54850 reject = FC_RJT_RX_ID; /* XID not found */
54851 goto out;
54852 }
54853 @@ -1080,7 +1080,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54854 } else {
54855 sp = &ep->seq;
54856 if (sp->id != fh->fh_seq_id) {
54857 - atomic_inc(&mp->stats.seq_not_found);
54858 + atomic_inc_unchecked(&mp->stats.seq_not_found);
54859 if (f_ctl & FC_FC_END_SEQ) {
54860 /*
54861 * Update sequence_id based on incoming last
54862 @@ -1531,22 +1531,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54863
54864 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
54865 if (!ep) {
54866 - atomic_inc(&mp->stats.xid_not_found);
54867 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54868 goto out;
54869 }
54870 if (ep->esb_stat & ESB_ST_COMPLETE) {
54871 - atomic_inc(&mp->stats.xid_not_found);
54872 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54873 goto rel;
54874 }
54875 if (ep->rxid == FC_XID_UNKNOWN)
54876 ep->rxid = ntohs(fh->fh_rx_id);
54877 if (ep->sid != 0 && ep->sid != ntoh24(fh->fh_d_id)) {
54878 - atomic_inc(&mp->stats.xid_not_found);
54879 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54880 goto rel;
54881 }
54882 if (ep->did != ntoh24(fh->fh_s_id) &&
54883 ep->did != FC_FID_FLOGI) {
54884 - atomic_inc(&mp->stats.xid_not_found);
54885 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54886 goto rel;
54887 }
54888 sof = fr_sof(fp);
54889 @@ -1555,7 +1555,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54890 sp->ssb_stat |= SSB_ST_RESP;
54891 sp->id = fh->fh_seq_id;
54892 } else if (sp->id != fh->fh_seq_id) {
54893 - atomic_inc(&mp->stats.seq_not_found);
54894 + atomic_inc_unchecked(&mp->stats.seq_not_found);
54895 goto rel;
54896 }
54897
54898 @@ -1618,9 +1618,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54899 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
54900
54901 if (!sp)
54902 - atomic_inc(&mp->stats.xid_not_found);
54903 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54904 else
54905 - atomic_inc(&mp->stats.non_bls_resp);
54906 + atomic_inc_unchecked(&mp->stats.non_bls_resp);
54907
54908 fc_frame_free(fp);
54909 }
54910 @@ -2261,13 +2261,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
54911
54912 list_for_each_entry(ema, &lport->ema_list, ema_list) {
54913 mp = ema->mp;
54914 - st->fc_no_free_exch += atomic_read(&mp->stats.no_free_exch);
54915 + st->fc_no_free_exch += atomic_read_unchecked(&mp->stats.no_free_exch);
54916 st->fc_no_free_exch_xid +=
54917 - atomic_read(&mp->stats.no_free_exch_xid);
54918 - st->fc_xid_not_found += atomic_read(&mp->stats.xid_not_found);
54919 - st->fc_xid_busy += atomic_read(&mp->stats.xid_busy);
54920 - st->fc_seq_not_found += atomic_read(&mp->stats.seq_not_found);
54921 - st->fc_non_bls_resp += atomic_read(&mp->stats.non_bls_resp);
54922 + atomic_read_unchecked(&mp->stats.no_free_exch_xid);
54923 + st->fc_xid_not_found += atomic_read_unchecked(&mp->stats.xid_not_found);
54924 + st->fc_xid_busy += atomic_read_unchecked(&mp->stats.xid_busy);
54925 + st->fc_seq_not_found += atomic_read_unchecked(&mp->stats.seq_not_found);
54926 + st->fc_non_bls_resp += atomic_read_unchecked(&mp->stats.non_bls_resp);
54927 }
54928 }
54929 EXPORT_SYMBOL(fc_exch_update_stats);
54930 diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
54931 index 9c706d8..d3e3ed2 100644
54932 --- a/drivers/scsi/libsas/sas_ata.c
54933 +++ b/drivers/scsi/libsas/sas_ata.c
54934 @@ -535,7 +535,7 @@ static struct ata_port_operations sas_sata_ops = {
54935 .postreset = ata_std_postreset,
54936 .error_handler = ata_std_error_handler,
54937 .post_internal_cmd = sas_ata_post_internal,
54938 - .qc_defer = ata_std_qc_defer,
54939 + .qc_defer = ata_std_qc_defer,
54940 .qc_prep = ata_noop_qc_prep,
54941 .qc_issue = sas_ata_qc_issue,
54942 .qc_fill_rtf = sas_ata_qc_fill_rtf,
54943 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
54944 index a5a56fa..43499fd 100644
54945 --- a/drivers/scsi/lpfc/lpfc.h
54946 +++ b/drivers/scsi/lpfc/lpfc.h
54947 @@ -435,7 +435,7 @@ struct lpfc_vport {
54948 struct dentry *debug_nodelist;
54949 struct dentry *vport_debugfs_root;
54950 struct lpfc_debugfs_trc *disc_trc;
54951 - atomic_t disc_trc_cnt;
54952 + atomic_unchecked_t disc_trc_cnt;
54953 #endif
54954 uint8_t stat_data_enabled;
54955 uint8_t stat_data_blocked;
54956 @@ -885,8 +885,8 @@ struct lpfc_hba {
54957 struct timer_list fabric_block_timer;
54958 unsigned long bit_flags;
54959 #define FABRIC_COMANDS_BLOCKED 0
54960 - atomic_t num_rsrc_err;
54961 - atomic_t num_cmd_success;
54962 + atomic_unchecked_t num_rsrc_err;
54963 + atomic_unchecked_t num_cmd_success;
54964 unsigned long last_rsrc_error_time;
54965 unsigned long last_ramp_down_time;
54966 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
54967 @@ -921,7 +921,7 @@ struct lpfc_hba {
54968
54969 struct dentry *debug_slow_ring_trc;
54970 struct lpfc_debugfs_trc *slow_ring_trc;
54971 - atomic_t slow_ring_trc_cnt;
54972 + atomic_unchecked_t slow_ring_trc_cnt;
54973 /* iDiag debugfs sub-directory */
54974 struct dentry *idiag_root;
54975 struct dentry *idiag_pci_cfg;
54976 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
54977 index 25aa9b9..d700a65 100644
54978 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
54979 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
54980 @@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
54981
54982 #include <linux/debugfs.h>
54983
54984 -static atomic_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
54985 +static atomic_unchecked_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
54986 static unsigned long lpfc_debugfs_start_time = 0L;
54987
54988 /* iDiag */
54989 @@ -147,7 +147,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
54990 lpfc_debugfs_enable = 0;
54991
54992 len = 0;
54993 - index = (atomic_read(&vport->disc_trc_cnt) + 1) &
54994 + index = (atomic_read_unchecked(&vport->disc_trc_cnt) + 1) &
54995 (lpfc_debugfs_max_disc_trc - 1);
54996 for (i = index; i < lpfc_debugfs_max_disc_trc; i++) {
54997 dtp = vport->disc_trc + i;
54998 @@ -213,7 +213,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
54999 lpfc_debugfs_enable = 0;
55000
55001 len = 0;
55002 - index = (atomic_read(&phba->slow_ring_trc_cnt) + 1) &
55003 + index = (atomic_read_unchecked(&phba->slow_ring_trc_cnt) + 1) &
55004 (lpfc_debugfs_max_slow_ring_trc - 1);
55005 for (i = index; i < lpfc_debugfs_max_slow_ring_trc; i++) {
55006 dtp = phba->slow_ring_trc + i;
55007 @@ -646,14 +646,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
55008 !vport || !vport->disc_trc)
55009 return;
55010
55011 - index = atomic_inc_return(&vport->disc_trc_cnt) &
55012 + index = atomic_inc_return_unchecked(&vport->disc_trc_cnt) &
55013 (lpfc_debugfs_max_disc_trc - 1);
55014 dtp = vport->disc_trc + index;
55015 dtp->fmt = fmt;
55016 dtp->data1 = data1;
55017 dtp->data2 = data2;
55018 dtp->data3 = data3;
55019 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
55020 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
55021 dtp->jif = jiffies;
55022 #endif
55023 return;
55024 @@ -684,14 +684,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
55025 !phba || !phba->slow_ring_trc)
55026 return;
55027
55028 - index = atomic_inc_return(&phba->slow_ring_trc_cnt) &
55029 + index = atomic_inc_return_unchecked(&phba->slow_ring_trc_cnt) &
55030 (lpfc_debugfs_max_slow_ring_trc - 1);
55031 dtp = phba->slow_ring_trc + index;
55032 dtp->fmt = fmt;
55033 dtp->data1 = data1;
55034 dtp->data2 = data2;
55035 dtp->data3 = data3;
55036 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
55037 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
55038 dtp->jif = jiffies;
55039 #endif
55040 return;
55041 @@ -4268,7 +4268,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
55042 "slow_ring buffer\n");
55043 goto debug_failed;
55044 }
55045 - atomic_set(&phba->slow_ring_trc_cnt, 0);
55046 + atomic_set_unchecked(&phba->slow_ring_trc_cnt, 0);
55047 memset(phba->slow_ring_trc, 0,
55048 (sizeof(struct lpfc_debugfs_trc) *
55049 lpfc_debugfs_max_slow_ring_trc));
55050 @@ -4314,7 +4314,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
55051 "buffer\n");
55052 goto debug_failed;
55053 }
55054 - atomic_set(&vport->disc_trc_cnt, 0);
55055 + atomic_set_unchecked(&vport->disc_trc_cnt, 0);
55056
55057 snprintf(name, sizeof(name), "discovery_trace");
55058 vport->debug_disc_trc =
55059 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
55060 index f962118..6706983 100644
55061 --- a/drivers/scsi/lpfc/lpfc_init.c
55062 +++ b/drivers/scsi/lpfc/lpfc_init.c
55063 @@ -11416,8 +11416,10 @@ lpfc_init(void)
55064 "misc_register returned with status %d", error);
55065
55066 if (lpfc_enable_npiv) {
55067 - lpfc_transport_functions.vport_create = lpfc_vport_create;
55068 - lpfc_transport_functions.vport_delete = lpfc_vport_delete;
55069 + pax_open_kernel();
55070 + *(void **)&lpfc_transport_functions.vport_create = lpfc_vport_create;
55071 + *(void **)&lpfc_transport_functions.vport_delete = lpfc_vport_delete;
55072 + pax_close_kernel();
55073 }
55074 lpfc_transport_template =
55075 fc_attach_transport(&lpfc_transport_functions);
55076 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
55077 index e5eb40d..056dcd4 100644
55078 --- a/drivers/scsi/lpfc/lpfc_scsi.c
55079 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
55080 @@ -261,7 +261,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
55081 unsigned long expires;
55082
55083 spin_lock_irqsave(&phba->hbalock, flags);
55084 - atomic_inc(&phba->num_rsrc_err);
55085 + atomic_inc_unchecked(&phba->num_rsrc_err);
55086 phba->last_rsrc_error_time = jiffies;
55087
55088 expires = phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL;
55089 @@ -303,8 +303,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
55090 unsigned long num_rsrc_err, num_cmd_success;
55091 int i;
55092
55093 - num_rsrc_err = atomic_read(&phba->num_rsrc_err);
55094 - num_cmd_success = atomic_read(&phba->num_cmd_success);
55095 + num_rsrc_err = atomic_read_unchecked(&phba->num_rsrc_err);
55096 + num_cmd_success = atomic_read_unchecked(&phba->num_cmd_success);
55097
55098 /*
55099 * The error and success command counters are global per
55100 @@ -331,8 +331,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
55101 }
55102 }
55103 lpfc_destroy_vport_work_array(phba, vports);
55104 - atomic_set(&phba->num_rsrc_err, 0);
55105 - atomic_set(&phba->num_cmd_success, 0);
55106 + atomic_set_unchecked(&phba->num_rsrc_err, 0);
55107 + atomic_set_unchecked(&phba->num_cmd_success, 0);
55108 }
55109
55110 /**
55111 diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
55112 index 20c3754..1b05e727 100644
55113 --- a/drivers/scsi/megaraid/megaraid_sas.h
55114 +++ b/drivers/scsi/megaraid/megaraid_sas.h
55115 @@ -1700,7 +1700,7 @@ struct megasas_instance {
55116 s8 init_id;
55117
55118 u16 max_num_sge;
55119 - u16 max_fw_cmds;
55120 + u16 max_fw_cmds __intentional_overflow(-1);
55121 u16 max_mfi_cmds;
55122 u16 max_scsi_cmds;
55123 u32 max_sectors_per_req;
55124 diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55125 index 0ad09b2..c9e6939 100644
55126 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55127 +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55128 @@ -1638,7 +1638,7 @@ _scsih_get_resync(struct device *dev)
55129 {
55130 struct scsi_device *sdev = to_scsi_device(dev);
55131 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
55132 - static struct _raid_device *raid_device;
55133 + struct _raid_device *raid_device;
55134 unsigned long flags;
55135 Mpi2RaidVolPage0_t vol_pg0;
55136 Mpi2ConfigReply_t mpi_reply;
55137 @@ -1690,7 +1690,7 @@ _scsih_get_state(struct device *dev)
55138 {
55139 struct scsi_device *sdev = to_scsi_device(dev);
55140 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
55141 - static struct _raid_device *raid_device;
55142 + struct _raid_device *raid_device;
55143 unsigned long flags;
55144 Mpi2RaidVolPage0_t vol_pg0;
55145 Mpi2ConfigReply_t mpi_reply;
55146 @@ -6830,7 +6830,7 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc,
55147 Mpi2EventDataIrOperationStatus_t *event_data =
55148 (Mpi2EventDataIrOperationStatus_t *)
55149 fw_event->event_data;
55150 - static struct _raid_device *raid_device;
55151 + struct _raid_device *raid_device;
55152 unsigned long flags;
55153 u16 handle;
55154
55155 @@ -7317,7 +7317,7 @@ _scsih_scan_for_devices_after_reset(struct MPT2SAS_ADAPTER *ioc)
55156 u64 sas_address;
55157 struct _sas_device *sas_device;
55158 struct _sas_node *expander_device;
55159 - static struct _raid_device *raid_device;
55160 + struct _raid_device *raid_device;
55161 u8 retry_count;
55162 unsigned long flags;
55163
55164 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
55165 index ed31d8c..ab856b3 100644
55166 --- a/drivers/scsi/pmcraid.c
55167 +++ b/drivers/scsi/pmcraid.c
55168 @@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
55169 res->scsi_dev = scsi_dev;
55170 scsi_dev->hostdata = res;
55171 res->change_detected = 0;
55172 - atomic_set(&res->read_failures, 0);
55173 - atomic_set(&res->write_failures, 0);
55174 + atomic_set_unchecked(&res->read_failures, 0);
55175 + atomic_set_unchecked(&res->write_failures, 0);
55176 rc = 0;
55177 }
55178 spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
55179 @@ -2640,9 +2640,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
55180
55181 /* If this was a SCSI read/write command keep count of errors */
55182 if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
55183 - atomic_inc(&res->read_failures);
55184 + atomic_inc_unchecked(&res->read_failures);
55185 else if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_WRITE_CMD)
55186 - atomic_inc(&res->write_failures);
55187 + atomic_inc_unchecked(&res->write_failures);
55188
55189 if (!RES_IS_GSCSI(res->cfg_entry) &&
55190 masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
55191 @@ -3468,7 +3468,7 @@ static int pmcraid_queuecommand_lck(
55192 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55193 * hrrq_id assigned here in queuecommand
55194 */
55195 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55196 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55197 pinstance->num_hrrq;
55198 cmd->cmd_done = pmcraid_io_done;
55199
55200 @@ -3782,7 +3782,7 @@ static long pmcraid_ioctl_passthrough(
55201 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55202 * hrrq_id assigned here in queuecommand
55203 */
55204 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55205 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55206 pinstance->num_hrrq;
55207
55208 if (request_size) {
55209 @@ -4420,7 +4420,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
55210
55211 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
55212 /* add resources only after host is added into system */
55213 - if (!atomic_read(&pinstance->expose_resources))
55214 + if (!atomic_read_unchecked(&pinstance->expose_resources))
55215 return;
55216
55217 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
55218 @@ -5237,8 +5237,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
55219 init_waitqueue_head(&pinstance->reset_wait_q);
55220
55221 atomic_set(&pinstance->outstanding_cmds, 0);
55222 - atomic_set(&pinstance->last_message_id, 0);
55223 - atomic_set(&pinstance->expose_resources, 0);
55224 + atomic_set_unchecked(&pinstance->last_message_id, 0);
55225 + atomic_set_unchecked(&pinstance->expose_resources, 0);
55226
55227 INIT_LIST_HEAD(&pinstance->free_res_q);
55228 INIT_LIST_HEAD(&pinstance->used_res_q);
55229 @@ -5951,7 +5951,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
55230 /* Schedule worker thread to handle CCN and take care of adding and
55231 * removing devices to OS
55232 */
55233 - atomic_set(&pinstance->expose_resources, 1);
55234 + atomic_set_unchecked(&pinstance->expose_resources, 1);
55235 schedule_work(&pinstance->worker_q);
55236 return rc;
55237
55238 diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h
55239 index e1d150f..6c6df44 100644
55240 --- a/drivers/scsi/pmcraid.h
55241 +++ b/drivers/scsi/pmcraid.h
55242 @@ -748,7 +748,7 @@ struct pmcraid_instance {
55243 struct pmcraid_isr_param hrrq_vector[PMCRAID_NUM_MSIX_VECTORS];
55244
55245 /* Message id as filled in last fired IOARCB, used to identify HRRQ */
55246 - atomic_t last_message_id;
55247 + atomic_unchecked_t last_message_id;
55248
55249 /* configuration table */
55250 struct pmcraid_config_table *cfg_table;
55251 @@ -777,7 +777,7 @@ struct pmcraid_instance {
55252 atomic_t outstanding_cmds;
55253
55254 /* should add/delete resources to mid-layer now ?*/
55255 - atomic_t expose_resources;
55256 + atomic_unchecked_t expose_resources;
55257
55258
55259
55260 @@ -813,8 +813,8 @@ struct pmcraid_resource_entry {
55261 struct pmcraid_config_table_entry_ext cfg_entry_ext;
55262 };
55263 struct scsi_device *scsi_dev; /* Link scsi_device structure */
55264 - atomic_t read_failures; /* count of failed READ commands */
55265 - atomic_t write_failures; /* count of failed WRITE commands */
55266 + atomic_unchecked_t read_failures; /* count of failed READ commands */
55267 + atomic_unchecked_t write_failures; /* count of failed WRITE commands */
55268
55269 /* To indicate add/delete/modify during CCN */
55270 u8 change_detected;
55271 diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
55272 index 6b942d9..cd44452 100644
55273 --- a/drivers/scsi/qla2xxx/qla_attr.c
55274 +++ b/drivers/scsi/qla2xxx/qla_attr.c
55275 @@ -2206,7 +2206,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
55276 return 0;
55277 }
55278
55279 -struct fc_function_template qla2xxx_transport_functions = {
55280 +fc_function_template_no_const qla2xxx_transport_functions = {
55281
55282 .show_host_node_name = 1,
55283 .show_host_port_name = 1,
55284 @@ -2254,7 +2254,7 @@ struct fc_function_template qla2xxx_transport_functions = {
55285 .bsg_timeout = qla24xx_bsg_timeout,
55286 };
55287
55288 -struct fc_function_template qla2xxx_transport_vport_functions = {
55289 +fc_function_template_no_const qla2xxx_transport_vport_functions = {
55290
55291 .show_host_node_name = 1,
55292 .show_host_port_name = 1,
55293 diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
55294 index 7686bfe..4710893 100644
55295 --- a/drivers/scsi/qla2xxx/qla_gbl.h
55296 +++ b/drivers/scsi/qla2xxx/qla_gbl.h
55297 @@ -571,8 +571,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *, size_t);
55298 struct device_attribute;
55299 extern struct device_attribute *qla2x00_host_attrs[];
55300 struct fc_function_template;
55301 -extern struct fc_function_template qla2xxx_transport_functions;
55302 -extern struct fc_function_template qla2xxx_transport_vport_functions;
55303 +extern fc_function_template_no_const qla2xxx_transport_functions;
55304 +extern fc_function_template_no_const qla2xxx_transport_vport_functions;
55305 extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *);
55306 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *, bool);
55307 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
55308 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
55309 index c2dd17b..92bc0e0 100644
55310 --- a/drivers/scsi/qla2xxx/qla_os.c
55311 +++ b/drivers/scsi/qla2xxx/qla_os.c
55312 @@ -1424,8 +1424,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
55313 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
55314 /* Ok, a 64bit DMA mask is applicable. */
55315 ha->flags.enable_64bit_addressing = 1;
55316 - ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55317 - ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55318 + pax_open_kernel();
55319 + *(void **)&ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55320 + *(void **)&ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55321 + pax_close_kernel();
55322 return;
55323 }
55324 }
55325 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
55326 index a7cfc27..151f483 100644
55327 --- a/drivers/scsi/qla4xxx/ql4_def.h
55328 +++ b/drivers/scsi/qla4xxx/ql4_def.h
55329 @@ -306,7 +306,7 @@ struct ddb_entry {
55330 * (4000 only) */
55331 atomic_t relogin_timer; /* Max Time to wait for
55332 * relogin to complete */
55333 - atomic_t relogin_retry_count; /* Num of times relogin has been
55334 + atomic_unchecked_t relogin_retry_count; /* Num of times relogin has been
55335 * retried */
55336 uint32_t default_time2wait; /* Default Min time between
55337 * relogins (+aens) */
55338 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
55339 index 6d25879..3031a9f 100644
55340 --- a/drivers/scsi/qla4xxx/ql4_os.c
55341 +++ b/drivers/scsi/qla4xxx/ql4_os.c
55342 @@ -4491,12 +4491,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
55343 */
55344 if (!iscsi_is_session_online(cls_sess)) {
55345 /* Reset retry relogin timer */
55346 - atomic_inc(&ddb_entry->relogin_retry_count);
55347 + atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
55348 DEBUG2(ql4_printk(KERN_INFO, ha,
55349 "%s: index[%d] relogin timed out-retrying"
55350 " relogin (%d), retry (%d)\n", __func__,
55351 ddb_entry->fw_ddb_index,
55352 - atomic_read(&ddb_entry->relogin_retry_count),
55353 + atomic_read_unchecked(&ddb_entry->relogin_retry_count),
55354 ddb_entry->default_time2wait + 4));
55355 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
55356 atomic_set(&ddb_entry->retry_relogin_timer,
55357 @@ -6604,7 +6604,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
55358
55359 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
55360 atomic_set(&ddb_entry->relogin_timer, 0);
55361 - atomic_set(&ddb_entry->relogin_retry_count, 0);
55362 + atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
55363 def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
55364 ddb_entry->default_relogin_timeout =
55365 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
55366 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
55367 index 207d6a7..bf155b5 100644
55368 --- a/drivers/scsi/scsi.c
55369 +++ b/drivers/scsi/scsi.c
55370 @@ -591,7 +591,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
55371
55372 good_bytes = scsi_bufflen(cmd);
55373 if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) {
55374 - int old_good_bytes = good_bytes;
55375 + unsigned int old_good_bytes = good_bytes;
55376 drv = scsi_cmd_to_driver(cmd);
55377 if (drv->done)
55378 good_bytes = drv->done(cmd);
55379 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
55380 index 126a48c..b38f662 100644
55381 --- a/drivers/scsi/scsi_lib.c
55382 +++ b/drivers/scsi/scsi_lib.c
55383 @@ -1597,7 +1597,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
55384 shost = sdev->host;
55385 scsi_init_cmd_errh(cmd);
55386 cmd->result = DID_NO_CONNECT << 16;
55387 - atomic_inc(&cmd->device->iorequest_cnt);
55388 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55389
55390 /*
55391 * SCSI request completion path will do scsi_device_unbusy(),
55392 @@ -1620,9 +1620,9 @@ static void scsi_softirq_done(struct request *rq)
55393
55394 INIT_LIST_HEAD(&cmd->eh_entry);
55395
55396 - atomic_inc(&cmd->device->iodone_cnt);
55397 + atomic_inc_unchecked(&cmd->device->iodone_cnt);
55398 if (cmd->result)
55399 - atomic_inc(&cmd->device->ioerr_cnt);
55400 + atomic_inc_unchecked(&cmd->device->ioerr_cnt);
55401
55402 disposition = scsi_decide_disposition(cmd);
55403 if (disposition != SUCCESS &&
55404 @@ -1663,7 +1663,7 @@ static int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
55405 struct Scsi_Host *host = cmd->device->host;
55406 int rtn = 0;
55407
55408 - atomic_inc(&cmd->device->iorequest_cnt);
55409 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55410
55411 /* check if the device is still usable */
55412 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
55413 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
55414 index dff8faf..28dcc11 100644
55415 --- a/drivers/scsi/scsi_sysfs.c
55416 +++ b/drivers/scsi/scsi_sysfs.c
55417 @@ -790,7 +790,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
55418 char *buf) \
55419 { \
55420 struct scsi_device *sdev = to_scsi_device(dev); \
55421 - unsigned long long count = atomic_read(&sdev->field); \
55422 + unsigned long long count = atomic_read_unchecked(&sdev->field); \
55423 return snprintf(buf, 20, "0x%llx\n", count); \
55424 } \
55425 static DEVICE_ATTR(field, S_IRUGO, show_iostat_##field, NULL)
55426 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
55427 index 24eaaf6..de30ec9 100644
55428 --- a/drivers/scsi/scsi_transport_fc.c
55429 +++ b/drivers/scsi/scsi_transport_fc.c
55430 @@ -502,7 +502,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
55431 * Netlink Infrastructure
55432 */
55433
55434 -static atomic_t fc_event_seq;
55435 +static atomic_unchecked_t fc_event_seq;
55436
55437 /**
55438 * fc_get_event_number - Obtain the next sequential FC event number
55439 @@ -515,7 +515,7 @@ static atomic_t fc_event_seq;
55440 u32
55441 fc_get_event_number(void)
55442 {
55443 - return atomic_add_return(1, &fc_event_seq);
55444 + return atomic_add_return_unchecked(1, &fc_event_seq);
55445 }
55446 EXPORT_SYMBOL(fc_get_event_number);
55447
55448 @@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
55449 {
55450 int error;
55451
55452 - atomic_set(&fc_event_seq, 0);
55453 + atomic_set_unchecked(&fc_event_seq, 0);
55454
55455 error = transport_class_register(&fc_host_class);
55456 if (error)
55457 @@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
55458 char *cp;
55459
55460 *val = simple_strtoul(buf, &cp, 0);
55461 - if ((*cp && (*cp != '\n')) || (*val < 0))
55462 + if (*cp && (*cp != '\n'))
55463 return -EINVAL;
55464 /*
55465 * Check for overflow; dev_loss_tmo is u32
55466 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
55467 index e4b3d8f..3ab4dad 100644
55468 --- a/drivers/scsi/scsi_transport_iscsi.c
55469 +++ b/drivers/scsi/scsi_transport_iscsi.c
55470 @@ -79,7 +79,7 @@ struct iscsi_internal {
55471 struct transport_container session_cont;
55472 };
55473
55474 -static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
55475 +static atomic_unchecked_t iscsi_session_nr; /* sysfs session id for next new session */
55476 static struct workqueue_struct *iscsi_eh_timer_workq;
55477
55478 static DEFINE_IDA(iscsi_sess_ida);
55479 @@ -2074,7 +2074,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
55480 int err;
55481
55482 ihost = shost->shost_data;
55483 - session->sid = atomic_add_return(1, &iscsi_session_nr);
55484 + session->sid = atomic_add_return_unchecked(1, &iscsi_session_nr);
55485
55486 if (target_id == ISCSI_MAX_TARGET) {
55487 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
55488 @@ -4522,7 +4522,7 @@ static __init int iscsi_transport_init(void)
55489 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
55490 ISCSI_TRANSPORT_VERSION);
55491
55492 - atomic_set(&iscsi_session_nr, 0);
55493 + atomic_set_unchecked(&iscsi_session_nr, 0);
55494
55495 err = class_register(&iscsi_transport_class);
55496 if (err)
55497 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
55498 index e3cd3ec..00560ec 100644
55499 --- a/drivers/scsi/scsi_transport_srp.c
55500 +++ b/drivers/scsi/scsi_transport_srp.c
55501 @@ -35,7 +35,7 @@
55502 #include "scsi_priv.h"
55503
55504 struct srp_host_attrs {
55505 - atomic_t next_port_id;
55506 + atomic_unchecked_t next_port_id;
55507 };
55508 #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data)
55509
55510 @@ -105,7 +105,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
55511 struct Scsi_Host *shost = dev_to_shost(dev);
55512 struct srp_host_attrs *srp_host = to_srp_host_attrs(shost);
55513
55514 - atomic_set(&srp_host->next_port_id, 0);
55515 + atomic_set_unchecked(&srp_host->next_port_id, 0);
55516 return 0;
55517 }
55518
55519 @@ -752,7 +752,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
55520 rport_fast_io_fail_timedout);
55521 INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
55522
55523 - id = atomic_inc_return(&to_srp_host_attrs(shost)->next_port_id);
55524 + id = atomic_inc_return_unchecked(&to_srp_host_attrs(shost)->next_port_id);
55525 dev_set_name(&rport->dev, "port-%d:%d", shost->host_no, id);
55526
55527 transport_setup_device(&rport->dev);
55528 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
55529 index 3f37022..43557f0 100644
55530 --- a/drivers/scsi/sd.c
55531 +++ b/drivers/scsi/sd.c
55532 @@ -111,7 +111,7 @@ static int sd_resume(struct device *);
55533 static void sd_rescan(struct device *);
55534 static int sd_init_command(struct scsi_cmnd *SCpnt);
55535 static void sd_uninit_command(struct scsi_cmnd *SCpnt);
55536 -static int sd_done(struct scsi_cmnd *);
55537 +static unsigned int sd_done(struct scsi_cmnd *);
55538 static int sd_eh_action(struct scsi_cmnd *, int);
55539 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
55540 static void scsi_disk_release(struct device *cdev);
55541 @@ -1646,7 +1646,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
55542 *
55543 * Note: potentially run from within an ISR. Must not block.
55544 **/
55545 -static int sd_done(struct scsi_cmnd *SCpnt)
55546 +static unsigned int sd_done(struct scsi_cmnd *SCpnt)
55547 {
55548 int result = SCpnt->result;
55549 unsigned int good_bytes = result ? 0 : scsi_bufflen(SCpnt);
55550 @@ -2973,7 +2973,7 @@ static int sd_probe(struct device *dev)
55551 sdkp->disk = gd;
55552 sdkp->index = index;
55553 atomic_set(&sdkp->openers, 0);
55554 - atomic_set(&sdkp->device->ioerr_cnt, 0);
55555 + atomic_set_unchecked(&sdkp->device->ioerr_cnt, 0);
55556
55557 if (!sdp->request_queue->rq_timeout) {
55558 if (sdp->type != TYPE_MOD)
55559 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
55560 index 9d7b7db..33ecc51 100644
55561 --- a/drivers/scsi/sg.c
55562 +++ b/drivers/scsi/sg.c
55563 @@ -1083,7 +1083,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
55564 sdp->disk->disk_name,
55565 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
55566 NULL,
55567 - (char *)arg);
55568 + (char __user *)arg);
55569 case BLKTRACESTART:
55570 return blk_trace_startstop(sdp->device->request_queue, 1);
55571 case BLKTRACESTOP:
55572 diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
55573 index 8bd54a6..58fa0d6 100644
55574 --- a/drivers/scsi/sr.c
55575 +++ b/drivers/scsi/sr.c
55576 @@ -80,7 +80,7 @@ static DEFINE_MUTEX(sr_mutex);
55577 static int sr_probe(struct device *);
55578 static int sr_remove(struct device *);
55579 static int sr_init_command(struct scsi_cmnd *SCpnt);
55580 -static int sr_done(struct scsi_cmnd *);
55581 +static unsigned int sr_done(struct scsi_cmnd *);
55582 static int sr_runtime_suspend(struct device *dev);
55583
55584 static struct dev_pm_ops sr_pm_ops = {
55585 @@ -312,13 +312,13 @@ do_tur:
55586 * It will be notified on the end of a SCSI read / write, and will take one
55587 * of several actions based on success or failure.
55588 */
55589 -static int sr_done(struct scsi_cmnd *SCpnt)
55590 +static unsigned int sr_done(struct scsi_cmnd *SCpnt)
55591 {
55592 int result = SCpnt->result;
55593 - int this_count = scsi_bufflen(SCpnt);
55594 - int good_bytes = (result == 0 ? this_count : 0);
55595 - int block_sectors = 0;
55596 - long error_sector;
55597 + unsigned int this_count = scsi_bufflen(SCpnt);
55598 + unsigned int good_bytes = (result == 0 ? this_count : 0);
55599 + unsigned int block_sectors = 0;
55600 + sector_t error_sector;
55601 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
55602
55603 #ifdef DEBUG
55604 @@ -351,9 +351,12 @@ static int sr_done(struct scsi_cmnd *SCpnt)
55605 if (cd->device->sector_size == 2048)
55606 error_sector <<= 2;
55607 error_sector &= ~(block_sectors - 1);
55608 - good_bytes = (error_sector -
55609 - blk_rq_pos(SCpnt->request)) << 9;
55610 - if (good_bytes < 0 || good_bytes >= this_count)
55611 + if (error_sector >= blk_rq_pos(SCpnt->request)) {
55612 + good_bytes = (error_sector -
55613 + blk_rq_pos(SCpnt->request)) << 9;
55614 + if (good_bytes >= this_count)
55615 + good_bytes = 0;
55616 + } else
55617 good_bytes = 0;
55618 /*
55619 * The SCSI specification allows for the value
55620 diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
55621 index de2c1bf..60b8563 100644
55622 --- a/drivers/soc/tegra/fuse/fuse-tegra.c
55623 +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
55624 @@ -72,7 +72,7 @@ static ssize_t fuse_read(struct file *fd, struct kobject *kobj,
55625 return i;
55626 }
55627
55628 -static struct bin_attribute fuse_bin_attr = {
55629 +static bin_attribute_no_const fuse_bin_attr = {
55630 .attr = { .name = "fuse", .mode = S_IRUGO, },
55631 .read = fuse_read,
55632 };
55633 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
55634 index a5f53de..105bfd3 100644
55635 --- a/drivers/spi/spi.c
55636 +++ b/drivers/spi/spi.c
55637 @@ -2414,7 +2414,7 @@ int spi_bus_unlock(struct spi_master *master)
55638 EXPORT_SYMBOL_GPL(spi_bus_unlock);
55639
55640 /* portable code must never pass more than 32 bytes */
55641 -#define SPI_BUFSIZ max(32, SMP_CACHE_BYTES)
55642 +#define SPI_BUFSIZ max(32UL, SMP_CACHE_BYTES)
55643
55644 static u8 *buf;
55645
55646 diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
55647 index b41429f..2de5373 100644
55648 --- a/drivers/staging/android/timed_output.c
55649 +++ b/drivers/staging/android/timed_output.c
55650 @@ -25,7 +25,7 @@
55651 #include "timed_output.h"
55652
55653 static struct class *timed_output_class;
55654 -static atomic_t device_count;
55655 +static atomic_unchecked_t device_count;
55656
55657 static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
55658 char *buf)
55659 @@ -65,7 +65,7 @@ static int create_timed_output_class(void)
55660 timed_output_class = class_create(THIS_MODULE, "timed_output");
55661 if (IS_ERR(timed_output_class))
55662 return PTR_ERR(timed_output_class);
55663 - atomic_set(&device_count, 0);
55664 + atomic_set_unchecked(&device_count, 0);
55665 timed_output_class->dev_groups = timed_output_groups;
55666 }
55667
55668 @@ -83,7 +83,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
55669 if (ret < 0)
55670 return ret;
55671
55672 - tdev->index = atomic_inc_return(&device_count);
55673 + tdev->index = atomic_inc_return_unchecked(&device_count);
55674 tdev->dev = device_create(timed_output_class, NULL,
55675 MKDEV(0, tdev->index), NULL, "%s", tdev->name);
55676 if (IS_ERR(tdev->dev))
55677 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
55678 index 0e8a451..9558241 100644
55679 --- a/drivers/staging/comedi/comedi_fops.c
55680 +++ b/drivers/staging/comedi/comedi_fops.c
55681 @@ -311,8 +311,8 @@ static void comedi_file_reset(struct file *file)
55682 }
55683 cfp->last_attached = dev->attached;
55684 cfp->last_detach_count = dev->detach_count;
55685 - ACCESS_ONCE(cfp->read_subdev) = read_s;
55686 - ACCESS_ONCE(cfp->write_subdev) = write_s;
55687 + ACCESS_ONCE_RW(cfp->read_subdev) = read_s;
55688 + ACCESS_ONCE_RW(cfp->write_subdev) = write_s;
55689 }
55690
55691 static void comedi_file_check(struct file *file)
55692 @@ -1980,7 +1980,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55693 !(s_old->async->cmd.flags & CMDF_WRITE))
55694 return -EBUSY;
55695
55696 - ACCESS_ONCE(cfp->read_subdev) = s_new;
55697 + ACCESS_ONCE_RW(cfp->read_subdev) = s_new;
55698 return 0;
55699 }
55700
55701 @@ -2022,7 +2022,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55702 (s_old->async->cmd.flags & CMDF_WRITE))
55703 return -EBUSY;
55704
55705 - ACCESS_ONCE(cfp->write_subdev) = s_new;
55706 + ACCESS_ONCE_RW(cfp->write_subdev) = s_new;
55707 return 0;
55708 }
55709
55710 diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
55711 index b13318a..883e2a8 100644
55712 --- a/drivers/staging/dgnc/dgnc_mgmt.c
55713 +++ b/drivers/staging/dgnc/dgnc_mgmt.c
55714 @@ -115,6 +115,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
55715
55716 spin_lock_irqsave(&dgnc_global_lock, flags);
55717
55718 + memset(&ddi, 0, sizeof(ddi));
55719 ddi.dinfo_nboards = dgnc_NumBoards;
55720 sprintf(ddi.dinfo_version, "%s", DG_PART);
55721
55722 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
55723 index 7f5fa3d..53b5471 100644
55724 --- a/drivers/staging/fbtft/fbtft-core.c
55725 +++ b/drivers/staging/fbtft/fbtft-core.c
55726 @@ -682,7 +682,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
55727 {
55728 struct fb_info *info;
55729 struct fbtft_par *par;
55730 - struct fb_ops *fbops = NULL;
55731 + fb_ops_no_const *fbops = NULL;
55732 struct fb_deferred_io *fbdefio = NULL;
55733 u8 *vmem = NULL;
55734 void *txbuf = NULL;
55735 diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
55736 index 7e9a506..d0b0069 100644
55737 --- a/drivers/staging/fbtft/fbtft.h
55738 +++ b/drivers/staging/fbtft/fbtft.h
55739 @@ -106,7 +106,7 @@ struct fbtft_ops {
55740
55741 int (*set_var)(struct fbtft_par *par);
55742 int (*set_gamma)(struct fbtft_par *par, unsigned long *curves);
55743 -};
55744 +} __no_const;
55745
55746 /**
55747 * struct fbtft_display - Describes the display properties
55748 diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
55749 index 001348c..cfaac8a 100644
55750 --- a/drivers/staging/gdm724x/gdm_tty.c
55751 +++ b/drivers/staging/gdm724x/gdm_tty.c
55752 @@ -44,7 +44,7 @@
55753 #define gdm_tty_send_control(n, r, v, d, l) (\
55754 n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
55755
55756 -#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
55757 +#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && atomic_read(&gdm->port.count))
55758
55759 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
55760 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
55761 diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
55762 index b892f2c..9b4898a 100644
55763 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c
55764 +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
55765 @@ -118,7 +118,7 @@ static int lis3l02dq_get_buffer_element(struct iio_dev *indio_dev,
55766 int scan_count = bitmap_weight(indio_dev->active_scan_mask,
55767 indio_dev->masklength);
55768
55769 - rx_array = kcalloc(4, scan_count, GFP_KERNEL);
55770 + rx_array = kcalloc(scan_count, 4, GFP_KERNEL);
55771 if (!rx_array)
55772 return -ENOMEM;
55773 ret = lis3l02dq_read_all(indio_dev, rx_array);
55774 diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
55775 index d98e229..9c59bc2 100644
55776 --- a/drivers/staging/iio/adc/ad7280a.c
55777 +++ b/drivers/staging/iio/adc/ad7280a.c
55778 @@ -547,8 +547,8 @@ static int ad7280_attr_init(struct ad7280_state *st)
55779 {
55780 int dev, ch, cnt;
55781
55782 - st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) *
55783 - (st->slave_num + 1) * AD7280A_CELLS_PER_DEV,
55784 + st->iio_attr = kcalloc(sizeof(*st->iio_attr) *
55785 + (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, 2,
55786 GFP_KERNEL);
55787 if (st->iio_attr == NULL)
55788 return -ENOMEM;
55789 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
55790 index de11f1b..f7181cf 100644
55791 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
55792 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
55793 @@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
55794 return 0;
55795 }
55796
55797 -sfw_test_client_ops_t brw_test_client;
55798 -void brw_init_test_client(void)
55799 -{
55800 - brw_test_client.tso_init = brw_client_init;
55801 - brw_test_client.tso_fini = brw_client_fini;
55802 - brw_test_client.tso_prep_rpc = brw_client_prep_rpc;
55803 - brw_test_client.tso_done_rpc = brw_client_done_rpc;
55804 +sfw_test_client_ops_t brw_test_client = {
55805 + .tso_init = brw_client_init,
55806 + .tso_fini = brw_client_fini,
55807 + .tso_prep_rpc = brw_client_prep_rpc,
55808 + .tso_done_rpc = brw_client_done_rpc,
55809 };
55810
55811 srpc_service_t brw_test_service;
55812 diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
55813 index 257de35..efa188f 100644
55814 --- a/drivers/staging/lustre/lnet/selftest/framework.c
55815 +++ b/drivers/staging/lustre/lnet/selftest/framework.c
55816 @@ -1630,12 +1630,10 @@ static srpc_service_t sfw_services[] = {
55817
55818 extern sfw_test_client_ops_t ping_test_client;
55819 extern srpc_service_t ping_test_service;
55820 -extern void ping_init_test_client(void);
55821 extern void ping_init_test_service(void);
55822
55823 extern sfw_test_client_ops_t brw_test_client;
55824 extern srpc_service_t brw_test_service;
55825 -extern void brw_init_test_client(void);
55826 extern void brw_init_test_service(void);
55827
55828
55829 @@ -1677,12 +1675,10 @@ sfw_startup(void)
55830 INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
55831 INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
55832
55833 - brw_init_test_client();
55834 brw_init_test_service();
55835 rc = sfw_register_test(&brw_test_service, &brw_test_client);
55836 LASSERT(rc == 0);
55837
55838 - ping_init_test_client();
55839 ping_init_test_service();
55840 rc = sfw_register_test(&ping_test_service, &ping_test_client);
55841 LASSERT(rc == 0);
55842 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
55843 index 1dab998..edfe0ac 100644
55844 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c
55845 +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
55846 @@ -211,14 +211,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
55847 return 0;
55848 }
55849
55850 -sfw_test_client_ops_t ping_test_client;
55851 -void ping_init_test_client(void)
55852 -{
55853 - ping_test_client.tso_init = ping_client_init;
55854 - ping_test_client.tso_fini = ping_client_fini;
55855 - ping_test_client.tso_prep_rpc = ping_client_prep_rpc;
55856 - ping_test_client.tso_done_rpc = ping_client_done_rpc;
55857 -}
55858 +sfw_test_client_ops_t ping_test_client = {
55859 + .tso_init = ping_client_init,
55860 + .tso_fini = ping_client_fini,
55861 + .tso_prep_rpc = ping_client_prep_rpc,
55862 + .tso_done_rpc = ping_client_done_rpc,
55863 +};
55864
55865 srpc_service_t ping_test_service;
55866 void ping_init_test_service(void)
55867 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
55868 index 3552546..ce67377 100644
55869 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
55870 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
55871 @@ -1107,7 +1107,7 @@ struct ldlm_callback_suite {
55872 ldlm_completion_callback lcs_completion;
55873 ldlm_blocking_callback lcs_blocking;
55874 ldlm_glimpse_callback lcs_glimpse;
55875 -};
55876 +} __no_const;
55877
55878 /* ldlm_lockd.c */
55879 int ldlm_del_waiting_lock(struct ldlm_lock *lock);
55880 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
55881 index 9ad8c26..4e3c733 100644
55882 --- a/drivers/staging/lustre/lustre/include/obd.h
55883 +++ b/drivers/staging/lustre/lustre/include/obd.h
55884 @@ -1364,7 +1364,7 @@ struct md_ops {
55885 * lprocfs_alloc_md_stats() in obdclass/lprocfs_status.c. Also, add a
55886 * wrapper function in include/linux/obd_class.h.
55887 */
55888 -};
55889 +} __no_const;
55890
55891 struct lsm_operations {
55892 void (*lsm_free)(struct lov_stripe_md *);
55893 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55894 index a4c252f..b21acac 100644
55895 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55896 +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55897 @@ -258,7 +258,7 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq,
55898 int added = (mode == LCK_NL);
55899 int overlaps = 0;
55900 int splitted = 0;
55901 - const struct ldlm_callback_suite null_cbs = { NULL };
55902 + const struct ldlm_callback_suite null_cbs = { };
55903
55904 CDEBUG(D_DLMTRACE,
55905 "flags %#llx owner %llu pid %u mode %u start %llu end %llu\n",
55906 diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
55907 index 806f974..afed877 100644
55908 --- a/drivers/staging/lustre/lustre/libcfs/module.c
55909 +++ b/drivers/staging/lustre/lustre/libcfs/module.c
55910 @@ -342,11 +342,11 @@ out:
55911
55912
55913 struct cfs_psdev_ops libcfs_psdev_ops = {
55914 - libcfs_psdev_open,
55915 - libcfs_psdev_release,
55916 - NULL,
55917 - NULL,
55918 - libcfs_ioctl
55919 + .p_open = libcfs_psdev_open,
55920 + .p_close = libcfs_psdev_release,
55921 + .p_read = NULL,
55922 + .p_write = NULL,
55923 + .p_ioctl = libcfs_ioctl
55924 };
55925
55926 static int init_libcfs_module(void)
55927 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
55928 index d1a33a9..86e634e 100644
55929 --- a/drivers/staging/octeon/ethernet-rx.c
55930 +++ b/drivers/staging/octeon/ethernet-rx.c
55931 @@ -363,15 +363,15 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
55932 /* Increment RX stats for virtual ports */
55933 if (port >= CVMX_PIP_NUM_INPUT_PORTS) {
55934 #ifdef CONFIG_64BIT
55935 - atomic64_add(1,
55936 - (atomic64_t *)&priv->stats.rx_packets);
55937 - atomic64_add(skb->len,
55938 - (atomic64_t *)&priv->stats.rx_bytes);
55939 + atomic64_add_unchecked(1,
55940 + (atomic64_unchecked_t *)&priv->stats.rx_packets);
55941 + atomic64_add_unchecked(skb->len,
55942 + (atomic64_unchecked_t *)&priv->stats.rx_bytes);
55943 #else
55944 - atomic_add(1,
55945 - (atomic_t *)&priv->stats.rx_packets);
55946 - atomic_add(skb->len,
55947 - (atomic_t *)&priv->stats.rx_bytes);
55948 + atomic_add_unchecked(1,
55949 + (atomic_unchecked_t *)&priv->stats.rx_packets);
55950 + atomic_add_unchecked(skb->len,
55951 + (atomic_unchecked_t *)&priv->stats.rx_bytes);
55952 #endif
55953 }
55954 netif_receive_skb(skb);
55955 @@ -382,10 +382,10 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
55956 dev->name);
55957 */
55958 #ifdef CONFIG_64BIT
55959 - atomic64_add(1,
55960 + atomic64_add_unchecked(1,
55961 (atomic64_t *)&priv->stats.rx_dropped);
55962 #else
55963 - atomic_add(1,
55964 + atomic_add_unchecked(1,
55965 (atomic_t *)&priv->stats.rx_dropped);
55966 #endif
55967 dev_kfree_skb_irq(skb);
55968 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
55969 index 7274fda..ff5afcc 100644
55970 --- a/drivers/staging/octeon/ethernet.c
55971 +++ b/drivers/staging/octeon/ethernet.c
55972 @@ -232,11 +232,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
55973 * since the RX tasklet also increments it.
55974 */
55975 #ifdef CONFIG_64BIT
55976 - atomic64_add(rx_status.dropped_packets,
55977 - (atomic64_t *)&priv->stats.rx_dropped);
55978 + atomic64_add_unchecked(rx_status.dropped_packets,
55979 + (atomic64_unchecked_t *)&priv->stats.rx_dropped);
55980 #else
55981 - atomic_add(rx_status.dropped_packets,
55982 - (atomic_t *)&priv->stats.rx_dropped);
55983 + atomic_add_unchecked(rx_status.dropped_packets,
55984 + (atomic_unchecked_t *)&priv->stats.rx_dropped);
55985 #endif
55986 }
55987
55988 diff --git a/drivers/staging/rdma/ipath/ipath_rc.c b/drivers/staging/rdma/ipath/ipath_rc.c
55989 index 79b3dbc..96e5fcc 100644
55990 --- a/drivers/staging/rdma/ipath/ipath_rc.c
55991 +++ b/drivers/staging/rdma/ipath/ipath_rc.c
55992 @@ -1868,7 +1868,7 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
55993 struct ib_atomic_eth *ateth;
55994 struct ipath_ack_entry *e;
55995 u64 vaddr;
55996 - atomic64_t *maddr;
55997 + atomic64_unchecked_t *maddr;
55998 u64 sdata;
55999 u32 rkey;
56000 u8 next;
56001 @@ -1903,11 +1903,11 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
56002 IB_ACCESS_REMOTE_ATOMIC)))
56003 goto nack_acc_unlck;
56004 /* Perform atomic OP and save result. */
56005 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
56006 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
56007 sdata = be64_to_cpu(ateth->swap_data);
56008 e = &qp->s_ack_queue[qp->r_head_ack_queue];
56009 e->atomic_data = (opcode == OP(FETCH_ADD)) ?
56010 - (u64) atomic64_add_return(sdata, maddr) - sdata :
56011 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
56012 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
56013 be64_to_cpu(ateth->compare_data),
56014 sdata);
56015 diff --git a/drivers/staging/rdma/ipath/ipath_ruc.c b/drivers/staging/rdma/ipath/ipath_ruc.c
56016 index 1f95bba..9530f87 100644
56017 --- a/drivers/staging/rdma/ipath/ipath_ruc.c
56018 +++ b/drivers/staging/rdma/ipath/ipath_ruc.c
56019 @@ -266,7 +266,7 @@ static void ipath_ruc_loopback(struct ipath_qp *sqp)
56020 unsigned long flags;
56021 struct ib_wc wc;
56022 u64 sdata;
56023 - atomic64_t *maddr;
56024 + atomic64_unchecked_t *maddr;
56025 enum ib_wc_status send_status;
56026
56027 /*
56028 @@ -382,11 +382,11 @@ again:
56029 IB_ACCESS_REMOTE_ATOMIC)))
56030 goto acc_err;
56031 /* Perform atomic OP and save result. */
56032 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
56033 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
56034 sdata = wqe->wr.wr.atomic.compare_add;
56035 *(u64 *) sqp->s_sge.sge.vaddr =
56036 (wqe->wr.opcode == IB_WR_ATOMIC_FETCH_AND_ADD) ?
56037 - (u64) atomic64_add_return(sdata, maddr) - sdata :
56038 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
56039 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
56040 sdata, wqe->wr.wr.atomic.swap);
56041 goto send_comp;
56042 diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h
56043 index e73c634..c835570 100644
56044 --- a/drivers/staging/rtl8188eu/include/hal_intf.h
56045 +++ b/drivers/staging/rtl8188eu/include/hal_intf.h
56046 @@ -217,7 +217,7 @@ struct hal_ops {
56047
56048 void (*hal_notch_filter)(struct adapter *adapter, bool enable);
56049 void (*hal_reset_security_engine)(struct adapter *adapter);
56050 -};
56051 +} __no_const;
56052
56053 enum rt_eeprom_type {
56054 EEPROM_93C46,
56055 diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
56056 index 070cc03..6806e37 100644
56057 --- a/drivers/staging/rtl8712/rtl871x_io.h
56058 +++ b/drivers/staging/rtl8712/rtl871x_io.h
56059 @@ -108,7 +108,7 @@ struct _io_ops {
56060 u8 *pmem);
56061 u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt,
56062 u8 *pmem);
56063 -};
56064 +} __no_const;
56065
56066 struct io_req {
56067 struct list_head list;
56068 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
56069 index 07f8afd..66ea627 100644
56070 --- a/drivers/staging/sm750fb/sm750.c
56071 +++ b/drivers/staging/sm750fb/sm750.c
56072 @@ -766,6 +766,7 @@ static struct fb_ops lynxfb_ops = {
56073 .fb_set_par = lynxfb_ops_set_par,
56074 .fb_setcolreg = lynxfb_ops_setcolreg,
56075 .fb_blank = lynxfb_ops_blank,
56076 + .fb_pan_display = lynxfb_ops_pan_display,
56077 .fb_fillrect = cfb_fillrect,
56078 .fb_imageblit = cfb_imageblit,
56079 .fb_copyarea = cfb_copyarea,
56080 @@ -811,7 +812,6 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
56081 par->index = index;
56082 output->channel = &crtc->channel;
56083 sm750fb_set_drv(par);
56084 - lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
56085
56086 /*
56087 * set current cursor variable and proc pointer,
56088 @@ -834,16 +834,20 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
56089 crtc->cursor.share = share;
56090 memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
56091 if (!g_hwcursor) {
56092 - lynxfb_ops.fb_cursor = NULL;
56093 + pax_open_kernel();
56094 + *(void **)&lynxfb_ops.fb_cursor = NULL;
56095 + pax_close_kernel();
56096 crtc->cursor.disable(&crtc->cursor);
56097 }
56098
56099 /* set info->fbops, must be set before fb_find_mode */
56100 if (!share->accel_off) {
56101 /* use 2d acceleration */
56102 - lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
56103 - lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
56104 - lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
56105 + pax_open_kernel();
56106 + *(void **)&lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
56107 + *(void **)&lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
56108 + *(void **)&lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
56109 + pax_close_kernel();
56110 }
56111 info->fbops = &lynxfb_ops;
56112
56113 diff --git a/drivers/staging/unisys/visorbus/visorbus_private.h b/drivers/staging/unisys/visorbus/visorbus_private.h
56114 index 39edd20..d860d0c 100644
56115 --- a/drivers/staging/unisys/visorbus/visorbus_private.h
56116 +++ b/drivers/staging/unisys/visorbus/visorbus_private.h
56117 @@ -34,7 +34,7 @@ struct visorchipset_busdev_notifiers {
56118 void (*device_destroy)(struct visor_device *bus_info);
56119 void (*device_pause)(struct visor_device *bus_info);
56120 void (*device_resume)(struct visor_device *bus_info);
56121 -};
56122 +} __no_const;
56123
56124 /* These functions live inside visorchipset, and will be called to indicate
56125 * responses to specific events (by code outside of visorchipset).
56126 @@ -49,7 +49,7 @@ struct visorchipset_busdev_responders {
56127 void (*device_destroy)(struct visor_device *p, int response);
56128 void (*device_pause)(struct visor_device *p, int response);
56129 void (*device_resume)(struct visor_device *p, int response);
56130 -};
56131 +} __no_const;
56132
56133 /** Register functions (in the bus driver) to get called by visorchipset
56134 * whenever a bus or device appears for which this guest is to be the
56135 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
56136 index 0edf320..49afe95 100644
56137 --- a/drivers/target/sbp/sbp_target.c
56138 +++ b/drivers/target/sbp/sbp_target.c
56139 @@ -60,7 +60,7 @@ static const u32 sbp_unit_directory_template[] = {
56140
56141 #define SESSION_MAINTENANCE_INTERVAL HZ
56142
56143 -static atomic_t login_id = ATOMIC_INIT(0);
56144 +static atomic_unchecked_t login_id = ATOMIC_INIT(0);
56145
56146 static void session_maintenance_work(struct work_struct *);
56147 static int sbp_run_transaction(struct fw_card *, int, int, int, int,
56148 @@ -441,7 +441,7 @@ static void sbp_management_request_login(
56149 login->login_lun = unpacked_lun;
56150 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo);
56151 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc));
56152 - login->login_id = atomic_inc_return(&login_id);
56153 + login->login_id = atomic_inc_return_unchecked(&login_id);
56154
56155 login->tgt_agt = sbp_target_agent_register(login);
56156 if (IS_ERR(login->tgt_agt)) {
56157 diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
56158 index 0b4b2a6..98698d8 100644
56159 --- a/drivers/target/target_core_sbc.c
56160 +++ b/drivers/target/target_core_sbc.c
56161 @@ -371,7 +371,8 @@ sbc_setup_write_same(struct se_cmd *cmd, unsigned char *flags, struct sbc_ops *o
56162 return 0;
56163 }
56164
56165 -static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success)
56166 +static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success,
56167 + int *post_ret)
56168 {
56169 unsigned char *buf, *addr;
56170 struct scatterlist *sg;
56171 @@ -437,7 +438,8 @@ sbc_execute_rw(struct se_cmd *cmd)
56172 cmd->data_direction);
56173 }
56174
56175 -static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56176 +static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success,
56177 + int *post_ret)
56178 {
56179 struct se_device *dev = cmd->se_dev;
56180
56181 @@ -447,8 +449,10 @@ static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56182 * sent to the backend driver.
56183 */
56184 spin_lock_irq(&cmd->t_state_lock);
56185 - if ((cmd->transport_state & CMD_T_SENT) && !cmd->scsi_status)
56186 + if ((cmd->transport_state & CMD_T_SENT) && !cmd->scsi_status) {
56187 cmd->se_cmd_flags |= SCF_COMPARE_AND_WRITE_POST;
56188 + *post_ret = 1;
56189 + }
56190 spin_unlock_irq(&cmd->t_state_lock);
56191
56192 /*
56193 @@ -460,7 +464,8 @@ static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56194 return TCM_NO_SENSE;
56195 }
56196
56197 -static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success)
56198 +static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success,
56199 + int *post_ret)
56200 {
56201 struct se_device *dev = cmd->se_dev;
56202 struct scatterlist *write_sg = NULL, *sg;
56203 @@ -556,11 +561,11 @@ static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool succes
56204
56205 if (block_size < PAGE_SIZE) {
56206 sg_set_page(&write_sg[i], m.page, block_size,
56207 - block_size);
56208 + m.piter.sg->offset + block_size);
56209 } else {
56210 sg_miter_next(&m);
56211 sg_set_page(&write_sg[i], m.page, block_size,
56212 - 0);
56213 + m.piter.sg->offset);
56214 }
56215 len -= block_size;
56216 i++;
56217 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
56218 index 5bacc7b..010b8c4 100644
56219 --- a/drivers/target/target_core_transport.c
56220 +++ b/drivers/target/target_core_transport.c
56221 @@ -1658,7 +1658,7 @@ bool target_stop_cmd(struct se_cmd *cmd, unsigned long *flags)
56222 void transport_generic_request_failure(struct se_cmd *cmd,
56223 sense_reason_t sense_reason)
56224 {
56225 - int ret = 0;
56226 + int ret = 0, post_ret = 0;
56227
56228 pr_debug("-----[ Storage Engine Exception for cmd: %p ITT: 0x%08llx"
56229 " CDB: 0x%02x\n", cmd, cmd->tag, cmd->t_task_cdb[0]);
56230 @@ -1680,7 +1680,7 @@ void transport_generic_request_failure(struct se_cmd *cmd,
56231 */
56232 if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) &&
56233 cmd->transport_complete_callback)
56234 - cmd->transport_complete_callback(cmd, false);
56235 + cmd->transport_complete_callback(cmd, false, &post_ret);
56236
56237 switch (sense_reason) {
56238 case TCM_NON_EXISTENT_LUN:
56239 @@ -2068,11 +2068,13 @@ static void target_complete_ok_work(struct work_struct *work)
56240 */
56241 if (cmd->transport_complete_callback) {
56242 sense_reason_t rc;
56243 + bool caw = (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE);
56244 + bool zero_dl = !(cmd->data_length);
56245 + int post_ret = 0;
56246
56247 - rc = cmd->transport_complete_callback(cmd, true);
56248 - if (!rc && !(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE_POST)) {
56249 - if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) &&
56250 - !cmd->data_length)
56251 + rc = cmd->transport_complete_callback(cmd, true, &post_ret);
56252 + if (!rc && !post_ret) {
56253 + if (caw && zero_dl)
56254 goto queue_rsp;
56255
56256 return;
56257 diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
56258 index 42c6f71..1c64309 100644
56259 --- a/drivers/thermal/cpu_cooling.c
56260 +++ b/drivers/thermal/cpu_cooling.c
56261 @@ -838,10 +838,11 @@ __cpufreq_cooling_register(struct device_node *np,
56262 cpumask_copy(&cpufreq_dev->allowed_cpus, clip_cpus);
56263
56264 if (capacitance) {
56265 - cpufreq_cooling_ops.get_requested_power =
56266 - cpufreq_get_requested_power;
56267 - cpufreq_cooling_ops.state2power = cpufreq_state2power;
56268 - cpufreq_cooling_ops.power2state = cpufreq_power2state;
56269 + pax_open_kernel();
56270 + *(void **)&cpufreq_cooling_ops.get_requested_power = cpufreq_get_requested_power;
56271 + *(void **)&cpufreq_cooling_ops.state2power = cpufreq_state2power;
56272 + *(void **)&cpufreq_cooling_ops.power2state = cpufreq_power2state;
56273 + pax_close_kernel();
56274 cpufreq_dev->plat_get_static_power = plat_static_func;
56275
56276 ret = build_dyn_power_table(cpufreq_dev, capacitance);
56277 diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c b/drivers/thermal/int340x_thermal/int3400_thermal.c
56278 index 5836e55..740ab89 100644
56279 --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
56280 +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
56281 @@ -272,8 +272,10 @@ static int int3400_thermal_probe(struct platform_device *pdev)
56282 platform_set_drvdata(pdev, priv);
56283
56284 if (priv->uuid_bitmap & 1 << INT3400_THERMAL_PASSIVE_1) {
56285 - int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
56286 - int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
56287 + pax_open_kernel();
56288 + *(void **)&int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
56289 + *(void **)&int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
56290 + pax_close_kernel();
56291 }
56292 priv->thermal = thermal_zone_device_register("INT3400 Thermal", 0, 0,
56293 priv, &int3400_thermal_ops,
56294 diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
56295 index 42b7d42..d48c0db 100644
56296 --- a/drivers/thermal/of-thermal.c
56297 +++ b/drivers/thermal/of-thermal.c
56298 @@ -31,6 +31,7 @@
56299 #include <linux/export.h>
56300 #include <linux/string.h>
56301 #include <linux/thermal.h>
56302 +#include <linux/mm.h>
56303
56304 #include "thermal_core.h"
56305
56306 @@ -417,9 +418,11 @@ thermal_zone_of_add_sensor(struct device_node *zone,
56307 tz->ops = ops;
56308 tz->sensor_data = data;
56309
56310 - tzd->ops->get_temp = of_thermal_get_temp;
56311 - tzd->ops->get_trend = of_thermal_get_trend;
56312 - tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56313 + pax_open_kernel();
56314 + *(void **)&tzd->ops->get_temp = of_thermal_get_temp;
56315 + *(void **)&tzd->ops->get_trend = of_thermal_get_trend;
56316 + *(void **)&tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56317 + pax_close_kernel();
56318 mutex_unlock(&tzd->lock);
56319
56320 return tzd;
56321 @@ -549,9 +552,11 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
56322 return;
56323
56324 mutex_lock(&tzd->lock);
56325 - tzd->ops->get_temp = NULL;
56326 - tzd->ops->get_trend = NULL;
56327 - tzd->ops->set_emul_temp = NULL;
56328 + pax_open_kernel();
56329 + *(void **)&tzd->ops->get_temp = NULL;
56330 + *(void **)&tzd->ops->get_trend = NULL;
56331 + *(void **)&tzd->ops->set_emul_temp = NULL;
56332 + pax_close_kernel();
56333
56334 tz->ops = NULL;
56335 tz->sensor_data = NULL;
56336 diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
56337 index 7fc919f..19f23a5 100644
56338 --- a/drivers/thermal/x86_pkg_temp_thermal.c
56339 +++ b/drivers/thermal/x86_pkg_temp_thermal.c
56340 @@ -567,7 +567,7 @@ static int pkg_temp_thermal_cpu_callback(struct notifier_block *nfb,
56341 return NOTIFY_OK;
56342 }
56343
56344 -static struct notifier_block pkg_temp_thermal_notifier __refdata = {
56345 +static struct notifier_block pkg_temp_thermal_notifier __refconst = {
56346 .notifier_call = pkg_temp_thermal_cpu_callback,
56347 };
56348
56349 diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
56350 index 87f6578..905c8f8 100644
56351 --- a/drivers/tty/cyclades.c
56352 +++ b/drivers/tty/cyclades.c
56353 @@ -1570,10 +1570,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp)
56354 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line,
56355 info->port.count);
56356 #endif
56357 - info->port.count++;
56358 + atomic_inc(&info->port.count);
56359 #ifdef CY_DEBUG_COUNT
56360 printk(KERN_DEBUG "cyc:cy_open (%d): incrementing count to %d\n",
56361 - current->pid, info->port.count);
56362 + current->pid, atomic_read(&info->port.count));
56363 #endif
56364
56365 /*
56366 @@ -3970,7 +3970,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v)
56367 for (j = 0; j < cy_card[i].nports; j++) {
56368 info = &cy_card[i].ports[j];
56369
56370 - if (info->port.count) {
56371 + if (atomic_read(&info->port.count)) {
56372 /* XXX is the ldisc num worth this? */
56373 struct tty_struct *tty;
56374 struct tty_ldisc *ld;
56375 diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
56376 index 4e9c4cc..2199d8f 100644
56377 --- a/drivers/tty/hvc/hvc_console.c
56378 +++ b/drivers/tty/hvc/hvc_console.c
56379 @@ -343,7 +343,7 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
56380
56381 spin_lock_irqsave(&hp->port.lock, flags);
56382 /* Check and then increment for fast path open. */
56383 - if (hp->port.count++ > 0) {
56384 + if (atomic_inc_return(&hp->port.count) > 1) {
56385 spin_unlock_irqrestore(&hp->port.lock, flags);
56386 hvc_kick();
56387 return 0;
56388 @@ -398,7 +398,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56389
56390 spin_lock_irqsave(&hp->port.lock, flags);
56391
56392 - if (--hp->port.count == 0) {
56393 + if (atomic_dec_return(&hp->port.count) == 0) {
56394 spin_unlock_irqrestore(&hp->port.lock, flags);
56395 /* We are done with the tty pointer now. */
56396 tty_port_tty_set(&hp->port, NULL);
56397 @@ -420,9 +420,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56398 */
56399 tty_wait_until_sent_from_close(tty, HVC_CLOSE_WAIT);
56400 } else {
56401 - if (hp->port.count < 0)
56402 + if (atomic_read(&hp->port.count) < 0)
56403 printk(KERN_ERR "hvc_close %X: oops, count is %d\n",
56404 - hp->vtermno, hp->port.count);
56405 + hp->vtermno, atomic_read(&hp->port.count));
56406 spin_unlock_irqrestore(&hp->port.lock, flags);
56407 }
56408 }
56409 @@ -452,12 +452,12 @@ static void hvc_hangup(struct tty_struct *tty)
56410 * open->hangup case this can be called after the final close so prevent
56411 * that from happening for now.
56412 */
56413 - if (hp->port.count <= 0) {
56414 + if (atomic_read(&hp->port.count) <= 0) {
56415 spin_unlock_irqrestore(&hp->port.lock, flags);
56416 return;
56417 }
56418
56419 - hp->port.count = 0;
56420 + atomic_set(&hp->port.count, 0);
56421 spin_unlock_irqrestore(&hp->port.lock, flags);
56422 tty_port_tty_set(&hp->port, NULL);
56423
56424 @@ -505,7 +505,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
56425 return -EPIPE;
56426
56427 /* FIXME what's this (unprotected) check for? */
56428 - if (hp->port.count <= 0)
56429 + if (atomic_read(&hp->port.count) <= 0)
56430 return -EIO;
56431
56432 spin_lock_irqsave(&hp->lock, flags);
56433 diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
56434 index f7ff97c..0c0ebbf 100644
56435 --- a/drivers/tty/hvc/hvcs.c
56436 +++ b/drivers/tty/hvc/hvcs.c
56437 @@ -83,6 +83,7 @@
56438 #include <asm/hvcserver.h>
56439 #include <asm/uaccess.h>
56440 #include <asm/vio.h>
56441 +#include <asm/local.h>
56442
56443 /*
56444 * 1.3.0 -> 1.3.1 In hvcs_open memset(..,0x00,..) instead of memset(..,0x3F,00).
56445 @@ -416,7 +417,7 @@ static ssize_t hvcs_vterm_state_store(struct device *dev, struct device_attribut
56446
56447 spin_lock_irqsave(&hvcsd->lock, flags);
56448
56449 - if (hvcsd->port.count > 0) {
56450 + if (atomic_read(&hvcsd->port.count) > 0) {
56451 spin_unlock_irqrestore(&hvcsd->lock, flags);
56452 printk(KERN_INFO "HVCS: vterm state unchanged. "
56453 "The hvcs device node is still in use.\n");
56454 @@ -1127,7 +1128,7 @@ static int hvcs_install(struct tty_driver *driver, struct tty_struct *tty)
56455 }
56456 }
56457
56458 - hvcsd->port.count = 0;
56459 + atomic_set(&hvcsd->port.count, 0);
56460 hvcsd->port.tty = tty;
56461 tty->driver_data = hvcsd;
56462
56463 @@ -1180,7 +1181,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
56464 unsigned long flags;
56465
56466 spin_lock_irqsave(&hvcsd->lock, flags);
56467 - hvcsd->port.count++;
56468 + atomic_inc(&hvcsd->port.count);
56469 hvcsd->todo_mask |= HVCS_SCHED_READ;
56470 spin_unlock_irqrestore(&hvcsd->lock, flags);
56471
56472 @@ -1216,7 +1217,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56473 hvcsd = tty->driver_data;
56474
56475 spin_lock_irqsave(&hvcsd->lock, flags);
56476 - if (--hvcsd->port.count == 0) {
56477 + if (atomic_dec_and_test(&hvcsd->port.count)) {
56478
56479 vio_disable_interrupts(hvcsd->vdev);
56480
56481 @@ -1241,10 +1242,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56482
56483 free_irq(irq, hvcsd);
56484 return;
56485 - } else if (hvcsd->port.count < 0) {
56486 + } else if (atomic_read(&hvcsd->port.count) < 0) {
56487 printk(KERN_ERR "HVCS: vty-server@%X open_count: %d"
56488 " is missmanaged.\n",
56489 - hvcsd->vdev->unit_address, hvcsd->port.count);
56490 + hvcsd->vdev->unit_address, atomic_read(&hvcsd->port.count));
56491 }
56492
56493 spin_unlock_irqrestore(&hvcsd->lock, flags);
56494 @@ -1266,7 +1267,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56495
56496 spin_lock_irqsave(&hvcsd->lock, flags);
56497 /* Preserve this so that we know how many kref refs to put */
56498 - temp_open_count = hvcsd->port.count;
56499 + temp_open_count = atomic_read(&hvcsd->port.count);
56500
56501 /*
56502 * Don't kref put inside the spinlock because the destruction
56503 @@ -1281,7 +1282,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56504 tty->driver_data = NULL;
56505 hvcsd->port.tty = NULL;
56506
56507 - hvcsd->port.count = 0;
56508 + atomic_set(&hvcsd->port.count, 0);
56509
56510 /* This will drop any buffered data on the floor which is OK in a hangup
56511 * scenario. */
56512 @@ -1352,7 +1353,7 @@ static int hvcs_write(struct tty_struct *tty,
56513 * the middle of a write operation? This is a crummy place to do this
56514 * but we want to keep it all in the spinlock.
56515 */
56516 - if (hvcsd->port.count <= 0) {
56517 + if (atomic_read(&hvcsd->port.count) <= 0) {
56518 spin_unlock_irqrestore(&hvcsd->lock, flags);
56519 return -ENODEV;
56520 }
56521 @@ -1426,7 +1427,7 @@ static int hvcs_write_room(struct tty_struct *tty)
56522 {
56523 struct hvcs_struct *hvcsd = tty->driver_data;
56524
56525 - if (!hvcsd || hvcsd->port.count <= 0)
56526 + if (!hvcsd || atomic_read(&hvcsd->port.count) <= 0)
56527 return 0;
56528
56529 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
56530 diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
56531 index a75146f..a52c717 100644
56532 --- a/drivers/tty/hvc/hvsi.c
56533 +++ b/drivers/tty/hvc/hvsi.c
56534 @@ -85,7 +85,7 @@ struct hvsi_struct {
56535 int n_outbuf;
56536 uint32_t vtermno;
56537 uint32_t virq;
56538 - atomic_t seqno; /* HVSI packet sequence number */
56539 + atomic_unchecked_t seqno; /* HVSI packet sequence number */
56540 uint16_t mctrl;
56541 uint8_t state; /* HVSI protocol state */
56542 uint8_t flags;
56543 @@ -297,7 +297,7 @@ static int hvsi_version_respond(struct hvsi_struct *hp, uint16_t query_seqno)
56544
56545 packet.hdr.type = VS_QUERY_RESPONSE_PACKET_HEADER;
56546 packet.hdr.len = sizeof(struct hvsi_query_response);
56547 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
56548 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
56549 packet.verb = cpu_to_be16(VSV_SEND_VERSION_NUMBER);
56550 packet.u.version = HVSI_VERSION;
56551 packet.query_seqno = cpu_to_be16(query_seqno+1);
56552 @@ -557,7 +557,7 @@ static int hvsi_query(struct hvsi_struct *hp, uint16_t verb)
56553
56554 packet.hdr.type = VS_QUERY_PACKET_HEADER;
56555 packet.hdr.len = sizeof(struct hvsi_query);
56556 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
56557 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
56558 packet.verb = cpu_to_be16(verb);
56559
56560 pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
56561 @@ -599,7 +599,7 @@ static int hvsi_set_mctrl(struct hvsi_struct *hp, uint16_t mctrl)
56562 int wrote;
56563
56564 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
56565 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
56566 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
56567 packet.hdr.len = sizeof(struct hvsi_control);
56568 packet.verb = cpu_to_be16(VSV_SET_MODEM_CTL);
56569 packet.mask = cpu_to_be32(HVSI_TSDTR);
56570 @@ -682,7 +682,7 @@ static int hvsi_put_chars(struct hvsi_struct *hp, const char *buf, int count)
56571 BUG_ON(count > HVSI_MAX_OUTGOING_DATA);
56572
56573 packet.hdr.type = VS_DATA_PACKET_HEADER;
56574 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
56575 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
56576 packet.hdr.len = count + sizeof(struct hvsi_header);
56577 memcpy(&packet.data, buf, count);
56578
56579 @@ -699,7 +699,7 @@ static void hvsi_close_protocol(struct hvsi_struct *hp)
56580 struct hvsi_control packet __ALIGNED__;
56581
56582 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
56583 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
56584 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
56585 packet.hdr.len = 6;
56586 packet.verb = cpu_to_be16(VSV_CLOSE_PROTOCOL);
56587
56588 @@ -727,7 +727,7 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp)
56589
56590 tty_port_tty_set(&hp->port, tty);
56591 spin_lock_irqsave(&hp->lock, flags);
56592 - hp->port.count++;
56593 + atomic_inc(&hp->port.count);
56594 atomic_set(&hp->seqno, 0);
56595 h_vio_signal(hp->vtermno, VIO_IRQ_ENABLE);
56596 spin_unlock_irqrestore(&hp->lock, flags);
56597 @@ -784,7 +784,7 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56598
56599 spin_lock_irqsave(&hp->lock, flags);
56600
56601 - if (--hp->port.count == 0) {
56602 + if (atomic_dec_return(&hp->port.count) == 0) {
56603 tty_port_tty_set(&hp->port, NULL);
56604 hp->inbuf_end = hp->inbuf; /* discard remaining partial packets */
56605
56606 @@ -817,9 +817,9 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56607
56608 spin_lock_irqsave(&hp->lock, flags);
56609 }
56610 - } else if (hp->port.count < 0)
56611 + } else if (atomic_read(&hp->port.count) < 0)
56612 printk(KERN_ERR "hvsi_close %lu: oops, count is %d\n",
56613 - hp - hvsi_ports, hp->port.count);
56614 + hp - hvsi_ports, atomic_read(&hp->port.count));
56615
56616 spin_unlock_irqrestore(&hp->lock, flags);
56617 }
56618 @@ -834,7 +834,7 @@ static void hvsi_hangup(struct tty_struct *tty)
56619 tty_port_tty_set(&hp->port, NULL);
56620
56621 spin_lock_irqsave(&hp->lock, flags);
56622 - hp->port.count = 0;
56623 + atomic_set(&hp->port.count, 0);
56624 hp->n_outbuf = 0;
56625 spin_unlock_irqrestore(&hp->lock, flags);
56626 }
56627 diff --git a/drivers/tty/hvc/hvsi_lib.c b/drivers/tty/hvc/hvsi_lib.c
56628 index a270f04..7c77b5d 100644
56629 --- a/drivers/tty/hvc/hvsi_lib.c
56630 +++ b/drivers/tty/hvc/hvsi_lib.c
56631 @@ -8,7 +8,7 @@
56632
56633 static int hvsi_send_packet(struct hvsi_priv *pv, struct hvsi_header *packet)
56634 {
56635 - packet->seqno = cpu_to_be16(atomic_inc_return(&pv->seqno));
56636 + packet->seqno = cpu_to_be16(atomic_inc_return_unchecked(&pv->seqno));
56637
56638 /* Assumes that always succeeds, works in practice */
56639 return pv->put_chars(pv->termno, (char *)packet, packet->len);
56640 @@ -20,7 +20,7 @@ static void hvsi_start_handshake(struct hvsi_priv *pv)
56641
56642 /* Reset state */
56643 pv->established = 0;
56644 - atomic_set(&pv->seqno, 0);
56645 + atomic_set_unchecked(&pv->seqno, 0);
56646
56647 pr_devel("HVSI@%x: Handshaking started\n", pv->termno);
56648
56649 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
56650 index 345cebb..d5a1e9e 100644
56651 --- a/drivers/tty/ipwireless/tty.c
56652 +++ b/drivers/tty/ipwireless/tty.c
56653 @@ -28,6 +28,7 @@
56654 #include <linux/tty_driver.h>
56655 #include <linux/tty_flip.h>
56656 #include <linux/uaccess.h>
56657 +#include <asm/local.h>
56658
56659 #include "tty.h"
56660 #include "network.h"
56661 @@ -93,10 +94,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56662 return -ENODEV;
56663
56664 mutex_lock(&tty->ipw_tty_mutex);
56665 - if (tty->port.count == 0)
56666 + if (atomic_read(&tty->port.count) == 0)
56667 tty->tx_bytes_queued = 0;
56668
56669 - tty->port.count++;
56670 + atomic_inc(&tty->port.count);
56671
56672 tty->port.tty = linux_tty;
56673 linux_tty->driver_data = tty;
56674 @@ -112,9 +113,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56675
56676 static void do_ipw_close(struct ipw_tty *tty)
56677 {
56678 - tty->port.count--;
56679 -
56680 - if (tty->port.count == 0) {
56681 + if (atomic_dec_return(&tty->port.count) == 0) {
56682 struct tty_struct *linux_tty = tty->port.tty;
56683
56684 if (linux_tty != NULL) {
56685 @@ -135,7 +134,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
56686 return;
56687
56688 mutex_lock(&tty->ipw_tty_mutex);
56689 - if (tty->port.count == 0) {
56690 + if (atomic_read(&tty->port.count) == 0) {
56691 mutex_unlock(&tty->ipw_tty_mutex);
56692 return;
56693 }
56694 @@ -158,7 +157,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
56695
56696 mutex_lock(&tty->ipw_tty_mutex);
56697
56698 - if (!tty->port.count) {
56699 + if (!atomic_read(&tty->port.count)) {
56700 mutex_unlock(&tty->ipw_tty_mutex);
56701 return;
56702 }
56703 @@ -197,7 +196,7 @@ static int ipw_write(struct tty_struct *linux_tty,
56704 return -ENODEV;
56705
56706 mutex_lock(&tty->ipw_tty_mutex);
56707 - if (!tty->port.count) {
56708 + if (!atomic_read(&tty->port.count)) {
56709 mutex_unlock(&tty->ipw_tty_mutex);
56710 return -EINVAL;
56711 }
56712 @@ -237,7 +236,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
56713 if (!tty)
56714 return -ENODEV;
56715
56716 - if (!tty->port.count)
56717 + if (!atomic_read(&tty->port.count))
56718 return -EINVAL;
56719
56720 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
56721 @@ -279,7 +278,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
56722 if (!tty)
56723 return 0;
56724
56725 - if (!tty->port.count)
56726 + if (!atomic_read(&tty->port.count))
56727 return 0;
56728
56729 return tty->tx_bytes_queued;
56730 @@ -360,7 +359,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
56731 if (!tty)
56732 return -ENODEV;
56733
56734 - if (!tty->port.count)
56735 + if (!atomic_read(&tty->port.count))
56736 return -EINVAL;
56737
56738 return get_control_lines(tty);
56739 @@ -376,7 +375,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
56740 if (!tty)
56741 return -ENODEV;
56742
56743 - if (!tty->port.count)
56744 + if (!atomic_read(&tty->port.count))
56745 return -EINVAL;
56746
56747 return set_control_lines(tty, set, clear);
56748 @@ -390,7 +389,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
56749 if (!tty)
56750 return -ENODEV;
56751
56752 - if (!tty->port.count)
56753 + if (!atomic_read(&tty->port.count))
56754 return -EINVAL;
56755
56756 /* FIXME: Exactly how is the tty object locked here .. */
56757 @@ -546,7 +545,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
56758 * are gone */
56759 mutex_lock(&ttyj->ipw_tty_mutex);
56760 }
56761 - while (ttyj->port.count)
56762 + while (atomic_read(&ttyj->port.count))
56763 do_ipw_close(ttyj);
56764 ipwireless_disassociate_network_ttys(network,
56765 ttyj->channel_idx);
56766 diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
56767 index 14c54e0..1efd4f2 100644
56768 --- a/drivers/tty/moxa.c
56769 +++ b/drivers/tty/moxa.c
56770 @@ -1189,7 +1189,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
56771 }
56772
56773 ch = &brd->ports[port % MAX_PORTS_PER_BOARD];
56774 - ch->port.count++;
56775 + atomic_inc(&ch->port.count);
56776 tty->driver_data = ch;
56777 tty_port_tty_set(&ch->port, tty);
56778 mutex_lock(&ch->port.mutex);
56779 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
56780 index c3fe026..9cfe421 100644
56781 --- a/drivers/tty/n_gsm.c
56782 +++ b/drivers/tty/n_gsm.c
56783 @@ -1644,7 +1644,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
56784 spin_lock_init(&dlci->lock);
56785 mutex_init(&dlci->mutex);
56786 dlci->fifo = &dlci->_fifo;
56787 - if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL) < 0) {
56788 + if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL)) {
56789 kfree(dlci);
56790 return NULL;
56791 }
56792 @@ -2957,7 +2957,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
56793 struct gsm_dlci *dlci = tty->driver_data;
56794 struct tty_port *port = &dlci->port;
56795
56796 - port->count++;
56797 + atomic_inc(&port->count);
56798 tty_port_tty_set(port, tty);
56799
56800 dlci->modem_rx = 0;
56801 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
56802 index a0285da..e84f8de 100644
56803 --- a/drivers/tty/n_tty.c
56804 +++ b/drivers/tty/n_tty.c
56805 @@ -1514,7 +1514,7 @@ n_tty_receive_char_lnext(struct tty_struct *tty, unsigned char c, char flag)
56806
56807 static void
56808 n_tty_receive_buf_real_raw(struct tty_struct *tty, const unsigned char *cp,
56809 - char *fp, int count)
56810 + char *fp, size_t count)
56811 {
56812 struct n_tty_data *ldata = tty->disc_data;
56813 size_t n, head;
56814 @@ -1534,7 +1534,7 @@ n_tty_receive_buf_real_raw(struct tty_struct *tty, const unsigned char *cp,
56815
56816 static void
56817 n_tty_receive_buf_raw(struct tty_struct *tty, const unsigned char *cp,
56818 - char *fp, int count)
56819 + char *fp, size_t count)
56820 {
56821 struct n_tty_data *ldata = tty->disc_data;
56822 char flag = TTY_NORMAL;
56823 @@ -1551,7 +1551,7 @@ n_tty_receive_buf_raw(struct tty_struct *tty, const unsigned char *cp,
56824
56825 static void
56826 n_tty_receive_buf_closing(struct tty_struct *tty, const unsigned char *cp,
56827 - char *fp, int count)
56828 + char *fp, size_t count)
56829 {
56830 char flag = TTY_NORMAL;
56831
56832 @@ -1567,7 +1567,7 @@ n_tty_receive_buf_closing(struct tty_struct *tty, const unsigned char *cp,
56833
56834 static void
56835 n_tty_receive_buf_standard(struct tty_struct *tty, const unsigned char *cp,
56836 - char *fp, int count)
56837 + char *fp, size_t count)
56838 {
56839 struct n_tty_data *ldata = tty->disc_data;
56840 char flag = TTY_NORMAL;
56841 @@ -1601,7 +1601,7 @@ n_tty_receive_buf_standard(struct tty_struct *tty, const unsigned char *cp,
56842
56843 static void
56844 n_tty_receive_buf_fast(struct tty_struct *tty, const unsigned char *cp,
56845 - char *fp, int count)
56846 + char *fp, size_t count)
56847 {
56848 struct n_tty_data *ldata = tty->disc_data;
56849 char flag = TTY_NORMAL;
56850 @@ -1626,7 +1626,7 @@ n_tty_receive_buf_fast(struct tty_struct *tty, const unsigned char *cp,
56851 }
56852
56853 static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
56854 - char *fp, int count)
56855 + char *fp, size_t count)
56856 {
56857 struct n_tty_data *ldata = tty->disc_data;
56858 bool preops = I_ISTRIP(tty) || (I_IUCLC(tty) && L_IEXTEN(tty));
56859 @@ -1704,10 +1704,10 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
56860 */
56861 static int
56862 n_tty_receive_buf_common(struct tty_struct *tty, const unsigned char *cp,
56863 - char *fp, int count, int flow)
56864 + char *fp, size_t count, int flow)
56865 {
56866 struct n_tty_data *ldata = tty->disc_data;
56867 - int room, n, rcvd = 0, overflow;
56868 + size_t room, n, rcvd = 0, overflow;
56869
56870 down_read(&tty->termios_rwsem);
56871
56872 @@ -2583,6 +2583,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
56873 {
56874 *ops = tty_ldisc_N_TTY;
56875 ops->owner = NULL;
56876 - ops->refcount = ops->flags = 0;
56877 + atomic_set(&ops->refcount, 0);
56878 + ops->flags = 0;
56879 }
56880 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
56881 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
56882 index 4d5937c..d6ae539 100644
56883 --- a/drivers/tty/pty.c
56884 +++ b/drivers/tty/pty.c
56885 @@ -857,8 +857,10 @@ static void __init unix98_pty_init(void)
56886 panic("Couldn't register Unix98 pts driver");
56887
56888 /* Now create the /dev/ptmx special device */
56889 + pax_open_kernel();
56890 tty_default_fops(&ptmx_fops);
56891 - ptmx_fops.open = ptmx_open;
56892 + *(void **)&ptmx_fops.open = ptmx_open;
56893 + pax_close_kernel();
56894
56895 cdev_init(&ptmx_cdev, &ptmx_fops);
56896 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
56897 diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
56898 index c8dd8dc..dca6cfd 100644
56899 --- a/drivers/tty/rocket.c
56900 +++ b/drivers/tty/rocket.c
56901 @@ -914,7 +914,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
56902 tty->driver_data = info;
56903 tty_port_tty_set(port, tty);
56904
56905 - if (port->count++ == 0) {
56906 + if (atomic_inc_return(&port->count) == 1) {
56907 atomic_inc(&rp_num_ports_open);
56908
56909 #ifdef ROCKET_DEBUG_OPEN
56910 @@ -923,7 +923,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
56911 #endif
56912 }
56913 #ifdef ROCKET_DEBUG_OPEN
56914 - printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, info->port.count);
56915 + printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, atomic-read(&info->port.count));
56916 #endif
56917
56918 /*
56919 @@ -1515,7 +1515,7 @@ static void rp_hangup(struct tty_struct *tty)
56920 spin_unlock_irqrestore(&info->port.lock, flags);
56921 return;
56922 }
56923 - if (info->port.count)
56924 + if (atomic_read(&info->port.count))
56925 atomic_dec(&rp_num_ports_open);
56926 clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
56927 spin_unlock_irqrestore(&info->port.lock, flags);
56928 diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
56929 index 271d121..f2e750c 100644
56930 --- a/drivers/tty/serial/8250/8250_core.c
56931 +++ b/drivers/tty/serial/8250/8250_core.c
56932 @@ -488,9 +488,9 @@ static void univ8250_release_port(struct uart_port *port)
56933
56934 static void univ8250_rsa_support(struct uart_ops *ops)
56935 {
56936 - ops->config_port = univ8250_config_port;
56937 - ops->request_port = univ8250_request_port;
56938 - ops->release_port = univ8250_release_port;
56939 + *(void **)&ops->config_port = univ8250_config_port;
56940 + *(void **)&ops->request_port = univ8250_request_port;
56941 + *(void **)&ops->release_port = univ8250_release_port;
56942 }
56943
56944 #else
56945 @@ -533,8 +533,10 @@ static void __init serial8250_isa_init_ports(void)
56946 }
56947
56948 /* chain base port ops to support Remote Supervisor Adapter */
56949 - univ8250_port_ops = *base_ops;
56950 + pax_open_kernel();
56951 + memcpy((void *)&univ8250_port_ops, base_ops, sizeof univ8250_port_ops);
56952 univ8250_rsa_support(&univ8250_port_ops);
56953 + pax_close_kernel();
56954
56955 if (share_irqs)
56956 irqflag = IRQF_SHARED;
56957 diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
56958 index 536a33b..1b98f43 100644
56959 --- a/drivers/tty/serial/ifx6x60.c
56960 +++ b/drivers/tty/serial/ifx6x60.c
56961 @@ -649,7 +649,7 @@ static void ifx_spi_complete(void *ctx)
56962 struct ifx_spi_device *ifx_dev = ctx;
56963 int length;
56964 int actual_length;
56965 - unsigned char more;
56966 + unsigned char more = 0;
56967 unsigned char cts;
56968 int local_write_pending = 0;
56969 int queue_length;
56970 diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
56971 index e5c42fe..f091b02 100644
56972 --- a/drivers/tty/serial/ioc4_serial.c
56973 +++ b/drivers/tty/serial/ioc4_serial.c
56974 @@ -437,7 +437,7 @@ struct ioc4_soft {
56975 } is_intr_info[MAX_IOC4_INTR_ENTS];
56976
56977 /* Number of entries active in the above array */
56978 - atomic_t is_num_intrs;
56979 + atomic_unchecked_t is_num_intrs;
56980 } is_intr_type[IOC4_NUM_INTR_TYPES];
56981
56982 /* is_ir_lock must be held while
56983 @@ -974,7 +974,7 @@ intr_connect(struct ioc4_soft *soft, int type,
56984 BUG_ON(!((type == IOC4_SIO_INTR_TYPE)
56985 || (type == IOC4_OTHER_INTR_TYPE)));
56986
56987 - i = atomic_inc_return(&soft-> is_intr_type[type].is_num_intrs) - 1;
56988 + i = atomic_inc_return_unchecked(&soft-> is_intr_type[type].is_num_intrs) - 1;
56989 BUG_ON(!(i < MAX_IOC4_INTR_ENTS || (printk("i %d\n", i), 0)));
56990
56991 /* Save off the lower level interrupt handler */
56992 @@ -1001,7 +1001,7 @@ static irqreturn_t ioc4_intr(int irq, void *arg)
56993
56994 soft = arg;
56995 for (intr_type = 0; intr_type < IOC4_NUM_INTR_TYPES; intr_type++) {
56996 - num_intrs = (int)atomic_read(
56997 + num_intrs = (int)atomic_read_unchecked(
56998 &soft->is_intr_type[intr_type].is_num_intrs);
56999
57000 this_mir = this_ir = pending_intrs(soft, intr_type);
57001 diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c
57002 index 117df15..2f7dfcf 100644
57003 --- a/drivers/tty/serial/kgdb_nmi.c
57004 +++ b/drivers/tty/serial/kgdb_nmi.c
57005 @@ -53,7 +53,9 @@ static int kgdb_nmi_console_setup(struct console *co, char *options)
57006 * I/O utilities that messages sent to the console will automatically
57007 * be displayed on the dbg_io.
57008 */
57009 - dbg_io_ops->is_console = true;
57010 + pax_open_kernel();
57011 + *(int *)&dbg_io_ops->is_console = true;
57012 + pax_close_kernel();
57013
57014 return 0;
57015 }
57016 diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
57017 index a260cde..6b2b5ce 100644
57018 --- a/drivers/tty/serial/kgdboc.c
57019 +++ b/drivers/tty/serial/kgdboc.c
57020 @@ -24,8 +24,9 @@
57021 #define MAX_CONFIG_LEN 40
57022
57023 static struct kgdb_io kgdboc_io_ops;
57024 +static struct kgdb_io kgdboc_io_ops_console;
57025
57026 -/* -1 = init not run yet, 0 = unconfigured, 1 = configured. */
57027 +/* -1 = init not run yet, 0 = unconfigured, 1/2 = configured. */
57028 static int configured = -1;
57029
57030 static char config[MAX_CONFIG_LEN];
57031 @@ -151,6 +152,8 @@ static void cleanup_kgdboc(void)
57032 kgdboc_unregister_kbd();
57033 if (configured == 1)
57034 kgdb_unregister_io_module(&kgdboc_io_ops);
57035 + else if (configured == 2)
57036 + kgdb_unregister_io_module(&kgdboc_io_ops_console);
57037 }
57038
57039 static int configure_kgdboc(void)
57040 @@ -160,13 +163,13 @@ static int configure_kgdboc(void)
57041 int err;
57042 char *cptr = config;
57043 struct console *cons;
57044 + int is_console = 0;
57045
57046 err = kgdboc_option_setup(config);
57047 if (err || !strlen(config) || isspace(config[0]))
57048 goto noconfig;
57049
57050 err = -ENODEV;
57051 - kgdboc_io_ops.is_console = 0;
57052 kgdb_tty_driver = NULL;
57053
57054 kgdboc_use_kms = 0;
57055 @@ -187,7 +190,7 @@ static int configure_kgdboc(void)
57056 int idx;
57057 if (cons->device && cons->device(cons, &idx) == p &&
57058 idx == tty_line) {
57059 - kgdboc_io_ops.is_console = 1;
57060 + is_console = 1;
57061 break;
57062 }
57063 cons = cons->next;
57064 @@ -197,7 +200,13 @@ static int configure_kgdboc(void)
57065 kgdb_tty_line = tty_line;
57066
57067 do_register:
57068 - err = kgdb_register_io_module(&kgdboc_io_ops);
57069 + if (is_console) {
57070 + err = kgdb_register_io_module(&kgdboc_io_ops_console);
57071 + configured = 2;
57072 + } else {
57073 + err = kgdb_register_io_module(&kgdboc_io_ops);
57074 + configured = 1;
57075 + }
57076 if (err)
57077 goto noconfig;
57078
57079 @@ -205,8 +214,6 @@ do_register:
57080 if (err)
57081 goto nmi_con_failed;
57082
57083 - configured = 1;
57084 -
57085 return 0;
57086
57087 nmi_con_failed:
57088 @@ -223,7 +230,7 @@ noconfig:
57089 static int __init init_kgdboc(void)
57090 {
57091 /* Already configured? */
57092 - if (configured == 1)
57093 + if (configured >= 1)
57094 return 0;
57095
57096 return configure_kgdboc();
57097 @@ -272,7 +279,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
57098 if (config[len - 1] == '\n')
57099 config[len - 1] = '\0';
57100
57101 - if (configured == 1)
57102 + if (configured >= 1)
57103 cleanup_kgdboc();
57104
57105 /* Go and configure with the new params. */
57106 @@ -312,6 +319,15 @@ static struct kgdb_io kgdboc_io_ops = {
57107 .post_exception = kgdboc_post_exp_handler,
57108 };
57109
57110 +static struct kgdb_io kgdboc_io_ops_console = {
57111 + .name = "kgdboc",
57112 + .read_char = kgdboc_get_char,
57113 + .write_char = kgdboc_put_char,
57114 + .pre_exception = kgdboc_pre_exp_handler,
57115 + .post_exception = kgdboc_post_exp_handler,
57116 + .is_console = 1
57117 +};
57118 +
57119 #ifdef CONFIG_KGDB_SERIAL_CONSOLE
57120 /* This is only available if kgdboc is a built in for early debugging */
57121 static int __init kgdboc_early_init(char *opt)
57122 diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
57123 index b73889c..9f74f0a 100644
57124 --- a/drivers/tty/serial/msm_serial.c
57125 +++ b/drivers/tty/serial/msm_serial.c
57126 @@ -1012,7 +1012,7 @@ static struct uart_driver msm_uart_driver = {
57127 .cons = MSM_CONSOLE,
57128 };
57129
57130 -static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
57131 +static atomic_unchecked_t msm_uart_next_id = ATOMIC_INIT(0);
57132
57133 static const struct of_device_id msm_uartdm_table[] = {
57134 { .compatible = "qcom,msm-uartdm-v1.1", .data = (void *)UARTDM_1P1 },
57135 @@ -1036,7 +1036,7 @@ static int msm_serial_probe(struct platform_device *pdev)
57136 line = pdev->id;
57137
57138 if (line < 0)
57139 - line = atomic_inc_return(&msm_uart_next_id) - 1;
57140 + line = atomic_inc_return_unchecked(&msm_uart_next_id) - 1;
57141
57142 if (unlikely(line < 0 || line >= UART_NR))
57143 return -ENXIO;
57144 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
57145 index 856686d..cd1e114 100644
57146 --- a/drivers/tty/serial/samsung.c
57147 +++ b/drivers/tty/serial/samsung.c
57148 @@ -994,11 +994,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
57149 ourport->tx_in_progress = 0;
57150 }
57151
57152 +static int s3c64xx_serial_startup(struct uart_port *port);
57153 static int s3c24xx_serial_startup(struct uart_port *port)
57154 {
57155 struct s3c24xx_uart_port *ourport = to_ourport(port);
57156 int ret;
57157
57158 + /* Startup sequence is different for s3c64xx and higher SoC's */
57159 + if (s3c24xx_serial_has_interrupt_mask(port))
57160 + return s3c64xx_serial_startup(port);
57161 +
57162 dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
57163 port, (unsigned long long)port->mapbase, port->membase);
57164
57165 @@ -1705,10 +1710,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
57166 /* setup info for port */
57167 port->dev = &platdev->dev;
57168
57169 - /* Startup sequence is different for s3c64xx and higher SoC's */
57170 - if (s3c24xx_serial_has_interrupt_mask(port))
57171 - s3c24xx_serial_ops.startup = s3c64xx_serial_startup;
57172 -
57173 port->uartclk = 1;
57174
57175 if (cfg->uart_flags & UPF_CONS_FLOW) {
57176 diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
57177 index 603d2cc..5033f58 100644
57178 --- a/drivers/tty/serial/serial_core.c
57179 +++ b/drivers/tty/serial/serial_core.c
57180 @@ -1384,7 +1384,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
57181 state = drv->state + tty->index;
57182 port = &state->port;
57183 spin_lock_irq(&port->lock);
57184 - --port->count;
57185 + atomic_dec(&port->count);
57186 spin_unlock_irq(&port->lock);
57187 return;
57188 }
57189 @@ -1394,7 +1394,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
57190
57191 pr_debug("uart_close(%d) called\n", uport ? uport->line : -1);
57192
57193 - if (!port->count || tty_port_close_start(port, tty, filp) == 0)
57194 + if (!atomic_read(&port->count) || tty_port_close_start(port, tty, filp) == 0)
57195 return;
57196
57197 /*
57198 @@ -1518,7 +1518,7 @@ static void uart_hangup(struct tty_struct *tty)
57199 uart_flush_buffer(tty);
57200 uart_shutdown(tty, state);
57201 spin_lock_irqsave(&port->lock, flags);
57202 - port->count = 0;
57203 + atomic_set(&port->count, 0);
57204 clear_bit(ASYNCB_NORMAL_ACTIVE, &port->flags);
57205 spin_unlock_irqrestore(&port->lock, flags);
57206 tty_port_tty_set(port, NULL);
57207 @@ -1600,7 +1600,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
57208 pr_debug("uart_open(%d) called\n", line);
57209
57210 spin_lock_irq(&port->lock);
57211 - ++port->count;
57212 + atomic_inc(&port->count);
57213 spin_unlock_irq(&port->lock);
57214
57215 /*
57216 diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
57217 index b1c6bd3..5f038e2 100644
57218 --- a/drivers/tty/serial/uartlite.c
57219 +++ b/drivers/tty/serial/uartlite.c
57220 @@ -341,13 +341,13 @@ static int ulite_request_port(struct uart_port *port)
57221 return -EBUSY;
57222 }
57223
57224 - port->private_data = &uartlite_be;
57225 + port->private_data = (void *)&uartlite_be;
57226 ret = uart_in32(ULITE_CONTROL, port);
57227 uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
57228 ret = uart_in32(ULITE_STATUS, port);
57229 /* Endianess detection */
57230 if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
57231 - port->private_data = &uartlite_le;
57232 + port->private_data = (void *)&uartlite_le;
57233
57234 return 0;
57235 }
57236 diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
57237 index 2fac712..fcd5268 100644
57238 --- a/drivers/tty/synclink.c
57239 +++ b/drivers/tty/synclink.c
57240 @@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
57241
57242 if (debug_level >= DEBUG_LEVEL_INFO)
57243 printk("%s(%d):mgsl_close(%s) entry, count=%d\n",
57244 - __FILE__,__LINE__, info->device_name, info->port.count);
57245 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
57246
57247 if (tty_port_close_start(&info->port, tty, filp) == 0)
57248 goto cleanup;
57249 @@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
57250 cleanup:
57251 if (debug_level >= DEBUG_LEVEL_INFO)
57252 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__,
57253 - tty->driver->name, info->port.count);
57254 + tty->driver->name, atomic_read(&info->port.count));
57255
57256 } /* end of mgsl_close() */
57257
57258 @@ -3207,8 +3207,8 @@ static void mgsl_hangup(struct tty_struct *tty)
57259
57260 mgsl_flush_buffer(tty);
57261 shutdown(info);
57262 -
57263 - info->port.count = 0;
57264 +
57265 + atomic_set(&info->port.count, 0);
57266 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57267 info->port.tty = NULL;
57268
57269 @@ -3296,10 +3296,10 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57270
57271 if (debug_level >= DEBUG_LEVEL_INFO)
57272 printk("%s(%d):block_til_ready before block on %s count=%d\n",
57273 - __FILE__,__LINE__, tty->driver->name, port->count );
57274 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57275
57276 spin_lock_irqsave(&info->irq_spinlock, flags);
57277 - port->count--;
57278 + atomic_dec(&port->count);
57279 spin_unlock_irqrestore(&info->irq_spinlock, flags);
57280 port->blocked_open++;
57281
57282 @@ -3327,7 +3327,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57283
57284 if (debug_level >= DEBUG_LEVEL_INFO)
57285 printk("%s(%d):block_til_ready blocking on %s count=%d\n",
57286 - __FILE__,__LINE__, tty->driver->name, port->count );
57287 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57288
57289 tty_unlock(tty);
57290 schedule();
57291 @@ -3339,12 +3339,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57292
57293 /* FIXME: Racy on hangup during close wait */
57294 if (!tty_hung_up_p(filp))
57295 - port->count++;
57296 + atomic_inc(&port->count);
57297 port->blocked_open--;
57298
57299 if (debug_level >= DEBUG_LEVEL_INFO)
57300 printk("%s(%d):block_til_ready after blocking on %s count=%d\n",
57301 - __FILE__,__LINE__, tty->driver->name, port->count );
57302 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57303
57304 if (!retval)
57305 port->flags |= ASYNC_NORMAL_ACTIVE;
57306 @@ -3396,7 +3396,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
57307
57308 if (debug_level >= DEBUG_LEVEL_INFO)
57309 printk("%s(%d):mgsl_open(%s), old ref count = %d\n",
57310 - __FILE__,__LINE__,tty->driver->name, info->port.count);
57311 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
57312
57313 /* If port is closing, signal caller to try again */
57314 if (info->port.flags & ASYNC_CLOSING){
57315 @@ -3415,10 +3415,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
57316 spin_unlock_irqrestore(&info->netlock, flags);
57317 goto cleanup;
57318 }
57319 - info->port.count++;
57320 + atomic_inc(&info->port.count);
57321 spin_unlock_irqrestore(&info->netlock, flags);
57322
57323 - if (info->port.count == 1) {
57324 + if (atomic_read(&info->port.count) == 1) {
57325 /* 1st open on this device, init hardware */
57326 retval = startup(info);
57327 if (retval < 0)
57328 @@ -3442,8 +3442,8 @@ cleanup:
57329 if (retval) {
57330 if (tty->count == 1)
57331 info->port.tty = NULL; /* tty layer will release tty struct */
57332 - if(info->port.count)
57333 - info->port.count--;
57334 + if (atomic_read(&info->port.count))
57335 + atomic_dec(&info->port.count);
57336 }
57337
57338 return retval;
57339 @@ -7662,7 +7662,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57340 unsigned short new_crctype;
57341
57342 /* return error if TTY interface open */
57343 - if (info->port.count)
57344 + if (atomic_read(&info->port.count))
57345 return -EBUSY;
57346
57347 switch (encoding)
57348 @@ -7758,7 +7758,7 @@ static int hdlcdev_open(struct net_device *dev)
57349
57350 /* arbitrate between network and tty opens */
57351 spin_lock_irqsave(&info->netlock, flags);
57352 - if (info->port.count != 0 || info->netcount != 0) {
57353 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57354 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
57355 spin_unlock_irqrestore(&info->netlock, flags);
57356 return -EBUSY;
57357 @@ -7844,7 +7844,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57358 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57359
57360 /* return error if TTY interface open */
57361 - if (info->port.count)
57362 + if (atomic_read(&info->port.count))
57363 return -EBUSY;
57364
57365 if (cmd != SIOCWANDEV)
57366 diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
57367 index 0ea8eee..b3f1b8f 100644
57368 --- a/drivers/tty/synclink_gt.c
57369 +++ b/drivers/tty/synclink_gt.c
57370 @@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57371 tty->driver_data = info;
57372 info->port.tty = tty;
57373
57374 - DBGINFO(("%s open, old ref count = %d\n", info->device_name, info->port.count));
57375 + DBGINFO(("%s open, old ref count = %d\n", info->device_name, atomic_read(&info->port.count)));
57376
57377 /* If port is closing, signal caller to try again */
57378 if (info->port.flags & ASYNC_CLOSING){
57379 @@ -691,10 +691,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57380 mutex_unlock(&info->port.mutex);
57381 goto cleanup;
57382 }
57383 - info->port.count++;
57384 + atomic_inc(&info->port.count);
57385 spin_unlock_irqrestore(&info->netlock, flags);
57386
57387 - if (info->port.count == 1) {
57388 + if (atomic_read(&info->port.count) == 1) {
57389 /* 1st open on this device, init hardware */
57390 retval = startup(info);
57391 if (retval < 0) {
57392 @@ -715,8 +715,8 @@ cleanup:
57393 if (retval) {
57394 if (tty->count == 1)
57395 info->port.tty = NULL; /* tty layer will release tty struct */
57396 - if(info->port.count)
57397 - info->port.count--;
57398 + if(atomic_read(&info->port.count))
57399 + atomic_dec(&info->port.count);
57400 }
57401
57402 DBGINFO(("%s open rc=%d\n", info->device_name, retval));
57403 @@ -729,7 +729,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57404
57405 if (sanity_check(info, tty->name, "close"))
57406 return;
57407 - DBGINFO(("%s close entry, count=%d\n", info->device_name, info->port.count));
57408 + DBGINFO(("%s close entry, count=%d\n", info->device_name, atomic_read(&info->port.count)));
57409
57410 if (tty_port_close_start(&info->port, tty, filp) == 0)
57411 goto cleanup;
57412 @@ -746,7 +746,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57413 tty_port_close_end(&info->port, tty);
57414 info->port.tty = NULL;
57415 cleanup:
57416 - DBGINFO(("%s close exit, count=%d\n", tty->driver->name, info->port.count));
57417 + DBGINFO(("%s close exit, count=%d\n", tty->driver->name, atomic_read(&info->port.count)));
57418 }
57419
57420 static void hangup(struct tty_struct *tty)
57421 @@ -764,7 +764,7 @@ static void hangup(struct tty_struct *tty)
57422 shutdown(info);
57423
57424 spin_lock_irqsave(&info->port.lock, flags);
57425 - info->port.count = 0;
57426 + atomic_set(&info->port.count, 0);
57427 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57428 info->port.tty = NULL;
57429 spin_unlock_irqrestore(&info->port.lock, flags);
57430 @@ -1449,7 +1449,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57431 unsigned short new_crctype;
57432
57433 /* return error if TTY interface open */
57434 - if (info->port.count)
57435 + if (atomic_read(&info->port.count))
57436 return -EBUSY;
57437
57438 DBGINFO(("%s hdlcdev_attach\n", info->device_name));
57439 @@ -1545,7 +1545,7 @@ static int hdlcdev_open(struct net_device *dev)
57440
57441 /* arbitrate between network and tty opens */
57442 spin_lock_irqsave(&info->netlock, flags);
57443 - if (info->port.count != 0 || info->netcount != 0) {
57444 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57445 DBGINFO(("%s hdlc_open busy\n", dev->name));
57446 spin_unlock_irqrestore(&info->netlock, flags);
57447 return -EBUSY;
57448 @@ -1630,7 +1630,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57449 DBGINFO(("%s hdlcdev_ioctl\n", dev->name));
57450
57451 /* return error if TTY interface open */
57452 - if (info->port.count)
57453 + if (atomic_read(&info->port.count))
57454 return -EBUSY;
57455
57456 if (cmd != SIOCWANDEV)
57457 @@ -2417,7 +2417,7 @@ static irqreturn_t slgt_interrupt(int dummy, void *dev_id)
57458 if (port == NULL)
57459 continue;
57460 spin_lock(&port->lock);
57461 - if ((port->port.count || port->netcount) &&
57462 + if ((atomic_read(&port->port.count) || port->netcount) &&
57463 port->pending_bh && !port->bh_running &&
57464 !port->bh_requested) {
57465 DBGISR(("%s bh queued\n", port->device_name));
57466 @@ -3303,7 +3303,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57467 add_wait_queue(&port->open_wait, &wait);
57468
57469 spin_lock_irqsave(&info->lock, flags);
57470 - port->count--;
57471 + atomic_dec(&port->count);
57472 spin_unlock_irqrestore(&info->lock, flags);
57473 port->blocked_open++;
57474
57475 @@ -3339,7 +3339,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57476 remove_wait_queue(&port->open_wait, &wait);
57477
57478 if (!tty_hung_up_p(filp))
57479 - port->count++;
57480 + atomic_inc(&port->count);
57481 port->blocked_open--;
57482
57483 if (!retval)
57484 diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
57485 index 08633a8..3d56e14 100644
57486 --- a/drivers/tty/synclinkmp.c
57487 +++ b/drivers/tty/synclinkmp.c
57488 @@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57489
57490 if (debug_level >= DEBUG_LEVEL_INFO)
57491 printk("%s(%d):%s open(), old ref count = %d\n",
57492 - __FILE__,__LINE__,tty->driver->name, info->port.count);
57493 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
57494
57495 /* If port is closing, signal caller to try again */
57496 if (info->port.flags & ASYNC_CLOSING){
57497 @@ -769,10 +769,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57498 spin_unlock_irqrestore(&info->netlock, flags);
57499 goto cleanup;
57500 }
57501 - info->port.count++;
57502 + atomic_inc(&info->port.count);
57503 spin_unlock_irqrestore(&info->netlock, flags);
57504
57505 - if (info->port.count == 1) {
57506 + if (atomic_read(&info->port.count) == 1) {
57507 /* 1st open on this device, init hardware */
57508 retval = startup(info);
57509 if (retval < 0)
57510 @@ -796,8 +796,8 @@ cleanup:
57511 if (retval) {
57512 if (tty->count == 1)
57513 info->port.tty = NULL; /* tty layer will release tty struct */
57514 - if(info->port.count)
57515 - info->port.count--;
57516 + if(atomic_read(&info->port.count))
57517 + atomic_dec(&info->port.count);
57518 }
57519
57520 return retval;
57521 @@ -815,7 +815,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57522
57523 if (debug_level >= DEBUG_LEVEL_INFO)
57524 printk("%s(%d):%s close() entry, count=%d\n",
57525 - __FILE__,__LINE__, info->device_name, info->port.count);
57526 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
57527
57528 if (tty_port_close_start(&info->port, tty, filp) == 0)
57529 goto cleanup;
57530 @@ -834,7 +834,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57531 cleanup:
57532 if (debug_level >= DEBUG_LEVEL_INFO)
57533 printk("%s(%d):%s close() exit, count=%d\n", __FILE__,__LINE__,
57534 - tty->driver->name, info->port.count);
57535 + tty->driver->name, atomic_read(&info->port.count));
57536 }
57537
57538 /* Called by tty_hangup() when a hangup is signaled.
57539 @@ -857,7 +857,7 @@ static void hangup(struct tty_struct *tty)
57540 shutdown(info);
57541
57542 spin_lock_irqsave(&info->port.lock, flags);
57543 - info->port.count = 0;
57544 + atomic_set(&info->port.count, 0);
57545 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57546 info->port.tty = NULL;
57547 spin_unlock_irqrestore(&info->port.lock, flags);
57548 @@ -1565,7 +1565,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57549 unsigned short new_crctype;
57550
57551 /* return error if TTY interface open */
57552 - if (info->port.count)
57553 + if (atomic_read(&info->port.count))
57554 return -EBUSY;
57555
57556 switch (encoding)
57557 @@ -1661,7 +1661,7 @@ static int hdlcdev_open(struct net_device *dev)
57558
57559 /* arbitrate between network and tty opens */
57560 spin_lock_irqsave(&info->netlock, flags);
57561 - if (info->port.count != 0 || info->netcount != 0) {
57562 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57563 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
57564 spin_unlock_irqrestore(&info->netlock, flags);
57565 return -EBUSY;
57566 @@ -1747,7 +1747,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57567 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57568
57569 /* return error if TTY interface open */
57570 - if (info->port.count)
57571 + if (atomic_read(&info->port.count))
57572 return -EBUSY;
57573
57574 if (cmd != SIOCWANDEV)
57575 @@ -2624,7 +2624,7 @@ static irqreturn_t synclinkmp_interrupt(int dummy, void *dev_id)
57576 * do not request bottom half processing if the
57577 * device is not open in a normal mode.
57578 */
57579 - if ( port && (port->port.count || port->netcount) &&
57580 + if ( port && (atomic_read(&port->port.count) || port->netcount) &&
57581 port->pending_bh && !port->bh_running &&
57582 !port->bh_requested ) {
57583 if ( debug_level >= DEBUG_LEVEL_ISR )
57584 @@ -3321,10 +3321,10 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57585
57586 if (debug_level >= DEBUG_LEVEL_INFO)
57587 printk("%s(%d):%s block_til_ready() before block, count=%d\n",
57588 - __FILE__,__LINE__, tty->driver->name, port->count );
57589 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57590
57591 spin_lock_irqsave(&info->lock, flags);
57592 - port->count--;
57593 + atomic_dec(&port->count);
57594 spin_unlock_irqrestore(&info->lock, flags);
57595 port->blocked_open++;
57596
57597 @@ -3352,7 +3352,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57598
57599 if (debug_level >= DEBUG_LEVEL_INFO)
57600 printk("%s(%d):%s block_til_ready() count=%d\n",
57601 - __FILE__,__LINE__, tty->driver->name, port->count );
57602 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57603
57604 tty_unlock(tty);
57605 schedule();
57606 @@ -3362,12 +3362,12 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57607 set_current_state(TASK_RUNNING);
57608 remove_wait_queue(&port->open_wait, &wait);
57609 if (!tty_hung_up_p(filp))
57610 - port->count++;
57611 + atomic_inc(&port->count);
57612 port->blocked_open--;
57613
57614 if (debug_level >= DEBUG_LEVEL_INFO)
57615 printk("%s(%d):%s block_til_ready() after, count=%d\n",
57616 - __FILE__,__LINE__, tty->driver->name, port->count );
57617 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57618
57619 if (!retval)
57620 port->flags |= ASYNC_NORMAL_ACTIVE;
57621 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
57622 index 95b330a..43dc301 100644
57623 --- a/drivers/tty/sysrq.c
57624 +++ b/drivers/tty/sysrq.c
57625 @@ -1079,7 +1079,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
57626 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
57627 size_t count, loff_t *ppos)
57628 {
57629 - if (count) {
57630 + if (count && capable(CAP_SYS_ADMIN)) {
57631 char c;
57632
57633 if (get_user(c, buf))
57634 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
57635 index f435977..8b399ef 100644
57636 --- a/drivers/tty/tty_io.c
57637 +++ b/drivers/tty/tty_io.c
57638 @@ -3533,7 +3533,7 @@ EXPORT_SYMBOL(tty_devnum);
57639
57640 void tty_default_fops(struct file_operations *fops)
57641 {
57642 - *fops = tty_fops;
57643 + memcpy((void *)fops, &tty_fops, sizeof(tty_fops));
57644 }
57645
57646 /*
57647 diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
57648 index 71750cb..8db9583 100644
57649 --- a/drivers/tty/tty_ldisc.c
57650 +++ b/drivers/tty/tty_ldisc.c
57651 @@ -68,7 +68,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
57652 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57653 tty_ldiscs[disc] = new_ldisc;
57654 new_ldisc->num = disc;
57655 - new_ldisc->refcount = 0;
57656 + atomic_set(&new_ldisc->refcount, 0);
57657 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57658
57659 return ret;
57660 @@ -96,7 +96,7 @@ int tty_unregister_ldisc(int disc)
57661 return -EINVAL;
57662
57663 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57664 - if (tty_ldiscs[disc]->refcount)
57665 + if (atomic_read(&tty_ldiscs[disc]->refcount))
57666 ret = -EBUSY;
57667 else
57668 tty_ldiscs[disc] = NULL;
57669 @@ -117,7 +117,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
57670 if (ldops) {
57671 ret = ERR_PTR(-EAGAIN);
57672 if (try_module_get(ldops->owner)) {
57673 - ldops->refcount++;
57674 + atomic_inc(&ldops->refcount);
57675 ret = ldops;
57676 }
57677 }
57678 @@ -130,7 +130,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
57679 unsigned long flags;
57680
57681 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57682 - ldops->refcount--;
57683 + atomic_dec(&ldops->refcount);
57684 module_put(ldops->owner);
57685 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57686 }
57687 diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
57688 index 40b31835..94d92ae 100644
57689 --- a/drivers/tty/tty_port.c
57690 +++ b/drivers/tty/tty_port.c
57691 @@ -236,7 +236,7 @@ void tty_port_hangup(struct tty_port *port)
57692 unsigned long flags;
57693
57694 spin_lock_irqsave(&port->lock, flags);
57695 - port->count = 0;
57696 + atomic_set(&port->count, 0);
57697 port->flags &= ~ASYNC_NORMAL_ACTIVE;
57698 tty = port->tty;
57699 if (tty)
57700 @@ -398,7 +398,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57701
57702 /* The port lock protects the port counts */
57703 spin_lock_irqsave(&port->lock, flags);
57704 - port->count--;
57705 + atomic_dec(&port->count);
57706 port->blocked_open++;
57707 spin_unlock_irqrestore(&port->lock, flags);
57708
57709 @@ -440,7 +440,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57710 we must not mess that up further */
57711 spin_lock_irqsave(&port->lock, flags);
57712 if (!tty_hung_up_p(filp))
57713 - port->count++;
57714 + atomic_inc(&port->count);
57715 port->blocked_open--;
57716 if (retval == 0)
57717 port->flags |= ASYNC_NORMAL_ACTIVE;
57718 @@ -476,19 +476,19 @@ int tty_port_close_start(struct tty_port *port,
57719 return 0;
57720
57721 spin_lock_irqsave(&port->lock, flags);
57722 - if (tty->count == 1 && port->count != 1) {
57723 + if (tty->count == 1 && atomic_read(&port->count) != 1) {
57724 printk(KERN_WARNING
57725 "tty_port_close_start: tty->count = 1 port count = %d.\n",
57726 - port->count);
57727 - port->count = 1;
57728 + atomic_read(&port->count));
57729 + atomic_set(&port->count, 1);
57730 }
57731 - if (--port->count < 0) {
57732 + if (atomic_dec_return(&port->count) < 0) {
57733 printk(KERN_WARNING "tty_port_close_start: count = %d\n",
57734 - port->count);
57735 - port->count = 0;
57736 + atomic_read(&port->count));
57737 + atomic_set(&port->count, 0);
57738 }
57739
57740 - if (port->count) {
57741 + if (atomic_read(&port->count)) {
57742 spin_unlock_irqrestore(&port->lock, flags);
57743 return 0;
57744 }
57745 @@ -590,7 +590,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
57746 struct file *filp)
57747 {
57748 spin_lock_irq(&port->lock);
57749 - ++port->count;
57750 + atomic_inc(&port->count);
57751 spin_unlock_irq(&port->lock);
57752 tty_port_tty_set(port, tty);
57753
57754 diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
57755 index 6f0336f..5818bc1 100644
57756 --- a/drivers/tty/vt/keyboard.c
57757 +++ b/drivers/tty/vt/keyboard.c
57758 @@ -642,6 +642,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
57759 kbd->kbdmode == VC_OFF) &&
57760 value != KVAL(K_SAK))
57761 return; /* SAK is allowed even in raw mode */
57762 +
57763 +#if defined(CONFIG_GRKERNSEC_PROC) || defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
57764 + {
57765 + void *func = fn_handler[value];
57766 + if (func == fn_show_state || func == fn_show_ptregs ||
57767 + func == fn_show_mem)
57768 + return;
57769 + }
57770 +#endif
57771 +
57772 fn_handler[value](vc);
57773 }
57774
57775 @@ -1880,9 +1890,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
57776 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
57777 return -EFAULT;
57778
57779 - if (!capable(CAP_SYS_TTY_CONFIG))
57780 - perm = 0;
57781 -
57782 switch (cmd) {
57783 case KDGKBENT:
57784 /* Ensure another thread doesn't free it under us */
57785 @@ -1897,6 +1904,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
57786 spin_unlock_irqrestore(&kbd_event_lock, flags);
57787 return put_user(val, &user_kbe->kb_value);
57788 case KDSKBENT:
57789 + if (!capable(CAP_SYS_TTY_CONFIG))
57790 + perm = 0;
57791 +
57792 if (!perm)
57793 return -EPERM;
57794 if (!i && v == K_NOSUCHMAP) {
57795 @@ -1987,9 +1997,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
57796 int i, j, k;
57797 int ret;
57798
57799 - if (!capable(CAP_SYS_TTY_CONFIG))
57800 - perm = 0;
57801 -
57802 kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
57803 if (!kbs) {
57804 ret = -ENOMEM;
57805 @@ -2023,6 +2030,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
57806 kfree(kbs);
57807 return ((p && *p) ? -EOVERFLOW : 0);
57808 case KDSKBSENT:
57809 + if (!capable(CAP_SYS_TTY_CONFIG))
57810 + perm = 0;
57811 +
57812 if (!perm) {
57813 ret = -EPERM;
57814 goto reterr;
57815 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
57816 index 8196581..aa153a5 100644
57817 --- a/drivers/uio/uio.c
57818 +++ b/drivers/uio/uio.c
57819 @@ -25,6 +25,7 @@
57820 #include <linux/kobject.h>
57821 #include <linux/cdev.h>
57822 #include <linux/uio_driver.h>
57823 +#include <asm/local.h>
57824
57825 #define UIO_MAX_DEVICES (1U << MINORBITS)
57826
57827 @@ -231,7 +232,7 @@ static ssize_t event_show(struct device *dev,
57828 struct device_attribute *attr, char *buf)
57829 {
57830 struct uio_device *idev = dev_get_drvdata(dev);
57831 - return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
57832 + return sprintf(buf, "%u\n", (unsigned int)atomic_read_unchecked(&idev->event));
57833 }
57834 static DEVICE_ATTR_RO(event);
57835
57836 @@ -393,7 +394,7 @@ void uio_event_notify(struct uio_info *info)
57837 {
57838 struct uio_device *idev = info->uio_dev;
57839
57840 - atomic_inc(&idev->event);
57841 + atomic_inc_unchecked(&idev->event);
57842 wake_up_interruptible(&idev->wait);
57843 kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
57844 }
57845 @@ -446,7 +447,7 @@ static int uio_open(struct inode *inode, struct file *filep)
57846 }
57847
57848 listener->dev = idev;
57849 - listener->event_count = atomic_read(&idev->event);
57850 + listener->event_count = atomic_read_unchecked(&idev->event);
57851 filep->private_data = listener;
57852
57853 if (idev->info->open) {
57854 @@ -497,7 +498,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
57855 return -EIO;
57856
57857 poll_wait(filep, &idev->wait, wait);
57858 - if (listener->event_count != atomic_read(&idev->event))
57859 + if (listener->event_count != atomic_read_unchecked(&idev->event))
57860 return POLLIN | POLLRDNORM;
57861 return 0;
57862 }
57863 @@ -522,7 +523,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
57864 do {
57865 set_current_state(TASK_INTERRUPTIBLE);
57866
57867 - event_count = atomic_read(&idev->event);
57868 + event_count = atomic_read_unchecked(&idev->event);
57869 if (event_count != listener->event_count) {
57870 if (copy_to_user(buf, &event_count, count))
57871 retval = -EFAULT;
57872 @@ -579,9 +580,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
57873 static int uio_find_mem_index(struct vm_area_struct *vma)
57874 {
57875 struct uio_device *idev = vma->vm_private_data;
57876 + unsigned long size;
57877
57878 if (vma->vm_pgoff < MAX_UIO_MAPS) {
57879 - if (idev->info->mem[vma->vm_pgoff].size == 0)
57880 + size = idev->info->mem[vma->vm_pgoff].size;
57881 + if (size == 0)
57882 + return -1;
57883 + if (vma->vm_end - vma->vm_start > size)
57884 return -1;
57885 return (int)vma->vm_pgoff;
57886 }
57887 @@ -813,7 +818,7 @@ int __uio_register_device(struct module *owner,
57888 idev->owner = owner;
57889 idev->info = info;
57890 init_waitqueue_head(&idev->wait);
57891 - atomic_set(&idev->event, 0);
57892 + atomic_set_unchecked(&idev->event, 0);
57893
57894 ret = uio_get_minor(idev);
57895 if (ret)
57896 diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
57897 index 1173f9c..6ded1e9 100644
57898 --- a/drivers/usb/atm/cxacru.c
57899 +++ b/drivers/usb/atm/cxacru.c
57900 @@ -474,7 +474,7 @@ static ssize_t cxacru_sysfs_store_adsl_config(struct device *dev,
57901 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
57902 if (ret < 2)
57903 return -EINVAL;
57904 - if (index < 0 || index > 0x7f)
57905 + if (index > 0x7f)
57906 return -EINVAL;
57907 pos += tmp;
57908
57909 diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
57910 index db322d9..f0f4bc1 100644
57911 --- a/drivers/usb/atm/usbatm.c
57912 +++ b/drivers/usb/atm/usbatm.c
57913 @@ -331,7 +331,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57914 if (printk_ratelimit())
57915 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
57916 __func__, vpi, vci);
57917 - atomic_inc(&vcc->stats->rx_err);
57918 + atomic_inc_unchecked(&vcc->stats->rx_err);
57919 return;
57920 }
57921
57922 @@ -358,7 +358,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57923 if (length > ATM_MAX_AAL5_PDU) {
57924 atm_rldbg(instance, "%s: bogus length %u (vcc: 0x%p)!\n",
57925 __func__, length, vcc);
57926 - atomic_inc(&vcc->stats->rx_err);
57927 + atomic_inc_unchecked(&vcc->stats->rx_err);
57928 goto out;
57929 }
57930
57931 @@ -367,14 +367,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57932 if (sarb->len < pdu_length) {
57933 atm_rldbg(instance, "%s: bogus pdu_length %u (sarb->len: %u, vcc: 0x%p)!\n",
57934 __func__, pdu_length, sarb->len, vcc);
57935 - atomic_inc(&vcc->stats->rx_err);
57936 + atomic_inc_unchecked(&vcc->stats->rx_err);
57937 goto out;
57938 }
57939
57940 if (crc32_be(~0, skb_tail_pointer(sarb) - pdu_length, pdu_length) != 0xc704dd7b) {
57941 atm_rldbg(instance, "%s: packet failed crc check (vcc: 0x%p)!\n",
57942 __func__, vcc);
57943 - atomic_inc(&vcc->stats->rx_err);
57944 + atomic_inc_unchecked(&vcc->stats->rx_err);
57945 goto out;
57946 }
57947
57948 @@ -387,7 +387,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57949 if (printk_ratelimit())
57950 atm_err(instance, "%s: no memory for skb (length: %u)!\n",
57951 __func__, length);
57952 - atomic_inc(&vcc->stats->rx_drop);
57953 + atomic_inc_unchecked(&vcc->stats->rx_drop);
57954 goto out;
57955 }
57956
57957 @@ -415,7 +415,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57958
57959 vcc->push(vcc, skb);
57960
57961 - atomic_inc(&vcc->stats->rx);
57962 + atomic_inc_unchecked(&vcc->stats->rx);
57963 out:
57964 skb_trim(sarb, 0);
57965 }
57966 @@ -613,7 +613,7 @@ static void usbatm_tx_process(unsigned long data)
57967 struct atm_vcc *vcc = UDSL_SKB(skb)->atm.vcc;
57968
57969 usbatm_pop(vcc, skb);
57970 - atomic_inc(&vcc->stats->tx);
57971 + atomic_inc_unchecked(&vcc->stats->tx);
57972
57973 skb = skb_dequeue(&instance->sndqueue);
57974 }
57975 @@ -757,11 +757,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page
57976 if (!left--)
57977 return sprintf(page,
57978 "AAL5: tx %d ( %d err ), rx %d ( %d err, %d drop )\n",
57979 - atomic_read(&atm_dev->stats.aal5.tx),
57980 - atomic_read(&atm_dev->stats.aal5.tx_err),
57981 - atomic_read(&atm_dev->stats.aal5.rx),
57982 - atomic_read(&atm_dev->stats.aal5.rx_err),
57983 - atomic_read(&atm_dev->stats.aal5.rx_drop));
57984 + atomic_read_unchecked(&atm_dev->stats.aal5.tx),
57985 + atomic_read_unchecked(&atm_dev->stats.aal5.tx_err),
57986 + atomic_read_unchecked(&atm_dev->stats.aal5.rx),
57987 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_err),
57988 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_drop));
57989
57990 if (!left--) {
57991 if (instance->disconnected)
57992 diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
57993 index dd9af38..75b53e3 100644
57994 --- a/drivers/usb/class/cdc-acm.h
57995 +++ b/drivers/usb/class/cdc-acm.h
57996 @@ -95,7 +95,7 @@ struct acm {
57997 struct urb *read_urbs[ACM_NR];
57998 struct acm_rb read_buffers[ACM_NR];
57999 int rx_buflimit;
58000 - int rx_endpoint;
58001 + unsigned int rx_endpoint;
58002 spinlock_t read_lock;
58003 int write_used; /* number of non-empty write buffers */
58004 int transmitting;
58005 diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
58006 index 2a3bbdf..91d72cf 100644
58007 --- a/drivers/usb/core/devices.c
58008 +++ b/drivers/usb/core/devices.c
58009 @@ -126,7 +126,7 @@ static const char format_endpt[] =
58010 * time it gets called.
58011 */
58012 static struct device_connect_event {
58013 - atomic_t count;
58014 + atomic_unchecked_t count;
58015 wait_queue_head_t wait;
58016 } device_event = {
58017 .count = ATOMIC_INIT(1),
58018 @@ -164,7 +164,7 @@ static const struct class_info clas_info[] = {
58019
58020 void usbfs_conn_disc_event(void)
58021 {
58022 - atomic_add(2, &device_event.count);
58023 + atomic_add_unchecked(2, &device_event.count);
58024 wake_up(&device_event.wait);
58025 }
58026
58027 @@ -652,7 +652,7 @@ static unsigned int usb_device_poll(struct file *file,
58028
58029 poll_wait(file, &device_event.wait, wait);
58030
58031 - event_count = atomic_read(&device_event.count);
58032 + event_count = atomic_read_unchecked(&device_event.count);
58033 if (file->f_version != event_count) {
58034 file->f_version = event_count;
58035 return POLLIN | POLLRDNORM;
58036 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
58037 index 38ae877c..9bf9e7d 100644
58038 --- a/drivers/usb/core/devio.c
58039 +++ b/drivers/usb/core/devio.c
58040 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
58041 struct usb_dev_state *ps = file->private_data;
58042 struct usb_device *dev = ps->dev;
58043 ssize_t ret = 0;
58044 - unsigned len;
58045 + size_t len;
58046 loff_t pos;
58047 int i;
58048
58049 @@ -229,22 +229,22 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
58050 for (i = 0; nbytes && i < dev->descriptor.bNumConfigurations; i++) {
58051 struct usb_config_descriptor *config =
58052 (struct usb_config_descriptor *)dev->rawdescriptors[i];
58053 - unsigned int length = le16_to_cpu(config->wTotalLength);
58054 + size_t length = le16_to_cpu(config->wTotalLength);
58055
58056 if (*ppos < pos + length) {
58057
58058 /* The descriptor may claim to be longer than it
58059 * really is. Here is the actual allocated length. */
58060 - unsigned alloclen =
58061 + size_t alloclen =
58062 le16_to_cpu(dev->config[i].desc.wTotalLength);
58063
58064 - len = length - (*ppos - pos);
58065 + len = length + pos - *ppos;
58066 if (len > nbytes)
58067 len = nbytes;
58068
58069 /* Simply don't write (skip over) unallocated parts */
58070 if (alloclen > (*ppos - pos)) {
58071 - alloclen -= (*ppos - pos);
58072 + alloclen = alloclen + pos - *ppos;
58073 if (copy_to_user(buf,
58074 dev->rawdescriptors[i] + (*ppos - pos),
58075 min(len, alloclen))) {
58076 @@ -1502,7 +1502,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
58077 }
58078 }
58079 as->urb->dev = ps->dev;
58080 - as->urb->pipe = (uurb->type << 30) |
58081 + as->urb->pipe = ((unsigned int)uurb->type << 30) |
58082 __create_pipe(ps->dev, uurb->endpoint & 0xf) |
58083 (uurb->endpoint & USB_DIR_IN);
58084
58085 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
58086 index 4d64e5c4..e21932a 100644
58087 --- a/drivers/usb/core/hcd.c
58088 +++ b/drivers/usb/core/hcd.c
58089 @@ -1554,7 +1554,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
58090 */
58091 usb_get_urb(urb);
58092 atomic_inc(&urb->use_count);
58093 - atomic_inc(&urb->dev->urbnum);
58094 + atomic_inc_unchecked(&urb->dev->urbnum);
58095 usbmon_urb_submit(&hcd->self, urb);
58096
58097 /* NOTE requirements on root-hub callers (usbfs and the hub
58098 @@ -1581,7 +1581,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
58099 urb->hcpriv = NULL;
58100 INIT_LIST_HEAD(&urb->urb_list);
58101 atomic_dec(&urb->use_count);
58102 - atomic_dec(&urb->dev->urbnum);
58103 + atomic_dec_unchecked(&urb->dev->urbnum);
58104 if (atomic_read(&urb->reject))
58105 wake_up(&usb_kill_urb_queue);
58106 usb_put_urb(urb);
58107 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
58108 index 431839b..8d241f6 100644
58109 --- a/drivers/usb/core/hub.c
58110 +++ b/drivers/usb/core/hub.c
58111 @@ -26,6 +26,7 @@
58112 #include <linux/mutex.h>
58113 #include <linux/random.h>
58114 #include <linux/pm_qos.h>
58115 +#include <linux/grsecurity.h>
58116
58117 #include <asm/uaccess.h>
58118 #include <asm/byteorder.h>
58119 @@ -4659,6 +4660,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
58120 goto done;
58121 return;
58122 }
58123 +
58124 + if (gr_handle_new_usb())
58125 + goto done;
58126 +
58127 if (hub_is_superspeed(hub->hdev))
58128 unit_load = 150;
58129 else
58130 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
58131 index cfc68c1..38f943f 100644
58132 --- a/drivers/usb/core/sysfs.c
58133 +++ b/drivers/usb/core/sysfs.c
58134 @@ -244,7 +244,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
58135 struct usb_device *udev;
58136
58137 udev = to_usb_device(dev);
58138 - return sprintf(buf, "%d\n", atomic_read(&udev->urbnum));
58139 + return sprintf(buf, "%d\n", atomic_read_unchecked(&udev->urbnum));
58140 }
58141 static DEVICE_ATTR_RO(urbnum);
58142
58143 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
58144 index 8d5b2f4..3896940 100644
58145 --- a/drivers/usb/core/usb.c
58146 +++ b/drivers/usb/core/usb.c
58147 @@ -447,7 +447,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
58148 set_dev_node(&dev->dev, dev_to_node(bus->controller));
58149 dev->state = USB_STATE_ATTACHED;
58150 dev->lpm_disable_count = 1;
58151 - atomic_set(&dev->urbnum, 0);
58152 + atomic_set_unchecked(&dev->urbnum, 0);
58153
58154 INIT_LIST_HEAD(&dev->ep0.urb_list);
58155 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
58156 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
58157 index 8cfc319..4868255 100644
58158 --- a/drivers/usb/early/ehci-dbgp.c
58159 +++ b/drivers/usb/early/ehci-dbgp.c
58160 @@ -98,7 +98,8 @@ static inline u32 dbgp_len_update(u32 x, u32 len)
58161
58162 #ifdef CONFIG_KGDB
58163 static struct kgdb_io kgdbdbgp_io_ops;
58164 -#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops)
58165 +static struct kgdb_io kgdbdbgp_io_ops_console;
58166 +#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops || dbg_io_ops == &kgdbdbgp_io_ops_console)
58167 #else
58168 #define dbgp_kgdb_mode (0)
58169 #endif
58170 @@ -1043,6 +1044,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
58171 .write_char = kgdbdbgp_write_char,
58172 };
58173
58174 +static struct kgdb_io kgdbdbgp_io_ops_console = {
58175 + .name = "kgdbdbgp",
58176 + .read_char = kgdbdbgp_read_char,
58177 + .write_char = kgdbdbgp_write_char,
58178 + .is_console = 1
58179 +};
58180 +
58181 static int kgdbdbgp_wait_time;
58182
58183 static int __init kgdbdbgp_parse_config(char *str)
58184 @@ -1058,8 +1066,10 @@ static int __init kgdbdbgp_parse_config(char *str)
58185 ptr++;
58186 kgdbdbgp_wait_time = simple_strtoul(ptr, &ptr, 10);
58187 }
58188 - kgdb_register_io_module(&kgdbdbgp_io_ops);
58189 - kgdbdbgp_io_ops.is_console = early_dbgp_console.index != -1;
58190 + if (early_dbgp_console.index != -1)
58191 + kgdb_register_io_module(&kgdbdbgp_io_ops_console);
58192 + else
58193 + kgdb_register_io_module(&kgdbdbgp_io_ops);
58194
58195 return 0;
58196 }
58197 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
58198 index 7856b33..8b7fe09 100644
58199 --- a/drivers/usb/gadget/function/f_uac1.c
58200 +++ b/drivers/usb/gadget/function/f_uac1.c
58201 @@ -14,6 +14,7 @@
58202 #include <linux/module.h>
58203 #include <linux/device.h>
58204 #include <linux/atomic.h>
58205 +#include <linux/module.h>
58206
58207 #include "u_uac1.h"
58208
58209 diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
58210 index 7ee05793..2e31e99 100644
58211 --- a/drivers/usb/gadget/function/u_serial.c
58212 +++ b/drivers/usb/gadget/function/u_serial.c
58213 @@ -732,9 +732,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
58214 spin_lock_irq(&port->port_lock);
58215
58216 /* already open? Great. */
58217 - if (port->port.count) {
58218 + if (atomic_read(&port->port.count)) {
58219 status = 0;
58220 - port->port.count++;
58221 + atomic_inc(&port->port.count);
58222
58223 /* currently opening/closing? wait ... */
58224 } else if (port->openclose) {
58225 @@ -793,7 +793,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
58226 tty->driver_data = port;
58227 port->port.tty = tty;
58228
58229 - port->port.count = 1;
58230 + atomic_set(&port->port.count, 1);
58231 port->openclose = false;
58232
58233 /* if connected, start the I/O stream */
58234 @@ -835,11 +835,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
58235
58236 spin_lock_irq(&port->port_lock);
58237
58238 - if (port->port.count != 1) {
58239 - if (port->port.count == 0)
58240 + if (atomic_read(&port->port.count) != 1) {
58241 + if (atomic_read(&port->port.count) == 0)
58242 WARN_ON(1);
58243 else
58244 - --port->port.count;
58245 + atomic_dec(&port->port.count);
58246 goto exit;
58247 }
58248
58249 @@ -849,7 +849,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
58250 * and sleep if necessary
58251 */
58252 port->openclose = true;
58253 - port->port.count = 0;
58254 + atomic_set(&port->port.count, 0);
58255
58256 gser = port->port_usb;
58257 if (gser && gser->disconnect)
58258 @@ -1065,7 +1065,7 @@ static int gs_closed(struct gs_port *port)
58259 int cond;
58260
58261 spin_lock_irq(&port->port_lock);
58262 - cond = (port->port.count == 0) && !port->openclose;
58263 + cond = (atomic_read(&port->port.count) == 0) && !port->openclose;
58264 spin_unlock_irq(&port->port_lock);
58265 return cond;
58266 }
58267 @@ -1208,7 +1208,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
58268 /* if it's already open, start I/O ... and notify the serial
58269 * protocol about open/close status (connect/disconnect).
58270 */
58271 - if (port->port.count) {
58272 + if (atomic_read(&port->port.count)) {
58273 pr_debug("gserial_connect: start ttyGS%d\n", port->port_num);
58274 gs_start_io(port);
58275 if (gser->connect)
58276 @@ -1255,7 +1255,7 @@ void gserial_disconnect(struct gserial *gser)
58277
58278 port->port_usb = NULL;
58279 gser->ioport = NULL;
58280 - if (port->port.count > 0 || port->openclose) {
58281 + if (atomic_read(&port->port.count) > 0 || port->openclose) {
58282 wake_up_interruptible(&port->drain_wait);
58283 if (port->port.tty)
58284 tty_hangup(port->port.tty);
58285 @@ -1271,7 +1271,7 @@ void gserial_disconnect(struct gserial *gser)
58286
58287 /* finally, free any unused/unusable I/O buffers */
58288 spin_lock_irqsave(&port->port_lock, flags);
58289 - if (port->port.count == 0 && !port->openclose)
58290 + if (atomic_read(&port->port.count) == 0 && !port->openclose)
58291 gs_buf_free(&port->port_write_buf);
58292 gs_free_requests(gser->out, &port->read_pool, NULL);
58293 gs_free_requests(gser->out, &port->read_queue, NULL);
58294 diff --git a/drivers/usb/gadget/function/u_uac1.c b/drivers/usb/gadget/function/u_uac1.c
58295 index c78c841..48fd281 100644
58296 --- a/drivers/usb/gadget/function/u_uac1.c
58297 +++ b/drivers/usb/gadget/function/u_uac1.c
58298 @@ -17,6 +17,7 @@
58299 #include <linux/ctype.h>
58300 #include <linux/random.h>
58301 #include <linux/syscalls.h>
58302 +#include <linux/module.h>
58303
58304 #include "u_uac1.h"
58305
58306 diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
58307 index 27af0f0..c1ff952 100644
58308 --- a/drivers/usb/gadget/udc/dummy_hcd.c
58309 +++ b/drivers/usb/gadget/udc/dummy_hcd.c
58310 @@ -2463,7 +2463,7 @@ static int dummy_setup(struct usb_hcd *hcd)
58311 struct dummy *dum;
58312
58313 dum = *((void **)dev_get_platdata(hcd->self.controller));
58314 - hcd->self.sg_tablesize = ~0;
58315 + hcd->self.sg_tablesize = SG_ALL;
58316 if (usb_hcd_is_primary_hcd(hcd)) {
58317 dum->hs_hcd = hcd_to_dummy_hcd(hcd);
58318 dum->hs_hcd->dum = dum;
58319 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
58320 index c63d82c..a7e8665 100644
58321 --- a/drivers/usb/host/ehci-hcd.c
58322 +++ b/drivers/usb/host/ehci-hcd.c
58323 @@ -564,7 +564,7 @@ static int ehci_init(struct usb_hcd *hcd)
58324
58325 /* Accept arbitrarily long scatter-gather lists */
58326 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58327 - hcd->self.sg_tablesize = ~0;
58328 + hcd->self.sg_tablesize = SG_ALL;
58329 return 0;
58330 }
58331
58332 diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
58333 index 086a711..1caf013 100644
58334 --- a/drivers/usb/host/ehci-hub.c
58335 +++ b/drivers/usb/host/ehci-hub.c
58336 @@ -773,7 +773,7 @@ static struct urb *request_single_step_set_feature_urb(
58337 urb->transfer_flags = URB_DIR_IN;
58338 usb_get_urb(urb);
58339 atomic_inc(&urb->use_count);
58340 - atomic_inc(&urb->dev->urbnum);
58341 + atomic_inc_unchecked(&urb->dev->urbnum);
58342 urb->setup_dma = dma_map_single(
58343 hcd->self.controller,
58344 urb->setup_packet,
58345 @@ -840,7 +840,7 @@ static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
58346 urb->status = -EINPROGRESS;
58347 usb_get_urb(urb);
58348 atomic_inc(&urb->use_count);
58349 - atomic_inc(&urb->dev->urbnum);
58350 + atomic_inc_unchecked(&urb->dev->urbnum);
58351 retval = submit_single_step_set_feature(hcd, urb, 0);
58352 if (!retval && !wait_for_completion_timeout(&done,
58353 msecs_to_jiffies(2000))) {
58354 diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
58355 index 54f5332..8b8335c 100644
58356 --- a/drivers/usb/host/ehci-q.c
58357 +++ b/drivers/usb/host/ehci-q.c
58358 @@ -44,9 +44,9 @@
58359
58360 static int
58361 qtd_fill(struct ehci_hcd *ehci, struct ehci_qtd *qtd, dma_addr_t buf,
58362 - size_t len, int token, int maxpacket)
58363 + size_t len, u32 token, int maxpacket)
58364 {
58365 - int i, count;
58366 + u32 i, count;
58367 u64 addr = buf;
58368
58369 /* one buffer entry per 4K ... first might be short or unaligned */
58370 diff --git a/drivers/usb/host/fotg210-hcd.c b/drivers/usb/host/fotg210-hcd.c
58371 index 000ed80..2701154 100644
58372 --- a/drivers/usb/host/fotg210-hcd.c
58373 +++ b/drivers/usb/host/fotg210-hcd.c
58374 @@ -5231,7 +5231,7 @@ static int hcd_fotg210_init(struct usb_hcd *hcd)
58375
58376 /* Accept arbitrarily long scatter-gather lists */
58377 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58378 - hcd->self.sg_tablesize = ~0;
58379 + hcd->self.sg_tablesize = SG_ALL;
58380 return 0;
58381 }
58382
58383 diff --git a/drivers/usb/host/fusbh200-hcd.c b/drivers/usb/host/fusbh200-hcd.c
58384 index 1fd8718..c7ff47c 100644
58385 --- a/drivers/usb/host/fusbh200-hcd.c
58386 +++ b/drivers/usb/host/fusbh200-hcd.c
58387 @@ -5156,7 +5156,7 @@ static int hcd_fusbh200_init(struct usb_hcd *hcd)
58388
58389 /* Accept arbitrarily long scatter-gather lists */
58390 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58391 - hcd->self.sg_tablesize = ~0;
58392 + hcd->self.sg_tablesize = SG_ALL;
58393 return 0;
58394 }
58395
58396 diff --git a/drivers/usb/host/hwa-hc.c b/drivers/usb/host/hwa-hc.c
58397 index 1db0626..2e9f5ea 100644
58398 --- a/drivers/usb/host/hwa-hc.c
58399 +++ b/drivers/usb/host/hwa-hc.c
58400 @@ -337,7 +337,10 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58401 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58402 struct wahc *wa = &hwahc->wa;
58403 struct device *dev = &wa->usb_iface->dev;
58404 - u8 mas_le[UWB_NUM_MAS/8];
58405 + u8 *mas_le = kmalloc(UWB_NUM_MAS/8, GFP_KERNEL);
58406 +
58407 + if (mas_le == NULL)
58408 + return -ENOMEM;
58409
58410 /* Set the stream index */
58411 result = usb_control_msg(wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0),
58412 @@ -356,10 +359,12 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58413 WUSB_REQ_SET_WUSB_MAS,
58414 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
58415 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber,
58416 - mas_le, 32, USB_CTRL_SET_TIMEOUT);
58417 + mas_le, UWB_NUM_MAS/8, USB_CTRL_SET_TIMEOUT);
58418 if (result < 0)
58419 dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result);
58420 out:
58421 + kfree(mas_le);
58422 +
58423 return result;
58424 }
58425
58426 @@ -812,7 +817,7 @@ static int hwahc_probe(struct usb_interface *usb_iface,
58427 goto error_alloc;
58428 }
58429 usb_hcd->wireless = 1;
58430 - usb_hcd->self.sg_tablesize = ~0;
58431 + usb_hcd->self.sg_tablesize = SG_ALL;
58432 wusbhc = usb_hcd_to_wusbhc(usb_hcd);
58433 hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58434 hwahc_init(hwahc);
58435 diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
58436 index 760cb57..fc7f8ad 100644
58437 --- a/drivers/usb/host/ohci-hcd.c
58438 +++ b/drivers/usb/host/ohci-hcd.c
58439 @@ -444,7 +444,7 @@ static int ohci_init (struct ohci_hcd *ohci)
58440 struct usb_hcd *hcd = ohci_to_hcd(ohci);
58441
58442 /* Accept arbitrarily long scatter-gather lists */
58443 - hcd->self.sg_tablesize = ~0;
58444 + hcd->self.sg_tablesize = SG_ALL;
58445
58446 if (distrust_firmware)
58447 ohci->flags |= OHCI_QUIRK_HUB_POWER;
58448 diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h
58449 index 672cea3..31a730db 100644
58450 --- a/drivers/usb/host/r8a66597.h
58451 +++ b/drivers/usb/host/r8a66597.h
58452 @@ -125,7 +125,7 @@ struct r8a66597 {
58453 unsigned short interval_map;
58454 unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
58455 unsigned char dma_map;
58456 - unsigned int max_root_hub;
58457 + unsigned char max_root_hub;
58458
58459 struct list_head child_device;
58460 unsigned long child_connect_map[4];
58461 diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
58462 index a7de8e8..e1ef134 100644
58463 --- a/drivers/usb/host/uhci-hcd.c
58464 +++ b/drivers/usb/host/uhci-hcd.c
58465 @@ -570,7 +570,7 @@ static int uhci_start(struct usb_hcd *hcd)
58466 hcd->uses_new_polling = 1;
58467 /* Accept arbitrarily long scatter-gather lists */
58468 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58469 - hcd->self.sg_tablesize = ~0;
58470 + hcd->self.sg_tablesize = SG_ALL;
58471
58472 spin_lock_init(&uhci->lock);
58473 setup_timer(&uhci->fsbr_timer, uhci_fsbr_timeout,
58474 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
58475 index c47d3e4..35bcc1e 100644
58476 --- a/drivers/usb/host/xhci-pci.c
58477 +++ b/drivers/usb/host/xhci-pci.c
58478 @@ -30,7 +30,7 @@
58479
58480 #define PORT2_SSIC_CONFIG_REG2 0x883c
58481 #define PROG_DONE (1 << 30)
58482 -#define SSIC_PORT_UNUSED (1 << 31)
58483 +#define SSIC_PORT_UNUSED (1U << 31)
58484
58485 /* Device for a quirk */
58486 #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
58487 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
58488 index 385f9f5..fe0610e 100644
58489 --- a/drivers/usb/host/xhci.c
58490 +++ b/drivers/usb/host/xhci.c
58491 @@ -4843,7 +4843,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
58492 int retval;
58493
58494 /* Accept arbitrarily long scatter-gather lists */
58495 - hcd->self.sg_tablesize = ~0;
58496 + hcd->self.sg_tablesize = SG_ALL;
58497
58498 /* support to build packet from discontinuous buffers */
58499 hcd->self.no_sg_constraint = 1;
58500 diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
58501 index a0a3827..d7ec10b 100644
58502 --- a/drivers/usb/misc/appledisplay.c
58503 +++ b/drivers/usb/misc/appledisplay.c
58504 @@ -84,7 +84,7 @@ struct appledisplay {
58505 struct mutex sysfslock; /* concurrent read and write */
58506 };
58507
58508 -static atomic_t count_displays = ATOMIC_INIT(0);
58509 +static atomic_unchecked_t count_displays = ATOMIC_INIT(0);
58510 static struct workqueue_struct *wq;
58511
58512 static void appledisplay_complete(struct urb *urb)
58513 @@ -288,7 +288,7 @@ static int appledisplay_probe(struct usb_interface *iface,
58514
58515 /* Register backlight device */
58516 snprintf(bl_name, sizeof(bl_name), "appledisplay%d",
58517 - atomic_inc_return(&count_displays) - 1);
58518 + atomic_inc_return_unchecked(&count_displays) - 1);
58519 memset(&props, 0, sizeof(struct backlight_properties));
58520 props.type = BACKLIGHT_RAW;
58521 props.max_brightness = 0xff;
58522 diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
58523 index 3806e70..55c508b 100644
58524 --- a/drivers/usb/serial/console.c
58525 +++ b/drivers/usb/serial/console.c
58526 @@ -126,7 +126,7 @@ static int usb_console_setup(struct console *co, char *options)
58527
58528 info->port = port;
58529
58530 - ++port->port.count;
58531 + atomic_inc(&port->port.count);
58532 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
58533 if (serial->type->set_termios) {
58534 /*
58535 @@ -175,7 +175,7 @@ static int usb_console_setup(struct console *co, char *options)
58536 }
58537 /* Now that any required fake tty operations are completed restore
58538 * the tty port count */
58539 - --port->port.count;
58540 + atomic_dec(&port->port.count);
58541 /* The console is special in terms of closing the device so
58542 * indicate this port is now acting as a system console. */
58543 port->port.console = 1;
58544 @@ -188,7 +188,7 @@ static int usb_console_setup(struct console *co, char *options)
58545 put_tty:
58546 tty_kref_put(tty);
58547 reset_open_count:
58548 - port->port.count = 0;
58549 + atomic_set(&port->port.count, 0);
58550 usb_autopm_put_interface(serial->interface);
58551 error_get_interface:
58552 usb_serial_put(serial);
58553 @@ -199,7 +199,7 @@ static int usb_console_setup(struct console *co, char *options)
58554 static void usb_console_write(struct console *co,
58555 const char *buf, unsigned count)
58556 {
58557 - static struct usbcons_info *info = &usbcons_info;
58558 + struct usbcons_info *info = &usbcons_info;
58559 struct usb_serial_port *port = info->port;
58560 struct usb_serial *serial;
58561 int retval = -ENODEV;
58562 diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
58563 index 5e67f63..2ef08d6 100644
58564 --- a/drivers/usb/storage/transport.c
58565 +++ b/drivers/usb/storage/transport.c
58566 @@ -689,7 +689,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
58567 if (need_auto_sense) {
58568 int temp_result;
58569 struct scsi_eh_save ses;
58570 - int sense_size = US_SENSE_SIZE;
58571 + unsigned int sense_size = US_SENSE_SIZE;
58572 struct scsi_sense_hdr sshdr;
58573 const u8 *scdd;
58574 u8 fm_ili;
58575 diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
58576 index 43576ed..583589d 100644
58577 --- a/drivers/usb/storage/usb.c
58578 +++ b/drivers/usb/storage/usb.c
58579 @@ -912,7 +912,7 @@ static void usb_stor_scan_dwork(struct work_struct *work)
58580 clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
58581 }
58582
58583 -static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
58584 +static unsigned short usb_stor_sg_tablesize(struct usb_interface *intf)
58585 {
58586 struct usb_device *usb_dev = interface_to_usbdev(intf);
58587
58588 diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
58589 index da0ad32..50b5bbe 100644
58590 --- a/drivers/usb/storage/usb.h
58591 +++ b/drivers/usb/storage/usb.h
58592 @@ -63,7 +63,7 @@ struct us_unusual_dev {
58593 __u8 useProtocol;
58594 __u8 useTransport;
58595 int (*initFunction)(struct us_data *);
58596 -};
58597 +} __do_const;
58598
58599
58600 /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
58601 diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h
58602 index a863a98..d272795 100644
58603 --- a/drivers/usb/usbip/vhci.h
58604 +++ b/drivers/usb/usbip/vhci.h
58605 @@ -83,7 +83,7 @@ struct vhci_hcd {
58606 unsigned resuming:1;
58607 unsigned long re_timeout;
58608
58609 - atomic_t seqnum;
58610 + atomic_unchecked_t seqnum;
58611
58612 /*
58613 * NOTE:
58614 diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
58615 index e9ef1ec..c3a0b04 100644
58616 --- a/drivers/usb/usbip/vhci_hcd.c
58617 +++ b/drivers/usb/usbip/vhci_hcd.c
58618 @@ -440,7 +440,7 @@ static void vhci_tx_urb(struct urb *urb)
58619
58620 spin_lock(&vdev->priv_lock);
58621
58622 - priv->seqnum = atomic_inc_return(&the_controller->seqnum);
58623 + priv->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58624 if (priv->seqnum == 0xffff)
58625 dev_info(&urb->dev->dev, "seqnum max\n");
58626
58627 @@ -685,7 +685,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
58628 return -ENOMEM;
58629 }
58630
58631 - unlink->seqnum = atomic_inc_return(&the_controller->seqnum);
58632 + unlink->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58633 if (unlink->seqnum == 0xffff)
58634 pr_info("seqnum max\n");
58635
58636 @@ -889,7 +889,7 @@ static int vhci_start(struct usb_hcd *hcd)
58637 vdev->rhport = rhport;
58638 }
58639
58640 - atomic_set(&vhci->seqnum, 0);
58641 + atomic_set_unchecked(&vhci->seqnum, 0);
58642 spin_lock_init(&vhci->lock);
58643
58644 hcd->power_budget = 0; /* no limit */
58645 diff --git a/drivers/usb/usbip/vhci_rx.c b/drivers/usb/usbip/vhci_rx.c
58646 index 00e4a54..d676f85 100644
58647 --- a/drivers/usb/usbip/vhci_rx.c
58648 +++ b/drivers/usb/usbip/vhci_rx.c
58649 @@ -80,7 +80,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
58650 if (!urb) {
58651 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
58652 pr_info("max seqnum %d\n",
58653 - atomic_read(&the_controller->seqnum));
58654 + atomic_read_unchecked(&the_controller->seqnum));
58655 usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
58656 return;
58657 }
58658 diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
58659 index 211f43f..6c22ae1 100644
58660 --- a/drivers/usb/usbip/vhci_sysfs.c
58661 +++ b/drivers/usb/usbip/vhci_sysfs.c
58662 @@ -59,7 +59,7 @@ static ssize_t status_show(struct device *dev, struct device_attribute *attr,
58663 if (vdev->ud.status == VDEV_ST_USED) {
58664 out += sprintf(out, "%03u %08x ",
58665 vdev->speed, vdev->devid);
58666 - out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
58667 + out += sprintf(out, "%16pK ", vdev->ud.tcp_socket);
58668 out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
58669
58670 } else {
58671 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
58672 index edc7267..9f65ce2 100644
58673 --- a/drivers/usb/wusbcore/wa-hc.h
58674 +++ b/drivers/usb/wusbcore/wa-hc.h
58675 @@ -240,7 +240,7 @@ struct wahc {
58676 spinlock_t xfer_list_lock;
58677 struct work_struct xfer_enqueue_work;
58678 struct work_struct xfer_error_work;
58679 - atomic_t xfer_id_count;
58680 + atomic_unchecked_t xfer_id_count;
58681
58682 kernel_ulong_t quirks;
58683 };
58684 @@ -305,7 +305,7 @@ static inline void wa_init(struct wahc *wa)
58685 INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
58686 INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
58687 wa->dto_in_use = 0;
58688 - atomic_set(&wa->xfer_id_count, 1);
58689 + atomic_set_unchecked(&wa->xfer_id_count, 1);
58690 /* init the buf in URBs */
58691 for (index = 0; index < WA_MAX_BUF_IN_URBS; ++index)
58692 usb_init_urb(&(wa->buf_in_urbs[index]));
58693 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
58694 index 69af4fd..da390d7 100644
58695 --- a/drivers/usb/wusbcore/wa-xfer.c
58696 +++ b/drivers/usb/wusbcore/wa-xfer.c
58697 @@ -314,7 +314,7 @@ static void wa_xfer_completion(struct wa_xfer *xfer)
58698 */
58699 static void wa_xfer_id_init(struct wa_xfer *xfer)
58700 {
58701 - xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count);
58702 + xfer->id = atomic_add_return_unchecked(1, &xfer->wa->xfer_id_count);
58703 }
58704
58705 /* Return the xfer's ID. */
58706 diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
58707 index 563c510..1fcc957 100644
58708 --- a/drivers/vfio/vfio.c
58709 +++ b/drivers/vfio/vfio.c
58710 @@ -517,7 +517,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
58711 return 0;
58712
58713 /* TODO Prevent device auto probing */
58714 - WARN("Device %s added to live group %d!\n", dev_name(dev),
58715 + WARN(1, "Device %s added to live group %d!\n", dev_name(dev),
58716 iommu_group_id(group->iommu_group));
58717
58718 return 0;
58719 diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
58720 index 3bb02c6..a01ff38 100644
58721 --- a/drivers/vhost/vringh.c
58722 +++ b/drivers/vhost/vringh.c
58723 @@ -551,7 +551,7 @@ static inline void __vringh_notify_disable(struct vringh *vrh,
58724 static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio16 *p)
58725 {
58726 __virtio16 v = 0;
58727 - int rc = get_user(v, (__force __virtio16 __user *)p);
58728 + int rc = get_user(v, (__force_user __virtio16 *)p);
58729 *val = vringh16_to_cpu(vrh, v);
58730 return rc;
58731 }
58732 @@ -559,12 +559,12 @@ static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio
58733 static inline int putu16_user(const struct vringh *vrh, __virtio16 *p, u16 val)
58734 {
58735 __virtio16 v = cpu_to_vringh16(vrh, val);
58736 - return put_user(v, (__force __virtio16 __user *)p);
58737 + return put_user(v, (__force_user __virtio16 *)p);
58738 }
58739
58740 static inline int copydesc_user(void *dst, const void *src, size_t len)
58741 {
58742 - return copy_from_user(dst, (__force void __user *)src, len) ?
58743 + return copy_from_user(dst, (void __force_user *)src, len) ?
58744 -EFAULT : 0;
58745 }
58746
58747 @@ -572,19 +572,19 @@ static inline int putused_user(struct vring_used_elem *dst,
58748 const struct vring_used_elem *src,
58749 unsigned int num)
58750 {
58751 - return copy_to_user((__force void __user *)dst, src,
58752 + return copy_to_user((void __force_user *)dst, src,
58753 sizeof(*dst) * num) ? -EFAULT : 0;
58754 }
58755
58756 static inline int xfer_from_user(void *src, void *dst, size_t len)
58757 {
58758 - return copy_from_user(dst, (__force void __user *)src, len) ?
58759 + return copy_from_user(dst, (void __force_user *)src, len) ?
58760 -EFAULT : 0;
58761 }
58762
58763 static inline int xfer_to_user(void *dst, void *src, size_t len)
58764 {
58765 - return copy_to_user((__force void __user *)dst, src, len) ?
58766 + return copy_to_user((void __force_user *)dst, src, len) ?
58767 -EFAULT : 0;
58768 }
58769
58770 @@ -621,9 +621,9 @@ int vringh_init_user(struct vringh *vrh, u64 features,
58771 vrh->last_used_idx = 0;
58772 vrh->vring.num = num;
58773 /* vring expects kernel addresses, but only used via accessors. */
58774 - vrh->vring.desc = (__force struct vring_desc *)desc;
58775 - vrh->vring.avail = (__force struct vring_avail *)avail;
58776 - vrh->vring.used = (__force struct vring_used *)used;
58777 + vrh->vring.desc = (__force_kernel struct vring_desc *)desc;
58778 + vrh->vring.avail = (__force_kernel struct vring_avail *)avail;
58779 + vrh->vring.used = (__force_kernel struct vring_used *)used;
58780 return 0;
58781 }
58782 EXPORT_SYMBOL(vringh_init_user);
58783 @@ -826,7 +826,7 @@ static inline int getu16_kern(const struct vringh *vrh,
58784
58785 static inline int putu16_kern(const struct vringh *vrh, __virtio16 *p, u16 val)
58786 {
58787 - ACCESS_ONCE(*p) = cpu_to_vringh16(vrh, val);
58788 + ACCESS_ONCE_RW(*p) = cpu_to_vringh16(vrh, val);
58789 return 0;
58790 }
58791
58792 diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
58793 index 84a110a..96312c3 100644
58794 --- a/drivers/video/backlight/kb3886_bl.c
58795 +++ b/drivers/video/backlight/kb3886_bl.c
58796 @@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
58797 static unsigned long kb3886bl_flags;
58798 #define KB3886BL_SUSPENDED 0x01
58799
58800 -static struct dmi_system_id kb3886bl_device_table[] __initdata = {
58801 +static const struct dmi_system_id kb3886bl_device_table[] __initconst = {
58802 {
58803 .ident = "Sahara Touch-iT",
58804 .matches = {
58805 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
58806 index 92f3949..7bb0e86 100644
58807 --- a/drivers/video/console/fbcon.c
58808 +++ b/drivers/video/console/fbcon.c
58809 @@ -106,7 +106,7 @@ static int fbcon_softback_size = 32768;
58810 static unsigned long softback_buf, softback_curr;
58811 static unsigned long softback_in;
58812 static unsigned long softback_top, softback_end;
58813 -static int softback_lines;
58814 +static long softback_lines;
58815 /* console mappings */
58816 static int first_fb_vc;
58817 static int last_fb_vc = MAX_NR_CONSOLES - 1;
58818 diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
58819 index 1b0b233..6f34c2c 100644
58820 --- a/drivers/video/fbdev/arcfb.c
58821 +++ b/drivers/video/fbdev/arcfb.c
58822 @@ -458,7 +458,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
58823 return -ENOSPC;
58824
58825 err = 0;
58826 - if ((count + p) > fbmemlength) {
58827 + if (count > (fbmemlength - p)) {
58828 count = fbmemlength - p;
58829 err = -ENOSPC;
58830 }
58831 diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
58832 index c42ce2f..4c8bc59 100644
58833 --- a/drivers/video/fbdev/aty/aty128fb.c
58834 +++ b/drivers/video/fbdev/aty/aty128fb.c
58835 @@ -145,7 +145,7 @@ enum {
58836 };
58837
58838 /* Must match above enum */
58839 -static char * const r128_family[] = {
58840 +static const char * const r128_family[] = {
58841 "AGP",
58842 "PCI",
58843 "PRO AGP",
58844 diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
58845 index f34ed47..026367f 100644
58846 --- a/drivers/video/fbdev/aty/atyfb_base.c
58847 +++ b/drivers/video/fbdev/aty/atyfb_base.c
58848 @@ -1335,10 +1335,14 @@ static int atyfb_set_par(struct fb_info *info)
58849 par->accel_flags = var->accel_flags; /* hack */
58850
58851 if (var->accel_flags) {
58852 - info->fbops->fb_sync = atyfb_sync;
58853 + pax_open_kernel();
58854 + *(void **)&info->fbops->fb_sync = atyfb_sync;
58855 + pax_close_kernel();
58856 info->flags &= ~FBINFO_HWACCEL_DISABLED;
58857 } else {
58858 - info->fbops->fb_sync = NULL;
58859 + pax_open_kernel();
58860 + *(void **)&info->fbops->fb_sync = NULL;
58861 + pax_close_kernel();
58862 info->flags |= FBINFO_HWACCEL_DISABLED;
58863 }
58864
58865 diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
58866 index 2fa0317..4983f2a 100644
58867 --- a/drivers/video/fbdev/aty/mach64_cursor.c
58868 +++ b/drivers/video/fbdev/aty/mach64_cursor.c
58869 @@ -8,6 +8,7 @@
58870 #include "../core/fb_draw.h"
58871
58872 #include <asm/io.h>
58873 +#include <asm/pgtable.h>
58874
58875 #ifdef __sparc__
58876 #include <asm/fbio.h>
58877 @@ -218,7 +219,9 @@ int aty_init_cursor(struct fb_info *info)
58878 info->sprite.buf_align = 16; /* and 64 lines tall. */
58879 info->sprite.flags = FB_PIXMAP_IO;
58880
58881 - info->fbops->fb_cursor = atyfb_cursor;
58882 + pax_open_kernel();
58883 + *(void **)&info->fbops->fb_cursor = atyfb_cursor;
58884 + pax_close_kernel();
58885
58886 return 0;
58887 }
58888 diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
58889 index 3fc63c2..eec5e49 100644
58890 --- a/drivers/video/fbdev/core/fb_defio.c
58891 +++ b/drivers/video/fbdev/core/fb_defio.c
58892 @@ -207,7 +207,9 @@ void fb_deferred_io_init(struct fb_info *info)
58893
58894 BUG_ON(!fbdefio);
58895 mutex_init(&fbdefio->lock);
58896 - info->fbops->fb_mmap = fb_deferred_io_mmap;
58897 + pax_open_kernel();
58898 + *(void **)&info->fbops->fb_mmap = fb_deferred_io_mmap;
58899 + pax_close_kernel();
58900 INIT_DELAYED_WORK(&info->deferred_work, fb_deferred_io_work);
58901 INIT_LIST_HEAD(&fbdefio->pagelist);
58902 if (fbdefio->delay == 0) /* set a default of 1 s */
58903 @@ -238,7 +240,7 @@ void fb_deferred_io_cleanup(struct fb_info *info)
58904 page->mapping = NULL;
58905 }
58906
58907 - info->fbops->fb_mmap = NULL;
58908 + *(void **)&info->fbops->fb_mmap = NULL;
58909 mutex_destroy(&fbdefio->lock);
58910 }
58911 EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
58912 diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
58913 index 0705d88..0e17c07 100644
58914 --- a/drivers/video/fbdev/core/fbmem.c
58915 +++ b/drivers/video/fbdev/core/fbmem.c
58916 @@ -1301,7 +1301,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
58917 __u32 data;
58918 int err;
58919
58920 - err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
58921 + err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
58922
58923 data = (__u32) (unsigned long) fix->smem_start;
58924 err |= put_user(data, &fix32->smem_start);
58925 @@ -1435,10 +1435,7 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
58926 return vm_iomap_memory(vma, start, len);
58927 }
58928
58929 -static int
58930 -fb_open(struct inode *inode, struct file *file)
58931 -__acquires(&info->lock)
58932 -__releases(&info->lock)
58933 +static int fb_open(struct inode *inode, struct file *file)
58934 {
58935 int fbidx = iminor(inode);
58936 struct fb_info *info;
58937 @@ -1476,10 +1473,7 @@ out:
58938 return res;
58939 }
58940
58941 -static int
58942 -fb_release(struct inode *inode, struct file *file)
58943 -__acquires(&info->lock)
58944 -__releases(&info->lock)
58945 +static int fb_release(struct inode *inode, struct file *file)
58946 {
58947 struct fb_info * const info = file->private_data;
58948
58949 diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
58950 index e2451bd..ab7ccd1 100644
58951 --- a/drivers/video/fbdev/hyperv_fb.c
58952 +++ b/drivers/video/fbdev/hyperv_fb.c
58953 @@ -240,7 +240,7 @@ static uint screen_fb_size;
58954 static inline int synthvid_send(struct hv_device *hdev,
58955 struct synthvid_msg *msg)
58956 {
58957 - static atomic64_t request_id = ATOMIC64_INIT(0);
58958 + static atomic64_unchecked_t request_id = ATOMIC64_INIT(0);
58959 int ret;
58960
58961 msg->pipe_hdr.type = PIPE_MSG_DATA;
58962 @@ -248,7 +248,7 @@ static inline int synthvid_send(struct hv_device *hdev,
58963
58964 ret = vmbus_sendpacket(hdev->channel, msg,
58965 msg->vid_hdr.size + sizeof(struct pipe_msg_hdr),
58966 - atomic64_inc_return(&request_id),
58967 + atomic64_inc_return_unchecked(&request_id),
58968 VM_PKT_DATA_INBAND, 0);
58969
58970 if (ret)
58971 diff --git a/drivers/video/fbdev/i810/i810_accel.c b/drivers/video/fbdev/i810/i810_accel.c
58972 index 7672d2e..b56437f 100644
58973 --- a/drivers/video/fbdev/i810/i810_accel.c
58974 +++ b/drivers/video/fbdev/i810/i810_accel.c
58975 @@ -73,6 +73,7 @@ static inline int wait_for_space(struct fb_info *info, u32 space)
58976 }
58977 }
58978 printk("ringbuffer lockup!!!\n");
58979 + printk("head:%u tail:%u iring.size:%u space:%u\n", head, tail, par->iring.size, space);
58980 i810_report_error(mmio);
58981 par->dev_flags |= LOCKUP;
58982 info->pixmap.scan_align = 1;
58983 diff --git a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58984 index a01147f..5d896f8 100644
58985 --- a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58986 +++ b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58987 @@ -1088,14 +1088,20 @@ static void MGAG100_restore(struct matrox_fb_info *minfo)
58988
58989 #ifdef CONFIG_FB_MATROX_MYSTIQUE
58990 struct matrox_switch matrox_mystique = {
58991 - MGA1064_preinit, MGA1064_reset, MGA1064_init, MGA1064_restore,
58992 + .preinit = MGA1064_preinit,
58993 + .reset = MGA1064_reset,
58994 + .init = MGA1064_init,
58995 + .restore = MGA1064_restore,
58996 };
58997 EXPORT_SYMBOL(matrox_mystique);
58998 #endif
58999
59000 #ifdef CONFIG_FB_MATROX_G
59001 struct matrox_switch matrox_G100 = {
59002 - MGAG100_preinit, MGAG100_reset, MGAG100_init, MGAG100_restore,
59003 + .preinit = MGAG100_preinit,
59004 + .reset = MGAG100_reset,
59005 + .init = MGAG100_init,
59006 + .restore = MGAG100_restore,
59007 };
59008 EXPORT_SYMBOL(matrox_G100);
59009 #endif
59010 diff --git a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59011 index 195ad7c..09743fc 100644
59012 --- a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59013 +++ b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59014 @@ -738,7 +738,10 @@ static int Ti3026_preinit(struct matrox_fb_info *minfo)
59015 }
59016
59017 struct matrox_switch matrox_millennium = {
59018 - Ti3026_preinit, Ti3026_reset, Ti3026_init, Ti3026_restore
59019 + .preinit = Ti3026_preinit,
59020 + .reset = Ti3026_reset,
59021 + .init = Ti3026_init,
59022 + .restore = Ti3026_restore
59023 };
59024 EXPORT_SYMBOL(matrox_millennium);
59025 #endif
59026 diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
59027 index 11eb094..622ee31 100644
59028 --- a/drivers/video/fbdev/matrox/matroxfb_base.c
59029 +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
59030 @@ -2176,7 +2176,7 @@ static struct pci_driver matroxfb_driver = {
59031 #define RS1056x480 14 /* 132 x 60 text */
59032 #define RSNoxNo 15
59033 /* 10-FF */
59034 -static struct { int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
59035 +static struct { unsigned int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
59036 { 640, 400, 48, 16, 39, 8, 96, 2, 70 },
59037 { 640, 480, 48, 16, 33, 10, 96, 2, 60 },
59038 { 800, 600, 144, 24, 28, 8, 112, 6, 60 },
59039 diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59040 index fe92eed..106e085 100644
59041 --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59042 +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59043 @@ -312,14 +312,18 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
59044 struct mb862xxfb_par *par = info->par;
59045
59046 if (info->var.bits_per_pixel == 32) {
59047 - info->fbops->fb_fillrect = cfb_fillrect;
59048 - info->fbops->fb_copyarea = cfb_copyarea;
59049 - info->fbops->fb_imageblit = cfb_imageblit;
59050 + pax_open_kernel();
59051 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
59052 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
59053 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
59054 + pax_close_kernel();
59055 } else {
59056 outreg(disp, GC_L0EM, 3);
59057 - info->fbops->fb_fillrect = mb86290fb_fillrect;
59058 - info->fbops->fb_copyarea = mb86290fb_copyarea;
59059 - info->fbops->fb_imageblit = mb86290fb_imageblit;
59060 + pax_open_kernel();
59061 + *(void **)&info->fbops->fb_fillrect = mb86290fb_fillrect;
59062 + *(void **)&info->fbops->fb_copyarea = mb86290fb_copyarea;
59063 + *(void **)&info->fbops->fb_imageblit = mb86290fb_imageblit;
59064 + pax_close_kernel();
59065 }
59066 outreg(draw, GDC_REG_DRAW_BASE, 0);
59067 outreg(draw, GDC_REG_MODE_MISC, 0x8000);
59068 diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
59069 index ce7dab7..a87baf8 100644
59070 --- a/drivers/video/fbdev/nvidia/nvidia.c
59071 +++ b/drivers/video/fbdev/nvidia/nvidia.c
59072 @@ -660,19 +660,23 @@ static int nvidiafb_set_par(struct fb_info *info)
59073 info->fix.line_length = (info->var.xres_virtual *
59074 info->var.bits_per_pixel) >> 3;
59075 if (info->var.accel_flags) {
59076 - info->fbops->fb_imageblit = nvidiafb_imageblit;
59077 - info->fbops->fb_fillrect = nvidiafb_fillrect;
59078 - info->fbops->fb_copyarea = nvidiafb_copyarea;
59079 - info->fbops->fb_sync = nvidiafb_sync;
59080 + pax_open_kernel();
59081 + *(void **)&info->fbops->fb_imageblit = nvidiafb_imageblit;
59082 + *(void **)&info->fbops->fb_fillrect = nvidiafb_fillrect;
59083 + *(void **)&info->fbops->fb_copyarea = nvidiafb_copyarea;
59084 + *(void **)&info->fbops->fb_sync = nvidiafb_sync;
59085 + pax_close_kernel();
59086 info->pixmap.scan_align = 4;
59087 info->flags &= ~FBINFO_HWACCEL_DISABLED;
59088 info->flags |= FBINFO_READS_FAST;
59089 NVResetGraphics(info);
59090 } else {
59091 - info->fbops->fb_imageblit = cfb_imageblit;
59092 - info->fbops->fb_fillrect = cfb_fillrect;
59093 - info->fbops->fb_copyarea = cfb_copyarea;
59094 - info->fbops->fb_sync = NULL;
59095 + pax_open_kernel();
59096 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
59097 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
59098 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
59099 + *(void **)&info->fbops->fb_sync = NULL;
59100 + pax_close_kernel();
59101 info->pixmap.scan_align = 1;
59102 info->flags |= FBINFO_HWACCEL_DISABLED;
59103 info->flags &= ~FBINFO_READS_FAST;
59104 @@ -1164,8 +1168,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
59105 info->pixmap.size = 8 * 1024;
59106 info->pixmap.flags = FB_PIXMAP_SYSTEM;
59107
59108 - if (!hwcur)
59109 - info->fbops->fb_cursor = NULL;
59110 + if (!hwcur) {
59111 + pax_open_kernel();
59112 + *(void **)&info->fbops->fb_cursor = NULL;
59113 + pax_close_kernel();
59114 + }
59115
59116 info->var.accel_flags = (!noaccel);
59117
59118 diff --git a/drivers/video/fbdev/omap2/dss/display.c b/drivers/video/fbdev/omap2/dss/display.c
59119 index ef5b902..47cf7f5 100644
59120 --- a/drivers/video/fbdev/omap2/dss/display.c
59121 +++ b/drivers/video/fbdev/omap2/dss/display.c
59122 @@ -161,12 +161,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
59123 if (dssdev->name == NULL)
59124 dssdev->name = dssdev->alias;
59125
59126 + pax_open_kernel();
59127 if (drv && drv->get_resolution == NULL)
59128 - drv->get_resolution = omapdss_default_get_resolution;
59129 + *(void **)&drv->get_resolution = omapdss_default_get_resolution;
59130 if (drv && drv->get_recommended_bpp == NULL)
59131 - drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
59132 + *(void **)&drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
59133 if (drv && drv->get_timings == NULL)
59134 - drv->get_timings = omapdss_default_get_timings;
59135 + *(void **)&drv->get_timings = omapdss_default_get_timings;
59136 + pax_close_kernel();
59137
59138 mutex_lock(&panel_list_mutex);
59139 list_add_tail(&dssdev->panel_list, &panel_list);
59140 diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c
59141 index 96aa46d..c67c213 100644
59142 --- a/drivers/video/fbdev/s1d13xxxfb.c
59143 +++ b/drivers/video/fbdev/s1d13xxxfb.c
59144 @@ -880,8 +880,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
59145
59146 switch(prod_id) {
59147 case S1D13506_PROD_ID: /* activate acceleration */
59148 - s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
59149 - s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
59150 + pax_open_kernel();
59151 + *(void **)&s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
59152 + *(void **)&s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
59153 + pax_close_kernel();
59154 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
59155 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
59156 break;
59157 diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
59158 index 82c0a8c..42499a1 100644
59159 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
59160 +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
59161 @@ -439,9 +439,9 @@ static unsigned long lcdc_sys_read_data(void *handle)
59162 }
59163
59164 static struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = {
59165 - lcdc_sys_write_index,
59166 - lcdc_sys_write_data,
59167 - lcdc_sys_read_data,
59168 + .write_index = lcdc_sys_write_index,
59169 + .write_data = lcdc_sys_write_data,
59170 + .read_data = lcdc_sys_read_data,
59171 };
59172
59173 static int sh_mobile_lcdc_sginit(struct fb_info *info,
59174 diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
59175 index 9279e5f..d5f5276 100644
59176 --- a/drivers/video/fbdev/smscufx.c
59177 +++ b/drivers/video/fbdev/smscufx.c
59178 @@ -1174,7 +1174,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
59179 fb_deferred_io_cleanup(info);
59180 kfree(info->fbdefio);
59181 info->fbdefio = NULL;
59182 - info->fbops->fb_mmap = ufx_ops_mmap;
59183 + pax_open_kernel();
59184 + *(void **)&info->fbops->fb_mmap = ufx_ops_mmap;
59185 + pax_close_kernel();
59186 }
59187
59188 pr_debug("released /dev/fb%d user=%d count=%d",
59189 diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
59190 index e9c2f7b..8df1264 100644
59191 --- a/drivers/video/fbdev/udlfb.c
59192 +++ b/drivers/video/fbdev/udlfb.c
59193 @@ -623,11 +623,11 @@ static int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
59194 dlfb_urb_completion(urb);
59195
59196 error:
59197 - atomic_add(bytes_sent, &dev->bytes_sent);
59198 - atomic_add(bytes_identical, &dev->bytes_identical);
59199 - atomic_add(width*height*2, &dev->bytes_rendered);
59200 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
59201 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
59202 + atomic_add_unchecked(width*height*2, &dev->bytes_rendered);
59203 end_cycles = get_cycles();
59204 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
59205 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
59206 >> 10)), /* Kcycles */
59207 &dev->cpu_kcycles_used);
59208
59209 @@ -748,11 +748,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
59210 dlfb_urb_completion(urb);
59211
59212 error:
59213 - atomic_add(bytes_sent, &dev->bytes_sent);
59214 - atomic_add(bytes_identical, &dev->bytes_identical);
59215 - atomic_add(bytes_rendered, &dev->bytes_rendered);
59216 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
59217 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
59218 + atomic_add_unchecked(bytes_rendered, &dev->bytes_rendered);
59219 end_cycles = get_cycles();
59220 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
59221 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
59222 >> 10)), /* Kcycles */
59223 &dev->cpu_kcycles_used);
59224 }
59225 @@ -991,7 +991,9 @@ static int dlfb_ops_release(struct fb_info *info, int user)
59226 fb_deferred_io_cleanup(info);
59227 kfree(info->fbdefio);
59228 info->fbdefio = NULL;
59229 - info->fbops->fb_mmap = dlfb_ops_mmap;
59230 + pax_open_kernel();
59231 + *(void **)&info->fbops->fb_mmap = dlfb_ops_mmap;
59232 + pax_close_kernel();
59233 }
59234
59235 pr_warn("released /dev/fb%d user=%d count=%d\n",
59236 @@ -1373,7 +1375,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
59237 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59238 struct dlfb_data *dev = fb_info->par;
59239 return snprintf(buf, PAGE_SIZE, "%u\n",
59240 - atomic_read(&dev->bytes_rendered));
59241 + atomic_read_unchecked(&dev->bytes_rendered));
59242 }
59243
59244 static ssize_t metrics_bytes_identical_show(struct device *fbdev,
59245 @@ -1381,7 +1383,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
59246 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59247 struct dlfb_data *dev = fb_info->par;
59248 return snprintf(buf, PAGE_SIZE, "%u\n",
59249 - atomic_read(&dev->bytes_identical));
59250 + atomic_read_unchecked(&dev->bytes_identical));
59251 }
59252
59253 static ssize_t metrics_bytes_sent_show(struct device *fbdev,
59254 @@ -1389,7 +1391,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
59255 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59256 struct dlfb_data *dev = fb_info->par;
59257 return snprintf(buf, PAGE_SIZE, "%u\n",
59258 - atomic_read(&dev->bytes_sent));
59259 + atomic_read_unchecked(&dev->bytes_sent));
59260 }
59261
59262 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
59263 @@ -1397,7 +1399,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
59264 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59265 struct dlfb_data *dev = fb_info->par;
59266 return snprintf(buf, PAGE_SIZE, "%u\n",
59267 - atomic_read(&dev->cpu_kcycles_used));
59268 + atomic_read_unchecked(&dev->cpu_kcycles_used));
59269 }
59270
59271 static ssize_t edid_show(
59272 @@ -1457,10 +1459,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
59273 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59274 struct dlfb_data *dev = fb_info->par;
59275
59276 - atomic_set(&dev->bytes_rendered, 0);
59277 - atomic_set(&dev->bytes_identical, 0);
59278 - atomic_set(&dev->bytes_sent, 0);
59279 - atomic_set(&dev->cpu_kcycles_used, 0);
59280 + atomic_set_unchecked(&dev->bytes_rendered, 0);
59281 + atomic_set_unchecked(&dev->bytes_identical, 0);
59282 + atomic_set_unchecked(&dev->bytes_sent, 0);
59283 + atomic_set_unchecked(&dev->cpu_kcycles_used, 0);
59284
59285 return count;
59286 }
59287 diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
59288 index 178ae93..624b2eb 100644
59289 --- a/drivers/video/fbdev/uvesafb.c
59290 +++ b/drivers/video/fbdev/uvesafb.c
59291 @@ -19,6 +19,7 @@
59292 #include <linux/io.h>
59293 #include <linux/mutex.h>
59294 #include <linux/slab.h>
59295 +#include <linux/moduleloader.h>
59296 #include <video/edid.h>
59297 #include <video/uvesafb.h>
59298 #ifdef CONFIG_X86
59299 @@ -565,10 +566,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
59300 if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
59301 par->pmi_setpal = par->ypan = 0;
59302 } else {
59303 +
59304 +#ifdef CONFIG_PAX_KERNEXEC
59305 +#ifdef CONFIG_MODULES
59306 + par->pmi_code = module_alloc_exec((u16)task->t.regs.ecx);
59307 +#endif
59308 + if (!par->pmi_code) {
59309 + par->pmi_setpal = par->ypan = 0;
59310 + return 0;
59311 + }
59312 +#endif
59313 +
59314 par->pmi_base = (u16 *)phys_to_virt(((u32)task->t.regs.es << 4)
59315 + task->t.regs.edi);
59316 +
59317 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59318 + pax_open_kernel();
59319 + memcpy(par->pmi_code, par->pmi_base, (u16)task->t.regs.ecx);
59320 + pax_close_kernel();
59321 +
59322 + par->pmi_start = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[1]));
59323 + par->pmi_pal = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[2]));
59324 +#else
59325 par->pmi_start = (u8 *)par->pmi_base + par->pmi_base[1];
59326 par->pmi_pal = (u8 *)par->pmi_base + par->pmi_base[2];
59327 +#endif
59328 +
59329 printk(KERN_INFO "uvesafb: protected mode interface info at "
59330 "%04x:%04x\n",
59331 (u16)task->t.regs.es, (u16)task->t.regs.edi);
59332 @@ -813,13 +836,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
59333 par->ypan = ypan;
59334
59335 if (par->pmi_setpal || par->ypan) {
59336 +#if !defined(CONFIG_MODULES) || !defined(CONFIG_PAX_KERNEXEC)
59337 if (__supported_pte_mask & _PAGE_NX) {
59338 par->pmi_setpal = par->ypan = 0;
59339 printk(KERN_WARNING "uvesafb: NX protection is active, "
59340 "better not use the PMI.\n");
59341 - } else {
59342 + } else
59343 +#endif
59344 uvesafb_vbe_getpmi(task, par);
59345 - }
59346 }
59347 #else
59348 /* The protected mode interface is not available on non-x86. */
59349 @@ -1452,8 +1476,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59350 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
59351
59352 /* Disable blanking if the user requested so. */
59353 - if (!blank)
59354 - info->fbops->fb_blank = NULL;
59355 + if (!blank) {
59356 + pax_open_kernel();
59357 + *(void **)&info->fbops->fb_blank = NULL;
59358 + pax_close_kernel();
59359 + }
59360
59361 /*
59362 * Find out how much IO memory is required for the mode with
59363 @@ -1524,8 +1551,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59364 info->flags = FBINFO_FLAG_DEFAULT |
59365 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
59366
59367 - if (!par->ypan)
59368 - info->fbops->fb_pan_display = NULL;
59369 + if (!par->ypan) {
59370 + pax_open_kernel();
59371 + *(void **)&info->fbops->fb_pan_display = NULL;
59372 + pax_close_kernel();
59373 + }
59374 }
59375
59376 static void uvesafb_init_mtrr(struct fb_info *info)
59377 @@ -1786,6 +1816,11 @@ out_mode:
59378 out:
59379 kfree(par->vbe_modes);
59380
59381 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59382 + if (par->pmi_code)
59383 + module_memfree_exec(par->pmi_code);
59384 +#endif
59385 +
59386 framebuffer_release(info);
59387 return err;
59388 }
59389 @@ -1810,6 +1845,11 @@ static int uvesafb_remove(struct platform_device *dev)
59390 kfree(par->vbe_state_orig);
59391 kfree(par->vbe_state_saved);
59392
59393 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59394 + if (par->pmi_code)
59395 + module_memfree_exec(par->pmi_code);
59396 +#endif
59397 +
59398 framebuffer_release(info);
59399 }
59400 return 0;
59401 diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c
59402 index 528fe91..6fd29fe 100644
59403 --- a/drivers/video/fbdev/vesafb.c
59404 +++ b/drivers/video/fbdev/vesafb.c
59405 @@ -9,6 +9,7 @@
59406 */
59407
59408 #include <linux/module.h>
59409 +#include <linux/moduleloader.h>
59410 #include <linux/kernel.h>
59411 #include <linux/errno.h>
59412 #include <linux/string.h>
59413 @@ -56,8 +57,8 @@ static int vram_remap; /* Set amount of memory to be used */
59414 static int vram_total; /* Set total amount of memory */
59415 static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
59416 static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
59417 -static void (*pmi_start)(void) __read_mostly;
59418 -static void (*pmi_pal) (void) __read_mostly;
59419 +static void (*pmi_start)(void) __read_only;
59420 +static void (*pmi_pal) (void) __read_only;
59421 static int depth __read_mostly;
59422 static int vga_compat __read_mostly;
59423 /* --------------------------------------------------------------------- */
59424 @@ -241,6 +242,7 @@ static int vesafb_probe(struct platform_device *dev)
59425 unsigned int size_remap;
59426 unsigned int size_total;
59427 char *option = NULL;
59428 + void *pmi_code = NULL;
59429
59430 /* ignore error return of fb_get_options */
59431 fb_get_options("vesafb", &option);
59432 @@ -287,10 +289,6 @@ static int vesafb_probe(struct platform_device *dev)
59433 size_remap = size_total;
59434 vesafb_fix.smem_len = size_remap;
59435
59436 -#ifndef __i386__
59437 - screen_info.vesapm_seg = 0;
59438 -#endif
59439 -
59440 if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
59441 printk(KERN_WARNING
59442 "vesafb: cannot reserve video memory at 0x%lx\n",
59443 @@ -320,9 +318,21 @@ static int vesafb_probe(struct platform_device *dev)
59444 printk(KERN_INFO "vesafb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
59445 vesafb_defined.xres, vesafb_defined.yres, vesafb_defined.bits_per_pixel, vesafb_fix.line_length, screen_info.pages);
59446
59447 +#ifdef __i386__
59448 +
59449 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59450 + pmi_code = module_alloc_exec(screen_info.vesapm_size);
59451 + if (!pmi_code)
59452 +#elif !defined(CONFIG_PAX_KERNEXEC)
59453 + if (0)
59454 +#endif
59455 +
59456 +#endif
59457 + screen_info.vesapm_seg = 0;
59458 +
59459 if (screen_info.vesapm_seg) {
59460 - printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x\n",
59461 - screen_info.vesapm_seg,screen_info.vesapm_off);
59462 + printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x %04x bytes\n",
59463 + screen_info.vesapm_seg,screen_info.vesapm_off,screen_info.vesapm_size);
59464 }
59465
59466 if (screen_info.vesapm_seg < 0xc000)
59467 @@ -330,9 +340,25 @@ static int vesafb_probe(struct platform_device *dev)
59468
59469 if (ypan || pmi_setpal) {
59470 unsigned short *pmi_base;
59471 +
59472 pmi_base = (unsigned short*)phys_to_virt(((unsigned long)screen_info.vesapm_seg << 4) + screen_info.vesapm_off);
59473 - pmi_start = (void*)((char*)pmi_base + pmi_base[1]);
59474 - pmi_pal = (void*)((char*)pmi_base + pmi_base[2]);
59475 +
59476 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59477 + pax_open_kernel();
59478 + memcpy(pmi_code, pmi_base, screen_info.vesapm_size);
59479 +#else
59480 + pmi_code = pmi_base;
59481 +#endif
59482 +
59483 + pmi_start = (void*)((char*)pmi_code + pmi_base[1]);
59484 + pmi_pal = (void*)((char*)pmi_code + pmi_base[2]);
59485 +
59486 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59487 + pmi_start = (void *)ktva_ktla((unsigned long)pmi_start);
59488 + pmi_pal = (void *)ktva_ktla((unsigned long)pmi_pal);
59489 + pax_close_kernel();
59490 +#endif
59491 +
59492 printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal);
59493 if (pmi_base[3]) {
59494 printk(KERN_INFO "vesafb: pmi: ports = ");
59495 @@ -452,8 +478,11 @@ static int vesafb_probe(struct platform_device *dev)
59496 info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE |
59497 (ypan ? FBINFO_HWACCEL_YPAN : 0);
59498
59499 - if (!ypan)
59500 - info->fbops->fb_pan_display = NULL;
59501 + if (!ypan) {
59502 + pax_open_kernel();
59503 + *(void **)&info->fbops->fb_pan_display = NULL;
59504 + pax_close_kernel();
59505 + }
59506
59507 if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
59508 err = -ENOMEM;
59509 @@ -467,6 +496,11 @@ static int vesafb_probe(struct platform_device *dev)
59510 fb_info(info, "%s frame buffer device\n", info->fix.id);
59511 return 0;
59512 err:
59513 +
59514 +#if defined(__i386__) && defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59515 + module_memfree_exec(pmi_code);
59516 +#endif
59517 +
59518 arch_phys_wc_del(par->wc_cookie);
59519 if (info->screen_base)
59520 iounmap(info->screen_base);
59521 diff --git a/drivers/video/fbdev/via/via_clock.h b/drivers/video/fbdev/via/via_clock.h
59522 index 88714ae..16c2e11 100644
59523 --- a/drivers/video/fbdev/via/via_clock.h
59524 +++ b/drivers/video/fbdev/via/via_clock.h
59525 @@ -56,7 +56,7 @@ struct via_clock {
59526
59527 void (*set_engine_pll_state)(u8 state);
59528 void (*set_engine_pll)(struct via_pll_config config);
59529 -};
59530 +} __no_const;
59531
59532
59533 static inline u32 get_pll_internal_frequency(u32 ref_freq,
59534 diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
59535 index 3c14e43..2630570 100644
59536 --- a/drivers/video/logo/logo_linux_clut224.ppm
59537 +++ b/drivers/video/logo/logo_linux_clut224.ppm
59538 @@ -2,1603 +2,1123 @@ P3
59539 # Standard 224-color Linux logo
59540 80 80
59541 255
59542 - 0 0 0 0 0 0 0 0 0 0 0 0
59543 - 0 0 0 0 0 0 0 0 0 0 0 0
59544 - 0 0 0 0 0 0 0 0 0 0 0 0
59545 - 0 0 0 0 0 0 0 0 0 0 0 0
59546 - 0 0 0 0 0 0 0 0 0 0 0 0
59547 - 0 0 0 0 0 0 0 0 0 0 0 0
59548 - 0 0 0 0 0 0 0 0 0 0 0 0
59549 - 0 0 0 0 0 0 0 0 0 0 0 0
59550 - 0 0 0 0 0 0 0 0 0 0 0 0
59551 - 6 6 6 6 6 6 10 10 10 10 10 10
59552 - 10 10 10 6 6 6 6 6 6 6 6 6
59553 - 0 0 0 0 0 0 0 0 0 0 0 0
59554 - 0 0 0 0 0 0 0 0 0 0 0 0
59555 - 0 0 0 0 0 0 0 0 0 0 0 0
59556 - 0 0 0 0 0 0 0 0 0 0 0 0
59557 - 0 0 0 0 0 0 0 0 0 0 0 0
59558 - 0 0 0 0 0 0 0 0 0 0 0 0
59559 - 0 0 0 0 0 0 0 0 0 0 0 0
59560 - 0 0 0 0 0 0 0 0 0 0 0 0
59561 - 0 0 0 0 0 0 0 0 0 0 0 0
59562 - 0 0 0 0 0 0 0 0 0 0 0 0
59563 - 0 0 0 0 0 0 0 0 0 0 0 0
59564 - 0 0 0 0 0 0 0 0 0 0 0 0
59565 - 0 0 0 0 0 0 0 0 0 0 0 0
59566 - 0 0 0 0 0 0 0 0 0 0 0 0
59567 - 0 0 0 0 0 0 0 0 0 0 0 0
59568 - 0 0 0 0 0 0 0 0 0 0 0 0
59569 - 0 0 0 0 0 0 0 0 0 0 0 0
59570 - 0 0 0 6 6 6 10 10 10 14 14 14
59571 - 22 22 22 26 26 26 30 30 30 34 34 34
59572 - 30 30 30 30 30 30 26 26 26 18 18 18
59573 - 14 14 14 10 10 10 6 6 6 0 0 0
59574 - 0 0 0 0 0 0 0 0 0 0 0 0
59575 - 0 0 0 0 0 0 0 0 0 0 0 0
59576 - 0 0 0 0 0 0 0 0 0 0 0 0
59577 - 0 0 0 0 0 0 0 0 0 0 0 0
59578 - 0 0 0 0 0 0 0 0 0 0 0 0
59579 - 0 0 0 0 0 0 0 0 0 0 0 0
59580 - 0 0 0 0 0 0 0 0 0 0 0 0
59581 - 0 0 0 0 0 0 0 0 0 0 0 0
59582 - 0 0 0 0 0 0 0 0 0 0 0 0
59583 - 0 0 0 0 0 1 0 0 1 0 0 0
59584 - 0 0 0 0 0 0 0 0 0 0 0 0
59585 - 0 0 0 0 0 0 0 0 0 0 0 0
59586 - 0 0 0 0 0 0 0 0 0 0 0 0
59587 - 0 0 0 0 0 0 0 0 0 0 0 0
59588 - 0 0 0 0 0 0 0 0 0 0 0 0
59589 - 0 0 0 0 0 0 0 0 0 0 0 0
59590 - 6 6 6 14 14 14 26 26 26 42 42 42
59591 - 54 54 54 66 66 66 78 78 78 78 78 78
59592 - 78 78 78 74 74 74 66 66 66 54 54 54
59593 - 42 42 42 26 26 26 18 18 18 10 10 10
59594 - 6 6 6 0 0 0 0 0 0 0 0 0
59595 - 0 0 0 0 0 0 0 0 0 0 0 0
59596 - 0 0 0 0 0 0 0 0 0 0 0 0
59597 - 0 0 0 0 0 0 0 0 0 0 0 0
59598 - 0 0 0 0 0 0 0 0 0 0 0 0
59599 - 0 0 0 0 0 0 0 0 0 0 0 0
59600 - 0 0 0 0 0 0 0 0 0 0 0 0
59601 - 0 0 0 0 0 0 0 0 0 0 0 0
59602 - 0 0 0 0 0 0 0 0 0 0 0 0
59603 - 0 0 1 0 0 0 0 0 0 0 0 0
59604 - 0 0 0 0 0 0 0 0 0 0 0 0
59605 - 0 0 0 0 0 0 0 0 0 0 0 0
59606 - 0 0 0 0 0 0 0 0 0 0 0 0
59607 - 0 0 0 0 0 0 0 0 0 0 0 0
59608 - 0 0 0 0 0 0 0 0 0 0 0 0
59609 - 0 0 0 0 0 0 0 0 0 10 10 10
59610 - 22 22 22 42 42 42 66 66 66 86 86 86
59611 - 66 66 66 38 38 38 38 38 38 22 22 22
59612 - 26 26 26 34 34 34 54 54 54 66 66 66
59613 - 86 86 86 70 70 70 46 46 46 26 26 26
59614 - 14 14 14 6 6 6 0 0 0 0 0 0
59615 - 0 0 0 0 0 0 0 0 0 0 0 0
59616 - 0 0 0 0 0 0 0 0 0 0 0 0
59617 - 0 0 0 0 0 0 0 0 0 0 0 0
59618 - 0 0 0 0 0 0 0 0 0 0 0 0
59619 - 0 0 0 0 0 0 0 0 0 0 0 0
59620 - 0 0 0 0 0 0 0 0 0 0 0 0
59621 - 0 0 0 0 0 0 0 0 0 0 0 0
59622 - 0 0 0 0 0 0 0 0 0 0 0 0
59623 - 0 0 1 0 0 1 0 0 1 0 0 0
59624 - 0 0 0 0 0 0 0 0 0 0 0 0
59625 - 0 0 0 0 0 0 0 0 0 0 0 0
59626 - 0 0 0 0 0 0 0 0 0 0 0 0
59627 - 0 0 0 0 0 0 0 0 0 0 0 0
59628 - 0 0 0 0 0 0 0 0 0 0 0 0
59629 - 0 0 0 0 0 0 10 10 10 26 26 26
59630 - 50 50 50 82 82 82 58 58 58 6 6 6
59631 - 2 2 6 2 2 6 2 2 6 2 2 6
59632 - 2 2 6 2 2 6 2 2 6 2 2 6
59633 - 6 6 6 54 54 54 86 86 86 66 66 66
59634 - 38 38 38 18 18 18 6 6 6 0 0 0
59635 - 0 0 0 0 0 0 0 0 0 0 0 0
59636 - 0 0 0 0 0 0 0 0 0 0 0 0
59637 - 0 0 0 0 0 0 0 0 0 0 0 0
59638 - 0 0 0 0 0 0 0 0 0 0 0 0
59639 - 0 0 0 0 0 0 0 0 0 0 0 0
59640 - 0 0 0 0 0 0 0 0 0 0 0 0
59641 - 0 0 0 0 0 0 0 0 0 0 0 0
59642 - 0 0 0 0 0 0 0 0 0 0 0 0
59643 - 0 0 0 0 0 0 0 0 0 0 0 0
59644 - 0 0 0 0 0 0 0 0 0 0 0 0
59645 - 0 0 0 0 0 0 0 0 0 0 0 0
59646 - 0 0 0 0 0 0 0 0 0 0 0 0
59647 - 0 0 0 0 0 0 0 0 0 0 0 0
59648 - 0 0 0 0 0 0 0 0 0 0 0 0
59649 - 0 0 0 6 6 6 22 22 22 50 50 50
59650 - 78 78 78 34 34 34 2 2 6 2 2 6
59651 - 2 2 6 2 2 6 2 2 6 2 2 6
59652 - 2 2 6 2 2 6 2 2 6 2 2 6
59653 - 2 2 6 2 2 6 6 6 6 70 70 70
59654 - 78 78 78 46 46 46 22 22 22 6 6 6
59655 - 0 0 0 0 0 0 0 0 0 0 0 0
59656 - 0 0 0 0 0 0 0 0 0 0 0 0
59657 - 0 0 0 0 0 0 0 0 0 0 0 0
59658 - 0 0 0 0 0 0 0 0 0 0 0 0
59659 - 0 0 0 0 0 0 0 0 0 0 0 0
59660 - 0 0 0 0 0 0 0 0 0 0 0 0
59661 - 0 0 0 0 0 0 0 0 0 0 0 0
59662 - 0 0 0 0 0 0 0 0 0 0 0 0
59663 - 0 0 1 0 0 1 0 0 1 0 0 0
59664 - 0 0 0 0 0 0 0 0 0 0 0 0
59665 - 0 0 0 0 0 0 0 0 0 0 0 0
59666 - 0 0 0 0 0 0 0 0 0 0 0 0
59667 - 0 0 0 0 0 0 0 0 0 0 0 0
59668 - 0 0 0 0 0 0 0 0 0 0 0 0
59669 - 6 6 6 18 18 18 42 42 42 82 82 82
59670 - 26 26 26 2 2 6 2 2 6 2 2 6
59671 - 2 2 6 2 2 6 2 2 6 2 2 6
59672 - 2 2 6 2 2 6 2 2 6 14 14 14
59673 - 46 46 46 34 34 34 6 6 6 2 2 6
59674 - 42 42 42 78 78 78 42 42 42 18 18 18
59675 - 6 6 6 0 0 0 0 0 0 0 0 0
59676 - 0 0 0 0 0 0 0 0 0 0 0 0
59677 - 0 0 0 0 0 0 0 0 0 0 0 0
59678 - 0 0 0 0 0 0 0 0 0 0 0 0
59679 - 0 0 0 0 0 0 0 0 0 0 0 0
59680 - 0 0 0 0 0 0 0 0 0 0 0 0
59681 - 0 0 0 0 0 0 0 0 0 0 0 0
59682 - 0 0 0 0 0 0 0 0 0 0 0 0
59683 - 0 0 1 0 0 0 0 0 1 0 0 0
59684 - 0 0 0 0 0 0 0 0 0 0 0 0
59685 - 0 0 0 0 0 0 0 0 0 0 0 0
59686 - 0 0 0 0 0 0 0 0 0 0 0 0
59687 - 0 0 0 0 0 0 0 0 0 0 0 0
59688 - 0 0 0 0 0 0 0 0 0 0 0 0
59689 - 10 10 10 30 30 30 66 66 66 58 58 58
59690 - 2 2 6 2 2 6 2 2 6 2 2 6
59691 - 2 2 6 2 2 6 2 2 6 2 2 6
59692 - 2 2 6 2 2 6 2 2 6 26 26 26
59693 - 86 86 86 101 101 101 46 46 46 10 10 10
59694 - 2 2 6 58 58 58 70 70 70 34 34 34
59695 - 10 10 10 0 0 0 0 0 0 0 0 0
59696 - 0 0 0 0 0 0 0 0 0 0 0 0
59697 - 0 0 0 0 0 0 0 0 0 0 0 0
59698 - 0 0 0 0 0 0 0 0 0 0 0 0
59699 - 0 0 0 0 0 0 0 0 0 0 0 0
59700 - 0 0 0 0 0 0 0 0 0 0 0 0
59701 - 0 0 0 0 0 0 0 0 0 0 0 0
59702 - 0 0 0 0 0 0 0 0 0 0 0 0
59703 - 0 0 1 0 0 1 0 0 1 0 0 0
59704 - 0 0 0 0 0 0 0 0 0 0 0 0
59705 - 0 0 0 0 0 0 0 0 0 0 0 0
59706 - 0 0 0 0 0 0 0 0 0 0 0 0
59707 - 0 0 0 0 0 0 0 0 0 0 0 0
59708 - 0 0 0 0 0 0 0 0 0 0 0 0
59709 - 14 14 14 42 42 42 86 86 86 10 10 10
59710 - 2 2 6 2 2 6 2 2 6 2 2 6
59711 - 2 2 6 2 2 6 2 2 6 2 2 6
59712 - 2 2 6 2 2 6 2 2 6 30 30 30
59713 - 94 94 94 94 94 94 58 58 58 26 26 26
59714 - 2 2 6 6 6 6 78 78 78 54 54 54
59715 - 22 22 22 6 6 6 0 0 0 0 0 0
59716 - 0 0 0 0 0 0 0 0 0 0 0 0
59717 - 0 0 0 0 0 0 0 0 0 0 0 0
59718 - 0 0 0 0 0 0 0 0 0 0 0 0
59719 - 0 0 0 0 0 0 0 0 0 0 0 0
59720 - 0 0 0 0 0 0 0 0 0 0 0 0
59721 - 0 0 0 0 0 0 0 0 0 0 0 0
59722 - 0 0 0 0 0 0 0 0 0 0 0 0
59723 - 0 0 0 0 0 0 0 0 0 0 0 0
59724 - 0 0 0 0 0 0 0 0 0 0 0 0
59725 - 0 0 0 0 0 0 0 0 0 0 0 0
59726 - 0 0 0 0 0 0 0 0 0 0 0 0
59727 - 0 0 0 0 0 0 0 0 0 0 0 0
59728 - 0 0 0 0 0 0 0 0 0 6 6 6
59729 - 22 22 22 62 62 62 62 62 62 2 2 6
59730 - 2 2 6 2 2 6 2 2 6 2 2 6
59731 - 2 2 6 2 2 6 2 2 6 2 2 6
59732 - 2 2 6 2 2 6 2 2 6 26 26 26
59733 - 54 54 54 38 38 38 18 18 18 10 10 10
59734 - 2 2 6 2 2 6 34 34 34 82 82 82
59735 - 38 38 38 14 14 14 0 0 0 0 0 0
59736 - 0 0 0 0 0 0 0 0 0 0 0 0
59737 - 0 0 0 0 0 0 0 0 0 0 0 0
59738 - 0 0 0 0 0 0 0 0 0 0 0 0
59739 - 0 0 0 0 0 0 0 0 0 0 0 0
59740 - 0 0 0 0 0 0 0 0 0 0 0 0
59741 - 0 0 0 0 0 0 0 0 0 0 0 0
59742 - 0 0 0 0 0 0 0 0 0 0 0 0
59743 - 0 0 0 0 0 1 0 0 1 0 0 0
59744 - 0 0 0 0 0 0 0 0 0 0 0 0
59745 - 0 0 0 0 0 0 0 0 0 0 0 0
59746 - 0 0 0 0 0 0 0 0 0 0 0 0
59747 - 0 0 0 0 0 0 0 0 0 0 0 0
59748 - 0 0 0 0 0 0 0 0 0 6 6 6
59749 - 30 30 30 78 78 78 30 30 30 2 2 6
59750 - 2 2 6 2 2 6 2 2 6 2 2 6
59751 - 2 2 6 2 2 6 2 2 6 2 2 6
59752 - 2 2 6 2 2 6 2 2 6 10 10 10
59753 - 10 10 10 2 2 6 2 2 6 2 2 6
59754 - 2 2 6 2 2 6 2 2 6 78 78 78
59755 - 50 50 50 18 18 18 6 6 6 0 0 0
59756 - 0 0 0 0 0 0 0 0 0 0 0 0
59757 - 0 0 0 0 0 0 0 0 0 0 0 0
59758 - 0 0 0 0 0 0 0 0 0 0 0 0
59759 - 0 0 0 0 0 0 0 0 0 0 0 0
59760 - 0 0 0 0 0 0 0 0 0 0 0 0
59761 - 0 0 0 0 0 0 0 0 0 0 0 0
59762 - 0 0 0 0 0 0 0 0 0 0 0 0
59763 - 0 0 1 0 0 0 0 0 0 0 0 0
59764 - 0 0 0 0 0 0 0 0 0 0 0 0
59765 - 0 0 0 0 0 0 0 0 0 0 0 0
59766 - 0 0 0 0 0 0 0 0 0 0 0 0
59767 - 0 0 0 0 0 0 0 0 0 0 0 0
59768 - 0 0 0 0 0 0 0 0 0 10 10 10
59769 - 38 38 38 86 86 86 14 14 14 2 2 6
59770 - 2 2 6 2 2 6 2 2 6 2 2 6
59771 - 2 2 6 2 2 6 2 2 6 2 2 6
59772 - 2 2 6 2 2 6 2 2 6 2 2 6
59773 - 2 2 6 2 2 6 2 2 6 2 2 6
59774 - 2 2 6 2 2 6 2 2 6 54 54 54
59775 - 66 66 66 26 26 26 6 6 6 0 0 0
59776 - 0 0 0 0 0 0 0 0 0 0 0 0
59777 - 0 0 0 0 0 0 0 0 0 0 0 0
59778 - 0 0 0 0 0 0 0 0 0 0 0 0
59779 - 0 0 0 0 0 0 0 0 0 0 0 0
59780 - 0 0 0 0 0 0 0 0 0 0 0 0
59781 - 0 0 0 0 0 0 0 0 0 0 0 0
59782 - 0 0 0 0 0 0 0 0 0 0 0 0
59783 - 0 0 0 0 0 1 0 0 1 0 0 0
59784 - 0 0 0 0 0 0 0 0 0 0 0 0
59785 - 0 0 0 0 0 0 0 0 0 0 0 0
59786 - 0 0 0 0 0 0 0 0 0 0 0 0
59787 - 0 0 0 0 0 0 0 0 0 0 0 0
59788 - 0 0 0 0 0 0 0 0 0 14 14 14
59789 - 42 42 42 82 82 82 2 2 6 2 2 6
59790 - 2 2 6 6 6 6 10 10 10 2 2 6
59791 - 2 2 6 2 2 6 2 2 6 2 2 6
59792 - 2 2 6 2 2 6 2 2 6 6 6 6
59793 - 14 14 14 10 10 10 2 2 6 2 2 6
59794 - 2 2 6 2 2 6 2 2 6 18 18 18
59795 - 82 82 82 34 34 34 10 10 10 0 0 0
59796 - 0 0 0 0 0 0 0 0 0 0 0 0
59797 - 0 0 0 0 0 0 0 0 0 0 0 0
59798 - 0 0 0 0 0 0 0 0 0 0 0 0
59799 - 0 0 0 0 0 0 0 0 0 0 0 0
59800 - 0 0 0 0 0 0 0 0 0 0 0 0
59801 - 0 0 0 0 0 0 0 0 0 0 0 0
59802 - 0 0 0 0 0 0 0 0 0 0 0 0
59803 - 0 0 1 0 0 0 0 0 0 0 0 0
59804 - 0 0 0 0 0 0 0 0 0 0 0 0
59805 - 0 0 0 0 0 0 0 0 0 0 0 0
59806 - 0 0 0 0 0 0 0 0 0 0 0 0
59807 - 0 0 0 0 0 0 0 0 0 0 0 0
59808 - 0 0 0 0 0 0 0 0 0 14 14 14
59809 - 46 46 46 86 86 86 2 2 6 2 2 6
59810 - 6 6 6 6 6 6 22 22 22 34 34 34
59811 - 6 6 6 2 2 6 2 2 6 2 2 6
59812 - 2 2 6 2 2 6 18 18 18 34 34 34
59813 - 10 10 10 50 50 50 22 22 22 2 2 6
59814 - 2 2 6 2 2 6 2 2 6 10 10 10
59815 - 86 86 86 42 42 42 14 14 14 0 0 0
59816 - 0 0 0 0 0 0 0 0 0 0 0 0
59817 - 0 0 0 0 0 0 0 0 0 0 0 0
59818 - 0 0 0 0 0 0 0 0 0 0 0 0
59819 - 0 0 0 0 0 0 0 0 0 0 0 0
59820 - 0 0 0 0 0 0 0 0 0 0 0 0
59821 - 0 0 0 0 0 0 0 0 0 0 0 0
59822 - 0 0 0 0 0 0 0 0 0 0 0 0
59823 - 0 0 1 0 0 1 0 0 1 0 0 0
59824 - 0 0 0 0 0 0 0 0 0 0 0 0
59825 - 0 0 0 0 0 0 0 0 0 0 0 0
59826 - 0 0 0 0 0 0 0 0 0 0 0 0
59827 - 0 0 0 0 0 0 0 0 0 0 0 0
59828 - 0 0 0 0 0 0 0 0 0 14 14 14
59829 - 46 46 46 86 86 86 2 2 6 2 2 6
59830 - 38 38 38 116 116 116 94 94 94 22 22 22
59831 - 22 22 22 2 2 6 2 2 6 2 2 6
59832 - 14 14 14 86 86 86 138 138 138 162 162 162
59833 -154 154 154 38 38 38 26 26 26 6 6 6
59834 - 2 2 6 2 2 6 2 2 6 2 2 6
59835 - 86 86 86 46 46 46 14 14 14 0 0 0
59836 - 0 0 0 0 0 0 0 0 0 0 0 0
59837 - 0 0 0 0 0 0 0 0 0 0 0 0
59838 - 0 0 0 0 0 0 0 0 0 0 0 0
59839 - 0 0 0 0 0 0 0 0 0 0 0 0
59840 - 0 0 0 0 0 0 0 0 0 0 0 0
59841 - 0 0 0 0 0 0 0 0 0 0 0 0
59842 - 0 0 0 0 0 0 0 0 0 0 0 0
59843 - 0 0 0 0 0 0 0 0 0 0 0 0
59844 - 0 0 0 0 0 0 0 0 0 0 0 0
59845 - 0 0 0 0 0 0 0 0 0 0 0 0
59846 - 0 0 0 0 0 0 0 0 0 0 0 0
59847 - 0 0 0 0 0 0 0 0 0 0 0 0
59848 - 0 0 0 0 0 0 0 0 0 14 14 14
59849 - 46 46 46 86 86 86 2 2 6 14 14 14
59850 -134 134 134 198 198 198 195 195 195 116 116 116
59851 - 10 10 10 2 2 6 2 2 6 6 6 6
59852 -101 98 89 187 187 187 210 210 210 218 218 218
59853 -214 214 214 134 134 134 14 14 14 6 6 6
59854 - 2 2 6 2 2 6 2 2 6 2 2 6
59855 - 86 86 86 50 50 50 18 18 18 6 6 6
59856 - 0 0 0 0 0 0 0 0 0 0 0 0
59857 - 0 0 0 0 0 0 0 0 0 0 0 0
59858 - 0 0 0 0 0 0 0 0 0 0 0 0
59859 - 0 0 0 0 0 0 0 0 0 0 0 0
59860 - 0 0 0 0 0 0 0 0 0 0 0 0
59861 - 0 0 0 0 0 0 0 0 0 0 0 0
59862 - 0 0 0 0 0 0 0 0 1 0 0 0
59863 - 0 0 1 0 0 1 0 0 1 0 0 0
59864 - 0 0 0 0 0 0 0 0 0 0 0 0
59865 - 0 0 0 0 0 0 0 0 0 0 0 0
59866 - 0 0 0 0 0 0 0 0 0 0 0 0
59867 - 0 0 0 0 0 0 0 0 0 0 0 0
59868 - 0 0 0 0 0 0 0 0 0 14 14 14
59869 - 46 46 46 86 86 86 2 2 6 54 54 54
59870 -218 218 218 195 195 195 226 226 226 246 246 246
59871 - 58 58 58 2 2 6 2 2 6 30 30 30
59872 -210 210 210 253 253 253 174 174 174 123 123 123
59873 -221 221 221 234 234 234 74 74 74 2 2 6
59874 - 2 2 6 2 2 6 2 2 6 2 2 6
59875 - 70 70 70 58 58 58 22 22 22 6 6 6
59876 - 0 0 0 0 0 0 0 0 0 0 0 0
59877 - 0 0 0 0 0 0 0 0 0 0 0 0
59878 - 0 0 0 0 0 0 0 0 0 0 0 0
59879 - 0 0 0 0 0 0 0 0 0 0 0 0
59880 - 0 0 0 0 0 0 0 0 0 0 0 0
59881 - 0 0 0 0 0 0 0 0 0 0 0 0
59882 - 0 0 0 0 0 0 0 0 0 0 0 0
59883 - 0 0 0 0 0 0 0 0 0 0 0 0
59884 - 0 0 0 0 0 0 0 0 0 0 0 0
59885 - 0 0 0 0 0 0 0 0 0 0 0 0
59886 - 0 0 0 0 0 0 0 0 0 0 0 0
59887 - 0 0 0 0 0 0 0 0 0 0 0 0
59888 - 0 0 0 0 0 0 0 0 0 14 14 14
59889 - 46 46 46 82 82 82 2 2 6 106 106 106
59890 -170 170 170 26 26 26 86 86 86 226 226 226
59891 -123 123 123 10 10 10 14 14 14 46 46 46
59892 -231 231 231 190 190 190 6 6 6 70 70 70
59893 - 90 90 90 238 238 238 158 158 158 2 2 6
59894 - 2 2 6 2 2 6 2 2 6 2 2 6
59895 - 70 70 70 58 58 58 22 22 22 6 6 6
59896 - 0 0 0 0 0 0 0 0 0 0 0 0
59897 - 0 0 0 0 0 0 0 0 0 0 0 0
59898 - 0 0 0 0 0 0 0 0 0 0 0 0
59899 - 0 0 0 0 0 0 0 0 0 0 0 0
59900 - 0 0 0 0 0 0 0 0 0 0 0 0
59901 - 0 0 0 0 0 0 0 0 0 0 0 0
59902 - 0 0 0 0 0 0 0 0 1 0 0 0
59903 - 0 0 1 0 0 1 0 0 1 0 0 0
59904 - 0 0 0 0 0 0 0 0 0 0 0 0
59905 - 0 0 0 0 0 0 0 0 0 0 0 0
59906 - 0 0 0 0 0 0 0 0 0 0 0 0
59907 - 0 0 0 0 0 0 0 0 0 0 0 0
59908 - 0 0 0 0 0 0 0 0 0 14 14 14
59909 - 42 42 42 86 86 86 6 6 6 116 116 116
59910 -106 106 106 6 6 6 70 70 70 149 149 149
59911 -128 128 128 18 18 18 38 38 38 54 54 54
59912 -221 221 221 106 106 106 2 2 6 14 14 14
59913 - 46 46 46 190 190 190 198 198 198 2 2 6
59914 - 2 2 6 2 2 6 2 2 6 2 2 6
59915 - 74 74 74 62 62 62 22 22 22 6 6 6
59916 - 0 0 0 0 0 0 0 0 0 0 0 0
59917 - 0 0 0 0 0 0 0 0 0 0 0 0
59918 - 0 0 0 0 0 0 0 0 0 0 0 0
59919 - 0 0 0 0 0 0 0 0 0 0 0 0
59920 - 0 0 0 0 0 0 0 0 0 0 0 0
59921 - 0 0 0 0 0 0 0 0 0 0 0 0
59922 - 0 0 0 0 0 0 0 0 1 0 0 0
59923 - 0 0 1 0 0 0 0 0 1 0 0 0
59924 - 0 0 0 0 0 0 0 0 0 0 0 0
59925 - 0 0 0 0 0 0 0 0 0 0 0 0
59926 - 0 0 0 0 0 0 0 0 0 0 0 0
59927 - 0 0 0 0 0 0 0 0 0 0 0 0
59928 - 0 0 0 0 0 0 0 0 0 14 14 14
59929 - 42 42 42 94 94 94 14 14 14 101 101 101
59930 -128 128 128 2 2 6 18 18 18 116 116 116
59931 -118 98 46 121 92 8 121 92 8 98 78 10
59932 -162 162 162 106 106 106 2 2 6 2 2 6
59933 - 2 2 6 195 195 195 195 195 195 6 6 6
59934 - 2 2 6 2 2 6 2 2 6 2 2 6
59935 - 74 74 74 62 62 62 22 22 22 6 6 6
59936 - 0 0 0 0 0 0 0 0 0 0 0 0
59937 - 0 0 0 0 0 0 0 0 0 0 0 0
59938 - 0 0 0 0 0 0 0 0 0 0 0 0
59939 - 0 0 0 0 0 0 0 0 0 0 0 0
59940 - 0 0 0 0 0 0 0 0 0 0 0 0
59941 - 0 0 0 0 0 0 0 0 0 0 0 0
59942 - 0 0 0 0 0 0 0 0 1 0 0 1
59943 - 0 0 1 0 0 0 0 0 1 0 0 0
59944 - 0 0 0 0 0 0 0 0 0 0 0 0
59945 - 0 0 0 0 0 0 0 0 0 0 0 0
59946 - 0 0 0 0 0 0 0 0 0 0 0 0
59947 - 0 0 0 0 0 0 0 0 0 0 0 0
59948 - 0 0 0 0 0 0 0 0 0 10 10 10
59949 - 38 38 38 90 90 90 14 14 14 58 58 58
59950 -210 210 210 26 26 26 54 38 6 154 114 10
59951 -226 170 11 236 186 11 225 175 15 184 144 12
59952 -215 174 15 175 146 61 37 26 9 2 2 6
59953 - 70 70 70 246 246 246 138 138 138 2 2 6
59954 - 2 2 6 2 2 6 2 2 6 2 2 6
59955 - 70 70 70 66 66 66 26 26 26 6 6 6
59956 - 0 0 0 0 0 0 0 0 0 0 0 0
59957 - 0 0 0 0 0 0 0 0 0 0 0 0
59958 - 0 0 0 0 0 0 0 0 0 0 0 0
59959 - 0 0 0 0 0 0 0 0 0 0 0 0
59960 - 0 0 0 0 0 0 0 0 0 0 0 0
59961 - 0 0 0 0 0 0 0 0 0 0 0 0
59962 - 0 0 0 0 0 0 0 0 0 0 0 0
59963 - 0 0 0 0 0 0 0 0 0 0 0 0
59964 - 0 0 0 0 0 0 0 0 0 0 0 0
59965 - 0 0 0 0 0 0 0 0 0 0 0 0
59966 - 0 0 0 0 0 0 0 0 0 0 0 0
59967 - 0 0 0 0 0 0 0 0 0 0 0 0
59968 - 0 0 0 0 0 0 0 0 0 10 10 10
59969 - 38 38 38 86 86 86 14 14 14 10 10 10
59970 -195 195 195 188 164 115 192 133 9 225 175 15
59971 -239 182 13 234 190 10 232 195 16 232 200 30
59972 -245 207 45 241 208 19 232 195 16 184 144 12
59973 -218 194 134 211 206 186 42 42 42 2 2 6
59974 - 2 2 6 2 2 6 2 2 6 2 2 6
59975 - 50 50 50 74 74 74 30 30 30 6 6 6
59976 - 0 0 0 0 0 0 0 0 0 0 0 0
59977 - 0 0 0 0 0 0 0 0 0 0 0 0
59978 - 0 0 0 0 0 0 0 0 0 0 0 0
59979 - 0 0 0 0 0 0 0 0 0 0 0 0
59980 - 0 0 0 0 0 0 0 0 0 0 0 0
59981 - 0 0 0 0 0 0 0 0 0 0 0 0
59982 - 0 0 0 0 0 0 0 0 0 0 0 0
59983 - 0 0 0 0 0 0 0 0 0 0 0 0
59984 - 0 0 0 0 0 0 0 0 0 0 0 0
59985 - 0 0 0 0 0 0 0 0 0 0 0 0
59986 - 0 0 0 0 0 0 0 0 0 0 0 0
59987 - 0 0 0 0 0 0 0 0 0 0 0 0
59988 - 0 0 0 0 0 0 0 0 0 10 10 10
59989 - 34 34 34 86 86 86 14 14 14 2 2 6
59990 -121 87 25 192 133 9 219 162 10 239 182 13
59991 -236 186 11 232 195 16 241 208 19 244 214 54
59992 -246 218 60 246 218 38 246 215 20 241 208 19
59993 -241 208 19 226 184 13 121 87 25 2 2 6
59994 - 2 2 6 2 2 6 2 2 6 2 2 6
59995 - 50 50 50 82 82 82 34 34 34 10 10 10
59996 - 0 0 0 0 0 0 0 0 0 0 0 0
59997 - 0 0 0 0 0 0 0 0 0 0 0 0
59998 - 0 0 0 0 0 0 0 0 0 0 0 0
59999 - 0 0 0 0 0 0 0 0 0 0 0 0
60000 - 0 0 0 0 0 0 0 0 0 0 0 0
60001 - 0 0 0 0 0 0 0 0 0 0 0 0
60002 - 0 0 0 0 0 0 0 0 0 0 0 0
60003 - 0 0 0 0 0 0 0 0 0 0 0 0
60004 - 0 0 0 0 0 0 0 0 0 0 0 0
60005 - 0 0 0 0 0 0 0 0 0 0 0 0
60006 - 0 0 0 0 0 0 0 0 0 0 0 0
60007 - 0 0 0 0 0 0 0 0 0 0 0 0
60008 - 0 0 0 0 0 0 0 0 0 10 10 10
60009 - 34 34 34 82 82 82 30 30 30 61 42 6
60010 -180 123 7 206 145 10 230 174 11 239 182 13
60011 -234 190 10 238 202 15 241 208 19 246 218 74
60012 -246 218 38 246 215 20 246 215 20 246 215 20
60013 -226 184 13 215 174 15 184 144 12 6 6 6
60014 - 2 2 6 2 2 6 2 2 6 2 2 6
60015 - 26 26 26 94 94 94 42 42 42 14 14 14
60016 - 0 0 0 0 0 0 0 0 0 0 0 0
60017 - 0 0 0 0 0 0 0 0 0 0 0 0
60018 - 0 0 0 0 0 0 0 0 0 0 0 0
60019 - 0 0 0 0 0 0 0 0 0 0 0 0
60020 - 0 0 0 0 0 0 0 0 0 0 0 0
60021 - 0 0 0 0 0 0 0 0 0 0 0 0
60022 - 0 0 0 0 0 0 0 0 0 0 0 0
60023 - 0 0 0 0 0 0 0 0 0 0 0 0
60024 - 0 0 0 0 0 0 0 0 0 0 0 0
60025 - 0 0 0 0 0 0 0 0 0 0 0 0
60026 - 0 0 0 0 0 0 0 0 0 0 0 0
60027 - 0 0 0 0 0 0 0 0 0 0 0 0
60028 - 0 0 0 0 0 0 0 0 0 10 10 10
60029 - 30 30 30 78 78 78 50 50 50 104 69 6
60030 -192 133 9 216 158 10 236 178 12 236 186 11
60031 -232 195 16 241 208 19 244 214 54 245 215 43
60032 -246 215 20 246 215 20 241 208 19 198 155 10
60033 -200 144 11 216 158 10 156 118 10 2 2 6
60034 - 2 2 6 2 2 6 2 2 6 2 2 6
60035 - 6 6 6 90 90 90 54 54 54 18 18 18
60036 - 6 6 6 0 0 0 0 0 0 0 0 0
60037 - 0 0 0 0 0 0 0 0 0 0 0 0
60038 - 0 0 0 0 0 0 0 0 0 0 0 0
60039 - 0 0 0 0 0 0 0 0 0 0 0 0
60040 - 0 0 0 0 0 0 0 0 0 0 0 0
60041 - 0 0 0 0 0 0 0 0 0 0 0 0
60042 - 0 0 0 0 0 0 0 0 0 0 0 0
60043 - 0 0 0 0 0 0 0 0 0 0 0 0
60044 - 0 0 0 0 0 0 0 0 0 0 0 0
60045 - 0 0 0 0 0 0 0 0 0 0 0 0
60046 - 0 0 0 0 0 0 0 0 0 0 0 0
60047 - 0 0 0 0 0 0 0 0 0 0 0 0
60048 - 0 0 0 0 0 0 0 0 0 10 10 10
60049 - 30 30 30 78 78 78 46 46 46 22 22 22
60050 -137 92 6 210 162 10 239 182 13 238 190 10
60051 -238 202 15 241 208 19 246 215 20 246 215 20
60052 -241 208 19 203 166 17 185 133 11 210 150 10
60053 -216 158 10 210 150 10 102 78 10 2 2 6
60054 - 6 6 6 54 54 54 14 14 14 2 2 6
60055 - 2 2 6 62 62 62 74 74 74 30 30 30
60056 - 10 10 10 0 0 0 0 0 0 0 0 0
60057 - 0 0 0 0 0 0 0 0 0 0 0 0
60058 - 0 0 0 0 0 0 0 0 0 0 0 0
60059 - 0 0 0 0 0 0 0 0 0 0 0 0
60060 - 0 0 0 0 0 0 0 0 0 0 0 0
60061 - 0 0 0 0 0 0 0 0 0 0 0 0
60062 - 0 0 0 0 0 0 0 0 0 0 0 0
60063 - 0 0 0 0 0 0 0 0 0 0 0 0
60064 - 0 0 0 0 0 0 0 0 0 0 0 0
60065 - 0 0 0 0 0 0 0 0 0 0 0 0
60066 - 0 0 0 0 0 0 0 0 0 0 0 0
60067 - 0 0 0 0 0 0 0 0 0 0 0 0
60068 - 0 0 0 0 0 0 0 0 0 10 10 10
60069 - 34 34 34 78 78 78 50 50 50 6 6 6
60070 - 94 70 30 139 102 15 190 146 13 226 184 13
60071 -232 200 30 232 195 16 215 174 15 190 146 13
60072 -168 122 10 192 133 9 210 150 10 213 154 11
60073 -202 150 34 182 157 106 101 98 89 2 2 6
60074 - 2 2 6 78 78 78 116 116 116 58 58 58
60075 - 2 2 6 22 22 22 90 90 90 46 46 46
60076 - 18 18 18 6 6 6 0 0 0 0 0 0
60077 - 0 0 0 0 0 0 0 0 0 0 0 0
60078 - 0 0 0 0 0 0 0 0 0 0 0 0
60079 - 0 0 0 0 0 0 0 0 0 0 0 0
60080 - 0 0 0 0 0 0 0 0 0 0 0 0
60081 - 0 0 0 0 0 0 0 0 0 0 0 0
60082 - 0 0 0 0 0 0 0 0 0 0 0 0
60083 - 0 0 0 0 0 0 0 0 0 0 0 0
60084 - 0 0 0 0 0 0 0 0 0 0 0 0
60085 - 0 0 0 0 0 0 0 0 0 0 0 0
60086 - 0 0 0 0 0 0 0 0 0 0 0 0
60087 - 0 0 0 0 0 0 0 0 0 0 0 0
60088 - 0 0 0 0 0 0 0 0 0 10 10 10
60089 - 38 38 38 86 86 86 50 50 50 6 6 6
60090 -128 128 128 174 154 114 156 107 11 168 122 10
60091 -198 155 10 184 144 12 197 138 11 200 144 11
60092 -206 145 10 206 145 10 197 138 11 188 164 115
60093 -195 195 195 198 198 198 174 174 174 14 14 14
60094 - 2 2 6 22 22 22 116 116 116 116 116 116
60095 - 22 22 22 2 2 6 74 74 74 70 70 70
60096 - 30 30 30 10 10 10 0 0 0 0 0 0
60097 - 0 0 0 0 0 0 0 0 0 0 0 0
60098 - 0 0 0 0 0 0 0 0 0 0 0 0
60099 - 0 0 0 0 0 0 0 0 0 0 0 0
60100 - 0 0 0 0 0 0 0 0 0 0 0 0
60101 - 0 0 0 0 0 0 0 0 0 0 0 0
60102 - 0 0 0 0 0 0 0 0 0 0 0 0
60103 - 0 0 0 0 0 0 0 0 0 0 0 0
60104 - 0 0 0 0 0 0 0 0 0 0 0 0
60105 - 0 0 0 0 0 0 0 0 0 0 0 0
60106 - 0 0 0 0 0 0 0 0 0 0 0 0
60107 - 0 0 0 0 0 0 0 0 0 0 0 0
60108 - 0 0 0 0 0 0 6 6 6 18 18 18
60109 - 50 50 50 101 101 101 26 26 26 10 10 10
60110 -138 138 138 190 190 190 174 154 114 156 107 11
60111 -197 138 11 200 144 11 197 138 11 192 133 9
60112 -180 123 7 190 142 34 190 178 144 187 187 187
60113 -202 202 202 221 221 221 214 214 214 66 66 66
60114 - 2 2 6 2 2 6 50 50 50 62 62 62
60115 - 6 6 6 2 2 6 10 10 10 90 90 90
60116 - 50 50 50 18 18 18 6 6 6 0 0 0
60117 - 0 0 0 0 0 0 0 0 0 0 0 0
60118 - 0 0 0 0 0 0 0 0 0 0 0 0
60119 - 0 0 0 0 0 0 0 0 0 0 0 0
60120 - 0 0 0 0 0 0 0 0 0 0 0 0
60121 - 0 0 0 0 0 0 0 0 0 0 0 0
60122 - 0 0 0 0 0 0 0 0 0 0 0 0
60123 - 0 0 0 0 0 0 0 0 0 0 0 0
60124 - 0 0 0 0 0 0 0 0 0 0 0 0
60125 - 0 0 0 0 0 0 0 0 0 0 0 0
60126 - 0 0 0 0 0 0 0 0 0 0 0 0
60127 - 0 0 0 0 0 0 0 0 0 0 0 0
60128 - 0 0 0 0 0 0 10 10 10 34 34 34
60129 - 74 74 74 74 74 74 2 2 6 6 6 6
60130 -144 144 144 198 198 198 190 190 190 178 166 146
60131 -154 121 60 156 107 11 156 107 11 168 124 44
60132 -174 154 114 187 187 187 190 190 190 210 210 210
60133 -246 246 246 253 253 253 253 253 253 182 182 182
60134 - 6 6 6 2 2 6 2 2 6 2 2 6
60135 - 2 2 6 2 2 6 2 2 6 62 62 62
60136 - 74 74 74 34 34 34 14 14 14 0 0 0
60137 - 0 0 0 0 0 0 0 0 0 0 0 0
60138 - 0 0 0 0 0 0 0 0 0 0 0 0
60139 - 0 0 0 0 0 0 0 0 0 0 0 0
60140 - 0 0 0 0 0 0 0 0 0 0 0 0
60141 - 0 0 0 0 0 0 0 0 0 0 0 0
60142 - 0 0 0 0 0 0 0 0 0 0 0 0
60143 - 0 0 0 0 0 0 0 0 0 0 0 0
60144 - 0 0 0 0 0 0 0 0 0 0 0 0
60145 - 0 0 0 0 0 0 0 0 0 0 0 0
60146 - 0 0 0 0 0 0 0 0 0 0 0 0
60147 - 0 0 0 0 0 0 0 0 0 0 0 0
60148 - 0 0 0 10 10 10 22 22 22 54 54 54
60149 - 94 94 94 18 18 18 2 2 6 46 46 46
60150 -234 234 234 221 221 221 190 190 190 190 190 190
60151 -190 190 190 187 187 187 187 187 187 190 190 190
60152 -190 190 190 195 195 195 214 214 214 242 242 242
60153 -253 253 253 253 253 253 253 253 253 253 253 253
60154 - 82 82 82 2 2 6 2 2 6 2 2 6
60155 - 2 2 6 2 2 6 2 2 6 14 14 14
60156 - 86 86 86 54 54 54 22 22 22 6 6 6
60157 - 0 0 0 0 0 0 0 0 0 0 0 0
60158 - 0 0 0 0 0 0 0 0 0 0 0 0
60159 - 0 0 0 0 0 0 0 0 0 0 0 0
60160 - 0 0 0 0 0 0 0 0 0 0 0 0
60161 - 0 0 0 0 0 0 0 0 0 0 0 0
60162 - 0 0 0 0 0 0 0 0 0 0 0 0
60163 - 0 0 0 0 0 0 0 0 0 0 0 0
60164 - 0 0 0 0 0 0 0 0 0 0 0 0
60165 - 0 0 0 0 0 0 0 0 0 0 0 0
60166 - 0 0 0 0 0 0 0 0 0 0 0 0
60167 - 0 0 0 0 0 0 0 0 0 0 0 0
60168 - 6 6 6 18 18 18 46 46 46 90 90 90
60169 - 46 46 46 18 18 18 6 6 6 182 182 182
60170 -253 253 253 246 246 246 206 206 206 190 190 190
60171 -190 190 190 190 190 190 190 190 190 190 190 190
60172 -206 206 206 231 231 231 250 250 250 253 253 253
60173 -253 253 253 253 253 253 253 253 253 253 253 253
60174 -202 202 202 14 14 14 2 2 6 2 2 6
60175 - 2 2 6 2 2 6 2 2 6 2 2 6
60176 - 42 42 42 86 86 86 42 42 42 18 18 18
60177 - 6 6 6 0 0 0 0 0 0 0 0 0
60178 - 0 0 0 0 0 0 0 0 0 0 0 0
60179 - 0 0 0 0 0 0 0 0 0 0 0 0
60180 - 0 0 0 0 0 0 0 0 0 0 0 0
60181 - 0 0 0 0 0 0 0 0 0 0 0 0
60182 - 0 0 0 0 0 0 0 0 0 0 0 0
60183 - 0 0 0 0 0 0 0 0 0 0 0 0
60184 - 0 0 0 0 0 0 0 0 0 0 0 0
60185 - 0 0 0 0 0 0 0 0 0 0 0 0
60186 - 0 0 0 0 0 0 0 0 0 0 0 0
60187 - 0 0 0 0 0 0 0 0 0 6 6 6
60188 - 14 14 14 38 38 38 74 74 74 66 66 66
60189 - 2 2 6 6 6 6 90 90 90 250 250 250
60190 -253 253 253 253 253 253 238 238 238 198 198 198
60191 -190 190 190 190 190 190 195 195 195 221 221 221
60192 -246 246 246 253 253 253 253 253 253 253 253 253
60193 -253 253 253 253 253 253 253 253 253 253 253 253
60194 -253 253 253 82 82 82 2 2 6 2 2 6
60195 - 2 2 6 2 2 6 2 2 6 2 2 6
60196 - 2 2 6 78 78 78 70 70 70 34 34 34
60197 - 14 14 14 6 6 6 0 0 0 0 0 0
60198 - 0 0 0 0 0 0 0 0 0 0 0 0
60199 - 0 0 0 0 0 0 0 0 0 0 0 0
60200 - 0 0 0 0 0 0 0 0 0 0 0 0
60201 - 0 0 0 0 0 0 0 0 0 0 0 0
60202 - 0 0 0 0 0 0 0 0 0 0 0 0
60203 - 0 0 0 0 0 0 0 0 0 0 0 0
60204 - 0 0 0 0 0 0 0 0 0 0 0 0
60205 - 0 0 0 0 0 0 0 0 0 0 0 0
60206 - 0 0 0 0 0 0 0 0 0 0 0 0
60207 - 0 0 0 0 0 0 0 0 0 14 14 14
60208 - 34 34 34 66 66 66 78 78 78 6 6 6
60209 - 2 2 6 18 18 18 218 218 218 253 253 253
60210 -253 253 253 253 253 253 253 253 253 246 246 246
60211 -226 226 226 231 231 231 246 246 246 253 253 253
60212 -253 253 253 253 253 253 253 253 253 253 253 253
60213 -253 253 253 253 253 253 253 253 253 253 253 253
60214 -253 253 253 178 178 178 2 2 6 2 2 6
60215 - 2 2 6 2 2 6 2 2 6 2 2 6
60216 - 2 2 6 18 18 18 90 90 90 62 62 62
60217 - 30 30 30 10 10 10 0 0 0 0 0 0
60218 - 0 0 0 0 0 0 0 0 0 0 0 0
60219 - 0 0 0 0 0 0 0 0 0 0 0 0
60220 - 0 0 0 0 0 0 0 0 0 0 0 0
60221 - 0 0 0 0 0 0 0 0 0 0 0 0
60222 - 0 0 0 0 0 0 0 0 0 0 0 0
60223 - 0 0 0 0 0 0 0 0 0 0 0 0
60224 - 0 0 0 0 0 0 0 0 0 0 0 0
60225 - 0 0 0 0 0 0 0 0 0 0 0 0
60226 - 0 0 0 0 0 0 0 0 0 0 0 0
60227 - 0 0 0 0 0 0 10 10 10 26 26 26
60228 - 58 58 58 90 90 90 18 18 18 2 2 6
60229 - 2 2 6 110 110 110 253 253 253 253 253 253
60230 -253 253 253 253 253 253 253 253 253 253 253 253
60231 -250 250 250 253 253 253 253 253 253 253 253 253
60232 -253 253 253 253 253 253 253 253 253 253 253 253
60233 -253 253 253 253 253 253 253 253 253 253 253 253
60234 -253 253 253 231 231 231 18 18 18 2 2 6
60235 - 2 2 6 2 2 6 2 2 6 2 2 6
60236 - 2 2 6 2 2 6 18 18 18 94 94 94
60237 - 54 54 54 26 26 26 10 10 10 0 0 0
60238 - 0 0 0 0 0 0 0 0 0 0 0 0
60239 - 0 0 0 0 0 0 0 0 0 0 0 0
60240 - 0 0 0 0 0 0 0 0 0 0 0 0
60241 - 0 0 0 0 0 0 0 0 0 0 0 0
60242 - 0 0 0 0 0 0 0 0 0 0 0 0
60243 - 0 0 0 0 0 0 0 0 0 0 0 0
60244 - 0 0 0 0 0 0 0 0 0 0 0 0
60245 - 0 0 0 0 0 0 0 0 0 0 0 0
60246 - 0 0 0 0 0 0 0 0 0 0 0 0
60247 - 0 0 0 6 6 6 22 22 22 50 50 50
60248 - 90 90 90 26 26 26 2 2 6 2 2 6
60249 - 14 14 14 195 195 195 250 250 250 253 253 253
60250 -253 253 253 253 253 253 253 253 253 253 253 253
60251 -253 253 253 253 253 253 253 253 253 253 253 253
60252 -253 253 253 253 253 253 253 253 253 253 253 253
60253 -253 253 253 253 253 253 253 253 253 253 253 253
60254 -250 250 250 242 242 242 54 54 54 2 2 6
60255 - 2 2 6 2 2 6 2 2 6 2 2 6
60256 - 2 2 6 2 2 6 2 2 6 38 38 38
60257 - 86 86 86 50 50 50 22 22 22 6 6 6
60258 - 0 0 0 0 0 0 0 0 0 0 0 0
60259 - 0 0 0 0 0 0 0 0 0 0 0 0
60260 - 0 0 0 0 0 0 0 0 0 0 0 0
60261 - 0 0 0 0 0 0 0 0 0 0 0 0
60262 - 0 0 0 0 0 0 0 0 0 0 0 0
60263 - 0 0 0 0 0 0 0 0 0 0 0 0
60264 - 0 0 0 0 0 0 0 0 0 0 0 0
60265 - 0 0 0 0 0 0 0 0 0 0 0 0
60266 - 0 0 0 0 0 0 0 0 0 0 0 0
60267 - 6 6 6 14 14 14 38 38 38 82 82 82
60268 - 34 34 34 2 2 6 2 2 6 2 2 6
60269 - 42 42 42 195 195 195 246 246 246 253 253 253
60270 -253 253 253 253 253 253 253 253 253 250 250 250
60271 -242 242 242 242 242 242 250 250 250 253 253 253
60272 -253 253 253 253 253 253 253 253 253 253 253 253
60273 -253 253 253 250 250 250 246 246 246 238 238 238
60274 -226 226 226 231 231 231 101 101 101 6 6 6
60275 - 2 2 6 2 2 6 2 2 6 2 2 6
60276 - 2 2 6 2 2 6 2 2 6 2 2 6
60277 - 38 38 38 82 82 82 42 42 42 14 14 14
60278 - 6 6 6 0 0 0 0 0 0 0 0 0
60279 - 0 0 0 0 0 0 0 0 0 0 0 0
60280 - 0 0 0 0 0 0 0 0 0 0 0 0
60281 - 0 0 0 0 0 0 0 0 0 0 0 0
60282 - 0 0 0 0 0 0 0 0 0 0 0 0
60283 - 0 0 0 0 0 0 0 0 0 0 0 0
60284 - 0 0 0 0 0 0 0 0 0 0 0 0
60285 - 0 0 0 0 0 0 0 0 0 0 0 0
60286 - 0 0 0 0 0 0 0 0 0 0 0 0
60287 - 10 10 10 26 26 26 62 62 62 66 66 66
60288 - 2 2 6 2 2 6 2 2 6 6 6 6
60289 - 70 70 70 170 170 170 206 206 206 234 234 234
60290 -246 246 246 250 250 250 250 250 250 238 238 238
60291 -226 226 226 231 231 231 238 238 238 250 250 250
60292 -250 250 250 250 250 250 246 246 246 231 231 231
60293 -214 214 214 206 206 206 202 202 202 202 202 202
60294 -198 198 198 202 202 202 182 182 182 18 18 18
60295 - 2 2 6 2 2 6 2 2 6 2 2 6
60296 - 2 2 6 2 2 6 2 2 6 2 2 6
60297 - 2 2 6 62 62 62 66 66 66 30 30 30
60298 - 10 10 10 0 0 0 0 0 0 0 0 0
60299 - 0 0 0 0 0 0 0 0 0 0 0 0
60300 - 0 0 0 0 0 0 0 0 0 0 0 0
60301 - 0 0 0 0 0 0 0 0 0 0 0 0
60302 - 0 0 0 0 0 0 0 0 0 0 0 0
60303 - 0 0 0 0 0 0 0 0 0 0 0 0
60304 - 0 0 0 0 0 0 0 0 0 0 0 0
60305 - 0 0 0 0 0 0 0 0 0 0 0 0
60306 - 0 0 0 0 0 0 0 0 0 0 0 0
60307 - 14 14 14 42 42 42 82 82 82 18 18 18
60308 - 2 2 6 2 2 6 2 2 6 10 10 10
60309 - 94 94 94 182 182 182 218 218 218 242 242 242
60310 -250 250 250 253 253 253 253 253 253 250 250 250
60311 -234 234 234 253 253 253 253 253 253 253 253 253
60312 -253 253 253 253 253 253 253 253 253 246 246 246
60313 -238 238 238 226 226 226 210 210 210 202 202 202
60314 -195 195 195 195 195 195 210 210 210 158 158 158
60315 - 6 6 6 14 14 14 50 50 50 14 14 14
60316 - 2 2 6 2 2 6 2 2 6 2 2 6
60317 - 2 2 6 6 6 6 86 86 86 46 46 46
60318 - 18 18 18 6 6 6 0 0 0 0 0 0
60319 - 0 0 0 0 0 0 0 0 0 0 0 0
60320 - 0 0 0 0 0 0 0 0 0 0 0 0
60321 - 0 0 0 0 0 0 0 0 0 0 0 0
60322 - 0 0 0 0 0 0 0 0 0 0 0 0
60323 - 0 0 0 0 0 0 0 0 0 0 0 0
60324 - 0 0 0 0 0 0 0 0 0 0 0 0
60325 - 0 0 0 0 0 0 0 0 0 0 0 0
60326 - 0 0 0 0 0 0 0 0 0 6 6 6
60327 - 22 22 22 54 54 54 70 70 70 2 2 6
60328 - 2 2 6 10 10 10 2 2 6 22 22 22
60329 -166 166 166 231 231 231 250 250 250 253 253 253
60330 -253 253 253 253 253 253 253 253 253 250 250 250
60331 -242 242 242 253 253 253 253 253 253 253 253 253
60332 -253 253 253 253 253 253 253 253 253 253 253 253
60333 -253 253 253 253 253 253 253 253 253 246 246 246
60334 -231 231 231 206 206 206 198 198 198 226 226 226
60335 - 94 94 94 2 2 6 6 6 6 38 38 38
60336 - 30 30 30 2 2 6 2 2 6 2 2 6
60337 - 2 2 6 2 2 6 62 62 62 66 66 66
60338 - 26 26 26 10 10 10 0 0 0 0 0 0
60339 - 0 0 0 0 0 0 0 0 0 0 0 0
60340 - 0 0 0 0 0 0 0 0 0 0 0 0
60341 - 0 0 0 0 0 0 0 0 0 0 0 0
60342 - 0 0 0 0 0 0 0 0 0 0 0 0
60343 - 0 0 0 0 0 0 0 0 0 0 0 0
60344 - 0 0 0 0 0 0 0 0 0 0 0 0
60345 - 0 0 0 0 0 0 0 0 0 0 0 0
60346 - 0 0 0 0 0 0 0 0 0 10 10 10
60347 - 30 30 30 74 74 74 50 50 50 2 2 6
60348 - 26 26 26 26 26 26 2 2 6 106 106 106
60349 -238 238 238 253 253 253 253 253 253 253 253 253
60350 -253 253 253 253 253 253 253 253 253 253 253 253
60351 -253 253 253 253 253 253 253 253 253 253 253 253
60352 -253 253 253 253 253 253 253 253 253 253 253 253
60353 -253 253 253 253 253 253 253 253 253 253 253 253
60354 -253 253 253 246 246 246 218 218 218 202 202 202
60355 -210 210 210 14 14 14 2 2 6 2 2 6
60356 - 30 30 30 22 22 22 2 2 6 2 2 6
60357 - 2 2 6 2 2 6 18 18 18 86 86 86
60358 - 42 42 42 14 14 14 0 0 0 0 0 0
60359 - 0 0 0 0 0 0 0 0 0 0 0 0
60360 - 0 0 0 0 0 0 0 0 0 0 0 0
60361 - 0 0 0 0 0 0 0 0 0 0 0 0
60362 - 0 0 0 0 0 0 0 0 0 0 0 0
60363 - 0 0 0 0 0 0 0 0 0 0 0 0
60364 - 0 0 0 0 0 0 0 0 0 0 0 0
60365 - 0 0 0 0 0 0 0 0 0 0 0 0
60366 - 0 0 0 0 0 0 0 0 0 14 14 14
60367 - 42 42 42 90 90 90 22 22 22 2 2 6
60368 - 42 42 42 2 2 6 18 18 18 218 218 218
60369 -253 253 253 253 253 253 253 253 253 253 253 253
60370 -253 253 253 253 253 253 253 253 253 253 253 253
60371 -253 253 253 253 253 253 253 253 253 253 253 253
60372 -253 253 253 253 253 253 253 253 253 253 253 253
60373 -253 253 253 253 253 253 253 253 253 253 253 253
60374 -253 253 253 253 253 253 250 250 250 221 221 221
60375 -218 218 218 101 101 101 2 2 6 14 14 14
60376 - 18 18 18 38 38 38 10 10 10 2 2 6
60377 - 2 2 6 2 2 6 2 2 6 78 78 78
60378 - 58 58 58 22 22 22 6 6 6 0 0 0
60379 - 0 0 0 0 0 0 0 0 0 0 0 0
60380 - 0 0 0 0 0 0 0 0 0 0 0 0
60381 - 0 0 0 0 0 0 0 0 0 0 0 0
60382 - 0 0 0 0 0 0 0 0 0 0 0 0
60383 - 0 0 0 0 0 0 0 0 0 0 0 0
60384 - 0 0 0 0 0 0 0 0 0 0 0 0
60385 - 0 0 0 0 0 0 0 0 0 0 0 0
60386 - 0 0 0 0 0 0 6 6 6 18 18 18
60387 - 54 54 54 82 82 82 2 2 6 26 26 26
60388 - 22 22 22 2 2 6 123 123 123 253 253 253
60389 -253 253 253 253 253 253 253 253 253 253 253 253
60390 -253 253 253 253 253 253 253 253 253 253 253 253
60391 -253 253 253 253 253 253 253 253 253 253 253 253
60392 -253 253 253 253 253 253 253 253 253 253 253 253
60393 -253 253 253 253 253 253 253 253 253 253 253 253
60394 -253 253 253 253 253 253 253 253 253 250 250 250
60395 -238 238 238 198 198 198 6 6 6 38 38 38
60396 - 58 58 58 26 26 26 38 38 38 2 2 6
60397 - 2 2 6 2 2 6 2 2 6 46 46 46
60398 - 78 78 78 30 30 30 10 10 10 0 0 0
60399 - 0 0 0 0 0 0 0 0 0 0 0 0
60400 - 0 0 0 0 0 0 0 0 0 0 0 0
60401 - 0 0 0 0 0 0 0 0 0 0 0 0
60402 - 0 0 0 0 0 0 0 0 0 0 0 0
60403 - 0 0 0 0 0 0 0 0 0 0 0 0
60404 - 0 0 0 0 0 0 0 0 0 0 0 0
60405 - 0 0 0 0 0 0 0 0 0 0 0 0
60406 - 0 0 0 0 0 0 10 10 10 30 30 30
60407 - 74 74 74 58 58 58 2 2 6 42 42 42
60408 - 2 2 6 22 22 22 231 231 231 253 253 253
60409 -253 253 253 253 253 253 253 253 253 253 253 253
60410 -253 253 253 253 253 253 253 253 253 250 250 250
60411 -253 253 253 253 253 253 253 253 253 253 253 253
60412 -253 253 253 253 253 253 253 253 253 253 253 253
60413 -253 253 253 253 253 253 253 253 253 253 253 253
60414 -253 253 253 253 253 253 253 253 253 253 253 253
60415 -253 253 253 246 246 246 46 46 46 38 38 38
60416 - 42 42 42 14 14 14 38 38 38 14 14 14
60417 - 2 2 6 2 2 6 2 2 6 6 6 6
60418 - 86 86 86 46 46 46 14 14 14 0 0 0
60419 - 0 0 0 0 0 0 0 0 0 0 0 0
60420 - 0 0 0 0 0 0 0 0 0 0 0 0
60421 - 0 0 0 0 0 0 0 0 0 0 0 0
60422 - 0 0 0 0 0 0 0 0 0 0 0 0
60423 - 0 0 0 0 0 0 0 0 0 0 0 0
60424 - 0 0 0 0 0 0 0 0 0 0 0 0
60425 - 0 0 0 0 0 0 0 0 0 0 0 0
60426 - 0 0 0 6 6 6 14 14 14 42 42 42
60427 - 90 90 90 18 18 18 18 18 18 26 26 26
60428 - 2 2 6 116 116 116 253 253 253 253 253 253
60429 -253 253 253 253 253 253 253 253 253 253 253 253
60430 -253 253 253 253 253 253 250 250 250 238 238 238
60431 -253 253 253 253 253 253 253 253 253 253 253 253
60432 -253 253 253 253 253 253 253 253 253 253 253 253
60433 -253 253 253 253 253 253 253 253 253 253 253 253
60434 -253 253 253 253 253 253 253 253 253 253 253 253
60435 -253 253 253 253 253 253 94 94 94 6 6 6
60436 - 2 2 6 2 2 6 10 10 10 34 34 34
60437 - 2 2 6 2 2 6 2 2 6 2 2 6
60438 - 74 74 74 58 58 58 22 22 22 6 6 6
60439 - 0 0 0 0 0 0 0 0 0 0 0 0
60440 - 0 0 0 0 0 0 0 0 0 0 0 0
60441 - 0 0 0 0 0 0 0 0 0 0 0 0
60442 - 0 0 0 0 0 0 0 0 0 0 0 0
60443 - 0 0 0 0 0 0 0 0 0 0 0 0
60444 - 0 0 0 0 0 0 0 0 0 0 0 0
60445 - 0 0 0 0 0 0 0 0 0 0 0 0
60446 - 0 0 0 10 10 10 26 26 26 66 66 66
60447 - 82 82 82 2 2 6 38 38 38 6 6 6
60448 - 14 14 14 210 210 210 253 253 253 253 253 253
60449 -253 253 253 253 253 253 253 253 253 253 253 253
60450 -253 253 253 253 253 253 246 246 246 242 242 242
60451 -253 253 253 253 253 253 253 253 253 253 253 253
60452 -253 253 253 253 253 253 253 253 253 253 253 253
60453 -253 253 253 253 253 253 253 253 253 253 253 253
60454 -253 253 253 253 253 253 253 253 253 253 253 253
60455 -253 253 253 253 253 253 144 144 144 2 2 6
60456 - 2 2 6 2 2 6 2 2 6 46 46 46
60457 - 2 2 6 2 2 6 2 2 6 2 2 6
60458 - 42 42 42 74 74 74 30 30 30 10 10 10
60459 - 0 0 0 0 0 0 0 0 0 0 0 0
60460 - 0 0 0 0 0 0 0 0 0 0 0 0
60461 - 0 0 0 0 0 0 0 0 0 0 0 0
60462 - 0 0 0 0 0 0 0 0 0 0 0 0
60463 - 0 0 0 0 0 0 0 0 0 0 0 0
60464 - 0 0 0 0 0 0 0 0 0 0 0 0
60465 - 0 0 0 0 0 0 0 0 0 0 0 0
60466 - 6 6 6 14 14 14 42 42 42 90 90 90
60467 - 26 26 26 6 6 6 42 42 42 2 2 6
60468 - 74 74 74 250 250 250 253 253 253 253 253 253
60469 -253 253 253 253 253 253 253 253 253 253 253 253
60470 -253 253 253 253 253 253 242 242 242 242 242 242
60471 -253 253 253 253 253 253 253 253 253 253 253 253
60472 -253 253 253 253 253 253 253 253 253 253 253 253
60473 -253 253 253 253 253 253 253 253 253 253 253 253
60474 -253 253 253 253 253 253 253 253 253 253 253 253
60475 -253 253 253 253 253 253 182 182 182 2 2 6
60476 - 2 2 6 2 2 6 2 2 6 46 46 46
60477 - 2 2 6 2 2 6 2 2 6 2 2 6
60478 - 10 10 10 86 86 86 38 38 38 10 10 10
60479 - 0 0 0 0 0 0 0 0 0 0 0 0
60480 - 0 0 0 0 0 0 0 0 0 0 0 0
60481 - 0 0 0 0 0 0 0 0 0 0 0 0
60482 - 0 0 0 0 0 0 0 0 0 0 0 0
60483 - 0 0 0 0 0 0 0 0 0 0 0 0
60484 - 0 0 0 0 0 0 0 0 0 0 0 0
60485 - 0 0 0 0 0 0 0 0 0 0 0 0
60486 - 10 10 10 26 26 26 66 66 66 82 82 82
60487 - 2 2 6 22 22 22 18 18 18 2 2 6
60488 -149 149 149 253 253 253 253 253 253 253 253 253
60489 -253 253 253 253 253 253 253 253 253 253 253 253
60490 -253 253 253 253 253 253 234 234 234 242 242 242
60491 -253 253 253 253 253 253 253 253 253 253 253 253
60492 -253 253 253 253 253 253 253 253 253 253 253 253
60493 -253 253 253 253 253 253 253 253 253 253 253 253
60494 -253 253 253 253 253 253 253 253 253 253 253 253
60495 -253 253 253 253 253 253 206 206 206 2 2 6
60496 - 2 2 6 2 2 6 2 2 6 38 38 38
60497 - 2 2 6 2 2 6 2 2 6 2 2 6
60498 - 6 6 6 86 86 86 46 46 46 14 14 14
60499 - 0 0 0 0 0 0 0 0 0 0 0 0
60500 - 0 0 0 0 0 0 0 0 0 0 0 0
60501 - 0 0 0 0 0 0 0 0 0 0 0 0
60502 - 0 0 0 0 0 0 0 0 0 0 0 0
60503 - 0 0 0 0 0 0 0 0 0 0 0 0
60504 - 0 0 0 0 0 0 0 0 0 0 0 0
60505 - 0 0 0 0 0 0 0 0 0 6 6 6
60506 - 18 18 18 46 46 46 86 86 86 18 18 18
60507 - 2 2 6 34 34 34 10 10 10 6 6 6
60508 -210 210 210 253 253 253 253 253 253 253 253 253
60509 -253 253 253 253 253 253 253 253 253 253 253 253
60510 -253 253 253 253 253 253 234 234 234 242 242 242
60511 -253 253 253 253 253 253 253 253 253 253 253 253
60512 -253 253 253 253 253 253 253 253 253 253 253 253
60513 -253 253 253 253 253 253 253 253 253 253 253 253
60514 -253 253 253 253 253 253 253 253 253 253 253 253
60515 -253 253 253 253 253 253 221 221 221 6 6 6
60516 - 2 2 6 2 2 6 6 6 6 30 30 30
60517 - 2 2 6 2 2 6 2 2 6 2 2 6
60518 - 2 2 6 82 82 82 54 54 54 18 18 18
60519 - 6 6 6 0 0 0 0 0 0 0 0 0
60520 - 0 0 0 0 0 0 0 0 0 0 0 0
60521 - 0 0 0 0 0 0 0 0 0 0 0 0
60522 - 0 0 0 0 0 0 0 0 0 0 0 0
60523 - 0 0 0 0 0 0 0 0 0 0 0 0
60524 - 0 0 0 0 0 0 0 0 0 0 0 0
60525 - 0 0 0 0 0 0 0 0 0 10 10 10
60526 - 26 26 26 66 66 66 62 62 62 2 2 6
60527 - 2 2 6 38 38 38 10 10 10 26 26 26
60528 -238 238 238 253 253 253 253 253 253 253 253 253
60529 -253 253 253 253 253 253 253 253 253 253 253 253
60530 -253 253 253 253 253 253 231 231 231 238 238 238
60531 -253 253 253 253 253 253 253 253 253 253 253 253
60532 -253 253 253 253 253 253 253 253 253 253 253 253
60533 -253 253 253 253 253 253 253 253 253 253 253 253
60534 -253 253 253 253 253 253 253 253 253 253 253 253
60535 -253 253 253 253 253 253 231 231 231 6 6 6
60536 - 2 2 6 2 2 6 10 10 10 30 30 30
60537 - 2 2 6 2 2 6 2 2 6 2 2 6
60538 - 2 2 6 66 66 66 58 58 58 22 22 22
60539 - 6 6 6 0 0 0 0 0 0 0 0 0
60540 - 0 0 0 0 0 0 0 0 0 0 0 0
60541 - 0 0 0 0 0 0 0 0 0 0 0 0
60542 - 0 0 0 0 0 0 0 0 0 0 0 0
60543 - 0 0 0 0 0 0 0 0 0 0 0 0
60544 - 0 0 0 0 0 0 0 0 0 0 0 0
60545 - 0 0 0 0 0 0 0 0 0 10 10 10
60546 - 38 38 38 78 78 78 6 6 6 2 2 6
60547 - 2 2 6 46 46 46 14 14 14 42 42 42
60548 -246 246 246 253 253 253 253 253 253 253 253 253
60549 -253 253 253 253 253 253 253 253 253 253 253 253
60550 -253 253 253 253 253 253 231 231 231 242 242 242
60551 -253 253 253 253 253 253 253 253 253 253 253 253
60552 -253 253 253 253 253 253 253 253 253 253 253 253
60553 -253 253 253 253 253 253 253 253 253 253 253 253
60554 -253 253 253 253 253 253 253 253 253 253 253 253
60555 -253 253 253 253 253 253 234 234 234 10 10 10
60556 - 2 2 6 2 2 6 22 22 22 14 14 14
60557 - 2 2 6 2 2 6 2 2 6 2 2 6
60558 - 2 2 6 66 66 66 62 62 62 22 22 22
60559 - 6 6 6 0 0 0 0 0 0 0 0 0
60560 - 0 0 0 0 0 0 0 0 0 0 0 0
60561 - 0 0 0 0 0 0 0 0 0 0 0 0
60562 - 0 0 0 0 0 0 0 0 0 0 0 0
60563 - 0 0 0 0 0 0 0 0 0 0 0 0
60564 - 0 0 0 0 0 0 0 0 0 0 0 0
60565 - 0 0 0 0 0 0 6 6 6 18 18 18
60566 - 50 50 50 74 74 74 2 2 6 2 2 6
60567 - 14 14 14 70 70 70 34 34 34 62 62 62
60568 -250 250 250 253 253 253 253 253 253 253 253 253
60569 -253 253 253 253 253 253 253 253 253 253 253 253
60570 -253 253 253 253 253 253 231 231 231 246 246 246
60571 -253 253 253 253 253 253 253 253 253 253 253 253
60572 -253 253 253 253 253 253 253 253 253 253 253 253
60573 -253 253 253 253 253 253 253 253 253 253 253 253
60574 -253 253 253 253 253 253 253 253 253 253 253 253
60575 -253 253 253 253 253 253 234 234 234 14 14 14
60576 - 2 2 6 2 2 6 30 30 30 2 2 6
60577 - 2 2 6 2 2 6 2 2 6 2 2 6
60578 - 2 2 6 66 66 66 62 62 62 22 22 22
60579 - 6 6 6 0 0 0 0 0 0 0 0 0
60580 - 0 0 0 0 0 0 0 0 0 0 0 0
60581 - 0 0 0 0 0 0 0 0 0 0 0 0
60582 - 0 0 0 0 0 0 0 0 0 0 0 0
60583 - 0 0 0 0 0 0 0 0 0 0 0 0
60584 - 0 0 0 0 0 0 0 0 0 0 0 0
60585 - 0 0 0 0 0 0 6 6 6 18 18 18
60586 - 54 54 54 62 62 62 2 2 6 2 2 6
60587 - 2 2 6 30 30 30 46 46 46 70 70 70
60588 -250 250 250 253 253 253 253 253 253 253 253 253
60589 -253 253 253 253 253 253 253 253 253 253 253 253
60590 -253 253 253 253 253 253 231 231 231 246 246 246
60591 -253 253 253 253 253 253 253 253 253 253 253 253
60592 -253 253 253 253 253 253 253 253 253 253 253 253
60593 -253 253 253 253 253 253 253 253 253 253 253 253
60594 -253 253 253 253 253 253 253 253 253 253 253 253
60595 -253 253 253 253 253 253 226 226 226 10 10 10
60596 - 2 2 6 6 6 6 30 30 30 2 2 6
60597 - 2 2 6 2 2 6 2 2 6 2 2 6
60598 - 2 2 6 66 66 66 58 58 58 22 22 22
60599 - 6 6 6 0 0 0 0 0 0 0 0 0
60600 - 0 0 0 0 0 0 0 0 0 0 0 0
60601 - 0 0 0 0 0 0 0 0 0 0 0 0
60602 - 0 0 0 0 0 0 0 0 0 0 0 0
60603 - 0 0 0 0 0 0 0 0 0 0 0 0
60604 - 0 0 0 0 0 0 0 0 0 0 0 0
60605 - 0 0 0 0 0 0 6 6 6 22 22 22
60606 - 58 58 58 62 62 62 2 2 6 2 2 6
60607 - 2 2 6 2 2 6 30 30 30 78 78 78
60608 -250 250 250 253 253 253 253 253 253 253 253 253
60609 -253 253 253 253 253 253 253 253 253 253 253 253
60610 -253 253 253 253 253 253 231 231 231 246 246 246
60611 -253 253 253 253 253 253 253 253 253 253 253 253
60612 -253 253 253 253 253 253 253 253 253 253 253 253
60613 -253 253 253 253 253 253 253 253 253 253 253 253
60614 -253 253 253 253 253 253 253 253 253 253 253 253
60615 -253 253 253 253 253 253 206 206 206 2 2 6
60616 - 22 22 22 34 34 34 18 14 6 22 22 22
60617 - 26 26 26 18 18 18 6 6 6 2 2 6
60618 - 2 2 6 82 82 82 54 54 54 18 18 18
60619 - 6 6 6 0 0 0 0 0 0 0 0 0
60620 - 0 0 0 0 0 0 0 0 0 0 0 0
60621 - 0 0 0 0 0 0 0 0 0 0 0 0
60622 - 0 0 0 0 0 0 0 0 0 0 0 0
60623 - 0 0 0 0 0 0 0 0 0 0 0 0
60624 - 0 0 0 0 0 0 0 0 0 0 0 0
60625 - 0 0 0 0 0 0 6 6 6 26 26 26
60626 - 62 62 62 106 106 106 74 54 14 185 133 11
60627 -210 162 10 121 92 8 6 6 6 62 62 62
60628 -238 238 238 253 253 253 253 253 253 253 253 253
60629 -253 253 253 253 253 253 253 253 253 253 253 253
60630 -253 253 253 253 253 253 231 231 231 246 246 246
60631 -253 253 253 253 253 253 253 253 253 253 253 253
60632 -253 253 253 253 253 253 253 253 253 253 253 253
60633 -253 253 253 253 253 253 253 253 253 253 253 253
60634 -253 253 253 253 253 253 253 253 253 253 253 253
60635 -253 253 253 253 253 253 158 158 158 18 18 18
60636 - 14 14 14 2 2 6 2 2 6 2 2 6
60637 - 6 6 6 18 18 18 66 66 66 38 38 38
60638 - 6 6 6 94 94 94 50 50 50 18 18 18
60639 - 6 6 6 0 0 0 0 0 0 0 0 0
60640 - 0 0 0 0 0 0 0 0 0 0 0 0
60641 - 0 0 0 0 0 0 0 0 0 0 0 0
60642 - 0 0 0 0 0 0 0 0 0 0 0 0
60643 - 0 0 0 0 0 0 0 0 0 0 0 0
60644 - 0 0 0 0 0 0 0 0 0 6 6 6
60645 - 10 10 10 10 10 10 18 18 18 38 38 38
60646 - 78 78 78 142 134 106 216 158 10 242 186 14
60647 -246 190 14 246 190 14 156 118 10 10 10 10
60648 - 90 90 90 238 238 238 253 253 253 253 253 253
60649 -253 253 253 253 253 253 253 253 253 253 253 253
60650 -253 253 253 253 253 253 231 231 231 250 250 250
60651 -253 253 253 253 253 253 253 253 253 253 253 253
60652 -253 253 253 253 253 253 253 253 253 253 253 253
60653 -253 253 253 253 253 253 253 253 253 253 253 253
60654 -253 253 253 253 253 253 253 253 253 246 230 190
60655 -238 204 91 238 204 91 181 142 44 37 26 9
60656 - 2 2 6 2 2 6 2 2 6 2 2 6
60657 - 2 2 6 2 2 6 38 38 38 46 46 46
60658 - 26 26 26 106 106 106 54 54 54 18 18 18
60659 - 6 6 6 0 0 0 0 0 0 0 0 0
60660 - 0 0 0 0 0 0 0 0 0 0 0 0
60661 - 0 0 0 0 0 0 0 0 0 0 0 0
60662 - 0 0 0 0 0 0 0 0 0 0 0 0
60663 - 0 0 0 0 0 0 0 0 0 0 0 0
60664 - 0 0 0 6 6 6 14 14 14 22 22 22
60665 - 30 30 30 38 38 38 50 50 50 70 70 70
60666 -106 106 106 190 142 34 226 170 11 242 186 14
60667 -246 190 14 246 190 14 246 190 14 154 114 10
60668 - 6 6 6 74 74 74 226 226 226 253 253 253
60669 -253 253 253 253 253 253 253 253 253 253 253 253
60670 -253 253 253 253 253 253 231 231 231 250 250 250
60671 -253 253 253 253 253 253 253 253 253 253 253 253
60672 -253 253 253 253 253 253 253 253 253 253 253 253
60673 -253 253 253 253 253 253 253 253 253 253 253 253
60674 -253 253 253 253 253 253 253 253 253 228 184 62
60675 -241 196 14 241 208 19 232 195 16 38 30 10
60676 - 2 2 6 2 2 6 2 2 6 2 2 6
60677 - 2 2 6 6 6 6 30 30 30 26 26 26
60678 -203 166 17 154 142 90 66 66 66 26 26 26
60679 - 6 6 6 0 0 0 0 0 0 0 0 0
60680 - 0 0 0 0 0 0 0 0 0 0 0 0
60681 - 0 0 0 0 0 0 0 0 0 0 0 0
60682 - 0 0 0 0 0 0 0 0 0 0 0 0
60683 - 0 0 0 0 0 0 0 0 0 0 0 0
60684 - 6 6 6 18 18 18 38 38 38 58 58 58
60685 - 78 78 78 86 86 86 101 101 101 123 123 123
60686 -175 146 61 210 150 10 234 174 13 246 186 14
60687 -246 190 14 246 190 14 246 190 14 238 190 10
60688 -102 78 10 2 2 6 46 46 46 198 198 198
60689 -253 253 253 253 253 253 253 253 253 253 253 253
60690 -253 253 253 253 253 253 234 234 234 242 242 242
60691 -253 253 253 253 253 253 253 253 253 253 253 253
60692 -253 253 253 253 253 253 253 253 253 253 253 253
60693 -253 253 253 253 253 253 253 253 253 253 253 253
60694 -253 253 253 253 253 253 253 253 253 224 178 62
60695 -242 186 14 241 196 14 210 166 10 22 18 6
60696 - 2 2 6 2 2 6 2 2 6 2 2 6
60697 - 2 2 6 2 2 6 6 6 6 121 92 8
60698 -238 202 15 232 195 16 82 82 82 34 34 34
60699 - 10 10 10 0 0 0 0 0 0 0 0 0
60700 - 0 0 0 0 0 0 0 0 0 0 0 0
60701 - 0 0 0 0 0 0 0 0 0 0 0 0
60702 - 0 0 0 0 0 0 0 0 0 0 0 0
60703 - 0 0 0 0 0 0 0 0 0 0 0 0
60704 - 14 14 14 38 38 38 70 70 70 154 122 46
60705 -190 142 34 200 144 11 197 138 11 197 138 11
60706 -213 154 11 226 170 11 242 186 14 246 190 14
60707 -246 190 14 246 190 14 246 190 14 246 190 14
60708 -225 175 15 46 32 6 2 2 6 22 22 22
60709 -158 158 158 250 250 250 253 253 253 253 253 253
60710 -253 253 253 253 253 253 253 253 253 253 253 253
60711 -253 253 253 253 253 253 253 253 253 253 253 253
60712 -253 253 253 253 253 253 253 253 253 253 253 253
60713 -253 253 253 253 253 253 253 253 253 253 253 253
60714 -253 253 253 250 250 250 242 242 242 224 178 62
60715 -239 182 13 236 186 11 213 154 11 46 32 6
60716 - 2 2 6 2 2 6 2 2 6 2 2 6
60717 - 2 2 6 2 2 6 61 42 6 225 175 15
60718 -238 190 10 236 186 11 112 100 78 42 42 42
60719 - 14 14 14 0 0 0 0 0 0 0 0 0
60720 - 0 0 0 0 0 0 0 0 0 0 0 0
60721 - 0 0 0 0 0 0 0 0 0 0 0 0
60722 - 0 0 0 0 0 0 0 0 0 0 0 0
60723 - 0 0 0 0 0 0 0 0 0 6 6 6
60724 - 22 22 22 54 54 54 154 122 46 213 154 11
60725 -226 170 11 230 174 11 226 170 11 226 170 11
60726 -236 178 12 242 186 14 246 190 14 246 190 14
60727 -246 190 14 246 190 14 246 190 14 246 190 14
60728 -241 196 14 184 144 12 10 10 10 2 2 6
60729 - 6 6 6 116 116 116 242 242 242 253 253 253
60730 -253 253 253 253 253 253 253 253 253 253 253 253
60731 -253 253 253 253 253 253 253 253 253 253 253 253
60732 -253 253 253 253 253 253 253 253 253 253 253 253
60733 -253 253 253 253 253 253 253 253 253 253 253 253
60734 -253 253 253 231 231 231 198 198 198 214 170 54
60735 -236 178 12 236 178 12 210 150 10 137 92 6
60736 - 18 14 6 2 2 6 2 2 6 2 2 6
60737 - 6 6 6 70 47 6 200 144 11 236 178 12
60738 -239 182 13 239 182 13 124 112 88 58 58 58
60739 - 22 22 22 6 6 6 0 0 0 0 0 0
60740 - 0 0 0 0 0 0 0 0 0 0 0 0
60741 - 0 0 0 0 0 0 0 0 0 0 0 0
60742 - 0 0 0 0 0 0 0 0 0 0 0 0
60743 - 0 0 0 0 0 0 0 0 0 10 10 10
60744 - 30 30 30 70 70 70 180 133 36 226 170 11
60745 -239 182 13 242 186 14 242 186 14 246 186 14
60746 -246 190 14 246 190 14 246 190 14 246 190 14
60747 -246 190 14 246 190 14 246 190 14 246 190 14
60748 -246 190 14 232 195 16 98 70 6 2 2 6
60749 - 2 2 6 2 2 6 66 66 66 221 221 221
60750 -253 253 253 253 253 253 253 253 253 253 253 253
60751 -253 253 253 253 253 253 253 253 253 253 253 253
60752 -253 253 253 253 253 253 253 253 253 253 253 253
60753 -253 253 253 253 253 253 253 253 253 253 253 253
60754 -253 253 253 206 206 206 198 198 198 214 166 58
60755 -230 174 11 230 174 11 216 158 10 192 133 9
60756 -163 110 8 116 81 8 102 78 10 116 81 8
60757 -167 114 7 197 138 11 226 170 11 239 182 13
60758 -242 186 14 242 186 14 162 146 94 78 78 78
60759 - 34 34 34 14 14 14 6 6 6 0 0 0
60760 - 0 0 0 0 0 0 0 0 0 0 0 0
60761 - 0 0 0 0 0 0 0 0 0 0 0 0
60762 - 0 0 0 0 0 0 0 0 0 0 0 0
60763 - 0 0 0 0 0 0 0 0 0 6 6 6
60764 - 30 30 30 78 78 78 190 142 34 226 170 11
60765 -239 182 13 246 190 14 246 190 14 246 190 14
60766 -246 190 14 246 190 14 246 190 14 246 190 14
60767 -246 190 14 246 190 14 246 190 14 246 190 14
60768 -246 190 14 241 196 14 203 166 17 22 18 6
60769 - 2 2 6 2 2 6 2 2 6 38 38 38
60770 -218 218 218 253 253 253 253 253 253 253 253 253
60771 -253 253 253 253 253 253 253 253 253 253 253 253
60772 -253 253 253 253 253 253 253 253 253 253 253 253
60773 -253 253 253 253 253 253 253 253 253 253 253 253
60774 -250 250 250 206 206 206 198 198 198 202 162 69
60775 -226 170 11 236 178 12 224 166 10 210 150 10
60776 -200 144 11 197 138 11 192 133 9 197 138 11
60777 -210 150 10 226 170 11 242 186 14 246 190 14
60778 -246 190 14 246 186 14 225 175 15 124 112 88
60779 - 62 62 62 30 30 30 14 14 14 6 6 6
60780 - 0 0 0 0 0 0 0 0 0 0 0 0
60781 - 0 0 0 0 0 0 0 0 0 0 0 0
60782 - 0 0 0 0 0 0 0 0 0 0 0 0
60783 - 0 0 0 0 0 0 0 0 0 10 10 10
60784 - 30 30 30 78 78 78 174 135 50 224 166 10
60785 -239 182 13 246 190 14 246 190 14 246 190 14
60786 -246 190 14 246 190 14 246 190 14 246 190 14
60787 -246 190 14 246 190 14 246 190 14 246 190 14
60788 -246 190 14 246 190 14 241 196 14 139 102 15
60789 - 2 2 6 2 2 6 2 2 6 2 2 6
60790 - 78 78 78 250 250 250 253 253 253 253 253 253
60791 -253 253 253 253 253 253 253 253 253 253 253 253
60792 -253 253 253 253 253 253 253 253 253 253 253 253
60793 -253 253 253 253 253 253 253 253 253 253 253 253
60794 -250 250 250 214 214 214 198 198 198 190 150 46
60795 -219 162 10 236 178 12 234 174 13 224 166 10
60796 -216 158 10 213 154 11 213 154 11 216 158 10
60797 -226 170 11 239 182 13 246 190 14 246 190 14
60798 -246 190 14 246 190 14 242 186 14 206 162 42
60799 -101 101 101 58 58 58 30 30 30 14 14 14
60800 - 6 6 6 0 0 0 0 0 0 0 0 0
60801 - 0 0 0 0 0 0 0 0 0 0 0 0
60802 - 0 0 0 0 0 0 0 0 0 0 0 0
60803 - 0 0 0 0 0 0 0 0 0 10 10 10
60804 - 30 30 30 74 74 74 174 135 50 216 158 10
60805 -236 178 12 246 190 14 246 190 14 246 190 14
60806 -246 190 14 246 190 14 246 190 14 246 190 14
60807 -246 190 14 246 190 14 246 190 14 246 190 14
60808 -246 190 14 246 190 14 241 196 14 226 184 13
60809 - 61 42 6 2 2 6 2 2 6 2 2 6
60810 - 22 22 22 238 238 238 253 253 253 253 253 253
60811 -253 253 253 253 253 253 253 253 253 253 253 253
60812 -253 253 253 253 253 253 253 253 253 253 253 253
60813 -253 253 253 253 253 253 253 253 253 253 253 253
60814 -253 253 253 226 226 226 187 187 187 180 133 36
60815 -216 158 10 236 178 12 239 182 13 236 178 12
60816 -230 174 11 226 170 11 226 170 11 230 174 11
60817 -236 178 12 242 186 14 246 190 14 246 190 14
60818 -246 190 14 246 190 14 246 186 14 239 182 13
60819 -206 162 42 106 106 106 66 66 66 34 34 34
60820 - 14 14 14 6 6 6 0 0 0 0 0 0
60821 - 0 0 0 0 0 0 0 0 0 0 0 0
60822 - 0 0 0 0 0 0 0 0 0 0 0 0
60823 - 0 0 0 0 0 0 0 0 0 6 6 6
60824 - 26 26 26 70 70 70 163 133 67 213 154 11
60825 -236 178 12 246 190 14 246 190 14 246 190 14
60826 -246 190 14 246 190 14 246 190 14 246 190 14
60827 -246 190 14 246 190 14 246 190 14 246 190 14
60828 -246 190 14 246 190 14 246 190 14 241 196 14
60829 -190 146 13 18 14 6 2 2 6 2 2 6
60830 - 46 46 46 246 246 246 253 253 253 253 253 253
60831 -253 253 253 253 253 253 253 253 253 253 253 253
60832 -253 253 253 253 253 253 253 253 253 253 253 253
60833 -253 253 253 253 253 253 253 253 253 253 253 253
60834 -253 253 253 221 221 221 86 86 86 156 107 11
60835 -216 158 10 236 178 12 242 186 14 246 186 14
60836 -242 186 14 239 182 13 239 182 13 242 186 14
60837 -242 186 14 246 186 14 246 190 14 246 190 14
60838 -246 190 14 246 190 14 246 190 14 246 190 14
60839 -242 186 14 225 175 15 142 122 72 66 66 66
60840 - 30 30 30 10 10 10 0 0 0 0 0 0
60841 - 0 0 0 0 0 0 0 0 0 0 0 0
60842 - 0 0 0 0 0 0 0 0 0 0 0 0
60843 - 0 0 0 0 0 0 0 0 0 6 6 6
60844 - 26 26 26 70 70 70 163 133 67 210 150 10
60845 -236 178 12 246 190 14 246 190 14 246 190 14
60846 -246 190 14 246 190 14 246 190 14 246 190 14
60847 -246 190 14 246 190 14 246 190 14 246 190 14
60848 -246 190 14 246 190 14 246 190 14 246 190 14
60849 -232 195 16 121 92 8 34 34 34 106 106 106
60850 -221 221 221 253 253 253 253 253 253 253 253 253
60851 -253 253 253 253 253 253 253 253 253 253 253 253
60852 -253 253 253 253 253 253 253 253 253 253 253 253
60853 -253 253 253 253 253 253 253 253 253 253 253 253
60854 -242 242 242 82 82 82 18 14 6 163 110 8
60855 -216 158 10 236 178 12 242 186 14 246 190 14
60856 -246 190 14 246 190 14 246 190 14 246 190 14
60857 -246 190 14 246 190 14 246 190 14 246 190 14
60858 -246 190 14 246 190 14 246 190 14 246 190 14
60859 -246 190 14 246 190 14 242 186 14 163 133 67
60860 - 46 46 46 18 18 18 6 6 6 0 0 0
60861 - 0 0 0 0 0 0 0 0 0 0 0 0
60862 - 0 0 0 0 0 0 0 0 0 0 0 0
60863 - 0 0 0 0 0 0 0 0 0 10 10 10
60864 - 30 30 30 78 78 78 163 133 67 210 150 10
60865 -236 178 12 246 186 14 246 190 14 246 190 14
60866 -246 190 14 246 190 14 246 190 14 246 190 14
60867 -246 190 14 246 190 14 246 190 14 246 190 14
60868 -246 190 14 246 190 14 246 190 14 246 190 14
60869 -241 196 14 215 174 15 190 178 144 253 253 253
60870 -253 253 253 253 253 253 253 253 253 253 253 253
60871 -253 253 253 253 253 253 253 253 253 253 253 253
60872 -253 253 253 253 253 253 253 253 253 253 253 253
60873 -253 253 253 253 253 253 253 253 253 218 218 218
60874 - 58 58 58 2 2 6 22 18 6 167 114 7
60875 -216 158 10 236 178 12 246 186 14 246 190 14
60876 -246 190 14 246 190 14 246 190 14 246 190 14
60877 -246 190 14 246 190 14 246 190 14 246 190 14
60878 -246 190 14 246 190 14 246 190 14 246 190 14
60879 -246 190 14 246 186 14 242 186 14 190 150 46
60880 - 54 54 54 22 22 22 6 6 6 0 0 0
60881 - 0 0 0 0 0 0 0 0 0 0 0 0
60882 - 0 0 0 0 0 0 0 0 0 0 0 0
60883 - 0 0 0 0 0 0 0 0 0 14 14 14
60884 - 38 38 38 86 86 86 180 133 36 213 154 11
60885 -236 178 12 246 186 14 246 190 14 246 190 14
60886 -246 190 14 246 190 14 246 190 14 246 190 14
60887 -246 190 14 246 190 14 246 190 14 246 190 14
60888 -246 190 14 246 190 14 246 190 14 246 190 14
60889 -246 190 14 232 195 16 190 146 13 214 214 214
60890 -253 253 253 253 253 253 253 253 253 253 253 253
60891 -253 253 253 253 253 253 253 253 253 253 253 253
60892 -253 253 253 253 253 253 253 253 253 253 253 253
60893 -253 253 253 250 250 250 170 170 170 26 26 26
60894 - 2 2 6 2 2 6 37 26 9 163 110 8
60895 -219 162 10 239 182 13 246 186 14 246 190 14
60896 -246 190 14 246 190 14 246 190 14 246 190 14
60897 -246 190 14 246 190 14 246 190 14 246 190 14
60898 -246 190 14 246 190 14 246 190 14 246 190 14
60899 -246 186 14 236 178 12 224 166 10 142 122 72
60900 - 46 46 46 18 18 18 6 6 6 0 0 0
60901 - 0 0 0 0 0 0 0 0 0 0 0 0
60902 - 0 0 0 0 0 0 0 0 0 0 0 0
60903 - 0 0 0 0 0 0 6 6 6 18 18 18
60904 - 50 50 50 109 106 95 192 133 9 224 166 10
60905 -242 186 14 246 190 14 246 190 14 246 190 14
60906 -246 190 14 246 190 14 246 190 14 246 190 14
60907 -246 190 14 246 190 14 246 190 14 246 190 14
60908 -246 190 14 246 190 14 246 190 14 246 190 14
60909 -242 186 14 226 184 13 210 162 10 142 110 46
60910 -226 226 226 253 253 253 253 253 253 253 253 253
60911 -253 253 253 253 253 253 253 253 253 253 253 253
60912 -253 253 253 253 253 253 253 253 253 253 253 253
60913 -198 198 198 66 66 66 2 2 6 2 2 6
60914 - 2 2 6 2 2 6 50 34 6 156 107 11
60915 -219 162 10 239 182 13 246 186 14 246 190 14
60916 -246 190 14 246 190 14 246 190 14 246 190 14
60917 -246 190 14 246 190 14 246 190 14 246 190 14
60918 -246 190 14 246 190 14 246 190 14 242 186 14
60919 -234 174 13 213 154 11 154 122 46 66 66 66
60920 - 30 30 30 10 10 10 0 0 0 0 0 0
60921 - 0 0 0 0 0 0 0 0 0 0 0 0
60922 - 0 0 0 0 0 0 0 0 0 0 0 0
60923 - 0 0 0 0 0 0 6 6 6 22 22 22
60924 - 58 58 58 154 121 60 206 145 10 234 174 13
60925 -242 186 14 246 186 14 246 190 14 246 190 14
60926 -246 190 14 246 190 14 246 190 14 246 190 14
60927 -246 190 14 246 190 14 246 190 14 246 190 14
60928 -246 190 14 246 190 14 246 190 14 246 190 14
60929 -246 186 14 236 178 12 210 162 10 163 110 8
60930 - 61 42 6 138 138 138 218 218 218 250 250 250
60931 -253 253 253 253 253 253 253 253 253 250 250 250
60932 -242 242 242 210 210 210 144 144 144 66 66 66
60933 - 6 6 6 2 2 6 2 2 6 2 2 6
60934 - 2 2 6 2 2 6 61 42 6 163 110 8
60935 -216 158 10 236 178 12 246 190 14 246 190 14
60936 -246 190 14 246 190 14 246 190 14 246 190 14
60937 -246 190 14 246 190 14 246 190 14 246 190 14
60938 -246 190 14 239 182 13 230 174 11 216 158 10
60939 -190 142 34 124 112 88 70 70 70 38 38 38
60940 - 18 18 18 6 6 6 0 0 0 0 0 0
60941 - 0 0 0 0 0 0 0 0 0 0 0 0
60942 - 0 0 0 0 0 0 0 0 0 0 0 0
60943 - 0 0 0 0 0 0 6 6 6 22 22 22
60944 - 62 62 62 168 124 44 206 145 10 224 166 10
60945 -236 178 12 239 182 13 242 186 14 242 186 14
60946 -246 186 14 246 190 14 246 190 14 246 190 14
60947 -246 190 14 246 190 14 246 190 14 246 190 14
60948 -246 190 14 246 190 14 246 190 14 246 190 14
60949 -246 190 14 236 178 12 216 158 10 175 118 6
60950 - 80 54 7 2 2 6 6 6 6 30 30 30
60951 - 54 54 54 62 62 62 50 50 50 38 38 38
60952 - 14 14 14 2 2 6 2 2 6 2 2 6
60953 - 2 2 6 2 2 6 2 2 6 2 2 6
60954 - 2 2 6 6 6 6 80 54 7 167 114 7
60955 -213 154 11 236 178 12 246 190 14 246 190 14
60956 -246 190 14 246 190 14 246 190 14 246 190 14
60957 -246 190 14 242 186 14 239 182 13 239 182 13
60958 -230 174 11 210 150 10 174 135 50 124 112 88
60959 - 82 82 82 54 54 54 34 34 34 18 18 18
60960 - 6 6 6 0 0 0 0 0 0 0 0 0
60961 - 0 0 0 0 0 0 0 0 0 0 0 0
60962 - 0 0 0 0 0 0 0 0 0 0 0 0
60963 - 0 0 0 0 0 0 6 6 6 18 18 18
60964 - 50 50 50 158 118 36 192 133 9 200 144 11
60965 -216 158 10 219 162 10 224 166 10 226 170 11
60966 -230 174 11 236 178 12 239 182 13 239 182 13
60967 -242 186 14 246 186 14 246 190 14 246 190 14
60968 -246 190 14 246 190 14 246 190 14 246 190 14
60969 -246 186 14 230 174 11 210 150 10 163 110 8
60970 -104 69 6 10 10 10 2 2 6 2 2 6
60971 - 2 2 6 2 2 6 2 2 6 2 2 6
60972 - 2 2 6 2 2 6 2 2 6 2 2 6
60973 - 2 2 6 2 2 6 2 2 6 2 2 6
60974 - 2 2 6 6 6 6 91 60 6 167 114 7
60975 -206 145 10 230 174 11 242 186 14 246 190 14
60976 -246 190 14 246 190 14 246 186 14 242 186 14
60977 -239 182 13 230 174 11 224 166 10 213 154 11
60978 -180 133 36 124 112 88 86 86 86 58 58 58
60979 - 38 38 38 22 22 22 10 10 10 6 6 6
60980 - 0 0 0 0 0 0 0 0 0 0 0 0
60981 - 0 0 0 0 0 0 0 0 0 0 0 0
60982 - 0 0 0 0 0 0 0 0 0 0 0 0
60983 - 0 0 0 0 0 0 0 0 0 14 14 14
60984 - 34 34 34 70 70 70 138 110 50 158 118 36
60985 -167 114 7 180 123 7 192 133 9 197 138 11
60986 -200 144 11 206 145 10 213 154 11 219 162 10
60987 -224 166 10 230 174 11 239 182 13 242 186 14
60988 -246 186 14 246 186 14 246 186 14 246 186 14
60989 -239 182 13 216 158 10 185 133 11 152 99 6
60990 -104 69 6 18 14 6 2 2 6 2 2 6
60991 - 2 2 6 2 2 6 2 2 6 2 2 6
60992 - 2 2 6 2 2 6 2 2 6 2 2 6
60993 - 2 2 6 2 2 6 2 2 6 2 2 6
60994 - 2 2 6 6 6 6 80 54 7 152 99 6
60995 -192 133 9 219 162 10 236 178 12 239 182 13
60996 -246 186 14 242 186 14 239 182 13 236 178 12
60997 -224 166 10 206 145 10 192 133 9 154 121 60
60998 - 94 94 94 62 62 62 42 42 42 22 22 22
60999 - 14 14 14 6 6 6 0 0 0 0 0 0
61000 - 0 0 0 0 0 0 0 0 0 0 0 0
61001 - 0 0 0 0 0 0 0 0 0 0 0 0
61002 - 0 0 0 0 0 0 0 0 0 0 0 0
61003 - 0 0 0 0 0 0 0 0 0 6 6 6
61004 - 18 18 18 34 34 34 58 58 58 78 78 78
61005 -101 98 89 124 112 88 142 110 46 156 107 11
61006 -163 110 8 167 114 7 175 118 6 180 123 7
61007 -185 133 11 197 138 11 210 150 10 219 162 10
61008 -226 170 11 236 178 12 236 178 12 234 174 13
61009 -219 162 10 197 138 11 163 110 8 130 83 6
61010 - 91 60 6 10 10 10 2 2 6 2 2 6
61011 - 18 18 18 38 38 38 38 38 38 38 38 38
61012 - 38 38 38 38 38 38 38 38 38 38 38 38
61013 - 38 38 38 38 38 38 26 26 26 2 2 6
61014 - 2 2 6 6 6 6 70 47 6 137 92 6
61015 -175 118 6 200 144 11 219 162 10 230 174 11
61016 -234 174 13 230 174 11 219 162 10 210 150 10
61017 -192 133 9 163 110 8 124 112 88 82 82 82
61018 - 50 50 50 30 30 30 14 14 14 6 6 6
61019 - 0 0 0 0 0 0 0 0 0 0 0 0
61020 - 0 0 0 0 0 0 0 0 0 0 0 0
61021 - 0 0 0 0 0 0 0 0 0 0 0 0
61022 - 0 0 0 0 0 0 0 0 0 0 0 0
61023 - 0 0 0 0 0 0 0 0 0 0 0 0
61024 - 6 6 6 14 14 14 22 22 22 34 34 34
61025 - 42 42 42 58 58 58 74 74 74 86 86 86
61026 -101 98 89 122 102 70 130 98 46 121 87 25
61027 -137 92 6 152 99 6 163 110 8 180 123 7
61028 -185 133 11 197 138 11 206 145 10 200 144 11
61029 -180 123 7 156 107 11 130 83 6 104 69 6
61030 - 50 34 6 54 54 54 110 110 110 101 98 89
61031 - 86 86 86 82 82 82 78 78 78 78 78 78
61032 - 78 78 78 78 78 78 78 78 78 78 78 78
61033 - 78 78 78 82 82 82 86 86 86 94 94 94
61034 -106 106 106 101 101 101 86 66 34 124 80 6
61035 -156 107 11 180 123 7 192 133 9 200 144 11
61036 -206 145 10 200 144 11 192 133 9 175 118 6
61037 -139 102 15 109 106 95 70 70 70 42 42 42
61038 - 22 22 22 10 10 10 0 0 0 0 0 0
61039 - 0 0 0 0 0 0 0 0 0 0 0 0
61040 - 0 0 0 0 0 0 0 0 0 0 0 0
61041 - 0 0 0 0 0 0 0 0 0 0 0 0
61042 - 0 0 0 0 0 0 0 0 0 0 0 0
61043 - 0 0 0 0 0 0 0 0 0 0 0 0
61044 - 0 0 0 0 0 0 6 6 6 10 10 10
61045 - 14 14 14 22 22 22 30 30 30 38 38 38
61046 - 50 50 50 62 62 62 74 74 74 90 90 90
61047 -101 98 89 112 100 78 121 87 25 124 80 6
61048 -137 92 6 152 99 6 152 99 6 152 99 6
61049 -138 86 6 124 80 6 98 70 6 86 66 30
61050 -101 98 89 82 82 82 58 58 58 46 46 46
61051 - 38 38 38 34 34 34 34 34 34 34 34 34
61052 - 34 34 34 34 34 34 34 34 34 34 34 34
61053 - 34 34 34 34 34 34 38 38 38 42 42 42
61054 - 54 54 54 82 82 82 94 86 76 91 60 6
61055 -134 86 6 156 107 11 167 114 7 175 118 6
61056 -175 118 6 167 114 7 152 99 6 121 87 25
61057 -101 98 89 62 62 62 34 34 34 18 18 18
61058 - 6 6 6 0 0 0 0 0 0 0 0 0
61059 - 0 0 0 0 0 0 0 0 0 0 0 0
61060 - 0 0 0 0 0 0 0 0 0 0 0 0
61061 - 0 0 0 0 0 0 0 0 0 0 0 0
61062 - 0 0 0 0 0 0 0 0 0 0 0 0
61063 - 0 0 0 0 0 0 0 0 0 0 0 0
61064 - 0 0 0 0 0 0 0 0 0 0 0 0
61065 - 0 0 0 6 6 6 6 6 6 10 10 10
61066 - 18 18 18 22 22 22 30 30 30 42 42 42
61067 - 50 50 50 66 66 66 86 86 86 101 98 89
61068 -106 86 58 98 70 6 104 69 6 104 69 6
61069 -104 69 6 91 60 6 82 62 34 90 90 90
61070 - 62 62 62 38 38 38 22 22 22 14 14 14
61071 - 10 10 10 10 10 10 10 10 10 10 10 10
61072 - 10 10 10 10 10 10 6 6 6 10 10 10
61073 - 10 10 10 10 10 10 10 10 10 14 14 14
61074 - 22 22 22 42 42 42 70 70 70 89 81 66
61075 - 80 54 7 104 69 6 124 80 6 137 92 6
61076 -134 86 6 116 81 8 100 82 52 86 86 86
61077 - 58 58 58 30 30 30 14 14 14 6 6 6
61078 - 0 0 0 0 0 0 0 0 0 0 0 0
61079 - 0 0 0 0 0 0 0 0 0 0 0 0
61080 - 0 0 0 0 0 0 0 0 0 0 0 0
61081 - 0 0 0 0 0 0 0 0 0 0 0 0
61082 - 0 0 0 0 0 0 0 0 0 0 0 0
61083 - 0 0 0 0 0 0 0 0 0 0 0 0
61084 - 0 0 0 0 0 0 0 0 0 0 0 0
61085 - 0 0 0 0 0 0 0 0 0 0 0 0
61086 - 0 0 0 6 6 6 10 10 10 14 14 14
61087 - 18 18 18 26 26 26 38 38 38 54 54 54
61088 - 70 70 70 86 86 86 94 86 76 89 81 66
61089 - 89 81 66 86 86 86 74 74 74 50 50 50
61090 - 30 30 30 14 14 14 6 6 6 0 0 0
61091 - 0 0 0 0 0 0 0 0 0 0 0 0
61092 - 0 0 0 0 0 0 0 0 0 0 0 0
61093 - 0 0 0 0 0 0 0 0 0 0 0 0
61094 - 6 6 6 18 18 18 34 34 34 58 58 58
61095 - 82 82 82 89 81 66 89 81 66 89 81 66
61096 - 94 86 66 94 86 76 74 74 74 50 50 50
61097 - 26 26 26 14 14 14 6 6 6 0 0 0
61098 - 0 0 0 0 0 0 0 0 0 0 0 0
61099 - 0 0 0 0 0 0 0 0 0 0 0 0
61100 - 0 0 0 0 0 0 0 0 0 0 0 0
61101 - 0 0 0 0 0 0 0 0 0 0 0 0
61102 - 0 0 0 0 0 0 0 0 0 0 0 0
61103 - 0 0 0 0 0 0 0 0 0 0 0 0
61104 - 0 0 0 0 0 0 0 0 0 0 0 0
61105 - 0 0 0 0 0 0 0 0 0 0 0 0
61106 - 0 0 0 0 0 0 0 0 0 0 0 0
61107 - 6 6 6 6 6 6 14 14 14 18 18 18
61108 - 30 30 30 38 38 38 46 46 46 54 54 54
61109 - 50 50 50 42 42 42 30 30 30 18 18 18
61110 - 10 10 10 0 0 0 0 0 0 0 0 0
61111 - 0 0 0 0 0 0 0 0 0 0 0 0
61112 - 0 0 0 0 0 0 0 0 0 0 0 0
61113 - 0 0 0 0 0 0 0 0 0 0 0 0
61114 - 0 0 0 6 6 6 14 14 14 26 26 26
61115 - 38 38 38 50 50 50 58 58 58 58 58 58
61116 - 54 54 54 42 42 42 30 30 30 18 18 18
61117 - 10 10 10 0 0 0 0 0 0 0 0 0
61118 - 0 0 0 0 0 0 0 0 0 0 0 0
61119 - 0 0 0 0 0 0 0 0 0 0 0 0
61120 - 0 0 0 0 0 0 0 0 0 0 0 0
61121 - 0 0 0 0 0 0 0 0 0 0 0 0
61122 - 0 0 0 0 0 0 0 0 0 0 0 0
61123 - 0 0 0 0 0 0 0 0 0 0 0 0
61124 - 0 0 0 0 0 0 0 0 0 0 0 0
61125 - 0 0 0 0 0 0 0 0 0 0 0 0
61126 - 0 0 0 0 0 0 0 0 0 0 0 0
61127 - 0 0 0 0 0 0 0 0 0 6 6 6
61128 - 6 6 6 10 10 10 14 14 14 18 18 18
61129 - 18 18 18 14 14 14 10 10 10 6 6 6
61130 - 0 0 0 0 0 0 0 0 0 0 0 0
61131 - 0 0 0 0 0 0 0 0 0 0 0 0
61132 - 0 0 0 0 0 0 0 0 0 0 0 0
61133 - 0 0 0 0 0 0 0 0 0 0 0 0
61134 - 0 0 0 0 0 0 0 0 0 6 6 6
61135 - 14 14 14 18 18 18 22 22 22 22 22 22
61136 - 18 18 18 14 14 14 10 10 10 6 6 6
61137 - 0 0 0 0 0 0 0 0 0 0 0 0
61138 - 0 0 0 0 0 0 0 0 0 0 0 0
61139 - 0 0 0 0 0 0 0 0 0 0 0 0
61140 - 0 0 0 0 0 0 0 0 0 0 0 0
61141 - 0 0 0 0 0 0 0 0 0 0 0 0
61142 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61143 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61144 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61145 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61146 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61147 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61148 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61149 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61150 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61151 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61152 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61153 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61154 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61155 +4 4 4 4 4 4
61156 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61157 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61158 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61159 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61160 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61161 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61162 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61163 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61164 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61165 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61166 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61167 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61168 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61169 +4 4 4 4 4 4
61170 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61171 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61172 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61173 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61174 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61175 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61176 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61177 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61178 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61179 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61180 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61181 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61182 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61183 +4 4 4 4 4 4
61184 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61185 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61186 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61187 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61188 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61189 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61190 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61191 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61192 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61193 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61194 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61195 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61196 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61197 +4 4 4 4 4 4
61198 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61199 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61200 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61201 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61202 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61203 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61204 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61205 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61206 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61207 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61208 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61209 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61210 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61211 +4 4 4 4 4 4
61212 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61213 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61214 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61215 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61216 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61217 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61218 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61219 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61220 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61221 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61222 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61223 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61224 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61225 +4 4 4 4 4 4
61226 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61227 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61228 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61229 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61230 +4 4 4 4 4 4 4 4 4 3 3 3 0 0 0 0 0 0
61231 +0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 4 4 4
61232 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61233 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61234 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61235 +4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 0 0 0
61236 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61237 +4 4 4 4 4 4 4 4 4 2 1 0 2 1 0 3 2 2
61238 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61239 +4 4 4 4 4 4
61240 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61241 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61242 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61243 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61244 +4 4 4 4 4 4 2 2 2 0 0 0 3 4 3 26 28 28
61245 +37 38 37 37 38 37 14 17 19 2 2 2 0 0 0 2 2 2
61246 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61247 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61248 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61249 +4 4 4 4 4 4 3 3 3 0 0 0 1 1 1 6 6 6
61250 +2 2 2 0 0 0 3 3 3 4 4 4 4 4 4 4 4 4
61251 +4 4 5 3 3 3 1 0 0 0 0 0 1 0 0 0 0 0
61252 +1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61253 +4 4 4 4 4 4
61254 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61255 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61256 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61257 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61258 +2 2 2 0 0 0 0 0 0 14 17 19 60 74 84 137 136 137
61259 +153 152 153 137 136 137 125 124 125 60 73 81 6 6 6 3 1 0
61260 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61261 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61262 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61263 +4 4 4 4 4 4 0 0 0 4 4 4 41 54 63 125 124 125
61264 +60 73 81 6 6 6 4 0 0 3 3 3 4 4 4 4 4 4
61265 +4 4 4 0 0 0 6 9 11 41 54 63 41 65 82 22 30 35
61266 +2 2 2 2 1 0 4 4 4 4 4 4 4 4 4 4 4 4
61267 +4 4 4 4 4 4
61268 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61269 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61270 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61271 +4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 0 0 0
61272 +4 0 0 6 6 6 41 54 63 137 136 137 174 174 174 167 166 167
61273 +165 164 165 165 164 165 163 162 163 163 162 163 125 124 125 41 54 63
61274 +1 1 1 0 0 0 0 0 0 3 3 3 5 5 5 4 4 4
61275 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61276 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
61277 +3 3 3 2 0 0 4 0 0 60 73 81 156 155 156 167 166 167
61278 +163 162 163 85 115 134 5 7 8 0 0 0 4 4 4 5 5 5
61279 +0 0 0 2 5 5 55 98 126 90 154 193 90 154 193 72 125 159
61280 +37 51 59 2 0 0 1 1 1 4 5 5 4 4 4 4 4 4
61281 +4 4 4 4 4 4
61282 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61283 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61284 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61285 +4 4 4 5 5 5 4 4 4 1 1 1 0 0 0 3 3 3
61286 +37 38 37 125 124 125 163 162 163 174 174 174 158 157 158 158 157 158
61287 +156 155 156 156 155 156 158 157 158 165 164 165 174 174 174 166 165 166
61288 +125 124 125 16 19 21 1 0 0 0 0 0 0 0 0 4 4 4
61289 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
61290 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 1 1 1
61291 +0 0 0 0 0 0 37 38 37 153 152 153 174 174 174 158 157 158
61292 +174 174 174 163 162 163 37 38 37 4 3 3 4 0 0 1 1 1
61293 +0 0 0 22 40 52 101 161 196 101 161 196 90 154 193 101 161 196
61294 +64 123 161 14 17 19 0 0 0 4 4 4 4 4 4 4 4 4
61295 +4 4 4 4 4 4
61296 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61297 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61298 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
61299 +5 5 5 2 2 2 0 0 0 4 0 0 24 26 27 85 115 134
61300 +156 155 156 174 174 174 167 166 167 156 155 156 154 153 154 157 156 157
61301 +156 155 156 156 155 156 155 154 155 153 152 153 158 157 158 167 166 167
61302 +174 174 174 156 155 156 60 74 84 16 19 21 0 0 0 0 0 0
61303 +1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
61304 +4 4 4 5 5 5 6 6 6 3 3 3 0 0 0 4 0 0
61305 +13 16 17 60 73 81 137 136 137 165 164 165 156 155 156 153 152 153
61306 +174 174 174 177 184 187 60 73 81 3 1 0 0 0 0 1 1 2
61307 +22 30 35 64 123 161 136 185 209 90 154 193 90 154 193 90 154 193
61308 +90 154 193 21 29 34 0 0 0 3 2 2 4 4 5 4 4 4
61309 +4 4 4 4 4 4
61310 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61311 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61312 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 3 3 3
61313 +0 0 0 0 0 0 10 13 16 60 74 84 157 156 157 174 174 174
61314 +174 174 174 158 157 158 153 152 153 154 153 154 156 155 156 155 154 155
61315 +156 155 156 155 154 155 154 153 154 157 156 157 154 153 154 153 152 153
61316 +163 162 163 174 174 174 177 184 187 137 136 137 60 73 81 13 16 17
61317 +4 0 0 0 0 0 3 3 3 5 5 5 4 4 4 4 4 4
61318 +5 5 5 4 4 4 1 1 1 0 0 0 3 3 3 41 54 63
61319 +131 129 131 174 174 174 174 174 174 174 174 174 167 166 167 174 174 174
61320 +190 197 201 137 136 137 24 26 27 4 0 0 16 21 25 50 82 103
61321 +90 154 193 136 185 209 90 154 193 101 161 196 101 161 196 101 161 196
61322 +31 91 132 3 6 7 0 0 0 4 4 4 4 4 4 4 4 4
61323 +4 4 4 4 4 4
61324 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61325 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61326 +4 4 4 4 4 4 4 4 4 2 2 2 0 0 0 4 0 0
61327 +4 0 0 43 57 68 137 136 137 177 184 187 174 174 174 163 162 163
61328 +155 154 155 155 154 155 156 155 156 155 154 155 158 157 158 165 164 165
61329 +167 166 167 166 165 166 163 162 163 157 156 157 155 154 155 155 154 155
61330 +153 152 153 156 155 156 167 166 167 174 174 174 174 174 174 131 129 131
61331 +41 54 63 5 5 5 0 0 0 0 0 0 3 3 3 4 4 4
61332 +1 1 1 0 0 0 1 0 0 26 28 28 125 124 125 174 174 174
61333 +177 184 187 174 174 174 174 174 174 156 155 156 131 129 131 137 136 137
61334 +125 124 125 24 26 27 4 0 0 41 65 82 90 154 193 136 185 209
61335 +136 185 209 101 161 196 53 118 160 37 112 160 90 154 193 34 86 122
61336 +7 12 15 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
61337 +4 4 4 4 4 4
61338 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61339 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61340 +4 4 4 3 3 3 0 0 0 0 0 0 5 5 5 37 38 37
61341 +125 124 125 167 166 167 174 174 174 167 166 167 158 157 158 155 154 155
61342 +156 155 156 156 155 156 156 155 156 163 162 163 167 166 167 155 154 155
61343 +137 136 137 153 152 153 156 155 156 165 164 165 163 162 163 156 155 156
61344 +156 155 156 156 155 156 155 154 155 158 157 158 166 165 166 174 174 174
61345 +167 166 167 125 124 125 37 38 37 1 0 0 0 0 0 0 0 0
61346 +0 0 0 24 26 27 60 74 84 158 157 158 174 174 174 174 174 174
61347 +166 165 166 158 157 158 125 124 125 41 54 63 13 16 17 6 6 6
61348 +6 6 6 37 38 37 80 127 157 136 185 209 101 161 196 101 161 196
61349 +90 154 193 28 67 93 6 10 14 13 20 25 13 20 25 6 10 14
61350 +1 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61351 +4 4 4 4 4 4
61352 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61353 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61354 +1 1 1 1 0 0 4 3 3 37 38 37 60 74 84 153 152 153
61355 +167 166 167 167 166 167 158 157 158 154 153 154 155 154 155 156 155 156
61356 +157 156 157 158 157 158 167 166 167 167 166 167 131 129 131 43 57 68
61357 +26 28 28 37 38 37 60 73 81 131 129 131 165 164 165 166 165 166
61358 +158 157 158 155 154 155 156 155 156 156 155 156 156 155 156 158 157 158
61359 +165 164 165 174 174 174 163 162 163 60 74 84 16 19 21 13 16 17
61360 +60 73 81 131 129 131 174 174 174 174 174 174 167 166 167 165 164 165
61361 +137 136 137 60 73 81 24 26 27 4 0 0 4 0 0 16 19 21
61362 +52 104 138 101 161 196 136 185 209 136 185 209 90 154 193 27 99 146
61363 +13 20 25 4 5 7 2 5 5 4 5 7 1 1 2 0 0 0
61364 +4 4 4 4 4 4 3 3 3 2 2 2 2 2 2 4 4 4
61365 +4 4 4 4 4 4
61366 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61367 +4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 0 0 0
61368 +0 0 0 13 16 17 60 73 81 137 136 137 174 174 174 166 165 166
61369 +158 157 158 156 155 156 157 156 157 156 155 156 155 154 155 158 157 158
61370 +167 166 167 174 174 174 153 152 153 60 73 81 16 19 21 4 0 0
61371 +4 0 0 4 0 0 6 6 6 26 28 28 60 74 84 158 157 158
61372 +174 174 174 166 165 166 157 156 157 155 154 155 156 155 156 156 155 156
61373 +155 154 155 158 157 158 167 166 167 167 166 167 131 129 131 125 124 125
61374 +137 136 137 167 166 167 167 166 167 174 174 174 158 157 158 125 124 125
61375 +16 19 21 4 0 0 4 0 0 10 13 16 49 76 92 107 159 188
61376 +136 185 209 136 185 209 90 154 193 26 108 161 22 40 52 6 10 14
61377 +2 3 3 1 1 2 1 1 2 4 4 5 4 4 5 4 4 5
61378 +4 4 5 2 2 1 0 0 0 0 0 0 0 0 0 2 2 2
61379 +4 4 4 4 4 4
61380 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61381 +4 4 4 5 5 5 3 3 3 0 0 0 1 0 0 4 0 0
61382 +37 51 59 131 129 131 167 166 167 167 166 167 163 162 163 157 156 157
61383 +157 156 157 155 154 155 153 152 153 157 156 157 167 166 167 174 174 174
61384 +153 152 153 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
61385 +4 3 3 4 3 3 4 0 0 6 6 6 4 0 0 37 38 37
61386 +125 124 125 174 174 174 174 174 174 165 164 165 156 155 156 154 153 154
61387 +156 155 156 156 155 156 155 154 155 163 162 163 158 157 158 163 162 163
61388 +174 174 174 174 174 174 174 174 174 125 124 125 37 38 37 0 0 0
61389 +4 0 0 6 9 11 41 54 63 90 154 193 136 185 209 146 190 211
61390 +136 185 209 37 112 160 22 40 52 6 10 14 3 6 7 1 1 2
61391 +1 1 2 3 3 3 1 1 2 3 3 3 4 4 4 4 4 4
61392 +2 2 2 2 0 0 16 19 21 37 38 37 24 26 27 0 0 0
61393 +0 0 0 4 4 4
61394 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
61395 +4 4 4 0 0 0 0 0 0 0 0 0 26 28 28 120 125 127
61396 +158 157 158 174 174 174 165 164 165 157 156 157 155 154 155 156 155 156
61397 +153 152 153 153 152 153 167 166 167 174 174 174 174 174 174 125 124 125
61398 +37 38 37 4 0 0 0 0 0 4 0 0 4 3 3 4 4 4
61399 +4 4 4 4 4 4 5 5 5 4 0 0 4 0 0 4 0 0
61400 +4 3 3 43 57 68 137 136 137 174 174 174 174 174 174 165 164 165
61401 +154 153 154 153 152 153 153 152 153 153 152 153 163 162 163 174 174 174
61402 +174 174 174 153 152 153 60 73 81 6 6 6 4 0 0 4 3 3
61403 +32 43 50 80 127 157 136 185 209 146 190 211 146 190 211 90 154 193
61404 +28 67 93 28 67 93 40 71 93 3 6 7 1 1 2 2 5 5
61405 +50 82 103 79 117 143 26 37 45 0 0 0 3 3 3 1 1 1
61406 +0 0 0 41 54 63 137 136 137 174 174 174 153 152 153 60 73 81
61407 +2 0 0 0 0 0
61408 +4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 2 2 2
61409 +0 0 0 2 0 0 24 26 27 60 74 84 153 152 153 174 174 174
61410 +174 174 174 157 156 157 154 153 154 156 155 156 154 153 154 153 152 153
61411 +165 164 165 174 174 174 177 184 187 137 136 137 43 57 68 6 6 6
61412 +4 0 0 2 0 0 3 3 3 5 5 5 5 5 5 4 4 4
61413 +4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 4 3 3
61414 +4 0 0 4 0 0 24 26 27 60 73 81 153 152 153 174 174 174
61415 +174 174 174 158 157 158 158 157 158 174 174 174 174 174 174 158 157 158
61416 +60 74 84 24 26 27 4 0 0 4 0 0 17 23 27 59 113 148
61417 +136 185 209 191 222 234 146 190 211 136 185 209 31 91 132 7 11 13
61418 +22 40 52 101 161 196 90 154 193 6 9 11 3 4 4 43 95 132
61419 +136 185 209 172 205 220 55 98 126 0 0 0 0 0 0 2 0 0
61420 +26 28 28 153 152 153 177 184 187 167 166 167 177 184 187 165 164 165
61421 +37 38 37 0 0 0
61422 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61423 +13 16 17 60 73 81 137 136 137 174 174 174 174 174 174 165 164 165
61424 +153 152 153 153 152 153 155 154 155 154 153 154 158 157 158 174 174 174
61425 +177 184 187 163 162 163 60 73 81 16 19 21 4 0 0 4 0 0
61426 +4 3 3 4 4 4 5 5 5 5 5 5 4 4 4 5 5 5
61427 +5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5
61428 +6 6 6 4 0 0 4 0 0 4 0 0 24 26 27 60 74 84
61429 +166 165 166 174 174 174 177 184 187 165 164 165 125 124 125 24 26 27
61430 +4 0 0 4 0 0 5 5 5 50 82 103 136 185 209 172 205 220
61431 +146 190 211 136 185 209 26 108 161 22 40 52 7 12 15 44 81 103
61432 +71 116 144 28 67 93 37 51 59 41 65 82 100 139 164 101 161 196
61433 +90 154 193 90 154 193 28 67 93 0 0 0 0 0 0 26 28 28
61434 +125 124 125 167 166 167 163 162 163 153 152 153 163 162 163 174 174 174
61435 +85 115 134 4 0 0
61436 +4 4 4 5 5 5 4 4 4 1 0 0 4 0 0 34 47 55
61437 +125 124 125 174 174 174 174 174 174 167 166 167 157 156 157 153 152 153
61438 +155 154 155 155 154 155 158 157 158 166 165 166 167 166 167 154 153 154
61439 +125 124 125 26 28 28 4 0 0 4 0 0 4 0 0 5 5 5
61440 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1
61441 +0 0 0 0 0 0 1 1 1 4 4 4 4 4 4 4 4 4
61442 +5 5 5 5 5 5 4 3 3 4 0 0 4 0 0 6 6 6
61443 +37 38 37 131 129 131 137 136 137 37 38 37 0 0 0 4 0 0
61444 +4 5 5 43 61 72 90 154 193 172 205 220 146 190 211 136 185 209
61445 +90 154 193 28 67 93 13 20 25 43 61 72 71 116 144 44 81 103
61446 +2 5 5 7 11 13 59 113 148 101 161 196 90 154 193 28 67 93
61447 +13 20 25 6 10 14 0 0 0 13 16 17 60 73 81 137 136 137
61448 +166 165 166 158 157 158 156 155 156 154 153 154 167 166 167 174 174 174
61449 +60 73 81 4 0 0
61450 +4 4 4 4 4 4 0 0 0 3 3 3 60 74 84 174 174 174
61451 +174 174 174 167 166 167 163 162 163 155 154 155 157 156 157 155 154 155
61452 +156 155 156 163 162 163 167 166 167 158 157 158 125 124 125 37 38 37
61453 +4 3 3 4 0 0 4 0 0 6 6 6 6 6 6 5 5 5
61454 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 2 3 3
61455 +10 13 16 7 11 13 1 0 0 0 0 0 2 2 1 4 4 4
61456 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 4 0 0
61457 +4 0 0 7 11 13 13 16 17 4 0 0 3 3 3 34 47 55
61458 +80 127 157 146 190 211 172 205 220 136 185 209 136 185 209 136 185 209
61459 +28 67 93 22 40 52 55 98 126 55 98 126 21 29 34 7 11 13
61460 +50 82 103 101 161 196 101 161 196 35 83 115 13 20 25 2 2 1
61461 +1 1 2 1 1 2 37 51 59 131 129 131 174 174 174 174 174 174
61462 +167 166 167 163 162 163 163 162 163 167 166 167 174 174 174 125 124 125
61463 +16 19 21 4 0 0
61464 +4 4 4 4 0 0 4 0 0 60 74 84 174 174 174 174 174 174
61465 +158 157 158 155 154 155 155 154 155 156 155 156 155 154 155 158 157 158
61466 +167 166 167 165 164 165 131 129 131 60 73 81 13 16 17 4 0 0
61467 +4 0 0 4 3 3 6 6 6 4 3 3 5 5 5 4 4 4
61468 +4 4 4 3 2 2 0 0 0 0 0 0 7 11 13 45 69 86
61469 +80 127 157 71 116 144 43 61 72 7 11 13 0 0 0 1 1 1
61470 +4 3 3 4 4 4 4 4 4 4 4 4 6 6 6 5 5 5
61471 +3 2 2 4 0 0 1 0 0 21 29 34 59 113 148 136 185 209
61472 +146 190 211 136 185 209 136 185 209 136 185 209 136 185 209 136 185 209
61473 +68 124 159 44 81 103 22 40 52 13 16 17 43 61 72 90 154 193
61474 +136 185 209 59 113 148 21 29 34 3 4 3 1 1 1 0 0 0
61475 +24 26 27 125 124 125 163 162 163 174 174 174 166 165 166 165 164 165
61476 +163 162 163 125 124 125 125 124 125 125 124 125 125 124 125 26 28 28
61477 +4 0 0 4 3 3
61478 +3 3 3 0 0 0 24 26 27 153 152 153 177 184 187 158 157 158
61479 +156 155 156 156 155 156 155 154 155 155 154 155 165 164 165 174 174 174
61480 +155 154 155 60 74 84 26 28 28 4 0 0 4 0 0 3 1 0
61481 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3
61482 +2 0 0 0 0 0 0 0 0 32 43 50 72 125 159 101 161 196
61483 +136 185 209 101 161 196 101 161 196 79 117 143 32 43 50 0 0 0
61484 +0 0 0 2 2 2 4 4 4 4 4 4 3 3 3 1 0 0
61485 +0 0 0 4 5 5 49 76 92 101 161 196 146 190 211 146 190 211
61486 +136 185 209 136 185 209 136 185 209 136 185 209 136 185 209 90 154 193
61487 +28 67 93 13 16 17 37 51 59 80 127 157 136 185 209 90 154 193
61488 +22 40 52 6 9 11 3 4 3 2 2 1 16 19 21 60 73 81
61489 +137 136 137 163 162 163 158 157 158 166 165 166 167 166 167 153 152 153
61490 +60 74 84 37 38 37 6 6 6 13 16 17 4 0 0 1 0 0
61491 +3 2 2 4 4 4
61492 +3 2 2 4 0 0 37 38 37 137 136 137 167 166 167 158 157 158
61493 +157 156 157 154 153 154 157 156 157 167 166 167 174 174 174 125 124 125
61494 +37 38 37 4 0 0 4 0 0 4 0 0 4 3 3 4 4 4
61495 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61496 +0 0 0 16 21 25 55 98 126 90 154 193 136 185 209 101 161 196
61497 +101 161 196 101 161 196 136 185 209 136 185 209 101 161 196 55 98 126
61498 +14 17 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
61499 +22 40 52 90 154 193 146 190 211 146 190 211 136 185 209 136 185 209
61500 +136 185 209 136 185 209 136 185 209 101 161 196 35 83 115 7 11 13
61501 +17 23 27 59 113 148 136 185 209 101 161 196 34 86 122 7 12 15
61502 +2 5 5 3 4 3 6 6 6 60 73 81 131 129 131 163 162 163
61503 +166 165 166 174 174 174 174 174 174 163 162 163 125 124 125 41 54 63
61504 +13 16 17 4 0 0 4 0 0 4 0 0 1 0 0 2 2 2
61505 +4 4 4 4 4 4
61506 +1 1 1 2 1 0 43 57 68 137 136 137 153 152 153 153 152 153
61507 +163 162 163 156 155 156 165 164 165 167 166 167 60 74 84 6 6 6
61508 +4 0 0 4 0 0 5 5 5 4 4 4 4 4 4 4 4 4
61509 +4 5 5 6 6 6 4 3 3 0 0 0 0 0 0 11 15 18
61510 +40 71 93 100 139 164 101 161 196 101 161 196 101 161 196 101 161 196
61511 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 136 185 209
61512 +101 161 196 45 69 86 6 6 6 0 0 0 17 23 27 55 98 126
61513 +136 185 209 146 190 211 136 185 209 136 185 209 136 185 209 136 185 209
61514 +136 185 209 136 185 209 90 154 193 22 40 52 7 11 13 50 82 103
61515 +136 185 209 136 185 209 53 118 160 22 40 52 7 11 13 2 5 5
61516 +3 4 3 37 38 37 125 124 125 157 156 157 166 165 166 167 166 167
61517 +174 174 174 174 174 174 137 136 137 60 73 81 4 0 0 4 0 0
61518 +4 0 0 4 0 0 5 5 5 3 3 3 3 3 3 4 4 4
61519 +4 4 4 4 4 4
61520 +4 0 0 4 0 0 41 54 63 137 136 137 125 124 125 131 129 131
61521 +155 154 155 167 166 167 174 174 174 60 74 84 6 6 6 4 0 0
61522 +4 3 3 6 6 6 4 4 4 4 4 4 4 4 4 5 5 5
61523 +4 4 4 1 1 1 0 0 0 3 6 7 41 65 82 72 125 159
61524 +101 161 196 101 161 196 101 161 196 90 154 193 90 154 193 101 161 196
61525 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61526 +136 185 209 136 185 209 80 127 157 55 98 126 101 161 196 146 190 211
61527 +136 185 209 136 185 209 136 185 209 101 161 196 136 185 209 101 161 196
61528 +136 185 209 101 161 196 35 83 115 22 30 35 101 161 196 172 205 220
61529 +90 154 193 28 67 93 7 11 13 2 5 5 3 4 3 13 16 17
61530 +85 115 134 167 166 167 174 174 174 174 174 174 174 174 174 174 174 174
61531 +167 166 167 60 74 84 13 16 17 4 0 0 4 0 0 4 3 3
61532 +6 6 6 5 5 5 4 4 4 5 5 5 4 4 4 5 5 5
61533 +5 5 5 5 5 5
61534 +1 1 1 4 0 0 41 54 63 137 136 137 137 136 137 125 124 125
61535 +131 129 131 167 166 167 157 156 157 37 38 37 6 6 6 4 0 0
61536 +6 6 6 5 5 5 4 4 4 4 4 4 4 5 5 2 2 1
61537 +0 0 0 0 0 0 26 37 45 58 111 146 101 161 196 101 161 196
61538 +101 161 196 90 154 193 90 154 193 90 154 193 101 161 196 101 161 196
61539 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61540 +101 161 196 136 185 209 136 185 209 136 185 209 146 190 211 136 185 209
61541 +136 185 209 101 161 196 136 185 209 136 185 209 101 161 196 136 185 209
61542 +101 161 196 136 185 209 136 185 209 136 185 209 136 185 209 16 89 141
61543 +7 11 13 2 5 5 2 5 5 13 16 17 60 73 81 154 154 154
61544 +174 174 174 174 174 174 174 174 174 174 174 174 163 162 163 125 124 125
61545 +24 26 27 4 0 0 4 0 0 4 0 0 5 5 5 5 5 5
61546 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
61547 +5 5 5 4 4 4
61548 +4 0 0 6 6 6 37 38 37 137 136 137 137 136 137 131 129 131
61549 +131 129 131 153 152 153 131 129 131 26 28 28 4 0 0 4 3 3
61550 +6 6 6 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0
61551 +13 20 25 51 88 114 90 154 193 101 161 196 101 161 196 90 154 193
61552 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61553 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 101 161 196
61554 +101 161 196 136 185 209 101 161 196 136 185 209 136 185 209 101 161 196
61555 +136 185 209 101 161 196 136 185 209 101 161 196 101 161 196 101 161 196
61556 +136 185 209 136 185 209 136 185 209 37 112 160 21 29 34 5 7 8
61557 +2 5 5 13 16 17 43 57 68 131 129 131 174 174 174 174 174 174
61558 +174 174 174 167 166 167 157 156 157 125 124 125 37 38 37 4 0 0
61559 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
61560 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61561 +4 4 4 4 4 4
61562 +1 1 1 4 0 0 41 54 63 153 152 153 137 136 137 137 136 137
61563 +137 136 137 153 152 153 125 124 125 24 26 27 4 0 0 3 2 2
61564 +4 4 4 4 4 4 4 3 3 4 0 0 3 6 7 43 61 72
61565 +64 123 161 101 161 196 90 154 193 90 154 193 90 154 193 90 154 193
61566 +90 154 193 90 154 193 90 154 193 90 154 193 101 161 196 90 154 193
61567 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61568 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61569 +136 185 209 101 161 196 101 161 196 136 185 209 136 185 209 101 161 196
61570 +101 161 196 90 154 193 28 67 93 13 16 17 7 11 13 3 6 7
61571 +37 51 59 125 124 125 163 162 163 174 174 174 167 166 167 166 165 166
61572 +167 166 167 131 129 131 60 73 81 4 0 0 4 0 0 4 0 0
61573 +3 3 3 5 5 5 6 6 6 4 4 4 4 4 4 4 4 4
61574 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61575 +4 4 4 4 4 4
61576 +4 0 0 4 0 0 41 54 63 137 136 137 153 152 153 137 136 137
61577 +153 152 153 157 156 157 125 124 125 24 26 27 0 0 0 2 2 2
61578 +4 4 4 4 4 4 2 0 0 0 0 0 28 67 93 90 154 193
61579 +90 154 193 90 154 193 90 154 193 90 154 193 64 123 161 90 154 193
61580 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61581 +90 154 193 101 161 196 101 161 196 101 161 196 90 154 193 136 185 209
61582 +101 161 196 101 161 196 136 185 209 101 161 196 136 185 209 101 161 196
61583 +101 161 196 101 161 196 136 185 209 101 161 196 101 161 196 90 154 193
61584 +35 83 115 13 16 17 3 6 7 2 5 5 13 16 17 60 74 84
61585 +154 154 154 166 165 166 165 164 165 158 157 158 163 162 163 157 156 157
61586 +60 74 84 13 16 17 4 0 0 4 0 0 3 2 2 4 4 4
61587 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61588 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61589 +4 4 4 4 4 4
61590 +1 1 1 4 0 0 41 54 63 157 156 157 155 154 155 137 136 137
61591 +153 152 153 158 157 158 137 136 137 26 28 28 2 0 0 2 2 2
61592 +4 4 4 4 4 4 1 0 0 6 10 14 34 86 122 90 154 193
61593 +64 123 161 90 154 193 64 123 161 90 154 193 90 154 193 90 154 193
61594 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61595 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61596 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61597 +136 185 209 101 161 196 136 185 209 90 154 193 26 108 161 22 40 52
61598 +13 16 17 5 7 8 2 5 5 2 5 5 37 38 37 165 164 165
61599 +174 174 174 163 162 163 154 154 154 165 164 165 167 166 167 60 73 81
61600 +6 6 6 4 0 0 4 0 0 4 4 4 4 4 4 4 4 4
61601 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61602 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61603 +4 4 4 4 4 4
61604 +4 0 0 6 6 6 41 54 63 156 155 156 158 157 158 153 152 153
61605 +156 155 156 165 164 165 137 136 137 26 28 28 0 0 0 2 2 2
61606 +4 4 5 4 4 4 2 0 0 7 12 15 31 96 139 64 123 161
61607 +90 154 193 64 123 161 90 154 193 90 154 193 64 123 161 90 154 193
61608 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61609 +90 154 193 90 154 193 90 154 193 101 161 196 101 161 196 101 161 196
61610 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61611 +101 161 196 136 185 209 26 108 161 22 40 52 7 11 13 5 7 8
61612 +2 5 5 2 5 5 2 5 5 2 2 1 37 38 37 158 157 158
61613 +174 174 174 154 154 154 156 155 156 167 166 167 165 164 165 37 38 37
61614 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61615 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61616 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61617 +4 4 4 4 4 4
61618 +3 1 0 4 0 0 60 73 81 157 156 157 163 162 163 153 152 153
61619 +158 157 158 167 166 167 137 136 137 26 28 28 2 0 0 2 2 2
61620 +4 5 5 4 4 4 4 0 0 7 12 15 24 86 132 26 108 161
61621 +37 112 160 64 123 161 90 154 193 64 123 161 90 154 193 90 154 193
61622 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61623 +90 154 193 101 161 196 90 154 193 101 161 196 101 161 196 101 161 196
61624 +101 161 196 101 161 196 101 161 196 136 185 209 101 161 196 136 185 209
61625 +90 154 193 35 83 115 13 16 17 13 16 17 7 11 13 3 6 7
61626 +5 7 8 6 6 6 3 4 3 2 2 1 30 32 34 154 154 154
61627 +167 166 167 154 154 154 154 154 154 174 174 174 165 164 165 37 38 37
61628 +6 6 6 4 0 0 6 6 6 4 4 4 4 4 4 4 4 4
61629 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61630 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61631 +4 4 4 4 4 4
61632 +4 0 0 4 0 0 41 54 63 163 162 163 166 165 166 154 154 154
61633 +163 162 163 174 174 174 137 136 137 26 28 28 0 0 0 2 2 2
61634 +4 5 5 4 4 5 1 1 2 6 10 14 28 67 93 18 97 151
61635 +18 97 151 18 97 151 26 108 161 37 112 160 37 112 160 90 154 193
61636 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61637 +90 154 193 101 161 196 101 161 196 90 154 193 101 161 196 101 161 196
61638 +101 161 196 101 161 196 101 161 196 136 185 209 90 154 193 16 89 141
61639 +13 20 25 7 11 13 5 7 8 5 7 8 2 5 5 4 5 5
61640 +3 4 3 4 5 5 3 4 3 0 0 0 37 38 37 158 157 158
61641 +174 174 174 158 157 158 158 157 158 167 166 167 174 174 174 41 54 63
61642 +4 0 0 3 2 2 5 5 5 4 4 4 4 4 4 4 4 4
61643 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61644 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61645 +4 4 4 4 4 4
61646 +1 1 1 4 0 0 60 73 81 165 164 165 174 174 174 158 157 158
61647 +167 166 167 174 174 174 153 152 153 26 28 28 2 0 0 2 2 2
61648 +4 5 5 4 4 4 4 0 0 7 12 15 10 87 144 10 87 144
61649 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61650 +26 108 161 37 112 160 53 118 160 90 154 193 90 154 193 90 154 193
61651 +90 154 193 90 154 193 101 161 196 101 161 196 101 161 196 101 161 196
61652 +101 161 196 136 185 209 90 154 193 26 108 161 22 40 52 13 16 17
61653 +7 11 13 3 6 7 5 7 8 5 7 8 2 5 5 4 5 5
61654 +4 5 5 6 6 6 3 4 3 0 0 0 30 32 34 158 157 158
61655 +174 174 174 156 155 156 155 154 155 165 164 165 154 153 154 37 38 37
61656 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61657 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61658 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61659 +4 4 4 4 4 4
61660 +4 0 0 4 0 0 60 73 81 167 166 167 174 174 174 163 162 163
61661 +174 174 174 174 174 174 153 152 153 26 28 28 0 0 0 3 3 3
61662 +5 5 5 4 4 4 1 1 2 7 12 15 28 67 93 18 97 151
61663 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61664 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61665 +90 154 193 26 108 161 90 154 193 90 154 193 90 154 193 101 161 196
61666 +101 161 196 26 108 161 22 40 52 13 16 17 7 11 13 2 5 5
61667 +2 5 5 6 6 6 2 5 5 4 5 5 4 5 5 4 5 5
61668 +3 4 3 5 5 5 3 4 3 2 0 0 30 32 34 137 136 137
61669 +153 152 153 137 136 137 131 129 131 137 136 137 131 129 131 37 38 37
61670 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61671 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61672 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61673 +4 4 4 4 4 4
61674 +1 1 1 4 0 0 60 73 81 167 166 167 174 174 174 166 165 166
61675 +174 174 174 177 184 187 153 152 153 30 32 34 1 0 0 3 3 3
61676 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61677 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61678 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61679 +26 108 161 26 108 161 26 108 161 90 154 193 90 154 193 26 108 161
61680 +35 83 115 13 16 17 7 11 13 5 7 8 3 6 7 5 7 8
61681 +2 5 5 6 6 6 4 5 5 4 5 5 3 4 3 4 5 5
61682 +3 4 3 6 6 6 3 4 3 0 0 0 26 28 28 125 124 125
61683 +131 129 131 125 124 125 125 124 125 131 129 131 131 129 131 37 38 37
61684 +4 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61685 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61686 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61687 +4 4 4 4 4 4
61688 +3 1 0 4 0 0 60 73 81 174 174 174 177 184 187 167 166 167
61689 +174 174 174 177 184 187 153 152 153 30 32 34 0 0 0 3 3 3
61690 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61691 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61692 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61693 +26 108 161 90 154 193 26 108 161 26 108 161 24 86 132 13 20 25
61694 +7 11 13 13 20 25 22 40 52 5 7 8 3 4 3 3 4 3
61695 +4 5 5 3 4 3 4 5 5 3 4 3 4 5 5 3 4 3
61696 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61697 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61698 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61699 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61700 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61701 +4 4 4 4 4 4
61702 +1 1 1 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61703 +174 174 174 190 197 201 157 156 157 30 32 34 1 0 0 3 3 3
61704 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61705 +18 97 151 19 95 150 19 95 150 18 97 151 18 97 151 26 108 161
61706 +18 97 151 26 108 161 26 108 161 26 108 161 26 108 161 90 154 193
61707 +26 108 161 26 108 161 26 108 161 22 40 52 2 5 5 3 4 3
61708 +28 67 93 37 112 160 34 86 122 2 5 5 3 4 3 3 4 3
61709 +3 4 3 3 4 3 3 4 3 2 2 1 3 4 3 4 4 4
61710 +4 5 5 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61711 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61712 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61713 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61714 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61715 +4 4 4 4 4 4
61716 +4 0 0 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61717 +174 174 174 190 197 201 158 157 158 30 32 34 0 0 0 2 2 2
61718 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61719 +10 87 144 19 95 150 19 95 150 18 97 151 18 97 151 18 97 151
61720 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61721 +18 97 151 22 40 52 2 5 5 2 2 1 22 40 52 26 108 161
61722 +90 154 193 37 112 160 22 40 52 3 4 3 13 20 25 22 30 35
61723 +3 6 7 1 1 1 2 2 2 6 9 11 5 5 5 4 3 3
61724 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61725 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61726 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61727 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61728 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61729 +4 4 4 4 4 4
61730 +1 1 1 4 0 0 60 73 81 177 184 187 193 200 203 174 174 174
61731 +177 184 187 193 200 203 163 162 163 30 32 34 4 0 0 2 2 2
61732 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61733 +10 87 144 10 87 144 19 95 150 19 95 150 19 95 150 18 97 151
61734 +26 108 161 26 108 161 26 108 161 90 154 193 26 108 161 28 67 93
61735 +6 10 14 2 5 5 13 20 25 24 86 132 37 112 160 90 154 193
61736 +10 87 144 7 12 15 2 5 5 28 67 93 37 112 160 28 67 93
61737 +2 2 1 7 12 15 35 83 115 28 67 93 3 6 7 1 0 0
61738 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61739 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61740 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61741 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61742 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61743 +4 4 4 4 4 4
61744 +4 0 0 4 0 0 60 73 81 174 174 174 190 197 201 174 174 174
61745 +177 184 187 193 200 203 163 162 163 30 32 34 0 0 0 2 2 2
61746 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61747 +10 87 144 16 89 141 19 95 150 10 87 144 26 108 161 26 108 161
61748 +26 108 161 26 108 161 26 108 161 28 67 93 6 10 14 1 1 2
61749 +7 12 15 28 67 93 26 108 161 16 89 141 24 86 132 21 29 34
61750 +3 4 3 21 29 34 37 112 160 37 112 160 27 99 146 21 29 34
61751 +21 29 34 26 108 161 90 154 193 35 83 115 1 1 2 2 0 0
61752 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61753 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61754 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61755 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61756 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61757 +4 4 4 4 4 4
61758 +3 1 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61759 +190 197 201 193 200 203 165 164 165 37 38 37 4 0 0 2 2 2
61760 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61761 +10 87 144 10 87 144 16 89 141 18 97 151 18 97 151 10 87 144
61762 +24 86 132 24 86 132 13 20 25 4 5 7 4 5 7 22 40 52
61763 +18 97 151 37 112 160 26 108 161 7 12 15 1 1 1 0 0 0
61764 +28 67 93 37 112 160 26 108 161 28 67 93 22 40 52 28 67 93
61765 +26 108 161 90 154 193 26 108 161 10 87 144 0 0 0 2 0 0
61766 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61767 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61768 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61769 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61770 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61771 +4 4 4 4 4 4
61772 +4 0 0 6 6 6 60 73 81 174 174 174 193 200 203 174 174 174
61773 +190 197 201 193 200 203 165 164 165 30 32 34 0 0 0 2 2 2
61774 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61775 +10 87 144 10 87 144 10 87 144 18 97 151 28 67 93 6 10 14
61776 +0 0 0 1 1 2 4 5 7 13 20 25 16 89 141 26 108 161
61777 +26 108 161 26 108 161 24 86 132 6 9 11 2 3 3 22 40 52
61778 +37 112 160 16 89 141 22 40 52 28 67 93 26 108 161 26 108 161
61779 +90 154 193 26 108 161 26 108 161 28 67 93 1 1 1 4 0 0
61780 +4 4 4 5 5 5 3 3 3 4 0 0 26 28 28 124 126 130
61781 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61782 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61783 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61784 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61785 +4 4 4 4 4 4
61786 +4 0 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61787 +193 200 203 193 200 203 167 166 167 37 38 37 4 0 0 2 2 2
61788 +5 5 5 4 4 4 4 0 0 6 10 14 28 67 93 10 87 144
61789 +10 87 144 10 87 144 18 97 151 10 87 144 13 20 25 4 5 7
61790 +1 1 2 1 1 1 22 40 52 26 108 161 26 108 161 26 108 161
61791 +26 108 161 26 108 161 26 108 161 24 86 132 22 40 52 22 40 52
61792 +22 40 52 22 40 52 10 87 144 26 108 161 26 108 161 26 108 161
61793 +26 108 161 26 108 161 90 154 193 10 87 144 0 0 0 4 0 0
61794 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61795 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61796 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61797 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61798 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61799 +4 4 4 4 4 4
61800 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61801 +190 197 201 205 212 215 167 166 167 30 32 34 0 0 0 2 2 2
61802 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61803 +10 87 144 10 87 144 10 87 144 10 87 144 22 40 52 1 1 2
61804 +2 0 0 1 1 2 24 86 132 26 108 161 26 108 161 26 108 161
61805 +26 108 161 19 95 150 16 89 141 10 87 144 22 40 52 22 40 52
61806 +10 87 144 26 108 161 37 112 160 26 108 161 26 108 161 26 108 161
61807 +26 108 161 26 108 161 26 108 161 28 67 93 2 0 0 3 1 0
61808 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61809 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61810 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61811 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61812 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61813 +4 4 4 4 4 4
61814 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
61815 +193 200 203 193 200 203 174 174 174 37 38 37 4 0 0 2 2 2
61816 +5 5 5 4 4 4 3 2 2 1 1 2 13 20 25 10 87 144
61817 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 13 20 25
61818 +13 20 25 22 40 52 10 87 144 18 97 151 18 97 151 26 108 161
61819 +10 87 144 13 20 25 6 10 14 21 29 34 24 86 132 18 97 151
61820 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61821 +26 108 161 90 154 193 18 97 151 13 20 25 0 0 0 4 3 3
61822 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61823 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61824 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61825 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61826 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61827 +4 4 4 4 4 4
61828 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61829 +190 197 201 220 221 221 167 166 167 30 32 34 1 0 0 2 2 2
61830 +5 5 5 4 4 4 4 4 5 2 5 5 4 5 7 13 20 25
61831 +28 67 93 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
61832 +10 87 144 10 87 144 18 97 151 10 87 144 18 97 151 18 97 151
61833 +28 67 93 2 3 3 0 0 0 28 67 93 26 108 161 26 108 161
61834 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61835 +26 108 161 10 87 144 13 20 25 1 1 2 3 2 2 4 4 4
61836 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61837 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61838 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61839 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61840 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61841 +4 4 4 4 4 4
61842 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
61843 +193 200 203 193 200 203 174 174 174 26 28 28 4 0 0 4 3 3
61844 +5 5 5 4 4 4 4 4 4 4 4 5 1 1 2 2 5 5
61845 +4 5 7 22 40 52 10 87 144 10 87 144 18 97 151 10 87 144
61846 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 18 97 151
61847 +10 87 144 28 67 93 22 40 52 10 87 144 26 108 161 18 97 151
61848 +18 97 151 18 97 151 26 108 161 26 108 161 26 108 161 26 108 161
61849 +22 40 52 1 1 2 0 0 0 2 3 3 4 4 4 4 4 4
61850 +4 4 4 5 5 5 4 4 4 0 0 0 26 28 28 131 129 131
61851 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61852 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61853 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61854 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61855 +4 4 4 4 4 4
61856 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61857 +190 197 201 220 221 221 190 197 201 41 54 63 4 0 0 2 2 2
61858 +6 6 6 4 4 4 4 4 4 4 4 5 4 4 5 3 3 3
61859 +1 1 2 1 1 2 6 10 14 22 40 52 10 87 144 18 97 151
61860 +18 97 151 10 87 144 10 87 144 10 87 144 18 97 151 10 87 144
61861 +10 87 144 18 97 151 26 108 161 18 97 151 18 97 151 10 87 144
61862 +26 108 161 26 108 161 26 108 161 10 87 144 28 67 93 6 10 14
61863 +1 1 2 1 1 2 4 3 3 4 4 5 4 4 4 4 4 4
61864 +5 5 5 5 5 5 1 1 1 4 0 0 37 51 59 137 136 137
61865 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61866 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61867 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61868 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61869 +4 4 4 4 4 4
61870 +4 0 0 4 0 0 60 73 81 220 221 221 193 200 203 174 174 174
61871 +193 200 203 193 200 203 220 221 221 137 136 137 13 16 17 4 0 0
61872 +2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
61873 +4 4 5 4 3 3 1 1 2 4 5 7 13 20 25 28 67 93
61874 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
61875 +10 87 144 18 97 151 18 97 151 10 87 144 18 97 151 26 108 161
61876 +26 108 161 18 97 151 28 67 93 6 10 14 0 0 0 0 0 0
61877 +2 3 3 4 5 5 4 4 5 4 4 4 4 4 4 5 5 5
61878 +3 3 3 1 1 1 0 0 0 16 19 21 125 124 125 137 136 137
61879 +131 129 131 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61880 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61881 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61882 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61883 +4 4 4 4 4 4
61884 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61885 +193 200 203 190 197 201 220 221 221 220 221 221 153 152 153 30 32 34
61886 +0 0 0 0 0 0 2 2 2 4 4 4 4 4 4 4 4 4
61887 +4 4 4 4 5 5 4 5 7 1 1 2 1 1 2 4 5 7
61888 +13 20 25 28 67 93 10 87 144 18 97 151 10 87 144 10 87 144
61889 +10 87 144 10 87 144 10 87 144 18 97 151 26 108 161 18 97 151
61890 +28 67 93 7 12 15 0 0 0 0 0 0 2 2 1 4 4 4
61891 +4 5 5 4 5 5 4 4 4 4 4 4 3 3 3 0 0 0
61892 +0 0 0 0 0 0 37 38 37 125 124 125 158 157 158 131 129 131
61893 +125 124 125 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61894 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61895 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61896 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61897 +4 4 4 4 4 4
61898 +4 3 3 4 0 0 41 54 63 193 200 203 220 221 221 174 174 174
61899 +193 200 203 193 200 203 193 200 203 220 221 221 244 246 246 193 200 203
61900 +120 125 127 5 5 5 1 0 0 0 0 0 1 1 1 4 4 4
61901 +4 4 4 4 4 4 4 5 5 4 5 5 4 4 5 1 1 2
61902 +4 5 7 4 5 7 22 40 52 10 87 144 10 87 144 10 87 144
61903 +10 87 144 10 87 144 18 97 151 10 87 144 10 87 144 13 20 25
61904 +4 5 7 2 3 3 1 1 2 4 4 4 4 5 5 4 4 4
61905 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 1 2
61906 +24 26 27 60 74 84 153 152 153 163 162 163 137 136 137 125 124 125
61907 +125 124 125 125 124 125 125 124 125 137 136 137 125 124 125 26 28 28
61908 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61909 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61910 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61911 +4 4 4 4 4 4
61912 +4 0 0 6 6 6 26 28 28 156 155 156 220 221 221 220 221 221
61913 +174 174 174 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
61914 +220 221 221 167 166 167 60 73 81 7 11 13 0 0 0 0 0 0
61915 +3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 5
61916 +4 4 5 1 1 2 1 1 2 4 5 7 22 40 52 10 87 144
61917 +10 87 144 10 87 144 10 87 144 22 40 52 4 5 7 1 1 2
61918 +1 1 2 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4
61919 +5 5 5 2 2 2 0 0 0 4 0 0 16 19 21 60 73 81
61920 +137 136 137 167 166 167 158 157 158 137 136 137 131 129 131 131 129 131
61921 +125 124 125 125 124 125 131 129 131 155 154 155 60 74 84 5 7 8
61922 +0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61923 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61924 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61925 +4 4 4 4 4 4
61926 +5 5 5 4 0 0 4 0 0 60 73 81 193 200 203 220 221 221
61927 +193 200 203 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
61928 +220 221 221 220 221 221 220 221 221 137 136 137 43 57 68 6 6 6
61929 +4 0 0 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4
61930 +4 4 5 4 4 5 3 2 2 1 1 2 2 5 5 13 20 25
61931 +22 40 52 22 40 52 13 20 25 2 3 3 1 1 2 3 3 3
61932 +4 5 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61933 +1 1 1 0 0 0 2 3 3 41 54 63 131 129 131 166 165 166
61934 +166 165 166 155 154 155 153 152 153 137 136 137 137 136 137 125 124 125
61935 +125 124 125 137 136 137 137 136 137 125 124 125 37 38 37 4 3 3
61936 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
61937 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61938 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61939 +4 4 4 4 4 4
61940 +4 3 3 6 6 6 6 6 6 13 16 17 60 73 81 167 166 167
61941 +220 221 221 220 221 221 220 221 221 193 200 203 193 200 203 193 200 203
61942 +205 212 215 220 221 221 220 221 221 244 246 246 205 212 215 125 124 125
61943 +24 26 27 0 0 0 0 0 0 2 2 2 5 5 5 5 5 5
61944 +4 4 4 4 4 4 4 4 4 4 4 5 1 1 2 4 5 7
61945 +4 5 7 4 5 7 1 1 2 3 2 2 4 4 5 4 4 4
61946 +4 4 4 4 4 4 5 5 5 4 4 4 0 0 0 0 0 0
61947 +2 0 0 26 28 28 125 124 125 174 174 174 174 174 174 166 165 166
61948 +156 155 156 153 152 153 137 136 137 137 136 137 131 129 131 137 136 137
61949 +137 136 137 137 136 137 60 74 84 30 32 34 4 0 0 4 0 0
61950 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61951 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61952 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61953 +4 4 4 4 4 4
61954 +5 5 5 6 6 6 4 0 0 4 0 0 6 6 6 26 28 28
61955 +125 124 125 174 174 174 220 221 221 220 221 221 220 221 221 193 200 203
61956 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
61957 +193 200 203 60 74 84 13 16 17 4 0 0 0 0 0 3 3 3
61958 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 5 3 3 3
61959 +1 1 2 3 3 3 4 4 5 4 4 5 4 4 4 4 4 4
61960 +5 5 5 5 5 5 2 2 2 0 0 0 0 0 0 13 16 17
61961 +60 74 84 174 174 174 193 200 203 174 174 174 167 166 167 163 162 163
61962 +153 152 153 153 152 153 137 136 137 137 136 137 153 152 153 137 136 137
61963 +125 124 125 41 54 63 24 26 27 4 0 0 4 0 0 5 5 5
61964 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61965 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61966 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61967 +4 4 4 4 4 4
61968 +4 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
61969 +6 6 6 37 38 37 131 129 131 220 221 221 220 221 221 220 221 221
61970 +193 200 203 193 200 203 220 221 221 205 212 215 220 221 221 244 246 246
61971 +244 246 246 244 246 246 174 174 174 41 54 63 0 0 0 0 0 0
61972 +0 0 0 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5
61973 +4 4 5 4 4 5 4 4 4 4 4 4 6 6 6 6 6 6
61974 +3 3 3 0 0 0 2 0 0 13 16 17 60 73 81 156 155 156
61975 +220 221 221 193 200 203 174 174 174 165 164 165 163 162 163 154 153 154
61976 +153 152 153 153 152 153 158 157 158 163 162 163 137 136 137 60 73 81
61977 +13 16 17 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
61978 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61979 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61980 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61981 +4 4 4 4 4 4
61982 +5 5 5 4 3 3 4 3 3 6 6 6 6 6 6 6 6 6
61983 +6 6 6 6 6 6 6 6 6 37 38 37 167 166 167 244 246 246
61984 +244 246 246 220 221 221 205 212 215 205 212 215 220 221 221 193 200 203
61985 +220 221 221 244 246 246 244 246 246 244 246 246 137 136 137 37 38 37
61986 +3 2 2 0 0 0 1 1 1 5 5 5 5 5 5 4 4 4
61987 +4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 1 1 1
61988 +0 0 0 5 5 5 43 57 68 153 152 153 193 200 203 220 221 221
61989 +177 184 187 174 174 174 167 166 167 166 165 166 158 157 158 157 156 157
61990 +158 157 158 166 165 166 156 155 156 85 115 134 13 16 17 4 0 0
61991 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
61992 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61993 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61994 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61995 +4 4 4 4 4 4
61996 +5 5 5 4 3 3 6 6 6 6 6 6 4 0 0 6 6 6
61997 +6 6 6 6 6 6 6 6 6 6 6 6 13 16 17 60 73 81
61998 +177 184 187 220 221 221 220 221 221 220 221 221 205 212 215 220 221 221
61999 +220 221 221 205 212 215 220 221 221 244 246 246 244 246 246 205 212 215
62000 +125 124 125 30 32 34 0 0 0 0 0 0 2 2 2 5 5 5
62001 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 0 0
62002 +37 38 37 131 129 131 205 212 215 220 221 221 193 200 203 174 174 174
62003 +174 174 174 174 174 174 167 166 167 165 164 165 166 165 166 167 166 167
62004 +158 157 158 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
62005 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62006 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62007 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62008 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62009 +4 4 4 4 4 4
62010 +4 4 4 5 5 5 4 3 3 4 3 3 6 6 6 6 6 6
62011 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
62012 +26 28 28 125 124 125 205 212 215 220 221 221 220 221 221 220 221 221
62013 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
62014 +244 246 246 190 197 201 60 74 84 16 19 21 4 0 0 0 0 0
62015 +0 0 0 0 0 0 0 0 0 0 0 0 16 19 21 120 125 127
62016 +177 184 187 220 221 221 205 212 215 177 184 187 174 174 174 177 184 187
62017 +174 174 174 174 174 174 167 166 167 174 174 174 166 165 166 137 136 137
62018 +60 73 81 13 16 17 4 0 0 4 0 0 4 3 3 6 6 6
62019 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62020 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62021 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62022 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62023 +4 4 4 4 4 4
62024 +5 5 5 4 3 3 5 5 5 4 3 3 6 6 6 4 0 0
62025 +6 6 6 6 6 6 4 0 0 6 6 6 4 0 0 6 6 6
62026 +6 6 6 6 6 6 37 38 37 137 136 137 193 200 203 220 221 221
62027 +220 221 221 205 212 215 220 221 221 205 212 215 205 212 215 220 221 221
62028 +220 221 221 220 221 221 244 246 246 166 165 166 43 57 68 2 2 2
62029 +0 0 0 4 0 0 16 19 21 60 73 81 157 156 157 202 210 214
62030 +220 221 221 193 200 203 177 184 187 177 184 187 177 184 187 174 174 174
62031 +174 174 174 174 174 174 174 174 174 157 156 157 60 74 84 24 26 27
62032 +4 0 0 4 0 0 4 0 0 6 6 6 4 4 4 4 4 4
62033 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62034 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62035 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62036 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62037 +4 4 4 4 4 4
62038 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
62039 +6 6 6 4 0 0 6 6 6 6 6 6 6 6 6 4 0 0
62040 +4 0 0 4 0 0 6 6 6 24 26 27 60 73 81 167 166 167
62041 +220 221 221 220 221 221 220 221 221 205 212 215 205 212 215 205 212 215
62042 +205 212 215 220 221 221 220 221 221 220 221 221 205 212 215 137 136 137
62043 +60 74 84 125 124 125 137 136 137 190 197 201 220 221 221 193 200 203
62044 +177 184 187 177 184 187 177 184 187 174 174 174 174 174 174 177 184 187
62045 +190 197 201 174 174 174 125 124 125 37 38 37 6 6 6 4 0 0
62046 +4 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62047 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62048 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62049 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62050 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62051 +4 4 4 4 4 4
62052 +4 4 4 4 4 4 5 5 5 5 5 5 4 3 3 6 6 6
62053 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 6 6 6
62054 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
62055 +125 124 125 193 200 203 244 246 246 220 221 221 205 212 215 205 212 215
62056 +205 212 215 193 200 203 205 212 215 205 212 215 220 221 221 220 221 221
62057 +193 200 203 193 200 203 205 212 215 193 200 203 193 200 203 177 184 187
62058 +190 197 201 190 197 201 174 174 174 190 197 201 193 200 203 190 197 201
62059 +153 152 153 60 73 81 4 0 0 4 0 0 4 0 0 3 2 2
62060 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62061 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62062 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62063 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62064 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62065 +4 4 4 4 4 4
62066 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
62067 +6 6 6 4 3 3 4 3 3 4 3 3 6 6 6 6 6 6
62068 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 4 0 0
62069 +4 0 0 26 28 28 131 129 131 220 221 221 244 246 246 220 221 221
62070 +205 212 215 193 200 203 205 212 215 193 200 203 193 200 203 205 212 215
62071 +220 221 221 193 200 203 193 200 203 193 200 203 190 197 201 174 174 174
62072 +174 174 174 190 197 201 193 200 203 193 200 203 167 166 167 125 124 125
62073 +6 6 6 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
62074 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62075 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62076 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62077 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62078 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62079 +4 4 4 4 4 4
62080 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62081 +5 5 5 4 3 3 5 5 5 6 6 6 4 3 3 5 5 5
62082 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62083 +4 0 0 4 0 0 6 6 6 41 54 63 158 157 158 220 221 221
62084 +220 221 221 220 221 221 193 200 203 193 200 203 193 200 203 190 197 201
62085 +190 197 201 190 197 201 190 197 201 190 197 201 174 174 174 193 200 203
62086 +193 200 203 220 221 221 174 174 174 125 124 125 37 38 37 4 0 0
62087 +4 0 0 4 3 3 6 6 6 4 4 4 4 4 4 4 4 4
62088 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62089 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62090 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62091 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62092 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62093 +4 4 4 4 4 4
62094 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62095 +4 4 4 5 5 5 4 3 3 4 3 3 4 3 3 5 5 5
62096 +4 3 3 6 6 6 5 5 5 4 3 3 6 6 6 6 6 6
62097 +6 6 6 6 6 6 4 0 0 4 0 0 13 16 17 60 73 81
62098 +174 174 174 220 221 221 220 221 221 205 212 215 190 197 201 174 174 174
62099 +193 200 203 174 174 174 190 197 201 174 174 174 193 200 203 220 221 221
62100 +193 200 203 131 129 131 37 38 37 6 6 6 4 0 0 4 0 0
62101 +6 6 6 6 6 6 4 3 3 5 5 5 4 4 4 4 4 4
62102 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62103 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62104 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62105 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62106 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62107 +4 4 4 4 4 4
62108 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62109 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
62110 +5 5 5 4 3 3 4 3 3 5 5 5 4 3 3 4 3 3
62111 +5 5 5 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
62112 +6 6 6 125 124 125 174 174 174 220 221 221 220 221 221 193 200 203
62113 +193 200 203 193 200 203 193 200 203 193 200 203 220 221 221 158 157 158
62114 +60 73 81 6 6 6 4 0 0 4 0 0 5 5 5 6 6 6
62115 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62116 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62117 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62118 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62119 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62120 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62121 +4 4 4 4 4 4
62122 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62123 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62124 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
62125 +5 5 5 5 5 5 6 6 6 6 6 6 4 0 0 4 0 0
62126 +4 0 0 4 0 0 26 28 28 125 124 125 174 174 174 193 200 203
62127 +193 200 203 174 174 174 193 200 203 167 166 167 125 124 125 6 6 6
62128 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 5 5 5
62129 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62130 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62131 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62132 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62133 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62134 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62135 +4 4 4 4 4 4
62136 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62137 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62138 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62139 +4 3 3 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62140 +6 6 6 4 0 0 4 0 0 6 6 6 37 38 37 125 124 125
62141 +153 152 153 131 129 131 125 124 125 37 38 37 6 6 6 6 6 6
62142 +6 6 6 4 0 0 6 6 6 6 6 6 4 3 3 5 5 5
62143 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62144 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62145 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62146 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62147 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62148 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62149 +4 4 4 4 4 4
62150 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62151 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62152 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62153 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
62154 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
62155 +24 26 27 24 26 27 6 6 6 6 6 6 6 6 6 4 0 0
62156 +6 6 6 6 6 6 4 0 0 6 6 6 5 5 5 4 3 3
62157 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62158 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62159 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62160 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62161 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62162 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62163 +4 4 4 4 4 4
62164 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62165 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62166 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62167 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
62168 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
62169 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
62170 +4 0 0 6 6 6 6 6 6 4 3 3 5 5 5 4 4 4
62171 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62172 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62173 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62174 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62175 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62176 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62177 +4 4 4 4 4 4
62178 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62179 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62180 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62181 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 5 5 5
62182 +5 5 5 5 5 5 4 0 0 6 6 6 4 0 0 6 6 6
62183 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 4 0 0
62184 +6 6 6 4 3 3 5 5 5 4 3 3 5 5 5 4 4 4
62185 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62186 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62187 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62188 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62189 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62190 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62191 +4 4 4 4 4 4
62192 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62193 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62194 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62195 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62196 +4 3 3 6 6 6 4 3 3 6 6 6 6 6 6 6 6 6
62197 +4 0 0 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62198 +6 6 6 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62199 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62200 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62201 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62202 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62203 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62204 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62205 +4 4 4 4 4 4
62206 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62207 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62208 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62209 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62210 +4 4 4 5 5 5 4 3 3 5 5 5 4 0 0 6 6 6
62211 +6 6 6 4 0 0 6 6 6 6 6 6 4 0 0 6 6 6
62212 +4 3 3 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
62213 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62214 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62215 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62216 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62217 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62218 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62219 +4 4 4 4 4 4
62220 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62221 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62222 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62223 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62224 +4 4 4 5 5 5 4 3 3 5 5 5 6 6 6 4 3 3
62225 +4 3 3 6 6 6 6 6 6 4 3 3 6 6 6 4 3 3
62226 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62227 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62228 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62229 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62230 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62231 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62232 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62233 +4 4 4 4 4 4
62234 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62235 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62236 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62237 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62238 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 6 6 6
62239 +5 5 5 4 3 3 4 3 3 4 3 3 5 5 5 5 5 5
62240 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62241 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62242 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62243 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62244 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62245 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62246 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62247 +4 4 4 4 4 4
62248 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62249 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62250 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62251 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62252 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
62253 +5 5 5 4 3 3 5 5 5 5 5 5 4 4 4 4 4 4
62254 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62255 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62256 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62257 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62258 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62259 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62260 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62261 +4 4 4 4 4 4
62262 diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
62263 index fb23623..1edb18e 100644
62264 --- a/drivers/xen/events/events_base.c
62265 +++ b/drivers/xen/events/events_base.c
62266 @@ -1565,7 +1565,7 @@ void xen_irq_resume(void)
62267 restore_pirqs();
62268 }
62269
62270 -static struct irq_chip xen_dynamic_chip __read_mostly = {
62271 +static struct irq_chip xen_dynamic_chip = {
62272 .name = "xen-dyn",
62273
62274 .irq_disable = disable_dynirq,
62275 @@ -1579,7 +1579,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
62276 .irq_retrigger = retrigger_dynirq,
62277 };
62278
62279 -static struct irq_chip xen_pirq_chip __read_mostly = {
62280 +static struct irq_chip xen_pirq_chip = {
62281 .name = "xen-pirq",
62282
62283 .irq_startup = startup_pirq,
62284 @@ -1599,7 +1599,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
62285 .irq_retrigger = retrigger_dynirq,
62286 };
62287
62288 -static struct irq_chip xen_percpu_chip __read_mostly = {
62289 +static struct irq_chip xen_percpu_chip = {
62290 .name = "xen-percpu",
62291
62292 .irq_disable = disable_dynirq,
62293 diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
62294 index 00f40f0..e3c0b15 100644
62295 --- a/drivers/xen/evtchn.c
62296 +++ b/drivers/xen/evtchn.c
62297 @@ -201,8 +201,8 @@ static ssize_t evtchn_read(struct file *file, char __user *buf,
62298
62299 /* Byte lengths of two chunks. Chunk split (if any) is at ring wrap. */
62300 if (((c ^ p) & EVTCHN_RING_SIZE) != 0) {
62301 - bytes1 = (EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c)) *
62302 - sizeof(evtchn_port_t);
62303 + bytes1 = EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c);
62304 + bytes1 *= sizeof(evtchn_port_t);
62305 bytes2 = EVTCHN_RING_MASK(p) * sizeof(evtchn_port_t);
62306 } else {
62307 bytes1 = (p - c) * sizeof(evtchn_port_t);
62308 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c
62309 index fef20db..d28b1ab 100644
62310 --- a/drivers/xen/xenfs/xenstored.c
62311 +++ b/drivers/xen/xenfs/xenstored.c
62312 @@ -24,7 +24,12 @@ static int xsd_release(struct inode *inode, struct file *file)
62313 static int xsd_kva_open(struct inode *inode, struct file *file)
62314 {
62315 file->private_data = (void *)kasprintf(GFP_KERNEL, "0x%p",
62316 +#ifdef CONFIG_GRKERNSEC_HIDESYM
62317 + NULL);
62318 +#else
62319 xen_store_interface);
62320 +#endif
62321 +
62322 if (!file->private_data)
62323 return -ENOMEM;
62324 return 0;
62325 diff --git a/firmware/Makefile b/firmware/Makefile
62326 index e297e1b..aeb0982 100644
62327 --- a/firmware/Makefile
62328 +++ b/firmware/Makefile
62329 @@ -35,9 +35,11 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
62330 bnx2x/bnx2x-e1h-6.2.9.0.fw \
62331 bnx2x/bnx2x-e2-6.2.9.0.fw
62332 fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
62333 + bnx2/bnx2-mips-09-6.2.1b.fw \
62334 bnx2/bnx2-rv2p-09-6.0.17.fw \
62335 bnx2/bnx2-rv2p-09ax-6.0.17.fw \
62336 bnx2/bnx2-mips-06-6.2.1.fw \
62337 + bnx2/bnx2-mips-06-6.2.3.fw \
62338 bnx2/bnx2-rv2p-06-6.0.15.fw
62339 fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
62340 fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
62341 diff --git a/firmware/WHENCE b/firmware/WHENCE
62342 index 0c4d96d..b17700f 100644
62343 --- a/firmware/WHENCE
62344 +++ b/firmware/WHENCE
62345 @@ -653,21 +653,23 @@ Found in hex form in kernel source.
62346 Driver: BNX2 - Broadcom NetXtremeII
62347
62348 File: bnx2/bnx2-mips-06-6.2.1.fw
62349 +File: bnx2/bnx2-mips-06-6.2.3.fw
62350 File: bnx2/bnx2-rv2p-06-6.0.15.fw
62351 File: bnx2/bnx2-mips-09-6.2.1a.fw
62352 +File: bnx2/bnx2-mips-09-6.2.1b.fw
62353 File: bnx2/bnx2-rv2p-09-6.0.17.fw
62354 File: bnx2/bnx2-rv2p-09ax-6.0.17.fw
62355
62356 Licence:
62357 -
62358 - This file contains firmware data derived from proprietary unpublished
62359 - source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62360 -
62361 - Permission is hereby granted for the distribution of this firmware data
62362 - in hexadecimal or equivalent format, provided this copyright notice is
62363 - accompanying it.
62364 -
62365 -Found in hex form in kernel source.
62366 +
62367 + This file contains firmware data derived from proprietary unpublished
62368 + source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62369 +
62370 + Permission is hereby granted for the distribution of this firmware data
62371 + in hexadecimal or equivalent format, provided this copyright notice is
62372 + accompanying it.
62373 +
62374 +Found in hex form in kernel source.
62375
62376 --------------------------------------------------------------------------
62377
62378 diff --git a/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62379 new file mode 100644
62380 index 0000000..da72bf1
62381 --- /dev/null
62382 +++ b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62383 @@ -0,0 +1,5804 @@
62384 +:10000000080001180800000000004A68000000C84D
62385 +:1000100000000000000000000000000008004A6826
62386 +:100020000000001400004B30080000A00800000091
62387 +:100030000000569400004B44080058200000008443
62388 +:100040000000A1D808005694000001580000A25CEE
62389 +:100050000800321008000000000072F00000A3B495
62390 +:10006000000000000000000000000000080072F026
62391 +:1000700000000024000116A40800049008000400F9
62392 +:10008000000017D4000116C80000000000000000A6
62393 +:100090000000000000000000000000000000000060
62394 +:1000A000080000A80800000000003BFC00012E9C96
62395 +:1000B0000000000000000000000000000000000040
62396 +:1000C00000000000000000000A00004600000000E0
62397 +:1000D000000000000000000D636F6D362E322E33DD
62398 +:1000E0000000000006020302000000000000000300
62399 +:1000F000000000C800000032000000030000000003
62400 +:1001000000000000000000000000000000000000EF
62401 +:1001100000000010000001360000EA600000000549
62402 +:1001200000000000000000000000000000000008C7
62403 +:1001300000000000000000000000000000000000BF
62404 +:1001400000000000000000000000000000000000AF
62405 +:10015000000000000000000000000000000000009F
62406 +:10016000000000020000000000000000000000008D
62407 +:10017000000000000000000000000000000000007F
62408 +:10018000000000000000000000000010000000005F
62409 +:10019000000000000000000000000000000000005F
62410 +:1001A000000000000000000000000000000000004F
62411 +:1001B000000000000000000000000000000000003F
62412 +:1001C000000000000000000000000000000000002F
62413 +:1001D000000000000000000000000000000000001F
62414 +:1001E0000000000010000003000000000000000DEF
62415 +:1001F0000000000D3C02080024424AA03C03080015
62416 +:1002000024634B9CAC4000000043202B1480FFFD76
62417 +:10021000244200043C1D080037BD7FFC03A0F021F0
62418 +:100220003C100800261001183C1C0800279C4AA01E
62419 +:100230000E000168000000000000000D27470100CB
62420 +:1002400090E3000B2402001A94E5000814620028D1
62421 +:10025000000020218CE200003C0308008C63004475
62422 +:1002600094E60014000211C20002104030A4000203
62423 +:10027000005A10212463000130A50004A446008028
62424 +:100280003C010800AC23004410A000190004202BFE
62425 +:100290008F4202B804410008240400013C02080017
62426 +:1002A0008C420060244200013C010800AC22006046
62427 +:1002B00003E00008008010218CE2002094E3001687
62428 +:1002C00000002021AF4202808CE20004A743028498
62429 +:1002D000AF4202883C021000AF4202B83C02080064
62430 +:1002E0008C42005C244200013C010800AC22005C0E
62431 +:1002F00003E00008008010212747010090E3000B75
62432 +:100300002402000394E50008146200280000202164
62433 +:100310008CE200003C0308008C63004494E6001467
62434 +:10032000000211C20002104030A40002005A102145
62435 +:100330002463000130A50004A44600803C010800AD
62436 +:10034000AC23004410A000190004202B8F4202B8F7
62437 +:1003500004410008240400013C0208008C420060B3
62438 +:10036000244200013C010800AC22006003E00008C8
62439 +:10037000008010218CE2002094E300160000202170
62440 +:10038000AF4202808CE20004A7430284AF4202889D
62441 +:100390003C021000AF4202B83C0208008C42005CF4
62442 +:1003A000244200013C010800AC22005C03E000088C
62443 +:1003B000008010218F4301002402010050620003DD
62444 +:1003C000000311C20000000D000311C20002104022
62445 +:1003D000005A1021A440008003E000080000102112
62446 +:1003E0009362000003E00008AF80000003E0000813
62447 +:1003F0000000102103E00008000010212402010089
62448 +:1004000014820008000000003C0208008C4200FC3E
62449 +:10041000244200013C010800AC2200FC0A0000DD7F
62450 +:1004200030A200203C0208008C42008424420001DB
62451 +:100430003C010800AC22008430A2002010400008DB
62452 +:1004400030A300103C0208008C4201082442000145
62453 +:100450003C010800AC22010803E000080000000095
62454 +:1004600010600008000000003C0208008C420104FB
62455 +:10047000244200013C010800AC22010403E0000812
62456 +:10048000000000003C0208008C42010024420001F0
62457 +:100490003C010800AC22010003E00008000000005D
62458 +:1004A00027BDFFE8AFBF0010274401009483000878
62459 +:1004B000306200041040001B306600028F4202B818
62460 +:1004C00004410008240500013C0208008C42006041
62461 +:1004D000244200013C010800AC2200600A0001290E
62462 +:1004E0008FBF00108C82002094830016000028210A
62463 +:1004F000AF4202808C820004A7430284AF4202888C
62464 +:100500003C021000AF4202B83C0208008C42005C82
62465 +:10051000244200013C010800AC22005C0A000129D1
62466 +:100520008FBF001010C00006006028218F4401001A
62467 +:100530000E0000CD000000000A0001282405000183
62468 +:100540008F8200088F4301045043000700002821D8
62469 +:100550008F4401000E0000CD000000008F42010416
62470 +:10056000AF820008000028218FBF001000A01021DA
62471 +:1005700003E0000827BD001827BDFFE8AFBF001447
62472 +:10058000AFB00010974201083043700024022000F1
62473 +:100590001062000B286220011440002F000010217F
62474 +:1005A00024024000106200250000000024026000C8
62475 +:1005B00010620026000010210A0001658FBF0014A0
62476 +:1005C00027500100920200091040001A2403000184
62477 +:1005D0003C0208008C420020104000160000182148
62478 +:1005E0000E00049300000000960300083C0608007B
62479 +:1005F00094C64B5E8E0400188F8200209605000C76
62480 +:1006000000031C0000661825AC440000AC45000443
62481 +:1006100024040001AC400008AC40000CAC400010C9
62482 +:10062000AC400014AC4000180E0004B8AC43001CF1
62483 +:10063000000018210A000164006010210E0003254B
62484 +:10064000000000000A000164000010210E000EE905
62485 +:1006500000000000000010218FBF00148FB00010B8
62486 +:1006600003E0000827BD001827BDFFE0AFB2001867
62487 +:100670003C036010AFBF001CAFB10014AFB000105E
62488 +:100680008C6450002402FF7F3C1A800000822024EA
62489 +:100690003484380C24020037AC6450003C1208004B
62490 +:1006A00026524AD8AF42000824020C80AF420024F0
62491 +:1006B0003C1B80083C06080024C60324024010218D
62492 +:1006C0002404001D2484FFFFAC4600000481FFFDCC
62493 +:1006D000244200043C020800244204B03C0108000B
62494 +:1006E000AC224AE03C020800244202303C010800EF
62495 +:1006F000AC224AE43C020800244201743C03080096
62496 +:100700002463032C3C040800248403D83C0508001F
62497 +:1007100024A538F03C010800AC224B403C02080004
62498 +:10072000244202EC3C010800AC264B243C010800AA
62499 +:10073000AC254B343C010800AC234B3C3C01080089
62500 +:10074000AC244B443C010800AC224B483C0108005F
62501 +:10075000AC234ADC3C010800AC204AE83C0108001C
62502 +:10076000AC204AEC3C010800AC204AF03C010800F7
62503 +:10077000AC204AF43C010800AC204AF83C010800D7
62504 +:10078000AC204AFC3C010800AC204B003C010800B6
62505 +:10079000AC244B043C010800AC204B083C01080091
62506 +:1007A000AC204B0C3C010800AC204B103C01080075
62507 +:1007B000AC204B143C010800AC204B183C01080055
62508 +:1007C000AC264B1C3C010800AC264B203C01080029
62509 +:1007D000AC254B303C010800AC234B380E000623FF
62510 +:1007E000000000003C028000344200708C42000097
62511 +:1007F000AF8200143C0308008C6300208F82000449
62512 +:10080000104300043C0280000E00045BAF83000430
62513 +:100810003C028000344600703C0308008C6300A05A
62514 +:100820003C0208008C4200A4104300048F84001492
62515 +:100830003C010800AC2300A4A743009E8CCA000022
62516 +:100840003C0308008C6300BC3C0208008C4200B8EA
62517 +:100850000144202300641821000040210064202B63
62518 +:1008600000481021004410213C010800AC2300BCCA
62519 +:100870003C010800AC2200B88F5100003222000772
62520 +:100880001040FFDCAF8A00148CC600003C05080055
62521 +:100890008CA500BC3C0408008C8400B800CA30233E
62522 +:1008A00000A628210000102100A6302B0082202164
62523 +:1008B00000862021322700013C010800AC2500BC45
62524 +:1008C0003C010800AC2400B810E0001F32220002F6
62525 +:1008D0008F420100AF4200208F420104AF4200A8C6
62526 +:1008E0009342010B0E0000C6305000FF2E02001E86
62527 +:1008F00054400004001010800E0000C90A000213CA
62528 +:1009000000000000005210218C4200000040F80955
62529 +:1009100000000000104000053C0240008F4301042D
62530 +:100920003C026020AC4300143C024000AF4201385E
62531 +:100930003C0208008C420034244200013C010800C3
62532 +:10094000AC220034322200021040000E3222000499
62533 +:100950008F4201400E0000C6AF4200200E000295FB
62534 +:10096000000000003C024000AF4201783C02080059
62535 +:100970008C420038244200013C010800AC220038BF
62536 +:10098000322200041040FF983C0280008F42018018
62537 +:100990000E0000C6AF4200208F43018024020F00EA
62538 +:1009A00014620005000000008F420188A742009CED
62539 +:1009B0000A0002483C0240009362000024030050F9
62540 +:1009C000304200FF144300083C0240000E00027B4E
62541 +:1009D00000000000544000043C0240000E000D7571
62542 +:1009E000000000003C024000AF4201B83C02080099
62543 +:1009F0008C42003C244200013C010800AC22003C37
62544 +:100A00000A0001C83C0280003C0290003442000110
62545 +:100A100000822025AF4400208F4200200440FFFECA
62546 +:100A20000000000003E00008000000003C0280001D
62547 +:100A3000344200010082202503E00008AF4400207A
62548 +:100A400027BDFFE0AFB10014AFB0001000808821D7
62549 +:100A5000AFBF00180E00025030B000FF9362007D5F
62550 +:100A60000220202102028025A370007D8F70007477
62551 +:100A70003C0280000E000259020280241600000988
62552 +:100A80008FBF00188F4201F80440FFFE24020002CD
62553 +:100A9000AF5101C0A34201C43C021000AF4201F8B3
62554 +:100AA0008FBF00188FB100148FB0001003E0000852
62555 +:100AB00027BD002027BDFFE8AFBF0010974201848B
62556 +:100AC0008F440188304202001040000500002821B8
62557 +:100AD0000E000FAA000000000A00028D240500018C
62558 +:100AE0003C02FF0004800005008218243C02040040
62559 +:100AF000506200019362003E240500018FBF001088
62560 +:100B000000A0102103E0000827BD0018A360002208
62561 +:100B10008F4401400A00025E2405000127BDFFE862
62562 +:100B2000AFBF0014AFB0001093620000304400FF6C
62563 +:100B300038830020388200300003182B0002102B6D
62564 +:100B40000062182410600003240200501482008008
62565 +:100B50008FBF001493620005304200011040007CFA
62566 +:100B60008FBF0014934201482443FFFF2C6200050D
62567 +:100B7000104000788FB00010000310803C03080084
62568 +:100B800024634A68004310218C42000000400008A2
62569 +:100B9000000000000E0002508F4401408F70000CD6
62570 +:100BA0008F4201441602000224020001AF62000CD1
62571 +:100BB0000E0002598F4401408F420144145000043A
62572 +:100BC0008FBF00148FB000100A000F2027BD00183F
62573 +:100BD0008F62000C0A0003040000000097620010FE
62574 +:100BE0008F4301443042FFFF1462001A00000000EE
62575 +:100BF00024020001A76200108F4202380443001053
62576 +:100C00008F4201403C02003F3446F0003C0560004A
62577 +:100C10003C04FFC08CA22BBC0044182400461024C6
62578 +:100C20000002130200031D82106200390000000060
62579 +:100C30008F4202380440FFF7000000008F4201405D
62580 +:100C4000AF4202003C021000AF4202380A00032209
62581 +:100C50008FBF0014976200100A0003040000000018
62582 +:100C60000E0002508F440140976200128F430144EE
62583 +:100C70003050FFFF1603000224020001A762001299
62584 +:100C80000E0002598F4401408F42014416020004B5
62585 +:100C90008FBF00148FB000100A00029127BD00180A
62586 +:100CA000976200120A00030400000000976200141B
62587 +:100CB0008F4301443042FFFF14620006240200010A
62588 +:100CC0008FBF00148FB00010A76200140A00124AF0
62589 +:100CD00027BD0018976200141440001D8FBF001438
62590 +:100CE0000A00031C00000000976200168F430144B5
62591 +:100CF0003042FFFF1462000B240200018FBF00147A
62592 +:100D00008FB00010A76200160A000B1227BD001852
62593 +:100D10009742007824420004A76200100A000322D0
62594 +:100D20008FBF001497620016240300013042FFFFBA
62595 +:100D3000144300078FBF00143C0208008C4200706F
62596 +:100D4000244200013C010800AC2200708FBF001457
62597 +:100D50008FB0001003E0000827BD001827BDFFE892
62598 +:100D6000AFBF0014AFB000108F50010093620000BD
62599 +:100D700093430109304400FF2402001F106200A5C4
62600 +:100D80002862002010400018240200382862000A5F
62601 +:100D90001040000C2402000B286200081040002CB8
62602 +:100DA00000000000046000E52862000214400028F2
62603 +:100DB00024020006106200268FBF00140A00041FE0
62604 +:100DC0008FB000101062005E2862000B144000DC3F
62605 +:100DD0008FBF00142402000E106200738FB0001049
62606 +:100DE0000A00041F00000000106200C028620039E1
62607 +:100DF0001040000A2402008024020036106200CA5B
62608 +:100E000028620037104000B424020035106200C18F
62609 +:100E10008FBF00140A00041F8FB000101062002B57
62610 +:100E20002862008110400006240200C82402003914
62611 +:100E3000106200B48FBF00140A00041F8FB00010AE
62612 +:100E4000106200998FBF00140A00041F8FB00010B9
62613 +:100E50003C0208008C420020104000B98FBF0014F3
62614 +:100E60000E000493000000008F4201008F830020D9
62615 +:100E70009745010C97460108AC6200008F420104BF
62616 +:100E80003C04080094844B5E00052C00AC62000416
62617 +:100E90008F4201180006340000C43025AC620008FF
62618 +:100EA0008F42011C24040001AC62000C9342010A31
62619 +:100EB00000A22825AC650010AC600014AC600018DE
62620 +:100EC000AC66001C0A0003F58FBF00143C0208004A
62621 +:100ED0008C4200201040009A8FBF00140E00049333
62622 +:100EE00000000000974401083C03080094634B5E37
62623 +:100EF0009745010C000422029746010E8F820020C4
62624 +:100F0000000426000083202500052C003C030080FF
62625 +:100F100000A6282500832025AC400000AC4000043A
62626 +:100F2000AC400008AC40000CAC450010AC400014D4
62627 +:100F3000AC400018AC44001C0A0003F42404000177
62628 +:100F40009742010C14400015000000009362000558
62629 +:100F50003042001014400011000000000E0002504A
62630 +:100F6000020020219362000502002021344200107B
62631 +:100F70000E000259A36200059362000024030020C2
62632 +:100F8000304200FF1043006D020020218FBF00148B
62633 +:100F90008FB000100A000FC027BD00180000000D20
62634 +:100FA0000A00041E8FBF00143C0208008C4200207F
62635 +:100FB000104000638FBF00140E0004930000000077
62636 +:100FC0008F4201048F8300209744010C3C050800E8
62637 +:100FD00094A54B5EAC6200009762002C00042400D4
62638 +:100FE0003042FFFF008220253C02400E00A228254F
62639 +:100FF000AC640004AC600008AC60000CAC60001095
62640 +:10100000AC600014AC600018AC65001C0A0003F46E
62641 +:10101000240400010E00025002002021A7600008F5
62642 +:101020000E00025902002021020020210E00025E63
62643 +:10103000240500013C0208008C42002010400040C2
62644 +:101040008FBF00140E000493000000009742010CB3
62645 +:101050008F8300203C05080094A54B5E000214001D
62646 +:10106000AC700000AC620004AC6000088F64004CFF
62647 +:101070003C02401F00A22825AC64000C8F62005087
62648 +:1010800024040001AC6200108F620054AC620014B2
62649 +:10109000AC600018AC65001C8FBF00148FB000104E
62650 +:1010A0000A0004B827BD0018240200205082002541
62651 +:1010B0008FB000100E000F0A020020211040002007
62652 +:1010C0008FBF0014020020218FB0001000002821E3
62653 +:1010D0000A00025E27BD0018020020218FBF001405
62654 +:1010E0008FB000100A00058027BD00189745010C3D
62655 +:1010F000020020218FBF00148FB000100A0005A04D
62656 +:1011000027BD0018020020218FB000100A0005C57D
62657 +:1011100027BD00189345010D020020218FB000105B
62658 +:101120000A00060F27BD0018020020218FBF0014FF
62659 +:101130008FB000100A0005EB27BD00188FBF001408
62660 +:101140008FB0001003E0000827BD00188F4202781E
62661 +:101150000440FFFE2402000234840080AF440240B9
62662 +:10116000A34202443C02100003E00008AF420278B0
62663 +:101170003C04080094844B6A3C0208008C424B7487
62664 +:101180003083FFFF000318C000431021AF42003C32
62665 +:101190003C0208008C424B70AF4200383C020050C9
62666 +:1011A00034420008AF4200300000000000000000A0
62667 +:1011B000000000008F420000304200201040FFFD80
62668 +:1011C000000000008F4204003C010800AC224B608C
62669 +:1011D0008F4204043C010800AC224B643C02002016
62670 +:1011E000AF420030000000003C02080094424B680F
62671 +:1011F0003C03080094634B6C3C05080094A54B6EBF
62672 +:1012000024840001004310213083FFFF3C010800CB
62673 +:10121000A4224B683C010800A4244B6A1465000317
62674 +:10122000000000003C010800A4204B6A03E0000815
62675 +:10123000000000003C05000A27BDFFE80345282107
62676 +:101240003C04080024844B50AFBF00100E00051D65
62677 +:101250002406000A3C02080094424B523C0308005A
62678 +:1012600094634B6E3042000F244200030043180485
62679 +:1012700024027FFF0043102B10400002AF83001CAC
62680 +:101280000000000D0E00042A000000003C020800CF
62681 +:1012900094424B5A8FBF001027BD001803E000088E
62682 +:1012A000A74200A23C02000A034210219443000618
62683 +:1012B0003C02080094424B5A3C010800A4234B56C0
62684 +:1012C000004310238F83001C00021400000214034B
62685 +:1012D0000043102B03E000083842000127BDFFE85F
62686 +:1012E000AFBF00103C02000A0342102194420006E6
62687 +:1012F0003C010800A4224B560E00047700000000B9
62688 +:101300005440FFF93C02000A8FBF001003E00008C0
62689 +:1013100027BD001827BDFFE8AFBF00100E000477FF
62690 +:101320000000000010400003000000000E000485D3
62691 +:10133000000000003C0208008C424B608FBF001090
62692 +:1013400027430400AF4200383C0208008C424B6443
62693 +:1013500027BD0018AF830020AF42003C3C020005CF
62694 +:10136000AF42003003E00008AF8000188F82001801
62695 +:101370003C0300060002114000431025AF4200303C
62696 +:101380000000000000000000000000008F4200008C
62697 +:10139000304200101040FFFD27420400AF820020C1
62698 +:1013A00003E00008AF8000183C0608008CC64B64C0
62699 +:1013B0008F8500188F8300203C02080094424B5A0E
62700 +:1013C00027BDFFE024A50001246300202442000182
62701 +:1013D00024C70020AFB10014AFB00010AFBF001899
62702 +:1013E000AF850018AF8300203C010800A4224B5AAF
62703 +:1013F000309000FF3C010800AC274B6404C100089A
62704 +:101400000000882104E00006000000003C02080003
62705 +:101410008C424B60244200013C010800AC224B602E
62706 +:101420003C02080094424B5A3C03080094634B680A
62707 +:101430000010202B004310262C42000100441025F0
62708 +:10144000144000048F830018240200101462000F5F
62709 +:10145000000000000E0004A9241100013C03080054
62710 +:1014600094634B5A3C02080094424B681462000398
62711 +:10147000000000000E00042A000000001600000317
62712 +:10148000000000000E000493000000003C03080070
62713 +:1014900094634B5E3C02080094424B5C2463000161
62714 +:1014A0003064FFFF3C010800A4234B5E148200035C
62715 +:1014B000000000003C010800A4204B5E1200000662
62716 +:1014C000000000003C02080094424B5AA74200A2D0
62717 +:1014D0000A00050B022010210E0004770000000016
62718 +:1014E00010400004022010210E00048500000000BE
62719 +:1014F000022010218FBF00188FB100148FB0001090
62720 +:1015000003E0000827BD00203084FFFF30A5FFFF67
62721 +:101510000000182110800007000000003082000148
62722 +:101520001040000200042042006518210A00051343
62723 +:101530000005284003E000080060102110C00006EC
62724 +:1015400024C6FFFF8CA2000024A50004AC8200008A
62725 +:101550000A00051D2484000403E0000800000000C8
62726 +:1015600010A0000824A3FFFFAC86000000000000CC
62727 +:10157000000000002402FFFF2463FFFF1462FFFA53
62728 +:101580002484000403E0000800000000240200019D
62729 +:10159000AF62000CA7620010A7620012A7620014DD
62730 +:1015A00003E00008A76200163082007F034210218A
62731 +:1015B0003C08000E004818213C0208008C42002024
62732 +:1015C00027BDFFD82407FF80AFB3001CAFB20018BF
62733 +:1015D000AFB10014AFB00010AFBF00200080802179
62734 +:1015E00030B100FF0087202430D200FF1040002FD0
62735 +:1015F00000009821AF44002C9062000024030050AA
62736 +:10160000304200FF1443000E000000003C020800BE
62737 +:101610008C4200E00202102100471024AF42002C4F
62738 +:101620003C0208008C4200E0020210213042007FA0
62739 +:101630000342102100481021944200D43053FFFF90
62740 +:101640000E000493000000003C02080094424B5E30
62741 +:101650008F8300200011340000C2302500122C00BE
62742 +:101660003C02400000C2302534A50001AC700000EF
62743 +:101670008FBF0020AC6000048FB20018AC7300086C
62744 +:101680008FB10014AC60000C8FB3001CAC6500106F
62745 +:101690008FB00010AC60001424040001AC6000188E
62746 +:1016A00027BD00280A0004B8AC66001C8FBF0020CC
62747 +:1016B0008FB3001C8FB200188FB100148FB00010D0
62748 +:1016C00003E0000827BD00289343010F2402001007
62749 +:1016D0001062000E2865001110A0000724020012FD
62750 +:1016E000240200082405003A1062000600003021A0
62751 +:1016F00003E0000800000000240500351462FFFC30
62752 +:10170000000030210A000538000000008F420074FC
62753 +:1017100024420FA003E00008AF62000C27BDFFE8E1
62754 +:10172000AFBF00100E00025E240500018FBF001045
62755 +:1017300024020001A762001227BD00182402000144
62756 +:1017400003E00008A360002227BDFFE0AFB1001452
62757 +:10175000AFB00010AFBF001830B1FFFF0E00025055
62758 +:10176000008080219362003F24030004304200FF88
62759 +:101770001443000C02002021122000082402000A59
62760 +:101780000E00053100000000936200052403FFFEF7
62761 +:1017900000431024A362000524020012A362003F4C
62762 +:1017A000020020210E000259A360008116200003D0
62763 +:1017B000020020210E0005950000000002002021FB
62764 +:1017C000322600FF8FBF00188FB100148FB00010B9
62765 +:1017D000240500380A00053827BD002027BDFFE09A
62766 +:1017E000AFBF001CAFB20018AFB10014AFB0001013
62767 +:1017F0000E000250008080210E0005310000000024
62768 +:101800009362003F24120018305100FF123200038F
62769 +:101810000200202124020012A362003F936200050F
62770 +:101820002403FFFE004310240E000259A3620005AA
62771 +:10183000020020212405002016320007000030217C
62772 +:101840008FBF001C8FB200188FB100148FB0001032
62773 +:101850000A00025E27BD00208FBF001C8FB2001857
62774 +:101860008FB100148FB00010240500390A0005382C
62775 +:1018700027BD002027BDFFE8AFB00010AFBF0014A8
62776 +:101880009742010C2405003600808021144000108E
62777 +:10189000304600FF0E00025000000000240200123B
62778 +:1018A000A362003F93620005344200100E00053130
62779 +:1018B000A36200050E00025902002021020020212F
62780 +:1018C0000E00025E240500200A000604000000004D
62781 +:1018D0000E000538000000000E000250020020211A
62782 +:1018E000936200232403FF9F020020210043102461
62783 +:1018F0008FBF00148FB00010A36200230A000259AA
62784 +:1019000027BD001827BDFFE0AFBF0018AFB100141E
62785 +:10191000AFB0001030B100FF0E00025000808021F7
62786 +:10192000240200120E000531A362003F0E0002598E
62787 +:101930000200202102002021022030218FBF001848
62788 +:101940008FB100148FB00010240500350A0005384F
62789 +:1019500027BD0020A380002C03E00008A380002DF9
62790 +:101960008F4202780440FFFE8F820034AF42024073
62791 +:1019700024020002A34202443C02100003E00008DB
62792 +:10198000AF4202783C0360008C6254003042000891
62793 +:101990001440FFFD000000008C625408AF82000C70
62794 +:1019A00024020052AC605408AC645430AC6254342D
62795 +:1019B0002402000803E00008AC6254003C0260000E
62796 +:1019C0008C42540030420008104000053C03600087
62797 +:1019D0008C625400304200081440FFFD00000000FB
62798 +:1019E0008F83000C3C02600003E00008AC43540805
62799 +:1019F00090A3000024020005008040213063003FD6
62800 +:101A000000004821146200050000502190A2001C33
62801 +:101A100094A3001E304900FF306AFFFFAD00000CA8
62802 +:101A2000AD000010AD000024950200148D05001CCF
62803 +:101A30008D0400183042FFFF0049102300021100FE
62804 +:101A4000000237C3004038210086202300A2102B5B
62805 +:101A50000082202300A72823AD05001CAD04001838
62806 +:101A6000A5090014A5090020A50A001603E0000836
62807 +:101A7000A50A00228F4201F80440FFFE2402000262
62808 +:101A8000AF4401C0A34201C43C02100003E00008BF
62809 +:101A9000AF4201F83C0208008C4200B427BDFFE8C9
62810 +:101AA000AFBF001424420001AFB000103C01080099
62811 +:101AB000AC2200B48F4300243C02001F30AA00FF78
62812 +:101AC0003442FF8030D800FF006280240080F8217B
62813 +:101AD00030EF00FF1158003B01405821240CFF80DB
62814 +:101AE0003C19000A3163007F000310C00003194055
62815 +:101AF000006218213C0208008C4200DC25680001CD
62816 +:101B0000310D007F03E21021004310213043007F9C
62817 +:101B100003431821004C102400794821AF420024CF
62818 +:101B20008D220024016C1824006C7026AD22000C5C
62819 +:101B30008D220024310800FFAD22001095220014F0
62820 +:101B4000952300208D27001C3042FFFF3063FFFFEC
62821 +:101B50008D2600180043102300021100000227C345
62822 +:101B60000040282100C4302300E2102B00C23023A3
62823 +:101B700000E53823AD27001CAD2600189522002073
62824 +:101B8000A522001495220022154B000AA52200165A
62825 +:101B90008D2300248D220008254600013145008058
62826 +:101BA0001462000430C4007F108F000238AA008045
62827 +:101BB00000C0502151AF000131C800FF1518FFC906
62828 +:101BC000010058218F8400343082007F03421821A5
62829 +:101BD0003C02000A006218212402FF8000822024B7
62830 +:101BE000AF440024A06A0079A06A00838C62005090
62831 +:101BF0008F840034AC6200708C6500743C027FFFFF
62832 +:101C00003442FFFF00A228240E00066BAC6500746E
62833 +:101C1000AF5000248FBF00148FB0001003E0000805
62834 +:101C200027BD001827BDFFC0AFBE0038AFB70034D6
62835 +:101C3000AFB5002CAFB20020AFB1001CAFB00018A0
62836 +:101C4000AFBF003CAFB60030AFB40028AFB3002444
62837 +:101C50008F4500248F4600288F43002C3C02001F34
62838 +:101C60003442FF800062182400C230240080A82182
62839 +:101C7000AFA3001400A2F0240E00062FAFA60010A0
62840 +:101C80003C0208008C4200E02410FF8003608821A1
62841 +:101C900002A2102100501024AF4200243C02080090
62842 +:101CA0008C4200E002A210213042007F0342182142
62843 +:101CB0003C02000A00629021924200D293630084A9
62844 +:101CC000305700FF306300FF24020001106200342F
62845 +:101CD000036020212402000214620036000000008C
62846 +:101CE0000E001216024028219223008392220083C4
62847 +:101CF0003063007F3042007F000210C000031940B3
62848 +:101D0000006218213C0208008C4200DC02A2102173
62849 +:101D10000043382100F01024AF42002892250078BB
62850 +:101D20009224008330E2007F034218213C02000C21
62851 +:101D300014850007006280212402FFFFA24200F107
62852 +:101D40002402FFFFA64200F20A0007272402FFFF39
62853 +:101D500096020020A24200F196020022A64200F262
62854 +:101D60008E020024AE4200F492220083A24200F0D0
62855 +:101D70008E4200C8AE4200FC8E4200C4AE4200F863
62856 +:101D80008E220050AE4201008E4200CCAE420104D1
62857 +:101D9000922200853042003F0A0007823442004010
62858 +:101DA0000E00123902402821922200850A00078283
62859 +:101DB0003042003F936200852403FFDF3042003F42
62860 +:101DC000A36200859362008500431024A36200850E
62861 +:101DD0009363008393620078307400FF304200FF09
62862 +:101DE00010540036240AFF803C0C000C3283007F24
62863 +:101DF000000310C000031940006218213C020800D3
62864 +:101E00008C4200DC268800013109007F02A21021EB
62865 +:101E10000043382130E2007F0342182100EA1024F9
62866 +:101E2000AF420028006C80218E020024028A182410
62867 +:101E3000006A5826AE02000C8E020024310800FF12
62868 +:101E4000AE02001096020014960300208E07001CBC
62869 +:101E50003042FFFF3063FFFF8E060018004310235F
62870 +:101E600000021100000227C30040282100C43023D3
62871 +:101E700000E2102B00C2302300E53823AE07001C1F
62872 +:101E8000AE06001896020020A60200149602002258
62873 +:101E9000A602001692220079304200FF105400077B
62874 +:101EA0000000000051370001316800FF92220078E5
62875 +:101EB000304200FF1448FFCD0100A0219222008390
62876 +:101EC000A22200798E2200500A0007E2AE220070A2
62877 +:101ED000A22200858E22004C2405FF80AE42010C18
62878 +:101EE0009222008534420020A2220085924200D135
62879 +:101EF0003C0308008C6300DC305400FF3C02080007
62880 +:101F00008C4200E400143140001420C002A31821C8
62881 +:101F100000C4202102A210210064382100461021B3
62882 +:101F20000045182400E52824AF450028AF43002CC5
62883 +:101F30003042007F924400D030E3007F03422821EA
62884 +:101F4000034318213C02000C006280213C02000E79
62885 +:101F5000309600FF00A298211296002A000000008F
62886 +:101F60008E02000C02002021026028211040002572
62887 +:101F7000261000280E00064A000000009262000DA4
62888 +:101F800026830001307400FF3042007FA262000D02
62889 +:101F90002404FF801697FFF0267300203C020800FF
62890 +:101FA0008C4200DC0000A02102A210210044102479
62891 +:101FB000AF4200283C0208008C4200E43C030800C9
62892 +:101FC0008C6300DC02A2102100441024AF42002CDC
62893 +:101FD0003C0208008C4200E402A318213063007F19
62894 +:101FE00002A210213042007F034220210343182126
62895 +:101FF0003C02000C006280213C02000E0A0007A493
62896 +:10200000008298218E4200D8AE2200508E4200D825
62897 +:10201000AE22007092250083924600D19223008365
62898 +:10202000924400D12402FF8000A228243063007F64
62899 +:10203000308400FF00A628250064182A10600002E2
62900 +:1020400030A500FF38A50080A2250083A2250079D5
62901 +:102050000E00063D000000009222007E02A020211A
62902 +:10206000A222007A8E2300743C027FFF3442FFFFDD
62903 +:10207000006218240E00066BAE2300748FA20010BD
62904 +:10208000AF5E00248FBF003CAF4200288FBE0038F7
62905 +:102090008FA200148FB700348FB600308FB5002C9C
62906 +:1020A0008FB400288FB300248FB200208FB1001CA2
62907 +:1020B0008FB0001827BD004003E00008AF42002C9D
62908 +:1020C00090A2000024420001A0A200003C030800EE
62909 +:1020D0008C6300F4304200FF1443000F0080302175
62910 +:1020E000A0A000003C0208008C4200E48F84003471
62911 +:1020F000008220213082007F034218213C02000C24
62912 +:10210000006218212402FF8000822024ACC300005A
62913 +:1021100003E00008AF4400288C8200002442002025
62914 +:1021200003E00008AC82000094C200003C080800F4
62915 +:10213000950800CA30E7FFFF008048210102102106
62916 +:10214000A4C2000094C200003042FFFF00E2102B46
62917 +:1021500054400001A4C7000094A200003C03080002
62918 +:102160008C6300CC24420001A4A2000094A20000D1
62919 +:102170003042FFFF544300078F8600280107102BD1
62920 +:10218000A4A000005440000101003821A4C70000B1
62921 +:102190008F8600288CC4001CAF44003C94A2000031
62922 +:1021A0008F43003C3042FFFF000210C00062182144
62923 +:1021B000AF43003C8F42003C008220231880000483
62924 +:1021C000000000008CC200180A00084324420001ED
62925 +:1021D0008CC20018AF4200383C020050344200105C
62926 +:1021E000AF420030000000000000000000000000CE
62927 +:1021F0008F420000304200201040FFFD0000000030
62928 +:102200008F420404AD2200048F420400AD2200007E
62929 +:102210003C020020AF42003003E000080000000054
62930 +:1022200027BDFFE0AFB20018AFB10014AFB000108F
62931 +:10223000AFBF001C94C2000000C080213C12080007
62932 +:10224000965200C624420001A60200009603000038
62933 +:1022500094E2000000E03021144300058FB100300B
62934 +:102260000E000818024038210A000875000000001E
62935 +:102270008C8300048C820004244200400461000727
62936 +:10228000AC8200048C8200040440000400000000C2
62937 +:102290008C82000024420001AC8200009602000003
62938 +:1022A0003042FFFF50520001A600000096220000BD
62939 +:1022B00024420001A62200008F82002896230000FD
62940 +:1022C00094420016144300048FBF001C2402000136
62941 +:1022D000A62200008FBF001C8FB200188FB100141F
62942 +:1022E0008FB0001003E0000827BD00208F89002870
62943 +:1022F00027BDFFE0AFBF00188D220028274804004B
62944 +:1023000030E700FFAF4200388D22002CAF8800304C
62945 +:10231000AF42003C3C020005AF420030000000002C
62946 +:1023200000000000000000000000000000000000AD
62947 +:10233000000000008C82000C8C82000CAD020000BA
62948 +:102340008C820010AD0200048C820018AD020008DF
62949 +:102350008C82001CAD02000C8CA20014AD02001097
62950 +:102360008C820020AD02001490820005304200FFF4
62951 +:1023700000021200AD0200188CA20018AD02001C71
62952 +:102380008CA2000CAD0200208CA20010AD02002433
62953 +:102390008CA2001CAD0200288CA20020AD02002CF3
62954 +:1023A000AD060030AD000034978300263402FFFFF5
62955 +:1023B00014620002006020213404FFFF10E00011CD
62956 +:1023C000AD04003895230036952400362402000120
62957 +:1023D0003063FFFF000318C20069182190650040B8
62958 +:1023E000308400070082100400451025A0620040E0
62959 +:1023F0008F820028944200563042FFFF0A0008DC1A
62960 +:10240000AD02003C952300369524003624020001DD
62961 +:102410003063FFFF000318C2006918219065004077
62962 +:1024200030840007008210040002102700451024A9
62963 +:10243000A0620040AD00003C000000000000000071
62964 +:10244000000000003C02000634420040AF42003071
62965 +:102450000000000000000000000000008F420000AB
62966 +:10246000304200101040FFFD8F860028AF880030FA
62967 +:1024700024C2005624C7003C24C4002824C50032CE
62968 +:1024800024C600360E000856AFA200108FBF0018F9
62969 +:1024900003E0000827BD00208F8300243C060800CD
62970 +:1024A0008CC600E88F82003430633FFF0003198040
62971 +:1024B00000461021004310212403FF803046007F96
62972 +:1024C00000431024AF420028034618213C02000CB0
62973 +:1024D0000062302190C2000D30A500FF00003821BD
62974 +:1024E00034420010A0C2000D8F8900288F8A00247A
62975 +:1024F00095230036000A13823048000324020001AD
62976 +:10250000A4C3000E1102000B2902000210400005B6
62977 +:10251000240200021100000C240300010A0009201B
62978 +:102520000000182111020006000000000A00092026
62979 +:10253000000018218CC2002C0A000920244300014D
62980 +:102540008CC20014244300018CC200180043102BDD
62981 +:1025500050400009240700012402002714A20003B0
62982 +:10256000000000000A00092C240700019522003E0B
62983 +:1025700024420001A522003E000A138230430003DA
62984 +:102580002C62000210400009008028211460000421
62985 +:102590000000000094C200360A00093C3046FFFFEC
62986 +:1025A0008CC600380A00093C008028210000302138
62987 +:1025B0003C04080024844B780A00088900000000CD
62988 +:1025C000274901008D22000C9523000601202021BF
62989 +:1025D000000216023046003F3063FFFF240200274E
62990 +:1025E00000C0282128C7002810C2000EAF83002495
62991 +:1025F00010E00008240200312402002110C200096A
62992 +:102600002402002510C200079382002D0A00095BF6
62993 +:102610000000000010C200059382002D0A00095B33
62994 +:10262000000000000A0008F4000000000A0006266E
62995 +:102630000000000095230006912400058D25000C64
62996 +:102640008D2600108D2700188D28001C8D29002054
62997 +:10265000244200013C010800A4234B7E3C010800F9
62998 +:10266000A0244B7D3C010800AC254B843C010800B4
62999 +:10267000AC264B883C010800AC274B903C0108007D
63000 +:10268000AC284B943C010800AC294B9803E00008AF
63001 +:10269000A382002D8F87002827BDFFC0AFB3003471
63002 +:1026A000AFB20030AFB1002CAFB00028AFBF0038E0
63003 +:1026B0003C0208008C4200D094E3003030B0FFFFB1
63004 +:1026C000005010073045FFFF3063FFFF00C0982126
63005 +:1026D000A7A200103C110800963100C614A3000602
63006 +:1026E0003092FFFF8CE2002424420030AF42003CD5
63007 +:1026F0000A0009948CE2002094E200323042FFFF8D
63008 +:1027000054A2000827A400188CE2002C24420030B8
63009 +:10271000AF42003C8CE20028AF4200380A0009A218
63010 +:102720008F84002827A5001027A60020022038212A
63011 +:102730000E000818A7A000208FA200182442003025
63012 +:10274000AF4200388FA2001CAF42003C8F840028AB
63013 +:102750003C020005AF42003094820034274304005D
63014 +:102760003042FFFF0202102B14400007AF830030FD
63015 +:1027700094820054948300340202102100431023F9
63016 +:102780000A0009B63043FFFF94830054948200345A
63017 +:102790000223182100501023006218233063FFFF2A
63018 +:1027A000948200163042FFFF144300030000000033
63019 +:1027B0000A0009C424030001948200163042FFFF7E
63020 +:1027C0000043102B104000058F82003094820016C9
63021 +:1027D000006210233043FFFF8F820030AC530000B3
63022 +:1027E000AC400004AC520008AC43000C3C020006B4
63023 +:1027F00034420010AF420030000000000000000032
63024 +:10280000000000008F420000304200101040FFFD29
63025 +:10281000001018C2006418219065004032040007BF
63026 +:10282000240200018FBF00388FB300348FB2003014
63027 +:102830008FB1002C8FB000280082100400451025B5
63028 +:1028400027BD004003E00008A062004027BDFFA8AC
63029 +:10285000AFB60050AFB5004CAFB40048AFB30044C2
63030 +:10286000AFB1003CAFBF0054AFB20040AFB00038D2
63031 +:102870008C9000003C0208008C4200E88F860034F7
63032 +:10288000960300022413FF8000C2302130633FFF13
63033 +:102890000003198000C3382100F3102490B2000017
63034 +:1028A000AF42002C9203000230E2007F034230214D
63035 +:1028B0003C02000E00C28821306300C024020040A8
63036 +:1028C0000080A82100A0B021146200260000A021F1
63037 +:1028D0008E3400388E2200181440000224020001B9
63038 +:1028E000AE2200189202000D304200201440001564
63039 +:1028F0008F8200343C0308008C6300DC001238C077
63040 +:10290000001231400043102100C730210046382119
63041 +:1029100030E300073C02008030E6007800C230253A
63042 +:102920000343182100F31024AF4208002463090078
63043 +:10293000AF4608108E2200188C6300080043102157
63044 +:10294000AE2200188E22002C8E2300182442000193
63045 +:102950000062182B1060003D000000000A000A7899
63046 +:1029600000000000920300022402FFC00043102474
63047 +:10297000304200FF1440000524020001AE2200187E
63048 +:10298000962200360A000A613054FFFF8E2200149E
63049 +:1029900024420001AE22001892020000000216003C
63050 +:1029A0000002160304410029000000009602000204
63051 +:1029B00027A4001000802821A7A20016960200027A
63052 +:1029C00024070001000030213042FFFFAF820024C5
63053 +:1029D0000E000889AFA0001C960300023C0408000A
63054 +:1029E0008C8400E88F82003430633FFF000319803D
63055 +:1029F00000441021004310213043007F3C05000CAF
63056 +:102A00000053102403431821AF4200280065182109
63057 +:102A10009062000D001221403042007FA062000D44
63058 +:102A20003C0308008C6300E48F82003400431021D3
63059 +:102A30000044382130E2007F03421021004510217C
63060 +:102A400000F31824AF430028AEA200009222000D2C
63061 +:102A5000304200101040001302A020218F83002874
63062 +:102A60008EA40000028030219462003E2442FFFFC9
63063 +:102A7000A462003E948400029625000E3084FFFF7D
63064 +:102A80000E00097330A5FFFF8F82002894430034A5
63065 +:102A90009622000E1443000302A02021240200010C
63066 +:102AA000A382002C02C028210E0007FE00000000B7
63067 +:102AB0008FBF00548FB600508FB5004C8FB40048C4
63068 +:102AC0008FB300448FB200408FB1003C8FB000380C
63069 +:102AD00003E0000827BD00588F82002827BDFFD0E3
63070 +:102AE000AFB40028AFB20020AFBF002CAFB30024BA
63071 +:102AF000AFB1001CAFB00018904400D0904300D19B
63072 +:102B00000000A021309200FFA3A30010306300FF5B
63073 +:102B10008C5100D88C5300DC1072002B2402000171
63074 +:102B20003C0308008C6300E493A400108F820034FF
63075 +:102B30002406FF800004214000431021004410219E
63076 +:102B40003043007F00461024AF4200280343182181
63077 +:102B50003C02000C006218218C62000427A40014BF
63078 +:102B600027A50010022280210270102304400015C6
63079 +:102B7000AFA300149062000D00C21024304200FF89
63080 +:102B800014400007020088219062000D344200408A
63081 +:102B90000E0007FEA062000D0A000ABD93A20010FD
63082 +:102BA0000E0009E1241400018F830028AC7000D8C6
63083 +:102BB00093A20010A06200D193A200101452FFD87B
63084 +:102BC0000000000024020001168200048FBF002CC8
63085 +:102BD0000E000626000000008FBF002C8FB40028D6
63086 +:102BE0008FB300248FB200208FB1001C8FB000186B
63087 +:102BF00003E0000827BD003027BDFFD8AFB3001C9D
63088 +:102C0000AFB20018AFB10014AFB00010AFBF0020DA
63089 +:102C10000080982100E0802130B1FFFF0E00049376
63090 +:102C200030D200FF000000000000000000000000A3
63091 +:102C30008F820020AC510000AC520004AC5300085D
63092 +:102C4000AC40000CAC400010AC400014AC4000188C
63093 +:102C50003C03080094634B5E02038025AC50001CCB
63094 +:102C6000000000000000000000000000240400013B
63095 +:102C70008FBF00208FB3001C8FB200188FB10014DB
63096 +:102C80008FB000100A0004B827BD002827BDFFE858
63097 +:102C9000AFB00010AFBF001430A5FFFF30C600FF7B
63098 +:102CA0000080802124020C80AF420024000000003C
63099 +:102CB0000000000000000000000000000000000014
63100 +:102CC0000E000ACC000000003C040800248400E050
63101 +:102CD0008C8200002403FF808FBF001402021021A9
63102 +:102CE00000431024AF4200248C8200003C03000A01
63103 +:102CF000020280213210007F035010218FB000109B
63104 +:102D00000043102127BD001803E00008AF8200280F
63105 +:102D100027BDFFE8AFBF00108F4401403C0308000F
63106 +:102D20008C6300E02402FF80AF840034008318210C
63107 +:102D300000621024AF4200243C02000803424021FC
63108 +:102D4000950500023063007F3C02000A034318210E
63109 +:102D50000062182130A5FFFF3402FFFF0000302180
63110 +:102D60003C07602010A20006AF8300282402FFFF6A
63111 +:102D7000A5020002946500D40E000AF130A5FFFF01
63112 +:102D80008FBF001024020C8027BD001803E000084C
63113 +:102D9000AF4200243C020008034240219502000299
63114 +:102DA0003C0A0800954A00C63046FFFF14C00007E1
63115 +:102DB0003402FFFF8F8200288F8400343C0760209C
63116 +:102DC000944500D40A000B5A30A5FFFF10C200241E
63117 +:102DD0008F87002894E2005494E400163045FFFFEA
63118 +:102DE00000A6102300A6182B3089FFFF10600004F6
63119 +:102DF0003044FFFF00C51023012210233044FFFFA1
63120 +:102E0000008A102B1040000C012A1023240200011C
63121 +:102E1000A50200162402FFFFA502000294E500D4DB
63122 +:102E20008F8400340000302130A5FFFF3C07602074
63123 +:102E30000A000AF1000000000044102A10400008B7
63124 +:102E4000000000009502001630420001104000040E
63125 +:102E5000000000009742007E24420014A5020016E4
63126 +:102E600003E00008000000008F84002827BDFFE079
63127 +:102E7000AFBF0018948200349483003E1060001AA3
63128 +:102E80003048FFFF9383002C2402000114620027C6
63129 +:102E90008FBF00188F820028000818C23108000771
63130 +:102EA000006218212447003A244900542444002099
63131 +:102EB000244500302446003490620040304200FF38
63132 +:102EC0000102100730420001104000168FBF0018A9
63133 +:102ED0000E000856AFA900108F82002894420034DB
63134 +:102EE0000A000B733048FFFF94830036948200344D
63135 +:102EF0001043000E8FBF001894820036A482003465
63136 +:102F000094820056A48200548C82002CAC8200244F
63137 +:102F100094820032A48200309482003CA482003A61
63138 +:102F20008FBF00180A000B3327BD002003E0000804
63139 +:102F300027BD002027BDFFE8AFBF00108F4A01006A
63140 +:102F40003C0508008CA500E03C02080090424B8440
63141 +:102F50003C0C0800958C4B7E01452821304B003FEE
63142 +:102F600030A2007F03424021396900323C02000A4E
63143 +:102F70003963003F2C630001010240212D2900012B
63144 +:102F80002402FF8000A2282401234825AF8A0034B0
63145 +:102F900000801821AF450024000030210080282146
63146 +:102FA00024070001AF8800283C04080024844B78E3
63147 +:102FB000AF8C002415200007A380002D24020020E0
63148 +:102FC0005562000F006020213402FFFF5582000C83
63149 +:102FD000006020212402002015620005000000008E
63150 +:102FE0008C6300142402FFFF106200070000000041
63151 +:102FF0000E000889000000000A000BD0000000004D
63152 +:103000000E0008F4016028210E000B68000000008B
63153 +:103010008FBF001024020C8027BD001803E00008B9
63154 +:10302000AF4200243C0208008C4200E027BDFFA014
63155 +:10303000AFB1003C008210212411FF80AFBE0058C8
63156 +:10304000AFB70054AFB20040AFB00038AFBF005CC4
63157 +:10305000AFB60050AFB5004CAFB40048AFB30044BA
63158 +:10306000005110248F4800248F4900288F470028E2
63159 +:10307000AF4200243C0208008C4200E00080902116
63160 +:1030800024060006008210213042007F03421821EE
63161 +:103090003C02000A006280213C02001F3442FF8093
63162 +:1030A00000E2382427A40010260500F00122F024B5
63163 +:1030B0000102B8240E00051DAFA700308FA2001832
63164 +:1030C000AE0200C48FA2001CAE0200C88FA2002472
63165 +:1030D000AE0200CC93A40010920300D12402FF8022
63166 +:1030E0000082102400431025304900FF3083007F08
63167 +:1030F0003122007F0062102A10400004000310C03B
63168 +:1031000001311026304900FF000310C000031940B0
63169 +:10311000006218213C0208008C4200DC920400D2BC
63170 +:10312000024210210043102100511024AF42002818
63171 +:1031300093A300103063007F000310C00003194008
63172 +:10314000006218213C0208008C4200DC024210217F
63173 +:10315000004310213042007F034218213C02000C42
63174 +:10316000006240218FA300142402FFFF1062003090
63175 +:10317000309500FF93A2001195030014304400FF26
63176 +:103180003063FFFF0064182B1060000D000000008A
63177 +:10319000950400148D07001C8D0600183084FFFF75
63178 +:1031A00000442023000421000000102100E4382105
63179 +:1031B00000E4202B00C230210A000C4A00C4302158
63180 +:1031C000950400148D07001C8D0600183084FFFF45
63181 +:1031D000008220230004210000001021008018211B
63182 +:1031E00000C2302300E4202B00C4302300E3382346
63183 +:1031F000AD07001CAD06001893A20011A502001433
63184 +:1032000097A20012A50200168FA20014AD020010B2
63185 +:103210008FA20014AD02000C93A20011A5020020A1
63186 +:1032200097A20012A50200228FA20014AD02002472
63187 +:103230002406FF80024610243256007FAF4200244D
63188 +:10324000035618213C02000A006280218E02004CC5
63189 +:103250008FA200203124007F000428C0AE0200505D
63190 +:103260008FA200200004214000852821AE020070BA
63191 +:1032700093A2001001208821A202008393A20010D3
63192 +:10328000A2020079920200853042003FA20200852E
63193 +:103290003C0208008C4200DC024210210045102153
63194 +:1032A00000461024AF42002C3C0208008C4200E48F
63195 +:1032B0003C0308008C6300DC024210210044102112
63196 +:1032C00000461024AF4200283C0208008C4200E473
63197 +:1032D00002431821006518210242102100441021E8
63198 +:1032E0003042007F3063007F93A50010034220210D
63199 +:1032F000034318213C02000E006240213C02000CF6
63200 +:1033000010B1008C008248213233007F1660001912
63201 +:103310002404FF803C0208008C4200DC02421021A1
63202 +:1033200000441024AF42002C3C0208008C4200E410
63203 +:103330003C0308008C6300DC02421021004410248E
63204 +:10334000AF4200283C0208008C4200E402431821EE
63205 +:103350003063007F024210213042007F034220216F
63206 +:10336000034318213C02000E006240213C02000C85
63207 +:10337000008248219124000D2414FF8000001021B8
63208 +:1033800000942025A124000D950400029505001449
63209 +:103390008D07001C3084FFFF30A5FFFF8D0600184D
63210 +:1033A000008520230004210000E4382100C23021E0
63211 +:1033B00000E4202B00C43021AD07001CAD0600182E
63212 +:1033C00095020002A5020014A50000168D02000857
63213 +:1033D000AD0200108D020008AD02000C9502000243
63214 +:1033E000A5020020A50000228D020008AD020024E5
63215 +:1033F0009122000D30420040104000422622000180
63216 +:103400003C0208008C4200E0A3B300283C10000AF4
63217 +:103410000242102100541024AF4200243C02080054
63218 +:103420008C4200E0A380002C27A4002C0242102133
63219 +:103430003042007F03421821007018218C6200D8AE
63220 +:103440008D26000427A50028AFA9002C00461021D6
63221 +:10345000AC6200D80E0009E1AF83002893A30028D6
63222 +:103460008F8200280E000626A04300D10E000B68B4
63223 +:103470000000000002541024AF4200243C02080067
63224 +:103480008C4200DC00132940001320C000A420213E
63225 +:10349000024210210044102100541024AF42002C9D
63226 +:1034A0003C0208008C4200E43C0308008C6300DC12
63227 +:1034B00003563021024210210045102100541024EF
63228 +:1034C000AF4200283C0208008C4200E4024318216D
63229 +:1034D0000064182102421021004510213042007F73
63230 +:1034E0003063007F03422021034318213C02000E79
63231 +:1034F000006240213C02000C00D080210082482163
63232 +:10350000262200013043007F14750005304400FF7F
63233 +:103510002403FF800223102400431026304400FFC0
63234 +:1035200093A2001000808821250800281444FF760B
63235 +:103530002529002093A400108FA300142402FFFF6C
63236 +:103540001062000A308900FF2482000124830001F8
63237 +:103550003042007F14550005306900FF2403FF80CE
63238 +:103560000083102400431026304900FF92020078A7
63239 +:10357000305300FF11330032012088213C02080043
63240 +:103580008C4200DC3225007F000520C00005294068
63241 +:1035900000A42021024210212406FF8000441021B3
63242 +:1035A00000461024AF42002C3C0308008C6300DC72
63243 +:1035B0003C0208008C4200E4024318210242102120
63244 +:1035C0000045102100641821004610243063007F5C
63245 +:1035D000AF420028034318213C02000E0062402144
63246 +:1035E0003C0208008C4200E48D06000C0100202102
63247 +:1035F00002421021004510213042007F0342182171
63248 +:103600003C02000C0062482110C0000D012028215E
63249 +:103610000E00064A000000002402FF800222182447
63250 +:1036200026240001006228263082007F1455000203
63251 +:10363000308300FF30A300FF1473FFD000608821A7
63252 +:103640008E0300743C027FFF3442FFFF00621824A7
63253 +:10365000AE0300740E00066B02402021AF57002419
63254 +:103660008FA20030AF5E00288FBF005C8FBE005875
63255 +:103670008FB700548FB600508FB5004C8FB4004800
63256 +:103680008FB300448FB200408FB1003C8FB0003840
63257 +:1036900027BD006003E00008AF42002C27BDFFD823
63258 +:1036A000AFB1001CAFBF0020AFB000182751018898
63259 +:1036B000922200032408FF803C03000A3047007F69
63260 +:1036C000A3A700108F4601803C0208008C4200E056
63261 +:1036D000AF86003400C2282100A81024AF42002485
63262 +:1036E0009224000030A2007F0342102100431021E9
63263 +:1036F000AF8200283084007F24020002148200255B
63264 +:10370000000719403C0208008C4200E400C210216E
63265 +:103710000043282130A2007F0342182100A8102472
63266 +:10372000AF4200283C02000C006218219062000D9C
63267 +:10373000AFA3001400481025A062000D8FA3001451
63268 +:103740009062000D304200405040006A8FBF002060
63269 +:103750008F860028A380002C27A400148CC200D8D8
63270 +:103760008C63000427A50010004310210E0009E11E
63271 +:10377000ACC200D893A300108F8200280E0006264A
63272 +:10378000A04300D10E000B68000000000A000E0BE1
63273 +:103790008FBF00200E00062F00C020210E00063D26
63274 +:1037A000000000003C020008034280219223000137
63275 +:1037B0009202007B1443004F8FBF00209222000032
63276 +:1037C0003044007F24020004108200172882000584
63277 +:1037D00010400006240200052402000310820007A6
63278 +:1037E0008FB1001C0A000E0C0000000010820012B5
63279 +:1037F0008FBF00200A000E0C8FB1001C92050083C1
63280 +:10380000920600788E0700748F84003430A500FF84
63281 +:1038100000073E0230C600FF0E00067330E7007F4F
63282 +:103820000A000E0B8FBF00200E000BD78F840034D0
63283 +:103830000A000E0B8FBF002024020C80AF42002430
63284 +:103840009202003E30420040104000200000000084
63285 +:103850009202003E00021600000216030441000618
63286 +:10386000000000008F8400340E0005A024050093A2
63287 +:103870000A000E0B8FBF00209202003F24030018A5
63288 +:10388000304200FF1443000C8F84003424050039BB
63289 +:103890000E000538000030210E0002508F840034E5
63290 +:1038A00024020012A202003F0E0002598F8400344D
63291 +:1038B0000A000E0B8FBF0020240500360E000538CD
63292 +:1038C000000030210A000E0B8FBF00200E000250B6
63293 +:1038D0008F8400349202000534420020A2020005C9
63294 +:1038E0000E0002598F8400340E000FC08F84003404
63295 +:1038F0008FBF00208FB1001C8FB0001824020C80F5
63296 +:1039000027BD002803E00008AF42002427BDFFE8E0
63297 +:10391000AFB00010AFBF001427430100946200084D
63298 +:103920000002140000021403044100020000802180
63299 +:103930002410000194620008304200801040001AF8
63300 +:10394000020010219462000830422000104000164E
63301 +:10395000020010218C6300183C021C2D344219ED2A
63302 +:10396000240600061062000F3C0760213C0208009C
63303 +:103970008C4200D4104000078F8200288F830028DB
63304 +:10398000906200623042000F34420040A062006248
63305 +:103990008F8200288F840034944500D40E000AF1F1
63306 +:1039A00030A5FFFF020010218FBF00148FB0001060
63307 +:1039B00003E0000827BD001827BDFFE0AFB10014E9
63308 +:1039C000AFB00010A380002CAFBF00188F450100DE
63309 +:1039D0003C0308008C6300E02402FF80AF850034C4
63310 +:1039E00000A318213064007F0344202100621824C2
63311 +:1039F0003C02000A00822021AF430024275001002E
63312 +:103A00008E0200148C8300DCAF8400280043102356
63313 +:103A100018400004000088218E0200140E000A8461
63314 +:103A2000AC8200DC9202000B24030002304200FF53
63315 +:103A30001443002F0000000096020008304300FFEE
63316 +:103A40002402008214620005240200840E00093E54
63317 +:103A5000000000000A000E97000000001462000938
63318 +:103A6000240200818F8200288F8400343C0760216B
63319 +:103A7000944500D49206000530A5FFFF0A000E868B
63320 +:103A800030C600FF14620027000000009202000A06
63321 +:103A9000304300FF306200201040000430620040DC
63322 +:103AA0008F8400340A000E82240600401040000477
63323 +:103AB000000316008F8400340A000E8224060041A1
63324 +:103AC00000021603044100178F84003424060042CC
63325 +:103AD0008F8200283C076019944500D430A5FFFF71
63326 +:103AE0000E000AF1000000000A000E97000000001E
63327 +:103AF0009202000B24030016304200FF1043000620
63328 +:103B0000000000009202000B24030017304200FF67
63329 +:103B100014430004000000000E000E11000000001D
63330 +:103B2000004088210E000B68000000009202000A8D
63331 +:103B3000304200081040000624020C808F850028C7
63332 +:103B40003C0400080E0011EE0344202124020C80E6
63333 +:103B5000AF4200248FBF0018022010218FB0001048
63334 +:103B60008FB1001403E0000827BD002027BDFFE847
63335 +:103B7000AFBF0014AFB000108F5000243C0308000A
63336 +:103B80008C6300E08F4501002402FF8000A3182110
63337 +:103B90003064007F03442021006218243C02000AA4
63338 +:103BA00000822021AF850034AF4300249082006260
63339 +:103BB000AF8400283042000F34420050A0820062DF
63340 +:103BC0003C02001F3442FF800E00062602028024C1
63341 +:103BD000AF5000248FBF00148FB0001003E0000826
63342 +:103BE00027BD00183C0208008C4200201040001D38
63343 +:103BF0002745010090A300093C0200080342202150
63344 +:103C000024020018546200033C0200080A000ED887
63345 +:103C10002402000803422021240200161462000539
63346 +:103C20002402001724020012A082003F0A000EE2C4
63347 +:103C300094A700085462000694A700089362000548
63348 +:103C40002403FFFE00431024A362000594A700088C
63349 +:103C500090A6001B8CA4000094A500060A000ACCC4
63350 +:103C600000073C0003E000080000000027440100BA
63351 +:103C700094820008304500FF38A3008238A20084F7
63352 +:103C80002C6300012C420001006218251060000620
63353 +:103C9000240200839382002D1040000D00000000DC
63354 +:103CA0000A000B9B0000000014A2000524A2FF8064
63355 +:103CB0008F4301043C02602003E00008AC43001481
63356 +:103CC000304200FF2C420002104000032402002278
63357 +:103CD0000A000E3C0000000014A2000300000000D7
63358 +:103CE0000A000EA9000000000A000EC70000000034
63359 +:103CF0009363007E9362007A144300090000202140
63360 +:103D00009362000024030050304200FF144300047B
63361 +:103D1000240400019362007E24420001A362007E1D
63362 +:103D200003E00008008010218F4201F80440FFFEEC
63363 +:103D300024020002AF4401C0A34201C43C021000AF
63364 +:103D400003E00008AF4201F827BDFFE8AFBF001055
63365 +:103D50009362003F2403000A304200FF14430046F0
63366 +:103D6000000000008F6300548F62004C1062007DE1
63367 +:103D7000036030219362000024030050304200FFB2
63368 +:103D80001443002F000000008F4401403C02080053
63369 +:103D90008C4200E02403FF800082102100431024A5
63370 +:103DA000AF4200243C0208008C4200E08F650054C2
63371 +:103DB0003C03000A008220213084007F034410214C
63372 +:103DC00000431021AC4501089762003C8F63004C12
63373 +:103DD0003042FFFF0002104000621821AF63005C18
63374 +:103DE0008F6300548F64004C9762003C006418237A
63375 +:103DF0003042FFFF00031843000210400043102A26
63376 +:103E000010400006000000008F6200548F63004CD9
63377 +:103E1000004310230A000F58000210439762003C31
63378 +:103E20003042FFFF00021040ACC2006424020001D7
63379 +:103E3000A0C0007CA0C2008424020C80AF420024F9
63380 +:103E40000E000F0A8F440140104000478FBF001042
63381 +:103E50008F4301408F4201F80440FFFE240200021C
63382 +:103E6000AF4301C0A34201C43C021000AF4201F8BD
63383 +:103E70000A000FA88FBF00109362003F24030010B8
63384 +:103E8000304200FF14430004000000008F44014052
63385 +:103E90000A000F94000028219362003F24030016BB
63386 +:103EA000304200FF1443000424020014A362003FC8
63387 +:103EB0000A000FA2000000008F62004C8F630050C8
63388 +:103EC00000431023044100288FBF0010936200813B
63389 +:103ED00024420001A3620081936200812C4200040D
63390 +:103EE00014400010000000009362003F240300040F
63391 +:103EF000304200FF14430006000000008F440140E0
63392 +:103F00008FBF0010240500930A0005A027BD0018EC
63393 +:103F10008F440140240500938FBF00100A00060F54
63394 +:103F200027BD00188F4401400E0002500000000021
63395 +:103F30008F6200542442FFFFAF6200548F62005032
63396 +:103F40002442FFFFAF6200500E0002598F4401402F
63397 +:103F50008F4401408FBF0010240500040A00025E58
63398 +:103F600027BD00188FBF001003E0000827BD001810
63399 +:103F70008F4201889363007E00021402304400FFE8
63400 +:103F8000306300FF1464000D0000000093620080A5
63401 +:103F9000304200FF1044000900000000A3640080CC
63402 +:103FA0009362000024030050304200FF14430004D9
63403 +:103FB000000000000A0006D78F440180A36400803F
63404 +:103FC00003E000080000000027BDFFE8AFB00010CC
63405 +:103FD000AFBF00149362000524030030304200306C
63406 +:103FE00014430089008080213C0208008C4200209C
63407 +:103FF00010400080020020210E0004930000000009
63408 +:104000008F850020ACB000009362003E9363003FB8
63409 +:10401000304200FF00021200306300FF0043102511
63410 +:10402000ACA2000493620082000216000002160394
63411 +:1040300004410005000000003C0308008C630048B8
63412 +:104040000A000FE6000000009362003E304200408C
63413 +:10405000144000030000182193620081304300FFE8
63414 +:104060009362008200031E00304200FF0002140031
63415 +:1040700000621825ACA300088F620040ACA2000CBF
63416 +:104080008F620048ACA200108F62004CACA20014FA
63417 +:104090008F6200508F63004C0043102304410003E3
63418 +:1040A000000000000A000FFA8F62004C8F6200507F
63419 +:1040B000ACA200183C02080094424B5E3C03C00BCB
63420 +:1040C00000002021004310250E0004B8ACA2001C03
63421 +:1040D0008F6200548F840020AC8200008F620058F1
63422 +:1040E000AC8200048F62005CAC8200088F620060CA
63423 +:1040F0008F43007400431021AC82000C8F62006477
63424 +:10410000AC820010976300689762006A00031C008D
63425 +:104110003042FFFF00621825AC83001493620082D6
63426 +:1041200024030080304200FF14430003000000001D
63427 +:104130000A00102EAC8000188F63000C24020001CE
63428 +:104140001062000E2402FFFF9362003E30420040E6
63429 +:104150001440000A2402FFFF8F63000C8F4200749A
63430 +:10416000006218233C020800006210241440000280
63431 +:10417000000028210060282100051043AC820018AF
63432 +:104180003C02080094424B5E3C03C00C000020211E
63433 +:10419000004310258F8300200E0004B8AC62001C81
63434 +:1041A0008F6200188F8300203C05080094A54B5EA9
63435 +:1041B00024040001AC620000AC6000048F66006C57
63436 +:1041C0003C02400D00A22825AC6600088F6200DC8E
63437 +:1041D000AC62000CAC600010936200050002160097
63438 +:1041E000AC620014AC6000180E0004B8AC65001C92
63439 +:1041F000020020218FBF00148FB00010A3600005C3
63440 +:104200000A00042127BD00188FBF00148FB00010D2
63441 +:1042100003E0000827BD00189742007C30C600FF6D
63442 +:10422000A08600843047FFFF2402000514C2000B63
63443 +:1042300024E3465090A201122C42000710400007D0
63444 +:1042400024E30A0090A30112240200140062100467
63445 +:1042500000E210210A0010663047FFFF3067FFFFC1
63446 +:1042600003E00008A4870014AC87004C8CA201086E
63447 +:104270000080402100A0482100E2102330C600FF4A
63448 +:104280001840000393AA001324E2FFFCACA201082B
63449 +:1042900030C2000110400008000000008D020050F4
63450 +:1042A00000E2102304410013240600058D0200548F
63451 +:1042B00010E20010000000008D02005414E2001A09
63452 +:1042C000000000003C0208008C4200D83042002070
63453 +:1042D0001040000A2402000191030078910200833B
63454 +:1042E000144300062402000101002021012028219E
63455 +:1042F000240600040A00105400000000A1000084FD
63456 +:1043000011400009A50200148F4301008F4201F8FB
63457 +:104310000440FFFE24020002AF4301C0A34201C4D7
63458 +:104320003C021000AF4201F803E00008000000006A
63459 +:1043300027BDFFE88FA90028AFBF001000804021F3
63460 +:1043400000E918231860007330C600FFA080007CCD
63461 +:10435000A08000818CA2010800E210230440004DDF
63462 +:10436000000000008C8200509483003C8C84006428
63463 +:10437000004748233063FFFF012318210083202BCF
63464 +:1043800010800004000000008D0200640A0010B7D5
63465 +:1043900000E210219502003C3042FFFF0122102173
63466 +:1043A00000E21021AD02005C9502003C8D03005C30
63467 +:1043B0003042FFFF0002104000E210210043102BAA
63468 +:1043C00010400003000000000A0010C68D02005CCF
63469 +:1043D0009502003C3042FFFF0002104000E2102135
63470 +:1043E000AD02005CA1000084AD07004C8CA2010866
63471 +:1043F00000E210231840000224E2FFFCACA20108F6
63472 +:1044000030C200011040000A000000008D02005080
63473 +:1044100000E2102304410004010020218D02005419
63474 +:1044200014E20003000000000A0010E82406000562
63475 +:104430008D02005414E200478FBF00103C020800B8
63476 +:104440008C4200D8304200201040000A24020001B3
63477 +:1044500091030078910200831443000624020001B6
63478 +:1044600001002021240600048FBF00100A00105410
63479 +:1044700027BD0018A1000084A50200148F4301008D
63480 +:104480008F4201F80440FFFE240200020A00110DD1
63481 +:10449000000000008C82005C004910230043102BB8
63482 +:1044A00054400001AC87005C9502003C3042FFFFA5
63483 +:1044B0000062102B14400007240200029502003C09
63484 +:1044C0008D03005C3042FFFF00621821AD03005CE9
63485 +:1044D00024020002AD07004CA10200840E000F0A66
63486 +:1044E0008F4401001040001B8FBF00108F4301005C
63487 +:1044F0008F4201F80440FFFE24020002AF4301C0D6
63488 +:10450000A34201C43C021000AF4201F80A0011238B
63489 +:104510008FBF001030C200101040000E8FBF00107F
63490 +:104520008C83005C9482003C006918233042FFFFBA
63491 +:10453000006218213C023FFF3444FFFF0083102B30
63492 +:10454000544000010080182101231021AD02005CBD
63493 +:104550008FBF001003E0000827BD001827BDFFE84B
63494 +:104560008FAA0028AFBF00100080402100EA482336
63495 +:104570001920002130C600FF8C83005C8C8200640F
63496 +:10458000006A18230043102B5040001000691821C6
63497 +:1045900094A2011001221021A4A2011094A20110E2
63498 +:1045A0003042FFFF0043102B1440000A3C023FFF43
63499 +:1045B00094A2011000431023A4A201109482003C95
63500 +:1045C0003042FFFF0A00114200621821A4A001102E
63501 +:1045D0003C023FFF3444FFFF0083102B5440000196
63502 +:1045E0000080182100671021AD02005CA100007C52
63503 +:1045F0000A00118AA100008130C200101040003C66
63504 +:10460000000000008C820050004A1023184000383F
63505 +:10461000000000009082007C24420001A082007C07
63506 +:104620009082007C3C0308008C630024304200FF31
63507 +:104630000043102B1440005C8FBF00108CA20108B7
63508 +:1046400000E2102318400058000000008C83005442
63509 +:104650009482003C006A18233042FFFF0003184395
63510 +:10466000000210400043102A104000050000000026
63511 +:104670008C820054004A10230A001171000210437A
63512 +:104680009482003C3042FFFF00021040AD02006403
63513 +:104690009502003C8D0400649503003C3042FFFF0E
63514 +:1046A00000021040008220213063FFFF00831821A8
63515 +:1046B00001431021AD02005C8D020054ACA2010840
63516 +:1046C00024020002A10200840E000F0A8F440100A0
63517 +:1046D000104000358FBF00108F4301008F4201F85A
63518 +:1046E0000440FFFE240200020A0011B30000000093
63519 +:1046F000AD07004C8CA2010800E210231840000214
63520 +:1047000024E2FFFCACA2010830C200011040000A04
63521 +:10471000000000008D02005000E21023044100045C
63522 +:10472000010020218D02005414E20003000000006B
63523 +:104730000A0011AA240600058D02005414E2001A92
63524 +:104740008FBF00103C0208008C4200D8304200208D
63525 +:104750001040000A240200019103007891020083B6
63526 +:104760001443000624020001010020212406000455
63527 +:104770008FBF00100A00105427BD0018A10000844C
63528 +:10478000A50200148F4301008F4201F80440FFFE90
63529 +:1047900024020002AF4301C0A34201C43C02100046
63530 +:1047A000AF4201F88FBF001003E0000827BD0018DA
63531 +:1047B0008FAA00108C8200500080402130C600FF7C
63532 +:1047C000004A102300A048211840000700E01821EB
63533 +:1047D00024020001A0800084A0A00112A482001481
63534 +:1047E0000A001125AFAA0010A0800081AD07004C7F
63535 +:1047F0008CA2010800E210231840000224E2FFFC12
63536 +:10480000ACA2010830C20001104000080000000006
63537 +:104810008D0200500062102304410013240600059D
63538 +:104820008D02005410620010000000008D02005440
63539 +:1048300014620011000000003C0208008C4200D805
63540 +:10484000304200201040000A240200019103007849
63541 +:10485000910200831443000624020001010020217C
63542 +:1048600001202821240600040A0010540000000042
63543 +:10487000A1000084A502001403E00008000000006D
63544 +:1048800027BDFFE0AFBF0018274201009046000A95
63545 +:104890008C4800148C8B004C9082008430C900FF3F
63546 +:1048A00001681823304A00FF1C60001A2D460006DC
63547 +:1048B000240200010142100410C00016304300031E
63548 +:1048C000012030210100382114600007304C000C19
63549 +:1048D00015800009304200301440000B8FBF0018D3
63550 +:1048E0000A001214000000000E001125AFAB0010EA
63551 +:1048F0000A0012148FBF00180E00109AAFAB001000
63552 +:104900000A0012148FBF0018AFAB00100E0011BACE
63553 +:10491000AFAA00148FBF001803E0000827BD0020D5
63554 +:1049200024020003A08200848C82005403E000086B
63555 +:10493000ACA201083C0200080342182190620081E9
63556 +:10494000240600433C07601924420001A062008154
63557 +:10495000906300813C0208008C4200C0306300FF7D
63558 +:10496000146200102403FF803C0208008C4200E027
63559 +:104970000082102100431024AF4200243C020800B2
63560 +:104980008C4200E03C03000A008210213042007F8C
63561 +:104990000342102100431021944500D40A000AF17B
63562 +:1049A00030A5FFFF03E000080000000027BDFFE086
63563 +:1049B000AFBF0018AFB10014AFB000108F4201803C
63564 +:1049C0000080802100A088210E00121B00402021C1
63565 +:1049D000A20000848E0200548FBF00188FB0001018
63566 +:1049E000AE2201088FB1001403E0000827BD0020AB
63567 +:1049F00027BDFFE03C020008AFB00010AFBF0018B9
63568 +:104A0000AFB10014034280218F5101409203008412
63569 +:104A10008E0400508E02004C14820040306600FF6D
63570 +:104A20003C0208008C4200E02403FF800222102197
63571 +:104A300000431024AF4200243C0208008C4200E0F6
63572 +:104A40009744007C92050081022210213042007FB1
63573 +:104A5000034218213C02000A0062182114A0000B36
63574 +:104A60003084FFFF2402000554C20014248205DCB8
63575 +:104A70009062011224420001A062011224020C8003
63576 +:104A8000AF4200240A00127324020005A060011244
63577 +:104A90002402000514C20009248205DC9202008170
63578 +:104AA0002C4200075040000524820A009203008136
63579 +:104AB0002402001400621004008210213044FFFF21
63580 +:104AC000A60400140E00121B022020219602003CB6
63581 +:104AD0008E03004C022020213042FFFF00021040D4
63582 +:104AE000006218210E000250AE03005C9202007DAD
63583 +:104AF00002202021344200400E000259A202007D13
63584 +:104B00008F4201F80440FFFE24020002AF5101C0B1
63585 +:104B1000A34201C43C021000AF4201F88FBF00184D
63586 +:104B20008FB100148FB0001003E0000827BD0020F3
63587 +:104B300008000ACC08000B1408000B9808000BE4CE
63588 +:104B400008000C200A0000280000000000000000FF
63589 +:104B50000000000D6370362E322E3300000000007E
63590 +:104B60000602030400000000000000000000000036
63591 +:104B70000000000000000000000000000000000035
63592 +:104B80000000000000000000000000000000002005
63593 +:104B90000000000000000000000000000000000015
63594 +:104BA0000000000000000000000000000000000005
63595 +:104BB00000000000000000000000000000000001F4
63596 +:104BC0000000002B000000000000000400030D4066
63597 +:104BD00000000000000000000000000000000000D5
63598 +:104BE00000000000000000001000000300000000B2
63599 +:104BF0000000000D0000000D3C020800244258A4F3
63600 +:104C00003C03080024635F70AC4000000043202B8D
63601 +:104C10001480FFFD244200043C1D080037BD7FFCCA
63602 +:104C200003A0F0213C100800261000A03C1C080046
63603 +:104C3000279C58A40E0001AC000000000000000DED
63604 +:104C400027BDFFE83C096018AFBF00108D2C500055
63605 +:104C5000240DFF7F24080031018D5824356A380C5B
63606 +:104C600024070C003C1A8000AD2A50003C04800A46
63607 +:104C7000AF4800083C1B8008AF4700240E00091510
63608 +:104C8000AF8400100E0008D8000000000E000825B8
63609 +:104C9000000000000E001252000000003C046016EC
63610 +:104CA0008C8500003C06FFFF3C02535300A61824ED
63611 +:104CB0001062004734867C0094C201F2A780002C69
63612 +:104CC00010400003A78000CC38581E1EA798002C67
63613 +:104CD00094C201F810400004978300CC38591E1E7E
63614 +:104CE000A79900CC978300CC2C7F006753E000018C
63615 +:104CF000240300669784002C2C82040114400002D7
63616 +:104D000000602821240404003C0760008CE904387A
63617 +:104D10002403103C3128FFFF1103001F30B9FFFFAF
63618 +:104D200057200010A38000CE24020050A38200CEA2
63619 +:104D3000939F00CE53E0000FA78500CCA78000CC46
63620 +:104D4000978500CC8FBF0010A780002CA78000346F
63621 +:104D5000A78000E63C010800AC25008003E00008C5
63622 +:104D600027BD0018939F00CE57E0FFF5A78000CC29
63623 +:104D7000A78500CC978500CC8FBF0010A784002C9E
63624 +:104D8000A7800034A78000E63C010800AC25008025
63625 +:104D900003E0000827BD0018A38000CE8CCB003CA8
63626 +:104DA000316A00011140000E0000000030A7FFFF33
63627 +:104DB00010E0FFDE240200508CCC00C831860001D8
63628 +:104DC00014C0FFDC939F00CE0A00007A2402005139
63629 +:104DD0008C8F00043C0E60000A00005D01EE302163
63630 +:104DE0008CEF0808240D5708000F740211CD000441
63631 +:104DF00030B8FFFF240500660A00007B240404008D
63632 +:104E00001700FFCC939F00CE0A00007A24020050C6
63633 +:104E10008F8600103089FFFF000939408CC30010D5
63634 +:104E20003C08005000E82025AF4300388CC5001432
63635 +:104E300027420400AF82001CAF45003CAF44003065
63636 +:104E40000000000000000000000000000000000062
63637 +:104E50000000000000000000000000000000000052
63638 +:104E60008F4B0000316A00201140FFFD0000000060
63639 +:104E700003E00008000000008F840010948A001AEC
63640 +:104E80008C8700243149FFFF000940C000E8302131
63641 +:104E9000AF46003C8C8500248F43003C00A31023C8
63642 +:104EA00018400029000000008C8B002025620001C2
63643 +:104EB0003C0D005035AC0008AF420038AF4C00301C
63644 +:104EC00000000000000000000000000000000000E2
63645 +:104ED00000000000000000000000000000000000D2
63646 +:104EE0008F4F000031EE002011C0FFFD00000000D8
63647 +:104EF0008F4A04003C080020AC8A00108F4904044B
63648 +:104F0000AC890014AF4800300000000094860018FF
63649 +:104F10009487001C00C71821A48300189485001AE8
63650 +:104F200024A20001A482001A9498001A9499001EE9
63651 +:104F3000133800030000000003E000080000000038
63652 +:104F400003E00008A480001A8C8200200A0000DC24
63653 +:104F50003C0D00500A0000CD000000003C0308009A
63654 +:104F60008C6300208F82001827BDFFE810620008C4
63655 +:104F7000AFBF00100E000104AF8300183C0308000F
63656 +:104F80008C63002024040001106400048F89001049
63657 +:104F90008FBF001003E0000827BD00188FBF00106E
63658 +:104FA0003C076012A520000A9528000A34E500108D
63659 +:104FB00027BD00183106FFFF03E00008ACA60090F3
63660 +:104FC0003C0208008C42002027BDFFC8AFBF003460
63661 +:104FD000AFBE0030AFB7002CAFB60028AFB500248D
63662 +:104FE000AFB40020AFB3001CAFB20018AFB10014D3
63663 +:104FF00010400050AFB000108F840010948600065F
63664 +:105000009483000A00C3282330B6FFFF12C0004A71
63665 +:105010008FBF003494890018948A000A012A402323
63666 +:105020003102FFFF02C2382B14E0000202C020212F
63667 +:10503000004020212C8C0005158000020080A0215A
63668 +:10504000241400040E0000B3028020218F8700107A
63669 +:1050500002809821AF80001494ED000A028088211C
63670 +:105060001280004E31B2FFFF3C1770003C1540002B
63671 +:105070003C1E60008F8F001C8DEE000001D71824AD
63672 +:10508000507500500220202102A3802B160000350D
63673 +:105090003C182000507800470220202124100001F5
63674 +:1050A0008F83001414600039029158230230F823D2
63675 +:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D
63676 +:1050C0008F8700103C110020AF510030000000001D
63677 +:1050D00094E6000A3C1E601237D5001002662821B3
63678 +:1050E000A4E5000A94E2000A94F2000A94F400187D
63679 +:1050F0003057FFFF1292003BAEB700908CED0014CA
63680 +:105100008CE400100013714001AE4021000E5FC31B
63681 +:10511000010E502B008B4821012A1821ACE8001405
63682 +:10512000ACE3001002D3382330F6FFFF16C0FFB9FE
63683 +:105130008F8400108FBF00348FBE00308FB7002CDB
63684 +:105140008FB600288FB500248FB400208FB3001CC9
63685 +:105150008FB200188FB100148FB0001003E0000868
63686 +:1051600027BD0038107E001B000000001477FFCC24
63687 +:10517000241000010E00159B000000008F83001416
63688 +:105180001060FFCB0230F823029158238F87001064
63689 +:10519000017020210A0001973093FFFF8F830014D4
63690 +:1051A0001460FFCB3C110020AF5100300A000163B6
63691 +:1051B000000000000E00077D024028210A00015770
63692 +:1051C000004080210E00033A024028210A000157C6
63693 +:1051D000004080210E001463022020210A000157A4
63694 +:1051E000004080210E0000CD000000000A0001797F
63695 +:1051F00002D3382327BDFFE8AFB00010AFBF0014C3
63696 +:105200000E00003F000000003C028000345000709F
63697 +:105210000A0001BA8E0600008F4F000039EE00012F
63698 +:1052200031C20001104000248F8600A88E070000C4
63699 +:105230003C0C08008D8C003C3C0908008D2900388E
63700 +:1052400000E66823018D28210000502100AD302B9D
63701 +:10525000012A4021010620213C010800AC25003C28
63702 +:10526000AF8700A83C010800AC2400380E000106FE
63703 +:10527000000000003C0308008C6300701060FFE633
63704 +:10528000006020213C0508008CA500683C06080051
63705 +:105290008CC6006C0E00152A000000003C010800BE
63706 +:1052A000AC2000708F4F000039EE000131C20001C8
63707 +:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6
63708 +:1052C0003C0508008CA5003C3C0408008C84003898
63709 +:1052D000014B482300A938210082182100E9402B06
63710 +:1052E000006810213C010800AC27003C3C0108008C
63711 +:1052F000AC2200388F5F01002419FF0024180C0035
63712 +:1053000003F9202410980012AF840000AF4400205D
63713 +:10531000936D0000240C002031A600FF10CC001279
63714 +:10532000240E005010CE00043C194000AF59013843
63715 +:105330000A0001B3000000000E0011C800000000C8
63716 +:105340003C194000AF5901380A0001B300000000C9
63717 +:105350000E00011F000000003C194000AF59013849
63718 +:105360000A0001B3000000008F58010000802821CE
63719 +:10537000330F00FF01E020210E0002F1AF8F000487
63720 +:105380003C194000AF5901380A0001B30000000089
63721 +:1053900000A4102B2403000110400009000030215C
63722 +:1053A0000005284000A4102B04A0000300031840AF
63723 +:1053B0005440FFFC000528405060000A0004182BF0
63724 +:1053C0000085382B54E000040003184200C3302548
63725 +:1053D00000852023000318421460FFF900052842CD
63726 +:1053E0000004182B03E0000800C310218F4201B80D
63727 +:1053F0000440FFFE00000000AF4401803C031000A9
63728 +:1054000024040040AF450184A3440188A3460189D8
63729 +:10541000A747018A03E00008AF4301B83084FFFFCB
63730 +:105420000080382130A5FFFF000020210A00022A59
63731 +:10543000240600803087FFFF8CA40000240600387B
63732 +:105440000A00022A000028218F8300388F8600304E
63733 +:105450001066000B008040213C07080024E75A1822
63734 +:10546000000328C000A710218C4400002463000121
63735 +:10547000108800053063000F5466FFFA000328C04F
63736 +:1054800003E00008000010213C07080024E75A1C34
63737 +:1054900000A7302103E000088CC200003C0390000C
63738 +:1054A0003462000100822025AF4400208F45002097
63739 +:1054B00004A0FFFE0000000003E000080000000060
63740 +:1054C0003C038000346200010082202503E00008D4
63741 +:1054D000AF44002027BDFFE0AFB100143091FFFFC3
63742 +:1054E000AFB00010AFBF00181220001300A0802141
63743 +:1054F0008CA2000024040002240601401040000F8A
63744 +:10550000004028210E000C5C00000000000010216B
63745 +:10551000AE000000022038218FBF00188FB10014A8
63746 +:105520008FB0001000402021000028210000302111
63747 +:105530000A00022A27BD00208CA200000220382188
63748 +:105540008FBF00188FB100148FB0001000402021D1
63749 +:1055500000002821000030210A00022A27BD002077
63750 +:1055600000A010213087FFFF8CA500048C440000B0
63751 +:105570000A00022A2406000627BDFFE0AFB0001093
63752 +:10558000AFBF0018AFB100149363003E00808021CC
63753 +:105590000080282130620040000020211040000FD0
63754 +:1055A0008E1100000E000851022020219367000098
63755 +:1055B0002404005030E500FF50A400128E0F0000BC
63756 +:1055C000022020218FBF00188FB100148FB000106F
63757 +:1055D000A762013C0A00091127BD00200E000287C6
63758 +:1055E000000000000E0008510220202193670000F7
63759 +:1055F0002404005030E500FF14A4FFF20220202113
63760 +:105600008E0F00003C1008008E1000503C0D000C66
63761 +:10561000240BFF8001F05021314E007F01DA602120
63762 +:10562000018D4021014B4824AF4900280220202150
63763 +:105630008FBF00188FB100148FB00010A50200D6E4
63764 +:1056400027BD00200A000911AF8800D027BDFFE068
63765 +:10565000AFBF0018AFB10014AFB0001093660001E7
63766 +:10566000008080210E00025630D1000493640005B2
63767 +:10567000001029C2A765000034830040A363000521
63768 +:105680000E00025F020020210E00091302002021FB
63769 +:1056900024020001AF62000C02002821A762001062
63770 +:1056A00024040002A762001224060140A76200142D
63771 +:1056B0000E000C5CA76200161620000F8FBF0018AA
63772 +:1056C000978C00343C0B08008D6B00782588FFFF19
63773 +:1056D0003109FFFF256A0001012A382B10E000067E
63774 +:1056E000A78800343C0F6006240E001635ED00102C
63775 +:1056F000ADAE00508FBF00188FB100148FB00010F6
63776 +:1057000003E0000827BD002027BDFFE0AFB1001473
63777 +:10571000AFBF0018AFB0001000A088211080000AB1
63778 +:105720003C03600024020080108200120000000090
63779 +:105730000000000D8FBF00188FB100148FB0001053
63780 +:1057400003E0000827BD00208C682BF80500FFFE51
63781 +:1057500000000000AC712BC08FBF00188FB1001487
63782 +:105760008FB000103C09100027BD002003E00008A6
63783 +:10577000AC692BF80E00025600A0202193650005AD
63784 +:10578000022020210E00025F30B000FF2403003E03
63785 +:105790001603FFE7000000008F4401780480FFFE3D
63786 +:1057A000240700073C061000AF51014002202021D1
63787 +:1057B000A34701448FBF00188FB100148FB00010B1
63788 +:1057C000AF4601780A0002C227BD002027BDFFE8CE
63789 +:1057D000AFBF0014AFB000108F50002000000000D9
63790 +:1057E0000E000913AF440020AF5000208FBF0014FB
63791 +:1057F0008FB0001003E0000827BD00183084FFFFC1
63792 +:10580000008038212406003500A020210A00022A49
63793 +:10581000000028213084FFFF008038212406003654
63794 +:1058200000A020210A00022A0000282127BDFFD065
63795 +:10583000AFB3001C3093FFFFAFB50024AFB2001828
63796 +:10584000AFBF0028AFB40020AFB10014AFB000105C
63797 +:1058500030B5FFFF12600027000090218F90001CE0
63798 +:105860008E0300003C0680002402004000033E023C
63799 +:1058700000032C0230E4007F006688241482001D9F
63800 +:1058800030A500FF8F8300282C68000A510000100B
63801 +:105890008F910014000358803C0C0800258C56940E
63802 +:1058A000016C50218D49000001200008000000001B
63803 +:1058B00002B210213045FFFF0E000236240400849E
63804 +:1058C000162000028F90001CAF8000288F910014DA
63805 +:1058D000260C002026430001018080213072FFFF4A
63806 +:1058E00016200004AF8C001C0253502B1540FFDC27
63807 +:1058F00000000000024010218FBF00288FB5002457
63808 +:105900008FB400208FB3001C8FB200188FB1001429
63809 +:105910008FB0001003E0000827BD0030240E0034D3
63810 +:1059200014AE00F9000000009203000E241F168040
63811 +:105930003C07000CA36300219202000D0347C8211D
63812 +:105940003C066000A3620020961100123C0A7FFF13
63813 +:10595000354CFFFFA771003C960B00102403000597
63814 +:105960003168FFFFAF6800848E05001CAF5F002820
63815 +:105970008F3800008CC4444803057826008F3021FE
63816 +:10598000AF66004C8F69004C24CE00013C057F00BF
63817 +:10599000AF6900508F740050AF740054AF66007050
63818 +:1059A000AF6E00588F6D005824140050AF6D005C2E
63819 +:1059B000A3600023AF6C0064A36300378E02001461
63820 +:1059C000AF6200488F710048AF7100248E0B001841
63821 +:1059D000AF6B006C9208000CA3680036937F003E0A
63822 +:1059E00037F90020A379003E8F78007403058024E6
63823 +:1059F000360F4000AF6F007493640000308900FFE1
63824 +:105A0000513402452404FF803C04080024845A9841
63825 +:105A10000E00028D000000003C1008008E105A9805
63826 +:105A20000E00025602002021240600042407000173
63827 +:105A3000A366007D020020210E00025FA36700051F
63828 +:105A40008F5F017807E0FFFE240B0002AF5001409A
63829 +:105A5000A34B01448F90001C3C081000AF48017814
63830 +:105A60000A000362AF8000282CAD003751A0FF98D8
63831 +:105A70008F9100140005A0803C180800271856BC20
63832 +:105A8000029878218DEE000001C00008000000009F
63833 +:105A90002418000614B80011000000003C0808009B
63834 +:105AA0008D085A9824040005AF4800208E1F001866
63835 +:105AB000AF7F00188F79004CAF79001C8F650050C4
63836 +:105AC000122000C0AF6500700A000362AF84002896
63837 +:105AD0002406000710A60083240300063C050800E6
63838 +:105AE00024A55A980E000264240400818F90001CA3
63839 +:105AF0000011102B0A000362AF8200282407000463
63840 +:105B000014A7FFF6240500503C1808008F185A9877
63841 +:105B1000AF5800208E0F0008AF6F00408E090008BC
63842 +:105B2000AF6900448E14000CAF7400488E0E001054
63843 +:105B3000AF6E004C8E0D0010AF6D00848E0A001405
63844 +:105B4000AF6A00508E0C0018AF6C00548E04001C1D
63845 +:105B5000AF64005893630000306B00FF116501D8FB
63846 +:105B6000000000008F7400488F6900400289702394
63847 +:105B700005C000042404008C1620FFDE240200036C
63848 +:105B8000240400823C05080024A55A980E000287D0
63849 +:105B9000000000008F90001C000010210A0003622A
63850 +:105BA000AF820028240F000514AFFFCC240520008D
63851 +:105BB0003C0708008CE75A98AF4700208E06000487
63852 +:105BC000AF66005C9208000824100008A36800215A
63853 +:105BD0008F9F001C93F90009A37900208F86001C79
63854 +:105BE00090D8000A330400FF10900011000000005C
63855 +:105BF0002885000914A0006924020002240A00205C
63856 +:105C0000108A000B34058000288D002115A00008A3
63857 +:105C100024054000240E0040108E00053C050001C4
63858 +:105C200024140080109400023C050002240540006A
63859 +:105C30008F7800743C19FF00031980240205782531
63860 +:105C4000AF6F007490C4000BA36400818F84001CAC
63861 +:105C50009489000C11200192000000009490000C27
63862 +:105C60002406FFBF24050004A770003C908F000E9F
63863 +:105C7000A36F003E8F84001C9089000FA369003F32
63864 +:105C80008F8B001C8D6E00108F54007401D468231C
63865 +:105C9000AF6D00608D6A0014AF6A0064956C0018E7
63866 +:105CA000A76C00689563001AA763006A8D62001CE8
63867 +:105CB000AF62006C9167000EA367003E9368003EE0
63868 +:105CC0000106F8241220014BA37F003E8F90001C98
63869 +:105CD0000A000362AF8500282407002214A7FF7F73
63870 +:105CE000240300073C0B08008D6B5A981220000C0F
63871 +:105CF000AF4B00200A000362AF830028240C00335E
63872 +:105D000010AC0014240A00283C05080024A55A9869
63873 +:105D10000E00023C240400810A0003EB8F90001C5B
63874 +:105D20003C04080024845A980E00028D00000000F4
63875 +:105D30009363000024110050306200FF10510135C0
63876 +:105D4000000000008F90001C000018210A00036270
63877 +:105D5000AF8300283C0D08008DAD5A9824040081C3
63878 +:105D6000AF4D00203C05080024A55A980E00023CC7
63879 +:105D7000A36A00348F90001C240200090A00036209
63880 +:105D8000AF82002802B288213225FFFF0E000236C2
63881 +:105D9000240400840A0003628F90001C1082FFA478
63882 +:105DA00024050400288B000311600170240C0004FA
63883 +:105DB000240300015483FF9E240540000A00043B95
63884 +:105DC000240501003C04080024845A988F62004C8A
63885 +:105DD0000E00028D8F6300508F90001C0000202168
63886 +:105DE0000A000362AF8400288E1000042404008A95
63887 +:105DF000AF50002093790005333800021700015F8F
63888 +:105E0000020028219368002302002821311F00206E
63889 +:105E100017E0015A2404008D9367003F2406001206
63890 +:105E200030E200FF10460155240400810E000256A6
63891 +:105E30000200202193630023240500040200202196
63892 +:105E4000346B0042A36B00230E00025FA365007D4C
63893 +:105E50008F4401780480FFFE240A0002AF50014005
63894 +:105E6000A34A01448F90001C3C0C1000AF4C0178F9
63895 +:105E70000A0003EC0011102B8E1000042404008A89
63896 +:105E8000AF500020936E000531CD000215A0001622
63897 +:105E900002002821936F003F2414000402002821EF
63898 +:105EA00031E900FF11340010240400810E00025675
63899 +:105EB000020020219362002324080012241FFFFE09
63900 +:105EC00034460020A3660023A368003F93790005B1
63901 +:105ED00002002021033FC0240E00025FA3780005CA
63902 +:105EE00002002821000020210E00033400000000E1
63903 +:105EF0000A0003EB8F90001C8E1000043C03000886
63904 +:105F00000343A021AF500020928B000024050050D5
63905 +:105F1000316400FF10850161240700880200202100
63906 +:105F2000000028210E00022A2406000E928D000097
63907 +:105F3000240EFF800200282101AE8025A2900000DF
63908 +:105F4000240400040E000C5C240600300A0003EB5D
63909 +:105F50008F90001C8E0800043C14080026945A9868
63910 +:105F60003C010800AC285A98AF480020921F00035B
63911 +:105F700033F9000413200002240200122402000658
63912 +:105F8000A362003F920B001B2404FFC03165003F59
63913 +:105F900000A43825A367003E9206000330C200012A
63914 +:105FA00014400132000000008E020008AE8200089A
63915 +:105FB0003C0208008C425AA010400131000249C244
63916 +:105FC000A76900088E14000C240C0001240300149F
63917 +:105FD000AF74002C8E0E0010AF6E0030960D0016C0
63918 +:105FE000A76D0038960A0014A76A003AAF6C000C3F
63919 +:105FF000A76C0010A76C0012A76C0014A76C001609
63920 +:1060000012200136A3630034920F000331F0000226
63921 +:106010002E1100018F90001C262200080A00036246
63922 +:10602000AF8200288E0400043C0E0008034E30218D
63923 +:10603000AF4400208E05000890CD0000240C0050D5
63924 +:1060400031AA00FF114C00862407008824060009AD
63925 +:106050000E00022A000000000A0003EB8F90001CD3
63926 +:106060008E04001C0E00024100000000104000F4ED
63927 +:10607000004050218F89001C240700890140202105
63928 +:106080008D25001C240600010E00022A00000000DD
63929 +:106090000A0003EB8F90001C960D00023C140800D0
63930 +:1060A00026945A9831AA0004514000B83C10600070
63931 +:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA
63932 +:1060C000920700102408001430E200FF144800D6A4
63933 +:1060D00000000000960B00023163000114600165AE
63934 +:1060E000000000008E020004AE8200083C1408008C
63935 +:1060F0008E945AA01280015B000000008F7400741F
63936 +:106100003C0380002404000102835825AF6B007417
63937 +:10611000A3600005AF64000C3C0708008CE75AA0A0
63938 +:106120008F86001CA7640010000711C2A76400122C
63939 +:10613000A7640014A7640016A76200088CC80008B2
63940 +:1061400024040002AF68002C8CC5000CAF65003041
63941 +:1061500090DF0010A37F00348F99001C9330001152
63942 +:10616000A37000358F98001C930F0012A36F0036A8
63943 +:106170008F89001C912E0013A36E00378F90001C96
63944 +:10618000960D0014A76D0038960A0016A76A003A0B
63945 +:106190008E0C0018AF6C00245620FDCCAF84002874
63946 +:1061A0003C05080024A55A980E0002640000202136
63947 +:1061B0008F90001C0A0004A7000020218E1000040C
63948 +:1061C00024070081AF500020936900233134001070
63949 +:1061D000128000170000000002002021000028218A
63950 +:1061E0002406001F0E00022A000000000A0003EB34
63951 +:1061F0008F90001C3C05080024A55A980E000287C9
63952 +:10620000240400828F90001C000028210A000362F1
63953 +:10621000AF8500283C0408008C845A980E0014E8CE
63954 +:10622000000000008F90001C0A000482000018216A
63955 +:106230000E00025602002021937800230200202144
63956 +:10624000370F00100E00025FA36F002300003821FB
63957 +:1062500002002021000028210A0005A82406001FB2
63958 +:10626000920F000C31E90001112000030000000032
63959 +:106270009618000EA4D8002C921F000C33F90002CF
63960 +:1062800013200005000038218E0200149608001229
63961 +:10629000ACC2001CA4C8001A0A0005432406000969
63962 +:1062A0003C05080024A55A980E0002872404008BA0
63963 +:1062B0008F90001C0011282B0A000362AF85002874
63964 +:1062C000AF6000843C0A08008D4A5A983C0D0800D3
63965 +:1062D0008DAD0050240CFF803C02000C014D1821B4
63966 +:1062E000006C2024AF4400288E070014306B007F20
63967 +:1062F000017A282100A2C821AF2700D88E060014F9
63968 +:10630000AF9900D0AF2600DC8E080010251FFFFEDD
63969 +:106310000A000408AF3F01083C0508008CA55A9804
63970 +:106320003C1908008F39005024CCFFFE00B9C02171
63971 +:1063300003047824AF4F00283C1408008E945A9828
63972 +:106340003C0908008D2900500289702131CD007F61
63973 +:1063500001BA502101478021AE0600D8AF9000D08D
63974 +:10636000AE0000DC0A0003B1AE0C0108548CFE3014
63975 +:10637000240540000A00043B240510000E00032EF3
63976 +:10638000000000000A0003EB8F90001C8E0F442CCD
63977 +:106390003C186C62370979703C010800AC205A98AF
63978 +:1063A00015E9000824050140979F00349786002CCA
63979 +:1063B0000280282103E6C82B132000112404009238
63980 +:1063C000240501400E000C7A240400023C01080060
63981 +:1063D000AC225A98AF4200203C0508008CA55A9880
63982 +:1063E00010A00005240400830E00084500000000F2
63983 +:1063F00010400009240400833C05080024A55A9895
63984 +:106400000E000264000000008F90001C0011202B81
63985 +:106410000A000362AF8400280E0008490000000053
63986 +:106420000A00055F8F90001C0E00084D0000000060
63987 +:106430003C05080024A55A980A00062F2404008B66
63988 +:10644000240400040E000C7A240500301440002AB5
63989 +:10645000004050218F89001C240700830140202127
63990 +:106460008D25001C0A000551240600018E04000839
63991 +:106470000E000241000000000A00051BAE82000869
63992 +:106480003C05080024A55A980E00023C240400870D
63993 +:106490008F90001C0A0005360011102B8F830038E6
63994 +:1064A0008F8600301066FE9D000038213C070800F2
63995 +:1064B00024E75A1C000320C0008728218CAC000070
63996 +:1064C00011900061246A00013143000F5466FFFA05
63997 +:1064D000000320C00A0004F6000038213C05080033
63998 +:1064E00024A55A980E000287240400828F90001C75
63999 +:1064F0000A000536000010213C0B0008034B202148
64000 +:106500002403005024070001AF420020A0830000B4
64001 +:10651000A08700018F82001C90480004A08800180A
64002 +:106520008F85001C90A60005A08600198F9F001C77
64003 +:1065300093F90006A099001A8F90001C921800078A
64004 +:10654000A098001B8F94001C928F0008A08F001C45
64005 +:106550008F89001C912E0009A08E001D8F8D001CBC
64006 +:1065600091AC000AA08C001E8F8B001C3C0C080014
64007 +:10657000258C5A1C9163000B3C0B0800256B5A18A4
64008 +:10658000A083001F8F87001C90E8000CA0880020CB
64009 +:106590008F82001C9045000D24024646A0850021F4
64010 +:1065A0008F86001C90DF000EA09F00228F99001C98
64011 +:1065B0009330000FA09000238F98001C93140010BC
64012 +:1065C000A09400248F8F001C91E90011A089002560
64013 +:1065D0008F89001C8F8E00308F900038952D00140D
64014 +:1065E000000E18C025C80001A48D002895270016AC
64015 +:1065F000006C3021006BC821A487002A9525001863
64016 +:106600003108000FA485002CA482002E8D3F001CB1
64017 +:10661000ACCA0000AF88003011100006AF3F000088
64018 +:10662000000038218D25001C014020210A00055161
64019 +:1066300024060001250C00013184000F00003821E0
64020 +:106640000A0006B8AF8400383C07080024E75A184F
64021 +:106650000087302100003821ACA000000A0004F6B9
64022 +:10666000ACC000003C05080024A55A980A00062F7B
64023 +:10667000240400878E0400040E0002410000000084
64024 +:106680000A00056AAE8200083084FFFF30C600FFB2
64025 +:106690008F4201B80440FFFE00064400010430258B
64026 +:1066A0003C07200000C720253C031000AF400180BC
64027 +:1066B000AF450184AF44018803E00008AF4301B84F
64028 +:1066C00027BDFFE8AFB00010AFBF00143C0760006B
64029 +:1066D000240600021080000600A080210010102B6C
64030 +:1066E0008FBF00148FB0001003E0000827BD001812
64031 +:1066F0003C09600EAD2000348CE5201C8F82001C0C
64032 +:106700002408FFFC00A81824ACE3201C0E0006D1CE
64033 +:106710008C45000C0010102B8FBF00148FB00010A0
64034 +:1067200003E0000827BD00183C02600E344701005A
64035 +:1067300024090018274A040000000000000000009F
64036 +:10674000000000003C06005034C30200AF44003893
64037 +:10675000AF45003CAF430030014018218F4B000093
64038 +:10676000316800201100FFFD2406007F2408FFFF90
64039 +:106770008C6C000024C6FFFF24630004ACEC000016
64040 +:1067800014C8FFFB24E70004000000000000000024
64041 +:10679000000000003C0F0020AF4F00300000000060
64042 +:1067A00024AD020001A5702B2529FFFF008E2021BA
64043 +:1067B0001520FFE101A0282103E0000800000000EF
64044 +:1067C00027BDFFE0AFB10014AFBF0018AFB000109D
64045 +:1067D0003C05600E8CA20034008088211440000625
64046 +:1067E0003C0460008C87201C2408FFFC00E8302457
64047 +:1067F00034C30001AC83201C8F8B001C24090001D2
64048 +:10680000ACA90034956900028D6500148D70000CF0
64049 +:106810002D2400818D6700048D660008108000071C
64050 +:106820008D6A00102D2C00041580000E30CE00075C
64051 +:10683000312D000311A0000B000000002404008B88
64052 +:10684000020028210E0006D1240600030011102B9F
64053 +:106850008FBF00188FB100148FB0001003E0000844
64054 +:1068600027BD002015C0FFF62404008B3C03002048
64055 +:10687000AF4300300000000024020001AF8200148A
64056 +:106880000000000000000000000000003C1F01505C
64057 +:10689000013FC825253800033C0F600EAF47003884
64058 +:1068A00000181882AF46003C35E8003CAF59003074
64059 +:1068B000274704008F4400003086002010C0FFFDF1
64060 +:1068C00000000000106000082466FFFF2403FFFFA3
64061 +:1068D0008CEB000024C6FFFF24E70004AD0B000092
64062 +:1068E00014C3FFFB250800043C08600EAD09003806
64063 +:1068F0000000000000000000000000003C07002035
64064 +:10690000AF470030000000000E0006F901402021D2
64065 +:1069100002002821000020210E0006D124060003D9
64066 +:106920000011102B8FBF00188FB100148FB0001012
64067 +:1069300003E0000827BD002027BDFFE0AFB200182C
64068 +:106940003092FFFFAFB10014AFBF001CAFB000101A
64069 +:106950001640000D000088210A0007AA022010211D
64070 +:1069600024050001508500278CE5000C0000000D77
64071 +:10697000262300013071FFFF24E200200232382B71
64072 +:1069800010E00019AF82001C8F8200141440001622
64073 +:106990008F87001C3C0670003C0320008CE5000043
64074 +:1069A00000A62024148300108F84003C00054402BC
64075 +:1069B0003C09800000A980241480FFE9310600FF13
64076 +:1069C0002CCA00095140FFEB262300010006688015
64077 +:1069D0003C0E080025CE579801AE60218D8B00003B
64078 +:1069E0000160000800000000022010218FBF001C81
64079 +:1069F0008FB200188FB100148FB0001003E00008B0
64080 +:106A000027BD00200E0006D1240400841600FFD804
64081 +:106A10008F87001C0A00078BAF80003C90EF0002BC
64082 +:106A200000002021240600090E0006D1000F2E00D0
64083 +:106A30008F87001C0010102B0A00078BAF82003CD0
64084 +:106A4000020028210E0006DF240400018F87001CAD
64085 +:106A50000A00078BAF82003C020028210E0006DFEF
64086 +:106A6000000020210A0007C38F87001C0E00071FAB
64087 +:106A7000020020210A0007C38F87001C30B0FFFFEF
64088 +:106A8000001019C08F5801B80700FFFE3C1F2004FA
64089 +:106A90003C191000AF430180AF400184AF5F018813
64090 +:106AA000AF5901B80A00078C262300013082FFFF8E
64091 +:106AB00014400003000018210004240224030010E5
64092 +:106AC000308500FF14A000053087000F2466000801
64093 +:106AD0000004220230C300FF3087000F14E00005DD
64094 +:106AE000308900032468000400042102310300FF00
64095 +:106AF0003089000315200005388B0001246A00024C
64096 +:106B000000042082314300FF388B00013164000112
64097 +:106B100010800002246C0001318300FF03E00008B4
64098 +:106B200000601021308BFFFF000B394230E600FF80
64099 +:106B30003C09080025295998000640800109602178
64100 +:106B40008D8700003164001F240A0001008A1804A8
64101 +:106B500030A500FF00E3202514A000020003102749
64102 +:106B600000E22024240F000100CF700401096821F5
64103 +:106B7000000E282714800005ADA400008F86000CAD
64104 +:106B800000A6102403E00008AF82000C8F88000CE0
64105 +:106B900001C8102503E00008AF82000C3C06001F6E
64106 +:106BA0003C0360003084FFFF34C5FF8024020020D6
64107 +:106BB000AC602008AC60200CAC602010AC652014E8
64108 +:106BC000AC642018AC62200000000000000000004F
64109 +:106BD00003E000080000000027BDFFE82402FFFFDB
64110 +:106BE000AFBF0010AF82000C000020213C0608005F
64111 +:106BF00024C659982405FFFF248900010004408021
64112 +:106C00003124FFFF010618212C87002014E0FFFA31
64113 +:106C1000AC6500000E0008160000202124020001CF
64114 +:106C20003C04600024050020AC822018AC852000C4
64115 +:106C3000000000000000000000000000244A0001E5
64116 +:106C40003142FFFF2C46040014C0FFF78FBF001035
64117 +:106C500003E0000827BD00188F8300082C620400A1
64118 +:106C600003E00008384200018F830008246200011D
64119 +:106C700003E00008AF8200088F8300082462FFFF52
64120 +:106C800003E00008AF82000827BDFFE0AFB10014A9
64121 +:106C9000AFBF0018AFB000108F6B00303C06600033
64122 +:106CA00000808821ACCB20088F6A002C3C02800039
64123 +:106CB00024030008ACCA200C9769003A9768003892
64124 +:106CC00000092C003107FFFF00A72025ACC42010CD
64125 +:106CD000ACC22014ACC32000000000000000000083
64126 +:106CE000000000003C0360008C6D200031AC000807
64127 +:106CF0001580FFF9000000008C6E201405C00020F4
64128 +:106D0000000000000E0007DA8F84000C00024080B3
64129 +:106D10003C09080025295998010938218CE4000014
64130 +:106D20000E0007DA00028140020220213090FFFFAE
64131 +:106D3000020020210E0007F8000028213C0C8000F2
64132 +:106D4000022C58253210FFFF3C116000240A00205D
64133 +:106D5000AE2B2014AE302018AE2A20000000000018
64134 +:106D60000000000000000000020010218FBF00188A
64135 +:106D70008FB100148FB0001003E0000827BD002081
64136 +:106D80008C6620143C02001F3443FF803C1FFFE848
64137 +:106D900000C3C02437F9080003198021001079C20C
64138 +:106DA0003C0C8000022C582531F0FFFF3C116000A4
64139 +:106DB000240A0020AE2B2014AE302018AE2A20006A
64140 +:106DC0000000000000000000000000000200102190
64141 +:106DD0008FBF00188FB100148FB0001003E00008BF
64142 +:106DE00027BD002027BDFFE8AFB000103402FFFF31
64143 +:106DF0003090FFFFAFBF00141202000602002021F6
64144 +:106E00000E00081600000000020020210E0007F806
64145 +:106E1000240500018F8400088FBF00148FB000107C
64146 +:106E20002483FFFF27BD001803E00008AF8300089C
64147 +:106E3000000439C230E6003F00043B42000718401E
64148 +:106E4000240210002CC4002024C8FFE0AF42002C14
64149 +:106E5000246300011480000330A900FF00071840DC
64150 +:106E6000310600FF0003608024080001019A5821C8
64151 +:106E70003C0A000E00C82804016A382111200005D0
64152 +:106E8000000530278CE900000125302503E00008CB
64153 +:106E9000ACE600008CEE000001C6682403E00008A8
64154 +:106EA000ACED000027BDFFE8AFBF0014AFB000108D
64155 +:106EB0003C0460008C8508083403F00030A2F00028
64156 +:106EC00050430006240200018C8708083404E000C7
64157 +:106ED00030E6F00010C4001E24020002AF82004021
64158 +:106EE0003C1060003C0A0200AE0A0814240910009D
64159 +:106EF0003C08000E8E03440003482021AF49002CBB
64160 +:106F0000240501200E000CC0000030218F830040BA
64161 +:106F1000106000043C021691240B0001106B000E5F
64162 +:106F20003C023D2C344F0090AE0F44088FBF00143C
64163 +:106F30008FB000103C0C6000240E10003C0D0200CD
64164 +:106F400027BD0018AD8E442003E00008AD8D081069
64165 +:106F50000A0008E7AF8000403C0218DA344F009086
64166 +:106F6000AE0F44088FBF00148FB000103C0C6000BF
64167 +:106F7000240E10003C0D020027BD0018AD8E4420E9
64168 +:106F800003E00008AD8D08100A0008BB24050001CD
64169 +:106F90000A0008BB000028213C08080025085DA461
64170 +:106FA0002404FFFF010018212402001E2442FFFFD9
64171 +:106FB000AC6400000441FFFD246300043C070800AA
64172 +:106FC00024E75E208CE5FFFC2404001C240600015D
64173 +:106FD000308A001F0146480424840001000910275C
64174 +:106FE0002C8300201460FFFA00A22824ACE5FFFCEB
64175 +:106FF0003C05666634A4616E3C06080024C65EE06B
64176 +:10700000AF840058AF88009C2404FFFF00C0182103
64177 +:107010002402001F2442FFFFAC6400000441FFFD76
64178 +:10702000246300043C0766663C05080024A55EA0B6
64179 +:10703000AF86004834E6616EAF8600982404FFFFF7
64180 +:1070400000A018212402000F2442FFFFAC640000BE
64181 +:107050000441FFFD246300043C0B66663C06080007
64182 +:1070600024C65E203568616EAF8500A4AF880070CD
64183 +:107070002404FFFF00C018212402001F2442FFFF48
64184 +:10708000AC6400000441FFFD246300043C0D66660F
64185 +:107090003C0A0800254A5F6035AC616EAF860090FF
64186 +:1070A000AF8C005C2404FFFF014018212402000380
64187 +:1070B0002442FFFFAC6400000441FFFD2463000490
64188 +:1070C0003C09080025295F708D27FFFC2404000679
64189 +:1070D000240500013099001F0325C0042484000109
64190 +:1070E000001878272C8E002015C0FFFA00EF3824F6
64191 +:1070F000AD27FFFC3C09666624030400240403DC7E
64192 +:1071000024050200240600663522616E3C08080052
64193 +:1071100025085AA4AF820074AF830044AF83006C8B
64194 +:10712000AF830050AF830084AF8A008CAF840064CB
64195 +:10713000AF85004CAF860054AF840078AF85006007
64196 +:10714000AF86008001001821240200022442FFFFC4
64197 +:10715000AC6000000441FFFD24630004240400032C
64198 +:107160002403000C3C0A0800254A5AB0AF8A006884
64199 +:107170000A00098E2405FFFF000418802484000102
64200 +:10718000006858212C8700C014E0FFFBAD650000AB
64201 +:107190003C0E666635CD616E240C17A024081800DD
64202 +:1071A000AF8D0088AF8C009403E00008AF88007CAE
64203 +:1071B0002484007F000421C200004021000030210F
64204 +:1071C00000003821000028210A0009A5AF8400A092
64205 +:1071D0001060000624E7000100C4302124A500014E
64206 +:1071E0002CC20BF51440FFFA2CA300663C090800E2
64207 +:1071F00025295F6001201821240200032442FFFF9B
64208 +:10720000AC6000000441FFFD2463000410E0001A9C
64209 +:1072100024E3FFFF0003294210A0000A0000202100
64210 +:107220002406FFFF3C03080024635F602484000100
64211 +:107230000085502BAC660000250800011540FFFBBF
64212 +:107240002463000430E2001F10400008000868803A
64213 +:10725000240C0001004C38040008588001692821E2
64214 +:1072600024E6FFFF03E00008ACA6000001A94021CE
64215 +:107270002409FFFFAD09000003E000080000000042
64216 +:10728000AF4400283C04000C034420210005288260
64217 +:107290000A000CC000003021000421803C03600083
64218 +:1072A000AC6410080000000000052980AC65100CDB
64219 +:1072B0000000000003E000088C62100C27BDFFE80E
64220 +:1072C0000080282124040038AFBF00140E0009D527
64221 +:1072D000AFB0001024040E00AF4400283C10000C96
64222 +:1072E00003502021240500100E000CC000003021A6
64223 +:1072F00003501021AC400000AC40000424040038CE
64224 +:107300008FBF00148FB0001024053FFF27BD001869
64225 +:107310000A0009D58C430000000421803C03600072
64226 +:10732000AC641008000000008C62100C03E0000840
64227 +:107330000002118227BDFFC8AFB400208F940068FF
64228 +:10734000AFBE0030AFB7002CAFB600280000B821A8
64229 +:107350000080B021241E00C0AFBF0034AFB50024B0
64230 +:10736000AFB3001CAFB20018AFB10014AFB0001043
64231 +:107370000A000A12AFA5003C504000018F9400683B
64232 +:1073800027DEFFFF13C00028269400048E92000021
64233 +:107390003C03080024635DA01240FFF70283102B1A
64234 +:1073A0003C04080024845AA4028410230002A8C0CC
64235 +:1073B000000098210A000A212411000100118840D0
64236 +:1073C000122000260000000002B380210251282470
64237 +:1073D0000200202110A0FFF9267300010E0009DE33
64238 +:1073E000000000000016684032EC000101AC2021D2
64239 +:1073F0000E0009D5020028218F89009426F700018C
64240 +:107400008FA6003C3AEB0001316A00012528FFFFFE
64241 +:107410000011382702CAB021AF88009416E6FFE7B2
64242 +:1074200002479024AE92000002E010218FBF00348A
64243 +:107430008FBE00308FB7002C8FB600288FB5002488
64244 +:107440008FB400208FB3001C8FB200188FB10014CE
64245 +:107450008FB0001003E0000827BD00383C0E080084
64246 +:1074600025CE5DA0028E102B0A000A0DAE92000000
64247 +:1074700027BDFFD8AFB10014AFB00010AFBF0020E0
64248 +:10748000AFB3001CAFB2001800A0882110A0001FED
64249 +:10749000000480403C13080026735AA40A000A5ACC
64250 +:1074A0002412000112200019261000010E0009F517
64251 +:1074B00002002021000231422444FFA0000618806F
64252 +:1074C0003045001F2C8217A1007318212631FFFFC1
64253 +:1074D0001040FFF400B230048C690000020020214B
64254 +:1074E00024053FFF012640241500FFEE0126382524
64255 +:1074F0000E0009D5AC6700008F8A009426100001A9
64256 +:10750000254700011620FFE9AF8700948FBF0020B8
64257 +:107510008FB3001C8FB200188FB100148FB0001011
64258 +:1075200003E0000827BD00288F85009C00805821BB
64259 +:107530000000402100004821240A001F3C0C0800E4
64260 +:10754000258C5E1C3C0D080025AD5DA48CA60000BA
64261 +:1075500050C000140000402100AD1023000238C0CC
64262 +:10756000240300010A000A930000202115000003F3
64263 +:1075700000E410212448202400004821252900018E
64264 +:10758000512B00132506DFDC106000062484000167
64265 +:1075900000C3702415C0FFF5000318400A000A91CB
64266 +:1075A0000000402110AC002624A300040060282124
64267 +:1075B000254AFFFF1540FFE5AF85009C512B0004D5
64268 +:1075C0002506DFDC0000402103E000080100102157
64269 +:1075D0000006614230C5001F000C50803C070800C7
64270 +:1075E00024E75DA424040001014730211120000F8D
64271 +:1075F00000A420043C05080024A55E20148000059A
64272 +:107600002529FFFF24C6000410C50011000000005A
64273 +:10761000240400018CCF00000004C0270004204097
64274 +:1076200001F868241520FFF5ACCD00008F99007893
64275 +:1076300001001021032B482303E00008AF890078E4
64276 +:107640003C05080024A55DA40A000A9B0000402117
64277 +:107650003C06080024C65DA40A000AB42404000104
64278 +:10766000308800FF240200021102000A24030003F4
64279 +:107670001103005C8F8900A4240400041104005F3E
64280 +:1076800024050005110500670000182103E000082B
64281 +:10769000006010218F8900483C0C0800258C5EE0BA
64282 +:1076A0003C04080024845F60240300201060000F65
64283 +:1076B00000005821240D0002240E00033C0F080096
64284 +:1076C00025EF5EE08D27000014E0000B30F9FFFF8E
64285 +:1076D000252900040124C02B53000001018048210A
64286 +:1076E0002463FFFF5460FFF88D270000016018211C
64287 +:1076F00003E0000800601021132000323C0500FF69
64288 +:1077000030E200FF004030211040004200005021D4
64289 +:1077100024050001000020210005C84000A6C02467
64290 +:1077200017000003332500FF14A0FFFB2484000191
64291 +:10773000012CC023001828C000AA6021008C502111
64292 +:107740003144001F240C0001008C18040003102792
64293 +:1077500000E23024110D0041AD260000110E004C56
64294 +:10776000000A1840110D00368F87006C510E00562C
64295 +:107770008F8C0060240D0004110D005A8F8E008440
64296 +:10778000240E0005150EFFDA01601821240B1430B9
64297 +:1077900011400006000018218F8400A0246300011E
64298 +:1077A000006A402B1500FFFD016458218F8A00807C
64299 +:1077B000AF89008C016018212549FFFF0A000AEB00
64300 +:1077C000AF89008000E52024000736021080FFD03A
64301 +:1077D000240A001800075402314600FF0A000AF389
64302 +:1077E000240A00103C0C0800258C5EA03C04080014
64303 +:1077F00024845EE00A000ADA240300103C0C08002E
64304 +:10780000258C5E203C04080024845EA00A000AD96E
64305 +:107810008F89009000071A02306600FF0A000AF301
64306 +:10782000240A00088F89008C3C0C0800258C5F60BE
64307 +:107830003C04080024845F700A000ADA2403000470
64308 +:10784000000A4080250B003024E6FFFF016018216C
64309 +:10785000AF8900480A000AEBAF86006C000AC982B3
64310 +:10786000001978803C07080024E75EA001E720218A
64311 +:10787000000A18428C8F00003079001F032C380456
64312 +:107880000007C02701F860240A000B08AC8C000038
64313 +:10789000000331420006288000AF28213062001F1B
64314 +:1078A0008CB8000024630001004CC804000321428E
64315 +:1078B000001938270004108003073024004F2021CE
64316 +:1078C0000A000B4CACA60000000A68C025AB0032D1
64317 +:1078D000258AFFFF01601821AF8900A40A000AEB86
64318 +:1078E000AF8A0060254B1030AF89009001601821ED
64319 +:1078F00025C9FFFF0A000AEBAF8900843086000724
64320 +:107900002CC2000610400014000000000006408059
64321 +:107910003C030800246357BC010338218CE40000B9
64322 +:1079200000800008000000002409000310A9000ED8
64323 +:1079300000000000240A000510AA000B000000004F
64324 +:10794000240B000110AB0008000000008F8C00A089
64325 +:1079500010AC00050000000003E00008000010214A
64326 +:107960000A000A7900A020210A000AC700C02021CD
64327 +:1079700027BDFFE8308400FF240300021083000BC2
64328 +:10798000AFBF0010240600031086003A240800044C
64329 +:1079900010880068240E0005108E007F2CAF143074
64330 +:1079A0008FBF001003E0000827BD00182CA2003094
64331 +:1079B0001440FFFC8FBF001024A5FFD0000531C28A
64332 +:1079C000000668803C07080024E75EE001A730213C
64333 +:1079D0008CC900000005288230AC001F240B000178
64334 +:1079E000018B50048F840048012A4025ACC8000058
64335 +:1079F0008C83000050600001AF8600488F98006CB7
64336 +:107A000030AE000124A6FFFF270F000115C00002C1
64337 +:107A1000AF8F006C24A600010006414200082080C0
64338 +:107A2000008718218C79000030C2001F2406000155
64339 +:107A30000046F804033F382410E0FFDA8FBF00103F
64340 +:107A40000005C182001870803C0F080025EF5EA081
64341 +:107A500001CF48218D2B00000005684231A5001F91
64342 +:107A600000A66004016C502527BD001803E0000843
64343 +:107A7000AD2A00002CA7003014E0FFCA8FBF001011
64344 +:107A800030B900071723FFC724A8FFCE00086A02F9
64345 +:107A9000000D60803C0B0800256B5EA0018B30213F
64346 +:107AA0008CC40000000828C230AA001F240800016E
64347 +:107AB000014848048F8200A400891825ACC3000047
64348 +:107AC0008C5F000053E00001AF8600A40005704009
64349 +:107AD000000E7942000F28803C04080024845EE0F8
64350 +:107AE00000A418218C6B000025DF000131CD001FA0
64351 +:107AF000001F514201A86004016C4825000A108053
64352 +:107B0000AC690000004428218CA600008F9800601A
64353 +:107B100033F9001F8FBF00100328380400C77825F1
64354 +:107B2000270E000127BD0018ACAF000003E00008DD
64355 +:107B3000AF8E006024A5EFD02CB804001300FF998D
64356 +:107B40008FBF001000053142000658803C0A080033
64357 +:107B5000254A5E20016A30218CC4000030A3001F3A
64358 +:107B600024090001006910048F9900900082F82513
64359 +:107B7000ACDF00008F27000050E00001AF860090CE
64360 +:107B80008F8D00848FBF001027BD001825AC000129
64361 +:107B900003E00008AF8C008415E0FF828FBF001067
64362 +:107BA0008F8600A0000610400046F821001F21002B
64363 +:107BB00003E4C8210019384024F8143000B8402BE1
64364 +:107BC0001100FF788FBF001024A4EBD00E00021329
64365 +:107BD00000C0282100027942000F70803C0D08008F
64366 +:107BE00025AD5F6001CD20218C8B0000304C001F43
64367 +:107BF00024060001018618048F89008C016350253A
64368 +:107C0000AC8A00008D25000050A00001AF84008CDC
64369 +:107C10008F9800808FBF001027BD00182708000133
64370 +:107C200003E00008AF88008030A5000724030003AC
64371 +:107C300010A3001028A2000414400008240700022A
64372 +:107C40002403000410A300152408000510A8000F49
64373 +:107C50008F8500A003E000080000000014A7FFFDCE
64374 +:107C60000080282114C3FFFB240400020A000B8BB0
64375 +:107C700000000000240900050080282110C9FFFB36
64376 +:107C80002404000303E000080000000014C5FFF115
64377 +:107C9000008028210A000B8B24040005240A00011F
64378 +:107CA0000080282110CAFFF12404000403E000082A
64379 +:107CB0000000000027BDFFE0AFB00010000581C24A
64380 +:107CC0002603FFD024C5003F2C6223D024C6007FAA
64381 +:107CD000AFB20018AFB10014AFBF001C309100FF6D
64382 +:107CE000000691C2000529820200202110400008F0
64383 +:107CF0002403FFFF0E000A4B0000000002002021B9
64384 +:107D0000022028210E000C390240302100001821E9
64385 +:107D10008FBF001C8FB200188FB100148FB00010FD
64386 +:107D20000060102103E0000827BD002027BDFFD818
64387 +:107D300024A2007FAFB3001CAFB20018000299C2AA
64388 +:107D4000309200FF24A3003F02402021026028213E
64389 +:107D5000AFB10014AFB00010AFBF00200E000B6E2B
64390 +:107D60000003898200408021004020210220282138
64391 +:107D700014400009000018218FBF00208FB3001CA1
64392 +:107D80008FB200188FB100148FB000100060102166
64393 +:107D900003E0000827BD00280E0009FC00000000D9
64394 +:107DA00000402821020020211051FFF3001019C0CB
64395 +:107DB0000E000A4B00000000020020210240282192
64396 +:107DC0000E000C39026030218FBF00208FB3001CE1
64397 +:107DD0008FB200188FB100148FB00010000018216E
64398 +:107DE0000060102103E0000827BD00283084FFFF59
64399 +:107DF00030A5FFFF1080000700001821308200012D
64400 +:107E00001040000200042042006518211480FFFB8E
64401 +:107E10000005284003E000080060102110C00007A2
64402 +:107E2000000000008CA2000024C6FFFF24A500046F
64403 +:107E3000AC82000014C0FFFB2484000403E00008AF
64404 +:107E40000000000010A0000824A3FFFFAC86000083
64405 +:107E500000000000000000002402FFFF2463FFFF79
64406 +:107E60001462FFFA2484000403E00008000000000C
64407 +:107E700030A5FFFF8F4201B80440FFFE3C076015AC
64408 +:107E800000A730253C031000AF440180AF400184BF
64409 +:107E9000AF46018803E00008AF4301B88F8500D0EA
64410 +:107EA0002C864000008018218CA700840087102BAE
64411 +:107EB00014400010000000008CA800842D06400033
64412 +:107EC00050C0000F240340008CAA0084008A482B75
64413 +:107ED000512000018CA3008400035A42000B208033
64414 +:107EE0003C05080024A558200085182103E000085F
64415 +:107EF0008C62000014C0FFF4000000002403400066
64416 +:107F000000035A42000B20803C05080024A558209D
64417 +:107F10000085182103E000088C6200008F8300D0E8
64418 +:107F2000906600D024C50001A06500D08F8500D0E8
64419 +:107F3000906400D090A200D210440017000000000E
64420 +:107F4000936C00788F8B00BC318A00FFA16A000C13
64421 +:107F500025490001938700C4312200FF3048007F8B
64422 +:107F60001107000B00026827A36200788F4E01788A
64423 +:107F700005C0FFFE8F9900B0241800023C0F1000CE
64424 +:107F8000AF590140A358014403E00008AF4F017806
64425 +:107F90000A000D0931A20080A0A000D00A000CFF49
64426 +:107FA000000000008F8700D027BDFFC8AFBF0030A2
64427 +:107FB000AFB7002CAFB60028AFB50024AFB4002097
64428 +:107FC000AFB3001CAFB20018AFB10014AFB00010D7
64429 +:107FD00094E300E094E200E2104300D72405FFFFA1
64430 +:107FE0003C047FFF3497FFFF2415FF800A000DF04B
64431 +:107FF0003C16000E108A00D18FBF00308F9100B068
64432 +:108000003C1808008F18005C001230C0001291402C
64433 +:108010000311702101D57824AF4F002C94EC00E2BD
64434 +:1080200031CD007F01BA5821318A7FFF0176482186
64435 +:10803000000A804002091021945300003C08080007
64436 +:108040008D0800580246C02132733FFF001319808B
64437 +:10805000010320210224282130BF007F03FAC82118
64438 +:1080600000B5A024AF54002C0336A0218E87001049
64439 +:108070008E8F003003785821256D008800EF702323
64440 +:10808000240C0002AE8E0010AF8D00ACA16C0088F5
64441 +:10809000976A003C8E8400308F9100AC0E000CD6A5
64442 +:1080A0003150FFFF00024B80020940253C02420094
64443 +:1080B00001022025AE2400048E8300048F8D00ACC5
64444 +:1080C0008E860000240E0008ADA3001CADA600188B
64445 +:1080D000ADA0000CADA00010929F000A33F900FF84
64446 +:1080E000A5B90014968500083C1F000CA5A5001634
64447 +:1080F0009298000A331100FFA5B100209690000865
64448 +:1081000024180005A5B00022ADA00024928F000B1A
64449 +:108110002410C00031E700FFA5A70002A1AE0001B6
64450 +:108120008E8C00308F8B00AC8F8400B0AD6C00085B
64451 +:108130003C0A08008D4A005401444821013540247E
64452 +:10814000AF4800283C0208008C4200540044302113
64453 +:1081500030C3007F007AC821033F282102458821CF
64454 +:10816000AF9100BCAF8500C0A23800008F8A00BC70
64455 +:108170002403FFBF2418FFDF954F000201F03824CD
64456 +:1081800000F37025A54E0002914D000231AC003F76
64457 +:10819000358B0040A14B00028F8600BC8F8900D038
64458 +:1081A000ACC000048D28007C3C098000ACC80008ED
64459 +:1081B00090C4000D3082007FA0C2000D8F8500BCEE
64460 +:1081C00090BF000D03E3C824A0B9000D8F9100BC3F
64461 +:1081D0009233000D02789024A232000D8E9000346C
64462 +:1081E0008F8B00BCAD7000108E87002C8E8F0030FE
64463 +:1081F00000EF7023AD6E0014916D001831AC007F5C
64464 +:10820000A16C00188F9F00BC8E8A00308FE8001888
64465 +:10821000015720240109302400C41025AFE20018C2
64466 +:108220009283000AA3E3001C969900088F8500BC86
64467 +:108230008F9800D0A4B9001E8E9000308E8400303C
64468 +:108240000E0002138F0500848F8500D0000291403C
64469 +:108250000002990090AF00BC0253882100403021F9
64470 +:1082600031E7000210E0000302118021000290803B
64471 +:108270000212802190B900BC3327000410E00002F4
64472 +:108280000006F880021F80218E9800308F8B00BC82
64473 +:1082900024068000330F0003000F702331CD00034C
64474 +:1082A000020D6021AD6C000494A400E294AA00E2E7
64475 +:1082B00094B000E231497FFF2522000130537FFF57
64476 +:1082C0000206182400734025A4A800E294A400E24A
64477 +:1082D0003C1408008E94006030917FFF123400221D
64478 +:1082E000000000000E000CF6000000008F8700D098
64479 +:1082F0000000282194F300E094F000E21213000F34
64480 +:108300008FBF003090E900D090E800D1313200FFFB
64481 +:10831000310400FF0244302B14C0FF36264A00010E
64482 +:1083200090EE00D2264B000131CD00FF008D602180
64483 +:10833000158BFF338F9100B08FBF00308FB7002CAB
64484 +:108340008FB600288FB500248FB400208FB3001C97
64485 +:108350008FB200188FB100148FB0001000A0102150
64486 +:1083600003E0000827BD003894A300E20066402423
64487 +:10837000A4A800E290A400E290B900E2309100FFCE
64488 +:108380000011A1C20014F827001F39C03332007F4A
64489 +:10839000024730250A000DE8A0A600E23084FFFF66
64490 +:1083A00030A5FFFFAF440018AF45001C03E00008F4
64491 +:1083B0008F42001427BDFFB8AFB000208F9000D0CF
64492 +:1083C0003084FFFFAFA40010AFBF0044AFBE004039
64493 +:1083D000AFB7003CAFB60038AFB50034AFB4003033
64494 +:1083E000AFB3002CAFB20028AFB10024A7A0001893
64495 +:1083F000920600D1920500D030C400FF30A300FFE8
64496 +:108400000064102B10400122AFA00014920900D08C
64497 +:108410008FB50010312800FF0088382324F4FFFFB7
64498 +:108420000014882B0015982B02339024524001260B
64499 +:108430008FB40014961E0012961F00108FB7001004
64500 +:1084400003DFC823001714000019C400000224032E
64501 +:108450000018140302E2B02A52C00001004020219B
64502 +:108460000284282B10A0000200801821028018210D
64503 +:1084700000033C0000071C033064FFFF2C8600094A
64504 +:1084800014C000020060B821241700088E0A0008FA
64505 +:10849000001769808E09000C31ABFFFF3C0C001007
64506 +:1084A000016C402527520400AF4A0038AF9200B853
64507 +:1084B000AF49003CAF480030000000000000000061
64508 +:1084C00000000000000000000000000000000000AC
64509 +:1084D00000000000000000008F4F000031EE00207F
64510 +:1084E00011C0FFFD0017982A027110240A000E83A4
64511 +:1084F0000000B02155E001019258000131130080C5
64512 +:10850000126001CF012020219655001232A5FFFFF5
64513 +:108510000E000CCBA7B500188F9000D00291A023BD
64514 +:1085200026CD00018F9100B8000DB4000016B403F1
64515 +:108530002638004002D7582A0014882B2405000151
64516 +:108540000300902101711024AF9800B8AFA500146A
64517 +:10855000104001BC8F8900B03C0C08008D8C005489
64518 +:10856000240BFF80921E00D001895021014B28244A
64519 +:10857000921900D0AF4500288E4700103C08080033
64520 +:108580008D0800583C1808008F18005430E33FFF56
64521 +:108590000003218001043021012658212402FF809C
64522 +:1085A0000162F824920C00D0AF5F002C92480000CA
64523 +:1085B00033D100FF333500FF0309982100117140CA
64524 +:1085C000001578C0326D007F01CF382101BA282113
64525 +:1085D000318300FF3164007F3C0A000C00AA88212F
64526 +:1085E0000367F02100033140009A10213108003F59
64527 +:1085F0003C1F000E00D1C021005F982127D90088C0
64528 +:108600002D150008AF9100C0AF9900ACAF9800BC29
64529 +:10861000AF9300B412A0018A00008821240E00014B
64530 +:10862000010E4004310D005D11A0FFB2310F0002B8
64531 +:108630008E4A00283C0300803C04FFEFAE6A000035
64532 +:108640008E450024A260000A3488FFFFAE65000456
64533 +:108650009247002C3C1FFF9F37FEFFFFA267000CD4
64534 +:108660008E62000C3C180040A267000B00433025CE
64535 +:1086700000C8C824033E88240238A825AE75000C23
64536 +:108680008E490004AE6000183C0F00FFAE69001474
64537 +:108690008E4D002C35EEFFFF8F8B00B001AE6024B5
64538 +:1086A000AE6C00108E470008A660000896450012C8
64539 +:1086B000AE6700208E42000C30B03FFF00105180AA
64540 +:1086C000AE6200248E5E0014014B182130A400011C
64541 +:1086D000AE7E00288E590018000331C2000443808A
64542 +:1086E000AE79002C8E51001C00C8F821A67F001C1A
64543 +:1086F000AE710030965800028E550020A678001EFC
64544 +:10870000AE75003492490033313000045600000544
64545 +:10871000925000008F8C00D08D8B007CAE6B0030AF
64546 +:10872000925000008F8F00BCA1F00000924E0033E9
64547 +:1087300031CD000251A00007925E00018F8900BC7C
64548 +:108740002418FF80913100000311A825A1350000F5
64549 +:10875000925E00018F9900BC2409FFBF240BFFDF4C
64550 +:10876000A33E00018F9500BC92B8000D3311007F2D
64551 +:10877000A2B1000D8F8E00BC91D0000D02097824AB
64552 +:10878000A1CF000D8F8800BC8E6D0014910A000DE2
64553 +:108790002DAC0001000C2940014B382400E51825C0
64554 +:1087A000A103000D964200128F8800BC8F8700D075
64555 +:1087B000A50200028E45000490FF00BC30A4000317
64556 +:1087C0000004302330DE000300BE102133F9000224
64557 +:1087D00017200002244400342444003090E200BCFE
64558 +:1087E00000A2302430DF000417E0000224830004DC
64559 +:1087F000008018218F8F00AC24090002AD03000413
64560 +:10880000A1E90000924E003F8F8D00ACA1AE0001A7
64561 +:108810008F9500AC924C003F8E440004A6AC000241
64562 +:10882000976B003C0E000CD63170FFFF00025380A6
64563 +:10883000020A38253C05420000E51825AEA30004D5
64564 +:108840008F8600AC8E480038ACC800188E440034C7
64565 +:10885000ACC4001CACC0000CACC00010A4C0001420
64566 +:10886000A4C00016A4C00020A4C00022ACC00024F4
64567 +:108870008E6400145080000124040001ACC4000880
64568 +:108880000E000CF6241100010A000E768F9000D025
64569 +:10889000920F00D2920E00D08FB5001031EB00FF86
64570 +:1088A00031CD00FF008D6023016C50212554FFFF66
64571 +:1088B0000014882B0015982B023390241640FEDDFF
64572 +:1088C000000000008FB400148FBF00448FBE004032
64573 +:1088D0003A8200018FB7003C8FB600388FB5003464
64574 +:1088E0008FB400308FB3002C8FB200288FB10024DA
64575 +:1088F0008FB0002003E0000827BD0048331100209E
64576 +:10890000122000EF24150001921E00BC241F00015C
64577 +:108910000000A82133D900011320000DAFBF001CB7
64578 +:108920008E4400148E0800840088102B144000022E
64579 +:10893000008030218E0600848E03006400C3A82BC3
64580 +:1089400016A0000200C020218E0400640080A8212F
64581 +:108950008E4700148E05006400E5302B14C0000221
64582 +:1089600000E020218E0400640095F02313C0000471
64583 +:108970008FAC001C240A0002AFAA001C8FAC001CA4
64584 +:10898000028C582B156000A8000018218E4F00386B
64585 +:108990008E6D000C3C0E0080AE6F00008E4A0034DD
64586 +:1089A0003C10FF9F01AE5825AE6A00049246003F7E
64587 +:1089B000360CFFFF016C38243C0500203C03FFEF20
64588 +:1089C000A266000B00E510253468FFFF8F8700B812
64589 +:1089D0000048F8243C04000803E4C825AE79000CE4
64590 +:1089E0008CF80014AE60001802BE7821AE78001436
64591 +:1089F0008CF10018AE71001C8CE90008AE690024EF
64592 +:108A00008CEE000CAE6F002CAE600028AE6E002025
64593 +:108A1000A6600038A660003A8CED001401B58023F2
64594 +:108A2000021E902312400011AE72001090EA003D29
64595 +:108A30008E6500048E640000000A310000A6C82183
64596 +:108A4000000010210326402B0082F82103E8C021FA
64597 +:108A5000AE790004AE78000090F1003DA271000AEA
64598 +:108A60008F8900B895320006A67200088F9800AC76
64599 +:108A70002419000202A02021A31900009769003CDC
64600 +:108A80008F9200AC0E000CD63131FFFF00027B80CC
64601 +:108A90008F8500B8022F68253C0E420001AE80256C
64602 +:108AA000AE5000048F8400AC8CAC0038AC8C001845
64603 +:108AB0008CAB0034AC8B001CAC80000CAC80001084
64604 +:108AC000A4800014A4800016A4800020A4800022AA
64605 +:108AD000AC80002490A7003FA487000212A00135BB
64606 +:108AE0002403000153C0000290A2003D90A2003E6A
64607 +:108AF00024480001A08800018F9F00ACAFF500085A
64608 +:108B00008F8300D024070034906600BC30C500027B
64609 +:108B100050A00001240700308F9200B88F8A00BC5B
64610 +:108B2000906D00BC924B00002412C00032A50003DF
64611 +:108B3000A14B00008F8600B88F8800BC240200047F
64612 +:108B400090C400010045182330790003A1040001FE
64613 +:108B50008F8A00BC8F9F00B800F53821955800021D
64614 +:108B600097E9001200F9382103128824312F3FFFC2
64615 +:108B7000022F7025A54E00029150000231A800047A
64616 +:108B8000320C003F358B0040A14B000212A00002C6
64617 +:108B90008F8500BC00E838218F8E00D0ACA7000480
64618 +:108BA000240BFFBF8DCD007C2EA400012403FFDF2A
64619 +:108BB000ACAD000890B0000D00044140320C007FC5
64620 +:108BC000A0AC000D8F8600BC90CA000D014B102494
64621 +:108BD000A0C2000D8F8700BC90E5000D00A3F82413
64622 +:108BE00003E8C825A0F9000D8F9100B88F8D00BC57
64623 +:108BF0008E380020ADB800108E290024ADA90014D5
64624 +:108C00008E2F0028ADAF00188E2E002C0E000CF613
64625 +:108C1000ADAE001C8FB0001C240C0002120C00EE44
64626 +:108C20008F9000D08FA3001C006088211460000288
64627 +:108C30000060A8210000A02156A0FE390291A023C7
64628 +:108C40000014882B8FA90010960700103C1E0020EE
64629 +:108C50000136402302C750213112FFFFA60A00103F
64630 +:108C6000AFB20010AF5E0030000000009617001099
64631 +:108C7000961300121277008F000000008E05000C82
64632 +:108C80008E0B00080016698000AD7021000DC7C36F
64633 +:108C900001CDA82B0178782101F56021AE0E000CE2
64634 +:108CA000AE0C00088FB300100013B82B02378024DD
64635 +:108CB0001200FF048F9000D00A000E3C000000005C
64636 +:108CC0008E4D0038A6600008240B0003AE6D000036
64637 +:108CD0008E500034A260000A8F9800B8AE70000475
64638 +:108CE0003C0500809311003FA26B000C8E6F000CBE
64639 +:108CF0003C0EFF9FA271000B01E5102535CCFFFF54
64640 +:108D00003C03FFEF8F9200B8004C30243464FFFF27
64641 +:108D100000C4F824AE7F000C8E590014964800124F
64642 +:108D20008F8A00B0AE7900108E490014AE60001832
64643 +:108D3000AE600020AE690014AE6000248E470018BB
64644 +:108D400031093FFF0009F180AE6700288E4D000811
64645 +:108D500003CA802131180001AE6D00308E4F000C27
64646 +:108D60008F8C00AC001089C200185B80022B282178
64647 +:108D7000240E0002A665001CA6600036AE6F002C13
64648 +:108D8000A18E00009763003C8F8A00AC3C04420037
64649 +:108D90003062FFFF00443025AD4600048F9F00B8CD
64650 +:108DA000240700012411C0008FF30038240600348A
64651 +:108DB000AD5300188FF90034AD59001CAD40000CC4
64652 +:108DC000AD400010A5400014A5400016A5400020AD
64653 +:108DD000A5400022AD400024A5550002A147000196
64654 +:108DE0008F9E00AC8F8800B88F9200BCAFD5000872
64655 +:108DF000910D0000A24D00008F9000B88F8B00BC39
64656 +:108E000092180001A17800018F8400BC94850002B3
64657 +:108E100000B1782401E97025A48E0002908C000234
64658 +:108E20003183003FA08300028F8300D08F8400BC79
64659 +:108E3000906200BC305300025260000124060030F2
64660 +:108E4000AC8600048C6F007C2403FFBF02A0882145
64661 +:108E5000AC8F0008908E000D31CC007FA08C000DEF
64662 +:108E60008F8600BC90C2000D00432024A0C4000DDA
64663 +:108E70008F8900BC913F000D37F90020A139000D0A
64664 +:108E80008F8800B88F9300BC8D070020AE6700105C
64665 +:108E90008D0A0024AE6A00148D1E0028AE7E0018D4
64666 +:108EA0008D12002C0E000CF6AE72001C0A00103D54
64667 +:108EB0008F9000D0960E00148E03000431CCFFFF7B
64668 +:108EC000000C10C000622021AF44003C8E1F000443
64669 +:108ED0008F46003C03E6C8231B20003C0000000036
64670 +:108EE0008E0F000025E200013C05001034B500089B
64671 +:108EF000AF420038AF550030000000000000000015
64672 +:108F00000000000000000000000000000000000061
64673 +:108F100000000000000000008F580000330B00200C
64674 +:108F20001160FFFD000000008F5304003C0D002085
64675 +:108F3000AE1300088F570404AE17000CAF4D00307D
64676 +:108F4000000000003C0608008CC600442416000106
64677 +:108F500010D600BD00000000961F00123C0508005E
64678 +:108F60008CA5004000BFC821A61900129609001464
64679 +:108F700025270001A6070014960A00143144FFFFBC
64680 +:108F80005486FF498FB30010A60000140E000E1681
64681 +:108F900030A5FFFF3C0408008C84002496030012D7
64682 +:108FA0000044102300623023A60600120A00105964
64683 +:108FB0008FB30010A08300018F8200AC2404000155
64684 +:108FC000AC4400080A000FF08F8300D08E0200002E
64685 +:108FD0000A0010EA3C0500108F8200C08FA7001C19
64686 +:108FE000921800D0920B00D0920E00D0331100FFE7
64687 +:108FF000316900FF00117940000928C001E56021B6
64688 +:1090000031C300FF036C50210003314000C2C8216E
64689 +:10901000255F0088AF9F00ACAF9900BCA1470088D6
64690 +:109020009768003C03C020218F9100AC0E000CD645
64691 +:109030003110FFFF00026B80020DC0253C0442008E
64692 +:109040008F8D00B803045825AE2B00048DA900387D
64693 +:109050008F8B00AC0000882100118100AD690018E1
64694 +:109060008DAF00343C087FFF3504FFFFAD6F001C5F
64695 +:1090700091AC003E8D65001C8D660018000C190037
64696 +:10908000000C770200A33821020E102500E3F82B14
64697 +:1090900000C2C821033F5021AD67001CAD6A001813
64698 +:1090A000AD60000CAD60001091B8003E24050005D5
64699 +:1090B00003C45024A578001495A9000403C02021FE
64700 +:1090C000A569001691AF003EA56F002095B1000480
64701 +:1090D000A5710022AD60002491AE003FA56E000294
64702 +:1090E00091B0003E91AC003D01901023244300015B
64703 +:1090F000A16300018F8600AC8F9F00BCACDE00082E
64704 +:10910000A3E500008F9000BC8F9900B82405FFBF35
64705 +:1091100096070002973800120247782433093FFF70
64706 +:1091200001E98825A6110002921200022418FFDF2F
64707 +:10913000324E003F35CD0040A20D00028F8600BCAC
64708 +:109140008F8C00D02412FFFFACC000048D8B007CFC
64709 +:109150003C0C8000ACCB000890C2000D3043007F77
64710 +:10916000A0C3000D8F8700BC90FF000D03E5C8244D
64711 +:10917000A0F9000D8F9100BC9229000D01387824D0
64712 +:10918000A22F000D8F9000BCAE120010AE1500147F
64713 +:10919000920E00182415FF8002AE6825A20D00185B
64714 +:1091A0008F8500BC8F8300B88CAB0018016C102435
64715 +:1091B000004A3025ACA600189068003EA0A8001C0C
64716 +:1091C0008F9F00B88F8700BC8F9800D097F900045C
64717 +:1091D000A4F9001E0E0002138F0500848F8600D0B4
64718 +:1091E000000279400002490090D200BC01E98821C8
64719 +:1091F000004028213255000212A0000303D1202193
64720 +:109200000002A8800095202190CD00BC31B200045E
64721 +:109210001240000333DF0003000540800088202156
64722 +:10922000240600048F9E00BC00DFC8233327000300
64723 +:1092300000875021AFCA00040E000CF6A665003866
64724 +:109240000A0010388F9000D0961E00123C080800CB
64725 +:109250008D080024011E9021A61200120A00105948
64726 +:109260008FB3001027BDFFE03C1808008F18005096
64727 +:10927000AFB00010AFBF0018AFB10014AF8400B0A2
64728 +:1092800093710074030478212410FF8031EE007F75
64729 +:109290003225007F01F0582401DA68213C0C000AD5
64730 +:1092A000A38500C401AC2821AF4B002494A9001071
64731 +:1092B0009768000690A600620080382124020030E2
64732 +:1092C0000109202330C300F0AF8500D010620019DF
64733 +:1092D0003090FFFF90AE0062240DFFF0240A005092
64734 +:1092E00001AE6024318B00FF116A002F00000000E6
64735 +:1092F00016000007241F0C00AF5F00248FB100147C
64736 +:109300008FBF00188FB0001003E0000827BD0020B9
64737 +:109310000E000E1C02002021241F0C00AF5F002451
64738 +:109320008FB100148FBF00188FB0001003E0000849
64739 +:1093300027BD002094A200E094A400E290BF011396
64740 +:10934000008218263079FFFF33E700C014E00009DF
64741 +:109350002F31000116000038000000005620FFE603
64742 +:10936000241F0C000E000D18000000000A0011ED73
64743 +:10937000241F0C001620FFDE000000000E000D1858
64744 +:10938000000000001440FFDC241F0C001600002227
64745 +:109390008F8300D0906901133122003FA062011336
64746 +:1093A0000A0011ED241F0C0094AF00D48F8600D466
64747 +:1093B00000E02821240400050E000C5C31F0FFFFC2
64748 +:1093C0001440000524030003979100E600001821D3
64749 +:1093D0002625FFFFA78500E68F5801B80700FFFE8E
64750 +:1093E0003C196013AF400180241F0C00AF50018472
64751 +:1093F000007938253C101000AF4701888FB1001468
64752 +:10940000AF5001B8AF5F00248FB000108FBF0018BD
64753 +:1094100003E0000827BD00200E000E1C02002021E2
64754 +:109420005040FFB5241F0C008F8300D090690113BA
64755 +:109430000A0012163122003F0E000E1C02002021ED
64756 +:109440001440FFAD241F0C00122000078F8300D0B2
64757 +:10945000906801133106003F34C20040A06201133E
64758 +:109460000A0011ED241F0C000E000D180000000072
64759 +:109470005040FFA1241F0C008F8300D0906801137F
64760 +:109480003106003F0A00124634C20040AF9B00C8BC
64761 +:1094900003E00008AF8000EC3089FFFF0009404284
64762 +:1094A0002D020041000921801440000200095040B3
64763 +:1094B00024080040000830C0000811400046582130
64764 +:1094C000256701A800E2C821272F007F2418FF800C
64765 +:1094D00001F818240064302100CA702125CC00FF57
64766 +:1094E000240DFF00018D202425650088240A0088B2
64767 +:1094F0003C010800AC2A004C3C010800AC2500509F
64768 +:10950000AF8400D43C010800AC2900603C01080095
64769 +:10951000AC2800643C010800AC2700543C01080062
64770 +:10952000AC2300583C010800AC26005C03E00008B6
64771 +:1095300000000000308300FF30C6FFFF30E400FF72
64772 +:109540008F4201B80440FFFE00034C00012438257F
64773 +:109550003C08600000E820253C031000AF45018076
64774 +:10956000AF460184AF44018803E00008AF4301B86F
64775 +:109570008F86001C3C096012352700108CCB00043C
64776 +:109580003C0C600E35850010316A00062D48000144
64777 +:10959000ACE800C48CC40004ACA431808CC20008C8
64778 +:1095A00094C30002ACA2318403E00008A78300E466
64779 +:1095B0003C0308008C6300508F8400E88F86001CF9
64780 +:1095C0002402FF800064C0210302C824AF59002890
64781 +:1095D0008CCD00043305007F00BA78213C0E000CCE
64782 +:1095E00001EE2821ACAD00588CC80008AF8500D032
64783 +:1095F0003C076012ACA8005C8CCC001034E8001072
64784 +:10960000ACAC000C8CCB000CACAB000894AA0014E2
64785 +:109610003C0208008C42004425490001A4A9001422
64786 +:1096200094A400143083FFFF106200178F8400D0D1
64787 +:109630003C0A08008D4A0040A4AA00128CCE0018F3
64788 +:10964000AC8E00248CCD0014AC8D00208CC700188B
64789 +:10965000AC87002C8CCC001424060001AC8C0028B4
64790 +:109660008D0B00BC5166001A8D0200B48D0200B84B
64791 +:10967000A482003A948F003AA48F003C948800D4CE
64792 +:1096800003E000083102FFFF3C0908008D29002497
64793 +:10969000A4A000148F8400D0A4A900128CCE0018BE
64794 +:1096A000AC8E00248CCD0014AC8D00208CC700182B
64795 +:1096B000AC87002C8CCC001424060001AC8C002854
64796 +:1096C0008D0B00BC5566FFEA8D0200B88D0200B418
64797 +:1096D000A482003A948F003AA48F003C948800D46E
64798 +:1096E00003E000083102FFFF8F86001C3C0C0800DD
64799 +:1096F0008D8C0050240BFF808CCD00083C03000CA7
64800 +:10970000000D51C0018A4021010B4824AF8A00E8B6
64801 +:10971000AF49002890C700073105007F00BA10212B
64802 +:109720000043282130E4000410800039AF8500D0C8
64803 +:1097300090CF000731EE000811C000380000000093
64804 +:109740008CD9000C8CC400140324C02B13000030EF
64805 +:10975000000000008CC2000CACA200648CCD00188C
64806 +:109760002402FFF8ACAD00688CCC0010ACAC0080DB
64807 +:109770008CCB000CACAB00848CCA001CACAA007C67
64808 +:1097800090A900BC01224024A0A800BC90C30007FF
64809 +:109790003067000810E000048F8500D090AF00BC57
64810 +:1097A00035EE0001A0AE00BC90D9000733380001AF
64811 +:1097B000130000088F8300D08F8700D0240400346A
64812 +:1097C00090E800BC35030002A0E300BC8F8300D00A
64813 +:1097D000AC6400C090C900073126000210C000052B
64814 +:1097E00000000000906A00BC35420004A06200BC8A
64815 +:1097F0008F8300D09065011330AD003FA06D011341
64816 +:109800008F8C00D0958B00D403E000083162FFFFFD
64817 +:109810008CC200140A001305000000000A001306A1
64818 +:10982000ACA0006427BDFFD8AFB000108F90001C23
64819 +:10983000AFBF0024AFB40020AFB20018AFB1001426
64820 +:10984000AFB3001C9613000E3C07600A3C14600680
64821 +:109850003264FFFF369300100E00125534F40410EA
64822 +:109860008F8400D43C11600E0E00099B363100102D
64823 +:10987000920E00153C0708008CE700603C12601255
64824 +:1098800031CD000FA38D00F08E0E00048E0D000868
64825 +:1098900096080012961F00109619001A9618001EBE
64826 +:1098A000960F001C310CFFFF33EBFFFF332AFFFF45
64827 +:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD
64828 +:1098C0003C010800AC2C00243C010800AC2A0044F8
64829 +:1098D000AE293178AE26317C92020015960300162F
64830 +:1098E00036520010304400FF3065FFFF3C06080090
64831 +:1098F0008CC60064AE243188AE4500B492080014D2
64832 +:1099000096190018241F0001011FC004332FFFFF08
64833 +:109910003C0508008CA50058AE5800B8AE4F00BCFE
64834 +:10992000920C0014AF8E00D8AF8D00DC318B00FF9D
64835 +:10993000AE4B00C0920A0015AE670048AE66004C00
64836 +:10994000314900FFAE4900C8AE65007C3C03080009
64837 +:109950008C6300503C0408008C84004C3C080800D8
64838 +:109960008D0800543C0208008C42005C8FBF00242C
64839 +:10997000AE6300808FB00010AE8300748FB3001C04
64840 +:10998000AE22319CAE4200DCAE2731A0AE2631A41F
64841 +:10999000AE24318CAE233190AE283194AE2531986F
64842 +:1099A000AE870050AE860054AE8500708FB10014B3
64843 +:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B
64844 +:1099C000AE4800D4AE4500D88FB400208FB2001846
64845 +:1099D00003E0000827BD002827BDFFE0AFB1001459
64846 +:1099E000AFBF0018241100010E000845AFB00010F1
64847 +:1099F00010510005978400E6978300CC0083102B5C
64848 +:109A0000144000088F8500D4240700028FBF00187F
64849 +:109A10008FB100148FB0001000E0102103E00008A7
64850 +:109A200027BD00200E000C7A24040005AF8200E858
64851 +:109A30001040FFF6240700020E0008498F90001C1A
64852 +:109A4000979F00E68F9900E88F8D00C827EF0001EF
64853 +:109A5000240E0050AF590020A78F00E6A1AE0000F1
64854 +:109A60003C0C08008D8C00648F8600C8240A80009E
64855 +:109A7000000C5E00ACCB0074A4C0000694C9000AC0
64856 +:109A8000241FFF803C0D000C012AC024A4D8000A2A
64857 +:109A900090C8000A24182000011F1825A0C3000A3E
64858 +:109AA0008F8700C8A0E000788F8500C800003821AB
64859 +:109AB000A0A000833C0208008C4200508F8400E884
64860 +:109AC0000044782101FFC824AF590028960B0002FA
64861 +:109AD00031EE007F01DA6021018D3021A4CB00D46A
64862 +:109AE000960A0002AF8600D03C0E000425492401EE
64863 +:109AF000A4C900E68E080004ACC800048E03000868
64864 +:109B0000ACC30000A4C00010A4C00014A0C000D0CA
64865 +:109B10008F8500D02403FFBFA0A000D13C04080023
64866 +:109B20008C8400648F8200D0A04400D28E1F000C71
64867 +:109B30008F8A00D0978F00E4AD5F001C8E19001053
64868 +:109B400024100030AD590018A5400030A551005434
64869 +:109B5000A5510056A54F0016AD4E0068AD580080C7
64870 +:109B6000AD580084914D006231AC000F358B001070
64871 +:109B7000A14B00628F8600D090C900633128007F1E
64872 +:109B8000A0C800638F8400D02406FFFF9085006387
64873 +:109B900000A31024A08200638F9100D000E0102168
64874 +:109BA000923F00BC37F90001A23900BC8F8A00D077
64875 +:109BB000938F00F0AD580064AD5000C0914E00D3BB
64876 +:109BC000000F690031CC000F018D5825A14B00D347
64877 +:109BD0008F8500D08F8900DCACA900E88F8800D881
64878 +:109BE0008FBF00188FB100148FB0001027BD002068
64879 +:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB
64880 +:109C000003E000080000000027BDFFE0AFB0001037
64881 +:109C10008F90001CAFB10014AFBF00188E19000464
64882 +:109C20003C1808008F180050240FFF80001989C0CD
64883 +:109C30000238702131CD007F01CF602401BA50215C
64884 +:109C40003C0B000CAF4C0028014B4021950900D47F
64885 +:109C5000950400D68E0700043131FFFFAF8800D095
64886 +:109C60000E000913000721C08E0600048F8300C870
64887 +:109C7000000629C0AF4500209064003E30820040BD
64888 +:109C8000144000068F8400D0341FFFFF948300D659
64889 +:109C90003062FFFF145F000400000000948400D6CF
64890 +:109CA0000E0008A83084FFFF8E050004022030213A
64891 +:109CB0008FBF00188FB100148FB000102404002251
64892 +:109CC00000003821000529C00A00127C27BD0020B1
64893 +:109CD00027BDFFE0AFB100143091FFFFAFB000101F
64894 +:109CE000AFBF00181220001D000080218F86001CCD
64895 +:109CF0008CC500002403000600053F020005140285
64896 +:109D000030E4000714830015304500FF2CA800063E
64897 +:109D10001100004D000558803C0C0800258C57D4DC
64898 +:109D2000016C50218D490000012000080000000056
64899 +:109D30008F8E00EC240D000111CD005900000000B1
64900 +:109D4000260B00013170FFFF24CA00200211202BD6
64901 +:109D5000014030211480FFE6AF8A001C0200102170
64902 +:109D60008FBF00188FB100148FB0001003E00008FF
64903 +:109D700027BD0020938700CE14E00038240400148F
64904 +:109D80000E001338000000008F86001C2402000122
64905 +:109D90000A00147FAF8200EC8F8900EC24080002D7
64906 +:109DA0001128003B2404001300002821000030216A
64907 +:109DB000240700010E00127C000000000A00147F3E
64908 +:109DC0008F86001C8F8700EC2405000214E5FFF647
64909 +:109DD000240400120E0012E9000000008F8500E844
64910 +:109DE00000403021240400120E00127C00003821B3
64911 +:109DF0000A00147F8F86001C8F8300EC241F000351
64912 +:109E0000147FFFD0260B00010E00129B0000000003
64913 +:109E10008F8500E800403021240200022404001055
64914 +:109E200000003821AF8200EC0E00127C0000000020
64915 +:109E30000A00147F8F86001C8F8F00EC240600021E
64916 +:109E400011E6000B0000000024040010000028218F
64917 +:109E5000000030210A00149C240700010000282182
64918 +:109E60000E00127C000030210A00147F8F86001C37
64919 +:109E70000E0013A500000000144000128F99001C72
64920 +:109E80008F86001C240200030A00147FAF8200ECBE
64921 +:109E90000E001431000000000A00147F8F86001CA1
64922 +:109EA0000E00128B000000002402000224040014A3
64923 +:109EB0000000282100003021000038210A0014B9D8
64924 +:109EC000AF8200EC004038212404001097380002D3
64925 +:109ED000000028210E00127C3306FFFF0A00147FC9
64926 +:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D
64927 +:109EF0008C8500742402000100A61824AC83007431
64928 +:109F000003E00008A082000510A000362CA200800B
64929 +:109F1000274A04003C0B000524090080104000077C
64930 +:109F20002408008030A6000F00C540212D030081C9
64931 +:109F30001460000200A0482124080080AF4B0030CC
64932 +:109F400000000000000000000000000011000009F7
64933 +:109F500000003821014030218C8D000024E70004EE
64934 +:109F600000E8602BACCD0000248400041580FFFACB
64935 +:109F700024C60004000000000000000000000000F3
64936 +:109F80003C0E0006010E3825AF47003000000000EF
64937 +:109F900000000000000000008F4F000031E80010BA
64938 +:109FA0001100FFFD000000008F42003C8F43003C89
64939 +:109FB0000049C8210323C02B130000040000000047
64940 +:109FC0008F4C003825860001AF4600388F47003C93
64941 +:109FD00000A9282300E96821AF4D003C14A0FFCE62
64942 +:109FE0002CA2008003E000080000000027BDFFD085
64943 +:109FF0003C020002AFB100143C11000CAF45003828
64944 +:10A00000AFB3001CAF46003C00809821AF42003047
64945 +:10A0100024050088AF44002803512021AFBF002849
64946 +:10A02000AFB50024AFB40020AFB200180E0014F199
64947 +:10A03000AFB000103C1F08008FFF004C3C18080018
64948 +:10A040008F1800642410FF8003F3A82132B9007F29
64949 +:10A0500002B078240018A0C0033A70210018914083
64950 +:10A0600001D12021AF4F00280E0014F10254282105
64951 +:10A070003C0D08008DAD00502405012001B358218E
64952 +:10A08000316C007F01705024019A48210131202158
64953 +:10A090000E0014F1AF4A00283C0808008D08005457
64954 +:10A0A0003C0508008CA500640113382130E6007FD0
64955 +:10A0B00000F0182400DA202100912021AF4300286D
64956 +:10A0C0000E0014F1000529403C0208008C420058A3
64957 +:10A0D0003C1008008E1000601200001C0053882104
64958 +:10A0E0002415FF800A0015743C14000C3226007FF2
64959 +:10A0F0000235182400DA202102402821AF4300282D
64960 +:10A10000009420210E0014F12610FFC01200000F51
64961 +:10A11000023288212E05004110A0FFF42412100005
64962 +:10A120003226007F001091800235182400DA2021A9
64963 +:10A1300002402821AF430028009420210E0014F192
64964 +:10A14000000080211600FFF3023288213C0B08003A
64965 +:10A150008D6B005C240AFF802405000201734021FE
64966 +:10A16000010A4824AF4900283C0408009484006296
64967 +:10A170003110007F021A88213C07000C0E000CAA47
64968 +:10A180000227982100402821026020218FBF00284B
64969 +:10A190008FB500248FB400208FB3001C8FB200183D
64970 +:10A1A0008FB100148FB000100A0014F127BD0030E9
64971 +:10A1B0008F83001C8C62000410400003000000002C
64972 +:10A1C00003E00008000000008C6400108C650008AB
64973 +:10A1D0000A00152A8C66000C000000000000001B1D
64974 +:10A1E0000000000F0000000A000000080000000648
64975 +:10A1F000000000050000000500000004000000044D
64976 +:10A200000000000300000003000000030000000342
64977 +:10A210000000000300000002000000020000000235
64978 +:10A220000000000200000002000000020000000226
64979 +:10A230000000000200000002000000020000000216
64980 +:10A240000000000200000002000000020000000206
64981 +:10A2500000000001000000010000000108000F24C0
64982 +:10A2600008000D6C08000FB80800106008000F4CC3
64983 +:10A2700008000F8C0800119408000D88080011B820
64984 +:10A2800008000DD8080015540800151C08000D889A
64985 +:10A2900008000D8808000D880800124008001240D0
64986 +:10A2A00008000D8808000D88080014E008000D88DB
64987 +:10A2B00008000D8808000D8808000D88080013B4F8
64988 +:10A2C00008000D8808000D8808000D8808000D881A
64989 +:10A2D00008000D8808000D8808000D8808000D880A
64990 +:10A2E00008000D8808000D8808000D8808000D88FA
64991 +:10A2F00008000D8808000D8808000FAC08000D88C4
64992 +:10A3000008000D880800167808000D8808000D88E0
64993 +:10A3100008000D8808000D8808000D8808000D88C9
64994 +:10A3200008000D8808000D8808000D8808000D88B9
64995 +:10A3300008000D8808000D8808000D8808000D88A9
64996 +:10A3400008000D8808000D8808000D88080014100A
64997 +:10A3500008000D8808000D8808001334080012A4B6
64998 +:10A3600008001E2C08001EFC08001F1408001F28EF
64999 +:10A3700008001F3808001E2C08001E2C08001E2C88
65000 +:10A3800008001ED808002E1408002E1C08002DE41A
65001 +:10A3900008002DF008002DFC08002E08080052F4DB
65002 +:10A3A000080052B40800528008005254080052308D
65003 +:10A3B000080051EC0A000C840000000000000000BE
65004 +:10A3C0000000000D727870362E322E33000000002F
65005 +:10A3D000060203030000000000000001000000006E
65006 +:10A3E000000000000000000000000000000000006D
65007 +:10A3F000000000000000000000000000000000005D
65008 +:10A40000000000000000000000000000000000004C
65009 +:10A41000000000000000000000000000000000003C
65010 +:10A42000000000000000000000000000000000002C
65011 +:10A43000000000000000000000000000000000001C
65012 +:10A44000000000000000000000000000000000000C
65013 +:10A4500000000000000000000000000000000000FC
65014 +:10A4600000000000000000000000000000000000EC
65015 +:10A4700000000000000000000000000000000000DC
65016 +:10A4800000000000000000000000000000000000CC
65017 +:10A4900000000000000000000000000000000000BC
65018 +:10A4A00000000000000000000000000000000000AC
65019 +:10A4B000000000000000000000000000000000009C
65020 +:10A4C000000000000000000000000000000000008C
65021 +:10A4D000000000000000000000000000000000007C
65022 +:10A4E000000000000000000000000000000000006C
65023 +:10A4F000000000000000000000000000000000005C
65024 +:10A50000000000000000000000000000000000004B
65025 +:10A51000000000000000000000000000000000003B
65026 +:10A52000000000000000000000000000000000002B
65027 +:10A53000000000000000000000000000000000001B
65028 +:10A54000000000000000000000000000000000000B
65029 +:10A5500000000000000000000000000000000000FB
65030 +:10A5600000000000000000000000000000000000EB
65031 +:10A5700000000000000000000000000000000000DB
65032 +:10A5800000000000000000000000000000000000CB
65033 +:10A5900000000000000000000000000000000000BB
65034 +:10A5A00000000000000000000000000000000000AB
65035 +:10A5B000000000000000000000000000000000009B
65036 +:10A5C000000000000000000000000000000000008B
65037 +:10A5D000000000000000000000000000000000007B
65038 +:10A5E000000000000000000000000000000000006B
65039 +:10A5F000000000000000000000000000000000005B
65040 +:10A60000000000000000000000000000000000004A
65041 +:10A61000000000000000000000000000000000003A
65042 +:10A62000000000000000000000000000000000002A
65043 +:10A63000000000000000000000000000000000001A
65044 +:10A64000000000000000000000000000000000000A
65045 +:10A6500000000000000000000000000000000000FA
65046 +:10A6600000000000000000000000000000000000EA
65047 +:10A6700000000000000000000000000000000000DA
65048 +:10A6800000000000000000000000000000000000CA
65049 +:10A6900000000000000000000000000000000000BA
65050 +:10A6A00000000000000000000000000000000000AA
65051 +:10A6B000000000000000000000000000000000009A
65052 +:10A6C000000000000000000000000000000000008A
65053 +:10A6D000000000000000000000000000000000007A
65054 +:10A6E000000000000000000000000000000000006A
65055 +:10A6F000000000000000000000000000000000005A
65056 +:10A700000000000000000000000000000000000049
65057 +:10A710000000000000000000000000000000000039
65058 +:10A720000000000000000000000000000000000029
65059 +:10A730000000000000000000000000000000000019
65060 +:10A740000000000000000000000000000000000009
65061 +:10A7500000000000000000000000000000000000F9
65062 +:10A7600000000000000000000000000000000000E9
65063 +:10A7700000000000000000000000000000000000D9
65064 +:10A7800000000000000000000000000000000000C9
65065 +:10A7900000000000000000000000000000000000B9
65066 +:10A7A00000000000000000000000000000000000A9
65067 +:10A7B0000000000000000000000000000000000099
65068 +:10A7C0000000000000000000000000000000000089
65069 +:10A7D0000000000000000000000000000000000079
65070 +:10A7E0000000000000000000000000000000000069
65071 +:10A7F0000000000000000000000000000000000059
65072 +:10A800000000000000000000000000000000000048
65073 +:10A810000000000000000000000000000000000038
65074 +:10A820000000000000000000000000000000000028
65075 +:10A830000000000000000000000000000000000018
65076 +:10A840000000000000000000000000000000000008
65077 +:10A8500000000000000000000000000000000000F8
65078 +:10A8600000000000000000000000000000000000E8
65079 +:10A8700000000000000000000000000000000000D8
65080 +:10A8800000000000000000000000000000000000C8
65081 +:10A8900000000000000000000000000000000000B8
65082 +:10A8A00000000000000000000000000000000000A8
65083 +:10A8B0000000000000000000000000000000000098
65084 +:10A8C0000000000000000000000000000000000088
65085 +:10A8D0000000000000000000000000000000000078
65086 +:10A8E0000000000000000000000000000000000068
65087 +:10A8F0000000000000000000000000000000000058
65088 +:10A900000000000000000000000000000000000047
65089 +:10A910000000000000000000000000000000000037
65090 +:10A920000000000000000000000000000000000027
65091 +:10A930000000000000000000000000000000000017
65092 +:10A940000000000000000000000000000000000007
65093 +:10A9500000000000000000000000000000000000F7
65094 +:10A9600000000000000000000000000000000000E7
65095 +:10A9700000000000000000000000000000000000D7
65096 +:10A9800000000000000000000000000000000000C7
65097 +:10A9900000000000000000000000000000000000B7
65098 +:10A9A00000000000000000000000000000000000A7
65099 +:10A9B0000000000000000000000000000000000097
65100 +:10A9C0000000000000000000000000000000000087
65101 +:10A9D0000000000000000000000000000000000077
65102 +:10A9E0000000000000000000000000000000000067
65103 +:10A9F0000000000000000000000000000000000057
65104 +:10AA00000000000000000000000000000000000046
65105 +:10AA10000000000000000000000000000000000036
65106 +:10AA20000000000000000000000000000000000026
65107 +:10AA30000000000000000000000000000000000016
65108 +:10AA40000000000000000000000000000000000006
65109 +:10AA500000000000000000000000000000000000F6
65110 +:10AA600000000000000000000000000000000000E6
65111 +:10AA700000000000000000000000000000000000D6
65112 +:10AA800000000000000000000000000000000000C6
65113 +:10AA900000000000000000000000000000000000B6
65114 +:10AAA00000000000000000000000000000000000A6
65115 +:10AAB0000000000000000000000000000000000096
65116 +:10AAC0000000000000000000000000000000000086
65117 +:10AAD0000000000000000000000000000000000076
65118 +:10AAE0000000000000000000000000000000000066
65119 +:10AAF0000000000000000000000000000000000056
65120 +:10AB00000000000000000000000000000000000045
65121 +:10AB10000000000000000000000000000000000035
65122 +:10AB20000000000000000000000000000000000025
65123 +:10AB30000000000000000000000000000000000015
65124 +:10AB40000000000000000000000000000000000005
65125 +:10AB500000000000000000000000000000000000F5
65126 +:10AB600000000000000000000000000000000000E5
65127 +:10AB700000000000000000000000000000000000D5
65128 +:10AB800000000000000000000000000000000000C5
65129 +:10AB900000000000000000000000000000000000B5
65130 +:10ABA00000000000000000000000000000000000A5
65131 +:10ABB0000000000000000000000000000000000095
65132 +:10ABC0000000000000000000000000000000000085
65133 +:10ABD0000000000000000000000000000000000075
65134 +:10ABE0000000000000000000000000000000000065
65135 +:10ABF0000000000000000000000000000000000055
65136 +:10AC00000000000000000000000000000000000044
65137 +:10AC10000000000000000000000000000000000034
65138 +:10AC20000000000000000000000000000000000024
65139 +:10AC30000000000000000000000000000000000014
65140 +:10AC40000000000000000000000000000000000004
65141 +:10AC500000000000000000000000000000000000F4
65142 +:10AC600000000000000000000000000000000000E4
65143 +:10AC700000000000000000000000000000000000D4
65144 +:10AC800000000000000000000000000000000000C4
65145 +:10AC900000000000000000000000000000000000B4
65146 +:10ACA00000000000000000000000000000000000A4
65147 +:10ACB0000000000000000000000000000000000094
65148 +:10ACC0000000000000000000000000000000000084
65149 +:10ACD0000000000000000000000000000000000074
65150 +:10ACE0000000000000000000000000000000000064
65151 +:10ACF0000000000000000000000000000000000054
65152 +:10AD00000000000000000000000000000000000043
65153 +:10AD10000000000000000000000000000000000033
65154 +:10AD20000000000000000000000000000000000023
65155 +:10AD30000000000000000000000000000000000013
65156 +:10AD40000000000000000000000000000000000003
65157 +:10AD500000000000000000000000000000000000F3
65158 +:10AD600000000000000000000000000000000000E3
65159 +:10AD700000000000000000000000000000000000D3
65160 +:10AD800000000000000000000000000000000000C3
65161 +:10AD900000000000000000000000000000000000B3
65162 +:10ADA00000000000000000000000000000000000A3
65163 +:10ADB0000000000000000000000000000000000093
65164 +:10ADC0000000000000000000000000000000000083
65165 +:10ADD0000000000000000000000000000000000073
65166 +:10ADE0000000000000000000000000000000000063
65167 +:10ADF0000000000000000000000000000000000053
65168 +:10AE00000000000000000000000000000000000042
65169 +:10AE10000000000000000000000000000000000032
65170 +:10AE20000000000000000000000000000000000022
65171 +:10AE30000000000000000000000000000000000012
65172 +:10AE40000000000000000000000000000000000002
65173 +:10AE500000000000000000000000000000000000F2
65174 +:10AE600000000000000000000000000000000000E2
65175 +:10AE700000000000000000000000000000000000D2
65176 +:10AE800000000000000000000000000000000000C2
65177 +:10AE900000000000000000000000000000000000B2
65178 +:10AEA00000000000000000000000000000000000A2
65179 +:10AEB0000000000000000000000000000000000092
65180 +:10AEC0000000000000000000000000000000000082
65181 +:10AED0000000000000000000000000000000000072
65182 +:10AEE0000000000000000000000000000000000062
65183 +:10AEF0000000000000000000000000000000000052
65184 +:10AF00000000000000000000000000000000000041
65185 +:10AF10000000000000000000000000000000000031
65186 +:10AF20000000000000000000000000000000000021
65187 +:10AF30000000000000000000000000000000000011
65188 +:10AF40000000000000000000000000000000000001
65189 +:10AF500000000000000000000000000000000000F1
65190 +:10AF600000000000000000000000000000000000E1
65191 +:10AF700000000000000000000000000000000000D1
65192 +:10AF800000000000000000000000000000000000C1
65193 +:10AF900000000000000000000000000000000000B1
65194 +:10AFA00000000000000000000000000000000000A1
65195 +:10AFB0000000000000000000000000000000000091
65196 +:10AFC0000000000000000000000000000000000081
65197 +:10AFD0000000000000000000000000000000000071
65198 +:10AFE0000000000000000000000000000000000061
65199 +:10AFF0000000000000000000000000000000000051
65200 +:10B000000000000000000000000000000000000040
65201 +:10B010000000000000000000000000000000000030
65202 +:10B020000000000000000000000000000000000020
65203 +:10B030000000000000000000000000000000000010
65204 +:10B040000000000000000000000000000000000000
65205 +:10B0500000000000000000000000000000000000F0
65206 +:10B0600000000000000000000000000000000000E0
65207 +:10B0700000000000000000000000000000000000D0
65208 +:10B0800000000000000000000000000000000000C0
65209 +:10B0900000000000000000000000000000000000B0
65210 +:10B0A00000000000000000000000000000000000A0
65211 +:10B0B0000000000000000000000000000000000090
65212 +:10B0C0000000000000000000000000000000000080
65213 +:10B0D0000000000000000000000000000000000070
65214 +:10B0E0000000000000000000000000000000000060
65215 +:10B0F0000000000000000000000000000000000050
65216 +:10B10000000000000000000000000000000000003F
65217 +:10B11000000000000000000000000000000000002F
65218 +:10B12000000000000000000000000000000000001F
65219 +:10B13000000000000000000000000000000000000F
65220 +:10B1400000000000000000000000000000000000FF
65221 +:10B1500000000000000000000000000000000000EF
65222 +:10B1600000000000000000000000000000000000DF
65223 +:10B1700000000000000000000000000000000000CF
65224 +:10B1800000000000000000000000000000000000BF
65225 +:10B1900000000000000000000000000000000000AF
65226 +:10B1A000000000000000000000000000000000009F
65227 +:10B1B000000000000000000000000000000000008F
65228 +:10B1C000000000000000000000000000000000007F
65229 +:10B1D000000000000000000000000000000000006F
65230 +:10B1E000000000000000000000000000000000005F
65231 +:10B1F000000000000000000000000000000000004F
65232 +:10B20000000000000000000000000000000000003E
65233 +:10B21000000000000000000000000000000000002E
65234 +:10B22000000000000000000000000000000000001E
65235 +:10B23000000000000000000000000000000000000E
65236 +:10B2400000000000000000000000000000000000FE
65237 +:10B2500000000000000000000000000000000000EE
65238 +:10B2600000000000000000000000000000000000DE
65239 +:10B2700000000000000000000000000000000000CE
65240 +:10B2800000000000000000000000000000000000BE
65241 +:10B2900000000000000000000000000000000000AE
65242 +:10B2A000000000000000000000000000000000009E
65243 +:10B2B000000000000000000000000000000000008E
65244 +:10B2C000000000000000000000000000000000007E
65245 +:10B2D000000000000000000000000000000000006E
65246 +:10B2E000000000000000000000000000000000005E
65247 +:10B2F000000000000000000000000000000000004E
65248 +:10B30000000000000000000000000000000000003D
65249 +:10B31000000000000000000000000000000000002D
65250 +:10B32000000000000000000000000000000000001D
65251 +:10B33000000000000000000000000000000000000D
65252 +:10B3400000000000000000000000000000000000FD
65253 +:10B3500000000000000000000000000000000000ED
65254 +:10B3600000000000000000000000000000000000DD
65255 +:10B3700000000000000000000000000000000000CD
65256 +:10B3800000000000000000000000000000000000BD
65257 +:10B3900000000000000000000000000000000000AD
65258 +:10B3A000000000000000000000000000000000009D
65259 +:10B3B000000000000000000000000000000000008D
65260 +:10B3C000000000000000000000000000000000007D
65261 +:10B3D000000000000000000000000000000000006D
65262 +:10B3E000000000000000000000000000000000005D
65263 +:10B3F000000000000000000000000000000000004D
65264 +:10B40000000000000000000000000000000000003C
65265 +:10B41000000000000000000000000000000000002C
65266 +:10B42000000000000000000000000000000000001C
65267 +:10B43000000000000000000000000000000000000C
65268 +:10B4400000000000000000000000000000000000FC
65269 +:10B4500000000000000000000000000000000000EC
65270 +:10B4600000000000000000000000000000000000DC
65271 +:10B4700000000000000000000000000000000000CC
65272 +:10B4800000000000000000000000000000000000BC
65273 +:10B4900000000000000000000000000000000000AC
65274 +:10B4A000000000000000000000000000000000009C
65275 +:10B4B000000000000000000000000000000000008C
65276 +:10B4C000000000000000000000000000000000007C
65277 +:10B4D000000000000000000000000000000000006C
65278 +:10B4E000000000000000000000000000000000005C
65279 +:10B4F000000000000000000000000000000000004C
65280 +:10B50000000000000000000000000000000000003B
65281 +:10B51000000000000000000000000000000000002B
65282 +:10B52000000000000000000000000000000000001B
65283 +:10B53000000000000000000000000000000000000B
65284 +:10B5400000000000000000000000000000000000FB
65285 +:10B5500000000000000000000000000000000000EB
65286 +:10B5600000000000000000000000000000000000DB
65287 +:10B5700000000000000000000000000000000000CB
65288 +:10B5800000000000000000000000000000000000BB
65289 +:10B5900000000000000000000000000000000000AB
65290 +:10B5A000000000000000000000000000000000009B
65291 +:10B5B000000000000000000000000000000000008B
65292 +:10B5C000000000000000000000000000000000007B
65293 +:10B5D000000000000000000000000000000000006B
65294 +:10B5E000000000000000000000000000000000005B
65295 +:10B5F000000000000000000000000000000000004B
65296 +:10B60000000000000000000000000000000000003A
65297 +:10B61000000000000000000000000000000000002A
65298 +:10B62000000000000000000000000000000000001A
65299 +:10B63000000000000000000000000000000000000A
65300 +:10B6400000000000000000000000000000000000FA
65301 +:10B6500000000000000000000000000000000000EA
65302 +:10B6600000000000000000000000000000000000DA
65303 +:10B6700000000000000000000000000000000000CA
65304 +:10B6800000000000000000000000000000000000BA
65305 +:10B6900000000000000000000000000000000000AA
65306 +:10B6A000000000000000000000000000000000009A
65307 +:10B6B000000000000000000000000000000000008A
65308 +:10B6C000000000000000000000000000000000007A
65309 +:10B6D000000000000000000000000000000000006A
65310 +:10B6E000000000000000000000000000000000005A
65311 +:10B6F000000000000000000000000000000000004A
65312 +:10B700000000000000000000000000000000000039
65313 +:10B710000000000000000000000000000000000029
65314 +:10B720000000000000000000000000000000000019
65315 +:10B730000000000000000000000000000000000009
65316 +:10B7400000000000000000000000000000000000F9
65317 +:10B7500000000000000000000000000000000000E9
65318 +:10B7600000000000000000000000000000000000D9
65319 +:10B7700000000000000000000000000000000000C9
65320 +:10B7800000000000000000000000000000000000B9
65321 +:10B7900000000000000000000000000000000000A9
65322 +:10B7A0000000000000000000000000000000000099
65323 +:10B7B0000000000000000000000000000000000089
65324 +:10B7C0000000000000000000000000000000000079
65325 +:10B7D0000000000000000000000000000000000069
65326 +:10B7E0000000000000000000000000000000000059
65327 +:10B7F0000000000000000000000000000000000049
65328 +:10B800000000000000000000000000000000000038
65329 +:10B810000000000000000000000000000000000028
65330 +:10B820000000000000000000000000000000000018
65331 +:10B830000000000000000000000000000000000008
65332 +:10B8400000000000000000000000000000000000F8
65333 +:10B8500000000000000000000000000000000000E8
65334 +:10B8600000000000000000000000000000000000D8
65335 +:10B8700000000000000000000000000000000000C8
65336 +:10B8800000000000000000000000000000000000B8
65337 +:10B8900000000000000000000000000000000000A8
65338 +:10B8A0000000000000000000000000000000000098
65339 +:10B8B0000000000000000000000000000000000088
65340 +:10B8C0000000000000000000000000000000000078
65341 +:10B8D0000000000000000000000000000000000068
65342 +:10B8E0000000000000000000000000000000000058
65343 +:10B8F0000000000000000000000000000000000048
65344 +:10B900000000000000000000000000000000000037
65345 +:10B910000000000000000000000000000000000027
65346 +:10B920000000000000000000000000000000000017
65347 +:10B930000000000000000000000000000000000007
65348 +:10B9400000000000000000000000000000000000F7
65349 +:10B9500000000000000000000000000000000000E7
65350 +:10B9600000000000000000000000000000000000D7
65351 +:10B9700000000000000000000000000000000000C7
65352 +:10B9800000000000000000000000000000000000B7
65353 +:10B9900000000000000000000000000000000000A7
65354 +:10B9A0000000000000000000000000000000000097
65355 +:10B9B0000000000000000000000000000000000087
65356 +:10B9C0000000000000000000000000000000000077
65357 +:10B9D0000000000000000000000000000000000067
65358 +:10B9E0000000000000000000000000000000000057
65359 +:10B9F0000000000000000000000000000000000047
65360 +:10BA00000000000000000000000000000000000036
65361 +:10BA10000000000000000000000000000000000026
65362 +:10BA20000000000000000000000000000000000016
65363 +:10BA30000000000000000000000000000000000006
65364 +:10BA400000000000000000000000000000000000F6
65365 +:10BA500000000000000000000000000000000000E6
65366 +:10BA600000000000000000000000000000000000D6
65367 +:10BA700000000000000000000000000000000000C6
65368 +:10BA800000000000000000000000000000000000B6
65369 +:10BA900000000000000000000000000000000000A6
65370 +:10BAA0000000000000000000000000000000000096
65371 +:10BAB0000000000000000000000000000000000086
65372 +:10BAC0000000000000000000000000000000000076
65373 +:10BAD0000000000000000000000000000000000066
65374 +:10BAE0000000000000000000000000000000000056
65375 +:10BAF0000000000000000000000000000000000046
65376 +:10BB00000000000000000000000000000000000035
65377 +:10BB10000000000000000000000000000000000025
65378 +:10BB20000000000000000000000000000000000015
65379 +:10BB30000000000000000000000000000000000005
65380 +:10BB400000000000000000000000000000000000F5
65381 +:10BB500000000000000000000000000000000000E5
65382 +:10BB600000000000000000000000000000000000D5
65383 +:10BB700000000000000000000000000000000000C5
65384 +:10BB800000000000000000000000000000000000B5
65385 +:10BB900000000000000000000000000000000000A5
65386 +:10BBA0000000000000000000000000000000000095
65387 +:10BBB0000000000000000000000000000000000085
65388 +:10BBC0000000000000000000000000000000000075
65389 +:10BBD0000000000000000000000000000000000065
65390 +:10BBE0000000000000000000000000000000000055
65391 +:10BBF0000000000000000000000000000000000045
65392 +:10BC00000000000000000000000000000000000034
65393 +:10BC10000000000000000000000000000000000024
65394 +:10BC20000000000000000000000000000000000014
65395 +:10BC30000000000000000000000000000000000004
65396 +:10BC400000000000000000000000000000000000F4
65397 +:10BC500000000000000000000000000000000000E4
65398 +:10BC600000000000000000000000000000000000D4
65399 +:10BC700000000000000000000000000000000000C4
65400 +:10BC800000000000000000000000000000000000B4
65401 +:10BC900000000000000000000000000000000000A4
65402 +:10BCA0000000000000000000000000000000000094
65403 +:10BCB0000000000000000000000000000000000084
65404 +:10BCC0000000000000000000000000000000000074
65405 +:10BCD0000000000000000000000000000000000064
65406 +:10BCE0000000000000000000000000000000000054
65407 +:10BCF0000000000000000000000000000000000044
65408 +:10BD00000000000000000000000000000000000033
65409 +:10BD10000000000000000000000000000000000023
65410 +:10BD20000000000000000000000000000000000013
65411 +:10BD30000000000000000000000000000000000003
65412 +:10BD400000000000000000000000000000000000F3
65413 +:10BD500000000000000000000000000000000000E3
65414 +:10BD600000000000000000000000000000000000D3
65415 +:10BD700000000000000000000000000000000000C3
65416 +:10BD800000000000000000000000000000000000B3
65417 +:10BD900000000000000000000000000000000000A3
65418 +:10BDA0000000000000000000000000000000000093
65419 +:10BDB0000000000000000000000000000000000083
65420 +:10BDC0000000000000000000000000000000000073
65421 +:10BDD0000000000000000000000000000000000063
65422 +:10BDE0000000000000000000000000000000000053
65423 +:10BDF0000000000000000000000000000000000043
65424 +:10BE00000000000000000000000000000000000032
65425 +:10BE10000000000000000000000000000000000022
65426 +:10BE20000000000000000000000000000000000012
65427 +:10BE30000000000000000000000000000000000002
65428 +:10BE400000000000000000000000000000000000F2
65429 +:10BE500000000000000000000000000000000000E2
65430 +:10BE600000000000000000000000000000000000D2
65431 +:10BE700000000000000000000000000000000000C2
65432 +:10BE800000000000000000000000000000000000B2
65433 +:10BE900000000000000000000000000000000000A2
65434 +:10BEA0000000000000000000000000000000000092
65435 +:10BEB0000000000000000000000000000000000082
65436 +:10BEC0000000000000000000000000000000000072
65437 +:10BED0000000000000000000000000000000000062
65438 +:10BEE0000000000000000000000000000000000052
65439 +:10BEF0000000000000000000000000000000000042
65440 +:10BF00000000000000000000000000000000000031
65441 +:10BF10000000000000000000000000000000000021
65442 +:10BF20000000000000000000000000000000000011
65443 +:10BF30000000000000000000000000000000000001
65444 +:10BF400000000000000000000000000000000000F1
65445 +:10BF500000000000000000000000000000000000E1
65446 +:10BF600000000000000000000000000000000000D1
65447 +:10BF700000000000000000000000000000000000C1
65448 +:10BF800000000000000000000000000000000000B1
65449 +:10BF900000000000000000000000000000000000A1
65450 +:10BFA0000000000000000000000000000000000091
65451 +:10BFB0000000000000000000000000000000000081
65452 +:10BFC0000000000000000000000000000000000071
65453 +:10BFD0000000000000000000000000000000000061
65454 +:10BFE0000000000000000000000000000000000051
65455 +:10BFF0000000000000000000000000000000000041
65456 +:10C000000000000000000000000000000000000030
65457 +:10C010000000000000000000000000000000000020
65458 +:10C020000000000000000000000000000000000010
65459 +:10C030000000000000000000000000000000000000
65460 +:10C0400000000000000000000000000000000000F0
65461 +:10C0500000000000000000000000000000000000E0
65462 +:10C0600000000000000000000000000000000000D0
65463 +:10C0700000000000000000000000000000000000C0
65464 +:10C0800000000000000000000000000000000000B0
65465 +:10C0900000000000000000000000000000000000A0
65466 +:10C0A0000000000000000000000000000000000090
65467 +:10C0B0000000000000000000000000000000000080
65468 +:10C0C0000000000000000000000000000000000070
65469 +:10C0D0000000000000000000000000000000000060
65470 +:10C0E0000000000000000000000000000000000050
65471 +:10C0F0000000000000000000000000000000000040
65472 +:10C10000000000000000000000000000000000002F
65473 +:10C11000000000000000000000000000000000001F
65474 +:10C12000000000000000000000000000000000000F
65475 +:10C1300000000000000000000000000000000000FF
65476 +:10C1400000000000000000000000000000000000EF
65477 +:10C1500000000000000000000000000000000000DF
65478 +:10C1600000000000000000000000000000000000CF
65479 +:10C1700000000000000000000000000000000000BF
65480 +:10C1800000000000000000000000000000000000AF
65481 +:10C19000000000000000000000000000000000009F
65482 +:10C1A000000000000000000000000000000000008F
65483 +:10C1B000000000000000000000000000000000007F
65484 +:10C1C000000000000000000000000000000000006F
65485 +:10C1D000000000000000000000000000000000005F
65486 +:10C1E000000000000000000000000000000000004F
65487 +:10C1F000000000000000000000000000000000003F
65488 +:10C20000000000000000000000000000000000002E
65489 +:10C21000000000000000000000000000000000001E
65490 +:10C22000000000000000000000000000000000000E
65491 +:10C2300000000000000000000000000000000000FE
65492 +:10C2400000000000000000000000000000000000EE
65493 +:10C2500000000000000000000000000000000000DE
65494 +:10C2600000000000000000000000000000000000CE
65495 +:10C2700000000000000000000000000000000000BE
65496 +:10C2800000000000000000000000000000000000AE
65497 +:10C29000000000000000000000000000000000009E
65498 +:10C2A000000000000000000000000000000000008E
65499 +:10C2B000000000000000000000000000000000007E
65500 +:10C2C000000000000000000000000000000000006E
65501 +:10C2D000000000000000000000000000000000005E
65502 +:10C2E000000000000000000000000000000000004E
65503 +:10C2F000000000000000000000000000000000003E
65504 +:10C30000000000000000000000000000000000002D
65505 +:10C31000000000000000000000000000000000001D
65506 +:10C32000000000000000000000000000000000000D
65507 +:10C3300000000000000000000000000000000000FD
65508 +:10C3400000000000000000000000000000000000ED
65509 +:10C3500000000000000000000000000000000000DD
65510 +:10C3600000000000000000000000000000000000CD
65511 +:10C3700000000000000000000000000000000000BD
65512 +:10C3800000000000000000000000000000000000AD
65513 +:10C39000000000000000000000000000000000009D
65514 +:10C3A000000000000000000000000000000000008D
65515 +:10C3B000000000000000000000000000000000007D
65516 +:10C3C000000000000000000000000000000000006D
65517 +:10C3D000000000000000000000000000000000005D
65518 +:10C3E000000000000000000000000000000000004D
65519 +:10C3F000000000000000000000000000000000003D
65520 +:10C40000000000000000000000000000000000002C
65521 +:10C41000000000000000000000000000000000001C
65522 +:10C42000000000000000000000000000000000000C
65523 +:10C4300000000000000000000000000000000000FC
65524 +:10C4400000000000000000000000000000000000EC
65525 +:10C4500000000000000000000000000000000000DC
65526 +:10C4600000000000000000000000000000000000CC
65527 +:10C4700000000000000000000000000000000000BC
65528 +:10C4800000000000000000000000000000000000AC
65529 +:10C49000000000000000000000000000000000009C
65530 +:10C4A000000000000000000000000000000000008C
65531 +:10C4B000000000000000000000000000000000007C
65532 +:10C4C000000000000000000000000000000000006C
65533 +:10C4D000000000000000000000000000000000005C
65534 +:10C4E000000000000000000000000000000000004C
65535 +:10C4F000000000000000000000000000000000003C
65536 +:10C50000000000000000000000000000000000002B
65537 +:10C51000000000000000000000000000000000001B
65538 +:10C52000000000000000000000000000000000000B
65539 +:10C5300000000000000000000000000000000000FB
65540 +:10C5400000000000000000000000000000000000EB
65541 +:10C5500000000000000000000000000000000000DB
65542 +:10C5600000000000000000000000000000000000CB
65543 +:10C5700000000000000000000000000000000000BB
65544 +:10C5800000000000000000000000000000000000AB
65545 +:10C59000000000000000000000000000000000009B
65546 +:10C5A000000000000000000000000000000000008B
65547 +:10C5B000000000000000000000000000000000007B
65548 +:10C5C000000000000000000000000000000000006B
65549 +:10C5D000000000000000000000000000000000005B
65550 +:10C5E000000000000000000000000000000000004B
65551 +:10C5F000000000000000000000000000000000003B
65552 +:10C60000000000000000000000000000000000002A
65553 +:10C61000000000000000000000000000000000001A
65554 +:10C62000000000000000000000000000000000000A
65555 +:10C6300000000000000000000000000000000000FA
65556 +:10C6400000000000000000000000000000000000EA
65557 +:10C6500000000000000000000000000000000000DA
65558 +:10C6600000000000000000000000000000000000CA
65559 +:10C6700000000000000000000000000000000000BA
65560 +:10C6800000000000000000000000000000000000AA
65561 +:10C69000000000000000000000000000000000009A
65562 +:10C6A000000000000000000000000000000000008A
65563 +:10C6B000000000000000000000000000000000007A
65564 +:10C6C000000000000000000000000000000000006A
65565 +:10C6D000000000000000000000000000000000005A
65566 +:10C6E000000000000000000000000000000000004A
65567 +:10C6F000000000000000000000000000000000003A
65568 +:10C700000000000000000000000000000000000029
65569 +:10C710000000000000000000000000000000000019
65570 +:10C720000000000000000000000000000000000009
65571 +:10C7300000000000000000000000000000000000F9
65572 +:10C7400000000000000000000000000000000000E9
65573 +:10C7500000000000000000000000000000000000D9
65574 +:10C7600000000000000000000000000000000000C9
65575 +:10C7700000000000000000000000000000000000B9
65576 +:10C7800000000000000000000000000000000000A9
65577 +:10C790000000000000000000000000000000000099
65578 +:10C7A0000000000000000000000000000000000089
65579 +:10C7B0000000000000000000000000000000000079
65580 +:10C7C0000000000000000000000000000000000069
65581 +:10C7D0000000000000000000000000000000000059
65582 +:10C7E0000000000000000000000000000000000049
65583 +:10C7F0000000000000000000000000000000000039
65584 +:10C800000000000000000000000000000000000028
65585 +:10C810000000000000000000000000000000000018
65586 +:10C820000000000000000000000000000000000008
65587 +:10C8300000000000000000000000000000000000F8
65588 +:10C8400000000000000000000000000000000000E8
65589 +:10C8500000000000000000000000000000000000D8
65590 +:10C8600000000000000000000000000000000000C8
65591 +:10C8700000000000000000000000000000000000B8
65592 +:10C8800000000000000000000000000000000000A8
65593 +:10C890000000000000000000000000000000000098
65594 +:10C8A0000000000000000000000000000000000088
65595 +:10C8B0000000000000000000000000000000000078
65596 +:10C8C0000000000000000000000000000000000068
65597 +:10C8D0000000000000000000000000000000000058
65598 +:10C8E0000000000000000000000000000000000048
65599 +:10C8F0000000000000000000000000000000000038
65600 +:10C900000000000000000000000000000000000027
65601 +:10C910000000000000000000000000000000000017
65602 +:10C920000000000000000000000000000000000007
65603 +:10C9300000000000000000000000000000000000F7
65604 +:10C9400000000000000000000000000000000000E7
65605 +:10C9500000000000000000000000000000000000D7
65606 +:10C9600000000000000000000000000000000000C7
65607 +:10C9700000000000000000000000000000000000B7
65608 +:10C9800000000000000000000000000000000000A7
65609 +:10C990000000000000000000000000000000000097
65610 +:10C9A0000000000000000000000000000000000087
65611 +:10C9B0000000000000000000000000000000000077
65612 +:10C9C0000000000000000000000000000000000067
65613 +:10C9D0000000000000000000000000000000000057
65614 +:10C9E0000000000000000000000000000000000047
65615 +:10C9F0000000000000000000000000000000000037
65616 +:10CA00000000000000000000000000000000000026
65617 +:10CA10000000000000000000000000000000000016
65618 +:10CA20000000000000000000000000000000000006
65619 +:10CA300000000000000000000000000000000000F6
65620 +:10CA400000000000000000000000000000000000E6
65621 +:10CA500000000000000000000000000000000000D6
65622 +:10CA600000000000000000000000000000000000C6
65623 +:10CA700000000000000000000000000000000000B6
65624 +:10CA800000000000000000000000000000000000A6
65625 +:10CA90000000000000000000000000000000000096
65626 +:10CAA0000000000000000000000000000000000086
65627 +:10CAB0000000000000000000000000000000000076
65628 +:10CAC0000000000000000000000000000000000066
65629 +:10CAD0000000000000000000000000000000000056
65630 +:10CAE0000000000000000000000000000000000046
65631 +:10CAF0000000000000000000000000000000000036
65632 +:10CB00000000000000000000000000000000000025
65633 +:10CB10000000000000000000000000000000000015
65634 +:10CB20000000000000000000000000000000000005
65635 +:10CB300000000000000000000000000000000000F5
65636 +:10CB400000000000000000000000000000000000E5
65637 +:10CB500000000000000000000000000000000000D5
65638 +:10CB600000000000000000000000000000000000C5
65639 +:10CB700000000000000000000000000000000000B5
65640 +:10CB800000000000000000000000000000000000A5
65641 +:10CB90000000000000000000000000000000000095
65642 +:10CBA0000000000000000000000000000000000085
65643 +:10CBB0000000000000000000000000000000000075
65644 +:10CBC0000000000000000000000000000000000065
65645 +:10CBD0000000000000000000000000000000000055
65646 +:10CBE0000000000000000000000000000000000045
65647 +:10CBF0000000000000000000000000000000000035
65648 +:10CC00000000000000000000000000000000000024
65649 +:10CC10000000000000000000000000000000000014
65650 +:10CC20000000000000000000000000000000000004
65651 +:10CC300000000000000000000000000000000000F4
65652 +:10CC400000000000000000000000000000000000E4
65653 +:10CC500000000000000000000000000000000000D4
65654 +:10CC600000000000000000000000000000000000C4
65655 +:10CC700000000000000000000000000000000000B4
65656 +:10CC800000000000000000000000000000000000A4
65657 +:10CC90000000000000000000000000000000000094
65658 +:10CCA0000000000000000000000000000000000084
65659 +:10CCB0000000000000000000000000000000000074
65660 +:10CCC0000000000000000000000000000000000064
65661 +:10CCD0000000000000000000000000000000000054
65662 +:10CCE0000000000000000000000000000000000044
65663 +:10CCF0000000000000000000000000000000000034
65664 +:10CD00000000000000000000000000000000000023
65665 +:10CD10000000000000000000000000000000000013
65666 +:10CD20000000000000000000000000000000000003
65667 +:10CD300000000000000000000000000000000000F3
65668 +:10CD400000000000000000000000000000000000E3
65669 +:10CD500000000000000000000000000000000000D3
65670 +:10CD600000000000000000000000000000000000C3
65671 +:10CD700000000000000000000000000000000000B3
65672 +:10CD800000000000000000000000000000000000A3
65673 +:10CD90000000000000000000000000000000000093
65674 +:10CDA0000000000000000000000000000000000083
65675 +:10CDB0000000000000000000000000000000000073
65676 +:10CDC0000000000000000000000000000000000063
65677 +:10CDD0000000000000000000000000000000000053
65678 +:10CDE0000000000000000000000000000000000043
65679 +:10CDF0000000000000000000000000000000000033
65680 +:10CE00000000000000000000000000000000000022
65681 +:10CE10000000000000000000000000000000000012
65682 +:10CE20000000000000000000000000000000000002
65683 +:10CE300000000000000000000000000000000000F2
65684 +:10CE400000000000000000000000000000000000E2
65685 +:10CE500000000000000000000000000000000000D2
65686 +:10CE600000000000000000000000000000000000C2
65687 +:10CE700000000000000000000000000000000000B2
65688 +:10CE800000000000000000000000000000000000A2
65689 +:10CE90000000000000000000000000000000000092
65690 +:10CEA0000000000000000000000000000000000082
65691 +:10CEB0000000000000000000000000000000000072
65692 +:10CEC0000000000000000000000000000000000062
65693 +:10CED0000000000000000000000000000000000052
65694 +:10CEE0000000000000000000000000000000000042
65695 +:10CEF0000000000000000000000000000000000032
65696 +:10CF00000000000000000000000000000000000021
65697 +:10CF10000000000000000000000000000000000011
65698 +:10CF20000000000000000000000000000000000001
65699 +:10CF300000000000000000000000000000000000F1
65700 +:10CF400000000000000000000000000000000000E1
65701 +:10CF500000000000000000000000000000000000D1
65702 +:10CF600000000000000000000000000000000000C1
65703 +:10CF700000000000000000000000000000000000B1
65704 +:10CF800000000000000000000000000000000000A1
65705 +:10CF90000000000000000000000000000000000091
65706 +:10CFA0000000000000000000000000000000000081
65707 +:10CFB0000000000000000000000000000000000071
65708 +:10CFC0000000000000000000000000000000000061
65709 +:10CFD0000000000000000000000000000000000051
65710 +:10CFE0000000000000000000000000000000000041
65711 +:10CFF0000000000000000000000000000000000031
65712 +:10D000000000000000000000000000000000000020
65713 +:10D010000000000000000000000000000000000010
65714 +:10D020000000000000000000000000000000000000
65715 +:10D0300000000000000000000000000000000000F0
65716 +:10D0400000000000000000000000000000000000E0
65717 +:10D0500000000000000000000000000000000000D0
65718 +:10D0600000000000000000000000000000000000C0
65719 +:10D0700000000000000000000000000000000000B0
65720 +:10D0800000000000000000000000000000000000A0
65721 +:10D090000000000000000000000000000000000090
65722 +:10D0A0000000000000000000000000000000000080
65723 +:10D0B0000000000000000000000000000000000070
65724 +:10D0C0000000000000000000000000000000000060
65725 +:10D0D0000000000000000000000000000000000050
65726 +:10D0E0000000000000000000000000000000000040
65727 +:10D0F0000000000000000000000000000000000030
65728 +:10D10000000000000000000000000000000000001F
65729 +:10D11000000000000000000000000000000000000F
65730 +:10D1200000000000000000000000000000000000FF
65731 +:10D1300000000000000000000000000000000000EF
65732 +:10D1400000000000000000000000000000000000DF
65733 +:10D1500000000000000000000000000000000000CF
65734 +:10D1600000000000000000000000000000000000BF
65735 +:10D1700000000000000000000000000000000000AF
65736 +:10D18000000000000000000000000000000000009F
65737 +:10D19000000000000000000000000000000000008F
65738 +:10D1A000000000000000000000000000000000007F
65739 +:10D1B000000000000000000000000000000000006F
65740 +:10D1C000000000000000000000000000000000005F
65741 +:10D1D000000000000000000000000000000000004F
65742 +:10D1E000000000000000000000000000000000003F
65743 +:10D1F000000000000000000000000000000000002F
65744 +:10D20000000000000000000000000000000000001E
65745 +:10D21000000000000000000000000000000000000E
65746 +:10D2200000000000000000000000000000000000FE
65747 +:10D2300000000000000000000000000000000000EE
65748 +:10D2400000000000000000000000000000000000DE
65749 +:10D2500000000000000000000000000000000000CE
65750 +:10D2600000000000000000000000000000000000BE
65751 +:10D2700000000000000000000000000000000000AE
65752 +:10D28000000000000000000000000000000000009E
65753 +:10D29000000000000000000000000000000000008E
65754 +:10D2A000000000000000000000000000000000007E
65755 +:10D2B000000000000000000000000000000000006E
65756 +:10D2C000000000000000000000000000000000005E
65757 +:10D2D000000000000000000000000000000000004E
65758 +:10D2E000000000000000000000000000000000003E
65759 +:10D2F000000000000000000000000000000000002E
65760 +:10D30000000000000000000000000000000000001D
65761 +:10D31000000000000000000000000000000000000D
65762 +:10D3200000000000000000000000000000000000FD
65763 +:10D3300000000000000000000000000000000000ED
65764 +:10D3400000000000000000000000000000000000DD
65765 +:10D3500000000000000000000000000000000000CD
65766 +:10D3600000000000000000000000000000000000BD
65767 +:10D3700000000000000000000000000000000000AD
65768 +:10D38000000000000000000000000000000000009D
65769 +:10D39000000000000000000000000000000000008D
65770 +:10D3A000000000000000000000000000000000007D
65771 +:10D3B000000000000000000000000000000000006D
65772 +:10D3C000000000000000000000000000000000005D
65773 +:10D3D000000000000000000000000000000000004D
65774 +:10D3E000000000000000000000000000000000003D
65775 +:10D3F000000000000000000000000000000000002D
65776 +:10D40000000000000000000000000000000000001C
65777 +:10D41000000000000000000000000000000000000C
65778 +:10D4200000000000000000000000000000000000FC
65779 +:10D4300000000000000000000000000000000000EC
65780 +:10D4400000000000000000000000000000000000DC
65781 +:10D4500000000000000000000000000000000000CC
65782 +:10D4600000000000000000000000000000000000BC
65783 +:10D4700000000000000000000000000000000000AC
65784 +:10D48000000000000000000000000000000000009C
65785 +:10D49000000000000000000000000000000000008C
65786 +:10D4A000000000000000000000000000000000007C
65787 +:10D4B000000000000000000000000000000000006C
65788 +:10D4C000000000000000000000000000000000005C
65789 +:10D4D000000000000000000000000000000000004C
65790 +:10D4E000000000000000000000000000000000003C
65791 +:10D4F000000000000000000000000000000000002C
65792 +:10D50000000000000000000000000000000000001B
65793 +:10D51000000000000000000000000000000000000B
65794 +:10D5200000000000000000000000000000000000FB
65795 +:10D5300000000000000000000000000000000000EB
65796 +:10D5400000000000000000000000000000000000DB
65797 +:10D5500000000000000000000000000000000000CB
65798 +:10D5600000000000000000000000000000000000BB
65799 +:10D5700000000000000000000000000000000000AB
65800 +:10D58000000000000000000000000000000000009B
65801 +:10D59000000000000000008000000000000000000B
65802 +:10D5A000000000000000000000000000000000007B
65803 +:10D5B00000000000000000000000000A0000000061
65804 +:10D5C0000000000000000000100000030000000048
65805 +:10D5D0000000000D0000000D3C02080024427340D2
65806 +:10D5E0003C030800246377CCAC4000000043202BB0
65807 +:10D5F0001480FFFD244200043C1D080037BD7FFC61
65808 +:10D6000003A0F0213C100800261032103C1C08003A
65809 +:10D61000279C73400E0010FE000000000000000D6B
65810 +:10D6200030A5FFFF30C600FF274301808F4201B8BD
65811 +:10D630000440FFFE24020002AC640000A465000860
65812 +:10D64000A066000AA062000B3C021000AC67001844
65813 +:10D6500003E00008AF4201B83C0360008C624FF861
65814 +:10D660000440FFFE3C020200AC644FC0AC624FC4F9
65815 +:10D670003C02100003E00008AC624FF89482000CFA
65816 +:10D680002486001400A0382100021302000210803A
65817 +:10D690000082402100C8102B1040005700000000FD
65818 +:10D6A00090C300002C6200095040005190C200015C
65819 +:10D6B000000310803C030800246372F00043102133
65820 +:10D6C0008C420000004000080000000090C30001F0
65821 +:10D6D0002402000A1462003A000000000106102330
65822 +:10D6E0002C42000A1440003624C600028CE20000DE
65823 +:10D6F00034420100ACE2000090C2000090C300017F
65824 +:10D7000090C4000290C5000300031C000002160034
65825 +:10D710000043102500042200004410250045102578
65826 +:10D7200024C60004ACE2000490C2000090C30001D3
65827 +:10D7300090C4000290C500030002160000031C0004
65828 +:10D740000043102500042200004410250045102548
65829 +:10D7500024C600040A000CB8ACE2000890C3000123
65830 +:10D76000240200041462001624C6000290C20000C5
65831 +:10D7700090C400018CE30000000212000044102558
65832 +:10D780003463000424C60002ACE2000C0A000CB8AA
65833 +:10D79000ACE3000090C300012402000314620008FF
65834 +:10D7A00024C600028CE2000090C3000024C60001E1
65835 +:10D7B00034420008A0E300100A000CB8ACE20000FC
65836 +:10D7C00003E000082402000190C3000124020002CB
65837 +:10D7D0001062000224C40002010020210A000CB8DB
65838 +:10D7E000008030210A000CB824C6000190C200015C
65839 +:10D7F0000A000CB800C2302103E00008000010212C
65840 +:10D8000027BDFFE8AFBF0014AFB000100E00130239
65841 +:10D8100000808021936200052403FFFE0200202186
65842 +:10D82000004310248FBF00148FB00010A3620005C6
65843 +:10D830000A00130B27BD001827BDFFE8AFB000108A
65844 +:10D84000AFBF00140E000F3C0080802193620000E7
65845 +:10D8500024030050304200FF14430004240201005E
65846 +:10D86000AF4201800A000D3002002021AF4001804C
65847 +:10D87000020020218FBF00148FB000100A000FE7B4
65848 +:10D8800027BD001827BDFF80AFBE0078AFB700747A
65849 +:10D89000AFB20060AFBF007CAFB60070AFB5006C38
65850 +:10D8A000AFB40068AFB30064AFB1005CAFB0005874
65851 +:10D8B0008F5001283C0208008C4231A02403FF80D5
65852 +:10D8C0009365003F0202102100431024AF42002460
65853 +:10D8D0003C0208008C4231A09364000530B200FF86
65854 +:10D8E000020210213042007F034218210004202749
65855 +:10D8F0003C02000A0062182130840001AF8300144A
65856 +:10D900000000F0210000B82114800053AFA00050A7
65857 +:10D9100093430116934401128F450104306300FFC5
65858 +:10D920003C020001308400FF00A2282403431021A0
65859 +:10D9300003441821245640002467400014A001CD60
65860 +:10D940002402000193620000304300FF2402002003
65861 +:10D950001062000524020050106200060000000062
65862 +:10D960000A000D74000000000000000D0A000D7D8B
65863 +:10D97000AFA000303C1E080027DE738C0A000D7D2E
65864 +:10D98000AFA000303C0208008C4200DC24420001C1
65865 +:10D990003C010800AC2200DC0E00139F00000000D8
65866 +:10D9A0000A000F318FBF007C8F4201043C0300202E
65867 +:10D9B00092D3000D004310240002202B00042140CC
65868 +:10D9C000AFA400308F4301043C02004000621824E1
65869 +:10D9D000146000023485004000802821326200205B
65870 +:10D9E000AFA500301440000234A6008000A0302112
65871 +:10D9F00010C0000BAFA6003093C500088F67004C25
65872 +:10DA00000200202100052B0034A5008130A5F08103
65873 +:10DA10000E000C9B30C600FF0A000F2E0000000015
65874 +:10DA20009362003E304200401040000F2402000488
65875 +:10DA300056420007240200120200202100E02821A3
65876 +:10DA40000E0013F702C030210A000F318FBF007C97
65877 +:10DA500016420005000000000E000D2100002021EC
65878 +:10DA60000A000F318FBF007C9743011A96C4000E45
65879 +:10DA700093620035326500043075FFFF00442004D6
65880 +:10DA8000AFA400548ED1000410A000158ED400085D
65881 +:10DA90009362003E3042004010400007000000004A
65882 +:10DAA0000E0013E0022020211040000D00000000B5
65883 +:10DAB0000A000F2E000000008F6200440222102393
65884 +:10DAC0000440016A000000008F6200480222102317
65885 +:10DAD00004410166240400160A000E218FC20004CE
65886 +:10DAE0008F6200480222102304400008000000005A
65887 +:10DAF0003C0208008C423100244200013C01080035
65888 +:10DB0000AC2231000A000F23000000008F620040A9
65889 +:10DB100002221023184000128F8400143C020800D7
65890 +:10DB20008C423100327300FC0000A8212442000125
65891 +:10DB30003C010800AC2231008F6300409482011C3C
65892 +:10DB4000022318233042FFFF0043102A50400010E8
65893 +:10DB50002402000C8F6200400A000DF20222102302
65894 +:10DB60009483011C9762003C0043102B1040000678
65895 +:10DB7000000000009482011C00551023A482011CA7
65896 +:10DB80000A000DF72402000CA480011C2402000CE2
65897 +:10DB9000AFA200308F620040005120231880000D9A
65898 +:10DBA00002A4102A1440012600000000149500066B
65899 +:10DBB00002A410233A620001304200011440012007
65900 +:10DBC0000000000002A41023022488210A000E098C
65901 +:10DBD0003055FFFF00002021326200021040001A81
65902 +:10DBE000326200109362003E30420040504000110B
65903 +:10DBF0008FC200040E00130202002021240200182C
65904 +:10DC0000A362003F936200052403FFFE020020216F
65905 +:10DC1000004310240E00130BA362000524040039F6
65906 +:10DC2000000028210E0013C9240600180A000F3036
65907 +:10DC300024020001240400170040F809000000003D
65908 +:10DC40000A000F302402000110400108000000000B
65909 +:10DC50008F63004C8F620054028210231C4001032A
65910 +:10DC600002831023044200010060A021AFA4001829
65911 +:10DC7000AFB10010AFB50014934201208F65004092
65912 +:10DC80009763003C304200FF034210210044102102
65913 +:10DC90008FA400543063FFFF244240000083182B00
65914 +:10DCA0008FA40030AFA20020AFA50028008320255C
65915 +:10DCB000AFA40030AFA50024AFA0002CAFB4003457
65916 +:10DCC0009362003E30420008504000118FC20000B5
65917 +:10DCD00002C0202127A500380E000CB2AFA00038EA
65918 +:10DCE0005440000B8FC200008FA200383042010068
65919 +:10DCF000504000078FC200008FA3003C8F6200607D
65920 +:10DD00000062102304430001AF6300608FC2000073
65921 +:10DD10000040F80927A400108FA200303042000212
65922 +:10DD200054400001327300FE9362003E30420040D6
65923 +:10DD3000104000378FA200248F6200541682001A10
65924 +:10DD40003262000124020014124200102A4200151F
65925 +:10DD500010400006240200162402000C12420007A4
65926 +:10DD6000326200010A000E7D000000001242000530
65927 +:10DD7000326200010A000E7D000000000A000E78E9
65928 +:10DD80002417000E0A000E78241700100A000E7CDB
65929 +:10DD900024170012936200232403FFBD00431024C4
65930 +:10DDA000A362002332620001104000198FA20024F8
65931 +:10DDB0002402000C1242000E2A42000D1040000600
65932 +:10DDC0002402000E2402000A124200078FA200243F
65933 +:10DDD0000A000E9524420001124200088FA200247E
65934 +:10DDE0000A000E95244200010A000E932417000831
65935 +:10DDF0002402000E16E20002241700162417001059
65936 +:10DE00008FA2002424420001AFA200248FA200248C
65937 +:10DE10008FA300148F76004000431021AF620040B2
65938 +:10DE20008F8200149442011C104000090000000081
65939 +:10DE30008F6200488F6400409763003C00441023C9
65940 +:10DE40003063FFFF0043102A104000088FA20054E7
65941 +:10DE5000936400368F6300403402FFFC008210049C
65942 +:10DE600000621821AF6300488FA200548FA60030D3
65943 +:10DE70000282902130C200081040000E0000000015
65944 +:10DE80008F6200581642000430C600FF9742011A04
65945 +:10DE90005040000134C6001093C500088FA700341D
65946 +:10DEA0000200202100052B0034A500800E000C9BF1
65947 +:10DEB00030A5F0808F620040005610231840001BF0
65948 +:10DEC0008FA200183C0208008C42319830420010AA
65949 +:10DED0001040000D24020001976200681440000AFF
65950 +:10DEE000240200018F8200149442011C1440000699
65951 +:10DEF00024020001A76200689742007A244200646D
65952 +:10DF00000A000EE9A7620012A76200120E001302B7
65953 +:10DF1000020020219362007D2403000102002021E1
65954 +:10DF2000344200010A000EE7AFA300501840000A77
65955 +:10DF3000000000000E001302020020219362007D09
65956 +:10DF40002403000102002021AFA30050344200044A
65957 +:10DF50000E00130BA362007D9362003E304200402E
65958 +:10DF60001440000C326200011040000A0000000062
65959 +:10DF70008F6300408FC20004240400182463000152
65960 +:10DF80000040F809AF6300408FA200300A000F3054
65961 +:10DF9000304200048F620058105200100000000050
65962 +:10DFA0008F620018022210231C4000082404000184
65963 +:10DFB0008F62001816220009000000008F62001C0A
65964 +:10DFC000028210230440000500000000AF720058D8
65965 +:10DFD000AFA40050AF710018AF74001C12E0000B2A
65966 +:10DFE0008FA200500E00130202002021A377003FF1
65967 +:10DFF0000E00130B0200202102E030212404003720
65968 +:10E000000E0013C9000028218FA200501040000309
65969 +:10E01000000000000E000CA90200202112A0000543
65970 +:10E02000000018218FA2003030420004504000113F
65971 +:10E0300000601021240300010A000F30006010214D
65972 +:10E040000E001302020020219362007D02002021B5
65973 +:10E05000344200040E00130BA362007D0E000CA9D5
65974 +:10E06000020020210A000F3024020001AF400044CA
65975 +:10E07000240200018FBF007C8FBE00788FB7007430
65976 +:10E080008FB600708FB5006C8FB400688FB30064DA
65977 +:10E090008FB200608FB1005C8FB0005803E00008C1
65978 +:10E0A00027BD00808F4201B80440FFFE2402080013
65979 +:10E0B000AF4201B803E00008000000003C02000885
65980 +:10E0C00003421021944200483084FFFF2484001250
65981 +:10E0D0003045FFFF10A0001700A4102B10400016C1
65982 +:10E0E00024020003934201202403001AA343018B5E
65983 +:10E0F000304200FF2446FFFE8F82000000A6182B4E
65984 +:10E100003863000100021382004310241040000510
65985 +:10E110008F84000434820001A746019403E00008C4
65986 +:10E12000AF8200042402FFFE0082102403E00008F6
65987 +:10E13000AF8200042402000303E00008A342018B25
65988 +:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3
65989 +:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17
65990 +:10E1600000000000AF440180AF4400200E000F42C9
65991 +:10E17000020020218F8300008F840004A750019AA1
65992 +:10E18000A750018EA74301908F8300083082800042
65993 +:10E19000AF4301A8A75101881040000E8F820004F0
65994 +:10E1A00093420116304200FC24420004005A102120
65995 +:10E1B0008C4240003042FFFF144000068F82000472
65996 +:10E1C0003C02FFFF34427FFF00821024AF82000434
65997 +:10E1D0008F8200042403BFFF00431024A74201A63E
65998 +:10E1E0009743010C8F42010400031C003042FFFFE3
65999 +:10E1F00000621825AF4301AC3C021000AF4201B8E9
66000 +:10E200008FBF00188FB100148FB0001003E000081A
66001 +:10E2100027BD00208F470070934201128F830000BA
66002 +:10E2200027BDFFF0304200FF00022882306201006B
66003 +:10E23000000030211040004324A40003306240005D
66004 +:10E24000104000103062200000041080005A10219D
66005 +:10E250008C43400024A4000400041080AFA30000FD
66006 +:10E26000005A10218C424000AFA2000493420116D4
66007 +:10E27000304200FC005A10218C4240000A000FC0BE
66008 +:10E28000AFA200081040002F0000302100041080D1
66009 +:10E29000005A10218C43400024A400040004108084
66010 +:10E2A000AFA30000005A10218C424000AFA000082C
66011 +:10E2B000AFA200048FA80008000030210000202138
66012 +:10E2C000240A00083C0908002529010003A41021A4
66013 +:10E2D000148A000300042A001100000A0000000054
66014 +:10E2E00090420000248400012C83000C00A2102125
66015 +:10E2F00000021080004910218C4200001460FFF3DE
66016 +:10E3000000C230263C0408008C8431048F42007027
66017 +:10E310002C83002010600009004738233C030800CC
66018 +:10E32000246331080004108000431021248300017D
66019 +:10E33000AC4700003C010800AC233104AF86000864
66020 +:10E340002406000100C0102103E0000827BD0010D2
66021 +:10E350003C0208008C42003827BDFFD0AFB5002436
66022 +:10E36000AFB40020AFB10014AFBF0028AFB3001CA2
66023 +:10E37000AFB20018AFB00010000088213C150800B3
66024 +:10E3800026B50038144000022454FFFF0000A021ED
66025 +:10E390009742010E8F8400003042FFFF308340001F
66026 +:10E3A0001060000A245200043C0200200082102465
66027 +:10E3B00050400007308280008F8200042403BFFF9A
66028 +:10E3C000008318240A0010103442100030828000AC
66029 +:10E3D0001040000A3C020020008210241040000778
66030 +:10E3E0008F8200043C03FFFF34637FFF0083182407
66031 +:10E3F00034428000AF820004AF8300000E000F980B
66032 +:10E400000000000014400007000000009743011EB8
66033 +:10E410009742011C3063FFFF0002140000621825C0
66034 +:10E42000AF8300089742010C8F4340003045FFFF47
66035 +:10E430003402FFFF14620003000000000A001028ED
66036 +:10E44000241100208F42400030420100544000015E
66037 +:10E45000241100108F8400003082100050400014FE
66038 +:10E4600036310001308200201440000B3C021000C5
66039 +:10E47000008210245040000E363100013C030E0093
66040 +:10E480003C020DFF008318243442FFFF0043102B91
66041 +:10E4900050400007363100013C0208008C42002C3D
66042 +:10E4A000244200013C010800AC22002C363100055A
66043 +:10E4B0003C0608008CC6003454C000238F85000041
66044 +:10E4C0008F820004304240005440001F8F850000BE
66045 +:10E4D0003C021F01008210243C0310005443001A28
66046 +:10E4E0008F85000030A20200144000178F850000C5
66047 +:10E4F0003250FFFF363100028F4201B80440FFFE68
66048 +:10E5000000000000AF400180020020210E000F42F9
66049 +:10E51000AF4000208F8300042402BFFFA750019A60
66050 +:10E52000006218248F820000A750018EA751018835
66051 +:10E53000A74301A6A74201903C021000AF4201B8D8
66052 +:10E540000A0010F5000010213C02100000A2102467
66053 +:10E550001040003A0000000010C0000F0000000052
66054 +:10E5600030A201001040000C3C0302003C020F00EE
66055 +:10E5700000A2102410430008000000008F82000851
66056 +:10E58000005410240055102190420004244200043D
66057 +:10E590000A00109F000221C00000000000051602C2
66058 +:10E5A0003050000F3A0300022E4203EF38420001C0
66059 +:10E5B0002C6300010062182414600073240200011F
66060 +:10E5C0003C0308008C6300D02E06000C386200016A
66061 +:10E5D0002C4200010046102414400015001021C0F8
66062 +:10E5E0002602FFFC2C4200045440001100002021B0
66063 +:10E5F000386200022C420001004610241040000343
66064 +:10E60000000512420A00109F000020210010182B64
66065 +:10E610000043102450400006001021C000002021BB
66066 +:10E620003245FFFF0E000F633226FFFB001021C0B2
66067 +:10E630003245FFFF0A0010F2362600028F424000EA
66068 +:10E640003C0308008C630024304201001040004667
66069 +:10E6500030620001322200043070000D14400002CC
66070 +:10E660002413000424130002000512C238420001E2
66071 +:10E670002E4303EF304200013863000100431025B0
66072 +:10E68000104000033231FFFB2402FFFB0202802412
66073 +:10E6900010C000183202000130A201001040001525
66074 +:10E6A000320200013C020F0000A210243C030200D1
66075 +:10E6B0001043000F8F8200082403FFFE0203802412
66076 +:10E6C00000541024005510219042000402333025DC
66077 +:10E6D0002442000412000002000221C03226FFFF83
66078 +:10E6E0000E000F633245FFFF1200002700001021CB
66079 +:10E6F000320200011040000D320200042402000129
66080 +:10E7000012020002023330253226FFFF00002021D2
66081 +:10E710000E000F633245FFFF2402FFFE0202802439
66082 +:10E7200012000019000010213202000410400016EF
66083 +:10E7300024020001240200041202000202333025E8
66084 +:10E740003226FFFF3245FFFF0E000F632404010055
66085 +:10E750002402FFFB020280241200000B00001021A3
66086 +:10E760000A0010F5240200011040000700001021EB
66087 +:10E770003245FFFF36260002000020210E000F6305
66088 +:10E7800000000000000010218FBF00288FB500247A
66089 +:10E790008FB400208FB3001C8FB200188FB100140B
66090 +:10E7A0008FB0001003E0000827BD003027BDFFD068
66091 +:10E7B000AFB000103C04600CAFBF002CAFB6002817
66092 +:10E7C000AFB50024AFB40020AFB3001CAFB2001847
66093 +:10E7D000AFB100148C8250002403FF7F3C1A8000EC
66094 +:10E7E000004310243442380CAC8250002402000351
66095 +:10E7F0003C106000AF4200088E0208083C1B8008F5
66096 +:10E800003C010800AC2000203042FFF038420010EC
66097 +:10E810002C4200010E001B8DAF8200183C04FFFF4C
66098 +:10E820003C020400348308063442000CAE0219484E
66099 +:10E83000AE03194C3C0560168E0219808CA30000B3
66100 +:10E840003442020000641824AE0219803C02535383
66101 +:10E850001462000334A47C008CA200040050202128
66102 +:10E860008C82007C8C830078AF820010AF83000C18
66103 +:10E870008F55000032A200031040FFFD32A20001BC
66104 +:10E880001040013D32A200028F420128AF42002019
66105 +:10E890008F4201048F430100AF8200000E000F3C45
66106 +:10E8A000AF8300043C0208008C4200C01040000806
66107 +:10E8B0008F8400003C0208008C4200C42442000106
66108 +:10E8C0003C010800AC2200C40A00126900000000EC
66109 +:10E8D0003C020010008210241440010C8F830004BD
66110 +:10E8E0003C0208008C4200203C0308008C63003886
66111 +:10E8F00000008821244200013C010800AC220020D5
66112 +:10E900003C16080026D60038146000022474FFFF6D
66113 +:10E910000000A0219742010E308340003042FFFFEB
66114 +:10E920001060000A245200043C02002000821024DF
66115 +:10E9300050400007308280008F8200042403BFFF14
66116 +:10E94000008318240A0011703442100030828000C5
66117 +:10E950001040000A3C0200200082102410400007F2
66118 +:10E960008F8200043C03FFFF34637FFF0083182481
66119 +:10E9700034428000AF820004AF8300000E000F9885
66120 +:10E980000000000014400007000000009743011E33
66121 +:10E990009742011C3063FFFF00021400006218253B
66122 +:10E9A000AF8300089742010C8F4340003045FFFFC2
66123 +:10E9B0003402FFFF14620003000000000A00118807
66124 +:10E9C000241100208F4240003042010054400001D9
66125 +:10E9D000241100108F840000308210005040001479
66126 +:10E9E00036310001308200201440000B3C02100040
66127 +:10E9F000008210245040000E363100013C030E000E
66128 +:10EA00003C020DFF008318243442FFFF0043102B0B
66129 +:10EA100050400007363100013C0208008C42002CB7
66130 +:10EA2000244200013C010800AC22002C36310005D4
66131 +:10EA30003C0608008CC6003454C000238F850000BB
66132 +:10EA40008F820004304240005440001F8F85000038
66133 +:10EA50003C021F01008210243C0310005443001AA2
66134 +:10EA60008F85000030A20200144000178F8500003F
66135 +:10EA70003250FFFF363100028F4201B80440FFFEE2
66136 +:10EA800000000000AF400180020020210E000F4274
66137 +:10EA9000AF4000208F8300042402BFFFA750019ADB
66138 +:10EAA000006218248F820000A750018EA7510188B0
66139 +:10EAB000A74301A6A74201903C021000AF4201B853
66140 +:10EAC0000A001267000010213C02100000A210246E
66141 +:10EAD0001040003A0000000010C0000F00000000CD
66142 +:10EAE00030A201001040000C3C0302003C020F0069
66143 +:10EAF00000A2102410430008000000008F820008CC
66144 +:10EB000000541024005610219042000424420004B6
66145 +:10EB10000A0011FF000221C00000000000051602DB
66146 +:10EB20003050000F3A0300022E4203EF384200013A
66147 +:10EB30002C63000100621824146000852402000187
66148 +:10EB40003C0308008C6300D02E06000C38620001E4
66149 +:10EB50002C4200010046102414400015001021C072
66150 +:10EB60002602FFFC2C42000454400011000020212A
66151 +:10EB7000386200022C42000100461024504000037D
66152 +:10EB8000000512420A0011FF000020210010182B7E
66153 +:10EB90000043102450400006001021C00000202136
66154 +:10EBA0003245FFFF0E000F633226FFFB001021C02D
66155 +:10EBB0003245FFFF0A001252362600028F42400003
66156 +:10EBC0003C0308008C6300243042010010400046E2
66157 +:10EBD00030620001322200043070000D1440000247
66158 +:10EBE0002413000424130002000512C2384200015D
66159 +:10EBF0002E4303EF3042000138630001004310252B
66160 +:10EC0000104000033231FFFB2402FFFB020280248C
66161 +:10EC100010C000183202000130A20100104000159F
66162 +:10EC2000320200013C020F0000A210243C0302004B
66163 +:10EC30001043000F8F8200082403FFFE020380248C
66164 +:10EC40000054102400561021904200040233302555
66165 +:10EC50002442000412000002000221C03226FFFFFD
66166 +:10EC60000E000F633245FFFF120000390000102133
66167 +:10EC7000320200011040000D3202000424020001A3
66168 +:10EC800012020002023330253226FFFF000020214D
66169 +:10EC90000E000F633245FFFF2402FFFE02028024B4
66170 +:10ECA0001200002B00001021320200041040002846
66171 +:10ECB0002402000124020004120200020233302563
66172 +:10ECC0003226FFFF3245FFFF0E000F6324040100D0
66173 +:10ECD0002402FFFB020280241200001D000010210C
66174 +:10ECE0000A001267240200015040001900001021A0
66175 +:10ECF0003245FFFF36260002000020210E000F6380
66176 +:10ED0000000000000A001267000010212402BFFF6B
66177 +:10ED1000006210241040000800000000240287FF59
66178 +:10ED200000621024144000083C020060008210249D
66179 +:10ED300010400005000000000E000D34000000002F
66180 +:10ED40000A001267000000000E0012C70000000059
66181 +:10ED5000104000063C0240008F4301243C0260202A
66182 +:10ED6000AC430014000000003C024000AF420138F8
66183 +:10ED70000000000032A200021040FEBD00000000B2
66184 +:10ED80008F4201403C044000AF4200208F430148C5
66185 +:10ED90003C02700000621824106400420000000071
66186 +:10EDA0000083102B144000063C0260003C0220004F
66187 +:10EDB000106200073C0240000A0012C3000000007D
66188 +:10EDC0001062003C3C0240000A0012C30000000038
66189 +:10EDD0008F4501408F4601448F42014800021402D2
66190 +:10EDE000304300FF240200041462000A274401801B
66191 +:10EDF0008F4201B80440FFFE2402001CAC850000D5
66192 +:10EE0000A082000B3C021000AF4201B80A0012C3FE
66193 +:10EE10003C0240002402000914620012000616029F
66194 +:10EE2000000229C0AF4500208F4201B80440FFFE18
66195 +:10EE30002402000124030003AF450180A343018B9A
66196 +:10EE4000A740018EA740019AA7400190AF4001A8BA
66197 +:10EE5000A7420188A74201A6AF4001AC3C021000C6
66198 +:10EE6000AF4201B88F4201B80440FFFE000000002D
66199 +:10EE7000AC8500008F42014800021402A482000801
66200 +:10EE800024020002A082000B8F420148A4820010DD
66201 +:10EE90003C021000AC860024AF4201B80A0012C345
66202 +:10EEA0003C0240000E001310000000000A0012C3D4
66203 +:10EEB0003C0240000E001BC2000000003C0240006B
66204 +:10EEC000AF420178000000000A00112F000000008E
66205 +:10EED0008F4201003042003E144000112402000124
66206 +:10EEE000AF4000488F420100304207C0104000058B
66207 +:10EEF00000000000AF40004CAF40005003E00008AD
66208 +:10EF000024020001AF400054AF4000408F42010096
66209 +:10EF10003042380054400001AF4000442402000158
66210 +:10EF200003E00008000000008F4201B80440FFFE2B
66211 +:10EF300024020001AF440180AF400184A74501884D
66212 +:10EF4000A342018A24020002A342018B9742014A94
66213 +:10EF500014C00004A7420190AF4001A40A0012EFC0
66214 +:10EF60003C0210008F420144AF4201A43C02100059
66215 +:10EF7000AF4001A803E00008AF4201B88F4201B8DA
66216 +:10EF80000440FFFE24020002AF440180AF4401842C
66217 +:10EF9000A7450188A342018AA342018B9742014AF7
66218 +:10EFA000A7420190AF4001A48F420144AF4201A8A3
66219 +:10EFB0003C02100003E00008AF4201B83C029000A0
66220 +:10EFC0003442000100822025AF4400208F420020FF
66221 +:10EFD0000440FFFE0000000003E000080000000005
66222 +:10EFE0003C028000344200010082202503E000083A
66223 +:10EFF000AF44002027BDFFE8AFBF0014AFB0001042
66224 +:10F000008F50014093430149934201489344014882
66225 +:10F01000306300FF304200FF00021200006228252A
66226 +:10F020002402001910620076308400802862001AE1
66227 +:10F030001040001C24020020240200081062007707
66228 +:10F04000286200091040000E2402000B2402000177
66229 +:10F0500010620034286200025040000524020006BD
66230 +:10F0600050600034020020210A00139A00000000C2
66231 +:10F0700010620030020020210A00139A00000000F4
66232 +:10F080001062003B2862000C504000022402000E77
66233 +:10F090002402000910620056020020210A00139A7F
66234 +:10F0A0000000000010620056286200211040000F8E
66235 +:10F0B000240200382402001C106200582862001D3F
66236 +:10F0C000104000062402001F2402001B1062004CA6
66237 +:10F0D000000000000A00139A000000001062004ABD
66238 +:10F0E000020020210A00139A00000000106200456F
66239 +:10F0F0002862003910400007240200802462FFCB00
66240 +:10F100002C42000210400045020020210A00139604
66241 +:10F110000000302110620009000000000A00139A6C
66242 +:10F12000000000001480003D020020210A0013901E
66243 +:10F130008FBF00140A001396240600018F4201B805
66244 +:10F140000440FFFE24020002A342018BA745018870
66245 +:10F150009742014AA74201908F420144A74201927F
66246 +:10F160003C021000AF4201B80A00139C8FBF00148C
66247 +:10F170009742014A144000290000000093620005F4
66248 +:10F180003042000414400025000000000E0013026D
66249 +:10F190000200202193620005020020213442000475
66250 +:10F1A0000E00130BA36200059362000530420004B9
66251 +:10F1B00014400002000000000000000D93620000F7
66252 +:10F1C00024030020304200FF14430014000000001C
66253 +:10F1D0008F4201B80440FFFE24020005AF500180B9
66254 +:10F1E000A342018B3C0210000A00139AAF4201B8FF
66255 +:10F1F0008FBF00148FB000100A0012F227BD001854
66256 +:10F200000000000D02002021000030218FBF0014FB
66257 +:10F210008FB000100A0012DD27BD00180000000D9D
66258 +:10F220008FBF00148FB0001003E0000827BD001846
66259 +:10F2300027BDFFE8AFBF00100E000F3C000000002C
66260 +:10F24000AF4001808FBF0010000020210A000FE7AF
66261 +:10F2500027BD00183084FFFF30A5FFFF00001821F4
66262 +:10F260001080000700000000308200011040000202
66263 +:10F2700000042042006518210A0013AB0005284055
66264 +:10F2800003E000080060102110C0000624C6FFFF44
66265 +:10F290008CA2000024A50004AC8200000A0013B573
66266 +:10F2A0002484000403E000080000000010A000080F
66267 +:10F2B00024A3FFFFAC860000000000000000000057
66268 +:10F2C0002402FFFF2463FFFF1462FFFA248400047A
66269 +:10F2D00003E0000800000000308300FF30A500FFBD
66270 +:10F2E00030C600FF274701808F4201B80440FFFE6F
66271 +:10F2F000000000008F42012834634000ACE20000AF
66272 +:10F3000024020001ACE00004A4E30008A0E2000A2B
66273 +:10F3100024020002A0E2000B3C021000A4E5001051
66274 +:10F32000ACE00024ACE00028A4E6001203E00008F2
66275 +:10F33000AF4201B827BDFFE8AFBF00109362003FA6
66276 +:10F3400024030012304200FF1043000D00803021E2
66277 +:10F350008F620044008210230440000A8FBF001017
66278 +:10F360008F620048240400390000282100C21023C5
66279 +:10F3700004410004240600120E0013C9000000001E
66280 +:10F380008FBF00102402000103E0000827BD001811
66281 +:10F3900027BDFFC8AFB20030AFB1002CAFBF003403
66282 +:10F3A000AFB0002890C5000D0080902130A400105F
66283 +:10F3B0001080000B00C088218CC300088F620054AD
66284 +:10F3C0001062000730A20005144000B524040001BB
66285 +:10F3D0000E000D21000020210A0014BB0040202156
66286 +:10F3E00030A200051040000930A30012108000ACCC
66287 +:10F3F000240400018E2300088F620054146200A9C7
66288 +:10F400008FBF00340A00142C240400382402001298
66289 +:10F41000146200A3240400010220202127A500106B
66290 +:10F420000E000CB2AFA000101040001102402021CD
66291 +:10F430008E220008AF620084AF6000400E0013020D
66292 +:10F44000000000009362007D024020213442002031
66293 +:10F450000E00130BA362007D0E000CA902402021B8
66294 +:10F46000240400382405008D0A0014B82406001274
66295 +:10F470009362003E304200081040000F8FA200103F
66296 +:10F4800030420100104000078FA300148F6200601B
66297 +:10F490000062102304430008AF6300600A001441B7
66298 +:10F4A00000000000AF6000609362003E2403FFF79D
66299 +:10F4B00000431024A362003E9362003E30420008E5
66300 +:10F4C000144000022406000300003021936200343F
66301 +:10F4D000936300378F640084304200FF306300FF85
66302 +:10F4E00000661821000318800043282100A4202B67
66303 +:10F4F0001080000B000000009763003C8F620084C6
66304 +:10F500003063FFFF004510230062182B14600004D5
66305 +:10F51000000000008F6200840A00145D0045802313
66306 +:10F520009762003C3050FFFF8FA300103062000450
66307 +:10F5300010400004000628808FA2001C0A001465F9
66308 +:10F540000202102B2E02021850400003240202185F
66309 +:10F550000A00146E020510233063000410600003DB
66310 +:10F56000004510238FA2001C00451023004080217D
66311 +:10F570002C42008054400001241000800E00130231
66312 +:10F580000240202124020001AF62000C9362003E81
66313 +:10F59000001020403042007FA362003E8E22000413
66314 +:10F5A00024420001AF620040A770003C8F6200500F
66315 +:10F5B0009623000E00431021AF6200588F62005066
66316 +:10F5C00000441021AF62005C8E220004AF6200187C
66317 +:10F5D0008E220008AF62001C8FA20010304200088B
66318 +:10F5E0005440000A93A20020A360003693620036C4
66319 +:10F5F0002403FFDFA36200359362003E0043102422
66320 +:10F60000A362003E0A0014988E220008A36200350F
66321 +:10F610008E220008AF62004C8F6200248F6300408E
66322 +:10F6200000431021AF6200489362000024030050A1
66323 +:10F63000304200FF144300122403FF803C02080004
66324 +:10F640008C4231A00242102100431024AF42002816
66325 +:10F650003C0208008C4231A08E2400083C03000CC0
66326 +:10F66000024210213042007F03421021004310214A
66327 +:10F67000AC4400D88E230008AF820014AC4300DCF9
66328 +:10F680000E00130B02402021240400380000282122
66329 +:10F690002406000A0E0013C9000000002404000123
66330 +:10F6A0008FBF00348FB200308FB1002C8FB0002894
66331 +:10F6B0000080102103E0000827BD003827BDFFF8B7
66332 +:10F6C00027420180AFA20000308A00FF8F4201B8BC
66333 +:10F6D0000440FFFE000000008F4601283C020800A5
66334 +:10F6E0008C4231A02403FF80AF86004800C2102165
66335 +:10F6F00000431024AF4200243C0208008C4231A099
66336 +:10F700008FA900008FA8000000C210213042007FA6
66337 +:10F71000034218213C02000A00621821946400D4BC
66338 +:10F720008FA700008FA5000024020002AF83001401
66339 +:10F73000A0A2000B8FA30000354260003084FFFFC1
66340 +:10F74000A4E200083C021000AD260000AD04000455
66341 +:10F75000AC60002427BD0008AF4201B803E00008F8
66342 +:10F76000240200018F88003C938200288F830014BC
66343 +:10F770003C07080024E7779800481023304200FF38
66344 +:10F78000304900FC246500888F860040304A000321
66345 +:10F790001120000900002021248200048CA3000015
66346 +:10F7A000304400FF0089102AACE3000024A50004C7
66347 +:10F7B0001440FFF924E70004114000090000202153
66348 +:10F7C0002482000190A30000304400FF008A102B27
66349 +:10F7D000A0E3000024A500011440FFF924E7000184
66350 +:10F7E00030C20003144000048F85003C3102000346
66351 +:10F7F0001040000D0000000010A0000900002021B2
66352 +:10F800002482000190C30000304400FF0085102BCB
66353 +:10F81000A0E3000024C600011440FFF924E7000122
66354 +:10F8200003E00008000000001100FFFD000020219F
66355 +:10F83000248200048CC30000304400FF0088102B99
66356 +:10F84000ACE3000024C600041440FFF924E70004E0
66357 +:10F8500003E00008000000008F83003C9382002832
66358 +:10F8600030C600FF30A500FF00431023304300FFE7
66359 +:10F870008F820014008038210043102114C0000240
66360 +:10F88000244800880083382130E20003144000053A
66361 +:10F8900030A2000314400003306200031040000D4A
66362 +:10F8A0000000000010A000090000202124820001B7
66363 +:10F8B00090E30000304400FF0085102BA1030000FE
66364 +:10F8C00024E700011440FFF92508000103E00008C7
66365 +:10F8D0000000000010A0FFFD000020212482000491
66366 +:10F8E0008CE30000304400FF0085102BAD030000C6
66367 +:10F8F00024E700041440FFF92508000403E0000891
66368 +:10F90000000000000080482130AAFFFF30C600FF41
66369 +:10F9100030E7FFFF274801808F4201B80440FFFE17
66370 +:10F920008F820048AD0200008F420124AD02000426
66371 +:10F930008D220020A5070008A102000A240200165B
66372 +:10F94000A102000B934301208D2200088D240004A6
66373 +:10F95000306300FF004310219783003A00441021D8
66374 +:10F960008D250024004310233C0308008C6331A044
66375 +:10F970008F840014A502000C246300E82402FFFF1A
66376 +:10F98000A50A000EA5030010A5060012AD0500187B
66377 +:10F99000AD020024948201142403FFF73042FFFFDC
66378 +:10F9A000AD0200288C820118AD02002C3C02100030
66379 +:10F9B000AD000030AF4201B88D220020004310247A
66380 +:10F9C00003E00008AD2200208F82001430E7FFFF23
66381 +:10F9D00000804821904200D330A5FFFF30C600FFD1
66382 +:10F9E0000002110030420F0000E238252748018054
66383 +:10F9F0008F4201B80440FFFE8F820048AD02000034
66384 +:10FA00008F420124AD0200048D220020A5070008CA
66385 +:10FA1000A102000A24020017A102000B9343012057
66386 +:10FA20008D2200088D240004306300FF0043102164
66387 +:10FA30009783003A004410218F8400140043102360
66388 +:10FA40003C0308008C6331A0A502000CA505000E44
66389 +:10FA5000246300E8A5030010A5060012AD00001401
66390 +:10FA60008D220024AD0200188C82005CAD02001CC7
66391 +:10FA70008C820058AD0200202402FFFFAD0200245A
66392 +:10FA8000948200E63042FFFFAD02002894820060BD
66393 +:10FA9000948300BE30427FFF3063FFFF00021200FC
66394 +:10FAA00000431021AD02002C3C021000AD000030DC
66395 +:10FAB000AF4201B8948200BE2403FFF700A21021D8
66396 +:10FAC000A48200BE8D2200200043102403E0000821
66397 +:10FAD000AD220020274301808F4201B80440FFFE81
66398 +:10FAE0008F8200249442001C3042FFFF000211C0AC
66399 +:10FAF000AC62000024020019A062000B3C0210005E
66400 +:10FB0000AC60003003E00008AF4201B88F87002CE2
66401 +:10FB100030C300FF8F4201B80440FFFE8F820048CF
66402 +:10FB200034636000ACA2000093820044A0A20005F0
66403 +:10FB30008CE20010A4A20006A4A300088C8200207E
66404 +:10FB40002403FFF7A0A2000A24020002A0A2000BD7
66405 +:10FB50008CE20000ACA200108CE20004ACA2001405
66406 +:10FB60008CE2001CACA200248CE20020ACA2002895
66407 +:10FB70008CE2002CACA2002C8C820024ACA20018D9
66408 +:10FB80003C021000AF4201B88C82002000431024D8
66409 +:10FB900003E00008AC8200208F86001427BDFFE838
66410 +:10FBA000AFBF0014AFB0001090C20063304200201D
66411 +:10FBB0001040000830A500FF8CC2007C2403FFDF4A
66412 +:10FBC00024420001ACC2007C90C2006300431024B8
66413 +:10FBD000A0C2006310A000238F830014275001806F
66414 +:10FBE000020028210E0015D6240600828F82001400
66415 +:10FBF000904200633042004050400019A38000440E
66416 +:10FC00008F83002C8F4201B80440FFFE8F82004892
66417 +:10FC1000AE02000024026082A60200082402000254
66418 +:10FC2000A202000B8C620008AE0200108C62000C75
66419 +:10FC3000AE0200148C620014AE0200188C62001830
66420 +:10FC4000AE0200248C620024AE0200288C620028E0
66421 +:10FC5000AE02002C3C021000AF4201B8A380004469
66422 +:10FC60008F8300148FBF00148FB000109062006368
66423 +:10FC700027BD00183042007FA06200639782003ADF
66424 +:10FC80008F86003C8F850014938300280046102344
66425 +:10FC9000A782003AA4A000E490A400638F820040F1
66426 +:10FCA000AF83003C2403FFBF0046102100832024C3
66427 +:10FCB000AF820040A0A400638F820014A04000BD6A
66428 +:10FCC0008F82001403E00008A44000BE8F8A001455
66429 +:10FCD00027BDFFE0AFB10014AFB000108F88003C2B
66430 +:10FCE000AFBF00189389001C954200E430D100FF9B
66431 +:10FCF0000109182B0080802130AC00FF3047FFFF46
66432 +:10FD00000000582114600003310600FF012030215B
66433 +:10FD1000010958239783003A0068102B1440003CD7
66434 +:10FD20000000000014680007240200018E02002079
66435 +:10FD30002403FFFB34E7800000431024AE020020C0
66436 +:10FD40002402000134E70880158200053165FFFFB9
66437 +:10FD50000E001554020020210A00169102002021F5
66438 +:10FD60000E001585020020218F8400482743018062
66439 +:10FD70008F4201B80440FFFE24020018AC6400006A
66440 +:10FD8000A062000B8F840014948200E6A46200102D
66441 +:10FD90003C021000AC600030AF4201B894820060B9
66442 +:10FDA00024420001A4820060948200603C030800A9
66443 +:10FDB0008C63318830427FFF5443000F02002021C2
66444 +:10FDC000948200602403800000431024A482006019
66445 +:10FDD0009082006090830060304200FF000211C2F8
66446 +:10FDE00000021027000211C03063007F0062182556
66447 +:10FDF000A083006002002021022028218FBF00186C
66448 +:10FE00008FB100148FB000100A0015F927BD002033
66449 +:10FE1000914200632403FF8000431025A142006348
66450 +:10FE20009782003A3048FFFF110000209383001CA6
66451 +:10FE30008F840014004B1023304600FF948300E4AD
66452 +:10FE40002402EFFF0168282B00621824A48300E439
66453 +:10FE500014A000038E020020010058210000302170
66454 +:10FE60002403FFFB34E7800000431024AE0200208F
66455 +:10FE700024020001158200053165FFFF0E001554B4
66456 +:10FE8000020020210A0016B99783003A0E0015855A
66457 +:10FE9000020020219783003A8F82003CA780003A1D
66458 +:10FEA00000431023AF82003C9383001C8F82001418
66459 +:10FEB0008FBF00188FB100148FB0001027BD002035
66460 +:10FEC00003E00008A04300BD938200442403000126
66461 +:10FED00027BDFFE8004330042C420020AFB00010E3
66462 +:10FEE000AFBF00142410FFFE10400005274501801D
66463 +:10FEF0003C0208008C4231900A0016D600461024BD
66464 +:10FF00003C0208008C423194004610241440000743
66465 +:10FF1000240600848F8300142410FFFF9062006287
66466 +:10FF20003042000F34420040A06200620E0015D63D
66467 +:10FF300000000000020010218FBF00148FB00010DD
66468 +:10FF400003E0000827BD00188F83002427BDFFE0D1
66469 +:10FF5000AFB20018AFB10014AFB00010AFBF001CBB
66470 +:10FF60009062000D00A0902130D100FF3042007F50
66471 +:10FF7000A062000D8F8500148E4300180080802140
66472 +:10FF80008CA2007C146200052402000E90A2006383
66473 +:10FF9000344200200A0016FFA0A200630E0016C51E
66474 +:10FFA000A38200442403FFFF104300472404FFFF03
66475 +:10FFB00052200045000020218E4300003C0200102A
66476 +:10FFC00000621024504000043C020008020020217E
66477 +:10FFD0000A00170E24020015006210245040000988
66478 +:10FFE0008E45000002002021240200140E0016C5D8
66479 +:10FFF000A38200442403FFFF104300332404FFFFC7
66480 +:020000021000EC
66481 +:100000008E4500003C02000200A2102410400016A1
66482 +:100010003C0200048F8600248CC200148CC30010A4
66483 +:100020008CC40014004310230044102B50400005E2
66484 +:10003000020020218E43002C8CC2001010620003AD
66485 +:10004000020020210A00173F240200123C02000493
66486 +:1000500000A210245040001C00002021020020219A
66487 +:100060000A00173F2402001300A2102410400006CB
66488 +:100070008F8300248C620010504000130000202168
66489 +:100080000A001739020020218C6200105040000441
66490 +:100090008E42002C020020210A00173F240200118A
66491 +:1000A00050400009000020210200202124020017F6
66492 +:1000B0000E0016C5A38200442403FFFF1043000274
66493 +:1000C0002404FFFF000020218FBF001C8FB2001806
66494 +:1000D0008FB100148FB000100080102103E00008E1
66495 +:1000E00027BD00208F83001427BDFFD8AFB40020A8
66496 +:1000F000AFB3001CAFB20018AFB10014AFB0001026
66497 +:10010000AFBF0024906200638F91002C2412FFFF88
66498 +:100110003442004092250000A06200638E2200104D
66499 +:100120000080982130B0003F105200060360A021EB
66500 +:100130002402000D0E0016C5A38200441052005484
66501 +:100140002404FFFF8F8300148E2200188C63007C30
66502 +:1001500010430007026020212402000E0E0016C585
66503 +:10016000A38200442403FFFF104300492404FFFF3F
66504 +:1001700024040020120400048F83001490620063A2
66505 +:1001800034420020A06200638F85003410A000205C
66506 +:1001900000000000560400048F8200140260202139
66507 +:1001A0000A0017902402000A9683000A9442006015
66508 +:1001B0003042FFFF144300048F8200202404FFFD1F
66509 +:1001C0000A0017B7AF82003C3C0208008C42318C19
66510 +:1001D0000045102B14400006026020210000282159
66511 +:1001E0000E001646240600010A0017B70000202161
66512 +:1001F0002402002D0E0016C5A38200442403FFFF35
66513 +:10020000104300232404FFFF0A0017B70000202139
66514 +:10021000160400058F8400148E2300142402FFFFAF
66515 +:100220005062001802602021948200602442000184
66516 +:10023000A4820060948200603C0308008C633188D3
66517 +:1002400030427FFF5443000F0260202194820060FF
66518 +:100250002403800000431024A48200609082006088
66519 +:1002600090830060304200FF000211C2000210279C
66520 +:10027000000211C03063007F00621825A083006077
66521 +:10028000026020210E0015F9240500010000202144
66522 +:100290008FBF00248FB400208FB3001C8FB20018D2
66523 +:1002A0008FB100148FB000100080102103E000080F
66524 +:1002B00027BD00288F83001427BDFFE8AFB00010D2
66525 +:1002C000AFBF0014906200638F87002C00808021F4
66526 +:1002D000344200408CE60010A06200633C0308003A
66527 +:1002E0008C6331B030C23FFF0043102B1040004EF2
66528 +:1002F0008F8500302402FF8090A3000D004310245E
66529 +:10030000304200FF504000490200202100061382C5
66530 +:10031000304800032402000255020044020020215C
66531 +:1003200094A2001C8F85001424030023A4A20114AE
66532 +:100330008CE60000000616023042003F1043001019
66533 +:100340003C0300838CE300188CA2007C1062000642
66534 +:100350002402000E0E0016C5A38200442403FFFFF2
66535 +:10036000104300382404FFFF8F8300149062006361
66536 +:1003700034420020A06200630A0017FC8F8300242F
66537 +:1003800000C31024144300078F83002490A200624E
66538 +:100390003042000F34420020A0A20062A38800383F
66539 +:1003A0008F8300249062000D3042007FA062000D18
66540 +:1003B0008F83003410600018020020218F840030E9
66541 +:1003C0008C8200100043102B1040000924020018FA
66542 +:1003D000020020210E0016C5A38200442403FFFF63
66543 +:1003E000104300182404FFFF0A00182400002021F5
66544 +:1003F0008C820010240500010200202100431023FC
66545 +:100400008F830024240600010E001646AC62001003
66546 +:100410000A001824000020210E0015F9240500010F
66547 +:100420000A00182400002021020020212402000DCF
66548 +:100430008FBF00148FB0001027BD00180A0016C52A
66549 +:10044000A38200448FBF00148FB0001000801021E1
66550 +:1004500003E0000827BD001827BDFFC8AFB2002089
66551 +:10046000AFBF0034AFB60030AFB5002CAFB400283A
66552 +:10047000AFB30024AFB1001CAFB000188F46012805
66553 +:100480003C0308008C6331A02402FF80AF86004843
66554 +:1004900000C318213065007F03452821006218241D
66555 +:1004A0003C02000AAF43002400A2282190A200626F
66556 +:1004B00000809021AF850014304200FF000211023D
66557 +:1004C000A382003890A200BC304200021440000217
66558 +:1004D00024030034240300308F820014A3830028F7
66559 +:1004E000938300388C4200C0A3800044AF82003C5C
66560 +:1004F000240200041062031C8F84003C8E4400041C
66561 +:10050000508003198F84003C8E4200103083FFFF1F
66562 +:10051000A784003A106002FFAF8200408F8400146D
66563 +:100520002403FF809082006300621024304200FFA9
66564 +:10053000144002CF9785003A9383003824020002CA
66565 +:1005400030B6FFFF14620005000088219382002866
66566 +:100550002403FFFD0A001B19AF82003C8F82003C80
66567 +:1005600002C2102B144002A18F8400400E0014EC34
66568 +:1005700000000000938300283C040800248477983E
66569 +:10058000240200341462002EAF84002C3C0A0800C0
66570 +:100590008D4A77C82402FFFFAFA2001000803821E7
66571 +:1005A0002405002F3C09080025297398240800FF22
66572 +:1005B0002406FFFF90E2000024A3FFFF00062202B2
66573 +:1005C00000C21026304200FF0002108000491021B6
66574 +:1005D0008C420000306500FF24E7000114A8FFF5FD
66575 +:1005E0000082302600061027AFA20014AFA2001030
66576 +:1005F0000000282127A7001027A6001400C51023FB
66577 +:100600009044000324A2000100A71821304500FFF8
66578 +:100610002CA200041440FFF9A06400008FA2001077
66579 +:100620001142000724020005024020210E0016C5D9
66580 +:10063000A38200442403FFFF104300642404FFFF4F
66581 +:100640003C0208009042779C104000098F82001401
66582 +:10065000024020212402000C0E0016C5A382004493
66583 +:100660002403FFFF104300592404FFFF8F8200146E
66584 +:10067000A380001C3C0308008C63779C8C440080A2
66585 +:100680003C0200FF3442FFFF006218240083202B4D
66586 +:1006900010800008AF83003402402021240200199A
66587 +:1006A0000E0016C5A38200442403FFFF1043004739
66588 +:1006B0002404FFFF8F87003C9782003A8F85003427
66589 +:1006C000AF8700200047202310A0003BA784003AFA
66590 +:1006D0008F86001430A200030002102390C300BCD8
66591 +:1006E0003050000300B0282100031882307300014D
66592 +:1006F0000013108000A228213C0308008C6331A065
66593 +:100700008F8200483084FFFF0085202B004310219A
66594 +:1007100010800011244200888F84002C1082000E6B
66595 +:100720003C033F013C0208008C42779800431024B0
66596 +:100730003C0325001443000630E500FF8C820000D6
66597 +:10074000ACC200888C8200100A0018E9ACC2009884
66598 +:100750000E001529000030219382001C8F850014A3
66599 +:100760008F830040020238218F82003CA387001C47
66600 +:1007700094A400E4006218218F82003434841000B5
66601 +:10078000AF83004000503021A4A400E41260000EAA
66602 +:10079000AF86003C24E20004A382001C94A200E483
66603 +:1007A00024C30004AF83003C34422000A4A200E430
66604 +:1007B0000A001906000020218F820040AF80003C13
66605 +:1007C00000471021AF820040000020212414FFFFC9
66606 +:1007D000109402112403FFFF3C0808008D0877A83D
66607 +:1007E0003C0208008C4231B03C03080090637798CB
66608 +:1007F00031043FFF0082102B1040001B3067003F88
66609 +:100800003C0208008C4231A88F83004800042180FC
66610 +:1008100000621821006418213062007F0342282101
66611 +:100820003C02000C00A228213C020080344200015E
66612 +:100830003066007800C230252402FF800062102458
66613 +:10084000AF42002830640007AF4208048F820014D2
66614 +:100850000344202124840940AF460814AF850024B6
66615 +:10086000AF840030AC4301189383003824020003A6
66616 +:10087000146201CF240200012402002610E201D1FB
66617 +:1008800028E2002710400013240200322402002234
66618 +:1008900010E201CC28E200231040000824020024CA
66619 +:1008A0002402002010E201B82402002110E20147D6
66620 +:1008B000024020210A001AFB2402000B10E201C1B1
66621 +:1008C0002402002510E20010024020210A001AFB39
66622 +:1008D0002402000B10E201AE28E2003310400006B3
66623 +:1008E0002402003F2402003110E2009A024020213D
66624 +:1008F0000A001AFB2402000B10E201A5024020218D
66625 +:100900000A001AFB2402000B8F90002C3C03080005
66626 +:100910008C6331B08F8500308E0400100000A82158
66627 +:100920008CB3001430823FFF0043102B8CB10020A9
66628 +:100930005040018F0240202190A3000D2402FF802F
66629 +:1009400000431024304200FF504001890240202122
66630 +:10095000000413823042000314400185024020212C
66631 +:1009600094A3001C8F8200148E040028A443011459
66632 +:100970008CA20010026218231064000302402021A0
66633 +:100980000A00197C2402001F8F82003400621021AB
66634 +:100990000262102B104000088F83002402402021A7
66635 +:1009A000240200180E0016C5A382004410540174DE
66636 +:1009B0002404FFFF8F8300248F8400348C62001096
66637 +:1009C0000224882100441023AC6200108F8200149E
66638 +:1009D000AC7100208C4200680051102B10400009BF
66639 +:1009E0008F830030024020212402001D0E0016C516
66640 +:1009F000A38200442403FFFF104301612404FFFF8E
66641 +:100A00008F8300308E0200248C6300241043000783
66642 +:100A1000024020212402001C0E0016C5A3820044BF
66643 +:100A20002403FFFF104301562404FFFF8F8400249A
66644 +:100A30008C82002424420001AC8200241233000482
66645 +:100A40008F8200148C4200685622000E8E02000035
66646 +:100A50008E0200003C030080004310241440000D6F
66647 +:100A60002402001A024020210E0016C5A382004471
66648 +:100A70002403FFFF104301422404FFFF0A0019BAB8
66649 +:100A80008E0200143C0300800043102450400003F9
66650 +:100A90008E020014AC8000208E0200142411FFFF8F
66651 +:100AA0001051000E3C0308003C0208008C423190BB
66652 +:100AB000004310242403001B14400007A3830044B8
66653 +:100AC0000E0016C5024020211051012D2404FFFF05
66654 +:100AD0000A0019CB8E030000A38000448E0300009F
66655 +:100AE0003C02000100621024104000123C02008011
66656 +:100AF0000062102414400008024020212402001A41
66657 +:100B00000E0016C5A38200442403FFFF1043011CFE
66658 +:100B10002404FFFF02402021020028210E0016E5D8
66659 +:100B2000240600012403FFFF104301152404FFFFE6
66660 +:100B3000241500018F83002402A0302102402021CF
66661 +:100B40009462003624050001244200010A001ADFE5
66662 +:100B5000A46200368F90002C3C0308008C6331B0F7
66663 +:100B60008E13001032623FFF0043102B10400089AB
66664 +:100B70008F8400302402FF809083000D00431024F6
66665 +:100B8000304200FF104000842402000D0013138245
66666 +:100B900030420003240300011443007F2402000DAF
66667 +:100BA0009082000D30420008544000048F820034CF
66668 +:100BB000024020210A001A102402002450400004A0
66669 +:100BC0008E03000C024020210A001A102402002784
66670 +:100BD0008C82002054620006024020218E0300080F
66671 +:100BE0008C820024506200098E02001402402021F1
66672 +:100BF000240200200E0016C5A38200441054007188
66673 +:100C00002403FFFF0A001A458F8400242411FFFFEC
66674 +:100C1000145100048F860014024020210A001A405B
66675 +:100C2000240200258E0300188CC2007C1062000391
66676 +:100C30002402000E0A001A40024020218E030024E4
66677 +:100C40008C82002810620003240200210A001A404E
66678 +:100C5000024020218E0500288C82002C10A2000367
66679 +:100C60002402001F0A001A40024020218E03002C9B
66680 +:100C700014600003240200230A001A4002402021CD
66681 +:100C80008CC200680043102B104000032402002691
66682 +:100C90000A001A40024020218C82001400651821AD
66683 +:100CA0000043102B104000088F84002402402021B4
66684 +:100CB000240200220E0016C5A382004410510041F8
66685 +:100CC0002403FFFF8F8400242403FFF79082000D8C
66686 +:100CD00000431024A082000D8F8600143C030800FE
66687 +:100CE0008C6331AC8F82004894C400E08F8500246F
66688 +:100CF0000043102130847FFF000420400044102175
66689 +:100D00003043007F034320213C03000E0083202159
66690 +:100D10002403FF8000431024AF42002CA493000062
66691 +:100D20008CA2002824420001ACA200288CA2002C36
66692 +:100D30008E03002C00431021ACA2002C8E02002C4C
66693 +:100D4000ACA200308E020014ACA2003494A2003A8F
66694 +:100D500024420001A4A2003A94C600E03C0208002C
66695 +:100D60008C4231B024C4000130837FFF1462000F35
66696 +:100D700000803021240280000082302430C2FFFF36
66697 +:100D8000000213C2304200FF000210270A001A7E40
66698 +:100D9000000233C02402000D024020210E0016C5BF
66699 +:100DA000A38200440A001A84004018218F82001494
66700 +:100DB00002402021240500010E0015F9A44600E0A0
66701 +:100DC000000018210A001B16006088218F90002C5B
66702 +:100DD0003C0308008C6331B08E05001030A23FFF49
66703 +:100DE0000043102B104000612402FF808F840030EC
66704 +:100DF0009083000D00431024304200FF5040005CFF
66705 +:100E0000024020218F8200341040000B0005138225
66706 +:100E10008F8200149763000A944200603042FFFF03
66707 +:100E200014430005000513828F8200202404FFFD77
66708 +:100E30000A001AF3AF82003C304200031440000E57
66709 +:100E40000000000092020002104000058E03002402
66710 +:100E500050600015920300030A001AAF02402021DF
66711 +:100E60008C82002450620010920300030240202173
66712 +:100E70000A001AB72402000F9082000D30420008C9
66713 +:100E80005440000992030003024020212402001074
66714 +:100E90000E0016C5A38200442403FFFF1043003850
66715 +:100EA0002404FFFF92030003240200025462000C9A
66716 +:100EB000920200038F820034544000099202000322
66717 +:100EC000024020212402002C0E0016C5A3820044FB
66718 +:100ED0002403FFFF1043002A2404FFFF92020003B3
66719 +:100EE0000200282102402021384600102CC60001B3
66720 +:100EF0002C4200010E0016E5004630252410FFFFAD
66721 +:100F00001050001F2404FFFF8F8300341060001373
66722 +:100F1000024020213C0208008C42318C0043102BFF
66723 +:100F200014400007000000000000282124060001F2
66724 +:100F30000E001646000000000A001AF300002021EF
66725 +:100F40002402002D0E0016C5A38200441050000C90
66726 +:100F50002404FFFF0A001AF3000020210E0015F9F7
66727 +:100F6000240500010A001AF300002021024020217C
66728 +:100F70002402000D0E0016C5A3820044004020216B
66729 +:100F80000A001B16008088211514000E00000000C6
66730 +:100F90000E00174C024020210A001B160040882139
66731 +:100FA0000E0016C5A38200440A001B1600408821CB
66732 +:100FB00014620017022018212402002314E2000505
66733 +:100FC0002402000B0E0017C0024020210A001B164D
66734 +:100FD0000040882102402021A38200440E0016C553
66735 +:100FE0002411FFFF0A001B170220182130A500FF63
66736 +:100FF0000E001529240600019783003A8F82003CD9
66737 +:10100000A780003A00431023AF82003C0220182141
66738 +:101010001220003E9782003A2402FFFD5462003EF7
66739 +:101020008E4300208E4200048F830014005610234C
66740 +:10103000AE420004906200633042007FA062006311
66741 +:101040008E4200208F840014A780003A34420002B0
66742 +:10105000AE420020A48000E4908200632403FFBF1E
66743 +:1010600000431024A08200630A001B598E43002015
66744 +:101070009082006300621024304200FF1040002381
66745 +:101080009782003A90820088908300BD2485008872
66746 +:101090003042003F2444FFE02C820020A383001C48
66747 +:1010A00010400019AF85002C2402000100821804B2
66748 +:1010B000306200191440000C3C02800034420002EF
66749 +:1010C000006210241440000B306200201040000F1A
66750 +:1010D0009782003A90A600010240202124050001D9
66751 +:1010E0000A001B5330C60001024020210A001B5297
66752 +:1010F00024050001024020210000282124060001CF
66753 +:101100000E001646000000009782003A1440FD04CD
66754 +:101110008F8400148E4300203062000410400012BF
66755 +:101120008F84003C2402FFFB00621024AE420020AA
66756 +:10113000274301808F4201B80440FFFE8F820048A0
66757 +:10114000AC6200008F420124AC6200042402608380
66758 +:10115000A462000824020002A062000B3C021000FE
66759 +:10116000AF4201B88F84003C8F8300148FBF0034DE
66760 +:101170008FB600308FB5002C8FB400288FB30024B9
66761 +:101180008FB200208FB1001C8FB000182402000124
66762 +:1011900027BD003803E00008AC6400C030A500FFA4
66763 +:1011A0002403000124A900010069102B1040000C49
66764 +:1011B00000004021240A000100A31023004A380443
66765 +:1011C00024630001308200010069302B10400002CE
66766 +:1011D000000420420107402554C0FFF800A310235B
66767 +:1011E00003E00008010010213C020800244260A432
66768 +:1011F0003C010800AC22738C3C02080024425308D6
66769 +:101200003C010800AC2273902402000627BDFFE0D9
66770 +:101210003C010800A02273943C021EDCAFB200180F
66771 +:10122000AFB10014AFBF001CAFB0001034526F411B
66772 +:1012300000008821240500080E001B7A02202021CE
66773 +:10124000001180803C07080024E773980002160014
66774 +:1012500002071821AC6200000000282124A200012E
66775 +:101260003045FFFF8C6200002CA6000804410002FC
66776 +:10127000000220400092202614C0FFF8AC64000059
66777 +:10128000020780218E0400000E001B7A2405002036
66778 +:10129000262300013071FFFF2E2301001460FFE5BB
66779 +:1012A000AE0200008FBF001C8FB200188FB1001477
66780 +:1012B0008FB0001003E0000827BD002027BDFFD835
66781 +:1012C000AFB3001CAFB20018AFBF0020AFB1001425
66782 +:1012D000AFB000108F5101408F48014800089402C0
66783 +:1012E000324300FF311300FF8F4201B80440FFFE7C
66784 +:1012F00027500180AE1100008F420144AE0200046D
66785 +:1013000024020002A6120008A202000B240200140C
66786 +:10131000AE1300241062002528620015104000085A
66787 +:101320002402001524020010106200302402001272
66788 +:10133000106200098FBF00200A001CB58FB3001C8B
66789 +:101340001062007024020022106200378FBF00205C
66790 +:101350000A001CB58FB3001C3C0208008C4231A06F
66791 +:101360002403FF800222102100431024AF420024F6
66792 +:101370003C0208008C4231A0022210213042007F42
66793 +:10138000034218213C02000A00621821166000BCCA
66794 +:10139000AF830014906200623042000F344200308C
66795 +:1013A000A06200620A001CB48FBF00203C046000F1
66796 +:1013B0008C832C083C02F0033442FFFF00621824A7
66797 +:1013C000AC832C083C0208008C4231A08C832C0892
66798 +:1013D000244200740002108200021480006218256A
66799 +:1013E000AC832C080A001CB48FBF00203C0208000C
66800 +:1013F0008C4231A02403FF800222102100431024DC
66801 +:10140000AF4200243C0208008C4231A03C03000A99
66802 +:10141000022210213042007F03421021004310219C
66803 +:101420000A001CB3AF8200143C0208008C4231A0B9
66804 +:101430002405FF800222102100451024AF42002421
66805 +:101440003C0208008C4231A0022210213042007F71
66806 +:10145000034218213C02000A0062182190620063D6
66807 +:1014600000A21024304200FF10400085AF8300141A
66808 +:1014700024620088944300123C0208008C4231A888
66809 +:1014800030633FFF00031980022210210043102126
66810 +:101490003043007F03432021004510243C03000C0F
66811 +:1014A00000832021AF4200289082000D00A210246A
66812 +:1014B000304200FF10400072AF8400249082000D83
66813 +:1014C000304200101440006F8FBF00200E0015C87E
66814 +:1014D000000000008F4201B80440FFFE0000000041
66815 +:1014E000AE1100008F420144AE020004240200024B
66816 +:1014F000A6120008A202000BAE1300240A001CB4BE
66817 +:101500008FBF00202406FF8002261024AF42002057
66818 +:101510003C0208008C4231A031043FFF00042180CE
66819 +:101520000222102100461024AF4200243C03080090
66820 +:101530008C6331A83C0208008C4231A03227007F26
66821 +:101540000223182102221021006418213042007F5A
66822 +:101550003064007F034228213C02000A0066182400
66823 +:1015600000A22821034420213C02000C00822021FB
66824 +:10157000AF4300283C020008034718210062902175
66825 +:10158000AF850014AF8400240E0015C8010080212F
66826 +:101590008F4201B80440FFFE8F8200248F84001424
66827 +:1015A000274501809042000DACB10000A4B00006B8
66828 +:1015B000000216000002160300021027000237C2C4
66829 +:1015C00014C00016248200889442001232033FFFA8
66830 +:1015D00030423FFF14430012240260829083006374
66831 +:1015E0002402FF8000431024304200FF5040000CD2
66832 +:1015F00024026082908200623042000F3442004038
66833 +:10160000A082006224026084A4A200082402000DCB
66834 +:10161000A0A200050A001C9E3C0227002402608252
66835 +:10162000A4A20008A0A000053C02270000061C00A0
66836 +:101630000062182524020002A0A2000BACA3001037
66837 +:10164000ACA00014ACA00024ACA00028ACA0002CDE
66838 +:101650008E42004C8F840024ACA200189083000DB1
66839 +:101660002402FF8000431024304200FF1040000598
66840 +:101670008FBF00209082000D3042007FA082000DBD
66841 +:101680008FBF00208FB3001C8FB200188FB10014E1
66842 +:101690008FB000103C02100027BD002803E00008B6
66843 +:1016A000AF4201B80800343008003430080033A8D5
66844 +:1016B000080033E0080034140800343808003438D7
66845 +:1016C00008003438080033180A0001240000000024
66846 +:1016D000000000000000000D747061362E322E33C1
66847 +:1016E00000000000060203010000000000000000EE
66848 +:1016F00000000000000000000000000000000000EA
66849 +:1017000000000000000000000000000000000000D9
66850 +:1017100000000000000000000000000000000000C9
66851 +:1017200000000000000000000000000000000000B9
66852 +:1017300000000000000000000000000000000000A9
66853 +:101740000000000000000000000000000000000099
66854 +:101750000000000000000000000000001000000376
66855 +:10176000000000000000000D0000000D3C02080019
66856 +:1017700024421C003C03080024632094AC40000079
66857 +:101780000043202B1480FFFD244200043C1D080070
66858 +:1017900037BD2FFC03A0F0213C1008002610049058
66859 +:1017A0003C1C0800279C1C000E00015C000000008F
66860 +:1017B0000000000D3084FFFF308200078F85001885
66861 +:1017C00010400002248300073064FFF800853021B8
66862 +:1017D00030C41FFF03441821247B4000AF85001C48
66863 +:1017E000AF84001803E00008AF4400843084FFFF9A
66864 +:1017F000308200078F8500208F860028104000026D
66865 +:10180000248300073064FFF8008520210086182B10
66866 +:1018100014600002AF8500240086202303442821A1
66867 +:1018200034068000AF840020AF44008000A6202151
66868 +:1018300003E00008AF84003827BDFFD8AFB3001C19
66869 +:10184000AFB20018AFB00010AFBF0024AFB400209B
66870 +:10185000AFB100143C0860088D1450002418FF7FBD
66871 +:101860003C1A8000029898243672380CAD12500051
66872 +:101870008F5100083C07601C3C08600036300001B6
66873 +:10188000AF500008AF800018AF400080AF40008428
66874 +:101890008CE600088D0F08083C0760168CEC0000F1
66875 +:1018A00031EEFFF039CA00103C0DFFFF340B800011
66876 +:1018B0003C030080034B48212D440001018D282466
66877 +:1018C0003C0253533C010800AC230420AF8900388C
66878 +:1018D000AF860028AF840010275B400014A20003ED
66879 +:1018E00034E37C008CF90004032818218C7F007CF1
66880 +:1018F0008C6500783C0280003C0B08008D6B048CEA
66881 +:101900003C0A08008D4A048834520070AF85003CC0
66882 +:10191000AF9F00403C13080026731C440240A021E6
66883 +:101920008E4800008F46000038C30001306400017B
66884 +:1019300010800017AF880034028048218D2F0000EE
66885 +:101940003C0508008CA5045C3C1808008F1804585E
66886 +:1019500001E8102300A280210000C8210202402BD0
66887 +:1019600003198821022838213C010800AC30045CAE
66888 +:101970003C010800AC2704588F4E000039CD00010F
66889 +:1019800031AC00011580FFED01E04021AF8F003444
66890 +:101990008E5100003C0708008CE7045C3C0D0800F9
66891 +:1019A0008DAD04580228802300F0602100007021D2
66892 +:1019B0000190302B01AE1821006620213C01080067
66893 +:1019C000AC2C045C3C010800AC2404588F46010890
66894 +:1019D0008F47010030C92000AF860000AF87000CA0
66895 +:1019E0001120000A00C040213C1808008F18042C68
66896 +:1019F000270800013C010800AC28042C3C184000DA
66897 +:101A0000AF5801380A000196000000009749010410
66898 +:101A100000002821014550213122FFFF0162582199
66899 +:101A20000162F82B015F502130D902003C0108000F
66900 +:101A3000AC2B048C3C010800AC2A0488172000154C
66901 +:101A400024040F0010E400130000000024080D001F
66902 +:101A500010E8023B30CD000611A0FFE93C18400021
66903 +:101A6000936E00002409001031C400F01089027147
66904 +:101A700024020070108202E58F880014250F0001F7
66905 +:101A8000AF8F00143C184000AF5801380A0001968F
66906 +:101A900000000000974C01041180FFD93C18400061
66907 +:101AA00030C34000146000A1000000008F460178A0
66908 +:101AB00004C0FFFE8F87003824100800240F0008A0
66909 +:101AC0008CE30008AF500178A74F0140A7400142C6
66910 +:101AD000974E01048F86000031C9FFFF30CD000111
66911 +:101AE00011A002E1012040212531FFFE241800024F
66912 +:101AF000A75801463228FFFFA75101483C190800AA
66913 +:101B00008F39043C172002D08F8C000C30DF00206E
66914 +:101B100017E00002240400092404000130C20C0074
66915 +:101B2000240504005045000134840004A744014A00
66916 +:101B30003C1108008E3104203C1800483C10000184
66917 +:101B40000238182530CF00020070282511E000046B
66918 +:101B5000000018213C19010000B9282524030001C8
66919 +:101B600030DF000453E00005AF8300083C0600109E
66920 +:101B700000A6282524030001AF830008AF4510000C
66921 +:101B80000000000000000000000000000000000055
66922 +:101B90008F83000810600023000000008F451000B4
66923 +:101BA00004A1FFFE000000001060001E0000000005
66924 +:101BB0008F4410003C0C0020008C102410400019B1
66925 +:101BC0008F8E000031CD000211A000160000000031
66926 +:101BD000974F101415E000130000000097591008EB
66927 +:101BE0003338FFFF271100060011188200033080F0
66928 +:101BF00000C7282132300001322300031200032CD9
66929 +:101C00008CA200000000000D00C7F821AFE2000028
66930 +:101C10003C0508008CA5043024A600013C01080006
66931 +:101C2000AC2604308F6D00003402FFFFAF8D00043E
66932 +:101C30008CEC0000118202A6000020218CED000037
66933 +:101C400031AC01001180028A000000003C02080053
66934 +:101C50008C4204743C0308008C63044C3C1F080055
66935 +:101C60008FFF04703C1808008F1804480048382182
66936 +:101C70000068802100E8282B03E430210208402B73
66937 +:101C80000304882100C57021022878213C01080046
66938 +:101C9000AC30044C3C010800AC2F04483C01080067
66939 +:101CA000AC2704743C010800AC2E04708F8400182B
66940 +:101CB0000120302131290007249F000833F91FFF3C
66941 +:101CC00003594021AF84001CAF990018251B400028
66942 +:101CD000AF590084112000038F83002024C2000725
66943 +:101CE0003046FFF88F84002800C3282100A4302B41
66944 +:101CF00014C00002AF83002400A428230345602100
66945 +:101D0000340D8000018D10213C0F1000AF850020A4
66946 +:101D1000AF820038AF450080AF4F01788F88001444
66947 +:101D2000250F00010A0001EFAF8F00148F62000839
66948 +:101D30008F670000240500300007760231C300F0F1
66949 +:101D4000106500A7240F0040546FFF4C8F880014CB
66950 +:101D50008F4B01780560FFFE0000000030CA0200D2
66951 +:101D600015400003000612820000000D00061282DA
66952 +:101D7000304D0003000D4900012D18210003808023
66953 +:101D8000020D402100086080019380218E1F000019
66954 +:101D900017E00002000000000000000D8F6E00043C
66955 +:101DA00005C202BD92070006920E000592020004D1
66956 +:101DB0003C090001000E18800070F8218FED00181A
66957 +:101DC000277100082448000501A96021000830821D
66958 +:101DD000AFEC0018022020210E00059E26050014FD
66959 +:101DE000920A00068F7900043C0B7FFF000A2080D6
66960 +:101DF000009178218DF800043566FFFF0326282422
66961 +:101E000003053821ADE70004920E0005920D000491
66962 +:101E1000960C0008000E10800051C8218F2300008E
66963 +:101E2000974901043C07FFFF006758243128FFFF52
66964 +:101E3000010DF82103EC50233144FFFF01643025EC
66965 +:101E4000AF260000920300072418000110780275E5
66966 +:101E5000240F0003106F0285000000008E050010A3
66967 +:101E60002419000AA7590140A7450142921800040D
66968 +:101E70008F860000240F0001A7580144A7400146A7
66969 +:101E80009747010430D100023C050041A7470148B3
66970 +:101E900000001821A74F014A1220000330CB000494
66971 +:101EA0003C0501412403000151600005AF83000897
66972 +:101EB0003C06001000A6282524030001AF8300087B
66973 +:101EC000AF4510000000000000000000000000000E
66974 +:101ED000000000008F8A000811400004000000008C
66975 +:101EE0008F4410000481FFFE000000008F6B000093
66976 +:101EF000920800043C1108008E310444AF8B0004AA
66977 +:101F000097590104311800FF3C0E08008DCE0440A3
66978 +:101F10003325FFFF0305382102276021000010212F
66979 +:101F2000250F000A31E8FFFF0187482B01C2682115
66980 +:101F300001A9F821311000073C010800AC2C044431
66981 +:101F40003C010800AC3F0440120000038F8C0018D5
66982 +:101F50002506000730C8FFF8010C682131BF1FFFBC
66983 +:101F6000AF8C001CAF9F0018AF5F00849744010442
66984 +:101F7000035F80213084FFFF308A00071140000397
66985 +:101F8000261B4000248900073124FFF88F8200209F
66986 +:101F90008F850028008220210085702B15C000024B
66987 +:101FA000AF820024008520233C0B08008D6B048C3D
66988 +:101FB0003C0A08008D4A04880344882134038000C9
66989 +:101FC000022310213C0F1000AF840020AF820038A4
66990 +:101FD000AF440080AF4F01780A0002968F8800144A
66991 +:101FE0008F5001780600FFFE30D10200162000035A
66992 +:101FF000000612820000000D00061282305F00030E
66993 +:10200000001F1900007F302100062080009FC8219A
66994 +:1020100000194880013380218E180000130000024F
66995 +:10202000000000000000000D8F6C000C058001FB1B
66996 +:102030008F870038240E0001AE0E00008CE30008EC
66997 +:10204000A20000078F65000400055402314D00FF17
66998 +:1020500025A80005000830822CCB00411560000245
66999 +:10206000A20A00040000000D8F7800043C03FFFF6B
67000 +:1020700000E02821330BFFFF256C000B000C1082C1
67001 +:1020800000022080008748218D3F000026040014B4
67002 +:10209000A618000803E3C8240E00059EAD39000011
67003 +:1020A0008F4F01083C11100001F1382410E001AB02
67004 +:1020B00000000000974D01049208000725AAFFECDC
67005 +:1020C000350600023144FFFFA2060007960600080D
67006 +:1020D0002CC7001354E0000592030007921100077B
67007 +:1020E000362F0001A20F00079203000724180001F9
67008 +:1020F000107801C224090003106901D58F880038C7
67009 +:1021000030CBFFFF257100020011788331E400FF1E
67010 +:1021100000042880A20F000500A848218D2D000092
67011 +:10212000974A01043C0EFFFF01AEF8243143FFFF44
67012 +:10213000006B1023244CFFFE03ECC825AD390000D2
67013 +:10214000920600053C03FFF63462FFFF30D800FF23
67014 +:102150000018388000F08821922F00143C04FF7F83
67015 +:102160003487FFFF31EE000F01C65821316500FFB3
67016 +:1021700000055080015068218DAC00200148F821F5
67017 +:10218000A20B00060182C824AE0C000CAFF9000CB3
67018 +:10219000920900068E11000C032778240009C080E4
67019 +:1021A0000310702195C60026030828210227202449
67020 +:1021B000AE04000CADCF0020ADC60024ACA60010CC
67021 +:1021C0008F8800003C0B08008D6B048C3C0A0800D3
67022 +:1021D0008D4A0488241F001024190002A75F0140C3
67023 +:1021E000A7400142A7400144A7590146974901046D
67024 +:1021F00024070001310600022538FFFEA7580148D8
67025 +:102200003C050009A747014A10C00003000018213F
67026 +:102210003C05010924030001310C00045180000534
67027 +:10222000AF8300083C08001000A828252403000103
67028 +:10223000AF830008AF451000000000000000000060
67029 +:1022400000000000000000009205000424AE00021F
67030 +:1022500031CD0007000D182330620007AE020010D8
67031 +:102260008F90000812000004000000008F4F100043
67032 +:1022700005E1FFFE000000008F7100008F8E001846
67033 +:102280003C0308008C630444AF91000497450104AB
67034 +:1022900025CF001031E61FFF30A2FFFFAF8E001CDC
67035 +:1022A000AF860018AF4600842449FFFE3C0C0800AE
67036 +:1022B0008D8C0440974D010401208021000947C303
67037 +:1022C0000070C02131A9FFFF0310F82B0188C8213D
67038 +:1022D000033F202103463821313100073C0108002B
67039 +:1022E000AC3804443C010800AC2404401220000334
67040 +:1022F00024FB40002527000730E9FFF88F860020E7
67041 +:102300008F8400280126382100E4C02B170000022A
67042 +:10231000AF86002400E438230347202134198000CD
67043 +:10232000009910213C0F1000AF870020AF820038C9
67044 +:10233000AF470080AF4F01780A0002968F880014E3
67045 +:102340009747010410E0FDAE3C1840008F5801781B
67046 +:102350000700FFFE30C5400010A000033C1F00082E
67047 +:102360000000000D3C1F0008AF5F01402410080072
67048 +:102370008F860000AF5001789744010430D90001E6
67049 +:10238000132000ED3086FFFF24CCFFFE240D000259
67050 +:10239000A74D0146A74C01488F9100182408000D55
67051 +:1023A000A748014A8F630000262F000831E21FFF73
67052 +:1023B0000342702130C90007AF830004AF91001CB5
67053 +:1023C000AF82001800C03821AF4200841120000302
67054 +:1023D00025DB400024D800073307FFF88F85002055
67055 +:1023E0008F84002800E5302100C4382B14E000025F
67056 +:1023F000AF85002400C430238F8400140346F821E5
67057 +:10240000340C8000AF86002003EC8021AF460080B2
67058 +:10241000249900013C0610003C184000AF460178AA
67059 +:10242000AF900038AF990014AF5801380A000196F8
67060 +:10243000000000008F630000975101043067FFFF28
67061 +:102440003228FFFF8F4F017805E0FFFE30EC0007D8
67062 +:10245000000CF82333F0000724F9FFFE2404000ADF
67063 +:10246000A7440140A7500142A7590144A740014693
67064 +:10247000A74801488F45010830B800201700000226
67065 +:10248000240300092403000130CD0002A743014AC0
67066 +:102490003C04004111A00003000018213C0401414C
67067 +:1024A0002403000130C9000451200005AF83000857
67068 +:1024B0003C0600100086202524030001AF8300089D
67069 +:1024C000AF44100000000000000000000000000009
67070 +:1024D000000000008F8E000811C000040000000002
67071 +:1024E0008F4210000441FFFE000000008F7F0000BB
67072 +:1024F000276400088F91003CAF9F0004948500087A
67073 +:102500009490000A9499000C30AFFFFF0010C400B3
67074 +:102510003323FFFF11F100A6030320253C0E080022
67075 +:102520008DCE04443C0C08008D8C044000E88821CA
67076 +:102530002626FFFE01C628210000682100A6F82BF0
67077 +:10254000018D2021009F80213C010800AC2504441E
67078 +:102550003C010800AC30044024E200083042FFFF98
67079 +:102560003047000710E000038F830018244F000756
67080 +:1025700031E2FFF83106FFFF30C800070043802139
67081 +:1025800032191FFF0359C021AF83001CAF990018F7
67082 +:10259000271B4000AF590084110000038F8C0020DE
67083 +:1025A00024C5000730A6FFF88F84002800CC28211E
67084 +:1025B00000A4F82B17E00002AF8C002400A428230D
67085 +:1025C000AF850020AF4500803C0408008C840434B3
67086 +:1025D00003454821340E8000012E6821108000053B
67087 +:1025E000AF8D0038939100172406000E12260011BB
67088 +:1025F0002407043F3C021000AF4201788F8800148A
67089 +:10260000250F00010A0001EFAF8F00140E0005C472
67090 +:1026100000E020218F8800143C0B08008D6B048C97
67091 +:102620003C0A08008D4A0488250F00010A0001EFCA
67092 +:10263000AF8F00143C021000A7470148AF42017859
67093 +:102640000A0004CE8F88001424040F001184003D7A
67094 +:1026500030CE002015C0000224030009240300012D
67095 +:102660000A00021AA743014A0A00020DA7400146C8
67096 +:1026700094EF000894F1000A94F0000C8F8C003C59
67097 +:10268000001174003207FFFF31EDFFFF11AC00377E
67098 +:1026900001C720253C1808008F1804443C0F08008F
67099 +:1026A0008DEF0440000080210308682101A8382B29
67100 +:1026B00001F0702101C760213C010800AC2D0444E9
67101 +:1026C0003C010800AC2C04400A00027A8F840018F8
67102 +:1026D0003C0208008C42047C3C0308008C630454D8
67103 +:1026E0003C1F08008FFF04783C1808008F18045026
67104 +:1026F000004838210068802100E8282B03E43021BD
67105 +:102700000208402B0304882100C57021022878218B
67106 +:102710003C010800AC3004543C010800AC2F0450CC
67107 +:102720003C010800AC27047C3C010800AC2E047876
67108 +:102730000A00027A8F840018A74001460A00043577
67109 +:102740008F91001830CD002015A0FFC52403000D87
67110 +:10275000240300050A00021AA743014A974E010408
67111 +:1027600025C5FFF00A00038130A4FFFF8F980040C9
67112 +:102770001498FFC8000010213C0508008CA5046CCB
67113 +:102780003C1F08008FFF046800A8C8210328302BD5
67114 +:1027900003E22021008640213C010800AC39046C92
67115 +:1027A0003C010800AC2804680A00027A8F840018F3
67116 +:1027B0008F8C0040148CFF5900E8C8213C18080099
67117 +:1027C0008F18046C3C1108008E3104682723FFFE2B
67118 +:1027D00003034821000010210123302B0222702125
67119 +:1027E00001C668213C010800AC29046C3C010800CA
67120 +:1027F000AC2D04680A0004A524E200088F88003884
67121 +:102800003C03FFFF8D02000C0043F82403E4C825BD
67122 +:10281000AD19000C0A00038F30CBFFFF0A0003C381
67123 +:10282000AE000000974A0104920400048E26000CBA
67124 +:10283000014458212579FFF200C7C0243325FFFF4A
67125 +:1028400003053825AE27000C0A0002E68E050010AD
67126 +:102850003C0DFFFF8D0A0010014D582401646025D6
67127 +:10286000AD0C00100A00038F30CBFFFF974301042B
67128 +:10287000920E00048E290010006E1021244DFFEEF0
67129 +:102880000127602431A8FFFF0188F825AE3F001022
67130 +:102890000A0002E68E0500108E0F000CAE0000004C
67131 +:1028A00000078880023028210A0002B8ACAF00205F
67132 +:1028B0001460000D3058FFFF3C04FFFF0044682403
67133 +:1028C00001A47026000E602B000D102B004CF82484
67134 +:1028D00013E00002000000000000000D8CAF0000BB
67135 +:1028E0000A00025001E410253B03FFFF0003882B80
67136 +:1028F0000018802B0211202410800002000000002C
67137 +:102900000000000D8CB900000A0002503722FFFFC2
67138 +:102910003084FFFF30A5FFFF108000070000182162
67139 +:10292000308200011040000200042042006518219E
67140 +:102930001480FFFB0005284003E000080060102120
67141 +:1029400010C00007000000008CA2000024C6FFFF9A
67142 +:1029500024A50004AC82000014C0FFFB2484000402
67143 +:1029600003E000080000000010A0000824A3FFFFFF
67144 +:10297000AC86000000000000000000002402FFFF01
67145 +:102980002463FFFF1462FFFA2484000403E00008BC
67146 +:1029900000000000308EFFFF30D8FFFF00057C00F4
67147 +:1029A00001F8602539CDFFFF01AC5021014C582BB7
67148 +:1029B000014B4821000944023127FFFF00E8302184
67149 +:1029C0000006240230C5FFFF00A418213862FFFF73
67150 +:1029D00003E000083042FFFF3C0C08008D8C0484AB
67151 +:1029E000240BFF8027BDFFD001845021014B4824D8
67152 +:1029F000AF4900203C0808008D080484AFB20020D5
67153 +:102A0000AFB00018AFBF0028AFB30024AFB1001CB7
67154 +:102A1000936600040104382130E4007F009A1021FD
67155 +:102A20003C0300080043902130C500200360802152
67156 +:102A30003C080111277B000814A000022646007004
67157 +:102A40002646006C9213000497510104920F000473
67158 +:102A50003267000F322EFFFF31ED004001C72823FF
67159 +:102A600011A0000500004821925900BC3338000431
67160 +:102A70001700009000000000924300BC307F00046B
67161 +:102A800013E0000F0000000010A0000D0000000087
67162 +:102A9000960E0002240AFF8000A7602125CDFFFECC
67163 +:102AA000A74D1016920B0004014B2024308200FF2A
67164 +:102AB00010400085010C40253C0F0400010F40250B
67165 +:102AC0008F5301780660FFFE2404000AA7440140EA
67166 +:102AD000960D00022404000931AC0007000C5823B5
67167 +:102AE000316A0007A74A0142960200022443FFFE12
67168 +:102AF000A7430144A7400146975F0104A75F01482F
67169 +:102B00008F590108333800205300000124040001CC
67170 +:102B1000920F000431EE001015C000023483001043
67171 +:102B200000801821A743014A0000000000000000B7
67172 +:102B30000000000000000000AF481000000000008E
67173 +:102B40000000000000000000000000008F51100095
67174 +:102B50000621FFFE3113FFFF12600003000000009A
67175 +:102B60008F481018ACC8000096030006307FFFFFA6
67176 +:102B700027F900020019988200138880023B302157
67177 +:102B80008CD800001520005700183402920300046E
67178 +:102B90002405FF8000A3F82433F100FF1220002C4D
67179 +:102BA00000000000924700BC30F2000212400028F2
67180 +:102BB00000000000974B100C2562FFFEA742101684
67181 +:102BC000000000003C0A040035490030AF49100005
67182 +:102BD00000000000000000000000000000000000F5
67183 +:102BE0008F4C10000581FFFE000000009749100C7B
67184 +:102BF0008F51101C00C020213127FFFF24F200302C
67185 +:102C0000001218820003288000BBF8213226FFFF43
67186 +:102C1000AFF100000E0005B300112C020013C880B4
67187 +:102C2000033B98218E78000000027400AFB80010BA
67188 +:102C30008FA80010310FFFFFAFAF00108FA400105E
67189 +:102C400001C46825AFAD00108FA60010AE6600006D
67190 +:102C500097730008976D000A9766000C8F8A003CF6
67191 +:102C6000000D5C0030CCFFFF3262FFFF104A0036DF
67192 +:102C7000016C2025960600023C10100024D30008A9
67193 +:102C80000E00013B3264FFFF974C01040E00014926
67194 +:102C90003184FFFFAF5001788FBF00288FB300242D
67195 +:102CA0008FB200208FB1001C8FB0001803E0000825
67196 +:102CB00027BD003010A0FF700000000024A5FFFC1D
67197 +:102CC0000A0005EC240900048CD10000AF51101853
67198 +:102CD0008F5301780660FF7A2404000A0A00060177
67199 +:102CE0000000000000A7C8218F8800388F4E101CFC
67200 +:102CF0000019C0820018788001E82021AC8E000005
67201 +:102D0000000E2C0200C020210E0005B331C6FFFFCB
67202 +:102D1000023B28218CAD000000025400004030210D
67203 +:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8
67204 +:102D30008FA2001001424825AFA900108FA70010F4
67205 +:102D40000A000631ACA700008F8F0040148FFFC926
67206 +:102D50000000000097420104960B00023C050800A9
67207 +:102D60008CA5046C3049FFFF316AFFFF3C1108005D
67208 +:102D70008E310468012A382124F2FFFE00B240217E
67209 +:102D80000012FFC30112C82B023FC02103192021EA
67210 +:102D90003C010800AC28046C3C010800AC24046829
67211 +:102DA0000A00066B0000000000A4102B1040000970
67212 +:102DB000240300010005284000A4102B04A00003F8
67213 +:102DC000000318405440FFFC000528401060000735
67214 +:102DD000000000000085302B14C0000200031842E0
67215 +:102DE000008520231460FFFB0005284203E0000853
67216 +:102DF000008010218F85002C27BDFFE800053027BB
67217 +:102E00002CC300012CA400020083102510400003F5
67218 +:102E1000AFBF00102405007FAF85002C00052827D8
67219 +:102E200030A5FFFF0E000592240426F58F830030A5
67220 +:102E3000240402BD004030210083382B10E000093B
67221 +:102E400024050001000420400083102B04800003AF
67222 +:102E5000000528405440FFFC0004204010A000085A
67223 +:102E600000C350210064402B1500000200052842D9
67224 +:102E70000064182314A0FFFB0004204200C350216B
67225 +:102E80008FBF0010000A4C02312200FF27BD00183E
67226 +:102E9000AF8A002C03E00008AF8900300A00002A46
67227 +:102EA00000000000000000000000000D7478703683
67228 +:102EB0002E322E3300000000060203000000000046
67229 +:102EC000000001360000EA60000000000000000081
67230 +:102ED00000000000000000000000000000000000F2
67231 +:102EE00000000000000000000000000000000000E2
67232 +:102EF00000000000000000000000000000000016BC
67233 +:102F000000000000000000000000000000000000C1
67234 +:102F100000000000000000000000000000000000B1
67235 +:102F200000000000000000000000000000000000A1
67236 +:102F3000000000000000138800000000000005DC15
67237 +:102F4000000000000000000010000003000000006E
67238 +:102F50000000000D0000000D3C02080024423C204F
67239 +:102F60003C03080024633DD4AC4000000043202B08
67240 +:102F70001480FFFD244200043C1D080037BD7FFC87
67241 +:102F800003A0F0213C100800261000A83C1C0800FB
67242 +:102F9000279C3C200E0002BA000000000000000D3B
67243 +:102FA0008F8300383C088000350700708CE50000F6
67244 +:102FB000008330253C02900000C22025AF85003000
67245 +:102FC000AF4400208F4900200520FFFE3C03800015
67246 +:102FD000346200708C4500008F8600303C19080078
67247 +:102FE0008F39007C3C0E08008DCE007800A620238F
67248 +:102FF00003245821000078210164682B01CF60214F
67249 +:10300000018D50213C010800AC2B007C3C010800E4
67250 +:10301000AC2A007803E00008000000000A0000412C
67251 +:10302000240400018F8400383C05800034A2000194
67252 +:103030000082182503E00008AF43002003E00008E9
67253 +:10304000000010213084FFFF30A5FFFF1080000733
67254 +:1030500000001821308200011040000200042042CC
67255 +:10306000006518211480FFFB0005284003E00008DC
67256 +:103070000060102110C00007000000008CA20000BA
67257 +:1030800024C6FFFF24A50004AC82000014C0FFFB8F
67258 +:103090002484000403E000080000000010A00008E1
67259 +:1030A00024A3FFFFAC860000000000000000000029
67260 +:1030B0002402FFFF2463FFFF1462FFFA248400044C
67261 +:1030C00003E0000800000000308AFFFF93A800130F
67262 +:1030D000A74A014497490E1630C600FF3C02100073
67263 +:1030E000A7490146AF450148A3460152A748015AE6
67264 +:1030F000AF4701608FA400188FA30014A7440158A4
67265 +:10310000AF43015403E00008AF42017803E0000838
67266 +:10311000000000003C038000346200708C49000015
67267 +:103120008F8800002484000727BDFFF83084FFF853
67268 +:10313000AF890030974D008A31ACFFFFAFAC000083
67269 +:103140008FAB0000016850232547FFFF30E61FFFCB
67270 +:1031500000C4282B14A0FFF73C0C8000358B0070B6
67271 +:103160008D6A00003C0708008CE700843C060800DC
67272 +:103170008CC6008000081082014918230002788064
67273 +:1031800000E370210000202101C3C82B00C4C0212E
67274 +:1031900001FA4021031948212502400027BD0008FB
67275 +:1031A0003C010800AC2E00843C010800AC290080E2
67276 +:1031B00003E00008000000008F8200002486000762
67277 +:1031C00030C5FFF800A2182130641FFF03E000089B
67278 +:1031D000AF8400008F8700388F8A004027BDFFB87A
67279 +:1031E0008F860044AFB60040AFBF0044AFB5003C8F
67280 +:1031F000AFB40038AFB30034AFB20030AFB1002C81
67281 +:10320000AFB000288F4501048D4900ACAF47008066
67282 +:103210008CC8002000A938230000B021AF480E1050
67283 +:103220008F440E1000004821AF440E148CC20024BD
67284 +:10323000AF420E188F430E18AF430E1C10E001254D
67285 +:103240002D230001936B0008116000D400000000E2
67286 +:10325000976E001031CDFFFF00ED602B158000CF81
67287 +:103260000000000097700010320FFFFFAF4F0E00FC
67288 +:103270008F520000325100081220FFFD00000000B4
67289 +:1032800097540E088F460E043285FFFF30B30001BD
67290 +:1032900012600132000000000000000D30B8A040B4
67291 +:1032A00024150040131500C030A9A0001120012DE5
67292 +:1032B00000000000937F000813E0000800000000F9
67293 +:1032C00097630010306BFFFF00CB402B1100000311
67294 +:1032D00030AC00401180012300000000A785003CB5
67295 +:1032E000AF8600349366000800E02821AFA70020D5
67296 +:1032F00014C0012427B30020AF60000C9782003C6B
67297 +:103300003047400014E00002240300162403000E9E
67298 +:1033100024194007A363000AAF790014938A003E82
67299 +:103320008F740014315800070018AA4002959025A8
67300 +:10333000AF7200149784003C8F700014309100101D
67301 +:1033400002117825AF6F0014978E003C31CD000834
67302 +:1033500011A00147000028218F6700143C021000D3
67303 +:103360003C0C810000E22825AF65001497460E0A48
67304 +:103370002408000E3405FFFC30C3FFFF006C582505
67305 +:10338000AF6B0004A3680002937F000A27E90004E2
67306 +:10339000A369000A9786003C9363000A30CC1F00A3
67307 +:1033A000000C598301634021251F0028A37F0009D9
67308 +:1033B00097490E0CA769001093790009272A00028B
67309 +:1033C000315800070018A82332B10007A371000B81
67310 +:1033D00093740009976400108F910034978F003C1C
67311 +:1033E000329200FF024480210205702131ED00403D
67312 +:1033F00011A0000531C4FFFF0091282B3C12800072
67313 +:1034000010A000140000A0210224382B14E0011B9E
67314 +:103410008FA500208F4D0E14AF4D0E108F420E1C45
67315 +:10342000AF420E18AF440E008F4F000031EE00087F
67316 +:1034300011C0FFFD0000000097540E080080882195
67317 +:1034400000009021A794003C8F500E04241400012A
67318 +:10345000AF900034976400103095FFFF8E68000035
67319 +:103460000111F82317E00009AE7F00008F650014FA
67320 +:103470008F8B004434A60040AF6600148F4C0E10B2
67321 +:10348000AD6C00208F430E18AD63002493670008D5
67322 +:1034900014E000D2000000000E00009E2404001082
67323 +:1034A0008F8900483C08320000402821312600FF67
67324 +:1034B0000006FC0003E8502525390001AF990048BB
67325 +:1034C000AC4A0000937800099370000A330400FFAF
67326 +:1034D00000047400320F00FF01CF6825AC4D0004DA
67327 +:1034E0008F820048064000EAACA20008ACA0000CA5
67328 +:1034F0009783003C306B0008156000022628000608
67329 +:1035000026280002974E0E148F450E1C8F6700046C
67330 +:10351000936D000231C4FFFF31A200FFAFA2001083
67331 +:103520008F6C0014AFA800180E00008BAFAC001415
67332 +:10353000240400100E0000C7000000008E7200007E
67333 +:1035400016400005000000008F6400142405FFBF32
67334 +:1035500000859824AF7300148F79000C033538214F
67335 +:10356000AF67000C9375000816A00008000000006B
67336 +:1035700012800006000000008F7F00143C0BEFFF5C
67337 +:103580003568FFFE03E84824AF690014A3740008FF
67338 +:103590008FA500200A00024602202021AF470E001E
67339 +:1035A0000A0000F5000000008F5901780720FFFE97
67340 +:1035B000241F08008F840000AF5F0178974B008ABA
67341 +:1035C000316AFFFF014448232528FFFF31021FFF16
67342 +:1035D0002C4300081460FFF9000000008F8E0048A3
67343 +:1035E0008F8D003800C048210344202125C60001EA
67344 +:1035F000240C0F00AF86004800E9382324864000E1
67345 +:1036000031CA00FF11AC0005240800019391003E6F
67346 +:103610003230000700107A4035E80001000AAC00A3
67347 +:103620003C18010002B8A025AC9440008F930048DC
67348 +:1036300030B2003630A40008ACD3000410800097EC
67349 +:1036400001123025974E0E0A8F8D00003C0281003A
67350 +:1036500031CCFFFF25AB0008018240253C03100060
67351 +:1036600031651FFF25390006241F000EAF48016099
67352 +:1036700000C33025A75F015AAF850000A759015844
67353 +:1036800014E0000A8F93003824120F0052720002D7
67354 +:103690002416000134C600408F580E108F94004449
67355 +:1036A000AE9800208F550E18AE9500248F450E144D
67356 +:1036B000AF4501448F590E1CAF590148A34A01522E
67357 +:1036C0003C0A1000AF460154AF4A017814E0FEDD19
67358 +:1036D0002D2300010076A025128000178FBF004423
67359 +:1036E0008F84003824160F0010960084000000001C
67360 +:1036F0008F45017804A0FFFE24150F001095006E81
67361 +:10370000000000008F470E14240202403C1F1000EE
67362 +:10371000AF4701448F440E1CAF440148A3400152FF
67363 +:10372000A740015AAF400160A7400158AF42015481
67364 +:10373000AF5F01788FBF00448FB600408FB5003C6B
67365 +:103740008FB400388FB300348FB200308FB1002CAB
67366 +:103750008FB0002803E0000827BD004814C0FED049
67367 +:1037600030B8A0408F420E148F84004400004821DE
67368 +:10377000AC8200208F510E1CAC9100240A00020E76
67369 +:103780002D2300018F910034978A003C3C12800069
67370 +:103790000220A821315800401700FF300000A0216E
67371 +:1037A000976900108F9200343139FFFF13320035D2
67372 +:1037B00000002021008048211480FEA000A03821B4
67373 +:1037C0008F420E148F840044AC8200208F510E1C57
67374 +:1037D000AC9100240A00020E2D230001936A000917
67375 +:1037E0009378000B315000FF330F00FF020F702160
67376 +:1037F00025C2000A3050FFFF0E00009E020020216B
67377 +:103800008F8600483C1F410024CD0001AF8D004849
67378 +:10381000936C000930C600FF00064400318300FFAE
67379 +:10382000246B0002010B4825013FC825AC5900005C
67380 +:103830008F67000C97440E1400F22825AC45000455
67381 +:103840008F450E1C8F670004936A00023084FFFFCF
67382 +:10385000315800FFAFB800108F6F0014AFB10018DF
67383 +:103860000E00008BAFAF00140A0001A60200202159
67384 +:10387000AF6000040A00013EA36000020A00024695
67385 +:1038800000002021000090210A0001702414000192
67386 +:103890003C1280000A000195ACB2000C8F91000030
67387 +:1038A00025240002A744015826300008320F1FFFCC
67388 +:1038B0000A0001F9AF8F0000AF40014C1120002C2D
67389 +:1038C000000000008F590E10AF5901448F430E18AD
67390 +:1038D000240200403C1F1000AF430148A3400152A6
67391 +:1038E000A740015AAF400160A7400158AF420154C0
67392 +:1038F000AF5F01780A0002278FBF00441120000645
67393 +:103900000000000097460E0830CC004015800002F1
67394 +:10391000000000000000000D8F4D017805A0FFFEA3
67395 +:103920000000000097530E103C120500240E2000EA
67396 +:10393000326AFFFF0152C025AF58014C8F4F0E1461
67397 +:103940003C021000AF4F01448F500E1CAF50014895
67398 +:10395000A34001528F840038A740015AAF40016054
67399 +:10396000A7400158AF4E01540A000215AF4201783A
67400 +:103970008F490E14AF4901448F430E1C0A00028E7A
67401 +:10398000240200403C0E20FF27BDFFE03C1A8000CF
67402 +:103990003C0F800835CDFFFDAFBF001CAFB2001853
67403 +:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC
67404 +:1039B0000000000000000000000000000000000007
67405 +:1039C000000000003C0C00FF358BFFFDAF4B0E00EC
67406 +:1039D0003C0660048CC95000240AFF7F3C11600043
67407 +:1039E000012A40243507380CACC750008E24043817
67408 +:1039F00024050009AF4500083083FFFF38622F71AE
67409 +:103A00002450C0B3AF8000480E000068AF800000B3
67410 +:103A100052000001AE20442C0E0004353C11800001
67411 +:103A20000E000ED9363000708F8A00403C1208001C
67412 +:103A300026523C88020088218E0800008F5F00001B
67413 +:103A40003BF900013338000113000017AF88003044
67414 +:103A5000022048218D2700003C0F08008DEF006CEC
67415 +:103A60003C0C08008D8C006800E8C02301F8282178
67416 +:103A70000000682100B8302B018D582101664021DB
67417 +:103A80003C010800AC25006C3C010800AC28006833
67418 +:103A90008F44000038830001306200011440FFEDC4
67419 +:103AA00000E04021AF8700308E0C00003C0508008C
67420 +:103AB0008CA5006C3C0408008C84006801883023CD
67421 +:103AC00000A638210000102100E6402B00821821BA
67422 +:103AD0000068F8213C010800AC27006C3C0108009C
67423 +:103AE000AC3F00688F49010025590088AF99004418
67424 +:103AF000AF890038AF4900208E070000AF87003043
67425 +:103B00008F4D017805A0FFFE000000008E0600002A
67426 +:103B10003C0B08008D6B00743C0408008C84007022
67427 +:103B200000C728230165F8210000102103E5402B80
67428 +:103B30000082382100E8C821240908003C0108005F
67429 +:103B4000AC3F00743C010800AC390070AF4901780B
67430 +:103B500093580108A398003E938F003E31EE000178
67431 +:103B600015C000158F830038240E0D00106E00194B
67432 +:103B7000240F0F00106F001D00000000915900007D
67433 +:103B800024180050332900FF113800043C1F400066
67434 +:103B9000AF5F01380A0002E7000000000E00090EC6
67435 +:103BA000000000008F8A00403C1F4000AF5F0138DA
67436 +:103BB0000A0002E700000000938D003E31AC0006D1
67437 +:103BC000000C51000E0000CE0152D8210A00034320
67438 +:103BD0008F8A00403C1B0800277B3D080E0000CE6A
67439 +:103BE000000000000A0003438F8A00403C1B0800CD
67440 +:103BF000277B3D280E0000CE000000000A00034392
67441 +:103C00008F8A004090AA00018FAB00108CAC00108E
67442 +:103C10003C0300FF8D680004AD6C00208CAD0014E7
67443 +:103C200000E060213462FFFFAD6D00248CA7001816
67444 +:103C30003C09FF000109C024AD6700288CAE001CC0
67445 +:103C40000182C82403197825AD6F0004AD6E002CE5
67446 +:103C50008CAD0008314A00FFAD6D001C94A9000234
67447 +:103C60003128FFFFAD68001090A70000A56000029A
67448 +:103C7000A1600004A167000090A30002306200FF71
67449 +:103C80000002198210600005240500011065000E75
67450 +:103C90000000000003E00008A16A00018CD80028A1
67451 +:103CA000354A0080AD7800188CCF0014AD6F001439
67452 +:103CB0008CCE0030AD6E00088CC4002CA16A0001CF
67453 +:103CC00003E00008AD64000C8CCD001CAD6D001845
67454 +:103CD0008CC90014AD6900148CC80024AD680008BC
67455 +:103CE0008CC70020AD67000C8CC200148C8300646C
67456 +:103CF0000043C82B13200007000000008CC20014F2
67457 +:103D0000144CFFE400000000354A008003E0000886
67458 +:103D1000A16A00018C8200640A000399000000007F
67459 +:103D200090AA000027BDFFF88FA9001CA3AA0000DD
67460 +:103D30008FAE00003C0FFF808FA8001835E2FFFF18
67461 +:103D40008CCD002C01C26024AFAC0000A120000487
67462 +:103D500000E06021A7A000028FB800008D270004BA
67463 +:103D60000188182100A0582100C05021006D28268C
67464 +:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E
67465 +:103D800034D9FFFF3C02FF0003193024000D1DC091
67466 +:103D9000010EC82400E2C02400C370250319782551
67467 +:103DA000AD2E0000AD2F00048D450024AFAE000005
67468 +:103DB000AD2500088D4D00202405FFFFAD2D000C22
67469 +:103DC000956800023107FFFFAD27001091660018CB
67470 +:103DD00030C200FF000219C2506000018D4500345E
67471 +:103DE000AD2500148D67000827BD0008AD27001C15
67472 +:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA
67473 +:103E0000AD20001803E00008AD20002027BDFFE032
67474 +:103E1000AFB20018AFB10014AFB00010AFBF001CBC
67475 +:103E20009098000000C088213C0D00FF330F007FF8
67476 +:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0
67477 +:103E4000A0CE000194A6001EA22000048CAB00149A
67478 +:103E50008E29000400A08021016C2824012A40241E
67479 +:103E60000080902101052025A6260002AE24000432
67480 +:103E700026050020262400080E00007624060002F5
67481 +:103E800092470000260500282624001400071E0083
67482 +:103E90000003160324060004044000032403FFFF6C
67483 +:103EA000965900023323FFFF0E000076AE23001068
67484 +:103EB000262400248FBF001C8FB200188FB100147D
67485 +:103EC0008FB0001024050003000030210A0000809C
67486 +:103ED00027BD002027BDFFD8AFB1001CAFB0001830
67487 +:103EE000AFBF002090A80000240200018FB0003C6A
67488 +:103EF0003103003F00808821106200148FAA00382F
67489 +:103F0000240B0005506B0016AFAA001000A0202162
67490 +:103F100000C028210E0003DC02003021922400BCE6
67491 +:103F2000308300021060000326060030ACC00000A1
67492 +:103F300024C600048FBF00208FB1001C8FB0001872
67493 +:103F400000C0102103E0000827BD002801403821EF
67494 +:103F50000E00035AAFB000100A0004200000000059
67495 +:103F60000E0003A1AFB000140A00042000000000FE
67496 +:103F70003C02000A034218213C04080024843D6CE2
67497 +:103F80002405001A000030210A000080AF8300548D
67498 +:103F90003C038000346200708C48000000A058216F
67499 +:103FA00000C04821308A00FFAF8800308F4401787C
67500 +:103FB0000480FFFE3C0C8000358600708CC500003C
67501 +:103FC0003C0308008C6300743C1808008F180070D4
67502 +:103FD00000A82023006468210000C82101A4782BD8
67503 +:103FE0000319702101CF60213C010800AC2D007441
67504 +:103FF0003C010800AC2C00708F480E14AF480144FF
67505 +:10400000AF47014CA34A0152A74B01589346010800
67506 +:1040100030C5000854A0000135291000934B090059
67507 +:1040200024070050316A00FF11470007000000001C
67508 +:104030008F450E1CAF450148AF4901543C091000A3
67509 +:1040400003E00008AF490178934D010831A800084A
67510 +:104050001100001000000000934F010831EE001025
67511 +:1040600051C00001352900083C04080090843DD06F
67512 +:10407000A34401508F4309A4AF4301488F4209A0D4
67513 +:10408000AF420144AF4901543C09100003E000086D
67514 +:10409000AF4901783C1908008F393D8C333800084E
67515 +:1040A0005700FFF1352900080A00047300000000E2
67516 +:1040B00024070040AF470814AF4008108F4209445E
67517 +:1040C0008F4309508F4409548F45095C8F46094C32
67518 +:1040D000AF820064AF830050AF84004CAF85005CBA
67519 +:1040E00003E00008AF8600609346010930C5007FF9
67520 +:1040F000000518C0000521400083102103E00008DE
67521 +:10410000244200883C09080091293D9124A800021E
67522 +:104110003C05110000093C0000E8302500C51825C9
67523 +:1041200024820008AC83000003E00008AC80000497
67524 +:104130009347010B8F4A002C974F09083C18000E3B
67525 +:104140000358482131EEFFFF000E41C0AF48002C5C
67526 +:1041500097430908952C001A008040212403000190
67527 +:10416000318BFFFFAC8B00008D2D001C00A058216F
67528 +:1041700000C06021AC8D00048D24002030E7004099
67529 +:10418000AD04000891220019304400031083004858
67530 +:104190002885000214A00062240600021086005642
67531 +:1041A00024190003109900660000000010E0003A96
67532 +:1041B000000000003C07080094E73D8624E200016F
67533 +:1041C000934F0934934709219525002A31EE00FFCA
67534 +:1041D000000E488230ED00FF978700580009360036
67535 +:1041E000000D1C003044FFFF00C310250044C02513
67536 +:1041F00000A778213C19400003197025000F4C00DE
67537 +:10420000AD090004AD0E0000934D09203C030006EB
67538 +:1042100025090014000D360000C32025AD04000858
67539 +:104220008F59092C24E5000130A27FFFAD19000C45
67540 +:104230008F580930A782005825020028AD180010B9
67541 +:104240008F4F0938AD0F0014AD2B00048F4E09407D
67542 +:10425000AD2E0008934D09373C05080090A53D9010
67543 +:104260008F4409488F46094031A700FF00EC182110
67544 +:10427000008678230003C7000005CC0003196025E1
67545 +:1042800031E8FFFC01885825AD2B000CAD20001053
67546 +:1042900003E00008AF4A002C3C0D080095AD3D86B8
67547 +:1042A0003C0E080095CE3D800A0004C901AE1021E5
67548 +:1042B0003C05080094A53D8A3C06080094C63D8054
67549 +:1042C0003C18080097183D7C952E002400A6782104
67550 +:1042D00001F86823000E240025A2FFF200821825B1
67551 +:1042E00024190800AD03000CAD190014AD00001036
67552 +:1042F0000A0004C4250800189526002495250028E6
67553 +:104300000006C40000057C00370E810035ED080072
67554 +:10431000AD0E000CAD0D00100A0004C425080014F9
67555 +:104320001480FFA200000000952400240004140063
67556 +:1043300034430800AD03000C0A0004C42508001033
67557 +:104340003C03080094633D8A3C05080094A53D8029
67558 +:104350003C06080094C63D7C953900249538002819
67559 +:10436000006520210086782300196C000018740075
67560 +:1043700025E2FFEE01C2202535A3810024190800A3
67561 +:10438000AD03000CAD040010AD190018AD00001411
67562 +:104390000A0004C42508001C03E00008240201F4FC
67563 +:1043A00027BDFFE8AFB00010AFBF00140E000060E3
67564 +:1043B0000080802124050040AF4508148F83005001
67565 +:1043C0008F84004C8F85005C0070182100641023DE
67566 +:1043D00018400004AF830050AF6300548F66005450
67567 +:1043E000AF86004C1200000C000000008F440074E7
67568 +:1043F000936800813409FA002D07000710E00005DA
67569 +:1044000000891021936C0081240B01F4018B50046E
67570 +:1044100001441021AF62000C8F4E095C01C5682376
67571 +:1044200019A000048FBF00148F4F095CAF8F005C90
67572 +:104430008FBF00148FB000100A00006227BD001863
67573 +:104440008F8400648F8300508F82004CAF640044DF
67574 +:10445000AF63005003E00008AF6200543C038000EB
67575 +:10446000346200708C43000027BDFFF8308700FFE6
67576 +:1044700030A900FF30C800FFAF8300308F440178BF
67577 +:104480000480FFFE3C028000345900708F38000029
67578 +:10449000A3A700033C0708008CE700748FAC000062
67579 +:1044A0003C0608008CC60070030378233C0E7FFF97
67580 +:1044B00000EFC82135CDFFFF00005021018D2824D9
67581 +:1044C00000CA1821000847C0032F202B00A8102580
67582 +:1044D0000064C021AFA200003C010800AC390074A8
67583 +:1044E0003C010800AC380070934F010AA3A0000201
67584 +:1044F0003C0E80FFA3AF00018FAC0000312B007F8A
67585 +:1045000035CDFFFF018D4824000B5600012A4025C0
67586 +:10451000240730002406FF803C05100027BD00085A
67587 +:10452000AF48014CAF470154A7400158A346015280
67588 +:1045300003E00008AF45017827BDFFE8AFBF0014D6
67589 +:10454000AFB000108F6500743C068000309000FF13
67590 +:1045500000A620250E000060AF6400749363000580
67591 +:10456000346200080E000062A362000502002021F0
67592 +:104570008FBF00148FB00010240500052406000131
67593 +:104580000A00057027BD001827BDFFE03C0380002E
67594 +:10459000AFB00010AFBF0018AFB1001434620070AC
67595 +:1045A0008C470000309000FF30A800FFAF8700303C
67596 +:1045B0008F4401780480FFFE3C18800037110070A2
67597 +:1045C0008E2F00003C0D08008DAD00743C0A0800E1
67598 +:1045D0008D4A007001E7702301AE282100005821A8
67599 +:1045E00000AE302B014B4821012638213C01080048
67600 +:1045F000AC250074000088213C010800AC27007045
67601 +:104600001100000F000000008F6200742619FFFFE8
67602 +:104610003208007F0002FE0233E5007F150000062D
67603 +:10462000332200FF2407FF800207202624A3FFFF78
67604 +:1046300000838025320200FF0040802124111008F1
67605 +:104640000E000060000000008F49081831250004AA
67606 +:1046500014A0FFFD3218007F001878C000187140C8
67607 +:1046600001CF682125AC0088AF4C0818274A098083
67608 +:104670008D4B0020AF4B01448D460024AF460148CE
67609 +:10468000A35001500E000062A740015802201021E3
67610 +:104690008FBF00188FB100148FB0001003E0000826
67611 +:1046A00027BD002027BDFFE8308400FFAFBF00100A
67612 +:1046B0000E0005BB30A500FF8F8300508FBF001098
67613 +:1046C000344500402404FF903C02100027BD001830
67614 +:1046D000AF43014CA3440152AF45015403E000082D
67615 +:1046E000AF4201789343093E306200081040000D4C
67616 +:1046F0003C0901013528080AAC8800008F47007486
67617 +:10470000AC8700043C06080090C63D9030C5001000
67618 +:1047100050A00006AC8000088F6A0060AC8A0008D8
67619 +:104720002484000C03E00008008010210A00062207
67620 +:104730002484000C27BDFFE8AFBF0014AFB0001009
67621 +:104740009346093F00A050210005288000853823AA
67622 +:1047500030C200FF240300063C09080095293D866D
67623 +:1047600024E8FFD824050004104300372406000283
67624 +:104770009750093C3C0F020400063400320EFFFF44
67625 +:1047800001CF6825AC8D0000934C093E318B002091
67626 +:104790001160000800000000934309363C02010349
67627 +:1047A000345F0300307900FF033FC0252405000873
67628 +:1047B000AC98000493430934935909210005F88209
67629 +:1047C000306200FF0002C082332F00FF00186E002D
67630 +:1047D000000F740001AE6025018920253C094000CE
67631 +:1047E00000898025ACF0FFD8934309378F4F0948E3
67632 +:1047F0008F580940306200FF004AC821033F7021F2
67633 +:1048000001F86023000E6F0001A650253185FFFCE2
67634 +:10481000001F58800145482501683821AD09002056
67635 +:104820000E00006024F00028240400040E00006242
67636 +:10483000A364003F020010218FBF00148FB000104E
67637 +:1048400003E0000827BD00180A0006352406001200
67638 +:1048500027BDFFD024090010AFB60028AFB5002453
67639 +:10486000AFB40020AFB10014AFB000103C0108009D
67640 +:10487000A0293D90AFBF002CAFB3001CAFB2001811
67641 +:1048800097480908309400FF3C02000E3107FFFFF3
67642 +:10489000000731C0AF46002C974409089344010B30
67643 +:1048A00030B500FF03428021308300300000B0218A
67644 +:1048B0001060012500008821240C00043C01080040
67645 +:1048C000A02C3D90934B093E000B5600000A2E038E
67646 +:1048D00004A0016000000000AF400048934F010BAE
67647 +:1048E00031EE002011C00006000000009358093E80
67648 +:1048F00000189E0000139603064001890000000086
67649 +:104900009344010B30830040106000038F930050EC
67650 +:104910008F8200502453FFFF9347093E30E6000882
67651 +:1049200014C0000224120003000090219619002CEC
67652 +:1049300093580934934F0937A7990058330C00FF57
67653 +:1049400031EE00FF024E6821000D5880016C5021AD
67654 +:10495000015140213C010800A4283D869205001821
67655 +:1049600030A900FF010918213C010800A4233D885B
67656 +:104970009211001816200002000000000000000D37
67657 +:104980003C010800A4233D8A3C010800A4203D808E
67658 +:104990003C010800A4203D7C935F010B3063FFFFC6
67659 +:1049A00033F00040120000022464000A2464000B6B
67660 +:1049B0003091FFFF0E00009E022020219358010B32
67661 +:1049C0003C08080095083D8A0040202100185982C3
67662 +:1049D000316700010E00049A01072821934C010B56
67663 +:1049E0008F4B002C974E09083C0F000E034F4021BF
67664 +:1049F00031CDFFFF000D51C0AF4A002C974309088D
67665 +:104A00009505001A004038212404000130A9FFFF59
67666 +:104A1000AC4900008D06001C00404821318A00404E
67667 +:104A2000AC4600048D020020ACE20008910300199E
67668 +:104A300030630003106400EC28790002172001188D
67669 +:104A4000241000021070010C241F0003107F011EAF
67670 +:104A500000000000114000DE000000003C090800DA
67671 +:104A600095293D8625220001935F0934934E092143
67672 +:104A70009504002A33F900FF0019C08231CF00FFEE
67673 +:104A8000978E005800184600000F6C00010D80251D
67674 +:104A90003045FFFF02051025008E50213C034000E9
67675 +:104AA00000433025000A6400ACEC0004ACE60000D2
67676 +:104AB000935F09203C19000624EC0014001FC60077
67677 +:104AC00003197825ACEF00088F48092C25CD00018B
67678 +:104AD00031A57FFFACE8000C8F500930A785005846
67679 +:104AE00024E80028ACF000108F4409380100802130
67680 +:104AF000ACE40014AD9300048F530940AD9300085B
67681 +:104B0000934A09373C19080093393D908F4309486F
67682 +:104B10008F460940314200FF0052F82100667023A1
67683 +:104B2000001F7F000019C40001F8282531CDFFFCCB
67684 +:104B300000AD2025AD84000CAD800010AF4B002CE3
67685 +:104B4000934B093E317300081260000D3C060101D1
67686 +:104B500034CC080AACEC00288F530074AD13000469
67687 +:104B60003C0B0800916B3D903167001050E0000352
67688 +:104B7000AD0000088F6A0060AD0A00082510000C27
67689 +:104B800012C0003D000000009343093F24160006B8
67690 +:104B900024060004306200FF105600C924070002FA
67691 +:104BA0009758093C3C0F0204330DFFFF01AF40252D
67692 +:104BB000AE0800009345093E30A400201080000894
67693 +:104BC00000000000935309363C0B0103357F0300BE
67694 +:104BD000327900FF033F7025AE0E00042406000862
67695 +:104BE000934F093493480921312AFFFF31ED00FF2B
67696 +:104BF000000D1082310300FF0002B60000032C00FC
67697 +:104C000002C56025018A9825001220803C094000D9
67698 +:104C10000204502302695825AD4BFFD8935F093732
67699 +:104C20008F4F09488F58094033F900FF0332702134
67700 +:104C30000006B08201D668210007440001F828234D
67701 +:104C4000000D1F000068302530A2FFFC2547FFD86B
67702 +:104C500000C260250016808002074821ACEC0020CD
67703 +:104C6000253000280E00006024120004A372003FCB
67704 +:104C70000E000062000000009347010B30F200407C
67705 +:104C8000124000053C1900FF8E180000372EFFFF70
67706 +:104C9000030E3024AE0600000E0000C702202021C3
67707 +:104CA0003C10080092103D90321100031220000FBA
67708 +:104CB00002A028218F89005025330001AF930050B6
67709 +:104CC000AF7300508F6B00540173F8231BE0000298
67710 +:104CD000026020218F640054AF6400548F4C007434
67711 +:104CE000258401F4AF64000C02A028210280202159
67712 +:104CF000A76000680E0005BB3C1410008F850050B3
67713 +:104D000034550006AF45014C8F8A00488FBF002CF8
67714 +:104D10008FB3001C25560001AF9600488FB20018D3
67715 +:104D2000A34A01528FB60028AF5501548FB1001429
67716 +:104D3000AF5401788FB500248FB400208FB00010DD
67717 +:104D400003E0000827BD00309358093E00189E007C
67718 +:104D500000139603064200362411000293440923EF
67719 +:104D6000308300021060FEDD8F8600608F8200506D
67720 +:104D700014C2FEDA000000000E0000600000000017
67721 +:104D80009369003F24070016312800FF1107000C2B
67722 +:104D9000240500083C0C0800918C3D90358B0001E7
67723 +:104DA0003C010800A02B3D90936A003F314300FF77
67724 +:104DB00010650065240D000A106D005E2402000CD1
67725 +:104DC0000E000062000000000A00069000000000D3
67726 +:104DD0003C09080095293D863C0A0800954A3D801B
67727 +:104DE0000A0006F3012A10213C09080095293D8A92
67728 +:104DF0003C04080094843D803C06080094C63D7C39
67729 +:104E000095030024012410210046F8230003CC0060
67730 +:104E100027F0FFF20330C025240F0800ACF8000C87
67731 +:104E2000ACEF0014ACE000100A0006EE24E7001816
67732 +:104E30003C010800A0313D90935F093E241600011B
67733 +:104E400033F900201720FEA5241100080A0006905F
67734 +:104E5000241100048F6E00848F4D094011A0FE9E26
67735 +:104E6000AF8E0050240F00143C010800A02F3D908D
67736 +:104E70000A00068F00000000950E0024950D002802
67737 +:104E8000000E6400000D2C003589810034A6080056
67738 +:104E9000ACE9000CACE600100A0006EE24E70014B2
67739 +:104EA0001460FEEC000000009502002400021C00CB
67740 +:104EB00034640800ACE4000C0A0006EE24E700109D
67741 +:104EC0000A000741240700123C02080094423D8A70
67742 +:104ED0003C06080094C63D803C03080094633D7C7A
67743 +:104EE00095100024951900280046F82103E3C023FB
67744 +:104EF00000106C0000197400270FFFEE01CF282569
67745 +:104F000035AC8100ACEC000CACE5001024070800C7
67746 +:104F1000AD2700182527001C0A0006EEAD2000145E
67747 +:104F20008F7F004CAF7F00548F7900540A000699A0
67748 +:104F3000AF790050A362003F0E0000620000000045
67749 +:104F40000A00069000000000240200140A0008274E
67750 +:104F5000A362003F27BDFFE8308400FFAFBF001011
67751 +:104F60000E0005BB30A500FF9378007E9379007F8B
67752 +:104F7000936E00809368007A332F00FF001866005C
67753 +:104F8000000F6C0031CB00FF018D4825000B520053
67754 +:104F90008FBF0010012A3825310600FF344470000D
67755 +:104FA00000E628252402FF813C03100027BD0018DD
67756 +:104FB000AF45014CAF440154A342015203E0000845
67757 +:104FC000AF43017827BDFFD8AFB20018AFB10014CE
67758 +:104FD000AFB00010AFBF0020AFB3001C9342010977
67759 +:104FE000308600FF30B000FF000618C23204000215
67760 +:104FF0003071000114800005305200FF93670005F6
67761 +:1050000030E5000810A0000D30C80010024020213B
67762 +:105010000E0005A702202821240400018FBF0020D4
67763 +:105020008FB3001C8FB200188FB100148FB0001026
67764 +:105030000080102103E0000827BD00281500003281
67765 +:105040000000000093430109000028213062007F26
67766 +:10505000000220C00002F94003E49821267900886C
67767 +:10506000033B98218E7800248E6F0008130F0046B2
67768 +:10507000000000008F640084241800020004FD82F8
67769 +:1050800033F900031338007C0000000093660083AE
67770 +:10509000934A0109514600043205007C10A00060CB
67771 +:1050A000000000003205007C14A0005302402021C3
67772 +:1050B00016200006320400018E7F00248F5901045F
67773 +:1050C00017F9FFD600002021320400011080000AE9
67774 +:1050D000024020218F4209408F9300641053000644
67775 +:1050E000000000000E00066D022028218F430940B9
67776 +:1050F000AF630044024020210E0006020220282156
67777 +:105100000A000860240400013C0908008D2900649D
67778 +:10511000252600013C010800AC26006416000012A0
67779 +:10512000000000008F6D00843C0E00C001AE6024C2
67780 +:1051300015800005024020210E00082E02202821A3
67781 +:105140000A00086024040001240500040E00057014
67782 +:1051500024060001024020210E00082E02202821F2
67783 +:105160000A000860240400010E000041240400012C
67784 +:10517000936B007D020B50250E000062A36A007D38
67785 +:105180000A0008A38F6D00848F6600748F480104A5
67786 +:105190008E67002400064E021507FFB63126007FF9
67787 +:1051A000936B008326440001308A007F1146004340
67788 +:1051B000316300FF5464FFB08F6400842645000112
67789 +:1051C00030B1007F30A200FF122600042405000148
67790 +:1051D000004090210A00087624110001240FFF806E
67791 +:1051E000024F702401CF9026324200FF00409021F0
67792 +:1051F0000A000876241100010E00066D0220282105
67793 +:10520000321800301300FFAA321000820240202121
67794 +:105210000E0005A7022028210A00086024040001CE
67795 +:105220008F6E00743C0F80002405000301CF902591
67796 +:10523000AF72007493710083240600010E000570A4
67797 +:10524000322400FF0E00004124040001936D007D14
67798 +:10525000020D60250E000062A36C007D3C0B08006F
67799 +:105260008D6B0054257000013C010800AC300054E7
67800 +:105270000A000860240400018F6800743C09800063
67801 +:105280002405000401093825AF6700749363008387
67802 +:10529000240600010E000570306400FF0E0000417E
67803 +:1052A000240400019362007D020298250E00006232
67804 +:1052B000A373007D0A00086024040001324D0080C1
67805 +:1052C00039AC0080546CFF6C8F6400840A0008C9FC
67806 +:1052D0002645000127BDFFC83C0A0008AFBF0030CB
67807 +:1052E000AFB5002CAFB40028AFB30024AFB200209C
67808 +:1052F000AFB1001CAFB00018034AD8212409004008
67809 +:10530000AF490814AF4008108F4209448F43095039
67810 +:105310008F4609548F47095C8F48094C9344010814
67811 +:105320009345010BAF820064308400FF30A500FF7D
67812 +:10533000AF830050AF86004CAF87005C0E00084A78
67813 +:10534000AF8800601440017D8FBF0030A760006807
67814 +:10535000934D0900240B00503C15080026B53D482C
67815 +:1053600031AC00FF3C12080026523D58118B00035F
67816 +:10537000000000000000A8210000902193510109C5
67817 +:105380008F9F005024040010322E007F000E68C052
67818 +:10539000000E6140018D282124B40088AF54081804
67819 +:1053A0008F4901048F4A09A43C0B000E034BC02116
67820 +:1053B000012A10233C010800AC223D6C8F430958A0
67821 +:1053C0003C010800A0243D9097470908007F302346
67822 +:1053D0003C010800AC263D7030E8FFFF0008C9C062
67823 +:1053E0003C010800AC3F3D94AF59002C974209089E
67824 +:1053F0009710002C8EB10000930F001803749821B1
67825 +:10540000A7900058AF9300440220F80931F000FF44
67826 +:10541000304E000215C001B2304F000111E0014FC3
67827 +:10542000000000009343093E3066000814C00002EB
67828 +:10543000241400030000A0218F5809A424130001A4
67829 +:105440003C010800AC383D98934F0934935109371B
67830 +:1054500031EC00FF322E00FF028E6821000D288003
67831 +:1054600000AC5021015058213C010800A42B3D887C
67832 +:105470003C010800A42A3D8693490934312200FFEB
67833 +:1054800002022021249000103C010800A4303D8439
67834 +:10549000240700068F9F00503C010800AC273D8C7C
67835 +:1054A0008F88005C8F59095800008021011F282334
67836 +:1054B00004A00149033F20230480014700A4302BAE
67837 +:1054C00010C00149000000003C010800AC253D70FF
67838 +:1054D0008E4200000040F809000000003043000246
67839 +:1054E000146000F80040882130440001548000100E
67840 +:1054F0008E4200043C0908008D293D743C0AC0001E
67841 +:10550000012A8025AF500E008F45000030AB000807
67842 +:105510001160FFFD00000000974D0E0824100001EF
67843 +:10552000A78D003C8F4C0E04AF8C00348E420004DB
67844 +:105530000040F8090000000002228825322E0002F7
67845 +:1055400015C00180000000003C09080095293D7C41
67846 +:105550003C06080094C63D883C0A0800954A3D7EFA
67847 +:105560003C1908008F393D74012660213C18080061
67848 +:105570008F183D983C03080094633D92018A2021D6
67849 +:105580008F4E09400329F821248F000203E32821CC
67850 +:10559000031968213C010800A42C3D8AAF8E0064E9
67851 +:1055A0003C010800AC2D3D983C010800A4253D803D
67852 +:1055B0000E00009E31E4FFFF8F870048004020214D
67853 +:1055C0003C010800A0273D918E42000824E800011C
67854 +:1055D000AF8800480040F809000000009344010B28
67855 +:1055E0008F4C002C974A09083C0B000E034B4021BE
67856 +:1055F0003149FFFF000919C08F8B0050AF43002CC9
67857 +:10560000974309089506001A00403821308A004067
67858 +:1056100030DFFFFFAC5F00008D19001C0040482107
67859 +:10562000AC5900048D180020AC580008910F0019E7
67860 +:1056300031E30003107300F0000000002862000254
67861 +:105640001440010924050002106500FD240D00032B
67862 +:10565000106D010D00000000114000D90000000095
67863 +:105660003C0A0800954A3D8625420001934D0934C5
67864 +:1056700093580921950E002A31A300FF00032082D0
67865 +:10568000331F00FF9798005800047E00001FCC00D5
67866 +:1056900001F940253049FFFF0109102501D83021CB
67867 +:1056A0003C0540000045502500066C00ACED0004B0
67868 +:1056B000ACEA0000934309203C04000624ED0014EA
67869 +:1056C0000003FE0003E4C825ACF900088F49092C4B
67870 +:1056D000270F000131EE7FFFACE9000C8F48093045
67871 +:1056E000A78E005824E90028ACE800108F4509383F
67872 +:1056F00001204021ACE50014ADAB00048F4209400D
67873 +:10570000ADA20008934B09373C1F080093FF3D9062
67874 +:105710008F4309488F4A0940316600FF00D4202199
67875 +:10572000006A78230004C700001FCC000319282555
67876 +:1057300031EEFFFC00AE1025ADA2000CADA00010B4
67877 +:10574000AF4C002C934C093E318B00085160000F88
67878 +:105750008E58000C3C06010134CA080AACEA002845
67879 +:105760008F4B0074AD2B00043C0C0800918C3D90D5
67880 +:105770003187001050E00003AD2000088F62006008
67881 +:10578000AD2200082528000C8E58000C0300F809F3
67882 +:10579000010020213C19080097393D8A3C1F080070
67883 +:1057A00097FF3D7E033F782125E900020E0000C7E8
67884 +:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4
67885 +:1057C0008D083D7401C828233C010800AC253D6CC0
67886 +:1057D00014A00006000000003C0308008C633D8C10
67887 +:1057E000346400403C010800AC243D8C1200007081
67888 +:1057F0008F8C00448F470E108F900044AE0700201E
67889 +:105800008F4D0E18AE0D00243C10080096103D8000
67890 +:105810000E0000600000000024020040AF420814A7
67891 +:105820008F8600508F8A004C00D01821006A5823C0
67892 +:1058300019600004AF830050AF6300548F650054BB
67893 +:10584000AF85004C1200000C000000008F44007473
67894 +:10585000936800813409FA002D0E000711C000057D
67895 +:1058600000891821937F0081241901F403F9780439
67896 +:1058700001E41821AF63000C8F44095C8F83005C46
67897 +:105880000083C0231B000003000000008F50095C50
67898 +:10589000AF90005C0E000062000000008F8C005092
67899 +:1058A0008E4700103C010800AC2C3D9400E0F80944
67900 +:1058B000000000003C0D08008DAD3D6C55A0FEF5CC
67901 +:1058C000240700068F450024975909088F8B006430
67902 +:1058D0008F9400503C0F001F978200588F86005411
67903 +:1058E0008F93004C3328FFFF35E9FF8000A9502437
67904 +:1058F000000871C032320100AF4E0024A4C2002C57
67905 +:10590000AF4A0024AF6B0044AF740050AF73005433
67906 +:105910001640008032380010570000868EA4000424
67907 +:10592000322300405460001B8EB100088EB0000C82
67908 +:105930000200F809000000008FBF00308FB5002C76
67909 +:105940008FB400288FB300248FB200208FB1001CC9
67910 +:105950008FB0001803E0000827BD00389347010905
67911 +:105960008F8800380007FE0003E8C825AF59008083
67912 +:105970008F5809A08F5309A4AFB80010AF580E1468
67913 +:105980008FB40010AF540E10AF530E1C0A00096202
67914 +:10599000AF530E180220F809000000008EB0000C72
67915 +:1059A0000200F809000000000A000AA88FBF0030BA
67916 +:1059B000A5800020A59300220A000A5BAD93002475
67917 +:1059C0003C09080095293D863C06080094C63D80A8
67918 +:1059D0000A0009F4012610213C010800AC203D70AA
67919 +:1059E0000A00098E8E4200003C010800AC243D7084
67920 +:1059F0000A00098E8E4200003C03080094633D8A31
67921 +:105A00003C04080094843D803C1F080097FF3D7CC7
67922 +:105A1000951800240064C821033F782300186C0007
67923 +:105A200025EEFFF201AE2825AC45000C240208004B
67924 +:105A3000ACE20014ACE000100A0009EF24E7001803
67925 +:105A400095060024950900280006240000091C0082
67926 +:105A5000349F810034790800ACFF000CACF90010D1
67927 +:105A60000A0009EF24E700141460FEFB00000000A8
67928 +:105A70009518002400187C0035EE0800ACEE000CF0
67929 +:105A80000A0009EF24E700103C07080094E73D8076
67930 +:105A90003C04080094843D8A3C03080094633D7CE8
67931 +:105AA00095190024951800280087F82103E378232E
67932 +:105AB0002407080000192C0000186C0025EEFFEEEA
67933 +:105AC00001AE302534A28100AD2700182527001C27
67934 +:105AD000AD22000CAD2600100A0009EFAD20001425
67935 +:105AE00093520109000028210E000602324400FFF3
67936 +:105AF0008FBF00308FB5002C8FB400288FB30024E7
67937 +:105B00008FB200208FB1001C8FB0001803E0000896
67938 +:105B100027BD0038935F010933E400FF0E00066DD6
67939 +:105B200000002821323800105300FF7E322300404D
67940 +:105B30008EA400040080F809000000000A000AA2F8
67941 +:105B4000322300401200FF5F000000008F540E144B
67942 +:105B50008F920044AE5400208F530E1C0A000A8A14
67943 +:105B6000AE5300248F82001C008040213C040100C1
67944 +:105B70009047008530E3002010600009000000001D
67945 +:105B80003C0708008CE73D948F83001800E3202336
67946 +:105B9000048000089389000414E30003010020211D
67947 +:105BA00003E00008008010213C04010003E000082D
67948 +:105BB000008010211120000B006738238F8C0020FB
67949 +:105BC00024090034918B00BC316A0002514000016D
67950 +:105BD0002409003000E9682B15A0FFF10100202105
67951 +:105BE00000E938232419FFFC00B9C02400F9782407
67952 +:105BF00000F8702B15C0FFEA01E8202130C2000335
67953 +:105C00000002182314C00012306900030000302184
67954 +:105C100000A9702101C6682100ED602B1180FFE012
67955 +:105C20003C0401002D2F00010006482B01053821FE
67956 +:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E
67957 +:105C400000B9C0240308202103E0000800801021CF
67958 +:105C50008F8B002024060004916A00BC31440004AC
67959 +:105C60001480FFEC00A970210A000B5E00003021B7
67960 +:105C700027BDFFE8AFBF00108F460100934A01091E
67961 +:105C80003C1F08008FFF00902407FF80314F00FF6A
67962 +:105C900031E8007F0008614003E6C821032CC021E1
67963 +:105CA00027090120012770243C010800A02F3DD0C6
67964 +:105CB000AF4E080C3C0D08008DAD00903C040080F8
67965 +:105CC0003482000301A65821016C182124650120AB
67966 +:105CD00030AA007801424025AF48081C3C1F08004C
67967 +:105CE0008FFF00908F88004003E6C0213319000722
67968 +:105CF00003074824033A7821AF49002825E909C061
67969 +:105D0000952E00023C0D08008DAD008C3C0A080069
67970 +:105D10008D4A009031CC3FFF01A61821000C59801C
67971 +:105D2000006B282100A72024AF44002C95220002FC
67972 +:105D30003C1F08008FFF008C9107008530593FFF02
67973 +:105D400003E678210019C1800146702101F868211D
67974 +:105D500031CC007F31AB007F019A2821017A50219C
67975 +:105D60003C03000C3C04000E00A328210144102138
67976 +:105D700030E6002027470980AF82002CAF88001C46
67977 +:105D8000AF890024AF85002010C00006AF8700282F
67978 +:105D90008D0200508CA4010C0044302318C0007701
67979 +:105DA00000000000910C0085240DFFDF018D3824D8
67980 +:105DB000A10700858F8B001C8F8900248F87002806
67981 +:105DC0008D65004CAF850018912F000D31EE00203D
67982 +:105DD00011C000170000000024090001A38900047D
67983 +:105DE000AF80000C8CE400248F85000C240A00088E
67984 +:105DF000AF800008AF8000103C010800A42A3D7E5F
67985 +:105E00003C010800A4203D920E000B32000030211E
67986 +:105E10008F8500248FBF0010AF82001490A8000D62
67987 +:105E200027BD00180008394203E0000830E20001F5
67988 +:105E3000913F00022418000133F900FF001921826C
67989 +:105E400010980039240800021088005B8F86002C0F
67990 +:105E50008CE5002414A0001B8F9F002091220000DD
67991 +:105E6000240A00053046003F10CA00472404000100
67992 +:105E70008F860008A3840004AF860010AF86000C54
67993 +:105E80008CE400248F85000C240A00083C010800E3
67994 +:105E9000A42A3D7E3C010800A4203D920E000B3256
67995 +:105EA000000000008F8500248FBF0010AF82001417
67996 +:105EB00090A8000D27BD00180008394203E0000833
67997 +:105EC00030E200018CF800088CF900248FEE00C449
67998 +:105ED000A38000048CE40024AF8E000C8F85000C9E
67999 +:105EE0008F86000803197823240A0008AF8F00105A
68000 +:105EF0003C010800A42A3D7E3C010800A4203D92FC
68001 +:105F00000E000B32000000008F8500248FBF0010B0
68002 +:105F1000AF82001490A8000D27BD00180008394278
68003 +:105F200003E0000830E20001912300003062003FEE
68004 +:105F3000104400278F8500208CE400241480002169
68005 +:105F4000000000008D2E00183C187FFF8F85002078
68006 +:105F5000370FFFFF01CF1824AF8300088F9F000881
68007 +:105F60008CA8008403E8C82B1720000203E020213E
68008 +:105F70008CA400840A000BEDAF8400088CA3010CF4
68009 +:105F80000A000BCBAF8300188D2C00188F860008F9
68010 +:105F90003C0D7FFF8F89002035A3FFFF018358242C
68011 +:105FA00024040001AF8B0010AD2000CCA3840004BA
68012 +:105FB0000A000BF9AF86000C8CCA00140A000BED26
68013 +:105FC000AF8A00088CA300C80A000C30AF83000819
68014 +:105FD0008F84002C8CAC00648C8D0014018D582BA8
68015 +:105FE00011600004000000008CA200640A000C3064
68016 +:105FF000AF8200088C8200140A000C30AF820008C7
68017 +:106000008F85000C27BDFFE0AFBF0018AFB10014B3
68018 +:1060100014A00007AFB000108F86002424020005F2
68019 +:1060200090C400003083003F106200B68F840020CF
68020 +:106030008F91000800A080218F8C00283C0508006B
68021 +:106040008CA53D708D8B000431663FFF00C5502B41
68022 +:106050005540000100C02821938D000411A0007359
68023 +:1060600000B0F82B8F98002024040034930F00BC5C
68024 +:1060700031EE000251C000012404003000A4C82BFE
68025 +:10608000172000D10000000000A4282300B0F82B46
68026 +:106090003C010800A4243D7C17E000680200202198
68027 +:1060A0003C0308008C633D6C0083102B54400001BE
68028 +:1060B000008018218F8800243C010800AC233D7427
68029 +:1060C000000048219104000D308300205060000141
68030 +:1060D0008F490E188F8300140123382B10E00059CC
68031 +:1060E000000000003C0408008C843D7400895821A5
68032 +:1060F000006B502B114000560090602B006930233C
68033 +:1061000000C020213C010800AC263D7412000003B1
68034 +:10611000241FFFFC1090008A32270003009FC82430
68035 +:106120003C010800AC393D743C010800A4203D92BC
68036 +:106130008F84000C120400078F830020AF910008A9
68037 +:10614000020020218C7100CCAF90000C26300001A1
68038 +:10615000AC7000CC3C0208008C423D748F8A001069
68039 +:10616000240700180082202301422823AF84000C5A
68040 +:1061700010800002AF850010240700108F86001CDD
68041 +:106180003C010800A0273D902407004090CC0085EA
68042 +:10619000318B00C0116700408F8D001414A00015D2
68043 +:1061A00000002021934A01098F420974314500FF04
68044 +:1061B0000002260224A300013090007F3071007F8E
68045 +:1061C0001230007A2407FF80A0C300833C09080036
68046 +:1061D0008D293D8C8F880024240D0002352C000869
68047 +:1061E0003C010800A02D3DD13C010800AC2C3D8CA9
68048 +:1061F00024040010910E000D31C6002010C00005CF
68049 +:1062000000801821240800013C010800AC283D74DE
68050 +:10621000348300018FBF00188FB100148FB00010BD
68051 +:106220000060102103E0000827BD00203C010800A9
68052 +:10623000A4203D7C13E0FF9A020020210A000C817B
68053 +:1062400000A020213C0408008C843D740090602B49
68054 +:106250001180FFAE000000003C0F080095EF3D7C70
68055 +:1062600001E4702101C6682B11A000072C820004F4
68056 +:106270003C1F60008FF954043338003F1700FFE5DE
68057 +:10628000240300422C8200041040FFA0240300429B
68058 +:106290000A000CDF8FBF0018152DFFC000000000A2
68059 +:1062A0008CDF00743C0380002405FF8003E3C825D5
68060 +:1062B000ACD9007490D80085240E0004240400108A
68061 +:1062C000330F003F01E54025A0C800858F880024DA
68062 +:1062D0003C010800A02E3DD1240300019106000DD1
68063 +:1062E00030C9002015200003000000003C03080016
68064 +:1062F0008C633D743C010800AC233D6C0A000CD655
68065 +:10630000000000008F8700108C88008400E8282B94
68066 +:1063100014A0000200E088218C910084240900016F
68067 +:10632000A38900048F440E18022028210E000B328E
68068 +:1063300002203021022080210A000C67AF82001465
68069 +:1063400000071823306600033C010800A4263D9294
68070 +:10635000122000058F8C0020918B00BC316A000454
68071 +:106360001540001524CD00043C0F080095EF3D9228
68072 +:1063700001E4702100AE302B50C0FF6E8F84000C02
68073 +:106380002C85000514A0FFA32403004230980003CD
68074 +:1063900017000002009818232483FFFC3C0108002A
68075 +:1063A000AC233D740A000CA30000000000A7582491
68076 +:1063B0000A000CCB016718263C010800A42D3D9271
68077 +:1063C0000A000D33000000003C010800AC203D74C1
68078 +:1063D0000A000CDE240300428F83001014600007C3
68079 +:1063E000000010218F88002424050005910600007C
68080 +:1063F00030C400FF108500030000000003E0000827
68081 +:1064000000000000910A0018314900FF000939C25C
68082 +:1064100014E0FFFA8F85001C3C04080094843D7C46
68083 +:106420003C0308008C633D943C1908008F393D748F
68084 +:106430003C0F080095EF3D920064C0218CAD0054E4
68085 +:106440000319702101CF6021018D58231960001DAF
68086 +:1064500000000000910E001C8F8C002C974B0E103A
68087 +:1064600031CD00FF8D850004016D30238D88000043
68088 +:1064700030CEFFFF000E510000AAC82100003821D5
68089 +:1064800001072021032A182B0083C021AD990004A5
68090 +:10649000AD980000918F000A01CF6821A18D000AFC
68091 +:1064A0008F88002C974B0E12A50B0008950A003818
68092 +:1064B00025490001A50900389107000D34E60008C0
68093 +:1064C000A106000D03E000080000000027BDFFE06A
68094 +:1064D000938700048F8F00248FAD00143C0E7FFF44
68095 +:1064E0008F89000C35C8FFFFAFBF001CAFB000188C
68096 +:1064F00001A8182491EA000D000717C03C1FBFFF38
68097 +:10650000006258252D2E00018F90001837F9FFFFEB
68098 +:106510003C1808008F183D943C0F080095EF3D8A09
68099 +:1065200001796824000E47803C07EFFF3C05F0FF2F
68100 +:1065300001A818253149002034E2FFFF34ACFFFFE9
68101 +:106540000310582327A500102406000225EA0002A4
68102 +:1065500000621824008080211520000200004021E4
68103 +:106560008F480E1CA7AA0012056000372407000000
68104 +:1065700030FF00FF001FCF008F8B001C00793825F3
68105 +:10658000AFA70014916F00853C08080091083D9169
68106 +:106590003C18DFFF31EE00C0370AFFFF000E182B5A
68107 +:1065A0003C1F080097FF3D8400EA6824A3A800115F
68108 +:1065B0000003174001A248258FB90010AFA90014AD
68109 +:1065C0003C0A0800914A3D93A7BF00168FA800140B
68110 +:1065D000032CC0243C0B01003C0F0FFF030B1825BC
68111 +:1065E0003147000335EEFFFF010C68240007160059
68112 +:1065F000006EF8243C09700001A2C82503E9582563
68113 +:10660000AFB90014AFAB00100E000076A3A00015C8
68114 +:106610008F8C0024260200089186000D30C40020D3
68115 +:10662000108000068FBF001C3C05080094A53D802B
68116 +:1066300024B0FFFF3C010800A4303D808FB000185B
68117 +:1066400003E0000827BD00208F9800140118502B8C
68118 +:106650005540FFC7240700010A000DB630FF00FFB8
68119 +:106660009382000427BDFFE0AFBF00181040000F69
68120 +:10667000008050218F880024240B00058F8900089A
68121 +:10668000910700008F8400200100282130E3003FA3
68122 +:106690008F86002C106B000800003821AFA9001075
68123 +:1066A0000E00040EAFAA0014A38000048FBF0018D0
68124 +:1066B00003E0000827BD00208D1900183C0F0800DA
68125 +:1066C0008DEF3D748F9800103C027FFF8D08001401
68126 +:1066D000345FFFFF033F682401F8702101AE60239F
68127 +:1066E00001883821AFA900100E00040EAFAA0014D3
68128 +:1066F0000A000E04A38000048F8700243C050800D4
68129 +:1067000094A53D923C0208008C423D8C90E6000D21
68130 +:106710000005240030C300201060002C00444025F8
68131 +:106720008F85001C00006021240B000190A30085D0
68132 +:1067300000004821240A00013C0F800035EE007063
68133 +:106740008DC70000AF8700308F5801780700FFFE2B
68134 +:106750003C038000347900708F3800003C0508004D
68135 +:106760008CA500743C0D08008DAD007003077823E4
68136 +:1067700000AF38210000102100EF302B01A22021B2
68137 +:10678000008618213C010800AC2700743C01080079
68138 +:10679000AC230070AF4B01483C1908008F393D9481
68139 +:1067A000A7490144A74A0146AF59014C3C0B0800D8
68140 +:1067B000916B3D91A34B0152AF4801543C0810002E
68141 +:1067C000A74C015803E00008AF4801788F4B0E1C1E
68142 +:1067D0003C0A08008D4A3D7497490E16974D0E14D9
68143 +:1067E00001456021312AFFFF0A000E2731A9FFFF72
68144 +:1067F0008F8300249064000D308200201040002917
68145 +:10680000000000000000482100005021000040214D
68146 +:106810003C07800034EB00708D670000AF870030CC
68147 +:106820008F4C01780580FFFE3C0D800035AC007078
68148 +:106830008D8B00003C0508008CA500743C0408000A
68149 +:106840008C8400700167302300A67821000010219D
68150 +:1068500001E6C82B0082C021031970213C01080009
68151 +:10686000AC2F00743C010800AC2E0070AF49014809
68152 +:106870003C0D08008DAD3D94A7480144240900401B
68153 +:10688000A74A01463C081000240AFF91AF4D014C75
68154 +:10689000A34A0152AF490154A740015803E0000840
68155 +:1068A000AF4801788F490E1897460E1297450E1083
68156 +:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F
68157 +:1068C00027BDFFF89064000D308200201040003A90
68158 +:1068D00000000000240B000100004821240A0001F0
68159 +:1068E0003C088000350700708CE30000AF83003067
68160 +:1068F0008F4C01780580FFFE3C0E80003C040800B0
68161 +:1069000090843DD035C700708CEC00003C05080039
68162 +:106910008CA50074A3A400033C1908008F390070F3
68163 +:106920008FAD00000183302300A638210000102124
68164 +:106930000322782100E6C02B01F8602101AE40253A
68165 +:10694000AFA800003C010800AC2700743C0108001F
68166 +:10695000AC2C00709346010A3C04080090843DD1A1
68167 +:10696000A3A00002A3A600018FA300003C0580FFA6
68168 +:106970003099007F34A2FFFF006278240019C6001E
68169 +:1069800001F87025240D3000AF4E014C27BD0008E2
68170 +:10699000AF4D0154A7400158AF4B0148A7490144EE
68171 +:1069A000A74A01463C091000240AFF80A34A01526D
68172 +:1069B00003E00008AF4901788F4B0E1897460E127E
68173 +:1069C00097450E1030CAFFFF0A000E9130A9FFFF55
68174 +:1069D0008F85001C2402008090A40085308300C0B5
68175 +:1069E000106200058F8600208F8800088F87000CBA
68176 +:1069F000ACC800C8ACC700C403E000080000000039
68177 +:106A00003C0A0800254A39543C09080025293A2047
68178 +:106A10003C08080025082DD43C07080024E73B3437
68179 +:106A20003C06080024C637C43C05080024A5353CB4
68180 +:106A30003C040800248431643C0308002463385C6F
68181 +:106A40003C020800244236303C010800AC2A3D508C
68182 +:106A50003C010800AC293D4C3C010800AC283D48F5
68183 +:106A60003C010800AC273D543C010800AC263D64C5
68184 +:106A70003C010800AC253D5C3C010800AC243D58BD
68185 +:106A80003C010800AC233D683C010800AC223D609D
68186 +:086A900003E000080000000013
68187 +:00000001FF
68188 diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
68189 new file mode 100644
68190 index 0000000..43d7c4f
68191 --- /dev/null
68192 +++ b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
68193 @@ -0,0 +1,6496 @@
68194 +:10000000080001180800000000005594000000C816
68195 +:1000100000000000000000000000000008005594EF
68196 +:10002000000000380000565C080000A00800000036
68197 +:100030000000574400005694080059200000008436
68198 +:100040000000ADD808005744000001C00000AE5CBD
68199 +:100050000800321008000000000092580000B01C98
68200 +:10006000000000000000000000000000080092589E
68201 +:100070000000033C000142740800049008000400E2
68202 +:10008000000012FC000145B000000000000000006C
68203 +:1000900000000000080016FC00000004000158AC3D
68204 +:1000A000080000A80800000000003D00000158B052
68205 +:1000B00000000000000000000000000008003D00FB
68206 +:1000C00000000030000195B00A000046000000006A
68207 +:1000D000000000000000000D636F6D362E322E31DF
68208 +:1000E00062000000060201020000000000000003A0
68209 +:1000F000000000C800000032000000030000000003
68210 +:1001000000000000000000000000000000000000EF
68211 +:1001100000000010000001360000EA600000000549
68212 +:1001200000000000000000000000000000000008C7
68213 +:1001300000000000000000000000000000000000BF
68214 +:1001400000000000000000000000000000000000AF
68215 +:10015000000000000000000000000000000000009F
68216 +:10016000000000020000000000000000000000008D
68217 +:10017000000000000000000000000000000000007F
68218 +:10018000000000000000000000000010000000005F
68219 +:10019000000000000000000000000000000000005F
68220 +:1001A000000000000000000000000000000000004F
68221 +:1001B000000000000000000000000000000000003F
68222 +:1001C000000000000000000000000000000000002F
68223 +:1001D000000000000000000000000000000000001F
68224 +:1001E0000000000010000003000000000000000DEF
68225 +:1001F0000000000D3C020800244256083C030800A1
68226 +:1002000024635754AC4000000043202B1480FFFDB2
68227 +:10021000244200043C1D080037BD9FFC03A0F021D0
68228 +:100220003C100800261001183C1C0800279C5608AA
68229 +:100230000E000256000000000000000D27BDFFB4B4
68230 +:10024000AFA10000AFA20004AFA30008AFA4000C50
68231 +:10025000AFA50010AFA60014AFA70018AFA8001CF0
68232 +:10026000AFA90020AFAA0024AFAB0028AFAC002C90
68233 +:10027000AFAD0030AFAE0034AFAF0038AFB8003C28
68234 +:10028000AFB90040AFBC0044AFBF00480E001544FA
68235 +:10029000000000008FBF00488FBC00448FB90040B1
68236 +:1002A0008FB8003C8FAF00388FAE00348FAD003078
68237 +:1002B0008FAC002C8FAB00288FAA00248FA90020C0
68238 +:1002C0008FA8001C8FA700188FA600148FA5001000
68239 +:1002D0008FA4000C8FA300088FA200048FA1000040
68240 +:1002E00027BD004C3C1B60108F7A5030377B502864
68241 +:1002F00003400008AF7A00008F82002427BDFFE092
68242 +:10030000AFB00010AFBF0018AFB100148C42000CAA
68243 +:100310003C1080008E110100104000348FBF001887
68244 +:100320000E000D84000000008F85002024047FFF54
68245 +:100330000091202BACB100008E030104960201084D
68246 +:1003400000031C003042FFFF00621825ACA300042C
68247 +:100350009202010A96030114304200FF3063FFFF4E
68248 +:100360000002140000431025ACA200089603010C03
68249 +:100370009602010E00031C003042FFFF00621825A8
68250 +:10038000ACA3000C960301109602011200031C009E
68251 +:100390003042FFFF00621825ACA300108E02011846
68252 +:1003A000ACA200148E02011CACA20018148000083C
68253 +:1003B0008F820024978200003C0420050044182509
68254 +:1003C00024420001ACA3001C0A0000C6A782000062
68255 +:1003D0003C0340189442001E00431025ACA2001CB0
68256 +:1003E0000E000DB8240400018FBF00188FB1001457
68257 +:1003F0008FB000100000102103E0000827BD00208E
68258 +:100400003C0780008CE202B834E50100044100089A
68259 +:10041000240300013C0208008C42006024420001D9
68260 +:100420003C010800AC22006003E0000800601021DD
68261 +:100430003C0208008C42005C8CA4002094A30016AF
68262 +:100440008CA6000494A5000E24420001ACE40280B6
68263 +:100450002463FFFC3C010800AC22005C3C0210005D
68264 +:10046000A4E30284A4E5028600001821ACE6028819
68265 +:10047000ACE202B803E000080060102127BDFFE0F5
68266 +:100480003C028000AFB0001034420100AFBF001C3E
68267 +:10049000AFB20018AFB100148C43000094450008BF
68268 +:1004A0002462FE002C42038110400003000381C23D
68269 +:1004B0000A00010226100004240201001462000553
68270 +:1004C0003C1180003C02800890420004305000FF44
68271 +:1004D0003C11800036320100964300143202000FB6
68272 +:1004E00000021500004310253C0308008C63004403
68273 +:1004F00030A40004AE220080246300013C01080007
68274 +:10050000AC2300441080000730A200028FBF001C03
68275 +:100510008FB200188FB100148FB000100A0000CE07
68276 +:1005200027BD00201040002D0000182130A20080BF
68277 +:1005300010400005362200708E44001C0E000C672F
68278 +:10054000240500A0362200708C4400008F82000C2D
68279 +:10055000008210232C43012C10600004AF82001095
68280 +:10056000240300010A000145AF84000C8E42000400
68281 +:100570003C036020AF84000CAC6200143C02080015
68282 +:100580008C42005850400015000018218C62000475
68283 +:10059000240301FE304203FF144300100000182121
68284 +:1005A0002E020004104000032E0200080A00014041
68285 +:1005B0000000802114400003000000000A000140F8
68286 +:1005C0002610FFF90000000D2402000202021004B0
68287 +:1005D0003C036000AC626914000018218FBF001C4E
68288 +:1005E0008FB200188FB100148FB00010006010217E
68289 +:1005F00003E0000827BD00203C0480008C8301003C
68290 +:1006000024020100506200033C0280080000000D3B
68291 +:100610003C02800890430004000010213063000F6A
68292 +:1006200000031D0003E00008AC8300800004188074
68293 +:100630002782FF9C00621821000410C00044102390
68294 +:100640008C640000000210C03C030800246356E4E0
68295 +:10065000004310213C038000AC64009003E00008DC
68296 +:10066000AF8200243C0208008C42011410400019A3
68297 +:100670003084400030A2007F000231C03C02020002
68298 +:100680001080001400A218253C026020AC43001426
68299 +:100690003C0408008C8456B83C0308008C630110AD
68300 +:1006A0003C02800024050900AC4500200086202182
68301 +:1006B000246300013C028008AC4400643C01080053
68302 +:1006C000AC2301103C010800AC2456B803E000083C
68303 +:1006D000000000003C02602003E00008AC4500146C
68304 +:1006E00003E000080000102103E0000800001021D2
68305 +:1006F00030A2000810400008240201003C0208005B
68306 +:100700008C42010C244200013C010800AC22010C87
68307 +:1007100003E0000800000000148200080000000050
68308 +:100720003C0208008C4200FC244200013C0108000D
68309 +:10073000AC2200FC0A0001A330A200203C02080009
68310 +:100740008C420084244200013C010800AC22008459
68311 +:1007500030A200201040000830A200103C02080027
68312 +:100760008C420108244200013C010800AC2201082F
68313 +:1007700003E0000800000000104000080000000036
68314 +:100780003C0208008C420104244200013C010800A4
68315 +:10079000AC22010403E00008000000003C02080055
68316 +:1007A0008C420100244200013C010800AC220100FF
68317 +:1007B00003E000080000000027BDFFE0AFB1001417
68318 +:1007C0003C118000AFB20018AFBF001CAFB00010EA
68319 +:1007D0003632010096500008320200041040000733
68320 +:1007E000320300028FBF001C8FB200188FB10014BB
68321 +:1007F0008FB000100A0000CE27BD00201060000B53
68322 +:10080000020028218E2401000E00018A0000000051
68323 +:100810003202008010400003240500A10E000C6786
68324 +:100820008E44001C0A0001E3240200018E2301040F
68325 +:100830008F82000810430006020028218E24010048
68326 +:100840000E00018A000000008E220104AF82000821
68327 +:10085000000010218FBF001C8FB200188FB1001450
68328 +:100860008FB0001003E0000827BD00202C82000498
68329 +:1008700014400002000018212483FFFD240200021E
68330 +:10088000006210043C03600003E00008AC626914DD
68331 +:1008900027BDFFE0AFBF001CAFB20018AFB100141E
68332 +:1008A000AFB000103C048000948201083043700017
68333 +:1008B000240220001062000A2862200154400052E5
68334 +:1008C0008FBF001C24024000106200482402600018
68335 +:1008D0001062004A8FBF001C0A0002518FB200183C
68336 +:1008E00034820100904300098C5000189451000C90
68337 +:1008F000240200091062001C0000902128620009F7
68338 +:10090000144000218F8200242402000A5062001249
68339 +:10091000323100FF2402000B1062000F00000000C3
68340 +:100920002402000C146200188F8200243C0208008C
68341 +:100930008C4256B824030900AC83002000501021DB
68342 +:100940003C038008AC6200643C010800AC2256B84D
68343 +:100950000A0002508FBF001C0E0001E900102602A1
68344 +:100960000A0002308F8200240E0001E900102602E6
68345 +:100970003C0380089462001A8C72000C3042FFFF26
68346 +:10098000020280258F8200248C42000C5040001E01
68347 +:100990008FBF001C0E000D84000000003C02800090
68348 +:1009A00034420100944300088F82002400031C009D
68349 +:1009B0009444001E8F82002000641825AC50000073
68350 +:1009C00024040001AC510004AC520008AC40000CFF
68351 +:1009D000AC400010AC400014AC4000180E000DB844
68352 +:1009E000AC43001C0A0002508FBF001C0E000440E4
68353 +:1009F000000000000A0002508FBF001C0E000C9F78
68354 +:100A0000000000008FBF001C8FB200188FB10014CF
68355 +:100A10008FB000100000102103E0000827BD002067
68356 +:100A200027BDFFD8AFB400203C036010AFBF002447
68357 +:100A3000AFB3001CAFB20018AFB10014AFB00010DC
68358 +:100A40008C6450002402FF7F3C1408002694563822
68359 +:100A5000008220243484380CAC6450003C028000B6
68360 +:100A6000240300370E0014B0AC4300083C07080014
68361 +:100A700024E70618028010212404001D2484FFFFAF
68362 +:100A8000AC4700000481FFFD244200043C02080042
68363 +:100A9000244207C83C010800AC2256403C02080032
68364 +:100AA000244202303C030800246306203C04080072
68365 +:100AB000248403B43C05080024A506F03C06080085
68366 +:100AC00024C62C9C3C010800AC2256803C02080045
68367 +:100AD000244205303C010800AC2756843C01080044
68368 +:100AE000AC2656943C010800AC23569C3C010800FF
68369 +:100AF000AC2456A03C010800AC2556A43C010800DB
68370 +:100B0000AC2256A83C010800AC23563C3C0108002E
68371 +:100B1000AC2456443C010800AC2056603C0108005F
68372 +:100B2000AC2556643C010800AC2056703C0108001E
68373 +:100B3000AC27567C3C010800AC2656903C010800CE
68374 +:100B4000AC2356980E00056E00000000AF80000C2C
68375 +:100B50003C0280008C5300008F8300043C0208009C
68376 +:100B60008C420020106200213262000700008821C0
68377 +:100B70002792FF9C3C100800261056E43C02080017
68378 +:100B80008C42002024050001022518040043202483
68379 +:100B90008F820004004310245044000C26310001D1
68380 +:100BA00010800008AF9000248E4300003C028000BB
68381 +:100BB000AC4300900E000D4BAE05000C0A0002C1C4
68382 +:100BC00026310001AE00000C263100012E22000269
68383 +:100BD000261000381440FFE9265200043C020800A9
68384 +:100BE0008C420020AF820004326200071040FFD91F
68385 +:100BF0003C028000326200011040002D326200028F
68386 +:100C00003C0580008CA2010000002021ACA2002045
68387 +:100C10008CA301042C42078110400008ACA300A85B
68388 +:100C200094A2010824032000304270001443000302
68389 +:100C30003C02800890420005304400FF0E0001593C
68390 +:100C4000000000003C0280009042010B304300FF96
68391 +:100C50002C62001E54400004000310800E00018628
68392 +:100C60000A0002EC00000000005410218C42000039
68393 +:100C70000040F80900000000104000043C02800021
68394 +:100C80008C4301043C026020AC4300143C02080089
68395 +:100C90008C4200343C0440003C03800024420001AC
68396 +:100CA000AC6401383C010800AC220034326200021E
68397 +:100CB00010400010326200043C1080008E0201409F
68398 +:100CC000000020210E000159AE0200200E00038317
68399 +:100CD000000000003C024000AE0201783C02080027
68400 +:100CE0008C420038244200013C010800AC2200384C
68401 +:100CF000326200041040FF973C0280003C108000EC
68402 +:100D00008E020180000020210E000159AE02002059
68403 +:100D10008E03018024020F00546200073C02800809
68404 +:100D20008E0201883C0300E03042FFFF00431025A3
68405 +:100D30000A000328AE020080344200809042000086
68406 +:100D400024030050304200FF14430007000000005D
68407 +:100D50000E000362000000001440000300000000C9
68408 +:100D60000E000971000000003C0208008C42003CAB
68409 +:100D70003C0440003C03800024420001AC6401B804
68410 +:100D80003C010800AC22003C0A0002A33C028000A7
68411 +:100D90003C02900034420001008220253C02800089
68412 +:100DA000AC4400203C0380008C6200200440FFFE25
68413 +:100DB0000000000003E00008000000003C0280008A
68414 +:100DC000344300010083202503E00008AC440020E8
68415 +:100DD00027BDFFE0AFB10014AFB000100080882144
68416 +:100DE000AFBF00180E00033230B000FF8F83FF94B6
68417 +:100DF000022020219062002502028025A07000259B
68418 +:100E00008C7000183C0280000E00033D020280241A
68419 +:100E10001600000B8FBF00183C0480008C8201F884
68420 +:100E20000440FFFE348201C024030002AC510000E4
68421 +:100E3000A04300043C021000AC8201F88FBF0018F0
68422 +:100E40008FB100148FB0001003E0000827BD002010
68423 +:100E500027BDFFE83C028000AFBF00103442018094
68424 +:100E6000944300048C4400083063020010600005C5
68425 +:100E7000000028210E00100C000000000A0003787A
68426 +:100E8000240500013C02FF000480000700821824B2
68427 +:100E90003C02040014620004240500018F82FF94C8
68428 +:100EA00090420008240500018FBF001000A010210F
68429 +:100EB00003E0000827BD00188F82FF982405000179
68430 +:100EC000A040001A3C028000344201400A00034264
68431 +:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E
68432 +:100EE000AFB20018AFB10014AFB0001090A2000074
68433 +:100EF000304400FF38830020388200300003182B74
68434 +:100F00000002102B0062182410600003240200501D
68435 +:100F1000148200A88FBF001C90A20005304200017F
68436 +:100F2000104000A48FBF001C3C02800034420140EE
68437 +:100F3000904200082443FFFF2C6200051040009EF1
68438 +:100F40008FB20018000310803C030800246355ACE6
68439 +:100F5000004310218C420000004000080000000007
68440 +:100F60003C028000345101400E0003328E24000008
68441 +:100F70008F92FF948E2200048E50000C1602000205
68442 +:100F800024020001AE42000C0E00033D8E2400003E
68443 +:100F90008E220004145000068FBF001C8FB2001870
68444 +:100FA0008FB100148FB000100A000F7827BD002009
68445 +:100FB0008E42000C0A000419000000003C0480006E
68446 +:100FC0003482014094A300108C4200043063FFFF80
68447 +:100FD0001443001C0000000024020001A4A2001021
68448 +:100FE0008C8202380441000F3C0380003C02003F29
68449 +:100FF0003448F0003C0760003C06FFC08CE22BBC8C
68450 +:1010000000461824004810240002130200031D8229
68451 +:10101000106200583C0280008C8202380440FFF7C6
68452 +:101020003C038000346201408C44000034620200C2
68453 +:10103000AC4400003C021000AC6202380A00043BE1
68454 +:101040008FBF001C94A200100A00041900000000C9
68455 +:10105000240200201482000F3C0280003C03800028
68456 +:1010600094A20012346301408C6300043042FFFFFD
68457 +:10107000146200050000000024020001A4A2001276
68458 +:101080000A0004028FBF001C94A200120A00041977
68459 +:1010900000000000345101400E0003328E24000095
68460 +:1010A0008F92FF948E230004964200123050FFFF6F
68461 +:1010B0001603000224020001A64200120E00033DA6
68462 +:1010C0008E2400008E220004160200068FBF001C32
68463 +:1010D0008FB200188FB100148FB000100A00037C8B
68464 +:1010E00027BD0020964200120A00041900000000EB
68465 +:1010F0003C03800094A20014346301408C6300041C
68466 +:101100003042FFFF14620008240200018FBF001C60
68467 +:101110008FB200188FB100148FB00010A4A2001479
68468 +:101120000A00146327BD002094A20014144000217B
68469 +:101130008FBF001C0A000435000000003C03800043
68470 +:1011400094A20016346301408C6300043042FFFF18
68471 +:101150001462000D240200018FBF001C8FB2001822
68472 +:101160008FB100148FB00010A4A200160A000B1457
68473 +:1011700027BD00209442007824420004A4A200105D
68474 +:101180000A00043B8FBF001C94A200162403000138
68475 +:101190003042FFFF144300078FBF001C3C020800D1
68476 +:1011A0008C420070244200013C010800AC22007017
68477 +:1011B0008FBF001C8FB200188FB100148FB00010C9
68478 +:1011C00003E0000827BD002027BDFFD8AFB20018FC
68479 +:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB
68480 +:1011E000AFB000103C028000345101008C5001006F
68481 +:1011F0009242000092230009304400FF2402001FA5
68482 +:10120000106200AB28620020104000192402003850
68483 +:101210002862000A1040000D2402000B286200081A
68484 +:101220001040002E8F820024046001042862000216
68485 +:101230001440002A8F820024240200061062002637
68486 +:101240008FBF00200A00055F8FB3001C1062006092
68487 +:101250002862000B144000FA8FBF00202402000E09
68488 +:10126000106200788F8200240A00055F8FB3001C93
68489 +:10127000106200D2286200391040000A2402008067
68490 +:1012800024020036106200E528620037104000C3D7
68491 +:1012900024020035106200D98FBF00200A00055FCC
68492 +:1012A0008FB3001C1062002D2862008110400006E0
68493 +:1012B000240200C824020039106200C98FBF002038
68494 +:1012C0000A00055F8FB3001C106200A28FBF0020D0
68495 +:1012D0000A00055F8FB3001C8F8200248C42000C33
68496 +:1012E000104000D78FBF00200E000D8400000000CA
68497 +:1012F0003C038000346301008C6200008F85002075
68498 +:10130000946700089466000CACA200008C64000492
68499 +:101310008F82002400063400ACA400049448001E10
68500 +:101320008C62001800073C0000E83825ACA20008D9
68501 +:101330008C62001C24040001ACA2000C9062000A24
68502 +:1013400000C23025ACA60010ACA00014ACA0001860
68503 +:10135000ACA7001C0A00051D8FBF00208F8200244F
68504 +:101360008C42000C104000B68FBF00200E000D8490
68505 +:10137000000000008F820024962400089625000CAF
68506 +:101380009443001E000422029626000E8F82002045
68507 +:10139000000426000083202500052C003C0300806B
68508 +:1013A00000A6282500832025AC400000AC400004A6
68509 +:1013B000AC400008AC40000CAC450010AC40001440
68510 +:1013C000AC400018AC44001C0A00051C24040001B9
68511 +:1013D0009622000C14400018000000009242000504
68512 +:1013E0003042001014400014000000000E000332D0
68513 +:1013F0000200202192420005020020213442001008
68514 +:101400000E00033DA242000592420000240300208A
68515 +:10141000304200FF10430089020020218FBF0020CE
68516 +:101420008FB3001C8FB200188FB100148FB0001062
68517 +:101430000A00107527BD00280000000D0A00055E97
68518 +:101440008FBF00208C42000C1040007D8FBF002019
68519 +:101450000E000D84000000008E2200048F84002006
68520 +:101460009623000CAC8200003C0280089445002CBE
68521 +:101470008F82002400031C0030A5FFFF9446001E4D
68522 +:101480003C02400E0065182500C23025AC830004E4
68523 +:10149000AC800008AC80000CAC800010AC80001464
68524 +:1014A000AC800018AC86001C0A00051C2404000156
68525 +:1014B0000E000332020020218F93FF9802002021AA
68526 +:1014C0000E00033DA660000C020020210E00034226
68527 +:1014D000240500018F8200248C42000C104000582B
68528 +:1014E0008FBF00200E000D84000000009622000C2B
68529 +:1014F0008F83002000021400AC700000AC62000476
68530 +:10150000AC6000088E4400388F820024AC64000C6C
68531 +:101510008E46003C9445001E3C02401FAC66001005
68532 +:1015200000A228258E62000424040001AC6200148D
68533 +:10153000AC600018AC65001C8FBF00208FB3001C8E
68534 +:101540008FB200188FB100148FB000100A000DB8D0
68535 +:1015500027BD0028240200201082003A8FB3001C0F
68536 +:101560000E000F5E00000000104000358FBF00200D
68537 +:101570003C0480008C8201F80440FFFE348201C0EC
68538 +:1015800024030002AC500000A04300043C02100001
68539 +:10159000AC8201F80A00055E8FBF00200200202106
68540 +:1015A0008FBF00208FB3001C8FB200188FB10014C2
68541 +:1015B0008FB000100A000EA727BD00289625000C4A
68542 +:1015C000020020218FBF00208FB3001C8FB20018B3
68543 +:1015D0008FB100148FB000100A000ECC27BD002878
68544 +:1015E000020020218FB3001C8FB200188FB10014AD
68545 +:1015F0008FB000100A000EF727BD00289225000DBD
68546 +:10160000020020218FB3001C8FB200188FB100148C
68547 +:101610008FB000100A000F4827BD002802002021CB
68548 +:101620008FBF00208FB3001C8FB200188FB1001441
68549 +:101630008FB000100A000F1F27BD00288FBF0020A9
68550 +:101640008FB3001C8FB200188FB100148FB0001040
68551 +:1016500003E0000827BD00283C0580008CA202782A
68552 +:101660000440FFFE34A2024024030002AC44000008
68553 +:10167000A04300043C02100003E00008ACA2027882
68554 +:10168000A380001803E00008A38000193C03800039
68555 +:101690008C6202780440FFFE8F82001CAC62024024
68556 +:1016A00024020002A06202443C02100003E0000891
68557 +:1016B000AC6202783C02600003E000088C425404F3
68558 +:1016C0009083003024020005008040213063003FF9
68559 +:1016D0000000482114620005000050219082004C57
68560 +:1016E0009483004E304900FF306AFFFFAD00000CCC
68561 +:1016F000AD000010AD000024950200148D05001C03
68562 +:101700008D0400183042FFFF004910230002110031
68563 +:10171000000237C3004038210086202300A2102B8E
68564 +:101720000082202300A72823AD05001CAD0400186B
68565 +:10173000A5090014A5090020A50A001603E0000869
68566 +:10174000A50A002203E000080000000027BDFFD822
68567 +:10175000AFB200183C128008AFB40020AFB3001C39
68568 +:10176000AFB10014AFBF0024AFB00010365101007C
68569 +:101770003C0260008C4254049222000C3C1408008D
68570 +:10178000929400F7304300FF2402000110620032FF
68571 +:101790000080982124020002146200353650008037
68572 +:1017A0000E00143D000000009202004C2403FF8054
68573 +:1017B0003C0480003042007F000211C024420240FD
68574 +:1017C0000262102100431824AC8300949245000863
68575 +:1017D0009204004C3042007F3C03800614850007D1
68576 +:1017E000004380212402FFFFA22200112402FFFFF8
68577 +:1017F000A62200120A0005D22402FFFF9602002052
68578 +:10180000A222001196020022A62200128E020024BB
68579 +:101810003C048008AE2200143485008090A2004C65
68580 +:1018200034830100A06200108CA2003CAC6200185E
68581 +:101830008C820068AC6200F48C820064AC6200F0C0
68582 +:101840008C82006CAC6200F824020001A0A2006847
68583 +:101850000A0005EE3C0480080E001456000000004B
68584 +:1018600036420080A04000680A0005EE3C04800873
68585 +:10187000A2000068A20000690A0006293C02800854
68586 +:10188000348300808C62003834850100AC62006CC7
68587 +:1018900024020001A062006990A200D59083000894
68588 +:1018A000305100FF3072007F12320019001111C058
68589 +:1018B00024420240026210212403FF8000431824C6
68590 +:1018C0003C048000AC8300943042007F3C038006DF
68591 +:1018D000004380218E02000C1040000D02002021E8
68592 +:1018E0000E00057E0000000026220001305100FF9E
68593 +:1018F0009203003C023410260002102B0002102339
68594 +:101900003063007F022288240A0005F8A203003C0D
68595 +:101910003C088008350401008C8200E03507008017
68596 +:10192000ACE2003C8C8200E0AD02000090E5004C8F
68597 +:10193000908600D590E3004C908400D52402FF806F
68598 +:1019400000A228243063007F308400FF00A62825F1
68599 +:101950000064182A1060000230A500FF38A500803E
68600 +:10196000A0E5004CA10500093C0280089043000E50
68601 +:10197000344400803C058000A043000A8C8300189A
68602 +:101980003C027FFF3442FFFF00621824AC83001842
68603 +:101990008CA201F80440FFFE00000000ACB301C0BF
68604 +:1019A0008FBF00248FB400208FB3001C8FB20018AB
68605 +:1019B0008FB100148FB0001024020002A0A201C455
68606 +:1019C00027BD00283C02100003E00008ACA201F88B
68607 +:1019D00090A2000024420001A0A200003C030800E5
68608 +:1019E0008C6300F4304200FF144300020080302179
68609 +:1019F000A0A0000090A200008F84001C000211C073
68610 +:101A00002442024024830040008220212402FF80DF
68611 +:101A1000008220243063007F3C02800A006218218B
68612 +:101A20003C028000AC44002403E00008ACC300008A
68613 +:101A300094820006908300058C85000C8C86001033
68614 +:101A40008C8700188C88001C8C8400203C010800C6
68615 +:101A5000A42256C63C010800A02356C53C0108003C
68616 +:101A6000AC2556CC3C010800AC2656D03C01080001
68617 +:101A7000AC2756D83C010800AC2856DC3C010800D5
68618 +:101A8000AC2456E003E00008000000003C0280089F
68619 +:101A9000344201008C4400343C038000346504006F
68620 +:101AA000AC6400388C420038AF850028AC62003C42
68621 +:101AB0003C020005AC6200300000000000000000A5
68622 +:101AC00003E00008000000003C020006308400FF34
68623 +:101AD000008220253C028000AC4400300000000061
68624 +:101AE00000000000000000003C0380008C62000049
68625 +:101AF000304200101040FFFD3462040003E0000893
68626 +:101B0000AF82002894C200003C080800950800CA73
68627 +:101B100030E7FFFF0080482101021021A4C200002D
68628 +:101B200094C200003042FFFF00E2102B544000013D
68629 +:101B3000A4C7000094A200003C0308008C6300CC02
68630 +:101B400024420001A4A2000094A200003042FFFF42
68631 +:101B5000144300073C0280080107102BA4A00000DA
68632 +:101B60005440000101003821A4C700003C02800855
68633 +:101B7000344601008CC3002894A200003C0480007D
68634 +:101B80003042FFFE000210C000621021AC82003C17
68635 +:101B90008C82003C006218231860000400000000E2
68636 +:101BA0008CC200240A0006BA244200018CC2002420
68637 +:101BB000AC8200383C020050344200103C038000EC
68638 +:101BC000AC620030000000000000000000000000D7
68639 +:101BD0008C620000304200201040FFFD0000000039
68640 +:101BE00094A200003C04800030420001000210C0BA
68641 +:101BF000004410218C430400AD2300008C420404F7
68642 +:101C0000AD2200043C02002003E00008AC8200305A
68643 +:101C100027BDFFE0AFB20018AFB10014AFB00010A5
68644 +:101C2000AFBF001C94C2000000C080213C1208001D
68645 +:101C3000965200C624420001A6020000960300004E
68646 +:101C400094E2000000E03021144300058FB1003021
68647 +:101C50000E00068F024038210A0006F10000000045
68648 +:101C60008C8300048C82000424420040046100073D
68649 +:101C7000AC8200048C8200040440000400000000D8
68650 +:101C80008C82000024420001AC8200009602000019
68651 +:101C90003042FFFF50520001A600000096220000D3
68652 +:101CA00024420001A62200003C02800834420100C8
68653 +:101CB000962300009442003C144300048FBF001C94
68654 +:101CC00024020001A62200008FBF001C8FB2001862
68655 +:101CD0008FB100148FB0001003E0000827BD002072
68656 +:101CE00027BDFFE03C028008AFBF0018344201006E
68657 +:101CF0008C4800343C03800034690400AC68003830
68658 +:101D00008C42003830E700FFAF890028AC62003C0D
68659 +:101D10003C020005AC620030000000000000000042
68660 +:101D200000000000000000000000000000000000B3
68661 +:101D30008C82000C8C82000C97830016AD22000070
68662 +:101D40008C82001000604021AD2200048C820018BB
68663 +:101D5000AD2200088C82001CAD22000C8CA2001465
68664 +:101D6000AD2200108C820020AD220014908200056C
68665 +:101D7000304200FF00021200AD2200188CA20018B1
68666 +:101D8000AD22001C8CA2000CAD2200208CA2001001
68667 +:101D9000AD2200248CA2001CAD2200288CA20020C1
68668 +:101DA000AD22002C3402FFFFAD260030AD20003400
68669 +:101DB000506200013408FFFFAD28003850E00011E8
68670 +:101DC0003C0280083C048008348401009482005066
68671 +:101DD0003042FFFFAD22003C9483004494850044D0
68672 +:101DE000240200013063FFFF000318C200641821C1
68673 +:101DF0009064006430A5000700A210040A00075C8C
68674 +:101E00000044102534420100AD20003C94430044BE
68675 +:101E1000944400443063FFFF000318C2006218219D
68676 +:101E200030840007906500642402000100821004E1
68677 +:101E30000002102700451024A0620064000000008A
68678 +:101E400000000000000000003C0200063442004098
68679 +:101E50003C038000AC620030000000000000000085
68680 +:101E6000000000008C620000304200101040FFFDB6
68681 +:101E70003C06800834C201503463040034C7014A70
68682 +:101E800034C4013434C5014034C60144AFA200104B
68683 +:101E90000E0006D2AF8300288FBF001803E00008B1
68684 +:101EA00027BD00208F8300143C0608008CC600E884
68685 +:101EB0008F82001C30633FFF000319800046102111
68686 +:101EC000004310212403FF80004318243C068000B7
68687 +:101ED000ACC300283042007F3C03800C004330211B
68688 +:101EE00090C2000D30A500FF0000382134420010E0
68689 +:101EF000A0C2000D8F8900143C028008344201000A
68690 +:101F00009443004400091382304800032402000176
68691 +:101F1000A4C3000E1102000B2902000210400005AC
68692 +:101F2000240200021100000C240300010A0007A48F
68693 +:101F30000000182111020006000000000A0007A49A
68694 +:101F4000000018218CC2002C0A0007A424430001C1
68695 +:101F50008CC20014244300018CC200180043102BD3
68696 +:101F60005040000A240700012402002714A20003A5
68697 +:101F70003C0380080A0007B1240700013463010014
68698 +:101F80009462004C24420001A462004C00091382B8
68699 +:101F9000304300032C620002104000090080282119
68700 +:101FA000146000040000000094C200340A0007C15D
68701 +:101FB0003046FFFF8CC600380A0007C10080282188
68702 +:101FC000000030213C040800248456C00A000706A3
68703 +:101FD0000000000027BDFF90AFB60068AFB50064F9
68704 +:101FE000AFB40060AFB3005CAFB20058AFB1005403
68705 +:101FF000AFBF006CAFB000508C9000000080B021EB
68706 +:102000003C0208008C4200E8960400328F83001CDA
68707 +:102010002414FF8030843FFF0062182100042180D7
68708 +:1020200000641821007410243C13800000A090214B
68709 +:1020300090A50000AE620028920400323C02800CA1
68710 +:102040003063007F00628821308400C02402004099
68711 +:10205000148200320000A8218E3500388E2200182C
68712 +:102060001440000224020001AE2200189202003C3B
68713 +:10207000304200201440000E8F83001C000511C068
68714 +:102080002442024000621821306400783C02008043
68715 +:102090000082202500741824AE630800AE64081086
68716 +:1020A0008E2200188E03000800431021AE22001873
68717 +:1020B0008E22002C8E230018244200010062182B6F
68718 +:1020C0001060004300000000924200002442000122
68719 +:1020D000A24200003C0308008C6300F4304200FF81
68720 +:1020E00050430001A2400000924200008F84001C77
68721 +:1020F000000211C024420240248300403063007F6C
68722 +:10210000008220213C02800A0094202400621821D1
68723 +:10211000AE6400240A0008D2AEC30000920300326D
68724 +:102120002402FFC000431024304200FF1440000589
68725 +:1021300024020001AE220018962200340A00084250
68726 +:102140003055FFFF8E22001424420001AE220018F9
68727 +:102150009202003000021600000216030441001C27
68728 +:10216000000000009602003227A400100080282101
68729 +:10217000A7A20016960200320000302124070001B9
68730 +:102180003042FFFFAF8200140E000706AFA0001C14
68731 +:10219000960200328F83001C3C0408008C8400E807
68732 +:1021A00030423FFF000211800064182100621821B4
68733 +:1021B00000741024AE62002C3063007F3C02800E5D
68734 +:1021C000006218219062000D3042007FA062000D75
68735 +:1021D0009222000D304200105040007892420000E0
68736 +:1021E0003C028008344401009482004C8EC30000FD
68737 +:1021F0003C130800967300C62442FFFFA482004CE3
68738 +:10220000946200329623000E3054FFFF3070FFFFBF
68739 +:102210003C0308008C6300D000701807A7A30038A7
68740 +:102220009482003E3063FFFF3042FFFF14620007DC
68741 +:10223000000000008C8200303C038000244200300B
68742 +:10224000AC62003C0A00086A8C82002C9482004038
68743 +:102250003042FFFF5462000927A400408C820038FE
68744 +:102260003C03800024420030AC62003C8C8200348D
68745 +:10227000AC6200380A0008793C03800027A50038CA
68746 +:1022800027A60048026038210E00068FA7A000484C
68747 +:102290008FA300403C02800024630030AC43003830
68748 +:1022A0008FA30044AC43003C3C0380003C0200058B
68749 +:1022B000AC6200303C028008344401009482004249
68750 +:1022C000346304003042FFFF0202102B1440000769
68751 +:1022D000AF8300289482004E9483004202021021B2
68752 +:1022E000004310230A00088F3043FFFF9483004E01
68753 +:1022F00094820042026318210050102300621823C8
68754 +:102300003063FFFF3C028008344401009482003CAB
68755 +:102310003042FFFF14430003000000000A00089F42
68756 +:10232000240300019482003C3042FFFF0062102B26
68757 +:10233000144000058F8200289482003C0062102324
68758 +:102340003043FFFF8F820028AC550000AC400004F2
68759 +:10235000AC540008AC43000C3C02000634420010B0
68760 +:102360003C038000AC620030000000000000000070
68761 +:10237000000000008C620000304200101040FFFDA1
68762 +:102380003C04800834840100001018C20064182145
68763 +:102390009065006432020007240600010046100424
68764 +:1023A00000451025A0620064948300429622000E2E
68765 +:1023B00050430001A386001892420000244200010D
68766 +:1023C000A24200003C0308008C6300F4304200FF8E
68767 +:1023D00050430001A2400000924200008F84001C84
68768 +:1023E000000211C0244202402483004000822021C8
68769 +:1023F0002402FF80008220243063007F3C02800A98
68770 +:10240000006218213C028000AC440024AEC30000EE
68771 +:102410008FBF006C8FB600688FB500648FB400600A
68772 +:102420008FB3005C8FB200588FB100548FB0005052
68773 +:1024300003E0000827BD007027BDFFD8AFB3001C24
68774 +:10244000AFB20018AFB10014AFB00010AFBF0020A2
68775 +:102450000080982100E0802130B1FFFF0E000D8444
68776 +:1024600030D200FF0000000000000000000000006B
68777 +:102470008F8200208F830024AC510000AC520004F6
68778 +:10248000AC530008AC40000CAC400010AC40001451
68779 +:10249000AC4000189463001E02038025AC50001C61
68780 +:1024A0000000000000000000000000002404000103
68781 +:1024B0008FBF00208FB3001C8FB200188FB10014A3
68782 +:1024C0008FB000100A000DB827BD002830A5FFFF0F
68783 +:1024D0000A0008DC30C600FF3C02800834430100DB
68784 +:1024E0009462000E3C080800950800C63046FFFFC5
68785 +:1024F00014C000043402FFFF946500EA0A000929B1
68786 +:102500008F84001C10C20027000000009462004E5F
68787 +:102510009464003C3045FFFF00A6102300A6182B52
68788 +:102520003087FFFF106000043044FFFF00C5102318
68789 +:1025300000E210233044FFFF0088102B1040000EF3
68790 +:1025400000E810233C028008344401002403000109
68791 +:1025500034420080A44300162402FFFFA482000E30
68792 +:10256000948500EA8F84001C0000302130A5FFFF15
68793 +:102570000A0009013C0760200044102A10400009AD
68794 +:102580003C0280083443008094620016304200010F
68795 +:10259000104000043C0280009442007E244200145B
68796 +:1025A000A462001603E000080000000027BDFFE061
68797 +:1025B0003C028008AFBF001CAFB0001834420100DD
68798 +:1025C000944300429442004C104000193068FFFFD1
68799 +:1025D0009383001824020001146200298FBF001C9D
68800 +:1025E0003C06800834D00100000810C200501021C1
68801 +:1025F000904200643103000734C70148304200FFB5
68802 +:10260000006210073042000134C9014E34C4012C6D
68803 +:1026100034C5013E1040001634C601420E0006D2F9
68804 +:10262000AFA90010960200420A0009463048FFFF99
68805 +:102630003C028008344401009483004494820042A8
68806 +:102640001043000F8FBF001C94820044A4820042FC
68807 +:1026500094820050A482004E8C820038AC820030FC
68808 +:1026600094820040A482003E9482004AA4820048E2
68809 +:102670008FBF001C8FB000180A00090427BD00207E
68810 +:102680008FB0001803E0000827BD002027BDFFA081
68811 +:10269000AFB1004C3C118000AFBF0058AFB3005445
68812 +:1026A000AFB20050AFB000483626018890C2000398
68813 +:1026B0003044007FA3A400108E32018090C200003D
68814 +:1026C0003043007F240200031062003BAF92001CE5
68815 +:1026D00028620004104000062402000424020002C4
68816 +:1026E000106200098FBF00580A000B0F8FB300540F
68817 +:1026F0001062004D240200051062014E8FBF005889
68818 +:102700000A000B0F8FB30054000411C002421021C5
68819 +:102710002404FF8024420240004410242643004049
68820 +:10272000AE2200243063007F3C02800A0062182140
68821 +:102730009062003CAFA3003C00441025A062003C26
68822 +:102740008FA3003C9062003C304200401040016C7E
68823 +:102750008FBF00583C108008A3800018361001007D
68824 +:102760008E0200E08C63003427A4003C27A50010F3
68825 +:10277000004310210E0007C3AE0200E093A2001038
68826 +:102780003C038000A20200D58C6202780440FFFE68
68827 +:102790008F82001CAC62024024020002A06202444C
68828 +:1027A0003C021000AC6202780E0009390000000003
68829 +:1027B0000A000B0E8FBF00583C05800890C3000133
68830 +:1027C00090A2000B1443014E8FBF005834A4008028
68831 +:1027D0008C8200189082004C90A200083C0260009D
68832 +:1027E0008C4254048C8300183C027FFF3442FFFF6C
68833 +:1027F000006218243C0208008C4200B4AC8300182C
68834 +:102800003C038000244200013C010800AC2200B4DB
68835 +:102810008C6201F80440FFFE8F82001CAC6201C094
68836 +:102820000A000AD6240200023C10800890C300016E
68837 +:102830009202000B144301328FBF005827A40018E6
68838 +:1028400036050110240600033C0260008C4254044B
68839 +:102850000E000E470000000027A40028360501F0F6
68840 +:102860000E000E47240600038FA200283603010045
68841 +:10287000AE0200648FA2002CAE0200688FA200306E
68842 +:10288000AE02006C93A40018906300D52402FF8070
68843 +:102890000082102400431025304900FF3084007F5F
68844 +:1028A0003122007F0082102A544000013929008023
68845 +:1028B000000411C0244202402403FF800242102180
68846 +:1028C00000431024AE220094264200403042007F94
68847 +:1028D0003C038006004340218FA3001C2402FFFF1D
68848 +:1028E000AFA800403C130800927300F71062003359
68849 +:1028F00093A2001995030014304400FF3063FFFFDA
68850 +:102900000064182B106000100000000095040014F3
68851 +:102910008D07001C8D0600183084FFFF0044202323
68852 +:102920000004210000E438210000102100E4202BE5
68853 +:1029300000C2302100C43021AD07001CAD060018D4
68854 +:102940000A000A2F93A20019950400148D07001C99
68855 +:102950008D0600183084FFFF008220230004210030
68856 +:10296000000010210080182100C2302300E4202B39
68857 +:1029700000C4302300E33823AD07001CAD06001867
68858 +:1029800093A200198FA30040A462001497A2001A1A
68859 +:10299000A46200168FA2001CAC6200108FA2001C63
68860 +:1029A000AC62000C93A20019A462002097A2001A46
68861 +:1029B000A46200228FA2001CAC6200243C048008A8
68862 +:1029C000348300808C6200388FA20020012088218F
68863 +:1029D000AC62003C8FA20020AC82000093A20018E1
68864 +:1029E000A062004C93A20018A0820009A0600068B9
68865 +:1029F00093A20018105100512407FF803229007F54
68866 +:102A0000000911C024420240024210213046007FDA
68867 +:102A10003C03800000471024AC6200943C02800616
68868 +:102A200000C2302190C2003CAFA60040000020212F
68869 +:102A300000471025A0C2003C8FA80040950200026C
68870 +:102A4000950300148D07001C3042FFFF3063FFFF29
68871 +:102A50008D060018004310230002110000E2382107
68872 +:102A600000E2102B00C4302100C23021AD07001C51
68873 +:102A7000AD06001895020002A5020014A50000167C
68874 +:102A80008D020008AD0200108D020008AD02000C9E
68875 +:102A900095020002A5020020A50000228D02000878
68876 +:102AA000AD0200249102003C304200401040001A68
68877 +:102AB000262200013C108008A3A90038A38000183A
68878 +:102AC000361001008E0200E08D03003427A4004080
68879 +:102AD00027A50038004310210E0007C3AE0200E016
68880 +:102AE00093A200383C038000A20200D58C620278D9
68881 +:102AF0000440FFFE8F82001CAC62024024020002F0
68882 +:102B0000A06202443C021000AC6202780E00093957
68883 +:102B100000000000262200013043007F14730004EF
68884 +:102B2000004020212403FF8002231024004320269C
68885 +:102B300093A200180A000A4B309100FF93A40018DA
68886 +:102B40008FA3001C2402FFFF1062000A308900FFDF
68887 +:102B500024820001248300013042007F14530005C9
68888 +:102B6000306900FF2403FF800083102400431026F7
68889 +:102B7000304900FF3C028008904200080120882173
68890 +:102B8000305000FF123000193222007F000211C0C5
68891 +:102B900002421021244202402403FF8000431824F3
68892 +:102BA0003C048000AC8300943042007F3C038006EC
68893 +:102BB000004310218C43000C004020211060000BCA
68894 +:102BC000AFA200400E00057E000000002623000199
68895 +:102BD0002405FF803062007F145300020225202468
68896 +:102BE000008518260A000AAF307100FF3C048008F7
68897 +:102BF000348400808C8300183C027FFF3442FFFF46
68898 +:102C000000621824AC8300183C0380008C6201F839
68899 +:102C10000440FFFE00000000AC7201C0240200026C
68900 +:102C2000A06201C43C021000AC6201F80A000B0E65
68901 +:102C30008FBF00583C04800890C300019082000BB5
68902 +:102C40001443002F8FBF0058349000809202000878
68903 +:102C500030420040104000200000000092020008B6
68904 +:102C60000002160000021603044100050240202164
68905 +:102C70000E000ECC240500930A000B0E8FBF0058E7
68906 +:102C80009202000924030018304200FF1443000D93
68907 +:102C900002402021240500390E000E64000030217E
68908 +:102CA0000E0003328F84001C8F82FF9424030012D5
68909 +:102CB000A04300090E00033D8F84001C0A000B0E88
68910 +:102CC0008FBF0058240500360E000E64000030212E
68911 +:102CD0000A000B0E8FBF00580E0003320240202165
68912 +:102CE000920200058F84001C344200200E00033D38
68913 +:102CF000A20200050E0010758F84001C8FBF0058C3
68914 +:102D00008FB300548FB200508FB1004C8FB0004889
68915 +:102D100003E0000827BD00603C0280083445010044
68916 +:102D20003C0280008C42014094A3000E0000302140
68917 +:102D300000402021AF82001C3063FFFF3402FFFF00
68918 +:102D4000106200063C0760202402FFFFA4A2000ED0
68919 +:102D500094A500EA0A00090130A5FFFF03E000087E
68920 +:102D60000000000027BDFFC83C0280003C06800830
68921 +:102D7000AFB5002CAFB1001CAFBF0030AFB400281E
68922 +:102D8000AFB30024AFB20020AFB00018345101003F
68923 +:102D900034C501008C4301008E2200148CA400E491
68924 +:102DA0000000A821AF83001C0044102318400052EB
68925 +:102DB000A38000188E22001400005021ACA200E471
68926 +:102DC00090C3000890A200D53073007FA3A200102A
68927 +:102DD0008CB200E08CB400E4304200FF1053003BA2
68928 +:102DE00093A200108F83001C2407FF80000211C0F3
68929 +:102DF0000062102124420240246300400047102456
68930 +:102E00003063007F3C0980003C08800A006818217C
68931 +:102E1000AD2200248C62003427A4001427A50010E2
68932 +:102E2000024280210290102304400028AFA3001426
68933 +:102E30009062003C00E21024304200FF1440001970
68934 +:102E4000020090219062003C34420040A062003CAD
68935 +:102E50008F86001C93A3001024C200403042007FE4
68936 +:102E6000004828213C0208008C4200F42463000141
68937 +:102E7000306400FF14820002A3A30010A3A000107E
68938 +:102E800093A20010AFA50014000211C0244202401A
68939 +:102E900000C2102100471024AD2200240A000B4577
68940 +:102EA00093A200100E0007C3000000003C0280083F
68941 +:102EB00034420100AC5000E093A30010240A00014A
68942 +:102EC000A04300D50A000B4593A200102402000184
68943 +:102ED000154200093C0380008C6202780440FFFE2A
68944 +:102EE0008F82001CAC62024024020002A0620244F5
68945 +:102EF0003C021000AC6202789222000B2403000214
68946 +:102F0000304200FF144300720000000096220008C7
68947 +:102F1000304300FF24020082146200402402008437
68948 +:102F20003C028000344901008D22000C95230006EC
68949 +:102F3000000216023063FFFF3045003F24020027E5
68950 +:102F400010A2000FAF83001428A200281040000830
68951 +:102F5000240200312402002110A2000924020025CD
68952 +:102F600010A20007938200190A000BBD00000000A8
68953 +:102F700010A20007938200190A000BBD0000000098
68954 +:102F80000E000777012020210A000C3D0000000000
68955 +:102F90003C0380008C6202780440FFFE8F82001C9C
68956 +:102FA000AC62024024020002A06202443C02100013
68957 +:102FB000AC6202780A000C3D000000009523000678
68958 +:102FC000912400058D25000C8D2600108D270018FA
68959 +:102FD0008D28001C8D290020244200013C0108009E
68960 +:102FE000A42356C63C010800A02456C53C01080095
68961 +:102FF000AC2556CC3C010800AC2656D03C0108005C
68962 +:10300000AC2756D83C010800AC2856DC3C0108002F
68963 +:10301000AC2956E00A000C3DA38200191462000A94
68964 +:10302000240200813C02800834420100944500EAF9
68965 +:10303000922600058F84001C30A5FFFF30C600FFDC
68966 +:103040000A000BFE3C0760211462005C00000000D7
68967 +:103050009222000A304300FF306200201040000737
68968 +:10306000306200403C02800834420100944500EA8E
68969 +:103070008F84001C0A000BFC24060040104000074F
68970 +:10308000000316003C02800834420100944500EA27
68971 +:103090008F84001C0A000BFC24060041000216036A
68972 +:1030A000044100463C02800834420100944500EA95
68973 +:1030B0008F84001C2406004230A5FFFF3C076019E6
68974 +:1030C0000E000901000000000A000C3D0000000095
68975 +:1030D0009222000B24040016304200FF1044000628
68976 +:1030E0003C0680009222000B24030017304200FFB0
68977 +:1030F000144300320000000034C5010090A2000B10
68978 +:10310000304200FF1444000B000080218CA20020FC
68979 +:103110008CA400202403FF800043102400021140EF
68980 +:103120003084007F004410253C032000004310251C
68981 +:10313000ACC2083094A2000800021400000214037C
68982 +:10314000044200012410000194A2000830420080D3
68983 +:103150005040001A0200A82194A20008304220002A
68984 +:10316000504000160200A8218CA300183C021C2D20
68985 +:10317000344219ED106200110200A8213C0208003F
68986 +:103180008C4200D4104000053C0280082403000457
68987 +:1031900034420100A04300FC3C028008344201009C
68988 +:1031A000944500EA8F84001C2406000630A5FFFF2A
68989 +:1031B0000E0009013C0760210200A8210E00093918
68990 +:1031C000000000009222000A304200081040000473
68991 +:1031D00002A010210E0013790000000002A01021AF
68992 +:1031E0008FBF00308FB5002C8FB400288FB3002420
68993 +:1031F0008FB200208FB1001C8FB0001803E00008D0
68994 +:1032000027BD00382402FF80008220243C02900069
68995 +:1032100034420007008220253C028000AC4400209C
68996 +:103220003C0380008C6200200440FFFE0000000090
68997 +:1032300003E00008000000003C0380002402FF803F
68998 +:10324000008220243462000700822025AC64002024
68999 +:103250008C6200200440FFFE0000000003E0000834
69000 +:103260000000000027BDFFD8AFB3001CAFB10014B1
69001 +:10327000AFB00010AFBF0020AFB200183C1180000B
69002 +:103280003C0280088E32002034530100AE2400201E
69003 +:10329000966300EA000514003C074000004738250B
69004 +:1032A00000A08021000030210E0009013065FFFFE1
69005 +:1032B000240200A1160200022402FFFFA2620009FC
69006 +:1032C000AE3200208FBF00208FB3001C8FB20018D9
69007 +:1032D0008FB100148FB0001003E0000827BD002854
69008 +:1032E0003C0280082403000527BDFFE834420100AA
69009 +:1032F000A04300FCAFBF00103C0280008C420100E4
69010 +:10330000240500A1004020210E000C67AF82001CA4
69011 +:103310003C0380008C6202780440FFFE8F82001C18
69012 +:103320008FBF001027BD0018AC62024024020002CB
69013 +:10333000A06202443C021000AC62027803E0000884
69014 +:103340000000000027BDFFE83C068000AFBF001072
69015 +:1033500034C7010094E20008304400FF3883008243
69016 +:10336000388200842C6300012C4200010062182581
69017 +:103370001060002D24020083938200195040003B0E
69018 +:103380008FBF00103C020800904256CC8CC4010054
69019 +:103390003C06080094C656C63045003F38A30032AC
69020 +:1033A00038A2003F2C6300012C4200010062182566
69021 +:1033B000AF84001CAF860014A380001914600007BE
69022 +:1033C00000E020212402002014A2001200000000CE
69023 +:1033D0003402FFFF14C2000F00000000240200208E
69024 +:1033E00014A2000500E028218CE300142402FFFF52
69025 +:1033F0005062000B8FBF00103C040800248456C0AC
69026 +:10340000000030210E000706240700010A000CD638
69027 +:103410008FBF00100E000777000000008FBF001064
69028 +:103420000A00093927BD001814820004240200850F
69029 +:103430008CC501040A000CE1000020211482000662
69030 +:103440002482FF808CC50104240440008FBF00103B
69031 +:103450000A00016727BD0018304200FF2C4200021D
69032 +:1034600010400004240200228FBF00100A000B2726
69033 +:1034700027BD0018148200048F8200248FBF001023
69034 +:103480000A000C8627BD00188C42000C1040001E5C
69035 +:1034900000E0282190E300092402001814620003D0
69036 +:1034A000240200160A000CFC240300081462000722
69037 +:1034B00024020017240300123C02800834420080DA
69038 +:1034C000A04300090A000D0994A7000854620007F0
69039 +:1034D00094A700088F82FF942404FFFE9043000508
69040 +:1034E00000641824A043000594A7000890A6001BC0
69041 +:1034F0008CA4000094A500068FBF001000073C00BC
69042 +:103500000A0008DC27BD00188FBF001003E0000888
69043 +:1035100027BD00188F8500243C04800094A2002A57
69044 +:103520008CA30034000230C02402FFF000C210243B
69045 +:1035300000621821AC83003C8CA200303C03800068
69046 +:10354000AC8200383C02005034420010AC620030C3
69047 +:103550000000000000000000000000008C6200007D
69048 +:10356000304200201040FFFD30C20008104000062D
69049 +:103570003C0280008C620408ACA200208C62040C27
69050 +:103580000A000D34ACA200248C430400ACA300203C
69051 +:103590008C420404ACA200243C0300203C028000C6
69052 +:1035A000AC4300303C0480008C8200300043102487
69053 +:1035B0001440FFFD8F8600243C020040AC820030A6
69054 +:1035C00094C3002A94C2002894C4002C94C5002EF1
69055 +:1035D00024630001004410213064FFFFA4C20028CE
69056 +:1035E00014850002A4C3002AA4C0002A03E0000836
69057 +:1035F000000000008F84002427BDFFE83C05800404
69058 +:1036000024840010AFBF00100E000E472406000AED
69059 +:103610008F840024948200129483002E3042000F85
69060 +:10362000244200030043180424027FFF0043102BB0
69061 +:1036300010400002AC8300000000000D0E000D13CE
69062 +:10364000000000008F8300248FBF001027BD0018EA
69063 +:10365000946200149463001A3042000F00021500B7
69064 +:10366000006218253C02800003E00008AC4300A083
69065 +:103670008F8300243C028004944400069462001A64
69066 +:103680008C650000A4640016004410233042FFFF44
69067 +:103690000045102B03E00008384200018F8400240D
69068 +:1036A0003C0780049486001A8C85000094E2000692
69069 +:1036B000A482001694E3000600C310233042FFFFEB
69070 +:1036C0000045102B384200011440FFF8A483001677
69071 +:1036D00003E00008000000008F8400243C02800406
69072 +:1036E000944200069483001A8C850000A482001680
69073 +:1036F000006210233042FFFF0045102B38420001CA
69074 +:103700005040000D8F850024006030213C0780046C
69075 +:1037100094E20006A482001694E3000600C310237E
69076 +:103720003042FFFF0045102B384200011440FFF8E3
69077 +:10373000A48300168F8500243C03800034620400BB
69078 +:103740008CA40020AF820020AC6400388CA200243E
69079 +:10375000AC62003C3C020005AC62003003E00008B3
69080 +:10376000ACA000048F8400243C0300068C8200047B
69081 +:1037700000021140004310253C038000AC62003081
69082 +:103780000000000000000000000000008C6200004B
69083 +:10379000304200101040FFFD34620400AC80000491
69084 +:1037A00003E00008AF8200208F86002427BDFFE0E1
69085 +:1037B000AFB10014AFB00010AFBF00188CC300044D
69086 +:1037C0008CC500248F820020309000FF94C4001A22
69087 +:1037D00024630001244200202484000124A7002047
69088 +:1037E000ACC30004AF820020A4C4001AACC70024FC
69089 +:1037F00004A100060000882104E2000594C2001A1A
69090 +:103800008CC2002024420001ACC2002094C2001AE5
69091 +:1038100094C300282E040001004310262C4200010E
69092 +:10382000004410245040000594C2001A24020001F4
69093 +:10383000ACC2000894C2001A94C300280010202BC8
69094 +:10384000004310262C4200010044102514400007BC
69095 +:10385000000000008CC20008144000042402001084
69096 +:103860008CC300041462000F8F8500240E000DA786
69097 +:10387000241100018F820024944300289442001AEE
69098 +:1038800014430003000000000E000D1300000000B0
69099 +:10389000160000048F8500240E000D840000000037
69100 +:1038A0008F85002494A2001E94A4001C24420001D1
69101 +:1038B0003043FFFF14640002A4A2001EA4A0001E57
69102 +:1038C0001200000A3C02800494A2001494A3001A7F
69103 +:1038D0003042000F00021500006218253C028000F3
69104 +:1038E000AC4300A00A000E1EACA0000894420006E3
69105 +:1038F00094A3001A8CA40000A4A200160062102356
69106 +:103900003042FFFF0044102B384200011040000DF0
69107 +:1039100002201021006030213C07800494E2000660
69108 +:10392000A4A2001694E3000600C310233042FFFF58
69109 +:103930000044102B384200011440FFF8A4A30016E5
69110 +:10394000022010218FBF00188FB100148FB000101B
69111 +:1039500003E0000827BD002003E00008000000008D
69112 +:103960008F82002C3C03000600021140004310250A
69113 +:103970003C038000AC62003000000000000000004A
69114 +:10398000000000008C620000304200101040FFFD7B
69115 +:1039900034620400AF82002803E00008AF80002CEE
69116 +:1039A00003E000080000102103E000080000000010
69117 +:1039B0003084FFFF30A5FFFF0000182110800007B2
69118 +:1039C000000000003082000110400002000420428C
69119 +:1039D000006518210A000E3D0005284003E000089C
69120 +:1039E0000060102110C0000624C6FFFF8CA200005A
69121 +:1039F00024A50004AC8200000A000E4724840004C1
69122 +:103A000003E000080000000010A0000824A3FFFF4E
69123 +:103A1000AC86000000000000000000002402FFFF50
69124 +:103A20002463FFFF1462FFFA2484000403E000080B
69125 +:103A3000000000003C0280083442008024030001A2
69126 +:103A4000AC43000CA4430010A4430012A443001490
69127 +:103A500003E00008A44300168F82002427BDFFD88E
69128 +:103A6000AFB3001CAFB20018AFB10014AFB000107C
69129 +:103A7000AFBF00208C47000C248200802409FF8007
69130 +:103A80003C08800E3043007F008080213C0A80008B
69131 +:103A9000004920240068182130B100FF30D200FF17
69132 +:103AA00010E000290000982126020100AD44002CFE
69133 +:103AB000004928243042007F004820219062000005
69134 +:103AC00024030050304200FF1443000400000000B3
69135 +:103AD000AD45002C948200EA3053FFFF0E000D84A8
69136 +:103AE000000000008F8200248F83002000112C0032
69137 +:103AF0009442001E001224003484000100A22825F4
69138 +:103B00003C02400000A22825AC7000008FBF0020BE
69139 +:103B1000AC6000048FB20018AC7300088FB10014C1
69140 +:103B2000AC60000C8FB3001CAC6400108FB00010B0
69141 +:103B3000AC60001424040001AC60001827BD00280C
69142 +:103B40000A000DB8AC65001C8FBF00208FB3001CAD
69143 +:103B50008FB200188FB100148FB0001003E000087E
69144 +:103B600027BD00283C06800034C201009043000FAE
69145 +:103B7000240200101062000E2865001110A000073A
69146 +:103B800024020012240200082405003A10620006F4
69147 +:103B90000000302103E0000800000000240500358B
69148 +:103BA0001462FFFC000030210A000E6400000000D7
69149 +:103BB0008CC200748F83FF9424420FA003E000089E
69150 +:103BC000AC62000C27BDFFE8AFBF00100E0003423F
69151 +:103BD000240500013C0480088FBF0010240200016E
69152 +:103BE00034830080A462001227BD00182402000163
69153 +:103BF00003E00008A080001A27BDFFE0AFB2001864
69154 +:103C0000AFB10014AFB00010AFBF001C30B2FFFF67
69155 +:103C10000E000332008088213C028008345000806E
69156 +:103C20009202000924030004304200FF1443000CF8
69157 +:103C30003C028008124000082402000A0E000E5BBD
69158 +:103C400000000000920200052403FFFE0043102440
69159 +:103C5000A202000524020012A20200093C02800810
69160 +:103C600034420080022020210E00033DA0400027A6
69161 +:103C700016400003022020210E000EBF00000000AD
69162 +:103C800002202021324600FF8FBF001C8FB2001897
69163 +:103C90008FB100148FB00010240500380A000E64A4
69164 +:103CA00027BD002027BDFFE0AFBF001CAFB200184A
69165 +:103CB000AFB10014AFB000100E00033200808021BD
69166 +:103CC0000E000E5B000000003C02800834450080BE
69167 +:103CD00090A2000924120018305100FF1232000394
69168 +:103CE0000200202124020012A0A2000990A20005D7
69169 +:103CF0002403FFFE004310240E00033DA0A2000594
69170 +:103D00000200202124050020163200070000302187
69171 +:103D10008FBF001C8FB200188FB100148FB000103D
69172 +:103D20000A00034227BD00208FBF001C8FB200187D
69173 +:103D30008FB100148FB00010240500390A000E6402
69174 +:103D400027BD002027BDFFE83C028000AFB0001077
69175 +:103D5000AFBF0014344201009442000C2405003629
69176 +:103D60000080802114400012304600FF0E00033214
69177 +:103D7000000000003C02800834420080240300124E
69178 +:103D8000A043000990430005346300100E000E5B51
69179 +:103D9000A04300050E00033D020020210200202167
69180 +:103DA0000E000342240500200A000F3C0000000022
69181 +:103DB0000E000E64000000000E00033202002021FD
69182 +:103DC0003C0280089043001B2405FF9F0200202135
69183 +:103DD000006518248FBF00148FB00010A043001B93
69184 +:103DE0000A00033D27BD001827BDFFE0AFBF001844
69185 +:103DF000AFB10014AFB0001030B100FF0E000332BD
69186 +:103E0000008080213C02800824030012344200809C
69187 +:103E10000E000E5BA04300090E00033D02002021AE
69188 +:103E200002002021022030218FBF00188FB1001422
69189 +:103E30008FB00010240500350A000E6427BD002055
69190 +:103E40003C0480089083000E9082000A1443000B0B
69191 +:103E5000000028218F82FF942403005024050001D4
69192 +:103E600090420000304200FF1443000400000000B4
69193 +:103E70009082000E24420001A082000E03E00008A0
69194 +:103E800000A010213C0380008C6201F80440FFFE7A
69195 +:103E900024020002AC6401C0A06201C43C02100014
69196 +:103EA00003E00008AC6201F827BDFFE0AFB20018E4
69197 +:103EB0003C128008AFB10014AFBF001CAFB00010BF
69198 +:103EC00036510080922200092403000A304200FF8C
69199 +:103ED0001443003E000000008E4300048E22003890
69200 +:103EE000506200808FBF001C92220000240300500B
69201 +:103EF000304200FF144300253C0280008C42014008
69202 +:103F00008E4300043642010002202821AC43001CED
69203 +:103F10009622005C8E2300383042FFFF00021040E2
69204 +:103F200000621821AE23001C8E4300048E2400384A
69205 +:103F30009622005C006418233042FFFF0003184300
69206 +:103F4000000210400043102A10400006000000004C
69207 +:103F50008E4200048E230038004310230A000FAA6B
69208 +:103F6000000220439622005C3042FFFF0002204006
69209 +:103F70003C0280083443010034420080ACA4002C91
69210 +:103F8000A040002424020001A062000C0E000F5E7D
69211 +:103F900000000000104000538FBF001C3C02800056
69212 +:103FA0008C4401403C0380008C6201F80440FFFE19
69213 +:103FB00024020002AC6401C0A06201C43C021000F3
69214 +:103FC000AC6201F80A0010078FBF001C92220009A2
69215 +:103FD00024030010304200FF144300043C02800020
69216 +:103FE0008C4401400A000FEE0000282192220009B3
69217 +:103FF00024030016304200FF14430006240200147C
69218 +:10400000A22200093C0280008C4401400A001001F9
69219 +:104010008FBF001C8E2200388E23003C00431023EB
69220 +:10402000044100308FBF001C92220027244200016F
69221 +:10403000A2220027922200272C42000414400016DE
69222 +:104040003C1080009222000924030004304200FF4B
69223 +:10405000144300093C0280008C4401408FBF001CC7
69224 +:104060008FB200188FB100148FB000102405009398
69225 +:104070000A000ECC27BD00208C440140240500938B
69226 +:104080008FBF001C8FB200188FB100148FB00010CA
69227 +:104090000A000F4827BD00208E0401400E000332A5
69228 +:1040A000000000008E4200042442FFFFAE420004E4
69229 +:1040B0008E22003C2442FFFFAE22003C0E00033D56
69230 +:1040C0008E0401408E0401408FBF001C8FB2001887
69231 +:1040D0008FB100148FB00010240500040A000342C1
69232 +:1040E00027BD00208FB200188FB100148FB00010D0
69233 +:1040F00003E0000827BD00203C0680008CC2018838
69234 +:104100003C038008346500809063000E00021402B6
69235 +:10411000304400FF306300FF1464000E3C0280084E
69236 +:1041200090A20026304200FF104400098F82FF94C5
69237 +:10413000A0A400262403005090420000304200FF5B
69238 +:1041400014430006000000000A0005A18CC4018091
69239 +:104150003C02800834420080A044002603E00008AE
69240 +:104160000000000027BDFFE030E700FFAFB20018FD
69241 +:10417000AFBF001CAFB10014AFB0001000809021A1
69242 +:1041800014E0000630C600FF000000000000000D33
69243 +:10419000000000000A001060240001163C038008A3
69244 +:1041A0009062000E304200FF14460023346200800B
69245 +:1041B00090420026304200FF1446001F000000001D
69246 +:1041C0009062000F304200FF1446001B0000000008
69247 +:1041D0009062000A304200FF144600038F90FF9463
69248 +:1041E0000000000D8F90FF948F82FF983C1180009B
69249 +:1041F000AE05003CAC450000A066000A0E0003328C
69250 +:104200008E240100A20000240E00033D8E24010034
69251 +:104210003C0380008C6201F80440FFFE240200028F
69252 +:10422000AC7201C0A06201C43C021000AC6201F893
69253 +:104230000A0010618FBF001C000000000000000D8C
69254 +:10424000000000002400013F8FBF001C8FB2001847
69255 +:104250008FB100148FB0001003E0000827BD0020CC
69256 +:104260008F83FF943C0280008C44010034420100A3
69257 +:104270008C65003C9046001B0A00102724070001B3
69258 +:104280003C0280089043000E9042000A0043102632
69259 +:10429000304200FF03E000080002102B27BDFFE0C2
69260 +:1042A0003C028008AFB10014AFB00010AFBF0018DF
69261 +:1042B0003450008092020005240300303042003068
69262 +:1042C00014430085008088218F8200248C42000CDA
69263 +:1042D000104000828FBF00180E000D840000000007
69264 +:1042E0008F860020ACD100009202000892030009E2
69265 +:1042F000304200FF00021200306300FF004310252F
69266 +:10430000ACC200049202004D000216000002160327
69267 +:1043100004410005000000003C0308008C630048D5
69268 +:104320000A00109F3C1080089202000830420040B2
69269 +:10433000144000030000182192020027304300FFC0
69270 +:104340003C108008361100809222004D00031E00B0
69271 +:10435000304200FF0002140000621825ACC30008C0
69272 +:104360008E2400308F820024ACC4000C8E250034D3
69273 +:104370009443001E3C02C00BACC50010006218251F
69274 +:104380008E22003800002021ACC200148E22003C96
69275 +:10439000ACC200180E000DB8ACC3001C8E020004A5
69276 +:1043A0008F8400203C058000AC8200008E2200201B
69277 +:1043B000AC8200048E22001CAC8200088E220058C1
69278 +:1043C0008CA3007400431021AC82000C8E22002CC0
69279 +:1043D000AC8200108E2200408E23004400021400A4
69280 +:1043E00000431025AC8200149222004D240300806B
69281 +:1043F000304200FF1443000400000000AC800018AD
69282 +:104400000A0010E38F8200248E23000C2402000196
69283 +:104410001062000E2402FFFF92220008304200408A
69284 +:104420001440000A2402FFFF8E23000C8CA20074AB
69285 +:10443000006218233C0208000062102414400002AD
69286 +:10444000000028210060282100051043AC820018DC
69287 +:104450008F820024000020219443001E3C02C00CE7
69288 +:10446000006218258F8200200E000DB8AC43001C9E
69289 +:104470003C038008346201008C4200008F850020DC
69290 +:10448000346300808FBF0018ACA20000ACA0000411
69291 +:104490008C6400488F8200248FB10014ACA4000803
69292 +:1044A000ACA0000CACA00010906300059446001E68
69293 +:1044B0003C02400D00031E0000C23025ACA30014D6
69294 +:1044C0008FB00010ACA0001824040001ACA6001CA2
69295 +:1044D0000A000DB827BD00208FBF00188FB100144F
69296 +:1044E0008FB0001003E0000827BD00203C028000D0
69297 +:1044F0009443007C3C02800834460100308400FF75
69298 +:104500003065FFFF2402000524A34650A0C4000C20
69299 +:104510005482000C3065FFFF90C2000D2C42000752
69300 +:104520001040000724A30A0090C3000D24020014C9
69301 +:104530000062100400A210210A00111F3045FFFF85
69302 +:104540003065FFFF3C0280083442008003E0000831
69303 +:10455000A44500143C03800834680080AD05003891
69304 +:10456000346701008CE2001C308400FF00A210239D
69305 +:104570001840000330C600FF24A2FFFCACE2001C80
69306 +:1045800030820001504000083C0380088D02003C4E
69307 +:1045900000A2102304410012240400058C620004D0
69308 +:1045A00010A2000F3C0380088C62000414A2001EBD
69309 +:1045B000000000003C0208008C4200D8304200207D
69310 +:1045C000104000093C0280083462008090630008BB
69311 +:1045D0009042004C144300043C0280082404000470
69312 +:1045E0000A00110900000000344300803442010039
69313 +:1045F000A040000C24020001A462001410C0000AB4
69314 +:104600003C0280008C4401003C0380008C6201F875
69315 +:104610000440FFFE24020002AC6401C0A06201C499
69316 +:104620003C021000AC6201F803E00008000000004A
69317 +:1046300027BDFFE800A61823AFBF00101860008058
69318 +:10464000308800FF3C02800834470080A0E000244E
69319 +:1046500034440100A0E000278C82001C00A210233B
69320 +:1046600004400056000000008CE2003C94E3005C33
69321 +:104670008CE4002C004530233063FFFF00C3182179
69322 +:104680000083202B1080000400E018218CE2002C15
69323 +:104690000A00117800A2102194E2005C3042FFFF72
69324 +:1046A00000C2102100A21021AC62001C3C02800854
69325 +:1046B000344400809482005C8C83001C3042FFFFF5
69326 +:1046C0000002104000A210210043102B10400004F3
69327 +:1046D000000000008C82001C0A00118B3C06800840
69328 +:1046E0009482005C3042FFFF0002104000A21021C3
69329 +:1046F0003C06800834C3010034C70080AC82001C33
69330 +:10470000A060000CACE500388C62001C00A21023F5
69331 +:104710001840000224A2FFFCAC62001C3102000120
69332 +:10472000104000083C0380088CE2003C00A21023EB
69333 +:1047300004410012240400058CC2000410A20010E1
69334 +:104740008FBF00108C62000414A2004F8FBF0010B6
69335 +:104750003C0208008C4200D8304200201040000A81
69336 +:104760003C02800834620080906300089042004C54
69337 +:10477000144300053C028008240400048FBF00108D
69338 +:104780000A00110927BD001834430080344201009B
69339 +:10479000A040000C24020001A46200143C0280002E
69340 +:1047A0008C4401003C0380008C6201F80440FFFE51
69341 +:1047B000240200020A0011D8000000008CE2001C54
69342 +:1047C000004610230043102B54400001ACE5001CB0
69343 +:1047D00094E2005C3042FFFF0062102B144000079F
69344 +:1047E0002402000294E2005C8CE3001C3042FFFFD4
69345 +:1047F00000621821ACE3001C24020002ACE5003882
69346 +:104800000E000F5EA082000C1040001F8FBF001032
69347 +:104810003C0280008C4401003C0380008C6201F863
69348 +:104820000440FFFE24020002AC6401C0A06201C487
69349 +:104830003C021000AC6201F80A0011F08FBF0010BA
69350 +:1048400031020010104000108FBF00103C028008A1
69351 +:10485000344500808CA3001C94A2005C00661823E1
69352 +:104860003042FFFF006218213C023FFF3444FFFF4B
69353 +:104870000083102B544000010080182100C3102138
69354 +:10488000ACA2001C8FBF001003E0000827BD001879
69355 +:1048900027BDFFE800C0402100A63023AFBF0010B5
69356 +:1048A00018C00026308A00FF3C028008344900808E
69357 +:1048B0008D24001C8D23002C008820230064182BDD
69358 +:1048C0001060000F344701008CE2002000461021E8
69359 +:1048D000ACE200208CE200200044102B1440000BBE
69360 +:1048E0003C023FFF8CE2002000441023ACE2002099
69361 +:1048F0009522005C3042FFFF0A0012100082202146
69362 +:10490000ACE00020008620213C023FFF3443FFFF43
69363 +:104910000064102B54400001006020213C028008FC
69364 +:104920003442008000851821AC43001CA0400024C4
69365 +:10493000A04000270A0012623C03800831420010A8
69366 +:10494000104000433C0380083C06800834C40080CB
69367 +:104950008C82003C004810235840003E34660080A2
69368 +:104960009082002424420001A0820024908200242E
69369 +:104970003C0308008C630024304200FF0043102BEE
69370 +:10498000144000688FBF001034C201008C42001C2C
69371 +:1049900000A2102318400063000000008CC3000434
69372 +:1049A0009482005C006818233042FFFF0003184324
69373 +:1049B000000210400043102A1040000500000000D3
69374 +:1049C0008CC20004004810230A0012450002104364
69375 +:1049D0009482005C3042FFFF000210403C068008D9
69376 +:1049E000AC82002C34C5008094A2005C8CA4002C06
69377 +:1049F00094A3005C3042FFFF00021040008220219F
69378 +:104A00003063FFFF0083202101041021ACA2001CB1
69379 +:104A10008CC2000434C60100ACC2001C2402000297
69380 +:104A20000E000F5EA0C2000C1040003E8FBF0010B1
69381 +:104A30003C0280008C4401003C0380008C6201F841
69382 +:104A40000440FFFE240200020A001292000000004F
69383 +:104A500034660080ACC50038346401008C82001CD0
69384 +:104A600000A210231840000224A2FFFCAC82001C0C
69385 +:104A7000314200015040000A3C0380088CC2003CD7
69386 +:104A800000A2102304430014240400058C620004D7
69387 +:104A900014A200033C0380080A00128424040005C9
69388 +:104AA0008C62000414A2001F8FBF00103C0208009B
69389 +:104AB0008C4200D8304200201040000A3C0280089E
69390 +:104AC00034620080906300089042004C144300055B
69391 +:104AD0003C028008240400048FBF00100A00110962
69392 +:104AE00027BD00183443008034420100A040000C70
69393 +:104AF00024020001A46200143C0280008C440100E6
69394 +:104B00003C0380008C6201F80440FFFE2402000296
69395 +:104B1000AC6401C0A06201C43C021000AC6201F8A8
69396 +:104B20008FBF001003E0000827BD001827BDFFE875
69397 +:104B30003C0A8008AFBF0010354900808D22003C40
69398 +:104B400000C04021308400FF004610231840009D23
69399 +:104B500030E700FF354701002402000100A63023A2
69400 +:104B6000A0E0000CA0E0000DA522001418C0002455
69401 +:104B7000308200108D23001C8D22002C0068182329
69402 +:104B80000043102B1040000F000000008CE20020BA
69403 +:104B900000461021ACE200208CE200200043102BE4
69404 +:104BA0001440000B3C023FFF8CE200200043102326
69405 +:104BB000ACE200209522005C3042FFFF0A0012C1E7
69406 +:104BC00000621821ACE00020006618213C023FFF83
69407 +:104BD0003446FFFF00C3102B5440000100C01821D1
69408 +:104BE0003C0280083442008000651821AC43001C60
69409 +:104BF000A0400024A04000270A00130F3C038008B7
69410 +:104C0000104000403C0380088D22003C00481023E7
69411 +:104C10005840003D34670080912200242442000166
69412 +:104C2000A1220024912200243C0308008C6300246C
69413 +:104C3000304200FF0043102B1440009A8FBF001039
69414 +:104C40008CE2001C00A21023184000960000000017
69415 +:104C50008D4300049522005C006818233042FFFF5A
69416 +:104C600000031843000210400043102A10400005C2
69417 +:104C7000012020218D420004004810230A0012F276
69418 +:104C8000000210439522005C3042FFFF00021040FA
69419 +:104C90003C068008AC82002C34C5008094A2005CE5
69420 +:104CA0008CA4002C94A3005C3042FFFF0002104053
69421 +:104CB000008220213063FFFF0083182101031021AF
69422 +:104CC000ACA2001C8CC2000434C60100ACC2001CA3
69423 +:104CD000240200020E000F5EA0C2000C1040007102
69424 +:104CE0008FBF00103C0280008C4401003C03800018
69425 +:104CF0008C6201F80440FFFE240200020A0013390E
69426 +:104D00000000000034670080ACE500383466010024
69427 +:104D10008CC2001C00A210231840000224A2FFFC39
69428 +:104D2000ACC2001C30820001504000083C038008E7
69429 +:104D30008CE2003C00A2102304430051240400052F
69430 +:104D40008C62000410A2003E3C0380088C620004C8
69431 +:104D500054A200548FBF00103C0208008C4200D8BF
69432 +:104D600030420020104000063C028008346200807F
69433 +:104D7000906300089042004C104300403C028008C1
69434 +:104D80003443008034420100A040000C24020001A2
69435 +:104D9000A46200143C0280008C4401003C038000AB
69436 +:104DA0008C6201F80440FFFE24020002AC6401C0E2
69437 +:104DB000A06201C43C021000AC6201F80A00137743
69438 +:104DC0008FBF001024020005A120002714E2000A72
69439 +:104DD0003C038008354301009062000D2C42000620
69440 +:104DE000504000053C0380089062000D2442000101
69441 +:104DF000A062000D3C03800834670080ACE50038F9
69442 +:104E0000346601008CC2001C00A21023184000026E
69443 +:104E100024A2FFFCACC2001C308200015040000AFA
69444 +:104E20003C0380088CE2003C00A2102304410014E3
69445 +:104E3000240400058C62000414A200033C038008D3
69446 +:104E40000A00136E240400058C62000414A20015ED
69447 +:104E50008FBF00103C0208008C4200D83042002076
69448 +:104E60001040000A3C028008346200809063000811
69449 +:104E70009042004C144300053C02800824040004C6
69450 +:104E80008FBF00100A00110927BD001834430080AD
69451 +:104E900034420100A040000C24020001A46200146E
69452 +:104EA0008FBF001003E0000827BD00183C0B8008EE
69453 +:104EB00027BDFFE83C028000AFBF00103442010074
69454 +:104EC000356A00809044000A356901008C45001461
69455 +:104ED0008D4800389123000C308400FF0105102319
69456 +:104EE0001C4000B3306700FF2CE20006504000B1C8
69457 +:104EF0008FBF00102402000100E2300430C2000322
69458 +:104F00005440000800A8302330C2000C144000A117
69459 +:104F100030C20030144000A38FBF00100A00143BC1
69460 +:104F20000000000018C00024308200108D43001CD7
69461 +:104F30008D42002C006818230043102B1040000FF6
69462 +:104F4000000000008D22002000461021AD2200202C
69463 +:104F50008D2200200043102B1440000B3C023FFF29
69464 +:104F60008D22002000431023AD2200209542005CDA
69465 +:104F70003042FFFF0A0013AF00621821AD2000206D
69466 +:104F8000006618213C023FFF3446FFFF00C3102B90
69467 +:104F90005440000100C018213C02800834420080C7
69468 +:104FA00000651821AC43001CA0400024A04000274D
69469 +:104FB0000A0013FD3C038008104000403C038008B9
69470 +:104FC0008D42003C004810231840003D34670080AB
69471 +:104FD0009142002424420001A14200249142002475
69472 +:104FE0003C0308008C630024304200FF0043102B78
69473 +:104FF000144000708FBF00108D22001C00A21023EF
69474 +:105000001840006C000000008D6300049542005CB5
69475 +:10501000006818233042FFFF0003184300021040CD
69476 +:105020000043102A10400005014020218D62000439
69477 +:10503000004810230A0013E0000210439542005C70
69478 +:105040003042FFFF000210403C068008AC82002C7A
69479 +:1050500034C5008094A2005C8CA4002C94A3005C56
69480 +:105060003042FFFF00021040008220213063FFFF2A
69481 +:105070000083182101031021ACA2001C8CC2000483
69482 +:1050800034C60100ACC2001C240200020E000F5EF8
69483 +:10509000A0C2000C104000478FBF00103C028000EF
69484 +:1050A0008C4401003C0380008C6201F80440FFFE48
69485 +:1050B000240200020A00142D000000003467008062
69486 +:1050C000ACE50038346601008CC2001C00A210233D
69487 +:1050D0001840000224A2FFFCACC2001C3082000178
69488 +:1050E0005040000A3C0380088CE2003C00A21023E0
69489 +:1050F00004430014240400058C62000414A200037D
69490 +:105100003C0380080A00141F240400058C6200047C
69491 +:1051100014A200288FBF00103C0208008C4200D867
69492 +:10512000304200201040000A3C02800834620080B7
69493 +:10513000906300089042004C144300053C02800834
69494 +:10514000240400048FBF00100A00110927BD0018B5
69495 +:105150003443008034420100A040000C24020001CE
69496 +:10516000A46200143C0280008C4401003C038000D7
69497 +:105170008C6201F80440FFFE24020002AC6401C00E
69498 +:10518000A06201C43C021000AC6201F80A00143BAA
69499 +:105190008FBF00108FBF0010010030210A00115A8C
69500 +:1051A00027BD0018010030210A00129927BD001800
69501 +:1051B0008FBF001003E0000827BD00183C038008E3
69502 +:1051C0003464010024020003A082000C8C620004FD
69503 +:1051D00003E00008AC82001C3C05800834A300807A
69504 +:1051E0009062002734A501002406004324420001F8
69505 +:1051F000A0620027906300273C0208008C42004810
69506 +:10520000306300FF146200043C07602194A500EAAB
69507 +:105210000A00090130A5FFFF03E0000800000000BC
69508 +:1052200027BDFFE8AFBF00103C0280000E00144411
69509 +:105230008C4401803C02800834430100A060000CD3
69510 +:105240008C4200048FBF001027BD001803E0000847
69511 +:10525000AC62001C27BDFFE03C028008AFBF001815
69512 +:10526000AFB10014AFB000103445008034460100E7
69513 +:105270003C0880008D09014090C3000C8CA4003CC8
69514 +:105280008CA200381482003B306700FF9502007C3E
69515 +:1052900090A30027146000093045FFFF2402000599
69516 +:1052A00054E200083C04800890C2000D2442000132
69517 +:1052B000A0C2000D0A00147F3C048008A0C0000DAD
69518 +:1052C0003C048008348201009042000C2403000555
69519 +:1052D000304200FF1443000A24A205DC348300801E
69520 +:1052E000906200272C4200075040000524A20A00CB
69521 +:1052F00090630027240200140062100400A2102111
69522 +:105300003C108008361000803045FFFF012020212E
69523 +:105310000E001444A60500149602005C8E030038AB
69524 +:105320003C1180003042FFFF000210400062182153
69525 +:10533000AE03001C0E0003328E24014092020025B1
69526 +:1053400034420040A20200250E00033D8E2401409D
69527 +:105350008E2401403C0380008C6201F80440FFFE73
69528 +:1053600024020002AC6401C0A06201C43C0210002F
69529 +:10537000AC6201F88FBF00188FB100148FB000101D
69530 +:1053800003E0000827BD00203C0360103C02080039
69531 +:1053900024420174AC62502C8C6250003C048000AA
69532 +:1053A00034420080AC6250003C0208002442547C2D
69533 +:1053B0003C010800AC2256003C020800244254384C
69534 +:1053C0003C010800AC2256043C020002AC840008F8
69535 +:1053D000AC82000C03E000082402000100A0302190
69536 +:1053E0003C1C0800279C56083C0200023C050400B7
69537 +:1053F00000852826008220260004102B2CA5000101
69538 +:105400002C840001000210803C0308002463560035
69539 +:105410000085202500431821108000030000102182
69540 +:10542000AC6600002402000103E000080000000058
69541 +:105430003C1C0800279C56083C0200023C05040066
69542 +:1054400000852826008220260004102B2CA50001B0
69543 +:105450002C840001000210803C03080024635600E5
69544 +:105460000085202500431821108000050000102130
69545 +:105470003C02080024425438AC62000024020001BF
69546 +:1054800003E00008000000003C0200023C030400AE
69547 +:1054900000821026008318262C4200012C63000194
69548 +:1054A000004310251040000B000028213C1C080080
69549 +:1054B000279C56083C0380008C62000824050001EC
69550 +:1054C00000431025AC6200088C62000C00441025DB
69551 +:1054D000AC62000C03E0000800A010213C1C080096
69552 +:1054E000279C56083C0580008CA3000C0004202754
69553 +:1054F000240200010064182403E00008ACA3000C9F
69554 +:105500003C020002148200063C0560008CA208D018
69555 +:105510002403FFFE0043102403E00008ACA208D0DF
69556 +:105520003C02040014820005000000008CA208D098
69557 +:105530002403FFFD00431024ACA208D003E00008C0
69558 +:10554000000000003C02601A344200108C430080CE
69559 +:1055500027BDFFF88C440084AFA3000093A3000094
69560 +:10556000240200041462001AAFA4000493A20001F4
69561 +:105570001040000797A300023062FFFC3C0380004C
69562 +:10558000004310218C4200000A001536AFA200042F
69563 +:105590003062FFFC3C03800000431021AC4400005B
69564 +:1055A000A3A000003C0560008CA208D02403FFFEED
69565 +:1055B0003C04601A00431024ACA208D08FA300045E
69566 +:1055C0008FA2000034840010AC830084AC82008081
69567 +:1055D00003E0000827BD000827BDFFE8AFBF0010AB
69568 +:1055E0003C1C0800279C56083C0280008C43000CA1
69569 +:1055F0008C420004004318243C0200021060001496
69570 +:10560000006228243C0204003C04000210A00005B3
69571 +:10561000006210243C0208008C4256000A00155B10
69572 +:1056200000000000104000073C0404003C02080099
69573 +:105630008C4256040040F809000000000A00156082
69574 +:10564000000000000000000D3C1C0800279C5608CC
69575 +:105650008FBF001003E0000827BD0018800802403B
69576 +:1056600080080100800800808008000000000C8095
69577 +:105670000000320008000E9808000EF408000F88A1
69578 +:1056800008001028080010748008010080080080BD
69579 +:10569000800800000A000028000000000000000050
69580 +:1056A0000000000D6370362E322E316200000000C3
69581 +:1056B00006020104000000000000000000000000DD
69582 +:1056C000000000000000000038003C000000000066
69583 +:1056D00000000000000000000000000000000020AA
69584 +:1056E00000000000000000000000000000000000BA
69585 +:1056F00000000000000000000000000000000000AA
69586 +:10570000000000000000000021003800000000013F
69587 +:105710000000002B000000000000000400030D400A
69588 +:105720000000000000000000000000000000000079
69589 +:105730000000000000000000100000030000000056
69590 +:105740000000000D0000000D3C020800244259AC8E
69591 +:105750003C03080024635BF4AC4000000043202BB2
69592 +:105760001480FFFD244200043C1D080037BD9FFC4F
69593 +:1057700003A0F0213C100800261000A03C1C0800EB
69594 +:10578000279C59AC0E0002F6000000000000000D3E
69595 +:1057900027BDFFB4AFA10000AFA20004AFA3000873
69596 +:1057A000AFA4000CAFA50010AFA60014AFA700185F
69597 +:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF
69598 +:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F
69599 +:1057D000AFB8003CAFB90040AFBC0044AFBF004819
69600 +:1057E0000E000820000000008FBF00488FBC00445E
69601 +:1057F0008FB900408FB8003C8FAF00388FAE0034B7
69602 +:105800008FAD00308FAC002C8FAB00288FAA002406
69603 +:105810008FA900208FA8001C8FA700188FA6001446
69604 +:105820008FA500108FA4000C8FA300088FA2000486
69605 +:105830008FA1000027BD004C3C1B60188F7A5030B0
69606 +:10584000377B502803400008AF7A000000A01821E1
69607 +:1058500000801021008028213C0460003C0760008B
69608 +:105860002406000810600006348420788C42000072
69609 +:10587000ACE220088C63000003E00008ACE3200CDD
69610 +:105880000A000F8100000000240300403C02600079
69611 +:1058900003E00008AC4320003C0760008F86000452
69612 +:1058A0008CE520740086102100A2182B14600007DC
69613 +:1058B000000028218F8AFDA024050001A1440013C7
69614 +:1058C0008F89000401244021AF88000403E0000810
69615 +:1058D00000A010218F84FDA08F8500049086001306
69616 +:1058E00030C300FF00A31023AF82000403E00008D0
69617 +:1058F000A08000138F84FDA027BDFFE8AFB000108B
69618 +:10590000AFBF001490890011908700112402002875
69619 +:10591000312800FF3906002830E300FF2485002CE1
69620 +:105920002CD00001106200162484001C0E00006EB2
69621 +:10593000000000008F8FFDA03C05600024020204DF
69622 +:1059400095EE003E95ED003C000E5C0031ACFFFF93
69623 +:10595000016C5025ACAA2010520000012402000462
69624 +:10596000ACA22000000000000000000000000000C9
69625 +:105970008FBF00148FB0001003E0000827BD00188F
69626 +:105980000A0000A6000028218F85FDA027BDFFD8B2
69627 +:10599000AFBF0020AFB3001CAFB20018AFB100140E
69628 +:1059A000AFB000100080982190A4001124B0001C1A
69629 +:1059B00024B1002C308300FF386200280E000090D4
69630 +:1059C0002C5200010E00009800000000020020216F
69631 +:1059D0001240000202202821000028210E00006E43
69632 +:1059E000000000008F8DFDA03C0880003C05600099
69633 +:1059F00095AC003E95AB003C02683025000C4C0095
69634 +:105A0000316AFFFF012A3825ACA7201024020202C8
69635 +:105A1000ACA6201452400001240200028FBF0020D7
69636 +:105A20008FB3001C8FB200188FB100148FB000101C
69637 +:105A300027BD002803E00008ACA2200027BDFFE03E
69638 +:105A4000AFB20018AFB10014AFB00010AFBF001C70
69639 +:105A50003C1160008E2320748F82000430D0FFFF41
69640 +:105A600030F2FFFF1062000C2406008F0E00006E63
69641 +:105A7000000000003C06801F0010440034C5FF00F9
69642 +:105A80000112382524040002AE2720100000302126
69643 +:105A9000AE252014AE2420008FBF001C8FB200184A
69644 +:105AA0008FB100148FB0001000C0102103E0000877
69645 +:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2
69646 +:105AC000AFBF0018AFB100140E00006E30F1FFFF41
69647 +:105AD00000102400009180253C036000AC70201071
69648 +:105AE0008FBF00188FB100148FB000102402000483
69649 +:105AF000AC62200027BD002003E000080000102158
69650 +:105B000027BDFFE03C046018AFBF0018AFB1001420
69651 +:105B1000AFB000108C8850002403FF7F34028071E6
69652 +:105B20000103382434E5380C241F00313C1980006F
69653 +:105B3000AC8550003C11800AAC8253BCAF3F0008DA
69654 +:105B40000E00054CAF9100400E00050A3C116000AC
69655 +:105B50000E00007D000000008E3008083C0F570941
69656 +:105B60002418FFF00218602435EEE00035EDF00057
69657 +:105B7000018E5026018D58262D4600012D69000109
69658 +:105B8000AF86004C0E000D09AF8900503C06601630
69659 +:105B90008CC700003C0860148D0500A03C03FFFF8B
69660 +:105BA00000E320243C02535300052FC2108200550D
69661 +:105BB00034D07C00960201F2A780006C10400003F4
69662 +:105BC000A780007C384B1E1EA78B006C960201F844
69663 +:105BD000104000048F8D0050384C1E1EA78C007C96
69664 +:105BE0008F8D005011A000058F83004C240E0020E3
69665 +:105BF000A78E007CA78E006C8F83004C1060000580
69666 +:105C00009785007C240F0020A78F007CA78F006C55
69667 +:105C10009785007C2CB8008153000001240500808A
69668 +:105C20009784006C2C91040152200001240404008C
69669 +:105C30001060000B3C0260008FBF00188FB1001491
69670 +:105C40008FB0001027BD0020A784006CA785007CC2
69671 +:105C5000A380007EA780007403E00008A780009264
69672 +:105C60008C4704382419103C30FFFFFF13F9000360
69673 +:105C700030A8FFFF1100004624030050A380007EDF
69674 +:105C80009386007E50C00024A785007CA780007CFE
69675 +:105C90009798007CA780006CA7800074A780009272
69676 +:105CA0003C010800AC3800800E00078700000000AF
69677 +:105CB0003C0F60008DED0808240EFFF03C0B600ED9
69678 +:105CC000260C0388356A00100000482100002821B6
69679 +:105CD00001AE20243C105709AF8C0010AF8A004859
69680 +:105CE000AF89001810900023AF8500148FBF0018F3
69681 +:105CF0008FB100148FB0001027BD002003E0000812
69682 +:105D0000AF80005400055080014648218D260004D4
69683 +:105D10000A00014800D180219798007CA784006C7C
69684 +:105D2000A7800074A78000923C010800AC38008076
69685 +:105D30000E000787000000003C0F60008DED080892
69686 +:105D4000240EFFF03C0B600E260C0388356A001011
69687 +:105D5000000048210000282101AE20243C105709F2
69688 +:105D6000AF8C0010AF8A0048AF8900181490FFDF95
69689 +:105D7000AF85001424110001AF9100548FBF0018AB
69690 +:105D80008FB100148FB0001003E0000827BD002081
69691 +:105D90000A00017BA383007E3083FFFF8F880040D1
69692 +:105DA0008F87003C000321403C0580003C020050EE
69693 +:105DB000008248253C0660003C0A010034AC040027
69694 +:105DC0008CCD08E001AA58241160000500000000F5
69695 +:105DD0008CCF08E024E7000101EA7025ACCE08E092
69696 +:105DE0008D19001001805821ACB900388D180014AD
69697 +:105DF000ACB8003CACA9003000000000000000007E
69698 +:105E00000000000000000000000000000000000092
69699 +:105E100000000000000000003C0380008C640000D3
69700 +:105E2000308200201040FFFD3C0F60008DED08E047
69701 +:105E30003C0E010001AE18241460FFE100000000D8
69702 +:105E4000AF87003C03E00008AF8B00588F8500400F
69703 +:105E5000240BFFF03C06800094A7001A8CA90024B4
69704 +:105E600030ECFFFF000C38C000EB5024012A402129
69705 +:105E7000ACC8003C8CA400248CC3003C00831023DD
69706 +:105E800018400033000000008CAD002025A2000166
69707 +:105E90003C0F0050ACC2003835EE00103C068000CC
69708 +:105EA000ACCE003000000000000000000000000048
69709 +:105EB00000000000000000000000000000000000E2
69710 +:105EC000000000003C0480008C9900003338002062
69711 +:105ED0001300FFFD30E20008104000173C0980006D
69712 +:105EE0008C880408ACA800108C83040CACA30014AC
69713 +:105EF0003C1900203C188000AF19003094AE001807
69714 +:105F000094AF001C01CF3021A4A6001894AD001A54
69715 +:105F100025A70001A4A7001A94AB001A94AC001E98
69716 +:105F2000118B00030000000003E0000800000000E7
69717 +:105F300003E00008A4A0001A8D2A0400ACAA0010F7
69718 +:105F40008D240404ACA400140A0002183C1900209B
69719 +:105F50008CA200200A0002003C0F00500A0001EE53
69720 +:105F60000000000027BDFFE8AFBF00100E000232A6
69721 +:105F7000000000008F8900408FBF00103C038000AC
69722 +:105F8000A520000A9528000A9527000427BD0018BF
69723 +:105F90003105FFFF30E6000F0006150000A22025A6
69724 +:105FA00003E00008AC6400803C0508008CA50020DC
69725 +:105FB0008F83000C27BDFFE8AFB00010AFBF001407
69726 +:105FC00010A300100000802124040001020430040A
69727 +:105FD00000A6202400C3102450440006261000010F
69728 +:105FE000001018802787FDA41480000A006718217C
69729 +:105FF000261000012E0900025520FFF38F83000CAC
69730 +:10600000AF85000C8FBF00148FB0001003E00008B4
69731 +:1060100027BD00188C6800003C058000ACA8002457
69732 +:106020000E000234261000013C0508008CA500205B
69733 +:106030000A0002592E0900022405000100851804F7
69734 +:106040003C0408008C84002027BDFFC8AFBF00348B
69735 +:1060500000831024AFBE0030AFB7002CAFB60028CD
69736 +:10606000AFB50024AFB40020AFB3001CAFB200182E
69737 +:10607000AFB1001410400051AFB000108F84004049
69738 +:10608000948700069488000A00E8302330D5FFFF8B
69739 +:1060900012A0004B8FBF0034948B0018948C000A20
69740 +:1060A000016C50233142FFFF02A2482B1520000251
69741 +:1060B00002A02021004020212C8F000515E00002C5
69742 +:1060C00000809821241300040E0001C102602021E9
69743 +:1060D0008F87004002609021AF80004494F4000A52
69744 +:1060E000026080211260004E3291FFFF3C1670006A
69745 +:1060F0003C1440003C1E20003C1760008F99005863
69746 +:106100008F380000031618241074004F0283F82BF8
69747 +:1061100017E0003600000000107E00478F86004424
69748 +:1061200014C0003A2403000102031023022320219B
69749 +:106130003050FFFF1600FFF13091FFFF8F870040C6
69750 +:106140003C1100203C108000AE11003094EB000A9E
69751 +:106150003C178000024B5021A4EA000A94E9000A8F
69752 +:1061600094E800043123FFFF3106000F00062D00E4
69753 +:106170000065F025AEFE008094F3000A94F6001846
69754 +:1061800012D30036001221408CFF00148CF4001052
69755 +:1061900003E468210000C02101A4782B029870213B
69756 +:1061A00001CF6021ACED0014ACEC001002B238233A
69757 +:1061B00030F5FFFF16A0FFB88F8400408FBF00347A
69758 +:1061C0008FBE00308FB7002C8FB600288FB500240B
69759 +:1061D0008FB400208FB3001C8FB200188FB1001451
69760 +:1061E0008FB0001003E0000827BD00381477FFCC03
69761 +:1061F0008F8600440E000EE202002021004018218C
69762 +:106200008F86004410C0FFC9020310230270702360
69763 +:106210008F87004001C368210A0002E431B2FFFF0A
69764 +:106220008F86004414C0FFC93C1100203C10800040
69765 +:106230000A0002AEAE1100300E00046602002021FA
69766 +:106240000A0002DB00401821020020210E0009395B
69767 +:10625000022028210A0002DB004018210E0001EE76
69768 +:10626000000000000A0002C702B2382327BDFFC8A1
69769 +:10627000AFB7002CAFB60028AFB50024AFB40020F4
69770 +:10628000AFB3001CAFB20018AFB10014AFB0001034
69771 +:10629000AFBF00300E00011B241300013C047FFF40
69772 +:1062A0003C0380083C0220003C010800AC20007048
69773 +:1062B0003496FFFF34770080345200033C1512C03F
69774 +:1062C000241400013C1080002411FF800E000245C0
69775 +:1062D000000000008F8700488F8B00188F89001402
69776 +:1062E0008CEA00EC8CE800E8014B302B01092823F4
69777 +:1062F00000A6102314400006014B18231440000E82
69778 +:106300003C05800002A3602B1180000B0000000000
69779 +:106310003C0560008CEE00EC8CED00E88CA4180CC1
69780 +:10632000AF8E001804800053AF8D00148F8F0010C3
69781 +:10633000ADF400003C0580008CBF00003BF900017B
69782 +:10634000333800011700FFE13C0380008C6201003C
69783 +:1063500024060C0010460009000000008C680100B3
69784 +:106360002D043080548000103C0480008C690100B2
69785 +:106370002D2331811060000C3C0480008CAA0100A8
69786 +:1063800011460004000020218CA6010024C5FF81D5
69787 +:1063900030A400FF8E0B01000E000269AE0B00243A
69788 +:1063A0000A00034F3C0480008C8D01002DAC3300AB
69789 +:1063B00011800022000000003C0708008CE70098D4
69790 +:1063C00024EE00013C010800AC2E00983C04800043
69791 +:1063D0008C8201001440000300000000566000148D
69792 +:1063E0003C0440008C9F01008C9801000000982123
69793 +:1063F00003F1C82400193940330F007F00EF7025E6
69794 +:1064000001D26825AC8D08308C8C01008C85010090
69795 +:10641000258B0100017130240006514030A3007F1C
69796 +:106420000143482501324025AC8808303C04400037
69797 +:10643000AE0401380A00030E000000008C99010030
69798 +:10644000240F0020AC99002092F80000330300FFD5
69799 +:10645000106F000C241F0050547FFFDD3C048000AF
69800 +:106460008C8401000E00154E000000000A00034F4E
69801 +:106470003C04800000963824ACA7180C0A000327BF
69802 +:106480008F8F00108C8501000E0008F72404008017
69803 +:106490000A00034F3C04800000A4102B24030001D9
69804 +:1064A00010400009000030210005284000A4102BF6
69805 +:1064B00004A00003000318405440FFFC00052840DE
69806 +:1064C0005060000A0004182B0085382B54E00004AB
69807 +:1064D0000003184200C33025008520230003184222
69808 +:1064E0001460FFF9000528420004182B03E000089F
69809 +:1064F00000C310213084FFFF30C600FF3C0780003E
69810 +:106500008CE201B80440FFFE00064C000124302557
69811 +:106510003C08200000C820253C031000ACE00180AE
69812 +:10652000ACE50184ACE4018803E00008ACE301B809
69813 +:106530003C0660008CC5201C2402FFF03083020062
69814 +:10654000308601001060000E00A2282434A500014E
69815 +:106550003087300010E0000530830C0034A50004C3
69816 +:106560003C04600003E00008AC85201C1060FFFDC7
69817 +:106570003C04600034A5000803E00008AC85201C42
69818 +:1065800054C0FFF334A500020A0003B03087300086
69819 +:1065900027BDFFE8AFB00010AFBF00143C0760009C
69820 +:1065A000240600021080001100A080218F83005873
69821 +:1065B0000E0003A78C6400188F8200580000202171
69822 +:1065C000240600018C45000C0E000398000000001A
69823 +:1065D0001600000224020003000010218FBF0014E7
69824 +:1065E0008FB0001003E0000827BD00188CE8201CC5
69825 +:1065F0002409FFF001092824ACE5201C8F870058EE
69826 +:106600000A0003CD8CE5000C3C02600E00804021A6
69827 +:1066100034460100240900180000000000000000BA
69828 +:10662000000000003C0A00503C0380003547020097
69829 +:10663000AC68003834640400AC65003CAC670030E2
69830 +:106640008C6C0000318B00201160FFFD2407FFFFE0
69831 +:106650002403007F8C8D00002463FFFF248400044A
69832 +:10666000ACCD00001467FFFB24C60004000000004E
69833 +:10667000000000000000000024A402000085282B78
69834 +:106680003C0300203C0E80002529FFFF010540212E
69835 +:10669000ADC300301520FFE00080282103E0000892
69836 +:1066A000000000008F82005827BDFFD8AFB3001C48
69837 +:1066B000AFBF0020AFB20018AFB10014AFB00010F0
69838 +:1066C00094460002008098218C5200182CC300814F
69839 +:1066D0008C4800048C4700088C51000C8C49001039
69840 +:1066E000106000078C4A00142CC4000414800013AE
69841 +:1066F00030EB000730C5000310A0001000000000C0
69842 +:106700002410008B02002021022028210E00039873
69843 +:10671000240600031660000224020003000010217A
69844 +:106720008FBF00208FB3001C8FB200188FB10014F0
69845 +:106730008FB0001003E0000827BD00281560FFF1AE
69846 +:106740002410008B3C0C80003C030020241F00011F
69847 +:10675000AD830030AF9F0044000000000000000047
69848 +:10676000000000002419FFF024D8000F031978243A
69849 +:106770003C1000D0AD88003801F0702524CD000316
69850 +:106780003C08600EAD87003C35850400AD8E0030BE
69851 +:10679000000D38823504003C3C0380008C6B000007
69852 +:1067A000316200201040FFFD0000000010E00008F2
69853 +:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2
69854 +:1067C00024A50004AC8800001467FFFB24840004A7
69855 +:1067D0003C05600EACA60038000000000000000080
69856 +:1067E000000000008F8600543C0400203C0780001D
69857 +:1067F000ACE4003054C000060120202102402021DA
69858 +:106800000E0003A7000080210A00041D02002021C1
69859 +:106810000E0003DD01402821024020210E0003A7C5
69860 +:10682000000080210A00041D0200202127BDFFE096
69861 +:10683000AFB200183092FFFFAFB10014AFBF001C21
69862 +:10684000AFB000101640000D000088210A0004932C
69863 +:106850000220102124050003508500278CE5000C40
69864 +:106860000000000D262800013111FFFF24E2002066
69865 +:106870000232802B12000019AF8200588F82004430
69866 +:10688000144000168F8700583C0670003C0320001F
69867 +:106890008CE5000000A62024148300108F84006083
69868 +:1068A000000544023C09800000A980241480FFE90F
69869 +:1068B000310600FF2CCA000B5140FFEB26280001D7
69870 +:1068C000000668803C0E080025CE575801AE6021B6
69871 +:1068D0008D8B0000016000080000000002201021E4
69872 +:1068E0008FBF001C8FB200188FB100148FB0001042
69873 +:1068F00003E0000827BD00200E0003982404008454
69874 +:106900001600FFD88F8700580A000474AF8000601B
69875 +:10691000020028210E0003BF240400018F870058C5
69876 +:106920000A000474AF820060020028210E0003BF39
69877 +:10693000000020210A0004A38F8700580E000404E1
69878 +:10694000020020218F8700580A000474AF82006083
69879 +:1069500030AFFFFF000F19C03C0480008C9001B8DD
69880 +:106960000600FFFE3C1920043C181000AC83018097
69881 +:10697000AC800184AC990188AC9801B80A00047518
69882 +:106980002628000190E2000390E30002000020218D
69883 +:106990000002FE0000033A0000FF2825240600083C
69884 +:1069A0000E000398000000001600FFDC2402000324
69885 +:1069B0008F870058000010210A000474AF82006025
69886 +:1069C00090E8000200002021240600090A0004C308
69887 +:1069D00000082E0090E4000C240900FF308500FF21
69888 +:1069E00010A900150000302190F9000290F8000372
69889 +:1069F000308F00FF94EB000400196E000018740043
69890 +:106A0000000F62000186202501AE5025014B28258C
69891 +:106A10003084FF8B0A0004C32406000A90E30002BE
69892 +:106A200090FF0004000020210003360000DF28252D
69893 +:106A30000A0004C32406000B0A0004D52406008BB8
69894 +:106A4000000449C23127003F000443423C02800059
69895 +:106A500000082040240316802CE60020AC43002CC4
69896 +:106A600024EAFFE02482000114C0000330A900FFE3
69897 +:106A700000801021314700FF000260803C0D800043
69898 +:106A8000240A0001018D20213C0B000E00EA28049D
69899 +:106A9000008B302111200005000538278CCE000026
69900 +:106AA00001C5382503E00008ACC700008CD8000001
69901 +:106AB0000307782403E00008ACCF000027BDFFE007
69902 +:106AC000AFB10014AFB00010AFBF00183C076000BA
69903 +:106AD0008CE408083402F0003C1160003083F000C0
69904 +:106AE000240501C03C04800E000030211062000625
69905 +:106AF000241000018CEA08083149F0003928E00030
69906 +:106B00000008382B000780403C0D0200AE2D081411
69907 +:106B1000240C16803C0B80008E2744000E000F8B47
69908 +:106B2000AD6C002C120000043C02169124050001FB
69909 +:106B3000120500103C023D2C345800E0AE384408E9
69910 +:106B40003C1108008E31007C8FBF00183C066000AD
69911 +:106B500000118540360F16808FB100148FB00010E1
69912 +:106B60003C0E020027BD0020ACCF442003E000080B
69913 +:106B7000ACCE08103C0218DA345800E0AE384408B5
69914 +:106B80003C1108008E31007C8FBF00183C0660006D
69915 +:106B900000118540360F16808FB100148FB00010A1
69916 +:106BA0003C0E020027BD0020ACCF442003E00008CB
69917 +:106BB000ACCE08100A0004EB240500010A0004EB27
69918 +:106BC0000000282124020400A7820024A780001CC2
69919 +:106BD000000020213C06080024C65A582405FFFF67
69920 +:106BE00024890001000440803124FFFF01061821A0
69921 +:106BF0002C87002014E0FFFAAC6500002404040098
69922 +:106C0000A7840026A780001E000020213C06080063
69923 +:106C100024C65AD82405FFFF248D0001000460809B
69924 +:106C200031A4FFFF018658212C8A00201540FFFA6D
69925 +:106C3000AD650000A7800028A7800020A780002263
69926 +:106C4000000020213C06080024C65B582405FFFFF5
69927 +:106C5000249900010004C0803324FFFF030678213B
69928 +:106C60002C8E000415C0FFFAADE500003C05600065
69929 +:106C70008CA73D002403E08F00E31024344601403C
69930 +:106C800003E00008ACA63D002487007F000731C266
69931 +:106C900024C5FFFF000518C2246400013082FFFFF5
69932 +:106CA000000238C0A78400303C010800AC27003047
69933 +:106CB000AF80002C0000282100002021000030219E
69934 +:106CC0002489000100A728213124FFFF2CA81701E7
69935 +:106CD000110000032C8300801460FFF924C600011A
69936 +:106CE00000C02821AF86002C10C0001DA786002AF6
69937 +:106CF00024CAFFFF000A11423C08080025085B581F
69938 +:106D00001040000A00002021004030212407FFFF2E
69939 +:106D1000248E00010004688031C4FFFF01A86021B7
69940 +:106D20000086582B1560FFFAAD87000030A2001FC7
69941 +:106D30005040000800043080240300010043C804D0
69942 +:106D400000041080004878212738FFFF03E0000886
69943 +:106D5000ADF8000000C820212405FFFFAC8500002D
69944 +:106D600003E000080000000030A5FFFF30C6FFFF71
69945 +:106D700030A8001F0080602130E700FF0005294295
69946 +:106D80000000502110C0001D24090001240B000147
69947 +:106D900025180001010B2004330800FF0126782686
69948 +:106DA000390E00202DED00012DC2000101A2182591
69949 +:106DB0001060000D014450250005C880032C4021BF
69950 +:106DC0000100182110E0000F000A20278D040000A8
69951 +:106DD000008A1825AD03000024AD00010000402109
69952 +:106DE0000000502131A5FFFF252E000131C9FFFF12
69953 +:106DF00000C9102B1040FFE72518000103E0000830
69954 +:106E0000000000008D0A0000014440240A0005D162
69955 +:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC
69956 +:106E2000AFB00010AFBF001430E7FFFF00005021EB
69957 +:106E30003410FFFF0000602124AF001F00C0482174
69958 +:106E4000241800012419002005E0001601E010219B
69959 +:106E50000002F943019F682A0009702B01AE40240B
69960 +:106E600011000017000C18800064102110E00005CC
69961 +:106E70008C4B000000F840040008382301675824B8
69962 +:106E800000003821154000410000402155600016E7
69963 +:106E90003169FFFF258B0001316CFFFF05E1FFEC3D
69964 +:106EA00001E0102124A2003E0002F943019F682A5C
69965 +:106EB0000009702B01AE40241500FFEB000C188078
69966 +:106EC000154600053402FFFF020028210E0005B51B
69967 +:106ED00000003821020010218FBF00148FB0001075
69968 +:106EE00003E0000827BD00181520000301601821E9
69969 +:106EF000000B1C0224080010306A00FF154000053A
69970 +:106F0000306E000F250D000800031A0231A800FFA3
69971 +:106F1000306E000F15C00005307F000325100004FF
69972 +:106F200000031902320800FF307F000317E000055C
69973 +:106F3000386900012502000200031882304800FF72
69974 +:106F4000386900013123000110600004310300FFA3
69975 +:106F5000250A0001314800FF310300FF000C6940A1
69976 +:106F600001A34021240A000110CAFFD53110FFFF00
69977 +:106F7000246E000131C800FF1119FFC638C9000195
69978 +:106F80002D1F002053E0001C258B0001240D000163
69979 +:106F90000A000648240E002051460017258B0001E8
69980 +:106FA00025090001312800FF2D0900205120001281
69981 +:106FB000258B000125430001010D5004014B1024D5
69982 +:106FC000250900011440FFF4306AFFFF3127FFFF5D
69983 +:106FD00010EE000C2582FFFF304CFFFF0000502117
69984 +:106FE0003410FFFF312800FF2D0900205520FFF24B
69985 +:106FF00025430001258B0001014648260A000602B0
69986 +:10700000316CFFFF00003821000050210A000654B7
69987 +:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6
69988 +:10702000AFB10014001039423211FFE000071080A8
69989 +:10703000AFB3001C00B1282330D3FFFFAFB200185C
69990 +:1070400030A5FFFF00809021026030210044202104
69991 +:10705000AFBF00200E0005E03207001F022288218A
69992 +:107060003403FFFF0240202102002821026030216A
69993 +:1070700000003821104300093231FFFF02201021A7
69994 +:107080008FBF00208FB3001C8FB200188FB1001487
69995 +:107090008FB0001003E0000827BD00280E0005E0B7
69996 +:1070A0000000000000408821022010218FBF002036
69997 +:1070B0008FB3001C8FB200188FB100148FB0001076
69998 +:1070C00003E0000827BD0028000424003C03600002
69999 +:1070D000AC603D0810A00002348210063482101605
70000 +:1070E00003E00008AC623D0427BDFFE0AFB0001034
70001 +:1070F000309000FF2E020006AFBF001810400008BD
70002 +:10710000AFB10014001030803C03080024635784A2
70003 +:1071100000C328218CA400000080000800000000AB
70004 +:10712000000020218FBF00188FB100148FB0001015
70005 +:107130000080102103E0000827BD00209791002A5D
70006 +:1071400016200051000020213C020800904200332C
70007 +:107150000A0006BB00000000978D002615A0003134
70008 +:10716000000020210A0006BB2402000897870024A3
70009 +:1071700014E0001A00001821006020212402000100
70010 +:107180001080FFE98FBF0018000429C2004530219C
70011 +:1071900000A6582B1160FFE43C0880003C0720004B
70012 +:1071A000000569C001A76025AD0C00203C038008E4
70013 +:1071B0002402001F2442FFFFAC6000000441FFFDD9
70014 +:1071C0002463000424A5000100A6702B15C0FFF560
70015 +:1071D000000569C00A0006A58FBF00189787001C2C
70016 +:1071E0003C04080024845A58240504000E0006605C
70017 +:1071F00024060001978B002424440001308AFFFFFD
70018 +:107200002569FFFF2D48040000402821150000409B
70019 +:10721000A789002424AC3800000C19C00A0006B964
70020 +:10722000A780001C9787001E3C04080024845AD8BD
70021 +:10723000240504000E00066024060001979900262C
70022 +:10724000244400013098FFFF272FFFFF2F0E04007A
70023 +:107250000040882115C0002CA78F0026A780001EA3
70024 +:107260003A020003262401003084FFFF0E00068D41
70025 +:107270002C4500010011F8C027F00100001021C0CA
70026 +:107280000A0006BB240200089785002E978700227B
70027 +:107290003C04080024845B580E00066024060001AC
70028 +:1072A0009787002A8F89002C2445000130A8FFFF12
70029 +:1072B00024E3FFFF0109302B0040802114C0001897
70030 +:1072C000A783002AA7800022978500300E000F7543
70031 +:1072D00002002021244A05003144FFFF0E00068DE4
70032 +:1072E000240500013C05080094A500320E000F752E
70033 +:1072F00002002021244521003C0208009042003376
70034 +:107300000A0006BB000521C00A0006F3A784001E80
70035 +:1073100024AC3800000C19C00A0006B9A784001C70
70036 +:107320000A00070DA7850022308400FF27BDFFE873
70037 +:107330002C820006AFBF0014AFB000101040001543
70038 +:1073400000A03821000440803C0308002463579CBF
70039 +:10735000010328218CA40000008000080000000028
70040 +:1073600024CC007F000751C2000C59C23170FFFFCE
70041 +:107370002547C40030E5FFFF2784001C02003021B0
70042 +:107380000E0005B52407000197860028020620217B
70043 +:10739000A78400288FBF00148FB0001003E00008FE
70044 +:1073A00027BD00183C0508008CA50030000779C2F5
70045 +:1073B0000E00038125E4DF003045FFFF3C04080098
70046 +:1073C00024845B58240600010E0005B52407000143
70047 +:1073D000978E002A8FBF00148FB0001025CD0001BA
70048 +:1073E00027BD001803E00008A78D002A0007C9C2C6
70049 +:1073F0002738FF00001878C231F0FFFF3C04080076
70050 +:1074000024845AD802002821240600010E0005B564
70051 +:1074100024070001978D0026260E0100000E84002F
70052 +:1074200025AC00013C0B6000A78C0026AD603D0838
70053 +:1074300036040006000030213C0760008CE23D0469
70054 +:10744000305F000617E0FFFD24C9000100061B00A5
70055 +:10745000312600FF006440252CC50004ACE83D0443
70056 +:1074600014A0FFF68FBF00148FB0001003E00008D7
70057 +:1074700027BD0018000751C22549C8002406000195
70058 +:10748000240700013C04080024845A580E0005B566
70059 +:107490003125FFFF978700248FBF00148FB00010A5
70060 +:1074A00024E6000127BD001803E00008A786002499
70061 +:1074B0003C0660183C090800252900FCACC9502C8A
70062 +:1074C0008CC850003C0580003C020002350700805B
70063 +:1074D000ACC750003C04080024841FE03C030800B3
70064 +:1074E00024631F98ACA50008ACA2000C3C01080066
70065 +:1074F000AC2459A43C010800AC2359A803E00008BF
70066 +:107500002402000100A030213C1C0800279C59AC3B
70067 +:107510003C0C04003C0B0002008B3826008C4026FB
70068 +:107520002CE200010007502B2D050001000A4880C5
70069 +:107530003C030800246359A4004520250123182199
70070 +:107540001080000300001021AC660000240200013E
70071 +:1075500003E00008000000003C1C0800279C59AC18
70072 +:107560003C0B04003C0A0002008A3026008B3826BF
70073 +:107570002CC200010006482B2CE5000100094080C8
70074 +:107580003C030800246359A4004520250103182169
70075 +:1075900010800005000010213C0C0800258C1F986D
70076 +:1075A000AC6C00002402000103E0000800000000B1
70077 +:1075B0003C0900023C080400008830260089382677
70078 +:1075C0002CC30001008028212CE400010083102539
70079 +:1075D0001040000B000030213C1C0800279C59ACD7
70080 +:1075E0003C0A80008D4E00082406000101CA68256F
70081 +:1075F000AD4D00088D4C000C01855825AD4B000C9D
70082 +:1076000003E0000800C010213C1C0800279C59AC76
70083 +:107610003C0580008CA6000C0004202724020001F9
70084 +:1076200000C4182403E00008ACA3000C3C020002D4
70085 +:107630001082000B3C0560003C070400108700032B
70086 +:107640000000000003E00008000000008CA908D042
70087 +:10765000240AFFFD012A402403E00008ACA808D05A
70088 +:107660008CA408D02406FFFE0086182403E000083E
70089 +:10767000ACA308D03C05601A34A600108CC300806F
70090 +:1076800027BDFFF88CC50084AFA3000093A40000C1
70091 +:107690002402001010820003AFA5000403E00008DC
70092 +:1076A00027BD000893A7000114E0001497AC000266
70093 +:1076B00097B800023C0F8000330EFFFC01CF682119
70094 +:1076C000ADA50000A3A000003C0660008CC708D058
70095 +:1076D0002408FFFE3C04601A00E82824ACC508D04A
70096 +:1076E0008FA300048FA200003499001027BD00086A
70097 +:1076F000AF22008003E00008AF2300843C0B800031
70098 +:10770000318AFFFC014B48218D2800000A00080C3B
70099 +:10771000AFA8000427BDFFE8AFBF00103C1C080065
70100 +:10772000279C59AC3C0580008CA4000C8CA2000462
70101 +:107730003C0300020044282410A0000A00A31824DF
70102 +:107740003C0604003C0400021460000900A610245A
70103 +:107750001440000F3C0404000000000D3C1C080015
70104 +:10776000279C59AC8FBF001003E0000827BD00180C
70105 +:107770003C0208008C4259A40040F80900000000B7
70106 +:107780003C1C0800279C59AC0A0008358FBF00102C
70107 +:107790003C0208008C4259A80040F8090000000093
70108 +:1077A0000A00083B000000003C0880008D0201B880
70109 +:1077B0000440FFFE35090180AD2400003C031000A9
70110 +:1077C00024040040AD250004A1240008A1260009DE
70111 +:1077D000A527000A03E00008AD0301B83084FFFFCD
70112 +:1077E0000080382130A5FFFF000020210A00084555
70113 +:1077F000240600803087FFFF8CA400002406003898
70114 +:107800000A000845000028218F8300788F860070C9
70115 +:107810001066000B008040213C07080024E75B68ED
70116 +:10782000000328C000A710218C440000246300013D
70117 +:10783000108800053063000F5466FFFA000328C06B
70118 +:1078400003E00008000010213C07080024E75B6CFF
70119 +:1078500000A7302103E000088CC200003C03900028
70120 +:1078600034620001008220253C038000AC640020CB
70121 +:107870008C65002004A0FFFE0000000003E000086B
70122 +:10788000000000003C0280003443000100832025FA
70123 +:1078900003E00008AC44002027BDFFE0AFB10014B6
70124 +:1078A0003091FFFFAFB00010AFBF001812200013DF
70125 +:1078B00000A080218CA20000240400022406020003
70126 +:1078C0001040000F004028210E0007250000000096
70127 +:1078D00000001021AE000000022038218FBF0018E8
70128 +:1078E0008FB100148FB0001000402021000028212B
70129 +:1078F000000030210A00084527BD00208CA20000AE
70130 +:10790000022038218FBF00188FB100148FB00010F3
70131 +:107910000040202100002821000030210A000845F5
70132 +:1079200027BD002000A010213087FFFF8CA5000498
70133 +:107930008C4400000A000845240600068F83FD9C45
70134 +:1079400027BDFFE8AFBF0014AFB00010906700087C
70135 +:10795000008010210080282130E600400000202116
70136 +:1079600010C000088C5000000E0000BD0200202155
70137 +:10797000020020218FBF00148FB000100A000548BC
70138 +:1079800027BD00180E0008A4000000000E0000BD76
70139 +:1079900002002021020020218FBF00148FB00010B0
70140 +:1079A0000A00054827BD001827BDFFE0AFB0001052
70141 +:1079B0008F90FD9CAFBF001CAFB20018AFB1001498
70142 +:1079C00092060001008088210E00087230D2000467
70143 +:1079D00092040005001129C2A6050000348300406E
70144 +:1079E000A20300050E00087C022020210E00054A9B
70145 +:1079F0000220202124020001AE02000C02202821D6
70146 +:107A0000A602001024040002A602001224060200AE
70147 +:107A1000A60200140E000725A60200161640000F4D
70148 +:107A20008FBF001C978C00743C0B08008D6B007896
70149 +:107A30002588FFFF3109FFFF256A0001012A382B45
70150 +:107A400010E00006A78800743C0F6006240E0016A4
70151 +:107A500035ED0010ADAE00508FBF001C8FB2001886
70152 +:107A60008FB100148FB0001003E0000827BD002084
70153 +:107A700027BDFFE0AFB10014AFBF0018AFB00010DA
70154 +:107A80001080000400A088212402008010820007DA
70155 +:107A9000000000000000000D8FBF00188FB100141F
70156 +:107AA0008FB0001003E0000827BD00200E00087210
70157 +:107AB00000A020218F86FD9C0220202190C500057A
70158 +:107AC0000E00087C30B000FF2403003E1603FFF1D7
70159 +:107AD0003C0680008CC401780480FFFE34C801405D
70160 +:107AE000240900073C071000AD11000002202021EE
70161 +:107AF000A10900048FBF00188FB100148FB00010CF
70162 +:107B0000ACC701780A0008C527BD002027BDFFE0EB
70163 +:107B1000AFB00010AFBF0018AFB100143C10800030
70164 +:107B20008E110020000000000E00054AAE04002067
70165 +:107B3000AE1100208FBF00188FB100148FB000105D
70166 +:107B400003E0000827BD00203084FFFF00803821BB
70167 +:107B50002406003500A020210A0008450000282145
70168 +:107B60003084FFFF008038212406003600A0202149
70169 +:107B70000A0008450000282127BDFFD0AFB500242A
70170 +:107B80003095FFFFAFB60028AFB40020AFBF002C88
70171 +:107B9000AFB3001CAFB20018AFB10014AFB000100B
70172 +:107BA00030B6FFFF12A000270000A0218F920058DE
70173 +:107BB0008E4300003C0680002402004000033E0289
70174 +:107BC00000032C0230E4007F006698241482001D1C
70175 +:107BD00030A500FF8F8300682C68000A1100001098
70176 +:107BE0008F8D0044000358803C0C0800258C57B84A
70177 +:107BF000016C50218D4900000120000800000000A8
70178 +:107C000002D4302130C5FFFF0E0008522404008446
70179 +:107C1000166000028F920058AF8000688F8D00447C
70180 +:107C20002659002026980001032090213314FFFFDD
70181 +:107C300015A00004AF9900580295202B1480FFDC9A
70182 +:107C400000000000028010218FBF002C8FB600289A
70183 +:107C50008FB500248FB400208FB3001C8FB20018A2
70184 +:107C60008FB100148FB0001003E0000827BD003072
70185 +:107C70002407003414A70149000000009247000EB9
70186 +:107C80008F9FFDA08F90FD9C24181600A3E700197C
70187 +:107C90009242000D3C0880003C07800CA3E20018D3
70188 +:107CA000964A00123C0D60003C117FFFA60A005C62
70189 +:107CB000964400103623FFFF240200053099FFFF91
70190 +:107CC000AE1900548E46001CAD1800288CEF000041
70191 +:107CD0008DAE444801E6482601C93021AE06003881
70192 +:107CE0008E05003824CB00013C0E7F00AE05003C21
70193 +:107CF0008E0C003CAFEC0004AE0B00208E13002075
70194 +:107D0000AE13001CA3E0001BAE03002CA3E2001284
70195 +:107D10008E4A001424130050AE0A00348E0400343E
70196 +:107D2000AFE400148E590018AE1900489258000CA8
70197 +:107D3000A218004E920D000835AF0020A20F0008D7
70198 +:107D40008E090018012E282434AC4000AE0C001817
70199 +:107D5000920B0000317200FF1253027F2403FF8058
70200 +:107D60003C04080024845BE80E0008AA0000000020
70201 +:107D70003C1108008E315BE80E00087202202021C1
70202 +:107D80002405000424080001A2050025022020216A
70203 +:107D90000E00087CA20800053C0580008CB001782C
70204 +:107DA0000600FFFE8F92005834AE0140240F0002FF
70205 +:107DB0003C091000ADD10000A1CF0004ACA90178AE
70206 +:107DC0000A000962AF8000682CAD003751A0FF9413
70207 +:107DD0008F8D0044000580803C110800263157E05B
70208 +:107DE000021178218DEE000001C0000800000000A3
70209 +:107DF0002411000414B1008C3C0780003C080800EA
70210 +:107E00008D085BE88F86FD9CACE800208E4500085D
70211 +:107E10008F99FDA0240D0050ACC500308E4C000899
70212 +:107E2000ACCC00508E4B000CACCB00348E43001019
70213 +:107E3000ACC300388E4A0010ACCA00548E42001405
70214 +:107E4000ACC2003C8E5F0018AF3F00048E50001C97
70215 +:107E5000ACD0002090C40000309800FF130D024AFF
70216 +:107E6000000000008CC400348CD00030009030231F
70217 +:107E700004C000F12404008C126000EE2402000310
70218 +:107E80000A000962AF8200682419000514B900666F
70219 +:107E90003C0580003C0808008D085BE88F86FD9C4F
70220 +:107EA000ACA800208E4C00048F8AFDA0240720007F
70221 +:107EB000ACCC001C924B000824120008A14B001906
70222 +:107EC0008F82005890430009A14300188F85005805
70223 +:107ED00090BF000A33E400FF1092001028890009C7
70224 +:107EE000152000BA240E0002240D0020108D000B76
70225 +:107EF000340780002898002117000008240740005C
70226 +:107F000024100040109000053C0700012419008057
70227 +:107F1000109900023C070002240740008CC20018A0
70228 +:107F20003C03FF00004350240147F825ACDF001854
70229 +:107F300090B2000BA0D200278F8300589464000CED
70230 +:107F4000108001FE000000009467000C3C1F8000C0
70231 +:107F50002405FFBFA4C7005C9063000E2407000443
70232 +:107F6000A0C300088F820058904A000FA0CA0009E1
70233 +:107F70008F8900588D3200108FE400740244C823AA
70234 +:107F8000ACD900588D300014ACD0002C95380018B6
70235 +:107F9000330DFFFFACCD00409531001A322FFFFFAB
70236 +:107FA000ACCF00448D2E001CACCE00489128000EB2
70237 +:107FB000A0C8000890CC000801855824126001B6C2
70238 +:107FC000A0CB00088F9200580A000962AF870068B2
70239 +:107FD0002406000614A600143C0E80003C0F080086
70240 +:107FE0008DEF5BE88F85FD98ADCF00208E4900189E
70241 +:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B
70242 +:1080000024040005ACA800048CCC003C1260008164
70243 +:10801000AD6C00000A000962AF84006824110007FB
70244 +:1080200010B1004B240400063C05080024A55BE8C1
70245 +:108030000E000881240400818F9200580013102B39
70246 +:108040000A000962AF820068241F002314BFFFF6F4
70247 +:108050003C0C80003C0508008CA55BE88F8BFDA0E4
70248 +:10806000AD8500208F91FD9C8E4600042564002084
70249 +:1080700026450014AE260028240600030E000F81BA
70250 +:10808000257000308F87005802002021240600034D
70251 +:108090000E000F8124E500083C04080024845BE8FE
70252 +:1080A0000E0008AA0000000092230000240A0050DD
70253 +:1080B000306200FF544AFFE18F9200580E000F6CAF
70254 +:1080C000000000000A000A6A8F920058240800335A
70255 +:1080D00014A800323C0380003C1108008E315BE89C
70256 +:1080E0008F8FFDA0AC7100208E420008240D002867
70257 +:1080F0008F89FD9CADE200308E4A000C24060009F9
70258 +:10810000ADEA00348E5F0010ADFF00388E440014DD
70259 +:10811000ADE400208E590018ADF900248E58001CE3
70260 +:10812000ADF80028A1ED00118E4E00041260003160
70261 +:10813000AD2E00288F9200580A000962AF860068B1
70262 +:10814000240D002214ADFFB8000000002404000735
70263 +:108150003C1008008E105BE83C188000AF10002037
70264 +:108160005660FEAEAF8400683C04080024845BE8DF
70265 +:108170000E0008AA241300508F84FD9C90920000EA
70266 +:10818000325900FF1333014B000000008F9200585A
70267 +:10819000000020210A000962AF8400683C05080045
70268 +:1081A00024A55BE80E000858240400810A000A6A2E
70269 +:1081B0008F92005802D498213265FFFF0E000852BA
70270 +:1081C000240400840A0009628F920058108EFF5325
70271 +:1081D000240704002887000310E00179241100041B
70272 +:1081E000240F0001548FFF4D240740000A000A228B
70273 +:1081F000240701003C05080024A55BE80E0008A444
70274 +:10820000240400828F920058000030210A00096285
70275 +:10821000AF8600683C04080024845BE88CC2003808
70276 +:108220000E0008AA8CC3003C8F9200580A000AC0B6
70277 +:1082300000002021240400823C05080024A55BE8FE
70278 +:108240000E0008A4000000008F92005800001021CA
70279 +:108250000A000962AF8200688E5000048F91FD9C75
70280 +:108260003C078000ACF00020922C00050200282181
70281 +:10827000318B0002156001562404008A8F92FDA004
70282 +:108280002404008D9245001B30A6002014C001502C
70283 +:1082900002002821922E00092408001231C900FF93
70284 +:1082A0001128014B240400810E00087202002021D5
70285 +:1082B0009258001B240F000402002021370D0042B9
70286 +:1082C000A24D001B0E00087CA22F00253C0580005B
70287 +:1082D0008CA401780480FFFE34B90140241F000201
70288 +:1082E000AF300000A33F00048F9200583C101000F4
70289 +:1082F000ACB001780A000A6B0013102B8E500004FA
70290 +:108300008F91FD9C3C038000AC700020922A0005F8
70291 +:108310000200282131420002144000172404008A80
70292 +:10832000922C00092412000402002821318B00FF46
70293 +:1083300011720011240400810E0008720200202135
70294 +:108340008F89FDA0240800122405FFFE912F001B39
70295 +:108350000200202135EE0020A12E001BA2280009DA
70296 +:108360009226000500C538240E00087CA2270005CF
70297 +:1083700002002821000020210E0009330000000027
70298 +:108380000A000A6A8F9200588E4C00043C07800055
70299 +:108390003C10080026105BE8ACEC00203C01080013
70300 +:1083A000AC2C5BE8924B0003317100041220013BBE
70301 +:1083B0008F84FD9C24020006A0820009924F001BBE
70302 +:1083C000240EFFC031E9003F012E4025A08800089F
70303 +:1083D0009245000330A6000114C0013200000000E5
70304 +:1083E0008E420008AE0200083C0208008C425BF09E
70305 +:1083F000104001318F90FDA0000219C28F8DFD9CAD
70306 +:10840000A603000C8E4A000C24180001240400145A
70307 +:10841000AE0A002C8E420010AE02001C965F0016C1
70308 +:10842000A61F003C96590014A619003EADB8000CDA
70309 +:10843000A5B80010A5B80012A5B80014A5B800167C
70310 +:1084400012600144A2040011925100033232000272
70311 +:108450002E5300018F920058266200080A0009621C
70312 +:10846000AF8200688E4400043C1980003C068008FE
70313 +:10847000AF2400208E45000890D80000240D005045
70314 +:10848000331100FF122D009C2407008824060009E8
70315 +:108490000E000845000000000A000A6A8F9200588A
70316 +:1084A0008E5000043C0980003C118008AD30002053
70317 +:1084B0009228000024050050310400FF10850110AF
70318 +:1084C0002407008802002021000028210E00084512
70319 +:1084D0002406000E922D00002418FF80020028219F
70320 +:1084E00001B8802524040004240600300E0007256E
70321 +:1084F000A23000000A000A6A8F9200588E500004D1
70322 +:108500008F91FDA03C028000AC500020923F001BE8
70323 +:1085100033F900101320006C240700810200202191
70324 +:10852000000028212406001F0E000845000000005E
70325 +:108530000A000A6A8F9200588E44001C0E00085DE3
70326 +:1085400000000000104000E3004048218F880058E0
70327 +:1085500024070089012020218D05001C240600012C
70328 +:108560000E000845000000000A000A6A8F920058B9
70329 +:10857000964900023C10080026105BE831280004F0
70330 +:10858000110000973C0460008E4E001C3C0F8000E0
70331 +:10859000ADEE00203C010800AC2E5BE896470002DF
70332 +:1085A00030E40001148000E6000000008E42000468
70333 +:1085B000AE0200083C1008008E105BF0120000ECC8
70334 +:1085C0003C0F80008F92FD9C241000018E4E0018FD
70335 +:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3
70336 +:1085E000A2400005AE50000C3C0808008D085BF06E
70337 +:1085F0008F840058A6500010000839C2A6500012FF
70338 +:10860000A6500014A6500016A5A7000C8C8C0008DC
70339 +:108610008F8B00588F8A0058ADAC002C8D63000CF6
70340 +:1086200024070002ADA3001C91460010A1A6001172
70341 +:108630008F82005890450011A3E500088F990058DB
70342 +:1086400093380012A258004E8F910058922F0013B9
70343 +:10865000A1AF00128F920058964E0014A5AE003CB8
70344 +:1086600096490016A5A9003E8E480018ADA8001432
70345 +:108670005660FD6AAF8700683C05080024A55BE8EA
70346 +:108680000E000881000020218F9200580000382140
70347 +:108690000A000962AF8700683C05080024A55BE872
70348 +:1086A0000E0008A4240400828F9200580A000A4D8C
70349 +:1086B000000038210E000F6C000000008F9200585F
70350 +:1086C0000A000AC0000020210E00087202002021CA
70351 +:1086D0009223001B02002021346A00100E00087C47
70352 +:1086E000A22A001B000038210200202100002821BE
70353 +:1086F0000A000BA52406001F9242000C305F000107
70354 +:1087000013E0000300000000964A000EA4CA002CEB
70355 +:10871000924B000C316300025060000600003821CB
70356 +:108720008E470014964C0012ACC7001CA4CC001A53
70357 +:10873000000038210A000B7F240600093C050800D0
70358 +:1087400024A55BE80E0008A42404008B8F92005837
70359 +:108750000A000A4D0013382B3C0C08008D8C5BE896
70360 +:1087600024DFFFFE25930100326B007F016790211B
70361 +:1087700002638824AD110028AE4600E0AE4000E45C
70362 +:108780000A0009B3AE5F001CACC000543C0D0800E9
70363 +:108790008DAD5BE83C18800C37090100ACED00287A
70364 +:1087A0008E510014AD3100E08E4F0014AD2F00E467
70365 +:1087B0008E4E001025C7FFFE0A0009F4AD27001CED
70366 +:1087C0005491FDD6240740000A000A222407100015
70367 +:1087D0000E00092D000000000A000A6A8F9200585E
70368 +:1087E0008C83442C3C12DEAD3651BEEF3C010800B8
70369 +:1087F000AC205BE810710062000000003C196C6264
70370 +:1088000037387970147800082404000297850074C2
70371 +:108810009782006C2404009200A2F82B13E0001948
70372 +:1088200002002821240400020E00069524050200FF
70373 +:108830003C068000ACC200203C010800AC225BE892
70374 +:108840001040000D8F8C0058240A002824040003D7
70375 +:10885000918B0010316300FF546A00012404000171
70376 +:108860000E0000810000000010400004240400837A
70377 +:108870000A000BC28F920058240400833C050800B4
70378 +:1088800024A55BE80E000881000000008F920058CC
70379 +:108890000013382B0A000962AF8700680A000B49F1
70380 +:1088A000240200128E4400080E00085D0000000043
70381 +:1088B0000A000B55AE0200083C05080024A55BE841
70382 +:1088C0000E000858240400878F9200580A000B728B
70383 +:1088D0000013102B240400040E000695240500301C
70384 +:1088E0001440002A004048218F8800582407008344
70385 +:1088F000012020218D05001C0A000BB32406000175
70386 +:108900008F8300788F8600701066FEEE000038219D
70387 +:108910003C07080024E75B6C000320C00087282187
70388 +:108920008CAE000011D0005D246F000131E3000F18
70389 +:108930005466FFFA000320C00A000B8C00003821A7
70390 +:108940008E4400040E00085D000000000A000BC801
70391 +:10895000AE0200083C05080024A55BE80E0008A450
70392 +:10896000240400828F9200580A000B72000010212C
70393 +:108970003C05080024A55BE80A000C7C2404008761
70394 +:108980008C83442C0A000C5B3C196C628F88005865
70395 +:108990003C0780083C0C8000240B0050240A000196
70396 +:1089A000AD820020A0EB0000A0EA000191030004CA
70397 +:1089B000A0E3001891040005A0E400199106000648
70398 +:1089C0003C04080024845B6CA0E6001A91020007B6
70399 +:1089D0003C06080024C65B68A0E2001B9105000865
70400 +:1089E000A0E5001C911F0009A0FF001D9119000ABD
70401 +:1089F000A0F9001E9118000BA0F8001F9112000CA6
70402 +:108A0000A0F200209111000DA0F100219110000EA4
70403 +:108A1000A0F00022910F000FA0EF0023910E001094
70404 +:108A2000A0EE0024910D0011A0ED0025950C00147E
70405 +:108A3000A4EC0028950B00168F8A00708F920078A6
70406 +:108A4000A4EB002A95030018000A10C02545000178
70407 +:108A5000A4E3002C8D1F001C0044C0210046C82147
70408 +:108A600030A5000FAF3F0000AF09000010B20006B4
70409 +:108A7000AF850070000038218D05001C01202021E9
70410 +:108A80000A000BB32406000124AD000131A7000F3A
70411 +:108A9000AF8700780A000CF9000038213C06080076
70412 +:108AA00024C65B680086902100003821ACA000003D
70413 +:108AB0000A000B8CAE4000003C0482013C036000C5
70414 +:108AC00034820E02AC603D68AF80009803E000087D
70415 +:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7
70416 +:108AE000001018422C620041AFBF00141440000275
70417 +:108AF00024040080240300403C010800AC300060E6
70418 +:108B00003C010800AC2300640E000F7500602821B2
70419 +:108B1000244802BF2409FF8001092824001039805D
70420 +:108B2000001030408FBF00148FB0001000A720212C
70421 +:108B300000861821AF8300803C010800AC25005856
70422 +:108B40003C010800AC24005C03E0000827BD0018CD
70423 +:108B5000308300FF30C6FFFF30E400FF3C08800098
70424 +:108B60008D0201B80440FFFE000354000144382583
70425 +:108B70003C09600000E920253C031000AD050180A0
70426 +:108B8000AD060184AD04018803E00008AD0301B81F
70427 +:108B90008F8500583C0A6012354800108CAC0004E8
70428 +:108BA0003C0D600E35A60010318B00062D690001CA
70429 +:108BB000AD0900C48CA70004ACC731808CA20008AA
70430 +:108BC00094A40002ACC231848CA3001C0460000396
70431 +:108BD000A784009003E00008000000008CAF00189C
70432 +:108BE000ACCF31D08CAE001C03E00008ACCE31D449
70433 +:108BF0008F8500588F87FF288F86FF308CAE00044A
70434 +:108C00003C0F601235E80010ACEE00788CAD000827
70435 +:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0
70436 +:108C2000ACCB004894CA00543C0208008C4200447B
70437 +:108C300025490001A4C9005494C400543083FFFFA7
70438 +:108C400010620017000000003C0208008C42004047
70439 +:108C5000A4C200528CA30018ACE300308CA2001414
70440 +:108C6000ACE2002C8CB90018ACF900388CB80014B8
70441 +:108C700024050001ACF800348D0600BC50C5001975
70442 +:108C80008D0200B48D0200B8A4E2004894E40048CC
70443 +:108C9000A4E4004A94E800EA03E000083102FFFF80
70444 +:108CA0003C0208008C420024A4C00054A4C200521C
70445 +:108CB0008CA30018ACE300308CA20014ACE2002CB2
70446 +:108CC0008CB90018ACF900388CB8001424050001E8
70447 +:108CD000ACF800348D0600BC54C5FFEB8D0200B823
70448 +:108CE0008D0200B4A4E2004894E40048A4E4004AE1
70449 +:108CF00094E800EA03E000083102FFFF8F86005885
70450 +:108D00003C0480008CC900088CC80008000929C0F8
70451 +:108D1000000839C0AC87002090C30007306200040F
70452 +:108D20001040003EAF85009490CB0007316A0008E8
70453 +:108D30001140003D8F87FF2C8CCD000C8CCE001491
70454 +:108D400001AE602B11800036000000008CC2000CC8
70455 +:108D5000ACE200708CCB00188F85FF288F88FF3025
70456 +:108D6000ACEB00748CCA00102402FFF8ACAA00D847
70457 +:108D70008CC9000CAD0900608CC4001CACA400D0F0
70458 +:108D800090E3007C0062C824A0F9007C90D8000722
70459 +:108D9000330F000811E000040000000090ED007C9B
70460 +:108DA00035AC0001A0EC007C90CF000731EE000153
70461 +:108DB00011C000060000000090E3007C241800347D
70462 +:108DC00034790002A0F9007CACB800DC90C2000746
70463 +:108DD0003046000210C000040000000090E8007C53
70464 +:108DE00035040004A0E4007C90ED007D3C0B600E97
70465 +:108DF000356A001031AC003FA0EC007D8D4931D4C4
70466 +:108E00003127000110E00002240E0001A0AE00098D
70467 +:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8
70468 +:108E20000A000DAF8CC200140A000DB0ACE0007057
70469 +:108E30008F8C005827BDFFD8AFB3001CAFB200180D
70470 +:108E4000AFB00010AFBF0020AFB10014918F00157C
70471 +:108E50003C13600E3673001031EB000FA38B009CA7
70472 +:108E60008D8F00048D8B0008959F0012959900103E
70473 +:108E70009584001A9598001E958E001C33EDFFFF17
70474 +:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1
70475 +:108E90003C010800AC2D00243C010800AC29004432
70476 +:108EA0003C010800AC2A0040AE683178AE67317CE6
70477 +:108EB00091850015959100163C12601236520010F3
70478 +:108EC00030A200FF3230FFFFAE623188AE5000B4F6
70479 +:108ED00091830014959F0018240600010066C804C1
70480 +:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5
70481 +:108EF000AF8F00843C08600631CD00FFAE4D00C04E
70482 +:108F0000918A00159584000E3C07600A314900FFE4
70483 +:108F1000AF8B00883084FFFFAE4900C835110010C8
70484 +:108F20000E000D1034F004103C0208008C4200606A
70485 +:108F30003C0308008C6300643C0608008CC60058A3
70486 +:108F40003C0508008CA5005C8F8400808FBF00204A
70487 +:108F5000AE23004CAE65319CAE030054AE4500DC40
70488 +:108F6000AE6231A0AE6331A4AE663198AE22004845
70489 +:108F70008FB3001CAE0200508FB10014AE4200E06F
70490 +:108F8000AE4300E4AE4600D88FB000108FB2001898
70491 +:108F90000A00057D27BD0028978500929783007CF5
70492 +:108FA00027BDFFE8AFB0001000A3102BAFBF001427
70493 +:108FB000240400058F900058104000552409000239
70494 +:108FC0000E0006958F850080AF8200942404000374
70495 +:108FD0001040004F240900023C0680000E00008172
70496 +:108FE000ACC2002024070001240820001040004DDE
70497 +:108FF00024040005978E00928F8AFF2C24090050CC
70498 +:1090000025C50001A7850092A14900003C0D08007C
70499 +:109010008DAD0064240380008F84FF28000D66005E
70500 +:10902000AD4C0018A5400006954B000A8F85FF3017
70501 +:109030002402FF8001633024A546000A915F000AE4
70502 +:109040000000482103E2C825A159000AA0A0000899
70503 +:10905000A140004CA08000D5961800029783009094
70504 +:109060003C020004A49800EA960F00022418FFBFF7
70505 +:1090700025EE2401A48E00BE8E0D0004ACAD00448C
70506 +:109080008E0C0008ACAC0040A4A00050A4A000547A
70507 +:109090008E0B000C240C0030AC8B00288E060010C8
70508 +:1090A000AC860024A480003EA487004EA487005014
70509 +:1090B000A483003CAD420074AC8800D8ACA800602A
70510 +:1090C000A08700FC909F00D433F9007FA09900D4C2
70511 +:1090D000909000D402187824A08F00D4914E007C88
70512 +:1090E00035CD0001A14D007C938B009CAD480070F4
70513 +:1090F000AC8C00DCA08B00D68F8800888F87008422
70514 +:10910000AC8800C4AC8700C8A5400078A540007AB0
70515 +:109110008FBF00148FB000100120102103E0000861
70516 +:1091200027BD00188F8500940E0007258F860080CC
70517 +:109130000A000E9F2409000227BDFFE0AFB0001017
70518 +:109140008F900058AFB10014AFBF00188E09000413
70519 +:109150000E00054A000921C08E0800048F84FF28F4
70520 +:109160008F82FF30000839C03C068000ACC7002069
70521 +:10917000948500EA904300131460001C30B1FFFF97
70522 +:109180008F8CFF2C918B0008316A00401540000B3A
70523 +:10919000000000008E0D0004022030218FBF001857
70524 +:1091A0008FB100148FB00010240400220000382179
70525 +:1091B000000D29C00A000D2F27BD00200E000098C9
70526 +:1091C000000000008E0D0004022030218FBF001827
70527 +:1091D0008FB100148FB00010240400220000382149
70528 +:1091E000000D29C00A000D2F27BD00200E000090A1
70529 +:1091F000000000008E0D0004022030218FBF0018F7
70530 +:109200008FB100148FB00010240400220000382118
70531 +:10921000000D29C00A000D2F27BD002027BDFFE04B
70532 +:10922000AFB200183092FFFFAFB00010AFBF001C0C
70533 +:10923000AFB100141240001E000080218F8600583C
70534 +:109240008CC500002403000600053F02000514023F
70535 +:1092500030E4000714830016304500FF2CA80006F8
70536 +:1092600011000040000558803C0C0800258C58BCBB
70537 +:10927000016C50218D490000012000080000000011
70538 +:109280008F8E0098240D000111CD005024020002A1
70539 +:10929000AF820098260900013130FFFF24C800206A
70540 +:1092A0000212202B010030211480FFE5AF88005806
70541 +:1092B000020010218FBF001C8FB200188FB1001464
70542 +:1092C0008FB0001003E0000827BD00209387007EC8
70543 +:1092D00054E00034000030210E000DE700000000D3
70544 +:1092E0008F8600580A000EFF240200018F87009825
70545 +:1092F0002405000210E50031240400130000282199
70546 +:1093000000003021240700010E000D2F0000000096
70547 +:109310000A000F008F8600588F83009824020002F5
70548 +:109320001462FFF6240400120E000D9A00000000E3
70549 +:109330008F85009400403021240400120E000D2F70
70550 +:10934000000038210A000F008F8600588F83009894
70551 +:109350002411000310710029241F0002107FFFCE8A
70552 +:1093600026090001240400100000282100003021FB
70553 +:109370000A000F1D240700018F91009824060002A7
70554 +:109380001626FFF9240400100E000E410000000014
70555 +:10939000144000238F9800588F8600580A000EFF53
70556 +:1093A00024020003240400140E000D2F00002821C5
70557 +:1093B0008F8600580A000EFF240200020E000EA93C
70558 +:1093C000000000000A000F008F8600580E000D3FBD
70559 +:1093D00000000000241900022404001400002821C9
70560 +:1093E0000000302100003821AF9900980E000D2FA9
70561 +:1093F000000000000A000F008F8600580E000D5775
70562 +:10940000000000008F8500942419000200403021E4
70563 +:1094100024040010000038210A000F56AF9900986C
70564 +:109420000040382124040010970F0002000028217A
70565 +:109430000E000D2F31E6FFFF8F8600580A000F0047
70566 +:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D
70567 +:109450008C8500182402000100A61824AC83001893
70568 +:1094600003E00008A08200053084FFFF30A5FFFF65
70569 +:109470001080000700001821308200011040000217
70570 +:1094800000042042006518211480FFFB00052840DD
70571 +:1094900003E000080060102110C000070000000079
70572 +:1094A0008CA2000024C6FFFF24A50004AC820000AB
70573 +:1094B00014C0FFFB2484000403E000080000000047
70574 +:1094C00010A0000824A3FFFFAC86000000000000ED
70575 +:1094D000000000002402FFFF2463FFFF1462FFFA74
70576 +:1094E0002484000403E0000800000000000411C010
70577 +:1094F00003E000082442024027BDFFE8AFB000109F
70578 +:1095000000808021AFBF00140E000F9600A0202124
70579 +:1095100000504821240AFF808FBF00148FB0001034
70580 +:10952000012A30243127007F3C08800A3C042100B6
70581 +:1095300000E8102100C428253C03800027BD001846
70582 +:10954000AC650024AF820038AC400000AC6500245C
70583 +:1095500003E00008AC4000403C0D08008DAD005811
70584 +:1095600000056180240AFF8001A45821016C482174
70585 +:10957000012A30243127007F3C08800C3C04210064
70586 +:1095800000E8102100C428253C038000AC650028B9
70587 +:10959000AF82003403E00008AC40002430A5FFFF98
70588 +:1095A0003C0680008CC201B80440FFFE3C086015F8
70589 +:1095B00000A838253C031000ACC40180ACC0018475
70590 +:1095C000ACC7018803E00008ACC301B83C0D08003B
70591 +:1095D0008DAD005800056180240AFF8001A4582148
70592 +:1095E000016C4021010A4824000931403107007F05
70593 +:1095F00000C728253C04200000A418253C02800058
70594 +:10960000AC43083003E00008AF80003427BDFFE81A
70595 +:10961000AFB0001000808021AFBF00140E000F9685
70596 +:1096200000A0202100504821240BFF80012B502452
70597 +:10963000000A39403128007F3C0620008FBF00140B
70598 +:109640008FB0001000E8282534C2000100A21825C0
70599 +:109650003C04800027BD0018AC83083003E00008FC
70600 +:10966000AF8000383C0580088CA700603C0680086D
70601 +:109670000087102B144000112C8340008CA8006040
70602 +:109680002D0340001060000F240340008CC90060CF
70603 +:109690000089282B14A00002008018218CC30060D0
70604 +:1096A00000035A42000B30803C0A0800254A59202A
70605 +:1096B00000CA202103E000088C8200001460FFF340
70606 +:1096C0002403400000035A42000B30803C0A08008B
70607 +:1096D000254A592000CA202103E000088C8200009E
70608 +:1096E0003C05800890A60008938400AB24C20001CA
70609 +:1096F000304200FF3043007F1064000C0002382726
70610 +:10970000A0A200083C0480008C85017804A0FFFE24
70611 +:109710008F8A00A0240900023C081000AC8A014096
70612 +:10972000A089014403E00008AC8801780A00101BFE
70613 +:1097300030E2008027BDFFD8AFB200188F9200A49E
70614 +:10974000AFBF0020AFB3001CAFB00010AFB100142A
70615 +:109750008F9300348E5900283C1000803C0EFFEFA0
70616 +:10976000AE7900008E580024A260000A35CDFFFFBC
70617 +:10977000AE7800049251002C3C0BFF9F356AFFFF2E
70618 +:10978000A271000C8E6F000C3C080040A271000B0F
70619 +:1097900001F06025018D4824012A382400E8302595
70620 +:1097A000AE66000C8E450004AE6000183C0400FF5D
70621 +:1097B000AE6500148E43002C3482FFFFA6600008C3
70622 +:1097C0000062F824AE7F00108E5900088F9000A030
70623 +:1097D000964E0012AE7900208E51000C31D83FFF1A
70624 +:1097E00000187980AE7100248E4D001401F06021C4
70625 +:1097F00031CB0001AE6D00288E4A0018000C41C22A
70626 +:10980000000B4B80AE6A002C8E46001C01093821EB
70627 +:10981000A667001CAE660030964500028E4400200C
70628 +:10982000A665001EAE64003492430033306200042B
70629 +:1098300054400006924700003C0280083443010077
70630 +:109840008C7F00D0AE7F0030924700008F860038BA
70631 +:10985000A0C700309245003330A4000250800007BA
70632 +:10986000925100018F880038240BFF80910A00304C
70633 +:10987000014B4825A1090030925100018F9000381A
70634 +:10988000240CFFBF2404FFDFA21100318F8D0038AC
70635 +:109890003C1880083711008091AF003C31EE007F0A
70636 +:1098A000A1AE003C8F890038912B003C016C502404
70637 +:1098B000A12A003C8F9F00388E68001493E6003C7C
70638 +:1098C0002D0700010007114000C4282400A218251C
70639 +:1098D000A3E3003C8F87003896590012A4F90032A8
70640 +:1098E0008E450004922E007C30B0000300107823D7
70641 +:1098F00031ED000300AD102131CC000215800002D3
70642 +:1099000024460034244600303C0280083443008062
70643 +:10991000907F007C00BFC824333800041700000289
70644 +:1099200024C2000400C010218F98003824190002BE
70645 +:10993000ACE20034A3190000924F003F8F8E003834
70646 +:109940003C0C8008358B0080A1CF00018F9100383E
70647 +:10995000924D003F8E440004A62D0002956A005CE3
70648 +:109960000E000FF43150FFFF00024B800209382532
70649 +:109970003C08420000E82825AE2500048E4400384B
70650 +:109980008F850038ACA400188E460034ACA6001CAD
70651 +:10999000ACA0000CACA00010A4A00014A4A0001661
70652 +:1099A000A4A00020A4A00022ACA000248E62001479
70653 +:1099B00050400001240200018FBF00208FB3001C23
70654 +:1099C0008FB200188FB100148FB00010ACA2000845
70655 +:1099D0000A00101327BD002827BDFFC83C058008DA
70656 +:1099E00034A40080AFBF0034AFBE0030AFB7002C4E
70657 +:1099F000AFB60028AFB50024AFB40020AFB3001C51
70658 +:109A0000AFB20018AFB10014AFB00010948300786B
70659 +:109A10009482007A104300512405FFFF0080F0215A
70660 +:109A20000A0011230080B821108B004D8FBF003435
70661 +:109A30008F8600A03C1808008F18005C2411FF805E
70662 +:109A40003C1680000306782101F18024AED0002C62
70663 +:109A500096EE007A31EC007F3C0D800E31CB7FFF1B
70664 +:109A6000018D5021000B4840012AA82196A4000036
70665 +:109A70003C0808008D0800582405FF8030953FFF02
70666 +:109A800001061821001539800067C8210325F82434
70667 +:109A90003C02010003E290253338007F3C11800C2A
70668 +:109AA000AED20028031190219250000D320F000415
70669 +:109AB00011E0003702E0982196E3007A96E8007AF8
70670 +:109AC00096E5007A2404800031077FFF24E300013B
70671 +:109AD00030627FFF00A4F82403E2C825A6F9007ACB
70672 +:109AE00096E6007A3C1408008E94006030D67FFF22
70673 +:109AF00012D400C1000000008E5800188F8400A00E
70674 +:109B000002A028212713FFFF0E000FCEAE53002C1A
70675 +:109B100097D5007897D4007A12950010000028217C
70676 +:109B20003C098008352401003C0A8008914800085F
70677 +:109B3000908700D53114007F30E400FF0284302B81
70678 +:109B400014C0FFB9268B0001938E00AB268C000158
70679 +:109B5000008E682115ACFFB78F8600A08FBF003440
70680 +:109B60008FBE00308FB7002C8FB600288FB5002431
70681 +:109B70008FB400208FB3001C8FB200188FB1001477
70682 +:109B80008FB0001000A0102103E0000827BD0038AE
70683 +:109B900000C020210E000F99028028218E4B00105A
70684 +:109BA0008E4C00308F84003824090002016C502351
70685 +:109BB000AE4A0010A089000096E3005C8E4400309D
70686 +:109BC0008F9100380E000FF43070FFFF00024380C9
70687 +:109BD000020838253C02420000E22825AE25000498
70688 +:109BE0008E5F00048F8A00388E590000240B000815
70689 +:109BF000AD5F001CAD590018AD40000CAD40001029
70690 +:109C00009246000A240400052408C00030D000FF5A
70691 +:109C1000A550001496580008A55800169251000A45
70692 +:109C20003C188008322F00FFA54F0020964E0008F8
70693 +:109C300037110100A54E0022AD400024924D000BCB
70694 +:109C400031AC00FFA54C0002A14B00018E49003051
70695 +:109C50008F830038240BFFBFAC690008A06400307C
70696 +:109C60008F9000382403FFDF9607003200E8282495
70697 +:109C700000B51025A6020032921F003233F9003FD2
70698 +:109C800037260040A20600328F8C0038AD800034A9
70699 +:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F
70700 +:109CA00031CD007FA18D003C8F84003835EEFFFF61
70701 +:109CB000908A003C014B4824A089003C8F850038E5
70702 +:109CC00090A8003C01033824A0A7003C8E42003439
70703 +:109CD0008F9100383C038008AE2200408E59002C42
70704 +:109CE0008E5F0030033F3023AE26004492300048A0
70705 +:109CF0003218007FA23800488F8800388E4D00301F
70706 +:109D00008D0C004801AE582401965024014B482583
70707 +:109D1000AD0900489244000AA104004C964700088F
70708 +:109D20008F850038A4A7004E8E5000308E4400303E
70709 +:109D30000E0003818C65006092F9007C0002F940FE
70710 +:109D4000004028210002110003E2302133360002D6
70711 +:109D500012C00003020680210005B0800216802197
70712 +:109D6000926D007C31B30004126000020005708027
70713 +:109D7000020E80218E4B00308F8800382405800031
70714 +:109D8000316A0003000A4823312400030204182129
70715 +:109D9000AD03003496E4007A96F0007A96F1007AEA
70716 +:109DA00032027FFF2447000130FF7FFF0225C824D5
70717 +:109DB000033F3025A6E6007A96F8007A3C120800A8
70718 +:109DC0008E520060330F7FFF11F200180000000078
70719 +:109DD0008F8400A00E000FCE02A028218F8400A047
70720 +:109DE0000E000FDE028028210E001013000000007C
70721 +:109DF0000A00111F0000000096F1007A022480245E
70722 +:109E0000A6F0007A92EF007A92EB007A31EE00FF32
70723 +:109E1000000E69C2000D6027000C51C03169007F3F
70724 +:109E2000012A20250A001119A2E4007A96E6007A98
70725 +:109E300000C5C024A6F8007A92EF007A92F3007A67
70726 +:109E400031F200FF001271C2000E6827000DB1C090
70727 +:109E5000326C007F01962825A2E5007A0A0011D015
70728 +:109E60008F8400A03C0380003084FFFF30A5FFFFFB
70729 +:109E7000AC640018AC65001C03E000088C620014A0
70730 +:109E800027BDFFA03C068008AFBF005CAFBE0058F6
70731 +:109E9000AFB70054AFB60050AFB5004CAFB40048F8
70732 +:109EA000AFB30044AFB20040AFB1003CAFB0003838
70733 +:109EB00034C80100910500D590C700083084FFFF29
70734 +:109EC00030A500FF30E2007F0045182AAFA4001043
70735 +:109ED000A7A00018A7A0002610600055AFA000148E
70736 +:109EE00090CA00083149007F00A9302324D3FFFF26
70737 +:109EF0000013802B8FB400100014902B02128824C2
70738 +:109F0000522000888FB300143C03800894790052DB
70739 +:109F1000947E00508FB60010033EC0230018BC0092
70740 +:109F2000001714030016FC0002C2A82A16A00002A3
70741 +:109F3000001F2C030040282100133C0000072403CD
70742 +:109F400000A4102A5440000100A020212885000907
70743 +:109F500014A000020080A021241400083C0C8008FA
70744 +:109F60008D860048001459808D88004C3C03800089
70745 +:109F70003169FFFF3C0A0010012A202534710400DA
70746 +:109F8000AC660038AF9100A4AC68003CAC64003013
70747 +:109F900000000000000000000000000000000000C1
70748 +:109FA00000000000000000000000000000000000B1
70749 +:109FB0008C6E000031CD002011A0FFFD0014782A26
70750 +:109FC00001F01024104000390000A8213C16800840
70751 +:109FD00092D700083C1280008E44010032F6007FC8
70752 +:109FE0000E000F9902C028218E3900108E44010006
70753 +:109FF0000000902133373FFF0E000FB102E028210F
70754 +:10A00000923800003302003F2C500008520000102C
70755 +:10A0100000008821000210803C030800246358E4FB
70756 +:10A020000043F8218FFE000003C00008000000007C
70757 +:10A0300090CF0008938C00AB31EE007F00AE682318
70758 +:10A04000018D58210A0012172573FFFF0000882197
70759 +:10A050003C1E80008FC401000E000FCE02E02821BC
70760 +:10A060008FC401000E000FDE02C028211220000F55
70761 +:10A070000013802B8F8B00A426A400010004AC00E9
70762 +:10A08000027298230015AC032578004002B4B02A70
70763 +:10A090000013802B241700010300882102D0102414
70764 +:10A0A000AF9800A41440FFC9AFB700143C07800864
70765 +:10A0B00094E200508FAE00103C05800002A288217F
70766 +:10A0C0003C060020A4F10050ACA6003094F40050EF
70767 +:10A0D00094EF005201D51823306CFFFF11F4001EDD
70768 +:10A0E000AFAC00108CEF004C001561808CF500487F
70769 +:10A0F00001EC28210000202100AC582B02A4C02133
70770 +:10A10000030BB021ACE5004CACF600488FB4001056
70771 +:10A110000014902B021288241620FF7C3C03800838
70772 +:10A120008FB300148FBF005C8FBE00583A620001ED
70773 +:10A130008FB700548FB600508FB5004C8FB40048D5
70774 +:10A140008FB300448FB200408FB1003C8FB0003815
70775 +:10A1500003E0000827BD006094FE00548CF2004428
70776 +:10A1600033C9FFFE0009C8C00259F821ACBF003C4A
70777 +:10A170008CE800448CAD003C010D50231940003B9D
70778 +:10A18000000000008CF7004026E20001ACA200387D
70779 +:10A190003C05005034A700103C038000AC67003041
70780 +:10A1A00000000000000000000000000000000000AF
70781 +:10A1B000000000000000000000000000000000009F
70782 +:10A1C0008C7800003316002012C0FFFD3C1180087F
70783 +:10A1D000962200543C1580003C068008304E000159
70784 +:10A1E000000E18C0007578218DEC04003C070800B3
70785 +:10A1F0008CE700443C040020ACCC00488DF40404FF
70786 +:10A20000240B0001ACD4004C10EB0260AEA4003073
70787 +:10A21000963900523C0508008CA5004000B99021F9
70788 +:10A22000A6320052963F005427ED0001A62D00549F
70789 +:10A230009626005430C4FFFF5487FF2F8FB40010C0
70790 +:10A2400030A5FFFF0E0011F4A62000543C070800C3
70791 +:10A250008CE70024963E00520047B82303D74823DA
70792 +:10A26000A62900520A0012198FB400108CE2004097
70793 +:10A270000A0012BE00000000922400012407000121
70794 +:10A280003085007F14A7001C97AD00268E2B00148C
70795 +:10A29000240CC000316A3FFF01AC48243C06080092
70796 +:10A2A0008CC60060012A402531043FFF0086882BC0
70797 +:10A2B00012200011A7A800263C0508008CA5005814
70798 +:10A2C0008F9100A0000439802402FF8000B1182182
70799 +:10A2D0000067F82103E2F02433F8007F3C1280008D
70800 +:10A2E0003C19800EAE5E002C0319702191D0000D38
70801 +:10A2F000360F0004A1CF000D0E001028241200011B
70802 +:10A30000241100013C1E80008FC401000E000FCEFE
70803 +:10A3100002E028218FC401000E000FDE02C02821B8
70804 +:10A320001620FF558F8B00A40A0012860013802B85
70805 +:10A330008F8600A490C80001310400201080019194
70806 +:10A34000241000013C048008348B0080916A007C5A
70807 +:10A350008F9E0034AFA0002C314900011120000F66
70808 +:10A36000AFB000288CCD00148C8E006001AE602B45
70809 +:10A370001580000201A038218C8700603C188008FD
70810 +:10A38000370300808C70007000F0782B15E000021D
70811 +:10A3900000E020218C640070AFA4002C3C028008F7
70812 +:10A3A000344500808CD200148CBF0070025FC82B33
70813 +:10A3B00017200002024020218CA400708FA7002CDF
70814 +:10A3C0000087182310600003AFA3003024050002AB
70815 +:10A3D000AFA500288FA400280264882B162000BA9D
70816 +:10A3E000000018218CD000388FCE000C3C0F00806C
70817 +:10A3F000AFD000008CCD00343C0CFF9F01CF58251E
70818 +:10A40000AFCD000490CA003F3586FFFF01662024CF
70819 +:10A410003C0900203C08FFEFA3CA000B0089382547
70820 +:10A420003511FFFF00F118243C0500088F8700A4B8
70821 +:10A430000065C825AFD9000C8CE20014AFC000182D
70822 +:10A440008FA60030AFC200148CF800188FB0002C1B
70823 +:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A
70824 +:10A4600003326824AFCF00248CEC000C020670216C
70825 +:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B
70826 +:10A48000AFCC0020AFC000288CEA00148FAB002CAA
70827 +:10A49000014B48230126402311000011AFC80010D2
70828 +:10A4A00090EB003D8FC900048FC80000000B5100E5
70829 +:10A4B000012A28210000102100AA882B010218215E
70830 +:10A4C0000071F821AFC50004AFDF000090F2003D3D
70831 +:10A4D000A3D2000A8F9900A497380006A7D80008D5
70832 +:10A4E0008F910038240800023C038008A228000055
70833 +:10A4F0003465008094BF005C8FA4002C33F0FFFF14
70834 +:10A500000E000FF48F9200380002CB808F8500A4DC
70835 +:10A51000021978253C18420001F87025AE4E00045F
70836 +:10A520008F8400388CAD0038AC8D00188CAC0034B2
70837 +:10A53000AC8C001CAC80000CAC800010A48000141B
70838 +:10A54000A4800016A4800020A4800022AC800024F7
70839 +:10A5500090A6003F8FA7002CA486000250E0019235
70840 +:10A56000240700018FA200305040000290A2003D5D
70841 +:10A5700090A2003E244A0001A08A00018F84003886
70842 +:10A580008FA9002CAC8900083C128008364D008051
70843 +:10A5900091AC007C3186000214C000022407003414
70844 +:10A5A000240700308F8500A43C198008373F0080C5
70845 +:10A5B00090B0000093F9007C240E0004A0900030BD
70846 +:10A5C0008F8F00A48FB8002C8F8D003891F200017E
70847 +:10A5D0003304000301C46023A1B200318F8E003820
70848 +:10A5E0008F8600A42402C00095CA003294C90012CC
70849 +:10A5F0008FAB002C0142402431233FFF010388250B
70850 +:10A60000A5D1003291D000323185000300EBF82152
70851 +:10A610003218003F370F0040A1CF00328FA4002C2A
70852 +:10A6200003E5382133280004108000028F850038AC
70853 +:10A6300000E838213C0A8008ACA700343549010005
70854 +:10A640008D2800D08FA3002C2419FFBFACA80038A0
70855 +:10A6500090B1003C2C640001240FFFDF3227007F03
70856 +:10A66000A0A7003C8F98003800049140931F003C45
70857 +:10A6700003F98024A310003C8F8C0038918E003C9D
70858 +:10A6800001CF682401B23025A186003C8F8900A447
70859 +:10A690008F8800388D2B0020AD0B00408D220024C8
70860 +:10A6A000AD0200448D2A0028AD0A00488D23002CFD
70861 +:10A6B0000E001013AD03004C8FB1002824070002D8
70862 +:10A6C000122700118FA300280003282B00058023E8
70863 +:10A6D0000270982400608021006090210A00126FAF
70864 +:10A6E0000010882B962900128F8400A00000902172
70865 +:10A6F0003125FFFFA7A900180E000FC22411000189
70866 +:10A700000A00131D3C1E80003C0B80003C12800898
70867 +:10A710008D640100924900088F92FF340E000F995A
70868 +:10A720003125007F8F9900388FA700288FA4003033
70869 +:10A73000A3270000965F005C33F0FFFF0E000FF4CC
70870 +:10A740008F91003800026B80020D80253C0842008A
70871 +:10A750008F8D00A402085025AE2A00048DA5003874
70872 +:10A760008F8A003800007821000F1100AD450018D5
70873 +:10A770008DB800343C047FFF3488FFFFAD58001CC7
70874 +:10A7800091A6003E8D4C001C8D4900180006190052
70875 +:10A79000000677020183C821004E58250323882B29
70876 +:10A7A000012B382100F1F821AD59001CAD5F0018D4
70877 +:10A7B000AD40000CAD40001091B0003E8FA40030C1
70878 +:10A7C00024090005A550001495A500042419C00013
70879 +:10A7D00000884024A545001691B8003EA5580020E9
70880 +:10A7E00095AF0004A54F0022AD40002491AE003F7C
70881 +:10A7F000A54E000291A6003E91AC003D01861023BB
70882 +:10A80000244B0001A14B00018F9100388FA3003031
70883 +:10A810003C028008344B0100AE230008A22900301E
70884 +:10A820008F8C00388F8700A4959F003294F000121F
70885 +:10A830002407FFBF033FC02432053FFF03057825EF
70886 +:10A84000A58F0032918E00322418FFDF31CD003FFA
70887 +:10A8500035A60040A18600328F910038240DFFFFFD
70888 +:10A86000240CFF80AE2000348D6A00D0AE2A003860
70889 +:10A870009223003C3069007FA229003C8F90003871
70890 +:10A880003C0380009219003C0327F824A21F003CDF
70891 +:10A890008F8E003891C5003C00B87824A1CF003CD1
70892 +:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA
70893 +:10A8B000AD46004491420048004C5825A14B004849
70894 +:10A8C0008F9000388F9900A48E09004801238824B6
70895 +:10A8D00002283825AE070048933F003EA21F004CD7
70896 +:10A8E0008F9800A48F8F003897050004A5E5004ECF
70897 +:10A8F0000E0003818DC500609246007C8FAC003055
70898 +:10A9000000026940000291000040282130CB000283
70899 +:10A9100001B21021156000AA018230213C0E80088E
70900 +:10A9200035C20080904C007C31830004106000032D
70901 +:10A930008FB900300005788000CF3021241F00043B
70902 +:10A940008F910038332D000303ED8023320800037C
70903 +:10A9500000C85021AE2A00343C188000A7C500383A
70904 +:10A960003C0680088F04010090DE00080E000FDE18
70905 +:10A9700033C5007F0E001013000000000A00140D04
70906 +:10A980008FA300288F9800348CC90038241F00033F
70907 +:10A99000A7000008AF0900008CC50034A300000A1E
70908 +:10A9A0008F9900A4AF0500043C080080932D003F60
70909 +:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D
70910 +:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E
70911 +:10A9D00003D170243646FFFF01C61824AF03000CD4
70912 +:10A9E0008F2C0014972900128F8400A0AF0C001048
70913 +:10A9F0008F2F0014AF000018AF000020AF0F00141D
70914 +:10AA0000AF0000248F270018312F3FFF000F59801F
70915 +:10AA1000AF0700288F2500080164F821312D0001BF
70916 +:10AA2000AF0500308F31000C8F920038001F51C2EB
70917 +:10AA3000000D438001481021241E00023C068008BE
70918 +:10AA4000A702001CA7000034AF11002CA25E00007A
70919 +:10AA500034D20080964E005C8F9900383C0342004F
70920 +:10AA600031CCFFFF01833825AF2700048F8B00A472
70921 +:10AA7000240500012402C0008D640038240700343E
70922 +:10AA8000AF2400188D690034AF29001CAF20000CE2
70923 +:10AA9000AF200010A7200014A7200016A720002038
70924 +:10AAA000A7200022AF200024A7300002A325000128
70925 +:10AAB0008F8800388F9F00A4AD10000893ED000030
70926 +:10AAC000A10D00308F8A00A48F98003891510001A9
70927 +:10AAD000A31100318F8B0038957E003203C27024A1
70928 +:10AAE00001CF6025A56C0032916300323064003FD5
70929 +:10AAF000A16400329249007C3125000214A00002BA
70930 +:10AB00008F840038240700303C198008AC8700345B
70931 +:10AB1000373201008E5F00D0240AFFBF020090216F
70932 +:10AB2000AC9F0038908D003C31A8007FA088003C8D
70933 +:10AB30008F9E003893C2003C004A8824A3D1003C79
70934 +:10AB40008F8300380010882B9066003C34CE0020A4
70935 +:10AB5000A06E003C8F8400A48F9800388C8C00205D
70936 +:10AB6000AF0C00408C8F0024AF0F00448C8700286E
70937 +:10AB7000AF0700488C8B002CAF0B004C0E0010135D
70938 +:10AB80003C1E80000A0012700000000094C80052B1
70939 +:10AB90003C0A08008D4A002401488821A4D10052B3
70940 +:10ABA0000A0012198FB40010A08700018F840038AA
70941 +:10ABB000240B0001AC8B00080A0013BE3C12800875
70942 +:10ABC000000520800A0014A200C4302127BDFFE048
70943 +:10ABD0003C0D8008AFB20018AFB00010AFBF001C32
70944 +:10ABE000AFB1001435B200808E4C001835A80100BA
70945 +:10ABF000964B000695A70050910900FC000C5602E8
70946 +:10AC0000016728233143007F312600FF240200031F
70947 +:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC
70948 +:10AC2000910600FC2412000530C200FF10520033D0
70949 +:10AC300000000000160000098FBF001C8FB2001832
70950 +:10AC40008FB100148FB00010240D0C003C0C80005C
70951 +:10AC500027BD002003E00008AD8D00240E0011FB8D
70952 +:10AC6000020020218FBF001C8FB200188FB100148A
70953 +:10AC70008FB00010240D0C003C0C800027BD00207C
70954 +:10AC800003E00008AD8D0024965800789651007AB4
70955 +:10AC9000924E007D0238782631E8FFFF31C400C0B3
70956 +:10ACA000148000092D11000116000037000000007B
70957 +:10ACB0005620FFE28FBF001C0E0010D100000000E4
70958 +:10ACC0000A00156A8FBF001C1620FFDA0000000082
70959 +:10ACD0000E0010D1000000001440FFD88FBF001CF0
70960 +:10ACE0001600002200000000925F007D33E2003F6A
70961 +:10ACF000A242007D0A00156A8FBF001C950900EA78
70962 +:10AD00008F86008000802821240400050E0007257E
70963 +:10AD10003130FFFF978300923C0480002465FFFFE1
70964 +:10AD2000A78500928C8A01B80540FFFE0000000054
70965 +:10AD3000AC8001808FBF001CAC9001848FB20018E2
70966 +:10AD40008FB100148FB000103C0760133C0B100053
70967 +:10AD5000240D0C003C0C800027BD0020AC8701882E
70968 +:10AD6000AC8B01B803E00008AD8D00240E0011FB90
70969 +:10AD7000020020215040FFB18FBF001C925F007D78
70970 +:10AD80000A00159733E2003F0E0011FB020020215C
70971 +:10AD90001440FFAA8FBF001C122000070000000013
70972 +:10ADA0009259007D3330003F36020040A242007DC0
70973 +:10ADB0000A00156A8FBF001C0E0010D100000000B1
70974 +:10ADC0005040FF9E8FBF001C9259007D3330003FE2
70975 +:10ADD0000A0015C636020040000000000000001BFB
70976 +:10ADE0000000000F0000000A00000008000000063C
70977 +:10ADF0000000000500000005000000040000000441
70978 +:10AE00000000000300000003000000030000000336
70979 +:10AE10000000000300000002000000020000000229
70980 +:10AE2000000000020000000200000002000000021A
70981 +:10AE3000000000020000000200000002000000020A
70982 +:10AE400000000002000000020000000200000002FA
70983 +:10AE50000000000100000001000000018008010066
70984 +:10AE6000800800808008000000000C000000308096
70985 +:10AE7000080011D00800127C08001294080012A8E3
70986 +:10AE8000080012BC080011D0080011D0080012F010
70987 +:10AE90000800132C080013400800138808001A8CBF
70988 +:10AEA00008001A8C08001AC408001AC408001AD82E
70989 +:10AEB00008001AA808001D0008001CCC08001D5836
70990 +:10AEC00008001D5808001DE008001D108008024001
70991 +:10AED000080027340800256C0800275C080027F4C8
70992 +:10AEE0000800293C0800298808002AAC080029B479
70993 +:10AEF00008002A38080025DC08002EDC08002EA4F3
70994 +:10AF000008002588080025880800258808002B20CF
70995 +:10AF100008002B20080025880800258808002DD06F
70996 +:10AF2000080025880800258808002588080025884D
70997 +:10AF300008002E0C080025880800258808002588B0
70998 +:10AF4000080025880800258808002588080025882D
70999 +:10AF5000080025880800258808002588080025881D
71000 +:10AF6000080025880800258808002588080029A8E9
71001 +:10AF7000080025880800258808002E680800258814
71002 +:10AF800008002588080025880800258808002588ED
71003 +:10AF900008002588080025880800258808002588DD
71004 +:10AFA00008002588080025880800258808002588CD
71005 +:10AFB00008002588080025880800258808002588BD
71006 +:10AFC00008002CF4080025880800258808002C6853
71007 +:10AFD00008002BC408003CE408003CB808003C848E
71008 +:10AFE00008003C5808003C3808003BEC8008010091
71009 +:10AFF00080080080800800008008008008004C6401
71010 +:10B0000008004C9C08004BE408004C6408004C64A9
71011 +:10B01000080049B808004C64080050500A000C842D
71012 +:10B0200000000000000000000000000D7278703683
71013 +:10B030002E322E31620000000602010300000000E3
71014 +:10B0400000000001000000000000000000000000FF
71015 +:10B0500000000000000000000000000000000000F0
71016 +:10B0600000000000000000000000000000000000E0
71017 +:10B0700000000000000000000000000000000000D0
71018 +:10B0800000000000000000000000000000000000C0
71019 +:10B0900000000000000000000000000000000000B0
71020 +:10B0A00000000000000000000000000000000000A0
71021 +:10B0B0000000000000000000000000000000000090
71022 +:10B0C0000000000000000000000000000000000080
71023 +:10B0D0000000000000000000000000000000000070
71024 +:10B0E0000000000000000000000000000000000060
71025 +:10B0F0000000000000000000000000000000000050
71026 +:10B10000000000000000000000000000000000003F
71027 +:10B11000000000000000000000000000000000002F
71028 +:10B12000000000000000000000000000000000001F
71029 +:10B13000000000000000000000000000000000000F
71030 +:10B1400000000000000000000000000000000000FF
71031 +:10B1500000000000000000000000000000000000EF
71032 +:10B1600000000000000000000000000000000000DF
71033 +:10B1700000000000000000000000000000000000CF
71034 +:10B1800000000000000000000000000000000000BF
71035 +:10B1900000000000000000000000000000000000AF
71036 +:10B1A000000000000000000000000000000000009F
71037 +:10B1B000000000000000000000000000000000008F
71038 +:10B1C000000000000000000000000000000000007F
71039 +:10B1D000000000000000000000000000000000006F
71040 +:10B1E000000000000000000000000000000000005F
71041 +:10B1F000000000000000000000000000000000004F
71042 +:10B20000000000000000000000000000000000003E
71043 +:10B21000000000000000000000000000000000002E
71044 +:10B22000000000000000000000000000000000001E
71045 +:10B23000000000000000000000000000000000000E
71046 +:10B2400000000000000000000000000000000000FE
71047 +:10B2500000000000000000000000000000000000EE
71048 +:10B2600000000000000000000000000000000000DE
71049 +:10B2700000000000000000000000000000000000CE
71050 +:10B2800000000000000000000000000000000000BE
71051 +:10B2900000000000000000000000000000000000AE
71052 +:10B2A000000000000000000000000000000000009E
71053 +:10B2B000000000000000000000000000000000008E
71054 +:10B2C000000000000000000000000000000000007E
71055 +:10B2D000000000000000000000000000000000006E
71056 +:10B2E000000000000000000000000000000000005E
71057 +:10B2F000000000000000000000000000000000004E
71058 +:10B30000000000000000000000000000000000003D
71059 +:10B31000000000000000000000000000000000002D
71060 +:10B32000000000000000000000000000000000001D
71061 +:10B33000000000000000000000000000000000000D
71062 +:10B3400000000000000000000000000000000000FD
71063 +:10B3500000000000000000000000000000000000ED
71064 +:10B3600000000000000000000000000000000000DD
71065 +:10B3700000000000000000000000000000000000CD
71066 +:10B3800000000000000000000000000000000000BD
71067 +:10B3900000000000000000000000000000000000AD
71068 +:10B3A000000000000000000000000000000000009D
71069 +:10B3B000000000000000000000000000000000008D
71070 +:10B3C000000000000000000000000000000000007D
71071 +:10B3D000000000000000000000000000000000006D
71072 +:10B3E000000000000000000000000000000000005D
71073 +:10B3F000000000000000000000000000000000004D
71074 +:10B40000000000000000000000000000000000003C
71075 +:10B41000000000000000000000000000000000002C
71076 +:10B42000000000000000000000000000000000001C
71077 +:10B43000000000000000000000000000000000000C
71078 +:10B4400000000000000000000000000000000000FC
71079 +:10B4500000000000000000000000000000000000EC
71080 +:10B4600000000000000000000000000000000000DC
71081 +:10B4700000000000000000000000000000000000CC
71082 +:10B4800000000000000000000000000000000000BC
71083 +:10B4900000000000000000000000000000000000AC
71084 +:10B4A000000000000000000000000000000000009C
71085 +:10B4B000000000000000000000000000000000008C
71086 +:10B4C000000000000000000000000000000000007C
71087 +:10B4D000000000000000000000000000000000006C
71088 +:10B4E000000000000000000000000000000000005C
71089 +:10B4F000000000000000000000000000000000004C
71090 +:10B50000000000000000000000000000000000003B
71091 +:10B51000000000000000000000000000000000002B
71092 +:10B52000000000000000000000000000000000001B
71093 +:10B53000000000000000000000000000000000000B
71094 +:10B5400000000000000000000000000000000000FB
71095 +:10B5500000000000000000000000000000000000EB
71096 +:10B5600000000000000000000000000000000000DB
71097 +:10B5700000000000000000000000000000000000CB
71098 +:10B5800000000000000000000000000000000000BB
71099 +:10B5900000000000000000000000000000000000AB
71100 +:10B5A000000000000000000000000000000000009B
71101 +:10B5B000000000000000000000000000000000008B
71102 +:10B5C000000000000000000000000000000000007B
71103 +:10B5D000000000000000000000000000000000006B
71104 +:10B5E000000000000000000000000000000000005B
71105 +:10B5F000000000000000000000000000000000004B
71106 +:10B60000000000000000000000000000000000003A
71107 +:10B61000000000000000000000000000000000002A
71108 +:10B62000000000000000000000000000000000001A
71109 +:10B63000000000000000000000000000000000000A
71110 +:10B6400000000000000000000000000000000000FA
71111 +:10B6500000000000000000000000000000000000EA
71112 +:10B6600000000000000000000000000000000000DA
71113 +:10B6700000000000000000000000000000000000CA
71114 +:10B6800000000000000000000000000000000000BA
71115 +:10B6900000000000000000000000000000000000AA
71116 +:10B6A000000000000000000000000000000000009A
71117 +:10B6B000000000000000000000000000000000008A
71118 +:10B6C000000000000000000000000000000000007A
71119 +:10B6D000000000000000000000000000000000006A
71120 +:10B6E000000000000000000000000000000000005A
71121 +:10B6F000000000000000000000000000000000004A
71122 +:10B700000000000000000000000000000000000039
71123 +:10B710000000000000000000000000000000000029
71124 +:10B720000000000000000000000000000000000019
71125 +:10B730000000000000000000000000000000000009
71126 +:10B7400000000000000000000000000000000000F9
71127 +:10B7500000000000000000000000000000000000E9
71128 +:10B7600000000000000000000000000000000000D9
71129 +:10B7700000000000000000000000000000000000C9
71130 +:10B7800000000000000000000000000000000000B9
71131 +:10B7900000000000000000000000000000000000A9
71132 +:10B7A0000000000000000000000000000000000099
71133 +:10B7B0000000000000000000000000000000000089
71134 +:10B7C0000000000000000000000000000000000079
71135 +:10B7D0000000000000000000000000000000000069
71136 +:10B7E0000000000000000000000000000000000059
71137 +:10B7F0000000000000000000000000000000000049
71138 +:10B800000000000000000000000000000000000038
71139 +:10B810000000000000000000000000000000000028
71140 +:10B820000000000000000000000000000000000018
71141 +:10B830000000000000000000000000000000000008
71142 +:10B8400000000000000000000000000000000000F8
71143 +:10B8500000000000000000000000000000000000E8
71144 +:10B8600000000000000000000000000000000000D8
71145 +:10B8700000000000000000000000000000000000C8
71146 +:10B8800000000000000000000000000000000000B8
71147 +:10B8900000000000000000000000000000000000A8
71148 +:10B8A0000000000000000000000000000000000098
71149 +:10B8B0000000000000000000000000000000000088
71150 +:10B8C0000000000000000000000000000000000078
71151 +:10B8D0000000000000000000000000000000000068
71152 +:10B8E0000000000000000000000000000000000058
71153 +:10B8F0000000000000000000000000000000000048
71154 +:10B900000000000000000000000000000000000037
71155 +:10B910000000000000000000000000000000000027
71156 +:10B920000000000000000000000000000000000017
71157 +:10B930000000000000000000000000000000000007
71158 +:10B9400000000000000000000000000000000000F7
71159 +:10B9500000000000000000000000000000000000E7
71160 +:10B9600000000000000000000000000000000000D7
71161 +:10B9700000000000000000000000000000000000C7
71162 +:10B9800000000000000000000000000000000000B7
71163 +:10B9900000000000000000000000000000000000A7
71164 +:10B9A0000000000000000000000000000000000097
71165 +:10B9B0000000000000000000000000000000000087
71166 +:10B9C0000000000000000000000000000000000077
71167 +:10B9D0000000000000000000000000000000000067
71168 +:10B9E0000000000000000000000000000000000057
71169 +:10B9F0000000000000000000000000000000000047
71170 +:10BA00000000000000000000000000000000000036
71171 +:10BA10000000000000000000000000000000000026
71172 +:10BA20000000000000000000000000000000000016
71173 +:10BA30000000000000000000000000000000000006
71174 +:10BA400000000000000000000000000000000000F6
71175 +:10BA500000000000000000000000000000000000E6
71176 +:10BA600000000000000000000000000000000000D6
71177 +:10BA700000000000000000000000000000000000C6
71178 +:10BA800000000000000000000000000000000000B6
71179 +:10BA900000000000000000000000000000000000A6
71180 +:10BAA0000000000000000000000000000000000096
71181 +:10BAB0000000000000000000000000000000000086
71182 +:10BAC0000000000000000000000000000000000076
71183 +:10BAD0000000000000000000000000000000000066
71184 +:10BAE0000000000000000000000000000000000056
71185 +:10BAF0000000000000000000000000000000000046
71186 +:10BB00000000000000000000000000000000000035
71187 +:10BB10000000000000000000000000000000000025
71188 +:10BB20000000000000000000000000000000000015
71189 +:10BB30000000000000000000000000000000000005
71190 +:10BB400000000000000000000000000000000000F5
71191 +:10BB500000000000000000000000000000000000E5
71192 +:10BB600000000000000000000000000000000000D5
71193 +:10BB700000000000000000000000000000000000C5
71194 +:10BB800000000000000000000000000000000000B5
71195 +:10BB900000000000000000000000000000000000A5
71196 +:10BBA0000000000000000000000000000000000095
71197 +:10BBB0000000000000000000000000000000000085
71198 +:10BBC0000000000000000000000000000000000075
71199 +:10BBD0000000000000000000000000000000000065
71200 +:10BBE0000000000000000000000000000000000055
71201 +:10BBF0000000000000000000000000000000000045
71202 +:10BC00000000000000000000000000000000000034
71203 +:10BC10000000000000000000000000000000000024
71204 +:10BC20000000000000000000000000000000000014
71205 +:10BC30000000000000000000000000000000000004
71206 +:10BC400000000000000000000000000000000000F4
71207 +:10BC500000000000000000000000000000000000E4
71208 +:10BC600000000000000000000000000000000000D4
71209 +:10BC700000000000000000000000000000000000C4
71210 +:10BC800000000000000000000000000000000000B4
71211 +:10BC900000000000000000000000000000000000A4
71212 +:10BCA0000000000000000000000000000000000094
71213 +:10BCB0000000000000000000000000000000000084
71214 +:10BCC0000000000000000000000000000000000074
71215 +:10BCD0000000000000000000000000000000000064
71216 +:10BCE0000000000000000000000000000000000054
71217 +:10BCF0000000000000000000000000000000000044
71218 +:10BD00000000000000000000000000000000000033
71219 +:10BD10000000000000000000000000000000000023
71220 +:10BD20000000000000000000000000000000000013
71221 +:10BD30000000000000000000000000000000000003
71222 +:10BD400000000000000000000000000000000000F3
71223 +:10BD500000000000000000000000000000000000E3
71224 +:10BD600000000000000000000000000000000000D3
71225 +:10BD700000000000000000000000000000000000C3
71226 +:10BD800000000000000000000000000000000000B3
71227 +:10BD900000000000000000000000000000000000A3
71228 +:10BDA0000000000000000000000000000000000093
71229 +:10BDB0000000000000000000000000000000000083
71230 +:10BDC0000000000000000000000000000000000073
71231 +:10BDD0000000000000000000000000000000000063
71232 +:10BDE0000000000000000000000000000000000053
71233 +:10BDF0000000000000000000000000000000000043
71234 +:10BE00000000000000000000000000000000000032
71235 +:10BE10000000000000000000000000000000000022
71236 +:10BE20000000000000000000000000000000000012
71237 +:10BE30000000000000000000000000000000000002
71238 +:10BE400000000000000000000000000000000000F2
71239 +:10BE500000000000000000000000000000000000E2
71240 +:10BE600000000000000000000000000000000000D2
71241 +:10BE700000000000000000000000000000000000C2
71242 +:10BE800000000000000000000000000000000000B2
71243 +:10BE900000000000000000000000000000000000A2
71244 +:10BEA0000000000000000000000000000000000092
71245 +:10BEB0000000000000000000000000000000000082
71246 +:10BEC0000000000000000000000000000000000072
71247 +:10BED0000000000000000000000000000000000062
71248 +:10BEE0000000000000000000000000000000000052
71249 +:10BEF0000000000000000000000000000000000042
71250 +:10BF00000000000000000000000000000000000031
71251 +:10BF10000000000000000000000000000000000021
71252 +:10BF20000000000000000000000000000000000011
71253 +:10BF30000000000000000000000000000000000001
71254 +:10BF400000000000000000000000000000000000F1
71255 +:10BF500000000000000000000000000000000000E1
71256 +:10BF600000000000000000000000000000000000D1
71257 +:10BF700000000000000000000000000000000000C1
71258 +:10BF800000000000000000000000000000000000B1
71259 +:10BF900000000000000000000000000000000000A1
71260 +:10BFA0000000000000000000000000000000000091
71261 +:10BFB0000000000000000000000000000000000081
71262 +:10BFC0000000000000000000000000000000000071
71263 +:10BFD0000000000000000000000000000000000061
71264 +:10BFE0000000000000000000000000000000000051
71265 +:10BFF0000000000000000000000000000000000041
71266 +:10C000000000000000000000000000000000000030
71267 +:10C010000000000000000000000000000000000020
71268 +:10C020000000000000000000000000000000000010
71269 +:10C030000000000000000000000000000000000000
71270 +:10C0400000000000000000000000000000000000F0
71271 +:10C0500000000000000000000000000000000000E0
71272 +:10C0600000000000000000000000000000000000D0
71273 +:10C0700000000000000000000000000000000000C0
71274 +:10C0800000000000000000000000000000000000B0
71275 +:10C0900000000000000000000000000000000000A0
71276 +:10C0A0000000000000000000000000000000000090
71277 +:10C0B0000000000000000000000000000000000080
71278 +:10C0C0000000000000000000000000000000000070
71279 +:10C0D0000000000000000000000000000000000060
71280 +:10C0E0000000000000000000000000000000000050
71281 +:10C0F0000000000000000000000000000000000040
71282 +:10C10000000000000000000000000000000000002F
71283 +:10C11000000000000000000000000000000000001F
71284 +:10C12000000000000000000000000000000000000F
71285 +:10C1300000000000000000000000000000000000FF
71286 +:10C1400000000000000000000000000000000000EF
71287 +:10C1500000000000000000000000000000000000DF
71288 +:10C1600000000000000000000000000000000000CF
71289 +:10C1700000000000000000000000000000000000BF
71290 +:10C1800000000000000000000000000000000000AF
71291 +:10C19000000000000000000000000000000000009F
71292 +:10C1A000000000000000000000000000000000008F
71293 +:10C1B000000000000000000000000000000000007F
71294 +:10C1C000000000000000000000000000000000006F
71295 +:10C1D000000000000000000000000000000000005F
71296 +:10C1E000000000000000000000000000000000004F
71297 +:10C1F000000000000000000000000000000000003F
71298 +:10C20000000000000000000000000000000000002E
71299 +:10C21000000000000000000000000000000000001E
71300 +:10C22000000000000000000000000000000000000E
71301 +:10C2300000000000000000000000000000000000FE
71302 +:10C2400000000000000000000000000000000000EE
71303 +:10C2500000000000000000000000000000000000DE
71304 +:10C2600000000000000000000000000000000000CE
71305 +:10C2700000000000000000000000000000000000BE
71306 +:10C2800000000000000000000000000000000000AE
71307 +:10C29000000000000000000000000000000000009E
71308 +:10C2A000000000000000000000000000000000008E
71309 +:10C2B000000000000000000000000000000000007E
71310 +:10C2C000000000000000000000000000000000006E
71311 +:10C2D000000000000000000000000000000000005E
71312 +:10C2E000000000000000000000000000000000004E
71313 +:10C2F000000000000000000000000000000000003E
71314 +:10C30000000000000000000000000000000000002D
71315 +:10C31000000000000000000000000000000000001D
71316 +:10C32000000000000000000000000000000000000D
71317 +:10C3300000000000000000000000000000000000FD
71318 +:10C3400000000000000000000000000000000000ED
71319 +:10C3500000000000000000000000000000000000DD
71320 +:10C3600000000000000000000000000000000000CD
71321 +:10C3700000000000000000000000000000000000BD
71322 +:10C3800000000000000000000000000000000000AD
71323 +:10C39000000000000000000000000000000000009D
71324 +:10C3A000000000000000000000000000000000008D
71325 +:10C3B000000000000000000000000000000000007D
71326 +:10C3C000000000000000000000000000000000006D
71327 +:10C3D000000000000000000000000000000000005D
71328 +:10C3E000000000000000000000000000000000004D
71329 +:10C3F000000000000000000000000000000000003D
71330 +:10C40000000000000000000000000000000000002C
71331 +:10C41000000000000000000000000000000000001C
71332 +:10C42000000000000000000000000000000000000C
71333 +:10C4300000000000000000000000000000000000FC
71334 +:10C4400000000000000000000000000000000000EC
71335 +:10C4500000000000000000000000000000000000DC
71336 +:10C4600000000000000000000000000000000000CC
71337 +:10C4700000000000000000000000000000000000BC
71338 +:10C4800000000000000000000000000000000000AC
71339 +:10C49000000000000000000000000000000000009C
71340 +:10C4A000000000000000000000000000000000008C
71341 +:10C4B000000000000000000000000000000000007C
71342 +:10C4C000000000000000000000000000000000006C
71343 +:10C4D000000000000000000000000000000000005C
71344 +:10C4E000000000000000000000000000000000004C
71345 +:10C4F000000000000000000000000000000000003C
71346 +:10C50000000000000000000000000000000000002B
71347 +:10C51000000000000000000000000000000000001B
71348 +:10C52000000000000000000000000000000000000B
71349 +:10C5300000000000000000000000000000000000FB
71350 +:10C5400000000000000000000000000000000000EB
71351 +:10C5500000000000000000000000000000000000DB
71352 +:10C5600000000000000000000000000000000000CB
71353 +:10C5700000000000000000000000000000000000BB
71354 +:10C5800000000000000000000000000000000000AB
71355 +:10C59000000000000000000000000000000000009B
71356 +:10C5A000000000000000000000000000000000008B
71357 +:10C5B000000000000000000000000000000000007B
71358 +:10C5C000000000000000000000000000000000006B
71359 +:10C5D000000000000000000000000000000000005B
71360 +:10C5E000000000000000000000000000000000004B
71361 +:10C5F000000000000000000000000000000000003B
71362 +:10C60000000000000000000000000000000000002A
71363 +:10C61000000000000000000000000000000000001A
71364 +:10C62000000000000000000000000000000000000A
71365 +:10C6300000000000000000000000000000000000FA
71366 +:10C6400000000000000000000000000000000000EA
71367 +:10C6500000000000000000000000000000000000DA
71368 +:10C6600000000000000000000000000000000000CA
71369 +:10C6700000000000000000000000000000000000BA
71370 +:10C6800000000000000000000000000000000000AA
71371 +:10C69000000000000000000000000000000000009A
71372 +:10C6A000000000000000000000000000000000008A
71373 +:10C6B000000000000000000000000000000000007A
71374 +:10C6C000000000000000000000000000000000006A
71375 +:10C6D000000000000000000000000000000000005A
71376 +:10C6E000000000000000000000000000000000004A
71377 +:10C6F000000000000000000000000000000000003A
71378 +:10C700000000000000000000000000000000000029
71379 +:10C710000000000000000000000000000000000019
71380 +:10C720000000000000000000000000000000000009
71381 +:10C7300000000000000000000000000000000000F9
71382 +:10C7400000000000000000000000000000000000E9
71383 +:10C7500000000000000000000000000000000000D9
71384 +:10C7600000000000000000000000000000000000C9
71385 +:10C7700000000000000000000000000000000000B9
71386 +:10C7800000000000000000000000000000000000A9
71387 +:10C790000000000000000000000000000000000099
71388 +:10C7A0000000000000000000000000000000000089
71389 +:10C7B0000000000000000000000000000000000079
71390 +:10C7C0000000000000000000000000000000000069
71391 +:10C7D0000000000000000000000000000000000059
71392 +:10C7E0000000000000000000000000000000000049
71393 +:10C7F0000000000000000000000000000000000039
71394 +:10C800000000000000000000000000000000000028
71395 +:10C810000000000000000000000000000000000018
71396 +:10C820000000000000000000000000000000000008
71397 +:10C8300000000000000000000000000000000000F8
71398 +:10C8400000000000000000000000000000000000E8
71399 +:10C8500000000000000000000000000000000000D8
71400 +:10C8600000000000000000000000000000000000C8
71401 +:10C8700000000000000000000000000000000000B8
71402 +:10C8800000000000000000000000000000000000A8
71403 +:10C890000000000000000000000000000000000098
71404 +:10C8A0000000000000000000000000000000000088
71405 +:10C8B0000000000000000000000000000000000078
71406 +:10C8C0000000000000000000000000000000000068
71407 +:10C8D0000000000000000000000000000000000058
71408 +:10C8E0000000000000000000000000000000000048
71409 +:10C8F0000000000000000000000000000000000038
71410 +:10C900000000000000000000000000000000000027
71411 +:10C910000000000000000000000000000000000017
71412 +:10C920000000000000000000000000000000000007
71413 +:10C9300000000000000000000000000000000000F7
71414 +:10C9400000000000000000000000000000000000E7
71415 +:10C9500000000000000000000000000000000000D7
71416 +:10C9600000000000000000000000000000000000C7
71417 +:10C9700000000000000000000000000000000000B7
71418 +:10C9800000000000000000000000000000000000A7
71419 +:10C990000000000000000000000000000000000097
71420 +:10C9A0000000000000000000000000000000000087
71421 +:10C9B0000000000000000000000000000000000077
71422 +:10C9C0000000000000000000000000000000000067
71423 +:10C9D0000000000000000000000000000000000057
71424 +:10C9E0000000000000000000000000000000000047
71425 +:10C9F0000000000000000000000000000000000037
71426 +:10CA00000000000000000000000000000000000026
71427 +:10CA10000000000000000000000000000000000016
71428 +:10CA20000000000000000000000000000000000006
71429 +:10CA300000000000000000000000000000000000F6
71430 +:10CA400000000000000000000000000000000000E6
71431 +:10CA500000000000000000000000000000000000D6
71432 +:10CA600000000000000000000000000000000000C6
71433 +:10CA700000000000000000000000000000000000B6
71434 +:10CA800000000000000000000000000000000000A6
71435 +:10CA90000000000000000000000000000000000096
71436 +:10CAA0000000000000000000000000000000000086
71437 +:10CAB0000000000000000000000000000000000076
71438 +:10CAC0000000000000000000000000000000000066
71439 +:10CAD0000000000000000000000000000000000056
71440 +:10CAE0000000000000000000000000000000000046
71441 +:10CAF0000000000000000000000000000000000036
71442 +:10CB00000000000000000000000000000000000025
71443 +:10CB10000000000000000000000000000000000015
71444 +:10CB20000000000000000000000000000000000005
71445 +:10CB300000000000000000000000000000000000F5
71446 +:10CB400000000000000000000000000000000000E5
71447 +:10CB500000000000000000000000000000000000D5
71448 +:10CB600000000000000000000000000000000000C5
71449 +:10CB700000000000000000000000000000000000B5
71450 +:10CB800000000000000000000000000000000000A5
71451 +:10CB90000000000000000000000000000000000095
71452 +:10CBA0000000000000000000000000000000000085
71453 +:10CBB0000000000000000000000000000000000075
71454 +:10CBC0000000000000000000000000000000000065
71455 +:10CBD0000000000000000000000000000000000055
71456 +:10CBE0000000000000000000000000000000000045
71457 +:10CBF0000000000000000000000000000000000035
71458 +:10CC00000000000000000000000000000000000024
71459 +:10CC10000000000000000000000000000000000014
71460 +:10CC20000000000000000000000000000000000004
71461 +:10CC300000000000000000000000000000000000F4
71462 +:10CC400000000000000000000000000000000000E4
71463 +:10CC500000000000000000000000000000000000D4
71464 +:10CC600000000000000000000000000000000000C4
71465 +:10CC700000000000000000000000000000000000B4
71466 +:10CC800000000000000000000000000000000000A4
71467 +:10CC90000000000000000000000000000000000094
71468 +:10CCA0000000000000000000000000000000000084
71469 +:10CCB0000000000000000000000000000000000074
71470 +:10CCC0000000000000000000000000000000000064
71471 +:10CCD0000000000000000000000000000000000054
71472 +:10CCE0000000000000000000000000000000000044
71473 +:10CCF0000000000000000000000000000000000034
71474 +:10CD00000000000000000000000000000000000023
71475 +:10CD10000000000000000000000000000000000013
71476 +:10CD20000000000000000000000000000000000003
71477 +:10CD300000000000000000000000000000000000F3
71478 +:10CD400000000000000000000000000000000000E3
71479 +:10CD500000000000000000000000000000000000D3
71480 +:10CD600000000000000000000000000000000000C3
71481 +:10CD700000000000000000000000000000000000B3
71482 +:10CD800000000000000000000000000000000000A3
71483 +:10CD90000000000000000000000000000000000093
71484 +:10CDA0000000000000000000000000000000000083
71485 +:10CDB0000000000000000000000000000000000073
71486 +:10CDC0000000000000000000000000000000000063
71487 +:10CDD0000000000000000000000000000000000053
71488 +:10CDE0000000000000000000000000000000000043
71489 +:10CDF0000000000000000000000000000000000033
71490 +:10CE00000000000000000000000000000000000022
71491 +:10CE10000000000000000000000000000000000012
71492 +:10CE20000000000000000000000000000000000002
71493 +:10CE300000000000000000000000000000000000F2
71494 +:10CE400000000000000000000000000000000000E2
71495 +:10CE500000000000000000000000000000000000D2
71496 +:10CE600000000000000000000000000000000000C2
71497 +:10CE700000000000000000000000000000000000B2
71498 +:10CE800000000000000000000000000000000000A2
71499 +:10CE90000000000000000000000000000000000092
71500 +:10CEA0000000000000000000000000000000000082
71501 +:10CEB0000000000000000000000000000000000072
71502 +:10CEC0000000000000000000000000000000000062
71503 +:10CED0000000000000000000000000000000000052
71504 +:10CEE0000000000000000000000000000000000042
71505 +:10CEF0000000000000000000000000000000000032
71506 +:10CF00000000000000000000000000000000000021
71507 +:10CF10000000000000000000000000000000000011
71508 +:10CF20000000000000000000000000000000000001
71509 +:10CF300000000000000000000000000000000000F1
71510 +:10CF400000000000000000000000000000000000E1
71511 +:10CF500000000000000000000000000000000000D1
71512 +:10CF600000000000000000000000000000000000C1
71513 +:10CF700000000000000000000000000000000000B1
71514 +:10CF800000000000000000000000000000000000A1
71515 +:10CF90000000000000000000000000000000000091
71516 +:10CFA0000000000000000000000000000000000081
71517 +:10CFB0000000000000000000000000000000000071
71518 +:10CFC0000000000000000000000000000000000061
71519 +:10CFD0000000000000000000000000000000000051
71520 +:10CFE0000000000000000000000000000000000041
71521 +:10CFF0000000000000000000000000000000000031
71522 +:10D000000000000000000000000000000000000020
71523 +:10D010000000000000000000000000000000000010
71524 +:10D020000000000000000000000000000000000000
71525 +:10D0300000000000000000000000000000000000F0
71526 +:10D0400000000000000000000000000000000000E0
71527 +:10D0500000000000000000000000000000000000D0
71528 +:10D0600000000000000000000000000000000000C0
71529 +:10D0700000000000000000000000000000000000B0
71530 +:10D0800000000000000000000000000000000000A0
71531 +:10D090000000000000000000000000000000000090
71532 +:10D0A0000000000000000000000000000000000080
71533 +:10D0B0000000000000000000000000000000000070
71534 +:10D0C0000000000000000000000000000000000060
71535 +:10D0D0000000000000000000000000000000000050
71536 +:10D0E0000000000000000000000000000000000040
71537 +:10D0F0000000000000000000000000000000000030
71538 +:10D10000000000000000000000000000000000001F
71539 +:10D11000000000000000000000000000000000000F
71540 +:10D1200000000000000000000000000000000000FF
71541 +:10D1300000000000000000000000000000000000EF
71542 +:10D1400000000000000000000000000000000000DF
71543 +:10D1500000000000000000000000000000000000CF
71544 +:10D1600000000000000000000000000000000000BF
71545 +:10D1700000000000000000000000000000000000AF
71546 +:10D18000000000000000000000000000000000009F
71547 +:10D19000000000000000000000000000000000008F
71548 +:10D1A000000000000000000000000000000000007F
71549 +:10D1B000000000000000000000000000000000006F
71550 +:10D1C000000000000000000000000000000000005F
71551 +:10D1D000000000000000000000000000000000004F
71552 +:10D1E000000000000000000000000000000000003F
71553 +:10D1F000000000000000000000000000000000002F
71554 +:10D20000000000000000000000000000000000001E
71555 +:10D21000000000000000000000000000000000000E
71556 +:10D2200000000000000000000000000000000000FE
71557 +:10D2300000000000000000000000000000000000EE
71558 +:10D2400000000000000000000000000000000000DE
71559 +:10D2500000000000000000000000000000000000CE
71560 +:10D2600000000000000000000000000000000000BE
71561 +:10D2700000000000000000000000000000000000AE
71562 +:10D28000000000000000000000000000000000009E
71563 +:10D29000000000000000000000000000000000008E
71564 +:10D2A000000000000000000000000000000000007E
71565 +:10D2B000000000000000000000000000000000006E
71566 +:10D2C000000000000000000000000000000000005E
71567 +:10D2D000000000000000000000000000000000004E
71568 +:10D2E000000000000000000000000000000000003E
71569 +:10D2F000000000000000000000000000000000002E
71570 +:10D30000000000000000000000000000000000001D
71571 +:10D31000000000000000000000000000000000000D
71572 +:10D3200000000000000000000000000000000000FD
71573 +:10D3300000000000000000000000000000000000ED
71574 +:10D3400000000000000000000000000000000000DD
71575 +:10D3500000000000000000000000000000000000CD
71576 +:10D3600000000000000000000000000000000000BD
71577 +:10D3700000000000000000000000000000000000AD
71578 +:10D38000000000000000000000000000000000009D
71579 +:10D39000000000000000000000000000000000008D
71580 +:10D3A000000000000000000000000000000000007D
71581 +:10D3B000000000000000000000000000000000006D
71582 +:10D3C000000000000000000000000000000000005D
71583 +:10D3D000000000000000000000000000000000004D
71584 +:10D3E000000000000000000000000000000000003D
71585 +:10D3F000000000000000000000000000000000002D
71586 +:10D40000000000000000000000000000000000001C
71587 +:10D41000000000000000000000000000000000000C
71588 +:10D4200000000000000000000000000000000000FC
71589 +:10D4300000000000000000000000000000000000EC
71590 +:10D4400000000000000000000000000000000000DC
71591 +:10D4500000000000000000000000000000000000CC
71592 +:10D4600000000000000000000000000000000000BC
71593 +:10D4700000000000000000000000000000000000AC
71594 +:10D48000000000000000000000000000000000009C
71595 +:10D49000000000000000000000000000000000008C
71596 +:10D4A000000000000000000000000000000000007C
71597 +:10D4B000000000000000000000000000000000006C
71598 +:10D4C000000000000000000000000000000000005C
71599 +:10D4D000000000000000000000000000000000004C
71600 +:10D4E000000000000000000000000000000000003C
71601 +:10D4F000000000000000000000000000000000002C
71602 +:10D50000000000000000000000000000000000001B
71603 +:10D51000000000000000000000000000000000000B
71604 +:10D5200000000000000000000000000000000000FB
71605 +:10D5300000000000000000000000000000000000EB
71606 +:10D5400000000000000000000000000000000000DB
71607 +:10D5500000000000000000000000000000000000CB
71608 +:10D5600000000000000000000000000000000000BB
71609 +:10D5700000000000000000000000000000000000AB
71610 +:10D58000000000000000000000000000000000009B
71611 +:10D59000000000000000000000000000000000008B
71612 +:10D5A000000000000000000000000000000000007B
71613 +:10D5B000000000000000000000000000000000006B
71614 +:10D5C000000000000000000000000000000000005B
71615 +:10D5D000000000000000000000000000000000004B
71616 +:10D5E000000000000000000000000000000000003B
71617 +:10D5F000000000000000000000000000000000002B
71618 +:10D60000000000000000000000000000000000001A
71619 +:10D61000000000000000000000000000000000000A
71620 +:10D6200000000000000000000000000000000000FA
71621 +:10D6300000000000000000000000000000000000EA
71622 +:10D6400000000000000000000000000000000000DA
71623 +:10D6500000000000000000000000000000000000CA
71624 +:10D6600000000000000000000000000000000000BA
71625 +:10D6700000000000000000000000000000000000AA
71626 +:10D68000000000000000000000000000000000009A
71627 +:10D69000000000000000000000000000000000008A
71628 +:10D6A000000000000000000000000000000000007A
71629 +:10D6B000000000000000000000000000000000006A
71630 +:10D6C000000000000000000000000000000000005A
71631 +:10D6D000000000000000000000000000000000004A
71632 +:10D6E000000000000000000000000000000000003A
71633 +:10D6F000000000000000000000000000000000002A
71634 +:10D700000000000000000000000000000000000019
71635 +:10D710000000000000000000000000000000000009
71636 +:10D7200000000000000000000000000000000000F9
71637 +:10D7300000000000000000000000000000000000E9
71638 +:10D7400000000000000000000000000000000000D9
71639 +:10D7500000000000000000000000000000000000C9
71640 +:10D7600000000000000000000000000000000000B9
71641 +:10D7700000000000000000000000000000000000A9
71642 +:10D780000000000000000000000000000000000099
71643 +:10D790000000000000000000000000000000000089
71644 +:10D7A0000000000000000000000000000000000079
71645 +:10D7B0000000000000000000000000000000000069
71646 +:10D7C0000000000000000000000000000000000059
71647 +:10D7D0000000000000000000000000000000000049
71648 +:10D7E0000000000000000000000000000000000039
71649 +:10D7F0000000000000000000000000000000000029
71650 +:10D800000000000000000000000000000000000018
71651 +:10D810000000000000000000000000000000000008
71652 +:10D8200000000000000000000000000000000000F8
71653 +:10D8300000000000000000000000000000000000E8
71654 +:10D8400000000000000000000000000000000000D8
71655 +:10D8500000000000000000000000000000000000C8
71656 +:10D8600000000000000000000000000000000000B8
71657 +:10D8700000000000000000000000000000000000A8
71658 +:10D880000000000000000000000000000000000098
71659 +:10D890000000000000000000000000000000000088
71660 +:10D8A0000000000000000000000000000000000078
71661 +:10D8B0000000000000000000000000000000000068
71662 +:10D8C0000000000000000000000000000000000058
71663 +:10D8D0000000000000000000000000000000000048
71664 +:10D8E0000000000000000000000000000000000038
71665 +:10D8F0000000000000000000000000000000000028
71666 +:10D900000000000000000000000000000000000017
71667 +:10D910000000000000000000000000000000000007
71668 +:10D9200000000000000000000000000000000000F7
71669 +:10D9300000000000000000000000000000000000E7
71670 +:10D9400000000000000000000000000000000000D7
71671 +:10D9500000000000000000000000000000000000C7
71672 +:10D9600000000000000000000000000000000000B7
71673 +:10D9700000000000000000000000000000000000A7
71674 +:10D980000000000000000000000000000000000097
71675 +:10D990000000000000000000000000000000000087
71676 +:10D9A0000000000000000000000000000000000077
71677 +:10D9B0000000000000000000000000000000000067
71678 +:10D9C0000000000000000000000000000000000057
71679 +:10D9D0000000000000000000000000000000000047
71680 +:10D9E0000000000000000000000000000000000037
71681 +:10D9F0000000000000000000000000000000000027
71682 +:10DA00000000000000000000000000000000000016
71683 +:10DA10000000000000000000000000000000000006
71684 +:10DA200000000000000000000000000000000000F6
71685 +:10DA300000000000000000000000000000000000E6
71686 +:10DA400000000000000000000000000000000000D6
71687 +:10DA500000000000000000000000000000000000C6
71688 +:10DA600000000000000000000000000000000000B6
71689 +:10DA700000000000000000000000000000000000A6
71690 +:10DA80000000000000000000000000000000000096
71691 +:10DA90000000000000000000000000000000000086
71692 +:10DAA0000000000000000000000000000000000076
71693 +:10DAB0000000000000000000000000000000000066
71694 +:10DAC0000000000000000000000000000000000056
71695 +:10DAD0000000000000000000000000000000000046
71696 +:10DAE0000000000000000000000000000000000036
71697 +:10DAF0000000000000000000000000000000000026
71698 +:10DB00000000000000000000000000000000000015
71699 +:10DB10000000000000000000000000000000000005
71700 +:10DB200000000000000000000000000000000000F5
71701 +:10DB300000000000000000000000000000000000E5
71702 +:10DB400000000000000000000000000000000000D5
71703 +:10DB500000000000000000000000000000000000C5
71704 +:10DB600000000000000000000000000000000000B5
71705 +:10DB700000000000000000000000000000000000A5
71706 +:10DB80000000000000000000000000000000000095
71707 +:10DB90000000000000000000000000000000000085
71708 +:10DBA0000000000000000000000000000000000075
71709 +:10DBB0000000000000000000000000000000000065
71710 +:10DBC0000000000000000000000000000000000055
71711 +:10DBD0000000000000000000000000000000000045
71712 +:10DBE0000000000000000000000000000000000035
71713 +:10DBF0000000000000000000000000000000000025
71714 +:10DC00000000000000000000000000000000000014
71715 +:10DC10000000000000000000000000000000000004
71716 +:10DC200000000000000000000000000000000000F4
71717 +:10DC300000000000000000000000000000000000E4
71718 +:10DC400000000000000000000000000000000000D4
71719 +:10DC500000000000000000000000000000000000C4
71720 +:10DC600000000000000000000000000000000000B4
71721 +:10DC700000000000000000000000000000000000A4
71722 +:10DC80000000000000000000000000000000000094
71723 +:10DC90000000000000000000000000000000000084
71724 +:10DCA0000000000000000000000000000000000074
71725 +:10DCB0000000000000000000000000000000000064
71726 +:10DCC0000000000000000000000000000000000054
71727 +:10DCD0000000000000000000000000000000000044
71728 +:10DCE0000000000000000000000000000000000034
71729 +:10DCF0000000000000000000000000000000000024
71730 +:10DD00000000000000000000000000000000000013
71731 +:10DD10000000000000000000000000000000000003
71732 +:10DD200000000000000000000000000000000000F3
71733 +:10DD300000000000000000000000000000000000E3
71734 +:10DD400000000000000000000000000000000000D3
71735 +:10DD500000000000000000000000000000000000C3
71736 +:10DD600000000000000000000000000000000000B3
71737 +:10DD700000000000000000000000000000000000A3
71738 +:10DD80000000000000000000000000000000000093
71739 +:10DD90000000000000000000000000000000000083
71740 +:10DDA0000000000000000000000000000000000073
71741 +:10DDB0000000000000000000000000000000000063
71742 +:10DDC0000000000000000000000000000000000053
71743 +:10DDD0000000000000000000000000000000000043
71744 +:10DDE0000000000000000000000000000000000033
71745 +:10DDF0000000000000000000000000000000000023
71746 +:10DE00000000000000000000000000000000000012
71747 +:10DE10000000000000000000000000000000000002
71748 +:10DE200000000000000000000000000000000000F2
71749 +:10DE300000000000000000000000000000000000E2
71750 +:10DE400000000000000000000000000000000000D2
71751 +:10DE500000000000000000000000000000000000C2
71752 +:10DE600000000000000000000000000000000000B2
71753 +:10DE700000000000000000000000000000000000A2
71754 +:10DE80000000000000000000000000000000000092
71755 +:10DE90000000000000000000000000000000000082
71756 +:10DEA0000000000000000000000000000000000072
71757 +:10DEB0000000000000000000000000000000000062
71758 +:10DEC0000000000000000000000000000000000052
71759 +:10DED0000000000000000000000000000000000042
71760 +:10DEE0000000000000000000000000000000000032
71761 +:10DEF0000000000000000000000000000000000022
71762 +:10DF00000000000000000000000000000000000011
71763 +:10DF10000000000000000000000000000000000001
71764 +:10DF200000000000000000000000000000000000F1
71765 +:10DF300000000000000000000000000000000000E1
71766 +:10DF400000000000000000000000000000000000D1
71767 +:10DF500000000000000000000000000000000000C1
71768 +:10DF600000000000000000000000000000000000B1
71769 +:10DF700000000000000000000000000000000000A1
71770 +:10DF80000000000000000000000000000000000091
71771 +:10DF90000000000000000000000000000000000081
71772 +:10DFA0000000000000000000000000000000000071
71773 +:10DFB0000000000000000000000000000000000061
71774 +:10DFC0000000000000000000000000000000000051
71775 +:10DFD0000000000000000000000000000000000041
71776 +:10DFE0000000000000000000000000000000000031
71777 +:10DFF0000000000000000000000000000000000021
71778 +:10E000000000000000000000000000000000000010
71779 +:10E010000000000000000000000000000000000000
71780 +:10E0200000000000000000000000000000000000F0
71781 +:10E0300000000000000000000000000000000000E0
71782 +:10E0400000000000000000000000000000000000D0
71783 +:10E0500000000000000000000000000000000000C0
71784 +:10E0600000000000000000000000000000000000B0
71785 +:10E0700000000000000000000000000000000000A0
71786 +:10E080000000000000000000000000000000000090
71787 +:10E090000000000000000000000000000000000080
71788 +:10E0A0000000000000000000000000000000000070
71789 +:10E0B0000000000000000000000000000000000060
71790 +:10E0C0000000000000000000000000000000000050
71791 +:10E0D0000000000000000000000000000000000040
71792 +:10E0E0000000000000000000000000000000000030
71793 +:10E0F0000000000000000000000000000000000020
71794 +:10E10000000000000000000000000000000000000F
71795 +:10E1100000000000000000000000000000000000FF
71796 +:10E1200000000000000000000000000000000000EF
71797 +:10E1300000000000000000000000000000000000DF
71798 +:10E1400000000000000000000000000000000000CF
71799 +:10E1500000000000000000000000000000000000BF
71800 +:10E1600000000000000000000000000000000000AF
71801 +:10E17000000000000000000000000000000000009F
71802 +:10E18000000000000000000000000000000000008F
71803 +:10E19000000000000000000000000000000000007F
71804 +:10E1A000000000000000000000000000000000006F
71805 +:10E1B000000000000000000000000000000000005F
71806 +:10E1C000000000000000000000000000000000004F
71807 +:10E1D000000000000000000000000000000000003F
71808 +:10E1E000000000000000000000000000000000002F
71809 +:10E1F000000000000000000000000000000000809F
71810 +:10E20000000000000000000000000000000000000E
71811 +:10E2100000000000000000000000000000000000FE
71812 +:10E220000000000A000000000000000000000000E4
71813 +:10E2300010000003000000000000000D0000000DB1
71814 +:10E240003C020801244295C03C030801246397FC6A
71815 +:10E25000AC4000000043202B1480FFFD244200044A
71816 +:10E260003C1D080037BD9FFC03A0F0213C100800B6
71817 +:10E27000261032103C1C0801279C95C00E0012BECF
71818 +:10E28000000000000000000D3C02800030A5FFFFF0
71819 +:10E2900030C600FF344301803C0880008D0901B87E
71820 +:10E2A0000520FFFE00000000AC6400002404000212
71821 +:10E2B000A4650008A066000AA064000BAC67001803
71822 +:10E2C0003C03100003E00008AD0301B83C0560000A
71823 +:10E2D0008CA24FF80440FFFE00000000ACA44FC029
71824 +:10E2E0003C0310003C040200ACA44FC403E000084F
71825 +:10E2F000ACA34FF89486000C00A050212488001491
71826 +:10E3000000062B0200051080004448210109182B4B
71827 +:10E310001060001100000000910300002C6400094F
71828 +:10E320005080000991190001000360803C0D080134
71829 +:10E3300025AD9258018D58218D67000000E000083E
71830 +:10E340000000000091190001011940210109302B42
71831 +:10E3500054C0FFF29103000003E000080000102108
71832 +:10E360000A000CCC25080001910F0001240E000AC0
71833 +:10E3700015EE00400128C8232F38000A1700003D81
71834 +:10E38000250D00028D580000250F0006370E0100F4
71835 +:10E39000AD4E0000910C000291AB000191A400026F
71836 +:10E3A00091A60003000C2E00000B3C0000A71025D6
71837 +:10E3B00000041A000043C8250326C025AD580004F8
71838 +:10E3C000910E000691ED000191E7000291E5000336
71839 +:10E3D000000E5E00000D6400016C30250007220075
71840 +:10E3E00000C41025004518252508000A0A000CCC99
71841 +:10E3F000AD430008910F000125040002240800022B
71842 +:10E4000055E80001012020210A000CCC00804021A9
71843 +:10E41000910C0001240B0003158B00160000000076
71844 +:10E420008D580000910E000225080003370D0008EA
71845 +:10E43000A14E00100A000CCCAD4D00009119000156
71846 +:10E44000240F0004172F000B0000000091070002AA
71847 +:10E45000910400038D43000000072A0000A410254A
71848 +:10E460003466000425080004AD42000C0A000CCC00
71849 +:10E47000AD46000003E000082402000127BDFFE8CC
71850 +:10E48000AFBF0014AFB000100E00164E0080802108
71851 +:10E490003C0480083485008090A600052403FFFE1C
71852 +:10E4A0000200202100C310248FBF00148FB0001081
71853 +:10E4B000A0A200050A00165827BD001827BDFFE8D6
71854 +:10E4C000AFB00010AFBF00140E000FD40080802149
71855 +:10E4D0003C06800834C5008090A40000240200504F
71856 +:10E4E000308300FF106200073C09800002002021F9
71857 +:10E4F0008FBF00148FB00010AD2001800A00108F74
71858 +:10E5000027BD0018240801003C07800002002021DC
71859 +:10E510008FBF00148FB00010ACE801800A00108F8C
71860 +:10E5200027BD001827BDFF783C058008AFBE0080DE
71861 +:10E53000AFB7007CAFB3006CAFB10064AFBF008475
71862 +:10E54000AFB60078AFB50074AFB40070AFB200687A
71863 +:10E55000AFB0006034A600803C0580008CB201287A
71864 +:10E5600090C400098CA701043C020001309100FF17
71865 +:10E5700000E218240000B8210000F021106000071C
71866 +:10E58000000098213C0908008D2931F02413000176
71867 +:10E59000252800013C010800AC2831F0ACA0008423
71868 +:10E5A00090CC0005000C5827316A0001154000721C
71869 +:10E5B000AFA0005090CD00002406002031A400FF41
71870 +:10E5C00010860018240E0050108E009300000000EA
71871 +:10E5D0003C1008008E1000DC260F00013C010800F2
71872 +:10E5E000AC2F00DC0E0016C7000000000040182110
71873 +:10E5F0008FBF00848FBE00808FB7007C8FB60078FD
71874 +:10E600008FB500748FB400708FB3006C8FB2006848
71875 +:10E610008FB100648FB000600060102103E000083B
71876 +:10E6200027BD00880000000D3C1F8000AFA0003017
71877 +:10E6300097E501168FE201043C04002030B9FFFF8A
71878 +:10E64000004438240007182B00033140AFA60030E7
71879 +:10E650008FF5010437F80C003C1600400338802188
71880 +:10E6600002B6A02434C40040128000479215000D69
71881 +:10E6700032A800201500000234860080008030217E
71882 +:10E6800014C0009FAFA600303C0D800835A6008066
71883 +:10E6900090CC0008318B0040516000063C06800899
71884 +:10E6A000240E0004122E00A8240F0012122F003294
71885 +:10E6B0003C06800834C401003C0280009447011AE3
71886 +:10E6C0009619000E909F00088E18000830E3FFFF97
71887 +:10E6D00003F9B00432B40004AFB6005CAFA3005835
71888 +:10E6E0008E1600041280002EAFB8005434C3008090
71889 +:10E6F000906800083105004014A0002500000000CB
71890 +:10E700008C70005002D090230640000500000000ED
71891 +:10E710008C71003402D1A82306A201678EE20008A2
71892 +:10E72000126000063C1280003C1508008EB531F4E2
71893 +:10E7300026B600013C010800AC3631F4AE4000447E
71894 +:10E74000240300018FBF00848FBE00808FB7007C40
71895 +:10E750008FB600788FB500748FB400708FB3006CE3
71896 +:10E760008FB200688FB100648FB00060006010212C
71897 +:10E7700003E0000827BD00880E000D2800002021BE
71898 +:10E780000A000D75004018210A000D9500C02021D7
71899 +:10E790000E00171702C020211440FFE10000000006
71900 +:10E7A0003C0B8008356400808C8A003402CA482300
71901 +:10E7B0000520001D000000003C1E08008FDE310017
71902 +:10E7C00027D700013C010800AC3731001260000679
71903 +:10E7D000024020213C1408008E9431F42690000160
71904 +:10E7E0003C010800AC3031F40E00164E3C1E80088F
71905 +:10E7F00037CD008091B700250240202136EE00047D
71906 +:10E800000E001658A1AE00250E000CAC02402021CF
71907 +:10E810000A000DCA240300013C17080126F796C020
71908 +:10E820000A000D843C1F80008C86003002C66023E5
71909 +:10E830001980000C2419000C908F004F3C14080024
71910 +:10E840008E94310032B500FC35ED0001268E0001BA
71911 +:10E850003C010800AC2E3100A08D004FAFA0005845
71912 +:10E860002419000CAFB900308C9800300316A02397
71913 +:10E870001A80010B8FA300580074F82A17E0FFD309
71914 +:10E88000000000001074002A8FA5005802D4B021A7
71915 +:10E8900000B410233044FFFFAFA4005832A8000298
71916 +:10E8A0001100002E32AB00103C15800836B00080FD
71917 +:10E8B0009216000832D30040526000FB8EE200083E
71918 +:10E8C0000E00164E02402021240A0018A20A000958
71919 +:10E8D000921100052409FFFE024020210229902404
71920 +:10E8E0000E001658A2120005240400390000282149
71921 +:10E8F0000E0016F2240600180A000DCA24030001B7
71922 +:10E9000092FE000C3C0A800835490080001EBB00C6
71923 +:10E910008D27003836F10081024020213225F08118
71924 +:10E920000E000C9B30C600FF0A000DC10000000065
71925 +:10E930003AA7000130E300011460FFA402D4B02123
71926 +:10E940000A000E1D00000000024020210E001734B6
71927 +:10E95000020028210A000D75004018211160FF7087
71928 +:10E960003C0F80083C0D800835EE00808DC40038D7
71929 +:10E970008FA300548DA60004006660231D80FF68ED
71930 +:10E98000000000000064C02307020001AFA400548F
71931 +:10E990003C1F08008FFF31E433F9000113200015FC
71932 +:10E9A0008FAC00583C07800094E3011A10600012FD
71933 +:10E9B0003C0680080E00216A024020213C03080129
71934 +:10E9C000906396F13064000214800145000000005D
71935 +:10E9D000306C0004118000078FAC0058306600FBDB
71936 +:10E9E0003C010801A02696F132B500FCAFA000580A
71937 +:10E9F0008FAC00583C06800834D30080AFB40018B8
71938 +:10EA0000AFB60010AFAC00143C088000950B01209D
71939 +:10EA10008E6F0030966A005C8FA3005C8FBF003061
71940 +:10EA20003169FFFF3144FFFF8FAE005401341021E4
71941 +:10EA3000350540000064382B0045C82103E7C02598
71942 +:10EA4000AFB90020AFAF0028AFB80030AFAF00249F
71943 +:10EA5000AFA0002CAFAE0034926D000831B40008B6
71944 +:10EA6000168000BB020020218EE200040040F8095D
71945 +:10EA700027A400108FAF003031F300025660000170
71946 +:10EA800032B500FE3C048008349F008093F90008F2
71947 +:10EA900033380040530000138FA400248C850004F9
71948 +:10EAA0008FA7005410A700D52404001432B0000131
71949 +:10EAB0001200000C8FA400242414000C1234011A3C
71950 +:10EAC0002A2D000D11A001022413000E240E000AAD
71951 +:10EAD000522E0001241E00088FAF002425E40001FF
71952 +:10EAE000AFA400248FAA00143C0B80083565008079
71953 +:10EAF000008A48218CB10030ACA9003090A4004EAF
71954 +:10EB00008CA700303408FFFF0088180400E3F821C8
71955 +:10EB1000ACBF00348FA600308FB900548FB8005CB2
71956 +:10EB200030C200081040000B033898218CAC002044
71957 +:10EB3000119300D330C600FF92EE000C8FA7003473
71958 +:10EB400002402021000E6B0035B400800E000C9BAB
71959 +:10EB50003285F0803C028008345000808E0F0030F7
71960 +:10EB600001F1302318C00097264800803C070800B8
71961 +:10EB70008CE731E42404FF80010418243118007F5D
71962 +:10EB80003C1F80003C19800430F10001AFE300908D
71963 +:10EB900012200006031928213C030801906396F116
71964 +:10EBA00030690008152000C6306A00F73C10800864
71965 +:10EBB00036040080908C004F318B000115600042BC
71966 +:10EBC000000000003C0608008CC6319830CE0010D2
71967 +:10EBD00051C0004230F9000190AF006B55E0003F9A
71968 +:10EBE00030F9000124180001A0B8006B3C1180002E
71969 +:10EBF0009622007A24470064A48700123C0D800806
71970 +:10EC000035A5008090B40008329000401600000442
71971 +:10EC10003C03800832AE000115C0008B00000000EC
71972 +:10EC2000346400808C86002010D3000A3463010015
71973 +:10EC30008C67000002C7782319E000978FBF00544B
71974 +:10EC4000AC93002024130001AC760000AFB3005059
71975 +:10EC5000AC7F000417C0004E000000008FA90050D8
71976 +:10EC60001520000B000000003C030801906396F1A2
71977 +:10EC7000306A00011140002E8FAB0058306400FE56
71978 +:10EC80003C010801A02496F10A000D75000018212E
71979 +:10EC90000E000CAC024020210A000F1300000000FF
71980 +:10ECA0000A000E200000A0210040F80924040017EB
71981 +:10ECB0000A000DCA240300010040F80924040016CC
71982 +:10ECC0000A000DCA240300019094004F240DFFFE9A
71983 +:10ECD000028D2824A085004F30F900011320000682
71984 +:10ECE0003C0480083C030801906396F1307F0010DB
71985 +:10ECF00017E00051306800EF34900080240A0001D2
71986 +:10ED0000024020210E00164EA60A00129203002592
71987 +:10ED100024090001AFA90050346200010240202103
71988 +:10ED20000E001658A20200250A000EF93C0D8008BC
71989 +:10ED30001160FE83000018218FA5003030AC000464
71990 +:10ED40001180FE2C8FBF00840A000DCB240300012C
71991 +:10ED500027A500380E000CB6AFA000385440FF4382
71992 +:10ED60008EE200048FB40038329001005200FF3F61
71993 +:10ED70008EE200048FA3003C8E6E0058006E682364
71994 +:10ED800005A3FF39AE6300580A000E948EE200041A
71995 +:10ED90000E00164E024020213C038008346800809B
71996 +:10EDA000024020210E001658A11E000903C0302188
71997 +:10EDB000240400370E0016F2000028210A000F116B
71998 +:10EDC0008FA900508FAB00185960FF8D3C0D800853
71999 +:10EDD0000E00164E02402021920C00252405000151
72000 +:10EDE000AFA5005035820004024020210E001658C5
72001 +:10EDF000A20200250A000EF93C0D800812240059D9
72002 +:10EE00002A2300151060004D240900162408000C68
72003 +:10EE10005628FF2732B000013C0A8008914C001BA5
72004 +:10EE20002406FFBD241E000E01865824A14B001BA2
72005 +:10EE30000A000EA532B000013C010801A02896F19D
72006 +:10EE40000A000EF93C0D80088CB500308EFE0008DB
72007 +:10EE50002404001826B6000103C0F809ACB600303F
72008 +:10EE60003C030801906396F13077000116E0FF81C2
72009 +:10EE7000306A00018FB200300A000D753243000481
72010 +:10EE80003C1080009605011A50A0FF2B34C60010DC
72011 +:10EE90000A000EC892EE000C8C6200001456FF6D42
72012 +:10EEA000000000008C7800048FB9005403388823D8
72013 +:10EEB0000621FF638FBF00540A000F0E0000000000
72014 +:10EEC0003C010801A02A96F10A000F3030F9000138
72015 +:10EED0001633FF028FAF00240A000EB0241E00106C
72016 +:10EEE0000E00164E024020213C0B80083568008041
72017 +:10EEF00091090025240A0001AFAA0050353300040F
72018 +:10EF0000024020210E001658A11300253C050801DF
72019 +:10EF100090A596F130A200FD3C010801A02296F1D7
72020 +:10EF20000A000E6D004018212411000E53D1FEEA94
72021 +:10EF3000241E00100A000EAF241E00165629FEDC07
72022 +:10EF400032B000013C0A8008914C001B2406FFBD32
72023 +:10EF5000241E001001865824A14B001B0A000EA598
72024 +:10EF600032B000010A000EA4241E00123C038000EF
72025 +:10EF70008C6201B80440FFFE24040800AC6401B8B0
72026 +:10EF800003E000080000000030A5FFFF30C6FFFFCF
72027 +:10EF90003C0780008CE201B80440FFFE34EA0180A7
72028 +:10EFA000AD440000ACE400203C0480089483004899
72029 +:10EFB0003068FFFF11000016AF88000824AB001274
72030 +:10EFC000010B482B512000133C04800034EF01005A
72031 +:10EFD00095EE00208F890000240D001A31CCFFFF30
72032 +:10EFE00031274000A14D000B10E000362583FFFEC5
72033 +:10EFF0000103C02B170000348F9900048F88000490
72034 +:10F00000A5430014350700010A001003AF87000470
72035 +:10F010003C04800024030003348201808F890000B7
72036 +:10F020008F870004A043000B3C088000350C018052
72037 +:10F03000A585000EA585001A8F85000C30EB800099
72038 +:10F04000A5890010AD850028A58600081160000F75
72039 +:10F050008F85001435190100972A00163158FFFCDE
72040 +:10F06000270F000401E870218DCD400031A6FFFF7D
72041 +:10F0700014C000072403BFFF3C02FFFF34487FFF9A
72042 +:10F0800000E83824AF8700048F8500142403BFFFF5
72043 +:10F090003C04800000E3582434830180A46B0026E4
72044 +:10F0A000AC69002C10A0000300054C02A465001000
72045 +:10F0B000A46900263C071000AC8701B803E00008F3
72046 +:10F0C000000000008F990004240AFFFE032A382460
72047 +:10F0D0000A001003AF87000427BDFFE88FA20028B5
72048 +:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99
72049 +:10F0F000AF820014AF8000040E000FDBAF80000071
72050 +:10F100008FBF001027BD001803E00008AF80001477
72051 +:10F110003C06800034C4007034C701008C8A0000B3
72052 +:10F1200090E500128F84000027BDFFF030A300FFA0
72053 +:10F13000000318823082400010400037246500032D
72054 +:10F140000005C8800326C0218F0E4000246F0004F4
72055 +:10F15000000F6880AFAE000001A660218D8B4000DB
72056 +:10F16000AFAB000494E900163128FFFC01063821FA
72057 +:10F170008CE64000AFA600088FA9000800003021EF
72058 +:10F18000000028213C07080024E701000A0010675E
72059 +:10F19000240800089059000024A500012CAC000CA4
72060 +:10F1A0000079C0210018788001E770218DCD000022
72061 +:10F1B0001180000600CD302603A5102114A8FFF50C
72062 +:10F1C00000051A005520FFF4905900003C0480000F
72063 +:10F1D000348700703C0508008CA531048CE30000E6
72064 +:10F1E0002CA2002010400009006A38230005488046
72065 +:10F1F0003C0B0800256B3108012B402124AA00019B
72066 +:10F20000AD0700003C010800AC2A310400C0102109
72067 +:10F2100003E0000827BD0010308220001040000BE2
72068 +:10F2200000055880016648218D24400024680004B0
72069 +:10F2300000083880AFA4000000E618218C6540006B
72070 +:10F24000AFA000080A001057AFA500040000000D91
72071 +:10F250000A0010588FA9000827BDFFE03C07800076
72072 +:10F2600034E60100AFBF001CAFB20018AFB100140C
72073 +:10F27000AFB0001094C5000E8F87000030A4FFFFD0
72074 +:10F280002483000430E2400010400010AF830028C7
72075 +:10F290003C09002000E940241100000D30EC800002
72076 +:10F2A0008F8A0004240BBFFF00EB38243543100085
72077 +:10F2B000AF87000030F220001640000B3C1900041C
72078 +:10F2C000241FFFBF0A0010B7007F102430EC80001D
72079 +:10F2D000158000423C0E002030F220001240FFF862
72080 +:10F2E0008F8300043C19000400F9C0241300FFF5CB
72081 +:10F2F000241FFFBF34620040AF82000430E20100EF
72082 +:10F300001040001130F010008F83002C10600006B8
72083 +:10F310003C0F80003C05002000E52024148000C044
72084 +:10F320003C0800043C0F800035EE010095CD001E26
72085 +:10F3300095CC001C31AAFFFF000C5C00014B482556
72086 +:10F34000AF89000C30F010001200000824110001F9
72087 +:10F3500030F100201620008B3C18100000F890249B
72088 +:10F36000164000823C040C002411000130E801002A
72089 +:10F370001500000B3C0900018F85000430A94000F6
72090 +:10F38000152000073C0900013C0C1F0100EC58242B
72091 +:10F390003C0A1000116A01183C1080003C09000171
72092 +:10F3A00000E9302410C000173C0B10003C18080086
72093 +:10F3B0008F1800243307000214E0014024030001E9
72094 +:10F3C0008FBF001C8FB200188FB100148FB00010D7
72095 +:10F3D0000060102103E0000827BD002000EE682433
72096 +:10F3E00011A0FFBE30F220008F8F00043C11FFFF00
72097 +:10F3F00036307FFF00F0382435E380000A0010A685
72098 +:10F40000AF87000000EB102450400065AF8000245F
72099 +:10F410008F8C002C3C0D0F0000ED18241580008807
72100 +:10F42000AF83001030E8010011000086938F0010B8
72101 +:10F430003C0A0200106A00833C1280003650010032
72102 +:10F44000920500139789002A3626000230AF00FF8C
72103 +:10F4500025EE0004000E19C03C0480008C9801B811
72104 +:10F460000700FFFE34880180AD0300003C198008CE
72105 +:10F47000AC830020973100483225FFFF10A0015CCB
72106 +:10F48000AF8500082523001200A3F82B53E0015993
72107 +:10F490008F850004348D010095AC00202402001AF1
72108 +:10F4A00030E44000318BFFFFA102000B108001927D
72109 +:10F4B0002563FFFE00A3502B154001908F8F0004A1
72110 +:10F4C000A50300148F88000435050001AF850004F2
72111 +:10F4D0003C08800035190180A729000EA729001AD1
72112 +:10F4E0008F89000C30B18000A7270010AF290028B9
72113 +:10F4F000A72600081220000E3C04800035020100FF
72114 +:10F50000944C0016318BFFFC256400040088182100
72115 +:10F510008C7F400033E6FFFF14C000053C048000F0
72116 +:10F520003C0AFFFF354D7FFF00AD2824AF85000466
72117 +:10F53000240EBFFF00AE402434850180A4A800261D
72118 +:10F54000ACA7002C3C071000AC8701B800001821C4
72119 +:10F550008FBF001C8FB200188FB100148FB0001045
72120 +:10F560000060102103E0000827BD00203C020BFFD3
72121 +:10F5700000E41824345FFFFF03E3C82B5320FF7B14
72122 +:10F58000241100013C0608008CC6002C24C5000193
72123 +:10F590003C010800AC25002C0A0010D42411000501
72124 +:10F5A0008F85002410A0002FAF80001090A30000D2
72125 +:10F5B000146000792419000310A0002A30E601002D
72126 +:10F5C00010C000CC8F860010241F000210DF00C97D
72127 +:10F5D0008F8B000C3C0708008CE7003824E4FFFF09
72128 +:10F5E00014E0000201641824000018213C0D0800FA
72129 +:10F5F00025AD0038006D1021904C00048F85002847
72130 +:10F6000025830004000321C030A5FFFF3626000239
72131 +:10F610000E000FDB000000000A00114D0000182151
72132 +:10F6200000E8302414C0FF403C0F80000E00103D65
72133 +:10F63000000000008F8700000A0010CAAF82000C93
72134 +:10F64000938F00103C18080127189640000F90C0B7
72135 +:10F6500002588021AF9000248F85002414A0FFD38E
72136 +:10F66000AF8F00103C0480008C86400030C5010044
72137 +:10F6700010A000BC322300043C0C08008D8C002438
72138 +:10F6800024120004106000C23190000D3C04800080
72139 +:10F690008C8D40003402FFFF11A201003231FFFBCC
72140 +:10F6A0008C884000310A01005540000124110010EF
72141 +:10F6B00030EE080011C000BE2419FFFB8F9800280F
72142 +:10F6C0002F0F03EF51E000010219802430E90100FF
72143 +:10F6D00011200014320800018F87002C14E000FB79
72144 +:10F6E0008F8C000C3C05800034AB0100917F00132F
72145 +:10F6F00033E300FF246A00042403FFFE0203802496
72146 +:10F70000000A21C012000002023230253226FFFF1B
72147 +:10F710000E000FDB9785002A1200FF290000182138
72148 +:10F72000320800011100000D32180004240E0001FF
72149 +:10F73000120E0002023230253226FFFF9785002A82
72150 +:10F740000E000FDB00002021240FFFFE020F80249B
72151 +:10F750001200FF1B00001821321800045300FF188C
72152 +:10F760002403000102323025241200045612000145
72153 +:10F770003226FFFF9785002A0E000FDB24040100CC
72154 +:10F780002419FFFB021988241220FF0D0000182104
72155 +:10F790000A0010E9240300011079009C00003021C8
72156 +:10F7A00090AD00012402000211A200BE30EA004028
72157 +:10F7B00090B90001241800011338007F30E900409F
72158 +:10F7C0008CA600049785002A00C020210E000FDBC4
72159 +:10F7D0003626000200004021010018218FBF001CC6
72160 +:10F7E0008FB200188FB100148FB00010006010218C
72161 +:10F7F00003E0000827BD0020360F010095EE000C45
72162 +:10F8000031CD020015A0FEE63C0900013C1880083D
72163 +:10F81000971200489789002A362600023248FFFFD7
72164 +:10F82000AF8800083C0380008C7101B80620FFFE01
72165 +:10F83000346A0180AD4000001100008E3C0F800052
72166 +:10F84000253F0012011FC82B1320008B240E00033C
72167 +:10F85000346C0100958B00202402001A30E4400033
72168 +:10F860003163FFFFA142000B108000A72463FFFE5D
72169 +:10F870000103682B15A000A52408FFFE34A5000194
72170 +:10F88000A5430014AF8500043C0480002412BFFF90
72171 +:10F8900000B2802434850180A4A9000EA4A9001A16
72172 +:10F8A000A4A60008A4B00026A4A700103C071000DE
72173 +:10F8B000AC8701B80A00114D000018213C038000FC
72174 +:10F8C00034640100949F000E3C1908008F3900D861
72175 +:10F8D0002404008033E5FFFF273100013C010800CC
72176 +:10F8E000AC3100D80E000FDB240600030A00114DD6
72177 +:10F8F00000001821240A000210CA00598F85002830
72178 +:10F900003C0308008C6300D0240E0001106E005EE2
72179 +:10F910002CCF000C24D2FFFC2E5000041600002136
72180 +:10F9200000002021241800021078001B2CD9000CA4
72181 +:10F9300024DFFFF82FE900041520FF330000202109
72182 +:10F9400030EB020051600004000621C054C00022C8
72183 +:10F9500030A5FFFF000621C030A5FFFF0A00117D82
72184 +:10F96000362600023C0908008D29002431300001B0
72185 +:10F970005200FEF7000018219785002A3626000263
72186 +:10F980000E000FDB000020210A00114D000018219D
72187 +:10F990000A00119C241200021320FFE624DFFFF866
72188 +:10F9A0000000202130A5FFFF0A00117D362600024D
72189 +:10F9B0000A0011AC021980245120FF828CA6000499
72190 +:10F9C0003C05080190A5964110A0FF7E2408000187
72191 +:10F9D0000A0011F0010018210E000FDB3226000191
72192 +:10F9E0008F8600108F8500280A00124F000621C064
72193 +:10F9F0008F8500043C18800024120003371001801A
72194 +:10FA0000A212000B0A00112E3C08800090A30001F6
72195 +:10FA1000241100011071FF70240800012409000264
72196 +:10FA20005069000430E60040240800010A0011F08B
72197 +:10FA30000100182150C0FFFD240800013C0C80008B
72198 +:10FA4000358B01009563001094A40002307FFFFF06
72199 +:10FA5000509FFF62010018210A001284240800014F
72200 +:10FA60002CA803EF1100FE56240300010A001239EE
72201 +:10FA700000000000240E000335EA0180A14E000BB7
72202 +:10FA80000A00121C3C04800011E0FFA2000621C005
72203 +:10FA900030A5FFFF0A00117D362600020A0011A5DD
72204 +:10FAA000241100201140FFC63C1280003650010096
72205 +:10FAB000960F001094AE000231E80FFF15C8FFC08A
72206 +:10FAC000000000000A0011E690B900013C060800A1
72207 +:10FAD0008CC6003824C4FFFF14C00002018418241F
72208 +:10FAE000000018213C0D080025AD0038006D1021E4
72209 +:10FAF0000A0011B6904300048F8F0004240EFFFE0D
72210 +:10FB00000A00112C01EE28242408FFFE0A00121A14
72211 +:10FB100000A8282427BDFFC8AFB00010AFBF003435
72212 +:10FB20003C10600CAFBE0030AFB7002CAFB6002861
72213 +:10FB3000AFB50024AFB40020AFB3001CAFB20018C3
72214 +:10FB4000AFB100148E0E5000240FFF7F3C068000E2
72215 +:10FB500001CF682435AC380C240B0003AE0C5000E8
72216 +:10FB6000ACCB00083C010800AC2000200E001819A6
72217 +:10FB7000000000003C0A0010354980513C06601628
72218 +:10FB8000AE09537C8CC700003C0860148D0500A0B2
72219 +:10FB90003C03FFFF00E320243C02535300051FC237
72220 +:10FBA0001482000634C57C000003A08002869821E0
72221 +:10FBB0008E7200043C116000025128218CBF007C31
72222 +:10FBC0008CA200783C1E600037C420203C05080150
72223 +:10FBD00024A59288AF820018AF9F001C0E0016DD8E
72224 +:10FBE0002406000A3C190001273996403C01080010
72225 +:10FBF000AC3931DC0E0020DDAF8000148FD708084F
72226 +:10FC00002418FFF03C15570902F8B02412D502F56C
72227 +:10FC100024040001AF80002C3C1480003697018042
72228 +:10FC20003C1E080127DE9644369301008E900000AA
72229 +:10FC30003205000310A0FFFD3207000110E000882C
72230 +:10FC4000320600028E7100283C048000AE91002034
72231 +:10FC50008E6500048E66000000A0382100C040219F
72232 +:10FC60008C8301B80460FFFE3C0B0010240A0800DE
72233 +:10FC700000AB4824AC8A01B8552000E0240BBFFF3C
72234 +:10FC80009675000E3C1208008E52002030AC4000E9
72235 +:10FC900032AFFFFF264E000125ED00043C010800B5
72236 +:10FCA000AC2E0020118000E8AF8D00283C18002009
72237 +:10FCB00000B8B02412C000E530B980002408BFFFAE
72238 +:10FCC00000A8382434C81000AF87000030E62000B8
72239 +:10FCD00010C000E92409FFBF3C03000400E328240E
72240 +:10FCE00010A00002010910243502004030EA010092
72241 +:10FCF00011400010AF8200048F8B002C11600007B0
72242 +:10FD00003C0D002000ED6024118000043C0F000435
72243 +:10FD100000EF702411C00239000000009668001E38
72244 +:10FD20009678001C3115FFFF0018B40002B690252C
72245 +:10FD3000AF92000C30F910001320001324150001BD
72246 +:10FD400030FF002017E0000A3C04100000E41024FB
72247 +:10FD50001040000D3C0A0C003C090BFF00EA18247F
72248 +:10FD60003525FFFF00A3302B10C0000830ED010047
72249 +:10FD70003C0C08008D8C002C24150005258B0001FF
72250 +:10FD80003C010800AC2B002C30ED010015A0000B4D
72251 +:10FD90003C0500018F85000430AE400055C00007CF
72252 +:10FDA0003C0500013C161F0100F690243C0F10009A
72253 +:10FDB000124F01CE000000003C05000100E5302498
72254 +:10FDC00010C000AF3C0C10003C1F08008FFF002447
72255 +:10FDD00033E90002152000712403000100601021A6
72256 +:10FDE000104000083C0680003C08800035180100E7
72257 +:10FDF0008F0F00243C056020ACAF00140000000011
72258 +:10FE00003C0680003C194000ACD9013800000000DD
72259 +:10FE10005220001332060002262B0140262C0080BF
72260 +:10FE2000240EFF80016E2024018E6824000D1940ED
72261 +:10FE3000318A007F0004A9403172007F3C16200007
72262 +:10FE400036C20002006A482502B2382500E2882541
72263 +:10FE50000122F825ACDF0830ACD1083032060002B0
72264 +:10FE600010C0FF723C188000370501408CA80000CC
72265 +:10FE700024100040AF08002090AF000831E300706C
72266 +:10FE8000107000D428790041532000082405006038
72267 +:10FE9000241100201071000E3C0A40003C09800033
72268 +:10FEA000AD2A01780A001304000000001465FFFB6E
72269 +:10FEB0003C0A40000E001FFA000000003C0A40000F
72270 +:10FEC0003C098000AD2A01780A00130400000000FC
72271 +:10FED00090A90009241F00048CA70000312800FF0E
72272 +:10FEE000111F01B22503FFFA2C7200061240001404
72273 +:10FEF0003C0680008CA9000494A4000A310500FF90
72274 +:10FF000000095E022D6A00083086FFFF15400002DE
72275 +:10FF10002567000424070003240C000910AC01FA33
72276 +:10FF200028AD000A11A001DE2410000A240E0008EA
72277 +:10FF300010AE0028000731C000C038213C06800008
72278 +:10FF40008CD501B806A0FFFE34D20180AE47000078
72279 +:10FF500034CB0140916E0008240300023C0A4000AB
72280 +:10FF600031C400FF00046A0001A86025A64C000807
72281 +:10FF7000A243000B9562000A3C0810003C09800077
72282 +:10FF8000A64200108D670004AE470024ACC801B83B
72283 +:10FF9000AD2A01780A001304000000003C0A80002A
72284 +:10FFA000354401009483000E3C0208008C4200D8C6
72285 +:10FFB000240400803065FFFF245500013C01080047
72286 +:10FFC000AC3500D80E000FDB240600030A001370C6
72287 +:10FFD000000018210009320230D900FF2418000166
72288 +:10FFE0001738FFD5000731C08F910020262200016D
72289 +:10FFF000AF8200200A0013C800C0382100CB2024A3
72290 +:020000021000EC
72291 +:10000000AF85000010800008AF860004240D87FF34
72292 +:1000100000CD6024158000083C0E006000AE302446
72293 +:1000200010C00005000000000E000D42000000009E
72294 +:100030000A001371000000000E0016050000000009
72295 +:100040000A0013710000000030B980005320FF1F28
72296 +:10005000AF8500003C02002000A2F82453E0FF1B03
72297 +:10006000AF8500003C07FFFF34E47FFF00A4382485
72298 +:100070000A00132B34C880000A001334010910242D
72299 +:1000800000EC58245160005AAF8000248F8D002C62
72300 +:100090003C0E0F0000EE182415A00075AF83001071
72301 +:1000A00030EF010011E00073939800103C12020041
72302 +:1000B000107200703C06800034D9010093280013B0
72303 +:1000C0009789002A36A60002311800FF271600047F
72304 +:1000D000001619C03C0480008C8501B804A0FFFE06
72305 +:1000E00034880180AD0300003C158008AC830020FB
72306 +:1000F00096BF004833E5FFFF10A001BCAF850008A4
72307 +:100100002523001200A3102B504001B98F85000455
72308 +:10011000348D010095AC0020240B001A30E440001F
72309 +:10012000318AFFFFA10B000B108001BA2543FFFEAF
72310 +:1001300000A3702B15C001B88F9600048F8F0004A8
72311 +:10014000A503001435E50001AF8500043C088000DC
72312 +:1001500035150180A6A9000EA6A9001A8F89000CEA
72313 +:1001600030BF8000A6A70010AEA90028A6A60008F0
72314 +:1001700013E0000F3C0F8000350C0100958B00163A
72315 +:10018000316AFFFC25440004008818218C6240007D
72316 +:100190003046FFFF14C000072416BFFF3C0EFFFFD0
72317 +:1001A00035CD7FFF00AD2824AF8500043C0F8000D3
72318 +:1001B0002416BFFF00B6902435E50180A4B20026C6
72319 +:1001C000ACA7002C3C071000ADE701B80A00137083
72320 +:1001D000000018210E00165D000000003C0A4000DF
72321 +:1001E0003C098000AD2A01780A00130400000000D9
72322 +:1001F0008F85002410A00027AF80001090A300007E
72323 +:10020000106000742409000310690101000030210E
72324 +:1002100090AE0001240D000211CD014230EF0040EC
72325 +:1002200090A90001241F0001113F000930E20040A5
72326 +:100230008CA600049785002A00C020210E000FDB49
72327 +:1002400036A60002000040210A00137001001821A8
72328 +:100250005040FFF88CA600043C07080190E7964147
72329 +:1002600010E0FFF4240800010A00137001001821B7
72330 +:10027000939800103C1F080127FF96400018C8C043
72331 +:10028000033F4021AF8800248F85002414A0FFDBAA
72332 +:10029000AF9800103C0480008C86400030C50100FF
72333 +:1002A00010A0008732AB00043C0C08008D8C0024A9
72334 +:1002B00024160004156000033192000D241600027C
72335 +:1002C0003C0480008C8E4000340DFFFF11CD0113E3
72336 +:1002D00032B5FFFB8C984000330F010055E0000160
72337 +:1002E0002415001030E80800110000382409FFFB35
72338 +:1002F0008F9F00282FF903EF53200001024990241B
72339 +:1003000030E2010010400014325F00018F87002CA2
72340 +:1003100014E0010E8F8C000C3C0480003486010038
72341 +:1003200090C5001330AA00FF25430004000321C03C
72342 +:100330002419FFFE025990241240000202B6302513
72343 +:1003400032A6FFFF0E000FDB9785002A1240FEA3A6
72344 +:1003500000001821325F000113E0000D3247000455
72345 +:10036000240900011249000202B6302532A6FFFF1F
72346 +:100370009785002A0E000FDB000020212402FFFEDB
72347 +:10038000024290241240FE950000182132470004DA
72348 +:1003900050E0FE922403000102B63025241600042A
72349 +:1003A0005656000132A6FFFF9785002A0E000FDB8C
72350 +:1003B000240401002403FFFB0243A82412A0FE87AB
72351 +:1003C000000018210A001370240300010A0014B968
72352 +:1003D0000249902410A0FFAF30E5010010A00017E3
72353 +:1003E0008F8600102403000210C300148F84000CB9
72354 +:1003F0003C0608008CC6003824CAFFFF14C0000267
72355 +:10040000008A1024000010213C0E080025CE003880
72356 +:10041000004E682191AC00048F850028258B0004D4
72357 +:10042000000B21C030A5FFFF36A600020E000FDB37
72358 +:10043000000000000A00137000001821240F0002C1
72359 +:1004400010CF0088241600013C0308008C6300D004
72360 +:100450001076008D8F85002824D9FFFC2F280004FA
72361 +:100460001500006300002021241F0002107F005DA2
72362 +:100470002CC9000C24C3FFF82C6200041440FFE9CF
72363 +:100480000000202130EA020051400004000621C093
72364 +:1004900054C0000530A5FFFF000621C030A5FFFFB6
72365 +:1004A0000A00150436A600020E000FDB32A600017A
72366 +:1004B0008F8600108F8500280A001520000621C0B5
72367 +:1004C0003C0A08008D4A0024315200015240FE438C
72368 +:1004D000000018219785002A36A600020E000FDBC7
72369 +:1004E000000020210A001370000018219668000CFB
72370 +:1004F000311802005700FE313C0500013C1F800806
72371 +:1005000097F900489789002A36A600023328FFFF92
72372 +:10051000AF8800083C0380008C7501B806A0FFFE80
72373 +:100520003C04800034820180AC400000110000B621
72374 +:1005300024180003252A0012010A182B106000B2AB
72375 +:1005400000000000966F00203C0E8000240D001A71
72376 +:1005500031ECFFFF35CA018030EB4000A14D000BAC
72377 +:10056000116000B02583FFFE0103902B164000AE02
72378 +:100570002416FFFE34A50001A5430014AF85000436
72379 +:100580002419BFFF00B94024A6E9000EA6E9001A0D
72380 +:10059000A6E60008A6E80026A6E700103C07100023
72381 +:1005A000AE8701B80A001370000018213C048000D7
72382 +:1005B0008C8201B80440FFFE349601802415001C93
72383 +:1005C000AEC70000A2D5000B3C071000AC8701B8F5
72384 +:1005D0003C0A40003C098000AD2A01780A0013045F
72385 +:1005E000000000005120FFA424C3FFF800002021D8
72386 +:1005F00030A5FFFF0A00150436A600020E00103DCC
72387 +:10060000000000008F8700000A001346AF82000C34
72388 +:1006100090A30001241500011075FF0B24080001B0
72389 +:10062000240600021066000430E2004024080001A5
72390 +:100630000A001370010018215040FFFD240800013A
72391 +:100640003C0C8000358B0100956A001094A40002D8
72392 +:100650003143FFFF5083FDE1010018210A00158599
72393 +:10066000240800018F8500282CB203EF1240FDDB27
72394 +:10067000240300013C0308008C6300D02416000111
72395 +:100680001476FF7624D9FFFC2CD8000C1300FF72DF
72396 +:10069000000621C030A5FFFF0A00150436A600029F
72397 +:1006A00010B00037240F000B14AFFE23000731C039
72398 +:1006B000312600FF00065600000A4E0305220047BF
72399 +:1006C00030C6007F0006F8C03C16080126D69640CA
72400 +:1006D00003F68021A2000001A20000003C0F600090
72401 +:1006E0008DF918202405000100C588040011302769
72402 +:1006F0000326C024000731C000C03821ADF81820FF
72403 +:100700000A0013C8A60000028F850020000731C030
72404 +:1007100024A2FFFF0A0013F6AF8200200A0014B2E1
72405 +:100720002415002011E0FECC3C1980003728010080
72406 +:100730009518001094B6000233120FFF16D2FEC6B1
72407 +:10074000000000000A00148290A900013C0B080080
72408 +:100750008D6B0038256DFFFF15600002018D1024A0
72409 +:10076000000010213C080800250800380048C0217E
72410 +:10077000930F000425EE00040A0014C5000E21C0EA
72411 +:1007800000065202241F00FF115FFDEB000731C07D
72412 +:10079000000A20C03C0E080125CE9640008EA821FC
72413 +:1007A000009E602100095C02240D00013C076000EE
72414 +:1007B000A2AD0000AD860000A2AB00018CF21820B3
72415 +:1007C00024030001014310040242B025ACF61820B6
72416 +:1007D00000C038210A0013C8A6A900020A0015AA01
72417 +:1007E000AF8000200A0012FFAF84002C8F85000428
72418 +:1007F0003C1980002408000337380180A308000B4F
72419 +:100800000A00144D3C088000A2F8000B0A00155A9B
72420 +:100810002419BFFF8F9600042412FFFE0A00144B18
72421 +:1008200002D228242416FFFE0A00155800B62824F8
72422 +:100830003C038000346401008C85000030A2003E3F
72423 +:100840001440000800000000AC6000488C870000E5
72424 +:1008500030E607C010C0000500000000AC60004C8E
72425 +:10086000AC60005003E0000824020001AC600054BA
72426 +:10087000AC6000408C880000310438001080FFF923
72427 +:10088000000000002402000103E00008AC60004406
72428 +:100890003C0380008C6201B80440FFFE3467018095
72429 +:1008A000ACE4000024080001ACE00004A4E500086A
72430 +:1008B00024050002A0E8000A34640140A0E5000B12
72431 +:1008C0009483000A14C00008A4E30010ACE00024E4
72432 +:1008D0003C07800034E901803C041000AD20002872
72433 +:1008E00003E00008ACE401B88C8600043C0410006E
72434 +:1008F000ACE600243C07800034E90180AD200028EC
72435 +:1009000003E00008ACE401B83C0680008CC201B8EA
72436 +:100910000440FFFE34C7018024090002ACE400005B
72437 +:10092000ACE40004A4E50008A0E9000A34C50140D5
72438 +:10093000A0E9000B94A8000A3C041000A4E80010F1
72439 +:10094000ACE000248CA30004ACE3002803E0000822
72440 +:10095000ACC401B83C039000346200010082202541
72441 +:100960003C038000AC6400208C65002004A0FFFEE6
72442 +:100970000000000003E00008000000003C028000CE
72443 +:10098000344300010083202503E00008AC4400202C
72444 +:1009900027BDFFE03C098000AFBF0018AFB10014D5
72445 +:1009A000AFB00010352801408D10000091040009FF
72446 +:1009B0009107000891050008308400FF30E600FF31
72447 +:1009C00000061A002C820081008330251040002A86
72448 +:1009D00030A50080000460803C0D080125AD92B078
72449 +:1009E000018D58218D6A00000140000800000000C0
72450 +:1009F0003C038000346201409445000A14A0001EAC
72451 +:100A00008F91FCC09227000530E6000414C0001A44
72452 +:100A1000000000000E00164E02002021922A000560
72453 +:100A200002002021354900040E001658A2290005B5
72454 +:100A30009228000531040004148000020000000028
72455 +:100A40000000000D922D0000240B002031AC00FFAF
72456 +:100A5000158B00093C0580008CAE01B805C0FFFE77
72457 +:100A600034B10180AE3000003C0F100024100005AE
72458 +:100A7000A230000BACAF01B80000000D8FBF001812
72459 +:100A80008FB100148FB0001003E0000827BD0020D4
72460 +:100A90000200202100C028218FBF00188FB1001450
72461 +:100AA0008FB00010240600010A00161D27BD00208B
72462 +:100AB0000000000D0200202100C028218FBF001877
72463 +:100AC0008FB100148FB00010000030210A00161DF5
72464 +:100AD00027BD002014A0FFE8000000000200202134
72465 +:100AE0008FBF00188FB100148FB0001000C02821F4
72466 +:100AF0000A00163B27BD00203C0780008CEE01B8A1
72467 +:100B000005C0FFFE34F00180241F0002A21F000B6D
72468 +:100B100034F80140A60600089719000A3C0F10009F
72469 +:100B2000A61900108F110004A6110012ACEF01B835
72470 +:100B30000A0016998FBF001827BDFFE8AFBF00104D
72471 +:100B40000E000FD4000000003C0280008FBF001098
72472 +:100B500000002021AC4001800A00108F27BD001842
72473 +:100B60003084FFFF30A5FFFF108000070000182130
72474 +:100B7000308200011040000200042042006518216C
72475 +:100B80001480FFFB0005284003E0000800601021EE
72476 +:100B900010C00007000000008CA2000024C6FFFF68
72477 +:100BA00024A50004AC82000014C0FFFB24840004D0
72478 +:100BB00003E000080000000010A0000824A3FFFFCD
72479 +:100BC000AC86000000000000000000002402FFFFCF
72480 +:100BD0002463FFFF1462FFFA2484000403E000088A
72481 +:100BE000000000003C03800027BDFFF83462018054
72482 +:100BF000AFA20000308C00FF30AD00FF30CE00FF10
72483 +:100C00003C0B80008D6401B80480FFFE00000000F2
72484 +:100C10008FA900008D6801288FAA00008FA700000F
72485 +:100C20008FA400002405000124020002A085000A10
72486 +:100C30008FA30000359940003C051000A062000B16
72487 +:100C40008FB800008FAC00008FA600008FAF0000AF
72488 +:100C500027BD0008AD280000AD400004AD80002491
72489 +:100C6000ACC00028A4F90008A70D0010A5EE0012E2
72490 +:100C700003E00008AD6501B83C06800827BDFFE829
72491 +:100C800034C50080AFBF001090A7000924020012F5
72492 +:100C900030E300FF1062000B008030218CA8005070
72493 +:100CA00000882023048000088FBF00108CAA003425
72494 +:100CB000240400390000282100CA4823052000052B
72495 +:100CC000240600128FBF00102402000103E0000878
72496 +:100CD00027BD00180E0016F2000000008FBF0010A4
72497 +:100CE0002402000103E0000827BD001827BDFFC84B
72498 +:100CF000AFB20030AFB00028AFBF0034AFB1002CAE
72499 +:100D000000A0802190A5000D30A6001010C000109A
72500 +:100D1000008090213C0280088C4400048E0300086F
72501 +:100D20001064000C30A7000530A6000510C0009329
72502 +:100D3000240400018FBF00348FB200308FB1002C2B
72503 +:100D40008FB000280080102103E0000827BD003884
72504 +:100D500030A7000510E0000F30AB001210C00006F5
72505 +:100D6000240400013C0980088E0800088D25000439
72506 +:100D70005105009C240400388FBF00348FB200302E
72507 +:100D80008FB1002C8FB000280080102103E00008F4
72508 +:100D900027BD0038240A0012156AFFE6240400016A
72509 +:100DA0000200202127A500100E000CB6AFA00010F5
72510 +:100DB0001440007C3C19800837240080909800087B
72511 +:100DC000331100081220000A8FA7001030FF010025
72512 +:100DD00013E000A48FA300148C8600580066102333
72513 +:100DE000044000043C0A8008AC8300588FA7001020
72514 +:100DF0003C0A800835480080910900083124000829
72515 +:100E00001480000224080003000040213C1F8008D9
72516 +:100E100093F1001193F9001237E600808CCC005456
72517 +:100E2000333800FF03087821322D00FF000F708057
72518 +:100E300001AE282100AC582B1160006F00000000AB
72519 +:100E400094CA005C8CC900543144FFFF0125102373
72520 +:100E50000082182B14600068000000008CCB005446
72521 +:100E60000165182330EC00041180006C000830800C
72522 +:100E70008FA8001C0068102B1040006230ED0004A9
72523 +:100E8000006610232C46008010C00002004088211C
72524 +:100E9000241100800E00164E024020213C0D8008D7
72525 +:100EA00035A6008024070001ACC7000C90C80008DC
72526 +:100EB0000011484035A70100310C007FA0CC00088C
72527 +:100EC0008E05000424AB0001ACCB0030A4D1005C43
72528 +:100ED0008CCA003C9602000E01422021ACC40020C6
72529 +:100EE0008CC3003C0069F821ACDF001C8E190004A3
72530 +:100EF000ACF900008E180008ACF800048FB10010A7
72531 +:100F0000322F000855E0004793A60020A0C0004EF5
72532 +:100F100090D8004E2411FFDFA0F8000890CF000801
72533 +:100F200001F17024A0CE00088E0500083C0B80085B
72534 +:100F300035690080AD2500388D6A00148D2200309F
72535 +:100F40002419005001422021AD24003491230000D7
72536 +:100F5000307F00FF13F90036264F01000E001658AF
72537 +:100F60000240202124040038000028210E0016F23F
72538 +:100F70002406000A0A001757240400010E000D2859
72539 +:100F8000000020218FBF00348FB200308FB1002CC1
72540 +:100F90008FB00028004020210080102103E00008CD
72541 +:100FA00027BD00388E0E00083C0F800835F0008009
72542 +:100FB000AE0E005402402021AE0000300E00164E4E
72543 +:100FC00000000000920D00250240202135AC0020D9
72544 +:100FD0000E001658A20C00250E000CAC0240202179
72545 +:100FE000240400382405008D0E0016F22406001299
72546 +:100FF0000A0017572404000194C5005C0A001792E8
72547 +:1010000030A3FFFF2407021811A0FF9E00E6102363
72548 +:101010008FAE001C0A00179A01C610230A0017970A
72549 +:101020002C620218A0E600080A0017C48E0500080A
72550 +:101030002406FF8001E6C0243C118000AE38002861
72551 +:101040008E0D000831E7007F3C0E800C00EE602121
72552 +:10105000AD8D00E08E080008AF8C00380A0017D074
72553 +:10106000AD8800E4AC800058908500082403FFF7A9
72554 +:1010700000A33824A08700080A0017758FA7001066
72555 +:101080003C05080024A560A83C04080024846FF4F3
72556 +:101090003C020800244260B0240300063C01080121
72557 +:1010A000AC2596C03C010801AC2496C43C01080163
72558 +:1010B000AC2296C83C010801A02396CC03E00008AE
72559 +:1010C0000000000003E00008240200013C02800050
72560 +:1010D000308800FF344701803C0680008CC301B893
72561 +:1010E0000460FFFE000000008CC501282418FF806A
72562 +:1010F0003C0D800A24AF010001F8702431EC007F20
72563 +:10110000ACCE0024018D2021ACE50000948B00EAD8
72564 +:101110003509600024080002316AFFFFACEA0004D0
72565 +:1011200024020001A4E90008A0E8000BACE00024C0
72566 +:101130003C071000ACC701B8AF84003803E00008DA
72567 +:10114000AF85006C938800488F8900608F820038DB
72568 +:1011500030C600FF0109382330E900FF01221821C1
72569 +:1011600030A500FF2468008810C000020124382147
72570 +:101170000080382130E400031480000330AA00030B
72571 +:101180001140000D312B000310A0000900001021B8
72572 +:1011900090ED0000244E000131C200FF0045602B9D
72573 +:1011A000A10D000024E700011580FFF925080001CA
72574 +:1011B00003E00008000000001560FFF300000000DD
72575 +:1011C00010A0FFFB000010218CF80000245900043F
72576 +:1011D000332200FF0045782BAD18000024E70004FF
72577 +:1011E00015E0FFF92508000403E0000800000000F6
72578 +:1011F00093850048938800588F8700600004320070
72579 +:101200003103007F00E5102B30C47F001040000F39
72580 +:10121000006428258F8400383C0980008C8A00EC0B
72581 +:10122000AD2A00A43C03800000A35825AC6B00A0AD
72582 +:101230008C6C00A00580FFFE000000008C6D00ACEF
72583 +:10124000AC8D00EC03E000088C6200A80A00188254
72584 +:101250008F840038938800593C0280000080502120
72585 +:10126000310300FEA383005930ABFFFF30CC00FFF9
72586 +:1012700030E7FFFF344801803C0980008D2401B82D
72587 +:101280000480FFFE8F8D006C24180016AD0D000049
72588 +:101290008D2201248F8D0038AD0200048D5900206D
72589 +:1012A000A5070008240201C4A119000AA118000B17
72590 +:1012B000952F01208D4E00088D4700049783005C18
72591 +:1012C0008D59002401CF302100C7282100A32023FD
72592 +:1012D0002418FFFFA504000CA50B000EA5020010AA
72593 +:1012E000A50C0012AD190018AD18002495AF00E848
72594 +:1012F0003C0B10002407FFF731EEFFFFAD0E002876
72595 +:101300008DAC0084AD0C002CAD2B01B88D460020B7
72596 +:1013100000C7282403E00008AD4500208F8800386E
72597 +:101320000080582130E7FFFF910900D63C02800081
72598 +:1013300030A5FFFF312400FF00041A00006750258C
72599 +:1013400030C600FF344701803C0980008D2C01B875
72600 +:101350000580FFFE8F82006C240F0017ACE20000B6
72601 +:101360008D390124ACF900048D780020A4EA00082E
72602 +:10137000241901C4A0F8000AA0EF000B9523012056
72603 +:101380008D6E00088D6D00049784005C01C35021B0
72604 +:10139000014D602101841023A4E2000CA4E5000E9D
72605 +:1013A000A4F90010A4E60012ACE000148D7800242B
72606 +:1013B000240DFFFFACF800188D0F007CACEF001C73
72607 +:1013C0008D0E00783C0F1000ACEE0020ACED002438
72608 +:1013D000950A00BE240DFFF73146FFFFACE600285A
72609 +:1013E000950C00809504008231837FFF0003CA00C2
72610 +:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2
72611 +:10140000950E00828D6A002000AE3021014D282407
72612 +:10141000A506008203E00008AD6500203C028000C4
72613 +:10142000344501803C0480008C8301B80460FFFED9
72614 +:101430008F8A0044240600199549001C3128FFFFBB
72615 +:10144000000839C0ACA70000A0A6000B3C051000A6
72616 +:1014500003E00008AC8501B88F87004C0080402174
72617 +:1014600030C400FF3C0680008CC201B80440FFFE7F
72618 +:101470008F89006C9383006834996000ACA90000E8
72619 +:10148000A0A300058CE20010240F00022403FFF744
72620 +:10149000A4A20006A4B900088D180020A0B8000A74
72621 +:1014A000A0AF000B8CEE0000ACAE00108CED000481
72622 +:1014B000ACAD00148CEC001CACAC00248CEB002018
72623 +:1014C000ACAB00288CEA002C3C071000ACAA002C26
72624 +:1014D0008D090024ACA90018ACC701B88D05002007
72625 +:1014E00000A3202403E00008AD0400208F8600380C
72626 +:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0
72627 +:1015000090C300D430A500FF3062002010400008D6
72628 +:10151000008088218CCB00D02409FFDF256A0001E0
72629 +:10152000ACCA00D090C800D401093824A0C700D4A8
72630 +:1015300014A000403C0C80008F840038908700D4B9
72631 +:101540002418FFBF2406FFEF30E3007FA08300D400
72632 +:10155000979F005C8F8200608F8D003803E2C82364
72633 +:10156000A799005CA5A000BC91AF00D401F870243D
72634 +:10157000A1AE00D48F8C0038A18000D78F8A0038AC
72635 +:10158000A5400082AD4000EC914500D400A658244F
72636 +:10159000A14B00D48F9000348F8400609786005C4C
72637 +:1015A0000204282110C0000FAF850034A38000582A
72638 +:1015B0003C0780008E2C000894ED01208E2B000447
72639 +:1015C000018D5021014B8021020620233086FFFF30
72640 +:1015D00030C8000F3909000131310001162000091F
72641 +:1015E000A3880058938600488FBF00188FB100145D
72642 +:1015F0008FB0001027BD0020AF85006403E0000815
72643 +:10160000AF86006000C870238FBF00189386004823
72644 +:101610008FB100148FB0001034EF0C00010F28219F
72645 +:1016200027BD0020ACEE0084AF85006403E0000815
72646 +:10163000AF86006035900180020028210E00190F4E
72647 +:10164000240600828F840038908600D430C5004084
72648 +:1016500050A0FFBAA38000688F85004C3C06800034
72649 +:101660008CCD01B805A0FFFE8F89006C2408608234
72650 +:1016700024070002AE090000A6080008A207000B1C
72651 +:101680008CA300083C0E1000AE0300108CA2000CCE
72652 +:10169000AE0200148CBF0014AE1F00188CB90018E5
72653 +:1016A000AE1900248CB80024AE1800288CAF002896
72654 +:1016B000AE0F002CACCE01B80A001948A380006818
72655 +:1016C0008F8A003827BDFFE0AFB10014AFB0001023
72656 +:1016D0008F880060AFBF00189389003C954200BC22
72657 +:1016E00030D100FF0109182B0080802130AC00FFB1
72658 +:1016F0003047FFFF0000582114600003310600FF4F
72659 +:1017000001203021010958239783005C0068202BB9
72660 +:101710001480002700000000106800562419000102
72661 +:101720001199006334E708803165FFFF0E0018C08F
72662 +:10173000020020218F83006C3C07800034E601808A
72663 +:101740003C0580008CAB01B80560FFFE240A001840
72664 +:101750008F840038ACC30000A0CA000B948900BE7F
72665 +:101760003C081000A4C90010ACC00030ACA801B8FF
72666 +:101770009482008024430001A4830080949F008011
72667 +:101780003C0608008CC6318833EC7FFF1186005E72
72668 +:101790000000000002002021022028218FBF001835
72669 +:1017A0008FB100148FB000100A00193427BD00203B
72670 +:1017B000914400D42403FF8000838825A15100D4E4
72671 +:1017C0009784005C3088FFFF51000023938C003C1D
72672 +:1017D0008F8500382402EFFF008B782394AE00BC85
72673 +:1017E0000168502B31E900FF01C26824A4AD00BCA0
72674 +:1017F00051400039010058213C1F800037E60100AC
72675 +:101800008CD800043C190001031940245500000144
72676 +:1018100034E740008E0A00202403FFFB241100015E
72677 +:1018200001432024AE0400201191002D34E78000F4
72678 +:1018300002002021012030210E0018C03165FFFF79
72679 +:101840009787005C8F890060A780005C0127802358
72680 +:10185000AF900060938C003C8F8B00388FBF0018D6
72681 +:101860008FB100148FB0001027BD002003E00008E6
72682 +:10187000A16C00D73C0D800035AA01008D48000402
72683 +:101880003C0900010109282454A0000134E740006C
72684 +:101890008E0F00202418FFFB34E7800001F870242D
72685 +:1018A00024190001AE0E00201599FF9F34E708802F
72686 +:1018B000020020210E00188E3165FFFF020020215A
72687 +:1018C000022028218FBF00188FB100148FB00010A4
72688 +:1018D0000A00193427BD00200A0019F7000048212A
72689 +:1018E00002002021012030210E00188E3165FFFFFB
72690 +:1018F0009787005C8F890060A780005C01278023A8
72691 +:101900000A001A0EAF900060948C0080241F8000A3
72692 +:10191000019F3024A4860080908B0080908F0080EF
72693 +:10192000316700FF0007C9C20019C027001871C045
72694 +:1019300031ED007F01AE2825A08500800A0019DF67
72695 +:1019400002002021938500682403000127BDFFE8E1
72696 +:1019500000A330042CA20020AFB00010AFBF0014D1
72697 +:1019600000C01821104000132410FFFE3C0708009F
72698 +:101970008CE7319000E610243C088000350501809A
72699 +:1019800014400005240600848F890038240A0004CE
72700 +:101990002410FFFFA12A00FC0E00190F0000000018
72701 +:1019A000020010218FBF00148FB0001003E0000868
72702 +:1019B00027BD00183C0608008CC631940A001A574F
72703 +:1019C00000C310248F87004427BDFFE0AFB200188A
72704 +:1019D000AFB10014AFB00010AFBF001C30D000FF9B
72705 +:1019E00090E6000D00A088210080902130C5007F86
72706 +:1019F000A0E5000D8F8500388E2300188CA200D042
72707 +:101A00001062002E240A000E0E001A4AA38A0068F3
72708 +:101A10002409FFFF104900222404FFFF5200002088
72709 +:101A2000000020218E2600003C0C001000CC582421
72710 +:101A3000156000393C0E000800CE682455A0003F18
72711 +:101A4000024020213C18000200D880241200001F10
72712 +:101A50003C0A00048F8700448CE200148CE30010E1
72713 +:101A60008CE500140043F82303E5C82B1320000580
72714 +:101A7000024020218E24002C8CF1001010910031A6
72715 +:101A80000240202124020012A38200680E001A4A9C
72716 +:101A90002412FFFF105200022404FFFF0000202147
72717 +:101AA0008FBF001C8FB200188FB100148FB00010D0
72718 +:101AB0000080102103E0000827BD002090A800D47A
72719 +:101AC000350400200A001A80A0A400D400CA4824CB
72720 +:101AD0001520000B8F8B00448F8D00448DAC0010BF
72721 +:101AE0001580000B024020218E2E002C51C0FFECEF
72722 +:101AF00000002021024020210A001A9B2402001726
72723 +:101B00008D66001050C0FFE6000020210240202119
72724 +:101B10000A001A9B24020011024020212402001511
72725 +:101B20000E001A4AA3820068240FFFFF104FFFDC4B
72726 +:101B30002404FFFF0A001A8A8E2600000A001AC138
72727 +:101B4000240200143C08000400C8382450E0FFD4EC
72728 +:101B500000002021024020210A001A9B24020013C9
72729 +:101B60008F85003827BDFFD8AFB3001CAFB2001877
72730 +:101B7000AFB10014AFB00010AFBF002090A700D4E9
72731 +:101B80008F90004C2412FFFF34E2004092060000C8
72732 +:101B9000A0A200D48E0300100080982110720006CD
72733 +:101BA00030D1003F2408000D0E001A4AA3880068B7
72734 +:101BB000105200252404FFFF8F8A00388E09001878
72735 +:101BC0008D4400D01124000702602021240C000E57
72736 +:101BD0000E001A4AA38C0068240BFFFF104B001A5A
72737 +:101BE0002404FFFF24040020122400048F8D0038F9
72738 +:101BF00091AF00D435EE0020A1AE00D48F85005403
72739 +:101C000010A00019000000001224004A8F9800382C
72740 +:101C10008F92FCC0971000809651000A5230004805
72741 +:101C20008F9300403C1F08008FFF318C03E5C82BC9
72742 +:101C30001720001E02602021000028210E0019A993
72743 +:101C400024060001000020218FBF00208FB3001C5C
72744 +:101C50008FB200188FB100148FB0001000801021D7
72745 +:101C600003E0000827BD00285224002A8E05001436
72746 +:101C70008F840038948A008025490001A48900805F
72747 +:101C8000948800803C0208008C42318831077FFF35
72748 +:101C900010E2000E00000000026020210E00193446
72749 +:101CA000240500010A001B0B000020212402002D46
72750 +:101CB0000E001A4AA38200682403FFFF1443FFE1C9
72751 +:101CC0002404FFFF0A001B0C8FBF002094990080A2
72752 +:101CD000241F800024050001033FC024A498008035
72753 +:101CE00090920080908E0080325100FF001181C2DE
72754 +:101CF00000107827000F69C031CC007F018D582576
72755 +:101D0000A08B00800E001934026020210A001B0BFA
72756 +:101D1000000020212406FFFF54A6FFD68F84003840
72757 +:101D2000026020210E001934240500010A001B0B5B
72758 +:101D300000002021026020210A001B252402000A45
72759 +:101D40002404FFFD0A001B0BAF9300608F8800384E
72760 +:101D500027BDFFE8AFB00010AFBF0014910A00D458
72761 +:101D60008F87004C00808021354900408CE60010B0
72762 +:101D7000A10900D43C0208008C4231B030C53FFFBD
72763 +:101D800000A2182B106000078F850050240DFF80E3
72764 +:101D900090AE000D01AE6024318B00FF156000088D
72765 +:101DA0000006C382020020212403000D8FBF00140F
72766 +:101DB0008FB0001027BD00180A001A4AA3830068DC
72767 +:101DC00033060003240F000254CFFFF70200202146
72768 +:101DD00094A2001C8F85003824190023A4A200E8D7
72769 +:101DE0008CE8000000081E02307F003F13F9003528
72770 +:101DF0003C0A00838CE800188CA600D0110600086D
72771 +:101E0000000000002405000E0E001A4AA385006899
72772 +:101E10002407FFFF104700182404FFFF8F850038B8
72773 +:101E200090A900D435240020A0A400D48F8C0044B5
72774 +:101E3000918E000D31CD007FA18D000D8F83005458
72775 +:101E40001060001C020020218F8400508C9800102C
72776 +:101E50000303782B11E0000D241900180200202143
72777 +:101E6000A39900680E001A4A2410FFFF10500002C8
72778 +:101E70002404FFFF000020218FBF00148FB000104A
72779 +:101E80000080102103E0000827BD00188C86001098
72780 +:101E90008F9F00440200202100C31023AFE20010F6
72781 +:101EA000240500010E0019A9240600010A001B9751
72782 +:101EB000000020210E001934240500010A001B97A0
72783 +:101EC00000002021010A5824156AFFD98F8C004494
72784 +:101ED000A0A600FC0A001B84A386005A30A500FFC0
72785 +:101EE0002406000124A9000100C9102B1040000C99
72786 +:101EF00000004021240A000100A61823308B0001B5
72787 +:101F000024C60001006A3804000420421160000267
72788 +:101F100000C9182B010740251460FFF800A61823FC
72789 +:101F200003E000080100102127BDFFD8AFB0001862
72790 +:101F30008F90004CAFB1001CAFBF00202403FFFF07
72791 +:101F40002411002FAFA30010920600002405000802
72792 +:101F500026100001006620260E001BB0308400FF12
72793 +:101F600000021E003C021EDC34466F410A001BD8F2
72794 +:101F70000000102110A00009008018212445000154
72795 +:101F800030A2FFFF2C4500080461FFFA0003204047
72796 +:101F90000086202614A0FFF9008018210E001BB037
72797 +:101FA000240500208FA300102629FFFF313100FFF8
72798 +:101FB00000034202240700FF1627FFE20102182651
72799 +:101FC00000035027AFAA0014AFAA00100000302170
72800 +:101FD00027A8001027A7001400E6782391ED00033E
72801 +:101FE00024CE000100C8602131C600FF2CCB0004C4
72802 +:101FF0001560FFF9A18D00008FA200108FBF002097
72803 +:102000008FB1001C8FB0001803E0000827BD002826
72804 +:1020100027BDFFD0AFB3001CAFB00010AFBF00288A
72805 +:10202000AFB50024AFB40020AFB20018AFB10014B8
72806 +:102030003C0C80008D880128240FFF803C06800A1C
72807 +:1020400025100100250B0080020F68243205007F57
72808 +:10205000016F7024AD8E009000A62821AD8D002464
72809 +:1020600090A600FC3169007F3C0A8004012A1821F7
72810 +:10207000A386005A9067007C00809821AF830030CF
72811 +:1020800030E20002AF88006CAF85003800A0182154
72812 +:10209000144000022404003424040030A3840048C7
72813 +:1020A0008C7200DC30D100FF24040004AF92006089
72814 +:1020B00012240004A38000688E7400041680001EA1
72815 +:1020C0003C0880009386005930C7000110E0000FE3
72816 +:1020D0008F9300608CB000848CA800842404FF805F
72817 +:1020E000020410240002F940310A007F03EA482567
72818 +:1020F0003C0C2000012C902530CD00FE3C038000DC
72819 +:10210000AC720830A38D00598F9300608FBF0028F8
72820 +:102110008FB50024ACB300DC8FB400208FB3001C5B
72821 +:102120008FB200188FB100148FB00010240200018C
72822 +:1021300003E0000827BD00308E7F000895020120D3
72823 +:102140008E67001003E2C8213326FFFF30D8000F4E
72824 +:1021500033150001AF87003416A00058A39800582B
72825 +:1021600035090C000309382100D81823AD03008479
72826 +:10217000AF8700648E6A00043148FFFF1100007EC3
72827 +:10218000A78A005C90AC00D42407FF8000EC3024C8
72828 +:1021900030CB00FF1560004B9786005C938E005A91
72829 +:1021A000240D000230D5FFFF11CD02A20000A021B6
72830 +:1021B0008F85006002A5802B160000BC9388004824
72831 +:1021C0003C11800096240120310400FF1485008812
72832 +:1021D0008F8400648F9800343312000356400085CA
72833 +:1021E00030A500FF8F900064310C00FF24060034FE
72834 +:1021F00011860095AF90004C9204000414800118E1
72835 +:102200008F8E0038A380003C8E0D00048DC800D84E
72836 +:102210003C0600FF34CCFFFF01AC30240106182B34
72837 +:1022200014600120AF8600548F8700609798005C8F
72838 +:10223000AF8700400307402310C000C7A788005C99
72839 +:102240008F91003030C3000300035823922A007C92
72840 +:102250003171000302261021000A20823092000111
72841 +:102260000012488000492821311FFFFF03E5C82BD9
72842 +:10227000132001208F8800388F8500348F880064F8
72843 +:102280001105025A3C0E3F018E0600003C0C250051
72844 +:1022900000CE682411AC01638F84004C30E500FF50
72845 +:1022A0000E00184A000030218F8800388F870060A8
72846 +:1022B0008F8500340A001DB78F8600540A001C5613
72847 +:1022C000AF87006490A400D400E48024320200FFB1
72848 +:1022D000104000169386005990A6008890AE00D753
72849 +:1022E00024A8008830D4003F2686FFE02CD10020AF
72850 +:1022F000A38E003C1220000CAF88004C240B000180
72851 +:1023000000CB20043095001916A0012B3C0680005C
72852 +:1023100034CF0002008FC0241700022E3099002015
72853 +:1023200017200234000000009386005930CB0001D2
72854 +:102330001160000F9788005C8CBF00848CA900841A
72855 +:10234000240AFF8003EA6024000C19403132007F28
72856 +:10235000007238253C0D200000EDC82530D800FE65
72857 +:102360003C0F8000ADF90830A39800599788005CB5
72858 +:102370001500FF84000000008E630020306200041E
72859 +:102380001040FF51938600592404FFFB0064802411
72860 +:102390003C038000AE700020346601808C7301B86D
72861 +:1023A0000660FFFE8F98006C347501003C1400013C
72862 +:1023B000ACD800008C6B012424076085ACCB0004F2
72863 +:1023C0008EAE000401D488245220000124076083CB
72864 +:1023D00024190002A4C700083C0F1000A0D9000B6C
72865 +:1023E0003C068000ACCF01B80A001C2B9386005934
72866 +:1023F00030A500FF0E00184A240600018F88006CEB
72867 +:102400003C05800034A90900250201889388004812
72868 +:10241000304A0007304B00783C0340802407FF809F
72869 +:102420000163C825014980210047F824310C00FFD1
72870 +:1024300024060034ACBF0800AF90004CACB90810C3
72871 +:102440005586FF6E920400048F8400388E11003090
72872 +:10245000908E00D431CD001015A000108F83006045
72873 +:102460002C6F000515E000E400000000909800D4F7
72874 +:102470002465FFFC331200101640000830A400FF52
72875 +:102480008F9F00648F99003413F90004388700018E
72876 +:1024900030E20001144001C8000000000E001BC320
72877 +:1024A000000000000A001DF8000000008F84006496
72878 +:1024B00030C500FF0E00184A24060001939800481A
72879 +:1024C000240B0034130B00A08F8500388F8600602A
72880 +:1024D0009783005C306EFFFF00CE8823AF910060D1
72881 +:1024E000A780005C1280FF90028018212414FFFD59
72882 +:1024F0005474FFA28E6300208E6A00042403FFBF81
72883 +:102500002408FFEF0155F823AE7F000490AC00D4FF
72884 +:102510003189007FA0A900D48E7200208F8F0038EF
72885 +:10252000A780005C364D0002AE6D0020A5E000BC27
72886 +:1025300091E500D400A3C824A1F900D48F950038F8
72887 +:10254000AEA000EC92B800D403085824A2AB00D48B
72888 +:102550000A001CD78F8500388F910034AF8000604F
72889 +:1025600002275821AF8B0034000020212403FFFFF5
72890 +:10257000108301B48F8500388E0C00103C0D0800CC
72891 +:102580008DAD31B09208000031843FFF008D802B6B
72892 +:1025900012000023310D003F3C1908008F3931A88B
72893 +:1025A0008F9F006C000479802408FF80033F202166
72894 +:1025B000008FC821938500590328F8243C06008029
72895 +:1025C0003C0F800034D80001001F91403331007F60
72896 +:1025D0008F8600380251502535EE0940332B0078A4
72897 +:1025E000333000073C0310003C02800C017890253A
72898 +:1025F000020E48210143C0250222382134AE0001D9
72899 +:10260000ADFF0804AF890050ADF20814AF87004455
72900 +:10261000ADFF0028ACD90084ADF80830A38E005976
72901 +:102620009383005A24070003106700272407000142
72902 +:102630001467FFAC8F8500382411002311B1008589
72903 +:1026400000000000240E000B026020210E001A4A38
72904 +:10265000A38E00680040A0210A001D328F8500383B
72905 +:1026600002602021240B000C0E001A4AA38B006884
72906 +:10267000240AFFFF104AFFBD2404FFFF8F8E00389D
72907 +:10268000A380003C8E0D00048DC800D83C0600FFDE
72908 +:1026900034CCFFFF01AC30240106182B1060FEE2A1
72909 +:1026A000AF86005402602021241200190E001A4A3D
72910 +:1026B000A3920068240FFFFF104FFFAC2404FFFF1C
72911 +:1026C0000A001C838F86005425A3FFE02C74002091
72912 +:1026D0001280FFDD240E000B000328803C1108014E
72913 +:1026E000263194B400B148218D2D000001A00008CE
72914 +:1026F000000000008F85003400A710219385003C66
72915 +:10270000AF82003402251821A383003C951F00BC32
72916 +:102710000226282137F91000A51900BC5240FF926B
72917 +:10272000AF850060246A0004A38A003C950900BCC0
72918 +:1027300024A40004AF84006035322000A51200BC40
72919 +:102740000A001D54000020218F8600602CC800055F
72920 +:102750001500FF609783005C3065FFFF00C5C8234C
72921 +:102760002F2F000511E00003306400FF24CDFFFC93
72922 +:1027700031A400FF8F8900648F920034113200046D
72923 +:10278000389F000133EC0001158001380000000083
72924 +:102790008F840038908700D434E60010A08600D4DF
72925 +:1027A0008F8500388F8600609783005CACA000ECBA
72926 +:1027B0000A001D2F306EFFFF8CB500848CB400849E
72927 +:1027C0003C04100002A7302400068940328E007FAE
72928 +:1027D000022E8025020410253C08800024050001FB
72929 +:1027E00002602021240600010E0019A9AD02083064
72930 +:1027F0000A001CC38F8500388C8200EC1222FE7EFA
72931 +:102800000260202124090005A38900680E001A4AED
72932 +:102810002411FFFF1451FE782404FFFF0A001D5508
72933 +:102820002403FFFF8F8F004C8F8800388DF8000045
72934 +:10283000AD1800888DE70010AD0700988F87006005
72935 +:102840000A001DB78F8600542406FFFF118600057D
72936 +:10285000000000000E001B4C026020210A001D8FAA
72937 +:102860000040A0210E001AD1026020210A001D8F15
72938 +:102870000040A0218F90004C3C0208008C4231B0F7
72939 +:102880008E110010322C3FFF0182282B10A0000C6B
72940 +:10289000240BFF808F85005090A3000D01637024EE
72941 +:1028A00031CA00FF1140000702602021001143825D
72942 +:1028B000310600032418000110D8010600000000B2
72943 +:1028C000026020212403000D0E001A4AA383006831
72944 +:1028D000004020218F8500380A001D320080A02191
72945 +:1028E0008F90004C3C0A08008D4A31B08F85005013
72946 +:1028F0008E0400100000A0218CB1001430823FFF34
72947 +:10290000004A602B8CB200205180FFEE0260202133
72948 +:1029100090B8000D240BFF800178702431C300FFB4
72949 +:102920005060FFE80260202100044382310600036A
72950 +:1029300014C0FFE40260202194BF001C8F9900386E
72951 +:102940008E060028A73F00E88CAF0010022F20233E
72952 +:1029500014C4013A026020218F83005400C368210F
72953 +:10296000022D382B14E00136240200188F8A00440F
72954 +:102970008F820030024390218D4B00100163702341
72955 +:10298000AD4E0010AD5200208C4C00740192282BEB
72956 +:1029900014A0015F026020218F8400508E08002463
72957 +:1029A0008C86002411060007026020212419001CD7
72958 +:1029B0000E001A4AA3990068240FFFFF104FFFC5AD
72959 +:1029C0002404FFFF8F8400448C87002424FF00012F
72960 +:1029D000AC9F00241251012F8F8D00308DB10074F7
72961 +:1029E0001232012C3C0B00808E0E000001CB5024D3
72962 +:1029F00015400075000000008E0300142411FFFF35
72963 +:102A0000107100073C0808003C0608008CC6319095
72964 +:102A100000C8C0241300015202602021A380006876
72965 +:102A20008E0300003C19000100792024108000135F
72966 +:102A30003C1F0080007FA02416800009020028218E
72967 +:102A4000026020212411001A0E001A4AA391006886
72968 +:102A50002407FFFF1047FF9F2404FFFF02002821E7
72969 +:102A6000026020210E001A6A240600012410FFFFD4
72970 +:102A70001050FF982404FFFF241400018F8D0044A0
72971 +:102A8000026020210280302195A900342405000134
72972 +:102A9000253200010E0019A9A5B200340000202142
72973 +:102AA0008F8500380A001D320080A0218F90004CD5
72974 +:102AB0003C1408008E9431B08E07001030E53FFFC3
72975 +:102AC00000B4C82B132000618F8600502412FF80B1
72976 +:102AD00090C9000D0249682431A400FF5080005CB9
72977 +:102AE000026020218F8C00541180000700078B8228
72978 +:102AF0008F8500388F82FCC094BF0080944A000A02
72979 +:102B0000515F00F78F8600403227000314E0006415
72980 +:102B100000000000920E000211C000D8000000006A
72981 +:102B20008E0B0024156000D902602021920400035E
72982 +:102B300024190002308500FF14B90005308900FF18
72983 +:102B40008F940054128000EA240D002C308900FF7D
72984 +:102B5000392C00102D8400012D3200010244302553
72985 +:102B6000020028210E001A6A026020212410FFFFB3
72986 +:102B7000105000BF8F8500388F830054106000D341
72987 +:102B8000240500013C0A08008D4A318C0143F82BD2
72988 +:102B900017E000B22402002D02602021000028214D
72989 +:102BA0000E0019A9240600018F85003800001821A5
72990 +:102BB0000A001D320060A0210E0018750000000000
72991 +:102BC0000A001DF800000000AC8000200A001E78FA
72992 +:102BD0008E03001400002821026020210E0019A994
72993 +:102BE000240600010A001CC38F8500380A001DB7A7
72994 +:102BF0008F8800388CAA00848CAC00843C031000C1
72995 +:102C00000147F824001F91403189007F024968255F
72996 +:102C100001A32825ACC50830910700012405000157
72997 +:102C2000026020210E0019A930E600010A001CC331
72998 +:102C30008F850038938F00482403FFFD0A001D3460
72999 +:102C4000AF8F00600A001D342403FFFF02602021C3
73000 +:102C50002410000D0E001A4AA390006800401821AD
73001 +:102C60008F8500380A001D320060A0210E00187503
73002 +:102C7000000000009783005C8F86006000402021E8
73003 +:102C80003070FFFF00D010232C4A00051140FE11C8
73004 +:102C90008F850038ACA400EC0A001D2F306EFFFFBA
73005 +:102CA00090CF000D31E300085460FFA192040003AF
73006 +:102CB00002602021240200100E001A4AA38200683C
73007 +:102CC0002403FFFF5443FF9A920400030A001F12DB
73008 +:102CD0008F85003890A4000D308F000811E000951A
73009 +:102CE0008F990054572000A6026020218E1F000CEF
73010 +:102CF0008CB4002057F40005026020218E0D0008DE
73011 +:102D00008CA7002411A7003A026020212402002091
73012 +:102D1000A38200680E001A4A2412FFFF1052FEED33
73013 +:102D20002404FFFF8F9F00442402FFF73C14800E11
73014 +:102D300093EA000D2419FF803C03800001423824EF
73015 +:102D4000A3E7000D8F9F00303C0908008D2931ACAE
73016 +:102D50008F8C006C97F200788F870044012C302113
73017 +:102D6000324D7FFF000D204000C4782131E5007F07
73018 +:102D700000B4C02101F94024AC68002CA711000068
73019 +:102D80008CEB0028256E0001ACEE00288CEA002CAC
73020 +:102D90008E02002C01426021ACEC002C8E09002C2C
73021 +:102DA000ACE900308E120014ACF2003494ED003A1D
73022 +:102DB00025A40001A4E4003A97E600783C1108003D
73023 +:102DC0008E3131B024C3000130707FFF1211005CDE
73024 +:102DD000006030218F8F0030026020212405000127
73025 +:102DE0000E001934A5E600780A001EA1000020217B
73026 +:102DF0008E0900142412FFFF1132006B8F8A0038F5
73027 +:102E00008E0200188D4C00D0144C00650260202109
73028 +:102E10008E0B00248CAE0028116E005B2402002172
73029 +:102E20000E001A4AA38200681452FFBE2404FFFF5A
73030 +:102E30008F8500380A001D320080A0212402001F67
73031 +:102E40000E001A4AA38200682409FFFF1049FEA160
73032 +:102E50002404FFFF0A001E548F83005402602021C7
73033 +:102E60000E001A4AA38200681450FF508F85003864
73034 +:102E70002403FFFF0A001D320060A0218CD800242B
73035 +:102E80008E0800241118FF29026020210A001F2744
73036 +:102E90002402000F8E0900003C05008001259024CB
73037 +:102EA0001640FF492402001A026020210E001A4A2F
73038 +:102EB000A3820068240CFFFF144CFECF2404FFFF04
73039 +:102EC0008F8500380A001D320080A0210E001934C1
73040 +:102ED000026020218F8500380A001EE500001821BD
73041 +:102EE0002403FFFD0060A0210A001D32AF860060B0
73042 +:102EF000026020210E001A4AA38D00682403FFFF00
73043 +:102F00001043FF588F8500380A001ECC920400033E
73044 +:102F10002418001D0E001A4AA39800682403FFFF1E
73045 +:102F20001443FE9D2404FFFF8F8500380A001D32E4
73046 +:102F30000080A021026020210A001F3D24020024FD
73047 +:102F4000240880000068C024330BFFFF000B73C20D
73048 +:102F500031D000FF001088270A001F6E001133C017
73049 +:102F6000240F001B0E001A4AA38F00681451FEACF8
73050 +:102F70002404FFFF8F8500380A001D320080A02145
73051 +:102F80000A001F3D240200278E0600288CA3002C77
73052 +:102F900010C30008026020210A001F812402001FC4
73053 +:102FA0000A001F812402000E026020210A001F81F6
73054 +:102FB000240200258E04002C1080000D8F8F00301D
73055 +:102FC0008DE800740104C02B5700000C0260202122
73056 +:102FD0008CB900140086A0210334282B10A0FF52C6
73057 +:102FE0008F9F0044026020210A001F8124020022DA
73058 +:102FF000026020210A001F81240200230A001F8191
73059 +:103000002402002627BDFFD8AFB3001CAFB10014C7
73060 +:10301000AFBF0020AFB20018AFB000103C0280007C
73061 +:103020008C5201408C4B01483C048000000B8C0208
73062 +:10303000322300FF317300FF8C8501B804A0FFFE2E
73063 +:1030400034900180AE1200008C8701442464FFF0AC
73064 +:10305000240600022C830013AE070004A61100080A
73065 +:10306000A206000BAE1300241060004F8FBF00209B
73066 +:10307000000448803C0A0801254A9534012A402171
73067 +:103080008D04000000800008000000003C030800E0
73068 +:103090008C6331A831693FFF00099980007280215B
73069 +:1030A000021370212405FF80264D0100264C00806C
73070 +:1030B0003C02800031B1007F3198007F31CA007F2F
73071 +:1030C0003C1F800A3C1980043C0F800C01C5202461
73072 +:1030D00001A5302401853824014F1821AC46002475
73073 +:1030E000023F402103194821AC470090AC4400281E
73074 +:1030F000AF830044AF880038AF8900300E0019005C
73075 +:10310000016080213C0380008C6B01B80560FFFEEC
73076 +:103110008F8700448F8600383465018090E8000D69
73077 +:10312000ACB20000A4B0000600082600000416039C
73078 +:1031300000029027001227C21080008124C200885C
73079 +:10314000241F6082A4BF0008A0A000052402000282
73080 +:10315000A0A2000B8F8B0030000424003C08270045
73081 +:1031600000889025ACB20010ACA00014ACA00024E4
73082 +:10317000ACA00028ACA0002C8D6900382413FF807F
73083 +:10318000ACA9001890E3000D02638024320500FF13
73084 +:1031900010A000058FBF002090ED000D31AC007F26
73085 +:1031A000A0EC000D8FBF00208FB3001C8FB2001861
73086 +:1031B0008FB100148FB000103C0A10003C0E80004C
73087 +:1031C00027BD002803E00008ADCA01B8265F010052
73088 +:1031D0002405FF8033F8007F3C06800003E5782457
73089 +:1031E0003C19800A03192021ACCF0024908E00D412
73090 +:1031F00000AE682431AC00FF11800024AF84003899
73091 +:10320000248E008895CD00123C0C08008D8C31A8CE
73092 +:1032100031AB3FFF01924821000B5180012A402130
73093 +:1032200001052024ACC400283107007F3C06800C37
73094 +:1032300000E620219083000D00A31024304500FFFC
73095 +:1032400010A0FFD8AF8400449098000D330F0010F9
73096 +:1032500015E0FFD58FBF00200E0019000000000010
73097 +:103260003C0380008C7901B80720FFFE00000000BD
73098 +:10327000AE1200008C7F0144AE1F0004A6110008AE
73099 +:1032800024110002A211000BAE1300243C1308010C
73100 +:10329000927396F0327000015200FFC38FBF00207E
73101 +:1032A0000E002146024020210A0020638FBF00202B
73102 +:1032B0003C1260008E452C083C03F0033462FFFF93
73103 +:1032C00000A2F824AE5F2C088E582C083C1901C0CF
73104 +:1032D00003199825AE532C080A0020638FBF0020E5
73105 +:1032E000264D010031AF007F3C10800A240EFF8084
73106 +:1032F00001F0282101AE60243C0B8000AD6C00245D
73107 +:103300001660FFA8AF85003824110003A0B100FCAF
73108 +:103310000A0020638FBF002026480100310A007F89
73109 +:103320003C0B800A2409FF80014B30210109202435
73110 +:103330003C078000ACE400240A002062AF8600381D
73111 +:10334000944E0012320C3FFF31CD3FFF15ACFF7D94
73112 +:10335000241F608290D900D42418FF800319782498
73113 +:1033600031EA00FF1140FF7700000000240700044D
73114 +:10337000A0C700FC8F870044241160842406000D40
73115 +:10338000A4B10008A0A600050A00204D24020002F6
73116 +:103390003C040001248496DC24030014240200FE73
73117 +:1033A0003C010800AC2431EC3C010800AC2331E8BE
73118 +:1033B0003C010801A42296F83C040801248496F8F4
73119 +:1033C0000000182100643021A0C300042463000120
73120 +:1033D0002C6500FF54A0FFFC006430213C0708006E
73121 +:1033E00024E7010003E00008AF87007800A058211F
73122 +:1033F000008048210000102114A00012000050217C
73123 +:103400000A002142000000003C010801A42096F8B7
73124 +:103410003C05080194A596F88F8200783C0C0801C1
73125 +:10342000258C96F800E2182100AC2021014B302BAE
73126 +:10343000A089000400001021A460000810C0003919
73127 +:10344000010048218F8600780009384000E94021BA
73128 +:103450000008388000E6282190A8000B90B9000AE7
73129 +:103460000008204000881021000218800066C0215A
73130 +:10347000A319000A8F85007800E5782191EE000AF3
73131 +:1034800091E6000B000E684001AE6021000C208028
73132 +:1034900000851021A046000B3C030801906396F2C2
73133 +:1034A000106000222462FFFF8F8300383C01080176
73134 +:1034B000A02296F2906C00FF118000040000000032
73135 +:1034C000906E00FF25CDFFFFA06D00FF3C190801A5
73136 +:1034D000973996F8272300013078FFFF2F0F00FF60
73137 +:1034E00011E0FFC9254A00013C010801A42396F818
73138 +:1034F0003C05080194A596F88F8200783C0C0801E1
73139 +:10350000258C96F800E2182100AC2021014B302BCD
73140 +:10351000A089000400001021A460000814C0FFC9A5
73141 +:103520000100482103E000080000000003E000085B
73142 +:103530002402000227BDFFE0248501002407FF804C
73143 +:10354000AFB00010AFBF0018AFB1001400A718242F
73144 +:103550003C10800030A4007F3C06800A00862821B1
73145 +:103560008E110024AE03002490A200FF1440000836
73146 +:10357000AF850038A0A000098FBF0018AE1100244D
73147 +:103580008FB100148FB0001003E0000827BD0020A9
73148 +:1035900090A900FD90A800FF312400FF0E0020F448
73149 +:1035A000310500FF8F8500388FBF0018A0A00009EB
73150 +:1035B000AE1100248FB100148FB0001003E000089A
73151 +:1035C00027BD002027BDFFD0AFB20020AFB1001C47
73152 +:1035D000AFB00018AFBF002CAFB40028AFB30024C9
73153 +:1035E0003C0980009533011635320C00952F011AE5
73154 +:1035F0003271FFFF023280218E08000431EEFFFF9E
73155 +:10360000248B0100010E6821240CFF8025A5FFFFFB
73156 +:10361000016C50243166007F3C07800AAD2A0024EB
73157 +:1036200000C73021AF850074AF8800703C010801ED
73158 +:10363000A02096F190C300090200D02100809821BB
73159 +:10364000306300FF2862000510400048AF86003854
73160 +:10365000286400021480008E24140001240D00054B
73161 +:103660003C010801A02D96D590CC00FD3C0108013D
73162 +:10367000A02096D63C010801A02096D790CB000A46
73163 +:10368000240AFF80318500FF014B4824312700FFC9
73164 +:1036900010E0000C000058213C12800836510080D8
73165 +:1036A0008E2F00308CD0005C01F0702305C0018E9D
73166 +:1036B0008F87007090D4000A3284007FA0C4000A73
73167 +:1036C0008F8600383C118008363000808E0F003025
73168 +:1036D0008F87007000EF702319C000EE000000001B
73169 +:1036E00090D4000924120002328400FF1092024795
73170 +:1036F000000000008CC2005800E2F82327F9FFFF09
73171 +:103700001B2001300000000090C5000924080004BF
73172 +:1037100030A300FF10680057240A00013C01080193
73173 +:10372000A02A96D590C900FF252700013C01080179
73174 +:10373000A02796D43C030801906396D52406000583
73175 +:103740001066006A2C780005130000C40000902168
73176 +:103750000003F8803C0408012484958003E4C82118
73177 +:103760008F25000000A0000800000000241800FFC2
73178 +:103770001078005C0000000090CC000A90CA00099C
73179 +:103780003C080801910896F13187008000EA48253D
73180 +:103790003C010801A02996DC90C500FD3C140801FD
73181 +:1037A000929496F2311100013C010801A02596DDAA
73182 +:1037B00090DF00FE3C010801A03F96DE90D200FFA2
73183 +:1037C0003C010801A03296DF8CD900543C0108016D
73184 +:1037D000AC3996E08CD000583C010801AC3096E43E
73185 +:1037E0008CC3005C3C010801AC3496EC3C01080140
73186 +:1037F000AC2396E8162000088FBF002C8FB4002859
73187 +:103800008FB300248FB200208FB1001C8FB000183E
73188 +:1038100003E0000827BD00303C1180009624010E13
73189 +:103820000E000FD43094FFFF3C0B08018D6B96F413
73190 +:103830000260382102802821AE2B01803C13080150
73191 +:103840008E7396D401602021240600830E00102F71
73192 +:10385000AFB300108FBF002C8FB400288FB30024AB
73193 +:103860008FB200208FB1001C8FB0001803E0000859
73194 +:1038700027BD00303C1808008F1831FC270F0001CD
73195 +:103880003C010800AC2F31FC0A0021D700000000E9
73196 +:103890001474FFB900000000A0C000FF3C05080040
73197 +:1038A0008CA531E43C0308008C6331E03C02080045
73198 +:1038B0008C4232048F99003834A80001241F000282
73199 +:1038C0003C010801AC2396F43C010801A02896F0C5
73200 +:1038D0003C010801A02296F3A33F00090A002190B1
73201 +:1038E0008F8600380E002146000000000A0021D714
73202 +:1038F0008F8600383C1F080193FF96D424190001DD
73203 +:1039000013F902298F8700703C100801921096D895
73204 +:103910003C06080190C696D610C000050200A02102
73205 +:103920003C040801908496D9109001E48F870078B8
73206 +:10393000001088408F9F0078023048210009C8801D
73207 +:10394000033F702195D80008270F0001A5CF00087C
73208 +:103950003C040801908496D93C05080190A596D6B0
73209 +:103960000E0020F4000000008F8700780230202134
73210 +:103970000004308000C720218C8500048F820074F1
73211 +:1039800000A2402305020006AC8200048C8A0000DD
73212 +:103990008F830070014310235C400001AC83000062
73213 +:1039A0008F86003890CB00FF2D6C00025580002DD3
73214 +:1039B000241400010230F821001F40800107282153
73215 +:1039C00090B9000B8CAE00040019C0400319782197
73216 +:1039D000000F1880006710218C4D000001AE882375
73217 +:1039E0002630FFFF5E00001F241400018C440004F9
73218 +:1039F0008CAA0000008A482319200019240E000414
73219 +:103A00003C010801A02E96D590AD000B8CAB0004B4
73220 +:103A1000000D8840022D80210010108000471021E9
73221 +:103A20008C44000401646023058202009443000872
73222 +:103A300090DF00FE90B9000B33E500FF54B900049D
73223 +:103A40000107A021A0D400FE8F8700780107A021E4
73224 +:103A50009284000B0E0020F4240500018F860038AC
73225 +:103A600024140001125400962E500001160000424A
73226 +:103A70003C08FFFF241900021659FF3F0000000018
73227 +:103A8000A0C000FF8F860038A0D200090A0021D70D
73228 +:103A90008F86003890C700092404000230E300FF3D
73229 +:103AA0001064016F24090004106901528F880074AA
73230 +:103AB0008CCE0054010E682325B10001062001754B
73231 +:103AC000241800043C010801A03896D53C010801E7
73232 +:103AD000A02096D490D400FD90D200FF2E4F00027B
73233 +:103AE00015E0FF14328400FF000438408F8900780D
73234 +:103AF00090DF00FF00E41021000220800089C8212F
73235 +:103B00002FE500029324000B14A0FF0A24070002F3
73236 +:103B100000041840006480210010588001692821A9
73237 +:103B20008CAC0004010C50230540FF020000000093
73238 +:103B30003C030801906396D614600005246F0001D1
73239 +:103B40003C010801A02496D93C010801A02796D782
73240 +:103B50003C010801A02F96D690CE00FF24E700017B
73241 +:103B600031CD00FF01A7882B1220FFE990A4000BA4
73242 +:103B70000A0021C6000000003C0508018CA596D46F
73243 +:103B80003C12000400A8F82413F2000624020005E9
73244 +:103B90003C090801912996D5152000022402000352
73245 +:103BA000240200053C010801A02296F190C700FF05
73246 +:103BB00014E0012024020002A0C200090A0021D75B
73247 +:103BC0008F86003890CC00FF1180FEDA240A0001B5
73248 +:103BD0008F8C00748F890078240F00030180682186
73249 +:103BE0001160001E240E0002000540400105A021C6
73250 +:103BF00000142080008990218E51000401918023BF
73251 +:103C00000600FECC000000003C020801904296D65F
73252 +:103C100014400005245800013C010801A02A96D751
73253 +:103C20003C010801A02596D93C010801A03896D690
73254 +:103C300090DF00FF010510210002C88033E500FF7E
73255 +:103C4000254A00010329202100AA402B1500FEB9B6
73256 +:103C50009085000B1560FFE50005404000054040E1
73257 +:103C600001051821000310803C010801A02A96D408
73258 +:103C70003C010801A02596D8004918218C64000455
73259 +:103C800000E4F82327F9FFFF1F20FFE900000000F0
73260 +:103C90008C63000000E358230560013A01A38823E8
73261 +:103CA00010E301170184C0231B00FEA200000000E6
73262 +:103CB0003C010801A02E96D50A002305240B000123
73263 +:103CC000240E0004A0CE00093C0D08008DAD31F893
73264 +:103CD0008F86003825A200013C010800AC2231F893
73265 +:103CE0000A0021D7000000008CD9005C00F9C02335
73266 +:103CF0001F00FE7B000000008CDF005C10FFFF65F2
73267 +:103D00008F8400748CC3005C008340232502000173
73268 +:103D10001C40FF60000000008CC9005C248700018B
73269 +:103D200000E9282B10A0FE943C0D80008DAB01040F
73270 +:103D30003C0C0001016C50241140FE8F2402001045
73271 +:103D40003C010801A02296F10A0021D700000000E2
73272 +:103D50008F9100748F86003826220001ACC2005C6F
73273 +:103D60000A002292241400018F8700382404FF8067
73274 +:103D70000000882190E9000A241400010124302564
73275 +:103D8000A0E6000A3C05080190A596D63C0408016F
73276 +:103D9000908496D90E0020F4000000008F86003831
73277 +:103DA0008F85007890C800FD310700FF0007404074
73278 +:103DB0000107F821001FC0800305C8219323000BD1
73279 +:103DC000A0C300FD8F8500788F8600380305602131
73280 +:103DD000918F000B000F704001CF6821000D808093
73281 +:103DE000020510218C4B0000ACCB00548D840004E4
73282 +:103DF0008F83007400645023194000022482000164
73283 +:103E00002462000101074821ACC2005C0009308037
73284 +:103E100000C5402100E02021240500010E0020F40F
73285 +:103E20009110000B8F86003890C500FF10A0FF0C8A
73286 +:103E3000001070408F85007801D06821000D10803F
73287 +:103E4000004558218D6400008F8C0074018450233C
73288 +:103E50002547000104E0FF02263100013C03080170
73289 +:103E6000906396D62E2F0002247800013C010801B1
73290 +:103E7000A03896D63C010801A03496D711E0FEF890
73291 +:103E8000020038210A002365000740408F84003873
73292 +:103E90008F8300748C85005800A340230502FE9A8E
73293 +:103EA000AC8300580A00223B000000003C070801D8
73294 +:103EB00090E796F2240200FF10E200BE8F860038E1
73295 +:103EC0003C110801963196FA3C030801246396F8E8
73296 +:103ED000262500013230FFFF30ABFFFF02036021D7
73297 +:103EE0002D6A00FF1540008D918700043C010801F8
73298 +:103EF000A42096FA8F88003800074840012728211F
73299 +:103F0000911800FF000530802405000127140001EE
73300 +:103F1000A11400FF3C120801925296F28F8800789B
73301 +:103F20008F8E0070264F000100C820213C0108013F
73302 +:103F3000A02F96F2AC8E00008F8D0074A48500082F
73303 +:103F4000AC8D00043C030801906396D414600077A4
73304 +:103F5000000090213C010801A02596D4A087000B09
73305 +:103F60008F8C007800CC5021A147000A8F82003846
73306 +:103F7000A04700FD8F840038A08700FE8F860038A0
73307 +:103F80008F9F0070ACDF00548F990074ACD900583B
73308 +:103F90008F8D00780127C02100185880016DA02165
73309 +:103FA000928F000A000F704001CF18210003888013
73310 +:103FB000022D8021A207000B8F8600780166602108
73311 +:103FC000918A000B000A1040004A2021000428803A
73312 +:103FD00000A64021A107000A3C07800834E90080C0
73313 +:103FE0008D2200308F860038ACC2005C0A0022921D
73314 +:103FF0002414000190CA00FF1540FEAD8F880074A4
73315 +:10400000A0C400090A0021D78F860038A0C000FD97
73316 +:104010008F98003824060001A30000FE3C0108012F
73317 +:10402000A02696D53C010801A02096D40A0021C6FE
73318 +:104030000000000090CB00FF3C040801908496F340
73319 +:10404000316C00FF0184502B1540000F2402000347
73320 +:1040500024020004A0C200090A0021D78F8600387C
73321 +:1040600090C3000A2410FF8002035824316C00FF23
73322 +:104070001180FDC1000000003C010801A02096D580
73323 +:104080000A0021C600000000A0C200090A0021D7D2
73324 +:104090008F86003890D4000A2412FF8002544824EE
73325 +:1040A000312800FF1500FFF4240200083C0108013C
73326 +:1040B000A02296F10A0021D70000000000108840DD
73327 +:1040C0008F8B0070023018210003688001A7202127
73328 +:1040D000AC8B00008F8A0074240C0001A48C0008B3
73329 +:1040E000AC8A00043C05080190A596D62402000184
73330 +:1040F00010A2FE1E24A5FFFF0A0022519084000B8F
73331 +:104100000184A0231A80FD8B000000003C010801FF
73332 +:10411000A02E96D50A002305240B00013C010801BE
73333 +:10412000A42596FA0A0023B78F880038240B0001D3
73334 +:10413000106B00228F9800388F85003890BF00FFE9
73335 +:1041400033F900FF1079002B000000003C1F08012C
73336 +:1041500093FF96D8001FC840033FC0210018A080DD
73337 +:104160000288782191EE000AA08E000A8F8D0078D7
73338 +:104170003C030801906396D800CD88210A0023DD16
73339 +:10418000A223000B263000010600003101A4902379
73340 +:104190000640002B240200033C010801A02F96D505
73341 +:1041A0000A002305240B00018F8900380A00223BF6
73342 +:1041B000AD2700540A00229124120001931400FD3F
73343 +:1041C000A094000B8F8800388F8F0078910E00FE2E
73344 +:1041D00000CF6821A1AE000A8F910038A22700FD10
73345 +:1041E0008F8300708F900038AE0300540A0023DEE6
73346 +:1041F0008F8D007890B000FEA090000A8F8B003861
73347 +:104200008F8C0078916A00FD00CC1021A04A000B31
73348 +:104210008F840038A08700FE8F8600748F85003859
73349 +:10422000ACA600580A0023DE8F8D007894B80008F1
73350 +:10423000ACA40004030378210A002285A4AF00087F
73351 +:104240003C010801A02296D50A0021C6000000000A
73352 +:1042500090CF0009240D000431EE00FF11CDFD8543
73353 +:10426000240200013C010801A02296D50A0021C6C3
73354 +:1042700000000000080033440800334408003420E4
73355 +:10428000080033F4080033D8080033280800332826
73356 +:10429000080033280800334C8008010080080080A3
73357 +:1042A000800800005F865437E4AC62CC50103A4579
73358 +:1042B00036621985BF14C0E81BC27A1E84F4B55655
73359 +:1042C000094EA6FE7DDA01E7C04D748108005A74DC
73360 +:1042D00008005AB808005A5C08005A5C08005A5C8A
73361 +:1042E00008005A5C08005A7408005A5C08005A5CBE
73362 +:1042F00008005AC008005A5C080059D408005A5CEB
73363 +:1043000008005A5C08005AC008005A5C08005A5C51
73364 +:1043100008005A5C08005A5C08005A5C08005A5CA5
73365 +:1043200008005A5C08005A5C08005A5C08005A5C95
73366 +:1043300008005A9408005A5C08005A9408005A5C15
73367 +:1043400008005A5C08005A5C08005A9808005A9401
73368 +:1043500008005A5C08005A5C08005A5C08005A5C65
73369 +:1043600008005A5C08005A5C08005A5C08005A5C55
73370 +:1043700008005A5C08005A5C08005A5C08005A5C45
73371 +:1043800008005A5C08005A5C08005A5C08005A5C35
73372 +:1043900008005A5C08005A5C08005A5C08005A5C25
73373 +:1043A00008005A9808005A9808005A5C08005A9861
73374 +:1043B00008005A5C08005A5C08005A5C08005A5C05
73375 +:1043C00008005A5C08005A5C08005A5C08005A5CF5
73376 +:1043D00008005A5C08005A5C08005A5C08005A5CE5
73377 +:1043E00008005A5C08005A5C08005A5C08005A5CD5
73378 +:1043F00008005A5C08005A5C08005A5C08005A5CC5
73379 +:1044000008005A5C08005A5C08005A5C08005A5CB4
73380 +:1044100008005A5C08005A5C08005A5C08005A5CA4
73381 +:1044200008005A5C08005A5C08005A5C08005A5C94
73382 +:1044300008005A5C08005A5C08005A5C08005A5C84
73383 +:1044400008005A5C08005A5C08005A5C08005A5C74
73384 +:1044500008005A5C08005A5C08005A5C08005A5C64
73385 +:1044600008005A5C08005A5C08005A5C08005A5C54
73386 +:1044700008005A5C08005A5C08005A5C08005A5C44
73387 +:1044800008005A5C08005A5C08005A5C08005A5C34
73388 +:1044900008005A5C08005A5C08005A5C08005A5C24
73389 +:1044A00008005A5C08005A5C08005A5C08005A5C14
73390 +:1044B00008005A5C08005A5C08005A5C08005A5C04
73391 +:1044C00008005A5C08005A5C08005A5C08005ADC74
73392 +:1044D0000800782C08007A900800783808007628C0
73393 +:1044E00008007838080078C4080078380800762872
73394 +:1044F0000800762808007628080076280800762824
73395 +:104500000800762808007628080076280800762813
73396 +:1045100008007628080078580800784808007628AF
73397 +:1045200008007628080076280800762808007628F3
73398 +:1045300008007628080076280800762808007628E3
73399 +:1045400008007628080076280800762808007848B1
73400 +:10455000080082FC08008188080082C40800818865
73401 +:104560000800829408008070080081880800818813
73402 +:1045700008008188080081880800818808008188F7
73403 +:1045800008008188080081880800818808008188E7
73404 +:104590000800818808008188080081B008008D34F7
73405 +:1045A00008008E9008008E70080088D808008D4C96
73406 +:1045B0000A00012400000000000000000000000DBF
73407 +:1045C000747061362E322E31620000000602010145
73408 +:1045D00000000000000000000000000000000000DB
73409 +:1045E00000000000000000000000000000000000CB
73410 +:1045F00000000000000000000000000000000000BB
73411 +:1046000000000000000000000000000000000000AA
73412 +:10461000000000000000000000000000000000009A
73413 +:10462000000000000000000000000000000000008A
73414 +:10463000000000000000000000000000000000007A
73415 +:104640000000000010000003000000000000000D4A
73416 +:104650000000000D3C020800244217203C03080023
73417 +:1046600024632A10AC4000000043202B1480FFFD7F
73418 +:10467000244200043C1D080037BD2FFC03A0F0219C
73419 +:104680003C100800261004903C1C0800279C1720B2
73420 +:104690000E000262000000000000000D2402FF80F6
73421 +:1046A00027BDFFE000821024AFB00010AF42002011
73422 +:1046B000AFBF0018AFB10014936500043084007FD1
73423 +:1046C000034418213C0200080062182130A5002094
73424 +:1046D000036080213C080111277B000814A0000220
73425 +:1046E0002466005C2466005892020004974301048B
73426 +:1046F000920400043047000F3063FFFF3084004015
73427 +:10470000006728231080000900004821920200055C
73428 +:1047100030420004104000050000000010A000031B
73429 +:104720000000000024A5FFFC2409000492020005FB
73430 +:1047300030420004104000120000000010A00010E1
73431 +:10474000000000009602000200A72021010440257D
73432 +:104750002442FFFEA7421016920300042402FF80A9
73433 +:1047600000431024304200FF104000033C020400CC
73434 +:104770000A000174010240258CC20000AF421018EB
73435 +:104780008F4201780440FFFE2402000AA742014044
73436 +:1047900096020002240400093042000700021023A0
73437 +:1047A00030420007A7420142960200022442FFFE67
73438 +:1047B000A7420144A740014697420104A74201488D
73439 +:1047C0008F420108304200205040000124040001C3
73440 +:1047D00092020004304200101440000234830010A2
73441 +:1047E00000801821A743014A0000000000000000DB
73442 +:1047F0000000000000000000AF48100000000000B2
73443 +:104800000000000000000000000000008F421000C7
73444 +:104810000441FFFE3102FFFF1040000700000000CE
73445 +:1048200092020004304200401440000300000000E7
73446 +:104830008F421018ACC20000960200063042FFFF03
73447 +:10484000244200020002104300021040036288214B
73448 +:10485000962200001120000D3044FFFF00A7102118
73449 +:104860008F8300388F45101C0002108200021080D8
73450 +:1048700000431021AC45000030A6FFFF0E00058D5F
73451 +:1048800000052C0200402021A62200009203000413
73452 +:104890002402FF8000431024304200FF1040001F1C
73453 +:1048A0000000000092020005304200021040001B90
73454 +:1048B000000000009742100C2442FFFEA742101691
73455 +:1048C000000000003C02040034420030AF421000FF
73456 +:1048D00000000000000000000000000000000000D8
73457 +:1048E0008F4210000441FFFE000000009742100CB0
73458 +:1048F0008F45101C3042FFFF24420030000210821E
73459 +:1049000000021080005B1021AC45000030A6FFFFC4
73460 +:104910000E00058D00052C02A62200009604000260
73461 +:10492000248400080E0001E93084FFFF974401044D
73462 +:104930000E0001F73084FFFF8FBF00188FB1001405
73463 +:104940008FB000103C02100027BD002003E00008DB
73464 +:10495000AF4201783084FFFF308200078F8500244A
73465 +:1049600010400002248300073064FFF800A41021E7
73466 +:1049700030421FFF03421821247B4000AF850028EE
73467 +:10498000AF82002403E00008AF4200843084FFFFC0
73468 +:104990003082000F8F85002C8F860034104000027B
73469 +:1049A0002483000F3064FFF000A410210046182B70
73470 +:1049B000AF8500300046202314600002AF82002C37
73471 +:1049C000AF84002C8F82002C340480000342182115
73472 +:1049D00000641821AF83003803E00008AF42008074
73473 +:1049E0008F820014104000088F8200048F82FFDC49
73474 +:1049F000144000058F8200043C02FFBF3442FFFFD9
73475 +:104A0000008220248F82000430430006240200022A
73476 +:104A10001062000F3C0201012C62000350400005AF
73477 +:104A2000240200041060000F3C0200010A00023062
73478 +:104A30000000000010620005240200061462000C51
73479 +:104A40003C0201110A000229008210253C020011DB
73480 +:104A500000821025AF421000240200010A0002303B
73481 +:104A6000AF82000C00821025AF421000AF80000C16
73482 +:104A700000000000000000000000000003E000084B
73483 +:104A8000000000008F82000C1040000400000000B5
73484 +:104A90008F4210000441FFFE0000000003E0000808
73485 +:104AA000000000008F8200102443F800000231C291
73486 +:104AB00024C2FFF02C6303011060000300021042C7
73487 +:104AC0000A000257AC8200008F85001800C5102B29
73488 +:104AD0001440000B0000182100C5102324470001DA
73489 +:104AE0008F82001C00A210212442FFFF0046102BE1
73490 +:104AF000544000042402FFFF0A000257AC87000064
73491 +:104B00002402FFFF0A000260AC8200008C820000D9
73492 +:104B10000002194000621821000318800062182169
73493 +:104B2000000318803C0208002442175C0062182130
73494 +:104B300003E000080060102127BDFFD8AFBF0020B0
73495 +:104B4000AFB1001CAFB000183C0460088C8250006C
73496 +:104B50002403FF7F3C066000004310243442380CDD
73497 +:104B6000AC8250008CC24C1C3C1A80000002160221
73498 +:104B70003042000F10400007AF82001C8CC34C1C59
73499 +:104B80003C02001F3442FC0000621824000319C2DA
73500 +:104B9000AF8300188F420008275B400034420001B9
73501 +:104BA000AF420008AF8000243C02601CAF40008090
73502 +:104BB000AF4000848C4500088CC308083402800094
73503 +:104BC000034220212402FFF0006218243C020080EE
73504 +:104BD0003C010800AC2204203C025709AF84003895
73505 +:104BE00014620004AF850034240200010A0002921E
73506 +:104BF000AF820014AF8000148F42000038420001E1
73507 +:104C0000304200011440FFFC8F8200141040001657
73508 +:104C10000000000097420104104000058F8300004F
73509 +:104C2000146000072462FFFF0A0002A72C62000A3A
73510 +:104C30002C620010504000048F83000024620001A9
73511 +:104C4000AF8200008F8300002C62000A1440000332
73512 +:104C50002C6200070A0002AEAF80FFDC10400002A9
73513 +:104C600024020001AF82FFDC8F4301088F44010062
73514 +:104C700030622000AF83000410400008AF840010B1
73515 +:104C80003C0208008C42042C244200013C01080034
73516 +:104C9000AC22042C0A00058A3C0240003065020068
73517 +:104CA00014A0000324020F001482026024020D00ED
73518 +:104CB00097420104104002C83C02400030624000AC
73519 +:104CC000144000AD8F8200388C4400088F42017878
73520 +:104CD0000440FFFE24020800AF42017824020008CD
73521 +:104CE000A7420140A7400142974201048F8400047B
73522 +:104CF0003051FFFF30820001104000070220802168
73523 +:104D00002623FFFE240200023070FFFFA742014667
73524 +:104D10000A0002DBA7430148A74001463C02080005
73525 +:104D20008C42043C1440000D8F8300103082002020
73526 +:104D30001440000224030009240300010060202124
73527 +:104D40008F830010240209005062000134840004A3
73528 +:104D5000A744014A0A0002F60000000024020F00E6
73529 +:104D60001462000530820020144000062403000D68
73530 +:104D70000A0002F524030005144000022403000980
73531 +:104D800024030001A743014A3C0208008C4204208E
73532 +:104D90003C0400480E00020C004420250E000235A1
73533 +:104DA000000000008F82000C1040003E0000000058
73534 +:104DB0008F4210003C0300200043102410400039B3
73535 +:104DC0008F820004304200021040003600000000D4
73536 +:104DD000974210141440003300000000974210085E
73537 +:104DE0008F8800383042FFFF2442000600021882FC
73538 +:104DF0000003388000E83021304300018CC40000FB
73539 +:104E000010600004304200030000000D0A00033768
73540 +:104E100000E81021544000103084FFFF3C05FFFFE4
73541 +:104E200000852024008518260003182B0004102B71
73542 +:104E300000431024104000050000000000000000A6
73543 +:104E40000000000D00000000240002228CC20000BF
73544 +:104E50000A000336004520253883FFFF0003182B86
73545 +:104E60000004102B00431024104000050000000037
73546 +:104E7000000000000000000D000000002400022BD4
73547 +:104E80008CC200003444FFFF00E81021AC44000055
73548 +:104E90003C0208008C420430244200013C0108001E
73549 +:104EA000AC2204308F6200008F840038AF8200088B
73550 +:104EB0008C8300003402FFFF1462000F00001021F9
73551 +:104EC0003C0508008CA504543C0408008C84045064
73552 +:104ED00000B0282100B0302B008220210086202144
73553 +:104EE0003C010800AC2504543C010800AC240450EB
73554 +:104EF0000A000580240400088C8200003042010072
73555 +:104F00001040000F000010213C0508008CA5044C47
73556 +:104F10003C0408008C84044800B0282100B0302BE9
73557 +:104F200000822021008620213C010800AC25044C91
73558 +:104F30003C010800AC2404480A0005802404000851
73559 +:104F40003C0508008CA504443C0408008C84044003
73560 +:104F500000B0282100B0302B0082202100862021C3
73561 +:104F60003C010800AC2504443C010800AC2404408A
73562 +:104F70000A000580240400088F6200088F62000088
73563 +:104F800000021602304300F02402003010620005D7
73564 +:104F900024020040106200E08F8200200A00058891
73565 +:104FA0002442000114A000050000000000000000E1
73566 +:104FB0000000000D00000000240002568F4201781E
73567 +:104FC0000440FFFE000000000E00023D27A4001078
73568 +:104FD0001440000500408021000000000000000D8A
73569 +:104FE000000000002400025D8E0200001040000559
73570 +:104FF00000000000000000000000000D00000000A4
73571 +:10500000240002608F62000C0443000324020001AC
73572 +:105010000A00042EAE000000AE0200008F820038AD
73573 +:105020008C480008A20000078F65000C8F64000404
73574 +:1050300030A3FFFF0004240200852023308200FFFC
73575 +:105040000043102124420005000230832CC200815D
73576 +:10505000A605000A14400005A20400040000000098
73577 +:105060000000000D00000000240002788F85003849
73578 +:105070000E0005AB260400148F6200048F43010864
73579 +:10508000A60200083C02100000621824106000080C
73580 +:105090000000000097420104920300072442FFEC45
73581 +:1050A000346300023045FFFF0A0003C3A203000778
73582 +:1050B000974201042442FFF03045FFFF96060008A6
73583 +:1050C0002CC200135440000592030007920200070F
73584 +:1050D00034420001A20200079203000724020001EB
73585 +:1050E00010620005240200031062000B8F8200385A
73586 +:1050F0000A0003E030C6FFFF8F8200383C04FFFF48
73587 +:105100008C43000C0064182400651825AC43000C87
73588 +:105110000A0003E030C6FFFF3C04FFFF8C43001091
73589 +:105120000064182400651825AC43001030C6FFFF4A
73590 +:1051300024C2000200021083A20200058F830038FF
73591 +:10514000304200FF00021080004328218CA800009C
73592 +:105150008CA2000024030004000217021443001272
73593 +:1051600000000000974201043C03FFFF01031824E4
73594 +:105170003042FFFF004610232442FFFE006240251C
73595 +:10518000ACA8000092030005306200FF000210800E
73596 +:1051900000501021904200143042000F00431021B3
73597 +:1051A0000A000415A20200068CA400049742010420
73598 +:1051B0009603000A3088FFFF3042FFFF00461023AD
73599 +:1051C0002442FFD60002140001024025ACA80004CE
73600 +:1051D000920200079204000524630028000318834C
73601 +:1051E0000064182134420004A2030006A202000752
73602 +:1051F0008F8200042403FFFB34420002004310248A
73603 +:10520000AF820004920300068F87003800031880E5
73604 +:10521000007010218C4400203C02FFF63442FFFF56
73605 +:105220000082402400671821AE04000CAC68000C1A
73606 +:10523000920500063C03FF7F8E02000C00052880CB
73607 +:1052400000B020213463FFFF01033024948800263E
73608 +:1052500000A7282100431024AE02000CAC860020D9
73609 +:10526000AC880024ACA8001024020010A742014022
73610 +:1052700024020002A7400142A7400144A742014680
73611 +:10528000974201043C0400082442FFFEA742014863
73612 +:10529000240200010E00020CA742014A9603000AF4
73613 +:1052A0009202000400431021244200023042000711
73614 +:1052B00000021023304200070E000235AE0200103B
73615 +:1052C0008F6200003C0308008C6304442404001037
73616 +:1052D000AF820008974201043042FFFF2442FFFEE4
73617 +:1052E00000403821000237C33C0208008C420440D1
73618 +:1052F000006718210067282B004610210045102167
73619 +:105300003C010800AC2304443C010800AC220440EA
73620 +:105310000A0005150000000014A0000500000000B0
73621 +:10532000000000000000000D000000002400030A3F
73622 +:105330008F4201780440FFFE000000000E00023D95
73623 +:1053400027A4001414400005004080210000000044
73624 +:105350000000000D00000000240003118E02000078
73625 +:105360005440000692020007000000000000000DFB
73626 +:10537000000000002400031C9202000730420004D9
73627 +:10538000104000058F8200042403FFFB344200021A
73628 +:1053900000431024AF8200048F620004044300081D
73629 +:1053A00092020007920200068E03000CAE0000007D
73630 +:1053B0000002108000501021AC4300209202000730
73631 +:1053C00030420004544000099602000A920200058F
73632 +:1053D0003C03000100021080005010218C46001890
73633 +:1053E00000C33021AC4600189602000A9206000461
73634 +:1053F000277100080220202100C2302124C60005A8
73635 +:10540000260500140E0005AB00063082920400064B
73636 +:105410008F6500043C027FFF000420800091202162
73637 +:105420008C8300043442FFFF00A228240065182169
73638 +:10543000AC8300049202000792040005920300046A
73639 +:10544000304200041040001496070008308400FF2A
73640 +:1054500000042080009120218C86000497420104E2
73641 +:105460009605000A306300FF3042FFFF0043102121
73642 +:105470000045102130E3FFFF004310232442FFD8F2
73643 +:1054800030C6FFFF0002140000C23025AC860004C5
73644 +:105490000A0004C992030007308500FF0005288038
73645 +:1054A00000B128218CA4000097420104306300FF62
73646 +:1054B0003042FFFF00431021004710233C03FFFF51
73647 +:1054C000008320243042FFFF00822025ACA400008E
73648 +:1054D0009203000724020001106200060000000091
73649 +:1054E0002402000310620011000000000A0004EC16
73650 +:1054F0008E03001097420104920300049605000AEF
73651 +:105500008E24000C00431021004510212442FFF29C
73652 +:105510003C03FFFF008320243042FFFF0082202550
73653 +:10552000AE24000C0A0004EC8E0300109742010424
73654 +:10553000920300049605000A8E24001000431021F7
73655 +:10554000004510212442FFEE3C03FFFF008320248E
73656 +:105550003042FFFF00822025AE2400108E03001091
73657 +:105560002402000AA7420140A74301429603000A11
73658 +:10557000920200043C04004000431021A742014471
73659 +:10558000A740014697420104A742014824020001B6
73660 +:105590000E00020CA742014A0E0002350000000076
73661 +:1055A0008F6200009203000400002021AF820008F7
73662 +:1055B000974201049606000A3042FFFF006218215C
73663 +:1055C000006028213C0308008C6304443C0208006E
73664 +:1055D0008C42044000651821004410210065382BDE
73665 +:1055E000004710213C010800AC2304443C010800A2
73666 +:1055F000AC22044092040004008620212484000A86
73667 +:105600003084FFFF0E0001E9000000009744010410
73668 +:105610003084FFFF0E0001F7000000003C02100084
73669 +:10562000AF4201780A0005878F820020148200278C
73670 +:105630003062000697420104104000673C024000BF
73671 +:105640003062400010400005000000000000000033
73672 +:105650000000000D00000000240004208F420178AB
73673 +:105660000440FFFE24020800AF4201782402000833
73674 +:10567000A7420140A74001428F82000497430104E2
73675 +:1056800030420001104000073070FFFF2603FFFE8C
73676 +:1056900024020002A7420146A74301480A00053F31
73677 +:1056A0002402000DA74001462402000DA742014A32
73678 +:1056B0008F62000024040008AF8200080E0001E998
73679 +:1056C000000000000A0005190200202110400042DD
73680 +:1056D0003C02400093620000304300F024020010BE
73681 +:1056E0001062000524020070106200358F820020D5
73682 +:1056F0000A000588244200018F62000097430104DC
73683 +:105700003050FFFF3071FFFF8F4201780440FFFEF1
73684 +:105710003202000700021023304200072403000A6F
73685 +:105720002604FFFEA7430140A7420142A7440144CB
73686 +:10573000A7400146A75101488F420108304200208E
73687 +:10574000144000022403000924030001A743014A76
73688 +:105750000E00020C3C0400400E0002350000000068
73689 +:105760003C0708008CE70444021110212442FFFE8C
73690 +:105770003C0608008CC604400040182100E3382194
73691 +:10578000000010218F65000000E3402B00C2302193
73692 +:105790002604000800C830213084FFFFAF850008D0
73693 +:1057A0003C010800AC2704443C010800AC2604403E
73694 +:1057B0000E0001E9000000000A0005190220202166
73695 +:1057C0000E00013B000000008F82002024420001F7
73696 +:1057D000AF8200203C024000AF4201380A00029232
73697 +:1057E000000000003084FFFF30C6FFFF00052C00E2
73698 +:1057F00000A628253882FFFF004510210045282BF0
73699 +:105800000045102100021C023042FFFF004310211E
73700 +:1058100000021C023042FFFF004310213842FFFF0C
73701 +:1058200003E000083042FFFF3084FFFF30A5FFFF98
73702 +:1058300000001821108000070000000030820001E5
73703 +:105840001040000200042042006518210A0005A152
73704 +:105850000005284003E000080060102110C0000689
73705 +:1058600024C6FFFF8CA2000024A50004AC82000027
73706 +:105870000A0005AB2484000403E0000800000000D7
73707 +:1058800010A0000824A3FFFFAC8600000000000069
73708 +:10589000000000002402FFFF2463FFFF1462FFFAF0
73709 +:1058A0002484000403E00008000000000000000160
73710 +:1058B0000A00002A00000000000000000000000DA7
73711 +:1058C000747870362E322E3162000000060201001C
73712 +:1058D00000000000000001360000EA600000000047
73713 +:1058E00000000000000000000000000000000000B8
73714 +:1058F00000000000000000000000000000000000A8
73715 +:105900000000000000000000000000000000000097
73716 +:105910000000001600000000000000000000000071
73717 +:105920000000000000000000000000000000000077
73718 +:105930000000000000000000000000000000000067
73719 +:1059400000000000000000000000138800000000BC
73720 +:10595000000005DC00000000000000001000000353
73721 +:10596000000000000000000D0000000D3C020800D7
73722 +:1059700024423D683C0308002463401CAC40000006
73723 +:105980000043202B1480FFFD244200043C1D08002E
73724 +:1059900037BD7FFC03A0F0213C100800261000A8B2
73725 +:1059A0003C1C0800279C3D680E00044E00000000CF
73726 +:1059B0000000000D27BDFFB4AFA10000AFA200049E
73727 +:1059C000AFA30008AFA4000CAFA50010AFA6001451
73728 +:1059D000AFA70018AFA8001CAFA90020AFAA0024F1
73729 +:1059E000AFAB0028AFAC002CAFAD0030AFAE003491
73730 +:1059F000AFAF0038AFB8003CAFB90040AFBC004417
73731 +:105A0000AFBF00480E000591000000008FBF0048A6
73732 +:105A10008FBC00448FB900408FB8003C8FAF003876
73733 +:105A20008FAE00348FAD00308FAC002C8FAB0028D0
73734 +:105A30008FAA00248FA900208FA8001C8FA7001810
73735 +:105A40008FA600148FA500108FA4000C8FA3000850
73736 +:105A50008FA200048FA1000027BD004C3C1B6004F6
73737 +:105A60008F7A5030377B502803400008AF7A00000F
73738 +:105A70008F86003C3C0390003C0280000086282575
73739 +:105A800000A32025AC4400203C0380008C6700204C
73740 +:105A900004E0FFFE0000000003E00008000000003A
73741 +:105AA0000A000070240400018F85003C3C04800043
73742 +:105AB0003483000100A3102503E00008AC8200201D
73743 +:105AC00003E00008000010213084FFFF30A5FFFF35
73744 +:105AD00010800007000018213082000110400002F1
73745 +:105AE00000042042006518211480FFFB00052840B7
73746 +:105AF00003E000080060102110C000070000000053
73747 +:105B00008CA2000024C6FFFF24A50004AC82000084
73748 +:105B100014C0FFFB2484000403E000080000000020
73749 +:105B200010A0000824A3FFFFAC86000000000000C6
73750 +:105B3000000000002402FFFF2463FFFF1462FFFA4D
73751 +:105B40002484000403E000080000000090AA003153
73752 +:105B50008FAB00108CAC00403C0300FF8D6800044C
73753 +:105B6000AD6C00208CAD004400E060213462FFFF8A
73754 +:105B7000AD6D00248CA700483C09FF000109C0243A
73755 +:105B8000AD6700288CAE004C0182C824031978252B
73756 +:105B9000AD6F0004AD6E002C8CAD0038314A00FFB3
73757 +:105BA000AD6D001C94A900323128FFFFAD680010D4
73758 +:105BB00090A70030A5600002A1600004A16700006A
73759 +:105BC00090A30032306200FF0002198210600005CD
73760 +:105BD000240500011065000E0000000003E000082D
73761 +:105BE000A16A00018CD80028354A0080AD780018E1
73762 +:105BF0008CCF0014AD6F00148CCE0030AD6E000859
73763 +:105C00008CC4002CA16A000103E00008AD64000C04
73764 +:105C10008CCD001CAD6D00188CC90014AD6900144A
73765 +:105C20008CC80024AD6800088CC70020AD67000C4C
73766 +:105C30008CC200148C8300700043C82B1320000713
73767 +:105C4000000000008CC20014144CFFE400000000AF
73768 +:105C5000354A008003E00008A16A00018C820070D0
73769 +:105C60000A0000E6000000009089003027BDFFF820
73770 +:105C70008FA8001CA3A900008FA300003C0DFF808B
73771 +:105C800035A2FFFF8CAC002C00625824AFAB0000A3
73772 +:105C9000A100000400C05821A7A000028D06000446
73773 +:105CA00000A048210167C8218FA500000080502175
73774 +:105CB0003C18FF7F032C20263C0E00FF2C8C00019B
73775 +:105CC000370FFFFF35CDFFFF3C02FF0000AFC824B8
73776 +:105CD00000EDC02400C27824000C1DC003236825F9
73777 +:105CE00001F87025AD0D0000AD0E00048D240024D8
73778 +:105CF000AFAD0000AD0400088D2C00202404FFFF90
73779 +:105D0000AD0C000C9547003230E6FFFFAD060010E9
73780 +:105D10009145004830A200FF000219C25060000106
73781 +:105D20008D240034AD0400148D4700388FAA00186C
73782 +:105D300027BD0008AD0B0028AD0A0024AD07001CEC
73783 +:105D4000AD00002CAD00001803E00008AD000020FD
73784 +:105D500027BDFFE0AFB20018AFB10014AFB0001024
73785 +:105D6000AFBF001C9098003000C088213C0D00FFA0
73786 +:105D7000330F007FA0CF0000908E003135ACFFFFC5
73787 +:105D80003C0AFF00A0CE000194A6001EA220000441
73788 +:105D90008CAB00148E29000400A08021016C282403
73789 +:105DA000012A40240080902101052025A62600021A
73790 +:105DB000AE24000426050020262400080E000092D0
73791 +:105DC00024060002924700302605002826240014ED
73792 +:105DD00000071E000003160324060004044000030D
73793 +:105DE0002403FFFF965900323323FFFF0E00009279
73794 +:105DF000AE230010262400248FBF001C8FB2001891
73795 +:105E00008FB100148FB00010240500030000302172
73796 +:105E10000A00009C27BD002027BDFFD8AFB1001CA1
73797 +:105E2000AFB00018AFBF002090A9003024020001DD
73798 +:105E300000E050213123003F00A040218FB00040FE
73799 +:105E40000080882100C04821106200148FA700380C
73800 +:105E5000240B000500A0202100C02821106B001396
73801 +:105E6000020030210E000128000000009225007C75
73802 +:105E700030A400021080000326030030AE00003082
73803 +:105E8000260300348FBF00208FB1001C8FB0001894
73804 +:105E90000060102103E0000827BD00280E0000A7C5
73805 +:105EA000AFB000100A00016F000000008FA3003C9B
73806 +:105EB000010020210120282101403021AFA3001042
73807 +:105EC0000E0000EEAFB000140A00016F00000000E9
73808 +:105ED0003C06800034C20E008C4400108F850044C4
73809 +:105EE000ACA400208C43001803E00008ACA30024FD
73810 +:105EF0003C06800034C20E008C4400148F850044A0
73811 +:105F0000ACA400208C43001C03E00008ACA30024D8
73812 +:105F10009382000C1040001B2483000F2404FFF028
73813 +:105F20000064382410E00019978B00109784000E4D
73814 +:105F30009389000D3C0A601C0A0001AC01644023F7
73815 +:105F400001037021006428231126000231C2FFFFE3
73816 +:105F500030A2FFFF0047302B50C0000E00E4482164
73817 +:105F60008D4D000C31A3FFFF00036400000C2C03D7
73818 +:105F700004A1FFF30000302130637FFF0A0001A479
73819 +:105F80002406000103E00008000000009784000ED2
73820 +:105F900000E448213123FFFF3168FFFF0068382B00
73821 +:105FA00054E0FFF8A783000E938A000D114000050E
73822 +:105FB000240F0001006BC023A380000D03E0000844
73823 +:105FC000A798000E006BC023A38F000D03E000080C
73824 +:105FD000A798000E03E000080000000027BDFFE8BE
73825 +:105FE000AFB000103C10800036030140308BFFFF43
73826 +:105FF00093AA002BAFBF0014A46B000436040E005C
73827 +:106000009488001630C600FF8FA90030A4680006EF
73828 +:10601000AC650008A0660012A46A001AAC670020F4
73829 +:106020008FA5002CA4690018012020210E000198E2
73830 +:10603000AC6500143C021000AE0201788FBF001462
73831 +:106040008FB0001003E0000827BD00188F85000006
73832 +:106050002484000727BDFFF83084FFF83C06800049
73833 +:1060600094CB008A316AFFFFAFAA00008FA900001D
73834 +:10607000012540232507FFFF30E31FFF0064102B9D
73835 +:106080001440FFF700056882000D288034CC4000E2
73836 +:1060900000AC102103E0000827BD00088F8200003B
73837 +:1060A0002486000730C5FFF800A2182130641FFFC6
73838 +:1060B00003E00008AF8400008F87003C8F84004419
73839 +:1060C00027BDFFB0AFB70044AFB40038AFB1002C6C
73840 +:1060D000AFBF0048AFB60040AFB5003CAFB300342F
73841 +:1060E000AFB20030AFB000283C0B80008C8600249B
73842 +:1060F000AD6700808C8A002035670E00356901008D
73843 +:10610000ACEA00108C8800248D2500040000B82122
73844 +:10611000ACE800188CE3001000A688230000A02142
73845 +:10612000ACE300148CE20018ACE2001C122000FE6C
73846 +:1061300000E0B021936C0008118000F40000000022
73847 +:10614000976F001031EEFFFF022E682B15A000EFB5
73848 +:1061500000000000977200103250FFFFAED0000028
73849 +:106160003C0380008C740000329300081260FFFD35
73850 +:106170000000000096D800088EC700043305FFFF1A
73851 +:1061800030B5000112A000E4000000000000000D86
73852 +:1061900030BFA0402419004013F9011B30B4A00007
73853 +:1061A000128000DF000000009373000812600008F6
73854 +:1061B00000000000976D001031ACFFFF00EC202BB9
73855 +:1061C0001080000330AE004011C000D50000000078
73856 +:1061D000A7850040AF87003893630008022028217C
73857 +:1061E000AFB10020146000F527B40020AF60000CB0
73858 +:1061F000978F004031F14000162000022403001662
73859 +:106200002403000E24054007A363000AAF650014B1
73860 +:10621000938A00428F70001431550001001512401E
73861 +:1062200002024825AF690014979F00408F78001440
73862 +:1062300033F9001003194025AF680014979200400D
73863 +:106240003247000810E0016E000000008F67001464
73864 +:106250003C1210003C11800000F27825AF6F001452
73865 +:1062600036230E00946E000A3C0D81002406000EB9
73866 +:1062700031CCFFFF018D2025AF640004A36600022E
73867 +:106280009373000A3406FFFC266B0004A36B000A1C
73868 +:1062900097980040330820001100015F00000000C3
73869 +:1062A0003C05800034A90E00979900409538000CF9
73870 +:1062B00097870040001940423312C00031030003A9
73871 +:1062C00000127B0330F11000006F6825001172038B
73872 +:1062D00001AE6025000C20C0A76400129793004017
73873 +:1062E000936A000A001359823175003C02AA1021FA
73874 +:1062F0002450003CA3700009953F000C33F93FFF88
73875 +:10630000A779001097700012936900090130F821F5
73876 +:1063100027E5000230B900070019C0233308000741
73877 +:10632000A368000B9371000997720012976F001019
73878 +:10633000322700FF8F910038978D004000F218211E
73879 +:10634000006F702101C6602131A6004010C0000519
73880 +:106350003185FFFF00B1102B3C1280001040001768
73881 +:10636000000098210225A82B56A0013E8FA50020F1
73882 +:106370003C048000348A0E008D5300143C068000DB
73883 +:10638000AD5300108D4B001CAD4B0018AD45000007
73884 +:106390008CCD000031AC00081180FFFD34CE0E0022
73885 +:1063A00095C3000800A0882100009021A783004029
73886 +:1063B0008DC6000424130001AF860038976F0010CB
73887 +:1063C00031F5FFFF8E9F000003F1282310A0011F6D
73888 +:1063D000AE85000093620008144000DD000000005C
73889 +:1063E0000E0001E7240400108F900048004028218F
73890 +:1063F0003C023200320600FF000654000142F8253C
73891 +:1064000026090001AF890048ACBF0000937900095C
73892 +:1064100097780012936F000A332800FF3303FFFFC1
73893 +:106420000103382100076C0031EE00FF01AE60254A
73894 +:10643000ACAC00048F840048978B0040316A200088
73895 +:106440001140010AACA4000897640012308BFFFFD2
73896 +:1064500006400108ACAB000C978E004031C5000827
73897 +:1064600014A0000226280006262800023C1F8000F7
73898 +:1064700037E70E0094F900148CE5001C8F670004C8
73899 +:10648000937800023324FFFF330300FFAFA3001013
73900 +:106490008F6F0014AFA800180E0001CBAFAF00142F
73901 +:1064A000240400100E0001FB000000008E9200008A
73902 +:1064B00016400005000000008F7800142403FFBF81
73903 +:1064C0000303A024AF7400148F67000C00F5C821EB
73904 +:1064D000AF79000C9375000816A0000800000000BA
73905 +:1064E00012600006000000008F6800143C0AEFFFF5
73906 +:1064F0003549FFFE0109F824AF7F0014A37300089B
73907 +:106500008FA500200A00034F02202021AED10000F9
73908 +:106510000A00022D3C03800014E0FF1E30BFA040A3
73909 +:106520000E0001900000A0212E9100010237B0253D
73910 +:1065300012C000188FBF00488F87003C24170F003F
73911 +:1065400010F700D43C0680008CD901780720FFFEAC
73912 +:10655000241F0F0010FF00F634CA0E008D560014E1
73913 +:1065600034C7014024080240ACF600048D49001CE9
73914 +:106570003C141000ACE90008A0E00012A4E0001AEE
73915 +:10658000ACE00020A4E00018ACE80014ACD4017822
73916 +:106590008FBF00488FB700448FB600408FB5003CD6
73917 +:1065A0008FB400388FB300348FB200308FB1002C1D
73918 +:1065B0008FB0002803E0000827BD00508F910038FD
73919 +:1065C000978800403C1280000220A821310700403B
73920 +:1065D00014E0FF7C00009821977900108F9200381A
73921 +:1065E0003338FFFF131200A8000020210080A021F3
73922 +:1065F000108000F300A088211620FECE00000000CD
73923 +:106600000A00031F2E9100013C0380008C62017878
73924 +:106610000440FFFE240808008F860000AC68017863
73925 +:106620003C038000946D008A31ACFFFF0186582343
73926 +:10663000256AFFFF31441FFF2C8900081520FFF950
73927 +:10664000000000008F8F0048347040008F83003CB2
73928 +:1066500000E0A021240E0F0025E70001AF870048CD
73929 +:1066600000D03021023488233C08800031F500FF3F
73930 +:10667000106E0005240700019398004233130001B7
73931 +:106680000013924036470001001524003C0A010027
73932 +:10669000008A4825ACC900008F82004830BF003610
73933 +:1066A00030B90008ACC200041320009900FF9825FF
73934 +:1066B00035120E009650000A8F8700003C0F8100B3
73935 +:1066C0003203FFFF24ED000835060140006F60250E
73936 +:1066D0003C0E100031AB1FFF269200062405000E71
73937 +:1066E000ACCC0020026E9825A4C5001AAF8B000028
73938 +:1066F000A4D20018162000083C1080008F89003CAE
73939 +:1067000024020F00512200022417000136730040BA
73940 +:106710000E0001883C10800036060E008CCB001461
73941 +:10672000360A014002402021AD4B00048CC5001CFC
73942 +:10673000AD450008A1550012AD5300140E0001989C
73943 +:106740003C151000AE1501780A000352000000004D
73944 +:10675000936F0009976E0012936D000B31E500FFF7
73945 +:1067600000AE202131AC00FF008C80212602000AFF
73946 +:106770003050FFFF0E0001E7020020218F86004805
73947 +:106780003C0341003C05800024CB0001AF8B004856
73948 +:10679000936A00099769001230C600FF315F00FF5D
73949 +:1067A0003128FFFF03E8382124F900020006C40065
73950 +:1067B0000319782501E37025AC4E00008F6D000CA5
73951 +:1067C00034A40E00948B001401B26025AC4C00047C
73952 +:1067D0008C85001C8F670004936A00023164FFFF00
73953 +:1067E000314900FFAFA900108F680014AFB1001845
73954 +:1067F0000E0001CBAFA800140A0002FD0200202108
73955 +:10680000AF600004A36000029798004033082000A6
73956 +:106810001500FEA300003021A760001297840040FD
73957 +:10682000936B000A3C10800030931F0000135183CB
73958 +:10683000014BA82126A20028A362000936090E00F8
73959 +:10684000953F000C0A000295A77F00108F7000147E
73960 +:10685000360900400E000188AF6900140A0002C921
73961 +:10686000000000000A00034F000020210641FEFA4C
73962 +:10687000ACA0000C8CAC000C3C0D8000018D902570
73963 +:106880000A0002EAACB2000C000090210A0002C526
73964 +:1068900024130001128000073C028000344B0E00DC
73965 +:1068A0009566000830D300401260004900000000E7
73966 +:1068B0003C0680008CD001780600FFFE34C50E0037
73967 +:1068C00094B500103C03050034CC014032B8FFFF02
73968 +:1068D00003039025AD92000C8CAF0014240D200012
73969 +:1068E0003C041000AD8F00048CAE001CAD8E00087F
73970 +:1068F000A1800012A580001AAD800020A58000189C
73971 +:10690000AD8D0014ACC401780A0003263C0680005B
73972 +:106910008F9F0000351801402692000227F90008D9
73973 +:1069200033281FFFA71200180A000391AF88000048
73974 +:106930003C02800034450140ACA0000C1280001BDA
73975 +:1069400034530E0034510E008E370010ACB70004E3
73976 +:106950008E2400183C0B8000ACA400083570014068
73977 +:1069600024040040A20000128FBF0048A600001AB5
73978 +:106970008FB70044AE0000208FB60040A60000187C
73979 +:106980008FB5003CAE0400148FB400388FB30034D0
73980 +:106990008FB200308FB1002C8FB000283C02100065
73981 +:1069A00027BD005003E00008AD6201788E66001438
73982 +:1069B000ACA600048E64001C0A00042A3C0B800074
73983 +:1069C0000E0001902E9100010A0003200237B0252D
73984 +:1069D000000000000000000D00000000240003691A
73985 +:1069E0000A0004013C06800027BDFFD8AFBF00208D
73986 +:1069F0003C0980003C1F20FFAFB200183C0760003C
73987 +:106A000035320E002402001037F9FFFDACE23008E9
73988 +:106A1000AFB3001CAFB10014AFB00010AE5900000E
73989 +:106A20000000000000000000000000000000000066
73990 +:106A3000000000003C1800FF3713FFFDAE530000BC
73991 +:106A40003C0B60048D7050002411FF7F3C0E00024F
73992 +:106A50000211782435EC380C35CD0109ACED4C1819
73993 +:106A6000240A0009AD6C50008CE80438AD2A0008F7
73994 +:106A7000AD2000148CE54C1C3106FFFF38C42F718B
73995 +:106A800000051E023062000F2486C0B310400007CC
73996 +:106A9000AF8200088CE54C1C3C09001F3528FC0027
73997 +:106AA00000A81824000321C2AF8400048CF1080858
73998 +:106AB0003C0F57092412F0000232702435F0001008
73999 +:106AC00001D0602601CF68262DAA00012D8B000180
74000 +:106AD000014B382550E00009A380000C3C1F601CCE
74001 +:106AE0008FF8000824190001A399000C33137C00CF
74002 +:106AF000A7930010A780000EA380000DAF80004870
74003 +:106B000014C00003AF8000003C066000ACC0442C01
74004 +:106B10000E0005B93C1080000E000F1A361101005E
74005 +:106B20003C12080026523DD03C13080026733E500C
74006 +:106B30008E03000038640001308200011440FFFC25
74007 +:106B40003C0B800A8E2600002407FF8024C90240E7
74008 +:106B5000312A007F014B402101272824AE06002066
74009 +:106B6000AF880044AE0500243C048000AF86003CA2
74010 +:106B70008C8C01780580FFFE24180800922F0008F5
74011 +:106B8000AC980178A38F0042938E004231CD000172
74012 +:106B900011A0000F24050D0024DFF8002FF90301D8
74013 +:106BA0001320001C000629C224A4FFF00004104298
74014 +:106BB000000231400E00020200D2D8213C02400007
74015 +:106BC0003C068000ACC201380A0004A000000000AE
74016 +:106BD00010C50023240D0F0010CD00273C1F800896
74017 +:106BE00037F9008093380000240E0050330F00FF67
74018 +:106BF00015EEFFF33C0240000E000A3600000000D4
74019 +:106C00003C0240003C068000ACC201380A0004A0EF
74020 +:106C1000000000008F83000400A3402B1500000B30
74021 +:106C20008F8B0008006B50212547FFFF00E5482BA4
74022 +:106C30001520000600A36023000C19400E0002027C
74023 +:106C40000073D8210A0004C43C0240000000000D7B
74024 +:106C50000E000202000000000A0004C43C024000D2
74025 +:106C60003C1B0800277B3F500E0002020000000082
74026 +:106C70000A0004C43C0240003C1B0800277B3F7014
74027 +:106C80000E000202000000000A0004C43C024000A2
74028 +:106C90003C0660043C09080025290104ACC9502CBD
74029 +:106CA0008CC850003C0580003C0200023507008083
74030 +:106CB000ACC750003C040800248415A43C03080021
74031 +:106CC0002463155CACA50008ACA2000C3C010800D4
74032 +:106CD000AC243D603C010800AC233D6403E00008A7
74033 +:106CE0002402000100A030213C1C0800279C3D68C4
74034 +:106CF0003C0C04003C0B0002008B3826008C402624
74035 +:106D00002CE200010007502B2D050001000A4880ED
74036 +:106D10003C03080024633D60004520250123182121
74037 +:106D20001080000300001021AC6600002402000166
74038 +:106D300003E00008000000003C1C0800279C3D68A0
74039 +:106D40003C0B04003C0A0002008A3026008B3826E7
74040 +:106D50002CC200010006482B2CE5000100094080F0
74041 +:106D60003C03080024633D600045202501031821F1
74042 +:106D700010800005000010213C0C0800258C155CDB
74043 +:106D8000AC6C00002402000103E0000800000000D9
74044 +:106D90003C0900023C08040000883026008938269F
74045 +:106DA0002CC30001008028212CE400010083102561
74046 +:106DB0001040000B000030213C1C0800279C3D685F
74047 +:106DC0003C0A80008D4E00082406000101CA682597
74048 +:106DD000AD4D00088D4C000C01855825AD4B000CC5
74049 +:106DE00003E0000800C010213C1C0800279C3D68FF
74050 +:106DF0003C0580008CA6000C000420272402000122
74051 +:106E000000C4182403E00008ACA3000C3C020002FC
74052 +:106E10001082000B3C0560003C0704001087000353
74053 +:106E20000000000003E00008000000008CA908D06A
74054 +:106E3000240AFFFD012A402403E00008ACA808D082
74055 +:106E40008CA408D02406FFFE0086182403E0000866
74056 +:106E5000ACA308D03C05601A34A600108CC3008097
74057 +:106E600027BDFFF88CC50084AFA3000093A40000E9
74058 +:106E70002402000110820003AFA5000403E0000813
74059 +:106E800027BD000893A7000114E0001497AC00028E
74060 +:106E900097B800023C0F8000330EFFFC01CF682141
74061 +:106EA000ADA50000A3A000003C0660008CC708D080
74062 +:106EB0002408FFFE3C04601A00E82824ACC508D072
74063 +:106EC0008FA300048FA200003499001027BD000892
74064 +:106ED000AF22008003E00008AF2300843C0B800059
74065 +:106EE000318AFFFC014B48218D2800000A00057DF6
74066 +:106EF000AFA8000427BDFFE8AFBF00103C1C08008E
74067 +:106F0000279C3D683C0580008CA4000C8CA20004EA
74068 +:106F10003C0300020044282410A0000A00A3182407
74069 +:106F20003C0604003C0400021460000900A6102482
74070 +:106F30001440000F3C0404000000000D3C1C08003D
74071 +:106F4000279C3D688FBF001003E0000827BD001894
74072 +:106F50003C0208008C423D600040F809000000003F
74073 +:106F60003C1C0800279C3D680A0005A68FBF001046
74074 +:106F70003C0208008C423D640040F809000000001B
74075 +:106F80000A0005AC00000000000411C003E0000886
74076 +:106F9000244202403C04080024843FB42405001A23
74077 +:106FA0000A00009C0000302127BDFFE0AFB00010B8
74078 +:106FB0003C108000AFBF0018AFB1001436110100C3
74079 +:106FC000922200090E0005B63044007F8E3F00007B
74080 +:106FD0008F89003C3C0F008003E26021258800403F
74081 +:106FE0000049F821240DFF80310E00783198007897
74082 +:106FF00035F9000135F100020319382501D1482582
74083 +:10700000010D302403ED5824018D2824240A00406A
74084 +:1070100024040080240300C0AE0B0024AE0008103E
74085 +:10702000AE0A0814AE040818AE03081CAE05080426
74086 +:10703000AE070820AE060808AE0908243609090084
74087 +:107040009539000C3605098033ED007F3338FFFF9A
74088 +:10705000001889C0AE110800AE0F0828952C000C4E
74089 +:107060008FBF00188FB10014318BFFFF000B51C090
74090 +:10707000AE0A002C8CA400508FB000108CA3003CF2
74091 +:107080008D2700048CA8001C8CA600383C0E800ABA
74092 +:1070900001AE102127BD0020AF820044AF84005014
74093 +:1070A000AF830054AF87004CAF88005C03E000085A
74094 +:1070B000AF8600603C09080091293FD924A800024E
74095 +:1070C0003C05110000093C0000E8302500C51825EA
74096 +:1070D00024820008AC83000003E00008AC800004B8
74097 +:1070E0003C098000352309009128010B906A0011AA
74098 +:1070F0002402002800804821314700FF00A07021B1
74099 +:1071000000C068213108004010E20002340C86DD26
74100 +:10711000240C08003C0A800035420A9A944700007B
74101 +:10712000354B0A9C35460AA030F9FFFFAD39000007
74102 +:107130008D780000354B0A8024040001AD3800042E
74103 +:107140008CCF0000AD2F00089165001930A300031B
74104 +:107150001064009028640002148000AF240500022F
74105 +:107160001065009E240F0003106F00B435450AA47B
74106 +:10717000240A0800118A0048000000005100003D68
74107 +:107180003C0B80003C0480003483090090670012AF
74108 +:1071900030E200FF004D7821000FC8802724000155
74109 +:1071A0003C0A8000354F090091E50019354C0980F3
74110 +:1071B0008D87002830A300FF0003150000475825E5
74111 +:1071C0000004C4003C19600001793025370806FF2F
74112 +:1071D000AD260000AD2800048DEA002C25280028EB
74113 +:1071E000AD2A00088DEC0030AD2C000C8DE500348C
74114 +:1071F000AD2500108DE400383C05800034AC093C1E
74115 +:10720000AD2400148DE3001CAD2300188DE7002091
74116 +:10721000AD27001C8DE20024AD2200208DF900284E
74117 +:1072200034A20100AD3900248D830000AD0E0004AE
74118 +:1072300034B90900AD0300008C47000C250200148E
74119 +:10724000AD070008932B00123C04080090843FD83F
74120 +:10725000AD000010317800FF030D302100064F0013
74121 +:1072600000047C00012F702535CDFFFC03E00008F1
74122 +:10727000AD0D000C35780900930600123C0508009E
74123 +:1072800094A53FC830C800FF010D5021000A60805E
74124 +:107290000A00063C018520211500005B000000006B
74125 +:1072A0003C08080095083FCE3C06080094C63FC83D
74126 +:1072B000010610213C0B800035790900933800113C
74127 +:1072C000932A001935660A80330800FF94CF002AFC
74128 +:1072D00000086082314500FF978A0058000C1E00AC
74129 +:1072E000000524003047FFFF006410250047C0253B
74130 +:1072F00001EA30213C0B4000030B402500066400EE
74131 +:10730000AD280000AD2C0004932500183C030006B6
74132 +:107310002528001400053E0000E31025AD220008DA
74133 +:107320008F24002C3C05800034AC093CAD24000CBB
74134 +:107330008F38001C34A20100254F0001AD38001029
74135 +:107340008D830000AD0E000431EB7FFFAD03000024
74136 +:107350008C47000C34B90900A78B0058AD07000812
74137 +:10736000932B00123C04080090843FD8250200149F
74138 +:10737000317800FF030D302100064F0000047C002F
74139 +:10738000012F702535CDFFFCAD00001003E0000893
74140 +:10739000AD0D000C3C02080094423FD23C050800B1
74141 +:1073A00094A53FC835440AA43C07080094E73FC4AD
74142 +:1073B000948B00000045C8210327C023000B1C004C
74143 +:1073C0002706FFF200665025AD2A000CAD20001004
74144 +:1073D000AD2C00140A00063025290018354F0AA4E8
74145 +:1073E00095E50000956400280005140000043C00A9
74146 +:1073F0003459810000EC5825AD39000CAD2B00103C
74147 +:107400000A000630252900143C0C0800958C3FCE5C
74148 +:107410000A000681258200015460FF56240A0800F4
74149 +:1074200035580AA49706000000061C00006C502581
74150 +:10743000AD2A000C0A000630252900103C03080084
74151 +:1074400094633FD23C07080094E73FC83C0F080014
74152 +:1074500095EF3FC494A4000095790028006710219F
74153 +:10746000004F582300041C00001934002578FFEE5B
74154 +:1074700000D87825346A8100AD2A000CAD2F0010A9
74155 +:10748000AD200014AD2C00180A0006302529001C80
74156 +:1074900003E00008240207D027BDFFE0AFB20018C8
74157 +:1074A000AFB10014AFB00010AFBF001C0E00007CE5
74158 +:1074B000008088218F8800548F87004C3C0580080D
74159 +:1074C00034B20080011128213C1080002402008089
74160 +:1074D000240300C000A72023AE0208183C06800841
74161 +:1074E000AE03081C18800004AF850054ACC500042E
74162 +:1074F0008CC90004AF89004C1220000936040980B1
74163 +:107500000E0006F800000000924C00278E0B00745D
74164 +:1075100001825004014B3021AE46000C3604098034
74165 +:107520008C8E001C8F8F005C01CF682319A0000493
74166 +:107530008FBF001C8C90001CAF90005C8FBF001CA4
74167 +:107540008FB200188FB100148FB000100A00007EB7
74168 +:1075500027BD00208F8600508F8300548F82004CFF
74169 +:107560003C05800834A40080AC860050AC83003C0D
74170 +:1075700003E00008ACA200043C0308008C63005444
74171 +:1075800027BDFFF8308400FF2462000130A500FF12
74172 +:107590003C010800AC22005430C600FF3C078000CC
74173 +:1075A0008CE801780500FFFE3C0C7FFFA3A40003DC
74174 +:1075B0008FAA0000358BFFFF014B4824000627C02F
74175 +:1075C00001244025AFA8000034E201009043000AE6
74176 +:1075D000A3A000023C1980FFA3A300018FAF00000D
74177 +:1075E00030AE007F3738FFFF01F86024000E6E00D8
74178 +:1075F0003C0A002034E50140018D58253549200022
74179 +:107600002406FF803C04100027BD0008ACAB000C32
74180 +:10761000ACA90014A4A00018A0A6001203E0000862
74181 +:10762000ACE40178308800FF30A700FF3C03800005
74182 +:107630008C6201780440FFFE3C0C8000358A0A0011
74183 +:107640008D4B00203584014035850980AC8B0004CA
74184 +:107650008D4900240007302B00061540AC89000836
74185 +:10766000A088001090A3004CA083002D03E0000828
74186 +:10767000A480001827BDFFE8308400FFAFBF0010D2
74187 +:107680000E00075D30A500FF8F8300548FBF0010F0
74188 +:107690003C06800034C50140344700402404FF907C
74189 +:1076A0003C02100027BD0018ACA3000CA0A40012DF
74190 +:1076B000ACA7001403E00008ACC2017827BDFFE0CE
74191 +:1076C0003C088008AFBF001CAFB20018AFB1001477
74192 +:1076D000AFB00010351000808E0600183C07800007
74193 +:1076E000309200FF00C72025AE0400180E00007C79
74194 +:1076F00030B100FF92030005346200080E00007EE6
74195 +:10770000A2020005024020210E000771022028215C
74196 +:10771000024020218FBF001C8FB200188FB10014CF
74197 +:107720008FB0001024050005240600010A0007326E
74198 +:1077300027BD00203C05800034A309809066000826
74199 +:1077400030C200081040000F3C0A01013549080A08
74200 +:10775000AC8900008CA80074AC8800043C070800C9
74201 +:1077600090E73FD830E5001050A00008AC8000083A
74202 +:107770003C0D800835AC00808D8B0058AC8B000828
74203 +:107780002484000C03E00008008010210A0007B5E3
74204 +:107790002484000C27BDFFE83C098000AFB0001036
74205 +:1077A000AFBF00143526098090C8000924020006E6
74206 +:1077B00000A05821310300FF3527090000808021F7
74207 +:1077C000240500041062007B2408000294CF005CB2
74208 +:1077D0003C0E020431EDFFFF01AE6025AE0C00004F
74209 +:1077E00090CA00083144002010800008000000000A
74210 +:1077F00090C2004E3C1F010337F90300305800FFD0
74211 +:107800000319302524050008AE06000490F9001184
74212 +:1078100090E6001290E40011333800FF00187082E7
74213 +:1078200030CF00FF01CF5021014B6821308900FF8C
74214 +:1078300031AAFFFF39230028000A60801460002C61
74215 +:10784000020C482390E400123C198000372F0100FD
74216 +:10785000308C00FF018B1821000310800045F821B7
74217 +:10786000001F8400360706FFAD270004373F0900DC
74218 +:1078700093EC001193EE0012372609800005C082B8
74219 +:107880008DE4000C8CC5003431CD00FF01AB10211C
74220 +:107890000058182100A4F8230008840000033F00CA
74221 +:1078A00000F0302533F9FFFF318F00FC00D970253F
74222 +:1078B0000158202101E9682100045080ADAE000C80
74223 +:1078C0000E00007C012A80213C088008240B000463
74224 +:1078D000350500800E00007EA0AB000902001021DB
74225 +:1078E0008FBF00148FB0001003E0000827BD001800
74226 +:1078F00090EC001190E300193C18080097183FCE57
74227 +:10790000318200FF0002F882307000FF001FCE00BD
74228 +:1079100000103C000327302500D870253C0F4000A4
74229 +:1079200001CF68253C198000AD2D0000373F0900CC
74230 +:1079300093EC001193EE0012372F010037260980D7
74231 +:107940000005C0828DE4000C8CC5003431CD00FFF1
74232 +:1079500001AB10210058182100A4F823000884006E
74233 +:1079600000033F0000F0302533F9FFFF318F00FCAA
74234 +:1079700000D970250158202101E9682100045080B8
74235 +:10798000ADAE000C0E00007C012A80213C0880086E
74236 +:10799000240B0004350500800E00007EA0AB00091A
74237 +:1079A000020010218FBF00148FB0001003E0000808
74238 +:1079B00027BD00180A0007C72408001227BDFFD002
74239 +:1079C0003C038000AFB60028AFB50024AFB4002060
74240 +:1079D000AFB10014AFBF002CAFB3001CAFB20018A2
74241 +:1079E000AFB000103467010090E6000B309400FF48
74242 +:1079F00030B500FF30C200300000B02110400099C7
74243 +:107A000000008821346409809088000800082E0056
74244 +:107A100000051E03046000C0240400048F86005487
74245 +:107A20003C010800A0243FD83C0C8000AD800048F9
74246 +:107A30003C048000348E010091CD000B31A5002064
74247 +:107A400010A000073C078000349309809272000860
74248 +:107A50000012860000107E0305E000C43C1F800871
74249 +:107A600034EC0100918A000B34EB09809169000825
74250 +:107A7000314400400004402B3123000800C8982303
74251 +:107A80001460000224120003000090213C108000CA
74252 +:107A900036180A8036040900970E002C90830011D6
74253 +:107AA0009089001293050018307F00FF312800FFF5
74254 +:107AB000024810210002C880930D0018033F78216E
74255 +:107AC00001F1302130B100FF00D11821A78E0058FC
74256 +:107AD0003C010800A4263FCE3C010800A4233FD06F
74257 +:107AE00015A00002000000000000000D920B010B29
74258 +:107AF0003065FFFF3C010800A4233FD2316A0040FB
74259 +:107B00003C010800A4203FC83C010800A4203FC459
74260 +:107B10001140000224A4000A24A4000B3091FFFFAE
74261 +:107B20000E0001E7022020219206010B3C0C080008
74262 +:107B3000958C3FD2004020210006698231A70001C8
74263 +:107B40000E00060101872821004020210260282123
74264 +:107B50000E00060C024030210E0007A1004020213B
74265 +:107B600016C00069004020219212010B32560040DD
74266 +:107B700012C000053C0500FF8C93000034AEFFFFEF
74267 +:107B8000026E8024AC9000000E0001FB0220202138
74268 +:107B90003C0F080091EF3FD831F10003122000168E
74269 +:107BA0003C1380088F8200543C09800835280080EF
74270 +:107BB000245F0001AD1F003C3C0580088CB9000427
74271 +:107BC00003E02021033FC0231B000002AF9F0054AD
74272 +:107BD0008CA400040E0006F8ACA400043C0780004E
74273 +:107BE0008CEB00743C04800834830080004B5021EF
74274 +:107BF000AC6A000C3C1380083670008002802021A3
74275 +:107C000002A02821A200006B0E00075D3C1480003A
74276 +:107C10008F920054368C0140AD92000C8F86004844
74277 +:107C20003C151000344D000624D60001AF960048E4
74278 +:107C30008FBF002CA18600128FB60028AD8D0014D6
74279 +:107C40008FB3001CAE9501788FB200188FB5002459
74280 +:107C50008FB400208FB100148FB0001003E0000833
74281 +:107C600027BD003034640980908F0008000F760033
74282 +:107C7000000E6E0305A00033347F090093F8001B4B
74283 +:107C8000241900103C010800A0393FD8331300022A
74284 +:107C90001260FF678F8600548F8200601446FF6574
74285 +:107CA0003C0480000E00007C000000003C048008C2
74286 +:107CB0003485008090A8000924060016310300FFD7
74287 +:107CC0001066000D0000000090AB00093C070800A2
74288 +:107CD00090E73FD824090008316400FF34EA00012E
74289 +:107CE0003C010800A02A3FD81089002F240C000A6C
74290 +:107CF000108C00282402000C0E00007E0000000002
74291 +:107D00000A0008608F8600540E0007B9024028213F
74292 +:107D10000A0008AE004020213C0B8008356A008034
74293 +:107D20008D4600548CE9000C1120FF3DAF860054B5
74294 +:107D3000240700143C010800A0273FD80A00085F70
74295 +:107D40003C0C800090910008241200023C010800C5
74296 +:107D5000A0323FD8323000201200000B2416000160
74297 +:107D60008F8600540A0008602411000837F800804C
74298 +:107D70008F020038AFE200048FF90004AF19003C15
74299 +:107D80000A00086C3C0780008F8600540A000860D7
74300 +:107D900024110004A0A200090E00007E00000000D3
74301 +:107DA0000A0008608F860054240200140A00093A71
74302 +:107DB000A0A2000927BDFFE8AFB000103C10800072
74303 +:107DC000AFBF001436020100904400090E00075DA9
74304 +:107DD000240500013C0480089099000E3483008043
74305 +:107DE000909F000F906F00269089000A33F800FFE3
74306 +:107DF00000196E000018740031EC00FF01AE502530
74307 +:107E0000000C5A00014B3825312800FF3603014091
74308 +:107E10003445600000E830252402FF813C04100056
74309 +:107E2000AC66000C8FBF0014AC650014A062001299
74310 +:107E3000AE0401788FB0001003E0000827BD0018E1
74311 +:107E400027BDFFE8308400FFAFBF00100E00075DC4
74312 +:107E500030A500FF3C05800034A4014034470040B9
74313 +:107E60002406FF92AC870014A08600128F83005472
74314 +:107E70008FBF00103C02100027BD0018AC83000C1F
74315 +:107E800003E00008ACA2017827BDFFD8AFB0001016
74316 +:107E9000308400FF30B000FF3C058000AFB100141B
74317 +:107EA000AFBF0020AFB3001CAFB20018000410C277
74318 +:107EB00034A60100320300023051000114600007B3
74319 +:107EC00090D200093C098008353300809268000593
74320 +:107ED0003107000810E0000C308A00100240202119
74321 +:107EE0000E00078302202821240200018FBF0020FA
74322 +:107EF0008FB3001C8FB200188FB100148FB0001028
74323 +:107F000003E0000827BD00281540003434A50A000E
74324 +:107F10008CB800248CAF0008130F004B00003821F0
74325 +:107F20003C0D800835B30080926C00682406000286
74326 +:107F3000318B00FF116600843C06800034C20100D2
74327 +:107F40009263004C90590009307F00FF53F9000400
74328 +:107F50003213007C10E00069000000003213007C46
74329 +:107F60005660005C0240202116200009320D0001FD
74330 +:107F70003C0C800035840100358B0A008D6500249F
74331 +:107F80008C86000414A6FFD900001021320D0001D8
74332 +:107F900011A0000E024020213C1880003710010083
74333 +:107FA0008E0F000C8F8E005011EE000800000000B4
74334 +:107FB0000E000843022028218E19000C3C1F800867
74335 +:107FC00037F00080AE190050024020210E000771EA
74336 +:107FD000022028210A00098F240200013C05080024
74337 +:107FE0008CA5006424A400013C010800AC240064BA
74338 +:107FF0001600000D00000000022028210E0007716D
74339 +:1080000002402021926E0068240C000231CD00FF56
74340 +:1080100011AC0022024020210E00094100000000A6
74341 +:108020000A00098F240200010E00007024040001E0
74342 +:10803000926B0025020B30250E00007EA266002503
74343 +:108040000A0009D3022028218E6200188CDF000468
74344 +:108050008CB9002400021E0217F9FFB13065007FC1
74345 +:108060009268004C264400013093007F1265004066
74346 +:10807000310300FF1464FFAB3C0D8008264700016C
74347 +:1080800030F1007F30E200FF1225000B24070001D1
74348 +:10809000004090210A00099C2411000124050004DD
74349 +:1080A0000E000732240600010E0009410000000006
74350 +:1080B0000A00098F240200012405FF8002452024C4
74351 +:1080C00000859026324200FF004090210A00099C62
74352 +:1080D000241100010E00084302202821320700303D
74353 +:1080E00010E0FFA132100082024020210E00078321
74354 +:1080F000022028210A00098F240200018E6900183D
74355 +:108100000240202102202821012640250E0009647A
74356 +:10811000AE6800189264004C240500032406000198
74357 +:108120000E000732308400FF0E00007024040001AE
74358 +:1081300092710025021150250E00007EA26A0025D2
74359 +:108140000A00098F240200018E6F00183C1880007D
74360 +:108150000240202101F87025022028210E0007711D
74361 +:10816000AE6E00189264004C0A000A1B240500043D
74362 +:10817000324A0080394900801469FF6A3C0D80084A
74363 +:108180000A0009F42647000127BDFFC0AFB0001860
74364 +:108190003C108000AFBF0038AFB70034AFB600303E
74365 +:1081A000AFB5002CAFB40028AFB30024AFB20020AD
74366 +:1081B0000E0005BEAFB1001C360201009045000B59
74367 +:1081C0000E00097690440008144000E78FBF003885
74368 +:1081D0003C08800835070080A0E0006B3606098067
74369 +:1081E00090C50000240300503C17080026F73F907C
74370 +:1081F00030A400FF3C13080026733FA01083000347
74371 +:108200003C1080000000B82100009821241F0010BD
74372 +:108210003611010036120A00361509808E580024E6
74373 +:108220008E3400048EAF00208F8C00543C01080077
74374 +:10823000A03F3FD836190A80972B002C8EF60000FD
74375 +:10824000932A00180298702301EC68233C0108006F
74376 +:10825000AC2E3FB43C010800AC2D3FB83C010800F7
74377 +:10826000AC2C3FDCA78B005802C0F809315400FF4A
74378 +:1082700030490002152000E930420001504000C49E
74379 +:108280009227000992A90008312800081500000271
74380 +:10829000241500030000A8213C0A80003543090092
74381 +:1082A00035440A008C8D00249072001190700012E9
74382 +:1082B000907F0011325900FF321100FF02B11021EE
74383 +:1082C0000002C08033EF00FF0319B021028F70213C
74384 +:1082D00002D4602125CB00103C010800A4363FCE1B
74385 +:1082E0003C010800AC2D3FE03C010800A42C3FD02D
74386 +:1082F0003C010800A42B3FCC3556010035540980C1
74387 +:1083000035510E008F8700548F89005C8E850020C8
74388 +:1083100024080006012730233C010800AC283FD484
74389 +:1083200000A7282304C000B50000902104A000B3DA
74390 +:1083300000C5502B114000B5000000003C010800B2
74391 +:10834000AC263FB88E6200000040F8090000000033
74392 +:108350003046000214C0007400408021304B000100
74393 +:10836000556000118E6200043C0D08008DAD3FBCCD
74394 +:108370003C0EC0003C04800001AE6025AE2C000025
74395 +:108380008C980000330F000811E0FFFD0000000092
74396 +:10839000963F000824120001A79F00408E39000478
74397 +:1083A000AF9900388E6200040040F8090000000018
74398 +:1083B0000202802532030002146000B300000000B6
74399 +:1083C0003C09080095293FC43C06080094C63FD0EC
74400 +:1083D0003C0A0800954A3FC63C0708008CE73FBCB2
74401 +:1083E000012670213C0308008C633FE03C08080034
74402 +:1083F00095083FDA01CA20218ED9000C00E9282116
74403 +:10840000249F000200A878210067C02133E4FFFF09
74404 +:10841000AF9900503C010800AC383FE03C01080037
74405 +:10842000A42F3FC83C010800A42E3FD20E0001E754
74406 +:10843000000000008F8D0048004020213C01080012
74407 +:10844000A02D3FD98E62000825AC0001AF8C0048FA
74408 +:108450000040F809000000008F85005402A0302180
74409 +:108460000E00060C004020210E0007A10040202134
74410 +:108470008E6B000C0160F809004020213C0A0800C6
74411 +:10848000954A3FD23C06080094C63FC601464821A3
74412 +:10849000252800020E0001FB3104FFFF3C05080007
74413 +:1084A0008CA53FB43C0708008CE73FBC00A7202305
74414 +:1084B0003C010800AC243FB414800006000000001A
74415 +:1084C0003C0208008C423FD4344B00403C01080081
74416 +:1084D000AC2B3FD4124000438F8E00448E2D0010F1
74417 +:1084E0008F920044AE4D00208E2C0018AE4C00241C
74418 +:1084F0003C04080094843FC80E0006FA0000000007
74419 +:108500008F9F00548E6700103C010800AC3F3FDC99
74420 +:1085100000E0F809000000003C1908008F393FB462
74421 +:108520001720FF798F870054979300583C11800ED5
74422 +:10853000321601000E000729A633002C16C0004594
74423 +:10854000320300105460004C8EE5000432080040F5
74424 +:108550005500001D8EF000088EE4000C0080F80924
74425 +:10856000000000008FBF00388FB700348FB6003096
74426 +:108570008FB5002C8FB400288FB300248FB2002059
74427 +:108580008FB1001C8FB0001803E0000827BD004029
74428 +:108590008F86003C36110E0000072E0000A6202515
74429 +:1085A000AE0400808E4300208E500024AFA3001044
74430 +:1085B000AE2300148FB20010AE320010AE30001C9B
74431 +:1085C0000A000A75AE3000180200F8090000000029
74432 +:1085D0008EE4000C0080F809000000000A000B2E59
74433 +:1085E0008FBF003824180001240F0001A5C000200F
74434 +:1085F000A5D800220A000B10ADCF00243C010800D2
74435 +:10860000AC203FB80A000AA68E6200003C010800B8
74436 +:10861000AC253FB80A000AA68E6200009224000929
74437 +:108620000E000771000028218FBF00388FB700347B
74438 +:108630008FB600308FB5002C8FB400288FB3002484
74439 +:108640008FB200208FB1001C8FB0001803E000082B
74440 +:1086500027BD00403C1480009295010900002821AC
74441 +:108660000E00084332A400FF320300105060FFB830
74442 +:10867000320800408EE5000400A0F8090000000068
74443 +:108680000A000B28320800405240FFA89793005878
74444 +:108690008E3400148F930044AE7400208E35001C7D
74445 +:1086A000AE7500240A000B1F979300588F820014A8
74446 +:1086B0000004218003E00008008210213C078008AC
74447 +:1086C00034E200809043006900804021106000097E
74448 +:1086D0003C0401003C0708008CE73FDC8F8300303E
74449 +:1086E00000E32023048000089389001C14E30003A6
74450 +:1086F0000100202103E00008008010213C0401005B
74451 +:1087000003E00008008010211120000B00673823CF
74452 +:108710003C0D800035AC0980918B007C316A0002F1
74453 +:10872000114000202409003400E9702B15C0FFF12E
74454 +:108730000100202100E938232403FFFC00A3C82402
74455 +:1087400000E3C02400F9782B15E0FFEA030820219C
74456 +:1087500030C400030004102314C000143049000387
74457 +:108760000000302100A9782101E6702100EE682B7D
74458 +:1087700011A0FFE03C0401002D3800010006C82BC9
74459 +:10878000010548210319382414E0FFDA2524FFFCF1
74460 +:108790002402FFFC00A218240068202103E0000846
74461 +:1087A000008010210A000B9E240900303C0C800040
74462 +:1087B0003586098090CB007C316A00041540FFE9C2
74463 +:1087C000240600040A000BAD000030213C03080021
74464 +:1087D0008C63005C8F82001827BDFFE0AFBF0018DC
74465 +:1087E000AFB1001410620005AFB00010000329C043
74466 +:1087F00024A40280AF840014AF8300183C108000D2
74467 +:1088000036020A0094450032361101000E000B7F3B
74468 +:1088100030A43FFF8E240000241FFF803C11008005
74469 +:108820000082C021031F60243309007F000CC9406F
74470 +:1088300003294025330E0078362F00033C0D10002D
74471 +:10884000010D502501CF5825AE0C002836080980AF
74472 +:10885000AE0C080CAE0B082CAE0A08309103006970
74473 +:108860003C06800C0126382110600006AF870034DA
74474 +:108870008D09003C8D03006C0123382318E0008231
74475 +:10888000000000003C0B8008356A00803C1080002E
74476 +:10889000A1400069360609808CC200383C06800081
74477 +:1088A00034C50A0090A8003C310C00201180001A49
74478 +:1088B000AF820030240D00013C0E800035D10A004B
74479 +:1088C000A38D001CAF8000248E2400248F850024FB
74480 +:1088D000240D0008AF800020AF8000283C01080074
74481 +:1088E000A42D3FC63C010800A4203FDA0E000B83F4
74482 +:1088F000000030219228003C8FBF00188FB1001477
74483 +:108900008FB0001000086142AF82002C27BD00200C
74484 +:1089100003E000083182000190B80032240E00010B
74485 +:10892000330F00FF000F2182108E00412419000236
74486 +:108930001099006434C40AC03C03800034640A0007
74487 +:108940008C8F002415E0001E34660900909F0030D3
74488 +:108950002418000533F9003F1338004E24030001AA
74489 +:108960008F860020A383001CAF860028AF860024DA
74490 +:108970003C0E800035D10A008E2400248F8500240F
74491 +:10898000240D00083C010800A42D3FC63C0108004E
74492 +:10899000A4203FDA0E000B83000000009228003C68
74493 +:1089A0008FBF00188FB100148FB000100008614213
74494 +:1089B000AF82002C27BD002003E0000831820001B7
74495 +:1089C0008C8A00088C8B00248CD000643C0E8000C4
74496 +:1089D00035D10A00014B2823AF900024A380001C4E
74497 +:1089E000AF8500288E2400248F8600208F850024E8
74498 +:1089F000240D00083C010800A42D3FC63C010800DE
74499 +:108A0000A4203FDA0E000B83000000009228003CF7
74500 +:108A10008FBF00188FB100148FB0001000086142A2
74501 +:108A2000AF82002C27BD002003E000083182000146
74502 +:108A300090A200303051003F5224002834C50AC0B3
74503 +:108A40008CB000241600002234CB09008CA600480C
74504 +:108A50003C0A7FFF3545FFFF00C510243C0E800017
74505 +:108A6000AF82002035C509008F8800208CAD0060E2
74506 +:108A7000010D602B15800002010020218CA40060F4
74507 +:108A80000A000C22AF8400208D02006C0A000BFC4F
74508 +:108A90003C0680008C8200488F8600203C097FFFC6
74509 +:108AA0003527FFFF004788243C0480082403000189
74510 +:108AB000AF910028AC80006CA383001C0A000C302E
74511 +:108AC000AF8600248C9F00140A000C22AF9F002068
74512 +:108AD0008D6200680A000C6C3C0E800034C4098072
74513 +:108AE0008C8900708CA300140123382B10E0000443
74514 +:108AF000000000008C8200700A000C6C3C0E8000AC
74515 +:108B00008CA200140A000C6C3C0E80008F8500249F
74516 +:108B100027BDFFE0AFBF0018AFB1001414A00008DC
74517 +:108B2000AFB000103C04800034870A0090E60030AB
74518 +:108B30002402000530C3003F106200B934840900EC
74519 +:108B40008F91002000A080213C048000348E0A0018
74520 +:108B50008DCD00043C0608008CC63FB831A73FFF0E
74521 +:108B600000E6602B5580000100E03021938F001C4F
74522 +:108B700011E0007800D0282B349F098093F9007C05
74523 +:108B800033380002130000792403003400C3102B93
74524 +:108B9000144000D90000000000C3302300D0282B6F
74525 +:108BA0003C010800A4233FC414A0006E0200182159
74526 +:108BB0003C0408008C843FB40064402B5500000145
74527 +:108BC000006020213C05800034A90A00912A003C65
74528 +:108BD0003C010800AC243FBC31430020146000037A
74529 +:108BE0000000482134AB0E008D6900188F88002CDE
74530 +:108BF0000128202B1080005F000000003C050800C9
74531 +:108C00008CA53FBC00A96821010D602B1180005C80
74532 +:108C100000B0702B0109382300E028213C01080036
74533 +:108C2000AC273FBC12000003240AFFFC10B0008DEB
74534 +:108C30003224000300AA18243C010800A4203FDAD3
74535 +:108C40003C010800AC233FBC006028218F84002435
74536 +:108C5000120400063C0B80088D6C006C0200202181
74537 +:108C6000AF91002025900001AD70006C8F8D002821
74538 +:108C700000858823AF91002401A52023AF8400281C
74539 +:108C80001220000224070018240700103C18800856
74540 +:108C90003706008090CF00683C010800A0273FD82D
74541 +:108CA0002407000131EE00FF11C70047000000005B
74542 +:108CB00014800018000028213C06800034D109806F
74543 +:108CC00034CD010091A600098E2C001824C40001A7
74544 +:108CD000000C86023205007F308B007F1165007F1B
74545 +:108CE0002407FF803C19800837290080A124004C0C
74546 +:108CF0003C0808008D083FD4241800023C010800FD
74547 +:108D0000A0384019350F00083C010800AC2F3FD4B3
74548 +:108D1000240500103C02800034440A009083003C8B
74549 +:108D2000307F002013E0000500A02021240A00016C
74550 +:108D30003C010800AC2A3FBC34A400018FBF0018DE
74551 +:108D40008FB100148FB000100080102103E00008E4
74552 +:108D500027BD00203C010800A4203FC410A0FF94C0
74553 +:108D6000020018210A000CC000C018210A000CB72C
74554 +:108D7000240300303C0508008CA53FBC00B0702BDC
74555 +:108D800011C0FFA8000000003C19080097393FC43B
74556 +:108D90000325C0210307782B11E000072CAA00044B
74557 +:108DA0003C0360008C625404305F003F17E0FFE337
74558 +:108DB000240400422CAA00041140FF9A240400421B
74559 +:108DC0000A000D248FBF00181528FFB9000000000D
74560 +:108DD0008CCA00183C1F800024020002015F182585
74561 +:108DE000ACC3001837F90A00A0C200689329003C00
74562 +:108DF0002404000400A01021312800203C010800B8
74563 +:108E0000A0244019110000022405001024020001D2
74564 +:108E10003C010800AC223FB40A000D1A3C0280005D
74565 +:108E20008F8800288C8900600109282B14A000027B
74566 +:108E3000010088218C9100603C048000348B0E007E
74567 +:108E40008D640018240A000102202821022030210C
74568 +:108E5000A38A001C0E000B83022080210A000CA6AE
74569 +:108E6000AF82002C00045823122000073164000355
74570 +:108E70003C0E800035C7098090ED007C31AC0004C9
74571 +:108E800015800019248F00043C010800A4243FDA57
74572 +:108E90003C1F080097FF3FDA03E5C82100D9C02B2B
74573 +:108EA0001300FF6B8F8400242CA6000514C0FFA3C1
74574 +:108EB0002404004230A200031440000200A2182340
74575 +:108EC00024A3FFFC3C010800AC233FBC3C0108008C
74576 +:108ED000A4203FDA0A000CE70060282100C77024B4
74577 +:108EE0000A000D0D01C720263C010800A42F3FDA1F
74578 +:108EF0000A000D78000000003C010800AC203FBCD7
74579 +:108F00000A000D23240400428F8300283C058000C2
74580 +:108F100034AA0A00146000060000102191470030B6
74581 +:108F20002406000530E400FF108600030000000066
74582 +:108F300003E0000800000000914B0048316900FF89
74583 +:108F4000000941C21500FFFA3C0680083C040800F5
74584 +:108F500094843FC43C0308008C633FDC3C19080048
74585 +:108F60008F393FBC3C0F080095EF3FDA0064C02109
74586 +:108F70008CCD00040319702101CF602134AB0E00A9
74587 +:108F8000018D282318A0001D00000000914F004C07
74588 +:108F90008F8C0034956D001031EE00FF8D89000438
74589 +:108FA00001AE30238D8A000030CEFFFF000E290075
74590 +:108FB0000125C82100003821014720210325182B55
74591 +:108FC0000083C021AD990004AD980000918F000A84
74592 +:108FD00001CF6821A18D000A956500128F8A0034A7
74593 +:108FE000A5450008954B003825690001A5490038C2
74594 +:108FF0009148000D35070008A147000D03E0000867
74595 +:109000000000000027BDFFD8AFB000189388001CF7
74596 +:109010008FB000143C0A80003C197FFF8F8700242A
74597 +:109020003738FFFFAFBF0020AFB1001C355F0A002B
74598 +:109030000218182493EB003C00087FC03C02BFFFDD
74599 +:10904000006F60252CF000013449FFFF3C1F080031
74600 +:109050008FFF3FDC8F9900303C18080097183FD2F3
74601 +:1090600001897824001047803C07EFFF3C05F0FFA2
74602 +:1090700001E818253C1180003169002034E2FFFF2F
74603 +:1090800034ADFFFF362E098027A50010240600020C
74604 +:1090900003F96023270B0002354A0E0000621824F2
74605 +:1090A0000080802115200002000040218D48001C16
74606 +:1090B000A7AB0012058000392407000030E800FF4C
74607 +:1090C00000083F00006758253C028008AFAB001441
74608 +:1090D000344F008091EA00683C08080091083FD9AD
74609 +:1090E0003C09DFFF352CFFFF000AF82B3C0208008B
74610 +:1090F00094423FCCA3A80011016CC024001FCF40B4
74611 +:10910000031918258FA70010AFA300143C0C08000A
74612 +:10911000918C3FDBA7A200168FAB001400ED482412
74613 +:109120003C0F01003C0A0FFF012FC82531980003B6
74614 +:10913000355FFFFF016D40243C027000033F38247F
74615 +:1091400000181E0000E2482501037825AFAF001487
74616 +:10915000AFA9001091CC007C0E000092A3AC0015CA
74617 +:10916000362D0A0091A6003C30C400201080000675
74618 +:10917000260200083C11080096313FC8262EFFFF4A
74619 +:109180003C010800A42E3FC88FBF00208FB1001CF7
74620 +:109190008FB0001803E0000827BD00288F8B002C3B
74621 +:1091A000010B502B5540FFC5240700010A000E0497
74622 +:1091B00030E800FF9383001C3C02800027BDFFD8ED
74623 +:1091C00034480A0000805021AFBF002034460AC056
74624 +:1091D000010028211060000E3444098091070030FE
74625 +:1091E000240B00058F89002030EC003F118B000B11
74626 +:1091F00000003821AFA900103C0B80088D69006C7D
74627 +:10920000AFAA00180E00015AAFA90014A380001CD9
74628 +:109210008FBF002003E0000827BD00288D1F0048F5
74629 +:109220003C1808008F183FBC8F9900283C027FFF34
74630 +:109230008D0800443443FFFFAFA900103C0B8008A9
74631 +:109240008D69006C03E370240319782101CF682332
74632 +:1092500001A83821AFAA00180E00015AAFA90014C6
74633 +:109260000A000E58A380001C3C05800034A60A00AA
74634 +:1092700090C7003C3C06080094C63FDA3C02080058
74635 +:109280008C423FD430E30020000624001060001E12
74636 +:10929000004438253C0880083505008090A300680C
74637 +:1092A00000004821240800010000282124040001B6
74638 +:1092B0003C0680008CCD017805A0FFFE34CF014034
74639 +:1092C000ADE800083C0208008C423FDCA5E5000444
74640 +:1092D000A5E40006ADE2000C3C04080090843FD9F0
74641 +:1092E0003C03800834790080A1E40012ADE700144B
74642 +:1092F000A5E900189338004C3C0E1000A1F8002D91
74643 +:1093000003E00008ACCE017834A90E008D28001CC3
74644 +:109310003C0C08008D8C3FBC952B0016952A001440
74645 +:10932000018648213164FFFF0A000E803145FFFFAE
74646 +:109330003C04800034830A009065003C30A2002089
74647 +:109340001040001934870E00000040210000382131
74648 +:10935000000020213C0680008CC901780520FFFE1A
74649 +:1093600034CA014034CF010091EB0009AD48000838
74650 +:109370003C0E08008DCE3FDC240DFF91240C0040F4
74651 +:109380003C081000A5440004A5470006AD4E000CA3
74652 +:10939000A14D0012AD4C0014A5400018A14B002DAA
74653 +:1093A00003E00008ACC801788CE8001894E60012CD
74654 +:1093B00094E4001030C7FFFF0A000EA93084FFFFBD
74655 +:1093C0003C04800034830A009065003C30A20020F9
74656 +:1093D0001040002727BDFFF82409000100003821B4
74657 +:1093E000240800013C0680008CCA01780540FFFE7D
74658 +:1093F0003C0280FF34C40100908D00093C0C080041
74659 +:10940000918C4019A3AD00038FAB00003185007F24
74660 +:109410003459FFFF01665025AFAA00009083000A6F
74661 +:10942000A3A0000200057E00A3A300018FB80000E6
74662 +:1094300034CB0140240C30000319702401CF68257F
74663 +:10944000AD6D000C27BD0008AD6C0014A5600018C0
74664 +:10945000AD690008A56700042409FF80A56800061F
74665 +:109460003C081000A169001203E00008ACC80178B4
74666 +:1094700034870E008CE9001894E6001294E4001082
74667 +:1094800030C8FFFF0A000ECD3087FFFF27BDFFE089
74668 +:10949000AFB100143C118000AFB00010AFBF001896
74669 +:1094A00036380A00970F0032363001000E000B7F6D
74670 +:1094B00031E43FFF8E0E0000240DFF803C042000AD
74671 +:1094C00001C25821016D6024000C4940316A007FBF
74672 +:1094D000012A4025010438253C048008AE270830C5
74673 +:1094E0003486008090C500682403000230A200FF8B
74674 +:1094F000104300048F9F00208F990024AC9F0068C8
74675 +:10950000AC9900648FBF00188FB100148FB00010A9
74676 +:1095100003E0000827BD00203C0A0800254A3A80E5
74677 +:109520003C09080025293B103C08080025082F1C91
74678 +:109530003C07080024E73BDC3C06080024C639044D
74679 +:109540003C05080024A536583C0408002484325CFD
74680 +:109550003C030800246339B83C0208002442375415
74681 +:109560003C010800AC2A3F983C010800AC293F941C
74682 +:109570003C010800AC283F903C010800AC273F9C10
74683 +:109580003C010800AC263FAC3C010800AC253FA4E0
74684 +:109590003C010800AC243FA03C010800AC233FB0D4
74685 +:1095A0003C010800AC223FA803E0000800000000D6
74686 +:1095B00080000940800009008008010080080080C8
74687 +:1095C00080080000800E00008008008080080000F5
74688 +:1095D00080000A8080000A00800009808000090065
74689 +:00000001FF
74690 diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
74691 index b1dc518..2f97461 100644
74692 --- a/fs/9p/vfs_inode.c
74693 +++ b/fs/9p/vfs_inode.c
74694 @@ -451,9 +451,9 @@ void v9fs_evict_inode(struct inode *inode)
74695 {
74696 struct v9fs_inode *v9inode = V9FS_I(inode);
74697
74698 - truncate_inode_pages_final(inode->i_mapping);
74699 + truncate_inode_pages_final(&inode->i_data);
74700 clear_inode(inode);
74701 - filemap_fdatawrite(inode->i_mapping);
74702 + filemap_fdatawrite(&inode->i_data);
74703
74704 v9fs_cache_inode_put_cookie(inode);
74705 /* clunk the fid stashed in writeback_fid */
74706 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
74707 index 2d0cbbd..a6d61492 100644
74708 --- a/fs/Kconfig.binfmt
74709 +++ b/fs/Kconfig.binfmt
74710 @@ -103,7 +103,7 @@ config HAVE_AOUT
74711
74712 config BINFMT_AOUT
74713 tristate "Kernel support for a.out and ECOFF binaries"
74714 - depends on HAVE_AOUT
74715 + depends on HAVE_AOUT && BROKEN
74716 ---help---
74717 A.out (Assembler.OUTput) is a set of formats for libraries and
74718 executables used in the earliest versions of UNIX. Linux used
74719 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
74720 index e06f5a2..81d07ac 100644
74721 --- a/fs/afs/inode.c
74722 +++ b/fs/afs/inode.c
74723 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74724 struct afs_vnode *vnode;
74725 struct super_block *sb;
74726 struct inode *inode;
74727 - static atomic_t afs_autocell_ino;
74728 + static atomic_unchecked_t afs_autocell_ino;
74729
74730 _enter("{%x:%u},%*.*s,",
74731 AFS_FS_I(dir)->fid.vid, AFS_FS_I(dir)->fid.vnode,
74732 @@ -154,7 +154,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74733 data.fid.unique = 0;
74734 data.fid.vnode = 0;
74735
74736 - inode = iget5_locked(sb, atomic_inc_return(&afs_autocell_ino),
74737 + inode = iget5_locked(sb, atomic_inc_return_unchecked(&afs_autocell_ino),
74738 afs_iget5_autocell_test, afs_iget5_set,
74739 &data);
74740 if (!inode) {
74741 diff --git a/fs/aio.c b/fs/aio.c
74742 index 155f842..89922d8 100644
74743 --- a/fs/aio.c
74744 +++ b/fs/aio.c
74745 @@ -450,7 +450,7 @@ static int aio_setup_ring(struct kioctx *ctx)
74746 size += sizeof(struct io_event) * nr_events;
74747
74748 nr_pages = PFN_UP(size);
74749 - if (nr_pages < 0)
74750 + if (nr_pages <= 0)
74751 return -EINVAL;
74752
74753 file = aio_private_file(ctx, nr_pages);
74754 diff --git a/fs/attr.c b/fs/attr.c
74755 index 6530ced..4a827e2 100644
74756 --- a/fs/attr.c
74757 +++ b/fs/attr.c
74758 @@ -102,6 +102,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
74759 unsigned long limit;
74760
74761 limit = rlimit(RLIMIT_FSIZE);
74762 + gr_learn_resource(current, RLIMIT_FSIZE, (unsigned long)offset, 1);
74763 if (limit != RLIM_INFINITY && offset > limit)
74764 goto out_sig;
74765 if (offset > inode->i_sb->s_maxbytes)
74766 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
74767 index 35b755e..f4b9e0a 100644
74768 --- a/fs/autofs4/waitq.c
74769 +++ b/fs/autofs4/waitq.c
74770 @@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
74771 {
74772 unsigned long sigpipe, flags;
74773 mm_segment_t fs;
74774 - const char *data = (const char *)addr;
74775 + const char __user *data = (const char __force_user *)addr;
74776 ssize_t wr = 0;
74777
74778 sigpipe = sigismember(&current->pending.signal, SIGPIPE);
74779 @@ -340,6 +340,10 @@ static int validate_request(struct autofs_wait_queue **wait,
74780 return 1;
74781 }
74782
74783 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74784 +static atomic_unchecked_t autofs_dummy_name_id = ATOMIC_INIT(0);
74785 +#endif
74786 +
74787 int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74788 enum autofs_notify notify)
74789 {
74790 @@ -385,7 +389,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74791
74792 /* If this is a direct mount request create a dummy name */
74793 if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
74794 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74795 + /* this name does get written to userland via autofs4_write() */
74796 + qstr.len = sprintf(name, "%08x", atomic_inc_return_unchecked(&autofs_dummy_name_id));
74797 +#else
74798 qstr.len = sprintf(name, "%p", dentry);
74799 +#endif
74800 else {
74801 qstr.len = autofs4_getpath(sbi, dentry, &name);
74802 if (!qstr.len) {
74803 diff --git a/fs/befs/endian.h b/fs/befs/endian.h
74804 index 2722387..56059b5 100644
74805 --- a/fs/befs/endian.h
74806 +++ b/fs/befs/endian.h
74807 @@ -11,7 +11,7 @@
74808
74809 #include <asm/byteorder.h>
74810
74811 -static inline u64
74812 +static inline u64 __intentional_overflow(-1)
74813 fs64_to_cpu(const struct super_block *sb, fs64 n)
74814 {
74815 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74816 @@ -29,7 +29,7 @@ cpu_to_fs64(const struct super_block *sb, u64 n)
74817 return (__force fs64)cpu_to_be64(n);
74818 }
74819
74820 -static inline u32
74821 +static inline u32 __intentional_overflow(-1)
74822 fs32_to_cpu(const struct super_block *sb, fs32 n)
74823 {
74824 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74825 @@ -47,7 +47,7 @@ cpu_to_fs32(const struct super_block *sb, u32 n)
74826 return (__force fs32)cpu_to_be32(n);
74827 }
74828
74829 -static inline u16
74830 +static inline u16 __intentional_overflow(-1)
74831 fs16_to_cpu(const struct super_block *sb, fs16 n)
74832 {
74833 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74834 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
74835 index 4c55668..eeae150 100644
74836 --- a/fs/binfmt_aout.c
74837 +++ b/fs/binfmt_aout.c
74838 @@ -16,6 +16,7 @@
74839 #include <linux/string.h>
74840 #include <linux/fs.h>
74841 #include <linux/file.h>
74842 +#include <linux/security.h>
74843 #include <linux/stat.h>
74844 #include <linux/fcntl.h>
74845 #include <linux/ptrace.h>
74846 @@ -58,6 +59,8 @@ static int aout_core_dump(struct coredump_params *cprm)
74847 #endif
74848 # define START_STACK(u) ((void __user *)u.start_stack)
74849
74850 + memset(&dump, 0, sizeof(dump));
74851 +
74852 fs = get_fs();
74853 set_fs(KERNEL_DS);
74854 has_dumped = 1;
74855 @@ -68,10 +71,12 @@ static int aout_core_dump(struct coredump_params *cprm)
74856
74857 /* If the size of the dump file exceeds the rlimit, then see what would happen
74858 if we wrote the stack, but not the data area. */
74859 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE, 1);
74860 if ((dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE > cprm->limit)
74861 dump.u_dsize = 0;
74862
74863 /* Make sure we have enough room to write the stack and data areas. */
74864 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_ssize + 1) * PAGE_SIZE, 1);
74865 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
74866 dump.u_ssize = 0;
74867
74868 @@ -232,6 +237,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
74869 rlim = rlimit(RLIMIT_DATA);
74870 if (rlim >= RLIM_INFINITY)
74871 rlim = ~0;
74872 +
74873 + gr_learn_resource(current, RLIMIT_DATA, ex.a_data + ex.a_bss, 1);
74874 if (ex.a_data + ex.a_bss > rlim)
74875 return -ENOMEM;
74876
74877 @@ -261,6 +268,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
74878
74879 install_exec_creds(bprm);
74880
74881 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
74882 + current->mm->pax_flags = 0UL;
74883 +#endif
74884 +
74885 +#ifdef CONFIG_PAX_PAGEEXEC
74886 + if (!(N_FLAGS(ex) & F_PAX_PAGEEXEC)) {
74887 + current->mm->pax_flags |= MF_PAX_PAGEEXEC;
74888 +
74889 +#ifdef CONFIG_PAX_EMUTRAMP
74890 + if (N_FLAGS(ex) & F_PAX_EMUTRAMP)
74891 + current->mm->pax_flags |= MF_PAX_EMUTRAMP;
74892 +#endif
74893 +
74894 +#ifdef CONFIG_PAX_MPROTECT
74895 + if (!(N_FLAGS(ex) & F_PAX_MPROTECT))
74896 + current->mm->pax_flags |= MF_PAX_MPROTECT;
74897 +#endif
74898 +
74899 + }
74900 +#endif
74901 +
74902 if (N_MAGIC(ex) == OMAGIC) {
74903 unsigned long text_addr, map_size;
74904 loff_t pos;
74905 @@ -312,7 +340,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
74906 return error;
74907
74908 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
74909 - PROT_READ | PROT_WRITE | PROT_EXEC,
74910 + PROT_READ | PROT_WRITE,
74911 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
74912 fd_offset + ex.a_text);
74913 if (error != N_DATADDR(ex))
74914 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
74915 index 6b65996..be797cf 100644
74916 --- a/fs/binfmt_elf.c
74917 +++ b/fs/binfmt_elf.c
74918 @@ -35,6 +35,7 @@
74919 #include <linux/utsname.h>
74920 #include <linux/coredump.h>
74921 #include <linux/sched.h>
74922 +#include <linux/xattr.h>
74923 #include <asm/uaccess.h>
74924 #include <asm/param.h>
74925 #include <asm/page.h>
74926 @@ -66,6 +67,14 @@ static int elf_core_dump(struct coredump_params *cprm);
74927 #define elf_core_dump NULL
74928 #endif
74929
74930 +#ifdef CONFIG_PAX_MPROTECT
74931 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags);
74932 +#endif
74933 +
74934 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
74935 +static void elf_handle_mmap(struct file *file);
74936 +#endif
74937 +
74938 #if ELF_EXEC_PAGESIZE > PAGE_SIZE
74939 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
74940 #else
74941 @@ -85,6 +94,15 @@ static struct linux_binfmt elf_format = {
74942 .load_binary = load_elf_binary,
74943 .load_shlib = load_elf_library,
74944 .core_dump = elf_core_dump,
74945 +
74946 +#ifdef CONFIG_PAX_MPROTECT
74947 + .handle_mprotect= elf_handle_mprotect,
74948 +#endif
74949 +
74950 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
74951 + .handle_mmap = elf_handle_mmap,
74952 +#endif
74953 +
74954 .min_coredump = ELF_EXEC_PAGESIZE,
74955 };
74956
74957 @@ -92,6 +110,8 @@ static struct linux_binfmt elf_format = {
74958
74959 static int set_brk(unsigned long start, unsigned long end)
74960 {
74961 + unsigned long e = end;
74962 +
74963 start = ELF_PAGEALIGN(start);
74964 end = ELF_PAGEALIGN(end);
74965 if (end > start) {
74966 @@ -100,7 +120,7 @@ static int set_brk(unsigned long start, unsigned long end)
74967 if (BAD_ADDR(addr))
74968 return addr;
74969 }
74970 - current->mm->start_brk = current->mm->brk = end;
74971 + current->mm->start_brk = current->mm->brk = e;
74972 return 0;
74973 }
74974
74975 @@ -161,12 +181,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
74976 elf_addr_t __user *u_rand_bytes;
74977 const char *k_platform = ELF_PLATFORM;
74978 const char *k_base_platform = ELF_BASE_PLATFORM;
74979 - unsigned char k_rand_bytes[16];
74980 + u32 k_rand_bytes[4];
74981 int items;
74982 elf_addr_t *elf_info;
74983 int ei_index = 0;
74984 const struct cred *cred = current_cred();
74985 struct vm_area_struct *vma;
74986 + unsigned long saved_auxv[AT_VECTOR_SIZE];
74987
74988 /*
74989 * In some cases (e.g. Hyper-Threading), we want to avoid L1
74990 @@ -208,8 +229,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
74991 * Generate 16 random bytes for userspace PRNG seeding.
74992 */
74993 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
74994 - u_rand_bytes = (elf_addr_t __user *)
74995 - STACK_ALLOC(p, sizeof(k_rand_bytes));
74996 + prandom_seed(k_rand_bytes[0] ^ prandom_u32());
74997 + prandom_seed(k_rand_bytes[1] ^ prandom_u32());
74998 + prandom_seed(k_rand_bytes[2] ^ prandom_u32());
74999 + prandom_seed(k_rand_bytes[3] ^ prandom_u32());
75000 + p = STACK_ROUND(p, sizeof(k_rand_bytes));
75001 + u_rand_bytes = (elf_addr_t __user *) p;
75002 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
75003 return -EFAULT;
75004
75005 @@ -324,9 +349,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
75006 return -EFAULT;
75007 current->mm->env_end = p;
75008
75009 + memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
75010 +
75011 /* Put the elf_info on the stack in the right place. */
75012 sp = (elf_addr_t __user *)envp + 1;
75013 - if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
75014 + if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
75015 return -EFAULT;
75016 return 0;
75017 }
75018 @@ -515,14 +542,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
75019 an ELF header */
75020
75021 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75022 - struct file *interpreter, unsigned long *interp_map_addr,
75023 + struct file *interpreter,
75024 unsigned long no_base, struct elf_phdr *interp_elf_phdata)
75025 {
75026 struct elf_phdr *eppnt;
75027 - unsigned long load_addr = 0;
75028 + unsigned long load_addr = 0, pax_task_size = TASK_SIZE;
75029 int load_addr_set = 0;
75030 unsigned long last_bss = 0, elf_bss = 0;
75031 - unsigned long error = ~0UL;
75032 + unsigned long error = -EINVAL;
75033 unsigned long total_size;
75034 int i;
75035
75036 @@ -542,6 +569,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75037 goto out;
75038 }
75039
75040 +#ifdef CONFIG_PAX_SEGMEXEC
75041 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
75042 + pax_task_size = SEGMEXEC_TASK_SIZE;
75043 +#endif
75044 +
75045 eppnt = interp_elf_phdata;
75046 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
75047 if (eppnt->p_type == PT_LOAD) {
75048 @@ -565,8 +597,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75049 map_addr = elf_map(interpreter, load_addr + vaddr,
75050 eppnt, elf_prot, elf_type, total_size);
75051 total_size = 0;
75052 - if (!*interp_map_addr)
75053 - *interp_map_addr = map_addr;
75054 error = map_addr;
75055 if (BAD_ADDR(map_addr))
75056 goto out;
75057 @@ -585,8 +615,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75058 k = load_addr + eppnt->p_vaddr;
75059 if (BAD_ADDR(k) ||
75060 eppnt->p_filesz > eppnt->p_memsz ||
75061 - eppnt->p_memsz > TASK_SIZE ||
75062 - TASK_SIZE - eppnt->p_memsz < k) {
75063 + eppnt->p_memsz > pax_task_size ||
75064 + pax_task_size - eppnt->p_memsz < k) {
75065 error = -ENOMEM;
75066 goto out;
75067 }
75068 @@ -625,9 +655,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75069 elf_bss = ELF_PAGESTART(elf_bss + ELF_MIN_ALIGN - 1);
75070
75071 /* Map the last of the bss segment */
75072 - error = vm_brk(elf_bss, last_bss - elf_bss);
75073 - if (BAD_ADDR(error))
75074 - goto out;
75075 + if (last_bss > elf_bss) {
75076 + error = vm_brk(elf_bss, last_bss - elf_bss);
75077 + if (BAD_ADDR(error))
75078 + goto out;
75079 + }
75080 }
75081
75082 error = load_addr;
75083 @@ -635,6 +667,336 @@ out:
75084 return error;
75085 }
75086
75087 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75088 +#ifdef CONFIG_PAX_SOFTMODE
75089 +static unsigned long pax_parse_pt_pax_softmode(const struct elf_phdr * const elf_phdata)
75090 +{
75091 + unsigned long pax_flags = 0UL;
75092 +
75093 +#ifdef CONFIG_PAX_PAGEEXEC
75094 + if (elf_phdata->p_flags & PF_PAGEEXEC)
75095 + pax_flags |= MF_PAX_PAGEEXEC;
75096 +#endif
75097 +
75098 +#ifdef CONFIG_PAX_SEGMEXEC
75099 + if (elf_phdata->p_flags & PF_SEGMEXEC)
75100 + pax_flags |= MF_PAX_SEGMEXEC;
75101 +#endif
75102 +
75103 +#ifdef CONFIG_PAX_EMUTRAMP
75104 + if ((elf_phdata->p_flags & PF_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
75105 + pax_flags |= MF_PAX_EMUTRAMP;
75106 +#endif
75107 +
75108 +#ifdef CONFIG_PAX_MPROTECT
75109 + if (elf_phdata->p_flags & PF_MPROTECT)
75110 + pax_flags |= MF_PAX_MPROTECT;
75111 +#endif
75112 +
75113 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75114 + if (randomize_va_space && (elf_phdata->p_flags & PF_RANDMMAP))
75115 + pax_flags |= MF_PAX_RANDMMAP;
75116 +#endif
75117 +
75118 + return pax_flags;
75119 +}
75120 +#endif
75121 +
75122 +static unsigned long pax_parse_pt_pax_hardmode(const struct elf_phdr * const elf_phdata)
75123 +{
75124 + unsigned long pax_flags = 0UL;
75125 +
75126 +#ifdef CONFIG_PAX_PAGEEXEC
75127 + if (!(elf_phdata->p_flags & PF_NOPAGEEXEC))
75128 + pax_flags |= MF_PAX_PAGEEXEC;
75129 +#endif
75130 +
75131 +#ifdef CONFIG_PAX_SEGMEXEC
75132 + if (!(elf_phdata->p_flags & PF_NOSEGMEXEC))
75133 + pax_flags |= MF_PAX_SEGMEXEC;
75134 +#endif
75135 +
75136 +#ifdef CONFIG_PAX_EMUTRAMP
75137 + if (!(elf_phdata->p_flags & PF_NOEMUTRAMP))
75138 + pax_flags |= MF_PAX_EMUTRAMP;
75139 +#endif
75140 +
75141 +#ifdef CONFIG_PAX_MPROTECT
75142 + if (!(elf_phdata->p_flags & PF_NOMPROTECT))
75143 + pax_flags |= MF_PAX_MPROTECT;
75144 +#endif
75145 +
75146 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75147 + if (randomize_va_space && !(elf_phdata->p_flags & PF_NORANDMMAP))
75148 + pax_flags |= MF_PAX_RANDMMAP;
75149 +#endif
75150 +
75151 + return pax_flags;
75152 +}
75153 +#endif
75154 +
75155 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
75156 +#ifdef CONFIG_PAX_SOFTMODE
75157 +static unsigned long pax_parse_xattr_pax_softmode(unsigned long pax_flags_softmode)
75158 +{
75159 + unsigned long pax_flags = 0UL;
75160 +
75161 +#ifdef CONFIG_PAX_PAGEEXEC
75162 + if (pax_flags_softmode & MF_PAX_PAGEEXEC)
75163 + pax_flags |= MF_PAX_PAGEEXEC;
75164 +#endif
75165 +
75166 +#ifdef CONFIG_PAX_SEGMEXEC
75167 + if (pax_flags_softmode & MF_PAX_SEGMEXEC)
75168 + pax_flags |= MF_PAX_SEGMEXEC;
75169 +#endif
75170 +
75171 +#ifdef CONFIG_PAX_EMUTRAMP
75172 + if ((pax_flags_softmode & MF_PAX_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
75173 + pax_flags |= MF_PAX_EMUTRAMP;
75174 +#endif
75175 +
75176 +#ifdef CONFIG_PAX_MPROTECT
75177 + if (pax_flags_softmode & MF_PAX_MPROTECT)
75178 + pax_flags |= MF_PAX_MPROTECT;
75179 +#endif
75180 +
75181 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75182 + if (randomize_va_space && (pax_flags_softmode & MF_PAX_RANDMMAP))
75183 + pax_flags |= MF_PAX_RANDMMAP;
75184 +#endif
75185 +
75186 + return pax_flags;
75187 +}
75188 +#endif
75189 +
75190 +static unsigned long pax_parse_xattr_pax_hardmode(unsigned long pax_flags_hardmode)
75191 +{
75192 + unsigned long pax_flags = 0UL;
75193 +
75194 +#ifdef CONFIG_PAX_PAGEEXEC
75195 + if (!(pax_flags_hardmode & MF_PAX_PAGEEXEC))
75196 + pax_flags |= MF_PAX_PAGEEXEC;
75197 +#endif
75198 +
75199 +#ifdef CONFIG_PAX_SEGMEXEC
75200 + if (!(pax_flags_hardmode & MF_PAX_SEGMEXEC))
75201 + pax_flags |= MF_PAX_SEGMEXEC;
75202 +#endif
75203 +
75204 +#ifdef CONFIG_PAX_EMUTRAMP
75205 + if (!(pax_flags_hardmode & MF_PAX_EMUTRAMP))
75206 + pax_flags |= MF_PAX_EMUTRAMP;
75207 +#endif
75208 +
75209 +#ifdef CONFIG_PAX_MPROTECT
75210 + if (!(pax_flags_hardmode & MF_PAX_MPROTECT))
75211 + pax_flags |= MF_PAX_MPROTECT;
75212 +#endif
75213 +
75214 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75215 + if (randomize_va_space && !(pax_flags_hardmode & MF_PAX_RANDMMAP))
75216 + pax_flags |= MF_PAX_RANDMMAP;
75217 +#endif
75218 +
75219 + return pax_flags;
75220 +}
75221 +#endif
75222 +
75223 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75224 +static unsigned long pax_parse_defaults(void)
75225 +{
75226 + unsigned long pax_flags = 0UL;
75227 +
75228 +#ifdef CONFIG_PAX_SOFTMODE
75229 + if (pax_softmode)
75230 + return pax_flags;
75231 +#endif
75232 +
75233 +#ifdef CONFIG_PAX_PAGEEXEC
75234 + pax_flags |= MF_PAX_PAGEEXEC;
75235 +#endif
75236 +
75237 +#ifdef CONFIG_PAX_SEGMEXEC
75238 + pax_flags |= MF_PAX_SEGMEXEC;
75239 +#endif
75240 +
75241 +#ifdef CONFIG_PAX_MPROTECT
75242 + pax_flags |= MF_PAX_MPROTECT;
75243 +#endif
75244 +
75245 +#ifdef CONFIG_PAX_RANDMMAP
75246 + if (randomize_va_space)
75247 + pax_flags |= MF_PAX_RANDMMAP;
75248 +#endif
75249 +
75250 + return pax_flags;
75251 +}
75252 +
75253 +static unsigned long pax_parse_ei_pax(const struct elfhdr * const elf_ex)
75254 +{
75255 + unsigned long pax_flags = PAX_PARSE_FLAGS_FALLBACK;
75256 +
75257 +#ifdef CONFIG_PAX_EI_PAX
75258 +
75259 +#ifdef CONFIG_PAX_SOFTMODE
75260 + if (pax_softmode)
75261 + return pax_flags;
75262 +#endif
75263 +
75264 + pax_flags = 0UL;
75265 +
75266 +#ifdef CONFIG_PAX_PAGEEXEC
75267 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_PAGEEXEC))
75268 + pax_flags |= MF_PAX_PAGEEXEC;
75269 +#endif
75270 +
75271 +#ifdef CONFIG_PAX_SEGMEXEC
75272 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_SEGMEXEC))
75273 + pax_flags |= MF_PAX_SEGMEXEC;
75274 +#endif
75275 +
75276 +#ifdef CONFIG_PAX_EMUTRAMP
75277 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && (elf_ex->e_ident[EI_PAX] & EF_PAX_EMUTRAMP))
75278 + pax_flags |= MF_PAX_EMUTRAMP;
75279 +#endif
75280 +
75281 +#ifdef CONFIG_PAX_MPROTECT
75282 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && !(elf_ex->e_ident[EI_PAX] & EF_PAX_MPROTECT))
75283 + pax_flags |= MF_PAX_MPROTECT;
75284 +#endif
75285 +
75286 +#ifdef CONFIG_PAX_ASLR
75287 + if (randomize_va_space && !(elf_ex->e_ident[EI_PAX] & EF_PAX_RANDMMAP))
75288 + pax_flags |= MF_PAX_RANDMMAP;
75289 +#endif
75290 +
75291 +#endif
75292 +
75293 + return pax_flags;
75294 +
75295 +}
75296 +
75297 +static unsigned long pax_parse_pt_pax(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
75298 +{
75299 +
75300 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75301 + unsigned long i;
75302 +
75303 + for (i = 0UL; i < elf_ex->e_phnum; i++)
75304 + if (elf_phdata[i].p_type == PT_PAX_FLAGS) {
75305 + if (((elf_phdata[i].p_flags & PF_PAGEEXEC) && (elf_phdata[i].p_flags & PF_NOPAGEEXEC)) ||
75306 + ((elf_phdata[i].p_flags & PF_SEGMEXEC) && (elf_phdata[i].p_flags & PF_NOSEGMEXEC)) ||
75307 + ((elf_phdata[i].p_flags & PF_EMUTRAMP) && (elf_phdata[i].p_flags & PF_NOEMUTRAMP)) ||
75308 + ((elf_phdata[i].p_flags & PF_MPROTECT) && (elf_phdata[i].p_flags & PF_NOMPROTECT)) ||
75309 + ((elf_phdata[i].p_flags & PF_RANDMMAP) && (elf_phdata[i].p_flags & PF_NORANDMMAP)))
75310 + return PAX_PARSE_FLAGS_FALLBACK;
75311 +
75312 +#ifdef CONFIG_PAX_SOFTMODE
75313 + if (pax_softmode)
75314 + return pax_parse_pt_pax_softmode(&elf_phdata[i]);
75315 + else
75316 +#endif
75317 +
75318 + return pax_parse_pt_pax_hardmode(&elf_phdata[i]);
75319 + break;
75320 + }
75321 +#endif
75322 +
75323 + return PAX_PARSE_FLAGS_FALLBACK;
75324 +}
75325 +
75326 +static unsigned long pax_parse_xattr_pax(struct file * const file)
75327 +{
75328 +
75329 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
75330 + ssize_t xattr_size, i;
75331 + unsigned char xattr_value[sizeof("pemrs") - 1];
75332 + unsigned long pax_flags_hardmode = 0UL, pax_flags_softmode = 0UL;
75333 +
75334 + xattr_size = pax_getxattr(file->f_path.dentry, xattr_value, sizeof xattr_value);
75335 + if (xattr_size < 0 || xattr_size > sizeof xattr_value)
75336 + return PAX_PARSE_FLAGS_FALLBACK;
75337 +
75338 + for (i = 0; i < xattr_size; i++)
75339 + switch (xattr_value[i]) {
75340 + default:
75341 + return PAX_PARSE_FLAGS_FALLBACK;
75342 +
75343 +#define parse_flag(option1, option2, flag) \
75344 + case option1: \
75345 + if (pax_flags_hardmode & MF_PAX_##flag) \
75346 + return PAX_PARSE_FLAGS_FALLBACK;\
75347 + pax_flags_hardmode |= MF_PAX_##flag; \
75348 + break; \
75349 + case option2: \
75350 + if (pax_flags_softmode & MF_PAX_##flag) \
75351 + return PAX_PARSE_FLAGS_FALLBACK;\
75352 + pax_flags_softmode |= MF_PAX_##flag; \
75353 + break;
75354 +
75355 + parse_flag('p', 'P', PAGEEXEC);
75356 + parse_flag('e', 'E', EMUTRAMP);
75357 + parse_flag('m', 'M', MPROTECT);
75358 + parse_flag('r', 'R', RANDMMAP);
75359 + parse_flag('s', 'S', SEGMEXEC);
75360 +
75361 +#undef parse_flag
75362 + }
75363 +
75364 + if (pax_flags_hardmode & pax_flags_softmode)
75365 + return PAX_PARSE_FLAGS_FALLBACK;
75366 +
75367 +#ifdef CONFIG_PAX_SOFTMODE
75368 + if (pax_softmode)
75369 + return pax_parse_xattr_pax_softmode(pax_flags_softmode);
75370 + else
75371 +#endif
75372 +
75373 + return pax_parse_xattr_pax_hardmode(pax_flags_hardmode);
75374 +#else
75375 + return PAX_PARSE_FLAGS_FALLBACK;
75376 +#endif
75377 +
75378 +}
75379 +
75380 +static long pax_parse_pax_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata, struct file * const file)
75381 +{
75382 + unsigned long pax_flags, ei_pax_flags, pt_pax_flags, xattr_pax_flags;
75383 +
75384 + pax_flags = pax_parse_defaults();
75385 + ei_pax_flags = pax_parse_ei_pax(elf_ex);
75386 + pt_pax_flags = pax_parse_pt_pax(elf_ex, elf_phdata);
75387 + xattr_pax_flags = pax_parse_xattr_pax(file);
75388 +
75389 + if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75390 + xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75391 + pt_pax_flags != xattr_pax_flags)
75392 + return -EINVAL;
75393 + if (xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75394 + pax_flags = xattr_pax_flags;
75395 + else if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75396 + pax_flags = pt_pax_flags;
75397 + else if (ei_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75398 + pax_flags = ei_pax_flags;
75399 +
75400 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
75401 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75402 + if ((__supported_pte_mask & _PAGE_NX))
75403 + pax_flags &= ~MF_PAX_SEGMEXEC;
75404 + else
75405 + pax_flags &= ~MF_PAX_PAGEEXEC;
75406 + }
75407 +#endif
75408 +
75409 + if (0 > pax_check_flags(&pax_flags))
75410 + return -EINVAL;
75411 +
75412 + current->mm->pax_flags = pax_flags;
75413 + return 0;
75414 +}
75415 +#endif
75416 +
75417 /*
75418 * These are the functions used to load ELF style executables and shared
75419 * libraries. There is no binary dependent code anywhere else.
75420 @@ -648,6 +1010,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
75421 {
75422 unsigned long random_variable = 0;
75423
75424 +#ifdef CONFIG_PAX_RANDUSTACK
75425 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
75426 + return stack_top - current->mm->delta_stack;
75427 +#endif
75428 +
75429 if ((current->flags & PF_RANDOMIZE) &&
75430 !(current->personality & ADDR_NO_RANDOMIZE)) {
75431 random_variable = (unsigned long) get_random_int();
75432 @@ -667,7 +1034,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75433 unsigned long load_addr = 0, load_bias = 0;
75434 int load_addr_set = 0;
75435 char * elf_interpreter = NULL;
75436 - unsigned long error;
75437 + unsigned long error = 0;
75438 struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
75439 unsigned long elf_bss, elf_brk;
75440 int retval, i;
75441 @@ -682,6 +1049,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75442 struct elfhdr interp_elf_ex;
75443 } *loc;
75444 struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
75445 + unsigned long pax_task_size;
75446
75447 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
75448 if (!loc) {
75449 @@ -759,16 +1127,16 @@ static int load_elf_binary(struct linux_binprm *bprm)
75450 */
75451 would_dump(bprm, interpreter);
75452
75453 - retval = kernel_read(interpreter, 0, bprm->buf,
75454 - BINPRM_BUF_SIZE);
75455 - if (retval != BINPRM_BUF_SIZE) {
75456 - if (retval >= 0)
75457 - retval = -EIO;
75458 - goto out_free_dentry;
75459 - }
75460 -
75461 /* Get the exec headers */
75462 - loc->interp_elf_ex = *((struct elfhdr *)bprm->buf);
75463 + retval = kernel_read(interpreter, 0,
75464 + (void *)&loc->interp_elf_ex,
75465 + sizeof(loc->interp_elf_ex));
75466 + if (retval != sizeof(loc->interp_elf_ex)) {
75467 + if (retval >= 0)
75468 + retval = -EIO;
75469 + goto out_free_dentry;
75470 + }
75471 +
75472 break;
75473 }
75474 elf_ppnt++;
75475 @@ -840,6 +1208,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
75476 /* Do this immediately, since STACK_TOP as used in setup_arg_pages
75477 may depend on the personality. */
75478 SET_PERSONALITY2(loc->elf_ex, &arch_state);
75479 +
75480 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75481 + current->mm->pax_flags = 0UL;
75482 +#endif
75483 +
75484 +#ifdef CONFIG_PAX_DLRESOLVE
75485 + current->mm->call_dl_resolve = 0UL;
75486 +#endif
75487 +
75488 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
75489 + current->mm->call_syscall = 0UL;
75490 +#endif
75491 +
75492 +#ifdef CONFIG_PAX_ASLR
75493 + current->mm->delta_mmap = 0UL;
75494 + current->mm->delta_stack = 0UL;
75495 +#endif
75496 +
75497 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75498 + if (0 > pax_parse_pax_flags(&loc->elf_ex, elf_phdata, bprm->file)) {
75499 + retval = -EINVAL;
75500 + goto out_free_dentry;
75501 + }
75502 +#endif
75503 +
75504 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
75505 + pax_set_initial_flags(bprm);
75506 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
75507 + if (pax_set_initial_flags_func)
75508 + (pax_set_initial_flags_func)(bprm);
75509 +#endif
75510 +
75511 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
75512 + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) {
75513 + current->mm->context.user_cs_limit = PAGE_SIZE;
75514 + current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE;
75515 + }
75516 +#endif
75517 +
75518 +#ifdef CONFIG_PAX_SEGMEXEC
75519 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
75520 + current->mm->context.user_cs_base = SEGMEXEC_TASK_SIZE;
75521 + current->mm->context.user_cs_limit = TASK_SIZE-SEGMEXEC_TASK_SIZE;
75522 + pax_task_size = SEGMEXEC_TASK_SIZE;
75523 + current->mm->def_flags |= VM_NOHUGEPAGE;
75524 + } else
75525 +#endif
75526 +
75527 + pax_task_size = TASK_SIZE;
75528 +
75529 +#if defined(CONFIG_ARCH_TRACK_EXEC_LIMIT) || defined(CONFIG_PAX_SEGMEXEC)
75530 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75531 + set_user_cs(current->mm->context.user_cs_base, current->mm->context.user_cs_limit, get_cpu());
75532 + put_cpu();
75533 + }
75534 +#endif
75535 +
75536 +#ifdef CONFIG_PAX_ASLR
75537 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75538 + current->mm->delta_mmap = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN)-1)) << PAGE_SHIFT;
75539 + current->mm->delta_stack = (pax_get_random_long() & ((1UL << PAX_DELTA_STACK_LEN)-1)) << PAGE_SHIFT;
75540 + }
75541 +#endif
75542 +
75543 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
75544 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75545 + executable_stack = EXSTACK_DISABLE_X;
75546 + current->personality &= ~READ_IMPLIES_EXEC;
75547 + } else
75548 +#endif
75549 +
75550 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
75551 current->personality |= READ_IMPLIES_EXEC;
75552
75553 @@ -915,8 +1354,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
75554 if (current->flags & PF_RANDOMIZE)
75555 load_bias += arch_mmap_rnd();
75556 load_bias = ELF_PAGESTART(load_bias);
75557 - total_size = total_mapping_size(elf_phdata,
75558 - loc->elf_ex.e_phnum);
75559 +
75560 +#ifdef CONFIG_PAX_RANDMMAP
75561 + /* PaX: randomize base address at the default exe base if requested */
75562 + if ((current->mm->pax_flags & MF_PAX_RANDMMAP) && elf_interpreter) {
75563 +#ifdef CONFIG_SPARC64
75564 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << (PAGE_SHIFT+1);
75565 +#else
75566 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << PAGE_SHIFT;
75567 +#endif
75568 + load_bias = ELF_PAGESTART(PAX_ELF_ET_DYN_BASE - vaddr + load_bias);
75569 + elf_flags |= MAP_FIXED;
75570 + }
75571 +#endif
75572 +
75573 + total_size = total_mapping_size(elf_phdata, loc->elf_ex.e_phnum);
75574 if (!total_size) {
75575 retval = -EINVAL;
75576 goto out_free_dentry;
75577 @@ -952,9 +1404,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
75578 * allowed task size. Note that p_filesz must always be
75579 * <= p_memsz so it is only necessary to check p_memsz.
75580 */
75581 - if (BAD_ADDR(k) || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75582 - elf_ppnt->p_memsz > TASK_SIZE ||
75583 - TASK_SIZE - elf_ppnt->p_memsz < k) {
75584 + if (k >= pax_task_size || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75585 + elf_ppnt->p_memsz > pax_task_size ||
75586 + pax_task_size - elf_ppnt->p_memsz < k) {
75587 /* set_brk can never work. Avoid overflows. */
75588 retval = -EINVAL;
75589 goto out_free_dentry;
75590 @@ -990,16 +1442,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
75591 if (retval)
75592 goto out_free_dentry;
75593 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
75594 - retval = -EFAULT; /* Nobody gets to see this, but.. */
75595 - goto out_free_dentry;
75596 + /*
75597 + * This bss-zeroing can fail if the ELF
75598 + * file specifies odd protections. So
75599 + * we don't check the return value
75600 + */
75601 }
75602
75603 +#ifdef CONFIG_PAX_RANDMMAP
75604 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75605 + unsigned long start, size, flags;
75606 + vm_flags_t vm_flags;
75607 +
75608 + start = ELF_PAGEALIGN(elf_brk);
75609 + size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
75610 + flags = MAP_FIXED | MAP_PRIVATE;
75611 + vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
75612 +
75613 + down_write(&current->mm->mmap_sem);
75614 + start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
75615 + retval = -ENOMEM;
75616 + if (!IS_ERR_VALUE(start) && !find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) {
75617 +// if (current->personality & ADDR_NO_RANDOMIZE)
75618 +// vm_flags |= VM_READ | VM_MAYREAD;
75619 + start = mmap_region(NULL, start, PAGE_ALIGN(size), vm_flags, 0);
75620 + retval = IS_ERR_VALUE(start) ? start : 0;
75621 + }
75622 + up_write(&current->mm->mmap_sem);
75623 + if (retval == 0)
75624 + retval = set_brk(start + size, start + size + PAGE_SIZE);
75625 + if (retval < 0)
75626 + goto out_free_dentry;
75627 + }
75628 +#endif
75629 +
75630 if (elf_interpreter) {
75631 - unsigned long interp_map_addr = 0;
75632 -
75633 elf_entry = load_elf_interp(&loc->interp_elf_ex,
75634 interpreter,
75635 - &interp_map_addr,
75636 load_bias, interp_elf_phdata);
75637 if (!IS_ERR((void *)elf_entry)) {
75638 /*
75639 @@ -1050,6 +1529,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75640 current->mm->end_data = end_data;
75641 current->mm->start_stack = bprm->p;
75642
75643 +#ifndef CONFIG_PAX_RANDMMAP
75644 if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
75645 current->mm->brk = current->mm->start_brk =
75646 arch_randomize_brk(current->mm);
75647 @@ -1057,6 +1537,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75648 current->brk_randomized = 1;
75649 #endif
75650 }
75651 +#endif
75652
75653 if (current->personality & MMAP_PAGE_ZERO) {
75654 /* Why this, you ask??? Well SVr4 maps page 0 as read-only,
75655 @@ -1225,7 +1706,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
75656 * Decide what to dump of a segment, part, all or none.
75657 */
75658 static unsigned long vma_dump_size(struct vm_area_struct *vma,
75659 - unsigned long mm_flags)
75660 + unsigned long mm_flags, long signr)
75661 {
75662 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
75663
75664 @@ -1263,7 +1744,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
75665 if (vma->vm_file == NULL)
75666 return 0;
75667
75668 - if (FILTER(MAPPED_PRIVATE))
75669 + if (signr == SIGKILL || FILTER(MAPPED_PRIVATE))
75670 goto whole;
75671
75672 /*
75673 @@ -1363,7 +1844,7 @@ static void fill_elf_header(struct elfhdr *elf, int segs,
75674 return;
75675 }
75676
75677 -static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
75678 +static void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
75679 {
75680 phdr->p_type = PT_NOTE;
75681 phdr->p_offset = offset;
75682 @@ -1470,9 +1951,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
75683 {
75684 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
75685 int i = 0;
75686 - do
75687 + do {
75688 i += 2;
75689 - while (auxv[i - 2] != AT_NULL);
75690 + } while (auxv[i - 2] != AT_NULL);
75691 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
75692 }
75693
75694 @@ -1481,7 +1962,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
75695 {
75696 mm_segment_t old_fs = get_fs();
75697 set_fs(KERNEL_DS);
75698 - copy_siginfo_to_user((user_siginfo_t __user *) csigdata, siginfo);
75699 + copy_siginfo_to_user((user_siginfo_t __force_user *) csigdata, siginfo);
75700 set_fs(old_fs);
75701 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
75702 }
75703 @@ -2201,7 +2682,7 @@ static int elf_core_dump(struct coredump_params *cprm)
75704 vma = next_vma(vma, gate_vma)) {
75705 unsigned long dump_size;
75706
75707 - dump_size = vma_dump_size(vma, cprm->mm_flags);
75708 + dump_size = vma_dump_size(vma, cprm->mm_flags, cprm->siginfo->si_signo);
75709 vma_filesz[i++] = dump_size;
75710 vma_data_size += dump_size;
75711 }
75712 @@ -2309,6 +2790,167 @@ out:
75713
75714 #endif /* CONFIG_ELF_CORE */
75715
75716 +#ifdef CONFIG_PAX_MPROTECT
75717 +/* PaX: non-PIC ELF libraries need relocations on their executable segments
75718 + * therefore we'll grant them VM_MAYWRITE once during their life. Similarly
75719 + * we'll remove VM_MAYWRITE for good on RELRO segments.
75720 + *
75721 + * The checks favour ld-linux.so behaviour which operates on a per ELF segment
75722 + * basis because we want to allow the common case and not the special ones.
75723 + */
75724 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags)
75725 +{
75726 + struct elfhdr elf_h;
75727 + struct elf_phdr elf_p;
75728 + unsigned long i;
75729 + unsigned long oldflags;
75730 + bool is_textrel_rw, is_textrel_rx, is_relro;
75731 +
75732 + if (!(vma->vm_mm->pax_flags & MF_PAX_MPROTECT) || !vma->vm_file)
75733 + return;
75734 +
75735 + oldflags = vma->vm_flags & (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ);
75736 + newflags &= VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ;
75737 +
75738 +#ifdef CONFIG_PAX_ELFRELOCS
75739 + /* possible TEXTREL */
75740 + is_textrel_rw = !vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYREAD | VM_EXEC | VM_READ) && newflags == (VM_WRITE | VM_READ);
75741 + is_textrel_rx = vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_WRITE | VM_READ) && newflags == (VM_EXEC | VM_READ);
75742 +#else
75743 + is_textrel_rw = false;
75744 + is_textrel_rx = false;
75745 +#endif
75746 +
75747 + /* possible RELRO */
75748 + is_relro = vma->anon_vma && oldflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ) && newflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ);
75749 +
75750 + if (!is_textrel_rw && !is_textrel_rx && !is_relro)
75751 + return;
75752 +
75753 + if (sizeof(elf_h) != kernel_read(vma->vm_file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
75754 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
75755 +
75756 +#ifdef CONFIG_PAX_ETEXECRELOCS
75757 + ((is_textrel_rw || is_textrel_rx) && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75758 +#else
75759 + ((is_textrel_rw || is_textrel_rx) && elf_h.e_type != ET_DYN) ||
75760 +#endif
75761 +
75762 + (is_relro && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75763 + !elf_check_arch(&elf_h) ||
75764 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
75765 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
75766 + return;
75767 +
75768 + for (i = 0UL; i < elf_h.e_phnum; i++) {
75769 + if (sizeof(elf_p) != kernel_read(vma->vm_file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
75770 + return;
75771 + switch (elf_p.p_type) {
75772 + case PT_DYNAMIC:
75773 + if (!is_textrel_rw && !is_textrel_rx)
75774 + continue;
75775 + i = 0UL;
75776 + while ((i+1) * sizeof(elf_dyn) <= elf_p.p_filesz) {
75777 + elf_dyn dyn;
75778 +
75779 + if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn)))
75780 + break;
75781 + if (dyn.d_tag == DT_NULL)
75782 + break;
75783 + if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) {
75784 + gr_log_textrel(vma, is_textrel_rw);
75785 + if (is_textrel_rw)
75786 + vma->vm_flags |= VM_MAYWRITE;
75787 + else
75788 + /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */
75789 + vma->vm_flags &= ~VM_MAYWRITE;
75790 + break;
75791 + }
75792 + i++;
75793 + }
75794 + is_textrel_rw = false;
75795 + is_textrel_rx = false;
75796 + continue;
75797 +
75798 + case PT_GNU_RELRO:
75799 + if (!is_relro)
75800 + continue;
75801 + if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start)
75802 + vma->vm_flags &= ~VM_MAYWRITE;
75803 + is_relro = false;
75804 + continue;
75805 +
75806 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75807 + case PT_PAX_FLAGS: {
75808 + const char *msg_mprotect = "", *msg_emutramp = "";
75809 + char *buffer_lib, *buffer_exe;
75810 +
75811 + if (elf_p.p_flags & PF_NOMPROTECT)
75812 + msg_mprotect = "MPROTECT disabled";
75813 +
75814 +#ifdef CONFIG_PAX_EMUTRAMP
75815 + if (!(vma->vm_mm->pax_flags & MF_PAX_EMUTRAMP) && !(elf_p.p_flags & PF_NOEMUTRAMP))
75816 + msg_emutramp = "EMUTRAMP enabled";
75817 +#endif
75818 +
75819 + if (!msg_mprotect[0] && !msg_emutramp[0])
75820 + continue;
75821 +
75822 + if (!printk_ratelimit())
75823 + continue;
75824 +
75825 + buffer_lib = (char *)__get_free_page(GFP_KERNEL);
75826 + buffer_exe = (char *)__get_free_page(GFP_KERNEL);
75827 + if (buffer_lib && buffer_exe) {
75828 + char *path_lib, *path_exe;
75829 +
75830 + path_lib = pax_get_path(&vma->vm_file->f_path, buffer_lib, PAGE_SIZE);
75831 + path_exe = pax_get_path(&vma->vm_mm->exe_file->f_path, buffer_exe, PAGE_SIZE);
75832 +
75833 + pr_info("PAX: %s wants %s%s%s on %s\n", path_lib, msg_mprotect,
75834 + (msg_mprotect[0] && msg_emutramp[0] ? " and " : ""), msg_emutramp, path_exe);
75835 +
75836 + }
75837 + free_page((unsigned long)buffer_exe);
75838 + free_page((unsigned long)buffer_lib);
75839 + continue;
75840 + }
75841 +#endif
75842 +
75843 + }
75844 + }
75845 +}
75846 +#endif
75847 +
75848 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
75849 +
75850 +extern int grsec_enable_log_rwxmaps;
75851 +
75852 +static void elf_handle_mmap(struct file *file)
75853 +{
75854 + struct elfhdr elf_h;
75855 + struct elf_phdr elf_p;
75856 + unsigned long i;
75857 +
75858 + if (!grsec_enable_log_rwxmaps)
75859 + return;
75860 +
75861 + if (sizeof(elf_h) != kernel_read(file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
75862 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
75863 + (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || !elf_check_arch(&elf_h) ||
75864 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
75865 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
75866 + return;
75867 +
75868 + for (i = 0UL; i < elf_h.e_phnum; i++) {
75869 + if (sizeof(elf_p) != kernel_read(file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
75870 + return;
75871 + if (elf_p.p_type == PT_GNU_STACK && (elf_p.p_flags & PF_X))
75872 + gr_log_ptgnustack(file);
75873 + }
75874 +}
75875 +#endif
75876 +
75877 static int __init init_elf_binfmt(void)
75878 {
75879 register_binfmt(&elf_format);
75880 diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
75881 index d3634bf..10fc244 100644
75882 --- a/fs/binfmt_elf_fdpic.c
75883 +++ b/fs/binfmt_elf_fdpic.c
75884 @@ -1296,7 +1296,7 @@ static inline void fill_elf_fdpic_header(struct elfhdr *elf, int segs)
75885 return;
75886 }
75887
75888 -static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
75889 +static inline void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
75890 {
75891 phdr->p_type = PT_NOTE;
75892 phdr->p_offset = offset;
75893 @@ -1667,7 +1667,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
75894
75895 /* Write notes phdr entry */
75896 {
75897 - int sz = 0;
75898 + size_t sz = 0;
75899
75900 for (i = 0; i < numnote; i++)
75901 sz += notesize(notes + i);
75902 diff --git a/fs/block_dev.c b/fs/block_dev.c
75903 index 073bb57..7f95749 100644
75904 --- a/fs/block_dev.c
75905 +++ b/fs/block_dev.c
75906 @@ -739,7 +739,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
75907 else if (bdev->bd_contains == bdev)
75908 return true; /* is a whole device which isn't held */
75909
75910 - else if (whole->bd_holder == bd_may_claim)
75911 + else if (whole->bd_holder == (void *)bd_may_claim)
75912 return true; /* is a partition of a device that is being partitioned */
75913 else if (whole->bd_holder != NULL)
75914 return false; /* is a partition of a held device */
75915 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
75916 index 5f745ea..b8d8e35 100644
75917 --- a/fs/btrfs/ctree.c
75918 +++ b/fs/btrfs/ctree.c
75919 @@ -1182,9 +1182,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
75920 free_extent_buffer(buf);
75921 add_root_to_dirty_list(root);
75922 } else {
75923 - if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID)
75924 - parent_start = parent->start;
75925 - else
75926 + if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID) {
75927 + if (parent)
75928 + parent_start = parent->start;
75929 + else
75930 + parent_start = 0;
75931 + } else
75932 parent_start = 0;
75933
75934 WARN_ON(trans->transid != btrfs_header_generation(parent));
75935 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
75936 index a2ae427..d028233 100644
75937 --- a/fs/btrfs/delayed-inode.c
75938 +++ b/fs/btrfs/delayed-inode.c
75939 @@ -462,7 +462,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
75940
75941 static void finish_one_item(struct btrfs_delayed_root *delayed_root)
75942 {
75943 - int seq = atomic_inc_return(&delayed_root->items_seq);
75944 + int seq = atomic_inc_return_unchecked(&delayed_root->items_seq);
75945 if ((atomic_dec_return(&delayed_root->items) <
75946 BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) &&
75947 waitqueue_active(&delayed_root->wait))
75948 @@ -1412,7 +1412,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
75949
75950 static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
75951 {
75952 - int val = atomic_read(&delayed_root->items_seq);
75953 + int val = atomic_read_unchecked(&delayed_root->items_seq);
75954
75955 if (val < seq || val >= seq + BTRFS_DELAYED_BATCH)
75956 return 1;
75957 @@ -1437,7 +1437,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
75958 int seq;
75959 int ret;
75960
75961 - seq = atomic_read(&delayed_root->items_seq);
75962 + seq = atomic_read_unchecked(&delayed_root->items_seq);
75963
75964 ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
75965 if (ret)
75966 @@ -1690,7 +1690,7 @@ int btrfs_should_delete_dir_index(struct list_head *del_list,
75967 *
75968 */
75969 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
75970 - struct list_head *ins_list)
75971 + struct list_head *ins_list, bool *emitted)
75972 {
75973 struct btrfs_dir_item *di;
75974 struct btrfs_delayed_item *curr, *next;
75975 @@ -1734,6 +1734,7 @@ int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
75976
75977 if (over)
75978 return 1;
75979 + *emitted = true;
75980 }
75981 return 0;
75982 }
75983 diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
75984 index f70119f..b7d2bb4 100644
75985 --- a/fs/btrfs/delayed-inode.h
75986 +++ b/fs/btrfs/delayed-inode.h
75987 @@ -43,7 +43,7 @@ struct btrfs_delayed_root {
75988 */
75989 struct list_head prepare_list;
75990 atomic_t items; /* for delayed items */
75991 - atomic_t items_seq; /* for delayed items */
75992 + atomic_unchecked_t items_seq; /* for delayed items */
75993 int nodes; /* for delayed nodes */
75994 wait_queue_head_t wait;
75995 };
75996 @@ -90,7 +90,7 @@ static inline void btrfs_init_delayed_root(
75997 struct btrfs_delayed_root *delayed_root)
75998 {
75999 atomic_set(&delayed_root->items, 0);
76000 - atomic_set(&delayed_root->items_seq, 0);
76001 + atomic_set_unchecked(&delayed_root->items_seq, 0);
76002 delayed_root->nodes = 0;
76003 spin_lock_init(&delayed_root->lock);
76004 init_waitqueue_head(&delayed_root->wait);
76005 @@ -144,7 +144,7 @@ void btrfs_put_delayed_items(struct list_head *ins_list,
76006 int btrfs_should_delete_dir_index(struct list_head *del_list,
76007 u64 index);
76008 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
76009 - struct list_head *ins_list);
76010 + struct list_head *ins_list, bool *emitted);
76011
76012 /* for init */
76013 int __init btrfs_delayed_inode_init(void);
76014 diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
76015 index 6a98bdd..fed3da6 100644
76016 --- a/fs/btrfs/extent_map.c
76017 +++ b/fs/btrfs/extent_map.c
76018 @@ -235,7 +235,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
76019 em->start = merge->start;
76020 em->orig_start = merge->orig_start;
76021 em->len += merge->len;
76022 - em->block_len += merge->block_len;
76023 + if (em->block_start != EXTENT_MAP_HOLE &&
76024 + em->block_start != EXTENT_MAP_INLINE)
76025 + em->block_len += merge->block_len;
76026 em->block_start = merge->block_start;
76027 em->mod_len = (em->mod_len + em->mod_start) - merge->mod_start;
76028 em->mod_start = merge->mod_start;
76029 @@ -252,7 +254,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
76030 merge = rb_entry(rb, struct extent_map, rb_node);
76031 if (rb && mergable_maps(em, merge)) {
76032 em->len += merge->len;
76033 - em->block_len += merge->block_len;
76034 + if (em->block_start != EXTENT_MAP_HOLE &&
76035 + em->block_start != EXTENT_MAP_INLINE)
76036 + em->block_len += merge->block_len;
76037 rb_erase(&merge->rb_node, &tree->map);
76038 RB_CLEAR_NODE(&merge->rb_node);
76039 em->mod_len = (merge->mod_start + merge->mod_len) - em->mod_start;
76040 diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
76041 index 396e3d5..e752d29 100644
76042 --- a/fs/btrfs/inode.c
76043 +++ b/fs/btrfs/inode.c
76044 @@ -5725,6 +5725,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
76045 char *name_ptr;
76046 int name_len;
76047 int is_curr = 0; /* ctx->pos points to the current index? */
76048 + bool emitted;
76049
76050 /* FIXME, use a real flag for deciding about the key type */
76051 if (root->fs_info->tree_root == root)
76052 @@ -5753,6 +5754,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
76053 if (ret < 0)
76054 goto err;
76055
76056 + emitted = false;
76057 while (1) {
76058 leaf = path->nodes[0];
76059 slot = path->slots[0];
76060 @@ -5832,6 +5834,7 @@ skip:
76061
76062 if (over)
76063 goto nopos;
76064 + emitted = true;
76065 di_len = btrfs_dir_name_len(leaf, di) +
76066 btrfs_dir_data_len(leaf, di) + sizeof(*di);
76067 di_cur += di_len;
76068 @@ -5844,11 +5847,20 @@ next:
76069 if (key_type == BTRFS_DIR_INDEX_KEY) {
76070 if (is_curr)
76071 ctx->pos++;
76072 - ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list);
76073 + ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list, &emitted);
76074 if (ret)
76075 goto nopos;
76076 }
76077
76078 + /*
76079 + * If we haven't emitted any dir entry, we must not touch ctx->pos as
76080 + * it was was set to the termination value in previous call. We assume
76081 + * that "." and ".." were emitted if we reach this point and set the
76082 + * termination value as well for an empty directory.
76083 + */
76084 + if (ctx->pos > 2 && !emitted)
76085 + goto nopos;
76086 +
76087 /* Reached end of directory/root. Bump pos past the last item. */
76088 ctx->pos++;
76089
76090 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
76091 index 11d1eab..a001845 100644
76092 --- a/fs/btrfs/super.c
76093 +++ b/fs/btrfs/super.c
76094 @@ -265,7 +265,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
76095 function, line, errstr);
76096 return;
76097 }
76098 - ACCESS_ONCE(trans->transaction->aborted) = errno;
76099 + ACCESS_ONCE_RW(trans->transaction->aborted) = errno;
76100 /* Wake up anybody who may be waiting on this transaction */
76101 wake_up(&root->fs_info->transaction_wait);
76102 wake_up(&root->fs_info->transaction_blocked_wait);
76103 diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
76104 index 603b0cc..8e3f600 100644
76105 --- a/fs/btrfs/sysfs.c
76106 +++ b/fs/btrfs/sysfs.c
76107 @@ -481,7 +481,7 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
76108 for (set = 0; set < FEAT_MAX; set++) {
76109 int i;
76110 struct attribute *attrs[2];
76111 - struct attribute_group agroup = {
76112 + attribute_group_no_const agroup = {
76113 .name = "features",
76114 .attrs = attrs,
76115 };
76116 diff --git a/fs/btrfs/tests/free-space-tests.c b/fs/btrfs/tests/free-space-tests.c
76117 index 2299bfd..4098e72 100644
76118 --- a/fs/btrfs/tests/free-space-tests.c
76119 +++ b/fs/btrfs/tests/free-space-tests.c
76120 @@ -463,7 +463,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
76121 * extent entry.
76122 */
76123 use_bitmap_op = cache->free_space_ctl->op->use_bitmap;
76124 - cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
76125 + pax_open_kernel();
76126 + *(void **)&cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
76127 + pax_close_kernel();
76128
76129 /*
76130 * Extent entry covering free space range [128Mb - 256Kb, 128Mb - 128Kb[
76131 @@ -870,7 +872,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
76132 if (ret)
76133 return ret;
76134
76135 - cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
76136 + pax_open_kernel();
76137 + *(void **)&cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
76138 + pax_close_kernel();
76139 __btrfs_remove_free_space_cache(cache->free_space_ctl);
76140
76141 return 0;
76142 diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
76143 index 6916a78..4598936 100644
76144 --- a/fs/btrfs/tree-log.h
76145 +++ b/fs/btrfs/tree-log.h
76146 @@ -45,7 +45,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
76147 static inline void btrfs_set_log_full_commit(struct btrfs_fs_info *fs_info,
76148 struct btrfs_trans_handle *trans)
76149 {
76150 - ACCESS_ONCE(fs_info->last_trans_log_full_commit) = trans->transid;
76151 + ACCESS_ONCE_RW(fs_info->last_trans_log_full_commit) = trans->transid;
76152 }
76153
76154 static inline int btrfs_need_log_full_commit(struct btrfs_fs_info *fs_info,
76155 diff --git a/fs/buffer.c b/fs/buffer.c
76156 index 82283ab..dc40c76 100644
76157 --- a/fs/buffer.c
76158 +++ b/fs/buffer.c
76159 @@ -3437,7 +3437,7 @@ void __init buffer_init(void)
76160 bh_cachep = kmem_cache_create("buffer_head",
76161 sizeof(struct buffer_head), 0,
76162 (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
76163 - SLAB_MEM_SPREAD),
76164 + SLAB_MEM_SPREAD|SLAB_NO_SANITIZE),
76165 NULL);
76166
76167 /*
76168 diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
76169 index 6af790f..ec4c1e6 100644
76170 --- a/fs/cachefiles/bind.c
76171 +++ b/fs/cachefiles/bind.c
76172 @@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
76173 args);
76174
76175 /* start by checking things over */
76176 - ASSERT(cache->fstop_percent >= 0 &&
76177 - cache->fstop_percent < cache->fcull_percent &&
76178 + ASSERT(cache->fstop_percent < cache->fcull_percent &&
76179 cache->fcull_percent < cache->frun_percent &&
76180 cache->frun_percent < 100);
76181
76182 - ASSERT(cache->bstop_percent >= 0 &&
76183 - cache->bstop_percent < cache->bcull_percent &&
76184 + ASSERT(cache->bstop_percent < cache->bcull_percent &&
76185 cache->bcull_percent < cache->brun_percent &&
76186 cache->brun_percent < 100);
76187
76188 diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
76189 index f601def..b2cf704 100644
76190 --- a/fs/cachefiles/daemon.c
76191 +++ b/fs/cachefiles/daemon.c
76192 @@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer,
76193 if (n > buflen)
76194 return -EMSGSIZE;
76195
76196 - if (copy_to_user(_buffer, buffer, n) != 0)
76197 + if (n > sizeof(buffer) || copy_to_user(_buffer, buffer, n) != 0)
76198 return -EFAULT;
76199
76200 return n;
76201 @@ -222,7 +222,7 @@ static ssize_t cachefiles_daemon_write(struct file *file,
76202 if (test_bit(CACHEFILES_DEAD, &cache->flags))
76203 return -EIO;
76204
76205 - if (datalen < 0 || datalen > PAGE_SIZE - 1)
76206 + if (datalen > PAGE_SIZE - 1)
76207 return -EOPNOTSUPP;
76208
76209 /* drag the command string into the kernel so we can parse it */
76210 @@ -385,7 +385,7 @@ static int cachefiles_daemon_fstop(struct cachefiles_cache *cache, char *args)
76211 if (args[0] != '%' || args[1] != '\0')
76212 return -EINVAL;
76213
76214 - if (fstop < 0 || fstop >= cache->fcull_percent)
76215 + if (fstop >= cache->fcull_percent)
76216 return cachefiles_daemon_range_error(cache, args);
76217
76218 cache->fstop_percent = fstop;
76219 @@ -457,7 +457,7 @@ static int cachefiles_daemon_bstop(struct cachefiles_cache *cache, char *args)
76220 if (args[0] != '%' || args[1] != '\0')
76221 return -EINVAL;
76222
76223 - if (bstop < 0 || bstop >= cache->bcull_percent)
76224 + if (bstop >= cache->bcull_percent)
76225 return cachefiles_daemon_range_error(cache, args);
76226
76227 cache->bstop_percent = bstop;
76228 diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
76229 index aecd085..3584e2f 100644
76230 --- a/fs/cachefiles/internal.h
76231 +++ b/fs/cachefiles/internal.h
76232 @@ -65,7 +65,7 @@ struct cachefiles_cache {
76233 wait_queue_head_t daemon_pollwq; /* poll waitqueue for daemon */
76234 struct rb_root active_nodes; /* active nodes (can't be culled) */
76235 rwlock_t active_lock; /* lock for active_nodes */
76236 - atomic_t gravecounter; /* graveyard uniquifier */
76237 + atomic_unchecked_t gravecounter; /* graveyard uniquifier */
76238 unsigned frun_percent; /* when to stop culling (% files) */
76239 unsigned fcull_percent; /* when to start culling (% files) */
76240 unsigned fstop_percent; /* when to stop allocating (% files) */
76241 @@ -177,19 +177,19 @@ extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
76242 * proc.c
76243 */
76244 #ifdef CONFIG_CACHEFILES_HISTOGRAM
76245 -extern atomic_t cachefiles_lookup_histogram[HZ];
76246 -extern atomic_t cachefiles_mkdir_histogram[HZ];
76247 -extern atomic_t cachefiles_create_histogram[HZ];
76248 +extern atomic_unchecked_t cachefiles_lookup_histogram[HZ];
76249 +extern atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
76250 +extern atomic_unchecked_t cachefiles_create_histogram[HZ];
76251
76252 extern int __init cachefiles_proc_init(void);
76253 extern void cachefiles_proc_cleanup(void);
76254 static inline
76255 -void cachefiles_hist(atomic_t histogram[], unsigned long start_jif)
76256 +void cachefiles_hist(atomic_unchecked_t histogram[], unsigned long start_jif)
76257 {
76258 unsigned long jif = jiffies - start_jif;
76259 if (jif >= HZ)
76260 jif = HZ - 1;
76261 - atomic_inc(&histogram[jif]);
76262 + atomic_inc_unchecked(&histogram[jif]);
76263 }
76264
76265 #else
76266 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
76267 index fc1056f..501a546 100644
76268 --- a/fs/cachefiles/namei.c
76269 +++ b/fs/cachefiles/namei.c
76270 @@ -312,7 +312,7 @@ try_again:
76271 /* first step is to make up a grave dentry in the graveyard */
76272 sprintf(nbuffer, "%08x%08x",
76273 (uint32_t) get_seconds(),
76274 - (uint32_t) atomic_inc_return(&cache->gravecounter));
76275 + (uint32_t) atomic_inc_return_unchecked(&cache->gravecounter));
76276
76277 /* do the multiway lock magic */
76278 trap = lock_rename(cache->graveyard, dir);
76279 diff --git a/fs/cachefiles/proc.c b/fs/cachefiles/proc.c
76280 index eccd339..4c1d995 100644
76281 --- a/fs/cachefiles/proc.c
76282 +++ b/fs/cachefiles/proc.c
76283 @@ -14,9 +14,9 @@
76284 #include <linux/seq_file.h>
76285 #include "internal.h"
76286
76287 -atomic_t cachefiles_lookup_histogram[HZ];
76288 -atomic_t cachefiles_mkdir_histogram[HZ];
76289 -atomic_t cachefiles_create_histogram[HZ];
76290 +atomic_unchecked_t cachefiles_lookup_histogram[HZ];
76291 +atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
76292 +atomic_unchecked_t cachefiles_create_histogram[HZ];
76293
76294 /*
76295 * display the latency histogram
76296 @@ -35,9 +35,9 @@ static int cachefiles_histogram_show(struct seq_file *m, void *v)
76297 return 0;
76298 default:
76299 index = (unsigned long) v - 3;
76300 - x = atomic_read(&cachefiles_lookup_histogram[index]);
76301 - y = atomic_read(&cachefiles_mkdir_histogram[index]);
76302 - z = atomic_read(&cachefiles_create_histogram[index]);
76303 + x = atomic_read_unchecked(&cachefiles_lookup_histogram[index]);
76304 + y = atomic_read_unchecked(&cachefiles_mkdir_histogram[index]);
76305 + z = atomic_read_unchecked(&cachefiles_create_histogram[index]);
76306 if (x == 0 && y == 0 && z == 0)
76307 return 0;
76308
76309 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
76310 index 9314b4e..4a1f602 100644
76311 --- a/fs/ceph/dir.c
76312 +++ b/fs/ceph/dir.c
76313 @@ -214,10 +214,18 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
76314 spin_unlock(&dentry->d_lock);
76315
76316 if (emit_dentry) {
76317 + char d_name[DNAME_INLINE_LEN];
76318 + const unsigned char *name;
76319 +
76320 dout(" %llu (%llu) dentry %p %pd %p\n", di->offset, ctx->pos,
76321 dentry, dentry, d_inode(dentry));
76322 ctx->pos = di->offset;
76323 - if (!dir_emit(ctx, dentry->d_name.name,
76324 + name = dentry->d_name.name;
76325 + if (name == dentry->d_iname) {
76326 + memcpy(d_name, name, dentry->d_name.len);
76327 + name = d_name;
76328 + }
76329 + if (!dir_emit(ctx, name,
76330 dentry->d_name.len,
76331 ceph_translate_ino(dentry->d_sb,
76332 d_inode(dentry)->i_ino),
76333 @@ -259,7 +267,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
76334 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
76335 struct ceph_mds_client *mdsc = fsc->mdsc;
76336 unsigned frag = fpos_frag(ctx->pos);
76337 - int off = fpos_off(ctx->pos);
76338 + unsigned int off = fpos_off(ctx->pos);
76339 int err;
76340 u32 ftype;
76341 struct ceph_mds_reply_info_parsed *rinfo;
76342 diff --git a/fs/ceph/super.c b/fs/ceph/super.c
76343 index f446afa..0ad3b8e 100644
76344 --- a/fs/ceph/super.c
76345 +++ b/fs/ceph/super.c
76346 @@ -907,7 +907,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
76347 /*
76348 * construct our own bdi so we can control readahead, etc.
76349 */
76350 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
76351 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
76352
76353 static int ceph_register_bdi(struct super_block *sb,
76354 struct ceph_fs_client *fsc)
76355 @@ -924,7 +924,7 @@ static int ceph_register_bdi(struct super_block *sb,
76356 VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE;
76357
76358 err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
76359 - atomic_long_inc_return(&bdi_seq));
76360 + atomic_long_inc_return_unchecked(&bdi_seq));
76361 if (!err)
76362 sb->s_bdi = &fsc->backing_dev_info;
76363 return err;
76364 diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
76365 index 7febcf2..62a5721 100644
76366 --- a/fs/cifs/cifs_debug.c
76367 +++ b/fs/cifs/cifs_debug.c
76368 @@ -269,8 +269,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76369
76370 if (strtobool(&c, &bv) == 0) {
76371 #ifdef CONFIG_CIFS_STATS2
76372 - atomic_set(&totBufAllocCount, 0);
76373 - atomic_set(&totSmBufAllocCount, 0);
76374 + atomic_set_unchecked(&totBufAllocCount, 0);
76375 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76376 #endif /* CONFIG_CIFS_STATS2 */
76377 spin_lock(&cifs_tcp_ses_lock);
76378 list_for_each(tmp1, &cifs_tcp_ses_list) {
76379 @@ -283,7 +283,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76380 tcon = list_entry(tmp3,
76381 struct cifs_tcon,
76382 tcon_list);
76383 - atomic_set(&tcon->num_smbs_sent, 0);
76384 + atomic_set_unchecked(&tcon->num_smbs_sent, 0);
76385 if (server->ops->clear_stats)
76386 server->ops->clear_stats(tcon);
76387 }
76388 @@ -315,8 +315,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76389 smBufAllocCount.counter, cifs_min_small);
76390 #ifdef CONFIG_CIFS_STATS2
76391 seq_printf(m, "Total Large %d Small %d Allocations\n",
76392 - atomic_read(&totBufAllocCount),
76393 - atomic_read(&totSmBufAllocCount));
76394 + atomic_read_unchecked(&totBufAllocCount),
76395 + atomic_read_unchecked(&totSmBufAllocCount));
76396 #endif /* CONFIG_CIFS_STATS2 */
76397
76398 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount));
76399 @@ -345,7 +345,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76400 if (tcon->need_reconnect)
76401 seq_puts(m, "\tDISCONNECTED ");
76402 seq_printf(m, "\nSMBs: %d",
76403 - atomic_read(&tcon->num_smbs_sent));
76404 + atomic_read_unchecked(&tcon->num_smbs_sent));
76405 if (server->ops->print_stats)
76406 server->ops->print_stats(m, tcon);
76407 }
76408 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
76409 index e739950..d18ac09 100644
76410 --- a/fs/cifs/cifsfs.c
76411 +++ b/fs/cifs/cifsfs.c
76412 @@ -1085,7 +1085,7 @@ cifs_init_request_bufs(void)
76413 */
76414 cifs_req_cachep = kmem_cache_create("cifs_request",
76415 CIFSMaxBufSize + max_hdr_size, 0,
76416 - SLAB_HWCACHE_ALIGN, NULL);
76417 + SLAB_HWCACHE_ALIGN | SLAB_USERCOPY, NULL);
76418 if (cifs_req_cachep == NULL)
76419 return -ENOMEM;
76420
76421 @@ -1112,7 +1112,7 @@ cifs_init_request_bufs(void)
76422 efficient to alloc 1 per page off the slab compared to 17K (5page)
76423 alloc of large cifs buffers even when page debugging is on */
76424 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
76425 - MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN,
76426 + MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN | SLAB_USERCOPY,
76427 NULL);
76428 if (cifs_sm_req_cachep == NULL) {
76429 mempool_destroy(cifs_req_poolp);
76430 @@ -1197,8 +1197,8 @@ init_cifs(void)
76431 atomic_set(&bufAllocCount, 0);
76432 atomic_set(&smBufAllocCount, 0);
76433 #ifdef CONFIG_CIFS_STATS2
76434 - atomic_set(&totBufAllocCount, 0);
76435 - atomic_set(&totSmBufAllocCount, 0);
76436 + atomic_set_unchecked(&totBufAllocCount, 0);
76437 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76438 #endif /* CONFIG_CIFS_STATS2 */
76439
76440 atomic_set(&midCount, 0);
76441 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
76442 index b406a32..243eb1c 100644
76443 --- a/fs/cifs/cifsglob.h
76444 +++ b/fs/cifs/cifsglob.h
76445 @@ -832,35 +832,35 @@ struct cifs_tcon {
76446 __u16 Flags; /* optional support bits */
76447 enum statusEnum tidStatus;
76448 #ifdef CONFIG_CIFS_STATS
76449 - atomic_t num_smbs_sent;
76450 + atomic_unchecked_t num_smbs_sent;
76451 union {
76452 struct {
76453 - atomic_t num_writes;
76454 - atomic_t num_reads;
76455 - atomic_t num_flushes;
76456 - atomic_t num_oplock_brks;
76457 - atomic_t num_opens;
76458 - atomic_t num_closes;
76459 - atomic_t num_deletes;
76460 - atomic_t num_mkdirs;
76461 - atomic_t num_posixopens;
76462 - atomic_t num_posixmkdirs;
76463 - atomic_t num_rmdirs;
76464 - atomic_t num_renames;
76465 - atomic_t num_t2renames;
76466 - atomic_t num_ffirst;
76467 - atomic_t num_fnext;
76468 - atomic_t num_fclose;
76469 - atomic_t num_hardlinks;
76470 - atomic_t num_symlinks;
76471 - atomic_t num_locks;
76472 - atomic_t num_acl_get;
76473 - atomic_t num_acl_set;
76474 + atomic_unchecked_t num_writes;
76475 + atomic_unchecked_t num_reads;
76476 + atomic_unchecked_t num_flushes;
76477 + atomic_unchecked_t num_oplock_brks;
76478 + atomic_unchecked_t num_opens;
76479 + atomic_unchecked_t num_closes;
76480 + atomic_unchecked_t num_deletes;
76481 + atomic_unchecked_t num_mkdirs;
76482 + atomic_unchecked_t num_posixopens;
76483 + atomic_unchecked_t num_posixmkdirs;
76484 + atomic_unchecked_t num_rmdirs;
76485 + atomic_unchecked_t num_renames;
76486 + atomic_unchecked_t num_t2renames;
76487 + atomic_unchecked_t num_ffirst;
76488 + atomic_unchecked_t num_fnext;
76489 + atomic_unchecked_t num_fclose;
76490 + atomic_unchecked_t num_hardlinks;
76491 + atomic_unchecked_t num_symlinks;
76492 + atomic_unchecked_t num_locks;
76493 + atomic_unchecked_t num_acl_get;
76494 + atomic_unchecked_t num_acl_set;
76495 } cifs_stats;
76496 #ifdef CONFIG_CIFS_SMB2
76497 struct {
76498 - atomic_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76499 - atomic_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76500 + atomic_unchecked_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76501 + atomic_unchecked_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76502 } smb2_stats;
76503 #endif /* CONFIG_CIFS_SMB2 */
76504 } stats;
76505 @@ -1207,7 +1207,7 @@ convert_delimiter(char *path, char delim)
76506 }
76507
76508 #ifdef CONFIG_CIFS_STATS
76509 -#define cifs_stats_inc atomic_inc
76510 +#define cifs_stats_inc atomic_inc_unchecked
76511
76512 static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
76513 unsigned int bytes)
76514 @@ -1574,8 +1574,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
76515 /* Various Debug counters */
76516 GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
76517 #ifdef CONFIG_CIFS_STATS2
76518 -GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */
76519 -GLOBAL_EXTERN atomic_t totSmBufAllocCount;
76520 +GLOBAL_EXTERN atomic_unchecked_t totBufAllocCount; /* total allocated over all time */
76521 +GLOBAL_EXTERN atomic_unchecked_t totSmBufAllocCount;
76522 #endif
76523 GLOBAL_EXTERN atomic_t smBufAllocCount;
76524 GLOBAL_EXTERN atomic_t midCount;
76525 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
76526 index 62203c3..93267bf 100644
76527 --- a/fs/cifs/file.c
76528 +++ b/fs/cifs/file.c
76529 @@ -2054,10 +2054,14 @@ static int cifs_writepages(struct address_space *mapping,
76530 index = mapping->writeback_index; /* Start from prev offset */
76531 end = -1;
76532 } else {
76533 - index = wbc->range_start >> PAGE_CACHE_SHIFT;
76534 - end = wbc->range_end >> PAGE_CACHE_SHIFT;
76535 - if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
76536 + if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) {
76537 range_whole = true;
76538 + index = 0;
76539 + end = ULONG_MAX;
76540 + } else {
76541 + index = wbc->range_start >> PAGE_CACHE_SHIFT;
76542 + end = wbc->range_end >> PAGE_CACHE_SHIFT;
76543 + }
76544 scanned = true;
76545 }
76546 server = cifs_sb_master_tcon(cifs_sb)->ses->server;
76547 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
76548 index 8442b8b..ea6986f 100644
76549 --- a/fs/cifs/misc.c
76550 +++ b/fs/cifs/misc.c
76551 @@ -170,7 +170,7 @@ cifs_buf_get(void)
76552 memset(ret_buf, 0, buf_size + 3);
76553 atomic_inc(&bufAllocCount);
76554 #ifdef CONFIG_CIFS_STATS2
76555 - atomic_inc(&totBufAllocCount);
76556 + atomic_inc_unchecked(&totBufAllocCount);
76557 #endif /* CONFIG_CIFS_STATS2 */
76558 }
76559
76560 @@ -205,7 +205,7 @@ cifs_small_buf_get(void)
76561 /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
76562 atomic_inc(&smBufAllocCount);
76563 #ifdef CONFIG_CIFS_STATS2
76564 - atomic_inc(&totSmBufAllocCount);
76565 + atomic_inc_unchecked(&totSmBufAllocCount);
76566 #endif /* CONFIG_CIFS_STATS2 */
76567
76568 }
76569 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
76570 index fc537c2..47d654c 100644
76571 --- a/fs/cifs/smb1ops.c
76572 +++ b/fs/cifs/smb1ops.c
76573 @@ -622,27 +622,27 @@ static void
76574 cifs_clear_stats(struct cifs_tcon *tcon)
76575 {
76576 #ifdef CONFIG_CIFS_STATS
76577 - atomic_set(&tcon->stats.cifs_stats.num_writes, 0);
76578 - atomic_set(&tcon->stats.cifs_stats.num_reads, 0);
76579 - atomic_set(&tcon->stats.cifs_stats.num_flushes, 0);
76580 - atomic_set(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76581 - atomic_set(&tcon->stats.cifs_stats.num_opens, 0);
76582 - atomic_set(&tcon->stats.cifs_stats.num_posixopens, 0);
76583 - atomic_set(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76584 - atomic_set(&tcon->stats.cifs_stats.num_closes, 0);
76585 - atomic_set(&tcon->stats.cifs_stats.num_deletes, 0);
76586 - atomic_set(&tcon->stats.cifs_stats.num_mkdirs, 0);
76587 - atomic_set(&tcon->stats.cifs_stats.num_rmdirs, 0);
76588 - atomic_set(&tcon->stats.cifs_stats.num_renames, 0);
76589 - atomic_set(&tcon->stats.cifs_stats.num_t2renames, 0);
76590 - atomic_set(&tcon->stats.cifs_stats.num_ffirst, 0);
76591 - atomic_set(&tcon->stats.cifs_stats.num_fnext, 0);
76592 - atomic_set(&tcon->stats.cifs_stats.num_fclose, 0);
76593 - atomic_set(&tcon->stats.cifs_stats.num_hardlinks, 0);
76594 - atomic_set(&tcon->stats.cifs_stats.num_symlinks, 0);
76595 - atomic_set(&tcon->stats.cifs_stats.num_locks, 0);
76596 - atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0);
76597 - atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0);
76598 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_writes, 0);
76599 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_reads, 0);
76600 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_flushes, 0);
76601 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76602 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_opens, 0);
76603 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixopens, 0);
76604 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76605 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_closes, 0);
76606 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_deletes, 0);
76607 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_mkdirs, 0);
76608 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_rmdirs, 0);
76609 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_renames, 0);
76610 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_t2renames, 0);
76611 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_ffirst, 0);
76612 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fnext, 0);
76613 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fclose, 0);
76614 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_hardlinks, 0);
76615 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_symlinks, 0);
76616 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_locks, 0);
76617 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_get, 0);
76618 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_set, 0);
76619 #endif
76620 }
76621
76622 @@ -651,36 +651,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76623 {
76624 #ifdef CONFIG_CIFS_STATS
76625 seq_printf(m, " Oplocks breaks: %d",
76626 - atomic_read(&tcon->stats.cifs_stats.num_oplock_brks));
76627 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_oplock_brks));
76628 seq_printf(m, "\nReads: %d Bytes: %llu",
76629 - atomic_read(&tcon->stats.cifs_stats.num_reads),
76630 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_reads),
76631 (long long)(tcon->bytes_read));
76632 seq_printf(m, "\nWrites: %d Bytes: %llu",
76633 - atomic_read(&tcon->stats.cifs_stats.num_writes),
76634 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_writes),
76635 (long long)(tcon->bytes_written));
76636 seq_printf(m, "\nFlushes: %d",
76637 - atomic_read(&tcon->stats.cifs_stats.num_flushes));
76638 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_flushes));
76639 seq_printf(m, "\nLocks: %d HardLinks: %d Symlinks: %d",
76640 - atomic_read(&tcon->stats.cifs_stats.num_locks),
76641 - atomic_read(&tcon->stats.cifs_stats.num_hardlinks),
76642 - atomic_read(&tcon->stats.cifs_stats.num_symlinks));
76643 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_locks),
76644 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_hardlinks),
76645 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_symlinks));
76646 seq_printf(m, "\nOpens: %d Closes: %d Deletes: %d",
76647 - atomic_read(&tcon->stats.cifs_stats.num_opens),
76648 - atomic_read(&tcon->stats.cifs_stats.num_closes),
76649 - atomic_read(&tcon->stats.cifs_stats.num_deletes));
76650 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_opens),
76651 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_closes),
76652 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_deletes));
76653 seq_printf(m, "\nPosix Opens: %d Posix Mkdirs: %d",
76654 - atomic_read(&tcon->stats.cifs_stats.num_posixopens),
76655 - atomic_read(&tcon->stats.cifs_stats.num_posixmkdirs));
76656 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixopens),
76657 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs));
76658 seq_printf(m, "\nMkdirs: %d Rmdirs: %d",
76659 - atomic_read(&tcon->stats.cifs_stats.num_mkdirs),
76660 - atomic_read(&tcon->stats.cifs_stats.num_rmdirs));
76661 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_mkdirs),
76662 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_rmdirs));
76663 seq_printf(m, "\nRenames: %d T2 Renames %d",
76664 - atomic_read(&tcon->stats.cifs_stats.num_renames),
76665 - atomic_read(&tcon->stats.cifs_stats.num_t2renames));
76666 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_renames),
76667 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_t2renames));
76668 seq_printf(m, "\nFindFirst: %d FNext %d FClose %d",
76669 - atomic_read(&tcon->stats.cifs_stats.num_ffirst),
76670 - atomic_read(&tcon->stats.cifs_stats.num_fnext),
76671 - atomic_read(&tcon->stats.cifs_stats.num_fclose));
76672 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_ffirst),
76673 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fnext),
76674 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fclose));
76675 #endif
76676 }
76677
76678 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
76679 index 18da19f..38a3a79 100644
76680 --- a/fs/cifs/smb2ops.c
76681 +++ b/fs/cifs/smb2ops.c
76682 @@ -422,8 +422,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
76683 #ifdef CONFIG_CIFS_STATS
76684 int i;
76685 for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
76686 - atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76687 - atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76688 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76689 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76690 }
76691 #endif
76692 }
76693 @@ -463,65 +463,65 @@ static void
76694 smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76695 {
76696 #ifdef CONFIG_CIFS_STATS
76697 - atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76698 - atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76699 + atomic_unchecked_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76700 + atomic_unchecked_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76701 seq_printf(m, "\nNegotiates: %d sent %d failed",
76702 - atomic_read(&sent[SMB2_NEGOTIATE_HE]),
76703 - atomic_read(&failed[SMB2_NEGOTIATE_HE]));
76704 + atomic_read_unchecked(&sent[SMB2_NEGOTIATE_HE]),
76705 + atomic_read_unchecked(&failed[SMB2_NEGOTIATE_HE]));
76706 seq_printf(m, "\nSessionSetups: %d sent %d failed",
76707 - atomic_read(&sent[SMB2_SESSION_SETUP_HE]),
76708 - atomic_read(&failed[SMB2_SESSION_SETUP_HE]));
76709 + atomic_read_unchecked(&sent[SMB2_SESSION_SETUP_HE]),
76710 + atomic_read_unchecked(&failed[SMB2_SESSION_SETUP_HE]));
76711 seq_printf(m, "\nLogoffs: %d sent %d failed",
76712 - atomic_read(&sent[SMB2_LOGOFF_HE]),
76713 - atomic_read(&failed[SMB2_LOGOFF_HE]));
76714 + atomic_read_unchecked(&sent[SMB2_LOGOFF_HE]),
76715 + atomic_read_unchecked(&failed[SMB2_LOGOFF_HE]));
76716 seq_printf(m, "\nTreeConnects: %d sent %d failed",
76717 - atomic_read(&sent[SMB2_TREE_CONNECT_HE]),
76718 - atomic_read(&failed[SMB2_TREE_CONNECT_HE]));
76719 + atomic_read_unchecked(&sent[SMB2_TREE_CONNECT_HE]),
76720 + atomic_read_unchecked(&failed[SMB2_TREE_CONNECT_HE]));
76721 seq_printf(m, "\nTreeDisconnects: %d sent %d failed",
76722 - atomic_read(&sent[SMB2_TREE_DISCONNECT_HE]),
76723 - atomic_read(&failed[SMB2_TREE_DISCONNECT_HE]));
76724 + atomic_read_unchecked(&sent[SMB2_TREE_DISCONNECT_HE]),
76725 + atomic_read_unchecked(&failed[SMB2_TREE_DISCONNECT_HE]));
76726 seq_printf(m, "\nCreates: %d sent %d failed",
76727 - atomic_read(&sent[SMB2_CREATE_HE]),
76728 - atomic_read(&failed[SMB2_CREATE_HE]));
76729 + atomic_read_unchecked(&sent[SMB2_CREATE_HE]),
76730 + atomic_read_unchecked(&failed[SMB2_CREATE_HE]));
76731 seq_printf(m, "\nCloses: %d sent %d failed",
76732 - atomic_read(&sent[SMB2_CLOSE_HE]),
76733 - atomic_read(&failed[SMB2_CLOSE_HE]));
76734 + atomic_read_unchecked(&sent[SMB2_CLOSE_HE]),
76735 + atomic_read_unchecked(&failed[SMB2_CLOSE_HE]));
76736 seq_printf(m, "\nFlushes: %d sent %d failed",
76737 - atomic_read(&sent[SMB2_FLUSH_HE]),
76738 - atomic_read(&failed[SMB2_FLUSH_HE]));
76739 + atomic_read_unchecked(&sent[SMB2_FLUSH_HE]),
76740 + atomic_read_unchecked(&failed[SMB2_FLUSH_HE]));
76741 seq_printf(m, "\nReads: %d sent %d failed",
76742 - atomic_read(&sent[SMB2_READ_HE]),
76743 - atomic_read(&failed[SMB2_READ_HE]));
76744 + atomic_read_unchecked(&sent[SMB2_READ_HE]),
76745 + atomic_read_unchecked(&failed[SMB2_READ_HE]));
76746 seq_printf(m, "\nWrites: %d sent %d failed",
76747 - atomic_read(&sent[SMB2_WRITE_HE]),
76748 - atomic_read(&failed[SMB2_WRITE_HE]));
76749 + atomic_read_unchecked(&sent[SMB2_WRITE_HE]),
76750 + atomic_read_unchecked(&failed[SMB2_WRITE_HE]));
76751 seq_printf(m, "\nLocks: %d sent %d failed",
76752 - atomic_read(&sent[SMB2_LOCK_HE]),
76753 - atomic_read(&failed[SMB2_LOCK_HE]));
76754 + atomic_read_unchecked(&sent[SMB2_LOCK_HE]),
76755 + atomic_read_unchecked(&failed[SMB2_LOCK_HE]));
76756 seq_printf(m, "\nIOCTLs: %d sent %d failed",
76757 - atomic_read(&sent[SMB2_IOCTL_HE]),
76758 - atomic_read(&failed[SMB2_IOCTL_HE]));
76759 + atomic_read_unchecked(&sent[SMB2_IOCTL_HE]),
76760 + atomic_read_unchecked(&failed[SMB2_IOCTL_HE]));
76761 seq_printf(m, "\nCancels: %d sent %d failed",
76762 - atomic_read(&sent[SMB2_CANCEL_HE]),
76763 - atomic_read(&failed[SMB2_CANCEL_HE]));
76764 + atomic_read_unchecked(&sent[SMB2_CANCEL_HE]),
76765 + atomic_read_unchecked(&failed[SMB2_CANCEL_HE]));
76766 seq_printf(m, "\nEchos: %d sent %d failed",
76767 - atomic_read(&sent[SMB2_ECHO_HE]),
76768 - atomic_read(&failed[SMB2_ECHO_HE]));
76769 + atomic_read_unchecked(&sent[SMB2_ECHO_HE]),
76770 + atomic_read_unchecked(&failed[SMB2_ECHO_HE]));
76771 seq_printf(m, "\nQueryDirectories: %d sent %d failed",
76772 - atomic_read(&sent[SMB2_QUERY_DIRECTORY_HE]),
76773 - atomic_read(&failed[SMB2_QUERY_DIRECTORY_HE]));
76774 + atomic_read_unchecked(&sent[SMB2_QUERY_DIRECTORY_HE]),
76775 + atomic_read_unchecked(&failed[SMB2_QUERY_DIRECTORY_HE]));
76776 seq_printf(m, "\nChangeNotifies: %d sent %d failed",
76777 - atomic_read(&sent[SMB2_CHANGE_NOTIFY_HE]),
76778 - atomic_read(&failed[SMB2_CHANGE_NOTIFY_HE]));
76779 + atomic_read_unchecked(&sent[SMB2_CHANGE_NOTIFY_HE]),
76780 + atomic_read_unchecked(&failed[SMB2_CHANGE_NOTIFY_HE]));
76781 seq_printf(m, "\nQueryInfos: %d sent %d failed",
76782 - atomic_read(&sent[SMB2_QUERY_INFO_HE]),
76783 - atomic_read(&failed[SMB2_QUERY_INFO_HE]));
76784 + atomic_read_unchecked(&sent[SMB2_QUERY_INFO_HE]),
76785 + atomic_read_unchecked(&failed[SMB2_QUERY_INFO_HE]));
76786 seq_printf(m, "\nSetInfos: %d sent %d failed",
76787 - atomic_read(&sent[SMB2_SET_INFO_HE]),
76788 - atomic_read(&failed[SMB2_SET_INFO_HE]));
76789 + atomic_read_unchecked(&sent[SMB2_SET_INFO_HE]),
76790 + atomic_read_unchecked(&failed[SMB2_SET_INFO_HE]));
76791 seq_printf(m, "\nOplockBreaks: %d sent %d failed",
76792 - atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]),
76793 - atomic_read(&failed[SMB2_OPLOCK_BREAK_HE]));
76794 + atomic_read_unchecked(&sent[SMB2_OPLOCK_BREAK_HE]),
76795 + atomic_read_unchecked(&failed[SMB2_OPLOCK_BREAK_HE]));
76796 #endif
76797 }
76798
76799 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
76800 index 597a417..569672f 100644
76801 --- a/fs/cifs/smb2pdu.c
76802 +++ b/fs/cifs/smb2pdu.c
76803 @@ -2267,8 +2267,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
76804 default:
76805 cifs_dbg(VFS, "info level %u isn't supported\n",
76806 srch_inf->info_level);
76807 - rc = -EINVAL;
76808 - goto qdir_exit;
76809 + return -EINVAL;
76810 }
76811
76812 req->FileIndex = cpu_to_le32(index);
76813 diff --git a/fs/coda/cache.c b/fs/coda/cache.c
76814 index 5bb630a..043dc70 100644
76815 --- a/fs/coda/cache.c
76816 +++ b/fs/coda/cache.c
76817 @@ -24,7 +24,7 @@
76818 #include "coda_linux.h"
76819 #include "coda_cache.h"
76820
76821 -static atomic_t permission_epoch = ATOMIC_INIT(0);
76822 +static atomic_unchecked_t permission_epoch = ATOMIC_INIT(0);
76823
76824 /* replace or extend an acl cache hit */
76825 void coda_cache_enter(struct inode *inode, int mask)
76826 @@ -32,7 +32,7 @@ void coda_cache_enter(struct inode *inode, int mask)
76827 struct coda_inode_info *cii = ITOC(inode);
76828
76829 spin_lock(&cii->c_lock);
76830 - cii->c_cached_epoch = atomic_read(&permission_epoch);
76831 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch);
76832 if (!uid_eq(cii->c_uid, current_fsuid())) {
76833 cii->c_uid = current_fsuid();
76834 cii->c_cached_perm = mask;
76835 @@ -46,14 +46,14 @@ void coda_cache_clear_inode(struct inode *inode)
76836 {
76837 struct coda_inode_info *cii = ITOC(inode);
76838 spin_lock(&cii->c_lock);
76839 - cii->c_cached_epoch = atomic_read(&permission_epoch) - 1;
76840 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch) - 1;
76841 spin_unlock(&cii->c_lock);
76842 }
76843
76844 /* remove all acl caches */
76845 void coda_cache_clear_all(struct super_block *sb)
76846 {
76847 - atomic_inc(&permission_epoch);
76848 + atomic_inc_unchecked(&permission_epoch);
76849 }
76850
76851
76852 @@ -66,7 +66,7 @@ int coda_cache_check(struct inode *inode, int mask)
76853 spin_lock(&cii->c_lock);
76854 hit = (mask & cii->c_cached_perm) == mask &&
76855 uid_eq(cii->c_uid, current_fsuid()) &&
76856 - cii->c_cached_epoch == atomic_read(&permission_epoch);
76857 + cii->c_cached_epoch == atomic_read_unchecked(&permission_epoch);
76858 spin_unlock(&cii->c_lock);
76859
76860 return hit;
76861 diff --git a/fs/compat.c b/fs/compat.c
76862 index 6fd272d..ae85f4f 100644
76863 --- a/fs/compat.c
76864 +++ b/fs/compat.c
76865 @@ -54,7 +54,7 @@
76866 #include <asm/ioctls.h>
76867 #include "internal.h"
76868
76869 -int compat_log = 1;
76870 +int compat_log = 0;
76871
76872 int compat_printk(const char *fmt, ...)
76873 {
76874 @@ -512,7 +512,7 @@ COMPAT_SYSCALL_DEFINE2(io_setup, unsigned, nr_reqs, u32 __user *, ctx32p)
76875
76876 set_fs(KERNEL_DS);
76877 /* The __user pointer cast is valid because of the set_fs() */
76878 - ret = sys_io_setup(nr_reqs, (aio_context_t __user *) &ctx64);
76879 + ret = sys_io_setup(nr_reqs, (aio_context_t __force_user *) &ctx64);
76880 set_fs(oldfs);
76881 /* truncating is ok because it's a user address */
76882 if (!ret)
76883 @@ -562,7 +562,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
76884 goto out;
76885
76886 ret = -EINVAL;
76887 - if (nr_segs > UIO_MAXIOV || nr_segs < 0)
76888 + if (nr_segs > UIO_MAXIOV)
76889 goto out;
76890 if (nr_segs > fast_segs) {
76891 ret = -ENOMEM;
76892 @@ -844,6 +844,7 @@ struct compat_old_linux_dirent {
76893 struct compat_readdir_callback {
76894 struct dir_context ctx;
76895 struct compat_old_linux_dirent __user *dirent;
76896 + struct file * file;
76897 int result;
76898 };
76899
76900 @@ -863,6 +864,10 @@ static int compat_fillonedir(struct dir_context *ctx, const char *name,
76901 buf->result = -EOVERFLOW;
76902 return -EOVERFLOW;
76903 }
76904 +
76905 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76906 + return 0;
76907 +
76908 buf->result++;
76909 dirent = buf->dirent;
76910 if (!access_ok(VERIFY_WRITE, dirent,
76911 @@ -894,6 +899,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
76912 if (!f.file)
76913 return -EBADF;
76914
76915 + buf.file = f.file;
76916 error = iterate_dir(f.file, &buf.ctx);
76917 if (buf.result)
76918 error = buf.result;
76919 @@ -913,6 +919,7 @@ struct compat_getdents_callback {
76920 struct dir_context ctx;
76921 struct compat_linux_dirent __user *current_dir;
76922 struct compat_linux_dirent __user *previous;
76923 + struct file * file;
76924 int count;
76925 int error;
76926 };
76927 @@ -935,6 +942,10 @@ static int compat_filldir(struct dir_context *ctx, const char *name, int namlen,
76928 buf->error = -EOVERFLOW;
76929 return -EOVERFLOW;
76930 }
76931 +
76932 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76933 + return 0;
76934 +
76935 dirent = buf->previous;
76936 if (dirent) {
76937 if (__put_user(offset, &dirent->d_off))
76938 @@ -980,6 +991,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
76939 if (!f.file)
76940 return -EBADF;
76941
76942 + buf.file = f.file;
76943 error = iterate_dir(f.file, &buf.ctx);
76944 if (error >= 0)
76945 error = buf.error;
76946 @@ -1000,6 +1012,7 @@ struct compat_getdents_callback64 {
76947 struct dir_context ctx;
76948 struct linux_dirent64 __user *current_dir;
76949 struct linux_dirent64 __user *previous;
76950 + struct file * file;
76951 int count;
76952 int error;
76953 };
76954 @@ -1018,6 +1031,10 @@ static int compat_filldir64(struct dir_context *ctx, const char *name,
76955 buf->error = -EINVAL; /* only used if we fail.. */
76956 if (reclen > buf->count)
76957 return -EINVAL;
76958 +
76959 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76960 + return 0;
76961 +
76962 dirent = buf->previous;
76963
76964 if (dirent) {
76965 @@ -1067,13 +1084,13 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
76966 if (!f.file)
76967 return -EBADF;
76968
76969 + buf.file = f.file;
76970 error = iterate_dir(f.file, &buf.ctx);
76971 if (error >= 0)
76972 error = buf.error;
76973 lastdirent = buf.previous;
76974 if (lastdirent) {
76975 - typeof(lastdirent->d_off) d_off = buf.ctx.pos;
76976 - if (__put_user_unaligned(d_off, &lastdirent->d_off))
76977 + if (__put_user_unaligned(buf.ctx.pos, &lastdirent->d_off))
76978 error = -EFAULT;
76979 else
76980 error = count - buf.count;
76981 diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
76982 index 4d24d17..4f8c09e 100644
76983 --- a/fs/compat_binfmt_elf.c
76984 +++ b/fs/compat_binfmt_elf.c
76985 @@ -30,11 +30,13 @@
76986 #undef elf_phdr
76987 #undef elf_shdr
76988 #undef elf_note
76989 +#undef elf_dyn
76990 #undef elf_addr_t
76991 #define elfhdr elf32_hdr
76992 #define elf_phdr elf32_phdr
76993 #define elf_shdr elf32_shdr
76994 #define elf_note elf32_note
76995 +#define elf_dyn Elf32_Dyn
76996 #define elf_addr_t Elf32_Addr
76997
76998 /*
76999 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
77000 index 48851f6..6c79d32 100644
77001 --- a/fs/compat_ioctl.c
77002 +++ b/fs/compat_ioctl.c
77003 @@ -622,7 +622,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
77004 return -EFAULT;
77005 if (__get_user(udata, &ss32->iomem_base))
77006 return -EFAULT;
77007 - ss.iomem_base = compat_ptr(udata);
77008 + ss.iomem_base = (unsigned char __force_kernel *)compat_ptr(udata);
77009 if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
77010 __get_user(ss.port_high, &ss32->port_high))
77011 return -EFAULT;
77012 @@ -704,8 +704,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
77013 for (i = 0; i < nmsgs; i++) {
77014 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
77015 return -EFAULT;
77016 - if (get_user(datap, &umsgs[i].buf) ||
77017 - put_user(compat_ptr(datap), &tmsgs[i].buf))
77018 + if (get_user(datap, (compat_caddr_t __user *)&umsgs[i].buf) ||
77019 + put_user(compat_ptr(datap), (u8 __user * __user *)&tmsgs[i].buf))
77020 return -EFAULT;
77021 }
77022 return sys_ioctl(fd, cmd, (unsigned long)tdata);
77023 @@ -798,7 +798,7 @@ static int compat_ioctl_preallocate(struct file *file,
77024 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) ||
77025 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
77026 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
77027 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
77028 + copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
77029 return -EFAULT;
77030
77031 return ioctl_preallocate(file, p);
77032 @@ -1621,8 +1621,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
77033 static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
77034 {
77035 unsigned int a, b;
77036 - a = *(unsigned int *)p;
77037 - b = *(unsigned int *)q;
77038 + a = *(const unsigned int *)p;
77039 + b = *(const unsigned int *)q;
77040 if (a > b)
77041 return 1;
77042 if (a < b)
77043 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
77044 index c81ce7f..f3de5fd 100644
77045 --- a/fs/configfs/dir.c
77046 +++ b/fs/configfs/dir.c
77047 @@ -1540,7 +1540,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
77048 }
77049 for (p = q->next; p != &parent_sd->s_children; p = p->next) {
77050 struct configfs_dirent *next;
77051 - const char *name;
77052 + const unsigned char * name;
77053 + char d_name[sizeof(next->s_dentry->d_iname)];
77054 int len;
77055 struct inode *inode = NULL;
77056
77057 @@ -1549,7 +1550,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
77058 continue;
77059
77060 name = configfs_get_name(next);
77061 - len = strlen(name);
77062 + if (next->s_dentry && name == next->s_dentry->d_iname) {
77063 + len = next->s_dentry->d_name.len;
77064 + memcpy(d_name, name, len);
77065 + name = d_name;
77066 + } else
77067 + len = strlen(name);
77068
77069 /*
77070 * We'll have a dentry and an inode for
77071 diff --git a/fs/coredump.c b/fs/coredump.c
77072 index a8f7564..0329da8 100644
77073 --- a/fs/coredump.c
77074 +++ b/fs/coredump.c
77075 @@ -457,8 +457,8 @@ static void wait_for_dump_helpers(struct file *file)
77076 struct pipe_inode_info *pipe = file->private_data;
77077
77078 pipe_lock(pipe);
77079 - pipe->readers++;
77080 - pipe->writers--;
77081 + atomic_inc(&pipe->readers);
77082 + atomic_dec(&pipe->writers);
77083 wake_up_interruptible_sync(&pipe->wait);
77084 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
77085 pipe_unlock(pipe);
77086 @@ -467,11 +467,11 @@ static void wait_for_dump_helpers(struct file *file)
77087 * We actually want wait_event_freezable() but then we need
77088 * to clear TIF_SIGPENDING and improve dump_interrupted().
77089 */
77090 - wait_event_interruptible(pipe->wait, pipe->readers == 1);
77091 + wait_event_interruptible(pipe->wait, atomic_read(&pipe->readers) == 1);
77092
77093 pipe_lock(pipe);
77094 - pipe->readers--;
77095 - pipe->writers++;
77096 + atomic_dec(&pipe->readers);
77097 + atomic_inc(&pipe->writers);
77098 pipe_unlock(pipe);
77099 }
77100
77101 @@ -518,7 +518,9 @@ void do_coredump(const siginfo_t *siginfo)
77102 /* require nonrelative corefile path and be extra careful */
77103 bool need_suid_safe = false;
77104 bool core_dumped = false;
77105 - static atomic_t core_dump_count = ATOMIC_INIT(0);
77106 + static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0);
77107 + long signr = siginfo->si_signo;
77108 + int dumpable;
77109 struct coredump_params cprm = {
77110 .siginfo = siginfo,
77111 .regs = signal_pt_regs(),
77112 @@ -531,12 +533,17 @@ void do_coredump(const siginfo_t *siginfo)
77113 .mm_flags = mm->flags,
77114 };
77115
77116 - audit_core_dumps(siginfo->si_signo);
77117 + audit_core_dumps(signr);
77118 +
77119 + dumpable = __get_dumpable(cprm.mm_flags);
77120 +
77121 + if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
77122 + gr_handle_brute_attach(dumpable);
77123
77124 binfmt = mm->binfmt;
77125 if (!binfmt || !binfmt->core_dump)
77126 goto fail;
77127 - if (!__get_dumpable(cprm.mm_flags))
77128 + if (!dumpable)
77129 goto fail;
77130
77131 cred = prepare_creds();
77132 @@ -554,7 +561,7 @@ void do_coredump(const siginfo_t *siginfo)
77133 need_suid_safe = true;
77134 }
77135
77136 - retval = coredump_wait(siginfo->si_signo, &core_state);
77137 + retval = coredump_wait(signr, &core_state);
77138 if (retval < 0)
77139 goto fail_creds;
77140
77141 @@ -597,7 +604,7 @@ void do_coredump(const siginfo_t *siginfo)
77142 }
77143 cprm.limit = RLIM_INFINITY;
77144
77145 - dump_count = atomic_inc_return(&core_dump_count);
77146 + dump_count = atomic_inc_return_unchecked(&core_dump_count);
77147 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
77148 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
77149 task_tgid_vnr(current), current->comm);
77150 @@ -629,6 +636,8 @@ void do_coredump(const siginfo_t *siginfo)
77151 } else {
77152 struct inode *inode;
77153
77154 + gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
77155 +
77156 if (cprm.limit < binfmt->min_coredump)
77157 goto fail_unlock;
77158
77159 @@ -654,7 +663,7 @@ void do_coredump(const siginfo_t *siginfo)
77160 * If it doesn't exist, that's fine. If there's some
77161 * other problem, we'll catch it at the filp_open().
77162 */
77163 - (void) sys_unlink((const char __user *)cn.corename);
77164 + (void) sys_unlink((const char __force_user *)cn.corename);
77165 set_fs(old_fs);
77166 }
77167
77168 @@ -718,7 +727,7 @@ close_fail:
77169 filp_close(cprm.file, NULL);
77170 fail_dropcount:
77171 if (ispipe)
77172 - atomic_dec(&core_dump_count);
77173 + atomic_dec_unchecked(&core_dump_count);
77174 fail_unlock:
77175 kfree(cn.corename);
77176 coredump_finish(mm, core_dumped);
77177 @@ -739,6 +748,8 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
77178 struct file *file = cprm->file;
77179 loff_t pos = file->f_pos;
77180 ssize_t n;
77181 +
77182 + gr_learn_resource(current, RLIMIT_CORE, cprm->written + nr, 1);
77183 if (cprm->written + nr > cprm->limit)
77184 return 0;
77185 while (nr) {
77186 diff --git a/fs/dcache.c b/fs/dcache.c
77187 index 5c33aeb..e8739c7 100644
77188 --- a/fs/dcache.c
77189 +++ b/fs/dcache.c
77190 @@ -341,8 +341,9 @@ static inline void dentry_rcuwalk_invalidate(struct dentry *dentry)
77191 * and is unhashed.
77192 */
77193 static void dentry_iput(struct dentry * dentry)
77194 - __releases(dentry->d_lock)
77195 - __releases(dentry->d_inode->i_lock)
77196 + __releases(&dentry->d_lock)
77197 + __releases(&dentry->d_inode->i_lock);
77198 +static void dentry_iput(struct dentry * dentry)
77199 {
77200 struct inode *inode = dentry->d_inode;
77201 if (inode) {
77202 @@ -366,8 +367,9 @@ static void dentry_iput(struct dentry * dentry)
77203 * d_iput() operation if defined. dentry remains in-use.
77204 */
77205 static void dentry_unlink_inode(struct dentry * dentry)
77206 - __releases(dentry->d_lock)
77207 - __releases(dentry->d_inode->i_lock)
77208 + __releases(&dentry->d_lock)
77209 + __releases(&dentry->d_inode->i_lock);
77210 +static void dentry_unlink_inode(struct dentry * dentry)
77211 {
77212 struct inode *inode = dentry->d_inode;
77213 __d_clear_type_and_inode(dentry);
77214 @@ -545,7 +547,7 @@ static void __dentry_kill(struct dentry *dentry)
77215 * dentry_iput drops the locks, at which point nobody (except
77216 * transient RCU lookups) can reach this dentry.
77217 */
77218 - BUG_ON(dentry->d_lockref.count > 0);
77219 + BUG_ON(__lockref_read(&dentry->d_lockref) > 0);
77220 this_cpu_dec(nr_dentry);
77221 if (dentry->d_op && dentry->d_op->d_release)
77222 dentry->d_op->d_release(dentry);
77223 @@ -567,7 +569,8 @@ static void __dentry_kill(struct dentry *dentry)
77224 * Returns dentry requiring refcount drop, or NULL if we're done.
77225 */
77226 static struct dentry *dentry_kill(struct dentry *dentry)
77227 - __releases(dentry->d_lock)
77228 + __releases(&dentry->d_lock);
77229 +static struct dentry *dentry_kill(struct dentry *dentry)
77230 {
77231 struct inode *inode = dentry->d_inode;
77232 struct dentry *parent = NULL;
77233 @@ -598,7 +601,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
77234 struct dentry *parent = dentry->d_parent;
77235 if (IS_ROOT(dentry))
77236 return NULL;
77237 - if (unlikely(dentry->d_lockref.count < 0))
77238 + if (unlikely(__lockref_read(&dentry->d_lockref) < 0))
77239 return NULL;
77240 if (likely(spin_trylock(&parent->d_lock)))
77241 return parent;
77242 @@ -660,8 +663,8 @@ static inline bool fast_dput(struct dentry *dentry)
77243 */
77244 if (unlikely(ret < 0)) {
77245 spin_lock(&dentry->d_lock);
77246 - if (dentry->d_lockref.count > 1) {
77247 - dentry->d_lockref.count--;
77248 + if (__lockref_read(&dentry->d_lockref) > 1) {
77249 + __lockref_dec(&dentry->d_lockref);
77250 spin_unlock(&dentry->d_lock);
77251 return 1;
77252 }
77253 @@ -716,7 +719,7 @@ static inline bool fast_dput(struct dentry *dentry)
77254 * else could have killed it and marked it dead. Either way, we
77255 * don't need to do anything else.
77256 */
77257 - if (dentry->d_lockref.count) {
77258 + if (__lockref_read(&dentry->d_lockref)) {
77259 spin_unlock(&dentry->d_lock);
77260 return 1;
77261 }
77262 @@ -726,7 +729,7 @@ static inline bool fast_dput(struct dentry *dentry)
77263 * lock, and we just tested that it was zero, so we can just
77264 * set it to 1.
77265 */
77266 - dentry->d_lockref.count = 1;
77267 + __lockref_set(&dentry->d_lockref, 1);
77268 return 0;
77269 }
77270
77271 @@ -788,7 +791,7 @@ repeat:
77272 dentry->d_flags |= DCACHE_REFERENCED;
77273 dentry_lru_add(dentry);
77274
77275 - dentry->d_lockref.count--;
77276 + __lockref_dec(&dentry->d_lockref);
77277 spin_unlock(&dentry->d_lock);
77278 return;
77279
77280 @@ -803,7 +806,7 @@ EXPORT_SYMBOL(dput);
77281 /* This must be called with d_lock held */
77282 static inline void __dget_dlock(struct dentry *dentry)
77283 {
77284 - dentry->d_lockref.count++;
77285 + __lockref_inc(&dentry->d_lockref);
77286 }
77287
77288 static inline void __dget(struct dentry *dentry)
77289 @@ -844,8 +847,8 @@ repeat:
77290 goto repeat;
77291 }
77292 rcu_read_unlock();
77293 - BUG_ON(!ret->d_lockref.count);
77294 - ret->d_lockref.count++;
77295 + BUG_ON(!__lockref_read(&ret->d_lockref));
77296 + __lockref_inc(&ret->d_lockref);
77297 spin_unlock(&ret->d_lock);
77298 return ret;
77299 }
77300 @@ -923,9 +926,9 @@ restart:
77301 spin_lock(&inode->i_lock);
77302 hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
77303 spin_lock(&dentry->d_lock);
77304 - if (!dentry->d_lockref.count) {
77305 + if (!__lockref_read(&dentry->d_lockref)) {
77306 struct dentry *parent = lock_parent(dentry);
77307 - if (likely(!dentry->d_lockref.count)) {
77308 + if (likely(!__lockref_read(&dentry->d_lockref))) {
77309 __dentry_kill(dentry);
77310 dput(parent);
77311 goto restart;
77312 @@ -960,7 +963,7 @@ static void shrink_dentry_list(struct list_head *list)
77313 * We found an inuse dentry which was not removed from
77314 * the LRU because of laziness during lookup. Do not free it.
77315 */
77316 - if (dentry->d_lockref.count > 0) {
77317 + if (__lockref_read(&dentry->d_lockref) > 0) {
77318 spin_unlock(&dentry->d_lock);
77319 if (parent)
77320 spin_unlock(&parent->d_lock);
77321 @@ -998,8 +1001,8 @@ static void shrink_dentry_list(struct list_head *list)
77322 dentry = parent;
77323 while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
77324 parent = lock_parent(dentry);
77325 - if (dentry->d_lockref.count != 1) {
77326 - dentry->d_lockref.count--;
77327 + if (__lockref_read(&dentry->d_lockref) != 1) {
77328 + __lockref_inc(&dentry->d_lockref);
77329 spin_unlock(&dentry->d_lock);
77330 if (parent)
77331 spin_unlock(&parent->d_lock);
77332 @@ -1039,7 +1042,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
77333 * counts, just remove them from the LRU. Otherwise give them
77334 * another pass through the LRU.
77335 */
77336 - if (dentry->d_lockref.count) {
77337 + if (__lockref_read(&dentry->d_lockref)) {
77338 d_lru_isolate(lru, dentry);
77339 spin_unlock(&dentry->d_lock);
77340 return LRU_REMOVED;
77341 @@ -1373,7 +1376,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
77342 } else {
77343 if (dentry->d_flags & DCACHE_LRU_LIST)
77344 d_lru_del(dentry);
77345 - if (!dentry->d_lockref.count) {
77346 + if (!__lockref_read(&dentry->d_lockref)) {
77347 d_shrink_add(dentry, &data->dispose);
77348 data->found++;
77349 }
77350 @@ -1421,7 +1424,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
77351 return D_WALK_CONTINUE;
77352
77353 /* root with refcount 1 is fine */
77354 - if (dentry == _data && dentry->d_lockref.count == 1)
77355 + if (dentry == _data && __lockref_read(&dentry->d_lockref) == 1)
77356 return D_WALK_CONTINUE;
77357
77358 printk(KERN_ERR "BUG: Dentry %p{i=%lx,n=%pd} "
77359 @@ -1430,7 +1433,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
77360 dentry->d_inode ?
77361 dentry->d_inode->i_ino : 0UL,
77362 dentry,
77363 - dentry->d_lockref.count,
77364 + __lockref_read(&dentry->d_lockref),
77365 dentry->d_sb->s_type->name,
77366 dentry->d_sb->s_id);
77367 WARN_ON(1);
77368 @@ -1571,7 +1574,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77369 dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
77370 if (name->len > DNAME_INLINE_LEN-1) {
77371 size_t size = offsetof(struct external_name, name[1]);
77372 - struct external_name *p = kmalloc(size + name->len, GFP_KERNEL);
77373 + struct external_name *p = kmalloc(round_up(size + name->len, sizeof(unsigned long)), GFP_KERNEL);
77374 if (!p) {
77375 kmem_cache_free(dentry_cache, dentry);
77376 return NULL;
77377 @@ -1594,7 +1597,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77378 smp_wmb();
77379 dentry->d_name.name = dname;
77380
77381 - dentry->d_lockref.count = 1;
77382 + __lockref_set(&dentry->d_lockref, 1);
77383 dentry->d_flags = 0;
77384 spin_lock_init(&dentry->d_lock);
77385 seqcount_init(&dentry->d_seq);
77386 @@ -1603,6 +1606,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77387 dentry->d_sb = sb;
77388 dentry->d_op = NULL;
77389 dentry->d_fsdata = NULL;
77390 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
77391 + atomic_set(&dentry->chroot_refcnt, 0);
77392 +#endif
77393 INIT_HLIST_BL_NODE(&dentry->d_hash);
77394 INIT_LIST_HEAD(&dentry->d_lru);
77395 INIT_LIST_HEAD(&dentry->d_subdirs);
77396 @@ -2327,7 +2333,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
77397 goto next;
77398 }
77399
77400 - dentry->d_lockref.count++;
77401 + __lockref_inc(&dentry->d_lockref);
77402 found = dentry;
77403 spin_unlock(&dentry->d_lock);
77404 break;
77405 @@ -2395,7 +2401,7 @@ again:
77406 spin_lock(&dentry->d_lock);
77407 inode = dentry->d_inode;
77408 isdir = S_ISDIR(inode->i_mode);
77409 - if (dentry->d_lockref.count == 1) {
77410 + if (__lockref_read(&dentry->d_lockref) == 1) {
77411 if (!spin_trylock(&inode->i_lock)) {
77412 spin_unlock(&dentry->d_lock);
77413 cpu_relax();
77414 @@ -3343,7 +3349,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
77415
77416 if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
77417 dentry->d_flags |= DCACHE_GENOCIDE;
77418 - dentry->d_lockref.count--;
77419 + __lockref_dec(&dentry->d_lockref);
77420 }
77421 }
77422 return D_WALK_CONTINUE;
77423 @@ -3451,7 +3457,8 @@ void __init vfs_caches_init_early(void)
77424 void __init vfs_caches_init(void)
77425 {
77426 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
77427 - SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
77428 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY|
77429 + SLAB_NO_SANITIZE, NULL);
77430
77431 dcache_init();
77432 inode_init();
77433 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
77434 index 9c8d233..79cf56b 100644
77435 --- a/fs/debugfs/inode.c
77436 +++ b/fs/debugfs/inode.c
77437 @@ -406,6 +406,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
77438 * If debugfs is not enabled in the kernel, the value -%ENODEV will be
77439 * returned.
77440 */
77441 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77442 +extern int grsec_enable_sysfs_restrict;
77443 +#endif
77444 +
77445 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77446 {
77447 struct dentry *dentry = start_creating(name, parent);
77448 @@ -418,7 +422,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77449 if (unlikely(!inode))
77450 return failed_creating(dentry);
77451
77452 - inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77453 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77454 + if (grsec_enable_sysfs_restrict)
77455 + inode->i_mode = S_IFDIR | S_IRWXU;
77456 + else
77457 +#endif
77458 + inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77459 inode->i_op = &simple_dir_inode_operations;
77460 inode->i_fop = &simple_dir_operations;
77461
77462 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
77463 index 3c4db11..a43976f 100644
77464 --- a/fs/ecryptfs/inode.c
77465 +++ b/fs/ecryptfs/inode.c
77466 @@ -662,7 +662,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz)
77467 old_fs = get_fs();
77468 set_fs(get_ds());
77469 rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry,
77470 - (char __user *)lower_buf,
77471 + (char __force_user *)lower_buf,
77472 PATH_MAX);
77473 set_fs(old_fs);
77474 if (rc < 0)
77475 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
77476 index e4141f2..d8263e8 100644
77477 --- a/fs/ecryptfs/miscdev.c
77478 +++ b/fs/ecryptfs/miscdev.c
77479 @@ -304,7 +304,7 @@ check_list:
77480 goto out_unlock_msg_ctx;
77481 i = PKT_TYPE_SIZE + PKT_CTR_SIZE;
77482 if (msg_ctx->msg) {
77483 - if (copy_to_user(&buf[i], packet_length, packet_length_size))
77484 + if (packet_length_size > sizeof(packet_length) || copy_to_user(&buf[i], packet_length, packet_length_size))
77485 goto out_unlock_msg_ctx;
77486 i += packet_length_size;
77487 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
77488 diff --git a/fs/exec.c b/fs/exec.c
77489 index b06623a..122301f 100644
77490 --- a/fs/exec.c
77491 +++ b/fs/exec.c
77492 @@ -56,8 +56,20 @@
77493 #include <linux/pipe_fs_i.h>
77494 #include <linux/oom.h>
77495 #include <linux/compat.h>
77496 +#include <linux/random.h>
77497 +#include <linux/seq_file.h>
77498 +#include <linux/coredump.h>
77499 +#include <linux/mman.h>
77500 +
77501 +#ifdef CONFIG_PAX_REFCOUNT
77502 +#include <linux/kallsyms.h>
77503 +#include <linux/kdebug.h>
77504 +#endif
77505 +
77506 +#include <trace/events/fs.h>
77507
77508 #include <asm/uaccess.h>
77509 +#include <asm/sections.h>
77510 #include <asm/mmu_context.h>
77511 #include <asm/tlb.h>
77512
77513 @@ -66,19 +78,34 @@
77514
77515 #include <trace/events/sched.h>
77516
77517 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
77518 +void __weak pax_set_initial_flags(struct linux_binprm *bprm)
77519 +{
77520 + pr_warn_once("PAX: PAX_HAVE_ACL_FLAGS was enabled without providing the pax_set_initial_flags callback, this is probably not what you wanted.\n");
77521 +}
77522 +#endif
77523 +
77524 +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS
77525 +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
77526 +EXPORT_SYMBOL(pax_set_initial_flags_func);
77527 +#endif
77528 +
77529 int suid_dumpable = 0;
77530
77531 static LIST_HEAD(formats);
77532 static DEFINE_RWLOCK(binfmt_lock);
77533
77534 +extern int gr_process_kernel_exec_ban(void);
77535 +extern int gr_process_suid_exec_ban(const struct linux_binprm *bprm);
77536 +
77537 void __register_binfmt(struct linux_binfmt * fmt, int insert)
77538 {
77539 BUG_ON(!fmt);
77540 if (WARN_ON(!fmt->load_binary))
77541 return;
77542 write_lock(&binfmt_lock);
77543 - insert ? list_add(&fmt->lh, &formats) :
77544 - list_add_tail(&fmt->lh, &formats);
77545 + insert ? pax_list_add((struct list_head *)&fmt->lh, &formats) :
77546 + pax_list_add_tail((struct list_head *)&fmt->lh, &formats);
77547 write_unlock(&binfmt_lock);
77548 }
77549
77550 @@ -87,7 +114,7 @@ EXPORT_SYMBOL(__register_binfmt);
77551 void unregister_binfmt(struct linux_binfmt * fmt)
77552 {
77553 write_lock(&binfmt_lock);
77554 - list_del(&fmt->lh);
77555 + pax_list_del((struct list_head *)&fmt->lh);
77556 write_unlock(&binfmt_lock);
77557 }
77558
77559 @@ -189,18 +216,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77560 int write)
77561 {
77562 struct page *page;
77563 - int ret;
77564
77565 -#ifdef CONFIG_STACK_GROWSUP
77566 - if (write) {
77567 - ret = expand_downwards(bprm->vma, pos);
77568 - if (ret < 0)
77569 - return NULL;
77570 - }
77571 -#endif
77572 - ret = get_user_pages(current, bprm->mm, pos,
77573 - 1, write, 1, &page, NULL);
77574 - if (ret <= 0)
77575 + if (0 > expand_downwards(bprm->vma, pos))
77576 + return NULL;
77577 + if (0 >= get_user_pages(current, bprm->mm, pos, 1, write, 1, &page, NULL))
77578 return NULL;
77579
77580 if (write) {
77581 @@ -216,6 +235,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77582 if (size <= ARG_MAX)
77583 return page;
77584
77585 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77586 + // only allow 512KB for argv+env on suid/sgid binaries
77587 + // to prevent easy ASLR exhaustion
77588 + if (((!uid_eq(bprm->cred->euid, current_euid())) ||
77589 + (!gid_eq(bprm->cred->egid, current_egid()))) &&
77590 + (size > (512 * 1024))) {
77591 + put_page(page);
77592 + return NULL;
77593 + }
77594 +#endif
77595 +
77596 /*
77597 * Limit to 1/4-th the stack size for the argv+env strings.
77598 * This ensures that:
77599 @@ -275,6 +305,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77600 vma->vm_end = STACK_TOP_MAX;
77601 vma->vm_start = vma->vm_end - PAGE_SIZE;
77602 vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
77603 +
77604 +#ifdef CONFIG_PAX_SEGMEXEC
77605 + vma->vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
77606 +#endif
77607 +
77608 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
77609 INIT_LIST_HEAD(&vma->anon_vma_chain);
77610
77611 @@ -286,6 +321,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77612 arch_bprm_mm_init(mm, vma);
77613 up_write(&mm->mmap_sem);
77614 bprm->p = vma->vm_end - sizeof(void *);
77615 +
77616 +#ifdef CONFIG_PAX_RANDUSTACK
77617 + if (randomize_va_space)
77618 + bprm->p ^= prandom_u32() & ~PAGE_MASK;
77619 +#endif
77620 +
77621 return 0;
77622 err:
77623 up_write(&mm->mmap_sem);
77624 @@ -402,7 +443,7 @@ struct user_arg_ptr {
77625 } ptr;
77626 };
77627
77628 -static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77629 +const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77630 {
77631 const char __user *native;
77632
77633 @@ -411,14 +452,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77634 compat_uptr_t compat;
77635
77636 if (get_user(compat, argv.ptr.compat + nr))
77637 - return ERR_PTR(-EFAULT);
77638 + return (const char __force_user *)ERR_PTR(-EFAULT);
77639
77640 return compat_ptr(compat);
77641 }
77642 #endif
77643
77644 if (get_user(native, argv.ptr.native + nr))
77645 - return ERR_PTR(-EFAULT);
77646 + return (const char __force_user *)ERR_PTR(-EFAULT);
77647
77648 return native;
77649 }
77650 @@ -437,7 +478,7 @@ static int count(struct user_arg_ptr argv, int max)
77651 if (!p)
77652 break;
77653
77654 - if (IS_ERR(p))
77655 + if (IS_ERR((const char __force_kernel *)p))
77656 return -EFAULT;
77657
77658 if (i >= max)
77659 @@ -472,7 +513,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
77660
77661 ret = -EFAULT;
77662 str = get_user_arg_ptr(argv, argc);
77663 - if (IS_ERR(str))
77664 + if (IS_ERR((const char __force_kernel *)str))
77665 goto out;
77666
77667 len = strnlen_user(str, MAX_ARG_STRLEN);
77668 @@ -554,7 +595,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
77669 int r;
77670 mm_segment_t oldfs = get_fs();
77671 struct user_arg_ptr argv = {
77672 - .ptr.native = (const char __user *const __user *)__argv,
77673 + .ptr.native = (const char __user * const __force_user *)__argv,
77674 };
77675
77676 set_fs(KERNEL_DS);
77677 @@ -589,7 +630,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77678 unsigned long new_end = old_end - shift;
77679 struct mmu_gather tlb;
77680
77681 - BUG_ON(new_start > new_end);
77682 + if (new_start >= new_end || new_start < mmap_min_addr)
77683 + return -ENOMEM;
77684
77685 /*
77686 * ensure there are no vmas between where we want to go
77687 @@ -598,6 +640,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77688 if (vma != find_vma(mm, new_start))
77689 return -EFAULT;
77690
77691 +#ifdef CONFIG_PAX_SEGMEXEC
77692 + BUG_ON(pax_find_mirror_vma(vma));
77693 +#endif
77694 +
77695 /*
77696 * cover the whole range: [new_start, old_end)
77697 */
77698 @@ -681,10 +727,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
77699 stack_top = arch_align_stack(stack_top);
77700 stack_top = PAGE_ALIGN(stack_top);
77701
77702 - if (unlikely(stack_top < mmap_min_addr) ||
77703 - unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr))
77704 - return -ENOMEM;
77705 -
77706 stack_shift = vma->vm_end - stack_top;
77707
77708 bprm->p -= stack_shift;
77709 @@ -696,8 +738,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
77710 bprm->exec -= stack_shift;
77711
77712 down_write(&mm->mmap_sem);
77713 +
77714 + /* Move stack pages down in memory. */
77715 + if (stack_shift) {
77716 + ret = shift_arg_pages(vma, stack_shift);
77717 + if (ret)
77718 + goto out_unlock;
77719 + }
77720 +
77721 vm_flags = VM_STACK_FLAGS;
77722
77723 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
77724 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
77725 + vm_flags &= ~VM_EXEC;
77726 +
77727 +#ifdef CONFIG_PAX_MPROTECT
77728 + if (mm->pax_flags & MF_PAX_MPROTECT)
77729 + vm_flags &= ~VM_MAYEXEC;
77730 +#endif
77731 +
77732 + }
77733 +#endif
77734 +
77735 /*
77736 * Adjust stack execute permissions; explicitly enable for
77737 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
77738 @@ -716,13 +778,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
77739 goto out_unlock;
77740 BUG_ON(prev != vma);
77741
77742 - /* Move stack pages down in memory. */
77743 - if (stack_shift) {
77744 - ret = shift_arg_pages(vma, stack_shift);
77745 - if (ret)
77746 - goto out_unlock;
77747 - }
77748 -
77749 /* mprotect_fixup is overkill to remove the temporary stack flags */
77750 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
77751
77752 @@ -746,6 +801,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
77753 #endif
77754 current->mm->start_stack = bprm->p;
77755 ret = expand_stack(vma, stack_base);
77756 +
77757 +#if !defined(CONFIG_STACK_GROWSUP) && defined(CONFIG_PAX_RANDMMAP)
77758 + if (!ret && (mm->pax_flags & MF_PAX_RANDMMAP) && STACK_TOP <= 0xFFFFFFFFU && STACK_TOP > vma->vm_end) {
77759 + unsigned long size;
77760 + vm_flags_t vm_flags;
77761 +
77762 + size = STACK_TOP - vma->vm_end;
77763 + vm_flags = VM_NONE | VM_DONTEXPAND | VM_DONTDUMP;
77764 +
77765 + ret = vma->vm_end != mmap_region(NULL, vma->vm_end, size, vm_flags, 0);
77766 +
77767 +#ifdef CONFIG_X86
77768 + if (!ret) {
77769 + size = PAGE_SIZE + mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT));
77770 + ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0);
77771 + }
77772 +#endif
77773 +
77774 + }
77775 +#endif
77776 +
77777 if (ret)
77778 ret = -EFAULT;
77779
77780 @@ -790,8 +866,10 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
77781 if (err)
77782 goto exit;
77783
77784 - if (name->name[0] != '\0')
77785 + if (name->name[0] != '\0') {
77786 fsnotify_open(file);
77787 + trace_open_exec(name->name);
77788 + }
77789
77790 out:
77791 return file;
77792 @@ -824,7 +902,7 @@ int kernel_read(struct file *file, loff_t offset,
77793 old_fs = get_fs();
77794 set_fs(get_ds());
77795 /* The cast to a user pointer is valid due to the set_fs() */
77796 - result = vfs_read(file, (void __user *)addr, count, &pos);
77797 + result = vfs_read(file, (void __force_user *)addr, count, &pos);
77798 set_fs(old_fs);
77799 return result;
77800 }
77801 @@ -869,6 +947,7 @@ static int exec_mmap(struct mm_struct *mm)
77802 tsk->mm = mm;
77803 tsk->active_mm = mm;
77804 activate_mm(active_mm, mm);
77805 + populate_stack();
77806 tsk->mm->vmacache_seqnum = 0;
77807 vmacache_flush(tsk);
77808 task_unlock(tsk);
77809 @@ -1277,7 +1356,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
77810 }
77811 rcu_read_unlock();
77812
77813 - if (p->fs->users > n_fs)
77814 + if (atomic_read(&p->fs->users) > n_fs)
77815 bprm->unsafe |= LSM_UNSAFE_SHARE;
77816 else
77817 p->fs->in_exec = 1;
77818 @@ -1478,6 +1557,31 @@ static int exec_binprm(struct linux_binprm *bprm)
77819 return ret;
77820 }
77821
77822 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77823 +static DEFINE_PER_CPU(u64, exec_counter);
77824 +static int __init init_exec_counters(void)
77825 +{
77826 + unsigned int cpu;
77827 +
77828 + for_each_possible_cpu(cpu) {
77829 + per_cpu(exec_counter, cpu) = (u64)cpu;
77830 + }
77831 +
77832 + return 0;
77833 +}
77834 +early_initcall(init_exec_counters);
77835 +static inline void increment_exec_counter(void)
77836 +{
77837 + BUILD_BUG_ON(NR_CPUS > (1 << 16));
77838 + current->exec_id = this_cpu_add_return(exec_counter, 1 << 16);
77839 +}
77840 +#else
77841 +static inline void increment_exec_counter(void) {}
77842 +#endif
77843 +
77844 +extern void gr_handle_exec_args(struct linux_binprm *bprm,
77845 + struct user_arg_ptr argv);
77846 +
77847 /*
77848 * sys_execve() executes a new program.
77849 */
77850 @@ -1486,6 +1590,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77851 struct user_arg_ptr envp,
77852 int flags)
77853 {
77854 +#ifdef CONFIG_GRKERNSEC
77855 + struct file *old_exec_file;
77856 + struct acl_subject_label *old_acl;
77857 + struct rlimit old_rlim[RLIM_NLIMITS];
77858 +#endif
77859 char *pathbuf = NULL;
77860 struct linux_binprm *bprm;
77861 struct file *file;
77862 @@ -1495,6 +1604,8 @@ static int do_execveat_common(int fd, struct filename *filename,
77863 if (IS_ERR(filename))
77864 return PTR_ERR(filename);
77865
77866 + gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current_user()->processes), 1);
77867 +
77868 /*
77869 * We move the actual failure in case of RLIMIT_NPROC excess from
77870 * set*uid() to execve() because too many poorly written programs
77871 @@ -1532,6 +1643,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77872 if (IS_ERR(file))
77873 goto out_unmark;
77874
77875 + if (gr_ptrace_readexec(file, bprm->unsafe)) {
77876 + retval = -EPERM;
77877 + goto out_unmark;
77878 + }
77879 +
77880 sched_exec();
77881
77882 bprm->file = file;
77883 @@ -1558,6 +1674,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77884 }
77885 bprm->interp = bprm->filename;
77886
77887 + if (!gr_acl_handle_execve(file->f_path.dentry, file->f_path.mnt)) {
77888 + retval = -EACCES;
77889 + goto out_unmark;
77890 + }
77891 +
77892 retval = bprm_mm_init(bprm);
77893 if (retval)
77894 goto out_unmark;
77895 @@ -1574,24 +1695,70 @@ static int do_execveat_common(int fd, struct filename *filename,
77896 if (retval < 0)
77897 goto out;
77898
77899 +#ifdef CONFIG_GRKERNSEC
77900 + old_acl = current->acl;
77901 + memcpy(old_rlim, current->signal->rlim, sizeof(old_rlim));
77902 + old_exec_file = current->exec_file;
77903 + get_file(file);
77904 + current->exec_file = file;
77905 +#endif
77906 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77907 + /* limit suid stack to 8MB
77908 + * we saved the old limits above and will restore them if this exec fails
77909 + */
77910 + if (((!uid_eq(bprm->cred->euid, current_euid())) || (!gid_eq(bprm->cred->egid, current_egid()))) &&
77911 + (old_rlim[RLIMIT_STACK].rlim_cur > (8 * 1024 * 1024)))
77912 + current->signal->rlim[RLIMIT_STACK].rlim_cur = 8 * 1024 * 1024;
77913 +#endif
77914 +
77915 + if (gr_process_kernel_exec_ban() || gr_process_suid_exec_ban(bprm)) {
77916 + retval = -EPERM;
77917 + goto out_fail;
77918 + }
77919 +
77920 + if (!gr_tpe_allow(file)) {
77921 + retval = -EACCES;
77922 + goto out_fail;
77923 + }
77924 +
77925 + if (gr_check_crash_exec(file)) {
77926 + retval = -EACCES;
77927 + goto out_fail;
77928 + }
77929 +
77930 + retval = gr_set_proc_label(file->f_path.dentry, file->f_path.mnt,
77931 + bprm->unsafe);
77932 + if (retval < 0)
77933 + goto out_fail;
77934 +
77935 retval = copy_strings_kernel(1, &bprm->filename, bprm);
77936 if (retval < 0)
77937 - goto out;
77938 + goto out_fail;
77939
77940 bprm->exec = bprm->p;
77941 retval = copy_strings(bprm->envc, envp, bprm);
77942 if (retval < 0)
77943 - goto out;
77944 + goto out_fail;
77945
77946 retval = copy_strings(bprm->argc, argv, bprm);
77947 if (retval < 0)
77948 - goto out;
77949 + goto out_fail;
77950 +
77951 + gr_log_chroot_exec(file->f_path.dentry, file->f_path.mnt);
77952 +
77953 + gr_handle_exec_args(bprm, argv);
77954
77955 retval = exec_binprm(bprm);
77956 if (retval < 0)
77957 - goto out;
77958 + goto out_fail;
77959 +#ifdef CONFIG_GRKERNSEC
77960 + if (old_exec_file)
77961 + fput(old_exec_file);
77962 +#endif
77963
77964 /* execve succeeded */
77965 +
77966 + increment_exec_counter();
77967 current->fs->in_exec = 0;
77968 current->in_execve = 0;
77969 acct_update_integrals(current);
77970 @@ -1603,6 +1770,14 @@ static int do_execveat_common(int fd, struct filename *filename,
77971 put_files_struct(displaced);
77972 return retval;
77973
77974 +out_fail:
77975 +#ifdef CONFIG_GRKERNSEC
77976 + current->acl = old_acl;
77977 + memcpy(current->signal->rlim, old_rlim, sizeof(old_rlim));
77978 + fput(current->exec_file);
77979 + current->exec_file = old_exec_file;
77980 +#endif
77981 +
77982 out:
77983 if (bprm->mm) {
77984 acct_arg_size(bprm, 0);
77985 @@ -1749,3 +1924,319 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
77986 argv, envp, flags);
77987 }
77988 #endif
77989 +
77990 +int pax_check_flags(unsigned long *flags)
77991 +{
77992 + int retval = 0;
77993 +
77994 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_SEGMEXEC)
77995 + if (*flags & MF_PAX_SEGMEXEC)
77996 + {
77997 + *flags &= ~MF_PAX_SEGMEXEC;
77998 + retval = -EINVAL;
77999 + }
78000 +#endif
78001 +
78002 + if ((*flags & MF_PAX_PAGEEXEC)
78003 +
78004 +#ifdef CONFIG_PAX_PAGEEXEC
78005 + && (*flags & MF_PAX_SEGMEXEC)
78006 +#endif
78007 +
78008 + )
78009 + {
78010 + *flags &= ~MF_PAX_PAGEEXEC;
78011 + retval = -EINVAL;
78012 + }
78013 +
78014 + if ((*flags & MF_PAX_MPROTECT)
78015 +
78016 +#ifdef CONFIG_PAX_MPROTECT
78017 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
78018 +#endif
78019 +
78020 + )
78021 + {
78022 + *flags &= ~MF_PAX_MPROTECT;
78023 + retval = -EINVAL;
78024 + }
78025 +
78026 + if ((*flags & MF_PAX_EMUTRAMP)
78027 +
78028 +#ifdef CONFIG_PAX_EMUTRAMP
78029 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
78030 +#endif
78031 +
78032 + )
78033 + {
78034 + *flags &= ~MF_PAX_EMUTRAMP;
78035 + retval = -EINVAL;
78036 + }
78037 +
78038 + return retval;
78039 +}
78040 +
78041 +EXPORT_SYMBOL(pax_check_flags);
78042 +
78043 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
78044 +char *pax_get_path(const struct path *path, char *buf, int buflen)
78045 +{
78046 + char *pathname = d_path(path, buf, buflen);
78047 +
78048 + if (IS_ERR(pathname))
78049 + goto toolong;
78050 +
78051 + pathname = mangle_path(buf, pathname, "\t\n\\");
78052 + if (!pathname)
78053 + goto toolong;
78054 +
78055 + *pathname = 0;
78056 + return buf;
78057 +
78058 +toolong:
78059 + return "<path too long>";
78060 +}
78061 +EXPORT_SYMBOL(pax_get_path);
78062 +
78063 +void pax_report_fault(struct pt_regs *regs, void *pc, void *sp)
78064 +{
78065 + struct task_struct *tsk = current;
78066 + struct mm_struct *mm = current->mm;
78067 + char *buffer_exec = (char *)__get_free_page(GFP_KERNEL);
78068 + char *buffer_fault = (char *)__get_free_page(GFP_KERNEL);
78069 + char *path_exec = NULL;
78070 + char *path_fault = NULL;
78071 + unsigned long start = 0UL, end = 0UL, offset = 0UL;
78072 + siginfo_t info = { };
78073 +
78074 + if (buffer_exec && buffer_fault) {
78075 + struct vm_area_struct *vma, *vma_exec = NULL, *vma_fault = NULL;
78076 +
78077 + down_read(&mm->mmap_sem);
78078 + vma = mm->mmap;
78079 + while (vma && (!vma_exec || !vma_fault)) {
78080 + if (vma->vm_file && mm->exe_file == vma->vm_file && (vma->vm_flags & VM_EXEC))
78081 + vma_exec = vma;
78082 + if (vma->vm_start <= (unsigned long)pc && (unsigned long)pc < vma->vm_end)
78083 + vma_fault = vma;
78084 + vma = vma->vm_next;
78085 + }
78086 + if (vma_exec)
78087 + path_exec = pax_get_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE);
78088 + if (vma_fault) {
78089 + start = vma_fault->vm_start;
78090 + end = vma_fault->vm_end;
78091 + offset = vma_fault->vm_pgoff << PAGE_SHIFT;
78092 + if (vma_fault->vm_file)
78093 + path_fault = pax_get_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE);
78094 + else if ((unsigned long)pc >= mm->start_brk && (unsigned long)pc < mm->brk)
78095 + path_fault = "<heap>";
78096 + else if (vma_fault->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
78097 + path_fault = "<stack>";
78098 + else
78099 + path_fault = "<anonymous mapping>";
78100 + }
78101 + up_read(&mm->mmap_sem);
78102 + }
78103 + if (tsk->signal->curr_ip)
78104 + printk(KERN_ERR "PAX: From %pI4: execution attempt in: %s, %08lx-%08lx %08lx\n", &tsk->signal->curr_ip, path_fault, start, end, offset);
78105 + else
78106 + printk(KERN_ERR "PAX: execution attempt in: %s, %08lx-%08lx %08lx\n", path_fault, start, end, offset);
78107 + printk(KERN_ERR "PAX: terminating task: %s(%s):%d, uid/euid: %u/%u, PC: %p, SP: %p\n", path_exec, tsk->comm, task_pid_nr(tsk),
78108 + from_kuid_munged(&init_user_ns, task_uid(tsk)), from_kuid_munged(&init_user_ns, task_euid(tsk)), pc, sp);
78109 + free_page((unsigned long)buffer_exec);
78110 + free_page((unsigned long)buffer_fault);
78111 + pax_report_insns(regs, pc, sp);
78112 + info.si_signo = SIGKILL;
78113 + info.si_errno = 0;
78114 + info.si_code = SI_KERNEL;
78115 + info.si_pid = 0;
78116 + info.si_uid = 0;
78117 + do_coredump(&info);
78118 +}
78119 +#endif
78120 +
78121 +#ifdef CONFIG_PAX_REFCOUNT
78122 +void pax_report_refcount_overflow(struct pt_regs *regs)
78123 +{
78124 + if (current->signal->curr_ip)
78125 + printk(KERN_EMERG "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
78126 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
78127 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
78128 + else
78129 + printk(KERN_EMERG "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
78130 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
78131 + print_symbol(KERN_EMERG "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
78132 + preempt_disable();
78133 + show_regs(regs);
78134 + preempt_enable();
78135 + force_sig_info(SIGKILL, SEND_SIG_FORCED, current);
78136 +}
78137 +#endif
78138 +
78139 +#ifdef CONFIG_PAX_USERCOPY
78140 +/* 0: not at all, 1: fully, 2: fully inside frame, -1: partially (implies an error) */
78141 +static noinline int check_stack_object(const void *obj, unsigned long len)
78142 +{
78143 + const void * const stack = task_stack_page(current);
78144 + const void * const stackend = stack + THREAD_SIZE;
78145 +
78146 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
78147 + const void *frame = NULL;
78148 + const void *oldframe;
78149 +#endif
78150 +
78151 + if (obj + len < obj)
78152 + return -1;
78153 +
78154 + if (obj + len <= stack || stackend <= obj)
78155 + return 0;
78156 +
78157 + if (obj < stack || stackend < obj + len)
78158 + return -1;
78159 +
78160 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
78161 + oldframe = __builtin_frame_address(1);
78162 + if (oldframe)
78163 + frame = __builtin_frame_address(2);
78164 + /*
78165 + low ----------------------------------------------> high
78166 + [saved bp][saved ip][args][local vars][saved bp][saved ip]
78167 + ^----------------^
78168 + allow copies only within here
78169 + */
78170 + while (stack <= frame && frame < stackend) {
78171 + /* if obj + len extends past the last frame, this
78172 + check won't pass and the next frame will be 0,
78173 + causing us to bail out and correctly report
78174 + the copy as invalid
78175 + */
78176 + if (obj + len <= frame)
78177 + return obj >= oldframe + 2 * sizeof(void *) ? 2 : -1;
78178 + oldframe = frame;
78179 + frame = *(const void * const *)frame;
78180 + }
78181 + return -1;
78182 +#else
78183 + return 1;
78184 +#endif
78185 +}
78186 +
78187 +static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type)
78188 +{
78189 + if (current->signal->curr_ip)
78190 + printk(KERN_EMERG "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
78191 + &current->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
78192 + else
78193 + printk(KERN_EMERG "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
78194 + to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
78195 + dump_stack();
78196 + gr_handle_kernel_exploit();
78197 + do_group_exit(SIGKILL);
78198 +}
78199 +#endif
78200 +
78201 +#ifdef CONFIG_PAX_USERCOPY
78202 +
78203 +static inline bool check_kernel_text_object(unsigned long low, unsigned long high)
78204 +{
78205 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
78206 + unsigned long textlow = ktla_ktva((unsigned long)_stext);
78207 +#ifdef CONFIG_MODULES
78208 + unsigned long texthigh = (unsigned long)MODULES_EXEC_VADDR;
78209 +#else
78210 + unsigned long texthigh = ktla_ktva((unsigned long)_etext);
78211 +#endif
78212 +
78213 +#else
78214 + unsigned long textlow = (unsigned long)_stext;
78215 + unsigned long texthigh = (unsigned long)_etext;
78216 +
78217 +#ifdef CONFIG_X86_64
78218 + /* check against linear mapping as well */
78219 + if (high > (unsigned long)__va(__pa(textlow)) &&
78220 + low < (unsigned long)__va(__pa(texthigh)))
78221 + return true;
78222 +#endif
78223 +
78224 +#endif
78225 +
78226 + if (high <= textlow || low >= texthigh)
78227 + return false;
78228 + else
78229 + return true;
78230 +}
78231 +#endif
78232 +
78233 +void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size)
78234 +{
78235 +#ifdef CONFIG_PAX_USERCOPY
78236 + const char *type;
78237 +#endif
78238 +
78239 +#if !defined(CONFIG_STACK_GROWSUP) && !defined(CONFIG_X86_64)
78240 + unsigned long stackstart = (unsigned long)task_stack_page(current);
78241 + unsigned long currentsp = (unsigned long)&stackstart;
78242 + if (unlikely((currentsp < stackstart + 512 ||
78243 + currentsp >= stackstart + THREAD_SIZE) && !in_interrupt()))
78244 + BUG();
78245 +#endif
78246 +
78247 +#ifndef CONFIG_PAX_USERCOPY_DEBUG
78248 + if (const_size)
78249 + return;
78250 +#endif
78251 +
78252 +#ifdef CONFIG_PAX_USERCOPY
78253 + if (!n)
78254 + return;
78255 +
78256 + type = check_heap_object(ptr, n);
78257 + if (!type) {
78258 + int ret = check_stack_object(ptr, n);
78259 + if (ret == 1 || ret == 2)
78260 + return;
78261 + if (ret == 0) {
78262 + if (check_kernel_text_object((unsigned long)ptr, (unsigned long)ptr + n))
78263 + type = "<kernel text>";
78264 + else
78265 + return;
78266 + } else
78267 + type = "<process stack>";
78268 + }
78269 +
78270 + pax_report_usercopy(ptr, n, to_user, type);
78271 +#endif
78272 +
78273 +}
78274 +EXPORT_SYMBOL(__check_object_size);
78275 +
78276 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
78277 +void __used pax_track_stack(void)
78278 +{
78279 + unsigned long sp = (unsigned long)&sp;
78280 + if (sp < current_thread_info()->lowest_stack &&
78281 + sp >= (unsigned long)task_stack_page(current) + 2 * sizeof(unsigned long))
78282 + current_thread_info()->lowest_stack = sp;
78283 + if (unlikely((sp & ~(THREAD_SIZE - 1)) < (THREAD_SIZE/16)))
78284 + BUG();
78285 +}
78286 +EXPORT_SYMBOL(pax_track_stack);
78287 +#endif
78288 +
78289 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
78290 +
78291 +static DEFINE_RATELIMIT_STATE(size_overflow_ratelimit, 15 * HZ, 3);
78292 +extern bool pax_size_overflow_report_only;
78293 +
78294 +void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
78295 +{
78296 + if (!pax_size_overflow_report_only || __ratelimit(&size_overflow_ratelimit)) {
78297 + printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
78298 + dump_stack();
78299 + }
78300 + if (!pax_size_overflow_report_only)
78301 + do_group_exit(SIGKILL);
78302 +}
78303 +EXPORT_SYMBOL(report_size_overflow);
78304 +#endif
78305 diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
78306 index 9f9992b..8b59411 100644
78307 --- a/fs/ext2/balloc.c
78308 +++ b/fs/ext2/balloc.c
78309 @@ -1184,10 +1184,10 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
78310
78311 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
78312 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
78313 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
78314 + if (free_blocks < root_blocks + 1 &&
78315 !uid_eq(sbi->s_resuid, current_fsuid()) &&
78316 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
78317 - !in_group_p (sbi->s_resgid))) {
78318 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
78319 return 0;
78320 }
78321 return 1;
78322 diff --git a/fs/ext2/super.c b/fs/ext2/super.c
78323 index 900e19c..f7dc2b8 100644
78324 --- a/fs/ext2/super.c
78325 +++ b/fs/ext2/super.c
78326 @@ -267,10 +267,8 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
78327 #ifdef CONFIG_EXT2_FS_XATTR
78328 if (test_opt(sb, XATTR_USER))
78329 seq_puts(seq, ",user_xattr");
78330 - if (!test_opt(sb, XATTR_USER) &&
78331 - (def_mount_opts & EXT2_DEFM_XATTR_USER)) {
78332 + if (!test_opt(sb, XATTR_USER))
78333 seq_puts(seq, ",nouser_xattr");
78334 - }
78335 #endif
78336
78337 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78338 @@ -856,8 +854,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
78339 if (def_mount_opts & EXT2_DEFM_UID16)
78340 set_opt(sbi->s_mount_opt, NO_UID32);
78341 #ifdef CONFIG_EXT2_FS_XATTR
78342 - if (def_mount_opts & EXT2_DEFM_XATTR_USER)
78343 - set_opt(sbi->s_mount_opt, XATTR_USER);
78344 + /* always enable user xattrs */
78345 + set_opt(sbi->s_mount_opt, XATTR_USER);
78346 #endif
78347 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78348 if (def_mount_opts & EXT2_DEFM_ACL)
78349 diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
78350 index 0b6bfd3..93a2964 100644
78351 --- a/fs/ext2/xattr.c
78352 +++ b/fs/ext2/xattr.c
78353 @@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
78354 struct buffer_head *bh = NULL;
78355 struct ext2_xattr_entry *entry;
78356 char *end;
78357 - size_t rest = buffer_size;
78358 + size_t rest = buffer_size, total_size = 0;
78359 int error;
78360
78361 ea_idebug(inode, "buffer=%p, buffer_size=%ld",
78362 @@ -305,9 +305,10 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_list",
78363 buffer += size;
78364 }
78365 rest -= size;
78366 + total_size += size;
78367 }
78368 }
78369 - error = buffer_size - rest; /* total size */
78370 + error = total_size;
78371
78372 cleanup:
78373 brelse(bh);
78374 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
78375 index cd6ea29..1cd2a97 100644
78376 --- a/fs/ext4/balloc.c
78377 +++ b/fs/ext4/balloc.c
78378 @@ -556,8 +556,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
78379 /* Hm, nope. Are (enough) root reserved clusters available? */
78380 if (uid_eq(sbi->s_resuid, current_fsuid()) ||
78381 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
78382 - capable(CAP_SYS_RESOURCE) ||
78383 - (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
78384 + (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
78385 + capable_nolog(CAP_SYS_RESOURCE)) {
78386
78387 if (free_clusters >= (nclusters + dirty_clusters +
78388 resv_clusters))
78389 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
78390 index fd1f28b..eb832cf 100644
78391 --- a/fs/ext4/ext4.h
78392 +++ b/fs/ext4/ext4.h
78393 @@ -1305,19 +1305,19 @@ struct ext4_sb_info {
78394 unsigned long s_mb_last_start;
78395
78396 /* stats for buddy allocator */
78397 - atomic_t s_bal_reqs; /* number of reqs with len > 1 */
78398 - atomic_t s_bal_success; /* we found long enough chunks */
78399 - atomic_t s_bal_allocated; /* in blocks */
78400 - atomic_t s_bal_ex_scanned; /* total extents scanned */
78401 - atomic_t s_bal_goals; /* goal hits */
78402 - atomic_t s_bal_breaks; /* too long searches */
78403 - atomic_t s_bal_2orders; /* 2^order hits */
78404 + atomic_unchecked_t s_bal_reqs; /* number of reqs with len > 1 */
78405 + atomic_unchecked_t s_bal_success; /* we found long enough chunks */
78406 + atomic_unchecked_t s_bal_allocated; /* in blocks */
78407 + atomic_unchecked_t s_bal_ex_scanned; /* total extents scanned */
78408 + atomic_unchecked_t s_bal_goals; /* goal hits */
78409 + atomic_unchecked_t s_bal_breaks; /* too long searches */
78410 + atomic_unchecked_t s_bal_2orders; /* 2^order hits */
78411 spinlock_t s_bal_lock;
78412 unsigned long s_mb_buddies_generated;
78413 unsigned long long s_mb_generation_time;
78414 - atomic_t s_mb_lost_chunks;
78415 - atomic_t s_mb_preallocated;
78416 - atomic_t s_mb_discarded;
78417 + atomic_unchecked_t s_mb_lost_chunks;
78418 + atomic_unchecked_t s_mb_preallocated;
78419 + atomic_unchecked_t s_mb_discarded;
78420 atomic_t s_lock_busy;
78421
78422 /* locality groups */
78423 diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
78424 index 34b610e..ecc47cb 100644
78425 --- a/fs/ext4/mballoc.c
78426 +++ b/fs/ext4/mballoc.c
78427 @@ -1905,7 +1905,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
78428 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
78429
78430 if (EXT4_SB(sb)->s_mb_stats)
78431 - atomic_inc(&EXT4_SB(sb)->s_bal_2orders);
78432 + atomic_inc_unchecked(&EXT4_SB(sb)->s_bal_2orders);
78433
78434 break;
78435 }
78436 @@ -2228,7 +2228,7 @@ repeat:
78437 ac->ac_status = AC_STATUS_CONTINUE;
78438 ac->ac_flags |= EXT4_MB_HINT_FIRST;
78439 cr = 3;
78440 - atomic_inc(&sbi->s_mb_lost_chunks);
78441 + atomic_inc_unchecked(&sbi->s_mb_lost_chunks);
78442 goto repeat;
78443 }
78444 }
78445 @@ -2732,25 +2732,25 @@ int ext4_mb_release(struct super_block *sb)
78446 if (sbi->s_mb_stats) {
78447 ext4_msg(sb, KERN_INFO,
78448 "mballoc: %u blocks %u reqs (%u success)",
78449 - atomic_read(&sbi->s_bal_allocated),
78450 - atomic_read(&sbi->s_bal_reqs),
78451 - atomic_read(&sbi->s_bal_success));
78452 + atomic_read_unchecked(&sbi->s_bal_allocated),
78453 + atomic_read_unchecked(&sbi->s_bal_reqs),
78454 + atomic_read_unchecked(&sbi->s_bal_success));
78455 ext4_msg(sb, KERN_INFO,
78456 "mballoc: %u extents scanned, %u goal hits, "
78457 "%u 2^N hits, %u breaks, %u lost",
78458 - atomic_read(&sbi->s_bal_ex_scanned),
78459 - atomic_read(&sbi->s_bal_goals),
78460 - atomic_read(&sbi->s_bal_2orders),
78461 - atomic_read(&sbi->s_bal_breaks),
78462 - atomic_read(&sbi->s_mb_lost_chunks));
78463 + atomic_read_unchecked(&sbi->s_bal_ex_scanned),
78464 + atomic_read_unchecked(&sbi->s_bal_goals),
78465 + atomic_read_unchecked(&sbi->s_bal_2orders),
78466 + atomic_read_unchecked(&sbi->s_bal_breaks),
78467 + atomic_read_unchecked(&sbi->s_mb_lost_chunks));
78468 ext4_msg(sb, KERN_INFO,
78469 "mballoc: %lu generated and it took %Lu",
78470 sbi->s_mb_buddies_generated,
78471 sbi->s_mb_generation_time);
78472 ext4_msg(sb, KERN_INFO,
78473 "mballoc: %u preallocated, %u discarded",
78474 - atomic_read(&sbi->s_mb_preallocated),
78475 - atomic_read(&sbi->s_mb_discarded));
78476 + atomic_read_unchecked(&sbi->s_mb_preallocated),
78477 + atomic_read_unchecked(&sbi->s_mb_discarded));
78478 }
78479
78480 free_percpu(sbi->s_locality_groups);
78481 @@ -3206,16 +3206,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
78482 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
78483
78484 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
78485 - atomic_inc(&sbi->s_bal_reqs);
78486 - atomic_add(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78487 + atomic_inc_unchecked(&sbi->s_bal_reqs);
78488 + atomic_add_unchecked(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78489 if (ac->ac_b_ex.fe_len >= ac->ac_o_ex.fe_len)
78490 - atomic_inc(&sbi->s_bal_success);
78491 - atomic_add(ac->ac_found, &sbi->s_bal_ex_scanned);
78492 + atomic_inc_unchecked(&sbi->s_bal_success);
78493 + atomic_add_unchecked(ac->ac_found, &sbi->s_bal_ex_scanned);
78494 if (ac->ac_g_ex.fe_start == ac->ac_b_ex.fe_start &&
78495 ac->ac_g_ex.fe_group == ac->ac_b_ex.fe_group)
78496 - atomic_inc(&sbi->s_bal_goals);
78497 + atomic_inc_unchecked(&sbi->s_bal_goals);
78498 if (ac->ac_found > sbi->s_mb_max_to_scan)
78499 - atomic_inc(&sbi->s_bal_breaks);
78500 + atomic_inc_unchecked(&sbi->s_bal_breaks);
78501 }
78502
78503 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
78504 @@ -3642,7 +3642,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
78505 trace_ext4_mb_new_inode_pa(ac, pa);
78506
78507 ext4_mb_use_inode_pa(ac, pa);
78508 - atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
78509 + atomic_add_unchecked(pa->pa_free, &sbi->s_mb_preallocated);
78510
78511 ei = EXT4_I(ac->ac_inode);
78512 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78513 @@ -3702,7 +3702,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
78514 trace_ext4_mb_new_group_pa(ac, pa);
78515
78516 ext4_mb_use_group_pa(ac, pa);
78517 - atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78518 + atomic_add_unchecked(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78519
78520 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78521 lg = ac->ac_lg;
78522 @@ -3791,7 +3791,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
78523 * from the bitmap and continue.
78524 */
78525 }
78526 - atomic_add(free, &sbi->s_mb_discarded);
78527 + atomic_add_unchecked(free, &sbi->s_mb_discarded);
78528
78529 return err;
78530 }
78531 @@ -3809,7 +3809,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
78532 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
78533 BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
78534 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
78535 - atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78536 + atomic_add_unchecked(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78537 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
78538
78539 return 0;
78540 diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
78541 index cf0c472..ddf284d 100644
78542 --- a/fs/ext4/resize.c
78543 +++ b/fs/ext4/resize.c
78544 @@ -413,7 +413,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78545
78546 ext4_debug("mark blocks [%llu/%u] used\n", block, count);
78547 for (count2 = count; count > 0; count -= count2, block += count2) {
78548 - ext4_fsblk_t start;
78549 + ext4_fsblk_t start, diff;
78550 struct buffer_head *bh;
78551 ext4_group_t group;
78552 int err;
78553 @@ -422,10 +422,6 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78554 start = ext4_group_first_block_no(sb, group);
78555 group -= flex_gd->groups[0].group;
78556
78557 - count2 = EXT4_BLOCKS_PER_GROUP(sb) - (block - start);
78558 - if (count2 > count)
78559 - count2 = count;
78560 -
78561 if (flex_gd->bg_flags[group] & EXT4_BG_BLOCK_UNINIT) {
78562 BUG_ON(flex_gd->count > 1);
78563 continue;
78564 @@ -443,9 +439,15 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78565 err = ext4_journal_get_write_access(handle, bh);
78566 if (err)
78567 return err;
78568 +
78569 + diff = block - start;
78570 + count2 = EXT4_BLOCKS_PER_GROUP(sb) - diff;
78571 + if (count2 > count)
78572 + count2 = count;
78573 +
78574 ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n", block,
78575 - block - start, count2);
78576 - ext4_set_bits(bh->b_data, block - start, count2);
78577 + diff, count2);
78578 + ext4_set_bits(bh->b_data, diff, count2);
78579
78580 err = ext4_handle_dirty_metadata(handle, NULL, bh);
78581 if (unlikely(err))
78582 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
78583 index df84bd2..e6e9120 100644
78584 --- a/fs/ext4/super.c
78585 +++ b/fs/ext4/super.c
78586 @@ -1279,7 +1279,7 @@ static ext4_fsblk_t get_sb_block(void **data)
78587 }
78588
78589 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
78590 -static char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78591 +static const char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78592 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
78593
78594 #ifdef CONFIG_QUOTA
78595 @@ -2489,7 +2489,7 @@ struct ext4_attr {
78596 int offset;
78597 int deprecated_val;
78598 } u;
78599 -};
78600 +} __do_const;
78601
78602 static int parse_strtoull(const char *buf,
78603 unsigned long long max, unsigned long long *value)
78604 diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
78605 index 16e28c0..728c282 100644
78606 --- a/fs/ext4/xattr.c
78607 +++ b/fs/ext4/xattr.c
78608 @@ -398,7 +398,7 @@ static int
78609 ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78610 char *buffer, size_t buffer_size)
78611 {
78612 - size_t rest = buffer_size;
78613 + size_t rest = buffer_size, total_size = 0;
78614
78615 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
78616 const struct xattr_handler *handler =
78617 @@ -415,9 +415,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78618 buffer += size;
78619 }
78620 rest -= size;
78621 + total_size += size;
78622 }
78623 }
78624 - return buffer_size - rest;
78625 + return total_size;
78626 }
78627
78628 static int
78629 diff --git a/fs/fcntl.c b/fs/fcntl.c
78630 index ee85cd4..9dd0d20 100644
78631 --- a/fs/fcntl.c
78632 +++ b/fs/fcntl.c
78633 @@ -102,6 +102,10 @@ void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
78634 int force)
78635 {
78636 security_file_set_fowner(filp);
78637 + if (gr_handle_chroot_fowner(pid, type))
78638 + return;
78639 + if (gr_check_protected_task_fowner(pid, type))
78640 + return;
78641 f_modown(filp, pid, type, force);
78642 }
78643 EXPORT_SYMBOL(__f_setown);
78644 diff --git a/fs/fhandle.c b/fs/fhandle.c
78645 index d59712d..2c63363 100644
78646 --- a/fs/fhandle.c
78647 +++ b/fs/fhandle.c
78648 @@ -8,6 +8,7 @@
78649 #include <linux/fs_struct.h>
78650 #include <linux/fsnotify.h>
78651 #include <linux/personality.h>
78652 +#include <linux/grsecurity.h>
78653 #include <asm/uaccess.h>
78654 #include "internal.h"
78655 #include "mount.h"
78656 @@ -67,8 +68,7 @@ static long do_sys_name_to_handle(struct path *path,
78657 } else
78658 retval = 0;
78659 /* copy the mount id */
78660 - if (copy_to_user(mnt_id, &real_mount(path->mnt)->mnt_id,
78661 - sizeof(*mnt_id)) ||
78662 + if (put_user(real_mount(path->mnt)->mnt_id, mnt_id) ||
78663 copy_to_user(ufh, handle,
78664 sizeof(struct file_handle) + handle_bytes))
78665 retval = -EFAULT;
78666 @@ -175,7 +175,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
78667 * the directory. Ideally we would like CAP_DAC_SEARCH.
78668 * But we don't have that
78669 */
78670 - if (!capable(CAP_DAC_READ_SEARCH)) {
78671 + if (!capable(CAP_DAC_READ_SEARCH) || !gr_chroot_fhandle()) {
78672 retval = -EPERM;
78673 goto out_err;
78674 }
78675 @@ -197,7 +197,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
78676 /* copy the full handle */
78677 *handle = f_handle;
78678 if (copy_from_user(&handle->f_handle,
78679 - &ufh->f_handle,
78680 + ufh->f_handle,
78681 f_handle.handle_bytes)) {
78682 retval = -EFAULT;
78683 goto out_handle;
78684 diff --git a/fs/file.c b/fs/file.c
78685 index 6c672ad..3166d8c 100644
78686 --- a/fs/file.c
78687 +++ b/fs/file.c
78688 @@ -16,6 +16,7 @@
78689 #include <linux/slab.h>
78690 #include <linux/vmalloc.h>
78691 #include <linux/file.h>
78692 +#include <linux/security.h>
78693 #include <linux/fdtable.h>
78694 #include <linux/bitops.h>
78695 #include <linux/interrupt.h>
78696 @@ -139,9 +140,10 @@ out:
78697 * Return <0 error code on error; 1 on successful completion.
78698 * The files->file_lock should be held on entry, and will be held on exit.
78699 */
78700 -static int expand_fdtable(struct files_struct *files, int nr)
78701 - __releases(files->file_lock)
78702 - __acquires(files->file_lock)
78703 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
78704 + __releases(&files->file_lock)
78705 + __acquires(&files->file_lock);
78706 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
78707 {
78708 struct fdtable *new_fdt, *cur_fdt;
78709
78710 @@ -184,9 +186,10 @@ static int expand_fdtable(struct files_struct *files, int nr)
78711 * expanded and execution may have blocked.
78712 * The files->file_lock should be held on entry, and will be held on exit.
78713 */
78714 -static int expand_files(struct files_struct *files, int nr)
78715 - __releases(files->file_lock)
78716 - __acquires(files->file_lock)
78717 +static int expand_files(struct files_struct *files, unsigned int nr)
78718 + __releases(&files->file_lock)
78719 + __acquires(&files->file_lock);
78720 +static int expand_files(struct files_struct *files, unsigned int nr)
78721 {
78722 struct fdtable *fdt;
78723 int expanded = 0;
78724 @@ -784,7 +787,9 @@ bool get_close_on_exec(unsigned int fd)
78725
78726 static int do_dup2(struct files_struct *files,
78727 struct file *file, unsigned fd, unsigned flags)
78728 -__releases(&files->file_lock)
78729 +__releases(&files->file_lock);
78730 +static int do_dup2(struct files_struct *files,
78731 + struct file *file, unsigned fd, unsigned flags)
78732 {
78733 struct file *tofree;
78734 struct fdtable *fdt;
78735 @@ -834,6 +839,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
78736 if (!file)
78737 return __close_fd(files, fd);
78738
78739 + gr_learn_resource(current, RLIMIT_NOFILE, fd, 0);
78740 if (fd >= rlimit(RLIMIT_NOFILE))
78741 return -EBADF;
78742
78743 @@ -860,6 +866,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
78744 if (unlikely(oldfd == newfd))
78745 return -EINVAL;
78746
78747 + gr_learn_resource(current, RLIMIT_NOFILE, newfd, 0);
78748 if (newfd >= rlimit(RLIMIT_NOFILE))
78749 return -EBADF;
78750
78751 @@ -915,6 +922,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
78752 int f_dupfd(unsigned int from, struct file *file, unsigned flags)
78753 {
78754 int err;
78755 + gr_learn_resource(current, RLIMIT_NOFILE, from, 0);
78756 if (from >= rlimit(RLIMIT_NOFILE))
78757 return -EINVAL;
78758 err = alloc_fd(from, flags);
78759 diff --git a/fs/filesystems.c b/fs/filesystems.c
78760 index 5797d45..7d7d79a 100644
78761 --- a/fs/filesystems.c
78762 +++ b/fs/filesystems.c
78763 @@ -275,7 +275,11 @@ struct file_system_type *get_fs_type(const char *name)
78764 int len = dot ? dot - name : strlen(name);
78765
78766 fs = __get_fs_type(name, len);
78767 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
78768 + if (!fs && (___request_module(true, "grsec_modharden_fs", "fs-%.*s", len, name) == 0))
78769 +#else
78770 if (!fs && (request_module("fs-%.*s", len, name) == 0))
78771 +#endif
78772 fs = __get_fs_type(name, len);
78773
78774 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
78775 diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
78776 index 29e4599..4eaa7db 100644
78777 --- a/fs/fs-writeback.c
78778 +++ b/fs/fs-writeback.c
78779 @@ -845,9 +845,9 @@ restart:
78780 #else /* CONFIG_CGROUP_WRITEBACK */
78781
78782 static struct bdi_writeback *
78783 +locked_inode_to_wb_and_lock_list(struct inode *inode) __releases(&inode->i_lock) __acquires(&wb->list_lock);
78784 +static struct bdi_writeback *
78785 locked_inode_to_wb_and_lock_list(struct inode *inode)
78786 - __releases(&inode->i_lock)
78787 - __acquires(&wb->list_lock)
78788 {
78789 struct bdi_writeback *wb = inode_to_wb(inode);
78790
78791 @@ -856,8 +856,8 @@ locked_inode_to_wb_and_lock_list(struct inode *inode)
78792 return wb;
78793 }
78794
78795 +static struct bdi_writeback *inode_to_wb_and_lock_list(struct inode *inode) __acquires(&wb->list_lock);
78796 static struct bdi_writeback *inode_to_wb_and_lock_list(struct inode *inode)
78797 - __acquires(&wb->list_lock)
78798 {
78799 struct bdi_writeback *wb = inode_to_wb(inode);
78800
78801 @@ -1101,9 +1101,8 @@ static int write_inode(struct inode *inode, struct writeback_control *wbc)
78802 * Wait for writeback on an inode to complete. Called with i_lock held.
78803 * Caller must make sure inode cannot go away when we drop i_lock.
78804 */
78805 +static void __inode_wait_for_writeback(struct inode *inode) __must_hold(&inode->i_lock);
78806 static void __inode_wait_for_writeback(struct inode *inode)
78807 - __releases(inode->i_lock)
78808 - __acquires(inode->i_lock)
78809 {
78810 DEFINE_WAIT_BIT(wq, &inode->i_state, __I_SYNC);
78811 wait_queue_head_t *wqh;
78812 @@ -1132,8 +1131,8 @@ void inode_wait_for_writeback(struct inode *inode)
78813 * held and drops it. It is aimed for callers not holding any inode reference
78814 * so once i_lock is dropped, inode can go away.
78815 */
78816 +static void inode_sleep_on_writeback(struct inode *inode) __releases(&inode->i_lock);
78817 static void inode_sleep_on_writeback(struct inode *inode)
78818 - __releases(inode->i_lock)
78819 {
78820 DEFINE_WAIT(wait);
78821 wait_queue_head_t *wqh = bit_waitqueue(&inode->i_state, __I_SYNC);
78822 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
78823 index 7dca743..1ff87ae 100644
78824 --- a/fs/fs_struct.c
78825 +++ b/fs/fs_struct.c
78826 @@ -4,6 +4,7 @@
78827 #include <linux/path.h>
78828 #include <linux/slab.h>
78829 #include <linux/fs_struct.h>
78830 +#include <linux/grsecurity.h>
78831 #include "internal.h"
78832
78833 /*
78834 @@ -15,14 +16,18 @@ void set_fs_root(struct fs_struct *fs, const struct path *path)
78835 struct path old_root;
78836
78837 path_get(path);
78838 + gr_inc_chroot_refcnts(path->dentry, path->mnt);
78839 spin_lock(&fs->lock);
78840 write_seqcount_begin(&fs->seq);
78841 old_root = fs->root;
78842 fs->root = *path;
78843 + gr_set_chroot_entries(current, path);
78844 write_seqcount_end(&fs->seq);
78845 spin_unlock(&fs->lock);
78846 - if (old_root.dentry)
78847 + if (old_root.dentry) {
78848 + gr_dec_chroot_refcnts(old_root.dentry, old_root.mnt);
78849 path_put(&old_root);
78850 + }
78851 }
78852
78853 /*
78854 @@ -67,6 +72,10 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
78855 int hits = 0;
78856 spin_lock(&fs->lock);
78857 write_seqcount_begin(&fs->seq);
78858 + /* this root replacement is only done by pivot_root,
78859 + leave grsec's chroot tagging alone for this task
78860 + so that a pivoted root isn't treated as a chroot
78861 + */
78862 hits += replace_path(&fs->root, old_root, new_root);
78863 hits += replace_path(&fs->pwd, old_root, new_root);
78864 write_seqcount_end(&fs->seq);
78865 @@ -85,6 +94,7 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
78866
78867 void free_fs_struct(struct fs_struct *fs)
78868 {
78869 + gr_dec_chroot_refcnts(fs->root.dentry, fs->root.mnt);
78870 path_put(&fs->root);
78871 path_put(&fs->pwd);
78872 kmem_cache_free(fs_cachep, fs);
78873 @@ -99,7 +109,8 @@ void exit_fs(struct task_struct *tsk)
78874 task_lock(tsk);
78875 spin_lock(&fs->lock);
78876 tsk->fs = NULL;
78877 - kill = !--fs->users;
78878 + gr_clear_chroot_entries(tsk);
78879 + kill = !atomic_dec_return(&fs->users);
78880 spin_unlock(&fs->lock);
78881 task_unlock(tsk);
78882 if (kill)
78883 @@ -112,7 +123,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
78884 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
78885 /* We don't need to lock fs - think why ;-) */
78886 if (fs) {
78887 - fs->users = 1;
78888 + atomic_set(&fs->users, 1);
78889 fs->in_exec = 0;
78890 spin_lock_init(&fs->lock);
78891 seqcount_init(&fs->seq);
78892 @@ -121,9 +132,13 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
78893 spin_lock(&old->lock);
78894 fs->root = old->root;
78895 path_get(&fs->root);
78896 + /* instead of calling gr_set_chroot_entries here,
78897 + we call it from every caller of this function
78898 + */
78899 fs->pwd = old->pwd;
78900 path_get(&fs->pwd);
78901 spin_unlock(&old->lock);
78902 + gr_inc_chroot_refcnts(fs->root.dentry, fs->root.mnt);
78903 }
78904 return fs;
78905 }
78906 @@ -139,8 +154,9 @@ int unshare_fs_struct(void)
78907
78908 task_lock(current);
78909 spin_lock(&fs->lock);
78910 - kill = !--fs->users;
78911 + kill = !atomic_dec_return(&fs->users);
78912 current->fs = new_fs;
78913 + gr_set_chroot_entries(current, &new_fs->root);
78914 spin_unlock(&fs->lock);
78915 task_unlock(current);
78916
78917 @@ -153,13 +169,13 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct);
78918
78919 int current_umask(void)
78920 {
78921 - return current->fs->umask;
78922 + return current->fs->umask | gr_acl_umask();
78923 }
78924 EXPORT_SYMBOL(current_umask);
78925
78926 /* to be mentioned only in INIT_TASK */
78927 struct fs_struct init_fs = {
78928 - .users = 1,
78929 + .users = ATOMIC_INIT(1),
78930 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
78931 .seq = SEQCNT_ZERO(init_fs.seq),
78932 .umask = 0022,
78933 diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
78934 index d403c69..30be0a9 100644
78935 --- a/fs/fscache/cookie.c
78936 +++ b/fs/fscache/cookie.c
78937 @@ -19,7 +19,7 @@
78938
78939 struct kmem_cache *fscache_cookie_jar;
78940
78941 -static atomic_t fscache_object_debug_id = ATOMIC_INIT(0);
78942 +static atomic_unchecked_t fscache_object_debug_id = ATOMIC_INIT(0);
78943
78944 static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie);
78945 static int fscache_alloc_object(struct fscache_cache *cache,
78946 @@ -69,11 +69,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
78947 parent ? (char *) parent->def->name : "<no-parent>",
78948 def->name, netfs_data, enable);
78949
78950 - fscache_stat(&fscache_n_acquires);
78951 + fscache_stat_unchecked(&fscache_n_acquires);
78952
78953 /* if there's no parent cookie, then we don't create one here either */
78954 if (!parent) {
78955 - fscache_stat(&fscache_n_acquires_null);
78956 + fscache_stat_unchecked(&fscache_n_acquires_null);
78957 _leave(" [no parent]");
78958 return NULL;
78959 }
78960 @@ -88,7 +88,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78961 /* allocate and initialise a cookie */
78962 cookie = kmem_cache_alloc(fscache_cookie_jar, GFP_KERNEL);
78963 if (!cookie) {
78964 - fscache_stat(&fscache_n_acquires_oom);
78965 + fscache_stat_unchecked(&fscache_n_acquires_oom);
78966 _leave(" [ENOMEM]");
78967 return NULL;
78968 }
78969 @@ -115,13 +115,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
78970
78971 switch (cookie->def->type) {
78972 case FSCACHE_COOKIE_TYPE_INDEX:
78973 - fscache_stat(&fscache_n_cookie_index);
78974 + fscache_stat_unchecked(&fscache_n_cookie_index);
78975 break;
78976 case FSCACHE_COOKIE_TYPE_DATAFILE:
78977 - fscache_stat(&fscache_n_cookie_data);
78978 + fscache_stat_unchecked(&fscache_n_cookie_data);
78979 break;
78980 default:
78981 - fscache_stat(&fscache_n_cookie_special);
78982 + fscache_stat_unchecked(&fscache_n_cookie_special);
78983 break;
78984 }
78985
78986 @@ -135,7 +135,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78987 } else {
78988 atomic_dec(&parent->n_children);
78989 __fscache_cookie_put(cookie);
78990 - fscache_stat(&fscache_n_acquires_nobufs);
78991 + fscache_stat_unchecked(&fscache_n_acquires_nobufs);
78992 _leave(" = NULL");
78993 return NULL;
78994 }
78995 @@ -144,7 +144,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78996 }
78997 }
78998
78999 - fscache_stat(&fscache_n_acquires_ok);
79000 + fscache_stat_unchecked(&fscache_n_acquires_ok);
79001 _leave(" = %p", cookie);
79002 return cookie;
79003 }
79004 @@ -213,7 +213,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
79005 cache = fscache_select_cache_for_object(cookie->parent);
79006 if (!cache) {
79007 up_read(&fscache_addremove_sem);
79008 - fscache_stat(&fscache_n_acquires_no_cache);
79009 + fscache_stat_unchecked(&fscache_n_acquires_no_cache);
79010 _leave(" = -ENOMEDIUM [no cache]");
79011 return -ENOMEDIUM;
79012 }
79013 @@ -297,14 +297,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
79014 object = cache->ops->alloc_object(cache, cookie);
79015 fscache_stat_d(&fscache_n_cop_alloc_object);
79016 if (IS_ERR(object)) {
79017 - fscache_stat(&fscache_n_object_no_alloc);
79018 + fscache_stat_unchecked(&fscache_n_object_no_alloc);
79019 ret = PTR_ERR(object);
79020 goto error;
79021 }
79022
79023 - fscache_stat(&fscache_n_object_alloc);
79024 + fscache_stat_unchecked(&fscache_n_object_alloc);
79025
79026 - object->debug_id = atomic_inc_return(&fscache_object_debug_id);
79027 + object->debug_id = atomic_inc_return_unchecked(&fscache_object_debug_id);
79028
79029 _debug("ALLOC OBJ%x: %s {%lx}",
79030 object->debug_id, cookie->def->name, object->events);
79031 @@ -419,7 +419,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
79032
79033 _enter("{%s}", cookie->def->name);
79034
79035 - fscache_stat(&fscache_n_invalidates);
79036 + fscache_stat_unchecked(&fscache_n_invalidates);
79037
79038 /* Only permit invalidation of data files. Invalidating an index will
79039 * require the caller to release all its attachments to the tree rooted
79040 @@ -477,10 +477,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
79041 {
79042 struct fscache_object *object;
79043
79044 - fscache_stat(&fscache_n_updates);
79045 + fscache_stat_unchecked(&fscache_n_updates);
79046
79047 if (!cookie) {
79048 - fscache_stat(&fscache_n_updates_null);
79049 + fscache_stat_unchecked(&fscache_n_updates_null);
79050 _leave(" [no cookie]");
79051 return;
79052 }
79053 @@ -581,12 +581,12 @@ EXPORT_SYMBOL(__fscache_disable_cookie);
79054 */
79055 void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
79056 {
79057 - fscache_stat(&fscache_n_relinquishes);
79058 + fscache_stat_unchecked(&fscache_n_relinquishes);
79059 if (retire)
79060 - fscache_stat(&fscache_n_relinquishes_retire);
79061 + fscache_stat_unchecked(&fscache_n_relinquishes_retire);
79062
79063 if (!cookie) {
79064 - fscache_stat(&fscache_n_relinquishes_null);
79065 + fscache_stat_unchecked(&fscache_n_relinquishes_null);
79066 _leave(" [no cookie]");
79067 return;
79068 }
79069 @@ -687,7 +687,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
79070 if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
79071 goto inconsistent;
79072
79073 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
79074 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79075
79076 __fscache_use_cookie(cookie);
79077 if (fscache_submit_op(object, op) < 0)
79078 diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
79079 index 97ec451..f722cee 100644
79080 --- a/fs/fscache/internal.h
79081 +++ b/fs/fscache/internal.h
79082 @@ -136,8 +136,8 @@ extern void fscache_operation_gc(struct work_struct *);
79083 extern int fscache_wait_for_deferred_lookup(struct fscache_cookie *);
79084 extern int fscache_wait_for_operation_activation(struct fscache_object *,
79085 struct fscache_operation *,
79086 - atomic_t *,
79087 - atomic_t *);
79088 + atomic_unchecked_t *,
79089 + atomic_unchecked_t *);
79090 extern void fscache_invalidate_writes(struct fscache_cookie *);
79091
79092 /*
79093 @@ -155,102 +155,102 @@ extern void fscache_proc_cleanup(void);
79094 * stats.c
79095 */
79096 #ifdef CONFIG_FSCACHE_STATS
79097 -extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
79098 -extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
79099 +extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
79100 +extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
79101
79102 -extern atomic_t fscache_n_op_pend;
79103 -extern atomic_t fscache_n_op_run;
79104 -extern atomic_t fscache_n_op_enqueue;
79105 -extern atomic_t fscache_n_op_deferred_release;
79106 -extern atomic_t fscache_n_op_initialised;
79107 -extern atomic_t fscache_n_op_release;
79108 -extern atomic_t fscache_n_op_gc;
79109 -extern atomic_t fscache_n_op_cancelled;
79110 -extern atomic_t fscache_n_op_rejected;
79111 +extern atomic_unchecked_t fscache_n_op_pend;
79112 +extern atomic_unchecked_t fscache_n_op_run;
79113 +extern atomic_unchecked_t fscache_n_op_enqueue;
79114 +extern atomic_unchecked_t fscache_n_op_deferred_release;
79115 +extern atomic_unchecked_t fscache_n_op_initialised;
79116 +extern atomic_unchecked_t fscache_n_op_release;
79117 +extern atomic_unchecked_t fscache_n_op_gc;
79118 +extern atomic_unchecked_t fscache_n_op_cancelled;
79119 +extern atomic_unchecked_t fscache_n_op_rejected;
79120
79121 -extern atomic_t fscache_n_attr_changed;
79122 -extern atomic_t fscache_n_attr_changed_ok;
79123 -extern atomic_t fscache_n_attr_changed_nobufs;
79124 -extern atomic_t fscache_n_attr_changed_nomem;
79125 -extern atomic_t fscache_n_attr_changed_calls;
79126 +extern atomic_unchecked_t fscache_n_attr_changed;
79127 +extern atomic_unchecked_t fscache_n_attr_changed_ok;
79128 +extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
79129 +extern atomic_unchecked_t fscache_n_attr_changed_nomem;
79130 +extern atomic_unchecked_t fscache_n_attr_changed_calls;
79131
79132 -extern atomic_t fscache_n_allocs;
79133 -extern atomic_t fscache_n_allocs_ok;
79134 -extern atomic_t fscache_n_allocs_wait;
79135 -extern atomic_t fscache_n_allocs_nobufs;
79136 -extern atomic_t fscache_n_allocs_intr;
79137 -extern atomic_t fscache_n_allocs_object_dead;
79138 -extern atomic_t fscache_n_alloc_ops;
79139 -extern atomic_t fscache_n_alloc_op_waits;
79140 +extern atomic_unchecked_t fscache_n_allocs;
79141 +extern atomic_unchecked_t fscache_n_allocs_ok;
79142 +extern atomic_unchecked_t fscache_n_allocs_wait;
79143 +extern atomic_unchecked_t fscache_n_allocs_nobufs;
79144 +extern atomic_unchecked_t fscache_n_allocs_intr;
79145 +extern atomic_unchecked_t fscache_n_allocs_object_dead;
79146 +extern atomic_unchecked_t fscache_n_alloc_ops;
79147 +extern atomic_unchecked_t fscache_n_alloc_op_waits;
79148
79149 -extern atomic_t fscache_n_retrievals;
79150 -extern atomic_t fscache_n_retrievals_ok;
79151 -extern atomic_t fscache_n_retrievals_wait;
79152 -extern atomic_t fscache_n_retrievals_nodata;
79153 -extern atomic_t fscache_n_retrievals_nobufs;
79154 -extern atomic_t fscache_n_retrievals_intr;
79155 -extern atomic_t fscache_n_retrievals_nomem;
79156 -extern atomic_t fscache_n_retrievals_object_dead;
79157 -extern atomic_t fscache_n_retrieval_ops;
79158 -extern atomic_t fscache_n_retrieval_op_waits;
79159 +extern atomic_unchecked_t fscache_n_retrievals;
79160 +extern atomic_unchecked_t fscache_n_retrievals_ok;
79161 +extern atomic_unchecked_t fscache_n_retrievals_wait;
79162 +extern atomic_unchecked_t fscache_n_retrievals_nodata;
79163 +extern atomic_unchecked_t fscache_n_retrievals_nobufs;
79164 +extern atomic_unchecked_t fscache_n_retrievals_intr;
79165 +extern atomic_unchecked_t fscache_n_retrievals_nomem;
79166 +extern atomic_unchecked_t fscache_n_retrievals_object_dead;
79167 +extern atomic_unchecked_t fscache_n_retrieval_ops;
79168 +extern atomic_unchecked_t fscache_n_retrieval_op_waits;
79169
79170 -extern atomic_t fscache_n_stores;
79171 -extern atomic_t fscache_n_stores_ok;
79172 -extern atomic_t fscache_n_stores_again;
79173 -extern atomic_t fscache_n_stores_nobufs;
79174 -extern atomic_t fscache_n_stores_oom;
79175 -extern atomic_t fscache_n_store_ops;
79176 -extern atomic_t fscache_n_store_calls;
79177 -extern atomic_t fscache_n_store_pages;
79178 -extern atomic_t fscache_n_store_radix_deletes;
79179 -extern atomic_t fscache_n_store_pages_over_limit;
79180 +extern atomic_unchecked_t fscache_n_stores;
79181 +extern atomic_unchecked_t fscache_n_stores_ok;
79182 +extern atomic_unchecked_t fscache_n_stores_again;
79183 +extern atomic_unchecked_t fscache_n_stores_nobufs;
79184 +extern atomic_unchecked_t fscache_n_stores_oom;
79185 +extern atomic_unchecked_t fscache_n_store_ops;
79186 +extern atomic_unchecked_t fscache_n_store_calls;
79187 +extern atomic_unchecked_t fscache_n_store_pages;
79188 +extern atomic_unchecked_t fscache_n_store_radix_deletes;
79189 +extern atomic_unchecked_t fscache_n_store_pages_over_limit;
79190
79191 -extern atomic_t fscache_n_store_vmscan_not_storing;
79192 -extern atomic_t fscache_n_store_vmscan_gone;
79193 -extern atomic_t fscache_n_store_vmscan_busy;
79194 -extern atomic_t fscache_n_store_vmscan_cancelled;
79195 -extern atomic_t fscache_n_store_vmscan_wait;
79196 +extern atomic_unchecked_t fscache_n_store_vmscan_not_storing;
79197 +extern atomic_unchecked_t fscache_n_store_vmscan_gone;
79198 +extern atomic_unchecked_t fscache_n_store_vmscan_busy;
79199 +extern atomic_unchecked_t fscache_n_store_vmscan_cancelled;
79200 +extern atomic_unchecked_t fscache_n_store_vmscan_wait;
79201
79202 -extern atomic_t fscache_n_marks;
79203 -extern atomic_t fscache_n_uncaches;
79204 +extern atomic_unchecked_t fscache_n_marks;
79205 +extern atomic_unchecked_t fscache_n_uncaches;
79206
79207 -extern atomic_t fscache_n_acquires;
79208 -extern atomic_t fscache_n_acquires_null;
79209 -extern atomic_t fscache_n_acquires_no_cache;
79210 -extern atomic_t fscache_n_acquires_ok;
79211 -extern atomic_t fscache_n_acquires_nobufs;
79212 -extern atomic_t fscache_n_acquires_oom;
79213 +extern atomic_unchecked_t fscache_n_acquires;
79214 +extern atomic_unchecked_t fscache_n_acquires_null;
79215 +extern atomic_unchecked_t fscache_n_acquires_no_cache;
79216 +extern atomic_unchecked_t fscache_n_acquires_ok;
79217 +extern atomic_unchecked_t fscache_n_acquires_nobufs;
79218 +extern atomic_unchecked_t fscache_n_acquires_oom;
79219
79220 -extern atomic_t fscache_n_invalidates;
79221 -extern atomic_t fscache_n_invalidates_run;
79222 +extern atomic_unchecked_t fscache_n_invalidates;
79223 +extern atomic_unchecked_t fscache_n_invalidates_run;
79224
79225 -extern atomic_t fscache_n_updates;
79226 -extern atomic_t fscache_n_updates_null;
79227 -extern atomic_t fscache_n_updates_run;
79228 +extern atomic_unchecked_t fscache_n_updates;
79229 +extern atomic_unchecked_t fscache_n_updates_null;
79230 +extern atomic_unchecked_t fscache_n_updates_run;
79231
79232 -extern atomic_t fscache_n_relinquishes;
79233 -extern atomic_t fscache_n_relinquishes_null;
79234 -extern atomic_t fscache_n_relinquishes_waitcrt;
79235 -extern atomic_t fscache_n_relinquishes_retire;
79236 +extern atomic_unchecked_t fscache_n_relinquishes;
79237 +extern atomic_unchecked_t fscache_n_relinquishes_null;
79238 +extern atomic_unchecked_t fscache_n_relinquishes_waitcrt;
79239 +extern atomic_unchecked_t fscache_n_relinquishes_retire;
79240
79241 -extern atomic_t fscache_n_cookie_index;
79242 -extern atomic_t fscache_n_cookie_data;
79243 -extern atomic_t fscache_n_cookie_special;
79244 +extern atomic_unchecked_t fscache_n_cookie_index;
79245 +extern atomic_unchecked_t fscache_n_cookie_data;
79246 +extern atomic_unchecked_t fscache_n_cookie_special;
79247
79248 -extern atomic_t fscache_n_object_alloc;
79249 -extern atomic_t fscache_n_object_no_alloc;
79250 -extern atomic_t fscache_n_object_lookups;
79251 -extern atomic_t fscache_n_object_lookups_negative;
79252 -extern atomic_t fscache_n_object_lookups_positive;
79253 -extern atomic_t fscache_n_object_lookups_timed_out;
79254 -extern atomic_t fscache_n_object_created;
79255 -extern atomic_t fscache_n_object_avail;
79256 -extern atomic_t fscache_n_object_dead;
79257 +extern atomic_unchecked_t fscache_n_object_alloc;
79258 +extern atomic_unchecked_t fscache_n_object_no_alloc;
79259 +extern atomic_unchecked_t fscache_n_object_lookups;
79260 +extern atomic_unchecked_t fscache_n_object_lookups_negative;
79261 +extern atomic_unchecked_t fscache_n_object_lookups_positive;
79262 +extern atomic_unchecked_t fscache_n_object_lookups_timed_out;
79263 +extern atomic_unchecked_t fscache_n_object_created;
79264 +extern atomic_unchecked_t fscache_n_object_avail;
79265 +extern atomic_unchecked_t fscache_n_object_dead;
79266
79267 -extern atomic_t fscache_n_checkaux_none;
79268 -extern atomic_t fscache_n_checkaux_okay;
79269 -extern atomic_t fscache_n_checkaux_update;
79270 -extern atomic_t fscache_n_checkaux_obsolete;
79271 +extern atomic_unchecked_t fscache_n_checkaux_none;
79272 +extern atomic_unchecked_t fscache_n_checkaux_okay;
79273 +extern atomic_unchecked_t fscache_n_checkaux_update;
79274 +extern atomic_unchecked_t fscache_n_checkaux_obsolete;
79275
79276 extern atomic_t fscache_n_cop_alloc_object;
79277 extern atomic_t fscache_n_cop_lookup_object;
79278 @@ -280,6 +280,11 @@ static inline void fscache_stat(atomic_t *stat)
79279 atomic_inc(stat);
79280 }
79281
79282 +static inline void fscache_stat_unchecked(atomic_unchecked_t *stat)
79283 +{
79284 + atomic_inc_unchecked(stat);
79285 +}
79286 +
79287 static inline void fscache_stat_d(atomic_t *stat)
79288 {
79289 atomic_dec(stat);
79290 @@ -292,6 +297,7 @@ extern const struct file_operations fscache_stats_fops;
79291
79292 #define __fscache_stat(stat) (NULL)
79293 #define fscache_stat(stat) do {} while (0)
79294 +#define fscache_stat_unchecked(stat) do {} while (0)
79295 #define fscache_stat_d(stat) do {} while (0)
79296 #endif
79297
79298 diff --git a/fs/fscache/object.c b/fs/fscache/object.c
79299 index 9e792e3..6b2affb 100644
79300 --- a/fs/fscache/object.c
79301 +++ b/fs/fscache/object.c
79302 @@ -465,7 +465,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
79303 _debug("LOOKUP \"%s\" in \"%s\"",
79304 cookie->def->name, object->cache->tag->name);
79305
79306 - fscache_stat(&fscache_n_object_lookups);
79307 + fscache_stat_unchecked(&fscache_n_object_lookups);
79308 fscache_stat(&fscache_n_cop_lookup_object);
79309 ret = object->cache->ops->lookup_object(object);
79310 fscache_stat_d(&fscache_n_cop_lookup_object);
79311 @@ -475,7 +475,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
79312 if (ret == -ETIMEDOUT) {
79313 /* probably stuck behind another object, so move this one to
79314 * the back of the queue */
79315 - fscache_stat(&fscache_n_object_lookups_timed_out);
79316 + fscache_stat_unchecked(&fscache_n_object_lookups_timed_out);
79317 _leave(" [timeout]");
79318 return NO_TRANSIT;
79319 }
79320 @@ -503,7 +503,7 @@ void fscache_object_lookup_negative(struct fscache_object *object)
79321 _enter("{OBJ%x,%s}", object->debug_id, object->state->name);
79322
79323 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
79324 - fscache_stat(&fscache_n_object_lookups_negative);
79325 + fscache_stat_unchecked(&fscache_n_object_lookups_negative);
79326
79327 /* Allow write requests to begin stacking up and read requests to begin
79328 * returning ENODATA.
79329 @@ -538,7 +538,7 @@ void fscache_obtained_object(struct fscache_object *object)
79330 /* if we were still looking up, then we must have a positive lookup
79331 * result, in which case there may be data available */
79332 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
79333 - fscache_stat(&fscache_n_object_lookups_positive);
79334 + fscache_stat_unchecked(&fscache_n_object_lookups_positive);
79335
79336 /* We do (presumably) have data */
79337 clear_bit_unlock(FSCACHE_COOKIE_NO_DATA_YET, &cookie->flags);
79338 @@ -550,7 +550,7 @@ void fscache_obtained_object(struct fscache_object *object)
79339 clear_bit_unlock(FSCACHE_COOKIE_LOOKING_UP, &cookie->flags);
79340 wake_up_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP);
79341 } else {
79342 - fscache_stat(&fscache_n_object_created);
79343 + fscache_stat_unchecked(&fscache_n_object_created);
79344 }
79345
79346 set_bit(FSCACHE_OBJECT_IS_AVAILABLE, &object->flags);
79347 @@ -586,7 +586,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
79348 fscache_stat_d(&fscache_n_cop_lookup_complete);
79349
79350 fscache_hist(fscache_obj_instantiate_histogram, object->lookup_jif);
79351 - fscache_stat(&fscache_n_object_avail);
79352 + fscache_stat_unchecked(&fscache_n_object_avail);
79353
79354 _leave("");
79355 return transit_to(JUMPSTART_DEPS);
79356 @@ -735,7 +735,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
79357
79358 /* this just shifts the object release to the work processor */
79359 fscache_put_object(object);
79360 - fscache_stat(&fscache_n_object_dead);
79361 + fscache_stat_unchecked(&fscache_n_object_dead);
79362
79363 _leave("");
79364 return transit_to(OBJECT_DEAD);
79365 @@ -900,7 +900,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79366 enum fscache_checkaux result;
79367
79368 if (!object->cookie->def->check_aux) {
79369 - fscache_stat(&fscache_n_checkaux_none);
79370 + fscache_stat_unchecked(&fscache_n_checkaux_none);
79371 return FSCACHE_CHECKAUX_OKAY;
79372 }
79373
79374 @@ -909,17 +909,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79375 switch (result) {
79376 /* entry okay as is */
79377 case FSCACHE_CHECKAUX_OKAY:
79378 - fscache_stat(&fscache_n_checkaux_okay);
79379 + fscache_stat_unchecked(&fscache_n_checkaux_okay);
79380 break;
79381
79382 /* entry requires update */
79383 case FSCACHE_CHECKAUX_NEEDS_UPDATE:
79384 - fscache_stat(&fscache_n_checkaux_update);
79385 + fscache_stat_unchecked(&fscache_n_checkaux_update);
79386 break;
79387
79388 /* entry requires deletion */
79389 case FSCACHE_CHECKAUX_OBSOLETE:
79390 - fscache_stat(&fscache_n_checkaux_obsolete);
79391 + fscache_stat_unchecked(&fscache_n_checkaux_obsolete);
79392 break;
79393
79394 default:
79395 @@ -1007,7 +1007,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
79396 {
79397 const struct fscache_state *s;
79398
79399 - fscache_stat(&fscache_n_invalidates_run);
79400 + fscache_stat_unchecked(&fscache_n_invalidates_run);
79401 fscache_stat(&fscache_n_cop_invalidate_object);
79402 s = _fscache_invalidate_object(object, event);
79403 fscache_stat_d(&fscache_n_cop_invalidate_object);
79404 @@ -1022,7 +1022,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
79405 {
79406 _enter("{OBJ%x},%d", object->debug_id, event);
79407
79408 - fscache_stat(&fscache_n_updates_run);
79409 + fscache_stat_unchecked(&fscache_n_updates_run);
79410 fscache_stat(&fscache_n_cop_update_object);
79411 object->cache->ops->update_object(object);
79412 fscache_stat_d(&fscache_n_cop_update_object);
79413 diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c
79414 index de67745..6a3a9b6 100644
79415 --- a/fs/fscache/operation.c
79416 +++ b/fs/fscache/operation.c
79417 @@ -17,7 +17,7 @@
79418 #include <linux/slab.h>
79419 #include "internal.h"
79420
79421 -atomic_t fscache_op_debug_id;
79422 +atomic_unchecked_t fscache_op_debug_id;
79423 EXPORT_SYMBOL(fscache_op_debug_id);
79424
79425 static void fscache_operation_dummy_cancel(struct fscache_operation *op)
79426 @@ -40,12 +40,12 @@ void fscache_operation_init(struct fscache_operation *op,
79427 INIT_WORK(&op->work, fscache_op_work_func);
79428 atomic_set(&op->usage, 1);
79429 op->state = FSCACHE_OP_ST_INITIALISED;
79430 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
79431 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79432 op->processor = processor;
79433 op->cancel = cancel ?: fscache_operation_dummy_cancel;
79434 op->release = release;
79435 INIT_LIST_HEAD(&op->pend_link);
79436 - fscache_stat(&fscache_n_op_initialised);
79437 + fscache_stat_unchecked(&fscache_n_op_initialised);
79438 }
79439 EXPORT_SYMBOL(fscache_operation_init);
79440
79441 @@ -68,7 +68,7 @@ void fscache_enqueue_operation(struct fscache_operation *op)
79442 ASSERTCMP(atomic_read(&op->usage), >, 0);
79443 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_IN_PROGRESS);
79444
79445 - fscache_stat(&fscache_n_op_enqueue);
79446 + fscache_stat_unchecked(&fscache_n_op_enqueue);
79447 switch (op->flags & FSCACHE_OP_TYPE) {
79448 case FSCACHE_OP_ASYNC:
79449 _debug("queue async");
79450 @@ -101,7 +101,7 @@ static void fscache_run_op(struct fscache_object *object,
79451 wake_up_bit(&op->flags, FSCACHE_OP_WAITING);
79452 if (op->processor)
79453 fscache_enqueue_operation(op);
79454 - fscache_stat(&fscache_n_op_run);
79455 + fscache_stat_unchecked(&fscache_n_op_run);
79456 }
79457
79458 /*
79459 @@ -169,7 +169,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79460 op->state = FSCACHE_OP_ST_PENDING;
79461 flags = READ_ONCE(object->flags);
79462 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79463 - fscache_stat(&fscache_n_op_rejected);
79464 + fscache_stat_unchecked(&fscache_n_op_rejected);
79465 op->cancel(op);
79466 op->state = FSCACHE_OP_ST_CANCELLED;
79467 ret = -ENOBUFS;
79468 @@ -185,11 +185,11 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79469 if (object->n_in_progress > 0) {
79470 atomic_inc(&op->usage);
79471 list_add_tail(&op->pend_link, &object->pending_ops);
79472 - fscache_stat(&fscache_n_op_pend);
79473 + fscache_stat_unchecked(&fscache_n_op_pend);
79474 } else if (!list_empty(&object->pending_ops)) {
79475 atomic_inc(&op->usage);
79476 list_add_tail(&op->pend_link, &object->pending_ops);
79477 - fscache_stat(&fscache_n_op_pend);
79478 + fscache_stat_unchecked(&fscache_n_op_pend);
79479 fscache_start_operations(object);
79480 } else {
79481 ASSERTCMP(object->n_in_progress, ==, 0);
79482 @@ -205,7 +205,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79483 object->n_exclusive++; /* reads and writes must wait */
79484 atomic_inc(&op->usage);
79485 list_add_tail(&op->pend_link, &object->pending_ops);
79486 - fscache_stat(&fscache_n_op_pend);
79487 + fscache_stat_unchecked(&fscache_n_op_pend);
79488 ret = 0;
79489 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79490 op->cancel(op);
79491 @@ -254,7 +254,7 @@ int fscache_submit_op(struct fscache_object *object,
79492 op->state = FSCACHE_OP_ST_PENDING;
79493 flags = READ_ONCE(object->flags);
79494 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79495 - fscache_stat(&fscache_n_op_rejected);
79496 + fscache_stat_unchecked(&fscache_n_op_rejected);
79497 op->cancel(op);
79498 op->state = FSCACHE_OP_ST_CANCELLED;
79499 ret = -ENOBUFS;
79500 @@ -269,11 +269,11 @@ int fscache_submit_op(struct fscache_object *object,
79501 if (object->n_exclusive > 0) {
79502 atomic_inc(&op->usage);
79503 list_add_tail(&op->pend_link, &object->pending_ops);
79504 - fscache_stat(&fscache_n_op_pend);
79505 + fscache_stat_unchecked(&fscache_n_op_pend);
79506 } else if (!list_empty(&object->pending_ops)) {
79507 atomic_inc(&op->usage);
79508 list_add_tail(&op->pend_link, &object->pending_ops);
79509 - fscache_stat(&fscache_n_op_pend);
79510 + fscache_stat_unchecked(&fscache_n_op_pend);
79511 fscache_start_operations(object);
79512 } else {
79513 ASSERTCMP(object->n_exclusive, ==, 0);
79514 @@ -285,7 +285,7 @@ int fscache_submit_op(struct fscache_object *object,
79515 object->n_ops++;
79516 atomic_inc(&op->usage);
79517 list_add_tail(&op->pend_link, &object->pending_ops);
79518 - fscache_stat(&fscache_n_op_pend);
79519 + fscache_stat_unchecked(&fscache_n_op_pend);
79520 ret = 0;
79521 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79522 op->cancel(op);
79523 @@ -369,7 +369,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79524 list_del_init(&op->pend_link);
79525 put = true;
79526
79527 - fscache_stat(&fscache_n_op_cancelled);
79528 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79529 op->cancel(op);
79530 op->state = FSCACHE_OP_ST_CANCELLED;
79531 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79532 @@ -385,7 +385,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79533 if (object->n_in_progress == 0)
79534 fscache_start_operations(object);
79535
79536 - fscache_stat(&fscache_n_op_cancelled);
79537 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79538 op->cancel(op);
79539 op->state = FSCACHE_OP_ST_CANCELLED;
79540 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79541 @@ -416,7 +416,7 @@ void fscache_cancel_all_ops(struct fscache_object *object)
79542 while (!list_empty(&object->pending_ops)) {
79543 op = list_entry(object->pending_ops.next,
79544 struct fscache_operation, pend_link);
79545 - fscache_stat(&fscache_n_op_cancelled);
79546 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79547 list_del_init(&op->pend_link);
79548
79549 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_PENDING);
79550 @@ -493,7 +493,7 @@ void fscache_put_operation(struct fscache_operation *op)
79551 op->state != FSCACHE_OP_ST_COMPLETE,
79552 op->state, ==, FSCACHE_OP_ST_CANCELLED);
79553
79554 - fscache_stat(&fscache_n_op_release);
79555 + fscache_stat_unchecked(&fscache_n_op_release);
79556
79557 if (op->release) {
79558 op->release(op);
79559 @@ -513,7 +513,7 @@ void fscache_put_operation(struct fscache_operation *op)
79560 * lock, and defer it otherwise */
79561 if (!spin_trylock(&object->lock)) {
79562 _debug("defer put");
79563 - fscache_stat(&fscache_n_op_deferred_release);
79564 + fscache_stat_unchecked(&fscache_n_op_deferred_release);
79565
79566 cache = object->cache;
79567 spin_lock(&cache->op_gc_list_lock);
79568 @@ -567,7 +567,7 @@ void fscache_operation_gc(struct work_struct *work)
79569
79570 _debug("GC DEFERRED REL OBJ%x OP%x",
79571 object->debug_id, op->debug_id);
79572 - fscache_stat(&fscache_n_op_gc);
79573 + fscache_stat_unchecked(&fscache_n_op_gc);
79574
79575 ASSERTCMP(atomic_read(&op->usage), ==, 0);
79576 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
79577 diff --git a/fs/fscache/page.c b/fs/fscache/page.c
79578 index 483bbc6..ba36737 100644
79579 --- a/fs/fscache/page.c
79580 +++ b/fs/fscache/page.c
79581 @@ -74,7 +74,7 @@ try_again:
79582 val = radix_tree_lookup(&cookie->stores, page->index);
79583 if (!val) {
79584 rcu_read_unlock();
79585 - fscache_stat(&fscache_n_store_vmscan_not_storing);
79586 + fscache_stat_unchecked(&fscache_n_store_vmscan_not_storing);
79587 __fscache_uncache_page(cookie, page);
79588 return true;
79589 }
79590 @@ -104,11 +104,11 @@ try_again:
79591 spin_unlock(&cookie->stores_lock);
79592
79593 if (xpage) {
79594 - fscache_stat(&fscache_n_store_vmscan_cancelled);
79595 - fscache_stat(&fscache_n_store_radix_deletes);
79596 + fscache_stat_unchecked(&fscache_n_store_vmscan_cancelled);
79597 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79598 ASSERTCMP(xpage, ==, page);
79599 } else {
79600 - fscache_stat(&fscache_n_store_vmscan_gone);
79601 + fscache_stat_unchecked(&fscache_n_store_vmscan_gone);
79602 }
79603
79604 wake_up_bit(&cookie->flags, 0);
79605 @@ -123,11 +123,11 @@ page_busy:
79606 * sleeping on memory allocation, so we may need to impose a timeout
79607 * too. */
79608 if (!(gfp & __GFP_WAIT) || !(gfp & __GFP_FS)) {
79609 - fscache_stat(&fscache_n_store_vmscan_busy);
79610 + fscache_stat_unchecked(&fscache_n_store_vmscan_busy);
79611 return false;
79612 }
79613
79614 - fscache_stat(&fscache_n_store_vmscan_wait);
79615 + fscache_stat_unchecked(&fscache_n_store_vmscan_wait);
79616 if (!release_page_wait_timeout(cookie, page))
79617 _debug("fscache writeout timeout page: %p{%lx}",
79618 page, page->index);
79619 @@ -156,7 +156,7 @@ static void fscache_end_page_write(struct fscache_object *object,
79620 FSCACHE_COOKIE_STORING_TAG);
79621 if (!radix_tree_tag_get(&cookie->stores, page->index,
79622 FSCACHE_COOKIE_PENDING_TAG)) {
79623 - fscache_stat(&fscache_n_store_radix_deletes);
79624 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79625 xpage = radix_tree_delete(&cookie->stores, page->index);
79626 }
79627 spin_unlock(&cookie->stores_lock);
79628 @@ -177,7 +177,7 @@ static void fscache_attr_changed_op(struct fscache_operation *op)
79629
79630 _enter("{OBJ%x OP%x}", object->debug_id, op->debug_id);
79631
79632 - fscache_stat(&fscache_n_attr_changed_calls);
79633 + fscache_stat_unchecked(&fscache_n_attr_changed_calls);
79634
79635 if (fscache_object_is_active(object)) {
79636 fscache_stat(&fscache_n_cop_attr_changed);
79637 @@ -204,11 +204,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79638
79639 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79640
79641 - fscache_stat(&fscache_n_attr_changed);
79642 + fscache_stat_unchecked(&fscache_n_attr_changed);
79643
79644 op = kzalloc(sizeof(*op), GFP_KERNEL);
79645 if (!op) {
79646 - fscache_stat(&fscache_n_attr_changed_nomem);
79647 + fscache_stat_unchecked(&fscache_n_attr_changed_nomem);
79648 _leave(" = -ENOMEM");
79649 return -ENOMEM;
79650 }
79651 @@ -230,7 +230,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79652 if (fscache_submit_exclusive_op(object, op) < 0)
79653 goto nobufs_dec;
79654 spin_unlock(&cookie->lock);
79655 - fscache_stat(&fscache_n_attr_changed_ok);
79656 + fscache_stat_unchecked(&fscache_n_attr_changed_ok);
79657 fscache_put_operation(op);
79658 _leave(" = 0");
79659 return 0;
79660 @@ -242,7 +242,7 @@ nobufs:
79661 fscache_put_operation(op);
79662 if (wake_cookie)
79663 __fscache_wake_unused_cookie(cookie);
79664 - fscache_stat(&fscache_n_attr_changed_nobufs);
79665 + fscache_stat_unchecked(&fscache_n_attr_changed_nobufs);
79666 _leave(" = %d", -ENOBUFS);
79667 return -ENOBUFS;
79668 }
79669 @@ -293,7 +293,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
79670 /* allocate a retrieval operation and attempt to submit it */
79671 op = kzalloc(sizeof(*op), GFP_NOIO);
79672 if (!op) {
79673 - fscache_stat(&fscache_n_retrievals_nomem);
79674 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79675 return NULL;
79676 }
79677
79678 @@ -332,12 +332,12 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79679 return 0;
79680 }
79681
79682 - fscache_stat(&fscache_n_retrievals_wait);
79683 + fscache_stat_unchecked(&fscache_n_retrievals_wait);
79684
79685 jif = jiffies;
79686 if (wait_on_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP,
79687 TASK_INTERRUPTIBLE) != 0) {
79688 - fscache_stat(&fscache_n_retrievals_intr);
79689 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79690 _leave(" = -ERESTARTSYS");
79691 return -ERESTARTSYS;
79692 }
79693 @@ -355,8 +355,8 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79694 */
79695 int fscache_wait_for_operation_activation(struct fscache_object *object,
79696 struct fscache_operation *op,
79697 - atomic_t *stat_op_waits,
79698 - atomic_t *stat_object_dead)
79699 + atomic_unchecked_t *stat_op_waits,
79700 + atomic_unchecked_t *stat_object_dead)
79701 {
79702 int ret;
79703
79704 @@ -365,7 +365,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79705
79706 _debug(">>> WT");
79707 if (stat_op_waits)
79708 - fscache_stat(stat_op_waits);
79709 + fscache_stat_unchecked(stat_op_waits);
79710 if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
79711 TASK_INTERRUPTIBLE) != 0) {
79712 ret = fscache_cancel_op(op, false);
79713 @@ -382,7 +382,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79714 check_if_dead:
79715 if (op->state == FSCACHE_OP_ST_CANCELLED) {
79716 if (stat_object_dead)
79717 - fscache_stat(stat_object_dead);
79718 + fscache_stat_unchecked(stat_object_dead);
79719 _leave(" = -ENOBUFS [cancelled]");
79720 return -ENOBUFS;
79721 }
79722 @@ -391,7 +391,7 @@ check_if_dead:
79723 enum fscache_operation_state state = op->state;
79724 fscache_cancel_op(op, true);
79725 if (stat_object_dead)
79726 - fscache_stat(stat_object_dead);
79727 + fscache_stat_unchecked(stat_object_dead);
79728 _leave(" = -ENOBUFS [obj dead %d]", state);
79729 return -ENOBUFS;
79730 }
79731 @@ -420,7 +420,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79732
79733 _enter("%p,%p,,,", cookie, page);
79734
79735 - fscache_stat(&fscache_n_retrievals);
79736 + fscache_stat_unchecked(&fscache_n_retrievals);
79737
79738 if (hlist_empty(&cookie->backing_objects))
79739 goto nobufs;
79740 @@ -462,7 +462,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79741 goto nobufs_unlock_dec;
79742 spin_unlock(&cookie->lock);
79743
79744 - fscache_stat(&fscache_n_retrieval_ops);
79745 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
79746
79747 /* we wait for the operation to become active, and then process it
79748 * *here*, in this thread, and not in the thread pool */
79749 @@ -488,15 +488,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79750
79751 error:
79752 if (ret == -ENOMEM)
79753 - fscache_stat(&fscache_n_retrievals_nomem);
79754 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79755 else if (ret == -ERESTARTSYS)
79756 - fscache_stat(&fscache_n_retrievals_intr);
79757 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79758 else if (ret == -ENODATA)
79759 - fscache_stat(&fscache_n_retrievals_nodata);
79760 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
79761 else if (ret < 0)
79762 - fscache_stat(&fscache_n_retrievals_nobufs);
79763 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79764 else
79765 - fscache_stat(&fscache_n_retrievals_ok);
79766 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
79767
79768 fscache_put_retrieval(op);
79769 _leave(" = %d", ret);
79770 @@ -511,7 +511,7 @@ nobufs_unlock:
79771 __fscache_wake_unused_cookie(cookie);
79772 fscache_put_retrieval(op);
79773 nobufs:
79774 - fscache_stat(&fscache_n_retrievals_nobufs);
79775 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79776 _leave(" = -ENOBUFS");
79777 return -ENOBUFS;
79778 }
79779 @@ -550,7 +550,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79780
79781 _enter("%p,,%d,,,", cookie, *nr_pages);
79782
79783 - fscache_stat(&fscache_n_retrievals);
79784 + fscache_stat_unchecked(&fscache_n_retrievals);
79785
79786 if (hlist_empty(&cookie->backing_objects))
79787 goto nobufs;
79788 @@ -588,7 +588,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79789 goto nobufs_unlock_dec;
79790 spin_unlock(&cookie->lock);
79791
79792 - fscache_stat(&fscache_n_retrieval_ops);
79793 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
79794
79795 /* we wait for the operation to become active, and then process it
79796 * *here*, in this thread, and not in the thread pool */
79797 @@ -614,15 +614,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79798
79799 error:
79800 if (ret == -ENOMEM)
79801 - fscache_stat(&fscache_n_retrievals_nomem);
79802 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79803 else if (ret == -ERESTARTSYS)
79804 - fscache_stat(&fscache_n_retrievals_intr);
79805 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79806 else if (ret == -ENODATA)
79807 - fscache_stat(&fscache_n_retrievals_nodata);
79808 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
79809 else if (ret < 0)
79810 - fscache_stat(&fscache_n_retrievals_nobufs);
79811 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79812 else
79813 - fscache_stat(&fscache_n_retrievals_ok);
79814 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
79815
79816 fscache_put_retrieval(op);
79817 _leave(" = %d", ret);
79818 @@ -637,7 +637,7 @@ nobufs_unlock:
79819 if (wake_cookie)
79820 __fscache_wake_unused_cookie(cookie);
79821 nobufs:
79822 - fscache_stat(&fscache_n_retrievals_nobufs);
79823 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79824 _leave(" = -ENOBUFS");
79825 return -ENOBUFS;
79826 }
79827 @@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79828
79829 _enter("%p,%p,,,", cookie, page);
79830
79831 - fscache_stat(&fscache_n_allocs);
79832 + fscache_stat_unchecked(&fscache_n_allocs);
79833
79834 if (hlist_empty(&cookie->backing_objects))
79835 goto nobufs;
79836 @@ -696,7 +696,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79837 goto nobufs_unlock_dec;
79838 spin_unlock(&cookie->lock);
79839
79840 - fscache_stat(&fscache_n_alloc_ops);
79841 + fscache_stat_unchecked(&fscache_n_alloc_ops);
79842
79843 ret = fscache_wait_for_operation_activation(
79844 object, &op->op,
79845 @@ -712,11 +712,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79846
79847 error:
79848 if (ret == -ERESTARTSYS)
79849 - fscache_stat(&fscache_n_allocs_intr);
79850 + fscache_stat_unchecked(&fscache_n_allocs_intr);
79851 else if (ret < 0)
79852 - fscache_stat(&fscache_n_allocs_nobufs);
79853 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
79854 else
79855 - fscache_stat(&fscache_n_allocs_ok);
79856 + fscache_stat_unchecked(&fscache_n_allocs_ok);
79857
79858 fscache_put_retrieval(op);
79859 _leave(" = %d", ret);
79860 @@ -730,7 +730,7 @@ nobufs_unlock:
79861 if (wake_cookie)
79862 __fscache_wake_unused_cookie(cookie);
79863 nobufs:
79864 - fscache_stat(&fscache_n_allocs_nobufs);
79865 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
79866 _leave(" = -ENOBUFS");
79867 return -ENOBUFS;
79868 }
79869 @@ -806,7 +806,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79870
79871 spin_lock(&cookie->stores_lock);
79872
79873 - fscache_stat(&fscache_n_store_calls);
79874 + fscache_stat_unchecked(&fscache_n_store_calls);
79875
79876 /* find a page to store */
79877 page = NULL;
79878 @@ -817,7 +817,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79879 page = results[0];
79880 _debug("gang %d [%lx]", n, page->index);
79881 if (page->index > op->store_limit) {
79882 - fscache_stat(&fscache_n_store_pages_over_limit);
79883 + fscache_stat_unchecked(&fscache_n_store_pages_over_limit);
79884 goto superseded;
79885 }
79886
79887 @@ -829,7 +829,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79888 spin_unlock(&cookie->stores_lock);
79889 spin_unlock(&object->lock);
79890
79891 - fscache_stat(&fscache_n_store_pages);
79892 + fscache_stat_unchecked(&fscache_n_store_pages);
79893 fscache_stat(&fscache_n_cop_write_page);
79894 ret = object->cache->ops->write_page(op, page);
79895 fscache_stat_d(&fscache_n_cop_write_page);
79896 @@ -933,7 +933,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79897 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79898 ASSERT(PageFsCache(page));
79899
79900 - fscache_stat(&fscache_n_stores);
79901 + fscache_stat_unchecked(&fscache_n_stores);
79902
79903 if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
79904 _leave(" = -ENOBUFS [invalidating]");
79905 @@ -992,7 +992,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79906 spin_unlock(&cookie->stores_lock);
79907 spin_unlock(&object->lock);
79908
79909 - op->op.debug_id = atomic_inc_return(&fscache_op_debug_id);
79910 + op->op.debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79911 op->store_limit = object->store_limit;
79912
79913 __fscache_use_cookie(cookie);
79914 @@ -1001,8 +1001,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79915
79916 spin_unlock(&cookie->lock);
79917 radix_tree_preload_end();
79918 - fscache_stat(&fscache_n_store_ops);
79919 - fscache_stat(&fscache_n_stores_ok);
79920 + fscache_stat_unchecked(&fscache_n_store_ops);
79921 + fscache_stat_unchecked(&fscache_n_stores_ok);
79922
79923 /* the work queue now carries its own ref on the object */
79924 fscache_put_operation(&op->op);
79925 @@ -1010,14 +1010,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79926 return 0;
79927
79928 already_queued:
79929 - fscache_stat(&fscache_n_stores_again);
79930 + fscache_stat_unchecked(&fscache_n_stores_again);
79931 already_pending:
79932 spin_unlock(&cookie->stores_lock);
79933 spin_unlock(&object->lock);
79934 spin_unlock(&cookie->lock);
79935 radix_tree_preload_end();
79936 fscache_put_operation(&op->op);
79937 - fscache_stat(&fscache_n_stores_ok);
79938 + fscache_stat_unchecked(&fscache_n_stores_ok);
79939 _leave(" = 0");
79940 return 0;
79941
79942 @@ -1039,14 +1039,14 @@ nobufs:
79943 fscache_put_operation(&op->op);
79944 if (wake_cookie)
79945 __fscache_wake_unused_cookie(cookie);
79946 - fscache_stat(&fscache_n_stores_nobufs);
79947 + fscache_stat_unchecked(&fscache_n_stores_nobufs);
79948 _leave(" = -ENOBUFS");
79949 return -ENOBUFS;
79950
79951 nomem_free:
79952 fscache_put_operation(&op->op);
79953 nomem:
79954 - fscache_stat(&fscache_n_stores_oom);
79955 + fscache_stat_unchecked(&fscache_n_stores_oom);
79956 _leave(" = -ENOMEM");
79957 return -ENOMEM;
79958 }
79959 @@ -1064,7 +1064,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
79960 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79961 ASSERTCMP(page, !=, NULL);
79962
79963 - fscache_stat(&fscache_n_uncaches);
79964 + fscache_stat_unchecked(&fscache_n_uncaches);
79965
79966 /* cache withdrawal may beat us to it */
79967 if (!PageFsCache(page))
79968 @@ -1115,7 +1115,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
79969 struct fscache_cookie *cookie = op->op.object->cookie;
79970
79971 #ifdef CONFIG_FSCACHE_STATS
79972 - atomic_inc(&fscache_n_marks);
79973 + atomic_inc_unchecked(&fscache_n_marks);
79974 #endif
79975
79976 _debug("- mark %p{%lx}", page, page->index);
79977 diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
79978 index 7cfa0aa..d5ef97b7 100644
79979 --- a/fs/fscache/stats.c
79980 +++ b/fs/fscache/stats.c
79981 @@ -18,100 +18,100 @@
79982 /*
79983 * operation counters
79984 */
79985 -atomic_t fscache_n_op_pend;
79986 -atomic_t fscache_n_op_run;
79987 -atomic_t fscache_n_op_enqueue;
79988 -atomic_t fscache_n_op_requeue;
79989 -atomic_t fscache_n_op_deferred_release;
79990 -atomic_t fscache_n_op_initialised;
79991 -atomic_t fscache_n_op_release;
79992 -atomic_t fscache_n_op_gc;
79993 -atomic_t fscache_n_op_cancelled;
79994 -atomic_t fscache_n_op_rejected;
79995 +atomic_unchecked_t fscache_n_op_pend;
79996 +atomic_unchecked_t fscache_n_op_run;
79997 +atomic_unchecked_t fscache_n_op_enqueue;
79998 +atomic_unchecked_t fscache_n_op_requeue;
79999 +atomic_unchecked_t fscache_n_op_deferred_release;
80000 +atomic_unchecked_t fscache_n_op_initialised;
80001 +atomic_unchecked_t fscache_n_op_release;
80002 +atomic_unchecked_t fscache_n_op_gc;
80003 +atomic_unchecked_t fscache_n_op_cancelled;
80004 +atomic_unchecked_t fscache_n_op_rejected;
80005
80006 -atomic_t fscache_n_attr_changed;
80007 -atomic_t fscache_n_attr_changed_ok;
80008 -atomic_t fscache_n_attr_changed_nobufs;
80009 -atomic_t fscache_n_attr_changed_nomem;
80010 -atomic_t fscache_n_attr_changed_calls;
80011 +atomic_unchecked_t fscache_n_attr_changed;
80012 +atomic_unchecked_t fscache_n_attr_changed_ok;
80013 +atomic_unchecked_t fscache_n_attr_changed_nobufs;
80014 +atomic_unchecked_t fscache_n_attr_changed_nomem;
80015 +atomic_unchecked_t fscache_n_attr_changed_calls;
80016
80017 -atomic_t fscache_n_allocs;
80018 -atomic_t fscache_n_allocs_ok;
80019 -atomic_t fscache_n_allocs_wait;
80020 -atomic_t fscache_n_allocs_nobufs;
80021 -atomic_t fscache_n_allocs_intr;
80022 -atomic_t fscache_n_allocs_object_dead;
80023 -atomic_t fscache_n_alloc_ops;
80024 -atomic_t fscache_n_alloc_op_waits;
80025 +atomic_unchecked_t fscache_n_allocs;
80026 +atomic_unchecked_t fscache_n_allocs_ok;
80027 +atomic_unchecked_t fscache_n_allocs_wait;
80028 +atomic_unchecked_t fscache_n_allocs_nobufs;
80029 +atomic_unchecked_t fscache_n_allocs_intr;
80030 +atomic_unchecked_t fscache_n_allocs_object_dead;
80031 +atomic_unchecked_t fscache_n_alloc_ops;
80032 +atomic_unchecked_t fscache_n_alloc_op_waits;
80033
80034 -atomic_t fscache_n_retrievals;
80035 -atomic_t fscache_n_retrievals_ok;
80036 -atomic_t fscache_n_retrievals_wait;
80037 -atomic_t fscache_n_retrievals_nodata;
80038 -atomic_t fscache_n_retrievals_nobufs;
80039 -atomic_t fscache_n_retrievals_intr;
80040 -atomic_t fscache_n_retrievals_nomem;
80041 -atomic_t fscache_n_retrievals_object_dead;
80042 -atomic_t fscache_n_retrieval_ops;
80043 -atomic_t fscache_n_retrieval_op_waits;
80044 +atomic_unchecked_t fscache_n_retrievals;
80045 +atomic_unchecked_t fscache_n_retrievals_ok;
80046 +atomic_unchecked_t fscache_n_retrievals_wait;
80047 +atomic_unchecked_t fscache_n_retrievals_nodata;
80048 +atomic_unchecked_t fscache_n_retrievals_nobufs;
80049 +atomic_unchecked_t fscache_n_retrievals_intr;
80050 +atomic_unchecked_t fscache_n_retrievals_nomem;
80051 +atomic_unchecked_t fscache_n_retrievals_object_dead;
80052 +atomic_unchecked_t fscache_n_retrieval_ops;
80053 +atomic_unchecked_t fscache_n_retrieval_op_waits;
80054
80055 -atomic_t fscache_n_stores;
80056 -atomic_t fscache_n_stores_ok;
80057 -atomic_t fscache_n_stores_again;
80058 -atomic_t fscache_n_stores_nobufs;
80059 -atomic_t fscache_n_stores_oom;
80060 -atomic_t fscache_n_store_ops;
80061 -atomic_t fscache_n_store_calls;
80062 -atomic_t fscache_n_store_pages;
80063 -atomic_t fscache_n_store_radix_deletes;
80064 -atomic_t fscache_n_store_pages_over_limit;
80065 +atomic_unchecked_t fscache_n_stores;
80066 +atomic_unchecked_t fscache_n_stores_ok;
80067 +atomic_unchecked_t fscache_n_stores_again;
80068 +atomic_unchecked_t fscache_n_stores_nobufs;
80069 +atomic_unchecked_t fscache_n_stores_oom;
80070 +atomic_unchecked_t fscache_n_store_ops;
80071 +atomic_unchecked_t fscache_n_store_calls;
80072 +atomic_unchecked_t fscache_n_store_pages;
80073 +atomic_unchecked_t fscache_n_store_radix_deletes;
80074 +atomic_unchecked_t fscache_n_store_pages_over_limit;
80075
80076 -atomic_t fscache_n_store_vmscan_not_storing;
80077 -atomic_t fscache_n_store_vmscan_gone;
80078 -atomic_t fscache_n_store_vmscan_busy;
80079 -atomic_t fscache_n_store_vmscan_cancelled;
80080 -atomic_t fscache_n_store_vmscan_wait;
80081 +atomic_unchecked_t fscache_n_store_vmscan_not_storing;
80082 +atomic_unchecked_t fscache_n_store_vmscan_gone;
80083 +atomic_unchecked_t fscache_n_store_vmscan_busy;
80084 +atomic_unchecked_t fscache_n_store_vmscan_cancelled;
80085 +atomic_unchecked_t fscache_n_store_vmscan_wait;
80086
80087 -atomic_t fscache_n_marks;
80088 -atomic_t fscache_n_uncaches;
80089 +atomic_unchecked_t fscache_n_marks;
80090 +atomic_unchecked_t fscache_n_uncaches;
80091
80092 -atomic_t fscache_n_acquires;
80093 -atomic_t fscache_n_acquires_null;
80094 -atomic_t fscache_n_acquires_no_cache;
80095 -atomic_t fscache_n_acquires_ok;
80096 -atomic_t fscache_n_acquires_nobufs;
80097 -atomic_t fscache_n_acquires_oom;
80098 +atomic_unchecked_t fscache_n_acquires;
80099 +atomic_unchecked_t fscache_n_acquires_null;
80100 +atomic_unchecked_t fscache_n_acquires_no_cache;
80101 +atomic_unchecked_t fscache_n_acquires_ok;
80102 +atomic_unchecked_t fscache_n_acquires_nobufs;
80103 +atomic_unchecked_t fscache_n_acquires_oom;
80104
80105 -atomic_t fscache_n_invalidates;
80106 -atomic_t fscache_n_invalidates_run;
80107 +atomic_unchecked_t fscache_n_invalidates;
80108 +atomic_unchecked_t fscache_n_invalidates_run;
80109
80110 -atomic_t fscache_n_updates;
80111 -atomic_t fscache_n_updates_null;
80112 -atomic_t fscache_n_updates_run;
80113 +atomic_unchecked_t fscache_n_updates;
80114 +atomic_unchecked_t fscache_n_updates_null;
80115 +atomic_unchecked_t fscache_n_updates_run;
80116
80117 -atomic_t fscache_n_relinquishes;
80118 -atomic_t fscache_n_relinquishes_null;
80119 -atomic_t fscache_n_relinquishes_waitcrt;
80120 -atomic_t fscache_n_relinquishes_retire;
80121 +atomic_unchecked_t fscache_n_relinquishes;
80122 +atomic_unchecked_t fscache_n_relinquishes_null;
80123 +atomic_unchecked_t fscache_n_relinquishes_waitcrt;
80124 +atomic_unchecked_t fscache_n_relinquishes_retire;
80125
80126 -atomic_t fscache_n_cookie_index;
80127 -atomic_t fscache_n_cookie_data;
80128 -atomic_t fscache_n_cookie_special;
80129 +atomic_unchecked_t fscache_n_cookie_index;
80130 +atomic_unchecked_t fscache_n_cookie_data;
80131 +atomic_unchecked_t fscache_n_cookie_special;
80132
80133 -atomic_t fscache_n_object_alloc;
80134 -atomic_t fscache_n_object_no_alloc;
80135 -atomic_t fscache_n_object_lookups;
80136 -atomic_t fscache_n_object_lookups_negative;
80137 -atomic_t fscache_n_object_lookups_positive;
80138 -atomic_t fscache_n_object_lookups_timed_out;
80139 -atomic_t fscache_n_object_created;
80140 -atomic_t fscache_n_object_avail;
80141 -atomic_t fscache_n_object_dead;
80142 +atomic_unchecked_t fscache_n_object_alloc;
80143 +atomic_unchecked_t fscache_n_object_no_alloc;
80144 +atomic_unchecked_t fscache_n_object_lookups;
80145 +atomic_unchecked_t fscache_n_object_lookups_negative;
80146 +atomic_unchecked_t fscache_n_object_lookups_positive;
80147 +atomic_unchecked_t fscache_n_object_lookups_timed_out;
80148 +atomic_unchecked_t fscache_n_object_created;
80149 +atomic_unchecked_t fscache_n_object_avail;
80150 +atomic_unchecked_t fscache_n_object_dead;
80151
80152 -atomic_t fscache_n_checkaux_none;
80153 -atomic_t fscache_n_checkaux_okay;
80154 -atomic_t fscache_n_checkaux_update;
80155 -atomic_t fscache_n_checkaux_obsolete;
80156 +atomic_unchecked_t fscache_n_checkaux_none;
80157 +atomic_unchecked_t fscache_n_checkaux_okay;
80158 +atomic_unchecked_t fscache_n_checkaux_update;
80159 +atomic_unchecked_t fscache_n_checkaux_obsolete;
80160
80161 atomic_t fscache_n_cop_alloc_object;
80162 atomic_t fscache_n_cop_lookup_object;
80163 @@ -144,119 +144,119 @@ static int fscache_stats_show(struct seq_file *m, void *v)
80164 seq_puts(m, "FS-Cache statistics\n");
80165
80166 seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n",
80167 - atomic_read(&fscache_n_cookie_index),
80168 - atomic_read(&fscache_n_cookie_data),
80169 - atomic_read(&fscache_n_cookie_special));
80170 + atomic_read_unchecked(&fscache_n_cookie_index),
80171 + atomic_read_unchecked(&fscache_n_cookie_data),
80172 + atomic_read_unchecked(&fscache_n_cookie_special));
80173
80174 seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n",
80175 - atomic_read(&fscache_n_object_alloc),
80176 - atomic_read(&fscache_n_object_no_alloc),
80177 - atomic_read(&fscache_n_object_avail),
80178 - atomic_read(&fscache_n_object_dead));
80179 + atomic_read_unchecked(&fscache_n_object_alloc),
80180 + atomic_read_unchecked(&fscache_n_object_no_alloc),
80181 + atomic_read_unchecked(&fscache_n_object_avail),
80182 + atomic_read_unchecked(&fscache_n_object_dead));
80183 seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n",
80184 - atomic_read(&fscache_n_checkaux_none),
80185 - atomic_read(&fscache_n_checkaux_okay),
80186 - atomic_read(&fscache_n_checkaux_update),
80187 - atomic_read(&fscache_n_checkaux_obsolete));
80188 + atomic_read_unchecked(&fscache_n_checkaux_none),
80189 + atomic_read_unchecked(&fscache_n_checkaux_okay),
80190 + atomic_read_unchecked(&fscache_n_checkaux_update),
80191 + atomic_read_unchecked(&fscache_n_checkaux_obsolete));
80192
80193 seq_printf(m, "Pages : mrk=%u unc=%u\n",
80194 - atomic_read(&fscache_n_marks),
80195 - atomic_read(&fscache_n_uncaches));
80196 + atomic_read_unchecked(&fscache_n_marks),
80197 + atomic_read_unchecked(&fscache_n_uncaches));
80198
80199 seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u"
80200 " oom=%u\n",
80201 - atomic_read(&fscache_n_acquires),
80202 - atomic_read(&fscache_n_acquires_null),
80203 - atomic_read(&fscache_n_acquires_no_cache),
80204 - atomic_read(&fscache_n_acquires_ok),
80205 - atomic_read(&fscache_n_acquires_nobufs),
80206 - atomic_read(&fscache_n_acquires_oom));
80207 + atomic_read_unchecked(&fscache_n_acquires),
80208 + atomic_read_unchecked(&fscache_n_acquires_null),
80209 + atomic_read_unchecked(&fscache_n_acquires_no_cache),
80210 + atomic_read_unchecked(&fscache_n_acquires_ok),
80211 + atomic_read_unchecked(&fscache_n_acquires_nobufs),
80212 + atomic_read_unchecked(&fscache_n_acquires_oom));
80213
80214 seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n",
80215 - atomic_read(&fscache_n_object_lookups),
80216 - atomic_read(&fscache_n_object_lookups_negative),
80217 - atomic_read(&fscache_n_object_lookups_positive),
80218 - atomic_read(&fscache_n_object_created),
80219 - atomic_read(&fscache_n_object_lookups_timed_out));
80220 + atomic_read_unchecked(&fscache_n_object_lookups),
80221 + atomic_read_unchecked(&fscache_n_object_lookups_negative),
80222 + atomic_read_unchecked(&fscache_n_object_lookups_positive),
80223 + atomic_read_unchecked(&fscache_n_object_created),
80224 + atomic_read_unchecked(&fscache_n_object_lookups_timed_out));
80225
80226 seq_printf(m, "Invals : n=%u run=%u\n",
80227 - atomic_read(&fscache_n_invalidates),
80228 - atomic_read(&fscache_n_invalidates_run));
80229 + atomic_read_unchecked(&fscache_n_invalidates),
80230 + atomic_read_unchecked(&fscache_n_invalidates_run));
80231
80232 seq_printf(m, "Updates: n=%u nul=%u run=%u\n",
80233 - atomic_read(&fscache_n_updates),
80234 - atomic_read(&fscache_n_updates_null),
80235 - atomic_read(&fscache_n_updates_run));
80236 + atomic_read_unchecked(&fscache_n_updates),
80237 + atomic_read_unchecked(&fscache_n_updates_null),
80238 + atomic_read_unchecked(&fscache_n_updates_run));
80239
80240 seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n",
80241 - atomic_read(&fscache_n_relinquishes),
80242 - atomic_read(&fscache_n_relinquishes_null),
80243 - atomic_read(&fscache_n_relinquishes_waitcrt),
80244 - atomic_read(&fscache_n_relinquishes_retire));
80245 + atomic_read_unchecked(&fscache_n_relinquishes),
80246 + atomic_read_unchecked(&fscache_n_relinquishes_null),
80247 + atomic_read_unchecked(&fscache_n_relinquishes_waitcrt),
80248 + atomic_read_unchecked(&fscache_n_relinquishes_retire));
80249
80250 seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n",
80251 - atomic_read(&fscache_n_attr_changed),
80252 - atomic_read(&fscache_n_attr_changed_ok),
80253 - atomic_read(&fscache_n_attr_changed_nobufs),
80254 - atomic_read(&fscache_n_attr_changed_nomem),
80255 - atomic_read(&fscache_n_attr_changed_calls));
80256 + atomic_read_unchecked(&fscache_n_attr_changed),
80257 + atomic_read_unchecked(&fscache_n_attr_changed_ok),
80258 + atomic_read_unchecked(&fscache_n_attr_changed_nobufs),
80259 + atomic_read_unchecked(&fscache_n_attr_changed_nomem),
80260 + atomic_read_unchecked(&fscache_n_attr_changed_calls));
80261
80262 seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n",
80263 - atomic_read(&fscache_n_allocs),
80264 - atomic_read(&fscache_n_allocs_ok),
80265 - atomic_read(&fscache_n_allocs_wait),
80266 - atomic_read(&fscache_n_allocs_nobufs),
80267 - atomic_read(&fscache_n_allocs_intr));
80268 + atomic_read_unchecked(&fscache_n_allocs),
80269 + atomic_read_unchecked(&fscache_n_allocs_ok),
80270 + atomic_read_unchecked(&fscache_n_allocs_wait),
80271 + atomic_read_unchecked(&fscache_n_allocs_nobufs),
80272 + atomic_read_unchecked(&fscache_n_allocs_intr));
80273 seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n",
80274 - atomic_read(&fscache_n_alloc_ops),
80275 - atomic_read(&fscache_n_alloc_op_waits),
80276 - atomic_read(&fscache_n_allocs_object_dead));
80277 + atomic_read_unchecked(&fscache_n_alloc_ops),
80278 + atomic_read_unchecked(&fscache_n_alloc_op_waits),
80279 + atomic_read_unchecked(&fscache_n_allocs_object_dead));
80280
80281 seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u"
80282 " int=%u oom=%u\n",
80283 - atomic_read(&fscache_n_retrievals),
80284 - atomic_read(&fscache_n_retrievals_ok),
80285 - atomic_read(&fscache_n_retrievals_wait),
80286 - atomic_read(&fscache_n_retrievals_nodata),
80287 - atomic_read(&fscache_n_retrievals_nobufs),
80288 - atomic_read(&fscache_n_retrievals_intr),
80289 - atomic_read(&fscache_n_retrievals_nomem));
80290 + atomic_read_unchecked(&fscache_n_retrievals),
80291 + atomic_read_unchecked(&fscache_n_retrievals_ok),
80292 + atomic_read_unchecked(&fscache_n_retrievals_wait),
80293 + atomic_read_unchecked(&fscache_n_retrievals_nodata),
80294 + atomic_read_unchecked(&fscache_n_retrievals_nobufs),
80295 + atomic_read_unchecked(&fscache_n_retrievals_intr),
80296 + atomic_read_unchecked(&fscache_n_retrievals_nomem));
80297 seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n",
80298 - atomic_read(&fscache_n_retrieval_ops),
80299 - atomic_read(&fscache_n_retrieval_op_waits),
80300 - atomic_read(&fscache_n_retrievals_object_dead));
80301 + atomic_read_unchecked(&fscache_n_retrieval_ops),
80302 + atomic_read_unchecked(&fscache_n_retrieval_op_waits),
80303 + atomic_read_unchecked(&fscache_n_retrievals_object_dead));
80304
80305 seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n",
80306 - atomic_read(&fscache_n_stores),
80307 - atomic_read(&fscache_n_stores_ok),
80308 - atomic_read(&fscache_n_stores_again),
80309 - atomic_read(&fscache_n_stores_nobufs),
80310 - atomic_read(&fscache_n_stores_oom));
80311 + atomic_read_unchecked(&fscache_n_stores),
80312 + atomic_read_unchecked(&fscache_n_stores_ok),
80313 + atomic_read_unchecked(&fscache_n_stores_again),
80314 + atomic_read_unchecked(&fscache_n_stores_nobufs),
80315 + atomic_read_unchecked(&fscache_n_stores_oom));
80316 seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n",
80317 - atomic_read(&fscache_n_store_ops),
80318 - atomic_read(&fscache_n_store_calls),
80319 - atomic_read(&fscache_n_store_pages),
80320 - atomic_read(&fscache_n_store_radix_deletes),
80321 - atomic_read(&fscache_n_store_pages_over_limit));
80322 + atomic_read_unchecked(&fscache_n_store_ops),
80323 + atomic_read_unchecked(&fscache_n_store_calls),
80324 + atomic_read_unchecked(&fscache_n_store_pages),
80325 + atomic_read_unchecked(&fscache_n_store_radix_deletes),
80326 + atomic_read_unchecked(&fscache_n_store_pages_over_limit));
80327
80328 seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n",
80329 - atomic_read(&fscache_n_store_vmscan_not_storing),
80330 - atomic_read(&fscache_n_store_vmscan_gone),
80331 - atomic_read(&fscache_n_store_vmscan_busy),
80332 - atomic_read(&fscache_n_store_vmscan_cancelled),
80333 - atomic_read(&fscache_n_store_vmscan_wait));
80334 + atomic_read_unchecked(&fscache_n_store_vmscan_not_storing),
80335 + atomic_read_unchecked(&fscache_n_store_vmscan_gone),
80336 + atomic_read_unchecked(&fscache_n_store_vmscan_busy),
80337 + atomic_read_unchecked(&fscache_n_store_vmscan_cancelled),
80338 + atomic_read_unchecked(&fscache_n_store_vmscan_wait));
80339
80340 seq_printf(m, "Ops : pend=%u run=%u enq=%u can=%u rej=%u\n",
80341 - atomic_read(&fscache_n_op_pend),
80342 - atomic_read(&fscache_n_op_run),
80343 - atomic_read(&fscache_n_op_enqueue),
80344 - atomic_read(&fscache_n_op_cancelled),
80345 - atomic_read(&fscache_n_op_rejected));
80346 + atomic_read_unchecked(&fscache_n_op_pend),
80347 + atomic_read_unchecked(&fscache_n_op_run),
80348 + atomic_read_unchecked(&fscache_n_op_enqueue),
80349 + atomic_read_unchecked(&fscache_n_op_cancelled),
80350 + atomic_read_unchecked(&fscache_n_op_rejected));
80351 seq_printf(m, "Ops : ini=%u dfr=%u rel=%u gc=%u\n",
80352 - atomic_read(&fscache_n_op_initialised),
80353 - atomic_read(&fscache_n_op_deferred_release),
80354 - atomic_read(&fscache_n_op_release),
80355 - atomic_read(&fscache_n_op_gc));
80356 + atomic_read_unchecked(&fscache_n_op_initialised),
80357 + atomic_read_unchecked(&fscache_n_op_deferred_release),
80358 + atomic_read_unchecked(&fscache_n_op_release),
80359 + atomic_read_unchecked(&fscache_n_op_gc));
80360
80361 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
80362 atomic_read(&fscache_n_cop_alloc_object),
80363 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
80364 index eae2c11..b277a45 100644
80365 --- a/fs/fuse/cuse.c
80366 +++ b/fs/fuse/cuse.c
80367 @@ -609,10 +609,12 @@ static int __init cuse_init(void)
80368 INIT_LIST_HEAD(&cuse_conntbl[i]);
80369
80370 /* inherit and extend fuse_dev_operations */
80371 - cuse_channel_fops = fuse_dev_operations;
80372 - cuse_channel_fops.owner = THIS_MODULE;
80373 - cuse_channel_fops.open = cuse_channel_open;
80374 - cuse_channel_fops.release = cuse_channel_release;
80375 + pax_open_kernel();
80376 + memcpy((void *)&cuse_channel_fops, &fuse_dev_operations, sizeof(fuse_dev_operations));
80377 + *(void **)&cuse_channel_fops.owner = THIS_MODULE;
80378 + *(void **)&cuse_channel_fops.open = cuse_channel_open;
80379 + *(void **)&cuse_channel_fops.release = cuse_channel_release;
80380 + pax_close_kernel();
80381
80382 cuse_class = class_create(THIS_MODULE, "cuse");
80383 if (IS_ERR(cuse_class))
80384 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
80385 index ebb5e37..beae05b 100644
80386 --- a/fs/fuse/dev.c
80387 +++ b/fs/fuse/dev.c
80388 @@ -1390,7 +1390,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80389 ret = 0;
80390 pipe_lock(pipe);
80391
80392 - if (!pipe->readers) {
80393 + if (!atomic_read(&pipe->readers)) {
80394 send_sig(SIGPIPE, current, 0);
80395 if (!ret)
80396 ret = -EPIPE;
80397 @@ -1419,7 +1419,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80398 page_nr++;
80399 ret += buf->len;
80400
80401 - if (pipe->files)
80402 + if (atomic_read(&pipe->files))
80403 do_wakeup = 1;
80404 }
80405
80406 diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
80407 index 9bd1244..b8c82d9 100644
80408 --- a/fs/gfs2/glock.c
80409 +++ b/fs/gfs2/glock.c
80410 @@ -324,9 +324,9 @@ static void state_change(struct gfs2_glock *gl, unsigned int new_state)
80411 if (held1 != held2) {
80412 GLOCK_BUG_ON(gl, __lockref_is_dead(&gl->gl_lockref));
80413 if (held2)
80414 - gl->gl_lockref.count++;
80415 + __lockref_inc(&gl->gl_lockref);
80416 else
80417 - gl->gl_lockref.count--;
80418 + __lockref_dec(&gl->gl_lockref);
80419 }
80420 if (held1 && held2 && list_empty(&gl->gl_holders))
80421 clear_bit(GLF_QUEUED, &gl->gl_flags);
80422 @@ -553,9 +553,9 @@ out:
80423 out_sched:
80424 clear_bit(GLF_LOCK, &gl->gl_flags);
80425 smp_mb__after_atomic();
80426 - gl->gl_lockref.count++;
80427 + __lockref_inc(&gl->gl_lockref);
80428 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80429 - gl->gl_lockref.count--;
80430 + __lockref_dec(&gl->gl_lockref);
80431 return;
80432
80433 out_unlock:
80434 @@ -683,7 +683,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
80435 gl->gl_node.next = NULL;
80436 gl->gl_flags = 0;
80437 gl->gl_name = name;
80438 - gl->gl_lockref.count = 1;
80439 + __lockref_set(&gl->gl_lockref, 1);
80440 gl->gl_state = LM_ST_UNLOCKED;
80441 gl->gl_target = LM_ST_UNLOCKED;
80442 gl->gl_demote_state = LM_ST_EXCLUSIVE;
80443 @@ -972,9 +972,9 @@ int gfs2_glock_nq(struct gfs2_holder *gh)
80444 if (unlikely((LM_FLAG_NOEXP & gh->gh_flags) &&
80445 test_and_clear_bit(GLF_FROZEN, &gl->gl_flags))) {
80446 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80447 - gl->gl_lockref.count++;
80448 + __lockref_inc(&gl->gl_lockref);
80449 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80450 - gl->gl_lockref.count--;
80451 + __lockref_dec(&gl->gl_lockref);
80452 }
80453 run_queue(gl, 1);
80454 spin_unlock(&gl->gl_spin);
80455 @@ -1278,7 +1278,7 @@ void gfs2_glock_complete(struct gfs2_glock *gl, int ret)
80456 }
80457 }
80458
80459 - gl->gl_lockref.count++;
80460 + __lockref_inc(&gl->gl_lockref);
80461 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80462 spin_unlock(&gl->gl_spin);
80463
80464 @@ -1337,12 +1337,12 @@ add_back_to_lru:
80465 goto add_back_to_lru;
80466 }
80467 clear_bit(GLF_LRU, &gl->gl_flags);
80468 - gl->gl_lockref.count++;
80469 + __lockref_inc(&gl->gl_lockref);
80470 if (demote_ok(gl))
80471 handle_callback(gl, LM_ST_UNLOCKED, 0, false);
80472 WARN_ON(!test_and_clear_bit(GLF_LOCK, &gl->gl_flags));
80473 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80474 - gl->gl_lockref.count--;
80475 + __lockref_dec(&gl->gl_lockref);
80476 spin_unlock(&gl->gl_spin);
80477 cond_resched_lock(&lru_lock);
80478 }
80479 @@ -1667,7 +1667,7 @@ void gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
80480 state2str(gl->gl_demote_state), dtime,
80481 atomic_read(&gl->gl_ail_count),
80482 atomic_read(&gl->gl_revokes),
80483 - (int)gl->gl_lockref.count, gl->gl_hold_time);
80484 + __lockref_read(&gl->gl_lockref), gl->gl_hold_time);
80485
80486 list_for_each_entry(gh, &gl->gl_holders, gh_list)
80487 dump_holder(seq, gh);
80488 diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
80489 index 1f6c9c3..9a651f1 100644
80490 --- a/fs/gfs2/glops.c
80491 +++ b/fs/gfs2/glops.c
80492 @@ -554,9 +554,9 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote)
80493
80494 if (gl->gl_demote_state == LM_ST_UNLOCKED &&
80495 gl->gl_state == LM_ST_SHARED && ip) {
80496 - gl->gl_lockref.count++;
80497 + __lockref_inc(&gl->gl_lockref);
80498 if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0)
80499 - gl->gl_lockref.count--;
80500 + __lockref_dec(&gl->gl_lockref);
80501 }
80502 }
80503
80504 diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
80505 index 3a31226..2fffbe9 100644
80506 --- a/fs/gfs2/quota.c
80507 +++ b/fs/gfs2/quota.c
80508 @@ -154,7 +154,7 @@ static enum lru_status gfs2_qd_isolate(struct list_head *item,
80509 if (!spin_trylock(&qd->qd_lockref.lock))
80510 return LRU_SKIP;
80511
80512 - if (qd->qd_lockref.count == 0) {
80513 + if (__lockref_read(&qd->qd_lockref) == 0) {
80514 lockref_mark_dead(&qd->qd_lockref);
80515 list_lru_isolate_move(lru, &qd->qd_lru, dispose);
80516 }
80517 @@ -221,7 +221,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str
80518 return NULL;
80519
80520 qd->qd_sbd = sdp;
80521 - qd->qd_lockref.count = 1;
80522 + __lockref_set(&qd->qd_lockref, 1);
80523 spin_lock_init(&qd->qd_lockref.lock);
80524 qd->qd_id = qid;
80525 qd->qd_slot = -1;
80526 @@ -312,7 +312,7 @@ static void qd_put(struct gfs2_quota_data *qd)
80527 if (lockref_put_or_lock(&qd->qd_lockref))
80528 return;
80529
80530 - qd->qd_lockref.count = 0;
80531 + __lockref_set(&qd->qd_lockref, 0);
80532 list_lru_add(&gfs2_qd_lru, &qd->qd_lru);
80533 spin_unlock(&qd->qd_lockref.lock);
80534
80535 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
80536 index 316adb9..f483eb1 100644
80537 --- a/fs/hugetlbfs/inode.c
80538 +++ b/fs/hugetlbfs/inode.c
80539 @@ -174,6 +174,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80540 struct mm_struct *mm = current->mm;
80541 struct vm_area_struct *vma;
80542 struct hstate *h = hstate_file(file);
80543 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
80544 struct vm_unmapped_area_info info;
80545
80546 if (len & ~huge_page_mask(h))
80547 @@ -187,17 +188,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80548 return addr;
80549 }
80550
80551 +#ifdef CONFIG_PAX_RANDMMAP
80552 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
80553 +#endif
80554 +
80555 if (addr) {
80556 addr = ALIGN(addr, huge_page_size(h));
80557 vma = find_vma(mm, addr);
80558 - if (TASK_SIZE - len >= addr &&
80559 - (!vma || addr + len <= vma->vm_start))
80560 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
80561 return addr;
80562 }
80563
80564 info.flags = 0;
80565 info.length = len;
80566 info.low_limit = TASK_UNMAPPED_BASE;
80567 +
80568 +#ifdef CONFIG_PAX_RANDMMAP
80569 + if (mm->pax_flags & MF_PAX_RANDMMAP)
80570 + info.low_limit += mm->delta_mmap;
80571 +#endif
80572 +
80573 info.high_limit = TASK_SIZE;
80574 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
80575 info.align_offset = 0;
80576 @@ -1204,7 +1214,7 @@ static struct file_system_type hugetlbfs_fs_type = {
80577 };
80578 MODULE_ALIAS_FS("hugetlbfs");
80579
80580 -static struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80581 +struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80582
80583 static int can_do_hugetlb_shm(void)
80584 {
80585 diff --git a/fs/inode.c b/fs/inode.c
80586 index 78a17b8..fb43210 100644
80587 --- a/fs/inode.c
80588 +++ b/fs/inode.c
80589 @@ -844,19 +844,19 @@ unsigned int get_next_ino(void)
80590 unsigned int *p = &get_cpu_var(last_ino);
80591 unsigned int res = *p;
80592
80593 +start:
80594 +
80595 #ifdef CONFIG_SMP
80596 if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
80597 - static atomic_t shared_last_ino;
80598 - int next = atomic_add_return(LAST_INO_BATCH, &shared_last_ino);
80599 + static atomic_unchecked_t shared_last_ino;
80600 + int next = atomic_add_return_unchecked(LAST_INO_BATCH, &shared_last_ino);
80601
80602 res = next - LAST_INO_BATCH;
80603 }
80604 #endif
80605
80606 - res++;
80607 - /* get_next_ino should not provide a 0 inode number */
80608 - if (unlikely(!res))
80609 - res++;
80610 + if (unlikely(!++res))
80611 + goto start; /* never zero */
80612 *p = res;
80613 put_cpu_var(last_ino);
80614 return res;
80615 diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
80616 index 4a6cf28..d3a29d3 100644
80617 --- a/fs/jffs2/erase.c
80618 +++ b/fs/jffs2/erase.c
80619 @@ -452,7 +452,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
80620 struct jffs2_unknown_node marker = {
80621 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
80622 .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80623 - .totlen = cpu_to_je32(c->cleanmarker_size)
80624 + .totlen = cpu_to_je32(c->cleanmarker_size),
80625 + .hdr_crc = cpu_to_je32(0)
80626 };
80627
80628 jffs2_prealloc_raw_node_refs(c, jeb, 1);
80629 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
80630 index 09ed551..45684f8 100644
80631 --- a/fs/jffs2/wbuf.c
80632 +++ b/fs/jffs2/wbuf.c
80633 @@ -1023,7 +1023,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
80634 {
80635 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
80636 .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80637 - .totlen = constant_cpu_to_je32(8)
80638 + .totlen = constant_cpu_to_je32(8),
80639 + .hdr_crc = constant_cpu_to_je32(0)
80640 };
80641
80642 /*
80643 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
80644 index 4cd9798..8dfe86a 100644
80645 --- a/fs/jfs/super.c
80646 +++ b/fs/jfs/super.c
80647 @@ -901,7 +901,7 @@ static int __init init_jfs_fs(void)
80648
80649 jfs_inode_cachep =
80650 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
80651 - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD,
80652 + SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|SLAB_USERCOPY,
80653 init_once);
80654 if (jfs_inode_cachep == NULL)
80655 return -ENOMEM;
80656 diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
80657 index 91e0045..a654935 100644
80658 --- a/fs/kernfs/dir.c
80659 +++ b/fs/kernfs/dir.c
80660 @@ -205,7 +205,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
80661 *
80662 * Returns 31 bit hash of ns + name (so it fits in an off_t )
80663 */
80664 -static unsigned int kernfs_name_hash(const char *name, const void *ns)
80665 +static unsigned int kernfs_name_hash(const unsigned char *name, const void *ns)
80666 {
80667 unsigned long hash = init_name_hash();
80668 unsigned int len = strlen(name);
80669 @@ -896,6 +896,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
80670 ret = scops->mkdir(parent, dentry->d_name.name, mode);
80671
80672 kernfs_put_active(parent);
80673 +
80674 + if (!ret) {
80675 + struct dentry *dentry_ret = kernfs_iop_lookup(dir, dentry, 0);
80676 + ret = PTR_ERR_OR_ZERO(dentry_ret);
80677 + }
80678 +
80679 return ret;
80680 }
80681
80682 diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
80683 index 7247252..c73808e 100644
80684 --- a/fs/kernfs/file.c
80685 +++ b/fs/kernfs/file.c
80686 @@ -34,7 +34,7 @@ static DEFINE_MUTEX(kernfs_open_file_mutex);
80687
80688 struct kernfs_open_node {
80689 atomic_t refcnt;
80690 - atomic_t event;
80691 + atomic_unchecked_t event;
80692 wait_queue_head_t poll;
80693 struct list_head files; /* goes through kernfs_open_file.list */
80694 };
80695 @@ -163,7 +163,7 @@ static int kernfs_seq_show(struct seq_file *sf, void *v)
80696 {
80697 struct kernfs_open_file *of = sf->private;
80698
80699 - of->event = atomic_read(&of->kn->attr.open->event);
80700 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80701
80702 return of->kn->attr.ops->seq_show(sf, v);
80703 }
80704 @@ -207,7 +207,7 @@ static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of,
80705 goto out_free;
80706 }
80707
80708 - of->event = atomic_read(&of->kn->attr.open->event);
80709 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80710 ops = kernfs_ops(of->kn);
80711 if (ops->read)
80712 len = ops->read(of, buf, len, *ppos);
80713 @@ -272,7 +272,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf,
80714 {
80715 struct kernfs_open_file *of = kernfs_of(file);
80716 const struct kernfs_ops *ops;
80717 - size_t len;
80718 + ssize_t len;
80719 char *buf;
80720
80721 if (of->atomic_write_len) {
80722 @@ -385,12 +385,12 @@ static int kernfs_vma_page_mkwrite(struct vm_area_struct *vma,
80723 return ret;
80724 }
80725
80726 -static int kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80727 - void *buf, int len, int write)
80728 +static ssize_t kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80729 + void *buf, size_t len, int write)
80730 {
80731 struct file *file = vma->vm_file;
80732 struct kernfs_open_file *of = kernfs_of(file);
80733 - int ret;
80734 + ssize_t ret;
80735
80736 if (!of->vm_ops)
80737 return -EINVAL;
80738 @@ -569,7 +569,7 @@ static int kernfs_get_open_node(struct kernfs_node *kn,
80739 return -ENOMEM;
80740
80741 atomic_set(&new_on->refcnt, 0);
80742 - atomic_set(&new_on->event, 1);
80743 + atomic_set_unchecked(&new_on->event, 1);
80744 init_waitqueue_head(&new_on->poll);
80745 INIT_LIST_HEAD(&new_on->files);
80746 goto retry;
80747 @@ -792,7 +792,7 @@ static unsigned int kernfs_fop_poll(struct file *filp, poll_table *wait)
80748
80749 kernfs_put_active(kn);
80750
80751 - if (of->event != atomic_read(&on->event))
80752 + if (of->event != atomic_read_unchecked(&on->event))
80753 goto trigger;
80754
80755 return DEFAULT_POLLMASK;
80756 @@ -823,7 +823,7 @@ repeat:
80757
80758 on = kn->attr.open;
80759 if (on) {
80760 - atomic_inc(&on->event);
80761 + atomic_inc_unchecked(&on->event);
80762 wake_up_interruptible(&on->poll);
80763 }
80764
80765 diff --git a/fs/libfs.c b/fs/libfs.c
80766 index c7cbfb0..fc3636d4 100644
80767 --- a/fs/libfs.c
80768 +++ b/fs/libfs.c
80769 @@ -155,6 +155,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
80770
80771 for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
80772 struct dentry *next = list_entry(p, struct dentry, d_child);
80773 + char d_name[sizeof(next->d_iname)];
80774 + const unsigned char *name;
80775 +
80776 spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
80777 if (!simple_positive(next)) {
80778 spin_unlock(&next->d_lock);
80779 @@ -163,7 +166,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
80780
80781 spin_unlock(&next->d_lock);
80782 spin_unlock(&dentry->d_lock);
80783 - if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
80784 + name = next->d_name.name;
80785 + if (name == next->d_iname) {
80786 + memcpy(d_name, name, next->d_name.len);
80787 + name = d_name;
80788 + }
80789 + if (!dir_emit(ctx, name, next->d_name.len,
80790 d_inode(next)->i_ino, dt_type(d_inode(next))))
80791 return 0;
80792 spin_lock(&dentry->d_lock);
80793 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
80794 index acd3947..1f896e2 100644
80795 --- a/fs/lockd/clntproc.c
80796 +++ b/fs/lockd/clntproc.c
80797 @@ -36,11 +36,11 @@ static const struct rpc_call_ops nlmclnt_cancel_ops;
80798 /*
80799 * Cookie counter for NLM requests
80800 */
80801 -static atomic_t nlm_cookie = ATOMIC_INIT(0x1234);
80802 +static atomic_unchecked_t nlm_cookie = ATOMIC_INIT(0x1234);
80803
80804 void nlmclnt_next_cookie(struct nlm_cookie *c)
80805 {
80806 - u32 cookie = atomic_inc_return(&nlm_cookie);
80807 + u32 cookie = atomic_inc_return_unchecked(&nlm_cookie);
80808
80809 memcpy(c->data, &cookie, 4);
80810 c->len=4;
80811 diff --git a/fs/mount.h b/fs/mount.h
80812 index 14db05d..687f6d8 100644
80813 --- a/fs/mount.h
80814 +++ b/fs/mount.h
80815 @@ -13,7 +13,7 @@ struct mnt_namespace {
80816 u64 seq; /* Sequence number to prevent loops */
80817 wait_queue_head_t poll;
80818 u64 event;
80819 -};
80820 +} __randomize_layout;
80821
80822 struct mnt_pcp {
80823 int mnt_count;
80824 @@ -65,7 +65,7 @@ struct mount {
80825 struct hlist_head mnt_pins;
80826 struct fs_pin mnt_umount;
80827 struct dentry *mnt_ex_mountpoint;
80828 -};
80829 +} __randomize_layout;
80830
80831 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
80832
80833 diff --git a/fs/namei.c b/fs/namei.c
80834 index 33e9495..0c1096b 100644
80835 --- a/fs/namei.c
80836 +++ b/fs/namei.c
80837 @@ -336,17 +336,32 @@ int generic_permission(struct inode *inode, int mask)
80838 if (ret != -EACCES)
80839 return ret;
80840
80841 +#ifdef CONFIG_GRKERNSEC
80842 + /* we'll block if we have to log due to a denied capability use */
80843 + if (mask & MAY_NOT_BLOCK)
80844 + return -ECHILD;
80845 +#endif
80846 +
80847 if (S_ISDIR(inode->i_mode)) {
80848 /* DACs are overridable for directories */
80849 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80850 - return 0;
80851 if (!(mask & MAY_WRITE))
80852 - if (capable_wrt_inode_uidgid(inode,
80853 - CAP_DAC_READ_SEARCH))
80854 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
80855 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80856 return 0;
80857 + if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80858 + return 0;
80859 return -EACCES;
80860 }
80861 /*
80862 + * Searching includes executable on directories, else just read.
80863 + */
80864 + mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
80865 + if (mask == MAY_READ)
80866 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
80867 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80868 + return 0;
80869 +
80870 + /*
80871 * Read/write DACs are always overridable.
80872 * Executable DACs are overridable when there is
80873 * at least one exec bit set.
80874 @@ -355,14 +370,6 @@ int generic_permission(struct inode *inode, int mask)
80875 if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80876 return 0;
80877
80878 - /*
80879 - * Searching includes executable on directories, else just read.
80880 - */
80881 - mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
80882 - if (mask == MAY_READ)
80883 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80884 - return 0;
80885 -
80886 return -EACCES;
80887 }
80888 EXPORT_SYMBOL(generic_permission);
80889 @@ -514,12 +521,35 @@ struct nameidata {
80890 struct nameidata *saved;
80891 unsigned root_seq;
80892 int dfd;
80893 -};
80894 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80895 + struct path *symlinkown_stack;
80896 + struct path symlinkown_internal[EMBEDDED_LEVELS];
80897 + unsigned symlinkown_depth;
80898 + int symlinkown_enabled;
80899 +#endif
80900 +} __randomize_layout;
80901 +
80902 +static int gr_handle_nameidata_symlinkowner(const struct nameidata *nd, const struct inode *target)
80903 +{
80904 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80905 + int i;
80906 +
80907 + for (i = 0; i < nd->symlinkown_depth; i++) {
80908 + if (gr_handle_symlink_owner(&nd->symlinkown_stack[i], target))
80909 + return -EACCES;
80910 + }
80911 +#endif
80912 + return 0;
80913 +}
80914
80915 static void set_nameidata(struct nameidata *p, int dfd, struct filename *name)
80916 {
80917 struct nameidata *old = current->nameidata;
80918 p->stack = p->internal;
80919 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80920 + p->symlinkown_stack = p->symlinkown_internal;
80921 + p->symlinkown_enabled = -1;
80922 +#endif
80923 p->dfd = dfd;
80924 p->name = name;
80925 p->total_link_count = old ? old->total_link_count : 0;
80926 @@ -538,6 +568,12 @@ static void restore_nameidata(void)
80927 kfree(now->stack);
80928 now->stack = now->internal;
80929 }
80930 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80931 + if (now->symlinkown_stack != now->symlinkown_internal) {
80932 + kfree(now->symlinkown_stack);
80933 + now->symlinkown_stack = now->symlinkown_internal;
80934 + }
80935 +#endif
80936 }
80937
80938 static int __nd_alloc_stack(struct nameidata *nd)
80939 @@ -557,6 +593,7 @@ static int __nd_alloc_stack(struct nameidata *nd)
80940 }
80941 memcpy(p, nd->internal, sizeof(nd->internal));
80942 nd->stack = p;
80943 +
80944 return 0;
80945 }
80946
80947 @@ -578,8 +615,32 @@ static bool path_connected(const struct path *path)
80948 return is_subdir(path->dentry, mnt->mnt_root);
80949 }
80950
80951 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80952 +static int nd_alloc_symlinkown_stack(struct nameidata *nd)
80953 +{
80954 + struct path *p;
80955 +
80956 + if (likely(nd->symlinkown_depth != EMBEDDED_LEVELS))
80957 + return 0;
80958 + if (nd->symlinkown_stack != nd->symlinkown_internal)
80959 + return 0;
80960 +
80961 + p = kmalloc(MAXSYMLINKS * sizeof(struct path), GFP_KERNEL);
80962 + if (unlikely(!p))
80963 + return -ENOMEM;
80964 + memcpy(p, nd->symlinkown_internal, sizeof(nd->symlinkown_internal));
80965 + nd->symlinkown_stack = p;
80966 + return 0;
80967 +}
80968 +#endif
80969 +
80970 static inline int nd_alloc_stack(struct nameidata *nd)
80971 {
80972 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80973 + if (nd->flags & LOOKUP_RCU)
80974 + return -ECHILD;
80975 +#endif
80976 +
80977 if (likely(nd->depth != EMBEDDED_LEVELS))
80978 return 0;
80979 if (likely(nd->stack != nd->internal))
80980 @@ -608,6 +669,14 @@ static void terminate_walk(struct nameidata *nd)
80981 path_put(&nd->path);
80982 for (i = 0; i < nd->depth; i++)
80983 path_put(&nd->stack[i].link);
80984 +
80985 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80986 + /* we'll only ever set our values in ref-walk mode */
80987 + for (i = 0; i < nd->symlinkown_depth; i++)
80988 + path_put(&nd->symlinkown_stack[i]);
80989 + nd->symlinkown_depth = 0;
80990 +#endif
80991 +
80992 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) {
80993 path_put(&nd->root);
80994 nd->root.mnt = NULL;
80995 @@ -1004,6 +1073,9 @@ const char *get_link(struct nameidata *nd)
80996 if (unlikely(error))
80997 return ERR_PTR(error);
80998
80999 + if (gr_handle_follow_link(dentry, last->link.mnt))
81000 + return ERR_PTR(-EACCES);
81001 +
81002 nd->last_type = LAST_BIND;
81003 res = inode->i_link;
81004 if (!res) {
81005 @@ -1692,6 +1764,23 @@ static int pick_link(struct nameidata *nd, struct path *link,
81006 }
81007 }
81008
81009 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81010 + if (unlikely(nd->symlinkown_enabled == -1))
81011 + nd->symlinkown_enabled = gr_get_symlinkown_enabled();
81012 + if (nd->symlinkown_enabled && gr_is_global_nonroot(inode->i_uid)) {
81013 + struct path *symlinkownlast;
81014 + error = nd_alloc_symlinkown_stack(nd);
81015 + if (unlikely(error)) {
81016 + path_put(link);
81017 + return error;
81018 + }
81019 + symlinkownlast = nd->symlinkown_stack + nd->symlinkown_depth++;
81020 + symlinkownlast->dentry = link->dentry;
81021 + symlinkownlast->mnt = link->mnt;
81022 + path_get(symlinkownlast);
81023 + }
81024 +#endif
81025 +
81026 last = nd->stack + nd->depth++;
81027 last->link = *link;
81028 last->cookie = NULL;
81029 @@ -1831,7 +1920,7 @@ EXPORT_SYMBOL(full_name_hash);
81030 static inline u64 hash_name(const char *name)
81031 {
81032 unsigned long a, b, adata, bdata, mask, hash, len;
81033 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
81034 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
81035
81036 hash = a = 0;
81037 len = -sizeof(unsigned long);
81038 @@ -1999,7 +2088,9 @@ static const char *path_init(struct nameidata *nd, unsigned flags)
81039 nd->last_type = LAST_ROOT; /* if there are only slashes... */
81040 nd->flags = flags | LOOKUP_JUMPED | LOOKUP_PARENT;
81041 nd->depth = 0;
81042 - nd->total_link_count = 0;
81043 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81044 + nd->symlinkown_depth = 0;
81045 +#endif
81046 if (flags & LOOKUP_ROOT) {
81047 struct dentry *root = nd->root.dentry;
81048 struct inode *inode = root->d_inode;
81049 @@ -2137,6 +2228,11 @@ static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path
81050 if (!err)
81051 err = complete_walk(nd);
81052
81053 + if (!err && !(nd->flags & LOOKUP_PARENT)) {
81054 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt))
81055 + err = -ENOENT;
81056 + }
81057 +
81058 if (!err && nd->flags & LOOKUP_DIRECTORY)
81059 if (!d_can_lookup(nd->path.dentry))
81060 err = -ENOTDIR;
81061 @@ -2185,6 +2281,10 @@ static int path_parentat(struct nameidata *nd, unsigned flags,
81062 err = link_path_walk(s, nd);
81063 if (!err)
81064 err = complete_walk(nd);
81065 +
81066 + if (!err && gr_handle_nameidata_symlinkowner(nd, nd->inode))
81067 + err = -EACCES;
81068 +
81069 if (!err) {
81070 *parent = nd->path;
81071 nd->path.mnt = NULL;
81072 @@ -2716,6 +2816,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
81073 if (flag & O_NOATIME && !inode_owner_or_capable(inode))
81074 return -EPERM;
81075
81076 + if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode))
81077 + return -EPERM;
81078 + if (gr_handle_rawio(inode))
81079 + return -EPERM;
81080 + if (!gr_acl_handle_open(dentry, path->mnt, acc_mode))
81081 + return -EACCES;
81082 +
81083 return 0;
81084 }
81085
81086 @@ -2982,6 +3089,18 @@ static int lookup_open(struct nameidata *nd, struct path *path,
81087 /* Negative dentry, just create the file */
81088 if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
81089 umode_t mode = op->mode;
81090 +
81091 +
81092 + if (gr_handle_nameidata_symlinkowner(nd, dir_inode)) {
81093 + error = -EACCES;
81094 + goto out_dput;
81095 + }
81096 +
81097 + if (!gr_acl_handle_creat(dentry, dir, nd->path.mnt, op->open_flag, op->acc_mode, mode)) {
81098 + error = -EACCES;
81099 + goto out_dput;
81100 + }
81101 +
81102 if (!IS_POSIXACL(dir->d_inode))
81103 mode &= ~current_umask();
81104 /*
81105 @@ -3003,6 +3122,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
81106 nd->flags & LOOKUP_EXCL);
81107 if (error)
81108 goto out_dput;
81109 + else
81110 + gr_handle_create(dentry, nd->path.mnt);
81111 }
81112 out_no_open:
81113 path->dentry = dentry;
81114 @@ -3066,6 +3187,9 @@ static int do_last(struct nameidata *nd,
81115 if (error)
81116 return error;
81117
81118 + if (!gr_acl_handle_hidden_file(dir, nd->path.mnt))
81119 + return -ENOENT;
81120 +
81121 audit_inode(nd->name, dir, LOOKUP_PARENT);
81122 /* trailing slashes? */
81123 if (unlikely(nd->last.name[nd->last.len]))
81124 @@ -3108,11 +3232,24 @@ retry_lookup:
81125 goto finish_open_created;
81126 }
81127
81128 + if (!gr_acl_handle_hidden_file(path.dentry, nd->path.mnt)) {
81129 + path_to_nameidata(&path, nd);
81130 + return -ENOENT;
81131 + }
81132 +
81133 /*
81134 * create/update audit record if it already exists.
81135 */
81136 - if (d_is_positive(path.dentry))
81137 + if (d_is_positive(path.dentry)) {
81138 + /* only check if O_CREAT is specified, all other checks need to go
81139 + into may_open */
81140 + if (gr_handle_fifo(path.dentry, path.mnt, dir, open_flag, acc_mode)) {
81141 + path_to_nameidata(&path, nd);
81142 + return -EACCES;
81143 + }
81144 +
81145 audit_inode(nd->name, path.dentry, 0);
81146 + }
81147
81148 /*
81149 * If atomic_open() acquired write access it is dropped now due to
81150 @@ -3148,6 +3285,11 @@ finish_lookup:
81151 if (unlikely(error))
81152 return error;
81153
81154 + if (gr_handle_nameidata_symlinkowner(nd, inode)) {
81155 + path_to_nameidata(&path, nd);
81156 + return -EACCES;
81157 + }
81158 +
81159 if (unlikely(d_is_symlink(path.dentry)) && !(open_flag & O_PATH)) {
81160 path_to_nameidata(&path, nd);
81161 return -ELOOP;
81162 @@ -3170,6 +3312,12 @@ finish_open:
81163 path_put(&save_parent);
81164 return error;
81165 }
81166 +
81167 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt)) {
81168 + error = -ENOENT;
81169 + goto out;
81170 + }
81171 +
81172 audit_inode(nd->name, nd->path.dentry, 0);
81173 error = -EISDIR;
81174 if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
81175 @@ -3436,9 +3584,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
81176 goto unlock;
81177
81178 error = -EEXIST;
81179 - if (d_is_positive(dentry))
81180 + if (d_is_positive(dentry)) {
81181 + if (!gr_acl_handle_hidden_file(dentry, path->mnt))
81182 + error = -ENOENT;
81183 goto fail;
81184 -
81185 + }
81186 /*
81187 * Special case - lookup gave negative, but... we had foo/bar/
81188 * From the vfs_mknod() POV we just have a negative dentry -
81189 @@ -3492,6 +3642,20 @@ inline struct dentry *user_path_create(int dfd, const char __user *pathname,
81190 }
81191 EXPORT_SYMBOL(user_path_create);
81192
81193 +static struct dentry *user_path_create_with_name(int dfd, const char __user *pathname, struct path *path, struct filename **to, unsigned int lookup_flags)
81194 +{
81195 + struct filename *tmp = getname(pathname);
81196 + struct dentry *res;
81197 + if (IS_ERR(tmp))
81198 + return ERR_CAST(tmp);
81199 + res = kern_path_create(dfd, tmp->name, path, lookup_flags);
81200 + if (IS_ERR(res))
81201 + putname(tmp);
81202 + else
81203 + *to = tmp;
81204 + return res;
81205 +}
81206 +
81207 int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
81208 {
81209 int error = may_create(dir, dentry);
81210 @@ -3555,6 +3719,17 @@ retry:
81211
81212 if (!IS_POSIXACL(path.dentry->d_inode))
81213 mode &= ~current_umask();
81214 +
81215 + if (gr_handle_chroot_mknod(dentry, path.mnt, mode)) {
81216 + error = -EPERM;
81217 + goto out;
81218 + }
81219 +
81220 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
81221 + error = -EACCES;
81222 + goto out;
81223 + }
81224 +
81225 error = security_path_mknod(&path, dentry, mode, dev);
81226 if (error)
81227 goto out;
81228 @@ -3570,6 +3745,8 @@ retry:
81229 error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
81230 break;
81231 }
81232 + if (!error)
81233 + gr_handle_create(dentry, path.mnt);
81234 out:
81235 done_path_create(&path, dentry);
81236 if (retry_estale(error, lookup_flags)) {
81237 @@ -3624,9 +3801,16 @@ retry:
81238
81239 if (!IS_POSIXACL(path.dentry->d_inode))
81240 mode &= ~current_umask();
81241 + if (!gr_acl_handle_mkdir(dentry, path.dentry, path.mnt)) {
81242 + error = -EACCES;
81243 + goto out;
81244 + }
81245 error = security_path_mkdir(&path, dentry, mode);
81246 if (!error)
81247 error = vfs_mkdir(path.dentry->d_inode, dentry, mode);
81248 + if (!error)
81249 + gr_handle_create(dentry, path.mnt);
81250 +out:
81251 done_path_create(&path, dentry);
81252 if (retry_estale(error, lookup_flags)) {
81253 lookup_flags |= LOOKUP_REVAL;
81254 @@ -3659,7 +3843,7 @@ void dentry_unhash(struct dentry *dentry)
81255 {
81256 shrink_dcache_parent(dentry);
81257 spin_lock(&dentry->d_lock);
81258 - if (dentry->d_lockref.count == 1)
81259 + if (__lockref_read(&dentry->d_lockref) == 1)
81260 __d_drop(dentry);
81261 spin_unlock(&dentry->d_lock);
81262 }
81263 @@ -3712,6 +3896,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
81264 struct path path;
81265 struct qstr last;
81266 int type;
81267 + u64 saved_ino = 0;
81268 + dev_t saved_dev = 0;
81269 unsigned int lookup_flags = 0;
81270 retry:
81271 name = user_path_parent(dfd, pathname,
81272 @@ -3744,10 +3930,20 @@ retry:
81273 error = -ENOENT;
81274 goto exit3;
81275 }
81276 + saved_ino = gr_get_ino_from_dentry(dentry);
81277 + saved_dev = gr_get_dev_from_dentry(dentry);
81278 +
81279 + if (!gr_acl_handle_rmdir(dentry, path.mnt)) {
81280 + error = -EACCES;
81281 + goto exit3;
81282 + }
81283 +
81284 error = security_path_rmdir(&path, dentry);
81285 if (error)
81286 goto exit3;
81287 error = vfs_rmdir(path.dentry->d_inode, dentry);
81288 + if (!error && (saved_dev || saved_ino))
81289 + gr_handle_delete(saved_ino, saved_dev);
81290 exit3:
81291 dput(dentry);
81292 exit2:
81293 @@ -3842,6 +4038,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
81294 int type;
81295 struct inode *inode = NULL;
81296 struct inode *delegated_inode = NULL;
81297 + u64 saved_ino = 0;
81298 + dev_t saved_dev = 0;
81299 unsigned int lookup_flags = 0;
81300 retry:
81301 name = user_path_parent(dfd, pathname,
81302 @@ -3868,10 +4066,21 @@ retry_deleg:
81303 if (d_is_negative(dentry))
81304 goto slashes;
81305 ihold(inode);
81306 + if (inode->i_nlink <= 1) {
81307 + saved_ino = gr_get_ino_from_dentry(dentry);
81308 + saved_dev = gr_get_dev_from_dentry(dentry);
81309 + }
81310 + if (!gr_acl_handle_unlink(dentry, path.mnt)) {
81311 + error = -EACCES;
81312 + goto exit2;
81313 + }
81314 +
81315 error = security_path_unlink(&path, dentry);
81316 if (error)
81317 goto exit2;
81318 error = vfs_unlink(path.dentry->d_inode, dentry, &delegated_inode);
81319 + if (!error && (saved_ino || saved_dev))
81320 + gr_handle_delete(saved_ino, saved_dev);
81321 exit2:
81322 dput(dentry);
81323 }
81324 @@ -3960,9 +4169,17 @@ retry:
81325 if (IS_ERR(dentry))
81326 goto out_putname;
81327
81328 + if (!gr_acl_handle_symlink(dentry, path.dentry, path.mnt, from)) {
81329 + error = -EACCES;
81330 + goto out;
81331 + }
81332 +
81333 error = security_path_symlink(&path, dentry, from->name);
81334 if (!error)
81335 error = vfs_symlink(path.dentry->d_inode, dentry, from->name);
81336 + if (!error)
81337 + gr_handle_create(dentry, path.mnt);
81338 +out:
81339 done_path_create(&path, dentry);
81340 if (retry_estale(error, lookup_flags)) {
81341 lookup_flags |= LOOKUP_REVAL;
81342 @@ -4066,6 +4283,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
81343 struct dentry *new_dentry;
81344 struct path old_path, new_path;
81345 struct inode *delegated_inode = NULL;
81346 + struct filename *to = NULL;
81347 int how = 0;
81348 int error;
81349
81350 @@ -4089,7 +4307,7 @@ retry:
81351 if (error)
81352 return error;
81353
81354 - new_dentry = user_path_create(newdfd, newname, &new_path,
81355 + new_dentry = user_path_create_with_name(newdfd, newname, &new_path, &to,
81356 (how & LOOKUP_REVAL));
81357 error = PTR_ERR(new_dentry);
81358 if (IS_ERR(new_dentry))
81359 @@ -4101,11 +4319,26 @@ retry:
81360 error = may_linkat(&old_path);
81361 if (unlikely(error))
81362 goto out_dput;
81363 +
81364 + if (gr_handle_hardlink(old_path.dentry, old_path.mnt, to)) {
81365 + error = -EACCES;
81366 + goto out_dput;
81367 + }
81368 +
81369 + if (!gr_acl_handle_link(new_dentry, new_path.dentry, new_path.mnt,
81370 + old_path.dentry, old_path.mnt, to)) {
81371 + error = -EACCES;
81372 + goto out_dput;
81373 + }
81374 +
81375 error = security_path_link(old_path.dentry, &new_path, new_dentry);
81376 if (error)
81377 goto out_dput;
81378 error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode);
81379 + if (!error)
81380 + gr_handle_create(new_dentry, new_path.mnt);
81381 out_dput:
81382 + putname(to);
81383 done_path_create(&new_path, new_dentry);
81384 if (delegated_inode) {
81385 error = break_deleg_wait(&delegated_inode);
81386 @@ -4420,6 +4653,20 @@ retry_deleg:
81387 if (new_dentry == trap)
81388 goto exit5;
81389
81390 + if (gr_bad_chroot_rename(old_dentry, old_path.mnt, new_dentry, new_path.mnt)) {
81391 + /* use EXDEV error to cause 'mv' to switch to an alternative
81392 + * method for usability
81393 + */
81394 + error = -EXDEV;
81395 + goto exit5;
81396 + }
81397 +
81398 + error = gr_acl_handle_rename(new_dentry, new_path.dentry, new_path.mnt,
81399 + old_dentry, d_backing_inode(old_path.dentry), old_path.mnt,
81400 + to, flags);
81401 + if (error)
81402 + goto exit5;
81403 +
81404 error = security_path_rename(&old_path, old_dentry,
81405 &new_path, new_dentry, flags);
81406 if (error)
81407 @@ -4427,6 +4674,9 @@ retry_deleg:
81408 error = vfs_rename(old_path.dentry->d_inode, old_dentry,
81409 new_path.dentry->d_inode, new_dentry,
81410 &delegated_inode, flags);
81411 + if (!error)
81412 + gr_handle_rename(d_backing_inode(old_path.dentry), d_backing_inode(new_path.dentry), old_dentry,
81413 + new_dentry, old_path.mnt, d_is_positive(new_dentry) ? 1 : 0, flags);
81414 exit5:
81415 dput(new_dentry);
81416 exit4:
81417 @@ -4483,14 +4733,24 @@ EXPORT_SYMBOL(vfs_whiteout);
81418
81419 int readlink_copy(char __user *buffer, int buflen, const char *link)
81420 {
81421 + char tmpbuf[64];
81422 + const char *newlink;
81423 int len = PTR_ERR(link);
81424 +
81425 if (IS_ERR(link))
81426 goto out;
81427
81428 len = strlen(link);
81429 if (len > (unsigned) buflen)
81430 len = buflen;
81431 - if (copy_to_user(buffer, link, len))
81432 +
81433 + if (len < sizeof(tmpbuf)) {
81434 + memcpy(tmpbuf, link, len);
81435 + newlink = tmpbuf;
81436 + } else
81437 + newlink = link;
81438 +
81439 + if (copy_to_user(buffer, newlink, len))
81440 len = -EFAULT;
81441 out:
81442 return len;
81443 diff --git a/fs/namespace.c b/fs/namespace.c
81444 index 0570729..9de781d 100644
81445 --- a/fs/namespace.c
81446 +++ b/fs/namespace.c
81447 @@ -1516,6 +1516,9 @@ static int do_umount(struct mount *mnt, int flags)
81448 if (!(sb->s_flags & MS_RDONLY))
81449 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
81450 up_write(&sb->s_umount);
81451 +
81452 + gr_log_remount(mnt->mnt_devname, retval);
81453 +
81454 return retval;
81455 }
81456
81457 @@ -1538,6 +1541,9 @@ static int do_umount(struct mount *mnt, int flags)
81458 }
81459 unlock_mount_hash();
81460 namespace_unlock();
81461 +
81462 + gr_log_unmount(mnt->mnt_devname, retval);
81463 +
81464 return retval;
81465 }
81466
81467 @@ -1592,7 +1598,7 @@ static inline bool may_mount(void)
81468 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
81469 */
81470
81471 -SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
81472 +SYSCALL_DEFINE2(umount, const char __user *, name, int, flags)
81473 {
81474 struct path path;
81475 struct mount *mnt;
81476 @@ -1637,7 +1643,7 @@ out:
81477 /*
81478 * The 2.0 compatible umount. No flags.
81479 */
81480 -SYSCALL_DEFINE1(oldumount, char __user *, name)
81481 +SYSCALL_DEFINE1(oldumount, const char __user *, name)
81482 {
81483 return sys_umount(name, 0);
81484 }
81485 @@ -2712,6 +2718,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81486 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
81487 MS_STRICTATIME);
81488
81489 + if (gr_handle_rofs_mount(path.dentry, path.mnt, mnt_flags)) {
81490 + retval = -EPERM;
81491 + goto dput_out;
81492 + }
81493 +
81494 + if (gr_handle_chroot_mount(path.dentry, path.mnt, dev_name)) {
81495 + retval = -EPERM;
81496 + goto dput_out;
81497 + }
81498 +
81499 if (flags & MS_REMOUNT)
81500 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
81501 data_page);
81502 @@ -2725,7 +2741,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81503 retval = do_new_mount(&path, type_page, flags, mnt_flags,
81504 dev_name, data_page);
81505 dput_out:
81506 + gr_log_mount(dev_name, &path, retval);
81507 +
81508 path_put(&path);
81509 +
81510 return retval;
81511 }
81512
81513 @@ -2743,7 +2762,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
81514 * number incrementing at 10Ghz will take 12,427 years to wrap which
81515 * is effectively never, so we can ignore the possibility.
81516 */
81517 -static atomic64_t mnt_ns_seq = ATOMIC64_INIT(1);
81518 +static atomic64_unchecked_t mnt_ns_seq = ATOMIC64_INIT(1);
81519
81520 static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81521 {
81522 @@ -2759,7 +2778,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81523 return ERR_PTR(ret);
81524 }
81525 new_ns->ns.ops = &mntns_operations;
81526 - new_ns->seq = atomic64_add_return(1, &mnt_ns_seq);
81527 + new_ns->seq = atomic64_add_return_unchecked(1, &mnt_ns_seq);
81528 atomic_set(&new_ns->count, 1);
81529 new_ns->root = NULL;
81530 INIT_LIST_HEAD(&new_ns->list);
81531 @@ -2769,7 +2788,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81532 return new_ns;
81533 }
81534
81535 -struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81536 +__latent_entropy struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81537 struct user_namespace *user_ns, struct fs_struct *new_fs)
81538 {
81539 struct mnt_namespace *new_ns;
81540 @@ -2890,8 +2909,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
81541 }
81542 EXPORT_SYMBOL(mount_subtree);
81543
81544 -SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
81545 - char __user *, type, unsigned long, flags, void __user *, data)
81546 +SYSCALL_DEFINE5(mount, const char __user *, dev_name, const char __user *, dir_name,
81547 + const char __user *, type, unsigned long, flags, void __user *, data)
81548 {
81549 int ret;
81550 char *kernel_type;
81551 @@ -2997,6 +3016,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
81552 if (error)
81553 goto out2;
81554
81555 + if (gr_handle_chroot_pivot()) {
81556 + error = -EPERM;
81557 + goto out2;
81558 + }
81559 +
81560 get_fs_root(current->fs, &root);
81561 old_mp = lock_mount(&old);
81562 error = PTR_ERR(old_mp);
81563 @@ -3315,7 +3339,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
81564 !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
81565 return -EPERM;
81566
81567 - if (fs->users != 1)
81568 + if (atomic_read(&fs->users) != 1)
81569 return -EINVAL;
81570
81571 get_mnt_ns(mnt_ns);
81572 diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
81573 index 6b1697a..6d5787c 100644
81574 --- a/fs/nfs/callback_xdr.c
81575 +++ b/fs/nfs/callback_xdr.c
81576 @@ -51,7 +51,7 @@ struct callback_op {
81577 callback_decode_arg_t decode_args;
81578 callback_encode_res_t encode_res;
81579 long res_maxsize;
81580 -};
81581 +} __do_const;
81582
81583 static struct callback_op callback_ops[];
81584
81585 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
81586 index ffdf9b9..ca8f43e 100644
81587 --- a/fs/nfs/inode.c
81588 +++ b/fs/nfs/inode.c
81589 @@ -1281,16 +1281,16 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
81590 return 0;
81591 }
81592
81593 -static atomic_long_t nfs_attr_generation_counter;
81594 +static atomic_long_unchecked_t nfs_attr_generation_counter;
81595
81596 static unsigned long nfs_read_attr_generation_counter(void)
81597 {
81598 - return atomic_long_read(&nfs_attr_generation_counter);
81599 + return atomic_long_read_unchecked(&nfs_attr_generation_counter);
81600 }
81601
81602 unsigned long nfs_inc_attr_generation_counter(void)
81603 {
81604 - return atomic_long_inc_return(&nfs_attr_generation_counter);
81605 + return atomic_long_inc_return_unchecked(&nfs_attr_generation_counter);
81606 }
81607 EXPORT_SYMBOL_GPL(nfs_inc_attr_generation_counter);
81608
81609 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
81610 index 4ce6b97..24fdd3c 100644
81611 --- a/fs/nfsd/nfs4proc.c
81612 +++ b/fs/nfsd/nfs4proc.c
81613 @@ -1481,7 +1481,7 @@ struct nfsd4_operation {
81614 nfsd4op_rsize op_rsize_bop;
81615 stateid_getter op_get_currentstateid;
81616 stateid_setter op_set_currentstateid;
81617 -};
81618 +} __do_const;
81619
81620 static struct nfsd4_operation nfsd4_ops[];
81621
81622 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
81623 index 51c9e9c..82dc067 100644
81624 --- a/fs/nfsd/nfs4xdr.c
81625 +++ b/fs/nfsd/nfs4xdr.c
81626 @@ -1704,7 +1704,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
81627
81628 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
81629
81630 -static nfsd4_dec nfsd4_dec_ops[] = {
81631 +static const nfsd4_dec nfsd4_dec_ops[] = {
81632 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
81633 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
81634 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
81635 diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
81636 index 46ec934..f384e41 100644
81637 --- a/fs/nfsd/nfscache.c
81638 +++ b/fs/nfsd/nfscache.c
81639 @@ -541,7 +541,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81640 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
81641 u32 hash;
81642 struct nfsd_drc_bucket *b;
81643 - int len;
81644 + long len;
81645 size_t bufsize = 0;
81646
81647 if (!rp)
81648 @@ -550,11 +550,14 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81649 hash = nfsd_cache_hash(rp->c_xid);
81650 b = &drc_hashtbl[hash];
81651
81652 - len = resv->iov_len - ((char*)statp - (char*)resv->iov_base);
81653 - len >>= 2;
81654 + if (statp) {
81655 + len = (char*)statp - (char*)resv->iov_base;
81656 + len = resv->iov_len - len;
81657 + len >>= 2;
81658 + }
81659
81660 /* Don't cache excessive amounts of data and XDR failures */
81661 - if (!statp || len > (256 >> 2)) {
81662 + if (!statp || len > (256 >> 2) || len < 0) {
81663 nfsd_reply_cache_free(b, rp);
81664 return;
81665 }
81666 @@ -562,7 +565,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81667 switch (cachetype) {
81668 case RC_REPLSTAT:
81669 if (len != 1)
81670 - printk("nfsd: RC_REPLSTAT/reply len %d!\n",len);
81671 + printk("nfsd: RC_REPLSTAT/reply len %ld!\n",len);
81672 rp->c_replstat = *statp;
81673 break;
81674 case RC_REPLBUFF:
81675 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
81676 index 45c0497..139d403 100644
81677 --- a/fs/nfsd/vfs.c
81678 +++ b/fs/nfsd/vfs.c
81679 @@ -855,7 +855,7 @@ __be32 nfsd_readv(struct file *file, loff_t offset, struct kvec *vec, int vlen,
81680
81681 oldfs = get_fs();
81682 set_fs(KERNEL_DS);
81683 - host_err = vfs_readv(file, (struct iovec __user *)vec, vlen, &offset);
81684 + host_err = vfs_readv(file, (struct iovec __force_user *)vec, vlen, &offset);
81685 set_fs(oldfs);
81686 return nfsd_finish_read(file, count, host_err);
81687 }
81688 @@ -942,7 +942,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
81689
81690 /* Write the data. */
81691 oldfs = get_fs(); set_fs(KERNEL_DS);
81692 - host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos);
81693 + host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &pos);
81694 set_fs(oldfs);
81695 if (host_err < 0)
81696 goto out_nfserr;
81697 @@ -1449,7 +1449,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
81698 */
81699
81700 oldfs = get_fs(); set_fs(KERNEL_DS);
81701 - host_err = inode->i_op->readlink(path.dentry, (char __user *)buf, *lenp);
81702 + host_err = inode->i_op->readlink(path.dentry, (char __force_user *)buf, *lenp);
81703 set_fs(oldfs);
81704
81705 if (host_err < 0)
81706 diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
81707 index 52ccd34..7a6b202 100644
81708 --- a/fs/nls/nls_base.c
81709 +++ b/fs/nls/nls_base.c
81710 @@ -234,21 +234,25 @@ EXPORT_SYMBOL(utf16s_to_utf8s);
81711
81712 int __register_nls(struct nls_table *nls, struct module *owner)
81713 {
81714 - struct nls_table ** tmp = &tables;
81715 + struct nls_table *tmp = tables;
81716
81717 if (nls->next)
81718 return -EBUSY;
81719
81720 - nls->owner = owner;
81721 + pax_open_kernel();
81722 + *(void **)&nls->owner = owner;
81723 + pax_close_kernel();
81724 spin_lock(&nls_lock);
81725 - while (*tmp) {
81726 - if (nls == *tmp) {
81727 + while (tmp) {
81728 + if (nls == tmp) {
81729 spin_unlock(&nls_lock);
81730 return -EBUSY;
81731 }
81732 - tmp = &(*tmp)->next;
81733 + tmp = tmp->next;
81734 }
81735 - nls->next = tables;
81736 + pax_open_kernel();
81737 + *(struct nls_table **)&nls->next = tables;
81738 + pax_close_kernel();
81739 tables = nls;
81740 spin_unlock(&nls_lock);
81741 return 0;
81742 @@ -257,12 +261,14 @@ EXPORT_SYMBOL(__register_nls);
81743
81744 int unregister_nls(struct nls_table * nls)
81745 {
81746 - struct nls_table ** tmp = &tables;
81747 + struct nls_table * const * tmp = &tables;
81748
81749 spin_lock(&nls_lock);
81750 while (*tmp) {
81751 if (nls == *tmp) {
81752 - *tmp = nls->next;
81753 + pax_open_kernel();
81754 + *(struct nls_table **)tmp = nls->next;
81755 + pax_close_kernel();
81756 spin_unlock(&nls_lock);
81757 return 0;
81758 }
81759 @@ -272,7 +278,7 @@ int unregister_nls(struct nls_table * nls)
81760 return -EINVAL;
81761 }
81762
81763 -static struct nls_table *find_nls(char *charset)
81764 +static struct nls_table *find_nls(const char *charset)
81765 {
81766 struct nls_table *nls;
81767 spin_lock(&nls_lock);
81768 @@ -288,7 +294,7 @@ static struct nls_table *find_nls(char *charset)
81769 return nls;
81770 }
81771
81772 -struct nls_table *load_nls(char *charset)
81773 +struct nls_table *load_nls(const char *charset)
81774 {
81775 return try_then_request_module(find_nls(charset), "nls_%s", charset);
81776 }
81777 diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c
81778 index 162b3f1..6076a7c 100644
81779 --- a/fs/nls/nls_euc-jp.c
81780 +++ b/fs/nls/nls_euc-jp.c
81781 @@ -560,8 +560,10 @@ static int __init init_nls_euc_jp(void)
81782 p_nls = load_nls("cp932");
81783
81784 if (p_nls) {
81785 - table.charset2upper = p_nls->charset2upper;
81786 - table.charset2lower = p_nls->charset2lower;
81787 + pax_open_kernel();
81788 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
81789 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
81790 + pax_close_kernel();
81791 return register_nls(&table);
81792 }
81793
81794 diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c
81795 index a80a741..7b96e1b 100644
81796 --- a/fs/nls/nls_koi8-ru.c
81797 +++ b/fs/nls/nls_koi8-ru.c
81798 @@ -62,8 +62,10 @@ static int __init init_nls_koi8_ru(void)
81799 p_nls = load_nls("koi8-u");
81800
81801 if (p_nls) {
81802 - table.charset2upper = p_nls->charset2upper;
81803 - table.charset2lower = p_nls->charset2lower;
81804 + pax_open_kernel();
81805 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
81806 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
81807 + pax_close_kernel();
81808 return register_nls(&table);
81809 }
81810
81811 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
81812 index 8e8e6bc..211eeca 100644
81813 --- a/fs/notify/fanotify/fanotify_user.c
81814 +++ b/fs/notify/fanotify/fanotify_user.c
81815 @@ -216,8 +216,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
81816
81817 fd = fanotify_event_metadata.fd;
81818 ret = -EFAULT;
81819 - if (copy_to_user(buf, &fanotify_event_metadata,
81820 - fanotify_event_metadata.event_len))
81821 + if (fanotify_event_metadata.event_len > sizeof fanotify_event_metadata ||
81822 + copy_to_user(buf, &fanotify_event_metadata, fanotify_event_metadata.event_len))
81823 goto out_close_fd;
81824
81825 #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
81826 diff --git a/fs/notify/notification.c b/fs/notify/notification.c
81827 index a95d8e0..a91a5fd 100644
81828 --- a/fs/notify/notification.c
81829 +++ b/fs/notify/notification.c
81830 @@ -48,7 +48,7 @@
81831 #include <linux/fsnotify_backend.h>
81832 #include "fsnotify.h"
81833
81834 -static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81835 +static atomic_unchecked_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81836
81837 /**
81838 * fsnotify_get_cookie - return a unique cookie for use in synchronizing events.
81839 @@ -56,7 +56,7 @@ static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81840 */
81841 u32 fsnotify_get_cookie(void)
81842 {
81843 - return atomic_inc_return(&fsnotify_sync_cookie);
81844 + return atomic_inc_return_unchecked(&fsnotify_sync_cookie);
81845 }
81846 EXPORT_SYMBOL_GPL(fsnotify_get_cookie);
81847
81848 diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
81849 index 9e38daf..5727cae 100644
81850 --- a/fs/ntfs/dir.c
81851 +++ b/fs/ntfs/dir.c
81852 @@ -1310,7 +1310,7 @@ find_next_index_buffer:
81853 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
81854 ~(s64)(ndir->itype.index.block_size - 1)));
81855 /* Bounds checks. */
81856 - if (unlikely((u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
81857 + if (unlikely(!kaddr || (u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
81858 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
81859 "inode 0x%lx or driver bug.", vdir->i_ino);
81860 goto err_out;
81861 diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
81862 index d1a8535..1cfa4a9 100644
81863 --- a/fs/ntfs/super.c
81864 +++ b/fs/ntfs/super.c
81865 @@ -688,7 +688,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81866 if (!silent)
81867 ntfs_error(sb, "Primary boot sector is invalid.");
81868 } else if (!silent)
81869 - ntfs_error(sb, read_err_str, "primary");
81870 + ntfs_error(sb, read_err_str, "%s", "primary");
81871 if (!(NTFS_SB(sb)->on_errors & ON_ERRORS_RECOVER)) {
81872 if (bh_primary)
81873 brelse(bh_primary);
81874 @@ -704,7 +704,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81875 goto hotfix_primary_boot_sector;
81876 brelse(bh_backup);
81877 } else if (!silent)
81878 - ntfs_error(sb, read_err_str, "backup");
81879 + ntfs_error(sb, read_err_str, "%s", "backup");
81880 /* Try to read NT3.51- backup boot sector. */
81881 if ((bh_backup = sb_bread(sb, nr_blocks >> 1))) {
81882 if (is_boot_sector_ntfs(sb, (NTFS_BOOT_SECTOR*)
81883 @@ -715,7 +715,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81884 "sector.");
81885 brelse(bh_backup);
81886 } else if (!silent)
81887 - ntfs_error(sb, read_err_str, "backup");
81888 + ntfs_error(sb, read_err_str, "%s", "backup");
81889 /* We failed. Cleanup and return. */
81890 if (bh_primary)
81891 brelse(bh_primary);
81892 diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
81893 index 0a4457f..67ddb4f 100644
81894 --- a/fs/ocfs2/localalloc.c
81895 +++ b/fs/ocfs2/localalloc.c
81896 @@ -1319,7 +1319,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
81897 goto bail;
81898 }
81899
81900 - atomic_inc(&osb->alloc_stats.moves);
81901 + atomic_inc_unchecked(&osb->alloc_stats.moves);
81902
81903 bail:
81904 if (handle)
81905 diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
81906 index 7a01262..23667d1 100644
81907 --- a/fs/ocfs2/ocfs2.h
81908 +++ b/fs/ocfs2/ocfs2.h
81909 @@ -247,11 +247,11 @@ enum ocfs2_vol_state
81910
81911 struct ocfs2_alloc_stats
81912 {
81913 - atomic_t moves;
81914 - atomic_t local_data;
81915 - atomic_t bitmap_data;
81916 - atomic_t bg_allocs;
81917 - atomic_t bg_extends;
81918 + atomic_unchecked_t moves;
81919 + atomic_unchecked_t local_data;
81920 + atomic_unchecked_t bitmap_data;
81921 + atomic_unchecked_t bg_allocs;
81922 + atomic_unchecked_t bg_extends;
81923 };
81924
81925 enum ocfs2_local_alloc_state
81926 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
81927 index d83d260..f6f0d79 100644
81928 --- a/fs/ocfs2/suballoc.c
81929 +++ b/fs/ocfs2/suballoc.c
81930 @@ -851,7 +851,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
81931 mlog_errno(status);
81932 goto bail;
81933 }
81934 - atomic_inc(&osb->alloc_stats.bg_extends);
81935 + atomic_inc_unchecked(&osb->alloc_stats.bg_extends);
81936
81937 /* You should never ask for this much metadata */
81938 BUG_ON(bits_wanted >
81939 @@ -1995,7 +1995,7 @@ int ocfs2_claim_metadata(handle_t *handle,
81940 mlog_errno(status);
81941 goto bail;
81942 }
81943 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81944 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81945
81946 *suballoc_loc = res.sr_bg_blkno;
81947 *suballoc_bit_start = res.sr_bit_offset;
81948 @@ -2161,7 +2161,7 @@ int ocfs2_claim_new_inode_at_loc(handle_t *handle,
81949 trace_ocfs2_claim_new_inode_at_loc((unsigned long long)di_blkno,
81950 res->sr_bits);
81951
81952 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81953 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81954
81955 BUG_ON(res->sr_bits != 1);
81956
81957 @@ -2203,7 +2203,7 @@ int ocfs2_claim_new_inode(handle_t *handle,
81958 mlog_errno(status);
81959 goto bail;
81960 }
81961 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81962 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81963
81964 BUG_ON(res.sr_bits != 1);
81965
81966 @@ -2307,7 +2307,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
81967 cluster_start,
81968 num_clusters);
81969 if (!status)
81970 - atomic_inc(&osb->alloc_stats.local_data);
81971 + atomic_inc_unchecked(&osb->alloc_stats.local_data);
81972 } else {
81973 if (min_clusters > (osb->bitmap_cpg - 1)) {
81974 /* The only paths asking for contiguousness
81975 @@ -2333,7 +2333,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
81976 ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode,
81977 res.sr_bg_blkno,
81978 res.sr_bit_offset);
81979 - atomic_inc(&osb->alloc_stats.bitmap_data);
81980 + atomic_inc_unchecked(&osb->alloc_stats.bitmap_data);
81981 *num_clusters = res.sr_bits;
81982 }
81983 }
81984 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
81985 index 2de4c8a..a106a0d 100644
81986 --- a/fs/ocfs2/super.c
81987 +++ b/fs/ocfs2/super.c
81988 @@ -310,11 +310,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
81989 "%10s => GlobalAllocs: %d LocalAllocs: %d "
81990 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
81991 "Stats",
81992 - atomic_read(&osb->alloc_stats.bitmap_data),
81993 - atomic_read(&osb->alloc_stats.local_data),
81994 - atomic_read(&osb->alloc_stats.bg_allocs),
81995 - atomic_read(&osb->alloc_stats.moves),
81996 - atomic_read(&osb->alloc_stats.bg_extends));
81997 + atomic_read_unchecked(&osb->alloc_stats.bitmap_data),
81998 + atomic_read_unchecked(&osb->alloc_stats.local_data),
81999 + atomic_read_unchecked(&osb->alloc_stats.bg_allocs),
82000 + atomic_read_unchecked(&osb->alloc_stats.moves),
82001 + atomic_read_unchecked(&osb->alloc_stats.bg_extends));
82002
82003 out += snprintf(buf + out, len - out,
82004 "%10s => State: %u Descriptor: %llu Size: %u bits "
82005 @@ -2106,11 +2106,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
82006
82007 mutex_init(&osb->system_file_mutex);
82008
82009 - atomic_set(&osb->alloc_stats.moves, 0);
82010 - atomic_set(&osb->alloc_stats.local_data, 0);
82011 - atomic_set(&osb->alloc_stats.bitmap_data, 0);
82012 - atomic_set(&osb->alloc_stats.bg_allocs, 0);
82013 - atomic_set(&osb->alloc_stats.bg_extends, 0);
82014 + atomic_set_unchecked(&osb->alloc_stats.moves, 0);
82015 + atomic_set_unchecked(&osb->alloc_stats.local_data, 0);
82016 + atomic_set_unchecked(&osb->alloc_stats.bitmap_data, 0);
82017 + atomic_set_unchecked(&osb->alloc_stats.bg_allocs, 0);
82018 + atomic_set_unchecked(&osb->alloc_stats.bg_extends, 0);
82019
82020 /* Copy the blockcheck stats from the superblock probe */
82021 osb->osb_ecc_stats = *stats;
82022 diff --git a/fs/open.c b/fs/open.c
82023 index b6f1e96..3108eed 100644
82024 --- a/fs/open.c
82025 +++ b/fs/open.c
82026 @@ -32,6 +32,8 @@
82027 #include <linux/dnotify.h>
82028 #include <linux/compat.h>
82029
82030 +#define CREATE_TRACE_POINTS
82031 +#include <trace/events/fs.h>
82032 #include "internal.h"
82033
82034 int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
82035 @@ -105,6 +107,8 @@ long vfs_truncate(struct path *path, loff_t length)
82036 error = locks_verify_truncate(inode, NULL, length);
82037 if (!error)
82038 error = security_path_truncate(path);
82039 + if (!error && !gr_acl_handle_truncate(path->dentry, path->mnt))
82040 + error = -EACCES;
82041 if (!error)
82042 error = do_truncate(path->dentry, length, 0, NULL);
82043
82044 @@ -189,6 +193,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
82045 error = locks_verify_truncate(inode, f.file, length);
82046 if (!error)
82047 error = security_path_truncate(&f.file->f_path);
82048 + if (!error && !gr_acl_handle_truncate(f.file->f_path.dentry, f.file->f_path.mnt))
82049 + error = -EACCES;
82050 if (!error)
82051 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
82052 sb_end_write(inode->i_sb);
82053 @@ -398,6 +404,9 @@ retry:
82054 if (__mnt_is_readonly(path.mnt))
82055 res = -EROFS;
82056
82057 + if (!res && !gr_acl_handle_access(path.dentry, path.mnt, mode))
82058 + res = -EACCES;
82059 +
82060 out_path_release:
82061 path_put(&path);
82062 if (retry_estale(res, lookup_flags)) {
82063 @@ -429,6 +438,8 @@ retry:
82064 if (error)
82065 goto dput_and_out;
82066
82067 + gr_log_chdir(path.dentry, path.mnt);
82068 +
82069 set_fs_pwd(current->fs, &path);
82070
82071 dput_and_out:
82072 @@ -458,6 +469,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
82073 goto out_putf;
82074
82075 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
82076 +
82077 + if (!error && !gr_chroot_fchdir(f.file->f_path.dentry, f.file->f_path.mnt))
82078 + error = -EPERM;
82079 +
82080 + if (!error)
82081 + gr_log_chdir(f.file->f_path.dentry, f.file->f_path.mnt);
82082 +
82083 if (!error)
82084 set_fs_pwd(current->fs, &f.file->f_path);
82085 out_putf:
82086 @@ -487,7 +505,13 @@ retry:
82087 if (error)
82088 goto dput_and_out;
82089
82090 + if (gr_handle_chroot_chroot(path.dentry, path.mnt))
82091 + goto dput_and_out;
82092 +
82093 set_fs_root(current->fs, &path);
82094 +
82095 + gr_handle_chroot_chdir(&path);
82096 +
82097 error = 0;
82098 dput_and_out:
82099 path_put(&path);
82100 @@ -511,6 +535,16 @@ static int chmod_common(struct path *path, umode_t mode)
82101 return error;
82102 retry_deleg:
82103 mutex_lock(&inode->i_mutex);
82104 +
82105 + if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
82106 + error = -EACCES;
82107 + goto out_unlock;
82108 + }
82109 + if (gr_handle_chroot_chmod(path->dentry, path->mnt, mode)) {
82110 + error = -EACCES;
82111 + goto out_unlock;
82112 + }
82113 +
82114 error = security_path_chmod(path, mode);
82115 if (error)
82116 goto out_unlock;
82117 @@ -576,6 +610,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
82118 uid = make_kuid(current_user_ns(), user);
82119 gid = make_kgid(current_user_ns(), group);
82120
82121 + if (!gr_acl_handle_chown(path->dentry, path->mnt))
82122 + return -EACCES;
82123 +
82124 retry_deleg:
82125 newattrs.ia_valid = ATTR_CTIME;
82126 if (user != (uid_t) -1) {
82127 @@ -1029,6 +1066,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
82128 } else {
82129 fsnotify_open(f);
82130 fd_install(fd, f);
82131 + trace_do_sys_open(tmp->name, flags, mode);
82132 }
82133 }
82134 putname(tmp);
82135 diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
82136 index 871fcb6..f038f64 100644
82137 --- a/fs/overlayfs/copy_up.c
82138 +++ b/fs/overlayfs/copy_up.c
82139 @@ -142,7 +142,7 @@ static char *ovl_read_symlink(struct dentry *realdentry)
82140 set_fs(get_ds());
82141 /* The cast to a user pointer is valid due to the set_fs() */
82142 res = inode->i_op->readlink(realdentry,
82143 - (char __user *)buf, PAGE_SIZE - 1);
82144 + (char __force_user *)buf, PAGE_SIZE - 1);
82145 set_fs(old_fs);
82146 if (res < 0) {
82147 free_page((unsigned long) buf);
82148 diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
82149 index ec0c2a0..3a64073 100644
82150 --- a/fs/overlayfs/inode.c
82151 +++ b/fs/overlayfs/inode.c
82152 @@ -49,13 +49,13 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr)
82153 if (err)
82154 goto out;
82155
82156 - upperdentry = ovl_dentry_upper(dentry);
82157 - if (upperdentry) {
82158 + err = ovl_copy_up(dentry);
82159 + if (!err) {
82160 + upperdentry = ovl_dentry_upper(dentry);
82161 +
82162 mutex_lock(&upperdentry->d_inode->i_mutex);
82163 err = notify_change(upperdentry, attr, NULL);
82164 mutex_unlock(&upperdentry->d_inode->i_mutex);
82165 - } else {
82166 - err = ovl_copy_up_last(dentry, attr, false);
82167 }
82168 ovl_drop_write(dentry);
82169 out:
82170 @@ -346,6 +346,9 @@ struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags)
82171 if (d_is_dir(dentry))
82172 return d_backing_inode(dentry);
82173
82174 + if (d_is_dir(dentry))
82175 + return d_backing_inode(dentry);
82176 +
82177 type = ovl_path_real(dentry, &realpath);
82178 if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) {
82179 err = ovl_want_write(dentry);
82180 diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
82181 index e38ee0f..6fc10e4 100644
82182 --- a/fs/overlayfs/super.c
82183 +++ b/fs/overlayfs/super.c
82184 @@ -172,7 +172,7 @@ void ovl_path_lower(struct dentry *dentry, struct path *path)
82185 {
82186 struct ovl_entry *oe = dentry->d_fsdata;
82187
82188 - *path = oe->numlower ? oe->lowerstack[0] : (struct path) { NULL, NULL };
82189 + *path = oe->numlower ? oe->lowerstack[0] : (struct path) { .dentry = NULL, .mnt = NULL };
82190 }
82191
82192 int ovl_want_write(struct dentry *dentry)
82193 @@ -880,8 +880,8 @@ static unsigned int ovl_split_lowerdirs(char *str)
82194
82195 static int ovl_fill_super(struct super_block *sb, void *data, int silent)
82196 {
82197 - struct path upperpath = { NULL, NULL };
82198 - struct path workpath = { NULL, NULL };
82199 + struct path upperpath = { .dentry = NULL, .mnt = NULL };
82200 + struct path workpath = { .dentry = NULL, .mnt = NULL };
82201 struct dentry *root_dentry;
82202 struct ovl_entry *oe;
82203 struct ovl_fs *ufs;
82204 diff --git a/fs/pipe.c b/fs/pipe.c
82205 index 8865f79..bd2c79b 100644
82206 --- a/fs/pipe.c
82207 +++ b/fs/pipe.c
82208 @@ -36,7 +36,7 @@ unsigned int pipe_max_size = 1048576;
82209 /*
82210 * Minimum pipe size, as required by POSIX
82211 */
82212 -unsigned int pipe_min_size = PAGE_SIZE;
82213 +unsigned int pipe_min_size __read_only = PAGE_SIZE;
82214
82215 /*
82216 * We use a start+len construction, which provides full use of the
82217 @@ -55,7 +55,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
82218
82219 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
82220 {
82221 - if (pipe->files)
82222 + if (atomic_read(&pipe->files))
82223 mutex_lock_nested(&pipe->mutex, subclass);
82224 }
82225
82226 @@ -70,7 +70,7 @@ EXPORT_SYMBOL(pipe_lock);
82227
82228 void pipe_unlock(struct pipe_inode_info *pipe)
82229 {
82230 - if (pipe->files)
82231 + if (atomic_read(&pipe->files))
82232 mutex_unlock(&pipe->mutex);
82233 }
82234 EXPORT_SYMBOL(pipe_unlock);
82235 @@ -291,9 +291,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
82236 }
82237 if (bufs) /* More to do? */
82238 continue;
82239 - if (!pipe->writers)
82240 + if (!atomic_read(&pipe->writers))
82241 break;
82242 - if (!pipe->waiting_writers) {
82243 + if (!atomic_read(&pipe->waiting_writers)) {
82244 /* syscall merging: Usually we must not sleep
82245 * if O_NONBLOCK is set, or if we got some data.
82246 * But if a writer sleeps in kernel space, then
82247 @@ -350,7 +350,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82248
82249 __pipe_lock(pipe);
82250
82251 - if (!pipe->readers) {
82252 + if (!atomic_read(&pipe->readers)) {
82253 send_sig(SIGPIPE, current, 0);
82254 ret = -EPIPE;
82255 goto out;
82256 @@ -386,7 +386,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82257 for (;;) {
82258 int bufs;
82259
82260 - if (!pipe->readers) {
82261 + if (!atomic_read(&pipe->readers)) {
82262 send_sig(SIGPIPE, current, 0);
82263 if (!ret)
82264 ret = -EPIPE;
82265 @@ -454,9 +454,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82266 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
82267 do_wakeup = 0;
82268 }
82269 - pipe->waiting_writers++;
82270 + atomic_inc(&pipe->waiting_writers);
82271 pipe_wait(pipe);
82272 - pipe->waiting_writers--;
82273 + atomic_dec(&pipe->waiting_writers);
82274 }
82275 out:
82276 __pipe_unlock(pipe);
82277 @@ -511,7 +511,7 @@ pipe_poll(struct file *filp, poll_table *wait)
82278 mask = 0;
82279 if (filp->f_mode & FMODE_READ) {
82280 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
82281 - if (!pipe->writers && filp->f_version != pipe->w_counter)
82282 + if (!atomic_read(&pipe->writers) && filp->f_version != pipe->w_counter)
82283 mask |= POLLHUP;
82284 }
82285
82286 @@ -521,7 +521,7 @@ pipe_poll(struct file *filp, poll_table *wait)
82287 * Most Unices do not set POLLERR for FIFOs but on Linux they
82288 * behave exactly like pipes for poll().
82289 */
82290 - if (!pipe->readers)
82291 + if (!atomic_read(&pipe->readers))
82292 mask |= POLLERR;
82293 }
82294
82295 @@ -533,7 +533,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
82296 int kill = 0;
82297
82298 spin_lock(&inode->i_lock);
82299 - if (!--pipe->files) {
82300 + if (atomic_dec_and_test(&pipe->files)) {
82301 inode->i_pipe = NULL;
82302 kill = 1;
82303 }
82304 @@ -550,11 +550,11 @@ pipe_release(struct inode *inode, struct file *file)
82305
82306 __pipe_lock(pipe);
82307 if (file->f_mode & FMODE_READ)
82308 - pipe->readers--;
82309 + atomic_dec(&pipe->readers);
82310 if (file->f_mode & FMODE_WRITE)
82311 - pipe->writers--;
82312 + atomic_dec(&pipe->writers);
82313
82314 - if (pipe->readers || pipe->writers) {
82315 + if (atomic_read(&pipe->readers) || atomic_read(&pipe->writers)) {
82316 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
82317 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
82318 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
82319 @@ -619,7 +619,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
82320 kfree(pipe);
82321 }
82322
82323 -static struct vfsmount *pipe_mnt __read_mostly;
82324 +struct vfsmount *pipe_mnt __read_mostly;
82325
82326 /*
82327 * pipefs_dname() is called from d_path().
82328 @@ -649,8 +649,9 @@ static struct inode * get_pipe_inode(void)
82329 goto fail_iput;
82330
82331 inode->i_pipe = pipe;
82332 - pipe->files = 2;
82333 - pipe->readers = pipe->writers = 1;
82334 + atomic_set(&pipe->files, 2);
82335 + atomic_set(&pipe->readers, 1);
82336 + atomic_set(&pipe->writers, 1);
82337 inode->i_fop = &pipefifo_fops;
82338
82339 /*
82340 @@ -829,17 +830,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
82341 spin_lock(&inode->i_lock);
82342 if (inode->i_pipe) {
82343 pipe = inode->i_pipe;
82344 - pipe->files++;
82345 + atomic_inc(&pipe->files);
82346 spin_unlock(&inode->i_lock);
82347 } else {
82348 spin_unlock(&inode->i_lock);
82349 pipe = alloc_pipe_info();
82350 if (!pipe)
82351 return -ENOMEM;
82352 - pipe->files = 1;
82353 + atomic_set(&pipe->files, 1);
82354 spin_lock(&inode->i_lock);
82355 if (unlikely(inode->i_pipe)) {
82356 - inode->i_pipe->files++;
82357 + atomic_inc(&inode->i_pipe->files);
82358 spin_unlock(&inode->i_lock);
82359 free_pipe_info(pipe);
82360 pipe = inode->i_pipe;
82361 @@ -864,10 +865,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
82362 * opened, even when there is no process writing the FIFO.
82363 */
82364 pipe->r_counter++;
82365 - if (pipe->readers++ == 0)
82366 + if (atomic_inc_return(&pipe->readers) == 1)
82367 wake_up_partner(pipe);
82368
82369 - if (!is_pipe && !pipe->writers) {
82370 + if (!is_pipe && !atomic_read(&pipe->writers)) {
82371 if ((filp->f_flags & O_NONBLOCK)) {
82372 /* suppress POLLHUP until we have
82373 * seen a writer */
82374 @@ -886,14 +887,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
82375 * errno=ENXIO when there is no process reading the FIFO.
82376 */
82377 ret = -ENXIO;
82378 - if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers)
82379 + if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
82380 goto err;
82381
82382 pipe->w_counter++;
82383 - if (!pipe->writers++)
82384 + if (atomic_inc_return(&pipe->writers) == 1)
82385 wake_up_partner(pipe);
82386
82387 - if (!is_pipe && !pipe->readers) {
82388 + if (!is_pipe && !atomic_read(&pipe->readers)) {
82389 if (wait_for_partner(pipe, &pipe->r_counter))
82390 goto err_wr;
82391 }
82392 @@ -907,11 +908,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
82393 * the process can at least talk to itself.
82394 */
82395
82396 - pipe->readers++;
82397 - pipe->writers++;
82398 + atomic_inc(&pipe->readers);
82399 + atomic_inc(&pipe->writers);
82400 pipe->r_counter++;
82401 pipe->w_counter++;
82402 - if (pipe->readers == 1 || pipe->writers == 1)
82403 + if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
82404 wake_up_partner(pipe);
82405 break;
82406
82407 @@ -925,13 +926,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
82408 return 0;
82409
82410 err_rd:
82411 - if (!--pipe->readers)
82412 + if (atomic_dec_and_test(&pipe->readers))
82413 wake_up_interruptible(&pipe->wait);
82414 ret = -ERESTARTSYS;
82415 goto err;
82416
82417 err_wr:
82418 - if (!--pipe->writers)
82419 + if (atomic_dec_and_test(&pipe->writers))
82420 wake_up_interruptible(&pipe->wait);
82421 ret = -ERESTARTSYS;
82422 goto err;
82423 @@ -1007,7 +1008,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
82424 * Currently we rely on the pipe array holding a power-of-2 number
82425 * of pages.
82426 */
82427 -static inline unsigned int round_pipe_size(unsigned int size)
82428 +static inline unsigned long round_pipe_size(unsigned long size)
82429 {
82430 unsigned long nr_pages;
82431
82432 @@ -1055,13 +1056,16 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
82433
82434 switch (cmd) {
82435 case F_SETPIPE_SZ: {
82436 - unsigned int size, nr_pages;
82437 + unsigned long size, nr_pages;
82438 +
82439 + ret = -EINVAL;
82440 + if (arg < pipe_min_size)
82441 + goto out;
82442
82443 size = round_pipe_size(arg);
82444 nr_pages = size >> PAGE_SHIFT;
82445
82446 - ret = -EINVAL;
82447 - if (!nr_pages)
82448 + if (size < pipe_min_size)
82449 goto out;
82450
82451 if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
82452 diff --git a/fs/posix_acl.c b/fs/posix_acl.c
82453 index 4fb17de..13d8c0f 100644
82454 --- a/fs/posix_acl.c
82455 +++ b/fs/posix_acl.c
82456 @@ -20,6 +20,7 @@
82457 #include <linux/xattr.h>
82458 #include <linux/export.h>
82459 #include <linux/user_namespace.h>
82460 +#include <linux/grsecurity.h>
82461
82462 struct posix_acl **acl_by_type(struct inode *inode, int type)
82463 {
82464 @@ -277,7 +278,7 @@ posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p)
82465 }
82466 }
82467 if (mode_p)
82468 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82469 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82470 return not_equiv;
82471 }
82472 EXPORT_SYMBOL(posix_acl_equiv_mode);
82473 @@ -427,7 +428,7 @@ static int posix_acl_create_masq(struct posix_acl *acl, umode_t *mode_p)
82474 mode &= (group_obj->e_perm << 3) | ~S_IRWXG;
82475 }
82476
82477 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82478 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82479 return not_equiv;
82480 }
82481
82482 @@ -485,6 +486,8 @@ __posix_acl_create(struct posix_acl **acl, gfp_t gfp, umode_t *mode_p)
82483 struct posix_acl *clone = posix_acl_clone(*acl, gfp);
82484 int err = -ENOMEM;
82485 if (clone) {
82486 + *mode_p &= ~gr_acl_umask();
82487 +
82488 err = posix_acl_create_masq(clone, mode_p);
82489 if (err < 0) {
82490 posix_acl_release(clone);
82491 @@ -657,11 +660,12 @@ struct posix_acl *
82492 posix_acl_from_xattr(struct user_namespace *user_ns,
82493 const void *value, size_t size)
82494 {
82495 - posix_acl_xattr_header *header = (posix_acl_xattr_header *)value;
82496 - posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end;
82497 + const posix_acl_xattr_header *header = (const posix_acl_xattr_header *)value;
82498 + const posix_acl_xattr_entry *entry = (const posix_acl_xattr_entry *)(header+1), *end;
82499 int count;
82500 struct posix_acl *acl;
82501 struct posix_acl_entry *acl_e;
82502 + umode_t umask = gr_acl_umask();
82503
82504 if (!value)
82505 return NULL;
82506 @@ -687,12 +691,18 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82507
82508 switch(acl_e->e_tag) {
82509 case ACL_USER_OBJ:
82510 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82511 + break;
82512 case ACL_GROUP_OBJ:
82513 case ACL_MASK:
82514 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82515 + break;
82516 case ACL_OTHER:
82517 + acl_e->e_perm &= ~(umask & S_IRWXO);
82518 break;
82519
82520 case ACL_USER:
82521 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82522 acl_e->e_uid =
82523 make_kuid(user_ns,
82524 le32_to_cpu(entry->e_id));
82525 @@ -700,6 +710,7 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82526 goto fail;
82527 break;
82528 case ACL_GROUP:
82529 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82530 acl_e->e_gid =
82531 make_kgid(user_ns,
82532 le32_to_cpu(entry->e_id));
82533 diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
82534 index 1ade120..a86f1a2 100644
82535 --- a/fs/proc/Kconfig
82536 +++ b/fs/proc/Kconfig
82537 @@ -30,7 +30,7 @@ config PROC_FS
82538
82539 config PROC_KCORE
82540 bool "/proc/kcore support" if !ARM
82541 - depends on PROC_FS && MMU
82542 + depends on PROC_FS && MMU && !GRKERNSEC_PROC_ADD
82543 help
82544 Provides a virtual ELF core file of the live kernel. This can
82545 be read with gdb and other ELF tools. No modifications can be
82546 @@ -38,8 +38,8 @@ config PROC_KCORE
82547
82548 config PROC_VMCORE
82549 bool "/proc/vmcore support"
82550 - depends on PROC_FS && CRASH_DUMP
82551 - default y
82552 + depends on PROC_FS && CRASH_DUMP && !GRKERNSEC
82553 + default n
82554 help
82555 Exports the dump image of crashed kernel in ELF format.
82556
82557 @@ -63,8 +63,8 @@ config PROC_SYSCTL
82558 limited in memory.
82559
82560 config PROC_PAGE_MONITOR
82561 - default y
82562 - depends on PROC_FS && MMU
82563 + default n
82564 + depends on PROC_FS && MMU && !GRKERNSEC
82565 bool "Enable /proc page monitoring" if EXPERT
82566 help
82567 Various /proc files exist to monitor process memory utilization:
82568 diff --git a/fs/proc/array.c b/fs/proc/array.c
82569 index eed2050..fb443f2 100644
82570 --- a/fs/proc/array.c
82571 +++ b/fs/proc/array.c
82572 @@ -60,6 +60,7 @@
82573 #include <linux/tty.h>
82574 #include <linux/string.h>
82575 #include <linux/mman.h>
82576 +#include <linux/grsecurity.h>
82577 #include <linux/proc_fs.h>
82578 #include <linux/ioport.h>
82579 #include <linux/uaccess.h>
82580 @@ -351,6 +352,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
82581 cpumask_pr_args(&task->cpus_allowed));
82582 }
82583
82584 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82585 +static inline void task_pax(struct seq_file *m, struct task_struct *p)
82586 +{
82587 + if (p->mm)
82588 + seq_printf(m, "PaX:\t%c%c%c%c%c\n",
82589 + p->mm->pax_flags & MF_PAX_PAGEEXEC ? 'P' : 'p',
82590 + p->mm->pax_flags & MF_PAX_EMUTRAMP ? 'E' : 'e',
82591 + p->mm->pax_flags & MF_PAX_MPROTECT ? 'M' : 'm',
82592 + p->mm->pax_flags & MF_PAX_RANDMMAP ? 'R' : 'r',
82593 + p->mm->pax_flags & MF_PAX_SEGMEXEC ? 'S' : 's');
82594 + else
82595 + seq_printf(m, "PaX:\t-----\n");
82596 +}
82597 +#endif
82598 +
82599 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82600 struct pid *pid, struct task_struct *task)
82601 {
82602 @@ -369,9 +385,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82603 task_cpus_allowed(m, task);
82604 cpuset_task_status_allowed(m, task);
82605 task_context_switch_counts(m, task);
82606 +
82607 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82608 + task_pax(m, task);
82609 +#endif
82610 +
82611 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
82612 + task_grsec_rbac(m, task);
82613 +#endif
82614 +
82615 return 0;
82616 }
82617
82618 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82619 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
82620 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
82621 + _mm->pax_flags & MF_PAX_SEGMEXEC))
82622 +#endif
82623 +
82624 static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82625 struct pid *pid, struct task_struct *task, int whole)
82626 {
82627 @@ -393,9 +424,16 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82628 char tcomm[sizeof(task->comm)];
82629 unsigned long flags;
82630
82631 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82632 + if (current->exec_id != m->exec_id) {
82633 + gr_log_badprocpid("stat");
82634 + return 0;
82635 + }
82636 +#endif
82637 +
82638 state = *get_task_state(task);
82639 vsize = eip = esp = 0;
82640 - permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
82641 + permitted = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
82642 mm = get_task_mm(task);
82643 if (mm) {
82644 vsize = task_vsize(mm);
82645 @@ -463,6 +501,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82646 gtime = task_gtime(task);
82647 }
82648
82649 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82650 + if (PAX_RAND_FLAGS(mm)) {
82651 + eip = 0;
82652 + esp = 0;
82653 + wchan = 0;
82654 + }
82655 +#endif
82656 +#ifdef CONFIG_GRKERNSEC_HIDESYM
82657 + wchan = 0;
82658 + eip =0;
82659 + esp =0;
82660 +#endif
82661 +
82662 /* scale priority and nice values from timeslices to -20..20 */
82663 /* to make it look like a "normal" Unix priority/nice value */
82664 priority = task_prio(task);
82665 @@ -494,9 +545,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82666 seq_put_decimal_ull(m, ' ', vsize);
82667 seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
82668 seq_put_decimal_ull(m, ' ', rsslim);
82669 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82670 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0));
82671 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0));
82672 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0));
82673 +#else
82674 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0);
82675 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0);
82676 seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0);
82677 +#endif
82678 seq_put_decimal_ull(m, ' ', esp);
82679 seq_put_decimal_ull(m, ' ', eip);
82680 /* The signal information here is obsolete.
82681 @@ -530,7 +587,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82682 seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
82683 seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
82684
82685 - if (mm && permitted) {
82686 + if (mm && permitted
82687 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82688 + && !PAX_RAND_FLAGS(mm)
82689 +#endif
82690 + ) {
82691 seq_put_decimal_ull(m, ' ', mm->start_data);
82692 seq_put_decimal_ull(m, ' ', mm->end_data);
82693 seq_put_decimal_ull(m, ' ', mm->start_brk);
82694 @@ -568,8 +629,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82695 struct pid *pid, struct task_struct *task)
82696 {
82697 unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
82698 - struct mm_struct *mm = get_task_mm(task);
82699 + struct mm_struct *mm;
82700
82701 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82702 + if (current->exec_id != m->exec_id) {
82703 + gr_log_badprocpid("statm");
82704 + return 0;
82705 + }
82706 +#endif
82707 + mm = get_task_mm(task);
82708 if (mm) {
82709 size = task_statm(mm, &shared, &text, &data, &resident);
82710 mmput(mm);
82711 @@ -592,6 +660,21 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82712 return 0;
82713 }
82714
82715 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
82716 +int proc_pid_ipaddr(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task)
82717 +{
82718 + unsigned long flags;
82719 + u32 curr_ip = 0;
82720 +
82721 + if (lock_task_sighand(task, &flags)) {
82722 + curr_ip = task->signal->curr_ip;
82723 + unlock_task_sighand(task, &flags);
82724 + }
82725 + seq_printf(m, "%pI4\n", &curr_ip);
82726 + return 0;
82727 +}
82728 +#endif
82729 +
82730 #ifdef CONFIG_PROC_CHILDREN
82731 static struct pid *
82732 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
82733 diff --git a/fs/proc/base.c b/fs/proc/base.c
82734 index 29595af..aeaaf2e 100644
82735 --- a/fs/proc/base.c
82736 +++ b/fs/proc/base.c
82737 @@ -113,6 +113,14 @@ struct pid_entry {
82738 union proc_op op;
82739 };
82740
82741 +struct getdents_callback {
82742 + struct linux_dirent __user * current_dir;
82743 + struct linux_dirent __user * previous;
82744 + struct file * file;
82745 + int count;
82746 + int error;
82747 +};
82748 +
82749 #define NOD(NAME, MODE, IOP, FOP, OP) { \
82750 .name = (NAME), \
82751 .len = sizeof(NAME) - 1, \
82752 @@ -224,6 +232,11 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
82753 goto out_mmput;
82754 }
82755
82756 + if (gr_acl_handle_procpidmem(tsk)) {
82757 + rv = 0;
82758 + goto out_mmput;
82759 + }
82760 +
82761 page = (char *)__get_free_page(GFP_TEMPORARY);
82762 if (!page) {
82763 rv = -ENOMEM;
82764 @@ -400,12 +413,28 @@ static const struct file_operations proc_pid_cmdline_ops = {
82765 .llseek = generic_file_llseek,
82766 };
82767
82768 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82769 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
82770 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
82771 + _mm->pax_flags & MF_PAX_SEGMEXEC))
82772 +#endif
82773 +
82774 static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
82775 struct pid *pid, struct task_struct *task)
82776 {
82777 - struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ);
82778 + struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
82779 if (mm && !IS_ERR(mm)) {
82780 unsigned int nwords = 0;
82781 +
82782 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82783 + /* allow if we're currently ptracing this task */
82784 + if (PAX_RAND_FLAGS(mm) &&
82785 + (!(task->ptrace & PT_PTRACED) || (task->parent != current))) {
82786 + mmput(mm);
82787 + return 0;
82788 + }
82789 +#endif
82790 +
82791 do {
82792 nwords += 2;
82793 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
82794 @@ -417,7 +446,7 @@ static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
82795 }
82796
82797
82798 -#ifdef CONFIG_KALLSYMS
82799 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82800 /*
82801 * Provides a wchan file via kallsyms in a proper one-value-per-file format.
82802 * Returns the resolved symbol. If that fails, simply return the address.
82803 @@ -430,7 +459,7 @@ static int proc_pid_wchan(struct seq_file *m, struct pid_namespace *ns,
82804
82805 wchan = get_wchan(task);
82806
82807 - if (wchan && ptrace_may_access(task, PTRACE_MODE_READ) && !lookup_symbol_name(wchan, symname))
82808 + if (wchan && !lookup_symbol_name(wchan, symname) && ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS))
82809 seq_printf(m, "%s", symname);
82810 else
82811 seq_putc(m, '0');
82812 @@ -444,7 +473,7 @@ static int lock_trace(struct task_struct *task)
82813 int err = mutex_lock_killable(&task->signal->cred_guard_mutex);
82814 if (err)
82815 return err;
82816 - if (!ptrace_may_access(task, PTRACE_MODE_ATTACH)) {
82817 + if (!ptrace_may_access(task, PTRACE_MODE_ATTACH_FSCREDS)) {
82818 mutex_unlock(&task->signal->cred_guard_mutex);
82819 return -EPERM;
82820 }
82821 @@ -456,7 +485,7 @@ static void unlock_trace(struct task_struct *task)
82822 mutex_unlock(&task->signal->cred_guard_mutex);
82823 }
82824
82825 -#ifdef CONFIG_STACKTRACE
82826 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82827
82828 #define MAX_STACK_TRACE_DEPTH 64
82829
82830 @@ -654,7 +683,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
82831 return 0;
82832 }
82833
82834 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
82835 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
82836 static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
82837 struct pid *pid, struct task_struct *task)
82838 {
82839 @@ -687,7 +716,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
82840 /************************************************************************/
82841
82842 /* permission checks */
82843 -static int proc_fd_access_allowed(struct inode *inode)
82844 +static int proc_fd_access_allowed(struct inode *inode, unsigned int log)
82845 {
82846 struct task_struct *task;
82847 int allowed = 0;
82848 @@ -697,7 +726,10 @@ static int proc_fd_access_allowed(struct inode *inode)
82849 */
82850 task = get_proc_task(inode);
82851 if (task) {
82852 - allowed = ptrace_may_access(task, PTRACE_MODE_READ);
82853 + if (log)
82854 + allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS);
82855 + else
82856 + allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
82857 put_task_struct(task);
82858 }
82859 return allowed;
82860 @@ -728,11 +760,36 @@ static bool has_pid_permissions(struct pid_namespace *pid,
82861 struct task_struct *task,
82862 int hide_pid_min)
82863 {
82864 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
82865 + return false;
82866 +
82867 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82868 + rcu_read_lock();
82869 + {
82870 + const struct cred *tmpcred = current_cred();
82871 + const struct cred *cred = __task_cred(task);
82872 +
82873 + if (uid_eq(tmpcred->uid, GLOBAL_ROOT_UID) || uid_eq(tmpcred->uid, cred->uid)
82874 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
82875 + || in_group_p(grsec_proc_gid)
82876 +#endif
82877 + ) {
82878 + rcu_read_unlock();
82879 + return true;
82880 + }
82881 + }
82882 + rcu_read_unlock();
82883 +
82884 + if (!pid->hide_pid)
82885 + return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
82886 +#endif
82887 +
82888 if (pid->hide_pid < hide_pid_min)
82889 return true;
82890 if (in_group_p(pid->pid_gid))
82891 return true;
82892 - return ptrace_may_access(task, PTRACE_MODE_READ);
82893 +
82894 + return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS);
82895 }
82896
82897
82898 @@ -749,7 +806,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
82899 put_task_struct(task);
82900
82901 if (!has_perms) {
82902 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82903 + {
82904 +#else
82905 if (pid->hide_pid == 2) {
82906 +#endif
82907 /*
82908 * Let's make getdents(), stat(), and open()
82909 * consistent with each other. If a process
82910 @@ -809,7 +870,11 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
82911 struct mm_struct *mm = ERR_PTR(-ESRCH);
82912
82913 if (task) {
82914 - mm = mm_access(task, mode);
82915 + mm = mm_access(task, mode | PTRACE_MODE_FSCREDS);
82916 + if (!IS_ERR_OR_NULL(mm) && gr_acl_handle_procpidmem(task)) {
82917 + mmput(mm);
82918 + mm = ERR_PTR(-EPERM);
82919 + }
82920 put_task_struct(task);
82921
82922 if (!IS_ERR_OR_NULL(mm)) {
82923 @@ -831,6 +896,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
82924 return PTR_ERR(mm);
82925
82926 file->private_data = mm;
82927 +
82928 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82929 + file->f_version = current->exec_id;
82930 +#endif
82931 +
82932 return 0;
82933 }
82934
82935 @@ -852,6 +922,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
82936 ssize_t copied;
82937 char *page;
82938
82939 +#ifdef CONFIG_GRKERNSEC
82940 + if (write)
82941 + return -EPERM;
82942 +#endif
82943 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82944 + if (file->f_version != current->exec_id) {
82945 + gr_log_badprocpid("mem");
82946 + return 0;
82947 + }
82948 +#endif
82949 +
82950 if (!mm)
82951 return 0;
82952
82953 @@ -864,7 +945,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
82954 goto free;
82955
82956 while (count > 0) {
82957 - int this_len = min_t(int, count, PAGE_SIZE);
82958 + ssize_t this_len = min_t(ssize_t, count, PAGE_SIZE);
82959
82960 if (write && copy_from_user(page, buf, this_len)) {
82961 copied = -EFAULT;
82962 @@ -956,6 +1037,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
82963 if (!mm)
82964 return 0;
82965
82966 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82967 + if (file->f_version != current->exec_id) {
82968 + gr_log_badprocpid("environ");
82969 + return 0;
82970 + }
82971 +#endif
82972 +
82973 page = (char *)__get_free_page(GFP_TEMPORARY);
82974 if (!page)
82975 return -ENOMEM;
82976 @@ -965,7 +1053,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
82977 goto free;
82978 while (count > 0) {
82979 size_t this_len, max_len;
82980 - int retval;
82981 + ssize_t retval;
82982
82983 if (src >= (mm->env_end - mm->env_start))
82984 break;
82985 @@ -1561,7 +1649,7 @@ static const char *proc_pid_follow_link(struct dentry *dentry, void **cookie)
82986 int error = -EACCES;
82987
82988 /* Are we allowed to snoop on the tasks file descriptors? */
82989 - if (!proc_fd_access_allowed(inode))
82990 + if (!proc_fd_access_allowed(inode, 0))
82991 goto out;
82992
82993 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
82994 @@ -1605,8 +1693,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
82995 struct path path;
82996
82997 /* Are we allowed to snoop on the tasks file descriptors? */
82998 - if (!proc_fd_access_allowed(inode))
82999 - goto out;
83000 + /* logging this is needed for learning on chromium to work properly,
83001 + but we don't want to flood the logs from 'ps' which does a readlink
83002 + on /proc/fd/2 of tasks in the listing, nor do we want 'ps' to learn
83003 + CAP_SYS_PTRACE as it's not necessary for its basic functionality
83004 + */
83005 + if (dentry->d_name.name[0] == '2' && dentry->d_name.name[1] == '\0') {
83006 + if (!proc_fd_access_allowed(inode,0))
83007 + goto out;
83008 + } else {
83009 + if (!proc_fd_access_allowed(inode,1))
83010 + goto out;
83011 + }
83012
83013 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
83014 if (error)
83015 @@ -1656,7 +1754,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
83016 rcu_read_lock();
83017 cred = __task_cred(task);
83018 inode->i_uid = cred->euid;
83019 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83020 + inode->i_gid = grsec_proc_gid;
83021 +#else
83022 inode->i_gid = cred->egid;
83023 +#endif
83024 rcu_read_unlock();
83025 }
83026 security_task_to_inode(task, inode);
83027 @@ -1692,10 +1794,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
83028 return -ENOENT;
83029 }
83030 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
83031 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83032 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
83033 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83034 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
83035 +#endif
83036 task_dumpable(task)) {
83037 cred = __task_cred(task);
83038 stat->uid = cred->euid;
83039 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83040 + stat->gid = grsec_proc_gid;
83041 +#else
83042 stat->gid = cred->egid;
83043 +#endif
83044 }
83045 }
83046 rcu_read_unlock();
83047 @@ -1733,11 +1844,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
83048
83049 if (task) {
83050 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
83051 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83052 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
83053 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83054 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
83055 +#endif
83056 task_dumpable(task)) {
83057 rcu_read_lock();
83058 cred = __task_cred(task);
83059 inode->i_uid = cred->euid;
83060 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83061 + inode->i_gid = grsec_proc_gid;
83062 +#else
83063 inode->i_gid = cred->egid;
83064 +#endif
83065 rcu_read_unlock();
83066 } else {
83067 inode->i_uid = GLOBAL_ROOT_UID;
83068 @@ -1846,7 +1966,7 @@ static int map_files_d_revalidate(struct dentry *dentry, unsigned int flags)
83069 if (!task)
83070 goto out_notask;
83071
83072 - mm = mm_access(task, PTRACE_MODE_READ);
83073 + mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
83074 if (IS_ERR_OR_NULL(mm))
83075 goto out;
83076
83077 @@ -1997,7 +2117,7 @@ static struct dentry *proc_map_files_lookup(struct inode *dir,
83078 goto out;
83079
83080 result = -EACCES;
83081 - if (!ptrace_may_access(task, PTRACE_MODE_READ))
83082 + if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS))
83083 goto out_put_task;
83084
83085 result = -ENOENT;
83086 @@ -2050,7 +2170,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx)
83087 goto out;
83088
83089 ret = -EACCES;
83090 - if (!ptrace_may_access(task, PTRACE_MODE_READ))
83091 + if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS))
83092 goto out_put_task;
83093
83094 ret = 0;
83095 @@ -2276,6 +2396,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
83096 if (!task)
83097 goto out_no_task;
83098
83099 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83100 + goto out;
83101 +
83102 /*
83103 * Yes, it does not scale. And it should not. Don't add
83104 * new entries into /proc/<tgid>/ without very good reasons.
83105 @@ -2306,6 +2429,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
83106 if (!task)
83107 return -ENOENT;
83108
83109 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83110 + goto out;
83111 +
83112 if (!dir_emit_dots(file, ctx))
83113 goto out;
83114
83115 @@ -2484,6 +2610,7 @@ static ssize_t proc_coredump_filter_write(struct file *file,
83116 mm = get_task_mm(task);
83117 if (!mm)
83118 goto out_no_mm;
83119 + ret = 0;
83120
83121 for (i = 0, mask = 1; i < MMF_DUMP_FILTER_BITS; i++, mask <<= 1) {
83122 if (val & mask)
83123 @@ -2519,7 +2646,7 @@ static int do_io_accounting(struct task_struct *task, struct seq_file *m, int wh
83124 if (result)
83125 return result;
83126
83127 - if (!ptrace_may_access(task, PTRACE_MODE_READ)) {
83128 + if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) {
83129 result = -EACCES;
83130 goto out_unlock;
83131 }
83132 @@ -2738,7 +2865,7 @@ static const struct pid_entry tgid_base_stuff[] = {
83133 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
83134 #endif
83135 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
83136 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
83137 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
83138 ONE("syscall", S_IRUSR, proc_pid_syscall),
83139 #endif
83140 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
83141 @@ -2763,10 +2890,10 @@ static const struct pid_entry tgid_base_stuff[] = {
83142 #ifdef CONFIG_SECURITY
83143 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
83144 #endif
83145 -#ifdef CONFIG_KALLSYMS
83146 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83147 ONE("wchan", S_IRUGO, proc_pid_wchan),
83148 #endif
83149 -#ifdef CONFIG_STACKTRACE
83150 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83151 ONE("stack", S_IRUSR, proc_pid_stack),
83152 #endif
83153 #ifdef CONFIG_SCHED_INFO
83154 @@ -2800,6 +2927,9 @@ static const struct pid_entry tgid_base_stuff[] = {
83155 #ifdef CONFIG_HARDWALL
83156 ONE("hardwall", S_IRUGO, proc_pid_hardwall),
83157 #endif
83158 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
83159 + ONE("ipaddr", S_IRUSR, proc_pid_ipaddr),
83160 +#endif
83161 #ifdef CONFIG_USER_NS
83162 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
83163 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
83164 @@ -2932,7 +3062,14 @@ static int proc_pid_instantiate(struct inode *dir,
83165 if (!inode)
83166 goto out;
83167
83168 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83169 + inode->i_mode = S_IFDIR|S_IRUSR|S_IXUSR;
83170 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83171 + inode->i_gid = grsec_proc_gid;
83172 + inode->i_mode = S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP;
83173 +#else
83174 inode->i_mode = S_IFDIR|S_IRUGO|S_IXUGO;
83175 +#endif
83176 inode->i_op = &proc_tgid_base_inode_operations;
83177 inode->i_fop = &proc_tgid_base_operations;
83178 inode->i_flags|=S_IMMUTABLE;
83179 @@ -2970,7 +3107,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
83180 if (!task)
83181 goto out;
83182
83183 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83184 + goto out_put_task;
83185 +
83186 result = proc_pid_instantiate(dir, dentry, task, NULL);
83187 +out_put_task:
83188 put_task_struct(task);
83189 out:
83190 return ERR_PTR(result);
83191 @@ -3084,7 +3225,7 @@ static const struct pid_entry tid_base_stuff[] = {
83192 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
83193 #endif
83194 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
83195 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
83196 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
83197 ONE("syscall", S_IRUSR, proc_pid_syscall),
83198 #endif
83199 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
83200 @@ -3111,10 +3252,10 @@ static const struct pid_entry tid_base_stuff[] = {
83201 #ifdef CONFIG_SECURITY
83202 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
83203 #endif
83204 -#ifdef CONFIG_KALLSYMS
83205 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83206 ONE("wchan", S_IRUGO, proc_pid_wchan),
83207 #endif
83208 -#ifdef CONFIG_STACKTRACE
83209 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83210 ONE("stack", S_IRUSR, proc_pid_stack),
83211 #endif
83212 #ifdef CONFIG_SCHED_INFO
83213 diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c
83214 index cbd82df..c0407d2 100644
83215 --- a/fs/proc/cmdline.c
83216 +++ b/fs/proc/cmdline.c
83217 @@ -23,7 +23,11 @@ static const struct file_operations cmdline_proc_fops = {
83218
83219 static int __init proc_cmdline_init(void)
83220 {
83221 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83222 + proc_create_grsec("cmdline", 0, NULL, &cmdline_proc_fops);
83223 +#else
83224 proc_create("cmdline", 0, NULL, &cmdline_proc_fops);
83225 +#endif
83226 return 0;
83227 }
83228 fs_initcall(proc_cmdline_init);
83229 diff --git a/fs/proc/devices.c b/fs/proc/devices.c
83230 index 50493ed..248166b 100644
83231 --- a/fs/proc/devices.c
83232 +++ b/fs/proc/devices.c
83233 @@ -64,7 +64,11 @@ static const struct file_operations proc_devinfo_operations = {
83234
83235 static int __init proc_devices_init(void)
83236 {
83237 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83238 + proc_create_grsec("devices", 0, NULL, &proc_devinfo_operations);
83239 +#else
83240 proc_create("devices", 0, NULL, &proc_devinfo_operations);
83241 +#endif
83242 return 0;
83243 }
83244 fs_initcall(proc_devices_init);
83245 diff --git a/fs/proc/fd.c b/fs/proc/fd.c
83246 index 6e5fcd0..06ea074 100644
83247 --- a/fs/proc/fd.c
83248 +++ b/fs/proc/fd.c
83249 @@ -27,7 +27,8 @@ static int seq_show(struct seq_file *m, void *v)
83250 if (!task)
83251 return -ENOENT;
83252
83253 - files = get_files_struct(task);
83254 + if (!gr_acl_handle_procpidmem(task))
83255 + files = get_files_struct(task);
83256 put_task_struct(task);
83257
83258 if (files) {
83259 @@ -291,11 +292,21 @@ static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
83260 */
83261 int proc_fd_permission(struct inode *inode, int mask)
83262 {
83263 + struct task_struct *task;
83264 int rv = generic_permission(inode, mask);
83265 - if (rv == 0)
83266 - return 0;
83267 +
83268 if (task_tgid(current) == proc_pid(inode))
83269 rv = 0;
83270 +
83271 + task = get_proc_task(inode);
83272 + if (task == NULL)
83273 + return rv;
83274 +
83275 + if (gr_acl_handle_procpidmem(task))
83276 + rv = -EACCES;
83277 +
83278 + put_task_struct(task);
83279 +
83280 return rv;
83281 }
83282
83283 diff --git a/fs/proc/generic.c b/fs/proc/generic.c
83284 index ff3ffc7..1aec0a3 100644
83285 --- a/fs/proc/generic.c
83286 +++ b/fs/proc/generic.c
83287 @@ -22,6 +22,7 @@
83288 #include <linux/bitops.h>
83289 #include <linux/spinlock.h>
83290 #include <linux/completion.h>
83291 +#include <linux/grsecurity.h>
83292 #include <asm/uaccess.h>
83293
83294 #include "internal.h"
83295 @@ -253,6 +254,15 @@ struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
83296 return proc_lookup_de(PDE(dir), dir, dentry);
83297 }
83298
83299 +struct dentry *proc_lookup_restrict(struct inode *dir, struct dentry *dentry,
83300 + unsigned int flags)
83301 +{
83302 + if (gr_proc_is_restricted())
83303 + return ERR_PTR(-EACCES);
83304 +
83305 + return proc_lookup_de(PDE(dir), dir, dentry);
83306 +}
83307 +
83308 /*
83309 * This returns non-zero if at EOF, so that the /proc
83310 * root directory can use this and check if it should
83311 @@ -310,6 +320,16 @@ int proc_readdir(struct file *file, struct dir_context *ctx)
83312 return proc_readdir_de(PDE(inode), file, ctx);
83313 }
83314
83315 +int proc_readdir_restrict(struct file *file, struct dir_context *ctx)
83316 +{
83317 + struct inode *inode = file_inode(file);
83318 +
83319 + if (gr_proc_is_restricted())
83320 + return -EACCES;
83321 +
83322 + return proc_readdir_de(PDE(inode), file, ctx);
83323 +}
83324 +
83325 /*
83326 * These are the generic /proc directory operations. They
83327 * use the in-memory "struct proc_dir_entry" tree to parse
83328 @@ -321,6 +341,12 @@ static const struct file_operations proc_dir_operations = {
83329 .iterate = proc_readdir,
83330 };
83331
83332 +static const struct file_operations proc_dir_restricted_operations = {
83333 + .llseek = generic_file_llseek,
83334 + .read = generic_read_dir,
83335 + .iterate = proc_readdir_restrict,
83336 +};
83337 +
83338 /*
83339 * proc directories can do almost nothing..
83340 */
83341 @@ -330,6 +356,12 @@ static const struct inode_operations proc_dir_inode_operations = {
83342 .setattr = proc_notify_change,
83343 };
83344
83345 +static const struct inode_operations proc_dir_restricted_inode_operations = {
83346 + .lookup = proc_lookup_restrict,
83347 + .getattr = proc_getattr,
83348 + .setattr = proc_notify_change,
83349 +};
83350 +
83351 static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
83352 {
83353 int ret;
83354 @@ -445,6 +477,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
83355 }
83356 EXPORT_SYMBOL_GPL(proc_mkdir_data);
83357
83358 +struct proc_dir_entry *proc_mkdir_data_restrict(const char *name, umode_t mode,
83359 + struct proc_dir_entry *parent, void *data)
83360 +{
83361 + struct proc_dir_entry *ent;
83362 +
83363 + if (mode == 0)
83364 + mode = S_IRUGO | S_IXUGO;
83365 +
83366 + ent = __proc_create(&parent, name, S_IFDIR | mode, 2);
83367 + if (ent) {
83368 + ent->data = data;
83369 + ent->restricted = 1;
83370 + ent->proc_fops = &proc_dir_restricted_operations;
83371 + ent->proc_iops = &proc_dir_restricted_inode_operations;
83372 + parent->nlink++;
83373 + if (proc_register(parent, ent) < 0) {
83374 + kfree(ent);
83375 + parent->nlink--;
83376 + ent = NULL;
83377 + }
83378 + }
83379 + return ent;
83380 +}
83381 +EXPORT_SYMBOL_GPL(proc_mkdir_data_restrict);
83382 +
83383 struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
83384 struct proc_dir_entry *parent)
83385 {
83386 @@ -459,6 +516,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
83387 }
83388 EXPORT_SYMBOL(proc_mkdir);
83389
83390 +struct proc_dir_entry *proc_mkdir_restrict(const char *name,
83391 + struct proc_dir_entry *parent)
83392 +{
83393 + return proc_mkdir_data_restrict(name, 0, parent, NULL);
83394 +}
83395 +EXPORT_SYMBOL(proc_mkdir_restrict);
83396 +
83397 struct proc_dir_entry *proc_create_mount_point(const char *name)
83398 {
83399 umode_t mode = S_IFDIR | S_IRUGO | S_IXUGO;
83400 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
83401 index bd95b9f..a64a773 100644
83402 --- a/fs/proc/inode.c
83403 +++ b/fs/proc/inode.c
83404 @@ -23,11 +23,17 @@
83405 #include <linux/slab.h>
83406 #include <linux/mount.h>
83407 #include <linux/magic.h>
83408 +#include <linux/grsecurity.h>
83409
83410 #include <asm/uaccess.h>
83411
83412 #include "internal.h"
83413
83414 +#ifdef CONFIG_PROC_SYSCTL
83415 +extern const struct inode_operations proc_sys_inode_operations;
83416 +extern const struct inode_operations proc_sys_dir_operations;
83417 +#endif
83418 +
83419 static void proc_evict_inode(struct inode *inode)
83420 {
83421 struct proc_dir_entry *de;
83422 @@ -48,6 +54,13 @@ static void proc_evict_inode(struct inode *inode)
83423 RCU_INIT_POINTER(PROC_I(inode)->sysctl, NULL);
83424 sysctl_head_put(head);
83425 }
83426 +
83427 +#ifdef CONFIG_PROC_SYSCTL
83428 + if (inode->i_op == &proc_sys_inode_operations ||
83429 + inode->i_op == &proc_sys_dir_operations)
83430 + gr_handle_delete(inode->i_ino, inode->i_sb->s_dev);
83431 +#endif
83432 +
83433 }
83434
83435 static struct kmem_cache * proc_inode_cachep;
83436 @@ -429,7 +442,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
83437 if (de->mode) {
83438 inode->i_mode = de->mode;
83439 inode->i_uid = de->uid;
83440 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83441 + inode->i_gid = grsec_proc_gid;
83442 +#else
83443 inode->i_gid = de->gid;
83444 +#endif
83445 }
83446 if (de->size)
83447 inode->i_size = de->size;
83448 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
83449 index aa27810..9f2d3b2 100644
83450 --- a/fs/proc/internal.h
83451 +++ b/fs/proc/internal.h
83452 @@ -47,9 +47,10 @@ struct proc_dir_entry {
83453 struct completion *pde_unload_completion;
83454 struct list_head pde_openers; /* who did ->open, but not ->release */
83455 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
83456 + u8 restricted; /* a directory in /proc/net that should be restricted via GRKERNSEC_PROC */
83457 u8 namelen;
83458 char name[];
83459 -};
83460 +} __randomize_layout;
83461
83462 union proc_op {
83463 int (*proc_get_link)(struct dentry *, struct path *);
83464 @@ -67,7 +68,7 @@ struct proc_inode {
83465 struct ctl_table *sysctl_entry;
83466 const struct proc_ns_operations *ns_ops;
83467 struct inode vfs_inode;
83468 -};
83469 +} __randomize_layout;
83470
83471 /*
83472 * General functions
83473 @@ -155,6 +156,10 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
83474 struct pid *, struct task_struct *);
83475 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
83476 struct pid *, struct task_struct *);
83477 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
83478 +extern int proc_pid_ipaddr(struct seq_file *, struct pid_namespace *,
83479 + struct pid *, struct task_struct *);
83480 +#endif
83481
83482 /*
83483 * base.c
83484 @@ -179,9 +184,11 @@ extern bool proc_fill_cache(struct file *, struct dir_context *, const char *, i
83485 * generic.c
83486 */
83487 extern struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
83488 +extern struct dentry *proc_lookup_restrict(struct inode *, struct dentry *, unsigned int);
83489 extern struct dentry *proc_lookup_de(struct proc_dir_entry *, struct inode *,
83490 struct dentry *);
83491 extern int proc_readdir(struct file *, struct dir_context *);
83492 +extern int proc_readdir_restrict(struct file *, struct dir_context *);
83493 extern int proc_readdir_de(struct proc_dir_entry *, struct file *, struct dir_context *);
83494
83495 static inline struct proc_dir_entry *pde_get(struct proc_dir_entry *pde)
83496 diff --git a/fs/proc/interrupts.c b/fs/proc/interrupts.c
83497 index a352d57..cb94a5c 100644
83498 --- a/fs/proc/interrupts.c
83499 +++ b/fs/proc/interrupts.c
83500 @@ -47,7 +47,11 @@ static const struct file_operations proc_interrupts_operations = {
83501
83502 static int __init proc_interrupts_init(void)
83503 {
83504 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83505 + proc_create_grsec("interrupts", 0, NULL, &proc_interrupts_operations);
83506 +#else
83507 proc_create("interrupts", 0, NULL, &proc_interrupts_operations);
83508 +#endif
83509 return 0;
83510 }
83511 fs_initcall(proc_interrupts_init);
83512 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
83513 index 92e6726..a600d4fa 100644
83514 --- a/fs/proc/kcore.c
83515 +++ b/fs/proc/kcore.c
83516 @@ -483,9 +483,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83517 * the addresses in the elf_phdr on our list.
83518 */
83519 start = kc_offset_to_vaddr(*fpos - elf_buflen);
83520 - if ((tsz = (PAGE_SIZE - (start & ~PAGE_MASK))) > buflen)
83521 + tsz = PAGE_SIZE - (start & ~PAGE_MASK);
83522 + if (tsz > buflen)
83523 tsz = buflen;
83524 -
83525 +
83526 while (buflen) {
83527 struct kcore_list *m;
83528
83529 @@ -515,19 +516,20 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83530 } else {
83531 if (kern_addr_valid(start)) {
83532 unsigned long n;
83533 + char *elf_buf;
83534 + mm_segment_t oldfs;
83535
83536 - n = copy_to_user(buffer, (char *)start, tsz);
83537 - /*
83538 - * We cannot distinguish between fault on source
83539 - * and fault on destination. When this happens
83540 - * we clear too and hope it will trigger the
83541 - * EFAULT again.
83542 - */
83543 - if (n) {
83544 - if (clear_user(buffer + tsz - n,
83545 - n))
83546 - return -EFAULT;
83547 - }
83548 + elf_buf = kzalloc(tsz, GFP_KERNEL);
83549 + if (!elf_buf)
83550 + return -ENOMEM;
83551 + oldfs = get_fs();
83552 + set_fs(KERNEL_DS);
83553 + n = __copy_from_user(elf_buf, (const void __user *)start, tsz);
83554 + set_fs(oldfs);
83555 + n = copy_to_user(buffer, elf_buf, tsz);
83556 + kfree(elf_buf);
83557 + if (n)
83558 + return -EFAULT;
83559 } else {
83560 if (clear_user(buffer, tsz))
83561 return -EFAULT;
83562 @@ -547,6 +549,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83563
83564 static int open_kcore(struct inode *inode, struct file *filp)
83565 {
83566 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
83567 + return -EPERM;
83568 +#endif
83569 if (!capable(CAP_SYS_RAWIO))
83570 return -EPERM;
83571 if (kcore_need_update)
83572 @@ -580,7 +585,7 @@ static int __meminit kcore_callback(struct notifier_block *self,
83573 return NOTIFY_OK;
83574 }
83575
83576 -static struct notifier_block kcore_callback_nb __meminitdata = {
83577 +static struct notifier_block kcore_callback_nb __meminitconst = {
83578 .notifier_call = kcore_callback,
83579 .priority = 0,
83580 };
83581 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
83582 index d3ebf2e..abe1823 100644
83583 --- a/fs/proc/meminfo.c
83584 +++ b/fs/proc/meminfo.c
83585 @@ -27,7 +27,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83586 {
83587 struct sysinfo i;
83588 unsigned long committed;
83589 - struct vmalloc_info vmi;
83590 long cached;
83591 long available;
83592 unsigned long pagecache;
83593 @@ -49,8 +48,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83594 if (cached < 0)
83595 cached = 0;
83596
83597 - get_vmalloc_info(&vmi);
83598 -
83599 for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++)
83600 pages[lru] = global_page_state(NR_LRU_BASE + lru);
83601
83602 @@ -191,10 +188,10 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83603 K(vm_commit_limit()),
83604 K(committed),
83605 (unsigned long)VMALLOC_TOTAL >> 10,
83606 - vmi.used >> 10,
83607 - vmi.largest_chunk >> 10
83608 + 0ul, // used to be vmalloc 'used'
83609 + 0ul // used to be vmalloc 'largest_chunk'
83610 #ifdef CONFIG_MEMORY_FAILURE
83611 - , atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83612 + , atomic_long_read_unchecked(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83613 #endif
83614 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
83615 , K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
83616 diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c
83617 index f6e8354..1b0ea4a 100644
83618 --- a/fs/proc/namespaces.c
83619 +++ b/fs/proc/namespaces.c
83620 @@ -42,7 +42,7 @@ static const char *proc_ns_follow_link(struct dentry *dentry, void **cookie)
83621 if (!task)
83622 return error;
83623
83624 - if (ptrace_may_access(task, PTRACE_MODE_READ)) {
83625 + if (ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) {
83626 error = ns_get_path(&ns_path, task, ns_ops);
83627 if (!error)
83628 nd_jump_link(&ns_path);
83629 @@ -63,7 +63,7 @@ static int proc_ns_readlink(struct dentry *dentry, char __user *buffer, int bufl
83630 if (!task)
83631 return res;
83632
83633 - if (ptrace_may_access(task, PTRACE_MODE_READ)) {
83634 + if (ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) {
83635 res = ns_get_name(name, sizeof(name), task, ns_ops);
83636 if (res >= 0)
83637 res = readlink_copy(buffer, buflen, name);
83638 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
83639 index f8595e8..e0d13cbd 100644
83640 --- a/fs/proc/nommu.c
83641 +++ b/fs/proc/nommu.c
83642 @@ -64,7 +64,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
83643
83644 if (file) {
83645 seq_pad(m, ' ');
83646 - seq_file_path(m, file, "");
83647 + seq_file_path(m, file, "\n\\");
83648 }
83649
83650 seq_putc(m, '\n');
83651 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
83652 index 350984a..0fb02a9 100644
83653 --- a/fs/proc/proc_net.c
83654 +++ b/fs/proc/proc_net.c
83655 @@ -23,9 +23,27 @@
83656 #include <linux/nsproxy.h>
83657 #include <net/net_namespace.h>
83658 #include <linux/seq_file.h>
83659 +#include <linux/grsecurity.h>
83660
83661 #include "internal.h"
83662
83663 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83664 +static struct seq_operations *ipv6_seq_ops_addr;
83665 +
83666 +void register_ipv6_seq_ops_addr(struct seq_operations *addr)
83667 +{
83668 + ipv6_seq_ops_addr = addr;
83669 +}
83670 +
83671 +void unregister_ipv6_seq_ops_addr(void)
83672 +{
83673 + ipv6_seq_ops_addr = NULL;
83674 +}
83675 +
83676 +EXPORT_SYMBOL_GPL(register_ipv6_seq_ops_addr);
83677 +EXPORT_SYMBOL_GPL(unregister_ipv6_seq_ops_addr);
83678 +#endif
83679 +
83680 static inline struct net *PDE_NET(struct proc_dir_entry *pde)
83681 {
83682 return pde->parent->data;
83683 @@ -36,6 +54,8 @@ static struct net *get_proc_net(const struct inode *inode)
83684 return maybe_get_net(PDE_NET(PDE(inode)));
83685 }
83686
83687 +extern const struct seq_operations dev_seq_ops;
83688 +
83689 int seq_open_net(struct inode *ino, struct file *f,
83690 const struct seq_operations *ops, int size)
83691 {
83692 @@ -44,6 +64,14 @@ int seq_open_net(struct inode *ino, struct file *f,
83693
83694 BUG_ON(size < sizeof(*p));
83695
83696 + /* only permit access to /proc/net/dev */
83697 + if (
83698 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83699 + ops != ipv6_seq_ops_addr &&
83700 +#endif
83701 + ops != &dev_seq_ops && gr_proc_is_restricted())
83702 + return -EACCES;
83703 +
83704 net = get_proc_net(ino);
83705 if (net == NULL)
83706 return -ENXIO;
83707 @@ -66,6 +94,9 @@ int single_open_net(struct inode *inode, struct file *file,
83708 int err;
83709 struct net *net;
83710
83711 + if (gr_proc_is_restricted())
83712 + return -EACCES;
83713 +
83714 err = -ENXIO;
83715 net = get_proc_net(inode);
83716 if (net == NULL)
83717 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
83718 index fdda62e..cd7c75f 100644
83719 --- a/fs/proc/proc_sysctl.c
83720 +++ b/fs/proc/proc_sysctl.c
83721 @@ -11,13 +11,21 @@
83722 #include <linux/namei.h>
83723 #include <linux/mm.h>
83724 #include <linux/module.h>
83725 +#include <linux/nsproxy.h>
83726 +#ifdef CONFIG_GRKERNSEC
83727 +#include <net/net_namespace.h>
83728 +#endif
83729 #include "internal.h"
83730
83731 +extern int gr_handle_chroot_sysctl(const int op);
83732 +extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
83733 + const int op);
83734 +
83735 static const struct dentry_operations proc_sys_dentry_operations;
83736 static const struct file_operations proc_sys_file_operations;
83737 -static const struct inode_operations proc_sys_inode_operations;
83738 +const struct inode_operations proc_sys_inode_operations;
83739 static const struct file_operations proc_sys_dir_file_operations;
83740 -static const struct inode_operations proc_sys_dir_operations;
83741 +const struct inode_operations proc_sys_dir_operations;
83742
83743 /* Support for permanently empty directories */
83744
83745 @@ -32,13 +40,17 @@ static bool is_empty_dir(struct ctl_table_header *head)
83746
83747 static void set_empty_dir(struct ctl_dir *dir)
83748 {
83749 - dir->header.ctl_table[0].child = sysctl_mount_point;
83750 + pax_open_kernel();
83751 + *(const void **)&dir->header.ctl_table[0].child = sysctl_mount_point;
83752 + pax_close_kernel();
83753 }
83754
83755 static void clear_empty_dir(struct ctl_dir *dir)
83756
83757 {
83758 - dir->header.ctl_table[0].child = NULL;
83759 + pax_open_kernel();
83760 + *(void **)&dir->header.ctl_table[0].child = NULL;
83761 + pax_close_kernel();
83762 }
83763
83764 void proc_sys_poll_notify(struct ctl_table_poll *poll)
83765 @@ -504,6 +516,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
83766
83767 err = NULL;
83768 d_set_d_op(dentry, &proc_sys_dentry_operations);
83769 +
83770 + gr_handle_proc_create(dentry, inode);
83771 +
83772 d_add(dentry, inode);
83773
83774 out:
83775 @@ -519,6 +534,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83776 struct inode *inode = file_inode(filp);
83777 struct ctl_table_header *head = grab_header(inode);
83778 struct ctl_table *table = PROC_I(inode)->sysctl_entry;
83779 + int op = write ? MAY_WRITE : MAY_READ;
83780 ssize_t error;
83781 size_t res;
83782
83783 @@ -530,7 +546,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83784 * and won't be until we finish.
83785 */
83786 error = -EPERM;
83787 - if (sysctl_perm(head, table, write ? MAY_WRITE : MAY_READ))
83788 + if (sysctl_perm(head, table, op))
83789 goto out;
83790
83791 /* if that can happen at all, it should be -EINVAL, not -EISDIR */
83792 @@ -538,6 +554,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83793 if (!table->proc_handler)
83794 goto out;
83795
83796 +#ifdef CONFIG_GRKERNSEC
83797 + error = -EPERM;
83798 + if (gr_handle_chroot_sysctl(op))
83799 + goto out;
83800 + dget(filp->f_path.dentry);
83801 + if (gr_handle_sysctl_mod(filp->f_path.dentry->d_parent->d_name.name, table->procname, op)) {
83802 + dput(filp->f_path.dentry);
83803 + goto out;
83804 + }
83805 + dput(filp->f_path.dentry);
83806 + if (!gr_acl_handle_open(filp->f_path.dentry, filp->f_path.mnt, op))
83807 + goto out;
83808 + if (write) {
83809 + if (current->nsproxy->net_ns != table->extra2) {
83810 + if (!capable(CAP_SYS_ADMIN))
83811 + goto out;
83812 + } else if (!ns_capable(current->nsproxy->net_ns->user_ns, CAP_NET_ADMIN))
83813 + goto out;
83814 + }
83815 +#endif
83816 +
83817 /* careful: calling conventions are nasty here */
83818 res = count;
83819 error = table->proc_handler(table, write, buf, &res, ppos);
83820 @@ -635,6 +672,9 @@ static bool proc_sys_fill_cache(struct file *file,
83821 return false;
83822 } else {
83823 d_set_d_op(child, &proc_sys_dentry_operations);
83824 +
83825 + gr_handle_proc_create(child, inode);
83826 +
83827 d_add(child, inode);
83828 }
83829 } else {
83830 @@ -678,6 +718,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
83831 if ((*pos)++ < ctx->pos)
83832 return true;
83833
83834 + if (!gr_acl_handle_hidden_file(file->f_path.dentry, file->f_path.mnt))
83835 + return 0;
83836 +
83837 if (unlikely(S_ISLNK(table->mode)))
83838 res = proc_sys_link_fill_cache(file, ctx, head, table);
83839 else
83840 @@ -771,6 +814,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
83841 if (IS_ERR(head))
83842 return PTR_ERR(head);
83843
83844 + if (table && !gr_acl_handle_hidden_file(dentry, mnt))
83845 + return -ENOENT;
83846 +
83847 generic_fillattr(inode, stat);
83848 if (table)
83849 stat->mode = (stat->mode & S_IFMT) | table->mode;
83850 @@ -793,13 +839,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
83851 .llseek = generic_file_llseek,
83852 };
83853
83854 -static const struct inode_operations proc_sys_inode_operations = {
83855 +const struct inode_operations proc_sys_inode_operations = {
83856 .permission = proc_sys_permission,
83857 .setattr = proc_sys_setattr,
83858 .getattr = proc_sys_getattr,
83859 };
83860
83861 -static const struct inode_operations proc_sys_dir_operations = {
83862 +const struct inode_operations proc_sys_dir_operations = {
83863 .lookup = proc_sys_lookup,
83864 .permission = proc_sys_permission,
83865 .setattr = proc_sys_setattr,
83866 @@ -876,7 +922,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
83867 static struct ctl_dir *new_dir(struct ctl_table_set *set,
83868 const char *name, int namelen)
83869 {
83870 - struct ctl_table *table;
83871 + ctl_table_no_const *table;
83872 struct ctl_dir *new;
83873 struct ctl_node *node;
83874 char *new_name;
83875 @@ -888,7 +934,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
83876 return NULL;
83877
83878 node = (struct ctl_node *)(new + 1);
83879 - table = (struct ctl_table *)(node + 1);
83880 + table = (ctl_table_no_const *)(node + 1);
83881 new_name = (char *)(table + 2);
83882 memcpy(new_name, name, namelen);
83883 new_name[namelen] = '\0';
83884 @@ -1057,7 +1103,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
83885 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
83886 struct ctl_table_root *link_root)
83887 {
83888 - struct ctl_table *link_table, *entry, *link;
83889 + ctl_table_no_const *link_table, *link;
83890 + struct ctl_table *entry;
83891 struct ctl_table_header *links;
83892 struct ctl_node *node;
83893 char *link_name;
83894 @@ -1080,7 +1127,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
83895 return NULL;
83896
83897 node = (struct ctl_node *)(links + 1);
83898 - link_table = (struct ctl_table *)(node + nr_entries);
83899 + link_table = (ctl_table_no_const *)(node + nr_entries);
83900 link_name = (char *)&link_table[nr_entries + 1];
83901
83902 for (link = link_table, entry = table; entry->procname; link++, entry++) {
83903 @@ -1328,8 +1375,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83904 struct ctl_table_header ***subheader, struct ctl_table_set *set,
83905 struct ctl_table *table)
83906 {
83907 - struct ctl_table *ctl_table_arg = NULL;
83908 - struct ctl_table *entry, *files;
83909 + ctl_table_no_const *ctl_table_arg = NULL, *files = NULL;
83910 + struct ctl_table *entry;
83911 int nr_files = 0;
83912 int nr_dirs = 0;
83913 int err = -ENOMEM;
83914 @@ -1341,10 +1388,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83915 nr_files++;
83916 }
83917
83918 - files = table;
83919 /* If there are mixed files and directories we need a new table */
83920 if (nr_dirs && nr_files) {
83921 - struct ctl_table *new;
83922 + ctl_table_no_const *new;
83923 files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
83924 GFP_KERNEL);
83925 if (!files)
83926 @@ -1362,7 +1408,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83927 /* Register everything except a directory full of subdirectories */
83928 if (nr_files || !nr_dirs) {
83929 struct ctl_table_header *header;
83930 - header = __register_sysctl_table(set, path, files);
83931 + header = __register_sysctl_table(set, path, files ? files : table);
83932 if (!header) {
83933 kfree(ctl_table_arg);
83934 goto out;
83935 diff --git a/fs/proc/root.c b/fs/proc/root.c
83936 index 361ab4e..9720b97 100644
83937 --- a/fs/proc/root.c
83938 +++ b/fs/proc/root.c
83939 @@ -187,7 +187,15 @@ void __init proc_root_init(void)
83940 proc_create_mount_point("openprom");
83941 #endif
83942 proc_tty_init();
83943 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83944 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83945 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR, NULL);
83946 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83947 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
83948 +#endif
83949 +#else
83950 proc_mkdir("bus", NULL);
83951 +#endif
83952 proc_sys_init();
83953 }
83954
83955 diff --git a/fs/proc/stat.c b/fs/proc/stat.c
83956 index 510413eb..34d9a8c 100644
83957 --- a/fs/proc/stat.c
83958 +++ b/fs/proc/stat.c
83959 @@ -11,6 +11,7 @@
83960 #include <linux/irqnr.h>
83961 #include <linux/cputime.h>
83962 #include <linux/tick.h>
83963 +#include <linux/grsecurity.h>
83964
83965 #ifndef arch_irq_stat_cpu
83966 #define arch_irq_stat_cpu(cpu) 0
83967 @@ -87,6 +88,18 @@ static int show_stat(struct seq_file *p, void *v)
83968 u64 sum_softirq = 0;
83969 unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
83970 struct timespec boottime;
83971 + int unrestricted = 1;
83972 +
83973 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83974 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83975 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
83976 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83977 + && !in_group_p(grsec_proc_gid)
83978 +#endif
83979 + )
83980 + unrestricted = 0;
83981 +#endif
83982 +#endif
83983
83984 user = nice = system = idle = iowait =
83985 irq = softirq = steal = 0;
83986 @@ -99,23 +112,25 @@ static int show_stat(struct seq_file *p, void *v)
83987 nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
83988 system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
83989 idle += get_idle_time(i);
83990 - iowait += get_iowait_time(i);
83991 - irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
83992 - softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
83993 - steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
83994 - guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
83995 - guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
83996 - sum += kstat_cpu_irqs_sum(i);
83997 - sum += arch_irq_stat_cpu(i);
83998 + if (unrestricted) {
83999 + iowait += get_iowait_time(i);
84000 + irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84001 + softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84002 + steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84003 + guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84004 + guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84005 + sum += kstat_cpu_irqs_sum(i);
84006 + sum += arch_irq_stat_cpu(i);
84007 + for (j = 0; j < NR_SOFTIRQS; j++) {
84008 + unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
84009
84010 - for (j = 0; j < NR_SOFTIRQS; j++) {
84011 - unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
84012 -
84013 - per_softirq_sums[j] += softirq_stat;
84014 - sum_softirq += softirq_stat;
84015 + per_softirq_sums[j] += softirq_stat;
84016 + sum_softirq += softirq_stat;
84017 + }
84018 }
84019 }
84020 - sum += arch_irq_stat();
84021 + if (unrestricted)
84022 + sum += arch_irq_stat();
84023
84024 seq_puts(p, "cpu ");
84025 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
84026 @@ -136,12 +151,14 @@ static int show_stat(struct seq_file *p, void *v)
84027 nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
84028 system = kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
84029 idle = get_idle_time(i);
84030 - iowait = get_iowait_time(i);
84031 - irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84032 - softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84033 - steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84034 - guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84035 - guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84036 + if (unrestricted) {
84037 + iowait = get_iowait_time(i);
84038 + irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84039 + softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84040 + steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84041 + guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84042 + guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84043 + }
84044 seq_printf(p, "cpu%d", i);
84045 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
84046 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(nice));
84047 @@ -159,7 +176,7 @@ static int show_stat(struct seq_file *p, void *v)
84048
84049 /* sum again ? it could be updated? */
84050 for_each_irq_nr(j)
84051 - seq_put_decimal_ull(p, ' ', kstat_irqs_usr(j));
84052 + seq_put_decimal_ull(p, ' ', unrestricted ? kstat_irqs_usr(j) : 0ULL);
84053
84054 seq_printf(p,
84055 "\nctxt %llu\n"
84056 @@ -167,11 +184,11 @@ static int show_stat(struct seq_file *p, void *v)
84057 "processes %lu\n"
84058 "procs_running %lu\n"
84059 "procs_blocked %lu\n",
84060 - nr_context_switches(),
84061 + unrestricted ? nr_context_switches() : 0ULL,
84062 (unsigned long)jif,
84063 - total_forks,
84064 - nr_running(),
84065 - nr_iowait());
84066 + unrestricted ? total_forks : 0UL,
84067 + unrestricted ? nr_running() : 0UL,
84068 + unrestricted ? nr_iowait() : 0UL);
84069
84070 seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
84071
84072 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
84073 index e2d46ad..f179260 100644
84074 --- a/fs/proc/task_mmu.c
84075 +++ b/fs/proc/task_mmu.c
84076 @@ -14,12 +14,19 @@
84077 #include <linux/swapops.h>
84078 #include <linux/mmu_notifier.h>
84079 #include <linux/page_idle.h>
84080 +#include <linux/grsecurity.h>
84081
84082 #include <asm/elf.h>
84083 #include <asm/uaccess.h>
84084 #include <asm/tlbflush.h>
84085 #include "internal.h"
84086
84087 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84088 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
84089 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
84090 + _mm->pax_flags & MF_PAX_SEGMEXEC))
84091 +#endif
84092 +
84093 void task_mem(struct seq_file *m, struct mm_struct *mm)
84094 {
84095 unsigned long data, text, lib, swap, ptes, pmds;
84096 @@ -58,8 +65,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84097 "VmLib:\t%8lu kB\n"
84098 "VmPTE:\t%8lu kB\n"
84099 "VmPMD:\t%8lu kB\n"
84100 - "VmSwap:\t%8lu kB\n",
84101 - hiwater_vm << (PAGE_SHIFT-10),
84102 + "VmSwap:\t%8lu kB\n"
84103 +
84104 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
84105 + "CsBase:\t%8lx\nCsLim:\t%8lx\n"
84106 +#endif
84107 +
84108 + ,hiwater_vm << (PAGE_SHIFT-10),
84109 total_vm << (PAGE_SHIFT-10),
84110 mm->locked_vm << (PAGE_SHIFT-10),
84111 mm->pinned_vm << (PAGE_SHIFT-10),
84112 @@ -69,7 +81,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84113 mm->stack_vm << (PAGE_SHIFT-10), text, lib,
84114 ptes >> 10,
84115 pmds >> 10,
84116 - swap << (PAGE_SHIFT-10));
84117 + swap << (PAGE_SHIFT-10)
84118 +
84119 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
84120 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84121 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_base
84122 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_limit
84123 +#else
84124 + , mm->context.user_cs_base
84125 + , mm->context.user_cs_limit
84126 +#endif
84127 +#endif
84128 +
84129 + );
84130 }
84131
84132 unsigned long task_vsize(struct mm_struct *mm)
84133 @@ -286,13 +310,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84134 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
84135 }
84136
84137 - /* We don't show the stack guard page in /proc/maps */
84138 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84139 + start = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_start;
84140 + end = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_end;
84141 +#else
84142 start = vma->vm_start;
84143 - if (stack_guard_page_start(vma, start))
84144 - start += PAGE_SIZE;
84145 end = vma->vm_end;
84146 - if (stack_guard_page_end(vma, end))
84147 - end -= PAGE_SIZE;
84148 +#endif
84149
84150 seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
84151 seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
84152 @@ -302,7 +326,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84153 flags & VM_WRITE ? 'w' : '-',
84154 flags & VM_EXEC ? 'x' : '-',
84155 flags & VM_MAYSHARE ? 's' : 'p',
84156 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84157 + PAX_RAND_FLAGS(mm) ? 0UL : pgoff,
84158 +#else
84159 pgoff,
84160 +#endif
84161 MAJOR(dev), MINOR(dev), ino);
84162
84163 /*
84164 @@ -311,7 +339,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84165 */
84166 if (file) {
84167 seq_pad(m, ' ');
84168 - seq_file_path(m, file, "\n");
84169 + seq_file_path(m, file, "\n\\");
84170 goto done;
84171 }
84172
84173 @@ -342,8 +370,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84174 * Thread stack in /proc/PID/task/TID/maps or
84175 * the main process stack.
84176 */
84177 - if (!is_pid || (vma->vm_start <= mm->start_stack &&
84178 - vma->vm_end >= mm->start_stack)) {
84179 + if (!is_pid || (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
84180 + (vma->vm_start <= mm->start_stack &&
84181 + vma->vm_end >= mm->start_stack)) {
84182 name = "[stack]";
84183 } else {
84184 /* Thread stack in /proc/PID/maps */
84185 @@ -363,6 +392,12 @@ done:
84186
84187 static int show_map(struct seq_file *m, void *v, int is_pid)
84188 {
84189 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84190 + if (current->exec_id != m->exec_id) {
84191 + gr_log_badprocpid("maps");
84192 + return 0;
84193 + }
84194 +#endif
84195 show_map_vma(m, v, is_pid);
84196 m_cache_vma(m, v);
84197 return 0;
84198 @@ -598,6 +633,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
84199 [ilog2(VM_RAND_READ)] = "rr",
84200 [ilog2(VM_DONTCOPY)] = "dc",
84201 [ilog2(VM_DONTEXPAND)] = "de",
84202 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
84203 + [ilog2(VM_PAGEEXEC)] = "px",
84204 +#endif
84205 [ilog2(VM_ACCOUNT)] = "ac",
84206 [ilog2(VM_NORESERVE)] = "nr",
84207 [ilog2(VM_HUGETLB)] = "ht",
84208 @@ -635,9 +673,18 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
84209 .private = &mss,
84210 };
84211
84212 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84213 + if (current->exec_id != m->exec_id) {
84214 + gr_log_badprocpid("smaps");
84215 + return 0;
84216 + }
84217 +#endif
84218 memset(&mss, 0, sizeof mss);
84219 - /* mmap_sem is held in m_start */
84220 - walk_page_vma(vma, &smaps_walk);
84221 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84222 + if (!PAX_RAND_FLAGS(vma->vm_mm))
84223 +#endif
84224 + /* mmap_sem is held in m_start */
84225 + walk_page_vma(vma, &smaps_walk);
84226
84227 show_map_vma(m, vma, is_pid);
84228
84229 @@ -657,7 +704,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
84230 "KernelPageSize: %8lu kB\n"
84231 "MMUPageSize: %8lu kB\n"
84232 "Locked: %8lu kB\n",
84233 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84234 + PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : (vma->vm_end - vma->vm_start) >> 10,
84235 +#else
84236 (vma->vm_end - vma->vm_start) >> 10,
84237 +#endif
84238 mss.resident >> 10,
84239 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
84240 mss.shared_clean >> 10,
84241 @@ -1477,6 +1528,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
84242 char buffer[64];
84243 int nid;
84244
84245 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84246 + if (current->exec_id != m->exec_id) {
84247 + gr_log_badprocpid("numa_maps");
84248 + return 0;
84249 + }
84250 +#endif
84251 +
84252 if (!mm)
84253 return 0;
84254
84255 @@ -1491,11 +1549,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
84256 mpol_to_str(buffer, sizeof(buffer), proc_priv->task_mempolicy);
84257 }
84258
84259 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84260 + seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
84261 +#else
84262 seq_printf(m, "%08lx %s", vma->vm_start, buffer);
84263 +#endif
84264
84265 if (file) {
84266 seq_puts(m, " file=");
84267 - seq_file_path(m, file, "\n\t= ");
84268 + seq_file_path(m, file, "\n\t\\= ");
84269 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
84270 seq_puts(m, " heap");
84271 } else {
84272 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
84273 index e0d64c9..c44c96e 100644
84274 --- a/fs/proc/task_nommu.c
84275 +++ b/fs/proc/task_nommu.c
84276 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84277 else
84278 bytes += kobjsize(mm);
84279
84280 - if (current->fs && current->fs->users > 1)
84281 + if (current->fs && atomic_read(&current->fs->users) > 1)
84282 sbytes += kobjsize(current->fs);
84283 else
84284 bytes += kobjsize(current->fs);
84285 @@ -180,7 +180,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
84286
84287 if (file) {
84288 seq_pad(m, ' ');
84289 - seq_file_path(m, file, "");
84290 + seq_file_path(m, file, "\n\\");
84291 } else if (mm) {
84292 pid_t tid = pid_of_stack(priv, vma, is_pid);
84293
84294 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
84295 index 4e61388..1a2523d 100644
84296 --- a/fs/proc/vmcore.c
84297 +++ b/fs/proc/vmcore.c
84298 @@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
84299 nr_bytes = count;
84300
84301 /* If pfn is not ram, return zeros for sparse dump files */
84302 - if (pfn_is_ram(pfn) == 0)
84303 - memset(buf, 0, nr_bytes);
84304 - else {
84305 + if (pfn_is_ram(pfn) == 0) {
84306 + if (userbuf) {
84307 + if (clear_user((char __force_user *)buf, nr_bytes))
84308 + return -EFAULT;
84309 + } else
84310 + memset(buf, 0, nr_bytes);
84311 + } else {
84312 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
84313 offset, userbuf);
84314 if (tmp < 0)
84315 @@ -170,7 +174,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
84316 static int copy_to(void *target, void *src, size_t size, int userbuf)
84317 {
84318 if (userbuf) {
84319 - if (copy_to_user((char __user *) target, src, size))
84320 + if (copy_to_user((char __force_user *) target, src, size))
84321 return -EFAULT;
84322 } else {
84323 memcpy(target, src, size);
84324 @@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
84325 if (*fpos < m->offset + m->size) {
84326 tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
84327 start = m->paddr + *fpos - m->offset;
84328 - tmp = read_from_oldmem(buffer, tsz, &start, userbuf);
84329 + tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, userbuf);
84330 if (tmp < 0)
84331 return tmp;
84332 buflen -= tsz;
84333 @@ -253,7 +257,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
84334 static ssize_t read_vmcore(struct file *file, char __user *buffer,
84335 size_t buflen, loff_t *fpos)
84336 {
84337 - return __read_vmcore((__force char *) buffer, buflen, fpos, 1);
84338 + return __read_vmcore((__force_kernel char *) buffer, buflen, fpos, 1);
84339 }
84340
84341 /*
84342 diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h
84343 index d3fb2b6..43a8140 100644
84344 --- a/fs/qnx6/qnx6.h
84345 +++ b/fs/qnx6/qnx6.h
84346 @@ -74,7 +74,7 @@ enum {
84347 BYTESEX_BE,
84348 };
84349
84350 -static inline __u64 fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
84351 +static inline __u64 __intentional_overflow(-1) fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
84352 {
84353 if (sbi->s_bytesex == BYTESEX_LE)
84354 return le64_to_cpu((__force __le64)n);
84355 @@ -90,7 +90,7 @@ static inline __fs64 cpu_to_fs64(struct qnx6_sb_info *sbi, __u64 n)
84356 return (__force __fs64)cpu_to_be64(n);
84357 }
84358
84359 -static inline __u32 fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
84360 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
84361 {
84362 if (sbi->s_bytesex == BYTESEX_LE)
84363 return le32_to_cpu((__force __le32)n);
84364 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
84365 index bb2869f..d34ada8 100644
84366 --- a/fs/quota/netlink.c
84367 +++ b/fs/quota/netlink.c
84368 @@ -44,7 +44,7 @@ static struct genl_family quota_genl_family = {
84369 void quota_send_warning(struct kqid qid, dev_t dev,
84370 const char warntype)
84371 {
84372 - static atomic_t seq;
84373 + static atomic_unchecked_t seq;
84374 struct sk_buff *skb;
84375 void *msg_head;
84376 int ret;
84377 @@ -60,7 +60,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
84378 "VFS: Not enough memory to send quota warning.\n");
84379 return;
84380 }
84381 - msg_head = genlmsg_put(skb, 0, atomic_add_return(1, &seq),
84382 + msg_head = genlmsg_put(skb, 0, atomic_add_return_unchecked(1, &seq),
84383 &quota_genl_family, 0, QUOTA_NL_C_WARNING);
84384 if (!msg_head) {
84385 printk(KERN_ERR
84386 diff --git a/fs/read_write.c b/fs/read_write.c
84387 index 819ef3f..f07222d 100644
84388 --- a/fs/read_write.c
84389 +++ b/fs/read_write.c
84390 @@ -505,7 +505,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
84391
84392 old_fs = get_fs();
84393 set_fs(get_ds());
84394 - p = (__force const char __user *)buf;
84395 + p = (const char __force_user *)buf;
84396 if (count > MAX_RW_COUNT)
84397 count = MAX_RW_COUNT;
84398 ret = __vfs_write(file, p, count, pos);
84399 diff --git a/fs/readdir.c b/fs/readdir.c
84400 index ced6791..e0500c1 100644
84401 --- a/fs/readdir.c
84402 +++ b/fs/readdir.c
84403 @@ -18,6 +18,7 @@
84404 #include <linux/security.h>
84405 #include <linux/syscalls.h>
84406 #include <linux/unistd.h>
84407 +#include <linux/namei.h>
84408
84409 #include <asm/uaccess.h>
84410
84411 @@ -71,6 +72,7 @@ struct old_linux_dirent {
84412 struct readdir_callback {
84413 struct dir_context ctx;
84414 struct old_linux_dirent __user * dirent;
84415 + struct file * file;
84416 int result;
84417 };
84418
84419 @@ -89,6 +91,10 @@ static int fillonedir(struct dir_context *ctx, const char *name, int namlen,
84420 buf->result = -EOVERFLOW;
84421 return -EOVERFLOW;
84422 }
84423 +
84424 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84425 + return 0;
84426 +
84427 buf->result++;
84428 dirent = buf->dirent;
84429 if (!access_ok(VERIFY_WRITE, dirent,
84430 @@ -120,6 +126,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
84431 if (!f.file)
84432 return -EBADF;
84433
84434 + buf.file = f.file;
84435 error = iterate_dir(f.file, &buf.ctx);
84436 if (buf.result)
84437 error = buf.result;
84438 @@ -145,6 +152,7 @@ struct getdents_callback {
84439 struct dir_context ctx;
84440 struct linux_dirent __user * current_dir;
84441 struct linux_dirent __user * previous;
84442 + struct file * file;
84443 int count;
84444 int error;
84445 };
84446 @@ -167,6 +175,10 @@ static int filldir(struct dir_context *ctx, const char *name, int namlen,
84447 buf->error = -EOVERFLOW;
84448 return -EOVERFLOW;
84449 }
84450 +
84451 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84452 + return 0;
84453 +
84454 dirent = buf->previous;
84455 if (dirent) {
84456 if (__put_user(offset, &dirent->d_off))
84457 @@ -212,6 +224,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
84458 if (!f.file)
84459 return -EBADF;
84460
84461 + buf.file = f.file;
84462 error = iterate_dir(f.file, &buf.ctx);
84463 if (error >= 0)
84464 error = buf.error;
84465 @@ -230,6 +243,7 @@ struct getdents_callback64 {
84466 struct dir_context ctx;
84467 struct linux_dirent64 __user * current_dir;
84468 struct linux_dirent64 __user * previous;
84469 + struct file *file;
84470 int count;
84471 int error;
84472 };
84473 @@ -246,6 +260,10 @@ static int filldir64(struct dir_context *ctx, const char *name, int namlen,
84474 buf->error = -EINVAL; /* only used if we fail.. */
84475 if (reclen > buf->count)
84476 return -EINVAL;
84477 +
84478 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84479 + return 0;
84480 +
84481 dirent = buf->previous;
84482 if (dirent) {
84483 if (__put_user(offset, &dirent->d_off))
84484 @@ -293,13 +311,13 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
84485 if (!f.file)
84486 return -EBADF;
84487
84488 + buf.file = f.file;
84489 error = iterate_dir(f.file, &buf.ctx);
84490 if (error >= 0)
84491 error = buf.error;
84492 lastdirent = buf.previous;
84493 if (lastdirent) {
84494 - typeof(lastdirent->d_off) d_off = buf.ctx.pos;
84495 - if (__put_user(d_off, &lastdirent->d_off))
84496 + if (__put_user(buf.ctx.pos, &lastdirent->d_off))
84497 error = -EFAULT;
84498 else
84499 error = count - buf.count;
84500 diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
84501 index 9c02d96..6562c10 100644
84502 --- a/fs/reiserfs/do_balan.c
84503 +++ b/fs/reiserfs/do_balan.c
84504 @@ -1887,7 +1887,7 @@ void do_balance(struct tree_balance *tb, struct item_head *ih,
84505 return;
84506 }
84507
84508 - atomic_inc(&fs_generation(tb->tb_sb));
84509 + atomic_inc_unchecked(&fs_generation(tb->tb_sb));
84510 do_balance_starts(tb);
84511
84512 /*
84513 diff --git a/fs/reiserfs/item_ops.c b/fs/reiserfs/item_ops.c
84514 index aca73dd..e3c558d 100644
84515 --- a/fs/reiserfs/item_ops.c
84516 +++ b/fs/reiserfs/item_ops.c
84517 @@ -724,18 +724,18 @@ static void errcatch_print_vi(struct virtual_item *vi)
84518 }
84519
84520 static struct item_operations errcatch_ops = {
84521 - errcatch_bytes_number,
84522 - errcatch_decrement_key,
84523 - errcatch_is_left_mergeable,
84524 - errcatch_print_item,
84525 - errcatch_check_item,
84526 + .bytes_number = errcatch_bytes_number,
84527 + .decrement_key = errcatch_decrement_key,
84528 + .is_left_mergeable = errcatch_is_left_mergeable,
84529 + .print_item = errcatch_print_item,
84530 + .check_item = errcatch_check_item,
84531
84532 - errcatch_create_vi,
84533 - errcatch_check_left,
84534 - errcatch_check_right,
84535 - errcatch_part_size,
84536 - errcatch_unit_num,
84537 - errcatch_print_vi
84538 + .create_vi = errcatch_create_vi,
84539 + .check_left = errcatch_check_left,
84540 + .check_right = errcatch_check_right,
84541 + .part_size = errcatch_part_size,
84542 + .unit_num = errcatch_unit_num,
84543 + .print_vi = errcatch_print_vi
84544 };
84545
84546 #if ! (TYPE_STAT_DATA == 0 && TYPE_INDIRECT == 1 && TYPE_DIRECT == 2 && TYPE_DIRENTRY == 3)
84547 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
84548 index 621b9f3..af527fd 100644
84549 --- a/fs/reiserfs/procfs.c
84550 +++ b/fs/reiserfs/procfs.c
84551 @@ -114,7 +114,7 @@ static int show_super(struct seq_file *m, void *unused)
84552 "SMALL_TAILS " : "NO_TAILS ",
84553 replay_only(sb) ? "REPLAY_ONLY " : "",
84554 convert_reiserfs(sb) ? "CONV " : "",
84555 - atomic_read(&r->s_generation_counter),
84556 + atomic_read_unchecked(&r->s_generation_counter),
84557 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
84558 SF(s_do_balance), SF(s_unneeded_left_neighbor),
84559 SF(s_good_search_by_key_reada), SF(s_bmaps),
84560 diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
84561 index 2adcde1..7d27bc8 100644
84562 --- a/fs/reiserfs/reiserfs.h
84563 +++ b/fs/reiserfs/reiserfs.h
84564 @@ -580,7 +580,7 @@ struct reiserfs_sb_info {
84565 /* Comment? -Hans */
84566 wait_queue_head_t s_wait;
84567 /* increased by one every time the tree gets re-balanced */
84568 - atomic_t s_generation_counter;
84569 + atomic_unchecked_t s_generation_counter;
84570
84571 /* File system properties. Currently holds on-disk FS format */
84572 unsigned long s_properties;
84573 @@ -2300,7 +2300,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
84574 #define REISERFS_USER_MEM 1 /* user memory mode */
84575
84576 #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
84577 -#define get_generation(s) atomic_read (&fs_generation(s))
84578 +#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
84579 #define FILESYSTEM_CHANGED_TB(tb) (get_generation((tb)->tb_sb) != (tb)->fs_gen)
84580 #define __fs_changed(gen,s) (gen != get_generation (s))
84581 #define fs_changed(gen,s) \
84582 diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
84583 index 4a62fe8..5dc2f5f 100644
84584 --- a/fs/reiserfs/super.c
84585 +++ b/fs/reiserfs/super.c
84586 @@ -1870,6 +1870,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
84587 sbi->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
84588 sbi->s_mount_opt |= (1 << REISERFS_ERROR_RO);
84589 sbi->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
84590 +#ifdef CONFIG_REISERFS_FS_XATTR
84591 + /* turn on user xattrs by default */
84592 + sbi->s_mount_opt |= (1 << REISERFS_XATTRS_USER);
84593 +#endif
84594 /* no preallocation minimum, be smart in reiserfs_file_write instead */
84595 sbi->s_alloc_options.preallocmin = 0;
84596 /* Preallocate by 16 blocks (17-1) at once */
84597 diff --git a/fs/select.c b/fs/select.c
84598 index 0155473..29d751f 100644
84599 --- a/fs/select.c
84600 +++ b/fs/select.c
84601 @@ -20,6 +20,7 @@
84602 #include <linux/export.h>
84603 #include <linux/slab.h>
84604 #include <linux/poll.h>
84605 +#include <linux/security.h>
84606 #include <linux/personality.h> /* for STICKY_TIMEOUTS */
84607 #include <linux/file.h>
84608 #include <linux/fdtable.h>
84609 @@ -880,6 +881,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
84610 struct poll_list *walk = head;
84611 unsigned long todo = nfds;
84612
84613 + gr_learn_resource(current, RLIMIT_NOFILE, nfds, 1);
84614 if (nfds > rlimit(RLIMIT_NOFILE))
84615 return -EINVAL;
84616
84617 diff --git a/fs/seq_file.c b/fs/seq_file.c
84618 index 225586e..849e34f 100644
84619 --- a/fs/seq_file.c
84620 +++ b/fs/seq_file.c
84621 @@ -13,6 +13,8 @@
84622 #include <linux/cred.h>
84623 #include <linux/mm.h>
84624 #include <linux/printk.h>
84625 +#include <linux/sched.h>
84626 +#include <linux/grsecurity.h>
84627
84628 #include <asm/uaccess.h>
84629 #include <asm/page.h>
84630 @@ -30,9 +32,9 @@ static void *seq_buf_alloc(unsigned long size)
84631 * __GFP_NORETRY to avoid oom-killings with high-order allocations -
84632 * it's better to fall back to vmalloc() than to kill things.
84633 */
84634 - buf = kmalloc(size, GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN);
84635 + buf = kmalloc(size, GFP_KERNEL | GFP_USERCOPY | __GFP_NORETRY | __GFP_NOWARN);
84636 if (!buf && size > PAGE_SIZE)
84637 - buf = vmalloc(size);
84638 + buf = vmalloc_usercopy(size);
84639 return buf;
84640 }
84641
84642 @@ -69,6 +71,9 @@ int seq_open(struct file *file, const struct seq_operations *op)
84643 #ifdef CONFIG_USER_NS
84644 p->user_ns = file->f_cred->user_ns;
84645 #endif
84646 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84647 + p->exec_id = current->exec_id;
84648 +#endif
84649
84650 /*
84651 * Wrappers around seq_open(e.g. swaps_open) need to be
84652 @@ -91,6 +96,16 @@ int seq_open(struct file *file, const struct seq_operations *op)
84653 }
84654 EXPORT_SYMBOL(seq_open);
84655
84656 +
84657 +int seq_open_restrict(struct file *file, const struct seq_operations *op)
84658 +{
84659 + if (gr_proc_is_restricted())
84660 + return -EACCES;
84661 +
84662 + return seq_open(file, op);
84663 +}
84664 +EXPORT_SYMBOL(seq_open_restrict);
84665 +
84666 static int traverse(struct seq_file *m, loff_t offset)
84667 {
84668 loff_t pos = 0, index;
84669 @@ -162,7 +177,7 @@ Eoverflow:
84670 ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
84671 {
84672 struct seq_file *m = file->private_data;
84673 - size_t copied = 0;
84674 + ssize_t copied = 0;
84675 loff_t pos;
84676 size_t n;
84677 void *p;
84678 @@ -571,7 +586,7 @@ static void single_stop(struct seq_file *p, void *v)
84679 int single_open(struct file *file, int (*show)(struct seq_file *, void *),
84680 void *data)
84681 {
84682 - struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL);
84683 + seq_operations_no_const *op = kzalloc(sizeof(*op), GFP_KERNEL);
84684 int res = -ENOMEM;
84685
84686 if (op) {
84687 @@ -607,6 +622,17 @@ int single_open_size(struct file *file, int (*show)(struct seq_file *, void *),
84688 }
84689 EXPORT_SYMBOL(single_open_size);
84690
84691 +int single_open_restrict(struct file *file, int (*show)(struct seq_file *, void *),
84692 + void *data)
84693 +{
84694 + if (gr_proc_is_restricted())
84695 + return -EACCES;
84696 +
84697 + return single_open(file, show, data);
84698 +}
84699 +EXPORT_SYMBOL(single_open_restrict);
84700 +
84701 +
84702 int single_release(struct inode *inode, struct file *file)
84703 {
84704 const struct seq_operations *op = ((struct seq_file *)file->private_data)->op;
84705 diff --git a/fs/splice.c b/fs/splice.c
84706 index 5fc1e50..fcc355d 100644
84707 --- a/fs/splice.c
84708 +++ b/fs/splice.c
84709 @@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84710 pipe_lock(pipe);
84711
84712 for (;;) {
84713 - if (!pipe->readers) {
84714 + if (!atomic_read(&pipe->readers)) {
84715 send_sig(SIGPIPE, current, 0);
84716 if (!ret)
84717 ret = -EPIPE;
84718 @@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84719 page_nr++;
84720 ret += buf->len;
84721
84722 - if (pipe->files)
84723 + if (atomic_read(&pipe->files))
84724 do_wakeup = 1;
84725
84726 if (!--spd->nr_pages)
84727 @@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84728 do_wakeup = 0;
84729 }
84730
84731 - pipe->waiting_writers++;
84732 + atomic_inc(&pipe->waiting_writers);
84733 pipe_wait(pipe);
84734 - pipe->waiting_writers--;
84735 + atomic_dec(&pipe->waiting_writers);
84736 }
84737
84738 pipe_unlock(pipe);
84739 @@ -579,7 +579,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
84740 old_fs = get_fs();
84741 set_fs(get_ds());
84742 /* The cast to a user pointer is valid due to the set_fs() */
84743 - res = vfs_readv(file, (const struct iovec __user *)vec, vlen, &pos);
84744 + res = vfs_readv(file, (const struct iovec __force_user *)vec, vlen, &pos);
84745 set_fs(old_fs);
84746
84747 return res;
84748 @@ -594,7 +594,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
84749 old_fs = get_fs();
84750 set_fs(get_ds());
84751 /* The cast to a user pointer is valid due to the set_fs() */
84752 - res = vfs_write(file, (__force const char __user *)buf, count, &pos);
84753 + res = vfs_write(file, (const char __force_user *)buf, count, &pos);
84754 set_fs(old_fs);
84755
84756 return res;
84757 @@ -647,7 +647,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
84758 goto err;
84759
84760 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
84761 - vec[i].iov_base = (void __user *) page_address(page);
84762 + vec[i].iov_base = (void __force_user *) page_address(page);
84763 vec[i].iov_len = this_len;
84764 spd.pages[i] = page;
84765 spd.nr_pages++;
84766 @@ -786,7 +786,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84767 ops->release(pipe, buf);
84768 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84769 pipe->nrbufs--;
84770 - if (pipe->files)
84771 + if (atomic_read(&pipe->files))
84772 sd->need_wakeup = true;
84773 }
84774
84775 @@ -809,11 +809,18 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84776 */
84777 static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
84778 {
84779 + /*
84780 + * Check for signal early to make process killable when there are
84781 + * always buffers available
84782 + */
84783 + if (signal_pending(current))
84784 + return -ERESTARTSYS;
84785 +
84786 while (!pipe->nrbufs) {
84787 - if (!pipe->writers)
84788 + if (!atomic_read(&pipe->writers))
84789 return 0;
84790
84791 - if (!pipe->waiting_writers && sd->num_spliced)
84792 + if (!atomic_read(&pipe->waiting_writers) && sd->num_spliced)
84793 return 0;
84794
84795 if (sd->flags & SPLICE_F_NONBLOCK)
84796 @@ -884,6 +891,7 @@ ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd,
84797
84798 splice_from_pipe_begin(sd);
84799 do {
84800 + cond_resched();
84801 ret = splice_from_pipe_next(pipe, sd);
84802 if (ret > 0)
84803 ret = splice_from_pipe_feed(pipe, sd, actor);
84804 @@ -1028,7 +1036,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
84805 ops->release(pipe, buf);
84806 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84807 pipe->nrbufs--;
84808 - if (pipe->files)
84809 + if (atomic_read(&pipe->files))
84810 sd.need_wakeup = true;
84811 } else {
84812 buf->offset += ret;
84813 @@ -1188,7 +1196,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
84814 * out of the pipe right after the splice_to_pipe(). So set
84815 * PIPE_READERS appropriately.
84816 */
84817 - pipe->readers = 1;
84818 + atomic_set(&pipe->readers, 1);
84819
84820 current->splice_pipe = pipe;
84821 }
84822 @@ -1495,6 +1503,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
84823
84824 partial[buffers].offset = off;
84825 partial[buffers].len = plen;
84826 + partial[buffers].private = 0;
84827
84828 off = 0;
84829 len -= plen;
84830 @@ -1726,9 +1735,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84831 ret = -ERESTARTSYS;
84832 break;
84833 }
84834 - if (!pipe->writers)
84835 + if (!atomic_read(&pipe->writers))
84836 break;
84837 - if (!pipe->waiting_writers) {
84838 + if (!atomic_read(&pipe->waiting_writers)) {
84839 if (flags & SPLICE_F_NONBLOCK) {
84840 ret = -EAGAIN;
84841 break;
84842 @@ -1760,7 +1769,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84843 pipe_lock(pipe);
84844
84845 while (pipe->nrbufs >= pipe->buffers) {
84846 - if (!pipe->readers) {
84847 + if (!atomic_read(&pipe->readers)) {
84848 send_sig(SIGPIPE, current, 0);
84849 ret = -EPIPE;
84850 break;
84851 @@ -1773,9 +1782,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84852 ret = -ERESTARTSYS;
84853 break;
84854 }
84855 - pipe->waiting_writers++;
84856 + atomic_inc(&pipe->waiting_writers);
84857 pipe_wait(pipe);
84858 - pipe->waiting_writers--;
84859 + atomic_dec(&pipe->waiting_writers);
84860 }
84861
84862 pipe_unlock(pipe);
84863 @@ -1811,14 +1820,14 @@ retry:
84864 pipe_double_lock(ipipe, opipe);
84865
84866 do {
84867 - if (!opipe->readers) {
84868 + if (!atomic_read(&opipe->readers)) {
84869 send_sig(SIGPIPE, current, 0);
84870 if (!ret)
84871 ret = -EPIPE;
84872 break;
84873 }
84874
84875 - if (!ipipe->nrbufs && !ipipe->writers)
84876 + if (!ipipe->nrbufs && !atomic_read(&ipipe->writers))
84877 break;
84878
84879 /*
84880 @@ -1915,7 +1924,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
84881 pipe_double_lock(ipipe, opipe);
84882
84883 do {
84884 - if (!opipe->readers) {
84885 + if (!atomic_read(&opipe->readers)) {
84886 send_sig(SIGPIPE, current, 0);
84887 if (!ret)
84888 ret = -EPIPE;
84889 @@ -1960,7 +1969,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
84890 * return EAGAIN if we have the potential of some data in the
84891 * future, otherwise just return 0
84892 */
84893 - if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK))
84894 + if (!ret && atomic_read(&ipipe->waiting_writers) && (flags & SPLICE_F_NONBLOCK))
84895 ret = -EAGAIN;
84896
84897 pipe_unlock(ipipe);
84898 diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
84899 index e5e0ddf..09598c4 100644
84900 --- a/fs/squashfs/xattr.c
84901 +++ b/fs/squashfs/xattr.c
84902 @@ -46,8 +46,8 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84903 + msblk->xattr_table;
84904 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr);
84905 int count = squashfs_i(inode)->xattr_count;
84906 - size_t rest = buffer_size;
84907 - int err;
84908 + size_t used = 0;
84909 + ssize_t err;
84910
84911 /* check that the file system has xattrs */
84912 if (msblk->xattr_id_table == NULL)
84913 @@ -68,11 +68,11 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84914 name_size = le16_to_cpu(entry.size);
84915 handler = squashfs_xattr_handler(le16_to_cpu(entry.type));
84916 if (handler)
84917 - prefix_size = handler->list(d, buffer, rest, NULL,
84918 + prefix_size = handler->list(d, buffer, buffer ? buffer_size - used : 0, NULL,
84919 name_size, handler->flags);
84920 if (prefix_size) {
84921 if (buffer) {
84922 - if (prefix_size + name_size + 1 > rest) {
84923 + if (prefix_size + name_size + 1 > buffer_size - used) {
84924 err = -ERANGE;
84925 goto failed;
84926 }
84927 @@ -86,7 +86,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84928 buffer[name_size] = '\0';
84929 buffer += name_size + 1;
84930 }
84931 - rest -= prefix_size + name_size + 1;
84932 + used += prefix_size + name_size + 1;
84933 } else {
84934 /* no handler or insuffficient privileges, so skip */
84935 err = squashfs_read_metadata(sb, NULL, &start,
84936 @@ -107,7 +107,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84937 if (err < 0)
84938 goto failed;
84939 }
84940 - err = buffer_size - rest;
84941 + err = used;
84942
84943 failed:
84944 return err;
84945 diff --git a/fs/stat.c b/fs/stat.c
84946 index cccc1aa..7fe8951 100644
84947 --- a/fs/stat.c
84948 +++ b/fs/stat.c
84949 @@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
84950 stat->gid = inode->i_gid;
84951 stat->rdev = inode->i_rdev;
84952 stat->size = i_size_read(inode);
84953 - stat->atime = inode->i_atime;
84954 - stat->mtime = inode->i_mtime;
84955 + if (is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
84956 + stat->atime = inode->i_ctime;
84957 + stat->mtime = inode->i_ctime;
84958 + } else {
84959 + stat->atime = inode->i_atime;
84960 + stat->mtime = inode->i_mtime;
84961 + }
84962 stat->ctime = inode->i_ctime;
84963 stat->blksize = (1 << inode->i_blkbits);
84964 stat->blocks = inode->i_blocks;
84965 @@ -52,9 +57,16 @@ EXPORT_SYMBOL(generic_fillattr);
84966 int vfs_getattr_nosec(struct path *path, struct kstat *stat)
84967 {
84968 struct inode *inode = d_backing_inode(path->dentry);
84969 + int retval;
84970
84971 - if (inode->i_op->getattr)
84972 - return inode->i_op->getattr(path->mnt, path->dentry, stat);
84973 + if (inode->i_op->getattr) {
84974 + retval = inode->i_op->getattr(path->mnt, path->dentry, stat);
84975 + if (!retval && is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
84976 + stat->atime = stat->ctime;
84977 + stat->mtime = stat->ctime;
84978 + }
84979 + return retval;
84980 + }
84981
84982 generic_fillattr(inode, stat);
84983 return 0;
84984 diff --git a/fs/super.c b/fs/super.c
84985 index 954aeb8..fcf9154 100644
84986 --- a/fs/super.c
84987 +++ b/fs/super.c
84988 @@ -348,7 +348,8 @@ EXPORT_SYMBOL(deactivate_super);
84989 * called for superblocks not in rundown mode (== ones still on ->fs_supers
84990 * of their type), so increment of ->s_count is OK here.
84991 */
84992 -static int grab_super(struct super_block *s) __releases(sb_lock)
84993 +static int grab_super(struct super_block *s) __releases(&sb_lock);
84994 +static int grab_super(struct super_block *s)
84995 {
84996 s->s_count++;
84997 spin_unlock(&sb_lock);
84998 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
84999 index 94374e4..b5da3a1 100644
85000 --- a/fs/sysfs/dir.c
85001 +++ b/fs/sysfs/dir.c
85002 @@ -33,6 +33,10 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
85003 kfree(buf);
85004 }
85005
85006 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85007 +extern int grsec_enable_sysfs_restrict;
85008 +#endif
85009 +
85010 /**
85011 * sysfs_create_dir_ns - create a directory for an object with a namespace tag
85012 * @kobj: object we're creating directory for
85013 @@ -41,9 +45,16 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
85014 int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
85015 {
85016 struct kernfs_node *parent, *kn;
85017 + const char *name;
85018 + umode_t mode = S_IRWXU | S_IRUGO | S_IXUGO;
85019 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85020 + const char *parent_name;
85021 +#endif
85022
85023 BUG_ON(!kobj);
85024
85025 + name = kobject_name(kobj);
85026 +
85027 if (kobj->parent)
85028 parent = kobj->parent->sd;
85029 else
85030 @@ -52,11 +63,24 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
85031 if (!parent)
85032 return -ENOENT;
85033
85034 - kn = kernfs_create_dir_ns(parent, kobject_name(kobj),
85035 - S_IRWXU | S_IRUGO | S_IXUGO, kobj, ns);
85036 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85037 + parent_name = parent->name;
85038 + mode = S_IRWXU;
85039 +
85040 + if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
85041 + (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
85042 + (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse") || !strcmp(name, "ecryptfs"))) ||
85043 + (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
85044 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
85045 + if (!grsec_enable_sysfs_restrict)
85046 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
85047 +#endif
85048 +
85049 + kn = kernfs_create_dir_ns(parent, name,
85050 + mode, kobj, ns);
85051 if (IS_ERR(kn)) {
85052 if (PTR_ERR(kn) == -EEXIST)
85053 - sysfs_warn_dup(parent, kobject_name(kobj));
85054 + sysfs_warn_dup(parent, name);
85055 return PTR_ERR(kn);
85056 }
85057
85058 diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c
85059 index 590ad92..02fa1dc 100644
85060 --- a/fs/sysv/inode.c
85061 +++ b/fs/sysv/inode.c
85062 @@ -162,15 +162,8 @@ void sysv_set_inode(struct inode *inode, dev_t rdev)
85063 inode->i_fop = &sysv_dir_operations;
85064 inode->i_mapping->a_ops = &sysv_aops;
85065 } else if (S_ISLNK(inode->i_mode)) {
85066 - if (inode->i_blocks) {
85067 - inode->i_op = &sysv_symlink_inode_operations;
85068 - inode->i_mapping->a_ops = &sysv_aops;
85069 - } else {
85070 - inode->i_op = &simple_symlink_inode_operations;
85071 - inode->i_link = (char *)SYSV_I(inode)->i_data;
85072 - nd_terminate_link(inode->i_link, inode->i_size,
85073 - sizeof(SYSV_I(inode)->i_data) - 1);
85074 - }
85075 + inode->i_op = &sysv_symlink_inode_operations;
85076 + inode->i_mapping->a_ops = &sysv_aops;
85077 } else
85078 init_special_inode(inode, inode->i_mode, rdev);
85079 }
85080 diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
85081 index 6c21228..9afd5fe 100644
85082 --- a/fs/sysv/sysv.h
85083 +++ b/fs/sysv/sysv.h
85084 @@ -187,7 +187,7 @@ static inline u32 PDP_swab(u32 x)
85085 #endif
85086 }
85087
85088 -static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
85089 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
85090 {
85091 if (sbi->s_bytesex == BYTESEX_PDP)
85092 return PDP_swab((__force __u32)n);
85093 diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
85094 index cbc8d5d..56d2600 100644
85095 --- a/fs/tracefs/inode.c
85096 +++ b/fs/tracefs/inode.c
85097 @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = {
85098 static struct tracefs_dir_ops {
85099 int (*mkdir)(const char *name);
85100 int (*rmdir)(const char *name);
85101 -} tracefs_ops;
85102 +} __no_const tracefs_ops __read_only;
85103
85104 static char *get_dname(struct dentry *dentry)
85105 {
85106 @@ -490,8 +490,10 @@ struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *pare
85107 if (!dentry)
85108 return NULL;
85109
85110 - tracefs_ops.mkdir = mkdir;
85111 - tracefs_ops.rmdir = rmdir;
85112 + pax_open_kernel();
85113 + *(void **)&tracefs_ops.mkdir = mkdir;
85114 + *(void **)&tracefs_ops.rmdir = rmdir;
85115 + pax_close_kernel();
85116
85117 return dentry;
85118 }
85119 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
85120 index 71d1c25..084e2ad 100644
85121 --- a/fs/udf/misc.c
85122 +++ b/fs/udf/misc.c
85123 @@ -288,7 +288,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
85124
85125 u8 udf_tag_checksum(const struct tag *t)
85126 {
85127 - u8 *data = (u8 *)t;
85128 + const u8 *data = (const u8 *)t;
85129 u8 checksum = 0;
85130 int i;
85131 for (i = 0; i < sizeof(struct tag); ++i)
85132 diff --git a/fs/ufs/swab.h b/fs/ufs/swab.h
85133 index 8d974c4..b82f6ec 100644
85134 --- a/fs/ufs/swab.h
85135 +++ b/fs/ufs/swab.h
85136 @@ -22,7 +22,7 @@ enum {
85137 BYTESEX_BE
85138 };
85139
85140 -static inline u64
85141 +static inline u64 __intentional_overflow(-1)
85142 fs64_to_cpu(struct super_block *sbp, __fs64 n)
85143 {
85144 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
85145 @@ -40,7 +40,7 @@ cpu_to_fs64(struct super_block *sbp, u64 n)
85146 return (__force __fs64)cpu_to_be64(n);
85147 }
85148
85149 -static inline u32
85150 +static inline u32 __intentional_overflow(-1)
85151 fs32_to_cpu(struct super_block *sbp, __fs32 n)
85152 {
85153 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
85154 diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
85155 index 5031170..472208c 100644
85156 --- a/fs/userfaultfd.c
85157 +++ b/fs/userfaultfd.c
85158 @@ -426,7 +426,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file)
85159 struct userfaultfd_wake_range range = { .len = 0, };
85160 unsigned long new_flags;
85161
85162 - ACCESS_ONCE(ctx->released) = true;
85163 + ACCESS_ONCE_RW(ctx->released) = true;
85164
85165 /*
85166 * Flush page faults out of all CPUs. NOTE: all page faults
85167 diff --git a/fs/utimes.c b/fs/utimes.c
85168 index aa138d6..5f3a811 100644
85169 --- a/fs/utimes.c
85170 +++ b/fs/utimes.c
85171 @@ -1,6 +1,7 @@
85172 #include <linux/compiler.h>
85173 #include <linux/file.h>
85174 #include <linux/fs.h>
85175 +#include <linux/security.h>
85176 #include <linux/linkage.h>
85177 #include <linux/mount.h>
85178 #include <linux/namei.h>
85179 @@ -103,6 +104,12 @@ static int utimes_common(struct path *path, struct timespec *times)
85180 }
85181 }
85182 retry_deleg:
85183 +
85184 + if (!gr_acl_handle_utime(path->dentry, path->mnt)) {
85185 + error = -EACCES;
85186 + goto mnt_drop_write_and_out;
85187 + }
85188 +
85189 mutex_lock(&inode->i_mutex);
85190 error = notify_change(path->dentry, &newattrs, &delegated_inode);
85191 mutex_unlock(&inode->i_mutex);
85192 diff --git a/fs/xattr.c b/fs/xattr.c
85193 index 072fee1..9e497b0 100644
85194 --- a/fs/xattr.c
85195 +++ b/fs/xattr.c
85196 @@ -227,6 +227,27 @@ int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
85197 return rc;
85198 }
85199
85200 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
85201 +ssize_t
85202 +pax_getxattr(struct dentry *dentry, void *value, size_t size)
85203 +{
85204 + struct inode *inode = dentry->d_inode;
85205 + ssize_t error;
85206 +
85207 + error = inode_permission(inode, MAY_EXEC);
85208 + if (error)
85209 + return error;
85210 +
85211 + if (inode->i_op->getxattr)
85212 + error = inode->i_op->getxattr(dentry, XATTR_NAME_PAX_FLAGS, value, size);
85213 + else
85214 + error = -EOPNOTSUPP;
85215 +
85216 + return error;
85217 +}
85218 +EXPORT_SYMBOL(pax_getxattr);
85219 +#endif
85220 +
85221 ssize_t
85222 vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
85223 {
85224 @@ -319,7 +340,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
85225 * Extended attribute SET operations
85226 */
85227 static long
85228 -setxattr(struct dentry *d, const char __user *name, const void __user *value,
85229 +setxattr(struct path *path, const char __user *name, const void __user *value,
85230 size_t size, int flags)
85231 {
85232 int error;
85233 @@ -355,7 +376,12 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
85234 posix_acl_fix_xattr_from_user(kvalue, size);
85235 }
85236
85237 - error = vfs_setxattr(d, kname, kvalue, size, flags);
85238 + if (!gr_acl_handle_setxattr(path->dentry, path->mnt)) {
85239 + error = -EACCES;
85240 + goto out;
85241 + }
85242 +
85243 + error = vfs_setxattr(path->dentry, kname, kvalue, size, flags);
85244 out:
85245 if (vvalue)
85246 vfree(vvalue);
85247 @@ -376,7 +402,7 @@ retry:
85248 return error;
85249 error = mnt_want_write(path.mnt);
85250 if (!error) {
85251 - error = setxattr(path.dentry, name, value, size, flags);
85252 + error = setxattr(&path, name, value, size, flags);
85253 mnt_drop_write(path.mnt);
85254 }
85255 path_put(&path);
85256 @@ -412,7 +438,7 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
85257 audit_file(f.file);
85258 error = mnt_want_write_file(f.file);
85259 if (!error) {
85260 - error = setxattr(f.file->f_path.dentry, name, value, size, flags);
85261 + error = setxattr(&f.file->f_path, name, value, size, flags);
85262 mnt_drop_write_file(f.file);
85263 }
85264 fdput(f);
85265 @@ -598,7 +624,7 @@ SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
85266 * Extended attribute REMOVE operations
85267 */
85268 static long
85269 -removexattr(struct dentry *d, const char __user *name)
85270 +removexattr(struct path *path, const char __user *name)
85271 {
85272 int error;
85273 char kname[XATTR_NAME_MAX + 1];
85274 @@ -609,7 +635,10 @@ removexattr(struct dentry *d, const char __user *name)
85275 if (error < 0)
85276 return error;
85277
85278 - return vfs_removexattr(d, kname);
85279 + if (!gr_acl_handle_removexattr(path->dentry, path->mnt))
85280 + return -EACCES;
85281 +
85282 + return vfs_removexattr(path->dentry, kname);
85283 }
85284
85285 static int path_removexattr(const char __user *pathname,
85286 @@ -623,7 +652,7 @@ retry:
85287 return error;
85288 error = mnt_want_write(path.mnt);
85289 if (!error) {
85290 - error = removexattr(path.dentry, name);
85291 + error = removexattr(&path, name);
85292 mnt_drop_write(path.mnt);
85293 }
85294 path_put(&path);
85295 @@ -649,14 +678,16 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname,
85296 SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
85297 {
85298 struct fd f = fdget(fd);
85299 + struct path *path;
85300 int error = -EBADF;
85301
85302 if (!f.file)
85303 return error;
85304 + path = &f.file->f_path;
85305 audit_file(f.file);
85306 error = mnt_want_write_file(f.file);
85307 if (!error) {
85308 - error = removexattr(f.file->f_path.dentry, name);
85309 + error = removexattr(path, name);
85310 mnt_drop_write_file(f.file);
85311 }
85312 fdput(f);
85313 diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
85314 index 8e2010d..95549ab 100644
85315 --- a/fs/xfs/libxfs/xfs_bmap.c
85316 +++ b/fs/xfs/libxfs/xfs_bmap.c
85317 @@ -554,7 +554,7 @@ xfs_bmap_validate_ret(
85318
85319 #else
85320 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
85321 -#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
85322 +#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do { } while (0)
85323 #endif /* DEBUG */
85324
85325 /*
85326 diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
85327 index be43248..6bb4442 100644
85328 --- a/fs/xfs/libxfs/xfs_da_btree.c
85329 +++ b/fs/xfs/libxfs/xfs_da_btree.c
85330 @@ -2007,6 +2007,7 @@ xfs_da_grow_inode_int(
85331 struct xfs_inode *dp = args->dp;
85332 int w = args->whichfork;
85333 xfs_rfsblock_t nblks = dp->i_d.di_nblocks;
85334 + xfs_rfsblock_t nblocks;
85335 struct xfs_bmbt_irec map, *mapp;
85336 int nmap, error, got, i, mapi;
85337
85338 @@ -2075,7 +2076,8 @@ xfs_da_grow_inode_int(
85339 }
85340
85341 /* account for newly allocated blocks in reserved blocks total */
85342 - args->total -= dp->i_d.di_nblocks - nblks;
85343 + nblocks = dp->i_d.di_nblocks - nblks;
85344 + args->total -= nblocks;
85345
85346 out_free_map:
85347 if (mapp != &map)
85348 diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
85349 index a989a9c..db30c9a 100644
85350 --- a/fs/xfs/xfs_dir2_readdir.c
85351 +++ b/fs/xfs/xfs_dir2_readdir.c
85352 @@ -140,7 +140,12 @@ xfs_dir2_sf_getdents(
85353 ino = dp->d_ops->sf_get_ino(sfp, sfep);
85354 filetype = dp->d_ops->sf_get_ftype(sfep);
85355 ctx->pos = off & 0x7fffffff;
85356 - if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
85357 + if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
85358 + char name[sfep->namelen];
85359 + memcpy(name, sfep->name, sfep->namelen);
85360 + if (!dir_emit(ctx, name, sfep->namelen, ino, xfs_dir3_get_dtype(dp->i_mount, filetype)))
85361 + return 0;
85362 + } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
85363 xfs_dir3_get_dtype(dp->i_mount, filetype)))
85364 return 0;
85365 sfep = dp->d_ops->sf_nextentry(sfp, sfep);
85366 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
85367 index ea7d85a..6d4b24b 100644
85368 --- a/fs/xfs/xfs_ioctl.c
85369 +++ b/fs/xfs/xfs_ioctl.c
85370 @@ -120,7 +120,7 @@ xfs_find_handle(
85371 }
85372
85373 error = -EFAULT;
85374 - if (copy_to_user(hreq->ohandle, &handle, hsize) ||
85375 + if (hsize > sizeof handle || copy_to_user(hreq->ohandle, &handle, hsize) ||
85376 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
85377 goto out_put;
85378
85379 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
85380 index 85f883d..db6eecc 100644
85381 --- a/fs/xfs/xfs_linux.h
85382 +++ b/fs/xfs/xfs_linux.h
85383 @@ -211,7 +211,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
85384 * of the compiler which do not like us using do_div in the middle
85385 * of large functions.
85386 */
85387 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
85388 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
85389 {
85390 __u32 mod;
85391
85392 @@ -267,7 +267,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
85393 return 0;
85394 }
85395 #else
85396 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
85397 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
85398 {
85399 __u32 mod;
85400
85401 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
85402 new file mode 100644
85403 index 0000000..31f8fe4
85404 --- /dev/null
85405 +++ b/grsecurity/Kconfig
85406 @@ -0,0 +1,1182 @@
85407 +#
85408 +# grecurity configuration
85409 +#
85410 +menu "Memory Protections"
85411 +depends on GRKERNSEC
85412 +
85413 +config GRKERNSEC_KMEM
85414 + bool "Deny reading/writing to /dev/kmem, /dev/mem, and /dev/port"
85415 + default y if GRKERNSEC_CONFIG_AUTO
85416 + select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
85417 + help
85418 + If you say Y here, /dev/kmem and /dev/mem won't be allowed to
85419 + be written to or read from to modify or leak the contents of the running
85420 + kernel. /dev/port will also not be allowed to be opened, writing to
85421 + /dev/cpu/*/msr will be prevented, and support for kexec will be removed.
85422 + If you have module support disabled, enabling this will close up several
85423 + ways that are currently used to insert malicious code into the running
85424 + kernel.
85425 +
85426 + Even with this feature enabled, we still highly recommend that
85427 + you use the RBAC system, as it is still possible for an attacker to
85428 + modify the running kernel through other more obscure methods.
85429 +
85430 + It is highly recommended that you say Y here if you meet all the
85431 + conditions above.
85432 +
85433 +config GRKERNSEC_VM86
85434 + bool "Restrict VM86 mode"
85435 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85436 + depends on X86_32
85437 +
85438 + help
85439 + If you say Y here, only processes with CAP_SYS_RAWIO will be able to
85440 + make use of a special execution mode on 32bit x86 processors called
85441 + Virtual 8086 (VM86) mode. XFree86 may need vm86 mode for certain
85442 + video cards and will still work with this option enabled. The purpose
85443 + of the option is to prevent exploitation of emulation errors in
85444 + virtualization of vm86 mode like the one discovered in VMWare in 2009.
85445 + Nearly all users should be able to enable this option.
85446 +
85447 +config GRKERNSEC_IO
85448 + bool "Disable privileged I/O"
85449 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85450 + depends on X86
85451 + select RTC_CLASS
85452 + select RTC_INTF_DEV
85453 + select RTC_DRV_CMOS
85454 +
85455 + help
85456 + If you say Y here, all ioperm and iopl calls will return an error.
85457 + Ioperm and iopl can be used to modify the running kernel.
85458 + Unfortunately, some programs need this access to operate properly,
85459 + the most notable of which are XFree86 and hwclock. hwclock can be
85460 + remedied by having RTC support in the kernel, so real-time
85461 + clock support is enabled if this option is enabled, to ensure
85462 + that hwclock operates correctly. If hwclock still does not work,
85463 + either update udev or symlink /dev/rtc to /dev/rtc0.
85464 +
85465 + If you're using XFree86 or a version of Xorg from 2012 or earlier,
85466 + you may not be able to boot into a graphical environment with this
85467 + option enabled. In this case, you should use the RBAC system instead.
85468 +
85469 +config GRKERNSEC_BPF_HARDEN
85470 + bool "Harden BPF interpreter"
85471 + default y if GRKERNSEC_CONFIG_AUTO
85472 + help
85473 + Unlike previous versions of grsecurity that hardened both the BPF
85474 + interpreted code against corruption at rest as well as the JIT code
85475 + against JIT-spray attacks and attacker-controlled immediate values
85476 + for ROP, this feature will enforce disabling of the new eBPF JIT engine
85477 + and will ensure the interpreted code is read-only at rest. This feature
85478 + may be removed at a later time when eBPF stabilizes to entirely revert
85479 + back to the more secure pre-3.16 BPF interpreter/JIT.
85480 +
85481 + If you're using KERNEXEC, it's recommended that you enable this option
85482 + to supplement the hardening of the kernel.
85483 +
85484 +config GRKERNSEC_PERF_HARDEN
85485 + bool "Disable unprivileged PERF_EVENTS usage by default"
85486 + default y if GRKERNSEC_CONFIG_AUTO
85487 + depends on PERF_EVENTS
85488 + help
85489 + If you say Y here, the range of acceptable values for the
85490 + /proc/sys/kernel/perf_event_paranoid sysctl will be expanded to allow and
85491 + default to a new value: 3. When the sysctl is set to this value, no
85492 + unprivileged use of the PERF_EVENTS syscall interface will be permitted.
85493 +
85494 + Though PERF_EVENTS can be used legitimately for performance monitoring
85495 + and low-level application profiling, it is forced on regardless of
85496 + configuration, has been at fault for several vulnerabilities, and
85497 + creates new opportunities for side channels and other information leaks.
85498 +
85499 + This feature puts PERF_EVENTS into a secure default state and permits
85500 + the administrator to change out of it temporarily if unprivileged
85501 + application profiling is needed.
85502 +
85503 +config GRKERNSEC_RAND_THREADSTACK
85504 + bool "Insert random gaps between thread stacks"
85505 + default y if GRKERNSEC_CONFIG_AUTO
85506 + depends on PAX_RANDMMAP && !PPC
85507 + help
85508 + If you say Y here, a random-sized gap will be enforced between allocated
85509 + thread stacks. Glibc's NPTL and other threading libraries that
85510 + pass MAP_STACK to the kernel for thread stack allocation are supported.
85511 + The implementation currently provides 8 bits of entropy for the gap.
85512 +
85513 + Many distributions do not compile threaded remote services with the
85514 + -fstack-check argument to GCC, causing the variable-sized stack-based
85515 + allocator, alloca(), to not probe the stack on allocation. This
85516 + permits an unbounded alloca() to skip over any guard page and potentially
85517 + modify another thread's stack reliably. An enforced random gap
85518 + reduces the reliability of such an attack and increases the chance
85519 + that such a read/write to another thread's stack instead lands in
85520 + an unmapped area, causing a crash and triggering grsecurity's
85521 + anti-bruteforcing logic.
85522 +
85523 +config GRKERNSEC_PROC_MEMMAP
85524 + bool "Harden ASLR against information leaks and entropy reduction"
85525 + default y if (GRKERNSEC_CONFIG_AUTO || PAX_NOEXEC || PAX_ASLR)
85526 + depends on PAX_NOEXEC || PAX_ASLR
85527 + help
85528 + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will
85529 + give no information about the addresses of its mappings if
85530 + PaX features that rely on random addresses are enabled on the task.
85531 + In addition to sanitizing this information and disabling other
85532 + dangerous sources of information, this option causes reads of sensitive
85533 + /proc/<pid> entries where the file descriptor was opened in a different
85534 + task than the one performing the read. Such attempts are logged.
85535 + This option also limits argv/env strings for suid/sgid binaries
85536 + to 512KB to prevent a complete exhaustion of the stack entropy provided
85537 + by ASLR. Finally, it places an 8MB stack resource limit on suid/sgid
85538 + binaries to prevent alternative mmap layouts from being abused.
85539 +
85540 + If you use PaX it is essential that you say Y here as it closes up
85541 + several holes that make full ASLR useless locally.
85542 +
85543 +
85544 +config GRKERNSEC_KSTACKOVERFLOW
85545 + bool "Prevent kernel stack overflows"
85546 + default y if GRKERNSEC_CONFIG_AUTO
85547 + depends on !IA64 && 64BIT
85548 + help
85549 + If you say Y here, the kernel's process stacks will be allocated
85550 + with vmalloc instead of the kernel's default allocator. This
85551 + introduces guard pages that in combination with the alloca checking
85552 + of the STACKLEAK feature prevents all forms of kernel process stack
85553 + overflow abuse. Note that this is different from kernel stack
85554 + buffer overflows.
85555 +
85556 +config GRKERNSEC_BRUTE
85557 + bool "Deter exploit bruteforcing"
85558 + default y if GRKERNSEC_CONFIG_AUTO
85559 + help
85560 + If you say Y here, attempts to bruteforce exploits against forking
85561 + daemons such as apache or sshd, as well as against suid/sgid binaries
85562 + will be deterred. When a child of a forking daemon is killed by PaX
85563 + or crashes due to an illegal instruction or other suspicious signal,
85564 + the parent process will be delayed 30 seconds upon every subsequent
85565 + fork until the administrator is able to assess the situation and
85566 + restart the daemon.
85567 + In the suid/sgid case, the attempt is logged, the user has all their
85568 + existing instances of the suid/sgid binary terminated and will
85569 + be unable to execute any suid/sgid binaries for 15 minutes.
85570 +
85571 + It is recommended that you also enable signal logging in the auditing
85572 + section so that logs are generated when a process triggers a suspicious
85573 + signal.
85574 + If the sysctl option is enabled, a sysctl option with name
85575 + "deter_bruteforce" is created.
85576 +
85577 +config GRKERNSEC_MODHARDEN
85578 + bool "Harden module auto-loading"
85579 + default y if GRKERNSEC_CONFIG_AUTO
85580 + depends on MODULES
85581 + help
85582 + If you say Y here, module auto-loading in response to use of some
85583 + feature implemented by an unloaded module will be restricted to
85584 + root users. Enabling this option helps defend against attacks
85585 + by unprivileged users who abuse the auto-loading behavior to
85586 + cause a vulnerable module to load that is then exploited.
85587 +
85588 + If this option prevents a legitimate use of auto-loading for a
85589 + non-root user, the administrator can execute modprobe manually
85590 + with the exact name of the module mentioned in the alert log.
85591 + Alternatively, the administrator can add the module to the list
85592 + of modules loaded at boot by modifying init scripts.
85593 +
85594 + Modification of init scripts will most likely be needed on
85595 + Ubuntu servers with encrypted home directory support enabled,
85596 + as the first non-root user logging in will cause the ecb(aes),
85597 + ecb(aes)-all, cbc(aes), and cbc(aes)-all modules to be loaded.
85598 +
85599 +config GRKERNSEC_HIDESYM
85600 + bool "Hide kernel symbols"
85601 + default y if GRKERNSEC_CONFIG_AUTO
85602 + select PAX_USERCOPY_SLABS
85603 + help
85604 + If you say Y here, getting information on loaded modules, and
85605 + displaying all kernel symbols through a syscall will be restricted
85606 + to users with CAP_SYS_MODULE. For software compatibility reasons,
85607 + /proc/kallsyms will be restricted to the root user. The RBAC
85608 + system can hide that entry even from root.
85609 +
85610 + This option also prevents leaking of kernel addresses through
85611 + several /proc entries.
85612 +
85613 + Note that this option is only effective provided the following
85614 + conditions are met:
85615 + 1) The kernel using grsecurity is not precompiled by some distribution
85616 + 2) You have also enabled GRKERNSEC_DMESG
85617 + 3) You are using the RBAC system and hiding other files such as your
85618 + kernel image and System.map. Alternatively, enabling this option
85619 + causes the permissions on /boot, /lib/modules, and the kernel
85620 + source directory to change at compile time to prevent
85621 + reading by non-root users.
85622 + If the above conditions are met, this option will aid in providing a
85623 + useful protection against local kernel exploitation of overflows
85624 + and arbitrary read/write vulnerabilities.
85625 +
85626 + It is highly recommended that you enable GRKERNSEC_PERF_HARDEN
85627 + in addition to this feature.
85628 +
85629 +config GRKERNSEC_RANDSTRUCT
85630 + bool "Randomize layout of sensitive kernel structures"
85631 + default y if GRKERNSEC_CONFIG_AUTO
85632 + select GRKERNSEC_HIDESYM
85633 + select MODVERSIONS if MODULES
85634 + help
85635 + If you say Y here, the layouts of a number of sensitive kernel
85636 + structures (task, fs, cred, etc) and all structures composed entirely
85637 + of function pointers (aka "ops" structs) will be randomized at compile-time.
85638 + This can introduce the requirement of an additional infoleak
85639 + vulnerability for exploits targeting these structure types.
85640 +
85641 + Enabling this feature will introduce some performance impact, slightly
85642 + increase memory usage, and prevent the use of forensic tools like
85643 + Volatility against the system (unless the kernel source tree isn't
85644 + cleaned after kernel installation).
85645 +
85646 + The seed used for compilation is located at tools/gcc/randomize_layout_seed.h.
85647 + It remains after a make clean to allow for external modules to be compiled
85648 + with the existing seed and will be removed by a make mrproper or
85649 + make distclean.
85650 +
85651 + Note that the implementation requires gcc 4.6.4. or newer. You may need
85652 + to install the supporting headers explicitly in addition to the normal
85653 + gcc package.
85654 +
85655 +config GRKERNSEC_RANDSTRUCT_PERFORMANCE
85656 + bool "Use cacheline-aware structure randomization"
85657 + depends on GRKERNSEC_RANDSTRUCT
85658 + default y if GRKERNSEC_CONFIG_PRIORITY_PERF
85659 + help
85660 + If you say Y here, the RANDSTRUCT randomization will make a best effort
85661 + at restricting randomization to cacheline-sized groups of elements. It
85662 + will further not randomize bitfields in structures. This reduces the
85663 + performance hit of RANDSTRUCT at the cost of weakened randomization.
85664 +
85665 +config GRKERNSEC_KERN_LOCKOUT
85666 + bool "Active kernel exploit response"
85667 + default y if GRKERNSEC_CONFIG_AUTO
85668 + depends on X86 || ARM || PPC || SPARC
85669 + help
85670 + If you say Y here, when a PaX alert is triggered due to suspicious
85671 + activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
85672 + or an OOPS occurs due to bad memory accesses, instead of just
85673 + terminating the offending process (and potentially allowing
85674 + a subsequent exploit from the same user), we will take one of two
85675 + actions:
85676 + If the user was root, we will panic the system
85677 + If the user was non-root, we will log the attempt, terminate
85678 + all processes owned by the user, then prevent them from creating
85679 + any new processes until the system is restarted
85680 + This deters repeated kernel exploitation/bruteforcing attempts
85681 + and is useful for later forensics.
85682 +
85683 +config GRKERNSEC_OLD_ARM_USERLAND
85684 + bool "Old ARM userland compatibility"
85685 + depends on ARM && (CPU_V6 || CPU_V6K || CPU_V7)
85686 + help
85687 + If you say Y here, stubs of executable code to perform such operations
85688 + as "compare-exchange" will be placed at fixed locations in the ARM vector
85689 + table. This is unfortunately needed for old ARM userland meant to run
85690 + across a wide range of processors. Without this option enabled,
85691 + the get_tls and data memory barrier stubs will be emulated by the kernel,
85692 + which is enough for Linaro userlands or other userlands designed for v6
85693 + and newer ARM CPUs. It's recommended that you try without this option enabled
85694 + first, and only enable it if your userland does not boot (it will likely fail
85695 + at init time).
85696 +
85697 +endmenu
85698 +menu "Role Based Access Control Options"
85699 +depends on GRKERNSEC
85700 +
85701 +config GRKERNSEC_RBAC_DEBUG
85702 + bool
85703 +
85704 +config GRKERNSEC_NO_RBAC
85705 + bool "Disable RBAC system"
85706 + help
85707 + If you say Y here, the /dev/grsec device will be removed from the kernel,
85708 + preventing the RBAC system from being enabled. You should only say Y
85709 + here if you have no intention of using the RBAC system, so as to prevent
85710 + an attacker with root access from misusing the RBAC system to hide files
85711 + and processes when loadable module support and /dev/[k]mem have been
85712 + locked down.
85713 +
85714 +config GRKERNSEC_ACL_HIDEKERN
85715 + bool "Hide kernel processes"
85716 + help
85717 + If you say Y here, all kernel threads will be hidden to all
85718 + processes but those whose subject has the "view hidden processes"
85719 + flag.
85720 +
85721 +config GRKERNSEC_ACL_MAXTRIES
85722 + int "Maximum tries before password lockout"
85723 + default 3
85724 + help
85725 + This option enforces the maximum number of times a user can attempt
85726 + to authorize themselves with the grsecurity RBAC system before being
85727 + denied the ability to attempt authorization again for a specified time.
85728 + The lower the number, the harder it will be to brute-force a password.
85729 +
85730 +config GRKERNSEC_ACL_TIMEOUT
85731 + int "Time to wait after max password tries, in seconds"
85732 + default 30
85733 + help
85734 + This option specifies the time the user must wait after attempting to
85735 + authorize to the RBAC system with the maximum number of invalid
85736 + passwords. The higher the number, the harder it will be to brute-force
85737 + a password.
85738 +
85739 +endmenu
85740 +menu "Filesystem Protections"
85741 +depends on GRKERNSEC
85742 +
85743 +config GRKERNSEC_PROC
85744 + bool "Proc restrictions"
85745 + default y if GRKERNSEC_CONFIG_AUTO
85746 + help
85747 + If you say Y here, the permissions of the /proc filesystem
85748 + will be altered to enhance system security and privacy. You MUST
85749 + choose either a user only restriction or a user and group restriction.
85750 + Depending upon the option you choose, you can either restrict users to
85751 + see only the processes they themselves run, or choose a group that can
85752 + view all processes and files normally restricted to root if you choose
85753 + the "restrict to user only" option. NOTE: If you're running identd or
85754 + ntpd as a non-root user, you will have to run it as the group you
85755 + specify here.
85756 +
85757 +config GRKERNSEC_PROC_USER
85758 + bool "Restrict /proc to user only"
85759 + depends on GRKERNSEC_PROC
85760 + help
85761 + If you say Y here, non-root users will only be able to view their own
85762 + processes, and restricts them from viewing network-related information,
85763 + and viewing kernel symbol and module information.
85764 +
85765 +config GRKERNSEC_PROC_USERGROUP
85766 + bool "Allow special group"
85767 + default y if GRKERNSEC_CONFIG_AUTO
85768 + depends on GRKERNSEC_PROC && !GRKERNSEC_PROC_USER
85769 + help
85770 + If you say Y here, you will be able to select a group that will be
85771 + able to view all processes and network-related information. If you've
85772 + enabled GRKERNSEC_HIDESYM, kernel and symbol information may still
85773 + remain hidden. This option is useful if you want to run identd as
85774 + a non-root user. The group you select may also be chosen at boot time
85775 + via "grsec_proc_gid=" on the kernel commandline.
85776 +
85777 +config GRKERNSEC_PROC_GID
85778 + int "GID for special group"
85779 + depends on GRKERNSEC_PROC_USERGROUP
85780 + default 1001
85781 +
85782 +config GRKERNSEC_PROC_ADD
85783 + bool "Additional restrictions"
85784 + default y if GRKERNSEC_CONFIG_AUTO
85785 + depends on GRKERNSEC_PROC_USER || GRKERNSEC_PROC_USERGROUP
85786 + help
85787 + If you say Y here, additional restrictions will be placed on
85788 + /proc that keep normal users from viewing device information and
85789 + slabinfo information that could be useful for exploits.
85790 +
85791 +config GRKERNSEC_LINK
85792 + bool "Linking restrictions"
85793 + default y if GRKERNSEC_CONFIG_AUTO
85794 + help
85795 + If you say Y here, /tmp race exploits will be prevented, since users
85796 + will no longer be able to follow symlinks owned by other users in
85797 + world-writable +t directories (e.g. /tmp), unless the owner of the
85798 + symlink is the owner of the directory. users will also not be
85799 + able to hardlink to files they do not own. If the sysctl option is
85800 + enabled, a sysctl option with name "linking_restrictions" is created.
85801 +
85802 +config GRKERNSEC_SYMLINKOWN
85803 + bool "Kernel-enforced SymlinksIfOwnerMatch"
85804 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
85805 + help
85806 + Apache's SymlinksIfOwnerMatch option has an inherent race condition
85807 + that prevents it from being used as a security feature. As Apache
85808 + verifies the symlink by performing a stat() against the target of
85809 + the symlink before it is followed, an attacker can setup a symlink
85810 + to point to a same-owned file, then replace the symlink with one
85811 + that targets another user's file just after Apache "validates" the
85812 + symlink -- a classic TOCTOU race. If you say Y here, a complete,
85813 + race-free replacement for Apache's "SymlinksIfOwnerMatch" option
85814 + will be in place for the group you specify. If the sysctl option
85815 + is enabled, a sysctl option with name "enforce_symlinksifowner" is
85816 + created.
85817 +
85818 +config GRKERNSEC_SYMLINKOWN_GID
85819 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
85820 + depends on GRKERNSEC_SYMLINKOWN
85821 + default 1006
85822 + help
85823 + Setting this GID determines what group kernel-enforced
85824 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
85825 + is enabled, a sysctl option with name "symlinkown_gid" is created.
85826 +
85827 +config GRKERNSEC_FIFO
85828 + bool "FIFO restrictions"
85829 + default y if GRKERNSEC_CONFIG_AUTO
85830 + help
85831 + If you say Y here, users will not be able to write to FIFOs they don't
85832 + own in world-writable +t directories (e.g. /tmp), unless the owner of
85833 + the FIFO is the same owner of the directory it's held in. If the sysctl
85834 + option is enabled, a sysctl option with name "fifo_restrictions" is
85835 + created.
85836 +
85837 +config GRKERNSEC_SYSFS_RESTRICT
85838 + bool "Sysfs/debugfs restriction"
85839 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85840 + depends on SYSFS
85841 + help
85842 + If you say Y here, sysfs (the pseudo-filesystem mounted at /sys) and
85843 + any filesystem normally mounted under it (e.g. debugfs) will be
85844 + mostly accessible only by root. These filesystems generally provide access
85845 + to hardware and debug information that isn't appropriate for unprivileged
85846 + users of the system. Sysfs and debugfs have also become a large source
85847 + of new vulnerabilities, ranging from infoleaks to local compromise.
85848 + There has been very little oversight with an eye toward security involved
85849 + in adding new exporters of information to these filesystems, so their
85850 + use is discouraged.
85851 + For reasons of compatibility, a few directories have been whitelisted
85852 + for access by non-root users:
85853 + /sys/fs/selinux
85854 + /sys/fs/fuse
85855 + /sys/devices/system/cpu
85856 +
85857 +config GRKERNSEC_ROFS
85858 + bool "Runtime read-only mount protection"
85859 + depends on SYSCTL
85860 + help
85861 + If you say Y here, a sysctl option with name "romount_protect" will
85862 + be created. By setting this option to 1 at runtime, filesystems
85863 + will be protected in the following ways:
85864 + * No new writable mounts will be allowed
85865 + * Existing read-only mounts won't be able to be remounted read/write
85866 + * Write operations will be denied on all block devices
85867 + This option acts independently of grsec_lock: once it is set to 1,
85868 + it cannot be turned off. Therefore, please be mindful of the resulting
85869 + behavior if this option is enabled in an init script on a read-only
85870 + filesystem.
85871 + Also be aware that as with other root-focused features, GRKERNSEC_KMEM
85872 + and GRKERNSEC_IO should be enabled and module loading disabled via
85873 + config or at runtime.
85874 + This feature is mainly intended for secure embedded systems.
85875 +
85876 +
85877 +config GRKERNSEC_DEVICE_SIDECHANNEL
85878 + bool "Eliminate stat/notify-based device sidechannels"
85879 + default y if GRKERNSEC_CONFIG_AUTO
85880 + help
85881 + If you say Y here, timing analyses on block or character
85882 + devices like /dev/ptmx using stat or inotify/dnotify/fanotify
85883 + will be thwarted for unprivileged users. If a process without
85884 + CAP_MKNOD stats such a device, the last access and last modify times
85885 + will match the device's create time. No access or modify events
85886 + will be triggered through inotify/dnotify/fanotify for such devices.
85887 + This feature will prevent attacks that may at a minimum
85888 + allow an attacker to determine the administrator's password length.
85889 +
85890 +config GRKERNSEC_CHROOT
85891 + bool "Chroot jail restrictions"
85892 + default y if GRKERNSEC_CONFIG_AUTO
85893 + help
85894 + If you say Y here, you will be able to choose several options that will
85895 + make breaking out of a chrooted jail much more difficult. If you
85896 + encounter no software incompatibilities with the following options, it
85897 + is recommended that you enable each one.
85898 +
85899 + Note that the chroot restrictions are not intended to apply to "chroots"
85900 + to directories that are simple bind mounts of the global root filesystem.
85901 + For several other reasons, a user shouldn't expect any significant
85902 + security by performing such a chroot.
85903 +
85904 +config GRKERNSEC_CHROOT_MOUNT
85905 + bool "Deny mounts"
85906 + default y if GRKERNSEC_CONFIG_AUTO
85907 + depends on GRKERNSEC_CHROOT
85908 + help
85909 + If you say Y here, processes inside a chroot will not be able to
85910 + mount or remount filesystems. If the sysctl option is enabled, a
85911 + sysctl option with name "chroot_deny_mount" is created.
85912 +
85913 +config GRKERNSEC_CHROOT_DOUBLE
85914 + bool "Deny double-chroots"
85915 + default y if GRKERNSEC_CONFIG_AUTO
85916 + depends on GRKERNSEC_CHROOT
85917 + help
85918 + If you say Y here, processes inside a chroot will not be able to chroot
85919 + again outside the chroot. This is a widely used method of breaking
85920 + out of a chroot jail and should not be allowed. If the sysctl
85921 + option is enabled, a sysctl option with name
85922 + "chroot_deny_chroot" is created.
85923 +
85924 +config GRKERNSEC_CHROOT_PIVOT
85925 + bool "Deny pivot_root in chroot"
85926 + default y if GRKERNSEC_CONFIG_AUTO
85927 + depends on GRKERNSEC_CHROOT
85928 + help
85929 + If you say Y here, processes inside a chroot will not be able to use
85930 + a function called pivot_root() that was introduced in Linux 2.3.41. It
85931 + works similar to chroot in that it changes the root filesystem. This
85932 + function could be misused in a chrooted process to attempt to break out
85933 + of the chroot, and therefore should not be allowed. If the sysctl
85934 + option is enabled, a sysctl option with name "chroot_deny_pivot" is
85935 + created.
85936 +
85937 +config GRKERNSEC_CHROOT_CHDIR
85938 + bool "Enforce chdir(\"/\") on all chroots"
85939 + default y if GRKERNSEC_CONFIG_AUTO
85940 + depends on GRKERNSEC_CHROOT
85941 + help
85942 + If you say Y here, the current working directory of all newly-chrooted
85943 + applications will be set to the the root directory of the chroot.
85944 + The man page on chroot(2) states:
85945 + Note that this call does not change the current working
85946 + directory, so that `.' can be outside the tree rooted at
85947 + `/'. In particular, the super-user can escape from a
85948 + `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
85949 +
85950 + It is recommended that you say Y here, since it's not known to break
85951 + any software. If the sysctl option is enabled, a sysctl option with
85952 + name "chroot_enforce_chdir" is created.
85953 +
85954 +config GRKERNSEC_CHROOT_CHMOD
85955 + bool "Deny (f)chmod +s"
85956 + default y if GRKERNSEC_CONFIG_AUTO
85957 + depends on GRKERNSEC_CHROOT
85958 + help
85959 + If you say Y here, processes inside a chroot will not be able to chmod
85960 + or fchmod files to make them have suid or sgid bits. This protects
85961 + against another published method of breaking a chroot. If the sysctl
85962 + option is enabled, a sysctl option with name "chroot_deny_chmod" is
85963 + created.
85964 +
85965 +config GRKERNSEC_CHROOT_FCHDIR
85966 + bool "Deny fchdir and fhandle out of chroot"
85967 + default y if GRKERNSEC_CONFIG_AUTO
85968 + depends on GRKERNSEC_CHROOT
85969 + help
85970 + If you say Y here, a well-known method of breaking chroots by fchdir'ing
85971 + to a file descriptor of the chrooting process that points to a directory
85972 + outside the filesystem will be stopped. Additionally, this option prevents
85973 + use of the recently-created syscall for opening files by a guessable "file
85974 + handle" inside a chroot. If the sysctl option is enabled, a sysctl option
85975 + with name "chroot_deny_fchdir" is created.
85976 +
85977 +config GRKERNSEC_CHROOT_MKNOD
85978 + bool "Deny mknod"
85979 + default y if GRKERNSEC_CONFIG_AUTO
85980 + depends on GRKERNSEC_CHROOT
85981 + help
85982 + If you say Y here, processes inside a chroot will not be allowed to
85983 + mknod. The problem with using mknod inside a chroot is that it
85984 + would allow an attacker to create a device entry that is the same
85985 + as one on the physical root of your system, which could range from
85986 + anything from the console device to a device for your harddrive (which
85987 + they could then use to wipe the drive or steal data). It is recommended
85988 + that you say Y here, unless you run into software incompatibilities.
85989 + If the sysctl option is enabled, a sysctl option with name
85990 + "chroot_deny_mknod" is created.
85991 +
85992 +config GRKERNSEC_CHROOT_SHMAT
85993 + bool "Deny shmat() out of chroot"
85994 + default y if GRKERNSEC_CONFIG_AUTO
85995 + depends on GRKERNSEC_CHROOT
85996 + help
85997 + If you say Y here, processes inside a chroot will not be able to attach
85998 + to shared memory segments that were created outside of the chroot jail.
85999 + It is recommended that you say Y here. If the sysctl option is enabled,
86000 + a sysctl option with name "chroot_deny_shmat" is created.
86001 +
86002 +config GRKERNSEC_CHROOT_UNIX
86003 + bool "Deny access to abstract AF_UNIX sockets out of chroot"
86004 + default y if GRKERNSEC_CONFIG_AUTO
86005 + depends on GRKERNSEC_CHROOT
86006 + help
86007 + If you say Y here, processes inside a chroot will not be able to
86008 + connect to abstract (meaning not belonging to a filesystem) Unix
86009 + domain sockets that were bound outside of a chroot. It is recommended
86010 + that you say Y here. If the sysctl option is enabled, a sysctl option
86011 + with name "chroot_deny_unix" is created.
86012 +
86013 +config GRKERNSEC_CHROOT_FINDTASK
86014 + bool "Protect outside processes"
86015 + default y if GRKERNSEC_CONFIG_AUTO
86016 + depends on GRKERNSEC_CHROOT
86017 + help
86018 + If you say Y here, processes inside a chroot will not be able to
86019 + kill, send signals with fcntl, ptrace, capget, getpgid, setpgid,
86020 + getsid, or view any process outside of the chroot. If the sysctl
86021 + option is enabled, a sysctl option with name "chroot_findtask" is
86022 + created.
86023 +
86024 +config GRKERNSEC_CHROOT_NICE
86025 + bool "Restrict priority changes"
86026 + default y if GRKERNSEC_CONFIG_AUTO
86027 + depends on GRKERNSEC_CHROOT
86028 + help
86029 + If you say Y here, processes inside a chroot will not be able to raise
86030 + the priority of processes in the chroot, or alter the priority of
86031 + processes outside the chroot. This provides more security than simply
86032 + removing CAP_SYS_NICE from the process' capability set. If the
86033 + sysctl option is enabled, a sysctl option with name "chroot_restrict_nice"
86034 + is created.
86035 +
86036 +config GRKERNSEC_CHROOT_SYSCTL
86037 + bool "Deny sysctl writes"
86038 + default y if GRKERNSEC_CONFIG_AUTO
86039 + depends on GRKERNSEC_CHROOT
86040 + help
86041 + If you say Y here, an attacker in a chroot will not be able to
86042 + write to sysctl entries, either by sysctl(2) or through a /proc
86043 + interface. It is strongly recommended that you say Y here. If the
86044 + sysctl option is enabled, a sysctl option with name
86045 + "chroot_deny_sysctl" is created.
86046 +
86047 +config GRKERNSEC_CHROOT_RENAME
86048 + bool "Deny bad renames"
86049 + default y if GRKERNSEC_CONFIG_AUTO
86050 + depends on GRKERNSEC_CHROOT
86051 + help
86052 + If you say Y here, an attacker in a chroot will not be able to
86053 + abuse the ability to create double chroots to break out of the
86054 + chroot by exploiting a race condition between a rename of a directory
86055 + within a chroot against an open of a symlink with relative path
86056 + components. This feature will likewise prevent an accomplice outside
86057 + a chroot from enabling a user inside the chroot to break out and make
86058 + use of their credentials on the global filesystem. Enabling this
86059 + feature is essential to prevent root users from breaking out of a
86060 + chroot. If the sysctl option is enabled, a sysctl option with name
86061 + "chroot_deny_bad_rename" is created.
86062 +
86063 +config GRKERNSEC_CHROOT_CAPS
86064 + bool "Capability restrictions"
86065 + default y if GRKERNSEC_CONFIG_AUTO
86066 + depends on GRKERNSEC_CHROOT
86067 + help
86068 + If you say Y here, the capabilities on all processes within a
86069 + chroot jail will be lowered to stop module insertion, raw i/o,
86070 + system and net admin tasks, rebooting the system, modifying immutable
86071 + files, modifying IPC owned by another, and changing the system time.
86072 + This is left an option because it can break some apps. Disable this
86073 + if your chrooted apps are having problems performing those kinds of
86074 + tasks. If the sysctl option is enabled, a sysctl option with
86075 + name "chroot_caps" is created.
86076 +
86077 +config GRKERNSEC_CHROOT_INITRD
86078 + bool "Exempt initrd tasks from restrictions"
86079 + default y if GRKERNSEC_CONFIG_AUTO
86080 + depends on GRKERNSEC_CHROOT && BLK_DEV_INITRD
86081 + help
86082 + If you say Y here, tasks started prior to init will be exempted from
86083 + grsecurity's chroot restrictions. This option is mainly meant to
86084 + resolve Plymouth's performing privileged operations unnecessarily
86085 + in a chroot.
86086 +
86087 +endmenu
86088 +menu "Kernel Auditing"
86089 +depends on GRKERNSEC
86090 +
86091 +config GRKERNSEC_AUDIT_GROUP
86092 + bool "Single group for auditing"
86093 + help
86094 + If you say Y here, the exec and chdir logging features will only operate
86095 + on a group you specify. This option is recommended if you only want to
86096 + watch certain users instead of having a large amount of logs from the
86097 + entire system. If the sysctl option is enabled, a sysctl option with
86098 + name "audit_group" is created.
86099 +
86100 +config GRKERNSEC_AUDIT_GID
86101 + int "GID for auditing"
86102 + depends on GRKERNSEC_AUDIT_GROUP
86103 + default 1007
86104 +
86105 +config GRKERNSEC_EXECLOG
86106 + bool "Exec logging"
86107 + help
86108 + If you say Y here, all execve() calls will be logged (since the
86109 + other exec*() calls are frontends to execve(), all execution
86110 + will be logged). Useful for shell-servers that like to keep track
86111 + of their users. If the sysctl option is enabled, a sysctl option with
86112 + name "exec_logging" is created.
86113 + WARNING: This option when enabled will produce a LOT of logs, especially
86114 + on an active system.
86115 +
86116 +config GRKERNSEC_RESLOG
86117 + bool "Resource logging"
86118 + default y if GRKERNSEC_CONFIG_AUTO
86119 + help
86120 + If you say Y here, all attempts to overstep resource limits will
86121 + be logged with the resource name, the requested size, and the current
86122 + limit. It is highly recommended that you say Y here. If the sysctl
86123 + option is enabled, a sysctl option with name "resource_logging" is
86124 + created. If the RBAC system is enabled, the sysctl value is ignored.
86125 +
86126 +config GRKERNSEC_CHROOT_EXECLOG
86127 + bool "Log execs within chroot"
86128 + help
86129 + If you say Y here, all executions inside a chroot jail will be logged
86130 + to syslog. This can cause a large amount of logs if certain
86131 + applications (eg. djb's daemontools) are installed on the system, and
86132 + is therefore left as an option. If the sysctl option is enabled, a
86133 + sysctl option with name "chroot_execlog" is created.
86134 +
86135 +config GRKERNSEC_AUDIT_PTRACE
86136 + bool "Ptrace logging"
86137 + help
86138 + If you say Y here, all attempts to attach to a process via ptrace
86139 + will be logged. If the sysctl option is enabled, a sysctl option
86140 + with name "audit_ptrace" is created.
86141 +
86142 +config GRKERNSEC_AUDIT_CHDIR
86143 + bool "Chdir logging"
86144 + help
86145 + If you say Y here, all chdir() calls will be logged. If the sysctl
86146 + option is enabled, a sysctl option with name "audit_chdir" is created.
86147 +
86148 +config GRKERNSEC_AUDIT_MOUNT
86149 + bool "(Un)Mount logging"
86150 + help
86151 + If you say Y here, all mounts and unmounts will be logged. If the
86152 + sysctl option is enabled, a sysctl option with name "audit_mount" is
86153 + created.
86154 +
86155 +config GRKERNSEC_SIGNAL
86156 + bool "Signal logging"
86157 + default y if GRKERNSEC_CONFIG_AUTO
86158 + help
86159 + If you say Y here, certain important signals will be logged, such as
86160 + SIGSEGV, which will as a result inform you of when a error in a program
86161 + occurred, which in some cases could mean a possible exploit attempt.
86162 + If the sysctl option is enabled, a sysctl option with name
86163 + "signal_logging" is created.
86164 +
86165 +config GRKERNSEC_FORKFAIL
86166 + bool "Fork failure logging"
86167 + help
86168 + If you say Y here, all failed fork() attempts will be logged.
86169 + This could suggest a fork bomb, or someone attempting to overstep
86170 + their process limit. If the sysctl option is enabled, a sysctl option
86171 + with name "forkfail_logging" is created.
86172 +
86173 +config GRKERNSEC_TIME
86174 + bool "Time change logging"
86175 + default y if GRKERNSEC_CONFIG_AUTO
86176 + help
86177 + If you say Y here, any changes of the system clock will be logged.
86178 + If the sysctl option is enabled, a sysctl option with name
86179 + "timechange_logging" is created.
86180 +
86181 +config GRKERNSEC_PROC_IPADDR
86182 + bool "/proc/<pid>/ipaddr support"
86183 + default y if GRKERNSEC_CONFIG_AUTO
86184 + help
86185 + If you say Y here, a new entry will be added to each /proc/<pid>
86186 + directory that contains the IP address of the person using the task.
86187 + The IP is carried across local TCP and AF_UNIX stream sockets.
86188 + This information can be useful for IDS/IPSes to perform remote response
86189 + to a local attack. The entry is readable by only the owner of the
86190 + process (and root if he has CAP_DAC_OVERRIDE, which can be removed via
86191 + the RBAC system), and thus does not create privacy concerns.
86192 +
86193 +config GRKERNSEC_RWXMAP_LOG
86194 + bool 'Denied RWX mmap/mprotect logging'
86195 + default y if GRKERNSEC_CONFIG_AUTO
86196 + depends on PAX_MPROTECT && !PAX_EMUPLT && !PAX_EMUSIGRT
86197 + help
86198 + If you say Y here, calls to mmap() and mprotect() with explicit
86199 + usage of PROT_WRITE and PROT_EXEC together will be logged when
86200 + denied by the PAX_MPROTECT feature. This feature will also
86201 + log other problematic scenarios that can occur when PAX_MPROTECT
86202 + is enabled on a binary, like textrels and PT_GNU_STACK. If the
86203 + sysctl option is enabled, a sysctl option with name "rwxmap_logging"
86204 + is created.
86205 +
86206 +endmenu
86207 +
86208 +menu "Executable Protections"
86209 +depends on GRKERNSEC
86210 +
86211 +config GRKERNSEC_DMESG
86212 + bool "Dmesg(8) restriction"
86213 + default y if GRKERNSEC_CONFIG_AUTO
86214 + help
86215 + If you say Y here, non-root users will not be able to use dmesg(8)
86216 + to view the contents of the kernel's circular log buffer.
86217 + The kernel's log buffer often contains kernel addresses and other
86218 + identifying information useful to an attacker in fingerprinting a
86219 + system for a targeted exploit.
86220 + If the sysctl option is enabled, a sysctl option with name "dmesg" is
86221 + created.
86222 +
86223 +config GRKERNSEC_HARDEN_PTRACE
86224 + bool "Deter ptrace-based process snooping"
86225 + default y if GRKERNSEC_CONFIG_AUTO
86226 + help
86227 + If you say Y here, TTY sniffers and other malicious monitoring
86228 + programs implemented through ptrace will be defeated. If you
86229 + have been using the RBAC system, this option has already been
86230 + enabled for several years for all users, with the ability to make
86231 + fine-grained exceptions.
86232 +
86233 + This option only affects the ability of non-root users to ptrace
86234 + processes that are not a descendent of the ptracing process.
86235 + This means that strace ./binary and gdb ./binary will still work,
86236 + but attaching to arbitrary processes will not. If the sysctl
86237 + option is enabled, a sysctl option with name "harden_ptrace" is
86238 + created.
86239 +
86240 +config GRKERNSEC_PTRACE_READEXEC
86241 + bool "Require read access to ptrace sensitive binaries"
86242 + default y if GRKERNSEC_CONFIG_AUTO
86243 + help
86244 + If you say Y here, unprivileged users will not be able to ptrace unreadable
86245 + binaries. This option is useful in environments that
86246 + remove the read bits (e.g. file mode 4711) from suid binaries to
86247 + prevent infoleaking of their contents. This option adds
86248 + consistency to the use of that file mode, as the binary could normally
86249 + be read out when run without privileges while ptracing.
86250 +
86251 + If the sysctl option is enabled, a sysctl option with name "ptrace_readexec"
86252 + is created.
86253 +
86254 +config GRKERNSEC_SETXID
86255 + bool "Enforce consistent multithreaded privileges"
86256 + default y if GRKERNSEC_CONFIG_AUTO
86257 + depends on (X86 || SPARC64 || PPC || ARM || MIPS)
86258 + help
86259 + If you say Y here, a change from a root uid to a non-root uid
86260 + in a multithreaded application will cause the resulting uids,
86261 + gids, supplementary groups, and capabilities in that thread
86262 + to be propagated to the other threads of the process. In most
86263 + cases this is unnecessary, as glibc will emulate this behavior
86264 + on behalf of the application. Other libcs do not act in the
86265 + same way, allowing the other threads of the process to continue
86266 + running with root privileges. If the sysctl option is enabled,
86267 + a sysctl option with name "consistent_setxid" is created.
86268 +
86269 +config GRKERNSEC_HARDEN_IPC
86270 + bool "Disallow access to overly-permissive IPC objects"
86271 + default y if GRKERNSEC_CONFIG_AUTO
86272 + depends on SYSVIPC
86273 + help
86274 + If you say Y here, access to overly-permissive IPC objects (shared
86275 + memory, message queues, and semaphores) will be denied for processes
86276 + given the following criteria beyond normal permission checks:
86277 + 1) If the IPC object is world-accessible and the euid doesn't match
86278 + that of the creator or current uid for the IPC object
86279 + 2) If the IPC object is group-accessible and the egid doesn't
86280 + match that of the creator or current gid for the IPC object
86281 + It's a common error to grant too much permission to these objects,
86282 + with impact ranging from denial of service and information leaking to
86283 + privilege escalation. This feature was developed in response to
86284 + research by Tim Brown:
86285 + http://labs.portcullis.co.uk/whitepapers/memory-squatting-attacks-on-system-v-shared-memory/
86286 + who found hundreds of such insecure usages. Processes with
86287 + CAP_IPC_OWNER are still permitted to access these IPC objects.
86288 + If the sysctl option is enabled, a sysctl option with name
86289 + "harden_ipc" is created.
86290 +
86291 +config GRKERNSEC_TPE
86292 + bool "Trusted Path Execution (TPE)"
86293 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
86294 + help
86295 + If you say Y here, you will be able to choose a gid to add to the
86296 + supplementary groups of users you want to mark as "untrusted."
86297 + These users will not be able to execute any files that are not in
86298 + root-owned directories writable only by root. If the sysctl option
86299 + is enabled, a sysctl option with name "tpe" is created.
86300 +
86301 +config GRKERNSEC_TPE_ALL
86302 + bool "Partially restrict all non-root users"
86303 + depends on GRKERNSEC_TPE
86304 + help
86305 + If you say Y here, all non-root users will be covered under
86306 + a weaker TPE restriction. This is separate from, and in addition to,
86307 + the main TPE options that you have selected elsewhere. Thus, if a
86308 + "trusted" GID is chosen, this restriction applies to even that GID.
86309 + Under this restriction, all non-root users will only be allowed to
86310 + execute files in directories they own that are not group or
86311 + world-writable, or in directories owned by root and writable only by
86312 + root. If the sysctl option is enabled, a sysctl option with name
86313 + "tpe_restrict_all" is created.
86314 +
86315 +config GRKERNSEC_TPE_INVERT
86316 + bool "Invert GID option"
86317 + depends on GRKERNSEC_TPE
86318 + help
86319 + If you say Y here, the group you specify in the TPE configuration will
86320 + decide what group TPE restrictions will be *disabled* for. This
86321 + option is useful if you want TPE restrictions to be applied to most
86322 + users on the system. If the sysctl option is enabled, a sysctl option
86323 + with name "tpe_invert" is created. Unlike other sysctl options, this
86324 + entry will default to on for backward-compatibility.
86325 +
86326 +config GRKERNSEC_TPE_GID
86327 + int
86328 + default GRKERNSEC_TPE_UNTRUSTED_GID if (GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT)
86329 + default GRKERNSEC_TPE_TRUSTED_GID if (GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT)
86330 +
86331 +config GRKERNSEC_TPE_UNTRUSTED_GID
86332 + int "GID for TPE-untrusted users"
86333 + depends on GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
86334 + default 1005
86335 + help
86336 + Setting this GID determines what group TPE restrictions will be
86337 + *enabled* for. If the sysctl option is enabled, a sysctl option
86338 + with name "tpe_gid" is created.
86339 +
86340 +config GRKERNSEC_TPE_TRUSTED_GID
86341 + int "GID for TPE-trusted users"
86342 + depends on GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
86343 + default 1005
86344 + help
86345 + Setting this GID determines what group TPE restrictions will be
86346 + *disabled* for. If the sysctl option is enabled, a sysctl option
86347 + with name "tpe_gid" is created.
86348 +
86349 +endmenu
86350 +menu "Network Protections"
86351 +depends on GRKERNSEC
86352 +
86353 +config GRKERNSEC_BLACKHOLE
86354 + bool "TCP/UDP blackhole and LAST_ACK DoS prevention"
86355 + default y if GRKERNSEC_CONFIG_AUTO
86356 + depends on NET
86357 + help
86358 + If you say Y here, neither TCP resets nor ICMP
86359 + destination-unreachable packets will be sent in response to packets
86360 + sent to ports for which no associated listening process exists.
86361 + It will also prevent the sending of ICMP protocol unreachable packets
86362 + in response to packets with unknown protocols.
86363 + This feature supports both IPV4 and IPV6 and exempts the
86364 + loopback interface from blackholing. Enabling this feature
86365 + makes a host more resilient to DoS attacks and reduces network
86366 + visibility against scanners.
86367 +
86368 + The blackhole feature as-implemented is equivalent to the FreeBSD
86369 + blackhole feature, as it prevents RST responses to all packets, not
86370 + just SYNs. Under most application behavior this causes no
86371 + problems, but applications (like haproxy) may not close certain
86372 + connections in a way that cleanly terminates them on the remote
86373 + end, leaving the remote host in LAST_ACK state. Because of this
86374 + side-effect and to prevent intentional LAST_ACK DoSes, this
86375 + feature also adds automatic mitigation against such attacks.
86376 + The mitigation drastically reduces the amount of time a socket
86377 + can spend in LAST_ACK state. If you're using haproxy and not
86378 + all servers it connects to have this option enabled, consider
86379 + disabling this feature on the haproxy host.
86380 +
86381 + If the sysctl option is enabled, two sysctl options with names
86382 + "ip_blackhole" and "lastack_retries" will be created.
86383 + While "ip_blackhole" takes the standard zero/non-zero on/off
86384 + toggle, "lastack_retries" uses the same kinds of values as
86385 + "tcp_retries1" and "tcp_retries2". The default value of 4
86386 + prevents a socket from lasting more than 45 seconds in LAST_ACK
86387 + state.
86388 +
86389 +config GRKERNSEC_NO_SIMULT_CONNECT
86390 + bool "Disable TCP Simultaneous Connect"
86391 + default y if GRKERNSEC_CONFIG_AUTO
86392 + depends on NET
86393 + help
86394 + If you say Y here, a feature by Willy Tarreau will be enabled that
86395 + removes a weakness in Linux's strict implementation of TCP that
86396 + allows two clients to connect to each other without either entering
86397 + a listening state. The weakness allows an attacker to easily prevent
86398 + a client from connecting to a known server provided the source port
86399 + for the connection is guessed correctly.
86400 +
86401 + As the weakness could be used to prevent an antivirus or IPS from
86402 + fetching updates, or prevent an SSL gateway from fetching a CRL,
86403 + it should be eliminated by enabling this option. Though Linux is
86404 + one of few operating systems supporting simultaneous connect, it
86405 + has no legitimate use in practice and is rarely supported by firewalls.
86406 +
86407 +config GRKERNSEC_SOCKET
86408 + bool "Socket restrictions"
86409 + depends on NET
86410 + help
86411 + If you say Y here, you will be able to choose from several options.
86412 + If you assign a GID on your system and add it to the supplementary
86413 + groups of users you want to restrict socket access to, this patch
86414 + will perform up to three things, based on the option(s) you choose.
86415 +
86416 +config GRKERNSEC_SOCKET_ALL
86417 + bool "Deny any sockets to group"
86418 + depends on GRKERNSEC_SOCKET
86419 + help
86420 + If you say Y here, you will be able to choose a GID of whose users will
86421 + be unable to connect to other hosts from your machine or run server
86422 + applications from your machine. If the sysctl option is enabled, a
86423 + sysctl option with name "socket_all" is created.
86424 +
86425 +config GRKERNSEC_SOCKET_ALL_GID
86426 + int "GID to deny all sockets for"
86427 + depends on GRKERNSEC_SOCKET_ALL
86428 + default 1004
86429 + help
86430 + Here you can choose the GID to disable socket access for. Remember to
86431 + add the users you want socket access disabled for to the GID
86432 + specified here. If the sysctl option is enabled, a sysctl option
86433 + with name "socket_all_gid" is created.
86434 +
86435 +config GRKERNSEC_SOCKET_CLIENT
86436 + bool "Deny client sockets to group"
86437 + depends on GRKERNSEC_SOCKET
86438 + help
86439 + If you say Y here, you will be able to choose a GID of whose users will
86440 + be unable to connect to other hosts from your machine, but will be
86441 + able to run servers. If this option is enabled, all users in the group
86442 + you specify will have to use passive mode when initiating ftp transfers
86443 + from the shell on your machine. If the sysctl option is enabled, a
86444 + sysctl option with name "socket_client" is created.
86445 +
86446 +config GRKERNSEC_SOCKET_CLIENT_GID
86447 + int "GID to deny client sockets for"
86448 + depends on GRKERNSEC_SOCKET_CLIENT
86449 + default 1003
86450 + help
86451 + Here you can choose the GID to disable client socket access for.
86452 + Remember to add the users you want client socket access disabled for to
86453 + the GID specified here. If the sysctl option is enabled, a sysctl
86454 + option with name "socket_client_gid" is created.
86455 +
86456 +config GRKERNSEC_SOCKET_SERVER
86457 + bool "Deny server sockets to group"
86458 + depends on GRKERNSEC_SOCKET
86459 + help
86460 + If you say Y here, you will be able to choose a GID of whose users will
86461 + be unable to run server applications from your machine. If the sysctl
86462 + option is enabled, a sysctl option with name "socket_server" is created.
86463 +
86464 +config GRKERNSEC_SOCKET_SERVER_GID
86465 + int "GID to deny server sockets for"
86466 + depends on GRKERNSEC_SOCKET_SERVER
86467 + default 1002
86468 + help
86469 + Here you can choose the GID to disable server socket access for.
86470 + Remember to add the users you want server socket access disabled for to
86471 + the GID specified here. If the sysctl option is enabled, a sysctl
86472 + option with name "socket_server_gid" is created.
86473 +
86474 +endmenu
86475 +
86476 +menu "Physical Protections"
86477 +depends on GRKERNSEC
86478 +
86479 +config GRKERNSEC_DENYUSB
86480 + bool "Deny new USB connections after toggle"
86481 + default y if GRKERNSEC_CONFIG_AUTO
86482 + depends on SYSCTL && USB_SUPPORT
86483 + help
86484 + If you say Y here, a new sysctl option with name "deny_new_usb"
86485 + will be created. Setting its value to 1 will prevent any new
86486 + USB devices from being recognized by the OS. Any attempted USB
86487 + device insertion will be logged. This option is intended to be
86488 + used against custom USB devices designed to exploit vulnerabilities
86489 + in various USB device drivers.
86490 +
86491 + For greatest effectiveness, this sysctl should be set after any
86492 + relevant init scripts. This option is safe to enable in distros
86493 + as each user can choose whether or not to toggle the sysctl.
86494 +
86495 +config GRKERNSEC_DENYUSB_FORCE
86496 + bool "Reject all USB devices not connected at boot"
86497 + select USB
86498 + depends on GRKERNSEC_DENYUSB
86499 + help
86500 + If you say Y here, a variant of GRKERNSEC_DENYUSB will be enabled
86501 + that doesn't involve a sysctl entry. This option should only be
86502 + enabled if you're sure you want to deny all new USB connections
86503 + at runtime and don't want to modify init scripts. This should not
86504 + be enabled by distros. It forces the core USB code to be built
86505 + into the kernel image so that all devices connected at boot time
86506 + can be recognized and new USB device connections can be prevented
86507 + prior to init running.
86508 +
86509 +endmenu
86510 +
86511 +menu "Sysctl Support"
86512 +depends on GRKERNSEC && SYSCTL
86513 +
86514 +config GRKERNSEC_SYSCTL
86515 + bool "Sysctl support"
86516 + default y if GRKERNSEC_CONFIG_AUTO
86517 + help
86518 + If you say Y here, you will be able to change the options that
86519 + grsecurity runs with at bootup, without having to recompile your
86520 + kernel. You can echo values to files in /proc/sys/kernel/grsecurity
86521 + to enable (1) or disable (0) various features. All the sysctl entries
86522 + are mutable until the "grsec_lock" entry is set to a non-zero value.
86523 + All features enabled in the kernel configuration are disabled at boot
86524 + if you do not say Y to the "Turn on features by default" option.
86525 + All options should be set at startup, and the grsec_lock entry should
86526 + be set to a non-zero value after all the options are set.
86527 + *THIS IS EXTREMELY IMPORTANT*
86528 +
86529 +config GRKERNSEC_SYSCTL_DISTRO
86530 + bool "Extra sysctl support for distro makers (READ HELP)"
86531 + depends on GRKERNSEC_SYSCTL && GRKERNSEC_IO
86532 + help
86533 + If you say Y here, additional sysctl options will be created
86534 + for features that affect processes running as root. Therefore,
86535 + it is critical when using this option that the grsec_lock entry be
86536 + enabled after boot. Only distros with prebuilt kernel packages
86537 + with this option enabled that can ensure grsec_lock is enabled
86538 + after boot should use this option.
86539 + *Failure to set grsec_lock after boot makes all grsec features
86540 + this option covers useless*
86541 +
86542 + Currently this option creates the following sysctl entries:
86543 + "Disable Privileged I/O": "disable_priv_io"
86544 +
86545 +config GRKERNSEC_SYSCTL_ON
86546 + bool "Turn on features by default"
86547 + default y if GRKERNSEC_CONFIG_AUTO
86548 + depends on GRKERNSEC_SYSCTL
86549 + help
86550 + If you say Y here, instead of having all features enabled in the
86551 + kernel configuration disabled at boot time, the features will be
86552 + enabled at boot time. It is recommended you say Y here unless
86553 + there is some reason you would want all sysctl-tunable features to
86554 + be disabled by default. As mentioned elsewhere, it is important
86555 + to enable the grsec_lock entry once you have finished modifying
86556 + the sysctl entries.
86557 +
86558 +endmenu
86559 +menu "Logging Options"
86560 +depends on GRKERNSEC
86561 +
86562 +config GRKERNSEC_FLOODTIME
86563 + int "Seconds in between log messages (minimum)"
86564 + default 10
86565 + help
86566 + This option allows you to enforce the number of seconds between
86567 + grsecurity log messages. The default should be suitable for most
86568 + people, however, if you choose to change it, choose a value small enough
86569 + to allow informative logs to be produced, but large enough to
86570 + prevent flooding.
86571 +
86572 + Setting both this value and GRKERNSEC_FLOODBURST to 0 will disable
86573 + any rate limiting on grsecurity log messages.
86574 +
86575 +config GRKERNSEC_FLOODBURST
86576 + int "Number of messages in a burst (maximum)"
86577 + default 6
86578 + help
86579 + This option allows you to choose the maximum number of messages allowed
86580 + within the flood time interval you chose in a separate option. The
86581 + default should be suitable for most people, however if you find that
86582 + many of your logs are being interpreted as flooding, you may want to
86583 + raise this value.
86584 +
86585 + Setting both this value and GRKERNSEC_FLOODTIME to 0 will disable
86586 + any rate limiting on grsecurity log messages.
86587 +
86588 +endmenu
86589 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
86590 new file mode 100644
86591 index 0000000..6fb2175
86592 --- /dev/null
86593 +++ b/grsecurity/Makefile
86594 @@ -0,0 +1,54 @@
86595 +# grsecurity - access control and security hardening for Linux
86596 +# All code in this directory and various hooks located throughout the Linux kernel are
86597 +# Copyright (C) 2001-2014 Bradley Spengler, Open Source Security, Inc.
86598 +# http://www.grsecurity.net spender@grsecurity.net
86599 +#
86600 +# This program is free software; you can redistribute it and/or
86601 +# modify it under the terms of the GNU General Public License version 2
86602 +# as published by the Free Software Foundation.
86603 +#
86604 +# This program is distributed in the hope that it will be useful,
86605 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
86606 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86607 +# GNU General Public License for more details.
86608 +#
86609 +# You should have received a copy of the GNU General Public License
86610 +# along with this program; if not, write to the Free Software
86611 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
86612 +
86613 +KBUILD_CFLAGS += -Werror
86614 +
86615 +obj-y = grsec_chdir.o grsec_chroot.o grsec_exec.o grsec_fifo.o grsec_fork.o \
86616 + grsec_mount.o grsec_sig.o grsec_sysctl.o \
86617 + grsec_time.o grsec_tpe.o grsec_link.o grsec_pax.o grsec_ptrace.o \
86618 + grsec_usb.o grsec_ipc.o grsec_proc.o
86619 +
86620 +obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \
86621 + gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \
86622 + gracl_learn.o grsec_log.o gracl_policy.o
86623 +ifdef CONFIG_COMPAT
86624 +obj-$(CONFIG_GRKERNSEC) += gracl_compat.o
86625 +endif
86626 +
86627 +obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o
86628 +
86629 +ifdef CONFIG_NET
86630 +obj-y += grsec_sock.o
86631 +obj-$(CONFIG_GRKERNSEC) += gracl_ip.o
86632 +endif
86633 +
86634 +ifndef CONFIG_GRKERNSEC
86635 +obj-y += grsec_disabled.o
86636 +endif
86637 +
86638 +ifdef CONFIG_GRKERNSEC_HIDESYM
86639 +extra-y := grsec_hidesym.o
86640 +$(obj)/grsec_hidesym.o:
86641 + @-chmod -f 500 /boot
86642 + @-chmod -f 500 /lib/modules
86643 + @-chmod -f 500 /lib64/modules
86644 + @-chmod -f 500 /lib32/modules
86645 + @-chmod -f 700 .
86646 + @-chmod -f 700 $(objtree)
86647 + @echo ' grsec: protected kernel image paths'
86648 +endif
86649 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
86650 new file mode 100644
86651 index 0000000..7ad630a
86652 --- /dev/null
86653 +++ b/grsecurity/gracl.c
86654 @@ -0,0 +1,2757 @@
86655 +#include <linux/kernel.h>
86656 +#include <linux/module.h>
86657 +#include <linux/sched.h>
86658 +#include <linux/mm.h>
86659 +#include <linux/file.h>
86660 +#include <linux/fs.h>
86661 +#include <linux/namei.h>
86662 +#include <linux/mount.h>
86663 +#include <linux/tty.h>
86664 +#include <linux/proc_fs.h>
86665 +#include <linux/lglock.h>
86666 +#include <linux/slab.h>
86667 +#include <linux/vmalloc.h>
86668 +#include <linux/types.h>
86669 +#include <linux/sysctl.h>
86670 +#include <linux/netdevice.h>
86671 +#include <linux/ptrace.h>
86672 +#include <linux/gracl.h>
86673 +#include <linux/gralloc.h>
86674 +#include <linux/security.h>
86675 +#include <linux/grinternal.h>
86676 +#include <linux/pid_namespace.h>
86677 +#include <linux/stop_machine.h>
86678 +#include <linux/fdtable.h>
86679 +#include <linux/percpu.h>
86680 +#include <linux/lglock.h>
86681 +#include <linux/hugetlb.h>
86682 +#include <linux/posix-timers.h>
86683 +#include <linux/prefetch.h>
86684 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86685 +#include <linux/magic.h>
86686 +#include <linux/pagemap.h>
86687 +#include "../fs/btrfs/async-thread.h"
86688 +#include "../fs/btrfs/ctree.h"
86689 +#include "../fs/btrfs/btrfs_inode.h"
86690 +#endif
86691 +#include "../fs/mount.h"
86692 +
86693 +#include <asm/uaccess.h>
86694 +#include <asm/errno.h>
86695 +#include <asm/mman.h>
86696 +
86697 +#define FOR_EACH_ROLE_START(role) \
86698 + role = running_polstate.role_list; \
86699 + while (role) {
86700 +
86701 +#define FOR_EACH_ROLE_END(role) \
86702 + role = role->prev; \
86703 + }
86704 +
86705 +extern struct path gr_real_root;
86706 +
86707 +static struct gr_policy_state running_polstate;
86708 +struct gr_policy_state *polstate = &running_polstate;
86709 +extern struct gr_alloc_state *current_alloc_state;
86710 +
86711 +extern char *gr_shared_page[4];
86712 +DEFINE_RWLOCK(gr_inode_lock);
86713 +
86714 +static unsigned int gr_status __read_only = GR_STATUS_INIT;
86715 +
86716 +#ifdef CONFIG_NET
86717 +extern struct vfsmount *sock_mnt;
86718 +#endif
86719 +
86720 +extern struct vfsmount *pipe_mnt;
86721 +extern struct vfsmount *shm_mnt;
86722 +
86723 +#ifdef CONFIG_HUGETLBFS
86724 +extern struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
86725 +#endif
86726 +
86727 +extern u16 acl_sp_role_value;
86728 +extern struct acl_object_label *fakefs_obj_rw;
86729 +extern struct acl_object_label *fakefs_obj_rwx;
86730 +
86731 +int gr_acl_is_enabled(void)
86732 +{
86733 + return (gr_status & GR_READY);
86734 +}
86735 +
86736 +void gr_enable_rbac_system(void)
86737 +{
86738 + pax_open_kernel();
86739 + gr_status |= GR_READY;
86740 + pax_close_kernel();
86741 +}
86742 +
86743 +int gr_rbac_disable(void *unused)
86744 +{
86745 + pax_open_kernel();
86746 + gr_status &= ~GR_READY;
86747 + pax_close_kernel();
86748 +
86749 + return 0;
86750 +}
86751 +
86752 +static inline dev_t __get_dev(const struct dentry *dentry)
86753 +{
86754 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86755 +
86756 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86757 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86758 + return BTRFS_I(d_inode(ldentry))->root->anon_dev;
86759 + else
86760 +#endif
86761 + return d_inode(ldentry)->i_sb->s_dev;
86762 +}
86763 +
86764 +static inline u64 __get_ino(const struct dentry *dentry)
86765 +{
86766 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86767 +
86768 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86769 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86770 + return btrfs_ino(d_inode(dentry));
86771 + else
86772 +#endif
86773 + return d_inode(ldentry)->i_ino;
86774 +}
86775 +
86776 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
86777 +{
86778 + return __get_dev(dentry);
86779 +}
86780 +
86781 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
86782 +{
86783 + return __get_ino(dentry);
86784 +}
86785 +
86786 +static char gr_task_roletype_to_char(struct task_struct *task)
86787 +{
86788 + switch (task->role->roletype &
86789 + (GR_ROLE_DEFAULT | GR_ROLE_USER | GR_ROLE_GROUP |
86790 + GR_ROLE_SPECIAL)) {
86791 + case GR_ROLE_DEFAULT:
86792 + return 'D';
86793 + case GR_ROLE_USER:
86794 + return 'U';
86795 + case GR_ROLE_GROUP:
86796 + return 'G';
86797 + case GR_ROLE_SPECIAL:
86798 + return 'S';
86799 + }
86800 +
86801 + return 'X';
86802 +}
86803 +
86804 +char gr_roletype_to_char(void)
86805 +{
86806 + return gr_task_roletype_to_char(current);
86807 +}
86808 +
86809 +int
86810 +gr_acl_tpe_check(void)
86811 +{
86812 + if (unlikely(!(gr_status & GR_READY)))
86813 + return 0;
86814 + if (current->role->roletype & GR_ROLE_TPE)
86815 + return 1;
86816 + else
86817 + return 0;
86818 +}
86819 +
86820 +int
86821 +gr_handle_rawio(const struct inode *inode)
86822 +{
86823 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
86824 + if (inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR)) &&
86825 + grsec_enable_chroot_caps && proc_is_chrooted(current) &&
86826 + !capable(CAP_SYS_RAWIO))
86827 + return 1;
86828 +#endif
86829 + return 0;
86830 +}
86831 +
86832 +int
86833 +gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb)
86834 +{
86835 + if (likely(lena != lenb))
86836 + return 0;
86837 +
86838 + return !memcmp(a, b, lena);
86839 +}
86840 +
86841 +static int prepend(char **buffer, int *buflen, const char *str, int namelen)
86842 +{
86843 + *buflen -= namelen;
86844 + if (*buflen < 0)
86845 + return -ENAMETOOLONG;
86846 + *buffer -= namelen;
86847 + memcpy(*buffer, str, namelen);
86848 + return 0;
86849 +}
86850 +
86851 +static int prepend_name(char **buffer, int *buflen, struct qstr *name)
86852 +{
86853 + return prepend(buffer, buflen, name->name, name->len);
86854 +}
86855 +
86856 +static int prepend_path(const struct path *path, struct path *root,
86857 + char **buffer, int *buflen)
86858 +{
86859 + struct dentry *dentry = path->dentry;
86860 + struct vfsmount *vfsmnt = path->mnt;
86861 + struct mount *mnt = real_mount(vfsmnt);
86862 + bool slash = false;
86863 + int error = 0;
86864 +
86865 + while (dentry != root->dentry || vfsmnt != root->mnt) {
86866 + struct dentry * parent;
86867 +
86868 + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
86869 + /* Global root? */
86870 + if (!mnt_has_parent(mnt)) {
86871 + goto out;
86872 + }
86873 + dentry = mnt->mnt_mountpoint;
86874 + mnt = mnt->mnt_parent;
86875 + vfsmnt = &mnt->mnt;
86876 + continue;
86877 + }
86878 + parent = dentry->d_parent;
86879 + prefetch(parent);
86880 + spin_lock(&dentry->d_lock);
86881 + error = prepend_name(buffer, buflen, &dentry->d_name);
86882 + spin_unlock(&dentry->d_lock);
86883 + if (!error)
86884 + error = prepend(buffer, buflen, "/", 1);
86885 + if (error)
86886 + break;
86887 +
86888 + slash = true;
86889 + dentry = parent;
86890 + }
86891 +
86892 +out:
86893 + if (!error && !slash)
86894 + error = prepend(buffer, buflen, "/", 1);
86895 +
86896 + return error;
86897 +}
86898 +
86899 +/* this must be called with mount_lock and rename_lock held */
86900 +
86901 +static char *__our_d_path(const struct path *path, struct path *root,
86902 + char *buf, int buflen)
86903 +{
86904 + char *res = buf + buflen;
86905 + int error;
86906 +
86907 + prepend(&res, &buflen, "\0", 1);
86908 + error = prepend_path(path, root, &res, &buflen);
86909 + if (error)
86910 + return ERR_PTR(error);
86911 +
86912 + return res;
86913 +}
86914 +
86915 +static char *
86916 +gen_full_path(struct path *path, struct path *root, char *buf, int buflen)
86917 +{
86918 + char *retval;
86919 +
86920 + retval = __our_d_path(path, root, buf, buflen);
86921 + if (unlikely(IS_ERR(retval)))
86922 + retval = strcpy(buf, "<path too long>");
86923 + else if (unlikely(retval[1] == '/' && retval[2] == '\0'))
86924 + retval[1] = '\0';
86925 +
86926 + return retval;
86927 +}
86928 +
86929 +static char *
86930 +__d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
86931 + char *buf, int buflen)
86932 +{
86933 + struct path path;
86934 + char *res;
86935 +
86936 + path.dentry = (struct dentry *)dentry;
86937 + path.mnt = (struct vfsmount *)vfsmnt;
86938 +
86939 + /* we can use gr_real_root.dentry, gr_real_root.mnt, because this is only called
86940 + by the RBAC system */
86941 + res = gen_full_path(&path, &gr_real_root, buf, buflen);
86942 +
86943 + return res;
86944 +}
86945 +
86946 +static char *
86947 +d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
86948 + char *buf, int buflen)
86949 +{
86950 + char *res;
86951 + struct path path;
86952 + struct path root;
86953 + struct task_struct *reaper = init_pid_ns.child_reaper;
86954 +
86955 + path.dentry = (struct dentry *)dentry;
86956 + path.mnt = (struct vfsmount *)vfsmnt;
86957 +
86958 + /* we can't use gr_real_root.dentry, gr_real_root.mnt, because they belong only to the RBAC system */
86959 + get_fs_root(reaper->fs, &root);
86960 +
86961 + read_seqlock_excl(&mount_lock);
86962 + write_seqlock(&rename_lock);
86963 + res = gen_full_path(&path, &root, buf, buflen);
86964 + write_sequnlock(&rename_lock);
86965 + read_sequnlock_excl(&mount_lock);
86966 +
86967 + path_put(&root);
86968 + return res;
86969 +}
86970 +
86971 +char *
86972 +gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
86973 +{
86974 + char *ret;
86975 + read_seqlock_excl(&mount_lock);
86976 + write_seqlock(&rename_lock);
86977 + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
86978 + PAGE_SIZE);
86979 + write_sequnlock(&rename_lock);
86980 + read_sequnlock_excl(&mount_lock);
86981 + return ret;
86982 +}
86983 +
86984 +static char *
86985 +gr_to_proc_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
86986 +{
86987 + char *ret;
86988 + char *buf;
86989 + int buflen;
86990 +
86991 + read_seqlock_excl(&mount_lock);
86992 + write_seqlock(&rename_lock);
86993 + buf = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
86994 + ret = __d_real_path(dentry, mnt, buf, PAGE_SIZE - 6);
86995 + buflen = (int)(ret - buf);
86996 + if (buflen >= 5)
86997 + prepend(&ret, &buflen, "/proc", 5);
86998 + else
86999 + ret = strcpy(buf, "<path too long>");
87000 + write_sequnlock(&rename_lock);
87001 + read_sequnlock_excl(&mount_lock);
87002 + return ret;
87003 +}
87004 +
87005 +char *
87006 +gr_to_filename_nolock(const struct dentry *dentry, const struct vfsmount *mnt)
87007 +{
87008 + return __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
87009 + PAGE_SIZE);
87010 +}
87011 +
87012 +char *
87013 +gr_to_filename(const struct dentry *dentry, const struct vfsmount *mnt)
87014 +{
87015 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
87016 + PAGE_SIZE);
87017 +}
87018 +
87019 +char *
87020 +gr_to_filename1(const struct dentry *dentry, const struct vfsmount *mnt)
87021 +{
87022 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[1], smp_processor_id()),
87023 + PAGE_SIZE);
87024 +}
87025 +
87026 +char *
87027 +gr_to_filename2(const struct dentry *dentry, const struct vfsmount *mnt)
87028 +{
87029 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[2], smp_processor_id()),
87030 + PAGE_SIZE);
87031 +}
87032 +
87033 +char *
87034 +gr_to_filename3(const struct dentry *dentry, const struct vfsmount *mnt)
87035 +{
87036 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[3], smp_processor_id()),
87037 + PAGE_SIZE);
87038 +}
87039 +
87040 +__u32
87041 +to_gr_audit(const __u32 reqmode)
87042 +{
87043 + /* masks off auditable permission flags, then shifts them to create
87044 + auditing flags, and adds the special case of append auditing if
87045 + we're requesting write */
87046 + return (((reqmode & ~GR_AUDITS) << 10) | ((reqmode & GR_WRITE) ? GR_AUDIT_APPEND : 0));
87047 +}
87048 +
87049 +struct acl_role_label *
87050 +__lookup_acl_role_label(const struct gr_policy_state *state, const struct task_struct *task, const uid_t uid,
87051 + const gid_t gid)
87052 +{
87053 + unsigned int index = gr_rhash(uid, GR_ROLE_USER, state->acl_role_set.r_size);
87054 + struct acl_role_label *match;
87055 + struct role_allowed_ip *ipp;
87056 + unsigned int x;
87057 + u32 curr_ip = task->signal->saved_ip;
87058 +
87059 + match = state->acl_role_set.r_hash[index];
87060 +
87061 + while (match) {
87062 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_USER)) == (GR_ROLE_DOMAIN | GR_ROLE_USER)) {
87063 + for (x = 0; x < match->domain_child_num; x++) {
87064 + if (match->domain_children[x] == uid)
87065 + goto found;
87066 + }
87067 + } else if (match->uidgid == uid && match->roletype & GR_ROLE_USER)
87068 + break;
87069 + match = match->next;
87070 + }
87071 +found:
87072 + if (match == NULL) {
87073 + try_group:
87074 + index = gr_rhash(gid, GR_ROLE_GROUP, state->acl_role_set.r_size);
87075 + match = state->acl_role_set.r_hash[index];
87076 +
87077 + while (match) {
87078 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) == (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) {
87079 + for (x = 0; x < match->domain_child_num; x++) {
87080 + if (match->domain_children[x] == gid)
87081 + goto found2;
87082 + }
87083 + } else if (match->uidgid == gid && match->roletype & GR_ROLE_GROUP)
87084 + break;
87085 + match = match->next;
87086 + }
87087 +found2:
87088 + if (match == NULL)
87089 + match = state->default_role;
87090 + if (match->allowed_ips == NULL)
87091 + return match;
87092 + else {
87093 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
87094 + if (likely
87095 + ((ntohl(curr_ip) & ipp->netmask) ==
87096 + (ntohl(ipp->addr) & ipp->netmask)))
87097 + return match;
87098 + }
87099 + match = state->default_role;
87100 + }
87101 + } else if (match->allowed_ips == NULL) {
87102 + return match;
87103 + } else {
87104 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
87105 + if (likely
87106 + ((ntohl(curr_ip) & ipp->netmask) ==
87107 + (ntohl(ipp->addr) & ipp->netmask)))
87108 + return match;
87109 + }
87110 + goto try_group;
87111 + }
87112 +
87113 + return match;
87114 +}
87115 +
87116 +static struct acl_role_label *
87117 +lookup_acl_role_label(const struct task_struct *task, const uid_t uid,
87118 + const gid_t gid)
87119 +{
87120 + return __lookup_acl_role_label(&running_polstate, task, uid, gid);
87121 +}
87122 +
87123 +struct acl_subject_label *
87124 +lookup_acl_subj_label(const u64 ino, const dev_t dev,
87125 + const struct acl_role_label *role)
87126 +{
87127 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
87128 + struct acl_subject_label *match;
87129 +
87130 + match = role->subj_hash[index];
87131 +
87132 + while (match && (match->inode != ino || match->device != dev ||
87133 + (match->mode & GR_DELETED))) {
87134 + match = match->next;
87135 + }
87136 +
87137 + if (match && !(match->mode & GR_DELETED))
87138 + return match;
87139 + else
87140 + return NULL;
87141 +}
87142 +
87143 +struct acl_subject_label *
87144 +lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev,
87145 + const struct acl_role_label *role)
87146 +{
87147 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
87148 + struct acl_subject_label *match;
87149 +
87150 + match = role->subj_hash[index];
87151 +
87152 + while (match && (match->inode != ino || match->device != dev ||
87153 + !(match->mode & GR_DELETED))) {
87154 + match = match->next;
87155 + }
87156 +
87157 + if (match && (match->mode & GR_DELETED))
87158 + return match;
87159 + else
87160 + return NULL;
87161 +}
87162 +
87163 +static struct acl_object_label *
87164 +lookup_acl_obj_label(const u64 ino, const dev_t dev,
87165 + const struct acl_subject_label *subj)
87166 +{
87167 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
87168 + struct acl_object_label *match;
87169 +
87170 + match = subj->obj_hash[index];
87171 +
87172 + while (match && (match->inode != ino || match->device != dev ||
87173 + (match->mode & GR_DELETED))) {
87174 + match = match->next;
87175 + }
87176 +
87177 + if (match && !(match->mode & GR_DELETED))
87178 + return match;
87179 + else
87180 + return NULL;
87181 +}
87182 +
87183 +static struct acl_object_label *
87184 +lookup_acl_obj_label_create(const u64 ino, const dev_t dev,
87185 + const struct acl_subject_label *subj)
87186 +{
87187 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
87188 + struct acl_object_label *match;
87189 +
87190 + match = subj->obj_hash[index];
87191 +
87192 + while (match && (match->inode != ino || match->device != dev ||
87193 + !(match->mode & GR_DELETED))) {
87194 + match = match->next;
87195 + }
87196 +
87197 + if (match && (match->mode & GR_DELETED))
87198 + return match;
87199 +
87200 + match = subj->obj_hash[index];
87201 +
87202 + while (match && (match->inode != ino || match->device != dev ||
87203 + (match->mode & GR_DELETED))) {
87204 + match = match->next;
87205 + }
87206 +
87207 + if (match && !(match->mode & GR_DELETED))
87208 + return match;
87209 + else
87210 + return NULL;
87211 +}
87212 +
87213 +struct name_entry *
87214 +__lookup_name_entry(const struct gr_policy_state *state, const char *name)
87215 +{
87216 + unsigned int len = strlen(name);
87217 + unsigned int key = full_name_hash(name, len);
87218 + unsigned int index = key % state->name_set.n_size;
87219 + struct name_entry *match;
87220 +
87221 + match = state->name_set.n_hash[index];
87222 +
87223 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len)))
87224 + match = match->next;
87225 +
87226 + return match;
87227 +}
87228 +
87229 +static struct name_entry *
87230 +lookup_name_entry(const char *name)
87231 +{
87232 + return __lookup_name_entry(&running_polstate, name);
87233 +}
87234 +
87235 +static struct name_entry *
87236 +lookup_name_entry_create(const char *name)
87237 +{
87238 + unsigned int len = strlen(name);
87239 + unsigned int key = full_name_hash(name, len);
87240 + unsigned int index = key % running_polstate.name_set.n_size;
87241 + struct name_entry *match;
87242 +
87243 + match = running_polstate.name_set.n_hash[index];
87244 +
87245 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
87246 + !match->deleted))
87247 + match = match->next;
87248 +
87249 + if (match && match->deleted)
87250 + return match;
87251 +
87252 + match = running_polstate.name_set.n_hash[index];
87253 +
87254 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
87255 + match->deleted))
87256 + match = match->next;
87257 +
87258 + if (match && !match->deleted)
87259 + return match;
87260 + else
87261 + return NULL;
87262 +}
87263 +
87264 +static struct inodev_entry *
87265 +lookup_inodev_entry(const u64 ino, const dev_t dev)
87266 +{
87267 + unsigned int index = gr_fhash(ino, dev, running_polstate.inodev_set.i_size);
87268 + struct inodev_entry *match;
87269 +
87270 + match = running_polstate.inodev_set.i_hash[index];
87271 +
87272 + while (match && (match->nentry->inode != ino || match->nentry->device != dev))
87273 + match = match->next;
87274 +
87275 + return match;
87276 +}
87277 +
87278 +void
87279 +__insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry)
87280 +{
87281 + unsigned int index = gr_fhash(entry->nentry->inode, entry->nentry->device,
87282 + state->inodev_set.i_size);
87283 + struct inodev_entry **curr;
87284 +
87285 + entry->prev = NULL;
87286 +
87287 + curr = &state->inodev_set.i_hash[index];
87288 + if (*curr != NULL)
87289 + (*curr)->prev = entry;
87290 +
87291 + entry->next = *curr;
87292 + *curr = entry;
87293 +
87294 + return;
87295 +}
87296 +
87297 +static void
87298 +insert_inodev_entry(struct inodev_entry *entry)
87299 +{
87300 + __insert_inodev_entry(&running_polstate, entry);
87301 +}
87302 +
87303 +void
87304 +insert_acl_obj_label(struct acl_object_label *obj,
87305 + struct acl_subject_label *subj)
87306 +{
87307 + unsigned int index =
87308 + gr_fhash(obj->inode, obj->device, subj->obj_hash_size);
87309 + struct acl_object_label **curr;
87310 +
87311 + obj->prev = NULL;
87312 +
87313 + curr = &subj->obj_hash[index];
87314 + if (*curr != NULL)
87315 + (*curr)->prev = obj;
87316 +
87317 + obj->next = *curr;
87318 + *curr = obj;
87319 +
87320 + return;
87321 +}
87322 +
87323 +void
87324 +insert_acl_subj_label(struct acl_subject_label *obj,
87325 + struct acl_role_label *role)
87326 +{
87327 + unsigned int index = gr_fhash(obj->inode, obj->device, role->subj_hash_size);
87328 + struct acl_subject_label **curr;
87329 +
87330 + obj->prev = NULL;
87331 +
87332 + curr = &role->subj_hash[index];
87333 + if (*curr != NULL)
87334 + (*curr)->prev = obj;
87335 +
87336 + obj->next = *curr;
87337 + *curr = obj;
87338 +
87339 + return;
87340 +}
87341 +
87342 +/* derived from glibc fnmatch() 0: match, 1: no match*/
87343 +
87344 +static int
87345 +glob_match(const char *p, const char *n)
87346 +{
87347 + char c;
87348 +
87349 + while ((c = *p++) != '\0') {
87350 + switch (c) {
87351 + case '?':
87352 + if (*n == '\0')
87353 + return 1;
87354 + else if (*n == '/')
87355 + return 1;
87356 + break;
87357 + case '\\':
87358 + if (*n != c)
87359 + return 1;
87360 + break;
87361 + case '*':
87362 + for (c = *p++; c == '?' || c == '*'; c = *p++) {
87363 + if (*n == '/')
87364 + return 1;
87365 + else if (c == '?') {
87366 + if (*n == '\0')
87367 + return 1;
87368 + else
87369 + ++n;
87370 + }
87371 + }
87372 + if (c == '\0') {
87373 + return 0;
87374 + } else {
87375 + const char *endp;
87376 +
87377 + if ((endp = strchr(n, '/')) == NULL)
87378 + endp = n + strlen(n);
87379 +
87380 + if (c == '[') {
87381 + for (--p; n < endp; ++n)
87382 + if (!glob_match(p, n))
87383 + return 0;
87384 + } else if (c == '/') {
87385 + while (*n != '\0' && *n != '/')
87386 + ++n;
87387 + if (*n == '/' && !glob_match(p, n + 1))
87388 + return 0;
87389 + } else {
87390 + for (--p; n < endp; ++n)
87391 + if (*n == c && !glob_match(p, n))
87392 + return 0;
87393 + }
87394 +
87395 + return 1;
87396 + }
87397 + case '[':
87398 + {
87399 + int not;
87400 + char cold;
87401 +
87402 + if (*n == '\0' || *n == '/')
87403 + return 1;
87404 +
87405 + not = (*p == '!' || *p == '^');
87406 + if (not)
87407 + ++p;
87408 +
87409 + c = *p++;
87410 + for (;;) {
87411 + unsigned char fn = (unsigned char)*n;
87412 +
87413 + if (c == '\0')
87414 + return 1;
87415 + else {
87416 + if (c == fn)
87417 + goto matched;
87418 + cold = c;
87419 + c = *p++;
87420 +
87421 + if (c == '-' && *p != ']') {
87422 + unsigned char cend = *p++;
87423 +
87424 + if (cend == '\0')
87425 + return 1;
87426 +
87427 + if (cold <= fn && fn <= cend)
87428 + goto matched;
87429 +
87430 + c = *p++;
87431 + }
87432 + }
87433 +
87434 + if (c == ']')
87435 + break;
87436 + }
87437 + if (!not)
87438 + return 1;
87439 + break;
87440 + matched:
87441 + while (c != ']') {
87442 + if (c == '\0')
87443 + return 1;
87444 +
87445 + c = *p++;
87446 + }
87447 + if (not)
87448 + return 1;
87449 + }
87450 + break;
87451 + default:
87452 + if (c != *n)
87453 + return 1;
87454 + }
87455 +
87456 + ++n;
87457 + }
87458 +
87459 + if (*n == '\0')
87460 + return 0;
87461 +
87462 + if (*n == '/')
87463 + return 0;
87464 +
87465 + return 1;
87466 +}
87467 +
87468 +static struct acl_object_label *
87469 +chk_glob_label(struct acl_object_label *globbed,
87470 + const struct dentry *dentry, const struct vfsmount *mnt, char **path)
87471 +{
87472 + struct acl_object_label *tmp;
87473 +
87474 + if (*path == NULL)
87475 + *path = gr_to_filename_nolock(dentry, mnt);
87476 +
87477 + tmp = globbed;
87478 +
87479 + while (tmp) {
87480 + if (!glob_match(tmp->filename, *path))
87481 + return tmp;
87482 + tmp = tmp->next;
87483 + }
87484 +
87485 + return NULL;
87486 +}
87487 +
87488 +static struct acl_object_label *
87489 +__full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
87490 + const u64 curr_ino, const dev_t curr_dev,
87491 + const struct acl_subject_label *subj, char **path, const int checkglob)
87492 +{
87493 + struct acl_subject_label *tmpsubj;
87494 + struct acl_object_label *retval;
87495 + struct acl_object_label *retval2;
87496 +
87497 + tmpsubj = (struct acl_subject_label *) subj;
87498 + read_lock(&gr_inode_lock);
87499 + do {
87500 + retval = lookup_acl_obj_label(curr_ino, curr_dev, tmpsubj);
87501 + if (retval) {
87502 + if (checkglob && retval->globbed) {
87503 + retval2 = chk_glob_label(retval->globbed, orig_dentry, orig_mnt, path);
87504 + if (retval2)
87505 + retval = retval2;
87506 + }
87507 + break;
87508 + }
87509 + } while ((tmpsubj = tmpsubj->parent_subject));
87510 + read_unlock(&gr_inode_lock);
87511 +
87512 + return retval;
87513 +}
87514 +
87515 +static struct acl_object_label *
87516 +full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
87517 + struct dentry *curr_dentry,
87518 + const struct acl_subject_label *subj, char **path, const int checkglob)
87519 +{
87520 + int newglob = checkglob;
87521 + u64 inode;
87522 + dev_t device;
87523 +
87524 + /* if we aren't checking a subdirectory of the original path yet, don't do glob checking
87525 + as we don't want a / * rule to match instead of the / object
87526 + don't do this for create lookups that call this function though, since they're looking up
87527 + on the parent and thus need globbing checks on all paths
87528 + */
87529 + if (orig_dentry == curr_dentry && newglob != GR_CREATE_GLOB)
87530 + newglob = GR_NO_GLOB;
87531 +
87532 + spin_lock(&curr_dentry->d_lock);
87533 + inode = __get_ino(curr_dentry);
87534 + device = __get_dev(curr_dentry);
87535 + spin_unlock(&curr_dentry->d_lock);
87536 +
87537 + return __full_lookup(orig_dentry, orig_mnt, inode, device, subj, path, newglob);
87538 +}
87539 +
87540 +#ifdef CONFIG_HUGETLBFS
87541 +static inline bool
87542 +is_hugetlbfs_mnt(const struct vfsmount *mnt)
87543 +{
87544 + int i;
87545 + for (i = 0; i < HUGE_MAX_HSTATE; i++) {
87546 + if (unlikely(hugetlbfs_vfsmount[i] == mnt))
87547 + return true;
87548 + }
87549 +
87550 + return false;
87551 +}
87552 +#endif
87553 +
87554 +static struct acl_object_label *
87555 +__chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87556 + const struct acl_subject_label *subj, char *path, const int checkglob)
87557 +{
87558 + struct dentry *dentry = (struct dentry *) l_dentry;
87559 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
87560 + struct inode * inode = d_backing_inode(dentry);
87561 + struct mount *real_mnt = real_mount(mnt);
87562 + struct acl_object_label *retval;
87563 + struct dentry *parent;
87564 +
87565 + read_seqlock_excl(&mount_lock);
87566 + write_seqlock(&rename_lock);
87567 +
87568 + if (unlikely((mnt == shm_mnt && inode->i_nlink == 0) || mnt == pipe_mnt ||
87569 +#ifdef CONFIG_NET
87570 + mnt == sock_mnt ||
87571 +#endif
87572 +#ifdef CONFIG_HUGETLBFS
87573 + (is_hugetlbfs_mnt(mnt) && inode->i_nlink == 0) ||
87574 +#endif
87575 + /* ignore Eric Biederman */
87576 + IS_PRIVATE(inode))) {
87577 + retval = (subj->mode & GR_SHMEXEC) ? fakefs_obj_rwx : fakefs_obj_rw;
87578 + goto out;
87579 + }
87580 +
87581 + for (;;) {
87582 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87583 + break;
87584 +
87585 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87586 + if (!mnt_has_parent(real_mnt))
87587 + break;
87588 +
87589 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87590 + if (retval != NULL)
87591 + goto out;
87592 +
87593 + dentry = real_mnt->mnt_mountpoint;
87594 + real_mnt = real_mnt->mnt_parent;
87595 + mnt = &real_mnt->mnt;
87596 + continue;
87597 + }
87598 +
87599 + parent = dentry->d_parent;
87600 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87601 + if (retval != NULL)
87602 + goto out;
87603 +
87604 + dentry = parent;
87605 + }
87606 +
87607 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87608 +
87609 + /* gr_real_root is pinned so we don't have to hold a reference */
87610 + if (retval == NULL)
87611 + retval = full_lookup(l_dentry, l_mnt, gr_real_root.dentry, subj, &path, checkglob);
87612 +out:
87613 + write_sequnlock(&rename_lock);
87614 + read_sequnlock_excl(&mount_lock);
87615 +
87616 + BUG_ON(retval == NULL);
87617 +
87618 + return retval;
87619 +}
87620 +
87621 +static struct acl_object_label *
87622 +chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87623 + const struct acl_subject_label *subj)
87624 +{
87625 + char *path = NULL;
87626 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_REG_GLOB);
87627 +}
87628 +
87629 +static struct acl_object_label *
87630 +chk_obj_label_noglob(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87631 + const struct acl_subject_label *subj)
87632 +{
87633 + char *path = NULL;
87634 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_NO_GLOB);
87635 +}
87636 +
87637 +static struct acl_object_label *
87638 +chk_obj_create_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87639 + const struct acl_subject_label *subj, char *path)
87640 +{
87641 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_CREATE_GLOB);
87642 +}
87643 +
87644 +struct acl_subject_label *
87645 +chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87646 + const struct acl_role_label *role)
87647 +{
87648 + struct dentry *dentry = (struct dentry *) l_dentry;
87649 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
87650 + struct mount *real_mnt = real_mount(mnt);
87651 + struct acl_subject_label *retval;
87652 + struct dentry *parent;
87653 +
87654 + read_seqlock_excl(&mount_lock);
87655 + write_seqlock(&rename_lock);
87656 +
87657 + for (;;) {
87658 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87659 + break;
87660 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87661 + if (!mnt_has_parent(real_mnt))
87662 + break;
87663 +
87664 + spin_lock(&dentry->d_lock);
87665 + read_lock(&gr_inode_lock);
87666 + retval =
87667 + lookup_acl_subj_label(__get_ino(dentry),
87668 + __get_dev(dentry), role);
87669 + read_unlock(&gr_inode_lock);
87670 + spin_unlock(&dentry->d_lock);
87671 + if (retval != NULL)
87672 + goto out;
87673 +
87674 + dentry = real_mnt->mnt_mountpoint;
87675 + real_mnt = real_mnt->mnt_parent;
87676 + mnt = &real_mnt->mnt;
87677 + continue;
87678 + }
87679 +
87680 + spin_lock(&dentry->d_lock);
87681 + read_lock(&gr_inode_lock);
87682 + retval = lookup_acl_subj_label(__get_ino(dentry),
87683 + __get_dev(dentry), role);
87684 + read_unlock(&gr_inode_lock);
87685 + parent = dentry->d_parent;
87686 + spin_unlock(&dentry->d_lock);
87687 +
87688 + if (retval != NULL)
87689 + goto out;
87690 +
87691 + dentry = parent;
87692 + }
87693 +
87694 + spin_lock(&dentry->d_lock);
87695 + read_lock(&gr_inode_lock);
87696 + retval = lookup_acl_subj_label(__get_ino(dentry),
87697 + __get_dev(dentry), role);
87698 + read_unlock(&gr_inode_lock);
87699 + spin_unlock(&dentry->d_lock);
87700 +
87701 + if (unlikely(retval == NULL)) {
87702 + /* gr_real_root is pinned, we don't need to hold a reference */
87703 + read_lock(&gr_inode_lock);
87704 + retval = lookup_acl_subj_label(__get_ino(gr_real_root.dentry),
87705 + __get_dev(gr_real_root.dentry), role);
87706 + read_unlock(&gr_inode_lock);
87707 + }
87708 +out:
87709 + write_sequnlock(&rename_lock);
87710 + read_sequnlock_excl(&mount_lock);
87711 +
87712 + BUG_ON(retval == NULL);
87713 +
87714 + return retval;
87715 +}
87716 +
87717 +void
87718 +assign_special_role(const char *rolename)
87719 +{
87720 + struct acl_object_label *obj;
87721 + struct acl_role_label *r;
87722 + struct acl_role_label *assigned = NULL;
87723 + struct task_struct *tsk;
87724 + struct file *filp;
87725 +
87726 + FOR_EACH_ROLE_START(r)
87727 + if (!strcmp(rolename, r->rolename) &&
87728 + (r->roletype & GR_ROLE_SPECIAL)) {
87729 + assigned = r;
87730 + break;
87731 + }
87732 + FOR_EACH_ROLE_END(r)
87733 +
87734 + if (!assigned)
87735 + return;
87736 +
87737 + read_lock(&tasklist_lock);
87738 + read_lock(&grsec_exec_file_lock);
87739 +
87740 + tsk = current->real_parent;
87741 + if (tsk == NULL)
87742 + goto out_unlock;
87743 +
87744 + filp = tsk->exec_file;
87745 + if (filp == NULL)
87746 + goto out_unlock;
87747 +
87748 + tsk->is_writable = 0;
87749 + tsk->inherited = 0;
87750 +
87751 + tsk->acl_sp_role = 1;
87752 + tsk->acl_role_id = ++acl_sp_role_value;
87753 + tsk->role = assigned;
87754 + tsk->acl = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role);
87755 +
87756 + /* ignore additional mmap checks for processes that are writable
87757 + by the default ACL */
87758 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
87759 + if (unlikely(obj->mode & GR_WRITE))
87760 + tsk->is_writable = 1;
87761 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role->root_label);
87762 + if (unlikely(obj->mode & GR_WRITE))
87763 + tsk->is_writable = 1;
87764 +
87765 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87766 + printk(KERN_ALERT "Assigning special role:%s subject:%s to process (%s:%d)\n", tsk->role->rolename,
87767 + tsk->acl->filename, tsk->comm, task_pid_nr(tsk));
87768 +#endif
87769 +
87770 +out_unlock:
87771 + read_unlock(&grsec_exec_file_lock);
87772 + read_unlock(&tasklist_lock);
87773 + return;
87774 +}
87775 +
87776 +
87777 +static void
87778 +gr_log_learn(const struct dentry *dentry, const struct vfsmount *mnt, const __u32 mode)
87779 +{
87780 + struct task_struct *task = current;
87781 + const struct cred *cred = current_cred();
87782 +
87783 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename, task->role->roletype,
87784 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87785 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87786 + 1UL, 1UL, gr_to_filename(dentry, mnt), (unsigned long) mode, &task->signal->saved_ip);
87787 +
87788 + return;
87789 +}
87790 +
87791 +static void
87792 +gr_log_learn_uid_change(const kuid_t real, const kuid_t effective, const kuid_t fs)
87793 +{
87794 + struct task_struct *task = current;
87795 + const struct cred *cred = current_cred();
87796 +
87797 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87798 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87799 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87800 + 'u', GR_GLOBAL_UID(real), GR_GLOBAL_UID(effective), GR_GLOBAL_UID(fs), &task->signal->saved_ip);
87801 +
87802 + return;
87803 +}
87804 +
87805 +static void
87806 +gr_log_learn_gid_change(const kgid_t real, const kgid_t effective, const kgid_t fs)
87807 +{
87808 + struct task_struct *task = current;
87809 + const struct cred *cred = current_cred();
87810 +
87811 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87812 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87813 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87814 + 'g', GR_GLOBAL_GID(real), GR_GLOBAL_GID(effective), GR_GLOBAL_GID(fs), &task->signal->saved_ip);
87815 +
87816 + return;
87817 +}
87818 +
87819 +static void
87820 +gr_set_proc_res(struct task_struct *task)
87821 +{
87822 + struct acl_subject_label *proc;
87823 + unsigned short i;
87824 +
87825 + proc = task->acl;
87826 +
87827 + if (proc->mode & (GR_LEARN | GR_INHERITLEARN))
87828 + return;
87829 +
87830 + for (i = 0; i < RLIM_NLIMITS; i++) {
87831 + unsigned long rlim_cur, rlim_max;
87832 +
87833 + if (!(proc->resmask & (1U << i)))
87834 + continue;
87835 +
87836 + rlim_cur = proc->res[i].rlim_cur;
87837 + rlim_max = proc->res[i].rlim_max;
87838 +
87839 + if (i == RLIMIT_NOFILE) {
87840 + unsigned long saved_sysctl_nr_open = sysctl_nr_open;
87841 + if (rlim_cur > saved_sysctl_nr_open)
87842 + rlim_cur = saved_sysctl_nr_open;
87843 + if (rlim_max > saved_sysctl_nr_open)
87844 + rlim_max = saved_sysctl_nr_open;
87845 + }
87846 +
87847 + task->signal->rlim[i].rlim_cur = rlim_cur;
87848 + task->signal->rlim[i].rlim_max = rlim_max;
87849 +
87850 + if (i == RLIMIT_CPU)
87851 + update_rlimit_cpu(task, rlim_cur);
87852 + }
87853 +
87854 + return;
87855 +}
87856 +
87857 +/* both of the below must be called with
87858 + rcu_read_lock();
87859 + read_lock(&tasklist_lock);
87860 + read_lock(&grsec_exec_file_lock);
87861 + except in the case of gr_set_role_label() (for __gr_get_subject_for_task)
87862 +*/
87863 +
87864 +struct acl_subject_label *__gr_get_subject_for_task(const struct gr_policy_state *state, struct task_struct *task, const char *filename, int fallback)
87865 +{
87866 + char *tmpname;
87867 + struct acl_subject_label *tmpsubj;
87868 + struct file *filp;
87869 + struct name_entry *nmatch;
87870 +
87871 + filp = task->exec_file;
87872 + if (filp == NULL)
87873 + return NULL;
87874 +
87875 + /* the following is to apply the correct subject
87876 + on binaries running when the RBAC system
87877 + is enabled, when the binaries have been
87878 + replaced or deleted since their execution
87879 + -----
87880 + when the RBAC system starts, the inode/dev
87881 + from exec_file will be one the RBAC system
87882 + is unaware of. It only knows the inode/dev
87883 + of the present file on disk, or the absence
87884 + of it.
87885 + */
87886 +
87887 + if (filename)
87888 + nmatch = __lookup_name_entry(state, filename);
87889 + else {
87890 + preempt_disable();
87891 + tmpname = gr_to_filename_rbac(filp->f_path.dentry, filp->f_path.mnt);
87892 +
87893 + nmatch = __lookup_name_entry(state, tmpname);
87894 + preempt_enable();
87895 + }
87896 + tmpsubj = NULL;
87897 + if (nmatch) {
87898 + if (nmatch->deleted)
87899 + tmpsubj = lookup_acl_subj_label_deleted(nmatch->inode, nmatch->device, task->role);
87900 + else
87901 + tmpsubj = lookup_acl_subj_label(nmatch->inode, nmatch->device, task->role);
87902 + }
87903 + /* this also works for the reload case -- if we don't match a potentially inherited subject
87904 + then we fall back to a normal lookup based on the binary's ino/dev
87905 + */
87906 + if (tmpsubj == NULL && fallback)
87907 + tmpsubj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, task->role);
87908 +
87909 + return tmpsubj;
87910 +}
87911 +
87912 +static struct acl_subject_label *gr_get_subject_for_task(struct task_struct *task, const char *filename, int fallback)
87913 +{
87914 + return __gr_get_subject_for_task(&running_polstate, task, filename, fallback);
87915 +}
87916 +
87917 +void __gr_apply_subject_to_task(const struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj)
87918 +{
87919 + struct acl_object_label *obj;
87920 + struct file *filp;
87921 +
87922 + filp = task->exec_file;
87923 +
87924 + task->acl = subj;
87925 + task->is_writable = 0;
87926 + /* ignore additional mmap checks for processes that are writable
87927 + by the default ACL */
87928 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, state->default_role->root_label);
87929 + if (unlikely(obj->mode & GR_WRITE))
87930 + task->is_writable = 1;
87931 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
87932 + if (unlikely(obj->mode & GR_WRITE))
87933 + task->is_writable = 1;
87934 +
87935 + gr_set_proc_res(task);
87936 +
87937 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87938 + printk(KERN_ALERT "gr_set_acls for (%s:%d): role:%s, subject:%s\n", task->comm, task_pid_nr(task), task->role->rolename, task->acl->filename);
87939 +#endif
87940 +}
87941 +
87942 +static void gr_apply_subject_to_task(struct task_struct *task, struct acl_subject_label *subj)
87943 +{
87944 + __gr_apply_subject_to_task(&running_polstate, task, subj);
87945 +}
87946 +
87947 +__u32
87948 +gr_search_file(const struct dentry * dentry, const __u32 mode,
87949 + const struct vfsmount * mnt)
87950 +{
87951 + __u32 retval = mode;
87952 + struct acl_subject_label *curracl;
87953 + struct acl_object_label *currobj;
87954 +
87955 + if (unlikely(!(gr_status & GR_READY)))
87956 + return (mode & ~GR_AUDITS);
87957 +
87958 + curracl = current->acl;
87959 +
87960 + currobj = chk_obj_label(dentry, mnt, curracl);
87961 + retval = currobj->mode & mode;
87962 +
87963 + /* if we're opening a specified transfer file for writing
87964 + (e.g. /dev/initctl), then transfer our role to init
87965 + */
87966 + if (unlikely(currobj->mode & GR_INIT_TRANSFER && retval & GR_WRITE &&
87967 + current->role->roletype & GR_ROLE_PERSIST)) {
87968 + struct task_struct *task = init_pid_ns.child_reaper;
87969 +
87970 + if (task->role != current->role) {
87971 + struct acl_subject_label *subj;
87972 +
87973 + task->acl_sp_role = 0;
87974 + task->acl_role_id = current->acl_role_id;
87975 + task->role = current->role;
87976 + rcu_read_lock();
87977 + read_lock(&grsec_exec_file_lock);
87978 + subj = gr_get_subject_for_task(task, NULL, 1);
87979 + gr_apply_subject_to_task(task, subj);
87980 + read_unlock(&grsec_exec_file_lock);
87981 + rcu_read_unlock();
87982 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_INIT_TRANSFER_MSG);
87983 + }
87984 + }
87985 +
87986 + if (unlikely
87987 + ((curracl->mode & (GR_LEARN | GR_INHERITLEARN)) && !(mode & GR_NOPTRACE)
87988 + && (retval != (mode & ~(GR_AUDITS | GR_SUPPRESS))))) {
87989 + __u32 new_mode = mode;
87990 +
87991 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
87992 +
87993 + retval = new_mode;
87994 +
87995 + if (new_mode & GR_EXEC && curracl->mode & GR_INHERITLEARN)
87996 + new_mode |= GR_INHERIT;
87997 +
87998 + if (!(mode & GR_NOLEARN))
87999 + gr_log_learn(dentry, mnt, new_mode);
88000 + }
88001 +
88002 + return retval;
88003 +}
88004 +
88005 +struct acl_object_label *gr_get_create_object(const struct dentry *new_dentry,
88006 + const struct dentry *parent,
88007 + const struct vfsmount *mnt)
88008 +{
88009 + struct name_entry *match;
88010 + struct acl_object_label *matchpo;
88011 + struct acl_subject_label *curracl;
88012 + char *path;
88013 +
88014 + if (unlikely(!(gr_status & GR_READY)))
88015 + return NULL;
88016 +
88017 + preempt_disable();
88018 + path = gr_to_filename_rbac(new_dentry, mnt);
88019 + match = lookup_name_entry_create(path);
88020 +
88021 + curracl = current->acl;
88022 +
88023 + if (match) {
88024 + read_lock(&gr_inode_lock);
88025 + matchpo = lookup_acl_obj_label_create(match->inode, match->device, curracl);
88026 + read_unlock(&gr_inode_lock);
88027 +
88028 + if (matchpo) {
88029 + preempt_enable();
88030 + return matchpo;
88031 + }
88032 + }
88033 +
88034 + // lookup parent
88035 +
88036 + matchpo = chk_obj_create_label(parent, mnt, curracl, path);
88037 +
88038 + preempt_enable();
88039 + return matchpo;
88040 +}
88041 +
88042 +__u32
88043 +gr_check_create(const struct dentry * new_dentry, const struct dentry * parent,
88044 + const struct vfsmount * mnt, const __u32 mode)
88045 +{
88046 + struct acl_object_label *matchpo;
88047 + __u32 retval;
88048 +
88049 + if (unlikely(!(gr_status & GR_READY)))
88050 + return (mode & ~GR_AUDITS);
88051 +
88052 + matchpo = gr_get_create_object(new_dentry, parent, mnt);
88053 +
88054 + retval = matchpo->mode & mode;
88055 +
88056 + if ((retval != (mode & ~(GR_AUDITS | GR_SUPPRESS)))
88057 + && (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
88058 + __u32 new_mode = mode;
88059 +
88060 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
88061 +
88062 + gr_log_learn(new_dentry, mnt, new_mode);
88063 + return new_mode;
88064 + }
88065 +
88066 + return retval;
88067 +}
88068 +
88069 +__u32
88070 +gr_check_link(const struct dentry * new_dentry,
88071 + const struct dentry * parent_dentry,
88072 + const struct vfsmount * parent_mnt,
88073 + const struct dentry * old_dentry, const struct vfsmount * old_mnt)
88074 +{
88075 + struct acl_object_label *obj;
88076 + __u32 oldmode, newmode;
88077 + __u32 needmode;
88078 + __u32 checkmodes = GR_FIND | GR_APPEND | GR_WRITE | GR_EXEC | GR_SETID | GR_READ |
88079 + GR_DELETE | GR_INHERIT;
88080 +
88081 + if (unlikely(!(gr_status & GR_READY)))
88082 + return (GR_CREATE | GR_LINK);
88083 +
88084 + obj = chk_obj_label(old_dentry, old_mnt, current->acl);
88085 + oldmode = obj->mode;
88086 +
88087 + obj = gr_get_create_object(new_dentry, parent_dentry, parent_mnt);
88088 + newmode = obj->mode;
88089 +
88090 + needmode = newmode & checkmodes;
88091 +
88092 + // old name for hardlink must have at least the permissions of the new name
88093 + if ((oldmode & needmode) != needmode)
88094 + goto bad;
88095 +
88096 + // if old name had restrictions/auditing, make sure the new name does as well
88097 + needmode = oldmode & (GR_NOPTRACE | GR_PTRACERD | GR_INHERIT | GR_AUDITS);
88098 +
88099 + // don't allow hardlinking of suid/sgid/fcapped files without permission
88100 + if (is_privileged_binary(old_dentry))
88101 + needmode |= GR_SETID;
88102 +
88103 + if ((newmode & needmode) != needmode)
88104 + goto bad;
88105 +
88106 + // enforce minimum permissions
88107 + if ((newmode & (GR_CREATE | GR_LINK)) == (GR_CREATE | GR_LINK))
88108 + return newmode;
88109 +bad:
88110 + needmode = oldmode;
88111 + if (is_privileged_binary(old_dentry))
88112 + needmode |= GR_SETID;
88113 +
88114 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN)) {
88115 + gr_log_learn(old_dentry, old_mnt, needmode | GR_CREATE | GR_LINK);
88116 + return (GR_CREATE | GR_LINK);
88117 + } else if (newmode & GR_SUPPRESS)
88118 + return GR_SUPPRESS;
88119 + else
88120 + return 0;
88121 +}
88122 +
88123 +int
88124 +gr_check_hidden_task(const struct task_struct *task)
88125 +{
88126 + if (unlikely(!(gr_status & GR_READY)))
88127 + return 0;
88128 +
88129 + if (!(task->acl->mode & GR_PROCFIND) && !(current->acl->mode & GR_VIEW))
88130 + return 1;
88131 +
88132 + return 0;
88133 +}
88134 +
88135 +int
88136 +gr_check_protected_task(const struct task_struct *task)
88137 +{
88138 + if (unlikely(!(gr_status & GR_READY) || !task))
88139 + return 0;
88140 +
88141 + if ((task->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
88142 + task->acl != current->acl)
88143 + return 1;
88144 +
88145 + return 0;
88146 +}
88147 +
88148 +int
88149 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
88150 +{
88151 + struct task_struct *p;
88152 + int ret = 0;
88153 +
88154 + if (unlikely(!(gr_status & GR_READY) || !pid))
88155 + return ret;
88156 +
88157 + read_lock(&tasklist_lock);
88158 + do_each_pid_task(pid, type, p) {
88159 + if ((p->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
88160 + p->acl != current->acl) {
88161 + ret = 1;
88162 + goto out;
88163 + }
88164 + } while_each_pid_task(pid, type, p);
88165 +out:
88166 + read_unlock(&tasklist_lock);
88167 +
88168 + return ret;
88169 +}
88170 +
88171 +void
88172 +gr_copy_label(struct task_struct *tsk)
88173 +{
88174 + struct task_struct *p = current;
88175 +
88176 + tsk->inherited = p->inherited;
88177 + tsk->acl_sp_role = 0;
88178 + tsk->acl_role_id = p->acl_role_id;
88179 + tsk->acl = p->acl;
88180 + tsk->role = p->role;
88181 + tsk->signal->used_accept = 0;
88182 + tsk->signal->curr_ip = p->signal->curr_ip;
88183 + tsk->signal->saved_ip = p->signal->saved_ip;
88184 + if (p->exec_file)
88185 + get_file(p->exec_file);
88186 + tsk->exec_file = p->exec_file;
88187 + tsk->is_writable = p->is_writable;
88188 + if (unlikely(p->signal->used_accept)) {
88189 + p->signal->curr_ip = 0;
88190 + p->signal->saved_ip = 0;
88191 + }
88192 +
88193 + return;
88194 +}
88195 +
88196 +extern int gr_process_kernel_setuid_ban(struct user_struct *user);
88197 +
88198 +int
88199 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
88200 +{
88201 + unsigned int i;
88202 + __u16 num;
88203 + uid_t *uidlist;
88204 + uid_t curuid;
88205 + int realok = 0;
88206 + int effectiveok = 0;
88207 + int fsok = 0;
88208 + uid_t globalreal, globaleffective, globalfs;
88209 +
88210 +#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT)
88211 + struct user_struct *user;
88212 +
88213 + if (!uid_valid(real))
88214 + goto skipit;
88215 +
88216 + /* find user based on global namespace */
88217 +
88218 + globalreal = GR_GLOBAL_UID(real);
88219 +
88220 + user = find_user(make_kuid(&init_user_ns, globalreal));
88221 + if (user == NULL)
88222 + goto skipit;
88223 +
88224 + if (gr_process_kernel_setuid_ban(user)) {
88225 + /* for find_user */
88226 + free_uid(user);
88227 + return 1;
88228 + }
88229 +
88230 + /* for find_user */
88231 + free_uid(user);
88232 +
88233 +skipit:
88234 +#endif
88235 +
88236 + if (unlikely(!(gr_status & GR_READY)))
88237 + return 0;
88238 +
88239 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
88240 + gr_log_learn_uid_change(real, effective, fs);
88241 +
88242 + num = current->acl->user_trans_num;
88243 + uidlist = current->acl->user_transitions;
88244 +
88245 + if (uidlist == NULL)
88246 + return 0;
88247 +
88248 + if (!uid_valid(real)) {
88249 + realok = 1;
88250 + globalreal = (uid_t)-1;
88251 + } else {
88252 + globalreal = GR_GLOBAL_UID(real);
88253 + }
88254 + if (!uid_valid(effective)) {
88255 + effectiveok = 1;
88256 + globaleffective = (uid_t)-1;
88257 + } else {
88258 + globaleffective = GR_GLOBAL_UID(effective);
88259 + }
88260 + if (!uid_valid(fs)) {
88261 + fsok = 1;
88262 + globalfs = (uid_t)-1;
88263 + } else {
88264 + globalfs = GR_GLOBAL_UID(fs);
88265 + }
88266 +
88267 + if (current->acl->user_trans_type & GR_ID_ALLOW) {
88268 + for (i = 0; i < num; i++) {
88269 + curuid = uidlist[i];
88270 + if (globalreal == curuid)
88271 + realok = 1;
88272 + if (globaleffective == curuid)
88273 + effectiveok = 1;
88274 + if (globalfs == curuid)
88275 + fsok = 1;
88276 + }
88277 + } else if (current->acl->user_trans_type & GR_ID_DENY) {
88278 + for (i = 0; i < num; i++) {
88279 + curuid = uidlist[i];
88280 + if (globalreal == curuid)
88281 + break;
88282 + if (globaleffective == curuid)
88283 + break;
88284 + if (globalfs == curuid)
88285 + break;
88286 + }
88287 + /* not in deny list */
88288 + if (i == num) {
88289 + realok = 1;
88290 + effectiveok = 1;
88291 + fsok = 1;
88292 + }
88293 + }
88294 +
88295 + if (realok && effectiveok && fsok)
88296 + return 0;
88297 + else {
88298 + gr_log_int(GR_DONT_AUDIT, GR_USRCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
88299 + return 1;
88300 + }
88301 +}
88302 +
88303 +int
88304 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
88305 +{
88306 + unsigned int i;
88307 + __u16 num;
88308 + gid_t *gidlist;
88309 + gid_t curgid;
88310 + int realok = 0;
88311 + int effectiveok = 0;
88312 + int fsok = 0;
88313 + gid_t globalreal, globaleffective, globalfs;
88314 +
88315 + if (unlikely(!(gr_status & GR_READY)))
88316 + return 0;
88317 +
88318 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
88319 + gr_log_learn_gid_change(real, effective, fs);
88320 +
88321 + num = current->acl->group_trans_num;
88322 + gidlist = current->acl->group_transitions;
88323 +
88324 + if (gidlist == NULL)
88325 + return 0;
88326 +
88327 + if (!gid_valid(real)) {
88328 + realok = 1;
88329 + globalreal = (gid_t)-1;
88330 + } else {
88331 + globalreal = GR_GLOBAL_GID(real);
88332 + }
88333 + if (!gid_valid(effective)) {
88334 + effectiveok = 1;
88335 + globaleffective = (gid_t)-1;
88336 + } else {
88337 + globaleffective = GR_GLOBAL_GID(effective);
88338 + }
88339 + if (!gid_valid(fs)) {
88340 + fsok = 1;
88341 + globalfs = (gid_t)-1;
88342 + } else {
88343 + globalfs = GR_GLOBAL_GID(fs);
88344 + }
88345 +
88346 + if (current->acl->group_trans_type & GR_ID_ALLOW) {
88347 + for (i = 0; i < num; i++) {
88348 + curgid = gidlist[i];
88349 + if (globalreal == curgid)
88350 + realok = 1;
88351 + if (globaleffective == curgid)
88352 + effectiveok = 1;
88353 + if (globalfs == curgid)
88354 + fsok = 1;
88355 + }
88356 + } else if (current->acl->group_trans_type & GR_ID_DENY) {
88357 + for (i = 0; i < num; i++) {
88358 + curgid = gidlist[i];
88359 + if (globalreal == curgid)
88360 + break;
88361 + if (globaleffective == curgid)
88362 + break;
88363 + if (globalfs == curgid)
88364 + break;
88365 + }
88366 + /* not in deny list */
88367 + if (i == num) {
88368 + realok = 1;
88369 + effectiveok = 1;
88370 + fsok = 1;
88371 + }
88372 + }
88373 +
88374 + if (realok && effectiveok && fsok)
88375 + return 0;
88376 + else {
88377 + gr_log_int(GR_DONT_AUDIT, GR_GRPCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
88378 + return 1;
88379 + }
88380 +}
88381 +
88382 +extern int gr_acl_is_capable(const int cap);
88383 +
88384 +void
88385 +gr_set_role_label(struct task_struct *task, const kuid_t kuid, const kgid_t kgid)
88386 +{
88387 + struct acl_role_label *role = task->role;
88388 + struct acl_role_label *origrole = role;
88389 + struct acl_subject_label *subj = NULL;
88390 + struct acl_object_label *obj;
88391 + struct file *filp;
88392 + uid_t uid;
88393 + gid_t gid;
88394 +
88395 + if (unlikely(!(gr_status & GR_READY)))
88396 + return;
88397 +
88398 + uid = GR_GLOBAL_UID(kuid);
88399 + gid = GR_GLOBAL_GID(kgid);
88400 +
88401 + filp = task->exec_file;
88402 +
88403 + /* kernel process, we'll give them the kernel role */
88404 + if (unlikely(!filp)) {
88405 + task->role = running_polstate.kernel_role;
88406 + task->acl = running_polstate.kernel_role->root_label;
88407 + return;
88408 + } else if (!task->role || !(task->role->roletype & GR_ROLE_SPECIAL)) {
88409 + /* save the current ip at time of role lookup so that the proper
88410 + IP will be learned for role_allowed_ip */
88411 + task->signal->saved_ip = task->signal->curr_ip;
88412 + role = lookup_acl_role_label(task, uid, gid);
88413 + }
88414 +
88415 + /* don't change the role if we're not a privileged process */
88416 + if (role && task->role != role &&
88417 + (((role->roletype & GR_ROLE_USER) && !gr_acl_is_capable(CAP_SETUID)) ||
88418 + ((role->roletype & GR_ROLE_GROUP) && !gr_acl_is_capable(CAP_SETGID))))
88419 + return;
88420 +
88421 + task->role = role;
88422 +
88423 + if (task->inherited) {
88424 + /* if we reached our subject through inheritance, then first see
88425 + if there's a subject of the same name in the new role that has
88426 + an object that would result in the same inherited subject
88427 + */
88428 + subj = gr_get_subject_for_task(task, task->acl->filename, 0);
88429 + if (subj) {
88430 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, subj);
88431 + if (!(obj->mode & GR_INHERIT))
88432 + subj = NULL;
88433 + }
88434 +
88435 + }
88436 + if (subj == NULL) {
88437 + /* otherwise:
88438 + perform subject lookup in possibly new role
88439 + we can use this result below in the case where role == task->role
88440 + */
88441 + subj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, role);
88442 + }
88443 +
88444 + /* if we changed uid/gid, but result in the same role
88445 + and are using inheritance, don't lose the inherited subject
88446 + if current subject is other than what normal lookup
88447 + would result in, we arrived via inheritance, don't
88448 + lose subject
88449 + */
88450 + if (role != origrole || (!(task->acl->mode & GR_INHERITLEARN) &&
88451 + (subj == task->acl)))
88452 + task->acl = subj;
88453 +
88454 + /* leave task->inherited unaffected */
88455 +
88456 + task->is_writable = 0;
88457 +
88458 + /* ignore additional mmap checks for processes that are writable
88459 + by the default ACL */
88460 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
88461 + if (unlikely(obj->mode & GR_WRITE))
88462 + task->is_writable = 1;
88463 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
88464 + if (unlikely(obj->mode & GR_WRITE))
88465 + task->is_writable = 1;
88466 +
88467 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
88468 + printk(KERN_ALERT "Set role label for (%s:%d): role:%s, subject:%s\n", task->comm, task_pid_nr(task), task->role->rolename, task->acl->filename);
88469 +#endif
88470 +
88471 + gr_set_proc_res(task);
88472 +
88473 + return;
88474 +}
88475 +
88476 +int
88477 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
88478 + const int unsafe_flags)
88479 +{
88480 + struct task_struct *task = current;
88481 + struct acl_subject_label *newacl;
88482 + struct acl_object_label *obj;
88483 + __u32 retmode;
88484 +
88485 + if (unlikely(!(gr_status & GR_READY)))
88486 + return 0;
88487 +
88488 + newacl = chk_subj_label(dentry, mnt, task->role);
88489 +
88490 + /* special handling for if we did an strace -f -p <pid> from an admin role, where pid then
88491 + did an exec
88492 + */
88493 + rcu_read_lock();
88494 + read_lock(&tasklist_lock);
88495 + if (task->ptrace && task->parent && ((task->parent->role->roletype & GR_ROLE_GOD) ||
88496 + (task->parent->acl->mode & GR_POVERRIDE))) {
88497 + read_unlock(&tasklist_lock);
88498 + rcu_read_unlock();
88499 + goto skip_check;
88500 + }
88501 + read_unlock(&tasklist_lock);
88502 + rcu_read_unlock();
88503 +
88504 + if (unsafe_flags && !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
88505 + !(task->role->roletype & GR_ROLE_GOD) &&
88506 + !gr_search_file(dentry, GR_PTRACERD, mnt) &&
88507 + !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
88508 + if (unsafe_flags & LSM_UNSAFE_SHARE)
88509 + gr_log_fs_generic(GR_DONT_AUDIT, GR_UNSAFESHARE_EXEC_ACL_MSG, dentry, mnt);
88510 + else
88511 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_EXEC_ACL_MSG, dentry, mnt);
88512 + return -EACCES;
88513 + }
88514 +
88515 +skip_check:
88516 +
88517 + obj = chk_obj_label(dentry, mnt, task->acl);
88518 + retmode = obj->mode & (GR_INHERIT | GR_AUDIT_INHERIT);
88519 +
88520 + if (!(task->acl->mode & GR_INHERITLEARN) &&
88521 + ((newacl->mode & GR_LEARN) || !(retmode & GR_INHERIT))) {
88522 + if (obj->nested)
88523 + task->acl = obj->nested;
88524 + else
88525 + task->acl = newacl;
88526 + task->inherited = 0;
88527 + } else {
88528 + task->inherited = 1;
88529 + if (retmode & GR_INHERIT && retmode & GR_AUDIT_INHERIT)
88530 + gr_log_str_fs(GR_DO_AUDIT, GR_INHERIT_ACL_MSG, task->acl->filename, dentry, mnt);
88531 + }
88532 +
88533 + task->is_writable = 0;
88534 +
88535 + /* ignore additional mmap checks for processes that are writable
88536 + by the default ACL */
88537 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
88538 + if (unlikely(obj->mode & GR_WRITE))
88539 + task->is_writable = 1;
88540 + obj = chk_obj_label(dentry, mnt, task->role->root_label);
88541 + if (unlikely(obj->mode & GR_WRITE))
88542 + task->is_writable = 1;
88543 +
88544 + gr_set_proc_res(task);
88545 +
88546 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
88547 + printk(KERN_ALERT "Set subject label for (%s:%d): role:%s, subject:%s\n", task->comm, task_pid_nr(task), task->role->rolename, task->acl->filename);
88548 +#endif
88549 + return 0;
88550 +}
88551 +
88552 +/* always called with valid inodev ptr */
88553 +static void
88554 +do_handle_delete(struct inodev_entry *inodev, const u64 ino, const dev_t dev)
88555 +{
88556 + struct acl_object_label *matchpo;
88557 + struct acl_subject_label *matchps;
88558 + struct acl_subject_label *subj;
88559 + struct acl_role_label *role;
88560 + unsigned int x;
88561 +
88562 + FOR_EACH_ROLE_START(role)
88563 + FOR_EACH_SUBJECT_START(role, subj, x)
88564 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88565 + matchpo->mode |= GR_DELETED;
88566 + FOR_EACH_SUBJECT_END(subj,x)
88567 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88568 + /* nested subjects aren't in the role's subj_hash table */
88569 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88570 + matchpo->mode |= GR_DELETED;
88571 + FOR_EACH_NESTED_SUBJECT_END(subj)
88572 + if ((matchps = lookup_acl_subj_label(ino, dev, role)) != NULL)
88573 + matchps->mode |= GR_DELETED;
88574 + FOR_EACH_ROLE_END(role)
88575 +
88576 + inodev->nentry->deleted = 1;
88577 +
88578 + return;
88579 +}
88580 +
88581 +void
88582 +gr_handle_delete(const u64 ino, const dev_t dev)
88583 +{
88584 + struct inodev_entry *inodev;
88585 +
88586 + if (unlikely(!(gr_status & GR_READY)))
88587 + return;
88588 +
88589 + write_lock(&gr_inode_lock);
88590 + inodev = lookup_inodev_entry(ino, dev);
88591 + if (inodev != NULL)
88592 + do_handle_delete(inodev, ino, dev);
88593 + write_unlock(&gr_inode_lock);
88594 +
88595 + return;
88596 +}
88597 +
88598 +static void
88599 +update_acl_obj_label(const u64 oldinode, const dev_t olddevice,
88600 + const u64 newinode, const dev_t newdevice,
88601 + struct acl_subject_label *subj)
88602 +{
88603 + unsigned int index = gr_fhash(oldinode, olddevice, subj->obj_hash_size);
88604 + struct acl_object_label *match;
88605 +
88606 + match = subj->obj_hash[index];
88607 +
88608 + while (match && (match->inode != oldinode ||
88609 + match->device != olddevice ||
88610 + !(match->mode & GR_DELETED)))
88611 + match = match->next;
88612 +
88613 + if (match && (match->inode == oldinode)
88614 + && (match->device == olddevice)
88615 + && (match->mode & GR_DELETED)) {
88616 + if (match->prev == NULL) {
88617 + subj->obj_hash[index] = match->next;
88618 + if (match->next != NULL)
88619 + match->next->prev = NULL;
88620 + } else {
88621 + match->prev->next = match->next;
88622 + if (match->next != NULL)
88623 + match->next->prev = match->prev;
88624 + }
88625 + match->prev = NULL;
88626 + match->next = NULL;
88627 + match->inode = newinode;
88628 + match->device = newdevice;
88629 + match->mode &= ~GR_DELETED;
88630 +
88631 + insert_acl_obj_label(match, subj);
88632 + }
88633 +
88634 + return;
88635 +}
88636 +
88637 +static void
88638 +update_acl_subj_label(const u64 oldinode, const dev_t olddevice,
88639 + const u64 newinode, const dev_t newdevice,
88640 + struct acl_role_label *role)
88641 +{
88642 + unsigned int index = gr_fhash(oldinode, olddevice, role->subj_hash_size);
88643 + struct acl_subject_label *match;
88644 +
88645 + match = role->subj_hash[index];
88646 +
88647 + while (match && (match->inode != oldinode ||
88648 + match->device != olddevice ||
88649 + !(match->mode & GR_DELETED)))
88650 + match = match->next;
88651 +
88652 + if (match && (match->inode == oldinode)
88653 + && (match->device == olddevice)
88654 + && (match->mode & GR_DELETED)) {
88655 + if (match->prev == NULL) {
88656 + role->subj_hash[index] = match->next;
88657 + if (match->next != NULL)
88658 + match->next->prev = NULL;
88659 + } else {
88660 + match->prev->next = match->next;
88661 + if (match->next != NULL)
88662 + match->next->prev = match->prev;
88663 + }
88664 + match->prev = NULL;
88665 + match->next = NULL;
88666 + match->inode = newinode;
88667 + match->device = newdevice;
88668 + match->mode &= ~GR_DELETED;
88669 +
88670 + insert_acl_subj_label(match, role);
88671 + }
88672 +
88673 + return;
88674 +}
88675 +
88676 +static void
88677 +update_inodev_entry(const u64 oldinode, const dev_t olddevice,
88678 + const u64 newinode, const dev_t newdevice)
88679 +{
88680 + unsigned int index = gr_fhash(oldinode, olddevice, running_polstate.inodev_set.i_size);
88681 + struct inodev_entry *match;
88682 +
88683 + match = running_polstate.inodev_set.i_hash[index];
88684 +
88685 + while (match && (match->nentry->inode != oldinode ||
88686 + match->nentry->device != olddevice || !match->nentry->deleted))
88687 + match = match->next;
88688 +
88689 + if (match && (match->nentry->inode == oldinode)
88690 + && (match->nentry->device == olddevice) &&
88691 + match->nentry->deleted) {
88692 + if (match->prev == NULL) {
88693 + running_polstate.inodev_set.i_hash[index] = match->next;
88694 + if (match->next != NULL)
88695 + match->next->prev = NULL;
88696 + } else {
88697 + match->prev->next = match->next;
88698 + if (match->next != NULL)
88699 + match->next->prev = match->prev;
88700 + }
88701 + match->prev = NULL;
88702 + match->next = NULL;
88703 + match->nentry->inode = newinode;
88704 + match->nentry->device = newdevice;
88705 + match->nentry->deleted = 0;
88706 +
88707 + insert_inodev_entry(match);
88708 + }
88709 +
88710 + return;
88711 +}
88712 +
88713 +static void
88714 +__do_handle_create(const struct name_entry *matchn, u64 ino, dev_t dev)
88715 +{
88716 + struct acl_subject_label *subj;
88717 + struct acl_role_label *role;
88718 + unsigned int x;
88719 +
88720 + FOR_EACH_ROLE_START(role)
88721 + update_acl_subj_label(matchn->inode, matchn->device, ino, dev, role);
88722 +
88723 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88724 + if ((subj->inode == ino) && (subj->device == dev)) {
88725 + subj->inode = ino;
88726 + subj->device = dev;
88727 + }
88728 + /* nested subjects aren't in the role's subj_hash table */
88729 + update_acl_obj_label(matchn->inode, matchn->device,
88730 + ino, dev, subj);
88731 + FOR_EACH_NESTED_SUBJECT_END(subj)
88732 + FOR_EACH_SUBJECT_START(role, subj, x)
88733 + update_acl_obj_label(matchn->inode, matchn->device,
88734 + ino, dev, subj);
88735 + FOR_EACH_SUBJECT_END(subj,x)
88736 + FOR_EACH_ROLE_END(role)
88737 +
88738 + update_inodev_entry(matchn->inode, matchn->device, ino, dev);
88739 +
88740 + return;
88741 +}
88742 +
88743 +static void
88744 +do_handle_create(const struct name_entry *matchn, const struct dentry *dentry,
88745 + const struct vfsmount *mnt)
88746 +{
88747 + u64 ino = __get_ino(dentry);
88748 + dev_t dev = __get_dev(dentry);
88749 +
88750 + __do_handle_create(matchn, ino, dev);
88751 +
88752 + return;
88753 +}
88754 +
88755 +void
88756 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
88757 +{
88758 + struct name_entry *matchn;
88759 +
88760 + if (unlikely(!(gr_status & GR_READY)))
88761 + return;
88762 +
88763 + preempt_disable();
88764 + matchn = lookup_name_entry(gr_to_filename_rbac(dentry, mnt));
88765 +
88766 + if (unlikely((unsigned long)matchn)) {
88767 + write_lock(&gr_inode_lock);
88768 + do_handle_create(matchn, dentry, mnt);
88769 + write_unlock(&gr_inode_lock);
88770 + }
88771 + preempt_enable();
88772 +
88773 + return;
88774 +}
88775 +
88776 +void
88777 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
88778 +{
88779 + struct name_entry *matchn;
88780 +
88781 + if (unlikely(!(gr_status & GR_READY)))
88782 + return;
88783 +
88784 + preempt_disable();
88785 + matchn = lookup_name_entry(gr_to_proc_filename_rbac(dentry, init_pid_ns.proc_mnt));
88786 +
88787 + if (unlikely((unsigned long)matchn)) {
88788 + write_lock(&gr_inode_lock);
88789 + __do_handle_create(matchn, inode->i_ino, inode->i_sb->s_dev);
88790 + write_unlock(&gr_inode_lock);
88791 + }
88792 + preempt_enable();
88793 +
88794 + return;
88795 +}
88796 +
88797 +void
88798 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
88799 + struct dentry *old_dentry,
88800 + struct dentry *new_dentry,
88801 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
88802 +{
88803 + struct name_entry *matchn;
88804 + struct name_entry *matchn2 = NULL;
88805 + struct inodev_entry *inodev;
88806 + struct inode *inode = d_backing_inode(new_dentry);
88807 + struct inode *old_inode = d_backing_inode(old_dentry);
88808 + u64 old_ino = __get_ino(old_dentry);
88809 + dev_t old_dev = __get_dev(old_dentry);
88810 + unsigned int exchange = flags & RENAME_EXCHANGE;
88811 +
88812 + /* vfs_rename swaps the name and parent link for old_dentry and
88813 + new_dentry
88814 + at this point, old_dentry has the new name, parent link, and inode
88815 + for the renamed file
88816 + if a file is being replaced by a rename, new_dentry has the inode
88817 + and name for the replaced file
88818 + */
88819 +
88820 + if (unlikely(!(gr_status & GR_READY)))
88821 + return;
88822 +
88823 + preempt_disable();
88824 + matchn = lookup_name_entry(gr_to_filename_rbac(old_dentry, mnt));
88825 +
88826 + /* exchange cases:
88827 + a filename exists for the source, but not dest
88828 + do a recreate on source
88829 + a filename exists for the dest, but not source
88830 + do a recreate on dest
88831 + a filename exists for both source and dest
88832 + delete source and dest, then create source and dest
88833 + a filename exists for neither source nor dest
88834 + no updates needed
88835 +
88836 + the name entry lookups get us the old inode/dev associated with
88837 + each name, so do the deletes first (if possible) so that when
88838 + we do the create, we pick up on the right entries
88839 + */
88840 +
88841 + if (exchange)
88842 + matchn2 = lookup_name_entry(gr_to_filename_rbac(new_dentry, mnt));
88843 +
88844 + /* we wouldn't have to check d_inode if it weren't for
88845 + NFS silly-renaming
88846 + */
88847 +
88848 + write_lock(&gr_inode_lock);
88849 + if (unlikely((replace || exchange) && inode)) {
88850 + u64 new_ino = __get_ino(new_dentry);
88851 + dev_t new_dev = __get_dev(new_dentry);
88852 +
88853 + inodev = lookup_inodev_entry(new_ino, new_dev);
88854 + if (inodev != NULL && ((inode->i_nlink <= 1) || d_is_dir(new_dentry)))
88855 + do_handle_delete(inodev, new_ino, new_dev);
88856 + }
88857 +
88858 + inodev = lookup_inodev_entry(old_ino, old_dev);
88859 + if (inodev != NULL && ((old_inode->i_nlink <= 1) || d_is_dir(old_dentry)))
88860 + do_handle_delete(inodev, old_ino, old_dev);
88861 +
88862 + if (unlikely(matchn != NULL))
88863 + do_handle_create(matchn, old_dentry, mnt);
88864 +
88865 + if (unlikely(matchn2 != NULL))
88866 + do_handle_create(matchn2, new_dentry, mnt);
88867 +
88868 + write_unlock(&gr_inode_lock);
88869 + preempt_enable();
88870 +
88871 + return;
88872 +}
88873 +
88874 +#if defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC)
88875 +static const unsigned long res_learn_bumps[GR_NLIMITS] = {
88876 + [RLIMIT_CPU] = GR_RLIM_CPU_BUMP,
88877 + [RLIMIT_FSIZE] = GR_RLIM_FSIZE_BUMP,
88878 + [RLIMIT_DATA] = GR_RLIM_DATA_BUMP,
88879 + [RLIMIT_STACK] = GR_RLIM_STACK_BUMP,
88880 + [RLIMIT_CORE] = GR_RLIM_CORE_BUMP,
88881 + [RLIMIT_RSS] = GR_RLIM_RSS_BUMP,
88882 + [RLIMIT_NPROC] = GR_RLIM_NPROC_BUMP,
88883 + [RLIMIT_NOFILE] = GR_RLIM_NOFILE_BUMP,
88884 + [RLIMIT_MEMLOCK] = GR_RLIM_MEMLOCK_BUMP,
88885 + [RLIMIT_AS] = GR_RLIM_AS_BUMP,
88886 + [RLIMIT_LOCKS] = GR_RLIM_LOCKS_BUMP,
88887 + [RLIMIT_SIGPENDING] = GR_RLIM_SIGPENDING_BUMP,
88888 + [RLIMIT_MSGQUEUE] = GR_RLIM_MSGQUEUE_BUMP,
88889 + [RLIMIT_NICE] = GR_RLIM_NICE_BUMP,
88890 + [RLIMIT_RTPRIO] = GR_RLIM_RTPRIO_BUMP,
88891 + [RLIMIT_RTTIME] = GR_RLIM_RTTIME_BUMP
88892 +};
88893 +
88894 +void
88895 +gr_learn_resource(const struct task_struct *task,
88896 + const int res, const unsigned long wanted, const int gt)
88897 +{
88898 + struct acl_subject_label *acl;
88899 + const struct cred *cred;
88900 +
88901 + if (unlikely((gr_status & GR_READY) &&
88902 + task->acl && (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))))
88903 + goto skip_reslog;
88904 +
88905 + gr_log_resource(task, res, wanted, gt);
88906 +skip_reslog:
88907 +
88908 + if (unlikely(!(gr_status & GR_READY) || !wanted || res >= GR_NLIMITS))
88909 + return;
88910 +
88911 + acl = task->acl;
88912 +
88913 + if (likely(!acl || !(acl->mode & (GR_LEARN | GR_INHERITLEARN)) ||
88914 + !(acl->resmask & (1U << (unsigned short) res))))
88915 + return;
88916 +
88917 + if (wanted >= acl->res[res].rlim_cur) {
88918 + unsigned long res_add;
88919 +
88920 + res_add = wanted + res_learn_bumps[res];
88921 +
88922 + acl->res[res].rlim_cur = res_add;
88923 +
88924 + if (wanted > acl->res[res].rlim_max)
88925 + acl->res[res].rlim_max = res_add;
88926 +
88927 + /* only log the subject filename, since resource logging is supported for
88928 + single-subject learning only */
88929 + rcu_read_lock();
88930 + cred = __task_cred(task);
88931 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
88932 + task->role->roletype, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), acl->filename,
88933 + acl->filename, acl->res[res].rlim_cur, acl->res[res].rlim_max,
88934 + "", (unsigned long) res, &task->signal->saved_ip);
88935 + rcu_read_unlock();
88936 + }
88937 +
88938 + return;
88939 +}
88940 +EXPORT_SYMBOL_GPL(gr_learn_resource);
88941 +#endif
88942 +
88943 +#if defined(CONFIG_PAX_HAVE_ACL_FLAGS) && (defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR))
88944 +void
88945 +pax_set_initial_flags(struct linux_binprm *bprm)
88946 +{
88947 + struct task_struct *task = current;
88948 + struct acl_subject_label *proc;
88949 + unsigned long flags;
88950 +
88951 + if (unlikely(!(gr_status & GR_READY)))
88952 + return;
88953 +
88954 + flags = pax_get_flags(task);
88955 +
88956 + proc = task->acl;
88957 +
88958 + if (proc->pax_flags & GR_PAX_DISABLE_PAGEEXEC)
88959 + flags &= ~MF_PAX_PAGEEXEC;
88960 + if (proc->pax_flags & GR_PAX_DISABLE_SEGMEXEC)
88961 + flags &= ~MF_PAX_SEGMEXEC;
88962 + if (proc->pax_flags & GR_PAX_DISABLE_RANDMMAP)
88963 + flags &= ~MF_PAX_RANDMMAP;
88964 + if (proc->pax_flags & GR_PAX_DISABLE_EMUTRAMP)
88965 + flags &= ~MF_PAX_EMUTRAMP;
88966 + if (proc->pax_flags & GR_PAX_DISABLE_MPROTECT)
88967 + flags &= ~MF_PAX_MPROTECT;
88968 +
88969 + if (proc->pax_flags & GR_PAX_ENABLE_PAGEEXEC)
88970 + flags |= MF_PAX_PAGEEXEC;
88971 + if (proc->pax_flags & GR_PAX_ENABLE_SEGMEXEC)
88972 + flags |= MF_PAX_SEGMEXEC;
88973 + if (proc->pax_flags & GR_PAX_ENABLE_RANDMMAP)
88974 + flags |= MF_PAX_RANDMMAP;
88975 + if (proc->pax_flags & GR_PAX_ENABLE_EMUTRAMP)
88976 + flags |= MF_PAX_EMUTRAMP;
88977 + if (proc->pax_flags & GR_PAX_ENABLE_MPROTECT)
88978 + flags |= MF_PAX_MPROTECT;
88979 +
88980 + pax_set_flags(task, flags);
88981 +
88982 + return;
88983 +}
88984 +#endif
88985 +
88986 +int
88987 +gr_handle_proc_ptrace(struct task_struct *task)
88988 +{
88989 + struct file *filp;
88990 + struct task_struct *tmp = task;
88991 + struct task_struct *curtemp = current;
88992 + __u32 retmode;
88993 +
88994 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
88995 + if (unlikely(!(gr_status & GR_READY)))
88996 + return 0;
88997 +#endif
88998 +
88999 + read_lock(&tasklist_lock);
89000 + read_lock(&grsec_exec_file_lock);
89001 + filp = task->exec_file;
89002 +
89003 + while (task_pid_nr(tmp) > 0) {
89004 + if (tmp == curtemp)
89005 + break;
89006 + tmp = tmp->real_parent;
89007 + }
89008 +
89009 + if (!filp || (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
89010 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE))))) {
89011 + read_unlock(&grsec_exec_file_lock);
89012 + read_unlock(&tasklist_lock);
89013 + return 1;
89014 + }
89015 +
89016 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
89017 + if (!(gr_status & GR_READY)) {
89018 + read_unlock(&grsec_exec_file_lock);
89019 + read_unlock(&tasklist_lock);
89020 + return 0;
89021 + }
89022 +#endif
89023 +
89024 + retmode = gr_search_file(filp->f_path.dentry, GR_NOPTRACE, filp->f_path.mnt);
89025 + read_unlock(&grsec_exec_file_lock);
89026 + read_unlock(&tasklist_lock);
89027 +
89028 + if (retmode & GR_NOPTRACE)
89029 + return 1;
89030 +
89031 + if (!(current->acl->mode & GR_POVERRIDE) && !(current->role->roletype & GR_ROLE_GOD)
89032 + && (current->acl != task->acl || (current->acl != current->role->root_label
89033 + && task_pid_nr(current) != task_pid_nr(task))))
89034 + return 1;
89035 +
89036 + return 0;
89037 +}
89038 +
89039 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p)
89040 +{
89041 + if (unlikely(!(gr_status & GR_READY)))
89042 + return;
89043 +
89044 + if (!(current->role->roletype & GR_ROLE_GOD))
89045 + return;
89046 +
89047 + seq_printf(m, "RBAC:\t%.64s:%c:%.950s\n",
89048 + p->role->rolename, gr_task_roletype_to_char(p),
89049 + p->acl->filename);
89050 +}
89051 +
89052 +int
89053 +gr_handle_ptrace(struct task_struct *task, const long request)
89054 +{
89055 + struct task_struct *tmp = task;
89056 + struct task_struct *curtemp = current;
89057 + __u32 retmode;
89058 +
89059 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
89060 + if (unlikely(!(gr_status & GR_READY)))
89061 + return 0;
89062 +#endif
89063 + if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
89064 + read_lock(&tasklist_lock);
89065 + while (task_pid_nr(tmp) > 0) {
89066 + if (tmp == curtemp)
89067 + break;
89068 + tmp = tmp->real_parent;
89069 + }
89070 +
89071 + if (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
89072 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
89073 + read_unlock(&tasklist_lock);
89074 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89075 + return 1;
89076 + }
89077 + read_unlock(&tasklist_lock);
89078 + }
89079 +
89080 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
89081 + if (!(gr_status & GR_READY))
89082 + return 0;
89083 +#endif
89084 +
89085 + read_lock(&grsec_exec_file_lock);
89086 + if (unlikely(!task->exec_file)) {
89087 + read_unlock(&grsec_exec_file_lock);
89088 + return 0;
89089 + }
89090 +
89091 + retmode = gr_search_file(task->exec_file->f_path.dentry, GR_PTRACERD | GR_NOPTRACE, task->exec_file->f_path.mnt);
89092 + read_unlock(&grsec_exec_file_lock);
89093 +
89094 + if (retmode & GR_NOPTRACE) {
89095 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89096 + return 1;
89097 + }
89098 +
89099 + if (retmode & GR_PTRACERD) {
89100 + switch (request) {
89101 + case PTRACE_SEIZE:
89102 + case PTRACE_POKETEXT:
89103 + case PTRACE_POKEDATA:
89104 + case PTRACE_POKEUSR:
89105 +#if !defined(CONFIG_PPC32) && !defined(CONFIG_PPC64) && !defined(CONFIG_PARISC) && !defined(CONFIG_ALPHA) && !defined(CONFIG_IA64)
89106 + case PTRACE_SETREGS:
89107 + case PTRACE_SETFPREGS:
89108 +#endif
89109 +#ifdef CONFIG_X86
89110 + case PTRACE_SETFPXREGS:
89111 +#endif
89112 +#ifdef CONFIG_ALTIVEC
89113 + case PTRACE_SETVRREGS:
89114 +#endif
89115 + return 1;
89116 + default:
89117 + return 0;
89118 + }
89119 + } else if (!(current->acl->mode & GR_POVERRIDE) &&
89120 + !(current->role->roletype & GR_ROLE_GOD) &&
89121 + (current->acl != task->acl)) {
89122 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89123 + return 1;
89124 + }
89125 +
89126 + return 0;
89127 +}
89128 +
89129 +static int is_writable_mmap(const struct file *filp)
89130 +{
89131 + struct task_struct *task = current;
89132 + struct acl_object_label *obj, *obj2;
89133 + struct dentry *dentry = filp->f_path.dentry;
89134 + struct vfsmount *mnt = filp->f_path.mnt;
89135 + struct inode *inode = d_backing_inode(dentry);
89136 +
89137 + if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
89138 + !task->is_writable && d_is_reg(dentry) && (mnt != shm_mnt || (inode->i_nlink > 0))) {
89139 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
89140 + obj2 = chk_obj_label(dentry, mnt, task->role->root_label);
89141 + if (unlikely((obj->mode & GR_WRITE) || (obj2->mode & GR_WRITE))) {
89142 + gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, dentry, mnt);
89143 + return 1;
89144 + }
89145 + }
89146 + return 0;
89147 +}
89148 +
89149 +int
89150 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot)
89151 +{
89152 + __u32 mode;
89153 +
89154 + if (unlikely(!file || !(prot & PROT_EXEC)))
89155 + return 1;
89156 +
89157 + if (is_writable_mmap(file))
89158 + return 0;
89159 +
89160 + mode =
89161 + gr_search_file(file->f_path.dentry,
89162 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
89163 + file->f_path.mnt);
89164 +
89165 + if (!gr_tpe_allow(file))
89166 + return 0;
89167 +
89168 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
89169 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89170 + return 0;
89171 + } else if (unlikely(!(mode & GR_EXEC))) {
89172 + return 0;
89173 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
89174 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89175 + return 1;
89176 + }
89177 +
89178 + return 1;
89179 +}
89180 +
89181 +int
89182 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
89183 +{
89184 + __u32 mode;
89185 +
89186 + if (unlikely(!file || !(prot & PROT_EXEC)))
89187 + return 1;
89188 +
89189 + if (is_writable_mmap(file))
89190 + return 0;
89191 +
89192 + mode =
89193 + gr_search_file(file->f_path.dentry,
89194 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
89195 + file->f_path.mnt);
89196 +
89197 + if (!gr_tpe_allow(file))
89198 + return 0;
89199 +
89200 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
89201 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89202 + return 0;
89203 + } else if (unlikely(!(mode & GR_EXEC))) {
89204 + return 0;
89205 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
89206 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89207 + return 1;
89208 + }
89209 +
89210 + return 1;
89211 +}
89212 +
89213 +void
89214 +gr_acl_handle_psacct(struct task_struct *task, const long code)
89215 +{
89216 + unsigned long runtime, cputime;
89217 + cputime_t utime, stime;
89218 + unsigned int wday, cday;
89219 + __u8 whr, chr;
89220 + __u8 wmin, cmin;
89221 + __u8 wsec, csec;
89222 + struct timespec curtime, starttime;
89223 +
89224 + if (unlikely(!(gr_status & GR_READY) || !task->acl ||
89225 + !(task->acl->mode & GR_PROCACCT)))
89226 + return;
89227 +
89228 + curtime = ns_to_timespec(ktime_get_ns());
89229 + starttime = ns_to_timespec(task->start_time);
89230 + runtime = curtime.tv_sec - starttime.tv_sec;
89231 + wday = runtime / (60 * 60 * 24);
89232 + runtime -= wday * (60 * 60 * 24);
89233 + whr = runtime / (60 * 60);
89234 + runtime -= whr * (60 * 60);
89235 + wmin = runtime / 60;
89236 + runtime -= wmin * 60;
89237 + wsec = runtime;
89238 +
89239 + task_cputime(task, &utime, &stime);
89240 + cputime = cputime_to_secs(utime + stime);
89241 + cday = cputime / (60 * 60 * 24);
89242 + cputime -= cday * (60 * 60 * 24);
89243 + chr = cputime / (60 * 60);
89244 + cputime -= chr * (60 * 60);
89245 + cmin = cputime / 60;
89246 + cputime -= cmin * 60;
89247 + csec = cputime;
89248 +
89249 + gr_log_procacct(GR_DO_AUDIT, GR_ACL_PROCACCT_MSG, task, wday, whr, wmin, wsec, cday, chr, cmin, csec, code);
89250 +
89251 + return;
89252 +}
89253 +
89254 +#ifdef CONFIG_TASKSTATS
89255 +int gr_is_taskstats_denied(int pid)
89256 +{
89257 + struct task_struct *task;
89258 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89259 + const struct cred *cred;
89260 +#endif
89261 + int ret = 0;
89262 +
89263 + /* restrict taskstats viewing to un-chrooted root users
89264 + who have the 'view' subject flag if the RBAC system is enabled
89265 + */
89266 +
89267 + rcu_read_lock();
89268 + read_lock(&tasklist_lock);
89269 + task = find_task_by_vpid(pid);
89270 + if (task) {
89271 +#ifdef CONFIG_GRKERNSEC_CHROOT
89272 + if (proc_is_chrooted(task))
89273 + ret = -EACCES;
89274 +#endif
89275 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89276 + cred = __task_cred(task);
89277 +#ifdef CONFIG_GRKERNSEC_PROC_USER
89278 + if (gr_is_global_nonroot(cred->uid))
89279 + ret = -EACCES;
89280 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89281 + if (gr_is_global_nonroot(cred->uid) && !groups_search(cred->group_info, grsec_proc_gid))
89282 + ret = -EACCES;
89283 +#endif
89284 +#endif
89285 + if (gr_status & GR_READY) {
89286 + if (!(task->acl->mode & GR_VIEW))
89287 + ret = -EACCES;
89288 + }
89289 + } else
89290 + ret = -ENOENT;
89291 +
89292 + read_unlock(&tasklist_lock);
89293 + rcu_read_unlock();
89294 +
89295 + return ret;
89296 +}
89297 +#endif
89298 +
89299 +/* AUXV entries are filled via a descendant of search_binary_handler
89300 + after we've already applied the subject for the target
89301 +*/
89302 +int gr_acl_enable_at_secure(void)
89303 +{
89304 + if (unlikely(!(gr_status & GR_READY)))
89305 + return 0;
89306 +
89307 + if (current->acl->mode & GR_ATSECURE)
89308 + return 1;
89309 +
89310 + return 0;
89311 +}
89312 +
89313 +int gr_acl_handle_filldir(const struct file *file, const char *name, const unsigned int namelen, const u64 ino)
89314 +{
89315 + struct task_struct *task = current;
89316 + struct dentry *dentry = file->f_path.dentry;
89317 + struct vfsmount *mnt = file->f_path.mnt;
89318 + struct acl_object_label *obj, *tmp;
89319 + struct acl_subject_label *subj;
89320 + unsigned int bufsize;
89321 + int is_not_root;
89322 + char *path;
89323 + dev_t dev = __get_dev(dentry);
89324 +
89325 + if (unlikely(!(gr_status & GR_READY)))
89326 + return 1;
89327 +
89328 + if (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))
89329 + return 1;
89330 +
89331 + /* ignore Eric Biederman */
89332 + if (IS_PRIVATE(d_backing_inode(dentry)))
89333 + return 1;
89334 +
89335 + subj = task->acl;
89336 + read_lock(&gr_inode_lock);
89337 + do {
89338 + obj = lookup_acl_obj_label(ino, dev, subj);
89339 + if (obj != NULL) {
89340 + read_unlock(&gr_inode_lock);
89341 + return (obj->mode & GR_FIND) ? 1 : 0;
89342 + }
89343 + } while ((subj = subj->parent_subject));
89344 + read_unlock(&gr_inode_lock);
89345 +
89346 + /* this is purely an optimization since we're looking for an object
89347 + for the directory we're doing a readdir on
89348 + if it's possible for any globbed object to match the entry we're
89349 + filling into the directory, then the object we find here will be
89350 + an anchor point with attached globbed objects
89351 + */
89352 + obj = chk_obj_label_noglob(dentry, mnt, task->acl);
89353 + if (obj->globbed == NULL)
89354 + return (obj->mode & GR_FIND) ? 1 : 0;
89355 +
89356 + is_not_root = ((obj->filename[0] == '/') &&
89357 + (obj->filename[1] == '\0')) ? 0 : 1;
89358 + bufsize = PAGE_SIZE - namelen - is_not_root;
89359 +
89360 + /* check bufsize > PAGE_SIZE || bufsize == 0 */
89361 + if (unlikely((bufsize - 1) > (PAGE_SIZE - 1)))
89362 + return 1;
89363 +
89364 + preempt_disable();
89365 + path = d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
89366 + bufsize);
89367 +
89368 + bufsize = strlen(path);
89369 +
89370 + /* if base is "/", don't append an additional slash */
89371 + if (is_not_root)
89372 + *(path + bufsize) = '/';
89373 + memcpy(path + bufsize + is_not_root, name, namelen);
89374 + *(path + bufsize + namelen + is_not_root) = '\0';
89375 +
89376 + tmp = obj->globbed;
89377 + while (tmp) {
89378 + if (!glob_match(tmp->filename, path)) {
89379 + preempt_enable();
89380 + return (tmp->mode & GR_FIND) ? 1 : 0;
89381 + }
89382 + tmp = tmp->next;
89383 + }
89384 + preempt_enable();
89385 + return (obj->mode & GR_FIND) ? 1 : 0;
89386 +}
89387 +
89388 +void gr_put_exec_file(struct task_struct *task)
89389 +{
89390 + struct file *filp;
89391 +
89392 + write_lock(&grsec_exec_file_lock);
89393 + filp = task->exec_file;
89394 + task->exec_file = NULL;
89395 + write_unlock(&grsec_exec_file_lock);
89396 +
89397 + if (filp)
89398 + fput(filp);
89399 +
89400 + return;
89401 +}
89402 +
89403 +
89404 +#ifdef CONFIG_NETFILTER_XT_MATCH_GRADM_MODULE
89405 +EXPORT_SYMBOL_GPL(gr_acl_is_enabled);
89406 +#endif
89407 +#ifdef CONFIG_SECURITY
89408 +EXPORT_SYMBOL_GPL(gr_check_user_change);
89409 +EXPORT_SYMBOL_GPL(gr_check_group_change);
89410 +#endif
89411 +
89412 diff --git a/grsecurity/gracl_alloc.c b/grsecurity/gracl_alloc.c
89413 new file mode 100644
89414 index 0000000..9adc75c
89415 --- /dev/null
89416 +++ b/grsecurity/gracl_alloc.c
89417 @@ -0,0 +1,105 @@
89418 +#include <linux/kernel.h>
89419 +#include <linux/mm.h>
89420 +#include <linux/slab.h>
89421 +#include <linux/vmalloc.h>
89422 +#include <linux/gracl.h>
89423 +#include <linux/grsecurity.h>
89424 +
89425 +static struct gr_alloc_state __current_alloc_state = { 1, 1, NULL };
89426 +struct gr_alloc_state *current_alloc_state = &__current_alloc_state;
89427 +
89428 +static int
89429 +alloc_pop(void)
89430 +{
89431 + if (current_alloc_state->alloc_stack_next == 1)
89432 + return 0;
89433 +
89434 + kfree(current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 2]);
89435 +
89436 + current_alloc_state->alloc_stack_next--;
89437 +
89438 + return 1;
89439 +}
89440 +
89441 +static int
89442 +alloc_push(void *buf)
89443 +{
89444 + if (current_alloc_state->alloc_stack_next >= current_alloc_state->alloc_stack_size)
89445 + return 1;
89446 +
89447 + current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 1] = buf;
89448 +
89449 + current_alloc_state->alloc_stack_next++;
89450 +
89451 + return 0;
89452 +}
89453 +
89454 +void *
89455 +acl_alloc(unsigned long len)
89456 +{
89457 + void *ret = NULL;
89458 +
89459 + if (!len || len > PAGE_SIZE)
89460 + goto out;
89461 +
89462 + ret = kmalloc(len, GFP_KERNEL);
89463 +
89464 + if (ret) {
89465 + if (alloc_push(ret)) {
89466 + kfree(ret);
89467 + ret = NULL;
89468 + }
89469 + }
89470 +
89471 +out:
89472 + return ret;
89473 +}
89474 +
89475 +void *
89476 +acl_alloc_num(unsigned long num, unsigned long len)
89477 +{
89478 + if (!len || (num > (PAGE_SIZE / len)))
89479 + return NULL;
89480 +
89481 + return acl_alloc(num * len);
89482 +}
89483 +
89484 +void
89485 +acl_free_all(void)
89486 +{
89487 + if (!current_alloc_state->alloc_stack)
89488 + return;
89489 +
89490 + while (alloc_pop()) ;
89491 +
89492 + if (current_alloc_state->alloc_stack) {
89493 + if ((current_alloc_state->alloc_stack_size * sizeof (void *)) <= PAGE_SIZE)
89494 + kfree(current_alloc_state->alloc_stack);
89495 + else
89496 + vfree(current_alloc_state->alloc_stack);
89497 + }
89498 +
89499 + current_alloc_state->alloc_stack = NULL;
89500 + current_alloc_state->alloc_stack_size = 1;
89501 + current_alloc_state->alloc_stack_next = 1;
89502 +
89503 + return;
89504 +}
89505 +
89506 +int
89507 +acl_alloc_stack_init(unsigned long size)
89508 +{
89509 + if ((size * sizeof (void *)) <= PAGE_SIZE)
89510 + current_alloc_state->alloc_stack =
89511 + (void **) kmalloc(size * sizeof (void *), GFP_KERNEL);
89512 + else
89513 + current_alloc_state->alloc_stack = (void **) vmalloc(size * sizeof (void *));
89514 +
89515 + current_alloc_state->alloc_stack_size = size;
89516 + current_alloc_state->alloc_stack_next = 1;
89517 +
89518 + if (!current_alloc_state->alloc_stack)
89519 + return 0;
89520 + else
89521 + return 1;
89522 +}
89523 diff --git a/grsecurity/gracl_cap.c b/grsecurity/gracl_cap.c
89524 new file mode 100644
89525 index 0000000..1a94c11
89526 --- /dev/null
89527 +++ b/grsecurity/gracl_cap.c
89528 @@ -0,0 +1,127 @@
89529 +#include <linux/kernel.h>
89530 +#include <linux/module.h>
89531 +#include <linux/sched.h>
89532 +#include <linux/gracl.h>
89533 +#include <linux/grsecurity.h>
89534 +#include <linux/grinternal.h>
89535 +
89536 +extern const char *captab_log[];
89537 +extern int captab_log_entries;
89538 +
89539 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
89540 +{
89541 + struct acl_subject_label *curracl;
89542 +
89543 + if (!gr_acl_is_enabled())
89544 + return 1;
89545 +
89546 + curracl = task->acl;
89547 +
89548 + if (curracl->mode & (GR_LEARN | GR_INHERITLEARN)) {
89549 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
89550 + task->role->roletype, GR_GLOBAL_UID(cred->uid),
89551 + GR_GLOBAL_GID(cred->gid), task->exec_file ?
89552 + gr_to_filename(task->exec_file->f_path.dentry,
89553 + task->exec_file->f_path.mnt) : curracl->filename,
89554 + curracl->filename, 0UL,
89555 + 0UL, "", (unsigned long) cap, &task->signal->saved_ip);
89556 + return 1;
89557 + }
89558 +
89559 + return 0;
89560 +}
89561 +
89562 +int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
89563 +{
89564 + struct acl_subject_label *curracl;
89565 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89566 + kernel_cap_t cap_audit = __cap_empty_set;
89567 +
89568 + if (!gr_acl_is_enabled())
89569 + return 1;
89570 +
89571 + curracl = task->acl;
89572 +
89573 + cap_drop = curracl->cap_lower;
89574 + cap_mask = curracl->cap_mask;
89575 + cap_audit = curracl->cap_invert_audit;
89576 +
89577 + while ((curracl = curracl->parent_subject)) {
89578 + /* if the cap isn't specified in the current computed mask but is specified in the
89579 + current level subject, and is lowered in the current level subject, then add
89580 + it to the set of dropped capabilities
89581 + otherwise, add the current level subject's mask to the current computed mask
89582 + */
89583 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89584 + cap_raise(cap_mask, cap);
89585 + if (cap_raised(curracl->cap_lower, cap))
89586 + cap_raise(cap_drop, cap);
89587 + if (cap_raised(curracl->cap_invert_audit, cap))
89588 + cap_raise(cap_audit, cap);
89589 + }
89590 + }
89591 +
89592 + if (!cap_raised(cap_drop, cap)) {
89593 + if (cap_raised(cap_audit, cap))
89594 + gr_log_cap(GR_DO_AUDIT, GR_CAP_ACL_MSG2, task, captab_log[cap]);
89595 + return 1;
89596 + }
89597 +
89598 + /* only learn the capability use if the process has the capability in the
89599 + general case, the two uses in sys.c of gr_learn_cap are an exception
89600 + to this rule to ensure any role transition involves what the full-learned
89601 + policy believes in a privileged process
89602 + */
89603 + if (cap_raised(cred->cap_effective, cap) && gr_learn_cap(task, cred, cap))
89604 + return 1;
89605 +
89606 + if ((cap >= 0) && (cap < captab_log_entries) && cap_raised(cred->cap_effective, cap) && !cap_raised(cap_audit, cap))
89607 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_ACL_MSG, task, captab_log[cap]);
89608 +
89609 + return 0;
89610 +}
89611 +
89612 +int
89613 +gr_acl_is_capable(const int cap)
89614 +{
89615 + return gr_task_acl_is_capable(current, current_cred(), cap);
89616 +}
89617 +
89618 +int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap)
89619 +{
89620 + struct acl_subject_label *curracl;
89621 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89622 +
89623 + if (!gr_acl_is_enabled())
89624 + return 1;
89625 +
89626 + curracl = task->acl;
89627 +
89628 + cap_drop = curracl->cap_lower;
89629 + cap_mask = curracl->cap_mask;
89630 +
89631 + while ((curracl = curracl->parent_subject)) {
89632 + /* if the cap isn't specified in the current computed mask but is specified in the
89633 + current level subject, and is lowered in the current level subject, then add
89634 + it to the set of dropped capabilities
89635 + otherwise, add the current level subject's mask to the current computed mask
89636 + */
89637 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89638 + cap_raise(cap_mask, cap);
89639 + if (cap_raised(curracl->cap_lower, cap))
89640 + cap_raise(cap_drop, cap);
89641 + }
89642 + }
89643 +
89644 + if (!cap_raised(cap_drop, cap))
89645 + return 1;
89646 +
89647 + return 0;
89648 +}
89649 +
89650 +int
89651 +gr_acl_is_capable_nolog(const int cap)
89652 +{
89653 + return gr_task_acl_is_capable_nolog(current, cap);
89654 +}
89655 +
89656 diff --git a/grsecurity/gracl_compat.c b/grsecurity/gracl_compat.c
89657 new file mode 100644
89658 index 0000000..a43dd06
89659 --- /dev/null
89660 +++ b/grsecurity/gracl_compat.c
89661 @@ -0,0 +1,269 @@
89662 +#include <linux/kernel.h>
89663 +#include <linux/gracl.h>
89664 +#include <linux/compat.h>
89665 +#include <linux/gracl_compat.h>
89666 +
89667 +#include <asm/uaccess.h>
89668 +
89669 +int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap)
89670 +{
89671 + struct gr_arg_wrapper_compat uwrapcompat;
89672 +
89673 + if (copy_from_user(&uwrapcompat, buf, sizeof(uwrapcompat)))
89674 + return -EFAULT;
89675 +
89676 + if ((uwrapcompat.version != GRSECURITY_VERSION) ||
89677 + (uwrapcompat.size != sizeof(struct gr_arg_compat)))
89678 + return -EINVAL;
89679 +
89680 + uwrap->arg = compat_ptr(uwrapcompat.arg);
89681 + uwrap->version = uwrapcompat.version;
89682 + uwrap->size = sizeof(struct gr_arg);
89683 +
89684 + return 0;
89685 +}
89686 +
89687 +int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg)
89688 +{
89689 + struct gr_arg_compat argcompat;
89690 +
89691 + if (copy_from_user(&argcompat, buf, sizeof(argcompat)))
89692 + return -EFAULT;
89693 +
89694 + arg->role_db.r_table = compat_ptr(argcompat.role_db.r_table);
89695 + arg->role_db.num_pointers = argcompat.role_db.num_pointers;
89696 + arg->role_db.num_roles = argcompat.role_db.num_roles;
89697 + arg->role_db.num_domain_children = argcompat.role_db.num_domain_children;
89698 + arg->role_db.num_subjects = argcompat.role_db.num_subjects;
89699 + arg->role_db.num_objects = argcompat.role_db.num_objects;
89700 +
89701 + memcpy(&arg->pw, &argcompat.pw, sizeof(arg->pw));
89702 + memcpy(&arg->salt, &argcompat.salt, sizeof(arg->salt));
89703 + memcpy(&arg->sum, &argcompat.sum, sizeof(arg->sum));
89704 + memcpy(&arg->sp_role, &argcompat.sp_role, sizeof(arg->sp_role));
89705 + arg->sprole_pws = compat_ptr(argcompat.sprole_pws);
89706 + arg->segv_device = argcompat.segv_device;
89707 + arg->segv_inode = argcompat.segv_inode;
89708 + arg->segv_uid = argcompat.segv_uid;
89709 + arg->num_sprole_pws = argcompat.num_sprole_pws;
89710 + arg->mode = argcompat.mode;
89711 +
89712 + return 0;
89713 +}
89714 +
89715 +int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp)
89716 +{
89717 + struct acl_object_label_compat objcompat;
89718 +
89719 + if (copy_from_user(&objcompat, userp, sizeof(objcompat)))
89720 + return -EFAULT;
89721 +
89722 + obj->filename = compat_ptr(objcompat.filename);
89723 + obj->inode = objcompat.inode;
89724 + obj->device = objcompat.device;
89725 + obj->mode = objcompat.mode;
89726 +
89727 + obj->nested = compat_ptr(objcompat.nested);
89728 + obj->globbed = compat_ptr(objcompat.globbed);
89729 +
89730 + obj->prev = compat_ptr(objcompat.prev);
89731 + obj->next = compat_ptr(objcompat.next);
89732 +
89733 + return 0;
89734 +}
89735 +
89736 +int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp)
89737 +{
89738 + unsigned int i;
89739 + struct acl_subject_label_compat subjcompat;
89740 +
89741 + if (copy_from_user(&subjcompat, userp, sizeof(subjcompat)))
89742 + return -EFAULT;
89743 +
89744 + subj->filename = compat_ptr(subjcompat.filename);
89745 + subj->inode = subjcompat.inode;
89746 + subj->device = subjcompat.device;
89747 + subj->mode = subjcompat.mode;
89748 + subj->cap_mask = subjcompat.cap_mask;
89749 + subj->cap_lower = subjcompat.cap_lower;
89750 + subj->cap_invert_audit = subjcompat.cap_invert_audit;
89751 +
89752 + for (i = 0; i < GR_NLIMITS; i++) {
89753 + if (subjcompat.res[i].rlim_cur == COMPAT_RLIM_INFINITY)
89754 + subj->res[i].rlim_cur = RLIM_INFINITY;
89755 + else
89756 + subj->res[i].rlim_cur = subjcompat.res[i].rlim_cur;
89757 + if (subjcompat.res[i].rlim_max == COMPAT_RLIM_INFINITY)
89758 + subj->res[i].rlim_max = RLIM_INFINITY;
89759 + else
89760 + subj->res[i].rlim_max = subjcompat.res[i].rlim_max;
89761 + }
89762 + subj->resmask = subjcompat.resmask;
89763 +
89764 + subj->user_trans_type = subjcompat.user_trans_type;
89765 + subj->group_trans_type = subjcompat.group_trans_type;
89766 + subj->user_transitions = compat_ptr(subjcompat.user_transitions);
89767 + subj->group_transitions = compat_ptr(subjcompat.group_transitions);
89768 + subj->user_trans_num = subjcompat.user_trans_num;
89769 + subj->group_trans_num = subjcompat.group_trans_num;
89770 +
89771 + memcpy(&subj->sock_families, &subjcompat.sock_families, sizeof(subj->sock_families));
89772 + memcpy(&subj->ip_proto, &subjcompat.ip_proto, sizeof(subj->ip_proto));
89773 + subj->ip_type = subjcompat.ip_type;
89774 + subj->ips = compat_ptr(subjcompat.ips);
89775 + subj->ip_num = subjcompat.ip_num;
89776 + subj->inaddr_any_override = subjcompat.inaddr_any_override;
89777 +
89778 + subj->crashes = subjcompat.crashes;
89779 + subj->expires = subjcompat.expires;
89780 +
89781 + subj->parent_subject = compat_ptr(subjcompat.parent_subject);
89782 + subj->hash = compat_ptr(subjcompat.hash);
89783 + subj->prev = compat_ptr(subjcompat.prev);
89784 + subj->next = compat_ptr(subjcompat.next);
89785 +
89786 + subj->obj_hash = compat_ptr(subjcompat.obj_hash);
89787 + subj->obj_hash_size = subjcompat.obj_hash_size;
89788 + subj->pax_flags = subjcompat.pax_flags;
89789 +
89790 + return 0;
89791 +}
89792 +
89793 +int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp)
89794 +{
89795 + struct acl_role_label_compat rolecompat;
89796 +
89797 + if (copy_from_user(&rolecompat, userp, sizeof(rolecompat)))
89798 + return -EFAULT;
89799 +
89800 + role->rolename = compat_ptr(rolecompat.rolename);
89801 + role->uidgid = rolecompat.uidgid;
89802 + role->roletype = rolecompat.roletype;
89803 +
89804 + role->auth_attempts = rolecompat.auth_attempts;
89805 + role->expires = rolecompat.expires;
89806 +
89807 + role->root_label = compat_ptr(rolecompat.root_label);
89808 + role->hash = compat_ptr(rolecompat.hash);
89809 +
89810 + role->prev = compat_ptr(rolecompat.prev);
89811 + role->next = compat_ptr(rolecompat.next);
89812 +
89813 + role->transitions = compat_ptr(rolecompat.transitions);
89814 + role->allowed_ips = compat_ptr(rolecompat.allowed_ips);
89815 + role->domain_children = compat_ptr(rolecompat.domain_children);
89816 + role->domain_child_num = rolecompat.domain_child_num;
89817 +
89818 + role->umask = rolecompat.umask;
89819 +
89820 + role->subj_hash = compat_ptr(rolecompat.subj_hash);
89821 + role->subj_hash_size = rolecompat.subj_hash_size;
89822 +
89823 + return 0;
89824 +}
89825 +
89826 +int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
89827 +{
89828 + struct role_allowed_ip_compat roleip_compat;
89829 +
89830 + if (copy_from_user(&roleip_compat, userp, sizeof(roleip_compat)))
89831 + return -EFAULT;
89832 +
89833 + roleip->addr = roleip_compat.addr;
89834 + roleip->netmask = roleip_compat.netmask;
89835 +
89836 + roleip->prev = compat_ptr(roleip_compat.prev);
89837 + roleip->next = compat_ptr(roleip_compat.next);
89838 +
89839 + return 0;
89840 +}
89841 +
89842 +int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp)
89843 +{
89844 + struct role_transition_compat trans_compat;
89845 +
89846 + if (copy_from_user(&trans_compat, userp, sizeof(trans_compat)))
89847 + return -EFAULT;
89848 +
89849 + trans->rolename = compat_ptr(trans_compat.rolename);
89850 +
89851 + trans->prev = compat_ptr(trans_compat.prev);
89852 + trans->next = compat_ptr(trans_compat.next);
89853 +
89854 + return 0;
89855 +
89856 +}
89857 +
89858 +int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
89859 +{
89860 + struct gr_hash_struct_compat hash_compat;
89861 +
89862 + if (copy_from_user(&hash_compat, userp, sizeof(hash_compat)))
89863 + return -EFAULT;
89864 +
89865 + hash->table = compat_ptr(hash_compat.table);
89866 + hash->nametable = compat_ptr(hash_compat.nametable);
89867 + hash->first = compat_ptr(hash_compat.first);
89868 +
89869 + hash->table_size = hash_compat.table_size;
89870 + hash->used_size = hash_compat.used_size;
89871 +
89872 + hash->type = hash_compat.type;
89873 +
89874 + return 0;
89875 +}
89876 +
89877 +int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp)
89878 +{
89879 + compat_uptr_t ptrcompat;
89880 +
89881 + if (copy_from_user(&ptrcompat, userp + (idx * sizeof(ptrcompat)), sizeof(ptrcompat)))
89882 + return -EFAULT;
89883 +
89884 + *(void **)ptr = compat_ptr(ptrcompat);
89885 +
89886 + return 0;
89887 +}
89888 +
89889 +int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp)
89890 +{
89891 + struct acl_ip_label_compat ip_compat;
89892 +
89893 + if (copy_from_user(&ip_compat, userp, sizeof(ip_compat)))
89894 + return -EFAULT;
89895 +
89896 + ip->iface = compat_ptr(ip_compat.iface);
89897 + ip->addr = ip_compat.addr;
89898 + ip->netmask = ip_compat.netmask;
89899 + ip->low = ip_compat.low;
89900 + ip->high = ip_compat.high;
89901 + ip->mode = ip_compat.mode;
89902 + ip->type = ip_compat.type;
89903 +
89904 + memcpy(&ip->proto, &ip_compat.proto, sizeof(ip->proto));
89905 +
89906 + ip->prev = compat_ptr(ip_compat.prev);
89907 + ip->next = compat_ptr(ip_compat.next);
89908 +
89909 + return 0;
89910 +}
89911 +
89912 +int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
89913 +{
89914 + struct sprole_pw_compat pw_compat;
89915 +
89916 + if (copy_from_user(&pw_compat, (const void *)userp + (sizeof(pw_compat) * idx), sizeof(pw_compat)))
89917 + return -EFAULT;
89918 +
89919 + pw->rolename = compat_ptr(pw_compat.rolename);
89920 + memcpy(&pw->salt, pw_compat.salt, sizeof(pw->salt));
89921 + memcpy(&pw->sum, pw_compat.sum, sizeof(pw->sum));
89922 +
89923 + return 0;
89924 +}
89925 +
89926 +size_t get_gr_arg_wrapper_size_compat(void)
89927 +{
89928 + return sizeof(struct gr_arg_wrapper_compat);
89929 +}
89930 +
89931 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
89932 new file mode 100644
89933 index 0000000..fce7f71
89934 --- /dev/null
89935 +++ b/grsecurity/gracl_fs.c
89936 @@ -0,0 +1,448 @@
89937 +#include <linux/kernel.h>
89938 +#include <linux/sched.h>
89939 +#include <linux/types.h>
89940 +#include <linux/fs.h>
89941 +#include <linux/file.h>
89942 +#include <linux/stat.h>
89943 +#include <linux/grsecurity.h>
89944 +#include <linux/grinternal.h>
89945 +#include <linux/gracl.h>
89946 +
89947 +umode_t
89948 +gr_acl_umask(void)
89949 +{
89950 + if (unlikely(!gr_acl_is_enabled()))
89951 + return 0;
89952 +
89953 + return current->role->umask;
89954 +}
89955 +
89956 +__u32
89957 +gr_acl_handle_hidden_file(const struct dentry * dentry,
89958 + const struct vfsmount * mnt)
89959 +{
89960 + __u32 mode;
89961 +
89962 + if (unlikely(d_is_negative(dentry)))
89963 + return GR_FIND;
89964 +
89965 + mode =
89966 + gr_search_file(dentry, GR_FIND | GR_AUDIT_FIND | GR_SUPPRESS, mnt);
89967 +
89968 + if (unlikely(mode & GR_FIND && mode & GR_AUDIT_FIND)) {
89969 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
89970 + return mode;
89971 + } else if (unlikely(!(mode & GR_FIND) && !(mode & GR_SUPPRESS))) {
89972 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
89973 + return 0;
89974 + } else if (unlikely(!(mode & GR_FIND)))
89975 + return 0;
89976 +
89977 + return GR_FIND;
89978 +}
89979 +
89980 +__u32
89981 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
89982 + int acc_mode)
89983 +{
89984 + __u32 reqmode = GR_FIND;
89985 + __u32 mode;
89986 +
89987 + if (unlikely(d_is_negative(dentry)))
89988 + return reqmode;
89989 +
89990 + if (acc_mode & MAY_APPEND)
89991 + reqmode |= GR_APPEND;
89992 + else if (acc_mode & MAY_WRITE)
89993 + reqmode |= GR_WRITE;
89994 + if ((acc_mode & MAY_READ) && !d_is_dir(dentry))
89995 + reqmode |= GR_READ;
89996 +
89997 + mode =
89998 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
89999 + mnt);
90000 +
90001 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90002 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
90003 + reqmode & GR_READ ? " reading" : "",
90004 + reqmode & GR_WRITE ? " writing" : reqmode &
90005 + GR_APPEND ? " appending" : "");
90006 + return reqmode;
90007 + } else
90008 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90009 + {
90010 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
90011 + reqmode & GR_READ ? " reading" : "",
90012 + reqmode & GR_WRITE ? " writing" : reqmode &
90013 + GR_APPEND ? " appending" : "");
90014 + return 0;
90015 + } else if (unlikely((mode & reqmode) != reqmode))
90016 + return 0;
90017 +
90018 + return reqmode;
90019 +}
90020 +
90021 +__u32
90022 +gr_acl_handle_creat(const struct dentry * dentry,
90023 + const struct dentry * p_dentry,
90024 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
90025 + const int imode)
90026 +{
90027 + __u32 reqmode = GR_WRITE | GR_CREATE;
90028 + __u32 mode;
90029 +
90030 + if (acc_mode & MAY_APPEND)
90031 + reqmode |= GR_APPEND;
90032 + // if a directory was required or the directory already exists, then
90033 + // don't count this open as a read
90034 + if ((acc_mode & MAY_READ) &&
90035 + !((open_flags & O_DIRECTORY) || d_is_dir(dentry)))
90036 + reqmode |= GR_READ;
90037 + if ((open_flags & O_CREAT) &&
90038 + ((imode & S_ISUID) || ((imode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
90039 + reqmode |= GR_SETID;
90040 +
90041 + mode =
90042 + gr_check_create(dentry, p_dentry, p_mnt,
90043 + reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
90044 +
90045 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90046 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
90047 + reqmode & GR_READ ? " reading" : "",
90048 + reqmode & GR_WRITE ? " writing" : reqmode &
90049 + GR_APPEND ? " appending" : "");
90050 + return reqmode;
90051 + } else
90052 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90053 + {
90054 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
90055 + reqmode & GR_READ ? " reading" : "",
90056 + reqmode & GR_WRITE ? " writing" : reqmode &
90057 + GR_APPEND ? " appending" : "");
90058 + return 0;
90059 + } else if (unlikely((mode & reqmode) != reqmode))
90060 + return 0;
90061 +
90062 + return reqmode;
90063 +}
90064 +
90065 +__u32
90066 +gr_acl_handle_access(const struct dentry * dentry, const struct vfsmount * mnt,
90067 + const int fmode)
90068 +{
90069 + __u32 mode, reqmode = GR_FIND;
90070 +
90071 + if ((fmode & S_IXOTH) && !d_is_dir(dentry))
90072 + reqmode |= GR_EXEC;
90073 + if (fmode & S_IWOTH)
90074 + reqmode |= GR_WRITE;
90075 + if (fmode & S_IROTH)
90076 + reqmode |= GR_READ;
90077 +
90078 + mode =
90079 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
90080 + mnt);
90081 +
90082 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90083 + gr_log_fs_rbac_mode3(GR_DO_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
90084 + reqmode & GR_READ ? " reading" : "",
90085 + reqmode & GR_WRITE ? " writing" : "",
90086 + reqmode & GR_EXEC ? " executing" : "");
90087 + return reqmode;
90088 + } else
90089 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90090 + {
90091 + gr_log_fs_rbac_mode3(GR_DONT_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
90092 + reqmode & GR_READ ? " reading" : "",
90093 + reqmode & GR_WRITE ? " writing" : "",
90094 + reqmode & GR_EXEC ? " executing" : "");
90095 + return 0;
90096 + } else if (unlikely((mode & reqmode) != reqmode))
90097 + return 0;
90098 +
90099 + return reqmode;
90100 +}
90101 +
90102 +static __u32 generic_fs_handler(const struct dentry *dentry, const struct vfsmount *mnt, __u32 reqmode, const char *fmt)
90103 +{
90104 + __u32 mode;
90105 +
90106 + mode = gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, mnt);
90107 +
90108 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
90109 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, dentry, mnt);
90110 + return mode;
90111 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
90112 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, dentry, mnt);
90113 + return 0;
90114 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
90115 + return 0;
90116 +
90117 + return (reqmode);
90118 +}
90119 +
90120 +__u32
90121 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
90122 +{
90123 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_RMDIR_ACL_MSG);
90124 +}
90125 +
90126 +__u32
90127 +gr_acl_handle_unlink(const struct dentry *dentry, const struct vfsmount *mnt)
90128 +{
90129 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_UNLINK_ACL_MSG);
90130 +}
90131 +
90132 +__u32
90133 +gr_acl_handle_truncate(const struct dentry *dentry, const struct vfsmount *mnt)
90134 +{
90135 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_TRUNCATE_ACL_MSG);
90136 +}
90137 +
90138 +__u32
90139 +gr_acl_handle_utime(const struct dentry *dentry, const struct vfsmount *mnt)
90140 +{
90141 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_ATIME_ACL_MSG);
90142 +}
90143 +
90144 +__u32
90145 +gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
90146 + umode_t *modeptr)
90147 +{
90148 + umode_t mode;
90149 + struct inode *inode = d_backing_inode(dentry);
90150 +
90151 + *modeptr &= ~gr_acl_umask();
90152 + mode = *modeptr;
90153 +
90154 + if (unlikely(inode && S_ISSOCK(inode->i_mode)))
90155 + return 1;
90156 +
90157 + if (unlikely(!d_is_dir(dentry) &&
90158 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))) {
90159 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
90160 + GR_CHMOD_ACL_MSG);
90161 + } else {
90162 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHMOD_ACL_MSG);
90163 + }
90164 +}
90165 +
90166 +__u32
90167 +gr_acl_handle_chown(const struct dentry *dentry, const struct vfsmount *mnt)
90168 +{
90169 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHOWN_ACL_MSG);
90170 +}
90171 +
90172 +__u32
90173 +gr_acl_handle_setxattr(const struct dentry *dentry, const struct vfsmount *mnt)
90174 +{
90175 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_SETXATTR_ACL_MSG);
90176 +}
90177 +
90178 +__u32
90179 +gr_acl_handle_removexattr(const struct dentry *dentry, const struct vfsmount *mnt)
90180 +{
90181 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_REMOVEXATTR_ACL_MSG);
90182 +}
90183 +
90184 +__u32
90185 +gr_acl_handle_execve(const struct dentry *dentry, const struct vfsmount *mnt)
90186 +{
90187 + return generic_fs_handler(dentry, mnt, GR_EXEC, GR_EXEC_ACL_MSG);
90188 +}
90189 +
90190 +__u32
90191 +gr_acl_handle_unix(const struct dentry *dentry, const struct vfsmount *mnt)
90192 +{
90193 + return generic_fs_handler(dentry, mnt, GR_READ | GR_WRITE,
90194 + GR_UNIXCONNECT_ACL_MSG);
90195 +}
90196 +
90197 +/* hardlinks require at minimum create and link permission,
90198 + any additional privilege required is based on the
90199 + privilege of the file being linked to
90200 +*/
90201 +__u32
90202 +gr_acl_handle_link(const struct dentry * new_dentry,
90203 + const struct dentry * parent_dentry,
90204 + const struct vfsmount * parent_mnt,
90205 + const struct dentry * old_dentry,
90206 + const struct vfsmount * old_mnt, const struct filename *to)
90207 +{
90208 + __u32 mode;
90209 + __u32 needmode = GR_CREATE | GR_LINK;
90210 + __u32 needaudit = GR_AUDIT_CREATE | GR_AUDIT_LINK;
90211 +
90212 + mode =
90213 + gr_check_link(new_dentry, parent_dentry, parent_mnt, old_dentry,
90214 + old_mnt);
90215 +
90216 + if (unlikely(((mode & needmode) == needmode) && (mode & needaudit))) {
90217 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
90218 + return mode;
90219 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
90220 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
90221 + return 0;
90222 + } else if (unlikely((mode & needmode) != needmode))
90223 + return 0;
90224 +
90225 + return 1;
90226 +}
90227 +
90228 +__u32
90229 +gr_acl_handle_symlink(const struct dentry * new_dentry,
90230 + const struct dentry * parent_dentry,
90231 + const struct vfsmount * parent_mnt, const struct filename *from)
90232 +{
90233 + __u32 needmode = GR_WRITE | GR_CREATE;
90234 + __u32 mode;
90235 +
90236 + mode =
90237 + gr_check_create(new_dentry, parent_dentry, parent_mnt,
90238 + GR_CREATE | GR_AUDIT_CREATE |
90239 + GR_WRITE | GR_AUDIT_WRITE | GR_SUPPRESS);
90240 +
90241 + if (unlikely(mode & GR_WRITE && mode & GR_AUDITS)) {
90242 + gr_log_fs_str_rbac(GR_DO_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
90243 + return mode;
90244 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
90245 + gr_log_fs_str_rbac(GR_DONT_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
90246 + return 0;
90247 + } else if (unlikely((mode & needmode) != needmode))
90248 + return 0;
90249 +
90250 + return (GR_WRITE | GR_CREATE);
90251 +}
90252 +
90253 +static __u32 generic_fs_create_handler(const struct dentry *new_dentry, const struct dentry *parent_dentry, const struct vfsmount *parent_mnt, __u32 reqmode, const char *fmt)
90254 +{
90255 + __u32 mode;
90256 +
90257 + mode = gr_check_create(new_dentry, parent_dentry, parent_mnt, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
90258 +
90259 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
90260 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, new_dentry, parent_mnt);
90261 + return mode;
90262 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
90263 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, new_dentry, parent_mnt);
90264 + return 0;
90265 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
90266 + return 0;
90267 +
90268 + return (reqmode);
90269 +}
90270 +
90271 +__u32
90272 +gr_acl_handle_mknod(const struct dentry * new_dentry,
90273 + const struct dentry * parent_dentry,
90274 + const struct vfsmount * parent_mnt,
90275 + const int mode)
90276 +{
90277 + __u32 reqmode = GR_WRITE | GR_CREATE;
90278 + if (unlikely((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
90279 + reqmode |= GR_SETID;
90280 +
90281 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
90282 + reqmode, GR_MKNOD_ACL_MSG);
90283 +}
90284 +
90285 +__u32
90286 +gr_acl_handle_mkdir(const struct dentry *new_dentry,
90287 + const struct dentry *parent_dentry,
90288 + const struct vfsmount *parent_mnt)
90289 +{
90290 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
90291 + GR_WRITE | GR_CREATE, GR_MKDIR_ACL_MSG);
90292 +}
90293 +
90294 +#define RENAME_CHECK_SUCCESS(old, new) \
90295 + (((old & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)) && \
90296 + ((new & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)))
90297 +
90298 +int
90299 +gr_acl_handle_rename(struct dentry *new_dentry,
90300 + struct dentry *parent_dentry,
90301 + const struct vfsmount *parent_mnt,
90302 + struct dentry *old_dentry,
90303 + struct inode *old_parent_inode,
90304 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags)
90305 +{
90306 + __u32 comp1, comp2;
90307 + int error = 0;
90308 +
90309 + if (unlikely(!gr_acl_is_enabled()))
90310 + return 0;
90311 +
90312 + if (flags & RENAME_EXCHANGE) {
90313 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
90314 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90315 + GR_SUPPRESS, parent_mnt);
90316 + comp2 =
90317 + gr_search_file(old_dentry,
90318 + GR_READ | GR_WRITE | GR_AUDIT_READ |
90319 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
90320 + } else if (d_is_negative(new_dentry)) {
90321 + comp1 = gr_check_create(new_dentry, parent_dentry, parent_mnt,
90322 + GR_READ | GR_WRITE | GR_CREATE | GR_AUDIT_READ |
90323 + GR_AUDIT_WRITE | GR_AUDIT_CREATE | GR_SUPPRESS);
90324 + comp2 = gr_search_file(old_dentry, GR_READ | GR_WRITE |
90325 + GR_DELETE | GR_AUDIT_DELETE |
90326 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90327 + GR_SUPPRESS, old_mnt);
90328 + } else {
90329 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
90330 + GR_CREATE | GR_DELETE |
90331 + GR_AUDIT_CREATE | GR_AUDIT_DELETE |
90332 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90333 + GR_SUPPRESS, parent_mnt);
90334 + comp2 =
90335 + gr_search_file(old_dentry,
90336 + GR_READ | GR_WRITE | GR_AUDIT_READ |
90337 + GR_DELETE | GR_AUDIT_DELETE |
90338 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
90339 + }
90340 +
90341 + if (RENAME_CHECK_SUCCESS(comp1, comp2) &&
90342 + ((comp1 & GR_AUDITS) || (comp2 & GR_AUDITS)))
90343 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
90344 + else if (!RENAME_CHECK_SUCCESS(comp1, comp2) && !(comp1 & GR_SUPPRESS)
90345 + && !(comp2 & GR_SUPPRESS)) {
90346 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
90347 + error = -EACCES;
90348 + } else if (unlikely(!RENAME_CHECK_SUCCESS(comp1, comp2)))
90349 + error = -EACCES;
90350 +
90351 + return error;
90352 +}
90353 +
90354 +void
90355 +gr_acl_handle_exit(void)
90356 +{
90357 + u16 id;
90358 + char *rolename;
90359 +
90360 + if (unlikely(current->acl_sp_role && gr_acl_is_enabled() &&
90361 + !(current->role->roletype & GR_ROLE_PERSIST))) {
90362 + id = current->acl_role_id;
90363 + rolename = current->role->rolename;
90364 + gr_set_acls(1);
90365 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLEL_ACL_MSG, rolename, id);
90366 + }
90367 +
90368 + gr_put_exec_file(current);
90369 + return;
90370 +}
90371 +
90372 +int
90373 +gr_acl_handle_procpidmem(const struct task_struct *task)
90374 +{
90375 + if (unlikely(!gr_acl_is_enabled()))
90376 + return 0;
90377 +
90378 + if (task != current && (task->acl->mode & GR_PROTPROCFD) &&
90379 + !(current->acl->mode & GR_POVERRIDE) &&
90380 + !(current->role->roletype & GR_ROLE_GOD))
90381 + return -EACCES;
90382 +
90383 + return 0;
90384 +}
90385 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
90386 new file mode 100644
90387 index 0000000..ed6ee43
90388 --- /dev/null
90389 +++ b/grsecurity/gracl_ip.c
90390 @@ -0,0 +1,386 @@
90391 +#include <linux/kernel.h>
90392 +#include <asm/uaccess.h>
90393 +#include <asm/errno.h>
90394 +#include <net/sock.h>
90395 +#include <linux/file.h>
90396 +#include <linux/fs.h>
90397 +#include <linux/net.h>
90398 +#include <linux/in.h>
90399 +#include <linux/skbuff.h>
90400 +#include <linux/ip.h>
90401 +#include <linux/udp.h>
90402 +#include <linux/types.h>
90403 +#include <linux/sched.h>
90404 +#include <linux/netdevice.h>
90405 +#include <linux/inetdevice.h>
90406 +#include <linux/gracl.h>
90407 +#include <linux/grsecurity.h>
90408 +#include <linux/grinternal.h>
90409 +
90410 +#define GR_BIND 0x01
90411 +#define GR_CONNECT 0x02
90412 +#define GR_INVERT 0x04
90413 +#define GR_BINDOVERRIDE 0x08
90414 +#define GR_CONNECTOVERRIDE 0x10
90415 +#define GR_SOCK_FAMILY 0x20
90416 +
90417 +static const char * gr_protocols[IPPROTO_MAX] = {
90418 + "ip", "icmp", "igmp", "ggp", "ipencap", "st", "tcp", "cbt",
90419 + "egp", "igp", "bbn-rcc", "nvp", "pup", "argus", "emcon", "xnet",
90420 + "chaos", "udp", "mux", "dcn", "hmp", "prm", "xns-idp", "trunk-1",
90421 + "trunk-2", "leaf-1", "leaf-2", "rdp", "irtp", "iso-tp4", "netblt", "mfe-nsp",
90422 + "merit-inp", "sep", "3pc", "idpr", "xtp", "ddp", "idpr-cmtp", "tp++",
90423 + "il", "ipv6", "sdrp", "ipv6-route", "ipv6-frag", "idrp", "rsvp", "gre",
90424 + "mhrp", "bna", "ipv6-crypt", "ipv6-auth", "i-nlsp", "swipe", "narp", "mobile",
90425 + "tlsp", "skip", "ipv6-icmp", "ipv6-nonxt", "ipv6-opts", "unknown:61", "cftp", "unknown:63",
90426 + "sat-expak", "kryptolan", "rvd", "ippc", "unknown:68", "sat-mon", "visa", "ipcv",
90427 + "cpnx", "cphb", "wsn", "pvp", "br-sat-mon", "sun-nd", "wb-mon", "wb-expak",
90428 + "iso-ip", "vmtp", "secure-vmtp", "vines", "ttp", "nfsnet-igp", "dgp", "tcf",
90429 + "eigrp", "ospf", "sprite-rpc", "larp", "mtp", "ax.25", "ipip", "micp",
90430 + "scc-sp", "etherip", "encap", "unknown:99", "gmtp", "ifmp", "pnni", "pim",
90431 + "aris", "scps", "qnx", "a/n", "ipcomp", "snp", "compaq-peer", "ipx-in-ip",
90432 + "vrrp", "pgm", "unknown:114", "l2tp", "ddx", "iatp", "stp", "srp",
90433 + "uti", "smp", "sm", "ptp", "isis", "fire", "crtp", "crdup",
90434 + "sscopmce", "iplt", "sps", "pipe", "sctp", "fc", "unkown:134", "unknown:135",
90435 + "unknown:136", "unknown:137", "unknown:138", "unknown:139", "unknown:140", "unknown:141", "unknown:142", "unknown:143",
90436 + "unknown:144", "unknown:145", "unknown:146", "unknown:147", "unknown:148", "unknown:149", "unknown:150", "unknown:151",
90437 + "unknown:152", "unknown:153", "unknown:154", "unknown:155", "unknown:156", "unknown:157", "unknown:158", "unknown:159",
90438 + "unknown:160", "unknown:161", "unknown:162", "unknown:163", "unknown:164", "unknown:165", "unknown:166", "unknown:167",
90439 + "unknown:168", "unknown:169", "unknown:170", "unknown:171", "unknown:172", "unknown:173", "unknown:174", "unknown:175",
90440 + "unknown:176", "unknown:177", "unknown:178", "unknown:179", "unknown:180", "unknown:181", "unknown:182", "unknown:183",
90441 + "unknown:184", "unknown:185", "unknown:186", "unknown:187", "unknown:188", "unknown:189", "unknown:190", "unknown:191",
90442 + "unknown:192", "unknown:193", "unknown:194", "unknown:195", "unknown:196", "unknown:197", "unknown:198", "unknown:199",
90443 + "unknown:200", "unknown:201", "unknown:202", "unknown:203", "unknown:204", "unknown:205", "unknown:206", "unknown:207",
90444 + "unknown:208", "unknown:209", "unknown:210", "unknown:211", "unknown:212", "unknown:213", "unknown:214", "unknown:215",
90445 + "unknown:216", "unknown:217", "unknown:218", "unknown:219", "unknown:220", "unknown:221", "unknown:222", "unknown:223",
90446 + "unknown:224", "unknown:225", "unknown:226", "unknown:227", "unknown:228", "unknown:229", "unknown:230", "unknown:231",
90447 + "unknown:232", "unknown:233", "unknown:234", "unknown:235", "unknown:236", "unknown:237", "unknown:238", "unknown:239",
90448 + "unknown:240", "unknown:241", "unknown:242", "unknown:243", "unknown:244", "unknown:245", "unknown:246", "unknown:247",
90449 + "unknown:248", "unknown:249", "unknown:250", "unknown:251", "unknown:252", "unknown:253", "unknown:254", "unknown:255",
90450 + };
90451 +
90452 +static const char * gr_socktypes[SOCK_MAX] = {
90453 + "unknown:0", "stream", "dgram", "raw", "rdm", "seqpacket", "unknown:6",
90454 + "unknown:7", "unknown:8", "unknown:9", "packet"
90455 + };
90456 +
90457 +static const char * gr_sockfamilies[AF_MAX+1] = {
90458 + "unspec", "unix", "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc", "x25",
90459 + "inet6", "rose", "decnet", "netbeui", "security", "key", "netlink", "packet", "ash",
90460 + "econet", "atmsvc", "rds", "sna", "irda", "ppox", "wanpipe", "llc", "fam_27", "fam_28",
90461 + "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf", "alg", "nfc", "vsock"
90462 + };
90463 +
90464 +const char *
90465 +gr_proto_to_name(unsigned char proto)
90466 +{
90467 + return gr_protocols[proto];
90468 +}
90469 +
90470 +const char *
90471 +gr_socktype_to_name(unsigned char type)
90472 +{
90473 + return gr_socktypes[type];
90474 +}
90475 +
90476 +const char *
90477 +gr_sockfamily_to_name(unsigned char family)
90478 +{
90479 + return gr_sockfamilies[family];
90480 +}
90481 +
90482 +extern const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
90483 +
90484 +int
90485 +gr_search_socket(const int domain, const int type, const int protocol)
90486 +{
90487 + struct acl_subject_label *curr;
90488 + const struct cred *cred = current_cred();
90489 +
90490 + if (unlikely(!gr_acl_is_enabled()))
90491 + goto exit;
90492 +
90493 + if ((domain < 0) || (type < 0) || (protocol < 0) ||
90494 + (domain >= AF_MAX) || (type >= SOCK_MAX) || (protocol >= IPPROTO_MAX))
90495 + goto exit; // let the kernel handle it
90496 +
90497 + curr = current->acl;
90498 +
90499 + if (curr->sock_families[domain / 32] & (1U << (domain % 32))) {
90500 + /* the family is allowed, if this is PF_INET allow it only if
90501 + the extra sock type/protocol checks pass */
90502 + if (domain == PF_INET)
90503 + goto inet_check;
90504 + goto exit;
90505 + } else {
90506 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90507 + __u32 fakeip = 0;
90508 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90509 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90510 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90511 + gr_to_filename(current->exec_file->f_path.dentry,
90512 + current->exec_file->f_path.mnt) :
90513 + curr->filename, curr->filename,
90514 + &fakeip, domain, 0, 0, GR_SOCK_FAMILY,
90515 + &current->signal->saved_ip);
90516 + goto exit;
90517 + }
90518 + goto exit_fail;
90519 + }
90520 +
90521 +inet_check:
90522 + /* the rest of this checking is for IPv4 only */
90523 + if (!curr->ips)
90524 + goto exit;
90525 +
90526 + if ((curr->ip_type & (1U << type)) &&
90527 + (curr->ip_proto[protocol / 32] & (1U << (protocol % 32))))
90528 + goto exit;
90529 +
90530 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90531 + /* we don't place acls on raw sockets , and sometimes
90532 + dgram/ip sockets are opened for ioctl and not
90533 + bind/connect, so we'll fake a bind learn log */
90534 + if (type == SOCK_RAW || type == SOCK_PACKET) {
90535 + __u32 fakeip = 0;
90536 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90537 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90538 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90539 + gr_to_filename(current->exec_file->f_path.dentry,
90540 + current->exec_file->f_path.mnt) :
90541 + curr->filename, curr->filename,
90542 + &fakeip, 0, type,
90543 + protocol, GR_CONNECT, &current->signal->saved_ip);
90544 + } else if ((type == SOCK_DGRAM) && (protocol == IPPROTO_IP)) {
90545 + __u32 fakeip = 0;
90546 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90547 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90548 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90549 + gr_to_filename(current->exec_file->f_path.dentry,
90550 + current->exec_file->f_path.mnt) :
90551 + curr->filename, curr->filename,
90552 + &fakeip, 0, type,
90553 + protocol, GR_BIND, &current->signal->saved_ip);
90554 + }
90555 + /* we'll log when they use connect or bind */
90556 + goto exit;
90557 + }
90558 +
90559 +exit_fail:
90560 + if (domain == PF_INET)
90561 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(domain),
90562 + gr_socktype_to_name(type), gr_proto_to_name(protocol));
90563 + else if (rcu_access_pointer(net_families[domain]) != NULL)
90564 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(domain),
90565 + gr_socktype_to_name(type), protocol);
90566 +
90567 + return 0;
90568 +exit:
90569 + return 1;
90570 +}
90571 +
90572 +int check_ip_policy(struct acl_ip_label *ip, __u32 ip_addr, __u16 ip_port, __u8 protocol, const int mode, const int type, __u32 our_addr, __u32 our_netmask)
90573 +{
90574 + if ((ip->mode & mode) &&
90575 + (ip_port >= ip->low) &&
90576 + (ip_port <= ip->high) &&
90577 + ((ntohl(ip_addr) & our_netmask) ==
90578 + (ntohl(our_addr) & our_netmask))
90579 + && (ip->proto[protocol / 32] & (1U << (protocol % 32)))
90580 + && (ip->type & (1U << type))) {
90581 + if (ip->mode & GR_INVERT)
90582 + return 2; // specifically denied
90583 + else
90584 + return 1; // allowed
90585 + }
90586 +
90587 + return 0; // not specifically allowed, may continue parsing
90588 +}
90589 +
90590 +static int
90591 +gr_search_connectbind(const int full_mode, struct sock *sk,
90592 + struct sockaddr_in *addr, const int type)
90593 +{
90594 + char iface[IFNAMSIZ] = {0};
90595 + struct acl_subject_label *curr;
90596 + struct acl_ip_label *ip;
90597 + struct inet_sock *isk;
90598 + struct net_device *dev;
90599 + struct in_device *idev;
90600 + unsigned long i;
90601 + int ret;
90602 + int mode = full_mode & (GR_BIND | GR_CONNECT);
90603 + __u32 ip_addr = 0;
90604 + __u32 our_addr;
90605 + __u32 our_netmask;
90606 + char *p;
90607 + __u16 ip_port = 0;
90608 + const struct cred *cred = current_cred();
90609 +
90610 + if (unlikely(!gr_acl_is_enabled() || sk->sk_family != PF_INET))
90611 + return 0;
90612 +
90613 + curr = current->acl;
90614 + isk = inet_sk(sk);
90615 +
90616 + /* INADDR_ANY overriding for binds, inaddr_any_override is already in network order */
90617 + if ((full_mode & GR_BINDOVERRIDE) && addr->sin_addr.s_addr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0)
90618 + addr->sin_addr.s_addr = curr->inaddr_any_override;
90619 + if ((full_mode & GR_CONNECT) && isk->inet_saddr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0) {
90620 + struct sockaddr_in saddr;
90621 + int err;
90622 +
90623 + saddr.sin_family = AF_INET;
90624 + saddr.sin_addr.s_addr = curr->inaddr_any_override;
90625 + saddr.sin_port = isk->inet_sport;
90626 +
90627 + err = security_socket_bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90628 + if (err)
90629 + return err;
90630 +
90631 + err = sk->sk_socket->ops->bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90632 + if (err)
90633 + return err;
90634 + }
90635 +
90636 + if (!curr->ips)
90637 + return 0;
90638 +
90639 + ip_addr = addr->sin_addr.s_addr;
90640 + ip_port = ntohs(addr->sin_port);
90641 +
90642 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90643 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90644 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90645 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90646 + gr_to_filename(current->exec_file->f_path.dentry,
90647 + current->exec_file->f_path.mnt) :
90648 + curr->filename, curr->filename,
90649 + &ip_addr, ip_port, type,
90650 + sk->sk_protocol, mode, &current->signal->saved_ip);
90651 + return 0;
90652 + }
90653 +
90654 + for (i = 0; i < curr->ip_num; i++) {
90655 + ip = *(curr->ips + i);
90656 + if (ip->iface != NULL) {
90657 + strncpy(iface, ip->iface, IFNAMSIZ - 1);
90658 + p = strchr(iface, ':');
90659 + if (p != NULL)
90660 + *p = '\0';
90661 + dev = dev_get_by_name(sock_net(sk), iface);
90662 + if (dev == NULL)
90663 + continue;
90664 + idev = in_dev_get(dev);
90665 + if (idev == NULL) {
90666 + dev_put(dev);
90667 + continue;
90668 + }
90669 + rcu_read_lock();
90670 + for_ifa(idev) {
90671 + if (!strcmp(ip->iface, ifa->ifa_label)) {
90672 + our_addr = ifa->ifa_address;
90673 + our_netmask = 0xffffffff;
90674 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90675 + if (ret == 1) {
90676 + rcu_read_unlock();
90677 + in_dev_put(idev);
90678 + dev_put(dev);
90679 + return 0;
90680 + } else if (ret == 2) {
90681 + rcu_read_unlock();
90682 + in_dev_put(idev);
90683 + dev_put(dev);
90684 + goto denied;
90685 + }
90686 + }
90687 + } endfor_ifa(idev);
90688 + rcu_read_unlock();
90689 + in_dev_put(idev);
90690 + dev_put(dev);
90691 + } else {
90692 + our_addr = ip->addr;
90693 + our_netmask = ip->netmask;
90694 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90695 + if (ret == 1)
90696 + return 0;
90697 + else if (ret == 2)
90698 + goto denied;
90699 + }
90700 + }
90701 +
90702 +denied:
90703 + if (mode == GR_BIND)
90704 + gr_log_int5_str2(GR_DONT_AUDIT, GR_BIND_ACL_MSG, &ip_addr, ip_port, gr_socktype_to_name(type), gr_proto_to_name(sk->sk_protocol));
90705 + else if (mode == GR_CONNECT)
90706 + gr_log_int5_str2(GR_DONT_AUDIT, GR_CONNECT_ACL_MSG, &ip_addr, ip_port, gr_socktype_to_name(type), gr_proto_to_name(sk->sk_protocol));
90707 +
90708 + return -EACCES;
90709 +}
90710 +
90711 +int
90712 +gr_search_connect(struct socket *sock, struct sockaddr_in *addr)
90713 +{
90714 + /* always allow disconnection of dgram sockets with connect */
90715 + if (addr->sin_family == AF_UNSPEC)
90716 + return 0;
90717 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sock->sk, addr, sock->type);
90718 +}
90719 +
90720 +int
90721 +gr_search_bind(struct socket *sock, struct sockaddr_in *addr)
90722 +{
90723 + return gr_search_connectbind(GR_BIND | GR_BINDOVERRIDE, sock->sk, addr, sock->type);
90724 +}
90725 +
90726 +int gr_search_listen(struct socket *sock)
90727 +{
90728 + struct sock *sk = sock->sk;
90729 + struct sockaddr_in addr;
90730 +
90731 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90732 + addr.sin_port = inet_sk(sk)->inet_sport;
90733 +
90734 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90735 +}
90736 +
90737 +int gr_search_accept(struct socket *sock)
90738 +{
90739 + struct sock *sk = sock->sk;
90740 + struct sockaddr_in addr;
90741 +
90742 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90743 + addr.sin_port = inet_sk(sk)->inet_sport;
90744 +
90745 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90746 +}
90747 +
90748 +int
90749 +gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr)
90750 +{
90751 + if (addr)
90752 + return gr_search_connectbind(GR_CONNECT, sk, addr, SOCK_DGRAM);
90753 + else {
90754 + struct sockaddr_in sin;
90755 + const struct inet_sock *inet = inet_sk(sk);
90756 +
90757 + sin.sin_addr.s_addr = inet->inet_daddr;
90758 + sin.sin_port = inet->inet_dport;
90759 +
90760 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90761 + }
90762 +}
90763 +
90764 +int
90765 +gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb)
90766 +{
90767 + struct sockaddr_in sin;
90768 +
90769 + if (unlikely(skb->len < sizeof (struct udphdr)))
90770 + return 0; // skip this packet
90771 +
90772 + sin.sin_addr.s_addr = ip_hdr(skb)->saddr;
90773 + sin.sin_port = udp_hdr(skb)->source;
90774 +
90775 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90776 +}
90777 diff --git a/grsecurity/gracl_learn.c b/grsecurity/gracl_learn.c
90778 new file mode 100644
90779 index 0000000..25f54ef
90780 --- /dev/null
90781 +++ b/grsecurity/gracl_learn.c
90782 @@ -0,0 +1,207 @@
90783 +#include <linux/kernel.h>
90784 +#include <linux/mm.h>
90785 +#include <linux/sched.h>
90786 +#include <linux/poll.h>
90787 +#include <linux/string.h>
90788 +#include <linux/file.h>
90789 +#include <linux/types.h>
90790 +#include <linux/vmalloc.h>
90791 +#include <linux/grinternal.h>
90792 +
90793 +extern ssize_t write_grsec_handler(struct file * file, const char __user * buf,
90794 + size_t count, loff_t *ppos);
90795 +extern int gr_acl_is_enabled(void);
90796 +
90797 +static DECLARE_WAIT_QUEUE_HEAD(learn_wait);
90798 +static int gr_learn_attached;
90799 +
90800 +/* use a 512k buffer */
90801 +#define LEARN_BUFFER_SIZE (512 * 1024)
90802 +
90803 +static DEFINE_SPINLOCK(gr_learn_lock);
90804 +static DEFINE_MUTEX(gr_learn_user_mutex);
90805 +
90806 +/* we need to maintain two buffers, so that the kernel context of grlearn
90807 + uses a semaphore around the userspace copying, and the other kernel contexts
90808 + use a spinlock when copying into the buffer, since they cannot sleep
90809 +*/
90810 +static char *learn_buffer;
90811 +static char *learn_buffer_user;
90812 +static int learn_buffer_len;
90813 +static int learn_buffer_user_len;
90814 +
90815 +static ssize_t
90816 +read_learn(struct file *file, char __user * buf, size_t count, loff_t * ppos)
90817 +{
90818 + DECLARE_WAITQUEUE(wait, current);
90819 + ssize_t retval = 0;
90820 +
90821 + add_wait_queue(&learn_wait, &wait);
90822 + set_current_state(TASK_INTERRUPTIBLE);
90823 + do {
90824 + mutex_lock(&gr_learn_user_mutex);
90825 + spin_lock(&gr_learn_lock);
90826 + if (learn_buffer_len)
90827 + break;
90828 + spin_unlock(&gr_learn_lock);
90829 + mutex_unlock(&gr_learn_user_mutex);
90830 + if (file->f_flags & O_NONBLOCK) {
90831 + retval = -EAGAIN;
90832 + goto out;
90833 + }
90834 + if (signal_pending(current)) {
90835 + retval = -ERESTARTSYS;
90836 + goto out;
90837 + }
90838 +
90839 + schedule();
90840 + } while (1);
90841 +
90842 + memcpy(learn_buffer_user, learn_buffer, learn_buffer_len);
90843 + learn_buffer_user_len = learn_buffer_len;
90844 + retval = learn_buffer_len;
90845 + learn_buffer_len = 0;
90846 +
90847 + spin_unlock(&gr_learn_lock);
90848 +
90849 + if (copy_to_user(buf, learn_buffer_user, learn_buffer_user_len))
90850 + retval = -EFAULT;
90851 +
90852 + mutex_unlock(&gr_learn_user_mutex);
90853 +out:
90854 + set_current_state(TASK_RUNNING);
90855 + remove_wait_queue(&learn_wait, &wait);
90856 + return retval;
90857 +}
90858 +
90859 +static unsigned int
90860 +poll_learn(struct file * file, poll_table * wait)
90861 +{
90862 + poll_wait(file, &learn_wait, wait);
90863 +
90864 + if (learn_buffer_len)
90865 + return (POLLIN | POLLRDNORM);
90866 +
90867 + return 0;
90868 +}
90869 +
90870 +void
90871 +gr_clear_learn_entries(void)
90872 +{
90873 + char *tmp;
90874 +
90875 + mutex_lock(&gr_learn_user_mutex);
90876 + spin_lock(&gr_learn_lock);
90877 + tmp = learn_buffer;
90878 + learn_buffer = NULL;
90879 + spin_unlock(&gr_learn_lock);
90880 + if (tmp)
90881 + vfree(tmp);
90882 + if (learn_buffer_user != NULL) {
90883 + vfree(learn_buffer_user);
90884 + learn_buffer_user = NULL;
90885 + }
90886 + learn_buffer_len = 0;
90887 + mutex_unlock(&gr_learn_user_mutex);
90888 +
90889 + return;
90890 +}
90891 +
90892 +void
90893 +gr_add_learn_entry(const char *fmt, ...)
90894 +{
90895 + va_list args;
90896 + unsigned int len;
90897 +
90898 + if (!gr_learn_attached)
90899 + return;
90900 +
90901 + spin_lock(&gr_learn_lock);
90902 +
90903 + /* leave a gap at the end so we know when it's "full" but don't have to
90904 + compute the exact length of the string we're trying to append
90905 + */
90906 + if (learn_buffer_len > LEARN_BUFFER_SIZE - 16384) {
90907 + spin_unlock(&gr_learn_lock);
90908 + wake_up_interruptible(&learn_wait);
90909 + return;
90910 + }
90911 + if (learn_buffer == NULL) {
90912 + spin_unlock(&gr_learn_lock);
90913 + return;
90914 + }
90915 +
90916 + va_start(args, fmt);
90917 + len = vsnprintf(learn_buffer + learn_buffer_len, LEARN_BUFFER_SIZE - learn_buffer_len, fmt, args);
90918 + va_end(args);
90919 +
90920 + learn_buffer_len += len + 1;
90921 +
90922 + spin_unlock(&gr_learn_lock);
90923 + wake_up_interruptible(&learn_wait);
90924 +
90925 + return;
90926 +}
90927 +
90928 +static int
90929 +open_learn(struct inode *inode, struct file *file)
90930 +{
90931 + if (file->f_mode & FMODE_READ && gr_learn_attached)
90932 + return -EBUSY;
90933 + if (file->f_mode & FMODE_READ) {
90934 + int retval = 0;
90935 + mutex_lock(&gr_learn_user_mutex);
90936 + if (learn_buffer == NULL)
90937 + learn_buffer = vmalloc(LEARN_BUFFER_SIZE);
90938 + if (learn_buffer_user == NULL)
90939 + learn_buffer_user = vmalloc(LEARN_BUFFER_SIZE);
90940 + if (learn_buffer == NULL) {
90941 + retval = -ENOMEM;
90942 + goto out_error;
90943 + }
90944 + if (learn_buffer_user == NULL) {
90945 + retval = -ENOMEM;
90946 + goto out_error;
90947 + }
90948 + learn_buffer_len = 0;
90949 + learn_buffer_user_len = 0;
90950 + gr_learn_attached = 1;
90951 +out_error:
90952 + mutex_unlock(&gr_learn_user_mutex);
90953 + return retval;
90954 + }
90955 + return 0;
90956 +}
90957 +
90958 +static int
90959 +close_learn(struct inode *inode, struct file *file)
90960 +{
90961 + if (file->f_mode & FMODE_READ) {
90962 + char *tmp = NULL;
90963 + mutex_lock(&gr_learn_user_mutex);
90964 + spin_lock(&gr_learn_lock);
90965 + tmp = learn_buffer;
90966 + learn_buffer = NULL;
90967 + spin_unlock(&gr_learn_lock);
90968 + if (tmp)
90969 + vfree(tmp);
90970 + if (learn_buffer_user != NULL) {
90971 + vfree(learn_buffer_user);
90972 + learn_buffer_user = NULL;
90973 + }
90974 + learn_buffer_len = 0;
90975 + learn_buffer_user_len = 0;
90976 + gr_learn_attached = 0;
90977 + mutex_unlock(&gr_learn_user_mutex);
90978 + }
90979 +
90980 + return 0;
90981 +}
90982 +
90983 +const struct file_operations grsec_fops = {
90984 + .read = read_learn,
90985 + .write = write_grsec_handler,
90986 + .open = open_learn,
90987 + .release = close_learn,
90988 + .poll = poll_learn,
90989 +};
90990 diff --git a/grsecurity/gracl_policy.c b/grsecurity/gracl_policy.c
90991 new file mode 100644
90992 index 0000000..0773423
90993 --- /dev/null
90994 +++ b/grsecurity/gracl_policy.c
90995 @@ -0,0 +1,1786 @@
90996 +#include <linux/kernel.h>
90997 +#include <linux/module.h>
90998 +#include <linux/sched.h>
90999 +#include <linux/mm.h>
91000 +#include <linux/file.h>
91001 +#include <linux/fs.h>
91002 +#include <linux/namei.h>
91003 +#include <linux/mount.h>
91004 +#include <linux/tty.h>
91005 +#include <linux/proc_fs.h>
91006 +#include <linux/lglock.h>
91007 +#include <linux/slab.h>
91008 +#include <linux/vmalloc.h>
91009 +#include <linux/types.h>
91010 +#include <linux/sysctl.h>
91011 +#include <linux/netdevice.h>
91012 +#include <linux/ptrace.h>
91013 +#include <linux/gracl.h>
91014 +#include <linux/gralloc.h>
91015 +#include <linux/security.h>
91016 +#include <linux/grinternal.h>
91017 +#include <linux/pid_namespace.h>
91018 +#include <linux/stop_machine.h>
91019 +#include <linux/fdtable.h>
91020 +#include <linux/percpu.h>
91021 +#include <linux/lglock.h>
91022 +#include <linux/hugetlb.h>
91023 +#include <linux/posix-timers.h>
91024 +#include "../fs/mount.h"
91025 +
91026 +#include <asm/uaccess.h>
91027 +#include <asm/errno.h>
91028 +#include <asm/mman.h>
91029 +
91030 +extern struct gr_policy_state *polstate;
91031 +
91032 +#define FOR_EACH_ROLE_START(role) \
91033 + role = polstate->role_list; \
91034 + while (role) {
91035 +
91036 +#define FOR_EACH_ROLE_END(role) \
91037 + role = role->prev; \
91038 + }
91039 +
91040 +struct path gr_real_root;
91041 +
91042 +extern struct gr_alloc_state *current_alloc_state;
91043 +
91044 +u16 acl_sp_role_value;
91045 +
91046 +static DEFINE_MUTEX(gr_dev_mutex);
91047 +
91048 +extern int chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum);
91049 +extern void gr_clear_learn_entries(void);
91050 +
91051 +struct gr_arg *gr_usermode __read_only;
91052 +unsigned char *gr_system_salt __read_only;
91053 +unsigned char *gr_system_sum __read_only;
91054 +
91055 +static unsigned int gr_auth_attempts = 0;
91056 +static unsigned long gr_auth_expires = 0UL;
91057 +
91058 +struct acl_object_label *fakefs_obj_rw;
91059 +struct acl_object_label *fakefs_obj_rwx;
91060 +
91061 +extern int gr_init_uidset(void);
91062 +extern void gr_free_uidset(void);
91063 +extern void gr_remove_uid(uid_t uid);
91064 +extern int gr_find_uid(uid_t uid);
91065 +
91066 +extern struct acl_subject_label *__gr_get_subject_for_task(const struct gr_policy_state *state, struct task_struct *task, const char *filename, int fallback);
91067 +extern void __gr_apply_subject_to_task(struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj);
91068 +extern int gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb);
91069 +extern void __insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry);
91070 +extern struct acl_role_label *__lookup_acl_role_label(const struct gr_policy_state *state, const struct task_struct *task, const uid_t uid, const gid_t gid);
91071 +extern void insert_acl_obj_label(struct acl_object_label *obj, struct acl_subject_label *subj);
91072 +extern void insert_acl_subj_label(struct acl_subject_label *obj, struct acl_role_label *role);
91073 +extern struct name_entry * __lookup_name_entry(const struct gr_policy_state *state, const char *name);
91074 +extern char *gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt);
91075 +extern struct acl_subject_label *lookup_acl_subj_label(const u64 ino, const dev_t dev, const struct acl_role_label *role);
91076 +extern struct acl_subject_label *lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev, const struct acl_role_label *role);
91077 +extern void assign_special_role(const char *rolename);
91078 +extern struct acl_subject_label *chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt, const struct acl_role_label *role);
91079 +extern int gr_rbac_disable(void *unused);
91080 +extern void gr_enable_rbac_system(void);
91081 +
91082 +static int copy_acl_object_label_normal(struct acl_object_label *obj, const struct acl_object_label *userp)
91083 +{
91084 + if (copy_from_user(obj, userp, sizeof(struct acl_object_label)))
91085 + return -EFAULT;
91086 +
91087 + return 0;
91088 +}
91089 +
91090 +static int copy_acl_ip_label_normal(struct acl_ip_label *ip, const struct acl_ip_label *userp)
91091 +{
91092 + if (copy_from_user(ip, userp, sizeof(struct acl_ip_label)))
91093 + return -EFAULT;
91094 +
91095 + return 0;
91096 +}
91097 +
91098 +static int copy_acl_subject_label_normal(struct acl_subject_label *subj, const struct acl_subject_label *userp)
91099 +{
91100 + if (copy_from_user(subj, userp, sizeof(struct acl_subject_label)))
91101 + return -EFAULT;
91102 +
91103 + return 0;
91104 +}
91105 +
91106 +static int copy_acl_role_label_normal(struct acl_role_label *role, const struct acl_role_label *userp)
91107 +{
91108 + if (copy_from_user(role, userp, sizeof(struct acl_role_label)))
91109 + return -EFAULT;
91110 +
91111 + return 0;
91112 +}
91113 +
91114 +static int copy_role_allowed_ip_normal(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
91115 +{
91116 + if (copy_from_user(roleip, userp, sizeof(struct role_allowed_ip)))
91117 + return -EFAULT;
91118 +
91119 + return 0;
91120 +}
91121 +
91122 +static int copy_sprole_pw_normal(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
91123 +{
91124 + if (copy_from_user(pw, userp + idx, sizeof(struct sprole_pw)))
91125 + return -EFAULT;
91126 +
91127 + return 0;
91128 +}
91129 +
91130 +static int copy_gr_hash_struct_normal(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
91131 +{
91132 + if (copy_from_user(hash, userp, sizeof(struct gr_hash_struct)))
91133 + return -EFAULT;
91134 +
91135 + return 0;
91136 +}
91137 +
91138 +static int copy_role_transition_normal(struct role_transition *trans, const struct role_transition *userp)
91139 +{
91140 + if (copy_from_user(trans, userp, sizeof(struct role_transition)))
91141 + return -EFAULT;
91142 +
91143 + return 0;
91144 +}
91145 +
91146 +int copy_pointer_from_array_normal(void *ptr, unsigned long idx, const void *userp)
91147 +{
91148 + if (copy_from_user(ptr, userp + (idx * sizeof(void *)), sizeof(void *)))
91149 + return -EFAULT;
91150 +
91151 + return 0;
91152 +}
91153 +
91154 +static int copy_gr_arg_wrapper_normal(const char __user *buf, struct gr_arg_wrapper *uwrap)
91155 +{
91156 + if (copy_from_user(uwrap, buf, sizeof (struct gr_arg_wrapper)))
91157 + return -EFAULT;
91158 +
91159 + if ((uwrap->version != GRSECURITY_VERSION) ||
91160 + (uwrap->size != sizeof(struct gr_arg)))
91161 + return -EINVAL;
91162 +
91163 + return 0;
91164 +}
91165 +
91166 +static int copy_gr_arg_normal(const struct gr_arg __user *buf, struct gr_arg *arg)
91167 +{
91168 + if (copy_from_user(arg, buf, sizeof (struct gr_arg)))
91169 + return -EFAULT;
91170 +
91171 + return 0;
91172 +}
91173 +
91174 +static size_t get_gr_arg_wrapper_size_normal(void)
91175 +{
91176 + return sizeof(struct gr_arg_wrapper);
91177 +}
91178 +
91179 +#ifdef CONFIG_COMPAT
91180 +extern int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap);
91181 +extern int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg);
91182 +extern int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp);
91183 +extern int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp);
91184 +extern int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp);
91185 +extern int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp);
91186 +extern int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp);
91187 +extern int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp);
91188 +extern int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp);
91189 +extern int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp);
91190 +extern int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp);
91191 +extern size_t get_gr_arg_wrapper_size_compat(void);
91192 +
91193 +int (* copy_gr_arg_wrapper)(const char *buf, struct gr_arg_wrapper *uwrap) __read_only;
91194 +int (* copy_gr_arg)(const struct gr_arg *buf, struct gr_arg *arg) __read_only;
91195 +int (* copy_acl_object_label)(struct acl_object_label *obj, const struct acl_object_label *userp) __read_only;
91196 +int (* copy_acl_subject_label)(struct acl_subject_label *subj, const struct acl_subject_label *userp) __read_only;
91197 +int (* copy_acl_role_label)(struct acl_role_label *role, const struct acl_role_label *userp) __read_only;
91198 +int (* copy_acl_ip_label)(struct acl_ip_label *ip, const struct acl_ip_label *userp) __read_only;
91199 +int (* copy_pointer_from_array)(void *ptr, unsigned long idx, const void *userp) __read_only;
91200 +int (* copy_sprole_pw)(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp) __read_only;
91201 +int (* copy_gr_hash_struct)(struct gr_hash_struct *hash, const struct gr_hash_struct *userp) __read_only;
91202 +int (* copy_role_transition)(struct role_transition *trans, const struct role_transition *userp) __read_only;
91203 +int (* copy_role_allowed_ip)(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp) __read_only;
91204 +size_t (* get_gr_arg_wrapper_size)(void) __read_only;
91205 +
91206 +#else
91207 +#define copy_gr_arg_wrapper copy_gr_arg_wrapper_normal
91208 +#define copy_gr_arg copy_gr_arg_normal
91209 +#define copy_gr_hash_struct copy_gr_hash_struct_normal
91210 +#define copy_acl_object_label copy_acl_object_label_normal
91211 +#define copy_acl_subject_label copy_acl_subject_label_normal
91212 +#define copy_acl_role_label copy_acl_role_label_normal
91213 +#define copy_acl_ip_label copy_acl_ip_label_normal
91214 +#define copy_pointer_from_array copy_pointer_from_array_normal
91215 +#define copy_sprole_pw copy_sprole_pw_normal
91216 +#define copy_role_transition copy_role_transition_normal
91217 +#define copy_role_allowed_ip copy_role_allowed_ip_normal
91218 +#define get_gr_arg_wrapper_size get_gr_arg_wrapper_size_normal
91219 +#endif
91220 +
91221 +static struct acl_subject_label *
91222 +lookup_subject_map(const struct acl_subject_label *userp)
91223 +{
91224 + unsigned int index = gr_shash(userp, polstate->subj_map_set.s_size);
91225 + struct subject_map *match;
91226 +
91227 + match = polstate->subj_map_set.s_hash[index];
91228 +
91229 + while (match && match->user != userp)
91230 + match = match->next;
91231 +
91232 + if (match != NULL)
91233 + return match->kernel;
91234 + else
91235 + return NULL;
91236 +}
91237 +
91238 +static void
91239 +insert_subj_map_entry(struct subject_map *subjmap)
91240 +{
91241 + unsigned int index = gr_shash(subjmap->user, polstate->subj_map_set.s_size);
91242 + struct subject_map **curr;
91243 +
91244 + subjmap->prev = NULL;
91245 +
91246 + curr = &polstate->subj_map_set.s_hash[index];
91247 + if (*curr != NULL)
91248 + (*curr)->prev = subjmap;
91249 +
91250 + subjmap->next = *curr;
91251 + *curr = subjmap;
91252 +
91253 + return;
91254 +}
91255 +
91256 +static void
91257 +__insert_acl_role_label(struct acl_role_label *role, uid_t uidgid)
91258 +{
91259 + unsigned int index =
91260 + gr_rhash(uidgid, role->roletype & (GR_ROLE_USER | GR_ROLE_GROUP), polstate->acl_role_set.r_size);
91261 + struct acl_role_label **curr;
91262 + struct acl_role_label *tmp, *tmp2;
91263 +
91264 + curr = &polstate->acl_role_set.r_hash[index];
91265 +
91266 + /* simple case, slot is empty, just set it to our role */
91267 + if (*curr == NULL) {
91268 + *curr = role;
91269 + } else {
91270 + /* example:
91271 + 1 -> 2 -> 3 (adding 2 -> 3 to here)
91272 + 2 -> 3
91273 + */
91274 + /* first check to see if we can already be reached via this slot */
91275 + tmp = *curr;
91276 + while (tmp && tmp != role)
91277 + tmp = tmp->next;
91278 + if (tmp == role) {
91279 + /* we don't need to add ourselves to this slot's chain */
91280 + return;
91281 + }
91282 + /* we need to add ourselves to this chain, two cases */
91283 + if (role->next == NULL) {
91284 + /* simple case, append the current chain to our role */
91285 + role->next = *curr;
91286 + *curr = role;
91287 + } else {
91288 + /* 1 -> 2 -> 3 -> 4
91289 + 2 -> 3 -> 4
91290 + 3 -> 4 (adding 1 -> 2 -> 3 -> 4 to here)
91291 + */
91292 + /* trickier case: walk our role's chain until we find
91293 + the role for the start of the current slot's chain */
91294 + tmp = role;
91295 + tmp2 = *curr;
91296 + while (tmp->next && tmp->next != tmp2)
91297 + tmp = tmp->next;
91298 + if (tmp->next == tmp2) {
91299 + /* from example above, we found 3, so just
91300 + replace this slot's chain with ours */
91301 + *curr = role;
91302 + } else {
91303 + /* we didn't find a subset of our role's chain
91304 + in the current slot's chain, so append their
91305 + chain to ours, and set us as the first role in
91306 + the slot's chain
91307 +
91308 + we could fold this case with the case above,
91309 + but making it explicit for clarity
91310 + */
91311 + tmp->next = tmp2;
91312 + *curr = role;
91313 + }
91314 + }
91315 + }
91316 +
91317 + return;
91318 +}
91319 +
91320 +static void
91321 +insert_acl_role_label(struct acl_role_label *role)
91322 +{
91323 + int i;
91324 +
91325 + if (polstate->role_list == NULL) {
91326 + polstate->role_list = role;
91327 + role->prev = NULL;
91328 + } else {
91329 + role->prev = polstate->role_list;
91330 + polstate->role_list = role;
91331 + }
91332 +
91333 + /* used for hash chains */
91334 + role->next = NULL;
91335 +
91336 + if (role->roletype & GR_ROLE_DOMAIN) {
91337 + for (i = 0; i < role->domain_child_num; i++)
91338 + __insert_acl_role_label(role, role->domain_children[i]);
91339 + } else
91340 + __insert_acl_role_label(role, role->uidgid);
91341 +}
91342 +
91343 +static int
91344 +insert_name_entry(char *name, const u64 inode, const dev_t device, __u8 deleted)
91345 +{
91346 + struct name_entry **curr, *nentry;
91347 + struct inodev_entry *ientry;
91348 + unsigned int len = strlen(name);
91349 + unsigned int key = full_name_hash(name, len);
91350 + unsigned int index = key % polstate->name_set.n_size;
91351 +
91352 + curr = &polstate->name_set.n_hash[index];
91353 +
91354 + while (*curr && ((*curr)->key != key || !gr_streq((*curr)->name, name, (*curr)->len, len)))
91355 + curr = &((*curr)->next);
91356 +
91357 + if (*curr != NULL)
91358 + return 1;
91359 +
91360 + nentry = acl_alloc(sizeof (struct name_entry));
91361 + if (nentry == NULL)
91362 + return 0;
91363 + ientry = acl_alloc(sizeof (struct inodev_entry));
91364 + if (ientry == NULL)
91365 + return 0;
91366 + ientry->nentry = nentry;
91367 +
91368 + nentry->key = key;
91369 + nentry->name = name;
91370 + nentry->inode = inode;
91371 + nentry->device = device;
91372 + nentry->len = len;
91373 + nentry->deleted = deleted;
91374 +
91375 + nentry->prev = NULL;
91376 + curr = &polstate->name_set.n_hash[index];
91377 + if (*curr != NULL)
91378 + (*curr)->prev = nentry;
91379 + nentry->next = *curr;
91380 + *curr = nentry;
91381 +
91382 + /* insert us into the table searchable by inode/dev */
91383 + __insert_inodev_entry(polstate, ientry);
91384 +
91385 + return 1;
91386 +}
91387 +
91388 +/* allocating chained hash tables, so optimal size is where lambda ~ 1 */
91389 +
91390 +static void *
91391 +create_table(__u32 * len, int elementsize)
91392 +{
91393 + unsigned int table_sizes[] = {
91394 + 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381,
91395 + 32749, 65521, 131071, 262139, 524287, 1048573, 2097143,
91396 + 4194301, 8388593, 16777213, 33554393, 67108859
91397 + };
91398 + void *newtable = NULL;
91399 + unsigned int pwr = 0;
91400 +
91401 + while ((pwr < ((sizeof (table_sizes) / sizeof (table_sizes[0])) - 1)) &&
91402 + table_sizes[pwr] <= *len)
91403 + pwr++;
91404 +
91405 + if (table_sizes[pwr] <= *len || (table_sizes[pwr] > ULONG_MAX / elementsize))
91406 + return newtable;
91407 +
91408 + if ((table_sizes[pwr] * elementsize) <= PAGE_SIZE)
91409 + newtable =
91410 + kmalloc(table_sizes[pwr] * elementsize, GFP_KERNEL);
91411 + else
91412 + newtable = vmalloc(table_sizes[pwr] * elementsize);
91413 +
91414 + *len = table_sizes[pwr];
91415 +
91416 + return newtable;
91417 +}
91418 +
91419 +static int
91420 +init_variables(const struct gr_arg *arg, bool reload)
91421 +{
91422 + struct task_struct *reaper = init_pid_ns.child_reaper;
91423 + unsigned int stacksize;
91424 +
91425 + polstate->subj_map_set.s_size = arg->role_db.num_subjects;
91426 + polstate->acl_role_set.r_size = arg->role_db.num_roles + arg->role_db.num_domain_children;
91427 + polstate->name_set.n_size = arg->role_db.num_objects;
91428 + polstate->inodev_set.i_size = arg->role_db.num_objects;
91429 +
91430 + if (!polstate->subj_map_set.s_size || !polstate->acl_role_set.r_size ||
91431 + !polstate->name_set.n_size || !polstate->inodev_set.i_size)
91432 + return 1;
91433 +
91434 + if (!reload) {
91435 + if (!gr_init_uidset())
91436 + return 1;
91437 + }
91438 +
91439 + /* set up the stack that holds allocation info */
91440 +
91441 + stacksize = arg->role_db.num_pointers + 5;
91442 +
91443 + if (!acl_alloc_stack_init(stacksize))
91444 + return 1;
91445 +
91446 + if (!reload) {
91447 + /* grab reference for the real root dentry and vfsmount */
91448 + get_fs_root(reaper->fs, &gr_real_root);
91449 +
91450 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
91451 + printk(KERN_ALERT "Obtained real root device=%d, inode=%lu\n", gr_get_dev_from_dentry(gr_real_root.dentry), gr_get_ino_from_dentry(gr_real_root.dentry));
91452 +#endif
91453 +
91454 + fakefs_obj_rw = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
91455 + if (fakefs_obj_rw == NULL)
91456 + return 1;
91457 + fakefs_obj_rw->mode = GR_FIND | GR_READ | GR_WRITE;
91458 +
91459 + fakefs_obj_rwx = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
91460 + if (fakefs_obj_rwx == NULL)
91461 + return 1;
91462 + fakefs_obj_rwx->mode = GR_FIND | GR_READ | GR_WRITE | GR_EXEC;
91463 + }
91464 +
91465 + polstate->subj_map_set.s_hash =
91466 + (struct subject_map **) create_table(&polstate->subj_map_set.s_size, sizeof(void *));
91467 + polstate->acl_role_set.r_hash =
91468 + (struct acl_role_label **) create_table(&polstate->acl_role_set.r_size, sizeof(void *));
91469 + polstate->name_set.n_hash = (struct name_entry **) create_table(&polstate->name_set.n_size, sizeof(void *));
91470 + polstate->inodev_set.i_hash =
91471 + (struct inodev_entry **) create_table(&polstate->inodev_set.i_size, sizeof(void *));
91472 +
91473 + if (!polstate->subj_map_set.s_hash || !polstate->acl_role_set.r_hash ||
91474 + !polstate->name_set.n_hash || !polstate->inodev_set.i_hash)
91475 + return 1;
91476 +
91477 + memset(polstate->subj_map_set.s_hash, 0,
91478 + sizeof(struct subject_map *) * polstate->subj_map_set.s_size);
91479 + memset(polstate->acl_role_set.r_hash, 0,
91480 + sizeof (struct acl_role_label *) * polstate->acl_role_set.r_size);
91481 + memset(polstate->name_set.n_hash, 0,
91482 + sizeof (struct name_entry *) * polstate->name_set.n_size);
91483 + memset(polstate->inodev_set.i_hash, 0,
91484 + sizeof (struct inodev_entry *) * polstate->inodev_set.i_size);
91485 +
91486 + return 0;
91487 +}
91488 +
91489 +/* free information not needed after startup
91490 + currently contains user->kernel pointer mappings for subjects
91491 +*/
91492 +
91493 +static void
91494 +free_init_variables(void)
91495 +{
91496 + __u32 i;
91497 +
91498 + if (polstate->subj_map_set.s_hash) {
91499 + for (i = 0; i < polstate->subj_map_set.s_size; i++) {
91500 + if (polstate->subj_map_set.s_hash[i]) {
91501 + kfree(polstate->subj_map_set.s_hash[i]);
91502 + polstate->subj_map_set.s_hash[i] = NULL;
91503 + }
91504 + }
91505 +
91506 + if ((polstate->subj_map_set.s_size * sizeof (struct subject_map *)) <=
91507 + PAGE_SIZE)
91508 + kfree(polstate->subj_map_set.s_hash);
91509 + else
91510 + vfree(polstate->subj_map_set.s_hash);
91511 + }
91512 +
91513 + return;
91514 +}
91515 +
91516 +static void
91517 +free_variables(bool reload)
91518 +{
91519 + struct acl_subject_label *s;
91520 + struct acl_role_label *r;
91521 + struct task_struct *task, *task2;
91522 + unsigned int x;
91523 +
91524 + if (!reload) {
91525 + gr_clear_learn_entries();
91526 +
91527 + read_lock(&tasklist_lock);
91528 + do_each_thread(task2, task) {
91529 + task->acl_sp_role = 0;
91530 + task->acl_role_id = 0;
91531 + task->inherited = 0;
91532 + task->acl = NULL;
91533 + task->role = NULL;
91534 + } while_each_thread(task2, task);
91535 + read_unlock(&tasklist_lock);
91536 +
91537 + kfree(fakefs_obj_rw);
91538 + fakefs_obj_rw = NULL;
91539 + kfree(fakefs_obj_rwx);
91540 + fakefs_obj_rwx = NULL;
91541 +
91542 + /* release the reference to the real root dentry and vfsmount */
91543 + path_put(&gr_real_root);
91544 + memset(&gr_real_root, 0, sizeof(gr_real_root));
91545 + }
91546 +
91547 + /* free all object hash tables */
91548 +
91549 + FOR_EACH_ROLE_START(r)
91550 + if (r->subj_hash == NULL)
91551 + goto next_role;
91552 + FOR_EACH_SUBJECT_START(r, s, x)
91553 + if (s->obj_hash == NULL)
91554 + break;
91555 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
91556 + kfree(s->obj_hash);
91557 + else
91558 + vfree(s->obj_hash);
91559 + FOR_EACH_SUBJECT_END(s, x)
91560 + FOR_EACH_NESTED_SUBJECT_START(r, s)
91561 + if (s->obj_hash == NULL)
91562 + break;
91563 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
91564 + kfree(s->obj_hash);
91565 + else
91566 + vfree(s->obj_hash);
91567 + FOR_EACH_NESTED_SUBJECT_END(s)
91568 + if ((r->subj_hash_size * sizeof (struct acl_subject_label *)) <= PAGE_SIZE)
91569 + kfree(r->subj_hash);
91570 + else
91571 + vfree(r->subj_hash);
91572 + r->subj_hash = NULL;
91573 +next_role:
91574 + FOR_EACH_ROLE_END(r)
91575 +
91576 + acl_free_all();
91577 +
91578 + if (polstate->acl_role_set.r_hash) {
91579 + if ((polstate->acl_role_set.r_size * sizeof (struct acl_role_label *)) <=
91580 + PAGE_SIZE)
91581 + kfree(polstate->acl_role_set.r_hash);
91582 + else
91583 + vfree(polstate->acl_role_set.r_hash);
91584 + }
91585 + if (polstate->name_set.n_hash) {
91586 + if ((polstate->name_set.n_size * sizeof (struct name_entry *)) <=
91587 + PAGE_SIZE)
91588 + kfree(polstate->name_set.n_hash);
91589 + else
91590 + vfree(polstate->name_set.n_hash);
91591 + }
91592 +
91593 + if (polstate->inodev_set.i_hash) {
91594 + if ((polstate->inodev_set.i_size * sizeof (struct inodev_entry *)) <=
91595 + PAGE_SIZE)
91596 + kfree(polstate->inodev_set.i_hash);
91597 + else
91598 + vfree(polstate->inodev_set.i_hash);
91599 + }
91600 +
91601 + if (!reload)
91602 + gr_free_uidset();
91603 +
91604 + memset(&polstate->name_set, 0, sizeof (struct name_db));
91605 + memset(&polstate->inodev_set, 0, sizeof (struct inodev_db));
91606 + memset(&polstate->acl_role_set, 0, sizeof (struct acl_role_db));
91607 + memset(&polstate->subj_map_set, 0, sizeof (struct acl_subj_map_db));
91608 +
91609 + polstate->default_role = NULL;
91610 + polstate->kernel_role = NULL;
91611 + polstate->role_list = NULL;
91612 +
91613 + return;
91614 +}
91615 +
91616 +static struct acl_subject_label *
91617 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied);
91618 +
91619 +static int alloc_and_copy_string(char **name, unsigned int maxlen)
91620 +{
91621 + unsigned int len = strnlen_user(*name, maxlen);
91622 + char *tmp;
91623 +
91624 + if (!len || len >= maxlen)
91625 + return -EINVAL;
91626 +
91627 + if ((tmp = (char *) acl_alloc(len)) == NULL)
91628 + return -ENOMEM;
91629 +
91630 + if (copy_from_user(tmp, *name, len))
91631 + return -EFAULT;
91632 +
91633 + tmp[len-1] = '\0';
91634 + *name = tmp;
91635 +
91636 + return 0;
91637 +}
91638 +
91639 +static int
91640 +copy_user_glob(struct acl_object_label *obj)
91641 +{
91642 + struct acl_object_label *g_tmp, **guser;
91643 + int error;
91644 +
91645 + if (obj->globbed == NULL)
91646 + return 0;
91647 +
91648 + guser = &obj->globbed;
91649 + while (*guser) {
91650 + g_tmp = (struct acl_object_label *)
91651 + acl_alloc(sizeof (struct acl_object_label));
91652 + if (g_tmp == NULL)
91653 + return -ENOMEM;
91654 +
91655 + if (copy_acl_object_label(g_tmp, *guser))
91656 + return -EFAULT;
91657 +
91658 + error = alloc_and_copy_string(&g_tmp->filename, PATH_MAX);
91659 + if (error)
91660 + return error;
91661 +
91662 + *guser = g_tmp;
91663 + guser = &(g_tmp->next);
91664 + }
91665 +
91666 + return 0;
91667 +}
91668 +
91669 +static int
91670 +copy_user_objs(struct acl_object_label *userp, struct acl_subject_label *subj,
91671 + struct acl_role_label *role)
91672 +{
91673 + struct acl_object_label *o_tmp;
91674 + int ret;
91675 +
91676 + while (userp) {
91677 + if ((o_tmp = (struct acl_object_label *)
91678 + acl_alloc(sizeof (struct acl_object_label))) == NULL)
91679 + return -ENOMEM;
91680 +
91681 + if (copy_acl_object_label(o_tmp, userp))
91682 + return -EFAULT;
91683 +
91684 + userp = o_tmp->prev;
91685 +
91686 + ret = alloc_and_copy_string(&o_tmp->filename, PATH_MAX);
91687 + if (ret)
91688 + return ret;
91689 +
91690 + insert_acl_obj_label(o_tmp, subj);
91691 + if (!insert_name_entry(o_tmp->filename, o_tmp->inode,
91692 + o_tmp->device, (o_tmp->mode & GR_DELETED) ? 1 : 0))
91693 + return -ENOMEM;
91694 +
91695 + ret = copy_user_glob(o_tmp);
91696 + if (ret)
91697 + return ret;
91698 +
91699 + if (o_tmp->nested) {
91700 + int already_copied;
91701 +
91702 + o_tmp->nested = do_copy_user_subj(o_tmp->nested, role, &already_copied);
91703 + if (IS_ERR(o_tmp->nested))
91704 + return PTR_ERR(o_tmp->nested);
91705 +
91706 + /* insert into nested subject list if we haven't copied this one yet
91707 + to prevent duplicate entries */
91708 + if (!already_copied) {
91709 + o_tmp->nested->next = role->hash->first;
91710 + role->hash->first = o_tmp->nested;
91711 + }
91712 + }
91713 + }
91714 +
91715 + return 0;
91716 +}
91717 +
91718 +static __u32
91719 +count_user_subjs(struct acl_subject_label *userp)
91720 +{
91721 + struct acl_subject_label s_tmp;
91722 + __u32 num = 0;
91723 +
91724 + while (userp) {
91725 + if (copy_acl_subject_label(&s_tmp, userp))
91726 + break;
91727 +
91728 + userp = s_tmp.prev;
91729 + }
91730 +
91731 + return num;
91732 +}
91733 +
91734 +static int
91735 +copy_user_allowedips(struct acl_role_label *rolep)
91736 +{
91737 + struct role_allowed_ip *ruserip, *rtmp = NULL, *rlast;
91738 +
91739 + ruserip = rolep->allowed_ips;
91740 +
91741 + while (ruserip) {
91742 + rlast = rtmp;
91743 +
91744 + if ((rtmp = (struct role_allowed_ip *)
91745 + acl_alloc(sizeof (struct role_allowed_ip))) == NULL)
91746 + return -ENOMEM;
91747 +
91748 + if (copy_role_allowed_ip(rtmp, ruserip))
91749 + return -EFAULT;
91750 +
91751 + ruserip = rtmp->prev;
91752 +
91753 + if (!rlast) {
91754 + rtmp->prev = NULL;
91755 + rolep->allowed_ips = rtmp;
91756 + } else {
91757 + rlast->next = rtmp;
91758 + rtmp->prev = rlast;
91759 + }
91760 +
91761 + if (!ruserip)
91762 + rtmp->next = NULL;
91763 + }
91764 +
91765 + return 0;
91766 +}
91767 +
91768 +static int
91769 +copy_user_transitions(struct acl_role_label *rolep)
91770 +{
91771 + struct role_transition *rusertp, *rtmp = NULL, *rlast;
91772 + int error;
91773 +
91774 + rusertp = rolep->transitions;
91775 +
91776 + while (rusertp) {
91777 + rlast = rtmp;
91778 +
91779 + if ((rtmp = (struct role_transition *)
91780 + acl_alloc(sizeof (struct role_transition))) == NULL)
91781 + return -ENOMEM;
91782 +
91783 + if (copy_role_transition(rtmp, rusertp))
91784 + return -EFAULT;
91785 +
91786 + rusertp = rtmp->prev;
91787 +
91788 + error = alloc_and_copy_string(&rtmp->rolename, GR_SPROLE_LEN);
91789 + if (error)
91790 + return error;
91791 +
91792 + if (!rlast) {
91793 + rtmp->prev = NULL;
91794 + rolep->transitions = rtmp;
91795 + } else {
91796 + rlast->next = rtmp;
91797 + rtmp->prev = rlast;
91798 + }
91799 +
91800 + if (!rusertp)
91801 + rtmp->next = NULL;
91802 + }
91803 +
91804 + return 0;
91805 +}
91806 +
91807 +static __u32 count_user_objs(const struct acl_object_label __user *userp)
91808 +{
91809 + struct acl_object_label o_tmp;
91810 + __u32 num = 0;
91811 +
91812 + while (userp) {
91813 + if (copy_acl_object_label(&o_tmp, userp))
91814 + break;
91815 +
91816 + userp = o_tmp.prev;
91817 + num++;
91818 + }
91819 +
91820 + return num;
91821 +}
91822 +
91823 +static struct acl_subject_label *
91824 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied)
91825 +{
91826 + struct acl_subject_label *s_tmp = NULL, *s_tmp2;
91827 + __u32 num_objs;
91828 + struct acl_ip_label **i_tmp, *i_utmp2;
91829 + struct gr_hash_struct ghash;
91830 + struct subject_map *subjmap;
91831 + unsigned int i_num;
91832 + int err;
91833 +
91834 + if (already_copied != NULL)
91835 + *already_copied = 0;
91836 +
91837 + s_tmp = lookup_subject_map(userp);
91838 +
91839 + /* we've already copied this subject into the kernel, just return
91840 + the reference to it, and don't copy it over again
91841 + */
91842 + if (s_tmp) {
91843 + if (already_copied != NULL)
91844 + *already_copied = 1;
91845 + return(s_tmp);
91846 + }
91847 +
91848 + if ((s_tmp = (struct acl_subject_label *)
91849 + acl_alloc(sizeof (struct acl_subject_label))) == NULL)
91850 + return ERR_PTR(-ENOMEM);
91851 +
91852 + subjmap = (struct subject_map *)kmalloc(sizeof (struct subject_map), GFP_KERNEL);
91853 + if (subjmap == NULL)
91854 + return ERR_PTR(-ENOMEM);
91855 +
91856 + subjmap->user = userp;
91857 + subjmap->kernel = s_tmp;
91858 + insert_subj_map_entry(subjmap);
91859 +
91860 + if (copy_acl_subject_label(s_tmp, userp))
91861 + return ERR_PTR(-EFAULT);
91862 +
91863 + err = alloc_and_copy_string(&s_tmp->filename, PATH_MAX);
91864 + if (err)
91865 + return ERR_PTR(err);
91866 +
91867 + if (!strcmp(s_tmp->filename, "/"))
91868 + role->root_label = s_tmp;
91869 +
91870 + if (copy_gr_hash_struct(&ghash, s_tmp->hash))
91871 + return ERR_PTR(-EFAULT);
91872 +
91873 + /* copy user and group transition tables */
91874 +
91875 + if (s_tmp->user_trans_num) {
91876 + uid_t *uidlist;
91877 +
91878 + uidlist = (uid_t *)acl_alloc_num(s_tmp->user_trans_num, sizeof(uid_t));
91879 + if (uidlist == NULL)
91880 + return ERR_PTR(-ENOMEM);
91881 + if (copy_from_user(uidlist, s_tmp->user_transitions, s_tmp->user_trans_num * sizeof(uid_t)))
91882 + return ERR_PTR(-EFAULT);
91883 +
91884 + s_tmp->user_transitions = uidlist;
91885 + }
91886 +
91887 + if (s_tmp->group_trans_num) {
91888 + gid_t *gidlist;
91889 +
91890 + gidlist = (gid_t *)acl_alloc_num(s_tmp->group_trans_num, sizeof(gid_t));
91891 + if (gidlist == NULL)
91892 + return ERR_PTR(-ENOMEM);
91893 + if (copy_from_user(gidlist, s_tmp->group_transitions, s_tmp->group_trans_num * sizeof(gid_t)))
91894 + return ERR_PTR(-EFAULT);
91895 +
91896 + s_tmp->group_transitions = gidlist;
91897 + }
91898 +
91899 + /* set up object hash table */
91900 + num_objs = count_user_objs(ghash.first);
91901 +
91902 + s_tmp->obj_hash_size = num_objs;
91903 + s_tmp->obj_hash =
91904 + (struct acl_object_label **)
91905 + create_table(&(s_tmp->obj_hash_size), sizeof(void *));
91906 +
91907 + if (!s_tmp->obj_hash)
91908 + return ERR_PTR(-ENOMEM);
91909 +
91910 + memset(s_tmp->obj_hash, 0,
91911 + s_tmp->obj_hash_size *
91912 + sizeof (struct acl_object_label *));
91913 +
91914 + /* add in objects */
91915 + err = copy_user_objs(ghash.first, s_tmp, role);
91916 +
91917 + if (err)
91918 + return ERR_PTR(err);
91919 +
91920 + /* set pointer for parent subject */
91921 + if (s_tmp->parent_subject) {
91922 + s_tmp2 = do_copy_user_subj(s_tmp->parent_subject, role, NULL);
91923 +
91924 + if (IS_ERR(s_tmp2))
91925 + return s_tmp2;
91926 +
91927 + s_tmp->parent_subject = s_tmp2;
91928 + }
91929 +
91930 + /* add in ip acls */
91931 +
91932 + if (!s_tmp->ip_num) {
91933 + s_tmp->ips = NULL;
91934 + goto insert;
91935 + }
91936 +
91937 + i_tmp =
91938 + (struct acl_ip_label **) acl_alloc_num(s_tmp->ip_num,
91939 + sizeof (struct acl_ip_label *));
91940 +
91941 + if (!i_tmp)
91942 + return ERR_PTR(-ENOMEM);
91943 +
91944 + for (i_num = 0; i_num < s_tmp->ip_num; i_num++) {
91945 + *(i_tmp + i_num) =
91946 + (struct acl_ip_label *)
91947 + acl_alloc(sizeof (struct acl_ip_label));
91948 + if (!*(i_tmp + i_num))
91949 + return ERR_PTR(-ENOMEM);
91950 +
91951 + if (copy_pointer_from_array(&i_utmp2, i_num, s_tmp->ips))
91952 + return ERR_PTR(-EFAULT);
91953 +
91954 + if (copy_acl_ip_label(*(i_tmp + i_num), i_utmp2))
91955 + return ERR_PTR(-EFAULT);
91956 +
91957 + if ((*(i_tmp + i_num))->iface == NULL)
91958 + continue;
91959 +
91960 + err = alloc_and_copy_string(&(*(i_tmp + i_num))->iface, IFNAMSIZ);
91961 + if (err)
91962 + return ERR_PTR(err);
91963 + }
91964 +
91965 + s_tmp->ips = i_tmp;
91966 +
91967 +insert:
91968 + if (!insert_name_entry(s_tmp->filename, s_tmp->inode,
91969 + s_tmp->device, (s_tmp->mode & GR_DELETED) ? 1 : 0))
91970 + return ERR_PTR(-ENOMEM);
91971 +
91972 + return s_tmp;
91973 +}
91974 +
91975 +static int
91976 +copy_user_subjs(struct acl_subject_label *userp, struct acl_role_label *role)
91977 +{
91978 + struct acl_subject_label s_pre;
91979 + struct acl_subject_label * ret;
91980 + int err;
91981 +
91982 + while (userp) {
91983 + if (copy_acl_subject_label(&s_pre, userp))
91984 + return -EFAULT;
91985 +
91986 + ret = do_copy_user_subj(userp, role, NULL);
91987 +
91988 + err = PTR_ERR(ret);
91989 + if (IS_ERR(ret))
91990 + return err;
91991 +
91992 + insert_acl_subj_label(ret, role);
91993 +
91994 + userp = s_pre.prev;
91995 + }
91996 +
91997 + return 0;
91998 +}
91999 +
92000 +static int
92001 +copy_user_acl(struct gr_arg *arg)
92002 +{
92003 + struct acl_role_label *r_tmp = NULL, **r_utmp, *r_utmp2;
92004 + struct acl_subject_label *subj_list;
92005 + struct sprole_pw *sptmp;
92006 + struct gr_hash_struct *ghash;
92007 + uid_t *domainlist;
92008 + unsigned int r_num;
92009 + int err = 0;
92010 + __u16 i;
92011 + __u32 num_subjs;
92012 +
92013 + /* we need a default and kernel role */
92014 + if (arg->role_db.num_roles < 2)
92015 + return -EINVAL;
92016 +
92017 + /* copy special role authentication info from userspace */
92018 +
92019 + polstate->num_sprole_pws = arg->num_sprole_pws;
92020 + polstate->acl_special_roles = (struct sprole_pw **) acl_alloc_num(polstate->num_sprole_pws, sizeof(struct sprole_pw *));
92021 +
92022 + if (!polstate->acl_special_roles && polstate->num_sprole_pws)
92023 + return -ENOMEM;
92024 +
92025 + for (i = 0; i < polstate->num_sprole_pws; i++) {
92026 + sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
92027 + if (!sptmp)
92028 + return -ENOMEM;
92029 + if (copy_sprole_pw(sptmp, i, arg->sprole_pws))
92030 + return -EFAULT;
92031 +
92032 + err = alloc_and_copy_string((char **)&sptmp->rolename, GR_SPROLE_LEN);
92033 + if (err)
92034 + return err;
92035 +
92036 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
92037 + printk(KERN_ALERT "Copying special role %s\n", sptmp->rolename);
92038 +#endif
92039 +
92040 + polstate->acl_special_roles[i] = sptmp;
92041 + }
92042 +
92043 + r_utmp = (struct acl_role_label **) arg->role_db.r_table;
92044 +
92045 + for (r_num = 0; r_num < arg->role_db.num_roles; r_num++) {
92046 + r_tmp = acl_alloc(sizeof (struct acl_role_label));
92047 +
92048 + if (!r_tmp)
92049 + return -ENOMEM;
92050 +
92051 + if (copy_pointer_from_array(&r_utmp2, r_num, r_utmp))
92052 + return -EFAULT;
92053 +
92054 + if (copy_acl_role_label(r_tmp, r_utmp2))
92055 + return -EFAULT;
92056 +
92057 + err = alloc_and_copy_string(&r_tmp->rolename, GR_SPROLE_LEN);
92058 + if (err)
92059 + return err;
92060 +
92061 + if (!strcmp(r_tmp->rolename, "default")
92062 + && (r_tmp->roletype & GR_ROLE_DEFAULT)) {
92063 + polstate->default_role = r_tmp;
92064 + } else if (!strcmp(r_tmp->rolename, ":::kernel:::")) {
92065 + polstate->kernel_role = r_tmp;
92066 + }
92067 +
92068 + if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
92069 + return -ENOMEM;
92070 +
92071 + if (copy_gr_hash_struct(ghash, r_tmp->hash))
92072 + return -EFAULT;
92073 +
92074 + r_tmp->hash = ghash;
92075 +
92076 + num_subjs = count_user_subjs(r_tmp->hash->first);
92077 +
92078 + r_tmp->subj_hash_size = num_subjs;
92079 + r_tmp->subj_hash =
92080 + (struct acl_subject_label **)
92081 + create_table(&(r_tmp->subj_hash_size), sizeof(void *));
92082 +
92083 + if (!r_tmp->subj_hash)
92084 + return -ENOMEM;
92085 +
92086 + err = copy_user_allowedips(r_tmp);
92087 + if (err)
92088 + return err;
92089 +
92090 + /* copy domain info */
92091 + if (r_tmp->domain_children != NULL) {
92092 + domainlist = acl_alloc_num(r_tmp->domain_child_num, sizeof(uid_t));
92093 + if (domainlist == NULL)
92094 + return -ENOMEM;
92095 +
92096 + if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t)))
92097 + return -EFAULT;
92098 +
92099 + r_tmp->domain_children = domainlist;
92100 + }
92101 +
92102 + err = copy_user_transitions(r_tmp);
92103 + if (err)
92104 + return err;
92105 +
92106 + memset(r_tmp->subj_hash, 0,
92107 + r_tmp->subj_hash_size *
92108 + sizeof (struct acl_subject_label *));
92109 +
92110 + /* acquire the list of subjects, then NULL out
92111 + the list prior to parsing the subjects for this role,
92112 + as during this parsing the list is replaced with a list
92113 + of *nested* subjects for the role
92114 + */
92115 + subj_list = r_tmp->hash->first;
92116 +
92117 + /* set nested subject list to null */
92118 + r_tmp->hash->first = NULL;
92119 +
92120 + err = copy_user_subjs(subj_list, r_tmp);
92121 +
92122 + if (err)
92123 + return err;
92124 +
92125 + insert_acl_role_label(r_tmp);
92126 + }
92127 +
92128 + if (polstate->default_role == NULL || polstate->kernel_role == NULL)
92129 + return -EINVAL;
92130 +
92131 + return err;
92132 +}
92133 +
92134 +static int gracl_reload_apply_policies(void *reload)
92135 +{
92136 + struct gr_reload_state *reload_state = (struct gr_reload_state *)reload;
92137 + struct task_struct *task, *task2;
92138 + struct acl_role_label *role, *rtmp;
92139 + struct acl_subject_label *subj;
92140 + const struct cred *cred;
92141 + int role_applied;
92142 + int ret = 0;
92143 +
92144 + memcpy(&reload_state->oldpolicy, reload_state->oldpolicy_ptr, sizeof(struct gr_policy_state));
92145 + memcpy(&reload_state->oldalloc, reload_state->oldalloc_ptr, sizeof(struct gr_alloc_state));
92146 +
92147 + /* first make sure we'll be able to apply the new policy cleanly */
92148 + do_each_thread(task2, task) {
92149 + if (task->exec_file == NULL)
92150 + continue;
92151 + role_applied = 0;
92152 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
92153 + /* preserve special roles */
92154 + FOR_EACH_ROLE_START(role)
92155 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
92156 + rtmp = task->role;
92157 + task->role = role;
92158 + role_applied = 1;
92159 + break;
92160 + }
92161 + FOR_EACH_ROLE_END(role)
92162 + }
92163 + if (!role_applied) {
92164 + cred = __task_cred(task);
92165 + rtmp = task->role;
92166 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92167 + }
92168 + /* this handles non-nested inherited subjects, nested subjects will still
92169 + be dropped currently */
92170 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
92171 + task->tmpacl = __gr_get_subject_for_task(polstate, task, NULL, 1);
92172 + /* change the role back so that we've made no modifications to the policy */
92173 + task->role = rtmp;
92174 +
92175 + if (subj == NULL || task->tmpacl == NULL) {
92176 + ret = -EINVAL;
92177 + goto out;
92178 + }
92179 + } while_each_thread(task2, task);
92180 +
92181 + /* now actually apply the policy */
92182 +
92183 + do_each_thread(task2, task) {
92184 + if (task->exec_file) {
92185 + role_applied = 0;
92186 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
92187 + /* preserve special roles */
92188 + FOR_EACH_ROLE_START(role)
92189 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
92190 + task->role = role;
92191 + role_applied = 1;
92192 + break;
92193 + }
92194 + FOR_EACH_ROLE_END(role)
92195 + }
92196 + if (!role_applied) {
92197 + cred = __task_cred(task);
92198 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92199 + }
92200 + /* this handles non-nested inherited subjects, nested subjects will still
92201 + be dropped currently */
92202 + if (!reload_state->oldmode && task->inherited)
92203 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
92204 + else {
92205 + /* looked up and tagged to the task previously */
92206 + subj = task->tmpacl;
92207 + }
92208 + /* subj will be non-null */
92209 + __gr_apply_subject_to_task(polstate, task, subj);
92210 + if (reload_state->oldmode) {
92211 + task->acl_role_id = 0;
92212 + task->acl_sp_role = 0;
92213 + task->inherited = 0;
92214 + }
92215 + } else {
92216 + // it's a kernel process
92217 + task->role = polstate->kernel_role;
92218 + task->acl = polstate->kernel_role->root_label;
92219 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
92220 + task->acl->mode &= ~GR_PROCFIND;
92221 +#endif
92222 + }
92223 + } while_each_thread(task2, task);
92224 +
92225 + memcpy(reload_state->oldpolicy_ptr, &reload_state->newpolicy, sizeof(struct gr_policy_state));
92226 + memcpy(reload_state->oldalloc_ptr, &reload_state->newalloc, sizeof(struct gr_alloc_state));
92227 +
92228 +out:
92229 +
92230 + return ret;
92231 +}
92232 +
92233 +static int gracl_reload(struct gr_arg *args, unsigned char oldmode)
92234 +{
92235 + struct gr_reload_state new_reload_state = { };
92236 + int err;
92237 +
92238 + new_reload_state.oldpolicy_ptr = polstate;
92239 + new_reload_state.oldalloc_ptr = current_alloc_state;
92240 + new_reload_state.oldmode = oldmode;
92241 +
92242 + current_alloc_state = &new_reload_state.newalloc;
92243 + polstate = &new_reload_state.newpolicy;
92244 +
92245 + /* everything relevant is now saved off, copy in the new policy */
92246 + if (init_variables(args, true)) {
92247 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
92248 + err = -ENOMEM;
92249 + goto error;
92250 + }
92251 +
92252 + err = copy_user_acl(args);
92253 + free_init_variables();
92254 + if (err)
92255 + goto error;
92256 + /* the new policy is copied in, with the old policy available via saved_state
92257 + first go through applying roles, making sure to preserve special roles
92258 + then apply new subjects, making sure to preserve inherited and nested subjects,
92259 + though currently only inherited subjects will be preserved
92260 + */
92261 + err = stop_machine(gracl_reload_apply_policies, &new_reload_state, NULL);
92262 + if (err)
92263 + goto error;
92264 +
92265 + /* we've now applied the new policy, so restore the old policy state to free it */
92266 + polstate = &new_reload_state.oldpolicy;
92267 + current_alloc_state = &new_reload_state.oldalloc;
92268 + free_variables(true);
92269 +
92270 + /* oldpolicy/oldalloc_ptr point to the new policy/alloc states as they were copied
92271 + to running_polstate/current_alloc_state inside stop_machine
92272 + */
92273 + err = 0;
92274 + goto out;
92275 +error:
92276 + /* on error of loading the new policy, we'll just keep the previous
92277 + policy set around
92278 + */
92279 + free_variables(true);
92280 +
92281 + /* doesn't affect runtime, but maintains consistent state */
92282 +out:
92283 + polstate = new_reload_state.oldpolicy_ptr;
92284 + current_alloc_state = new_reload_state.oldalloc_ptr;
92285 +
92286 + return err;
92287 +}
92288 +
92289 +static int
92290 +gracl_init(struct gr_arg *args)
92291 +{
92292 + int error = 0;
92293 +
92294 + memcpy(gr_system_salt, args->salt, GR_SALT_LEN);
92295 + memcpy(gr_system_sum, args->sum, GR_SHA_LEN);
92296 +
92297 + if (init_variables(args, false)) {
92298 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
92299 + error = -ENOMEM;
92300 + goto out;
92301 + }
92302 +
92303 + error = copy_user_acl(args);
92304 + free_init_variables();
92305 + if (error)
92306 + goto out;
92307 +
92308 + error = gr_set_acls(0);
92309 + if (error)
92310 + goto out;
92311 +
92312 + gr_enable_rbac_system();
92313 +
92314 + return 0;
92315 +
92316 +out:
92317 + free_variables(false);
92318 + return error;
92319 +}
92320 +
92321 +static int
92322 +lookup_special_role_auth(__u16 mode, const char *rolename, unsigned char **salt,
92323 + unsigned char **sum)
92324 +{
92325 + struct acl_role_label *r;
92326 + struct role_allowed_ip *ipp;
92327 + struct role_transition *trans;
92328 + unsigned int i;
92329 + int found = 0;
92330 + u32 curr_ip = current->signal->curr_ip;
92331 +
92332 + current->signal->saved_ip = curr_ip;
92333 +
92334 + /* check transition table */
92335 +
92336 + for (trans = current->role->transitions; trans; trans = trans->next) {
92337 + if (!strcmp(rolename, trans->rolename)) {
92338 + found = 1;
92339 + break;
92340 + }
92341 + }
92342 +
92343 + if (!found)
92344 + return 0;
92345 +
92346 + /* handle special roles that do not require authentication
92347 + and check ip */
92348 +
92349 + FOR_EACH_ROLE_START(r)
92350 + if (!strcmp(rolename, r->rolename) &&
92351 + (r->roletype & GR_ROLE_SPECIAL)) {
92352 + found = 0;
92353 + if (r->allowed_ips != NULL) {
92354 + for (ipp = r->allowed_ips; ipp; ipp = ipp->next) {
92355 + if ((ntohl(curr_ip) & ipp->netmask) ==
92356 + (ntohl(ipp->addr) & ipp->netmask))
92357 + found = 1;
92358 + }
92359 + } else
92360 + found = 2;
92361 + if (!found)
92362 + return 0;
92363 +
92364 + if (((mode == GR_SPROLE) && (r->roletype & GR_ROLE_NOPW)) ||
92365 + ((mode == GR_SPROLEPAM) && (r->roletype & GR_ROLE_PAM))) {
92366 + *salt = NULL;
92367 + *sum = NULL;
92368 + return 1;
92369 + }
92370 + }
92371 + FOR_EACH_ROLE_END(r)
92372 +
92373 + for (i = 0; i < polstate->num_sprole_pws; i++) {
92374 + if (!strcmp(rolename, polstate->acl_special_roles[i]->rolename)) {
92375 + *salt = polstate->acl_special_roles[i]->salt;
92376 + *sum = polstate->acl_special_roles[i]->sum;
92377 + return 1;
92378 + }
92379 + }
92380 +
92381 + return 0;
92382 +}
92383 +
92384 +int gr_check_secure_terminal(struct task_struct *task)
92385 +{
92386 + struct task_struct *p, *p2, *p3;
92387 + struct files_struct *files;
92388 + struct fdtable *fdt;
92389 + struct file *our_file = NULL, *file;
92390 + struct inode *our_inode = NULL;
92391 + int i;
92392 +
92393 + if (task->signal->tty == NULL)
92394 + return 1;
92395 +
92396 + files = get_files_struct(task);
92397 + if (files != NULL) {
92398 + rcu_read_lock();
92399 + fdt = files_fdtable(files);
92400 + for (i=0; i < fdt->max_fds; i++) {
92401 + file = fcheck_files(files, i);
92402 + if (file && (our_file == NULL) && (file->private_data == task->signal->tty)) {
92403 + get_file(file);
92404 + our_file = file;
92405 + }
92406 + }
92407 + rcu_read_unlock();
92408 + put_files_struct(files);
92409 + }
92410 +
92411 + if (our_file == NULL)
92412 + return 1;
92413 +
92414 + our_inode = d_backing_inode(our_file->f_path.dentry);
92415 +
92416 + read_lock(&tasklist_lock);
92417 + do_each_thread(p2, p) {
92418 + files = get_files_struct(p);
92419 + if (files == NULL ||
92420 + (p->signal && p->signal->tty == task->signal->tty)) {
92421 + if (files != NULL)
92422 + put_files_struct(files);
92423 + continue;
92424 + }
92425 + rcu_read_lock();
92426 + fdt = files_fdtable(files);
92427 + for (i=0; i < fdt->max_fds; i++) {
92428 + struct inode *inode = NULL;
92429 + file = fcheck_files(files, i);
92430 + if (file)
92431 + inode = d_backing_inode(file->f_path.dentry);
92432 + if (inode && S_ISCHR(inode->i_mode) && inode->i_rdev == our_inode->i_rdev) {
92433 + p3 = task;
92434 + while (task_pid_nr(p3) > 0) {
92435 + if (p3 == p)
92436 + break;
92437 + p3 = p3->real_parent;
92438 + }
92439 + if (p3 == p)
92440 + break;
92441 + gr_log_ttysniff(GR_DONT_AUDIT_GOOD, GR_TTYSNIFF_ACL_MSG, p);
92442 + gr_handle_alertkill(p);
92443 + rcu_read_unlock();
92444 + put_files_struct(files);
92445 + read_unlock(&tasklist_lock);
92446 + fput(our_file);
92447 + return 0;
92448 + }
92449 + }
92450 + rcu_read_unlock();
92451 + put_files_struct(files);
92452 + } while_each_thread(p2, p);
92453 + read_unlock(&tasklist_lock);
92454 +
92455 + fput(our_file);
92456 + return 1;
92457 +}
92458 +
92459 +ssize_t
92460 +write_grsec_handler(struct file *file, const char __user * buf, size_t count, loff_t *ppos)
92461 +{
92462 + struct gr_arg_wrapper uwrap;
92463 + unsigned char *sprole_salt = NULL;
92464 + unsigned char *sprole_sum = NULL;
92465 + int error = 0;
92466 + int error2 = 0;
92467 + size_t req_count = 0;
92468 + unsigned char oldmode = 0;
92469 +
92470 + mutex_lock(&gr_dev_mutex);
92471 +
92472 + if (gr_acl_is_enabled() && !(current->acl->mode & GR_KERNELAUTH)) {
92473 + error = -EPERM;
92474 + goto out;
92475 + }
92476 +
92477 +#ifdef CONFIG_COMPAT
92478 + pax_open_kernel();
92479 + if (is_compat_task()) {
92480 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_compat;
92481 + copy_gr_arg = &copy_gr_arg_compat;
92482 + copy_acl_object_label = &copy_acl_object_label_compat;
92483 + copy_acl_subject_label = &copy_acl_subject_label_compat;
92484 + copy_acl_role_label = &copy_acl_role_label_compat;
92485 + copy_acl_ip_label = &copy_acl_ip_label_compat;
92486 + copy_role_allowed_ip = &copy_role_allowed_ip_compat;
92487 + copy_role_transition = &copy_role_transition_compat;
92488 + copy_sprole_pw = &copy_sprole_pw_compat;
92489 + copy_gr_hash_struct = &copy_gr_hash_struct_compat;
92490 + copy_pointer_from_array = &copy_pointer_from_array_compat;
92491 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_compat;
92492 + } else {
92493 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_normal;
92494 + copy_gr_arg = &copy_gr_arg_normal;
92495 + copy_acl_object_label = &copy_acl_object_label_normal;
92496 + copy_acl_subject_label = &copy_acl_subject_label_normal;
92497 + copy_acl_role_label = &copy_acl_role_label_normal;
92498 + copy_acl_ip_label = &copy_acl_ip_label_normal;
92499 + copy_role_allowed_ip = &copy_role_allowed_ip_normal;
92500 + copy_role_transition = &copy_role_transition_normal;
92501 + copy_sprole_pw = &copy_sprole_pw_normal;
92502 + copy_gr_hash_struct = &copy_gr_hash_struct_normal;
92503 + copy_pointer_from_array = &copy_pointer_from_array_normal;
92504 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_normal;
92505 + }
92506 + pax_close_kernel();
92507 +#endif
92508 +
92509 + req_count = get_gr_arg_wrapper_size();
92510 +
92511 + if (count != req_count) {
92512 + gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)req_count);
92513 + error = -EINVAL;
92514 + goto out;
92515 + }
92516 +
92517 +
92518 + if (gr_auth_expires && time_after_eq(get_seconds(), gr_auth_expires)) {
92519 + gr_auth_expires = 0;
92520 + gr_auth_attempts = 0;
92521 + }
92522 +
92523 + error = copy_gr_arg_wrapper(buf, &uwrap);
92524 + if (error)
92525 + goto out;
92526 +
92527 + error = copy_gr_arg(uwrap.arg, gr_usermode);
92528 + if (error)
92529 + goto out;
92530 +
92531 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM &&
92532 + gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
92533 + time_after(gr_auth_expires, get_seconds())) {
92534 + error = -EBUSY;
92535 + goto out;
92536 + }
92537 +
92538 + /* if non-root trying to do anything other than use a special role,
92539 + do not attempt authentication, do not count towards authentication
92540 + locking
92541 + */
92542 +
92543 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_STATUS &&
92544 + gr_usermode->mode != GR_UNSPROLE && gr_usermode->mode != GR_SPROLEPAM &&
92545 + gr_is_global_nonroot(current_uid())) {
92546 + error = -EPERM;
92547 + goto out;
92548 + }
92549 +
92550 + /* ensure pw and special role name are null terminated */
92551 +
92552 + gr_usermode->pw[GR_PW_LEN - 1] = '\0';
92553 + gr_usermode->sp_role[GR_SPROLE_LEN - 1] = '\0';
92554 +
92555 + /* Okay.
92556 + * We have our enough of the argument structure..(we have yet
92557 + * to copy_from_user the tables themselves) . Copy the tables
92558 + * only if we need them, i.e. for loading operations. */
92559 +
92560 + switch (gr_usermode->mode) {
92561 + case GR_STATUS:
92562 + if (gr_acl_is_enabled()) {
92563 + error = 1;
92564 + if (!gr_check_secure_terminal(current))
92565 + error = 3;
92566 + } else
92567 + error = 2;
92568 + goto out;
92569 + case GR_SHUTDOWN:
92570 + if (gr_acl_is_enabled() && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92571 + stop_machine(gr_rbac_disable, NULL, NULL);
92572 + free_variables(false);
92573 + memset(gr_usermode, 0, sizeof(struct gr_arg));
92574 + memset(gr_system_salt, 0, GR_SALT_LEN);
92575 + memset(gr_system_sum, 0, GR_SHA_LEN);
92576 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
92577 + } else if (gr_acl_is_enabled()) {
92578 + gr_log_noargs(GR_DONT_AUDIT, GR_SHUTF_ACL_MSG);
92579 + error = -EPERM;
92580 + } else {
92581 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTI_ACL_MSG);
92582 + error = -EAGAIN;
92583 + }
92584 + break;
92585 + case GR_ENABLE:
92586 + if (!gr_acl_is_enabled() && !(error2 = gracl_init(gr_usermode)))
92587 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_ENABLE_ACL_MSG, GR_VERSION);
92588 + else {
92589 + if (gr_acl_is_enabled())
92590 + error = -EAGAIN;
92591 + else
92592 + error = error2;
92593 + gr_log_str(GR_DONT_AUDIT, GR_ENABLEF_ACL_MSG, GR_VERSION);
92594 + }
92595 + break;
92596 + case GR_OLDRELOAD:
92597 + oldmode = 1;
92598 + case GR_RELOAD:
92599 + if (!gr_acl_is_enabled()) {
92600 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOADI_ACL_MSG, GR_VERSION);
92601 + error = -EAGAIN;
92602 + } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92603 + error2 = gracl_reload(gr_usermode, oldmode);
92604 + if (!error2)
92605 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOAD_ACL_MSG, GR_VERSION);
92606 + else {
92607 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92608 + error = error2;
92609 + }
92610 + } else {
92611 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92612 + error = -EPERM;
92613 + }
92614 + break;
92615 + case GR_SEGVMOD:
92616 + if (unlikely(!gr_acl_is_enabled())) {
92617 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODI_ACL_MSG);
92618 + error = -EAGAIN;
92619 + break;
92620 + }
92621 +
92622 + if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92623 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODS_ACL_MSG);
92624 + if (gr_usermode->segv_device && gr_usermode->segv_inode) {
92625 + struct acl_subject_label *segvacl;
92626 + segvacl =
92627 + lookup_acl_subj_label(gr_usermode->segv_inode,
92628 + gr_usermode->segv_device,
92629 + current->role);
92630 + if (segvacl) {
92631 + segvacl->crashes = 0;
92632 + segvacl->expires = 0;
92633 + }
92634 + } else if (gr_find_uid(gr_usermode->segv_uid) >= 0) {
92635 + gr_remove_uid(gr_usermode->segv_uid);
92636 + }
92637 + } else {
92638 + gr_log_noargs(GR_DONT_AUDIT, GR_SEGVMODF_ACL_MSG);
92639 + error = -EPERM;
92640 + }
92641 + break;
92642 + case GR_SPROLE:
92643 + case GR_SPROLEPAM:
92644 + if (unlikely(!gr_acl_is_enabled())) {
92645 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SPROLEI_ACL_MSG);
92646 + error = -EAGAIN;
92647 + break;
92648 + }
92649 +
92650 + if (current->role->expires && time_after_eq(get_seconds(), current->role->expires)) {
92651 + current->role->expires = 0;
92652 + current->role->auth_attempts = 0;
92653 + }
92654 +
92655 + if (current->role->auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
92656 + time_after(current->role->expires, get_seconds())) {
92657 + error = -EBUSY;
92658 + goto out;
92659 + }
92660 +
92661 + if (lookup_special_role_auth
92662 + (gr_usermode->mode, gr_usermode->sp_role, &sprole_salt, &sprole_sum)
92663 + && ((!sprole_salt && !sprole_sum)
92664 + || !(chkpw(gr_usermode, sprole_salt, sprole_sum)))) {
92665 + char *p = "";
92666 + assign_special_role(gr_usermode->sp_role);
92667 + read_lock(&tasklist_lock);
92668 + if (current->real_parent)
92669 + p = current->real_parent->role->rolename;
92670 + read_unlock(&tasklist_lock);
92671 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLES_ACL_MSG,
92672 + p, acl_sp_role_value);
92673 + } else {
92674 + gr_log_str(GR_DONT_AUDIT, GR_SPROLEF_ACL_MSG, gr_usermode->sp_role);
92675 + error = -EPERM;
92676 + if(!(current->role->auth_attempts++))
92677 + current->role->expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92678 +
92679 + goto out;
92680 + }
92681 + break;
92682 + case GR_UNSPROLE:
92683 + if (unlikely(!gr_acl_is_enabled())) {
92684 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_UNSPROLEI_ACL_MSG);
92685 + error = -EAGAIN;
92686 + break;
92687 + }
92688 +
92689 + if (current->role->roletype & GR_ROLE_SPECIAL) {
92690 + char *p = "";
92691 + int i = 0;
92692 +
92693 + read_lock(&tasklist_lock);
92694 + if (current->real_parent) {
92695 + p = current->real_parent->role->rolename;
92696 + i = current->real_parent->acl_role_id;
92697 + }
92698 + read_unlock(&tasklist_lock);
92699 +
92700 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_UNSPROLES_ACL_MSG, p, i);
92701 + gr_set_acls(1);
92702 + } else {
92703 + error = -EPERM;
92704 + goto out;
92705 + }
92706 + break;
92707 + default:
92708 + gr_log_int(GR_DONT_AUDIT, GR_INVMODE_ACL_MSG, gr_usermode->mode);
92709 + error = -EINVAL;
92710 + break;
92711 + }
92712 +
92713 + if (error != -EPERM)
92714 + goto out;
92715 +
92716 + if(!(gr_auth_attempts++))
92717 + gr_auth_expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92718 +
92719 + out:
92720 + mutex_unlock(&gr_dev_mutex);
92721 +
92722 + if (!error)
92723 + error = req_count;
92724 +
92725 + return error;
92726 +}
92727 +
92728 +int
92729 +gr_set_acls(const int type)
92730 +{
92731 + struct task_struct *task, *task2;
92732 + struct acl_role_label *role = current->role;
92733 + struct acl_subject_label *subj;
92734 + __u16 acl_role_id = current->acl_role_id;
92735 + const struct cred *cred;
92736 + int ret;
92737 +
92738 + rcu_read_lock();
92739 + read_lock(&tasklist_lock);
92740 + read_lock(&grsec_exec_file_lock);
92741 + do_each_thread(task2, task) {
92742 + /* check to see if we're called from the exit handler,
92743 + if so, only replace ACLs that have inherited the admin
92744 + ACL */
92745 +
92746 + if (type && (task->role != role ||
92747 + task->acl_role_id != acl_role_id))
92748 + continue;
92749 +
92750 + task->acl_role_id = 0;
92751 + task->acl_sp_role = 0;
92752 + task->inherited = 0;
92753 +
92754 + if (task->exec_file) {
92755 + cred = __task_cred(task);
92756 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92757 + subj = __gr_get_subject_for_task(polstate, task, NULL, 1);
92758 + if (subj == NULL) {
92759 + ret = -EINVAL;
92760 + read_unlock(&grsec_exec_file_lock);
92761 + read_unlock(&tasklist_lock);
92762 + rcu_read_unlock();
92763 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_DEFACL_MSG, task->comm, task_pid_nr(task));
92764 + return ret;
92765 + }
92766 + __gr_apply_subject_to_task(polstate, task, subj);
92767 + } else {
92768 + // it's a kernel process
92769 + task->role = polstate->kernel_role;
92770 + task->acl = polstate->kernel_role->root_label;
92771 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
92772 + task->acl->mode &= ~GR_PROCFIND;
92773 +#endif
92774 + }
92775 + } while_each_thread(task2, task);
92776 + read_unlock(&grsec_exec_file_lock);
92777 + read_unlock(&tasklist_lock);
92778 + rcu_read_unlock();
92779 +
92780 + return 0;
92781 +}
92782 diff --git a/grsecurity/gracl_res.c b/grsecurity/gracl_res.c
92783 new file mode 100644
92784 index 0000000..39645c9
92785 --- /dev/null
92786 +++ b/grsecurity/gracl_res.c
92787 @@ -0,0 +1,68 @@
92788 +#include <linux/kernel.h>
92789 +#include <linux/sched.h>
92790 +#include <linux/gracl.h>
92791 +#include <linux/grinternal.h>
92792 +
92793 +static const char *restab_log[] = {
92794 + [RLIMIT_CPU] = "RLIMIT_CPU",
92795 + [RLIMIT_FSIZE] = "RLIMIT_FSIZE",
92796 + [RLIMIT_DATA] = "RLIMIT_DATA",
92797 + [RLIMIT_STACK] = "RLIMIT_STACK",
92798 + [RLIMIT_CORE] = "RLIMIT_CORE",
92799 + [RLIMIT_RSS] = "RLIMIT_RSS",
92800 + [RLIMIT_NPROC] = "RLIMIT_NPROC",
92801 + [RLIMIT_NOFILE] = "RLIMIT_NOFILE",
92802 + [RLIMIT_MEMLOCK] = "RLIMIT_MEMLOCK",
92803 + [RLIMIT_AS] = "RLIMIT_AS",
92804 + [RLIMIT_LOCKS] = "RLIMIT_LOCKS",
92805 + [RLIMIT_SIGPENDING] = "RLIMIT_SIGPENDING",
92806 + [RLIMIT_MSGQUEUE] = "RLIMIT_MSGQUEUE",
92807 + [RLIMIT_NICE] = "RLIMIT_NICE",
92808 + [RLIMIT_RTPRIO] = "RLIMIT_RTPRIO",
92809 + [RLIMIT_RTTIME] = "RLIMIT_RTTIME",
92810 + [GR_CRASH_RES] = "RLIMIT_CRASH"
92811 +};
92812 +
92813 +void
92814 +gr_log_resource(const struct task_struct *task,
92815 + const int res, const unsigned long wanted, const int gt)
92816 +{
92817 + const struct cred *cred;
92818 + unsigned long rlim;
92819 +
92820 + if (!gr_acl_is_enabled() && !grsec_resource_logging)
92821 + return;
92822 +
92823 + // not yet supported resource
92824 + if (unlikely(!restab_log[res]))
92825 + return;
92826 +
92827 + if (res == RLIMIT_CPU || res == RLIMIT_RTTIME)
92828 + rlim = task_rlimit_max(task, res);
92829 + else
92830 + rlim = task_rlimit(task, res);
92831 +
92832 + if (likely((rlim == RLIM_INFINITY) || (gt && wanted <= rlim) || (!gt && wanted < rlim)))
92833 + return;
92834 +
92835 + rcu_read_lock();
92836 + cred = __task_cred(task);
92837 +
92838 + if (res == RLIMIT_NPROC &&
92839 + (cap_raised(cred->cap_effective, CAP_SYS_ADMIN) ||
92840 + cap_raised(cred->cap_effective, CAP_SYS_RESOURCE)))
92841 + goto out_rcu_unlock;
92842 + else if (res == RLIMIT_MEMLOCK &&
92843 + cap_raised(cred->cap_effective, CAP_IPC_LOCK))
92844 + goto out_rcu_unlock;
92845 + else if (res == RLIMIT_NICE && cap_raised(cred->cap_effective, CAP_SYS_NICE))
92846 + goto out_rcu_unlock;
92847 + rcu_read_unlock();
92848 +
92849 + gr_log_res_ulong2_str(GR_DONT_AUDIT, GR_RESOURCE_MSG, task, wanted, restab_log[res], rlim);
92850 +
92851 + return;
92852 +out_rcu_unlock:
92853 + rcu_read_unlock();
92854 + return;
92855 +}
92856 diff --git a/grsecurity/gracl_segv.c b/grsecurity/gracl_segv.c
92857 new file mode 100644
92858 index 0000000..21646aa
92859 --- /dev/null
92860 +++ b/grsecurity/gracl_segv.c
92861 @@ -0,0 +1,304 @@
92862 +#include <linux/kernel.h>
92863 +#include <linux/mm.h>
92864 +#include <asm/uaccess.h>
92865 +#include <asm/errno.h>
92866 +#include <asm/mman.h>
92867 +#include <net/sock.h>
92868 +#include <linux/file.h>
92869 +#include <linux/fs.h>
92870 +#include <linux/net.h>
92871 +#include <linux/in.h>
92872 +#include <linux/slab.h>
92873 +#include <linux/types.h>
92874 +#include <linux/sched.h>
92875 +#include <linux/timer.h>
92876 +#include <linux/gracl.h>
92877 +#include <linux/grsecurity.h>
92878 +#include <linux/grinternal.h>
92879 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
92880 +#include <linux/magic.h>
92881 +#include <linux/pagemap.h>
92882 +#include "../fs/btrfs/async-thread.h"
92883 +#include "../fs/btrfs/ctree.h"
92884 +#include "../fs/btrfs/btrfs_inode.h"
92885 +#endif
92886 +
92887 +static struct crash_uid *uid_set;
92888 +static unsigned short uid_used;
92889 +static DEFINE_SPINLOCK(gr_uid_lock);
92890 +extern rwlock_t gr_inode_lock;
92891 +extern struct acl_subject_label *
92892 + lookup_acl_subj_label(const u64 inode, const dev_t dev,
92893 + struct acl_role_label *role);
92894 +
92895 +int
92896 +gr_init_uidset(void)
92897 +{
92898 + uid_set =
92899 + kmalloc(GR_UIDTABLE_MAX * sizeof (struct crash_uid), GFP_KERNEL);
92900 + uid_used = 0;
92901 +
92902 + return uid_set ? 1 : 0;
92903 +}
92904 +
92905 +void
92906 +gr_free_uidset(void)
92907 +{
92908 + if (uid_set) {
92909 + struct crash_uid *tmpset;
92910 + spin_lock(&gr_uid_lock);
92911 + tmpset = uid_set;
92912 + uid_set = NULL;
92913 + uid_used = 0;
92914 + spin_unlock(&gr_uid_lock);
92915 + if (tmpset)
92916 + kfree(tmpset);
92917 + }
92918 +
92919 + return;
92920 +}
92921 +
92922 +int
92923 +gr_find_uid(const uid_t uid)
92924 +{
92925 + struct crash_uid *tmp = uid_set;
92926 + uid_t buid;
92927 + int low = 0, high = uid_used - 1, mid;
92928 +
92929 + while (high >= low) {
92930 + mid = (low + high) >> 1;
92931 + buid = tmp[mid].uid;
92932 + if (buid == uid)
92933 + return mid;
92934 + if (buid > uid)
92935 + high = mid - 1;
92936 + if (buid < uid)
92937 + low = mid + 1;
92938 + }
92939 +
92940 + return -1;
92941 +}
92942 +
92943 +static void
92944 +gr_insertsort(void)
92945 +{
92946 + unsigned short i, j;
92947 + struct crash_uid index;
92948 +
92949 + for (i = 1; i < uid_used; i++) {
92950 + index = uid_set[i];
92951 + j = i;
92952 + while ((j > 0) && uid_set[j - 1].uid > index.uid) {
92953 + uid_set[j] = uid_set[j - 1];
92954 + j--;
92955 + }
92956 + uid_set[j] = index;
92957 + }
92958 +
92959 + return;
92960 +}
92961 +
92962 +static void
92963 +gr_insert_uid(const kuid_t kuid, const unsigned long expires)
92964 +{
92965 + int loc;
92966 + uid_t uid = GR_GLOBAL_UID(kuid);
92967 +
92968 + if (uid_used == GR_UIDTABLE_MAX)
92969 + return;
92970 +
92971 + loc = gr_find_uid(uid);
92972 +
92973 + if (loc >= 0) {
92974 + uid_set[loc].expires = expires;
92975 + return;
92976 + }
92977 +
92978 + uid_set[uid_used].uid = uid;
92979 + uid_set[uid_used].expires = expires;
92980 + uid_used++;
92981 +
92982 + gr_insertsort();
92983 +
92984 + return;
92985 +}
92986 +
92987 +void
92988 +gr_remove_uid(const unsigned short loc)
92989 +{
92990 + unsigned short i;
92991 +
92992 + for (i = loc + 1; i < uid_used; i++)
92993 + uid_set[i - 1] = uid_set[i];
92994 +
92995 + uid_used--;
92996 +
92997 + return;
92998 +}
92999 +
93000 +int
93001 +gr_check_crash_uid(const kuid_t kuid)
93002 +{
93003 + int loc;
93004 + int ret = 0;
93005 + uid_t uid;
93006 +
93007 + if (unlikely(!gr_acl_is_enabled()))
93008 + return 0;
93009 +
93010 + uid = GR_GLOBAL_UID(kuid);
93011 +
93012 + spin_lock(&gr_uid_lock);
93013 + loc = gr_find_uid(uid);
93014 +
93015 + if (loc < 0)
93016 + goto out_unlock;
93017 +
93018 + if (time_before_eq(uid_set[loc].expires, get_seconds()))
93019 + gr_remove_uid(loc);
93020 + else
93021 + ret = 1;
93022 +
93023 +out_unlock:
93024 + spin_unlock(&gr_uid_lock);
93025 + return ret;
93026 +}
93027 +
93028 +static int
93029 +proc_is_setxid(const struct cred *cred)
93030 +{
93031 + if (!uid_eq(cred->uid, cred->euid) || !uid_eq(cred->uid, cred->suid) ||
93032 + !uid_eq(cred->uid, cred->fsuid))
93033 + return 1;
93034 + if (!gid_eq(cred->gid, cred->egid) || !gid_eq(cred->gid, cred->sgid) ||
93035 + !gid_eq(cred->gid, cred->fsgid))
93036 + return 1;
93037 +
93038 + return 0;
93039 +}
93040 +
93041 +extern int gr_fake_force_sig(int sig, struct task_struct *t);
93042 +
93043 +void
93044 +gr_handle_crash(struct task_struct *task, const int sig)
93045 +{
93046 + struct acl_subject_label *curr;
93047 + struct task_struct *tsk, *tsk2;
93048 + const struct cred *cred;
93049 + const struct cred *cred2;
93050 +
93051 + if (sig != SIGSEGV && sig != SIGKILL && sig != SIGBUS && sig != SIGILL)
93052 + return;
93053 +
93054 + if (unlikely(!gr_acl_is_enabled()))
93055 + return;
93056 +
93057 + curr = task->acl;
93058 +
93059 + if (!(curr->resmask & (1U << GR_CRASH_RES)))
93060 + return;
93061 +
93062 + if (time_before_eq(curr->expires, get_seconds())) {
93063 + curr->expires = 0;
93064 + curr->crashes = 0;
93065 + }
93066 +
93067 + curr->crashes++;
93068 +
93069 + if (!curr->expires)
93070 + curr->expires = get_seconds() + curr->res[GR_CRASH_RES].rlim_max;
93071 +
93072 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
93073 + time_after(curr->expires, get_seconds())) {
93074 + rcu_read_lock();
93075 + cred = __task_cred(task);
93076 + if (gr_is_global_nonroot(cred->uid) && proc_is_setxid(cred)) {
93077 + gr_log_crash1(GR_DONT_AUDIT, GR_SEGVSTART_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
93078 + spin_lock(&gr_uid_lock);
93079 + gr_insert_uid(cred->uid, curr->expires);
93080 + spin_unlock(&gr_uid_lock);
93081 + curr->expires = 0;
93082 + curr->crashes = 0;
93083 + read_lock(&tasklist_lock);
93084 + do_each_thread(tsk2, tsk) {
93085 + cred2 = __task_cred(tsk);
93086 + if (tsk != task && uid_eq(cred2->uid, cred->uid))
93087 + gr_fake_force_sig(SIGKILL, tsk);
93088 + } while_each_thread(tsk2, tsk);
93089 + read_unlock(&tasklist_lock);
93090 + } else {
93091 + gr_log_crash2(GR_DONT_AUDIT, GR_SEGVNOSUID_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
93092 + read_lock(&tasklist_lock);
93093 + read_lock(&grsec_exec_file_lock);
93094 + do_each_thread(tsk2, tsk) {
93095 + if (likely(tsk != task)) {
93096 + // if this thread has the same subject as the one that triggered
93097 + // RES_CRASH and it's the same binary, kill it
93098 + if (tsk->acl == task->acl && gr_is_same_file(tsk->exec_file, task->exec_file))
93099 + gr_fake_force_sig(SIGKILL, tsk);
93100 + }
93101 + } while_each_thread(tsk2, tsk);
93102 + read_unlock(&grsec_exec_file_lock);
93103 + read_unlock(&tasklist_lock);
93104 + }
93105 + rcu_read_unlock();
93106 + }
93107 +
93108 + return;
93109 +}
93110 +
93111 +int
93112 +gr_check_crash_exec(const struct file *filp)
93113 +{
93114 + struct acl_subject_label *curr;
93115 + struct dentry *dentry;
93116 +
93117 + if (unlikely(!gr_acl_is_enabled()))
93118 + return 0;
93119 +
93120 + read_lock(&gr_inode_lock);
93121 + dentry = filp->f_path.dentry;
93122 + curr = lookup_acl_subj_label(gr_get_ino_from_dentry(dentry), gr_get_dev_from_dentry(dentry),
93123 + current->role);
93124 + read_unlock(&gr_inode_lock);
93125 +
93126 + if (!curr || !(curr->resmask & (1U << GR_CRASH_RES)) ||
93127 + (!curr->crashes && !curr->expires))
93128 + return 0;
93129 +
93130 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
93131 + time_after(curr->expires, get_seconds()))
93132 + return 1;
93133 + else if (time_before_eq(curr->expires, get_seconds())) {
93134 + curr->crashes = 0;
93135 + curr->expires = 0;
93136 + }
93137 +
93138 + return 0;
93139 +}
93140 +
93141 +void
93142 +gr_handle_alertkill(struct task_struct *task)
93143 +{
93144 + struct acl_subject_label *curracl;
93145 + __u32 curr_ip;
93146 + struct task_struct *p, *p2;
93147 +
93148 + if (unlikely(!gr_acl_is_enabled()))
93149 + return;
93150 +
93151 + curracl = task->acl;
93152 + curr_ip = task->signal->curr_ip;
93153 +
93154 + if ((curracl->mode & GR_KILLIPPROC) && curr_ip) {
93155 + read_lock(&tasklist_lock);
93156 + do_each_thread(p2, p) {
93157 + if (p->signal->curr_ip == curr_ip)
93158 + gr_fake_force_sig(SIGKILL, p);
93159 + } while_each_thread(p2, p);
93160 + read_unlock(&tasklist_lock);
93161 + } else if (curracl->mode & GR_KILLPROC)
93162 + gr_fake_force_sig(SIGKILL, task);
93163 +
93164 + return;
93165 +}
93166 diff --git a/grsecurity/gracl_shm.c b/grsecurity/gracl_shm.c
93167 new file mode 100644
93168 index 0000000..6b0c9cc
93169 --- /dev/null
93170 +++ b/grsecurity/gracl_shm.c
93171 @@ -0,0 +1,40 @@
93172 +#include <linux/kernel.h>
93173 +#include <linux/mm.h>
93174 +#include <linux/sched.h>
93175 +#include <linux/file.h>
93176 +#include <linux/ipc.h>
93177 +#include <linux/gracl.h>
93178 +#include <linux/grsecurity.h>
93179 +#include <linux/grinternal.h>
93180 +
93181 +int
93182 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
93183 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
93184 +{
93185 + struct task_struct *task;
93186 +
93187 + if (!gr_acl_is_enabled())
93188 + return 1;
93189 +
93190 + rcu_read_lock();
93191 + read_lock(&tasklist_lock);
93192 +
93193 + task = find_task_by_vpid(shm_cprid);
93194 +
93195 + if (unlikely(!task))
93196 + task = find_task_by_vpid(shm_lapid);
93197 +
93198 + if (unlikely(task && (time_before_eq64(task->start_time, shm_createtime) ||
93199 + (task_pid_nr(task) == shm_lapid)) &&
93200 + (task->acl->mode & GR_PROTSHM) &&
93201 + (task->acl != current->acl))) {
93202 + read_unlock(&tasklist_lock);
93203 + rcu_read_unlock();
93204 + gr_log_int3(GR_DONT_AUDIT, GR_SHMAT_ACL_MSG, GR_GLOBAL_UID(cuid), shm_cprid, shmid);
93205 + return 0;
93206 + }
93207 + read_unlock(&tasklist_lock);
93208 + rcu_read_unlock();
93209 +
93210 + return 1;
93211 +}
93212 diff --git a/grsecurity/grsec_chdir.c b/grsecurity/grsec_chdir.c
93213 new file mode 100644
93214 index 0000000..bc0be01
93215 --- /dev/null
93216 +++ b/grsecurity/grsec_chdir.c
93217 @@ -0,0 +1,19 @@
93218 +#include <linux/kernel.h>
93219 +#include <linux/sched.h>
93220 +#include <linux/fs.h>
93221 +#include <linux/file.h>
93222 +#include <linux/grsecurity.h>
93223 +#include <linux/grinternal.h>
93224 +
93225 +void
93226 +gr_log_chdir(const struct dentry *dentry, const struct vfsmount *mnt)
93227 +{
93228 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
93229 + if ((grsec_enable_chdir && grsec_enable_group &&
93230 + in_group_p(grsec_audit_gid)) || (grsec_enable_chdir &&
93231 + !grsec_enable_group)) {
93232 + gr_log_fs_generic(GR_DO_AUDIT, GR_CHDIR_AUDIT_MSG, dentry, mnt);
93233 + }
93234 +#endif
93235 + return;
93236 +}
93237 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
93238 new file mode 100644
93239 index 0000000..652ab45
93240 --- /dev/null
93241 +++ b/grsecurity/grsec_chroot.c
93242 @@ -0,0 +1,467 @@
93243 +#include <linux/kernel.h>
93244 +#include <linux/module.h>
93245 +#include <linux/sched.h>
93246 +#include <linux/file.h>
93247 +#include <linux/fs.h>
93248 +#include <linux/mount.h>
93249 +#include <linux/types.h>
93250 +#include "../fs/mount.h"
93251 +#include <linux/grsecurity.h>
93252 +#include <linux/grinternal.h>
93253 +
93254 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93255 +int gr_init_ran;
93256 +#endif
93257 +
93258 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
93259 +{
93260 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93261 + struct dentry *tmpd = dentry;
93262 +
93263 + read_seqlock_excl(&mount_lock);
93264 + write_seqlock(&rename_lock);
93265 +
93266 + while (tmpd != mnt->mnt_root) {
93267 + atomic_inc(&tmpd->chroot_refcnt);
93268 + tmpd = tmpd->d_parent;
93269 + }
93270 + atomic_inc(&tmpd->chroot_refcnt);
93271 +
93272 + write_sequnlock(&rename_lock);
93273 + read_sequnlock_excl(&mount_lock);
93274 +#endif
93275 +}
93276 +
93277 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
93278 +{
93279 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93280 + struct dentry *tmpd = dentry;
93281 +
93282 + read_seqlock_excl(&mount_lock);
93283 + write_seqlock(&rename_lock);
93284 +
93285 + while (tmpd != mnt->mnt_root) {
93286 + atomic_dec(&tmpd->chroot_refcnt);
93287 + tmpd = tmpd->d_parent;
93288 + }
93289 + atomic_dec(&tmpd->chroot_refcnt);
93290 +
93291 + write_sequnlock(&rename_lock);
93292 + read_sequnlock_excl(&mount_lock);
93293 +#endif
93294 +}
93295 +
93296 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93297 +static struct dentry *get_closest_chroot(struct dentry *dentry)
93298 +{
93299 + write_seqlock(&rename_lock);
93300 + do {
93301 + if (atomic_read(&dentry->chroot_refcnt)) {
93302 + write_sequnlock(&rename_lock);
93303 + return dentry;
93304 + }
93305 + dentry = dentry->d_parent;
93306 + } while (!IS_ROOT(dentry));
93307 + write_sequnlock(&rename_lock);
93308 + return NULL;
93309 +}
93310 +#endif
93311 +
93312 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
93313 + struct dentry *newdentry, struct vfsmount *newmnt)
93314 +{
93315 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93316 + struct dentry *chroot;
93317 +
93318 + if (unlikely(!grsec_enable_chroot_rename))
93319 + return 0;
93320 +
93321 + if (likely(!proc_is_chrooted(current) && gr_is_global_root(current_uid())))
93322 + return 0;
93323 +
93324 + chroot = get_closest_chroot(olddentry);
93325 +
93326 + if (chroot == NULL)
93327 + return 0;
93328 +
93329 + if (is_subdir(newdentry, chroot))
93330 + return 0;
93331 +
93332 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_RENAME_MSG, olddentry, oldmnt);
93333 +
93334 + return 1;
93335 +#else
93336 + return 0;
93337 +#endif
93338 +}
93339 +
93340 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path)
93341 +{
93342 +#ifdef CONFIG_GRKERNSEC
93343 + if (task_pid_nr(task) > 1 && path->dentry != init_task.fs->root.dentry &&
93344 + path->dentry != task->nsproxy->mnt_ns->root->mnt.mnt_root
93345 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93346 + && gr_init_ran
93347 +#endif
93348 + )
93349 + task->gr_is_chrooted = 1;
93350 + else {
93351 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93352 + if (task_pid_nr(task) == 1 && !gr_init_ran)
93353 + gr_init_ran = 1;
93354 +#endif
93355 + task->gr_is_chrooted = 0;
93356 + }
93357 +
93358 + task->gr_chroot_dentry = path->dentry;
93359 +#endif
93360 + return;
93361 +}
93362 +
93363 +void gr_clear_chroot_entries(struct task_struct *task)
93364 +{
93365 +#ifdef CONFIG_GRKERNSEC
93366 + task->gr_is_chrooted = 0;
93367 + task->gr_chroot_dentry = NULL;
93368 +#endif
93369 + return;
93370 +}
93371 +
93372 +int
93373 +gr_handle_chroot_unix(const pid_t pid)
93374 +{
93375 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
93376 + struct task_struct *p;
93377 +
93378 + if (unlikely(!grsec_enable_chroot_unix))
93379 + return 1;
93380 +
93381 + if (likely(!proc_is_chrooted(current)))
93382 + return 1;
93383 +
93384 + rcu_read_lock();
93385 + read_lock(&tasklist_lock);
93386 + p = find_task_by_vpid_unrestricted(pid);
93387 + if (unlikely(p && !have_same_root(current, p))) {
93388 + read_unlock(&tasklist_lock);
93389 + rcu_read_unlock();
93390 + gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
93391 + return 0;
93392 + }
93393 + read_unlock(&tasklist_lock);
93394 + rcu_read_unlock();
93395 +#endif
93396 + return 1;
93397 +}
93398 +
93399 +int
93400 +gr_handle_chroot_nice(void)
93401 +{
93402 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
93403 + if (grsec_enable_chroot_nice && proc_is_chrooted(current)) {
93404 + gr_log_noargs(GR_DONT_AUDIT, GR_NICE_CHROOT_MSG);
93405 + return -EPERM;
93406 + }
93407 +#endif
93408 + return 0;
93409 +}
93410 +
93411 +int
93412 +gr_handle_chroot_setpriority(struct task_struct *p, const int niceval)
93413 +{
93414 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
93415 + if (grsec_enable_chroot_nice && (niceval < task_nice(p))
93416 + && proc_is_chrooted(current)) {
93417 + gr_log_str_int(GR_DONT_AUDIT, GR_PRIORITY_CHROOT_MSG, p->comm, task_pid_nr(p));
93418 + return -EACCES;
93419 + }
93420 +#endif
93421 + return 0;
93422 +}
93423 +
93424 +int
93425 +gr_handle_chroot_fowner(struct pid *pid, enum pid_type type)
93426 +{
93427 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
93428 + struct task_struct *p;
93429 + int ret = 0;
93430 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || !pid)
93431 + return ret;
93432 +
93433 + read_lock(&tasklist_lock);
93434 + do_each_pid_task(pid, type, p) {
93435 + if (!have_same_root(current, p)) {
93436 + ret = 1;
93437 + goto out;
93438 + }
93439 + } while_each_pid_task(pid, type, p);
93440 +out:
93441 + read_unlock(&tasklist_lock);
93442 + return ret;
93443 +#endif
93444 + return 0;
93445 +}
93446 +
93447 +int
93448 +gr_pid_is_chrooted(struct task_struct *p)
93449 +{
93450 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
93451 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || p == NULL)
93452 + return 0;
93453 +
93454 + if ((p->exit_state & (EXIT_ZOMBIE | EXIT_DEAD)) ||
93455 + !have_same_root(current, p)) {
93456 + return 1;
93457 + }
93458 +#endif
93459 + return 0;
93460 +}
93461 +
93462 +EXPORT_SYMBOL_GPL(gr_pid_is_chrooted);
93463 +
93464 +#if defined(CONFIG_GRKERNSEC_CHROOT_DOUBLE) || defined(CONFIG_GRKERNSEC_CHROOT_FCHDIR)
93465 +int gr_is_outside_chroot(const struct dentry *u_dentry, const struct vfsmount *u_mnt)
93466 +{
93467 + struct path path, currentroot;
93468 + int ret = 0;
93469 +
93470 + path.dentry = (struct dentry *)u_dentry;
93471 + path.mnt = (struct vfsmount *)u_mnt;
93472 + get_fs_root(current->fs, &currentroot);
93473 + if (path_is_under(&path, &currentroot))
93474 + ret = 1;
93475 + path_put(&currentroot);
93476 +
93477 + return ret;
93478 +}
93479 +#endif
93480 +
93481 +int
93482 +gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt)
93483 +{
93484 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
93485 + if (!grsec_enable_chroot_fchdir)
93486 + return 1;
93487 +
93488 + if (!proc_is_chrooted(current))
93489 + return 1;
93490 + else if (!gr_is_outside_chroot(u_dentry, u_mnt)) {
93491 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_FCHDIR_MSG, u_dentry, u_mnt);
93492 + return 0;
93493 + }
93494 +#endif
93495 + return 1;
93496 +}
93497 +
93498 +int
93499 +gr_chroot_fhandle(void)
93500 +{
93501 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
93502 + if (!grsec_enable_chroot_fchdir)
93503 + return 1;
93504 +
93505 + if (!proc_is_chrooted(current))
93506 + return 1;
93507 + else {
93508 + gr_log_noargs(GR_DONT_AUDIT, GR_CHROOT_FHANDLE_MSG);
93509 + return 0;
93510 + }
93511 +#endif
93512 + return 1;
93513 +}
93514 +
93515 +int
93516 +gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
93517 + const u64 shm_createtime)
93518 +{
93519 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
93520 + struct task_struct *p;
93521 +
93522 + if (unlikely(!grsec_enable_chroot_shmat))
93523 + return 1;
93524 +
93525 + if (likely(!proc_is_chrooted(current)))
93526 + return 1;
93527 +
93528 + rcu_read_lock();
93529 + read_lock(&tasklist_lock);
93530 +
93531 + if ((p = find_task_by_vpid_unrestricted(shm_cprid))) {
93532 + if (time_before_eq64(p->start_time, shm_createtime)) {
93533 + if (have_same_root(current, p)) {
93534 + goto allow;
93535 + } else {
93536 + read_unlock(&tasklist_lock);
93537 + rcu_read_unlock();
93538 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
93539 + return 0;
93540 + }
93541 + }
93542 + /* creator exited, pid reuse, fall through to next check */
93543 + }
93544 + if ((p = find_task_by_vpid_unrestricted(shm_lapid))) {
93545 + if (unlikely(!have_same_root(current, p))) {
93546 + read_unlock(&tasklist_lock);
93547 + rcu_read_unlock();
93548 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
93549 + return 0;
93550 + }
93551 + }
93552 +
93553 +allow:
93554 + read_unlock(&tasklist_lock);
93555 + rcu_read_unlock();
93556 +#endif
93557 + return 1;
93558 +}
93559 +
93560 +void
93561 +gr_log_chroot_exec(const struct dentry *dentry, const struct vfsmount *mnt)
93562 +{
93563 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
93564 + if (grsec_enable_chroot_execlog && proc_is_chrooted(current))
93565 + gr_log_fs_generic(GR_DO_AUDIT, GR_EXEC_CHROOT_MSG, dentry, mnt);
93566 +#endif
93567 + return;
93568 +}
93569 +
93570 +int
93571 +gr_handle_chroot_mknod(const struct dentry *dentry,
93572 + const struct vfsmount *mnt, const int mode)
93573 +{
93574 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
93575 + if (grsec_enable_chroot_mknod && !S_ISFIFO(mode) && !S_ISREG(mode) &&
93576 + proc_is_chrooted(current)) {
93577 + gr_log_fs_generic(GR_DONT_AUDIT, GR_MKNOD_CHROOT_MSG, dentry, mnt);
93578 + return -EPERM;
93579 + }
93580 +#endif
93581 + return 0;
93582 +}
93583 +
93584 +int
93585 +gr_handle_chroot_mount(const struct dentry *dentry,
93586 + const struct vfsmount *mnt, const char *dev_name)
93587 +{
93588 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
93589 + if (grsec_enable_chroot_mount && proc_is_chrooted(current)) {
93590 + gr_log_str_fs(GR_DONT_AUDIT, GR_MOUNT_CHROOT_MSG, dev_name ? dev_name : "none", dentry, mnt);
93591 + return -EPERM;
93592 + }
93593 +#endif
93594 + return 0;
93595 +}
93596 +
93597 +int
93598 +gr_handle_chroot_pivot(void)
93599 +{
93600 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
93601 + if (grsec_enable_chroot_pivot && proc_is_chrooted(current)) {
93602 + gr_log_noargs(GR_DONT_AUDIT, GR_PIVOT_CHROOT_MSG);
93603 + return -EPERM;
93604 + }
93605 +#endif
93606 + return 0;
93607 +}
93608 +
93609 +int
93610 +gr_handle_chroot_chroot(const struct dentry *dentry, const struct vfsmount *mnt)
93611 +{
93612 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
93613 + if (grsec_enable_chroot_double && proc_is_chrooted(current) &&
93614 + !gr_is_outside_chroot(dentry, mnt)) {
93615 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_CHROOT_MSG, dentry, mnt);
93616 + return -EPERM;
93617 + }
93618 +#endif
93619 + return 0;
93620 +}
93621 +
93622 +extern const char *captab_log[];
93623 +extern int captab_log_entries;
93624 +
93625 +int
93626 +gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
93627 +{
93628 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93629 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93630 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93631 + if (cap_raised(chroot_caps, cap)) {
93632 + if (cap_raised(cred->cap_effective, cap) && cap < captab_log_entries) {
93633 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, task, captab_log[cap]);
93634 + }
93635 + return 0;
93636 + }
93637 + }
93638 +#endif
93639 + return 1;
93640 +}
93641 +
93642 +int
93643 +gr_chroot_is_capable(const int cap)
93644 +{
93645 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93646 + return gr_task_chroot_is_capable(current, current_cred(), cap);
93647 +#endif
93648 + return 1;
93649 +}
93650 +
93651 +int
93652 +gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap)
93653 +{
93654 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93655 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93656 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93657 + if (cap_raised(chroot_caps, cap)) {
93658 + return 0;
93659 + }
93660 + }
93661 +#endif
93662 + return 1;
93663 +}
93664 +
93665 +int
93666 +gr_chroot_is_capable_nolog(const int cap)
93667 +{
93668 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93669 + return gr_task_chroot_is_capable_nolog(current, cap);
93670 +#endif
93671 + return 1;
93672 +}
93673 +
93674 +int
93675 +gr_handle_chroot_sysctl(const int op)
93676 +{
93677 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
93678 + if (grsec_enable_chroot_sysctl && (op & MAY_WRITE) &&
93679 + proc_is_chrooted(current))
93680 + return -EACCES;
93681 +#endif
93682 + return 0;
93683 +}
93684 +
93685 +void
93686 +gr_handle_chroot_chdir(const struct path *path)
93687 +{
93688 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
93689 + if (grsec_enable_chroot_chdir)
93690 + set_fs_pwd(current->fs, path);
93691 +#endif
93692 + return;
93693 +}
93694 +
93695 +int
93696 +gr_handle_chroot_chmod(const struct dentry *dentry,
93697 + const struct vfsmount *mnt, const int mode)
93698 +{
93699 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
93700 + /* allow chmod +s on directories, but not files */
93701 + if (grsec_enable_chroot_chmod && !d_is_dir(dentry) &&
93702 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))) &&
93703 + proc_is_chrooted(current)) {
93704 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHMOD_CHROOT_MSG, dentry, mnt);
93705 + return -EPERM;
93706 + }
93707 +#endif
93708 + return 0;
93709 +}
93710 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
93711 new file mode 100644
93712 index 0000000..e723c08
93713 --- /dev/null
93714 +++ b/grsecurity/grsec_disabled.c
93715 @@ -0,0 +1,445 @@
93716 +#include <linux/kernel.h>
93717 +#include <linux/module.h>
93718 +#include <linux/sched.h>
93719 +#include <linux/file.h>
93720 +#include <linux/fs.h>
93721 +#include <linux/kdev_t.h>
93722 +#include <linux/net.h>
93723 +#include <linux/in.h>
93724 +#include <linux/ip.h>
93725 +#include <linux/skbuff.h>
93726 +#include <linux/sysctl.h>
93727 +
93728 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
93729 +void
93730 +pax_set_initial_flags(struct linux_binprm *bprm)
93731 +{
93732 + return;
93733 +}
93734 +#endif
93735 +
93736 +#ifdef CONFIG_SYSCTL
93737 +__u32
93738 +gr_handle_sysctl(const struct ctl_table * table, const int op)
93739 +{
93740 + return 0;
93741 +}
93742 +#endif
93743 +
93744 +#ifdef CONFIG_TASKSTATS
93745 +int gr_is_taskstats_denied(int pid)
93746 +{
93747 + return 0;
93748 +}
93749 +#endif
93750 +
93751 +int
93752 +gr_acl_is_enabled(void)
93753 +{
93754 + return 0;
93755 +}
93756 +
93757 +int
93758 +gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
93759 +{
93760 + return 0;
93761 +}
93762 +
93763 +void
93764 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
93765 +{
93766 + return;
93767 +}
93768 +
93769 +int
93770 +gr_handle_rawio(const struct inode *inode)
93771 +{
93772 + return 0;
93773 +}
93774 +
93775 +void
93776 +gr_acl_handle_psacct(struct task_struct *task, const long code)
93777 +{
93778 + return;
93779 +}
93780 +
93781 +int
93782 +gr_handle_ptrace(struct task_struct *task, const long request)
93783 +{
93784 + return 0;
93785 +}
93786 +
93787 +int
93788 +gr_handle_proc_ptrace(struct task_struct *task)
93789 +{
93790 + return 0;
93791 +}
93792 +
93793 +int
93794 +gr_set_acls(const int type)
93795 +{
93796 + return 0;
93797 +}
93798 +
93799 +int
93800 +gr_check_hidden_task(const struct task_struct *tsk)
93801 +{
93802 + return 0;
93803 +}
93804 +
93805 +int
93806 +gr_check_protected_task(const struct task_struct *task)
93807 +{
93808 + return 0;
93809 +}
93810 +
93811 +int
93812 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
93813 +{
93814 + return 0;
93815 +}
93816 +
93817 +void
93818 +gr_copy_label(struct task_struct *tsk)
93819 +{
93820 + return;
93821 +}
93822 +
93823 +void
93824 +gr_set_pax_flags(struct task_struct *task)
93825 +{
93826 + return;
93827 +}
93828 +
93829 +int
93830 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
93831 + const int unsafe_share)
93832 +{
93833 + return 0;
93834 +}
93835 +
93836 +void
93837 +gr_handle_delete(const u64 ino, const dev_t dev)
93838 +{
93839 + return;
93840 +}
93841 +
93842 +void
93843 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
93844 +{
93845 + return;
93846 +}
93847 +
93848 +void
93849 +gr_handle_crash(struct task_struct *task, const int sig)
93850 +{
93851 + return;
93852 +}
93853 +
93854 +int
93855 +gr_check_crash_exec(const struct file *filp)
93856 +{
93857 + return 0;
93858 +}
93859 +
93860 +int
93861 +gr_check_crash_uid(const kuid_t uid)
93862 +{
93863 + return 0;
93864 +}
93865 +
93866 +void
93867 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
93868 + struct dentry *old_dentry,
93869 + struct dentry *new_dentry,
93870 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
93871 +{
93872 + return;
93873 +}
93874 +
93875 +int
93876 +gr_search_socket(const int family, const int type, const int protocol)
93877 +{
93878 + return 1;
93879 +}
93880 +
93881 +int
93882 +gr_search_connectbind(const int mode, const struct socket *sock,
93883 + const struct sockaddr_in *addr)
93884 +{
93885 + return 0;
93886 +}
93887 +
93888 +void
93889 +gr_handle_alertkill(struct task_struct *task)
93890 +{
93891 + return;
93892 +}
93893 +
93894 +__u32
93895 +gr_acl_handle_execve(const struct dentry * dentry, const struct vfsmount * mnt)
93896 +{
93897 + return 1;
93898 +}
93899 +
93900 +__u32
93901 +gr_acl_handle_hidden_file(const struct dentry * dentry,
93902 + const struct vfsmount * mnt)
93903 +{
93904 + return 1;
93905 +}
93906 +
93907 +__u32
93908 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
93909 + int acc_mode)
93910 +{
93911 + return 1;
93912 +}
93913 +
93914 +__u32
93915 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
93916 +{
93917 + return 1;
93918 +}
93919 +
93920 +__u32
93921 +gr_acl_handle_unlink(const struct dentry * dentry, const struct vfsmount * mnt)
93922 +{
93923 + return 1;
93924 +}
93925 +
93926 +int
93927 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot,
93928 + unsigned int *vm_flags)
93929 +{
93930 + return 1;
93931 +}
93932 +
93933 +__u32
93934 +gr_acl_handle_truncate(const struct dentry * dentry,
93935 + const struct vfsmount * mnt)
93936 +{
93937 + return 1;
93938 +}
93939 +
93940 +__u32
93941 +gr_acl_handle_utime(const struct dentry * dentry, const struct vfsmount * mnt)
93942 +{
93943 + return 1;
93944 +}
93945 +
93946 +__u32
93947 +gr_acl_handle_access(const struct dentry * dentry,
93948 + const struct vfsmount * mnt, const int fmode)
93949 +{
93950 + return 1;
93951 +}
93952 +
93953 +__u32
93954 +gr_acl_handle_chmod(const struct dentry * dentry, const struct vfsmount * mnt,
93955 + umode_t *mode)
93956 +{
93957 + return 1;
93958 +}
93959 +
93960 +__u32
93961 +gr_acl_handle_chown(const struct dentry * dentry, const struct vfsmount * mnt)
93962 +{
93963 + return 1;
93964 +}
93965 +
93966 +__u32
93967 +gr_acl_handle_setxattr(const struct dentry * dentry, const struct vfsmount * mnt)
93968 +{
93969 + return 1;
93970 +}
93971 +
93972 +__u32
93973 +gr_acl_handle_removexattr(const struct dentry * dentry, const struct vfsmount * mnt)
93974 +{
93975 + return 1;
93976 +}
93977 +
93978 +void
93979 +grsecurity_init(void)
93980 +{
93981 + return;
93982 +}
93983 +
93984 +umode_t gr_acl_umask(void)
93985 +{
93986 + return 0;
93987 +}
93988 +
93989 +__u32
93990 +gr_acl_handle_mknod(const struct dentry * new_dentry,
93991 + const struct dentry * parent_dentry,
93992 + const struct vfsmount * parent_mnt,
93993 + const int mode)
93994 +{
93995 + return 1;
93996 +}
93997 +
93998 +__u32
93999 +gr_acl_handle_mkdir(const struct dentry * new_dentry,
94000 + const struct dentry * parent_dentry,
94001 + const struct vfsmount * parent_mnt)
94002 +{
94003 + return 1;
94004 +}
94005 +
94006 +__u32
94007 +gr_acl_handle_symlink(const struct dentry * new_dentry,
94008 + const struct dentry * parent_dentry,
94009 + const struct vfsmount * parent_mnt, const struct filename *from)
94010 +{
94011 + return 1;
94012 +}
94013 +
94014 +__u32
94015 +gr_acl_handle_link(const struct dentry * new_dentry,
94016 + const struct dentry * parent_dentry,
94017 + const struct vfsmount * parent_mnt,
94018 + const struct dentry * old_dentry,
94019 + const struct vfsmount * old_mnt, const struct filename *to)
94020 +{
94021 + return 1;
94022 +}
94023 +
94024 +int
94025 +gr_acl_handle_rename(const struct dentry *new_dentry,
94026 + const struct dentry *parent_dentry,
94027 + const struct vfsmount *parent_mnt,
94028 + const struct dentry *old_dentry,
94029 + const struct inode *old_parent_inode,
94030 + const struct vfsmount *old_mnt, const struct filename *newname,
94031 + unsigned int flags)
94032 +{
94033 + return 0;
94034 +}
94035 +
94036 +int
94037 +gr_acl_handle_filldir(const struct file *file, const char *name,
94038 + const int namelen, const u64 ino)
94039 +{
94040 + return 1;
94041 +}
94042 +
94043 +int
94044 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
94045 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
94046 +{
94047 + return 1;
94048 +}
94049 +
94050 +int
94051 +gr_search_bind(const struct socket *sock, const struct sockaddr_in *addr)
94052 +{
94053 + return 0;
94054 +}
94055 +
94056 +int
94057 +gr_search_accept(const struct socket *sock)
94058 +{
94059 + return 0;
94060 +}
94061 +
94062 +int
94063 +gr_search_listen(const struct socket *sock)
94064 +{
94065 + return 0;
94066 +}
94067 +
94068 +int
94069 +gr_search_connect(const struct socket *sock, const struct sockaddr_in *addr)
94070 +{
94071 + return 0;
94072 +}
94073 +
94074 +__u32
94075 +gr_acl_handle_unix(const struct dentry * dentry, const struct vfsmount * mnt)
94076 +{
94077 + return 1;
94078 +}
94079 +
94080 +__u32
94081 +gr_acl_handle_creat(const struct dentry * dentry,
94082 + const struct dentry * p_dentry,
94083 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
94084 + const int imode)
94085 +{
94086 + return 1;
94087 +}
94088 +
94089 +void
94090 +gr_acl_handle_exit(void)
94091 +{
94092 + return;
94093 +}
94094 +
94095 +int
94096 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
94097 +{
94098 + return 1;
94099 +}
94100 +
94101 +void
94102 +gr_set_role_label(const kuid_t uid, const kgid_t gid)
94103 +{
94104 + return;
94105 +}
94106 +
94107 +int
94108 +gr_acl_handle_procpidmem(const struct task_struct *task)
94109 +{
94110 + return 0;
94111 +}
94112 +
94113 +int
94114 +gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb)
94115 +{
94116 + return 0;
94117 +}
94118 +
94119 +int
94120 +gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr)
94121 +{
94122 + return 0;
94123 +}
94124 +
94125 +int
94126 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
94127 +{
94128 + return 0;
94129 +}
94130 +
94131 +int
94132 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
94133 +{
94134 + return 0;
94135 +}
94136 +
94137 +int gr_acl_enable_at_secure(void)
94138 +{
94139 + return 0;
94140 +}
94141 +
94142 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
94143 +{
94144 + return d_backing_inode(dentry)->i_sb->s_dev;
94145 +}
94146 +
94147 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
94148 +{
94149 + return d_backing_inode(dentry)->i_ino;
94150 +}
94151 +
94152 +void gr_put_exec_file(struct task_struct *task)
94153 +{
94154 + return;
94155 +}
94156 +
94157 +#ifdef CONFIG_SECURITY
94158 +EXPORT_SYMBOL_GPL(gr_check_user_change);
94159 +EXPORT_SYMBOL_GPL(gr_check_group_change);
94160 +#endif
94161 diff --git a/grsecurity/grsec_exec.c b/grsecurity/grsec_exec.c
94162 new file mode 100644
94163 index 0000000..fb7531e
94164 --- /dev/null
94165 +++ b/grsecurity/grsec_exec.c
94166 @@ -0,0 +1,189 @@
94167 +#include <linux/kernel.h>
94168 +#include <linux/sched.h>
94169 +#include <linux/file.h>
94170 +#include <linux/binfmts.h>
94171 +#include <linux/fs.h>
94172 +#include <linux/types.h>
94173 +#include <linux/grdefs.h>
94174 +#include <linux/grsecurity.h>
94175 +#include <linux/grinternal.h>
94176 +#include <linux/capability.h>
94177 +#include <linux/module.h>
94178 +#include <linux/compat.h>
94179 +
94180 +#include <asm/uaccess.h>
94181 +
94182 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94183 +static char gr_exec_arg_buf[132];
94184 +static DEFINE_MUTEX(gr_exec_arg_mutex);
94185 +#endif
94186 +
94187 +struct user_arg_ptr {
94188 +#ifdef CONFIG_COMPAT
94189 + bool is_compat;
94190 +#endif
94191 + union {
94192 + const char __user *const __user *native;
94193 +#ifdef CONFIG_COMPAT
94194 + const compat_uptr_t __user *compat;
94195 +#endif
94196 + } ptr;
94197 +};
94198 +
94199 +extern const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr);
94200 +
94201 +void
94202 +gr_handle_exec_args(struct linux_binprm *bprm, struct user_arg_ptr argv)
94203 +{
94204 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94205 + char *grarg = gr_exec_arg_buf;
94206 + unsigned int i, x, execlen = 0;
94207 + char c;
94208 +
94209 + if (!((grsec_enable_execlog && grsec_enable_group &&
94210 + in_group_p(grsec_audit_gid))
94211 + || (grsec_enable_execlog && !grsec_enable_group)))
94212 + return;
94213 +
94214 + mutex_lock(&gr_exec_arg_mutex);
94215 + memset(grarg, 0, sizeof(gr_exec_arg_buf));
94216 +
94217 + for (i = 0; i < bprm->argc && execlen < 128; i++) {
94218 + const char __user *p;
94219 + unsigned int len;
94220 +
94221 + p = get_user_arg_ptr(argv, i);
94222 + if (IS_ERR(p))
94223 + goto log;
94224 +
94225 + len = strnlen_user(p, 128 - execlen);
94226 + if (len > 128 - execlen)
94227 + len = 128 - execlen;
94228 + else if (len > 0)
94229 + len--;
94230 + if (copy_from_user(grarg + execlen, p, len))
94231 + goto log;
94232 +
94233 + /* rewrite unprintable characters */
94234 + for (x = 0; x < len; x++) {
94235 + c = *(grarg + execlen + x);
94236 + if (c < 32 || c > 126)
94237 + *(grarg + execlen + x) = ' ';
94238 + }
94239 +
94240 + execlen += len;
94241 + *(grarg + execlen) = ' ';
94242 + *(grarg + execlen + 1) = '\0';
94243 + execlen++;
94244 + }
94245 +
94246 + log:
94247 + gr_log_fs_str(GR_DO_AUDIT, GR_EXEC_AUDIT_MSG, bprm->file->f_path.dentry,
94248 + bprm->file->f_path.mnt, grarg);
94249 + mutex_unlock(&gr_exec_arg_mutex);
94250 +#endif
94251 + return;
94252 +}
94253 +
94254 +#ifdef CONFIG_GRKERNSEC
94255 +extern int gr_acl_is_capable(const int cap);
94256 +extern int gr_acl_is_capable_nolog(const int cap);
94257 +extern int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
94258 +extern int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap);
94259 +extern int gr_chroot_is_capable(const int cap);
94260 +extern int gr_chroot_is_capable_nolog(const int cap);
94261 +extern int gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
94262 +extern int gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap);
94263 +#endif
94264 +
94265 +const char *captab_log[] = {
94266 + "CAP_CHOWN",
94267 + "CAP_DAC_OVERRIDE",
94268 + "CAP_DAC_READ_SEARCH",
94269 + "CAP_FOWNER",
94270 + "CAP_FSETID",
94271 + "CAP_KILL",
94272 + "CAP_SETGID",
94273 + "CAP_SETUID",
94274 + "CAP_SETPCAP",
94275 + "CAP_LINUX_IMMUTABLE",
94276 + "CAP_NET_BIND_SERVICE",
94277 + "CAP_NET_BROADCAST",
94278 + "CAP_NET_ADMIN",
94279 + "CAP_NET_RAW",
94280 + "CAP_IPC_LOCK",
94281 + "CAP_IPC_OWNER",
94282 + "CAP_SYS_MODULE",
94283 + "CAP_SYS_RAWIO",
94284 + "CAP_SYS_CHROOT",
94285 + "CAP_SYS_PTRACE",
94286 + "CAP_SYS_PACCT",
94287 + "CAP_SYS_ADMIN",
94288 + "CAP_SYS_BOOT",
94289 + "CAP_SYS_NICE",
94290 + "CAP_SYS_RESOURCE",
94291 + "CAP_SYS_TIME",
94292 + "CAP_SYS_TTY_CONFIG",
94293 + "CAP_MKNOD",
94294 + "CAP_LEASE",
94295 + "CAP_AUDIT_WRITE",
94296 + "CAP_AUDIT_CONTROL",
94297 + "CAP_SETFCAP",
94298 + "CAP_MAC_OVERRIDE",
94299 + "CAP_MAC_ADMIN",
94300 + "CAP_SYSLOG",
94301 + "CAP_WAKE_ALARM",
94302 + "CAP_BLOCK_SUSPEND",
94303 + "CAP_AUDIT_READ"
94304 +};
94305 +
94306 +int captab_log_entries = sizeof(captab_log)/sizeof(captab_log[0]);
94307 +
94308 +int gr_is_capable(const int cap)
94309 +{
94310 +#ifdef CONFIG_GRKERNSEC
94311 + if (gr_acl_is_capable(cap) && gr_chroot_is_capable(cap))
94312 + return 1;
94313 + return 0;
94314 +#else
94315 + return 1;
94316 +#endif
94317 +}
94318 +
94319 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
94320 +{
94321 +#ifdef CONFIG_GRKERNSEC
94322 + if (gr_task_acl_is_capable(task, cred, cap) && gr_task_chroot_is_capable(task, cred, cap))
94323 + return 1;
94324 + return 0;
94325 +#else
94326 + return 1;
94327 +#endif
94328 +}
94329 +
94330 +int gr_is_capable_nolog(const int cap)
94331 +{
94332 +#ifdef CONFIG_GRKERNSEC
94333 + if (gr_acl_is_capable_nolog(cap) && gr_chroot_is_capable_nolog(cap))
94334 + return 1;
94335 + return 0;
94336 +#else
94337 + return 1;
94338 +#endif
94339 +}
94340 +
94341 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap)
94342 +{
94343 +#ifdef CONFIG_GRKERNSEC
94344 + if (gr_task_acl_is_capable_nolog(task, cap) && gr_task_chroot_is_capable_nolog(task, cap))
94345 + return 1;
94346 + return 0;
94347 +#else
94348 + return 1;
94349 +#endif
94350 +}
94351 +
94352 +EXPORT_SYMBOL_GPL(gr_is_capable);
94353 +EXPORT_SYMBOL_GPL(gr_is_capable_nolog);
94354 +EXPORT_SYMBOL_GPL(gr_task_is_capable);
94355 +EXPORT_SYMBOL_GPL(gr_task_is_capable_nolog);
94356 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
94357 new file mode 100644
94358 index 0000000..cdec49b
94359 --- /dev/null
94360 +++ b/grsecurity/grsec_fifo.c
94361 @@ -0,0 +1,26 @@
94362 +#include <linux/kernel.h>
94363 +#include <linux/sched.h>
94364 +#include <linux/fs.h>
94365 +#include <linux/file.h>
94366 +#include <linux/grinternal.h>
94367 +
94368 +int
94369 +gr_handle_fifo(const struct dentry *dentry, const struct vfsmount *mnt,
94370 + const struct dentry *dir, const int flag, const int acc_mode)
94371 +{
94372 +#ifdef CONFIG_GRKERNSEC_FIFO
94373 + const struct cred *cred = current_cred();
94374 + struct inode *inode = d_backing_inode(dentry);
94375 + struct inode *dir_inode = d_backing_inode(dir);
94376 +
94377 + if (grsec_enable_fifo && S_ISFIFO(inode->i_mode) &&
94378 + !(flag & O_EXCL) && (dir_inode->i_mode & S_ISVTX) &&
94379 + !uid_eq(inode->i_uid, dir_inode->i_uid) &&
94380 + !uid_eq(cred->fsuid, inode->i_uid)) {
94381 + if (!inode_permission(inode, acc_mode))
94382 + gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
94383 + return -EACCES;
94384 + }
94385 +#endif
94386 + return 0;
94387 +}
94388 diff --git a/grsecurity/grsec_fork.c b/grsecurity/grsec_fork.c
94389 new file mode 100644
94390 index 0000000..8ca18bf
94391 --- /dev/null
94392 +++ b/grsecurity/grsec_fork.c
94393 @@ -0,0 +1,23 @@
94394 +#include <linux/kernel.h>
94395 +#include <linux/sched.h>
94396 +#include <linux/grsecurity.h>
94397 +#include <linux/grinternal.h>
94398 +#include <linux/errno.h>
94399 +
94400 +void
94401 +gr_log_forkfail(const int retval)
94402 +{
94403 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
94404 + if (grsec_enable_forkfail && (retval == -EAGAIN || retval == -ENOMEM)) {
94405 + switch (retval) {
94406 + case -EAGAIN:
94407 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "EAGAIN");
94408 + break;
94409 + case -ENOMEM:
94410 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "ENOMEM");
94411 + break;
94412 + }
94413 + }
94414 +#endif
94415 + return;
94416 +}
94417 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
94418 new file mode 100644
94419 index 0000000..a364c58
94420 --- /dev/null
94421 +++ b/grsecurity/grsec_init.c
94422 @@ -0,0 +1,290 @@
94423 +#include <linux/kernel.h>
94424 +#include <linux/sched.h>
94425 +#include <linux/mm.h>
94426 +#include <linux/gracl.h>
94427 +#include <linux/slab.h>
94428 +#include <linux/vmalloc.h>
94429 +#include <linux/percpu.h>
94430 +#include <linux/module.h>
94431 +
94432 +int grsec_enable_ptrace_readexec __read_only;
94433 +int grsec_enable_setxid __read_only;
94434 +int grsec_enable_symlinkown __read_only;
94435 +kgid_t grsec_symlinkown_gid __read_only;
94436 +int grsec_enable_brute __read_only;
94437 +int grsec_enable_link __read_only;
94438 +int grsec_enable_dmesg __read_only;
94439 +int grsec_enable_harden_ptrace __read_only;
94440 +int grsec_enable_harden_ipc __read_only;
94441 +int grsec_enable_fifo __read_only;
94442 +int grsec_enable_execlog __read_only;
94443 +int grsec_enable_signal __read_only;
94444 +int grsec_enable_forkfail __read_only;
94445 +int grsec_enable_audit_ptrace __read_only;
94446 +int grsec_enable_time __read_only;
94447 +int grsec_enable_group __read_only;
94448 +kgid_t grsec_audit_gid __read_only;
94449 +int grsec_enable_chdir __read_only;
94450 +int grsec_enable_mount __read_only;
94451 +int grsec_enable_rofs __read_only;
94452 +int grsec_deny_new_usb __read_only;
94453 +int grsec_enable_chroot_findtask __read_only;
94454 +int grsec_enable_chroot_mount __read_only;
94455 +int grsec_enable_chroot_shmat __read_only;
94456 +int grsec_enable_chroot_fchdir __read_only;
94457 +int grsec_enable_chroot_double __read_only;
94458 +int grsec_enable_chroot_pivot __read_only;
94459 +int grsec_enable_chroot_chdir __read_only;
94460 +int grsec_enable_chroot_chmod __read_only;
94461 +int grsec_enable_chroot_mknod __read_only;
94462 +int grsec_enable_chroot_nice __read_only;
94463 +int grsec_enable_chroot_execlog __read_only;
94464 +int grsec_enable_chroot_caps __read_only;
94465 +int grsec_enable_chroot_rename __read_only;
94466 +int grsec_enable_chroot_sysctl __read_only;
94467 +int grsec_enable_chroot_unix __read_only;
94468 +int grsec_enable_tpe __read_only;
94469 +kgid_t grsec_tpe_gid __read_only;
94470 +int grsec_enable_blackhole __read_only;
94471 +#ifdef CONFIG_IPV6_MODULE
94472 +EXPORT_SYMBOL_GPL(grsec_enable_blackhole);
94473 +#endif
94474 +int grsec_lastack_retries __read_only;
94475 +int grsec_enable_tpe_all __read_only;
94476 +int grsec_enable_tpe_invert __read_only;
94477 +int grsec_enable_socket_all __read_only;
94478 +kgid_t grsec_socket_all_gid __read_only;
94479 +int grsec_enable_socket_client __read_only;
94480 +kgid_t grsec_socket_client_gid __read_only;
94481 +int grsec_enable_socket_server __read_only;
94482 +kgid_t grsec_socket_server_gid __read_only;
94483 +int grsec_resource_logging __read_only;
94484 +int grsec_disable_privio __read_only;
94485 +int grsec_enable_log_rwxmaps __read_only;
94486 +int grsec_lock __read_only;
94487 +
94488 +DEFINE_SPINLOCK(grsec_alert_lock);
94489 +unsigned long grsec_alert_wtime = 0;
94490 +unsigned long grsec_alert_fyet = 0;
94491 +
94492 +DEFINE_SPINLOCK(grsec_audit_lock);
94493 +
94494 +DEFINE_RWLOCK(grsec_exec_file_lock);
94495 +
94496 +char *gr_shared_page[4];
94497 +
94498 +char *gr_alert_log_fmt;
94499 +char *gr_audit_log_fmt;
94500 +char *gr_alert_log_buf;
94501 +char *gr_audit_log_buf;
94502 +
94503 +extern struct gr_arg *gr_usermode;
94504 +extern unsigned char *gr_system_salt;
94505 +extern unsigned char *gr_system_sum;
94506 +
94507 +void __init
94508 +grsecurity_init(void)
94509 +{
94510 + int j;
94511 + /* create the per-cpu shared pages */
94512 +
94513 +#ifdef CONFIG_X86
94514 + memset((char *)(0x41a + PAGE_OFFSET), 0, 36);
94515 +#endif
94516 +
94517 + for (j = 0; j < 4; j++) {
94518 + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE, __alignof__(unsigned long long));
94519 + if (gr_shared_page[j] == NULL) {
94520 + panic("Unable to allocate grsecurity shared page");
94521 + return;
94522 + }
94523 + }
94524 +
94525 + /* allocate log buffers */
94526 + gr_alert_log_fmt = kmalloc(512, GFP_KERNEL);
94527 + if (!gr_alert_log_fmt) {
94528 + panic("Unable to allocate grsecurity alert log format buffer");
94529 + return;
94530 + }
94531 + gr_audit_log_fmt = kmalloc(512, GFP_KERNEL);
94532 + if (!gr_audit_log_fmt) {
94533 + panic("Unable to allocate grsecurity audit log format buffer");
94534 + return;
94535 + }
94536 + gr_alert_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
94537 + if (!gr_alert_log_buf) {
94538 + panic("Unable to allocate grsecurity alert log buffer");
94539 + return;
94540 + }
94541 + gr_audit_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
94542 + if (!gr_audit_log_buf) {
94543 + panic("Unable to allocate grsecurity audit log buffer");
94544 + return;
94545 + }
94546 +
94547 + /* allocate memory for authentication structure */
94548 + gr_usermode = kmalloc(sizeof(struct gr_arg), GFP_KERNEL);
94549 + gr_system_salt = kmalloc(GR_SALT_LEN, GFP_KERNEL);
94550 + gr_system_sum = kmalloc(GR_SHA_LEN, GFP_KERNEL);
94551 +
94552 + if (!gr_usermode || !gr_system_salt || !gr_system_sum) {
94553 + panic("Unable to allocate grsecurity authentication structure");
94554 + return;
94555 + }
94556 +
94557 +#ifdef CONFIG_GRKERNSEC_IO
94558 +#if !defined(CONFIG_GRKERNSEC_SYSCTL_DISTRO)
94559 + grsec_disable_privio = 1;
94560 +#elif defined(CONFIG_GRKERNSEC_SYSCTL_ON)
94561 + grsec_disable_privio = 1;
94562 +#else
94563 + grsec_disable_privio = 0;
94564 +#endif
94565 +#endif
94566 +
94567 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
94568 + /* for backward compatibility, tpe_invert always defaults to on if
94569 + enabled in the kernel
94570 + */
94571 + grsec_enable_tpe_invert = 1;
94572 +#endif
94573 +
94574 +#if !defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_SYSCTL_ON)
94575 +#ifndef CONFIG_GRKERNSEC_SYSCTL
94576 + grsec_lock = 1;
94577 +#endif
94578 +
94579 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94580 + grsec_enable_log_rwxmaps = 1;
94581 +#endif
94582 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
94583 + grsec_enable_group = 1;
94584 + grsec_audit_gid = KGIDT_INIT(CONFIG_GRKERNSEC_AUDIT_GID);
94585 +#endif
94586 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
94587 + grsec_enable_ptrace_readexec = 1;
94588 +#endif
94589 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
94590 + grsec_enable_chdir = 1;
94591 +#endif
94592 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
94593 + grsec_enable_harden_ptrace = 1;
94594 +#endif
94595 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94596 + grsec_enable_harden_ipc = 1;
94597 +#endif
94598 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94599 + grsec_enable_mount = 1;
94600 +#endif
94601 +#ifdef CONFIG_GRKERNSEC_LINK
94602 + grsec_enable_link = 1;
94603 +#endif
94604 +#ifdef CONFIG_GRKERNSEC_BRUTE
94605 + grsec_enable_brute = 1;
94606 +#endif
94607 +#ifdef CONFIG_GRKERNSEC_DMESG
94608 + grsec_enable_dmesg = 1;
94609 +#endif
94610 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
94611 + grsec_enable_blackhole = 1;
94612 + grsec_lastack_retries = 4;
94613 +#endif
94614 +#ifdef CONFIG_GRKERNSEC_FIFO
94615 + grsec_enable_fifo = 1;
94616 +#endif
94617 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94618 + grsec_enable_execlog = 1;
94619 +#endif
94620 +#ifdef CONFIG_GRKERNSEC_SETXID
94621 + grsec_enable_setxid = 1;
94622 +#endif
94623 +#ifdef CONFIG_GRKERNSEC_SIGNAL
94624 + grsec_enable_signal = 1;
94625 +#endif
94626 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
94627 + grsec_enable_forkfail = 1;
94628 +#endif
94629 +#ifdef CONFIG_GRKERNSEC_TIME
94630 + grsec_enable_time = 1;
94631 +#endif
94632 +#ifdef CONFIG_GRKERNSEC_RESLOG
94633 + grsec_resource_logging = 1;
94634 +#endif
94635 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
94636 + grsec_enable_chroot_findtask = 1;
94637 +#endif
94638 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
94639 + grsec_enable_chroot_unix = 1;
94640 +#endif
94641 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
94642 + grsec_enable_chroot_mount = 1;
94643 +#endif
94644 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
94645 + grsec_enable_chroot_fchdir = 1;
94646 +#endif
94647 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
94648 + grsec_enable_chroot_shmat = 1;
94649 +#endif
94650 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
94651 + grsec_enable_audit_ptrace = 1;
94652 +#endif
94653 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
94654 + grsec_enable_chroot_double = 1;
94655 +#endif
94656 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
94657 + grsec_enable_chroot_pivot = 1;
94658 +#endif
94659 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
94660 + grsec_enable_chroot_chdir = 1;
94661 +#endif
94662 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
94663 + grsec_enable_chroot_chmod = 1;
94664 +#endif
94665 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
94666 + grsec_enable_chroot_mknod = 1;
94667 +#endif
94668 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
94669 + grsec_enable_chroot_nice = 1;
94670 +#endif
94671 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
94672 + grsec_enable_chroot_execlog = 1;
94673 +#endif
94674 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
94675 + grsec_enable_chroot_caps = 1;
94676 +#endif
94677 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
94678 + grsec_enable_chroot_rename = 1;
94679 +#endif
94680 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
94681 + grsec_enable_chroot_sysctl = 1;
94682 +#endif
94683 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94684 + grsec_enable_symlinkown = 1;
94685 + grsec_symlinkown_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SYMLINKOWN_GID);
94686 +#endif
94687 +#ifdef CONFIG_GRKERNSEC_TPE
94688 + grsec_enable_tpe = 1;
94689 + grsec_tpe_gid = KGIDT_INIT(CONFIG_GRKERNSEC_TPE_GID);
94690 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
94691 + grsec_enable_tpe_all = 1;
94692 +#endif
94693 +#endif
94694 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
94695 + grsec_enable_socket_all = 1;
94696 + grsec_socket_all_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_ALL_GID);
94697 +#endif
94698 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
94699 + grsec_enable_socket_client = 1;
94700 + grsec_socket_client_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_CLIENT_GID);
94701 +#endif
94702 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
94703 + grsec_enable_socket_server = 1;
94704 + grsec_socket_server_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_SERVER_GID);
94705 +#endif
94706 +#endif
94707 +#ifdef CONFIG_GRKERNSEC_DENYUSB_FORCE
94708 + grsec_deny_new_usb = 1;
94709 +#endif
94710 +
94711 + return;
94712 +}
94713 diff --git a/grsecurity/grsec_ipc.c b/grsecurity/grsec_ipc.c
94714 new file mode 100644
94715 index 0000000..1773300
94716 --- /dev/null
94717 +++ b/grsecurity/grsec_ipc.c
94718 @@ -0,0 +1,48 @@
94719 +#include <linux/kernel.h>
94720 +#include <linux/mm.h>
94721 +#include <linux/sched.h>
94722 +#include <linux/file.h>
94723 +#include <linux/ipc.h>
94724 +#include <linux/ipc_namespace.h>
94725 +#include <linux/grsecurity.h>
94726 +#include <linux/grinternal.h>
94727 +
94728 +int
94729 +gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode)
94730 +{
94731 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94732 + int write;
94733 + int orig_granted_mode;
94734 + kuid_t euid;
94735 + kgid_t egid;
94736 +
94737 + if (!grsec_enable_harden_ipc)
94738 + return 1;
94739 +
94740 + euid = current_euid();
94741 + egid = current_egid();
94742 +
94743 + write = requested_mode & 00002;
94744 + orig_granted_mode = ipcp->mode;
94745 +
94746 + if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid))
94747 + orig_granted_mode >>= 6;
94748 + else {
94749 + /* if likely wrong permissions, lock to user */
94750 + if (orig_granted_mode & 0007)
94751 + orig_granted_mode = 0;
94752 + /* otherwise do a egid-only check */
94753 + else if (gid_eq(egid, ipcp->cgid) || gid_eq(egid, ipcp->gid))
94754 + orig_granted_mode >>= 3;
94755 + /* otherwise, no access */
94756 + else
94757 + orig_granted_mode = 0;
94758 + }
94759 + if (!(requested_mode & ~granted_mode & 0007) && (requested_mode & ~orig_granted_mode & 0007) &&
94760 + !ns_capable_nolog(ns->user_ns, CAP_IPC_OWNER)) {
94761 + gr_log_str_int(GR_DONT_AUDIT, GR_IPC_DENIED_MSG, write ? "write" : "read", GR_GLOBAL_UID(ipcp->cuid));
94762 + return 0;
94763 + }
94764 +#endif
94765 + return 1;
94766 +}
94767 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
94768 new file mode 100644
94769 index 0000000..84c44a0
94770 --- /dev/null
94771 +++ b/grsecurity/grsec_link.c
94772 @@ -0,0 +1,65 @@
94773 +#include <linux/kernel.h>
94774 +#include <linux/sched.h>
94775 +#include <linux/fs.h>
94776 +#include <linux/file.h>
94777 +#include <linux/grinternal.h>
94778 +
94779 +int gr_get_symlinkown_enabled(void)
94780 +{
94781 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94782 + if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid))
94783 + return 1;
94784 +#endif
94785 + return 0;
94786 +}
94787 +
94788 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
94789 +{
94790 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94791 + const struct inode *link_inode = d_backing_inode(link->dentry);
94792 +
94793 + if (target && !uid_eq(link_inode->i_uid, target->i_uid)) {
94794 + gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINKOWNER_MSG, link->dentry, link->mnt, GR_GLOBAL_UID(link_inode->i_uid), GR_GLOBAL_UID(target->i_uid));
94795 + return 1;
94796 + }
94797 +#endif
94798 + return 0;
94799 +}
94800 +
94801 +int
94802 +gr_handle_follow_link(const struct dentry *dentry, const struct vfsmount *mnt)
94803 +{
94804 +#ifdef CONFIG_GRKERNSEC_LINK
94805 + struct inode *inode = d_backing_inode(dentry);
94806 + struct inode *parent = d_backing_inode(dentry->d_parent);
94807 + const struct cred *cred = current_cred();
94808 +
94809 + if (grsec_enable_link && d_is_symlink(dentry) &&
94810 + (parent->i_mode & S_ISVTX) && !uid_eq(parent->i_uid, inode->i_uid) &&
94811 + (parent->i_mode & S_IWOTH) && !uid_eq(cred->fsuid, inode->i_uid)) {
94812 + gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINK_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
94813 + return -EACCES;
94814 + }
94815 +#endif
94816 + return 0;
94817 +}
94818 +
94819 +int
94820 +gr_handle_hardlink(const struct dentry *dentry,
94821 + const struct vfsmount *mnt,
94822 + const struct filename *to)
94823 +{
94824 +#ifdef CONFIG_GRKERNSEC_LINK
94825 + struct inode *inode = d_backing_inode(dentry);
94826 + const struct cred *cred = current_cred();
94827 +
94828 + if (grsec_enable_link && !uid_eq(cred->fsuid, inode->i_uid) &&
94829 + (!d_is_reg(dentry) || is_privileged_binary(dentry) ||
94830 + (inode_permission(inode, MAY_READ | MAY_WRITE))) &&
94831 + !capable(CAP_FOWNER) && gr_is_global_nonroot(cred->uid)) {
94832 + gr_log_fs_int2_str(GR_DONT_AUDIT, GR_HARDLINK_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid), to->name);
94833 + return -EPERM;
94834 + }
94835 +#endif
94836 + return 0;
94837 +}
94838 diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c
94839 new file mode 100644
94840 index 0000000..a24b338
94841 --- /dev/null
94842 +++ b/grsecurity/grsec_log.c
94843 @@ -0,0 +1,340 @@
94844 +#include <linux/kernel.h>
94845 +#include <linux/sched.h>
94846 +#include <linux/file.h>
94847 +#include <linux/tty.h>
94848 +#include <linux/fs.h>
94849 +#include <linux/mm.h>
94850 +#include <linux/grinternal.h>
94851 +
94852 +#ifdef CONFIG_TREE_PREEMPT_RCU
94853 +#define DISABLE_PREEMPT() preempt_disable()
94854 +#define ENABLE_PREEMPT() preempt_enable()
94855 +#else
94856 +#define DISABLE_PREEMPT()
94857 +#define ENABLE_PREEMPT()
94858 +#endif
94859 +
94860 +#define BEGIN_LOCKS(x) \
94861 + DISABLE_PREEMPT(); \
94862 + rcu_read_lock(); \
94863 + read_lock(&tasklist_lock); \
94864 + read_lock(&grsec_exec_file_lock); \
94865 + if (x != GR_DO_AUDIT) \
94866 + spin_lock(&grsec_alert_lock); \
94867 + else \
94868 + spin_lock(&grsec_audit_lock)
94869 +
94870 +#define END_LOCKS(x) \
94871 + if (x != GR_DO_AUDIT) \
94872 + spin_unlock(&grsec_alert_lock); \
94873 + else \
94874 + spin_unlock(&grsec_audit_lock); \
94875 + read_unlock(&grsec_exec_file_lock); \
94876 + read_unlock(&tasklist_lock); \
94877 + rcu_read_unlock(); \
94878 + ENABLE_PREEMPT(); \
94879 + if (x == GR_DONT_AUDIT) \
94880 + gr_handle_alertkill(current)
94881 +
94882 +enum {
94883 + FLOODING,
94884 + NO_FLOODING
94885 +};
94886 +
94887 +extern char *gr_alert_log_fmt;
94888 +extern char *gr_audit_log_fmt;
94889 +extern char *gr_alert_log_buf;
94890 +extern char *gr_audit_log_buf;
94891 +
94892 +static int gr_log_start(int audit)
94893 +{
94894 + char *loglevel = (audit == GR_DO_AUDIT) ? KERN_INFO : KERN_ALERT;
94895 + char *fmt = (audit == GR_DO_AUDIT) ? gr_audit_log_fmt : gr_alert_log_fmt;
94896 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94897 +#if (CONFIG_GRKERNSEC_FLOODTIME > 0 && CONFIG_GRKERNSEC_FLOODBURST > 0)
94898 + unsigned long curr_secs = get_seconds();
94899 +
94900 + if (audit == GR_DO_AUDIT)
94901 + goto set_fmt;
94902 +
94903 + if (!grsec_alert_wtime || time_after(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)) {
94904 + grsec_alert_wtime = curr_secs;
94905 + grsec_alert_fyet = 0;
94906 + } else if (time_before_eq(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)
94907 + && (grsec_alert_fyet < CONFIG_GRKERNSEC_FLOODBURST)) {
94908 + grsec_alert_fyet++;
94909 + } else if (grsec_alert_fyet == CONFIG_GRKERNSEC_FLOODBURST) {
94910 + grsec_alert_wtime = curr_secs;
94911 + grsec_alert_fyet++;
94912 + printk(KERN_ALERT "grsec: more alerts, logging disabled for %d seconds\n", CONFIG_GRKERNSEC_FLOODTIME);
94913 + return FLOODING;
94914 + }
94915 + else return FLOODING;
94916 +
94917 +set_fmt:
94918 +#endif
94919 + memset(buf, 0, PAGE_SIZE);
94920 + if (current->signal->curr_ip && gr_acl_is_enabled()) {
94921 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: (%.64s:%c:%.950s) ");
94922 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
94923 + } else if (current->signal->curr_ip) {
94924 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: ");
94925 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip);
94926 + } else if (gr_acl_is_enabled()) {
94927 + sprintf(fmt, "%s%s", loglevel, "grsec: (%.64s:%c:%.950s) ");
94928 + snprintf(buf, PAGE_SIZE - 1, fmt, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
94929 + } else {
94930 + sprintf(fmt, "%s%s", loglevel, "grsec: ");
94931 + strcpy(buf, fmt);
94932 + }
94933 +
94934 + return NO_FLOODING;
94935 +}
94936 +
94937 +static void gr_log_middle(int audit, const char *msg, va_list ap)
94938 + __attribute__ ((format (printf, 2, 0)));
94939 +
94940 +static void gr_log_middle(int audit, const char *msg, va_list ap)
94941 +{
94942 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94943 + unsigned int len = strlen(buf);
94944 +
94945 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
94946 +
94947 + return;
94948 +}
94949 +
94950 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
94951 + __attribute__ ((format (printf, 2, 3)));
94952 +
94953 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
94954 +{
94955 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94956 + unsigned int len = strlen(buf);
94957 + va_list ap;
94958 +
94959 + va_start(ap, msg);
94960 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
94961 + va_end(ap);
94962 +
94963 + return;
94964 +}
94965 +
94966 +static void gr_log_end(int audit, int append_default)
94967 +{
94968 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94969 + if (append_default) {
94970 + struct task_struct *task = current;
94971 + struct task_struct *parent = task->real_parent;
94972 + const struct cred *cred = __task_cred(task);
94973 + const struct cred *pcred = __task_cred(parent);
94974 + unsigned int len = strlen(buf);
94975 +
94976 + snprintf(buf + len, PAGE_SIZE - len - 1, DEFAULTSECMSG, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));
94977 + }
94978 +
94979 + printk("%s\n", buf);
94980 +
94981 + return;
94982 +}
94983 +
94984 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...)
94985 +{
94986 + int logtype;
94987 + char *result = (audit == GR_DO_AUDIT) ? "successful" : "denied";
94988 + char *str1 = NULL, *str2 = NULL, *str3 = NULL;
94989 + void *voidptr = NULL;
94990 + int num1 = 0, num2 = 0;
94991 + unsigned long ulong1 = 0, ulong2 = 0;
94992 + struct dentry *dentry = NULL;
94993 + struct vfsmount *mnt = NULL;
94994 + struct file *file = NULL;
94995 + struct task_struct *task = NULL;
94996 + struct vm_area_struct *vma = NULL;
94997 + const struct cred *cred, *pcred;
94998 + va_list ap;
94999 +
95000 + BEGIN_LOCKS(audit);
95001 + logtype = gr_log_start(audit);
95002 + if (logtype == FLOODING) {
95003 + END_LOCKS(audit);
95004 + return;
95005 + }
95006 + va_start(ap, argtypes);
95007 + switch (argtypes) {
95008 + case GR_TTYSNIFF:
95009 + task = va_arg(ap, struct task_struct *);
95010 + gr_log_middle_varargs(audit, msg, &task->signal->curr_ip, gr_task_fullpath0(task), task->comm, task_pid_nr(task), gr_parent_task_fullpath0(task), task->real_parent->comm, task_pid_nr(task->real_parent));
95011 + break;
95012 + case GR_SYSCTL_HIDDEN:
95013 + str1 = va_arg(ap, char *);
95014 + gr_log_middle_varargs(audit, msg, result, str1);
95015 + break;
95016 + case GR_RBAC:
95017 + dentry = va_arg(ap, struct dentry *);
95018 + mnt = va_arg(ap, struct vfsmount *);
95019 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt));
95020 + break;
95021 + case GR_RBAC_STR:
95022 + dentry = va_arg(ap, struct dentry *);
95023 + mnt = va_arg(ap, struct vfsmount *);
95024 + str1 = va_arg(ap, char *);
95025 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1);
95026 + break;
95027 + case GR_STR_RBAC:
95028 + str1 = va_arg(ap, char *);
95029 + dentry = va_arg(ap, struct dentry *);
95030 + mnt = va_arg(ap, struct vfsmount *);
95031 + gr_log_middle_varargs(audit, msg, result, str1, gr_to_filename(dentry, mnt));
95032 + break;
95033 + case GR_RBAC_MODE2:
95034 + dentry = va_arg(ap, struct dentry *);
95035 + mnt = va_arg(ap, struct vfsmount *);
95036 + str1 = va_arg(ap, char *);
95037 + str2 = va_arg(ap, char *);
95038 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2);
95039 + break;
95040 + case GR_RBAC_MODE3:
95041 + dentry = va_arg(ap, struct dentry *);
95042 + mnt = va_arg(ap, struct vfsmount *);
95043 + str1 = va_arg(ap, char *);
95044 + str2 = va_arg(ap, char *);
95045 + str3 = va_arg(ap, char *);
95046 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2, str3);
95047 + break;
95048 + case GR_FILENAME:
95049 + dentry = va_arg(ap, struct dentry *);
95050 + mnt = va_arg(ap, struct vfsmount *);
95051 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt));
95052 + break;
95053 + case GR_STR_FILENAME:
95054 + str1 = va_arg(ap, char *);
95055 + dentry = va_arg(ap, struct dentry *);
95056 + mnt = va_arg(ap, struct vfsmount *);
95057 + gr_log_middle_varargs(audit, msg, str1, gr_to_filename(dentry, mnt));
95058 + break;
95059 + case GR_FILENAME_STR:
95060 + dentry = va_arg(ap, struct dentry *);
95061 + mnt = va_arg(ap, struct vfsmount *);
95062 + str1 = va_arg(ap, char *);
95063 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), str1);
95064 + break;
95065 + case GR_FILENAME_TWO_INT:
95066 + dentry = va_arg(ap, struct dentry *);
95067 + mnt = va_arg(ap, struct vfsmount *);
95068 + num1 = va_arg(ap, int);
95069 + num2 = va_arg(ap, int);
95070 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2);
95071 + break;
95072 + case GR_FILENAME_TWO_INT_STR:
95073 + dentry = va_arg(ap, struct dentry *);
95074 + mnt = va_arg(ap, struct vfsmount *);
95075 + num1 = va_arg(ap, int);
95076 + num2 = va_arg(ap, int);
95077 + str1 = va_arg(ap, char *);
95078 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2, str1);
95079 + break;
95080 + case GR_TEXTREL:
95081 + str1 = va_arg(ap, char *);
95082 + file = va_arg(ap, struct file *);
95083 + ulong1 = va_arg(ap, unsigned long);
95084 + ulong2 = va_arg(ap, unsigned long);
95085 + gr_log_middle_varargs(audit, msg, str1, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>", ulong1, ulong2);
95086 + break;
95087 + case GR_PTRACE:
95088 + task = va_arg(ap, struct task_struct *);
95089 + gr_log_middle_varargs(audit, msg, task->exec_file ? gr_to_filename(task->exec_file->f_path.dentry, task->exec_file->f_path.mnt) : "(none)", task->comm, task_pid_nr(task));
95090 + break;
95091 + case GR_RESOURCE:
95092 + task = va_arg(ap, struct task_struct *);
95093 + cred = __task_cred(task);
95094 + pcred = __task_cred(task->real_parent);
95095 + ulong1 = va_arg(ap, unsigned long);
95096 + str1 = va_arg(ap, char *);
95097 + ulong2 = va_arg(ap, unsigned long);
95098 + gr_log_middle_varargs(audit, msg, ulong1, str1, ulong2, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));
95099 + break;
95100 + case GR_CAP:
95101 + task = va_arg(ap, struct task_struct *);
95102 + cred = __task_cred(task);
95103 + pcred = __task_cred(task->real_parent);
95104 + str1 = va_arg(ap, char *);
95105 + gr_log_middle_varargs(audit, msg, str1, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));
95106 + break;
95107 + case GR_SIG:
95108 + str1 = va_arg(ap, char *);
95109 + voidptr = va_arg(ap, void *);
95110 + gr_log_middle_varargs(audit, msg, str1, voidptr);
95111 + break;
95112 + case GR_SIG2:
95113 + task = va_arg(ap, struct task_struct *);
95114 + cred = __task_cred(task);
95115 + pcred = __task_cred(task->real_parent);
95116 + num1 = va_arg(ap, int);
95117 + gr_log_middle_varargs(audit, msg, num1, gr_task_fullpath0(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath0(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));
95118 + break;
95119 + case GR_CRASH1:
95120 + task = va_arg(ap, struct task_struct *);
95121 + cred = __task_cred(task);
95122 + pcred = __task_cred(task->real_parent);
95123 + ulong1 = va_arg(ap, unsigned long);
95124 + gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid), GR_GLOBAL_UID(cred->uid), ulong1);
95125 + break;
95126 + case GR_CRASH2:
95127 + task = va_arg(ap, struct task_struct *);
95128 + cred = __task_cred(task);
95129 + pcred = __task_cred(task->real_parent);
95130 + ulong1 = va_arg(ap, unsigned long);
95131 + gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid), ulong1);
95132 + break;
95133 + case GR_RWXMAP:
95134 + file = va_arg(ap, struct file *);
95135 + gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");
95136 + break;
95137 + case GR_RWXMAPVMA:
95138 + vma = va_arg(ap, struct vm_area_struct *);
95139 + if (vma->vm_file)
95140 + str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);
95141 + else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
95142 + str1 = "<stack>";
95143 + else if (vma->vm_start <= current->mm->brk &&
95144 + vma->vm_end >= current->mm->start_brk)
95145 + str1 = "<heap>";
95146 + else
95147 + str1 = "<anonymous mapping>";
95148 + gr_log_middle_varargs(audit, msg, str1);
95149 + break;
95150 + case GR_PSACCT:
95151 + {
95152 + unsigned int wday, cday;
95153 + __u8 whr, chr;
95154 + __u8 wmin, cmin;
95155 + __u8 wsec, csec;
95156 +
95157 + task = va_arg(ap, struct task_struct *);
95158 + wday = va_arg(ap, unsigned int);
95159 + cday = va_arg(ap, unsigned int);
95160 + whr = va_arg(ap, int);
95161 + chr = va_arg(ap, int);
95162 + wmin = va_arg(ap, int);
95163 + cmin = va_arg(ap, int);
95164 + wsec = va_arg(ap, int);
95165 + csec = va_arg(ap, int);
95166 + ulong1 = va_arg(ap, unsigned long);
95167 + cred = __task_cred(task);
95168 + pcred = __task_cred(task->real_parent);
95169 +
95170 + gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), &task->signal->curr_ip, tty_name(task->signal->tty), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), wday, whr, wmin, wsec, cday, chr, cmin, csec, (task->flags & PF_SIGNALED) ? "killed by signal" : "exited", ulong1, gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), &task->real_parent->signal->curr_ip, tty_name(task->real_parent->signal->tty), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));
95171 + }
95172 + break;
95173 + default:
95174 + gr_log_middle(audit, msg, ap);
95175 + }
95176 + va_end(ap);
95177 + // these don't need DEFAULTSECARGS printed on the end
95178 + if (argtypes == GR_CRASH1 || argtypes == GR_CRASH2)
95179 + gr_log_end(audit, 0);
95180 + else
95181 + gr_log_end(audit, 1);
95182 + END_LOCKS(audit);
95183 +}
95184 diff --git a/grsecurity/grsec_mem.c b/grsecurity/grsec_mem.c
95185 new file mode 100644
95186 index 0000000..0e39d8c
95187 --- /dev/null
95188 +++ b/grsecurity/grsec_mem.c
95189 @@ -0,0 +1,48 @@
95190 +#include <linux/kernel.h>
95191 +#include <linux/sched.h>
95192 +#include <linux/mm.h>
95193 +#include <linux/mman.h>
95194 +#include <linux/module.h>
95195 +#include <linux/grinternal.h>
95196 +
95197 +void gr_handle_msr_write(void)
95198 +{
95199 + gr_log_noargs(GR_DONT_AUDIT, GR_MSRWRITE_MSG);
95200 + return;
95201 +}
95202 +EXPORT_SYMBOL_GPL(gr_handle_msr_write);
95203 +
95204 +void
95205 +gr_handle_ioperm(void)
95206 +{
95207 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPERM_MSG);
95208 + return;
95209 +}
95210 +
95211 +void
95212 +gr_handle_iopl(void)
95213 +{
95214 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPL_MSG);
95215 + return;
95216 +}
95217 +
95218 +void
95219 +gr_handle_mem_readwrite(u64 from, u64 to)
95220 +{
95221 + gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
95222 + return;
95223 +}
95224 +
95225 +void
95226 +gr_handle_vm86(void)
95227 +{
95228 + gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
95229 + return;
95230 +}
95231 +
95232 +void
95233 +gr_log_badprocpid(const char *entry)
95234 +{
95235 + gr_log_str(GR_DONT_AUDIT, GR_BADPROCPID_MSG, entry);
95236 + return;
95237 +}
95238 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
95239 new file mode 100644
95240 index 0000000..fe02bf4
95241 --- /dev/null
95242 +++ b/grsecurity/grsec_mount.c
95243 @@ -0,0 +1,65 @@
95244 +#include <linux/kernel.h>
95245 +#include <linux/sched.h>
95246 +#include <linux/mount.h>
95247 +#include <linux/major.h>
95248 +#include <linux/grsecurity.h>
95249 +#include <linux/grinternal.h>
95250 +
95251 +void
95252 +gr_log_remount(const char *devname, const int retval)
95253 +{
95254 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95255 + if (grsec_enable_mount && (retval >= 0))
95256 + gr_log_str(GR_DO_AUDIT, GR_REMOUNT_AUDIT_MSG, devname ? devname : "none");
95257 +#endif
95258 + return;
95259 +}
95260 +
95261 +void
95262 +gr_log_unmount(const char *devname, const int retval)
95263 +{
95264 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95265 + if (grsec_enable_mount && (retval >= 0))
95266 + gr_log_str(GR_DO_AUDIT, GR_UNMOUNT_AUDIT_MSG, devname ? devname : "none");
95267 +#endif
95268 + return;
95269 +}
95270 +
95271 +void
95272 +gr_log_mount(const char *from, struct path *to, const int retval)
95273 +{
95274 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95275 + if (grsec_enable_mount && (retval >= 0))
95276 + gr_log_str_fs(GR_DO_AUDIT, GR_MOUNT_AUDIT_MSG, from ? from : "none", to->dentry, to->mnt);
95277 +#endif
95278 + return;
95279 +}
95280 +
95281 +int
95282 +gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags)
95283 +{
95284 +#ifdef CONFIG_GRKERNSEC_ROFS
95285 + if (grsec_enable_rofs && !(mnt_flags & MNT_READONLY)) {
95286 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_MOUNT_MSG, dentry, mnt);
95287 + return -EPERM;
95288 + } else
95289 + return 0;
95290 +#endif
95291 + return 0;
95292 +}
95293 +
95294 +int
95295 +gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode)
95296 +{
95297 +#ifdef CONFIG_GRKERNSEC_ROFS
95298 + struct inode *inode = d_backing_inode(dentry);
95299 +
95300 + if (grsec_enable_rofs && (acc_mode & MAY_WRITE) &&
95301 + inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR))) {
95302 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_BLOCKWRITE_MSG, dentry, mnt);
95303 + return -EPERM;
95304 + } else
95305 + return 0;
95306 +#endif
95307 + return 0;
95308 +}
95309 diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c
95310 new file mode 100644
95311 index 0000000..2ad7b96
95312 --- /dev/null
95313 +++ b/grsecurity/grsec_pax.c
95314 @@ -0,0 +1,47 @@
95315 +#include <linux/kernel.h>
95316 +#include <linux/sched.h>
95317 +#include <linux/mm.h>
95318 +#include <linux/file.h>
95319 +#include <linux/grinternal.h>
95320 +#include <linux/grsecurity.h>
95321 +
95322 +void
95323 +gr_log_textrel(struct vm_area_struct * vma, bool is_textrel_rw)
95324 +{
95325 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95326 + if (grsec_enable_log_rwxmaps)
95327 + gr_log_textrel_ulong_ulong(GR_DONT_AUDIT, GR_TEXTREL_AUDIT_MSG,
95328 + is_textrel_rw ? "executable to writable" : "writable to executable",
95329 + vma->vm_file, vma->vm_start, vma->vm_pgoff);
95330 +#endif
95331 + return;
95332 +}
95333 +
95334 +void gr_log_ptgnustack(struct file *file)
95335 +{
95336 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95337 + if (grsec_enable_log_rwxmaps)
95338 + gr_log_rwxmap(GR_DONT_AUDIT, GR_PTGNUSTACK_MSG, file);
95339 +#endif
95340 + return;
95341 +}
95342 +
95343 +void
95344 +gr_log_rwxmmap(struct file *file)
95345 +{
95346 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95347 + if (grsec_enable_log_rwxmaps)
95348 + gr_log_rwxmap(GR_DONT_AUDIT, GR_RWXMMAP_MSG, file);
95349 +#endif
95350 + return;
95351 +}
95352 +
95353 +void
95354 +gr_log_rwxmprotect(struct vm_area_struct *vma)
95355 +{
95356 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95357 + if (grsec_enable_log_rwxmaps)
95358 + gr_log_rwxmap_vma(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, vma);
95359 +#endif
95360 + return;
95361 +}
95362 diff --git a/grsecurity/grsec_proc.c b/grsecurity/grsec_proc.c
95363 new file mode 100644
95364 index 0000000..2005a3a
95365 --- /dev/null
95366 +++ b/grsecurity/grsec_proc.c
95367 @@ -0,0 +1,20 @@
95368 +#include <linux/kernel.h>
95369 +#include <linux/sched.h>
95370 +#include <linux/grsecurity.h>
95371 +#include <linux/grinternal.h>
95372 +
95373 +int gr_proc_is_restricted(void)
95374 +{
95375 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
95376 + const struct cred *cred = current_cred();
95377 +#endif
95378 +
95379 +#ifdef CONFIG_GRKERNSEC_PROC_USER
95380 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID))
95381 + return -EACCES;
95382 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
95383 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID) && !in_group_p(grsec_proc_gid))
95384 + return -EACCES;
95385 +#endif
95386 + return 0;
95387 +}
95388 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
95389 new file mode 100644
95390 index 0000000..304c518
95391 --- /dev/null
95392 +++ b/grsecurity/grsec_ptrace.c
95393 @@ -0,0 +1,30 @@
95394 +#include <linux/kernel.h>
95395 +#include <linux/sched.h>
95396 +#include <linux/grinternal.h>
95397 +#include <linux/security.h>
95398 +
95399 +void
95400 +gr_audit_ptrace(struct task_struct *task)
95401 +{
95402 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
95403 + if (grsec_enable_audit_ptrace)
95404 + gr_log_ptrace(GR_DO_AUDIT, GR_PTRACE_AUDIT_MSG, task);
95405 +#endif
95406 + return;
95407 +}
95408 +
95409 +int
95410 +gr_ptrace_readexec(struct file *file, int unsafe_flags)
95411 +{
95412 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
95413 + const struct dentry *dentry = file->f_path.dentry;
95414 + const struct vfsmount *mnt = file->f_path.mnt;
95415 +
95416 + if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) &&
95417 + (inode_permission(d_backing_inode(dentry), MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
95418 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
95419 + return -EACCES;
95420 + }
95421 +#endif
95422 + return 0;
95423 +}
95424 diff --git a/grsecurity/grsec_sig.c b/grsecurity/grsec_sig.c
95425 new file mode 100644
95426 index 0000000..3860c7e
95427 --- /dev/null
95428 +++ b/grsecurity/grsec_sig.c
95429 @@ -0,0 +1,236 @@
95430 +#include <linux/kernel.h>
95431 +#include <linux/sched.h>
95432 +#include <linux/fs.h>
95433 +#include <linux/delay.h>
95434 +#include <linux/grsecurity.h>
95435 +#include <linux/grinternal.h>
95436 +#include <linux/hardirq.h>
95437 +
95438 +char *signames[] = {
95439 + [SIGSEGV] = "Segmentation fault",
95440 + [SIGILL] = "Illegal instruction",
95441 + [SIGABRT] = "Abort",
95442 + [SIGBUS] = "Invalid alignment/Bus error"
95443 +};
95444 +
95445 +void
95446 +gr_log_signal(const int sig, const void *addr, const struct task_struct *t)
95447 +{
95448 +#ifdef CONFIG_GRKERNSEC_SIGNAL
95449 + if (grsec_enable_signal && ((sig == SIGSEGV) || (sig == SIGILL) ||
95450 + (sig == SIGABRT) || (sig == SIGBUS))) {
95451 + if (task_pid_nr(t) == task_pid_nr(current)) {
95452 + gr_log_sig_addr(GR_DONT_AUDIT_GOOD, GR_UNISIGLOG_MSG, signames[sig], addr);
95453 + } else {
95454 + gr_log_sig_task(GR_DONT_AUDIT_GOOD, GR_DUALSIGLOG_MSG, t, sig);
95455 + }
95456 + }
95457 +#endif
95458 + return;
95459 +}
95460 +
95461 +int
95462 +gr_handle_signal(const struct task_struct *p, const int sig)
95463 +{
95464 +#ifdef CONFIG_GRKERNSEC
95465 + /* ignore the 0 signal for protected task checks */
95466 + if (task_pid_nr(current) > 1 && sig && gr_check_protected_task(p)) {
95467 + gr_log_sig_task(GR_DONT_AUDIT, GR_SIG_ACL_MSG, p, sig);
95468 + return -EPERM;
95469 + } else if (gr_pid_is_chrooted((struct task_struct *)p)) {
95470 + return -EPERM;
95471 + }
95472 +#endif
95473 + return 0;
95474 +}
95475 +
95476 +#ifdef CONFIG_GRKERNSEC
95477 +extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
95478 +
95479 +int gr_fake_force_sig(int sig, struct task_struct *t)
95480 +{
95481 + unsigned long int flags;
95482 + int ret, blocked, ignored;
95483 + struct k_sigaction *action;
95484 +
95485 + spin_lock_irqsave(&t->sighand->siglock, flags);
95486 + action = &t->sighand->action[sig-1];
95487 + ignored = action->sa.sa_handler == SIG_IGN;
95488 + blocked = sigismember(&t->blocked, sig);
95489 + if (blocked || ignored) {
95490 + action->sa.sa_handler = SIG_DFL;
95491 + if (blocked) {
95492 + sigdelset(&t->blocked, sig);
95493 + recalc_sigpending_and_wake(t);
95494 + }
95495 + }
95496 + if (action->sa.sa_handler == SIG_DFL)
95497 + t->signal->flags &= ~SIGNAL_UNKILLABLE;
95498 + ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
95499 +
95500 + spin_unlock_irqrestore(&t->sighand->siglock, flags);
95501 +
95502 + return ret;
95503 +}
95504 +#endif
95505 +
95506 +#define GR_USER_BAN_TIME (15 * 60)
95507 +#define GR_DAEMON_BRUTE_TIME (30 * 60)
95508 +
95509 +void gr_handle_brute_attach(int dumpable)
95510 +{
95511 +#ifdef CONFIG_GRKERNSEC_BRUTE
95512 + struct task_struct *p = current;
95513 + kuid_t uid = GLOBAL_ROOT_UID;
95514 + int daemon = 0;
95515 +
95516 + if (!grsec_enable_brute)
95517 + return;
95518 +
95519 + rcu_read_lock();
95520 + read_lock(&tasklist_lock);
95521 + read_lock(&grsec_exec_file_lock);
95522 + if (p->real_parent && gr_is_same_file(p->real_parent->exec_file, p->exec_file)) {
95523 + p->real_parent->brute_expires = get_seconds() + GR_DAEMON_BRUTE_TIME;
95524 + p->real_parent->brute = 1;
95525 + daemon = 1;
95526 + } else {
95527 + const struct cred *cred = __task_cred(p), *cred2;
95528 + struct task_struct *tsk, *tsk2;
95529 +
95530 + if (dumpable != SUID_DUMP_USER && gr_is_global_nonroot(cred->uid)) {
95531 + struct user_struct *user;
95532 +
95533 + uid = cred->uid;
95534 +
95535 + /* this is put upon execution past expiration */
95536 + user = find_user(uid);
95537 + if (user == NULL)
95538 + goto unlock;
95539 + user->suid_banned = 1;
95540 + user->suid_ban_expires = get_seconds() + GR_USER_BAN_TIME;
95541 + if (user->suid_ban_expires == ~0UL)
95542 + user->suid_ban_expires--;
95543 +
95544 + /* only kill other threads of the same binary, from the same user */
95545 + do_each_thread(tsk2, tsk) {
95546 + cred2 = __task_cred(tsk);
95547 + if (tsk != p && uid_eq(cred2->uid, uid) && gr_is_same_file(tsk->exec_file, p->exec_file))
95548 + gr_fake_force_sig(SIGKILL, tsk);
95549 + } while_each_thread(tsk2, tsk);
95550 + }
95551 + }
95552 +unlock:
95553 + read_unlock(&grsec_exec_file_lock);
95554 + read_unlock(&tasklist_lock);
95555 + rcu_read_unlock();
95556 +
95557 + if (gr_is_global_nonroot(uid))
95558 + gr_log_fs_int2(GR_DONT_AUDIT, GR_BRUTE_SUID_MSG, p->exec_file->f_path.dentry, p->exec_file->f_path.mnt, GR_GLOBAL_UID(uid), GR_USER_BAN_TIME / 60);
95559 + else if (daemon)
95560 + gr_log_noargs(GR_DONT_AUDIT, GR_BRUTE_DAEMON_MSG);
95561 +
95562 +#endif
95563 + return;
95564 +}
95565 +
95566 +void gr_handle_brute_check(void)
95567 +{
95568 +#ifdef CONFIG_GRKERNSEC_BRUTE
95569 + struct task_struct *p = current;
95570 +
95571 + if (unlikely(p->brute)) {
95572 + if (!grsec_enable_brute)
95573 + p->brute = 0;
95574 + else if (time_before(get_seconds(), p->brute_expires))
95575 + msleep(30 * 1000);
95576 + }
95577 +#endif
95578 + return;
95579 +}
95580 +
95581 +void gr_handle_kernel_exploit(void)
95582 +{
95583 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95584 + const struct cred *cred;
95585 + struct task_struct *tsk, *tsk2;
95586 + struct user_struct *user;
95587 + kuid_t uid;
95588 +
95589 + if (in_irq() || in_serving_softirq() || in_nmi())
95590 + panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
95591 +
95592 + uid = current_uid();
95593 +
95594 + if (gr_is_global_root(uid))
95595 + panic("grsec: halting the system due to suspicious kernel crash caused by root");
95596 + else {
95597 + /* kill all the processes of this user, hold a reference
95598 + to their creds struct, and prevent them from creating
95599 + another process until system reset
95600 + */
95601 + printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n",
95602 + GR_GLOBAL_UID(uid));
95603 + /* we intentionally leak this ref */
95604 + user = get_uid(current->cred->user);
95605 + if (user)
95606 + user->kernel_banned = 1;
95607 +
95608 + /* kill all processes of this user */
95609 + read_lock(&tasklist_lock);
95610 + do_each_thread(tsk2, tsk) {
95611 + cred = __task_cred(tsk);
95612 + if (uid_eq(cred->uid, uid))
95613 + gr_fake_force_sig(SIGKILL, tsk);
95614 + } while_each_thread(tsk2, tsk);
95615 + read_unlock(&tasklist_lock);
95616 + }
95617 +#endif
95618 +}
95619 +
95620 +#ifdef CONFIG_GRKERNSEC_BRUTE
95621 +static bool suid_ban_expired(struct user_struct *user)
95622 +{
95623 + if (user->suid_ban_expires != ~0UL && time_after_eq(get_seconds(), user->suid_ban_expires)) {
95624 + user->suid_banned = 0;
95625 + user->suid_ban_expires = 0;
95626 + free_uid(user);
95627 + return true;
95628 + }
95629 +
95630 + return false;
95631 +}
95632 +#endif
95633 +
95634 +int gr_process_kernel_exec_ban(void)
95635 +{
95636 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95637 + if (unlikely(current->cred->user->kernel_banned))
95638 + return -EPERM;
95639 +#endif
95640 + return 0;
95641 +}
95642 +
95643 +int gr_process_kernel_setuid_ban(struct user_struct *user)
95644 +{
95645 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95646 + if (unlikely(user->kernel_banned))
95647 + gr_fake_force_sig(SIGKILL, current);
95648 +#endif
95649 + return 0;
95650 +}
95651 +
95652 +int gr_process_suid_exec_ban(const struct linux_binprm *bprm)
95653 +{
95654 +#ifdef CONFIG_GRKERNSEC_BRUTE
95655 + struct user_struct *user = current->cred->user;
95656 + if (unlikely(user->suid_banned)) {
95657 + if (suid_ban_expired(user))
95658 + return 0;
95659 + /* disallow execution of suid binaries only */
95660 + else if (!uid_eq(bprm->cred->euid, current->cred->uid))
95661 + return -EPERM;
95662 + }
95663 +#endif
95664 + return 0;
95665 +}
95666 diff --git a/grsecurity/grsec_sock.c b/grsecurity/grsec_sock.c
95667 new file mode 100644
95668 index 0000000..a523bd2
95669 --- /dev/null
95670 +++ b/grsecurity/grsec_sock.c
95671 @@ -0,0 +1,244 @@
95672 +#include <linux/kernel.h>
95673 +#include <linux/module.h>
95674 +#include <linux/sched.h>
95675 +#include <linux/file.h>
95676 +#include <linux/net.h>
95677 +#include <linux/in.h>
95678 +#include <linux/ip.h>
95679 +#include <net/sock.h>
95680 +#include <net/inet_sock.h>
95681 +#include <linux/grsecurity.h>
95682 +#include <linux/grinternal.h>
95683 +#include <linux/gracl.h>
95684 +
95685 +extern int gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb);
95686 +extern int gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr);
95687 +
95688 +EXPORT_SYMBOL_GPL(gr_search_udp_recvmsg);
95689 +EXPORT_SYMBOL_GPL(gr_search_udp_sendmsg);
95690 +
95691 +#ifdef CONFIG_UNIX_MODULE
95692 +EXPORT_SYMBOL_GPL(gr_acl_handle_unix);
95693 +EXPORT_SYMBOL_GPL(gr_acl_handle_mknod);
95694 +EXPORT_SYMBOL_GPL(gr_handle_chroot_unix);
95695 +EXPORT_SYMBOL_GPL(gr_handle_create);
95696 +#endif
95697 +
95698 +#ifdef CONFIG_GRKERNSEC
95699 +#define gr_conn_table_size 32749
95700 +struct conn_table_entry {
95701 + struct conn_table_entry *next;
95702 + struct signal_struct *sig;
95703 +};
95704 +
95705 +struct conn_table_entry *gr_conn_table[gr_conn_table_size];
95706 +DEFINE_SPINLOCK(gr_conn_table_lock);
95707 +
95708 +extern const char * gr_socktype_to_name(unsigned char type);
95709 +extern const char * gr_proto_to_name(unsigned char proto);
95710 +extern const char * gr_sockfamily_to_name(unsigned char family);
95711 +
95712 +static int
95713 +conn_hash(__u32 saddr, __u32 daddr, __u16 sport, __u16 dport, unsigned int size)
95714 +{
95715 + return ((daddr + saddr + (sport << 8) + (dport << 16)) % size);
95716 +}
95717 +
95718 +static int
95719 +conn_match(const struct signal_struct *sig, __u32 saddr, __u32 daddr,
95720 + __u16 sport, __u16 dport)
95721 +{
95722 + if (unlikely(sig->gr_saddr == saddr && sig->gr_daddr == daddr &&
95723 + sig->gr_sport == sport && sig->gr_dport == dport))
95724 + return 1;
95725 + else
95726 + return 0;
95727 +}
95728 +
95729 +static void gr_add_to_task_ip_table_nolock(struct signal_struct *sig, struct conn_table_entry *newent)
95730 +{
95731 + struct conn_table_entry **match;
95732 + unsigned int index;
95733 +
95734 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95735 + sig->gr_sport, sig->gr_dport,
95736 + gr_conn_table_size);
95737 +
95738 + newent->sig = sig;
95739 +
95740 + match = &gr_conn_table[index];
95741 + newent->next = *match;
95742 + *match = newent;
95743 +
95744 + return;
95745 +}
95746 +
95747 +static void gr_del_task_from_ip_table_nolock(struct signal_struct *sig)
95748 +{
95749 + struct conn_table_entry *match, *last = NULL;
95750 + unsigned int index;
95751 +
95752 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95753 + sig->gr_sport, sig->gr_dport,
95754 + gr_conn_table_size);
95755 +
95756 + match = gr_conn_table[index];
95757 + while (match && !conn_match(match->sig,
95758 + sig->gr_saddr, sig->gr_daddr, sig->gr_sport,
95759 + sig->gr_dport)) {
95760 + last = match;
95761 + match = match->next;
95762 + }
95763 +
95764 + if (match) {
95765 + if (last)
95766 + last->next = match->next;
95767 + else
95768 + gr_conn_table[index] = NULL;
95769 + kfree(match);
95770 + }
95771 +
95772 + return;
95773 +}
95774 +
95775 +static struct signal_struct * gr_lookup_task_ip_table(__u32 saddr, __u32 daddr,
95776 + __u16 sport, __u16 dport)
95777 +{
95778 + struct conn_table_entry *match;
95779 + unsigned int index;
95780 +
95781 + index = conn_hash(saddr, daddr, sport, dport, gr_conn_table_size);
95782 +
95783 + match = gr_conn_table[index];
95784 + while (match && !conn_match(match->sig, saddr, daddr, sport, dport))
95785 + match = match->next;
95786 +
95787 + if (match)
95788 + return match->sig;
95789 + else
95790 + return NULL;
95791 +}
95792 +
95793 +#endif
95794 +
95795 +void gr_update_task_in_ip_table(const struct inet_sock *inet)
95796 +{
95797 +#ifdef CONFIG_GRKERNSEC
95798 + struct signal_struct *sig = current->signal;
95799 + struct conn_table_entry *newent;
95800 +
95801 + newent = kmalloc(sizeof(struct conn_table_entry), GFP_ATOMIC);
95802 + if (newent == NULL)
95803 + return;
95804 + /* no bh lock needed since we are called with bh disabled */
95805 + spin_lock(&gr_conn_table_lock);
95806 + gr_del_task_from_ip_table_nolock(sig);
95807 + sig->gr_saddr = inet->inet_rcv_saddr;
95808 + sig->gr_daddr = inet->inet_daddr;
95809 + sig->gr_sport = inet->inet_sport;
95810 + sig->gr_dport = inet->inet_dport;
95811 + gr_add_to_task_ip_table_nolock(sig, newent);
95812 + spin_unlock(&gr_conn_table_lock);
95813 +#endif
95814 + return;
95815 +}
95816 +
95817 +void gr_del_task_from_ip_table(struct task_struct *task)
95818 +{
95819 +#ifdef CONFIG_GRKERNSEC
95820 + spin_lock_bh(&gr_conn_table_lock);
95821 + gr_del_task_from_ip_table_nolock(task->signal);
95822 + spin_unlock_bh(&gr_conn_table_lock);
95823 +#endif
95824 + return;
95825 +}
95826 +
95827 +void
95828 +gr_attach_curr_ip(const struct sock *sk)
95829 +{
95830 +#ifdef CONFIG_GRKERNSEC
95831 + struct signal_struct *p, *set;
95832 + const struct inet_sock *inet = inet_sk(sk);
95833 +
95834 + if (unlikely(sk->sk_protocol != IPPROTO_TCP))
95835 + return;
95836 +
95837 + set = current->signal;
95838 +
95839 + spin_lock_bh(&gr_conn_table_lock);
95840 + p = gr_lookup_task_ip_table(inet->inet_daddr, inet->inet_rcv_saddr,
95841 + inet->inet_dport, inet->inet_sport);
95842 + if (unlikely(p != NULL)) {
95843 + set->curr_ip = p->curr_ip;
95844 + set->used_accept = 1;
95845 + gr_del_task_from_ip_table_nolock(p);
95846 + spin_unlock_bh(&gr_conn_table_lock);
95847 + return;
95848 + }
95849 + spin_unlock_bh(&gr_conn_table_lock);
95850 +
95851 + set->curr_ip = inet->inet_daddr;
95852 + set->used_accept = 1;
95853 +#endif
95854 + return;
95855 +}
95856 +
95857 +int
95858 +gr_handle_sock_all(const int family, const int type, const int protocol)
95859 +{
95860 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
95861 + if (grsec_enable_socket_all && in_group_p(grsec_socket_all_gid) &&
95862 + (family != AF_UNIX)) {
95863 + if (family == AF_INET)
95864 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), gr_proto_to_name(protocol));
95865 + else
95866 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), protocol);
95867 + return -EACCES;
95868 + }
95869 +#endif
95870 + return 0;
95871 +}
95872 +
95873 +int
95874 +gr_handle_sock_server(const struct sockaddr *sck)
95875 +{
95876 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95877 + if (grsec_enable_socket_server &&
95878 + in_group_p(grsec_socket_server_gid) &&
95879 + sck && (sck->sa_family != AF_UNIX) &&
95880 + (sck->sa_family != AF_LOCAL)) {
95881 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95882 + return -EACCES;
95883 + }
95884 +#endif
95885 + return 0;
95886 +}
95887 +
95888 +int
95889 +gr_handle_sock_server_other(const struct sock *sck)
95890 +{
95891 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95892 + if (grsec_enable_socket_server &&
95893 + in_group_p(grsec_socket_server_gid) &&
95894 + sck && (sck->sk_family != AF_UNIX) &&
95895 + (sck->sk_family != AF_LOCAL)) {
95896 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95897 + return -EACCES;
95898 + }
95899 +#endif
95900 + return 0;
95901 +}
95902 +
95903 +int
95904 +gr_handle_sock_client(const struct sockaddr *sck)
95905 +{
95906 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
95907 + if (grsec_enable_socket_client && in_group_p(grsec_socket_client_gid) &&
95908 + sck && (sck->sa_family != AF_UNIX) &&
95909 + (sck->sa_family != AF_LOCAL)) {
95910 + gr_log_noargs(GR_DONT_AUDIT, GR_CONNECT_MSG);
95911 + return -EACCES;
95912 + }
95913 +#endif
95914 + return 0;
95915 +}
95916 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
95917 new file mode 100644
95918 index 0000000..aaec43c
95919 --- /dev/null
95920 +++ b/grsecurity/grsec_sysctl.c
95921 @@ -0,0 +1,488 @@
95922 +#include <linux/kernel.h>
95923 +#include <linux/sched.h>
95924 +#include <linux/sysctl.h>
95925 +#include <linux/grsecurity.h>
95926 +#include <linux/grinternal.h>
95927 +
95928 +int
95929 +gr_handle_sysctl_mod(const char *dirname, const char *name, const int op)
95930 +{
95931 +#ifdef CONFIG_GRKERNSEC_SYSCTL
95932 + if (dirname == NULL || name == NULL)
95933 + return 0;
95934 + if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & MAY_WRITE)) {
95935 + gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name);
95936 + return -EACCES;
95937 + }
95938 +#endif
95939 + return 0;
95940 +}
95941 +
95942 +#if defined(CONFIG_GRKERNSEC_ROFS) || defined(CONFIG_GRKERNSEC_DENYUSB)
95943 +static int __maybe_unused __read_only one = 1;
95944 +#endif
95945 +
95946 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) || \
95947 + defined(CONFIG_GRKERNSEC_DENYUSB)
95948 +struct ctl_table grsecurity_table[] = {
95949 +#ifdef CONFIG_GRKERNSEC_SYSCTL
95950 +#ifdef CONFIG_GRKERNSEC_SYSCTL_DISTRO
95951 +#ifdef CONFIG_GRKERNSEC_IO
95952 + {
95953 + .procname = "disable_priv_io",
95954 + .data = &grsec_disable_privio,
95955 + .maxlen = sizeof(int),
95956 + .mode = 0600,
95957 + .proc_handler = &proc_dointvec_secure,
95958 + },
95959 +#endif
95960 +#endif
95961 +#ifdef CONFIG_GRKERNSEC_LINK
95962 + {
95963 + .procname = "linking_restrictions",
95964 + .data = &grsec_enable_link,
95965 + .maxlen = sizeof(int),
95966 + .mode = 0600,
95967 + .proc_handler = &proc_dointvec_secure,
95968 + },
95969 +#endif
95970 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
95971 + {
95972 + .procname = "enforce_symlinksifowner",
95973 + .data = &grsec_enable_symlinkown,
95974 + .maxlen = sizeof(int),
95975 + .mode = 0600,
95976 + .proc_handler = &proc_dointvec_secure,
95977 + },
95978 + {
95979 + .procname = "symlinkown_gid",
95980 + .data = &grsec_symlinkown_gid,
95981 + .maxlen = sizeof(int),
95982 + .mode = 0600,
95983 + .proc_handler = &proc_dointvec_secure,
95984 + },
95985 +#endif
95986 +#ifdef CONFIG_GRKERNSEC_BRUTE
95987 + {
95988 + .procname = "deter_bruteforce",
95989 + .data = &grsec_enable_brute,
95990 + .maxlen = sizeof(int),
95991 + .mode = 0600,
95992 + .proc_handler = &proc_dointvec_secure,
95993 + },
95994 +#endif
95995 +#ifdef CONFIG_GRKERNSEC_FIFO
95996 + {
95997 + .procname = "fifo_restrictions",
95998 + .data = &grsec_enable_fifo,
95999 + .maxlen = sizeof(int),
96000 + .mode = 0600,
96001 + .proc_handler = &proc_dointvec_secure,
96002 + },
96003 +#endif
96004 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
96005 + {
96006 + .procname = "ptrace_readexec",
96007 + .data = &grsec_enable_ptrace_readexec,
96008 + .maxlen = sizeof(int),
96009 + .mode = 0600,
96010 + .proc_handler = &proc_dointvec_secure,
96011 + },
96012 +#endif
96013 +#ifdef CONFIG_GRKERNSEC_SETXID
96014 + {
96015 + .procname = "consistent_setxid",
96016 + .data = &grsec_enable_setxid,
96017 + .maxlen = sizeof(int),
96018 + .mode = 0600,
96019 + .proc_handler = &proc_dointvec_secure,
96020 + },
96021 +#endif
96022 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
96023 + {
96024 + .procname = "ip_blackhole",
96025 + .data = &grsec_enable_blackhole,
96026 + .maxlen = sizeof(int),
96027 + .mode = 0600,
96028 + .proc_handler = &proc_dointvec_secure,
96029 + },
96030 + {
96031 + .procname = "lastack_retries",
96032 + .data = &grsec_lastack_retries,
96033 + .maxlen = sizeof(int),
96034 + .mode = 0600,
96035 + .proc_handler = &proc_dointvec_secure,
96036 + },
96037 +#endif
96038 +#ifdef CONFIG_GRKERNSEC_EXECLOG
96039 + {
96040 + .procname = "exec_logging",
96041 + .data = &grsec_enable_execlog,
96042 + .maxlen = sizeof(int),
96043 + .mode = 0600,
96044 + .proc_handler = &proc_dointvec_secure,
96045 + },
96046 +#endif
96047 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
96048 + {
96049 + .procname = "rwxmap_logging",
96050 + .data = &grsec_enable_log_rwxmaps,
96051 + .maxlen = sizeof(int),
96052 + .mode = 0600,
96053 + .proc_handler = &proc_dointvec_secure,
96054 + },
96055 +#endif
96056 +#ifdef CONFIG_GRKERNSEC_SIGNAL
96057 + {
96058 + .procname = "signal_logging",
96059 + .data = &grsec_enable_signal,
96060 + .maxlen = sizeof(int),
96061 + .mode = 0600,
96062 + .proc_handler = &proc_dointvec_secure,
96063 + },
96064 +#endif
96065 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
96066 + {
96067 + .procname = "forkfail_logging",
96068 + .data = &grsec_enable_forkfail,
96069 + .maxlen = sizeof(int),
96070 + .mode = 0600,
96071 + .proc_handler = &proc_dointvec_secure,
96072 + },
96073 +#endif
96074 +#ifdef CONFIG_GRKERNSEC_TIME
96075 + {
96076 + .procname = "timechange_logging",
96077 + .data = &grsec_enable_time,
96078 + .maxlen = sizeof(int),
96079 + .mode = 0600,
96080 + .proc_handler = &proc_dointvec_secure,
96081 + },
96082 +#endif
96083 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
96084 + {
96085 + .procname = "chroot_deny_shmat",
96086 + .data = &grsec_enable_chroot_shmat,
96087 + .maxlen = sizeof(int),
96088 + .mode = 0600,
96089 + .proc_handler = &proc_dointvec_secure,
96090 + },
96091 +#endif
96092 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
96093 + {
96094 + .procname = "chroot_deny_unix",
96095 + .data = &grsec_enable_chroot_unix,
96096 + .maxlen = sizeof(int),
96097 + .mode = 0600,
96098 + .proc_handler = &proc_dointvec_secure,
96099 + },
96100 +#endif
96101 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
96102 + {
96103 + .procname = "chroot_deny_mount",
96104 + .data = &grsec_enable_chroot_mount,
96105 + .maxlen = sizeof(int),
96106 + .mode = 0600,
96107 + .proc_handler = &proc_dointvec_secure,
96108 + },
96109 +#endif
96110 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
96111 + {
96112 + .procname = "chroot_deny_fchdir",
96113 + .data = &grsec_enable_chroot_fchdir,
96114 + .maxlen = sizeof(int),
96115 + .mode = 0600,
96116 + .proc_handler = &proc_dointvec_secure,
96117 + },
96118 +#endif
96119 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
96120 + {
96121 + .procname = "chroot_deny_chroot",
96122 + .data = &grsec_enable_chroot_double,
96123 + .maxlen = sizeof(int),
96124 + .mode = 0600,
96125 + .proc_handler = &proc_dointvec_secure,
96126 + },
96127 +#endif
96128 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
96129 + {
96130 + .procname = "chroot_deny_pivot",
96131 + .data = &grsec_enable_chroot_pivot,
96132 + .maxlen = sizeof(int),
96133 + .mode = 0600,
96134 + .proc_handler = &proc_dointvec_secure,
96135 + },
96136 +#endif
96137 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
96138 + {
96139 + .procname = "chroot_enforce_chdir",
96140 + .data = &grsec_enable_chroot_chdir,
96141 + .maxlen = sizeof(int),
96142 + .mode = 0600,
96143 + .proc_handler = &proc_dointvec_secure,
96144 + },
96145 +#endif
96146 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
96147 + {
96148 + .procname = "chroot_deny_chmod",
96149 + .data = &grsec_enable_chroot_chmod,
96150 + .maxlen = sizeof(int),
96151 + .mode = 0600,
96152 + .proc_handler = &proc_dointvec_secure,
96153 + },
96154 +#endif
96155 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
96156 + {
96157 + .procname = "chroot_deny_mknod",
96158 + .data = &grsec_enable_chroot_mknod,
96159 + .maxlen = sizeof(int),
96160 + .mode = 0600,
96161 + .proc_handler = &proc_dointvec_secure,
96162 + },
96163 +#endif
96164 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
96165 + {
96166 + .procname = "chroot_restrict_nice",
96167 + .data = &grsec_enable_chroot_nice,
96168 + .maxlen = sizeof(int),
96169 + .mode = 0600,
96170 + .proc_handler = &proc_dointvec_secure,
96171 + },
96172 +#endif
96173 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
96174 + {
96175 + .procname = "chroot_execlog",
96176 + .data = &grsec_enable_chroot_execlog,
96177 + .maxlen = sizeof(int),
96178 + .mode = 0600,
96179 + .proc_handler = &proc_dointvec_secure,
96180 + },
96181 +#endif
96182 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96183 + {
96184 + .procname = "chroot_caps",
96185 + .data = &grsec_enable_chroot_caps,
96186 + .maxlen = sizeof(int),
96187 + .mode = 0600,
96188 + .proc_handler = &proc_dointvec_secure,
96189 + },
96190 +#endif
96191 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
96192 + {
96193 + .procname = "chroot_deny_bad_rename",
96194 + .data = &grsec_enable_chroot_rename,
96195 + .maxlen = sizeof(int),
96196 + .mode = 0600,
96197 + .proc_handler = &proc_dointvec_secure,
96198 + },
96199 +#endif
96200 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
96201 + {
96202 + .procname = "chroot_deny_sysctl",
96203 + .data = &grsec_enable_chroot_sysctl,
96204 + .maxlen = sizeof(int),
96205 + .mode = 0600,
96206 + .proc_handler = &proc_dointvec_secure,
96207 + },
96208 +#endif
96209 +#ifdef CONFIG_GRKERNSEC_TPE
96210 + {
96211 + .procname = "tpe",
96212 + .data = &grsec_enable_tpe,
96213 + .maxlen = sizeof(int),
96214 + .mode = 0600,
96215 + .proc_handler = &proc_dointvec_secure,
96216 + },
96217 + {
96218 + .procname = "tpe_gid",
96219 + .data = &grsec_tpe_gid,
96220 + .maxlen = sizeof(int),
96221 + .mode = 0600,
96222 + .proc_handler = &proc_dointvec_secure,
96223 + },
96224 +#endif
96225 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
96226 + {
96227 + .procname = "tpe_invert",
96228 + .data = &grsec_enable_tpe_invert,
96229 + .maxlen = sizeof(int),
96230 + .mode = 0600,
96231 + .proc_handler = &proc_dointvec_secure,
96232 + },
96233 +#endif
96234 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
96235 + {
96236 + .procname = "tpe_restrict_all",
96237 + .data = &grsec_enable_tpe_all,
96238 + .maxlen = sizeof(int),
96239 + .mode = 0600,
96240 + .proc_handler = &proc_dointvec_secure,
96241 + },
96242 +#endif
96243 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
96244 + {
96245 + .procname = "socket_all",
96246 + .data = &grsec_enable_socket_all,
96247 + .maxlen = sizeof(int),
96248 + .mode = 0600,
96249 + .proc_handler = &proc_dointvec_secure,
96250 + },
96251 + {
96252 + .procname = "socket_all_gid",
96253 + .data = &grsec_socket_all_gid,
96254 + .maxlen = sizeof(int),
96255 + .mode = 0600,
96256 + .proc_handler = &proc_dointvec_secure,
96257 + },
96258 +#endif
96259 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
96260 + {
96261 + .procname = "socket_client",
96262 + .data = &grsec_enable_socket_client,
96263 + .maxlen = sizeof(int),
96264 + .mode = 0600,
96265 + .proc_handler = &proc_dointvec_secure,
96266 + },
96267 + {
96268 + .procname = "socket_client_gid",
96269 + .data = &grsec_socket_client_gid,
96270 + .maxlen = sizeof(int),
96271 + .mode = 0600,
96272 + .proc_handler = &proc_dointvec_secure,
96273 + },
96274 +#endif
96275 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
96276 + {
96277 + .procname = "socket_server",
96278 + .data = &grsec_enable_socket_server,
96279 + .maxlen = sizeof(int),
96280 + .mode = 0600,
96281 + .proc_handler = &proc_dointvec_secure,
96282 + },
96283 + {
96284 + .procname = "socket_server_gid",
96285 + .data = &grsec_socket_server_gid,
96286 + .maxlen = sizeof(int),
96287 + .mode = 0600,
96288 + .proc_handler = &proc_dointvec_secure,
96289 + },
96290 +#endif
96291 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
96292 + {
96293 + .procname = "audit_group",
96294 + .data = &grsec_enable_group,
96295 + .maxlen = sizeof(int),
96296 + .mode = 0600,
96297 + .proc_handler = &proc_dointvec_secure,
96298 + },
96299 + {
96300 + .procname = "audit_gid",
96301 + .data = &grsec_audit_gid,
96302 + .maxlen = sizeof(int),
96303 + .mode = 0600,
96304 + .proc_handler = &proc_dointvec_secure,
96305 + },
96306 +#endif
96307 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
96308 + {
96309 + .procname = "audit_chdir",
96310 + .data = &grsec_enable_chdir,
96311 + .maxlen = sizeof(int),
96312 + .mode = 0600,
96313 + .proc_handler = &proc_dointvec_secure,
96314 + },
96315 +#endif
96316 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
96317 + {
96318 + .procname = "audit_mount",
96319 + .data = &grsec_enable_mount,
96320 + .maxlen = sizeof(int),
96321 + .mode = 0600,
96322 + .proc_handler = &proc_dointvec_secure,
96323 + },
96324 +#endif
96325 +#ifdef CONFIG_GRKERNSEC_DMESG
96326 + {
96327 + .procname = "dmesg",
96328 + .data = &grsec_enable_dmesg,
96329 + .maxlen = sizeof(int),
96330 + .mode = 0600,
96331 + .proc_handler = &proc_dointvec_secure,
96332 + },
96333 +#endif
96334 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
96335 + {
96336 + .procname = "chroot_findtask",
96337 + .data = &grsec_enable_chroot_findtask,
96338 + .maxlen = sizeof(int),
96339 + .mode = 0600,
96340 + .proc_handler = &proc_dointvec_secure,
96341 + },
96342 +#endif
96343 +#ifdef CONFIG_GRKERNSEC_RESLOG
96344 + {
96345 + .procname = "resource_logging",
96346 + .data = &grsec_resource_logging,
96347 + .maxlen = sizeof(int),
96348 + .mode = 0600,
96349 + .proc_handler = &proc_dointvec_secure,
96350 + },
96351 +#endif
96352 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
96353 + {
96354 + .procname = "audit_ptrace",
96355 + .data = &grsec_enable_audit_ptrace,
96356 + .maxlen = sizeof(int),
96357 + .mode = 0600,
96358 + .proc_handler = &proc_dointvec_secure,
96359 + },
96360 +#endif
96361 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
96362 + {
96363 + .procname = "harden_ptrace",
96364 + .data = &grsec_enable_harden_ptrace,
96365 + .maxlen = sizeof(int),
96366 + .mode = 0600,
96367 + .proc_handler = &proc_dointvec_secure,
96368 + },
96369 +#endif
96370 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
96371 + {
96372 + .procname = "harden_ipc",
96373 + .data = &grsec_enable_harden_ipc,
96374 + .maxlen = sizeof(int),
96375 + .mode = 0600,
96376 + .proc_handler = &proc_dointvec_secure,
96377 + },
96378 +#endif
96379 + {
96380 + .procname = "grsec_lock",
96381 + .data = &grsec_lock,
96382 + .maxlen = sizeof(int),
96383 + .mode = 0600,
96384 + .proc_handler = &proc_dointvec_secure,
96385 + },
96386 +#endif
96387 +#ifdef CONFIG_GRKERNSEC_ROFS
96388 + {
96389 + .procname = "romount_protect",
96390 + .data = &grsec_enable_rofs,
96391 + .maxlen = sizeof(int),
96392 + .mode = 0600,
96393 + .proc_handler = &proc_dointvec_minmax_secure,
96394 + .extra1 = &one,
96395 + .extra2 = &one,
96396 + },
96397 +#endif
96398 +#if defined(CONFIG_GRKERNSEC_DENYUSB) && !defined(CONFIG_GRKERNSEC_DENYUSB_FORCE)
96399 + {
96400 + .procname = "deny_new_usb",
96401 + .data = &grsec_deny_new_usb,
96402 + .maxlen = sizeof(int),
96403 + .mode = 0600,
96404 + .proc_handler = &proc_dointvec_secure,
96405 + },
96406 +#endif
96407 + { }
96408 +};
96409 +#endif
96410 diff --git a/grsecurity/grsec_time.c b/grsecurity/grsec_time.c
96411 new file mode 100644
96412 index 0000000..61b514e
96413 --- /dev/null
96414 +++ b/grsecurity/grsec_time.c
96415 @@ -0,0 +1,16 @@
96416 +#include <linux/kernel.h>
96417 +#include <linux/sched.h>
96418 +#include <linux/grinternal.h>
96419 +#include <linux/module.h>
96420 +
96421 +void
96422 +gr_log_timechange(void)
96423 +{
96424 +#ifdef CONFIG_GRKERNSEC_TIME
96425 + if (grsec_enable_time)
96426 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_TIME_MSG);
96427 +#endif
96428 + return;
96429 +}
96430 +
96431 +EXPORT_SYMBOL_GPL(gr_log_timechange);
96432 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
96433 new file mode 100644
96434 index 0000000..9786671
96435 --- /dev/null
96436 +++ b/grsecurity/grsec_tpe.c
96437 @@ -0,0 +1,78 @@
96438 +#include <linux/kernel.h>
96439 +#include <linux/sched.h>
96440 +#include <linux/file.h>
96441 +#include <linux/fs.h>
96442 +#include <linux/grinternal.h>
96443 +
96444 +extern int gr_acl_tpe_check(void);
96445 +
96446 +int
96447 +gr_tpe_allow(const struct file *file)
96448 +{
96449 +#ifdef CONFIG_GRKERNSEC
96450 + struct inode *inode = d_backing_inode(file->f_path.dentry->d_parent);
96451 + struct inode *file_inode = d_backing_inode(file->f_path.dentry);
96452 + const struct cred *cred = current_cred();
96453 + char *msg = NULL;
96454 + char *msg2 = NULL;
96455 +
96456 + // never restrict root
96457 + if (gr_is_global_root(cred->uid))
96458 + return 1;
96459 +
96460 + if (grsec_enable_tpe) {
96461 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
96462 + if (grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid))
96463 + msg = "not being in trusted group";
96464 + else if (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid))
96465 + msg = "being in untrusted group";
96466 +#else
96467 + if (in_group_p(grsec_tpe_gid))
96468 + msg = "being in untrusted group";
96469 +#endif
96470 + }
96471 + if (!msg && gr_acl_tpe_check())
96472 + msg = "being in untrusted role";
96473 +
96474 + // not in any affected group/role
96475 + if (!msg)
96476 + goto next_check;
96477 +
96478 + if (gr_is_global_nonroot(inode->i_uid))
96479 + msg2 = "file in non-root-owned directory";
96480 + else if (inode->i_mode & S_IWOTH)
96481 + msg2 = "file in world-writable directory";
96482 + else if (inode->i_mode & S_IWGRP)
96483 + msg2 = "file in group-writable directory";
96484 + else if (file_inode->i_mode & S_IWOTH)
96485 + msg2 = "file is world-writable";
96486 +
96487 + if (msg && msg2) {
96488 + char fullmsg[70] = {0};
96489 + snprintf(fullmsg, sizeof(fullmsg)-1, "%s and %s", msg, msg2);
96490 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, fullmsg, file->f_path.dentry, file->f_path.mnt);
96491 + return 0;
96492 + }
96493 + msg = NULL;
96494 +next_check:
96495 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
96496 + if (!grsec_enable_tpe || !grsec_enable_tpe_all)
96497 + return 1;
96498 +
96499 + if (gr_is_global_nonroot(inode->i_uid) && !uid_eq(inode->i_uid, cred->uid))
96500 + msg = "directory not owned by user";
96501 + else if (inode->i_mode & S_IWOTH)
96502 + msg = "file in world-writable directory";
96503 + else if (inode->i_mode & S_IWGRP)
96504 + msg = "file in group-writable directory";
96505 + else if (file_inode->i_mode & S_IWOTH)
96506 + msg = "file is world-writable";
96507 +
96508 + if (msg) {
96509 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, msg, file->f_path.dentry, file->f_path.mnt);
96510 + return 0;
96511 + }
96512 +#endif
96513 +#endif
96514 + return 1;
96515 +}
96516 diff --git a/grsecurity/grsec_usb.c b/grsecurity/grsec_usb.c
96517 new file mode 100644
96518 index 0000000..ae02d8e
96519 --- /dev/null
96520 +++ b/grsecurity/grsec_usb.c
96521 @@ -0,0 +1,15 @@
96522 +#include <linux/kernel.h>
96523 +#include <linux/grinternal.h>
96524 +#include <linux/module.h>
96525 +
96526 +int gr_handle_new_usb(void)
96527 +{
96528 +#ifdef CONFIG_GRKERNSEC_DENYUSB
96529 + if (grsec_deny_new_usb) {
96530 + printk(KERN_ALERT "grsec: denied insert of new USB device\n");
96531 + return 1;
96532 + }
96533 +#endif
96534 + return 0;
96535 +}
96536 +EXPORT_SYMBOL_GPL(gr_handle_new_usb);
96537 diff --git a/grsecurity/grsum.c b/grsecurity/grsum.c
96538 new file mode 100644
96539 index 0000000..158b330
96540 --- /dev/null
96541 +++ b/grsecurity/grsum.c
96542 @@ -0,0 +1,64 @@
96543 +#include <linux/err.h>
96544 +#include <linux/kernel.h>
96545 +#include <linux/sched.h>
96546 +#include <linux/mm.h>
96547 +#include <linux/scatterlist.h>
96548 +#include <linux/crypto.h>
96549 +#include <linux/gracl.h>
96550 +
96551 +
96552 +#if !defined(CONFIG_CRYPTO) || defined(CONFIG_CRYPTO_MODULE) || !defined(CONFIG_CRYPTO_SHA256) || defined(CONFIG_CRYPTO_SHA256_MODULE)
96553 +#error "crypto and sha256 must be built into the kernel"
96554 +#endif
96555 +
96556 +int
96557 +chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum)
96558 +{
96559 + struct crypto_hash *tfm;
96560 + struct hash_desc desc;
96561 + struct scatterlist sg[2];
96562 + unsigned char temp_sum[GR_SHA_LEN] __attribute__((aligned(__alignof__(unsigned long))));
96563 + unsigned long *tmpsumptr = (unsigned long *)temp_sum;
96564 + unsigned long *sumptr = (unsigned long *)sum;
96565 + int cryptres;
96566 + int retval = 1;
96567 + volatile int mismatched = 0;
96568 + volatile int dummy = 0;
96569 + unsigned int i;
96570 +
96571 + tfm = crypto_alloc_hash("sha256", 0, CRYPTO_ALG_ASYNC);
96572 + if (IS_ERR(tfm)) {
96573 + /* should never happen, since sha256 should be built in */
96574 + memset(entry->pw, 0, GR_PW_LEN);
96575 + return 1;
96576 + }
96577 +
96578 + sg_init_table(sg, 2);
96579 + sg_set_buf(&sg[0], salt, GR_SALT_LEN);
96580 + sg_set_buf(&sg[1], entry->pw, strlen(entry->pw));
96581 +
96582 + desc.tfm = tfm;
96583 + desc.flags = 0;
96584 +
96585 + cryptres = crypto_hash_digest(&desc, sg, GR_SALT_LEN + strlen(entry->pw),
96586 + temp_sum);
96587 +
96588 + memset(entry->pw, 0, GR_PW_LEN);
96589 +
96590 + if (cryptres)
96591 + goto out;
96592 +
96593 + for (i = 0; i < GR_SHA_LEN/sizeof(tmpsumptr[0]); i++)
96594 + if (sumptr[i] != tmpsumptr[i])
96595 + mismatched = 1;
96596 + else
96597 + dummy = 1; // waste a cycle
96598 +
96599 + if (!mismatched)
96600 + retval = dummy - 1;
96601 +
96602 +out:
96603 + crypto_free_hash(tfm);
96604 +
96605 + return retval;
96606 +}
96607 diff --git a/include/asm-generic/4level-fixup.h b/include/asm-generic/4level-fixup.h
96608 index 5bdab6b..9ae82fe 100644
96609 --- a/include/asm-generic/4level-fixup.h
96610 +++ b/include/asm-generic/4level-fixup.h
96611 @@ -14,8 +14,10 @@
96612 #define pmd_alloc(mm, pud, address) \
96613 ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
96614 NULL: pmd_offset(pud, address))
96615 +#define pmd_alloc_kernel(mm, pud, address) pmd_alloc((mm), (pud), (address))
96616
96617 #define pud_alloc(mm, pgd, address) (pgd)
96618 +#define pud_alloc_kernel(mm, pgd, address) pud_alloc((mm), (pgd), (address))
96619 #define pud_offset(pgd, start) (pgd)
96620 #define pud_none(pud) 0
96621 #define pud_bad(pud) 0
96622 diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
96623 index a94cbeb..c671578 100644
96624 --- a/include/asm-generic/atomic-long.h
96625 +++ b/include/asm-generic/atomic-long.h
96626 @@ -22,6 +22,12 @@
96627
96628 typedef atomic64_t atomic_long_t;
96629
96630 +#ifdef CONFIG_PAX_REFCOUNT
96631 +typedef atomic64_unchecked_t atomic_long_unchecked_t;
96632 +#else
96633 +typedef atomic64_t atomic_long_unchecked_t;
96634 +#endif
96635 +
96636 #define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
96637 #define ATOMIC_LONG_PFX(x) atomic64 ## x
96638
96639 @@ -29,51 +35,61 @@ typedef atomic64_t atomic_long_t;
96640
96641 typedef atomic_t atomic_long_t;
96642
96643 +#ifdef CONFIG_PAX_REFCOUNT
96644 +typedef atomic_unchecked_t atomic_long_unchecked_t;
96645 +#else
96646 +typedef atomic_t atomic_long_unchecked_t;
96647 +#endif
96648 +
96649 #define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
96650 #define ATOMIC_LONG_PFX(x) atomic ## x
96651
96652 #endif
96653
96654 -#define ATOMIC_LONG_READ_OP(mo) \
96655 -static inline long atomic_long_read##mo(atomic_long_t *l) \
96656 +#define ATOMIC_LONG_READ_OP(mo, suffix) \
96657 +static inline long atomic_long_read##mo##suffix(atomic_long##suffix##_t *l)\
96658 { \
96659 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
96660 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
96661 \
96662 - return (long)ATOMIC_LONG_PFX(_read##mo)(v); \
96663 + return (long)ATOMIC_LONG_PFX(_read##mo##suffix)(v); \
96664 }
96665 -ATOMIC_LONG_READ_OP()
96666 -ATOMIC_LONG_READ_OP(_acquire)
96667 +ATOMIC_LONG_READ_OP(,)
96668 +ATOMIC_LONG_READ_OP(,_unchecked)
96669 +ATOMIC_LONG_READ_OP(_acquire,)
96670
96671 #undef ATOMIC_LONG_READ_OP
96672
96673 -#define ATOMIC_LONG_SET_OP(mo) \
96674 -static inline void atomic_long_set##mo(atomic_long_t *l, long i) \
96675 +#define ATOMIC_LONG_SET_OP(mo, suffix) \
96676 +static inline void atomic_long_set##mo##suffix(atomic_long##suffix##_t *l, long i)\
96677 { \
96678 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
96679 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
96680 \
96681 - ATOMIC_LONG_PFX(_set##mo)(v, i); \
96682 + ATOMIC_LONG_PFX(_set##mo##suffix)(v, i); \
96683 }
96684 -ATOMIC_LONG_SET_OP()
96685 -ATOMIC_LONG_SET_OP(_release)
96686 +ATOMIC_LONG_SET_OP(,)
96687 +ATOMIC_LONG_SET_OP(,_unchecked)
96688 +ATOMIC_LONG_SET_OP(_release,)
96689
96690 #undef ATOMIC_LONG_SET_OP
96691
96692 -#define ATOMIC_LONG_ADD_SUB_OP(op, mo) \
96693 +#define ATOMIC_LONG_ADD_SUB_OP(op, mo, suffix) \
96694 static inline long \
96695 -atomic_long_##op##_return##mo(long i, atomic_long_t *l) \
96696 +atomic_long_##op##_return##mo##suffix(long i, atomic_long##suffix##_t *l)\
96697 { \
96698 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
96699 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
96700 \
96701 - return (long)ATOMIC_LONG_PFX(_##op##_return##mo)(i, v); \
96702 + return (long)ATOMIC_LONG_PFX(_##op##_return##mo##suffix)(i, v); \
96703 }
96704 -ATOMIC_LONG_ADD_SUB_OP(add,)
96705 -ATOMIC_LONG_ADD_SUB_OP(add, _relaxed)
96706 -ATOMIC_LONG_ADD_SUB_OP(add, _acquire)
96707 -ATOMIC_LONG_ADD_SUB_OP(add, _release)
96708 -ATOMIC_LONG_ADD_SUB_OP(sub,)
96709 -ATOMIC_LONG_ADD_SUB_OP(sub, _relaxed)
96710 -ATOMIC_LONG_ADD_SUB_OP(sub, _acquire)
96711 -ATOMIC_LONG_ADD_SUB_OP(sub, _release)
96712 +ATOMIC_LONG_ADD_SUB_OP(add,,)
96713 +ATOMIC_LONG_ADD_SUB_OP(add,,_unchecked)
96714 +ATOMIC_LONG_ADD_SUB_OP(add, _relaxed,)
96715 +ATOMIC_LONG_ADD_SUB_OP(add, _acquire,)
96716 +ATOMIC_LONG_ADD_SUB_OP(add, _release,)
96717 +ATOMIC_LONG_ADD_SUB_OP(sub,,)
96718 +//ATOMIC_LONG_ADD_SUB_OP(sub,,_unchecked)
96719 +ATOMIC_LONG_ADD_SUB_OP(sub, _relaxed,)
96720 +ATOMIC_LONG_ADD_SUB_OP(sub, _acquire,)
96721 +ATOMIC_LONG_ADD_SUB_OP(sub, _release,)
96722
96723 #undef ATOMIC_LONG_ADD_SUB_OP
96724
96725 @@ -105,6 +121,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
96726 ATOMIC_LONG_PFX(_inc)(v);
96727 }
96728
96729 +#ifdef CONFIG_PAX_REFCOUNT
96730 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
96731 +{
96732 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
96733 +
96734 + ATOMIC_LONG_PFX(_inc_unchecked)(v);
96735 +}
96736 +#endif
96737 +
96738 static inline void atomic_long_dec(atomic_long_t *l)
96739 {
96740 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
96741 @@ -112,6 +137,15 @@ static inline void atomic_long_dec(atomic_long_t *l)
96742 ATOMIC_LONG_PFX(_dec)(v);
96743 }
96744
96745 +#ifdef CONFIG_PAX_REFCOUNT
96746 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
96747 +{
96748 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
96749 +
96750 + ATOMIC_LONG_PFX(_dec_unchecked)(v);
96751 +}
96752 +#endif
96753 +
96754 static inline void atomic_long_add(long i, atomic_long_t *l)
96755 {
96756 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
96757 @@ -119,6 +153,15 @@ static inline void atomic_long_add(long i, atomic_long_t *l)
96758 ATOMIC_LONG_PFX(_add)(i, v);
96759 }
96760
96761 +#ifdef CONFIG_PAX_REFCOUNT
96762 +static inline void atomic_long_add_unchecked(long i, atomic_long_unchecked_t *l)
96763 +{
96764 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
96765 +
96766 + ATOMIC_LONG_PFX(_add_unchecked)(i, v);
96767 +}
96768 +#endif
96769 +
96770 static inline void atomic_long_sub(long i, atomic_long_t *l)
96771 {
96772 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
96773 @@ -126,6 +169,15 @@ static inline void atomic_long_sub(long i, atomic_long_t *l)
96774 ATOMIC_LONG_PFX(_sub)(i, v);
96775 }
96776
96777 +#ifdef CONFIG_PAX_REFCOUNT
96778 +static inline void atomic_long_sub_unchecked(long i, atomic_long_unchecked_t *l)
96779 +{
96780 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
96781 +
96782 + ATOMIC_LONG_PFX(_sub_unchecked)(i, v);
96783 +}
96784 +#endif
96785 +
96786 static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
96787 {
96788 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
96789 @@ -161,6 +213,15 @@ static inline long atomic_long_inc_return(atomic_long_t *l)
96790 return (long)ATOMIC_LONG_PFX(_inc_return)(v);
96791 }
96792
96793 +#ifdef CONFIG_PAX_REFCOUNT
96794 +static inline long atomic_long_inc_return_unchecked(atomic_long_unchecked_t *l)
96795 +{
96796 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
96797 +
96798 + return (long)ATOMIC_LONG_PFX(_inc_return_unchecked)(v);
96799 +}
96800 +#endif
96801 +
96802 static inline long atomic_long_dec_return(atomic_long_t *l)
96803 {
96804 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
96805 @@ -178,4 +239,51 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
96806 #define atomic_long_inc_not_zero(l) \
96807 ATOMIC_LONG_PFX(_inc_not_zero)((ATOMIC_LONG_PFX(_t) *)(l))
96808
96809 +#ifdef CONFIG_PAX_REFCOUNT
96810 +static inline void pax_refcount_needs_these_functions(void)
96811 +{
96812 + atomic_read_unchecked((atomic_unchecked_t *)NULL);
96813 + atomic_set_unchecked((atomic_unchecked_t *)NULL, 0);
96814 + atomic_add_unchecked(0, (atomic_unchecked_t *)NULL);
96815 + atomic_sub_unchecked(0, (atomic_unchecked_t *)NULL);
96816 + atomic_inc_unchecked((atomic_unchecked_t *)NULL);
96817 + (void)atomic_inc_and_test_unchecked((atomic_unchecked_t *)NULL);
96818 + atomic_inc_return_unchecked((atomic_unchecked_t *)NULL);
96819 + atomic_add_return_unchecked(0, (atomic_unchecked_t *)NULL);
96820 + atomic_dec_unchecked((atomic_unchecked_t *)NULL);
96821 + atomic_cmpxchg_unchecked((atomic_unchecked_t *)NULL, 0, 0);
96822 + (void)atomic_xchg_unchecked((atomic_unchecked_t *)NULL, 0);
96823 +
96824 + atomic_long_read_unchecked((atomic_long_unchecked_t *)NULL);
96825 + atomic_long_set_unchecked((atomic_long_unchecked_t *)NULL, 0);
96826 + atomic_long_add_unchecked(0, (atomic_long_unchecked_t *)NULL);
96827 + atomic_long_sub_unchecked(0, (atomic_long_unchecked_t *)NULL);
96828 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)NULL);
96829 + atomic_long_add_return_unchecked(0, (atomic_long_unchecked_t *)NULL);
96830 + atomic_long_inc_return_unchecked((atomic_long_unchecked_t *)NULL);
96831 + atomic_long_dec_unchecked((atomic_long_unchecked_t *)NULL);
96832 +}
96833 +#else
96834 +#define atomic_read_unchecked(v) atomic_read(v)
96835 +#define atomic_set_unchecked(v, i) atomic_set((v), (i))
96836 +#define atomic_add_unchecked(i, v) atomic_add((i), (v))
96837 +#define atomic_sub_unchecked(i, v) atomic_sub((i), (v))
96838 +#define atomic_inc_unchecked(v) atomic_inc(v)
96839 +#define atomic_inc_and_test_unchecked(v) atomic_inc_and_test(v)
96840 +#define atomic_inc_return_unchecked(v) atomic_inc_return(v)
96841 +#define atomic_add_return_unchecked(i, v) atomic_add_return((i), (v))
96842 +#define atomic_dec_unchecked(v) atomic_dec(v)
96843 +#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg((v), (o), (n))
96844 +#define atomic_xchg_unchecked(v, i) atomic_xchg((v), (i))
96845 +
96846 +#define atomic_long_read_unchecked(v) atomic_long_read(v)
96847 +#define atomic_long_set_unchecked(v, i) atomic_long_set((v), (i))
96848 +#define atomic_long_add_unchecked(i, v) atomic_long_add((i), (v))
96849 +#define atomic_long_sub_unchecked(i, v) atomic_long_sub((i), (v))
96850 +#define atomic_long_inc_unchecked(v) atomic_long_inc(v)
96851 +#define atomic_long_add_return_unchecked(i, v) atomic_long_add_return((i), (v))
96852 +#define atomic_long_inc_return_unchecked(v) atomic_long_inc_return(v)
96853 +#define atomic_long_dec_unchecked(v) atomic_long_dec(v)
96854 +#endif
96855 +
96856 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */
96857 diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
96858 index d48e78c..d29d3a3 100644
96859 --- a/include/asm-generic/atomic64.h
96860 +++ b/include/asm-generic/atomic64.h
96861 @@ -16,6 +16,8 @@ typedef struct {
96862 long long counter;
96863 } atomic64_t;
96864
96865 +typedef atomic64_t atomic64_unchecked_t;
96866 +
96867 #define ATOMIC64_INIT(i) { (i) }
96868
96869 extern long long atomic64_read(const atomic64_t *v);
96870 @@ -55,4 +57,14 @@ extern int atomic64_add_unless(atomic64_t *v, long long a, long long u);
96871 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
96872 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
96873
96874 +#define atomic64_read_unchecked(v) atomic64_read(v)
96875 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
96876 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
96877 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
96878 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
96879 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
96880 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
96881 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
96882 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
96883 +
96884 #endif /* _ASM_GENERIC_ATOMIC64_H */
96885 diff --git a/include/asm-generic/bitops/__fls.h b/include/asm-generic/bitops/__fls.h
96886 index a60a7cc..0fe12f2 100644
96887 --- a/include/asm-generic/bitops/__fls.h
96888 +++ b/include/asm-generic/bitops/__fls.h
96889 @@ -9,7 +9,7 @@
96890 *
96891 * Undefined if no set bit exists, so code should check against 0 first.
96892 */
96893 -static __always_inline unsigned long __fls(unsigned long word)
96894 +static __always_inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
96895 {
96896 int num = BITS_PER_LONG - 1;
96897
96898 diff --git a/include/asm-generic/bitops/fls.h b/include/asm-generic/bitops/fls.h
96899 index 0576d1f..dad6c71 100644
96900 --- a/include/asm-generic/bitops/fls.h
96901 +++ b/include/asm-generic/bitops/fls.h
96902 @@ -9,7 +9,7 @@
96903 * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
96904 */
96905
96906 -static __always_inline int fls(int x)
96907 +static __always_inline int __intentional_overflow(-1) fls(int x)
96908 {
96909 int r = 32;
96910
96911 diff --git a/include/asm-generic/bitops/fls64.h b/include/asm-generic/bitops/fls64.h
96912 index b097cf8..3d40e14 100644
96913 --- a/include/asm-generic/bitops/fls64.h
96914 +++ b/include/asm-generic/bitops/fls64.h
96915 @@ -15,7 +15,7 @@
96916 * at position 64.
96917 */
96918 #if BITS_PER_LONG == 32
96919 -static __always_inline int fls64(__u64 x)
96920 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
96921 {
96922 __u32 h = x >> 32;
96923 if (h)
96924 @@ -23,7 +23,7 @@ static __always_inline int fls64(__u64 x)
96925 return fls(x);
96926 }
96927 #elif BITS_PER_LONG == 64
96928 -static __always_inline int fls64(__u64 x)
96929 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
96930 {
96931 if (x == 0)
96932 return 0;
96933 diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
96934 index 630dd23..8c1dcb6b 100644
96935 --- a/include/asm-generic/bug.h
96936 +++ b/include/asm-generic/bug.h
96937 @@ -62,13 +62,13 @@ struct bug_entry {
96938 * to provide better diagnostics.
96939 */
96940 #ifndef __WARN_TAINT
96941 -extern __printf(3, 4)
96942 +extern __printf(3, 4) __nocapture(1, 3, 4)
96943 void warn_slowpath_fmt(const char *file, const int line,
96944 const char *fmt, ...);
96945 -extern __printf(4, 5)
96946 +extern __printf(4, 5) __nocapture(1, 4, 5)
96947 void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
96948 const char *fmt, ...);
96949 -extern void warn_slowpath_null(const char *file, const int line);
96950 +extern __nocapture(1) void warn_slowpath_null(const char *file, const int line);
96951 #define WANT_WARN_ON_SLOWPATH
96952 #define __WARN() warn_slowpath_null(__FILE__, __LINE__)
96953 #define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
96954 diff --git a/include/asm-generic/cache.h b/include/asm-generic/cache.h
96955 index 1bfcfe5..e04c5c9 100644
96956 --- a/include/asm-generic/cache.h
96957 +++ b/include/asm-generic/cache.h
96958 @@ -6,7 +6,7 @@
96959 * cache lines need to provide their own cache.h.
96960 */
96961
96962 -#define L1_CACHE_SHIFT 5
96963 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
96964 +#define L1_CACHE_SHIFT 5UL
96965 +#define L1_CACHE_BYTES (1UL << L1_CACHE_SHIFT)
96966
96967 #endif /* __ASM_GENERIC_CACHE_H */
96968 diff --git a/include/asm-generic/emergency-restart.h b/include/asm-generic/emergency-restart.h
96969 index 0d68a1e..b74a761 100644
96970 --- a/include/asm-generic/emergency-restart.h
96971 +++ b/include/asm-generic/emergency-restart.h
96972 @@ -1,7 +1,7 @@
96973 #ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
96974 #define _ASM_GENERIC_EMERGENCY_RESTART_H
96975
96976 -static inline void machine_emergency_restart(void)
96977 +static inline __noreturn void machine_emergency_restart(void)
96978 {
96979 machine_restart(NULL);
96980 }
96981 diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h
96982 index 90f99c7..00ce236 100644
96983 --- a/include/asm-generic/kmap_types.h
96984 +++ b/include/asm-generic/kmap_types.h
96985 @@ -2,9 +2,9 @@
96986 #define _ASM_GENERIC_KMAP_TYPES_H
96987
96988 #ifdef __WITH_KM_FENCE
96989 -# define KM_TYPE_NR 41
96990 +# define KM_TYPE_NR 42
96991 #else
96992 -# define KM_TYPE_NR 20
96993 +# define KM_TYPE_NR 21
96994 #endif
96995
96996 #endif
96997 diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
96998 index 9ceb03b..62b0b8f 100644
96999 --- a/include/asm-generic/local.h
97000 +++ b/include/asm-generic/local.h
97001 @@ -23,24 +23,37 @@ typedef struct
97002 atomic_long_t a;
97003 } local_t;
97004
97005 +typedef struct {
97006 + atomic_long_unchecked_t a;
97007 +} local_unchecked_t;
97008 +
97009 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
97010
97011 #define local_read(l) atomic_long_read(&(l)->a)
97012 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
97013 #define local_set(l,i) atomic_long_set((&(l)->a),(i))
97014 +#define local_set_unchecked(l,i) atomic_long_set_unchecked((&(l)->a),(i))
97015 #define local_inc(l) atomic_long_inc(&(l)->a)
97016 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
97017 #define local_dec(l) atomic_long_dec(&(l)->a)
97018 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
97019 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
97020 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
97021 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
97022 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
97023
97024 #define local_sub_and_test(i, l) atomic_long_sub_and_test((i), (&(l)->a))
97025 #define local_dec_and_test(l) atomic_long_dec_and_test(&(l)->a)
97026 #define local_inc_and_test(l) atomic_long_inc_and_test(&(l)->a)
97027 #define local_add_negative(i, l) atomic_long_add_negative((i), (&(l)->a))
97028 #define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
97029 +#define local_add_return_unchecked(i, l) atomic_long_add_return_unchecked((i), (&(l)->a))
97030 #define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
97031 #define local_inc_return(l) atomic_long_inc_return(&(l)->a)
97032 +#define local_dec_return(l) atomic_long_dec_return(&(l)->a)
97033
97034 #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
97035 +#define local_cmpxchg_unchecked(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
97036 #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
97037 #define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
97038 #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
97039 diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
97040 index 725612b..9cc513a 100644
97041 --- a/include/asm-generic/pgtable-nopmd.h
97042 +++ b/include/asm-generic/pgtable-nopmd.h
97043 @@ -1,14 +1,19 @@
97044 #ifndef _PGTABLE_NOPMD_H
97045 #define _PGTABLE_NOPMD_H
97046
97047 -#ifndef __ASSEMBLY__
97048 -
97049 #include <asm-generic/pgtable-nopud.h>
97050
97051 -struct mm_struct;
97052 -
97053 #define __PAGETABLE_PMD_FOLDED
97054
97055 +#define PMD_SHIFT PUD_SHIFT
97056 +#define PTRS_PER_PMD 1
97057 +#define PMD_SIZE (_AC(1,UL) << PMD_SHIFT)
97058 +#define PMD_MASK (~(PMD_SIZE-1))
97059 +
97060 +#ifndef __ASSEMBLY__
97061 +
97062 +struct mm_struct;
97063 +
97064 /*
97065 * Having the pmd type consist of a pud gets the size right, and allows
97066 * us to conceptually access the pud entry that this pmd is folded into
97067 @@ -16,11 +21,6 @@ struct mm_struct;
97068 */
97069 typedef struct { pud_t pud; } pmd_t;
97070
97071 -#define PMD_SHIFT PUD_SHIFT
97072 -#define PTRS_PER_PMD 1
97073 -#define PMD_SIZE (1UL << PMD_SHIFT)
97074 -#define PMD_MASK (~(PMD_SIZE-1))
97075 -
97076 /*
97077 * The "pud_xxx()" functions here are trivial for a folded two-level
97078 * setup: the pmd is never bad, and a pmd always exists (as it's folded
97079 diff --git a/include/asm-generic/pgtable-nopud.h b/include/asm-generic/pgtable-nopud.h
97080 index 810431d..0ec4804f 100644
97081 --- a/include/asm-generic/pgtable-nopud.h
97082 +++ b/include/asm-generic/pgtable-nopud.h
97083 @@ -1,10 +1,15 @@
97084 #ifndef _PGTABLE_NOPUD_H
97085 #define _PGTABLE_NOPUD_H
97086
97087 -#ifndef __ASSEMBLY__
97088 -
97089 #define __PAGETABLE_PUD_FOLDED
97090
97091 +#define PUD_SHIFT PGDIR_SHIFT
97092 +#define PTRS_PER_PUD 1
97093 +#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT)
97094 +#define PUD_MASK (~(PUD_SIZE-1))
97095 +
97096 +#ifndef __ASSEMBLY__
97097 +
97098 /*
97099 * Having the pud type consist of a pgd gets the size right, and allows
97100 * us to conceptually access the pgd entry that this pud is folded into
97101 @@ -12,11 +17,6 @@
97102 */
97103 typedef struct { pgd_t pgd; } pud_t;
97104
97105 -#define PUD_SHIFT PGDIR_SHIFT
97106 -#define PTRS_PER_PUD 1
97107 -#define PUD_SIZE (1UL << PUD_SHIFT)
97108 -#define PUD_MASK (~(PUD_SIZE-1))
97109 -
97110 /*
97111 * The "pgd_xxx()" functions here are trivial for a folded two-level
97112 * setup: the pud is never bad, and a pud always exists (as it's folded
97113 @@ -29,6 +29,7 @@ static inline void pgd_clear(pgd_t *pgd) { }
97114 #define pud_ERROR(pud) (pgd_ERROR((pud).pgd))
97115
97116 #define pgd_populate(mm, pgd, pud) do { } while (0)
97117 +#define pgd_populate_kernel(mm, pgd, pud) do { } while (0)
97118 /*
97119 * (puds are folded into pgds so this doesn't get actually called,
97120 * but the define is needed for a generic inline function.)
97121 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
97122 index 29c57b2..da571a2 100644
97123 --- a/include/asm-generic/pgtable.h
97124 +++ b/include/asm-generic/pgtable.h
97125 @@ -715,6 +715,22 @@ static inline int pmd_protnone(pmd_t pmd)
97126 }
97127 #endif /* CONFIG_NUMA_BALANCING */
97128
97129 +#ifndef __HAVE_ARCH_PAX_OPEN_KERNEL
97130 +#ifdef CONFIG_PAX_KERNEXEC
97131 +#error KERNEXEC requires pax_open_kernel
97132 +#else
97133 +static inline unsigned long pax_open_kernel(void) { return 0; }
97134 +#endif
97135 +#endif
97136 +
97137 +#ifndef __HAVE_ARCH_PAX_CLOSE_KERNEL
97138 +#ifdef CONFIG_PAX_KERNEXEC
97139 +#error KERNEXEC requires pax_close_kernel
97140 +#else
97141 +static inline unsigned long pax_close_kernel(void) { return 0; }
97142 +#endif
97143 +#endif
97144 +
97145 #endif /* CONFIG_MMU */
97146
97147 #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
97148 diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
97149 index b58fd66..6cfae67 100644
97150 --- a/include/asm-generic/sections.h
97151 +++ b/include/asm-generic/sections.h
97152 @@ -30,6 +30,7 @@ extern char _data[], _sdata[], _edata[];
97153 extern char __bss_start[], __bss_stop[];
97154 extern char __init_begin[], __init_end[];
97155 extern char _sinittext[], _einittext[];
97156 +extern char _sinitdata[], _einitdata[];
97157 extern char _end[];
97158 extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
97159 extern char __kprobes_text_start[], __kprobes_text_end[];
97160 diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
97161 index 72d8803..cb9749c 100644
97162 --- a/include/asm-generic/uaccess.h
97163 +++ b/include/asm-generic/uaccess.h
97164 @@ -343,4 +343,20 @@ clear_user(void __user *to, unsigned long n)
97165 return __clear_user(to, n);
97166 }
97167
97168 +#ifndef __HAVE_ARCH_PAX_OPEN_USERLAND
97169 +#ifdef CONFIG_PAX_MEMORY_UDEREF
97170 +#error UDEREF requires pax_open_userland
97171 +#else
97172 +static inline unsigned long pax_open_userland(void) { return 0; }
97173 +#endif
97174 +#endif
97175 +
97176 +#ifndef __HAVE_ARCH_PAX_CLOSE_USERLAND
97177 +#ifdef CONFIG_PAX_MEMORY_UDEREF
97178 +#error UDEREF requires pax_close_userland
97179 +#else
97180 +static inline unsigned long pax_close_userland(void) { return 0; }
97181 +#endif
97182 +#endif
97183 +
97184 #endif /* __ASM_GENERIC_UACCESS_H */
97185 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
97186 index 1781e54..03cc4a3 100644
97187 --- a/include/asm-generic/vmlinux.lds.h
97188 +++ b/include/asm-generic/vmlinux.lds.h
97189 @@ -246,6 +246,7 @@
97190 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
97191 VMLINUX_SYMBOL(__start_rodata) = .; \
97192 *(.rodata) *(.rodata.*) \
97193 + *(.data..read_only) \
97194 *(__vermagic) /* Kernel version magic */ \
97195 . = ALIGN(8); \
97196 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
97197 @@ -502,6 +503,7 @@
97198 KERNEL_CTORS() \
97199 MCOUNT_REC() \
97200 *(.init.rodata) \
97201 + *(.init.rodata.*) \
97202 FTRACE_EVENTS() \
97203 TRACE_SYSCALLS() \
97204 KPROBE_BLACKLIST() \
97205 @@ -523,6 +525,8 @@
97206
97207 #define EXIT_DATA \
97208 *(.exit.data) \
97209 + *(.exit.rodata) \
97210 + *(.exit.rodata.*) \
97211 MEM_DISCARD(exit.data) \
97212 MEM_DISCARD(exit.rodata)
97213
97214 @@ -739,17 +743,18 @@
97215 * section in the linker script will go there too. @phdr should have
97216 * a leading colon.
97217 *
97218 - * Note that this macros defines __per_cpu_load as an absolute symbol.
97219 + * Note that this macros defines per_cpu_load as an absolute symbol.
97220 * If there is no need to put the percpu section at a predetermined
97221 * address, use PERCPU_SECTION.
97222 */
97223 #define PERCPU_VADDR(cacheline, vaddr, phdr) \
97224 - VMLINUX_SYMBOL(__per_cpu_load) = .; \
97225 - .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
97226 + per_cpu_load = .; \
97227 + .data..percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
97228 - LOAD_OFFSET) { \
97229 + VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
97230 PERCPU_INPUT(cacheline) \
97231 } phdr \
97232 - . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
97233 + . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data..percpu);
97234
97235 /**
97236 * PERCPU_SECTION - define output section for percpu area, simple version
97237 @@ -811,12 +816,14 @@
97238
97239 #define INIT_DATA_SECTION(initsetup_align) \
97240 .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
97241 + VMLINUX_SYMBOL(_sinitdata) = .; \
97242 INIT_DATA \
97243 INIT_SETUP(initsetup_align) \
97244 INIT_CALLS \
97245 CON_INITCALL \
97246 SECURITY_INITCALL \
97247 INIT_RAM_FS \
97248 + VMLINUX_SYMBOL(_einitdata) = .; \
97249 }
97250
97251 #define BSS_SECTION(sbss_align, bss_align, stop_align) \
97252 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
97253 index c9fe145..9fb2337 100644
97254 --- a/include/crypto/algapi.h
97255 +++ b/include/crypto/algapi.h
97256 @@ -37,7 +37,7 @@ struct crypto_type {
97257 unsigned int maskclear;
97258 unsigned int maskset;
97259 unsigned int tfmsize;
97260 -};
97261 +} __do_const;
97262
97263 struct crypto_instance {
97264 struct crypto_alg alg;
97265 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
97266 index 8b5ce7c..984979b 100644
97267 --- a/include/drm/drmP.h
97268 +++ b/include/drm/drmP.h
97269 @@ -59,6 +59,7 @@
97270
97271 #include <asm/mman.h>
97272 #include <asm/pgalloc.h>
97273 +#include <asm/local.h>
97274 #include <asm/uaccess.h>
97275
97276 #include <uapi/drm/drm.h>
97277 @@ -234,10 +235,12 @@ void drm_err(const char *format, ...);
97278 * \param cmd command.
97279 * \param arg argument.
97280 */
97281 -typedef int drm_ioctl_t(struct drm_device *dev, void *data,
97282 +typedef int (* const drm_ioctl_t)(struct drm_device *dev, void *data,
97283 + struct drm_file *file_priv);
97284 +typedef int (* drm_ioctl_no_const_t)(struct drm_device *dev, void *data,
97285 struct drm_file *file_priv);
97286
97287 -typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
97288 +typedef int (* const drm_ioctl_compat_t)(struct file *filp, unsigned int cmd,
97289 unsigned long arg);
97290
97291 #define DRM_IOCTL_NR(n) _IOC_NR(n)
97292 @@ -253,9 +256,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
97293 struct drm_ioctl_desc {
97294 unsigned int cmd;
97295 int flags;
97296 - drm_ioctl_t *func;
97297 + drm_ioctl_t func;
97298 const char *name;
97299 -};
97300 +} __do_const;
97301
97302 /**
97303 * Creates a driver or general drm_ioctl_desc array entry for the given
97304 @@ -648,7 +651,8 @@ struct drm_info_list {
97305 int (*show)(struct seq_file*, void*); /** show callback */
97306 u32 driver_features; /**< Required driver features for this entry */
97307 void *data;
97308 -};
97309 +} __do_const;
97310 +typedef struct drm_info_list __no_const drm_info_list_no_const;
97311
97312 /**
97313 * debugfs node structure. This structure represents a debugfs file.
97314 @@ -735,7 +739,7 @@ struct drm_device {
97315
97316 /** \name Usage Counters */
97317 /*@{ */
97318 - int open_count; /**< Outstanding files open, protected by drm_global_mutex. */
97319 + local_t open_count; /**< Outstanding files open, protected by drm_global_mutex. */
97320 spinlock_t buf_lock; /**< For drm_device::buf_use and a few other things. */
97321 int buf_use; /**< Buffers in use -- cannot alloc */
97322 atomic_t buf_alloc; /**< Buffer allocation in progress */
97323 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
97324 index 3febb4b..afc5199 100644
97325 --- a/include/drm/drm_crtc_helper.h
97326 +++ b/include/drm/drm_crtc_helper.h
97327 @@ -163,7 +163,7 @@ struct drm_encoder_helper_funcs {
97328 int (*atomic_check)(struct drm_encoder *encoder,
97329 struct drm_crtc_state *crtc_state,
97330 struct drm_connector_state *conn_state);
97331 -};
97332 +} __no_const;
97333
97334 /**
97335 * struct drm_connector_helper_funcs - helper operations for connectors
97336 diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
97337 index 0de6290..2a2c125 100644
97338 --- a/include/drm/drm_mm.h
97339 +++ b/include/drm/drm_mm.h
97340 @@ -297,7 +297,7 @@ void drm_mm_remove_node(struct drm_mm_node *node);
97341 void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
97342 void drm_mm_init(struct drm_mm *mm,
97343 u64 start,
97344 - u64 size);
97345 + u64 size) __intentional_overflow(3);
97346 void drm_mm_takedown(struct drm_mm *mm);
97347 bool drm_mm_clean(struct drm_mm *mm);
97348
97349 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
97350 index 17c4456..da0c5eb 100644
97351 --- a/include/drm/i915_pciids.h
97352 +++ b/include/drm/i915_pciids.h
97353 @@ -37,7 +37,7 @@
97354 */
97355 #define INTEL_VGA_DEVICE(id, info) { \
97356 0x8086, id, \
97357 - ~0, ~0, \
97358 + PCI_ANY_ID, PCI_ANY_ID, \
97359 0x030000, 0xff0000, \
97360 (unsigned long) info }
97361
97362 diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
97363 index 9e9bddaa5..ce73c69 100644
97364 --- a/include/drm/intel-gtt.h
97365 +++ b/include/drm/intel-gtt.h
97366 @@ -3,8 +3,8 @@
97367 #ifndef _DRM_INTEL_GTT_H
97368 #define _DRM_INTEL_GTT_H
97369
97370 -void intel_gtt_get(u64 *gtt_total, size_t *stolen_size,
97371 - phys_addr_t *mappable_base, u64 *mappable_end);
97372 +void intel_gtt_get(u64 *gtt_total, u64 *stolen_size,
97373 + u64 *mappable_base, u64 *mappable_end);
97374
97375 int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
97376 struct agp_bridge_data *bridge);
97377 diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
97378 index 72dcbe8..8db58d7 100644
97379 --- a/include/drm/ttm/ttm_memory.h
97380 +++ b/include/drm/ttm/ttm_memory.h
97381 @@ -48,7 +48,7 @@
97382
97383 struct ttm_mem_shrink {
97384 int (*do_shrink) (struct ttm_mem_shrink *);
97385 -};
97386 +} __no_const;
97387
97388 /**
97389 * struct ttm_mem_global - Global memory accounting structure.
97390 diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
97391 index 49a8284..9643967 100644
97392 --- a/include/drm/ttm/ttm_page_alloc.h
97393 +++ b/include/drm/ttm/ttm_page_alloc.h
97394 @@ -80,6 +80,7 @@ void ttm_dma_page_alloc_fini(void);
97395 */
97396 extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
97397
97398 +struct device;
97399 extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97400 extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97401
97402 diff --git a/include/keys/asymmetric-subtype.h b/include/keys/asymmetric-subtype.h
97403 index 4b840e8..155d235 100644
97404 --- a/include/keys/asymmetric-subtype.h
97405 +++ b/include/keys/asymmetric-subtype.h
97406 @@ -37,7 +37,7 @@ struct asymmetric_key_subtype {
97407 /* Verify the signature on a key of this subtype (optional) */
97408 int (*verify_signature)(const struct key *key,
97409 const struct public_key_signature *sig);
97410 -};
97411 +} __do_const;
97412
97413 /**
97414 * asymmetric_key_subtype - Get the subtype from an asymmetric key
97415 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
97416 index c1da539..1dcec55 100644
97417 --- a/include/linux/atmdev.h
97418 +++ b/include/linux/atmdev.h
97419 @@ -28,7 +28,7 @@ struct compat_atm_iobuf {
97420 #endif
97421
97422 struct k_atm_aal_stats {
97423 -#define __HANDLE_ITEM(i) atomic_t i
97424 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
97425 __AAL_STAT_ITEMS
97426 #undef __HANDLE_ITEM
97427 };
97428 @@ -200,7 +200,7 @@ struct atmdev_ops { /* only send is required */
97429 int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
97430 int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
97431 struct module *owner;
97432 -};
97433 +} __do_const ;
97434
97435 struct atmphy_ops {
97436 int (*start)(struct atm_dev *dev);
97437 diff --git a/include/linux/atomic.h b/include/linux/atomic.h
97438 index 00a5763..93fe7f4 100644
97439 --- a/include/linux/atomic.h
97440 +++ b/include/linux/atomic.h
97441 @@ -335,7 +335,7 @@
97442 * Atomically adds @a to @v, so long as @v was not already @u.
97443 * Returns non-zero if @v was not @u, and zero otherwise.
97444 */
97445 -static inline int atomic_add_unless(atomic_t *v, int a, int u)
97446 +static inline int __intentional_overflow(-1) atomic_add_unless(atomic_t *v, int a, int u)
97447 {
97448 return __atomic_add_unless(v, a, u) != u;
97449 }
97450 diff --git a/include/linux/audit.h b/include/linux/audit.h
97451 index b2abc99..e08a713 100644
97452 --- a/include/linux/audit.h
97453 +++ b/include/linux/audit.h
97454 @@ -227,7 +227,7 @@ static inline void audit_ptrace(struct task_struct *t)
97455 extern unsigned int audit_serial(void);
97456 extern int auditsc_get_stamp(struct audit_context *ctx,
97457 struct timespec *t, unsigned int *serial);
97458 -extern int audit_set_loginuid(kuid_t loginuid);
97459 +extern int __intentional_overflow(-1) audit_set_loginuid(kuid_t loginuid);
97460
97461 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
97462 {
97463 diff --git a/include/linux/average.h b/include/linux/average.h
97464 index d04aa58..3de0da8 100644
97465 --- a/include/linux/average.h
97466 +++ b/include/linux/average.h
97467 @@ -36,7 +36,7 @@
97468 BUILD_BUG_ON_NOT_POWER_OF_2(_factor); \
97469 BUILD_BUG_ON_NOT_POWER_OF_2(_weight); \
97470 \
97471 - ACCESS_ONCE(e->internal) = internal ? \
97472 + ACCESS_ONCE_RW(e->internal) = internal ? \
97473 (((internal << weight) - internal) + \
97474 (val << factor)) >> weight : \
97475 (val << factor); \
97476 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
97477 index 576e463..28fd926 100644
97478 --- a/include/linux/binfmts.h
97479 +++ b/include/linux/binfmts.h
97480 @@ -44,7 +44,7 @@ struct linux_binprm {
97481 unsigned interp_flags;
97482 unsigned interp_data;
97483 unsigned long loader, exec;
97484 -};
97485 +} __randomize_layout;
97486
97487 #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
97488 #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
97489 @@ -77,8 +77,10 @@ struct linux_binfmt {
97490 int (*load_binary)(struct linux_binprm *);
97491 int (*load_shlib)(struct file *);
97492 int (*core_dump)(struct coredump_params *cprm);
97493 + void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags);
97494 + void (*handle_mmap)(struct file *);
97495 unsigned long min_coredump; /* minimal dump size */
97496 -};
97497 +} __do_const __randomize_layout;
97498
97499 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
97500
97501 diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
97502 index 9653fdb..b3d3a17 100644
97503 --- a/include/linux/bitmap.h
97504 +++ b/include/linux/bitmap.h
97505 @@ -295,7 +295,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
97506 return find_first_zero_bit(src, nbits) == nbits;
97507 }
97508
97509 -static __always_inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
97510 +static __always_inline int __intentional_overflow(-1) bitmap_weight(const unsigned long *src, unsigned int nbits)
97511 {
97512 if (small_const_nbits(nbits))
97513 return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
97514 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
97515 index e635533..3e89a44 100644
97516 --- a/include/linux/bitops.h
97517 +++ b/include/linux/bitops.h
97518 @@ -75,7 +75,7 @@ static inline int get_count_order(unsigned int count)
97519 return order;
97520 }
97521
97522 -static __always_inline unsigned long hweight_long(unsigned long w)
97523 +static __always_inline unsigned long __intentional_overflow(-1) hweight_long(unsigned long w)
97524 {
97525 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
97526 }
97527 @@ -105,9 +105,9 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
97528 * @word: value to rotate
97529 * @shift: bits to roll
97530 */
97531 -static inline __u32 rol32(__u32 word, unsigned int shift)
97532 +static inline __u32 __intentional_overflow(-1) rol32(__u32 word, unsigned int shift)
97533 {
97534 - return (word << shift) | (word >> (32 - shift));
97535 + return (word << shift) | (word >> ((-shift) & 31));
97536 }
97537
97538 /**
97539 @@ -115,7 +115,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
97540 * @word: value to rotate
97541 * @shift: bits to roll
97542 */
97543 -static inline __u32 ror32(__u32 word, unsigned int shift)
97544 +static inline __u32 __intentional_overflow(-1) ror32(__u32 word, unsigned int shift)
97545 {
97546 return (word >> shift) | (word << (32 - shift));
97547 }
97548 @@ -171,7 +171,7 @@ static inline __s32 sign_extend32(__u32 value, int index)
97549 return (__s32)(value << shift) >> shift;
97550 }
97551
97552 -static inline unsigned fls_long(unsigned long l)
97553 +static inline unsigned __intentional_overflow(-1) fls_long(unsigned long l)
97554 {
97555 if (sizeof(l) == 4)
97556 return fls(l);
97557 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
97558 index 19c2e94..6f12b73 100644
97559 --- a/include/linux/blkdev.h
97560 +++ b/include/linux/blkdev.h
97561 @@ -1633,7 +1633,7 @@ struct block_device_operations {
97562 /* this callback is with swap_lock and sometimes page table lock held */
97563 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
97564 struct module *owner;
97565 -};
97566 +} __do_const;
97567
97568 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
97569 unsigned long);
97570 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
97571 index afc1343..9735539 100644
97572 --- a/include/linux/blktrace_api.h
97573 +++ b/include/linux/blktrace_api.h
97574 @@ -25,7 +25,7 @@ struct blk_trace {
97575 struct dentry *dropped_file;
97576 struct dentry *msg_file;
97577 struct list_head running_list;
97578 - atomic_t dropped;
97579 + atomic_unchecked_t dropped;
97580 };
97581
97582 extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
97583 diff --git a/include/linux/cache.h b/include/linux/cache.h
97584 index 17e7e82..1d7da26 100644
97585 --- a/include/linux/cache.h
97586 +++ b/include/linux/cache.h
97587 @@ -16,6 +16,14 @@
97588 #define __read_mostly
97589 #endif
97590
97591 +#ifndef __read_only
97592 +#ifdef CONFIG_PAX_KERNEXEC
97593 +#error KERNEXEC requires __read_only
97594 +#else
97595 +#define __read_only __read_mostly
97596 +#endif
97597 +#endif
97598 +
97599 #ifndef ____cacheline_aligned
97600 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
97601 #endif
97602 diff --git a/include/linux/capability.h b/include/linux/capability.h
97603 index af9f0b9..71a5e5c 100644
97604 --- a/include/linux/capability.h
97605 +++ b/include/linux/capability.h
97606 @@ -237,15 +237,28 @@ static inline bool capable(int cap)
97607 {
97608 return true;
97609 }
97610 +static inline bool capable_nolog(int cap)
97611 +{
97612 + return true;
97613 +}
97614 static inline bool ns_capable(struct user_namespace *ns, int cap)
97615 {
97616 return true;
97617 }
97618 +static inline bool ns_capable_nolog(struct user_namespace *ns, int cap)
97619 +{
97620 + return true;
97621 +}
97622 #endif /* CONFIG_MULTIUSER */
97623 extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
97624 +extern bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap);
97625 extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
97626 +extern bool capable_nolog(int cap);
97627 +extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
97628
97629 /* audit system wants to get cap info from files as well */
97630 extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
97631
97632 +extern int is_privileged_binary(const struct dentry *dentry);
97633 +
97634 #endif /* !_LINUX_CAPABILITY_H */
97635 diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
97636 index 8609d57..86e4d79 100644
97637 --- a/include/linux/cdrom.h
97638 +++ b/include/linux/cdrom.h
97639 @@ -87,7 +87,6 @@ struct cdrom_device_ops {
97640
97641 /* driver specifications */
97642 const int capability; /* capability flags */
97643 - int n_minors; /* number of active minor devices */
97644 /* handle uniform packets for scsi type devices (scsi,atapi) */
97645 int (*generic_packet) (struct cdrom_device_info *,
97646 struct packet_command *);
97647 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
97648 index bda5ec0b4..51d8ea1 100644
97649 --- a/include/linux/cleancache.h
97650 +++ b/include/linux/cleancache.h
97651 @@ -35,7 +35,7 @@ struct cleancache_ops {
97652 void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
97653 void (*invalidate_inode)(int, struct cleancache_filekey);
97654 void (*invalidate_fs)(int);
97655 -};
97656 +} __no_const;
97657
97658 extern int cleancache_register_ops(struct cleancache_ops *ops);
97659 extern void __cleancache_init_fs(struct super_block *);
97660 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
97661 index 3ecc07d..8e2e3f8 100644
97662 --- a/include/linux/clk-provider.h
97663 +++ b/include/linux/clk-provider.h
97664 @@ -214,6 +214,7 @@ struct clk_ops {
97665 void (*init)(struct clk_hw *hw);
97666 int (*debug_init)(struct clk_hw *hw, struct dentry *dentry);
97667 };
97668 +typedef struct clk_ops __no_const clk_ops_no_const;
97669
97670 /**
97671 * struct clk_init_data - holds init data that's common to all clocks and is
97672 diff --git a/include/linux/compat.h b/include/linux/compat.h
97673 index a76c917..63b52db 100644
97674 --- a/include/linux/compat.h
97675 +++ b/include/linux/compat.h
97676 @@ -316,7 +316,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
97677 compat_size_t __user *len_ptr);
97678
97679 asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
97680 -asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
97681 +asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
97682 asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
97683 asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
97684 compat_ssize_t msgsz, int msgflg);
97685 @@ -325,7 +325,7 @@ asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp,
97686 long compat_sys_msgctl(int first, int second, void __user *uptr);
97687 long compat_sys_shmctl(int first, int second, void __user *uptr);
97688 long compat_sys_semtimedop(int semid, struct sembuf __user *tsems,
97689 - unsigned nsems, const struct compat_timespec __user *timeout);
97690 + compat_long_t nsems, const struct compat_timespec __user *timeout);
97691 asmlinkage long compat_sys_keyctl(u32 option,
97692 u32 arg2, u32 arg3, u32 arg4, u32 arg5);
97693 asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
97694 @@ -439,7 +439,7 @@ extern int compat_ptrace_request(struct task_struct *child,
97695 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
97696 compat_ulong_t addr, compat_ulong_t data);
97697 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
97698 - compat_long_t addr, compat_long_t data);
97699 + compat_ulong_t addr, compat_ulong_t data);
97700
97701 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
97702 /*
97703 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
97704 index 8efb40e..3228e81 100644
97705 --- a/include/linux/compiler-gcc.h
97706 +++ b/include/linux/compiler-gcc.h
97707 @@ -116,8 +116,8 @@
97708 */
97709 #define __pure __attribute__((pure))
97710 #define __aligned(x) __attribute__((aligned(x)))
97711 -#define __printf(a, b) __attribute__((format(printf, a, b)))
97712 -#define __scanf(a, b) __attribute__((format(scanf, a, b)))
97713 +#define __printf(a, b) __attribute__((format(printf, a, b))) __nocapture(a, b)
97714 +#define __scanf(a, b) __attribute__((format(scanf, a, b))) __nocapture(a, b)
97715 #define __attribute_const__ __attribute__((__const__))
97716 #define __maybe_unused __attribute__((unused))
97717 #define __always_unused __attribute__((unused))
97718 @@ -184,9 +184,38 @@
97719 # define __compiletime_warning(message) __attribute__((warning(message)))
97720 # define __compiletime_error(message) __attribute__((error(message)))
97721 #endif /* __CHECKER__ */
97722 +
97723 +#define __alloc_size(...) __attribute((alloc_size(__VA_ARGS__)))
97724 +#define __bos(ptr, arg) __builtin_object_size((ptr), (arg))
97725 +#define __bos0(ptr) __bos((ptr), 0)
97726 +#define __bos1(ptr) __bos((ptr), 1)
97727 #endif /* GCC_VERSION >= 40300 */
97728
97729 #if GCC_VERSION >= 40500
97730 +
97731 +#ifdef RANDSTRUCT_PLUGIN
97732 +#define __randomize_layout __attribute__((randomize_layout))
97733 +#define __no_randomize_layout __attribute__((no_randomize_layout))
97734 +#endif
97735 +
97736 +#ifdef CONSTIFY_PLUGIN
97737 +#define __no_const __attribute__((no_const))
97738 +#define __do_const __attribute__((do_const))
97739 +#endif
97740 +
97741 +#ifdef SIZE_OVERFLOW_PLUGIN
97742 +#define __size_overflow(...) __attribute__((size_overflow(__VA_ARGS__)))
97743 +#define __intentional_overflow(...) __attribute__((intentional_overflow(__VA_ARGS__)))
97744 +#endif
97745 +
97746 +#ifdef LATENT_ENTROPY_PLUGIN
97747 +#define __latent_entropy __attribute__((latent_entropy))
97748 +#endif
97749 +
97750 +#ifdef INITIFY_PLUGIN
97751 +#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
97752 +#endif
97753 +
97754 /*
97755 * Mark a position in code as unreachable. This can be used to
97756 * suppress control flow warnings after asm blocks that transfer
97757 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
97758 index 3d78103..96773bb 100644
97759 --- a/include/linux/compiler.h
97760 +++ b/include/linux/compiler.h
97761 @@ -5,11 +5,14 @@
97762
97763 #ifdef __CHECKER__
97764 # define __user __attribute__((noderef, address_space(1)))
97765 +# define __force_user __force __user
97766 # define __kernel __attribute__((address_space(0)))
97767 +# define __force_kernel __force __kernel
97768 # define __safe __attribute__((safe))
97769 # define __force __attribute__((force))
97770 # define __nocast __attribute__((nocast))
97771 # define __iomem __attribute__((noderef, address_space(2)))
97772 +# define __force_iomem __force __iomem
97773 # define __must_hold(x) __attribute__((context(x,1,1)))
97774 # define __acquires(x) __attribute__((context(x,0,1)))
97775 # define __releases(x) __attribute__((context(x,1,0)))
97776 @@ -17,33 +20,78 @@
97777 # define __release(x) __context__(x,-1)
97778 # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
97779 # define __percpu __attribute__((noderef, address_space(3)))
97780 +# define __force_percpu __force __percpu
97781 # define __pmem __attribute__((noderef, address_space(5)))
97782 +# define __force_pmem __force __pmem
97783 #ifdef CONFIG_SPARSE_RCU_POINTER
97784 # define __rcu __attribute__((noderef, address_space(4)))
97785 +# define __force_rcu __force __rcu
97786 #else
97787 # define __rcu
97788 +# define __force_rcu
97789 #endif
97790 extern void __chk_user_ptr(const volatile void __user *);
97791 extern void __chk_io_ptr(const volatile void __iomem *);
97792 #else
97793 -# define __user
97794 -# define __kernel
97795 +# ifdef CHECKER_PLUGIN
97796 +# ifdef CHECKER_PLUGIN_USER
97797 +//# define __user
97798 +//# define __force_user
97799 +//# define __kernel
97800 +//# define __force_kernel
97801 +# else
97802 +# define __user
97803 +# define __force_user
97804 +# define __kernel
97805 +# define __force_kernel
97806 +# endif
97807 +# ifdef CHECKER_PLUGIN_CONTEXT
97808 +# define __must_hold(x) __attribute__((context(#x,1,1)))
97809 +# define __acquires(x) __attribute__((context(#x,0,1)))
97810 +# define __releases(x) __attribute__((context(#x,1,0)))
97811 +# define __acquire(x) __context__(#x,1)
97812 +# define __release(x) __context__(#x,-1)
97813 +# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
97814 +# define __cond_unlock(x,c) ((c) ? ({ __release(x); 1; }) : 0)
97815 +# else
97816 +# define __must_hold(x)
97817 +# define __acquires(x)
97818 +# define __releases(x)
97819 +# define __acquire(x) (void)0
97820 +# define __release(x) (void)0
97821 +# define __cond_lock(x,c) (c)
97822 +# define __cond_unlock(x,c) (c)
97823 +# endif
97824 +# else
97825 +# ifdef STRUCTLEAK_PLUGIN
97826 +# define __user __attribute__((user))
97827 +# else
97828 +# define __user
97829 +# endif
97830 +# define __force_user
97831 +# define __kernel
97832 +# define __force_kernel
97833 +# define __must_hold(x)
97834 +# define __acquires(x)
97835 +# define __releases(x)
97836 +# define __acquire(x) (void)0
97837 +# define __release(x) (void)0
97838 +# define __cond_lock(x,c) (c)
97839 +# endif
97840 # define __safe
97841 # define __force
97842 # define __nocast
97843 # define __iomem
97844 +# define __force_iomem
97845 # define __chk_user_ptr(x) (void)0
97846 # define __chk_io_ptr(x) (void)0
97847 # define __builtin_warning(x, y...) (1)
97848 -# define __must_hold(x)
97849 -# define __acquires(x)
97850 -# define __releases(x)
97851 -# define __acquire(x) (void)0
97852 -# define __release(x) (void)0
97853 -# define __cond_lock(x,c) (c)
97854 # define __percpu
97855 +# define __force_percpu
97856 # define __rcu
97857 +# define __force_rcu
97858 # define __pmem
97859 +# define __force_pmem
97860 #endif
97861
97862 /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
97863 @@ -198,29 +246,20 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
97864
97865 #include <uapi/linux/types.h>
97866
97867 -#define __READ_ONCE_SIZE \
97868 -({ \
97869 - switch (size) { \
97870 - case 1: *(__u8 *)res = *(volatile __u8 *)p; break; \
97871 - case 2: *(__u16 *)res = *(volatile __u16 *)p; break; \
97872 - case 4: *(__u32 *)res = *(volatile __u32 *)p; break; \
97873 - case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \
97874 - default: \
97875 - barrier(); \
97876 - __builtin_memcpy((void *)res, (const void *)p, size); \
97877 - barrier(); \
97878 - } \
97879 -})
97880 -
97881 -static __always_inline
97882 -void __read_once_size(const volatile void *p, void *res, int size)
97883 -{
97884 - __READ_ONCE_SIZE;
97885 -}
97886 -
97887 #ifdef CONFIG_KASAN
97888 /*
97889 - * This function is not 'inline' because __no_sanitize_address confilcts
97890 + * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
97891 + * to hide memory access from KASAN.
97892 + */
97893 +#define READ_ONCE_NOCHECK(x) \
97894 +({ \
97895 + union { typeof(x) __val; char __c[sizeof(x)]; } __u; \
97896 + __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
97897 + __u.__val; \
97898 +})
97899 +
97900 +/*
97901 + * This function is not 'inline' because __no_sanitize_address conflicts
97902 * with inlining. Attempt to inline it may cause a build failure.
97903 * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
97904 * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
97905 @@ -228,29 +267,20 @@ void __read_once_size(const volatile void *p, void *res, int size)
97906 static __no_sanitize_address __maybe_unused
97907 void __read_once_size_nocheck(const volatile void *p, void *res, int size)
97908 {
97909 - __READ_ONCE_SIZE;
97910 -}
97911 -#else
97912 -static __always_inline
97913 -void __read_once_size_nocheck(const volatile void *p, void *res, int size)
97914 -{
97915 - __READ_ONCE_SIZE;
97916 -}
97917 -#endif
97918 -
97919 -static __always_inline void __write_once_size(volatile void *p, void *res, int size)
97920 -{
97921 switch (size) {
97922 - case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
97923 - case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
97924 - case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
97925 - case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
97926 + case 1: *(__u8 *)res = *(const volatile __u8 *)p; break;
97927 + case 2: *(__u16 *)res = *(const volatile __u16 *)p; break;
97928 + case 4: *(__u32 *)res = *(const volatile __u32 *)p; break;
97929 + case 8: *(__u64 *)res = *(const volatile __u64 *)p; break;
97930 default:
97931 barrier();
97932 - __builtin_memcpy((void *)p, (const void *)res, size);
97933 + __builtin_memcpy(res, (const void *)p, size);
97934 barrier();
97935 }
97936 }
97937 +#else
97938 +#define READ_ONCE_NOCHECK(x) READ_ONCE(x)
97939 +#endif
97940
97941 /*
97942 * Prevent the compiler from merging or refetching reads or writes. The
97943 @@ -274,29 +304,15 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97944 * required ordering.
97945 */
97946
97947 -#define __READ_ONCE(x, check) \
97948 -({ \
97949 - union { typeof(x) __val; char __c[1]; } __u; \
97950 - if (check) \
97951 - __read_once_size(&(x), __u.__c, sizeof(x)); \
97952 - else \
97953 - __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
97954 - __u.__val; \
97955 +#define READ_ONCE(x) ({ \
97956 + typeof(x) __val = *(volatile typeof(x) *)&(x); \
97957 + __val; \
97958 })
97959 -#define READ_ONCE(x) __READ_ONCE(x, 1)
97960
97961 -/*
97962 - * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
97963 - * to hide memory access from KASAN.
97964 - */
97965 -#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0)
97966 -
97967 -#define WRITE_ONCE(x, val) \
97968 -({ \
97969 - union { typeof(x) __val; char __c[1]; } __u = \
97970 - { .__val = (__force typeof(x)) (val) }; \
97971 - __write_once_size(&(x), __u.__c, sizeof(x)); \
97972 - __u.__val; \
97973 +#define WRITE_ONCE(x, val) ({ \
97974 + typeof(x) __val = (val); \
97975 + (x) = *(volatile typeof(x) *)&__val; \
97976 + __val; \
97977 })
97978
97979 /**
97980 @@ -415,6 +431,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97981 # define __attribute_const__ /* unimplemented */
97982 #endif
97983
97984 +#ifndef __randomize_layout
97985 +# define __randomize_layout
97986 +#endif
97987 +
97988 +#ifndef __no_randomize_layout
97989 +# define __no_randomize_layout
97990 +#endif
97991 +
97992 +#ifndef __no_const
97993 +# define __no_const
97994 +#endif
97995 +
97996 +#ifndef __do_const
97997 +# define __do_const
97998 +#endif
97999 +
98000 +#ifndef __size_overflow
98001 +# define __size_overflow(...)
98002 +#endif
98003 +
98004 +#ifndef __intentional_overflow
98005 +# define __intentional_overflow(...)
98006 +#endif
98007 +
98008 +#ifndef __latent_entropy
98009 +# define __latent_entropy
98010 +#endif
98011 +
98012 +#ifndef __nocapture
98013 +# define __nocapture(...)
98014 +#endif
98015 +
98016 /*
98017 * Tell gcc if a function is cold. The compiler will assume any path
98018 * directly leading to the call is unlikely.
98019 @@ -424,6 +472,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98020 #define __cold
98021 #endif
98022
98023 +#ifndef __alloc_size
98024 +#define __alloc_size(...)
98025 +#endif
98026 +
98027 +#ifndef __bos
98028 +#define __bos(ptr, arg)
98029 +#endif
98030 +
98031 +#ifndef __bos0
98032 +#define __bos0(ptr)
98033 +#endif
98034 +
98035 +#ifndef __bos1
98036 +#define __bos1(ptr)
98037 +#endif
98038 +
98039 /* Simple shorthand for a section definition */
98040 #ifndef __section
98041 # define __section(S) __attribute__ ((__section__(#S)))
98042 @@ -438,6 +502,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98043 # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
98044 #endif
98045
98046 +#define __type_is_unsigned(t) (__same_type((t)0, 0UL) || __same_type((t)0, 0U) || __same_type((t)0, (unsigned short)0) || __same_type((t)0, (unsigned char)0))
98047 +
98048 /* Is this type a native word size -- useful for atomic operations */
98049 #ifndef __native_word
98050 # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
98051 @@ -517,8 +583,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98052 */
98053 #define __ACCESS_ONCE(x) ({ \
98054 __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
98055 - (volatile typeof(x) *)&(x); })
98056 + (volatile const typeof(x) *)&(x); })
98057 #define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
98058 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
98059
98060 /**
98061 * lockless_dereference() - safely load a pointer for later dereference
98062 diff --git a/include/linux/configfs.h b/include/linux/configfs.h
98063 index 63a36e8..26b0825 100644
98064 --- a/include/linux/configfs.h
98065 +++ b/include/linux/configfs.h
98066 @@ -125,7 +125,7 @@ struct configfs_attribute {
98067 const char *ca_name;
98068 struct module *ca_owner;
98069 umode_t ca_mode;
98070 -};
98071 +} __do_const;
98072
98073 /*
98074 * Users often need to create attribute structures for their configurable
98075 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
98076 index dca22de..fa1927ad5 100644
98077 --- a/include/linux/cpufreq.h
98078 +++ b/include/linux/cpufreq.h
98079 @@ -214,6 +214,7 @@ struct global_attr {
98080 ssize_t (*store)(struct kobject *a, struct attribute *b,
98081 const char *c, size_t count);
98082 };
98083 +typedef struct global_attr __no_const global_attr_no_const;
98084
98085 #define define_one_global_ro(_name) \
98086 static struct global_attr _name = \
98087 @@ -285,7 +286,7 @@ struct cpufreq_driver {
98088 bool boost_supported;
98089 bool boost_enabled;
98090 int (*set_boost)(int state);
98091 -};
98092 +} __do_const;
98093
98094 /* flags */
98095 #define CPUFREQ_STICKY (1 << 0) /* driver isn't removed even if
98096 diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
98097 index 786ad32..09d1fb1 100644
98098 --- a/include/linux/cpuidle.h
98099 +++ b/include/linux/cpuidle.h
98100 @@ -59,7 +59,8 @@ struct cpuidle_state {
98101 void (*enter_freeze) (struct cpuidle_device *dev,
98102 struct cpuidle_driver *drv,
98103 int index);
98104 -};
98105 +} __do_const;
98106 +typedef struct cpuidle_state __no_const cpuidle_state_no_const;
98107
98108 /* Idle State Flags */
98109 #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
98110 @@ -234,7 +235,7 @@ struct cpuidle_governor {
98111 void (*reflect) (struct cpuidle_device *dev, int index);
98112
98113 struct module *owner;
98114 -};
98115 +} __do_const;
98116
98117 #ifdef CONFIG_CPU_IDLE
98118 extern int cpuidle_register_governor(struct cpuidle_governor *gov);
98119 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
98120 index 59915ea..81ebec0 100644
98121 --- a/include/linux/cpumask.h
98122 +++ b/include/linux/cpumask.h
98123 @@ -127,17 +127,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
98124 }
98125
98126 /* Valid inputs for n are -1 and 0. */
98127 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98128 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
98129 {
98130 return n+1;
98131 }
98132
98133 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98134 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
98135 {
98136 return n+1;
98137 }
98138
98139 -static inline unsigned int cpumask_next_and(int n,
98140 +static inline unsigned int __intentional_overflow(-1) cpumask_next_and(int n,
98141 const struct cpumask *srcp,
98142 const struct cpumask *andp)
98143 {
98144 @@ -181,7 +181,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
98145 *
98146 * Returns >= nr_cpu_ids if no further cpus set.
98147 */
98148 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98149 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
98150 {
98151 /* -1 is a legal arg here. */
98152 if (n != -1)
98153 @@ -196,7 +196,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98154 *
98155 * Returns >= nr_cpu_ids if no further cpus unset.
98156 */
98157 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98158 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
98159 {
98160 /* -1 is a legal arg here. */
98161 if (n != -1)
98162 @@ -204,7 +204,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98163 return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
98164 }
98165
98166 -int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
98167 +int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1);
98168 int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
98169 unsigned int cpumask_local_spread(unsigned int i, int node);
98170
98171 @@ -471,7 +471,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
98172 * cpumask_weight - Count of bits in *srcp
98173 * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
98174 */
98175 -static inline unsigned int cpumask_weight(const struct cpumask *srcp)
98176 +static inline unsigned int __intentional_overflow(-1) cpumask_weight(const struct cpumask *srcp)
98177 {
98178 return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
98179 }
98180 diff --git a/include/linux/cred.h b/include/linux/cred.h
98181 index 8d70e13..37dfbd2 100644
98182 --- a/include/linux/cred.h
98183 +++ b/include/linux/cred.h
98184 @@ -35,7 +35,7 @@ struct group_info {
98185 int nblocks;
98186 kgid_t small_block[NGROUPS_SMALL];
98187 kgid_t *blocks[0];
98188 -};
98189 +} __randomize_layout;
98190
98191 /**
98192 * get_group_info - Get a reference to a group info structure
98193 @@ -153,7 +153,7 @@ struct cred {
98194 struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
98195 struct group_info *group_info; /* supplementary groups for euid/fsgid */
98196 struct rcu_head rcu; /* RCU deletion hook */
98197 -};
98198 +} __randomize_layout;
98199
98200 extern void __put_cred(struct cred *);
98201 extern void exit_creds(struct task_struct *);
98202 @@ -211,6 +211,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
98203 static inline void validate_process_creds(void)
98204 {
98205 }
98206 +static inline void validate_task_creds(struct task_struct *task)
98207 +{
98208 +}
98209 #endif
98210
98211 static inline bool cap_ambient_invariant_ok(const struct cred *cred)
98212 @@ -355,6 +358,7 @@ static inline void put_cred(const struct cred *_cred)
98213
98214 #define task_uid(task) (task_cred_xxx((task), uid))
98215 #define task_euid(task) (task_cred_xxx((task), euid))
98216 +#define task_securebits(task) (task_cred_xxx((task), securebits))
98217
98218 #define current_cred_xxx(xxx) \
98219 ({ \
98220 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
98221 index e71cb70..0e90b90 100644
98222 --- a/include/linux/crypto.h
98223 +++ b/include/linux/crypto.h
98224 @@ -517,7 +517,7 @@ struct cipher_tfm {
98225 const u8 *key, unsigned int keylen);
98226 void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
98227 void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
98228 -};
98229 +} __no_const;
98230
98231 struct hash_tfm {
98232 int (*init)(struct hash_desc *desc);
98233 @@ -538,7 +538,7 @@ struct compress_tfm {
98234 int (*cot_decompress)(struct crypto_tfm *tfm,
98235 const u8 *src, unsigned int slen,
98236 u8 *dst, unsigned int *dlen);
98237 -};
98238 +} __no_const;
98239
98240 #define crt_ablkcipher crt_u.ablkcipher
98241 #define crt_blkcipher crt_u.blkcipher
98242 diff --git a/include/linux/ctype.h b/include/linux/ctype.h
98243 index 653589e..4ef254a 100644
98244 --- a/include/linux/ctype.h
98245 +++ b/include/linux/ctype.h
98246 @@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c)
98247 * Fast implementation of tolower() for internal usage. Do not use in your
98248 * code.
98249 */
98250 -static inline char _tolower(const char c)
98251 +static inline unsigned char _tolower(const unsigned char c)
98252 {
98253 return c | 0x20;
98254 }
98255 diff --git a/include/linux/dcache.h b/include/linux/dcache.h
98256 index d67ae11..9ec20d2 100644
98257 --- a/include/linux/dcache.h
98258 +++ b/include/linux/dcache.h
98259 @@ -123,6 +123,9 @@ struct dentry {
98260 unsigned long d_time; /* used by d_revalidate */
98261 void *d_fsdata; /* fs-specific data */
98262
98263 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
98264 + atomic_t chroot_refcnt; /* tracks use of directory in chroot */
98265 +#endif
98266 struct list_head d_lru; /* LRU list */
98267 struct list_head d_child; /* child of parent list */
98268 struct list_head d_subdirs; /* our children */
98269 @@ -133,7 +136,7 @@ struct dentry {
98270 struct hlist_node d_alias; /* inode alias list */
98271 struct rcu_head d_rcu;
98272 } d_u;
98273 -};
98274 +} __randomize_layout;
98275
98276 /*
98277 * dentry->d_lock spinlock nesting subclasses:
98278 @@ -321,7 +324,7 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
98279
98280 static inline unsigned d_count(const struct dentry *dentry)
98281 {
98282 - return dentry->d_lockref.count;
98283 + return __lockref_read(&dentry->d_lockref);
98284 }
98285
98286 /*
98287 @@ -350,7 +353,7 @@ extern char *dentry_path(struct dentry *, char *, int);
98288 static inline struct dentry *dget_dlock(struct dentry *dentry)
98289 {
98290 if (dentry)
98291 - dentry->d_lockref.count++;
98292 + __lockref_inc(&dentry->d_lockref);
98293 return dentry;
98294 }
98295
98296 diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
98297 index 7925bf0..d5143d2 100644
98298 --- a/include/linux/decompress/mm.h
98299 +++ b/include/linux/decompress/mm.h
98300 @@ -77,7 +77,7 @@ static void free(void *where)
98301 * warnings when not needed (indeed large_malloc / large_free are not
98302 * needed by inflate */
98303
98304 -#define malloc(a) kmalloc(a, GFP_KERNEL)
98305 +#define malloc(a) kmalloc((a), GFP_KERNEL)
98306 #define free(a) kfree(a)
98307
98308 #define large_malloc(a) vmalloc(a)
98309 diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
98310 index 68030e2..c55bb73 100644
98311 --- a/include/linux/devfreq.h
98312 +++ b/include/linux/devfreq.h
98313 @@ -117,7 +117,7 @@ struct devfreq_governor {
98314 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
98315 int (*event_handler)(struct devfreq *devfreq,
98316 unsigned int event, void *data);
98317 -};
98318 +} __do_const;
98319
98320 /**
98321 * struct devfreq - Device devfreq structure
98322 diff --git a/include/linux/device.h b/include/linux/device.h
98323 index 5d7bc63..7fe6331 100644
98324 --- a/include/linux/device.h
98325 +++ b/include/linux/device.h
98326 @@ -342,7 +342,7 @@ struct subsys_interface {
98327 struct list_head node;
98328 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
98329 void (*remove_dev)(struct device *dev, struct subsys_interface *sif);
98330 -};
98331 +} __do_const;
98332
98333 int subsys_interface_register(struct subsys_interface *sif);
98334 void subsys_interface_unregister(struct subsys_interface *sif);
98335 @@ -538,7 +538,7 @@ struct device_type {
98336 void (*release)(struct device *dev);
98337
98338 const struct dev_pm_ops *pm;
98339 -};
98340 +} __do_const;
98341
98342 /* interface for exporting device attributes */
98343 struct device_attribute {
98344 @@ -548,11 +548,12 @@ struct device_attribute {
98345 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
98346 const char *buf, size_t count);
98347 };
98348 +typedef struct device_attribute __no_const device_attribute_no_const;
98349
98350 struct dev_ext_attribute {
98351 struct device_attribute attr;
98352 void *var;
98353 -};
98354 +} __do_const;
98355
98356 ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
98357 char *buf);
98358 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
98359 index ac07ff0..edff186 100644
98360 --- a/include/linux/dma-mapping.h
98361 +++ b/include/linux/dma-mapping.h
98362 @@ -64,7 +64,7 @@ struct dma_map_ops {
98363 u64 (*get_required_mask)(struct device *dev);
98364 #endif
98365 int is_phys;
98366 -};
98367 +} __do_const;
98368
98369 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
98370
98371 diff --git a/include/linux/efi.h b/include/linux/efi.h
98372 index 85ef051..2714c3b 100644
98373 --- a/include/linux/efi.h
98374 +++ b/include/linux/efi.h
98375 @@ -1073,6 +1073,7 @@ struct efivar_operations {
98376 efi_set_variable_nonblocking_t *set_variable_nonblocking;
98377 efi_query_variable_store_t *query_variable_store;
98378 };
98379 +typedef struct efivar_operations __no_const efivar_operations_no_const;
98380
98381 struct efivars {
98382 /*
98383 diff --git a/include/linux/elf.h b/include/linux/elf.h
98384 index 20fa8d8..3d0dd18 100644
98385 --- a/include/linux/elf.h
98386 +++ b/include/linux/elf.h
98387 @@ -29,6 +29,7 @@ extern Elf32_Dyn _DYNAMIC [];
98388 #define elf_note elf32_note
98389 #define elf_addr_t Elf32_Off
98390 #define Elf_Half Elf32_Half
98391 +#define elf_dyn Elf32_Dyn
98392
98393 #else
98394
98395 @@ -39,6 +40,7 @@ extern Elf64_Dyn _DYNAMIC [];
98396 #define elf_note elf64_note
98397 #define elf_addr_t Elf64_Off
98398 #define Elf_Half Elf64_Half
98399 +#define elf_dyn Elf64_Dyn
98400
98401 #endif
98402
98403 diff --git a/include/linux/err.h b/include/linux/err.h
98404 index a729120..6ede2c9 100644
98405 --- a/include/linux/err.h
98406 +++ b/include/linux/err.h
98407 @@ -20,12 +20,12 @@
98408
98409 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
98410
98411 -static inline void * __must_check ERR_PTR(long error)
98412 +static inline void * __must_check __intentional_overflow(-1) ERR_PTR(long error)
98413 {
98414 return (void *) error;
98415 }
98416
98417 -static inline long __must_check PTR_ERR(__force const void *ptr)
98418 +static inline long __must_check __intentional_overflow(-1) PTR_ERR(__force const void *ptr)
98419 {
98420 return (long) ptr;
98421 }
98422 diff --git a/include/linux/extcon.h b/include/linux/extcon.h
98423 index c0f8c4f..f1fad6f 100644
98424 --- a/include/linux/extcon.h
98425 +++ b/include/linux/extcon.h
98426 @@ -113,7 +113,7 @@ struct extcon_dev {
98427 /* /sys/class/extcon/.../mutually_exclusive/... */
98428 struct attribute_group attr_g_muex;
98429 struct attribute **attrs_muex;
98430 - struct device_attribute *d_attrs_muex;
98431 + device_attribute_no_const *d_attrs_muex;
98432 };
98433
98434 /**
98435 diff --git a/include/linux/fb.h b/include/linux/fb.h
98436 index bc9afa7..15d1341 100644
98437 --- a/include/linux/fb.h
98438 +++ b/include/linux/fb.h
98439 @@ -305,7 +305,8 @@ struct fb_ops {
98440 /* called at KDB enter and leave time to prepare the console */
98441 int (*fb_debug_enter)(struct fb_info *info);
98442 int (*fb_debug_leave)(struct fb_info *info);
98443 -};
98444 +} __do_const;
98445 +typedef struct fb_ops __no_const fb_ops_no_const;
98446
98447 #ifdef CONFIG_FB_TILEBLITTING
98448 #define FB_TILE_CURSOR_NONE 0
98449 diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
98450 index 674e3e2..f68af19 100644
98451 --- a/include/linux/fdtable.h
98452 +++ b/include/linux/fdtable.h
98453 @@ -103,7 +103,7 @@ struct files_struct *get_files_struct(struct task_struct *);
98454 void put_files_struct(struct files_struct *fs);
98455 void reset_files_struct(struct files_struct *);
98456 int unshare_files(struct files_struct **);
98457 -struct files_struct *dup_fd(struct files_struct *, int *);
98458 +struct files_struct *dup_fd(struct files_struct *, int *) __latent_entropy;
98459 void do_close_on_exec(struct files_struct *);
98460 int iterate_fd(struct files_struct *, unsigned,
98461 int (*)(const void *, struct file *, unsigned),
98462 diff --git a/include/linux/fs.h b/include/linux/fs.h
98463 index 72d8a84..4027250 100644
98464 --- a/include/linux/fs.h
98465 +++ b/include/linux/fs.h
98466 @@ -439,7 +439,7 @@ struct address_space {
98467 spinlock_t private_lock; /* for use by the address_space */
98468 struct list_head private_list; /* ditto */
98469 void *private_data; /* ditto */
98470 -} __attribute__((aligned(sizeof(long))));
98471 +} __attribute__((aligned(sizeof(long)))) __randomize_layout;
98472 /*
98473 * On most architectures that alignment is already the case; but
98474 * must be enforced here for CRIS, to let the least significant bit
98475 @@ -482,7 +482,7 @@ struct block_device {
98476 int bd_fsfreeze_count;
98477 /* Mutex for freeze */
98478 struct mutex bd_fsfreeze_mutex;
98479 -};
98480 +} __randomize_layout;
98481
98482 /*
98483 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
98484 @@ -677,7 +677,7 @@ struct inode {
98485 #endif
98486
98487 void *i_private; /* fs or device private pointer */
98488 -};
98489 +} __randomize_layout;
98490
98491 static inline int inode_unhashed(struct inode *inode)
98492 {
98493 @@ -872,7 +872,7 @@ struct file {
98494 struct list_head f_tfile_llink;
98495 #endif /* #ifdef CONFIG_EPOLL */
98496 struct address_space *f_mapping;
98497 -} __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */
98498 +} __attribute__((aligned(4))) __randomize_layout; /* lest something weird decides that 2 is OK */
98499
98500 struct file_handle {
98501 __u32 handle_bytes;
98502 @@ -1007,7 +1007,7 @@ struct file_lock {
98503 int state; /* state of grant or error if -ve */
98504 } afs;
98505 } fl_u;
98506 -};
98507 +} __randomize_layout;
98508
98509 struct file_lock_context {
98510 spinlock_t flc_lock;
98511 @@ -1386,7 +1386,7 @@ struct super_block {
98512 /* s_inode_list_lock protects s_inodes */
98513 spinlock_t s_inode_list_lock ____cacheline_aligned_in_smp;
98514 struct list_head s_inodes; /* all inodes */
98515 -};
98516 +} __randomize_layout;
98517
98518 extern struct timespec current_fs_time(struct super_block *sb);
98519
98520 @@ -1642,7 +1642,8 @@ struct file_operations {
98521 #ifndef CONFIG_MMU
98522 unsigned (*mmap_capabilities)(struct file *);
98523 #endif
98524 -};
98525 +} __do_const __randomize_layout;
98526 +typedef struct file_operations __no_const file_operations_no_const;
98527
98528 struct inode_operations {
98529 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
98530 @@ -2351,7 +2352,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
98531 extern int __register_chrdev(unsigned int major, unsigned int baseminor,
98532 unsigned int count, const char *name,
98533 const struct file_operations *fops);
98534 -extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98535 +extern __nocapture(4) void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98536 unsigned int count, const char *name);
98537 extern void unregister_chrdev_region(dev_t, unsigned);
98538 extern void chrdev_show(struct seq_file *,off_t);
98539 @@ -3040,4 +3041,14 @@ static inline bool dir_relax(struct inode *inode)
98540
98541 extern bool path_noexec(const struct path *path);
98542
98543 +static inline bool is_sidechannel_device(const struct inode *inode)
98544 +{
98545 +#ifdef CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL
98546 + umode_t mode = inode->i_mode;
98547 + return ((S_ISCHR(mode) || S_ISBLK(mode)) && (mode & (S_IROTH | S_IWOTH)));
98548 +#else
98549 + return false;
98550 +#endif
98551 +}
98552 +
98553 #endif /* _LINUX_FS_H */
98554 diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
98555 index 0efc3e6..fd23610 100644
98556 --- a/include/linux/fs_struct.h
98557 +++ b/include/linux/fs_struct.h
98558 @@ -6,13 +6,13 @@
98559 #include <linux/seqlock.h>
98560
98561 struct fs_struct {
98562 - int users;
98563 + atomic_t users;
98564 spinlock_t lock;
98565 seqcount_t seq;
98566 int umask;
98567 int in_exec;
98568 struct path root, pwd;
98569 -};
98570 +} __randomize_layout;
98571
98572 extern struct kmem_cache *fs_cachep;
98573
98574 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
98575 index 604e152..5954d0d 100644
98576 --- a/include/linux/fscache-cache.h
98577 +++ b/include/linux/fscache-cache.h
98578 @@ -117,7 +117,7 @@ struct fscache_operation {
98579 fscache_operation_release_t release;
98580 };
98581
98582 -extern atomic_t fscache_op_debug_id;
98583 +extern atomic_unchecked_t fscache_op_debug_id;
98584 extern void fscache_op_work_func(struct work_struct *work);
98585
98586 extern void fscache_enqueue_operation(struct fscache_operation *);
98587 diff --git a/include/linux/fscache.h b/include/linux/fscache.h
98588 index 115bb81..e7b812b 100644
98589 --- a/include/linux/fscache.h
98590 +++ b/include/linux/fscache.h
98591 @@ -152,7 +152,7 @@ struct fscache_cookie_def {
98592 * - this is mandatory for any object that may have data
98593 */
98594 void (*now_uncached)(void *cookie_netfs_data);
98595 -};
98596 +} __do_const;
98597
98598 /*
98599 * fscache cached network filesystem type
98600 diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
98601 index 7ee1774..72505b8 100644
98602 --- a/include/linux/fsnotify.h
98603 +++ b/include/linux/fsnotify.h
98604 @@ -197,6 +197,9 @@ static inline void fsnotify_access(struct file *file)
98605 struct inode *inode = file_inode(file);
98606 __u32 mask = FS_ACCESS;
98607
98608 + if (is_sidechannel_device(inode))
98609 + return;
98610 +
98611 if (S_ISDIR(inode->i_mode))
98612 mask |= FS_ISDIR;
98613
98614 @@ -215,6 +218,9 @@ static inline void fsnotify_modify(struct file *file)
98615 struct inode *inode = file_inode(file);
98616 __u32 mask = FS_MODIFY;
98617
98618 + if (is_sidechannel_device(inode))
98619 + return;
98620 +
98621 if (S_ISDIR(inode->i_mode))
98622 mask |= FS_ISDIR;
98623
98624 @@ -317,7 +323,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
98625 */
98626 static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
98627 {
98628 - return kstrdup(name, GFP_KERNEL);
98629 + return (const unsigned char *)kstrdup((const char *)name, GFP_KERNEL);
98630 }
98631
98632 /*
98633 diff --git a/include/linux/genhd.h b/include/linux/genhd.h
98634 index 2adbfa6..abfd2e6 100644
98635 --- a/include/linux/genhd.h
98636 +++ b/include/linux/genhd.h
98637 @@ -195,7 +195,7 @@ struct gendisk {
98638 struct kobject *slave_dir;
98639
98640 struct timer_rand_state *random;
98641 - atomic_t sync_io; /* RAID */
98642 + atomic_unchecked_t sync_io; /* RAID */
98643 struct disk_events *ev;
98644 #ifdef CONFIG_BLK_DEV_INTEGRITY
98645 struct blk_integrity *integrity;
98646 @@ -436,7 +436,7 @@ extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
98647 extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
98648
98649 /* drivers/char/random.c */
98650 -extern void add_disk_randomness(struct gendisk *disk);
98651 +extern void add_disk_randomness(struct gendisk *disk) __latent_entropy;
98652 extern void rand_initialize_disk(struct gendisk *disk);
98653
98654 static inline sector_t get_start_sect(struct block_device *bdev)
98655 diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h
98656 index 667c311..abac2a7 100644
98657 --- a/include/linux/genl_magic_func.h
98658 +++ b/include/linux/genl_magic_func.h
98659 @@ -246,7 +246,7 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd)
98660 },
98661
98662 #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops)
98663 -static struct genl_ops ZZZ_genl_ops[] __read_mostly = {
98664 +static struct genl_ops ZZZ_genl_ops[] = {
98665 #include GENL_MAGIC_INCLUDE_FILE
98666 };
98667
98668 diff --git a/include/linux/gfp.h b/include/linux/gfp.h
98669 index f92cbd2..389d885 100644
98670 --- a/include/linux/gfp.h
98671 +++ b/include/linux/gfp.h
98672 @@ -35,6 +35,13 @@ struct vm_area_struct;
98673 #define ___GFP_NO_KSWAPD 0x400000u
98674 #define ___GFP_OTHER_NODE 0x800000u
98675 #define ___GFP_WRITE 0x1000000u
98676 +
98677 +#ifdef CONFIG_PAX_USERCOPY_SLABS
98678 +#define ___GFP_USERCOPY 0x2000000u
98679 +#else
98680 +#define ___GFP_USERCOPY 0
98681 +#endif
98682 +
98683 /* If the above are modified, __GFP_BITS_SHIFT may need updating */
98684
98685 /*
98686 @@ -97,6 +104,7 @@ struct vm_area_struct;
98687 #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
98688 #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
98689 #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE) /* Allocator intends to dirty page */
98690 +#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
98691
98692 /*
98693 * This may seem redundant, but it's a way of annotating false positives vs.
98694 @@ -104,7 +112,7 @@ struct vm_area_struct;
98695 */
98696 #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
98697
98698 -#define __GFP_BITS_SHIFT 25 /* Room for N __GFP_FOO bits */
98699 +#define __GFP_BITS_SHIFT 26 /* Room for N __GFP_FOO bits */
98700 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
98701
98702 /* This equals 0, but use constants in case they ever change */
98703 @@ -149,6 +157,8 @@ struct vm_area_struct;
98704 /* 4GB DMA on some platforms */
98705 #define GFP_DMA32 __GFP_DMA32
98706
98707 +#define GFP_USERCOPY __GFP_USERCOPY
98708 +
98709 /* Convert GFP flags to their corresponding migrate type */
98710 static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
98711 {
98712 diff --git a/include/linux/gracl.h b/include/linux/gracl.h
98713 new file mode 100644
98714 index 0000000..91858e4
98715 --- /dev/null
98716 +++ b/include/linux/gracl.h
98717 @@ -0,0 +1,342 @@
98718 +#ifndef GR_ACL_H
98719 +#define GR_ACL_H
98720 +
98721 +#include <linux/grdefs.h>
98722 +#include <linux/resource.h>
98723 +#include <linux/capability.h>
98724 +#include <linux/dcache.h>
98725 +#include <asm/resource.h>
98726 +
98727 +/* Major status information */
98728 +
98729 +#define GR_VERSION "grsecurity 3.1"
98730 +#define GRSECURITY_VERSION 0x3100
98731 +
98732 +enum {
98733 + GR_SHUTDOWN = 0,
98734 + GR_ENABLE = 1,
98735 + GR_SPROLE = 2,
98736 + GR_OLDRELOAD = 3,
98737 + GR_SEGVMOD = 4,
98738 + GR_STATUS = 5,
98739 + GR_UNSPROLE = 6,
98740 + GR_PASSSET = 7,
98741 + GR_SPROLEPAM = 8,
98742 + GR_RELOAD = 9,
98743 +};
98744 +
98745 +/* Password setup definitions
98746 + * kernel/grhash.c */
98747 +enum {
98748 + GR_PW_LEN = 128,
98749 + GR_SALT_LEN = 16,
98750 + GR_SHA_LEN = 32,
98751 +};
98752 +
98753 +enum {
98754 + GR_SPROLE_LEN = 64,
98755 +};
98756 +
98757 +enum {
98758 + GR_NO_GLOB = 0,
98759 + GR_REG_GLOB,
98760 + GR_CREATE_GLOB
98761 +};
98762 +
98763 +#define GR_NLIMITS 32
98764 +
98765 +/* Begin Data Structures */
98766 +
98767 +struct sprole_pw {
98768 + unsigned char *rolename;
98769 + unsigned char salt[GR_SALT_LEN];
98770 + unsigned char sum[GR_SHA_LEN]; /* 256-bit SHA hash of the password */
98771 +};
98772 +
98773 +struct name_entry {
98774 + __u32 key;
98775 + u64 inode;
98776 + dev_t device;
98777 + char *name;
98778 + __u16 len;
98779 + __u8 deleted;
98780 + struct name_entry *prev;
98781 + struct name_entry *next;
98782 +};
98783 +
98784 +struct inodev_entry {
98785 + struct name_entry *nentry;
98786 + struct inodev_entry *prev;
98787 + struct inodev_entry *next;
98788 +};
98789 +
98790 +struct acl_role_db {
98791 + struct acl_role_label **r_hash;
98792 + __u32 r_size;
98793 +};
98794 +
98795 +struct inodev_db {
98796 + struct inodev_entry **i_hash;
98797 + __u32 i_size;
98798 +};
98799 +
98800 +struct name_db {
98801 + struct name_entry **n_hash;
98802 + __u32 n_size;
98803 +};
98804 +
98805 +struct crash_uid {
98806 + uid_t uid;
98807 + unsigned long expires;
98808 +};
98809 +
98810 +struct gr_hash_struct {
98811 + void **table;
98812 + void **nametable;
98813 + void *first;
98814 + __u32 table_size;
98815 + __u32 used_size;
98816 + int type;
98817 +};
98818 +
98819 +/* Userspace Grsecurity ACL data structures */
98820 +
98821 +struct acl_subject_label {
98822 + char *filename;
98823 + u64 inode;
98824 + dev_t device;
98825 + __u32 mode;
98826 + kernel_cap_t cap_mask;
98827 + kernel_cap_t cap_lower;
98828 + kernel_cap_t cap_invert_audit;
98829 +
98830 + struct rlimit res[GR_NLIMITS];
98831 + __u32 resmask;
98832 +
98833 + __u8 user_trans_type;
98834 + __u8 group_trans_type;
98835 + uid_t *user_transitions;
98836 + gid_t *group_transitions;
98837 + __u16 user_trans_num;
98838 + __u16 group_trans_num;
98839 +
98840 + __u32 sock_families[2];
98841 + __u32 ip_proto[8];
98842 + __u32 ip_type;
98843 + struct acl_ip_label **ips;
98844 + __u32 ip_num;
98845 + __u32 inaddr_any_override;
98846 +
98847 + __u32 crashes;
98848 + unsigned long expires;
98849 +
98850 + struct acl_subject_label *parent_subject;
98851 + struct gr_hash_struct *hash;
98852 + struct acl_subject_label *prev;
98853 + struct acl_subject_label *next;
98854 +
98855 + struct acl_object_label **obj_hash;
98856 + __u32 obj_hash_size;
98857 + __u16 pax_flags;
98858 +};
98859 +
98860 +struct role_allowed_ip {
98861 + __u32 addr;
98862 + __u32 netmask;
98863 +
98864 + struct role_allowed_ip *prev;
98865 + struct role_allowed_ip *next;
98866 +};
98867 +
98868 +struct role_transition {
98869 + char *rolename;
98870 +
98871 + struct role_transition *prev;
98872 + struct role_transition *next;
98873 +};
98874 +
98875 +struct acl_role_label {
98876 + char *rolename;
98877 + uid_t uidgid;
98878 + __u16 roletype;
98879 +
98880 + __u16 auth_attempts;
98881 + unsigned long expires;
98882 +
98883 + struct acl_subject_label *root_label;
98884 + struct gr_hash_struct *hash;
98885 +
98886 + struct acl_role_label *prev;
98887 + struct acl_role_label *next;
98888 +
98889 + struct role_transition *transitions;
98890 + struct role_allowed_ip *allowed_ips;
98891 + uid_t *domain_children;
98892 + __u16 domain_child_num;
98893 +
98894 + umode_t umask;
98895 +
98896 + struct acl_subject_label **subj_hash;
98897 + __u32 subj_hash_size;
98898 +};
98899 +
98900 +struct user_acl_role_db {
98901 + struct acl_role_label **r_table;
98902 + __u32 num_pointers; /* Number of allocations to track */
98903 + __u32 num_roles; /* Number of roles */
98904 + __u32 num_domain_children; /* Number of domain children */
98905 + __u32 num_subjects; /* Number of subjects */
98906 + __u32 num_objects; /* Number of objects */
98907 +};
98908 +
98909 +struct acl_object_label {
98910 + char *filename;
98911 + u64 inode;
98912 + dev_t device;
98913 + __u32 mode;
98914 +
98915 + struct acl_subject_label *nested;
98916 + struct acl_object_label *globbed;
98917 +
98918 + /* next two structures not used */
98919 +
98920 + struct acl_object_label *prev;
98921 + struct acl_object_label *next;
98922 +};
98923 +
98924 +struct acl_ip_label {
98925 + char *iface;
98926 + __u32 addr;
98927 + __u32 netmask;
98928 + __u16 low, high;
98929 + __u8 mode;
98930 + __u32 type;
98931 + __u32 proto[8];
98932 +
98933 + /* next two structures not used */
98934 +
98935 + struct acl_ip_label *prev;
98936 + struct acl_ip_label *next;
98937 +};
98938 +
98939 +struct gr_arg {
98940 + struct user_acl_role_db role_db;
98941 + unsigned char pw[GR_PW_LEN];
98942 + unsigned char salt[GR_SALT_LEN];
98943 + unsigned char sum[GR_SHA_LEN];
98944 + unsigned char sp_role[GR_SPROLE_LEN];
98945 + struct sprole_pw *sprole_pws;
98946 + dev_t segv_device;
98947 + u64 segv_inode;
98948 + uid_t segv_uid;
98949 + __u16 num_sprole_pws;
98950 + __u16 mode;
98951 +};
98952 +
98953 +struct gr_arg_wrapper {
98954 + struct gr_arg *arg;
98955 + __u32 version;
98956 + __u32 size;
98957 +};
98958 +
98959 +struct subject_map {
98960 + struct acl_subject_label *user;
98961 + struct acl_subject_label *kernel;
98962 + struct subject_map *prev;
98963 + struct subject_map *next;
98964 +};
98965 +
98966 +struct acl_subj_map_db {
98967 + struct subject_map **s_hash;
98968 + __u32 s_size;
98969 +};
98970 +
98971 +struct gr_policy_state {
98972 + struct sprole_pw **acl_special_roles;
98973 + __u16 num_sprole_pws;
98974 + struct acl_role_label *kernel_role;
98975 + struct acl_role_label *role_list;
98976 + struct acl_role_label *default_role;
98977 + struct acl_role_db acl_role_set;
98978 + struct acl_subj_map_db subj_map_set;
98979 + struct name_db name_set;
98980 + struct inodev_db inodev_set;
98981 +};
98982 +
98983 +struct gr_alloc_state {
98984 + unsigned long alloc_stack_next;
98985 + unsigned long alloc_stack_size;
98986 + void **alloc_stack;
98987 +};
98988 +
98989 +struct gr_reload_state {
98990 + struct gr_policy_state oldpolicy;
98991 + struct gr_alloc_state oldalloc;
98992 + struct gr_policy_state newpolicy;
98993 + struct gr_alloc_state newalloc;
98994 + struct gr_policy_state *oldpolicy_ptr;
98995 + struct gr_alloc_state *oldalloc_ptr;
98996 + unsigned char oldmode;
98997 +};
98998 +
98999 +/* End Data Structures Section */
99000 +
99001 +/* Hash functions generated by empirical testing by Brad Spengler
99002 + Makes good use of the low bits of the inode. Generally 0-1 times
99003 + in loop for successful match. 0-3 for unsuccessful match.
99004 + Shift/add algorithm with modulus of table size and an XOR*/
99005 +
99006 +static __inline__ unsigned int
99007 +gr_rhash(const uid_t uid, const __u16 type, const unsigned int sz)
99008 +{
99009 + return ((((uid + type) << (16 + type)) ^ uid) % sz);
99010 +}
99011 +
99012 + static __inline__ unsigned int
99013 +gr_shash(const struct acl_subject_label *userp, const unsigned int sz)
99014 +{
99015 + return ((const unsigned long)userp % sz);
99016 +}
99017 +
99018 +static __inline__ unsigned int
99019 +gr_fhash(const u64 ino, const dev_t dev, const unsigned int sz)
99020 +{
99021 + unsigned int rem;
99022 + div_u64_rem((ino + dev) ^ ((ino << 13) + (ino << 23) + (dev << 9)), sz, &rem);
99023 + return rem;
99024 +}
99025 +
99026 +static __inline__ unsigned int
99027 +gr_nhash(const char *name, const __u16 len, const unsigned int sz)
99028 +{
99029 + return full_name_hash((const unsigned char *)name, len) % sz;
99030 +}
99031 +
99032 +#define FOR_EACH_SUBJECT_START(role,subj,iter) \
99033 + subj = NULL; \
99034 + iter = 0; \
99035 + while (iter < role->subj_hash_size) { \
99036 + if (subj == NULL) \
99037 + subj = role->subj_hash[iter]; \
99038 + if (subj == NULL) { \
99039 + iter++; \
99040 + continue; \
99041 + }
99042 +
99043 +#define FOR_EACH_SUBJECT_END(subj,iter) \
99044 + subj = subj->next; \
99045 + if (subj == NULL) \
99046 + iter++; \
99047 + }
99048 +
99049 +
99050 +#define FOR_EACH_NESTED_SUBJECT_START(role,subj) \
99051 + subj = role->hash->first; \
99052 + while (subj != NULL) {
99053 +
99054 +#define FOR_EACH_NESTED_SUBJECT_END(subj) \
99055 + subj = subj->next; \
99056 + }
99057 +
99058 +#endif
99059 +
99060 diff --git a/include/linux/gracl_compat.h b/include/linux/gracl_compat.h
99061 new file mode 100644
99062 index 0000000..af64092
99063 --- /dev/null
99064 +++ b/include/linux/gracl_compat.h
99065 @@ -0,0 +1,156 @@
99066 +#ifndef GR_ACL_COMPAT_H
99067 +#define GR_ACL_COMPAT_H
99068 +
99069 +#include <linux/resource.h>
99070 +#include <asm/resource.h>
99071 +
99072 +struct sprole_pw_compat {
99073 + compat_uptr_t rolename;
99074 + unsigned char salt[GR_SALT_LEN];
99075 + unsigned char sum[GR_SHA_LEN];
99076 +};
99077 +
99078 +struct gr_hash_struct_compat {
99079 + compat_uptr_t table;
99080 + compat_uptr_t nametable;
99081 + compat_uptr_t first;
99082 + __u32 table_size;
99083 + __u32 used_size;
99084 + int type;
99085 +};
99086 +
99087 +struct acl_subject_label_compat {
99088 + compat_uptr_t filename;
99089 + compat_u64 inode;
99090 + __u32 device;
99091 + __u32 mode;
99092 + kernel_cap_t cap_mask;
99093 + kernel_cap_t cap_lower;
99094 + kernel_cap_t cap_invert_audit;
99095 +
99096 + struct compat_rlimit res[GR_NLIMITS];
99097 + __u32 resmask;
99098 +
99099 + __u8 user_trans_type;
99100 + __u8 group_trans_type;
99101 + compat_uptr_t user_transitions;
99102 + compat_uptr_t group_transitions;
99103 + __u16 user_trans_num;
99104 + __u16 group_trans_num;
99105 +
99106 + __u32 sock_families[2];
99107 + __u32 ip_proto[8];
99108 + __u32 ip_type;
99109 + compat_uptr_t ips;
99110 + __u32 ip_num;
99111 + __u32 inaddr_any_override;
99112 +
99113 + __u32 crashes;
99114 + compat_ulong_t expires;
99115 +
99116 + compat_uptr_t parent_subject;
99117 + compat_uptr_t hash;
99118 + compat_uptr_t prev;
99119 + compat_uptr_t next;
99120 +
99121 + compat_uptr_t obj_hash;
99122 + __u32 obj_hash_size;
99123 + __u16 pax_flags;
99124 +};
99125 +
99126 +struct role_allowed_ip_compat {
99127 + __u32 addr;
99128 + __u32 netmask;
99129 +
99130 + compat_uptr_t prev;
99131 + compat_uptr_t next;
99132 +};
99133 +
99134 +struct role_transition_compat {
99135 + compat_uptr_t rolename;
99136 +
99137 + compat_uptr_t prev;
99138 + compat_uptr_t next;
99139 +};
99140 +
99141 +struct acl_role_label_compat {
99142 + compat_uptr_t rolename;
99143 + uid_t uidgid;
99144 + __u16 roletype;
99145 +
99146 + __u16 auth_attempts;
99147 + compat_ulong_t expires;
99148 +
99149 + compat_uptr_t root_label;
99150 + compat_uptr_t hash;
99151 +
99152 + compat_uptr_t prev;
99153 + compat_uptr_t next;
99154 +
99155 + compat_uptr_t transitions;
99156 + compat_uptr_t allowed_ips;
99157 + compat_uptr_t domain_children;
99158 + __u16 domain_child_num;
99159 +
99160 + umode_t umask;
99161 +
99162 + compat_uptr_t subj_hash;
99163 + __u32 subj_hash_size;
99164 +};
99165 +
99166 +struct user_acl_role_db_compat {
99167 + compat_uptr_t r_table;
99168 + __u32 num_pointers;
99169 + __u32 num_roles;
99170 + __u32 num_domain_children;
99171 + __u32 num_subjects;
99172 + __u32 num_objects;
99173 +};
99174 +
99175 +struct acl_object_label_compat {
99176 + compat_uptr_t filename;
99177 + compat_u64 inode;
99178 + __u32 device;
99179 + __u32 mode;
99180 +
99181 + compat_uptr_t nested;
99182 + compat_uptr_t globbed;
99183 +
99184 + compat_uptr_t prev;
99185 + compat_uptr_t next;
99186 +};
99187 +
99188 +struct acl_ip_label_compat {
99189 + compat_uptr_t iface;
99190 + __u32 addr;
99191 + __u32 netmask;
99192 + __u16 low, high;
99193 + __u8 mode;
99194 + __u32 type;
99195 + __u32 proto[8];
99196 +
99197 + compat_uptr_t prev;
99198 + compat_uptr_t next;
99199 +};
99200 +
99201 +struct gr_arg_compat {
99202 + struct user_acl_role_db_compat role_db;
99203 + unsigned char pw[GR_PW_LEN];
99204 + unsigned char salt[GR_SALT_LEN];
99205 + unsigned char sum[GR_SHA_LEN];
99206 + unsigned char sp_role[GR_SPROLE_LEN];
99207 + compat_uptr_t sprole_pws;
99208 + __u32 segv_device;
99209 + compat_u64 segv_inode;
99210 + uid_t segv_uid;
99211 + __u16 num_sprole_pws;
99212 + __u16 mode;
99213 +};
99214 +
99215 +struct gr_arg_wrapper_compat {
99216 + compat_uptr_t arg;
99217 + __u32 version;
99218 + __u32 size;
99219 +};
99220 +
99221 +#endif
99222 diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h
99223 new file mode 100644
99224 index 0000000..323ecf2
99225 --- /dev/null
99226 +++ b/include/linux/gralloc.h
99227 @@ -0,0 +1,9 @@
99228 +#ifndef __GRALLOC_H
99229 +#define __GRALLOC_H
99230 +
99231 +void acl_free_all(void);
99232 +int acl_alloc_stack_init(unsigned long size);
99233 +void *acl_alloc(unsigned long len);
99234 +void *acl_alloc_num(unsigned long num, unsigned long len);
99235 +
99236 +#endif
99237 diff --git a/include/linux/grdefs.h b/include/linux/grdefs.h
99238 new file mode 100644
99239 index 0000000..be66033
99240 --- /dev/null
99241 +++ b/include/linux/grdefs.h
99242 @@ -0,0 +1,140 @@
99243 +#ifndef GRDEFS_H
99244 +#define GRDEFS_H
99245 +
99246 +/* Begin grsecurity status declarations */
99247 +
99248 +enum {
99249 + GR_READY = 0x01,
99250 + GR_STATUS_INIT = 0x00 // disabled state
99251 +};
99252 +
99253 +/* Begin ACL declarations */
99254 +
99255 +/* Role flags */
99256 +
99257 +enum {
99258 + GR_ROLE_USER = 0x0001,
99259 + GR_ROLE_GROUP = 0x0002,
99260 + GR_ROLE_DEFAULT = 0x0004,
99261 + GR_ROLE_SPECIAL = 0x0008,
99262 + GR_ROLE_AUTH = 0x0010,
99263 + GR_ROLE_NOPW = 0x0020,
99264 + GR_ROLE_GOD = 0x0040,
99265 + GR_ROLE_LEARN = 0x0080,
99266 + GR_ROLE_TPE = 0x0100,
99267 + GR_ROLE_DOMAIN = 0x0200,
99268 + GR_ROLE_PAM = 0x0400,
99269 + GR_ROLE_PERSIST = 0x0800
99270 +};
99271 +
99272 +/* ACL Subject and Object mode flags */
99273 +enum {
99274 + GR_DELETED = 0x80000000
99275 +};
99276 +
99277 +/* ACL Object-only mode flags */
99278 +enum {
99279 + GR_READ = 0x00000001,
99280 + GR_APPEND = 0x00000002,
99281 + GR_WRITE = 0x00000004,
99282 + GR_EXEC = 0x00000008,
99283 + GR_FIND = 0x00000010,
99284 + GR_INHERIT = 0x00000020,
99285 + GR_SETID = 0x00000040,
99286 + GR_CREATE = 0x00000080,
99287 + GR_DELETE = 0x00000100,
99288 + GR_LINK = 0x00000200,
99289 + GR_AUDIT_READ = 0x00000400,
99290 + GR_AUDIT_APPEND = 0x00000800,
99291 + GR_AUDIT_WRITE = 0x00001000,
99292 + GR_AUDIT_EXEC = 0x00002000,
99293 + GR_AUDIT_FIND = 0x00004000,
99294 + GR_AUDIT_INHERIT= 0x00008000,
99295 + GR_AUDIT_SETID = 0x00010000,
99296 + GR_AUDIT_CREATE = 0x00020000,
99297 + GR_AUDIT_DELETE = 0x00040000,
99298 + GR_AUDIT_LINK = 0x00080000,
99299 + GR_PTRACERD = 0x00100000,
99300 + GR_NOPTRACE = 0x00200000,
99301 + GR_SUPPRESS = 0x00400000,
99302 + GR_NOLEARN = 0x00800000,
99303 + GR_INIT_TRANSFER= 0x01000000
99304 +};
99305 +
99306 +#define GR_AUDITS (GR_AUDIT_READ | GR_AUDIT_WRITE | GR_AUDIT_APPEND | GR_AUDIT_EXEC | \
99307 + GR_AUDIT_FIND | GR_AUDIT_INHERIT | GR_AUDIT_SETID | \
99308 + GR_AUDIT_CREATE | GR_AUDIT_DELETE | GR_AUDIT_LINK)
99309 +
99310 +/* ACL subject-only mode flags */
99311 +enum {
99312 + GR_KILL = 0x00000001,
99313 + GR_VIEW = 0x00000002,
99314 + GR_PROTECTED = 0x00000004,
99315 + GR_LEARN = 0x00000008,
99316 + GR_OVERRIDE = 0x00000010,
99317 + /* just a placeholder, this mode is only used in userspace */
99318 + GR_DUMMY = 0x00000020,
99319 + GR_PROTSHM = 0x00000040,
99320 + GR_KILLPROC = 0x00000080,
99321 + GR_KILLIPPROC = 0x00000100,
99322 + /* just a placeholder, this mode is only used in userspace */
99323 + GR_NOTROJAN = 0x00000200,
99324 + GR_PROTPROCFD = 0x00000400,
99325 + GR_PROCACCT = 0x00000800,
99326 + GR_RELAXPTRACE = 0x00001000,
99327 + //GR_NESTED = 0x00002000,
99328 + GR_INHERITLEARN = 0x00004000,
99329 + GR_PROCFIND = 0x00008000,
99330 + GR_POVERRIDE = 0x00010000,
99331 + GR_KERNELAUTH = 0x00020000,
99332 + GR_ATSECURE = 0x00040000,
99333 + GR_SHMEXEC = 0x00080000
99334 +};
99335 +
99336 +enum {
99337 + GR_PAX_ENABLE_SEGMEXEC = 0x0001,
99338 + GR_PAX_ENABLE_PAGEEXEC = 0x0002,
99339 + GR_PAX_ENABLE_MPROTECT = 0x0004,
99340 + GR_PAX_ENABLE_RANDMMAP = 0x0008,
99341 + GR_PAX_ENABLE_EMUTRAMP = 0x0010,
99342 + GR_PAX_DISABLE_SEGMEXEC = 0x0100,
99343 + GR_PAX_DISABLE_PAGEEXEC = 0x0200,
99344 + GR_PAX_DISABLE_MPROTECT = 0x0400,
99345 + GR_PAX_DISABLE_RANDMMAP = 0x0800,
99346 + GR_PAX_DISABLE_EMUTRAMP = 0x1000,
99347 +};
99348 +
99349 +enum {
99350 + GR_ID_USER = 0x01,
99351 + GR_ID_GROUP = 0x02,
99352 +};
99353 +
99354 +enum {
99355 + GR_ID_ALLOW = 0x01,
99356 + GR_ID_DENY = 0x02,
99357 +};
99358 +
99359 +#define GR_CRASH_RES 31
99360 +#define GR_UIDTABLE_MAX 500
99361 +
99362 +/* begin resource learning section */
99363 +enum {
99364 + GR_RLIM_CPU_BUMP = 60,
99365 + GR_RLIM_FSIZE_BUMP = 50000,
99366 + GR_RLIM_DATA_BUMP = 10000,
99367 + GR_RLIM_STACK_BUMP = 1000,
99368 + GR_RLIM_CORE_BUMP = 10000,
99369 + GR_RLIM_RSS_BUMP = 500000,
99370 + GR_RLIM_NPROC_BUMP = 1,
99371 + GR_RLIM_NOFILE_BUMP = 5,
99372 + GR_RLIM_MEMLOCK_BUMP = 50000,
99373 + GR_RLIM_AS_BUMP = 500000,
99374 + GR_RLIM_LOCKS_BUMP = 2,
99375 + GR_RLIM_SIGPENDING_BUMP = 5,
99376 + GR_RLIM_MSGQUEUE_BUMP = 10000,
99377 + GR_RLIM_NICE_BUMP = 1,
99378 + GR_RLIM_RTPRIO_BUMP = 1,
99379 + GR_RLIM_RTTIME_BUMP = 1000000
99380 +};
99381 +
99382 +#endif
99383 diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
99384 new file mode 100644
99385 index 0000000..6245f9e
99386 --- /dev/null
99387 +++ b/include/linux/grinternal.h
99388 @@ -0,0 +1,230 @@
99389 +#ifndef __GRINTERNAL_H
99390 +#define __GRINTERNAL_H
99391 +
99392 +#ifdef CONFIG_GRKERNSEC
99393 +
99394 +#include <linux/fs.h>
99395 +#include <linux/mnt_namespace.h>
99396 +#include <linux/nsproxy.h>
99397 +#include <linux/gracl.h>
99398 +#include <linux/grdefs.h>
99399 +#include <linux/grmsg.h>
99400 +
99401 +void gr_add_learn_entry(const char *fmt, ...)
99402 + __attribute__ ((format (printf, 1, 2)));
99403 +__u32 gr_search_file(const struct dentry *dentry, const __u32 mode,
99404 + const struct vfsmount *mnt);
99405 +__u32 gr_check_create(const struct dentry *new_dentry,
99406 + const struct dentry *parent,
99407 + const struct vfsmount *mnt, const __u32 mode);
99408 +int gr_check_protected_task(const struct task_struct *task);
99409 +__u32 to_gr_audit(const __u32 reqmode);
99410 +int gr_set_acls(const int type);
99411 +int gr_acl_is_enabled(void);
99412 +char gr_roletype_to_char(void);
99413 +
99414 +void gr_handle_alertkill(struct task_struct *task);
99415 +char *gr_to_filename(const struct dentry *dentry,
99416 + const struct vfsmount *mnt);
99417 +char *gr_to_filename1(const struct dentry *dentry,
99418 + const struct vfsmount *mnt);
99419 +char *gr_to_filename2(const struct dentry *dentry,
99420 + const struct vfsmount *mnt);
99421 +char *gr_to_filename3(const struct dentry *dentry,
99422 + const struct vfsmount *mnt);
99423 +
99424 +extern int grsec_enable_ptrace_readexec;
99425 +extern int grsec_enable_harden_ptrace;
99426 +extern int grsec_enable_link;
99427 +extern int grsec_enable_fifo;
99428 +extern int grsec_enable_execve;
99429 +extern int grsec_enable_shm;
99430 +extern int grsec_enable_execlog;
99431 +extern int grsec_enable_signal;
99432 +extern int grsec_enable_audit_ptrace;
99433 +extern int grsec_enable_forkfail;
99434 +extern int grsec_enable_time;
99435 +extern int grsec_enable_rofs;
99436 +extern int grsec_deny_new_usb;
99437 +extern int grsec_enable_chroot_shmat;
99438 +extern int grsec_enable_chroot_mount;
99439 +extern int grsec_enable_chroot_double;
99440 +extern int grsec_enable_chroot_pivot;
99441 +extern int grsec_enable_chroot_chdir;
99442 +extern int grsec_enable_chroot_chmod;
99443 +extern int grsec_enable_chroot_mknod;
99444 +extern int grsec_enable_chroot_fchdir;
99445 +extern int grsec_enable_chroot_nice;
99446 +extern int grsec_enable_chroot_execlog;
99447 +extern int grsec_enable_chroot_caps;
99448 +extern int grsec_enable_chroot_rename;
99449 +extern int grsec_enable_chroot_sysctl;
99450 +extern int grsec_enable_chroot_unix;
99451 +extern int grsec_enable_symlinkown;
99452 +extern kgid_t grsec_symlinkown_gid;
99453 +extern int grsec_enable_tpe;
99454 +extern kgid_t grsec_tpe_gid;
99455 +extern int grsec_enable_tpe_all;
99456 +extern int grsec_enable_tpe_invert;
99457 +extern int grsec_enable_socket_all;
99458 +extern kgid_t grsec_socket_all_gid;
99459 +extern int grsec_enable_socket_client;
99460 +extern kgid_t grsec_socket_client_gid;
99461 +extern int grsec_enable_socket_server;
99462 +extern kgid_t grsec_socket_server_gid;
99463 +extern kgid_t grsec_audit_gid;
99464 +extern int grsec_enable_group;
99465 +extern int grsec_enable_log_rwxmaps;
99466 +extern int grsec_enable_mount;
99467 +extern int grsec_enable_chdir;
99468 +extern int grsec_resource_logging;
99469 +extern int grsec_enable_blackhole;
99470 +extern int grsec_lastack_retries;
99471 +extern int grsec_enable_brute;
99472 +extern int grsec_enable_harden_ipc;
99473 +extern int grsec_lock;
99474 +
99475 +extern spinlock_t grsec_alert_lock;
99476 +extern unsigned long grsec_alert_wtime;
99477 +extern unsigned long grsec_alert_fyet;
99478 +
99479 +extern spinlock_t grsec_audit_lock;
99480 +
99481 +extern rwlock_t grsec_exec_file_lock;
99482 +
99483 +#define gr_task_fullpath(tsk) ((tsk)->exec_file ? \
99484 + gr_to_filename2((tsk)->exec_file->f_path.dentry, \
99485 + (tsk)->exec_file->f_path.mnt) : "/")
99486 +
99487 +#define gr_parent_task_fullpath(tsk) ((tsk)->real_parent->exec_file ? \
99488 + gr_to_filename3((tsk)->real_parent->exec_file->f_path.dentry, \
99489 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
99490 +
99491 +#define gr_task_fullpath0(tsk) ((tsk)->exec_file ? \
99492 + gr_to_filename((tsk)->exec_file->f_path.dentry, \
99493 + (tsk)->exec_file->f_path.mnt) : "/")
99494 +
99495 +#define gr_parent_task_fullpath0(tsk) ((tsk)->real_parent->exec_file ? \
99496 + gr_to_filename1((tsk)->real_parent->exec_file->f_path.dentry, \
99497 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
99498 +
99499 +#define proc_is_chrooted(tsk_a) ((tsk_a)->gr_is_chrooted)
99500 +
99501 +#define have_same_root(tsk_a,tsk_b) ((tsk_a)->gr_chroot_dentry == (tsk_b)->gr_chroot_dentry)
99502 +
99503 +static inline bool gr_is_same_file(const struct file *file1, const struct file *file2)
99504 +{
99505 + if (file1 && file2) {
99506 + const struct inode *inode1 = file1->f_path.dentry->d_inode;
99507 + const struct inode *inode2 = file2->f_path.dentry->d_inode;
99508 + if (inode1->i_ino == inode2->i_ino && inode1->i_sb->s_dev == inode2->i_sb->s_dev)
99509 + return true;
99510 + }
99511 +
99512 + return false;
99513 +}
99514 +
99515 +#define GR_CHROOT_CAPS {{ \
99516 + CAP_TO_MASK(CAP_LINUX_IMMUTABLE) | CAP_TO_MASK(CAP_NET_ADMIN) | \
99517 + CAP_TO_MASK(CAP_SYS_MODULE) | CAP_TO_MASK(CAP_SYS_RAWIO) | \
99518 + CAP_TO_MASK(CAP_SYS_PACCT) | CAP_TO_MASK(CAP_SYS_ADMIN) | \
99519 + CAP_TO_MASK(CAP_SYS_BOOT) | CAP_TO_MASK(CAP_SYS_TIME) | \
99520 + CAP_TO_MASK(CAP_NET_RAW) | CAP_TO_MASK(CAP_SYS_TTY_CONFIG) | \
99521 + CAP_TO_MASK(CAP_IPC_OWNER) | CAP_TO_MASK(CAP_SETFCAP), \
99522 + CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_MAC_ADMIN) }}
99523 +
99524 +#define security_learn(normal_msg,args...) \
99525 +({ \
99526 + read_lock(&grsec_exec_file_lock); \
99527 + gr_add_learn_entry(normal_msg "\n", ## args); \
99528 + read_unlock(&grsec_exec_file_lock); \
99529 +})
99530 +
99531 +enum {
99532 + GR_DO_AUDIT,
99533 + GR_DONT_AUDIT,
99534 + /* used for non-audit messages that we shouldn't kill the task on */
99535 + GR_DONT_AUDIT_GOOD
99536 +};
99537 +
99538 +enum {
99539 + GR_TTYSNIFF,
99540 + GR_RBAC,
99541 + GR_RBAC_STR,
99542 + GR_STR_RBAC,
99543 + GR_RBAC_MODE2,
99544 + GR_RBAC_MODE3,
99545 + GR_FILENAME,
99546 + GR_SYSCTL_HIDDEN,
99547 + GR_NOARGS,
99548 + GR_ONE_INT,
99549 + GR_ONE_INT_TWO_STR,
99550 + GR_ONE_STR,
99551 + GR_STR_INT,
99552 + GR_TWO_STR_INT,
99553 + GR_TWO_INT,
99554 + GR_TWO_U64,
99555 + GR_THREE_INT,
99556 + GR_FIVE_INT_TWO_STR,
99557 + GR_TWO_STR,
99558 + GR_THREE_STR,
99559 + GR_FOUR_STR,
99560 + GR_STR_FILENAME,
99561 + GR_FILENAME_STR,
99562 + GR_FILENAME_TWO_INT,
99563 + GR_FILENAME_TWO_INT_STR,
99564 + GR_TEXTREL,
99565 + GR_PTRACE,
99566 + GR_RESOURCE,
99567 + GR_CAP,
99568 + GR_SIG,
99569 + GR_SIG2,
99570 + GR_CRASH1,
99571 + GR_CRASH2,
99572 + GR_PSACCT,
99573 + GR_RWXMAP,
99574 + GR_RWXMAPVMA
99575 +};
99576 +
99577 +#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str)
99578 +#define gr_log_ttysniff(audit, msg, task) gr_log_varargs(audit, msg, GR_TTYSNIFF, task)
99579 +#define gr_log_fs_rbac_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_RBAC, dentry, mnt)
99580 +#define gr_log_fs_rbac_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_RBAC_STR, dentry, mnt, str)
99581 +#define gr_log_fs_str_rbac(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_RBAC, str, dentry, mnt)
99582 +#define gr_log_fs_rbac_mode2(audit, msg, dentry, mnt, str1, str2) gr_log_varargs(audit, msg, GR_RBAC_MODE2, dentry, mnt, str1, str2)
99583 +#define gr_log_fs_rbac_mode3(audit, msg, dentry, mnt, str1, str2, str3) gr_log_varargs(audit, msg, GR_RBAC_MODE3, dentry, mnt, str1, str2, str3)
99584 +#define gr_log_fs_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_FILENAME, dentry, mnt)
99585 +#define gr_log_noargs(audit, msg) gr_log_varargs(audit, msg, GR_NOARGS)
99586 +#define gr_log_int(audit, msg, num) gr_log_varargs(audit, msg, GR_ONE_INT, num)
99587 +#define gr_log_int_str2(audit, msg, num, str1, str2) gr_log_varargs(audit, msg, GR_ONE_INT_TWO_STR, num, str1, str2)
99588 +#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
99589 +#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
99590 +#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
99591 +#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
99592 +#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
99593 +#define gr_log_int5_str2(audit, msg, num1, num2, str1, str2) gr_log_varargs(audit, msg, GR_FIVE_INT_TWO_STR, num1, num2, str1, str2)
99594 +#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
99595 +#define gr_log_str2_int(audit, msg, str1, str2, num) gr_log_varargs(audit, msg, GR_TWO_STR_INT, str1, str2, num)
99596 +#define gr_log_str3(audit, msg, str1, str2, str3) gr_log_varargs(audit, msg, GR_THREE_STR, str1, str2, str3)
99597 +#define gr_log_str4(audit, msg, str1, str2, str3, str4) gr_log_varargs(audit, msg, GR_FOUR_STR, str1, str2, str3, str4)
99598 +#define gr_log_str_fs(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_FILENAME, str, dentry, mnt)
99599 +#define gr_log_fs_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_FILENAME_STR, dentry, mnt, str)
99600 +#define gr_log_fs_int2(audit, msg, dentry, mnt, num1, num2) gr_log_varargs(audit, msg, GR_FILENAME_TWO_INT, dentry, mnt, num1, num2)
99601 +#define gr_log_fs_int2_str(audit, msg, dentry, mnt, num1, num2, str) gr_log_varargs(audit, msg, GR_FILENAME_TWO_INT_STR, dentry, mnt, num1, num2, str)
99602 +#define gr_log_textrel_ulong_ulong(audit, msg, str, file, ulong1, ulong2) gr_log_varargs(audit, msg, GR_TEXTREL, str, file, ulong1, ulong2)
99603 +#define gr_log_ptrace(audit, msg, task) gr_log_varargs(audit, msg, GR_PTRACE, task)
99604 +#define gr_log_res_ulong2_str(audit, msg, task, ulong1, str, ulong2) gr_log_varargs(audit, msg, GR_RESOURCE, task, ulong1, str, ulong2)
99605 +#define gr_log_cap(audit, msg, task, str) gr_log_varargs(audit, msg, GR_CAP, task, str)
99606 +#define gr_log_sig_addr(audit, msg, str, addr) gr_log_varargs(audit, msg, GR_SIG, str, addr)
99607 +#define gr_log_sig_task(audit, msg, task, num) gr_log_varargs(audit, msg, GR_SIG2, task, num)
99608 +#define gr_log_crash1(audit, msg, task, ulong) gr_log_varargs(audit, msg, GR_CRASH1, task, ulong)
99609 +#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1)
99610 +#define gr_log_procacct(audit, msg, task, num1, num2, num3, num4, num5, num6, num7, num8, num9) gr_log_varargs(audit, msg, GR_PSACCT, task, num1, num2, num3, num4, num5, num6, num7, num8, num9)
99611 +#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str)
99612 +#define gr_log_rwxmap_vma(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAPVMA, str)
99613 +
99614 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...);
99615 +
99616 +#endif
99617 +
99618 +#endif
99619 diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
99620 new file mode 100644
99621 index 0000000..3092b3c
99622 --- /dev/null
99623 +++ b/include/linux/grmsg.h
99624 @@ -0,0 +1,118 @@
99625 +#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u"
99626 +#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u"
99627 +#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
99628 +#define GR_STOPMOD_MSG "denied modification of module state by "
99629 +#define GR_ROFS_BLOCKWRITE_MSG "denied write to block device %.950s by "
99630 +#define GR_ROFS_MOUNT_MSG "denied writable mount of %.950s by "
99631 +#define GR_IOPERM_MSG "denied use of ioperm() by "
99632 +#define GR_IOPL_MSG "denied use of iopl() by "
99633 +#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
99634 +#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
99635 +#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
99636 +#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by "
99637 +#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
99638 +#define GR_LEARN_AUDIT_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%lu\t%lu\t%.4095s\t%lu\t%pI4"
99639 +#define GR_ID_LEARN_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%c\t%d\t%d\t%d\t%pI4"
99640 +#define GR_HIDDEN_ACL_MSG "%s access to hidden file %.950s by "
99641 +#define GR_OPEN_ACL_MSG "%s open of %.950s for%s%s by "
99642 +#define GR_CREATE_ACL_MSG "%s create of %.950s for%s%s by "
99643 +#define GR_FIFO_MSG "denied writing FIFO %.950s of %d.%d by "
99644 +#define GR_MKNOD_CHROOT_MSG "denied mknod of %.950s from chroot by "
99645 +#define GR_MKNOD_ACL_MSG "%s mknod of %.950s by "
99646 +#define GR_UNIXCONNECT_ACL_MSG "%s connect() to the unix domain socket %.950s by "
99647 +#define GR_TTYSNIFF_ACL_MSG "terminal being sniffed by IP:%pI4 %.480s[%.16s:%d], parent %.480s[%.16s:%d] against "
99648 +#define GR_MKDIR_ACL_MSG "%s mkdir of %.950s by "
99649 +#define GR_RMDIR_ACL_MSG "%s rmdir of %.950s by "
99650 +#define GR_UNLINK_ACL_MSG "%s unlink of %.950s by "
99651 +#define GR_SYMLINK_ACL_MSG "%s symlink from %.480s to %.480s by "
99652 +#define GR_HARDLINK_MSG "denied hardlink of %.930s (owned by %d.%d) to %.30s for "
99653 +#define GR_LINK_ACL_MSG "%s link of %.480s to %.480s by "
99654 +#define GR_INHERIT_ACL_MSG "successful inherit of %.480s's ACL for %.480s by "
99655 +#define GR_RENAME_ACL_MSG "%s rename of %.480s to %.480s by "
99656 +#define GR_UNSAFESHARE_EXEC_ACL_MSG "denied exec with cloned fs of %.950s by "
99657 +#define GR_PTRACE_EXEC_ACL_MSG "denied ptrace of %.950s by "
99658 +#define GR_EXEC_ACL_MSG "%s execution of %.950s by "
99659 +#define GR_EXEC_TPE_MSG "denied untrusted exec (due to %.70s) of %.950s by "
99660 +#define GR_SEGVSTART_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning uid %u from login for %lu seconds"
99661 +#define GR_SEGVNOSUID_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning execution for %lu seconds"
99662 +#define GR_MOUNT_CHROOT_MSG "denied mount of %.256s as %.930s from chroot by "
99663 +#define GR_PIVOT_CHROOT_MSG "denied pivot_root from chroot by "
99664 +#define GR_TRUNCATE_ACL_MSG "%s truncate of %.950s by "
99665 +#define GR_ATIME_ACL_MSG "%s access time change of %.950s by "
99666 +#define GR_ACCESS_ACL_MSG "%s access of %.950s for%s%s%s by "
99667 +#define GR_CHROOT_CHROOT_MSG "denied double chroot to %.950s by "
99668 +#define GR_CHROOT_RENAME_MSG "denied bad rename of %.950s out of a chroot by "
99669 +#define GR_CHMOD_CHROOT_MSG "denied chmod +s of %.950s by "
99670 +#define GR_CHMOD_ACL_MSG "%s chmod of %.950s by "
99671 +#define GR_CHROOT_FCHDIR_MSG "denied fchdir outside of chroot to %.950s by "
99672 +#define GR_CHROOT_FHANDLE_MSG "denied use of file handles inside chroot by "
99673 +#define GR_CHOWN_ACL_MSG "%s chown of %.950s by "
99674 +#define GR_SETXATTR_ACL_MSG "%s setting extended attribute of %.950s by "
99675 +#define GR_REMOVEXATTR_ACL_MSG "%s removing extended attribute of %.950s by "
99676 +#define GR_WRITLIB_ACL_MSG "denied load of writable library %.950s by "
99677 +#define GR_INITF_ACL_MSG "init_variables() failed %s by "
99678 +#define GR_DISABLED_ACL_MSG "Error loading %s, trying to run kernel with acls disabled. To disable acls at startup use <kernel image name> gracl=off from your boot loader"
99679 +#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbage by "
99680 +#define GR_SHUTS_ACL_MSG "shutdown auth success for "
99681 +#define GR_SHUTF_ACL_MSG "shutdown auth failure for "
99682 +#define GR_SHUTI_ACL_MSG "ignoring shutdown for disabled RBAC system for "
99683 +#define GR_SEGVMODS_ACL_MSG "segvmod auth success for "
99684 +#define GR_SEGVMODF_ACL_MSG "segvmod auth failure for "
99685 +#define GR_SEGVMODI_ACL_MSG "ignoring segvmod for disabled RBAC system for "
99686 +#define GR_ENABLE_ACL_MSG "%s RBAC system loaded by "
99687 +#define GR_ENABLEF_ACL_MSG "unable to load %s for "
99688 +#define GR_RELOADI_ACL_MSG "ignoring reload request for disabled RBAC system"
99689 +#define GR_RELOAD_ACL_MSG "%s RBAC system reloaded by "
99690 +#define GR_RELOADF_ACL_MSG "failed reload of %s for "
99691 +#define GR_SPROLEI_ACL_MSG "ignoring change to special role for disabled RBAC system for "
99692 +#define GR_SPROLES_ACL_MSG "successful change to special role %s (id %d) by "
99693 +#define GR_SPROLEL_ACL_MSG "special role %s (id %d) exited by "
99694 +#define GR_SPROLEF_ACL_MSG "special role %s failure for "
99695 +#define GR_UNSPROLEI_ACL_MSG "ignoring unauth of special role for disabled RBAC system for "
99696 +#define GR_UNSPROLES_ACL_MSG "successful unauth of special role %s (id %d) by "
99697 +#define GR_INVMODE_ACL_MSG "invalid mode %d by "
99698 +#define GR_PRIORITY_CHROOT_MSG "denied priority change of process (%.16s:%d) by "
99699 +#define GR_FAILFORK_MSG "failed fork with errno %s by "
99700 +#define GR_NICE_CHROOT_MSG "denied priority change by "
99701 +#define GR_UNISIGLOG_MSG "%.32s occurred at %p in "
99702 +#define GR_DUALSIGLOG_MSG "signal %d sent to " DEFAULTSECMSG " by "
99703 +#define GR_SIG_ACL_MSG "denied send of signal %d to protected task " DEFAULTSECMSG " by "
99704 +#define GR_SYSCTL_MSG "denied modification of grsecurity sysctl value : %.32s by "
99705 +#define GR_SYSCTL_ACL_MSG "%s sysctl of %.950s for%s%s by "
99706 +#define GR_TIME_MSG "time set by "
99707 +#define GR_DEFACL_MSG "fatal: unable to find subject for (%.16s:%d), loaded by "
99708 +#define GR_MMAP_ACL_MSG "%s executable mmap of %.950s by "
99709 +#define GR_MPROTECT_ACL_MSG "%s executable mprotect of %.950s by "
99710 +#define GR_SOCK_MSG "denied socket(%.16s,%.16s,%.16s) by "
99711 +#define GR_SOCK_NOINET_MSG "denied socket(%.16s,%.16s,%d) by "
99712 +#define GR_BIND_MSG "denied bind() by "
99713 +#define GR_CONNECT_MSG "denied connect() by "
99714 +#define GR_BIND_ACL_MSG "denied bind() to %pI4 port %u sock type %.16s protocol %.16s by "
99715 +#define GR_CONNECT_ACL_MSG "denied connect() to %pI4 port %u sock type %.16s protocol %.16s by "
99716 +#define GR_IP_LEARN_MSG "%s\t%u\t%u\t%u\t%.4095s\t%.4095s\t%pI4\t%u\t%u\t%u\t%u\t%pI4"
99717 +#define GR_EXEC_CHROOT_MSG "exec of %.980s within chroot by process "
99718 +#define GR_CAP_ACL_MSG "use of %s denied for "
99719 +#define GR_CAP_CHROOT_MSG "use of %s in chroot denied for "
99720 +#define GR_CAP_ACL_MSG2 "use of %s permitted for "
99721 +#define GR_USRCHANGE_ACL_MSG "change to uid %u denied for "
99722 +#define GR_GRPCHANGE_ACL_MSG "change to gid %u denied for "
99723 +#define GR_REMOUNT_AUDIT_MSG "remount of %.256s by "
99724 +#define GR_UNMOUNT_AUDIT_MSG "unmount of %.256s by "
99725 +#define GR_MOUNT_AUDIT_MSG "mount of %.256s to %.256s by "
99726 +#define GR_CHDIR_AUDIT_MSG "chdir to %.980s by "
99727 +#define GR_EXEC_AUDIT_MSG "exec of %.930s (%.128s) by "
99728 +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for "
99729 +#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
99730 +#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
99731 +#define GR_TEXTREL_AUDIT_MSG "allowed %s text relocation transition in %.950s, VMA:0x%08lx 0x%08lx by "
99732 +#define GR_PTGNUSTACK_MSG "denied marking stack executable as requested by PT_GNU_STACK marking in %.950s by "
99733 +#define GR_VM86_MSG "denied use of vm86 by "
99734 +#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
99735 +#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
99736 +#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
99737 +#define GR_BADPROCPID_MSG "denied read of sensitive /proc/pid/%s entry via fd passed across exec by "
99738 +#define GR_SYMLINKOWNER_MSG "denied following symlink %.950s since symlink owner %u does not match target owner %u, by "
99739 +#define GR_BRUTE_DAEMON_MSG "bruteforce prevention initiated for the next 30 minutes or until service restarted, stalling each fork 30 seconds. Please investigate the crash report for "
99740 +#define GR_BRUTE_SUID_MSG "bruteforce prevention initiated due to crash of %.950s against uid %u, banning suid/sgid execs for %u minutes. Please investigate the crash report for "
99741 +#define GR_IPC_DENIED_MSG "denied %s of overly-permissive IPC object with creator uid %u by "
99742 +#define GR_MSRWRITE_MSG "denied write to CPU MSR by "
99743 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
99744 new file mode 100644
99745 index 0000000..0ea4a82
99746 --- /dev/null
99747 +++ b/include/linux/grsecurity.h
99748 @@ -0,0 +1,255 @@
99749 +#ifndef GR_SECURITY_H
99750 +#define GR_SECURITY_H
99751 +#include <linux/fs.h>
99752 +#include <linux/fs_struct.h>
99753 +#include <linux/binfmts.h>
99754 +#include <linux/gracl.h>
99755 +
99756 +/* notify of brain-dead configs */
99757 +#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_GRKERNSEC_KMEM)
99758 +#error "CONFIG_DEBUG_FS being enabled is a security risk when CONFIG_GRKERNSEC_KMEM is enabled"
99759 +#endif
99760 +#if defined(CONFIG_PROC_PAGE_MONITOR) && defined(CONFIG_GRKERNSEC)
99761 +#error "CONFIG_PROC_PAGE_MONITOR is a security risk"
99762 +#endif
99763 +#if defined(CONFIG_GRKERNSEC_PROC_USER) && defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99764 +#error "CONFIG_GRKERNSEC_PROC_USER and CONFIG_GRKERNSEC_PROC_USERGROUP cannot both be enabled."
99765 +#endif
99766 +#if defined(CONFIG_GRKERNSEC_PROC) && !defined(CONFIG_GRKERNSEC_PROC_USER) && !defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99767 +#error "CONFIG_GRKERNSEC_PROC enabled, but neither CONFIG_GRKERNSEC_PROC_USER nor CONFIG_GRKERNSEC_PROC_USERGROUP enabled"
99768 +#endif
99769 +#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_PAGEEXEC) && !defined(CONFIG_PAX_SEGMEXEC) && !defined(CONFIG_PAX_KERNEXEC)
99770 +#error "CONFIG_PAX_NOEXEC enabled, but PAGEEXEC, SEGMEXEC, and KERNEXEC are disabled."
99771 +#endif
99772 +#if defined(CONFIG_PAX_ASLR) && !defined(CONFIG_PAX_RANDKSTACK) && !defined(CONFIG_PAX_RANDUSTACK) && !defined(CONFIG_PAX_RANDMMAP)
99773 +#error "CONFIG_PAX_ASLR enabled, but RANDKSTACK, RANDUSTACK, and RANDMMAP are disabled."
99774 +#endif
99775 +#if defined(CONFIG_PAX) && !defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_ASLR)
99776 +#error "CONFIG_PAX enabled, but no PaX options are enabled."
99777 +#endif
99778 +
99779 +int gr_handle_new_usb(void);
99780 +
99781 +void gr_handle_brute_attach(int dumpable);
99782 +void gr_handle_brute_check(void);
99783 +void gr_handle_kernel_exploit(void);
99784 +
99785 +char gr_roletype_to_char(void);
99786 +
99787 +int gr_proc_is_restricted(void);
99788 +
99789 +int gr_acl_enable_at_secure(void);
99790 +
99791 +int gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs);
99792 +int gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs);
99793 +
99794 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap);
99795 +
99796 +void gr_del_task_from_ip_table(struct task_struct *p);
99797 +
99798 +int gr_pid_is_chrooted(struct task_struct *p);
99799 +int gr_handle_chroot_fowner(struct pid *pid, enum pid_type type);
99800 +int gr_handle_chroot_nice(void);
99801 +int gr_handle_chroot_sysctl(const int op);
99802 +int gr_handle_chroot_setpriority(struct task_struct *p,
99803 + const int niceval);
99804 +int gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt);
99805 +int gr_chroot_fhandle(void);
99806 +int gr_handle_chroot_chroot(const struct dentry *dentry,
99807 + const struct vfsmount *mnt);
99808 +void gr_handle_chroot_chdir(const struct path *path);
99809 +int gr_handle_chroot_chmod(const struct dentry *dentry,
99810 + const struct vfsmount *mnt, const int mode);
99811 +int gr_handle_chroot_mknod(const struct dentry *dentry,
99812 + const struct vfsmount *mnt, const int mode);
99813 +int gr_handle_chroot_mount(const struct dentry *dentry,
99814 + const struct vfsmount *mnt,
99815 + const char *dev_name);
99816 +int gr_handle_chroot_pivot(void);
99817 +int gr_handle_chroot_unix(const pid_t pid);
99818 +
99819 +int gr_handle_rawio(const struct inode *inode);
99820 +
99821 +void gr_handle_ioperm(void);
99822 +void gr_handle_iopl(void);
99823 +void gr_handle_msr_write(void);
99824 +
99825 +umode_t gr_acl_umask(void);
99826 +
99827 +int gr_tpe_allow(const struct file *file);
99828 +
99829 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path);
99830 +void gr_clear_chroot_entries(struct task_struct *task);
99831 +
99832 +void gr_log_forkfail(const int retval);
99833 +void gr_log_timechange(void);
99834 +void gr_log_signal(const int sig, const void *addr, const struct task_struct *t);
99835 +void gr_log_chdir(const struct dentry *dentry,
99836 + const struct vfsmount *mnt);
99837 +void gr_log_chroot_exec(const struct dentry *dentry,
99838 + const struct vfsmount *mnt);
99839 +void gr_log_remount(const char *devname, const int retval);
99840 +void gr_log_unmount(const char *devname, const int retval);
99841 +void gr_log_mount(const char *from, struct path *to, const int retval);
99842 +void gr_log_textrel(struct vm_area_struct *vma, bool is_textrel_rw);
99843 +void gr_log_ptgnustack(struct file *file);
99844 +void gr_log_rwxmmap(struct file *file);
99845 +void gr_log_rwxmprotect(struct vm_area_struct *vma);
99846 +
99847 +int gr_handle_follow_link(const struct dentry *dentry,
99848 + const struct vfsmount *mnt);
99849 +int gr_handle_fifo(const struct dentry *dentry,
99850 + const struct vfsmount *mnt,
99851 + const struct dentry *dir, const int flag,
99852 + const int acc_mode);
99853 +int gr_handle_hardlink(const struct dentry *dentry,
99854 + const struct vfsmount *mnt,
99855 + const struct filename *to);
99856 +
99857 +int gr_is_capable(const int cap);
99858 +int gr_is_capable_nolog(const int cap);
99859 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
99860 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap);
99861 +
99862 +void gr_copy_label(struct task_struct *tsk);
99863 +void gr_handle_crash(struct task_struct *task, const int sig);
99864 +int gr_handle_signal(const struct task_struct *p, const int sig);
99865 +int gr_check_crash_uid(const kuid_t uid);
99866 +int gr_check_protected_task(const struct task_struct *task);
99867 +int gr_check_protected_task_fowner(struct pid *pid, enum pid_type type);
99868 +int gr_acl_handle_mmap(const struct file *file,
99869 + const unsigned long prot);
99870 +int gr_acl_handle_mprotect(const struct file *file,
99871 + const unsigned long prot);
99872 +int gr_check_hidden_task(const struct task_struct *tsk);
99873 +__u32 gr_acl_handle_truncate(const struct dentry *dentry,
99874 + const struct vfsmount *mnt);
99875 +__u32 gr_acl_handle_utime(const struct dentry *dentry,
99876 + const struct vfsmount *mnt);
99877 +__u32 gr_acl_handle_access(const struct dentry *dentry,
99878 + const struct vfsmount *mnt, const int fmode);
99879 +__u32 gr_acl_handle_chmod(const struct dentry *dentry,
99880 + const struct vfsmount *mnt, umode_t *mode);
99881 +__u32 gr_acl_handle_chown(const struct dentry *dentry,
99882 + const struct vfsmount *mnt);
99883 +__u32 gr_acl_handle_setxattr(const struct dentry *dentry,
99884 + const struct vfsmount *mnt);
99885 +__u32 gr_acl_handle_removexattr(const struct dentry *dentry,
99886 + const struct vfsmount *mnt);
99887 +int gr_handle_ptrace(struct task_struct *task, const long request);
99888 +int gr_handle_proc_ptrace(struct task_struct *task);
99889 +__u32 gr_acl_handle_execve(const struct dentry *dentry,
99890 + const struct vfsmount *mnt);
99891 +int gr_check_crash_exec(const struct file *filp);
99892 +int gr_acl_is_enabled(void);
99893 +void gr_set_role_label(struct task_struct *task, const kuid_t uid,
99894 + const kgid_t gid);
99895 +int gr_set_proc_label(const struct dentry *dentry,
99896 + const struct vfsmount *mnt,
99897 + const int unsafe_flags);
99898 +__u32 gr_acl_handle_hidden_file(const struct dentry *dentry,
99899 + const struct vfsmount *mnt);
99900 +__u32 gr_acl_handle_open(const struct dentry *dentry,
99901 + const struct vfsmount *mnt, int acc_mode);
99902 +__u32 gr_acl_handle_creat(const struct dentry *dentry,
99903 + const struct dentry *p_dentry,
99904 + const struct vfsmount *p_mnt,
99905 + int open_flags, int acc_mode, const int imode);
99906 +void gr_handle_create(const struct dentry *dentry,
99907 + const struct vfsmount *mnt);
99908 +void gr_handle_proc_create(const struct dentry *dentry,
99909 + const struct inode *inode);
99910 +__u32 gr_acl_handle_mknod(const struct dentry *new_dentry,
99911 + const struct dentry *parent_dentry,
99912 + const struct vfsmount *parent_mnt,
99913 + const int mode);
99914 +__u32 gr_acl_handle_mkdir(const struct dentry *new_dentry,
99915 + const struct dentry *parent_dentry,
99916 + const struct vfsmount *parent_mnt);
99917 +__u32 gr_acl_handle_rmdir(const struct dentry *dentry,
99918 + const struct vfsmount *mnt);
99919 +void gr_handle_delete(const u64 ino, const dev_t dev);
99920 +__u32 gr_acl_handle_unlink(const struct dentry *dentry,
99921 + const struct vfsmount *mnt);
99922 +__u32 gr_acl_handle_symlink(const struct dentry *new_dentry,
99923 + const struct dentry *parent_dentry,
99924 + const struct vfsmount *parent_mnt,
99925 + const struct filename *from);
99926 +__u32 gr_acl_handle_link(const struct dentry *new_dentry,
99927 + const struct dentry *parent_dentry,
99928 + const struct vfsmount *parent_mnt,
99929 + const struct dentry *old_dentry,
99930 + const struct vfsmount *old_mnt, const struct filename *to);
99931 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target);
99932 +int gr_acl_handle_rename(struct dentry *new_dentry,
99933 + struct dentry *parent_dentry,
99934 + const struct vfsmount *parent_mnt,
99935 + struct dentry *old_dentry,
99936 + struct inode *old_parent_inode,
99937 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags);
99938 +void gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
99939 + struct dentry *old_dentry,
99940 + struct dentry *new_dentry,
99941 + struct vfsmount *mnt, const __u8 replace, unsigned int flags);
99942 +__u32 gr_check_link(const struct dentry *new_dentry,
99943 + const struct dentry *parent_dentry,
99944 + const struct vfsmount *parent_mnt,
99945 + const struct dentry *old_dentry,
99946 + const struct vfsmount *old_mnt);
99947 +int gr_acl_handle_filldir(const struct file *file, const char *name,
99948 + const unsigned int namelen, const u64 ino);
99949 +
99950 +__u32 gr_acl_handle_unix(const struct dentry *dentry,
99951 + const struct vfsmount *mnt);
99952 +void gr_acl_handle_exit(void);
99953 +void gr_acl_handle_psacct(struct task_struct *task, const long code);
99954 +int gr_acl_handle_procpidmem(const struct task_struct *task);
99955 +int gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags);
99956 +int gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode);
99957 +void gr_audit_ptrace(struct task_struct *task);
99958 +dev_t gr_get_dev_from_dentry(struct dentry *dentry);
99959 +u64 gr_get_ino_from_dentry(struct dentry *dentry);
99960 +void gr_put_exec_file(struct task_struct *task);
99961 +
99962 +int gr_get_symlinkown_enabled(void);
99963 +
99964 +int gr_ptrace_readexec(struct file *file, int unsafe_flags);
99965 +
99966 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
99967 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
99968 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
99969 + struct dentry *newdentry, struct vfsmount *newmnt);
99970 +
99971 +#ifdef CONFIG_GRKERNSEC_RESLOG
99972 +extern void gr_log_resource(const struct task_struct *task, const int res,
99973 + const unsigned long wanted, const int gt);
99974 +#else
99975 +static inline void gr_log_resource(const struct task_struct *task, const int res,
99976 + const unsigned long wanted, const int gt)
99977 +{
99978 +}
99979 +#endif
99980 +
99981 +#ifdef CONFIG_GRKERNSEC
99982 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
99983 +void gr_handle_vm86(void);
99984 +void gr_handle_mem_readwrite(u64 from, u64 to);
99985 +
99986 +void gr_log_badprocpid(const char *entry);
99987 +
99988 +extern int grsec_enable_dmesg;
99989 +extern int grsec_disable_privio;
99990 +
99991 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
99992 +extern kgid_t grsec_proc_gid;
99993 +#endif
99994 +
99995 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
99996 +extern int grsec_enable_chroot_findtask;
99997 +#endif
99998 +#ifdef CONFIG_GRKERNSEC_SETXID
99999 +extern int grsec_enable_setxid;
100000 +#endif
100001 +#endif
100002 +
100003 +#endif
100004 diff --git a/include/linux/grsock.h b/include/linux/grsock.h
100005 new file mode 100644
100006 index 0000000..e7ffaaf
100007 --- /dev/null
100008 +++ b/include/linux/grsock.h
100009 @@ -0,0 +1,19 @@
100010 +#ifndef __GRSOCK_H
100011 +#define __GRSOCK_H
100012 +
100013 +extern void gr_attach_curr_ip(const struct sock *sk);
100014 +extern int gr_handle_sock_all(const int family, const int type,
100015 + const int protocol);
100016 +extern int gr_handle_sock_server(const struct sockaddr *sck);
100017 +extern int gr_handle_sock_server_other(const struct sock *sck);
100018 +extern int gr_handle_sock_client(const struct sockaddr *sck);
100019 +extern int gr_search_connect(struct socket * sock,
100020 + struct sockaddr_in * addr);
100021 +extern int gr_search_bind(struct socket * sock,
100022 + struct sockaddr_in * addr);
100023 +extern int gr_search_listen(struct socket * sock);
100024 +extern int gr_search_accept(struct socket * sock);
100025 +extern int gr_search_socket(const int domain, const int type,
100026 + const int protocol);
100027 +
100028 +#endif
100029 diff --git a/include/linux/highmem.h b/include/linux/highmem.h
100030 index 6aefcd0..98b81dc 100644
100031 --- a/include/linux/highmem.h
100032 +++ b/include/linux/highmem.h
100033 @@ -191,6 +191,18 @@ static inline void clear_highpage(struct page *page)
100034 kunmap_atomic(kaddr);
100035 }
100036
100037 +static inline void sanitize_highpage(struct page *page)
100038 +{
100039 + void *kaddr;
100040 + unsigned long flags;
100041 +
100042 + local_irq_save(flags);
100043 + kaddr = kmap_atomic(page);
100044 + clear_page(kaddr);
100045 + kunmap_atomic(kaddr);
100046 + local_irq_restore(flags);
100047 +}
100048 +
100049 static inline void zero_user_segments(struct page *page,
100050 unsigned start1, unsigned end1,
100051 unsigned start2, unsigned end2)
100052 diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h
100053 index 1c7b89a..7dda400 100644
100054 --- a/include/linux/hwmon-sysfs.h
100055 +++ b/include/linux/hwmon-sysfs.h
100056 @@ -25,7 +25,8 @@
100057 struct sensor_device_attribute{
100058 struct device_attribute dev_attr;
100059 int index;
100060 -};
100061 +} __do_const;
100062 +typedef struct sensor_device_attribute __no_const sensor_device_attribute_no_const;
100063 #define to_sensor_dev_attr(_dev_attr) \
100064 container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
100065
100066 @@ -41,7 +42,8 @@ struct sensor_device_attribute_2 {
100067 struct device_attribute dev_attr;
100068 u8 index;
100069 u8 nr;
100070 -};
100071 +} __do_const;
100072 +typedef struct sensor_device_attribute_2 __no_const sensor_device_attribute_2_no_const;
100073 #define to_sensor_dev_attr_2(_dev_attr) \
100074 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
100075
100076 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
100077 index 768063b..62ef5be 100644
100078 --- a/include/linux/i2c.h
100079 +++ b/include/linux/i2c.h
100080 @@ -412,6 +412,7 @@ struct i2c_algorithm {
100081 int (*unreg_slave)(struct i2c_client *client);
100082 #endif
100083 };
100084 +typedef struct i2c_algorithm __no_const i2c_algorithm_no_const;
100085
100086 /**
100087 * struct i2c_bus_recovery_info - I2C bus recovery information
100088 diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
100089 index b49cf92..0c29072 100644
100090 --- a/include/linux/if_pppox.h
100091 +++ b/include/linux/if_pppox.h
100092 @@ -78,7 +78,7 @@ struct pppox_proto {
100093 int (*ioctl)(struct socket *sock, unsigned int cmd,
100094 unsigned long arg);
100095 struct module *owner;
100096 -};
100097 +} __do_const;
100098
100099 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
100100 extern void unregister_pppox_proto(int proto_num);
100101 diff --git a/include/linux/init.h b/include/linux/init.h
100102 index b449f37..61005b3 100644
100103 --- a/include/linux/init.h
100104 +++ b/include/linux/init.h
100105 @@ -37,9 +37,17 @@
100106 * section.
100107 */
100108
100109 +#define add_init_latent_entropy __latent_entropy
100110 +
100111 +#ifdef CONFIG_MEMORY_HOTPLUG
100112 +#define add_meminit_latent_entropy
100113 +#else
100114 +#define add_meminit_latent_entropy __latent_entropy
100115 +#endif
100116 +
100117 /* These are for everybody (although not all archs will actually
100118 discard it in modules) */
100119 -#define __init __section(.init.text) __cold notrace
100120 +#define __init __section(.init.text) __cold notrace add_init_latent_entropy
100121 #define __initdata __section(.init.data)
100122 #define __initconst __constsection(.init.rodata)
100123 #define __exitdata __section(.exit.data)
100124 @@ -92,7 +100,7 @@
100125 #define __exit __section(.exit.text) __exitused __cold notrace
100126
100127 /* Used for MEMORY_HOTPLUG */
100128 -#define __meminit __section(.meminit.text) __cold notrace
100129 +#define __meminit __section(.meminit.text) __cold notrace add_meminit_latent_entropy
100130 #define __meminitdata __section(.meminit.data)
100131 #define __meminitconst __constsection(.meminit.rodata)
100132 #define __memexit __section(.memexit.text) __exitused __cold notrace
100133 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
100134 index e38681f..314ff86 100644
100135 --- a/include/linux/init_task.h
100136 +++ b/include/linux/init_task.h
100137 @@ -166,6 +166,12 @@ extern struct task_group root_task_group;
100138
100139 #define INIT_TASK_COMM "swapper"
100140
100141 +#ifdef CONFIG_X86
100142 +#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
100143 +#else
100144 +#define INIT_TASK_THREAD_INFO
100145 +#endif
100146 +
100147 #ifdef CONFIG_RT_MUTEXES
100148 # define INIT_RT_MUTEXES(tsk) \
100149 .pi_waiters = RB_ROOT, \
100150 @@ -232,6 +238,7 @@ extern struct task_group root_task_group;
100151 RCU_POINTER_INITIALIZER(cred, &init_cred), \
100152 .comm = INIT_TASK_COMM, \
100153 .thread = INIT_THREAD, \
100154 + INIT_TASK_THREAD_INFO \
100155 .fs = &init_fs, \
100156 .files = &init_files, \
100157 .signal = &init_signals, \
100158 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
100159 index be7e75c..09bec77 100644
100160 --- a/include/linux/interrupt.h
100161 +++ b/include/linux/interrupt.h
100162 @@ -433,8 +433,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
100163
100164 struct softirq_action
100165 {
100166 - void (*action)(struct softirq_action *);
100167 -};
100168 + void (*action)(void);
100169 +} __no_const;
100170
100171 asmlinkage void do_softirq(void);
100172 asmlinkage void __do_softirq(void);
100173 @@ -448,7 +448,7 @@ static inline void do_softirq_own_stack(void)
100174 }
100175 #endif
100176
100177 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
100178 +extern void open_softirq(int nr, void (*action)(void));
100179 extern void softirq_init(void);
100180 extern void __raise_softirq_irqoff(unsigned int nr);
100181
100182 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
100183 index f9c1b6d..db7d6f5 100644
100184 --- a/include/linux/iommu.h
100185 +++ b/include/linux/iommu.h
100186 @@ -192,7 +192,7 @@ struct iommu_ops {
100187
100188 unsigned long pgsize_bitmap;
100189 void *priv;
100190 -};
100191 +} __do_const;
100192
100193 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */
100194 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */
100195 diff --git a/include/linux/ioport.h b/include/linux/ioport.h
100196 index 388e3ae..d7e45a1 100644
100197 --- a/include/linux/ioport.h
100198 +++ b/include/linux/ioport.h
100199 @@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
100200 int adjust_resource(struct resource *res, resource_size_t start,
100201 resource_size_t size);
100202 resource_size_t resource_alignment(struct resource *res);
100203 -static inline resource_size_t resource_size(const struct resource *res)
100204 +static inline resource_size_t __intentional_overflow(-1) resource_size(const struct resource *res)
100205 {
100206 return res->end - res->start + 1;
100207 }
100208 diff --git a/include/linux/ipc.h b/include/linux/ipc.h
100209 index 9d84942..12d5bdf 100644
100210 --- a/include/linux/ipc.h
100211 +++ b/include/linux/ipc.h
100212 @@ -19,8 +19,8 @@ struct kern_ipc_perm
100213 kuid_t cuid;
100214 kgid_t cgid;
100215 umode_t mode;
100216 - unsigned long seq;
100217 + unsigned long seq __intentional_overflow(-1);
100218 void *security;
100219 -};
100220 +} __randomize_layout;
100221
100222 #endif /* _LINUX_IPC_H */
100223 diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
100224 index 1eee6bc..9cf4912 100644
100225 --- a/include/linux/ipc_namespace.h
100226 +++ b/include/linux/ipc_namespace.h
100227 @@ -60,7 +60,7 @@ struct ipc_namespace {
100228 struct user_namespace *user_ns;
100229
100230 struct ns_common ns;
100231 -};
100232 +} __randomize_layout;
100233
100234 extern struct ipc_namespace init_ipc_ns;
100235 extern atomic_t nr_ipc_ns;
100236 diff --git a/include/linux/irq.h b/include/linux/irq.h
100237 index 11bf092..8d0f57f 100644
100238 --- a/include/linux/irq.h
100239 +++ b/include/linux/irq.h
100240 @@ -399,7 +399,10 @@ struct irq_chip {
100241 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
100242
100243 unsigned long flags;
100244 -};
100245 +} __do_const;
100246 +#ifndef _LINUX_IRQDOMAIN_H
100247 +typedef struct irq_chip __no_const irq_chip_no_const;
100248 +#endif
100249
100250 /*
100251 * irq_chip specific flags
100252 diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
100253 index a587a33..0ff712d 100644
100254 --- a/include/linux/irqdesc.h
100255 +++ b/include/linux/irqdesc.h
100256 @@ -59,7 +59,7 @@ struct irq_desc {
100257 unsigned int irq_count; /* For detecting broken IRQs */
100258 unsigned long last_unhandled; /* Aging timer for unhandled count */
100259 unsigned int irqs_unhandled;
100260 - atomic_t threads_handled;
100261 + atomic_unchecked_t threads_handled;
100262 int threads_handled_last;
100263 raw_spinlock_t lock;
100264 struct cpumask *percpu_enabled;
100265 diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
100266 index f644fdb..ae23d35 100644
100267 --- a/include/linux/irqdomain.h
100268 +++ b/include/linux/irqdomain.h
100269 @@ -40,6 +40,9 @@ struct device_node;
100270 struct irq_domain;
100271 struct of_device_id;
100272 struct irq_chip;
100273 +#ifndef _LINUX_IRQ_H
100274 +typedef struct irq_chip __no_const irq_chip_no_const;
100275 +#endif
100276 struct irq_data;
100277
100278 /* Number of irqs reserved for a legacy isa controller */
100279 diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
100280 index 5fdc553..766e169 100644
100281 --- a/include/linux/jiffies.h
100282 +++ b/include/linux/jiffies.h
100283 @@ -284,19 +284,19 @@ extern unsigned long preset_lpj;
100284 extern unsigned int jiffies_to_msecs(const unsigned long j);
100285 extern unsigned int jiffies_to_usecs(const unsigned long j);
100286
100287 -static inline u64 jiffies_to_nsecs(const unsigned long j)
100288 +static inline u64 __intentional_overflow(-1) jiffies_to_nsecs(const unsigned long j)
100289 {
100290 return (u64)jiffies_to_usecs(j) * NSEC_PER_USEC;
100291 }
100292
100293 -extern unsigned long __msecs_to_jiffies(const unsigned int m);
100294 +extern unsigned long __msecs_to_jiffies(const unsigned int m) __intentional_overflow(-1);
100295 #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ)
100296 /*
100297 * HZ is equal to or smaller than 1000, and 1000 is a nice round
100298 * multiple of HZ, divide with the factor between them, but round
100299 * upwards:
100300 */
100301 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100302 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100303 {
100304 return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ);
100305 }
100306 @@ -307,7 +307,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100307 *
100308 * But first make sure the multiplication result cannot overflow:
100309 */
100310 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100311 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100312 {
100313 if (m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
100314 return MAX_JIFFY_OFFSET;
100315 @@ -318,7 +318,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100316 * Generic case - multiply, round and divide. But first check that if
100317 * we are doing a net multiplication, that we wouldn't overflow:
100318 */
100319 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100320 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100321 {
100322 if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
100323 return MAX_JIFFY_OFFSET;
100324 @@ -362,14 +362,14 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
100325 }
100326 }
100327
100328 -extern unsigned long __usecs_to_jiffies(const unsigned int u);
100329 +extern unsigned long __usecs_to_jiffies(const unsigned int u) __intentional_overflow(-1);
100330 #if !(USEC_PER_SEC % HZ)
100331 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100332 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
100333 {
100334 return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
100335 }
100336 #else
100337 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100338 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
100339 {
100340 return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
100341 >> USEC_TO_HZ_SHR32;
100342 diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
100343 index 6883e19..e854fcb 100644
100344 --- a/include/linux/kallsyms.h
100345 +++ b/include/linux/kallsyms.h
100346 @@ -15,7 +15,8 @@
100347
100348 struct module;
100349
100350 -#ifdef CONFIG_KALLSYMS
100351 +#if !defined(__INCLUDED_BY_HIDESYM) || !defined(CONFIG_KALLSYMS)
100352 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
100353 /* Lookup the address for a symbol. Returns 0 if not found. */
100354 unsigned long kallsyms_lookup_name(const char *name);
100355
100356 @@ -106,6 +107,21 @@ static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, u
100357 /* Stupid that this does nothing, but I didn't create this mess. */
100358 #define __print_symbol(fmt, addr)
100359 #endif /*CONFIG_KALLSYMS*/
100360 +#else /* when included by kallsyms.c, vsnprintf.c, kprobes.c, or
100361 + arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
100362 +extern unsigned long kallsyms_lookup_name(const char *name);
100363 +extern void __print_symbol(const char *fmt, unsigned long address);
100364 +extern int sprint_backtrace(char *buffer, unsigned long address);
100365 +extern int sprint_symbol(char *buffer, unsigned long address);
100366 +extern int sprint_symbol_no_offset(char *buffer, unsigned long address);
100367 +const char *kallsyms_lookup(unsigned long addr,
100368 + unsigned long *symbolsize,
100369 + unsigned long *offset,
100370 + char **modname, char *namebuf);
100371 +extern int kallsyms_lookup_size_offset(unsigned long addr,
100372 + unsigned long *symbolsize,
100373 + unsigned long *offset);
100374 +#endif
100375
100376 /* This macro allows us to keep printk typechecking */
100377 static __printf(1, 2)
100378 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
100379 index ff9f1d3..6712be5 100644
100380 --- a/include/linux/key-type.h
100381 +++ b/include/linux/key-type.h
100382 @@ -152,7 +152,7 @@ struct key_type {
100383 /* internal fields */
100384 struct list_head link; /* link in types list */
100385 struct lock_class_key lock_class; /* key->sem lock class */
100386 -};
100387 +} __do_const;
100388
100389 extern struct key_type key_type_keyring;
100390
100391 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
100392 index e465bb1..19f605fd 100644
100393 --- a/include/linux/kgdb.h
100394 +++ b/include/linux/kgdb.h
100395 @@ -52,7 +52,7 @@ extern int kgdb_connected;
100396 extern int kgdb_io_module_registered;
100397
100398 extern atomic_t kgdb_setting_breakpoint;
100399 -extern atomic_t kgdb_cpu_doing_single_step;
100400 +extern atomic_unchecked_t kgdb_cpu_doing_single_step;
100401
100402 extern struct task_struct *kgdb_usethread;
100403 extern struct task_struct *kgdb_contthread;
100404 @@ -254,7 +254,7 @@ struct kgdb_arch {
100405 void (*correct_hw_break)(void);
100406
100407 void (*enable_nmi)(bool on);
100408 -};
100409 +} __do_const;
100410
100411 /**
100412 * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
100413 @@ -279,7 +279,7 @@ struct kgdb_io {
100414 void (*pre_exception) (void);
100415 void (*post_exception) (void);
100416 int is_console;
100417 -};
100418 +} __do_const;
100419
100420 extern struct kgdb_arch arch_kgdb_ops;
100421
100422 diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
100423 index d0a1f99..0bd8b7c 100644
100424 --- a/include/linux/kmemleak.h
100425 +++ b/include/linux/kmemleak.h
100426 @@ -27,7 +27,7 @@
100427
100428 extern void kmemleak_init(void) __ref;
100429 extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
100430 - gfp_t gfp) __ref;
100431 + gfp_t gfp) __ref __size_overflow(2);
100432 extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
100433 gfp_t gfp) __ref;
100434 extern void kmemleak_free(const void *ptr) __ref;
100435 @@ -63,7 +63,7 @@ static inline void kmemleak_erase(void **ptr)
100436 static inline void kmemleak_init(void)
100437 {
100438 }
100439 -static inline void kmemleak_alloc(const void *ptr, size_t size, int min_count,
100440 +static inline void __size_overflow(2) kmemleak_alloc(const void *ptr, size_t size, int min_count,
100441 gfp_t gfp)
100442 {
100443 }
100444 diff --git a/include/linux/kmod.h b/include/linux/kmod.h
100445 index fcfd2bf..bc6316e 100644
100446 --- a/include/linux/kmod.h
100447 +++ b/include/linux/kmod.h
100448 @@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
100449 * usually useless though. */
100450 extern __printf(2, 3)
100451 int __request_module(bool wait, const char *name, ...);
100452 +extern __printf(3, 4)
100453 +int ___request_module(bool wait, char *param_name, const char *name, ...);
100454 #define request_module(mod...) __request_module(true, mod)
100455 #define request_module_nowait(mod...) __request_module(false, mod)
100456 #define try_then_request_module(x, mod...) \
100457 @@ -57,6 +59,9 @@ struct subprocess_info {
100458 struct work_struct work;
100459 struct completion *complete;
100460 char *path;
100461 +#ifdef CONFIG_GRKERNSEC
100462 + char *origpath;
100463 +#endif
100464 char **argv;
100465 char **envp;
100466 int wait;
100467 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
100468 index 637f670..3d69945 100644
100469 --- a/include/linux/kobject.h
100470 +++ b/include/linux/kobject.h
100471 @@ -119,7 +119,7 @@ struct kobj_type {
100472 struct attribute **default_attrs;
100473 const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
100474 const void *(*namespace)(struct kobject *kobj);
100475 -};
100476 +} __do_const;
100477
100478 struct kobj_uevent_env {
100479 char *argv[3];
100480 @@ -143,6 +143,7 @@ struct kobj_attribute {
100481 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
100482 const char *buf, size_t count);
100483 };
100484 +typedef struct kobj_attribute __no_const kobj_attribute_no_const;
100485
100486 extern const struct sysfs_ops kobj_sysfs_ops;
100487
100488 @@ -170,7 +171,7 @@ struct kset {
100489 spinlock_t list_lock;
100490 struct kobject kobj;
100491 const struct kset_uevent_ops *uevent_ops;
100492 -};
100493 +} __randomize_layout;
100494
100495 extern void kset_init(struct kset *kset);
100496 extern int __must_check kset_register(struct kset *kset);
100497 diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h
100498 index df32d25..fb52e27 100644
100499 --- a/include/linux/kobject_ns.h
100500 +++ b/include/linux/kobject_ns.h
100501 @@ -44,7 +44,7 @@ struct kobj_ns_type_operations {
100502 const void *(*netlink_ns)(struct sock *sk);
100503 const void *(*initial_ns)(void);
100504 void (*drop_ns)(void *);
100505 -};
100506 +} __do_const;
100507
100508 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
100509 int kobj_ns_type_registered(enum kobj_ns_type type);
100510 diff --git a/include/linux/kref.h b/include/linux/kref.h
100511 index 484604d..0f6c5b6 100644
100512 --- a/include/linux/kref.h
100513 +++ b/include/linux/kref.h
100514 @@ -68,7 +68,7 @@ static inline void kref_get(struct kref *kref)
100515 static inline int kref_sub(struct kref *kref, unsigned int count,
100516 void (*release)(struct kref *kref))
100517 {
100518 - WARN_ON(release == NULL);
100519 + BUG_ON(release == NULL);
100520
100521 if (atomic_sub_and_test((int) count, &kref->refcount)) {
100522 release(kref);
100523 diff --git a/include/linux/libata.h b/include/linux/libata.h
100524 index c9cfbcd..46986db 100644
100525 --- a/include/linux/libata.h
100526 +++ b/include/linux/libata.h
100527 @@ -990,7 +990,7 @@ struct ata_port_operations {
100528 * fields must be pointers.
100529 */
100530 const struct ata_port_operations *inherits;
100531 -};
100532 +} __do_const;
100533
100534 struct ata_port_info {
100535 unsigned long flags;
100536 diff --git a/include/linux/linkage.h b/include/linux/linkage.h
100537 index a6a42dd..6c5ebce 100644
100538 --- a/include/linux/linkage.h
100539 +++ b/include/linux/linkage.h
100540 @@ -36,6 +36,7 @@
100541 #endif
100542
100543 #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
100544 +#define __page_aligned_rodata __read_only __aligned(PAGE_SIZE)
100545 #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE)
100546
100547 /*
100548 diff --git a/include/linux/list.h b/include/linux/list.h
100549 index 3e3e64a..42c8d8a 100644
100550 --- a/include/linux/list.h
100551 +++ b/include/linux/list.h
100552 @@ -113,6 +113,19 @@ extern void __list_del_entry(struct list_head *entry);
100553 extern void list_del(struct list_head *entry);
100554 #endif
100555
100556 +extern void __pax_list_add(struct list_head *new,
100557 + struct list_head *prev,
100558 + struct list_head *next);
100559 +static inline void pax_list_add(struct list_head *new, struct list_head *head)
100560 +{
100561 + __pax_list_add(new, head, head->next);
100562 +}
100563 +static inline void pax_list_add_tail(struct list_head *new, struct list_head *head)
100564 +{
100565 + __pax_list_add(new, head->prev, head);
100566 +}
100567 +extern void pax_list_del(struct list_head *entry);
100568 +
100569 /**
100570 * list_replace - replace old entry by new one
100571 * @old : the element to be replaced
100572 @@ -146,6 +159,8 @@ static inline void list_del_init(struct list_head *entry)
100573 INIT_LIST_HEAD(entry);
100574 }
100575
100576 +extern void pax_list_del_init(struct list_head *entry);
100577 +
100578 /**
100579 * list_move - delete from one list and add as another's head
100580 * @list: the entry to move
100581 diff --git a/include/linux/lockref.h b/include/linux/lockref.h
100582 index b10b122..d37b3de 100644
100583 --- a/include/linux/lockref.h
100584 +++ b/include/linux/lockref.h
100585 @@ -28,7 +28,7 @@ struct lockref {
100586 #endif
100587 struct {
100588 spinlock_t lock;
100589 - int count;
100590 + atomic_t count;
100591 };
100592 };
100593 };
100594 @@ -43,9 +43,29 @@ extern void lockref_mark_dead(struct lockref *);
100595 extern int lockref_get_not_dead(struct lockref *);
100596
100597 /* Must be called under spinlock for reliable results */
100598 -static inline int __lockref_is_dead(const struct lockref *l)
100599 +static inline int __lockref_is_dead(const struct lockref *lockref)
100600 {
100601 - return ((int)l->count < 0);
100602 + return atomic_read(&lockref->count) < 0;
100603 +}
100604 +
100605 +static inline int __lockref_read(const struct lockref *lockref)
100606 +{
100607 + return atomic_read(&lockref->count);
100608 +}
100609 +
100610 +static inline void __lockref_set(struct lockref *lockref, int count)
100611 +{
100612 + atomic_set(&lockref->count, count);
100613 +}
100614 +
100615 +static inline void __lockref_inc(struct lockref *lockref)
100616 +{
100617 + atomic_inc(&lockref->count);
100618 +}
100619 +
100620 +static inline void __lockref_dec(struct lockref *lockref)
100621 +{
100622 + atomic_dec(&lockref->count);
100623 }
100624
100625 #endif /* __LINUX_LOCKREF_H */
100626 diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
100627 index ec3a6ba..72c79d4 100644
100628 --- a/include/linux/lsm_hooks.h
100629 +++ b/include/linux/lsm_hooks.h
100630 @@ -1824,7 +1824,7 @@ struct security_hook_heads {
100631 struct list_head audit_rule_match;
100632 struct list_head audit_rule_free;
100633 #endif /* CONFIG_AUDIT */
100634 -};
100635 +} __randomize_layout;
100636
100637 /*
100638 * Security module hook list structure.
100639 @@ -1834,7 +1834,7 @@ struct security_hook_list {
100640 struct list_head list;
100641 struct list_head *head;
100642 union security_list_options hook;
100643 -};
100644 +} __randomize_layout;
100645
100646 /*
100647 * Initializing a security_hook_list structure takes
100648 diff --git a/include/linux/math64.h b/include/linux/math64.h
100649 index c45c089..298841c 100644
100650 --- a/include/linux/math64.h
100651 +++ b/include/linux/math64.h
100652 @@ -15,7 +15,7 @@
100653 * This is commonly provided by 32bit archs to provide an optimized 64bit
100654 * divide.
100655 */
100656 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100657 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100658 {
100659 *remainder = dividend % divisor;
100660 return dividend / divisor;
100661 @@ -42,7 +42,7 @@ static inline u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder)
100662 /**
100663 * div64_u64 - unsigned 64bit divide with 64bit divisor
100664 */
100665 -static inline u64 div64_u64(u64 dividend, u64 divisor)
100666 +static inline u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
100667 {
100668 return dividend / divisor;
100669 }
100670 @@ -61,7 +61,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
100671 #define div64_ul(x, y) div_u64((x), (y))
100672
100673 #ifndef div_u64_rem
100674 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100675 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100676 {
100677 *remainder = do_div(dividend, divisor);
100678 return dividend;
100679 @@ -77,7 +77,7 @@ extern u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder);
100680 #endif
100681
100682 #ifndef div64_u64
100683 -extern u64 div64_u64(u64 dividend, u64 divisor);
100684 +extern u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor);
100685 #endif
100686
100687 #ifndef div64_s64
100688 @@ -94,7 +94,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor);
100689 * divide.
100690 */
100691 #ifndef div_u64
100692 -static inline u64 div_u64(u64 dividend, u32 divisor)
100693 +static inline u64 __intentional_overflow(-1) div_u64(u64 dividend, u32 divisor)
100694 {
100695 u32 remainder;
100696 return div_u64_rem(dividend, divisor, &remainder);
100697 diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
100698 index 3d385c8..deacb6a 100644
100699 --- a/include/linux/mempolicy.h
100700 +++ b/include/linux/mempolicy.h
100701 @@ -91,6 +91,10 @@ static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
100702 }
100703
100704 #define vma_policy(vma) ((vma)->vm_policy)
100705 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100706 +{
100707 + vma->vm_policy = pol;
100708 +}
100709
100710 static inline void mpol_get(struct mempolicy *pol)
100711 {
100712 @@ -229,6 +233,9 @@ static inline void mpol_free_shared_policy(struct shared_policy *p)
100713 }
100714
100715 #define vma_policy(vma) NULL
100716 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100717 +{
100718 +}
100719
100720 static inline int
100721 vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
100722 diff --git a/include/linux/mm.h b/include/linux/mm.h
100723 index 80001de..7f128d9 100644
100724 --- a/include/linux/mm.h
100725 +++ b/include/linux/mm.h
100726 @@ -139,6 +139,11 @@ extern unsigned int kobjsize(const void *objp);
100727
100728 #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
100729 #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
100730 +
100731 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
100732 +#define VM_PAGEEXEC 0x00080000 /* vma->vm_page_prot needs special handling */
100733 +#endif
100734 +
100735 #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
100736 #define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
100737 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
100738 @@ -264,8 +269,8 @@ struct vm_operations_struct {
100739 /* called by access_process_vm when get_user_pages() fails, typically
100740 * for use by special VMAs that can switch between memory and hardware
100741 */
100742 - int (*access)(struct vm_area_struct *vma, unsigned long addr,
100743 - void *buf, int len, int write);
100744 + ssize_t (*access)(struct vm_area_struct *vma, unsigned long addr,
100745 + void *buf, size_t len, int write);
100746
100747 /* Called by the /proc/PID/maps code to ask the vma whether it
100748 * has a special name. Returning non-NULL will also cause this
100749 @@ -303,6 +308,7 @@ struct vm_operations_struct {
100750 struct page *(*find_special_page)(struct vm_area_struct *vma,
100751 unsigned long addr);
100752 };
100753 +typedef struct vm_operations_struct __no_const vm_operations_struct_no_const;
100754
100755 struct mmu_gather;
100756 struct inode;
100757 @@ -1170,8 +1176,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
100758 unsigned long *pfn);
100759 int follow_phys(struct vm_area_struct *vma, unsigned long address,
100760 unsigned int flags, unsigned long *prot, resource_size_t *phys);
100761 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100762 - void *buf, int len, int write);
100763 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100764 + void *buf, size_t len, int write);
100765
100766 static inline void unmap_shared_mapping_range(struct address_space *mapping,
100767 loff_t const holebegin, loff_t const holelen)
100768 @@ -1211,9 +1217,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
100769 }
100770 #endif
100771
100772 -extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
100773 -extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
100774 - void *buf, int len, int write);
100775 +extern ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write);
100776 +extern ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
100777 + void *buf, size_t len, int write);
100778
100779 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
100780 unsigned long start, unsigned long nr_pages,
100781 @@ -1304,39 +1310,11 @@ int clear_page_dirty_for_io(struct page *page);
100782
100783 int get_cmdline(struct task_struct *task, char *buffer, int buflen);
100784
100785 -/* Is the vma a continuation of the stack vma above it? */
100786 -static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
100787 -{
100788 - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
100789 -}
100790 -
100791 static inline bool vma_is_anonymous(struct vm_area_struct *vma)
100792 {
100793 return !vma->vm_ops;
100794 }
100795
100796 -static inline int stack_guard_page_start(struct vm_area_struct *vma,
100797 - unsigned long addr)
100798 -{
100799 - return (vma->vm_flags & VM_GROWSDOWN) &&
100800 - (vma->vm_start == addr) &&
100801 - !vma_growsdown(vma->vm_prev, addr);
100802 -}
100803 -
100804 -/* Is the vma a continuation of the stack vma below it? */
100805 -static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
100806 -{
100807 - return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
100808 -}
100809 -
100810 -static inline int stack_guard_page_end(struct vm_area_struct *vma,
100811 - unsigned long addr)
100812 -{
100813 - return (vma->vm_flags & VM_GROWSUP) &&
100814 - (vma->vm_end == addr) &&
100815 - !vma_growsup(vma->vm_next, addr);
100816 -}
100817 -
100818 extern struct task_struct *task_of_stack(struct task_struct *task,
100819 struct vm_area_struct *vma, bool in_group);
100820
100821 @@ -1459,8 +1437,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
100822 {
100823 return 0;
100824 }
100825 +
100826 +static inline int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd,
100827 + unsigned long address)
100828 +{
100829 + return 0;
100830 +}
100831 #else
100832 int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100833 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100834 #endif
100835
100836 #if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
100837 @@ -1470,6 +1455,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
100838 return 0;
100839 }
100840
100841 +static inline int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud,
100842 + unsigned long address)
100843 +{
100844 + return 0;
100845 +}
100846 +
100847 static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
100848
100849 static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
100850 @@ -1482,6 +1473,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
100851
100852 #else
100853 int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
100854 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address);
100855
100856 static inline void mm_nr_pmds_init(struct mm_struct *mm)
100857 {
100858 @@ -1519,11 +1511,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
100859 NULL: pud_offset(pgd, address);
100860 }
100861
100862 +static inline pud_t *pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
100863 +{
100864 + return (unlikely(pgd_none(*pgd)) && __pud_alloc_kernel(mm, pgd, address))?
100865 + NULL: pud_offset(pgd, address);
100866 +}
100867 +
100868 static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
100869 {
100870 return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
100871 NULL: pmd_offset(pud, address);
100872 }
100873 +
100874 +static inline pmd_t *pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
100875 +{
100876 + return (unlikely(pud_none(*pud)) && __pmd_alloc_kernel(mm, pud, address))?
100877 + NULL: pmd_offset(pud, address);
100878 +}
100879 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
100880
100881 #if USE_SPLIT_PTE_PTLOCKS
100882 @@ -1904,12 +1908,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
100883 bool *need_rmap_locks);
100884 extern void exit_mmap(struct mm_struct *);
100885
100886 +#if defined(CONFIG_GRKERNSEC) && (defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC))
100887 +extern void gr_learn_resource(const struct task_struct *task, const int res,
100888 + const unsigned long wanted, const int gt);
100889 +#else
100890 +static inline void gr_learn_resource(const struct task_struct *task, const int res,
100891 + const unsigned long wanted, const int gt)
100892 +{
100893 +}
100894 +#endif
100895 +
100896 static inline int check_data_rlimit(unsigned long rlim,
100897 unsigned long new,
100898 unsigned long start,
100899 unsigned long end_data,
100900 unsigned long start_data)
100901 {
100902 + gr_learn_resource(current, RLIMIT_DATA, (new - start) + (end_data - start_data), 1);
100903 if (rlim < RLIM_INFINITY) {
100904 if (((new - start) + (end_data - start_data)) > rlim)
100905 return -ENOSPC;
100906 @@ -1942,6 +1957,7 @@ extern unsigned long do_mmap(struct file *file, unsigned long addr,
100907 unsigned long len, unsigned long prot, unsigned long flags,
100908 vm_flags_t vm_flags, unsigned long pgoff, unsigned long *populate);
100909 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
100910 +extern int __do_munmap(struct mm_struct *, unsigned long, size_t);
100911
100912 static inline unsigned long
100913 do_mmap_pgoff(struct file *file, unsigned long addr,
100914 @@ -1978,10 +1994,11 @@ struct vm_unmapped_area_info {
100915 unsigned long high_limit;
100916 unsigned long align_mask;
100917 unsigned long align_offset;
100918 + unsigned long threadstack_offset;
100919 };
100920
100921 -extern unsigned long unmapped_area(struct vm_unmapped_area_info *info);
100922 -extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
100923 +extern unsigned long unmapped_area(const struct vm_unmapped_area_info *info);
100924 +extern unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info);
100925
100926 /*
100927 * Search for an unmapped address range.
100928 @@ -1993,7 +2010,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
100929 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
100930 */
100931 static inline unsigned long
100932 -vm_unmapped_area(struct vm_unmapped_area_info *info)
100933 +vm_unmapped_area(const struct vm_unmapped_area_info *info)
100934 {
100935 if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
100936 return unmapped_area_topdown(info);
100937 @@ -2055,6 +2072,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
100938 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
100939 struct vm_area_struct **pprev);
100940
100941 +extern struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma);
100942 +extern __must_check long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma);
100943 +extern void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl);
100944 +
100945 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
100946 NULL if none. Assume start_addr < end_addr. */
100947 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
100948 @@ -2084,10 +2105,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
100949 }
100950
100951 #ifdef CONFIG_MMU
100952 -pgprot_t vm_get_page_prot(unsigned long vm_flags);
100953 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags);
100954 void vma_set_page_prot(struct vm_area_struct *vma);
100955 #else
100956 -static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
100957 +static inline pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
100958 {
100959 return __pgprot(0);
100960 }
100961 @@ -2149,6 +2170,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
100962 static inline void vm_stat_account(struct mm_struct *mm,
100963 unsigned long flags, struct file *file, long pages)
100964 {
100965 +
100966 +#ifdef CONFIG_PAX_RANDMMAP
100967 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
100968 +#endif
100969 +
100970 mm->total_vm += pages;
100971 }
100972 #endif /* CONFIG_PROC_FS */
100973 @@ -2253,7 +2279,7 @@ extern void put_hwpoison_page(struct page *page);
100974 extern int sysctl_memory_failure_early_kill;
100975 extern int sysctl_memory_failure_recovery;
100976 extern void shake_page(struct page *p, int access);
100977 -extern atomic_long_t num_poisoned_pages;
100978 +extern atomic_long_unchecked_t num_poisoned_pages;
100979 extern int soft_offline_page(struct page *page, int flags);
100980
100981
100982 @@ -2338,5 +2364,11 @@ void __init setup_nr_node_ids(void);
100983 static inline void setup_nr_node_ids(void) {}
100984 #endif
100985
100986 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
100987 +extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
100988 +#else
100989 +static inline void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot) {}
100990 +#endif
100991 +
100992 #endif /* __KERNEL__ */
100993 #endif /* _LINUX_MM_H */
100994 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
100995 index 3d6baa7..6d1facb 100644
100996 --- a/include/linux/mm_types.h
100997 +++ b/include/linux/mm_types.h
100998 @@ -333,7 +333,9 @@ struct vm_area_struct {
100999 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
101000 #endif
101001 struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
101002 -};
101003 +
101004 + struct vm_area_struct *vm_mirror;/* PaX: mirror vma or NULL */
101005 +} __randomize_layout;
101006
101007 struct core_thread {
101008 struct task_struct *task;
101009 @@ -486,7 +488,25 @@ struct mm_struct {
101010 /* address of the bounds directory */
101011 void __user *bd_addr;
101012 #endif
101013 -};
101014 +
101015 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
101016 + unsigned long pax_flags;
101017 +#endif
101018 +
101019 +#ifdef CONFIG_PAX_DLRESOLVE
101020 + unsigned long call_dl_resolve;
101021 +#endif
101022 +
101023 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
101024 + unsigned long call_syscall;
101025 +#endif
101026 +
101027 +#ifdef CONFIG_PAX_ASLR
101028 + unsigned long delta_mmap; /* randomized offset */
101029 + unsigned long delta_stack; /* randomized offset */
101030 +#endif
101031 +
101032 +} __randomize_layout;
101033
101034 static inline void mm_init_cpumask(struct mm_struct *mm)
101035 {
101036 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
101037 index 3ba327a..85cd5ce 100644
101038 --- a/include/linux/mmiotrace.h
101039 +++ b/include/linux/mmiotrace.h
101040 @@ -46,7 +46,7 @@ extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
101041 /* Called from ioremap.c */
101042 extern void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
101043 void __iomem *addr);
101044 -extern void mmiotrace_iounmap(volatile void __iomem *addr);
101045 +extern void mmiotrace_iounmap(const volatile void __iomem *addr);
101046
101047 /* For anyone to insert markers. Remember trailing newline. */
101048 extern __printf(1, 2) int mmiotrace_printk(const char *fmt, ...);
101049 @@ -66,7 +66,7 @@ static inline void mmiotrace_ioremap(resource_size_t offset,
101050 {
101051 }
101052
101053 -static inline void mmiotrace_iounmap(volatile void __iomem *addr)
101054 +static inline void mmiotrace_iounmap(const volatile void __iomem *addr)
101055 {
101056 }
101057
101058 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
101059 index d943477..879f03b 100644
101060 --- a/include/linux/mmzone.h
101061 +++ b/include/linux/mmzone.h
101062 @@ -530,7 +530,7 @@ struct zone {
101063
101064 ZONE_PADDING(_pad3_)
101065 /* Zone statistics */
101066 - atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
101067 + atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
101068 } ____cacheline_internodealigned_in_smp;
101069
101070 enum zone_flags {
101071 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
101072 index 688997a..a6f4711 100644
101073 --- a/include/linux/mod_devicetable.h
101074 +++ b/include/linux/mod_devicetable.h
101075 @@ -139,7 +139,7 @@ struct usb_device_id {
101076 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
101077 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
101078
101079 -#define HID_ANY_ID (~0)
101080 +#define HID_ANY_ID (~0U)
101081 #define HID_BUS_ANY 0xffff
101082 #define HID_GROUP_ANY 0x0000
101083
101084 @@ -472,7 +472,7 @@ struct dmi_system_id {
101085 const char *ident;
101086 struct dmi_strmatch matches[4];
101087 void *driver_data;
101088 -};
101089 +} __do_const;
101090 /*
101091 * struct dmi_device_id appears during expansion of
101092 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
101093 diff --git a/include/linux/module.h b/include/linux/module.h
101094 index 3a19c79..dea8c47 100644
101095 --- a/include/linux/module.h
101096 +++ b/include/linux/module.h
101097 @@ -19,9 +19,11 @@
101098 #include <linux/jump_label.h>
101099 #include <linux/export.h>
101100 #include <linux/rbtree_latch.h>
101101 +#include <linux/fs.h>
101102
101103 #include <linux/percpu.h>
101104 #include <asm/module.h>
101105 +#include <asm/pgtable.h>
101106
101107 /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
101108 #define MODULE_SIG_STRING "~Module signature appended~\n"
101109 @@ -44,7 +46,7 @@ struct module_kobject {
101110 struct kobject *drivers_dir;
101111 struct module_param_attrs *mp;
101112 struct completion *kobj_completion;
101113 -};
101114 +} __randomize_layout;
101115
101116 struct module_attribute {
101117 struct attribute attr;
101118 @@ -56,12 +58,13 @@ struct module_attribute {
101119 int (*test)(struct module *);
101120 void (*free)(struct module *);
101121 };
101122 +typedef struct module_attribute __no_const module_attribute_no_const;
101123
101124 struct module_version_attribute {
101125 struct module_attribute mattr;
101126 const char *module_name;
101127 const char *version;
101128 -} __attribute__ ((__aligned__(sizeof(void *))));
101129 +} __do_const __attribute__ ((__aligned__(sizeof(void *))));
101130
101131 extern ssize_t __modver_version_show(struct module_attribute *,
101132 struct module_kobject *, char *);
101133 @@ -313,7 +316,7 @@ struct module {
101134
101135 /* Sysfs stuff. */
101136 struct module_kobject mkobj;
101137 - struct module_attribute *modinfo_attrs;
101138 + module_attribute_no_const *modinfo_attrs;
101139 const char *version;
101140 const char *srcversion;
101141 struct kobject *holders_dir;
101142 @@ -370,20 +373,21 @@ struct module {
101143 * If this is non-NULL, vfree() after init() returns.
101144 *
101145 * Cacheline align here, such that:
101146 - * module_init, module_core, init_size, core_size,
101147 + * module_init_*, module_core_*, init_size_*, core_size_*,
101148 * init_text_size, core_text_size and mtn_core::{mod,node[0]}
101149 * are on the same cacheline.
101150 */
101151 - void *module_init ____cacheline_aligned;
101152 + void *module_init_rw ____cacheline_aligned;
101153 + void *module_init_rx;
101154
101155 /* Here is the actual code + data, vfree'd on unload. */
101156 - void *module_core;
101157 + void *module_core_rx, *module_core_rw;
101158
101159 /* Here are the sizes of the init and core sections */
101160 - unsigned int init_size, core_size;
101161 + unsigned int init_size_rw, core_size_rw;
101162
101163 /* The size of the executable code in each section. */
101164 - unsigned int init_text_size, core_text_size;
101165 + unsigned int init_size_rx, core_size_rx;
101166
101167 #ifdef CONFIG_MODULES_TREE_LOOKUP
101168 /*
101169 @@ -391,13 +395,12 @@ struct module {
101170 * above entries such that a regular lookup will only touch one
101171 * cacheline.
101172 */
101173 - struct mod_tree_node mtn_core;
101174 - struct mod_tree_node mtn_init;
101175 + struct mod_tree_node mtn_core_rw;
101176 + struct mod_tree_node mtn_core_rx;
101177 + struct mod_tree_node mtn_init_rw;
101178 + struct mod_tree_node mtn_init_rx;
101179 #endif
101180
101181 - /* Size of RO sections of the module (text+rodata) */
101182 - unsigned int init_ro_size, core_ro_size;
101183 -
101184 /* Arch-specific module values */
101185 struct mod_arch_specific arch;
101186
101187 @@ -454,6 +457,10 @@ struct module {
101188 unsigned int num_trace_events;
101189 struct trace_enum_map **trace_enums;
101190 unsigned int num_trace_enums;
101191 + struct file_operations trace_id;
101192 + struct file_operations trace_enable;
101193 + struct file_operations trace_format;
101194 + struct file_operations trace_filter;
101195 #endif
101196 #ifdef CONFIG_FTRACE_MCOUNT_RECORD
101197 unsigned int num_ftrace_callsites;
101198 @@ -481,7 +488,8 @@ struct module {
101199 ctor_fn_t *ctors;
101200 unsigned int num_ctors;
101201 #endif
101202 -} ____cacheline_aligned;
101203 +} ____cacheline_aligned __randomize_layout;
101204 +
101205 #ifndef MODULE_ARCH_INIT
101206 #define MODULE_ARCH_INIT {}
101207 #endif
101208 @@ -502,18 +510,48 @@ bool is_module_address(unsigned long addr);
101209 bool is_module_percpu_address(unsigned long addr);
101210 bool is_module_text_address(unsigned long addr);
101211
101212 +static inline int within_module_range(unsigned long addr, void *start, unsigned long size)
101213 +{
101214 +
101215 +#ifdef CONFIG_PAX_KERNEXEC
101216 + if (ktla_ktva(addr) >= (unsigned long)start &&
101217 + ktla_ktva(addr) < (unsigned long)start + size)
101218 + return 1;
101219 +#endif
101220 +
101221 + return ((void *)addr >= start && (void *)addr < start + size);
101222 +}
101223 +
101224 +static inline int within_module_core_rx(unsigned long addr, const struct module *mod)
101225 +{
101226 + return within_module_range(addr, mod->module_core_rx, mod->core_size_rx);
101227 +}
101228 +
101229 +static inline int within_module_core_rw(unsigned long addr, const struct module *mod)
101230 +{
101231 + return within_module_range(addr, mod->module_core_rw, mod->core_size_rw);
101232 +}
101233 +
101234 +static inline int within_module_init_rx(unsigned long addr, const struct module *mod)
101235 +{
101236 + return within_module_range(addr, mod->module_init_rx, mod->init_size_rx);
101237 +}
101238 +
101239 +static inline int within_module_init_rw(unsigned long addr, const struct module *mod)
101240 +{
101241 + return within_module_range(addr, mod->module_init_rw, mod->init_size_rw);
101242 +}
101243 +
101244 static inline bool within_module_core(unsigned long addr,
101245 const struct module *mod)
101246 {
101247 - return (unsigned long)mod->module_core <= addr &&
101248 - addr < (unsigned long)mod->module_core + mod->core_size;
101249 + return within_module_core_rx(addr, mod) || within_module_core_rw(addr, mod);
101250 }
101251
101252 static inline bool within_module_init(unsigned long addr,
101253 const struct module *mod)
101254 {
101255 - return (unsigned long)mod->module_init <= addr &&
101256 - addr < (unsigned long)mod->module_init + mod->init_size;
101257 + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod);
101258 }
101259
101260 static inline bool within_module(unsigned long addr, const struct module *mod)
101261 diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
101262 index 4d0cb9b..3169ac7 100644
101263 --- a/include/linux/moduleloader.h
101264 +++ b/include/linux/moduleloader.h
101265 @@ -25,9 +25,21 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
101266 sections. Returns NULL on failure. */
101267 void *module_alloc(unsigned long size);
101268
101269 +#ifdef CONFIG_PAX_KERNEXEC
101270 +void *module_alloc_exec(unsigned long size);
101271 +#else
101272 +#define module_alloc_exec(x) module_alloc(x)
101273 +#endif
101274 +
101275 /* Free memory returned from module_alloc. */
101276 void module_memfree(void *module_region);
101277
101278 +#ifdef CONFIG_PAX_KERNEXEC
101279 +void module_memfree_exec(void *module_region);
101280 +#else
101281 +#define module_memfree_exec(x) module_memfree((x))
101282 +#endif
101283 +
101284 /*
101285 * Apply the given relocation to the (simplified) ELF. Return -error
101286 * or 0.
101287 @@ -45,8 +57,10 @@ static inline int apply_relocate(Elf_Shdr *sechdrs,
101288 unsigned int relsec,
101289 struct module *me)
101290 {
101291 +#ifdef CONFIG_MODULES
101292 printk(KERN_ERR "module %s: REL relocation unsupported\n",
101293 module_name(me));
101294 +#endif
101295 return -ENOEXEC;
101296 }
101297 #endif
101298 @@ -68,8 +82,10 @@ static inline int apply_relocate_add(Elf_Shdr *sechdrs,
101299 unsigned int relsec,
101300 struct module *me)
101301 {
101302 +#ifdef CONFIG_MODULES
101303 printk(KERN_ERR "module %s: REL relocation unsupported\n",
101304 module_name(me));
101305 +#endif
101306 return -ENOEXEC;
101307 }
101308 #endif
101309 diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
101310 index c12f214..3ef907f 100644
101311 --- a/include/linux/moduleparam.h
101312 +++ b/include/linux/moduleparam.h
101313 @@ -289,7 +289,7 @@ static inline void kernel_param_unlock(struct module *mod)
101314 * @len is usually just sizeof(string).
101315 */
101316 #define module_param_string(name, string, len, perm) \
101317 - static const struct kparam_string __param_string_##name \
101318 + static const struct kparam_string __param_string_##name __used \
101319 = { len, string }; \
101320 __module_param_call(MODULE_PARAM_PREFIX, name, \
101321 &param_ops_string, \
101322 @@ -440,7 +440,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
101323 */
101324 #define module_param_array_named(name, array, type, nump, perm) \
101325 param_check_##type(name, &(array)[0]); \
101326 - static const struct kparam_array __param_arr_##name \
101327 + static const struct kparam_array __param_arr_##name __used \
101328 = { .max = ARRAY_SIZE(array), .num = nump, \
101329 .ops = &param_ops_##type, \
101330 .elemsize = sizeof(array[0]), .elem = array }; \
101331 diff --git a/include/linux/mount.h b/include/linux/mount.h
101332 index f822c3c..958ca0a 100644
101333 --- a/include/linux/mount.h
101334 +++ b/include/linux/mount.h
101335 @@ -67,7 +67,7 @@ struct vfsmount {
101336 struct dentry *mnt_root; /* root of the mounted tree */
101337 struct super_block *mnt_sb; /* pointer to superblock */
101338 int mnt_flags;
101339 -};
101340 +} __randomize_layout;
101341
101342 struct file; /* forward dec */
101343 struct path;
101344 diff --git a/include/linux/msg.h b/include/linux/msg.h
101345 index f3f302f..a001305 100644
101346 --- a/include/linux/msg.h
101347 +++ b/include/linux/msg.h
101348 @@ -29,7 +29,7 @@ struct msg_queue {
101349 struct list_head q_messages;
101350 struct list_head q_receivers;
101351 struct list_head q_senders;
101352 -};
101353 +} __randomize_layout;
101354
101355 /* Helper routines for sys_msgsnd and sys_msgrcv */
101356 extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
101357 diff --git a/include/linux/net.h b/include/linux/net.h
101358 index 049d4b0..764243c 100644
101359 --- a/include/linux/net.h
101360 +++ b/include/linux/net.h
101361 @@ -189,7 +189,7 @@ struct net_proto_family {
101362 int (*create)(struct net *net, struct socket *sock,
101363 int protocol, int kern);
101364 struct module *owner;
101365 -};
101366 +} __do_const;
101367
101368 struct iovec;
101369 struct kvec;
101370 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
101371 index 210d11a..c5cd00e 100644
101372 --- a/include/linux/netdevice.h
101373 +++ b/include/linux/netdevice.h
101374 @@ -1234,6 +1234,7 @@ struct net_device_ops {
101375 int (*ndo_fill_metadata_dst)(struct net_device *dev,
101376 struct sk_buff *skb);
101377 };
101378 +typedef struct net_device_ops __no_const net_device_ops_no_const;
101379
101380 /**
101381 * enum net_device_priv_flags - &struct net_device priv_flags
101382 @@ -1542,7 +1543,7 @@ struct net_device {
101383 unsigned long base_addr;
101384 int irq;
101385
101386 - atomic_t carrier_changes;
101387 + atomic_unchecked_t carrier_changes;
101388
101389 /*
101390 * Some hardware also needs these fields (state,dev_list,
101391 @@ -1581,8 +1582,8 @@ struct net_device {
101392
101393 struct net_device_stats stats;
101394
101395 - atomic_long_t rx_dropped;
101396 - atomic_long_t tx_dropped;
101397 + atomic_long_unchecked_t rx_dropped;
101398 + atomic_long_unchecked_t tx_dropped;
101399
101400 #ifdef CONFIG_WIRELESS_EXT
101401 const struct iw_handler_def * wireless_handlers;
101402 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
101403 index 36a6525..289cd95 100644
101404 --- a/include/linux/netfilter.h
101405 +++ b/include/linux/netfilter.h
101406 @@ -117,7 +117,7 @@ struct nf_sockopt_ops {
101407 #endif
101408 /* Use the module struct to lock set/get code in place */
101409 struct module *owner;
101410 -};
101411 +} __do_const;
101412
101413 /* Function to register/unregister hook points. */
101414 int nf_register_net_hook(struct net *net, const struct nf_hook_ops *ops);
101415 diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
101416 index e955d47..04a5338 100644
101417 --- a/include/linux/netfilter/nfnetlink.h
101418 +++ b/include/linux/netfilter/nfnetlink.h
101419 @@ -19,7 +19,7 @@ struct nfnl_callback {
101420 const struct nlattr * const cda[]);
101421 const struct nla_policy *policy; /* netlink attribute policy */
101422 const u_int16_t attr_count; /* number of nlattr's */
101423 -};
101424 +} __do_const;
101425
101426 struct nfnetlink_subsystem {
101427 const char *name;
101428 diff --git a/include/linux/netfilter/xt_gradm.h b/include/linux/netfilter/xt_gradm.h
101429 new file mode 100644
101430 index 0000000..33f4af8
101431 --- /dev/null
101432 +++ b/include/linux/netfilter/xt_gradm.h
101433 @@ -0,0 +1,9 @@
101434 +#ifndef _LINUX_NETFILTER_XT_GRADM_H
101435 +#define _LINUX_NETFILTER_XT_GRADM_H 1
101436 +
101437 +struct xt_gradm_mtinfo {
101438 + __u16 flags;
101439 + __u16 invflags;
101440 +};
101441 +
101442 +#endif
101443 diff --git a/include/linux/nls.h b/include/linux/nls.h
101444 index 520681b..2b7fabb 100644
101445 --- a/include/linux/nls.h
101446 +++ b/include/linux/nls.h
101447 @@ -31,7 +31,7 @@ struct nls_table {
101448 const unsigned char *charset2upper;
101449 struct module *owner;
101450 struct nls_table *next;
101451 -};
101452 +} __do_const;
101453
101454 /* this value hold the maximum octet of charset */
101455 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
101456 @@ -46,7 +46,7 @@ enum utf16_endian {
101457 /* nls_base.c */
101458 extern int __register_nls(struct nls_table *, struct module *);
101459 extern int unregister_nls(struct nls_table *);
101460 -extern struct nls_table *load_nls(char *);
101461 +extern struct nls_table *load_nls(const char *);
101462 extern void unload_nls(struct nls_table *);
101463 extern struct nls_table *load_nls_default(void);
101464 #define register_nls(nls) __register_nls((nls), THIS_MODULE)
101465 diff --git a/include/linux/notifier.h b/include/linux/notifier.h
101466 index d14a4c3..a078786 100644
101467 --- a/include/linux/notifier.h
101468 +++ b/include/linux/notifier.h
101469 @@ -54,7 +54,8 @@ struct notifier_block {
101470 notifier_fn_t notifier_call;
101471 struct notifier_block __rcu *next;
101472 int priority;
101473 -};
101474 +} __do_const;
101475 +typedef struct notifier_block __no_const notifier_block_no_const;
101476
101477 struct atomic_notifier_head {
101478 spinlock_t lock;
101479 diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
101480 index b2a0f15..4d7da32 100644
101481 --- a/include/linux/oprofile.h
101482 +++ b/include/linux/oprofile.h
101483 @@ -138,9 +138,9 @@ int oprofilefs_create_ulong(struct dentry * root,
101484 int oprofilefs_create_ro_ulong(struct dentry * root,
101485 char const * name, ulong * val);
101486
101487 -/** Create a file for read-only access to an atomic_t. */
101488 +/** Create a file for read-only access to an atomic_unchecked_t. */
101489 int oprofilefs_create_ro_atomic(struct dentry * root,
101490 - char const * name, atomic_t * val);
101491 + char const * name, atomic_unchecked_t * val);
101492
101493 /** create a directory */
101494 struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
101495 diff --git a/include/linux/padata.h b/include/linux/padata.h
101496 index 4386946..f50c615 100644
101497 --- a/include/linux/padata.h
101498 +++ b/include/linux/padata.h
101499 @@ -129,7 +129,7 @@ struct parallel_data {
101500 struct padata_serial_queue __percpu *squeue;
101501 atomic_t reorder_objects;
101502 atomic_t refcnt;
101503 - atomic_t seq_nr;
101504 + atomic_unchecked_t seq_nr;
101505 struct padata_cpumask cpumask;
101506 spinlock_t lock ____cacheline_aligned;
101507 unsigned int processed;
101508 diff --git a/include/linux/path.h b/include/linux/path.h
101509 index d137218..be0c176 100644
101510 --- a/include/linux/path.h
101511 +++ b/include/linux/path.h
101512 @@ -1,13 +1,15 @@
101513 #ifndef _LINUX_PATH_H
101514 #define _LINUX_PATH_H
101515
101516 +#include <linux/compiler.h>
101517 +
101518 struct dentry;
101519 struct vfsmount;
101520
101521 struct path {
101522 struct vfsmount *mnt;
101523 struct dentry *dentry;
101524 -};
101525 +} __randomize_layout;
101526
101527 extern void path_get(const struct path *);
101528 extern void path_put(const struct path *);
101529 diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
101530 index 8c78950..0d74ed9 100644
101531 --- a/include/linux/pci_hotplug.h
101532 +++ b/include/linux/pci_hotplug.h
101533 @@ -71,7 +71,8 @@ struct hotplug_slot_ops {
101534 int (*get_latch_status) (struct hotplug_slot *slot, u8 *value);
101535 int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value);
101536 int (*reset_slot) (struct hotplug_slot *slot, int probe);
101537 -};
101538 +} __do_const;
101539 +typedef struct hotplug_slot_ops __no_const hotplug_slot_ops_no_const;
101540
101541 /**
101542 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
101543 diff --git a/include/linux/percpu.h b/include/linux/percpu.h
101544 index caebf2a..4c3ae9d 100644
101545 --- a/include/linux/percpu.h
101546 +++ b/include/linux/percpu.h
101547 @@ -34,7 +34,7 @@
101548 * preallocate for this. Keep PERCPU_DYNAMIC_RESERVE equal to or
101549 * larger than PERCPU_DYNAMIC_EARLY_SIZE.
101550 */
101551 -#define PERCPU_DYNAMIC_EARLY_SLOTS 128
101552 +#define PERCPU_DYNAMIC_EARLY_SLOTS 256
101553 #define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10)
101554
101555 /*
101556 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
101557 index 092a0e8..36988f4 100644
101558 --- a/include/linux/perf_event.h
101559 +++ b/include/linux/perf_event.h
101560 @@ -384,8 +384,8 @@ struct perf_event {
101561
101562 enum perf_event_active_state state;
101563 unsigned int attach_state;
101564 - local64_t count;
101565 - atomic64_t child_count;
101566 + local64_t count; /* PaX: fix it one day */
101567 + atomic64_unchecked_t child_count;
101568
101569 /*
101570 * These are the total time in nanoseconds that the event
101571 @@ -436,8 +436,8 @@ struct perf_event {
101572 * These accumulate total time (in nanoseconds) that children
101573 * events have been enabled and running, respectively.
101574 */
101575 - atomic64_t child_total_time_enabled;
101576 - atomic64_t child_total_time_running;
101577 + atomic64_unchecked_t child_total_time_enabled;
101578 + atomic64_unchecked_t child_total_time_running;
101579
101580 /*
101581 * Protect attach/detach and child_list:
101582 @@ -862,7 +862,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev,
101583
101584 static inline u64 __perf_event_count(struct perf_event *event)
101585 {
101586 - return local64_read(&event->count) + atomic64_read(&event->child_count);
101587 + return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
101588 }
101589
101590 extern void perf_event_mmap(struct vm_area_struct *vma);
101591 @@ -886,7 +886,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
101592 entry->ip[entry->nr++] = ip;
101593 }
101594
101595 -extern int sysctl_perf_event_paranoid;
101596 +extern int sysctl_perf_event_legitimately_concerned;
101597 extern int sysctl_perf_event_mlock;
101598 extern int sysctl_perf_event_sample_rate;
101599 extern int sysctl_perf_cpu_time_max_percent;
101600 @@ -901,19 +901,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
101601 loff_t *ppos);
101602
101603
101604 +static inline bool perf_paranoid_any(void)
101605 +{
101606 + return sysctl_perf_event_legitimately_concerned > 2;
101607 +}
101608 +
101609 static inline bool perf_paranoid_tracepoint_raw(void)
101610 {
101611 - return sysctl_perf_event_paranoid > -1;
101612 + return sysctl_perf_event_legitimately_concerned > -1;
101613 }
101614
101615 static inline bool perf_paranoid_cpu(void)
101616 {
101617 - return sysctl_perf_event_paranoid > 0;
101618 + return sysctl_perf_event_legitimately_concerned > 0;
101619 }
101620
101621 static inline bool perf_paranoid_kernel(void)
101622 {
101623 - return sysctl_perf_event_paranoid > 1;
101624 + return sysctl_perf_event_legitimately_concerned > 1;
101625 }
101626
101627 extern void perf_event_init(void);
101628 @@ -1076,7 +1081,7 @@ struct perf_pmu_events_attr {
101629 struct device_attribute attr;
101630 u64 id;
101631 const char *event_str;
101632 -};
101633 +} __do_const;
101634
101635 ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
101636 char *page);
101637 diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
101638 index 918b117..7af374b7 100644
101639 --- a/include/linux/pid_namespace.h
101640 +++ b/include/linux/pid_namespace.h
101641 @@ -45,7 +45,7 @@ struct pid_namespace {
101642 int hide_pid;
101643 int reboot; /* group exit code if this pidns was rebooted */
101644 struct ns_common ns;
101645 -};
101646 +} __randomize_layout;
101647
101648 extern struct pid_namespace init_pid_ns;
101649
101650 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
101651 index eb8b8ac..62649e1 100644
101652 --- a/include/linux/pipe_fs_i.h
101653 +++ b/include/linux/pipe_fs_i.h
101654 @@ -47,10 +47,10 @@ struct pipe_inode_info {
101655 struct mutex mutex;
101656 wait_queue_head_t wait;
101657 unsigned int nrbufs, curbuf, buffers;
101658 - unsigned int readers;
101659 - unsigned int writers;
101660 - unsigned int files;
101661 - unsigned int waiting_writers;
101662 + atomic_t readers;
101663 + atomic_t writers;
101664 + atomic_t files;
101665 + atomic_t waiting_writers;
101666 unsigned int r_counter;
101667 unsigned int w_counter;
101668 struct page *tmp_page;
101669 diff --git a/include/linux/pm.h b/include/linux/pm.h
101670 index 35d599e..c604209 100644
101671 --- a/include/linux/pm.h
101672 +++ b/include/linux/pm.h
101673 @@ -630,6 +630,7 @@ struct dev_pm_domain {
101674 void (*sync)(struct device *dev);
101675 void (*dismiss)(struct device *dev);
101676 };
101677 +typedef struct dev_pm_domain __no_const dev_pm_domain_no_const;
101678
101679 /*
101680 * The PM_EVENT_ messages are also used by drivers implementing the legacy
101681 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
101682 index b1cf7e7..ab02191 100644
101683 --- a/include/linux/pm_domain.h
101684 +++ b/include/linux/pm_domain.h
101685 @@ -36,11 +36,11 @@ struct gpd_dev_ops {
101686 int (*save_state)(struct device *dev);
101687 int (*restore_state)(struct device *dev);
101688 bool (*active_wakeup)(struct device *dev);
101689 -};
101690 +} __no_const;
101691
101692 struct gpd_cpuidle_data {
101693 unsigned int saved_exit_latency;
101694 - struct cpuidle_state *idle_state;
101695 + cpuidle_state_no_const *idle_state;
101696 };
101697
101698 struct generic_pm_domain {
101699 diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
101700 index 3bdbb41..2a6f56c 100644
101701 --- a/include/linux/pm_runtime.h
101702 +++ b/include/linux/pm_runtime.h
101703 @@ -110,7 +110,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
101704
101705 static inline void pm_runtime_mark_last_busy(struct device *dev)
101706 {
101707 - ACCESS_ONCE(dev->power.last_busy) = jiffies;
101708 + ACCESS_ONCE_RW(dev->power.last_busy) = jiffies;
101709 }
101710
101711 static inline bool pm_runtime_is_irq_safe(struct device *dev)
101712 diff --git a/include/linux/pnp.h b/include/linux/pnp.h
101713 index 5df733b..d55f252 100644
101714 --- a/include/linux/pnp.h
101715 +++ b/include/linux/pnp.h
101716 @@ -298,7 +298,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
101717 struct pnp_fixup {
101718 char id[7];
101719 void (*quirk_function) (struct pnp_dev * dev); /* fixup function */
101720 -};
101721 +} __do_const;
101722
101723 /* config parameters */
101724 #define PNP_CONFIG_NORMAL 0x0001
101725 diff --git a/include/linux/poison.h b/include/linux/poison.h
101726 index 317e16d..924c034 100644
101727 --- a/include/linux/poison.h
101728 +++ b/include/linux/poison.h
101729 @@ -19,8 +19,8 @@
101730 * under normal circumstances, used to verify that nobody uses
101731 * non-initialized list entries.
101732 */
101733 -#define LIST_POISON1 ((void *) 0x100 + POISON_POINTER_DELTA)
101734 -#define LIST_POISON2 ((void *) 0x200 + POISON_POINTER_DELTA)
101735 +#define LIST_POISON1 ((void *) (long)0xFFFFFF01)
101736 +#define LIST_POISON2 ((void *) (long)0xFFFFFF02)
101737
101738 /********** include/linux/timer.h **********/
101739 /*
101740 diff --git a/include/linux/power/smartreflex.h b/include/linux/power/smartreflex.h
101741 index d8b187c3..9a9257a 100644
101742 --- a/include/linux/power/smartreflex.h
101743 +++ b/include/linux/power/smartreflex.h
101744 @@ -238,7 +238,7 @@ struct omap_sr_class_data {
101745 int (*notify)(struct omap_sr *sr, u32 status);
101746 u8 notify_flags;
101747 u8 class_type;
101748 -};
101749 +} __do_const;
101750
101751 /**
101752 * struct omap_sr_nvalue_table - Smartreflex n-target value info
101753 diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h
101754 index 4ea1d37..80f4b33 100644
101755 --- a/include/linux/ppp-comp.h
101756 +++ b/include/linux/ppp-comp.h
101757 @@ -84,7 +84,7 @@ struct compressor {
101758 struct module *owner;
101759 /* Extra skb space needed by the compressor algorithm */
101760 unsigned int comp_extra;
101761 -};
101762 +} __do_const;
101763
101764 /*
101765 * The return value from decompress routine is the length of the
101766 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
101767 index bea8dd8..534a23d 100644
101768 --- a/include/linux/preempt.h
101769 +++ b/include/linux/preempt.h
101770 @@ -140,11 +140,16 @@ extern void preempt_count_sub(int val);
101771 #define preempt_count_dec_and_test() __preempt_count_dec_and_test()
101772 #endif
101773
101774 +#define raw_preempt_count_add(val) __preempt_count_add(val)
101775 +#define raw_preempt_count_sub(val) __preempt_count_sub(val)
101776 +
101777 #define __preempt_count_inc() __preempt_count_add(1)
101778 #define __preempt_count_dec() __preempt_count_sub(1)
101779
101780 #define preempt_count_inc() preempt_count_add(1)
101781 +#define raw_preempt_count_inc() raw_preempt_count_add(1)
101782 #define preempt_count_dec() preempt_count_sub(1)
101783 +#define raw_preempt_count_dec() raw_preempt_count_sub(1)
101784
101785 #define preempt_active_enter() \
101786 do { \
101787 @@ -166,6 +171,12 @@ do { \
101788 barrier(); \
101789 } while (0)
101790
101791 +#define raw_preempt_disable() \
101792 +do { \
101793 + raw_preempt_count_inc(); \
101794 + barrier(); \
101795 +} while (0)
101796 +
101797 #define sched_preempt_enable_no_resched() \
101798 do { \
101799 barrier(); \
101800 @@ -174,6 +185,12 @@ do { \
101801
101802 #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
101803
101804 +#define raw_preempt_enable_no_resched() \
101805 +do { \
101806 + barrier(); \
101807 + raw_preempt_count_dec(); \
101808 +} while (0)
101809 +
101810 #define preemptible() (preempt_count() == 0 && !irqs_disabled())
101811
101812 #ifdef CONFIG_PREEMPT
101813 @@ -234,8 +251,10 @@ do { \
101814 * region.
101815 */
101816 #define preempt_disable() barrier()
101817 +#define raw_preempt_disable() barrier()
101818 #define sched_preempt_enable_no_resched() barrier()
101819 #define preempt_enable_no_resched() barrier()
101820 +#define raw_preempt_enable_no_resched() barrier()
101821 #define preempt_enable() barrier()
101822 #define preempt_check_resched() do { } while (0)
101823
101824 @@ -250,11 +269,13 @@ do { \
101825 /*
101826 * Modules have no business playing preemption tricks.
101827 */
101828 +#ifndef CONFIG_PAX_KERNEXEC
101829 #undef sched_preempt_enable_no_resched
101830 #undef preempt_enable_no_resched
101831 #undef preempt_enable_no_resched_notrace
101832 #undef preempt_check_resched
101833 #endif
101834 +#endif
101835
101836 #define preempt_set_need_resched() \
101837 do { \
101838 diff --git a/include/linux/printk.h b/include/linux/printk.h
101839 index 9729565..e5e5255 100644
101840 --- a/include/linux/printk.h
101841 +++ b/include/linux/printk.h
101842 @@ -123,6 +123,7 @@ void early_printk(const char *s, ...) { }
101843 #endif
101844
101845 typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
101846 +extern int kptr_restrict;
101847
101848 #ifdef CONFIG_PRINTK
101849 asmlinkage __printf(5, 0)
101850 @@ -158,7 +159,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
101851
101852 extern int printk_delay_msec;
101853 extern int dmesg_restrict;
101854 -extern int kptr_restrict;
101855
101856 extern void wake_up_klogd(void);
101857
101858 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
101859 index b97bf2e..f14c92d4 100644
101860 --- a/include/linux/proc_fs.h
101861 +++ b/include/linux/proc_fs.h
101862 @@ -17,8 +17,11 @@ extern void proc_flush_task(struct task_struct *);
101863 extern struct proc_dir_entry *proc_symlink(const char *,
101864 struct proc_dir_entry *, const char *);
101865 extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
101866 +extern struct proc_dir_entry *proc_mkdir_restrict(const char *, struct proc_dir_entry *);
101867 extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t,
101868 struct proc_dir_entry *, void *);
101869 +extern struct proc_dir_entry *proc_mkdir_data_restrict(const char *, umode_t,
101870 + struct proc_dir_entry *, void *);
101871 extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t,
101872 struct proc_dir_entry *);
101873
101874 @@ -34,6 +37,19 @@ static inline struct proc_dir_entry *proc_create(
101875 return proc_create_data(name, mode, parent, proc_fops, NULL);
101876 }
101877
101878 +static inline struct proc_dir_entry *proc_create_grsec(const char *name, umode_t mode,
101879 + struct proc_dir_entry *parent, const struct file_operations *proc_fops)
101880 +{
101881 +#ifdef CONFIG_GRKERNSEC_PROC_USER
101882 + return proc_create_data(name, S_IRUSR, parent, proc_fops, NULL);
101883 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
101884 + return proc_create_data(name, S_IRUSR | S_IRGRP, parent, proc_fops, NULL);
101885 +#else
101886 + return proc_create_data(name, mode, parent, proc_fops, NULL);
101887 +#endif
101888 +}
101889 +
101890 +
101891 extern void proc_set_size(struct proc_dir_entry *, loff_t);
101892 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
101893 extern void *PDE_DATA(const struct inode *);
101894 @@ -56,8 +72,12 @@ static inline struct proc_dir_entry *proc_symlink(const char *name,
101895 struct proc_dir_entry *parent,const char *dest) { return NULL;}
101896 static inline struct proc_dir_entry *proc_mkdir(const char *name,
101897 struct proc_dir_entry *parent) {return NULL;}
101898 +static inline struct proc_dir_entry *proc_mkdir_restrict(const char *name,
101899 + struct proc_dir_entry *parent) { return NULL; }
101900 static inline struct proc_dir_entry *proc_mkdir_data(const char *name,
101901 umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
101902 +static inline struct proc_dir_entry *proc_mkdir_data_restrict(const char *name,
101903 + umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
101904 static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
101905 umode_t mode, struct proc_dir_entry *parent) { return NULL; }
101906 #define proc_create(name, mode, parent, proc_fops) ({NULL;})
101907 @@ -79,7 +99,7 @@ struct net;
101908 static inline struct proc_dir_entry *proc_net_mkdir(
101909 struct net *net, const char *name, struct proc_dir_entry *parent)
101910 {
101911 - return proc_mkdir_data(name, 0, parent, net);
101912 + return proc_mkdir_data_restrict(name, 0, parent, net);
101913 }
101914
101915 #endif /* _LINUX_PROC_FS_H */
101916 diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
101917 index 42dfc61..8113a99 100644
101918 --- a/include/linux/proc_ns.h
101919 +++ b/include/linux/proc_ns.h
101920 @@ -16,7 +16,7 @@ struct proc_ns_operations {
101921 struct ns_common *(*get)(struct task_struct *task);
101922 void (*put)(struct ns_common *ns);
101923 int (*install)(struct nsproxy *nsproxy, struct ns_common *ns);
101924 -};
101925 +} __do_const __randomize_layout;
101926
101927 extern const struct proc_ns_operations netns_operations;
101928 extern const struct proc_ns_operations utsns_operations;
101929 diff --git a/include/linux/psci.h b/include/linux/psci.h
101930 index a682fcc..3b82c8e 100644
101931 --- a/include/linux/psci.h
101932 +++ b/include/linux/psci.h
101933 @@ -30,7 +30,7 @@ struct psci_operations {
101934 int (*affinity_info)(unsigned long target_affinity,
101935 unsigned long lowest_affinity_level);
101936 int (*migrate_info_type)(void);
101937 -};
101938 +} __no_const;
101939
101940 extern struct psci_operations psci_ops;
101941
101942 diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
101943 index 061265f..504c98a 100644
101944 --- a/include/linux/ptrace.h
101945 +++ b/include/linux/ptrace.h
101946 @@ -57,7 +57,29 @@ extern void exit_ptrace(struct task_struct *tracer, struct list_head *dead);
101947 #define PTRACE_MODE_READ 0x01
101948 #define PTRACE_MODE_ATTACH 0x02
101949 #define PTRACE_MODE_NOAUDIT 0x04
101950 -/* Returns true on success, false on denial. */
101951 +#define PTRACE_MODE_FSCREDS 0x08
101952 +#define PTRACE_MODE_REALCREDS 0x10
101953 +
101954 +/* shorthands for READ/ATTACH and FSCREDS/REALCREDS combinations */
101955 +#define PTRACE_MODE_READ_FSCREDS (PTRACE_MODE_READ | PTRACE_MODE_FSCREDS)
101956 +#define PTRACE_MODE_READ_REALCREDS (PTRACE_MODE_READ | PTRACE_MODE_REALCREDS)
101957 +#define PTRACE_MODE_ATTACH_FSCREDS (PTRACE_MODE_ATTACH | PTRACE_MODE_FSCREDS)
101958 +#define PTRACE_MODE_ATTACH_REALCREDS (PTRACE_MODE_ATTACH | PTRACE_MODE_REALCREDS)
101959 +
101960 +/**
101961 + * ptrace_may_access - check whether the caller is permitted to access
101962 + * a target task.
101963 + * @task: target task
101964 + * @mode: selects type of access and caller credentials
101965 + *
101966 + * Returns true on success, false on denial.
101967 + *
101968 + * One of the flags PTRACE_MODE_FSCREDS and PTRACE_MODE_REALCREDS must
101969 + * be set in @mode to specify whether the access was requested through
101970 + * a filesystem syscall (should use effective capabilities and fsuid
101971 + * of the caller) or through an explicit syscall such as
101972 + * process_vm_writev or ptrace (and should use the real credentials).
101973 + */
101974 extern bool ptrace_may_access(struct task_struct *task, unsigned int mode);
101975
101976 static inline int ptrace_reparented(struct task_struct *child)
101977 diff --git a/include/linux/quota.h b/include/linux/quota.h
101978 index b2505ac..5f7ab55 100644
101979 --- a/include/linux/quota.h
101980 +++ b/include/linux/quota.h
101981 @@ -76,7 +76,7 @@ struct kqid { /* Type in which we store the quota identifier */
101982
101983 extern bool qid_eq(struct kqid left, struct kqid right);
101984 extern bool qid_lt(struct kqid left, struct kqid right);
101985 -extern qid_t from_kqid(struct user_namespace *to, struct kqid qid);
101986 +extern qid_t from_kqid(struct user_namespace *to, struct kqid qid) __intentional_overflow(-1);
101987 extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid);
101988 extern bool qid_valid(struct kqid qid);
101989
101990 diff --git a/include/linux/random.h b/include/linux/random.h
101991 index e651874..a872186 100644
101992 --- a/include/linux/random.h
101993 +++ b/include/linux/random.h
101994 @@ -16,9 +16,19 @@ struct random_ready_callback {
101995 };
101996
101997 extern void add_device_randomness(const void *, unsigned int);
101998 +
101999 +static inline void add_latent_entropy(void)
102000 +{
102001 +
102002 +#ifdef LATENT_ENTROPY_PLUGIN
102003 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
102004 +#endif
102005 +
102006 +}
102007 +
102008 extern void add_input_randomness(unsigned int type, unsigned int code,
102009 - unsigned int value);
102010 -extern void add_interrupt_randomness(int irq, int irq_flags);
102011 + unsigned int value) __latent_entropy;
102012 +extern void add_interrupt_randomness(int irq, int irq_flags) __latent_entropy;
102013
102014 extern void get_random_bytes(void *buf, int nbytes);
102015 extern int add_random_ready_callback(struct random_ready_callback *rdy);
102016 @@ -46,6 +56,11 @@ struct rnd_state {
102017 u32 prandom_u32_state(struct rnd_state *state);
102018 void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
102019
102020 +static inline unsigned long __intentional_overflow(-1) pax_get_random_long(void)
102021 +{
102022 + return prandom_u32() + (sizeof(long) > 4 ? (unsigned long)prandom_u32() << 32 : 0);
102023 +}
102024 +
102025 /**
102026 * prandom_u32_max - returns a pseudo-random number in interval [0, ep_ro)
102027 * @ep_ro: right open interval endpoint
102028 @@ -58,7 +73,7 @@ void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
102029 *
102030 * Returns: pseudo-random number in interval [0, ep_ro)
102031 */
102032 -static inline u32 prandom_u32_max(u32 ep_ro)
102033 +static inline u32 __intentional_overflow(-1) prandom_u32_max(u32 ep_ro)
102034 {
102035 return (u32)(((u64) prandom_u32() * ep_ro) >> 32);
102036 }
102037 diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
102038 index 14d7b83..a1edf56 100644
102039 --- a/include/linux/rbtree_augmented.h
102040 +++ b/include/linux/rbtree_augmented.h
102041 @@ -90,7 +90,9 @@ rbname ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
102042 old->rbaugmented = rbcompute(old); \
102043 } \
102044 rbstatic const struct rb_augment_callbacks rbname = { \
102045 - rbname ## _propagate, rbname ## _copy, rbname ## _rotate \
102046 + .propagate = rbname ## _propagate, \
102047 + .copy = rbname ## _copy, \
102048 + .rotate = rbname ## _rotate \
102049 };
102050
102051
102052 diff --git a/include/linux/rculist.h b/include/linux/rculist.h
102053 index 17c6b1f..a65e3f8 100644
102054 --- a/include/linux/rculist.h
102055 +++ b/include/linux/rculist.h
102056 @@ -59,6 +59,9 @@ void __list_add_rcu(struct list_head *new,
102057 struct list_head *prev, struct list_head *next);
102058 #endif
102059
102060 +void __pax_list_add_rcu(struct list_head *new,
102061 + struct list_head *prev, struct list_head *next);
102062 +
102063 /**
102064 * list_add_rcu - add a new entry to rcu-protected list
102065 * @new: new entry to be added
102066 @@ -80,6 +83,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
102067 __list_add_rcu(new, head, head->next);
102068 }
102069
102070 +static inline void pax_list_add_rcu(struct list_head *new, struct list_head *head)
102071 +{
102072 + __pax_list_add_rcu(new, head, head->next);
102073 +}
102074 +
102075 /**
102076 * list_add_tail_rcu - add a new entry to rcu-protected list
102077 * @new: new entry to be added
102078 @@ -102,6 +110,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
102079 __list_add_rcu(new, head->prev, head);
102080 }
102081
102082 +static inline void pax_list_add_tail_rcu(struct list_head *new,
102083 + struct list_head *head)
102084 +{
102085 + __pax_list_add_rcu(new, head->prev, head);
102086 +}
102087 +
102088 /**
102089 * list_del_rcu - deletes entry from list without re-initialization
102090 * @entry: the element to delete from the list.
102091 @@ -132,6 +146,8 @@ static inline void list_del_rcu(struct list_head *entry)
102092 entry->prev = LIST_POISON2;
102093 }
102094
102095 +extern void pax_list_del_rcu(struct list_head *entry);
102096 +
102097 /**
102098 * hlist_del_init_rcu - deletes entry from hash list with re-initialization
102099 * @n: the element to delete from the hash list.
102100 diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
102101 index 581abf8..31c120e 100644
102102 --- a/include/linux/rcupdate.h
102103 +++ b/include/linux/rcupdate.h
102104 @@ -851,6 +851,7 @@ static inline void rcu_preempt_sleep_check(void)
102105 * read-side critical sections may be preempted and they may also block, but
102106 * only when acquiring spinlocks that are subject to priority inheritance.
102107 */
102108 +static inline void rcu_read_lock(void) __acquires(RCU);
102109 static inline void rcu_read_lock(void)
102110 {
102111 __rcu_read_lock();
102112 @@ -905,6 +906,7 @@ static inline void rcu_read_lock(void)
102113 *
102114 * See rcu_read_lock() for more information.
102115 */
102116 +static inline void rcu_read_unlock(void) __releases(RCU);
102117 static inline void rcu_read_unlock(void)
102118 {
102119 RCU_LOCKDEP_WARN(!rcu_is_watching(),
102120 @@ -931,6 +933,7 @@ static inline void rcu_read_unlock(void)
102121 * rcu_read_unlock_bh() from one task if the matching rcu_read_lock_bh()
102122 * was invoked from some other task.
102123 */
102124 +static inline void rcu_read_lock_bh(void) __acquires(RCU_BH);
102125 static inline void rcu_read_lock_bh(void)
102126 {
102127 local_bh_disable();
102128 @@ -945,6 +948,7 @@ static inline void rcu_read_lock_bh(void)
102129 *
102130 * See rcu_read_lock_bh() for more information.
102131 */
102132 +static inline void rcu_read_unlock_bh(void) __releases(RCU_BH);
102133 static inline void rcu_read_unlock_bh(void)
102134 {
102135 RCU_LOCKDEP_WARN(!rcu_is_watching(),
102136 @@ -967,6 +971,7 @@ static inline void rcu_read_unlock_bh(void)
102137 * rcu_read_unlock_sched() from process context if the matching
102138 * rcu_read_lock_sched() was invoked from an NMI handler.
102139 */
102140 +static inline void rcu_read_lock_sched(void) __acquires(RCU_SCHED);
102141 static inline void rcu_read_lock_sched(void)
102142 {
102143 preempt_disable();
102144 @@ -977,6 +982,7 @@ static inline void rcu_read_lock_sched(void)
102145 }
102146
102147 /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
102148 +static inline notrace void rcu_read_lock_sched_notrace(void) __acquires(RCU_SCHED);
102149 static inline notrace void rcu_read_lock_sched_notrace(void)
102150 {
102151 preempt_disable_notrace();
102152 @@ -988,6 +994,7 @@ static inline notrace void rcu_read_lock_sched_notrace(void)
102153 *
102154 * See rcu_read_lock_sched for more information.
102155 */
102156 +static inline void rcu_read_unlock_sched(void) __releases(RCU_SCHED);
102157 static inline void rcu_read_unlock_sched(void)
102158 {
102159 RCU_LOCKDEP_WARN(!rcu_is_watching(),
102160 @@ -998,6 +1005,7 @@ static inline void rcu_read_unlock_sched(void)
102161 }
102162
102163 /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
102164 +static inline notrace void rcu_read_unlock_sched_notrace(void) __releases(RCU_SCHED);
102165 static inline notrace void rcu_read_unlock_sched_notrace(void)
102166 {
102167 __release(RCU_SCHED);
102168 diff --git a/include/linux/reboot.h b/include/linux/reboot.h
102169 index a7ff409..03e2fa8 100644
102170 --- a/include/linux/reboot.h
102171 +++ b/include/linux/reboot.h
102172 @@ -47,9 +47,9 @@ extern void do_kernel_restart(char *cmd);
102173 */
102174
102175 extern void migrate_to_reboot_cpu(void);
102176 -extern void machine_restart(char *cmd);
102177 -extern void machine_halt(void);
102178 -extern void machine_power_off(void);
102179 +extern void machine_restart(char *cmd) __noreturn;
102180 +extern void machine_halt(void) __noreturn;
102181 +extern void machine_power_off(void) __noreturn;
102182
102183 extern void machine_shutdown(void);
102184 struct pt_regs;
102185 @@ -60,9 +60,9 @@ extern void machine_crash_shutdown(struct pt_regs *);
102186 */
102187
102188 extern void kernel_restart_prepare(char *cmd);
102189 -extern void kernel_restart(char *cmd);
102190 -extern void kernel_halt(void);
102191 -extern void kernel_power_off(void);
102192 +extern void kernel_restart(char *cmd) __noreturn;
102193 +extern void kernel_halt(void) __noreturn;
102194 +extern void kernel_power_off(void) __noreturn;
102195
102196 extern int C_A_D; /* for sysctl */
102197 void ctrl_alt_del(void);
102198 @@ -77,7 +77,7 @@ extern void orderly_reboot(void);
102199 * Emergency restart, callable from an interrupt handler.
102200 */
102201
102202 -extern void emergency_restart(void);
102203 +extern void emergency_restart(void) __noreturn;
102204 #include <asm/emergency-restart.h>
102205
102206 #endif /* _LINUX_REBOOT_H */
102207 diff --git a/include/linux/regset.h b/include/linux/regset.h
102208 index 8e0c9fe..ac4d221 100644
102209 --- a/include/linux/regset.h
102210 +++ b/include/linux/regset.h
102211 @@ -161,7 +161,8 @@ struct user_regset {
102212 unsigned int align;
102213 unsigned int bias;
102214 unsigned int core_note_type;
102215 -};
102216 +} __do_const;
102217 +typedef struct user_regset __no_const user_regset_no_const;
102218
102219 /**
102220 * struct user_regset_view - available regsets
102221 diff --git a/include/linux/relay.h b/include/linux/relay.h
102222 index d7c8359..818daf5 100644
102223 --- a/include/linux/relay.h
102224 +++ b/include/linux/relay.h
102225 @@ -157,7 +157,7 @@ struct rchan_callbacks
102226 * The callback should return 0 if successful, negative if not.
102227 */
102228 int (*remove_buf_file)(struct dentry *dentry);
102229 -};
102230 +} __no_const;
102231
102232 /*
102233 * CONFIG_RELAY kernel API, kernel/relay.c
102234 diff --git a/include/linux/rio.h b/include/linux/rio.h
102235 index cde976e..ebd6033 100644
102236 --- a/include/linux/rio.h
102237 +++ b/include/linux/rio.h
102238 @@ -358,7 +358,7 @@ struct rio_ops {
102239 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart,
102240 u64 rstart, u32 size, u32 flags);
102241 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
102242 -};
102243 +} __no_const;
102244
102245 #define RIO_RESOURCE_MEM 0x00000100
102246 #define RIO_RESOURCE_DOORBELL 0x00000200
102247 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
102248 index 29446ae..2a70d02 100644
102249 --- a/include/linux/rmap.h
102250 +++ b/include/linux/rmap.h
102251 @@ -149,8 +149,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
102252 void anon_vma_init(void); /* create anon_vma_cachep */
102253 int anon_vma_prepare(struct vm_area_struct *);
102254 void unlink_anon_vmas(struct vm_area_struct *);
102255 -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
102256 -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
102257 +int anon_vma_clone(struct vm_area_struct *, const struct vm_area_struct *);
102258 +int anon_vma_fork(struct vm_area_struct *, const struct vm_area_struct *);
102259
102260 static inline void anon_vma_merge(struct vm_area_struct *vma,
102261 struct vm_area_struct *next)
102262 diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
102263 index 556ec1e..38c19c9 100644
102264 --- a/include/linux/scatterlist.h
102265 +++ b/include/linux/scatterlist.h
102266 @@ -1,6 +1,7 @@
102267 #ifndef _LINUX_SCATTERLIST_H
102268 #define _LINUX_SCATTERLIST_H
102269
102270 +#include <linux/sched.h>
102271 #include <linux/string.h>
102272 #include <linux/types.h>
102273 #include <linux/bug.h>
102274 @@ -136,10 +137,17 @@ static inline struct page *sg_page(struct scatterlist *sg)
102275 static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
102276 unsigned int buflen)
102277 {
102278 + const void *realbuf = buf;
102279 +
102280 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102281 + if (object_starts_on_stack(buf))
102282 + realbuf = buf - current->stack + current->lowmem_stack;
102283 +#endif
102284 +
102285 #ifdef CONFIG_DEBUG_SG
102286 - BUG_ON(!virt_addr_valid(buf));
102287 + BUG_ON(!virt_addr_valid(realbuf));
102288 #endif
102289 - sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
102290 + sg_set_page(sg, virt_to_page(realbuf), buflen, offset_in_page(realbuf));
102291 }
102292
102293 /*
102294 diff --git a/include/linux/sched.h b/include/linux/sched.h
102295 index b7b9501..dc6b96f 100644
102296 --- a/include/linux/sched.h
102297 +++ b/include/linux/sched.h
102298 @@ -7,7 +7,7 @@
102299
102300
102301 struct sched_param {
102302 - int sched_priority;
102303 + unsigned int sched_priority;
102304 };
102305
102306 #include <asm/param.h> /* for HZ */
102307 @@ -134,6 +134,7 @@ struct perf_event_context;
102308 struct blk_plug;
102309 struct filename;
102310 struct nameidata;
102311 +struct linux_binprm;
102312
102313 #define VMACACHE_BITS 2
102314 #define VMACACHE_SIZE (1U << VMACACHE_BITS)
102315 @@ -436,6 +437,19 @@ struct nsproxy;
102316 struct user_namespace;
102317
102318 #ifdef CONFIG_MMU
102319 +
102320 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
102321 +extern unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags);
102322 +#else
102323 +static inline unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
102324 +{
102325 + return 0;
102326 +}
102327 +#endif
102328 +
102329 +extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset);
102330 +extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset);
102331 +
102332 extern void arch_pick_mmap_layout(struct mm_struct *mm);
102333 extern unsigned long
102334 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
102335 @@ -757,6 +771,17 @@ struct signal_struct {
102336 #ifdef CONFIG_TASKSTATS
102337 struct taskstats *stats;
102338 #endif
102339 +
102340 +#ifdef CONFIG_GRKERNSEC
102341 + u32 curr_ip;
102342 + u32 saved_ip;
102343 + u32 gr_saddr;
102344 + u32 gr_daddr;
102345 + u16 gr_sport;
102346 + u16 gr_dport;
102347 + u8 used_accept:1;
102348 +#endif
102349 +
102350 #ifdef CONFIG_AUDIT
102351 unsigned audit_tty;
102352 unsigned audit_tty_log_passwd;
102353 @@ -783,7 +808,7 @@ struct signal_struct {
102354 struct mutex cred_guard_mutex; /* guard against foreign influences on
102355 * credential calculations
102356 * (notably. ptrace) */
102357 -};
102358 +} __randomize_layout;
102359
102360 /*
102361 * Bits in flags field of signal_struct.
102362 @@ -836,6 +861,14 @@ struct user_struct {
102363 struct key *session_keyring; /* UID's default session keyring */
102364 #endif
102365
102366 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
102367 + unsigned char kernel_banned;
102368 +#endif
102369 +#ifdef CONFIG_GRKERNSEC_BRUTE
102370 + unsigned char suid_banned;
102371 + unsigned long suid_ban_expires;
102372 +#endif
102373 +
102374 /* Hash table maintenance information */
102375 struct hlist_node uidhash_node;
102376 kuid_t uid;
102377 @@ -843,7 +876,7 @@ struct user_struct {
102378 #ifdef CONFIG_PERF_EVENTS
102379 atomic_long_t locked_vm;
102380 #endif
102381 -};
102382 +} __randomize_layout;
102383
102384 extern int uids_sysfs_init(void);
102385
102386 @@ -1378,6 +1411,9 @@ struct tlbflush_unmap_batch {
102387 struct task_struct {
102388 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
102389 void *stack;
102390 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102391 + void *lowmem_stack;
102392 +#endif
102393 atomic_t usage;
102394 unsigned int flags; /* per process flags, defined below */
102395 unsigned int ptrace;
102396 @@ -1510,8 +1546,8 @@ struct task_struct {
102397 struct list_head thread_node;
102398
102399 struct completion *vfork_done; /* for vfork() */
102400 - int __user *set_child_tid; /* CLONE_CHILD_SETTID */
102401 - int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
102402 + pid_t __user *set_child_tid; /* CLONE_CHILD_SETTID */
102403 + pid_t __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
102404
102405 cputime_t utime, stime, utimescaled, stimescaled;
102406 cputime_t gtime;
102407 @@ -1534,11 +1570,6 @@ struct task_struct {
102408 struct task_cputime cputime_expires;
102409 struct list_head cpu_timers[3];
102410
102411 -/* process credentials */
102412 - const struct cred __rcu *real_cred; /* objective and real subjective task
102413 - * credentials (COW) */
102414 - const struct cred __rcu *cred; /* effective (overridable) subjective task
102415 - * credentials (COW) */
102416 char comm[TASK_COMM_LEN]; /* executable name excluding path
102417 - access with [gs]et_task_comm (which lock
102418 it with task_lock())
102419 @@ -1554,6 +1585,8 @@ struct task_struct {
102420 /* hung task detection */
102421 unsigned long last_switch_count;
102422 #endif
102423 +/* CPU-specific state of this task */
102424 + struct thread_struct thread;
102425 /* filesystem information */
102426 struct fs_struct *fs;
102427 /* open file information */
102428 @@ -1630,6 +1663,10 @@ struct task_struct {
102429 gfp_t lockdep_reclaim_gfp;
102430 #endif
102431
102432 +/* process credentials */
102433 + const struct cred __rcu *real_cred; /* objective and real subjective task
102434 + * credentials (COW) */
102435 +
102436 /* journalling filesystem info */
102437 void *journal_info;
102438
102439 @@ -1668,6 +1705,10 @@ struct task_struct {
102440 /* cg_list protected by css_set_lock and tsk->alloc_lock */
102441 struct list_head cg_list;
102442 #endif
102443 +
102444 + const struct cred __rcu *cred; /* effective (overridable) subjective task
102445 + * credentials (COW) */
102446 +
102447 #ifdef CONFIG_FUTEX
102448 struct robust_list_head __user *robust_list;
102449 #ifdef CONFIG_COMPAT
102450 @@ -1783,7 +1824,7 @@ struct task_struct {
102451 * Number of functions that haven't been traced
102452 * because of depth overrun.
102453 */
102454 - atomic_t trace_overrun;
102455 + atomic_unchecked_t trace_overrun;
102456 /* Pause for the tracing */
102457 atomic_t tracing_graph_pause;
102458 #endif
102459 @@ -1812,22 +1853,89 @@ struct task_struct {
102460 unsigned long task_state_change;
102461 #endif
102462 int pagefault_disabled;
102463 -/* CPU-specific state of this task */
102464 - struct thread_struct thread;
102465 -/*
102466 - * WARNING: on x86, 'thread_struct' contains a variable-sized
102467 - * structure. It *MUST* be at the end of 'task_struct'.
102468 - *
102469 - * Do not put anything below here!
102470 - */
102471 -};
102472 +
102473 +#ifdef CONFIG_GRKERNSEC
102474 + /* grsecurity */
102475 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
102476 + u64 exec_id;
102477 +#endif
102478 +#ifdef CONFIG_GRKERNSEC_SETXID
102479 + const struct cred *delayed_cred;
102480 +#endif
102481 + struct dentry *gr_chroot_dentry;
102482 + struct acl_subject_label *acl;
102483 + struct acl_subject_label *tmpacl;
102484 + struct acl_role_label *role;
102485 + struct file *exec_file;
102486 + unsigned long brute_expires;
102487 + u16 acl_role_id;
102488 + u8 inherited;
102489 + /* is this the task that authenticated to the special role */
102490 + u8 acl_sp_role;
102491 + u8 is_writable;
102492 + u8 brute;
102493 + u8 gr_is_chrooted;
102494 +#endif
102495 +
102496 +/* thread_info moved to task_struct */
102497 +#ifdef CONFIG_X86
102498 + struct thread_info tinfo;
102499 +#endif
102500 +} __randomize_layout;
102501
102502 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
102503 -extern int arch_task_struct_size __read_mostly;
102504 +extern size_t arch_task_struct_size __read_mostly;
102505 #else
102506 # define arch_task_struct_size (sizeof(struct task_struct))
102507 #endif
102508
102509 +#define MF_PAX_PAGEEXEC 0x01000000 /* Paging based non-executable pages */
102510 +#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */
102511 +#define MF_PAX_MPROTECT 0x04000000 /* Restrict mprotect() */
102512 +#define MF_PAX_RANDMMAP 0x08000000 /* Randomize mmap() base */
102513 +/*#define MF_PAX_RANDEXEC 0x10000000*/ /* Randomize ET_EXEC base */
102514 +#define MF_PAX_SEGMEXEC 0x20000000 /* Segmentation based non-executable pages */
102515 +
102516 +#ifdef CONFIG_PAX_SOFTMODE
102517 +extern int pax_softmode;
102518 +#endif
102519 +
102520 +extern int pax_check_flags(unsigned long *);
102521 +#define PAX_PARSE_FLAGS_FALLBACK (~0UL)
102522 +
102523 +/* if tsk != current then task_lock must be held on it */
102524 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
102525 +static inline unsigned long pax_get_flags(struct task_struct *tsk)
102526 +{
102527 + if (likely(tsk->mm))
102528 + return tsk->mm->pax_flags;
102529 + else
102530 + return 0UL;
102531 +}
102532 +
102533 +/* if tsk != current then task_lock must be held on it */
102534 +static inline long pax_set_flags(struct task_struct *tsk, unsigned long flags)
102535 +{
102536 + if (likely(tsk->mm)) {
102537 + tsk->mm->pax_flags = flags;
102538 + return 0;
102539 + }
102540 + return -EINVAL;
102541 +}
102542 +#endif
102543 +
102544 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
102545 +extern void pax_set_initial_flags(struct linux_binprm *bprm);
102546 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
102547 +extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
102548 +#endif
102549 +
102550 +struct path;
102551 +extern char *pax_get_path(const struct path *path, char *buf, int buflen);
102552 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
102553 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
102554 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
102555 +
102556 /* Future-safe accessor for struct task_struct's cpus_allowed. */
102557 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
102558
102559 @@ -1909,7 +2017,7 @@ struct pid_namespace;
102560 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
102561 struct pid_namespace *ns);
102562
102563 -static inline pid_t task_pid_nr(struct task_struct *tsk)
102564 +static inline pid_t task_pid_nr(const struct task_struct *tsk)
102565 {
102566 return tsk->pid;
102567 }
102568 @@ -2270,6 +2378,25 @@ extern u64 sched_clock_cpu(int cpu);
102569
102570 extern void sched_clock_init(void);
102571
102572 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102573 +static inline void populate_stack(void)
102574 +{
102575 + struct task_struct *curtask = current;
102576 + int c;
102577 + int *ptr = curtask->stack;
102578 + int *end = curtask->stack + THREAD_SIZE;
102579 +
102580 + while (ptr < end) {
102581 + c = *(volatile int *)ptr;
102582 + ptr += PAGE_SIZE/sizeof(int);
102583 + }
102584 +}
102585 +#else
102586 +static inline void populate_stack(void)
102587 +{
102588 +}
102589 +#endif
102590 +
102591 #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
102592 static inline void sched_clock_tick(void)
102593 {
102594 @@ -2398,7 +2525,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
102595 void yield(void);
102596
102597 union thread_union {
102598 +#ifndef CONFIG_X86
102599 struct thread_info thread_info;
102600 +#endif
102601 unsigned long stack[THREAD_SIZE/sizeof(long)];
102602 };
102603
102604 @@ -2431,6 +2560,7 @@ extern struct pid_namespace init_pid_ns;
102605 */
102606
102607 extern struct task_struct *find_task_by_vpid(pid_t nr);
102608 +extern struct task_struct *find_task_by_vpid_unrestricted(pid_t nr);
102609 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
102610 struct pid_namespace *ns);
102611
102612 @@ -2462,7 +2592,7 @@ extern void proc_caches_init(void);
102613 extern void flush_signals(struct task_struct *);
102614 extern void ignore_signals(struct task_struct *);
102615 extern void flush_signal_handlers(struct task_struct *, int force_default);
102616 -extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
102617 +extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) __must_hold(&tsk->sighand->siglock);
102618
102619 static inline int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
102620 {
102621 @@ -2608,7 +2738,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
102622 extern void exit_itimers(struct signal_struct *);
102623 extern void flush_itimer_signals(void);
102624
102625 -extern void do_group_exit(int);
102626 +extern __noreturn void do_group_exit(int);
102627
102628 extern int do_execve(struct filename *,
102629 const char __user * const __user *,
102630 @@ -2723,11 +2853,13 @@ static inline int thread_group_empty(struct task_struct *p)
102631 * It must not be nested with write_lock_irq(&tasklist_lock),
102632 * neither inside nor outside.
102633 */
102634 +static inline void task_lock(struct task_struct *p) __acquires(&p->alloc_lock);
102635 static inline void task_lock(struct task_struct *p)
102636 {
102637 spin_lock(&p->alloc_lock);
102638 }
102639
102640 +static inline void task_unlock(struct task_struct *p) __releases(&p->alloc_lock);
102641 static inline void task_unlock(struct task_struct *p)
102642 {
102643 spin_unlock(&p->alloc_lock);
102644 @@ -2813,9 +2945,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
102645 #define task_stack_end_corrupted(task) \
102646 (*(end_of_stack(task)) != STACK_END_MAGIC)
102647
102648 -static inline int object_is_on_stack(void *obj)
102649 +static inline int object_starts_on_stack(const void *obj)
102650 {
102651 - void *stack = task_stack_page(current);
102652 + const void *stack = task_stack_page(current);
102653
102654 return (obj >= stack) && (obj < (stack + THREAD_SIZE));
102655 }
102656 diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
102657 index c9e4731..c716293 100644
102658 --- a/include/linux/sched/sysctl.h
102659 +++ b/include/linux/sched/sysctl.h
102660 @@ -34,6 +34,7 @@ enum { sysctl_hung_task_timeout_secs = 0 };
102661 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
102662
102663 extern int sysctl_max_map_count;
102664 +extern unsigned long sysctl_heap_stack_gap;
102665
102666 extern unsigned int sysctl_sched_latency;
102667 extern unsigned int sysctl_sched_min_granularity;
102668 diff --git a/include/linux/security.h b/include/linux/security.h
102669 index 2f4c1f7..5bc05d7 100644
102670 --- a/include/linux/security.h
102671 +++ b/include/linux/security.h
102672 @@ -28,6 +28,7 @@
102673 #include <linux/err.h>
102674 #include <linux/string.h>
102675 #include <linux/mm.h>
102676 +#include <linux/grsecurity.h>
102677
102678 struct linux_binprm;
102679 struct cred;
102680 diff --git a/include/linux/sem.h b/include/linux/sem.h
102681 index 976ce3a..db62f3f 100644
102682 --- a/include/linux/sem.h
102683 +++ b/include/linux/sem.h
102684 @@ -21,7 +21,7 @@ struct sem_array {
102685 struct list_head list_id; /* undo requests on this array */
102686 int sem_nsems; /* no. of semaphores in array */
102687 int complex_count; /* pending complex operations */
102688 -};
102689 +} __randomize_layout;
102690
102691 #ifdef CONFIG_SYSVIPC
102692
102693 diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h
102694 index dc368b8..e895209 100644
102695 --- a/include/linux/semaphore.h
102696 +++ b/include/linux/semaphore.h
102697 @@ -37,7 +37,7 @@ static inline void sema_init(struct semaphore *sem, int val)
102698 }
102699
102700 extern void down(struct semaphore *sem);
102701 -extern int __must_check down_interruptible(struct semaphore *sem);
102702 +extern int __must_check down_interruptible(struct semaphore *sem) __intentional_overflow(-1);
102703 extern int __must_check down_killable(struct semaphore *sem);
102704 extern int __must_check down_trylock(struct semaphore *sem);
102705 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
102706 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
102707 index dde00de..202bfd3 100644
102708 --- a/include/linux/seq_file.h
102709 +++ b/include/linux/seq_file.h
102710 @@ -27,6 +27,9 @@ struct seq_file {
102711 struct mutex lock;
102712 const struct seq_operations *op;
102713 int poll_event;
102714 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
102715 + u64 exec_id;
102716 +#endif
102717 #ifdef CONFIG_USER_NS
102718 struct user_namespace *user_ns;
102719 #endif
102720 @@ -39,6 +42,7 @@ struct seq_operations {
102721 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
102722 int (*show) (struct seq_file *m, void *v);
102723 };
102724 +typedef struct seq_operations __no_const seq_operations_no_const;
102725
102726 #define SEQ_SKIP 1
102727
102728 @@ -111,6 +115,7 @@ void seq_pad(struct seq_file *m, char c);
102729
102730 char *mangle_path(char *s, const char *p, const char *esc);
102731 int seq_open(struct file *, const struct seq_operations *);
102732 +int seq_open_restrict(struct file *, const struct seq_operations *);
102733 ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
102734 loff_t seq_lseek(struct file *, loff_t, int);
102735 int seq_release(struct inode *, struct file *);
102736 @@ -138,6 +143,7 @@ int seq_path_root(struct seq_file *m, const struct path *path,
102737 const struct path *root, const char *esc);
102738
102739 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
102740 +int single_open_restrict(struct file *, int (*)(struct seq_file *, void *), void *);
102741 int single_open_size(struct file *, int (*)(struct seq_file *, void *), void *, size_t);
102742 int single_release(struct inode *, struct file *);
102743 void *__seq_open_private(struct file *, const struct seq_operations *, int);
102744 diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
102745 index e058210..386666a 100644
102746 --- a/include/linux/seqlock.h
102747 +++ b/include/linux/seqlock.h
102748 @@ -440,42 +440,49 @@ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
102749 * Acts like a normal spin_lock/unlock.
102750 * Don't need preempt_disable() because that is in the spin_lock already.
102751 */
102752 +static inline void write_seqlock(seqlock_t *sl) __acquires(sl);
102753 static inline void write_seqlock(seqlock_t *sl)
102754 {
102755 spin_lock(&sl->lock);
102756 write_seqcount_begin(&sl->seqcount);
102757 }
102758
102759 +static inline void write_sequnlock(seqlock_t *sl) __releases(sl);
102760 static inline void write_sequnlock(seqlock_t *sl)
102761 {
102762 write_seqcount_end(&sl->seqcount);
102763 spin_unlock(&sl->lock);
102764 }
102765
102766 +static inline void write_seqlock_bh(seqlock_t *sl) __acquires(sl);
102767 static inline void write_seqlock_bh(seqlock_t *sl)
102768 {
102769 spin_lock_bh(&sl->lock);
102770 write_seqcount_begin(&sl->seqcount);
102771 }
102772
102773 +static inline void write_sequnlock_bh(seqlock_t *sl) __releases(sl);
102774 static inline void write_sequnlock_bh(seqlock_t *sl)
102775 {
102776 write_seqcount_end(&sl->seqcount);
102777 spin_unlock_bh(&sl->lock);
102778 }
102779
102780 +static inline void write_seqlock_irq(seqlock_t *sl) __acquires(sl);
102781 static inline void write_seqlock_irq(seqlock_t *sl)
102782 {
102783 spin_lock_irq(&sl->lock);
102784 write_seqcount_begin(&sl->seqcount);
102785 }
102786
102787 +static inline void write_sequnlock_irq(seqlock_t *sl) __releases(sl);
102788 static inline void write_sequnlock_irq(seqlock_t *sl)
102789 {
102790 write_seqcount_end(&sl->seqcount);
102791 spin_unlock_irq(&sl->lock);
102792 }
102793
102794 +static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl) __acquires(sl);
102795 static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
102796 {
102797 unsigned long flags;
102798 @@ -488,6 +495,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
102799 #define write_seqlock_irqsave(lock, flags) \
102800 do { flags = __write_seqlock_irqsave(lock); } while (0)
102801
102802 +static inline void write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags) __releases(sl);
102803 static inline void
102804 write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
102805 {
102806 @@ -500,11 +508,13 @@ write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
102807 * but doesn't update the sequence number. Acts like a normal spin_lock/unlock.
102808 * Don't need preempt_disable() because that is in the spin_lock already.
102809 */
102810 +static inline void read_seqlock_excl(seqlock_t *sl) __acquires(sl);
102811 static inline void read_seqlock_excl(seqlock_t *sl)
102812 {
102813 spin_lock(&sl->lock);
102814 }
102815
102816 +static inline void read_sequnlock_excl(seqlock_t *sl) __releases(sl);
102817 static inline void read_sequnlock_excl(seqlock_t *sl)
102818 {
102819 spin_unlock(&sl->lock);
102820 diff --git a/include/linux/shm.h b/include/linux/shm.h
102821 index 6fb8016..2cf60e7 100644
102822 --- a/include/linux/shm.h
102823 +++ b/include/linux/shm.h
102824 @@ -22,7 +22,11 @@ struct shmid_kernel /* private to the kernel */
102825 /* The task created the shm object. NULL if the task is dead. */
102826 struct task_struct *shm_creator;
102827 struct list_head shm_clist; /* list by creator */
102828 -};
102829 +#ifdef CONFIG_GRKERNSEC
102830 + u64 shm_createtime;
102831 + pid_t shm_lapid;
102832 +#endif
102833 +} __randomize_layout;
102834
102835 /* shm_mode upper byte flags */
102836 #define SHM_DEST 01000 /* segment will be destroyed on last detach */
102837 diff --git a/include/linux/signal.h b/include/linux/signal.h
102838 index ab1e039..ad4229e 100644
102839 --- a/include/linux/signal.h
102840 +++ b/include/linux/signal.h
102841 @@ -289,7 +289,7 @@ static inline void allow_signal(int sig)
102842 * know it'll be handled, so that they don't get converted to
102843 * SIGKILL or just silently dropped.
102844 */
102845 - kernel_sigaction(sig, (__force __sighandler_t)2);
102846 + kernel_sigaction(sig, (__force_user __sighandler_t)2);
102847 }
102848
102849 static inline void disallow_signal(int sig)
102850 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
102851 index 4398411..4856c34 100644
102852 --- a/include/linux/skbuff.h
102853 +++ b/include/linux/skbuff.h
102854 @@ -799,7 +799,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
102855 int node);
102856 struct sk_buff *__build_skb(void *data, unsigned int frag_size);
102857 struct sk_buff *build_skb(void *data, unsigned int frag_size);
102858 -static inline struct sk_buff *alloc_skb(unsigned int size,
102859 +static inline struct sk_buff * __intentional_overflow(0) alloc_skb(unsigned int size,
102860 gfp_t priority)
102861 {
102862 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
102863 @@ -2070,7 +2070,7 @@ static inline int skb_checksum_start_offset(const struct sk_buff *skb)
102864 return skb->csum_start - skb_headroom(skb);
102865 }
102866
102867 -static inline int skb_transport_offset(const struct sk_buff *skb)
102868 +static inline int __intentional_overflow(0) skb_transport_offset(const struct sk_buff *skb)
102869 {
102870 return skb_transport_header(skb) - skb->data;
102871 }
102872 @@ -2085,7 +2085,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
102873 return skb->inner_transport_header - skb->inner_network_header;
102874 }
102875
102876 -static inline int skb_network_offset(const struct sk_buff *skb)
102877 +static inline int __intentional_overflow(0) skb_network_offset(const struct sk_buff *skb)
102878 {
102879 return skb_network_header(skb) - skb->data;
102880 }
102881 @@ -2145,7 +2145,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
102882 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
102883 */
102884 #ifndef NET_SKB_PAD
102885 -#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
102886 +#define NET_SKB_PAD max(_AC(32,UL), L1_CACHE_BYTES)
102887 #endif
102888
102889 int ___pskb_trim(struct sk_buff *skb, unsigned int len);
102890 @@ -2785,9 +2785,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
102891 int *err);
102892 unsigned int datagram_poll(struct file *file, struct socket *sock,
102893 struct poll_table_struct *wait);
102894 -int skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102895 +int __intentional_overflow(0) skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102896 struct iov_iter *to, int size);
102897 -static inline int skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102898 +static inline int __intentional_overflow(2,4) skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102899 struct msghdr *msg, int size)
102900 {
102901 return skb_copy_datagram_iter(from, offset, &msg->msg_iter, size);
102902 @@ -3316,6 +3316,9 @@ static inline void nf_reset(struct sk_buff *skb)
102903 nf_bridge_put(skb->nf_bridge);
102904 skb->nf_bridge = NULL;
102905 #endif
102906 +#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
102907 + skb->nf_trace = 0;
102908 +#endif
102909 }
102910
102911 static inline void nf_reset_trace(struct sk_buff *skb)
102912 diff --git a/include/linux/slab.h b/include/linux/slab.h
102913 index 7e37d44..a57df5e 100644
102914 --- a/include/linux/slab.h
102915 +++ b/include/linux/slab.h
102916 @@ -15,14 +15,29 @@
102917 #include <linux/types.h>
102918 #include <linux/workqueue.h>
102919
102920 +#include <linux/err.h>
102921
102922 /*
102923 * Flags to pass to kmem_cache_create().
102924 * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set.
102925 */
102926 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
102927 +
102928 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102929 +#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
102930 +#else
102931 +#define SLAB_USERCOPY 0x00000000UL
102932 +#endif
102933 +
102934 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
102935 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
102936 +
102937 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
102938 +#define SLAB_NO_SANITIZE 0x00001000UL /* PaX: Do not sanitize objs on free */
102939 +#else
102940 +#define SLAB_NO_SANITIZE 0x00000000UL
102941 +#endif
102942 +
102943 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
102944 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
102945 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
102946 @@ -98,10 +113,13 @@
102947 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
102948 * Both make kfree a no-op.
102949 */
102950 -#define ZERO_SIZE_PTR ((void *)16)
102951 +#define ZERO_SIZE_PTR \
102952 +({ \
102953 + BUILD_BUG_ON(!(MAX_ERRNO & ~PAGE_MASK));\
102954 + (void *)(-MAX_ERRNO-1L); \
102955 +})
102956
102957 -#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
102958 - (unsigned long)ZERO_SIZE_PTR)
102959 +#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1)
102960
102961 #include <linux/kmemleak.h>
102962 #include <linux/kasan.h>
102963 @@ -143,6 +161,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
102964 void kfree(const void *);
102965 void kzfree(const void *);
102966 size_t ksize(const void *);
102967 +const char *check_heap_object(const void *ptr, unsigned long n);
102968 +bool is_usercopy_object(const void *ptr);
102969
102970 /*
102971 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
102972 @@ -235,6 +255,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
102973 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102974 #endif
102975
102976 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102977 +extern struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
102978 +#endif
102979 +
102980 /*
102981 * Figure out which kmalloc slab an allocation of a certain size
102982 * belongs to.
102983 @@ -243,7 +267,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102984 * 2 = 129 .. 192 bytes
102985 * n = 2^(n-1)+1 .. 2^n
102986 */
102987 -static __always_inline int kmalloc_index(size_t size)
102988 +static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
102989 {
102990 if (!size)
102991 return 0;
102992 @@ -286,7 +310,7 @@ static __always_inline int kmalloc_index(size_t size)
102993 }
102994 #endif /* !CONFIG_SLOB */
102995
102996 -void *__kmalloc(size_t size, gfp_t flags);
102997 +void *__kmalloc(size_t size, gfp_t flags) __alloc_size(1) __size_overflow(1);
102998 void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags);
102999 void kmem_cache_free(struct kmem_cache *, void *);
103000
103001 @@ -301,10 +325,10 @@ void kmem_cache_free_bulk(struct kmem_cache *, size_t, void **);
103002 bool kmem_cache_alloc_bulk(struct kmem_cache *, gfp_t, size_t, void **);
103003
103004 #ifdef CONFIG_NUMA
103005 -void *__kmalloc_node(size_t size, gfp_t flags, int node);
103006 +void *__kmalloc_node(size_t size, gfp_t flags, int node) __alloc_size(1) __size_overflow(1);
103007 void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
103008 #else
103009 -static __always_inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
103010 +static __always_inline void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
103011 {
103012 return __kmalloc(size, flags);
103013 }
103014 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
103015 index 33d0490..70a6313 100644
103016 --- a/include/linux/slab_def.h
103017 +++ b/include/linux/slab_def.h
103018 @@ -40,7 +40,7 @@ struct kmem_cache {
103019 /* 4) cache creation/removal */
103020 const char *name;
103021 struct list_head list;
103022 - int refcount;
103023 + atomic_t refcount;
103024 int object_size;
103025 int align;
103026
103027 @@ -56,10 +56,14 @@ struct kmem_cache {
103028 unsigned long node_allocs;
103029 unsigned long node_frees;
103030 unsigned long node_overflow;
103031 - atomic_t allochit;
103032 - atomic_t allocmiss;
103033 - atomic_t freehit;
103034 - atomic_t freemiss;
103035 + atomic_unchecked_t allochit;
103036 + atomic_unchecked_t allocmiss;
103037 + atomic_unchecked_t freehit;
103038 + atomic_unchecked_t freemiss;
103039 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
103040 + atomic_unchecked_t sanitized;
103041 + atomic_unchecked_t not_sanitized;
103042 +#endif
103043
103044 /*
103045 * If debugging is enabled, then the allocator can add additional
103046 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
103047 index 3388511..6252f90 100644
103048 --- a/include/linux/slub_def.h
103049 +++ b/include/linux/slub_def.h
103050 @@ -74,7 +74,7 @@ struct kmem_cache {
103051 struct kmem_cache_order_objects max;
103052 struct kmem_cache_order_objects min;
103053 gfp_t allocflags; /* gfp flags to use on each alloc */
103054 - int refcount; /* Refcount for slab cache destroy */
103055 + atomic_t refcount; /* Refcount for slab cache destroy */
103056 void (*ctor)(void *);
103057 int inuse; /* Offset to metadata */
103058 int align; /* Alignment */
103059 diff --git a/include/linux/smp.h b/include/linux/smp.h
103060 index c441407..f487b83 100644
103061 --- a/include/linux/smp.h
103062 +++ b/include/linux/smp.h
103063 @@ -183,7 +183,9 @@ static inline void smp_init(void) { }
103064 #endif
103065
103066 #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
103067 +#define raw_get_cpu() ({ raw_preempt_disable(); raw_smp_processor_id(); })
103068 #define put_cpu() preempt_enable()
103069 +#define raw_put_cpu_no_resched() raw_preempt_enable_no_resched()
103070
103071 /*
103072 * Callback to arch code if there's nosmp or maxcpus=0 on the
103073 diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
103074 index fddebc6..6f0ae39 100644
103075 --- a/include/linux/sock_diag.h
103076 +++ b/include/linux/sock_diag.h
103077 @@ -15,7 +15,7 @@ struct sock_diag_handler {
103078 __u8 family;
103079 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
103080 int (*get_info)(struct sk_buff *skb, struct sock *sk);
103081 -};
103082 +} __do_const;
103083
103084 int sock_diag_register(const struct sock_diag_handler *h);
103085 void sock_diag_unregister(const struct sock_diag_handler *h);
103086 diff --git a/include/linux/sonet.h b/include/linux/sonet.h
103087 index 680f9a3..f13aeb0 100644
103088 --- a/include/linux/sonet.h
103089 +++ b/include/linux/sonet.h
103090 @@ -7,7 +7,7 @@
103091 #include <uapi/linux/sonet.h>
103092
103093 struct k_sonet_stats {
103094 -#define __HANDLE_ITEM(i) atomic_t i
103095 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
103096 __SONET_ITEMS
103097 #undef __HANDLE_ITEM
103098 };
103099 diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
103100 index 47dd0ce..3275f16 100644
103101 --- a/include/linux/spinlock.h
103102 +++ b/include/linux/spinlock.h
103103 @@ -142,14 +142,17 @@ do { \
103104 extern int do_raw_spin_trylock(raw_spinlock_t *lock);
103105 extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
103106 #else
103107 -static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
103108 +static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
103109 +static inline void do_raw_spin_lock(raw_spinlock_t *lock)
103110 {
103111 __acquire(lock);
103112 arch_spin_lock(&lock->raw_lock);
103113 }
103114
103115 static inline void
103116 -do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock)
103117 +do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock);
103118 +static inline void
103119 +do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags)
103120 {
103121 __acquire(lock);
103122 arch_spin_lock_flags(&lock->raw_lock, *flags);
103123 @@ -160,7 +163,8 @@ static inline int do_raw_spin_trylock(raw_spinlock_t *lock)
103124 return arch_spin_trylock(&(lock)->raw_lock);
103125 }
103126
103127 -static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
103128 +static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
103129 +static inline void do_raw_spin_unlock(raw_spinlock_t *lock)
103130 {
103131 arch_spin_unlock(&lock->raw_lock);
103132 __release(lock);
103133 @@ -297,11 +301,13 @@ do { \
103134 raw_spin_lock_init(&(_lock)->rlock); \
103135 } while (0)
103136
103137 +static __always_inline void spin_lock(spinlock_t *lock) __acquires(lock);
103138 static __always_inline void spin_lock(spinlock_t *lock)
103139 {
103140 raw_spin_lock(&lock->rlock);
103141 }
103142
103143 +static __always_inline void spin_lock_bh(spinlock_t *lock) __acquires(lock);
103144 static __always_inline void spin_lock_bh(spinlock_t *lock)
103145 {
103146 raw_spin_lock_bh(&lock->rlock);
103147 @@ -327,6 +333,7 @@ do { \
103148 raw_spin_lock_nest_lock(spinlock_check(lock), nest_lock); \
103149 } while (0)
103150
103151 +static __always_inline void spin_lock_irq(spinlock_t *lock) __acquires(lock);
103152 static __always_inline void spin_lock_irq(spinlock_t *lock)
103153 {
103154 raw_spin_lock_irq(&lock->rlock);
103155 @@ -342,21 +349,25 @@ do { \
103156 raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
103157 } while (0)
103158
103159 +static __always_inline void spin_unlock(spinlock_t *lock) __releases(lock);
103160 static __always_inline void spin_unlock(spinlock_t *lock)
103161 {
103162 raw_spin_unlock(&lock->rlock);
103163 }
103164
103165 +static __always_inline void spin_unlock_bh(spinlock_t *lock) __releases(lock);
103166 static __always_inline void spin_unlock_bh(spinlock_t *lock)
103167 {
103168 raw_spin_unlock_bh(&lock->rlock);
103169 }
103170
103171 +static __always_inline void spin_unlock_irq(spinlock_t *lock) __releases(lock);
103172 static __always_inline void spin_unlock_irq(spinlock_t *lock)
103173 {
103174 raw_spin_unlock_irq(&lock->rlock);
103175 }
103176
103177 +static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) __releases(lock);
103178 static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
103179 {
103180 raw_spin_unlock_irqrestore(&lock->rlock, flags);
103181 diff --git a/include/linux/srcu.h b/include/linux/srcu.h
103182 index bdeb456..6412bb0 100644
103183 --- a/include/linux/srcu.h
103184 +++ b/include/linux/srcu.h
103185 @@ -213,7 +213,8 @@ static inline int srcu_read_lock_held(struct srcu_struct *sp)
103186 * srcu_read_unlock() in an irq handler if the matching srcu_read_lock()
103187 * was invoked in process context.
103188 */
103189 -static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
103190 +static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
103191 +static inline int srcu_read_lock(struct srcu_struct *sp)
103192 {
103193 int retval = __srcu_read_lock(sp);
103194
103195 @@ -228,8 +229,8 @@ static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
103196 *
103197 * Exit an SRCU read-side critical section.
103198 */
103199 +static inline void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
103200 static inline void srcu_read_unlock(struct srcu_struct *sp, int idx)
103201 - __releases(sp)
103202 {
103203 rcu_lock_release(&(sp)->dep_map);
103204 __srcu_read_unlock(sp, idx);
103205 diff --git a/include/linux/sunrpc/addr.h b/include/linux/sunrpc/addr.h
103206 index 5c9c6cd..f16c5c9 100644
103207 --- a/include/linux/sunrpc/addr.h
103208 +++ b/include/linux/sunrpc/addr.h
103209 @@ -23,9 +23,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
103210 {
103211 switch (sap->sa_family) {
103212 case AF_INET:
103213 - return ntohs(((struct sockaddr_in *)sap)->sin_port);
103214 + return ntohs(((const struct sockaddr_in *)sap)->sin_port);
103215 case AF_INET6:
103216 - return ntohs(((struct sockaddr_in6 *)sap)->sin6_port);
103217 + return ntohs(((const struct sockaddr_in6 *)sap)->sin6_port);
103218 }
103219 return 0;
103220 }
103221 @@ -58,7 +58,7 @@ static inline bool rpc_cmp_addr4(const struct sockaddr *sap1,
103222 static inline bool __rpc_copy_addr4(struct sockaddr *dst,
103223 const struct sockaddr *src)
103224 {
103225 - const struct sockaddr_in *ssin = (struct sockaddr_in *) src;
103226 + const struct sockaddr_in *ssin = (const struct sockaddr_in *) src;
103227 struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
103228
103229 dsin->sin_family = ssin->sin_family;
103230 @@ -177,7 +177,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
103231 if (sa->sa_family != AF_INET6)
103232 return 0;
103233
103234 - return ((struct sockaddr_in6 *) sa)->sin6_scope_id;
103235 + return ((const struct sockaddr_in6 *) sa)->sin6_scope_id;
103236 }
103237
103238 #endif /* _LINUX_SUNRPC_ADDR_H */
103239 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
103240 index 131032f..5f9378a 100644
103241 --- a/include/linux/sunrpc/clnt.h
103242 +++ b/include/linux/sunrpc/clnt.h
103243 @@ -101,7 +101,7 @@ struct rpc_procinfo {
103244 unsigned int p_timer; /* Which RTT timer to use */
103245 u32 p_statidx; /* Which procedure to account */
103246 const char * p_name; /* name of procedure */
103247 -};
103248 +} __do_const;
103249
103250 #ifdef __KERNEL__
103251
103252 diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
103253 index cc0fc71..b70c6b1 100644
103254 --- a/include/linux/sunrpc/svc.h
103255 +++ b/include/linux/sunrpc/svc.h
103256 @@ -425,7 +425,7 @@ struct svc_procedure {
103257 unsigned int pc_count; /* call count */
103258 unsigned int pc_cachetype; /* cache info (NFS) */
103259 unsigned int pc_xdrressize; /* maximum size of XDR reply */
103260 -};
103261 +} __do_const;
103262
103263 /*
103264 * Mode for mapping cpus to pools.
103265 diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
103266 index 7ccc961..78746ba 100644
103267 --- a/include/linux/sunrpc/svc_rdma.h
103268 +++ b/include/linux/sunrpc/svc_rdma.h
103269 @@ -53,15 +53,15 @@ extern unsigned int svcrdma_ord;
103270 extern unsigned int svcrdma_max_requests;
103271 extern unsigned int svcrdma_max_req_size;
103272
103273 -extern atomic_t rdma_stat_recv;
103274 -extern atomic_t rdma_stat_read;
103275 -extern atomic_t rdma_stat_write;
103276 -extern atomic_t rdma_stat_sq_starve;
103277 -extern atomic_t rdma_stat_rq_starve;
103278 -extern atomic_t rdma_stat_rq_poll;
103279 -extern atomic_t rdma_stat_rq_prod;
103280 -extern atomic_t rdma_stat_sq_poll;
103281 -extern atomic_t rdma_stat_sq_prod;
103282 +extern atomic_unchecked_t rdma_stat_recv;
103283 +extern atomic_unchecked_t rdma_stat_read;
103284 +extern atomic_unchecked_t rdma_stat_write;
103285 +extern atomic_unchecked_t rdma_stat_sq_starve;
103286 +extern atomic_unchecked_t rdma_stat_rq_starve;
103287 +extern atomic_unchecked_t rdma_stat_rq_poll;
103288 +extern atomic_unchecked_t rdma_stat_rq_prod;
103289 +extern atomic_unchecked_t rdma_stat_sq_poll;
103290 +extern atomic_unchecked_t rdma_stat_sq_prod;
103291
103292 /*
103293 * Contexts are built when an RDMA request is created and are a
103294 diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
103295 index 8d71d65..f79586e 100644
103296 --- a/include/linux/sunrpc/svcauth.h
103297 +++ b/include/linux/sunrpc/svcauth.h
103298 @@ -120,7 +120,7 @@ struct auth_ops {
103299 int (*release)(struct svc_rqst *rq);
103300 void (*domain_release)(struct auth_domain *);
103301 int (*set_client)(struct svc_rqst *rq);
103302 -};
103303 +} __do_const;
103304
103305 #define SVC_GARBAGE 1
103306 #define SVC_SYSERR 2
103307 diff --git a/include/linux/swapops.h b/include/linux/swapops.h
103308 index 5c3a5f3..84a8bef 100644
103309 --- a/include/linux/swapops.h
103310 +++ b/include/linux/swapops.h
103311 @@ -165,7 +165,7 @@ static inline int is_write_migration_entry(swp_entry_t entry)
103312
103313 #ifdef CONFIG_MEMORY_FAILURE
103314
103315 -extern atomic_long_t num_poisoned_pages __read_mostly;
103316 +extern atomic_long_unchecked_t num_poisoned_pages __read_mostly;
103317
103318 /*
103319 * Support for hardware poisoned pages
103320 @@ -188,22 +188,22 @@ static inline bool test_set_page_hwpoison(struct page *page)
103321
103322 static inline void num_poisoned_pages_inc(void)
103323 {
103324 - atomic_long_inc(&num_poisoned_pages);
103325 + atomic_long_inc_unchecked(&num_poisoned_pages);
103326 }
103327
103328 static inline void num_poisoned_pages_dec(void)
103329 {
103330 - atomic_long_dec(&num_poisoned_pages);
103331 + atomic_long_dec_unchecked(&num_poisoned_pages);
103332 }
103333
103334 static inline void num_poisoned_pages_add(long num)
103335 {
103336 - atomic_long_add(num, &num_poisoned_pages);
103337 + atomic_long_add_unchecked(num, &num_poisoned_pages);
103338 }
103339
103340 static inline void num_poisoned_pages_sub(long num)
103341 {
103342 - atomic_long_sub(num, &num_poisoned_pages);
103343 + atomic_long_sub_unchecked(num, &num_poisoned_pages);
103344 }
103345 #else
103346
103347 diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
103348 index e7a018e..49f8b17 100644
103349 --- a/include/linux/swiotlb.h
103350 +++ b/include/linux/swiotlb.h
103351 @@ -60,7 +60,8 @@ extern void
103352
103353 extern void
103354 swiotlb_free_coherent(struct device *hwdev, size_t size,
103355 - void *vaddr, dma_addr_t dma_handle);
103356 + void *vaddr, dma_addr_t dma_handle,
103357 + struct dma_attrs *attrs);
103358
103359 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
103360 unsigned long offset, size_t size,
103361 diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
103362 index a460e2e..de02ef1 100644
103363 --- a/include/linux/syscalls.h
103364 +++ b/include/linux/syscalls.h
103365 @@ -102,7 +102,12 @@ union bpf_attr;
103366 #define __TYPE_IS_L(t) (__same_type((t)0, 0L))
103367 #define __TYPE_IS_UL(t) (__same_type((t)0, 0UL))
103368 #define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL))
103369 -#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a
103370 +#define __SC_LONG(t, a) __typeof__( \
103371 + __builtin_choose_expr( \
103372 + sizeof(t) > sizeof(int), \
103373 + (t) 0, \
103374 + __builtin_choose_expr(__type_is_unsigned(t), 0UL, 0L) \
103375 + )) a
103376 #define __SC_CAST(t, a) (t) a
103377 #define __SC_ARGS(t, a) a
103378 #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long))
103379 @@ -384,11 +389,11 @@ asmlinkage long sys_sync(void);
103380 asmlinkage long sys_fsync(unsigned int fd);
103381 asmlinkage long sys_fdatasync(unsigned int fd);
103382 asmlinkage long sys_bdflush(int func, long data);
103383 -asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
103384 - char __user *type, unsigned long flags,
103385 +asmlinkage long sys_mount(const char __user *dev_name, const char __user *dir_name,
103386 + const char __user *type, unsigned long flags,
103387 void __user *data);
103388 -asmlinkage long sys_umount(char __user *name, int flags);
103389 -asmlinkage long sys_oldumount(char __user *name);
103390 +asmlinkage long sys_umount(const char __user *name, int flags);
103391 +asmlinkage long sys_oldumount(const char __user *name);
103392 asmlinkage long sys_truncate(const char __user *path, long length);
103393 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
103394 asmlinkage long sys_stat(const char __user *filename,
103395 @@ -604,7 +609,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
103396 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
103397 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
103398 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
103399 - struct sockaddr __user *, int);
103400 + struct sockaddr __user *, int) __intentional_overflow(0);
103401 asmlinkage long sys_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags);
103402 asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
103403 unsigned int vlen, unsigned flags);
103404 @@ -663,10 +668,10 @@ asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
103405
103406 asmlinkage long sys_semget(key_t key, int nsems, int semflg);
103407 asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
103408 - unsigned nsops);
103409 + long nsops);
103410 asmlinkage long sys_semctl(int semid, int semnum, int cmd, unsigned long arg);
103411 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
103412 - unsigned nsops,
103413 + long nsops,
103414 const struct timespec __user *timeout);
103415 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
103416 asmlinkage long sys_shmget(key_t key, size_t size, int flag);
103417 @@ -879,7 +884,7 @@ asmlinkage long sys_seccomp(unsigned int op, unsigned int flags,
103418 const char __user *uargs);
103419 asmlinkage long sys_getrandom(char __user *buf, size_t count,
103420 unsigned int flags);
103421 -asmlinkage long sys_bpf(int cmd, union bpf_attr *attr, unsigned int size);
103422 +asmlinkage long sys_bpf(int cmd, union bpf_attr __user *attr, unsigned int size);
103423
103424 asmlinkage long sys_execveat(int dfd, const char __user *filename,
103425 const char __user *const __user *argv,
103426 diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h
103427 index 27b3b0b..e093dd9 100644
103428 --- a/include/linux/syscore_ops.h
103429 +++ b/include/linux/syscore_ops.h
103430 @@ -16,7 +16,7 @@ struct syscore_ops {
103431 int (*suspend)(void);
103432 void (*resume)(void);
103433 void (*shutdown)(void);
103434 -};
103435 +} __do_const;
103436
103437 extern void register_syscore_ops(struct syscore_ops *ops);
103438 extern void unregister_syscore_ops(struct syscore_ops *ops);
103439 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
103440 index fa7bc29..0d96561 100644
103441 --- a/include/linux/sysctl.h
103442 +++ b/include/linux/sysctl.h
103443 @@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
103444
103445 extern int proc_dostring(struct ctl_table *, int,
103446 void __user *, size_t *, loff_t *);
103447 +extern int proc_dostring_modpriv(struct ctl_table *, int,
103448 + void __user *, size_t *, loff_t *);
103449 extern int proc_dointvec(struct ctl_table *, int,
103450 void __user *, size_t *, loff_t *);
103451 +extern int proc_dointvec_secure(struct ctl_table *, int,
103452 + void __user *, size_t *, loff_t *);
103453 extern int proc_dointvec_minmax(struct ctl_table *, int,
103454 void __user *, size_t *, loff_t *);
103455 +extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
103456 + void __user *, size_t *, loff_t *);
103457 extern int proc_dointvec_jiffies(struct ctl_table *, int,
103458 void __user *, size_t *, loff_t *);
103459 extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
103460 @@ -113,7 +119,8 @@ struct ctl_table
103461 struct ctl_table_poll *poll;
103462 void *extra1;
103463 void *extra2;
103464 -};
103465 +} __do_const __randomize_layout;
103466 +typedef struct ctl_table __no_const ctl_table_no_const;
103467
103468 struct ctl_node {
103469 struct rb_node node;
103470 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
103471 index 9f65758..487a6f1 100644
103472 --- a/include/linux/sysfs.h
103473 +++ b/include/linux/sysfs.h
103474 @@ -34,7 +34,8 @@ struct attribute {
103475 struct lock_class_key *key;
103476 struct lock_class_key skey;
103477 #endif
103478 -};
103479 +} __do_const;
103480 +typedef struct attribute __no_const attribute_no_const;
103481
103482 /**
103483 * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
103484 @@ -78,7 +79,8 @@ struct attribute_group {
103485 struct attribute *, int);
103486 struct attribute **attrs;
103487 struct bin_attribute **bin_attrs;
103488 -};
103489 +} __do_const;
103490 +typedef struct attribute_group __no_const attribute_group_no_const;
103491
103492 /**
103493 * Use these macros to make defining attributes easier. See include/linux/device.h
103494 @@ -152,7 +154,8 @@ struct bin_attribute {
103495 char *, loff_t, size_t);
103496 int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
103497 struct vm_area_struct *vma);
103498 -};
103499 +} __do_const;
103500 +typedef struct bin_attribute __no_const bin_attribute_no_const;
103501
103502 /**
103503 * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
103504 diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
103505 index 387fa7d..3fcde6b 100644
103506 --- a/include/linux/sysrq.h
103507 +++ b/include/linux/sysrq.h
103508 @@ -16,6 +16,7 @@
103509
103510 #include <linux/errno.h>
103511 #include <linux/types.h>
103512 +#include <linux/compiler.h>
103513
103514 /* Possible values of bitmask for enabling sysrq functions */
103515 /* 0x0001 is reserved for enable everything */
103516 @@ -33,7 +34,7 @@ struct sysrq_key_op {
103517 char *help_msg;
103518 char *action_msg;
103519 int enable_mask;
103520 -};
103521 +} __do_const;
103522
103523 #ifdef CONFIG_MAGIC_SYSRQ
103524
103525 diff --git a/include/linux/tcp.h b/include/linux/tcp.h
103526 index 48c3696..e7a7ba6 100644
103527 --- a/include/linux/tcp.h
103528 +++ b/include/linux/tcp.h
103529 @@ -63,13 +63,13 @@ struct tcp_fastopen_cookie {
103530
103531 /* This defines a selective acknowledgement block. */
103532 struct tcp_sack_block_wire {
103533 - __be32 start_seq;
103534 - __be32 end_seq;
103535 + __be32 start_seq __intentional_overflow(-1);
103536 + __be32 end_seq __intentional_overflow(-1);
103537 };
103538
103539 struct tcp_sack_block {
103540 - u32 start_seq;
103541 - u32 end_seq;
103542 + u32 start_seq __intentional_overflow(-1);
103543 + u32 end_seq __intentional_overflow(-1);
103544 };
103545
103546 /*These are used to set the sack_ok field in struct tcp_options_received */
103547 @@ -153,7 +153,7 @@ struct tcp_sock {
103548 * total number of segments in.
103549 */
103550 u32 rcv_nxt; /* What we want to receive next */
103551 - u32 copied_seq; /* Head of yet unread data */
103552 + u32 copied_seq __intentional_overflow(-1); /* Head of yet unread data */
103553 u32 rcv_wup; /* rcv_nxt on last window update sent */
103554 u32 snd_nxt; /* Next sequence we send */
103555 u32 segs_out; /* RFC4898 tcpEStatsPerfSegsOut
103556 @@ -248,7 +248,7 @@ struct tcp_sock {
103557 u32 prr_out; /* Total number of pkts sent during Recovery. */
103558
103559 u32 rcv_wnd; /* Current receiver window */
103560 - u32 write_seq; /* Tail(+1) of data held in tcp send buffer */
103561 + u32 write_seq __intentional_overflow(-1); /* Tail(+1) of data held in tcp send buffer */
103562 u32 notsent_lowat; /* TCP_NOTSENT_LOWAT */
103563 u32 pushed_seq; /* Last pushed seq, required to talk to windows */
103564 u32 lost_out; /* Lost packets */
103565 @@ -291,7 +291,7 @@ struct tcp_sock {
103566 int undo_retrans; /* number of undoable retransmissions. */
103567 u32 total_retrans; /* Total retransmits for entire connection */
103568
103569 - u32 urg_seq; /* Seq of received urgent pointer */
103570 + u32 urg_seq __intentional_overflow(-1); /* Seq of received urgent pointer */
103571 unsigned int keepalive_time; /* time before keep alive takes place */
103572 unsigned int keepalive_intvl; /* time interval between keep alive probes */
103573
103574 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
103575 index ff307b5..f1a4468 100644
103576 --- a/include/linux/thread_info.h
103577 +++ b/include/linux/thread_info.h
103578 @@ -145,6 +145,13 @@ static inline bool test_and_clear_restore_sigmask(void)
103579 #error "no set_restore_sigmask() provided and default one won't work"
103580 #endif
103581
103582 +extern void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size);
103583 +
103584 +static inline void check_object_size(const void *ptr, unsigned long n, bool to_user)
103585 +{
103586 + __check_object_size(ptr, n, to_user, __builtin_constant_p(n));
103587 +}
103588 +
103589 #endif /* __KERNEL__ */
103590
103591 #endif /* _LINUX_THREAD_INFO_H */
103592 diff --git a/include/linux/tty.h b/include/linux/tty.h
103593 index 9bddda0..c0459e6 100644
103594 --- a/include/linux/tty.h
103595 +++ b/include/linux/tty.h
103596 @@ -225,7 +225,7 @@ struct tty_port {
103597 const struct tty_port_operations *ops; /* Port operations */
103598 spinlock_t lock; /* Lock protecting tty field */
103599 int blocked_open; /* Waiting to open */
103600 - int count; /* Usage count */
103601 + atomic_t count; /* Usage count */
103602 wait_queue_head_t open_wait; /* Open waiters */
103603 wait_queue_head_t close_wait; /* Close waiters */
103604 wait_queue_head_t delta_msr_wait; /* Modem status change */
103605 @@ -313,7 +313,7 @@ struct tty_struct {
103606 /* If the tty has a pending do_SAK, queue it here - akpm */
103607 struct work_struct SAK_work;
103608 struct tty_port *port;
103609 -};
103610 +} __randomize_layout;
103611
103612 /* Each of a tty's open files has private_data pointing to tty_file_private */
103613 struct tty_file_private {
103614 @@ -573,7 +573,7 @@ extern int tty_port_open(struct tty_port *port,
103615 struct tty_struct *tty, struct file *filp);
103616 static inline int tty_port_users(struct tty_port *port)
103617 {
103618 - return port->count + port->blocked_open;
103619 + return atomic_read(&port->count) + port->blocked_open;
103620 }
103621
103622 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
103623 diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
103624 index 1610524..331e7c8 100644
103625 --- a/include/linux/tty_driver.h
103626 +++ b/include/linux/tty_driver.h
103627 @@ -291,7 +291,7 @@ struct tty_operations {
103628 void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
103629 #endif
103630 const struct file_operations *proc_fops;
103631 -};
103632 +} __do_const __randomize_layout;
103633
103634 struct tty_driver {
103635 int magic; /* magic number for this structure */
103636 @@ -325,7 +325,7 @@ struct tty_driver {
103637
103638 const struct tty_operations *ops;
103639 struct list_head tty_drivers;
103640 -};
103641 +} __randomize_layout;
103642
103643 extern struct list_head tty_drivers;
103644
103645 diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
103646 index 00c9d68..bc0188b 100644
103647 --- a/include/linux/tty_ldisc.h
103648 +++ b/include/linux/tty_ldisc.h
103649 @@ -215,7 +215,7 @@ struct tty_ldisc_ops {
103650
103651 struct module *owner;
103652
103653 - int refcount;
103654 + atomic_t refcount;
103655 };
103656
103657 struct tty_ldisc {
103658 diff --git a/include/linux/types.h b/include/linux/types.h
103659 index c314989..4e6e3a4 100644
103660 --- a/include/linux/types.h
103661 +++ b/include/linux/types.h
103662 @@ -176,10 +176,26 @@ typedef struct {
103663 int counter;
103664 } atomic_t;
103665
103666 +#ifdef CONFIG_PAX_REFCOUNT
103667 +typedef struct {
103668 + int counter;
103669 +} atomic_unchecked_t;
103670 +#else
103671 +typedef atomic_t atomic_unchecked_t;
103672 +#endif
103673 +
103674 #ifdef CONFIG_64BIT
103675 typedef struct {
103676 long counter;
103677 } atomic64_t;
103678 +
103679 +#ifdef CONFIG_PAX_REFCOUNT
103680 +typedef struct {
103681 + long counter;
103682 +} atomic64_unchecked_t;
103683 +#else
103684 +typedef atomic64_t atomic64_unchecked_t;
103685 +#endif
103686 #endif
103687
103688 struct list_head {
103689 diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
103690 index d6f2c2c..dc72aff 100644
103691 --- a/include/linux/uaccess.h
103692 +++ b/include/linux/uaccess.h
103693 @@ -97,11 +97,11 @@ static inline unsigned long __copy_from_user_nocache(void *to,
103694 long ret; \
103695 mm_segment_t old_fs = get_fs(); \
103696 \
103697 - set_fs(KERNEL_DS); \
103698 pagefault_disable(); \
103699 - ret = __copy_from_user_inatomic(&(retval), (__force typeof(retval) __user *)(addr), sizeof(retval)); \
103700 - pagefault_enable(); \
103701 + set_fs(KERNEL_DS); \
103702 + ret = __copy_from_user_inatomic(&(retval), (typeof(retval) __force_user *)(addr), sizeof(retval)); \
103703 set_fs(old_fs); \
103704 + pagefault_enable(); \
103705 ret; \
103706 })
103707
103708 diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
103709 index 0383552..a0125dd 100644
103710 --- a/include/linux/uidgid.h
103711 +++ b/include/linux/uidgid.h
103712 @@ -187,4 +187,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
103713
103714 #endif /* CONFIG_USER_NS */
103715
103716 +#define GR_GLOBAL_UID(x) from_kuid_munged(&init_user_ns, (x))
103717 +#define GR_GLOBAL_GID(x) from_kgid_munged(&init_user_ns, (x))
103718 +#define gr_is_global_root(x) uid_eq((x), GLOBAL_ROOT_UID)
103719 +#define gr_is_global_nonroot(x) (!uid_eq((x), GLOBAL_ROOT_UID))
103720 +
103721 #endif /* _LINUX_UIDGID_H */
103722 diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
103723 index 32c0e83..671eb35 100644
103724 --- a/include/linux/uio_driver.h
103725 +++ b/include/linux/uio_driver.h
103726 @@ -67,7 +67,7 @@ struct uio_device {
103727 struct module *owner;
103728 struct device *dev;
103729 int minor;
103730 - atomic_t event;
103731 + atomic_unchecked_t event;
103732 struct fasync_struct *async_queue;
103733 wait_queue_head_t wait;
103734 struct uio_info *info;
103735 diff --git a/include/linux/unaligned/access_ok.h b/include/linux/unaligned/access_ok.h
103736 index 99c1b4d..562e6f3 100644
103737 --- a/include/linux/unaligned/access_ok.h
103738 +++ b/include/linux/unaligned/access_ok.h
103739 @@ -4,34 +4,34 @@
103740 #include <linux/kernel.h>
103741 #include <asm/byteorder.h>
103742
103743 -static inline u16 get_unaligned_le16(const void *p)
103744 +static inline u16 __intentional_overflow(-1) get_unaligned_le16(const void *p)
103745 {
103746 - return le16_to_cpup((__le16 *)p);
103747 + return le16_to_cpup((const __le16 *)p);
103748 }
103749
103750 -static inline u32 get_unaligned_le32(const void *p)
103751 +static inline u32 __intentional_overflow(-1) get_unaligned_le32(const void *p)
103752 {
103753 - return le32_to_cpup((__le32 *)p);
103754 + return le32_to_cpup((const __le32 *)p);
103755 }
103756
103757 -static inline u64 get_unaligned_le64(const void *p)
103758 +static inline u64 __intentional_overflow(-1) get_unaligned_le64(const void *p)
103759 {
103760 - return le64_to_cpup((__le64 *)p);
103761 + return le64_to_cpup((const __le64 *)p);
103762 }
103763
103764 -static inline u16 get_unaligned_be16(const void *p)
103765 +static inline u16 __intentional_overflow(-1) get_unaligned_be16(const void *p)
103766 {
103767 - return be16_to_cpup((__be16 *)p);
103768 + return be16_to_cpup((const __be16 *)p);
103769 }
103770
103771 -static inline u32 get_unaligned_be32(const void *p)
103772 +static inline u32 __intentional_overflow(-1) get_unaligned_be32(const void *p)
103773 {
103774 - return be32_to_cpup((__be32 *)p);
103775 + return be32_to_cpup((const __be32 *)p);
103776 }
103777
103778 -static inline u64 get_unaligned_be64(const void *p)
103779 +static inline u64 __intentional_overflow(-1) get_unaligned_be64(const void *p)
103780 {
103781 - return be64_to_cpup((__be64 *)p);
103782 + return be64_to_cpup((const __be64 *)p);
103783 }
103784
103785 static inline void put_unaligned_le16(u16 val, void *p)
103786 diff --git a/include/linux/usb.h b/include/linux/usb.h
103787 index 447fe29..07a9cf0 100644
103788 --- a/include/linux/usb.h
103789 +++ b/include/linux/usb.h
103790 @@ -363,7 +363,7 @@ struct usb_bus {
103791 * with the URB_SHORT_NOT_OK flag set.
103792 */
103793 unsigned no_sg_constraint:1; /* no sg constraint */
103794 - unsigned sg_tablesize; /* 0 or largest number of sg list entries */
103795 + unsigned short sg_tablesize; /* 0 or largest number of sg list entries */
103796
103797 int devnum_next; /* Next open device number in
103798 * round-robin allocation */
103799 @@ -592,7 +592,7 @@ struct usb_device {
103800 int maxchild;
103801
103802 u32 quirks;
103803 - atomic_t urbnum;
103804 + atomic_unchecked_t urbnum;
103805
103806 unsigned long active_duration;
103807
103808 @@ -1785,10 +1785,10 @@ void usb_sg_wait(struct usb_sg_request *io);
103809
103810 /* NOTE: these are not the standard USB_ENDPOINT_XFER_* values!! */
103811 /* (yet ... they're the values used by usbfs) */
103812 -#define PIPE_ISOCHRONOUS 0
103813 -#define PIPE_INTERRUPT 1
103814 -#define PIPE_CONTROL 2
103815 -#define PIPE_BULK 3
103816 +#define PIPE_ISOCHRONOUS 0U
103817 +#define PIPE_INTERRUPT 1U
103818 +#define PIPE_CONTROL 2U
103819 +#define PIPE_BULK 3U
103820
103821 #define usb_pipein(pipe) ((pipe) & USB_DIR_IN)
103822 #define usb_pipeout(pipe) (!usb_pipein(pipe))
103823 diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
103824 index d2784c1..449a8d7 100644
103825 --- a/include/linux/usb/hcd.h
103826 +++ b/include/linux/usb/hcd.h
103827 @@ -23,6 +23,7 @@
103828
103829 #include <linux/rwsem.h>
103830 #include <linux/interrupt.h>
103831 +#include <scsi/scsi_host.h>
103832
103833 #define MAX_TOPO_LEVEL 6
103834
103835 diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
103836 index bfb7472..b308c8d 100644
103837 --- a/include/linux/usb/renesas_usbhs.h
103838 +++ b/include/linux/usb/renesas_usbhs.h
103839 @@ -39,7 +39,7 @@ enum {
103840 */
103841 struct renesas_usbhs_driver_callback {
103842 int (*notify_hotplug)(struct platform_device *pdev);
103843 -};
103844 +} __no_const;
103845
103846 /*
103847 * callback functions for platform
103848 diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
103849 index 8297e5b..0dfae27 100644
103850 --- a/include/linux/user_namespace.h
103851 +++ b/include/linux/user_namespace.h
103852 @@ -39,7 +39,7 @@ struct user_namespace {
103853 struct key *persistent_keyring_register;
103854 struct rw_semaphore persistent_keyring_register_sem;
103855 #endif
103856 -};
103857 +} __randomize_layout;
103858
103859 extern struct user_namespace init_user_ns;
103860
103861 diff --git a/include/linux/utsname.h b/include/linux/utsname.h
103862 index 5093f58..c103e58 100644
103863 --- a/include/linux/utsname.h
103864 +++ b/include/linux/utsname.h
103865 @@ -25,7 +25,7 @@ struct uts_namespace {
103866 struct new_utsname name;
103867 struct user_namespace *user_ns;
103868 struct ns_common ns;
103869 -};
103870 +} __randomize_layout;
103871 extern struct uts_namespace init_uts_ns;
103872
103873 #ifdef CONFIG_UTS_NS
103874 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
103875 index 6f8fbcf..4efc177 100644
103876 --- a/include/linux/vermagic.h
103877 +++ b/include/linux/vermagic.h
103878 @@ -25,9 +25,42 @@
103879 #define MODULE_ARCH_VERMAGIC ""
103880 #endif
103881
103882 +#ifdef CONFIG_PAX_REFCOUNT
103883 +#define MODULE_PAX_REFCOUNT "REFCOUNT "
103884 +#else
103885 +#define MODULE_PAX_REFCOUNT ""
103886 +#endif
103887 +
103888 +#ifdef CONSTIFY_PLUGIN
103889 +#define MODULE_CONSTIFY_PLUGIN "CONSTIFY_PLUGIN "
103890 +#else
103891 +#define MODULE_CONSTIFY_PLUGIN ""
103892 +#endif
103893 +
103894 +#ifdef STACKLEAK_PLUGIN
103895 +#define MODULE_STACKLEAK_PLUGIN "STACKLEAK_PLUGIN "
103896 +#else
103897 +#define MODULE_STACKLEAK_PLUGIN ""
103898 +#endif
103899 +
103900 +#ifdef RANDSTRUCT_PLUGIN
103901 +#include <generated/randomize_layout_hash.h>
103902 +#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
103903 +#else
103904 +#define MODULE_RANDSTRUCT_PLUGIN
103905 +#endif
103906 +
103907 +#ifdef CONFIG_GRKERNSEC
103908 +#define MODULE_GRSEC "GRSEC "
103909 +#else
103910 +#define MODULE_GRSEC ""
103911 +#endif
103912 +
103913 #define VERMAGIC_STRING \
103914 UTS_RELEASE " " \
103915 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
103916 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
103917 - MODULE_ARCH_VERMAGIC
103918 + MODULE_ARCH_VERMAGIC \
103919 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
103920 + MODULE_GRSEC MODULE_RANDSTRUCT_PLUGIN
103921
103922 diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
103923 index b483abd..af305ad 100644
103924 --- a/include/linux/vga_switcheroo.h
103925 +++ b/include/linux/vga_switcheroo.h
103926 @@ -63,9 +63,9 @@ int vga_switcheroo_get_client_state(struct pci_dev *dev);
103927
103928 void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
103929
103930 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
103931 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain);
103932 void vga_switcheroo_fini_domain_pm_ops(struct device *dev);
103933 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
103934 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain);
103935 #else
103936
103937 static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
103938 @@ -82,9 +82,9 @@ static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return
103939
103940 static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
103941
103942 -static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103943 +static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103944 static inline void vga_switcheroo_fini_domain_pm_ops(struct device *dev) {}
103945 -static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103946 +static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103947
103948 #endif
103949 #endif /* _LINUX_VGA_SWITCHEROO_H_ */
103950 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
103951 index 0ec5983..66d8171 100644
103952 --- a/include/linux/vmalloc.h
103953 +++ b/include/linux/vmalloc.h
103954 @@ -18,6 +18,14 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
103955 #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */
103956 #define VM_NO_GUARD 0x00000040 /* don't add guard page */
103957 #define VM_KASAN 0x00000080 /* has allocated kasan shadow memory */
103958 +
103959 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
103960 +#define VM_KERNEXEC 0x00000100 /* allocate from executable kernel memory range */
103961 +#endif
103962 +
103963 +#define VM_USERCOPY 0x00000200 /* allocation intended for copies to userland */
103964 +
103965 +
103966 /* bits [20..32] reserved for arch specific ioremap internals */
103967
103968 /*
103969 @@ -67,6 +75,7 @@ static inline void vmalloc_init(void)
103970 #endif
103971
103972 extern void *vmalloc(unsigned long size);
103973 +extern void *vmalloc_usercopy(unsigned long size);
103974 extern void *vzalloc(unsigned long size);
103975 extern void *vmalloc_user(unsigned long size);
103976 extern void *vmalloc_node(unsigned long size, int node);
103977 @@ -86,6 +95,10 @@ extern void *vmap(struct page **pages, unsigned int count,
103978 unsigned long flags, pgprot_t prot);
103979 extern void vunmap(const void *addr);
103980
103981 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
103982 +extern void unmap_process_stacks(struct task_struct *task);
103983 +#endif
103984 +
103985 extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
103986 unsigned long uaddr, void *kaddr,
103987 unsigned long size);
103988 @@ -150,7 +163,7 @@ extern void free_vm_area(struct vm_struct *area);
103989
103990 /* for /dev/kmem */
103991 extern long vread(char *buf, char *addr, unsigned long count);
103992 -extern long vwrite(char *buf, char *addr, unsigned long count);
103993 +extern long vwrite(char *buf, char *addr, unsigned long count) __size_overflow(3);
103994
103995 /*
103996 * Internals. Dont't use..
103997 @@ -182,22 +195,10 @@ pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
103998 # endif
103999 #endif
104000
104001 -struct vmalloc_info {
104002 - unsigned long used;
104003 - unsigned long largest_chunk;
104004 -};
104005 -
104006 #ifdef CONFIG_MMU
104007 #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
104008 -extern void get_vmalloc_info(struct vmalloc_info *vmi);
104009 #else
104010 -
104011 #define VMALLOC_TOTAL 0UL
104012 -#define get_vmalloc_info(vmi) \
104013 -do { \
104014 - (vmi)->used = 0; \
104015 - (vmi)->largest_chunk = 0; \
104016 -} while (0)
104017 #endif
104018
104019 #endif /* _LINUX_VMALLOC_H */
104020 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
104021 index 82e7db7..f8ce3d0 100644
104022 --- a/include/linux/vmstat.h
104023 +++ b/include/linux/vmstat.h
104024 @@ -108,18 +108,18 @@ static inline void vm_events_fold_cpu(int cpu)
104025 /*
104026 * Zone based page accounting with per cpu differentials.
104027 */
104028 -extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
104029 +extern atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
104030
104031 static inline void zone_page_state_add(long x, struct zone *zone,
104032 enum zone_stat_item item)
104033 {
104034 - atomic_long_add(x, &zone->vm_stat[item]);
104035 - atomic_long_add(x, &vm_stat[item]);
104036 + atomic_long_add_unchecked(x, &zone->vm_stat[item]);
104037 + atomic_long_add_unchecked(x, &vm_stat[item]);
104038 }
104039
104040 -static inline unsigned long global_page_state(enum zone_stat_item item)
104041 +static inline unsigned long __intentional_overflow(-1) global_page_state(enum zone_stat_item item)
104042 {
104043 - long x = atomic_long_read(&vm_stat[item]);
104044 + long x = atomic_long_read_unchecked(&vm_stat[item]);
104045 #ifdef CONFIG_SMP
104046 if (x < 0)
104047 x = 0;
104048 @@ -127,10 +127,10 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
104049 return x;
104050 }
104051
104052 -static inline unsigned long zone_page_state(struct zone *zone,
104053 +static inline unsigned long __intentional_overflow(-1) zone_page_state(struct zone *zone,
104054 enum zone_stat_item item)
104055 {
104056 - long x = atomic_long_read(&zone->vm_stat[item]);
104057 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
104058 #ifdef CONFIG_SMP
104059 if (x < 0)
104060 x = 0;
104061 @@ -147,7 +147,7 @@ static inline unsigned long zone_page_state(struct zone *zone,
104062 static inline unsigned long zone_page_state_snapshot(struct zone *zone,
104063 enum zone_stat_item item)
104064 {
104065 - long x = atomic_long_read(&zone->vm_stat[item]);
104066 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
104067
104068 #ifdef CONFIG_SMP
104069 int cpu;
104070 @@ -234,14 +234,14 @@ static inline void __mod_zone_page_state(struct zone *zone,
104071
104072 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
104073 {
104074 - atomic_long_inc(&zone->vm_stat[item]);
104075 - atomic_long_inc(&vm_stat[item]);
104076 + atomic_long_inc_unchecked(&zone->vm_stat[item]);
104077 + atomic_long_inc_unchecked(&vm_stat[item]);
104078 }
104079
104080 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
104081 {
104082 - atomic_long_dec(&zone->vm_stat[item]);
104083 - atomic_long_dec(&vm_stat[item]);
104084 + atomic_long_dec_unchecked(&zone->vm_stat[item]);
104085 + atomic_long_dec_unchecked(&vm_stat[item]);
104086 }
104087
104088 static inline void __inc_zone_page_state(struct page *page,
104089 diff --git a/include/linux/writeback.h b/include/linux/writeback.h
104090 index b333c94..6b59f39 100644
104091 --- a/include/linux/writeback.h
104092 +++ b/include/linux/writeback.h
104093 @@ -277,8 +277,9 @@ static inline void inode_detach_wb(struct inode *inode)
104094 }
104095
104096 static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
104097 + struct inode *inode) __releases(&inode->i_lock);
104098 +static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
104099 struct inode *inode)
104100 - __releases(&inode->i_lock)
104101 {
104102 spin_unlock(&inode->i_lock);
104103 }
104104 diff --git a/include/linux/xattr.h b/include/linux/xattr.h
104105 index 91b0a68..0e9adf6 100644
104106 --- a/include/linux/xattr.h
104107 +++ b/include/linux/xattr.h
104108 @@ -28,7 +28,7 @@ struct xattr_handler {
104109 size_t size, int handler_flags);
104110 int (*set)(struct dentry *dentry, const char *name, const void *buffer,
104111 size_t size, int flags, int handler_flags);
104112 -};
104113 +} __do_const;
104114
104115 struct xattr {
104116 const char *name;
104117 @@ -37,6 +37,9 @@ struct xattr {
104118 };
104119
104120 ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
104121 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
104122 +ssize_t pax_getxattr(struct dentry *, void *, size_t);
104123 +#endif
104124 ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
104125 ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
104126 int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
104127 diff --git a/include/linux/zlib.h b/include/linux/zlib.h
104128 index 92dbbd3..13ab0b3 100644
104129 --- a/include/linux/zlib.h
104130 +++ b/include/linux/zlib.h
104131 @@ -31,6 +31,7 @@
104132 #define _ZLIB_H
104133
104134 #include <linux/zconf.h>
104135 +#include <linux/compiler.h>
104136
104137 /* zlib deflate based on ZLIB_VERSION "1.1.3" */
104138 /* zlib inflate based on ZLIB_VERSION "1.2.3" */
104139 @@ -179,7 +180,7 @@ typedef z_stream *z_streamp;
104140
104141 /* basic functions */
104142
104143 -extern int zlib_deflate_workspacesize (int windowBits, int memLevel);
104144 +extern int zlib_deflate_workspacesize (int windowBits, int memLevel) __intentional_overflow(0);
104145 /*
104146 Returns the number of bytes that needs to be allocated for a per-
104147 stream workspace with the specified parameters. A pointer to this
104148 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
104149 index acbcd2f..c3abe84 100644
104150 --- a/include/media/v4l2-dev.h
104151 +++ b/include/media/v4l2-dev.h
104152 @@ -74,7 +74,7 @@ struct v4l2_file_operations {
104153 int (*mmap) (struct file *, struct vm_area_struct *);
104154 int (*open) (struct file *);
104155 int (*release) (struct file *);
104156 -};
104157 +} __do_const;
104158
104159 /*
104160 * Newer version of video_device, handled by videodev2.c
104161 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
104162 index 9c58157..d86ebf5 100644
104163 --- a/include/media/v4l2-device.h
104164 +++ b/include/media/v4l2-device.h
104165 @@ -93,7 +93,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
104166 this function returns 0. If the name ends with a digit (e.g. cx18),
104167 then the name will be set to cx18-0 since cx180 looks really odd. */
104168 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
104169 - atomic_t *instance);
104170 + atomic_unchecked_t *instance);
104171
104172 /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
104173 Since the parent disappears this ensures that v4l2_dev doesn't have an
104174 diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
104175 index 5122b5e..598b440 100644
104176 --- a/include/net/9p/transport.h
104177 +++ b/include/net/9p/transport.h
104178 @@ -62,7 +62,7 @@ struct p9_trans_module {
104179 int (*cancelled)(struct p9_client *, struct p9_req_t *req);
104180 int (*zc_request)(struct p9_client *, struct p9_req_t *,
104181 struct iov_iter *, struct iov_iter *, int , int, int);
104182 -};
104183 +} __do_const;
104184
104185 void v9fs_register_trans(struct p9_trans_module *m);
104186 void v9fs_unregister_trans(struct p9_trans_module *m);
104187 diff --git a/include/net/af_unix.h b/include/net/af_unix.h
104188 index 2a91a05..127ac07 100644
104189 --- a/include/net/af_unix.h
104190 +++ b/include/net/af_unix.h
104191 @@ -36,7 +36,7 @@ struct unix_skb_parms {
104192 u32 secid; /* Security ID */
104193 #endif
104194 u32 consumed;
104195 -};
104196 +} __randomize_layout;
104197
104198 #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
104199
104200 diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
104201 index c98afc0..a4ca3c7 100644
104202 --- a/include/net/bluetooth/l2cap.h
104203 +++ b/include/net/bluetooth/l2cap.h
104204 @@ -611,7 +611,7 @@ struct l2cap_ops {
104205 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
104206 unsigned long hdr_len,
104207 unsigned long len, int nb);
104208 -};
104209 +} __do_const;
104210
104211 struct l2cap_conn {
104212 struct hci_conn *hcon;
104213 diff --git a/include/net/bonding.h b/include/net/bonding.h
104214 index c1740a2..ec57070 100644
104215 --- a/include/net/bonding.h
104216 +++ b/include/net/bonding.h
104217 @@ -668,7 +668,7 @@ extern struct rtnl_link_ops bond_link_ops;
104218
104219 static inline void bond_tx_drop(struct net_device *dev, struct sk_buff *skb)
104220 {
104221 - atomic_long_inc(&dev->tx_dropped);
104222 + atomic_long_inc_unchecked(&dev->tx_dropped);
104223 dev_kfree_skb_any(skb);
104224 }
104225
104226 diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
104227 index f2ae33d..c457cf0 100644
104228 --- a/include/net/caif/cfctrl.h
104229 +++ b/include/net/caif/cfctrl.h
104230 @@ -52,7 +52,7 @@ struct cfctrl_rsp {
104231 void (*radioset_rsp)(void);
104232 void (*reject_rsp)(struct cflayer *layer, u8 linkid,
104233 struct cflayer *client_layer);
104234 -};
104235 +} __no_const;
104236
104237 /* Link Setup Parameters for CAIF-Links. */
104238 struct cfctrl_link_param {
104239 @@ -101,8 +101,8 @@ struct cfctrl_request_info {
104240 struct cfctrl {
104241 struct cfsrvl serv;
104242 struct cfctrl_rsp res;
104243 - atomic_t req_seq_no;
104244 - atomic_t rsp_seq_no;
104245 + atomic_unchecked_t req_seq_no;
104246 + atomic_unchecked_t rsp_seq_no;
104247 struct list_head list;
104248 /* Protects from simultaneous access to first_req list */
104249 spinlock_t info_list_lock;
104250 diff --git a/include/net/dst.h b/include/net/dst.h
104251 index 9261d92..e7fa2e2 100644
104252 --- a/include/net/dst.h
104253 +++ b/include/net/dst.h
104254 @@ -322,6 +322,39 @@ static inline void skb_dst_force(struct sk_buff *skb)
104255 }
104256 }
104257
104258 +/**
104259 + * dst_hold_safe - Take a reference on a dst if possible
104260 + * @dst: pointer to dst entry
104261 + *
104262 + * This helper returns false if it could not safely
104263 + * take a reference on a dst.
104264 + */
104265 +static inline bool dst_hold_safe(struct dst_entry *dst)
104266 +{
104267 + if (dst->flags & DST_NOCACHE)
104268 + return atomic_inc_not_zero(&dst->__refcnt);
104269 + dst_hold(dst);
104270 + return true;
104271 +}
104272 +
104273 +/**
104274 + * skb_dst_force_safe - makes sure skb dst is refcounted
104275 + * @skb: buffer
104276 + *
104277 + * If dst is not yet refcounted and not destroyed, grab a ref on it.
104278 + */
104279 +static inline void skb_dst_force_safe(struct sk_buff *skb)
104280 +{
104281 + if (skb_dst_is_noref(skb)) {
104282 + struct dst_entry *dst = skb_dst(skb);
104283 +
104284 + if (!dst_hold_safe(dst))
104285 + dst = NULL;
104286 +
104287 + skb->_skb_refdst = (unsigned long)dst;
104288 + }
104289 +}
104290 +
104291
104292 /**
104293 * __skb_tunnel_rx - prepare skb for rx reinsert
104294 diff --git a/include/net/flow.h b/include/net/flow.h
104295 index 9b85db8..e76e5c7 100644
104296 --- a/include/net/flow.h
104297 +++ b/include/net/flow.h
104298 @@ -243,7 +243,7 @@ void flow_cache_fini(struct net *net);
104299
104300 void flow_cache_flush(struct net *net);
104301 void flow_cache_flush_deferred(struct net *net);
104302 -extern atomic_t flow_cache_genid;
104303 +extern atomic_unchecked_t flow_cache_genid;
104304
104305 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys);
104306
104307 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
104308 index a9af1cc..1f3fa7b 100644
104309 --- a/include/net/genetlink.h
104310 +++ b/include/net/genetlink.h
104311 @@ -128,7 +128,7 @@ struct genl_ops {
104312 u8 cmd;
104313 u8 internal_flags;
104314 u8 flags;
104315 -};
104316 +} __do_const;
104317
104318 int __genl_register_family(struct genl_family *family);
104319
104320 diff --git a/include/net/gro_cells.h b/include/net/gro_cells.h
104321 index cf6c745..8a0cf00 100644
104322 --- a/include/net/gro_cells.h
104323 +++ b/include/net/gro_cells.h
104324 @@ -27,7 +27,7 @@ static inline void gro_cells_receive(struct gro_cells *gcells, struct sk_buff *s
104325 cell = this_cpu_ptr(gcells->cells);
104326
104327 if (skb_queue_len(&cell->napi_skbs) > netdev_max_backlog) {
104328 - atomic_long_inc(&dev->rx_dropped);
104329 + atomic_long_inc_unchecked(&dev->rx_dropped);
104330 kfree_skb(skb);
104331 return;
104332 }
104333 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
104334 index 0320bbb..938789c 100644
104335 --- a/include/net/inet_connection_sock.h
104336 +++ b/include/net/inet_connection_sock.h
104337 @@ -63,7 +63,7 @@ struct inet_connection_sock_af_ops {
104338 int (*bind_conflict)(const struct sock *sk,
104339 const struct inet_bind_bucket *tb, bool relax);
104340 void (*mtu_reduced)(struct sock *sk);
104341 -};
104342 +} __do_const;
104343
104344 /** inet_connection_sock - INET connection oriented sock
104345 *
104346 diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
104347 index 47eb67b..0e733b2 100644
104348 --- a/include/net/inet_sock.h
104349 +++ b/include/net/inet_sock.h
104350 @@ -43,7 +43,7 @@
104351 struct ip_options {
104352 __be32 faddr;
104353 __be32 nexthop;
104354 - unsigned char optlen;
104355 + unsigned char optlen __intentional_overflow(0);
104356 unsigned char srr;
104357 unsigned char rr;
104358 unsigned char ts;
104359 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
104360 index 4a6009d..f7d9c53 100644
104361 --- a/include/net/inetpeer.h
104362 +++ b/include/net/inetpeer.h
104363 @@ -52,7 +52,7 @@ struct inet_peer {
104364 */
104365 union {
104366 struct {
104367 - atomic_t rid; /* Frag reception counter */
104368 + atomic_unchecked_t rid; /* Frag reception counter */
104369 };
104370 struct rcu_head rcu;
104371 struct inet_peer *gc_next;
104372 diff --git a/include/net/ip.h b/include/net/ip.h
104373 index 9b9ca28..9ccd468 100644
104374 --- a/include/net/ip.h
104375 +++ b/include/net/ip.h
104376 @@ -329,7 +329,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
104377 }
104378 }
104379
104380 -u32 ip_idents_reserve(u32 hash, int segs);
104381 +u32 ip_idents_reserve(u32 hash, int segs) __intentional_overflow(-1);
104382 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
104383
104384 static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb,
104385 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
104386 index 965fa5b..7ea8bfc 100644
104387 --- a/include/net/ip_fib.h
104388 +++ b/include/net/ip_fib.h
104389 @@ -173,7 +173,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
104390
104391 #define FIB_RES_SADDR(net, res) \
104392 ((FIB_RES_NH(res).nh_saddr_genid == \
104393 - atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
104394 + atomic_read_unchecked(&(net)->ipv4.dev_addr_genid)) ? \
104395 FIB_RES_NH(res).nh_saddr : \
104396 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
104397 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
104398 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
104399 index 9b9ca87..4e981a3 100644
104400 --- a/include/net/ip_vs.h
104401 +++ b/include/net/ip_vs.h
104402 @@ -551,7 +551,7 @@ struct ip_vs_conn {
104403 struct ip_vs_conn *control; /* Master control connection */
104404 atomic_t n_control; /* Number of controlled ones */
104405 struct ip_vs_dest *dest; /* real server */
104406 - atomic_t in_pkts; /* incoming packet counter */
104407 + atomic_unchecked_t in_pkts; /* incoming packet counter */
104408
104409 /* Packet transmitter for different forwarding methods. If it
104410 * mangles the packet, it must return NF_DROP or better NF_STOLEN,
104411 @@ -699,7 +699,7 @@ struct ip_vs_dest {
104412 __be16 port; /* port number of the server */
104413 union nf_inet_addr addr; /* IP address of the server */
104414 volatile unsigned int flags; /* dest status flags */
104415 - atomic_t conn_flags; /* flags to copy to conn */
104416 + atomic_unchecked_t conn_flags; /* flags to copy to conn */
104417 atomic_t weight; /* server weight */
104418
104419 atomic_t refcnt; /* reference counter */
104420 @@ -957,11 +957,11 @@ struct netns_ipvs {
104421 /* ip_vs_lblc */
104422 int sysctl_lblc_expiration;
104423 struct ctl_table_header *lblc_ctl_header;
104424 - struct ctl_table *lblc_ctl_table;
104425 + ctl_table_no_const *lblc_ctl_table;
104426 /* ip_vs_lblcr */
104427 int sysctl_lblcr_expiration;
104428 struct ctl_table_header *lblcr_ctl_header;
104429 - struct ctl_table *lblcr_ctl_table;
104430 + ctl_table_no_const *lblcr_ctl_table;
104431 /* ip_vs_est */
104432 struct list_head est_list; /* estimator list */
104433 spinlock_t est_lock;
104434 diff --git a/include/net/ipv6.h b/include/net/ipv6.h
104435 index b14e158..2de13df 100644
104436 --- a/include/net/ipv6.h
104437 +++ b/include/net/ipv6.h
104438 @@ -756,7 +756,7 @@ static inline __be32 ip6_make_flowlabel(struct net *net, struct sk_buff *skb,
104439 * to minimize possbility that any useful information to an
104440 * attacker is leaked. Only lower 20 bits are relevant.
104441 */
104442 - rol32(hash, 16);
104443 + hash = rol32(hash, 16);
104444
104445 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK;
104446
104447 diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h
104448 index 8d4f588..2e37ad2 100644
104449 --- a/include/net/irda/ircomm_tty.h
104450 +++ b/include/net/irda/ircomm_tty.h
104451 @@ -33,6 +33,7 @@
104452 #include <linux/termios.h>
104453 #include <linux/timer.h>
104454 #include <linux/tty.h> /* struct tty_struct */
104455 +#include <asm/local.h>
104456
104457 #include <net/irda/irias_object.h>
104458 #include <net/irda/ircomm_core.h>
104459 diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
104460 index 714cc9a..ea05f3e 100644
104461 --- a/include/net/iucv/af_iucv.h
104462 +++ b/include/net/iucv/af_iucv.h
104463 @@ -149,7 +149,7 @@ struct iucv_skb_cb {
104464 struct iucv_sock_list {
104465 struct hlist_head head;
104466 rwlock_t lock;
104467 - atomic_t autobind_name;
104468 + atomic_unchecked_t autobind_name;
104469 };
104470
104471 unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
104472 diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
104473 index f3be818..bf46196 100644
104474 --- a/include/net/llc_c_ac.h
104475 +++ b/include/net/llc_c_ac.h
104476 @@ -87,7 +87,7 @@
104477 #define LLC_CONN_AC_STOP_SENDACK_TMR 70
104478 #define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71
104479
104480 -typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
104481 +typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
104482
104483 int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
104484 int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
104485 diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
104486 index 3948cf1..83b28c4 100644
104487 --- a/include/net/llc_c_ev.h
104488 +++ b/include/net/llc_c_ev.h
104489 @@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
104490 return (struct llc_conn_state_ev *)skb->cb;
104491 }
104492
104493 -typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
104494 -typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
104495 +typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
104496 +typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
104497
104498 int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
104499 int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
104500 diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h
104501 index 48f3f89..0e92c50 100644
104502 --- a/include/net/llc_c_st.h
104503 +++ b/include/net/llc_c_st.h
104504 @@ -37,7 +37,7 @@ struct llc_conn_state_trans {
104505 u8 next_state;
104506 const llc_conn_ev_qfyr_t *ev_qualifiers;
104507 const llc_conn_action_t *ev_actions;
104508 -};
104509 +} __do_const;
104510
104511 struct llc_conn_state {
104512 u8 current_state;
104513 diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
104514 index a61b98c..aade1eb 100644
104515 --- a/include/net/llc_s_ac.h
104516 +++ b/include/net/llc_s_ac.h
104517 @@ -23,7 +23,7 @@
104518 #define SAP_ACT_TEST_IND 9
104519
104520 /* All action functions must look like this */
104521 -typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
104522 +typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
104523
104524 int llc_sap_action_unitdata_ind(struct llc_sap *sap, struct sk_buff *skb);
104525 int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
104526 diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h
104527 index c4359e2..76dbc4a 100644
104528 --- a/include/net/llc_s_st.h
104529 +++ b/include/net/llc_s_st.h
104530 @@ -20,7 +20,7 @@ struct llc_sap_state_trans {
104531 llc_sap_ev_t ev;
104532 u8 next_state;
104533 const llc_sap_action_t *ev_actions;
104534 -};
104535 +} __do_const;
104536
104537 struct llc_sap_state {
104538 u8 curr_state;
104539 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
104540 index bfc5694..da18971 100644
104541 --- a/include/net/mac80211.h
104542 +++ b/include/net/mac80211.h
104543 @@ -5111,7 +5111,7 @@ struct ieee80211_tx_rate_control {
104544 struct sk_buff *skb;
104545 struct ieee80211_tx_rate reported_rate;
104546 bool rts, short_preamble;
104547 - u8 max_rate_idx;
104548 + s8 max_rate_idx;
104549 u32 rate_idx_mask;
104550 u8 *rate_idx_mcs_mask;
104551 bool bss;
104552 @@ -5148,7 +5148,7 @@ struct rate_control_ops {
104553 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
104554
104555 u32 (*get_expected_throughput)(void *priv_sta);
104556 -};
104557 +} __do_const;
104558
104559 static inline int rate_supported(struct ieee80211_sta *sta,
104560 enum ieee80211_band band,
104561 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
104562 index 8b68384..42d6ce1 100644
104563 --- a/include/net/neighbour.h
104564 +++ b/include/net/neighbour.h
104565 @@ -163,7 +163,7 @@ struct neigh_ops {
104566 void (*error_report)(struct neighbour *, struct sk_buff *);
104567 int (*output)(struct neighbour *, struct sk_buff *);
104568 int (*connected_output)(struct neighbour *, struct sk_buff *);
104569 -};
104570 +} __do_const;
104571
104572 struct pneigh_entry {
104573 struct pneigh_entry *next;
104574 @@ -217,7 +217,7 @@ struct neigh_table {
104575 struct neigh_statistics __percpu *stats;
104576 struct neigh_hash_table __rcu *nht;
104577 struct pneigh_entry **phash_buckets;
104578 -};
104579 +} __randomize_layout;
104580
104581 enum {
104582 NEIGH_ARP_TABLE = 0,
104583 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
104584 index 2dcea63..31d53ba 100644
104585 --- a/include/net/net_namespace.h
104586 +++ b/include/net/net_namespace.h
104587 @@ -53,7 +53,7 @@ struct net {
104588 */
104589 spinlock_t rules_mod_lock;
104590
104591 - atomic64_t cookie_gen;
104592 + atomic64_unchecked_t cookie_gen;
104593
104594 struct list_head list; /* list of network namespaces */
104595 struct list_head cleanup_list; /* namespaces on death row */
104596 @@ -138,8 +138,8 @@ struct net {
104597 struct netns_mpls mpls;
104598 #endif
104599 struct sock *diag_nlsk;
104600 - atomic_t fnhe_genid;
104601 -};
104602 + atomic_unchecked_t fnhe_genid;
104603 +} __randomize_layout;
104604
104605 #include <linux/seq_file_net.h>
104606
104607 @@ -274,7 +274,11 @@ static inline struct net *read_pnet(const possible_net_t *pnet)
104608 #define __net_init __init
104609 #define __net_exit __exit_refok
104610 #define __net_initdata __initdata
104611 +#ifdef CONSTIFY_PLUGIN
104612 #define __net_initconst __initconst
104613 +#else
104614 +#define __net_initconst __initdata
104615 +#endif
104616 #endif
104617
104618 int peernet2id_alloc(struct net *net, struct net *peer);
104619 @@ -289,7 +293,7 @@ struct pernet_operations {
104620 void (*exit_batch)(struct list_head *net_exit_list);
104621 int *id;
104622 size_t size;
104623 -};
104624 +} __do_const;
104625
104626 /*
104627 * Use these carefully. If you implement a network device and it
104628 @@ -337,12 +341,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
104629
104630 static inline int rt_genid_ipv4(struct net *net)
104631 {
104632 - return atomic_read(&net->ipv4.rt_genid);
104633 + return atomic_read_unchecked(&net->ipv4.rt_genid);
104634 }
104635
104636 static inline void rt_genid_bump_ipv4(struct net *net)
104637 {
104638 - atomic_inc(&net->ipv4.rt_genid);
104639 + atomic_inc_unchecked(&net->ipv4.rt_genid);
104640 }
104641
104642 extern void (*__fib6_flush_trees)(struct net *net);
104643 @@ -369,12 +373,12 @@ static inline void rt_genid_bump_all(struct net *net)
104644
104645 static inline int fnhe_genid(struct net *net)
104646 {
104647 - return atomic_read(&net->fnhe_genid);
104648 + return atomic_read_unchecked(&net->fnhe_genid);
104649 }
104650
104651 static inline void fnhe_genid_bump(struct net *net)
104652 {
104653 - atomic_inc(&net->fnhe_genid);
104654 + atomic_inc_unchecked(&net->fnhe_genid);
104655 }
104656
104657 #endif /* __NET_NET_NAMESPACE_H */
104658 diff --git a/include/net/netlink.h b/include/net/netlink.h
104659 index 2a5dbcc..8243656 100644
104660 --- a/include/net/netlink.h
104661 +++ b/include/net/netlink.h
104662 @@ -521,7 +521,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
104663 {
104664 if (mark) {
104665 WARN_ON((unsigned char *) mark < skb->data);
104666 - skb_trim(skb, (unsigned char *) mark - skb->data);
104667 + skb_trim(skb, (const unsigned char *) mark - skb->data);
104668 }
104669 }
104670
104671 diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
104672 index 723b61c..4386367 100644
104673 --- a/include/net/netns/conntrack.h
104674 +++ b/include/net/netns/conntrack.h
104675 @@ -14,10 +14,10 @@ struct nf_conntrack_ecache;
104676 struct nf_proto_net {
104677 #ifdef CONFIG_SYSCTL
104678 struct ctl_table_header *ctl_table_header;
104679 - struct ctl_table *ctl_table;
104680 + ctl_table_no_const *ctl_table;
104681 #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
104682 struct ctl_table_header *ctl_compat_header;
104683 - struct ctl_table *ctl_compat_table;
104684 + ctl_table_no_const *ctl_compat_table;
104685 #endif
104686 #endif
104687 unsigned int users;
104688 @@ -60,7 +60,7 @@ struct nf_ip_net {
104689 struct nf_icmp_net icmpv6;
104690 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
104691 struct ctl_table_header *ctl_table_header;
104692 - struct ctl_table *ctl_table;
104693 + ctl_table_no_const *ctl_table;
104694 #endif
104695 };
104696
104697 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
104698 index c68926b..106c147 100644
104699 --- a/include/net/netns/ipv4.h
104700 +++ b/include/net/netns/ipv4.h
104701 @@ -93,7 +93,7 @@ struct netns_ipv4 {
104702
104703 struct ping_group_range ping_group_range;
104704
104705 - atomic_t dev_addr_genid;
104706 + atomic_unchecked_t dev_addr_genid;
104707
104708 #ifdef CONFIG_SYSCTL
104709 unsigned long *sysctl_local_reserved_ports;
104710 @@ -107,6 +107,6 @@ struct netns_ipv4 {
104711 struct fib_rules_ops *mr_rules_ops;
104712 #endif
104713 #endif
104714 - atomic_t rt_genid;
104715 + atomic_unchecked_t rt_genid;
104716 };
104717 #endif
104718 diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
104719 index c0368db..95ad90f 100644
104720 --- a/include/net/netns/ipv6.h
104721 +++ b/include/net/netns/ipv6.h
104722 @@ -80,8 +80,8 @@ struct netns_ipv6 {
104723 struct fib_rules_ops *mr6_rules_ops;
104724 #endif
104725 #endif
104726 - atomic_t dev_addr_genid;
104727 - atomic_t fib6_sernum;
104728 + atomic_unchecked_t dev_addr_genid;
104729 + atomic_unchecked_t fib6_sernum;
104730 };
104731
104732 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
104733 diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
104734 index 730d82a..045f2c4 100644
104735 --- a/include/net/netns/xfrm.h
104736 +++ b/include/net/netns/xfrm.h
104737 @@ -78,7 +78,7 @@ struct netns_xfrm {
104738
104739 /* flow cache part */
104740 struct flow_cache flow_cache_global;
104741 - atomic_t flow_cache_genid;
104742 + atomic_unchecked_t flow_cache_genid;
104743 struct list_head flow_cache_gc_list;
104744 spinlock_t flow_cache_gc_lock;
104745 struct work_struct flow_cache_gc_work;
104746 diff --git a/include/net/ping.h b/include/net/ping.h
104747 index ac80cb4..ec1ed09 100644
104748 --- a/include/net/ping.h
104749 +++ b/include/net/ping.h
104750 @@ -54,7 +54,7 @@ struct ping_iter_state {
104751
104752 extern struct proto ping_prot;
104753 #if IS_ENABLED(CONFIG_IPV6)
104754 -extern struct pingv6_ops pingv6_ops;
104755 +extern struct pingv6_ops *pingv6_ops;
104756 #endif
104757
104758 struct pingfakehdr {
104759 diff --git a/include/net/protocol.h b/include/net/protocol.h
104760 index d6fcc1f..ca277058 100644
104761 --- a/include/net/protocol.h
104762 +++ b/include/net/protocol.h
104763 @@ -49,7 +49,7 @@ struct net_protocol {
104764 * socket lookup?
104765 */
104766 icmp_strict_tag_validation:1;
104767 -};
104768 +} __do_const;
104769
104770 #if IS_ENABLED(CONFIG_IPV6)
104771 struct inet6_protocol {
104772 @@ -62,7 +62,7 @@ struct inet6_protocol {
104773 u8 type, u8 code, int offset,
104774 __be32 info);
104775 unsigned int flags; /* INET6_PROTO_xxx */
104776 -};
104777 +} __do_const;
104778
104779 #define INET6_PROTO_NOPOLICY 0x1
104780 #define INET6_PROTO_FINAL 0x2
104781 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
104782 index 18fdb98..5d5b6aa 100644
104783 --- a/include/net/rtnetlink.h
104784 +++ b/include/net/rtnetlink.h
104785 @@ -95,7 +95,7 @@ struct rtnl_link_ops {
104786 const struct net_device *dev,
104787 const struct net_device *slave_dev);
104788 struct net *(*get_link_net)(const struct net_device *dev);
104789 -};
104790 +} __do_const;
104791
104792 int __rtnl_link_register(struct rtnl_link_ops *ops);
104793 void __rtnl_link_unregister(struct rtnl_link_ops *ops);
104794 diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
104795 index 4a5b9a3..ca27d73 100644
104796 --- a/include/net/sctp/checksum.h
104797 +++ b/include/net/sctp/checksum.h
104798 @@ -61,8 +61,8 @@ static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
104799 unsigned int offset)
104800 {
104801 struct sctphdr *sh = sctp_hdr(skb);
104802 - __le32 ret, old = sh->checksum;
104803 - const struct skb_checksum_ops ops = {
104804 + __le32 ret, old = sh->checksum;
104805 + static const struct skb_checksum_ops ops = {
104806 .update = sctp_csum_update,
104807 .combine = sctp_csum_combine,
104808 };
104809 diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
104810 index 487ef34..d457f98 100644
104811 --- a/include/net/sctp/sm.h
104812 +++ b/include/net/sctp/sm.h
104813 @@ -80,7 +80,7 @@ typedef void (sctp_timer_event_t) (unsigned long);
104814 typedef struct {
104815 sctp_state_fn_t *fn;
104816 const char *name;
104817 -} sctp_sm_table_entry_t;
104818 +} __do_const sctp_sm_table_entry_t;
104819
104820 /* A naming convention of "sctp_sf_xxx" applies to all the state functions
104821 * currently in use.
104822 @@ -292,7 +292,7 @@ __u32 sctp_generate_tag(const struct sctp_endpoint *);
104823 __u32 sctp_generate_tsn(const struct sctp_endpoint *);
104824
104825 /* Extern declarations for major data structures. */
104826 -extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
104827 +extern sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
104828
104829
104830 /* Get the size of a DATA chunk payload. */
104831 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
104832 index 495c87e..5b327ff 100644
104833 --- a/include/net/sctp/structs.h
104834 +++ b/include/net/sctp/structs.h
104835 @@ -513,7 +513,7 @@ struct sctp_pf {
104836 void (*to_sk_saddr)(union sctp_addr *, struct sock *sk);
104837 void (*to_sk_daddr)(union sctp_addr *, struct sock *sk);
104838 struct sctp_af *af;
104839 -};
104840 +} __do_const;
104841
104842
104843 /* Structure to track chunk fragments that have been acked, but peer
104844 diff --git a/include/net/sock.h b/include/net/sock.h
104845 index e237170..6cfe0bf 100644
104846 --- a/include/net/sock.h
104847 +++ b/include/net/sock.h
104848 @@ -198,7 +198,7 @@ struct sock_common {
104849 struct in6_addr skc_v6_rcv_saddr;
104850 #endif
104851
104852 - atomic64_t skc_cookie;
104853 + atomic64_unchecked_t skc_cookie;
104854
104855 /*
104856 * fields between dontcopy_begin/dontcopy_end
104857 @@ -364,7 +364,7 @@ struct sock {
104858 unsigned int sk_napi_id;
104859 unsigned int sk_ll_usec;
104860 #endif
104861 - atomic_t sk_drops;
104862 + atomic_unchecked_t sk_drops;
104863 int sk_rcvbuf;
104864
104865 struct sk_filter __rcu *sk_filter;
104866 @@ -798,7 +798,7 @@ void sk_stream_write_space(struct sock *sk);
104867 static inline void __sk_add_backlog(struct sock *sk, struct sk_buff *skb)
104868 {
104869 /* dont let skb dst not refcounted, we are going to leave rcu lock */
104870 - skb_dst_force(skb);
104871 + skb_dst_force_safe(skb);
104872
104873 if (!sk->sk_backlog.tail)
104874 sk->sk_backlog.head = skb;
104875 @@ -1048,7 +1048,7 @@ struct proto {
104876 void (*destroy_cgroup)(struct mem_cgroup *memcg);
104877 struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
104878 #endif
104879 -};
104880 +} __randomize_layout;
104881
104882 int proto_register(struct proto *prot, int alloc_slab);
104883 void proto_unregister(struct proto *prot);
104884 @@ -1188,7 +1188,7 @@ static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
104885 page_counter_uncharge(&prot->memory_allocated, amt);
104886 }
104887
104888 -static inline long
104889 +static inline long __intentional_overflow(-1)
104890 sk_memory_allocated(const struct sock *sk)
104891 {
104892 struct proto *prot = sk->sk_prot;
104893 @@ -1769,7 +1769,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
104894 }
104895
104896 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
104897 - struct iov_iter *from, char *to,
104898 + struct iov_iter *from, unsigned char *to,
104899 int copy, int offset)
104900 {
104901 if (skb->ip_summed == CHECKSUM_NONE) {
104902 @@ -2016,7 +2016,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
104903 }
104904 }
104905
104906 -struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
104907 +struct sk_buff * __intentional_overflow(0) sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
104908 bool force_schedule);
104909
104910 /**
104911 @@ -2092,7 +2092,7 @@ struct sock_skb_cb {
104912 static inline void
104913 sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
104914 {
104915 - SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
104916 + SOCK_SKB_CB(skb)->dropcount = atomic_read_unchecked(&sk->sk_drops);
104917 }
104918
104919 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
104920 diff --git a/include/net/tcp.h b/include/net/tcp.h
104921 index 0cab28c..f29b35d 100644
104922 --- a/include/net/tcp.h
104923 +++ b/include/net/tcp.h
104924 @@ -548,7 +548,7 @@ void tcp_retransmit_timer(struct sock *sk);
104925 void tcp_xmit_retransmit_queue(struct sock *);
104926 void tcp_simple_retransmit(struct sock *);
104927 int tcp_trim_head(struct sock *, struct sk_buff *, u32);
104928 -int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t);
104929 +int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t) __intentional_overflow(3);
104930
104931 void tcp_send_probe0(struct sock *);
104932 void tcp_send_partial(struct sock *);
104933 @@ -726,8 +726,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
104934 * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
104935 */
104936 struct tcp_skb_cb {
104937 - __u32 seq; /* Starting sequence number */
104938 - __u32 end_seq; /* SEQ + FIN + SYN + datalen */
104939 + __u32 seq __intentional_overflow(-1); /* Starting sequence number */
104940 + __u32 end_seq __intentional_overflow(-1); /* SEQ + FIN + SYN + datalen */
104941 union {
104942 /* Note : tcp_tw_isn is used in input path only
104943 * (isn chosen by tcp_timewait_state_process())
104944 @@ -755,7 +755,7 @@ struct tcp_skb_cb {
104945
104946 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
104947 /* 1 byte hole */
104948 - __u32 ack_seq; /* Sequence number ACK'd */
104949 + __u32 ack_seq __intentional_overflow(-1); /* Sequence number ACK'd */
104950 union {
104951 struct inet_skb_parm h4;
104952 #if IS_ENABLED(CONFIG_IPV6)
104953 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
104954 index 312e3fe..a438cf1 100644
104955 --- a/include/net/xfrm.h
104956 +++ b/include/net/xfrm.h
104957 @@ -284,7 +284,6 @@ struct xfrm_dst;
104958 struct xfrm_policy_afinfo {
104959 unsigned short family;
104960 struct dst_ops *dst_ops;
104961 - void (*garbage_collect)(struct net *net);
104962 struct dst_entry *(*dst_lookup)(struct net *net,
104963 int tos, int oif,
104964 const xfrm_address_t *saddr,
104965 @@ -305,7 +304,7 @@ struct xfrm_policy_afinfo {
104966 struct net_device *dev,
104967 const struct flowi *fl);
104968 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
104969 -};
104970 +} __do_const;
104971
104972 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
104973 int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
104974 @@ -344,7 +343,7 @@ struct xfrm_state_afinfo {
104975 int (*transport_finish)(struct sk_buff *skb,
104976 int async);
104977 void (*local_error)(struct sk_buff *skb, u32 mtu);
104978 -};
104979 +} __do_const;
104980
104981 int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
104982 int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
104983 @@ -439,7 +438,7 @@ struct xfrm_mode {
104984 struct module *owner;
104985 unsigned int encap;
104986 int flags;
104987 -};
104988 +} __do_const;
104989
104990 /* Flags for xfrm_mode. */
104991 enum {
104992 @@ -534,7 +533,7 @@ struct xfrm_policy {
104993 struct timer_list timer;
104994
104995 struct flow_cache_object flo;
104996 - atomic_t genid;
104997 + atomic_unchecked_t genid;
104998 u32 priority;
104999 u32 index;
105000 struct xfrm_mark mark;
105001 @@ -1167,6 +1166,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
105002 }
105003
105004 void xfrm_garbage_collect(struct net *net);
105005 +void xfrm_garbage_collect_deferred(struct net *net);
105006
105007 #else
105008
105009 @@ -1205,6 +1205,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
105010 static inline void xfrm_garbage_collect(struct net *net)
105011 {
105012 }
105013 +static inline void xfrm_garbage_collect_deferred(struct net *net)
105014 +{
105015 +}
105016 #endif
105017
105018 static __inline__
105019 diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
105020 index 036bd27..c0d7f17 100644
105021 --- a/include/rdma/iw_cm.h
105022 +++ b/include/rdma/iw_cm.h
105023 @@ -123,7 +123,7 @@ struct iw_cm_verbs {
105024 int backlog);
105025
105026 int (*destroy_listen)(struct iw_cm_id *cm_id);
105027 -};
105028 +} __no_const;
105029
105030 /**
105031 * iw_create_cm_id - Create an IW CM identifier.
105032 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
105033 index 93d14da..734b3d8 100644
105034 --- a/include/scsi/libfc.h
105035 +++ b/include/scsi/libfc.h
105036 @@ -771,6 +771,7 @@ struct libfc_function_template {
105037 */
105038 void (*disc_stop_final) (struct fc_lport *);
105039 };
105040 +typedef struct libfc_function_template __no_const libfc_function_template_no_const;
105041
105042 /**
105043 * struct fc_disc - Discovery context
105044 @@ -875,7 +876,7 @@ struct fc_lport {
105045 struct fc_vport *vport;
105046
105047 /* Operational Information */
105048 - struct libfc_function_template tt;
105049 + libfc_function_template_no_const tt;
105050 u8 link_up;
105051 u8 qfull;
105052 enum fc_lport_state state;
105053 diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
105054 index fe89d7c..cf05af3 100644
105055 --- a/include/scsi/scsi_device.h
105056 +++ b/include/scsi/scsi_device.h
105057 @@ -186,9 +186,9 @@ struct scsi_device {
105058 unsigned int max_device_blocked; /* what device_blocked counts down from */
105059 #define SCSI_DEFAULT_DEVICE_BLOCKED 3
105060
105061 - atomic_t iorequest_cnt;
105062 - atomic_t iodone_cnt;
105063 - atomic_t ioerr_cnt;
105064 + atomic_unchecked_t iorequest_cnt;
105065 + atomic_unchecked_t iodone_cnt;
105066 + atomic_unchecked_t ioerr_cnt;
105067
105068 struct device sdev_gendev,
105069 sdev_dev;
105070 diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
105071 index 891a658..fcd68df 100644
105072 --- a/include/scsi/scsi_driver.h
105073 +++ b/include/scsi/scsi_driver.h
105074 @@ -14,7 +14,7 @@ struct scsi_driver {
105075 void (*rescan)(struct device *);
105076 int (*init_command)(struct scsi_cmnd *);
105077 void (*uninit_command)(struct scsi_cmnd *);
105078 - int (*done)(struct scsi_cmnd *);
105079 + unsigned int (*done)(struct scsi_cmnd *);
105080 int (*eh_action)(struct scsi_cmnd *, int);
105081 };
105082 #define to_scsi_driver(drv) \
105083 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
105084 index 784bc2c..855a04c 100644
105085 --- a/include/scsi/scsi_transport_fc.h
105086 +++ b/include/scsi/scsi_transport_fc.h
105087 @@ -757,7 +757,8 @@ struct fc_function_template {
105088 unsigned long show_host_system_hostname:1;
105089
105090 unsigned long disable_target_scan:1;
105091 -};
105092 +} __do_const;
105093 +typedef struct fc_function_template __no_const fc_function_template_no_const;
105094
105095
105096 /**
105097 diff --git a/include/scsi/sg.h b/include/scsi/sg.h
105098 index 3afec70..b196b43 100644
105099 --- a/include/scsi/sg.h
105100 +++ b/include/scsi/sg.h
105101 @@ -52,7 +52,7 @@ typedef struct sg_io_hdr
105102 or scatter gather list */
105103 unsigned char __user *cmdp; /* [i], [*i] points to command to perform */
105104 void __user *sbp; /* [i], [*o] points to sense_buffer memory */
105105 - unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
105106 + unsigned int timeout __intentional_overflow(-1); /* [i] MAX_UINT->no timeout (unit: millisec) */
105107 unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
105108 int pack_id; /* [i->o] unused internally (normally) */
105109 void __user * usr_ptr; /* [i->o] unused internally */
105110 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
105111 index fa1d055..3647940 100644
105112 --- a/include/sound/compress_driver.h
105113 +++ b/include/sound/compress_driver.h
105114 @@ -130,7 +130,7 @@ struct snd_compr_ops {
105115 struct snd_compr_caps *caps);
105116 int (*get_codec_caps) (struct snd_compr_stream *stream,
105117 struct snd_compr_codec_caps *codec);
105118 -};
105119 +} __no_const;
105120
105121 /**
105122 * struct snd_compr: Compressed device
105123 diff --git a/include/sound/soc.h b/include/sound/soc.h
105124 index 26ede14..c9d6a99 100644
105125 --- a/include/sound/soc.h
105126 +++ b/include/sound/soc.h
105127 @@ -884,7 +884,7 @@ struct snd_soc_codec_driver {
105128 enum snd_soc_dapm_type, int);
105129
105130 bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
105131 -};
105132 +} __do_const;
105133
105134 /* SoC platform interface */
105135 struct snd_soc_platform_driver {
105136 @@ -911,7 +911,7 @@ struct snd_soc_platform_driver {
105137 const struct snd_compr_ops *compr_ops;
105138
105139 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
105140 -};
105141 +} __do_const;
105142
105143 struct snd_soc_dai_link_component {
105144 const char *name;
105145 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
105146 index 5f48754..b351b46 100644
105147 --- a/include/target/target_core_base.h
105148 +++ b/include/target/target_core_base.h
105149 @@ -474,7 +474,7 @@ struct se_cmd {
105150 struct completion cmd_wait_comp;
105151 const struct target_core_fabric_ops *se_tfo;
105152 sense_reason_t (*execute_cmd)(struct se_cmd *);
105153 - sense_reason_t (*transport_complete_callback)(struct se_cmd *, bool);
105154 + sense_reason_t (*transport_complete_callback)(struct se_cmd *, bool, int *);
105155 void *protocol_data;
105156
105157 unsigned char *t_task_cdb;
105158 diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
105159 new file mode 100644
105160 index 0000000..fb634b7
105161 --- /dev/null
105162 +++ b/include/trace/events/fs.h
105163 @@ -0,0 +1,53 @@
105164 +#undef TRACE_SYSTEM
105165 +#define TRACE_SYSTEM fs
105166 +
105167 +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
105168 +#define _TRACE_FS_H
105169 +
105170 +#include <linux/fs.h>
105171 +#include <linux/tracepoint.h>
105172 +
105173 +TRACE_EVENT(do_sys_open,
105174 +
105175 + TP_PROTO(const char *filename, int flags, int mode),
105176 +
105177 + TP_ARGS(filename, flags, mode),
105178 +
105179 + TP_STRUCT__entry(
105180 + __string( filename, filename )
105181 + __field( int, flags )
105182 + __field( int, mode )
105183 + ),
105184 +
105185 + TP_fast_assign(
105186 + __assign_str(filename, filename);
105187 + __entry->flags = flags;
105188 + __entry->mode = mode;
105189 + ),
105190 +
105191 + TP_printk("\"%s\" %x %o",
105192 + __get_str(filename), __entry->flags, __entry->mode)
105193 +);
105194 +
105195 +TRACE_EVENT(open_exec,
105196 +
105197 + TP_PROTO(const char *filename),
105198 +
105199 + TP_ARGS(filename),
105200 +
105201 + TP_STRUCT__entry(
105202 + __string( filename, filename )
105203 + ),
105204 +
105205 + TP_fast_assign(
105206 + __assign_str(filename, filename);
105207 + ),
105208 +
105209 + TP_printk("\"%s\"",
105210 + __get_str(filename))
105211 +);
105212 +
105213 +#endif /* _TRACE_FS_H */
105214 +
105215 +/* This part must be outside protection */
105216 +#include <trace/define_trace.h>
105217 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
105218 index ff8f6c0..6b6bae3 100644
105219 --- a/include/trace/events/irq.h
105220 +++ b/include/trace/events/irq.h
105221 @@ -51,7 +51,7 @@ SOFTIRQ_NAME_LIST
105222 */
105223 TRACE_EVENT(irq_handler_entry,
105224
105225 - TP_PROTO(int irq, struct irqaction *action),
105226 + TP_PROTO(int irq, const struct irqaction *action),
105227
105228 TP_ARGS(irq, action),
105229
105230 @@ -81,7 +81,7 @@ TRACE_EVENT(irq_handler_entry,
105231 */
105232 TRACE_EVENT(irq_handler_exit,
105233
105234 - TP_PROTO(int irq, struct irqaction *action, int ret),
105235 + TP_PROTO(int irq, const struct irqaction *action, int ret),
105236
105237 TP_ARGS(irq, action, ret),
105238
105239 diff --git a/include/uapi/linux/a.out.h b/include/uapi/linux/a.out.h
105240 index 7caf44c..23c6f27 100644
105241 --- a/include/uapi/linux/a.out.h
105242 +++ b/include/uapi/linux/a.out.h
105243 @@ -39,6 +39,14 @@ enum machine_type {
105244 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
105245 };
105246
105247 +/* Constants for the N_FLAGS field */
105248 +#define F_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
105249 +#define F_PAX_EMUTRAMP 2 /* Emulate trampolines */
105250 +#define F_PAX_MPROTECT 4 /* Restrict mprotect() */
105251 +#define F_PAX_RANDMMAP 8 /* Randomize mmap() base */
105252 +/*#define F_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
105253 +#define F_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
105254 +
105255 #if !defined (N_MAGIC)
105256 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
105257 #endif
105258 diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
105259 index 22b6ad3..aeba37e 100644
105260 --- a/include/uapi/linux/bcache.h
105261 +++ b/include/uapi/linux/bcache.h
105262 @@ -5,6 +5,7 @@
105263 * Bcache on disk data structures
105264 */
105265
105266 +#include <linux/compiler.h>
105267 #include <asm/types.h>
105268
105269 #define BITMASK(name, type, field, offset, size) \
105270 @@ -20,8 +21,8 @@ static inline void SET_##name(type *k, __u64 v) \
105271 /* Btree keys - all units are in sectors */
105272
105273 struct bkey {
105274 - __u64 high;
105275 - __u64 low;
105276 + __u64 high __intentional_overflow(-1);
105277 + __u64 low __intentional_overflow(-1);
105278 __u64 ptr[];
105279 };
105280
105281 diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
105282 index d876736..ccce5c0 100644
105283 --- a/include/uapi/linux/byteorder/little_endian.h
105284 +++ b/include/uapi/linux/byteorder/little_endian.h
105285 @@ -42,51 +42,51 @@
105286
105287 static inline __le64 __cpu_to_le64p(const __u64 *p)
105288 {
105289 - return (__force __le64)*p;
105290 + return (__force const __le64)*p;
105291 }
105292 -static inline __u64 __le64_to_cpup(const __le64 *p)
105293 +static inline __u64 __intentional_overflow(-1) __le64_to_cpup(const __le64 *p)
105294 {
105295 - return (__force __u64)*p;
105296 + return (__force const __u64)*p;
105297 }
105298 static inline __le32 __cpu_to_le32p(const __u32 *p)
105299 {
105300 - return (__force __le32)*p;
105301 + return (__force const __le32)*p;
105302 }
105303 static inline __u32 __le32_to_cpup(const __le32 *p)
105304 {
105305 - return (__force __u32)*p;
105306 + return (__force const __u32)*p;
105307 }
105308 static inline __le16 __cpu_to_le16p(const __u16 *p)
105309 {
105310 - return (__force __le16)*p;
105311 + return (__force const __le16)*p;
105312 }
105313 static inline __u16 __le16_to_cpup(const __le16 *p)
105314 {
105315 - return (__force __u16)*p;
105316 + return (__force const __u16)*p;
105317 }
105318 static inline __be64 __cpu_to_be64p(const __u64 *p)
105319 {
105320 - return (__force __be64)__swab64p(p);
105321 + return (__force const __be64)__swab64p(p);
105322 }
105323 static inline __u64 __be64_to_cpup(const __be64 *p)
105324 {
105325 - return __swab64p((__u64 *)p);
105326 + return __swab64p((const __u64 *)p);
105327 }
105328 static inline __be32 __cpu_to_be32p(const __u32 *p)
105329 {
105330 - return (__force __be32)__swab32p(p);
105331 + return (__force const __be32)__swab32p(p);
105332 }
105333 -static inline __u32 __be32_to_cpup(const __be32 *p)
105334 +static inline __u32 __intentional_overflow(-1) __be32_to_cpup(const __be32 *p)
105335 {
105336 - return __swab32p((__u32 *)p);
105337 + return __swab32p((const __u32 *)p);
105338 }
105339 static inline __be16 __cpu_to_be16p(const __u16 *p)
105340 {
105341 - return (__force __be16)__swab16p(p);
105342 + return (__force const __be16)__swab16p(p);
105343 }
105344 static inline __u16 __be16_to_cpup(const __be16 *p)
105345 {
105346 - return __swab16p((__u16 *)p);
105347 + return __swab16p((const __u16 *)p);
105348 }
105349 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
105350 #define __le64_to_cpus(x) do { (void)(x); } while (0)
105351 diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h
105352 index 4cb2835..cfbc4e2 100644
105353 --- a/include/uapi/linux/connector.h
105354 +++ b/include/uapi/linux/connector.h
105355 @@ -69,7 +69,7 @@ struct cb_id {
105356 struct cn_msg {
105357 struct cb_id id;
105358
105359 - __u32 seq;
105360 + __u32 seq __intentional_overflow(-1);
105361 __u32 ack;
105362
105363 __u16 len; /* Length of the following data */
105364 diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
105365 index 71e1d0e..6cc9caf 100644
105366 --- a/include/uapi/linux/elf.h
105367 +++ b/include/uapi/linux/elf.h
105368 @@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword;
105369 #define PT_GNU_EH_FRAME 0x6474e550
105370
105371 #define PT_GNU_STACK (PT_LOOS + 0x474e551)
105372 +#define PT_GNU_RELRO (PT_LOOS + 0x474e552)
105373 +
105374 +#define PT_PAX_FLAGS (PT_LOOS + 0x5041580)
105375 +
105376 +/* Constants for the e_flags field */
105377 +#define EF_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
105378 +#define EF_PAX_EMUTRAMP 2 /* Emulate trampolines */
105379 +#define EF_PAX_MPROTECT 4 /* Restrict mprotect() */
105380 +#define EF_PAX_RANDMMAP 8 /* Randomize mmap() base */
105381 +/*#define EF_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
105382 +#define EF_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
105383
105384 /*
105385 * Extended Numbering
105386 @@ -94,6 +105,8 @@ typedef __s64 Elf64_Sxword;
105387 #define DT_DEBUG 21
105388 #define DT_TEXTREL 22
105389 #define DT_JMPREL 23
105390 +#define DT_FLAGS 30
105391 + #define DF_TEXTREL 0x00000004
105392 #define DT_ENCODING 32
105393 #define OLD_DT_LOOS 0x60000000
105394 #define DT_LOOS 0x6000000d
105395 @@ -240,6 +253,19 @@ typedef struct elf64_hdr {
105396 #define PF_W 0x2
105397 #define PF_X 0x1
105398
105399 +#define PF_PAGEEXEC (1U << 4) /* Enable PAGEEXEC */
105400 +#define PF_NOPAGEEXEC (1U << 5) /* Disable PAGEEXEC */
105401 +#define PF_SEGMEXEC (1U << 6) /* Enable SEGMEXEC */
105402 +#define PF_NOSEGMEXEC (1U << 7) /* Disable SEGMEXEC */
105403 +#define PF_MPROTECT (1U << 8) /* Enable MPROTECT */
105404 +#define PF_NOMPROTECT (1U << 9) /* Disable MPROTECT */
105405 +/*#define PF_RANDEXEC (1U << 10)*/ /* Enable RANDEXEC */
105406 +/*#define PF_NORANDEXEC (1U << 11)*/ /* Disable RANDEXEC */
105407 +#define PF_EMUTRAMP (1U << 12) /* Enable EMUTRAMP */
105408 +#define PF_NOEMUTRAMP (1U << 13) /* Disable EMUTRAMP */
105409 +#define PF_RANDMMAP (1U << 14) /* Enable RANDMMAP */
105410 +#define PF_NORANDMMAP (1U << 15) /* Disable RANDMMAP */
105411 +
105412 typedef struct elf32_phdr{
105413 Elf32_Word p_type;
105414 Elf32_Off p_offset;
105415 @@ -332,6 +358,8 @@ typedef struct elf64_shdr {
105416 #define EI_OSABI 7
105417 #define EI_PAD 8
105418
105419 +#define EI_PAX 14
105420 +
105421 #define ELFMAG0 0x7f /* EI_MAG */
105422 #define ELFMAG1 'E'
105423 #define ELFMAG2 'L'
105424 diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h
105425 index aa169c4..6a2771d 100644
105426 --- a/include/uapi/linux/personality.h
105427 +++ b/include/uapi/linux/personality.h
105428 @@ -30,6 +30,7 @@ enum {
105429 #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \
105430 ADDR_NO_RANDOMIZE | \
105431 ADDR_COMPAT_LAYOUT | \
105432 + ADDR_LIMIT_3GB | \
105433 MMAP_PAGE_ZERO)
105434
105435 /*
105436 diff --git a/include/uapi/linux/screen_info.h b/include/uapi/linux/screen_info.h
105437 index 7530e74..e714828 100644
105438 --- a/include/uapi/linux/screen_info.h
105439 +++ b/include/uapi/linux/screen_info.h
105440 @@ -43,7 +43,8 @@ struct screen_info {
105441 __u16 pages; /* 0x32 */
105442 __u16 vesa_attributes; /* 0x34 */
105443 __u32 capabilities; /* 0x36 */
105444 - __u8 _reserved[6]; /* 0x3a */
105445 + __u16 vesapm_size; /* 0x3a */
105446 + __u8 _reserved[4]; /* 0x3c */
105447 } __attribute__((packed));
105448
105449 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
105450 diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
105451 index 0e011eb..0020b3c 100644
105452 --- a/include/uapi/linux/swab.h
105453 +++ b/include/uapi/linux/swab.h
105454 @@ -43,7 +43,7 @@
105455 * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
105456 */
105457
105458 -static inline __attribute_const__ __u16 __fswab16(__u16 val)
105459 +static inline __intentional_overflow(0) __attribute_const__ __u16 __fswab16(__u16 val)
105460 {
105461 #ifdef __HAVE_BUILTIN_BSWAP16__
105462 return __builtin_bswap16(val);
105463 @@ -54,7 +54,7 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val)
105464 #endif
105465 }
105466
105467 -static inline __attribute_const__ __u32 __fswab32(__u32 val)
105468 +static inline __intentional_overflow(0) __attribute_const__ __u32 __fswab32(__u32 val)
105469 {
105470 #ifdef __HAVE_BUILTIN_BSWAP32__
105471 return __builtin_bswap32(val);
105472 @@ -65,7 +65,7 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val)
105473 #endif
105474 }
105475
105476 -static inline __attribute_const__ __u64 __fswab64(__u64 val)
105477 +static inline __intentional_overflow(0) __attribute_const__ __u64 __fswab64(__u64 val)
105478 {
105479 #ifdef __HAVE_BUILTIN_BSWAP64__
105480 return __builtin_bswap64(val);
105481 diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
105482 index 1590c49..5eab462 100644
105483 --- a/include/uapi/linux/xattr.h
105484 +++ b/include/uapi/linux/xattr.h
105485 @@ -73,5 +73,9 @@
105486 #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
105487 #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
105488
105489 +/* User namespace */
105490 +#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
105491 +#define XATTR_PAX_FLAGS_SUFFIX "flags"
105492 +#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
105493
105494 #endif /* _UAPI_LINUX_XATTR_H */
105495 diff --git a/include/video/udlfb.h b/include/video/udlfb.h
105496 index f9466fa..f4e2b81 100644
105497 --- a/include/video/udlfb.h
105498 +++ b/include/video/udlfb.h
105499 @@ -53,10 +53,10 @@ struct dlfb_data {
105500 u32 pseudo_palette[256];
105501 int blank_mode; /*one of FB_BLANK_ */
105502 /* blit-only rendering path metrics, exposed through sysfs */
105503 - atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
105504 - atomic_t bytes_identical; /* saved effort with backbuffer comparison */
105505 - atomic_t bytes_sent; /* to usb, after compression including overhead */
105506 - atomic_t cpu_kcycles_used; /* transpired during pixel processing */
105507 + atomic_unchecked_t bytes_rendered; /* raw pixel-bytes driver asked to render */
105508 + atomic_unchecked_t bytes_identical; /* saved effort with backbuffer comparison */
105509 + atomic_unchecked_t bytes_sent; /* to usb, after compression including overhead */
105510 + atomic_unchecked_t cpu_kcycles_used; /* transpired during pixel processing */
105511 };
105512
105513 #define NR_USB_REQUEST_I2C_SUB_IO 0x02
105514 diff --git a/include/video/uvesafb.h b/include/video/uvesafb.h
105515 index 30f5362..8ed8ac9 100644
105516 --- a/include/video/uvesafb.h
105517 +++ b/include/video/uvesafb.h
105518 @@ -122,6 +122,7 @@ struct uvesafb_par {
105519 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
105520 u8 pmi_setpal; /* PMI for palette changes */
105521 u16 *pmi_base; /* protected mode interface location */
105522 + u8 *pmi_code; /* protected mode code location */
105523 void *pmi_start;
105524 void *pmi_pal;
105525 u8 *vbe_state_orig; /*
105526 diff --git a/init/Kconfig b/init/Kconfig
105527 index c24b6f7..e70c4b5 100644
105528 --- a/init/Kconfig
105529 +++ b/init/Kconfig
105530 @@ -633,6 +633,7 @@ config RCU_FAST_NO_HZ
105531 config TREE_RCU_TRACE
105532 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
105533 select DEBUG_FS
105534 + depends on !GRKERNSEC_KMEM
105535 help
105536 This option provides tracing for the TREE_RCU and
105537 PREEMPT_RCU implementations, permitting Makefile to
105538 @@ -1156,6 +1157,7 @@ endif # CGROUPS
105539 config CHECKPOINT_RESTORE
105540 bool "Checkpoint/restore support" if EXPERT
105541 select PROC_CHILDREN
105542 + depends on !GRKERNSEC
105543 default n
105544 help
105545 Enables additional kernel features in a sake of checkpoint/restore.
105546 @@ -1701,7 +1703,7 @@ config SLUB_DEBUG
105547
105548 config COMPAT_BRK
105549 bool "Disable heap randomization"
105550 - default y
105551 + default n
105552 help
105553 Randomizing heap placement makes heap exploits harder, but it
105554 also breaks ancient binaries (including anything libc5 based).
105555 @@ -2033,7 +2035,7 @@ config INIT_ALL_POSSIBLE
105556 config STOP_MACHINE
105557 bool
105558 default y
105559 - depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
105560 + depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU || GRKERNSEC
105561 help
105562 Need stop_machine() primitive.
105563
105564 diff --git a/init/Makefile b/init/Makefile
105565 index 7bc47ee..6da2dc7 100644
105566 --- a/init/Makefile
105567 +++ b/init/Makefile
105568 @@ -2,6 +2,9 @@
105569 # Makefile for the linux kernel.
105570 #
105571
105572 +ccflags-y := $(GCC_PLUGINS_CFLAGS)
105573 +asflags-y := $(GCC_PLUGINS_AFLAGS)
105574 +
105575 obj-y := main.o version.o mounts.o
105576 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
105577 obj-y += noinitramfs.o
105578 diff --git a/init/do_mounts.c b/init/do_mounts.c
105579 index dea5de9..bbdbb5f 100644
105580 --- a/init/do_mounts.c
105581 +++ b/init/do_mounts.c
105582 @@ -363,11 +363,11 @@ static void __init get_fs_names(char *page)
105583 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
105584 {
105585 struct super_block *s;
105586 - int err = sys_mount(name, "/root", fs, flags, data);
105587 + int err = sys_mount((char __force_user *)name, (char __force_user *)"/root", (char __force_user *)fs, flags, (void __force_user *)data);
105588 if (err)
105589 return err;
105590
105591 - sys_chdir("/root");
105592 + sys_chdir((const char __force_user *)"/root");
105593 s = current->fs->pwd.dentry->d_sb;
105594 ROOT_DEV = s->s_dev;
105595 printk(KERN_INFO
105596 @@ -490,18 +490,18 @@ void __init change_floppy(char *fmt, ...)
105597 va_start(args, fmt);
105598 vsprintf(buf, fmt, args);
105599 va_end(args);
105600 - fd = sys_open("/dev/root", O_RDWR | O_NDELAY, 0);
105601 + fd = sys_open((char __user *)"/dev/root", O_RDWR | O_NDELAY, 0);
105602 if (fd >= 0) {
105603 sys_ioctl(fd, FDEJECT, 0);
105604 sys_close(fd);
105605 }
105606 printk(KERN_NOTICE "VFS: Insert %s and press ENTER\n", buf);
105607 - fd = sys_open("/dev/console", O_RDWR, 0);
105608 + fd = sys_open((__force const char __user *)"/dev/console", O_RDWR, 0);
105609 if (fd >= 0) {
105610 sys_ioctl(fd, TCGETS, (long)&termios);
105611 termios.c_lflag &= ~ICANON;
105612 sys_ioctl(fd, TCSETSF, (long)&termios);
105613 - sys_read(fd, &c, 1);
105614 + sys_read(fd, (char __user *)&c, 1);
105615 termios.c_lflag |= ICANON;
105616 sys_ioctl(fd, TCSETSF, (long)&termios);
105617 sys_close(fd);
105618 @@ -600,8 +600,8 @@ void __init prepare_namespace(void)
105619 mount_root();
105620 out:
105621 devtmpfs_mount("dev");
105622 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
105623 - sys_chroot(".");
105624 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
105625 + sys_chroot((const char __force_user *)".");
105626 }
105627
105628 static bool is_tmpfs;
105629 diff --git a/init/do_mounts.h b/init/do_mounts.h
105630 index f5b978a..69dbfe8 100644
105631 --- a/init/do_mounts.h
105632 +++ b/init/do_mounts.h
105633 @@ -15,15 +15,15 @@ extern int root_mountflags;
105634
105635 static inline int create_dev(char *name, dev_t dev)
105636 {
105637 - sys_unlink(name);
105638 - return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
105639 + sys_unlink((char __force_user *)name);
105640 + return sys_mknod((char __force_user *)name, S_IFBLK|0600, new_encode_dev(dev));
105641 }
105642
105643 #if BITS_PER_LONG == 32
105644 static inline u32 bstat(char *name)
105645 {
105646 struct stat64 stat;
105647 - if (sys_stat64(name, &stat) != 0)
105648 + if (sys_stat64((char __force_user *)name, (struct stat64 __force_user *)&stat) != 0)
105649 return 0;
105650 if (!S_ISBLK(stat.st_mode))
105651 return 0;
105652 @@ -35,7 +35,7 @@ static inline u32 bstat(char *name)
105653 static inline u32 bstat(char *name)
105654 {
105655 struct stat stat;
105656 - if (sys_newstat(name, &stat) != 0)
105657 + if (sys_newstat((const char __force_user *)name, (struct stat __force_user *)&stat) != 0)
105658 return 0;
105659 if (!S_ISBLK(stat.st_mode))
105660 return 0;
105661 diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
105662 index 3e0878e..8a9d7a0 100644
105663 --- a/init/do_mounts_initrd.c
105664 +++ b/init/do_mounts_initrd.c
105665 @@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
105666 {
105667 sys_unshare(CLONE_FS | CLONE_FILES);
105668 /* stdin/stdout/stderr for /linuxrc */
105669 - sys_open("/dev/console", O_RDWR, 0);
105670 + sys_open((const char __force_user *)"/dev/console", O_RDWR, 0);
105671 sys_dup(0);
105672 sys_dup(0);
105673 /* move initrd over / and chdir/chroot in initrd root */
105674 - sys_chdir("/root");
105675 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
105676 - sys_chroot(".");
105677 + sys_chdir((const char __force_user *)"/root");
105678 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
105679 + sys_chroot((const char __force_user *)".");
105680 sys_setsid();
105681 return 0;
105682 }
105683 @@ -59,8 +59,8 @@ static void __init handle_initrd(void)
105684 create_dev("/dev/root.old", Root_RAM0);
105685 /* mount initrd on rootfs' /root */
105686 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
105687 - sys_mkdir("/old", 0700);
105688 - sys_chdir("/old");
105689 + sys_mkdir((const char __force_user *)"/old", 0700);
105690 + sys_chdir((const char __force_user *)"/old");
105691
105692 /* try loading default modules from initrd */
105693 load_default_modules();
105694 @@ -80,31 +80,31 @@ static void __init handle_initrd(void)
105695 current->flags &= ~PF_FREEZER_SKIP;
105696
105697 /* move initrd to rootfs' /old */
105698 - sys_mount("..", ".", NULL, MS_MOVE, NULL);
105699 + sys_mount((char __force_user *)"..", (char __force_user *)".", NULL, MS_MOVE, NULL);
105700 /* switch root and cwd back to / of rootfs */
105701 - sys_chroot("..");
105702 + sys_chroot((const char __force_user *)"..");
105703
105704 if (new_decode_dev(real_root_dev) == Root_RAM0) {
105705 - sys_chdir("/old");
105706 + sys_chdir((const char __force_user *)"/old");
105707 return;
105708 }
105709
105710 - sys_chdir("/");
105711 + sys_chdir((const char __force_user *)"/");
105712 ROOT_DEV = new_decode_dev(real_root_dev);
105713 mount_root();
105714
105715 printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
105716 - error = sys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
105717 + error = sys_mount((char __force_user *)"/old", (char __force_user *)"/root/initrd", NULL, MS_MOVE, NULL);
105718 if (!error)
105719 printk("okay\n");
105720 else {
105721 - int fd = sys_open("/dev/root.old", O_RDWR, 0);
105722 + int fd = sys_open((const char __force_user *)"/dev/root.old", O_RDWR, 0);
105723 if (error == -ENOENT)
105724 printk("/initrd does not exist. Ignored.\n");
105725 else
105726 printk("failed\n");
105727 printk(KERN_NOTICE "Unmounting old root\n");
105728 - sys_umount("/old", MNT_DETACH);
105729 + sys_umount((char __force_user *)"/old", MNT_DETACH);
105730 printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
105731 if (fd < 0) {
105732 error = fd;
105733 @@ -127,11 +127,11 @@ int __init initrd_load(void)
105734 * mounted in the normal path.
105735 */
105736 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
105737 - sys_unlink("/initrd.image");
105738 + sys_unlink((const char __force_user *)"/initrd.image");
105739 handle_initrd();
105740 return 1;
105741 }
105742 }
105743 - sys_unlink("/initrd.image");
105744 + sys_unlink((const char __force_user *)"/initrd.image");
105745 return 0;
105746 }
105747 diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
105748 index 8cb6db5..d729f50 100644
105749 --- a/init/do_mounts_md.c
105750 +++ b/init/do_mounts_md.c
105751 @@ -180,7 +180,7 @@ static void __init md_setup_drive(void)
105752 partitioned ? "_d" : "", minor,
105753 md_setup_args[ent].device_names);
105754
105755 - fd = sys_open(name, 0, 0);
105756 + fd = sys_open((char __force_user *)name, 0, 0);
105757 if (fd < 0) {
105758 printk(KERN_ERR "md: open failed - cannot start "
105759 "array %s\n", name);
105760 @@ -243,7 +243,7 @@ static void __init md_setup_drive(void)
105761 * array without it
105762 */
105763 sys_close(fd);
105764 - fd = sys_open(name, 0, 0);
105765 + fd = sys_open((char __force_user *)name, 0, 0);
105766 sys_ioctl(fd, BLKRRPART, 0);
105767 }
105768 sys_close(fd);
105769 @@ -293,7 +293,7 @@ static void __init autodetect_raid(void)
105770
105771 wait_for_device_probe();
105772
105773 - fd = sys_open("/dev/md0", 0, 0);
105774 + fd = sys_open((const char __force_user *) "/dev/md0", 0, 0);
105775 if (fd >= 0) {
105776 sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
105777 sys_close(fd);
105778 diff --git a/init/init_task.c b/init/init_task.c
105779 index ba0a7f36..2bcf1d5 100644
105780 --- a/init/init_task.c
105781 +++ b/init/init_task.c
105782 @@ -22,5 +22,9 @@ EXPORT_SYMBOL(init_task);
105783 * Initial thread structure. Alignment of this is handled by a special
105784 * linker map entry.
105785 */
105786 +#ifdef CONFIG_X86
105787 +union thread_union init_thread_union __init_task_data;
105788 +#else
105789 union thread_union init_thread_union __init_task_data =
105790 { INIT_THREAD_INFO(init_task) };
105791 +#endif
105792 diff --git a/init/initramfs.c b/init/initramfs.c
105793 index b32ad7d..05f6420 100644
105794 --- a/init/initramfs.c
105795 +++ b/init/initramfs.c
105796 @@ -25,7 +25,7 @@ static ssize_t __init xwrite(int fd, const char *p, size_t count)
105797
105798 /* sys_write only can write MAX_RW_COUNT aka 2G-4K bytes at most */
105799 while (count) {
105800 - ssize_t rv = sys_write(fd, p, count);
105801 + ssize_t rv = sys_write(fd, (char __force_user *)p, count);
105802
105803 if (rv < 0) {
105804 if (rv == -EINTR || rv == -EAGAIN)
105805 @@ -107,7 +107,7 @@ static void __init free_hash(void)
105806 }
105807 }
105808
105809 -static long __init do_utime(char *filename, time_t mtime)
105810 +static long __init do_utime(char __force_user *filename, time_t mtime)
105811 {
105812 struct timespec t[2];
105813
105814 @@ -142,7 +142,7 @@ static void __init dir_utime(void)
105815 struct dir_entry *de, *tmp;
105816 list_for_each_entry_safe(de, tmp, &dir_list, list) {
105817 list_del(&de->list);
105818 - do_utime(de->name, de->mtime);
105819 + do_utime((char __force_user *)de->name, de->mtime);
105820 kfree(de->name);
105821 kfree(de);
105822 }
105823 @@ -304,7 +304,7 @@ static int __init maybe_link(void)
105824 if (nlink >= 2) {
105825 char *old = find_link(major, minor, ino, mode, collected);
105826 if (old)
105827 - return (sys_link(old, collected) < 0) ? -1 : 1;
105828 + return (sys_link((char __force_user *)old, (char __force_user *)collected) < 0) ? -1 : 1;
105829 }
105830 return 0;
105831 }
105832 @@ -313,11 +313,11 @@ static void __init clean_path(char *path, umode_t fmode)
105833 {
105834 struct stat st;
105835
105836 - if (!sys_newlstat(path, &st) && (st.st_mode ^ fmode) & S_IFMT) {
105837 + if (!sys_newlstat((char __force_user *)path, (struct stat __force_user *)&st) && (st.st_mode ^ fmode) & S_IFMT) {
105838 if (S_ISDIR(st.st_mode))
105839 - sys_rmdir(path);
105840 + sys_rmdir((char __force_user *)path);
105841 else
105842 - sys_unlink(path);
105843 + sys_unlink((char __force_user *)path);
105844 }
105845 }
105846
105847 @@ -338,7 +338,7 @@ static int __init do_name(void)
105848 int openflags = O_WRONLY|O_CREAT;
105849 if (ml != 1)
105850 openflags |= O_TRUNC;
105851 - wfd = sys_open(collected, openflags, mode);
105852 + wfd = sys_open((char __force_user *)collected, openflags, mode);
105853
105854 if (wfd >= 0) {
105855 sys_fchown(wfd, uid, gid);
105856 @@ -350,17 +350,17 @@ static int __init do_name(void)
105857 }
105858 }
105859 } else if (S_ISDIR(mode)) {
105860 - sys_mkdir(collected, mode);
105861 - sys_chown(collected, uid, gid);
105862 - sys_chmod(collected, mode);
105863 + sys_mkdir((char __force_user *)collected, mode);
105864 + sys_chown((char __force_user *)collected, uid, gid);
105865 + sys_chmod((char __force_user *)collected, mode);
105866 dir_add(collected, mtime);
105867 } else if (S_ISBLK(mode) || S_ISCHR(mode) ||
105868 S_ISFIFO(mode) || S_ISSOCK(mode)) {
105869 if (maybe_link() == 0) {
105870 - sys_mknod(collected, mode, rdev);
105871 - sys_chown(collected, uid, gid);
105872 - sys_chmod(collected, mode);
105873 - do_utime(collected, mtime);
105874 + sys_mknod((char __force_user *)collected, mode, rdev);
105875 + sys_chown((char __force_user *)collected, uid, gid);
105876 + sys_chmod((char __force_user *)collected, mode);
105877 + do_utime((char __force_user *)collected, mtime);
105878 }
105879 }
105880 return 0;
105881 @@ -372,7 +372,7 @@ static int __init do_copy(void)
105882 if (xwrite(wfd, victim, body_len) != body_len)
105883 error("write error");
105884 sys_close(wfd);
105885 - do_utime(vcollected, mtime);
105886 + do_utime((char __force_user *)vcollected, mtime);
105887 kfree(vcollected);
105888 eat(body_len);
105889 state = SkipIt;
105890 @@ -390,9 +390,9 @@ static int __init do_symlink(void)
105891 {
105892 collected[N_ALIGN(name_len) + body_len] = '\0';
105893 clean_path(collected, 0);
105894 - sys_symlink(collected + N_ALIGN(name_len), collected);
105895 - sys_lchown(collected, uid, gid);
105896 - do_utime(collected, mtime);
105897 + sys_symlink((char __force_user *)collected + N_ALIGN(name_len), (char __force_user *)collected);
105898 + sys_lchown((char __force_user *)collected, uid, gid);
105899 + do_utime((char __force_user *)collected, mtime);
105900 state = SkipIt;
105901 next_state = Reset;
105902 return 0;
105903 diff --git a/init/main.c b/init/main.c
105904 index 9e64d70..2f40cd9 100644
105905 --- a/init/main.c
105906 +++ b/init/main.c
105907 @@ -97,6 +97,8 @@ extern void radix_tree_init(void);
105908 static inline void mark_rodata_ro(void) { }
105909 #endif
105910
105911 +extern void grsecurity_init(void);
105912 +
105913 /*
105914 * Debug helper: via this flag we know that we are in 'early bootup code'
105915 * where only the boot processor is running with IRQ disabled. This means
105916 @@ -158,6 +160,48 @@ static int __init set_reset_devices(char *str)
105917
105918 __setup("reset_devices", set_reset_devices);
105919
105920 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
105921 +kgid_t grsec_proc_gid = KGIDT_INIT(CONFIG_GRKERNSEC_PROC_GID);
105922 +static int __init setup_grsec_proc_gid(char *str)
105923 +{
105924 + grsec_proc_gid = KGIDT_INIT(simple_strtol(str, NULL, 0));
105925 + return 1;
105926 +}
105927 +__setup("grsec_proc_gid=", setup_grsec_proc_gid);
105928 +#endif
105929 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
105930 +int grsec_enable_sysfs_restrict = 1;
105931 +static int __init setup_grsec_sysfs_restrict(char *str)
105932 +{
105933 + if (!simple_strtol(str, NULL, 0))
105934 + grsec_enable_sysfs_restrict = 0;
105935 + return 1;
105936 +}
105937 +__setup("grsec_sysfs_restrict", setup_grsec_sysfs_restrict);
105938 +#endif
105939 +
105940 +#ifdef CONFIG_PAX_SOFTMODE
105941 +int pax_softmode;
105942 +
105943 +static int __init setup_pax_softmode(char *str)
105944 +{
105945 + get_option(&str, &pax_softmode);
105946 + return 1;
105947 +}
105948 +__setup("pax_softmode=", setup_pax_softmode);
105949 +#endif
105950 +
105951 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
105952 +bool pax_size_overflow_report_only __read_only;
105953 +
105954 +static int __init setup_pax_size_overflow_report_only(char *str)
105955 +{
105956 + pax_size_overflow_report_only = true;
105957 + return 0;
105958 +}
105959 +early_param("pax_size_overflow_report_only", setup_pax_size_overflow_report_only);
105960 +#endif
105961 +
105962 static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
105963 const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
105964 static const char *panic_later, *panic_param;
105965 @@ -731,7 +775,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
105966 struct blacklist_entry *entry;
105967 char *fn_name;
105968
105969 - fn_name = kasprintf(GFP_KERNEL, "%pf", fn);
105970 + fn_name = kasprintf(GFP_KERNEL, "%pX", fn);
105971 if (!fn_name)
105972 return false;
105973
105974 @@ -783,7 +827,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
105975 {
105976 int count = preempt_count();
105977 int ret;
105978 - char msgbuf[64];
105979 + const char *msg1 = "", *msg2 = "";
105980
105981 if (initcall_blacklisted(fn))
105982 return -EPERM;
105983 @@ -793,18 +837,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
105984 else
105985 ret = fn();
105986
105987 - msgbuf[0] = 0;
105988 -
105989 if (preempt_count() != count) {
105990 - sprintf(msgbuf, "preemption imbalance ");
105991 + msg1 = " preemption imbalance";
105992 preempt_count_set(count);
105993 }
105994 if (irqs_disabled()) {
105995 - strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
105996 + msg2 = " disabled interrupts";
105997 local_irq_enable();
105998 }
105999 - WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
106000 + WARN(*msg1 || *msg2, "initcall %pF returned with%s%s\n", fn, msg1, msg2);
106001
106002 + add_latent_entropy();
106003 return ret;
106004 }
106005
106006 @@ -909,8 +952,8 @@ static int run_init_process(const char *init_filename)
106007 {
106008 argv_init[0] = init_filename;
106009 return do_execve(getname_kernel(init_filename),
106010 - (const char __user *const __user *)argv_init,
106011 - (const char __user *const __user *)envp_init);
106012 + (const char __user *const __force_user *)argv_init,
106013 + (const char __user *const __force_user *)envp_init);
106014 }
106015
106016 static int try_to_run_init_process(const char *init_filename)
106017 @@ -927,6 +970,10 @@ static int try_to_run_init_process(const char *init_filename)
106018 return ret;
106019 }
106020
106021 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
106022 +extern int gr_init_ran;
106023 +#endif
106024 +
106025 static noinline void __init kernel_init_freeable(void);
106026
106027 static int __ref kernel_init(void *unused)
106028 @@ -951,6 +998,11 @@ static int __ref kernel_init(void *unused)
106029 ramdisk_execute_command, ret);
106030 }
106031
106032 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
106033 + /* if no initrd was used, be extra sure we enforce chroot restrictions */
106034 + gr_init_ran = 1;
106035 +#endif
106036 +
106037 /*
106038 * We try each of these until one succeeds.
106039 *
106040 @@ -1008,7 +1060,7 @@ static noinline void __init kernel_init_freeable(void)
106041 do_basic_setup();
106042
106043 /* Open the /dev/console on the rootfs, this should never fail */
106044 - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
106045 + if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0)
106046 pr_err("Warning: unable to open an initial console.\n");
106047
106048 (void) sys_dup(0);
106049 @@ -1021,11 +1073,13 @@ static noinline void __init kernel_init_freeable(void)
106050 if (!ramdisk_execute_command)
106051 ramdisk_execute_command = "/init";
106052
106053 - if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
106054 + if (sys_access((const char __force_user *) ramdisk_execute_command, 0) != 0) {
106055 ramdisk_execute_command = NULL;
106056 prepare_namespace();
106057 }
106058
106059 + grsecurity_init();
106060 +
106061 /*
106062 * Ok, we have completed the initial bootup, and
106063 * we're essentially up and running. Get rid of the
106064 diff --git a/ipc/compat.c b/ipc/compat.c
106065 index 9b3c85f..5266b0f 100644
106066 --- a/ipc/compat.c
106067 +++ b/ipc/compat.c
106068 @@ -396,7 +396,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
106069 COMPAT_SHMLBA);
106070 if (err < 0)
106071 return err;
106072 - return put_user(raddr, (compat_ulong_t *)compat_ptr(third));
106073 + return put_user(raddr, (compat_ulong_t __user *)compat_ptr(third));
106074 }
106075 case SHMDT:
106076 return sys_shmdt(compat_ptr(ptr));
106077 @@ -747,7 +747,7 @@ COMPAT_SYSCALL_DEFINE3(shmctl, int, first, int, second, void __user *, uptr)
106078 }
106079
106080 COMPAT_SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsems,
106081 - unsigned, nsops,
106082 + compat_long_t, nsops,
106083 const struct compat_timespec __user *, timeout)
106084 {
106085 struct timespec __user *ts64;
106086 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
106087 index 8ad93c2..54036e1 100644
106088 --- a/ipc/ipc_sysctl.c
106089 +++ b/ipc/ipc_sysctl.c
106090 @@ -30,7 +30,7 @@ static void *get_ipc(struct ctl_table *table)
106091 static int proc_ipc_dointvec(struct ctl_table *table, int write,
106092 void __user *buffer, size_t *lenp, loff_t *ppos)
106093 {
106094 - struct ctl_table ipc_table;
106095 + ctl_table_no_const ipc_table;
106096
106097 memcpy(&ipc_table, table, sizeof(ipc_table));
106098 ipc_table.data = get_ipc(table);
106099 @@ -41,7 +41,7 @@ static int proc_ipc_dointvec(struct ctl_table *table, int write,
106100 static int proc_ipc_dointvec_minmax(struct ctl_table *table, int write,
106101 void __user *buffer, size_t *lenp, loff_t *ppos)
106102 {
106103 - struct ctl_table ipc_table;
106104 + ctl_table_no_const ipc_table;
106105
106106 memcpy(&ipc_table, table, sizeof(ipc_table));
106107 ipc_table.data = get_ipc(table);
106108 @@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write,
106109 static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
106110 void __user *buffer, size_t *lenp, loff_t *ppos)
106111 {
106112 - struct ctl_table ipc_table;
106113 + ctl_table_no_const ipc_table;
106114 memcpy(&ipc_table, table, sizeof(ipc_table));
106115 ipc_table.data = get_ipc(table);
106116
106117 @@ -76,7 +76,7 @@ static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
106118 static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
106119 void __user *buffer, size_t *lenp, loff_t *ppos)
106120 {
106121 - struct ctl_table ipc_table;
106122 + ctl_table_no_const ipc_table;
106123 int dummy = 0;
106124
106125 memcpy(&ipc_table, table, sizeof(ipc_table));
106126 @@ -99,6 +99,8 @@ static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
106127 static int zero;
106128 static int one = 1;
106129 static int int_max = INT_MAX;
106130 +static unsigned long long_zero = 0;
106131 +static unsigned long long_max = LONG_MAX;
106132
106133 static struct ctl_table ipc_kern_table[] = {
106134 {
106135 @@ -107,6 +109,8 @@ static struct ctl_table ipc_kern_table[] = {
106136 .maxlen = sizeof(init_ipc_ns.shm_ctlmax),
106137 .mode = 0644,
106138 .proc_handler = proc_ipc_doulongvec_minmax,
106139 + .extra1 = &long_zero,
106140 + .extra2 = &long_max,
106141 },
106142 {
106143 .procname = "shmall",
106144 @@ -114,6 +118,8 @@ static struct ctl_table ipc_kern_table[] = {
106145 .maxlen = sizeof(init_ipc_ns.shm_ctlall),
106146 .mode = 0644,
106147 .proc_handler = proc_ipc_doulongvec_minmax,
106148 + .extra1 = &long_zero,
106149 + .extra2 = &long_max,
106150 },
106151 {
106152 .procname = "shmmni",
106153 diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
106154 index 68d4e95..1477ded 100644
106155 --- a/ipc/mq_sysctl.c
106156 +++ b/ipc/mq_sysctl.c
106157 @@ -25,7 +25,7 @@ static void *get_mq(struct ctl_table *table)
106158 static int proc_mq_dointvec(struct ctl_table *table, int write,
106159 void __user *buffer, size_t *lenp, loff_t *ppos)
106160 {
106161 - struct ctl_table mq_table;
106162 + ctl_table_no_const mq_table;
106163 memcpy(&mq_table, table, sizeof(mq_table));
106164 mq_table.data = get_mq(table);
106165
106166 @@ -35,7 +35,7 @@ static int proc_mq_dointvec(struct ctl_table *table, int write,
106167 static int proc_mq_dointvec_minmax(struct ctl_table *table, int write,
106168 void __user *buffer, size_t *lenp, loff_t *ppos)
106169 {
106170 - struct ctl_table mq_table;
106171 + ctl_table_no_const mq_table;
106172 memcpy(&mq_table, table, sizeof(mq_table));
106173 mq_table.data = get_mq(table);
106174
106175 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
106176 index 161a180..be31d93 100644
106177 --- a/ipc/mqueue.c
106178 +++ b/ipc/mqueue.c
106179 @@ -274,6 +274,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
106180 mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
106181 info->attr.mq_msgsize);
106182
106183 + gr_learn_resource(current, RLIMIT_MSGQUEUE, u->mq_bytes + mq_bytes, 1);
106184 spin_lock(&mq_lock);
106185 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
106186 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
106187 diff --git a/ipc/msg.c b/ipc/msg.c
106188 index 1471db9..dbdcf7f 100644
106189 --- a/ipc/msg.c
106190 +++ b/ipc/msg.c
106191 @@ -1041,7 +1041,8 @@ void msg_exit_ns(struct ipc_namespace *ns)
106192 static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
106193 {
106194 struct user_namespace *user_ns = seq_user_ns(s);
106195 - struct msg_queue *msq = it;
106196 + struct kern_ipc_perm *perm = it;
106197 + struct msg_queue *msq = container_of(perm, struct msg_queue, q_perm);
106198
106199 seq_printf(s,
106200 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
106201 diff --git a/ipc/sem.c b/ipc/sem.c
106202 index b471e5a..cb0c603 100644
106203 --- a/ipc/sem.c
106204 +++ b/ipc/sem.c
106205 @@ -1790,7 +1790,7 @@ static int get_queue_result(struct sem_queue *q)
106206 }
106207
106208 SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
106209 - unsigned, nsops, const struct timespec __user *, timeout)
106210 + long, nsops, const struct timespec __user *, timeout)
106211 {
106212 int error = -EINVAL;
106213 struct sem_array *sma;
106214 @@ -2025,7 +2025,7 @@ out_free:
106215 }
106216
106217 SYSCALL_DEFINE3(semop, int, semid, struct sembuf __user *, tsops,
106218 - unsigned, nsops)
106219 + long, nsops)
106220 {
106221 return sys_semtimedop(semid, tsops, nsops, NULL);
106222 }
106223 @@ -2180,7 +2180,8 @@ void exit_sem(struct task_struct *tsk)
106224 static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
106225 {
106226 struct user_namespace *user_ns = seq_user_ns(s);
106227 - struct sem_array *sma = it;
106228 + struct kern_ipc_perm *perm = it;
106229 + struct sem_array *sma = container_of(perm, struct sem_array, sem_perm);
106230 time_t sem_otime;
106231
106232 /*
106233 diff --git a/ipc/shm.c b/ipc/shm.c
106234 index 4178727..fc727aa 100644
106235 --- a/ipc/shm.c
106236 +++ b/ipc/shm.c
106237 @@ -72,6 +72,14 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp);
106238 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
106239 #endif
106240
106241 +#ifdef CONFIG_GRKERNSEC
106242 +extern int gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
106243 + const u64 shm_createtime, const kuid_t cuid,
106244 + const int shmid);
106245 +extern int gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
106246 + const u64 shm_createtime);
106247 +#endif
106248 +
106249 void shm_init_ns(struct ipc_namespace *ns)
106250 {
106251 ns->shm_ctlmax = SHMMAX;
106252 @@ -555,6 +563,9 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
106253 shp->shm_lprid = 0;
106254 shp->shm_atim = shp->shm_dtim = 0;
106255 shp->shm_ctim = get_seconds();
106256 +#ifdef CONFIG_GRKERNSEC
106257 + shp->shm_createtime = ktime_get_ns();
106258 +#endif
106259 shp->shm_segsz = size;
106260 shp->shm_nattch = 0;
106261 shp->shm_file = file;
106262 @@ -1098,6 +1109,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
106263 f_mode = FMODE_READ | FMODE_WRITE;
106264 }
106265 if (shmflg & SHM_EXEC) {
106266 +
106267 +#ifdef CONFIG_PAX_MPROTECT
106268 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
106269 + goto out;
106270 +#endif
106271 +
106272 prot |= PROT_EXEC;
106273 acc_mode |= S_IXUGO;
106274 }
106275 @@ -1122,6 +1139,15 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
106276 if (err)
106277 goto out_unlock;
106278
106279 +#ifdef CONFIG_GRKERNSEC
106280 + if (!gr_handle_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime,
106281 + shp->shm_perm.cuid, shmid) ||
106282 + !gr_chroot_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime)) {
106283 + err = -EACCES;
106284 + goto out_unlock;
106285 + }
106286 +#endif
106287 +
106288 ipc_lock_object(&shp->shm_perm);
106289
106290 /* check if shm_destroy() is tearing down shp */
106291 @@ -1134,6 +1160,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
106292 path = shp->shm_file->f_path;
106293 path_get(&path);
106294 shp->shm_nattch++;
106295 +#ifdef CONFIG_GRKERNSEC
106296 + shp->shm_lapid = current->pid;
106297 +#endif
106298 size = i_size_read(d_inode(path.dentry));
106299 ipc_unlock_object(&shp->shm_perm);
106300 rcu_read_unlock();
106301 @@ -1332,7 +1361,8 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
106302 static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
106303 {
106304 struct user_namespace *user_ns = seq_user_ns(s);
106305 - struct shmid_kernel *shp = it;
106306 + struct kern_ipc_perm *perm = it;
106307 + struct shmid_kernel *shp = container_of(perm, struct shmid_kernel, shm_perm);
106308 unsigned long rss = 0, swp = 0;
106309
106310 shm_add_rss_swap(shp, &rss, &swp);
106311 diff --git a/ipc/util.c b/ipc/util.c
106312 index 0f401d9..049b0ff 100644
106313 --- a/ipc/util.c
106314 +++ b/ipc/util.c
106315 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
106316 int (*show)(struct seq_file *, void *);
106317 };
106318
106319 +extern int gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode);
106320 +
106321 /**
106322 * ipc_init - initialise ipc subsystem
106323 *
106324 @@ -494,6 +496,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
106325 granted_mode >>= 6;
106326 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
106327 granted_mode >>= 3;
106328 +
106329 + if (!gr_ipc_permitted(ns, ipcp, requested_mode, granted_mode))
106330 + return -1;
106331 +
106332 /* is there some bit set in requested_mode but not in granted_mode? */
106333 if ((requested_mode & ~granted_mode & 0007) &&
106334 !ns_capable(ns->user_ns, CAP_IPC_OWNER))
106335 diff --git a/kernel/audit.c b/kernel/audit.c
106336 index 662c007..50ad01c 100644
106337 --- a/kernel/audit.c
106338 +++ b/kernel/audit.c
106339 @@ -124,7 +124,7 @@ u32 audit_sig_sid = 0;
106340 3) suppressed due to audit_rate_limit
106341 4) suppressed due to audit_backlog_limit
106342 */
106343 -static atomic_t audit_lost = ATOMIC_INIT(0);
106344 +static atomic_unchecked_t audit_lost = ATOMIC_INIT(0);
106345
106346 /* The netlink socket. */
106347 static struct sock *audit_sock;
106348 @@ -258,7 +258,7 @@ void audit_log_lost(const char *message)
106349 unsigned long now;
106350 int print;
106351
106352 - atomic_inc(&audit_lost);
106353 + atomic_inc_unchecked(&audit_lost);
106354
106355 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
106356
106357 @@ -275,7 +275,7 @@ void audit_log_lost(const char *message)
106358 if (print) {
106359 if (printk_ratelimit())
106360 pr_warn("audit_lost=%u audit_rate_limit=%u audit_backlog_limit=%u\n",
106361 - atomic_read(&audit_lost),
106362 + atomic_read_unchecked(&audit_lost),
106363 audit_rate_limit,
106364 audit_backlog_limit);
106365 audit_panic(message);
106366 @@ -833,7 +833,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
106367 s.pid = audit_pid;
106368 s.rate_limit = audit_rate_limit;
106369 s.backlog_limit = audit_backlog_limit;
106370 - s.lost = atomic_read(&audit_lost);
106371 + s.lost = atomic_read_unchecked(&audit_lost);
106372 s.backlog = skb_queue_len(&audit_skb_queue);
106373 s.feature_bitmap = AUDIT_FEATURE_BITMAP_ALL;
106374 s.backlog_wait_time = audit_backlog_wait_time_master;
106375 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
106376 index b86cc04..dfbfd4e 100644
106377 --- a/kernel/auditsc.c
106378 +++ b/kernel/auditsc.c
106379 @@ -1024,7 +1024,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
106380 * for strings that are too long, we should not have created
106381 * any.
106382 */
106383 - if (WARN_ON_ONCE(len < 0 || len > MAX_ARG_STRLEN - 1)) {
106384 + if (WARN_ON_ONCE(len > MAX_ARG_STRLEN - 1)) {
106385 send_sig(SIGKILL, current, 0);
106386 return -1;
106387 }
106388 @@ -1955,7 +1955,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
106389 }
106390
106391 /* global counter which is incremented every time something logs in */
106392 -static atomic_t session_id = ATOMIC_INIT(0);
106393 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
106394
106395 static int audit_set_loginuid_perm(kuid_t loginuid)
106396 {
106397 @@ -2022,7 +2022,7 @@ int audit_set_loginuid(kuid_t loginuid)
106398
106399 /* are we setting or clearing? */
106400 if (uid_valid(loginuid))
106401 - sessionid = (unsigned int)atomic_inc_return(&session_id);
106402 + sessionid = (unsigned int)atomic_inc_return_unchecked(&session_id);
106403
106404 task->sessionid = sessionid;
106405 task->loginuid = loginuid;
106406 diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
106407 index 67c380c..46c3968 100644
106408 --- a/kernel/bpf/core.c
106409 +++ b/kernel/bpf/core.c
106410 @@ -145,14 +145,17 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
106411 * random section of illegal instructions.
106412 */
106413 size = round_up(proglen + sizeof(*hdr) + 128, PAGE_SIZE);
106414 - hdr = module_alloc(size);
106415 + hdr = module_alloc_exec(size);
106416 if (hdr == NULL)
106417 return NULL;
106418
106419 /* Fill space with illegal/arch-dep instructions. */
106420 bpf_fill_ill_insns(hdr, size);
106421
106422 + pax_open_kernel();
106423 hdr->pages = size / PAGE_SIZE;
106424 + pax_close_kernel();
106425 +
106426 hole = min_t(unsigned int, size - (proglen + sizeof(*hdr)),
106427 PAGE_SIZE - sizeof(*hdr));
106428 start = (prandom_u32() % hole) & ~(alignment - 1);
106429 @@ -165,7 +168,7 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
106430
106431 void bpf_jit_binary_free(struct bpf_binary_header *hdr)
106432 {
106433 - module_memfree(hdr);
106434 + module_memfree_exec(hdr);
106435 }
106436 #endif /* CONFIG_BPF_JIT */
106437
106438 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
106439 index 35bac8e..8de1d69 100644
106440 --- a/kernel/bpf/syscall.c
106441 +++ b/kernel/bpf/syscall.c
106442 @@ -596,11 +596,15 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
106443 int err;
106444
106445 /* the syscall is limited to root temporarily. This restriction will be
106446 - * lifted when security audit is clean. Note that eBPF+tracing must have
106447 - * this restriction, since it may pass kernel data to user space
106448 + * lifted by upstream when a half-assed security audit is clean. Note
106449 + * that eBPF+tracing must have this restriction, since it may pass
106450 + * kernel data to user space
106451 */
106452 if (!capable(CAP_SYS_ADMIN))
106453 return -EPERM;
106454 +#ifdef CONFIG_GRKERNSEC
106455 + return -EPERM;
106456 +#endif
106457
106458 if (!access_ok(VERIFY_READ, uattr, 1))
106459 return -EFAULT;
106460 diff --git a/kernel/capability.c b/kernel/capability.c
106461 index 45432b5..988f1e4 100644
106462 --- a/kernel/capability.c
106463 +++ b/kernel/capability.c
106464 @@ -193,6 +193,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
106465 * before modification is attempted and the application
106466 * fails.
106467 */
106468 + if (tocopy > ARRAY_SIZE(kdata))
106469 + return -EFAULT;
106470 +
106471 if (copy_to_user(dataptr, kdata, tocopy
106472 * sizeof(struct __user_cap_data_struct))) {
106473 return -EFAULT;
106474 @@ -298,10 +301,11 @@ bool has_ns_capability(struct task_struct *t,
106475 int ret;
106476
106477 rcu_read_lock();
106478 - ret = security_capable(__task_cred(t), ns, cap);
106479 + ret = security_capable(__task_cred(t), ns, cap) == 0 &&
106480 + gr_task_is_capable(t, __task_cred(t), cap);
106481 rcu_read_unlock();
106482
106483 - return (ret == 0);
106484 + return ret;
106485 }
106486
106487 /**
106488 @@ -338,10 +342,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
106489 int ret;
106490
106491 rcu_read_lock();
106492 - ret = security_capable_noaudit(__task_cred(t), ns, cap);
106493 + ret = security_capable_noaudit(__task_cred(t), ns, cap) == 0 && gr_task_is_capable_nolog(t, cap);
106494 rcu_read_unlock();
106495
106496 - return (ret == 0);
106497 + return ret;
106498 }
106499
106500 /**
106501 @@ -379,7 +383,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
106502 BUG();
106503 }
106504
106505 - if (security_capable(current_cred(), ns, cap) == 0) {
106506 + if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable(cap)) {
106507 current->flags |= PF_SUPERPRIV;
106508 return true;
106509 }
106510 @@ -387,6 +391,20 @@ bool ns_capable(struct user_namespace *ns, int cap)
106511 }
106512 EXPORT_SYMBOL(ns_capable);
106513
106514 +bool ns_capable_nolog(struct user_namespace *ns, int cap)
106515 +{
106516 + if (unlikely(!cap_valid(cap))) {
106517 + pr_crit("capable_nolog() called with invalid cap=%u\n", cap);
106518 + BUG();
106519 + }
106520 +
106521 + if (security_capable_noaudit(current_cred(), ns, cap) == 0 && gr_is_capable_nolog(cap)) {
106522 + current->flags |= PF_SUPERPRIV;
106523 + return true;
106524 + }
106525 + return false;
106526 +}
106527 +EXPORT_SYMBOL(ns_capable_nolog);
106528
106529 /**
106530 * capable - Determine if the current task has a superior capability in effect
106531 @@ -403,6 +421,13 @@ bool capable(int cap)
106532 return ns_capable(&init_user_ns, cap);
106533 }
106534 EXPORT_SYMBOL(capable);
106535 +
106536 +bool capable_nolog(int cap)
106537 +{
106538 + return ns_capable_nolog(&init_user_ns, cap);
106539 +}
106540 +EXPORT_SYMBOL(capable_nolog);
106541 +
106542 #endif /* CONFIG_MULTIUSER */
106543
106544 /**
106545 @@ -447,3 +472,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
106546 kgid_has_mapping(ns, inode->i_gid);
106547 }
106548 EXPORT_SYMBOL(capable_wrt_inode_uidgid);
106549 +
106550 +bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap)
106551 +{
106552 + struct user_namespace *ns = current_user_ns();
106553 +
106554 + return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
106555 + kgid_has_mapping(ns, inode->i_gid);
106556 +}
106557 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
106558 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
106559 index 2c9eae6..71ca037 100644
106560 --- a/kernel/cgroup.c
106561 +++ b/kernel/cgroup.c
106562 @@ -5503,6 +5503,9 @@ static void cgroup_release_agent(struct work_struct *work)
106563 if (!pathbuf || !agentbuf)
106564 goto out;
106565
106566 + if (agentbuf[0] == '\0')
106567 + goto out;
106568 +
106569 path = cgroup_path(cgrp, pathbuf, PATH_MAX);
106570 if (!path)
106571 goto out;
106572 @@ -5690,7 +5693,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
106573 struct task_struct *task;
106574 int count = 0;
106575
106576 - seq_printf(seq, "css_set %p\n", cset);
106577 + seq_printf(seq, "css_set %pK\n", cset);
106578
106579 list_for_each_entry(task, &cset->tasks, cg_list) {
106580 if (count++ > MAX_TASKS_SHOWN_PER_CSS)
106581 diff --git a/kernel/compat.c b/kernel/compat.c
106582 index 333d364..762ec00 100644
106583 --- a/kernel/compat.c
106584 +++ b/kernel/compat.c
106585 @@ -13,6 +13,7 @@
106586
106587 #include <linux/linkage.h>
106588 #include <linux/compat.h>
106589 +#include <linux/module.h>
106590 #include <linux/errno.h>
106591 #include <linux/time.h>
106592 #include <linux/signal.h>
106593 @@ -220,7 +221,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
106594 mm_segment_t oldfs;
106595 long ret;
106596
106597 - restart->nanosleep.rmtp = (struct timespec __user *) &rmt;
106598 + restart->nanosleep.rmtp = (struct timespec __force_user *) &rmt;
106599 oldfs = get_fs();
106600 set_fs(KERNEL_DS);
106601 ret = hrtimer_nanosleep_restart(restart);
106602 @@ -252,7 +253,7 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
106603 oldfs = get_fs();
106604 set_fs(KERNEL_DS);
106605 ret = hrtimer_nanosleep(&tu,
106606 - rmtp ? (struct timespec __user *)&rmt : NULL,
106607 + rmtp ? (struct timespec __force_user *)&rmt : NULL,
106608 HRTIMER_MODE_REL, CLOCK_MONOTONIC);
106609 set_fs(oldfs);
106610
106611 @@ -378,7 +379,7 @@ COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set)
106612 mm_segment_t old_fs = get_fs();
106613
106614 set_fs(KERNEL_DS);
106615 - ret = sys_sigpending((old_sigset_t __user *) &s);
106616 + ret = sys_sigpending((old_sigset_t __force_user *) &s);
106617 set_fs(old_fs);
106618 if (ret == 0)
106619 ret = put_user(s, set);
106620 @@ -468,7 +469,7 @@ COMPAT_SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
106621 mm_segment_t old_fs = get_fs();
106622
106623 set_fs(KERNEL_DS);
106624 - ret = sys_old_getrlimit(resource, (struct rlimit __user *)&r);
106625 + ret = sys_old_getrlimit(resource, (struct rlimit __force_user *)&r);
106626 set_fs(old_fs);
106627
106628 if (!ret) {
106629 @@ -550,8 +551,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
106630 set_fs (KERNEL_DS);
106631 ret = sys_wait4(pid,
106632 (stat_addr ?
106633 - (unsigned int __user *) &status : NULL),
106634 - options, (struct rusage __user *) &r);
106635 + (unsigned int __force_user *) &status : NULL),
106636 + options, (struct rusage __force_user *) &r);
106637 set_fs (old_fs);
106638
106639 if (ret > 0) {
106640 @@ -577,8 +578,8 @@ COMPAT_SYSCALL_DEFINE5(waitid,
106641 memset(&info, 0, sizeof(info));
106642
106643 set_fs(KERNEL_DS);
106644 - ret = sys_waitid(which, pid, (siginfo_t __user *)&info, options,
106645 - uru ? (struct rusage __user *)&ru : NULL);
106646 + ret = sys_waitid(which, pid, (siginfo_t __force_user *)&info, options,
106647 + uru ? (struct rusage __force_user *)&ru : NULL);
106648 set_fs(old_fs);
106649
106650 if ((ret < 0) || (info.si_signo == 0))
106651 @@ -712,8 +713,8 @@ COMPAT_SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
106652 oldfs = get_fs();
106653 set_fs(KERNEL_DS);
106654 err = sys_timer_settime(timer_id, flags,
106655 - (struct itimerspec __user *) &newts,
106656 - (struct itimerspec __user *) &oldts);
106657 + (struct itimerspec __force_user *) &newts,
106658 + (struct itimerspec __force_user *) &oldts);
106659 set_fs(oldfs);
106660 if (!err && old && put_compat_itimerspec(old, &oldts))
106661 return -EFAULT;
106662 @@ -730,7 +731,7 @@ COMPAT_SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
106663 oldfs = get_fs();
106664 set_fs(KERNEL_DS);
106665 err = sys_timer_gettime(timer_id,
106666 - (struct itimerspec __user *) &ts);
106667 + (struct itimerspec __force_user *) &ts);
106668 set_fs(oldfs);
106669 if (!err && put_compat_itimerspec(setting, &ts))
106670 return -EFAULT;
106671 @@ -749,7 +750,7 @@ COMPAT_SYSCALL_DEFINE2(clock_settime, clockid_t, which_clock,
106672 oldfs = get_fs();
106673 set_fs(KERNEL_DS);
106674 err = sys_clock_settime(which_clock,
106675 - (struct timespec __user *) &ts);
106676 + (struct timespec __force_user *) &ts);
106677 set_fs(oldfs);
106678 return err;
106679 }
106680 @@ -764,7 +765,7 @@ COMPAT_SYSCALL_DEFINE2(clock_gettime, clockid_t, which_clock,
106681 oldfs = get_fs();
106682 set_fs(KERNEL_DS);
106683 err = sys_clock_gettime(which_clock,
106684 - (struct timespec __user *) &ts);
106685 + (struct timespec __force_user *) &ts);
106686 set_fs(oldfs);
106687 if (!err && compat_put_timespec(&ts, tp))
106688 return -EFAULT;
106689 @@ -784,7 +785,7 @@ COMPAT_SYSCALL_DEFINE2(clock_adjtime, clockid_t, which_clock,
106690
106691 oldfs = get_fs();
106692 set_fs(KERNEL_DS);
106693 - ret = sys_clock_adjtime(which_clock, (struct timex __user *) &txc);
106694 + ret = sys_clock_adjtime(which_clock, (struct timex __force_user *) &txc);
106695 set_fs(oldfs);
106696
106697 err = compat_put_timex(utp, &txc);
106698 @@ -804,7 +805,7 @@ COMPAT_SYSCALL_DEFINE2(clock_getres, clockid_t, which_clock,
106699 oldfs = get_fs();
106700 set_fs(KERNEL_DS);
106701 err = sys_clock_getres(which_clock,
106702 - (struct timespec __user *) &ts);
106703 + (struct timespec __force_user *) &ts);
106704 set_fs(oldfs);
106705 if (!err && tp && compat_put_timespec(&ts, tp))
106706 return -EFAULT;
106707 @@ -818,7 +819,7 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
106708 struct timespec tu;
106709 struct compat_timespec __user *rmtp = restart->nanosleep.compat_rmtp;
106710
106711 - restart->nanosleep.rmtp = (struct timespec __user *) &tu;
106712 + restart->nanosleep.rmtp = (struct timespec __force_user *) &tu;
106713 oldfs = get_fs();
106714 set_fs(KERNEL_DS);
106715 err = clock_nanosleep_restart(restart);
106716 @@ -850,8 +851,8 @@ COMPAT_SYSCALL_DEFINE4(clock_nanosleep, clockid_t, which_clock, int, flags,
106717 oldfs = get_fs();
106718 set_fs(KERNEL_DS);
106719 err = sys_clock_nanosleep(which_clock, flags,
106720 - (struct timespec __user *) &in,
106721 - (struct timespec __user *) &out);
106722 + (struct timespec __force_user *) &in,
106723 + (struct timespec __force_user *) &out);
106724 set_fs(oldfs);
106725
106726 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
106727 @@ -1147,7 +1148,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
106728 mm_segment_t old_fs = get_fs();
106729
106730 set_fs(KERNEL_DS);
106731 - ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t);
106732 + ret = sys_sched_rr_get_interval(pid, (struct timespec __force_user *)&t);
106733 set_fs(old_fs);
106734 if (compat_put_timespec(&t, interval))
106735 return -EFAULT;
106736 diff --git a/kernel/configs.c b/kernel/configs.c
106737 index c18b1f1..b9a0132 100644
106738 --- a/kernel/configs.c
106739 +++ b/kernel/configs.c
106740 @@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
106741 struct proc_dir_entry *entry;
106742
106743 /* create the current config file */
106744 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
106745 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_HIDESYM)
106746 + entry = proc_create("config.gz", S_IFREG | S_IRUSR, NULL,
106747 + &ikconfig_file_ops);
106748 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
106749 + entry = proc_create("config.gz", S_IFREG | S_IRUSR | S_IRGRP, NULL,
106750 + &ikconfig_file_ops);
106751 +#endif
106752 +#else
106753 entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
106754 &ikconfig_file_ops);
106755 +#endif
106756 +
106757 if (!entry)
106758 return -ENOMEM;
106759
106760 diff --git a/kernel/cred.c b/kernel/cred.c
106761 index 71179a0..a72ab47 100644
106762 --- a/kernel/cred.c
106763 +++ b/kernel/cred.c
106764 @@ -172,6 +172,15 @@ void exit_creds(struct task_struct *tsk)
106765 validate_creds(cred);
106766 alter_cred_subscribers(cred, -1);
106767 put_cred(cred);
106768 +
106769 +#ifdef CONFIG_GRKERNSEC_SETXID
106770 + cred = (struct cred *) tsk->delayed_cred;
106771 + if (cred != NULL) {
106772 + tsk->delayed_cred = NULL;
106773 + validate_creds(cred);
106774 + put_cred(cred);
106775 + }
106776 +#endif
106777 }
106778
106779 /**
106780 @@ -419,7 +428,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
106781 * Always returns 0 thus allowing this function to be tail-called at the end
106782 * of, say, sys_setgid().
106783 */
106784 -int commit_creds(struct cred *new)
106785 +static int __commit_creds(struct cred *new)
106786 {
106787 struct task_struct *task = current;
106788 const struct cred *old = task->real_cred;
106789 @@ -438,6 +447,8 @@ int commit_creds(struct cred *new)
106790
106791 get_cred(new); /* we will require a ref for the subj creds too */
106792
106793 + gr_set_role_label(task, new->uid, new->gid);
106794 +
106795 /* dumpability changes */
106796 if (!uid_eq(old->euid, new->euid) ||
106797 !gid_eq(old->egid, new->egid) ||
106798 @@ -487,6 +498,105 @@ int commit_creds(struct cred *new)
106799 put_cred(old);
106800 return 0;
106801 }
106802 +#ifdef CONFIG_GRKERNSEC_SETXID
106803 +extern int set_user(struct cred *new);
106804 +
106805 +void gr_delayed_cred_worker(void)
106806 +{
106807 + const struct cred *new = current->delayed_cred;
106808 + struct cred *ncred;
106809 +
106810 + current->delayed_cred = NULL;
106811 +
106812 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID) && new != NULL) {
106813 + // from doing get_cred on it when queueing this
106814 + put_cred(new);
106815 + return;
106816 + } else if (new == NULL)
106817 + return;
106818 +
106819 + ncred = prepare_creds();
106820 + if (!ncred)
106821 + goto die;
106822 + // uids
106823 + ncred->uid = new->uid;
106824 + ncred->euid = new->euid;
106825 + ncred->suid = new->suid;
106826 + ncred->fsuid = new->fsuid;
106827 + // gids
106828 + ncred->gid = new->gid;
106829 + ncred->egid = new->egid;
106830 + ncred->sgid = new->sgid;
106831 + ncred->fsgid = new->fsgid;
106832 + // groups
106833 + set_groups(ncred, new->group_info);
106834 + // caps
106835 + ncred->securebits = new->securebits;
106836 + ncred->cap_inheritable = new->cap_inheritable;
106837 + ncred->cap_permitted = new->cap_permitted;
106838 + ncred->cap_effective = new->cap_effective;
106839 + ncred->cap_bset = new->cap_bset;
106840 +
106841 + if (set_user(ncred)) {
106842 + abort_creds(ncred);
106843 + goto die;
106844 + }
106845 +
106846 + // from doing get_cred on it when queueing this
106847 + put_cred(new);
106848 +
106849 + __commit_creds(ncred);
106850 + return;
106851 +die:
106852 + // from doing get_cred on it when queueing this
106853 + put_cred(new);
106854 + do_group_exit(SIGKILL);
106855 +}
106856 +#endif
106857 +
106858 +int commit_creds(struct cred *new)
106859 +{
106860 +#ifdef CONFIG_GRKERNSEC_SETXID
106861 + int ret;
106862 + int schedule_it = 0;
106863 + struct task_struct *t;
106864 + unsigned oldsecurebits = current_cred()->securebits;
106865 +
106866 + /* we won't get called with tasklist_lock held for writing
106867 + and interrupts disabled as the cred struct in that case is
106868 + init_cred
106869 + */
106870 + if (grsec_enable_setxid && !current_is_single_threaded() &&
106871 + uid_eq(current_uid(), GLOBAL_ROOT_UID) &&
106872 + !uid_eq(new->uid, GLOBAL_ROOT_UID)) {
106873 + schedule_it = 1;
106874 + }
106875 + ret = __commit_creds(new);
106876 + if (schedule_it) {
106877 + rcu_read_lock();
106878 + read_lock(&tasklist_lock);
106879 + for (t = next_thread(current); t != current;
106880 + t = next_thread(t)) {
106881 + /* we'll check if the thread has uid 0 in
106882 + * the delayed worker routine
106883 + */
106884 + if (task_securebits(t) == oldsecurebits &&
106885 + t->delayed_cred == NULL) {
106886 + t->delayed_cred = get_cred(new);
106887 + set_tsk_thread_flag(t, TIF_GRSEC_SETXID);
106888 + set_tsk_need_resched(t);
106889 + }
106890 + }
106891 + read_unlock(&tasklist_lock);
106892 + rcu_read_unlock();
106893 + }
106894 +
106895 + return ret;
106896 +#else
106897 + return __commit_creds(new);
106898 +#endif
106899 +}
106900 +
106901 EXPORT_SYMBOL(commit_creds);
106902
106903 /**
106904 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
106905 index 0874e2e..5b32cc9 100644
106906 --- a/kernel/debug/debug_core.c
106907 +++ b/kernel/debug/debug_core.c
106908 @@ -127,7 +127,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
106909 */
106910 static atomic_t masters_in_kgdb;
106911 static atomic_t slaves_in_kgdb;
106912 -static atomic_t kgdb_break_tasklet_var;
106913 +static atomic_unchecked_t kgdb_break_tasklet_var;
106914 atomic_t kgdb_setting_breakpoint;
106915
106916 struct task_struct *kgdb_usethread;
106917 @@ -137,7 +137,7 @@ int kgdb_single_step;
106918 static pid_t kgdb_sstep_pid;
106919
106920 /* to keep track of the CPU which is doing the single stepping*/
106921 -atomic_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
106922 +atomic_unchecked_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
106923
106924 /*
106925 * If you are debugging a problem where roundup (the collection of
106926 @@ -552,7 +552,7 @@ return_normal:
106927 * kernel will only try for the value of sstep_tries before
106928 * giving up and continuing on.
106929 */
106930 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1 &&
106931 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1 &&
106932 (kgdb_info[cpu].task &&
106933 kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
106934 atomic_set(&kgdb_active, -1);
106935 @@ -654,8 +654,8 @@ cpu_master_loop:
106936 }
106937
106938 kgdb_restore:
106939 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
106940 - int sstep_cpu = atomic_read(&kgdb_cpu_doing_single_step);
106941 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
106942 + int sstep_cpu = atomic_read_unchecked(&kgdb_cpu_doing_single_step);
106943 if (kgdb_info[sstep_cpu].task)
106944 kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
106945 else
106946 @@ -949,18 +949,18 @@ static void kgdb_unregister_callbacks(void)
106947 static void kgdb_tasklet_bpt(unsigned long ing)
106948 {
106949 kgdb_breakpoint();
106950 - atomic_set(&kgdb_break_tasklet_var, 0);
106951 + atomic_set_unchecked(&kgdb_break_tasklet_var, 0);
106952 }
106953
106954 static DECLARE_TASKLET(kgdb_tasklet_breakpoint, kgdb_tasklet_bpt, 0);
106955
106956 void kgdb_schedule_breakpoint(void)
106957 {
106958 - if (atomic_read(&kgdb_break_tasklet_var) ||
106959 + if (atomic_read_unchecked(&kgdb_break_tasklet_var) ||
106960 atomic_read(&kgdb_active) != -1 ||
106961 atomic_read(&kgdb_setting_breakpoint))
106962 return;
106963 - atomic_inc(&kgdb_break_tasklet_var);
106964 + atomic_inc_unchecked(&kgdb_break_tasklet_var);
106965 tasklet_schedule(&kgdb_tasklet_breakpoint);
106966 }
106967 EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
106968 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
106969 index 41213454..861e178 100644
106970 --- a/kernel/debug/kdb/kdb_main.c
106971 +++ b/kernel/debug/kdb/kdb_main.c
106972 @@ -2021,7 +2021,7 @@ static int kdb_lsmod(int argc, const char **argv)
106973 continue;
106974
106975 kdb_printf("%-20s%8u 0x%p ", mod->name,
106976 - mod->core_size, (void *)mod);
106977 + mod->core_size_rx + mod->core_size_rw, (void *)mod);
106978 #ifdef CONFIG_MODULE_UNLOAD
106979 kdb_printf("%4d ", module_refcount(mod));
106980 #endif
106981 @@ -2031,7 +2031,7 @@ static int kdb_lsmod(int argc, const char **argv)
106982 kdb_printf(" (Loading)");
106983 else
106984 kdb_printf(" (Live)");
106985 - kdb_printf(" 0x%p", mod->module_core);
106986 + kdb_printf(" 0x%p 0x%p", mod->module_core_rx, mod->module_core_rw);
106987
106988 #ifdef CONFIG_MODULE_UNLOAD
106989 {
106990 diff --git a/kernel/events/core.c b/kernel/events/core.c
106991 index b11756f..e495479 100644
106992 --- a/kernel/events/core.c
106993 +++ b/kernel/events/core.c
106994 @@ -175,8 +175,15 @@ static struct srcu_struct pmus_srcu;
106995 * 0 - disallow raw tracepoint access for unpriv
106996 * 1 - disallow cpu events for unpriv
106997 * 2 - disallow kernel profiling for unpriv
106998 + * 3 - disallow all unpriv perf event use
106999 */
107000 -int sysctl_perf_event_paranoid __read_mostly = 1;
107001 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
107002 +int sysctl_perf_event_legitimately_concerned __read_only = 3;
107003 +#elif defined(CONFIG_GRKERNSEC_HIDESYM)
107004 +int sysctl_perf_event_legitimately_concerned __read_only = 2;
107005 +#else
107006 +int sysctl_perf_event_legitimately_concerned __read_only = 1;
107007 +#endif
107008
107009 /* Minimum for 512 kiB + 1 user control page */
107010 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
107011 @@ -202,7 +209,7 @@ void update_perf_cpu_limits(void)
107012
107013 tmp *= sysctl_perf_cpu_time_max_percent;
107014 do_div(tmp, 100);
107015 - ACCESS_ONCE(perf_sample_allowed_ns) = tmp;
107016 + ACCESS_ONCE_RW(perf_sample_allowed_ns) = tmp;
107017 }
107018
107019 static int perf_rotate_context(struct perf_cpu_context *cpuctx);
107020 @@ -308,7 +315,7 @@ void perf_sample_event_took(u64 sample_len_ns)
107021 }
107022 }
107023
107024 -static atomic64_t perf_event_id;
107025 +static atomic64_unchecked_t perf_event_id;
107026
107027 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
107028 enum event_type_t event_type);
107029 @@ -3384,7 +3391,7 @@ find_lively_task_by_vpid(pid_t vpid)
107030
107031 /* Reuse ptrace permission checks for now. */
107032 err = -EACCES;
107033 - if (!ptrace_may_access(task, PTRACE_MODE_READ))
107034 + if (!ptrace_may_access(task, PTRACE_MODE_READ_REALCREDS))
107035 goto errout;
107036
107037 return task;
107038 @@ -3845,9 +3852,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
107039 mutex_lock(&event->child_mutex);
107040 total += perf_event_read(event);
107041 *enabled += event->total_time_enabled +
107042 - atomic64_read(&event->child_total_time_enabled);
107043 + atomic64_read_unchecked(&event->child_total_time_enabled);
107044 *running += event->total_time_running +
107045 - atomic64_read(&event->child_total_time_running);
107046 + atomic64_read_unchecked(&event->child_total_time_running);
107047
107048 list_for_each_entry(child, &event->child_list, child_list) {
107049 total += perf_event_read(child);
107050 @@ -4377,10 +4384,10 @@ void perf_event_update_userpage(struct perf_event *event)
107051 userpg->offset -= local64_read(&event->hw.prev_count);
107052
107053 userpg->time_enabled = enabled +
107054 - atomic64_read(&event->child_total_time_enabled);
107055 + atomic64_read_unchecked(&event->child_total_time_enabled);
107056
107057 userpg->time_running = running +
107058 - atomic64_read(&event->child_total_time_running);
107059 + atomic64_read_unchecked(&event->child_total_time_running);
107060
107061 arch_perf_update_userpage(event, userpg, now);
107062
107063 @@ -5055,7 +5062,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
107064
107065 /* Data. */
107066 sp = perf_user_stack_pointer(regs);
107067 - rem = __output_copy_user(handle, (void *) sp, dump_size);
107068 + rem = __output_copy_user(handle, (void __user *) sp, dump_size);
107069 dyn_size = dump_size - rem;
107070
107071 perf_output_skip(handle, rem);
107072 @@ -5146,11 +5153,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
107073 values[n++] = perf_event_count(event);
107074 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
107075 values[n++] = enabled +
107076 - atomic64_read(&event->child_total_time_enabled);
107077 + atomic64_read_unchecked(&event->child_total_time_enabled);
107078 }
107079 if (read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) {
107080 values[n++] = running +
107081 - atomic64_read(&event->child_total_time_running);
107082 + atomic64_read_unchecked(&event->child_total_time_running);
107083 }
107084 if (read_format & PERF_FORMAT_ID)
107085 values[n++] = primary_event_id(event);
107086 @@ -7767,7 +7774,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
107087 event->parent = parent_event;
107088
107089 event->ns = get_pid_ns(task_active_pid_ns(current));
107090 - event->id = atomic64_inc_return(&perf_event_id);
107091 + event->id = atomic64_inc_return_unchecked(&perf_event_id);
107092
107093 event->state = PERF_EVENT_STATE_INACTIVE;
107094
107095 @@ -8126,6 +8133,11 @@ SYSCALL_DEFINE5(perf_event_open,
107096 if (flags & ~PERF_FLAG_ALL)
107097 return -EINVAL;
107098
107099 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
107100 + if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
107101 + return -EACCES;
107102 +#endif
107103 +
107104 err = perf_copy_attr(attr_uptr, &attr);
107105 if (err)
107106 return err;
107107 @@ -8597,10 +8609,10 @@ static void sync_child_event(struct perf_event *child_event,
107108 /*
107109 * Add back the child's count to the parent's count:
107110 */
107111 - atomic64_add(child_val, &parent_event->child_count);
107112 - atomic64_add(child_event->total_time_enabled,
107113 + atomic64_add_unchecked(child_val, &parent_event->child_count);
107114 + atomic64_add_unchecked(child_event->total_time_enabled,
107115 &parent_event->child_total_time_enabled);
107116 - atomic64_add(child_event->total_time_running,
107117 + atomic64_add_unchecked(child_event->total_time_running,
107118 &parent_event->child_total_time_running);
107119
107120 /*
107121 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
107122 index 2bbad9c..056f20c 100644
107123 --- a/kernel/events/internal.h
107124 +++ b/kernel/events/internal.h
107125 @@ -115,10 +115,10 @@ static inline unsigned long perf_aux_size(struct ring_buffer *rb)
107126 return rb->aux_nr_pages << PAGE_SHIFT;
107127 }
107128
107129 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func) \
107130 +#define DEFINE_OUTPUT_COPY(func_name, memcpy_func, user) \
107131 static inline unsigned long \
107132 func_name(struct perf_output_handle *handle, \
107133 - const void *buf, unsigned long len) \
107134 + const void user *buf, unsigned long len) \
107135 { \
107136 unsigned long size, written; \
107137 \
107138 @@ -151,7 +151,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
107139 return 0;
107140 }
107141
107142 -DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
107143 +DEFINE_OUTPUT_COPY(__output_copy, memcpy_common, )
107144
107145 static inline unsigned long
107146 memcpy_skip(void *dst, const void *src, unsigned long n)
107147 @@ -159,7 +159,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
107148 return 0;
107149 }
107150
107151 -DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip)
107152 +DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip, )
107153
107154 #ifndef arch_perf_out_copy_user
107155 #define arch_perf_out_copy_user arch_perf_out_copy_user
107156 @@ -177,7 +177,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
107157 }
107158 #endif
107159
107160 -DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user)
107161 +DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user, __user)
107162
107163 /* Callchain handling */
107164 extern struct perf_callchain_entry *
107165 diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
107166 index 4e5e979..b4d6566 100644
107167 --- a/kernel/events/uprobes.c
107168 +++ b/kernel/events/uprobes.c
107169 @@ -1689,7 +1689,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
107170 {
107171 struct page *page;
107172 uprobe_opcode_t opcode;
107173 - int result;
107174 + long result;
107175
107176 pagefault_disable();
107177 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr,
107178 diff --git a/kernel/exit.c b/kernel/exit.c
107179 index ea95ee1..27177a8 100644
107180 --- a/kernel/exit.c
107181 +++ b/kernel/exit.c
107182 @@ -171,6 +171,10 @@ void release_task(struct task_struct *p)
107183 struct task_struct *leader;
107184 int zap_leader;
107185 repeat:
107186 +#ifdef CONFIG_NET
107187 + gr_del_task_from_ip_table(p);
107188 +#endif
107189 +
107190 /* don't need to get the RCU readlock here - the process is dead and
107191 * can't be modifying its own credentials. But shut RCU-lockdep up */
107192 rcu_read_lock();
107193 @@ -450,9 +454,8 @@ static struct task_struct *find_alive_thread(struct task_struct *p)
107194 return NULL;
107195 }
107196
107197 +static struct task_struct *find_child_reaper(struct task_struct *father) __must_hold(&tasklist_lock);
107198 static struct task_struct *find_child_reaper(struct task_struct *father)
107199 - __releases(&tasklist_lock)
107200 - __acquires(&tasklist_lock)
107201 {
107202 struct pid_namespace *pid_ns = task_active_pid_ns(father);
107203 struct task_struct *reaper = pid_ns->child_reaper;
107204 @@ -549,6 +552,8 @@ static void reparent_leader(struct task_struct *father, struct task_struct *p,
107205 * jobs, send them a SIGHUP and then a SIGCONT. (POSIX 3.2.2.2)
107206 */
107207 static void forget_original_parent(struct task_struct *father,
107208 + struct list_head *dead) __must_hold(&tasklist_lock);
107209 +static void forget_original_parent(struct task_struct *father,
107210 struct list_head *dead)
107211 {
107212 struct task_struct *p, *t, *reaper;
107213 @@ -656,6 +661,8 @@ void do_exit(long code)
107214 int group_dead;
107215 TASKS_RCU(int tasks_rcu_i);
107216
107217 + set_fs(USER_DS);
107218 +
107219 profile_task_exit(tsk);
107220
107221 WARN_ON(blk_needs_flush_plug(tsk));
107222 @@ -672,7 +679,6 @@ void do_exit(long code)
107223 * mm_release()->clear_child_tid() from writing to a user-controlled
107224 * kernel address.
107225 */
107226 - set_fs(USER_DS);
107227
107228 ptrace_event(PTRACE_EVENT_EXIT, code);
107229
107230 @@ -730,6 +736,9 @@ void do_exit(long code)
107231 tsk->exit_code = code;
107232 taskstats_exit(tsk, group_dead);
107233
107234 + gr_acl_handle_psacct(tsk, code);
107235 + gr_acl_handle_exit();
107236 +
107237 exit_mm(tsk);
107238
107239 if (group_dead)
107240 @@ -847,7 +856,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
107241 * Take down every thread in the group. This is called by fatal signals
107242 * as well as by sys_exit_group (below).
107243 */
107244 -void
107245 +__noreturn void
107246 do_group_exit(int exit_code)
107247 {
107248 struct signal_struct *sig = current->signal;
107249 @@ -964,6 +973,7 @@ static int wait_noreap_copyout(struct wait_opts *wo, struct task_struct *p,
107250 * the lock and this task is uninteresting. If we return nonzero, we have
107251 * released the lock and the system call should return.
107252 */
107253 +static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p) __must_hold(&tasklist_lock);
107254 static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
107255 {
107256 int state, retval, status;
107257 @@ -980,6 +990,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
107258
107259 get_task_struct(p);
107260 read_unlock(&tasklist_lock);
107261 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
107262 sched_annotate_sleep();
107263
107264 if ((exit_code & 0x7f) == 0) {
107265 @@ -1002,6 +1013,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
107266 * We own this thread, nobody else can reap it.
107267 */
107268 read_unlock(&tasklist_lock);
107269 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
107270 sched_annotate_sleep();
107271
107272 /*
107273 @@ -1145,6 +1157,8 @@ static int *task_stopped_code(struct task_struct *p, bool ptrace)
107274 * search should terminate.
107275 */
107276 static int wait_task_stopped(struct wait_opts *wo,
107277 + int ptrace, struct task_struct *p) __must_hold(&tasklist_lock);
107278 +static int wait_task_stopped(struct wait_opts *wo,
107279 int ptrace, struct task_struct *p)
107280 {
107281 struct siginfo __user *infop;
107282 @@ -1192,6 +1206,7 @@ unlock_sig:
107283 pid = task_pid_vnr(p);
107284 why = ptrace ? CLD_TRAPPED : CLD_STOPPED;
107285 read_unlock(&tasklist_lock);
107286 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
107287 sched_annotate_sleep();
107288
107289 if (unlikely(wo->wo_flags & WNOWAIT))
107290 @@ -1229,6 +1244,7 @@ unlock_sig:
107291 * the lock and this task is uninteresting. If we return nonzero, we have
107292 * released the lock and the system call should return.
107293 */
107294 +static int wait_task_continued(struct wait_opts *wo, struct task_struct *p) __must_hold(&tasklist_lock);
107295 static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
107296 {
107297 int retval;
107298 @@ -1255,6 +1271,7 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
107299 pid = task_pid_vnr(p);
107300 get_task_struct(p);
107301 read_unlock(&tasklist_lock);
107302 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
107303 sched_annotate_sleep();
107304
107305 if (!wo->wo_info) {
107306 @@ -1284,6 +1301,8 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
107307 * or another error from security_task_wait(), or still -ECHILD.
107308 */
107309 static int wait_consider_task(struct wait_opts *wo, int ptrace,
107310 + struct task_struct *p) __must_hold(&tasklist_lock);
107311 +static int wait_consider_task(struct wait_opts *wo, int ptrace,
107312 struct task_struct *p)
107313 {
107314 /*
107315 @@ -1409,6 +1428,7 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
107316 * ->notask_error is 0 if there were any eligible children,
107317 * or another error from security_task_wait(), or still -ECHILD.
107318 */
107319 +static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk) __must_hold(&tasklist_lock);
107320 static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
107321 {
107322 struct task_struct *p;
107323 @@ -1423,6 +1443,7 @@ static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
107324 return 0;
107325 }
107326
107327 +static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk) __must_hold(&tasklist_lock);
107328 static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk)
107329 {
107330 struct task_struct *p;
107331 @@ -1486,12 +1507,16 @@ repeat:
107332 tsk = current;
107333 do {
107334 retval = do_wait_thread(wo, tsk);
107335 - if (retval)
107336 + if (retval) {
107337 + __release(&tasklist_lock); // XXX sparse can't model conditional release
107338 goto end;
107339 + }
107340
107341 retval = ptrace_do_wait(wo, tsk);
107342 - if (retval)
107343 + if (retval) {
107344 + __release(&tasklist_lock); // XXX sparse can't model conditional release
107345 goto end;
107346 + }
107347
107348 if (wo->wo_flags & __WNOTHREAD)
107349 break;
107350 diff --git a/kernel/fork.c b/kernel/fork.c
107351 index 2845623..4b46ab9 100644
107352 --- a/kernel/fork.c
107353 +++ b/kernel/fork.c
107354 @@ -188,12 +188,54 @@ static void free_thread_info(struct thread_info *ti)
107355 void thread_info_cache_init(void)
107356 {
107357 thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE,
107358 - THREAD_SIZE, 0, NULL);
107359 + THREAD_SIZE, SLAB_USERCOPY, NULL);
107360 BUG_ON(thread_info_cache == NULL);
107361 }
107362 # endif
107363 #endif
107364
107365 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
107366 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
107367 + int node, void **lowmem_stack)
107368 +{
107369 + struct page *pages[THREAD_SIZE / PAGE_SIZE];
107370 + void *ret = NULL;
107371 + unsigned int i;
107372 +
107373 + *lowmem_stack = alloc_thread_info_node(tsk, node);
107374 + if (*lowmem_stack == NULL)
107375 + goto out;
107376 +
107377 + for (i = 0; i < THREAD_SIZE / PAGE_SIZE; i++)
107378 + pages[i] = virt_to_page(*lowmem_stack + (i * PAGE_SIZE));
107379 +
107380 + /* use VM_IOREMAP to gain THREAD_SIZE alignment */
107381 + ret = vmap(pages, THREAD_SIZE / PAGE_SIZE, VM_IOREMAP, PAGE_KERNEL);
107382 + if (ret == NULL) {
107383 + free_thread_info(*lowmem_stack);
107384 + *lowmem_stack = NULL;
107385 + }
107386 +
107387 +out:
107388 + return ret;
107389 +}
107390 +
107391 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
107392 +{
107393 + unmap_process_stacks(tsk);
107394 +}
107395 +#else
107396 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
107397 + int node, void **lowmem_stack)
107398 +{
107399 + return alloc_thread_info_node(tsk, node);
107400 +}
107401 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
107402 +{
107403 + free_thread_info(ti);
107404 +}
107405 +#endif
107406 +
107407 /* SLAB cache for signal_struct structures (tsk->signal) */
107408 static struct kmem_cache *signal_cachep;
107409
107410 @@ -212,18 +254,22 @@ struct kmem_cache *vm_area_cachep;
107411 /* SLAB cache for mm_struct structures (tsk->mm) */
107412 static struct kmem_cache *mm_cachep;
107413
107414 -static void account_kernel_stack(struct thread_info *ti, int account)
107415 +static void account_kernel_stack(struct task_struct *tsk, struct thread_info *ti, int account)
107416 {
107417 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
107418 + struct zone *zone = page_zone(virt_to_page(tsk->lowmem_stack));
107419 +#else
107420 struct zone *zone = page_zone(virt_to_page(ti));
107421 +#endif
107422
107423 mod_zone_page_state(zone, NR_KERNEL_STACK, account);
107424 }
107425
107426 void free_task(struct task_struct *tsk)
107427 {
107428 - account_kernel_stack(tsk->stack, -1);
107429 + account_kernel_stack(tsk, tsk->stack, -1);
107430 arch_release_thread_info(tsk->stack);
107431 - free_thread_info(tsk->stack);
107432 + gr_free_thread_info(tsk, tsk->stack);
107433 rt_mutex_debug_task_free(tsk);
107434 ftrace_graph_exit_task(tsk);
107435 put_seccomp_filter(tsk);
107436 @@ -289,7 +335,7 @@ static void set_max_threads(unsigned int max_threads_suggested)
107437
107438 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
107439 /* Initialized by the architecture: */
107440 -int arch_task_struct_size __read_mostly;
107441 +size_t arch_task_struct_size __read_mostly;
107442 #endif
107443
107444 void __init fork_init(void)
107445 @@ -334,6 +380,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107446 {
107447 struct task_struct *tsk;
107448 struct thread_info *ti;
107449 + void *lowmem_stack;
107450 int node = tsk_fork_get_node(orig);
107451 int err;
107452
107453 @@ -341,7 +388,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107454 if (!tsk)
107455 return NULL;
107456
107457 - ti = alloc_thread_info_node(tsk, node);
107458 + ti = gr_alloc_thread_info_node(tsk, node, &lowmem_stack);
107459 if (!ti)
107460 goto free_tsk;
107461
107462 @@ -350,6 +397,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107463 goto free_ti;
107464
107465 tsk->stack = ti;
107466 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
107467 + tsk->lowmem_stack = lowmem_stack;
107468 +#endif
107469 #ifdef CONFIG_SECCOMP
107470 /*
107471 * We must handle setting up seccomp filters once we're under
107472 @@ -366,7 +416,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107473 set_task_stack_end_magic(tsk);
107474
107475 #ifdef CONFIG_CC_STACKPROTECTOR
107476 - tsk->stack_canary = get_random_int();
107477 + tsk->stack_canary = pax_get_random_long();
107478 #endif
107479
107480 /*
107481 @@ -380,24 +430,90 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107482 tsk->splice_pipe = NULL;
107483 tsk->task_frag.page = NULL;
107484
107485 - account_kernel_stack(ti, 1);
107486 + account_kernel_stack(tsk, ti, 1);
107487
107488 return tsk;
107489
107490 free_ti:
107491 - free_thread_info(ti);
107492 + gr_free_thread_info(tsk, ti);
107493 free_tsk:
107494 free_task_struct(tsk);
107495 return NULL;
107496 }
107497
107498 #ifdef CONFIG_MMU
107499 -static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107500 +static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct mm_struct *oldmm, struct vm_area_struct *mpnt)
107501 +{
107502 + struct vm_area_struct *tmp;
107503 + unsigned long charge;
107504 + struct file *file;
107505 + int retval;
107506 +
107507 + charge = 0;
107508 + if (mpnt->vm_flags & VM_ACCOUNT) {
107509 + unsigned long len = vma_pages(mpnt);
107510 +
107511 + if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
107512 + goto fail_nomem;
107513 + charge = len;
107514 + }
107515 + tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
107516 + if (!tmp)
107517 + goto fail_nomem;
107518 + *tmp = *mpnt;
107519 + tmp->vm_mm = mm;
107520 + INIT_LIST_HEAD(&tmp->anon_vma_chain);
107521 + retval = vma_dup_policy(mpnt, tmp);
107522 + if (retval)
107523 + goto fail_nomem_policy;
107524 + if (anon_vma_fork(tmp, mpnt))
107525 + goto fail_nomem_anon_vma_fork;
107526 + tmp->vm_flags &= ~(VM_LOCKED|VM_UFFD_MISSING|VM_UFFD_WP);
107527 + tmp->vm_next = tmp->vm_prev = NULL;
107528 + tmp->vm_mirror = NULL;
107529 + tmp->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
107530 + file = tmp->vm_file;
107531 + if (file) {
107532 + struct inode *inode = file_inode(file);
107533 + struct address_space *mapping = file->f_mapping;
107534 +
107535 + get_file(file);
107536 + if (tmp->vm_flags & VM_DENYWRITE)
107537 + atomic_dec(&inode->i_writecount);
107538 + i_mmap_lock_write(mapping);
107539 + if (tmp->vm_flags & VM_SHARED)
107540 + atomic_inc(&mapping->i_mmap_writable);
107541 + flush_dcache_mmap_lock(mapping);
107542 + /* insert tmp into the share list, just after mpnt */
107543 + vma_interval_tree_insert_after(tmp, mpnt, &mapping->i_mmap);
107544 + flush_dcache_mmap_unlock(mapping);
107545 + i_mmap_unlock_write(mapping);
107546 + }
107547 +
107548 + /*
107549 + * Clear hugetlb-related page reserves for children. This only
107550 + * affects MAP_PRIVATE mappings. Faults generated by the child
107551 + * are not guaranteed to succeed, even if read-only
107552 + */
107553 + if (is_vm_hugetlb_page(tmp))
107554 + reset_vma_resv_huge_pages(tmp);
107555 +
107556 + return tmp;
107557 +
107558 +fail_nomem_anon_vma_fork:
107559 + mpol_put(vma_policy(tmp));
107560 +fail_nomem_policy:
107561 + kmem_cache_free(vm_area_cachep, tmp);
107562 +fail_nomem:
107563 + vm_unacct_memory(charge);
107564 + return NULL;
107565 +}
107566 +
107567 +static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107568 {
107569 struct vm_area_struct *mpnt, *tmp, *prev, **pprev;
107570 struct rb_node **rb_link, *rb_parent;
107571 int retval;
107572 - unsigned long charge;
107573
107574 uprobe_start_dup_mmap();
107575 down_write(&oldmm->mmap_sem);
107576 @@ -428,52 +544,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107577
107578 prev = NULL;
107579 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
107580 - struct file *file;
107581 -
107582 if (mpnt->vm_flags & VM_DONTCOPY) {
107583 vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
107584 -vma_pages(mpnt));
107585 continue;
107586 }
107587 - charge = 0;
107588 - if (mpnt->vm_flags & VM_ACCOUNT) {
107589 - unsigned long len = vma_pages(mpnt);
107590 -
107591 - if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
107592 - goto fail_nomem;
107593 - charge = len;
107594 - }
107595 - tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
107596 - if (!tmp)
107597 - goto fail_nomem;
107598 - *tmp = *mpnt;
107599 - INIT_LIST_HEAD(&tmp->anon_vma_chain);
107600 - retval = vma_dup_policy(mpnt, tmp);
107601 - if (retval)
107602 - goto fail_nomem_policy;
107603 - tmp->vm_mm = mm;
107604 - if (anon_vma_fork(tmp, mpnt))
107605 - goto fail_nomem_anon_vma_fork;
107606 - tmp->vm_flags &= ~(VM_LOCKED|VM_UFFD_MISSING|VM_UFFD_WP);
107607 - tmp->vm_next = tmp->vm_prev = NULL;
107608 - tmp->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
107609 - file = tmp->vm_file;
107610 - if (file) {
107611 - struct inode *inode = file_inode(file);
107612 - struct address_space *mapping = file->f_mapping;
107613 -
107614 - get_file(file);
107615 - if (tmp->vm_flags & VM_DENYWRITE)
107616 - atomic_dec(&inode->i_writecount);
107617 - i_mmap_lock_write(mapping);
107618 - if (tmp->vm_flags & VM_SHARED)
107619 - atomic_inc(&mapping->i_mmap_writable);
107620 - flush_dcache_mmap_lock(mapping);
107621 - /* insert tmp into the share list, just after mpnt */
107622 - vma_interval_tree_insert_after(tmp, mpnt,
107623 - &mapping->i_mmap);
107624 - flush_dcache_mmap_unlock(mapping);
107625 - i_mmap_unlock_write(mapping);
107626 + tmp = dup_vma(mm, oldmm, mpnt);
107627 + if (!tmp) {
107628 + retval = -ENOMEM;
107629 + goto out;
107630 }
107631
107632 /*
107633 @@ -505,6 +584,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107634 if (retval)
107635 goto out;
107636 }
107637 +
107638 +#ifdef CONFIG_PAX_SEGMEXEC
107639 + if (oldmm->pax_flags & MF_PAX_SEGMEXEC) {
107640 + struct vm_area_struct *mpnt_m;
107641 +
107642 + for (mpnt = oldmm->mmap, mpnt_m = mm->mmap; mpnt; mpnt = mpnt->vm_next, mpnt_m = mpnt_m->vm_next) {
107643 + BUG_ON(!mpnt_m || mpnt_m->vm_mirror || mpnt->vm_mm != oldmm || mpnt_m->vm_mm != mm);
107644 +
107645 + if (!mpnt->vm_mirror)
107646 + continue;
107647 +
107648 + if (mpnt->vm_end <= SEGMEXEC_TASK_SIZE) {
107649 + BUG_ON(mpnt->vm_mirror->vm_mirror != mpnt);
107650 + mpnt->vm_mirror = mpnt_m;
107651 + } else {
107652 + BUG_ON(mpnt->vm_mirror->vm_mirror == mpnt || mpnt->vm_mirror->vm_mirror->vm_mm != mm);
107653 + mpnt_m->vm_mirror = mpnt->vm_mirror->vm_mirror;
107654 + mpnt_m->vm_mirror->vm_mirror = mpnt_m;
107655 + mpnt->vm_mirror->vm_mirror = mpnt;
107656 + }
107657 + }
107658 + BUG_ON(mpnt_m);
107659 + }
107660 +#endif
107661 +
107662 /* a new mm has just been created */
107663 arch_dup_mmap(oldmm, mm);
107664 retval = 0;
107665 @@ -514,14 +618,6 @@ out:
107666 up_write(&oldmm->mmap_sem);
107667 uprobe_end_dup_mmap();
107668 return retval;
107669 -fail_nomem_anon_vma_fork:
107670 - mpol_put(vma_policy(tmp));
107671 -fail_nomem_policy:
107672 - kmem_cache_free(vm_area_cachep, tmp);
107673 -fail_nomem:
107674 - retval = -ENOMEM;
107675 - vm_unacct_memory(charge);
107676 - goto out;
107677 }
107678
107679 static inline int mm_alloc_pgd(struct mm_struct *mm)
107680 @@ -796,8 +892,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
107681 return ERR_PTR(err);
107682
107683 mm = get_task_mm(task);
107684 - if (mm && mm != current->mm &&
107685 - !ptrace_may_access(task, mode)) {
107686 + if (mm && ((mm != current->mm && !ptrace_may_access(task, mode)) ||
107687 + ((mode & PTRACE_MODE_ATTACH) && (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))))) {
107688 mmput(mm);
107689 mm = ERR_PTR(-EACCES);
107690 }
107691 @@ -998,13 +1094,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
107692 spin_unlock(&fs->lock);
107693 return -EAGAIN;
107694 }
107695 - fs->users++;
107696 + atomic_inc(&fs->users);
107697 spin_unlock(&fs->lock);
107698 return 0;
107699 }
107700 tsk->fs = copy_fs_struct(fs);
107701 if (!tsk->fs)
107702 return -ENOMEM;
107703 + /* Carry through gr_chroot_dentry and is_chrooted instead
107704 + of recomputing it here. Already copied when the task struct
107705 + is duplicated. This allows pivot_root to not be treated as
107706 + a chroot
107707 + */
107708 + //gr_set_chroot_entries(tsk, &tsk->fs->root);
107709 +
107710 return 0;
107711 }
107712
107713 @@ -1241,7 +1344,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
107714 * parts of the process environment (as per the clone
107715 * flags). The actual kick-off is left to the caller.
107716 */
107717 -static struct task_struct *copy_process(unsigned long clone_flags,
107718 +static __latent_entropy struct task_struct *copy_process(unsigned long clone_flags,
107719 unsigned long stack_start,
107720 unsigned long stack_size,
107721 int __user *child_tidptr,
107722 @@ -1313,6 +1416,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
107723 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
107724 #endif
107725 retval = -EAGAIN;
107726 +
107727 + gr_learn_resource(p, RLIMIT_NPROC, atomic_read(&p->real_cred->user->processes), 0);
107728 +
107729 if (atomic_read(&p->real_cred->user->processes) >=
107730 task_rlimit(p, RLIMIT_NPROC)) {
107731 if (p->real_cred->user != INIT_USER &&
107732 @@ -1572,6 +1678,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
107733 goto bad_fork_cancel_cgroup;
107734 }
107735
107736 + /* synchronizes with gr_set_acls()
107737 + we need to call this past the point of no return for fork()
107738 + */
107739 + gr_copy_label(p);
107740 +
107741 if (likely(p->pid)) {
107742 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
107743
107744 @@ -1663,6 +1774,8 @@ bad_fork_cleanup_count:
107745 bad_fork_free:
107746 free_task(p);
107747 fork_out:
107748 + gr_log_forkfail(retval);
107749 +
107750 return ERR_PTR(retval);
107751 }
107752
107753 @@ -1725,6 +1838,7 @@ long _do_fork(unsigned long clone_flags,
107754
107755 p = copy_process(clone_flags, stack_start, stack_size,
107756 child_tidptr, NULL, trace, tls);
107757 + add_latent_entropy();
107758 /*
107759 * Do this prior waking up the new thread - the thread pointer
107760 * might get invalid after that point, if the thread exits quickly.
107761 @@ -1741,6 +1855,8 @@ long _do_fork(unsigned long clone_flags,
107762 if (clone_flags & CLONE_PARENT_SETTID)
107763 put_user(nr, parent_tidptr);
107764
107765 + gr_handle_brute_check();
107766 +
107767 if (clone_flags & CLONE_VFORK) {
107768 p->vfork_done = &vfork;
107769 init_completion(&vfork);
107770 @@ -1873,7 +1989,7 @@ void __init proc_caches_init(void)
107771 mm_cachep = kmem_cache_create("mm_struct",
107772 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
107773 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
107774 - vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC);
107775 + vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC | SLAB_NO_SANITIZE);
107776 mmap_init();
107777 nsproxy_cache_init();
107778 }
107779 @@ -1921,7 +2037,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
107780 return 0;
107781
107782 /* don't need lock here; in the worst case we'll do useless copy */
107783 - if (fs->users == 1)
107784 + if (atomic_read(&fs->users) == 1)
107785 return 0;
107786
107787 *new_fsp = copy_fs_struct(fs);
107788 @@ -2034,7 +2150,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
107789 fs = current->fs;
107790 spin_lock(&fs->lock);
107791 current->fs = new_fs;
107792 - if (--fs->users)
107793 + gr_set_chroot_entries(current, &current->fs->root);
107794 + if (atomic_dec_return(&fs->users))
107795 new_fs = NULL;
107796 else
107797 new_fs = fs;
107798 @@ -2098,7 +2215,7 @@ int unshare_files(struct files_struct **displaced)
107799 int sysctl_max_threads(struct ctl_table *table, int write,
107800 void __user *buffer, size_t *lenp, loff_t *ppos)
107801 {
107802 - struct ctl_table t;
107803 + ctl_table_no_const t;
107804 int ret;
107805 int threads = max_threads;
107806 int min = MIN_THREADS;
107807 diff --git a/kernel/futex.c b/kernel/futex.c
107808 index 6e443ef..a4f2f18 100644
107809 --- a/kernel/futex.c
107810 +++ b/kernel/futex.c
107811 @@ -202,7 +202,7 @@ struct futex_pi_state {
107812 atomic_t refcount;
107813
107814 union futex_key key;
107815 -};
107816 +} __randomize_layout;
107817
107818 /**
107819 * struct futex_q - The hashed futex queue entry, one per waiting task
107820 @@ -236,7 +236,7 @@ struct futex_q {
107821 struct rt_mutex_waiter *rt_waiter;
107822 union futex_key *requeue_pi_key;
107823 u32 bitset;
107824 -};
107825 +} __randomize_layout;
107826
107827 static const struct futex_q futex_q_init = {
107828 /* list gets initialized in queue_me()*/
107829 @@ -463,6 +463,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
107830 struct page *page, *page_head;
107831 int err, ro = 0;
107832
107833 +#ifdef CONFIG_PAX_SEGMEXEC
107834 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && address >= SEGMEXEC_TASK_SIZE)
107835 + return -EFAULT;
107836 +#endif
107837 +
107838 /*
107839 * The futex address must be "naturally" aligned.
107840 */
107841 @@ -669,7 +674,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
107842
107843 static int get_futex_value_locked(u32 *dest, u32 __user *from)
107844 {
107845 - int ret;
107846 + unsigned long ret;
107847
107848 pagefault_disable();
107849 ret = __copy_from_user_inatomic(dest, from, sizeof(u32));
107850 @@ -2872,7 +2877,7 @@ SYSCALL_DEFINE3(get_robust_list, int, pid,
107851 }
107852
107853 ret = -EPERM;
107854 - if (!ptrace_may_access(p, PTRACE_MODE_READ))
107855 + if (!ptrace_may_access(p, PTRACE_MODE_READ_REALCREDS))
107856 goto err_unlock;
107857
107858 head = p->robust_list;
107859 @@ -3122,6 +3127,7 @@ static void __init futex_detect_cmpxchg(void)
107860 {
107861 #ifndef CONFIG_HAVE_FUTEX_CMPXCHG
107862 u32 curval;
107863 + mm_segment_t oldfs;
107864
107865 /*
107866 * This will fail and we want it. Some arch implementations do
107867 @@ -3133,8 +3139,11 @@ static void __init futex_detect_cmpxchg(void)
107868 * implementation, the non-functional ones will return
107869 * -ENOSYS.
107870 */
107871 + oldfs = get_fs();
107872 + set_fs(USER_DS);
107873 if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT)
107874 futex_cmpxchg_enabled = 1;
107875 + set_fs(oldfs);
107876 #endif
107877 }
107878
107879 diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
107880 index 55c8c93..5adee02 100644
107881 --- a/kernel/futex_compat.c
107882 +++ b/kernel/futex_compat.c
107883 @@ -32,7 +32,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
107884 return 0;
107885 }
107886
107887 -static void __user *futex_uaddr(struct robust_list __user *entry,
107888 +static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry,
107889 compat_long_t futex_offset)
107890 {
107891 compat_uptr_t base = ptr_to_compat(entry);
107892 @@ -155,7 +155,7 @@ COMPAT_SYSCALL_DEFINE3(get_robust_list, int, pid,
107893 }
107894
107895 ret = -EPERM;
107896 - if (!ptrace_may_access(p, PTRACE_MODE_READ))
107897 + if (!ptrace_may_access(p, PTRACE_MODE_READ_REALCREDS))
107898 goto err_unlock;
107899
107900 head = p->compat_robust_list;
107901 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
107902 index 7080ae1..c9b3761 100644
107903 --- a/kernel/gcov/base.c
107904 +++ b/kernel/gcov/base.c
107905 @@ -123,11 +123,6 @@ void gcov_enable_events(void)
107906 }
107907
107908 #ifdef CONFIG_MODULES
107909 -static inline int within(void *addr, void *start, unsigned long size)
107910 -{
107911 - return ((addr >= start) && (addr < start + size));
107912 -}
107913 -
107914 /* Update list and generate events when modules are unloaded. */
107915 static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
107916 void *data)
107917 @@ -142,7 +137,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
107918
107919 /* Remove entries located in module from linked list. */
107920 while ((info = gcov_info_next(info))) {
107921 - if (within(info, mod->module_core, mod->core_size)) {
107922 + if (within_module_core_rw((unsigned long)info, mod)) {
107923 gcov_info_unlink(prev, info);
107924 if (gcov_events_enabled)
107925 gcov_event(GCOV_REMOVE, info);
107926 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
107927 index f9a59f6..6271d2e 100644
107928 --- a/kernel/irq/manage.c
107929 +++ b/kernel/irq/manage.c
107930 @@ -939,7 +939,7 @@ static int irq_thread(void *data)
107931
107932 action_ret = handler_fn(desc, action);
107933 if (action_ret == IRQ_HANDLED)
107934 - atomic_inc(&desc->threads_handled);
107935 + atomic_inc_unchecked(&desc->threads_handled);
107936
107937 wake_threads_waitq(desc);
107938 }
107939 diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
107940 index be9149f..0ea909a 100644
107941 --- a/kernel/irq/msi.c
107942 +++ b/kernel/irq/msi.c
107943 @@ -212,16 +212,18 @@ static void msi_domain_update_dom_ops(struct msi_domain_info *info)
107944 return;
107945 }
107946
107947 + pax_open_kernel();
107948 if (ops->get_hwirq == NULL)
107949 - ops->get_hwirq = msi_domain_ops_default.get_hwirq;
107950 + *(void **)&ops->get_hwirq = msi_domain_ops_default.get_hwirq;
107951 if (ops->msi_init == NULL)
107952 - ops->msi_init = msi_domain_ops_default.msi_init;
107953 + *(void **)&ops->msi_init = msi_domain_ops_default.msi_init;
107954 if (ops->msi_check == NULL)
107955 - ops->msi_check = msi_domain_ops_default.msi_check;
107956 + *(void **)&ops->msi_check = msi_domain_ops_default.msi_check;
107957 if (ops->msi_prepare == NULL)
107958 - ops->msi_prepare = msi_domain_ops_default.msi_prepare;
107959 + *(void **)&ops->msi_prepare = msi_domain_ops_default.msi_prepare;
107960 if (ops->set_desc == NULL)
107961 - ops->set_desc = msi_domain_ops_default.set_desc;
107962 + *(void **)&ops->set_desc = msi_domain_ops_default.set_desc;
107963 + pax_close_kernel();
107964 }
107965
107966 static void msi_domain_update_chip_ops(struct msi_domain_info *info)
107967 @@ -229,8 +231,11 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
107968 struct irq_chip *chip = info->chip;
107969
107970 BUG_ON(!chip || !chip->irq_mask || !chip->irq_unmask);
107971 - if (!chip->irq_set_affinity)
107972 - chip->irq_set_affinity = msi_domain_set_affinity;
107973 + if (!chip->irq_set_affinity) {
107974 + pax_open_kernel();
107975 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
107976 + pax_close_kernel();
107977 + }
107978 }
107979
107980 /**
107981 diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
107982 index 3214417..e02594d 100644
107983 --- a/kernel/irq/spurious.c
107984 +++ b/kernel/irq/spurious.c
107985 @@ -336,7 +336,7 @@ void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)
107986 * count. We just care about the count being
107987 * different than the one we saw before.
107988 */
107989 - handled = atomic_read(&desc->threads_handled);
107990 + handled = atomic_read_unchecked(&desc->threads_handled);
107991 handled |= SPURIOUS_DEFERRED;
107992 if (handled != desc->threads_handled_last) {
107993 action_ret = IRQ_HANDLED;
107994 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
107995 index f7dd15d..2c1f581 100644
107996 --- a/kernel/jump_label.c
107997 +++ b/kernel/jump_label.c
107998 @@ -14,6 +14,7 @@
107999 #include <linux/err.h>
108000 #include <linux/static_key.h>
108001 #include <linux/jump_label_ratelimit.h>
108002 +#include <linux/mm.h>
108003
108004 #ifdef HAVE_JUMP_LABEL
108005
108006 @@ -51,7 +52,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
108007
108008 size = (((unsigned long)stop - (unsigned long)start)
108009 / sizeof(struct jump_entry));
108010 + pax_open_kernel();
108011 sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
108012 + pax_close_kernel();
108013 }
108014
108015 static void jump_label_update(struct static_key *key);
108016 @@ -386,10 +389,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
108017 struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
108018 struct jump_entry *iter;
108019
108020 + pax_open_kernel();
108021 for (iter = iter_start; iter < iter_stop; iter++) {
108022 if (within_module_init(iter->code, mod))
108023 iter->code = 0;
108024 }
108025 + pax_close_kernel();
108026 }
108027
108028 static int
108029 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
108030 index 5c5987f..bc502b0 100644
108031 --- a/kernel/kallsyms.c
108032 +++ b/kernel/kallsyms.c
108033 @@ -11,6 +11,9 @@
108034 * Changed the compression method from stem compression to "table lookup"
108035 * compression (see scripts/kallsyms.c for a more complete description)
108036 */
108037 +#ifdef CONFIG_GRKERNSEC_HIDESYM
108038 +#define __INCLUDED_BY_HIDESYM 1
108039 +#endif
108040 #include <linux/kallsyms.h>
108041 #include <linux/module.h>
108042 #include <linux/init.h>
108043 @@ -54,12 +57,33 @@ extern const unsigned long kallsyms_markers[] __weak;
108044
108045 static inline int is_kernel_inittext(unsigned long addr)
108046 {
108047 + if (system_state != SYSTEM_BOOTING)
108048 + return 0;
108049 +
108050 if (addr >= (unsigned long)_sinittext
108051 && addr <= (unsigned long)_einittext)
108052 return 1;
108053 return 0;
108054 }
108055
108056 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
108057 +#ifdef CONFIG_MODULES
108058 +static inline int is_module_text(unsigned long addr)
108059 +{
108060 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END)
108061 + return 1;
108062 +
108063 + addr = ktla_ktva(addr);
108064 + return (unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END;
108065 +}
108066 +#else
108067 +static inline int is_module_text(unsigned long addr)
108068 +{
108069 + return 0;
108070 +}
108071 +#endif
108072 +#endif
108073 +
108074 static inline int is_kernel_text(unsigned long addr)
108075 {
108076 if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) ||
108077 @@ -70,13 +94,28 @@ static inline int is_kernel_text(unsigned long addr)
108078
108079 static inline int is_kernel(unsigned long addr)
108080 {
108081 +
108082 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
108083 + if (is_kernel_text(addr) || is_kernel_inittext(addr))
108084 + return 1;
108085 +
108086 + if (ktla_ktva((unsigned long)_text) <= addr && addr < (unsigned long)_end)
108087 +#else
108088 if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
108089 +#endif
108090 +
108091 return 1;
108092 return in_gate_area_no_mm(addr);
108093 }
108094
108095 static int is_ksym_addr(unsigned long addr)
108096 {
108097 +
108098 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
108099 + if (is_module_text(addr))
108100 + return 0;
108101 +#endif
108102 +
108103 if (all_var)
108104 return is_kernel(addr);
108105
108106 @@ -481,7 +520,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter)
108107
108108 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
108109 {
108110 - iter->name[0] = '\0';
108111 iter->nameoff = get_symbol_offset(new_pos);
108112 iter->pos = new_pos;
108113 }
108114 @@ -529,6 +567,11 @@ static int s_show(struct seq_file *m, void *p)
108115 {
108116 struct kallsym_iter *iter = m->private;
108117
108118 +#ifdef CONFIG_GRKERNSEC_HIDESYM
108119 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID))
108120 + return 0;
108121 +#endif
108122 +
108123 /* Some debugging symbols have no name. Ignore them. */
108124 if (!iter->name[0])
108125 return 0;
108126 @@ -542,6 +585,7 @@ static int s_show(struct seq_file *m, void *p)
108127 */
108128 type = iter->exported ? toupper(iter->type) :
108129 tolower(iter->type);
108130 +
108131 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
108132 type, iter->name, iter->module_name);
108133 } else
108134 diff --git a/kernel/kcmp.c b/kernel/kcmp.c
108135 index 0aa69ea..bcb17e3 100644
108136 --- a/kernel/kcmp.c
108137 +++ b/kernel/kcmp.c
108138 @@ -100,6 +100,10 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
108139 struct task_struct *task1, *task2;
108140 int ret;
108141
108142 +#ifdef CONFIG_GRKERNSEC
108143 + return -ENOSYS;
108144 +#endif
108145 +
108146 rcu_read_lock();
108147
108148 /*
108149 @@ -122,8 +126,8 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
108150 &task2->signal->cred_guard_mutex);
108151 if (ret)
108152 goto err;
108153 - if (!ptrace_may_access(task1, PTRACE_MODE_READ) ||
108154 - !ptrace_may_access(task2, PTRACE_MODE_READ)) {
108155 + if (!ptrace_may_access(task1, PTRACE_MODE_READ_REALCREDS) ||
108156 + !ptrace_may_access(task2, PTRACE_MODE_READ_REALCREDS)) {
108157 ret = -EPERM;
108158 goto err_unlock;
108159 }
108160 diff --git a/kernel/kexec.c b/kernel/kexec.c
108161 index 4c5edc3..be8a589 100644
108162 --- a/kernel/kexec.c
108163 +++ b/kernel/kexec.c
108164 @@ -222,7 +222,8 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
108165 compat_ulong_t, flags)
108166 {
108167 struct compat_kexec_segment in;
108168 - struct kexec_segment out, __user *ksegments;
108169 + struct kexec_segment out;
108170 + struct kexec_segment __user *ksegments;
108171 unsigned long i, result;
108172
108173 /* Don't allow clients that don't understand the native
108174 diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
108175 index 201b453..e878258 100644
108176 --- a/kernel/kexec_core.c
108177 +++ b/kernel/kexec_core.c
108178 @@ -851,7 +851,7 @@ int kimage_load_segment(struct kimage *image,
108179
108180 struct kimage *kexec_image;
108181 struct kimage *kexec_crash_image;
108182 -int kexec_load_disabled;
108183 +int kexec_load_disabled __read_only;
108184
108185 void crash_kexec(struct pt_regs *regs)
108186 {
108187 diff --git a/kernel/kmod.c b/kernel/kmod.c
108188 index 0277d12..c5e9cc4 100644
108189 --- a/kernel/kmod.c
108190 +++ b/kernel/kmod.c
108191 @@ -66,7 +66,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
108192 kfree(info->argv);
108193 }
108194
108195 -static int call_modprobe(char *module_name, int wait)
108196 +static int call_modprobe(char *module_name, char *module_param, int wait)
108197 {
108198 struct subprocess_info *info;
108199 static char *envp[] = {
108200 @@ -76,7 +76,7 @@ static int call_modprobe(char *module_name, int wait)
108201 NULL
108202 };
108203
108204 - char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL);
108205 + char **argv = kmalloc(sizeof(char *[6]), GFP_KERNEL);
108206 if (!argv)
108207 goto out;
108208
108209 @@ -88,7 +88,8 @@ static int call_modprobe(char *module_name, int wait)
108210 argv[1] = "-q";
108211 argv[2] = "--";
108212 argv[3] = module_name; /* check free_modprobe_argv() */
108213 - argv[4] = NULL;
108214 + argv[4] = module_param;
108215 + argv[5] = NULL;
108216
108217 info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL,
108218 NULL, free_modprobe_argv, NULL);
108219 @@ -121,9 +122,8 @@ out:
108220 * If module auto-loading support is disabled then this function
108221 * becomes a no-operation.
108222 */
108223 -int __request_module(bool wait, const char *fmt, ...)
108224 +static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
108225 {
108226 - va_list args;
108227 char module_name[MODULE_NAME_LEN];
108228 unsigned int max_modprobes;
108229 int ret;
108230 @@ -142,9 +142,7 @@ int __request_module(bool wait, const char *fmt, ...)
108231 if (!modprobe_path[0])
108232 return 0;
108233
108234 - va_start(args, fmt);
108235 - ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
108236 - va_end(args);
108237 + ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
108238 if (ret >= MODULE_NAME_LEN)
108239 return -ENAMETOOLONG;
108240
108241 @@ -152,6 +150,20 @@ int __request_module(bool wait, const char *fmt, ...)
108242 if (ret)
108243 return ret;
108244
108245 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108246 + if (uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
108247 + /* hack to workaround consolekit/udisks stupidity */
108248 + read_lock(&tasklist_lock);
108249 + if (!strcmp(current->comm, "mount") &&
108250 + current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
108251 + read_unlock(&tasklist_lock);
108252 + printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
108253 + return -EPERM;
108254 + }
108255 + read_unlock(&tasklist_lock);
108256 + }
108257 +#endif
108258 +
108259 /* If modprobe needs a service that is in a module, we get a recursive
108260 * loop. Limit the number of running kmod threads to max_threads/2 or
108261 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
108262 @@ -180,16 +192,61 @@ int __request_module(bool wait, const char *fmt, ...)
108263
108264 trace_module_request(module_name, wait, _RET_IP_);
108265
108266 - ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
108267 + ret = call_modprobe(module_name, module_param, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
108268
108269 atomic_dec(&kmod_concurrent);
108270 return ret;
108271 }
108272 +
108273 +int ___request_module(bool wait, char *module_param, const char *fmt, ...)
108274 +{
108275 + va_list args;
108276 + int ret;
108277 +
108278 + va_start(args, fmt);
108279 + ret = ____request_module(wait, module_param, fmt, args);
108280 + va_end(args);
108281 +
108282 + return ret;
108283 +}
108284 +
108285 +int __request_module(bool wait, const char *fmt, ...)
108286 +{
108287 + va_list args;
108288 + int ret;
108289 +
108290 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108291 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
108292 + char module_param[MODULE_NAME_LEN];
108293 +
108294 + memset(module_param, 0, sizeof(module_param));
108295 +
108296 + snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", GR_GLOBAL_UID(current_uid()));
108297 +
108298 + va_start(args, fmt);
108299 + ret = ____request_module(wait, module_param, fmt, args);
108300 + va_end(args);
108301 +
108302 + return ret;
108303 + }
108304 +#endif
108305 +
108306 + va_start(args, fmt);
108307 + ret = ____request_module(wait, NULL, fmt, args);
108308 + va_end(args);
108309 +
108310 + return ret;
108311 +}
108312 +
108313 EXPORT_SYMBOL(__request_module);
108314 #endif /* CONFIG_MODULES */
108315
108316 static void call_usermodehelper_freeinfo(struct subprocess_info *info)
108317 {
108318 +#ifdef CONFIG_GRKERNSEC
108319 + kfree(info->path);
108320 + info->path = info->origpath;
108321 +#endif
108322 if (info->cleanup)
108323 (*info->cleanup)(info);
108324 kfree(info);
108325 @@ -228,6 +285,21 @@ static int call_usermodehelper_exec_async(void *data)
108326 */
108327 set_user_nice(current, 0);
108328
108329 +#ifdef CONFIG_GRKERNSEC
108330 + /* this is race-free as far as userland is concerned as we copied
108331 + out the path to be used prior to this point and are now operating
108332 + on that copy
108333 + */
108334 + if ((strncmp(sub_info->path, "/sbin/", 6) && strncmp(sub_info->path, "/usr/lib/", 9) &&
108335 + strncmp(sub_info->path, "/lib/", 5) && strncmp(sub_info->path, "/lib64/", 7) &&
108336 + strncmp(sub_info->path, "/usr/libexec/", 13) && strncmp(sub_info->path, "/usr/bin/", 9) &&
108337 + strcmp(sub_info->path, "/usr/share/apport/apport")) || strstr(sub_info->path, "..")) {
108338 + printk(KERN_ALERT "grsec: denied exec of usermode helper binary %.950s located outside of permitted system paths\n", sub_info->path);
108339 + retval = -EPERM;
108340 + goto out;
108341 + }
108342 +#endif
108343 +
108344 retval = -ENOMEM;
108345 new = prepare_kernel_cred(current);
108346 if (!new)
108347 @@ -250,8 +322,8 @@ static int call_usermodehelper_exec_async(void *data)
108348 commit_creds(new);
108349
108350 retval = do_execve(getname_kernel(sub_info->path),
108351 - (const char __user *const __user *)sub_info->argv,
108352 - (const char __user *const __user *)sub_info->envp);
108353 + (const char __user *const __force_user *)sub_info->argv,
108354 + (const char __user *const __force_user *)sub_info->envp);
108355 out:
108356 sub_info->retval = retval;
108357 /*
108358 @@ -287,7 +359,7 @@ static void call_usermodehelper_exec_sync(struct subprocess_info *sub_info)
108359 *
108360 * Thus the __user pointer cast is valid here.
108361 */
108362 - sys_wait4(pid, (int __user *)&ret, 0, NULL);
108363 + sys_wait4(pid, (int __force_user *)&ret, 0, NULL);
108364
108365 /*
108366 * If ret is 0, either call_usermodehelper_exec_async failed and
108367 @@ -528,7 +600,12 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
108368 goto out;
108369
108370 INIT_WORK(&sub_info->work, call_usermodehelper_exec_work);
108371 +#ifdef CONFIG_GRKERNSEC
108372 + sub_info->origpath = path;
108373 + sub_info->path = kstrdup(path, gfp_mask);
108374 +#else
108375 sub_info->path = path;
108376 +#endif
108377 sub_info->argv = argv;
108378 sub_info->envp = envp;
108379
108380 @@ -630,7 +707,7 @@ EXPORT_SYMBOL(call_usermodehelper);
108381 static int proc_cap_handler(struct ctl_table *table, int write,
108382 void __user *buffer, size_t *lenp, loff_t *ppos)
108383 {
108384 - struct ctl_table t;
108385 + ctl_table_no_const t;
108386 unsigned long cap_array[_KERNEL_CAPABILITY_U32S];
108387 kernel_cap_t new_cap;
108388 int err, i;
108389 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
108390 index d10ab6b..372c51c 100644
108391 --- a/kernel/kprobes.c
108392 +++ b/kernel/kprobes.c
108393 @@ -31,6 +31,9 @@
108394 * <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
108395 * <prasanna@in.ibm.com> added function-return probes.
108396 */
108397 +#ifdef CONFIG_GRKERNSEC_HIDESYM
108398 +#define __INCLUDED_BY_HIDESYM 1
108399 +#endif
108400 #include <linux/kprobes.h>
108401 #include <linux/hash.h>
108402 #include <linux/init.h>
108403 @@ -122,12 +125,12 @@ enum kprobe_slot_state {
108404
108405 static void *alloc_insn_page(void)
108406 {
108407 - return module_alloc(PAGE_SIZE);
108408 + return module_alloc_exec(PAGE_SIZE);
108409 }
108410
108411 static void free_insn_page(void *page)
108412 {
108413 - module_memfree(page);
108414 + module_memfree_exec(page);
108415 }
108416
108417 struct kprobe_insn_cache kprobe_insn_slots = {
108418 @@ -2198,11 +2201,11 @@ static void report_probe(struct seq_file *pi, struct kprobe *p,
108419 kprobe_type = "k";
108420
108421 if (sym)
108422 - seq_printf(pi, "%p %s %s+0x%x %s ",
108423 + seq_printf(pi, "%pK %s %s+0x%x %s ",
108424 p->addr, kprobe_type, sym, offset,
108425 (modname ? modname : " "));
108426 else
108427 - seq_printf(pi, "%p %s %p ",
108428 + seq_printf(pi, "%pK %s %pK ",
108429 p->addr, kprobe_type, p->addr);
108430
108431 if (!pp)
108432 diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
108433 index e83b264..d09fae1 100644
108434 --- a/kernel/ksysfs.c
108435 +++ b/kernel/ksysfs.c
108436 @@ -50,6 +50,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj,
108437 {
108438 if (count+1 > UEVENT_HELPER_PATH_LEN)
108439 return -ENOENT;
108440 + if (!capable(CAP_SYS_ADMIN))
108441 + return -EPERM;
108442 memcpy(uevent_helper, buf, count);
108443 uevent_helper[count] = '\0';
108444 if (count && uevent_helper[count-1] == '\n')
108445 @@ -176,7 +178,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
108446 return count;
108447 }
108448
108449 -static struct bin_attribute notes_attr = {
108450 +static bin_attribute_no_const notes_attr __read_only = {
108451 .attr = {
108452 .name = "notes",
108453 .mode = S_IRUGO,
108454 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
108455 index 4e49cc4..057b0f8 100644
108456 --- a/kernel/locking/lockdep.c
108457 +++ b/kernel/locking/lockdep.c
108458 @@ -613,6 +613,10 @@ static int static_obj(void *obj)
108459 end = (unsigned long) &_end,
108460 addr = (unsigned long) obj;
108461
108462 +#ifdef CONFIG_PAX_KERNEXEC
108463 + start = ktla_ktva(start);
108464 +#endif
108465 +
108466 /*
108467 * static variable?
108468 */
108469 @@ -757,6 +761,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
108470 if (!static_obj(lock->key)) {
108471 debug_locks_off();
108472 printk("INFO: trying to register non-static key.\n");
108473 + printk("lock:%pS key:%pS.\n", lock, lock->key);
108474 printk("the code is fine but needs lockdep annotation.\n");
108475 printk("turning off the locking correctness validator.\n");
108476 dump_stack();
108477 @@ -3102,7 +3107,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
108478 if (!class)
108479 return 0;
108480 }
108481 - atomic_inc((atomic_t *)&class->ops);
108482 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)&class->ops);
108483 if (very_verbose(class)) {
108484 printk("\nacquire class [%p] %s", class->key, class->name);
108485 if (class->name_version > 1)
108486 diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
108487 index d83d798..ea3120d 100644
108488 --- a/kernel/locking/lockdep_proc.c
108489 +++ b/kernel/locking/lockdep_proc.c
108490 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
108491 return 0;
108492 }
108493
108494 - seq_printf(m, "%p", class->key);
108495 + seq_printf(m, "%pK", class->key);
108496 #ifdef CONFIG_DEBUG_LOCKDEP
108497 seq_printf(m, " OPS:%8ld", class->ops);
108498 #endif
108499 @@ -83,7 +83,7 @@ static int l_show(struct seq_file *m, void *v)
108500
108501 list_for_each_entry(entry, &class->locks_after, entry) {
108502 if (entry->distance == 1) {
108503 - seq_printf(m, " -> [%p] ", entry->class->key);
108504 + seq_printf(m, " -> [%pK] ", entry->class->key);
108505 print_name(m, entry->class);
108506 seq_puts(m, "\n");
108507 }
108508 @@ -152,7 +152,7 @@ static int lc_show(struct seq_file *m, void *v)
108509 if (!class->key)
108510 continue;
108511
108512 - seq_printf(m, "[%p] ", class->key);
108513 + seq_printf(m, "[%pK] ", class->key);
108514 print_name(m, class);
108515 seq_puts(m, "\n");
108516 }
108517 @@ -508,7 +508,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
108518 if (!i)
108519 seq_line(m, '-', 40-namelen, namelen);
108520
108521 - snprintf(ip, sizeof(ip), "[<%p>]",
108522 + snprintf(ip, sizeof(ip), "[<%pK>]",
108523 (void *)class->contention_point[i]);
108524 seq_printf(m, "%40s %14lu %29s %pS\n",
108525 name, stats->contention_point[i],
108526 @@ -523,7 +523,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
108527 if (!i)
108528 seq_line(m, '-', 40-namelen, namelen);
108529
108530 - snprintf(ip, sizeof(ip), "[<%p>]",
108531 + snprintf(ip, sizeof(ip), "[<%pK>]",
108532 (void *)class->contending_point[i]);
108533 seq_printf(m, "%40s %14lu %29s %pS\n",
108534 name, stats->contending_point[i],
108535 diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
108536 index 3ef3736..9c951fa 100644
108537 --- a/kernel/locking/mutex-debug.c
108538 +++ b/kernel/locking/mutex-debug.c
108539 @@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
108540 }
108541
108542 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108543 - struct thread_info *ti)
108544 + struct task_struct *task)
108545 {
108546 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
108547
108548 /* Mark the current thread as blocked on the lock: */
108549 - ti->task->blocked_on = waiter;
108550 + task->blocked_on = waiter;
108551 }
108552
108553 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108554 - struct thread_info *ti)
108555 + struct task_struct *task)
108556 {
108557 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
108558 - DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
108559 - DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
108560 - ti->task->blocked_on = NULL;
108561 + DEBUG_LOCKS_WARN_ON(waiter->task != task);
108562 + DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
108563 + task->blocked_on = NULL;
108564
108565 list_del_init(&waiter->list);
108566 waiter->task = NULL;
108567 diff --git a/kernel/locking/mutex-debug.h b/kernel/locking/mutex-debug.h
108568 index 0799fd3..d06ae3b 100644
108569 --- a/kernel/locking/mutex-debug.h
108570 +++ b/kernel/locking/mutex-debug.h
108571 @@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
108572 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
108573 extern void debug_mutex_add_waiter(struct mutex *lock,
108574 struct mutex_waiter *waiter,
108575 - struct thread_info *ti);
108576 + struct task_struct *task);
108577 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108578 - struct thread_info *ti);
108579 + struct task_struct *task);
108580 extern void debug_mutex_unlock(struct mutex *lock);
108581 extern void debug_mutex_init(struct mutex *lock, const char *name,
108582 struct lock_class_key *key);
108583 diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
108584 index 4cccea6..4382db9 100644
108585 --- a/kernel/locking/mutex.c
108586 +++ b/kernel/locking/mutex.c
108587 @@ -533,7 +533,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
108588 goto skip_wait;
108589
108590 debug_mutex_lock_common(lock, &waiter);
108591 - debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
108592 + debug_mutex_add_waiter(lock, &waiter, task);
108593
108594 /* add waiting tasks to the end of the waitqueue (FIFO): */
108595 list_add_tail(&waiter.list, &lock->wait_list);
108596 @@ -580,7 +580,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
108597 }
108598 __set_task_state(task, TASK_RUNNING);
108599
108600 - mutex_remove_waiter(lock, &waiter, current_thread_info());
108601 + mutex_remove_waiter(lock, &waiter, task);
108602 /* set it to 0 if there are no waiters left: */
108603 if (likely(list_empty(&lock->wait_list)))
108604 atomic_set(&lock->count, 0);
108605 @@ -601,7 +601,7 @@ skip_wait:
108606 return 0;
108607
108608 err:
108609 - mutex_remove_waiter(lock, &waiter, task_thread_info(task));
108610 + mutex_remove_waiter(lock, &waiter, task);
108611 spin_unlock_mutex(&lock->wait_lock, flags);
108612 debug_mutex_free_waiter(&waiter);
108613 mutex_release(&lock->dep_map, 1, ip);
108614 diff --git a/kernel/module.c b/kernel/module.c
108615 index 8f051a1..07da01a 100644
108616 --- a/kernel/module.c
108617 +++ b/kernel/module.c
108618 @@ -59,6 +59,7 @@
108619 #include <linux/jump_label.h>
108620 #include <linux/pfn.h>
108621 #include <linux/bsearch.h>
108622 +#include <linux/grsecurity.h>
108623 #include <uapi/linux/module.h>
108624 #include "module-internal.h"
108625
108626 @@ -108,7 +109,7 @@ static LIST_HEAD(modules);
108627 * Use a latched RB-tree for __module_address(); this allows us to use
108628 * RCU-sched lookups of the address from any context.
108629 *
108630 - * Because modules have two address ranges: init and core, we need two
108631 + * Because modules have four address ranges: init_{rw,rx} and core_{rw,rx}, we need four
108632 * latch_tree_nodes entries. Therefore we need the back-pointer from
108633 * mod_tree_node.
108634 *
108635 @@ -125,10 +126,14 @@ static __always_inline unsigned long __mod_tree_val(struct latch_tree_node *n)
108636 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
108637 struct module *mod = mtn->mod;
108638
108639 - if (unlikely(mtn == &mod->mtn_init))
108640 - return (unsigned long)mod->module_init;
108641 + if (unlikely(mtn == &mod->mtn_init_rw))
108642 + return (unsigned long)mod->module_init_rw;
108643 + if (unlikely(mtn == &mod->mtn_init_rx))
108644 + return (unsigned long)mod->module_init_rx;
108645
108646 - return (unsigned long)mod->module_core;
108647 + if (unlikely(mtn == &mod->mtn_core_rw))
108648 + return (unsigned long)mod->module_core_rw;
108649 + return (unsigned long)mod->module_core_rx;
108650 }
108651
108652 static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
108653 @@ -136,10 +141,14 @@ static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
108654 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
108655 struct module *mod = mtn->mod;
108656
108657 - if (unlikely(mtn == &mod->mtn_init))
108658 - return (unsigned long)mod->init_size;
108659 + if (unlikely(mtn == &mod->mtn_init_rw))
108660 + return (unsigned long)mod->init_size_rw;
108661 + if (unlikely(mtn == &mod->mtn_init_rx))
108662 + return (unsigned long)mod->init_size_rx;
108663
108664 - return (unsigned long)mod->core_size;
108665 + if (unlikely(mtn == &mod->mtn_core_rw))
108666 + return (unsigned long)mod->core_size_rw;
108667 + return (unsigned long)mod->core_size_rx;
108668 }
108669
108670 static __always_inline bool
108671 @@ -172,14 +181,19 @@ static const struct latch_tree_ops mod_tree_ops = {
108672
108673 static struct mod_tree_root {
108674 struct latch_tree_root root;
108675 - unsigned long addr_min;
108676 - unsigned long addr_max;
108677 + unsigned long addr_min_rw;
108678 + unsigned long addr_min_rx;
108679 + unsigned long addr_max_rw;
108680 + unsigned long addr_max_rx;
108681 } mod_tree __cacheline_aligned = {
108682 - .addr_min = -1UL,
108683 + .addr_min_rw = -1UL,
108684 + .addr_min_rx = -1UL,
108685 };
108686
108687 -#define module_addr_min mod_tree.addr_min
108688 -#define module_addr_max mod_tree.addr_max
108689 +#define module_addr_min_rw mod_tree.addr_min_rw
108690 +#define module_addr_min_rx mod_tree.addr_min_rx
108691 +#define module_addr_max_rw mod_tree.addr_max_rw
108692 +#define module_addr_max_rx mod_tree.addr_max_rx
108693
108694 static noinline void __mod_tree_insert(struct mod_tree_node *node)
108695 {
108696 @@ -197,23 +211,31 @@ static void __mod_tree_remove(struct mod_tree_node *node)
108697 */
108698 static void mod_tree_insert(struct module *mod)
108699 {
108700 - mod->mtn_core.mod = mod;
108701 - mod->mtn_init.mod = mod;
108702 + mod->mtn_core_rw.mod = mod;
108703 + mod->mtn_core_rx.mod = mod;
108704 + mod->mtn_init_rw.mod = mod;
108705 + mod->mtn_init_rx.mod = mod;
108706
108707 - __mod_tree_insert(&mod->mtn_core);
108708 - if (mod->init_size)
108709 - __mod_tree_insert(&mod->mtn_init);
108710 + __mod_tree_insert(&mod->mtn_core_rw);
108711 + __mod_tree_insert(&mod->mtn_core_rx);
108712 + if (mod->init_size_rw)
108713 + __mod_tree_insert(&mod->mtn_init_rw);
108714 + if (mod->init_size_rx)
108715 + __mod_tree_insert(&mod->mtn_init_rx);
108716 }
108717
108718 static void mod_tree_remove_init(struct module *mod)
108719 {
108720 - if (mod->init_size)
108721 - __mod_tree_remove(&mod->mtn_init);
108722 + if (mod->init_size_rw)
108723 + __mod_tree_remove(&mod->mtn_init_rw);
108724 + if (mod->init_size_rx)
108725 + __mod_tree_remove(&mod->mtn_init_rx);
108726 }
108727
108728 static void mod_tree_remove(struct module *mod)
108729 {
108730 - __mod_tree_remove(&mod->mtn_core);
108731 + __mod_tree_remove(&mod->mtn_core_rw);
108732 + __mod_tree_remove(&mod->mtn_core_rx);
108733 mod_tree_remove_init(mod);
108734 }
108735
108736 @@ -230,7 +252,8 @@ static struct module *mod_find(unsigned long addr)
108737
108738 #else /* MODULES_TREE_LOOKUP */
108739
108740 -static unsigned long module_addr_min = -1UL, module_addr_max = 0;
108741 +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0;
108742 +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0;
108743
108744 static void mod_tree_insert(struct module *mod) { }
108745 static void mod_tree_remove_init(struct module *mod) { }
108746 @@ -254,22 +277,36 @@ static struct module *mod_find(unsigned long addr)
108747 * Bounds of module text, for speeding up __module_address.
108748 * Protected by module_mutex.
108749 */
108750 -static void __mod_update_bounds(void *base, unsigned int size)
108751 +static void __mod_update_bounds_rw(void *base, unsigned int size)
108752 {
108753 unsigned long min = (unsigned long)base;
108754 unsigned long max = min + size;
108755
108756 - if (min < module_addr_min)
108757 - module_addr_min = min;
108758 - if (max > module_addr_max)
108759 - module_addr_max = max;
108760 + if (min < module_addr_min_rw)
108761 + module_addr_min_rw = min;
108762 + if (max > module_addr_max_rw)
108763 + module_addr_max_rw = max;
108764 +}
108765 +
108766 +static void __mod_update_bounds_rx(void *base, unsigned int size)
108767 +{
108768 + unsigned long min = (unsigned long)base;
108769 + unsigned long max = min + size;
108770 +
108771 + if (min < module_addr_min_rx)
108772 + module_addr_min_rx = min;
108773 + if (max > module_addr_max_rx)
108774 + module_addr_max_rx = max;
108775 }
108776
108777 static void mod_update_bounds(struct module *mod)
108778 {
108779 - __mod_update_bounds(mod->module_core, mod->core_size);
108780 - if (mod->init_size)
108781 - __mod_update_bounds(mod->module_init, mod->init_size);
108782 + __mod_update_bounds_rw(mod->module_core_rw, mod->core_size_rw);
108783 + __mod_update_bounds_rx(mod->module_core_rx, mod->core_size_rx);
108784 + if (mod->init_size_rw)
108785 + __mod_update_bounds_rw(mod->module_init_rw, mod->init_size_rw);
108786 + if (mod->init_size_rx)
108787 + __mod_update_bounds_rx(mod->module_init_rx, mod->init_size_rx);
108788 }
108789
108790 #ifdef CONFIG_KGDB_KDB
108791 @@ -298,7 +335,7 @@ module_param(sig_enforce, bool_enable_only, 0644);
108792 #endif /* !CONFIG_MODULE_SIG_FORCE */
108793
108794 /* Block module loading/unloading? */
108795 -int modules_disabled = 0;
108796 +int modules_disabled __read_only = 0;
108797 core_param(nomodule, modules_disabled, bint, 0);
108798
108799 /* Waiting for a module to finish initializing? */
108800 @@ -473,7 +510,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
108801 return true;
108802
108803 list_for_each_entry_rcu(mod, &modules, list) {
108804 - struct symsearch arr[] = {
108805 + struct symsearch modarr[] = {
108806 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
108807 NOT_GPL_ONLY, false },
108808 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
108809 @@ -498,7 +535,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
108810 if (mod->state == MODULE_STATE_UNFORMED)
108811 continue;
108812
108813 - if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
108814 + if (each_symbol_in_section(modarr, ARRAY_SIZE(modarr), mod, fn, data))
108815 return true;
108816 }
108817 return false;
108818 @@ -644,7 +681,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
108819 if (!pcpusec->sh_size)
108820 return 0;
108821
108822 - if (align > PAGE_SIZE) {
108823 + if (align-1 >= PAGE_SIZE) {
108824 pr_warn("%s: per-cpu alignment %li > %li\n",
108825 mod->name, align, PAGE_SIZE);
108826 align = PAGE_SIZE;
108827 @@ -1214,7 +1251,7 @@ struct module_attribute module_uevent =
108828 static ssize_t show_coresize(struct module_attribute *mattr,
108829 struct module_kobject *mk, char *buffer)
108830 {
108831 - return sprintf(buffer, "%u\n", mk->mod->core_size);
108832 + return sprintf(buffer, "%u\n", mk->mod->core_size_rx + mk->mod->core_size_rw);
108833 }
108834
108835 static struct module_attribute modinfo_coresize =
108836 @@ -1223,7 +1260,7 @@ static struct module_attribute modinfo_coresize =
108837 static ssize_t show_initsize(struct module_attribute *mattr,
108838 struct module_kobject *mk, char *buffer)
108839 {
108840 - return sprintf(buffer, "%u\n", mk->mod->init_size);
108841 + return sprintf(buffer, "%u\n", mk->mod->init_size_rx + mk->mod->init_size_rw);
108842 }
108843
108844 static struct module_attribute modinfo_initsize =
108845 @@ -1315,12 +1352,29 @@ static int check_version(Elf_Shdr *sechdrs,
108846 goto bad_version;
108847 }
108848
108849 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108850 + /*
108851 + * avoid potentially printing jibberish on attempted load
108852 + * of a module randomized with a different seed
108853 + */
108854 + pr_warn("no symbol version for %s\n", symname);
108855 +#else
108856 pr_warn("%s: no symbol version for %s\n", mod->name, symname);
108857 +#endif
108858 return 0;
108859
108860 bad_version:
108861 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108862 + /*
108863 + * avoid potentially printing jibberish on attempted load
108864 + * of a module randomized with a different seed
108865 + */
108866 + pr_warn("attempted module disagrees about version of symbol %s\n",
108867 + symname);
108868 +#else
108869 pr_warn("%s: disagrees about version of symbol %s\n",
108870 mod->name, symname);
108871 +#endif
108872 return 0;
108873 }
108874
108875 @@ -1448,7 +1502,7 @@ resolve_symbol_wait(struct module *mod,
108876 */
108877 #ifdef CONFIG_SYSFS
108878
108879 -#ifdef CONFIG_KALLSYMS
108880 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
108881 static inline bool sect_empty(const Elf_Shdr *sect)
108882 {
108883 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
108884 @@ -1586,7 +1640,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
108885 {
108886 unsigned int notes, loaded, i;
108887 struct module_notes_attrs *notes_attrs;
108888 - struct bin_attribute *nattr;
108889 + bin_attribute_no_const *nattr;
108890
108891 /* failed to create section attributes, so can't create notes */
108892 if (!mod->sect_attrs)
108893 @@ -1698,7 +1752,7 @@ static void del_usage_links(struct module *mod)
108894 static int module_add_modinfo_attrs(struct module *mod)
108895 {
108896 struct module_attribute *attr;
108897 - struct module_attribute *temp_attr;
108898 + module_attribute_no_const *temp_attr;
108899 int error = 0;
108900 int i;
108901
108902 @@ -1915,21 +1969,21 @@ static void set_section_ro_nx(void *base,
108903
108904 static void unset_module_core_ro_nx(struct module *mod)
108905 {
108906 - set_page_attributes(mod->module_core + mod->core_text_size,
108907 - mod->module_core + mod->core_size,
108908 + set_page_attributes(mod->module_core_rw,
108909 + mod->module_core_rw + mod->core_size_rw,
108910 set_memory_x);
108911 - set_page_attributes(mod->module_core,
108912 - mod->module_core + mod->core_ro_size,
108913 + set_page_attributes(mod->module_core_rx,
108914 + mod->module_core_rx + mod->core_size_rx,
108915 set_memory_rw);
108916 }
108917
108918 static void unset_module_init_ro_nx(struct module *mod)
108919 {
108920 - set_page_attributes(mod->module_init + mod->init_text_size,
108921 - mod->module_init + mod->init_size,
108922 + set_page_attributes(mod->module_init_rw,
108923 + mod->module_init_rw + mod->init_size_rw,
108924 set_memory_x);
108925 - set_page_attributes(mod->module_init,
108926 - mod->module_init + mod->init_ro_size,
108927 + set_page_attributes(mod->module_init_rx,
108928 + mod->module_init_rx + mod->init_size_rx,
108929 set_memory_rw);
108930 }
108931
108932 @@ -1942,14 +1996,14 @@ void set_all_modules_text_rw(void)
108933 list_for_each_entry_rcu(mod, &modules, list) {
108934 if (mod->state == MODULE_STATE_UNFORMED)
108935 continue;
108936 - if ((mod->module_core) && (mod->core_text_size)) {
108937 - set_page_attributes(mod->module_core,
108938 - mod->module_core + mod->core_text_size,
108939 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
108940 + set_page_attributes(mod->module_core_rx,
108941 + mod->module_core_rx + mod->core_size_rx,
108942 set_memory_rw);
108943 }
108944 - if ((mod->module_init) && (mod->init_text_size)) {
108945 - set_page_attributes(mod->module_init,
108946 - mod->module_init + mod->init_text_size,
108947 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
108948 + set_page_attributes(mod->module_init_rx,
108949 + mod->module_init_rx + mod->init_size_rx,
108950 set_memory_rw);
108951 }
108952 }
108953 @@ -1965,14 +2019,14 @@ void set_all_modules_text_ro(void)
108954 list_for_each_entry_rcu(mod, &modules, list) {
108955 if (mod->state == MODULE_STATE_UNFORMED)
108956 continue;
108957 - if ((mod->module_core) && (mod->core_text_size)) {
108958 - set_page_attributes(mod->module_core,
108959 - mod->module_core + mod->core_text_size,
108960 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
108961 + set_page_attributes(mod->module_core_rx,
108962 + mod->module_core_rx + mod->core_size_rx,
108963 set_memory_ro);
108964 }
108965 - if ((mod->module_init) && (mod->init_text_size)) {
108966 - set_page_attributes(mod->module_init,
108967 - mod->module_init + mod->init_text_size,
108968 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
108969 + set_page_attributes(mod->module_init_rx,
108970 + mod->module_init_rx + mod->init_size_rx,
108971 set_memory_ro);
108972 }
108973 }
108974 @@ -1981,7 +2035,15 @@ void set_all_modules_text_ro(void)
108975 #else
108976 static inline void set_section_ro_nx(void *base, unsigned long text_size, unsigned long ro_size, unsigned long total_size) { }
108977 static void unset_module_core_ro_nx(struct module *mod) { }
108978 -static void unset_module_init_ro_nx(struct module *mod) { }
108979 +static void unset_module_init_ro_nx(struct module *mod)
108980 +{
108981 +
108982 +#ifdef CONFIG_PAX_KERNEXEC
108983 + set_memory_nx((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
108984 + set_memory_rw((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
108985 +#endif
108986 +
108987 +}
108988 #endif
108989
108990 void __weak module_memfree(void *module_region)
108991 @@ -2036,16 +2098,19 @@ static void free_module(struct module *mod)
108992 /* This may be NULL, but that's OK */
108993 unset_module_init_ro_nx(mod);
108994 module_arch_freeing_init(mod);
108995 - module_memfree(mod->module_init);
108996 + module_memfree(mod->module_init_rw);
108997 + module_memfree_exec(mod->module_init_rx);
108998 kfree(mod->args);
108999 percpu_modfree(mod);
109000
109001 /* Free lock-classes; relies on the preceding sync_rcu(). */
109002 - lockdep_free_key_range(mod->module_core, mod->core_size);
109003 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
109004 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
109005
109006 /* Finally, free the core (containing the module structure) */
109007 unset_module_core_ro_nx(mod);
109008 - module_memfree(mod->module_core);
109009 + module_memfree_exec(mod->module_core_rx);
109010 + module_memfree(mod->module_core_rw);
109011
109012 #ifdef CONFIG_MPU
109013 update_protections(current->mm);
109014 @@ -2114,9 +2179,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
109015 int ret = 0;
109016 const struct kernel_symbol *ksym;
109017
109018 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
109019 + int is_fs_load = 0;
109020 + int register_filesystem_found = 0;
109021 + char *p;
109022 +
109023 + p = strstr(mod->args, "grsec_modharden_fs");
109024 + if (p) {
109025 + char *endptr = p + sizeof("grsec_modharden_fs") - 1;
109026 + /* copy \0 as well */
109027 + memmove(p, endptr, strlen(mod->args) - (unsigned int)(endptr - mod->args) + 1);
109028 + is_fs_load = 1;
109029 + }
109030 +#endif
109031 +
109032 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
109033 const char *name = info->strtab + sym[i].st_name;
109034
109035 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
109036 + /* it's a real shame this will never get ripped and copied
109037 + upstream! ;(
109038 + */
109039 + if (is_fs_load && !strcmp(name, "register_filesystem"))
109040 + register_filesystem_found = 1;
109041 +#endif
109042 +
109043 switch (sym[i].st_shndx) {
109044 case SHN_COMMON:
109045 /* Ignore common symbols */
109046 @@ -2141,7 +2228,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
109047 ksym = resolve_symbol_wait(mod, info, name);
109048 /* Ok if resolved. */
109049 if (ksym && !IS_ERR(ksym)) {
109050 + pax_open_kernel();
109051 sym[i].st_value = ksym->value;
109052 + pax_close_kernel();
109053 break;
109054 }
109055
109056 @@ -2160,11 +2249,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
109057 secbase = (unsigned long)mod_percpu(mod);
109058 else
109059 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
109060 + pax_open_kernel();
109061 sym[i].st_value += secbase;
109062 + pax_close_kernel();
109063 break;
109064 }
109065 }
109066
109067 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
109068 + if (is_fs_load && !register_filesystem_found) {
109069 + printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
109070 + ret = -EPERM;
109071 + }
109072 +#endif
109073 +
109074 return ret;
109075 }
109076
109077 @@ -2248,22 +2346,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
109078 || s->sh_entsize != ~0UL
109079 || strstarts(sname, ".init"))
109080 continue;
109081 - s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
109082 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
109083 + s->sh_entsize = get_offset(mod, &mod->core_size_rw, s, i);
109084 + else
109085 + s->sh_entsize = get_offset(mod, &mod->core_size_rx, s, i);
109086 pr_debug("\t%s\n", sname);
109087 }
109088 - switch (m) {
109089 - case 0: /* executable */
109090 - mod->core_size = debug_align(mod->core_size);
109091 - mod->core_text_size = mod->core_size;
109092 - break;
109093 - case 1: /* RO: text and ro-data */
109094 - mod->core_size = debug_align(mod->core_size);
109095 - mod->core_ro_size = mod->core_size;
109096 - break;
109097 - case 3: /* whole core */
109098 - mod->core_size = debug_align(mod->core_size);
109099 - break;
109100 - }
109101 }
109102
109103 pr_debug("Init section allocation order:\n");
109104 @@ -2277,23 +2365,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
109105 || s->sh_entsize != ~0UL
109106 || !strstarts(sname, ".init"))
109107 continue;
109108 - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
109109 - | INIT_OFFSET_MASK);
109110 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
109111 + s->sh_entsize = get_offset(mod, &mod->init_size_rw, s, i);
109112 + else
109113 + s->sh_entsize = get_offset(mod, &mod->init_size_rx, s, i);
109114 + s->sh_entsize |= INIT_OFFSET_MASK;
109115 pr_debug("\t%s\n", sname);
109116 }
109117 - switch (m) {
109118 - case 0: /* executable */
109119 - mod->init_size = debug_align(mod->init_size);
109120 - mod->init_text_size = mod->init_size;
109121 - break;
109122 - case 1: /* RO: text and ro-data */
109123 - mod->init_size = debug_align(mod->init_size);
109124 - mod->init_ro_size = mod->init_size;
109125 - break;
109126 - case 3: /* whole init */
109127 - mod->init_size = debug_align(mod->init_size);
109128 - break;
109129 - }
109130 }
109131 }
109132
109133 @@ -2466,7 +2544,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
109134
109135 /* Put symbol section at end of init part of module. */
109136 symsect->sh_flags |= SHF_ALLOC;
109137 - symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
109138 + symsect->sh_entsize = get_offset(mod, &mod->init_size_rx, symsect,
109139 info->index.sym) | INIT_OFFSET_MASK;
109140 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
109141
109142 @@ -2483,16 +2561,16 @@ static void layout_symtab(struct module *mod, struct load_info *info)
109143 }
109144
109145 /* Append room for core symbols at end of core part. */
109146 - info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
109147 - info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
109148 - mod->core_size += strtab_size;
109149 - mod->core_size = debug_align(mod->core_size);
109150 + info->symoffs = ALIGN(mod->core_size_rx, symsect->sh_addralign ?: 1);
109151 + info->stroffs = mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
109152 + mod->core_size_rx += strtab_size;
109153 + mod->core_size_rx = debug_align(mod->core_size_rx);
109154
109155 /* Put string table section at end of init part of module. */
109156 strsect->sh_flags |= SHF_ALLOC;
109157 - strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
109158 + strsect->sh_entsize = get_offset(mod, &mod->init_size_rx, strsect,
109159 info->index.str) | INIT_OFFSET_MASK;
109160 - mod->init_size = debug_align(mod->init_size);
109161 + mod->init_size_rx = debug_align(mod->init_size_rx);
109162 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
109163 }
109164
109165 @@ -2509,12 +2587,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
109166 /* Make sure we get permanent strtab: don't use info->strtab. */
109167 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
109168
109169 + pax_open_kernel();
109170 +
109171 /* Set types up while we still have access to sections. */
109172 for (i = 0; i < mod->num_symtab; i++)
109173 mod->symtab[i].st_info = elf_type(&mod->symtab[i], info);
109174
109175 - mod->core_symtab = dst = mod->module_core + info->symoffs;
109176 - mod->core_strtab = s = mod->module_core + info->stroffs;
109177 + mod->core_symtab = dst = mod->module_core_rx + info->symoffs;
109178 + mod->core_strtab = s = mod->module_core_rx + info->stroffs;
109179 src = mod->symtab;
109180 for (ndst = i = 0; i < mod->num_symtab; i++) {
109181 if (i == 0 ||
109182 @@ -2526,6 +2606,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
109183 }
109184 }
109185 mod->core_num_syms = ndst;
109186 +
109187 + pax_close_kernel();
109188 }
109189 #else
109190 static inline void layout_symtab(struct module *mod, struct load_info *info)
109191 @@ -2825,7 +2907,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
109192 mod = (void *)info->sechdrs[info->index.mod].sh_addr;
109193
109194 if (info->index.sym == 0) {
109195 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
109196 + /*
109197 + * avoid potentially printing jibberish on attempted load
109198 + * of a module randomized with a different seed
109199 + */
109200 + pr_warn("module has no symbols (stripped?)\n");
109201 +#else
109202 pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
109203 +#endif
109204 return ERR_PTR(-ENOEXEC);
109205 }
109206
109207 @@ -2841,8 +2931,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
109208 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
109209 {
109210 const char *modmagic = get_modinfo(info, "vermagic");
109211 + const char *license = get_modinfo(info, "license");
109212 int err;
109213
109214 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
109215 + if (!license || !license_is_gpl_compatible(license))
109216 + return -ENOEXEC;
109217 +#endif
109218 +
109219 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
109220 modmagic = NULL;
109221
109222 @@ -2867,7 +2963,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
109223 }
109224
109225 /* Set up license info based on the info section */
109226 - set_license(mod, get_modinfo(info, "license"));
109227 + set_license(mod, license);
109228
109229 return 0;
109230 }
109231 @@ -2964,7 +3060,7 @@ static int move_module(struct module *mod, struct load_info *info)
109232 void *ptr;
109233
109234 /* Do the allocs. */
109235 - ptr = module_alloc(mod->core_size);
109236 + ptr = module_alloc(mod->core_size_rw);
109237 /*
109238 * The pointer to this block is stored in the module structure
109239 * which is inside the block. Just mark it as not being a
109240 @@ -2974,11 +3070,11 @@ static int move_module(struct module *mod, struct load_info *info)
109241 if (!ptr)
109242 return -ENOMEM;
109243
109244 - memset(ptr, 0, mod->core_size);
109245 - mod->module_core = ptr;
109246 + memset(ptr, 0, mod->core_size_rw);
109247 + mod->module_core_rw = ptr;
109248
109249 - if (mod->init_size) {
109250 - ptr = module_alloc(mod->init_size);
109251 + if (mod->init_size_rw) {
109252 + ptr = module_alloc(mod->init_size_rw);
109253 /*
109254 * The pointer to this block is stored in the module structure
109255 * which is inside the block. This block doesn't need to be
109256 @@ -2987,13 +3083,45 @@ static int move_module(struct module *mod, struct load_info *info)
109257 */
109258 kmemleak_ignore(ptr);
109259 if (!ptr) {
109260 - module_memfree(mod->module_core);
109261 + module_memfree(mod->module_core_rw);
109262 return -ENOMEM;
109263 }
109264 - memset(ptr, 0, mod->init_size);
109265 - mod->module_init = ptr;
109266 + memset(ptr, 0, mod->init_size_rw);
109267 + mod->module_init_rw = ptr;
109268 } else
109269 - mod->module_init = NULL;
109270 + mod->module_init_rw = NULL;
109271 +
109272 + ptr = module_alloc_exec(mod->core_size_rx);
109273 + kmemleak_not_leak(ptr);
109274 + if (!ptr) {
109275 + if (mod->module_init_rw)
109276 + module_memfree(mod->module_init_rw);
109277 + module_memfree(mod->module_core_rw);
109278 + return -ENOMEM;
109279 + }
109280 +
109281 + pax_open_kernel();
109282 + memset(ptr, 0, mod->core_size_rx);
109283 + pax_close_kernel();
109284 + mod->module_core_rx = ptr;
109285 +
109286 + if (mod->init_size_rx) {
109287 + ptr = module_alloc_exec(mod->init_size_rx);
109288 + kmemleak_ignore(ptr);
109289 + if (!ptr && mod->init_size_rx) {
109290 + module_memfree_exec(mod->module_core_rx);
109291 + if (mod->module_init_rw)
109292 + module_memfree(mod->module_init_rw);
109293 + module_memfree(mod->module_core_rw);
109294 + return -ENOMEM;
109295 + }
109296 +
109297 + pax_open_kernel();
109298 + memset(ptr, 0, mod->init_size_rx);
109299 + pax_close_kernel();
109300 + mod->module_init_rx = ptr;
109301 + } else
109302 + mod->module_init_rx = NULL;
109303
109304 /* Transfer each section which specifies SHF_ALLOC */
109305 pr_debug("final section addresses:\n");
109306 @@ -3004,16 +3132,45 @@ static int move_module(struct module *mod, struct load_info *info)
109307 if (!(shdr->sh_flags & SHF_ALLOC))
109308 continue;
109309
109310 - if (shdr->sh_entsize & INIT_OFFSET_MASK)
109311 - dest = mod->module_init
109312 - + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
109313 - else
109314 - dest = mod->module_core + shdr->sh_entsize;
109315 + if (shdr->sh_entsize & INIT_OFFSET_MASK) {
109316 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
109317 + dest = mod->module_init_rw
109318 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
109319 + else
109320 + dest = mod->module_init_rx
109321 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
109322 + } else {
109323 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
109324 + dest = mod->module_core_rw + shdr->sh_entsize;
109325 + else
109326 + dest = mod->module_core_rx + shdr->sh_entsize;
109327 + }
109328 +
109329 + if (shdr->sh_type != SHT_NOBITS) {
109330 +
109331 +#ifdef CONFIG_PAX_KERNEXEC
109332 +#ifdef CONFIG_X86_64
109333 + if ((shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_EXECINSTR))
109334 + set_memory_x((unsigned long)dest, (shdr->sh_size + PAGE_SIZE) >> PAGE_SHIFT);
109335 +#endif
109336 + if (!(shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_ALLOC)) {
109337 + pax_open_kernel();
109338 + memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
109339 + pax_close_kernel();
109340 + } else
109341 +#endif
109342
109343 - if (shdr->sh_type != SHT_NOBITS)
109344 memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
109345 + }
109346 /* Update sh_addr to point to copy in image. */
109347 - shdr->sh_addr = (unsigned long)dest;
109348 +
109349 +#ifdef CONFIG_PAX_KERNEXEC
109350 + if (shdr->sh_flags & SHF_EXECINSTR)
109351 + shdr->sh_addr = ktva_ktla((unsigned long)dest);
109352 + else
109353 +#endif
109354 +
109355 + shdr->sh_addr = (unsigned long)dest;
109356 pr_debug("\t0x%lx %s\n",
109357 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
109358 }
109359 @@ -3070,12 +3227,12 @@ static void flush_module_icache(const struct module *mod)
109360 * Do it before processing of module parameters, so the module
109361 * can provide parameter accessor functions of its own.
109362 */
109363 - if (mod->module_init)
109364 - flush_icache_range((unsigned long)mod->module_init,
109365 - (unsigned long)mod->module_init
109366 - + mod->init_size);
109367 - flush_icache_range((unsigned long)mod->module_core,
109368 - (unsigned long)mod->module_core + mod->core_size);
109369 + if (mod->module_init_rx)
109370 + flush_icache_range((unsigned long)mod->module_init_rx,
109371 + (unsigned long)mod->module_init_rx
109372 + + mod->init_size_rx);
109373 + flush_icache_range((unsigned long)mod->module_core_rx,
109374 + (unsigned long)mod->module_core_rx + mod->core_size_rx);
109375
109376 set_fs(old_fs);
109377 }
109378 @@ -3133,8 +3290,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
109379 {
109380 percpu_modfree(mod);
109381 module_arch_freeing_init(mod);
109382 - module_memfree(mod->module_init);
109383 - module_memfree(mod->module_core);
109384 + module_memfree_exec(mod->module_init_rx);
109385 + module_memfree_exec(mod->module_core_rx);
109386 + module_memfree(mod->module_init_rw);
109387 + module_memfree(mod->module_core_rw);
109388 }
109389
109390 int __weak module_finalize(const Elf_Ehdr *hdr,
109391 @@ -3147,7 +3306,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
109392 static int post_relocation(struct module *mod, const struct load_info *info)
109393 {
109394 /* Sort exception table now relocations are done. */
109395 + pax_open_kernel();
109396 sort_extable(mod->extable, mod->extable + mod->num_exentries);
109397 + pax_close_kernel();
109398
109399 /* Copy relocated percpu area over. */
109400 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
109401 @@ -3195,13 +3356,15 @@ static void do_mod_ctors(struct module *mod)
109402 /* For freeing module_init on success, in case kallsyms traversing */
109403 struct mod_initfree {
109404 struct rcu_head rcu;
109405 - void *module_init;
109406 + void *module_init_rw;
109407 + void *module_init_rx;
109408 };
109409
109410 static void do_free_init(struct rcu_head *head)
109411 {
109412 struct mod_initfree *m = container_of(head, struct mod_initfree, rcu);
109413 - module_memfree(m->module_init);
109414 + module_memfree(m->module_init_rw);
109415 + module_memfree_exec(m->module_init_rx);
109416 kfree(m);
109417 }
109418
109419 @@ -3221,7 +3384,8 @@ static noinline int do_init_module(struct module *mod)
109420 ret = -ENOMEM;
109421 goto fail;
109422 }
109423 - freeinit->module_init = mod->module_init;
109424 + freeinit->module_init_rw = mod->module_init_rw;
109425 + freeinit->module_init_rx = mod->module_init_rx;
109426
109427 /*
109428 * We want to find out whether @mod uses async during init. Clear
109429 @@ -3281,10 +3445,10 @@ static noinline int do_init_module(struct module *mod)
109430 mod_tree_remove_init(mod);
109431 unset_module_init_ro_nx(mod);
109432 module_arch_freeing_init(mod);
109433 - mod->module_init = NULL;
109434 - mod->init_size = 0;
109435 - mod->init_ro_size = 0;
109436 - mod->init_text_size = 0;
109437 + mod->module_init_rw = NULL;
109438 + mod->module_init_rx = NULL;
109439 + mod->init_size_rw = 0;
109440 + mod->init_size_rx = 0;
109441 /*
109442 * We want to free module_init, but be aware that kallsyms may be
109443 * walking this with preempt disabled. In all the failure paths, we
109444 @@ -3374,16 +3538,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
109445 module_bug_finalize(info->hdr, info->sechdrs, mod);
109446
109447 /* Set RO and NX regions for core */
109448 - set_section_ro_nx(mod->module_core,
109449 - mod->core_text_size,
109450 - mod->core_ro_size,
109451 - mod->core_size);
109452 + set_section_ro_nx(mod->module_core_rx,
109453 + mod->core_size_rx,
109454 + mod->core_size_rx,
109455 + mod->core_size_rx);
109456
109457 /* Set RO and NX regions for init */
109458 - set_section_ro_nx(mod->module_init,
109459 - mod->init_text_size,
109460 - mod->init_ro_size,
109461 - mod->init_size);
109462 + set_section_ro_nx(mod->module_init_rx,
109463 + mod->init_size_rx,
109464 + mod->init_size_rx,
109465 + mod->init_size_rx);
109466
109467 /* Mark state as coming so strong_try_module_get() ignores us,
109468 * but kallsyms etc. can see us. */
109469 @@ -3478,9 +3642,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
109470 if (err)
109471 goto free_unload;
109472
109473 + /* Now copy in args */
109474 + mod->args = strndup_user(uargs, ~0UL >> 1);
109475 + if (IS_ERR(mod->args)) {
109476 + err = PTR_ERR(mod->args);
109477 + goto free_unload;
109478 + }
109479 +
109480 /* Set up MODINFO_ATTR fields */
109481 setup_modinfo(mod, info);
109482
109483 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
109484 + {
109485 + char *p, *p2;
109486 +
109487 + if (strstr(mod->args, "grsec_modharden_netdev")) {
109488 + printk(KERN_ALERT "grsec: denied auto-loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%.64s instead.", mod->name);
109489 + err = -EPERM;
109490 + goto free_modinfo;
109491 + } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
109492 + p += sizeof("grsec_modharden_normal") - 1;
109493 + p2 = strstr(p, "_");
109494 + if (p2) {
109495 + *p2 = '\0';
109496 + printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
109497 + *p2 = '_';
109498 + }
109499 + err = -EPERM;
109500 + goto free_modinfo;
109501 + }
109502 + }
109503 +#endif
109504 +
109505 /* Fix up syms, so that st_value is a pointer to location. */
109506 err = simplify_symbols(mod, info);
109507 if (err < 0)
109508 @@ -3496,13 +3689,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
109509
109510 flush_module_icache(mod);
109511
109512 - /* Now copy in args */
109513 - mod->args = strndup_user(uargs, ~0UL >> 1);
109514 - if (IS_ERR(mod->args)) {
109515 - err = PTR_ERR(mod->args);
109516 - goto free_arch_cleanup;
109517 - }
109518 -
109519 dynamic_debug_setup(info->debug, info->num_debug);
109520
109521 /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
109522 @@ -3554,11 +3740,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
109523 ddebug_cleanup:
109524 dynamic_debug_remove(info->debug);
109525 synchronize_sched();
109526 - kfree(mod->args);
109527 - free_arch_cleanup:
109528 module_arch_cleanup(mod);
109529 free_modinfo:
109530 free_modinfo(mod);
109531 + kfree(mod->args);
109532 free_unload:
109533 module_unload_free(mod);
109534 unlink_mod:
109535 @@ -3572,7 +3757,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
109536 mutex_unlock(&module_mutex);
109537 free_module:
109538 /* Free lock-classes; relies on the preceding sync_rcu() */
109539 - lockdep_free_key_range(mod->module_core, mod->core_size);
109540 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
109541 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
109542
109543 module_deallocate(mod, info);
109544 free_copy:
109545 @@ -3649,10 +3835,16 @@ static const char *get_ksymbol(struct module *mod,
109546 unsigned long nextval;
109547
109548 /* At worse, next value is at end of module */
109549 - if (within_module_init(addr, mod))
109550 - nextval = (unsigned long)mod->module_init+mod->init_text_size;
109551 + if (within_module_init_rx(addr, mod))
109552 + nextval = (unsigned long)mod->module_init_rx+mod->init_size_rx;
109553 + else if (within_module_init_rw(addr, mod))
109554 + nextval = (unsigned long)mod->module_init_rw+mod->init_size_rw;
109555 + else if (within_module_core_rx(addr, mod))
109556 + nextval = (unsigned long)mod->module_core_rx+mod->core_size_rx;
109557 + else if (within_module_core_rw(addr, mod))
109558 + nextval = (unsigned long)mod->module_core_rw+mod->core_size_rw;
109559 else
109560 - nextval = (unsigned long)mod->module_core+mod->core_text_size;
109561 + return NULL;
109562
109563 /* Scan for closest preceding symbol, and next symbol. (ELF
109564 starts real symbols at 1). */
109565 @@ -3899,7 +4091,7 @@ static int m_show(struct seq_file *m, void *p)
109566 return 0;
109567
109568 seq_printf(m, "%s %u",
109569 - mod->name, mod->init_size + mod->core_size);
109570 + mod->name, mod->init_size_rx + mod->init_size_rw + mod->core_size_rx + mod->core_size_rw);
109571 print_unload_info(m, mod);
109572
109573 /* Informative for users. */
109574 @@ -3908,7 +4100,7 @@ static int m_show(struct seq_file *m, void *p)
109575 mod->state == MODULE_STATE_COMING ? "Loading" :
109576 "Live");
109577 /* Used by oprofile and other similar tools. */
109578 - seq_printf(m, " 0x%pK", mod->module_core);
109579 + seq_printf(m, " 0x%pK 0x%pK", mod->module_core_rx, mod->module_core_rw);
109580
109581 /* Taints info */
109582 if (mod->taints)
109583 @@ -3944,7 +4136,17 @@ static const struct file_operations proc_modules_operations = {
109584
109585 static int __init proc_modules_init(void)
109586 {
109587 +#ifndef CONFIG_GRKERNSEC_HIDESYM
109588 +#ifdef CONFIG_GRKERNSEC_PROC_USER
109589 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
109590 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
109591 + proc_create("modules", S_IRUSR | S_IRGRP, NULL, &proc_modules_operations);
109592 +#else
109593 proc_create("modules", 0, NULL, &proc_modules_operations);
109594 +#endif
109595 +#else
109596 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
109597 +#endif
109598 return 0;
109599 }
109600 module_init(proc_modules_init);
109601 @@ -4005,7 +4207,8 @@ struct module *__module_address(unsigned long addr)
109602 {
109603 struct module *mod;
109604
109605 - if (addr < module_addr_min || addr > module_addr_max)
109606 + if ((addr < module_addr_min_rx || addr > module_addr_max_rx) &&
109607 + (addr < module_addr_min_rw || addr > module_addr_max_rw))
109608 return NULL;
109609
109610 module_assert_mutex_or_preempt();
109611 @@ -4048,11 +4251,20 @@ bool is_module_text_address(unsigned long addr)
109612 */
109613 struct module *__module_text_address(unsigned long addr)
109614 {
109615 - struct module *mod = __module_address(addr);
109616 + struct module *mod;
109617 +
109618 +#ifdef CONFIG_X86_32
109619 + addr = ktla_ktva(addr);
109620 +#endif
109621 +
109622 + if (addr < module_addr_min_rx || addr > module_addr_max_rx)
109623 + return NULL;
109624 +
109625 + mod = __module_address(addr);
109626 +
109627 if (mod) {
109628 /* Make sure it's within the text section. */
109629 - if (!within(addr, mod->module_init, mod->init_text_size)
109630 - && !within(addr, mod->module_core, mod->core_text_size))
109631 + if (!within_module_init_rx(addr, mod) && !within_module_core_rx(addr, mod))
109632 mod = NULL;
109633 }
109634 return mod;
109635 diff --git a/kernel/notifier.c b/kernel/notifier.c
109636 index fd2c9ac..95e58f6 100644
109637 --- a/kernel/notifier.c
109638 +++ b/kernel/notifier.c
109639 @@ -5,6 +5,7 @@
109640 #include <linux/rcupdate.h>
109641 #include <linux/vmalloc.h>
109642 #include <linux/reboot.h>
109643 +#include <linux/mm.h>
109644
109645 /*
109646 * Notifier list for kernel code which wants to be called
109647 @@ -24,10 +25,12 @@ static int notifier_chain_register(struct notifier_block **nl,
109648 while ((*nl) != NULL) {
109649 if (n->priority > (*nl)->priority)
109650 break;
109651 - nl = &((*nl)->next);
109652 + nl = (struct notifier_block **)&((*nl)->next);
109653 }
109654 - n->next = *nl;
109655 + pax_open_kernel();
109656 + *(const void **)&n->next = *nl;
109657 rcu_assign_pointer(*nl, n);
109658 + pax_close_kernel();
109659 return 0;
109660 }
109661
109662 @@ -39,10 +42,12 @@ static int notifier_chain_cond_register(struct notifier_block **nl,
109663 return 0;
109664 if (n->priority > (*nl)->priority)
109665 break;
109666 - nl = &((*nl)->next);
109667 + nl = (struct notifier_block **)&((*nl)->next);
109668 }
109669 - n->next = *nl;
109670 + pax_open_kernel();
109671 + *(const void **)&n->next = *nl;
109672 rcu_assign_pointer(*nl, n);
109673 + pax_close_kernel();
109674 return 0;
109675 }
109676
109677 @@ -51,10 +56,12 @@ static int notifier_chain_unregister(struct notifier_block **nl,
109678 {
109679 while ((*nl) != NULL) {
109680 if ((*nl) == n) {
109681 + pax_open_kernel();
109682 rcu_assign_pointer(*nl, n->next);
109683 + pax_close_kernel();
109684 return 0;
109685 }
109686 - nl = &((*nl)->next);
109687 + nl = (struct notifier_block **)&((*nl)->next);
109688 }
109689 return -ENOENT;
109690 }
109691 diff --git a/kernel/padata.c b/kernel/padata.c
109692 index b38bea9..91acfbe 100644
109693 --- a/kernel/padata.c
109694 +++ b/kernel/padata.c
109695 @@ -54,7 +54,7 @@ static int padata_cpu_hash(struct parallel_data *pd)
109696 * seq_nr mod. number of cpus in use.
109697 */
109698
109699 - seq_nr = atomic_inc_return(&pd->seq_nr);
109700 + seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
109701 cpu_index = seq_nr % cpumask_weight(pd->cpumask.pcpu);
109702
109703 return padata_index_to_cpu(pd, cpu_index);
109704 @@ -428,7 +428,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
109705 padata_init_pqueues(pd);
109706 padata_init_squeues(pd);
109707 setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
109708 - atomic_set(&pd->seq_nr, -1);
109709 + atomic_set_unchecked(&pd->seq_nr, -1);
109710 atomic_set(&pd->reorder_objects, 0);
109711 atomic_set(&pd->refcnt, 0);
109712 pd->pinst = pinst;
109713 diff --git a/kernel/panic.c b/kernel/panic.c
109714 index 04e91ff..2419384 100644
109715 --- a/kernel/panic.c
109716 +++ b/kernel/panic.c
109717 @@ -54,7 +54,7 @@ EXPORT_SYMBOL(panic_blink);
109718 /*
109719 * Stop ourself in panic -- architecture code may override this
109720 */
109721 -void __weak panic_smp_self_stop(void)
109722 +void __weak __noreturn panic_smp_self_stop(void)
109723 {
109724 while (1)
109725 cpu_relax();
109726 @@ -426,7 +426,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
109727 disable_trace_on_warning();
109728
109729 pr_warn("------------[ cut here ]------------\n");
109730 - pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS()\n",
109731 + pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pA()\n",
109732 raw_smp_processor_id(), current->pid, file, line, caller);
109733
109734 if (args)
109735 @@ -491,7 +491,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
109736 */
109737 __visible void __stack_chk_fail(void)
109738 {
109739 - panic("stack-protector: Kernel stack is corrupted in: %p\n",
109740 + dump_stack();
109741 + panic("stack-protector: Kernel stack is corrupted in: %pA\n",
109742 __builtin_return_address(0));
109743 }
109744 EXPORT_SYMBOL(__stack_chk_fail);
109745 diff --git a/kernel/pid.c b/kernel/pid.c
109746 index ca36879..1f6c7bd 100644
109747 --- a/kernel/pid.c
109748 +++ b/kernel/pid.c
109749 @@ -33,6 +33,7 @@
109750 #include <linux/rculist.h>
109751 #include <linux/bootmem.h>
109752 #include <linux/hash.h>
109753 +#include <linux/security.h>
109754 #include <linux/pid_namespace.h>
109755 #include <linux/init_task.h>
109756 #include <linux/syscalls.h>
109757 @@ -47,7 +48,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID;
109758
109759 int pid_max = PID_MAX_DEFAULT;
109760
109761 -#define RESERVED_PIDS 300
109762 +#define RESERVED_PIDS 500
109763
109764 int pid_max_min = RESERVED_PIDS + 1;
109765 int pid_max_max = PID_MAX_LIMIT;
109766 @@ -451,9 +452,17 @@ EXPORT_SYMBOL(pid_task);
109767 */
109768 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
109769 {
109770 + struct task_struct *task;
109771 +
109772 RCU_LOCKDEP_WARN(!rcu_read_lock_held(),
109773 "find_task_by_pid_ns() needs rcu_read_lock() protection");
109774 - return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
109775 +
109776 + task = pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
109777 +
109778 + if (gr_pid_is_chrooted(task))
109779 + return NULL;
109780 +
109781 + return task;
109782 }
109783
109784 struct task_struct *find_task_by_vpid(pid_t vnr)
109785 @@ -461,13 +470,21 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
109786 return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
109787 }
109788
109789 +struct task_struct *find_task_by_vpid_unrestricted(pid_t vnr)
109790 +{
109791 + rcu_lockdep_assert(rcu_read_lock_held(),
109792 + "find_task_by_pid_ns() needs rcu_read_lock()"
109793 + " protection");
109794 + return pid_task(find_pid_ns(vnr, task_active_pid_ns(current)), PIDTYPE_PID);
109795 +}
109796 +
109797 struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
109798 {
109799 struct pid *pid;
109800 rcu_read_lock();
109801 if (type != PIDTYPE_PID)
109802 task = task->group_leader;
109803 - pid = get_pid(task->pids[type].pid);
109804 + pid = get_pid(rcu_dereference(task->pids[type].pid));
109805 rcu_read_unlock();
109806 return pid;
109807 }
109808 @@ -528,7 +545,7 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
109809 if (likely(pid_alive(task))) {
109810 if (type != PIDTYPE_PID)
109811 task = task->group_leader;
109812 - nr = pid_nr_ns(task->pids[type].pid, ns);
109813 + nr = pid_nr_ns(rcu_dereference(task->pids[type].pid), ns);
109814 }
109815 rcu_read_unlock();
109816
109817 diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
109818 index a65ba13..f600dbb 100644
109819 --- a/kernel/pid_namespace.c
109820 +++ b/kernel/pid_namespace.c
109821 @@ -274,7 +274,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
109822 void __user *buffer, size_t *lenp, loff_t *ppos)
109823 {
109824 struct pid_namespace *pid_ns = task_active_pid_ns(current);
109825 - struct ctl_table tmp = *table;
109826 + ctl_table_no_const tmp = *table;
109827
109828 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN))
109829 return -EPERM;
109830 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
109831 index 02e8dfa..8b4a8d3 100644
109832 --- a/kernel/power/Kconfig
109833 +++ b/kernel/power/Kconfig
109834 @@ -34,6 +34,8 @@ config HIBERNATE_CALLBACKS
109835 config HIBERNATION
109836 bool "Hibernation (aka 'suspend to disk')"
109837 depends on SWAP && ARCH_HIBERNATION_POSSIBLE
109838 + depends on !GRKERNSEC_KMEM
109839 + depends on !PAX_MEMORY_SANITIZE
109840 select HIBERNATE_CALLBACKS
109841 select LZO_COMPRESS
109842 select LZO_DECOMPRESS
109843 diff --git a/kernel/power/process.c b/kernel/power/process.c
109844 index 564f786..361a18e 100644
109845 --- a/kernel/power/process.c
109846 +++ b/kernel/power/process.c
109847 @@ -35,6 +35,7 @@ static int try_to_freeze_tasks(bool user_only)
109848 unsigned int elapsed_msecs;
109849 bool wakeup = false;
109850 int sleep_usecs = USEC_PER_MSEC;
109851 + bool timedout = false;
109852
109853 do_gettimeofday(&start);
109854
109855 @@ -45,13 +46,20 @@ static int try_to_freeze_tasks(bool user_only)
109856
109857 while (true) {
109858 todo = 0;
109859 + if (time_after(jiffies, end_time))
109860 + timedout = true;
109861 read_lock(&tasklist_lock);
109862 for_each_process_thread(g, p) {
109863 if (p == current || !freeze_task(p))
109864 continue;
109865
109866 - if (!freezer_should_skip(p))
109867 + if (!freezer_should_skip(p)) {
109868 todo++;
109869 + if (timedout) {
109870 + printk(KERN_ERR "Task refusing to freeze:\n");
109871 + sched_show_task(p);
109872 + }
109873 + }
109874 }
109875 read_unlock(&tasklist_lock);
109876
109877 @@ -60,7 +68,7 @@ static int try_to_freeze_tasks(bool user_only)
109878 todo += wq_busy;
109879 }
109880
109881 - if (!todo || time_after(jiffies, end_time))
109882 + if (!todo || timedout)
109883 break;
109884
109885 if (pm_wakeup_pending()) {
109886 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
109887 index 8f0324e..6416846 100644
109888 --- a/kernel/printk/printk.c
109889 +++ b/kernel/printk/printk.c
109890 @@ -269,6 +269,9 @@ static u32 clear_idx;
109891 #define PREFIX_MAX 32
109892 #define LOG_LINE_MAX (1024 - PREFIX_MAX)
109893
109894 +#define LOG_LEVEL(v) ((v) & 0x07)
109895 +#define LOG_FACILITY(v) ((v) >> 3 & 0xff)
109896 +
109897 /* record buffer */
109898 #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
109899 #define LOG_ALIGN 4
109900 @@ -475,7 +478,7 @@ static int log_store(int facility, int level,
109901 return msg->text_len;
109902 }
109903
109904 -int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
109905 +int dmesg_restrict __read_only = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
109906
109907 static int syslog_action_restricted(int type)
109908 {
109909 @@ -498,6 +501,11 @@ int check_syslog_permissions(int type, int source)
109910 if (source == SYSLOG_FROM_PROC && type != SYSLOG_ACTION_OPEN)
109911 goto ok;
109912
109913 +#ifdef CONFIG_GRKERNSEC_DMESG
109914 + if (grsec_enable_dmesg && !capable(CAP_SYSLOG) && !capable_nolog(CAP_SYS_ADMIN))
109915 + return -EPERM;
109916 +#endif
109917 +
109918 if (syslog_action_restricted(type)) {
109919 if (capable(CAP_SYSLOG))
109920 goto ok;
109921 @@ -611,7 +619,6 @@ struct devkmsg_user {
109922 static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from)
109923 {
109924 char *buf, *line;
109925 - int i;
109926 int level = default_message_loglevel;
109927 int facility = 1; /* LOG_USER */
109928 size_t len = iov_iter_count(from);
109929 @@ -641,12 +648,13 @@ static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from)
109930 line = buf;
109931 if (line[0] == '<') {
109932 char *endp = NULL;
109933 + unsigned int u;
109934
109935 - i = simple_strtoul(line+1, &endp, 10);
109936 + u = simple_strtoul(line + 1, &endp, 10);
109937 if (endp && endp[0] == '>') {
109938 - level = i & 7;
109939 - if (i >> 3)
109940 - facility = i >> 3;
109941 + level = LOG_LEVEL(u);
109942 + if (LOG_FACILITY(u) != 0)
109943 + facility = LOG_FACILITY(u);
109944 endp++;
109945 len -= endp - line;
109946 line = endp;
109947 diff --git a/kernel/profile.c b/kernel/profile.c
109948 index 99513e1..0caa643 100644
109949 --- a/kernel/profile.c
109950 +++ b/kernel/profile.c
109951 @@ -37,7 +37,7 @@ struct profile_hit {
109952 #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit))
109953 #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ)
109954
109955 -static atomic_t *prof_buffer;
109956 +static atomic_unchecked_t *prof_buffer;
109957 static unsigned long prof_len, prof_shift;
109958
109959 int prof_on __read_mostly;
109960 @@ -256,7 +256,7 @@ static void profile_flip_buffers(void)
109961 hits[i].pc = 0;
109962 continue;
109963 }
109964 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
109965 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
109966 hits[i].hits = hits[i].pc = 0;
109967 }
109968 }
109969 @@ -317,9 +317,9 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
109970 * Add the current hit(s) and flush the write-queue out
109971 * to the global buffer:
109972 */
109973 - atomic_add(nr_hits, &prof_buffer[pc]);
109974 + atomic_add_unchecked(nr_hits, &prof_buffer[pc]);
109975 for (i = 0; i < NR_PROFILE_HIT; ++i) {
109976 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
109977 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
109978 hits[i].pc = hits[i].hits = 0;
109979 }
109980 out:
109981 @@ -394,7 +394,7 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
109982 {
109983 unsigned long pc;
109984 pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
109985 - atomic_add(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
109986 + atomic_add_unchecked(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
109987 }
109988 #endif /* !CONFIG_SMP */
109989
109990 @@ -489,7 +489,7 @@ read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos)
109991 return -EFAULT;
109992 buf++; p++; count--; read++;
109993 }
109994 - pnt = (char *)prof_buffer + p - sizeof(atomic_t);
109995 + pnt = (char *)prof_buffer + p - sizeof(atomic_unchecked_t);
109996 if (copy_to_user(buf, (void *)pnt, count))
109997 return -EFAULT;
109998 read += count;
109999 @@ -520,7 +520,7 @@ static ssize_t write_profile(struct file *file, const char __user *buf,
110000 }
110001 #endif
110002 profile_discard_flip_buffers();
110003 - memset(prof_buffer, 0, prof_len * sizeof(atomic_t));
110004 + memset(prof_buffer, 0, prof_len * sizeof(atomic_unchecked_t));
110005 return count;
110006 }
110007
110008 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
110009 index 787320d..9873654 100644
110010 --- a/kernel/ptrace.c
110011 +++ b/kernel/ptrace.c
110012 @@ -207,18 +207,45 @@ static int ptrace_check_attach(struct task_struct *child, bool ignore_state)
110013 return ret;
110014 }
110015
110016 -static int ptrace_has_cap(struct user_namespace *ns, unsigned int mode)
110017 +static bool ptrace_has_cap(const struct cred *tcred, unsigned int mode)
110018 {
110019 + struct user_namespace *tns = tcred->user_ns;
110020 + struct user_namespace *curns = current_cred()->user_ns;
110021 +
110022 + /* When a root-owned process enters a user namespace created by a
110023 + * malicious user, the user shouldn't be able to execute code under
110024 + * uid 0 by attaching to the root-owned process via ptrace.
110025 + * Therefore, similar to the capable_wrt_inode_uidgid() check,
110026 + * verify that all the uids and gids of the target process are
110027 + * mapped into the current namespace.
110028 + * No fsuid/fsgid check because __ptrace_may_access doesn't do it
110029 + * either.
110030 + */
110031 + if (!kuid_has_mapping(curns, tcred->euid) ||
110032 + !kuid_has_mapping(curns, tcred->suid) ||
110033 + !kuid_has_mapping(curns, tcred->uid) ||
110034 + !kgid_has_mapping(curns, tcred->egid) ||
110035 + !kgid_has_mapping(curns, tcred->sgid) ||
110036 + !kgid_has_mapping(curns, tcred->gid))
110037 + return false;
110038 +
110039 if (mode & PTRACE_MODE_NOAUDIT)
110040 - return has_ns_capability_noaudit(current, ns, CAP_SYS_PTRACE);
110041 + return has_ns_capability_noaudit(current, tns, CAP_SYS_PTRACE);
110042 else
110043 - return has_ns_capability(current, ns, CAP_SYS_PTRACE);
110044 + return has_ns_capability(current, tns, CAP_SYS_PTRACE);
110045 }
110046
110047 /* Returns 0 on success, -errno on denial. */
110048 static int __ptrace_may_access(struct task_struct *task, unsigned int mode)
110049 {
110050 const struct cred *cred = current_cred(), *tcred;
110051 + kuid_t caller_uid;
110052 + kgid_t caller_gid;
110053 +
110054 + if (!(mode & PTRACE_MODE_FSCREDS) == !(mode & PTRACE_MODE_REALCREDS)) {
110055 + WARN(1, "denying ptrace access check without PTRACE_MODE_*CREDS\n");
110056 + return -EPERM;
110057 + }
110058
110059 /* May we inspect the given task?
110060 * This check is used both for attaching with ptrace
110061 @@ -233,15 +260,30 @@ static int __ptrace_may_access(struct task_struct *task, unsigned int mode)
110062 if (same_thread_group(task, current))
110063 return 0;
110064 rcu_read_lock();
110065 + if (mode & PTRACE_MODE_FSCREDS) {
110066 + caller_uid = cred->fsuid;
110067 + caller_gid = cred->fsgid;
110068 + } else {
110069 + /*
110070 + * Using the euid would make more sense here, but something
110071 + * in userland might rely on the old behavior, and this
110072 + * shouldn't be a security problem since
110073 + * PTRACE_MODE_REALCREDS implies that the caller explicitly
110074 + * used a syscall that requests access to another process
110075 + * (and not a filesystem syscall to procfs).
110076 + */
110077 + caller_uid = cred->uid;
110078 + caller_gid = cred->gid;
110079 + }
110080 tcred = __task_cred(task);
110081 - if (uid_eq(cred->uid, tcred->euid) &&
110082 - uid_eq(cred->uid, tcred->suid) &&
110083 - uid_eq(cred->uid, tcred->uid) &&
110084 - gid_eq(cred->gid, tcred->egid) &&
110085 - gid_eq(cred->gid, tcred->sgid) &&
110086 - gid_eq(cred->gid, tcred->gid))
110087 + if (uid_eq(caller_uid, tcred->euid) &&
110088 + uid_eq(caller_uid, tcred->suid) &&
110089 + uid_eq(caller_uid, tcred->uid) &&
110090 + gid_eq(caller_gid, tcred->egid) &&
110091 + gid_eq(caller_gid, tcred->sgid) &&
110092 + gid_eq(caller_gid, tcred->gid))
110093 goto ok;
110094 - if (ptrace_has_cap(tcred->user_ns, mode))
110095 + if (ptrace_has_cap(tcred, mode))
110096 goto ok;
110097 rcu_read_unlock();
110098 return -EPERM;
110099 @@ -252,7 +294,7 @@ ok:
110100 dumpable = get_dumpable(task->mm);
110101 rcu_read_lock();
110102 if (dumpable != SUID_DUMP_USER &&
110103 - !ptrace_has_cap(__task_cred(task)->user_ns, mode)) {
110104 + !ptrace_has_cap(__task_cred(task), mode)) {
110105 rcu_read_unlock();
110106 return -EPERM;
110107 }
110108 @@ -306,7 +348,7 @@ static int ptrace_attach(struct task_struct *task, long request,
110109 goto out;
110110
110111 task_lock(task);
110112 - retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH);
110113 + retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH_REALCREDS);
110114 task_unlock(task);
110115 if (retval)
110116 goto unlock_creds;
110117 @@ -321,7 +363,7 @@ static int ptrace_attach(struct task_struct *task, long request,
110118 if (seize)
110119 flags |= PT_SEIZED;
110120 rcu_read_lock();
110121 - if (ns_capable(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
110122 + if (ns_capable_nolog(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
110123 flags |= PT_PTRACE_CAP;
110124 rcu_read_unlock();
110125 task->ptrace = flags;
110126 @@ -514,7 +556,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
110127 break;
110128 return -EIO;
110129 }
110130 - if (copy_to_user(dst, buf, retval))
110131 + if (retval > sizeof(buf) || copy_to_user(dst, buf, retval))
110132 return -EFAULT;
110133 copied += retval;
110134 src += retval;
110135 @@ -815,7 +857,7 @@ int ptrace_request(struct task_struct *child, long request,
110136 bool seized = child->ptrace & PT_SEIZED;
110137 int ret = -EIO;
110138 siginfo_t siginfo, *si;
110139 - void __user *datavp = (void __user *) data;
110140 + void __user *datavp = (__force void __user *) data;
110141 unsigned long __user *datalp = datavp;
110142 unsigned long flags;
110143
110144 @@ -1061,14 +1103,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
110145 goto out;
110146 }
110147
110148 + if (gr_handle_ptrace(child, request)) {
110149 + ret = -EPERM;
110150 + goto out_put_task_struct;
110151 + }
110152 +
110153 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
110154 ret = ptrace_attach(child, request, addr, data);
110155 /*
110156 * Some architectures need to do book-keeping after
110157 * a ptrace attach.
110158 */
110159 - if (!ret)
110160 + if (!ret) {
110161 arch_ptrace_attach(child);
110162 + gr_audit_ptrace(child);
110163 + }
110164 goto out_put_task_struct;
110165 }
110166
110167 @@ -1096,7 +1145,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
110168 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
110169 if (copied != sizeof(tmp))
110170 return -EIO;
110171 - return put_user(tmp, (unsigned long __user *)data);
110172 + return put_user(tmp, (__force unsigned long __user *)data);
110173 }
110174
110175 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
110176 @@ -1189,7 +1238,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
110177 }
110178
110179 COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
110180 - compat_long_t, addr, compat_long_t, data)
110181 + compat_ulong_t, addr, compat_ulong_t, data)
110182 {
110183 struct task_struct *child;
110184 long ret;
110185 @@ -1205,14 +1254,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
110186 goto out;
110187 }
110188
110189 + if (gr_handle_ptrace(child, request)) {
110190 + ret = -EPERM;
110191 + goto out_put_task_struct;
110192 + }
110193 +
110194 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
110195 ret = ptrace_attach(child, request, addr, data);
110196 /*
110197 * Some architectures need to do book-keeping after
110198 * a ptrace attach.
110199 */
110200 - if (!ret)
110201 + if (!ret) {
110202 arch_ptrace_attach(child);
110203 + gr_audit_ptrace(child);
110204 + }
110205 goto out_put_task_struct;
110206 }
110207
110208 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
110209 index 7719295..54d5fc7 100644
110210 --- a/kernel/rcu/rcutorture.c
110211 +++ b/kernel/rcu/rcutorture.c
110212 @@ -134,12 +134,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
110213 rcu_torture_count) = { 0 };
110214 static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
110215 rcu_torture_batch) = { 0 };
110216 -static atomic_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
110217 -static atomic_t n_rcu_torture_alloc;
110218 -static atomic_t n_rcu_torture_alloc_fail;
110219 -static atomic_t n_rcu_torture_free;
110220 -static atomic_t n_rcu_torture_mberror;
110221 -static atomic_t n_rcu_torture_error;
110222 +static atomic_unchecked_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
110223 +static atomic_unchecked_t n_rcu_torture_alloc;
110224 +static atomic_unchecked_t n_rcu_torture_alloc_fail;
110225 +static atomic_unchecked_t n_rcu_torture_free;
110226 +static atomic_unchecked_t n_rcu_torture_mberror;
110227 +static atomic_unchecked_t n_rcu_torture_error;
110228 static long n_rcu_torture_barrier_error;
110229 static long n_rcu_torture_boost_ktrerror;
110230 static long n_rcu_torture_boost_rterror;
110231 @@ -148,7 +148,7 @@ static long n_rcu_torture_boosts;
110232 static long n_rcu_torture_timers;
110233 static long n_barrier_attempts;
110234 static long n_barrier_successes;
110235 -static atomic_long_t n_cbfloods;
110236 +static atomic_long_unchecked_t n_cbfloods;
110237 static struct list_head rcu_torture_removed;
110238
110239 static int rcu_torture_writer_state;
110240 @@ -211,11 +211,11 @@ rcu_torture_alloc(void)
110241
110242 spin_lock_bh(&rcu_torture_lock);
110243 if (list_empty(&rcu_torture_freelist)) {
110244 - atomic_inc(&n_rcu_torture_alloc_fail);
110245 + atomic_inc_unchecked(&n_rcu_torture_alloc_fail);
110246 spin_unlock_bh(&rcu_torture_lock);
110247 return NULL;
110248 }
110249 - atomic_inc(&n_rcu_torture_alloc);
110250 + atomic_inc_unchecked(&n_rcu_torture_alloc);
110251 p = rcu_torture_freelist.next;
110252 list_del_init(p);
110253 spin_unlock_bh(&rcu_torture_lock);
110254 @@ -228,7 +228,7 @@ rcu_torture_alloc(void)
110255 static void
110256 rcu_torture_free(struct rcu_torture *p)
110257 {
110258 - atomic_inc(&n_rcu_torture_free);
110259 + atomic_inc_unchecked(&n_rcu_torture_free);
110260 spin_lock_bh(&rcu_torture_lock);
110261 list_add_tail(&p->rtort_free, &rcu_torture_freelist);
110262 spin_unlock_bh(&rcu_torture_lock);
110263 @@ -309,7 +309,7 @@ rcu_torture_pipe_update_one(struct rcu_torture *rp)
110264 i = rp->rtort_pipe_count;
110265 if (i > RCU_TORTURE_PIPE_LEN)
110266 i = RCU_TORTURE_PIPE_LEN;
110267 - atomic_inc(&rcu_torture_wcount[i]);
110268 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
110269 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
110270 rp->rtort_mbtest = 0;
110271 return true;
110272 @@ -840,7 +840,7 @@ rcu_torture_cbflood(void *arg)
110273 VERBOSE_TOROUT_STRING("rcu_torture_cbflood task started");
110274 do {
110275 schedule_timeout_interruptible(cbflood_inter_holdoff);
110276 - atomic_long_inc(&n_cbfloods);
110277 + atomic_long_inc_unchecked(&n_cbfloods);
110278 WARN_ON(signal_pending(current));
110279 for (i = 0; i < cbflood_n_burst; i++) {
110280 for (j = 0; j < cbflood_n_per_burst; j++) {
110281 @@ -968,7 +968,7 @@ rcu_torture_writer(void *arg)
110282 i = old_rp->rtort_pipe_count;
110283 if (i > RCU_TORTURE_PIPE_LEN)
110284 i = RCU_TORTURE_PIPE_LEN;
110285 - atomic_inc(&rcu_torture_wcount[i]);
110286 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
110287 old_rp->rtort_pipe_count++;
110288 switch (synctype[torture_random(&rand) % nsynctypes]) {
110289 case RTWS_DEF_FREE:
110290 @@ -1107,7 +1107,7 @@ static void rcu_torture_timer(unsigned long unused)
110291 return;
110292 }
110293 if (p->rtort_mbtest == 0)
110294 - atomic_inc(&n_rcu_torture_mberror);
110295 + atomic_inc_unchecked(&n_rcu_torture_mberror);
110296 spin_lock(&rand_lock);
110297 cur_ops->read_delay(&rand);
110298 n_rcu_torture_timers++;
110299 @@ -1183,7 +1183,7 @@ rcu_torture_reader(void *arg)
110300 continue;
110301 }
110302 if (p->rtort_mbtest == 0)
110303 - atomic_inc(&n_rcu_torture_mberror);
110304 + atomic_inc_unchecked(&n_rcu_torture_mberror);
110305 cur_ops->read_delay(&rand);
110306 preempt_disable();
110307 pipe_count = p->rtort_pipe_count;
110308 @@ -1252,11 +1252,11 @@ rcu_torture_stats_print(void)
110309 rcu_torture_current,
110310 rcu_torture_current_version,
110311 list_empty(&rcu_torture_freelist),
110312 - atomic_read(&n_rcu_torture_alloc),
110313 - atomic_read(&n_rcu_torture_alloc_fail),
110314 - atomic_read(&n_rcu_torture_free));
110315 + atomic_read_unchecked(&n_rcu_torture_alloc),
110316 + atomic_read_unchecked(&n_rcu_torture_alloc_fail),
110317 + atomic_read_unchecked(&n_rcu_torture_free));
110318 pr_cont("rtmbe: %d rtbke: %ld rtbre: %ld ",
110319 - atomic_read(&n_rcu_torture_mberror),
110320 + atomic_read_unchecked(&n_rcu_torture_mberror),
110321 n_rcu_torture_boost_ktrerror,
110322 n_rcu_torture_boost_rterror);
110323 pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
110324 @@ -1268,17 +1268,17 @@ rcu_torture_stats_print(void)
110325 n_barrier_successes,
110326 n_barrier_attempts,
110327 n_rcu_torture_barrier_error);
110328 - pr_cont("cbflood: %ld\n", atomic_long_read(&n_cbfloods));
110329 + pr_cont("cbflood: %ld\n", atomic_long_read_unchecked(&n_cbfloods));
110330
110331 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
110332 - if (atomic_read(&n_rcu_torture_mberror) != 0 ||
110333 + if (atomic_read_unchecked(&n_rcu_torture_mberror) != 0 ||
110334 n_rcu_torture_barrier_error != 0 ||
110335 n_rcu_torture_boost_ktrerror != 0 ||
110336 n_rcu_torture_boost_rterror != 0 ||
110337 n_rcu_torture_boost_failure != 0 ||
110338 i > 1) {
110339 pr_cont("%s", "!!! ");
110340 - atomic_inc(&n_rcu_torture_error);
110341 + atomic_inc_unchecked(&n_rcu_torture_error);
110342 WARN_ON_ONCE(1);
110343 }
110344 pr_cont("Reader Pipe: ");
110345 @@ -1295,7 +1295,7 @@ rcu_torture_stats_print(void)
110346 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
110347 pr_cont("Free-Block Circulation: ");
110348 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
110349 - pr_cont(" %d", atomic_read(&rcu_torture_wcount[i]));
110350 + pr_cont(" %d", atomic_read_unchecked(&rcu_torture_wcount[i]));
110351 }
110352 pr_cont("\n");
110353
110354 @@ -1649,7 +1649,7 @@ rcu_torture_cleanup(void)
110355
110356 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
110357
110358 - if (atomic_read(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
110359 + if (atomic_read_unchecked(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
110360 rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
110361 else if (torture_onoff_failures())
110362 rcu_torture_print_module_parms(cur_ops,
110363 @@ -1774,18 +1774,18 @@ rcu_torture_init(void)
110364
110365 rcu_torture_current = NULL;
110366 rcu_torture_current_version = 0;
110367 - atomic_set(&n_rcu_torture_alloc, 0);
110368 - atomic_set(&n_rcu_torture_alloc_fail, 0);
110369 - atomic_set(&n_rcu_torture_free, 0);
110370 - atomic_set(&n_rcu_torture_mberror, 0);
110371 - atomic_set(&n_rcu_torture_error, 0);
110372 + atomic_set_unchecked(&n_rcu_torture_alloc, 0);
110373 + atomic_set_unchecked(&n_rcu_torture_alloc_fail, 0);
110374 + atomic_set_unchecked(&n_rcu_torture_free, 0);
110375 + atomic_set_unchecked(&n_rcu_torture_mberror, 0);
110376 + atomic_set_unchecked(&n_rcu_torture_error, 0);
110377 n_rcu_torture_barrier_error = 0;
110378 n_rcu_torture_boost_ktrerror = 0;
110379 n_rcu_torture_boost_rterror = 0;
110380 n_rcu_torture_boost_failure = 0;
110381 n_rcu_torture_boosts = 0;
110382 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
110383 - atomic_set(&rcu_torture_wcount[i], 0);
110384 + atomic_set_unchecked(&rcu_torture_wcount[i], 0);
110385 for_each_possible_cpu(cpu) {
110386 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
110387 per_cpu(rcu_torture_count, cpu)[i] = 0;
110388 diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
110389 index d047105..f9f9ed9 100644
110390 --- a/kernel/rcu/tiny.c
110391 +++ b/kernel/rcu/tiny.c
110392 @@ -42,7 +42,7 @@
110393 /* Forward declarations for tiny_plugin.h. */
110394 struct rcu_ctrlblk;
110395 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
110396 -static void rcu_process_callbacks(struct softirq_action *unused);
110397 +static void rcu_process_callbacks(void);
110398 static void __call_rcu(struct rcu_head *head,
110399 void (*func)(struct rcu_head *rcu),
110400 struct rcu_ctrlblk *rcp);
110401 @@ -170,7 +170,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
110402 false));
110403 }
110404
110405 -static void rcu_process_callbacks(struct softirq_action *unused)
110406 +static __latent_entropy void rcu_process_callbacks(void)
110407 {
110408 __rcu_process_callbacks(&rcu_sched_ctrlblk);
110409 __rcu_process_callbacks(&rcu_bh_ctrlblk);
110410 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
110411 index 775d36c..d3542c61 100644
110412 --- a/kernel/rcu/tree.c
110413 +++ b/kernel/rcu/tree.c
110414 @@ -323,7 +323,7 @@ static void rcu_momentary_dyntick_idle(void)
110415 */
110416 rdtp = this_cpu_ptr(&rcu_dynticks);
110417 smp_mb__before_atomic(); /* Earlier stuff before QS. */
110418 - atomic_add(2, &rdtp->dynticks); /* QS. */
110419 + atomic_add_unchecked(2, &rdtp->dynticks); /* QS. */
110420 smp_mb__after_atomic(); /* Later stuff after QS. */
110421 break;
110422 }
110423 @@ -636,10 +636,10 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
110424 rcu_prepare_for_idle();
110425 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
110426 smp_mb__before_atomic(); /* See above. */
110427 - atomic_inc(&rdtp->dynticks);
110428 + atomic_inc_unchecked(&rdtp->dynticks);
110429 smp_mb__after_atomic(); /* Force ordering with next sojourn. */
110430 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
110431 - atomic_read(&rdtp->dynticks) & 0x1);
110432 + atomic_read_unchecked(&rdtp->dynticks) & 0x1);
110433 rcu_dynticks_task_enter();
110434
110435 /*
110436 @@ -762,11 +762,11 @@ static void rcu_eqs_exit_common(long long oldval, int user)
110437
110438 rcu_dynticks_task_exit();
110439 smp_mb__before_atomic(); /* Force ordering w/previous sojourn. */
110440 - atomic_inc(&rdtp->dynticks);
110441 + atomic_inc_unchecked(&rdtp->dynticks);
110442 /* CPUs seeing atomic_inc() must see later RCU read-side crit sects */
110443 smp_mb__after_atomic(); /* See above. */
110444 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
110445 - !(atomic_read(&rdtp->dynticks) & 0x1));
110446 + !(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110447 rcu_cleanup_after_idle();
110448 trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
110449 if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
110450 @@ -902,12 +902,12 @@ void rcu_nmi_enter(void)
110451 * to be in the outermost NMI handler that interrupted an RCU-idle
110452 * period (observation due to Andy Lutomirski).
110453 */
110454 - if (!(atomic_read(&rdtp->dynticks) & 0x1)) {
110455 + if (!(atomic_read_unchecked(&rdtp->dynticks) & 0x1)) {
110456 smp_mb__before_atomic(); /* Force delay from prior write. */
110457 - atomic_inc(&rdtp->dynticks);
110458 + atomic_inc_unchecked(&rdtp->dynticks);
110459 /* atomic_inc() before later RCU read-side crit sects */
110460 smp_mb__after_atomic(); /* See above. */
110461 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
110462 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110463 incby = 1;
110464 }
110465 rdtp->dynticks_nmi_nesting += incby;
110466 @@ -932,7 +932,7 @@ void rcu_nmi_exit(void)
110467 * to us!)
110468 */
110469 WARN_ON_ONCE(rdtp->dynticks_nmi_nesting <= 0);
110470 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
110471 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110472
110473 /*
110474 * If the nesting level is not 1, the CPU wasn't RCU-idle, so
110475 @@ -947,9 +947,9 @@ void rcu_nmi_exit(void)
110476 rdtp->dynticks_nmi_nesting = 0;
110477 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
110478 smp_mb__before_atomic(); /* See above. */
110479 - atomic_inc(&rdtp->dynticks);
110480 + atomic_inc_unchecked(&rdtp->dynticks);
110481 smp_mb__after_atomic(); /* Force delay to next write. */
110482 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks) & 0x1);
110483 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
110484 }
110485
110486 /**
110487 @@ -962,7 +962,7 @@ void rcu_nmi_exit(void)
110488 */
110489 bool notrace __rcu_is_watching(void)
110490 {
110491 - return atomic_read(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
110492 + return atomic_read_unchecked(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
110493 }
110494
110495 /**
110496 @@ -1045,7 +1045,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
110497 static int dyntick_save_progress_counter(struct rcu_data *rdp,
110498 bool *isidle, unsigned long *maxj)
110499 {
110500 - rdp->dynticks_snap = atomic_add_return(0, &rdp->dynticks->dynticks);
110501 + rdp->dynticks_snap = atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
110502 rcu_sysidle_check_cpu(rdp, isidle, maxj);
110503 if ((rdp->dynticks_snap & 0x1) == 0) {
110504 trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti"));
110505 @@ -1071,7 +1071,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
110506 int *rcrmp;
110507 unsigned int snap;
110508
110509 - curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
110510 + curr = (unsigned int)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
110511 snap = (unsigned int)rdp->dynticks_snap;
110512
110513 /*
110514 @@ -2914,7 +2914,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
110515 /*
110516 * Do RCU core processing for the current CPU.
110517 */
110518 -static void rcu_process_callbacks(struct softirq_action *unused)
110519 +static void rcu_process_callbacks(void)
110520 {
110521 struct rcu_state *rsp;
110522
110523 @@ -3382,7 +3382,7 @@ static bool rcu_exp_gp_seq_done(struct rcu_state *rsp, unsigned long s)
110524 /* Common code for synchronize_{rcu,sched}_expedited() work-done checking. */
110525 static bool sync_exp_work_done(struct rcu_state *rsp, struct rcu_node *rnp,
110526 struct rcu_data *rdp,
110527 - atomic_long_t *stat, unsigned long s)
110528 + atomic_long_unchecked_t *stat, unsigned long s)
110529 {
110530 if (rcu_exp_gp_seq_done(rsp, s)) {
110531 if (rnp)
110532 @@ -3391,7 +3391,7 @@ static bool sync_exp_work_done(struct rcu_state *rsp, struct rcu_node *rnp,
110533 mutex_unlock(&rdp->exp_funnel_mutex);
110534 /* Ensure test happens before caller kfree(). */
110535 smp_mb__before_atomic(); /* ^^^ */
110536 - atomic_long_inc(stat);
110537 + atomic_long_inc_unchecked(stat);
110538 return true;
110539 }
110540 return false;
110541 @@ -3542,7 +3542,7 @@ void synchronize_sched_expedited(void)
110542 if (!try_get_online_cpus()) {
110543 /* CPU hotplug operation in flight, fall back to normal GP. */
110544 wait_rcu_gp(call_rcu_sched);
110545 - atomic_long_inc(&rsp->expedited_normal);
110546 + atomic_long_inc_unchecked(&rsp->expedited_normal);
110547 return;
110548 }
110549 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
110550 @@ -3566,7 +3566,7 @@ void synchronize_sched_expedited(void)
110551
110552 /* Skip our CPU and any idle CPUs. */
110553 if (raw_smp_processor_id() == cpu ||
110554 - !(atomic_add_return(0, &rdtp->dynticks) & 0x1))
110555 + !(atomic_add_return_unchecked(0, &rdtp->dynticks) & 0x1))
110556 continue;
110557 atomic_inc(&rsp->expedited_need_qs);
110558 stop_one_cpu_nowait(cpu, synchronize_sched_expedited_cpu_stop,
110559 @@ -3878,7 +3878,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
110560 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
110561 rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
110562 WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
110563 - WARN_ON_ONCE(atomic_read(&rdp->dynticks->dynticks) != 1);
110564 + WARN_ON_ONCE(atomic_read_unchecked(&rdp->dynticks->dynticks) != 1);
110565 rdp->cpu = cpu;
110566 rdp->rsp = rsp;
110567 mutex_init(&rdp->exp_funnel_mutex);
110568 @@ -3914,8 +3914,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
110569 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
110570 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
110571 rcu_sysidle_init_percpu_data(rdp->dynticks);
110572 - atomic_set(&rdp->dynticks->dynticks,
110573 - (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
110574 + atomic_set_unchecked(&rdp->dynticks->dynticks,
110575 + (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
110576 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
110577
110578 /*
110579 diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
110580 index 2e991f8..66aea20 100644
110581 --- a/kernel/rcu/tree.h
110582 +++ b/kernel/rcu/tree.h
110583 @@ -122,11 +122,11 @@ struct rcu_dynticks {
110584 long long dynticks_nesting; /* Track irq/process nesting level. */
110585 /* Process level is worth LLONG_MAX/2. */
110586 int dynticks_nmi_nesting; /* Track NMI nesting level. */
110587 - atomic_t dynticks; /* Even value for idle, else odd. */
110588 + atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
110589 #ifdef CONFIG_NO_HZ_FULL_SYSIDLE
110590 long long dynticks_idle_nesting;
110591 /* irq/process nesting level from idle. */
110592 - atomic_t dynticks_idle; /* Even value for idle, else odd. */
110593 + atomic_unchecked_t dynticks_idle;/* Even value for idle, else odd. */
110594 /* "Idle" excludes userspace execution. */
110595 unsigned long dynticks_idle_jiffies;
110596 /* End of last non-NMI non-idle period. */
110597 @@ -501,11 +501,11 @@ struct rcu_state {
110598 /* End of fields guarded by barrier_mutex. */
110599
110600 unsigned long expedited_sequence; /* Take a ticket. */
110601 - atomic_long_t expedited_workdone0; /* # done by others #0. */
110602 - atomic_long_t expedited_workdone1; /* # done by others #1. */
110603 - atomic_long_t expedited_workdone2; /* # done by others #2. */
110604 - atomic_long_t expedited_workdone3; /* # done by others #3. */
110605 - atomic_long_t expedited_normal; /* # fallbacks to normal. */
110606 + atomic_long_unchecked_t expedited_workdone0; /* # done by others #0. */
110607 + atomic_long_unchecked_t expedited_workdone1; /* # done by others #1. */
110608 + atomic_long_unchecked_t expedited_workdone2; /* # done by others #2. */
110609 + atomic_long_unchecked_t expedited_workdone3; /* # done by others #3. */
110610 + atomic_long_unchecked_t expedited_normal; /* # fallbacks to normal. */
110611 atomic_t expedited_need_qs; /* # CPUs left to check in. */
110612 wait_queue_head_t expedited_wq; /* Wait for check-ins. */
110613
110614 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
110615 index b2bf396..21142e4 100644
110616 --- a/kernel/rcu/tree_plugin.h
110617 +++ b/kernel/rcu/tree_plugin.h
110618 @@ -1235,7 +1235,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
110619 free_cpumask_var(cm);
110620 }
110621
110622 -static struct smp_hotplug_thread rcu_cpu_thread_spec = {
110623 +static struct smp_hotplug_thread rcu_cpu_thread_spec __read_only = {
110624 .store = &rcu_cpu_kthread_task,
110625 .thread_should_run = rcu_cpu_kthread_should_run,
110626 .thread_fn = rcu_cpu_kthread,
110627 @@ -1704,7 +1704,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
110628 print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
110629 pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
110630 cpu, ticks_value, ticks_title,
110631 - atomic_read(&rdtp->dynticks) & 0xfff,
110632 + atomic_read_unchecked(&rdtp->dynticks) & 0xfff,
110633 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
110634 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
110635 READ_ONCE(rsp->n_force_qs) - rsp->n_force_qs_gpstart,
110636 @@ -2585,9 +2585,9 @@ static void rcu_sysidle_enter(int irq)
110637 j = jiffies;
110638 WRITE_ONCE(rdtp->dynticks_idle_jiffies, j);
110639 smp_mb__before_atomic();
110640 - atomic_inc(&rdtp->dynticks_idle);
110641 + atomic_inc_unchecked(&rdtp->dynticks_idle);
110642 smp_mb__after_atomic();
110643 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks_idle) & 0x1);
110644 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1);
110645 }
110646
110647 /*
110648 @@ -2658,9 +2658,9 @@ static void rcu_sysidle_exit(int irq)
110649
110650 /* Record end of idle period. */
110651 smp_mb__before_atomic();
110652 - atomic_inc(&rdtp->dynticks_idle);
110653 + atomic_inc_unchecked(&rdtp->dynticks_idle);
110654 smp_mb__after_atomic();
110655 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks_idle) & 0x1));
110656 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1));
110657
110658 /*
110659 * If we are the timekeeping CPU, we are permitted to be non-idle
110660 @@ -2706,7 +2706,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
110661 WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
110662
110663 /* Pick up current idle and NMI-nesting counter and check. */
110664 - cur = atomic_read(&rdtp->dynticks_idle);
110665 + cur = atomic_read_unchecked(&rdtp->dynticks_idle);
110666 if (cur & 0x1) {
110667 *isidle = false; /* We are not idle! */
110668 return;
110669 diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
110670 index 6fc4c5f..76c6577 100644
110671 --- a/kernel/rcu/tree_trace.c
110672 +++ b/kernel/rcu/tree_trace.c
110673 @@ -125,7 +125,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
110674 rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu),
110675 rdp->qs_pending);
110676 seq_printf(m, " dt=%d/%llx/%d df=%lu",
110677 - atomic_read(&rdp->dynticks->dynticks),
110678 + atomic_read_unchecked(&rdp->dynticks->dynticks),
110679 rdp->dynticks->dynticks_nesting,
110680 rdp->dynticks->dynticks_nmi_nesting,
110681 rdp->dynticks_fqs);
110682 @@ -187,11 +187,11 @@ static int show_rcuexp(struct seq_file *m, void *v)
110683
110684 seq_printf(m, "s=%lu wd0=%lu wd1=%lu wd2=%lu wd3=%lu n=%lu enq=%d sc=%lu\n",
110685 rsp->expedited_sequence,
110686 - atomic_long_read(&rsp->expedited_workdone0),
110687 - atomic_long_read(&rsp->expedited_workdone1),
110688 - atomic_long_read(&rsp->expedited_workdone2),
110689 - atomic_long_read(&rsp->expedited_workdone3),
110690 - atomic_long_read(&rsp->expedited_normal),
110691 + atomic_long_read_unchecked(&rsp->expedited_workdone0),
110692 + atomic_long_read_unchecked(&rsp->expedited_workdone1),
110693 + atomic_long_read_unchecked(&rsp->expedited_workdone2),
110694 + atomic_long_read_unchecked(&rsp->expedited_workdone3),
110695 + atomic_long_read_unchecked(&rsp->expedited_normal),
110696 atomic_read(&rsp->expedited_need_qs),
110697 rsp->expedited_sequence / 2);
110698 return 0;
110699 diff --git a/kernel/resource.c b/kernel/resource.c
110700 index f150dbb..33735c2 100644
110701 --- a/kernel/resource.c
110702 +++ b/kernel/resource.c
110703 @@ -84,8 +84,8 @@ static void *r_next(struct seq_file *m, void *v, loff_t *pos)
110704
110705 enum { MAX_IORES_LEVEL = 5 };
110706
110707 +static void *r_start(struct seq_file *m, loff_t *pos) __acquires(&resource_lock);
110708 static void *r_start(struct seq_file *m, loff_t *pos)
110709 - __acquires(resource_lock)
110710 {
110711 struct resource *p = m->private;
110712 loff_t l = 0;
110713 @@ -95,8 +95,8 @@ static void *r_start(struct seq_file *m, loff_t *pos)
110714 return p;
110715 }
110716
110717 +static void r_stop(struct seq_file *m, void *v) __releases(&resource_lock);
110718 static void r_stop(struct seq_file *m, void *v)
110719 - __releases(resource_lock)
110720 {
110721 read_unlock(&resource_lock);
110722 }
110723 @@ -162,8 +162,18 @@ static const struct file_operations proc_iomem_operations = {
110724
110725 static int __init ioresources_init(void)
110726 {
110727 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
110728 +#ifdef CONFIG_GRKERNSEC_PROC_USER
110729 + proc_create("ioports", S_IRUSR, NULL, &proc_ioports_operations);
110730 + proc_create("iomem", S_IRUSR, NULL, &proc_iomem_operations);
110731 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
110732 + proc_create("ioports", S_IRUSR | S_IRGRP, NULL, &proc_ioports_operations);
110733 + proc_create("iomem", S_IRUSR | S_IRGRP, NULL, &proc_iomem_operations);
110734 +#endif
110735 +#else
110736 proc_create("ioports", 0, NULL, &proc_ioports_operations);
110737 proc_create("iomem", 0, NULL, &proc_iomem_operations);
110738 +#endif
110739 return 0;
110740 }
110741 __initcall(ioresources_init);
110742 diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
110743 index 750ed60..eb01466 100644
110744 --- a/kernel/sched/auto_group.c
110745 +++ b/kernel/sched/auto_group.c
110746 @@ -9,7 +9,7 @@
110747
110748 unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
110749 static struct autogroup autogroup_default;
110750 -static atomic_t autogroup_seq_nr;
110751 +static atomic_unchecked_t autogroup_seq_nr;
110752
110753 void __init autogroup_init(struct task_struct *init_task)
110754 {
110755 @@ -77,7 +77,7 @@ static inline struct autogroup *autogroup_create(void)
110756
110757 kref_init(&ag->kref);
110758 init_rwsem(&ag->lock);
110759 - ag->id = atomic_inc_return(&autogroup_seq_nr);
110760 + ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
110761 ag->tg = tg;
110762 #ifdef CONFIG_RT_GROUP_SCHED
110763 /*
110764 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
110765 index bcd214e..4459c83 100644
110766 --- a/kernel/sched/core.c
110767 +++ b/kernel/sched/core.c
110768 @@ -2136,7 +2136,7 @@ void set_numabalancing_state(bool enabled)
110769 int sysctl_numa_balancing(struct ctl_table *table, int write,
110770 void __user *buffer, size_t *lenp, loff_t *ppos)
110771 {
110772 - struct ctl_table t;
110773 + ctl_table_no_const t;
110774 int err;
110775 int state = numabalancing_enabled;
110776
110777 @@ -2635,8 +2635,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
110778 next->active_mm = oldmm;
110779 atomic_inc(&oldmm->mm_count);
110780 enter_lazy_tlb(oldmm, next);
110781 - } else
110782 + } else {
110783 switch_mm(oldmm, mm, next);
110784 + populate_stack();
110785 + }
110786
110787 if (!prev->mm) {
110788 prev->active_mm = NULL;
110789 @@ -3455,6 +3457,8 @@ int can_nice(const struct task_struct *p, const int nice)
110790 /* convert nice value [19,-20] to rlimit style value [1,40] */
110791 int nice_rlim = nice_to_rlimit(nice);
110792
110793 + gr_learn_resource(p, RLIMIT_NICE, nice_rlim, 1);
110794 +
110795 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
110796 capable(CAP_SYS_NICE));
110797 }
110798 @@ -3481,7 +3485,8 @@ SYSCALL_DEFINE1(nice, int, increment)
110799 nice = task_nice(current) + increment;
110800
110801 nice = clamp_val(nice, MIN_NICE, MAX_NICE);
110802 - if (increment < 0 && !can_nice(current, nice))
110803 + if (increment < 0 && (!can_nice(current, nice) ||
110804 + gr_handle_chroot_nice()))
110805 return -EPERM;
110806
110807 retval = security_task_setnice(current, nice);
110808 @@ -3793,6 +3798,7 @@ recheck:
110809 if (policy != p->policy && !rlim_rtprio)
110810 return -EPERM;
110811
110812 + gr_learn_resource(p, RLIMIT_RTPRIO, attr->sched_priority, 1);
110813 /* can't increase priority */
110814 if (attr->sched_priority > p->rt_priority &&
110815 attr->sched_priority > rlim_rtprio)
110816 @@ -5127,6 +5133,7 @@ void idle_task_exit(void)
110817
110818 if (mm != &init_mm) {
110819 switch_mm(mm, &init_mm, current);
110820 + populate_stack();
110821 finish_arch_post_lock_switch();
110822 }
110823 mmdrop(mm);
110824 @@ -5252,7 +5259,7 @@ static void migrate_tasks(struct rq *dead_rq)
110825
110826 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
110827
110828 -static struct ctl_table sd_ctl_dir[] = {
110829 +static ctl_table_no_const sd_ctl_dir[] __read_only = {
110830 {
110831 .procname = "sched_domain",
110832 .mode = 0555,
110833 @@ -5269,17 +5276,17 @@ static struct ctl_table sd_ctl_root[] = {
110834 {}
110835 };
110836
110837 -static struct ctl_table *sd_alloc_ctl_entry(int n)
110838 +static ctl_table_no_const *sd_alloc_ctl_entry(int n)
110839 {
110840 - struct ctl_table *entry =
110841 + ctl_table_no_const *entry =
110842 kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
110843
110844 return entry;
110845 }
110846
110847 -static void sd_free_ctl_entry(struct ctl_table **tablep)
110848 +static void sd_free_ctl_entry(ctl_table_no_const *tablep)
110849 {
110850 - struct ctl_table *entry;
110851 + ctl_table_no_const *entry;
110852
110853 /*
110854 * In the intermediate directories, both the child directory and
110855 @@ -5287,22 +5294,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
110856 * will always be set. In the lowest directory the names are
110857 * static strings and all have proc handlers.
110858 */
110859 - for (entry = *tablep; entry->mode; entry++) {
110860 - if (entry->child)
110861 - sd_free_ctl_entry(&entry->child);
110862 + for (entry = tablep; entry->mode; entry++) {
110863 + if (entry->child) {
110864 + sd_free_ctl_entry(entry->child);
110865 + pax_open_kernel();
110866 + entry->child = NULL;
110867 + pax_close_kernel();
110868 + }
110869 if (entry->proc_handler == NULL)
110870 kfree(entry->procname);
110871 }
110872
110873 - kfree(*tablep);
110874 - *tablep = NULL;
110875 + kfree(tablep);
110876 }
110877
110878 static int min_load_idx = 0;
110879 static int max_load_idx = CPU_LOAD_IDX_MAX-1;
110880
110881 static void
110882 -set_table_entry(struct ctl_table *entry,
110883 +set_table_entry(ctl_table_no_const *entry,
110884 const char *procname, void *data, int maxlen,
110885 umode_t mode, proc_handler *proc_handler,
110886 bool load_idx)
110887 @@ -5322,7 +5332,7 @@ set_table_entry(struct ctl_table *entry,
110888 static struct ctl_table *
110889 sd_alloc_ctl_domain_table(struct sched_domain *sd)
110890 {
110891 - struct ctl_table *table = sd_alloc_ctl_entry(14);
110892 + ctl_table_no_const *table = sd_alloc_ctl_entry(14);
110893
110894 if (table == NULL)
110895 return NULL;
110896 @@ -5360,9 +5370,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
110897 return table;
110898 }
110899
110900 -static struct ctl_table *sd_alloc_ctl_cpu_table(int cpu)
110901 +static ctl_table_no_const *sd_alloc_ctl_cpu_table(int cpu)
110902 {
110903 - struct ctl_table *entry, *table;
110904 + ctl_table_no_const *entry, *table;
110905 struct sched_domain *sd;
110906 int domain_num = 0, i;
110907 char buf[32];
110908 @@ -5389,11 +5399,13 @@ static struct ctl_table_header *sd_sysctl_header;
110909 static void register_sched_domain_sysctl(void)
110910 {
110911 int i, cpu_num = num_possible_cpus();
110912 - struct ctl_table *entry = sd_alloc_ctl_entry(cpu_num + 1);
110913 + ctl_table_no_const *entry = sd_alloc_ctl_entry(cpu_num + 1);
110914 char buf[32];
110915
110916 WARN_ON(sd_ctl_dir[0].child);
110917 + pax_open_kernel();
110918 sd_ctl_dir[0].child = entry;
110919 + pax_close_kernel();
110920
110921 if (entry == NULL)
110922 return;
110923 @@ -5415,8 +5427,12 @@ static void unregister_sched_domain_sysctl(void)
110924 {
110925 unregister_sysctl_table(sd_sysctl_header);
110926 sd_sysctl_header = NULL;
110927 - if (sd_ctl_dir[0].child)
110928 - sd_free_ctl_entry(&sd_ctl_dir[0].child);
110929 + if (sd_ctl_dir[0].child) {
110930 + sd_free_ctl_entry(sd_ctl_dir[0].child);
110931 + pax_open_kernel();
110932 + sd_ctl_dir[0].child = NULL;
110933 + pax_close_kernel();
110934 + }
110935 }
110936 #else
110937 static void register_sched_domain_sysctl(void)
110938 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
110939 index 9a5e60f..c4ee2d8 100644
110940 --- a/kernel/sched/fair.c
110941 +++ b/kernel/sched/fair.c
110942 @@ -7746,7 +7746,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
110943 * run_rebalance_domains is triggered when needed from the scheduler tick.
110944 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
110945 */
110946 -static void run_rebalance_domains(struct softirq_action *h)
110947 +static __latent_entropy void run_rebalance_domains(void)
110948 {
110949 struct rq *this_rq = this_rq();
110950 enum cpu_idle_type idle = this_rq->idle_balance ?
110951 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
110952 index 6d2a119..ac24f34 100644
110953 --- a/kernel/sched/sched.h
110954 +++ b/kernel/sched/sched.h
110955 @@ -1229,7 +1229,7 @@ struct sched_class {
110956 #ifdef CONFIG_FAIR_GROUP_SCHED
110957 void (*task_move_group) (struct task_struct *p, int on_rq);
110958 #endif
110959 -};
110960 +} __do_const;
110961
110962 static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
110963 {
110964 diff --git a/kernel/signal.c b/kernel/signal.c
110965 index 0f6bbbe..4791c7d 100644
110966 --- a/kernel/signal.c
110967 +++ b/kernel/signal.c
110968 @@ -53,12 +53,12 @@ static struct kmem_cache *sigqueue_cachep;
110969
110970 int print_fatal_signals __read_mostly;
110971
110972 -static void __user *sig_handler(struct task_struct *t, int sig)
110973 +static __sighandler_t sig_handler(struct task_struct *t, int sig)
110974 {
110975 return t->sighand->action[sig - 1].sa.sa_handler;
110976 }
110977
110978 -static int sig_handler_ignored(void __user *handler, int sig)
110979 +static int sig_handler_ignored(__sighandler_t handler, int sig)
110980 {
110981 /* Is it explicitly or implicitly ignored? */
110982 return handler == SIG_IGN ||
110983 @@ -67,7 +67,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
110984
110985 static int sig_task_ignored(struct task_struct *t, int sig, bool force)
110986 {
110987 - void __user *handler;
110988 + __sighandler_t handler;
110989
110990 handler = sig_handler(t, sig);
110991
110992 @@ -372,6 +372,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
110993 atomic_inc(&user->sigpending);
110994 rcu_read_unlock();
110995
110996 + if (!override_rlimit)
110997 + gr_learn_resource(t, RLIMIT_SIGPENDING, atomic_read(&user->sigpending), 1);
110998 +
110999 if (override_rlimit ||
111000 atomic_read(&user->sigpending) <=
111001 task_rlimit(t, RLIMIT_SIGPENDING)) {
111002 @@ -494,7 +497,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
111003
111004 int unhandled_signal(struct task_struct *tsk, int sig)
111005 {
111006 - void __user *handler = tsk->sighand->action[sig-1].sa.sa_handler;
111007 + __sighandler_t handler = tsk->sighand->action[sig-1].sa.sa_handler;
111008 if (is_global_init(tsk))
111009 return 1;
111010 if (handler != SIG_IGN && handler != SIG_DFL)
111011 @@ -602,6 +605,7 @@ static int __dequeue_signal(struct sigpending *pending, sigset_t *mask,
111012 *
111013 * All callers have to hold the siglock.
111014 */
111015 +int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) __must_hold(&tsk->sighand->siglock);
111016 int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
111017 {
111018 int signr;
111019 @@ -788,6 +792,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
111020 }
111021 }
111022
111023 + /* allow glibc communication via tgkill to other threads in our
111024 + thread group */
111025 + if ((info == SEND_SIG_NOINFO || info->si_code != SI_TKILL ||
111026 + sig != (SIGRTMIN+1) || task_tgid_vnr(t) != info->si_pid)
111027 + && gr_handle_signal(t, sig))
111028 + return -EPERM;
111029 +
111030 return security_task_kill(t, info, sig, 0);
111031 }
111032
111033 @@ -1171,7 +1182,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
111034 return send_signal(sig, info, p, 1);
111035 }
111036
111037 -static int
111038 +int
111039 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
111040 {
111041 return send_signal(sig, info, t, 0);
111042 @@ -1208,6 +1219,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
111043 unsigned long int flags;
111044 int ret, blocked, ignored;
111045 struct k_sigaction *action;
111046 + int is_unhandled = 0;
111047
111048 spin_lock_irqsave(&t->sighand->siglock, flags);
111049 action = &t->sighand->action[sig-1];
111050 @@ -1222,9 +1234,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
111051 }
111052 if (action->sa.sa_handler == SIG_DFL)
111053 t->signal->flags &= ~SIGNAL_UNKILLABLE;
111054 + if (action->sa.sa_handler == SIG_IGN || action->sa.sa_handler == SIG_DFL)
111055 + is_unhandled = 1;
111056 ret = specific_send_sig_info(sig, info, t);
111057 spin_unlock_irqrestore(&t->sighand->siglock, flags);
111058
111059 + /* only deal with unhandled signals, java etc trigger SIGSEGV during
111060 + normal operation */
111061 + if (is_unhandled) {
111062 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, t);
111063 + gr_handle_crash(t, sig);
111064 + }
111065 +
111066 return ret;
111067 }
111068
111069 @@ -1305,8 +1326,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
111070 ret = check_kill_permission(sig, info, p);
111071 rcu_read_unlock();
111072
111073 - if (!ret && sig)
111074 + if (!ret && sig) {
111075 ret = do_send_sig_info(sig, info, p, true);
111076 + if (!ret)
111077 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, p);
111078 + }
111079
111080 return ret;
111081 }
111082 @@ -1820,9 +1844,8 @@ static int sigkill_pending(struct task_struct *tsk)
111083 * If we actually decide not to stop at all because the tracer
111084 * is gone, we keep current->exit_code unless clear_code.
111085 */
111086 +static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info) __must_hold(&current->sighand->siglock);
111087 static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
111088 - __releases(&current->sighand->siglock)
111089 - __acquires(&current->sighand->siglock)
111090 {
111091 bool gstop_done = false;
111092
111093 @@ -1942,6 +1965,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
111094 recalc_sigpending_tsk(current);
111095 }
111096
111097 +static void ptrace_do_notify(int signr, int exit_code, int why) __must_hold(&current->sighand->siglock);
111098 static void ptrace_do_notify(int signr, int exit_code, int why)
111099 {
111100 siginfo_t info;
111101 @@ -1989,8 +2013,8 @@ void ptrace_notify(int exit_code)
111102 * %false if group stop is already cancelled or ptrace trap is scheduled.
111103 * %true if participated in group stop.
111104 */
111105 +static bool do_signal_stop(int signr) __releases(&current->sighand->siglock);
111106 static bool do_signal_stop(int signr)
111107 - __releases(&current->sighand->siglock)
111108 {
111109 struct signal_struct *sig = current->signal;
111110
111111 @@ -2002,8 +2026,10 @@ static bool do_signal_stop(int signr)
111112 WARN_ON_ONCE(signr & ~JOBCTL_STOP_SIGMASK);
111113
111114 if (!likely(current->jobctl & JOBCTL_STOP_DEQUEUED) ||
111115 - unlikely(signal_group_exit(sig)))
111116 + unlikely(signal_group_exit(sig))) {
111117 + __release(&current->sighand->siglock); // XXX sparse can't model conditional release
111118 return false;
111119 + }
111120 /*
111121 * There is no group stop already in progress. We must
111122 * initiate one now.
111123 @@ -2087,6 +2113,7 @@ static bool do_signal_stop(int signr)
111124 * Schedule it and let the caller deal with it.
111125 */
111126 task_set_jobctl_pending(current, JOBCTL_TRAP_STOP);
111127 + __release(&current->sighand->siglock); // XXX sparse can't model conditional release
111128 return false;
111129 }
111130 }
111131 @@ -2913,7 +2940,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
111132 int error = -ESRCH;
111133
111134 rcu_read_lock();
111135 - p = find_task_by_vpid(pid);
111136 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
111137 + /* allow glibc communication via tgkill to other threads in our
111138 + thread group */
111139 + if (grsec_enable_chroot_findtask && info->si_code == SI_TKILL &&
111140 + sig == (SIGRTMIN+1) && tgid == info->si_pid)
111141 + p = find_task_by_vpid_unrestricted(pid);
111142 + else
111143 +#endif
111144 + p = find_task_by_vpid(pid);
111145 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
111146 error = check_kill_permission(sig, info, p);
111147 /*
111148 @@ -3242,8 +3277,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
111149 }
111150 seg = get_fs();
111151 set_fs(KERNEL_DS);
111152 - ret = do_sigaltstack((stack_t __force __user *) (uss_ptr ? &uss : NULL),
111153 - (stack_t __force __user *) &uoss,
111154 + ret = do_sigaltstack((stack_t __force_user *) (uss_ptr ? &uss : NULL),
111155 + (stack_t __force_user *) &uoss,
111156 compat_user_stack_pointer());
111157 set_fs(seg);
111158 if (ret >= 0 && uoss_ptr) {
111159 diff --git a/kernel/smpboot.c b/kernel/smpboot.c
111160 index a818cbc..1b218b9 100644
111161 --- a/kernel/smpboot.c
111162 +++ b/kernel/smpboot.c
111163 @@ -302,7 +302,7 @@ int smpboot_register_percpu_thread_cpumask(struct smp_hotplug_thread *plug_threa
111164 if (cpumask_test_cpu(cpu, cpumask))
111165 smpboot_unpark_thread(plug_thread, cpu);
111166 }
111167 - list_add(&plug_thread->list, &hotplug_threads);
111168 + pax_list_add(&plug_thread->list, &hotplug_threads);
111169 out:
111170 mutex_unlock(&smpboot_threads_lock);
111171 put_online_cpus();
111172 @@ -320,7 +320,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
111173 {
111174 get_online_cpus();
111175 mutex_lock(&smpboot_threads_lock);
111176 - list_del(&plug_thread->list);
111177 + pax_list_del(&plug_thread->list);
111178 smpboot_destroy_threads(plug_thread);
111179 mutex_unlock(&smpboot_threads_lock);
111180 put_online_cpus();
111181 diff --git a/kernel/softirq.c b/kernel/softirq.c
111182 index 479e443..66d845e1 100644
111183 --- a/kernel/softirq.c
111184 +++ b/kernel/softirq.c
111185 @@ -53,7 +53,7 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
111186 EXPORT_SYMBOL(irq_stat);
111187 #endif
111188
111189 -static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
111190 +static struct softirq_action softirq_vec[NR_SOFTIRQS] __read_only __aligned(PAGE_SIZE);
111191
111192 DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
111193
111194 @@ -270,7 +270,7 @@ restart:
111195 kstat_incr_softirqs_this_cpu(vec_nr);
111196
111197 trace_softirq_entry(vec_nr);
111198 - h->action(h);
111199 + h->action();
111200 trace_softirq_exit(vec_nr);
111201 if (unlikely(prev_count != preempt_count())) {
111202 pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
111203 @@ -430,7 +430,7 @@ void __raise_softirq_irqoff(unsigned int nr)
111204 or_softirq_pending(1UL << nr);
111205 }
111206
111207 -void open_softirq(int nr, void (*action)(struct softirq_action *))
111208 +void __init open_softirq(int nr, void (*action)(void))
111209 {
111210 softirq_vec[nr].action = action;
111211 }
111212 @@ -482,7 +482,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
111213 }
111214 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
111215
111216 -static void tasklet_action(struct softirq_action *a)
111217 +static void tasklet_action(void)
111218 {
111219 struct tasklet_struct *list;
111220
111221 @@ -518,7 +518,7 @@ static void tasklet_action(struct softirq_action *a)
111222 }
111223 }
111224
111225 -static void tasklet_hi_action(struct softirq_action *a)
111226 +static __latent_entropy void tasklet_hi_action(void)
111227 {
111228 struct tasklet_struct *list;
111229
111230 @@ -744,7 +744,7 @@ static struct notifier_block cpu_nfb = {
111231 .notifier_call = cpu_callback
111232 };
111233
111234 -static struct smp_hotplug_thread softirq_threads = {
111235 +static struct smp_hotplug_thread softirq_threads __read_only = {
111236 .store = &ksoftirqd,
111237 .thread_should_run = ksoftirqd_should_run,
111238 .thread_fn = run_ksoftirqd,
111239 diff --git a/kernel/sys.c b/kernel/sys.c
111240 index fa2f2f6..3682023 100644
111241 --- a/kernel/sys.c
111242 +++ b/kernel/sys.c
111243 @@ -160,6 +160,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
111244 error = -EACCES;
111245 goto out;
111246 }
111247 +
111248 + if (gr_handle_chroot_setpriority(p, niceval)) {
111249 + error = -EACCES;
111250 + goto out;
111251 + }
111252 +
111253 no_nice = security_task_setnice(p, niceval);
111254 if (no_nice) {
111255 error = no_nice;
111256 @@ -366,6 +372,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
111257 goto error;
111258 }
111259
111260 + if (gr_check_group_change(new->gid, new->egid, INVALID_GID))
111261 + goto error;
111262 +
111263 + if (!gid_eq(new->gid, old->gid)) {
111264 + /* make sure we generate a learn log for what will
111265 + end up being a role transition after a full-learning
111266 + policy is generated
111267 + CAP_SETGID is required to perform a transition
111268 + we may not log a CAP_SETGID check above, e.g.
111269 + in the case where new rgid = old egid
111270 + */
111271 + gr_learn_cap(current, new, CAP_SETGID);
111272 + }
111273 +
111274 if (rgid != (gid_t) -1 ||
111275 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
111276 new->sgid = new->egid;
111277 @@ -401,6 +421,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
111278 old = current_cred();
111279
111280 retval = -EPERM;
111281 +
111282 + if (gr_check_group_change(kgid, kgid, kgid))
111283 + goto error;
111284 +
111285 if (ns_capable(old->user_ns, CAP_SETGID))
111286 new->gid = new->egid = new->sgid = new->fsgid = kgid;
111287 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
111288 @@ -418,7 +442,7 @@ error:
111289 /*
111290 * change the user struct in a credentials set to match the new UID
111291 */
111292 -static int set_user(struct cred *new)
111293 +int set_user(struct cred *new)
111294 {
111295 struct user_struct *new_user;
111296
111297 @@ -498,7 +522,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
111298 goto error;
111299 }
111300
111301 + if (gr_check_user_change(new->uid, new->euid, INVALID_UID))
111302 + goto error;
111303 +
111304 if (!uid_eq(new->uid, old->uid)) {
111305 + /* make sure we generate a learn log for what will
111306 + end up being a role transition after a full-learning
111307 + policy is generated
111308 + CAP_SETUID is required to perform a transition
111309 + we may not log a CAP_SETUID check above, e.g.
111310 + in the case where new ruid = old euid
111311 + */
111312 + gr_learn_cap(current, new, CAP_SETUID);
111313 retval = set_user(new);
111314 if (retval < 0)
111315 goto error;
111316 @@ -548,6 +583,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
111317 old = current_cred();
111318
111319 retval = -EPERM;
111320 +
111321 + if (gr_check_crash_uid(kuid))
111322 + goto error;
111323 + if (gr_check_user_change(kuid, kuid, kuid))
111324 + goto error;
111325 +
111326 if (ns_capable(old->user_ns, CAP_SETUID)) {
111327 new->suid = new->uid = kuid;
111328 if (!uid_eq(kuid, old->uid)) {
111329 @@ -617,6 +658,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
111330 goto error;
111331 }
111332
111333 + if (gr_check_user_change(kruid, keuid, INVALID_UID))
111334 + goto error;
111335 +
111336 if (ruid != (uid_t) -1) {
111337 new->uid = kruid;
111338 if (!uid_eq(kruid, old->uid)) {
111339 @@ -701,6 +745,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
111340 goto error;
111341 }
111342
111343 + if (gr_check_group_change(krgid, kegid, INVALID_GID))
111344 + goto error;
111345 +
111346 if (rgid != (gid_t) -1)
111347 new->gid = krgid;
111348 if (egid != (gid_t) -1)
111349 @@ -765,12 +812,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
111350 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
111351 ns_capable(old->user_ns, CAP_SETUID)) {
111352 if (!uid_eq(kuid, old->fsuid)) {
111353 + if (gr_check_user_change(INVALID_UID, INVALID_UID, kuid))
111354 + goto error;
111355 +
111356 new->fsuid = kuid;
111357 if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
111358 goto change_okay;
111359 }
111360 }
111361
111362 +error:
111363 abort_creds(new);
111364 return old_fsuid;
111365
111366 @@ -803,12 +854,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
111367 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
111368 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
111369 ns_capable(old->user_ns, CAP_SETGID)) {
111370 + if (gr_check_group_change(INVALID_GID, INVALID_GID, kgid))
111371 + goto error;
111372 +
111373 if (!gid_eq(kgid, old->fsgid)) {
111374 new->fsgid = kgid;
111375 goto change_okay;
111376 }
111377 }
111378
111379 +error:
111380 abort_creds(new);
111381 return old_fsgid;
111382
111383 @@ -1187,19 +1242,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
111384 return -EFAULT;
111385
111386 down_read(&uts_sem);
111387 - error = __copy_to_user(&name->sysname, &utsname()->sysname,
111388 + error = __copy_to_user(name->sysname, &utsname()->sysname,
111389 __OLD_UTS_LEN);
111390 error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
111391 - error |= __copy_to_user(&name->nodename, &utsname()->nodename,
111392 + error |= __copy_to_user(name->nodename, &utsname()->nodename,
111393 __OLD_UTS_LEN);
111394 error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
111395 - error |= __copy_to_user(&name->release, &utsname()->release,
111396 + error |= __copy_to_user(name->release, &utsname()->release,
111397 __OLD_UTS_LEN);
111398 error |= __put_user(0, name->release + __OLD_UTS_LEN);
111399 - error |= __copy_to_user(&name->version, &utsname()->version,
111400 + error |= __copy_to_user(name->version, &utsname()->version,
111401 __OLD_UTS_LEN);
111402 error |= __put_user(0, name->version + __OLD_UTS_LEN);
111403 - error |= __copy_to_user(&name->machine, &utsname()->machine,
111404 + error |= __copy_to_user(name->machine, &utsname()->machine,
111405 __OLD_UTS_LEN);
111406 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
111407 up_read(&uts_sem);
111408 @@ -1400,6 +1455,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
111409 */
111410 new_rlim->rlim_cur = 1;
111411 }
111412 + /* Handle the case where a fork and setuid occur and then RLIMIT_NPROC
111413 + is changed to a lower value. Since tasks can be created by the same
111414 + user in between this limit change and an execve by this task, force
111415 + a recheck only for this task by setting PF_NPROC_EXCEEDED
111416 + */
111417 + if (resource == RLIMIT_NPROC && tsk->real_cred->user != INIT_USER)
111418 + tsk->flags |= PF_NPROC_EXCEEDED;
111419 }
111420 if (!retval) {
111421 if (old_rlim)
111422 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
111423 index e69201d..61cda5e 100644
111424 --- a/kernel/sysctl.c
111425 +++ b/kernel/sysctl.c
111426 @@ -94,7 +94,6 @@
111427 #endif
111428
111429 #if defined(CONFIG_SYSCTL)
111430 -
111431 /* External variables not in a header file. */
111432 extern int suid_dumpable;
111433 #ifdef CONFIG_COREDUMP
111434 @@ -111,22 +110,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
111435 #ifndef CONFIG_MMU
111436 extern int sysctl_nr_trim_pages;
111437 #endif
111438 +extern int sysctl_modify_ldt;
111439
111440 /* Constants used for minimum and maximum */
111441 #ifdef CONFIG_LOCKUP_DETECTOR
111442 -static int sixty = 60;
111443 +static int sixty __read_only = 60;
111444 #endif
111445
111446 -static int __maybe_unused neg_one = -1;
111447 +static int __maybe_unused neg_one __read_only = -1;
111448
111449 -static int zero;
111450 -static int __maybe_unused one = 1;
111451 -static int __maybe_unused two = 2;
111452 -static int __maybe_unused four = 4;
111453 -static unsigned long one_ul = 1;
111454 -static int one_hundred = 100;
111455 +static int zero __read_only = 0;
111456 +static int __maybe_unused one __read_only = 1;
111457 +static int __maybe_unused two __read_only = 2;
111458 +static int __maybe_unused three __read_only = 3;
111459 +static int __maybe_unused four __read_only = 4;
111460 +static unsigned long one_ul __read_only = 1;
111461 +static int one_hundred __read_only = 100;
111462 #ifdef CONFIG_PRINTK
111463 -static int ten_thousand = 10000;
111464 +static int ten_thousand __read_only = 10000;
111465 #endif
111466
111467 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
111468 @@ -180,10 +181,8 @@ static int proc_taint(struct ctl_table *table, int write,
111469 void __user *buffer, size_t *lenp, loff_t *ppos);
111470 #endif
111471
111472 -#ifdef CONFIG_PRINTK
111473 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
111474 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
111475 void __user *buffer, size_t *lenp, loff_t *ppos);
111476 -#endif
111477
111478 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
111479 void __user *buffer, size_t *lenp, loff_t *ppos);
111480 @@ -214,6 +213,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
111481
111482 #endif
111483
111484 +extern struct ctl_table grsecurity_table[];
111485 +
111486 static struct ctl_table kern_table[];
111487 static struct ctl_table vm_table[];
111488 static struct ctl_table fs_table[];
111489 @@ -228,6 +229,20 @@ extern struct ctl_table epoll_table[];
111490 int sysctl_legacy_va_layout;
111491 #endif
111492
111493 +#ifdef CONFIG_PAX_SOFTMODE
111494 +static struct ctl_table pax_table[] = {
111495 + {
111496 + .procname = "softmode",
111497 + .data = &pax_softmode,
111498 + .maxlen = sizeof(unsigned int),
111499 + .mode = 0600,
111500 + .proc_handler = &proc_dointvec,
111501 + },
111502 +
111503 + { }
111504 +};
111505 +#endif
111506 +
111507 /* The default sysctl tables: */
111508
111509 static struct ctl_table sysctl_base_table[] = {
111510 @@ -276,6 +291,22 @@ static int max_extfrag_threshold = 1000;
111511 #endif
111512
111513 static struct ctl_table kern_table[] = {
111514 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS)
111515 + {
111516 + .procname = "grsecurity",
111517 + .mode = 0500,
111518 + .child = grsecurity_table,
111519 + },
111520 +#endif
111521 +
111522 +#ifdef CONFIG_PAX_SOFTMODE
111523 + {
111524 + .procname = "pax",
111525 + .mode = 0500,
111526 + .child = pax_table,
111527 + },
111528 +#endif
111529 +
111530 {
111531 .procname = "sched_child_runs_first",
111532 .data = &sysctl_sched_child_runs_first,
111533 @@ -628,7 +659,7 @@ static struct ctl_table kern_table[] = {
111534 .maxlen = sizeof(int),
111535 .mode = 0644,
111536 /* only handle a transition from default "0" to "1" */
111537 - .proc_handler = proc_dointvec_minmax,
111538 + .proc_handler = proc_dointvec_minmax_secure,
111539 .extra1 = &one,
111540 .extra2 = &one,
111541 },
111542 @@ -639,7 +670,7 @@ static struct ctl_table kern_table[] = {
111543 .data = &modprobe_path,
111544 .maxlen = KMOD_PATH_LEN,
111545 .mode = 0644,
111546 - .proc_handler = proc_dostring,
111547 + .proc_handler = proc_dostring_modpriv,
111548 },
111549 {
111550 .procname = "modules_disabled",
111551 @@ -647,7 +678,7 @@ static struct ctl_table kern_table[] = {
111552 .maxlen = sizeof(int),
111553 .mode = 0644,
111554 /* only handle a transition from default "0" to "1" */
111555 - .proc_handler = proc_dointvec_minmax,
111556 + .proc_handler = proc_dointvec_minmax_secure,
111557 .extra1 = &one,
111558 .extra2 = &one,
111559 },
111560 @@ -802,20 +833,24 @@ static struct ctl_table kern_table[] = {
111561 .data = &dmesg_restrict,
111562 .maxlen = sizeof(int),
111563 .mode = 0644,
111564 - .proc_handler = proc_dointvec_minmax_sysadmin,
111565 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111566 .extra1 = &zero,
111567 .extra2 = &one,
111568 },
111569 +#endif
111570 {
111571 .procname = "kptr_restrict",
111572 .data = &kptr_restrict,
111573 .maxlen = sizeof(int),
111574 .mode = 0644,
111575 - .proc_handler = proc_dointvec_minmax_sysadmin,
111576 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111577 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111578 + .extra1 = &two,
111579 +#else
111580 .extra1 = &zero,
111581 +#endif
111582 .extra2 = &two,
111583 },
111584 -#endif
111585 {
111586 .procname = "ngroups_max",
111587 .data = &ngroups_max,
111588 @@ -960,6 +995,17 @@ static struct ctl_table kern_table[] = {
111589 .mode = 0644,
111590 .proc_handler = proc_dointvec,
111591 },
111592 +#ifdef CONFIG_MODIFY_LDT_SYSCALL
111593 + {
111594 + .procname = "modify_ldt",
111595 + .data = &sysctl_modify_ldt,
111596 + .maxlen = sizeof(int),
111597 + .mode = 0644,
111598 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111599 + .extra1 = &zero,
111600 + .extra2 = &one,
111601 + },
111602 +#endif
111603 #endif
111604 #if defined(CONFIG_MMU)
111605 {
111606 @@ -1082,10 +1128,17 @@ static struct ctl_table kern_table[] = {
111607 */
111608 {
111609 .procname = "perf_event_paranoid",
111610 - .data = &sysctl_perf_event_paranoid,
111611 - .maxlen = sizeof(sysctl_perf_event_paranoid),
111612 + .data = &sysctl_perf_event_legitimately_concerned,
111613 + .maxlen = sizeof(sysctl_perf_event_legitimately_concerned),
111614 .mode = 0644,
111615 - .proc_handler = proc_dointvec,
111616 + /* go ahead, be a hero */
111617 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111618 + .extra1 = &neg_one,
111619 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
111620 + .extra2 = &three,
111621 +#else
111622 + .extra2 = &two,
111623 +#endif
111624 },
111625 {
111626 .procname = "perf_event_mlock_kb",
111627 @@ -1376,6 +1429,13 @@ static struct ctl_table vm_table[] = {
111628 .proc_handler = proc_dointvec_minmax,
111629 .extra1 = &zero,
111630 },
111631 + {
111632 + .procname = "heap_stack_gap",
111633 + .data = &sysctl_heap_stack_gap,
111634 + .maxlen = sizeof(sysctl_heap_stack_gap),
111635 + .mode = 0644,
111636 + .proc_handler = proc_doulongvec_minmax,
111637 + },
111638 #else
111639 {
111640 .procname = "nr_trim_pages",
111641 @@ -1852,6 +1912,16 @@ int proc_dostring(struct ctl_table *table, int write,
111642 (char __user *)buffer, lenp, ppos);
111643 }
111644
111645 +int proc_dostring_modpriv(struct ctl_table *table, int write,
111646 + void __user *buffer, size_t *lenp, loff_t *ppos)
111647 +{
111648 + if (write && !capable(CAP_SYS_MODULE))
111649 + return -EPERM;
111650 +
111651 + return _proc_do_string(table->data, table->maxlen, write,
111652 + buffer, lenp, ppos);
111653 +}
111654 +
111655 static size_t proc_skip_spaces(char **buf)
111656 {
111657 size_t ret;
111658 @@ -1957,6 +2027,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
111659 len = strlen(tmp);
111660 if (len > *size)
111661 len = *size;
111662 + if (len > sizeof(tmp))
111663 + len = sizeof(tmp);
111664 if (copy_to_user(*buf, tmp, len))
111665 return -EFAULT;
111666 *size -= len;
111667 @@ -2135,6 +2207,44 @@ int proc_dointvec(struct ctl_table *table, int write,
111668 NULL,NULL);
111669 }
111670
111671 +static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
111672 + int *valp,
111673 + int write, void *data)
111674 +{
111675 + if (write) {
111676 + if (*negp) {
111677 + if (*lvalp > (unsigned long) INT_MAX + 1)
111678 + return -EINVAL;
111679 + pax_open_kernel();
111680 + *valp = -*lvalp;
111681 + pax_close_kernel();
111682 + } else {
111683 + if (*lvalp > (unsigned long) INT_MAX)
111684 + return -EINVAL;
111685 + pax_open_kernel();
111686 + *valp = *lvalp;
111687 + pax_close_kernel();
111688 + }
111689 + } else {
111690 + int val = *valp;
111691 + if (val < 0) {
111692 + *negp = true;
111693 + *lvalp = -(unsigned long)val;
111694 + } else {
111695 + *negp = false;
111696 + *lvalp = (unsigned long)val;
111697 + }
111698 + }
111699 + return 0;
111700 +}
111701 +
111702 +int proc_dointvec_secure(struct ctl_table *table, int write,
111703 + void __user *buffer, size_t *lenp, loff_t *ppos)
111704 +{
111705 + return do_proc_dointvec(table,write,buffer,lenp,ppos,
111706 + do_proc_dointvec_conv_secure,NULL);
111707 +}
111708 +
111709 /*
111710 * Taint values can only be increased
111711 * This means we can safely use a temporary.
111712 @@ -2142,7 +2252,7 @@ int proc_dointvec(struct ctl_table *table, int write,
111713 static int proc_taint(struct ctl_table *table, int write,
111714 void __user *buffer, size_t *lenp, loff_t *ppos)
111715 {
111716 - struct ctl_table t;
111717 + ctl_table_no_const t;
111718 unsigned long tmptaint = get_taint();
111719 int err;
111720
111721 @@ -2170,16 +2280,14 @@ static int proc_taint(struct ctl_table *table, int write,
111722 return err;
111723 }
111724
111725 -#ifdef CONFIG_PRINTK
111726 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
111727 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
111728 void __user *buffer, size_t *lenp, loff_t *ppos)
111729 {
111730 if (write && !capable(CAP_SYS_ADMIN))
111731 return -EPERM;
111732
111733 - return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
111734 + return proc_dointvec_minmax_secure(table, write, buffer, lenp, ppos);
111735 }
111736 -#endif
111737
111738 struct do_proc_dointvec_minmax_conv_param {
111739 int *min;
111740 @@ -2210,6 +2318,32 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
111741 return 0;
111742 }
111743
111744 +static int do_proc_dointvec_minmax_conv_secure(bool *negp, unsigned long *lvalp,
111745 + int *valp,
111746 + int write, void *data)
111747 +{
111748 + struct do_proc_dointvec_minmax_conv_param *param = data;
111749 + if (write) {
111750 + int val = *negp ? -*lvalp : *lvalp;
111751 + if ((param->min && *param->min > val) ||
111752 + (param->max && *param->max < val))
111753 + return -EINVAL;
111754 + pax_open_kernel();
111755 + *valp = val;
111756 + pax_close_kernel();
111757 + } else {
111758 + int val = *valp;
111759 + if (val < 0) {
111760 + *negp = true;
111761 + *lvalp = -(unsigned long)val;
111762 + } else {
111763 + *negp = false;
111764 + *lvalp = (unsigned long)val;
111765 + }
111766 + }
111767 + return 0;
111768 +}
111769 +
111770 /**
111771 * proc_dointvec_minmax - read a vector of integers with min/max values
111772 * @table: the sysctl table
111773 @@ -2237,6 +2371,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
111774 do_proc_dointvec_minmax_conv, &param);
111775 }
111776
111777 +int proc_dointvec_minmax_secure(struct ctl_table *table, int write,
111778 + void __user *buffer, size_t *lenp, loff_t *ppos)
111779 +{
111780 + struct do_proc_dointvec_minmax_conv_param param = {
111781 + .min = (int *) table->extra1,
111782 + .max = (int *) table->extra2,
111783 + };
111784 + return do_proc_dointvec(table, write, buffer, lenp, ppos,
111785 + do_proc_dointvec_minmax_conv_secure, &param);
111786 +}
111787 +
111788 static void validate_coredump_safety(void)
111789 {
111790 #ifdef CONFIG_COREDUMP
111791 @@ -2739,6 +2884,12 @@ int proc_dostring(struct ctl_table *table, int write,
111792 return -ENOSYS;
111793 }
111794
111795 +int proc_dostring_modpriv(struct ctl_table *table, int write,
111796 + void __user *buffer, size_t *lenp, loff_t *ppos)
111797 +{
111798 + return -ENOSYS;
111799 +}
111800 +
111801 int proc_dointvec(struct ctl_table *table, int write,
111802 void __user *buffer, size_t *lenp, loff_t *ppos)
111803 {
111804 @@ -2795,5 +2946,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
111805 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
111806 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
111807 EXPORT_SYMBOL(proc_dostring);
111808 +EXPORT_SYMBOL(proc_dostring_modpriv);
111809 EXPORT_SYMBOL(proc_doulongvec_minmax);
111810 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
111811 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
111812 index 21f82c2..c1984e5 100644
111813 --- a/kernel/taskstats.c
111814 +++ b/kernel/taskstats.c
111815 @@ -28,9 +28,12 @@
111816 #include <linux/fs.h>
111817 #include <linux/file.h>
111818 #include <linux/pid_namespace.h>
111819 +#include <linux/grsecurity.h>
111820 #include <net/genetlink.h>
111821 #include <linux/atomic.h>
111822
111823 +extern int gr_is_taskstats_denied(int pid);
111824 +
111825 /*
111826 * Maximum length of a cpumask that can be specified in
111827 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
111828 @@ -567,6 +570,9 @@ err:
111829
111830 static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
111831 {
111832 + if (gr_is_taskstats_denied(current->pid))
111833 + return -EACCES;
111834 +
111835 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
111836 return cmd_attr_register_cpumask(info);
111837 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
111838 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
111839 index 7fbba635..7cc64ae 100644
111840 --- a/kernel/time/alarmtimer.c
111841 +++ b/kernel/time/alarmtimer.c
111842 @@ -820,7 +820,7 @@ static int __init alarmtimer_init(void)
111843 struct platform_device *pdev;
111844 int error = 0;
111845 int i;
111846 - struct k_clock alarm_clock = {
111847 + static struct k_clock alarm_clock = {
111848 .clock_getres = alarm_clock_getres,
111849 .clock_get = alarm_clock_get,
111850 .timer_create = alarm_timer_create,
111851 diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
111852 index 892e3da..cb71aa5 100644
111853 --- a/kernel/time/posix-cpu-timers.c
111854 +++ b/kernel/time/posix-cpu-timers.c
111855 @@ -1470,14 +1470,14 @@ struct k_clock clock_posix_cpu = {
111856
111857 static __init int init_posix_cpu_timers(void)
111858 {
111859 - struct k_clock process = {
111860 + static struct k_clock process = {
111861 .clock_getres = process_cpu_clock_getres,
111862 .clock_get = process_cpu_clock_get,
111863 .timer_create = process_cpu_timer_create,
111864 .nsleep = process_cpu_nsleep,
111865 .nsleep_restart = process_cpu_nsleep_restart,
111866 };
111867 - struct k_clock thread = {
111868 + static struct k_clock thread = {
111869 .clock_getres = thread_cpu_clock_getres,
111870 .clock_get = thread_cpu_clock_get,
111871 .timer_create = thread_cpu_timer_create,
111872 diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
111873 index 31d11ac..5a3bb13 100644
111874 --- a/kernel/time/posix-timers.c
111875 +++ b/kernel/time/posix-timers.c
111876 @@ -43,6 +43,7 @@
111877 #include <linux/hash.h>
111878 #include <linux/posix-clock.h>
111879 #include <linux/posix-timers.h>
111880 +#include <linux/grsecurity.h>
111881 #include <linux/syscalls.h>
111882 #include <linux/wait.h>
111883 #include <linux/workqueue.h>
111884 @@ -124,7 +125,7 @@ static DEFINE_SPINLOCK(hash_lock);
111885 * which we beg off on and pass to do_sys_settimeofday().
111886 */
111887
111888 -static struct k_clock posix_clocks[MAX_CLOCKS];
111889 +static struct k_clock *posix_clocks[MAX_CLOCKS];
111890
111891 /*
111892 * These ones are defined below.
111893 @@ -284,7 +285,7 @@ static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec *tp)
111894 */
111895 static __init int init_posix_timers(void)
111896 {
111897 - struct k_clock clock_realtime = {
111898 + static struct k_clock clock_realtime = {
111899 .clock_getres = posix_get_hrtimer_res,
111900 .clock_get = posix_clock_realtime_get,
111901 .clock_set = posix_clock_realtime_set,
111902 @@ -296,7 +297,7 @@ static __init int init_posix_timers(void)
111903 .timer_get = common_timer_get,
111904 .timer_del = common_timer_del,
111905 };
111906 - struct k_clock clock_monotonic = {
111907 + static struct k_clock clock_monotonic = {
111908 .clock_getres = posix_get_hrtimer_res,
111909 .clock_get = posix_ktime_get_ts,
111910 .nsleep = common_nsleep,
111911 @@ -306,19 +307,19 @@ static __init int init_posix_timers(void)
111912 .timer_get = common_timer_get,
111913 .timer_del = common_timer_del,
111914 };
111915 - struct k_clock clock_monotonic_raw = {
111916 + static struct k_clock clock_monotonic_raw = {
111917 .clock_getres = posix_get_hrtimer_res,
111918 .clock_get = posix_get_monotonic_raw,
111919 };
111920 - struct k_clock clock_realtime_coarse = {
111921 + static struct k_clock clock_realtime_coarse = {
111922 .clock_getres = posix_get_coarse_res,
111923 .clock_get = posix_get_realtime_coarse,
111924 };
111925 - struct k_clock clock_monotonic_coarse = {
111926 + static struct k_clock clock_monotonic_coarse = {
111927 .clock_getres = posix_get_coarse_res,
111928 .clock_get = posix_get_monotonic_coarse,
111929 };
111930 - struct k_clock clock_tai = {
111931 + static struct k_clock clock_tai = {
111932 .clock_getres = posix_get_hrtimer_res,
111933 .clock_get = posix_get_tai,
111934 .nsleep = common_nsleep,
111935 @@ -328,7 +329,7 @@ static __init int init_posix_timers(void)
111936 .timer_get = common_timer_get,
111937 .timer_del = common_timer_del,
111938 };
111939 - struct k_clock clock_boottime = {
111940 + static struct k_clock clock_boottime = {
111941 .clock_getres = posix_get_hrtimer_res,
111942 .clock_get = posix_get_boottime,
111943 .nsleep = common_nsleep,
111944 @@ -540,7 +541,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
111945 return;
111946 }
111947
111948 - posix_clocks[clock_id] = *new_clock;
111949 + posix_clocks[clock_id] = new_clock;
111950 }
111951 EXPORT_SYMBOL_GPL(posix_timers_register_clock);
111952
111953 @@ -586,9 +587,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
111954 return (id & CLOCKFD_MASK) == CLOCKFD ?
111955 &clock_posix_dynamic : &clock_posix_cpu;
111956
111957 - if (id >= MAX_CLOCKS || !posix_clocks[id].clock_getres)
111958 + if (id >= MAX_CLOCKS || !posix_clocks[id] || !posix_clocks[id]->clock_getres)
111959 return NULL;
111960 - return &posix_clocks[id];
111961 + return posix_clocks[id];
111962 }
111963
111964 static int common_timer_create(struct k_itimer *new_timer)
111965 @@ -606,7 +607,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
111966 struct k_clock *kc = clockid_to_kclock(which_clock);
111967 struct k_itimer *new_timer;
111968 int error, new_timer_id;
111969 - sigevent_t event;
111970 + sigevent_t event = { };
111971 int it_id_set = IT_ID_NOT_SET;
111972
111973 if (!kc)
111974 @@ -1021,6 +1022,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
111975 if (copy_from_user(&new_tp, tp, sizeof (*tp)))
111976 return -EFAULT;
111977
111978 + /* only the CLOCK_REALTIME clock can be set, all other clocks
111979 + have their clock_set fptr set to a nosettime dummy function
111980 + CLOCK_REALTIME has a NULL clock_set fptr which causes it to
111981 + call common_clock_set, which calls do_sys_settimeofday, which
111982 + we hook
111983 + */
111984 +
111985 return kc->clock_set(which_clock, &new_tp);
111986 }
111987
111988 diff --git a/kernel/time/time.c b/kernel/time/time.c
111989 index 86751c6..7875536 100644
111990 --- a/kernel/time/time.c
111991 +++ b/kernel/time/time.c
111992 @@ -177,6 +177,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
111993 if (tz->tz_minuteswest > 15*60 || tz->tz_minuteswest < -15*60)
111994 return -EINVAL;
111995
111996 + /* we log in do_settimeofday called below, so don't log twice
111997 + */
111998 + if (!tv)
111999 + gr_log_timechange();
112000 +
112001 sys_tz = *tz;
112002 update_vsyscall_tz();
112003 if (firsttime) {
112004 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
112005 index 44d2cc0..337ccab 100644
112006 --- a/kernel/time/timekeeping.c
112007 +++ b/kernel/time/timekeeping.c
112008 @@ -15,6 +15,7 @@
112009 #include <linux/init.h>
112010 #include <linux/mm.h>
112011 #include <linux/sched.h>
112012 +#include <linux/grsecurity.h>
112013 #include <linux/syscore_ops.h>
112014 #include <linux/clocksource.h>
112015 #include <linux/jiffies.h>
112016 @@ -916,6 +917,8 @@ int do_settimeofday64(const struct timespec64 *ts)
112017 if (!timespec64_valid_strict(ts))
112018 return -EINVAL;
112019
112020 + gr_log_timechange();
112021 +
112022 raw_spin_lock_irqsave(&timekeeper_lock, flags);
112023 write_seqcount_begin(&tk_core.seq);
112024
112025 diff --git a/kernel/time/timer.c b/kernel/time/timer.c
112026 index 84190f0..6f4ccad 100644
112027 --- a/kernel/time/timer.c
112028 +++ b/kernel/time/timer.c
112029 @@ -1406,7 +1406,7 @@ void update_process_times(int user_tick)
112030 /*
112031 * This function runs timers and the timer-tq in bottom half context.
112032 */
112033 -static void run_timer_softirq(struct softirq_action *h)
112034 +static __latent_entropy void run_timer_softirq(void)
112035 {
112036 struct tvec_base *base = this_cpu_ptr(&tvec_bases);
112037
112038 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
112039 index f75e35b..f488695 100644
112040 --- a/kernel/time/timer_list.c
112041 +++ b/kernel/time/timer_list.c
112042 @@ -50,12 +50,16 @@ static void SEQ_printf(struct seq_file *m, const char *fmt, ...)
112043
112044 static void print_name_offset(struct seq_file *m, void *sym)
112045 {
112046 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112047 + SEQ_printf(m, "<%p>", NULL);
112048 +#else
112049 char symname[KSYM_NAME_LEN];
112050
112051 if (lookup_symbol_name((unsigned long)sym, symname) < 0)
112052 SEQ_printf(m, "<%pK>", sym);
112053 else
112054 SEQ_printf(m, "%s", symname);
112055 +#endif
112056 }
112057
112058 static void
112059 @@ -124,11 +128,14 @@ next_one:
112060 static void
112061 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
112062 {
112063 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112064 + SEQ_printf(m, " .base: %p\n", NULL);
112065 +#else
112066 SEQ_printf(m, " .base: %pK\n", base);
112067 +#endif
112068 SEQ_printf(m, " .index: %d\n", base->index);
112069
112070 SEQ_printf(m, " .resolution: %u nsecs\n", (unsigned) hrtimer_resolution);
112071 -
112072 SEQ_printf(m, " .get_time: ");
112073 print_name_offset(m, base->get_time);
112074 SEQ_printf(m, "\n");
112075 @@ -393,7 +400,11 @@ static int __init init_timer_list_procfs(void)
112076 {
112077 struct proc_dir_entry *pe;
112078
112079 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
112080 + pe = proc_create("timer_list", 0400, NULL, &timer_list_fops);
112081 +#else
112082 pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
112083 +#endif
112084 if (!pe)
112085 return -ENOMEM;
112086 return 0;
112087 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
112088 index 1adecb4..b4fb631 100644
112089 --- a/kernel/time/timer_stats.c
112090 +++ b/kernel/time/timer_stats.c
112091 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
112092 static unsigned long nr_entries;
112093 static struct entry entries[MAX_ENTRIES];
112094
112095 -static atomic_t overflow_count;
112096 +static atomic_unchecked_t overflow_count;
112097
112098 /*
112099 * The entries are in a hash-table, for fast lookup:
112100 @@ -140,7 +140,7 @@ static void reset_entries(void)
112101 nr_entries = 0;
112102 memset(entries, 0, sizeof(entries));
112103 memset(tstat_hash_table, 0, sizeof(tstat_hash_table));
112104 - atomic_set(&overflow_count, 0);
112105 + atomic_set_unchecked(&overflow_count, 0);
112106 }
112107
112108 static struct entry *alloc_entry(void)
112109 @@ -261,7 +261,7 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
112110 if (likely(entry))
112111 entry->count++;
112112 else
112113 - atomic_inc(&overflow_count);
112114 + atomic_inc_unchecked(&overflow_count);
112115
112116 out_unlock:
112117 raw_spin_unlock_irqrestore(lock, flags);
112118 @@ -269,12 +269,16 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
112119
112120 static void print_name_offset(struct seq_file *m, unsigned long addr)
112121 {
112122 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112123 + seq_printf(m, "<%p>", NULL);
112124 +#else
112125 char symname[KSYM_NAME_LEN];
112126
112127 if (lookup_symbol_name(addr, symname) < 0)
112128 - seq_printf(m, "<%p>", (void *)addr);
112129 + seq_printf(m, "<%pK>", (void *)addr);
112130 else
112131 seq_printf(m, "%s", symname);
112132 +#endif
112133 }
112134
112135 static int tstats_show(struct seq_file *m, void *v)
112136 @@ -300,8 +304,8 @@ static int tstats_show(struct seq_file *m, void *v)
112137
112138 seq_puts(m, "Timer Stats Version: v0.3\n");
112139 seq_printf(m, "Sample period: %ld.%03ld s\n", period.tv_sec, ms);
112140 - if (atomic_read(&overflow_count))
112141 - seq_printf(m, "Overflow: %d entries\n", atomic_read(&overflow_count));
112142 + if (atomic_read_unchecked(&overflow_count))
112143 + seq_printf(m, "Overflow: %d entries\n", atomic_read_unchecked(&overflow_count));
112144 seq_printf(m, "Collection: %s\n", timer_stats_active ? "active" : "inactive");
112145
112146 for (i = 0; i < nr_entries; i++) {
112147 @@ -417,7 +421,11 @@ static int __init init_tstats_procfs(void)
112148 {
112149 struct proc_dir_entry *pe;
112150
112151 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
112152 + pe = proc_create("timer_stats", 0600, NULL, &tstats_fops);
112153 +#else
112154 pe = proc_create("timer_stats", 0644, NULL, &tstats_fops);
112155 +#endif
112156 if (!pe)
112157 return -ENOMEM;
112158 return 0;
112159 diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
112160 index 1153c43..32fada6 100644
112161 --- a/kernel/trace/Kconfig
112162 +++ b/kernel/trace/Kconfig
112163 @@ -120,6 +120,7 @@ config TRACING_SUPPORT
112164 # irqflags tracing for your architecture.
112165 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
112166 depends on STACKTRACE_SUPPORT
112167 + depends on !GRKERNSEC_KMEM
112168 default y
112169
112170 if TRACING_SUPPORT
112171 @@ -378,6 +379,7 @@ config BLK_DEV_IO_TRACE
112172 depends on BLOCK
112173 select RELAY
112174 select DEBUG_FS
112175 + depends on !GRKERNSEC_KMEM
112176 select TRACEPOINTS
112177 select GENERIC_TRACER
112178 select STACKTRACE
112179 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
112180 index 90e72a0..a155f16 100644
112181 --- a/kernel/trace/blktrace.c
112182 +++ b/kernel/trace/blktrace.c
112183 @@ -328,7 +328,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
112184 struct blk_trace *bt = filp->private_data;
112185 char buf[16];
112186
112187 - snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped));
112188 + snprintf(buf, sizeof(buf), "%u\n", atomic_read_unchecked(&bt->dropped));
112189
112190 return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
112191 }
112192 @@ -386,7 +386,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
112193 return 1;
112194
112195 bt = buf->chan->private_data;
112196 - atomic_inc(&bt->dropped);
112197 + atomic_inc_unchecked(&bt->dropped);
112198 return 0;
112199 }
112200
112201 @@ -485,7 +485,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
112202
112203 bt->dir = dir;
112204 bt->dev = dev;
112205 - atomic_set(&bt->dropped, 0);
112206 + atomic_set_unchecked(&bt->dropped, 0);
112207 INIT_LIST_HEAD(&bt->running_list);
112208
112209 ret = -EIO;
112210 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
112211 index b0623ac..73379bc 100644
112212 --- a/kernel/trace/ftrace.c
112213 +++ b/kernel/trace/ftrace.c
112214 @@ -2418,12 +2418,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
112215 if (unlikely(ftrace_disabled))
112216 return 0;
112217
112218 + ret = ftrace_arch_code_modify_prepare();
112219 + FTRACE_WARN_ON(ret);
112220 + if (ret)
112221 + return 0;
112222 +
112223 ret = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
112224 + FTRACE_WARN_ON(ftrace_arch_code_modify_post_process());
112225 if (ret) {
112226 ftrace_bug(ret, rec);
112227 - return 0;
112228 }
112229 - return 1;
112230 + return ret ? 0 : 1;
112231 }
112232
112233 /*
112234 @@ -4812,8 +4817,10 @@ static int ftrace_process_locs(struct module *mod,
112235 if (!count)
112236 return 0;
112237
112238 + pax_open_kernel();
112239 sort(start, count, sizeof(*start),
112240 ftrace_cmp_ips, ftrace_swap_ips);
112241 + pax_close_kernel();
112242
112243 start_pg = ftrace_allocate_pages(count);
112244 if (!start_pg)
112245 @@ -5680,7 +5687,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
112246
112247 if (t->ret_stack == NULL) {
112248 atomic_set(&t->tracing_graph_pause, 0);
112249 - atomic_set(&t->trace_overrun, 0);
112250 + atomic_set_unchecked(&t->trace_overrun, 0);
112251 t->curr_ret_stack = -1;
112252 /* Make sure the tasks see the -1 first: */
112253 smp_wmb();
112254 @@ -5903,7 +5910,7 @@ static void
112255 graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack)
112256 {
112257 atomic_set(&t->tracing_graph_pause, 0);
112258 - atomic_set(&t->trace_overrun, 0);
112259 + atomic_set_unchecked(&t->trace_overrun, 0);
112260 t->ftrace_timestamp = 0;
112261 /* make curr_ret_stack visible before we add the ret_stack */
112262 smp_wmb();
112263 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
112264 index fc347f8..4301ecb 100644
112265 --- a/kernel/trace/ring_buffer.c
112266 +++ b/kernel/trace/ring_buffer.c
112267 @@ -296,9 +296,9 @@ struct buffer_data_page {
112268 */
112269 struct buffer_page {
112270 struct list_head list; /* list of buffer pages */
112271 - local_t write; /* index for next write */
112272 + local_unchecked_t write; /* index for next write */
112273 unsigned read; /* index for next read */
112274 - local_t entries; /* entries on this page */
112275 + local_unchecked_t entries; /* entries on this page */
112276 unsigned long real_end; /* real end of data */
112277 struct buffer_data_page *page; /* Actual data page */
112278 };
112279 @@ -448,11 +448,11 @@ struct ring_buffer_per_cpu {
112280 unsigned long last_overrun;
112281 local_t entries_bytes;
112282 local_t entries;
112283 - local_t overrun;
112284 - local_t commit_overrun;
112285 - local_t dropped_events;
112286 + local_unchecked_t overrun;
112287 + local_unchecked_t commit_overrun;
112288 + local_unchecked_t dropped_events;
112289 local_t committing;
112290 - local_t commits;
112291 + local_unchecked_t commits;
112292 unsigned long read;
112293 unsigned long read_bytes;
112294 u64 write_stamp;
112295 @@ -1022,8 +1022,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
112296 *
112297 * We add a counter to the write field to denote this.
112298 */
112299 - old_write = local_add_return(RB_WRITE_INTCNT, &next_page->write);
112300 - old_entries = local_add_return(RB_WRITE_INTCNT, &next_page->entries);
112301 + old_write = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->write);
112302 + old_entries = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->entries);
112303
112304 /*
112305 * Just make sure we have seen our old_write and synchronize
112306 @@ -1051,8 +1051,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
112307 * cmpxchg to only update if an interrupt did not already
112308 * do it for us. If the cmpxchg fails, we don't care.
112309 */
112310 - (void)local_cmpxchg(&next_page->write, old_write, val);
112311 - (void)local_cmpxchg(&next_page->entries, old_entries, eval);
112312 + (void)local_cmpxchg_unchecked(&next_page->write, old_write, val);
112313 + (void)local_cmpxchg_unchecked(&next_page->entries, old_entries, eval);
112314
112315 /*
112316 * No need to worry about races with clearing out the commit.
112317 @@ -1420,12 +1420,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer);
112318
112319 static inline unsigned long rb_page_entries(struct buffer_page *bpage)
112320 {
112321 - return local_read(&bpage->entries) & RB_WRITE_MASK;
112322 + return local_read_unchecked(&bpage->entries) & RB_WRITE_MASK;
112323 }
112324
112325 static inline unsigned long rb_page_write(struct buffer_page *bpage)
112326 {
112327 - return local_read(&bpage->write) & RB_WRITE_MASK;
112328 + return local_read_unchecked(&bpage->write) & RB_WRITE_MASK;
112329 }
112330
112331 static int
112332 @@ -1520,7 +1520,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages)
112333 * bytes consumed in ring buffer from here.
112334 * Increment overrun to account for the lost events.
112335 */
112336 - local_add(page_entries, &cpu_buffer->overrun);
112337 + local_add_unchecked(page_entries, &cpu_buffer->overrun);
112338 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
112339 }
112340
112341 @@ -1957,7 +1957,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer,
112342 * it is our responsibility to update
112343 * the counters.
112344 */
112345 - local_add(entries, &cpu_buffer->overrun);
112346 + local_add_unchecked(entries, &cpu_buffer->overrun);
112347 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
112348
112349 /*
112350 @@ -2091,7 +2091,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
112351 if (tail == BUF_PAGE_SIZE)
112352 tail_page->real_end = 0;
112353
112354 - local_sub(length, &tail_page->write);
112355 + local_sub_unchecked(length, &tail_page->write);
112356 return;
112357 }
112358
112359 @@ -2126,7 +2126,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
112360 rb_event_set_padding(event);
112361
112362 /* Set the write back to the previous setting */
112363 - local_sub(length, &tail_page->write);
112364 + local_sub_unchecked(length, &tail_page->write);
112365 return;
112366 }
112367
112368 @@ -2138,7 +2138,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
112369
112370 /* Set write to end of buffer */
112371 length = (tail + length) - BUF_PAGE_SIZE;
112372 - local_sub(length, &tail_page->write);
112373 + local_sub_unchecked(length, &tail_page->write);
112374 }
112375
112376 /*
112377 @@ -2165,7 +2165,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
112378 * about it.
112379 */
112380 if (unlikely(next_page == commit_page)) {
112381 - local_inc(&cpu_buffer->commit_overrun);
112382 + local_inc_unchecked(&cpu_buffer->commit_overrun);
112383 goto out_reset;
112384 }
112385
112386 @@ -2195,7 +2195,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
112387 * this is easy, just stop here.
112388 */
112389 if (!(buffer->flags & RB_FL_OVERWRITE)) {
112390 - local_inc(&cpu_buffer->dropped_events);
112391 + local_inc_unchecked(&cpu_buffer->dropped_events);
112392 goto out_reset;
112393 }
112394
112395 @@ -2221,7 +2221,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
112396 cpu_buffer->tail_page) &&
112397 (cpu_buffer->commit_page ==
112398 cpu_buffer->reader_page))) {
112399 - local_inc(&cpu_buffer->commit_overrun);
112400 + local_inc_unchecked(&cpu_buffer->commit_overrun);
112401 goto out_reset;
112402 }
112403 }
112404 @@ -2372,7 +2372,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112405
112406 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) {
112407 unsigned long write_mask =
112408 - local_read(&bpage->write) & ~RB_WRITE_MASK;
112409 + local_read_unchecked(&bpage->write) & ~RB_WRITE_MASK;
112410 unsigned long event_length = rb_event_length(event);
112411 /*
112412 * This is on the tail page. It is possible that
112413 @@ -2382,7 +2382,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112414 */
112415 old_index += write_mask;
112416 new_index += write_mask;
112417 - index = local_cmpxchg(&bpage->write, old_index, new_index);
112418 + index = local_cmpxchg_unchecked(&bpage->write, old_index, new_index);
112419 if (index == old_index) {
112420 /* update counters */
112421 local_sub(event_length, &cpu_buffer->entries_bytes);
112422 @@ -2397,7 +2397,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112423 static void rb_start_commit(struct ring_buffer_per_cpu *cpu_buffer)
112424 {
112425 local_inc(&cpu_buffer->committing);
112426 - local_inc(&cpu_buffer->commits);
112427 + local_inc_unchecked(&cpu_buffer->commits);
112428 }
112429
112430 static void
112431 @@ -2462,7 +2462,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
112432 return;
112433
112434 again:
112435 - commits = local_read(&cpu_buffer->commits);
112436 + commits = local_read_unchecked(&cpu_buffer->commits);
112437 /* synchronize with interrupts */
112438 barrier();
112439 if (local_read(&cpu_buffer->committing) == 1)
112440 @@ -2478,7 +2478,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
112441 * updating of the commit page and the clearing of the
112442 * committing counter.
112443 */
112444 - if (unlikely(local_read(&cpu_buffer->commits) != commits) &&
112445 + if (unlikely(local_read_unchecked(&cpu_buffer->commits) != commits) &&
112446 !local_read(&cpu_buffer->committing)) {
112447 local_inc(&cpu_buffer->committing);
112448 goto again;
112449 @@ -2706,7 +2706,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
112450 info->length += RB_LEN_TIME_EXTEND;
112451
112452 tail_page = info->tail_page = cpu_buffer->tail_page;
112453 - write = local_add_return(info->length, &tail_page->write);
112454 + write = local_add_return_unchecked(info->length, &tail_page->write);
112455
112456 /* set write to only the index of the write */
112457 write &= RB_WRITE_MASK;
112458 @@ -2729,7 +2729,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
112459 kmemcheck_annotate_bitfield(event, bitfield);
112460 rb_update_event(cpu_buffer, event, info);
112461
112462 - local_inc(&tail_page->entries);
112463 + local_inc_unchecked(&tail_page->entries);
112464
112465 /*
112466 * If this is the first commit on the page, then update
112467 @@ -2766,7 +2766,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
112468 barrier();
112469 if (unlikely(ACCESS_ONCE(cpu_buffer->buffer) != buffer)) {
112470 local_dec(&cpu_buffer->committing);
112471 - local_dec(&cpu_buffer->commits);
112472 + local_dec_unchecked(&cpu_buffer->commits);
112473 return NULL;
112474 }
112475 #endif
112476 @@ -2892,7 +2892,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
112477
112478 /* Do the likely case first */
112479 if (likely(bpage->page == (void *)addr)) {
112480 - local_dec(&bpage->entries);
112481 + local_dec_unchecked(&bpage->entries);
112482 return;
112483 }
112484
112485 @@ -2904,7 +2904,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
112486 start = bpage;
112487 do {
112488 if (bpage->page == (void *)addr) {
112489 - local_dec(&bpage->entries);
112490 + local_dec_unchecked(&bpage->entries);
112491 return;
112492 }
112493 rb_inc_page(cpu_buffer, &bpage);
112494 @@ -3192,7 +3192,7 @@ static inline unsigned long
112495 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
112496 {
112497 return local_read(&cpu_buffer->entries) -
112498 - (local_read(&cpu_buffer->overrun) + cpu_buffer->read);
112499 + (local_read_unchecked(&cpu_buffer->overrun) + cpu_buffer->read);
112500 }
112501
112502 /**
112503 @@ -3281,7 +3281,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
112504 return 0;
112505
112506 cpu_buffer = buffer->buffers[cpu];
112507 - ret = local_read(&cpu_buffer->overrun);
112508 + ret = local_read_unchecked(&cpu_buffer->overrun);
112509
112510 return ret;
112511 }
112512 @@ -3304,7 +3304,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
112513 return 0;
112514
112515 cpu_buffer = buffer->buffers[cpu];
112516 - ret = local_read(&cpu_buffer->commit_overrun);
112517 + ret = local_read_unchecked(&cpu_buffer->commit_overrun);
112518
112519 return ret;
112520 }
112521 @@ -3326,7 +3326,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
112522 return 0;
112523
112524 cpu_buffer = buffer->buffers[cpu];
112525 - ret = local_read(&cpu_buffer->dropped_events);
112526 + ret = local_read_unchecked(&cpu_buffer->dropped_events);
112527
112528 return ret;
112529 }
112530 @@ -3389,7 +3389,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
112531 /* if you care about this being correct, lock the buffer */
112532 for_each_buffer_cpu(buffer, cpu) {
112533 cpu_buffer = buffer->buffers[cpu];
112534 - overruns += local_read(&cpu_buffer->overrun);
112535 + overruns += local_read_unchecked(&cpu_buffer->overrun);
112536 }
112537
112538 return overruns;
112539 @@ -3560,8 +3560,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
112540 /*
112541 * Reset the reader page to size zero.
112542 */
112543 - local_set(&cpu_buffer->reader_page->write, 0);
112544 - local_set(&cpu_buffer->reader_page->entries, 0);
112545 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
112546 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
112547 local_set(&cpu_buffer->reader_page->page->commit, 0);
112548 cpu_buffer->reader_page->real_end = 0;
112549
112550 @@ -3595,7 +3595,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
112551 * want to compare with the last_overrun.
112552 */
112553 smp_mb();
112554 - overwrite = local_read(&(cpu_buffer->overrun));
112555 + overwrite = local_read_unchecked(&(cpu_buffer->overrun));
112556
112557 /*
112558 * Here's the tricky part.
112559 @@ -4177,8 +4177,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
112560
112561 cpu_buffer->head_page
112562 = list_entry(cpu_buffer->pages, struct buffer_page, list);
112563 - local_set(&cpu_buffer->head_page->write, 0);
112564 - local_set(&cpu_buffer->head_page->entries, 0);
112565 + local_set_unchecked(&cpu_buffer->head_page->write, 0);
112566 + local_set_unchecked(&cpu_buffer->head_page->entries, 0);
112567 local_set(&cpu_buffer->head_page->page->commit, 0);
112568
112569 cpu_buffer->head_page->read = 0;
112570 @@ -4188,18 +4188,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
112571
112572 INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
112573 INIT_LIST_HEAD(&cpu_buffer->new_pages);
112574 - local_set(&cpu_buffer->reader_page->write, 0);
112575 - local_set(&cpu_buffer->reader_page->entries, 0);
112576 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
112577 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
112578 local_set(&cpu_buffer->reader_page->page->commit, 0);
112579 cpu_buffer->reader_page->read = 0;
112580
112581 local_set(&cpu_buffer->entries_bytes, 0);
112582 - local_set(&cpu_buffer->overrun, 0);
112583 - local_set(&cpu_buffer->commit_overrun, 0);
112584 - local_set(&cpu_buffer->dropped_events, 0);
112585 + local_set_unchecked(&cpu_buffer->overrun, 0);
112586 + local_set_unchecked(&cpu_buffer->commit_overrun, 0);
112587 + local_set_unchecked(&cpu_buffer->dropped_events, 0);
112588 local_set(&cpu_buffer->entries, 0);
112589 local_set(&cpu_buffer->committing, 0);
112590 - local_set(&cpu_buffer->commits, 0);
112591 + local_set_unchecked(&cpu_buffer->commits, 0);
112592 cpu_buffer->read = 0;
112593 cpu_buffer->read_bytes = 0;
112594
112595 @@ -4589,8 +4589,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
112596 rb_init_page(bpage);
112597 bpage = reader->page;
112598 reader->page = *data_page;
112599 - local_set(&reader->write, 0);
112600 - local_set(&reader->entries, 0);
112601 + local_set_unchecked(&reader->write, 0);
112602 + local_set_unchecked(&reader->entries, 0);
112603 reader->read = 0;
112604 *data_page = bpage;
112605
112606 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
112607 index 6e79408..bc64ae3 100644
112608 --- a/kernel/trace/trace.c
112609 +++ b/kernel/trace/trace.c
112610 @@ -3539,7 +3539,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
112611 return 0;
112612 }
112613
112614 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
112615 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled)
112616 {
112617 /* do nothing if flag is already set */
112618 if (!!(trace_flags & mask) == !!enabled)
112619 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
112620 index 74bde81..f9abfd4 100644
112621 --- a/kernel/trace/trace.h
112622 +++ b/kernel/trace/trace.h
112623 @@ -1272,7 +1272,7 @@ extern const char *__stop___tracepoint_str[];
112624 void trace_printk_init_buffers(void);
112625 void trace_printk_start_comm(void);
112626 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
112627 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled);
112628 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled);
112629
112630 /*
112631 * Normal trace_printk() and friends allocates special buffers
112632 diff --git a/kernel/trace/trace_clock.c b/kernel/trace/trace_clock.c
112633 index 0f06532..247c8e7 100644
112634 --- a/kernel/trace/trace_clock.c
112635 +++ b/kernel/trace/trace_clock.c
112636 @@ -127,7 +127,7 @@ u64 notrace trace_clock_global(void)
112637 }
112638 EXPORT_SYMBOL_GPL(trace_clock_global);
112639
112640 -static atomic64_t trace_counter;
112641 +static atomic64_unchecked_t trace_counter;
112642
112643 /*
112644 * trace_clock_counter(): simply an atomic counter.
112645 @@ -136,5 +136,5 @@ static atomic64_t trace_counter;
112646 */
112647 u64 notrace trace_clock_counter(void)
112648 {
112649 - return atomic64_add_return(1, &trace_counter);
112650 + return atomic64_inc_return_unchecked(&trace_counter);
112651 }
112652 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
112653 index 7ca09cd..bda797e 100644
112654 --- a/kernel/trace/trace_events.c
112655 +++ b/kernel/trace/trace_events.c
112656 @@ -1909,7 +1909,6 @@ __trace_early_add_new_event(struct trace_event_call *call,
112657 return 0;
112658 }
112659
112660 -struct ftrace_module_file_ops;
112661 static void __add_event_to_tracers(struct trace_event_call *call);
112662
112663 /* Add an additional event_call dynamically */
112664 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
112665 index ca98445..53a8094 100644
112666 --- a/kernel/trace/trace_functions_graph.c
112667 +++ b/kernel/trace/trace_functions_graph.c
112668 @@ -132,7 +132,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
112669
112670 /* The return trace stack is full */
112671 if (current->curr_ret_stack == FTRACE_RETFUNC_DEPTH - 1) {
112672 - atomic_inc(&current->trace_overrun);
112673 + atomic_inc_unchecked(&current->trace_overrun);
112674 return -EBUSY;
112675 }
112676
112677 @@ -229,7 +229,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
112678 *ret = current->ret_stack[index].ret;
112679 trace->func = current->ret_stack[index].func;
112680 trace->calltime = current->ret_stack[index].calltime;
112681 - trace->overrun = atomic_read(&current->trace_overrun);
112682 + trace->overrun = atomic_read_unchecked(&current->trace_overrun);
112683 trace->depth = index;
112684 }
112685
112686 diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
112687 index 638e110..99b73b2 100644
112688 --- a/kernel/trace/trace_mmiotrace.c
112689 +++ b/kernel/trace/trace_mmiotrace.c
112690 @@ -24,7 +24,7 @@ struct header_iter {
112691 static struct trace_array *mmio_trace_array;
112692 static bool overrun_detected;
112693 static unsigned long prev_overruns;
112694 -static atomic_t dropped_count;
112695 +static atomic_unchecked_t dropped_count;
112696
112697 static void mmio_reset_data(struct trace_array *tr)
112698 {
112699 @@ -124,7 +124,7 @@ static void mmio_close(struct trace_iterator *iter)
112700
112701 static unsigned long count_overruns(struct trace_iterator *iter)
112702 {
112703 - unsigned long cnt = atomic_xchg(&dropped_count, 0);
112704 + unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0);
112705 unsigned long over = ring_buffer_overruns(iter->trace_buffer->buffer);
112706
112707 if (over > prev_overruns)
112708 @@ -307,7 +307,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr,
112709 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_RW,
112710 sizeof(*entry), 0, pc);
112711 if (!event) {
112712 - atomic_inc(&dropped_count);
112713 + atomic_inc_unchecked(&dropped_count);
112714 return;
112715 }
112716 entry = ring_buffer_event_data(event);
112717 @@ -337,7 +337,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr,
112718 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_MAP,
112719 sizeof(*entry), 0, pc);
112720 if (!event) {
112721 - atomic_inc(&dropped_count);
112722 + atomic_inc_unchecked(&dropped_count);
112723 return;
112724 }
112725 entry = ring_buffer_event_data(event);
112726 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
112727 index 8e481a8..a90b4ad 100644
112728 --- a/kernel/trace/trace_output.c
112729 +++ b/kernel/trace/trace_output.c
112730 @@ -754,14 +754,16 @@ int register_trace_event(struct trace_event *event)
112731 goto out;
112732 }
112733
112734 + pax_open_kernel();
112735 if (event->funcs->trace == NULL)
112736 - event->funcs->trace = trace_nop_print;
112737 + *(void **)&event->funcs->trace = trace_nop_print;
112738 if (event->funcs->raw == NULL)
112739 - event->funcs->raw = trace_nop_print;
112740 + *(void **)&event->funcs->raw = trace_nop_print;
112741 if (event->funcs->hex == NULL)
112742 - event->funcs->hex = trace_nop_print;
112743 + *(void **)&event->funcs->hex = trace_nop_print;
112744 if (event->funcs->binary == NULL)
112745 - event->funcs->binary = trace_nop_print;
112746 + *(void **)&event->funcs->binary = trace_nop_print;
112747 + pax_close_kernel();
112748
112749 key = event->type & (EVENT_HASHSIZE - 1);
112750
112751 diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
112752 index 36c1455..2dbffe2 100644
112753 --- a/kernel/trace/trace_printk.c
112754 +++ b/kernel/trace/trace_printk.c
112755 @@ -267,6 +267,7 @@ static const char **find_next(void *v, loff_t *pos)
112756 if (*pos < last_index + start_index)
112757 return __start___tracepoint_str + (*pos - last_index);
112758
112759 + start_index += last_index;
112760 return find_next_mod_format(start_index, v, fmt, pos);
112761 }
112762
112763 diff --git a/kernel/trace/trace_seq.c b/kernel/trace/trace_seq.c
112764 index e694c9f..6775a38 100644
112765 --- a/kernel/trace/trace_seq.c
112766 +++ b/kernel/trace/trace_seq.c
112767 @@ -337,7 +337,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
112768 return 0;
112769 }
112770
112771 - seq_buf_path(&s->seq, path, "\n");
112772 + seq_buf_path(&s->seq, path, "\n\\");
112773
112774 if (unlikely(seq_buf_has_overflowed(&s->seq))) {
112775 s->seq.len = save_len;
112776 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
112777 index 8abf1ba..695c0c4 100644
112778 --- a/kernel/trace/trace_stack.c
112779 +++ b/kernel/trace/trace_stack.c
112780 @@ -82,7 +82,7 @@ check_stack(unsigned long ip, unsigned long *stack)
112781 return;
112782
112783 /* we do not handle interrupt stacks yet */
112784 - if (!object_is_on_stack(stack))
112785 + if (!object_starts_on_stack(stack))
112786 return;
112787
112788 /* Can't do this from NMI context (can cause deadlocks) */
112789 diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
112790 index 7d567a4..407a28d 100644
112791 --- a/kernel/trace/trace_syscalls.c
112792 +++ b/kernel/trace/trace_syscalls.c
112793 @@ -590,6 +590,8 @@ static int perf_sysenter_enable(struct trace_event_call *call)
112794 int num;
112795
112796 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112797 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112798 + return -EINVAL;
112799
112800 mutex_lock(&syscall_trace_lock);
112801 if (!sys_perf_refcount_enter)
112802 @@ -610,6 +612,8 @@ static void perf_sysenter_disable(struct trace_event_call *call)
112803 int num;
112804
112805 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112806 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112807 + return;
112808
112809 mutex_lock(&syscall_trace_lock);
112810 sys_perf_refcount_enter--;
112811 @@ -662,6 +666,8 @@ static int perf_sysexit_enable(struct trace_event_call *call)
112812 int num;
112813
112814 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112815 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112816 + return -EINVAL;
112817
112818 mutex_lock(&syscall_trace_lock);
112819 if (!sys_perf_refcount_exit)
112820 @@ -682,6 +688,8 @@ static void perf_sysexit_disable(struct trace_event_call *call)
112821 int num;
112822
112823 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112824 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112825 + return;
112826
112827 mutex_lock(&syscall_trace_lock);
112828 sys_perf_refcount_exit--;
112829 diff --git a/kernel/user.c b/kernel/user.c
112830 index b069ccb..c59fe26 100644
112831 --- a/kernel/user.c
112832 +++ b/kernel/user.c
112833 @@ -127,8 +127,8 @@ static struct user_struct *uid_hash_find(kuid_t uid, struct hlist_head *hashent)
112834 * IRQ state (as stored in flags) is restored and uidhash_lock released
112835 * upon function exit.
112836 */
112837 +static void free_user(struct user_struct *up, unsigned long flags) __releases(&uidhash_lock);
112838 static void free_user(struct user_struct *up, unsigned long flags)
112839 - __releases(&uidhash_lock)
112840 {
112841 uid_hash_remove(up);
112842 spin_unlock_irqrestore(&uidhash_lock, flags);
112843 diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
112844 index 88fefa6..d1e2bd7 100644
112845 --- a/kernel/user_namespace.c
112846 +++ b/kernel/user_namespace.c
112847 @@ -84,6 +84,21 @@ int create_user_ns(struct cred *new)
112848 !kgid_has_mapping(parent_ns, group))
112849 return -EPERM;
112850
112851 +#ifdef CONFIG_GRKERNSEC
112852 + /*
112853 + * This doesn't really inspire confidence:
112854 + * http://marc.info/?l=linux-kernel&m=135543612731939&w=2
112855 + * http://marc.info/?l=linux-kernel&m=135545831607095&w=2
112856 + * Increases kernel attack surface in areas developers
112857 + * previously cared little about ("low importance due
112858 + * to requiring "root" capability")
112859 + * To be removed when this code receives *proper* review
112860 + */
112861 + if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) ||
112862 + !capable(CAP_SETGID))
112863 + return -EPERM;
112864 +#endif
112865 +
112866 ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL);
112867 if (!ns)
112868 return -ENOMEM;
112869 @@ -981,7 +996,7 @@ static int userns_install(struct nsproxy *nsproxy, struct ns_common *ns)
112870 if (!thread_group_empty(current))
112871 return -EINVAL;
112872
112873 - if (current->fs->users != 1)
112874 + if (atomic_read(&current->fs->users) != 1)
112875 return -EINVAL;
112876
112877 if (!ns_capable(user_ns, CAP_SYS_ADMIN))
112878 diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
112879 index c8eac43..4b5f08f 100644
112880 --- a/kernel/utsname_sysctl.c
112881 +++ b/kernel/utsname_sysctl.c
112882 @@ -47,7 +47,7 @@ static void put_uts(struct ctl_table *table, int write, void *which)
112883 static int proc_do_uts_string(struct ctl_table *table, int write,
112884 void __user *buffer, size_t *lenp, loff_t *ppos)
112885 {
112886 - struct ctl_table uts_table;
112887 + ctl_table_no_const uts_table;
112888 int r;
112889 memcpy(&uts_table, table, sizeof(uts_table));
112890 uts_table.data = get_uts(table, write);
112891 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
112892 index 64ed1c3..25fc969 100644
112893 --- a/kernel/watchdog.c
112894 +++ b/kernel/watchdog.c
112895 @@ -638,7 +638,7 @@ static int watchdog_nmi_enable(unsigned int cpu) { return 0; }
112896 static void watchdog_nmi_disable(unsigned int cpu) { return; }
112897 #endif /* CONFIG_HARDLOCKUP_DETECTOR */
112898
112899 -static struct smp_hotplug_thread watchdog_threads = {
112900 +static struct smp_hotplug_thread watchdog_threads __read_only = {
112901 .store = &softlockup_watchdog,
112902 .thread_should_run = watchdog_should_run,
112903 .thread_fn = watchdog,
112904 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
112905 index bcb14ca..4ed936b 100644
112906 --- a/kernel/workqueue.c
112907 +++ b/kernel/workqueue.c
112908 @@ -1856,9 +1856,8 @@ static void pool_mayday_timeout(unsigned long __pool)
112909 * multiple times. Does GFP_KERNEL allocations. Called only from
112910 * manager.
112911 */
112912 +static void maybe_create_worker(struct worker_pool *pool) __must_hold(&pool->lock);
112913 static void maybe_create_worker(struct worker_pool *pool)
112914 -__releases(&pool->lock)
112915 -__acquires(&pool->lock)
112916 {
112917 restart:
112918 spin_unlock_irq(&pool->lock);
112919 @@ -1948,9 +1947,8 @@ static bool manage_workers(struct worker *worker)
112920 * CONTEXT:
112921 * spin_lock_irq(pool->lock) which is released and regrabbed.
112922 */
112923 +static void process_one_work(struct worker *worker, struct work_struct *work) __must_hold(&pool->lock);
112924 static void process_one_work(struct worker *worker, struct work_struct *work)
112925 -__releases(&pool->lock)
112926 -__acquires(&pool->lock)
112927 {
112928 struct pool_workqueue *pwq = get_work_pwq(work);
112929 struct worker_pool *pool = worker->pool;
112930 @@ -4450,7 +4448,7 @@ static void rebind_workers(struct worker_pool *pool)
112931 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
112932 worker_flags |= WORKER_REBOUND;
112933 worker_flags &= ~WORKER_UNBOUND;
112934 - ACCESS_ONCE(worker->flags) = worker_flags;
112935 + ACCESS_ONCE_RW(worker->flags) = worker_flags;
112936 }
112937
112938 spin_unlock_irq(&pool->lock);
112939 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
112940 index 1d1521c..bd1af61 100644
112941 --- a/lib/Kconfig.debug
112942 +++ b/lib/Kconfig.debug
112943 @@ -243,6 +243,7 @@ config PAGE_OWNER
112944 bool "Track page owner"
112945 depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
112946 select DEBUG_FS
112947 + depends on !GRKERNSEC_KMEM
112948 select STACKTRACE
112949 select PAGE_EXTENSION
112950 help
112951 @@ -257,6 +258,7 @@ config PAGE_OWNER
112952
112953 config DEBUG_FS
112954 bool "Debug Filesystem"
112955 + depends on !GRKERNSEC_KMEM
112956 help
112957 debugfs is a virtual file system that kernel developers use to put
112958 debugging files into. Enable this option to be able to read and
112959 @@ -489,6 +491,7 @@ config DEBUG_KMEMLEAK
112960 bool "Kernel memory leak detector"
112961 depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
112962 select DEBUG_FS
112963 + depends on !GRKERNSEC_KMEM
112964 select STACKTRACE if STACKTRACE_SUPPORT
112965 select KALLSYMS
112966 select CRC32
112967 @@ -936,7 +939,7 @@ config DEBUG_MUTEXES
112968
112969 config DEBUG_WW_MUTEX_SLOWPATH
112970 bool "Wait/wound mutex debugging: Slowpath testing"
112971 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112972 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112973 select DEBUG_LOCK_ALLOC
112974 select DEBUG_SPINLOCK
112975 select DEBUG_MUTEXES
112976 @@ -953,7 +956,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
112977
112978 config DEBUG_LOCK_ALLOC
112979 bool "Lock debugging: detect incorrect freeing of live locks"
112980 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112981 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112982 select DEBUG_SPINLOCK
112983 select DEBUG_MUTEXES
112984 select LOCKDEP
112985 @@ -967,7 +970,7 @@ config DEBUG_LOCK_ALLOC
112986
112987 config PROVE_LOCKING
112988 bool "Lock debugging: prove locking correctness"
112989 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112990 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112991 select LOCKDEP
112992 select DEBUG_SPINLOCK
112993 select DEBUG_MUTEXES
112994 @@ -1018,7 +1021,7 @@ config LOCKDEP
112995
112996 config LOCK_STAT
112997 bool "Lock usage statistics"
112998 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112999 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
113000 select LOCKDEP
113001 select DEBUG_SPINLOCK
113002 select DEBUG_MUTEXES
113003 @@ -1403,6 +1406,7 @@ config NOTIFIER_ERROR_INJECTION
113004 tristate "Notifier error injection"
113005 depends on DEBUG_KERNEL
113006 select DEBUG_FS
113007 + depends on !GRKERNSEC_KMEM
113008 help
113009 This option provides the ability to inject artificial errors to
113010 specified notifier chain callbacks. It is useful to test the error
113011 @@ -1515,6 +1519,7 @@ config FAIL_IO_TIMEOUT
113012 config FAIL_MMC_REQUEST
113013 bool "Fault-injection capability for MMC IO"
113014 select DEBUG_FS
113015 + depends on !GRKERNSEC_KMEM
113016 depends on FAULT_INJECTION && MMC
113017 help
113018 Provide fault-injection capability for MMC IO.
113019 @@ -1526,6 +1531,7 @@ config FAIL_MMC_REQUEST
113020 config FAIL_FUTEX
113021 bool "Fault-injection capability for futexes"
113022 select DEBUG_FS
113023 + depends on !GRKERNSEC_KMEM
113024 depends on FAULT_INJECTION && FUTEX
113025 help
113026 Provide fault-injection capability for futexes.
113027 @@ -1551,6 +1557,7 @@ config LATENCYTOP
113028 depends on DEBUG_KERNEL
113029 depends on STACKTRACE_SUPPORT
113030 depends on PROC_FS
113031 + depends on !GRKERNSEC_HIDESYM
113032 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
113033 select KALLSYMS
113034 select KALLSYMS_ALL
113035 @@ -1567,7 +1574,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
113036 config DEBUG_STRICT_USER_COPY_CHECKS
113037 bool "Strict user copy size checks"
113038 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
113039 - depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
113040 + depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
113041 help
113042 Enabling this option turns a certain set of sanity checks for user
113043 copy operations into compile time failures.
113044 @@ -1698,7 +1705,7 @@ endmenu # runtime tests
113045
113046 config PROVIDE_OHCI1394_DMA_INIT
113047 bool "Remote debugging over FireWire early on boot"
113048 - depends on PCI && X86
113049 + depends on PCI && X86 && !GRKERNSEC
113050 help
113051 If you want to debug problems which hang or crash the kernel early
113052 on boot and the crashing machine has a FireWire port, you can use
113053 diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
113054 index 39f24d6..cf80221 100644
113055 --- a/lib/Kconfig.kasan
113056 +++ b/lib/Kconfig.kasan
113057 @@ -5,7 +5,7 @@ if HAVE_ARCH_KASAN
113058
113059 config KASAN
113060 bool "KASan: runtime memory debugger"
113061 - depends on SLUB_DEBUG
113062 + depends on SLUB_DEBUG && !GRKERNSEC_KSTACKOVERFLOW
113063 select CONSTRUCTORS
113064 help
113065 Enables kernel address sanitizer - runtime memory debugger,
113066 diff --git a/lib/Makefile b/lib/Makefile
113067 index 13a7c6a..c0d23a7 100644
113068 --- a/lib/Makefile
113069 +++ b/lib/Makefile
113070 @@ -64,7 +64,7 @@ obj-$(CONFIG_BTREE) += btree.o
113071 obj-$(CONFIG_INTERVAL_TREE) += interval_tree.o
113072 obj-$(CONFIG_ASSOCIATIVE_ARRAY) += assoc_array.o
113073 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
113074 -obj-$(CONFIG_DEBUG_LIST) += list_debug.o
113075 +obj-y += list_debug.o
113076 obj-$(CONFIG_DEBUG_OBJECTS) += debugobjects.o
113077
113078 ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
113079 diff --git a/lib/bitmap.c b/lib/bitmap.c
113080 index 8148143..d132f7e9 100644
113081 --- a/lib/bitmap.c
113082 +++ b/lib/bitmap.c
113083 @@ -361,7 +361,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
113084 {
113085 int c, old_c, totaldigits, ndigits, nchunks, nbits;
113086 u32 chunk;
113087 - const char __user __force *ubuf = (const char __user __force *)buf;
113088 + const char __user *ubuf = (const char __force_user *)buf;
113089
113090 bitmap_zero(maskp, nmaskbits);
113091
113092 @@ -447,7 +447,7 @@ int bitmap_parse_user(const char __user *ubuf,
113093 {
113094 if (!access_ok(VERIFY_READ, ubuf, ulen))
113095 return -EFAULT;
113096 - return __bitmap_parse((const char __force *)ubuf,
113097 + return __bitmap_parse((const char __force_kernel *)ubuf,
113098 ulen, 1, maskp, nmaskbits);
113099
113100 }
113101 @@ -507,7 +507,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
113102 {
113103 unsigned a, b;
113104 int c, old_c, totaldigits, ndigits;
113105 - const char __user __force *ubuf = (const char __user __force *)buf;
113106 + const char __user *ubuf = (const char __force_user *)buf;
113107 int at_start, in_range;
113108
113109 totaldigits = c = 0;
113110 @@ -611,7 +611,7 @@ int bitmap_parselist_user(const char __user *ubuf,
113111 {
113112 if (!access_ok(VERIFY_READ, ubuf, ulen))
113113 return -EFAULT;
113114 - return __bitmap_parselist((const char __force *)ubuf,
113115 + return __bitmap_parselist((const char __force_kernel *)ubuf,
113116 ulen, 1, maskp, nmaskbits);
113117 }
113118 EXPORT_SYMBOL(bitmap_parselist_user);
113119 diff --git a/lib/bug.c b/lib/bug.c
113120 index cff145f..724a0b8 100644
113121 --- a/lib/bug.c
113122 +++ b/lib/bug.c
113123 @@ -148,6 +148,8 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
113124 return BUG_TRAP_TYPE_NONE;
113125
113126 bug = find_bug(bugaddr);
113127 + if (!bug)
113128 + return BUG_TRAP_TYPE_NONE;
113129
113130 file = NULL;
113131 line = 0;
113132 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
113133 index 547f7f9..a6d4ba0 100644
113134 --- a/lib/debugobjects.c
113135 +++ b/lib/debugobjects.c
113136 @@ -289,7 +289,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
113137 if (limit > 4)
113138 return;
113139
113140 - is_on_stack = object_is_on_stack(addr);
113141 + is_on_stack = object_starts_on_stack(addr);
113142 if (is_on_stack == onstack)
113143 return;
113144
113145 diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
113146 index 0234361..41a411c 100644
113147 --- a/lib/decompress_bunzip2.c
113148 +++ b/lib/decompress_bunzip2.c
113149 @@ -665,7 +665,8 @@ static int INIT start_bunzip(struct bunzip_data **bdp, void *inbuf, long len,
113150
113151 /* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
113152 uncompressed data. Allocate intermediate buffer for block. */
113153 - bd->dbufSize = 100000*(i-BZh0);
113154 + i -= BZh0;
113155 + bd->dbufSize = 100000 * i;
113156
113157 bd->dbuf = large_malloc(bd->dbufSize * sizeof(int));
113158 if (!bd->dbuf)
113159 diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
113160 index ed7a1fd..44a1a62 100644
113161 --- a/lib/decompress_unlzma.c
113162 +++ b/lib/decompress_unlzma.c
113163 @@ -39,10 +39,10 @@
113164
113165 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
113166
113167 -static long long INIT read_int(unsigned char *ptr, int size)
113168 +static unsigned long long INIT read_int(unsigned char *ptr, int size)
113169 {
113170 int i;
113171 - long long ret = 0;
113172 + unsigned long long ret = 0;
113173
113174 for (i = 0; i < size; i++)
113175 ret = (ret << 8) | ptr[size-i-1];
113176 diff --git a/lib/div64.c b/lib/div64.c
113177 index 19ea7ed..20cac21 100644
113178 --- a/lib/div64.c
113179 +++ b/lib/div64.c
113180 @@ -59,7 +59,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base)
113181 EXPORT_SYMBOL(__div64_32);
113182
113183 #ifndef div_s64_rem
113184 -s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
113185 +s64 __intentional_overflow(-1) div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
113186 {
113187 u64 quotient;
113188
113189 @@ -130,7 +130,7 @@ EXPORT_SYMBOL(div64_u64_rem);
113190 * 'http://www.hackersdelight.org/hdcodetxt/divDouble.c.txt'
113191 */
113192 #ifndef div64_u64
113193 -u64 div64_u64(u64 dividend, u64 divisor)
113194 +u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
113195 {
113196 u32 high = divisor >> 32;
113197 u64 quot;
113198 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
113199 index dace71f..13da37b 100644
113200 --- a/lib/dma-debug.c
113201 +++ b/lib/dma-debug.c
113202 @@ -982,7 +982,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
113203
113204 void dma_debug_add_bus(struct bus_type *bus)
113205 {
113206 - struct notifier_block *nb;
113207 + notifier_block_no_const *nb;
113208
113209 if (dma_debug_disabled())
113210 return;
113211 @@ -1164,7 +1164,7 @@ static void check_unmap(struct dma_debug_entry *ref)
113212
113213 static void check_for_stack(struct device *dev, void *addr)
113214 {
113215 - if (object_is_on_stack(addr))
113216 + if (object_starts_on_stack(addr))
113217 err_printk(dev, NULL, "DMA-API: device driver maps memory from "
113218 "stack [addr=%p]\n", addr);
113219 }
113220 diff --git a/lib/inflate.c b/lib/inflate.c
113221 index 013a761..c28f3fc 100644
113222 --- a/lib/inflate.c
113223 +++ b/lib/inflate.c
113224 @@ -269,7 +269,7 @@ static void free(void *where)
113225 malloc_ptr = free_mem_ptr;
113226 }
113227 #else
113228 -#define malloc(a) kmalloc(a, GFP_KERNEL)
113229 +#define malloc(a) kmalloc((a), GFP_KERNEL)
113230 #define free(a) kfree(a)
113231 #endif
113232
113233 diff --git a/lib/ioremap.c b/lib/ioremap.c
113234 index 86c8911..f5bfc34 100644
113235 --- a/lib/ioremap.c
113236 +++ b/lib/ioremap.c
113237 @@ -75,7 +75,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
113238 unsigned long next;
113239
113240 phys_addr -= addr;
113241 - pmd = pmd_alloc(&init_mm, pud, addr);
113242 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
113243 if (!pmd)
113244 return -ENOMEM;
113245 do {
113246 @@ -101,7 +101,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
113247 unsigned long next;
113248
113249 phys_addr -= addr;
113250 - pud = pud_alloc(&init_mm, pgd, addr);
113251 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
113252 if (!pud)
113253 return -ENOMEM;
113254 do {
113255 diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
113256 index bd2bea9..6b3c95e 100644
113257 --- a/lib/is_single_threaded.c
113258 +++ b/lib/is_single_threaded.c
113259 @@ -22,6 +22,9 @@ bool current_is_single_threaded(void)
113260 struct task_struct *p, *t;
113261 bool ret;
113262
113263 + if (!mm)
113264 + return true;
113265 +
113266 if (atomic_read(&task->signal->live) != 1)
113267 return false;
113268
113269 diff --git a/lib/kobject.c b/lib/kobject.c
113270 index 3e3a5c3..4a12109 100644
113271 --- a/lib/kobject.c
113272 +++ b/lib/kobject.c
113273 @@ -935,9 +935,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
113274
113275
113276 static DEFINE_SPINLOCK(kobj_ns_type_lock);
113277 -static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES];
113278 +static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES] __read_only;
113279
113280 -int kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
113281 +int __init kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
113282 {
113283 enum kobj_ns_type type = ops->type;
113284 int error;
113285 diff --git a/lib/list_debug.c b/lib/list_debug.c
113286 index c24c2f7..f0296f4 100644
113287 --- a/lib/list_debug.c
113288 +++ b/lib/list_debug.c
113289 @@ -11,7 +11,9 @@
113290 #include <linux/bug.h>
113291 #include <linux/kernel.h>
113292 #include <linux/rculist.h>
113293 +#include <linux/mm.h>
113294
113295 +#ifdef CONFIG_DEBUG_LIST
113296 /*
113297 * Insert a new entry between two known consecutive entries.
113298 *
113299 @@ -19,21 +21,40 @@
113300 * the prev/next entries already!
113301 */
113302
113303 +static bool __list_add_debug(struct list_head *new,
113304 + struct list_head *prev,
113305 + struct list_head *next)
113306 +{
113307 + if (unlikely(next->prev != prev)) {
113308 + printk(KERN_ERR "list_add corruption. next->prev should be "
113309 + "prev (%p), but was %p. (next=%p).\n",
113310 + prev, next->prev, next);
113311 + BUG();
113312 + return false;
113313 + }
113314 + if (unlikely(prev->next != next)) {
113315 + printk(KERN_ERR "list_add corruption. prev->next should be "
113316 + "next (%p), but was %p. (prev=%p).\n",
113317 + next, prev->next, prev);
113318 + BUG();
113319 + return false;
113320 + }
113321 + if (unlikely(new == prev || new == next)) {
113322 + printk(KERN_ERR "list_add double add: new=%p, prev=%p, next=%p.\n",
113323 + new, prev, next);
113324 + BUG();
113325 + return false;
113326 + }
113327 + return true;
113328 +}
113329 +
113330 void __list_add(struct list_head *new,
113331 - struct list_head *prev,
113332 - struct list_head *next)
113333 + struct list_head *prev,
113334 + struct list_head *next)
113335 {
113336 - WARN(next->prev != prev,
113337 - "list_add corruption. next->prev should be "
113338 - "prev (%p), but was %p. (next=%p).\n",
113339 - prev, next->prev, next);
113340 - WARN(prev->next != next,
113341 - "list_add corruption. prev->next should be "
113342 - "next (%p), but was %p. (prev=%p).\n",
113343 - next, prev->next, prev);
113344 - WARN(new == prev || new == next,
113345 - "list_add double add: new=%p, prev=%p, next=%p.\n",
113346 - new, prev, next);
113347 + if (!__list_add_debug(new, prev, next))
113348 + return;
113349 +
113350 next->prev = new;
113351 new->next = next;
113352 new->prev = prev;
113353 @@ -41,28 +62,46 @@ void __list_add(struct list_head *new,
113354 }
113355 EXPORT_SYMBOL(__list_add);
113356
113357 -void __list_del_entry(struct list_head *entry)
113358 +static bool __list_del_entry_debug(struct list_head *entry)
113359 {
113360 struct list_head *prev, *next;
113361
113362 prev = entry->prev;
113363 next = entry->next;
113364
113365 - if (WARN(next == LIST_POISON1,
113366 - "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
113367 - entry, LIST_POISON1) ||
113368 - WARN(prev == LIST_POISON2,
113369 - "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
113370 - entry, LIST_POISON2) ||
113371 - WARN(prev->next != entry,
113372 - "list_del corruption. prev->next should be %p, "
113373 - "but was %p\n", entry, prev->next) ||
113374 - WARN(next->prev != entry,
113375 - "list_del corruption. next->prev should be %p, "
113376 - "but was %p\n", entry, next->prev))
113377 + if (unlikely(next == LIST_POISON1)) {
113378 + printk(KERN_ERR "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
113379 + entry, LIST_POISON1);
113380 + BUG();
113381 + return false;
113382 + }
113383 + if (unlikely(prev == LIST_POISON2)) {
113384 + printk(KERN_ERR "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
113385 + entry, LIST_POISON2);
113386 + BUG();
113387 + return false;
113388 + }
113389 + if (unlikely(entry->prev->next != entry)) {
113390 + printk(KERN_ERR "list_del corruption. prev->next should be %p, "
113391 + "but was %p\n", entry, prev->next);
113392 + BUG();
113393 + return false;
113394 + }
113395 + if (unlikely(entry->next->prev != entry)) {
113396 + printk(KERN_ERR "list_del corruption. next->prev should be %p, "
113397 + "but was %p\n", entry, next->prev);
113398 + BUG();
113399 + return false;
113400 + }
113401 + return true;
113402 +}
113403 +
113404 +void __list_del_entry(struct list_head *entry)
113405 +{
113406 + if (!__list_del_entry_debug(entry))
113407 return;
113408
113409 - __list_del(prev, next);
113410 + __list_del(entry->prev, entry->next);
113411 }
113412 EXPORT_SYMBOL(__list_del_entry);
113413
113414 @@ -86,15 +125,85 @@ EXPORT_SYMBOL(list_del);
113415 void __list_add_rcu(struct list_head *new,
113416 struct list_head *prev, struct list_head *next)
113417 {
113418 - WARN(next->prev != prev,
113419 - "list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n",
113420 - prev, next->prev, next);
113421 - WARN(prev->next != next,
113422 - "list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n",
113423 - next, prev->next, prev);
113424 + if (!__list_add_debug(new, prev, next))
113425 + return;
113426 +
113427 new->next = next;
113428 new->prev = prev;
113429 rcu_assign_pointer(list_next_rcu(prev), new);
113430 next->prev = new;
113431 }
113432 EXPORT_SYMBOL(__list_add_rcu);
113433 +#endif
113434 +
113435 +void __pax_list_add(struct list_head *new, struct list_head *prev, struct list_head *next)
113436 +{
113437 +#ifdef CONFIG_DEBUG_LIST
113438 + if (!__list_add_debug(new, prev, next))
113439 + return;
113440 +#endif
113441 +
113442 + pax_open_kernel();
113443 + next->prev = new;
113444 + new->next = next;
113445 + new->prev = prev;
113446 + prev->next = new;
113447 + pax_close_kernel();
113448 +}
113449 +EXPORT_SYMBOL(__pax_list_add);
113450 +
113451 +void pax_list_del(struct list_head *entry)
113452 +{
113453 +#ifdef CONFIG_DEBUG_LIST
113454 + if (!__list_del_entry_debug(entry))
113455 + return;
113456 +#endif
113457 +
113458 + pax_open_kernel();
113459 + __list_del(entry->prev, entry->next);
113460 + entry->next = LIST_POISON1;
113461 + entry->prev = LIST_POISON2;
113462 + pax_close_kernel();
113463 +}
113464 +EXPORT_SYMBOL(pax_list_del);
113465 +
113466 +void pax_list_del_init(struct list_head *entry)
113467 +{
113468 + pax_open_kernel();
113469 + __list_del(entry->prev, entry->next);
113470 + INIT_LIST_HEAD(entry);
113471 + pax_close_kernel();
113472 +}
113473 +EXPORT_SYMBOL(pax_list_del_init);
113474 +
113475 +void __pax_list_add_rcu(struct list_head *new,
113476 + struct list_head *prev, struct list_head *next)
113477 +{
113478 +#ifdef CONFIG_DEBUG_LIST
113479 + if (!__list_add_debug(new, prev, next))
113480 + return;
113481 +#endif
113482 +
113483 + pax_open_kernel();
113484 + new->next = next;
113485 + new->prev = prev;
113486 + rcu_assign_pointer(list_next_rcu(prev), new);
113487 + next->prev = new;
113488 + pax_close_kernel();
113489 +}
113490 +EXPORT_SYMBOL(__pax_list_add_rcu);
113491 +
113492 +void pax_list_del_rcu(struct list_head *entry)
113493 +{
113494 +#ifdef CONFIG_DEBUG_LIST
113495 + if (!__list_del_entry_debug(entry))
113496 + return;
113497 +#endif
113498 +
113499 + pax_open_kernel();
113500 + __list_del(entry->prev, entry->next);
113501 + entry->next = LIST_POISON1;
113502 + entry->prev = LIST_POISON2;
113503 + pax_close_kernel();
113504 +}
113505 +EXPORT_SYMBOL(pax_list_del_rcu);
113506 diff --git a/lib/lockref.c b/lib/lockref.c
113507 index 5a92189..d77978d 100644
113508 --- a/lib/lockref.c
113509 +++ b/lib/lockref.c
113510 @@ -40,13 +40,13 @@
113511 void lockref_get(struct lockref *lockref)
113512 {
113513 CMPXCHG_LOOP(
113514 - new.count++;
113515 + __lockref_inc(&new);
113516 ,
113517 return;
113518 );
113519
113520 spin_lock(&lockref->lock);
113521 - lockref->count++;
113522 + __lockref_inc(lockref);
113523 spin_unlock(&lockref->lock);
113524 }
113525 EXPORT_SYMBOL(lockref_get);
113526 @@ -61,8 +61,8 @@ int lockref_get_not_zero(struct lockref *lockref)
113527 int retval;
113528
113529 CMPXCHG_LOOP(
113530 - new.count++;
113531 - if (old.count <= 0)
113532 + __lockref_inc(&new);
113533 + if (__lockref_read(&old) <= 0)
113534 return 0;
113535 ,
113536 return 1;
113537 @@ -70,8 +70,8 @@ int lockref_get_not_zero(struct lockref *lockref)
113538
113539 spin_lock(&lockref->lock);
113540 retval = 0;
113541 - if (lockref->count > 0) {
113542 - lockref->count++;
113543 + if (__lockref_read(lockref) > 0) {
113544 + __lockref_inc(lockref);
113545 retval = 1;
113546 }
113547 spin_unlock(&lockref->lock);
113548 @@ -88,17 +88,17 @@ EXPORT_SYMBOL(lockref_get_not_zero);
113549 int lockref_get_or_lock(struct lockref *lockref)
113550 {
113551 CMPXCHG_LOOP(
113552 - new.count++;
113553 - if (old.count <= 0)
113554 + __lockref_inc(&new);
113555 + if (__lockref_read(&old) <= 0)
113556 break;
113557 ,
113558 return 1;
113559 );
113560
113561 spin_lock(&lockref->lock);
113562 - if (lockref->count <= 0)
113563 + if (__lockref_read(lockref) <= 0)
113564 return 0;
113565 - lockref->count++;
113566 + __lockref_inc(lockref);
113567 spin_unlock(&lockref->lock);
113568 return 1;
113569 }
113570 @@ -114,11 +114,11 @@ EXPORT_SYMBOL(lockref_get_or_lock);
113571 int lockref_put_return(struct lockref *lockref)
113572 {
113573 CMPXCHG_LOOP(
113574 - new.count--;
113575 - if (old.count <= 0)
113576 + __lockref_dec(&new);
113577 + if (__lockref_read(&old) <= 0)
113578 return -1;
113579 ,
113580 - return new.count;
113581 + return __lockref_read(&new);
113582 );
113583 return -1;
113584 }
113585 @@ -132,17 +132,17 @@ EXPORT_SYMBOL(lockref_put_return);
113586 int lockref_put_or_lock(struct lockref *lockref)
113587 {
113588 CMPXCHG_LOOP(
113589 - new.count--;
113590 - if (old.count <= 1)
113591 + __lockref_dec(&new);
113592 + if (__lockref_read(&old) <= 1)
113593 break;
113594 ,
113595 return 1;
113596 );
113597
113598 spin_lock(&lockref->lock);
113599 - if (lockref->count <= 1)
113600 + if (__lockref_read(lockref) <= 1)
113601 return 0;
113602 - lockref->count--;
113603 + __lockref_dec(lockref);
113604 spin_unlock(&lockref->lock);
113605 return 1;
113606 }
113607 @@ -155,7 +155,7 @@ EXPORT_SYMBOL(lockref_put_or_lock);
113608 void lockref_mark_dead(struct lockref *lockref)
113609 {
113610 assert_spin_locked(&lockref->lock);
113611 - lockref->count = -128;
113612 + __lockref_set(lockref, -128);
113613 }
113614 EXPORT_SYMBOL(lockref_mark_dead);
113615
113616 @@ -169,8 +169,8 @@ int lockref_get_not_dead(struct lockref *lockref)
113617 int retval;
113618
113619 CMPXCHG_LOOP(
113620 - new.count++;
113621 - if (old.count < 0)
113622 + __lockref_inc(&new);
113623 + if (__lockref_read(&old) < 0)
113624 return 0;
113625 ,
113626 return 1;
113627 @@ -178,8 +178,8 @@ int lockref_get_not_dead(struct lockref *lockref)
113628
113629 spin_lock(&lockref->lock);
113630 retval = 0;
113631 - if (lockref->count >= 0) {
113632 - lockref->count++;
113633 + if (__lockref_read(lockref) >= 0) {
113634 + __lockref_inc(lockref);
113635 retval = 1;
113636 }
113637 spin_unlock(&lockref->lock);
113638 diff --git a/lib/nlattr.c b/lib/nlattr.c
113639 index f5907d2..36072be 100644
113640 --- a/lib/nlattr.c
113641 +++ b/lib/nlattr.c
113642 @@ -278,6 +278,8 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
113643 {
113644 int minlen = min_t(int, count, nla_len(src));
113645
113646 + BUG_ON(minlen < 0);
113647 +
113648 memcpy(dest, nla_data(src), minlen);
113649 if (count > minlen)
113650 memset(dest + minlen, 0, count - minlen);
113651 diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
113652 index 6111bcb..02e816b 100644
113653 --- a/lib/percpu-refcount.c
113654 +++ b/lib/percpu-refcount.c
113655 @@ -31,7 +31,7 @@
113656 * atomic_long_t can't hit 0 before we've added up all the percpu refs.
113657 */
113658
113659 -#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 1))
113660 +#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 2))
113661
113662 static DECLARE_WAIT_QUEUE_HEAD(percpu_ref_switch_waitq);
113663
113664 diff --git a/lib/radix-tree.c b/lib/radix-tree.c
113665 index f9ebe1c..e985666 100644
113666 --- a/lib/radix-tree.c
113667 +++ b/lib/radix-tree.c
113668 @@ -68,7 +68,7 @@ struct radix_tree_preload {
113669 /* nodes->private_data points to next preallocated node */
113670 struct radix_tree_node *nodes;
113671 };
113672 -static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
113673 +static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads);
113674
113675 static inline void *ptr_to_indirect(void *ptr)
113676 {
113677 diff --git a/lib/random32.c b/lib/random32.c
113678 index 0bee183..526f12f 100644
113679 --- a/lib/random32.c
113680 +++ b/lib/random32.c
113681 @@ -47,7 +47,7 @@ static inline void prandom_state_selftest(void)
113682 }
113683 #endif
113684
113685 -static DEFINE_PER_CPU(struct rnd_state, net_rand_state);
113686 +static DEFINE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy;
113687
113688 /**
113689 * prandom_u32_state - seeded pseudo-random number generator.
113690 diff --git a/lib/rbtree.c b/lib/rbtree.c
113691 index 1356454..70ce6c6 100644
113692 --- a/lib/rbtree.c
113693 +++ b/lib/rbtree.c
113694 @@ -412,7 +412,9 @@ static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
113695 static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
113696
113697 static const struct rb_augment_callbacks dummy_callbacks = {
113698 - dummy_propagate, dummy_copy, dummy_rotate
113699 + .propagate = dummy_propagate,
113700 + .copy = dummy_copy,
113701 + .rotate = dummy_rotate
113702 };
113703
113704 void rb_insert_color(struct rb_node *node, struct rb_root *root)
113705 diff --git a/lib/rhashtable.c b/lib/rhashtable.c
113706 index a54ff89..b4d4da9 100644
113707 --- a/lib/rhashtable.c
113708 +++ b/lib/rhashtable.c
113709 @@ -542,8 +542,8 @@ EXPORT_SYMBOL_GPL(rhashtable_walk_exit);
113710 * will rewind back to the beginning and you may use it immediately
113711 * by calling rhashtable_walk_next.
113712 */
113713 +int rhashtable_walk_start(struct rhashtable_iter *iter) __acquires(RCU);
113714 int rhashtable_walk_start(struct rhashtable_iter *iter)
113715 - __acquires(RCU)
113716 {
113717 struct rhashtable *ht = iter->ht;
113718
113719 @@ -629,8 +629,8 @@ EXPORT_SYMBOL_GPL(rhashtable_walk_next);
113720 *
113721 * Finish a hash table walk.
113722 */
113723 +void rhashtable_walk_stop(struct rhashtable_iter *iter) __releases(RCU);
113724 void rhashtable_walk_stop(struct rhashtable_iter *iter)
113725 - __releases(RCU)
113726 {
113727 struct rhashtable *ht;
113728 struct bucket_table *tbl = iter->walker->tbl;
113729 diff --git a/lib/show_mem.c b/lib/show_mem.c
113730 index 1feed6a..4ede1e9 100644
113731 --- a/lib/show_mem.c
113732 +++ b/lib/show_mem.c
113733 @@ -47,6 +47,6 @@ void show_mem(unsigned int filter)
113734 quicklist_total_size());
113735 #endif
113736 #ifdef CONFIG_MEMORY_FAILURE
113737 - printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
113738 + printk("%lu pages hwpoisoned\n", atomic_long_read_unchecked(&num_poisoned_pages));
113739 #endif
113740 }
113741 diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
113742 index e0af6ff..fcc9f15 100644
113743 --- a/lib/strncpy_from_user.c
113744 +++ b/lib/strncpy_from_user.c
113745 @@ -22,7 +22,7 @@
113746 */
113747 static inline long do_strncpy_from_user(char *dst, const char __user *src, long count, unsigned long max)
113748 {
113749 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113750 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113751 long res = 0;
113752
113753 /*
113754 diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c
113755 index 3a5f2b3..102f1ff 100644
113756 --- a/lib/strnlen_user.c
113757 +++ b/lib/strnlen_user.c
113758 @@ -26,7 +26,7 @@
113759 */
113760 static inline long do_strnlen_user(const char __user *src, unsigned long count, unsigned long max)
113761 {
113762 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113763 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113764 long align, res = 0;
113765 unsigned long c;
113766
113767 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
113768 index 76f29ec..1a5316f 100644
113769 --- a/lib/swiotlb.c
113770 +++ b/lib/swiotlb.c
113771 @@ -690,7 +690,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
113772
113773 void
113774 swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
113775 - dma_addr_t dev_addr)
113776 + dma_addr_t dev_addr, struct dma_attrs *attrs)
113777 {
113778 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
113779
113780 diff --git a/lib/usercopy.c b/lib/usercopy.c
113781 index 4f5b1dd..7cab418 100644
113782 --- a/lib/usercopy.c
113783 +++ b/lib/usercopy.c
113784 @@ -7,3 +7,9 @@ void copy_from_user_overflow(void)
113785 WARN(1, "Buffer overflow detected!\n");
113786 }
113787 EXPORT_SYMBOL(copy_from_user_overflow);
113788 +
113789 +void copy_to_user_overflow(void)
113790 +{
113791 + WARN(1, "Buffer overflow detected!\n");
113792 +}
113793 +EXPORT_SYMBOL(copy_to_user_overflow);
113794 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
113795 index 95cd63b..e5f0eee 100644
113796 --- a/lib/vsprintf.c
113797 +++ b/lib/vsprintf.c
113798 @@ -16,6 +16,9 @@
113799 * - scnprintf and vscnprintf
113800 */
113801
113802 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113803 +#define __INCLUDED_BY_HIDESYM 1
113804 +#endif
113805 #include <stdarg.h>
113806 #include <linux/clk.h>
113807 #include <linux/clk-provider.h>
113808 @@ -629,7 +632,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
113809 #ifdef CONFIG_KALLSYMS
113810 if (*fmt == 'B')
113811 sprint_backtrace(sym, value);
113812 - else if (*fmt != 'f' && *fmt != 's')
113813 + else if (*fmt != 'f' && *fmt != 's' && *fmt != 'X')
113814 sprint_symbol(sym, value);
113815 else
113816 sprint_symbol_no_offset(sym, value);
113817 @@ -1361,7 +1364,11 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,
113818 }
113819 }
113820
113821 -int kptr_restrict __read_mostly;
113822 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113823 +int kptr_restrict __read_only = 2;
113824 +#else
113825 +int kptr_restrict __read_only;
113826 +#endif
113827
113828 /*
113829 * Show a '%p' thing. A kernel extension is that the '%p' is followed
113830 @@ -1372,8 +1379,10 @@ int kptr_restrict __read_mostly;
113831 *
113832 * - 'F' For symbolic function descriptor pointers with offset
113833 * - 'f' For simple symbolic function names without offset
113834 + * - 'X' For simple symbolic function names without offset approved for use with GRKERNSEC_HIDESYM
113835 * - 'S' For symbolic direct pointers with offset
113836 * - 's' For symbolic direct pointers without offset
113837 + * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM
113838 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
113839 * - 'B' For backtraced symbolic direct pointers with offset
113840 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
113841 @@ -1461,12 +1470,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113842
113843 if (!ptr && *fmt != 'K') {
113844 /*
113845 - * Print (null) with the same width as a pointer so it makes
113846 + * Print (nil) with the same width as a pointer so it makes
113847 * tabular output look nice.
113848 */
113849 if (spec.field_width == -1)
113850 spec.field_width = default_width;
113851 - return string(buf, end, "(null)", spec);
113852 + return string(buf, end, "(nil)", spec);
113853 }
113854
113855 switch (*fmt) {
113856 @@ -1476,6 +1485,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113857 /* Fallthrough */
113858 case 'S':
113859 case 's':
113860 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113861 + break;
113862 +#else
113863 + return symbol_string(buf, end, ptr, spec, fmt);
113864 +#endif
113865 + case 'X':
113866 + ptr = dereference_function_descriptor(ptr);
113867 + case 'A':
113868 case 'B':
113869 return symbol_string(buf, end, ptr, spec, fmt);
113870 case 'R':
113871 @@ -1540,6 +1557,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113872 va_end(va);
113873 return buf;
113874 }
113875 + case 'P':
113876 + break;
113877 case 'K':
113878 /*
113879 * %pK cannot be used in IRQ context because its test
113880 @@ -1599,6 +1618,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113881 ((const struct file *)ptr)->f_path.dentry,
113882 spec, fmt);
113883 }
113884 +
113885 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113886 + /* 'P' = approved pointers to copy to userland,
113887 + as in the /proc/kallsyms case, as we make it display nothing
113888 + for non-root users, and the real contents for root users
113889 + 'X' = approved simple symbols
113890 + Also ignore 'K' pointers, since we force their NULLing for non-root users
113891 + above
113892 + */
113893 + if ((unsigned long)ptr > TASK_SIZE && *fmt != 'P' && *fmt != 'X' && *fmt != 'K' && is_usercopy_object(buf)) {
113894 + printk(KERN_ALERT "grsec: kernel infoleak detected! Please report this log to spender@grsecurity.net.\n");
113895 + dump_stack();
113896 + ptr = NULL;
113897 + }
113898 +#endif
113899 +
113900 spec.flags |= SMALL;
113901 if (spec.field_width == -1) {
113902 spec.field_width = default_width;
113903 @@ -2297,11 +2332,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
113904 typeof(type) value; \
113905 if (sizeof(type) == 8) { \
113906 args = PTR_ALIGN(args, sizeof(u32)); \
113907 - *(u32 *)&value = *(u32 *)args; \
113908 - *((u32 *)&value + 1) = *(u32 *)(args + 4); \
113909 + *(u32 *)&value = *(const u32 *)args; \
113910 + *((u32 *)&value + 1) = *(const u32 *)(args + 4); \
113911 } else { \
113912 args = PTR_ALIGN(args, sizeof(type)); \
113913 - value = *(typeof(type) *)args; \
113914 + value = *(const typeof(type) *)args; \
113915 } \
113916 args += sizeof(type); \
113917 value; \
113918 @@ -2364,7 +2399,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
113919 case FORMAT_TYPE_STR: {
113920 const char *str_arg = args;
113921 args += strlen(str_arg) + 1;
113922 - str = string(str, end, (char *)str_arg, spec);
113923 + str = string(str, end, str_arg, spec);
113924 break;
113925 }
113926
113927 diff --git a/localversion-grsec b/localversion-grsec
113928 new file mode 100644
113929 index 0000000..7cd6065
113930 --- /dev/null
113931 +++ b/localversion-grsec
113932 @@ -0,0 +1 @@
113933 +-grsec
113934 diff --git a/mm/Kconfig b/mm/Kconfig
113935 index 0d9fdcd..7fc4acb 100644
113936 --- a/mm/Kconfig
113937 +++ b/mm/Kconfig
113938 @@ -336,10 +336,11 @@ config KSM
113939 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
113940
113941 config DEFAULT_MMAP_MIN_ADDR
113942 - int "Low address space to protect from user allocation"
113943 + int "Low address space to protect from user allocation"
113944 depends on MMU
113945 - default 4096
113946 - help
113947 + default 32768 if ALPHA || ARM || PARISC || SPARC32
113948 + default 65536
113949 + help
113950 This is the portion of low virtual memory which should be protected
113951 from userspace allocation. Keeping a user from writing to low pages
113952 can help reduce the impact of kernel NULL pointer bugs.
113953 @@ -371,8 +372,9 @@ config MEMORY_FAILURE
113954
113955 config HWPOISON_INJECT
113956 tristate "HWPoison pages injector"
113957 - depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
113958 + depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS && !GRKERNSEC
113959 select PROC_PAGE_MONITOR
113960 + depends on !GRKERNSEC
113961
113962 config NOMMU_INITIAL_TRIM_EXCESS
113963 int "Turn on mmap() excess space trimming before booting"
113964 @@ -533,6 +535,7 @@ config MEM_SOFT_DIRTY
113965 bool "Track memory changes"
113966 depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY && PROC_FS
113967 select PROC_PAGE_MONITOR
113968 + depends on !GRKERNSEC
113969 help
113970 This option enables memory changes tracking by introducing a
113971 soft-dirty bit on pte-s. This bit it set when someone writes
113972 @@ -607,6 +610,7 @@ config ZSMALLOC_STAT
113973 bool "Export zsmalloc statistics"
113974 depends on ZSMALLOC
113975 select DEBUG_FS
113976 + depends on !GRKERNSEC_KMEM
113977 help
113978 This option enables code in the zsmalloc to collect various
113979 statistics about whats happening in zsmalloc and exports that
113980 diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
113981 index 957d3da..1d34e20 100644
113982 --- a/mm/Kconfig.debug
113983 +++ b/mm/Kconfig.debug
113984 @@ -10,6 +10,7 @@ config PAGE_EXTENSION
113985 config DEBUG_PAGEALLOC
113986 bool "Debug page memory allocations"
113987 depends on DEBUG_KERNEL
113988 + depends on !PAX_MEMORY_SANITIZE
113989 depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
113990 depends on !KMEMCHECK
113991 select PAGE_EXTENSION
113992 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
113993 index 619984f..2790176 100644
113994 --- a/mm/backing-dev.c
113995 +++ b/mm/backing-dev.c
113996 @@ -12,7 +12,7 @@
113997 #include <linux/device.h>
113998 #include <trace/events/writeback.h>
113999
114000 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
114001 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
114002
114003 struct backing_dev_info noop_backing_dev_info = {
114004 .name = "noop",
114005 @@ -879,7 +879,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
114006 return err;
114007
114008 err = bdi_register(bdi, NULL, "%.28s-%ld", name,
114009 - atomic_long_inc_return(&bdi_seq));
114010 + atomic_long_inc_return_unchecked(&bdi_seq));
114011 if (err) {
114012 bdi_destroy(bdi);
114013 return err;
114014 diff --git a/mm/debug.c b/mm/debug.c
114015 index 6c1b3ea..a578362 100644
114016 --- a/mm/debug.c
114017 +++ b/mm/debug.c
114018 @@ -131,6 +131,9 @@ static const struct trace_print_flags vmaflags_names[] = {
114019 {VM_RAND_READ, "randread" },
114020 {VM_DONTCOPY, "dontcopy" },
114021 {VM_DONTEXPAND, "dontexpand" },
114022 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
114023 + {VM_PAGEEXEC, "pageexec" },
114024 +#endif
114025 {VM_ACCOUNT, "account" },
114026 {VM_NORESERVE, "noreserve" },
114027 {VM_HUGETLB, "hugetlb" },
114028 diff --git a/mm/filemap.c b/mm/filemap.c
114029 index 327910c..73ee06f 100644
114030 --- a/mm/filemap.c
114031 +++ b/mm/filemap.c
114032 @@ -2122,7 +2122,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
114033 struct address_space *mapping = file->f_mapping;
114034
114035 if (!mapping->a_ops->readpage)
114036 - return -ENOEXEC;
114037 + return -ENODEV;
114038 file_accessed(file);
114039 vma->vm_ops = &generic_file_vm_ops;
114040 return 0;
114041 @@ -2303,6 +2303,7 @@ inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from)
114042 pos = iocb->ki_pos;
114043
114044 if (limit != RLIM_INFINITY) {
114045 + gr_learn_resource(current, RLIMIT_FSIZE, iocb->ki_pos, 0);
114046 if (iocb->ki_pos >= limit) {
114047 send_sig(SIGXFSZ, current, 0);
114048 return -EFBIG;
114049 diff --git a/mm/gup.c b/mm/gup.c
114050 index a798293..98a67dd 100644
114051 --- a/mm/gup.c
114052 +++ b/mm/gup.c
114053 @@ -299,11 +299,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
114054 unsigned int fault_flags = 0;
114055 int ret;
114056
114057 - /* For mm_populate(), just skip the stack guard page. */
114058 - if ((*flags & FOLL_POPULATE) &&
114059 - (stack_guard_page_start(vma, address) ||
114060 - stack_guard_page_end(vma, address + PAGE_SIZE)))
114061 - return -ENOENT;
114062 if (*flags & FOLL_WRITE)
114063 fault_flags |= FAULT_FLAG_WRITE;
114064 if (nonblocking)
114065 @@ -469,14 +464,14 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
114066 if (!(gup_flags & FOLL_FORCE))
114067 gup_flags |= FOLL_NUMA;
114068
114069 - do {
114070 + while (nr_pages) {
114071 struct page *page;
114072 unsigned int foll_flags = gup_flags;
114073 unsigned int page_increm;
114074
114075 /* first iteration or cross vma bound */
114076 if (!vma || start >= vma->vm_end) {
114077 - vma = find_extend_vma(mm, start);
114078 + vma = find_vma(mm, start);
114079 if (!vma && in_gate_area(mm, start)) {
114080 int ret;
114081 ret = get_gate_page(mm, start & PAGE_MASK,
114082 @@ -488,7 +483,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
114083 goto next_page;
114084 }
114085
114086 - if (!vma || check_vma_flags(vma, gup_flags))
114087 + if (!vma || start < vma->vm_start || check_vma_flags(vma, gup_flags))
114088 return i ? : -EFAULT;
114089 if (is_vm_hugetlb_page(vma)) {
114090 i = follow_hugetlb_page(mm, vma, pages, vmas,
114091 @@ -549,7 +544,7 @@ next_page:
114092 i += page_increm;
114093 start += page_increm * PAGE_SIZE;
114094 nr_pages -= page_increm;
114095 - } while (nr_pages);
114096 + }
114097 return i;
114098 }
114099 EXPORT_SYMBOL(__get_user_pages);
114100 diff --git a/mm/highmem.c b/mm/highmem.c
114101 index 123bcd3..c2c85db 100644
114102 --- a/mm/highmem.c
114103 +++ b/mm/highmem.c
114104 @@ -195,8 +195,9 @@ static void flush_all_zero_pkmaps(void)
114105 * So no dangers, even with speculative execution.
114106 */
114107 page = pte_page(pkmap_page_table[i]);
114108 + pax_open_kernel();
114109 pte_clear(&init_mm, PKMAP_ADDR(i), &pkmap_page_table[i]);
114110 -
114111 + pax_close_kernel();
114112 set_page_address(page, NULL);
114113 need_flush = 1;
114114 }
114115 @@ -259,8 +260,11 @@ start:
114116 }
114117 }
114118 vaddr = PKMAP_ADDR(last_pkmap_nr);
114119 +
114120 + pax_open_kernel();
114121 set_pte_at(&init_mm, vaddr,
114122 &(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot));
114123 + pax_close_kernel();
114124
114125 pkmap_count[last_pkmap_nr] = 1;
114126 set_page_address(page, (void *)vaddr);
114127 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
114128 index 9cc7734..f329b79 100644
114129 --- a/mm/hugetlb.c
114130 +++ b/mm/hugetlb.c
114131 @@ -2670,6 +2670,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
114132 struct ctl_table *table, int write,
114133 void __user *buffer, size_t *length, loff_t *ppos)
114134 {
114135 + ctl_table_no_const t;
114136 struct hstate *h = &default_hstate;
114137 unsigned long tmp = h->max_huge_pages;
114138 int ret;
114139 @@ -2677,9 +2678,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
114140 if (!hugepages_supported())
114141 return -ENOTSUPP;
114142
114143 - table->data = &tmp;
114144 - table->maxlen = sizeof(unsigned long);
114145 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
114146 + t = *table;
114147 + t.data = &tmp;
114148 + t.maxlen = sizeof(unsigned long);
114149 + ret = proc_doulongvec_minmax(&t, write, buffer, length, ppos);
114150 if (ret)
114151 goto out;
114152
114153 @@ -2714,6 +2716,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
114154 struct hstate *h = &default_hstate;
114155 unsigned long tmp;
114156 int ret;
114157 + ctl_table_no_const hugetlb_table;
114158
114159 if (!hugepages_supported())
114160 return -ENOTSUPP;
114161 @@ -2723,9 +2726,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
114162 if (write && hstate_is_gigantic(h))
114163 return -EINVAL;
114164
114165 - table->data = &tmp;
114166 - table->maxlen = sizeof(unsigned long);
114167 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
114168 + hugetlb_table = *table;
114169 + hugetlb_table.data = &tmp;
114170 + hugetlb_table.maxlen = sizeof(unsigned long);
114171 + ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos);
114172 if (ret)
114173 goto out;
114174
114175 @@ -3223,6 +3227,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
114176 i_mmap_unlock_write(mapping);
114177 }
114178
114179 +#ifdef CONFIG_PAX_SEGMEXEC
114180 +static void pax_mirror_huge_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m)
114181 +{
114182 + struct mm_struct *mm = vma->vm_mm;
114183 + struct vm_area_struct *vma_m;
114184 + unsigned long address_m;
114185 + pte_t *ptep_m;
114186 +
114187 + vma_m = pax_find_mirror_vma(vma);
114188 + if (!vma_m)
114189 + return;
114190 +
114191 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114192 + address_m = address + SEGMEXEC_TASK_SIZE;
114193 + ptep_m = huge_pte_offset(mm, address_m & HPAGE_MASK);
114194 + get_page(page_m);
114195 + hugepage_add_anon_rmap(page_m, vma_m, address_m);
114196 + set_huge_pte_at(mm, address_m, ptep_m, make_huge_pte(vma_m, page_m, 0));
114197 +}
114198 +#endif
114199 +
114200 /*
114201 * Hugetlb_cow() should be called with page lock of the original hugepage held.
114202 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
114203 @@ -3336,6 +3361,11 @@ retry_avoidcopy:
114204 make_huge_pte(vma, new_page, 1));
114205 page_remove_rmap(old_page);
114206 hugepage_add_new_anon_rmap(new_page, vma, address);
114207 +
114208 +#ifdef CONFIG_PAX_SEGMEXEC
114209 + pax_mirror_huge_pte(vma, address, new_page);
114210 +#endif
114211 +
114212 /* Make the old page be freed below */
114213 new_page = old_page;
114214 }
114215 @@ -3509,6 +3539,10 @@ retry:
114216 && (vma->vm_flags & VM_SHARED)));
114217 set_huge_pte_at(mm, address, ptep, new_pte);
114218
114219 +#ifdef CONFIG_PAX_SEGMEXEC
114220 + pax_mirror_huge_pte(vma, address, page);
114221 +#endif
114222 +
114223 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
114224 /* Optimization, do the COW without a second fault */
114225 ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page, ptl);
114226 @@ -3576,6 +3610,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114227 struct address_space *mapping;
114228 int need_wait_lock = 0;
114229
114230 +#ifdef CONFIG_PAX_SEGMEXEC
114231 + struct vm_area_struct *vma_m;
114232 +#endif
114233 +
114234 address &= huge_page_mask(h);
114235
114236 ptep = huge_pte_offset(mm, address);
114237 @@ -3589,6 +3627,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114238 VM_FAULT_SET_HINDEX(hstate_index(h));
114239 }
114240
114241 +#ifdef CONFIG_PAX_SEGMEXEC
114242 + vma_m = pax_find_mirror_vma(vma);
114243 + if (vma_m) {
114244 + unsigned long address_m;
114245 +
114246 + if (vma->vm_start > vma_m->vm_start) {
114247 + address_m = address;
114248 + address -= SEGMEXEC_TASK_SIZE;
114249 + vma = vma_m;
114250 + h = hstate_vma(vma);
114251 + } else
114252 + address_m = address + SEGMEXEC_TASK_SIZE;
114253 +
114254 + if (!huge_pte_alloc(mm, address_m, huge_page_size(h)))
114255 + return VM_FAULT_OOM;
114256 + address_m &= HPAGE_MASK;
114257 + unmap_hugepage_range(vma, address_m, address_m + HPAGE_SIZE, NULL);
114258 + }
114259 +#endif
114260 +
114261 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
114262 if (!ptep)
114263 return VM_FAULT_OOM;
114264 diff --git a/mm/internal.h b/mm/internal.h
114265 index bc0fa9a..ecd7e26 100644
114266 --- a/mm/internal.h
114267 +++ b/mm/internal.h
114268 @@ -157,6 +157,7 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
114269 extern int __isolate_free_page(struct page *page, unsigned int order);
114270 extern void __free_pages_bootmem(struct page *page, unsigned long pfn,
114271 unsigned int order);
114272 +extern void free_compound_page(struct page *page);
114273 extern void prep_compound_page(struct page *page, unsigned long order);
114274 #ifdef CONFIG_MEMORY_FAILURE
114275 extern bool is_free_buddy_page(struct page *page);
114276 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
114277 index 77191ec..efdebce 100644
114278 --- a/mm/kmemleak.c
114279 +++ b/mm/kmemleak.c
114280 @@ -366,7 +366,7 @@ static void print_unreferenced(struct seq_file *seq,
114281
114282 for (i = 0; i < object->trace_len; i++) {
114283 void *ptr = (void *)object->trace[i];
114284 - seq_printf(seq, " [<%p>] %pS\n", ptr, ptr);
114285 + seq_printf(seq, " [<%pP>] %pA\n", ptr, ptr);
114286 }
114287 }
114288
114289 @@ -1958,7 +1958,7 @@ static int __init kmemleak_late_init(void)
114290 return -ENOMEM;
114291 }
114292
114293 - dentry = debugfs_create_file("kmemleak", S_IRUGO, NULL, NULL,
114294 + dentry = debugfs_create_file("kmemleak", S_IRUSR, NULL, NULL,
114295 &kmemleak_fops);
114296 if (!dentry)
114297 pr_warning("Failed to create the debugfs kmemleak file\n");
114298 diff --git a/mm/maccess.c b/mm/maccess.c
114299 index 34fe247..f98d44f 100644
114300 --- a/mm/maccess.c
114301 +++ b/mm/maccess.c
114302 @@ -26,7 +26,7 @@ long __probe_kernel_read(void *dst, const void *src, size_t size)
114303 set_fs(KERNEL_DS);
114304 pagefault_disable();
114305 ret = __copy_from_user_inatomic(dst,
114306 - (__force const void __user *)src, size);
114307 + (const void __force_user *)src, size);
114308 pagefault_enable();
114309 set_fs(old_fs);
114310
114311 @@ -53,7 +53,7 @@ long __probe_kernel_write(void *dst, const void *src, size_t size)
114312
114313 set_fs(KERNEL_DS);
114314 pagefault_disable();
114315 - ret = __copy_to_user_inatomic((__force void __user *)dst, src, size);
114316 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
114317 pagefault_enable();
114318 set_fs(old_fs);
114319
114320 diff --git a/mm/madvise.c b/mm/madvise.c
114321 index c889fcb..f181221 100644
114322 --- a/mm/madvise.c
114323 +++ b/mm/madvise.c
114324 @@ -52,6 +52,10 @@ static long madvise_behavior(struct vm_area_struct *vma,
114325 pgoff_t pgoff;
114326 unsigned long new_flags = vma->vm_flags;
114327
114328 +#ifdef CONFIG_PAX_SEGMEXEC
114329 + struct vm_area_struct *vma_m;
114330 +#endif
114331 +
114332 switch (behavior) {
114333 case MADV_NORMAL:
114334 new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
114335 @@ -128,6 +132,13 @@ success:
114336 /*
114337 * vm_flags is protected by the mmap_sem held in write mode.
114338 */
114339 +
114340 +#ifdef CONFIG_PAX_SEGMEXEC
114341 + vma_m = pax_find_mirror_vma(vma);
114342 + if (vma_m)
114343 + vma_m->vm_flags = new_flags & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT);
114344 +#endif
114345 +
114346 vma->vm_flags = new_flags;
114347
114348 out:
114349 @@ -279,11 +290,27 @@ static long madvise_dontneed(struct vm_area_struct *vma,
114350 struct vm_area_struct **prev,
114351 unsigned long start, unsigned long end)
114352 {
114353 +
114354 +#ifdef CONFIG_PAX_SEGMEXEC
114355 + struct vm_area_struct *vma_m;
114356 +#endif
114357 +
114358 *prev = vma;
114359 if (vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
114360 return -EINVAL;
114361
114362 zap_page_range(vma, start, end - start, NULL);
114363 +
114364 +#ifdef CONFIG_PAX_SEGMEXEC
114365 + vma_m = pax_find_mirror_vma(vma);
114366 + if (vma_m) {
114367 + if (vma_m->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
114368 + return -EINVAL;
114369 +
114370 + zap_page_range(vma_m, start + SEGMEXEC_TASK_SIZE, end - start, NULL);
114371 + }
114372 +#endif
114373 +
114374 return 0;
114375 }
114376
114377 @@ -486,6 +513,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
114378 if (end < start)
114379 return error;
114380
114381 +#ifdef CONFIG_PAX_SEGMEXEC
114382 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
114383 + if (end > SEGMEXEC_TASK_SIZE)
114384 + return error;
114385 + } else
114386 +#endif
114387 +
114388 + if (end > TASK_SIZE)
114389 + return error;
114390 +
114391 error = 0;
114392 if (end == start)
114393 return error;
114394 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
114395 index 9588269..a8f966a 100644
114396 --- a/mm/memory-failure.c
114397 +++ b/mm/memory-failure.c
114398 @@ -63,7 +63,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
114399
114400 int sysctl_memory_failure_recovery __read_mostly = 1;
114401
114402 -atomic_long_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
114403 +atomic_long_unchecked_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
114404
114405 #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
114406
114407 @@ -188,7 +188,7 @@ static int kill_proc(struct task_struct *t, unsigned long addr, int trapno,
114408 pfn, t->comm, t->pid);
114409 si.si_signo = SIGBUS;
114410 si.si_errno = 0;
114411 - si.si_addr = (void *)addr;
114412 + si.si_addr = (void __user *)addr;
114413 #ifdef __ARCH_SI_TRAPNO
114414 si.si_trapno = trapno;
114415 #endif
114416 @@ -785,7 +785,7 @@ static struct page_state {
114417 unsigned long res;
114418 enum mf_action_page_type type;
114419 int (*action)(struct page *p, unsigned long pfn);
114420 -} error_states[] = {
114421 +} __do_const error_states[] = {
114422 { reserved, reserved, MF_MSG_KERNEL, me_kernel },
114423 /*
114424 * free pages are specially detected outside this table:
114425 diff --git a/mm/memory.c b/mm/memory.c
114426 index deb679c..40ab640 100644
114427 --- a/mm/memory.c
114428 +++ b/mm/memory.c
114429 @@ -415,6 +415,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
114430 free_pte_range(tlb, pmd, addr);
114431 } while (pmd++, addr = next, addr != end);
114432
114433 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_PER_CPU_PGD)
114434 start &= PUD_MASK;
114435 if (start < floor)
114436 return;
114437 @@ -430,6 +431,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
114438 pud_clear(pud);
114439 pmd_free_tlb(tlb, pmd, start);
114440 mm_dec_nr_pmds(tlb->mm);
114441 +#endif
114442 }
114443
114444 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114445 @@ -449,6 +451,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114446 free_pmd_range(tlb, pud, addr, next, floor, ceiling);
114447 } while (pud++, addr = next, addr != end);
114448
114449 +#if !defined(CONFIG_X86_64) || !defined(CONFIG_PAX_PER_CPU_PGD)
114450 start &= PGDIR_MASK;
114451 if (start < floor)
114452 return;
114453 @@ -463,6 +466,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114454 pud = pud_offset(pgd, start);
114455 pgd_clear(pgd);
114456 pud_free_tlb(tlb, pud, start);
114457 +#endif
114458 +
114459 }
114460
114461 /*
114462 @@ -691,7 +696,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
114463 /*
114464 * Choose text because data symbols depend on CONFIG_KALLSYMS_ALL=y
114465 */
114466 - pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n",
114467 + pr_alert("file:%pD fault:%pX mmap:%pX readpage:%pX\n",
114468 vma->vm_file,
114469 vma->vm_ops ? vma->vm_ops->fault : NULL,
114470 vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
114471 @@ -1464,6 +1469,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
114472 page_add_file_rmap(page);
114473 set_pte_at(mm, addr, pte, mk_pte(page, prot));
114474
114475 +#ifdef CONFIG_PAX_SEGMEXEC
114476 + pax_mirror_file_pte(vma, addr, page, ptl);
114477 +#endif
114478 +
114479 retval = 0;
114480 pte_unmap_unlock(pte, ptl);
114481 return retval;
114482 @@ -1508,9 +1517,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
114483 if (!page_count(page))
114484 return -EINVAL;
114485 if (!(vma->vm_flags & VM_MIXEDMAP)) {
114486 +
114487 +#ifdef CONFIG_PAX_SEGMEXEC
114488 + struct vm_area_struct *vma_m;
114489 +#endif
114490 +
114491 BUG_ON(down_read_trylock(&vma->vm_mm->mmap_sem));
114492 BUG_ON(vma->vm_flags & VM_PFNMAP);
114493 vma->vm_flags |= VM_MIXEDMAP;
114494 +
114495 +#ifdef CONFIG_PAX_SEGMEXEC
114496 + vma_m = pax_find_mirror_vma(vma);
114497 + if (vma_m)
114498 + vma_m->vm_flags |= VM_MIXEDMAP;
114499 +#endif
114500 +
114501 }
114502 return insert_page(vma, addr, page, vma->vm_page_prot);
114503 }
114504 @@ -1593,6 +1614,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
114505 unsigned long pfn)
114506 {
114507 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
114508 + BUG_ON(vma->vm_mirror);
114509
114510 if (addr < vma->vm_start || addr >= vma->vm_end)
114511 return -EFAULT;
114512 @@ -1840,7 +1862,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
114513
114514 BUG_ON(pud_huge(*pud));
114515
114516 - pmd = pmd_alloc(mm, pud, addr);
114517 + pmd = (mm == &init_mm) ?
114518 + pmd_alloc_kernel(mm, pud, addr) :
114519 + pmd_alloc(mm, pud, addr);
114520 if (!pmd)
114521 return -ENOMEM;
114522 do {
114523 @@ -1860,7 +1884,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
114524 unsigned long next;
114525 int err;
114526
114527 - pud = pud_alloc(mm, pgd, addr);
114528 + pud = (mm == &init_mm) ?
114529 + pud_alloc_kernel(mm, pgd, addr) :
114530 + pud_alloc(mm, pgd, addr);
114531 if (!pud)
114532 return -ENOMEM;
114533 do {
114534 @@ -2041,6 +2067,196 @@ static inline int wp_page_reuse(struct mm_struct *mm,
114535 return VM_FAULT_WRITE;
114536 }
114537
114538 +#ifdef CONFIG_PAX_SEGMEXEC
114539 +static void pax_unmap_mirror_pte(struct vm_area_struct *vma, unsigned long address, pmd_t *pmd)
114540 +{
114541 + struct mm_struct *mm = vma->vm_mm;
114542 + spinlock_t *ptl;
114543 + pte_t *pte, entry;
114544 +
114545 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
114546 + entry = *pte;
114547 + if (pte_none(entry))
114548 + ;
114549 + else if (!pte_present(entry)) {
114550 + swp_entry_t swapentry;
114551 +
114552 + swapentry = pte_to_swp_entry(entry);
114553 + if (!non_swap_entry(swapentry))
114554 + dec_mm_counter_fast(mm, MM_SWAPENTS);
114555 + else if (is_migration_entry(swapentry)) {
114556 + if (PageAnon(migration_entry_to_page(swapentry)))
114557 + dec_mm_counter_fast(mm, MM_ANONPAGES);
114558 + else
114559 + dec_mm_counter_fast(mm, MM_FILEPAGES);
114560 + }
114561 + free_swap_and_cache(swapentry);
114562 + pte_clear_not_present_full(mm, address, pte, 0);
114563 + } else {
114564 + struct page *page;
114565 +
114566 + flush_cache_page(vma, address, pte_pfn(entry));
114567 + entry = ptep_clear_flush(vma, address, pte);
114568 + BUG_ON(pte_dirty(entry));
114569 + page = vm_normal_page(vma, address, entry);
114570 + if (page) {
114571 + update_hiwater_rss(mm);
114572 + if (PageAnon(page))
114573 + dec_mm_counter_fast(mm, MM_ANONPAGES);
114574 + else
114575 + dec_mm_counter_fast(mm, MM_FILEPAGES);
114576 + page_remove_rmap(page);
114577 + page_cache_release(page);
114578 + }
114579 + }
114580 + pte_unmap_unlock(pte, ptl);
114581 +}
114582 +
114583 +/* PaX: if vma is mirrored, synchronize the mirror's PTE
114584 + *
114585 + * the ptl of the lower mapped page is held on entry and is not released on exit
114586 + * or inside to ensure atomic changes to the PTE states (swapout, mremap, munmap, etc)
114587 + */
114588 +static void pax_mirror_anon_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
114589 +{
114590 + struct mm_struct *mm = vma->vm_mm;
114591 + unsigned long address_m;
114592 + spinlock_t *ptl_m;
114593 + struct vm_area_struct *vma_m;
114594 + pmd_t *pmd_m;
114595 + pte_t *pte_m, entry_m;
114596 +
114597 + BUG_ON(!page_m || !PageAnon(page_m));
114598 +
114599 + vma_m = pax_find_mirror_vma(vma);
114600 + if (!vma_m)
114601 + return;
114602 +
114603 + BUG_ON(!PageLocked(page_m));
114604 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114605 + address_m = address + SEGMEXEC_TASK_SIZE;
114606 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114607 + pte_m = pte_offset_map(pmd_m, address_m);
114608 + ptl_m = pte_lockptr(mm, pmd_m);
114609 + if (ptl != ptl_m) {
114610 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114611 + if (!pte_none(*pte_m))
114612 + goto out;
114613 + }
114614 +
114615 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
114616 + page_cache_get(page_m);
114617 + page_add_anon_rmap(page_m, vma_m, address_m);
114618 + inc_mm_counter_fast(mm, MM_ANONPAGES);
114619 + set_pte_at(mm, address_m, pte_m, entry_m);
114620 + update_mmu_cache(vma_m, address_m, pte_m);
114621 +out:
114622 + if (ptl != ptl_m)
114623 + spin_unlock(ptl_m);
114624 + pte_unmap(pte_m);
114625 + unlock_page(page_m);
114626 +}
114627 +
114628 +void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
114629 +{
114630 + struct mm_struct *mm = vma->vm_mm;
114631 + unsigned long address_m;
114632 + spinlock_t *ptl_m;
114633 + struct vm_area_struct *vma_m;
114634 + pmd_t *pmd_m;
114635 + pte_t *pte_m, entry_m;
114636 +
114637 + BUG_ON(!page_m || PageAnon(page_m));
114638 +
114639 + vma_m = pax_find_mirror_vma(vma);
114640 + if (!vma_m)
114641 + return;
114642 +
114643 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114644 + address_m = address + SEGMEXEC_TASK_SIZE;
114645 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114646 + pte_m = pte_offset_map(pmd_m, address_m);
114647 + ptl_m = pte_lockptr(mm, pmd_m);
114648 + if (ptl != ptl_m) {
114649 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114650 + if (!pte_none(*pte_m))
114651 + goto out;
114652 + }
114653 +
114654 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
114655 + page_cache_get(page_m);
114656 + page_add_file_rmap(page_m);
114657 + inc_mm_counter_fast(mm, MM_FILEPAGES);
114658 + set_pte_at(mm, address_m, pte_m, entry_m);
114659 + update_mmu_cache(vma_m, address_m, pte_m);
114660 +out:
114661 + if (ptl != ptl_m)
114662 + spin_unlock(ptl_m);
114663 + pte_unmap(pte_m);
114664 +}
114665 +
114666 +static void pax_mirror_pfn_pte(struct vm_area_struct *vma, unsigned long address, unsigned long pfn_m, spinlock_t *ptl)
114667 +{
114668 + struct mm_struct *mm = vma->vm_mm;
114669 + unsigned long address_m;
114670 + spinlock_t *ptl_m;
114671 + struct vm_area_struct *vma_m;
114672 + pmd_t *pmd_m;
114673 + pte_t *pte_m, entry_m;
114674 +
114675 + vma_m = pax_find_mirror_vma(vma);
114676 + if (!vma_m)
114677 + return;
114678 +
114679 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114680 + address_m = address + SEGMEXEC_TASK_SIZE;
114681 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114682 + pte_m = pte_offset_map(pmd_m, address_m);
114683 + ptl_m = pte_lockptr(mm, pmd_m);
114684 + if (ptl != ptl_m) {
114685 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114686 + if (!pte_none(*pte_m))
114687 + goto out;
114688 + }
114689 +
114690 + entry_m = pfn_pte(pfn_m, vma_m->vm_page_prot);
114691 + set_pte_at(mm, address_m, pte_m, entry_m);
114692 +out:
114693 + if (ptl != ptl_m)
114694 + spin_unlock(ptl_m);
114695 + pte_unmap(pte_m);
114696 +}
114697 +
114698 +static void pax_mirror_pte(struct vm_area_struct *vma, unsigned long address, pte_t *pte, pmd_t *pmd, spinlock_t *ptl)
114699 +{
114700 + struct page *page_m;
114701 + pte_t entry;
114702 +
114703 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC))
114704 + goto out;
114705 +
114706 + entry = *pte;
114707 + page_m = vm_normal_page(vma, address, entry);
114708 + if (!page_m)
114709 + pax_mirror_pfn_pte(vma, address, pte_pfn(entry), ptl);
114710 + else if (PageAnon(page_m)) {
114711 + if (pax_find_mirror_vma(vma)) {
114712 + pte_unmap_unlock(pte, ptl);
114713 + lock_page(page_m);
114714 + pte = pte_offset_map_lock(vma->vm_mm, pmd, address, &ptl);
114715 + if (pte_same(entry, *pte))
114716 + pax_mirror_anon_pte(vma, address, page_m, ptl);
114717 + else
114718 + unlock_page(page_m);
114719 + }
114720 + } else
114721 + pax_mirror_file_pte(vma, address, page_m, ptl);
114722 +
114723 +out:
114724 + pte_unmap_unlock(pte, ptl);
114725 +}
114726 +#endif
114727 +
114728 /*
114729 * Handle the case of a page which we actually need to copy to a new page.
114730 *
114731 @@ -2095,6 +2311,12 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
114732 */
114733 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
114734 if (likely(pte_same(*page_table, orig_pte))) {
114735 +
114736 +#ifdef CONFIG_PAX_SEGMEXEC
114737 + if (pax_find_mirror_vma(vma))
114738 + BUG_ON(!trylock_page(new_page));
114739 +#endif
114740 +
114741 if (old_page) {
114742 if (!PageAnon(old_page)) {
114743 dec_mm_counter_fast(mm, MM_FILEPAGES);
114744 @@ -2149,6 +2371,10 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
114745 page_remove_rmap(old_page);
114746 }
114747
114748 +#ifdef CONFIG_PAX_SEGMEXEC
114749 + pax_mirror_anon_pte(vma, address, new_page, ptl);
114750 +#endif
114751 +
114752 /* Free the old page.. */
114753 new_page = old_page;
114754 page_copied = 1;
114755 @@ -2580,6 +2806,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
114756 swap_free(entry);
114757 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
114758 try_to_free_swap(page);
114759 +
114760 +#ifdef CONFIG_PAX_SEGMEXEC
114761 + if ((flags & FAULT_FLAG_WRITE) || !pax_find_mirror_vma(vma))
114762 +#endif
114763 +
114764 unlock_page(page);
114765 if (page != swapcache) {
114766 /*
114767 @@ -2603,6 +2834,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
114768
114769 /* No need to invalidate - it was non-present before */
114770 update_mmu_cache(vma, address, page_table);
114771 +
114772 +#ifdef CONFIG_PAX_SEGMEXEC
114773 + pax_mirror_anon_pte(vma, address, page, ptl);
114774 +#endif
114775 +
114776 unlock:
114777 pte_unmap_unlock(page_table, ptl);
114778 out:
114779 @@ -2622,40 +2858,6 @@ out_release:
114780 }
114781
114782 /*
114783 - * This is like a special single-page "expand_{down|up}wards()",
114784 - * except we must first make sure that 'address{-|+}PAGE_SIZE'
114785 - * doesn't hit another vma.
114786 - */
114787 -static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address)
114788 -{
114789 - address &= PAGE_MASK;
114790 - if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) {
114791 - struct vm_area_struct *prev = vma->vm_prev;
114792 -
114793 - /*
114794 - * Is there a mapping abutting this one below?
114795 - *
114796 - * That's only ok if it's the same stack mapping
114797 - * that has gotten split..
114798 - */
114799 - if (prev && prev->vm_end == address)
114800 - return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM;
114801 -
114802 - return expand_downwards(vma, address - PAGE_SIZE);
114803 - }
114804 - if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) {
114805 - struct vm_area_struct *next = vma->vm_next;
114806 -
114807 - /* As VM_GROWSDOWN but s/below/above/ */
114808 - if (next && next->vm_start == address + PAGE_SIZE)
114809 - return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM;
114810 -
114811 - return expand_upwards(vma, address + PAGE_SIZE);
114812 - }
114813 - return 0;
114814 -}
114815 -
114816 -/*
114817 * We enter with non-exclusive mmap_sem (to exclude vma changes,
114818 * but allow concurrent faults), and pte mapped but not yet locked.
114819 * We return with mmap_sem still held, but pte unmapped and unlocked.
114820 @@ -2665,25 +2867,22 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
114821 unsigned int flags)
114822 {
114823 struct mem_cgroup *memcg;
114824 - struct page *page;
114825 + struct page *page = NULL;
114826 spinlock_t *ptl;
114827 pte_t entry;
114828
114829 - pte_unmap(page_table);
114830 -
114831 /* File mapping without ->vm_ops ? */
114832 - if (vma->vm_flags & VM_SHARED)
114833 + if (vma->vm_flags & VM_SHARED) {
114834 + pte_unmap(page_table);
114835 return VM_FAULT_SIGBUS;
114836 -
114837 - /* Check if we need to add a guard page to the stack */
114838 - if (check_stack_guard_page(vma, address) < 0)
114839 - return VM_FAULT_SIGSEGV;
114840 + }
114841
114842 /* Use the zero-page for reads */
114843 if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm)) {
114844 entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
114845 vma->vm_page_prot));
114846 - page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
114847 + ptl = pte_lockptr(mm, pmd);
114848 + spin_lock(ptl);
114849 if (!pte_none(*page_table))
114850 goto unlock;
114851 /* Deliver the page fault to userland, check inside PT lock */
114852 @@ -2696,6 +2895,8 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
114853 }
114854
114855 /* Allocate our own private page. */
114856 + pte_unmap(page_table);
114857 +
114858 if (unlikely(anon_vma_prepare(vma)))
114859 goto oom;
114860 page = alloc_zeroed_user_highpage_movable(vma, address);
114861 @@ -2729,6 +2930,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
114862 VM_UFFD_MISSING);
114863 }
114864
114865 +#ifdef CONFIG_PAX_SEGMEXEC
114866 + if (pax_find_mirror_vma(vma))
114867 + BUG_ON(!trylock_page(page));
114868 +#endif
114869 +
114870 inc_mm_counter_fast(mm, MM_ANONPAGES);
114871 page_add_new_anon_rmap(page, vma, address);
114872 mem_cgroup_commit_charge(page, memcg, false);
114873 @@ -2738,6 +2944,12 @@ setpte:
114874
114875 /* No need to invalidate - it was non-present before */
114876 update_mmu_cache(vma, address, page_table);
114877 +
114878 +#ifdef CONFIG_PAX_SEGMEXEC
114879 + if (page)
114880 + pax_mirror_anon_pte(vma, address, page, ptl);
114881 +#endif
114882 +
114883 unlock:
114884 pte_unmap_unlock(page_table, ptl);
114885 return 0;
114886 @@ -2970,6 +3182,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114887 return ret;
114888 }
114889 do_set_pte(vma, address, fault_page, pte, false, false);
114890 +
114891 +#ifdef CONFIG_PAX_SEGMEXEC
114892 + pax_mirror_file_pte(vma, address, fault_page, ptl);
114893 +#endif
114894 +
114895 unlock_page(fault_page);
114896 unlock_out:
114897 pte_unmap_unlock(pte, ptl);
114898 @@ -3021,7 +3238,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114899 }
114900 goto uncharge_out;
114901 }
114902 +
114903 +#ifdef CONFIG_PAX_SEGMEXEC
114904 + if (pax_find_mirror_vma(vma))
114905 + BUG_ON(!trylock_page(new_page));
114906 +#endif
114907 +
114908 do_set_pte(vma, address, new_page, pte, true, true);
114909 +
114910 +#ifdef CONFIG_PAX_SEGMEXEC
114911 + pax_mirror_anon_pte(vma, address, new_page, ptl);
114912 +#endif
114913 +
114914 mem_cgroup_commit_charge(new_page, memcg, false);
114915 lru_cache_add_active_or_unevictable(new_page, vma);
114916 pte_unmap_unlock(pte, ptl);
114917 @@ -3079,6 +3307,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114918 return ret;
114919 }
114920 do_set_pte(vma, address, fault_page, pte, true, false);
114921 +
114922 +#ifdef CONFIG_PAX_SEGMEXEC
114923 + pax_mirror_file_pte(vma, address, fault_page, ptl);
114924 +#endif
114925 +
114926 pte_unmap_unlock(pte, ptl);
114927
114928 if (set_page_dirty(fault_page))
114929 @@ -3325,6 +3558,12 @@ static int handle_pte_fault(struct mm_struct *mm,
114930 if (flags & FAULT_FLAG_WRITE)
114931 flush_tlb_fix_spurious_fault(vma, address);
114932 }
114933 +
114934 +#ifdef CONFIG_PAX_SEGMEXEC
114935 + pax_mirror_pte(vma, address, pte, pmd, ptl);
114936 + return 0;
114937 +#endif
114938 +
114939 unlock:
114940 pte_unmap_unlock(pte, ptl);
114941 return 0;
114942 @@ -3344,9 +3583,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114943 pmd_t *pmd;
114944 pte_t *pte;
114945
114946 +#ifdef CONFIG_PAX_SEGMEXEC
114947 + struct vm_area_struct *vma_m;
114948 +#endif
114949 +
114950 if (unlikely(is_vm_hugetlb_page(vma)))
114951 return hugetlb_fault(mm, vma, address, flags);
114952
114953 +#ifdef CONFIG_PAX_SEGMEXEC
114954 + vma_m = pax_find_mirror_vma(vma);
114955 + if (vma_m) {
114956 + unsigned long address_m;
114957 + pgd_t *pgd_m;
114958 + pud_t *pud_m;
114959 + pmd_t *pmd_m;
114960 +
114961 + if (vma->vm_start > vma_m->vm_start) {
114962 + address_m = address;
114963 + address -= SEGMEXEC_TASK_SIZE;
114964 + vma = vma_m;
114965 + } else
114966 + address_m = address + SEGMEXEC_TASK_SIZE;
114967 +
114968 + pgd_m = pgd_offset(mm, address_m);
114969 + pud_m = pud_alloc(mm, pgd_m, address_m);
114970 + if (!pud_m)
114971 + return VM_FAULT_OOM;
114972 + pmd_m = pmd_alloc(mm, pud_m, address_m);
114973 + if (!pmd_m)
114974 + return VM_FAULT_OOM;
114975 + if (!pmd_present(*pmd_m) && __pte_alloc(mm, vma_m, pmd_m, address_m))
114976 + return VM_FAULT_OOM;
114977 + pax_unmap_mirror_pte(vma_m, address_m, pmd_m);
114978 + }
114979 +#endif
114980 +
114981 pgd = pgd_offset(mm, address);
114982 pud = pud_alloc(mm, pgd, address);
114983 if (!pud)
114984 @@ -3478,6 +3749,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
114985 spin_unlock(&mm->page_table_lock);
114986 return 0;
114987 }
114988 +
114989 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
114990 +{
114991 + pud_t *new = pud_alloc_one(mm, address);
114992 + if (!new)
114993 + return -ENOMEM;
114994 +
114995 + smp_wmb(); /* See comment in __pte_alloc */
114996 +
114997 + spin_lock(&mm->page_table_lock);
114998 + if (pgd_present(*pgd)) /* Another has populated it */
114999 + pud_free(mm, new);
115000 + else
115001 + pgd_populate_kernel(mm, pgd, new);
115002 + spin_unlock(&mm->page_table_lock);
115003 + return 0;
115004 +}
115005 #endif /* __PAGETABLE_PUD_FOLDED */
115006
115007 #ifndef __PAGETABLE_PMD_FOLDED
115008 @@ -3510,6 +3798,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
115009 spin_unlock(&mm->page_table_lock);
115010 return 0;
115011 }
115012 +
115013 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
115014 +{
115015 + pmd_t *new = pmd_alloc_one(mm, address);
115016 + if (!new)
115017 + return -ENOMEM;
115018 +
115019 + smp_wmb(); /* See comment in __pte_alloc */
115020 +
115021 + spin_lock(&mm->page_table_lock);
115022 +#ifndef __ARCH_HAS_4LEVEL_HACK
115023 + if (!pud_present(*pud)) {
115024 + mm_inc_nr_pmds(mm);
115025 + pud_populate_kernel(mm, pud, new);
115026 + } else /* Another has populated it */
115027 + pmd_free(mm, new);
115028 +#else
115029 + if (!pgd_present(*pud)) {
115030 + mm_inc_nr_pmds(mm);
115031 + pgd_populate_kernel(mm, pud, new);
115032 + } else /* Another has populated it */
115033 + pmd_free(mm, new);
115034 +#endif /* __ARCH_HAS_4LEVEL_HACK */
115035 + spin_unlock(&mm->page_table_lock);
115036 + return 0;
115037 +}
115038 #endif /* __PAGETABLE_PMD_FOLDED */
115039
115040 static int __follow_pte(struct mm_struct *mm, unsigned long address,
115041 @@ -3619,8 +3933,8 @@ out:
115042 return ret;
115043 }
115044
115045 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
115046 - void *buf, int len, int write)
115047 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
115048 + void *buf, size_t len, int write)
115049 {
115050 resource_size_t phys_addr;
115051 unsigned long prot = 0;
115052 @@ -3646,8 +3960,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
115053 * Access another process' address space as given in mm. If non-NULL, use the
115054 * given task for page fault accounting.
115055 */
115056 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115057 - unsigned long addr, void *buf, int len, int write)
115058 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115059 + unsigned long addr, void *buf, size_t len, int write)
115060 {
115061 struct vm_area_struct *vma;
115062 void *old_buf = buf;
115063 @@ -3655,7 +3969,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115064 down_read(&mm->mmap_sem);
115065 /* ignore errors, just check how much was successfully transferred */
115066 while (len) {
115067 - int bytes, ret, offset;
115068 + ssize_t bytes, ret, offset;
115069 void *maddr;
115070 struct page *page = NULL;
115071
115072 @@ -3716,8 +4030,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115073 *
115074 * The caller must hold a reference on @mm.
115075 */
115076 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
115077 - void *buf, int len, int write)
115078 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
115079 + void *buf, size_t len, int write)
115080 {
115081 return __access_remote_vm(NULL, mm, addr, buf, len, write);
115082 }
115083 @@ -3727,11 +4041,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
115084 * Source/target buffer must be kernel space,
115085 * Do not walk the page table directly, use get_user_pages
115086 */
115087 -int access_process_vm(struct task_struct *tsk, unsigned long addr,
115088 - void *buf, int len, int write)
115089 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr,
115090 + void *buf, size_t len, int write)
115091 {
115092 struct mm_struct *mm;
115093 - int ret;
115094 + ssize_t ret;
115095
115096 mm = get_task_mm(tsk);
115097 if (!mm)
115098 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
115099 index 87a1779..ebf95d4 100644
115100 --- a/mm/mempolicy.c
115101 +++ b/mm/mempolicy.c
115102 @@ -700,6 +700,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
115103 unsigned long vmstart;
115104 unsigned long vmend;
115105
115106 +#ifdef CONFIG_PAX_SEGMEXEC
115107 + struct vm_area_struct *vma_m;
115108 +#endif
115109 +
115110 vma = find_vma(mm, start);
115111 if (!vma || vma->vm_start > start)
115112 return -EFAULT;
115113 @@ -743,6 +747,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
115114 err = vma_replace_policy(vma, new_pol);
115115 if (err)
115116 goto out;
115117 +
115118 +#ifdef CONFIG_PAX_SEGMEXEC
115119 + vma_m = pax_find_mirror_vma(vma);
115120 + if (vma_m) {
115121 + err = vma_replace_policy(vma_m, new_pol);
115122 + if (err)
115123 + goto out;
115124 + }
115125 +#endif
115126 +
115127 }
115128
115129 out:
115130 @@ -1158,6 +1172,17 @@ static long do_mbind(unsigned long start, unsigned long len,
115131
115132 if (end < start)
115133 return -EINVAL;
115134 +
115135 +#ifdef CONFIG_PAX_SEGMEXEC
115136 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
115137 + if (end > SEGMEXEC_TASK_SIZE)
115138 + return -EINVAL;
115139 + } else
115140 +#endif
115141 +
115142 + if (end > TASK_SIZE)
115143 + return -EINVAL;
115144 +
115145 if (end == start)
115146 return 0;
115147
115148 @@ -1383,8 +1408,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
115149 */
115150 tcred = __task_cred(task);
115151 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
115152 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
115153 - !capable(CAP_SYS_NICE)) {
115154 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
115155 rcu_read_unlock();
115156 err = -EPERM;
115157 goto out_put;
115158 @@ -1415,6 +1439,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
115159 goto out;
115160 }
115161
115162 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
115163 + if (mm != current->mm &&
115164 + (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
115165 + mmput(mm);
115166 + err = -EPERM;
115167 + goto out;
115168 + }
115169 +#endif
115170 +
115171 err = do_migrate_pages(mm, old, new,
115172 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
115173
115174 diff --git a/mm/migrate.c b/mm/migrate.c
115175 index 842ecd7..c8f2fc5 100644
115176 --- a/mm/migrate.c
115177 +++ b/mm/migrate.c
115178 @@ -1502,8 +1502,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
115179 */
115180 tcred = __task_cred(task);
115181 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
115182 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
115183 - !capable(CAP_SYS_NICE)) {
115184 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
115185 rcu_read_unlock();
115186 err = -EPERM;
115187 goto out;
115188 diff --git a/mm/mlock.c b/mm/mlock.c
115189 index 25936680..d0eff96 100644
115190 --- a/mm/mlock.c
115191 +++ b/mm/mlock.c
115192 @@ -14,6 +14,7 @@
115193 #include <linux/pagevec.h>
115194 #include <linux/mempolicy.h>
115195 #include <linux/syscalls.h>
115196 +#include <linux/security.h>
115197 #include <linux/sched.h>
115198 #include <linux/export.h>
115199 #include <linux/rmap.h>
115200 @@ -558,7 +559,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
115201 {
115202 unsigned long nstart, end, tmp;
115203 struct vm_area_struct * vma, * prev;
115204 - int error;
115205 + int error = 0;
115206
115207 VM_BUG_ON(start & ~PAGE_MASK);
115208 VM_BUG_ON(len != PAGE_ALIGN(len));
115209 @@ -567,6 +568,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
115210 return -EINVAL;
115211 if (end == start)
115212 return 0;
115213 + if (end > TASK_SIZE)
115214 + return -EINVAL;
115215 +
115216 vma = find_vma(current->mm, start);
115217 if (!vma || vma->vm_start > start)
115218 return -ENOMEM;
115219 @@ -578,6 +582,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
115220 for (nstart = start ; ; ) {
115221 vm_flags_t newflags;
115222
115223 +#ifdef CONFIG_PAX_SEGMEXEC
115224 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
115225 + break;
115226 +#endif
115227 +
115228 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */
115229
115230 newflags = vma->vm_flags & ~VM_LOCKED;
115231 @@ -628,6 +637,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
115232 locked += current->mm->locked_vm;
115233
115234 /* check against resource limits */
115235 + gr_learn_resource(current, RLIMIT_MEMLOCK, (current->mm->locked_vm << PAGE_SHIFT) + len, 1);
115236 if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
115237 error = do_mlock(start, len, 1);
115238
115239 @@ -669,6 +679,11 @@ static int do_mlockall(int flags)
115240 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
115241 vm_flags_t newflags;
115242
115243 +#ifdef CONFIG_PAX_SEGMEXEC
115244 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
115245 + break;
115246 +#endif
115247 +
115248 newflags = vma->vm_flags & ~VM_LOCKED;
115249 if (flags & MCL_CURRENT)
115250 newflags |= VM_LOCKED;
115251 @@ -700,8 +715,10 @@ SYSCALL_DEFINE1(mlockall, int, flags)
115252 lock_limit >>= PAGE_SHIFT;
115253
115254 ret = -ENOMEM;
115255 +
115256 + gr_learn_resource(current, RLIMIT_MEMLOCK, current->mm->total_vm << PAGE_SHIFT, 1);
115257 +
115258 down_write(&current->mm->mmap_sem);
115259 -
115260 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
115261 capable(CAP_IPC_LOCK))
115262 ret = do_mlockall(flags);
115263 diff --git a/mm/mm_init.c b/mm/mm_init.c
115264 index fdadf91..5f527d1 100644
115265 --- a/mm/mm_init.c
115266 +++ b/mm/mm_init.c
115267 @@ -170,7 +170,7 @@ static int __meminit mm_compute_batch_notifier(struct notifier_block *self,
115268 return NOTIFY_OK;
115269 }
115270
115271 -static struct notifier_block compute_batch_nb __meminitdata = {
115272 +static struct notifier_block compute_batch_nb __meminitconst = {
115273 .notifier_call = mm_compute_batch_notifier,
115274 .priority = IPC_CALLBACK_PRI, /* use lowest priority */
115275 };
115276 diff --git a/mm/mmap.c b/mm/mmap.c
115277 index 79bcc9f..481e0f5c 100644
115278 --- a/mm/mmap.c
115279 +++ b/mm/mmap.c
115280 @@ -42,6 +42,7 @@
115281 #include <linux/memory.h>
115282 #include <linux/printk.h>
115283 #include <linux/userfaultfd_k.h>
115284 +#include <linux/random.h>
115285
115286 #include <asm/uaccess.h>
115287 #include <asm/cacheflush.h>
115288 @@ -58,6 +59,16 @@
115289 #define arch_rebalance_pgtables(addr, len) (addr)
115290 #endif
115291
115292 +static inline void verify_mm_writelocked(struct mm_struct *mm)
115293 +{
115294 +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAX)
115295 + if (unlikely(down_read_trylock(&mm->mmap_sem))) {
115296 + up_read(&mm->mmap_sem);
115297 + BUG();
115298 + }
115299 +#endif
115300 +}
115301 +
115302 static void unmap_region(struct mm_struct *mm,
115303 struct vm_area_struct *vma, struct vm_area_struct *prev,
115304 unsigned long start, unsigned long end);
115305 @@ -77,16 +88,25 @@ static void unmap_region(struct mm_struct *mm,
115306 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes
115307 *
115308 */
115309 -pgprot_t protection_map[16] = {
115310 +pgprot_t protection_map[16] __read_only = {
115311 __P000, __P001, __P010, __P011, __P100, __P101, __P110, __P111,
115312 __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
115313 };
115314
115315 -pgprot_t vm_get_page_prot(unsigned long vm_flags)
115316 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
115317 {
115318 - return __pgprot(pgprot_val(protection_map[vm_flags &
115319 + pgprot_t prot = __pgprot(pgprot_val(protection_map[vm_flags &
115320 (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
115321 pgprot_val(arch_vm_get_page_prot(vm_flags)));
115322 +
115323 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115324 + if (!(__supported_pte_mask & _PAGE_NX) &&
115325 + (vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC &&
115326 + (vm_flags & (VM_READ | VM_WRITE)))
115327 + prot = __pgprot(pte_val(pte_exprotect(__pte(pgprot_val(prot)))));
115328 +#endif
115329 +
115330 + return prot;
115331 }
115332 EXPORT_SYMBOL(vm_get_page_prot);
115333
115334 @@ -115,6 +135,7 @@ unsigned long sysctl_overcommit_kbytes __read_mostly;
115335 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
115336 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
115337 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
115338 +unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024;
115339 /*
115340 * Make sure vm_committed_as in one cacheline and not cacheline shared with
115341 * other variables. It can be updated by several CPUs frequently.
115342 @@ -272,6 +293,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
115343 struct vm_area_struct *next = vma->vm_next;
115344
115345 might_sleep();
115346 + BUG_ON(vma->vm_mirror);
115347 if (vma->vm_ops && vma->vm_ops->close)
115348 vma->vm_ops->close(vma);
115349 if (vma->vm_file)
115350 @@ -285,6 +307,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len);
115351
115352 SYSCALL_DEFINE1(brk, unsigned long, brk)
115353 {
115354 + unsigned long rlim;
115355 unsigned long retval;
115356 unsigned long newbrk, oldbrk;
115357 struct mm_struct *mm = current->mm;
115358 @@ -315,7 +338,13 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
115359 * segment grow beyond its set limit the in case where the limit is
115360 * not page aligned -Ram Gupta
115361 */
115362 - if (check_data_rlimit(rlimit(RLIMIT_DATA), brk, mm->start_brk,
115363 + rlim = rlimit(RLIMIT_DATA);
115364 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
115365 + /* force a minimum 16MB brk heap on setuid/setgid binaries */
115366 + if (rlim < (4096 * PAGE_SIZE) && (get_dumpable(mm) != SUID_DUMP_USER) && gr_is_global_nonroot(current_uid()))
115367 + rlim = 4096 * PAGE_SIZE;
115368 +#endif
115369 + if (check_data_rlimit(rlim, brk, mm->start_brk,
115370 mm->end_data, mm->start_data))
115371 goto out;
115372
115373 @@ -973,6 +1002,12 @@ can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
115374 pgoff_t vm_pgoff,
115375 struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
115376 {
115377 +
115378 +#ifdef CONFIG_PAX_SEGMEXEC
115379 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_start == SEGMEXEC_TASK_SIZE)
115380 + return 0;
115381 +#endif
115382 +
115383 if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
115384 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
115385 if (vma->vm_pgoff == vm_pgoff)
115386 @@ -994,6 +1029,12 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
115387 pgoff_t vm_pgoff,
115388 struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
115389 {
115390 +
115391 +#ifdef CONFIG_PAX_SEGMEXEC
115392 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end == SEGMEXEC_TASK_SIZE)
115393 + return 0;
115394 +#endif
115395 +
115396 if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
115397 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
115398 pgoff_t vm_pglen;
115399 @@ -1044,6 +1085,13 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115400 struct vm_area_struct *area, *next;
115401 int err;
115402
115403 +#ifdef CONFIG_PAX_SEGMEXEC
115404 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE, end_m = end + SEGMEXEC_TASK_SIZE;
115405 + struct vm_area_struct *area_m = NULL, *next_m = NULL, *prev_m = NULL;
115406 +
115407 + BUG_ON((mm->pax_flags & MF_PAX_SEGMEXEC) && SEGMEXEC_TASK_SIZE < end);
115408 +#endif
115409 +
115410 /*
115411 * We later require that vma->vm_flags == vm_flags,
115412 * so this tests vma->vm_flags & VM_SPECIAL, too.
115413 @@ -1059,6 +1107,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115414 if (next && next->vm_end == end) /* cases 6, 7, 8 */
115415 next = next->vm_next;
115416
115417 +#ifdef CONFIG_PAX_SEGMEXEC
115418 + if (prev)
115419 + prev_m = pax_find_mirror_vma(prev);
115420 + if (area)
115421 + area_m = pax_find_mirror_vma(area);
115422 + if (next)
115423 + next_m = pax_find_mirror_vma(next);
115424 +#endif
115425 +
115426 /*
115427 * Can it merge with the predecessor?
115428 */
115429 @@ -1081,9 +1138,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115430 /* cases 1, 6 */
115431 err = vma_adjust(prev, prev->vm_start,
115432 next->vm_end, prev->vm_pgoff, NULL);
115433 - } else /* cases 2, 5, 7 */
115434 +
115435 +#ifdef CONFIG_PAX_SEGMEXEC
115436 + if (!err && prev_m)
115437 + err = vma_adjust(prev_m, prev_m->vm_start,
115438 + next_m->vm_end, prev_m->vm_pgoff, NULL);
115439 +#endif
115440 +
115441 + } else { /* cases 2, 5, 7 */
115442 err = vma_adjust(prev, prev->vm_start,
115443 end, prev->vm_pgoff, NULL);
115444 +
115445 +#ifdef CONFIG_PAX_SEGMEXEC
115446 + if (!err && prev_m)
115447 + err = vma_adjust(prev_m, prev_m->vm_start,
115448 + end_m, prev_m->vm_pgoff, NULL);
115449 +#endif
115450 +
115451 + }
115452 if (err)
115453 return NULL;
115454 khugepaged_enter_vma_merge(prev, vm_flags);
115455 @@ -1098,12 +1170,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115456 can_vma_merge_before(next, vm_flags,
115457 anon_vma, file, pgoff+pglen,
115458 vm_userfaultfd_ctx)) {
115459 - if (prev && addr < prev->vm_end) /* case 4 */
115460 + if (prev && addr < prev->vm_end) { /* case 4 */
115461 err = vma_adjust(prev, prev->vm_start,
115462 addr, prev->vm_pgoff, NULL);
115463 - else /* cases 3, 8 */
115464 +
115465 +#ifdef CONFIG_PAX_SEGMEXEC
115466 + if (!err && prev_m)
115467 + err = vma_adjust(prev_m, prev_m->vm_start,
115468 + addr_m, prev_m->vm_pgoff, NULL);
115469 +#endif
115470 +
115471 + } else { /* cases 3, 8 */
115472 err = vma_adjust(area, addr, next->vm_end,
115473 next->vm_pgoff - pglen, NULL);
115474 +
115475 +#ifdef CONFIG_PAX_SEGMEXEC
115476 + if (!err && area_m)
115477 + err = vma_adjust(area_m, addr_m, next_m->vm_end,
115478 + next_m->vm_pgoff - pglen, NULL);
115479 +#endif
115480 +
115481 + }
115482 if (err)
115483 return NULL;
115484 khugepaged_enter_vma_merge(area, vm_flags);
115485 @@ -1212,8 +1299,10 @@ none:
115486 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
115487 struct file *file, long pages)
115488 {
115489 - const unsigned long stack_flags
115490 - = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN);
115491 +
115492 +#ifdef CONFIG_PAX_RANDMMAP
115493 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
115494 +#endif
115495
115496 mm->total_vm += pages;
115497
115498 @@ -1221,7 +1310,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
115499 mm->shared_vm += pages;
115500 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
115501 mm->exec_vm += pages;
115502 - } else if (flags & stack_flags)
115503 + } else if (flags & (VM_GROWSUP|VM_GROWSDOWN))
115504 mm->stack_vm += pages;
115505 }
115506 #endif /* CONFIG_PROC_FS */
115507 @@ -1251,6 +1340,7 @@ static inline int mlock_future_check(struct mm_struct *mm,
115508 locked += mm->locked_vm;
115509 lock_limit = rlimit(RLIMIT_MEMLOCK);
115510 lock_limit >>= PAGE_SHIFT;
115511 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
115512 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
115513 return -EAGAIN;
115514 }
115515 @@ -1278,7 +1368,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
115516 * (the exception is when the underlying filesystem is noexec
115517 * mounted, in which case we dont add PROT_EXEC.)
115518 */
115519 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
115520 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
115521 if (!(file && path_noexec(&file->f_path)))
115522 prot |= PROT_EXEC;
115523
115524 @@ -1301,7 +1391,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
115525 /* Obtain the address to map to. we verify (or select) it and ensure
115526 * that it represents a valid section of the address space.
115527 */
115528 - addr = get_unmapped_area(file, addr, len, pgoff, flags);
115529 + addr = get_unmapped_area(file, addr, len, pgoff, flags | ((prot & PROT_EXEC) ? MAP_EXECUTABLE : 0));
115530 if (addr & ~PAGE_MASK)
115531 return addr;
115532
115533 @@ -1312,6 +1402,43 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
115534 vm_flags |= calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
115535 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
115536
115537 +#ifdef CONFIG_PAX_MPROTECT
115538 + if (mm->pax_flags & MF_PAX_MPROTECT) {
115539 +
115540 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
115541 + if (file && !pgoff && (vm_flags & VM_EXEC) && mm->binfmt &&
115542 + mm->binfmt->handle_mmap)
115543 + mm->binfmt->handle_mmap(file);
115544 +#endif
115545 +
115546 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
115547 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) {
115548 + gr_log_rwxmmap(file);
115549 +
115550 +#ifdef CONFIG_PAX_EMUPLT
115551 + vm_flags &= ~VM_EXEC;
115552 +#else
115553 + return -EPERM;
115554 +#endif
115555 +
115556 + }
115557 +
115558 + if (!(vm_flags & VM_EXEC))
115559 + vm_flags &= ~VM_MAYEXEC;
115560 +#else
115561 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
115562 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
115563 +#endif
115564 + else
115565 + vm_flags &= ~VM_MAYWRITE;
115566 + }
115567 +#endif
115568 +
115569 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115570 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && file)
115571 + vm_flags &= ~VM_PAGEEXEC;
115572 +#endif
115573 +
115574 if (flags & MAP_LOCKED)
115575 if (!can_do_mlock())
115576 return -EPERM;
115577 @@ -1399,6 +1526,9 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
115578 vm_flags |= VM_NORESERVE;
115579 }
115580
115581 + if (!gr_acl_handle_mmap(file, prot))
115582 + return -EACCES;
115583 +
115584 addr = mmap_region(file, addr, len, vm_flags, pgoff);
115585 if (!IS_ERR_VALUE(addr) &&
115586 ((vm_flags & VM_LOCKED) ||
115587 @@ -1493,7 +1623,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
115588 const struct vm_operations_struct *vm_ops = vma->vm_ops;
115589
115590 /* If it was private or non-writable, the write bit is already clear */
115591 - if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
115592 + if ((vm_flags & (VM_WRITE|VM_SHARED)) != (VM_WRITE|VM_SHARED))
115593 return 0;
115594
115595 /* The backer wishes to know when pages are first written to? */
115596 @@ -1544,7 +1674,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115597 struct rb_node **rb_link, *rb_parent;
115598 unsigned long charged = 0;
115599
115600 +#ifdef CONFIG_PAX_SEGMEXEC
115601 + struct vm_area_struct *vma_m = NULL;
115602 +#endif
115603 +
115604 + /*
115605 + * mm->mmap_sem is required to protect against another thread
115606 + * changing the mappings in case we sleep.
115607 + */
115608 + verify_mm_writelocked(mm);
115609 +
115610 /* Check against address space limit. */
115611 +
115612 +#ifdef CONFIG_PAX_RANDMMAP
115613 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
115614 +#endif
115615 +
115616 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
115617 unsigned long nr_pages;
115618
115619 @@ -1567,6 +1712,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115620 &rb_parent)) {
115621 if (do_munmap(mm, addr, len))
115622 return -ENOMEM;
115623 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
115624 }
115625
115626 /*
115627 @@ -1598,6 +1744,16 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115628 goto unacct_error;
115629 }
115630
115631 +#ifdef CONFIG_PAX_SEGMEXEC
115632 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vm_flags & VM_EXEC)) {
115633 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
115634 + if (!vma_m) {
115635 + error = -ENOMEM;
115636 + goto free_vma;
115637 + }
115638 + }
115639 +#endif
115640 +
115641 vma->vm_mm = mm;
115642 vma->vm_start = addr;
115643 vma->vm_end = addr + len;
115644 @@ -1628,6 +1784,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115645 if (error)
115646 goto unmap_and_free_vma;
115647
115648 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115649 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && !(vma->vm_flags & VM_SPECIAL)) {
115650 + vma->vm_flags |= VM_PAGEEXEC;
115651 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
115652 + }
115653 +#endif
115654 +
115655 /* Can addr have changed??
115656 *
115657 * Answer: Yes, several device drivers can do it in their
115658 @@ -1646,6 +1809,12 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115659 }
115660
115661 vma_link(mm, vma, prev, rb_link, rb_parent);
115662 +
115663 +#ifdef CONFIG_PAX_SEGMEXEC
115664 + if (vma_m)
115665 + BUG_ON(pax_mirror_vma(vma_m, vma));
115666 +#endif
115667 +
115668 /* Once vma denies write, undo our temporary denial count */
115669 if (file) {
115670 if (vm_flags & VM_SHARED)
115671 @@ -1658,6 +1827,7 @@ out:
115672 perf_event_mmap(vma);
115673
115674 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
115675 + track_exec_limit(mm, addr, addr + len, vm_flags);
115676 if (vm_flags & VM_LOCKED) {
115677 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
115678 vma == get_gate_vma(current->mm)))
115679 @@ -1695,6 +1865,12 @@ allow_write_and_free_vma:
115680 if (vm_flags & VM_DENYWRITE)
115681 allow_write_access(file);
115682 free_vma:
115683 +
115684 +#ifdef CONFIG_PAX_SEGMEXEC
115685 + if (vma_m)
115686 + kmem_cache_free(vm_area_cachep, vma_m);
115687 +#endif
115688 +
115689 kmem_cache_free(vm_area_cachep, vma);
115690 unacct_error:
115691 if (charged)
115692 @@ -1702,7 +1878,63 @@ unacct_error:
115693 return error;
115694 }
115695
115696 -unsigned long unmapped_area(struct vm_unmapped_area_info *info)
115697 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
115698 +unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
115699 +{
115700 + if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK))
115701 + return ((prandom_u32() & 0xFF) + 1) << PAGE_SHIFT;
115702 +
115703 + return 0;
115704 +}
115705 +#endif
115706 +
115707 +bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset)
115708 +{
115709 + if (!vma) {
115710 +#ifdef CONFIG_STACK_GROWSUP
115711 + if (addr > sysctl_heap_stack_gap)
115712 + vma = find_vma(current->mm, addr - sysctl_heap_stack_gap);
115713 + else
115714 + vma = find_vma(current->mm, 0);
115715 + if (vma && (vma->vm_flags & VM_GROWSUP))
115716 + return false;
115717 +#endif
115718 + return true;
115719 + }
115720 +
115721 + if (addr + len > vma->vm_start)
115722 + return false;
115723 +
115724 + if (vma->vm_flags & VM_GROWSDOWN)
115725 + return sysctl_heap_stack_gap <= vma->vm_start - addr - len;
115726 +#ifdef CONFIG_STACK_GROWSUP
115727 + else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP))
115728 + return addr - vma->vm_prev->vm_end >= sysctl_heap_stack_gap;
115729 +#endif
115730 + else if (offset)
115731 + return offset <= vma->vm_start - addr - len;
115732 +
115733 + return true;
115734 +}
115735 +
115736 +unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset)
115737 +{
115738 + if (vma->vm_start < len)
115739 + return -ENOMEM;
115740 +
115741 + if (!(vma->vm_flags & VM_GROWSDOWN)) {
115742 + if (offset <= vma->vm_start - len)
115743 + return vma->vm_start - len - offset;
115744 + else
115745 + return -ENOMEM;
115746 + }
115747 +
115748 + if (sysctl_heap_stack_gap <= vma->vm_start - len)
115749 + return vma->vm_start - len - sysctl_heap_stack_gap;
115750 + return -ENOMEM;
115751 +}
115752 +
115753 +unsigned long unmapped_area(const struct vm_unmapped_area_info *info)
115754 {
115755 /*
115756 * We implement the search by looking for an rbtree node that
115757 @@ -1750,11 +1982,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
115758 }
115759 }
115760
115761 - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0;
115762 + gap_start = vma->vm_prev ? vma->vm_prev->vm_end: 0;
115763 check_current:
115764 /* Check if current node has a suitable gap */
115765 if (gap_start > high_limit)
115766 return -ENOMEM;
115767 +
115768 + if (gap_end - gap_start > info->threadstack_offset)
115769 + gap_start += info->threadstack_offset;
115770 + else
115771 + gap_start = gap_end;
115772 +
115773 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
115774 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115775 + gap_start += sysctl_heap_stack_gap;
115776 + else
115777 + gap_start = gap_end;
115778 + }
115779 + if (vma->vm_flags & VM_GROWSDOWN) {
115780 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115781 + gap_end -= sysctl_heap_stack_gap;
115782 + else
115783 + gap_end = gap_start;
115784 + }
115785 if (gap_end >= low_limit && gap_end - gap_start >= length)
115786 goto found;
115787
115788 @@ -1804,7 +2054,7 @@ found:
115789 return gap_start;
115790 }
115791
115792 -unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info)
115793 +unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info)
115794 {
115795 struct mm_struct *mm = current->mm;
115796 struct vm_area_struct *vma;
115797 @@ -1858,6 +2108,24 @@ check_current:
115798 gap_end = vma->vm_start;
115799 if (gap_end < low_limit)
115800 return -ENOMEM;
115801 +
115802 + if (gap_end - gap_start > info->threadstack_offset)
115803 + gap_end -= info->threadstack_offset;
115804 + else
115805 + gap_end = gap_start;
115806 +
115807 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
115808 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115809 + gap_start += sysctl_heap_stack_gap;
115810 + else
115811 + gap_start = gap_end;
115812 + }
115813 + if (vma->vm_flags & VM_GROWSDOWN) {
115814 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115815 + gap_end -= sysctl_heap_stack_gap;
115816 + else
115817 + gap_end = gap_start;
115818 + }
115819 if (gap_start <= high_limit && gap_end - gap_start >= length)
115820 goto found;
115821
115822 @@ -1921,6 +2189,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115823 struct mm_struct *mm = current->mm;
115824 struct vm_area_struct *vma;
115825 struct vm_unmapped_area_info info;
115826 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
115827
115828 if (len > TASK_SIZE - mmap_min_addr)
115829 return -ENOMEM;
115830 @@ -1928,11 +2197,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115831 if (flags & MAP_FIXED)
115832 return addr;
115833
115834 +#ifdef CONFIG_PAX_RANDMMAP
115835 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
115836 +#endif
115837 +
115838 if (addr) {
115839 addr = PAGE_ALIGN(addr);
115840 vma = find_vma(mm, addr);
115841 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
115842 - (!vma || addr + len <= vma->vm_start))
115843 + check_heap_stack_gap(vma, addr, len, offset))
115844 return addr;
115845 }
115846
115847 @@ -1941,6 +2214,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115848 info.low_limit = mm->mmap_base;
115849 info.high_limit = TASK_SIZE;
115850 info.align_mask = 0;
115851 + info.threadstack_offset = offset;
115852 return vm_unmapped_area(&info);
115853 }
115854 #endif
115855 @@ -1959,6 +2233,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115856 struct mm_struct *mm = current->mm;
115857 unsigned long addr = addr0;
115858 struct vm_unmapped_area_info info;
115859 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
115860
115861 /* requested length too big for entire address space */
115862 if (len > TASK_SIZE - mmap_min_addr)
115863 @@ -1967,12 +2242,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115864 if (flags & MAP_FIXED)
115865 return addr;
115866
115867 +#ifdef CONFIG_PAX_RANDMMAP
115868 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
115869 +#endif
115870 +
115871 /* requesting a specific address */
115872 if (addr) {
115873 addr = PAGE_ALIGN(addr);
115874 vma = find_vma(mm, addr);
115875 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
115876 - (!vma || addr + len <= vma->vm_start))
115877 + check_heap_stack_gap(vma, addr, len, offset))
115878 return addr;
115879 }
115880
115881 @@ -1981,6 +2260,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115882 info.low_limit = max(PAGE_SIZE, mmap_min_addr);
115883 info.high_limit = mm->mmap_base;
115884 info.align_mask = 0;
115885 + info.threadstack_offset = offset;
115886 addr = vm_unmapped_area(&info);
115887
115888 /*
115889 @@ -1993,6 +2273,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115890 VM_BUG_ON(addr != -ENOMEM);
115891 info.flags = 0;
115892 info.low_limit = TASK_UNMAPPED_BASE;
115893 +
115894 +#ifdef CONFIG_PAX_RANDMMAP
115895 + if (mm->pax_flags & MF_PAX_RANDMMAP)
115896 + info.low_limit += mm->delta_mmap;
115897 +#endif
115898 +
115899 info.high_limit = TASK_SIZE;
115900 addr = vm_unmapped_area(&info);
115901 }
115902 @@ -2093,6 +2379,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
115903 return vma;
115904 }
115905
115906 +#ifdef CONFIG_PAX_SEGMEXEC
115907 +struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma)
115908 +{
115909 + struct vm_area_struct *vma_m;
115910 +
115911 + BUG_ON(!vma || vma->vm_start >= vma->vm_end);
115912 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC)) {
115913 + BUG_ON(vma->vm_mirror);
115914 + return NULL;
115915 + }
115916 + BUG_ON(vma->vm_start < SEGMEXEC_TASK_SIZE && SEGMEXEC_TASK_SIZE < vma->vm_end);
115917 + vma_m = vma->vm_mirror;
115918 + BUG_ON(!vma_m || vma_m->vm_mirror != vma);
115919 + BUG_ON(vma->vm_file != vma_m->vm_file);
115920 + BUG_ON(vma->vm_end - vma->vm_start != vma_m->vm_end - vma_m->vm_start);
115921 + BUG_ON(vma->vm_pgoff != vma_m->vm_pgoff);
115922 + BUG_ON(vma->anon_vma != vma_m->anon_vma && vma->anon_vma->root != vma_m->anon_vma->root);
115923 + BUG_ON((vma->vm_flags ^ vma_m->vm_flags) & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED));
115924 + return vma_m;
115925 +}
115926 +#endif
115927 +
115928 /*
115929 * Verify that the stack growth is acceptable and
115930 * update accounting. This is shared with both the
115931 @@ -2110,8 +2418,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115932
115933 /* Stack limit test */
115934 actual_size = size;
115935 - if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN)))
115936 - actual_size -= PAGE_SIZE;
115937 + gr_learn_resource(current, RLIMIT_STACK, actual_size, 1);
115938 if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur))
115939 return -ENOMEM;
115940
115941 @@ -2122,6 +2429,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115942 locked = mm->locked_vm + grow;
115943 limit = READ_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
115944 limit >>= PAGE_SHIFT;
115945 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
115946 if (locked > limit && !capable(CAP_IPC_LOCK))
115947 return -ENOMEM;
115948 }
115949 @@ -2151,37 +2459,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115950 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
115951 * vma is the last one with address > vma->vm_end. Have to extend vma.
115952 */
115953 +#ifndef CONFIG_IA64
115954 +static
115955 +#endif
115956 int expand_upwards(struct vm_area_struct *vma, unsigned long address)
115957 {
115958 int error;
115959 + bool locknext;
115960
115961 if (!(vma->vm_flags & VM_GROWSUP))
115962 return -EFAULT;
115963
115964 + /* Also guard against wrapping around to address 0. */
115965 + if (address < PAGE_ALIGN(address+1))
115966 + address = PAGE_ALIGN(address+1);
115967 + else
115968 + return -ENOMEM;
115969 +
115970 /*
115971 * We must make sure the anon_vma is allocated
115972 * so that the anon_vma locking is not a noop.
115973 */
115974 if (unlikely(anon_vma_prepare(vma)))
115975 return -ENOMEM;
115976 + locknext = vma->vm_next && (vma->vm_next->vm_flags & VM_GROWSDOWN);
115977 + if (locknext && anon_vma_prepare(vma->vm_next))
115978 + return -ENOMEM;
115979 vma_lock_anon_vma(vma);
115980 + if (locknext)
115981 + vma_lock_anon_vma(vma->vm_next);
115982
115983 /*
115984 * vma->vm_start/vm_end cannot change under us because the caller
115985 * is required to hold the mmap_sem in read mode. We need the
115986 - * anon_vma lock to serialize against concurrent expand_stacks.
115987 - * Also guard against wrapping around to address 0.
115988 + * anon_vma locks to serialize against concurrent expand_stacks
115989 + * and expand_upwards.
115990 */
115991 - if (address < PAGE_ALIGN(address+4))
115992 - address = PAGE_ALIGN(address+4);
115993 - else {
115994 - vma_unlock_anon_vma(vma);
115995 - return -ENOMEM;
115996 - }
115997 error = 0;
115998
115999 /* Somebody else might have raced and expanded it already */
116000 - if (address > vma->vm_end) {
116001 + if (vma->vm_next && (vma->vm_next->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) && vma->vm_next->vm_start - address < sysctl_heap_stack_gap)
116002 + error = -ENOMEM;
116003 + else if (address > vma->vm_end && (!locknext || vma->vm_next->vm_start >= address)) {
116004 unsigned long size, grow;
116005
116006 size = address - vma->vm_start;
116007 @@ -2216,6 +2535,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
116008 }
116009 }
116010 }
116011 + if (locknext)
116012 + vma_unlock_anon_vma(vma->vm_next);
116013 vma_unlock_anon_vma(vma);
116014 khugepaged_enter_vma_merge(vma, vma->vm_flags);
116015 validate_mm(vma->vm_mm);
116016 @@ -2230,6 +2551,8 @@ int expand_downwards(struct vm_area_struct *vma,
116017 unsigned long address)
116018 {
116019 int error;
116020 + bool lockprev = false;
116021 + struct vm_area_struct *prev;
116022
116023 /*
116024 * We must make sure the anon_vma is allocated
116025 @@ -2243,6 +2566,15 @@ int expand_downwards(struct vm_area_struct *vma,
116026 if (error)
116027 return error;
116028
116029 + prev = vma->vm_prev;
116030 +#if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
116031 + lockprev = prev && (prev->vm_flags & VM_GROWSUP);
116032 +#endif
116033 + if (lockprev && anon_vma_prepare(prev))
116034 + return -ENOMEM;
116035 + if (lockprev)
116036 + vma_lock_anon_vma(prev);
116037 +
116038 vma_lock_anon_vma(vma);
116039
116040 /*
116041 @@ -2252,9 +2584,17 @@ int expand_downwards(struct vm_area_struct *vma,
116042 */
116043
116044 /* Somebody else might have raced and expanded it already */
116045 - if (address < vma->vm_start) {
116046 + if (prev && (prev->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) && address - prev->vm_end < sysctl_heap_stack_gap)
116047 + error = -ENOMEM;
116048 + else if (address < vma->vm_start && (!lockprev || prev->vm_end <= address)) {
116049 unsigned long size, grow;
116050
116051 +#ifdef CONFIG_PAX_SEGMEXEC
116052 + struct vm_area_struct *vma_m;
116053 +
116054 + vma_m = pax_find_mirror_vma(vma);
116055 +#endif
116056 +
116057 size = vma->vm_end - address;
116058 grow = (vma->vm_start - address) >> PAGE_SHIFT;
116059
116060 @@ -2279,13 +2619,27 @@ int expand_downwards(struct vm_area_struct *vma,
116061 vma->vm_pgoff -= grow;
116062 anon_vma_interval_tree_post_update_vma(vma);
116063 vma_gap_update(vma);
116064 +
116065 +#ifdef CONFIG_PAX_SEGMEXEC
116066 + if (vma_m) {
116067 + anon_vma_interval_tree_pre_update_vma(vma_m);
116068 + vma_m->vm_start -= grow << PAGE_SHIFT;
116069 + vma_m->vm_pgoff -= grow;
116070 + anon_vma_interval_tree_post_update_vma(vma_m);
116071 + vma_gap_update(vma_m);
116072 + }
116073 +#endif
116074 +
116075 spin_unlock(&vma->vm_mm->page_table_lock);
116076
116077 + track_exec_limit(vma->vm_mm, vma->vm_start, vma->vm_end, vma->vm_flags);
116078 perf_event_mmap(vma);
116079 }
116080 }
116081 }
116082 vma_unlock_anon_vma(vma);
116083 + if (lockprev)
116084 + vma_unlock_anon_vma(prev);
116085 khugepaged_enter_vma_merge(vma, vma->vm_flags);
116086 validate_mm(vma->vm_mm);
116087 return error;
116088 @@ -2385,6 +2739,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
116089 do {
116090 long nrpages = vma_pages(vma);
116091
116092 +#ifdef CONFIG_PAX_SEGMEXEC
116093 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE)) {
116094 + vma = remove_vma(vma);
116095 + continue;
116096 + }
116097 +#endif
116098 +
116099 if (vma->vm_flags & VM_ACCOUNT)
116100 nr_accounted += nrpages;
116101 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
116102 @@ -2429,6 +2790,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
116103 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
116104 vma->vm_prev = NULL;
116105 do {
116106 +
116107 +#ifdef CONFIG_PAX_SEGMEXEC
116108 + if (vma->vm_mirror) {
116109 + BUG_ON(!vma->vm_mirror->vm_mirror || vma->vm_mirror->vm_mirror != vma);
116110 + vma->vm_mirror->vm_mirror = NULL;
116111 + vma->vm_mirror->vm_flags &= ~VM_EXEC;
116112 + vma->vm_mirror = NULL;
116113 + }
116114 +#endif
116115 +
116116 vma_rb_erase(vma, &mm->mm_rb);
116117 mm->map_count--;
116118 tail_vma = vma;
116119 @@ -2456,14 +2827,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116120 struct vm_area_struct *new;
116121 int err;
116122
116123 +#ifdef CONFIG_PAX_SEGMEXEC
116124 + struct vm_area_struct *vma_m, *new_m = NULL;
116125 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE;
116126 +#endif
116127 +
116128 if (is_vm_hugetlb_page(vma) && (addr &
116129 ~(huge_page_mask(hstate_vma(vma)))))
116130 return -EINVAL;
116131
116132 +#ifdef CONFIG_PAX_SEGMEXEC
116133 + vma_m = pax_find_mirror_vma(vma);
116134 +#endif
116135 +
116136 new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
116137 if (!new)
116138 return -ENOMEM;
116139
116140 +#ifdef CONFIG_PAX_SEGMEXEC
116141 + if (vma_m) {
116142 + new_m = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
116143 + if (!new_m) {
116144 + kmem_cache_free(vm_area_cachep, new);
116145 + return -ENOMEM;
116146 + }
116147 + }
116148 +#endif
116149 +
116150 /* most fields are the same, copy all, and then fixup */
116151 *new = *vma;
116152
116153 @@ -2476,6 +2866,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116154 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
116155 }
116156
116157 +#ifdef CONFIG_PAX_SEGMEXEC
116158 + if (vma_m) {
116159 + *new_m = *vma_m;
116160 + INIT_LIST_HEAD(&new_m->anon_vma_chain);
116161 + new_m->vm_mirror = new;
116162 + new->vm_mirror = new_m;
116163 +
116164 + if (new_below)
116165 + new_m->vm_end = addr_m;
116166 + else {
116167 + new_m->vm_start = addr_m;
116168 + new_m->vm_pgoff += ((addr_m - vma_m->vm_start) >> PAGE_SHIFT);
116169 + }
116170 + }
116171 +#endif
116172 +
116173 err = vma_dup_policy(vma, new);
116174 if (err)
116175 goto out_free_vma;
116176 @@ -2496,6 +2902,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116177 else
116178 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
116179
116180 +#ifdef CONFIG_PAX_SEGMEXEC
116181 + if (!err && vma_m) {
116182 + struct mempolicy *pol = vma_policy(new);
116183 +
116184 + if (anon_vma_clone(new_m, vma_m))
116185 + goto out_free_mpol;
116186 +
116187 + mpol_get(pol);
116188 + set_vma_policy(new_m, pol);
116189 +
116190 + if (new_m->vm_file)
116191 + get_file(new_m->vm_file);
116192 +
116193 + if (new_m->vm_ops && new_m->vm_ops->open)
116194 + new_m->vm_ops->open(new_m);
116195 +
116196 + if (new_below)
116197 + err = vma_adjust(vma_m, addr_m, vma_m->vm_end, vma_m->vm_pgoff +
116198 + ((addr_m - new_m->vm_start) >> PAGE_SHIFT), new_m);
116199 + else
116200 + err = vma_adjust(vma_m, vma_m->vm_start, addr_m, vma_m->vm_pgoff, new_m);
116201 +
116202 + if (err) {
116203 + if (new_m->vm_ops && new_m->vm_ops->close)
116204 + new_m->vm_ops->close(new_m);
116205 + if (new_m->vm_file)
116206 + fput(new_m->vm_file);
116207 + mpol_put(pol);
116208 + }
116209 + }
116210 +#endif
116211 +
116212 /* Success. */
116213 if (!err)
116214 return 0;
116215 @@ -2505,10 +2943,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116216 new->vm_ops->close(new);
116217 if (new->vm_file)
116218 fput(new->vm_file);
116219 - unlink_anon_vmas(new);
116220 out_free_mpol:
116221 mpol_put(vma_policy(new));
116222 out_free_vma:
116223 +
116224 +#ifdef CONFIG_PAX_SEGMEXEC
116225 + if (new_m) {
116226 + unlink_anon_vmas(new_m);
116227 + kmem_cache_free(vm_area_cachep, new_m);
116228 + }
116229 +#endif
116230 +
116231 + unlink_anon_vmas(new);
116232 kmem_cache_free(vm_area_cachep, new);
116233 return err;
116234 }
116235 @@ -2520,6 +2966,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116236 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116237 unsigned long addr, int new_below)
116238 {
116239 +
116240 +#ifdef CONFIG_PAX_SEGMEXEC
116241 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
116242 + BUG_ON(vma->vm_end > SEGMEXEC_TASK_SIZE);
116243 + if (mm->map_count >= sysctl_max_map_count-1)
116244 + return -ENOMEM;
116245 + } else
116246 +#endif
116247 +
116248 if (mm->map_count >= sysctl_max_map_count)
116249 return -ENOMEM;
116250
116251 @@ -2531,11 +2986,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116252 * work. This now handles partial unmappings.
116253 * Jeremy Fitzhardinge <jeremy@goop.org>
116254 */
116255 +#ifdef CONFIG_PAX_SEGMEXEC
116256 int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
116257 {
116258 + int ret = __do_munmap(mm, start, len);
116259 + if (ret || !(mm->pax_flags & MF_PAX_SEGMEXEC))
116260 + return ret;
116261 +
116262 + return __do_munmap(mm, start + SEGMEXEC_TASK_SIZE, len);
116263 +}
116264 +
116265 +int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
116266 +#else
116267 +int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
116268 +#endif
116269 +{
116270 unsigned long end;
116271 struct vm_area_struct *vma, *prev, *last;
116272
116273 + /*
116274 + * mm->mmap_sem is required to protect against another thread
116275 + * changing the mappings in case we sleep.
116276 + */
116277 + verify_mm_writelocked(mm);
116278 +
116279 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
116280 return -EINVAL;
116281
116282 @@ -2613,6 +3087,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
116283 /* Fix up all other VM information */
116284 remove_vma_list(mm, vma);
116285
116286 + track_exec_limit(mm, start, end, 0UL);
116287 +
116288 return 0;
116289 }
116290
116291 @@ -2621,6 +3097,13 @@ int vm_munmap(unsigned long start, size_t len)
116292 int ret;
116293 struct mm_struct *mm = current->mm;
116294
116295 +
116296 +#ifdef CONFIG_PAX_SEGMEXEC
116297 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) &&
116298 + (len > SEGMEXEC_TASK_SIZE || start > SEGMEXEC_TASK_SIZE-len))
116299 + return -EINVAL;
116300 +#endif
116301 +
116302 down_write(&mm->mmap_sem);
116303 ret = do_munmap(mm, start, len);
116304 up_write(&mm->mmap_sem);
116305 @@ -2667,6 +3150,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
116306 down_write(&mm->mmap_sem);
116307 vma = find_vma(mm, start);
116308
116309 +#ifdef CONFIG_PAX_SEGMEXEC
116310 + if (vma && (mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_MAYEXEC))
116311 + goto out;
116312 +#endif
116313 +
116314 if (!vma || !(vma->vm_flags & VM_SHARED))
116315 goto out;
116316
116317 @@ -2703,16 +3191,6 @@ out:
116318 return ret;
116319 }
116320
116321 -static inline void verify_mm_writelocked(struct mm_struct *mm)
116322 -{
116323 -#ifdef CONFIG_DEBUG_VM
116324 - if (unlikely(down_read_trylock(&mm->mmap_sem))) {
116325 - WARN_ON(1);
116326 - up_read(&mm->mmap_sem);
116327 - }
116328 -#endif
116329 -}
116330 -
116331 /*
116332 * this is really a simplified "do_mmap". it only handles
116333 * anonymous maps. eventually we may be able to do some
116334 @@ -2726,6 +3204,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116335 struct rb_node **rb_link, *rb_parent;
116336 pgoff_t pgoff = addr >> PAGE_SHIFT;
116337 int error;
116338 + unsigned long charged;
116339
116340 len = PAGE_ALIGN(len);
116341 if (!len)
116342 @@ -2733,10 +3212,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116343
116344 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
116345
116346 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
116347 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
116348 + flags &= ~VM_EXEC;
116349 +
116350 +#ifdef CONFIG_PAX_MPROTECT
116351 + if (mm->pax_flags & MF_PAX_MPROTECT)
116352 + flags &= ~VM_MAYEXEC;
116353 +#endif
116354 +
116355 + }
116356 +#endif
116357 +
116358 error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
116359 if (error & ~PAGE_MASK)
116360 return error;
116361
116362 + charged = len >> PAGE_SHIFT;
116363 +
116364 error = mlock_future_check(mm, mm->def_flags, len);
116365 if (error)
116366 return error;
116367 @@ -2754,16 +3247,17 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116368 &rb_parent)) {
116369 if (do_munmap(mm, addr, len))
116370 return -ENOMEM;
116371 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
116372 }
116373
116374 /* Check against address space limits *after* clearing old maps... */
116375 - if (!may_expand_vm(mm, len >> PAGE_SHIFT))
116376 + if (!may_expand_vm(mm, charged))
116377 return -ENOMEM;
116378
116379 if (mm->map_count > sysctl_max_map_count)
116380 return -ENOMEM;
116381
116382 - if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT))
116383 + if (security_vm_enough_memory_mm(mm, charged))
116384 return -ENOMEM;
116385
116386 /* Can we just expand an old private anonymous mapping? */
116387 @@ -2777,7 +3271,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116388 */
116389 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116390 if (!vma) {
116391 - vm_unacct_memory(len >> PAGE_SHIFT);
116392 + vm_unacct_memory(charged);
116393 return -ENOMEM;
116394 }
116395
116396 @@ -2791,10 +3285,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116397 vma_link(mm, vma, prev, rb_link, rb_parent);
116398 out:
116399 perf_event_mmap(vma);
116400 - mm->total_vm += len >> PAGE_SHIFT;
116401 + mm->total_vm += charged;
116402 if (flags & VM_LOCKED)
116403 - mm->locked_vm += (len >> PAGE_SHIFT);
116404 + mm->locked_vm += charged;
116405 vma->vm_flags |= VM_SOFTDIRTY;
116406 + track_exec_limit(mm, addr, addr + len, flags);
116407 return addr;
116408 }
116409
116410 @@ -2856,6 +3351,7 @@ void exit_mmap(struct mm_struct *mm)
116411 while (vma) {
116412 if (vma->vm_flags & VM_ACCOUNT)
116413 nr_accounted += vma_pages(vma);
116414 + vma->vm_mirror = NULL;
116415 vma = remove_vma(vma);
116416 }
116417 vm_unacct_memory(nr_accounted);
116418 @@ -2870,6 +3366,10 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
116419 struct vm_area_struct *prev;
116420 struct rb_node **rb_link, *rb_parent;
116421
116422 +#ifdef CONFIG_PAX_SEGMEXEC
116423 + struct vm_area_struct *vma_m = NULL;
116424 +#endif
116425 +
116426 if (find_vma_links(mm, vma->vm_start, vma->vm_end,
116427 &prev, &rb_link, &rb_parent))
116428 return -ENOMEM;
116429 @@ -2877,6 +3377,9 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
116430 security_vm_enough_memory_mm(mm, vma_pages(vma)))
116431 return -ENOMEM;
116432
116433 + if (security_mmap_addr(vma->vm_start))
116434 + return -EPERM;
116435 +
116436 /*
116437 * The vm_pgoff of a purely anonymous vma should be irrelevant
116438 * until its first write fault, when page's anon_vma and index
116439 @@ -2894,7 +3397,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
116440 vma->vm_pgoff = vma->vm_start >> PAGE_SHIFT;
116441 }
116442
116443 +#ifdef CONFIG_PAX_SEGMEXEC
116444 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_EXEC)) {
116445 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116446 + if (!vma_m)
116447 + return -ENOMEM;
116448 + }
116449 +#endif
116450 +
116451 vma_link(mm, vma, prev, rb_link, rb_parent);
116452 +
116453 +#ifdef CONFIG_PAX_SEGMEXEC
116454 + if (vma_m)
116455 + BUG_ON(pax_mirror_vma(vma_m, vma));
116456 +#endif
116457 +
116458 return 0;
116459 }
116460
116461 @@ -2913,6 +3430,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
116462 struct rb_node **rb_link, *rb_parent;
116463 bool faulted_in_anon_vma = true;
116464
116465 + BUG_ON(vma->vm_mirror);
116466 +
116467 /*
116468 * If anonymous vma has not yet been faulted, update new pgoff
116469 * to match new location, to increase its chance of merging.
116470 @@ -2979,6 +3498,39 @@ out:
116471 return NULL;
116472 }
116473
116474 +#ifdef CONFIG_PAX_SEGMEXEC
116475 +long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma)
116476 +{
116477 + struct vm_area_struct *prev_m;
116478 + struct rb_node **rb_link_m, *rb_parent_m;
116479 + struct mempolicy *pol_m;
116480 +
116481 + BUG_ON(!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC));
116482 + BUG_ON(vma->vm_mirror || vma_m->vm_mirror);
116483 + BUG_ON(!mpol_equal(vma_policy(vma), vma_policy(vma_m)));
116484 + *vma_m = *vma;
116485 + INIT_LIST_HEAD(&vma_m->anon_vma_chain);
116486 + if (anon_vma_clone(vma_m, vma))
116487 + return -ENOMEM;
116488 + pol_m = vma_policy(vma_m);
116489 + mpol_get(pol_m);
116490 + set_vma_policy(vma_m, pol_m);
116491 + vma_m->vm_start += SEGMEXEC_TASK_SIZE;
116492 + vma_m->vm_end += SEGMEXEC_TASK_SIZE;
116493 + vma_m->vm_flags &= ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED);
116494 + vma_m->vm_page_prot = vm_get_page_prot(vma_m->vm_flags);
116495 + if (vma_m->vm_file)
116496 + get_file(vma_m->vm_file);
116497 + if (vma_m->vm_ops && vma_m->vm_ops->open)
116498 + vma_m->vm_ops->open(vma_m);
116499 + BUG_ON(find_vma_links(vma->vm_mm, vma_m->vm_start, vma_m->vm_end, &prev_m, &rb_link_m, &rb_parent_m));
116500 + vma_link(vma->vm_mm, vma_m, prev_m, rb_link_m, rb_parent_m);
116501 + vma_m->vm_mirror = vma;
116502 + vma->vm_mirror = vma_m;
116503 + return 0;
116504 +}
116505 +#endif
116506 +
116507 /*
116508 * Return true if the calling process may expand its vm space by the passed
116509 * number of pages
116510 @@ -2990,6 +3542,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
116511
116512 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
116513
116514 + gr_learn_resource(current, RLIMIT_AS, (cur + npages) << PAGE_SHIFT, 1);
116515 if (cur + npages > lim)
116516 return 0;
116517 return 1;
116518 @@ -3064,6 +3617,22 @@ static struct vm_area_struct *__install_special_mapping(
116519 vma->vm_start = addr;
116520 vma->vm_end = addr + len;
116521
116522 +#ifdef CONFIG_PAX_MPROTECT
116523 + if (mm->pax_flags & MF_PAX_MPROTECT) {
116524 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
116525 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC))
116526 + return ERR_PTR(-EPERM);
116527 + if (!(vm_flags & VM_EXEC))
116528 + vm_flags &= ~VM_MAYEXEC;
116529 +#else
116530 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
116531 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
116532 +#endif
116533 + else
116534 + vm_flags &= ~VM_MAYWRITE;
116535 + }
116536 +#endif
116537 +
116538 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
116539 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
116540
116541 diff --git a/mm/mprotect.c b/mm/mprotect.c
116542 index ef5be8e..811ccb0 100644
116543 --- a/mm/mprotect.c
116544 +++ b/mm/mprotect.c
116545 @@ -24,10 +24,18 @@
116546 #include <linux/migrate.h>
116547 #include <linux/perf_event.h>
116548 #include <linux/ksm.h>
116549 +#include <linux/sched/sysctl.h>
116550 +
116551 +#ifdef CONFIG_PAX_MPROTECT
116552 +#include <linux/elf.h>
116553 +#include <linux/binfmts.h>
116554 +#endif
116555 +
116556 #include <asm/uaccess.h>
116557 #include <asm/pgtable.h>
116558 #include <asm/cacheflush.h>
116559 #include <asm/tlbflush.h>
116560 +#include <asm/mmu_context.h>
116561
116562 #include "internal.h"
116563
116564 @@ -254,6 +262,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
116565 return pages;
116566 }
116567
116568 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
116569 +/* called while holding the mmap semaphor for writing except stack expansion */
116570 +void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot)
116571 +{
116572 + unsigned long oldlimit, newlimit = 0UL;
116573 +
116574 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || (__supported_pte_mask & _PAGE_NX))
116575 + return;
116576 +
116577 + spin_lock(&mm->page_table_lock);
116578 + oldlimit = mm->context.user_cs_limit;
116579 + if ((prot & VM_EXEC) && oldlimit < end)
116580 + /* USER_CS limit moved up */
116581 + newlimit = end;
116582 + else if (!(prot & VM_EXEC) && start < oldlimit && oldlimit <= end)
116583 + /* USER_CS limit moved down */
116584 + newlimit = start;
116585 +
116586 + if (newlimit) {
116587 + mm->context.user_cs_limit = newlimit;
116588 +
116589 +#ifdef CONFIG_SMP
116590 + wmb();
116591 + cpumask_clear(&mm->context.cpu_user_cs_mask);
116592 + cpumask_set_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask);
116593 +#endif
116594 +
116595 + set_user_cs(mm->context.user_cs_base, mm->context.user_cs_limit, smp_processor_id());
116596 + }
116597 + spin_unlock(&mm->page_table_lock);
116598 + if (newlimit == end) {
116599 + struct vm_area_struct *vma = find_vma(mm, oldlimit);
116600 +
116601 + for (; vma && vma->vm_start < end; vma = vma->vm_next)
116602 + if (is_vm_hugetlb_page(vma))
116603 + hugetlb_change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot);
116604 + else
116605 + change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot, vma_wants_writenotify(vma), 0);
116606 + }
116607 +}
116608 +#endif
116609 +
116610 int
116611 mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116612 unsigned long start, unsigned long end, unsigned long newflags)
116613 @@ -266,11 +316,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116614 int error;
116615 int dirty_accountable = 0;
116616
116617 +#ifdef CONFIG_PAX_SEGMEXEC
116618 + struct vm_area_struct *vma_m = NULL;
116619 + unsigned long start_m, end_m;
116620 +
116621 + start_m = start + SEGMEXEC_TASK_SIZE;
116622 + end_m = end + SEGMEXEC_TASK_SIZE;
116623 +#endif
116624 +
116625 if (newflags == oldflags) {
116626 *pprev = vma;
116627 return 0;
116628 }
116629
116630 + if (newflags & (VM_READ | VM_WRITE | VM_EXEC)) {
116631 + struct vm_area_struct *prev = vma->vm_prev, *next = vma->vm_next;
116632 +
116633 + if (next && (next->vm_flags & VM_GROWSDOWN) && sysctl_heap_stack_gap > next->vm_start - end)
116634 + return -ENOMEM;
116635 +
116636 + if (prev && (prev->vm_flags & VM_GROWSUP) && sysctl_heap_stack_gap > start - prev->vm_end)
116637 + return -ENOMEM;
116638 + }
116639 +
116640 /*
116641 * If we make a private mapping writable we increase our commit;
116642 * but (without finer accounting) cannot reduce our commit if we
116643 @@ -287,6 +355,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116644 }
116645 }
116646
116647 +#ifdef CONFIG_PAX_SEGMEXEC
116648 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && ((oldflags ^ newflags) & VM_EXEC)) {
116649 + if (start != vma->vm_start) {
116650 + error = split_vma(mm, vma, start, 1);
116651 + if (error)
116652 + goto fail;
116653 + BUG_ON(!*pprev || (*pprev)->vm_next == vma);
116654 + *pprev = (*pprev)->vm_next;
116655 + }
116656 +
116657 + if (end != vma->vm_end) {
116658 + error = split_vma(mm, vma, end, 0);
116659 + if (error)
116660 + goto fail;
116661 + }
116662 +
116663 + if (pax_find_mirror_vma(vma)) {
116664 + error = __do_munmap(mm, start_m, end_m - start_m);
116665 + if (error)
116666 + goto fail;
116667 + } else {
116668 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116669 + if (!vma_m) {
116670 + error = -ENOMEM;
116671 + goto fail;
116672 + }
116673 + vma->vm_flags = newflags;
116674 + error = pax_mirror_vma(vma_m, vma);
116675 + if (error) {
116676 + vma->vm_flags = oldflags;
116677 + goto fail;
116678 + }
116679 + }
116680 + }
116681 +#endif
116682 +
116683 /*
116684 * First try to merge with previous and/or next vma.
116685 */
116686 @@ -318,7 +422,19 @@ success:
116687 * vm_flags and vm_page_prot are protected by the mmap_sem
116688 * held in write mode.
116689 */
116690 +
116691 +#ifdef CONFIG_PAX_SEGMEXEC
116692 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (newflags & VM_EXEC) && ((vma->vm_flags ^ newflags) & VM_READ))
116693 + pax_find_mirror_vma(vma)->vm_flags ^= VM_READ;
116694 +#endif
116695 +
116696 vma->vm_flags = newflags;
116697 +
116698 +#ifdef CONFIG_PAX_MPROTECT
116699 + if (mm->binfmt && mm->binfmt->handle_mprotect)
116700 + mm->binfmt->handle_mprotect(vma, newflags);
116701 +#endif
116702 +
116703 dirty_accountable = vma_wants_writenotify(vma);
116704 vma_set_page_prot(vma);
116705
116706 @@ -363,6 +479,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116707 end = start + len;
116708 if (end <= start)
116709 return -ENOMEM;
116710 +
116711 +#ifdef CONFIG_PAX_SEGMEXEC
116712 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
116713 + if (end > SEGMEXEC_TASK_SIZE)
116714 + return -EINVAL;
116715 + } else
116716 +#endif
116717 +
116718 + if (end > TASK_SIZE)
116719 + return -EINVAL;
116720 +
116721 if (!arch_validate_prot(prot))
116722 return -EINVAL;
116723
116724 @@ -370,7 +497,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116725 /*
116726 * Does the application expect PROT_READ to imply PROT_EXEC:
116727 */
116728 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
116729 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
116730 prot |= PROT_EXEC;
116731
116732 vm_flags = calc_vm_prot_bits(prot);
116733 @@ -402,6 +529,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116734 if (start > vma->vm_start)
116735 prev = vma;
116736
116737 +#ifdef CONFIG_PAX_MPROTECT
116738 + if (current->mm->binfmt && current->mm->binfmt->handle_mprotect)
116739 + current->mm->binfmt->handle_mprotect(vma, vm_flags);
116740 +#endif
116741 +
116742 for (nstart = start ; ; ) {
116743 unsigned long newflags;
116744
116745 @@ -412,6 +544,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116746
116747 /* newflags >> 4 shift VM_MAY% in place of VM_% */
116748 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
116749 + if (prot & (PROT_WRITE | PROT_EXEC))
116750 + gr_log_rwxmprotect(vma);
116751 +
116752 + error = -EACCES;
116753 + goto out;
116754 + }
116755 +
116756 + if (!gr_acl_handle_mprotect(vma->vm_file, prot)) {
116757 error = -EACCES;
116758 goto out;
116759 }
116760 @@ -426,6 +566,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116761 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
116762 if (error)
116763 goto out;
116764 +
116765 + track_exec_limit(current->mm, nstart, tmp, vm_flags);
116766 +
116767 nstart = tmp;
116768
116769 if (nstart < prev->vm_end)
116770 diff --git a/mm/mremap.c b/mm/mremap.c
116771 index 5a71cce..9f9889c 100644
116772 --- a/mm/mremap.c
116773 +++ b/mm/mremap.c
116774 @@ -143,6 +143,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
116775 continue;
116776 pte = ptep_get_and_clear(mm, old_addr, old_pte);
116777 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr);
116778 +
116779 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
116780 + if (!(__supported_pte_mask & _PAGE_NX) && pte_present(pte) && (new_vma->vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC)
116781 + pte = pte_exprotect(pte);
116782 +#endif
116783 +
116784 pte = move_soft_dirty_pte(pte);
116785 set_pte_at(mm, new_addr, new_pte, pte);
116786 }
116787 @@ -354,6 +360,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
116788 if (is_vm_hugetlb_page(vma))
116789 return ERR_PTR(-EINVAL);
116790
116791 +#ifdef CONFIG_PAX_SEGMEXEC
116792 + if (pax_find_mirror_vma(vma))
116793 + return ERR_PTR(-EINVAL);
116794 +#endif
116795 +
116796 /* We can't remap across vm area boundaries */
116797 if (old_len > vma->vm_end - addr)
116798 return ERR_PTR(-EFAULT);
116799 @@ -400,11 +411,19 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
116800 unsigned long ret = -EINVAL;
116801 unsigned long charged = 0;
116802 unsigned long map_flags;
116803 + unsigned long pax_task_size = TASK_SIZE;
116804
116805 if (new_addr & ~PAGE_MASK)
116806 goto out;
116807
116808 - if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
116809 +#ifdef CONFIG_PAX_SEGMEXEC
116810 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
116811 + pax_task_size = SEGMEXEC_TASK_SIZE;
116812 +#endif
116813 +
116814 + pax_task_size -= PAGE_SIZE;
116815 +
116816 + if (new_len > TASK_SIZE || new_addr > pax_task_size - new_len)
116817 goto out;
116818
116819 /* Ensure the old/new locations do not overlap */
116820 @@ -477,6 +496,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116821 unsigned long ret = -EINVAL;
116822 unsigned long charged = 0;
116823 bool locked = false;
116824 + unsigned long pax_task_size = TASK_SIZE;
116825
116826 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
116827 return ret;
116828 @@ -498,6 +518,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116829 if (!new_len)
116830 return ret;
116831
116832 +#ifdef CONFIG_PAX_SEGMEXEC
116833 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
116834 + pax_task_size = SEGMEXEC_TASK_SIZE;
116835 +#endif
116836 +
116837 + pax_task_size -= PAGE_SIZE;
116838 +
116839 + if (new_len > pax_task_size || addr > pax_task_size-new_len ||
116840 + old_len > pax_task_size || addr > pax_task_size-old_len)
116841 + return ret;
116842 +
116843 down_write(&current->mm->mmap_sem);
116844
116845 if (flags & MREMAP_FIXED) {
116846 @@ -548,6 +579,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116847 new_addr = addr;
116848 }
116849 ret = addr;
116850 + track_exec_limit(vma->vm_mm, vma->vm_start, addr + new_len, vma->vm_flags);
116851 goto out;
116852 }
116853 }
116854 @@ -571,7 +603,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116855 goto out;
116856 }
116857
116858 + map_flags = vma->vm_flags;
116859 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked);
116860 + if (!(ret & ~PAGE_MASK)) {
116861 + track_exec_limit(current->mm, addr, addr + old_len, 0UL);
116862 + track_exec_limit(current->mm, new_addr, new_addr + new_len, map_flags);
116863 + }
116864 }
116865 out:
116866 if (ret & ~PAGE_MASK) {
116867 diff --git a/mm/nommu.c b/mm/nommu.c
116868 index ab14a20..4f3754c 100644
116869 --- a/mm/nommu.c
116870 +++ b/mm/nommu.c
116871 @@ -56,7 +56,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
116872 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
116873 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
116874 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
116875 -int heap_stack_gap = 0;
116876
116877 atomic_long_t mmap_pages_allocated;
116878
116879 @@ -863,15 +862,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
116880 EXPORT_SYMBOL(find_vma);
116881
116882 /*
116883 - * find a VMA
116884 - * - we don't extend stack VMAs under NOMMU conditions
116885 - */
116886 -struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr)
116887 -{
116888 - return find_vma(mm, addr);
116889 -}
116890 -
116891 -/*
116892 * expand a stack to a given address
116893 * - not supported under NOMMU conditions
116894 */
116895 @@ -1536,6 +1526,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116896
116897 /* most fields are the same, copy all, and then fixup */
116898 *new = *vma;
116899 + INIT_LIST_HEAD(&new->anon_vma_chain);
116900 *region = *vma->vm_region;
116901 new->vm_region = region;
116902
116903 @@ -1936,8 +1927,8 @@ void filemap_map_pages(struct vm_area_struct *vma, struct vm_fault *vmf)
116904 }
116905 EXPORT_SYMBOL(filemap_map_pages);
116906
116907 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116908 - unsigned long addr, void *buf, int len, int write)
116909 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116910 + unsigned long addr, void *buf, size_t len, int write)
116911 {
116912 struct vm_area_struct *vma;
116913
116914 @@ -1978,8 +1969,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116915 *
116916 * The caller must hold a reference on @mm.
116917 */
116918 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
116919 - void *buf, int len, int write)
116920 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
116921 + void *buf, size_t len, int write)
116922 {
116923 return __access_remote_vm(NULL, mm, addr, buf, len, write);
116924 }
116925 @@ -1988,7 +1979,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
116926 * Access another process' address space.
116927 * - source/target buffer must be kernel space
116928 */
116929 -int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write)
116930 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write)
116931 {
116932 struct mm_struct *mm;
116933
116934 diff --git a/mm/oom_kill.c b/mm/oom_kill.c
116935 index 1ecc0bc..bcce7aa 100644
116936 --- a/mm/oom_kill.c
116937 +++ b/mm/oom_kill.c
116938 @@ -571,18 +571,24 @@ void oom_kill_process(struct oom_control *oc, struct task_struct *p,
116939 * pending fatal signal.
116940 */
116941 rcu_read_lock();
116942 - for_each_process(p)
116943 - if (p->mm == mm && !same_thread_group(p, victim) &&
116944 - !(p->flags & PF_KTHREAD)) {
116945 - if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
116946 - continue;
116947 + for_each_process(p) {
116948 + if (p->mm != mm)
116949 + continue;
116950 + if (same_thread_group(p, victim))
116951 + continue;
116952 + if (unlikely(p->flags & PF_KTHREAD))
116953 + continue;
116954 + if (is_global_init(p))
116955 + continue;
116956 + if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
116957 + continue;
116958
116959 - task_lock(p); /* Protect ->comm from prctl() */
116960 - pr_err("Kill process %d (%s) sharing same memory\n",
116961 - task_pid_nr(p), p->comm);
116962 - task_unlock(p);
116963 - do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true);
116964 - }
116965 + task_lock(p); /* Protect ->comm from prctl() */
116966 + pr_err("Kill process %d (%s) sharing same memory\n",
116967 + task_pid_nr(p), p->comm);
116968 + task_unlock(p);
116969 + do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true);
116970 + }
116971 rcu_read_unlock();
116972
116973 do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true);
116974 diff --git a/mm/page-writeback.c b/mm/page-writeback.c
116975 index 2c90357..f453b93 100644
116976 --- a/mm/page-writeback.c
116977 +++ b/mm/page-writeback.c
116978 @@ -860,7 +860,7 @@ static long long pos_ratio_polynom(unsigned long setpoint,
116979 * card's wb_dirty may rush to many times higher than wb_setpoint.
116980 * - the wb dirty thresh drops quickly due to change of JBOD workload
116981 */
116982 -static void wb_position_ratio(struct dirty_throttle_control *dtc)
116983 +static void __intentional_overflow(-1) wb_position_ratio(struct dirty_throttle_control *dtc)
116984 {
116985 struct bdi_writeback *wb = dtc->wb;
116986 unsigned long write_bw = wb->avg_write_bandwidth;
116987 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
116988 index 48aaf7b..cf4f701 100644
116989 --- a/mm/page_alloc.c
116990 +++ b/mm/page_alloc.c
116991 @@ -62,6 +62,7 @@
116992 #include <linux/sched/rt.h>
116993 #include <linux/page_owner.h>
116994 #include <linux/kthread.h>
116995 +#include <linux/random.h>
116996
116997 #include <asm/sections.h>
116998 #include <asm/tlbflush.h>
116999 @@ -448,7 +449,7 @@ out:
117000 * This usage means that zero-order pages may not be compound.
117001 */
117002
117003 -static void free_compound_page(struct page *page)
117004 +void free_compound_page(struct page *page)
117005 {
117006 __free_pages_ok(page, compound_order(page));
117007 }
117008 @@ -557,7 +558,7 @@ static inline void clear_page_guard(struct zone *zone, struct page *page,
117009 __mod_zone_freepage_state(zone, (1 << order), migratetype);
117010 }
117011 #else
117012 -struct page_ext_operations debug_guardpage_ops = { NULL, };
117013 +struct page_ext_operations debug_guardpage_ops = { .need = NULL, .init = NULL };
117014 static inline void set_page_guard(struct zone *zone, struct page *page,
117015 unsigned int order, int migratetype) {}
117016 static inline void clear_page_guard(struct zone *zone, struct page *page,
117017 @@ -933,6 +934,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
117018 bool compound = PageCompound(page);
117019 int i, bad = 0;
117020
117021 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117022 + unsigned long index = 1UL << order;
117023 +#endif
117024 +
117025 VM_BUG_ON_PAGE(PageTail(page), page);
117026 VM_BUG_ON_PAGE(compound && compound_order(page) != order, page);
117027
117028 @@ -959,6 +964,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
117029 debug_check_no_obj_freed(page_address(page),
117030 PAGE_SIZE << order);
117031 }
117032 +
117033 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117034 + for (; index; --index)
117035 + sanitize_highpage(page + index - 1);
117036 +#endif
117037 +
117038 arch_free_page(page, order);
117039 kernel_map_pages(page, 1 << order, 0);
117040
117041 @@ -981,6 +992,20 @@ static void __free_pages_ok(struct page *page, unsigned int order)
117042 local_irq_restore(flags);
117043 }
117044
117045 +#ifdef CONFIG_PAX_LATENT_ENTROPY
117046 +bool __meminitdata extra_latent_entropy;
117047 +
117048 +static int __init setup_pax_extra_latent_entropy(char *str)
117049 +{
117050 + extra_latent_entropy = true;
117051 + return 0;
117052 +}
117053 +early_param("pax_extra_latent_entropy", setup_pax_extra_latent_entropy);
117054 +
117055 +volatile u64 latent_entropy __latent_entropy;
117056 +EXPORT_SYMBOL(latent_entropy);
117057 +#endif
117058 +
117059 static void __init __free_pages_boot_core(struct page *page,
117060 unsigned long pfn, unsigned int order)
117061 {
117062 @@ -997,6 +1022,19 @@ static void __init __free_pages_boot_core(struct page *page,
117063 __ClearPageReserved(p);
117064 set_page_count(p, 0);
117065
117066 +#ifdef CONFIG_PAX_LATENT_ENTROPY
117067 + if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) {
117068 + u64 hash = 0;
117069 + size_t index, end = PAGE_SIZE * nr_pages / sizeof hash;
117070 + const u64 *data = lowmem_page_address(page);
117071 +
117072 + for (index = 0; index < end; index++)
117073 + hash ^= hash + data[index];
117074 + latent_entropy ^= hash;
117075 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
117076 + }
117077 +#endif
117078 +
117079 page_zone(page)->managed_pages += nr_pages;
117080 set_page_refcounted(page);
117081 __free_pages(page, order);
117082 @@ -1053,7 +1091,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned long pfn, int node,
117083 }
117084 #endif
117085
117086 -
117087 void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
117088 unsigned int order)
117089 {
117090 @@ -1357,9 +1394,11 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags,
117091 kernel_map_pages(page, 1 << order, 1);
117092 kasan_alloc_pages(page, order);
117093
117094 +#ifndef CONFIG_PAX_MEMORY_SANITIZE
117095 if (gfp_flags & __GFP_ZERO)
117096 for (i = 0; i < (1 << order); i++)
117097 clear_highpage(page + i);
117098 +#endif
117099
117100 if (order && (gfp_flags & __GFP_COMP))
117101 prep_compound_page(page, order);
117102 @@ -2138,7 +2177,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
117103 }
117104
117105 __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
117106 - if (atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
117107 + if (atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
117108 !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
117109 set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
117110
117111 @@ -2457,7 +2496,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
117112 do {
117113 mod_zone_page_state(zone, NR_ALLOC_BATCH,
117114 high_wmark_pages(zone) - low_wmark_pages(zone) -
117115 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
117116 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
117117 clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
117118 } while (zone++ != preferred_zone);
117119 }
117120 @@ -6207,7 +6246,7 @@ static void __setup_per_zone_wmarks(void)
117121
117122 __mod_zone_page_state(zone, NR_ALLOC_BATCH,
117123 high_wmark_pages(zone) - low_wmark_pages(zone) -
117124 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
117125 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
117126
117127 setup_zone_migrate_reserve(zone);
117128 spin_unlock_irqrestore(&zone->lock, flags);
117129 diff --git a/mm/percpu.c b/mm/percpu.c
117130 index a63b4d8..87b2f23 100644
117131 --- a/mm/percpu.c
117132 +++ b/mm/percpu.c
117133 @@ -131,7 +131,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
117134 static unsigned int pcpu_high_unit_cpu __read_mostly;
117135
117136 /* the address of the first chunk which starts with the kernel static area */
117137 -void *pcpu_base_addr __read_mostly;
117138 +void *pcpu_base_addr __read_only;
117139 EXPORT_SYMBOL_GPL(pcpu_base_addr);
117140
117141 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
117142 diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
117143 index e88d071..4043093 100644
117144 --- a/mm/process_vm_access.c
117145 +++ b/mm/process_vm_access.c
117146 @@ -13,6 +13,7 @@
117147 #include <linux/uio.h>
117148 #include <linux/sched.h>
117149 #include <linux/highmem.h>
117150 +#include <linux/security.h>
117151 #include <linux/ptrace.h>
117152 #include <linux/slab.h>
117153 #include <linux/syscalls.h>
117154 @@ -154,19 +155,19 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
117155 ssize_t iov_len;
117156 size_t total_len = iov_iter_count(iter);
117157
117158 + return -ENOSYS; // PaX: until properly audited
117159 +
117160 /*
117161 * Work out how many pages of struct pages we're going to need
117162 * when eventually calling get_user_pages
117163 */
117164 for (i = 0; i < riovcnt; i++) {
117165 iov_len = rvec[i].iov_len;
117166 - if (iov_len > 0) {
117167 - nr_pages_iov = ((unsigned long)rvec[i].iov_base
117168 - + iov_len)
117169 - / PAGE_SIZE - (unsigned long)rvec[i].iov_base
117170 - / PAGE_SIZE + 1;
117171 - nr_pages = max(nr_pages, nr_pages_iov);
117172 - }
117173 + if (iov_len <= 0)
117174 + continue;
117175 + nr_pages_iov = ((unsigned long)rvec[i].iov_base + iov_len) / PAGE_SIZE -
117176 + (unsigned long)rvec[i].iov_base / PAGE_SIZE + 1;
117177 + nr_pages = max(nr_pages, nr_pages_iov);
117178 }
117179
117180 if (nr_pages == 0)
117181 @@ -194,7 +195,12 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
117182 goto free_proc_pages;
117183 }
117184
117185 - mm = mm_access(task, PTRACE_MODE_ATTACH);
117186 + if (gr_handle_ptrace(task, vm_write ? PTRACE_POKETEXT : PTRACE_ATTACH)) {
117187 + rc = -EPERM;
117188 + goto put_task_struct;
117189 + }
117190 +
117191 + mm = mm_access(task, PTRACE_MODE_ATTACH_REALCREDS);
117192 if (!mm || IS_ERR(mm)) {
117193 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
117194 /*
117195 diff --git a/mm/rmap.c b/mm/rmap.c
117196 index f5b5c1f..289c3dcb 100644
117197 --- a/mm/rmap.c
117198 +++ b/mm/rmap.c
117199 @@ -171,6 +171,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
117200 struct anon_vma *anon_vma = vma->anon_vma;
117201 struct anon_vma_chain *avc;
117202
117203 +#ifdef CONFIG_PAX_SEGMEXEC
117204 + struct anon_vma_chain *avc_m = NULL;
117205 +#endif
117206 +
117207 might_sleep();
117208 if (unlikely(!anon_vma)) {
117209 struct mm_struct *mm = vma->vm_mm;
117210 @@ -180,6 +184,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
117211 if (!avc)
117212 goto out_enomem;
117213
117214 +#ifdef CONFIG_PAX_SEGMEXEC
117215 + avc_m = anon_vma_chain_alloc(GFP_KERNEL);
117216 + if (!avc_m)
117217 + goto out_enomem_free_avc;
117218 +#endif
117219 +
117220 anon_vma = find_mergeable_anon_vma(vma);
117221 allocated = NULL;
117222 if (!anon_vma) {
117223 @@ -193,6 +203,19 @@ int anon_vma_prepare(struct vm_area_struct *vma)
117224 /* page_table_lock to protect against threads */
117225 spin_lock(&mm->page_table_lock);
117226 if (likely(!vma->anon_vma)) {
117227 +
117228 +#ifdef CONFIG_PAX_SEGMEXEC
117229 + struct vm_area_struct *vma_m = pax_find_mirror_vma(vma);
117230 +
117231 + if (vma_m) {
117232 + BUG_ON(vma_m->anon_vma);
117233 + vma_m->anon_vma = anon_vma;
117234 + anon_vma_chain_link(vma_m, avc_m, anon_vma);
117235 + anon_vma->degree++;
117236 + avc_m = NULL;
117237 + }
117238 +#endif
117239 +
117240 vma->anon_vma = anon_vma;
117241 anon_vma_chain_link(vma, avc, anon_vma);
117242 /* vma reference or self-parent link for new root */
117243 @@ -205,12 +228,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
117244
117245 if (unlikely(allocated))
117246 put_anon_vma(allocated);
117247 +
117248 +#ifdef CONFIG_PAX_SEGMEXEC
117249 + if (unlikely(avc_m))
117250 + anon_vma_chain_free(avc_m);
117251 +#endif
117252 +
117253 if (unlikely(avc))
117254 anon_vma_chain_free(avc);
117255 }
117256 return 0;
117257
117258 out_enomem_free_avc:
117259 +
117260 +#ifdef CONFIG_PAX_SEGMEXEC
117261 + if (avc_m)
117262 + anon_vma_chain_free(avc_m);
117263 +#endif
117264 +
117265 anon_vma_chain_free(avc);
117266 out_enomem:
117267 return -ENOMEM;
117268 @@ -254,7 +289,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root)
117269 * good chance of avoiding scanning the whole hierarchy when it searches where
117270 * page is mapped.
117271 */
117272 -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
117273 +int anon_vma_clone(struct vm_area_struct *dst, const struct vm_area_struct *src)
117274 {
117275 struct anon_vma_chain *avc, *pavc;
117276 struct anon_vma *root = NULL;
117277 @@ -308,7 +343,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
117278 * the corresponding VMA in the parent process is attached to.
117279 * Returns 0 on success, non-zero on failure.
117280 */
117281 -int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma)
117282 +int anon_vma_fork(struct vm_area_struct *vma, const struct vm_area_struct *pvma)
117283 {
117284 struct anon_vma_chain *avc;
117285 struct anon_vma *anon_vma;
117286 @@ -428,8 +463,10 @@ static void anon_vma_ctor(void *data)
117287 void __init anon_vma_init(void)
117288 {
117289 anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
117290 - 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor);
117291 - anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain, SLAB_PANIC);
117292 + 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_NO_SANITIZE,
117293 + anon_vma_ctor);
117294 + anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
117295 + SLAB_PANIC|SLAB_NO_SANITIZE);
117296 }
117297
117298 /*
117299 diff --git a/mm/shmem.c b/mm/shmem.c
117300 index 48ce829..4c30cd3 100644
117301 --- a/mm/shmem.c
117302 +++ b/mm/shmem.c
117303 @@ -33,7 +33,7 @@
117304 #include <linux/swap.h>
117305 #include <linux/uio.h>
117306
117307 -static struct vfsmount *shm_mnt;
117308 +struct vfsmount *shm_mnt;
117309
117310 #ifdef CONFIG_SHMEM
117311 /*
117312 @@ -80,7 +80,7 @@ static struct vfsmount *shm_mnt;
117313 #define BOGO_DIRENT_SIZE 20
117314
117315 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */
117316 -#define SHORT_SYMLINK_LEN 128
117317 +#define SHORT_SYMLINK_LEN 64
117318
117319 /*
117320 * shmem_fallocate communicates with shmem_fault or shmem_writepage via
117321 @@ -835,14 +835,14 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)
117322 list_add_tail(&info->swaplist, &shmem_swaplist);
117323
117324 if (add_to_swap_cache(page, swap, GFP_ATOMIC) == 0) {
117325 + spin_lock(&info->lock);
117326 + shmem_recalc_inode(inode);
117327 + info->swapped++;
117328 + spin_unlock(&info->lock);
117329 +
117330 swap_shmem_alloc(swap);
117331 shmem_delete_from_page_cache(page, swp_to_radix_entry(swap));
117332
117333 - spin_lock(&info->lock);
117334 - info->swapped++;
117335 - shmem_recalc_inode(inode);
117336 - spin_unlock(&info->lock);
117337 -
117338 mutex_unlock(&shmem_swaplist_mutex);
117339 BUG_ON(page_mapped(page));
117340 swap_writepage(page, wbc);
117341 @@ -1070,7 +1070,7 @@ repeat:
117342 if (sgp != SGP_WRITE && sgp != SGP_FALLOC &&
117343 ((loff_t)index << PAGE_CACHE_SHIFT) >= i_size_read(inode)) {
117344 error = -EINVAL;
117345 - goto failed;
117346 + goto unlock;
117347 }
117348
117349 if (page && sgp == SGP_WRITE)
117350 @@ -1238,11 +1238,15 @@ clear:
117351 /* Perhaps the file has been truncated since we checked */
117352 if (sgp != SGP_WRITE && sgp != SGP_FALLOC &&
117353 ((loff_t)index << PAGE_CACHE_SHIFT) >= i_size_read(inode)) {
117354 + if (alloced) {
117355 + ClearPageDirty(page);
117356 + delete_from_page_cache(page);
117357 + spin_lock(&info->lock);
117358 + shmem_recalc_inode(inode);
117359 + spin_unlock(&info->lock);
117360 + }
117361 error = -EINVAL;
117362 - if (alloced)
117363 - goto trunc;
117364 - else
117365 - goto failed;
117366 + goto unlock;
117367 }
117368 *pagep = page;
117369 return 0;
117370 @@ -1250,23 +1254,13 @@ clear:
117371 /*
117372 * Error recovery.
117373 */
117374 -trunc:
117375 - info = SHMEM_I(inode);
117376 - ClearPageDirty(page);
117377 - delete_from_page_cache(page);
117378 - spin_lock(&info->lock);
117379 - info->alloced--;
117380 - inode->i_blocks -= BLOCKS_PER_PAGE;
117381 - spin_unlock(&info->lock);
117382 decused:
117383 - sbinfo = SHMEM_SB(inode->i_sb);
117384 if (sbinfo->max_blocks)
117385 percpu_counter_add(&sbinfo->used_blocks, -1);
117386 unacct:
117387 shmem_unacct_blocks(info->flags, 1);
117388 failed:
117389 - if (swap.val && error != -EINVAL &&
117390 - !shmem_confirm_swap(mapping, index, swap))
117391 + if (swap.val && !shmem_confirm_swap(mapping, index, swap))
117392 error = -EEXIST;
117393 unlock:
117394 if (page) {
117395 @@ -2564,6 +2558,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
117396 static int shmem_xattr_validate(const char *name)
117397 {
117398 struct { const char *prefix; size_t len; } arr[] = {
117399 +
117400 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
117401 + { XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN},
117402 +#endif
117403 +
117404 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
117405 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
117406 };
117407 @@ -2619,6 +2618,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name,
117408 if (err)
117409 return err;
117410
117411 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
117412 + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
117413 + if (strcmp(name, XATTR_NAME_PAX_FLAGS))
117414 + return -EOPNOTSUPP;
117415 + if (size > 8)
117416 + return -EINVAL;
117417 + }
117418 +#endif
117419 +
117420 return simple_xattr_set(&info->xattrs, name, value, size, flags);
117421 }
117422
117423 @@ -3002,8 +3010,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
117424 int err = -ENOMEM;
117425
117426 /* Round up to L1_CACHE_BYTES to resist false sharing */
117427 - sbinfo = kzalloc(max((int)sizeof(struct shmem_sb_info),
117428 - L1_CACHE_BYTES), GFP_KERNEL);
117429 + sbinfo = kzalloc(max(sizeof(struct shmem_sb_info), L1_CACHE_BYTES), GFP_KERNEL);
117430 if (!sbinfo)
117431 return -ENOMEM;
117432
117433 diff --git a/mm/slab.c b/mm/slab.c
117434 index 4fcc5dd..09e0eee 100644
117435 --- a/mm/slab.c
117436 +++ b/mm/slab.c
117437 @@ -116,6 +116,7 @@
117438 #include <linux/kmemcheck.h>
117439 #include <linux/memory.h>
117440 #include <linux/prefetch.h>
117441 +#include <linux/vmalloc.h>
117442
117443 #include <net/sock.h>
117444
117445 @@ -314,10 +315,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
117446 if ((x)->max_freeable < i) \
117447 (x)->max_freeable = i; \
117448 } while (0)
117449 -#define STATS_INC_ALLOCHIT(x) atomic_inc(&(x)->allochit)
117450 -#define STATS_INC_ALLOCMISS(x) atomic_inc(&(x)->allocmiss)
117451 -#define STATS_INC_FREEHIT(x) atomic_inc(&(x)->freehit)
117452 -#define STATS_INC_FREEMISS(x) atomic_inc(&(x)->freemiss)
117453 +#define STATS_INC_ALLOCHIT(x) atomic_inc_unchecked(&(x)->allochit)
117454 +#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss)
117455 +#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit)
117456 +#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss)
117457 +#define STATS_INC_SANITIZED(x) atomic_inc_unchecked(&(x)->sanitized)
117458 +#define STATS_INC_NOT_SANITIZED(x) atomic_inc_unchecked(&(x)->not_sanitized)
117459 #else
117460 #define STATS_INC_ACTIVE(x) do { } while (0)
117461 #define STATS_DEC_ACTIVE(x) do { } while (0)
117462 @@ -334,6 +337,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
117463 #define STATS_INC_ALLOCMISS(x) do { } while (0)
117464 #define STATS_INC_FREEHIT(x) do { } while (0)
117465 #define STATS_INC_FREEMISS(x) do { } while (0)
117466 +#define STATS_INC_SANITIZED(x) do { } while (0)
117467 +#define STATS_INC_NOT_SANITIZED(x) do { } while (0)
117468 #endif
117469
117470 #if DEBUG
117471 @@ -450,7 +455,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct page *page,
117472 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
117473 */
117474 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
117475 - const struct page *page, void *obj)
117476 + const struct page *page, const void *obj)
117477 {
117478 u32 offset = (obj - page->s_mem);
117479 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
117480 @@ -1452,7 +1457,7 @@ void __init kmem_cache_init(void)
117481 * structures first. Without this, further allocations will bug.
117482 */
117483 kmalloc_caches[INDEX_NODE] = create_kmalloc_cache("kmalloc-node",
117484 - kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
117485 + kmalloc_size(INDEX_NODE), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
117486 slab_state = PARTIAL_NODE;
117487 setup_kmalloc_cache_index_table();
117488
117489 @@ -2074,7 +2079,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
117490
117491 cachep = find_mergeable(size, align, flags, name, ctor);
117492 if (cachep) {
117493 - cachep->refcount++;
117494 + atomic_inc(&cachep->refcount);
117495
117496 /*
117497 * Adjust the object sizes so that we clear
117498 @@ -3379,6 +3384,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
117499 struct array_cache *ac = cpu_cache_get(cachep);
117500
117501 check_irq_off();
117502 +
117503 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117504 + if (cachep->flags & (SLAB_POISON | SLAB_NO_SANITIZE))
117505 + STATS_INC_NOT_SANITIZED(cachep);
117506 + else {
117507 + memset(objp, PAX_MEMORY_SANITIZE_VALUE, cachep->object_size);
117508 +
117509 + if (cachep->ctor)
117510 + cachep->ctor(objp);
117511 +
117512 + STATS_INC_SANITIZED(cachep);
117513 + }
117514 +#endif
117515 +
117516 kmemleak_free_recursive(objp, cachep->flags);
117517 objp = cache_free_debugcheck(cachep, objp, caller);
117518
117519 @@ -3504,7 +3523,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
117520 return kmem_cache_alloc_node_trace(cachep, flags, node, size);
117521 }
117522
117523 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
117524 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
117525 {
117526 return __do_kmalloc_node(size, flags, node, _RET_IP_);
117527 }
117528 @@ -3524,7 +3543,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
117529 * @flags: the type of memory to allocate (see kmalloc).
117530 * @caller: function caller for debug tracking of the caller
117531 */
117532 -static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
117533 +static __always_inline void * __size_overflow(1) __do_kmalloc(size_t size, gfp_t flags,
117534 unsigned long caller)
117535 {
117536 struct kmem_cache *cachep;
117537 @@ -3597,6 +3616,7 @@ void kfree(const void *objp)
117538
117539 if (unlikely(ZERO_OR_NULL_PTR(objp)))
117540 return;
117541 + VM_BUG_ON(!virt_addr_valid(objp));
117542 local_irq_save(flags);
117543 kfree_debugcheck(objp);
117544 c = virt_to_cache(objp);
117545 @@ -4016,14 +4036,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
117546 }
117547 /* cpu stats */
117548 {
117549 - unsigned long allochit = atomic_read(&cachep->allochit);
117550 - unsigned long allocmiss = atomic_read(&cachep->allocmiss);
117551 - unsigned long freehit = atomic_read(&cachep->freehit);
117552 - unsigned long freemiss = atomic_read(&cachep->freemiss);
117553 + unsigned long allochit = atomic_read_unchecked(&cachep->allochit);
117554 + unsigned long allocmiss = atomic_read_unchecked(&cachep->allocmiss);
117555 + unsigned long freehit = atomic_read_unchecked(&cachep->freehit);
117556 + unsigned long freemiss = atomic_read_unchecked(&cachep->freemiss);
117557
117558 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
117559 allochit, allocmiss, freehit, freemiss);
117560 }
117561 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117562 + {
117563 + unsigned long sanitized = atomic_read_unchecked(&cachep->sanitized);
117564 + unsigned long not_sanitized = atomic_read_unchecked(&cachep->not_sanitized);
117565 +
117566 + seq_printf(m, " : pax %6lu %6lu", sanitized, not_sanitized);
117567 + }
117568 +#endif
117569 #endif
117570 }
117571
117572 @@ -4231,13 +4259,80 @@ static const struct file_operations proc_slabstats_operations = {
117573 static int __init slab_proc_init(void)
117574 {
117575 #ifdef CONFIG_DEBUG_SLAB_LEAK
117576 - proc_create("slab_allocators", 0, NULL, &proc_slabstats_operations);
117577 + proc_create("slab_allocators", S_IRUSR, NULL, &proc_slabstats_operations);
117578 #endif
117579 return 0;
117580 }
117581 module_init(slab_proc_init);
117582 #endif
117583
117584 +bool is_usercopy_object(const void *ptr)
117585 +{
117586 + struct page *page;
117587 + struct kmem_cache *cachep;
117588 +
117589 + if (ZERO_OR_NULL_PTR(ptr))
117590 + return false;
117591 +
117592 + if (!slab_is_available())
117593 + return false;
117594 +
117595 + if (is_vmalloc_addr(ptr)
117596 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117597 + && !object_starts_on_stack(ptr)
117598 +#endif
117599 + ) {
117600 + struct vm_struct *vm = find_vm_area(ptr);
117601 + if (vm && (vm->flags & VM_USERCOPY))
117602 + return true;
117603 + return false;
117604 + }
117605 +
117606 + if (!virt_addr_valid(ptr))
117607 + return false;
117608 +
117609 + page = virt_to_head_page(ptr);
117610 +
117611 + if (!PageSlab(page))
117612 + return false;
117613 +
117614 + cachep = page->slab_cache;
117615 + return cachep->flags & SLAB_USERCOPY;
117616 +}
117617 +
117618 +#ifdef CONFIG_PAX_USERCOPY
117619 +const char *check_heap_object(const void *ptr, unsigned long n)
117620 +{
117621 + struct page *page;
117622 + struct kmem_cache *cachep;
117623 + unsigned int objnr;
117624 + unsigned long offset;
117625 +
117626 + if (ZERO_OR_NULL_PTR(ptr))
117627 + return "<null>";
117628 +
117629 + if (!virt_addr_valid(ptr))
117630 + return NULL;
117631 +
117632 + page = virt_to_head_page(ptr);
117633 +
117634 + if (!PageSlab(page))
117635 + return NULL;
117636 +
117637 + cachep = page->slab_cache;
117638 + if (!(cachep->flags & SLAB_USERCOPY))
117639 + return cachep->name;
117640 +
117641 + objnr = obj_to_index(cachep, page, ptr);
117642 + BUG_ON(objnr >= cachep->num);
117643 + offset = ptr - index_to_obj(cachep, page, objnr) - obj_offset(cachep);
117644 + if (offset <= cachep->object_size && n <= cachep->object_size - offset)
117645 + return NULL;
117646 +
117647 + return cachep->name;
117648 +}
117649 +#endif
117650 +
117651 /**
117652 * ksize - get the actual amount of memory allocated for a given object
117653 * @objp: Pointer to the object
117654 diff --git a/mm/slab.h b/mm/slab.h
117655 index a3a967d..592bb29 100644
117656 --- a/mm/slab.h
117657 +++ b/mm/slab.h
117658 @@ -22,7 +22,7 @@ struct kmem_cache {
117659 unsigned int align; /* Alignment as calculated */
117660 unsigned long flags; /* Active flags on the slab */
117661 const char *name; /* Slab name for sysfs */
117662 - int refcount; /* Use counter */
117663 + atomic_t refcount; /* Use counter */
117664 void (*ctor)(void *); /* Called on object slot creation */
117665 struct list_head list; /* List of all slab caches on the system */
117666 };
117667 @@ -66,6 +66,20 @@ extern struct list_head slab_caches;
117668 /* The slab cache that manages slab cache information */
117669 extern struct kmem_cache *kmem_cache;
117670
117671 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117672 +#ifdef CONFIG_X86_64
117673 +#define PAX_MEMORY_SANITIZE_VALUE '\xfe'
117674 +#else
117675 +#define PAX_MEMORY_SANITIZE_VALUE '\xff'
117676 +#endif
117677 +enum pax_sanitize_mode {
117678 + PAX_SANITIZE_SLAB_OFF = 0,
117679 + PAX_SANITIZE_SLAB_FAST,
117680 + PAX_SANITIZE_SLAB_FULL,
117681 +};
117682 +extern enum pax_sanitize_mode pax_sanitize_slab;
117683 +#endif
117684 +
117685 unsigned long calculate_alignment(unsigned long flags,
117686 unsigned long align, unsigned long size);
117687
117688 @@ -115,7 +129,8 @@ static inline unsigned long kmem_cache_flags(unsigned long object_size,
117689
117690 /* Legal flag mask for kmem_cache_create(), for various configurations */
117691 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
117692 - SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
117693 + SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | \
117694 + SLAB_USERCOPY | SLAB_NO_SANITIZE)
117695
117696 #if defined(CONFIG_DEBUG_SLAB)
117697 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
117698 @@ -325,6 +340,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
117699 return s;
117700
117701 page = virt_to_head_page(x);
117702 +
117703 + BUG_ON(!PageSlab(page));
117704 +
117705 cachep = page->slab_cache;
117706 if (slab_equal_or_root(cachep, s))
117707 return cachep;
117708 diff --git a/mm/slab_common.c b/mm/slab_common.c
117709 index 5ce4fae..45e9b4e 100644
117710 --- a/mm/slab_common.c
117711 +++ b/mm/slab_common.c
117712 @@ -25,11 +25,35 @@
117713
117714 #include "slab.h"
117715
117716 -enum slab_state slab_state;
117717 +enum slab_state slab_state __read_only;
117718 LIST_HEAD(slab_caches);
117719 DEFINE_MUTEX(slab_mutex);
117720 struct kmem_cache *kmem_cache;
117721
117722 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117723 +enum pax_sanitize_mode pax_sanitize_slab __read_only = PAX_SANITIZE_SLAB_FAST;
117724 +static int __init pax_sanitize_slab_setup(char *str)
117725 +{
117726 + if (!str)
117727 + return 0;
117728 +
117729 + if (!strcmp(str, "0") || !strcmp(str, "off")) {
117730 + pr_info("PaX slab sanitization: %s\n", "disabled");
117731 + pax_sanitize_slab = PAX_SANITIZE_SLAB_OFF;
117732 + } else if (!strcmp(str, "1") || !strcmp(str, "fast")) {
117733 + pr_info("PaX slab sanitization: %s\n", "fast");
117734 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FAST;
117735 + } else if (!strcmp(str, "full")) {
117736 + pr_info("PaX slab sanitization: %s\n", "full");
117737 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FULL;
117738 + } else
117739 + pr_err("PaX slab sanitization: unsupported option '%s'\n", str);
117740 +
117741 + return 0;
117742 +}
117743 +early_param("pax_sanitize_slab", pax_sanitize_slab_setup);
117744 +#endif
117745 +
117746 /*
117747 * Set of flags that will prevent slab merging
117748 */
117749 @@ -43,7 +67,7 @@ struct kmem_cache *kmem_cache;
117750 * Merge control. If this is set then no merging of slab caches will occur.
117751 * (Could be removed. This was introduced to pacify the merge skeptics.)
117752 */
117753 -static int slab_nomerge;
117754 +static int slab_nomerge = 1;
117755
117756 static int __init setup_slab_nomerge(char *str)
117757 {
117758 @@ -239,7 +263,7 @@ int slab_unmergeable(struct kmem_cache *s)
117759 /*
117760 * We may have set a slab to be unmergeable during bootstrap.
117761 */
117762 - if (s->refcount < 0)
117763 + if (atomic_read(&s->refcount) < 0)
117764 return 1;
117765
117766 return 0;
117767 @@ -343,7 +367,7 @@ do_kmem_cache_create(const char *name, size_t object_size, size_t size,
117768 if (err)
117769 goto out_free_cache;
117770
117771 - s->refcount = 1;
117772 + atomic_set(&s->refcount, 1);
117773 list_add(&s->list, &slab_caches);
117774 out:
117775 if (err)
117776 @@ -408,6 +432,13 @@ kmem_cache_create(const char *name, size_t size, size_t align,
117777 */
117778 flags &= CACHE_CREATE_MASK;
117779
117780 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117781 + if (pax_sanitize_slab == PAX_SANITIZE_SLAB_OFF || (flags & SLAB_DESTROY_BY_RCU))
117782 + flags |= SLAB_NO_SANITIZE;
117783 + else if (pax_sanitize_slab == PAX_SANITIZE_SLAB_FULL)
117784 + flags &= ~SLAB_NO_SANITIZE;
117785 +#endif
117786 +
117787 s = __kmem_cache_alias(name, size, align, flags, ctor);
117788 if (s)
117789 goto out_unlock;
117790 @@ -478,7 +509,7 @@ static void do_kmem_cache_release(struct list_head *release,
117791 rcu_barrier();
117792
117793 list_for_each_entry_safe(s, s2, release, list) {
117794 -#ifdef SLAB_SUPPORTS_SYSFS
117795 +#if defined(SLAB_SUPPORTS_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117796 sysfs_slab_remove(s);
117797 #else
117798 slab_kmem_cache_release(s);
117799 @@ -650,8 +681,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
117800
117801 mutex_lock(&slab_mutex);
117802
117803 - s->refcount--;
117804 - if (s->refcount)
117805 + if (!atomic_dec_and_test(&s->refcount))
117806 goto out_unlock;
117807
117808 for_each_memcg_cache_safe(c, c2, s) {
117809 @@ -716,7 +746,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
117810 panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
117811 name, size, err);
117812
117813 - s->refcount = -1; /* Exempt from merging for now */
117814 + atomic_set(&s->refcount, -1); /* Exempt from merging for now */
117815 }
117816
117817 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
117818 @@ -729,7 +759,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
117819
117820 create_boot_cache(s, name, size, flags);
117821 list_add(&s->list, &slab_caches);
117822 - s->refcount = 1;
117823 + atomic_set(&s->refcount, 1);
117824 return s;
117825 }
117826
117827 @@ -741,6 +771,11 @@ struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
117828 EXPORT_SYMBOL(kmalloc_dma_caches);
117829 #endif
117830
117831 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117832 +struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
117833 +EXPORT_SYMBOL(kmalloc_usercopy_caches);
117834 +#endif
117835 +
117836 /*
117837 * Conversion table for small slabs sizes / 8 to the index in the
117838 * kmalloc array. This is necessary for slabs < 192 since we have non power
117839 @@ -805,6 +840,13 @@ struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
117840 return kmalloc_dma_caches[index];
117841
117842 #endif
117843 +
117844 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117845 + if (unlikely((flags & GFP_USERCOPY)))
117846 + return kmalloc_usercopy_caches[index];
117847 +
117848 +#endif
117849 +
117850 return kmalloc_caches[index];
117851 }
117852
117853 @@ -897,7 +939,7 @@ void __init create_kmalloc_caches(unsigned long flags)
117854
117855 for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
117856 if (!kmalloc_caches[i])
117857 - new_kmalloc_cache(i, flags);
117858 + new_kmalloc_cache(i, SLAB_USERCOPY | flags);
117859
117860 /*
117861 * Caches that are not of the two-to-the-power-of size.
117862 @@ -905,9 +947,9 @@ void __init create_kmalloc_caches(unsigned long flags)
117863 * earlier power of two caches
117864 */
117865 if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[1] && i == 6)
117866 - new_kmalloc_cache(1, flags);
117867 + new_kmalloc_cache(1, SLAB_USERCOPY | flags);
117868 if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[2] && i == 7)
117869 - new_kmalloc_cache(2, flags);
117870 + new_kmalloc_cache(2, SLAB_USERCOPY | flags);
117871 }
117872
117873 /* Kmalloc array is now usable */
117874 @@ -928,6 +970,23 @@ void __init create_kmalloc_caches(unsigned long flags)
117875 }
117876 }
117877 #endif
117878 +
117879 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117880 + for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
117881 + struct kmem_cache *s = kmalloc_caches[i];
117882 +
117883 + if (s) {
117884 + int size = kmalloc_size(i);
117885 + char *n = kasprintf(GFP_NOWAIT,
117886 + "usercopy-kmalloc-%d", size);
117887 +
117888 + BUG_ON(!n);
117889 + kmalloc_usercopy_caches[i] = create_kmalloc_cache(n,
117890 + size, SLAB_USERCOPY | flags);
117891 + }
117892 + }
117893 +#endif
117894 +
117895 }
117896 #endif /* !CONFIG_SLOB */
117897
117898 @@ -987,6 +1046,9 @@ static void print_slabinfo_header(struct seq_file *m)
117899 seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
117900 "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
117901 seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
117902 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117903 + seq_puts(m, " : pax <sanitized> <not_sanitized>");
117904 +#endif
117905 #endif
117906 seq_putc(m, '\n');
117907 }
117908 @@ -1116,7 +1178,7 @@ static int __init slab_proc_init(void)
117909 module_init(slab_proc_init);
117910 #endif /* CONFIG_SLABINFO */
117911
117912 -static __always_inline void *__do_krealloc(const void *p, size_t new_size,
117913 +static __always_inline void * __size_overflow(2) __do_krealloc(const void *p, size_t new_size,
117914 gfp_t flags)
117915 {
117916 void *ret;
117917 diff --git a/mm/slob.c b/mm/slob.c
117918 index 0d7e5df..2f9306b 100644
117919 --- a/mm/slob.c
117920 +++ b/mm/slob.c
117921 @@ -67,6 +67,7 @@
117922 #include <linux/rcupdate.h>
117923 #include <linux/list.h>
117924 #include <linux/kmemleak.h>
117925 +#include <linux/vmalloc.h>
117926
117927 #include <trace/events/kmem.h>
117928
117929 @@ -157,7 +158,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
117930 /*
117931 * Return the size of a slob block.
117932 */
117933 -static slobidx_t slob_units(slob_t *s)
117934 +static slobidx_t slob_units(const slob_t *s)
117935 {
117936 if (s->units > 0)
117937 return s->units;
117938 @@ -167,7 +168,7 @@ static slobidx_t slob_units(slob_t *s)
117939 /*
117940 * Return the next free slob block pointer after this one.
117941 */
117942 -static slob_t *slob_next(slob_t *s)
117943 +static slob_t *slob_next(const slob_t *s)
117944 {
117945 slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK);
117946 slobidx_t next;
117947 @@ -182,14 +183,14 @@ static slob_t *slob_next(slob_t *s)
117948 /*
117949 * Returns true if s is the last free block in its page.
117950 */
117951 -static int slob_last(slob_t *s)
117952 +static int slob_last(const slob_t *s)
117953 {
117954 return !((unsigned long)slob_next(s) & ~PAGE_MASK);
117955 }
117956
117957 -static void *slob_new_pages(gfp_t gfp, int order, int node)
117958 +static struct page *slob_new_pages(gfp_t gfp, unsigned int order, int node)
117959 {
117960 - void *page;
117961 + struct page *page;
117962
117963 #ifdef CONFIG_NUMA
117964 if (node != NUMA_NO_NODE)
117965 @@ -201,14 +202,18 @@ static void *slob_new_pages(gfp_t gfp, int order, int node)
117966 if (!page)
117967 return NULL;
117968
117969 - return page_address(page);
117970 + __SetPageSlab(page);
117971 + return page;
117972 }
117973
117974 -static void slob_free_pages(void *b, int order)
117975 +static void slob_free_pages(struct page *sp, int order)
117976 {
117977 if (current->reclaim_state)
117978 current->reclaim_state->reclaimed_slab += 1 << order;
117979 - free_pages((unsigned long)b, order);
117980 + __ClearPageSlab(sp);
117981 + page_mapcount_reset(sp);
117982 + sp->private = 0;
117983 + __free_pages(sp, order);
117984 }
117985
117986 /*
117987 @@ -313,15 +318,15 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
117988
117989 /* Not enough space: must allocate a new page */
117990 if (!b) {
117991 - b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
117992 - if (!b)
117993 + sp = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
117994 + if (!sp)
117995 return NULL;
117996 - sp = virt_to_page(b);
117997 - __SetPageSlab(sp);
117998 + b = page_address(sp);
117999
118000 spin_lock_irqsave(&slob_lock, flags);
118001 sp->units = SLOB_UNITS(PAGE_SIZE);
118002 sp->freelist = b;
118003 + sp->private = 0;
118004 INIT_LIST_HEAD(&sp->lru);
118005 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE));
118006 set_slob_page_free(sp, slob_list);
118007 @@ -337,7 +342,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
118008 /*
118009 * slob_free: entry point into the slob allocator.
118010 */
118011 -static void slob_free(void *block, int size)
118012 +static void slob_free(struct kmem_cache *c, void *block, int size)
118013 {
118014 struct page *sp;
118015 slob_t *prev, *next, *b = (slob_t *)block;
118016 @@ -359,12 +364,15 @@ static void slob_free(void *block, int size)
118017 if (slob_page_free(sp))
118018 clear_slob_page_free(sp);
118019 spin_unlock_irqrestore(&slob_lock, flags);
118020 - __ClearPageSlab(sp);
118021 - page_mapcount_reset(sp);
118022 - slob_free_pages(b, 0);
118023 + slob_free_pages(sp, 0);
118024 return;
118025 }
118026
118027 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118028 + if (pax_sanitize_slab && !(c && (c->flags & SLAB_NO_SANITIZE)))
118029 + memset(block, PAX_MEMORY_SANITIZE_VALUE, size);
118030 +#endif
118031 +
118032 if (!slob_page_free(sp)) {
118033 /* This slob page is about to become partially free. Easy! */
118034 sp->units = units;
118035 @@ -424,11 +432,10 @@ out:
118036 */
118037
118038 static __always_inline void *
118039 -__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
118040 +__do_kmalloc_node_align(size_t size, gfp_t gfp, int node, unsigned long caller, int align)
118041 {
118042 - unsigned int *m;
118043 - int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
118044 - void *ret;
118045 + slob_t *m;
118046 + void *ret = NULL;
118047
118048 gfp &= gfp_allowed_mask;
118049
118050 @@ -442,27 +449,45 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
118051
118052 if (!m)
118053 return NULL;
118054 - *m = size;
118055 + BUILD_BUG_ON(ARCH_KMALLOC_MINALIGN < 2 * SLOB_UNIT);
118056 + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT);
118057 + m[0].units = size;
118058 + m[1].units = align;
118059 ret = (void *)m + align;
118060
118061 trace_kmalloc_node(caller, ret,
118062 size, size + align, gfp, node);
118063 } else {
118064 unsigned int order = get_order(size);
118065 + struct page *page;
118066
118067 if (likely(order))
118068 gfp |= __GFP_COMP;
118069 - ret = slob_new_pages(gfp, order, node);
118070 + page = slob_new_pages(gfp, order, node);
118071 + if (page) {
118072 + ret = page_address(page);
118073 + page->private = size;
118074 + }
118075
118076 trace_kmalloc_node(caller, ret,
118077 size, PAGE_SIZE << order, gfp, node);
118078 }
118079
118080 - kmemleak_alloc(ret, size, 1, gfp);
118081 return ret;
118082 }
118083
118084 -void *__kmalloc(size_t size, gfp_t gfp)
118085 +static __always_inline void *
118086 +__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
118087 +{
118088 + int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
118089 + void *ret = __do_kmalloc_node_align(size, gfp, node, caller, align);
118090 +
118091 + if (!ZERO_OR_NULL_PTR(ret))
118092 + kmemleak_alloc(ret, size, 1, gfp);
118093 + return ret;
118094 +}
118095 +
118096 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t gfp)
118097 {
118098 return __do_kmalloc_node(size, gfp, NUMA_NO_NODE, _RET_IP_);
118099 }
118100 @@ -491,34 +516,123 @@ void kfree(const void *block)
118101 return;
118102 kmemleak_free(block);
118103
118104 + VM_BUG_ON(!virt_addr_valid(block));
118105 sp = virt_to_page(block);
118106 - if (PageSlab(sp)) {
118107 + VM_BUG_ON(!PageSlab(sp));
118108 + if (!sp->private) {
118109 int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
118110 - unsigned int *m = (unsigned int *)(block - align);
118111 - slob_free(m, *m + align);
118112 - } else
118113 + slob_t *m = (slob_t *)(block - align);
118114 + slob_free(NULL, m, m[0].units + align);
118115 + } else {
118116 + __ClearPageSlab(sp);
118117 + page_mapcount_reset(sp);
118118 + sp->private = 0;
118119 __free_pages(sp, compound_order(sp));
118120 + }
118121 }
118122 EXPORT_SYMBOL(kfree);
118123
118124 +bool is_usercopy_object(const void *ptr)
118125 +{
118126 + if (!slab_is_available())
118127 + return false;
118128 +
118129 + if (is_vmalloc_addr(ptr)
118130 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118131 + && !object_starts_on_stack(ptr)
118132 +#endif
118133 + ) {
118134 + struct vm_struct *vm = find_vm_area(ptr);
118135 + if (vm && (vm->flags & VM_USERCOPY))
118136 + return true;
118137 + return false;
118138 + }
118139 +
118140 + // PAX: TODO
118141 +
118142 + return false;
118143 +}
118144 +
118145 +#ifdef CONFIG_PAX_USERCOPY
118146 +const char *check_heap_object(const void *ptr, unsigned long n)
118147 +{
118148 + struct page *page;
118149 + const slob_t *free;
118150 + const void *base;
118151 + unsigned long flags;
118152 +
118153 + if (ZERO_OR_NULL_PTR(ptr))
118154 + return "<null>";
118155 +
118156 + if (!virt_addr_valid(ptr))
118157 + return NULL;
118158 +
118159 + page = virt_to_head_page(ptr);
118160 + if (!PageSlab(page))
118161 + return NULL;
118162 +
118163 + if (page->private) {
118164 + base = page;
118165 + if (base <= ptr && n <= page->private - (ptr - base))
118166 + return NULL;
118167 + return "<slob>";
118168 + }
118169 +
118170 + /* some tricky double walking to find the chunk */
118171 + spin_lock_irqsave(&slob_lock, flags);
118172 + base = (void *)((unsigned long)ptr & PAGE_MASK);
118173 + free = page->freelist;
118174 +
118175 + while (!slob_last(free) && (void *)free <= ptr) {
118176 + base = free + slob_units(free);
118177 + free = slob_next(free);
118178 + }
118179 +
118180 + while (base < (void *)free) {
118181 + slobidx_t m = ((slob_t *)base)[0].units, align = ((slob_t *)base)[1].units;
118182 + int size = SLOB_UNIT * SLOB_UNITS(m + align);
118183 + int offset;
118184 +
118185 + if (ptr < base + align)
118186 + break;
118187 +
118188 + offset = ptr - base - align;
118189 + if (offset >= m) {
118190 + base += size;
118191 + continue;
118192 + }
118193 +
118194 + if (n > m - offset)
118195 + break;
118196 +
118197 + spin_unlock_irqrestore(&slob_lock, flags);
118198 + return NULL;
118199 + }
118200 +
118201 + spin_unlock_irqrestore(&slob_lock, flags);
118202 + return "<slob>";
118203 +}
118204 +#endif
118205 +
118206 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
118207 size_t ksize(const void *block)
118208 {
118209 struct page *sp;
118210 int align;
118211 - unsigned int *m;
118212 + slob_t *m;
118213
118214 BUG_ON(!block);
118215 if (unlikely(block == ZERO_SIZE_PTR))
118216 return 0;
118217
118218 sp = virt_to_page(block);
118219 - if (unlikely(!PageSlab(sp)))
118220 - return PAGE_SIZE << compound_order(sp);
118221 + VM_BUG_ON(!PageSlab(sp));
118222 + if (sp->private)
118223 + return sp->private;
118224
118225 align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
118226 - m = (unsigned int *)(block - align);
118227 - return SLOB_UNITS(*m) * SLOB_UNIT;
118228 + m = (slob_t *)(block - align);
118229 + return SLOB_UNITS(m[0].units) * SLOB_UNIT;
118230 }
118231 EXPORT_SYMBOL(ksize);
118232
118233 @@ -534,23 +648,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
118234
118235 static void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
118236 {
118237 - void *b;
118238 + void *b = NULL;
118239
118240 flags &= gfp_allowed_mask;
118241
118242 lockdep_trace_alloc(flags);
118243
118244 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118245 + b = __do_kmalloc_node_align(c->size, flags, node, _RET_IP_, c->align);
118246 +#else
118247 if (c->size < PAGE_SIZE) {
118248 b = slob_alloc(c->size, flags, c->align, node);
118249 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
118250 SLOB_UNITS(c->size) * SLOB_UNIT,
118251 flags, node);
118252 } else {
118253 - b = slob_new_pages(flags, get_order(c->size), node);
118254 + struct page *sp;
118255 +
118256 + sp = slob_new_pages(flags, get_order(c->size), node);
118257 + if (sp) {
118258 + b = page_address(sp);
118259 + sp->private = c->size;
118260 + }
118261 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
118262 PAGE_SIZE << get_order(c->size),
118263 flags, node);
118264 }
118265 +#endif
118266
118267 if (b && c->ctor)
118268 c->ctor(b);
118269 @@ -566,7 +690,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
118270 EXPORT_SYMBOL(kmem_cache_alloc);
118271
118272 #ifdef CONFIG_NUMA
118273 -void *__kmalloc_node(size_t size, gfp_t gfp, int node)
118274 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t gfp, int node)
118275 {
118276 return __do_kmalloc_node(size, gfp, node, _RET_IP_);
118277 }
118278 @@ -579,12 +703,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
118279 EXPORT_SYMBOL(kmem_cache_alloc_node);
118280 #endif
118281
118282 -static void __kmem_cache_free(void *b, int size)
118283 +static void __kmem_cache_free(struct kmem_cache *c, void *b, int size)
118284 {
118285 - if (size < PAGE_SIZE)
118286 - slob_free(b, size);
118287 + struct page *sp;
118288 +
118289 + sp = virt_to_page(b);
118290 + BUG_ON(!PageSlab(sp));
118291 + if (!sp->private)
118292 + slob_free(c, b, size);
118293 else
118294 - slob_free_pages(b, get_order(size));
118295 + slob_free_pages(sp, get_order(size));
118296 }
118297
118298 static void kmem_rcu_free(struct rcu_head *head)
118299 @@ -592,22 +720,36 @@ static void kmem_rcu_free(struct rcu_head *head)
118300 struct slob_rcu *slob_rcu = (struct slob_rcu *)head;
118301 void *b = (void *)slob_rcu - (slob_rcu->size - sizeof(struct slob_rcu));
118302
118303 - __kmem_cache_free(b, slob_rcu->size);
118304 + __kmem_cache_free(NULL, b, slob_rcu->size);
118305 }
118306
118307 void kmem_cache_free(struct kmem_cache *c, void *b)
118308 {
118309 + int size = c->size;
118310 +
118311 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118312 + if (size + c->align < PAGE_SIZE) {
118313 + size += c->align;
118314 + b -= c->align;
118315 + }
118316 +#endif
118317 +
118318 kmemleak_free_recursive(b, c->flags);
118319 if (unlikely(c->flags & SLAB_DESTROY_BY_RCU)) {
118320 struct slob_rcu *slob_rcu;
118321 - slob_rcu = b + (c->size - sizeof(struct slob_rcu));
118322 - slob_rcu->size = c->size;
118323 + slob_rcu = b + (size - sizeof(struct slob_rcu));
118324 + slob_rcu->size = size;
118325 call_rcu(&slob_rcu->head, kmem_rcu_free);
118326 } else {
118327 - __kmem_cache_free(b, c->size);
118328 + __kmem_cache_free(c, b, size);
118329 }
118330
118331 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118332 + trace_kfree(_RET_IP_, b);
118333 +#else
118334 trace_kmem_cache_free(_RET_IP_, b);
118335 +#endif
118336 +
118337 }
118338 EXPORT_SYMBOL(kmem_cache_free);
118339
118340 diff --git a/mm/slub.c b/mm/slub.c
118341 index f614b5d..043029b 100644
118342 --- a/mm/slub.c
118343 +++ b/mm/slub.c
118344 @@ -34,6 +34,7 @@
118345 #include <linux/stacktrace.h>
118346 #include <linux/prefetch.h>
118347 #include <linux/memcontrol.h>
118348 +#include <linux/vmalloc.h>
118349
118350 #include <trace/events/kmem.h>
118351
118352 @@ -198,7 +199,7 @@ struct track {
118353
118354 enum track_item { TRACK_ALLOC, TRACK_FREE };
118355
118356 -#ifdef CONFIG_SYSFS
118357 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118358 static int sysfs_slab_add(struct kmem_cache *);
118359 static int sysfs_slab_alias(struct kmem_cache *, const char *);
118360 static void memcg_propagate_slab_attrs(struct kmem_cache *s);
118361 @@ -556,7 +557,7 @@ static void print_track(const char *s, struct track *t)
118362 if (!t->addr)
118363 return;
118364
118365 - pr_err("INFO: %s in %pS age=%lu cpu=%u pid=%d\n",
118366 + pr_err("INFO: %s in %pA age=%lu cpu=%u pid=%d\n",
118367 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
118368 #ifdef CONFIG_STACKTRACE
118369 {
118370 @@ -2704,6 +2705,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
118371
118372 slab_free_hook(s, x);
118373
118374 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118375 + if (!(s->flags & SLAB_NO_SANITIZE)) {
118376 + memset(x, PAX_MEMORY_SANITIZE_VALUE, s->object_size);
118377 + if (s->ctor)
118378 + s->ctor(x);
118379 + }
118380 +#endif
118381 +
118382 redo:
118383 /*
118384 * Determine the currently cpus per cpu slab.
118385 @@ -3152,6 +3161,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
118386 s->inuse = size;
118387
118388 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
118389 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118390 + (!(flags & SLAB_NO_SANITIZE)) ||
118391 +#endif
118392 s->ctor)) {
118393 /*
118394 * Relocate free pointer after the object if it is not
118395 @@ -3406,7 +3418,7 @@ static int __init setup_slub_min_objects(char *str)
118396
118397 __setup("slub_min_objects=", setup_slub_min_objects);
118398
118399 -void *__kmalloc(size_t size, gfp_t flags)
118400 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t flags)
118401 {
118402 struct kmem_cache *s;
118403 void *ret;
118404 @@ -3444,7 +3456,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
118405 return ptr;
118406 }
118407
118408 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
118409 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
118410 {
118411 struct kmem_cache *s;
118412 void *ret;
118413 @@ -3492,6 +3504,70 @@ static size_t __ksize(const void *object)
118414 return slab_ksize(page->slab_cache);
118415 }
118416
118417 +bool is_usercopy_object(const void *ptr)
118418 +{
118419 + struct page *page;
118420 + struct kmem_cache *s;
118421 +
118422 + if (ZERO_OR_NULL_PTR(ptr))
118423 + return false;
118424 +
118425 + if (!slab_is_available())
118426 + return false;
118427 +
118428 + if (is_vmalloc_addr(ptr)
118429 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118430 + && !object_starts_on_stack(ptr)
118431 +#endif
118432 + ) {
118433 + struct vm_struct *vm = find_vm_area(ptr);
118434 + if (vm && (vm->flags & VM_USERCOPY))
118435 + return true;
118436 + return false;
118437 + }
118438 +
118439 + if (!virt_addr_valid(ptr))
118440 + return false;
118441 +
118442 + page = virt_to_head_page(ptr);
118443 +
118444 + if (!PageSlab(page))
118445 + return false;
118446 +
118447 + s = page->slab_cache;
118448 + return s->flags & SLAB_USERCOPY;
118449 +}
118450 +
118451 +#ifdef CONFIG_PAX_USERCOPY
118452 +const char *check_heap_object(const void *ptr, unsigned long n)
118453 +{
118454 + struct page *page;
118455 + struct kmem_cache *s;
118456 + unsigned long offset;
118457 +
118458 + if (ZERO_OR_NULL_PTR(ptr))
118459 + return "<null>";
118460 +
118461 + if (!virt_addr_valid(ptr))
118462 + return NULL;
118463 +
118464 + page = virt_to_head_page(ptr);
118465 +
118466 + if (!PageSlab(page))
118467 + return NULL;
118468 +
118469 + s = page->slab_cache;
118470 + if (!(s->flags & SLAB_USERCOPY))
118471 + return s->name;
118472 +
118473 + offset = (ptr - page_address(page)) % s->size;
118474 + if (offset <= s->object_size && n <= s->object_size - offset)
118475 + return NULL;
118476 +
118477 + return s->name;
118478 +}
118479 +#endif
118480 +
118481 size_t ksize(const void *object)
118482 {
118483 size_t size = __ksize(object);
118484 @@ -3512,6 +3588,7 @@ void kfree(const void *x)
118485 if (unlikely(ZERO_OR_NULL_PTR(x)))
118486 return;
118487
118488 + VM_BUG_ON(!virt_addr_valid(x));
118489 page = virt_to_head_page(x);
118490 if (unlikely(!PageSlab(page))) {
118491 BUG_ON(!PageCompound(page));
118492 @@ -3829,7 +3906,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
118493
118494 s = find_mergeable(size, align, flags, name, ctor);
118495 if (s) {
118496 - s->refcount++;
118497 + atomic_inc(&s->refcount);
118498
118499 /*
118500 * Adjust the object sizes so that we clear
118501 @@ -3845,7 +3922,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
118502 }
118503
118504 if (sysfs_slab_alias(s, name)) {
118505 - s->refcount--;
118506 + atomic_dec(&s->refcount);
118507 s = NULL;
118508 }
118509 }
118510 @@ -3962,7 +4039,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
118511 }
118512 #endif
118513
118514 -#ifdef CONFIG_SYSFS
118515 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118516 static int count_inuse(struct page *page)
118517 {
118518 return page->inuse;
118519 @@ -4243,7 +4320,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
118520 len += sprintf(buf + len, "%7ld ", l->count);
118521
118522 if (l->addr)
118523 +#ifdef CONFIG_GRKERNSEC_HIDESYM
118524 + len += sprintf(buf + len, "%pS", NULL);
118525 +#else
118526 len += sprintf(buf + len, "%pS", (void *)l->addr);
118527 +#endif
118528 else
118529 len += sprintf(buf + len, "<not-available>");
118530
118531 @@ -4341,12 +4422,12 @@ static void __init resiliency_test(void)
118532 validate_slab_cache(kmalloc_caches[9]);
118533 }
118534 #else
118535 -#ifdef CONFIG_SYSFS
118536 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118537 static void resiliency_test(void) {};
118538 #endif
118539 #endif
118540
118541 -#ifdef CONFIG_SYSFS
118542 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118543 enum slab_stat_type {
118544 SL_ALL, /* All slabs */
118545 SL_PARTIAL, /* Only partially allocated slabs */
118546 @@ -4583,13 +4664,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
118547 {
118548 if (!s->ctor)
118549 return 0;
118550 +#ifdef CONFIG_GRKERNSEC_HIDESYM
118551 + return sprintf(buf, "%pS\n", NULL);
118552 +#else
118553 return sprintf(buf, "%pS\n", s->ctor);
118554 +#endif
118555 }
118556 SLAB_ATTR_RO(ctor);
118557
118558 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
118559 {
118560 - return sprintf(buf, "%d\n", s->refcount < 0 ? 0 : s->refcount - 1);
118561 + return sprintf(buf, "%d\n", atomic_read(&s->refcount) < 0 ? 0 : atomic_read(&s->refcount) - 1);
118562 }
118563 SLAB_ATTR_RO(aliases);
118564
118565 @@ -4677,6 +4762,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
118566 SLAB_ATTR_RO(cache_dma);
118567 #endif
118568
118569 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118570 +static ssize_t usercopy_show(struct kmem_cache *s, char *buf)
118571 +{
118572 + return sprintf(buf, "%d\n", !!(s->flags & SLAB_USERCOPY));
118573 +}
118574 +SLAB_ATTR_RO(usercopy);
118575 +#endif
118576 +
118577 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118578 +static ssize_t sanitize_show(struct kmem_cache *s, char *buf)
118579 +{
118580 + return sprintf(buf, "%d\n", !(s->flags & SLAB_NO_SANITIZE));
118581 +}
118582 +SLAB_ATTR_RO(sanitize);
118583 +#endif
118584 +
118585 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
118586 {
118587 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
118588 @@ -4732,7 +4833,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
118589 * as well as cause other issues like converting a mergeable
118590 * cache into an umergeable one.
118591 */
118592 - if (s->refcount > 1)
118593 + if (atomic_read(&s->refcount) > 1)
118594 return -EINVAL;
118595
118596 s->flags &= ~SLAB_TRACE;
118597 @@ -4852,7 +4953,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
118598 static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
118599 size_t length)
118600 {
118601 - if (s->refcount > 1)
118602 + if (atomic_read(&s->refcount) > 1)
118603 return -EINVAL;
118604
118605 s->flags &= ~SLAB_FAILSLAB;
118606 @@ -5019,6 +5120,12 @@ static struct attribute *slab_attrs[] = {
118607 #ifdef CONFIG_ZONE_DMA
118608 &cache_dma_attr.attr,
118609 #endif
118610 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118611 + &usercopy_attr.attr,
118612 +#endif
118613 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118614 + &sanitize_attr.attr,
118615 +#endif
118616 #ifdef CONFIG_NUMA
118617 &remote_node_defrag_ratio_attr.attr,
118618 #endif
118619 @@ -5260,6 +5367,7 @@ static char *create_unique_id(struct kmem_cache *s)
118620 return name;
118621 }
118622
118623 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118624 static int sysfs_slab_add(struct kmem_cache *s)
118625 {
118626 int err;
118627 @@ -5331,6 +5439,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
118628 kobject_del(&s->kobj);
118629 kobject_put(&s->kobj);
118630 }
118631 +#endif
118632
118633 /*
118634 * Need to buffer aliases during bootup until sysfs becomes
118635 @@ -5344,6 +5453,7 @@ struct saved_alias {
118636
118637 static struct saved_alias *alias_list;
118638
118639 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118640 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
118641 {
118642 struct saved_alias *al;
118643 @@ -5366,6 +5476,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
118644 alias_list = al;
118645 return 0;
118646 }
118647 +#endif
118648
118649 static int __init slab_sysfs_init(void)
118650 {
118651 diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
118652 index 4cba9c2..b4f9fcc 100644
118653 --- a/mm/sparse-vmemmap.c
118654 +++ b/mm/sparse-vmemmap.c
118655 @@ -131,7 +131,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
118656 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
118657 if (!p)
118658 return NULL;
118659 - pud_populate(&init_mm, pud, p);
118660 + pud_populate_kernel(&init_mm, pud, p);
118661 }
118662 return pud;
118663 }
118664 @@ -143,7 +143,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
118665 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
118666 if (!p)
118667 return NULL;
118668 - pgd_populate(&init_mm, pgd, p);
118669 + pgd_populate_kernel(&init_mm, pgd, p);
118670 }
118671 return pgd;
118672 }
118673 diff --git a/mm/sparse.c b/mm/sparse.c
118674 index d1b48b6..6e8590e 100644
118675 --- a/mm/sparse.c
118676 +++ b/mm/sparse.c
118677 @@ -750,7 +750,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
118678
118679 for (i = 0; i < PAGES_PER_SECTION; i++) {
118680 if (PageHWPoison(&memmap[i])) {
118681 - atomic_long_sub(1, &num_poisoned_pages);
118682 + atomic_long_sub_unchecked(1, &num_poisoned_pages);
118683 ClearPageHWPoison(&memmap[i]);
118684 }
118685 }
118686 diff --git a/mm/swap.c b/mm/swap.c
118687 index 983f692..f21d403 100644
118688 --- a/mm/swap.c
118689 +++ b/mm/swap.c
118690 @@ -86,6 +86,8 @@ static void __put_compound_page(struct page *page)
118691 if (!PageHuge(page))
118692 __page_cache_release(page);
118693 dtor = get_compound_page_dtor(page);
118694 + if (!PageHuge(page))
118695 + BUG_ON(dtor != free_compound_page);
118696 (*dtor)(page);
118697 }
118698
118699 diff --git a/mm/swapfile.c b/mm/swapfile.c
118700 index 5887731..e23a30e 100644
118701 --- a/mm/swapfile.c
118702 +++ b/mm/swapfile.c
118703 @@ -84,7 +84,7 @@ static DEFINE_MUTEX(swapon_mutex);
118704
118705 static DECLARE_WAIT_QUEUE_HEAD(proc_poll_wait);
118706 /* Activity counter to indicate that a swapon or swapoff has occurred */
118707 -static atomic_t proc_poll_event = ATOMIC_INIT(0);
118708 +static atomic_unchecked_t proc_poll_event = ATOMIC_INIT(0);
118709
118710 static inline unsigned char swap_count(unsigned char ent)
118711 {
118712 @@ -1986,7 +1986,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
118713 spin_unlock(&swap_lock);
118714
118715 err = 0;
118716 - atomic_inc(&proc_poll_event);
118717 + atomic_inc_unchecked(&proc_poll_event);
118718 wake_up_interruptible(&proc_poll_wait);
118719
118720 out_dput:
118721 @@ -2003,8 +2003,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait)
118722
118723 poll_wait(file, &proc_poll_wait, wait);
118724
118725 - if (seq->poll_event != atomic_read(&proc_poll_event)) {
118726 - seq->poll_event = atomic_read(&proc_poll_event);
118727 + if (seq->poll_event != atomic_read_unchecked(&proc_poll_event)) {
118728 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
118729 return POLLIN | POLLRDNORM | POLLERR | POLLPRI;
118730 }
118731
118732 @@ -2102,7 +2102,7 @@ static int swaps_open(struct inode *inode, struct file *file)
118733 return ret;
118734
118735 seq = file->private_data;
118736 - seq->poll_event = atomic_read(&proc_poll_event);
118737 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
118738 return 0;
118739 }
118740
118741 @@ -2551,7 +2551,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
118742 (frontswap_map) ? "FS" : "");
118743
118744 mutex_unlock(&swapon_mutex);
118745 - atomic_inc(&proc_poll_event);
118746 + atomic_inc_unchecked(&proc_poll_event);
118747 wake_up_interruptible(&proc_poll_wait);
118748
118749 if (S_ISREG(inode->i_mode))
118750 diff --git a/mm/util.c b/mm/util.c
118751 index 68ff8a5..40c7a70 100644
118752 --- a/mm/util.c
118753 +++ b/mm/util.c
118754 @@ -233,6 +233,12 @@ struct task_struct *task_of_stack(struct task_struct *task,
118755 void arch_pick_mmap_layout(struct mm_struct *mm)
118756 {
118757 mm->mmap_base = TASK_UNMAPPED_BASE;
118758 +
118759 +#ifdef CONFIG_PAX_RANDMMAP
118760 + if (mm->pax_flags & MF_PAX_RANDMMAP)
118761 + mm->mmap_base += mm->delta_mmap;
118762 +#endif
118763 +
118764 mm->get_unmapped_area = arch_get_unmapped_area;
118765 }
118766 #endif
118767 @@ -434,6 +440,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
118768 if (!mm->arg_end)
118769 goto out_mm; /* Shh! No looking before we're done */
118770
118771 + if (gr_acl_handle_procpidmem(task))
118772 + goto out_mm;
118773 +
118774 len = mm->arg_end - mm->arg_start;
118775
118776 if (len > buflen)
118777 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
118778 index 2faaa29..b4893f8 100644
118779 --- a/mm/vmalloc.c
118780 +++ b/mm/vmalloc.c
118781 @@ -40,20 +40,65 @@ struct vfree_deferred {
118782 struct work_struct wq;
118783 };
118784 static DEFINE_PER_CPU(struct vfree_deferred, vfree_deferred);
118785 +static DEFINE_PER_CPU(struct vfree_deferred, vunmap_deferred);
118786 +
118787 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118788 +struct stack_deferred_llist {
118789 + struct llist_head list;
118790 + void *stack;
118791 + void *lowmem_stack;
118792 +};
118793 +
118794 +struct stack_deferred {
118795 + struct stack_deferred_llist list;
118796 + struct work_struct wq;
118797 +};
118798 +
118799 +static DEFINE_PER_CPU(struct stack_deferred, stack_deferred);
118800 +#endif
118801
118802 static void __vunmap(const void *, int);
118803
118804 -static void free_work(struct work_struct *w)
118805 +static void vfree_work(struct work_struct *w)
118806 {
118807 struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
118808 struct llist_node *llnode = llist_del_all(&p->list);
118809 while (llnode) {
118810 - void *p = llnode;
118811 + void *x = llnode;
118812 llnode = llist_next(llnode);
118813 - __vunmap(p, 1);
118814 + __vunmap(x, 1);
118815 }
118816 }
118817
118818 +static void vunmap_work(struct work_struct *w)
118819 +{
118820 + struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
118821 + struct llist_node *llnode = llist_del_all(&p->list);
118822 + while (llnode) {
118823 + void *x = llnode;
118824 + llnode = llist_next(llnode);
118825 + __vunmap(x, 0);
118826 + }
118827 +}
118828 +
118829 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118830 +static void unmap_work(struct work_struct *w)
118831 +{
118832 + struct stack_deferred *p = container_of(w, struct stack_deferred, wq);
118833 + struct llist_node *llnode = llist_del_all(&p->list.list);
118834 + while (llnode) {
118835 + struct stack_deferred_llist *x =
118836 + llist_entry((struct llist_head *)llnode,
118837 + struct stack_deferred_llist, list);
118838 + void *stack = ACCESS_ONCE(x->stack);
118839 + void *lowmem_stack = ACCESS_ONCE(x->lowmem_stack);
118840 + llnode = llist_next(llnode);
118841 + __vunmap(stack, 0);
118842 + free_kmem_pages((unsigned long)lowmem_stack, THREAD_SIZE_ORDER);
118843 + }
118844 +}
118845 +#endif
118846 +
118847 /*** Page table manipulation functions ***/
118848
118849 static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
118850 @@ -61,10 +106,23 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
118851 pte_t *pte;
118852
118853 pte = pte_offset_kernel(pmd, addr);
118854 + pax_open_kernel();
118855 do {
118856 - pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
118857 - WARN_ON(!pte_none(ptent) && !pte_present(ptent));
118858 +
118859 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118860 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr < (unsigned long)MODULES_EXEC_END) {
118861 + BUG_ON(!pte_exec(*pte));
118862 + set_pte_at(&init_mm, addr, pte, pfn_pte(__pa(addr) >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
118863 + continue;
118864 + }
118865 +#endif
118866 +
118867 + {
118868 + pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
118869 + WARN_ON(!pte_none(ptent) && !pte_present(ptent));
118870 + }
118871 } while (pte++, addr += PAGE_SIZE, addr != end);
118872 + pax_close_kernel();
118873 }
118874
118875 static void vunmap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end)
118876 @@ -127,16 +185,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
118877 pte = pte_alloc_kernel(pmd, addr);
118878 if (!pte)
118879 return -ENOMEM;
118880 +
118881 + pax_open_kernel();
118882 do {
118883 struct page *page = pages[*nr];
118884
118885 - if (WARN_ON(!pte_none(*pte)))
118886 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118887 + if (pgprot_val(prot) & _PAGE_NX)
118888 +#endif
118889 +
118890 + if (!pte_none(*pte)) {
118891 + pax_close_kernel();
118892 + WARN_ON(1);
118893 return -EBUSY;
118894 - if (WARN_ON(!page))
118895 + }
118896 + if (!page) {
118897 + pax_close_kernel();
118898 + WARN_ON(1);
118899 return -ENOMEM;
118900 + }
118901 set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
118902 (*nr)++;
118903 } while (pte++, addr += PAGE_SIZE, addr != end);
118904 + pax_close_kernel();
118905 return 0;
118906 }
118907
118908 @@ -146,7 +217,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
118909 pmd_t *pmd;
118910 unsigned long next;
118911
118912 - pmd = pmd_alloc(&init_mm, pud, addr);
118913 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
118914 if (!pmd)
118915 return -ENOMEM;
118916 do {
118917 @@ -163,7 +234,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
118918 pud_t *pud;
118919 unsigned long next;
118920
118921 - pud = pud_alloc(&init_mm, pgd, addr);
118922 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
118923 if (!pud)
118924 return -ENOMEM;
118925 do {
118926 @@ -223,6 +294,12 @@ int is_vmalloc_or_module_addr(const void *x)
118927 if (addr >= MODULES_VADDR && addr < MODULES_END)
118928 return 1;
118929 #endif
118930 +
118931 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118932 + if (x >= (const void *)MODULES_EXEC_VADDR && x < (const void *)MODULES_EXEC_END)
118933 + return 1;
118934 +#endif
118935 +
118936 return is_vmalloc_addr(x);
118937 }
118938
118939 @@ -243,8 +320,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
118940
118941 if (!pgd_none(*pgd)) {
118942 pud_t *pud = pud_offset(pgd, addr);
118943 +#ifdef CONFIG_X86
118944 + if (!pud_large(*pud))
118945 +#endif
118946 if (!pud_none(*pud)) {
118947 pmd_t *pmd = pmd_offset(pud, addr);
118948 +#ifdef CONFIG_X86
118949 + if (!pmd_large(*pmd))
118950 +#endif
118951 if (!pmd_none(*pmd)) {
118952 pte_t *ptep, pte;
118953
118954 @@ -346,7 +429,7 @@ static void purge_vmap_area_lazy(void);
118955 * Allocate a region of KVA of the specified size and alignment, within the
118956 * vstart and vend.
118957 */
118958 -static struct vmap_area *alloc_vmap_area(unsigned long size,
118959 +static struct vmap_area * __size_overflow(1) alloc_vmap_area(unsigned long size,
118960 unsigned long align,
118961 unsigned long vstart, unsigned long vend,
118962 int node, gfp_t gfp_mask)
118963 @@ -1202,13 +1285,27 @@ void __init vmalloc_init(void)
118964 for_each_possible_cpu(i) {
118965 struct vmap_block_queue *vbq;
118966 struct vfree_deferred *p;
118967 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118968 + struct stack_deferred *p2;
118969 +#endif
118970
118971 vbq = &per_cpu(vmap_block_queue, i);
118972 spin_lock_init(&vbq->lock);
118973 INIT_LIST_HEAD(&vbq->free);
118974 +
118975 p = &per_cpu(vfree_deferred, i);
118976 init_llist_head(&p->list);
118977 - INIT_WORK(&p->wq, free_work);
118978 + INIT_WORK(&p->wq, vfree_work);
118979 +
118980 + p = &per_cpu(vunmap_deferred, i);
118981 + init_llist_head(&p->list);
118982 + INIT_WORK(&p->wq, vunmap_work);
118983 +
118984 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118985 + p2 = &per_cpu(stack_deferred, i);
118986 + init_llist_head(&p2->list.list);
118987 + INIT_WORK(&p2->wq, unmap_work);
118988 +#endif
118989 }
118990
118991 /* Import existing vmlist entries. */
118992 @@ -1333,6 +1430,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
118993 struct vm_struct *area;
118994
118995 BUG_ON(in_interrupt());
118996 +
118997 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
118998 + if (flags & VM_KERNEXEC) {
118999 + if (start != VMALLOC_START || end != VMALLOC_END)
119000 + return NULL;
119001 + start = (unsigned long)MODULES_EXEC_VADDR;
119002 + end = (unsigned long)MODULES_EXEC_END;
119003 + }
119004 +#endif
119005 +
119006 if (flags & VM_IOREMAP)
119007 align = 1ul << clamp_t(int, fls_long(size),
119008 PAGE_SHIFT, IOREMAP_MAX_ORDER);
119009 @@ -1345,7 +1452,9 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
119010 if (unlikely(!area))
119011 return NULL;
119012
119013 +#ifndef CONFIG_GRKERNSEC_KSTACKOVERFLOW
119014 if (!(flags & VM_NO_GUARD))
119015 +#endif
119016 size += PAGE_SIZE;
119017
119018 va = alloc_vmap_area(size, align, start, end, node, gfp_mask);
119019 @@ -1531,13 +1640,36 @@ EXPORT_SYMBOL(vfree);
119020 */
119021 void vunmap(const void *addr)
119022 {
119023 - BUG_ON(in_interrupt());
119024 - might_sleep();
119025 - if (addr)
119026 + if (!addr)
119027 + return;
119028 + if (unlikely(in_interrupt())) {
119029 + struct vfree_deferred *p = this_cpu_ptr(&vunmap_deferred);
119030 + if (llist_add((struct llist_node *)addr, &p->list))
119031 + schedule_work(&p->wq);
119032 + } else {
119033 + might_sleep();
119034 __vunmap(addr, 0);
119035 + }
119036 }
119037 EXPORT_SYMBOL(vunmap);
119038
119039 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
119040 +void unmap_process_stacks(struct task_struct *task)
119041 +{
119042 + if (unlikely(in_interrupt())) {
119043 + struct stack_deferred *p = this_cpu_ptr(&stack_deferred);
119044 + struct stack_deferred_llist *list = task->stack;
119045 + list->stack = task->stack;
119046 + list->lowmem_stack = task->lowmem_stack;
119047 + if (llist_add((struct llist_node *)&list->list, &p->list.list))
119048 + schedule_work(&p->wq);
119049 + } else {
119050 + __vunmap(task->stack, 0);
119051 + free_kmem_pages((unsigned long)task->lowmem_stack, THREAD_SIZE_ORDER);
119052 + }
119053 +}
119054 +#endif
119055 +
119056 /**
119057 * vmap - map an array of pages into virtually contiguous space
119058 * @pages: array of page pointers
119059 @@ -1558,6 +1690,11 @@ void *vmap(struct page **pages, unsigned int count,
119060 if (count > totalram_pages)
119061 return NULL;
119062
119063 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
119064 + if (!(pgprot_val(prot) & _PAGE_NX))
119065 + flags |= VM_KERNEXEC;
119066 +#endif
119067 +
119068 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
119069 __builtin_return_address(0));
119070 if (!area)
119071 @@ -1662,6 +1799,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
119072 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
119073 goto fail;
119074
119075 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
119076 + if (!(pgprot_val(prot) & _PAGE_NX)) {
119077 + vm_flags |= VM_KERNEXEC;
119078 + start = VMALLOC_START;
119079 + end = VMALLOC_END;
119080 + }
119081 +#endif
119082 +
119083 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED |
119084 vm_flags, start, end, node, gfp_mask, caller);
119085 if (!area)
119086 @@ -1715,6 +1860,14 @@ static void *__vmalloc_node(unsigned long size, unsigned long align,
119087 gfp_mask, prot, 0, node, caller);
119088 }
119089
119090 +void *vmalloc_usercopy(unsigned long size)
119091 +{
119092 + return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
119093 + GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL,
119094 + VM_USERCOPY, NUMA_NO_NODE,
119095 + __builtin_return_address(0));
119096 +}
119097 +
119098 void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)
119099 {
119100 return __vmalloc_node(size, 1, gfp_mask, prot, NUMA_NO_NODE,
119101 @@ -1838,10 +1991,9 @@ EXPORT_SYMBOL(vzalloc_node);
119102 * For tight control over page level allocator and protection flags
119103 * use __vmalloc() instead.
119104 */
119105 -
119106 void *vmalloc_exec(unsigned long size)
119107 {
119108 - return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
119109 + return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL_EXEC,
119110 NUMA_NO_NODE, __builtin_return_address(0));
119111 }
119112
119113 @@ -2148,6 +2300,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
119114 {
119115 struct vm_struct *area;
119116
119117 + BUG_ON(vma->vm_mirror);
119118 +
119119 size = PAGE_ALIGN(size);
119120
119121 if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
119122 @@ -2630,7 +2784,11 @@ static int s_show(struct seq_file *m, void *p)
119123 v->addr, v->addr + v->size, v->size);
119124
119125 if (v->caller)
119126 +#ifdef CONFIG_GRKERNSEC_HIDESYM
119127 + seq_printf(m, " %pK", v->caller);
119128 +#else
119129 seq_printf(m, " %pS", v->caller);
119130 +#endif
119131
119132 if (v->nr_pages)
119133 seq_printf(m, " pages=%d", v->nr_pages);
119134 @@ -2688,52 +2846,5 @@ static int __init proc_vmalloc_init(void)
119135 }
119136 module_init(proc_vmalloc_init);
119137
119138 -void get_vmalloc_info(struct vmalloc_info *vmi)
119139 -{
119140 - struct vmap_area *va;
119141 - unsigned long free_area_size;
119142 - unsigned long prev_end;
119143 -
119144 - vmi->used = 0;
119145 - vmi->largest_chunk = 0;
119146 -
119147 - prev_end = VMALLOC_START;
119148 -
119149 - rcu_read_lock();
119150 -
119151 - if (list_empty(&vmap_area_list)) {
119152 - vmi->largest_chunk = VMALLOC_TOTAL;
119153 - goto out;
119154 - }
119155 -
119156 - list_for_each_entry_rcu(va, &vmap_area_list, list) {
119157 - unsigned long addr = va->va_start;
119158 -
119159 - /*
119160 - * Some archs keep another range for modules in vmalloc space
119161 - */
119162 - if (addr < VMALLOC_START)
119163 - continue;
119164 - if (addr >= VMALLOC_END)
119165 - break;
119166 -
119167 - if (va->flags & (VM_LAZY_FREE | VM_LAZY_FREEING))
119168 - continue;
119169 -
119170 - vmi->used += (va->va_end - va->va_start);
119171 -
119172 - free_area_size = addr - prev_end;
119173 - if (vmi->largest_chunk < free_area_size)
119174 - vmi->largest_chunk = free_area_size;
119175 -
119176 - prev_end = va->va_end;
119177 - }
119178 -
119179 - if (VMALLOC_END - prev_end > vmi->largest_chunk)
119180 - vmi->largest_chunk = VMALLOC_END - prev_end;
119181 -
119182 -out:
119183 - rcu_read_unlock();
119184 -}
119185 #endif
119186
119187 diff --git a/mm/vmstat.c b/mm/vmstat.c
119188 index fbf1448..3e614e2 100644
119189 --- a/mm/vmstat.c
119190 +++ b/mm/vmstat.c
119191 @@ -27,6 +27,7 @@
119192 #include <linux/mm_inline.h>
119193 #include <linux/page_ext.h>
119194 #include <linux/page_owner.h>
119195 +#include <linux/grsecurity.h>
119196
119197 #include "internal.h"
119198
119199 @@ -86,7 +87,7 @@ void vm_events_fold_cpu(int cpu)
119200 *
119201 * vm_stat contains the global counters
119202 */
119203 -atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
119204 +atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
119205 EXPORT_SYMBOL(vm_stat);
119206
119207 #ifdef CONFIG_SMP
119208 @@ -438,7 +439,7 @@ static int fold_diff(int *diff)
119209
119210 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
119211 if (diff[i]) {
119212 - atomic_long_add(diff[i], &vm_stat[i]);
119213 + atomic_long_add_unchecked(diff[i], &vm_stat[i]);
119214 changes++;
119215 }
119216 return changes;
119217 @@ -476,7 +477,7 @@ static int refresh_cpu_vm_stats(void)
119218 v = this_cpu_xchg(p->vm_stat_diff[i], 0);
119219 if (v) {
119220
119221 - atomic_long_add(v, &zone->vm_stat[i]);
119222 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
119223 global_diff[i] += v;
119224 #ifdef CONFIG_NUMA
119225 /* 3 seconds idle till flush */
119226 @@ -540,7 +541,7 @@ void cpu_vm_stats_fold(int cpu)
119227
119228 v = p->vm_stat_diff[i];
119229 p->vm_stat_diff[i] = 0;
119230 - atomic_long_add(v, &zone->vm_stat[i]);
119231 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
119232 global_diff[i] += v;
119233 }
119234 }
119235 @@ -560,8 +561,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset)
119236 if (pset->vm_stat_diff[i]) {
119237 int v = pset->vm_stat_diff[i];
119238 pset->vm_stat_diff[i] = 0;
119239 - atomic_long_add(v, &zone->vm_stat[i]);
119240 - atomic_long_add(v, &vm_stat[i]);
119241 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
119242 + atomic_long_add_unchecked(v, &vm_stat[i]);
119243 }
119244 }
119245 #endif
119246 @@ -1293,10 +1294,22 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
119247 stat_items_size += sizeof(struct vm_event_state);
119248 #endif
119249
119250 - v = kmalloc(stat_items_size, GFP_KERNEL);
119251 + v = kzalloc(stat_items_size, GFP_KERNEL);
119252 m->private = v;
119253 if (!v)
119254 return ERR_PTR(-ENOMEM);
119255 +
119256 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
119257 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
119258 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
119259 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
119260 + && !in_group_p(grsec_proc_gid)
119261 +#endif
119262 + )
119263 + return (unsigned long *)m->private + *pos;
119264 +#endif
119265 +#endif
119266 +
119267 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
119268 v[i] = global_page_state(i);
119269 v += NR_VM_ZONE_STAT_ITEMS;
119270 @@ -1529,10 +1542,16 @@ static int __init setup_vmstat(void)
119271 cpu_notifier_register_done();
119272 #endif
119273 #ifdef CONFIG_PROC_FS
119274 - proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
119275 - proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
119276 - proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
119277 - proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
119278 + {
119279 + mode_t gr_mode = S_IRUGO;
119280 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
119281 + gr_mode = S_IRUSR;
119282 +#endif
119283 + proc_create("buddyinfo", gr_mode, NULL, &fragmentation_file_operations);
119284 + proc_create("pagetypeinfo", gr_mode, NULL, &pagetypeinfo_file_ops);
119285 + proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
119286 + proc_create("zoneinfo", gr_mode, NULL, &proc_zoneinfo_file_operations);
119287 + }
119288 #endif
119289 return 0;
119290 }
119291 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
119292 index d2cd9de..501c186 100644
119293 --- a/net/8021q/vlan.c
119294 +++ b/net/8021q/vlan.c
119295 @@ -491,7 +491,7 @@ out:
119296 return NOTIFY_DONE;
119297 }
119298
119299 -static struct notifier_block vlan_notifier_block __read_mostly = {
119300 +static struct notifier_block vlan_notifier_block = {
119301 .notifier_call = vlan_device_event,
119302 };
119303
119304 @@ -566,8 +566,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
119305 err = -EPERM;
119306 if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
119307 break;
119308 - if ((args.u.name_type >= 0) &&
119309 - (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) {
119310 + if (args.u.name_type < VLAN_NAME_TYPE_HIGHEST) {
119311 struct vlan_net *vn;
119312
119313 vn = net_generic(net, vlan_net_id);
119314 diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c
119315 index c92b52f..006c052 100644
119316 --- a/net/8021q/vlan_netlink.c
119317 +++ b/net/8021q/vlan_netlink.c
119318 @@ -245,7 +245,7 @@ static struct net *vlan_get_link_net(const struct net_device *dev)
119319 return dev_net(real_dev);
119320 }
119321
119322 -struct rtnl_link_ops vlan_link_ops __read_mostly = {
119323 +struct rtnl_link_ops vlan_link_ops = {
119324 .kind = "vlan",
119325 .maxtype = IFLA_VLAN_MAX,
119326 .policy = vlan_policy,
119327 diff --git a/net/9p/mod.c b/net/9p/mod.c
119328 index 6ab36ae..6f1841b 100644
119329 --- a/net/9p/mod.c
119330 +++ b/net/9p/mod.c
119331 @@ -84,7 +84,7 @@ static LIST_HEAD(v9fs_trans_list);
119332 void v9fs_register_trans(struct p9_trans_module *m)
119333 {
119334 spin_lock(&v9fs_trans_lock);
119335 - list_add_tail(&m->list, &v9fs_trans_list);
119336 + pax_list_add_tail((struct list_head *)&m->list, &v9fs_trans_list);
119337 spin_unlock(&v9fs_trans_lock);
119338 }
119339 EXPORT_SYMBOL(v9fs_register_trans);
119340 @@ -97,7 +97,7 @@ EXPORT_SYMBOL(v9fs_register_trans);
119341 void v9fs_unregister_trans(struct p9_trans_module *m)
119342 {
119343 spin_lock(&v9fs_trans_lock);
119344 - list_del_init(&m->list);
119345 + pax_list_del_init((struct list_head *)&m->list);
119346 spin_unlock(&v9fs_trans_lock);
119347 }
119348 EXPORT_SYMBOL(v9fs_unregister_trans);
119349 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
119350 index bced8c0..ef253b7 100644
119351 --- a/net/9p/trans_fd.c
119352 +++ b/net/9p/trans_fd.c
119353 @@ -428,7 +428,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
119354 oldfs = get_fs();
119355 set_fs(get_ds());
119356 /* The cast to a user pointer is valid due to the set_fs() */
119357 - ret = vfs_write(ts->wr, (__force void __user *)v, len, &ts->wr->f_pos);
119358 + ret = vfs_write(ts->wr, (void __force_user *)v, len, &ts->wr->f_pos);
119359 set_fs(oldfs);
119360
119361 if (ret <= 0 && ret != -ERESTARTSYS && ret != -EAGAIN)
119362 diff --git a/net/appletalk/atalk_proc.c b/net/appletalk/atalk_proc.c
119363 index af46bc4..f9adfcd 100644
119364 --- a/net/appletalk/atalk_proc.c
119365 +++ b/net/appletalk/atalk_proc.c
119366 @@ -256,7 +256,7 @@ int __init atalk_proc_init(void)
119367 struct proc_dir_entry *p;
119368 int rc = -ENOMEM;
119369
119370 - atalk_proc_dir = proc_mkdir("atalk", init_net.proc_net);
119371 + atalk_proc_dir = proc_mkdir_restrict("atalk", init_net.proc_net);
119372 if (!atalk_proc_dir)
119373 goto out;
119374
119375 diff --git a/net/atm/atm_misc.c b/net/atm/atm_misc.c
119376 index 876fbe8..8bbea9f 100644
119377 --- a/net/atm/atm_misc.c
119378 +++ b/net/atm/atm_misc.c
119379 @@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int truesize)
119380 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
119381 return 1;
119382 atm_return(vcc, truesize);
119383 - atomic_inc(&vcc->stats->rx_drop);
119384 + atomic_inc_unchecked(&vcc->stats->rx_drop);
119385 return 0;
119386 }
119387 EXPORT_SYMBOL(atm_charge);
119388 @@ -39,7 +39,7 @@ struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc, int pdu_size,
119389 }
119390 }
119391 atm_return(vcc, guess);
119392 - atomic_inc(&vcc->stats->rx_drop);
119393 + atomic_inc_unchecked(&vcc->stats->rx_drop);
119394 return NULL;
119395 }
119396 EXPORT_SYMBOL(atm_alloc_charge);
119397 @@ -86,7 +86,7 @@ EXPORT_SYMBOL(atm_pcr_goal);
119398
119399 void sonet_copy_stats(struct k_sonet_stats *from, struct sonet_stats *to)
119400 {
119401 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
119402 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
119403 __SONET_ITEMS
119404 #undef __HANDLE_ITEM
119405 }
119406 @@ -94,7 +94,7 @@ EXPORT_SYMBOL(sonet_copy_stats);
119407
119408 void sonet_subtract_stats(struct k_sonet_stats *from, struct sonet_stats *to)
119409 {
119410 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
119411 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i,&from->i)
119412 __SONET_ITEMS
119413 #undef __HANDLE_ITEM
119414 }
119415 diff --git a/net/atm/lec.c b/net/atm/lec.c
119416 index cd3b379..977a3c9 100644
119417 --- a/net/atm/lec.c
119418 +++ b/net/atm/lec.c
119419 @@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
119420 }
119421
119422 static struct lane2_ops lane2_ops = {
119423 - lane2_resolve, /* resolve, spec 3.1.3 */
119424 - lane2_associate_req, /* associate_req, spec 3.1.4 */
119425 - NULL /* associate indicator, spec 3.1.5 */
119426 + .resolve = lane2_resolve,
119427 + .associate_req = lane2_associate_req,
119428 + .associate_indicator = NULL
119429 };
119430
119431 static unsigned char bus_mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
119432 diff --git a/net/atm/lec.h b/net/atm/lec.h
119433 index 4149db1..f2ab682 100644
119434 --- a/net/atm/lec.h
119435 +++ b/net/atm/lec.h
119436 @@ -48,7 +48,7 @@ struct lane2_ops {
119437 const u8 *tlvs, u32 sizeoftlvs);
119438 void (*associate_indicator) (struct net_device *dev, const u8 *mac_addr,
119439 const u8 *tlvs, u32 sizeoftlvs);
119440 -};
119441 +} __no_const;
119442
119443 /*
119444 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
119445 diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
119446 index d1b2d9a..d549f7f 100644
119447 --- a/net/atm/mpoa_caches.c
119448 +++ b/net/atm/mpoa_caches.c
119449 @@ -535,30 +535,30 @@ static void eg_destroy_cache(struct mpoa_client *mpc)
119450
119451
119452 static struct in_cache_ops ingress_ops = {
119453 - in_cache_add_entry, /* add_entry */
119454 - in_cache_get, /* get */
119455 - in_cache_get_with_mask, /* get_with_mask */
119456 - in_cache_get_by_vcc, /* get_by_vcc */
119457 - in_cache_put, /* put */
119458 - in_cache_remove_entry, /* remove_entry */
119459 - cache_hit, /* cache_hit */
119460 - clear_count_and_expired, /* clear_count */
119461 - check_resolving_entries, /* check_resolving */
119462 - refresh_entries, /* refresh */
119463 - in_destroy_cache /* destroy_cache */
119464 + .add_entry = in_cache_add_entry,
119465 + .get = in_cache_get,
119466 + .get_with_mask = in_cache_get_with_mask,
119467 + .get_by_vcc = in_cache_get_by_vcc,
119468 + .put = in_cache_put,
119469 + .remove_entry = in_cache_remove_entry,
119470 + .cache_hit = cache_hit,
119471 + .clear_count = clear_count_and_expired,
119472 + .check_resolving = check_resolving_entries,
119473 + .refresh = refresh_entries,
119474 + .destroy_cache = in_destroy_cache
119475 };
119476
119477 static struct eg_cache_ops egress_ops = {
119478 - eg_cache_add_entry, /* add_entry */
119479 - eg_cache_get_by_cache_id, /* get_by_cache_id */
119480 - eg_cache_get_by_tag, /* get_by_tag */
119481 - eg_cache_get_by_vcc, /* get_by_vcc */
119482 - eg_cache_get_by_src_ip, /* get_by_src_ip */
119483 - eg_cache_put, /* put */
119484 - eg_cache_remove_entry, /* remove_entry */
119485 - update_eg_cache_entry, /* update */
119486 - clear_expired, /* clear_expired */
119487 - eg_destroy_cache /* destroy_cache */
119488 + .add_entry = eg_cache_add_entry,
119489 + .get_by_cache_id = eg_cache_get_by_cache_id,
119490 + .get_by_tag = eg_cache_get_by_tag,
119491 + .get_by_vcc = eg_cache_get_by_vcc,
119492 + .get_by_src_ip = eg_cache_get_by_src_ip,
119493 + .put = eg_cache_put,
119494 + .remove_entry = eg_cache_remove_entry,
119495 + .update = update_eg_cache_entry,
119496 + .clear_expired = clear_expired,
119497 + .destroy_cache = eg_destroy_cache
119498 };
119499
119500
119501 diff --git a/net/atm/proc.c b/net/atm/proc.c
119502 index bbb6461..cf04016 100644
119503 --- a/net/atm/proc.c
119504 +++ b/net/atm/proc.c
119505 @@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal,
119506 const struct k_atm_aal_stats *stats)
119507 {
119508 seq_printf(seq, "%s ( %d %d %d %d %d )", aal,
119509 - atomic_read(&stats->tx), atomic_read(&stats->tx_err),
119510 - atomic_read(&stats->rx), atomic_read(&stats->rx_err),
119511 - atomic_read(&stats->rx_drop));
119512 + atomic_read_unchecked(&stats->tx),atomic_read_unchecked(&stats->tx_err),
119513 + atomic_read_unchecked(&stats->rx),atomic_read_unchecked(&stats->rx_err),
119514 + atomic_read_unchecked(&stats->rx_drop));
119515 }
119516
119517 static void atm_dev_info(struct seq_file *seq, const struct atm_dev *dev)
119518 diff --git a/net/atm/resources.c b/net/atm/resources.c
119519 index 0447d5d..3cf4728 100644
119520 --- a/net/atm/resources.c
119521 +++ b/net/atm/resources.c
119522 @@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
119523 static void copy_aal_stats(struct k_atm_aal_stats *from,
119524 struct atm_aal_stats *to)
119525 {
119526 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
119527 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
119528 __AAL_STAT_ITEMS
119529 #undef __HANDLE_ITEM
119530 }
119531 @@ -168,7 +168,7 @@ static void copy_aal_stats(struct k_atm_aal_stats *from,
119532 static void subtract_aal_stats(struct k_atm_aal_stats *from,
119533 struct atm_aal_stats *to)
119534 {
119535 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
119536 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i, &from->i)
119537 __AAL_STAT_ITEMS
119538 #undef __HANDLE_ITEM
119539 }
119540 diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
119541 index 919a5ce..cc6b444 100644
119542 --- a/net/ax25/sysctl_net_ax25.c
119543 +++ b/net/ax25/sysctl_net_ax25.c
119544 @@ -152,7 +152,7 @@ int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
119545 {
119546 char path[sizeof("net/ax25/") + IFNAMSIZ];
119547 int k;
119548 - struct ctl_table *table;
119549 + ctl_table_no_const *table;
119550
119551 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
119552 if (!table)
119553 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
119554 index 912d9c3..2494d1e 100644
119555 --- a/net/batman-adv/bat_iv_ogm.c
119556 +++ b/net/batman-adv/bat_iv_ogm.c
119557 @@ -316,7 +316,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
119558
119559 /* randomize initial seqno to avoid collision */
119560 get_random_bytes(&random_seqno, sizeof(random_seqno));
119561 - atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno);
119562 + atomic_set_unchecked(&hard_iface->bat_iv.ogm_seqno, random_seqno);
119563
119564 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
119565 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
119566 @@ -919,9 +919,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
119567 batadv_ogm_packet->tvlv_len = htons(tvlv_len);
119568
119569 /* change sequence number to network order */
119570 - seqno = (u32)atomic_read(&hard_iface->bat_iv.ogm_seqno);
119571 + seqno = (u32)atomic_read_unchecked(&hard_iface->bat_iv.ogm_seqno);
119572 batadv_ogm_packet->seqno = htonl(seqno);
119573 - atomic_inc(&hard_iface->bat_iv.ogm_seqno);
119574 + atomic_inc_unchecked(&hard_iface->bat_iv.ogm_seqno);
119575
119576 batadv_iv_ogm_slide_own_bcast_window(hard_iface);
119577
119578 @@ -1600,7 +1600,7 @@ static void batadv_iv_ogm_process(const struct sk_buff *skb, int ogm_offset,
119579 return;
119580
119581 /* could be changed by schedule_own_packet() */
119582 - if_incoming_seqno = atomic_read(&if_incoming->bat_iv.ogm_seqno);
119583 + if_incoming_seqno = atomic_read_unchecked(&if_incoming->bat_iv.ogm_seqno);
119584
119585 if (ogm_packet->flags & BATADV_DIRECTLINK)
119586 has_directlink_flag = true;
119587 diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
119588 index 700c96c..637df49 100644
119589 --- a/net/batman-adv/fragmentation.c
119590 +++ b/net/batman-adv/fragmentation.c
119591 @@ -468,7 +468,7 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
119592 frag_header.packet_type = BATADV_UNICAST_FRAG;
119593 frag_header.version = BATADV_COMPAT_VERSION;
119594 frag_header.ttl = BATADV_TTL;
119595 - frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
119596 + frag_header.seqno = htons(atomic_inc_return_unchecked(&bat_priv->frag_seqno));
119597 frag_header.reserved = 0;
119598 frag_header.no = 0;
119599 frag_header.total_size = htons(skb->len);
119600 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
119601 index ac4d08d..4579abb 100644
119602 --- a/net/batman-adv/soft-interface.c
119603 +++ b/net/batman-adv/soft-interface.c
119604 @@ -330,7 +330,7 @@ send:
119605 primary_if->net_dev->dev_addr);
119606
119607 /* set broadcast sequence number */
119608 - seqno = atomic_inc_return(&bat_priv->bcast_seqno);
119609 + seqno = atomic_inc_return_unchecked(&bat_priv->bcast_seqno);
119610 bcast_packet->seqno = htonl(seqno);
119611
119612 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
119613 @@ -798,7 +798,7 @@ static int batadv_softif_init_late(struct net_device *dev)
119614 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
119615
119616 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
119617 - atomic_set(&bat_priv->bcast_seqno, 1);
119618 + atomic_set_unchecked(&bat_priv->bcast_seqno, 1);
119619 atomic_set(&bat_priv->tt.vn, 0);
119620 atomic_set(&bat_priv->tt.local_changes, 0);
119621 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
119622 @@ -812,7 +812,7 @@ static int batadv_softif_init_late(struct net_device *dev)
119623
119624 /* randomize initial seqno to avoid collision */
119625 get_random_bytes(&random_seqno, sizeof(random_seqno));
119626 - atomic_set(&bat_priv->frag_seqno, random_seqno);
119627 + atomic_set_unchecked(&bat_priv->frag_seqno, random_seqno);
119628
119629 bat_priv->primary_if = NULL;
119630 bat_priv->num_ifaces = 0;
119631 @@ -1018,7 +1018,7 @@ int batadv_softif_is_valid(const struct net_device *net_dev)
119632 return 0;
119633 }
119634
119635 -struct rtnl_link_ops batadv_link_ops __read_mostly = {
119636 +struct rtnl_link_ops batadv_link_ops = {
119637 .kind = "batadv",
119638 .priv_size = sizeof(struct batadv_priv),
119639 .setup = batadv_softif_init_early,
119640 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
119641 index d260efd..228dbbc 100644
119642 --- a/net/batman-adv/types.h
119643 +++ b/net/batman-adv/types.h
119644 @@ -81,7 +81,7 @@ enum batadv_dhcp_recipient {
119645 struct batadv_hard_iface_bat_iv {
119646 unsigned char *ogm_buff;
119647 int ogm_buff_len;
119648 - atomic_t ogm_seqno;
119649 + atomic_unchecked_t ogm_seqno;
119650 };
119651
119652 /**
119653 @@ -784,7 +784,7 @@ struct batadv_priv {
119654 atomic_t bonding;
119655 atomic_t fragmentation;
119656 atomic_t packet_size_max;
119657 - atomic_t frag_seqno;
119658 + atomic_unchecked_t frag_seqno;
119659 #ifdef CONFIG_BATMAN_ADV_BLA
119660 atomic_t bridge_loop_avoidance;
119661 #endif
119662 @@ -803,7 +803,7 @@ struct batadv_priv {
119663 #endif
119664 u32 isolation_mark;
119665 u32 isolation_mark_mask;
119666 - atomic_t bcast_seqno;
119667 + atomic_unchecked_t bcast_seqno;
119668 atomic_t bcast_queue_left;
119669 atomic_t batman_queue_left;
119670 char num_ifaces;
119671 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
119672 index f2d30d1..0573933 100644
119673 --- a/net/bluetooth/hci_sock.c
119674 +++ b/net/bluetooth/hci_sock.c
119675 @@ -1253,7 +1253,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
119676 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
119677 }
119678
119679 - len = min_t(unsigned int, len, sizeof(uf));
119680 + len = min((size_t)len, sizeof(uf));
119681 if (copy_from_user(&uf, optval, len)) {
119682 err = -EFAULT;
119683 break;
119684 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
119685 index 7c65ee2..b4dd40a 100644
119686 --- a/net/bluetooth/l2cap_core.c
119687 +++ b/net/bluetooth/l2cap_core.c
119688 @@ -3537,8 +3537,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
119689 break;
119690
119691 case L2CAP_CONF_RFC:
119692 - if (olen == sizeof(rfc))
119693 - memcpy(&rfc, (void *)val, olen);
119694 + if (olen != sizeof(rfc))
119695 + break;
119696 +
119697 + memcpy(&rfc, (void *)val, olen);
119698
119699 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
119700 rfc.mode != chan->mode)
119701 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
119702 index 586b3d5..0544d2a 100644
119703 --- a/net/bluetooth/l2cap_sock.c
119704 +++ b/net/bluetooth/l2cap_sock.c
119705 @@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
119706 struct sock *sk = sock->sk;
119707 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
119708 struct l2cap_options opts;
119709 - int len, err = 0;
119710 + int err = 0;
119711 + size_t len = optlen;
119712 u32 opt;
119713
119714 BT_DBG("sk %p", sk);
119715 @@ -660,7 +661,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
119716 opts.max_tx = chan->max_tx;
119717 opts.txwin_size = chan->tx_win;
119718
119719 - len = min_t(unsigned int, sizeof(opts), optlen);
119720 + len = min(sizeof(opts), len);
119721 if (copy_from_user((char *) &opts, optval, len)) {
119722 err = -EFAULT;
119723 break;
119724 @@ -747,7 +748,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119725 struct bt_security sec;
119726 struct bt_power pwr;
119727 struct l2cap_conn *conn;
119728 - int len, err = 0;
119729 + int err = 0;
119730 + size_t len = optlen;
119731 u32 opt;
119732
119733 BT_DBG("sk %p", sk);
119734 @@ -771,7 +773,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119735
119736 sec.level = BT_SECURITY_LOW;
119737
119738 - len = min_t(unsigned int, sizeof(sec), optlen);
119739 + len = min(sizeof(sec), len);
119740 if (copy_from_user((char *) &sec, optval, len)) {
119741 err = -EFAULT;
119742 break;
119743 @@ -867,7 +869,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119744
119745 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
119746
119747 - len = min_t(unsigned int, sizeof(pwr), optlen);
119748 + len = min(sizeof(pwr), len);
119749 if (copy_from_user((char *) &pwr, optval, len)) {
119750 err = -EFAULT;
119751 break;
119752 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
119753 index 7511df7..a670df3 100644
119754 --- a/net/bluetooth/rfcomm/sock.c
119755 +++ b/net/bluetooth/rfcomm/sock.c
119756 @@ -690,7 +690,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
119757 struct sock *sk = sock->sk;
119758 struct bt_security sec;
119759 int err = 0;
119760 - size_t len;
119761 + size_t len = optlen;
119762 u32 opt;
119763
119764 BT_DBG("sk %p", sk);
119765 @@ -712,7 +712,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
119766
119767 sec.level = BT_SECURITY_LOW;
119768
119769 - len = min_t(unsigned int, sizeof(sec), optlen);
119770 + len = min(sizeof(sec), len);
119771 if (copy_from_user((char *) &sec, optval, len)) {
119772 err = -EFAULT;
119773 break;
119774 diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
119775 index 8e385a0..a5bdd8e 100644
119776 --- a/net/bluetooth/rfcomm/tty.c
119777 +++ b/net/bluetooth/rfcomm/tty.c
119778 @@ -752,7 +752,7 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
119779 BT_DBG("tty %p id %d", tty, tty->index);
119780
119781 BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
119782 - dev->channel, dev->port.count);
119783 + dev->channel, atomic_read(&dev->port.count));
119784
119785 err = tty_port_open(&dev->port, tty, filp);
119786 if (err)
119787 @@ -775,7 +775,7 @@ static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp)
119788 struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data;
119789
119790 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
119791 - dev->port.count);
119792 + atomic_read(&dev->port.count));
119793
119794 tty_port_close(&dev->port, tty, filp);
119795 }
119796 diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
119797 index f315c8d..15cb6c55 100644
119798 --- a/net/bluetooth/sco.c
119799 +++ b/net/bluetooth/sco.c
119800 @@ -519,6 +519,9 @@ static int sco_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_le
119801 if (!addr || addr->sa_family != AF_BLUETOOTH)
119802 return -EINVAL;
119803
119804 + if (addr_len < sizeof(struct sockaddr_sco))
119805 + return -EINVAL;
119806 +
119807 lock_sock(sk);
119808
119809 if (sk->sk_state != BT_OPEN) {
119810 diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
119811 index ea748c9..79056c3 100644
119812 --- a/net/bridge/br_netlink.c
119813 +++ b/net/bridge/br_netlink.c
119814 @@ -878,7 +878,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
119815 .get_link_af_size = br_get_link_af_size,
119816 };
119817
119818 -struct rtnl_link_ops br_link_ops __read_mostly = {
119819 +struct rtnl_link_ops br_link_ops = {
119820 .kind = "bridge",
119821 .priv_size = sizeof(struct net_bridge),
119822 .setup = br_dev_setup,
119823 diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
119824 index 4ca449a..49d8d28 100644
119825 --- a/net/bridge/br_stp_if.c
119826 +++ b/net/bridge/br_stp_if.c
119827 @@ -130,7 +130,10 @@ static void br_stp_start(struct net_bridge *br)
119828 char *envp[] = { NULL };
119829 struct net_bridge_port *p;
119830
119831 - r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
119832 + if (net_eq(dev_net(br->dev), &init_net))
119833 + r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
119834 + else
119835 + r = -ENOENT;
119836
119837 spin_lock_bh(&br->lock);
119838
119839 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
119840 index 48b6b01..cf544f3 100644
119841 --- a/net/bridge/netfilter/ebtables.c
119842 +++ b/net/bridge/netfilter/ebtables.c
119843 @@ -1533,7 +1533,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
119844 tmp.valid_hooks = t->table->valid_hooks;
119845 }
119846 mutex_unlock(&ebt_mutex);
119847 - if (copy_to_user(user, &tmp, *len) != 0) {
119848 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119849 BUGPRINT("c2u Didn't work\n");
119850 ret = -EFAULT;
119851 break;
119852 @@ -2339,7 +2339,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
119853 goto out;
119854 tmp.valid_hooks = t->valid_hooks;
119855
119856 - if (copy_to_user(user, &tmp, *len) != 0) {
119857 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119858 ret = -EFAULT;
119859 break;
119860 }
119861 @@ -2350,7 +2350,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
119862 tmp.entries_size = t->table->entries_size;
119863 tmp.valid_hooks = t->table->valid_hooks;
119864
119865 - if (copy_to_user(user, &tmp, *len) != 0) {
119866 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119867 ret = -EFAULT;
119868 break;
119869 }
119870 diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
119871 index f5afda1..dcf770a 100644
119872 --- a/net/caif/cfctrl.c
119873 +++ b/net/caif/cfctrl.c
119874 @@ -10,6 +10,7 @@
119875 #include <linux/spinlock.h>
119876 #include <linux/slab.h>
119877 #include <linux/pkt_sched.h>
119878 +#include <linux/sched.h>
119879 #include <net/caif/caif_layer.h>
119880 #include <net/caif/cfpkt.h>
119881 #include <net/caif/cfctrl.h>
119882 @@ -43,8 +44,8 @@ struct cflayer *cfctrl_create(void)
119883 memset(&dev_info, 0, sizeof(dev_info));
119884 dev_info.id = 0xff;
119885 cfsrvl_init(&this->serv, 0, &dev_info, false);
119886 - atomic_set(&this->req_seq_no, 1);
119887 - atomic_set(&this->rsp_seq_no, 1);
119888 + atomic_set_unchecked(&this->req_seq_no, 1);
119889 + atomic_set_unchecked(&this->rsp_seq_no, 1);
119890 this->serv.layer.receive = cfctrl_recv;
119891 sprintf(this->serv.layer.name, "ctrl");
119892 this->serv.layer.ctrlcmd = cfctrl_ctrlcmd;
119893 @@ -130,8 +131,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
119894 struct cfctrl_request_info *req)
119895 {
119896 spin_lock_bh(&ctrl->info_list_lock);
119897 - atomic_inc(&ctrl->req_seq_no);
119898 - req->sequence_no = atomic_read(&ctrl->req_seq_no);
119899 + atomic_inc_unchecked(&ctrl->req_seq_no);
119900 + req->sequence_no = atomic_read_unchecked(&ctrl->req_seq_no);
119901 list_add_tail(&req->list, &ctrl->list);
119902 spin_unlock_bh(&ctrl->info_list_lock);
119903 }
119904 @@ -149,7 +150,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
119905 if (p != first)
119906 pr_warn("Requests are not received in order\n");
119907
119908 - atomic_set(&ctrl->rsp_seq_no,
119909 + atomic_set_unchecked(&ctrl->rsp_seq_no,
119910 p->sequence_no);
119911 list_del(&p->list);
119912 goto out;
119913 diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c
119914 index 67a4a36..8d28068 100644
119915 --- a/net/caif/chnl_net.c
119916 +++ b/net/caif/chnl_net.c
119917 @@ -515,7 +515,7 @@ static const struct nla_policy ipcaif_policy[IFLA_CAIF_MAX + 1] = {
119918 };
119919
119920
119921 -static struct rtnl_link_ops ipcaif_link_ops __read_mostly = {
119922 +static struct rtnl_link_ops ipcaif_link_ops = {
119923 .kind = "caif",
119924 .priv_size = sizeof(struct chnl_net),
119925 .setup = ipcaif_net_setup,
119926 diff --git a/net/can/af_can.c b/net/can/af_can.c
119927 index 166d436..2920816 100644
119928 --- a/net/can/af_can.c
119929 +++ b/net/can/af_can.c
119930 @@ -890,7 +890,7 @@ static const struct net_proto_family can_family_ops = {
119931 };
119932
119933 /* notifier block for netdevice event */
119934 -static struct notifier_block can_netdev_notifier __read_mostly = {
119935 +static struct notifier_block can_netdev_notifier = {
119936 .notifier_call = can_notifier,
119937 };
119938
119939 diff --git a/net/can/bcm.c b/net/can/bcm.c
119940 index a1ba687..aafaec5 100644
119941 --- a/net/can/bcm.c
119942 +++ b/net/can/bcm.c
119943 @@ -1620,7 +1620,7 @@ static int __init bcm_module_init(void)
119944 }
119945
119946 /* create /proc/net/can-bcm directory */
119947 - proc_dir = proc_mkdir("can-bcm", init_net.proc_net);
119948 + proc_dir = proc_mkdir_restrict("can-bcm", init_net.proc_net);
119949 return 0;
119950 }
119951
119952 diff --git a/net/can/gw.c b/net/can/gw.c
119953 index 4551687..4e82e9b 100644
119954 --- a/net/can/gw.c
119955 +++ b/net/can/gw.c
119956 @@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops,
119957 "default: " __stringify(CGW_DEFAULT_HOPS) ")");
119958
119959 static HLIST_HEAD(cgw_list);
119960 -static struct notifier_block notifier;
119961
119962 static struct kmem_cache *cgw_cache __read_mostly;
119963
119964 @@ -992,6 +991,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
119965 return err;
119966 }
119967
119968 +static struct notifier_block notifier = {
119969 + .notifier_call = cgw_notifier
119970 +};
119971 +
119972 static __init int cgw_module_init(void)
119973 {
119974 /* sanitize given module parameter */
119975 @@ -1007,7 +1010,6 @@ static __init int cgw_module_init(void)
119976 return -ENOMEM;
119977
119978 /* set notifier */
119979 - notifier.notifier_call = cgw_notifier;
119980 register_netdevice_notifier(&notifier);
119981
119982 if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, NULL)) {
119983 diff --git a/net/can/proc.c b/net/can/proc.c
119984 index 1a19b98..df2b4ec 100644
119985 --- a/net/can/proc.c
119986 +++ b/net/can/proc.c
119987 @@ -514,7 +514,7 @@ static void can_remove_proc_readentry(const char *name)
119988 void can_init_proc(void)
119989 {
119990 /* create /proc/net/can directory */
119991 - can_dir = proc_mkdir("can", init_net.proc_net);
119992 + can_dir = proc_mkdir_restrict("can", init_net.proc_net);
119993
119994 if (!can_dir) {
119995 printk(KERN_INFO "can: failed to create /proc/net/can . "
119996 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
119997 index b9b0e3b..adb8b18 100644
119998 --- a/net/ceph/messenger.c
119999 +++ b/net/ceph/messenger.c
120000 @@ -190,7 +190,7 @@ static void con_fault(struct ceph_connection *con);
120001 #define MAX_ADDR_STR_LEN 64 /* 54 is enough */
120002
120003 static char addr_str[ADDR_STR_COUNT][MAX_ADDR_STR_LEN];
120004 -static atomic_t addr_str_seq = ATOMIC_INIT(0);
120005 +static atomic_unchecked_t addr_str_seq = ATOMIC_INIT(0);
120006
120007 static struct page *zero_page; /* used in certain error cases */
120008
120009 @@ -201,7 +201,7 @@ const char *ceph_pr_addr(const struct sockaddr_storage *ss)
120010 struct sockaddr_in *in4 = (struct sockaddr_in *) ss;
120011 struct sockaddr_in6 *in6 = (struct sockaddr_in6 *) ss;
120012
120013 - i = atomic_inc_return(&addr_str_seq) & ADDR_STR_COUNT_MASK;
120014 + i = atomic_inc_return_unchecked(&addr_str_seq) & ADDR_STR_COUNT_MASK;
120015 s = addr_str[i];
120016
120017 switch (ss->ss_family) {
120018 diff --git a/net/compat.c b/net/compat.c
120019 index 5cfd26a..3c50cb0 100644
120020 --- a/net/compat.c
120021 +++ b/net/compat.c
120022 @@ -58,7 +58,7 @@ int get_compat_msghdr(struct msghdr *kmsg,
120023
120024 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
120025 kmsg->msg_namelen = sizeof(struct sockaddr_storage);
120026 - kmsg->msg_control = compat_ptr(tmp3);
120027 + kmsg->msg_control = (void __force_kernel *)compat_ptr(tmp3);
120028
120029 if (save_addr)
120030 *save_addr = compat_ptr(uaddr);
120031 @@ -98,20 +98,20 @@ int get_compat_msghdr(struct msghdr *kmsg,
120032
120033 #define CMSG_COMPAT_FIRSTHDR(msg) \
120034 (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
120035 - (struct compat_cmsghdr __user *)((msg)->msg_control) : \
120036 + (struct compat_cmsghdr __force_user *)((msg)->msg_control) : \
120037 (struct compat_cmsghdr __user *)NULL)
120038
120039 #define CMSG_COMPAT_OK(ucmlen, ucmsg, mhdr) \
120040 ((ucmlen) >= sizeof(struct compat_cmsghdr) && \
120041 (ucmlen) <= (unsigned long) \
120042 ((mhdr)->msg_controllen - \
120043 - ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
120044 + ((char __force_kernel *)(ucmsg) - (char *)(mhdr)->msg_control)))
120045
120046 static inline struct compat_cmsghdr __user *cmsg_compat_nxthdr(struct msghdr *msg,
120047 struct compat_cmsghdr __user *cmsg, int cmsg_len)
120048 {
120049 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len);
120050 - if ((unsigned long)(ptr + 1 - (char __user *)msg->msg_control) >
120051 + if ((unsigned long)(ptr + 1 - (char __force_user *)msg->msg_control) >
120052 msg->msg_controllen)
120053 return NULL;
120054 return (struct compat_cmsghdr __user *)ptr;
120055 @@ -201,7 +201,7 @@ Efault:
120056
120057 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
120058 {
120059 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
120060 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
120061 struct compat_cmsghdr cmhdr;
120062 struct compat_timeval ctv;
120063 struct compat_timespec cts[3];
120064 @@ -257,7 +257,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
120065
120066 void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
120067 {
120068 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
120069 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
120070 int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
120071 int fdnum = scm->fp->count;
120072 struct file **fp = scm->fp->fp;
120073 @@ -345,7 +345,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
120074 return -EFAULT;
120075 old_fs = get_fs();
120076 set_fs(KERNEL_DS);
120077 - err = sock_setsockopt(sock, level, optname, (char *)&ktime, sizeof(ktime));
120078 + err = sock_setsockopt(sock, level, optname, (char __force_user *)&ktime, sizeof(ktime));
120079 set_fs(old_fs);
120080
120081 return err;
120082 @@ -406,7 +406,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
120083 len = sizeof(ktime);
120084 old_fs = get_fs();
120085 set_fs(KERNEL_DS);
120086 - err = sock_getsockopt(sock, level, optname, (char *) &ktime, &len);
120087 + err = sock_getsockopt(sock, level, optname, (char __force_user *) &ktime, (int __force_user *)&len);
120088 set_fs(old_fs);
120089
120090 if (!err) {
120091 @@ -549,7 +549,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
120092 case MCAST_JOIN_GROUP:
120093 case MCAST_LEAVE_GROUP:
120094 {
120095 - struct compat_group_req __user *gr32 = (void *)optval;
120096 + struct compat_group_req __user *gr32 = (void __user *)optval;
120097 struct group_req __user *kgr =
120098 compat_alloc_user_space(sizeof(struct group_req));
120099 u32 interface;
120100 @@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
120101 case MCAST_BLOCK_SOURCE:
120102 case MCAST_UNBLOCK_SOURCE:
120103 {
120104 - struct compat_group_source_req __user *gsr32 = (void *)optval;
120105 + struct compat_group_source_req __user *gsr32 = (void __user *)optval;
120106 struct group_source_req __user *kgsr = compat_alloc_user_space(
120107 sizeof(struct group_source_req));
120108 u32 interface;
120109 @@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
120110 }
120111 case MCAST_MSFILTER:
120112 {
120113 - struct compat_group_filter __user *gf32 = (void *)optval;
120114 + struct compat_group_filter __user *gf32 = (void __user *)optval;
120115 struct group_filter __user *kgf;
120116 u32 interface, fmode, numsrc;
120117
120118 @@ -629,7 +629,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
120119 char __user *optval, int __user *optlen,
120120 int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
120121 {
120122 - struct compat_group_filter __user *gf32 = (void *)optval;
120123 + struct compat_group_filter __user *gf32 = (void __user *)optval;
120124 struct group_filter __user *kgf;
120125 int __user *koptlen;
120126 u32 interface, fmode, numsrc;
120127 @@ -773,7 +773,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
120128
120129 if (call < SYS_SOCKET || call > SYS_SENDMMSG)
120130 return -EINVAL;
120131 - if (copy_from_user(a, args, nas[call]))
120132 + if (nas[call] > sizeof a || copy_from_user(a, args, nas[call]))
120133 return -EFAULT;
120134 a0 = a[0];
120135 a1 = a[1];
120136 diff --git a/net/core/datagram.c b/net/core/datagram.c
120137 index 617088a..0364f4f 100644
120138 --- a/net/core/datagram.c
120139 +++ b/net/core/datagram.c
120140 @@ -338,7 +338,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
120141 }
120142
120143 kfree_skb(skb);
120144 - atomic_inc(&sk->sk_drops);
120145 + atomic_inc_unchecked(&sk->sk_drops);
120146 sk_mem_reclaim_partial(sk);
120147
120148 return err;
120149 diff --git a/net/core/dev.c b/net/core/dev.c
120150 index c14748d..b500378 100644
120151 --- a/net/core/dev.c
120152 +++ b/net/core/dev.c
120153 @@ -1748,7 +1748,7 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
120154 {
120155 if (skb_orphan_frags(skb, GFP_ATOMIC) ||
120156 unlikely(!is_skb_forwardable(dev, skb))) {
120157 - atomic_long_inc(&dev->rx_dropped);
120158 + atomic_long_inc_unchecked(&dev->rx_dropped);
120159 kfree_skb(skb);
120160 return NET_RX_DROP;
120161 }
120162 @@ -3162,7 +3162,7 @@ recursion_alert:
120163 drop:
120164 rcu_read_unlock_bh();
120165
120166 - atomic_long_inc(&dev->tx_dropped);
120167 + atomic_long_inc_unchecked(&dev->tx_dropped);
120168 kfree_skb_list(skb);
120169 return rc;
120170 out:
120171 @@ -3514,7 +3514,7 @@ drop:
120172
120173 local_irq_restore(flags);
120174
120175 - atomic_long_inc(&skb->dev->rx_dropped);
120176 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
120177 kfree_skb(skb);
120178 return NET_RX_DROP;
120179 }
120180 @@ -3591,7 +3591,7 @@ int netif_rx_ni(struct sk_buff *skb)
120181 }
120182 EXPORT_SYMBOL(netif_rx_ni);
120183
120184 -static void net_tx_action(struct softirq_action *h)
120185 +static __latent_entropy void net_tx_action(void)
120186 {
120187 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
120188
120189 @@ -3929,7 +3929,7 @@ ncls:
120190 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
120191 } else {
120192 drop:
120193 - atomic_long_inc(&skb->dev->rx_dropped);
120194 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
120195 kfree_skb(skb);
120196 /* Jamal, now you will not able to escape explaining
120197 * me how you were going to use this. :-)
120198 @@ -4822,7 +4822,7 @@ out_unlock:
120199 return work;
120200 }
120201
120202 -static void net_rx_action(struct softirq_action *h)
120203 +static __latent_entropy void net_rx_action(void)
120204 {
120205 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
120206 unsigned long time_limit = jiffies + 2;
120207 @@ -6914,8 +6914,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
120208 } else {
120209 netdev_stats_to_stats64(storage, &dev->stats);
120210 }
120211 - storage->rx_dropped += atomic_long_read(&dev->rx_dropped);
120212 - storage->tx_dropped += atomic_long_read(&dev->tx_dropped);
120213 + storage->rx_dropped += atomic_long_read_unchecked(&dev->rx_dropped);
120214 + storage->tx_dropped += atomic_long_read_unchecked(&dev->tx_dropped);
120215 return storage;
120216 }
120217 EXPORT_SYMBOL(dev_get_stats);
120218 diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
120219 index b94b1d2..da3ed7c 100644
120220 --- a/net/core/dev_ioctl.c
120221 +++ b/net/core/dev_ioctl.c
120222 @@ -368,8 +368,13 @@ void dev_load(struct net *net, const char *name)
120223 no_module = !dev;
120224 if (no_module && capable(CAP_NET_ADMIN))
120225 no_module = request_module("netdev-%s", name);
120226 - if (no_module && capable(CAP_SYS_MODULE))
120227 + if (no_module && capable(CAP_SYS_MODULE)) {
120228 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
120229 + ___request_module(true, "grsec_modharden_netdev", "%s", name);
120230 +#else
120231 request_module("%s", name);
120232 +#endif
120233 + }
120234 }
120235 EXPORT_SYMBOL(dev_load);
120236
120237 diff --git a/net/core/filter.c b/net/core/filter.c
120238 index bb18c36..90998d5 100644
120239 --- a/net/core/filter.c
120240 +++ b/net/core/filter.c
120241 @@ -584,7 +584,11 @@ do_pass:
120242
120243 /* Unknown instruction. */
120244 default:
120245 - goto err;
120246 + WARN(1, KERN_ALERT "Unknown sock filter code:%u jt:%u tf:%u k:%u\n",
120247 + fp->code, fp->jt, fp->jf, fp->k);
120248 + kfree(addrs);
120249 + BUG();
120250 + return -EINVAL;
120251 }
120252
120253 insn++;
120254 @@ -628,7 +632,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
120255 u16 *masks, memvalid = 0; /* One bit per cell, 16 cells */
120256 int pc, ret = 0;
120257
120258 - BUILD_BUG_ON(BPF_MEMWORDS > 16);
120259 + BUILD_BUG_ON(BPF_MEMWORDS != 16);
120260
120261 masks = kmalloc_array(flen, sizeof(*masks), GFP_KERNEL);
120262 if (!masks)
120263 @@ -1057,7 +1061,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
120264 if (!fp)
120265 return -ENOMEM;
120266
120267 - memcpy(fp->insns, fprog->filter, fsize);
120268 + memcpy(fp->insns, (void __force_kernel *)fprog->filter, fsize);
120269
120270 fp->len = fprog->len;
120271 /* Since unattached filters are not copied back to user
120272 diff --git a/net/core/flow.c b/net/core/flow.c
120273 index 1033725..340f65d 100644
120274 --- a/net/core/flow.c
120275 +++ b/net/core/flow.c
120276 @@ -65,7 +65,7 @@ static void flow_cache_new_hashrnd(unsigned long arg)
120277 static int flow_entry_valid(struct flow_cache_entry *fle,
120278 struct netns_xfrm *xfrm)
120279 {
120280 - if (atomic_read(&xfrm->flow_cache_genid) != fle->genid)
120281 + if (atomic_read_unchecked(&xfrm->flow_cache_genid) != fle->genid)
120282 return 0;
120283 if (fle->object && !fle->object->ops->check(fle->object))
120284 return 0;
120285 @@ -242,7 +242,7 @@ flow_cache_lookup(struct net *net, const struct flowi *key, u16 family, u8 dir,
120286 hlist_add_head(&fle->u.hlist, &fcp->hash_table[hash]);
120287 fcp->hash_count++;
120288 }
120289 - } else if (likely(fle->genid == atomic_read(&net->xfrm.flow_cache_genid))) {
120290 + } else if (likely(fle->genid == atomic_read_unchecked(&net->xfrm.flow_cache_genid))) {
120291 flo = fle->object;
120292 if (!flo)
120293 goto ret_object;
120294 @@ -263,7 +263,7 @@ nocache:
120295 }
120296 flo = resolver(net, key, family, dir, flo, ctx);
120297 if (fle) {
120298 - fle->genid = atomic_read(&net->xfrm.flow_cache_genid);
120299 + fle->genid = atomic_read_unchecked(&net->xfrm.flow_cache_genid);
120300 if (!IS_ERR(flo))
120301 fle->object = flo;
120302 else
120303 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
120304 index c169bba..1f5205a 100644
120305 --- a/net/core/neighbour.c
120306 +++ b/net/core/neighbour.c
120307 @@ -2827,7 +2827,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
120308 void __user *buffer, size_t *lenp, loff_t *ppos)
120309 {
120310 int size, ret;
120311 - struct ctl_table tmp = *ctl;
120312 + ctl_table_no_const tmp = *ctl;
120313
120314 tmp.extra1 = &zero;
120315 tmp.extra2 = &unres_qlen_max;
120316 @@ -2889,7 +2889,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
120317 void __user *buffer,
120318 size_t *lenp, loff_t *ppos)
120319 {
120320 - struct ctl_table tmp = *ctl;
120321 + ctl_table_no_const tmp = *ctl;
120322 int ret;
120323
120324 tmp.extra1 = &zero;
120325 diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
120326 index 2bf8329..2eb1423 100644
120327 --- a/net/core/net-procfs.c
120328 +++ b/net/core/net-procfs.c
120329 @@ -79,7 +79,13 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
120330 struct rtnl_link_stats64 temp;
120331 const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
120332
120333 - seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
120334 + if (gr_proc_is_restricted())
120335 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
120336 + "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
120337 + dev->name, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL,
120338 + 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL);
120339 + else
120340 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
120341 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
120342 dev->name, stats->rx_bytes, stats->rx_packets,
120343 stats->rx_errors,
120344 @@ -166,7 +172,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)
120345 return 0;
120346 }
120347
120348 -static const struct seq_operations dev_seq_ops = {
120349 +const struct seq_operations dev_seq_ops = {
120350 .start = dev_seq_start,
120351 .next = dev_seq_next,
120352 .stop = dev_seq_stop,
120353 @@ -196,7 +202,7 @@ static const struct seq_operations softnet_seq_ops = {
120354
120355 static int softnet_seq_open(struct inode *inode, struct file *file)
120356 {
120357 - return seq_open(file, &softnet_seq_ops);
120358 + return seq_open_restrict(file, &softnet_seq_ops);
120359 }
120360
120361 static const struct file_operations softnet_seq_fops = {
120362 @@ -283,8 +289,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
120363 else
120364 seq_printf(seq, "%04x", ntohs(pt->type));
120365
120366 +#ifdef CONFIG_GRKERNSEC_HIDESYM
120367 + seq_printf(seq, " %-8s %pf\n",
120368 + pt->dev ? pt->dev->name : "", NULL);
120369 +#else
120370 seq_printf(seq, " %-8s %pf\n",
120371 pt->dev ? pt->dev->name : "", pt->func);
120372 +#endif
120373 }
120374
120375 return 0;
120376 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
120377 index 830f8a7..91caf1c 100644
120378 --- a/net/core/net-sysfs.c
120379 +++ b/net/core/net-sysfs.c
120380 @@ -287,7 +287,7 @@ static ssize_t carrier_changes_show(struct device *dev,
120381 {
120382 struct net_device *netdev = to_net_dev(dev);
120383 return sprintf(buf, fmt_dec,
120384 - atomic_read(&netdev->carrier_changes));
120385 + atomic_read_unchecked(&netdev->carrier_changes));
120386 }
120387 static DEVICE_ATTR_RO(carrier_changes);
120388
120389 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
120390 index 2c2eb1b..a53be3e 100644
120391 --- a/net/core/net_namespace.c
120392 +++ b/net/core/net_namespace.c
120393 @@ -775,7 +775,7 @@ static int __register_pernet_operations(struct list_head *list,
120394 int error;
120395 LIST_HEAD(net_exit_list);
120396
120397 - list_add_tail(&ops->list, list);
120398 + pax_list_add_tail((struct list_head *)&ops->list, list);
120399 if (ops->init || (ops->id && ops->size)) {
120400 for_each_net(net) {
120401 error = ops_init(ops, net);
120402 @@ -788,7 +788,7 @@ static int __register_pernet_operations(struct list_head *list,
120403
120404 out_undo:
120405 /* If I have an error cleanup all namespaces I initialized */
120406 - list_del(&ops->list);
120407 + pax_list_del((struct list_head *)&ops->list);
120408 ops_exit_list(ops, &net_exit_list);
120409 ops_free_list(ops, &net_exit_list);
120410 return error;
120411 @@ -799,7 +799,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
120412 struct net *net;
120413 LIST_HEAD(net_exit_list);
120414
120415 - list_del(&ops->list);
120416 + pax_list_del((struct list_head *)&ops->list);
120417 for_each_net(net)
120418 list_add_tail(&net->exit_list, &net_exit_list);
120419 ops_exit_list(ops, &net_exit_list);
120420 @@ -933,7 +933,7 @@ int register_pernet_device(struct pernet_operations *ops)
120421 mutex_lock(&net_mutex);
120422 error = register_pernet_operations(&pernet_list, ops);
120423 if (!error && (first_device == &pernet_list))
120424 - first_device = &ops->list;
120425 + first_device = (struct list_head *)&ops->list;
120426 mutex_unlock(&net_mutex);
120427 return error;
120428 }
120429 diff --git a/net/core/netpoll.c b/net/core/netpoll.c
120430 index 8bdada2..d7048c2 100644
120431 --- a/net/core/netpoll.c
120432 +++ b/net/core/netpoll.c
120433 @@ -383,7 +383,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
120434 struct udphdr *udph;
120435 struct iphdr *iph;
120436 struct ethhdr *eth;
120437 - static atomic_t ip_ident;
120438 + static atomic_unchecked_t ip_ident;
120439 struct ipv6hdr *ip6h;
120440
120441 WARN_ON_ONCE(!irqs_disabled());
120442 @@ -456,7 +456,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
120443 put_unaligned(0x45, (unsigned char *)iph);
120444 iph->tos = 0;
120445 put_unaligned(htons(ip_len), &(iph->tot_len));
120446 - iph->id = htons(atomic_inc_return(&ip_ident));
120447 + iph->id = htons(atomic_inc_return_unchecked(&ip_ident));
120448 iph->frag_off = 0;
120449 iph->ttl = 64;
120450 iph->protocol = IPPROTO_UDP;
120451 diff --git a/net/core/pktgen.c b/net/core/pktgen.c
120452 index de8d5cc..bf8443a 100644
120453 --- a/net/core/pktgen.c
120454 +++ b/net/core/pktgen.c
120455 @@ -3827,7 +3827,7 @@ static int __net_init pg_net_init(struct net *net)
120456 pn->net = net;
120457 INIT_LIST_HEAD(&pn->pktgen_threads);
120458 pn->pktgen_exiting = false;
120459 - pn->proc_dir = proc_mkdir(PG_PROC_DIR, pn->net->proc_net);
120460 + pn->proc_dir = proc_mkdir_restrict(PG_PROC_DIR, pn->net->proc_net);
120461 if (!pn->proc_dir) {
120462 pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
120463 return -ENODEV;
120464 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
120465 index 0ec4840..5277144 100644
120466 --- a/net/core/rtnetlink.c
120467 +++ b/net/core/rtnetlink.c
120468 @@ -61,7 +61,7 @@ struct rtnl_link {
120469 rtnl_doit_func doit;
120470 rtnl_dumpit_func dumpit;
120471 rtnl_calcit_func calcit;
120472 -};
120473 +} __no_const;
120474
120475 static DEFINE_MUTEX(rtnl_mutex);
120476
120477 @@ -307,10 +307,13 @@ int __rtnl_link_register(struct rtnl_link_ops *ops)
120478 * to use the ops for creating device. So do not
120479 * fill up dellink as well. That disables rtnl_dellink.
120480 */
120481 - if (ops->setup && !ops->dellink)
120482 - ops->dellink = unregister_netdevice_queue;
120483 + if (ops->setup && !ops->dellink) {
120484 + pax_open_kernel();
120485 + *(void **)&ops->dellink = unregister_netdevice_queue;
120486 + pax_close_kernel();
120487 + }
120488
120489 - list_add_tail(&ops->list, &link_ops);
120490 + pax_list_add_tail((struct list_head *)&ops->list, &link_ops);
120491 return 0;
120492 }
120493 EXPORT_SYMBOL_GPL(__rtnl_link_register);
120494 @@ -357,7 +360,7 @@ void __rtnl_link_unregister(struct rtnl_link_ops *ops)
120495 for_each_net(net) {
120496 __rtnl_kill_links(net, ops);
120497 }
120498 - list_del(&ops->list);
120499 + pax_list_del((struct list_head *)&ops->list);
120500 }
120501 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
120502
120503 @@ -1090,7 +1093,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
120504 (dev->ifalias &&
120505 nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
120506 nla_put_u32(skb, IFLA_CARRIER_CHANGES,
120507 - atomic_read(&dev->carrier_changes)) ||
120508 + atomic_read_unchecked(&dev->carrier_changes)) ||
120509 nla_put_u8(skb, IFLA_PROTO_DOWN, dev->proto_down))
120510 goto nla_put_failure;
120511
120512 diff --git a/net/core/scm.c b/net/core/scm.c
120513 index 8a1741b..20d20e7 100644
120514 --- a/net/core/scm.c
120515 +++ b/net/core/scm.c
120516 @@ -209,9 +209,9 @@ EXPORT_SYMBOL(__scm_send);
120517 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
120518 {
120519 struct cmsghdr __user *cm
120520 - = (__force struct cmsghdr __user *)msg->msg_control;
120521 + = (struct cmsghdr __force_user *)msg->msg_control;
120522 struct cmsghdr cmhdr;
120523 - int cmlen = CMSG_LEN(len);
120524 + size_t cmlen = CMSG_LEN(len);
120525 int err;
120526
120527 if (MSG_CMSG_COMPAT & msg->msg_flags)
120528 @@ -232,7 +232,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
120529 err = -EFAULT;
120530 if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
120531 goto out;
120532 - if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr)))
120533 + if (copy_to_user((void __force_user *)CMSG_DATA((void __force_kernel *)cm), data, cmlen - sizeof(struct cmsghdr)))
120534 goto out;
120535 cmlen = CMSG_SPACE(len);
120536 if (msg->msg_controllen < cmlen)
120537 @@ -248,7 +248,7 @@ EXPORT_SYMBOL(put_cmsg);
120538 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120539 {
120540 struct cmsghdr __user *cm
120541 - = (__force struct cmsghdr __user*)msg->msg_control;
120542 + = (struct cmsghdr __force_user *)msg->msg_control;
120543
120544 int fdmax = 0;
120545 int fdnum = scm->fp->count;
120546 @@ -268,7 +268,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120547 if (fdnum < fdmax)
120548 fdmax = fdnum;
120549
120550 - for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
120551 + for (i=0, cmfptr=(int __force_user *)CMSG_DATA((void __force_kernel *)cm); i<fdmax;
120552 i++, cmfptr++)
120553 {
120554 struct socket *sock;
120555 @@ -297,7 +297,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120556
120557 if (i > 0)
120558 {
120559 - int cmlen = CMSG_LEN(i*sizeof(int));
120560 + size_t cmlen = CMSG_LEN(i*sizeof(int));
120561 err = put_user(SOL_SOCKET, &cm->cmsg_level);
120562 if (!err)
120563 err = put_user(SCM_RIGHTS, &cm->cmsg_type);
120564 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
120565 index fab4599..daf360d 100644
120566 --- a/net/core/skbuff.c
120567 +++ b/net/core/skbuff.c
120568 @@ -969,7 +969,8 @@ static void skb_headers_offset_update(struct sk_buff *skb, int off)
120569 if (skb->ip_summed == CHECKSUM_PARTIAL)
120570 skb->csum_start += off;
120571 /* {transport,network,mac}_header and tail are relative to skb->head */
120572 - skb->transport_header += off;
120573 + if (skb_transport_header_was_set(skb))
120574 + skb->transport_header += off;
120575 skb->network_header += off;
120576 if (skb_mac_header_was_set(skb))
120577 skb->mac_header += off;
120578 @@ -2103,7 +2104,7 @@ EXPORT_SYMBOL(__skb_checksum);
120579 __wsum skb_checksum(const struct sk_buff *skb, int offset,
120580 int len, __wsum csum)
120581 {
120582 - const struct skb_checksum_ops ops = {
120583 + static const struct skb_checksum_ops ops = {
120584 .update = csum_partial_ext,
120585 .combine = csum_block_add_ext,
120586 };
120587 @@ -3318,12 +3319,14 @@ void __init skb_init(void)
120588 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
120589 sizeof(struct sk_buff),
120590 0,
120591 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
120592 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
120593 + SLAB_NO_SANITIZE,
120594 NULL);
120595 skbuff_fclone_cache = kmem_cache_create("skbuff_fclone_cache",
120596 sizeof(struct sk_buff_fclones),
120597 0,
120598 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
120599 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
120600 + SLAB_NO_SANITIZE,
120601 NULL);
120602 }
120603
120604 @@ -3643,7 +3646,8 @@ static void __skb_complete_tx_timestamp(struct sk_buff *skb,
120605 serr->ee.ee_info = tstype;
120606 if (sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID) {
120607 serr->ee.ee_data = skb_shinfo(skb)->tskey;
120608 - if (sk->sk_protocol == IPPROTO_TCP)
120609 + if (sk->sk_protocol == IPPROTO_TCP &&
120610 + sk->sk_type == SOCK_STREAM)
120611 serr->ee.ee_data -= sk->sk_tskey;
120612 }
120613
120614 diff --git a/net/core/sock.c b/net/core/sock.c
120615 index 3307c02..3a9bfdc 100644
120616 --- a/net/core/sock.c
120617 +++ b/net/core/sock.c
120618 @@ -441,7 +441,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
120619 struct sk_buff_head *list = &sk->sk_receive_queue;
120620
120621 if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
120622 - atomic_inc(&sk->sk_drops);
120623 + atomic_inc_unchecked(&sk->sk_drops);
120624 trace_sock_rcvqueue_full(sk, skb);
120625 return -ENOMEM;
120626 }
120627 @@ -451,7 +451,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
120628 return err;
120629
120630 if (!sk_rmem_schedule(sk, skb, skb->truesize)) {
120631 - atomic_inc(&sk->sk_drops);
120632 + atomic_inc_unchecked(&sk->sk_drops);
120633 return -ENOBUFS;
120634 }
120635
120636 @@ -484,7 +484,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
120637 skb->dev = NULL;
120638
120639 if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) {
120640 - atomic_inc(&sk->sk_drops);
120641 + atomic_inc_unchecked(&sk->sk_drops);
120642 goto discard_and_relse;
120643 }
120644 if (nested)
120645 @@ -502,7 +502,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
120646 mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
120647 } else if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) {
120648 bh_unlock_sock(sk);
120649 - atomic_inc(&sk->sk_drops);
120650 + atomic_inc_unchecked(&sk->sk_drops);
120651 goto discard_and_relse;
120652 }
120653
120654 @@ -862,7 +862,8 @@ set_rcvbuf:
120655
120656 if (val & SOF_TIMESTAMPING_OPT_ID &&
120657 !(sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID)) {
120658 - if (sk->sk_protocol == IPPROTO_TCP) {
120659 + if (sk->sk_protocol == IPPROTO_TCP &&
120660 + sk->sk_type == SOCK_STREAM) {
120661 if (sk->sk_state != TCP_ESTABLISHED) {
120662 ret = -EINVAL;
120663 break;
120664 @@ -908,6 +909,7 @@ set_rcvbuf:
120665 }
120666 break;
120667
120668 +#ifndef GRKERNSEC_BPF_HARDEN
120669 case SO_ATTACH_BPF:
120670 ret = -EINVAL;
120671 if (optlen == sizeof(u32)) {
120672 @@ -920,7 +922,7 @@ set_rcvbuf:
120673 ret = sk_attach_bpf(ufd, sk);
120674 }
120675 break;
120676 -
120677 +#endif
120678 case SO_DETACH_FILTER:
120679 ret = sk_detach_filter(sk);
120680 break;
120681 @@ -1022,12 +1024,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120682 struct timeval tm;
120683 } v;
120684
120685 - int lv = sizeof(int);
120686 - int len;
120687 + unsigned int lv = sizeof(int);
120688 + unsigned int len;
120689
120690 if (get_user(len, optlen))
120691 return -EFAULT;
120692 - if (len < 0)
120693 + if (len > INT_MAX)
120694 return -EINVAL;
120695
120696 memset(&v, 0, sizeof(v));
120697 @@ -1165,11 +1167,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120698
120699 case SO_PEERNAME:
120700 {
120701 - char address[128];
120702 + char address[_K_SS_MAXSIZE];
120703
120704 if (sock->ops->getname(sock, (struct sockaddr *)address, &lv, 2))
120705 return -ENOTCONN;
120706 - if (lv < len)
120707 + if (lv < len || sizeof address < len)
120708 return -EINVAL;
120709 if (copy_to_user(optval, address, len))
120710 return -EFAULT;
120711 @@ -1257,7 +1259,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120712
120713 if (len > lv)
120714 len = lv;
120715 - if (copy_to_user(optval, &v, len))
120716 + if (len > sizeof(v) || copy_to_user(optval, &v, len))
120717 return -EFAULT;
120718 lenout:
120719 if (put_user(len, optlen))
120720 @@ -1550,7 +1552,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
120721 newsk->sk_err = 0;
120722 newsk->sk_priority = 0;
120723 newsk->sk_incoming_cpu = raw_smp_processor_id();
120724 - atomic64_set(&newsk->sk_cookie, 0);
120725 + atomic64_set_unchecked(&newsk->sk_cookie, 0);
120726 /*
120727 * Before updating sk_refcnt, we must commit prior changes to memory
120728 * (Documentation/RCU/rculist_nulls.txt for details)
120729 @@ -2359,7 +2361,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
120730 */
120731 smp_wmb();
120732 atomic_set(&sk->sk_refcnt, 1);
120733 - atomic_set(&sk->sk_drops, 0);
120734 + atomic_set_unchecked(&sk->sk_drops, 0);
120735 }
120736 EXPORT_SYMBOL(sock_init_data);
120737
120738 @@ -2487,6 +2489,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
120739 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
120740 int level, int type)
120741 {
120742 + struct sock_extended_err ee;
120743 struct sock_exterr_skb *serr;
120744 struct sk_buff *skb;
120745 int copied, err;
120746 @@ -2508,7 +2511,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
120747 sock_recv_timestamp(msg, sk, skb);
120748
120749 serr = SKB_EXT_ERR(skb);
120750 - put_cmsg(msg, level, type, sizeof(serr->ee), &serr->ee);
120751 + ee = serr->ee;
120752 + put_cmsg(msg, level, type, sizeof ee, &ee);
120753
120754 msg->msg_flags |= MSG_ERRQUEUE;
120755 err = copied;
120756 diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
120757 index 817622f..2577b26 100644
120758 --- a/net/core/sock_diag.c
120759 +++ b/net/core/sock_diag.c
120760 @@ -12,7 +12,7 @@
120761 #include <linux/inet_diag.h>
120762 #include <linux/sock_diag.h>
120763
120764 -static const struct sock_diag_handler *sock_diag_handlers[AF_MAX];
120765 +static const struct sock_diag_handler *sock_diag_handlers[AF_MAX] __read_only;
120766 static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
120767 static DEFINE_MUTEX(sock_diag_table_mutex);
120768 static struct workqueue_struct *broadcast_wq;
120769 @@ -20,12 +20,12 @@ static struct workqueue_struct *broadcast_wq;
120770 static u64 sock_gen_cookie(struct sock *sk)
120771 {
120772 while (1) {
120773 - u64 res = atomic64_read(&sk->sk_cookie);
120774 + u64 res = atomic64_read_unchecked(&sk->sk_cookie);
120775
120776 if (res)
120777 return res;
120778 - res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
120779 - atomic64_cmpxchg(&sk->sk_cookie, 0, res);
120780 + res = atomic64_inc_return_unchecked(&sock_net(sk)->cookie_gen);
120781 + atomic64_cmpxchg_unchecked(&sk->sk_cookie, 0, res);
120782 }
120783 }
120784
120785 @@ -190,8 +190,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
120786 mutex_lock(&sock_diag_table_mutex);
120787 if (sock_diag_handlers[hndl->family])
120788 err = -EBUSY;
120789 - else
120790 + else {
120791 + pax_open_kernel();
120792 sock_diag_handlers[hndl->family] = hndl;
120793 + pax_close_kernel();
120794 + }
120795 mutex_unlock(&sock_diag_table_mutex);
120796
120797 return err;
120798 @@ -207,7 +210,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
120799
120800 mutex_lock(&sock_diag_table_mutex);
120801 BUG_ON(sock_diag_handlers[family] != hnld);
120802 + pax_open_kernel();
120803 sock_diag_handlers[family] = NULL;
120804 + pax_close_kernel();
120805 mutex_unlock(&sock_diag_table_mutex);
120806 }
120807 EXPORT_SYMBOL_GPL(sock_diag_unregister);
120808 diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
120809 index 95b6139..3048623 100644
120810 --- a/net/core/sysctl_net_core.c
120811 +++ b/net/core/sysctl_net_core.c
120812 @@ -35,7 +35,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
120813 {
120814 unsigned int orig_size, size;
120815 int ret, i;
120816 - struct ctl_table tmp = {
120817 + ctl_table_no_const tmp = {
120818 .data = &size,
120819 .maxlen = sizeof(size),
120820 .mode = table->mode
120821 @@ -203,7 +203,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
120822 void __user *buffer, size_t *lenp, loff_t *ppos)
120823 {
120824 char id[IFNAMSIZ];
120825 - struct ctl_table tbl = {
120826 + ctl_table_no_const tbl = {
120827 .data = id,
120828 .maxlen = IFNAMSIZ,
120829 };
120830 @@ -221,7 +221,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
120831 static int proc_do_rss_key(struct ctl_table *table, int write,
120832 void __user *buffer, size_t *lenp, loff_t *ppos)
120833 {
120834 - struct ctl_table fake_table;
120835 + ctl_table_no_const fake_table;
120836 char buf[NETDEV_RSS_KEY_LEN * 3];
120837
120838 snprintf(buf, sizeof(buf), "%*phC", NETDEV_RSS_KEY_LEN, netdev_rss_key);
120839 @@ -285,7 +285,7 @@ static struct ctl_table net_core_table[] = {
120840 .mode = 0444,
120841 .proc_handler = proc_do_rss_key,
120842 },
120843 -#ifdef CONFIG_BPF_JIT
120844 +#if defined(CONFIG_BPF_JIT) && !defined(CONFIG_GRKERNSEC_BPF_HARDEN)
120845 {
120846 .procname = "bpf_jit_enable",
120847 .data = &bpf_jit_enable,
120848 @@ -409,13 +409,12 @@ static struct ctl_table netns_core_table[] = {
120849
120850 static __net_init int sysctl_core_net_init(struct net *net)
120851 {
120852 - struct ctl_table *tbl;
120853 + ctl_table_no_const *tbl = NULL;
120854
120855 net->core.sysctl_somaxconn = SOMAXCONN;
120856
120857 - tbl = netns_core_table;
120858 if (!net_eq(net, &init_net)) {
120859 - tbl = kmemdup(tbl, sizeof(netns_core_table), GFP_KERNEL);
120860 + tbl = kmemdup(netns_core_table, sizeof(netns_core_table), GFP_KERNEL);
120861 if (tbl == NULL)
120862 goto err_dup;
120863
120864 @@ -425,17 +424,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
120865 if (net->user_ns != &init_user_ns) {
120866 tbl[0].procname = NULL;
120867 }
120868 - }
120869 -
120870 - net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
120871 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
120872 + } else
120873 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", netns_core_table);
120874 if (net->core.sysctl_hdr == NULL)
120875 goto err_reg;
120876
120877 return 0;
120878
120879 err_reg:
120880 - if (tbl != netns_core_table)
120881 - kfree(tbl);
120882 + kfree(tbl);
120883 err_dup:
120884 return -ENOMEM;
120885 }
120886 @@ -450,7 +448,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
120887 kfree(tbl);
120888 }
120889
120890 -static __net_initdata struct pernet_operations sysctl_core_ops = {
120891 +static __net_initconst struct pernet_operations sysctl_core_ops = {
120892 .init = sysctl_core_net_init,
120893 .exit = sysctl_core_net_exit,
120894 };
120895 diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
120896 index 675cf94..9279a75 100644
120897 --- a/net/decnet/af_decnet.c
120898 +++ b/net/decnet/af_decnet.c
120899 @@ -466,6 +466,7 @@ static struct proto dn_proto = {
120900 .sysctl_rmem = sysctl_decnet_rmem,
120901 .max_header = DN_MAX_NSP_DATA_HEADER + 64,
120902 .obj_size = sizeof(struct dn_sock),
120903 + .slab_flags = SLAB_USERCOPY,
120904 };
120905
120906 static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gfp, int kern)
120907 diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
120908 index b2c26b0..41f803e 100644
120909 --- a/net/decnet/dn_dev.c
120910 +++ b/net/decnet/dn_dev.c
120911 @@ -201,7 +201,7 @@ static struct dn_dev_sysctl_table {
120912 .extra1 = &min_t3,
120913 .extra2 = &max_t3
120914 },
120915 - {0}
120916 + { }
120917 },
120918 };
120919
120920 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
120921 index 5325b54..a0d4d69 100644
120922 --- a/net/decnet/sysctl_net_decnet.c
120923 +++ b/net/decnet/sysctl_net_decnet.c
120924 @@ -174,7 +174,7 @@ static int dn_node_address_handler(struct ctl_table *table, int write,
120925
120926 if (len > *lenp) len = *lenp;
120927
120928 - if (copy_to_user(buffer, addr, len))
120929 + if (len > sizeof addr || copy_to_user(buffer, addr, len))
120930 return -EFAULT;
120931
120932 *lenp = len;
120933 @@ -237,7 +237,7 @@ static int dn_def_dev_handler(struct ctl_table *table, int write,
120934
120935 if (len > *lenp) len = *lenp;
120936
120937 - if (copy_to_user(buffer, devname, len))
120938 + if (len > sizeof devname || copy_to_user(buffer, devname, len))
120939 return -EFAULT;
120940
120941 *lenp = len;
120942 diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
120943 index adb5325..9d5d089 100644
120944 --- a/net/dsa/dsa.c
120945 +++ b/net/dsa/dsa.c
120946 @@ -999,7 +999,7 @@ static struct packet_type dsa_pack_type __read_mostly = {
120947 .func = dsa_switch_rcv,
120948 };
120949
120950 -static struct notifier_block dsa_netdevice_nb __read_mostly = {
120951 +static struct notifier_block dsa_netdevice_nb = {
120952 .notifier_call = dsa_slave_netdevice_event,
120953 };
120954
120955 diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
120956 index a2c7e4c..3dc9f67 100644
120957 --- a/net/hsr/hsr_netlink.c
120958 +++ b/net/hsr/hsr_netlink.c
120959 @@ -102,7 +102,7 @@ nla_put_failure:
120960 return -EMSGSIZE;
120961 }
120962
120963 -static struct rtnl_link_ops hsr_link_ops __read_mostly = {
120964 +static struct rtnl_link_ops hsr_link_ops = {
120965 .kind = "hsr",
120966 .maxtype = IFLA_HSR_MAX,
120967 .policy = hsr_policy,
120968 diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
120969 index 953b1c4..ea4fca4d 100644
120970 --- a/net/ieee802154/6lowpan/core.c
120971 +++ b/net/ieee802154/6lowpan/core.c
120972 @@ -174,7 +174,7 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
120973 dev_put(real_dev);
120974 }
120975
120976 -static struct rtnl_link_ops lowpan_link_ops __read_mostly = {
120977 +static struct rtnl_link_ops lowpan_link_ops = {
120978 .kind = "lowpan",
120979 .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev_info)),
120980 .setup = lowpan_setup,
120981 diff --git a/net/ieee802154/6lowpan/reassembly.c b/net/ieee802154/6lowpan/reassembly.c
120982 index 214d44a..dcb7f86 100644
120983 --- a/net/ieee802154/6lowpan/reassembly.c
120984 +++ b/net/ieee802154/6lowpan/reassembly.c
120985 @@ -435,14 +435,13 @@ static struct ctl_table lowpan_frags_ctl_table[] = {
120986
120987 static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
120988 {
120989 - struct ctl_table *table;
120990 + ctl_table_no_const *table = NULL;
120991 struct ctl_table_header *hdr;
120992 struct netns_ieee802154_lowpan *ieee802154_lowpan =
120993 net_ieee802154_lowpan(net);
120994
120995 - table = lowpan_frags_ns_ctl_table;
120996 if (!net_eq(net, &init_net)) {
120997 - table = kmemdup(table, sizeof(lowpan_frags_ns_ctl_table),
120998 + table = kmemdup(lowpan_frags_ns_ctl_table, sizeof(lowpan_frags_ns_ctl_table),
120999 GFP_KERNEL);
121000 if (table == NULL)
121001 goto err_alloc;
121002 @@ -457,9 +456,9 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
121003 /* Don't export sysctls to unprivileged users */
121004 if (net->user_ns != &init_user_ns)
121005 table[0].procname = NULL;
121006 - }
121007 -
121008 - hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
121009 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
121010 + } else
121011 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", lowpan_frags_ns_ctl_table);
121012 if (hdr == NULL)
121013 goto err_reg;
121014
121015 @@ -467,8 +466,7 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
121016 return 0;
121017
121018 err_reg:
121019 - if (!net_eq(net, &init_net))
121020 - kfree(table);
121021 + kfree(table);
121022 err_alloc:
121023 return -ENOMEM;
121024 }
121025 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
121026 index 1d0c3ad..408f17b 100644
121027 --- a/net/ipv4/af_inet.c
121028 +++ b/net/ipv4/af_inet.c
121029 @@ -1396,7 +1396,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
121030 return ip_recv_error(sk, msg, len, addr_len);
121031 #if IS_ENABLED(CONFIG_IPV6)
121032 if (sk->sk_family == AF_INET6)
121033 - return pingv6_ops.ipv6_recv_error(sk, msg, len, addr_len);
121034 + return pingv6_ops->ipv6_recv_error(sk, msg, len, addr_len);
121035 #endif
121036 return -EINVAL;
121037 }
121038 diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
121039 index 2d9cb17..20ae904 100644
121040 --- a/net/ipv4/devinet.c
121041 +++ b/net/ipv4/devinet.c
121042 @@ -69,7 +69,8 @@
121043
121044 static struct ipv4_devconf ipv4_devconf = {
121045 .data = {
121046 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
121047 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
121048 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
121049 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
121050 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
121051 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
121052 @@ -80,7 +81,8 @@ static struct ipv4_devconf ipv4_devconf = {
121053
121054 static struct ipv4_devconf ipv4_devconf_dflt = {
121055 .data = {
121056 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
121057 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
121058 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
121059 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
121060 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
121061 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
121062 @@ -1579,7 +1581,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
121063 idx = 0;
121064 head = &net->dev_index_head[h];
121065 rcu_read_lock();
121066 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
121067 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
121068 net->dev_base_seq;
121069 hlist_for_each_entry_rcu(dev, head, index_hlist) {
121070 if (idx < s_idx)
121071 @@ -1905,7 +1907,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
121072 idx = 0;
121073 head = &net->dev_index_head[h];
121074 rcu_read_lock();
121075 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
121076 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
121077 net->dev_base_seq;
121078 hlist_for_each_entry_rcu(dev, head, index_hlist) {
121079 if (idx < s_idx)
121080 @@ -2146,7 +2148,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
121081 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
121082 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
121083
121084 -static struct devinet_sysctl_table {
121085 +static const struct devinet_sysctl_table {
121086 struct ctl_table_header *sysctl_header;
121087 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
121088 } devinet_sysctl = {
121089 @@ -2280,7 +2282,7 @@ static __net_init int devinet_init_net(struct net *net)
121090 int err;
121091 struct ipv4_devconf *all, *dflt;
121092 #ifdef CONFIG_SYSCTL
121093 - struct ctl_table *tbl = ctl_forward_entry;
121094 + ctl_table_no_const *tbl = NULL;
121095 struct ctl_table_header *forw_hdr;
121096 #endif
121097
121098 @@ -2298,7 +2300,7 @@ static __net_init int devinet_init_net(struct net *net)
121099 goto err_alloc_dflt;
121100
121101 #ifdef CONFIG_SYSCTL
121102 - tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
121103 + tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL);
121104 if (!tbl)
121105 goto err_alloc_ctl;
121106
121107 @@ -2318,7 +2320,10 @@ static __net_init int devinet_init_net(struct net *net)
121108 goto err_reg_dflt;
121109
121110 err = -ENOMEM;
121111 - forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
121112 + if (!net_eq(net, &init_net))
121113 + forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
121114 + else
121115 + forw_hdr = register_net_sysctl(net, "net/ipv4", ctl_forward_entry);
121116 if (!forw_hdr)
121117 goto err_reg_ctl;
121118 net->ipv4.forw_hdr = forw_hdr;
121119 @@ -2334,8 +2339,7 @@ err_reg_ctl:
121120 err_reg_dflt:
121121 __devinet_sysctl_unregister(all);
121122 err_reg_all:
121123 - if (tbl != ctl_forward_entry)
121124 - kfree(tbl);
121125 + kfree(tbl);
121126 err_alloc_ctl:
121127 #endif
121128 if (dflt != &ipv4_devconf_dflt)
121129 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
121130 index 457b2cd..4eb1f8c 100644
121131 --- a/net/ipv4/fib_frontend.c
121132 +++ b/net/ipv4/fib_frontend.c
121133 @@ -1131,12 +1131,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
121134 #ifdef CONFIG_IP_ROUTE_MULTIPATH
121135 fib_sync_up(dev, RTNH_F_DEAD);
121136 #endif
121137 - atomic_inc(&net->ipv4.dev_addr_genid);
121138 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
121139 rt_cache_flush(dev_net(dev));
121140 break;
121141 case NETDEV_DOWN:
121142 fib_del_ifaddr(ifa, NULL);
121143 - atomic_inc(&net->ipv4.dev_addr_genid);
121144 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
121145 if (!ifa->ifa_dev->ifa_list) {
121146 /* Last address was deleted from this interface.
121147 * Disable IP.
121148 @@ -1175,7 +1175,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
121149 #ifdef CONFIG_IP_ROUTE_MULTIPATH
121150 fib_sync_up(dev, RTNH_F_DEAD);
121151 #endif
121152 - atomic_inc(&net->ipv4.dev_addr_genid);
121153 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
121154 rt_cache_flush(net);
121155 break;
121156 case NETDEV_DOWN:
121157 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
121158 index ef5892f..b863b59 100644
121159 --- a/net/ipv4/fib_semantics.c
121160 +++ b/net/ipv4/fib_semantics.c
121161 @@ -854,7 +854,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
121162 nh->nh_saddr = inet_select_addr(nh->nh_dev,
121163 nh->nh_gw,
121164 nh->nh_parent->fib_scope);
121165 - nh->nh_saddr_genid = atomic_read(&net->ipv4.dev_addr_genid);
121166 + nh->nh_saddr_genid = atomic_read_unchecked(&net->ipv4.dev_addr_genid);
121167
121168 return nh->nh_saddr;
121169 }
121170 diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
121171 index 61b45a1..2970363 100644
121172 --- a/net/ipv4/inet_connection_sock.c
121173 +++ b/net/ipv4/inet_connection_sock.c
121174 @@ -729,8 +729,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
121175 newsk->sk_write_space = sk_stream_write_space;
121176
121177 newsk->sk_mark = inet_rsk(req)->ir_mark;
121178 - atomic64_set(&newsk->sk_cookie,
121179 - atomic64_read(&inet_rsk(req)->ir_cookie));
121180 + atomic64_set_unchecked(&newsk->sk_cookie,
121181 + atomic64_read_unchecked(&inet_rsk(req)->ir_cookie));
121182
121183 newicsk->icsk_retransmits = 0;
121184 newicsk->icsk_backoff = 0;
121185 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
121186 index 8912019..8950e24 100644
121187 --- a/net/ipv4/inet_hashtables.c
121188 +++ b/net/ipv4/inet_hashtables.c
121189 @@ -19,6 +19,7 @@
121190 #include <linux/slab.h>
121191 #include <linux/wait.h>
121192 #include <linux/vmalloc.h>
121193 +#include <linux/security.h>
121194
121195 #include <net/inet_connection_sock.h>
121196 #include <net/inet_hashtables.h>
121197 @@ -54,6 +55,8 @@ u32 sk_ehashfn(const struct sock *sk)
121198 sk->sk_daddr, sk->sk_dport);
121199 }
121200
121201 +extern void gr_update_task_in_ip_table(const struct inet_sock *inet);
121202 +
121203 /*
121204 * Allocate and initialize a new local port bind bucket.
121205 * The bindhash mutex for snum's hash chain must be held here.
121206 @@ -559,6 +562,7 @@ ok:
121207
121208 if (tw)
121209 inet_twsk_deschedule_put(tw);
121210 + gr_update_task_in_ip_table(inet_sk(sk));
121211
121212 ret = 0;
121213 goto out;
121214 diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
121215 index c67f9bd..7a108d1 100644
121216 --- a/net/ipv4/inet_timewait_sock.c
121217 +++ b/net/ipv4/inet_timewait_sock.c
121218 @@ -186,7 +186,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
121219 tw->tw_ipv6only = 0;
121220 tw->tw_transparent = inet->transparent;
121221 tw->tw_prot = sk->sk_prot_creator;
121222 - atomic64_set(&tw->tw_cookie, atomic64_read(&sk->sk_cookie));
121223 + atomic64_set_unchecked(&tw->tw_cookie, atomic64_read_unchecked(&sk->sk_cookie));
121224 twsk_net_set(tw, sock_net(sk));
121225 setup_timer(&tw->tw_timer, tw_timer_handler, (unsigned long)tw);
121226 /*
121227 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
121228 index 86fa458..5f601b9 100644
121229 --- a/net/ipv4/inetpeer.c
121230 +++ b/net/ipv4/inetpeer.c
121231 @@ -445,7 +445,7 @@ relookup:
121232 if (p) {
121233 p->daddr = *daddr;
121234 atomic_set(&p->refcnt, 1);
121235 - atomic_set(&p->rid, 0);
121236 + atomic_set_unchecked(&p->rid, 0);
121237 p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW;
121238 p->rate_tokens = 0;
121239 /* 60*HZ is arbitrary, but chosen enough high so that the first
121240 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
121241 index fa7f153..1443d28 100644
121242 --- a/net/ipv4/ip_fragment.c
121243 +++ b/net/ipv4/ip_fragment.c
121244 @@ -284,7 +284,7 @@ static int ip_frag_too_far(struct ipq *qp)
121245 return 0;
121246
121247 start = qp->rid;
121248 - end = atomic_inc_return(&peer->rid);
121249 + end = atomic_inc_return_unchecked(&peer->rid);
121250 qp->rid = end;
121251
121252 rc = qp->q.fragments && (end - start) > max;
121253 @@ -775,12 +775,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
121254
121255 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
121256 {
121257 - struct ctl_table *table;
121258 + ctl_table_no_const *table = NULL;
121259 struct ctl_table_header *hdr;
121260
121261 - table = ip4_frags_ns_ctl_table;
121262 if (!net_eq(net, &init_net)) {
121263 - table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
121264 + table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
121265 if (!table)
121266 goto err_alloc;
121267
121268 @@ -794,9 +793,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
121269 /* Don't export sysctls to unprivileged users */
121270 if (net->user_ns != &init_user_ns)
121271 table[0].procname = NULL;
121272 - }
121273 + hdr = register_net_sysctl(net, "net/ipv4", table);
121274 + } else
121275 + hdr = register_net_sysctl(net, "net/ipv4", ip4_frags_ns_ctl_table);
121276
121277 - hdr = register_net_sysctl(net, "net/ipv4", table);
121278 if (!hdr)
121279 goto err_reg;
121280
121281 @@ -804,8 +804,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
121282 return 0;
121283
121284 err_reg:
121285 - if (!net_eq(net, &init_net))
121286 - kfree(table);
121287 + kfree(table);
121288 err_alloc:
121289 return -ENOMEM;
121290 }
121291 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
121292 index 6145214..77ebc63 100644
121293 --- a/net/ipv4/ip_gre.c
121294 +++ b/net/ipv4/ip_gre.c
121295 @@ -117,7 +117,7 @@ static bool log_ecn_error = true;
121296 module_param(log_ecn_error, bool, 0644);
121297 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
121298
121299 -static struct rtnl_link_ops ipgre_link_ops __read_mostly;
121300 +static struct rtnl_link_ops ipgre_link_ops;
121301 static int ipgre_tunnel_init(struct net_device *dev);
121302
121303 static int ipgre_net_id __read_mostly;
121304 @@ -1190,7 +1190,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
121305 [IFLA_GRE_COLLECT_METADATA] = { .type = NLA_FLAG },
121306 };
121307
121308 -static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
121309 +static struct rtnl_link_ops ipgre_link_ops = {
121310 .kind = "gre",
121311 .maxtype = IFLA_GRE_MAX,
121312 .policy = ipgre_policy,
121313 @@ -1205,7 +1205,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
121314 .get_link_net = ip_tunnel_get_link_net,
121315 };
121316
121317 -static struct rtnl_link_ops ipgre_tap_ops __read_mostly = {
121318 +static struct rtnl_link_ops ipgre_tap_ops = {
121319 .kind = "gretap",
121320 .maxtype = IFLA_GRE_MAX,
121321 .policy = ipgre_policy,
121322 diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
121323 index f4fc8a7..d78e434 100644
121324 --- a/net/ipv4/ip_input.c
121325 +++ b/net/ipv4/ip_input.c
121326 @@ -148,6 +148,10 @@
121327 #include <linux/netlink.h>
121328 #include <net/dst_metadata.h>
121329
121330 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121331 +extern int grsec_enable_blackhole;
121332 +#endif
121333 +
121334 /*
121335 * Process Router Attention IP option (RFC 2113)
121336 */
121337 @@ -224,6 +228,9 @@ static int ip_local_deliver_finish(struct sock *sk, struct sk_buff *skb)
121338 if (!raw) {
121339 if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
121340 IP_INC_STATS_BH(net, IPSTATS_MIB_INUNKNOWNPROTOS);
121341 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121342 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
121343 +#endif
121344 icmp_send(skb, ICMP_DEST_UNREACH,
121345 ICMP_PROT_UNREACH, 0);
121346 }
121347 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
121348 index c3c359a..504edc6 100644
121349 --- a/net/ipv4/ip_sockglue.c
121350 +++ b/net/ipv4/ip_sockglue.c
121351 @@ -1295,7 +1295,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
121352 len = min_t(unsigned int, len, opt->optlen);
121353 if (put_user(len, optlen))
121354 return -EFAULT;
121355 - if (copy_to_user(optval, opt->__data, len))
121356 + if ((len > (sizeof(optbuf) - sizeof(struct ip_options))) ||
121357 + copy_to_user(optval, opt->__data, len))
121358 return -EFAULT;
121359 return 0;
121360 }
121361 @@ -1432,7 +1433,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
121362 if (sk->sk_type != SOCK_STREAM)
121363 return -ENOPROTOOPT;
121364
121365 - msg.msg_control = (__force void *) optval;
121366 + msg.msg_control = (__force_kernel void *) optval;
121367 msg.msg_controllen = len;
121368 msg.msg_flags = flags;
121369
121370 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
121371 index 0c15208..a3a76c5 100644
121372 --- a/net/ipv4/ip_vti.c
121373 +++ b/net/ipv4/ip_vti.c
121374 @@ -45,7 +45,7 @@
121375 #include <net/net_namespace.h>
121376 #include <net/netns/generic.h>
121377
121378 -static struct rtnl_link_ops vti_link_ops __read_mostly;
121379 +static struct rtnl_link_ops vti_link_ops;
121380
121381 static int vti_net_id __read_mostly;
121382 static int vti_tunnel_init(struct net_device *dev);
121383 @@ -525,7 +525,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
121384 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
121385 };
121386
121387 -static struct rtnl_link_ops vti_link_ops __read_mostly = {
121388 +static struct rtnl_link_ops vti_link_ops = {
121389 .kind = "vti",
121390 .maxtype = IFLA_VTI_MAX,
121391 .policy = vti_policy,
121392 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
121393 index ed4ef09..2d12fb2 100644
121394 --- a/net/ipv4/ipconfig.c
121395 +++ b/net/ipv4/ipconfig.c
121396 @@ -333,7 +333,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
121397
121398 mm_segment_t oldfs = get_fs();
121399 set_fs(get_ds());
121400 - res = devinet_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
121401 + res = devinet_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
121402 set_fs(oldfs);
121403 return res;
121404 }
121405 @@ -344,7 +344,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
121406
121407 mm_segment_t oldfs = get_fs();
121408 set_fs(get_ds());
121409 - res = dev_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
121410 + res = dev_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
121411 set_fs(oldfs);
121412 return res;
121413 }
121414 @@ -355,7 +355,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
121415
121416 mm_segment_t oldfs = get_fs();
121417 set_fs(get_ds());
121418 - res = ip_rt_ioctl(&init_net, cmd, (void __user *) arg);
121419 + res = ip_rt_ioctl(&init_net, cmd, (void __force_user *) arg);
121420 set_fs(oldfs);
121421 return res;
121422 }
121423 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
121424 index f34c31d..0dabe30 100644
121425 --- a/net/ipv4/ipip.c
121426 +++ b/net/ipv4/ipip.c
121427 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
121428 static int ipip_net_id __read_mostly;
121429
121430 static int ipip_tunnel_init(struct net_device *dev);
121431 -static struct rtnl_link_ops ipip_link_ops __read_mostly;
121432 +static struct rtnl_link_ops ipip_link_ops;
121433
121434 static int ipip_err(struct sk_buff *skb, u32 info)
121435 {
121436 @@ -488,7 +488,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
121437 [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
121438 };
121439
121440 -static struct rtnl_link_ops ipip_link_ops __read_mostly = {
121441 +static struct rtnl_link_ops ipip_link_ops = {
121442 .kind = "ipip",
121443 .maxtype = IFLA_IPTUN_MAX,
121444 .policy = ipip_policy,
121445 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
121446 index 8f87fc3..6c5f486 100644
121447 --- a/net/ipv4/netfilter/arp_tables.c
121448 +++ b/net/ipv4/netfilter/arp_tables.c
121449 @@ -891,14 +891,14 @@ static int compat_table_info(const struct xt_table_info *info,
121450 #endif
121451
121452 static int get_info(struct net *net, void __user *user,
121453 - const int *len, int compat)
121454 + int len, int compat)
121455 {
121456 char name[XT_TABLE_MAXNAMELEN];
121457 struct xt_table *t;
121458 int ret;
121459
121460 - if (*len != sizeof(struct arpt_getinfo)) {
121461 - duprintf("length %u != %Zu\n", *len,
121462 + if (len != sizeof(struct arpt_getinfo)) {
121463 + duprintf("length %u != %Zu\n", len,
121464 sizeof(struct arpt_getinfo));
121465 return -EINVAL;
121466 }
121467 @@ -935,7 +935,7 @@ static int get_info(struct net *net, void __user *user,
121468 info.size = private->size;
121469 strcpy(info.name, name);
121470
121471 - if (copy_to_user(user, &info, *len) != 0)
121472 + if (copy_to_user(user, &info, len) != 0)
121473 ret = -EFAULT;
121474 else
121475 ret = 0;
121476 @@ -1700,7 +1700,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
121477
121478 switch (cmd) {
121479 case ARPT_SO_GET_INFO:
121480 - ret = get_info(sock_net(sk), user, len, 1);
121481 + ret = get_info(sock_net(sk), user, *len, 1);
121482 break;
121483 case ARPT_SO_GET_ENTRIES:
121484 ret = compat_get_entries(sock_net(sk), user, len);
121485 @@ -1745,7 +1745,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
121486
121487 switch (cmd) {
121488 case ARPT_SO_GET_INFO:
121489 - ret = get_info(sock_net(sk), user, len, 0);
121490 + ret = get_info(sock_net(sk), user, *len, 0);
121491 break;
121492
121493 case ARPT_SO_GET_ENTRIES:
121494 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
121495 index b0a86e7..9ddf3dc 100644
121496 --- a/net/ipv4/netfilter/ip_tables.c
121497 +++ b/net/ipv4/netfilter/ip_tables.c
121498 @@ -1077,14 +1077,14 @@ static int compat_table_info(const struct xt_table_info *info,
121499 #endif
121500
121501 static int get_info(struct net *net, void __user *user,
121502 - const int *len, int compat)
121503 + int len, int compat)
121504 {
121505 char name[XT_TABLE_MAXNAMELEN];
121506 struct xt_table *t;
121507 int ret;
121508
121509 - if (*len != sizeof(struct ipt_getinfo)) {
121510 - duprintf("length %u != %zu\n", *len,
121511 + if (len != sizeof(struct ipt_getinfo)) {
121512 + duprintf("length %u != %zu\n", len,
121513 sizeof(struct ipt_getinfo));
121514 return -EINVAL;
121515 }
121516 @@ -1121,7 +1121,7 @@ static int get_info(struct net *net, void __user *user,
121517 info.size = private->size;
121518 strcpy(info.name, name);
121519
121520 - if (copy_to_user(user, &info, *len) != 0)
121521 + if (copy_to_user(user, &info, len) != 0)
121522 ret = -EFAULT;
121523 else
121524 ret = 0;
121525 @@ -1972,7 +1972,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121526
121527 switch (cmd) {
121528 case IPT_SO_GET_INFO:
121529 - ret = get_info(sock_net(sk), user, len, 1);
121530 + ret = get_info(sock_net(sk), user, *len, 1);
121531 break;
121532 case IPT_SO_GET_ENTRIES:
121533 ret = compat_get_entries(sock_net(sk), user, len);
121534 @@ -2019,7 +2019,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121535
121536 switch (cmd) {
121537 case IPT_SO_GET_INFO:
121538 - ret = get_info(sock_net(sk), user, len, 0);
121539 + ret = get_info(sock_net(sk), user, *len, 0);
121540 break;
121541
121542 case IPT_SO_GET_ENTRIES:
121543 diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
121544 index 45cb16a..cef4ecd 100644
121545 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
121546 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
121547 @@ -730,7 +730,7 @@ static int clusterip_net_init(struct net *net)
121548 spin_lock_init(&cn->lock);
121549
121550 #ifdef CONFIG_PROC_FS
121551 - cn->procdir = proc_mkdir("ipt_CLUSTERIP", net->proc_net);
121552 + cn->procdir = proc_mkdir_restrict("ipt_CLUSTERIP", net->proc_net);
121553 if (!cn->procdir) {
121554 pr_err("Unable to proc dir entry\n");
121555 return -ENOMEM;
121556 diff --git a/net/ipv4/netfilter/nf_nat_pptp.c b/net/ipv4/netfilter/nf_nat_pptp.c
121557 index 657d230..b3ca21b 100644
121558 --- a/net/ipv4/netfilter/nf_nat_pptp.c
121559 +++ b/net/ipv4/netfilter/nf_nat_pptp.c
121560 @@ -45,7 +45,7 @@ static void pptp_nat_expected(struct nf_conn *ct,
121561 struct net *net = nf_ct_net(ct);
121562 const struct nf_conn *master = ct->master;
121563 struct nf_conntrack_expect *other_exp;
121564 - struct nf_conntrack_tuple t;
121565 + struct nf_conntrack_tuple t = {};
121566 const struct nf_ct_pptp_master *ct_pptp_info;
121567 const struct nf_nat_pptp *nat_pptp_info;
121568 struct nf_nat_range range;
121569 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
121570 index e89094a..bd431045 100644
121571 --- a/net/ipv4/ping.c
121572 +++ b/net/ipv4/ping.c
121573 @@ -59,7 +59,7 @@ struct ping_table {
121574 };
121575
121576 static struct ping_table ping_table;
121577 -struct pingv6_ops pingv6_ops;
121578 +struct pingv6_ops *pingv6_ops;
121579 EXPORT_SYMBOL_GPL(pingv6_ops);
121580
121581 static u16 ping_port_rover;
121582 @@ -359,7 +359,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
121583 return -ENODEV;
121584 }
121585 }
121586 - has_addr = pingv6_ops.ipv6_chk_addr(net, &addr->sin6_addr, dev,
121587 + has_addr = pingv6_ops->ipv6_chk_addr(net, &addr->sin6_addr, dev,
121588 scoped);
121589 rcu_read_unlock();
121590
121591 @@ -568,7 +568,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
121592 }
121593 #if IS_ENABLED(CONFIG_IPV6)
121594 } else if (skb->protocol == htons(ETH_P_IPV6)) {
121595 - harderr = pingv6_ops.icmpv6_err_convert(type, code, &err);
121596 + harderr = pingv6_ops->icmpv6_err_convert(type, code, &err);
121597 #endif
121598 }
121599
121600 @@ -586,7 +586,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
121601 info, (u8 *)icmph);
121602 #if IS_ENABLED(CONFIG_IPV6)
121603 } else if (family == AF_INET6) {
121604 - pingv6_ops.ipv6_icmp_error(sk, skb, err, 0,
121605 + pingv6_ops->ipv6_icmp_error(sk, skb, err, 0,
121606 info, (u8 *)icmph);
121607 #endif
121608 }
121609 @@ -919,10 +919,10 @@ int ping_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
121610 }
121611
121612 if (inet6_sk(sk)->rxopt.all)
121613 - pingv6_ops.ip6_datagram_recv_common_ctl(sk, msg, skb);
121614 + pingv6_ops->ip6_datagram_recv_common_ctl(sk, msg, skb);
121615 if (skb->protocol == htons(ETH_P_IPV6) &&
121616 inet6_sk(sk)->rxopt.all)
121617 - pingv6_ops.ip6_datagram_recv_specific_ctl(sk, msg, skb);
121618 + pingv6_ops->ip6_datagram_recv_specific_ctl(sk, msg, skb);
121619 else if (skb->protocol == htons(ETH_P_IP) && isk->cmsg_flags)
121620 ip_cmsg_recv(msg, skb);
121621 #endif
121622 @@ -1117,7 +1117,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
121623 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
121624 0, sock_i_ino(sp),
121625 atomic_read(&sp->sk_refcnt), sp,
121626 - atomic_read(&sp->sk_drops));
121627 + atomic_read_unchecked(&sp->sk_drops));
121628 }
121629
121630 static int ping_v4_seq_show(struct seq_file *seq, void *v)
121631 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
121632 index 561cd4b..a32a155 100644
121633 --- a/net/ipv4/raw.c
121634 +++ b/net/ipv4/raw.c
121635 @@ -323,7 +323,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
121636 int raw_rcv(struct sock *sk, struct sk_buff *skb)
121637 {
121638 if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
121639 - atomic_inc(&sk->sk_drops);
121640 + atomic_inc_unchecked(&sk->sk_drops);
121641 kfree_skb(skb);
121642 return NET_RX_DROP;
121643 }
121644 @@ -771,16 +771,20 @@ static int raw_init(struct sock *sk)
121645
121646 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
121647 {
121648 + struct icmp_filter filter;
121649 +
121650 if (optlen > sizeof(struct icmp_filter))
121651 optlen = sizeof(struct icmp_filter);
121652 - if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
121653 + if (copy_from_user(&filter, optval, optlen))
121654 return -EFAULT;
121655 + raw_sk(sk)->filter = filter;
121656 return 0;
121657 }
121658
121659 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
121660 {
121661 int len, ret = -EFAULT;
121662 + struct icmp_filter filter;
121663
121664 if (get_user(len, optlen))
121665 goto out;
121666 @@ -790,8 +794,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
121667 if (len > sizeof(struct icmp_filter))
121668 len = sizeof(struct icmp_filter);
121669 ret = -EFAULT;
121670 - if (put_user(len, optlen) ||
121671 - copy_to_user(optval, &raw_sk(sk)->filter, len))
121672 + filter = raw_sk(sk)->filter;
121673 + if (put_user(len, optlen) || len > sizeof filter || copy_to_user(optval, &filter, len))
121674 goto out;
121675 ret = 0;
121676 out: return ret;
121677 @@ -1020,7 +1024,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
121678 0, 0L, 0,
121679 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
121680 0, sock_i_ino(sp),
121681 - atomic_read(&sp->sk_refcnt), sp, atomic_read(&sp->sk_drops));
121682 + atomic_read(&sp->sk_refcnt), sp, atomic_read_unchecked(&sp->sk_drops));
121683 }
121684
121685 static int raw_seq_show(struct seq_file *seq, void *v)
121686 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
121687 index c81deb8..38d5520 100644
121688 --- a/net/ipv4/route.c
121689 +++ b/net/ipv4/route.c
121690 @@ -231,7 +231,7 @@ static const struct seq_operations rt_cache_seq_ops = {
121691
121692 static int rt_cache_seq_open(struct inode *inode, struct file *file)
121693 {
121694 - return seq_open(file, &rt_cache_seq_ops);
121695 + return seq_open_restrict(file, &rt_cache_seq_ops);
121696 }
121697
121698 static const struct file_operations rt_cache_seq_fops = {
121699 @@ -322,7 +322,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
121700
121701 static int rt_cpu_seq_open(struct inode *inode, struct file *file)
121702 {
121703 - return seq_open(file, &rt_cpu_seq_ops);
121704 + return seq_open_restrict(file, &rt_cpu_seq_ops);
121705 }
121706
121707 static const struct file_operations rt_cpu_seq_fops = {
121708 @@ -360,7 +360,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
121709
121710 static int rt_acct_proc_open(struct inode *inode, struct file *file)
121711 {
121712 - return single_open(file, rt_acct_proc_show, NULL);
121713 + return single_open_restrict(file, rt_acct_proc_show, NULL);
121714 }
121715
121716 static const struct file_operations rt_acct_proc_fops = {
121717 @@ -462,7 +462,7 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
121718
121719 #define IP_IDENTS_SZ 2048u
121720
121721 -static atomic_t *ip_idents __read_mostly;
121722 +static atomic_unchecked_t ip_idents[IP_IDENTS_SZ] __read_mostly;
121723 static u32 *ip_tstamps __read_mostly;
121724
121725 /* In order to protect privacy, we add a perturbation to identifiers
121726 @@ -472,7 +472,7 @@ static u32 *ip_tstamps __read_mostly;
121727 u32 ip_idents_reserve(u32 hash, int segs)
121728 {
121729 u32 *p_tstamp = ip_tstamps + hash % IP_IDENTS_SZ;
121730 - atomic_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
121731 + atomic_unchecked_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
121732 u32 old = ACCESS_ONCE(*p_tstamp);
121733 u32 now = (u32)jiffies;
121734 u32 delta = 0;
121735 @@ -480,7 +480,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
121736 if (old != now && cmpxchg(p_tstamp, old, now) == old)
121737 delta = prandom_u32_max(now - old);
121738
121739 - return atomic_add_return(segs + delta, p_id) - segs;
121740 + return atomic_add_return_unchecked(segs + delta, p_id) - segs;
121741 }
121742 EXPORT_SYMBOL(ip_idents_reserve);
121743
121744 @@ -2672,34 +2672,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
121745 .maxlen = sizeof(int),
121746 .mode = 0200,
121747 .proc_handler = ipv4_sysctl_rtcache_flush,
121748 + .extra1 = &init_net,
121749 },
121750 { },
121751 };
121752
121753 static __net_init int sysctl_route_net_init(struct net *net)
121754 {
121755 - struct ctl_table *tbl;
121756 + ctl_table_no_const *tbl = NULL;
121757
121758 - tbl = ipv4_route_flush_table;
121759 if (!net_eq(net, &init_net)) {
121760 - tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL);
121761 + tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL);
121762 if (!tbl)
121763 goto err_dup;
121764
121765 /* Don't export sysctls to unprivileged users */
121766 if (net->user_ns != &init_user_ns)
121767 tbl[0].procname = NULL;
121768 - }
121769 - tbl[0].extra1 = net;
121770 + tbl[0].extra1 = net;
121771 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
121772 + } else
121773 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", ipv4_route_flush_table);
121774
121775 - net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
121776 if (!net->ipv4.route_hdr)
121777 goto err_reg;
121778 return 0;
121779
121780 err_reg:
121781 - if (tbl != ipv4_route_flush_table)
121782 - kfree(tbl);
121783 + kfree(tbl);
121784 err_dup:
121785 return -ENOMEM;
121786 }
121787 @@ -2722,8 +2722,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
121788
121789 static __net_init int rt_genid_init(struct net *net)
121790 {
121791 - atomic_set(&net->ipv4.rt_genid, 0);
121792 - atomic_set(&net->fnhe_genid, 0);
121793 + atomic_set_unchecked(&net->ipv4.rt_genid, 0);
121794 + atomic_set_unchecked(&net->fnhe_genid, 0);
121795 get_random_bytes(&net->ipv4.dev_addr_genid,
121796 sizeof(net->ipv4.dev_addr_genid));
121797 return 0;
121798 @@ -2767,11 +2767,7 @@ int __init ip_rt_init(void)
121799 int rc = 0;
121800 int cpu;
121801
121802 - ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL);
121803 - if (!ip_idents)
121804 - panic("IP: failed to allocate ip_idents\n");
121805 -
121806 - prandom_bytes(ip_idents, IP_IDENTS_SZ * sizeof(*ip_idents));
121807 + prandom_bytes(ip_idents, sizeof(ip_idents));
121808
121809 ip_tstamps = kcalloc(IP_IDENTS_SZ, sizeof(*ip_tstamps), GFP_KERNEL);
121810 if (!ip_tstamps)
121811 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
121812 index ade7737..70ed9be 100644
121813 --- a/net/ipv4/sysctl_net_ipv4.c
121814 +++ b/net/ipv4/sysctl_net_ipv4.c
121815 @@ -67,7 +67,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
121816 container_of(table->data, struct net, ipv4.ip_local_ports.range);
121817 int ret;
121818 int range[2];
121819 - struct ctl_table tmp = {
121820 + ctl_table_no_const tmp = {
121821 .data = &range,
121822 .maxlen = sizeof(range),
121823 .mode = table->mode,
121824 @@ -125,7 +125,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
121825 int ret;
121826 gid_t urange[2];
121827 kgid_t low, high;
121828 - struct ctl_table tmp = {
121829 + ctl_table_no_const tmp = {
121830 .data = &urange,
121831 .maxlen = sizeof(urange),
121832 .mode = table->mode,
121833 @@ -156,7 +156,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
121834 void __user *buffer, size_t *lenp, loff_t *ppos)
121835 {
121836 char val[TCP_CA_NAME_MAX];
121837 - struct ctl_table tbl = {
121838 + ctl_table_no_const tbl = {
121839 .data = val,
121840 .maxlen = TCP_CA_NAME_MAX,
121841 };
121842 @@ -175,7 +175,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
121843 void __user *buffer, size_t *lenp,
121844 loff_t *ppos)
121845 {
121846 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX, };
121847 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX, };
121848 int ret;
121849
121850 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
121851 @@ -192,7 +192,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
121852 void __user *buffer, size_t *lenp,
121853 loff_t *ppos)
121854 {
121855 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX };
121856 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX };
121857 int ret;
121858
121859 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
121860 @@ -211,7 +211,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
121861 void __user *buffer, size_t *lenp,
121862 loff_t *ppos)
121863 {
121864 - struct ctl_table tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
121865 + ctl_table_no_const tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
121866 struct tcp_fastopen_context *ctxt;
121867 int ret;
121868 u32 user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
121869 @@ -941,13 +941,12 @@ static struct ctl_table ipv4_net_table[] = {
121870
121871 static __net_init int ipv4_sysctl_init_net(struct net *net)
121872 {
121873 - struct ctl_table *table;
121874 + ctl_table_no_const *table = NULL;
121875
121876 - table = ipv4_net_table;
121877 if (!net_eq(net, &init_net)) {
121878 int i;
121879
121880 - table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
121881 + table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
121882 if (!table)
121883 goto err_alloc;
121884
121885 @@ -956,7 +955,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
121886 table[i].data += (void *)net - (void *)&init_net;
121887 }
121888
121889 - net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
121890 + if (!net_eq(net, &init_net))
121891 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
121892 + else
121893 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", ipv4_net_table);
121894 if (!net->ipv4.ipv4_hdr)
121895 goto err_reg;
121896
121897 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
121898 index 0a2b61d..563a1d2 100644
121899 --- a/net/ipv4/tcp_input.c
121900 +++ b/net/ipv4/tcp_input.c
121901 @@ -786,7 +786,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
121902 * without any lock. We want to make sure compiler wont store
121903 * intermediate values in this location.
121904 */
121905 - ACCESS_ONCE(sk->sk_pacing_rate) = min_t(u64, rate,
121906 + ACCESS_ONCE_RW(sk->sk_pacing_rate) = min_t(u64, rate,
121907 sk->sk_max_pacing_rate);
121908 }
121909
121910 @@ -4647,7 +4647,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
121911 * simplifies code)
121912 */
121913 static void
121914 -tcp_collapse(struct sock *sk, struct sk_buff_head *list,
121915 +__intentional_overflow(5,6) tcp_collapse(struct sock *sk, struct sk_buff_head *list,
121916 struct sk_buff *head, struct sk_buff *tail,
121917 u32 start, u32 end)
121918 {
121919 @@ -5642,6 +5642,7 @@ discard:
121920 tcp_paws_reject(&tp->rx_opt, 0))
121921 goto discard_and_undo;
121922
121923 +#ifndef CONFIG_GRKERNSEC_NO_SIMULT_CONNECT
121924 if (th->syn) {
121925 /* We see SYN without ACK. It is attempt of
121926 * simultaneous connect with crossed SYNs.
121927 @@ -5693,6 +5694,7 @@ discard:
121928 goto discard;
121929 #endif
121930 }
121931 +#endif
121932 /* "fifth, if neither of the SYN or RST bits is set then
121933 * drop the segment and return."
121934 */
121935 @@ -5739,7 +5741,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
121936 goto discard;
121937
121938 if (th->syn) {
121939 - if (th->fin)
121940 + if (th->fin || th->urg || th->psh)
121941 goto discard;
121942 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
121943 return 1;
121944 @@ -6069,7 +6071,7 @@ struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops,
121945
121946 kmemcheck_annotate_bitfield(ireq, flags);
121947 ireq->opt = NULL;
121948 - atomic64_set(&ireq->ir_cookie, 0);
121949 + atomic64_set_unchecked(&ireq->ir_cookie, 0);
121950 ireq->ireq_state = TCP_NEW_SYN_RECV;
121951 write_pnet(&ireq->ireq_net, sock_net(sk_listener));
121952 ireq->ireq_family = sk_listener->sk_family;
121953 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
121954 index a7739c8..5bbbf64 100644
121955 --- a/net/ipv4/tcp_ipv4.c
121956 +++ b/net/ipv4/tcp_ipv4.c
121957 @@ -89,6 +89,10 @@ int sysctl_tcp_tw_reuse __read_mostly;
121958 int sysctl_tcp_low_latency __read_mostly;
121959 EXPORT_SYMBOL(sysctl_tcp_low_latency);
121960
121961 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121962 +extern int grsec_enable_blackhole;
121963 +#endif
121964 +
121965 #ifdef CONFIG_TCP_MD5SIG
121966 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
121967 __be32 daddr, __be32 saddr, const struct tcphdr *th);
121968 @@ -1428,6 +1432,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
121969 return 0;
121970
121971 reset:
121972 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121973 + if (!grsec_enable_blackhole)
121974 +#endif
121975 tcp_v4_send_reset(rsk, skb);
121976 discard:
121977 kfree_skb(skb);
121978 @@ -1509,7 +1516,7 @@ bool tcp_prequeue(struct sock *sk, struct sk_buff *skb)
121979 if (likely(sk->sk_rx_dst))
121980 skb_dst_drop(skb);
121981 else
121982 - skb_dst_force(skb);
121983 + skb_dst_force_safe(skb);
121984
121985 __skb_queue_tail(&tp->ucopy.prequeue, skb);
121986 tp->ucopy.memory += skb->truesize;
121987 @@ -1592,12 +1599,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
121988 TCP_SKB_CB(skb)->sacked = 0;
121989
121990 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
121991 - if (!sk)
121992 + if (!sk) {
121993 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121994 + ret = 1;
121995 +#endif
121996 goto no_tcp_socket;
121997 -
121998 + }
121999 process:
122000 - if (sk->sk_state == TCP_TIME_WAIT)
122001 + if (sk->sk_state == TCP_TIME_WAIT) {
122002 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122003 + ret = 2;
122004 +#endif
122005 goto do_time_wait;
122006 + }
122007
122008 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
122009 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
122010 @@ -1654,6 +1668,10 @@ csum_error:
122011 bad_packet:
122012 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
122013 } else {
122014 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122015 + if (!grsec_enable_blackhole || (ret == 1 &&
122016 + (skb->dev->flags & IFF_LOOPBACK)))
122017 +#endif
122018 tcp_v4_send_reset(NULL, skb);
122019 }
122020
122021 @@ -1710,8 +1728,7 @@ void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
122022 {
122023 struct dst_entry *dst = skb_dst(skb);
122024
122025 - if (dst) {
122026 - dst_hold(dst);
122027 + if (dst && dst_hold_safe(dst)) {
122028 sk->sk_rx_dst = dst;
122029 inet_sk(sk)->rx_dst_ifindex = skb->skb_iif;
122030 }
122031 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
122032 index def7659..b710969 100644
122033 --- a/net/ipv4/tcp_minisocks.c
122034 +++ b/net/ipv4/tcp_minisocks.c
122035 @@ -27,6 +27,10 @@
122036 #include <net/inet_common.h>
122037 #include <net/xfrm.h>
122038
122039 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122040 +extern int grsec_enable_blackhole;
122041 +#endif
122042 +
122043 int sysctl_tcp_syncookies __read_mostly = 1;
122044 EXPORT_SYMBOL(sysctl_tcp_syncookies);
122045
122046 @@ -779,7 +783,10 @@ embryonic_reset:
122047 * avoid becoming vulnerable to outside attack aiming at
122048 * resetting legit local connections.
122049 */
122050 - req->rsk_ops->send_reset(sk, skb);
122051 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122052 + if (!grsec_enable_blackhole)
122053 +#endif
122054 + req->rsk_ops->send_reset(sk, skb);
122055 } else if (fastopen) { /* received a valid RST pkt */
122056 reqsk_fastopen_remove(sk, req, true);
122057 tcp_reset(sk);
122058 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
122059 index ebf5ff5..4d1ff32 100644
122060 --- a/net/ipv4/tcp_probe.c
122061 +++ b/net/ipv4/tcp_probe.c
122062 @@ -236,7 +236,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
122063 if (cnt + width >= len)
122064 break;
122065
122066 - if (copy_to_user(buf + cnt, tbuf, width))
122067 + if (width > sizeof tbuf || copy_to_user(buf + cnt, tbuf, width))
122068 return -EFAULT;
122069 cnt += width;
122070 }
122071 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
122072 index 04f0a05..8a958ff 100644
122073 --- a/net/ipv4/tcp_timer.c
122074 +++ b/net/ipv4/tcp_timer.c
122075 @@ -22,6 +22,10 @@
122076 #include <linux/gfp.h>
122077 #include <net/tcp.h>
122078
122079 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122080 +extern int grsec_lastack_retries;
122081 +#endif
122082 +
122083 int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
122084 int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
122085 int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
122086 @@ -207,6 +211,13 @@ static int tcp_write_timeout(struct sock *sk)
122087 }
122088 }
122089
122090 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122091 + if ((sk->sk_state == TCP_LAST_ACK) &&
122092 + (grsec_lastack_retries > 0) &&
122093 + (grsec_lastack_retries < retry_until))
122094 + retry_until = grsec_lastack_retries;
122095 +#endif
122096 +
122097 if (retransmits_timed_out(sk, retry_until,
122098 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
122099 /* Has it gone just too far? */
122100 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
122101 index f7d1d5e..4a66eb9 100644
122102 --- a/net/ipv4/udp.c
122103 +++ b/net/ipv4/udp.c
122104 @@ -87,6 +87,7 @@
122105 #include <linux/types.h>
122106 #include <linux/fcntl.h>
122107 #include <linux/module.h>
122108 +#include <linux/security.h>
122109 #include <linux/socket.h>
122110 #include <linux/sockios.h>
122111 #include <linux/igmp.h>
122112 @@ -115,6 +116,10 @@
122113 #include <net/busy_poll.h>
122114 #include "udp_impl.h"
122115
122116 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122117 +extern int grsec_enable_blackhole;
122118 +#endif
122119 +
122120 struct udp_table udp_table __read_mostly;
122121 EXPORT_SYMBOL(udp_table);
122122
122123 @@ -608,6 +613,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
122124 return true;
122125 }
122126
122127 +extern int gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb);
122128 +extern int gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr);
122129 +
122130 /*
122131 * This routine is called by the ICMP module when it gets some
122132 * sort of error condition. If err < 0 then the socket should
122133 @@ -944,9 +952,18 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
122134 dport = usin->sin_port;
122135 if (dport == 0)
122136 return -EINVAL;
122137 +
122138 + err = gr_search_udp_sendmsg(sk, usin);
122139 + if (err)
122140 + return err;
122141 } else {
122142 if (sk->sk_state != TCP_ESTABLISHED)
122143 return -EDESTADDRREQ;
122144 +
122145 + err = gr_search_udp_sendmsg(sk, NULL);
122146 + if (err)
122147 + return err;
122148 +
122149 daddr = inet->inet_daddr;
122150 dport = inet->inet_dport;
122151 /* Open fast path for connected socket.
122152 @@ -1214,7 +1231,7 @@ static unsigned int first_packet_length(struct sock *sk)
122153 IS_UDPLITE(sk));
122154 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
122155 IS_UDPLITE(sk));
122156 - atomic_inc(&sk->sk_drops);
122157 + atomic_inc_unchecked(&sk->sk_drops);
122158 __skb_unlink(skb, rcvq);
122159 __skb_queue_tail(&list_kill, skb);
122160 }
122161 @@ -1294,6 +1311,10 @@ try_again:
122162 if (!skb)
122163 goto out;
122164
122165 + err = gr_search_udp_recvmsg(sk, skb);
122166 + if (err)
122167 + goto out_free;
122168 +
122169 ulen = skb->len - sizeof(struct udphdr);
122170 copied = len;
122171 if (copied > ulen)
122172 @@ -1326,7 +1347,7 @@ try_again:
122173 if (unlikely(err)) {
122174 trace_kfree_skb(skb, udp_recvmsg);
122175 if (!peeked) {
122176 - atomic_inc(&sk->sk_drops);
122177 + atomic_inc_unchecked(&sk->sk_drops);
122178 UDP_INC_STATS_USER(sock_net(sk),
122179 UDP_MIB_INERRORS, is_udplite);
122180 }
122181 @@ -1620,7 +1641,7 @@ csum_error:
122182 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
122183 drop:
122184 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
122185 - atomic_inc(&sk->sk_drops);
122186 + atomic_inc_unchecked(&sk->sk_drops);
122187 kfree_skb(skb);
122188 return -1;
122189 }
122190 @@ -1638,7 +1659,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
122191 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
122192
122193 if (!skb1) {
122194 - atomic_inc(&sk->sk_drops);
122195 + atomic_inc_unchecked(&sk->sk_drops);
122196 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
122197 IS_UDPLITE(sk));
122198 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
122199 @@ -1844,6 +1865,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
122200 goto csum_error;
122201
122202 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
122203 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122204 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
122205 +#endif
122206 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
122207
122208 /*
122209 @@ -2448,7 +2472,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
122210 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
122211 0, sock_i_ino(sp),
122212 atomic_read(&sp->sk_refcnt), sp,
122213 - atomic_read(&sp->sk_drops));
122214 + atomic_read_unchecked(&sp->sk_drops));
122215 }
122216
122217 int udp4_seq_show(struct seq_file *seq, void *v)
122218 diff --git a/net/ipv4/xfrm4_mode_transport.c b/net/ipv4/xfrm4_mode_transport.c
122219 index fd840c7..b517627 100644
122220 --- a/net/ipv4/xfrm4_mode_transport.c
122221 +++ b/net/ipv4/xfrm4_mode_transport.c
122222 @@ -18,7 +18,7 @@
122223 * The IP header will be moved forward to make space for the encapsulation
122224 * header.
122225 */
122226 -static int xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb)
122227 +static int __intentional_overflow(0) xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb)
122228 {
122229 struct iphdr *iph = ip_hdr(skb);
122230 int ihl = iph->ihl * 4;
122231 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
122232 index c10a9ee..c621a01 100644
122233 --- a/net/ipv4/xfrm4_policy.c
122234 +++ b/net/ipv4/xfrm4_policy.c
122235 @@ -192,11 +192,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
122236 fl4->flowi4_tos = iph->tos;
122237 }
122238
122239 -static inline int xfrm4_garbage_collect(struct dst_ops *ops)
122240 +static int xfrm4_garbage_collect(struct dst_ops *ops)
122241 {
122242 struct net *net = container_of(ops, struct net, xfrm.xfrm4_dst_ops);
122243
122244 - xfrm4_policy_afinfo.garbage_collect(net);
122245 + xfrm_garbage_collect_deferred(net);
122246 return (dst_entries_get_slow(ops) > ops->gc_thresh * 2);
122247 }
122248
122249 @@ -274,19 +274,18 @@ static struct ctl_table xfrm4_policy_table[] = {
122250
122251 static int __net_init xfrm4_net_init(struct net *net)
122252 {
122253 - struct ctl_table *table;
122254 + ctl_table_no_const *table = NULL;
122255 struct ctl_table_header *hdr;
122256
122257 - table = xfrm4_policy_table;
122258 if (!net_eq(net, &init_net)) {
122259 - table = kmemdup(table, sizeof(xfrm4_policy_table), GFP_KERNEL);
122260 + table = kmemdup(xfrm4_policy_table, sizeof(xfrm4_policy_table), GFP_KERNEL);
122261 if (!table)
122262 goto err_alloc;
122263
122264 table[0].data = &net->xfrm.xfrm4_dst_ops.gc_thresh;
122265 - }
122266 -
122267 - hdr = register_net_sysctl(net, "net/ipv4", table);
122268 + hdr = register_net_sysctl(net, "net/ipv4", table);
122269 + } else
122270 + hdr = register_net_sysctl(net, "net/ipv4", xfrm4_policy_table);
122271 if (!hdr)
122272 goto err_reg;
122273
122274 @@ -294,8 +293,7 @@ static int __net_init xfrm4_net_init(struct net *net)
122275 return 0;
122276
122277 err_reg:
122278 - if (!net_eq(net, &init_net))
122279 - kfree(table);
122280 + kfree(table);
122281 err_alloc:
122282 return -ENOMEM;
122283 }
122284 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
122285 index 3939dd2..7372e9a 100644
122286 --- a/net/ipv6/addrconf.c
122287 +++ b/net/ipv6/addrconf.c
122288 @@ -178,7 +178,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
122289 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
122290 .mtu6 = IPV6_MIN_MTU,
122291 .accept_ra = 1,
122292 - .accept_redirects = 1,
122293 + .accept_redirects = 0,
122294 .autoconf = 1,
122295 .force_mld_version = 0,
122296 .mldv1_unsolicited_report_interval = 10 * HZ,
122297 @@ -222,7 +222,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
122298 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
122299 .mtu6 = IPV6_MIN_MTU,
122300 .accept_ra = 1,
122301 - .accept_redirects = 1,
122302 + .accept_redirects = 0,
122303 .autoconf = 1,
122304 .force_mld_version = 0,
122305 .mldv1_unsolicited_report_interval = 10 * HZ,
122306 @@ -349,6 +349,12 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev)
122307 setup_timer(&ndev->rs_timer, addrconf_rs_timer,
122308 (unsigned long)ndev);
122309 memcpy(&ndev->cnf, dev_net(dev)->ipv6.devconf_dflt, sizeof(ndev->cnf));
122310 +
122311 + if (ndev->cnf.stable_secret.initialized)
122312 + ndev->addr_gen_mode = IN6_ADDR_GEN_MODE_STABLE_PRIVACY;
122313 + else
122314 + ndev->addr_gen_mode = IN6_ADDR_GEN_MODE_EUI64;
122315 +
122316 ndev->cnf.mtu6 = dev->mtu;
122317 ndev->cnf.sysctl = NULL;
122318 ndev->nd_parms = neigh_parms_alloc(dev, &nd_tbl);
122319 @@ -636,7 +642,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
122320 idx = 0;
122321 head = &net->dev_index_head[h];
122322 rcu_read_lock();
122323 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^
122324 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^
122325 net->dev_base_seq;
122326 hlist_for_each_entry_rcu(dev, head, index_hlist) {
122327 if (idx < s_idx)
122328 @@ -2576,7 +2582,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
122329 p.iph.ihl = 5;
122330 p.iph.protocol = IPPROTO_IPV6;
122331 p.iph.ttl = 64;
122332 - ifr.ifr_ifru.ifru_data = (__force void __user *)&p;
122333 + ifr.ifr_ifru.ifru_data = (void __force_user *)&p;
122334
122335 if (ops->ndo_do_ioctl) {
122336 mm_segment_t oldfs = get_fs();
122337 @@ -3844,16 +3850,23 @@ static const struct file_operations if6_fops = {
122338 .release = seq_release_net,
122339 };
122340
122341 +extern void register_ipv6_seq_ops_addr(struct seq_operations *addr);
122342 +extern void unregister_ipv6_seq_ops_addr(void);
122343 +
122344 static int __net_init if6_proc_net_init(struct net *net)
122345 {
122346 - if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops))
122347 + register_ipv6_seq_ops_addr(&if6_seq_ops);
122348 + if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops)) {
122349 + unregister_ipv6_seq_ops_addr();
122350 return -ENOMEM;
122351 + }
122352 return 0;
122353 }
122354
122355 static void __net_exit if6_proc_net_exit(struct net *net)
122356 {
122357 remove_proc_entry("if_inet6", net->proc_net);
122358 + unregister_ipv6_seq_ops_addr();
122359 }
122360
122361 static struct pernet_operations if6_proc_net_ops = {
122362 @@ -4472,7 +4485,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
122363 s_ip_idx = ip_idx = cb->args[2];
122364
122365 rcu_read_lock();
122366 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
122367 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
122368 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
122369 idx = 0;
122370 head = &net->dev_index_head[h];
122371 @@ -5140,7 +5153,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
122372 rt_genid_bump_ipv6(net);
122373 break;
122374 }
122375 - atomic_inc(&net->ipv6.dev_addr_genid);
122376 + atomic_inc_unchecked(&net->ipv6.dev_addr_genid);
122377 }
122378
122379 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
122380 @@ -5160,7 +5173,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
122381 int *valp = ctl->data;
122382 int val = *valp;
122383 loff_t pos = *ppos;
122384 - struct ctl_table lctl;
122385 + ctl_table_no_const lctl;
122386 int ret;
122387
122388 /*
122389 @@ -5185,7 +5198,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
122390 {
122391 struct inet6_dev *idev = ctl->extra1;
122392 int min_mtu = IPV6_MIN_MTU;
122393 - struct ctl_table lctl;
122394 + ctl_table_no_const lctl;
122395
122396 lctl = *ctl;
122397 lctl.extra1 = &min_mtu;
122398 @@ -5260,7 +5273,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
122399 int *valp = ctl->data;
122400 int val = *valp;
122401 loff_t pos = *ppos;
122402 - struct ctl_table lctl;
122403 + ctl_table_no_const lctl;
122404 int ret;
122405
122406 /*
122407 @@ -5325,7 +5338,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
122408 int err;
122409 struct in6_addr addr;
122410 char str[IPV6_MAX_STRLEN];
122411 - struct ctl_table lctl = *ctl;
122412 + ctl_table_no_const lctl = *ctl;
122413 struct net *net = ctl->extra2;
122414 struct ipv6_stable_secret *secret = ctl->data;
122415
122416 @@ -5343,13 +5356,10 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
122417 goto out;
122418 }
122419
122420 - if (!write) {
122421 - err = snprintf(str, sizeof(str), "%pI6",
122422 - &secret->secret);
122423 - if (err >= sizeof(str)) {
122424 - err = -EIO;
122425 - goto out;
122426 - }
122427 + err = snprintf(str, sizeof(str), "%pI6", &secret->secret);
122428 + if (err >= sizeof(str)) {
122429 + err = -EIO;
122430 + goto out;
122431 }
122432
122433 err = proc_dostring(&lctl, write, buffer, lenp, ppos);
122434 @@ -5397,7 +5407,7 @@ int addrconf_sysctl_ignore_routes_with_linkdown(struct ctl_table *ctl,
122435 int *valp = ctl->data;
122436 int val = *valp;
122437 loff_t pos = *ppos;
122438 - struct ctl_table lctl;
122439 + ctl_table_no_const lctl;
122440 int ret;
122441
122442 /* ctl->data points to idev->cnf.ignore_routes_when_linkdown
122443 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
122444 index 38d66dd..dc7991d 100644
122445 --- a/net/ipv6/af_inet6.c
122446 +++ b/net/ipv6/af_inet6.c
122447 @@ -777,7 +777,7 @@ static int __net_init inet6_net_init(struct net *net)
122448 net->ipv6.sysctl.idgen_retries = 3;
122449 net->ipv6.sysctl.idgen_delay = 1 * HZ;
122450 net->ipv6.sysctl.flowlabel_state_ranges = 0;
122451 - atomic_set(&net->ipv6.fib6_sernum, 1);
122452 + atomic_set_unchecked(&net->ipv6.fib6_sernum, 1);
122453
122454 err = ipv6_init_mibs(net);
122455 if (err)
122456 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
122457 index a42a673..d67192c 100644
122458 --- a/net/ipv6/datagram.c
122459 +++ b/net/ipv6/datagram.c
122460 @@ -979,5 +979,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
122461 0,
122462 sock_i_ino(sp),
122463 atomic_read(&sp->sk_refcnt), sp,
122464 - atomic_read(&sp->sk_drops));
122465 + atomic_read_unchecked(&sp->sk_drops));
122466 }
122467 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
122468 index 6c2b213..e620059 100644
122469 --- a/net/ipv6/icmp.c
122470 +++ b/net/ipv6/icmp.c
122471 @@ -1004,7 +1004,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
122472
122473 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
122474 {
122475 - struct ctl_table *table;
122476 + ctl_table_no_const *table;
122477
122478 table = kmemdup(ipv6_icmp_table_template,
122479 sizeof(ipv6_icmp_table_template),
122480 diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
122481 index 6cedc62..998bd5b 100644
122482 --- a/net/ipv6/ip6_fib.c
122483 +++ b/net/ipv6/ip6_fib.c
122484 @@ -100,9 +100,9 @@ static int fib6_new_sernum(struct net *net)
122485 int new, old;
122486
122487 do {
122488 - old = atomic_read(&net->ipv6.fib6_sernum);
122489 + old = atomic_read_unchecked(&net->ipv6.fib6_sernum);
122490 new = old < INT_MAX ? old + 1 : 1;
122491 - } while (atomic_cmpxchg(&net->ipv6.fib6_sernum,
122492 + } while (atomic_cmpxchg_unchecked(&net->ipv6.fib6_sernum,
122493 old, new) != old);
122494 return new;
122495 }
122496 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
122497 index 3c7b931..bcdd2bf 100644
122498 --- a/net/ipv6/ip6_gre.c
122499 +++ b/net/ipv6/ip6_gre.c
122500 @@ -71,8 +71,8 @@ struct ip6gre_net {
122501 struct net_device *fb_tunnel_dev;
122502 };
122503
122504 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly;
122505 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly;
122506 +static struct rtnl_link_ops ip6gre_link_ops;
122507 +static struct rtnl_link_ops ip6gre_tap_ops;
122508 static int ip6gre_tunnel_init(struct net_device *dev);
122509 static void ip6gre_tunnel_setup(struct net_device *dev);
122510 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
122511 @@ -1302,7 +1302,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
122512 }
122513
122514
122515 -static struct inet6_protocol ip6gre_protocol __read_mostly = {
122516 +static struct inet6_protocol ip6gre_protocol = {
122517 .handler = ip6gre_rcv,
122518 .err_handler = ip6gre_err,
122519 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
122520 @@ -1658,7 +1658,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
122521 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
122522 };
122523
122524 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
122525 +static struct rtnl_link_ops ip6gre_link_ops = {
122526 .kind = "ip6gre",
122527 .maxtype = IFLA_GRE_MAX,
122528 .policy = ip6gre_policy,
122529 @@ -1673,7 +1673,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
122530 .get_link_net = ip6_tnl_get_link_net,
122531 };
122532
122533 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly = {
122534 +static struct rtnl_link_ops ip6gre_tap_ops = {
122535 .kind = "ip6gretap",
122536 .maxtype = IFLA_GRE_MAX,
122537 .policy = ip6gre_policy,
122538 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
122539 index 137fca4..2671d8c 100644
122540 --- a/net/ipv6/ip6_tunnel.c
122541 +++ b/net/ipv6/ip6_tunnel.c
122542 @@ -80,7 +80,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
122543
122544 static int ip6_tnl_dev_init(struct net_device *dev);
122545 static void ip6_tnl_dev_setup(struct net_device *dev);
122546 -static struct rtnl_link_ops ip6_link_ops __read_mostly;
122547 +static struct rtnl_link_ops ip6_link_ops;
122548
122549 static int ip6_tnl_net_id __read_mostly;
122550 struct ip6_tnl_net {
122551 @@ -1841,7 +1841,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
122552 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
122553 };
122554
122555 -static struct rtnl_link_ops ip6_link_ops __read_mostly = {
122556 +static struct rtnl_link_ops ip6_link_ops = {
122557 .kind = "ip6tnl",
122558 .maxtype = IFLA_IPTUN_MAX,
122559 .policy = ip6_tnl_policy,
122560 diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
122561 index 0224c03..c5ec3d9 100644
122562 --- a/net/ipv6/ip6_vti.c
122563 +++ b/net/ipv6/ip6_vti.c
122564 @@ -62,7 +62,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
122565
122566 static int vti6_dev_init(struct net_device *dev);
122567 static void vti6_dev_setup(struct net_device *dev);
122568 -static struct rtnl_link_ops vti6_link_ops __read_mostly;
122569 +static struct rtnl_link_ops vti6_link_ops;
122570
122571 static int vti6_net_id __read_mostly;
122572 struct vti6_net {
122573 @@ -1019,7 +1019,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
122574 [IFLA_VTI_OKEY] = { .type = NLA_U32 },
122575 };
122576
122577 -static struct rtnl_link_ops vti6_link_ops __read_mostly = {
122578 +static struct rtnl_link_ops vti6_link_ops = {
122579 .kind = "vti6",
122580 .maxtype = IFLA_VTI_MAX,
122581 .policy = vti6_policy,
122582 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
122583 index 4449ad1..e47579c 100644
122584 --- a/net/ipv6/ipv6_sockglue.c
122585 +++ b/net/ipv6/ipv6_sockglue.c
122586 @@ -1025,7 +1025,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
122587 if (sk->sk_type != SOCK_STREAM)
122588 return -ENOPROTOOPT;
122589
122590 - msg.msg_control = optval;
122591 + msg.msg_control = (void __force_kernel *)optval;
122592 msg.msg_controllen = len;
122593 msg.msg_flags = flags;
122594
122595 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
122596 index 0771991..faa2784 100644
122597 --- a/net/ipv6/netfilter/ip6_tables.c
122598 +++ b/net/ipv6/netfilter/ip6_tables.c
122599 @@ -1089,14 +1089,14 @@ static int compat_table_info(const struct xt_table_info *info,
122600 #endif
122601
122602 static int get_info(struct net *net, void __user *user,
122603 - const int *len, int compat)
122604 + int len, int compat)
122605 {
122606 char name[XT_TABLE_MAXNAMELEN];
122607 struct xt_table *t;
122608 int ret;
122609
122610 - if (*len != sizeof(struct ip6t_getinfo)) {
122611 - duprintf("length %u != %zu\n", *len,
122612 + if (len != sizeof(struct ip6t_getinfo)) {
122613 + duprintf("length %u != %zu\n", len,
122614 sizeof(struct ip6t_getinfo));
122615 return -EINVAL;
122616 }
122617 @@ -1133,7 +1133,7 @@ static int get_info(struct net *net, void __user *user,
122618 info.size = private->size;
122619 strcpy(info.name, name);
122620
122621 - if (copy_to_user(user, &info, *len) != 0)
122622 + if (copy_to_user(user, &info, len) != 0)
122623 ret = -EFAULT;
122624 else
122625 ret = 0;
122626 @@ -1981,7 +1981,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
122627
122628 switch (cmd) {
122629 case IP6T_SO_GET_INFO:
122630 - ret = get_info(sock_net(sk), user, len, 1);
122631 + ret = get_info(sock_net(sk), user, *len, 1);
122632 break;
122633 case IP6T_SO_GET_ENTRIES:
122634 ret = compat_get_entries(sock_net(sk), user, len);
122635 @@ -2028,7 +2028,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
122636
122637 switch (cmd) {
122638 case IP6T_SO_GET_INFO:
122639 - ret = get_info(sock_net(sk), user, len, 0);
122640 + ret = get_info(sock_net(sk), user, *len, 0);
122641 break;
122642
122643 case IP6T_SO_GET_ENTRIES:
122644 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
122645 index dc50143..f3ca648 100644
122646 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
122647 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
122648 @@ -96,12 +96,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
122649
122650 static int nf_ct_frag6_sysctl_register(struct net *net)
122651 {
122652 - struct ctl_table *table;
122653 + ctl_table_no_const *table = NULL;
122654 struct ctl_table_header *hdr;
122655
122656 - table = nf_ct_frag6_sysctl_table;
122657 if (!net_eq(net, &init_net)) {
122658 - table = kmemdup(table, sizeof(nf_ct_frag6_sysctl_table),
122659 + table = kmemdup(nf_ct_frag6_sysctl_table, sizeof(nf_ct_frag6_sysctl_table),
122660 GFP_KERNEL);
122661 if (table == NULL)
122662 goto err_alloc;
122663 @@ -112,9 +111,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
122664 table[2].data = &net->nf_frag.frags.high_thresh;
122665 table[2].extra1 = &net->nf_frag.frags.low_thresh;
122666 table[2].extra2 = &init_net.nf_frag.frags.high_thresh;
122667 - }
122668 -
122669 - hdr = register_net_sysctl(net, "net/netfilter", table);
122670 + hdr = register_net_sysctl(net, "net/netfilter", table);
122671 + } else
122672 + hdr = register_net_sysctl(net, "net/netfilter", nf_ct_frag6_sysctl_table);
122673 if (hdr == NULL)
122674 goto err_reg;
122675
122676 @@ -122,8 +121,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
122677 return 0;
122678
122679 err_reg:
122680 - if (!net_eq(net, &init_net))
122681 - kfree(table);
122682 + kfree(table);
122683 err_alloc:
122684 return -ENOMEM;
122685 }
122686 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
122687 index 263a516..692f738 100644
122688 --- a/net/ipv6/ping.c
122689 +++ b/net/ipv6/ping.c
122690 @@ -240,6 +240,24 @@ static struct pernet_operations ping_v6_net_ops = {
122691 };
122692 #endif
122693
122694 +static struct pingv6_ops real_pingv6_ops = {
122695 + .ipv6_recv_error = ipv6_recv_error,
122696 + .ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl,
122697 + .ip6_datagram_recv_specific_ctl = ip6_datagram_recv_specific_ctl,
122698 + .icmpv6_err_convert = icmpv6_err_convert,
122699 + .ipv6_icmp_error = ipv6_icmp_error,
122700 + .ipv6_chk_addr = ipv6_chk_addr,
122701 +};
122702 +
122703 +static struct pingv6_ops dummy_pingv6_ops = {
122704 + .ipv6_recv_error = dummy_ipv6_recv_error,
122705 + .ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl,
122706 + .ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl,
122707 + .icmpv6_err_convert = dummy_icmpv6_err_convert,
122708 + .ipv6_icmp_error = dummy_ipv6_icmp_error,
122709 + .ipv6_chk_addr = dummy_ipv6_chk_addr,
122710 +};
122711 +
122712 int __init pingv6_init(void)
122713 {
122714 #ifdef CONFIG_PROC_FS
122715 @@ -247,13 +265,7 @@ int __init pingv6_init(void)
122716 if (ret)
122717 return ret;
122718 #endif
122719 - pingv6_ops.ipv6_recv_error = ipv6_recv_error;
122720 - pingv6_ops.ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl;
122721 - pingv6_ops.ip6_datagram_recv_specific_ctl =
122722 - ip6_datagram_recv_specific_ctl;
122723 - pingv6_ops.icmpv6_err_convert = icmpv6_err_convert;
122724 - pingv6_ops.ipv6_icmp_error = ipv6_icmp_error;
122725 - pingv6_ops.ipv6_chk_addr = ipv6_chk_addr;
122726 + pingv6_ops = &real_pingv6_ops;
122727 return inet6_register_protosw(&pingv6_protosw);
122728 }
122729
122730 @@ -262,14 +274,9 @@ int __init pingv6_init(void)
122731 */
122732 void pingv6_exit(void)
122733 {
122734 - pingv6_ops.ipv6_recv_error = dummy_ipv6_recv_error;
122735 - pingv6_ops.ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl;
122736 - pingv6_ops.ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl;
122737 - pingv6_ops.icmpv6_err_convert = dummy_icmpv6_err_convert;
122738 - pingv6_ops.ipv6_icmp_error = dummy_ipv6_icmp_error;
122739 - pingv6_ops.ipv6_chk_addr = dummy_ipv6_chk_addr;
122740 #ifdef CONFIG_PROC_FS
122741 unregister_pernet_subsys(&ping_v6_net_ops);
122742 #endif
122743 + pingv6_ops = &dummy_pingv6_ops;
122744 inet6_unregister_protosw(&pingv6_protosw);
122745 }
122746 diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
122747 index 679253d0..70b653c 100644
122748 --- a/net/ipv6/proc.c
122749 +++ b/net/ipv6/proc.c
122750 @@ -310,7 +310,7 @@ static int __net_init ipv6_proc_init_net(struct net *net)
122751 if (!proc_create("snmp6", S_IRUGO, net->proc_net, &snmp6_seq_fops))
122752 goto proc_snmp6_fail;
122753
122754 - net->mib.proc_net_devsnmp6 = proc_mkdir("dev_snmp6", net->proc_net);
122755 + net->mib.proc_net_devsnmp6 = proc_mkdir_restrict("dev_snmp6", net->proc_net);
122756 if (!net->mib.proc_net_devsnmp6)
122757 goto proc_dev_snmp6_fail;
122758 return 0;
122759 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
122760 index fe97729..5292cb2 100644
122761 --- a/net/ipv6/raw.c
122762 +++ b/net/ipv6/raw.c
122763 @@ -389,7 +389,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
122764 {
122765 if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
122766 skb_checksum_complete(skb)) {
122767 - atomic_inc(&sk->sk_drops);
122768 + atomic_inc_unchecked(&sk->sk_drops);
122769 kfree_skb(skb);
122770 return NET_RX_DROP;
122771 }
122772 @@ -417,7 +417,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
122773 struct raw6_sock *rp = raw6_sk(sk);
122774
122775 if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
122776 - atomic_inc(&sk->sk_drops);
122777 + atomic_inc_unchecked(&sk->sk_drops);
122778 kfree_skb(skb);
122779 return NET_RX_DROP;
122780 }
122781 @@ -441,7 +441,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
122782
122783 if (inet->hdrincl) {
122784 if (skb_checksum_complete(skb)) {
122785 - atomic_inc(&sk->sk_drops);
122786 + atomic_inc_unchecked(&sk->sk_drops);
122787 kfree_skb(skb);
122788 return NET_RX_DROP;
122789 }
122790 @@ -609,7 +609,7 @@ out:
122791 return err;
122792 }
122793
122794 -static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
122795 +static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, unsigned int length,
122796 struct flowi6 *fl6, struct dst_entry **dstp,
122797 unsigned int flags)
122798 {
122799 @@ -921,12 +921,15 @@ do_confirm:
122800 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
122801 char __user *optval, int optlen)
122802 {
122803 + struct icmp6_filter filter;
122804 +
122805 switch (optname) {
122806 case ICMPV6_FILTER:
122807 if (optlen > sizeof(struct icmp6_filter))
122808 optlen = sizeof(struct icmp6_filter);
122809 - if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
122810 + if (copy_from_user(&filter, optval, optlen))
122811 return -EFAULT;
122812 + raw6_sk(sk)->filter = filter;
122813 return 0;
122814 default:
122815 return -ENOPROTOOPT;
122816 @@ -939,6 +942,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
122817 char __user *optval, int __user *optlen)
122818 {
122819 int len;
122820 + struct icmp6_filter filter;
122821
122822 switch (optname) {
122823 case ICMPV6_FILTER:
122824 @@ -950,7 +954,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
122825 len = sizeof(struct icmp6_filter);
122826 if (put_user(len, optlen))
122827 return -EFAULT;
122828 - if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
122829 + filter = raw6_sk(sk)->filter;
122830 + if (len > sizeof filter || copy_to_user(optval, &filter, len))
122831 return -EFAULT;
122832 return 0;
122833 default:
122834 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
122835 index 04013a9..6a98cc6 100644
122836 --- a/net/ipv6/reassembly.c
122837 +++ b/net/ipv6/reassembly.c
122838 @@ -630,12 +630,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
122839
122840 static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122841 {
122842 - struct ctl_table *table;
122843 + ctl_table_no_const *table = NULL;
122844 struct ctl_table_header *hdr;
122845
122846 - table = ip6_frags_ns_ctl_table;
122847 if (!net_eq(net, &init_net)) {
122848 - table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
122849 + table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
122850 if (!table)
122851 goto err_alloc;
122852
122853 @@ -649,9 +648,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122854 /* Don't export sysctls to unprivileged users */
122855 if (net->user_ns != &init_user_ns)
122856 table[0].procname = NULL;
122857 - }
122858 + hdr = register_net_sysctl(net, "net/ipv6", table);
122859 + } else
122860 + hdr = register_net_sysctl(net, "net/ipv6", ip6_frags_ns_ctl_table);
122861
122862 - hdr = register_net_sysctl(net, "net/ipv6", table);
122863 if (!hdr)
122864 goto err_reg;
122865
122866 @@ -659,8 +659,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122867 return 0;
122868
122869 err_reg:
122870 - if (!net_eq(net, &init_net))
122871 - kfree(table);
122872 + kfree(table);
122873 err_alloc:
122874 return -ENOMEM;
122875 }
122876 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
122877 index fd0e674..ecfb57a 100644
122878 --- a/net/ipv6/route.c
122879 +++ b/net/ipv6/route.c
122880 @@ -3513,7 +3513,7 @@ struct ctl_table ipv6_route_table_template[] = {
122881
122882 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
122883 {
122884 - struct ctl_table *table;
122885 + ctl_table_no_const *table;
122886
122887 table = kmemdup(ipv6_route_table_template,
122888 sizeof(ipv6_route_table_template),
122889 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
122890 index dcccae8..33152e7 100644
122891 --- a/net/ipv6/sit.c
122892 +++ b/net/ipv6/sit.c
122893 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
122894 static void ipip6_dev_free(struct net_device *dev);
122895 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst,
122896 __be32 *v4dst);
122897 -static struct rtnl_link_ops sit_link_ops __read_mostly;
122898 +static struct rtnl_link_ops sit_link_ops;
122899
122900 static int sit_net_id __read_mostly;
122901 struct sit_net {
122902 @@ -1735,7 +1735,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
122903 unregister_netdevice_queue(dev, head);
122904 }
122905
122906 -static struct rtnl_link_ops sit_link_ops __read_mostly = {
122907 +static struct rtnl_link_ops sit_link_ops = {
122908 .kind = "sit",
122909 .maxtype = IFLA_IPTUN_MAX,
122910 .policy = ipip6_policy,
122911 diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
122912 index 45243bb..cdb398e 100644
122913 --- a/net/ipv6/sysctl_net_ipv6.c
122914 +++ b/net/ipv6/sysctl_net_ipv6.c
122915 @@ -111,7 +111,7 @@ static struct ctl_table ipv6_rotable[] = {
122916
122917 static int __net_init ipv6_sysctl_net_init(struct net *net)
122918 {
122919 - struct ctl_table *ipv6_table;
122920 + ctl_table_no_const *ipv6_table;
122921 struct ctl_table *ipv6_route_table;
122922 struct ctl_table *ipv6_icmp_table;
122923 int err;
122924 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
122925 index 9e9b77b..bdfd1ee 100644
122926 --- a/net/ipv6/tcp_ipv6.c
122927 +++ b/net/ipv6/tcp_ipv6.c
122928 @@ -93,16 +93,19 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
122929 {
122930 struct dst_entry *dst = skb_dst(skb);
122931
122932 - if (dst) {
122933 + if (dst && dst_hold_safe(dst)) {
122934 const struct rt6_info *rt = (const struct rt6_info *)dst;
122935
122936 - dst_hold(dst);
122937 sk->sk_rx_dst = dst;
122938 inet_sk(sk)->rx_dst_ifindex = skb->skb_iif;
122939 inet6_sk(sk)->rx_dst_cookie = rt6_get_cookie(rt);
122940 }
122941 }
122942
122943 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122944 +extern int grsec_enable_blackhole;
122945 +#endif
122946 +
122947 static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
122948 {
122949 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
122950 @@ -1286,6 +1289,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
122951 return 0;
122952
122953 reset:
122954 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122955 + if (!grsec_enable_blackhole)
122956 +#endif
122957 tcp_v6_send_reset(sk, skb);
122958 discard:
122959 if (opt_skb)
122960 @@ -1395,12 +1401,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
122961
122962 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest,
122963 inet6_iif(skb));
122964 - if (!sk)
122965 + if (!sk) {
122966 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122967 + ret = 1;
122968 +#endif
122969 goto no_tcp_socket;
122970 + }
122971
122972 process:
122973 - if (sk->sk_state == TCP_TIME_WAIT)
122974 + if (sk->sk_state == TCP_TIME_WAIT) {
122975 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122976 + ret = 2;
122977 +#endif
122978 goto do_time_wait;
122979 + }
122980
122981 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
122982 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
122983 @@ -1452,6 +1466,10 @@ csum_error:
122984 bad_packet:
122985 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
122986 } else {
122987 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122988 + if (!grsec_enable_blackhole || (ret == 1 &&
122989 + (skb->dev->flags & IFF_LOOPBACK)))
122990 +#endif
122991 tcp_v6_send_reset(NULL, skb);
122992 }
122993
122994 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
122995 index 8379fc2..faac798 100644
122996 --- a/net/ipv6/udp.c
122997 +++ b/net/ipv6/udp.c
122998 @@ -76,6 +76,10 @@ static u32 udp6_ehashfn(const struct net *net,
122999 udp_ipv6_hash_secret + net_hash_mix(net));
123000 }
123001
123002 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
123003 +extern int grsec_enable_blackhole;
123004 +#endif
123005 +
123006 int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
123007 {
123008 const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
123009 @@ -445,7 +449,7 @@ try_again:
123010 if (unlikely(err)) {
123011 trace_kfree_skb(skb, udpv6_recvmsg);
123012 if (!peeked) {
123013 - atomic_inc(&sk->sk_drops);
123014 + atomic_inc_unchecked(&sk->sk_drops);
123015 if (is_udp4)
123016 UDP_INC_STATS_USER(sock_net(sk),
123017 UDP_MIB_INERRORS,
123018 @@ -709,7 +713,7 @@ csum_error:
123019 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
123020 drop:
123021 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
123022 - atomic_inc(&sk->sk_drops);
123023 + atomic_inc_unchecked(&sk->sk_drops);
123024 kfree_skb(skb);
123025 return -1;
123026 }
123027 @@ -750,7 +754,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
123028 if (likely(!skb1))
123029 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
123030 if (!skb1) {
123031 - atomic_inc(&sk->sk_drops);
123032 + atomic_inc_unchecked(&sk->sk_drops);
123033 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
123034 IS_UDPLITE(sk));
123035 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
123036 @@ -934,6 +938,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
123037 goto csum_error;
123038
123039 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
123040 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
123041 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
123042 +#endif
123043 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
123044
123045 kfree_skb(skb);
123046 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
123047 index da55e0c..3c30bd8 100644
123048 --- a/net/ipv6/xfrm6_policy.c
123049 +++ b/net/ipv6/xfrm6_policy.c
123050 @@ -218,11 +218,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
123051 }
123052 }
123053
123054 -static inline int xfrm6_garbage_collect(struct dst_ops *ops)
123055 +static int xfrm6_garbage_collect(struct dst_ops *ops)
123056 {
123057 struct net *net = container_of(ops, struct net, xfrm.xfrm6_dst_ops);
123058
123059 - xfrm6_policy_afinfo.garbage_collect(net);
123060 + xfrm_garbage_collect_deferred(net);
123061 return dst_entries_get_fast(ops) > ops->gc_thresh * 2;
123062 }
123063
123064 @@ -329,19 +329,19 @@ static struct ctl_table xfrm6_policy_table[] = {
123065
123066 static int __net_init xfrm6_net_init(struct net *net)
123067 {
123068 - struct ctl_table *table;
123069 + ctl_table_no_const *table = NULL;
123070 struct ctl_table_header *hdr;
123071
123072 - table = xfrm6_policy_table;
123073 if (!net_eq(net, &init_net)) {
123074 - table = kmemdup(table, sizeof(xfrm6_policy_table), GFP_KERNEL);
123075 + table = kmemdup(xfrm6_policy_table, sizeof(xfrm6_policy_table), GFP_KERNEL);
123076 if (!table)
123077 goto err_alloc;
123078
123079 table[0].data = &net->xfrm.xfrm6_dst_ops.gc_thresh;
123080 - }
123081 + hdr = register_net_sysctl(net, "net/ipv6", table);
123082 + } else
123083 + hdr = register_net_sysctl(net, "net/ipv6", xfrm6_policy_table);
123084
123085 - hdr = register_net_sysctl(net, "net/ipv6", table);
123086 if (!hdr)
123087 goto err_reg;
123088
123089 @@ -349,8 +349,7 @@ static int __net_init xfrm6_net_init(struct net *net)
123090 return 0;
123091
123092 err_reg:
123093 - if (!net_eq(net, &init_net))
123094 - kfree(table);
123095 + kfree(table);
123096 err_alloc:
123097 return -ENOMEM;
123098 }
123099 diff --git a/net/ipx/ipx_proc.c b/net/ipx/ipx_proc.c
123100 index c1d247e..9e5949d 100644
123101 --- a/net/ipx/ipx_proc.c
123102 +++ b/net/ipx/ipx_proc.c
123103 @@ -289,7 +289,7 @@ int __init ipx_proc_init(void)
123104 struct proc_dir_entry *p;
123105 int rc = -ENOMEM;
123106
123107 - ipx_proc_dir = proc_mkdir("ipx", init_net.proc_net);
123108 + ipx_proc_dir = proc_mkdir_restrict("ipx", init_net.proc_net);
123109
123110 if (!ipx_proc_dir)
123111 goto out;
123112 diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
123113 index 683346d..cb0e12d 100644
123114 --- a/net/irda/ircomm/ircomm_tty.c
123115 +++ b/net/irda/ircomm/ircomm_tty.c
123116 @@ -310,10 +310,10 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
123117 add_wait_queue(&port->open_wait, &wait);
123118
123119 pr_debug("%s(%d):block_til_ready before block on %s open_count=%d\n",
123120 - __FILE__, __LINE__, tty->driver->name, port->count);
123121 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
123122
123123 spin_lock_irqsave(&port->lock, flags);
123124 - port->count--;
123125 + atomic_dec(&port->count);
123126 port->blocked_open++;
123127 spin_unlock_irqrestore(&port->lock, flags);
123128
123129 @@ -348,7 +348,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
123130 }
123131
123132 pr_debug("%s(%d):block_til_ready blocking on %s open_count=%d\n",
123133 - __FILE__, __LINE__, tty->driver->name, port->count);
123134 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
123135
123136 schedule();
123137 }
123138 @@ -358,12 +358,12 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
123139
123140 spin_lock_irqsave(&port->lock, flags);
123141 if (!tty_hung_up_p(filp))
123142 - port->count++;
123143 + atomic_inc(&port->count);
123144 port->blocked_open--;
123145 spin_unlock_irqrestore(&port->lock, flags);
123146
123147 pr_debug("%s(%d):block_til_ready after blocking on %s open_count=%d\n",
123148 - __FILE__, __LINE__, tty->driver->name, port->count);
123149 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
123150
123151 if (!retval)
123152 port->flags |= ASYNC_NORMAL_ACTIVE;
123153 @@ -433,12 +433,12 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
123154
123155 /* ++ is not atomic, so this should be protected - Jean II */
123156 spin_lock_irqsave(&self->port.lock, flags);
123157 - self->port.count++;
123158 + atomic_inc(&self->port.count);
123159 spin_unlock_irqrestore(&self->port.lock, flags);
123160 tty_port_tty_set(&self->port, tty);
123161
123162 pr_debug("%s(), %s%d, count = %d\n", __func__ , tty->driver->name,
123163 - self->line, self->port.count);
123164 + self->line, atomic_read(&self->port.count));
123165
123166 /* Not really used by us, but lets do it anyway */
123167 self->port.low_latency = (self->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
123168 @@ -961,7 +961,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
123169 tty_kref_put(port->tty);
123170 }
123171 port->tty = NULL;
123172 - port->count = 0;
123173 + atomic_set(&port->count, 0);
123174 spin_unlock_irqrestore(&port->lock, flags);
123175
123176 wake_up_interruptible(&port->open_wait);
123177 @@ -1308,7 +1308,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
123178 seq_putc(m, '\n');
123179
123180 seq_printf(m, "Role: %s\n", self->client ? "client" : "server");
123181 - seq_printf(m, "Open count: %d\n", self->port.count);
123182 + seq_printf(m, "Open count: %d\n", atomic_read(&self->port.count));
123183 seq_printf(m, "Max data size: %d\n", self->max_data_size);
123184 seq_printf(m, "Max header size: %d\n", self->max_header_size);
123185
123186 diff --git a/net/irda/irproc.c b/net/irda/irproc.c
123187 index b9ac598..f88cc56 100644
123188 --- a/net/irda/irproc.c
123189 +++ b/net/irda/irproc.c
123190 @@ -66,7 +66,7 @@ void __init irda_proc_register(void)
123191 {
123192 int i;
123193
123194 - proc_irda = proc_mkdir("irda", init_net.proc_net);
123195 + proc_irda = proc_mkdir_restrict("irda", init_net.proc_net);
123196 if (proc_irda == NULL)
123197 return;
123198
123199 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
123200 index 918151c..5bbe95a 100644
123201 --- a/net/iucv/af_iucv.c
123202 +++ b/net/iucv/af_iucv.c
123203 @@ -686,10 +686,10 @@ static void __iucv_auto_name(struct iucv_sock *iucv)
123204 {
123205 char name[12];
123206
123207 - sprintf(name, "%08x", atomic_inc_return(&iucv_sk_list.autobind_name));
123208 + sprintf(name, "%08x", atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
123209 while (__iucv_get_sock_by_name(name)) {
123210 sprintf(name, "%08x",
123211 - atomic_inc_return(&iucv_sk_list.autobind_name));
123212 + atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
123213 }
123214 memcpy(iucv->src_name, name, 8);
123215 }
123216 diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
123217 index 2a6a1fd..6c112b0 100644
123218 --- a/net/iucv/iucv.c
123219 +++ b/net/iucv/iucv.c
123220 @@ -702,7 +702,7 @@ static int iucv_cpu_notify(struct notifier_block *self,
123221 return NOTIFY_OK;
123222 }
123223
123224 -static struct notifier_block __refdata iucv_cpu_notifier = {
123225 +static struct notifier_block iucv_cpu_notifier = {
123226 .notifier_call = iucv_cpu_notify,
123227 };
123228
123229 diff --git a/net/key/af_key.c b/net/key/af_key.c
123230 index f9c9ecb..060751e 100644
123231 --- a/net/key/af_key.c
123232 +++ b/net/key/af_key.c
123233 @@ -3050,10 +3050,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
123234 static u32 get_acqseq(void)
123235 {
123236 u32 res;
123237 - static atomic_t acqseq;
123238 + static atomic_unchecked_t acqseq;
123239
123240 do {
123241 - res = atomic_inc_return(&acqseq);
123242 + res = atomic_inc_return_unchecked(&acqseq);
123243 } while (!res);
123244 return res;
123245 }
123246 diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
123247 index 4b55287..bd247f7 100644
123248 --- a/net/l2tp/l2tp_eth.c
123249 +++ b/net/l2tp/l2tp_eth.c
123250 @@ -42,12 +42,12 @@ struct l2tp_eth {
123251 struct sock *tunnel_sock;
123252 struct l2tp_session *session;
123253 struct list_head list;
123254 - atomic_long_t tx_bytes;
123255 - atomic_long_t tx_packets;
123256 - atomic_long_t tx_dropped;
123257 - atomic_long_t rx_bytes;
123258 - atomic_long_t rx_packets;
123259 - atomic_long_t rx_errors;
123260 + atomic_long_unchecked_t tx_bytes;
123261 + atomic_long_unchecked_t tx_packets;
123262 + atomic_long_unchecked_t tx_dropped;
123263 + atomic_long_unchecked_t rx_bytes;
123264 + atomic_long_unchecked_t rx_packets;
123265 + atomic_long_unchecked_t rx_errors;
123266 };
123267
123268 /* via l2tp_session_priv() */
123269 @@ -98,10 +98,10 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev)
123270 int ret = l2tp_xmit_skb(session, skb, session->hdr_len);
123271
123272 if (likely(ret == NET_XMIT_SUCCESS)) {
123273 - atomic_long_add(len, &priv->tx_bytes);
123274 - atomic_long_inc(&priv->tx_packets);
123275 + atomic_long_add_unchecked(len, &priv->tx_bytes);
123276 + atomic_long_inc_unchecked(&priv->tx_packets);
123277 } else {
123278 - atomic_long_inc(&priv->tx_dropped);
123279 + atomic_long_inc_unchecked(&priv->tx_dropped);
123280 }
123281 return NETDEV_TX_OK;
123282 }
123283 @@ -111,12 +111,12 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
123284 {
123285 struct l2tp_eth *priv = netdev_priv(dev);
123286
123287 - stats->tx_bytes = atomic_long_read(&priv->tx_bytes);
123288 - stats->tx_packets = atomic_long_read(&priv->tx_packets);
123289 - stats->tx_dropped = atomic_long_read(&priv->tx_dropped);
123290 - stats->rx_bytes = atomic_long_read(&priv->rx_bytes);
123291 - stats->rx_packets = atomic_long_read(&priv->rx_packets);
123292 - stats->rx_errors = atomic_long_read(&priv->rx_errors);
123293 + stats->tx_bytes = atomic_long_read_unchecked(&priv->tx_bytes);
123294 + stats->tx_packets = atomic_long_read_unchecked(&priv->tx_packets);
123295 + stats->tx_dropped = atomic_long_read_unchecked(&priv->tx_dropped);
123296 + stats->rx_bytes = atomic_long_read_unchecked(&priv->rx_bytes);
123297 + stats->rx_packets = atomic_long_read_unchecked(&priv->rx_packets);
123298 + stats->rx_errors = atomic_long_read_unchecked(&priv->rx_errors);
123299 return stats;
123300 }
123301
123302 @@ -167,15 +167,15 @@ static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb,
123303 nf_reset(skb);
123304
123305 if (dev_forward_skb(dev, skb) == NET_RX_SUCCESS) {
123306 - atomic_long_inc(&priv->rx_packets);
123307 - atomic_long_add(data_len, &priv->rx_bytes);
123308 + atomic_long_inc_unchecked(&priv->rx_packets);
123309 + atomic_long_add_unchecked(data_len, &priv->rx_bytes);
123310 } else {
123311 - atomic_long_inc(&priv->rx_errors);
123312 + atomic_long_inc_unchecked(&priv->rx_errors);
123313 }
123314 return;
123315
123316 error:
123317 - atomic_long_inc(&priv->rx_errors);
123318 + atomic_long_inc_unchecked(&priv->rx_errors);
123319 kfree_skb(skb);
123320 }
123321
123322 diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
123323 index 7964993..2c48a3a 100644
123324 --- a/net/l2tp/l2tp_ip.c
123325 +++ b/net/l2tp/l2tp_ip.c
123326 @@ -608,7 +608,7 @@ static struct inet_protosw l2tp_ip_protosw = {
123327 .ops = &l2tp_ip_ops,
123328 };
123329
123330 -static struct net_protocol l2tp_ip_protocol __read_mostly = {
123331 +static const struct net_protocol l2tp_ip_protocol = {
123332 .handler = l2tp_ip_recv,
123333 .netns_ok = 1,
123334 };
123335 diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
123336 index 0ce9da9..c35ce35 100644
123337 --- a/net/l2tp/l2tp_ip6.c
123338 +++ b/net/l2tp/l2tp_ip6.c
123339 @@ -759,7 +759,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
123340 .ops = &l2tp_ip6_ops,
123341 };
123342
123343 -static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
123344 +static const struct inet6_protocol l2tp_ip6_protocol = {
123345 .handler = l2tp_ip6_recv,
123346 };
123347
123348 diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c
123349 index 1a3c7e0..80f8b0c 100644
123350 --- a/net/llc/llc_proc.c
123351 +++ b/net/llc/llc_proc.c
123352 @@ -247,7 +247,7 @@ int __init llc_proc_init(void)
123353 int rc = -ENOMEM;
123354 struct proc_dir_entry *p;
123355
123356 - llc_proc_dir = proc_mkdir("llc", init_net.proc_net);
123357 + llc_proc_dir = proc_mkdir_restrict("llc", init_net.proc_net);
123358 if (!llc_proc_dir)
123359 goto out;
123360
123361 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
123362 index 7a77a14..3b4a346 100644
123363 --- a/net/mac80211/cfg.c
123364 +++ b/net/mac80211/cfg.c
123365 @@ -580,7 +580,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
123366 ret = ieee80211_vif_use_channel(sdata, chandef,
123367 IEEE80211_CHANCTX_EXCLUSIVE);
123368 }
123369 - } else if (local->open_count == local->monitors) {
123370 + } else if (local_read(&local->open_count) == local->monitors) {
123371 local->_oper_chandef = *chandef;
123372 ieee80211_hw_config(local, 0);
123373 }
123374 @@ -3530,7 +3530,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
123375 else
123376 local->probe_req_reg--;
123377
123378 - if (!local->open_count)
123379 + if (!local_read(&local->open_count))
123380 break;
123381
123382 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
123383 @@ -3679,8 +3679,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
123384 if (chanctx_conf) {
123385 *chandef = sdata->vif.bss_conf.chandef;
123386 ret = 0;
123387 - } else if (local->open_count > 0 &&
123388 - local->open_count == local->monitors &&
123389 + } else if (local_read(&local->open_count) > 0 &&
123390 + local_read(&local->open_count) == local->monitors &&
123391 sdata->vif.type == NL80211_IFTYPE_MONITOR) {
123392 if (local->use_chanctx)
123393 *chandef = local->monitor_chandef;
123394 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
123395 index 6e52659..74e7863 100644
123396 --- a/net/mac80211/ieee80211_i.h
123397 +++ b/net/mac80211/ieee80211_i.h
123398 @@ -30,6 +30,7 @@
123399 #include <net/ieee80211_radiotap.h>
123400 #include <net/cfg80211.h>
123401 #include <net/mac80211.h>
123402 +#include <asm/local.h>
123403 #include "key.h"
123404 #include "sta_info.h"
123405 #include "debug.h"
123406 @@ -1112,7 +1113,7 @@ struct ieee80211_local {
123407 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
123408 spinlock_t queue_stop_reason_lock;
123409
123410 - int open_count;
123411 + local_t open_count;
123412 int monitors, cooked_mntrs;
123413 /* number of interfaces with corresponding FIF_ flags */
123414 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
123415 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
123416 index 6964fc6..4b98e06 100644
123417 --- a/net/mac80211/iface.c
123418 +++ b/net/mac80211/iface.c
123419 @@ -550,7 +550,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
123420 break;
123421 }
123422
123423 - if (local->open_count == 0) {
123424 + if (local_read(&local->open_count) == 0) {
123425 res = drv_start(local);
123426 if (res)
123427 goto err_del_bss;
123428 @@ -597,7 +597,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
123429 res = drv_add_interface(local, sdata);
123430 if (res)
123431 goto err_stop;
123432 - } else if (local->monitors == 0 && local->open_count == 0) {
123433 + } else if (local->monitors == 0 && local_read(&local->open_count) == 0) {
123434 res = ieee80211_add_virtual_monitor(local);
123435 if (res)
123436 goto err_stop;
123437 @@ -704,7 +704,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
123438 atomic_inc(&local->iff_allmultis);
123439
123440 if (coming_up)
123441 - local->open_count++;
123442 + local_inc(&local->open_count);
123443
123444 if (hw_reconf_flags)
123445 ieee80211_hw_config(local, hw_reconf_flags);
123446 @@ -742,7 +742,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
123447 err_del_interface:
123448 drv_remove_interface(local, sdata);
123449 err_stop:
123450 - if (!local->open_count)
123451 + if (!local_read(&local->open_count))
123452 drv_stop(local);
123453 err_del_bss:
123454 sdata->bss = NULL;
123455 @@ -909,7 +909,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
123456 }
123457
123458 if (going_down)
123459 - local->open_count--;
123460 + local_dec(&local->open_count);
123461
123462 switch (sdata->vif.type) {
123463 case NL80211_IFTYPE_AP_VLAN:
123464 @@ -978,7 +978,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
123465 atomic_set(&sdata->txqs_len[txqi->txq.ac], 0);
123466 }
123467
123468 - if (local->open_count == 0)
123469 + if (local_read(&local->open_count) == 0)
123470 ieee80211_clear_tx_pending(local);
123471
123472 /*
123473 @@ -1021,7 +1021,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
123474 if (cancel_scan)
123475 flush_delayed_work(&local->scan_work);
123476
123477 - if (local->open_count == 0) {
123478 + if (local_read(&local->open_count) == 0) {
123479 ieee80211_stop_device(local);
123480
123481 /* no reconfiguring after stop! */
123482 @@ -1032,7 +1032,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
123483 ieee80211_configure_filter(local);
123484 ieee80211_hw_config(local, hw_reconf_flags);
123485
123486 - if (local->monitors == local->open_count)
123487 + if (local->monitors == local_read(&local->open_count))
123488 ieee80211_add_virtual_monitor(local);
123489 }
123490
123491 @@ -1892,8 +1892,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
123492 */
123493 cfg80211_shutdown_all_interfaces(local->hw.wiphy);
123494
123495 - WARN(local->open_count, "%s: open count remains %d\n",
123496 - wiphy_name(local->hw.wiphy), local->open_count);
123497 + WARN(local_read(&local->open_count), "%s: open count remains %ld\n",
123498 + wiphy_name(local->hw.wiphy), local_read(&local->open_count));
123499
123500 mutex_lock(&local->iflist_mtx);
123501 list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
123502 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
123503 index ff79a13..fb6b111 100644
123504 --- a/net/mac80211/main.c
123505 +++ b/net/mac80211/main.c
123506 @@ -172,7 +172,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
123507 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL |
123508 IEEE80211_CONF_CHANGE_POWER);
123509
123510 - if (changed && local->open_count) {
123511 + if (changed && local_read(&local->open_count)) {
123512 ret = drv_config(local, changed);
123513 /*
123514 * Goal:
123515 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
123516 index b676b9f..395dd95 100644
123517 --- a/net/mac80211/pm.c
123518 +++ b/net/mac80211/pm.c
123519 @@ -12,7 +12,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
123520 struct ieee80211_sub_if_data *sdata;
123521 struct sta_info *sta;
123522
123523 - if (!local->open_count)
123524 + if (!local_read(&local->open_count))
123525 goto suspend;
123526
123527 ieee80211_scan_cancel(local);
123528 @@ -166,7 +166,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
123529 WARN_ON(!list_empty(&local->chanctx_list));
123530
123531 /* stop hardware - this must stop RX */
123532 - if (local->open_count)
123533 + if (local_read(&local->open_count))
123534 ieee80211_stop_device(local);
123535
123536 suspend:
123537 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
123538 index 9ce8883..c334feb 100644
123539 --- a/net/mac80211/rate.c
123540 +++ b/net/mac80211/rate.c
123541 @@ -898,7 +898,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
123542
123543 ASSERT_RTNL();
123544
123545 - if (local->open_count)
123546 + if (local_read(&local->open_count))
123547 return -EBUSY;
123548
123549 if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL)) {
123550 diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
123551 index 64f1936..01102b7 100644
123552 --- a/net/mac80211/sta_info.c
123553 +++ b/net/mac80211/sta_info.c
123554 @@ -350,7 +350,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
123555 int size = sizeof(struct txq_info) +
123556 ALIGN(hw->txq_data_size, sizeof(void *));
123557
123558 - txq_data = kcalloc(ARRAY_SIZE(sta->sta.txq), size, gfp);
123559 + txq_data = kcalloc(size, ARRAY_SIZE(sta->sta.txq), gfp);
123560 if (!txq_data)
123561 goto free;
123562
123563 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
123564 index cd90ece..5848351 100644
123565 --- a/net/mac80211/util.c
123566 +++ b/net/mac80211/util.c
123567 @@ -1719,7 +1719,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123568 bool suspended = local->suspended;
123569
123570 /* nothing to do if HW shouldn't run */
123571 - if (!local->open_count)
123572 + if (!local_read(&local->open_count))
123573 goto wake_up;
123574
123575 #ifdef CONFIG_PM
123576 @@ -2000,7 +2000,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123577 local->in_reconfig = false;
123578 barrier();
123579
123580 - if (local->monitors == local->open_count && local->monitors > 0)
123581 + if (local->monitors == local_read(&local->open_count) && local->monitors > 0)
123582 ieee80211_add_virtual_monitor(local);
123583
123584 /*
123585 @@ -2055,7 +2055,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123586 * If this is for hw restart things are still running.
123587 * We may want to change that later, however.
123588 */
123589 - if (local->open_count && (!suspended || reconfig_due_to_wowlan))
123590 + if (local_read(&local->open_count) && (!suspended || reconfig_due_to_wowlan))
123591 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_RESTART);
123592
123593 if (!suspended)
123594 @@ -2079,7 +2079,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123595 flush_delayed_work(&local->scan_work);
123596 }
123597
123598 - if (local->open_count && !reconfig_due_to_wowlan)
123599 + if (local_read(&local->open_count) && !reconfig_due_to_wowlan)
123600 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_SUSPEND);
123601
123602 list_for_each_entry(sdata, &local->interfaces, list) {
123603 diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
123604 index bb185a2..417f388 100644
123605 --- a/net/mpls/af_mpls.c
123606 +++ b/net/mpls/af_mpls.c
123607 @@ -563,7 +563,7 @@ static int mpls_dev_sysctl_register(struct net_device *dev,
123608 struct mpls_dev *mdev)
123609 {
123610 char path[sizeof("net/mpls/conf/") + IFNAMSIZ];
123611 - struct ctl_table *table;
123612 + ctl_table_no_const *table;
123613 int i;
123614
123615 table = kmemdup(&mpls_dev_table, sizeof(mpls_dev_table), GFP_KERNEL);
123616 @@ -1136,7 +1136,7 @@ static int mpls_platform_labels(struct ctl_table *table, int write,
123617 struct net *net = table->data;
123618 int platform_labels = net->mpls.platform_labels;
123619 int ret;
123620 - struct ctl_table tmp = {
123621 + ctl_table_no_const tmp = {
123622 .procname = table->procname,
123623 .data = &platform_labels,
123624 .maxlen = sizeof(int),
123625 @@ -1166,7 +1166,7 @@ static const struct ctl_table mpls_table[] = {
123626
123627 static int mpls_net_init(struct net *net)
123628 {
123629 - struct ctl_table *table;
123630 + ctl_table_no_const *table;
123631
123632 net->mpls.platform_labels = 0;
123633 net->mpls.platform_label = NULL;
123634 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
123635 index 3e1b4ab..b354153 100644
123636 --- a/net/netfilter/Kconfig
123637 +++ b/net/netfilter/Kconfig
123638 @@ -1127,6 +1127,16 @@ config NETFILTER_XT_MATCH_ESP
123639
123640 To compile it as a module, choose M here. If unsure, say N.
123641
123642 +config NETFILTER_XT_MATCH_GRADM
123643 + tristate '"gradm" match support'
123644 + depends on NETFILTER_XTABLES && NETFILTER_ADVANCED
123645 + depends on GRKERNSEC && !GRKERNSEC_NO_RBAC
123646 + ---help---
123647 + The gradm match allows to match on grsecurity RBAC being enabled.
123648 + It is useful when iptables rules are applied early on bootup to
123649 + prevent connections to the machine (except from a trusted host)
123650 + while the RBAC system is disabled.
123651 +
123652 config NETFILTER_XT_MATCH_HASHLIMIT
123653 tristate '"hashlimit" match support'
123654 depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
123655 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
123656 index 70d026d..c400590 100644
123657 --- a/net/netfilter/Makefile
123658 +++ b/net/netfilter/Makefile
123659 @@ -140,6 +140,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
123660 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
123661 obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
123662 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
123663 +obj-$(CONFIG_NETFILTER_XT_MATCH_GRADM) += xt_gradm.o
123664 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
123665 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
123666 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
123667 diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
123668 index 338b404..839dcb0 100644
123669 --- a/net/netfilter/ipset/ip_set_core.c
123670 +++ b/net/netfilter/ipset/ip_set_core.c
123671 @@ -1998,7 +1998,7 @@ done:
123672 return ret;
123673 }
123674
123675 -static struct nf_sockopt_ops so_set __read_mostly = {
123676 +static struct nf_sockopt_ops so_set = {
123677 .pf = PF_INET,
123678 .get_optmin = SO_IP_SET,
123679 .get_optmax = SO_IP_SET + 1,
123680 diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
123681 index b0f7b62..0541842 100644
123682 --- a/net/netfilter/ipvs/ip_vs_conn.c
123683 +++ b/net/netfilter/ipvs/ip_vs_conn.c
123684 @@ -572,7 +572,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
123685 /* Increase the refcnt counter of the dest */
123686 ip_vs_dest_hold(dest);
123687
123688 - conn_flags = atomic_read(&dest->conn_flags);
123689 + conn_flags = atomic_read_unchecked(&dest->conn_flags);
123690 if (cp->protocol != IPPROTO_UDP)
123691 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET;
123692 flags = cp->flags;
123693 @@ -922,7 +922,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p, int dest_af,
123694
123695 cp->control = NULL;
123696 atomic_set(&cp->n_control, 0);
123697 - atomic_set(&cp->in_pkts, 0);
123698 + atomic_set_unchecked(&cp->in_pkts, 0);
123699
123700 cp->packet_xmit = NULL;
123701 cp->app = NULL;
123702 @@ -1229,7 +1229,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
123703
123704 /* Don't drop the entry if its number of incoming packets is not
123705 located in [0, 8] */
123706 - i = atomic_read(&cp->in_pkts);
123707 + i = atomic_read_unchecked(&cp->in_pkts);
123708 if (i > 8 || i < 0) return 0;
123709
123710 if (!todrop_rate[i]) return 0;
123711 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
123712 index 38fbc19..4272cb4 100644
123713 --- a/net/netfilter/ipvs/ip_vs_core.c
123714 +++ b/net/netfilter/ipvs/ip_vs_core.c
123715 @@ -586,7 +586,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
123716 ret = cp->packet_xmit(skb, cp, pd->pp, iph);
123717 /* do not touch skb anymore */
123718
123719 - atomic_inc(&cp->in_pkts);
123720 + atomic_inc_unchecked(&cp->in_pkts);
123721 ip_vs_conn_put(cp);
123722 return ret;
123723 }
123724 @@ -1762,7 +1762,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
123725 if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
123726 pkts = sysctl_sync_threshold(ipvs);
123727 else
123728 - pkts = atomic_add_return(1, &cp->in_pkts);
123729 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123730
123731 if (ipvs->sync_state & IP_VS_STATE_MASTER)
123732 ip_vs_sync_conn(net, cp, pkts);
123733 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
123734 index 1a23e91..2c9dcf8 100644
123735 --- a/net/netfilter/ipvs/ip_vs_ctl.c
123736 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
123737 @@ -814,7 +814,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
123738 */
123739 ip_vs_rs_hash(ipvs, dest);
123740 }
123741 - atomic_set(&dest->conn_flags, conn_flags);
123742 + atomic_set_unchecked(&dest->conn_flags, conn_flags);
123743
123744 /* bind the service */
123745 old_svc = rcu_dereference_protected(dest->svc, 1);
123746 @@ -1694,7 +1694,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
123747 * align with netns init in ip_vs_control_net_init()
123748 */
123749
123750 -static struct ctl_table vs_vars[] = {
123751 +static ctl_table_no_const vs_vars[] __read_only = {
123752 {
123753 .procname = "amemthresh",
123754 .maxlen = sizeof(int),
123755 @@ -2036,7 +2036,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
123756 " %-7s %-6d %-10d %-10d\n",
123757 &dest->addr.in6,
123758 ntohs(dest->port),
123759 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
123760 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
123761 atomic_read(&dest->weight),
123762 atomic_read(&dest->activeconns),
123763 atomic_read(&dest->inactconns));
123764 @@ -2047,7 +2047,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
123765 "%-7s %-6d %-10d %-10d\n",
123766 ntohl(dest->addr.ip),
123767 ntohs(dest->port),
123768 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
123769 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
123770 atomic_read(&dest->weight),
123771 atomic_read(&dest->activeconns),
123772 atomic_read(&dest->inactconns));
123773 @@ -2556,7 +2556,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
123774
123775 entry.addr = dest->addr.ip;
123776 entry.port = dest->port;
123777 - entry.conn_flags = atomic_read(&dest->conn_flags);
123778 + entry.conn_flags = atomic_read_unchecked(&dest->conn_flags);
123779 entry.weight = atomic_read(&dest->weight);
123780 entry.u_threshold = dest->u_threshold;
123781 entry.l_threshold = dest->l_threshold;
123782 @@ -3136,7 +3136,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
123783 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
123784 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
123785 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
123786 - (atomic_read(&dest->conn_flags) &
123787 + (atomic_read_unchecked(&dest->conn_flags) &
123788 IP_VS_CONN_F_FWD_MASK)) ||
123789 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
123790 atomic_read(&dest->weight)) ||
123791 @@ -3836,7 +3836,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
123792 {
123793 int idx;
123794 struct netns_ipvs *ipvs = net_ipvs(net);
123795 - struct ctl_table *tbl;
123796 + ctl_table_no_const *tbl;
123797
123798 atomic_set(&ipvs->dropentry, 0);
123799 spin_lock_init(&ipvs->dropentry_lock);
123800 diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
123801 index 127f140..553d652 100644
123802 --- a/net/netfilter/ipvs/ip_vs_lblc.c
123803 +++ b/net/netfilter/ipvs/ip_vs_lblc.c
123804 @@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
123805 * IPVS LBLC sysctl table
123806 */
123807 #ifdef CONFIG_SYSCTL
123808 -static struct ctl_table vs_vars_table[] = {
123809 +static ctl_table_no_const vs_vars_table[] __read_only = {
123810 {
123811 .procname = "lblc_expiration",
123812 .data = NULL,
123813 diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
123814 index 2229d2d..b32b785 100644
123815 --- a/net/netfilter/ipvs/ip_vs_lblcr.c
123816 +++ b/net/netfilter/ipvs/ip_vs_lblcr.c
123817 @@ -289,7 +289,7 @@ struct ip_vs_lblcr_table {
123818 * IPVS LBLCR sysctl table
123819 */
123820
123821 -static struct ctl_table vs_vars_table[] = {
123822 +static ctl_table_no_const vs_vars_table[] __read_only = {
123823 {
123824 .procname = "lblcr_expiration",
123825 .data = NULL,
123826 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
123827 index 43f1409..4959846 100644
123828 --- a/net/netfilter/ipvs/ip_vs_sync.c
123829 +++ b/net/netfilter/ipvs/ip_vs_sync.c
123830 @@ -612,7 +612,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
123831 cp = cp->control;
123832 if (cp) {
123833 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
123834 - pkts = atomic_add_return(1, &cp->in_pkts);
123835 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123836 else
123837 pkts = sysctl_sync_threshold(ipvs);
123838 ip_vs_sync_conn(net, cp, pkts);
123839 @@ -774,7 +774,7 @@ control:
123840 if (!cp)
123841 return;
123842 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
123843 - pkts = atomic_add_return(1, &cp->in_pkts);
123844 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123845 else
123846 pkts = sysctl_sync_threshold(ipvs);
123847 goto sloop;
123848 @@ -922,7 +922,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
123849
123850 if (opt)
123851 memcpy(&cp->in_seq, opt, sizeof(*opt));
123852 - atomic_set(&cp->in_pkts, sysctl_sync_threshold(ipvs));
123853 + atomic_set_unchecked(&cp->in_pkts, sysctl_sync_threshold(ipvs));
123854 cp->state = state;
123855 cp->old_state = cp->state;
123856 /*
123857 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
123858 index 258a0b0..2082f50 100644
123859 --- a/net/netfilter/ipvs/ip_vs_xmit.c
123860 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
123861 @@ -1259,7 +1259,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
123862 else
123863 rc = NF_ACCEPT;
123864 /* do not touch skb anymore */
123865 - atomic_inc(&cp->in_pkts);
123866 + atomic_inc_unchecked(&cp->in_pkts);
123867 goto out;
123868 }
123869
123870 @@ -1352,7 +1352,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
123871 else
123872 rc = NF_ACCEPT;
123873 /* do not touch skb anymore */
123874 - atomic_inc(&cp->in_pkts);
123875 + atomic_inc_unchecked(&cp->in_pkts);
123876 goto out;
123877 }
123878
123879 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
123880 index 45da11a..ef3e5dc 100644
123881 --- a/net/netfilter/nf_conntrack_acct.c
123882 +++ b/net/netfilter/nf_conntrack_acct.c
123883 @@ -64,7 +64,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
123884 #ifdef CONFIG_SYSCTL
123885 static int nf_conntrack_acct_init_sysctl(struct net *net)
123886 {
123887 - struct ctl_table *table;
123888 + ctl_table_no_const *table;
123889
123890 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
123891 GFP_KERNEL);
123892 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
123893 index c09d6c7..360b90c 100644
123894 --- a/net/netfilter/nf_conntrack_core.c
123895 +++ b/net/netfilter/nf_conntrack_core.c
123896 @@ -1749,6 +1749,10 @@ void nf_conntrack_init_end(void)
123897 #define DYING_NULLS_VAL ((1<<30)+1)
123898 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
123899
123900 +#ifdef CONFIG_GRKERNSEC_HIDESYM
123901 +static atomic_unchecked_t conntrack_cache_id = ATOMIC_INIT(0);
123902 +#endif
123903 +
123904 int nf_conntrack_init_net(struct net *net)
123905 {
123906 int ret = -ENOMEM;
123907 @@ -1773,7 +1777,11 @@ int nf_conntrack_init_net(struct net *net)
123908 if (!net->ct.stat)
123909 goto err_pcpu_lists;
123910
123911 +#ifdef CONFIG_GRKERNSEC_HIDESYM
123912 + net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%08x", atomic_inc_return_unchecked(&conntrack_cache_id));
123913 +#else
123914 net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
123915 +#endif
123916 if (!net->ct.slabname)
123917 goto err_slabname;
123918
123919 diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
123920 index 4e78c57..ec8fb74 100644
123921 --- a/net/netfilter/nf_conntrack_ecache.c
123922 +++ b/net/netfilter/nf_conntrack_ecache.c
123923 @@ -264,7 +264,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = {
123924 #ifdef CONFIG_SYSCTL
123925 static int nf_conntrack_event_init_sysctl(struct net *net)
123926 {
123927 - struct ctl_table *table;
123928 + ctl_table_no_const *table;
123929
123930 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table),
123931 GFP_KERNEL);
123932 diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
123933 index bd9d315..989947e 100644
123934 --- a/net/netfilter/nf_conntrack_helper.c
123935 +++ b/net/netfilter/nf_conntrack_helper.c
123936 @@ -57,7 +57,7 @@ static struct ctl_table helper_sysctl_table[] = {
123937
123938 static int nf_conntrack_helper_init_sysctl(struct net *net)
123939 {
123940 - struct ctl_table *table;
123941 + ctl_table_no_const *table;
123942
123943 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table),
123944 GFP_KERNEL);
123945 diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
123946 index b65d586..beec902 100644
123947 --- a/net/netfilter/nf_conntrack_proto.c
123948 +++ b/net/netfilter/nf_conntrack_proto.c
123949 @@ -52,7 +52,7 @@ nf_ct_register_sysctl(struct net *net,
123950
123951 static void
123952 nf_ct_unregister_sysctl(struct ctl_table_header **header,
123953 - struct ctl_table **table,
123954 + ctl_table_no_const **table,
123955 unsigned int users)
123956 {
123957 if (users > 0)
123958 diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
123959 index 1fb3cac..a35219b 100644
123960 --- a/net/netfilter/nf_conntrack_standalone.c
123961 +++ b/net/netfilter/nf_conntrack_standalone.c
123962 @@ -497,7 +497,7 @@ static struct ctl_table nf_ct_netfilter_table[] = {
123963
123964 static int nf_conntrack_standalone_init_sysctl(struct net *net)
123965 {
123966 - struct ctl_table *table;
123967 + ctl_table_no_const *table;
123968
123969 table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
123970 GFP_KERNEL);
123971 diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c
123972 index 7a394df..bd91a8a 100644
123973 --- a/net/netfilter/nf_conntrack_timestamp.c
123974 +++ b/net/netfilter/nf_conntrack_timestamp.c
123975 @@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = {
123976 #ifdef CONFIG_SYSCTL
123977 static int nf_conntrack_tstamp_init_sysctl(struct net *net)
123978 {
123979 - struct ctl_table *table;
123980 + ctl_table_no_const *table;
123981
123982 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table),
123983 GFP_KERNEL);
123984 diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
123985 index a5d41df..1ff49be 100644
123986 --- a/net/netfilter/nf_log.c
123987 +++ b/net/netfilter/nf_log.c
123988 @@ -391,7 +391,7 @@ static const struct file_operations nflog_file_ops = {
123989
123990 #ifdef CONFIG_SYSCTL
123991 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3];
123992 -static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
123993 +static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only;
123994
123995 static int nf_log_proc_dostring(struct ctl_table *table, int write,
123996 void __user *buffer, size_t *lenp, loff_t *ppos)
123997 @@ -422,13 +422,15 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
123998 rcu_assign_pointer(net->nf.nf_loggers[tindex], logger);
123999 mutex_unlock(&nf_log_mutex);
124000 } else {
124001 + ctl_table_no_const nf_log_table = *table;
124002 +
124003 mutex_lock(&nf_log_mutex);
124004 logger = nft_log_dereference(net->nf.nf_loggers[tindex]);
124005 if (!logger)
124006 - table->data = "NONE";
124007 + nf_log_table.data = "NONE";
124008 else
124009 - table->data = logger->name;
124010 - r = proc_dostring(table, write, buffer, lenp, ppos);
124011 + nf_log_table.data = logger->name;
124012 + r = proc_dostring(&nf_log_table, write, buffer, lenp, ppos);
124013 mutex_unlock(&nf_log_mutex);
124014 }
124015
124016 diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
124017 index c68c1e5..8b5d670 100644
124018 --- a/net/netfilter/nf_sockopt.c
124019 +++ b/net/netfilter/nf_sockopt.c
124020 @@ -43,7 +43,7 @@ int nf_register_sockopt(struct nf_sockopt_ops *reg)
124021 }
124022 }
124023
124024 - list_add(&reg->list, &nf_sockopts);
124025 + pax_list_add((struct list_head *)&reg->list, &nf_sockopts);
124026 out:
124027 mutex_unlock(&nf_sockopt_mutex);
124028 return ret;
124029 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(nf_register_sockopt);
124030 void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
124031 {
124032 mutex_lock(&nf_sockopt_mutex);
124033 - list_del(&reg->list);
124034 + pax_list_del((struct list_head *)&reg->list);
124035 mutex_unlock(&nf_sockopt_mutex);
124036 }
124037 EXPORT_SYMBOL(nf_unregister_sockopt);
124038 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
124039 index 4670821..a6c3c47d 100644
124040 --- a/net/netfilter/nfnetlink_log.c
124041 +++ b/net/netfilter/nfnetlink_log.c
124042 @@ -84,7 +84,7 @@ static int nfnl_log_net_id __read_mostly;
124043 struct nfnl_log_net {
124044 spinlock_t instances_lock;
124045 struct hlist_head instance_table[INSTANCE_BUCKETS];
124046 - atomic_t global_seq;
124047 + atomic_unchecked_t global_seq;
124048 };
124049
124050 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
124051 @@ -572,7 +572,7 @@ __build_packet_message(struct nfnl_log_net *log,
124052 /* global sequence number */
124053 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
124054 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
124055 - htonl(atomic_inc_return(&log->global_seq))))
124056 + htonl(atomic_inc_return_unchecked(&log->global_seq))))
124057 goto nla_put_failure;
124058
124059 if (data_len) {
124060 diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
124061 index 9c8fab0..5080c7c 100644
124062 --- a/net/netfilter/nft_compat.c
124063 +++ b/net/netfilter/nft_compat.c
124064 @@ -322,14 +322,7 @@ static void nft_match_eval(const struct nft_expr *expr,
124065 return;
124066 }
124067
124068 - switch (ret ? 1 : 0) {
124069 - case 1:
124070 - regs->verdict.code = NFT_CONTINUE;
124071 - break;
124072 - case 0:
124073 - regs->verdict.code = NFT_BREAK;
124074 - break;
124075 - }
124076 + regs->verdict.code = ret ? NFT_CONTINUE : NFT_BREAK;
124077 }
124078
124079 static const struct nla_policy nft_match_policy[NFTA_MATCH_MAX + 1] = {
124080 diff --git a/net/netfilter/xt_gradm.c b/net/netfilter/xt_gradm.c
124081 new file mode 100644
124082 index 0000000..a7cb915
124083 --- /dev/null
124084 +++ b/net/netfilter/xt_gradm.c
124085 @@ -0,0 +1,51 @@
124086 +/*
124087 + * gradm match for netfilter
124088 + * Copyright (c) Zbigniew Krzystolik, 2010
124089 + *
124090 + * This program is free software; you can redistribute it and/or modify
124091 + * it under the terms of the GNU General Public License; either version
124092 + * 2 or 3 as published by the Free Software Foundation.
124093 + */
124094 +#include <linux/module.h>
124095 +#include <linux/moduleparam.h>
124096 +#include <linux/skbuff.h>
124097 +#include <linux/netfilter/x_tables.h>
124098 +#include <linux/grsecurity.h>
124099 +#include <linux/netfilter/xt_gradm.h>
124100 +
124101 +static bool
124102 +gradm_mt(const struct sk_buff *skb, struct xt_action_param *par)
124103 +{
124104 + const struct xt_gradm_mtinfo *info = par->matchinfo;
124105 + bool retval = false;
124106 + if (gr_acl_is_enabled())
124107 + retval = true;
124108 + return retval ^ info->invflags;
124109 +}
124110 +
124111 +static struct xt_match gradm_mt_reg __read_mostly = {
124112 + .name = "gradm",
124113 + .revision = 0,
124114 + .family = NFPROTO_UNSPEC,
124115 + .match = gradm_mt,
124116 + .matchsize = XT_ALIGN(sizeof(struct xt_gradm_mtinfo)),
124117 + .me = THIS_MODULE,
124118 +};
124119 +
124120 +static int __init gradm_mt_init(void)
124121 +{
124122 + return xt_register_match(&gradm_mt_reg);
124123 +}
124124 +
124125 +static void __exit gradm_mt_exit(void)
124126 +{
124127 + xt_unregister_match(&gradm_mt_reg);
124128 +}
124129 +
124130 +module_init(gradm_mt_init);
124131 +module_exit(gradm_mt_exit);
124132 +MODULE_AUTHOR("Zbigniew Krzystolik <zbyniu@destrukcja.pl>");
124133 +MODULE_DESCRIPTION("Xtables: Grsecurity RBAC match");
124134 +MODULE_LICENSE("GPL");
124135 +MODULE_ALIAS("ipt_gradm");
124136 +MODULE_ALIAS("ip6t_gradm");
124137 diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
124138 index 1786968..1ec6dac 100644
124139 --- a/net/netfilter/xt_hashlimit.c
124140 +++ b/net/netfilter/xt_hashlimit.c
124141 @@ -869,11 +869,11 @@ static int __net_init hashlimit_proc_net_init(struct net *net)
124142 {
124143 struct hashlimit_net *hashlimit_net = hashlimit_pernet(net);
124144
124145 - hashlimit_net->ipt_hashlimit = proc_mkdir("ipt_hashlimit", net->proc_net);
124146 + hashlimit_net->ipt_hashlimit = proc_mkdir_restrict("ipt_hashlimit", net->proc_net);
124147 if (!hashlimit_net->ipt_hashlimit)
124148 return -ENOMEM;
124149 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
124150 - hashlimit_net->ip6t_hashlimit = proc_mkdir("ip6t_hashlimit", net->proc_net);
124151 + hashlimit_net->ip6t_hashlimit = proc_mkdir_restrict("ip6t_hashlimit", net->proc_net);
124152 if (!hashlimit_net->ip6t_hashlimit) {
124153 remove_proc_entry("ipt_hashlimit", net->proc_net);
124154 return -ENOMEM;
124155 diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
124156 index 45e1b30..a764f94 100644
124157 --- a/net/netfilter/xt_recent.c
124158 +++ b/net/netfilter/xt_recent.c
124159 @@ -642,7 +642,7 @@ static int __net_init recent_proc_net_init(struct net *net)
124160 {
124161 struct recent_net *recent_net = recent_pernet(net);
124162
124163 - recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net);
124164 + recent_net->xt_recent = proc_mkdir_restrict("xt_recent", net->proc_net);
124165 if (!recent_net->xt_recent)
124166 return -ENOMEM;
124167 return 0;
124168 diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
124169 index 11de55e..f25e448 100644
124170 --- a/net/netfilter/xt_statistic.c
124171 +++ b/net/netfilter/xt_statistic.c
124172 @@ -19,7 +19,7 @@
124173 #include <linux/module.h>
124174
124175 struct xt_statistic_priv {
124176 - atomic_t count;
124177 + atomic_unchecked_t count;
124178 } ____cacheline_aligned_in_smp;
124179
124180 MODULE_LICENSE("GPL");
124181 @@ -42,9 +42,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
124182 break;
124183 case XT_STATISTIC_MODE_NTH:
124184 do {
124185 - oval = atomic_read(&info->master->count);
124186 + oval = atomic_read_unchecked(&info->master->count);
124187 nval = (oval == info->u.nth.every) ? 0 : oval + 1;
124188 - } while (atomic_cmpxchg(&info->master->count, oval, nval) != oval);
124189 + } while (atomic_cmpxchg_unchecked(&info->master->count, oval, nval) != oval);
124190 if (nval == 0)
124191 ret = !ret;
124192 break;
124193 @@ -64,7 +64,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
124194 info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
124195 if (info->master == NULL)
124196 return -ENOMEM;
124197 - atomic_set(&info->master->count, info->u.nth.count);
124198 + atomic_set_unchecked(&info->master->count, info->u.nth.count);
124199
124200 return 0;
124201 }
124202 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
124203 index fafe33b..8896912 100644
124204 --- a/net/netlink/af_netlink.c
124205 +++ b/net/netlink/af_netlink.c
124206 @@ -287,7 +287,7 @@ static void netlink_overrun(struct sock *sk)
124207 sk->sk_error_report(sk);
124208 }
124209 }
124210 - atomic_inc(&sk->sk_drops);
124211 + atomic_inc_unchecked(&sk->sk_drops);
124212 }
124213
124214 static void netlink_rcv_wake(struct sock *sk)
124215 @@ -3183,7 +3183,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
124216 sk_wmem_alloc_get(s),
124217 nlk->cb_running,
124218 atomic_read(&s->sk_refcnt),
124219 - atomic_read(&s->sk_drops),
124220 + atomic_read_unchecked(&s->sk_drops),
124221 sock_i_ino(s)
124222 );
124223
124224 diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
124225 index b393412..3b2f7eb 100644
124226 --- a/net/openvswitch/vport-internal_dev.c
124227 +++ b/net/openvswitch/vport-internal_dev.c
124228 @@ -147,7 +147,7 @@ static const struct net_device_ops internal_dev_netdev_ops = {
124229 .ndo_get_stats64 = internal_get_stats,
124230 };
124231
124232 -static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
124233 +static struct rtnl_link_ops internal_dev_link_ops = {
124234 .kind = "openvswitch",
124235 };
124236
124237 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
124238 index 4695a36..b0b92d0 100644
124239 --- a/net/packet/af_packet.c
124240 +++ b/net/packet/af_packet.c
124241 @@ -278,7 +278,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
124242
124243 return ret;
124244 drop:
124245 - atomic_long_inc(&dev->tx_dropped);
124246 + atomic_long_inc_unchecked(&dev->tx_dropped);
124247 kfree_skb(skb);
124248 return NET_XMIT_DROP;
124249 }
124250 @@ -2071,7 +2071,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
124251 drop_n_acct:
124252 spin_lock(&sk->sk_receive_queue.lock);
124253 po->stats.stats1.tp_drops++;
124254 - atomic_inc(&sk->sk_drops);
124255 + atomic_inc_unchecked(&sk->sk_drops);
124256 spin_unlock(&sk->sk_receive_queue.lock);
124257
124258 drop_n_restore:
124259 @@ -3762,7 +3762,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
124260 case PACKET_HDRLEN:
124261 if (len > sizeof(int))
124262 len = sizeof(int);
124263 - if (copy_from_user(&val, optval, len))
124264 + if (len > sizeof(val) || copy_from_user(&val, optval, len))
124265 return -EFAULT;
124266 switch (val) {
124267 case TPACKET_V1:
124268 @@ -3817,7 +3817,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
124269 len = lv;
124270 if (put_user(len, optlen))
124271 return -EFAULT;
124272 - if (copy_to_user(optval, data, len))
124273 + if (len > sizeof(st) || copy_to_user(optval, data, len))
124274 return -EFAULT;
124275 return 0;
124276 }
124277 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
124278 index 850a86c..8884a37 100644
124279 --- a/net/phonet/pep.c
124280 +++ b/net/phonet/pep.c
124281 @@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
124282
124283 case PNS_PEP_CTRL_REQ:
124284 if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) {
124285 - atomic_inc(&sk->sk_drops);
124286 + atomic_inc_unchecked(&sk->sk_drops);
124287 break;
124288 }
124289 __skb_pull(skb, 4);
124290 @@ -409,7 +409,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
124291 }
124292
124293 if (pn->rx_credits == 0) {
124294 - atomic_inc(&sk->sk_drops);
124295 + atomic_inc_unchecked(&sk->sk_drops);
124296 err = -ENOBUFS;
124297 break;
124298 }
124299 @@ -579,7 +579,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
124300 }
124301
124302 if (pn->rx_credits == 0) {
124303 - atomic_inc(&sk->sk_drops);
124304 + atomic_inc_unchecked(&sk->sk_drops);
124305 err = NET_RX_DROP;
124306 break;
124307 }
124308 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
124309 index d575ef4..1dedc31 100644
124310 --- a/net/phonet/socket.c
124311 +++ b/net/phonet/socket.c
124312 @@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
124313 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
124314 sock_i_ino(sk),
124315 atomic_read(&sk->sk_refcnt), sk,
124316 - atomic_read(&sk->sk_drops));
124317 + atomic_read_unchecked(&sk->sk_drops));
124318 }
124319 seq_pad(seq, '\n');
124320 return 0;
124321 diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c
124322 index c02a8c4..3c5b600 100644
124323 --- a/net/phonet/sysctl.c
124324 +++ b/net/phonet/sysctl.c
124325 @@ -67,7 +67,7 @@ static int proc_local_port_range(struct ctl_table *table, int write,
124326 {
124327 int ret;
124328 int range[2] = {local_port_range[0], local_port_range[1]};
124329 - struct ctl_table tmp = {
124330 + ctl_table_no_const tmp = {
124331 .data = &range,
124332 .maxlen = sizeof(range),
124333 .mode = table->mode,
124334 diff --git a/net/rds/cong.c b/net/rds/cong.c
124335 index e6144b8..4f9fda6 100644
124336 --- a/net/rds/cong.c
124337 +++ b/net/rds/cong.c
124338 @@ -78,7 +78,7 @@
124339 * finds that the saved generation number is smaller than the global generation
124340 * number, it wakes up the process.
124341 */
124342 -static atomic_t rds_cong_generation = ATOMIC_INIT(0);
124343 +static atomic_unchecked_t rds_cong_generation = ATOMIC_INIT(0);
124344
124345 /*
124346 * Congestion monitoring
124347 @@ -247,7 +247,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
124348 rdsdebug("waking map %p for %pI4\n",
124349 map, &map->m_addr);
124350 rds_stats_inc(s_cong_update_received);
124351 - atomic_inc(&rds_cong_generation);
124352 + atomic_inc_unchecked(&rds_cong_generation);
124353 if (waitqueue_active(&map->m_waitq))
124354 wake_up(&map->m_waitq);
124355 if (waitqueue_active(&rds_poll_waitq))
124356 @@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
124357
124358 int rds_cong_updated_since(unsigned long *recent)
124359 {
124360 - unsigned long gen = atomic_read(&rds_cong_generation);
124361 + unsigned long gen = atomic_read_unchecked(&rds_cong_generation);
124362
124363 if (likely(*recent == gen))
124364 return 0;
124365 diff --git a/net/rds/ib.h b/net/rds/ib.h
124366 index aae60fd..aba6db3 100644
124367 --- a/net/rds/ib.h
124368 +++ b/net/rds/ib.h
124369 @@ -127,7 +127,7 @@ struct rds_ib_connection {
124370 /* sending acks */
124371 unsigned long i_ack_flags;
124372 #ifdef KERNEL_HAS_ATOMIC64
124373 - atomic64_t i_ack_next; /* next ACK to send */
124374 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
124375 #else
124376 spinlock_t i_ack_lock; /* protect i_ack_next */
124377 u64 i_ack_next; /* next ACK to send */
124378 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
124379 index 9043f5c..a9b6127 100644
124380 --- a/net/rds/ib_cm.c
124381 +++ b/net/rds/ib_cm.c
124382 @@ -701,7 +701,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
124383 /* Clear the ACK state */
124384 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
124385 #ifdef KERNEL_HAS_ATOMIC64
124386 - atomic64_set(&ic->i_ack_next, 0);
124387 + atomic64_set_unchecked(&ic->i_ack_next, 0);
124388 #else
124389 ic->i_ack_next = 0;
124390 #endif
124391 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
124392 index f43831e..4e09c4c 100644
124393 --- a/net/rds/ib_recv.c
124394 +++ b/net/rds/ib_recv.c
124395 @@ -625,7 +625,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
124396 static void rds_ib_set_ack(struct rds_ib_connection *ic, u64 seq,
124397 int ack_required)
124398 {
124399 - atomic64_set(&ic->i_ack_next, seq);
124400 + atomic64_set_unchecked(&ic->i_ack_next, seq);
124401 if (ack_required) {
124402 smp_mb__before_atomic();
124403 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
124404 @@ -637,7 +637,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
124405 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
124406 smp_mb__after_atomic();
124407
124408 - return atomic64_read(&ic->i_ack_next);
124409 + return atomic64_read_unchecked(&ic->i_ack_next);
124410 }
124411 #endif
124412
124413 diff --git a/net/rds/iw.h b/net/rds/iw.h
124414 index cbe6674..dc9eb89 100644
124415 --- a/net/rds/iw.h
124416 +++ b/net/rds/iw.h
124417 @@ -134,7 +134,7 @@ struct rds_iw_connection {
124418 /* sending acks */
124419 unsigned long i_ack_flags;
124420 #ifdef KERNEL_HAS_ATOMIC64
124421 - atomic64_t i_ack_next; /* next ACK to send */
124422 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
124423 #else
124424 spinlock_t i_ack_lock; /* protect i_ack_next */
124425 u64 i_ack_next; /* next ACK to send */
124426 diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
124427 index a6553a6..a6c6f87 100644
124428 --- a/net/rds/iw_cm.c
124429 +++ b/net/rds/iw_cm.c
124430 @@ -667,7 +667,7 @@ void rds_iw_conn_shutdown(struct rds_connection *conn)
124431 /* Clear the ACK state */
124432 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
124433 #ifdef KERNEL_HAS_ATOMIC64
124434 - atomic64_set(&ic->i_ack_next, 0);
124435 + atomic64_set_unchecked(&ic->i_ack_next, 0);
124436 #else
124437 ic->i_ack_next = 0;
124438 #endif
124439 diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
124440 index a66d179..cf1e258 100644
124441 --- a/net/rds/iw_recv.c
124442 +++ b/net/rds/iw_recv.c
124443 @@ -412,7 +412,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
124444 static void rds_iw_set_ack(struct rds_iw_connection *ic, u64 seq,
124445 int ack_required)
124446 {
124447 - atomic64_set(&ic->i_ack_next, seq);
124448 + atomic64_set_unchecked(&ic->i_ack_next, seq);
124449 if (ack_required) {
124450 smp_mb__before_atomic();
124451 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
124452 @@ -424,7 +424,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
124453 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
124454 smp_mb__after_atomic();
124455
124456 - return atomic64_read(&ic->i_ack_next);
124457 + return atomic64_read_unchecked(&ic->i_ack_next);
124458 }
124459 #endif
124460
124461 diff --git a/net/rds/rds.h b/net/rds/rds.h
124462 index afb4048..daac0e0 100644
124463 --- a/net/rds/rds.h
124464 +++ b/net/rds/rds.h
124465 @@ -460,7 +460,7 @@ struct rds_transport {
124466 void (*sync_mr)(void *trans_private, int direction);
124467 void (*free_mr)(void *trans_private, int invalidate);
124468 void (*flush_mrs)(void);
124469 -};
124470 +} __do_const;
124471
124472 struct rds_sock {
124473 struct sock rs_sk;
124474 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
124475 index c42b60b..edad120 100644
124476 --- a/net/rds/tcp.c
124477 +++ b/net/rds/tcp.c
124478 @@ -62,7 +62,7 @@ void rds_tcp_nonagle(struct socket *sock)
124479 int val = 1;
124480
124481 set_fs(KERNEL_DS);
124482 - sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __user *)&val,
124483 + sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __force_user *)&val,
124484 sizeof(val));
124485 set_fs(oldfs);
124486 }
124487 diff --git a/net/rds/tcp_send.c b/net/rds/tcp_send.c
124488 index 53b17ca..45463e7 100644
124489 --- a/net/rds/tcp_send.c
124490 +++ b/net/rds/tcp_send.c
124491 @@ -43,7 +43,7 @@ static void rds_tcp_cork(struct socket *sock, int val)
124492
124493 oldfs = get_fs();
124494 set_fs(KERNEL_DS);
124495 - sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __user *)&val,
124496 + sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __force_user *)&val,
124497 sizeof(val));
124498 set_fs(oldfs);
124499 }
124500 diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
124501 index 25d60ed..ec9ae2c 100644
124502 --- a/net/rxrpc/af_rxrpc.c
124503 +++ b/net/rxrpc/af_rxrpc.c
124504 @@ -40,7 +40,7 @@ static const struct proto_ops rxrpc_rpc_ops;
124505 __be32 rxrpc_epoch;
124506
124507 /* current debugging ID */
124508 -atomic_t rxrpc_debug_id;
124509 +atomic_unchecked_t rxrpc_debug_id;
124510
124511 /* count of skbs currently in use */
124512 atomic_t rxrpc_n_skbs;
124513 diff --git a/net/rxrpc/ar-ack.c b/net/rxrpc/ar-ack.c
124514 index e0547f5..a171f7a 100644
124515 --- a/net/rxrpc/ar-ack.c
124516 +++ b/net/rxrpc/ar-ack.c
124517 @@ -224,7 +224,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
124518
124519 _enter("{%d,%d,%d,%d},",
124520 call->acks_hard, call->acks_unacked,
124521 - atomic_read(&call->sequence),
124522 + atomic_read_unchecked(&call->sequence),
124523 CIRC_CNT(call->acks_head, call->acks_tail, call->acks_winsz));
124524
124525 stop = false;
124526 @@ -248,7 +248,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
124527
124528 /* each Tx packet has a new serial number */
124529 sp->hdr.serial =
124530 - htonl(atomic_inc_return(&call->conn->serial));
124531 + htonl(atomic_inc_return_unchecked(&call->conn->serial));
124532
124533 hdr = (struct rxrpc_header *) txb->head;
124534 hdr->serial = sp->hdr.serial;
124535 @@ -452,7 +452,7 @@ static void rxrpc_rotate_tx_window(struct rxrpc_call *call, u32 hard)
124536 */
124537 static void rxrpc_clear_tx_window(struct rxrpc_call *call)
124538 {
124539 - rxrpc_rotate_tx_window(call, atomic_read(&call->sequence));
124540 + rxrpc_rotate_tx_window(call, atomic_read_unchecked(&call->sequence));
124541 }
124542
124543 /*
124544 @@ -678,7 +678,7 @@ process_further:
124545
124546 latest = ntohl(sp->hdr.serial);
124547 hard = ntohl(ack.firstPacket);
124548 - tx = atomic_read(&call->sequence);
124549 + tx = atomic_read_unchecked(&call->sequence);
124550
124551 _proto("Rx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
124552 latest,
124553 @@ -1210,7 +1210,7 @@ void rxrpc_process_call(struct work_struct *work)
124554 goto maybe_reschedule;
124555
124556 send_ACK_with_skew:
124557 - ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) -
124558 + ack.maxSkew = htons(atomic_read_unchecked(&call->conn->hi_serial) -
124559 ntohl(ack.serial));
124560 send_ACK:
124561 mtu = call->conn->trans->peer->if_mtu;
124562 @@ -1222,7 +1222,7 @@ send_ACK:
124563 ackinfo.rxMTU = htonl(rxrpc_rx_mtu);
124564 ackinfo.jumbo_max = htonl(rxrpc_rx_jumbo_max);
124565
124566 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
124567 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
124568 _proto("Tx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
124569 ntohl(hdr.serial),
124570 ntohs(ack.maxSkew),
124571 @@ -1240,7 +1240,7 @@ send_ACK:
124572 send_message:
124573 _debug("send message");
124574
124575 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
124576 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
124577 _proto("Tx %s %%%u", rxrpc_pkts[hdr.type], ntohl(hdr.serial));
124578 send_message_2:
124579
124580 diff --git a/net/rxrpc/ar-call.c b/net/rxrpc/ar-call.c
124581 index a9e05db..194e793 100644
124582 --- a/net/rxrpc/ar-call.c
124583 +++ b/net/rxrpc/ar-call.c
124584 @@ -232,7 +232,7 @@ static struct rxrpc_call *rxrpc_alloc_call(gfp_t gfp)
124585 spin_lock_init(&call->lock);
124586 rwlock_init(&call->state_lock);
124587 atomic_set(&call->usage, 1);
124588 - call->debug_id = atomic_inc_return(&rxrpc_debug_id);
124589 + call->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124590 call->state = RXRPC_CALL_CLIENT_SEND_REQUEST;
124591
124592 memset(&call->sock_node, 0xed, sizeof(call->sock_node));
124593 diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c
124594 index 6631f4f..bfdf056 100644
124595 --- a/net/rxrpc/ar-connection.c
124596 +++ b/net/rxrpc/ar-connection.c
124597 @@ -210,7 +210,7 @@ static struct rxrpc_connection *rxrpc_alloc_connection(gfp_t gfp)
124598 rwlock_init(&conn->lock);
124599 spin_lock_init(&conn->state_lock);
124600 atomic_set(&conn->usage, 1);
124601 - conn->debug_id = atomic_inc_return(&rxrpc_debug_id);
124602 + conn->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124603 conn->avail_calls = RXRPC_MAXCALLS;
124604 conn->size_align = 4;
124605 conn->header_size = sizeof(struct rxrpc_header);
124606 diff --git a/net/rxrpc/ar-connevent.c b/net/rxrpc/ar-connevent.c
124607 index e7ed43a..6afa140 100644
124608 --- a/net/rxrpc/ar-connevent.c
124609 +++ b/net/rxrpc/ar-connevent.c
124610 @@ -109,7 +109,7 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
124611
124612 len = iov[0].iov_len + iov[1].iov_len;
124613
124614 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
124615 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124616 _proto("Tx CONN ABORT %%%u { %d }", ntohl(hdr.serial), abort_code);
124617
124618 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
124619 diff --git a/net/rxrpc/ar-input.c b/net/rxrpc/ar-input.c
124620 index 4505a69..fe73096 100644
124621 --- a/net/rxrpc/ar-input.c
124622 +++ b/net/rxrpc/ar-input.c
124623 @@ -331,9 +331,9 @@ void rxrpc_fast_process_packet(struct rxrpc_call *call, struct sk_buff *skb)
124624 /* track the latest serial number on this connection for ACK packet
124625 * information */
124626 serial = ntohl(sp->hdr.serial);
124627 - hi_serial = atomic_read(&call->conn->hi_serial);
124628 + hi_serial = atomic_read_unchecked(&call->conn->hi_serial);
124629 while (serial > hi_serial)
124630 - hi_serial = atomic_cmpxchg(&call->conn->hi_serial, hi_serial,
124631 + hi_serial = atomic_cmpxchg_unchecked(&call->conn->hi_serial, hi_serial,
124632 serial);
124633
124634 /* request ACK generation for any ACK or DATA packet that requests
124635 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
124636 index aef1bd2..97736c3 100644
124637 --- a/net/rxrpc/ar-internal.h
124638 +++ b/net/rxrpc/ar-internal.h
124639 @@ -274,8 +274,8 @@ struct rxrpc_connection {
124640 int error; /* error code for local abort */
124641 int debug_id; /* debug ID for printks */
124642 unsigned int call_counter; /* call ID counter */
124643 - atomic_t serial; /* packet serial number counter */
124644 - atomic_t hi_serial; /* highest serial number received */
124645 + atomic_unchecked_t serial; /* packet serial number counter */
124646 + atomic_unchecked_t hi_serial; /* highest serial number received */
124647 u8 avail_calls; /* number of calls available */
124648 u8 size_align; /* data size alignment (for security) */
124649 u8 header_size; /* rxrpc + security header size */
124650 @@ -348,7 +348,7 @@ struct rxrpc_call {
124651 spinlock_t lock;
124652 rwlock_t state_lock; /* lock for state transition */
124653 atomic_t usage;
124654 - atomic_t sequence; /* Tx data packet sequence counter */
124655 + atomic_unchecked_t sequence; /* Tx data packet sequence counter */
124656 u32 abort_code; /* local/remote abort code */
124657 enum { /* current state of call */
124658 RXRPC_CALL_CLIENT_SEND_REQUEST, /* - client sending request phase */
124659 @@ -433,7 +433,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
124660 */
124661 extern atomic_t rxrpc_n_skbs;
124662 extern __be32 rxrpc_epoch;
124663 -extern atomic_t rxrpc_debug_id;
124664 +extern atomic_unchecked_t rxrpc_debug_id;
124665 extern struct workqueue_struct *rxrpc_workqueue;
124666
124667 /*
124668 diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c
124669 index 78483b4..b1c0e1e 100644
124670 --- a/net/rxrpc/ar-local.c
124671 +++ b/net/rxrpc/ar-local.c
124672 @@ -53,7 +53,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
124673 spin_lock_init(&local->lock);
124674 rwlock_init(&local->services_lock);
124675 atomic_set(&local->usage, 1);
124676 - local->debug_id = atomic_inc_return(&rxrpc_debug_id);
124677 + local->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124678 memcpy(&local->srx, srx, sizeof(*srx));
124679 }
124680
124681 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
124682 index c004280..ab1ed5a 100644
124683 --- a/net/rxrpc/ar-output.c
124684 +++ b/net/rxrpc/ar-output.c
124685 @@ -648,14 +648,14 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
124686 memset(skb_put(skb, pad), 0, pad);
124687 }
124688
124689 - seq = atomic_inc_return(&call->sequence);
124690 + seq = atomic_inc_return_unchecked(&call->sequence);
124691
124692 sp->hdr.epoch = conn->epoch;
124693 sp->hdr.cid = call->cid;
124694 sp->hdr.callNumber = call->call_id;
124695 sp->hdr.seq = htonl(seq);
124696 sp->hdr.serial =
124697 - htonl(atomic_inc_return(&conn->serial));
124698 + htonl(atomic_inc_return_unchecked(&conn->serial));
124699 sp->hdr.type = RXRPC_PACKET_TYPE_DATA;
124700 sp->hdr.userStatus = 0;
124701 sp->hdr.securityIndex = conn->security_ix;
124702 diff --git a/net/rxrpc/ar-peer.c b/net/rxrpc/ar-peer.c
124703 index bebaa43..2644591 100644
124704 --- a/net/rxrpc/ar-peer.c
124705 +++ b/net/rxrpc/ar-peer.c
124706 @@ -72,7 +72,7 @@ static struct rxrpc_peer *rxrpc_alloc_peer(struct sockaddr_rxrpc *srx,
124707 INIT_LIST_HEAD(&peer->error_targets);
124708 spin_lock_init(&peer->lock);
124709 atomic_set(&peer->usage, 1);
124710 - peer->debug_id = atomic_inc_return(&rxrpc_debug_id);
124711 + peer->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124712 memcpy(&peer->srx, srx, sizeof(*srx));
124713
124714 rxrpc_assess_MTU_size(peer);
124715 diff --git a/net/rxrpc/ar-proc.c b/net/rxrpc/ar-proc.c
124716 index 38047f7..9f48511 100644
124717 --- a/net/rxrpc/ar-proc.c
124718 +++ b/net/rxrpc/ar-proc.c
124719 @@ -164,8 +164,8 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
124720 atomic_read(&conn->usage),
124721 rxrpc_conn_states[conn->state],
124722 key_serial(conn->key),
124723 - atomic_read(&conn->serial),
124724 - atomic_read(&conn->hi_serial));
124725 + atomic_read_unchecked(&conn->serial),
124726 + atomic_read_unchecked(&conn->hi_serial));
124727
124728 return 0;
124729 }
124730 diff --git a/net/rxrpc/ar-transport.c b/net/rxrpc/ar-transport.c
124731 index 1976dec..aa70be5 100644
124732 --- a/net/rxrpc/ar-transport.c
124733 +++ b/net/rxrpc/ar-transport.c
124734 @@ -51,7 +51,7 @@ static struct rxrpc_transport *rxrpc_alloc_transport(struct rxrpc_local *local,
124735 spin_lock_init(&trans->client_lock);
124736 rwlock_init(&trans->conn_lock);
124737 atomic_set(&trans->usage, 1);
124738 - trans->debug_id = atomic_inc_return(&rxrpc_debug_id);
124739 + trans->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124740
124741 if (peer->srx.transport.family == AF_INET) {
124742 switch (peer->srx.transport_type) {
124743 diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
124744 index f226709..0e735a8 100644
124745 --- a/net/rxrpc/rxkad.c
124746 +++ b/net/rxrpc/rxkad.c
124747 @@ -610,7 +610,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
124748
124749 len = iov[0].iov_len + iov[1].iov_len;
124750
124751 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
124752 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124753 _proto("Tx CHALLENGE %%%u", ntohl(hdr.serial));
124754
124755 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
124756 @@ -660,7 +660,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
124757
124758 len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;
124759
124760 - hdr->serial = htonl(atomic_inc_return(&conn->serial));
124761 + hdr->serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124762 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
124763
124764 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
124765 diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
124766 index 7ec667d..b5c2cf2 100644
124767 --- a/net/sched/sch_api.c
124768 +++ b/net/sched/sch_api.c
124769 @@ -950,7 +950,7 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
124770 }
124771 lockdep_set_class(qdisc_lock(sch), &qdisc_tx_lock);
124772 if (!netif_is_multiqueue(dev))
124773 - sch->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124774 + sch->flags |= TCQ_F_ONETXQUEUE;
124775 }
124776
124777 sch->handle = handle;
124778 diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
124779 index e82a1ad..7def03d 100644
124780 --- a/net/sched/sch_generic.c
124781 +++ b/net/sched/sch_generic.c
124782 @@ -349,7 +349,7 @@ void netif_carrier_on(struct net_device *dev)
124783 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
124784 if (dev->reg_state == NETREG_UNINITIALIZED)
124785 return;
124786 - atomic_inc(&dev->carrier_changes);
124787 + atomic_inc_unchecked(&dev->carrier_changes);
124788 linkwatch_fire_event(dev);
124789 if (netif_running(dev))
124790 __netdev_watchdog_up(dev);
124791 @@ -368,7 +368,7 @@ void netif_carrier_off(struct net_device *dev)
124792 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
124793 if (dev->reg_state == NETREG_UNINITIALIZED)
124794 return;
124795 - atomic_inc(&dev->carrier_changes);
124796 + atomic_inc_unchecked(&dev->carrier_changes);
124797 linkwatch_fire_event(dev);
124798 }
124799 }
124800 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
124801 index e917d27..13e2a4c 100644
124802 --- a/net/sctp/ipv6.c
124803 +++ b/net/sctp/ipv6.c
124804 @@ -973,7 +973,7 @@ static const struct inet6_protocol sctpv6_protocol = {
124805 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
124806 };
124807
124808 -static struct sctp_af sctp_af_inet6 = {
124809 +static struct sctp_af sctp_af_inet6 __read_only = {
124810 .sa_family = AF_INET6,
124811 .sctp_xmit = sctp_v6_xmit,
124812 .setsockopt = ipv6_setsockopt,
124813 @@ -1003,7 +1003,7 @@ static struct sctp_af sctp_af_inet6 = {
124814 #endif
124815 };
124816
124817 -static struct sctp_pf sctp_pf_inet6 = {
124818 +static struct sctp_pf sctp_pf_inet6 __read_only = {
124819 .event_msgname = sctp_inet6_event_msgname,
124820 .skb_msgname = sctp_inet6_skb_msgname,
124821 .af_supported = sctp_inet6_af_supported,
124822 @@ -1030,7 +1030,7 @@ void sctp_v6_pf_init(void)
124823
124824 void sctp_v6_pf_exit(void)
124825 {
124826 - list_del(&sctp_af_inet6.list);
124827 + pax_list_del(&sctp_af_inet6.list);
124828 }
124829
124830 /* Initialize IPv6 support and register with socket layer. */
124831 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
124832 index 3d9ea9a..d3aee1a 100644
124833 --- a/net/sctp/protocol.c
124834 +++ b/net/sctp/protocol.c
124835 @@ -856,8 +856,10 @@ int sctp_register_af(struct sctp_af *af)
124836 return 0;
124837 }
124838
124839 + pax_open_kernel();
124840 INIT_LIST_HEAD(&af->list);
124841 - list_add_tail(&af->list, &sctp_address_families);
124842 + pax_close_kernel();
124843 + pax_list_add_tail(&af->list, &sctp_address_families);
124844 return 1;
124845 }
124846
124847 @@ -987,7 +989,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb,
124848
124849 static struct sctp_af sctp_af_inet;
124850
124851 -static struct sctp_pf sctp_pf_inet = {
124852 +static struct sctp_pf sctp_pf_inet __read_only = {
124853 .event_msgname = sctp_inet_event_msgname,
124854 .skb_msgname = sctp_inet_skb_msgname,
124855 .af_supported = sctp_inet_af_supported,
124856 @@ -1059,7 +1061,7 @@ static const struct net_protocol sctp_protocol = {
124857 };
124858
124859 /* IPv4 address related functions. */
124860 -static struct sctp_af sctp_af_inet = {
124861 +static struct sctp_af sctp_af_inet __read_only = {
124862 .sa_family = AF_INET,
124863 .sctp_xmit = sctp_v4_xmit,
124864 .setsockopt = ip_setsockopt,
124865 @@ -1143,7 +1145,7 @@ static void sctp_v4_pf_init(void)
124866
124867 static void sctp_v4_pf_exit(void)
124868 {
124869 - list_del(&sctp_af_inet.list);
124870 + pax_list_del(&sctp_af_inet.list);
124871 }
124872
124873 static int sctp_v4_protosw_init(void)
124874 diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
124875 index 6098d4c..9d87fbd 100644
124876 --- a/net/sctp/sm_sideeffect.c
124877 +++ b/net/sctp/sm_sideeffect.c
124878 @@ -443,7 +443,7 @@ static void sctp_generate_sack_event(unsigned long data)
124879 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK);
124880 }
124881
124882 -sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
124883 +sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
124884 NULL,
124885 sctp_generate_t1_cookie_event,
124886 sctp_generate_t1_init_event,
124887 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
124888 index 3ec88be..a8d9d222 100644
124889 --- a/net/sctp/socket.c
124890 +++ b/net/sctp/socket.c
124891 @@ -972,7 +972,7 @@ static int sctp_setsockopt_bindx(struct sock *sk,
124892 return -EFAULT;
124893
124894 /* Alloc space for the address array in kernel memory. */
124895 - kaddrs = kmalloc(addrs_size, GFP_KERNEL);
124896 + kaddrs = kmalloc(addrs_size, GFP_USER | __GFP_NOWARN);
124897 if (unlikely(!kaddrs))
124898 return -ENOMEM;
124899
124900 @@ -1301,8 +1301,9 @@ static int __sctp_setsockopt_connectx(struct sock *sk,
124901 int addrs_size,
124902 sctp_assoc_t *assoc_id)
124903 {
124904 - int err = 0;
124905 struct sockaddr *kaddrs;
124906 + gfp_t gfp = GFP_KERNEL;
124907 + int err = 0;
124908
124909 pr_debug("%s: sk:%p addrs:%p addrs_size:%d\n",
124910 __func__, sk, addrs, addrs_size);
124911 @@ -1315,7 +1316,9 @@ static int __sctp_setsockopt_connectx(struct sock *sk,
124912 return -EFAULT;
124913
124914 /* Alloc space for the address array in kernel memory. */
124915 - kaddrs = kmalloc(addrs_size, GFP_KERNEL);
124916 + if (sk->sk_socket->file)
124917 + gfp = GFP_USER | __GFP_NOWARN;
124918 + kaddrs = kmalloc(addrs_size, gfp);
124919 if (unlikely(!kaddrs))
124920 return -ENOMEM;
124921
124922 @@ -2194,11 +2197,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
124923 {
124924 struct sctp_association *asoc;
124925 struct sctp_ulpevent *event;
124926 + struct sctp_event_subscribe subscribe;
124927
124928 if (optlen > sizeof(struct sctp_event_subscribe))
124929 return -EINVAL;
124930 - if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
124931 + if (copy_from_user(&subscribe, optval, optlen))
124932 return -EFAULT;
124933 + sctp_sk(sk)->subscribe = subscribe;
124934
124935 /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
124936 * if there is no data to be sent or retransmit, the stack will
124937 @@ -4373,13 +4378,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
124938 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
124939 int __user *optlen)
124940 {
124941 + struct sctp_event_subscribe subscribe;
124942 +
124943 if (len <= 0)
124944 return -EINVAL;
124945 if (len > sizeof(struct sctp_event_subscribe))
124946 len = sizeof(struct sctp_event_subscribe);
124947 if (put_user(len, optlen))
124948 return -EFAULT;
124949 - if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))
124950 + subscribe = sctp_sk(sk)->subscribe;
124951 + if (copy_to_user(optval, &subscribe, len))
124952 return -EFAULT;
124953 return 0;
124954 }
124955 @@ -4397,6 +4405,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
124956 */
124957 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
124958 {
124959 + __u32 autoclose;
124960 +
124961 /* Applicable to UDP-style socket only */
124962 if (sctp_style(sk, TCP))
124963 return -EOPNOTSUPP;
124964 @@ -4405,7 +4415,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
124965 len = sizeof(int);
124966 if (put_user(len, optlen))
124967 return -EFAULT;
124968 - if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int)))
124969 + autoclose = sctp_sk(sk)->autoclose;
124970 + if (copy_to_user(optval, &autoclose, sizeof(int)))
124971 return -EFAULT;
124972 return 0;
124973 }
124974 @@ -4779,12 +4790,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
124975 */
124976 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
124977 {
124978 + struct sctp_initmsg initmsg;
124979 +
124980 if (len < sizeof(struct sctp_initmsg))
124981 return -EINVAL;
124982 len = sizeof(struct sctp_initmsg);
124983 if (put_user(len, optlen))
124984 return -EFAULT;
124985 - if (copy_to_user(optval, &sctp_sk(sk)->initmsg, len))
124986 + initmsg = sctp_sk(sk)->initmsg;
124987 + if (copy_to_user(optval, &initmsg, len))
124988 return -EFAULT;
124989 return 0;
124990 }
124991 @@ -4825,6 +4839,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
124992 ->addr_to_user(sp, &temp);
124993 if (space_left < addrlen)
124994 return -ENOMEM;
124995 + if (addrlen > sizeof(temp) || addrlen < 0)
124996 + return -EFAULT;
124997 if (copy_to_user(to, &temp, addrlen))
124998 return -EFAULT;
124999 to += addrlen;
125000 @@ -4928,7 +4944,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
125001 to = optval + offsetof(struct sctp_getaddrs, addrs);
125002 space_left = len - offsetof(struct sctp_getaddrs, addrs);
125003
125004 - addrs = kmalloc(space_left, GFP_KERNEL);
125005 + addrs = kmalloc(space_left, GFP_USER | __GFP_NOWARN);
125006 if (!addrs)
125007 return -ENOMEM;
125008
125009 @@ -5777,7 +5793,7 @@ static int sctp_getsockopt_assoc_ids(struct sock *sk, int len,
125010
125011 len = sizeof(struct sctp_assoc_ids) + sizeof(sctp_assoc_t) * num;
125012
125013 - ids = kmalloc(len, GFP_KERNEL);
125014 + ids = kmalloc(len, GFP_USER | __GFP_NOWARN);
125015 if (unlikely(!ids))
125016 return -ENOMEM;
125017
125018 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
125019 index 26d50c5..dfae665 100644
125020 --- a/net/sctp/sysctl.c
125021 +++ b/net/sctp/sysctl.c
125022 @@ -317,7 +317,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
125023 loff_t *ppos)
125024 {
125025 struct net *net = current->nsproxy->net_ns;
125026 - struct ctl_table tbl;
125027 + ctl_table_no_const tbl;
125028 bool changed = false;
125029 char *none = "none";
125030 char tmp[8];
125031 @@ -365,7 +365,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
125032 struct net *net = current->nsproxy->net_ns;
125033 unsigned int min = *(unsigned int *) ctl->extra1;
125034 unsigned int max = *(unsigned int *) ctl->extra2;
125035 - struct ctl_table tbl;
125036 + ctl_table_no_const tbl;
125037 int ret, new_value;
125038
125039 memset(&tbl, 0, sizeof(struct ctl_table));
125040 @@ -394,7 +394,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
125041 struct net *net = current->nsproxy->net_ns;
125042 unsigned int min = *(unsigned int *) ctl->extra1;
125043 unsigned int max = *(unsigned int *) ctl->extra2;
125044 - struct ctl_table tbl;
125045 + ctl_table_no_const tbl;
125046 int ret, new_value;
125047
125048 memset(&tbl, 0, sizeof(struct ctl_table));
125049 @@ -432,7 +432,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
125050 loff_t *ppos)
125051 {
125052 struct net *net = current->nsproxy->net_ns;
125053 - struct ctl_table tbl;
125054 + ctl_table_no_const tbl;
125055 int new_value, ret;
125056
125057 memset(&tbl, 0, sizeof(struct ctl_table));
125058 @@ -459,7 +459,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
125059
125060 int sctp_sysctl_net_register(struct net *net)
125061 {
125062 - struct ctl_table *table;
125063 + ctl_table_no_const *table;
125064 int i;
125065
125066 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
125067 diff --git a/net/socket.c b/net/socket.c
125068 index 9963a0b..b88ff74 100644
125069 --- a/net/socket.c
125070 +++ b/net/socket.c
125071 @@ -89,6 +89,7 @@
125072 #include <linux/magic.h>
125073 #include <linux/slab.h>
125074 #include <linux/xattr.h>
125075 +#include <linux/in.h>
125076
125077 #include <asm/uaccess.h>
125078 #include <asm/unistd.h>
125079 @@ -107,6 +108,7 @@
125080 #include <linux/atalk.h>
125081 #include <net/busy_poll.h>
125082 #include <linux/errqueue.h>
125083 +#include <linux/grsock.h>
125084
125085 #ifdef CONFIG_NET_RX_BUSY_POLL
125086 unsigned int sysctl_net_busy_read __read_mostly;
125087 @@ -160,7 +162,7 @@ static const struct file_operations socket_file_ops = {
125088 */
125089
125090 static DEFINE_SPINLOCK(net_family_lock);
125091 -static const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
125092 +const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
125093
125094 /*
125095 * Statistics counters of the socket lists
125096 @@ -326,7 +328,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
125097 &sockfs_dentry_operations, SOCKFS_MAGIC);
125098 }
125099
125100 -static struct vfsmount *sock_mnt __read_mostly;
125101 +struct vfsmount *sock_mnt __read_mostly;
125102
125103 static struct file_system_type sock_fs_type = {
125104 .name = "sockfs",
125105 @@ -1105,6 +1107,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
125106 return -EAFNOSUPPORT;
125107 if (type < 0 || type >= SOCK_MAX)
125108 return -EINVAL;
125109 + if (protocol < 0)
125110 + return -EINVAL;
125111
125112 /* Compatibility.
125113
125114 @@ -1125,6 +1129,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
125115 if (err)
125116 return err;
125117
125118 + if(!kern && !gr_search_socket(family, type, protocol)) {
125119 + if (rcu_access_pointer(net_families[family]) == NULL)
125120 + return -EAFNOSUPPORT;
125121 + else
125122 + return -EACCES;
125123 + }
125124 +
125125 + if (!kern && gr_handle_sock_all(family, type, protocol)) {
125126 + if (rcu_access_pointer(net_families[family]) == NULL)
125127 + return -EAFNOSUPPORT;
125128 + else
125129 + return -EACCES;
125130 + }
125131 +
125132 /*
125133 * Allocate the socket and allow the family to set things up. if
125134 * the protocol is 0, the family is instructed to select an appropriate
125135 @@ -1376,6 +1394,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
125136 if (sock) {
125137 err = move_addr_to_kernel(umyaddr, addrlen, &address);
125138 if (err >= 0) {
125139 + if (gr_handle_sock_server((struct sockaddr *)&address)) {
125140 + err = -EACCES;
125141 + goto error;
125142 + }
125143 + err = gr_search_bind(sock, (struct sockaddr_in *)&address);
125144 + if (err)
125145 + goto error;
125146 +
125147 err = security_socket_bind(sock,
125148 (struct sockaddr *)&address,
125149 addrlen);
125150 @@ -1384,6 +1410,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
125151 (struct sockaddr *)
125152 &address, addrlen);
125153 }
125154 +error:
125155 fput_light(sock->file, fput_needed);
125156 }
125157 return err;
125158 @@ -1407,10 +1434,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
125159 if ((unsigned int)backlog > somaxconn)
125160 backlog = somaxconn;
125161
125162 + if (gr_handle_sock_server_other(sock->sk)) {
125163 + err = -EPERM;
125164 + goto error;
125165 + }
125166 +
125167 + err = gr_search_listen(sock);
125168 + if (err)
125169 + goto error;
125170 +
125171 err = security_socket_listen(sock, backlog);
125172 if (!err)
125173 err = sock->ops->listen(sock, backlog);
125174
125175 +error:
125176 fput_light(sock->file, fput_needed);
125177 }
125178 return err;
125179 @@ -1454,6 +1491,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
125180 newsock->type = sock->type;
125181 newsock->ops = sock->ops;
125182
125183 + if (gr_handle_sock_server_other(sock->sk)) {
125184 + err = -EPERM;
125185 + sock_release(newsock);
125186 + goto out_put;
125187 + }
125188 +
125189 + err = gr_search_accept(sock);
125190 + if (err) {
125191 + sock_release(newsock);
125192 + goto out_put;
125193 + }
125194 +
125195 /*
125196 * We don't need try_module_get here, as the listening socket (sock)
125197 * has the protocol module (sock->ops->owner) held.
125198 @@ -1499,6 +1548,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
125199 fd_install(newfd, newfile);
125200 err = newfd;
125201
125202 + gr_attach_curr_ip(newsock->sk);
125203 +
125204 out_put:
125205 fput_light(sock->file, fput_needed);
125206 out:
125207 @@ -1531,6 +1582,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
125208 int, addrlen)
125209 {
125210 struct socket *sock;
125211 + struct sockaddr *sck;
125212 struct sockaddr_storage address;
125213 int err, fput_needed;
125214
125215 @@ -1541,6 +1593,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
125216 if (err < 0)
125217 goto out_put;
125218
125219 + sck = (struct sockaddr *)&address;
125220 +
125221 + if (gr_handle_sock_client(sck)) {
125222 + err = -EACCES;
125223 + goto out_put;
125224 + }
125225 +
125226 + err = gr_search_connect(sock, (struct sockaddr_in *)sck);
125227 + if (err)
125228 + goto out_put;
125229 +
125230 err =
125231 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
125232 if (err)
125233 @@ -1563,7 +1626,7 @@ SYSCALL_DEFINE3(getsockname, int, fd, struct sockaddr __user *, usockaddr,
125234 int __user *, usockaddr_len)
125235 {
125236 struct socket *sock;
125237 - struct sockaddr_storage address;
125238 + struct sockaddr_storage address = { };
125239 int len, err, fput_needed;
125240
125241 sock = sockfd_lookup_light(fd, &err, &fput_needed);
125242 @@ -1594,7 +1657,7 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
125243 int __user *, usockaddr_len)
125244 {
125245 struct socket *sock;
125246 - struct sockaddr_storage address;
125247 + struct sockaddr_storage address = { };
125248 int len, err, fput_needed;
125249
125250 sock = sockfd_lookup_light(fd, &err, &fput_needed);
125251 @@ -1622,6 +1685,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
125252 * the protocol.
125253 */
125254
125255 +asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
125256 +
125257 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
125258 unsigned int, flags, struct sockaddr __user *, addr,
125259 int, addr_len)
125260 @@ -1685,7 +1750,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
125261 struct socket *sock;
125262 struct iovec iov;
125263 struct msghdr msg;
125264 - struct sockaddr_storage address;
125265 + struct sockaddr_storage address = { };
125266 int err, err2;
125267 int fput_needed;
125268
125269 @@ -1702,6 +1767,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
125270 msg.msg_name = addr ? (struct sockaddr *)&address : NULL;
125271 /* We assume all kernel code knows the size of sockaddr_storage */
125272 msg.msg_namelen = 0;
125273 + msg.msg_iocb = NULL;
125274 if (sock->file->f_flags & O_NONBLOCK)
125275 flags |= MSG_DONTWAIT;
125276 err = sock_recvmsg(sock, &msg, iov_iter_count(&msg.msg_iter), flags);
125277 @@ -1927,7 +1993,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
125278 * checking falls down on this.
125279 */
125280 if (copy_from_user(ctl_buf,
125281 - (void __user __force *)msg_sys->msg_control,
125282 + (void __force_user *)msg_sys->msg_control,
125283 ctl_len))
125284 goto out_freectl;
125285 msg_sys->msg_control = ctl_buf;
125286 @@ -2077,7 +2143,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
125287 ssize_t err;
125288
125289 /* kernel mode address */
125290 - struct sockaddr_storage addr;
125291 + struct sockaddr_storage addr = { };
125292
125293 /* user mode address pointers */
125294 struct sockaddr __user *uaddr;
125295 @@ -2722,7 +2788,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
125296 ifr = compat_alloc_user_space(buf_size);
125297 rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
125298
125299 - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
125300 + if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
125301 return -EFAULT;
125302
125303 if (put_user(convert_in ? rxnfc : compat_ptr(data),
125304 @@ -2833,7 +2899,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
125305 old_fs = get_fs();
125306 set_fs(KERNEL_DS);
125307 err = dev_ioctl(net, cmd,
125308 - (struct ifreq __user __force *) &kifr);
125309 + (struct ifreq __force_user *) &kifr);
125310 set_fs(old_fs);
125311
125312 return err;
125313 @@ -2926,7 +2992,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
125314
125315 old_fs = get_fs();
125316 set_fs(KERNEL_DS);
125317 - err = dev_ioctl(net, cmd, (void __user __force *)&ifr);
125318 + err = dev_ioctl(net, cmd, (void __force_user *)&ifr);
125319 set_fs(old_fs);
125320
125321 if (cmd == SIOCGIFMAP && !err) {
125322 @@ -3010,7 +3076,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
125323 ret |= get_user(rtdev, &(ur4->rt_dev));
125324 if (rtdev) {
125325 ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
125326 - r4.rt_dev = (char __user __force *)devname;
125327 + r4.rt_dev = (char __force_user *)devname;
125328 devname[15] = 0;
125329 } else
125330 r4.rt_dev = NULL;
125331 @@ -3237,8 +3303,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
125332 int __user *uoptlen;
125333 int err;
125334
125335 - uoptval = (char __user __force *) optval;
125336 - uoptlen = (int __user __force *) optlen;
125337 + uoptval = (char __force_user *) optval;
125338 + uoptlen = (int __force_user *) optlen;
125339
125340 set_fs(KERNEL_DS);
125341 if (level == SOL_SOCKET)
125342 @@ -3258,7 +3324,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
125343 char __user *uoptval;
125344 int err;
125345
125346 - uoptval = (char __user __force *) optval;
125347 + uoptval = (char __force_user *) optval;
125348
125349 set_fs(KERNEL_DS);
125350 if (level == SOL_SOCKET)
125351 diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
125352 index 04ce2c0..b1dd1bd 100644
125353 --- a/net/sunrpc/Kconfig
125354 +++ b/net/sunrpc/Kconfig
125355 @@ -38,6 +38,7 @@ config SUNRPC_DEBUG
125356 bool "RPC: Enable dprintk debugging"
125357 depends on SUNRPC && SYSCTL
125358 select DEBUG_FS
125359 + depends on !GRKERNSEC_KMEM
125360 help
125361 This option enables a sysctl-based debugging interface
125362 that is be used by the 'rpcdebug' utility to turn on or off
125363 diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
125364 index 1095be9..815d777 100644
125365 --- a/net/sunrpc/auth_gss/svcauth_gss.c
125366 +++ b/net/sunrpc/auth_gss/svcauth_gss.c
125367 @@ -1142,7 +1142,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
125368 uint64_t *handle)
125369 {
125370 struct rsc rsci, *rscp = NULL;
125371 - static atomic64_t ctxhctr;
125372 + static atomic64_unchecked_t ctxhctr = ATOMIC64_INIT(0);
125373 long long ctxh;
125374 struct gss_api_mech *gm = NULL;
125375 time_t expiry;
125376 @@ -1153,7 +1153,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
125377 status = -ENOMEM;
125378 /* the handle needs to be just a unique id,
125379 * use a static counter */
125380 - ctxh = atomic64_inc_return(&ctxhctr);
125381 + ctxh = atomic64_inc_return_unchecked(&ctxhctr);
125382
125383 /* make a copy for the caller */
125384 *handle = ctxh;
125385 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
125386 index 4a2340a..49ec8de 100644
125387 --- a/net/sunrpc/cache.c
125388 +++ b/net/sunrpc/cache.c
125389 @@ -1596,7 +1596,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
125390 struct sunrpc_net *sn;
125391
125392 sn = net_generic(net, sunrpc_net_id);
125393 - cd->u.procfs.proc_ent = proc_mkdir(cd->name, sn->proc_net_rpc);
125394 + cd->u.procfs.proc_ent = proc_mkdir_restrict(cd->name, sn->proc_net_rpc);
125395 if (cd->u.procfs.proc_ent == NULL)
125396 goto out_nomem;
125397 cd->u.procfs.channel_ent = NULL;
125398 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
125399 index 23608eb..f2b5208 100644
125400 --- a/net/sunrpc/clnt.c
125401 +++ b/net/sunrpc/clnt.c
125402 @@ -1428,7 +1428,9 @@ call_start(struct rpc_task *task)
125403 (RPC_IS_ASYNC(task) ? "async" : "sync"));
125404
125405 /* Increment call count */
125406 - task->tk_msg.rpc_proc->p_count++;
125407 + pax_open_kernel();
125408 + (*(unsigned int *)&task->tk_msg.rpc_proc->p_count)++;
125409 + pax_close_kernel();
125410 clnt->cl_stats->rpccnt++;
125411 task->tk_action = call_reserve;
125412 }
125413 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
125414 index f14f24e..a6b2d76 100644
125415 --- a/net/sunrpc/sched.c
125416 +++ b/net/sunrpc/sched.c
125417 @@ -261,9 +261,9 @@ static int rpc_wait_bit_killable(struct wait_bit_key *key)
125418 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
125419 static void rpc_task_set_debuginfo(struct rpc_task *task)
125420 {
125421 - static atomic_t rpc_pid;
125422 + static atomic_unchecked_t rpc_pid;
125423
125424 - task->tk_pid = atomic_inc_return(&rpc_pid);
125425 + task->tk_pid = atomic_inc_return_unchecked(&rpc_pid);
125426 }
125427 #else
125428 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
125429 diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
125430 index 2ecb994..5afb49f 100644
125431 --- a/net/sunrpc/stats.c
125432 +++ b/net/sunrpc/stats.c
125433 @@ -290,7 +290,7 @@ int rpc_proc_init(struct net *net)
125434
125435 dprintk("RPC: registering /proc/net/rpc\n");
125436 sn = net_generic(net, sunrpc_net_id);
125437 - sn->proc_net_rpc = proc_mkdir("rpc", net->proc_net);
125438 + sn->proc_net_rpc = proc_mkdir_restrict("rpc", net->proc_net);
125439 if (sn->proc_net_rpc == NULL)
125440 return -ENOMEM;
125441
125442 diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
125443 index a8f579d..3492de7 100644
125444 --- a/net/sunrpc/svc.c
125445 +++ b/net/sunrpc/svc.c
125446 @@ -1166,7 +1166,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
125447 svc_putnl(resv, RPC_SUCCESS);
125448
125449 /* Bump per-procedure stats counter */
125450 - procp->pc_count++;
125451 + pax_open_kernel();
125452 + (*(unsigned int *)&procp->pc_count)++;
125453 + pax_close_kernel();
125454
125455 /* Initialize storage for argp and resp */
125456 memset(rqstp->rq_argp, 0, procp->pc_argsize);
125457 diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
125458 index 621ca7b..78bf76b 100644
125459 --- a/net/sunrpc/svcauth_unix.c
125460 +++ b/net/sunrpc/svcauth_unix.c
125461 @@ -470,7 +470,7 @@ static void unix_gid_request(struct cache_detail *cd,
125462 (*bpp)[-1] = '\n';
125463 }
125464
125465 -static struct unix_gid *unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
125466 +static struct unix_gid * __intentional_overflow(-1) unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
125467
125468 static int unix_gid_parse(struct cache_detail *cd,
125469 char *mesg, int mlen)
125470 diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
125471 index 2cd252f..eefac51 100644
125472 --- a/net/sunrpc/xprtrdma/svc_rdma.c
125473 +++ b/net/sunrpc/xprtrdma/svc_rdma.c
125474 @@ -61,15 +61,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
125475 static unsigned int min_max_inline = 4096;
125476 static unsigned int max_max_inline = 65536;
125477
125478 -atomic_t rdma_stat_recv;
125479 -atomic_t rdma_stat_read;
125480 -atomic_t rdma_stat_write;
125481 -atomic_t rdma_stat_sq_starve;
125482 -atomic_t rdma_stat_rq_starve;
125483 -atomic_t rdma_stat_rq_poll;
125484 -atomic_t rdma_stat_rq_prod;
125485 -atomic_t rdma_stat_sq_poll;
125486 -atomic_t rdma_stat_sq_prod;
125487 +atomic_unchecked_t rdma_stat_recv;
125488 +atomic_unchecked_t rdma_stat_read;
125489 +atomic_unchecked_t rdma_stat_write;
125490 +atomic_unchecked_t rdma_stat_sq_starve;
125491 +atomic_unchecked_t rdma_stat_rq_starve;
125492 +atomic_unchecked_t rdma_stat_rq_poll;
125493 +atomic_unchecked_t rdma_stat_rq_prod;
125494 +atomic_unchecked_t rdma_stat_sq_poll;
125495 +atomic_unchecked_t rdma_stat_sq_prod;
125496
125497 /* Temporary NFS request map and context caches */
125498 struct kmem_cache *svc_rdma_map_cachep;
125499 @@ -109,7 +109,7 @@ static int read_reset_stat(struct ctl_table *table, int write,
125500 len -= *ppos;
125501 if (len > *lenp)
125502 len = *lenp;
125503 - if (len && copy_to_user(buffer, str_buf, len))
125504 + if (len > sizeof str_buf || (len && copy_to_user(buffer, str_buf, len)))
125505 return -EFAULT;
125506 *lenp = len;
125507 *ppos += len;
125508 @@ -150,63 +150,63 @@ static struct ctl_table svcrdma_parm_table[] = {
125509 {
125510 .procname = "rdma_stat_read",
125511 .data = &rdma_stat_read,
125512 - .maxlen = sizeof(atomic_t),
125513 + .maxlen = sizeof(atomic_unchecked_t),
125514 .mode = 0644,
125515 .proc_handler = read_reset_stat,
125516 },
125517 {
125518 .procname = "rdma_stat_recv",
125519 .data = &rdma_stat_recv,
125520 - .maxlen = sizeof(atomic_t),
125521 + .maxlen = sizeof(atomic_unchecked_t),
125522 .mode = 0644,
125523 .proc_handler = read_reset_stat,
125524 },
125525 {
125526 .procname = "rdma_stat_write",
125527 .data = &rdma_stat_write,
125528 - .maxlen = sizeof(atomic_t),
125529 + .maxlen = sizeof(atomic_unchecked_t),
125530 .mode = 0644,
125531 .proc_handler = read_reset_stat,
125532 },
125533 {
125534 .procname = "rdma_stat_sq_starve",
125535 .data = &rdma_stat_sq_starve,
125536 - .maxlen = sizeof(atomic_t),
125537 + .maxlen = sizeof(atomic_unchecked_t),
125538 .mode = 0644,
125539 .proc_handler = read_reset_stat,
125540 },
125541 {
125542 .procname = "rdma_stat_rq_starve",
125543 .data = &rdma_stat_rq_starve,
125544 - .maxlen = sizeof(atomic_t),
125545 + .maxlen = sizeof(atomic_unchecked_t),
125546 .mode = 0644,
125547 .proc_handler = read_reset_stat,
125548 },
125549 {
125550 .procname = "rdma_stat_rq_poll",
125551 .data = &rdma_stat_rq_poll,
125552 - .maxlen = sizeof(atomic_t),
125553 + .maxlen = sizeof(atomic_unchecked_t),
125554 .mode = 0644,
125555 .proc_handler = read_reset_stat,
125556 },
125557 {
125558 .procname = "rdma_stat_rq_prod",
125559 .data = &rdma_stat_rq_prod,
125560 - .maxlen = sizeof(atomic_t),
125561 + .maxlen = sizeof(atomic_unchecked_t),
125562 .mode = 0644,
125563 .proc_handler = read_reset_stat,
125564 },
125565 {
125566 .procname = "rdma_stat_sq_poll",
125567 .data = &rdma_stat_sq_poll,
125568 - .maxlen = sizeof(atomic_t),
125569 + .maxlen = sizeof(atomic_unchecked_t),
125570 .mode = 0644,
125571 .proc_handler = read_reset_stat,
125572 },
125573 {
125574 .procname = "rdma_stat_sq_prod",
125575 .data = &rdma_stat_sq_prod,
125576 - .maxlen = sizeof(atomic_t),
125577 + .maxlen = sizeof(atomic_unchecked_t),
125578 .mode = 0644,
125579 .proc_handler = read_reset_stat,
125580 },
125581 diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125582 index f0c3ff6..10c9ccb 100644
125583 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125584 +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125585 @@ -200,7 +200,7 @@ int rdma_read_chunk_lcl(struct svcxprt_rdma *xprt,
125586 *page_no = pg_no;
125587 *page_offset = pg_off;
125588 ret = read;
125589 - atomic_inc(&rdma_stat_read);
125590 + atomic_inc_unchecked(&rdma_stat_read);
125591 return ret;
125592 err:
125593 svc_rdma_unmap_dma(ctxt);
125594 @@ -337,7 +337,7 @@ int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt,
125595 *page_no = pg_no;
125596 *page_offset = pg_off;
125597 ret = read;
125598 - atomic_inc(&rdma_stat_read);
125599 + atomic_inc_unchecked(&rdma_stat_read);
125600 return ret;
125601 err:
125602 svc_rdma_unmap_dma(ctxt);
125603 @@ -591,7 +591,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
125604 dto_q);
125605 list_del_init(&ctxt->dto_q);
125606 } else {
125607 - atomic_inc(&rdma_stat_rq_starve);
125608 + atomic_inc_unchecked(&rdma_stat_rq_starve);
125609 clear_bit(XPT_DATA, &xprt->xpt_flags);
125610 ctxt = NULL;
125611 }
125612 @@ -609,7 +609,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
125613 }
125614 dprintk("svcrdma: processing ctxt=%p on xprt=%p, rqstp=%p, status=%d\n",
125615 ctxt, rdma_xprt, rqstp, ctxt->wc_status);
125616 - atomic_inc(&rdma_stat_recv);
125617 + atomic_inc_unchecked(&rdma_stat_recv);
125618
125619 /* Build up the XDR from the receive buffers. */
125620 rdma_build_arg_xdr(rqstp, ctxt, ctxt->byte_len);
125621 diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125622 index 1dfae83..799ed02 100644
125623 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125624 +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125625 @@ -291,7 +291,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
125626 write_wr.wr.rdma.remote_addr = to;
125627
125628 /* Post It */
125629 - atomic_inc(&rdma_stat_write);
125630 + atomic_inc_unchecked(&rdma_stat_write);
125631 if (svc_rdma_send(xprt, &write_wr))
125632 goto err;
125633 return write_len - bc;
125634 diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
125635 index fcc3eb8..b75ec03 100644
125636 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
125637 +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
125638 @@ -288,7 +288,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
125639 return;
125640
125641 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
125642 - atomic_inc(&rdma_stat_rq_poll);
125643 + atomic_inc_unchecked(&rdma_stat_rq_poll);
125644
125645 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
125646 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
125647 @@ -310,7 +310,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
125648 }
125649
125650 if (ctxt)
125651 - atomic_inc(&rdma_stat_rq_prod);
125652 + atomic_inc_unchecked(&rdma_stat_rq_prod);
125653
125654 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
125655 /*
125656 @@ -389,7 +389,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
125657 return;
125658
125659 ib_req_notify_cq(xprt->sc_sq_cq, IB_CQ_NEXT_COMP);
125660 - atomic_inc(&rdma_stat_sq_poll);
125661 + atomic_inc_unchecked(&rdma_stat_sq_poll);
125662 while ((ret = ib_poll_cq(cq, ARRAY_SIZE(wc_a), wc_a)) > 0) {
125663 int i;
125664
125665 @@ -418,7 +418,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
125666 }
125667
125668 if (ctxt)
125669 - atomic_inc(&rdma_stat_sq_prod);
125670 + atomic_inc_unchecked(&rdma_stat_sq_prod);
125671 }
125672
125673 static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
125674 @@ -1227,7 +1227,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
125675 spin_lock_bh(&xprt->sc_lock);
125676 if (xprt->sc_sq_depth < atomic_read(&xprt->sc_sq_count) + wr_count) {
125677 spin_unlock_bh(&xprt->sc_lock);
125678 - atomic_inc(&rdma_stat_sq_starve);
125679 + atomic_inc_unchecked(&rdma_stat_sq_starve);
125680
125681 /* See if we can opportunistically reap SQ WR to make room */
125682 sq_cq_reap(xprt);
125683 diff --git a/net/sysctl_net.c b/net/sysctl_net.c
125684 index ed98c1f..f74b659 100644
125685 --- a/net/sysctl_net.c
125686 +++ b/net/sysctl_net.c
125687 @@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
125688 kgid_t root_gid = make_kgid(net->user_ns, 0);
125689
125690 /* Allow network administrator to have same access as root. */
125691 - if (ns_capable(net->user_ns, CAP_NET_ADMIN) ||
125692 + if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) ||
125693 uid_eq(root_uid, current_euid())) {
125694 int mode = (table->mode >> 6) & 7;
125695 return (mode << 6) | (mode << 3) | mode;
125696 diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
125697 index 1eadc95..f6ccd08 100644
125698 --- a/net/tipc/netlink_compat.c
125699 +++ b/net/tipc/netlink_compat.c
125700 @@ -65,13 +65,13 @@ struct tipc_nl_compat_cmd_dump {
125701 int (*header)(struct tipc_nl_compat_msg *);
125702 int (*dumpit)(struct sk_buff *, struct netlink_callback *);
125703 int (*format)(struct tipc_nl_compat_msg *msg, struct nlattr **attrs);
125704 -};
125705 +} __no_const;
125706
125707 struct tipc_nl_compat_cmd_doit {
125708 int (*doit)(struct sk_buff *skb, struct genl_info *info);
125709 int (*transcode)(struct tipc_nl_compat_cmd_doit *cmd,
125710 struct sk_buff *skb, struct tipc_nl_compat_msg *msg);
125711 -};
125712 +} __no_const;
125713
125714 static int tipc_skb_tailroom(struct sk_buff *skb)
125715 {
125716 @@ -836,7 +836,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
125717 void *hdr;
125718 struct nlattr *nest;
125719 struct sk_buff *args;
125720 - struct tipc_nl_compat_cmd_dump dump;
125721 + static struct tipc_nl_compat_cmd_dump dump = {
125722 + .dumpit = tipc_nl_publ_dump,
125723 + .format = __tipc_nl_compat_publ_dump,
125724 + };
125725
125726 args = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
125727 if (!args)
125728 @@ -859,9 +862,6 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
125729 nla_nest_end(args, nest);
125730 genlmsg_end(args, hdr);
125731
125732 - dump.dumpit = tipc_nl_publ_dump;
125733 - dump.format = __tipc_nl_compat_publ_dump;
125734 -
125735 err = __tipc_nl_compat_dumpit(&dump, msg, args);
125736
125737 kfree_skb(args);
125738 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
125739 index 350cca3..a108fc5 100644
125740 --- a/net/tipc/subscr.c
125741 +++ b/net/tipc/subscr.c
125742 @@ -75,7 +75,7 @@ static void tipc_subscrp_send_event(struct tipc_subscription *sub,
125743 struct tipc_subscriber *subscriber = sub->subscriber;
125744 struct kvec msg_sect;
125745
125746 - msg_sect.iov_base = (void *)&sub->evt;
125747 + msg_sect.iov_base = &sub->evt;
125748 msg_sect.iov_len = sizeof(struct tipc_event);
125749 sub->evt.event = htohl(event, sub->swap);
125750 sub->evt.found_lower = htohl(found_lower, sub->swap);
125751 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
125752 index 128b098..38013fc 100644
125753 --- a/net/unix/af_unix.c
125754 +++ b/net/unix/af_unix.c
125755 @@ -918,6 +918,12 @@ static struct sock *unix_find_other(struct net *net,
125756 err = -ECONNREFUSED;
125757 if (!S_ISSOCK(inode->i_mode))
125758 goto put_fail;
125759 +
125760 + if (!gr_acl_handle_unix(path.dentry, path.mnt)) {
125761 + err = -EACCES;
125762 + goto put_fail;
125763 + }
125764 +
125765 u = unix_find_socket_byinode(inode);
125766 if (!u)
125767 goto put_fail;
125768 @@ -938,6 +944,13 @@ static struct sock *unix_find_other(struct net *net,
125769 if (u) {
125770 struct dentry *dentry;
125771 dentry = unix_sk(u)->path.dentry;
125772 +
125773 + if (!gr_handle_chroot_unix(pid_vnr(u->sk_peer_pid))) {
125774 + err = -EPERM;
125775 + sock_put(u);
125776 + goto fail;
125777 + }
125778 +
125779 if (dentry)
125780 touch_atime(&unix_sk(u)->path);
125781 } else
125782 @@ -952,32 +965,26 @@ fail:
125783 return NULL;
125784 }
125785
125786 -static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
125787 +static int unix_mknod(struct dentry *dentry, struct path *path, umode_t mode,
125788 + struct path *res)
125789 {
125790 - struct dentry *dentry;
125791 - struct path path;
125792 - int err = 0;
125793 - /*
125794 - * Get the parent directory, calculate the hash for last
125795 - * component.
125796 - */
125797 - dentry = kern_path_create(AT_FDCWD, sun_path, &path, 0);
125798 - err = PTR_ERR(dentry);
125799 - if (IS_ERR(dentry))
125800 - return err;
125801 + int err;
125802
125803 - /*
125804 - * All right, let's create it.
125805 - */
125806 - err = security_path_mknod(&path, dentry, mode, 0);
125807 + err = security_path_mknod(path, dentry, mode, 0);
125808 if (!err) {
125809 - err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);
125810 + if (!gr_acl_handle_mknod(dentry, path->dentry, path->mnt, mode)) {
125811 + err = -EACCES;
125812 + goto out;
125813 + }
125814 + err = vfs_mknod(d_inode(path->dentry), dentry, mode, 0);
125815 if (!err) {
125816 - res->mnt = mntget(path.mnt);
125817 + res->mnt = mntget(path->mnt);
125818 res->dentry = dget(dentry);
125819 + gr_handle_create(dentry, path->mnt);
125820 }
125821 }
125822 - done_path_create(&path, dentry);
125823 +
125824 +out:
125825 return err;
125826 }
125827
125828 @@ -988,10 +995,12 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
125829 struct unix_sock *u = unix_sk(sk);
125830 struct sockaddr_un *sunaddr = (struct sockaddr_un *)uaddr;
125831 char *sun_path = sunaddr->sun_path;
125832 - int err;
125833 + int err, name_err;
125834 unsigned int hash;
125835 struct unix_address *addr;
125836 struct hlist_head *list;
125837 + struct path path;
125838 + struct dentry *dentry;
125839
125840 err = -EINVAL;
125841 if (sunaddr->sun_family != AF_UNIX)
125842 @@ -1007,14 +1016,34 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
125843 goto out;
125844 addr_len = err;
125845
125846 + name_err = 0;
125847 + dentry = NULL;
125848 + if (sun_path[0]) {
125849 + /* Get the parent directory, calculate the hash for last
125850 + * component.
125851 + */
125852 + dentry = kern_path_create(AT_FDCWD, sun_path, &path, 0);
125853 +
125854 + if (IS_ERR(dentry)) {
125855 + /* delay report until after 'already bound' check */
125856 + name_err = PTR_ERR(dentry);
125857 + dentry = NULL;
125858 + }
125859 + }
125860 +
125861 err = mutex_lock_interruptible(&u->readlock);
125862 if (err)
125863 - goto out;
125864 + goto out_path;
125865
125866 err = -EINVAL;
125867 if (u->addr)
125868 goto out_up;
125869
125870 + if (name_err) {
125871 + err = name_err == -EEXIST ? -EADDRINUSE : name_err;
125872 + goto out_up;
125873 + }
125874 +
125875 err = -ENOMEM;
125876 addr = kmalloc(sizeof(*addr)+addr_len, GFP_KERNEL);
125877 if (!addr)
125878 @@ -1025,11 +1054,11 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
125879 addr->hash = hash ^ sk->sk_type;
125880 atomic_set(&addr->refcnt, 1);
125881
125882 - if (sun_path[0]) {
125883 - struct path path;
125884 + if (dentry) {
125885 + struct path u_path;
125886 umode_t mode = S_IFSOCK |
125887 (SOCK_INODE(sock)->i_mode & ~current_umask());
125888 - err = unix_mknod(sun_path, mode, &path);
125889 + err = unix_mknod(dentry, &path, mode, &u_path);
125890 if (err) {
125891 if (err == -EEXIST)
125892 err = -EADDRINUSE;
125893 @@ -1037,9 +1066,9 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
125894 goto out_up;
125895 }
125896 addr->hash = UNIX_HASH_SIZE;
125897 - hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE-1);
125898 + hash = d_backing_inode(dentry)->i_ino & (UNIX_HASH_SIZE - 1);
125899 spin_lock(&unix_table_lock);
125900 - u->path = path;
125901 + u->path = u_path;
125902 list = &unix_socket_table[hash];
125903 } else {
125904 spin_lock(&unix_table_lock);
125905 @@ -1062,6 +1091,10 @@ out_unlock:
125906 spin_unlock(&unix_table_lock);
125907 out_up:
125908 mutex_unlock(&u->readlock);
125909 +out_path:
125910 + if (dentry)
125911 + done_path_create(&path, dentry);
125912 +
125913 out:
125914 return err;
125915 }
125916 @@ -2772,9 +2805,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
125917 seq_puts(seq, "Num RefCount Protocol Flags Type St "
125918 "Inode Path\n");
125919 else {
125920 - struct sock *s = v;
125921 + struct sock *s = v, *peer;
125922 struct unix_sock *u = unix_sk(s);
125923 unix_state_lock(s);
125924 + peer = unix_peer(s);
125925 + unix_state_unlock(s);
125926 +
125927 + unix_state_double_lock(s, peer);
125928
125929 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
125930 s,
125931 @@ -2799,10 +2836,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
125932 seq_putc(seq, '@');
125933 i++;
125934 }
125935 - for ( ; i < len; i++)
125936 - seq_putc(seq, u->addr->name->sun_path[i]);
125937 - }
125938 - unix_state_unlock(s);
125939 + for ( ; i < len; i++) {
125940 + char c = u->addr->name->sun_path[i];
125941 + switch (c) {
125942 + case '\n':
125943 + seq_putc(seq, '\\');
125944 + seq_putc(seq, 'n');
125945 + break;
125946 + case '\t':
125947 + seq_putc(seq, '\\');
125948 + seq_putc(seq, 't');
125949 + break;
125950 + case '\\':
125951 + seq_putc(seq, '\\');
125952 + seq_putc(seq, '\\');
125953 + break;
125954 + default:
125955 + seq_putc(seq, c);
125956 + }
125957 + }
125958 + } else if (peer)
125959 + seq_printf(seq, " P%lu", sock_i_ino(peer));
125960 +
125961 + unix_state_double_unlock(s, peer);
125962 seq_putc(seq, '\n');
125963 }
125964
125965 diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c
125966 index b3d5150..ff3a837 100644
125967 --- a/net/unix/sysctl_net_unix.c
125968 +++ b/net/unix/sysctl_net_unix.c
125969 @@ -28,7 +28,7 @@ static struct ctl_table unix_table[] = {
125970
125971 int __net_init unix_sysctl_register(struct net *net)
125972 {
125973 - struct ctl_table *table;
125974 + ctl_table_no_const *table;
125975
125976 table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
125977 if (table == NULL)
125978 diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
125979 index 9b7f207..2596621 100644
125980 --- a/net/vmw_vsock/vmci_transport_notify.c
125981 +++ b/net/vmw_vsock/vmci_transport_notify.c
125982 @@ -662,19 +662,19 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
125983
125984 /* Socket control packet based operations. */
125985 struct vmci_transport_notify_ops vmci_transport_notify_pkt_ops = {
125986 - vmci_transport_notify_pkt_socket_init,
125987 - vmci_transport_notify_pkt_socket_destruct,
125988 - vmci_transport_notify_pkt_poll_in,
125989 - vmci_transport_notify_pkt_poll_out,
125990 - vmci_transport_notify_pkt_handle_pkt,
125991 - vmci_transport_notify_pkt_recv_init,
125992 - vmci_transport_notify_pkt_recv_pre_block,
125993 - vmci_transport_notify_pkt_recv_pre_dequeue,
125994 - vmci_transport_notify_pkt_recv_post_dequeue,
125995 - vmci_transport_notify_pkt_send_init,
125996 - vmci_transport_notify_pkt_send_pre_block,
125997 - vmci_transport_notify_pkt_send_pre_enqueue,
125998 - vmci_transport_notify_pkt_send_post_enqueue,
125999 - vmci_transport_notify_pkt_process_request,
126000 - vmci_transport_notify_pkt_process_negotiate,
126001 + .socket_init = vmci_transport_notify_pkt_socket_init,
126002 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
126003 + .poll_in = vmci_transport_notify_pkt_poll_in,
126004 + .poll_out = vmci_transport_notify_pkt_poll_out,
126005 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
126006 + .recv_init = vmci_transport_notify_pkt_recv_init,
126007 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
126008 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
126009 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
126010 + .send_init = vmci_transport_notify_pkt_send_init,
126011 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
126012 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
126013 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
126014 + .process_request = vmci_transport_notify_pkt_process_request,
126015 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
126016 };
126017 diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
126018 index dc9c792..3089de0 100644
126019 --- a/net/vmw_vsock/vmci_transport_notify_qstate.c
126020 +++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
126021 @@ -420,19 +420,19 @@ vmci_transport_notify_pkt_send_pre_enqueue(
126022
126023 /* Socket always on control packet based operations. */
126024 struct vmci_transport_notify_ops vmci_transport_notify_pkt_q_state_ops = {
126025 - vmci_transport_notify_pkt_socket_init,
126026 - vmci_transport_notify_pkt_socket_destruct,
126027 - vmci_transport_notify_pkt_poll_in,
126028 - vmci_transport_notify_pkt_poll_out,
126029 - vmci_transport_notify_pkt_handle_pkt,
126030 - vmci_transport_notify_pkt_recv_init,
126031 - vmci_transport_notify_pkt_recv_pre_block,
126032 - vmci_transport_notify_pkt_recv_pre_dequeue,
126033 - vmci_transport_notify_pkt_recv_post_dequeue,
126034 - vmci_transport_notify_pkt_send_init,
126035 - vmci_transport_notify_pkt_send_pre_block,
126036 - vmci_transport_notify_pkt_send_pre_enqueue,
126037 - vmci_transport_notify_pkt_send_post_enqueue,
126038 - vmci_transport_notify_pkt_process_request,
126039 - vmci_transport_notify_pkt_process_negotiate,
126040 + .socket_init = vmci_transport_notify_pkt_socket_init,
126041 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
126042 + .poll_in = vmci_transport_notify_pkt_poll_in,
126043 + .poll_out = vmci_transport_notify_pkt_poll_out,
126044 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
126045 + .recv_init = vmci_transport_notify_pkt_recv_init,
126046 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
126047 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
126048 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
126049 + .send_init = vmci_transport_notify_pkt_send_init,
126050 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
126051 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
126052 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
126053 + .process_request = vmci_transport_notify_pkt_process_request,
126054 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
126055 };
126056 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
126057 index c8717c1..08539f5 100644
126058 --- a/net/wireless/wext-core.c
126059 +++ b/net/wireless/wext-core.c
126060 @@ -748,8 +748,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
126061 */
126062
126063 /* Support for very large requests */
126064 - if ((descr->flags & IW_DESCR_FLAG_NOMAX) &&
126065 - (user_length > descr->max_tokens)) {
126066 + if (user_length > descr->max_tokens) {
126067 /* Allow userspace to GET more than max so
126068 * we can support any size GET requests.
126069 * There is still a limit : -ENOMEM.
126070 @@ -788,22 +787,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
126071 }
126072 }
126073
126074 - if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) {
126075 - /*
126076 - * If this is a GET, but not NOMAX, it means that the extra
126077 - * data is not bounded by userspace, but by max_tokens. Thus
126078 - * set the length to max_tokens. This matches the extra data
126079 - * allocation.
126080 - * The driver should fill it with the number of tokens it
126081 - * provided, and it may check iwp->length rather than having
126082 - * knowledge of max_tokens. If the driver doesn't change the
126083 - * iwp->length, this ioctl just copies back max_token tokens
126084 - * filled with zeroes. Hopefully the driver isn't claiming
126085 - * them to be valid data.
126086 - */
126087 - iwp->length = descr->max_tokens;
126088 - }
126089 -
126090 err = handler(dev, info, (union iwreq_data *) iwp, extra);
126091
126092 iwp->length += essid_compat;
126093 diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
126094 index 4323952..a06dfe1 100644
126095 --- a/net/x25/sysctl_net_x25.c
126096 +++ b/net/x25/sysctl_net_x25.c
126097 @@ -70,7 +70,7 @@ static struct ctl_table x25_table[] = {
126098 .mode = 0644,
126099 .proc_handler = proc_dointvec,
126100 },
126101 - { 0, },
126102 + { },
126103 };
126104
126105 void __init x25_register_sysctl(void)
126106 diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c
126107 index 0917f04..f4e3d8c 100644
126108 --- a/net/x25/x25_proc.c
126109 +++ b/net/x25/x25_proc.c
126110 @@ -209,7 +209,7 @@ static const struct file_operations x25_seq_forward_fops = {
126111
126112 int __init x25_proc_init(void)
126113 {
126114 - if (!proc_mkdir("x25", init_net.proc_net))
126115 + if (!proc_mkdir_restrict("x25", init_net.proc_net))
126116 return -ENOMEM;
126117
126118 if (!proc_create("x25/route", S_IRUGO, init_net.proc_net,
126119 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
126120 index 94af3d0..7db10b8 100644
126121 --- a/net/xfrm/xfrm_policy.c
126122 +++ b/net/xfrm/xfrm_policy.c
126123 @@ -325,7 +325,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
126124 {
126125 policy->walk.dead = 1;
126126
126127 - atomic_inc(&policy->genid);
126128 + atomic_inc_unchecked(&policy->genid);
126129
126130 if (del_timer(&policy->polq.hold_timer))
126131 xfrm_pol_put(policy);
126132 @@ -775,7 +775,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
126133 else
126134 hlist_add_head(&policy->bydst, chain);
126135 __xfrm_policy_link(policy, dir);
126136 - atomic_inc(&net->xfrm.flow_cache_genid);
126137 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
126138
126139 /* After previous checking, family can either be AF_INET or AF_INET6 */
126140 if (policy->family == AF_INET)
126141 @@ -1878,7 +1878,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
126142
126143 xdst->num_pols = num_pols;
126144 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols);
126145 - xdst->policy_genid = atomic_read(&pols[0]->genid);
126146 + xdst->policy_genid = atomic_read_unchecked(&pols[0]->genid);
126147
126148 return xdst;
126149 }
126150 @@ -2691,10 +2691,11 @@ void xfrm_garbage_collect(struct net *net)
126151 }
126152 EXPORT_SYMBOL(xfrm_garbage_collect);
126153
126154 -static void xfrm_garbage_collect_deferred(struct net *net)
126155 +void xfrm_garbage_collect_deferred(struct net *net)
126156 {
126157 flow_cache_flush_deferred(net);
126158 }
126159 +EXPORT_SYMBOL(xfrm_garbage_collect_deferred);
126160
126161 static void xfrm_init_pmtu(struct dst_entry *dst)
126162 {
126163 @@ -2744,7 +2745,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
126164 if (xdst->xfrm_genid != dst->xfrm->genid)
126165 return 0;
126166 if (xdst->num_pols > 0 &&
126167 - xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
126168 + xdst->policy_genid != atomic_read_unchecked(&xdst->pols[0]->genid))
126169 return 0;
126170
126171 mtu = dst_mtu(dst->child);
126172 @@ -2832,8 +2833,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
126173 dst_ops->link_failure = xfrm_link_failure;
126174 if (likely(dst_ops->neigh_lookup == NULL))
126175 dst_ops->neigh_lookup = xfrm_neigh_lookup;
126176 - if (likely(afinfo->garbage_collect == NULL))
126177 - afinfo->garbage_collect = xfrm_garbage_collect_deferred;
126178 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
126179 }
126180 spin_unlock(&xfrm_policy_afinfo_lock);
126181 @@ -2887,7 +2886,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
126182 dst_ops->check = NULL;
126183 dst_ops->negative_advice = NULL;
126184 dst_ops->link_failure = NULL;
126185 - afinfo->garbage_collect = NULL;
126186 }
126187 return err;
126188 }
126189 @@ -3285,7 +3283,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
126190 sizeof(pol->xfrm_vec[i].saddr));
126191 pol->xfrm_vec[i].encap_family = mp->new_family;
126192 /* flush bundles */
126193 - atomic_inc(&pol->genid);
126194 + atomic_inc_unchecked(&pol->genid);
126195 }
126196 }
126197
126198 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
126199 index 9895a8c..e1f3bfb 100644
126200 --- a/net/xfrm/xfrm_state.c
126201 +++ b/net/xfrm/xfrm_state.c
126202 @@ -166,12 +166,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
126203
126204 if (unlikely(afinfo == NULL))
126205 return -EAFNOSUPPORT;
126206 - typemap = afinfo->type_map;
126207 + typemap = (const struct xfrm_type **)afinfo->type_map;
126208 spin_lock_bh(&xfrm_type_lock);
126209
126210 - if (likely(typemap[type->proto] == NULL))
126211 + if (likely(typemap[type->proto] == NULL)) {
126212 + pax_open_kernel();
126213 typemap[type->proto] = type;
126214 - else
126215 + pax_close_kernel();
126216 + } else
126217 err = -EEXIST;
126218 spin_unlock_bh(&xfrm_type_lock);
126219 xfrm_state_put_afinfo(afinfo);
126220 @@ -187,13 +189,16 @@ int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family)
126221
126222 if (unlikely(afinfo == NULL))
126223 return -EAFNOSUPPORT;
126224 - typemap = afinfo->type_map;
126225 + typemap = (const struct xfrm_type **)afinfo->type_map;
126226 spin_lock_bh(&xfrm_type_lock);
126227
126228 if (unlikely(typemap[type->proto] != type))
126229 err = -ENOENT;
126230 - else
126231 + else {
126232 + pax_open_kernel();
126233 typemap[type->proto] = NULL;
126234 + pax_close_kernel();
126235 + }
126236 spin_unlock_bh(&xfrm_type_lock);
126237 xfrm_state_put_afinfo(afinfo);
126238 return err;
126239 @@ -203,7 +208,6 @@ EXPORT_SYMBOL(xfrm_unregister_type);
126240 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family)
126241 {
126242 struct xfrm_state_afinfo *afinfo;
126243 - const struct xfrm_type **typemap;
126244 const struct xfrm_type *type;
126245 int modload_attempted = 0;
126246
126247 @@ -211,9 +215,8 @@ retry:
126248 afinfo = xfrm_state_get_afinfo(family);
126249 if (unlikely(afinfo == NULL))
126250 return NULL;
126251 - typemap = afinfo->type_map;
126252
126253 - type = typemap[proto];
126254 + type = afinfo->type_map[proto];
126255 if (unlikely(type && !try_module_get(type->owner)))
126256 type = NULL;
126257 if (!type && !modload_attempted) {
126258 @@ -247,7 +250,7 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
126259 return -EAFNOSUPPORT;
126260
126261 err = -EEXIST;
126262 - modemap = afinfo->mode_map;
126263 + modemap = (struct xfrm_mode **)afinfo->mode_map;
126264 spin_lock_bh(&xfrm_mode_lock);
126265 if (modemap[mode->encap])
126266 goto out;
126267 @@ -256,8 +259,10 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
126268 if (!try_module_get(afinfo->owner))
126269 goto out;
126270
126271 - mode->afinfo = afinfo;
126272 + pax_open_kernel();
126273 + *(const void **)&mode->afinfo = afinfo;
126274 modemap[mode->encap] = mode;
126275 + pax_close_kernel();
126276 err = 0;
126277
126278 out:
126279 @@ -281,10 +286,12 @@ int xfrm_unregister_mode(struct xfrm_mode *mode, int family)
126280 return -EAFNOSUPPORT;
126281
126282 err = -ENOENT;
126283 - modemap = afinfo->mode_map;
126284 + modemap = (struct xfrm_mode **)afinfo->mode_map;
126285 spin_lock_bh(&xfrm_mode_lock);
126286 if (likely(modemap[mode->encap] == mode)) {
126287 + pax_open_kernel();
126288 modemap[mode->encap] = NULL;
126289 + pax_close_kernel();
126290 module_put(mode->afinfo->owner);
126291 err = 0;
126292 }
126293 @@ -1505,10 +1512,10 @@ EXPORT_SYMBOL(xfrm_find_acq_byseq);
126294 u32 xfrm_get_acqseq(void)
126295 {
126296 u32 res;
126297 - static atomic_t acqseq;
126298 + static atomic_unchecked_t acqseq;
126299
126300 do {
126301 - res = atomic_inc_return(&acqseq);
126302 + res = atomic_inc_return_unchecked(&acqseq);
126303 } while (!res);
126304
126305 return res;
126306 diff --git a/net/xfrm/xfrm_sysctl.c b/net/xfrm/xfrm_sysctl.c
126307 index 05a6e3d..6716ec9 100644
126308 --- a/net/xfrm/xfrm_sysctl.c
126309 +++ b/net/xfrm/xfrm_sysctl.c
126310 @@ -42,7 +42,7 @@ static struct ctl_table xfrm_table[] = {
126311
126312 int __net_init xfrm_sysctl_init(struct net *net)
126313 {
126314 - struct ctl_table *table;
126315 + ctl_table_no_const *table;
126316
126317 __xfrm_sysctl_init(net);
126318
126319 diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
126320 index 1db6d73..0819042 100644
126321 --- a/scripts/Kbuild.include
126322 +++ b/scripts/Kbuild.include
126323 @@ -146,7 +146,7 @@ cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4))
126324 # cc-ldoption
126325 # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both)
126326 cc-ldoption = $(call try-run,\
126327 - $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
126328 + $(CC) $(1) -Wl,-r -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
126329
126330 # ld-option
126331 # Usage: LDFLAGS += $(call ld-option, -X)
126332 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
126333 index 01df30a..b687dbf 100644
126334 --- a/scripts/Makefile.build
126335 +++ b/scripts/Makefile.build
126336 @@ -60,7 +60,7 @@ endif
126337 endif
126338
126339 # Do not include host rules unless needed
126340 -ifneq ($(hostprogs-y)$(hostprogs-m),)
126341 +ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
126342 include scripts/Makefile.host
126343 endif
126344
126345 diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
126346 index 55c96cb..e4e88ab 100644
126347 --- a/scripts/Makefile.clean
126348 +++ b/scripts/Makefile.clean
126349 @@ -38,7 +38,8 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
126350 __clean-files := $(extra-y) $(extra-m) $(extra-) \
126351 $(always) $(targets) $(clean-files) \
126352 $(host-progs) \
126353 - $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
126354 + $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
126355 + $(hostlibs-y) $(hostlibs-m) $(hostlibs-)
126356
126357 __clean-files := $(filter-out $(no-clean-files), $(__clean-files))
126358
126359 diff --git a/scripts/Makefile.host b/scripts/Makefile.host
126360 index 133edfa..4d180d9 100644
126361 --- a/scripts/Makefile.host
126362 +++ b/scripts/Makefile.host
126363 @@ -20,7 +20,25 @@
126364 # Will compile qconf as a C++ program, and menu as a C program.
126365 # They are linked as C++ code to the executable qconf
126366
126367 +# hostprogs-y := conf
126368 +# conf-objs := conf.o libkconfig.so
126369 +# libkconfig-objs := expr.o type.o
126370 +# Will create a shared library named libkconfig.so that consists of
126371 +# expr.o and type.o (they are both compiled as C code and the object files
126372 +# are made as position independent code).
126373 +# conf.c is compiled as a C program, and conf.o is linked together with
126374 +# libkconfig.so as the executable conf.
126375 +# Note: Shared libraries consisting of C++ files are not supported
126376 +
126377 +# hostcc-option
126378 +# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
126379 +
126380 +hostcc-option = $(call try-run,\
126381 + $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
126382 +
126383 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
126384 +__hostlibs := $(sort $(hostlibs-y) $(hostlibs-m))
126385 +__hostcxxlibs := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m))
126386
126387 # C code
126388 # Executables compiled from a single .c file
126389 @@ -42,6 +60,19 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m)))
126390 # C++ Object (.o) files compiled from .cc files
126391 host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
126392
126393 +# Shared libaries (only .c supported)
126394 +# Shared libraries (.so) - all .so files referenced in "xxx-objs"
126395 +host-cshlib := $(sort $(filter %.so, $(host-cobjs)))
126396 +host-cshlib += $(sort $(filter %.so, $(__hostlibs)))
126397 +host-cxxshlib := $(sort $(filter %.so, $(__hostcxxlibs)))
126398 +# Remove .so files from "xxx-objs"
126399 +host-cobjs := $(filter-out %.so,$(host-cobjs))
126400 +host-cxxobjs := $(filter-out %.so,$(host-cxxobjs))
126401 +
126402 +# Object (.o) files used by the shared libaries
126403 +host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs))))
126404 +host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
126405 +
126406 # output directory for programs/.o files
126407 # hostprogs-y := tools/build may have been specified.
126408 # Retrieve also directory of .o files from prog-objs or prog-cxxobjs notation
126409 @@ -56,6 +87,10 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti))
126410 host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
126411 host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
126412 host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs))
126413 +host-cshlib := $(addprefix $(obj)/,$(host-cshlib))
126414 +host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib))
126415 +host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs))
126416 +host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
126417 host-objdirs := $(addprefix $(obj)/,$(host-objdirs))
126418
126419 obj-dirs += $(host-objdirs)
126420 @@ -124,5 +159,37 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@
126421 $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
126422 $(call if_changed_dep,host-cxxobjs)
126423
126424 +# Compile .c file, create position independent .o file
126425 +# host-cshobjs -> .o
126426 +quiet_cmd_host-cshobjs = HOSTCC -fPIC $@
126427 + cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $<
126428 +$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
126429 + $(call if_changed_dep,host-cshobjs)
126430 +
126431 +# Compile .c file, create position independent .o file
126432 +# host-cxxshobjs -> .o
126433 +quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@
126434 + cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
126435 +$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
126436 + $(call if_changed_dep,host-cxxshobjs)
126437 +
126438 +# Link a shared library, based on position independent .o files
126439 +# *.o -> .so shared library (host-cshlib)
126440 +quiet_cmd_host-cshlib = HOSTLLD -shared $@
126441 + cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
126442 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
126443 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
126444 +$(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
126445 + $(call if_changed,host-cshlib)
126446 +
126447 +# Link a shared library, based on position independent .o files
126448 +# *.o -> .so shared library (host-cxxshlib)
126449 +quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
126450 + cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
126451 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
126452 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
126453 +$(host-cxxshlib): $(obj)/%: $(host-cxxshobjs) FORCE
126454 + $(call if_changed,host-cxxshlib)
126455 +
126456 targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
126457 - $(host-cxxmulti) $(host-cxxobjs)
126458 + $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
126459 diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
126460 index c68fd61..f9a3b74 100644
126461 --- a/scripts/basic/fixdep.c
126462 +++ b/scripts/basic/fixdep.c
126463 @@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
126464 /*
126465 * Lookup a value in the configuration string.
126466 */
126467 -static int is_defined_config(const char *name, int len, unsigned int hash)
126468 +static int is_defined_config(const char *name, unsigned int len, unsigned int hash)
126469 {
126470 struct item *aux;
126471
126472 @@ -194,10 +194,10 @@ static void define_config(const char *name, int len, unsigned int hash)
126473 /*
126474 * Record the use of a CONFIG_* word.
126475 */
126476 -static void use_config(const char *m, int slen)
126477 +static void use_config(const char *m, unsigned int slen)
126478 {
126479 unsigned int hash = strhash(m, slen);
126480 - int c, i;
126481 + unsigned int c, i;
126482
126483 if (is_defined_config(m, slen, hash))
126484 return;
126485 @@ -218,9 +218,9 @@ static void use_config(const char *m, int slen)
126486
126487 static void parse_config_file(const char *map, size_t len)
126488 {
126489 - const int *end = (const int *) (map + len);
126490 + const unsigned int *end = (const unsigned int *) (map + len);
126491 /* start at +1, so that p can never be < map */
126492 - const int *m = (const int *) map + 1;
126493 + const unsigned int *m = (const unsigned int *) map + 1;
126494 const char *p, *q;
126495
126496 for (; m < end; m++) {
126497 @@ -417,7 +417,7 @@ static void print_deps(void)
126498 static void traps(void)
126499 {
126500 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
126501 - int *p = (int *)test;
126502 + unsigned int *p = (unsigned int *)test;
126503
126504 if (*p != INT_CONF) {
126505 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianness? %#x\n",
126506 diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
126507 index e81a8c74..a615ad7 100644
126508 --- a/scripts/dtc/checks.c
126509 +++ b/scripts/dtc/checks.c
126510 @@ -277,7 +277,7 @@ NODE_ERROR(duplicate_property_names, NULL);
126511 static void check_node_name_chars(struct check *c, struct node *dt,
126512 struct node *node)
126513 {
126514 - int n = strspn(node->name, c->data);
126515 + size_t n = strspn(node->name, c->data);
126516
126517 if (n < strlen(node->name))
126518 FAIL(c, "Bad character '%c' in node %s",
126519 @@ -297,7 +297,7 @@ NODE_ERROR(node_name_format, NULL, &node_name_chars);
126520 static void check_property_name_chars(struct check *c, struct node *dt,
126521 struct node *node, struct property *prop)
126522 {
126523 - int n = strspn(prop->name, c->data);
126524 + size_t n = strspn(prop->name, c->data);
126525
126526 if (n < strlen(prop->name))
126527 FAIL(c, "Bad character '%c' in property name \"%s\", node %s",
126528 @@ -399,7 +399,7 @@ static void check_explicit_phandles(struct check *c, struct node *root,
126529
126530 phandle = propval_cell(prop);
126531
126532 - if ((phandle == 0) || (phandle == -1)) {
126533 + if ((phandle == 0) || (phandle == ~0U)) {
126534 FAIL(c, "%s has bad value (0x%x) in %s property",
126535 node->fullpath, phandle, prop->name);
126536 return;
126537 @@ -462,7 +462,7 @@ static void fixup_phandle_references(struct check *c, struct node *dt,
126538 cell_t phandle;
126539
126540 for_each_marker_of_type(m, REF_PHANDLE) {
126541 - assert(m->offset + sizeof(cell_t) <= prop->val.len);
126542 + assert(m->offset + (int)sizeof(cell_t) <= prop->val.len);
126543
126544 refnode = get_node_by_ref(dt, m->ref);
126545 if (! refnode) {
126546 @@ -688,7 +688,7 @@ static void enable_warning_error(struct check *c, bool warn, bool error)
126547
126548 static void disable_warning_error(struct check *c, bool warn, bool error)
126549 {
126550 - int i;
126551 + size_t i;
126552
126553 /* Lowering level, also lower it for things this is the prereq
126554 * for */
126555 @@ -709,7 +709,7 @@ static void disable_warning_error(struct check *c, bool warn, bool error)
126556
126557 void parse_checks_option(bool warn, bool error, const char *arg)
126558 {
126559 - int i;
126560 + size_t i;
126561 const char *name = arg;
126562 bool enable = true;
126563
126564 @@ -737,7 +737,7 @@ void parse_checks_option(bool warn, bool error, const char *arg)
126565 void process_checks(bool force, struct boot_info *bi)
126566 {
126567 struct node *dt = bi->dt;
126568 - int i;
126569 + size_t i;
126570 int error = 0;
126571
126572 for (i = 0; i < ARRAY_SIZE(check_table); i++) {
126573 diff --git a/scripts/dtc/data.c b/scripts/dtc/data.c
126574 index 8cae237..dcdab66 100644
126575 --- a/scripts/dtc/data.c
126576 +++ b/scripts/dtc/data.c
126577 @@ -94,10 +94,10 @@ struct data data_copy_file(FILE *f, size_t maxlen)
126578 {
126579 struct data d = empty_data;
126580
126581 - while (!feof(f) && (d.len < maxlen)) {
126582 + while (!feof(f) && ((size_t)d.len < maxlen)) {
126583 size_t chunksize, ret;
126584
126585 - if (maxlen == -1)
126586 + if (maxlen == ~0UL)
126587 chunksize = 4096;
126588 else
126589 chunksize = maxlen - d.len;
126590 @@ -108,7 +108,7 @@ struct data data_copy_file(FILE *f, size_t maxlen)
126591 if (ferror(f))
126592 die("Error reading file into data: %s", strerror(errno));
126593
126594 - if (d.len + ret < d.len)
126595 + if (d.len + ret < (size_t)d.len)
126596 die("Overflow reading file into data\n");
126597
126598 d.len += ret;
126599 diff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c
126600 index bd99fa2..e04d08d 100644
126601 --- a/scripts/dtc/flattree.c
126602 +++ b/scripts/dtc/flattree.c
126603 @@ -178,7 +178,7 @@ static void asm_emit_data(void *e, struct data d)
126604 for_each_marker_of_type(m, LABEL)
126605 emit_offset_label(f, m->ref, m->offset);
126606
126607 - while ((d.len - off) >= sizeof(uint32_t)) {
126608 + while ((d.len - off) >= (int)sizeof(uint32_t)) {
126609 asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
126610 off += sizeof(uint32_t);
126611 }
126612 @@ -369,7 +369,7 @@ static void make_fdt_header(struct fdt_header *fdt,
126613 void dt_to_blob(FILE *f, struct boot_info *bi, int version)
126614 {
126615 struct version_info *vi = NULL;
126616 - int i;
126617 + size_t i;
126618 struct data blob = empty_data;
126619 struct data reservebuf = empty_data;
126620 struct data dtbuf = empty_data;
126621 @@ -463,7 +463,7 @@ static void dump_stringtable_asm(FILE *f, struct data strbuf)
126622 void dt_to_asm(FILE *f, struct boot_info *bi, int version)
126623 {
126624 struct version_info *vi = NULL;
126625 - int i;
126626 + size_t i;
126627 struct data strbuf = empty_data;
126628 struct reserve_info *re;
126629 const char *symprefix = "dt";
126630 @@ -543,7 +543,7 @@ void dt_to_asm(FILE *f, struct boot_info *bi, int version)
126631 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
126632 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
126633 }
126634 - for (i = 0; i < reservenum; i++) {
126635 + for (i = 0; i < (size_t)reservenum; i++) {
126636 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n");
126637 }
126638
126639 diff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c
126640 index e229b84..7141e8e 100644
126641 --- a/scripts/dtc/livetree.c
126642 +++ b/scripts/dtc/livetree.c
126643 @@ -492,7 +492,7 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle)
126644 {
126645 struct node *child, *node;
126646
126647 - assert((phandle != 0) && (phandle != -1));
126648 + assert((phandle != 0) && (phandle != ~0U));
126649
126650 if (tree->phandle == phandle) {
126651 if (tree->deleted)
126652 @@ -523,7 +523,7 @@ cell_t get_node_phandle(struct node *root, struct node *node)
126653 {
126654 static cell_t phandle = 1; /* FIXME: ick, static local */
126655
126656 - if ((node->phandle != 0) && (node->phandle != -1))
126657 + if ((node->phandle != 0) && (node->phandle != ~0U))
126658 return node->phandle;
126659
126660 while (get_node_by_phandle(root, phandle))
126661 diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh
126662 new file mode 100644
126663 index 0000000..eaa4fce
126664 --- /dev/null
126665 +++ b/scripts/gcc-plugin.sh
126666 @@ -0,0 +1,51 @@
126667 +#!/bin/sh
126668 +srctree=$(dirname "$0")
126669 +gccplugins_dir=$($3 -print-file-name=plugin)
126670 +plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
126671 +#include "gcc-common.h"
126672 +#if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)
126673 +#warning $2 CXX
126674 +#else
126675 +#warning $1 CC
126676 +#endif
126677 +EOF
126678 +)
126679 +
126680 +if [ $? -ne 0 ]
126681 +then
126682 + exit 1
126683 +fi
126684 +
126685 +case "$plugincc" in
126686 + *"$1 CC"*)
126687 + echo "$1"
126688 + exit 0
126689 + ;;
126690 +
126691 + *"$2 CXX"*)
126692 + # the c++ compiler needs another test, see below
126693 + ;;
126694 +
126695 + *)
126696 + exit 1
126697 + ;;
126698 +esac
126699 +
126700 +# we need a c++ compiler that supports the designated initializer GNU extension
126701 +plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
126702 +#include "gcc-common.h"
126703 +class test {
126704 +public:
126705 + int test;
126706 +} test = {
126707 + .test = 1
126708 +};
126709 +EOF
126710 +)
126711 +
126712 +if [ $? -eq 0 ]
126713 +then
126714 + echo "$2"
126715 + exit 0
126716 +fi
126717 +exit 1
126718 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
126719 index fdebd66..a349e33 100755
126720 --- a/scripts/headers_install.sh
126721 +++ b/scripts/headers_install.sh
126722 @@ -32,6 +32,7 @@ do
126723 FILE="$(basename "$i")"
126724 sed -r \
126725 -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
126726 + -e 's/__intentional_overflow\([- \t,0-9]*\)//g' \
126727 -e 's/__attribute_const__([ \t]|$)/\1/g' \
126728 -e 's@^#include <linux/compiler.h>@@' \
126729 -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
126730 diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
126731 index 8fa81e8..a9ac144 100644
126732 --- a/scripts/kallsyms.c
126733 +++ b/scripts/kallsyms.c
126734 @@ -89,7 +89,7 @@ static inline int is_arm_mapping_symbol(const char *str)
126735 }
126736
126737 static int check_symbol_range(const char *sym, unsigned long long addr,
126738 - struct addr_range *ranges, int entries)
126739 + struct addr_range *ranges, size_t entries)
126740 {
126741 size_t i;
126742 struct addr_range *ar;
126743 @@ -178,7 +178,7 @@ static int read_symbol(FILE *in, struct sym_entry *s)
126744 }
126745
126746 static int symbol_in_range(struct sym_entry *s, struct addr_range *ranges,
126747 - int entries)
126748 + size_t entries)
126749 {
126750 size_t i;
126751 struct addr_range *ar;
126752 diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
126753 index 91ca126..5f7cad6 100644
126754 --- a/scripts/kconfig/lkc.h
126755 +++ b/scripts/kconfig/lkc.h
126756 @@ -108,7 +108,8 @@ void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
126757 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
126758 void menu_add_option(int token, char *arg);
126759 void menu_finalize(struct menu *parent);
126760 -void menu_set_type(int type);
126761 +enum symbol_type;
126762 +void menu_set_type(enum symbol_type type);
126763
126764 /* util.c */
126765 struct file *file_lookup(const char *name);
126766 @@ -123,7 +124,7 @@ struct gstr {
126767 * when max_width is not zero long lines in string s (if any) get
126768 * wrapped not to exceed the max_width value
126769 */
126770 - int max_width;
126771 + size_t max_width;
126772 };
126773 struct gstr str_new(void);
126774 void str_free(struct gstr *gs);
126775 diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
126776 index b05cc3d..72fb2a8 100644
126777 --- a/scripts/kconfig/menu.c
126778 +++ b/scripts/kconfig/menu.c
126779 @@ -109,7 +109,7 @@ void menu_add_dep(struct expr *dep)
126780 current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
126781 }
126782
126783 -void menu_set_type(int type)
126784 +void menu_set_type(enum symbol_type type)
126785 {
126786 struct symbol *sym = current_entry->sym;
126787
126788 diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
126789 index 50878dc..755b89d 100644
126790 --- a/scripts/kconfig/symbol.c
126791 +++ b/scripts/kconfig/symbol.c
126792 @@ -956,7 +956,7 @@ const char *sym_escape_string_value(const char *in)
126793
126794 struct sym_match {
126795 struct symbol *sym;
126796 - off_t so, eo;
126797 + regoff_t so, eo;
126798 };
126799
126800 /* Compare matched symbols as thus:
126801 @@ -978,8 +978,8 @@ static int sym_rel_comp(const void *sym1, const void *sym2)
126802 * exactly; if this is the case, we can't decide which comes first,
126803 * and we fallback to sorting alphabetically.
126804 */
126805 - exact1 = (s1->eo - s1->so) == strlen(s1->sym->name);
126806 - exact2 = (s2->eo - s2->so) == strlen(s2->sym->name);
126807 + exact1 = (s1->eo - s1->so) == (long)strlen(s1->sym->name);
126808 + exact2 = (s2->eo - s2->so) == (long)strlen(s2->sym->name);
126809 if (exact1 && !exact2)
126810 return -1;
126811 if (!exact1 && exact2)
126812 diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
126813 index 1a10d8a..843fdce 100755
126814 --- a/scripts/link-vmlinux.sh
126815 +++ b/scripts/link-vmlinux.sh
126816 @@ -179,7 +179,7 @@ else
126817 fi;
126818
126819 # final build of init/
126820 -${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
126821 +${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init GCC_PLUGINS_CFLAGS="${GCC_PLUGINS_CFLAGS}" GCC_PLUGINS_AFLAGS="${GCC_PLUGINS_AFLAGS}"
126822
126823 kallsymso=""
126824 kallsyms_vmlinux=""
126825 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
126826 index 5f20882..d914642 100644
126827 --- a/scripts/mod/file2alias.c
126828 +++ b/scripts/mod/file2alias.c
126829 @@ -154,7 +154,7 @@ static void device_id_check(const char *modname, const char *device_id,
126830 unsigned long size, unsigned long id_size,
126831 void *symval)
126832 {
126833 - int i;
126834 + unsigned int i;
126835
126836 if (size % id_size || size < id_size) {
126837 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
126838 @@ -183,7 +183,7 @@ static void device_id_check(const char *modname, const char *device_id,
126839 /* USB is special because the bcdDevice can be matched against a numeric range */
126840 /* Looks like "usb:vNpNdNdcNdscNdpNicNiscNipNinN" */
126841 static void do_usb_entry(void *symval,
126842 - unsigned int bcdDevice_initial, int bcdDevice_initial_digits,
126843 + unsigned int bcdDevice_initial, unsigned int bcdDevice_initial_digits,
126844 unsigned char range_lo, unsigned char range_hi,
126845 unsigned char max, struct module *mod)
126846 {
126847 @@ -293,7 +293,7 @@ static void do_usb_entry_multi(void *symval, struct module *mod)
126848 {
126849 unsigned int devlo, devhi;
126850 unsigned char chi, clo, max;
126851 - int ndigits;
126852 + unsigned int ndigits;
126853
126854 DEF_FIELD(symval, usb_device_id, match_flags);
126855 DEF_FIELD(symval, usb_device_id, idVendor);
126856 @@ -574,7 +574,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
126857 for (i = 0; i < count; i++) {
126858 DEF_FIELD_ADDR(symval + i*id_size, pnp_device_id, id);
126859 char acpi_id[sizeof(*id)];
126860 - int j;
126861 + unsigned int j;
126862
126863 buf_printf(&mod->dev_table_buf,
126864 "MODULE_ALIAS(\"pnp:d%s*\");\n", *id);
126865 @@ -603,7 +603,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
126866
126867 for (j = 0; j < PNP_MAX_DEVICES; j++) {
126868 const char *id = (char *)(*devs)[j].id;
126869 - int i2, j2;
126870 + unsigned int i2, j2;
126871 int dup = 0;
126872
126873 if (!id[0])
126874 @@ -629,7 +629,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
126875 /* add an individual alias for every device entry */
126876 if (!dup) {
126877 char acpi_id[PNP_ID_LEN];
126878 - int k;
126879 + unsigned int k;
126880
126881 buf_printf(&mod->dev_table_buf,
126882 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
126883 @@ -979,7 +979,7 @@ static void dmi_ascii_filter(char *d, const char *s)
126884 static int do_dmi_entry(const char *filename, void *symval,
126885 char *alias)
126886 {
126887 - int i, j;
126888 + unsigned int i, j;
126889 DEF_FIELD_ADDR(symval, dmi_system_id, matches);
126890 sprintf(alias, "dmi*");
126891
126892 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
126893 index 12d3db3..be51548 100644
126894 --- a/scripts/mod/modpost.c
126895 +++ b/scripts/mod/modpost.c
126896 @@ -943,6 +943,7 @@ enum mismatch {
126897 ANY_EXIT_TO_ANY_INIT,
126898 EXPORT_TO_INIT_EXIT,
126899 EXTABLE_TO_NON_TEXT,
126900 + DATA_TO_TEXT
126901 };
126902
126903 /**
126904 @@ -1069,6 +1070,12 @@ static const struct sectioncheck sectioncheck[] = {
126905 .good_tosec = {ALL_TEXT_SECTIONS , NULL},
126906 .mismatch = EXTABLE_TO_NON_TEXT,
126907 .handler = extable_mismatch_handler,
126908 +},
126909 +/* Do not reference code from writable data */
126910 +{
126911 + .fromsec = { DATA_SECTIONS, NULL },
126912 + .bad_tosec = { ALL_TEXT_SECTIONS, NULL },
126913 + .mismatch = DATA_TO_TEXT
126914 }
126915 };
126916
126917 @@ -1218,10 +1225,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
126918 continue;
126919 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
126920 continue;
126921 - if (sym->st_value == addr)
126922 - return sym;
126923 /* Find a symbol nearby - addr are maybe negative */
126924 d = sym->st_value - addr;
126925 + if (d == 0)
126926 + return sym;
126927 if (d < 0)
126928 d = addr - sym->st_value;
126929 if (d < distance) {
126930 @@ -1504,6 +1511,14 @@ static void report_sec_mismatch(const char *modname,
126931 fatal("There's a special handler for this mismatch type, "
126932 "we should never get here.");
126933 break;
126934 + case DATA_TO_TEXT:
126935 +#if 0
126936 + fprintf(stderr,
126937 + "The %s %s:%s references\n"
126938 + "the %s %s:%s%s\n",
126939 + from, fromsec, fromsym, to, tosec, tosym, to_p);
126940 +#endif
126941 + break;
126942 }
126943 fprintf(stderr, "\n");
126944 }
126945 @@ -1893,7 +1908,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
126946 static void check_sec_ref(struct module *mod, const char *modname,
126947 struct elf_info *elf)
126948 {
126949 - int i;
126950 + unsigned int i;
126951 Elf_Shdr *sechdrs = elf->sechdrs;
126952
126953 /* Walk through all sections */
126954 @@ -2024,7 +2039,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
126955 va_end(ap);
126956 }
126957
126958 -void buf_write(struct buffer *buf, const char *s, int len)
126959 +void buf_write(struct buffer *buf, const char *s, unsigned int len)
126960 {
126961 if (buf->size - buf->pos < len) {
126962 buf->size += len + SZ;
126963 @@ -2243,7 +2258,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
126964 if (fstat(fileno(file), &st) < 0)
126965 goto close_write;
126966
126967 - if (st.st_size != b->pos)
126968 + if (st.st_size != (off_t)b->pos)
126969 goto close_write;
126970
126971 tmp = NOFAIL(malloc(b->pos));
126972 diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
126973 index 6a5e151..f2fbaf5 100644
126974 --- a/scripts/mod/modpost.h
126975 +++ b/scripts/mod/modpost.h
126976 @@ -98,15 +98,15 @@ void *do_nofail(void *ptr, const char *expr);
126977
126978 struct buffer {
126979 char *p;
126980 - int pos;
126981 - int size;
126982 + unsigned int pos;
126983 + unsigned int size;
126984 };
126985
126986 void __attribute__((format(printf, 2, 3)))
126987 buf_printf(struct buffer *buf, const char *fmt, ...);
126988
126989 void
126990 -buf_write(struct buffer *buf, const char *s, int len);
126991 +buf_write(struct buffer *buf, const char *s, unsigned int len);
126992
126993 struct module {
126994 struct module *next;
126995 diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
126996 index 944418d..15291e4 100644
126997 --- a/scripts/mod/sumversion.c
126998 +++ b/scripts/mod/sumversion.c
126999 @@ -470,7 +470,7 @@ static void write_version(const char *filename, const char *sum,
127000 goto out;
127001 }
127002
127003 - if (write(fd, sum, strlen(sum)+1) != strlen(sum)+1) {
127004 + if (write(fd, sum, strlen(sum)+1) != (ssize_t)strlen(sum)+1) {
127005 warn("writing sum in %s failed: %s\n",
127006 filename, strerror(errno));
127007 goto out;
127008 diff --git a/scripts/module-common.lds b/scripts/module-common.lds
127009 index 73a2c7d..df11b31 100644
127010 --- a/scripts/module-common.lds
127011 +++ b/scripts/module-common.lds
127012 @@ -6,6 +6,10 @@
127013 SECTIONS {
127014 /DISCARD/ : { *(.discard) }
127015
127016 + .rodata 0: {
127017 + *(.rodata) *(.rodata.*)
127018 + *(.data..read_only)
127019 + }
127020 __ksymtab 0 : { *(SORT(___ksymtab+*)) }
127021 __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) }
127022 __ksymtab_unused 0 : { *(SORT(___ksymtab_unused+*)) }
127023 diff --git a/scripts/package/Makefile b/scripts/package/Makefile
127024 index 1aca224..3c71eb0 100644
127025 --- a/scripts/package/Makefile
127026 +++ b/scripts/package/Makefile
127027 @@ -40,7 +40,7 @@ if test "$(objtree)" != "$(srctree)"; then \
127028 fi ; \
127029 $(srctree)/scripts/setlocalversion --save-scmversion; \
127030 ln -sf $(srctree) $(2); \
127031 -tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
127032 +tar --owner=root --group=root -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
127033 $(addprefix $(2)/,$(TAR_CONTENT) $(3)); \
127034 rm -f $(2) $(objtree)/.scmversion
127035
127036 diff --git a/scripts/package/builddeb b/scripts/package/builddeb
127037 index b967e4f..fcd537d 100755
127038 --- a/scripts/package/builddeb
127039 +++ b/scripts/package/builddeb
127040 @@ -317,6 +317,7 @@ fi
127041 (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
127042 (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
127043 (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
127044 +(cd $objtree; find tools/gcc -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles"
127045 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
127046 mkdir -p "$destdir"
127047 (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
127048 diff --git a/scripts/package/mkspec b/scripts/package/mkspec
127049 index 71004da..3874acb 100755
127050 --- a/scripts/package/mkspec
127051 +++ b/scripts/package/mkspec
127052 @@ -120,29 +120,40 @@ echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
127053 echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
127054 echo "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d\""
127055 echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
127056 -echo 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
127057 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE build"
127058 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE source"
127059 fi
127060
127061 echo ""
127062 echo "%clean"
127063 echo 'rm -rf $RPM_BUILD_ROOT'
127064 echo ""
127065 +echo "%pre"
127066 +echo 'chmod -f 0500 /boot'
127067 +echo 'if [ -d /lib/modules ]; then'
127068 +echo 'chmod -f 0500 /lib/modules'
127069 +echo 'fi'
127070 +echo 'if [ -d /lib32/modules ]; then'
127071 +echo 'chmod -f 0500 /lib32/modules'
127072 +echo 'fi'
127073 +echo 'if [ -d /lib64/modules ]; then'
127074 +echo 'chmod -f 0500 /lib64/modules'
127075 +echo 'fi'
127076 +echo ""
127077 +echo "%post devel"
127078 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/build"
127079 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/source"
127080 +echo ""
127081 echo "%post"
127082 -echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
127083 -echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm"
127084 -echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm"
127085 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
127086 -echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
127087 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
127088 +echo "if [ -x /sbin/dracut ]; then"
127089 +echo '/sbin/new-kernel-pkg --dracut --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
127090 +echo "else"
127091 +echo '/sbin/new-kernel-pkg --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
127092 echo "fi"
127093 echo ""
127094 echo "%files"
127095 -echo '%defattr (-, root, root)'
127096 -echo "/lib/modules/$KERNELRELEASE"
127097 +echo '%defattr (400, root, root, 500)'
127098 echo "%exclude /lib/modules/$KERNELRELEASE/build"
127099 echo "%exclude /lib/modules/$KERNELRELEASE/source"
127100 +echo "/lib/modules/$KERNELRELEASE"
127101 echo "/lib/firmware/$KERNELRELEASE"
127102 echo "/boot/*"
127103 echo ""
127104 @@ -152,9 +163,11 @@ echo "/usr/include"
127105 echo ""
127106 if ! $PREBUILT; then
127107 echo "%files devel"
127108 -echo '%defattr (-, root, root)'
127109 +echo '%defattr (400, root, root, 500)'
127110 +echo "%dir /lib/modules/$KERNELRELEASE"
127111 echo "/usr/src/kernels/$KERNELRELEASE"
127112 -echo "/lib/modules/$KERNELRELEASE/build"
127113 -echo "/lib/modules/$KERNELRELEASE/source"
127114 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/recordmcount"
127115 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/basic/fixdep"
127116 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/mod/modpost"
127117 echo ""
127118 fi
127119 diff --git a/scripts/pnmtologo.c b/scripts/pnmtologo.c
127120 index 4718d78..9220d58 100644
127121 --- a/scripts/pnmtologo.c
127122 +++ b/scripts/pnmtologo.c
127123 @@ -244,14 +244,14 @@ static void write_header(void)
127124 fprintf(out, " * Linux logo %s\n", logoname);
127125 fputs(" */\n\n", out);
127126 fputs("#include <linux/linux_logo.h>\n\n", out);
127127 - fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
127128 + fprintf(out, "static unsigned char %s_data[] = {\n",
127129 logoname);
127130 }
127131
127132 static void write_footer(void)
127133 {
127134 fputs("\n};\n\n", out);
127135 - fprintf(out, "const struct linux_logo %s __initconst = {\n", logoname);
127136 + fprintf(out, "const struct linux_logo %s = {\n", logoname);
127137 fprintf(out, "\t.type\t\t= %s,\n", logo_types[logo_type]);
127138 fprintf(out, "\t.width\t\t= %d,\n", logo_width);
127139 fprintf(out, "\t.height\t\t= %d,\n", logo_height);
127140 @@ -381,7 +381,7 @@ static void write_logo_clut224(void)
127141 fputs("\n};\n\n", out);
127142
127143 /* write logo clut */
127144 - fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
127145 + fprintf(out, "static unsigned char %s_clut[] = {\n",
127146 logoname);
127147 write_hex_cnt = 0;
127148 for (i = 0; i < logo_clutsize; i++) {
127149 diff --git a/scripts/sortextable.h b/scripts/sortextable.h
127150 index ba87004..3f4852c 100644
127151 --- a/scripts/sortextable.h
127152 +++ b/scripts/sortextable.h
127153 @@ -108,9 +108,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
127154 const char *secstrtab;
127155 const char *strtab;
127156 char *extab_image;
127157 - int extab_index = 0;
127158 - int i;
127159 - int idx;
127160 + unsigned int extab_index = 0;
127161 + unsigned int i;
127162 + unsigned int idx;
127163 unsigned int num_sections;
127164 unsigned int secindex_strings;
127165
127166 diff --git a/scripts/tags.sh b/scripts/tags.sh
127167 index 8e5aee6..445cf3d 100755
127168 --- a/scripts/tags.sh
127169 +++ b/scripts/tags.sh
127170 @@ -26,7 +26,7 @@ else
127171 fi
127172
127173 # ignore userspace tools
127174 -ignore="$ignore ( -path ${tree}tools ) -prune -o"
127175 +ignore="$ignore ( -path \"${tree}tools/[^g]*\" ) -prune -o"
127176
127177 # Find all available archs
127178 find_all_archs()
127179 diff --git a/security/Kconfig b/security/Kconfig
127180 index e452378..3e213c66 100644
127181 --- a/security/Kconfig
127182 +++ b/security/Kconfig
127183 @@ -4,6 +4,981 @@
127184
127185 menu "Security options"
127186
127187 +menu "Grsecurity"
127188 +
127189 + config ARCH_TRACK_EXEC_LIMIT
127190 + bool
127191 +
127192 + config PAX_KERNEXEC_PLUGIN
127193 + bool
127194 +
127195 + config PAX_PER_CPU_PGD
127196 + bool
127197 +
127198 + config TASK_SIZE_MAX_SHIFT
127199 + int
127200 + depends on X86_64
127201 + default 47 if !PAX_PER_CPU_PGD
127202 + default 42 if PAX_PER_CPU_PGD
127203 +
127204 + config PAX_ENABLE_PAE
127205 + bool
127206 + default y if (X86_32 && (MPENTIUM4 || MK8 || MPSC || MCORE2 || MATOM))
127207 +
127208 + config PAX_USERCOPY_SLABS
127209 + bool
127210 +
127211 +config GRKERNSEC
127212 + bool "Grsecurity"
127213 + select CRYPTO
127214 + select CRYPTO_SHA256
127215 + select PROC_FS
127216 + select STOP_MACHINE
127217 + select TTY
127218 + select DEBUG_KERNEL
127219 + select DEBUG_LIST
127220 + select MULTIUSER
127221 + help
127222 + If you say Y here, you will be able to configure many features
127223 + that will enhance the security of your system. It is highly
127224 + recommended that you say Y here and read through the help
127225 + for each option so that you fully understand the features and
127226 + can evaluate their usefulness for your machine.
127227 +
127228 +choice
127229 + prompt "Configuration Method"
127230 + depends on GRKERNSEC
127231 + default GRKERNSEC_CONFIG_CUSTOM
127232 + help
127233 +
127234 +config GRKERNSEC_CONFIG_AUTO
127235 + bool "Automatic"
127236 + help
127237 + If you choose this configuration method, you'll be able to answer a small
127238 + number of simple questions about how you plan to use this kernel.
127239 + The settings of grsecurity and PaX will be automatically configured for
127240 + the highest commonly-used settings within the provided constraints.
127241 +
127242 + If you require additional configuration, custom changes can still be made
127243 + from the "custom configuration" menu.
127244 +
127245 +config GRKERNSEC_CONFIG_CUSTOM
127246 + bool "Custom"
127247 + help
127248 + If you choose this configuration method, you'll be able to configure all
127249 + grsecurity and PaX settings manually. Via this method, no options are
127250 + automatically enabled.
127251 +
127252 + Take note that if menuconfig is exited with this configuration method
127253 + chosen, you will not be able to use the automatic configuration methods
127254 + without starting again with a kernel configuration with no grsecurity
127255 + or PaX options specified inside.
127256 +
127257 +endchoice
127258 +
127259 +choice
127260 + prompt "Usage Type"
127261 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127262 + default GRKERNSEC_CONFIG_SERVER
127263 + help
127264 +
127265 +config GRKERNSEC_CONFIG_SERVER
127266 + bool "Server"
127267 + help
127268 + Choose this option if you plan to use this kernel on a server.
127269 +
127270 +config GRKERNSEC_CONFIG_DESKTOP
127271 + bool "Desktop"
127272 + help
127273 + Choose this option if you plan to use this kernel on a desktop.
127274 +
127275 +endchoice
127276 +
127277 +choice
127278 + prompt "Virtualization Type"
127279 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO)
127280 + default GRKERNSEC_CONFIG_VIRT_NONE
127281 + help
127282 +
127283 +config GRKERNSEC_CONFIG_VIRT_NONE
127284 + bool "None"
127285 + help
127286 + Choose this option if this kernel will be run on bare metal.
127287 +
127288 +config GRKERNSEC_CONFIG_VIRT_GUEST
127289 + bool "Guest"
127290 + help
127291 + Choose this option if this kernel will be run as a VM guest.
127292 +
127293 +config GRKERNSEC_CONFIG_VIRT_HOST
127294 + bool "Host"
127295 + help
127296 + Choose this option if this kernel will be run as a VM host.
127297 +
127298 +endchoice
127299 +
127300 +choice
127301 + prompt "Virtualization Hardware"
127302 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
127303 + help
127304 +
127305 +config GRKERNSEC_CONFIG_VIRT_EPT
127306 + bool "EPT/RVI Processor Support"
127307 + depends on X86
127308 + help
127309 + Choose this option if your CPU supports the EPT or RVI features of 2nd-gen
127310 + hardware virtualization. This allows for additional kernel hardening protections
127311 + to operate without additional performance impact.
127312 +
127313 + To see if your Intel processor supports EPT, see:
127314 + http://ark.intel.com/Products/VirtualizationTechnology
127315 + (Most Core i3/5/7 support EPT)
127316 +
127317 + To see if your AMD processor supports RVI, see:
127318 + http://support.amd.com/us/kbarticles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx
127319 +
127320 +config GRKERNSEC_CONFIG_VIRT_SOFT
127321 + bool "First-gen/No Hardware Virtualization"
127322 + help
127323 + Choose this option if you use an Atom/Pentium/Core 2 processor that either doesn't
127324 + support hardware virtualization or doesn't support the EPT/RVI extensions.
127325 +
127326 +endchoice
127327 +
127328 +choice
127329 + prompt "Virtualization Software"
127330 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
127331 + help
127332 +
127333 +config GRKERNSEC_CONFIG_VIRT_XEN
127334 + bool "Xen"
127335 + help
127336 + Choose this option if this kernel is running as a Xen guest or host.
127337 +
127338 +config GRKERNSEC_CONFIG_VIRT_VMWARE
127339 + bool "VMWare"
127340 + help
127341 + Choose this option if this kernel is running as a VMWare guest or host.
127342 +
127343 +config GRKERNSEC_CONFIG_VIRT_KVM
127344 + bool "KVM"
127345 + help
127346 + Choose this option if this kernel is running as a KVM guest or host.
127347 +
127348 +config GRKERNSEC_CONFIG_VIRT_VIRTUALBOX
127349 + bool "VirtualBox"
127350 + help
127351 + Choose this option if this kernel is running as a VirtualBox guest or host.
127352 +
127353 +config GRKERNSEC_CONFIG_VIRT_HYPERV
127354 + bool "Hyper-V"
127355 + help
127356 + Choose this option if this kernel is running as a Hyper-V guest.
127357 +
127358 +endchoice
127359 +
127360 +choice
127361 + prompt "Required Priorities"
127362 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127363 + default GRKERNSEC_CONFIG_PRIORITY_PERF
127364 + help
127365 +
127366 +config GRKERNSEC_CONFIG_PRIORITY_PERF
127367 + bool "Performance"
127368 + help
127369 + Choose this option if performance is of highest priority for this deployment
127370 + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing,
127371 + clearing of structures intended for userland, and freed memory sanitizing will
127372 + be disabled.
127373 +
127374 +config GRKERNSEC_CONFIG_PRIORITY_SECURITY
127375 + bool "Security"
127376 + help
127377 + Choose this option if security is of highest priority for this deployment of
127378 + grsecurity. UDEREF, kernel stack clearing, clearing of structures intended
127379 + for userland, and freed memory sanitizing will be enabled for this kernel.
127380 + In a worst-case scenario, these features can introduce a 20% performance hit
127381 + (UDEREF on x64 contributing half of this hit).
127382 +
127383 +endchoice
127384 +
127385 +menu "Default Special Groups"
127386 +depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127387 +
127388 +config GRKERNSEC_PROC_GID
127389 + int "GID exempted from /proc restrictions"
127390 + default 1001
127391 + help
127392 + Setting this GID determines which group will be exempted from
127393 + grsecurity's /proc restrictions, allowing users of the specified
127394 + group to view network statistics and the existence of other users'
127395 + processes on the system. This GID may also be chosen at boot time
127396 + via "grsec_proc_gid=" on the kernel commandline.
127397 +
127398 +config GRKERNSEC_TPE_UNTRUSTED_GID
127399 + int "GID for TPE-untrusted users"
127400 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
127401 + default 1005
127402 + help
127403 + Setting this GID determines which group untrusted users should
127404 + be added to. These users will be placed under grsecurity's Trusted Path
127405 + Execution mechanism, preventing them from executing their own binaries.
127406 + The users will only be able to execute binaries in directories owned and
127407 + writable only by the root user. If the sysctl option is enabled, a sysctl
127408 + option with name "tpe_gid" is created.
127409 +
127410 +config GRKERNSEC_TPE_TRUSTED_GID
127411 + int "GID for TPE-trusted users"
127412 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
127413 + default 1005
127414 + help
127415 + Setting this GID determines what group TPE restrictions will be
127416 + *disabled* for. If the sysctl option is enabled, a sysctl option
127417 + with name "tpe_gid" is created.
127418 +
127419 +config GRKERNSEC_SYMLINKOWN_GID
127420 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
127421 + depends on GRKERNSEC_CONFIG_SERVER
127422 + default 1006
127423 + help
127424 + Setting this GID determines what group kernel-enforced
127425 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
127426 + is enabled, a sysctl option with name "symlinkown_gid" is created.
127427 +
127428 +
127429 +endmenu
127430 +
127431 +menu "Customize Configuration"
127432 +depends on GRKERNSEC
127433 +
127434 +menu "PaX"
127435 +
127436 +config PAX
127437 + bool "Enable various PaX features"
127438 + default y if GRKERNSEC_CONFIG_AUTO
127439 + depends on GRKERNSEC && (ALPHA || ARM || AVR32 || IA64 || MIPS || PARISC || PPC || SPARC || X86)
127440 + help
127441 + This allows you to enable various PaX features. PaX adds
127442 + intrusion prevention mechanisms to the kernel that reduce
127443 + the risks posed by exploitable memory corruption bugs.
127444 +
127445 +menu "PaX Control"
127446 + depends on PAX
127447 +
127448 +config PAX_SOFTMODE
127449 + bool 'Support soft mode'
127450 + help
127451 + Enabling this option will allow you to run PaX in soft mode, that
127452 + is, PaX features will not be enforced by default, only on executables
127453 + marked explicitly. You must also enable PT_PAX_FLAGS or XATTR_PAX_FLAGS
127454 + support as they are the only way to mark executables for soft mode use.
127455 +
127456 + Soft mode can be activated by using the "pax_softmode=1" kernel command
127457 + line option on boot. Furthermore you can control various PaX features
127458 + at runtime via the entries in /proc/sys/kernel/pax.
127459 +
127460 +config PAX_EI_PAX
127461 + bool 'Use legacy ELF header marking'
127462 + default y if GRKERNSEC_CONFIG_AUTO
127463 + help
127464 + Enabling this option will allow you to control PaX features on
127465 + a per executable basis via the 'chpax' utility available at
127466 + http://pax.grsecurity.net/. The control flags will be read from
127467 + an otherwise reserved part of the ELF header. This marking has
127468 + numerous drawbacks (no support for soft-mode, toolchain does not
127469 + know about the non-standard use of the ELF header) therefore it
127470 + has been deprecated in favour of PT_PAX_FLAGS and XATTR_PAX_FLAGS
127471 + support.
127472 +
127473 + Note that if you enable PT_PAX_FLAGS or XATTR_PAX_FLAGS marking
127474 + support as well, they will override the legacy EI_PAX marks.
127475 +
127476 + If you enable none of the marking options then all applications
127477 + will run with PaX enabled on them by default.
127478 +
127479 +config PAX_PT_PAX_FLAGS
127480 + bool 'Use ELF program header marking'
127481 + default y if GRKERNSEC_CONFIG_AUTO
127482 + help
127483 + Enabling this option will allow you to control PaX features on
127484 + a per executable basis via the 'paxctl' utility available at
127485 + http://pax.grsecurity.net/. The control flags will be read from
127486 + a PaX specific ELF program header (PT_PAX_FLAGS). This marking
127487 + has the benefits of supporting both soft mode and being fully
127488 + integrated into the toolchain (the binutils patch is available
127489 + from http://pax.grsecurity.net).
127490 +
127491 + Note that if you enable the legacy EI_PAX marking support as well,
127492 + the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
127493 +
127494 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
127495 + must make sure that the marks are the same if a binary has both marks.
127496 +
127497 + If you enable none of the marking options then all applications
127498 + will run with PaX enabled on them by default.
127499 +
127500 +config PAX_XATTR_PAX_FLAGS
127501 + bool 'Use filesystem extended attributes marking'
127502 + default y if GRKERNSEC_CONFIG_AUTO
127503 + select CIFS_XATTR if CIFS
127504 + select EXT2_FS_XATTR if EXT2_FS
127505 + select EXT3_FS_XATTR if EXT3_FS
127506 + select F2FS_FS_XATTR if F2FS_FS
127507 + select JFFS2_FS_XATTR if JFFS2_FS
127508 + select REISERFS_FS_XATTR if REISERFS_FS
127509 + select SQUASHFS_XATTR if SQUASHFS
127510 + select TMPFS_XATTR if TMPFS
127511 + help
127512 + Enabling this option will allow you to control PaX features on
127513 + a per executable basis via the 'setfattr' utility. The control
127514 + flags will be read from the user.pax.flags extended attribute of
127515 + the file. This marking has the benefit of supporting binary-only
127516 + applications that self-check themselves (e.g., skype) and would
127517 + not tolerate chpax/paxctl changes. The main drawback is that
127518 + extended attributes are not supported by some filesystems (e.g.,
127519 + isofs, udf, vfat) so copying files through such filesystems will
127520 + lose the extended attributes and these PaX markings.
127521 +
127522 + Note that if you enable the legacy EI_PAX marking support as well,
127523 + the EI_PAX marks will be overridden by the XATTR_PAX_FLAGS marks.
127524 +
127525 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
127526 + must make sure that the marks are the same if a binary has both marks.
127527 +
127528 + If you enable none of the marking options then all applications
127529 + will run with PaX enabled on them by default.
127530 +
127531 +choice
127532 + prompt 'MAC system integration'
127533 + default PAX_HAVE_ACL_FLAGS
127534 + help
127535 + Mandatory Access Control systems have the option of controlling
127536 + PaX flags on a per executable basis, choose the method supported
127537 + by your particular system.
127538 +
127539 + - "none": if your MAC system does not interact with PaX,
127540 + - "direct": if your MAC system defines pax_set_initial_flags() itself,
127541 + - "hook": if your MAC system uses the pax_set_initial_flags_func callback.
127542 +
127543 + NOTE: this option is for developers/integrators only.
127544 +
127545 + config PAX_NO_ACL_FLAGS
127546 + bool 'none'
127547 +
127548 + config PAX_HAVE_ACL_FLAGS
127549 + bool 'direct'
127550 +
127551 + config PAX_HOOK_ACL_FLAGS
127552 + bool 'hook'
127553 +endchoice
127554 +
127555 +endmenu
127556 +
127557 +menu "Non-executable pages"
127558 + depends on PAX
127559 +
127560 +config PAX_NOEXEC
127561 + bool "Enforce non-executable pages"
127562 + default y if GRKERNSEC_CONFIG_AUTO
127563 + depends on ALPHA || (ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86
127564 + help
127565 + By design some architectures do not allow for protecting memory
127566 + pages against execution or even if they do, Linux does not make
127567 + use of this feature. In practice this means that if a page is
127568 + readable (such as the stack or heap) it is also executable.
127569 +
127570 + There is a well known exploit technique that makes use of this
127571 + fact and a common programming mistake where an attacker can
127572 + introduce code of his choice somewhere in the attacked program's
127573 + memory (typically the stack or the heap) and then execute it.
127574 +
127575 + If the attacked program was running with different (typically
127576 + higher) privileges than that of the attacker, then he can elevate
127577 + his own privilege level (e.g. get a root shell, write to files for
127578 + which he does not have write access to, etc).
127579 +
127580 + Enabling this option will let you choose from various features
127581 + that prevent the injection and execution of 'foreign' code in
127582 + a program.
127583 +
127584 + This will also break programs that rely on the old behaviour and
127585 + expect that dynamically allocated memory via the malloc() family
127586 + of functions is executable (which it is not). Notable examples
127587 + are the XFree86 4.x server, the java runtime and wine.
127588 +
127589 +config PAX_PAGEEXEC
127590 + bool "Paging based non-executable pages"
127591 + default y if GRKERNSEC_CONFIG_AUTO
127592 + depends on PAX_NOEXEC && (!X86_32 || M586 || M586TSC || M586MMX || M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MATOM || MPENTIUM4 || MPSC || MK7 || MK8 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MVIAC3_2 || MVIAC7)
127593 + select ARCH_TRACK_EXEC_LIMIT if X86_32
127594 + help
127595 + This implementation is based on the paging feature of the CPU.
127596 + On i386 without hardware non-executable bit support there is a
127597 + variable but usually low performance impact, however on Intel's
127598 + P4 core based CPUs it is very high so you should not enable this
127599 + for kernels meant to be used on such CPUs.
127600 +
127601 + On alpha, avr32, ia64, parisc, sparc, sparc64, x86_64 and i386
127602 + with hardware non-executable bit support there is no performance
127603 + impact, on ppc the impact is negligible.
127604 +
127605 + Note that several architectures require various emulations due to
127606 + badly designed userland ABIs, this will cause a performance impact
127607 + but will disappear as soon as userland is fixed. For example, ppc
127608 + userland MUST have been built with secure-plt by a recent toolchain.
127609 +
127610 +config PAX_SEGMEXEC
127611 + bool "Segmentation based non-executable pages"
127612 + default y if GRKERNSEC_CONFIG_AUTO
127613 + depends on PAX_NOEXEC && X86_32
127614 + help
127615 + This implementation is based on the segmentation feature of the
127616 + CPU and has a very small performance impact, however applications
127617 + will be limited to a 1.5 GB address space instead of the normal
127618 + 3 GB.
127619 +
127620 +config PAX_EMUTRAMP
127621 + bool "Emulate trampolines"
127622 + default y if PARISC || GRKERNSEC_CONFIG_AUTO
127623 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC) && (PARISC || X86)
127624 + help
127625 + There are some programs and libraries that for one reason or
127626 + another attempt to execute special small code snippets from
127627 + non-executable memory pages. Most notable examples are the
127628 + signal handler return code generated by the kernel itself and
127629 + the GCC trampolines.
127630 +
127631 + If you enabled CONFIG_PAX_PAGEEXEC or CONFIG_PAX_SEGMEXEC then
127632 + such programs will no longer work under your kernel.
127633 +
127634 + As a remedy you can say Y here and use the 'chpax' or 'paxctl'
127635 + utilities to enable trampoline emulation for the affected programs
127636 + yet still have the protection provided by the non-executable pages.
127637 +
127638 + On parisc you MUST enable this option and EMUSIGRT as well, otherwise
127639 + your system will not even boot.
127640 +
127641 + Alternatively you can say N here and use the 'chpax' or 'paxctl'
127642 + utilities to disable CONFIG_PAX_PAGEEXEC and CONFIG_PAX_SEGMEXEC
127643 + for the affected files.
127644 +
127645 + NOTE: enabling this feature *may* open up a loophole in the
127646 + protection provided by non-executable pages that an attacker
127647 + could abuse. Therefore the best solution is to not have any
127648 + files on your system that would require this option. This can
127649 + be achieved by not using libc5 (which relies on the kernel
127650 + signal handler return code) and not using or rewriting programs
127651 + that make use of the nested function implementation of GCC.
127652 + Skilled users can just fix GCC itself so that it implements
127653 + nested function calls in a way that does not interfere with PaX.
127654 +
127655 +config PAX_EMUSIGRT
127656 + bool "Automatically emulate sigreturn trampolines"
127657 + depends on PAX_EMUTRAMP && PARISC
127658 + default y
127659 + help
127660 + Enabling this option will have the kernel automatically detect
127661 + and emulate signal return trampolines executing on the stack
127662 + that would otherwise lead to task termination.
127663 +
127664 + This solution is intended as a temporary one for users with
127665 + legacy versions of libc (libc5, glibc 2.0, uClibc before 0.9.17,
127666 + Modula-3 runtime, etc) or executables linked to such, basically
127667 + everything that does not specify its own SA_RESTORER function in
127668 + normal executable memory like glibc 2.1+ does.
127669 +
127670 + On parisc you MUST enable this option, otherwise your system will
127671 + not even boot.
127672 +
127673 + NOTE: this feature cannot be disabled on a per executable basis
127674 + and since it *does* open up a loophole in the protection provided
127675 + by non-executable pages, the best solution is to not have any
127676 + files on your system that would require this option.
127677 +
127678 +config PAX_MPROTECT
127679 + bool "Restrict mprotect()"
127680 + default y if GRKERNSEC_CONFIG_AUTO
127681 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC)
127682 + help
127683 + Enabling this option will prevent programs from
127684 + - changing the executable status of memory pages that were
127685 + not originally created as executable,
127686 + - making read-only executable pages writable again,
127687 + - creating executable pages from anonymous memory,
127688 + - making read-only-after-relocations (RELRO) data pages writable again.
127689 +
127690 + You should say Y here to complete the protection provided by
127691 + the enforcement of non-executable pages.
127692 +
127693 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
127694 + this feature on a per file basis.
127695 +
127696 +config PAX_MPROTECT_COMPAT
127697 + bool "Use legacy/compat protection demoting (read help)"
127698 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
127699 + depends on PAX_MPROTECT
127700 + help
127701 + The current implementation of PAX_MPROTECT denies RWX allocations/mprotects
127702 + by sending the proper error code to the application. For some broken
127703 + userland, this can cause problems with Python or other applications. The
127704 + current implementation however allows for applications like clamav to
127705 + detect if JIT compilation/execution is allowed and to fall back gracefully
127706 + to an interpreter-based mode if it does not. While we encourage everyone
127707 + to use the current implementation as-is and push upstream to fix broken
127708 + userland (note that the RWX logging option can assist with this), in some
127709 + environments this may not be possible. Having to disable MPROTECT
127710 + completely on certain binaries reduces the security benefit of PaX,
127711 + so this option is provided for those environments to revert to the old
127712 + behavior.
127713 +
127714 +config PAX_ELFRELOCS
127715 + bool "Allow ELF text relocations (read help)"
127716 + depends on PAX_MPROTECT
127717 + default n
127718 + help
127719 + Non-executable pages and mprotect() restrictions are effective
127720 + in preventing the introduction of new executable code into an
127721 + attacked task's address space. There remain only two venues
127722 + for this kind of attack: if the attacker can execute already
127723 + existing code in the attacked task then he can either have it
127724 + create and mmap() a file containing his code or have it mmap()
127725 + an already existing ELF library that does not have position
127726 + independent code in it and use mprotect() on it to make it
127727 + writable and copy his code there. While protecting against
127728 + the former approach is beyond PaX, the latter can be prevented
127729 + by having only PIC ELF libraries on one's system (which do not
127730 + need to relocate their code). If you are sure this is your case,
127731 + as is the case with all modern Linux distributions, then leave
127732 + this option disabled. You should say 'n' here.
127733 +
127734 +config PAX_ETEXECRELOCS
127735 + bool "Allow ELF ET_EXEC text relocations"
127736 + depends on PAX_MPROTECT && (ALPHA || IA64 || PARISC)
127737 + select PAX_ELFRELOCS
127738 + default y
127739 + help
127740 + On some architectures there are incorrectly created applications
127741 + that require text relocations and would not work without enabling
127742 + this option. If you are an alpha, ia64 or parisc user, you should
127743 + enable this option and disable it once you have made sure that
127744 + none of your applications need it.
127745 +
127746 +config PAX_EMUPLT
127747 + bool "Automatically emulate ELF PLT"
127748 + depends on PAX_MPROTECT && (ALPHA || PARISC || SPARC)
127749 + default y
127750 + help
127751 + Enabling this option will have the kernel automatically detect
127752 + and emulate the Procedure Linkage Table entries in ELF files.
127753 + On some architectures such entries are in writable memory, and
127754 + become non-executable leading to task termination. Therefore
127755 + it is mandatory that you enable this option on alpha, parisc,
127756 + sparc and sparc64, otherwise your system would not even boot.
127757 +
127758 + NOTE: this feature *does* open up a loophole in the protection
127759 + provided by the non-executable pages, therefore the proper
127760 + solution is to modify the toolchain to produce a PLT that does
127761 + not need to be writable.
127762 +
127763 +config PAX_DLRESOLVE
127764 + bool 'Emulate old glibc resolver stub'
127765 + depends on PAX_EMUPLT && SPARC
127766 + default n
127767 + help
127768 + This option is needed if userland has an old glibc (before 2.4)
127769 + that puts a 'save' instruction into the runtime generated resolver
127770 + stub that needs special emulation.
127771 +
127772 +config PAX_KERNEXEC
127773 + bool "Enforce non-executable kernel pages"
127774 + default y if GRKERNSEC_CONFIG_AUTO && (!X86 || GRKERNSEC_CONFIG_VIRT_NONE || (GRKERNSEC_CONFIG_VIRT_EPT && GRKERNSEC_CONFIG_VIRT_GUEST) || (GRKERNSEC_CONFIG_VIRT_EPT && GRKERNSEC_CONFIG_VIRT_KVM))
127775 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !(ARM_LPAE && MODULES))) && !XEN
127776 + select PAX_PER_CPU_PGD if X86_64 || (X86_32 && X86_PAE)
127777 + select PAX_KERNEXEC_PLUGIN if X86_64
127778 + select ARM_KERNMEM_PERMS if ARM
127779 + help
127780 + This is the kernel land equivalent of PAGEEXEC and MPROTECT,
127781 + that is, enabling this option will make it harder to inject
127782 + and execute 'foreign' code in kernel memory itself.
127783 +
127784 + Note that on amd64, CONFIG_EFI enabled with "efi=old_map" on
127785 + the kernel command-line will result in an RWX physical map.
127786 +
127787 + Likewise, the EFI runtime services are necessarily mapped as
127788 + RWX. If CONFIG_EFI is enabled on an EFI-capable system, it
127789 + is recommended that you boot with "noefi" on the kernel
127790 + command-line if possible to eliminate the mapping.
127791 +
127792 +choice
127793 + prompt "Return Address Instrumentation Method"
127794 + default PAX_KERNEXEC_PLUGIN_METHOD_BTS
127795 + depends on PAX_KERNEXEC_PLUGIN
127796 + help
127797 + Select the method used to instrument function pointer dereferences.
127798 + Note that binary modules cannot be instrumented by this approach.
127799 +
127800 + Note that the implementation requires a gcc with plugin support,
127801 + i.e., gcc 4.5 or newer. You may need to install the supporting
127802 + headers explicitly in addition to the normal gcc package.
127803 +
127804 + config PAX_KERNEXEC_PLUGIN_METHOD_BTS
127805 + bool "bts"
127806 + help
127807 + This method is compatible with binary only modules but has
127808 + a higher runtime overhead.
127809 +
127810 + config PAX_KERNEXEC_PLUGIN_METHOD_OR
127811 + bool "or"
127812 + depends on !PARAVIRT
127813 + help
127814 + This method is incompatible with binary only modules but has
127815 + a lower runtime overhead.
127816 +endchoice
127817 +
127818 +config PAX_KERNEXEC_PLUGIN_METHOD
127819 + string
127820 + default "bts" if PAX_KERNEXEC_PLUGIN_METHOD_BTS
127821 + default "or" if PAX_KERNEXEC_PLUGIN_METHOD_OR
127822 + default ""
127823 +
127824 +config PAX_KERNEXEC_MODULE_TEXT
127825 + int "Minimum amount of memory reserved for module code"
127826 + default "8" if (!GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_SERVER)
127827 + default "12" if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
127828 + depends on PAX_KERNEXEC && X86_32
127829 + help
127830 + Due to implementation details the kernel must reserve a fixed
127831 + amount of memory for runtime allocated code (such as modules)
127832 + at compile time that cannot be changed at runtime. Here you
127833 + can specify the minimum amount in MB that will be reserved.
127834 + Due to the same implementation details this size will always
127835 + be rounded up to the next 2/4 MB boundary (depends on PAE) so
127836 + the actually available memory for runtime allocated code will
127837 + usually be more than this minimum.
127838 +
127839 + The default 4 MB should be enough for most users but if you have
127840 + an excessive number of modules (e.g., most distribution configs
127841 + compile many drivers as modules) or use huge modules such as
127842 + nvidia's kernel driver, you will need to adjust this amount.
127843 + A good rule of thumb is to look at your currently loaded kernel
127844 + modules and add up their sizes.
127845 +
127846 +endmenu
127847 +
127848 +menu "Address Space Layout Randomization"
127849 + depends on PAX
127850 +
127851 +config PAX_ASLR
127852 + bool "Address Space Layout Randomization"
127853 + default y if GRKERNSEC_CONFIG_AUTO
127854 + help
127855 + Many if not most exploit techniques rely on the knowledge of
127856 + certain addresses in the attacked program. The following options
127857 + will allow the kernel to apply a certain amount of randomization
127858 + to specific parts of the program thereby forcing an attacker to
127859 + guess them in most cases. Any failed guess will most likely crash
127860 + the attacked program which allows the kernel to detect such attempts
127861 + and react on them. PaX itself provides no reaction mechanisms,
127862 + instead it is strongly encouraged that you make use of grsecurity's
127863 + (http://www.grsecurity.net/) built-in crash detection features or
127864 + develop one yourself.
127865 +
127866 + By saying Y here you can choose to randomize the following areas:
127867 + - top of the task's kernel stack
127868 + - top of the task's userland stack
127869 + - base address for mmap() requests that do not specify one
127870 + (this includes all libraries)
127871 + - base address of the main executable
127872 +
127873 + It is strongly recommended to say Y here as address space layout
127874 + randomization has negligible impact on performance yet it provides
127875 + a very effective protection.
127876 +
127877 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
127878 + this feature on a per file basis.
127879 +
127880 +config PAX_RANDKSTACK
127881 + bool "Randomize kernel stack base"
127882 + default y if GRKERNSEC_CONFIG_AUTO && !(GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_VIRTUALBOX)
127883 + depends on X86_TSC && X86
127884 + help
127885 + By saying Y here the kernel will randomize every task's kernel
127886 + stack on every system call. This will not only force an attacker
127887 + to guess it but also prevent him from making use of possible
127888 + leaked information about it.
127889 +
127890 + Since the kernel stack is a rather scarce resource, randomization
127891 + may cause unexpected stack overflows, therefore you should very
127892 + carefully test your system. Note that once enabled in the kernel
127893 + configuration, this feature cannot be disabled on a per file basis.
127894 +
127895 +config PAX_RANDUSTACK
127896 + bool
127897 +
127898 +config PAX_RANDMMAP
127899 + bool "Randomize user stack and mmap() bases"
127900 + default y if GRKERNSEC_CONFIG_AUTO
127901 + depends on PAX_ASLR
127902 + select PAX_RANDUSTACK
127903 + help
127904 + By saying Y here the kernel will randomize every task's userland
127905 + stack and use a randomized base address for mmap() requests that
127906 + do not specify one themselves.
127907 +
127908 + The stack randomization is done in two steps where the second
127909 + one may apply a big amount of shift to the top of the stack and
127910 + cause problems for programs that want to use lots of memory (more
127911 + than 2.5 GB if SEGMEXEC is not active, or 1.25 GB when it is).
127912 +
127913 + As a result of mmap randomization all dynamically loaded libraries
127914 + will appear at random addresses and therefore be harder to exploit
127915 + by a technique where an attacker attempts to execute library code
127916 + for his purposes (e.g. spawn a shell from an exploited program that
127917 + is running at an elevated privilege level).
127918 +
127919 + Furthermore, if a program is relinked as a dynamic ELF file, its
127920 + base address will be randomized as well, completing the full
127921 + randomization of the address space layout. Attacking such programs
127922 + becomes a guess game. You can find an example of doing this at
127923 + http://pax.grsecurity.net/et_dyn.tar.gz and practical samples at
127924 + http://www.grsecurity.net/grsec-gcc-specs.tar.gz .
127925 +
127926 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control this
127927 + feature on a per file basis.
127928 +
127929 +endmenu
127930 +
127931 +menu "Miscellaneous hardening features"
127932 +
127933 +config PAX_MEMORY_SANITIZE
127934 + bool "Sanitize all freed memory"
127935 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127936 + help
127937 + By saying Y here the kernel will erase memory pages and slab objects
127938 + as soon as they are freed. This in turn reduces the lifetime of data
127939 + stored in them, making it less likely that sensitive information such
127940 + as passwords, cryptographic secrets, etc stay in memory for too long.
127941 +
127942 + This is especially useful for programs whose runtime is short, long
127943 + lived processes and the kernel itself benefit from this as long as
127944 + they ensure timely freeing of memory that may hold sensitive
127945 + information.
127946 +
127947 + A nice side effect of the sanitization of slab objects is the
127948 + reduction of possible info leaks caused by padding bytes within the
127949 + leaky structures. Use-after-free bugs for structures containing
127950 + pointers can also be detected as dereferencing the sanitized pointer
127951 + will generate an access violation.
127952 +
127953 + The tradeoff is performance impact, on a single CPU system kernel
127954 + compilation sees a 3% slowdown, other systems and workloads may vary
127955 + and you are advised to test this feature on your expected workload
127956 + before deploying it.
127957 +
127958 + The slab sanitization feature excludes a few slab caches per default
127959 + for performance reasons. To extend the feature to cover those as
127960 + well, pass "pax_sanitize_slab=full" as kernel command line parameter.
127961 +
127962 + To reduce the performance penalty by sanitizing pages only, albeit
127963 + limiting the effectiveness of this feature at the same time, slab
127964 + sanitization can be disabled with the kernel command line parameter
127965 + "pax_sanitize_slab=off".
127966 +
127967 + Note that this feature does not protect data stored in live pages,
127968 + e.g., process memory swapped to disk may stay there for a long time.
127969 +
127970 +config PAX_MEMORY_STACKLEAK
127971 + bool "Sanitize kernel stack"
127972 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127973 + depends on X86
127974 + help
127975 + By saying Y here the kernel will erase the kernel stack before it
127976 + returns from a system call. This in turn reduces the information
127977 + that a kernel stack leak bug can reveal.
127978 +
127979 + Note that such a bug can still leak information that was put on
127980 + the stack by the current system call (the one eventually triggering
127981 + the bug) but traces of earlier system calls on the kernel stack
127982 + cannot leak anymore.
127983 +
127984 + The tradeoff is performance impact: on a single CPU system kernel
127985 + compilation sees a 1% slowdown, other systems and workloads may vary
127986 + and you are advised to test this feature on your expected workload
127987 + before deploying it.
127988 +
127989 + Note that the full feature requires a gcc with plugin support,
127990 + i.e., gcc 4.5 or newer. You may need to install the supporting
127991 + headers explicitly in addition to the normal gcc package. Using
127992 + older gcc versions means that functions with large enough stack
127993 + frames may leave uninitialized memory behind that may be exposed
127994 + to a later syscall leaking the stack.
127995 +
127996 +config PAX_MEMORY_STRUCTLEAK
127997 + bool "Forcibly initialize local variables copied to userland"
127998 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127999 + help
128000 + By saying Y here the kernel will zero initialize some local
128001 + variables that are going to be copied to userland. This in
128002 + turn prevents unintended information leakage from the kernel
128003 + stack should later code forget to explicitly set all parts of
128004 + the copied variable.
128005 +
128006 + The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK
128007 + at a much smaller coverage.
128008 +
128009 + Note that the implementation requires a gcc with plugin support,
128010 + i.e., gcc 4.5 or newer. You may need to install the supporting
128011 + headers explicitly in addition to the normal gcc package.
128012 +
128013 +config PAX_MEMORY_UDEREF
128014 + bool "Prevent invalid userland pointer dereference"
128015 + default y if GRKERNSEC_CONFIG_AUTO && !(X86_64 && GRKERNSEC_CONFIG_PRIORITY_PERF) && !(X86_64 && GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_VIRTUALBOX) && (!X86 || GRKERNSEC_CONFIG_VIRT_NONE || GRKERNSEC_CONFIG_VIRT_EPT)
128016 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !ARM_LPAE)) && !UML_X86 && !XEN
128017 + select PAX_PER_CPU_PGD if X86_64
128018 + select CPU_SW_DOMAIN_PAN if ARM
128019 + help
128020 + By saying Y here the kernel will be prevented from dereferencing
128021 + userland pointers in contexts where the kernel expects only kernel
128022 + pointers. This is both a useful runtime debugging feature and a
128023 + security measure that prevents exploiting a class of kernel bugs.
128024 +
128025 + The tradeoff is that some virtualization solutions may experience
128026 + a huge slowdown and therefore you should not enable this feature
128027 + for kernels meant to run in such environments. Whether a given VM
128028 + solution is affected or not is best determined by simply trying it
128029 + out, the performance impact will be obvious right on boot as this
128030 + mechanism engages from very early on. A good rule of thumb is that
128031 + VMs running on CPUs without hardware virtualization support (i.e.,
128032 + the majority of IA-32 CPUs) will likely experience the slowdown.
128033 +
128034 + On X86_64 the kernel will make use of PCID support when available
128035 + (Intel's Westmere, Sandy Bridge, etc) for better security (default)
128036 + or performance impact. Pass pax_weakuderef on the kernel command
128037 + line to choose the latter.
128038 +
128039 +config PAX_REFCOUNT
128040 + bool "Prevent various kernel object reference counter overflows"
128041 + default y if GRKERNSEC_CONFIG_AUTO
128042 + depends on GRKERNSEC && ((ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || MIPS || PPC || SPARC64 || X86)
128043 + help
128044 + By saying Y here the kernel will detect and prevent overflowing
128045 + various (but not all) kinds of object reference counters. Such
128046 + overflows can normally occur due to bugs only and are often, if
128047 + not always, exploitable.
128048 +
128049 + The tradeoff is that data structures protected by an overflowed
128050 + refcount will never be freed and therefore will leak memory. Note
128051 + that this leak also happens even without this protection but in
128052 + that case the overflow can eventually trigger the freeing of the
128053 + data structure while it is still being used elsewhere, resulting
128054 + in the exploitable situation that this feature prevents.
128055 +
128056 + Since this has a negligible performance impact, you should enable
128057 + this feature.
128058 +
128059 +config PAX_CONSTIFY_PLUGIN
128060 + bool "Automatically constify eligible structures"
128061 + default y
128062 + depends on !UML && PAX_KERNEXEC
128063 + help
128064 + By saying Y here the compiler will automatically constify a class
128065 + of types that contain only function pointers. This reduces the
128066 + kernel's attack surface and also produces a better memory layout.
128067 +
128068 + Note that the implementation requires a gcc with plugin support,
128069 + i.e., gcc 4.5 or newer. You may need to install the supporting
128070 + headers explicitly in addition to the normal gcc package.
128071 +
128072 + Note that if some code really has to modify constified variables
128073 + then the source code will have to be patched to allow it. Examples
128074 + can be found in PaX itself (the no_const attribute) and for some
128075 + out-of-tree modules at http://www.grsecurity.net/~paxguy1/ .
128076 +
128077 +config PAX_USERCOPY
128078 + bool "Harden heap object copies between kernel and userland"
128079 + default y if GRKERNSEC_CONFIG_AUTO
128080 + depends on ARM || IA64 || PPC || SPARC || X86
128081 + depends on GRKERNSEC && (SLAB || SLUB || SLOB)
128082 + select PAX_USERCOPY_SLABS
128083 + help
128084 + By saying Y here the kernel will enforce the size of heap objects
128085 + when they are copied in either direction between the kernel and
128086 + userland, even if only a part of the heap object is copied.
128087 +
128088 + Specifically, this checking prevents information leaking from the
128089 + kernel heap during kernel to userland copies (if the kernel heap
128090 + object is otherwise fully initialized) and prevents kernel heap
128091 + overflows during userland to kernel copies.
128092 +
128093 + Note that the current implementation provides the strictest bounds
128094 + checks for the SLUB allocator.
128095 +
128096 + Enabling this option also enables per-slab cache protection against
128097 + data in a given cache being copied into/out of via userland
128098 + accessors. Though the whitelist of regions will be reduced over
128099 + time, it notably protects important data structures like task structs.
128100 +
128101 + If frame pointers are enabled on x86, this option will also restrict
128102 + copies into and out of the kernel stack to local variables within a
128103 + single frame.
128104 +
128105 + Since this has a negligible performance impact, you should enable
128106 + this feature.
128107 +
128108 +config PAX_USERCOPY_DEBUG
128109 + bool
128110 + depends on X86 && PAX_USERCOPY
128111 + default n
128112 +
128113 +config PAX_SIZE_OVERFLOW
128114 + bool "Prevent various integer overflows in function size parameters"
128115 + default y if GRKERNSEC_CONFIG_AUTO
128116 + help
128117 + By saying Y here the kernel recomputes expressions of function
128118 + arguments marked by a size_overflow attribute with double integer
128119 + precision (DImode/TImode for 32/64 bit integer types).
128120 +
128121 + The recomputed argument is checked against TYPE_MAX and an event
128122 + is logged on overflow and the triggering process is killed.
128123 +
128124 + Homepage: https://github.com/ephox-gcc-plugins
128125 +
128126 + Note that the implementation requires a gcc with plugin support,
128127 + i.e., gcc 4.5 or newer. You may need to install the supporting
128128 + headers explicitly in addition to the normal gcc package.
128129 +
128130 +config PAX_LATENT_ENTROPY
128131 + bool "Generate some entropy during boot and runtime"
128132 + default y if GRKERNSEC_CONFIG_AUTO
128133 + help
128134 + By saying Y here the kernel will instrument some kernel code to
128135 + extract some entropy from both original and artificially created
128136 + program state. This will help especially embedded systems where
128137 + there is little 'natural' source of entropy normally. The cost
128138 + is some slowdown of the boot process and fork and irq processing.
128139 +
128140 + When pax_extra_latent_entropy is passed on the kernel command line,
128141 + entropy will be extracted from up to the first 4GB of RAM while the
128142 + runtime memory allocator is being initialized. This costs even more
128143 + slowdown of the boot process.
128144 +
128145 + Note that the implementation requires a gcc with plugin support,
128146 + i.e., gcc 4.5 or newer. You may need to install the supporting
128147 + headers explicitly in addition to the normal gcc package.
128148 +
128149 + Note that entropy extracted this way is not cryptographically
128150 + secure!
128151 +
128152 +endmenu
128153 +
128154 +endmenu
128155 +
128156 +source grsecurity/Kconfig
128157 +
128158 +endmenu
128159 +
128160 +endmenu
128161 +
128162 source security/keys/Kconfig
128163
128164 config SECURITY_DMESG_RESTRICT
128165 @@ -104,7 +1079,7 @@ config INTEL_TXT
128166 config LSM_MMAP_MIN_ADDR
128167 int "Low address space for LSM to protect from user allocation"
128168 depends on SECURITY && SECURITY_SELINUX
128169 - default 32768 if ARM || (ARM64 && COMPAT)
128170 + default 32768 if ALPHA || ARM || (ARM64 && COMPAT) || PARISC || SPARC32
128171 default 65536
128172 help
128173 This is the portion of low virtual memory which should be protected
128174 diff --git a/security/apparmor/file.c b/security/apparmor/file.c
128175 index 913f377..6e392d5 100644
128176 --- a/security/apparmor/file.c
128177 +++ b/security/apparmor/file.c
128178 @@ -348,8 +348,8 @@ static inline bool xindex_is_subset(u32 link, u32 target)
128179 int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
128180 struct path *new_dir, struct dentry *new_dentry)
128181 {
128182 - struct path link = { new_dir->mnt, new_dentry };
128183 - struct path target = { new_dir->mnt, old_dentry };
128184 + struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
128185 + struct path target = { .mnt = new_dir->mnt, .dentry = old_dentry };
128186 struct path_cond cond = {
128187 d_backing_inode(old_dentry)->i_uid,
128188 d_backing_inode(old_dentry)->i_mode
128189 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
128190 index dec607c..2f291ad9 100644
128191 --- a/security/apparmor/lsm.c
128192 +++ b/security/apparmor/lsm.c
128193 @@ -176,7 +176,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
128194 struct dentry *dentry, u32 mask,
128195 struct path_cond *cond)
128196 {
128197 - struct path path = { dir->mnt, dentry };
128198 + struct path path = { .mnt = dir->mnt, .dentry = dentry };
128199
128200 return common_perm(op, &path, mask, cond);
128201 }
128202 @@ -193,7 +193,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
128203 static int common_perm_mnt_dentry(int op, struct vfsmount *mnt,
128204 struct dentry *dentry, u32 mask)
128205 {
128206 - struct path path = { mnt, dentry };
128207 + struct path path = { .mnt = mnt, .dentry = dentry };
128208 struct path_cond cond = { d_backing_inode(dentry)->i_uid,
128209 d_backing_inode(dentry)->i_mode
128210 };
128211 @@ -315,8 +315,8 @@ static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
128212
128213 profile = aa_current_profile();
128214 if (!unconfined(profile)) {
128215 - struct path old_path = { old_dir->mnt, old_dentry };
128216 - struct path new_path = { new_dir->mnt, new_dentry };
128217 + struct path old_path = { .mnt = old_dir->mnt, .dentry = old_dentry };
128218 + struct path new_path = { .mnt = new_dir->mnt, .dentry = new_dentry };
128219 struct path_cond cond = { d_backing_inode(old_dentry)->i_uid,
128220 d_backing_inode(old_dentry)->i_mode
128221 };
128222 diff --git a/security/commoncap.c b/security/commoncap.c
128223 index 1832cf7..b805e0f 100644
128224 --- a/security/commoncap.c
128225 +++ b/security/commoncap.c
128226 @@ -137,12 +137,17 @@ int cap_ptrace_access_check(struct task_struct *child, unsigned int mode)
128227 {
128228 int ret = 0;
128229 const struct cred *cred, *child_cred;
128230 + const kernel_cap_t *caller_caps;
128231
128232 rcu_read_lock();
128233 cred = current_cred();
128234 child_cred = __task_cred(child);
128235 + if (mode & PTRACE_MODE_FSCREDS)
128236 + caller_caps = &cred->cap_effective;
128237 + else
128238 + caller_caps = &cred->cap_permitted;
128239 if (cred->user_ns == child_cred->user_ns &&
128240 - cap_issubset(child_cred->cap_permitted, cred->cap_permitted))
128241 + cap_issubset(child_cred->cap_permitted, *caller_caps))
128242 goto out;
128243 if (ns_capable(child_cred->user_ns, CAP_SYS_PTRACE))
128244 goto out;
128245 @@ -433,6 +438,32 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
128246 return 0;
128247 }
128248
128249 +/* returns:
128250 + 1 for suid privilege
128251 + 2 for sgid privilege
128252 + 3 for fscap privilege
128253 +*/
128254 +int is_privileged_binary(const struct dentry *dentry)
128255 +{
128256 + struct cpu_vfs_cap_data capdata;
128257 + struct inode *inode = dentry->d_inode;
128258 +
128259 + if (!inode || S_ISDIR(inode->i_mode))
128260 + return 0;
128261 +
128262 + if (inode->i_mode & S_ISUID)
128263 + return 1;
128264 + if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
128265 + return 2;
128266 +
128267 + if (!get_vfs_caps_from_disk(dentry, &capdata)) {
128268 + if (!cap_isclear(capdata.inheritable) || !cap_isclear(capdata.permitted))
128269 + return 3;
128270 + }
128271 +
128272 + return 0;
128273 +}
128274 +
128275 /*
128276 * Attempt to get the on-exec apply capability sets for an executable file from
128277 * its xattrs and, if present, apply them to the proposed credentials being
128278 @@ -623,6 +654,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
128279 const struct cred *cred = current_cred();
128280 kuid_t root_uid = make_kuid(cred->user_ns, 0);
128281
128282 + if (gr_acl_enable_at_secure())
128283 + return 1;
128284 +
128285 if (!uid_eq(cred->uid, root_uid)) {
128286 if (bprm->cap_effective)
128287 return 1;
128288 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
128289 index e2a60c3..2e41dd3 100644
128290 --- a/security/integrity/ima/ima.h
128291 +++ b/security/integrity/ima/ima.h
128292 @@ -125,8 +125,8 @@ int ima_init_template(void);
128293 extern spinlock_t ima_queue_lock;
128294
128295 struct ima_h_table {
128296 - atomic_long_t len; /* number of stored measurements in the list */
128297 - atomic_long_t violations;
128298 + atomic_long_unchecked_t len; /* number of stored measurements in the list */
128299 + atomic_long_unchecked_t violations;
128300 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
128301 };
128302 extern struct ima_h_table ima_htable;
128303 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
128304 index 1d950fb..a8f4eab 100644
128305 --- a/security/integrity/ima/ima_api.c
128306 +++ b/security/integrity/ima/ima_api.c
128307 @@ -137,7 +137,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,
128308 int result;
128309
128310 /* can overflow, only indicator */
128311 - atomic_long_inc(&ima_htable.violations);
128312 + atomic_long_inc_unchecked(&ima_htable.violations);
128313
128314 result = ima_alloc_init_template(&event_data, &entry);
128315 if (result < 0) {
128316 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
128317 index 816d175..20079ae 100644
128318 --- a/security/integrity/ima/ima_fs.c
128319 +++ b/security/integrity/ima/ima_fs.c
128320 @@ -28,12 +28,12 @@
128321 static int valid_policy = 1;
128322 #define TMPBUFLEN 12
128323 static ssize_t ima_show_htable_value(char __user *buf, size_t count,
128324 - loff_t *ppos, atomic_long_t *val)
128325 + loff_t *ppos, atomic_long_unchecked_t *val)
128326 {
128327 char tmpbuf[TMPBUFLEN];
128328 ssize_t len;
128329
128330 - len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read(val));
128331 + len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read_unchecked(val));
128332 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
128333 }
128334
128335 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
128336 index 552705d..9920f4fb 100644
128337 --- a/security/integrity/ima/ima_queue.c
128338 +++ b/security/integrity/ima/ima_queue.c
128339 @@ -83,7 +83,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
128340 INIT_LIST_HEAD(&qe->later);
128341 list_add_tail_rcu(&qe->later, &ima_measurements);
128342
128343 - atomic_long_inc(&ima_htable.len);
128344 + atomic_long_inc_unchecked(&ima_htable.len);
128345 key = ima_hash_key(entry->digest);
128346 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
128347 return 0;
128348 diff --git a/security/keys/internal.h b/security/keys/internal.h
128349 index 5105c2c..fd59e52 100644
128350 --- a/security/keys/internal.h
128351 +++ b/security/keys/internal.h
128352 @@ -90,12 +90,16 @@ extern void key_type_put(struct key_type *ktype);
128353
128354 extern int __key_link_begin(struct key *keyring,
128355 const struct keyring_index_key *index_key,
128356 - struct assoc_array_edit **_edit);
128357 + struct assoc_array_edit **_edit)
128358 + __acquires(&keyring->sem)
128359 + __acquires(&keyring_serialise_link_sem);
128360 extern int __key_link_check_live_key(struct key *keyring, struct key *key);
128361 extern void __key_link(struct key *key, struct assoc_array_edit **_edit);
128362 extern void __key_link_end(struct key *keyring,
128363 const struct keyring_index_key *index_key,
128364 - struct assoc_array_edit *edit);
128365 + struct assoc_array_edit *edit)
128366 + __releases(&keyring->sem)
128367 + __releases(&keyring_serialise_link_sem);
128368
128369 extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
128370 const struct keyring_index_key *index_key);
128371 diff --git a/security/keys/key.c b/security/keys/key.c
128372 index aee2ec5..c276071 100644
128373 --- a/security/keys/key.c
128374 +++ b/security/keys/key.c
128375 @@ -283,7 +283,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
128376
128377 atomic_set(&key->usage, 1);
128378 init_rwsem(&key->sem);
128379 - lockdep_set_class(&key->sem, &type->lock_class);
128380 + lockdep_set_class(&key->sem, (struct lock_class_key *)&type->lock_class);
128381 key->index_key.type = type;
128382 key->user = user;
128383 key->quotalen = quotalen;
128384 @@ -1073,7 +1073,9 @@ int register_key_type(struct key_type *ktype)
128385 struct key_type *p;
128386 int ret;
128387
128388 - memset(&ktype->lock_class, 0, sizeof(ktype->lock_class));
128389 + pax_open_kernel();
128390 + memset((void *)&ktype->lock_class, 0, sizeof(ktype->lock_class));
128391 + pax_close_kernel();
128392
128393 ret = -EEXIST;
128394 down_write(&key_types_sem);
128395 @@ -1085,7 +1087,7 @@ int register_key_type(struct key_type *ktype)
128396 }
128397
128398 /* store the type */
128399 - list_add(&ktype->link, &key_types_list);
128400 + pax_list_add((struct list_head *)&ktype->link, &key_types_list);
128401
128402 pr_notice("Key type %s registered\n", ktype->name);
128403 ret = 0;
128404 @@ -1107,7 +1109,7 @@ EXPORT_SYMBOL(register_key_type);
128405 void unregister_key_type(struct key_type *ktype)
128406 {
128407 down_write(&key_types_sem);
128408 - list_del_init(&ktype->link);
128409 + pax_list_del_init((struct list_head *)&ktype->link);
128410 downgrade_write(&key_types_sem);
128411 key_gc_keytype(ktype);
128412 pr_notice("Key type %s unregistered\n", ktype->name);
128413 @@ -1125,10 +1127,10 @@ void __init key_init(void)
128414 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
128415
128416 /* add the special key types */
128417 - list_add_tail(&key_type_keyring.link, &key_types_list);
128418 - list_add_tail(&key_type_dead.link, &key_types_list);
128419 - list_add_tail(&key_type_user.link, &key_types_list);
128420 - list_add_tail(&key_type_logon.link, &key_types_list);
128421 + pax_list_add_tail((struct list_head *)&key_type_keyring.link, &key_types_list);
128422 + pax_list_add_tail((struct list_head *)&key_type_dead.link, &key_types_list);
128423 + pax_list_add_tail((struct list_head *)&key_type_user.link, &key_types_list);
128424 + pax_list_add_tail((struct list_head *)&key_type_logon.link, &key_types_list);
128425
128426 /* record the root user tracking */
128427 rb_link_node(&root_key_user.node,
128428 diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
128429 index 0b9ec78..26f0e0a 100644
128430 --- a/security/keys/keyctl.c
128431 +++ b/security/keys/keyctl.c
128432 @@ -757,16 +757,16 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen)
128433
128434 /* the key is probably readable - now try to read it */
128435 can_read_key:
128436 - ret = key_validate(key);
128437 - if (ret == 0) {
128438 - ret = -EOPNOTSUPP;
128439 - if (key->type->read) {
128440 - /* read the data with the semaphore held (since we
128441 - * might sleep) */
128442 - down_read(&key->sem);
128443 + ret = -EOPNOTSUPP;
128444 + if (key->type->read) {
128445 + /* Read the data with the semaphore held (since we might sleep)
128446 + * to protect against the key being updated or revoked.
128447 + */
128448 + down_read(&key->sem);
128449 + ret = key_validate(key);
128450 + if (ret == 0)
128451 ret = key->type->read(key, buffer, buflen);
128452 - up_read(&key->sem);
128453 - }
128454 + up_read(&key->sem);
128455 }
128456
128457 error2:
128458 diff --git a/security/keys/keyring.c b/security/keys/keyring.c
128459 index d334370..b03e5a8 100644
128460 --- a/security/keys/keyring.c
128461 +++ b/security/keys/keyring.c
128462 @@ -1071,8 +1071,6 @@ static int keyring_detect_cycle(struct key *A, struct key *B)
128463 int __key_link_begin(struct key *keyring,
128464 const struct keyring_index_key *index_key,
128465 struct assoc_array_edit **_edit)
128466 - __acquires(&keyring->sem)
128467 - __acquires(&keyring_serialise_link_sem)
128468 {
128469 struct assoc_array_edit *edit;
128470 int ret;
128471 @@ -1172,8 +1170,6 @@ void __key_link(struct key *key, struct assoc_array_edit **_edit)
128472 void __key_link_end(struct key *keyring,
128473 const struct keyring_index_key *index_key,
128474 struct assoc_array_edit *edit)
128475 - __releases(&keyring->sem)
128476 - __releases(&keyring_serialise_link_sem)
128477 {
128478 BUG_ON(index_key->type == NULL);
128479 kenter("%d,%s,", keyring->serial, index_key->type->name);
128480 diff --git a/security/min_addr.c b/security/min_addr.c
128481 index f728728..6457a0c 100644
128482 --- a/security/min_addr.c
128483 +++ b/security/min_addr.c
128484 @@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR;
128485 */
128486 static void update_mmap_min_addr(void)
128487 {
128488 +#ifndef SPARC
128489 #ifdef CONFIG_LSM_MMAP_MIN_ADDR
128490 if (dac_mmap_min_addr > CONFIG_LSM_MMAP_MIN_ADDR)
128491 mmap_min_addr = dac_mmap_min_addr;
128492 @@ -22,6 +23,7 @@ static void update_mmap_min_addr(void)
128493 #else
128494 mmap_min_addr = dac_mmap_min_addr;
128495 #endif
128496 +#endif
128497 }
128498
128499 /*
128500 diff --git a/security/selinux/avc.c b/security/selinux/avc.c
128501 index e60c79d..41fb721 100644
128502 --- a/security/selinux/avc.c
128503 +++ b/security/selinux/avc.c
128504 @@ -71,7 +71,7 @@ struct avc_xperms_node {
128505 struct avc_cache {
128506 struct hlist_head slots[AVC_CACHE_SLOTS]; /* head for avc_node->list */
128507 spinlock_t slots_lock[AVC_CACHE_SLOTS]; /* lock for writes */
128508 - atomic_t lru_hint; /* LRU hint for reclaim scan */
128509 + atomic_unchecked_t lru_hint; /* LRU hint for reclaim scan */
128510 atomic_t active_nodes;
128511 u32 latest_notif; /* latest revocation notification */
128512 };
128513 @@ -183,7 +183,7 @@ void __init avc_init(void)
128514 spin_lock_init(&avc_cache.slots_lock[i]);
128515 }
128516 atomic_set(&avc_cache.active_nodes, 0);
128517 - atomic_set(&avc_cache.lru_hint, 0);
128518 + atomic_set_unchecked(&avc_cache.lru_hint, 0);
128519
128520 avc_node_cachep = kmem_cache_create("avc_node", sizeof(struct avc_node),
128521 0, SLAB_PANIC, NULL);
128522 @@ -521,7 +521,7 @@ static inline int avc_reclaim_node(void)
128523 spinlock_t *lock;
128524
128525 for (try = 0, ecx = 0; try < AVC_CACHE_SLOTS; try++) {
128526 - hvalue = atomic_inc_return(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
128527 + hvalue = atomic_inc_return_unchecked(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
128528 head = &avc_cache.slots[hvalue];
128529 lock = &avc_cache.slots_lock[hvalue];
128530
128531 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
128532 index 1450f85..a91e0bc 100644
128533 --- a/security/selinux/include/xfrm.h
128534 +++ b/security/selinux/include/xfrm.h
128535 @@ -48,7 +48,7 @@ static inline void selinux_xfrm_notify_policyload(void)
128536
128537 rtnl_lock();
128538 for_each_net(net) {
128539 - atomic_inc(&net->xfrm.flow_cache_genid);
128540 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
128541 rt_genid_bump_all(net);
128542 }
128543 rtnl_unlock();
128544 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
128545 index 996c889..9620221 100644
128546 --- a/security/smack/smack_lsm.c
128547 +++ b/security/smack/smack_lsm.c
128548 @@ -368,12 +368,10 @@ static int smk_copy_rules(struct list_head *nhead, struct list_head *ohead,
128549 */
128550 static inline unsigned int smk_ptrace_mode(unsigned int mode)
128551 {
128552 - switch (mode) {
128553 - case PTRACE_MODE_READ:
128554 - return MAY_READ;
128555 - case PTRACE_MODE_ATTACH:
128556 + if (mode & PTRACE_MODE_ATTACH)
128557 return MAY_READWRITE;
128558 - }
128559 + if (mode & PTRACE_MODE_READ)
128560 + return MAY_READ;
128561
128562 return 0;
128563 }
128564 diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
128565 index 2367b10..a0c3c51 100644
128566 --- a/security/tomoyo/file.c
128567 +++ b/security/tomoyo/file.c
128568 @@ -692,7 +692,7 @@ int tomoyo_path_number_perm(const u8 type, struct path *path,
128569 {
128570 struct tomoyo_request_info r;
128571 struct tomoyo_obj_info obj = {
128572 - .path1 = *path,
128573 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128574 };
128575 int error = -ENOMEM;
128576 struct tomoyo_path_info buf;
128577 @@ -740,7 +740,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
128578 struct tomoyo_path_info buf;
128579 struct tomoyo_request_info r;
128580 struct tomoyo_obj_info obj = {
128581 - .path1 = *path,
128582 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128583 };
128584 int idx;
128585
128586 @@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, const struct path *path, const char *ta
128587 {
128588 struct tomoyo_request_info r;
128589 struct tomoyo_obj_info obj = {
128590 - .path1 = *path,
128591 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128592 };
128593 int error;
128594 struct tomoyo_path_info buf;
128595 @@ -843,7 +843,7 @@ int tomoyo_mkdev_perm(const u8 operation, struct path *path,
128596 {
128597 struct tomoyo_request_info r;
128598 struct tomoyo_obj_info obj = {
128599 - .path1 = *path,
128600 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128601 };
128602 int error = -ENOMEM;
128603 struct tomoyo_path_info buf;
128604 @@ -890,8 +890,8 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
128605 struct tomoyo_path_info buf2;
128606 struct tomoyo_request_info r;
128607 struct tomoyo_obj_info obj = {
128608 - .path1 = *path1,
128609 - .path2 = *path2,
128610 + .path1 = { .mnt = path1->mnt, .dentry = path1->dentry },
128611 + .path2 = { .mnt = path2->mnt, .dentry = path2->dentry }
128612 };
128613 int idx;
128614
128615 diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c
128616 index 390c646..f2f8db3 100644
128617 --- a/security/tomoyo/mount.c
128618 +++ b/security/tomoyo/mount.c
128619 @@ -118,6 +118,10 @@ static int tomoyo_mount_acl(struct tomoyo_request_info *r,
128620 type == tomoyo_mounts[TOMOYO_MOUNT_MOVE]) {
128621 need_dev = -1; /* dev_name is a directory */
128622 } else {
128623 + if (!capable(CAP_SYS_ADMIN)) {
128624 + error = -EPERM;
128625 + goto out;
128626 + }
128627 fstype = get_fs_type(type);
128628 if (!fstype) {
128629 error = -ENODEV;
128630 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
128631 index cbf3df4..22b11df 100644
128632 --- a/security/tomoyo/tomoyo.c
128633 +++ b/security/tomoyo/tomoyo.c
128634 @@ -165,7 +165,7 @@ static int tomoyo_path_truncate(struct path *path)
128635 */
128636 static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
128637 {
128638 - struct path path = { parent->mnt, dentry };
128639 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128640 return tomoyo_path_perm(TOMOYO_TYPE_UNLINK, &path, NULL);
128641 }
128642
128643 @@ -181,7 +181,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
128644 static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
128645 umode_t mode)
128646 {
128647 - struct path path = { parent->mnt, dentry };
128648 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128649 return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path,
128650 mode & S_IALLUGO);
128651 }
128652 @@ -196,7 +196,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
128653 */
128654 static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
128655 {
128656 - struct path path = { parent->mnt, dentry };
128657 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128658 return tomoyo_path_perm(TOMOYO_TYPE_RMDIR, &path, NULL);
128659 }
128660
128661 @@ -212,7 +212,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
128662 static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
128663 const char *old_name)
128664 {
128665 - struct path path = { parent->mnt, dentry };
128666 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128667 return tomoyo_path_perm(TOMOYO_TYPE_SYMLINK, &path, old_name);
128668 }
128669
128670 @@ -229,7 +229,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
128671 static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
128672 umode_t mode, unsigned int dev)
128673 {
128674 - struct path path = { parent->mnt, dentry };
128675 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128676 int type = TOMOYO_TYPE_CREATE;
128677 const unsigned int perm = mode & S_IALLUGO;
128678
128679 @@ -268,8 +268,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
128680 static int tomoyo_path_link(struct dentry *old_dentry, struct path *new_dir,
128681 struct dentry *new_dentry)
128682 {
128683 - struct path path1 = { new_dir->mnt, old_dentry };
128684 - struct path path2 = { new_dir->mnt, new_dentry };
128685 + struct path path1 = { .mnt = new_dir->mnt, .dentry = old_dentry };
128686 + struct path path2 = { .mnt = new_dir->mnt, .dentry = new_dentry };
128687 return tomoyo_path2_perm(TOMOYO_TYPE_LINK, &path1, &path2);
128688 }
128689
128690 @@ -288,8 +288,8 @@ static int tomoyo_path_rename(struct path *old_parent,
128691 struct path *new_parent,
128692 struct dentry *new_dentry)
128693 {
128694 - struct path path1 = { old_parent->mnt, old_dentry };
128695 - struct path path2 = { new_parent->mnt, new_dentry };
128696 + struct path path1 = { .mnt = old_parent->mnt, .dentry = old_dentry };
128697 + struct path path2 = { .mnt = new_parent->mnt, .dentry = new_dentry };
128698 return tomoyo_path2_perm(TOMOYO_TYPE_RENAME, &path1, &path2);
128699 }
128700
128701 @@ -417,7 +417,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
128702 */
128703 static int tomoyo_sb_umount(struct vfsmount *mnt, int flags)
128704 {
128705 - struct path path = { mnt, mnt->mnt_root };
128706 + struct path path = { .mnt = mnt, .dentry = mnt->mnt_root };
128707 return tomoyo_path_perm(TOMOYO_TYPE_UMOUNT, &path, NULL);
128708 }
128709
128710 diff --git a/security/yama/Kconfig b/security/yama/Kconfig
128711 index 90c605e..bf3a29a 100644
128712 --- a/security/yama/Kconfig
128713 +++ b/security/yama/Kconfig
128714 @@ -1,6 +1,6 @@
128715 config SECURITY_YAMA
128716 bool "Yama support"
128717 - depends on SECURITY
128718 + depends on SECURITY && !GRKERNSEC
128719 default n
128720 help
128721 This selects Yama, which extends DAC support with additional
128722 diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
128723 index d3c19c9..fb00554 100644
128724 --- a/security/yama/yama_lsm.c
128725 +++ b/security/yama/yama_lsm.c
128726 @@ -281,7 +281,7 @@ static int yama_ptrace_access_check(struct task_struct *child,
128727 int rc = 0;
128728
128729 /* require ptrace target be a child of ptracer on attach */
128730 - if (mode == PTRACE_MODE_ATTACH) {
128731 + if (mode & PTRACE_MODE_ATTACH) {
128732 switch (ptrace_scope) {
128733 case YAMA_SCOPE_DISABLED:
128734 /* No additional restrictions. */
128735 @@ -307,7 +307,7 @@ static int yama_ptrace_access_check(struct task_struct *child,
128736 }
128737 }
128738
128739 - if (rc) {
128740 + if (rc && (mode & PTRACE_MODE_NOAUDIT) == 0) {
128741 printk_ratelimited(KERN_NOTICE
128742 "ptrace of pid %d was attempted by: %s (pid %d)\n",
128743 child->pid, current->comm, current->pid);
128744 @@ -357,7 +357,7 @@ static struct security_hook_list yama_hooks[] = {
128745 static int yama_dointvec_minmax(struct ctl_table *table, int write,
128746 void __user *buffer, size_t *lenp, loff_t *ppos)
128747 {
128748 - struct ctl_table table_copy;
128749 + ctl_table_no_const table_copy;
128750
128751 if (write && !capable(CAP_SYS_PTRACE))
128752 return -EPERM;
128753 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
128754 index a04edff..6811b91 100644
128755 --- a/sound/aoa/codecs/onyx.c
128756 +++ b/sound/aoa/codecs/onyx.c
128757 @@ -54,7 +54,7 @@ struct onyx {
128758 spdif_locked:1,
128759 analog_locked:1,
128760 original_mute:2;
128761 - int open_count;
128762 + local_t open_count;
128763 struct codec_info *codec_info;
128764
128765 /* mutex serializes concurrent access to the device
128766 @@ -747,7 +747,7 @@ static int onyx_open(struct codec_info_item *cii,
128767 struct onyx *onyx = cii->codec_data;
128768
128769 mutex_lock(&onyx->mutex);
128770 - onyx->open_count++;
128771 + local_inc(&onyx->open_count);
128772 mutex_unlock(&onyx->mutex);
128773
128774 return 0;
128775 @@ -759,8 +759,7 @@ static int onyx_close(struct codec_info_item *cii,
128776 struct onyx *onyx = cii->codec_data;
128777
128778 mutex_lock(&onyx->mutex);
128779 - onyx->open_count--;
128780 - if (!onyx->open_count)
128781 + if (local_dec_and_test(&onyx->open_count))
128782 onyx->spdif_locked = onyx->analog_locked = 0;
128783 mutex_unlock(&onyx->mutex);
128784
128785 diff --git a/sound/aoa/codecs/onyx.h b/sound/aoa/codecs/onyx.h
128786 index ffd2025..df062c9 100644
128787 --- a/sound/aoa/codecs/onyx.h
128788 +++ b/sound/aoa/codecs/onyx.h
128789 @@ -11,6 +11,7 @@
128790 #include <linux/i2c.h>
128791 #include <asm/pmac_low_i2c.h>
128792 #include <asm/prom.h>
128793 +#include <asm/local.h>
128794
128795 /* PCM3052 register definitions */
128796
128797 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
128798 index 58550cc..4687a93 100644
128799 --- a/sound/core/oss/pcm_oss.c
128800 +++ b/sound/core/oss/pcm_oss.c
128801 @@ -1189,10 +1189,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
128802 if (in_kernel) {
128803 mm_segment_t fs;
128804 fs = snd_enter_user();
128805 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
128806 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
128807 snd_leave_user(fs);
128808 } else {
128809 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
128810 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
128811 }
128812 if (ret != -EPIPE && ret != -ESTRPIPE)
128813 break;
128814 @@ -1232,10 +1232,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
128815 if (in_kernel) {
128816 mm_segment_t fs;
128817 fs = snd_enter_user();
128818 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
128819 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
128820 snd_leave_user(fs);
128821 } else {
128822 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
128823 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
128824 }
128825 if (ret == -EPIPE) {
128826 if (runtime->status->state == SNDRV_PCM_STATE_DRAINING) {
128827 @@ -1331,7 +1331,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
128828 struct snd_pcm_plugin_channel *channels;
128829 size_t oss_frame_bytes = (runtime->oss.plugin_first->src_width * runtime->oss.plugin_first->src_format.channels) / 8;
128830 if (!in_kernel) {
128831 - if (copy_from_user(runtime->oss.buffer, (const char __force __user *)buf, bytes))
128832 + if (copy_from_user(runtime->oss.buffer, (const char __force_user *)buf, bytes))
128833 return -EFAULT;
128834 buf = runtime->oss.buffer;
128835 }
128836 @@ -1401,7 +1401,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
128837 }
128838 } else {
128839 tmp = snd_pcm_oss_write2(substream,
128840 - (const char __force *)buf,
128841 + (const char __force_kernel *)buf,
128842 runtime->oss.period_bytes, 0);
128843 if (tmp <= 0)
128844 goto err;
128845 @@ -1427,7 +1427,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
128846 struct snd_pcm_runtime *runtime = substream->runtime;
128847 snd_pcm_sframes_t frames, frames1;
128848 #ifdef CONFIG_SND_PCM_OSS_PLUGINS
128849 - char __user *final_dst = (char __force __user *)buf;
128850 + char __user *final_dst = (char __force_user *)buf;
128851 if (runtime->oss.plugin_first) {
128852 struct snd_pcm_plugin_channel *channels;
128853 size_t oss_frame_bytes = (runtime->oss.plugin_last->dst_width * runtime->oss.plugin_last->dst_format.channels) / 8;
128854 @@ -1489,7 +1489,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
128855 xfer += tmp;
128856 runtime->oss.buffer_used -= tmp;
128857 } else {
128858 - tmp = snd_pcm_oss_read2(substream, (char __force *)buf,
128859 + tmp = snd_pcm_oss_read2(substream, (char __force_kernel *)buf,
128860 runtime->oss.period_bytes, 0);
128861 if (tmp <= 0)
128862 goto err;
128863 @@ -1658,7 +1658,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
128864 size1);
128865 size1 /= runtime->channels; /* frames */
128866 fs = snd_enter_user();
128867 - snd_pcm_lib_write(substream, (void __force __user *)runtime->oss.buffer, size1);
128868 + snd_pcm_lib_write(substream, (void __force_user *)runtime->oss.buffer, size1);
128869 snd_leave_user(fs);
128870 }
128871 } else if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) {
128872 diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
128873 index b48b434..e2ba787 100644
128874 --- a/sound/core/pcm_compat.c
128875 +++ b/sound/core/pcm_compat.c
128876 @@ -31,7 +31,7 @@ static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream,
128877 int err;
128878
128879 fs = snd_enter_user();
128880 - err = snd_pcm_delay(substream, &delay);
128881 + err = snd_pcm_delay(substream, (snd_pcm_sframes_t __force_user *)&delay);
128882 snd_leave_user(fs);
128883 if (err < 0)
128884 return err;
128885 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
128886 index 75888dd..c940854 100644
128887 --- a/sound/core/pcm_native.c
128888 +++ b/sound/core/pcm_native.c
128889 @@ -3004,11 +3004,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
128890 switch (substream->stream) {
128891 case SNDRV_PCM_STREAM_PLAYBACK:
128892 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
128893 - (void __user *)arg);
128894 + (void __force_user *)arg);
128895 break;
128896 case SNDRV_PCM_STREAM_CAPTURE:
128897 result = snd_pcm_capture_ioctl1(NULL, substream, cmd,
128898 - (void __user *)arg);
128899 + (void __force_user *)arg);
128900 break;
128901 default:
128902 result = -EINVAL;
128903 diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
128904 index b64f20d..aff6c32 100644
128905 --- a/sound/core/seq/seq_clientmgr.c
128906 +++ b/sound/core/seq/seq_clientmgr.c
128907 @@ -446,7 +446,7 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
128908 count -= sizeof(struct snd_seq_event);
128909 buf += sizeof(struct snd_seq_event);
128910 err = snd_seq_expand_var_event(&cell->event, count,
128911 - (char __force *)buf, 0,
128912 + (char __force_kernel *)buf, 0,
128913 sizeof(struct snd_seq_event));
128914 if (err < 0)
128915 break;
128916 @@ -1059,13 +1059,13 @@ static ssize_t snd_seq_write(struct file *file, const char __user *buf,
128917 }
128918 /* set user space pointer */
128919 event.data.ext.len = extlen | SNDRV_SEQ_EXT_USRPTR;
128920 - event.data.ext.ptr = (char __force *)buf
128921 + event.data.ext.ptr = (char __force_kernel *)buf
128922 + sizeof(struct snd_seq_event);
128923 len += extlen; /* increment data length */
128924 } else {
128925 #ifdef CONFIG_COMPAT
128926 if (client->convert32 && snd_seq_ev_is_varusr(&event)) {
128927 - void *ptr = (void __force *)compat_ptr(event.data.raw32.d[1]);
128928 + void *ptr = (void __force_kernel *)compat_ptr(event.data.raw32.d[1]);
128929 event.data.ext.ptr = ptr;
128930 }
128931 #endif
128932 @@ -2420,7 +2420,7 @@ int snd_seq_kernel_client_ctl(int clientid, unsigned int cmd, void *arg)
128933 if (client == NULL)
128934 return -ENXIO;
128935 fs = snd_enter_user();
128936 - result = snd_seq_do_ioctl(client, cmd, (void __force __user *)arg);
128937 + result = snd_seq_do_ioctl(client, cmd, (void __force_user *)arg);
128938 snd_leave_user(fs);
128939 return result;
128940 }
128941 diff --git a/sound/core/seq/seq_compat.c b/sound/core/seq/seq_compat.c
128942 index 81f7c10..296bd6fd 100644
128943 --- a/sound/core/seq/seq_compat.c
128944 +++ b/sound/core/seq/seq_compat.c
128945 @@ -59,7 +59,7 @@ static int snd_seq_call_port_info_ioctl(struct snd_seq_client *client, unsigned
128946 data->kernel = NULL;
128947
128948 fs = snd_enter_user();
128949 - err = snd_seq_do_ioctl(client, cmd, data);
128950 + err = snd_seq_do_ioctl(client, cmd, (void __force_user *)data);
128951 snd_leave_user(fs);
128952 if (err < 0)
128953 goto error;
128954 diff --git a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
128955 index 8010766..4bd361f 100644
128956 --- a/sound/core/seq/seq_memory.c
128957 +++ b/sound/core/seq/seq_memory.c
128958 @@ -87,7 +87,7 @@ int snd_seq_dump_var_event(const struct snd_seq_event *event,
128959
128960 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) {
128961 char buf[32];
128962 - char __user *curptr = (char __force __user *)event->data.ext.ptr;
128963 + char __user *curptr = (char __force_user *)event->data.ext.ptr;
128964 while (len > 0) {
128965 int size = sizeof(buf);
128966 if (len < size)
128967 @@ -158,7 +158,7 @@ int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char
128968 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) {
128969 if (! in_kernel)
128970 return -EINVAL;
128971 - if (copy_from_user(buf, (void __force __user *)event->data.ext.ptr, len))
128972 + if (copy_from_user(buf, (void __force_user *)event->data.ext.ptr, len))
128973 return -EFAULT;
128974 return newlen;
128975 }
128976 @@ -344,7 +344,7 @@ int snd_seq_event_dup(struct snd_seq_pool *pool, struct snd_seq_event *event,
128977 tmp->event = src->event;
128978 src = src->next;
128979 } else if (is_usrptr) {
128980 - if (copy_from_user(&tmp->event, (char __force __user *)buf, size)) {
128981 + if (copy_from_user(&tmp->event, (char __force_user *)buf, size)) {
128982 err = -EFAULT;
128983 goto __error;
128984 }
128985 diff --git a/sound/core/sound.c b/sound/core/sound.c
128986 index 175f9e4..3518d31 100644
128987 --- a/sound/core/sound.c
128988 +++ b/sound/core/sound.c
128989 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
128990 case SNDRV_MINOR_TIMER: str = "snd-timer"; break;
128991 default: return;
128992 }
128993 - request_module(str);
128994 + request_module("%s", str);
128995 }
128996
128997 #endif /* modular kernel */
128998 diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
128999 index 2a008a9..a1efb3f 100644
129000 --- a/sound/drivers/mts64.c
129001 +++ b/sound/drivers/mts64.c
129002 @@ -29,6 +29,7 @@
129003 #include <sound/initval.h>
129004 #include <sound/rawmidi.h>
129005 #include <sound/control.h>
129006 +#include <asm/local.h>
129007
129008 #define CARD_NAME "Miditerminal 4140"
129009 #define DRIVER_NAME "MTS64"
129010 @@ -67,7 +68,7 @@ struct mts64 {
129011 struct pardevice *pardev;
129012 int pardev_claimed;
129013
129014 - int open_count;
129015 + local_t open_count;
129016 int current_midi_output_port;
129017 int current_midi_input_port;
129018 u8 mode[MTS64_NUM_INPUT_PORTS];
129019 @@ -687,7 +688,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
129020 {
129021 struct mts64 *mts = substream->rmidi->private_data;
129022
129023 - if (mts->open_count == 0) {
129024 + if (local_read(&mts->open_count) == 0) {
129025 /* We don't need a spinlock here, because this is just called
129026 if the device has not been opened before.
129027 So there aren't any IRQs from the device */
129028 @@ -695,7 +696,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
129029
129030 msleep(50);
129031 }
129032 - ++(mts->open_count);
129033 + local_inc(&mts->open_count);
129034
129035 return 0;
129036 }
129037 @@ -705,8 +706,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
129038 struct mts64 *mts = substream->rmidi->private_data;
129039 unsigned long flags;
129040
129041 - --(mts->open_count);
129042 - if (mts->open_count == 0) {
129043 + if (local_dec_return(&mts->open_count) == 0) {
129044 /* We need the spinlock_irqsave here because we can still
129045 have IRQs at this point */
129046 spin_lock_irqsave(&mts->lock, flags);
129047 @@ -715,8 +715,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
129048
129049 msleep(500);
129050
129051 - } else if (mts->open_count < 0)
129052 - mts->open_count = 0;
129053 + } else if (local_read(&mts->open_count) < 0)
129054 + local_set(&mts->open_count, 0);
129055
129056 return 0;
129057 }
129058 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
129059 index 89c7aa0..6d75e49 100644
129060 --- a/sound/drivers/opl4/opl4_lib.c
129061 +++ b/sound/drivers/opl4/opl4_lib.c
129062 @@ -29,7 +29,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
129063 MODULE_DESCRIPTION("OPL4 driver");
129064 MODULE_LICENSE("GPL");
129065
129066 -static void inline snd_opl4_wait(struct snd_opl4 *opl4)
129067 +static inline void snd_opl4_wait(struct snd_opl4 *opl4)
129068 {
129069 int timeout = 10;
129070 while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
129071 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
129072 index 464385a..46ab3f6 100644
129073 --- a/sound/drivers/portman2x4.c
129074 +++ b/sound/drivers/portman2x4.c
129075 @@ -48,6 +48,7 @@
129076 #include <sound/initval.h>
129077 #include <sound/rawmidi.h>
129078 #include <sound/control.h>
129079 +#include <asm/local.h>
129080
129081 #define CARD_NAME "Portman 2x4"
129082 #define DRIVER_NAME "portman"
129083 @@ -85,7 +86,7 @@ struct portman {
129084 struct pardevice *pardev;
129085 int pardev_claimed;
129086
129087 - int open_count;
129088 + local_t open_count;
129089 int mode[PORTMAN_NUM_INPUT_PORTS];
129090 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
129091 };
129092 diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
129093 index 2a153d2..185af02 100644
129094 --- a/sound/firewire/amdtp.c
129095 +++ b/sound/firewire/amdtp.c
129096 @@ -591,7 +591,7 @@ static void update_pcm_pointers(struct amdtp_stream *s,
129097 ptr = s->pcm_buffer_pointer + frames;
129098 if (ptr >= pcm->runtime->buffer_size)
129099 ptr -= pcm->runtime->buffer_size;
129100 - ACCESS_ONCE(s->pcm_buffer_pointer) = ptr;
129101 + ACCESS_ONCE_RW(s->pcm_buffer_pointer) = ptr;
129102
129103 s->pcm_period_pointer += frames;
129104 if (s->pcm_period_pointer >= pcm->runtime->period_size) {
129105 @@ -1056,7 +1056,7 @@ EXPORT_SYMBOL(amdtp_stream_pcm_pointer);
129106 void amdtp_stream_update(struct amdtp_stream *s)
129107 {
129108 /* Precomputing. */
129109 - ACCESS_ONCE(s->source_node_id_field) =
129110 + ACCESS_ONCE_RW(s->source_node_id_field) =
129111 (fw_parent_device(s->unit)->card->node_id << CIP_SID_SHIFT) &
129112 CIP_SID_MASK;
129113 }
129114 diff --git a/sound/firewire/amdtp.h b/sound/firewire/amdtp.h
129115 index b2cf9e7..e11623a 100644
129116 --- a/sound/firewire/amdtp.h
129117 +++ b/sound/firewire/amdtp.h
129118 @@ -237,7 +237,7 @@ static inline bool amdtp_stream_pcm_running(struct amdtp_stream *s)
129119 static inline void amdtp_stream_pcm_trigger(struct amdtp_stream *s,
129120 struct snd_pcm_substream *pcm)
129121 {
129122 - ACCESS_ONCE(s->pcm) = pcm;
129123 + ACCESS_ONCE_RW(s->pcm) = pcm;
129124 }
129125
129126 /**
129127 @@ -255,7 +255,7 @@ static inline void amdtp_stream_midi_trigger(struct amdtp_stream *s,
129128 struct snd_rawmidi_substream *midi)
129129 {
129130 if (port < s->midi_ports)
129131 - ACCESS_ONCE(s->midi[port]) = midi;
129132 + ACCESS_ONCE_RW(s->midi[port]) = midi;
129133 }
129134
129135 static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc)
129136 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
129137 index 48d6dca..a0266c23 100644
129138 --- a/sound/firewire/isight.c
129139 +++ b/sound/firewire/isight.c
129140 @@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
129141 ptr += count;
129142 if (ptr >= runtime->buffer_size)
129143 ptr -= runtime->buffer_size;
129144 - ACCESS_ONCE(isight->buffer_pointer) = ptr;
129145 + ACCESS_ONCE_RW(isight->buffer_pointer) = ptr;
129146
129147 isight->period_counter += count;
129148 if (isight->period_counter >= runtime->period_size) {
129149 @@ -293,7 +293,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
129150 if (err < 0)
129151 return err;
129152
129153 - ACCESS_ONCE(isight->pcm_active) = true;
129154 + ACCESS_ONCE_RW(isight->pcm_active) = true;
129155
129156 return 0;
129157 }
129158 @@ -331,7 +331,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
129159 {
129160 struct isight *isight = substream->private_data;
129161
129162 - ACCESS_ONCE(isight->pcm_active) = false;
129163 + ACCESS_ONCE_RW(isight->pcm_active) = false;
129164
129165 mutex_lock(&isight->mutex);
129166 isight_stop_streaming(isight);
129167 @@ -424,10 +424,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
129168
129169 switch (cmd) {
129170 case SNDRV_PCM_TRIGGER_START:
129171 - ACCESS_ONCE(isight->pcm_running) = true;
129172 + ACCESS_ONCE_RW(isight->pcm_running) = true;
129173 break;
129174 case SNDRV_PCM_TRIGGER_STOP:
129175 - ACCESS_ONCE(isight->pcm_running) = false;
129176 + ACCESS_ONCE_RW(isight->pcm_running) = false;
129177 break;
129178 default:
129179 return -EINVAL;
129180 diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c
129181 index 2dba848..c682aef 100644
129182 --- a/sound/firewire/scs1x.c
129183 +++ b/sound/firewire/scs1x.c
129184 @@ -74,7 +74,7 @@ static void scs_output_trigger(struct snd_rawmidi_substream *stream, int up)
129185 {
129186 struct scs *scs = stream->rmidi->private_data;
129187
129188 - ACCESS_ONCE(scs->output) = up ? stream : NULL;
129189 + ACCESS_ONCE_RW(scs->output) = up ? stream : NULL;
129190 if (up) {
129191 scs->output_idle = false;
129192 tasklet_schedule(&scs->tasklet);
129193 @@ -257,7 +257,7 @@ static void scs_input_trigger(struct snd_rawmidi_substream *stream, int up)
129194 {
129195 struct scs *scs = stream->rmidi->private_data;
129196
129197 - ACCESS_ONCE(scs->input) = up ? stream : NULL;
129198 + ACCESS_ONCE_RW(scs->input) = up ? stream : NULL;
129199 }
129200
129201 static void scs_input_escaped_byte(struct snd_rawmidi_substream *stream,
129202 @@ -473,8 +473,8 @@ static void scs_remove(struct fw_unit *unit)
129203
129204 snd_card_disconnect(scs->card);
129205
129206 - ACCESS_ONCE(scs->output) = NULL;
129207 - ACCESS_ONCE(scs->input) = NULL;
129208 + ACCESS_ONCE_RW(scs->output) = NULL;
129209 + ACCESS_ONCE_RW(scs->input) = NULL;
129210
129211 wait_event(scs->idle_wait, scs->output_idle);
129212
129213 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
129214 index dc91072..d85a10a 100644
129215 --- a/sound/oss/sb_audio.c
129216 +++ b/sound/oss/sb_audio.c
129217 @@ -900,7 +900,7 @@ sb16_copy_from_user(int dev,
129218 buf16 = (signed short *)(localbuf + localoffs);
129219 while (c)
129220 {
129221 - locallen = (c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
129222 + locallen = ((unsigned)c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
129223 if (copy_from_user(lbuf8,
129224 userbuf+useroffs + p,
129225 locallen))
129226 diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
129227 index 213a416..aeab5c9 100644
129228 --- a/sound/oss/swarm_cs4297a.c
129229 +++ b/sound/oss/swarm_cs4297a.c
129230 @@ -2623,7 +2623,6 @@ static int __init cs4297a_init(void)
129231 {
129232 struct cs4297a_state *s;
129233 u32 pwr, id;
129234 - mm_segment_t fs;
129235 int rval;
129236 u64 cfg;
129237 int mdio_val;
129238 @@ -2709,22 +2708,23 @@ static int __init cs4297a_init(void)
129239 if (!rval) {
129240 char *sb1250_duart_present;
129241
129242 +#if 0
129243 + mm_segment_t fs;
129244 fs = get_fs();
129245 set_fs(KERNEL_DS);
129246 -#if 0
129247 val = SOUND_MASK_LINE;
129248 mixer_ioctl(s, SOUND_MIXER_WRITE_RECSRC, (unsigned long) &val);
129249 for (i = 0; i < ARRAY_SIZE(initvol); i++) {
129250 val = initvol[i].vol;
129251 mixer_ioctl(s, initvol[i].mixch, (unsigned long) &val);
129252 }
129253 + set_fs(fs);
129254 // cs4297a_write_ac97(s, 0x18, 0x0808);
129255 #else
129256 // cs4297a_write_ac97(s, 0x5e, 0x180);
129257 cs4297a_write_ac97(s, 0x02, 0x0808);
129258 cs4297a_write_ac97(s, 0x18, 0x0808);
129259 #endif
129260 - set_fs(fs);
129261
129262 list_add(&s->list, &cs4297a_devs);
129263
129264 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
129265 index a249d54..2388570 100644
129266 --- a/sound/pci/hda/hda_codec.c
129267 +++ b/sound/pci/hda/hda_codec.c
129268 @@ -1787,7 +1787,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
129269 /* FIXME: set_fs() hack for obtaining user-space TLV data */
129270 mm_segment_t fs = get_fs();
129271 set_fs(get_ds());
129272 - if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), _tlv))
129273 + if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), (unsigned int __force_user *)_tlv))
129274 tlv = _tlv;
129275 set_fs(fs);
129276 } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
129277 diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
129278 index 149d4cb..7784769 100644
129279 --- a/sound/pci/ymfpci/ymfpci.h
129280 +++ b/sound/pci/ymfpci/ymfpci.h
129281 @@ -358,7 +358,7 @@ struct snd_ymfpci {
129282 spinlock_t reg_lock;
129283 spinlock_t voice_lock;
129284 wait_queue_head_t interrupt_sleep;
129285 - atomic_t interrupt_sleep_count;
129286 + atomic_unchecked_t interrupt_sleep_count;
129287 struct snd_info_entry *proc_entry;
129288 const struct firmware *dsp_microcode;
129289 const struct firmware *controller_microcode;
129290 diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
129291 index 4c26076..a13f370 100644
129292 --- a/sound/pci/ymfpci/ymfpci_main.c
129293 +++ b/sound/pci/ymfpci/ymfpci_main.c
129294 @@ -204,8 +204,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
129295 if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0)
129296 break;
129297 }
129298 - if (atomic_read(&chip->interrupt_sleep_count)) {
129299 - atomic_set(&chip->interrupt_sleep_count, 0);
129300 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
129301 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
129302 wake_up(&chip->interrupt_sleep);
129303 }
129304 __end:
129305 @@ -789,7 +789,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
129306 continue;
129307 init_waitqueue_entry(&wait, current);
129308 add_wait_queue(&chip->interrupt_sleep, &wait);
129309 - atomic_inc(&chip->interrupt_sleep_count);
129310 + atomic_inc_unchecked(&chip->interrupt_sleep_count);
129311 schedule_timeout_uninterruptible(msecs_to_jiffies(50));
129312 remove_wait_queue(&chip->interrupt_sleep, &wait);
129313 }
129314 @@ -827,8 +827,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
129315 snd_ymfpci_writel(chip, YDSXGR_MODE, mode);
129316 spin_unlock(&chip->reg_lock);
129317
129318 - if (atomic_read(&chip->interrupt_sleep_count)) {
129319 - atomic_set(&chip->interrupt_sleep_count, 0);
129320 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
129321 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
129322 wake_up(&chip->interrupt_sleep);
129323 }
129324 }
129325 @@ -2384,7 +2384,7 @@ int snd_ymfpci_create(struct snd_card *card,
129326 spin_lock_init(&chip->reg_lock);
129327 spin_lock_init(&chip->voice_lock);
129328 init_waitqueue_head(&chip->interrupt_sleep);
129329 - atomic_set(&chip->interrupt_sleep_count, 0);
129330 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
129331 chip->card = card;
129332 chip->pci = pci;
129333 chip->irq = -1;
129334 diff --git a/sound/soc/codecs/sti-sas.c b/sound/soc/codecs/sti-sas.c
129335 index 160d61a..10bfd63 100644
129336 --- a/sound/soc/codecs/sti-sas.c
129337 +++ b/sound/soc/codecs/sti-sas.c
129338 @@ -591,11 +591,13 @@ static int sti_sas_driver_probe(struct platform_device *pdev)
129339 sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops;
129340
129341 /* Set dapms*/
129342 - sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
129343 - sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
129344 + pax_open_kernel();
129345 + *(const void **)&sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
129346 + *(int *)&sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
129347
129348 - sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes;
129349 - sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
129350 + *(const void **)&sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes;
129351 + *(int *)&sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
129352 + pax_close_kernel();
129353
129354 /* Store context */
129355 dev_set_drvdata(&pdev->dev, drvdata);
129356 diff --git a/sound/soc/soc-ac97.c b/sound/soc/soc-ac97.c
129357 index d40efc9..4dbd571 100644
129358 --- a/sound/soc/soc-ac97.c
129359 +++ b/sound/soc/soc-ac97.c
129360 @@ -291,8 +291,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
129361 if (ret)
129362 return ret;
129363
129364 - ops->warm_reset = snd_soc_ac97_warm_reset;
129365 - ops->reset = snd_soc_ac97_reset;
129366 + pax_open_kernel();
129367 + *(void **)&ops->warm_reset = snd_soc_ac97_warm_reset;
129368 + *(void **)&ops->reset = snd_soc_ac97_reset;
129369 + pax_close_kernel();
129370
129371 snd_ac97_rst_cfg = cfg;
129372 return 0;
129373 diff --git a/sound/soc/xtensa/xtfpga-i2s.c b/sound/soc/xtensa/xtfpga-i2s.c
129374 index 8382ffa..86af7d0 100644
129375 --- a/sound/soc/xtensa/xtfpga-i2s.c
129376 +++ b/sound/soc/xtensa/xtfpga-i2s.c
129377 @@ -437,7 +437,7 @@ static int xtfpga_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
129378 case SNDRV_PCM_TRIGGER_START:
129379 case SNDRV_PCM_TRIGGER_RESUME:
129380 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
129381 - ACCESS_ONCE(i2s->tx_ptr) = 0;
129382 + ACCESS_ONCE_RW(i2s->tx_ptr) = 0;
129383 rcu_assign_pointer(i2s->tx_substream, substream);
129384 xtfpga_pcm_refill_fifo(i2s);
129385 break;
129386 diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
129387 index a020920..55579f6 100644
129388 --- a/sound/synth/emux/emux_seq.c
129389 +++ b/sound/synth/emux/emux_seq.c
129390 @@ -33,13 +33,13 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
129391 * MIDI emulation operators
129392 */
129393 static struct snd_midi_op emux_ops = {
129394 - snd_emux_note_on,
129395 - snd_emux_note_off,
129396 - snd_emux_key_press,
129397 - snd_emux_terminate_note,
129398 - snd_emux_control,
129399 - snd_emux_nrpn,
129400 - snd_emux_sysex,
129401 + .note_on = snd_emux_note_on,
129402 + .note_off = snd_emux_note_off,
129403 + .key_press = snd_emux_key_press,
129404 + .note_terminate = snd_emux_terminate_note,
129405 + .control = snd_emux_control,
129406 + .nrpn = snd_emux_nrpn,
129407 + .sysex = snd_emux_sysex,
129408 };
129409
129410
129411 diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
129412 index 81b7da8..bb2676f 100644
129413 --- a/sound/usb/line6/driver.c
129414 +++ b/sound/usb/line6/driver.c
129415 @@ -307,7 +307,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129416 {
129417 struct usb_device *usbdev = line6->usbdev;
129418 int ret;
129419 - unsigned char len;
129420 + unsigned char *plen;
129421 unsigned count;
129422
129423 if (address > 0xffff || datalen > 0xff)
129424 @@ -324,6 +324,10 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129425 return ret;
129426 }
129427
129428 + plen = kmalloc(1, GFP_KERNEL);
129429 + if (plen == NULL)
129430 + return -ENOMEM;
129431 +
129432 /* Wait for data length. We'll get 0xff until length arrives. */
129433 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
129434 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
129435 @@ -331,30 +335,35 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129436 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
129437 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
129438 USB_DIR_IN,
129439 - 0x0012, 0x0000, &len, 1,
129440 + 0x0012, 0x0000, plen, 1,
129441 LINE6_TIMEOUT * HZ);
129442 if (ret < 0) {
129443 dev_err(line6->ifcdev,
129444 "receive length failed (error %d)\n", ret);
129445 + kfree(plen);
129446 return ret;
129447 }
129448
129449 - if (len != 0xff)
129450 + if (*plen != 0xff)
129451 break;
129452 }
129453
129454 - if (len == 0xff) {
129455 + if (*plen == 0xff) {
129456 dev_err(line6->ifcdev, "read failed after %d retries\n",
129457 count);
129458 + kfree(plen);
129459 return -EIO;
129460 - } else if (len != datalen) {
129461 + } else if (*plen != datalen) {
129462 /* should be equal or something went wrong */
129463 dev_err(line6->ifcdev,
129464 "length mismatch (expected %d, got %d)\n",
129465 - (int)datalen, (int)len);
129466 + (int)datalen, (int)*plen);
129467 + kfree(plen);
129468 return -EIO;
129469 }
129470
129471 + kfree(plen);
129472 +
129473 /* receive the result: */
129474 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
129475 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
129476 @@ -378,7 +387,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129477 {
129478 struct usb_device *usbdev = line6->usbdev;
129479 int ret;
129480 - unsigned char status;
129481 + unsigned char *status;
129482 int count;
129483
129484 if (address > 0xffff || datalen > 0xffff)
129485 @@ -395,6 +404,10 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129486 return ret;
129487 }
129488
129489 + status = kmalloc(1, GFP_KERNEL);
129490 + if (status == NULL)
129491 + return -ENOMEM;
129492 +
129493 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
129494 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
129495
129496 @@ -403,27 +416,32 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129497 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
129498 USB_DIR_IN,
129499 0x0012, 0x0000,
129500 - &status, 1, LINE6_TIMEOUT * HZ);
129501 + status, 1, LINE6_TIMEOUT * HZ);
129502
129503 if (ret < 0) {
129504 dev_err(line6->ifcdev,
129505 "receiving status failed (error %d)\n", ret);
129506 + kfree(status);
129507 return ret;
129508 }
129509
129510 - if (status != 0xff)
129511 + if (*status != 0xff)
129512 break;
129513 }
129514
129515 - if (status == 0xff) {
129516 + if (*status == 0xff) {
129517 dev_err(line6->ifcdev, "write failed after %d retries\n",
129518 count);
129519 + kfree(status);
129520 return -EIO;
129521 - } else if (status != 0) {
129522 + } else if (*status != 0) {
129523 dev_err(line6->ifcdev, "write failed (error %d)\n", ret);
129524 + kfree(status);
129525 return -EIO;
129526 }
129527
129528 + kfree(status);
129529 +
129530 return 0;
129531 }
129532 EXPORT_SYMBOL_GPL(line6_write_data);
129533 diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
129534 index 6d4c50c..aa658c8 100644
129535 --- a/sound/usb/line6/toneport.c
129536 +++ b/sound/usb/line6/toneport.c
129537 @@ -367,13 +367,19 @@ static bool toneport_has_source_select(struct usb_line6_toneport *toneport)
129538 */
129539 static void toneport_setup(struct usb_line6_toneport *toneport)
129540 {
129541 - int ticks;
129542 + int *ticks;
129543 struct usb_line6 *line6 = &toneport->line6;
129544 struct usb_device *usbdev = line6->usbdev;
129545
129546 + ticks = kmalloc(sizeof(int), GFP_KERNEL);
129547 + if (ticks == NULL)
129548 + return;
129549 +
129550 /* sync time on device with host: */
129551 - ticks = (int)get_seconds();
129552 - line6_write_data(line6, 0x80c6, &ticks, 4);
129553 + *ticks = (int)get_seconds();
129554 + line6_write_data(line6, 0x80c6, ticks, sizeof(int));
129555 +
129556 + kfree(ticks);
129557
129558 /* enable device: */
129559 toneport_send_cmd(usbdev, 0x0301, 0x0000);
129560 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
129561 new file mode 100644
129562 index 0000000..de92ed9
129563 --- /dev/null
129564 +++ b/tools/gcc/.gitignore
129565 @@ -0,0 +1 @@
129566 +randomize_layout_seed.h
129567 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
129568 new file mode 100644
129569 index 0000000..4945d82
129570 --- /dev/null
129571 +++ b/tools/gcc/Makefile
129572 @@ -0,0 +1,54 @@
129573 +#CC := gcc
129574 +#PLUGIN_SOURCE_FILES := pax_plugin.c
129575 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
129576 +GCCPLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
129577 +#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W -std=gnu99
129578 +
129579 +ifeq ($(PLUGINCC),$(HOSTCC))
129580 +HOSTLIBS := hostlibs
129581 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(src) -std=gnu99 -ggdb
129582 +export HOST_EXTRACFLAGS
129583 +else
129584 +HOSTLIBS := hostcxxlibs
129585 +HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(src) -std=gnu++98 -fno-rtti -fno-exceptions -fasynchronous-unwind-tables -ggdb -Wno-unused-parameter -Wno-narrowing -Wno-unused-variable
129586 +export HOST_EXTRACXXFLAGS
129587 +endif
129588 +
129589 +export GCCPLUGINS_DIR HOSTLIBS
129590 +
129591 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
129592 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
129593 +$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
129594 +$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
129595 +$(HOSTLIBS)-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
129596 +$(HOSTLIBS)-y += colorize_plugin.so
129597 +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
129598 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
129599 +$(HOSTLIBS)-y += initify_plugin.so
129600 +$(HOSTLIBS)-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
129601 +
129602 +subdir-$(CONFIG_PAX_SIZE_OVERFLOW) := size_overflow_plugin
129603 +subdir- += size_overflow_plugin
129604 +
129605 +always := $($(HOSTLIBS)-y)
129606 +
129607 +constify_plugin-objs := constify_plugin.o
129608 +stackleak_plugin-objs := stackleak_plugin.o
129609 +kallocstat_plugin-objs := kallocstat_plugin.o
129610 +kernexec_plugin-objs := kernexec_plugin.o
129611 +checker_plugin-objs := checker_plugin.o
129612 +colorize_plugin-objs := colorize_plugin.o
129613 +latent_entropy_plugin-objs := latent_entropy_plugin.o
129614 +structleak_plugin-objs := structleak_plugin.o
129615 +initify_plugin-objs := initify_plugin.o
129616 +randomize_layout_plugin-objs := randomize_layout_plugin.o
129617 +
129618 +$(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h
129619 +
129620 +quiet_cmd_create_randomize_layout_seed = GENSEED $@
129621 + cmd_create_randomize_layout_seed = \
129622 + $(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
129623 +$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
129624 + $(call if_changed,create_randomize_layout_seed)
129625 +
129626 +targets += randomize_layout_seed.h randomize_layout_hash.h
129627 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
129628 new file mode 100644
129629 index 0000000..1264799f
129630 --- /dev/null
129631 +++ b/tools/gcc/checker_plugin.c
129632 @@ -0,0 +1,549 @@
129633 +/*
129634 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
129635 + * Licensed under the GPL v2
129636 + *
129637 + * Note: the choice of the license means that the compilation process is
129638 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
129639 + * but for the kernel it doesn't matter since it doesn't link against
129640 + * any of the gcc libraries
129641 + *
129642 + * gcc plugin to implement various sparse (source code checker) features
129643 + *
129644 + * TODO:
129645 + * - define separate __iomem, __percpu and __rcu address spaces (lots of code to patch)
129646 + *
129647 + * BUGS:
129648 + * - none known
129649 + */
129650 +
129651 +#include "gcc-common.h"
129652 +
129653 +extern void c_register_addr_space (const char *str, addr_space_t as);
129654 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
129655 +extern enum machine_mode default_addr_space_address_mode (addr_space_t);
129656 +extern bool default_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as);
129657 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
129658 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
129659 +
129660 +int plugin_is_GPL_compatible;
129661 +
129662 +static struct plugin_info checker_plugin_info = {
129663 + .version = "201512100145",
129664 + .help = "user\tturn on user/kernel address space checking\n"
129665 + "context\tturn on locking context checking\n"
129666 +};
129667 +
129668 +#define ADDR_SPACE_KERNEL 0
129669 +#define ADDR_SPACE_FORCE_KERNEL 1
129670 +#define ADDR_SPACE_USER 2
129671 +#define ADDR_SPACE_FORCE_USER 3
129672 +#define ADDR_SPACE_IOMEM 0
129673 +#define ADDR_SPACE_FORCE_IOMEM 0
129674 +#define ADDR_SPACE_PERCPU 0
129675 +#define ADDR_SPACE_FORCE_PERCPU 0
129676 +#define ADDR_SPACE_RCU 0
129677 +#define ADDR_SPACE_FORCE_RCU 0
129678 +
129679 +static enum machine_mode checker_addr_space_pointer_mode(addr_space_t addrspace)
129680 +{
129681 + return default_addr_space_pointer_mode(ADDR_SPACE_GENERIC);
129682 +}
129683 +
129684 +static enum machine_mode checker_addr_space_address_mode(addr_space_t addrspace)
129685 +{
129686 + return default_addr_space_address_mode(ADDR_SPACE_GENERIC);
129687 +}
129688 +
129689 +static bool checker_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as)
129690 +{
129691 + return default_addr_space_valid_pointer_mode(mode, as);
129692 +}
129693 +
129694 +static bool checker_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as)
129695 +{
129696 + return default_addr_space_legitimate_address_p(mode, mem, strict, ADDR_SPACE_GENERIC);
129697 +}
129698 +
129699 +static rtx checker_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as)
129700 +{
129701 + return default_addr_space_legitimize_address(x, oldx, mode, as);
129702 +}
129703 +
129704 +static bool checker_addr_space_subset_p(addr_space_t subset, addr_space_t superset)
129705 +{
129706 + if (subset == ADDR_SPACE_FORCE_KERNEL && superset == ADDR_SPACE_KERNEL)
129707 + return true;
129708 +
129709 + if (subset == ADDR_SPACE_FORCE_USER && superset == ADDR_SPACE_USER)
129710 + return true;
129711 +
129712 + if (subset == ADDR_SPACE_FORCE_IOMEM && superset == ADDR_SPACE_IOMEM)
129713 + return true;
129714 +
129715 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_USER)
129716 + return true;
129717 +
129718 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_IOMEM)
129719 + return true;
129720 +
129721 + if (subset == ADDR_SPACE_USER && superset == ADDR_SPACE_FORCE_KERNEL)
129722 + return true;
129723 +
129724 + if (subset == ADDR_SPACE_IOMEM && superset == ADDR_SPACE_FORCE_KERNEL)
129725 + return true;
129726 +
129727 + return subset == superset;
129728 +}
129729 +
129730 +static rtx checker_addr_space_convert(rtx op, tree from_type, tree to_type)
129731 +{
129732 +// addr_space_t from_as = TYPE_ADDR_SPACE(TREE_TYPE(from_type));
129733 +// addr_space_t to_as = TYPE_ADDR_SPACE(TREE_TYPE(to_type));
129734 +
129735 + return op;
129736 +}
129737 +
129738 +static void register_checker_address_spaces(void *event_data, void *data)
129739 +{
129740 + c_register_addr_space("__kernel", ADDR_SPACE_KERNEL);
129741 + c_register_addr_space("__force_kernel", ADDR_SPACE_FORCE_KERNEL);
129742 + c_register_addr_space("__user", ADDR_SPACE_USER);
129743 + c_register_addr_space("__force_user", ADDR_SPACE_FORCE_USER);
129744 +// c_register_addr_space("__iomem", ADDR_SPACE_IOMEM);
129745 +// c_register_addr_space("__force_iomem", ADDR_SPACE_FORCE_IOMEM);
129746 +// c_register_addr_space("__percpu", ADDR_SPACE_PERCPU);
129747 +// c_register_addr_space("__force_percpu", ADDR_SPACE_FORCE_PERCPU);
129748 +// c_register_addr_space("__rcu", ADDR_SPACE_RCU);
129749 +// c_register_addr_space("__force_rcu", ADDR_SPACE_FORCE_RCU);
129750 +
129751 + targetm.addr_space.pointer_mode = checker_addr_space_pointer_mode;
129752 + targetm.addr_space.address_mode = checker_addr_space_address_mode;
129753 + targetm.addr_space.valid_pointer_mode = checker_addr_space_valid_pointer_mode;
129754 + targetm.addr_space.legitimate_address_p = checker_addr_space_legitimate_address_p;
129755 +// targetm.addr_space.legitimize_address = checker_addr_space_legitimize_address;
129756 + targetm.addr_space.subset_p = checker_addr_space_subset_p;
129757 + targetm.addr_space.convert = checker_addr_space_convert;
129758 +}
129759 +
129760 +static bool split_context_attribute(tree args, tree *lock, tree *in, tree *out)
129761 +{
129762 + *in = TREE_VALUE(args);
129763 +
129764 + if (TREE_CODE(*in) != INTEGER_CST) {
129765 + *lock = *in;
129766 + args = TREE_CHAIN(args);
129767 + *in = TREE_VALUE(args);
129768 + } else
129769 + *lock = NULL_TREE;
129770 +
129771 + args = TREE_CHAIN(args);
129772 + if (*lock && !args)
129773 + return false;
129774 +
129775 + *out = TREE_VALUE(args);
129776 + return true;
129777 +}
129778 +
129779 +static tree handle_context_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
129780 +{
129781 + *no_add_attrs = true;
129782 + tree lock, in, out;
129783 +
129784 + if (TREE_CODE(*node) != FUNCTION_DECL) {
129785 + error("%qE attribute applies to functions only (%qD)", name, *node);
129786 + return NULL_TREE;
129787 + }
129788 +
129789 + if (!split_context_attribute(args, &lock, &in, &out)) {
129790 + error("%qE attribute needs two integers after the lock expression", name);
129791 + return NULL_TREE;
129792 + }
129793 +
129794 + if (TREE_CODE(in) != INTEGER_CST) {
129795 + error("the 'in' argument of the %qE attribute must be an integer (%qE)", name, in);
129796 + return NULL_TREE;
129797 + }
129798 +
129799 + if (TREE_CODE(out) != INTEGER_CST) {
129800 + error("the 'out' argument of the %qE attribute must be an integer (%qE)", name, out);
129801 + return NULL_TREE;
129802 + }
129803 +
129804 + *no_add_attrs = false;
129805 + return NULL_TREE;
129806 +}
129807 +
129808 +static struct attribute_spec context_attr = {
129809 + .name = "context",
129810 + .min_length = 2,
129811 + .max_length = 3,
129812 + .decl_required = true,
129813 + .type_required = false,
129814 + .function_type_required = false,
129815 + .handler = handle_context_attribute,
129816 +#if BUILDING_GCC_VERSION >= 4007
129817 + .affects_type_identity = true
129818 +#endif
129819 +};
129820 +
129821 +static void register_attributes(void *event_data, void *data)
129822 +{
129823 + register_attribute(&context_attr);
129824 +}
129825 +
129826 +static const char context_function[] = "__context__";
129827 +static GTY(()) tree context_function_decl;
129828 +
129829 +static const char context_error[] = "__context_error__";
129830 +static GTY(()) tree context_error_decl;
129831 +
129832 +static void context_start_unit(void __unused *gcc_data, void __unused *user_data)
129833 +{
129834 + tree fntype, attr;
129835 +
129836 + // void __context__(void *, int);
129837 + fntype = build_function_type_list(void_type_node, ptr_type_node, integer_type_node, NULL_TREE);
129838 + context_function_decl = build_fn_decl(context_function, fntype);
129839 +
129840 + TREE_PUBLIC(context_function_decl) = 1;
129841 + TREE_USED(context_function_decl) = 1;
129842 + DECL_EXTERNAL(context_function_decl) = 1;
129843 + DECL_ARTIFICIAL(context_function_decl) = 1;
129844 + DECL_PRESERVE_P(context_function_decl) = 1;
129845 +// TREE_NOTHROW(context_function_decl) = 1;
129846 +// DECL_UNINLINABLE(context_function_decl) = 1;
129847 + DECL_ASSEMBLER_NAME(context_function_decl); // for LTO
129848 + lang_hooks.decls.pushdecl(context_function_decl);
129849 +
129850 + // void __context_error__(const void *, int) __attribute__((error("context error")));
129851 + fntype = build_function_type_list(void_type_node, const_ptr_type_node, integer_type_node, NULL_TREE);
129852 + context_error_decl = build_fn_decl(context_error, fntype);
129853 +
129854 + TREE_PUBLIC(context_error_decl) = 1;
129855 + TREE_USED(context_error_decl) = 1;
129856 + DECL_EXTERNAL(context_error_decl) = 1;
129857 + DECL_ARTIFICIAL(context_error_decl) = 1;
129858 + DECL_PRESERVE_P(context_error_decl) = 1;
129859 +// TREE_NOTHROW(context_error_decl) = 1;
129860 +// DECL_UNINLINABLE(context_error_decl) = 1;
129861 + TREE_THIS_VOLATILE(context_error_decl) = 1;
129862 + DECL_ASSEMBLER_NAME(context_error_decl);
129863 +
129864 + attr = tree_cons(NULL, build_string(14, "context error"), NULL);
129865 + attr = tree_cons(get_identifier("error"), attr, NULL);
129866 + decl_attributes(&context_error_decl, attr, 0);
129867 +}
129868 +
129869 +static bool gate_context(void)
129870 +{
129871 + tree context_attr;
129872 +
129873 +return true;
129874 +
129875 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(current_function_decl));
129876 + return context_attr != NULL_TREE;
129877 +}
129878 +
129879 +static basic_block verify_context_before(gimple_stmt_iterator *gsi, tree context, tree inout, tree error)
129880 +{
129881 + gimple stmt;
129882 + basic_block cond_bb, join_bb, true_bb;
129883 + edge e;
129884 + location_t loc;
129885 + const char *file;
129886 + int line;
129887 + size_t len;
129888 + tree filename;
129889 +
129890 + stmt = gsi_stmt(*gsi);
129891 + if (gimple_has_location(stmt)) {
129892 + loc = gimple_location(stmt);
129893 + file = gimple_filename(stmt);
129894 + line = gimple_lineno(stmt);
129895 + } else {
129896 + loc = DECL_SOURCE_LOCATION(current_function_decl);
129897 + file = DECL_SOURCE_FILE(current_function_decl);
129898 + line = DECL_SOURCE_LINE(current_function_decl);
129899 + }
129900 + gcc_assert(file);
129901 +
129902 + // if (context != count) __context_error__(__FILE__, __LINE__);
129903 + stmt = gimple_build_cond(NE_EXPR, context, inout, NULL_TREE, NULL_TREE);
129904 + gimple_set_location(stmt, loc);
129905 + gsi_insert_before(gsi, stmt, GSI_NEW_STMT);
129906 +
129907 + cond_bb = gsi_bb(*gsi);
129908 + gcc_assert(!gsi_end_p(*gsi));
129909 + gcc_assert(stmt == gsi_stmt(*gsi));
129910 +
129911 + e = split_block(cond_bb, gsi_stmt(*gsi));
129912 + cond_bb = e->src;
129913 + join_bb = e->dest;
129914 + e->flags = EDGE_FALSE_VALUE;
129915 + e->probability = REG_BR_PROB_BASE;
129916 +
129917 + true_bb = create_empty_bb(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb);
129918 + make_edge(cond_bb, true_bb, EDGE_TRUE_VALUE);
129919 + make_edge(true_bb, join_bb, EDGE_FALLTHRU);
129920 +
129921 + set_immediate_dominator(CDI_DOMINATORS, true_bb, cond_bb);
129922 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
129923 +
129924 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
129925 + add_bb_to_loop(true_bb, cond_bb->loop_father);
129926 +
129927 + // insert call to builtin_trap or __context_error__
129928 + *gsi = gsi_start_bb(true_bb);
129929 +
129930 +// stmt = gimple_build_call(builtin_decl_implicit(BUILT_IN_TRAP), 0);
129931 + len = strlen(file) + 1;
129932 + filename = build_string(len, file);
129933 + TREE_TYPE(filename) = build_array_type(unsigned_char_type_node, build_index_type(size_int(len)));
129934 + filename = build1(ADDR_EXPR, const_ptr_type_node, filename);
129935 + stmt = gimple_build_call(error, 2, filename, build_int_cst(NULL_TREE, line));
129936 + gimple_set_location(stmt, loc);
129937 + gsi_insert_after(gsi, stmt, GSI_CONTINUE_LINKING);
129938 +
129939 + *gsi = gsi_start_nondebug_bb(join_bb);
129940 + return join_bb;
129941 +}
129942 +
129943 +static void update_context(gimple_stmt_iterator *gsi, tree context, int diff)
129944 +{
129945 + gimple assign;
129946 + tree op;
129947 +
129948 + op = fold_build2_loc(UNKNOWN_LOCATION, PLUS_EXPR, integer_type_node, context, build_int_cst(integer_type_node, diff));
129949 + assign = gimple_build_assign(context, op);
129950 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
129951 + update_stmt(assign);
129952 +}
129953 +
129954 +static basic_block track_context(basic_block bb, tree context)
129955 +{
129956 + gimple_stmt_iterator gsi;
129957 + gimple assign;
129958 +
129959 + // adjust context according to the context information on any call stmt
129960 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
129961 + gimple stmt = gsi_stmt(gsi);
129962 + tree fndecl, context_attr;
129963 + tree lock, in, out;
129964 + int incount, outcount;
129965 +
129966 + if (!is_gimple_call(stmt))
129967 + continue;
129968 +
129969 + fndecl = gimple_call_fndecl(stmt);
129970 + if (!fndecl)
129971 + continue;
129972 +
129973 + if (fndecl == context_function_decl) {
129974 + unsigned int num_ops = gimple_num_ops(stmt);
129975 + int diff = tree_to_shwi(gimple_op(stmt, num_ops - 1));
129976 +
129977 + gcc_assert(diff);
129978 + update_context(&gsi, context, diff);
129979 + continue;
129980 + }
129981 +
129982 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(fndecl));
129983 + if (!context_attr)
129984 + continue;
129985 +
129986 + gcc_assert(split_context_attribute(TREE_VALUE(context_attr), &lock, &in, &out));
129987 + incount = tree_to_shwi(in);
129988 + outcount = tree_to_shwi(out);
129989 + bb = verify_context_before(&gsi, context, in, context_error_decl);
129990 + update_context(&gsi, context, outcount - incount);
129991 + }
129992 +
129993 + return bb;
129994 +}
129995 +
129996 +static bool bb_any_loop(basic_block bb)
129997 +{
129998 + return bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP);
129999 +}
130000 +
130001 +static unsigned int execute_context(void)
130002 +{
130003 + basic_block bb;
130004 + gimple assign;
130005 + gimple_stmt_iterator gsi;
130006 + tree context_attr, context;
130007 + tree lock, in, out;
130008 +
130009 + loop_optimizer_init(LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS);
130010 + gcc_assert(current_loops);
130011 +
130012 + calculate_dominance_info(CDI_DOMINATORS);
130013 + calculate_dominance_info(CDI_POST_DOMINATORS);
130014 +
130015 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(current_function_decl));
130016 + if (context_attr) {
130017 + gcc_assert(split_context_attribute(TREE_VALUE(context_attr), &lock, &in, &out));
130018 + } else {
130019 + in = out = integer_zero_node;
130020 + }
130021 +
130022 + // 1. create local context variable
130023 + context = create_tmp_var(integer_type_node, "context");
130024 + add_referenced_var(context);
130025 + mark_sym_for_renaming(context);
130026 +
130027 + // 2. initialize local context variable
130028 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
130029 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
130030 + if (!single_pred_p(bb)) {
130031 + gcc_assert(bb_any_loop(bb));
130032 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
130033 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
130034 + }
130035 + gsi = gsi_start_bb(bb);
130036 + assign = gimple_build_assign(context, in);
130037 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
130038 + update_stmt(assign);
130039 +
130040 + // 3. instrument each BB to track the local context variable
130041 + FOR_EACH_BB_FN(bb, cfun) {
130042 + bb = track_context(bb, context);
130043 + }
130044 +
130045 + // 4. verify the local context variable against the expected state
130046 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds)) {
130047 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
130048 + gsi = gsi_last_nondebug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
130049 + verify_context_before(&gsi, context, out, context_error_decl);
130050 + }
130051 +
130052 + free_dominance_info(CDI_DOMINATORS);
130053 + free_dominance_info(CDI_POST_DOMINATORS);
130054 + loop_optimizer_finalize();
130055 + return 0;
130056 +}
130057 +
130058 +#if BUILDING_GCC_VERSION >= 4009
130059 +namespace {
130060 +static const struct pass_data context_pass_data = {
130061 +#else
130062 +static struct gimple_opt_pass context_pass = {
130063 + .pass = {
130064 +#endif
130065 + .type = GIMPLE_PASS,
130066 + .name = "context",
130067 +#if BUILDING_GCC_VERSION >= 4008
130068 + .optinfo_flags = OPTGROUP_NONE,
130069 +#endif
130070 +#if BUILDING_GCC_VERSION >= 5000
130071 +#elif BUILDING_GCC_VERSION == 4009
130072 + .has_gate = true,
130073 + .has_execute = true,
130074 +#else
130075 + .gate = gate_context,
130076 + .execute = execute_context,
130077 + .sub = NULL,
130078 + .next = NULL,
130079 + .static_pass_number = 0,
130080 +#endif
130081 + .tv_id = TV_NONE,
130082 + .properties_required = PROP_gimple_leh | PROP_cfg,
130083 + .properties_provided = 0,
130084 + .properties_destroyed = 0,
130085 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
130086 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_verify_flow | TODO_update_ssa
130087 +#if BUILDING_GCC_VERSION < 4009
130088 + }
130089 +#endif
130090 +};
130091 +
130092 +#if BUILDING_GCC_VERSION >= 4009
130093 +class context_pass : public gimple_opt_pass {
130094 +public:
130095 + context_pass() : gimple_opt_pass(context_pass_data, g) {}
130096 +#if BUILDING_GCC_VERSION >= 5000
130097 + virtual bool gate(function *) { return gate_context(); }
130098 + virtual unsigned int execute(function *) { return execute_context(); }
130099 +#else
130100 + bool gate() { return gate_context(); }
130101 + unsigned int execute() { return execute_context(); }
130102 +#endif
130103 +};
130104 +}
130105 +
130106 +static opt_pass *make_context_pass(void)
130107 +{
130108 + return new context_pass();
130109 +}
130110 +#else
130111 +static struct opt_pass *make_context_pass(void)
130112 +{
130113 + return &context_pass.pass;
130114 +}
130115 +#endif
130116 +
130117 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130118 +{
130119 + const char * const plugin_name = plugin_info->base_name;
130120 + const int argc = plugin_info->argc;
130121 + const struct plugin_argument * const argv = plugin_info->argv;
130122 + int i;
130123 + bool enable_user, enable_context;
130124 + struct register_pass_info context_pass_info;
130125 +
130126 + static const struct ggc_root_tab gt_ggc_r_gt_checker[] = {
130127 + {
130128 + .base = &context_function_decl,
130129 + .nelt = 1,
130130 + .stride = sizeof(context_function_decl),
130131 + .cb = &gt_ggc_mx_tree_node,
130132 + .pchw = &gt_pch_nx_tree_node
130133 + },
130134 + {
130135 + .base = &context_error_decl,
130136 + .nelt = 1,
130137 + .stride = sizeof(context_error_decl),
130138 + .cb = &gt_ggc_mx_tree_node,
130139 + .pchw = &gt_pch_nx_tree_node
130140 + },
130141 + LAST_GGC_ROOT_TAB
130142 + };
130143 +
130144 + context_pass_info.pass = make_context_pass();
130145 +// context_pass_info.reference_pass_name = "ssa";
130146 + context_pass_info.reference_pass_name = "phiprop";
130147 + context_pass_info.ref_pass_instance_number = 1;
130148 + context_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130149 +
130150 + if (!plugin_default_version_check(version, &gcc_version)) {
130151 + error(G_("incompatible gcc/plugin versions"));
130152 + return 1;
130153 + }
130154 +
130155 + register_callback(plugin_name, PLUGIN_INFO, NULL, &checker_plugin_info);
130156 +
130157 + enable_user = false;
130158 + enable_context = false;
130159 + for (i = 0; i < argc; ++i) {
130160 + if (!strcmp(argv[i].key, "user")) {
130161 + enable_user = true;
130162 + continue;
130163 + }
130164 + if (!strcmp(argv[i].key, "context")) {
130165 + enable_context = true;
130166 + continue;
130167 + }
130168 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130169 + }
130170 +
130171 + if (enable_user)
130172 + register_callback(plugin_name, PLUGIN_PRAGMAS, register_checker_address_spaces, NULL);
130173 + if (enable_context) {
130174 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
130175 + register_callback(plugin_name, PLUGIN_START_UNIT, context_start_unit, NULL);
130176 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_checker);
130177 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &context_pass_info);
130178 + }
130179 +
130180 + return 0;
130181 +}
130182 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
130183 new file mode 100644
130184 index 0000000..0c96d8a
130185 --- /dev/null
130186 +++ b/tools/gcc/colorize_plugin.c
130187 @@ -0,0 +1,215 @@
130188 +/*
130189 + * Copyright 2012-2015 by PaX Team <pageexec@freemail.hu>
130190 + * Licensed under the GPL v2
130191 + *
130192 + * Note: the choice of the license means that the compilation process is
130193 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
130194 + * but for the kernel it doesn't matter since it doesn't link against
130195 + * any of the gcc libraries
130196 + *
130197 + * gcc plugin to colorize diagnostic output
130198 + *
130199 + */
130200 +
130201 +#include "gcc-common.h"
130202 +
130203 +int plugin_is_GPL_compatible;
130204 +
130205 +static struct plugin_info colorize_plugin_info = {
130206 + .version = "201404202350",
130207 + .help = "color=[never|always|auto]\tdetermine when to colorize\n",
130208 +};
130209 +
130210 +#define GREEN "\033[32m\033[K"
130211 +#define LIGHTGREEN "\033[1;32m\033[K"
130212 +#define YELLOW "\033[33m\033[K"
130213 +#define LIGHTYELLOW "\033[1;33m\033[K"
130214 +#define RED "\033[31m\033[K"
130215 +#define LIGHTRED "\033[1;31m\033[K"
130216 +#define BLUE "\033[34m\033[K"
130217 +#define LIGHTBLUE "\033[1;34m\033[K"
130218 +#define BRIGHT "\033[1;m\033[K"
130219 +#define NORMAL "\033[m\033[K"
130220 +
130221 +static diagnostic_starter_fn old_starter;
130222 +static diagnostic_finalizer_fn old_finalizer;
130223 +
130224 +static void start_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
130225 +{
130226 + const char *color;
130227 + char *newprefix;
130228 +
130229 + switch (diagnostic->kind) {
130230 + case DK_NOTE:
130231 + color = LIGHTBLUE;
130232 + break;
130233 +
130234 + case DK_PEDWARN:
130235 + case DK_WARNING:
130236 + color = LIGHTYELLOW;
130237 + break;
130238 +
130239 + case DK_ERROR:
130240 + case DK_FATAL:
130241 + case DK_ICE:
130242 + case DK_PERMERROR:
130243 + case DK_SORRY:
130244 + color = LIGHTRED;
130245 + break;
130246 +
130247 + default:
130248 + color = NORMAL;
130249 + }
130250 +
130251 + old_starter(context, diagnostic);
130252 + if (-1 == asprintf(&newprefix, "%s%s" NORMAL, color, context->printer->prefix))
130253 + return;
130254 + pp_destroy_prefix(context->printer);
130255 + pp_set_prefix(context->printer, newprefix);
130256 +}
130257 +
130258 +static void finalize_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
130259 +{
130260 + old_finalizer(context, diagnostic);
130261 +}
130262 +
130263 +static void colorize_arm(void)
130264 +{
130265 + old_starter = diagnostic_starter(global_dc);
130266 + old_finalizer = diagnostic_finalizer(global_dc);
130267 +
130268 + diagnostic_starter(global_dc) = start_colorize;
130269 + diagnostic_finalizer(global_dc) = finalize_colorize;
130270 +}
130271 +
130272 +static unsigned int execute_colorize_rearm(void)
130273 +{
130274 + if (diagnostic_starter(global_dc) == start_colorize)
130275 + return 0;
130276 +
130277 + colorize_arm();
130278 + return 0;
130279 +}
130280 +
130281 +#if BUILDING_GCC_VERSION >= 4009
130282 +namespace {
130283 +static const struct pass_data colorize_rearm_pass_data = {
130284 +#else
130285 +struct simple_ipa_opt_pass colorize_rearm_pass = {
130286 + .pass = {
130287 +#endif
130288 + .type = SIMPLE_IPA_PASS,
130289 + .name = "colorize_rearm",
130290 +#if BUILDING_GCC_VERSION >= 4008
130291 + .optinfo_flags = OPTGROUP_NONE,
130292 +#endif
130293 +#if BUILDING_GCC_VERSION >= 5000
130294 +#elif BUILDING_GCC_VERSION == 4009
130295 + .has_gate = false,
130296 + .has_execute = true,
130297 +#else
130298 + .gate = NULL,
130299 + .execute = execute_colorize_rearm,
130300 + .sub = NULL,
130301 + .next = NULL,
130302 + .static_pass_number = 0,
130303 +#endif
130304 + .tv_id = TV_NONE,
130305 + .properties_required = 0,
130306 + .properties_provided = 0,
130307 + .properties_destroyed = 0,
130308 + .todo_flags_start = 0,
130309 + .todo_flags_finish = 0
130310 +#if BUILDING_GCC_VERSION < 4009
130311 + }
130312 +#endif
130313 +};
130314 +
130315 +#if BUILDING_GCC_VERSION >= 4009
130316 +class colorize_rearm_pass : public simple_ipa_opt_pass {
130317 +public:
130318 + colorize_rearm_pass() : simple_ipa_opt_pass(colorize_rearm_pass_data, g) {}
130319 +#if BUILDING_GCC_VERSION >= 5000
130320 + virtual unsigned int execute(function *) { return execute_colorize_rearm(); }
130321 +#else
130322 + unsigned int execute() { return execute_colorize_rearm(); }
130323 +#endif
130324 +};
130325 +}
130326 +
130327 +static opt_pass *make_colorize_rearm_pass(void)
130328 +{
130329 + return new colorize_rearm_pass();
130330 +}
130331 +#else
130332 +static struct opt_pass *make_colorize_rearm_pass(void)
130333 +{
130334 + return &colorize_rearm_pass.pass;
130335 +}
130336 +#endif
130337 +
130338 +static void colorize_start_unit(void *gcc_data, void *user_data)
130339 +{
130340 + colorize_arm();
130341 +}
130342 +
130343 +static bool should_colorize(void)
130344 +{
130345 +#if BUILDING_GCC_VERSION >= 4009
130346 + return false;
130347 +#else
130348 + char const *t = getenv("TERM");
130349 +
130350 + return t && strcmp(t, "dumb") && isatty(STDERR_FILENO);
130351 +#endif
130352 +}
130353 +
130354 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130355 +{
130356 + const char * const plugin_name = plugin_info->base_name;
130357 + const int argc = plugin_info->argc;
130358 + const struct plugin_argument * const argv = plugin_info->argv;
130359 + int i;
130360 + struct register_pass_info colorize_rearm_pass_info;
130361 + bool colorize;
130362 +
130363 + colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
130364 + colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
130365 + colorize_rearm_pass_info.ref_pass_instance_number = 1;
130366 + colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130367 +
130368 + if (!plugin_default_version_check(version, &gcc_version)) {
130369 + error(G_("incompatible gcc/plugin versions"));
130370 + return 1;
130371 + }
130372 +
130373 + register_callback(plugin_name, PLUGIN_INFO, NULL, &colorize_plugin_info);
130374 +
130375 + colorize = getenv("GCC_COLORS") ? should_colorize() : false;
130376 +
130377 + for (i = 0; i < argc; ++i) {
130378 + if (!strcmp(argv[i].key, "color")) {
130379 + if (!argv[i].value) {
130380 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130381 + continue;
130382 + }
130383 + if (!strcmp(argv[i].value, "always"))
130384 + colorize = true;
130385 + else if (!strcmp(argv[i].value, "never"))
130386 + colorize = false;
130387 + else if (!strcmp(argv[i].value, "auto"))
130388 + colorize = should_colorize();
130389 + else
130390 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
130391 + continue;
130392 + }
130393 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130394 + }
130395 +
130396 + if (colorize) {
130397 + // TODO: parse GCC_COLORS as used by gcc 4.9+
130398 + register_callback(plugin_name, PLUGIN_START_UNIT, &colorize_start_unit, NULL);
130399 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &colorize_rearm_pass_info);
130400 + }
130401 + return 0;
130402 +}
130403 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
130404 new file mode 100644
130405 index 0000000..0b98f34
130406 --- /dev/null
130407 +++ b/tools/gcc/constify_plugin.c
130408 @@ -0,0 +1,571 @@
130409 +/*
130410 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
130411 + * Copyright 2011-2015 by PaX Team <pageexec@freemail.hu>
130412 + * Licensed under the GPL v2, or (at your option) v3
130413 + *
130414 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
130415 + *
130416 + * Homepage:
130417 + * http://www.grsecurity.net/~ephox/const_plugin/
130418 + *
130419 + * Usage:
130420 + * $ gcc -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -o constify_plugin.so constify_plugin.c
130421 + * $ gcc -fplugin=constify_plugin.so test.c -O2
130422 + */
130423 +
130424 +#include "gcc-common.h"
130425 +
130426 +// unused C type flag in all versions 4.5-6
130427 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
130428 +
130429 +int plugin_is_GPL_compatible;
130430 +
130431 +static bool constify = true;
130432 +
130433 +static struct plugin_info const_plugin_info = {
130434 + .version = "201511290250",
130435 + .help = "no-constify\tturn off constification\n",
130436 +};
130437 +
130438 +typedef struct {
130439 + bool has_fptr_field;
130440 + bool has_writable_field;
130441 + bool has_do_const_field;
130442 + bool has_no_const_field;
130443 +} constify_info;
130444 +
130445 +static const_tree get_field_type(const_tree field)
130446 +{
130447 + return strip_array_types(TREE_TYPE(field));
130448 +}
130449 +
130450 +static bool is_fptr(const_tree field)
130451 +{
130452 + const_tree ptr = get_field_type(field);
130453 +
130454 + if (TREE_CODE(ptr) != POINTER_TYPE)
130455 + return false;
130456 +
130457 + return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE;
130458 +}
130459 +
130460 +/*
130461 + * determine whether the given structure type meets the requirements for automatic constification,
130462 + * including the constification attributes on nested structure types
130463 + */
130464 +static void constifiable(const_tree node, constify_info *cinfo)
130465 +{
130466 + const_tree field;
130467 +
130468 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
130469 +
130470 + // e.g., pointer to structure fields while still constructing the structure type
130471 + if (TYPE_FIELDS(node) == NULL_TREE)
130472 + return;
130473 +
130474 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
130475 + const_tree type = get_field_type(field);
130476 + enum tree_code code = TREE_CODE(type);
130477 +
130478 + if (node == type)
130479 + continue;
130480 +
130481 + if (is_fptr(field))
130482 + cinfo->has_fptr_field = true;
130483 + else if (code == RECORD_TYPE || code == UNION_TYPE) {
130484 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
130485 + cinfo->has_do_const_field = true;
130486 + else if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type)))
130487 + cinfo->has_no_const_field = true;
130488 + else
130489 + constifiable(type, cinfo);
130490 + } else if (!TREE_READONLY(field))
130491 + cinfo->has_writable_field = true;
130492 + }
130493 +}
130494 +
130495 +static bool constified(const_tree node)
130496 +{
130497 + constify_info cinfo = {
130498 + .has_fptr_field = false,
130499 + .has_writable_field = false,
130500 + .has_do_const_field = false,
130501 + .has_no_const_field = false
130502 + };
130503 +
130504 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
130505 +
130506 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
130507 +// gcc_assert(!TYPE_READONLY(node));
130508 + return false;
130509 + }
130510 +
130511 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) {
130512 + gcc_assert(TYPE_READONLY(node));
130513 + return true;
130514 + }
130515 +
130516 + constifiable(node, &cinfo);
130517 + if ((!cinfo.has_fptr_field || cinfo.has_writable_field || cinfo.has_no_const_field) && !cinfo.has_do_const_field)
130518 + return false;
130519 +
130520 + return TYPE_READONLY(node);
130521 +}
130522 +
130523 +static void deconstify_tree(tree node);
130524 +
130525 +static void deconstify_type(tree type)
130526 +{
130527 + tree field;
130528 +
130529 + gcc_assert(TREE_CODE(type) == RECORD_TYPE || TREE_CODE(type) == UNION_TYPE);
130530 +
130531 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
130532 + const_tree fieldtype = get_field_type(field);
130533 +
130534 + // special case handling of simple ptr-to-same-array-type members
130535 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
130536 + tree ptrtype = TREE_TYPE(TREE_TYPE(field));
130537 +
130538 + if (TREE_TYPE(TREE_TYPE(field)) == type)
130539 + continue;
130540 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
130541 + continue;
130542 + if (!constified(ptrtype))
130543 + continue;
130544 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
130545 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
130546 + TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
130547 + }
130548 + continue;
130549 + }
130550 + if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE)
130551 + continue;
130552 + if (!constified(fieldtype))
130553 + continue;
130554 +
130555 + deconstify_tree(field);
130556 + TREE_READONLY(field) = 0;
130557 + }
130558 + TYPE_READONLY(type) = 0;
130559 + C_TYPE_FIELDS_READONLY(type) = 0;
130560 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
130561 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
130562 + TYPE_ATTRIBUTES(type) = remove_attribute("do_const", TYPE_ATTRIBUTES(type));
130563 + }
130564 +}
130565 +
130566 +static void deconstify_tree(tree node)
130567 +{
130568 + tree old_type, new_type, field;
130569 +
130570 + old_type = TREE_TYPE(node);
130571 + while (TREE_CODE(old_type) == ARRAY_TYPE && TREE_CODE(TREE_TYPE(old_type)) != ARRAY_TYPE) {
130572 + node = TREE_TYPE(node) = copy_node(old_type);
130573 + old_type = TREE_TYPE(old_type);
130574 + }
130575 +
130576 + gcc_assert(TREE_CODE(old_type) == RECORD_TYPE || TREE_CODE(old_type) == UNION_TYPE);
130577 + gcc_assert(TYPE_READONLY(old_type) && (TYPE_QUALS(old_type) & TYPE_QUAL_CONST));
130578 +
130579 + new_type = build_qualified_type(old_type, TYPE_QUALS(old_type) & ~TYPE_QUAL_CONST);
130580 + TYPE_FIELDS(new_type) = copy_list(TYPE_FIELDS(new_type));
130581 + for (field = TYPE_FIELDS(new_type); field; field = TREE_CHAIN(field))
130582 + DECL_FIELD_CONTEXT(field) = new_type;
130583 +
130584 + deconstify_type(new_type);
130585 +
130586 + TREE_TYPE(node) = new_type;
130587 +}
130588 +
130589 +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
130590 +{
130591 + tree type;
130592 + constify_info cinfo = {
130593 + .has_fptr_field = false,
130594 + .has_writable_field = false,
130595 + .has_do_const_field = false,
130596 + .has_no_const_field = false
130597 + };
130598 +
130599 + *no_add_attrs = true;
130600 + if (TREE_CODE(*node) == FUNCTION_DECL) {
130601 + error("%qE attribute does not apply to functions (%qF)", name, *node);
130602 + return NULL_TREE;
130603 + }
130604 +
130605 + if (TREE_CODE(*node) == PARM_DECL) {
130606 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
130607 + return NULL_TREE;
130608 + }
130609 +
130610 + if (TREE_CODE(*node) == VAR_DECL) {
130611 + error("%qE attribute does not apply to variables (%qD)", name, *node);
130612 + return NULL_TREE;
130613 + }
130614 +
130615 + if (TYPE_P(*node)) {
130616 + type = *node;
130617 + } else {
130618 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
130619 + type = TREE_TYPE(*node);
130620 + }
130621 +
130622 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) {
130623 + error("%qE attribute used on %qT applies to struct and union types only", name, type);
130624 + return NULL_TREE;
130625 + }
130626 +
130627 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
130628 + error("%qE attribute is already applied to the type %qT", name, type);
130629 + return NULL_TREE;
130630 + }
130631 +
130632 + if (TYPE_P(*node)) {
130633 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
130634 + error("%qE attribute used on type %qT is incompatible with 'do_const'", name, type);
130635 + else
130636 + *no_add_attrs = false;
130637 + return NULL_TREE;
130638 + }
130639 +
130640 + constifiable(type, &cinfo);
130641 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
130642 + if (constify) {
130643 + if TYPE_P(*node)
130644 + deconstify_type(*node);
130645 + else
130646 + deconstify_tree(*node);
130647 + }
130648 + if (TYPE_P(*node))
130649 + TYPE_CONSTIFY_VISITED(*node) = 1;
130650 + else
130651 + TYPE_CONSTIFY_VISITED(TREE_TYPE(*node)) = 1;
130652 + return NULL_TREE;
130653 + }
130654 +
130655 + if (constify && TYPE_FIELDS(type))
130656 + error("%qE attribute used on type %qT that is not constified", name, type);
130657 + return NULL_TREE;
130658 +}
130659 +
130660 +static void constify_type(tree type)
130661 +{
130662 + TYPE_READONLY(type) = 1;
130663 + C_TYPE_FIELDS_READONLY(type) = 1;
130664 + TYPE_CONSTIFY_VISITED(type) = 1;
130665 +// TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
130666 +// TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("do_const"), NULL_TREE, TYPE_ATTRIBUTES(type));
130667 +}
130668 +
130669 +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
130670 +{
130671 + *no_add_attrs = true;
130672 + if (!TYPE_P(*node)) {
130673 + error("%qE attribute applies to types only (%qD)", name, *node);
130674 + return NULL_TREE;
130675 + }
130676 +
130677 + if (TREE_CODE(*node) != RECORD_TYPE && TREE_CODE(*node) != UNION_TYPE) {
130678 + error("%qE attribute used on %qT applies to struct and union types only", name, *node);
130679 + return NULL_TREE;
130680 + }
130681 +
130682 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(*node))) {
130683 + error("%qE attribute used on %qT is already applied to the type", name, *node);
130684 + return NULL_TREE;
130685 + }
130686 +
130687 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(*node))) {
130688 + error("%qE attribute used on %qT is incompatible with 'no_const'", name, *node);
130689 + return NULL_TREE;
130690 + }
130691 +
130692 + *no_add_attrs = false;
130693 + return NULL_TREE;
130694 +}
130695 +
130696 +static struct attribute_spec no_const_attr = {
130697 + .name = "no_const",
130698 + .min_length = 0,
130699 + .max_length = 0,
130700 + .decl_required = false,
130701 + .type_required = false,
130702 + .function_type_required = false,
130703 + .handler = handle_no_const_attribute,
130704 +#if BUILDING_GCC_VERSION >= 4007
130705 + .affects_type_identity = true
130706 +#endif
130707 +};
130708 +
130709 +static struct attribute_spec do_const_attr = {
130710 + .name = "do_const",
130711 + .min_length = 0,
130712 + .max_length = 0,
130713 + .decl_required = false,
130714 + .type_required = false,
130715 + .function_type_required = false,
130716 + .handler = handle_do_const_attribute,
130717 +#if BUILDING_GCC_VERSION >= 4007
130718 + .affects_type_identity = true
130719 +#endif
130720 +};
130721 +
130722 +static void register_attributes(void *event_data, void *data)
130723 +{
130724 + register_attribute(&no_const_attr);
130725 + register_attribute(&do_const_attr);
130726 +}
130727 +
130728 +static void finish_type(void *event_data, void *data)
130729 +{
130730 + tree type = (tree)event_data;
130731 + constify_info cinfo = {
130732 + .has_fptr_field = false,
130733 + .has_writable_field = false,
130734 + .has_do_const_field = false,
130735 + .has_no_const_field = false
130736 + };
130737 +
130738 + if (type == NULL_TREE || type == error_mark_node)
130739 + return;
130740 +
130741 +#if BUILDING_GCC_VERSION >= 5000
130742 + if (TREE_CODE(type) == ENUMERAL_TYPE)
130743 + return;
130744 +#endif
130745 +
130746 + if (TYPE_FIELDS(type) == NULL_TREE || TYPE_CONSTIFY_VISITED(type))
130747 + return;
130748 +
130749 + constifiable(type, &cinfo);
130750 +
130751 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) {
130752 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || cinfo.has_do_const_field) {
130753 + deconstify_type(type);
130754 + TYPE_CONSTIFY_VISITED(type) = 1;
130755 + } else
130756 + error("'no_const' attribute used on type %qT that is not constified", type);
130757 + return;
130758 + }
130759 +
130760 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
130761 + if (!cinfo.has_writable_field && !cinfo.has_no_const_field) {
130762 + error("'do_const' attribute used on type %qT that is%sconstified", type, cinfo.has_fptr_field ? " " : " not ");
130763 + return;
130764 + }
130765 + constify_type(type);
130766 + return;
130767 + }
130768 +
130769 + if (cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) {
130770 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
130771 + error("'do_const' attribute used on type %qT that is constified", type);
130772 + return;
130773 + }
130774 + constify_type(type);
130775 + return;
130776 + }
130777 +
130778 + deconstify_type(type);
130779 + TYPE_CONSTIFY_VISITED(type) = 1;
130780 +}
130781 +
130782 +static void check_global_variables(void *event_data, void *data)
130783 +{
130784 + varpool_node_ptr node;
130785 +
130786 + FOR_EACH_VARIABLE(node) {
130787 + tree var = NODE_DECL(node);
130788 + tree type = TREE_TYPE(var);
130789 +
130790 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
130791 + continue;
130792 +
130793 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
130794 + continue;
130795 +
130796 + if (!TYPE_CONSTIFY_VISITED(type))
130797 + continue;
130798 +
130799 + if (DECL_EXTERNAL(var))
130800 + continue;
130801 +
130802 + if (DECL_INITIAL(var))
130803 + continue;
130804 +
130805 + // this works around a gcc bug/feature where uninitialized globals
130806 + // are moved into the .bss section regardless of any constification
130807 + DECL_INITIAL(var) = build_constructor(type, NULL);
130808 +// inform(DECL_SOURCE_LOCATION(var), "constified variable %qE moved into .rodata", var);
130809 + }
130810 +}
130811 +
130812 +static unsigned int check_local_variables(void)
130813 +{
130814 + unsigned int ret = 0;
130815 + tree var;
130816 +
130817 + unsigned int i;
130818 +
130819 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
130820 + tree type = TREE_TYPE(var);
130821 +
130822 + gcc_assert(DECL_P(var));
130823 + if (is_global_var(var))
130824 + continue;
130825 +
130826 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
130827 + continue;
130828 +
130829 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
130830 + continue;
130831 +
130832 + if (!TYPE_CONSTIFY_VISITED(type))
130833 + continue;
130834 +
130835 + error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var);
130836 + ret = 1;
130837 + }
130838 + return ret;
130839 +}
130840 +
130841 +#if BUILDING_GCC_VERSION >= 4009
130842 +namespace {
130843 +static const struct pass_data check_local_variables_pass_data = {
130844 +#else
130845 +static struct gimple_opt_pass check_local_variables_pass = {
130846 + .pass = {
130847 +#endif
130848 + .type = GIMPLE_PASS,
130849 + .name = "check_local_variables",
130850 +#if BUILDING_GCC_VERSION >= 4008
130851 + .optinfo_flags = OPTGROUP_NONE,
130852 +#endif
130853 +#if BUILDING_GCC_VERSION >= 5000
130854 +#elif BUILDING_GCC_VERSION == 4009
130855 + .has_gate = false,
130856 + .has_execute = true,
130857 +#else
130858 + .gate = NULL,
130859 + .execute = check_local_variables,
130860 + .sub = NULL,
130861 + .next = NULL,
130862 + .static_pass_number = 0,
130863 +#endif
130864 + .tv_id = TV_NONE,
130865 + .properties_required = 0,
130866 + .properties_provided = 0,
130867 + .properties_destroyed = 0,
130868 + .todo_flags_start = 0,
130869 + .todo_flags_finish = 0
130870 +#if BUILDING_GCC_VERSION < 4009
130871 + }
130872 +#endif
130873 +};
130874 +
130875 +#if BUILDING_GCC_VERSION >= 4009
130876 +class check_local_variables_pass : public gimple_opt_pass {
130877 +public:
130878 + check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
130879 +#if BUILDING_GCC_VERSION >= 5000
130880 + virtual unsigned int execute(function *) { return check_local_variables(); }
130881 +#else
130882 + unsigned int execute() { return check_local_variables(); }
130883 +#endif
130884 +};
130885 +}
130886 +
130887 +static opt_pass *make_check_local_variables_pass(void)
130888 +{
130889 + return new check_local_variables_pass();
130890 +}
130891 +#else
130892 +static struct opt_pass *make_check_local_variables_pass(void)
130893 +{
130894 + return &check_local_variables_pass.pass;
130895 +}
130896 +#endif
130897 +
130898 +static struct {
130899 + const char *name;
130900 + const char *asm_op;
130901 +} sections[] = {
130902 + {".init.rodata", "\t.section\t.init.rodata,\"a\""},
130903 + {".ref.rodata", "\t.section\t.ref.rodata,\"a\""},
130904 + {".devinit.rodata", "\t.section\t.devinit.rodata,\"a\""},
130905 + {".devexit.rodata", "\t.section\t.devexit.rodata,\"a\""},
130906 + {".cpuinit.rodata", "\t.section\t.cpuinit.rodata,\"a\""},
130907 + {".cpuexit.rodata", "\t.section\t.cpuexit.rodata,\"a\""},
130908 + {".meminit.rodata", "\t.section\t.meminit.rodata,\"a\""},
130909 + {".memexit.rodata", "\t.section\t.memexit.rodata,\"a\""},
130910 + {".data..read_only", "\t.section\t.data..read_only,\"a\""},
130911 +};
130912 +
130913 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
130914 +
130915 +static unsigned int constify_section_type_flags(tree decl, const char *name, int reloc)
130916 +{
130917 + size_t i;
130918 +
130919 + for (i = 0; i < ARRAY_SIZE(sections); i++)
130920 + if (!strcmp(sections[i].name, name))
130921 + return 0;
130922 + return old_section_type_flags(decl, name, reloc);
130923 +}
130924 +
130925 +static void constify_start_unit(void *gcc_data, void *user_data)
130926 +{
130927 +// size_t i;
130928 +
130929 +// for (i = 0; i < ARRAY_SIZE(sections); i++)
130930 +// sections[i].section = get_unnamed_section(0, output_section_asm_op, sections[i].asm_op);
130931 +// sections[i].section = get_section(sections[i].name, 0, NULL);
130932 +
130933 + old_section_type_flags = targetm.section_type_flags;
130934 + targetm.section_type_flags = constify_section_type_flags;
130935 +}
130936 +
130937 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130938 +{
130939 + const char * const plugin_name = plugin_info->base_name;
130940 + const int argc = plugin_info->argc;
130941 + const struct plugin_argument * const argv = plugin_info->argv;
130942 + int i;
130943 +
130944 + struct register_pass_info check_local_variables_pass_info;
130945 +
130946 + check_local_variables_pass_info.pass = make_check_local_variables_pass();
130947 + check_local_variables_pass_info.reference_pass_name = "ssa";
130948 + check_local_variables_pass_info.ref_pass_instance_number = 1;
130949 + check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
130950 +
130951 + if (!plugin_default_version_check(version, &gcc_version)) {
130952 + error(G_("incompatible gcc/plugin versions"));
130953 + return 1;
130954 + }
130955 +
130956 + for (i = 0; i < argc; ++i) {
130957 + if (!(strcmp(argv[i].key, "no-constify"))) {
130958 + constify = false;
130959 + continue;
130960 + }
130961 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130962 + }
130963 +
130964 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
130965 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
130966 + constify = false;
130967 + }
130968 +
130969 + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info);
130970 + if (constify) {
130971 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
130972 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
130973 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
130974 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
130975 + }
130976 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
130977 +
130978 + return 0;
130979 +}
130980 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
130981 new file mode 100644
130982 index 0000000..9d33451
130983 --- /dev/null
130984 +++ b/tools/gcc/gcc-common.h
130985 @@ -0,0 +1,813 @@
130986 +#ifndef GCC_COMMON_H_INCLUDED
130987 +#define GCC_COMMON_H_INCLUDED
130988 +
130989 +#include "bversion.h"
130990 +#if BUILDING_GCC_VERSION >= 6000
130991 +#include "gcc-plugin.h"
130992 +#else
130993 +#include "plugin.h"
130994 +#endif
130995 +#include "plugin-version.h"
130996 +#include "config.h"
130997 +#include "system.h"
130998 +#include "coretypes.h"
130999 +#include "tm.h"
131000 +#include "line-map.h"
131001 +#include "input.h"
131002 +#include "tree.h"
131003 +
131004 +#include "tree-inline.h"
131005 +#include "version.h"
131006 +#include "rtl.h"
131007 +#include "tm_p.h"
131008 +#include "flags.h"
131009 +//#include "insn-attr.h"
131010 +//#include "insn-config.h"
131011 +//#include "insn-flags.h"
131012 +#include "hard-reg-set.h"
131013 +//#include "recog.h"
131014 +#include "output.h"
131015 +#include "except.h"
131016 +#include "function.h"
131017 +#include "toplev.h"
131018 +//#include "expr.h"
131019 +#include "basic-block.h"
131020 +#include "intl.h"
131021 +#include "ggc.h"
131022 +//#include "regs.h"
131023 +#include "timevar.h"
131024 +
131025 +#include "params.h"
131026 +
131027 +#if BUILDING_GCC_VERSION <= 4009
131028 +#include "pointer-set.h"
131029 +#else
131030 +#include "hash-map.h"
131031 +#endif
131032 +
131033 +#include "emit-rtl.h"
131034 +//#include "reload.h"
131035 +//#include "ira.h"
131036 +//#include "dwarf2asm.h"
131037 +#include "debug.h"
131038 +#include "target.h"
131039 +#include "langhooks.h"
131040 +#include "cfgloop.h"
131041 +//#include "hosthooks.h"
131042 +#include "cgraph.h"
131043 +#include "opts.h"
131044 +//#include "coverage.h"
131045 +//#include "value-prof.h"
131046 +
131047 +#if BUILDING_GCC_VERSION == 4005
131048 +#include <sys/mman.h>
131049 +#endif
131050 +
131051 +#if BUILDING_GCC_VERSION >= 4007
131052 +#include "tree-pretty-print.h"
131053 +#include "gimple-pretty-print.h"
131054 +#endif
131055 +
131056 +#if BUILDING_GCC_VERSION >= 4006
131057 +//#include "c-tree.h"
131058 +//#include "cp/cp-tree.h"
131059 +#include "c-family/c-common.h"
131060 +#else
131061 +#include "c-common.h"
131062 +#endif
131063 +
131064 +#if BUILDING_GCC_VERSION <= 4008
131065 +#include "tree-flow.h"
131066 +#else
131067 +#include "tree-cfgcleanup.h"
131068 +#include "tree-ssa-operands.h"
131069 +#include "tree-into-ssa.h"
131070 +#endif
131071 +
131072 +#if BUILDING_GCC_VERSION >= 4008
131073 +#include "is-a.h"
131074 +#endif
131075 +
131076 +#include "diagnostic.h"
131077 +//#include "tree-diagnostic.h"
131078 +#include "tree-dump.h"
131079 +#include "tree-pass.h"
131080 +//#include "df.h"
131081 +#include "predict.h"
131082 +#include "ipa-utils.h"
131083 +
131084 +#if BUILDING_GCC_VERSION >= 4009
131085 +#include "attribs.h"
131086 +#include "varasm.h"
131087 +#include "stor-layout.h"
131088 +#include "internal-fn.h"
131089 +#include "gimple-expr.h"
131090 +#include "gimple-fold.h"
131091 +//#include "diagnostic-color.h"
131092 +#include "context.h"
131093 +#include "tree-ssa-alias.h"
131094 +#include "tree-ssa.h"
131095 +#include "stringpool.h"
131096 +#include "tree-ssanames.h"
131097 +#include "print-tree.h"
131098 +#include "tree-eh.h"
131099 +#include "stmt.h"
131100 +#include "gimplify.h"
131101 +#endif
131102 +
131103 +#include "gimple.h"
131104 +
131105 +#if BUILDING_GCC_VERSION >= 4009
131106 +#include "tree-ssa-operands.h"
131107 +#include "tree-phinodes.h"
131108 +#include "tree-cfg.h"
131109 +#include "gimple-iterator.h"
131110 +#include "gimple-ssa.h"
131111 +#include "ssa-iterators.h"
131112 +#endif
131113 +
131114 +//#include "lto/lto.h"
131115 +#if BUILDING_GCC_VERSION >= 4007
131116 +//#include "data-streamer.h"
131117 +#else
131118 +//#include "lto-streamer.h"
131119 +#endif
131120 +//#include "lto-compress.h"
131121 +#if BUILDING_GCC_VERSION >= 5000
131122 +//#include "lto-section-names.h"
131123 +#include "builtins.h"
131124 +#endif
131125 +
131126 +//#include "expr.h" where are you...
131127 +extern rtx emit_move_insn(rtx x, rtx y);
131128 +
131129 +// missing from basic_block.h...
131130 +extern void debug_dominance_info(enum cdi_direction dir);
131131 +extern void debug_dominance_tree(enum cdi_direction dir, basic_block root);
131132 +
131133 +#ifdef __cplusplus
131134 +static inline void debug_tree(const_tree t)
131135 +{
131136 + debug_tree(CONST_CAST_TREE(t));
131137 +}
131138 +#else
131139 +#define debug_tree(t) debug_tree(CONST_CAST_TREE(t))
131140 +#endif
131141 +
131142 +#define __unused __attribute__((__unused__))
131143 +
131144 +#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
131145 +#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
131146 +#define TYPE_NAME_POINTER(node) IDENTIFIER_POINTER(TYPE_NAME(node))
131147 +#define TYPE_NAME_LENGTH(node) IDENTIFIER_LENGTH(TYPE_NAME(node))
131148 +
131149 +// should come from c-tree.h if only it were installed for gcc 4.5...
131150 +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
131151 +
131152 +#if BUILDING_GCC_VERSION == 4005
131153 +#define FOR_EACH_LOCAL_DECL(FUN, I, D) for (tree vars = (FUN)->local_decls, (I) = 0; vars && ((D) = TREE_VALUE(vars)); vars = TREE_CHAIN(vars), (I)++)
131154 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
131155 +#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
131156 +#define TODO_rebuild_cgraph_edges 0
131157 +#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP))
131158 +
131159 +#ifndef O_BINARY
131160 +#define O_BINARY 0
131161 +#endif
131162 +
131163 +typedef struct varpool_node *varpool_node_ptr;
131164 +
131165 +static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
131166 +{
131167 + tree fndecl;
131168 +
131169 + if (!is_gimple_call(stmt))
131170 + return false;
131171 + fndecl = gimple_call_fndecl(stmt);
131172 + if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
131173 + return false;
131174 +// print_node(stderr, "pax", fndecl, 4);
131175 + return DECL_FUNCTION_CODE(fndecl) == code;
131176 +}
131177 +
131178 +static inline bool is_simple_builtin(tree decl)
131179 +{
131180 + if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
131181 + return false;
131182 +
131183 + switch (DECL_FUNCTION_CODE(decl)) {
131184 + /* Builtins that expand to constants. */
131185 + case BUILT_IN_CONSTANT_P:
131186 + case BUILT_IN_EXPECT:
131187 + case BUILT_IN_OBJECT_SIZE:
131188 + case BUILT_IN_UNREACHABLE:
131189 + /* Simple register moves or loads from stack. */
131190 + case BUILT_IN_RETURN_ADDRESS:
131191 + case BUILT_IN_EXTRACT_RETURN_ADDR:
131192 + case BUILT_IN_FROB_RETURN_ADDR:
131193 + case BUILT_IN_RETURN:
131194 + case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
131195 + case BUILT_IN_FRAME_ADDRESS:
131196 + case BUILT_IN_VA_END:
131197 + case BUILT_IN_STACK_SAVE:
131198 + case BUILT_IN_STACK_RESTORE:
131199 + /* Exception state returns or moves registers around. */
131200 + case BUILT_IN_EH_FILTER:
131201 + case BUILT_IN_EH_POINTER:
131202 + case BUILT_IN_EH_COPY_VALUES:
131203 + return true;
131204 +
131205 + default:
131206 + return false;
131207 + }
131208 +}
131209 +
131210 +static inline void add_local_decl(struct function *fun, tree d)
131211 +{
131212 + gcc_assert(TREE_CODE(d) == VAR_DECL);
131213 + fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls);
131214 +}
131215 +#endif
131216 +
131217 +#if BUILDING_GCC_VERSION <= 4006
131218 +#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
131219 +#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
131220 +#define EDGE_PRESERVE 0ULL
131221 +#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
131222 +#define flag_fat_lto_objects true
131223 +
131224 +#define get_random_seed(noinit) ({ \
131225 + unsigned HOST_WIDE_INT seed; \
131226 + sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
131227 + seed * seed; })
131228 +
131229 +#define int_const_binop(code, arg1, arg2) int_const_binop((code), (arg1), (arg2), 0)
131230 +
131231 +static inline bool gimple_clobber_p(gimple s __unused)
131232 +{
131233 + return false;
131234 +}
131235 +
131236 +static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt)
131237 +{
131238 + unsigned i;
131239 +
131240 + for (i = 0; i < gimple_asm_nclobbers(stmt); i++) {
131241 + tree op = gimple_asm_clobber_op(stmt, i);
131242 + if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory"))
131243 + return true;
131244 + }
131245 +
131246 + return false;
131247 +}
131248 +
131249 +static inline tree builtin_decl_implicit(enum built_in_function fncode)
131250 +{
131251 + return implicit_built_in_decls[fncode];
131252 +}
131253 +
131254 +static inline int ipa_reverse_postorder(struct cgraph_node **order)
131255 +{
131256 + return cgraph_postorder(order);
131257 +}
131258 +
131259 +static inline struct cgraph_node *cgraph_get_create_node(tree decl)
131260 +{
131261 + struct cgraph_node *node = cgraph_get_node(decl);
131262 +
131263 + return node ? node : cgraph_node(decl);
131264 +}
131265 +
131266 +static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
131267 +{
131268 + return node->analyzed && !node->thunk.thunk_p && !node->alias;
131269 +}
131270 +
131271 +static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
131272 +{
131273 + struct cgraph_node *node;
131274 +
131275 + for (node = cgraph_nodes; node; node = node->next)
131276 + if (cgraph_function_with_gimple_body_p(node))
131277 + return node;
131278 + return NULL;
131279 +}
131280 +
131281 +static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
131282 +{
131283 + for (node = node->next; node; node = node->next)
131284 + if (cgraph_function_with_gimple_body_p(node))
131285 + return node;
131286 + return NULL;
131287 +}
131288 +
131289 +#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
131290 + for ((node) = cgraph_first_function_with_gimple_body(); (node); \
131291 + (node) = cgraph_next_function_with_gimple_body(node))
131292 +
131293 +static inline void varpool_add_new_variable(tree decl)
131294 +{
131295 + varpool_finalize_decl(decl);
131296 +}
131297 +#endif
131298 +
131299 +#if BUILDING_GCC_VERSION == 4006
131300 +extern void debug_gimple_stmt(gimple);
131301 +extern void debug_gimple_seq(gimple_seq);
131302 +extern void print_gimple_seq(FILE *, gimple_seq, int, int);
131303 +extern void print_gimple_stmt(FILE *, gimple, int, int);
131304 +extern void print_gimple_expr(FILE *, gimple, int, int);
131305 +extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
131306 +#endif
131307 +
131308 +#if BUILDING_GCC_VERSION <= 4007
131309 +#define FOR_EACH_FUNCTION(node) for (node = cgraph_nodes; node; node = node->next)
131310 +#define FOR_EACH_VARIABLE(node) for (node = varpool_nodes; node; node = node->next)
131311 +#define PROP_loops 0
131312 +#define NODE_SYMBOL(node) (node)
131313 +#define NODE_DECL(node) (node)->decl
131314 +#define INSN_LOCATION(INSN) RTL_LOCATION(INSN)
131315 +
131316 +static inline int bb_loop_depth(const_basic_block bb)
131317 +{
131318 + return bb->loop_father ? loop_depth(bb->loop_father) : 0;
131319 +}
131320 +
131321 +static inline bool gimple_store_p(gimple gs)
131322 +{
131323 + tree lhs = gimple_get_lhs(gs);
131324 + return lhs && !is_gimple_reg(lhs);
131325 +}
131326 +#endif
131327 +
131328 +#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008
131329 +static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n)
131330 +{
131331 + return cgraph_alias_aliased_node(n);
131332 +}
131333 +#endif
131334 +
131335 +#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION <= 4009
131336 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
131337 + cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
131338 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
131339 + cgraph_create_edge_including_clones((caller), (callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
131340 +#endif
131341 +
131342 +#if BUILDING_GCC_VERSION <= 4008
131343 +#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
131344 +#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
131345 +#define basic_block_info_for_fn(FN) ((FN)->cfg->x_basic_block_info)
131346 +#define n_basic_blocks_for_fn(FN) ((FN)->cfg->x_n_basic_blocks)
131347 +#define n_edges_for_fn(FN) ((FN)->cfg->x_n_edges)
131348 +#define last_basic_block_for_fn(FN) ((FN)->cfg->x_last_basic_block)
131349 +#define label_to_block_map_for_fn(FN) ((FN)->cfg->x_label_to_block_map)
131350 +#define profile_status_for_fn(FN) ((FN)->cfg->x_profile_status)
131351 +#define BASIC_BLOCK_FOR_FN(FN, N) BASIC_BLOCK_FOR_FUNCTION((FN), (N))
131352 +#define NODE_IMPLICIT_ALIAS(node) (node)->same_body_alias
131353 +#define VAR_P(NODE) (TREE_CODE(NODE) == VAR_DECL)
131354 +
131355 +static inline bool tree_fits_shwi_p(const_tree t)
131356 +{
131357 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
131358 + return false;
131359 +
131360 + if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0)
131361 + return true;
131362 +
131363 + if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t)))
131364 + return true;
131365 +
131366 + return false;
131367 +}
131368 +
131369 +static inline bool tree_fits_uhwi_p(const_tree t)
131370 +{
131371 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
131372 + return false;
131373 +
131374 + return TREE_INT_CST_HIGH(t) == 0;
131375 +}
131376 +
131377 +static inline HOST_WIDE_INT tree_to_shwi(const_tree t)
131378 +{
131379 + gcc_assert(tree_fits_shwi_p(t));
131380 + return TREE_INT_CST_LOW(t);
131381 +}
131382 +
131383 +static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
131384 +{
131385 + gcc_assert(tree_fits_uhwi_p(t));
131386 + return TREE_INT_CST_LOW(t);
131387 +}
131388 +
131389 +static inline const char *get_tree_code_name(enum tree_code code)
131390 +{
131391 + gcc_assert(code < MAX_TREE_CODES);
131392 + return tree_code_name[code];
131393 +}
131394 +
131395 +#define ipa_remove_stmt_references(cnode, stmt)
131396 +
131397 +typedef union gimple_statement_d gasm;
131398 +typedef union gimple_statement_d gassign;
131399 +typedef union gimple_statement_d gcall;
131400 +typedef union gimple_statement_d gcond;
131401 +typedef union gimple_statement_d gdebug;
131402 +typedef union gimple_statement_d gphi;
131403 +typedef union gimple_statement_d greturn;
131404 +
131405 +static inline gasm *as_a_gasm(gimple stmt)
131406 +{
131407 + return stmt;
131408 +}
131409 +
131410 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
131411 +{
131412 + return stmt;
131413 +}
131414 +
131415 +static inline gassign *as_a_gassign(gimple stmt)
131416 +{
131417 + return stmt;
131418 +}
131419 +
131420 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
131421 +{
131422 + return stmt;
131423 +}
131424 +
131425 +static inline gcall *as_a_gcall(gimple stmt)
131426 +{
131427 + return stmt;
131428 +}
131429 +
131430 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
131431 +{
131432 + return stmt;
131433 +}
131434 +
131435 +static inline gcond *as_a_gcond(gimple stmt)
131436 +{
131437 + return stmt;
131438 +}
131439 +
131440 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
131441 +{
131442 + return stmt;
131443 +}
131444 +
131445 +static inline gdebug *as_a_gdebug(gimple stmt)
131446 +{
131447 + return stmt;
131448 +}
131449 +
131450 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
131451 +{
131452 + return stmt;
131453 +}
131454 +
131455 +static inline gphi *as_a_gphi(gimple stmt)
131456 +{
131457 + return stmt;
131458 +}
131459 +
131460 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
131461 +{
131462 + return stmt;
131463 +}
131464 +
131465 +static inline greturn *as_a_greturn(gimple stmt)
131466 +{
131467 + return stmt;
131468 +}
131469 +
131470 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
131471 +{
131472 + return stmt;
131473 +}
131474 +#endif
131475 +
131476 +#if BUILDING_GCC_VERSION == 4008
131477 +#define NODE_SYMBOL(node) (&(node)->symbol)
131478 +#define NODE_DECL(node) (node)->symbol.decl
131479 +#endif
131480 +
131481 +#if BUILDING_GCC_VERSION >= 4008
131482 +#define add_referenced_var(var)
131483 +#define mark_sym_for_renaming(var)
131484 +#define varpool_mark_needed_node(node)
131485 +#define create_var_ann(var)
131486 +#define TODO_dump_func 0
131487 +#define TODO_dump_cgraph 0
131488 +#endif
131489 +
131490 +#if BUILDING_GCC_VERSION <= 4009
131491 +#define TODO_verify_il 0
131492 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
131493 +
131494 +#define section_name_prefix LTO_SECTION_NAME_PREFIX
131495 +#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
131496 +
131497 +typedef struct rtx_def rtx_insn;
131498 +
131499 +static inline void set_decl_section_name(tree node, const char *value)
131500 +{
131501 + DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
131502 +}
131503 +#endif
131504 +
131505 +#if BUILDING_GCC_VERSION == 4009
131506 +typedef struct gimple_statement_asm gasm;
131507 +typedef struct gimple_statement_base gassign;
131508 +typedef struct gimple_statement_call gcall;
131509 +typedef struct gimple_statement_base gcond;
131510 +typedef struct gimple_statement_base gdebug;
131511 +typedef struct gimple_statement_phi gphi;
131512 +typedef struct gimple_statement_base greturn;
131513 +
131514 +static inline gasm *as_a_gasm(gimple stmt)
131515 +{
131516 + return as_a<gasm>(stmt);
131517 +}
131518 +
131519 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
131520 +{
131521 + return as_a<const gasm>(stmt);
131522 +}
131523 +
131524 +static inline gassign *as_a_gassign(gimple stmt)
131525 +{
131526 + return stmt;
131527 +}
131528 +
131529 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
131530 +{
131531 + return stmt;
131532 +}
131533 +
131534 +static inline gcall *as_a_gcall(gimple stmt)
131535 +{
131536 + return as_a<gcall>(stmt);
131537 +}
131538 +
131539 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
131540 +{
131541 + return as_a<const gcall>(stmt);
131542 +}
131543 +
131544 +static inline gcond *as_a_gcond(gimple stmt)
131545 +{
131546 + return stmt;
131547 +}
131548 +
131549 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
131550 +{
131551 + return stmt;
131552 +}
131553 +
131554 +static inline gdebug *as_a_gdebug(gimple stmt)
131555 +{
131556 + return stmt;
131557 +}
131558 +
131559 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
131560 +{
131561 + return stmt;
131562 +}
131563 +
131564 +static inline gphi *as_a_gphi(gimple stmt)
131565 +{
131566 + return as_a<gphi>(stmt);
131567 +}
131568 +
131569 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
131570 +{
131571 + return as_a<const gphi>(stmt);
131572 +}
131573 +
131574 +static inline greturn *as_a_greturn(gimple stmt)
131575 +{
131576 + return stmt;
131577 +}
131578 +
131579 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
131580 +{
131581 + return stmt;
131582 +}
131583 +#endif
131584 +
131585 +#if BUILDING_GCC_VERSION >= 4009
131586 +#define TODO_ggc_collect 0
131587 +#define NODE_SYMBOL(node) (node)
131588 +#define NODE_DECL(node) (node)->decl
131589 +#define cgraph_node_name(node) (node)->name()
131590 +#define NODE_IMPLICIT_ALIAS(node) (node)->cpp_implicit_alias
131591 +#endif
131592 +
131593 +#if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000
131594 +// gimple related
131595 +template <>
131596 +template <>
131597 +inline bool is_a_helper<const gassign *>::test(const_gimple gs)
131598 +{
131599 + return gs->code == GIMPLE_ASSIGN;
131600 +}
131601 +#endif
131602 +
131603 +#if BUILDING_GCC_VERSION >= 5000
131604 +#define TODO_verify_ssa TODO_verify_il
131605 +#define TODO_verify_flow TODO_verify_il
131606 +#define TODO_verify_stmts TODO_verify_il
131607 +#define TODO_verify_rtl_sharing TODO_verify_il
131608 +
131609 +//#define TREE_INT_CST_HIGH(NODE) ({ TREE_INT_CST_EXT_NUNITS(NODE) > 1 ? (unsigned HOST_WIDE_INT)TREE_INT_CST_ELT(NODE, 1) : 0; })
131610 +
131611 +#define INSN_DELETED_P(insn) (insn)->deleted()
131612 +
131613 +// symtab/cgraph related
131614 +#define debug_cgraph_node(node) (node)->debug()
131615 +#define cgraph_get_node(decl) cgraph_node::get(decl)
131616 +#define cgraph_get_create_node(decl) cgraph_node::get_create(decl)
131617 +#define cgraph_n_nodes symtab->cgraph_count
131618 +#define cgraph_max_uid symtab->cgraph_max_uid
131619 +#define varpool_get_node(decl) varpool_node::get(decl)
131620 +
131621 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
131622 + (caller)->create_edge((callee), (call_stmt), (count), (freq))
131623 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
131624 + (caller)->create_edge_including_clones((callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
131625 +
131626 +typedef struct cgraph_node *cgraph_node_ptr;
131627 +typedef struct cgraph_edge *cgraph_edge_p;
131628 +typedef struct varpool_node *varpool_node_ptr;
131629 +
131630 +static inline void change_decl_assembler_name(tree decl, tree name)
131631 +{
131632 + symtab->change_decl_assembler_name(decl, name);
131633 +}
131634 +
131635 +static inline void varpool_finalize_decl(tree decl)
131636 +{
131637 + varpool_node::finalize_decl(decl);
131638 +}
131639 +
131640 +static inline void varpool_add_new_variable(tree decl)
131641 +{
131642 + varpool_node::add(decl);
131643 +}
131644 +
131645 +static inline unsigned int rebuild_cgraph_edges(void)
131646 +{
131647 + return cgraph_edge::rebuild_edges();
131648 +}
131649 +
131650 +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability)
131651 +{
131652 + return node->function_symbol(availability);
131653 +}
131654 +
131655 +static inline cgraph_node_ptr cgraph_function_or_thunk_node(cgraph_node_ptr node, enum availability *availability = NULL)
131656 +{
131657 + return node->ultimate_alias_target(availability);
131658 +}
131659 +
131660 +static inline bool cgraph_only_called_directly_p(cgraph_node_ptr node)
131661 +{
131662 + return node->only_called_directly_p();
131663 +}
131664 +
131665 +static inline enum availability cgraph_function_body_availability(cgraph_node_ptr node)
131666 +{
131667 + return node->get_availability();
131668 +}
131669 +
131670 +static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node)
131671 +{
131672 + return node->get_alias_target();
131673 +}
131674 +
131675 +static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data)
131676 +{
131677 + return symtab->add_cgraph_insertion_hook(hook, data);
131678 +}
131679 +
131680 +static inline void cgraph_remove_function_insertion_hook(struct cgraph_node_hook_list *entry)
131681 +{
131682 + symtab->remove_cgraph_insertion_hook(entry);
131683 +}
131684 +
131685 +static inline struct cgraph_node_hook_list *cgraph_add_node_removal_hook(cgraph_node_hook hook, void *data)
131686 +{
131687 + return symtab->add_cgraph_removal_hook(hook, data);
131688 +}
131689 +
131690 +static inline void cgraph_remove_node_removal_hook(struct cgraph_node_hook_list *entry)
131691 +{
131692 + symtab->remove_cgraph_removal_hook(entry);
131693 +}
131694 +
131695 +static inline struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook(cgraph_2node_hook hook, void *data)
131696 +{
131697 + return symtab->add_cgraph_duplication_hook(hook, data);
131698 +}
131699 +
131700 +static inline void cgraph_remove_node_duplication_hook(struct cgraph_2node_hook_list *entry)
131701 +{
131702 + symtab->remove_cgraph_duplication_hook(entry);
131703 +}
131704 +
131705 +#if BUILDING_GCC_VERSION >= 6000
131706 +typedef gimple *gimple_ptr;
131707 +typedef const gimple *const_gimple;
131708 +#define gimple gimple_ptr
131709 +#endif
131710 +
131711 +// gimple related
131712 +static inline gimple gimple_build_assign_with_ops(enum tree_code subcode, tree lhs, tree op1, tree op2 MEM_STAT_DECL)
131713 +{
131714 + return gimple_build_assign(lhs, subcode, op1, op2 PASS_MEM_STAT);
131715 +}
131716 +
131717 +template <>
131718 +template <>
131719 +inline bool is_a_helper<const greturn *>::test(const_gimple gs)
131720 +{
131721 + return gs->code == GIMPLE_RETURN;
131722 +}
131723 +
131724 +static inline gasm *as_a_gasm(gimple stmt)
131725 +{
131726 + return as_a<gasm *>(stmt);
131727 +}
131728 +
131729 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
131730 +{
131731 + return as_a<const gasm *>(stmt);
131732 +}
131733 +
131734 +static inline gassign *as_a_gassign(gimple stmt)
131735 +{
131736 + return as_a<gassign *>(stmt);
131737 +}
131738 +
131739 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
131740 +{
131741 + return as_a<const gassign *>(stmt);
131742 +}
131743 +
131744 +static inline gcall *as_a_gcall(gimple stmt)
131745 +{
131746 + return as_a<gcall *>(stmt);
131747 +}
131748 +
131749 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
131750 +{
131751 + return as_a<const gcall *>(stmt);
131752 +}
131753 +
131754 +static inline gphi *as_a_gphi(gimple stmt)
131755 +{
131756 + return as_a<gphi *>(stmt);
131757 +}
131758 +
131759 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
131760 +{
131761 + return as_a<const gphi *>(stmt);
131762 +}
131763 +
131764 +static inline greturn *as_a_greturn(gimple stmt)
131765 +{
131766 + return as_a<greturn *>(stmt);
131767 +}
131768 +
131769 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
131770 +{
131771 + return as_a<const greturn *>(stmt);
131772 +}
131773 +
131774 +// IPA/LTO related
131775 +#define ipa_ref_list_referring_iterate(L,I,P) (L)->referring.iterate((I), &(P))
131776 +#define ipa_ref_list_reference_iterate(L,I,P) (L)->reference.iterate((I), &(P))
131777 +
131778 +static inline cgraph_node_ptr ipa_ref_referring_node(struct ipa_ref *ref)
131779 +{
131780 + return dyn_cast<cgraph_node_ptr>(ref->referring);
131781 +}
131782 +
131783 +static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimple stmt)
131784 +{
131785 + referring_node->remove_stmt_references(stmt);
131786 +}
131787 +#endif
131788 +
131789 +#if BUILDING_GCC_VERSION < 6000
131790 +#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, pvolatilep, keep_aligning)
131791 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET(VOIDmode, (ARG0), (ARG1))
131792 +#endif
131793 +
131794 +#if BUILDING_GCC_VERSION >= 6000
131795 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET((ARG0), (ARG1))
131796 +#endif
131797 +
131798 +#endif
131799 diff --git a/tools/gcc/gen-random-seed.sh b/tools/gcc/gen-random-seed.sh
131800 new file mode 100644
131801 index 0000000..7514850
131802 --- /dev/null
131803 +++ b/tools/gcc/gen-random-seed.sh
131804 @@ -0,0 +1,8 @@
131805 +#!/bin/sh
131806 +
131807 +if [ ! -f "$1" ]; then
131808 + SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
131809 + echo "const char *randstruct_seed = \"$SEED\";" > "$1"
131810 + HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
131811 + echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
131812 +fi
131813 diff --git a/tools/gcc/initify_plugin.c b/tools/gcc/initify_plugin.c
131814 new file mode 100644
131815 index 0000000..a518073
131816 --- /dev/null
131817 +++ b/tools/gcc/initify_plugin.c
131818 @@ -0,0 +1,581 @@
131819 +/*
131820 + * Copyright 2011-2016 by Emese Revfy <re.emese@gmail.com>
131821 + * Licensed under the GPL v2, or (at your option) v3
131822 + *
131823 + * Homepage:
131824 + * https://github.com/ephox-gcc-plugins/initify
131825 + *
131826 + * Move string constants (__func__ and function string arguments marked by the nocapture attribute)
131827 + * only referenced in __init/__exit functions to __initconst/__exitconst sections.
131828 + *
131829 + * Usage:
131830 + * $ make
131831 + * $ make run
131832 + */
131833 +
131834 +#include "gcc-common.h"
131835 +
131836 +int plugin_is_GPL_compatible;
131837 +
131838 +static struct plugin_info initify_plugin_info = {
131839 + .version = "20160104",
131840 + .help = "initify_plugin\n",
131841 +};
131842 +
131843 +/* nocapture attribute:
131844 + * * to mark nocapture function arguments. If used on a vararg argument it applies to all of them
131845 + * that have no other uses.
131846 + * * attribute value 0 is ignored to allow reusing print attribute arguments
131847 + */
131848 +static tree handle_nocapture_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
131849 +{
131850 + tree orig_attr, arg;
131851 +
131852 + *no_add_attrs = true;
131853 + switch (TREE_CODE(*node)) {
131854 + case FUNCTION_DECL:
131855 + case FUNCTION_TYPE:
131856 + case METHOD_TYPE:
131857 + break;
131858 + case TYPE_DECL: {
131859 + const_tree fntype = TREE_TYPE(*node);
131860 +
131861 + if (TREE_CODE(fntype) == POINTER_TYPE)
131862 + fntype = TREE_TYPE(fntype);
131863 + if (TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE)
131864 + break;
131865 + // FALLTHROUGH
131866 + }
131867 + default:
131868 + debug_tree(*node);
131869 + error("%s: %qE attribute only applies to functions", __func__, name);
131870 + return NULL_TREE;
131871 + }
131872 +
131873 + for (arg = args; arg; arg = TREE_CHAIN(arg)) {
131874 + tree position = TREE_VALUE(arg);
131875 +
131876 + if (TREE_CODE(position) != INTEGER_CST) {
131877 + error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
131878 + return NULL_TREE;
131879 + }
131880 +
131881 + if (tree_int_cst_lt(position, integer_minus_one_node)) {
131882 + error("%qE parameter of the %qE attribute less than 0 (fn: %qE)", position, name, *node);
131883 + return NULL_TREE;
131884 + }
131885 + }
131886 +
131887 + orig_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
131888 + if (orig_attr)
131889 + chainon(TREE_VALUE(orig_attr), args);
131890 + else
131891 + *no_add_attrs = false;
131892 +
131893 + return NULL_TREE;
131894 +}
131895 +
131896 +static struct attribute_spec nocapture_attr = {
131897 + .name = "nocapture",
131898 + .min_length = 1,
131899 + .max_length = -1,
131900 + .decl_required = true,
131901 + .type_required = false,
131902 + .function_type_required = false,
131903 + .handler = handle_nocapture_attribute,
131904 +#if BUILDING_GCC_VERSION >= 4007
131905 + .affects_type_identity = false
131906 +#endif
131907 +};
131908 +
131909 +static void register_attributes(void __unused *event_data, void __unused *data)
131910 +{
131911 + register_attribute(&nocapture_attr);
131912 +}
131913 +
131914 +static const char *get_init_exit_section(const_tree decl)
131915 +{
131916 + const_tree section;
131917 + tree attr_value;
131918 +
131919 + section = lookup_attribute("section", DECL_ATTRIBUTES(decl));
131920 + if (!section)
131921 + return NULL;
131922 +
131923 + gcc_assert(TREE_VALUE(section));
131924 + for (attr_value = TREE_VALUE(section); attr_value; attr_value = TREE_CHAIN(attr_value)) {
131925 + const char *str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
131926 +
131927 + if (!strncmp(str, ".init.", 6))
131928 + return str;
131929 + if (!strncmp(str, ".exit.", 6))
131930 + return str;
131931 + }
131932 +
131933 + return NULL;
131934 +}
131935 +
131936 +static tree get_string_cst(tree var)
131937 +{
131938 + if (var == NULL_TREE)
131939 + return NULL_TREE;
131940 +
131941 + if (TREE_CODE(var) == STRING_CST)
131942 + return var;
131943 +
131944 + switch (TREE_CODE_CLASS(TREE_CODE(var))) {
131945 + case tcc_expression:
131946 + case tcc_reference: {
131947 + int i;
131948 +
131949 + for (i = 0; i < TREE_OPERAND_LENGTH(var); i++) {
131950 + tree ret = get_string_cst(TREE_OPERAND(var, i));
131951 + if (ret != NULL_TREE)
131952 + return ret;
131953 + }
131954 + break;
131955 + }
131956 + default:
131957 + break;
131958 + }
131959 + return NULL_TREE;
131960 +}
131961 +
131962 +static bool set_init_exit_section(tree decl, bool initexit)
131963 +{
131964 + const char *str;
131965 +
131966 + gcc_assert(DECL_P(decl));
131967 +
131968 + str = get_init_exit_section(decl);
131969 + if (str)
131970 + return false;
131971 +
131972 + if (initexit)
131973 + set_decl_section_name(decl, ".init.rodata.str");
131974 + else
131975 + set_decl_section_name(decl, ".exit.rodata.str");
131976 + return true;
131977 +}
131978 +
131979 +static bool is_syscall(const_tree fn)
131980 +{
131981 + if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
131982 + return true;
131983 +
131984 + if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
131985 + return true;
131986 +
131987 + if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
131988 + return true;
131989 +
131990 + return false;
131991 +}
131992 +
131993 +static bool is_nocapture_param(const gcall *stmt, int fn_arg_count)
131994 +{
131995 + const_tree attr, attr_val;
131996 + int fntype_arg_len;
131997 + const_tree fndecl = gimple_call_fndecl(stmt);
131998 +
131999 + gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
132000 +
132001 + if (is_syscall(fndecl))
132002 + return true;
132003 +
132004 + fntype_arg_len = type_num_arguments(TREE_TYPE(fndecl));
132005 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
132006 + if (attr == NULL_TREE)
132007 + return false;
132008 +
132009 + for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
132010 + int attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
132011 +
132012 + if (attr_arg_val == -1)
132013 + return true;
132014 + if (attr_arg_val == fn_arg_count)
132015 + return true;
132016 + if (attr_arg_val > fntype_arg_len && fn_arg_count >= attr_arg_val)
132017 + return true;
132018 + }
132019 +
132020 + return false;
132021 +}
132022 +
132023 +static bool is_same_vardecl(const_tree op, const_tree vardecl)
132024 +{
132025 + if (op == vardecl)
132026 + return true;
132027 + if (!DECL_P(op))
132028 + return false;
132029 + return DECL_NAME(op) && !strcmp(DECL_NAME_POINTER(op), DECL_NAME_POINTER(vardecl));
132030 +}
132031 +
132032 +static bool search_same_vardecl(const_tree value, const_tree vardecl)
132033 +{
132034 + int i;
132035 +
132036 + for (i = 0; i < TREE_OPERAND_LENGTH(value); i++) {
132037 + const_tree op = TREE_OPERAND(value, i);
132038 +
132039 + if (is_same_vardecl(op, vardecl))
132040 + return true;
132041 + return search_same_vardecl(op, vardecl);
132042 + }
132043 + return false;
132044 +}
132045 +
132046 +static bool check_constructor(const_tree constructor, const_tree vardecl)
132047 +{
132048 + unsigned HOST_WIDE_INT cnt __unused;
132049 + tree value;
132050 +
132051 + FOR_EACH_CONSTRUCTOR_VALUE(CONSTRUCTOR_ELTS(constructor), cnt, value) {
132052 + if (TREE_CODE(value) == CONSTRUCTOR)
132053 + return check_constructor(value, vardecl);
132054 + if (is_gimple_constant(value))
132055 + continue;
132056 +
132057 + gcc_assert(TREE_OPERAND_LENGTH(value) > 0);
132058 + if (search_same_vardecl(value, vardecl))
132059 + return true;
132060 + }
132061 + return false;
132062 +}
132063 +
132064 +static bool compare_ops(const_tree vardecl, tree op)
132065 +{
132066 + if (TREE_CODE(op) == TREE_LIST)
132067 + op = TREE_VALUE(op);
132068 + if (TREE_CODE(op) == SSA_NAME)
132069 + op = SSA_NAME_VAR(op);
132070 + if (op == NULL_TREE)
132071 + return false;
132072 +
132073 + switch (TREE_CODE_CLASS(TREE_CODE(op))) {
132074 + case tcc_declaration:
132075 + return is_same_vardecl(op, vardecl);
132076 + case tcc_exceptional:
132077 + return check_constructor(op, vardecl);
132078 + case tcc_constant:
132079 + case tcc_statement:
132080 + case tcc_comparison:
132081 + return false;
132082 + default:
132083 + break;
132084 + }
132085 +
132086 + gcc_assert(TREE_OPERAND_LENGTH(op) > 0);
132087 + return search_same_vardecl(op, vardecl);
132088 +}
132089 +
132090 +static bool search_capture_use(const_tree vardecl, gimple stmt)
132091 +{
132092 + unsigned int i;
132093 +
132094 + for (i = 0; i < gimple_num_ops(stmt); i++) {
132095 + unsigned int arg_count;
132096 + const_tree fndecl;
132097 + tree op = *(gimple_op_ptr(stmt, i));
132098 +
132099 + if (op == NULL_TREE)
132100 + continue;
132101 + if (is_gimple_constant(op))
132102 + continue;
132103 +
132104 + if (!compare_ops(vardecl, op))
132105 + continue;
132106 +
132107 + if (!is_gimple_call(stmt))
132108 + return true;
132109 +
132110 + // return, fndecl
132111 + gcc_assert(i >= 3);
132112 + arg_count = i - 2;
132113 + if (is_nocapture_param(as_a_const_gcall(stmt), (int)arg_count))
132114 + continue;
132115 +
132116 + fndecl = gimple_call_fndecl(stmt);
132117 + gcc_assert(fndecl != NULL_TREE);
132118 +// inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_count);
132119 + return true;
132120 +
132121 + }
132122 + return false;
132123 +}
132124 +
132125 +static bool is_in_capture_init(const_tree vardecl)
132126 +{
132127 + unsigned int i __unused;
132128 + tree var;
132129 +
132130 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
132131 + const_tree initial = DECL_INITIAL(var);
132132 +
132133 + if (DECL_EXTERNAL(var))
132134 + continue;
132135 + if (initial == NULL_TREE)
132136 + continue;
132137 + if (TREE_CODE(initial) != CONSTRUCTOR)
132138 + continue;
132139 +
132140 + gcc_assert(TREE_CODE(TREE_TYPE(var)) == RECORD_TYPE || DECL_P(var));
132141 + if (check_constructor(initial, vardecl))
132142 + return true;
132143 + }
132144 + return false;
132145 +}
132146 +
132147 +static bool has_capture_use_local_var(const_tree vardecl)
132148 +{
132149 + basic_block bb;
132150 +
132151 + if (is_in_capture_init(vardecl))
132152 + return true;
132153 +
132154 + FOR_EACH_BB_FN(bb, cfun) {
132155 + gimple_stmt_iterator gsi;
132156 +
132157 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132158 + if (search_capture_use(vardecl, gsi_stmt(gsi)))
132159 + return true;
132160 + }
132161 + }
132162 +
132163 + return false;
132164 +}
132165 +
132166 +static void search_local_strs(bool initexit)
132167 +{
132168 + unsigned int i __unused;
132169 + tree var;
132170 +
132171 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
132172 + tree str, init_val = DECL_INITIAL(var);
132173 +
132174 + if (init_val == NULL_TREE || init_val == error_mark_node)
132175 + continue;
132176 + // !!! str local vars
132177 + if (strcmp(DECL_NAME_POINTER(var), "__func__"))
132178 + continue;
132179 +
132180 + if (has_capture_use_local_var(var))
132181 + continue;
132182 +
132183 + str = get_string_cst(init_val);
132184 + gcc_assert(str);
132185 +
132186 + if (set_init_exit_section(var, initexit)) {
132187 +// inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
132188 + }
132189 + }
132190 +}
132191 +
132192 +static tree create_tmp_assign(gcall *stmt, unsigned int num)
132193 +{
132194 + tree str, type, decl, arg = gimple_call_arg(stmt, num);
132195 +
132196 + str = get_string_cst(arg);
132197 + decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
132198 +
132199 + type = TREE_TYPE(TREE_TYPE(decl));
132200 + type = build_qualified_type(type, TYPE_QUALS(type) | TYPE_QUAL_CONST);
132201 + TYPE_READONLY(type) = 1;
132202 + TREE_PUBLIC(type) = 0;
132203 +
132204 + DECL_INITIAL(decl) = str;
132205 + DECL_CONTEXT(decl) = current_function_decl;
132206 + DECL_ARTIFICIAL(decl) = 1;
132207 +
132208 + TREE_STATIC(decl) = 1;
132209 + TREE_READONLY(decl) = 1;
132210 + TREE_ADDRESSABLE(decl) = 1;
132211 + TREE_USED(decl) = 1;
132212 +
132213 + add_referenced_var(decl);
132214 + add_local_decl(cfun, decl);
132215 +
132216 + varpool_add_new_variable(decl);
132217 + varpool_mark_needed_node(varpool_node(decl));
132218 +
132219 + DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
132220 + BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
132221 +
132222 + decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
132223 + gimple_call_set_arg(stmt, num, decl);
132224 + update_stmt(stmt);
132225 +
132226 + return TREE_OPERAND(decl, 0);
132227 +}
132228 +
132229 +static void search_str_param(gcall *stmt, bool initexit)
132230 +{
132231 + unsigned int num;
132232 +
132233 + for (num = 0; num < gimple_call_num_args(stmt); num++) {
132234 + tree var, str, arg = gimple_call_arg(stmt, num);
132235 +
132236 + str = get_string_cst(arg);
132237 + if (str == NULL_TREE)
132238 + continue;
132239 +
132240 + if (!is_nocapture_param(stmt, num + 1))
132241 + continue;
132242 +
132243 + var = create_tmp_assign(stmt, num);
132244 + if (set_init_exit_section(var, initexit)) {
132245 +// inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, str);
132246 + }
132247 + }
132248 +}
132249 +
132250 +static bool has_nocapture_param(const gcall *stmt)
132251 +{
132252 + const_tree attr, fndecl = gimple_call_fndecl(stmt);
132253 +
132254 + if (fndecl == NULL_TREE)
132255 + return false;
132256 +
132257 + if (is_syscall(fndecl))
132258 + return true;
132259 +
132260 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
132261 + return attr != NULL_TREE;
132262 +}
132263 +
132264 +static void search_const_strs(bool initexit)
132265 +{
132266 + basic_block bb;
132267 +
132268 + FOR_EACH_BB_FN(bb, cfun) {
132269 + gimple_stmt_iterator gsi;
132270 +
132271 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132272 + gcall *call_stmt;
132273 + gimple stmt = gsi_stmt(gsi);
132274 +
132275 + if (!is_gimple_call(stmt))
132276 + continue;
132277 +
132278 + call_stmt = as_a_gcall(stmt);
132279 + if (has_nocapture_param(call_stmt))
132280 + search_str_param(call_stmt, initexit);
132281 + }
132282 + }
132283 +}
132284 +
132285 +static unsigned int handle_function(void)
132286 +{
132287 + bool initexit;
132288 + const char *section = get_init_exit_section(current_function_decl);
132289 +
132290 + if (!section)
132291 + return 0;
132292 +
132293 + initexit = !strncmp(section, ".init.", 6);
132294 + search_local_strs(initexit);
132295 + search_const_strs(initexit);
132296 +
132297 + return 0;
132298 +}
132299 +
132300 +#if BUILDING_GCC_VERSION >= 4009
132301 +namespace {
132302 +static const struct pass_data initify_plugin_pass_data = {
132303 +#else
132304 +static struct gimple_opt_pass initify_plugin_pass = {
132305 + .pass = {
132306 +#endif
132307 + .type = GIMPLE_PASS,
132308 + .name = "initify_plugin",
132309 +#if BUILDING_GCC_VERSION >= 4008
132310 + .optinfo_flags = OPTGROUP_NONE,
132311 +#endif
132312 +#if BUILDING_GCC_VERSION >= 5000
132313 +#elif BUILDING_GCC_VERSION >= 4009
132314 + .has_gate = false,
132315 + .has_execute = true,
132316 +#else
132317 + .gate = NULL,
132318 + .execute = handle_function,
132319 + .sub = NULL,
132320 + .next = NULL,
132321 + .static_pass_number = 0,
132322 +#endif
132323 + .tv_id = TV_NONE,
132324 + .properties_required = 0,
132325 + .properties_provided = 0,
132326 + .properties_destroyed = 0,
132327 + .todo_flags_start = 0,
132328 + .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
132329 +#if BUILDING_GCC_VERSION < 4009
132330 + }
132331 +#endif
132332 +};
132333 +
132334 +#if BUILDING_GCC_VERSION >= 4009
132335 +class initify_plugin_pass : public gimple_opt_pass {
132336 +public:
132337 + initify_plugin_pass() : gimple_opt_pass(initify_plugin_pass_data, g) {}
132338 +#if BUILDING_GCC_VERSION >= 5000
132339 + virtual unsigned int execute(function *) { return handle_function(); }
132340 +#else
132341 + unsigned int execute() { return handle_function(); }
132342 +#endif
132343 +};
132344 +}
132345 +
132346 +static struct opt_pass *make_initify_plugin_pass(void)
132347 +{
132348 + return new initify_plugin_pass();
132349 +}
132350 +#else
132351 +static struct opt_pass *make_initify_plugin_pass(void)
132352 +{
132353 + return &initify_plugin_pass.pass;
132354 +}
132355 +#endif
132356 +
132357 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
132358 +
132359 +static unsigned int initify_section_type_flags(tree decl, const char *name, int reloc)
132360 +{
132361 + if (!strcmp(name, ".init.rodata.str") || !strcmp(name, ".exit.rodata.str")) {
132362 + gcc_assert(TREE_CODE(decl) == VAR_DECL);
132363 + gcc_assert(DECL_INITIAL(decl));
132364 + gcc_assert(TREE_CODE(DECL_INITIAL(decl)) == STRING_CST);
132365 +
132366 + return 1 | SECTION_MERGE | SECTION_STRINGS;
132367 + }
132368 +
132369 + return old_section_type_flags(decl, name, reloc);
132370 +}
132371 +
132372 +static void initify_start_unit(void __unused *gcc_data, void __unused *user_data)
132373 +{
132374 + old_section_type_flags = targetm.section_type_flags;
132375 + targetm.section_type_flags = initify_section_type_flags;
132376 +}
132377 +
132378 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
132379 +{
132380 + const char * const plugin_name = plugin_info->base_name;
132381 + struct register_pass_info initify_plugin_pass_info;
132382 +
132383 + initify_plugin_pass_info.pass = make_initify_plugin_pass();
132384 + initify_plugin_pass_info.reference_pass_name = "nrv";
132385 + initify_plugin_pass_info.ref_pass_instance_number = 1;
132386 + initify_plugin_pass_info.pos_op = PASS_POS_INSERT_AFTER;
132387 +
132388 + if (!plugin_default_version_check(version, &gcc_version)) {
132389 + error(G_("incompatible gcc/plugin versions"));
132390 + return 1;
132391 + }
132392 +
132393 + register_callback(plugin_name, PLUGIN_INFO, NULL, &initify_plugin_info);
132394 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_plugin_pass_info);
132395 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
132396 + register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
132397 +
132398 + return 0;
132399 +}
132400 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
132401 new file mode 100644
132402 index 0000000..457d54e
132403 --- /dev/null
132404 +++ b/tools/gcc/kallocstat_plugin.c
132405 @@ -0,0 +1,188 @@
132406 +/*
132407 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
132408 + * Licensed under the GPL v2
132409 + *
132410 + * Note: the choice of the license means that the compilation process is
132411 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
132412 + * but for the kernel it doesn't matter since it doesn't link against
132413 + * any of the gcc libraries
132414 + *
132415 + * gcc plugin to find the distribution of k*alloc sizes
132416 + *
132417 + * TODO:
132418 + *
132419 + * BUGS:
132420 + * - none known
132421 + */
132422 +
132423 +#include "gcc-common.h"
132424 +
132425 +int plugin_is_GPL_compatible;
132426 +
132427 +static struct plugin_info kallocstat_plugin_info = {
132428 + .version = "201401260140",
132429 + .help = NULL
132430 +};
132431 +
132432 +static const char * const kalloc_functions[] = {
132433 + "__kmalloc",
132434 + "kmalloc",
132435 + "kmalloc_large",
132436 + "kmalloc_node",
132437 + "kmalloc_order",
132438 + "kmalloc_order_trace",
132439 + "kmalloc_slab",
132440 + "kzalloc",
132441 + "kzalloc_node",
132442 +};
132443 +
132444 +static bool is_kalloc(const char *fnname)
132445 +{
132446 + size_t i;
132447 +
132448 + for (i = 0; i < ARRAY_SIZE(kalloc_functions); i++)
132449 + if (!strcmp(fnname, kalloc_functions[i]))
132450 + return true;
132451 + return false;
132452 +}
132453 +
132454 +static unsigned int execute_kallocstat(void)
132455 +{
132456 + basic_block bb;
132457 +
132458 + // 1. loop through BBs and GIMPLE statements
132459 + FOR_EACH_BB_FN(bb, cfun) {
132460 + gimple_stmt_iterator gsi;
132461 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132462 + // gimple match:
132463 + tree fndecl, size;
132464 + gimple stmt;
132465 + const char *fnname;
132466 +
132467 + // is it a call
132468 + stmt = gsi_stmt(gsi);
132469 + if (!is_gimple_call(stmt))
132470 + continue;
132471 + fndecl = gimple_call_fndecl(stmt);
132472 + if (fndecl == NULL_TREE)
132473 + continue;
132474 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
132475 + continue;
132476 +
132477 + // is it a call to k*alloc
132478 + fnname = DECL_NAME_POINTER(fndecl);
132479 + if (!is_kalloc(fnname))
132480 + continue;
132481 +
132482 + // is the size arg const or the result of a simple const assignment
132483 + size = gimple_call_arg(stmt, 0);
132484 + while (true) {
132485 + expanded_location xloc;
132486 + size_t size_val;
132487 +
132488 + if (TREE_CONSTANT(size)) {
132489 + xloc = expand_location(gimple_location(stmt));
132490 + if (!xloc.file)
132491 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
132492 + size_val = TREE_INT_CST_LOW(size);
132493 + fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
132494 + break;
132495 + }
132496 +
132497 + if (TREE_CODE(size) != SSA_NAME)
132498 + break;
132499 + stmt = SSA_NAME_DEF_STMT(size);
132500 +//debug_gimple_stmt(stmt);
132501 +//debug_tree(size);
132502 + if (!stmt || !is_gimple_assign(stmt))
132503 + break;
132504 + if (gimple_num_ops(stmt) != 2)
132505 + break;
132506 + size = gimple_assign_rhs1(stmt);
132507 + }
132508 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
132509 +//debug_tree(gimple_call_fn(call_stmt));
132510 +//print_node(stderr, "pax", fndecl, 4);
132511 + }
132512 + }
132513 +
132514 + return 0;
132515 +}
132516 +
132517 +#if BUILDING_GCC_VERSION >= 4009
132518 +namespace {
132519 +static const struct pass_data kallocstat_pass_data = {
132520 +#else
132521 +static struct gimple_opt_pass kallocstat_pass = {
132522 + .pass = {
132523 +#endif
132524 + .type = GIMPLE_PASS,
132525 + .name = "kallocstat",
132526 +#if BUILDING_GCC_VERSION >= 4008
132527 + .optinfo_flags = OPTGROUP_NONE,
132528 +#endif
132529 +#if BUILDING_GCC_VERSION >= 5000
132530 +#elif BUILDING_GCC_VERSION == 4009
132531 + .has_gate = false,
132532 + .has_execute = true,
132533 +#else
132534 + .gate = NULL,
132535 + .execute = execute_kallocstat,
132536 + .sub = NULL,
132537 + .next = NULL,
132538 + .static_pass_number = 0,
132539 +#endif
132540 + .tv_id = TV_NONE,
132541 + .properties_required = 0,
132542 + .properties_provided = 0,
132543 + .properties_destroyed = 0,
132544 + .todo_flags_start = 0,
132545 + .todo_flags_finish = 0
132546 +#if BUILDING_GCC_VERSION < 4009
132547 + }
132548 +#endif
132549 +};
132550 +
132551 +#if BUILDING_GCC_VERSION >= 4009
132552 +class kallocstat_pass : public gimple_opt_pass {
132553 +public:
132554 + kallocstat_pass() : gimple_opt_pass(kallocstat_pass_data, g) {}
132555 +#if BUILDING_GCC_VERSION >= 5000
132556 + virtual unsigned int execute(function *) { return execute_kallocstat(); }
132557 +#else
132558 + unsigned int execute() { return execute_kallocstat(); }
132559 +#endif
132560 +};
132561 +}
132562 +
132563 +static opt_pass *make_kallocstat_pass(void)
132564 +{
132565 + return new kallocstat_pass();
132566 +}
132567 +#else
132568 +static struct opt_pass *make_kallocstat_pass(void)
132569 +{
132570 + return &kallocstat_pass.pass;
132571 +}
132572 +#endif
132573 +
132574 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
132575 +{
132576 + const char * const plugin_name = plugin_info->base_name;
132577 + struct register_pass_info kallocstat_pass_info;
132578 +
132579 + kallocstat_pass_info.pass = make_kallocstat_pass();
132580 + kallocstat_pass_info.reference_pass_name = "ssa";
132581 + kallocstat_pass_info.ref_pass_instance_number = 1;
132582 + kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
132583 +
132584 + if (!plugin_default_version_check(version, &gcc_version)) {
132585 + error(G_("incompatible gcc/plugin versions"));
132586 + return 1;
132587 + }
132588 +
132589 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kallocstat_plugin_info);
132590 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kallocstat_pass_info);
132591 +
132592 + return 0;
132593 +}
132594 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
132595 new file mode 100644
132596 index 0000000..6b8ef9a
132597 --- /dev/null
132598 +++ b/tools/gcc/kernexec_plugin.c
132599 @@ -0,0 +1,549 @@
132600 +/*
132601 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
132602 + * Licensed under the GPL v2
132603 + *
132604 + * Note: the choice of the license means that the compilation process is
132605 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
132606 + * but for the kernel it doesn't matter since it doesn't link against
132607 + * any of the gcc libraries
132608 + *
132609 + * gcc plugin to make KERNEXEC/amd64 almost as good as it is on i386
132610 + *
132611 + * TODO:
132612 + *
132613 + * BUGS:
132614 + * - none known
132615 + */
132616 +
132617 +#include "gcc-common.h"
132618 +
132619 +int plugin_is_GPL_compatible;
132620 +
132621 +static struct plugin_info kernexec_plugin_info = {
132622 + .version = "201401260140",
132623 + .help = "method=[bts|or]\tinstrumentation method\n"
132624 +};
132625 +
132626 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
132627 +static void (*kernexec_instrument_retaddr)(rtx);
132628 +
132629 +/*
132630 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
132631 + */
132632 +static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
132633 +{
132634 + gimple stmt;
132635 + gasm *asm_movabs_stmt;
132636 +
132637 + // build asm volatile("movabs $0x8000000000000000, %%r12\n\t" : : : );
132638 + stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
132639 + asm_movabs_stmt = as_a_gasm(stmt);
132640 + gimple_asm_set_volatile(asm_movabs_stmt, true);
132641 + gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
132642 + update_stmt(asm_movabs_stmt);
132643 +}
132644 +
132645 +/*
132646 + * find all asm() stmts that clobber r12 and add a reload of r12
132647 + */
132648 +static unsigned int execute_kernexec_reload(void)
132649 +{
132650 + basic_block bb;
132651 +
132652 + // 1. loop through BBs and GIMPLE statements
132653 + FOR_EACH_BB_FN(bb, cfun) {
132654 + gimple_stmt_iterator gsi;
132655 +
132656 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132657 + // gimple match: __asm__ ("" : : : "r12");
132658 + gimple stmt;
132659 + gasm *asm_stmt;
132660 + size_t nclobbers;
132661 +
132662 + // is it an asm ...
132663 + stmt = gsi_stmt(gsi);
132664 + if (gimple_code(stmt) != GIMPLE_ASM)
132665 + continue;
132666 +
132667 + asm_stmt = as_a_gasm(stmt);
132668 +
132669 + // ... clobbering r12
132670 + nclobbers = gimple_asm_nclobbers(asm_stmt);
132671 + while (nclobbers--) {
132672 + tree op = gimple_asm_clobber_op(asm_stmt, nclobbers);
132673 + if (strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "r12"))
132674 + continue;
132675 + kernexec_reload_fptr_mask(&gsi);
132676 +//print_gimple_stmt(stderr, asm_stmt, 0, TDF_LINENO);
132677 + break;
132678 + }
132679 + }
132680 + }
132681 +
132682 + return 0;
132683 +}
132684 +
132685 +/*
132686 + * add special KERNEXEC instrumentation: force MSB of fptr to 1, which will produce
132687 + * a non-canonical address from a userland ptr and will just trigger a GPF on dereference
132688 + */
132689 +static void kernexec_instrument_fptr_bts(gimple_stmt_iterator *gsi)
132690 +{
132691 + gimple assign_intptr, assign_new_fptr;
132692 + gcall *call_stmt;
132693 + tree intptr, orptr, old_fptr, new_fptr, kernexec_mask;
132694 +
132695 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
132696 + old_fptr = gimple_call_fn(call_stmt);
132697 +
132698 + // create temporary unsigned long variable used for bitops and cast fptr to it
132699 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
132700 + add_referenced_var(intptr);
132701 + intptr = make_ssa_name(intptr, NULL);
132702 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
132703 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
132704 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
132705 + update_stmt(assign_intptr);
132706 +
132707 + // apply logical or to temporary unsigned long and bitmask
132708 + kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0x8000000000000000LL);
132709 +// kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0xffffffff80000000LL);
132710 + orptr = fold_build2(BIT_IOR_EXPR, long_long_unsigned_type_node, intptr, kernexec_mask);
132711 + intptr = make_ssa_name(SSA_NAME_VAR(intptr), NULL);
132712 + assign_intptr = gimple_build_assign(intptr, orptr);
132713 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
132714 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
132715 + update_stmt(assign_intptr);
132716 +
132717 + // cast temporary unsigned long back to a temporary fptr variable
132718 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
132719 + add_referenced_var(new_fptr);
132720 + new_fptr = make_ssa_name(new_fptr, NULL);
132721 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
132722 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
132723 + gsi_insert_before(gsi, assign_new_fptr, GSI_SAME_STMT);
132724 + update_stmt(assign_new_fptr);
132725 +
132726 + // replace call stmt fn with the new fptr
132727 + gimple_call_set_fn(call_stmt, new_fptr);
132728 + update_stmt(call_stmt);
132729 +}
132730 +
132731 +static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
132732 +{
132733 + gimple stmt;
132734 + gasm *asm_or_stmt;
132735 + gcall *call_stmt;
132736 + tree old_fptr, new_fptr, input, output;
132737 +#if BUILDING_GCC_VERSION <= 4007
132738 + VEC(tree, gc) *inputs = NULL;
132739 + VEC(tree, gc) *outputs = NULL;
132740 +#else
132741 + vec<tree, va_gc> *inputs = NULL;
132742 + vec<tree, va_gc> *outputs = NULL;
132743 +#endif
132744 +
132745 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
132746 + old_fptr = gimple_call_fn(call_stmt);
132747 +
132748 + // create temporary fptr variable
132749 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
132750 + add_referenced_var(new_fptr);
132751 + new_fptr = make_ssa_name(new_fptr, NULL);
132752 +
132753 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
132754 + input = build_tree_list(NULL_TREE, build_string(2, "0"));
132755 + input = chainon(NULL_TREE, build_tree_list(input, old_fptr));
132756 + output = build_tree_list(NULL_TREE, build_string(3, "=r"));
132757 + output = chainon(NULL_TREE, build_tree_list(output, new_fptr));
132758 +#if BUILDING_GCC_VERSION <= 4007
132759 + VEC_safe_push(tree, gc, inputs, input);
132760 + VEC_safe_push(tree, gc, outputs, output);
132761 +#else
132762 + vec_safe_push(inputs, input);
132763 + vec_safe_push(outputs, output);
132764 +#endif
132765 + stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
132766 + asm_or_stmt = as_a_gasm(stmt);
132767 + SSA_NAME_DEF_STMT(new_fptr) = asm_or_stmt;
132768 + gimple_asm_set_volatile(asm_or_stmt, true);
132769 + gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
132770 + update_stmt(asm_or_stmt);
132771 +
132772 + // replace call stmt fn with the new fptr
132773 + gimple_call_set_fn(call_stmt, new_fptr);
132774 + update_stmt(call_stmt);
132775 +}
132776 +
132777 +/*
132778 + * find all C level function pointer dereferences and forcibly set the highest bit of the pointer
132779 + */
132780 +static unsigned int execute_kernexec_fptr(void)
132781 +{
132782 + basic_block bb;
132783 +
132784 + // 1. loop through BBs and GIMPLE statements
132785 + FOR_EACH_BB_FN(bb, cfun) {
132786 + gimple_stmt_iterator gsi;
132787 +
132788 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132789 + // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D));
132790 + tree fn;
132791 + gimple stmt;
132792 + gcall *call_stmt;
132793 +
132794 + // is it a call ...
132795 + stmt = gsi_stmt(gsi);
132796 + if (!is_gimple_call(stmt))
132797 + continue;
132798 + call_stmt = as_a_gcall(stmt);
132799 + fn = gimple_call_fn(call_stmt);
132800 + if (!fn)
132801 + continue;
132802 + if (TREE_CODE(fn) == ADDR_EXPR)
132803 + continue;
132804 + if (TREE_CODE(fn) != SSA_NAME)
132805 + gcc_unreachable();
132806 +
132807 + // ... through a function pointer
132808 + if (SSA_NAME_VAR(fn) != NULL_TREE) {
132809 + fn = SSA_NAME_VAR(fn);
132810 + if (TREE_CODE(fn) != VAR_DECL && TREE_CODE(fn) != PARM_DECL) {
132811 + debug_tree(fn);
132812 + gcc_unreachable();
132813 + }
132814 + }
132815 + fn = TREE_TYPE(fn);
132816 + if (TREE_CODE(fn) != POINTER_TYPE)
132817 + continue;
132818 + fn = TREE_TYPE(fn);
132819 + if (TREE_CODE(fn) != FUNCTION_TYPE)
132820 + continue;
132821 +
132822 + kernexec_instrument_fptr(&gsi);
132823 +
132824 +//debug_tree(gimple_call_fn(call_stmt));
132825 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
132826 + }
132827 + }
132828 +
132829 + return 0;
132830 +}
132831 +
132832 +// add special KERNEXEC instrumentation: btsq $63,(%rsp) just before retn
132833 +static void kernexec_instrument_retaddr_bts(rtx insn)
132834 +{
132835 + rtx btsq;
132836 + rtvec argvec, constraintvec, labelvec;
132837 +
132838 + // create asm volatile("btsq $63,(%%rsp)":::)
132839 + argvec = rtvec_alloc(0);
132840 + constraintvec = rtvec_alloc(0);
132841 + labelvec = rtvec_alloc(0);
132842 + btsq = gen_rtx_ASM_OPERANDS(VOIDmode, "btsq $63,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
132843 + MEM_VOLATILE_P(btsq) = 1;
132844 +// RTX_FRAME_RELATED_P(btsq) = 1; // not for ASM_OPERANDS
132845 + emit_insn_before(btsq, insn);
132846 +}
132847 +
132848 +// add special KERNEXEC instrumentation: orq %r12,(%rsp) just before retn
132849 +static void kernexec_instrument_retaddr_or(rtx insn)
132850 +{
132851 + rtx orq;
132852 + rtvec argvec, constraintvec, labelvec;
132853 +
132854 + // create asm volatile("orq %%r12,(%%rsp)":::)
132855 + argvec = rtvec_alloc(0);
132856 + constraintvec = rtvec_alloc(0);
132857 + labelvec = rtvec_alloc(0);
132858 + orq = gen_rtx_ASM_OPERANDS(VOIDmode, "orq %%r12,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
132859 + MEM_VOLATILE_P(orq) = 1;
132860 +// RTX_FRAME_RELATED_P(orq) = 1; // not for ASM_OPERANDS
132861 + emit_insn_before(orq, insn);
132862 +}
132863 +
132864 +/*
132865 + * find all asm level function returns and forcibly set the highest bit of the return address
132866 + */
132867 +static unsigned int execute_kernexec_retaddr(void)
132868 +{
132869 + rtx_insn *insn;
132870 +
132871 +// if (stack_realign_drap)
132872 +// inform(DECL_SOURCE_LOCATION(current_function_decl), "drap detected in %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
132873 +
132874 + // 1. find function returns
132875 + for (insn = get_insns(); insn; insn = NEXT_INSN(insn)) {
132876 + // rtl match: (jump_insn 41 40 42 2 (return) fptr.c:42 634 {return_internal} (nil))
132877 + // (jump_insn 12 9 11 2 (parallel [ (return) (unspec [ (0) ] UNSPEC_REP) ]) fptr.c:46 635 {return_internal_long} (nil))
132878 + // (jump_insn 97 96 98 6 (simple_return) fptr.c:50 -1 (nil) -> simple_return)
132879 + rtx body;
132880 +
132881 + // is it a retn
132882 + if (!JUMP_P(insn))
132883 + continue;
132884 + body = PATTERN(insn);
132885 + if (GET_CODE(body) == PARALLEL)
132886 + body = XVECEXP(body, 0, 0);
132887 + if (!ANY_RETURN_P(body))
132888 + continue;
132889 + kernexec_instrument_retaddr(insn);
132890 + }
132891 +
132892 +// print_simple_rtl(stderr, get_insns());
132893 +// print_rtl(stderr, get_insns());
132894 +
132895 + return 0;
132896 +}
132897 +
132898 +static bool kernexec_cmodel_check(void)
132899 +{
132900 + tree section;
132901 +
132902 + if (ix86_cmodel != CM_KERNEL)
132903 + return false;
132904 +
132905 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
132906 + if (!section || !TREE_VALUE(section))
132907 + return true;
132908 +
132909 + section = TREE_VALUE(TREE_VALUE(section));
132910 + if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
132911 + return true;
132912 +
132913 + return false;
132914 +}
132915 +
132916 +#if BUILDING_GCC_VERSION >= 4009
132917 +namespace {
132918 +static const struct pass_data kernexec_reload_pass_data = {
132919 +#else
132920 +static struct gimple_opt_pass kernexec_reload_pass = {
132921 + .pass = {
132922 +#endif
132923 + .type = GIMPLE_PASS,
132924 + .name = "kernexec_reload",
132925 +#if BUILDING_GCC_VERSION >= 4008
132926 + .optinfo_flags = OPTGROUP_NONE,
132927 +#endif
132928 +#if BUILDING_GCC_VERSION >= 5000
132929 +#elif BUILDING_GCC_VERSION == 4009
132930 + .has_gate = true,
132931 + .has_execute = true,
132932 +#else
132933 + .gate = kernexec_cmodel_check,
132934 + .execute = execute_kernexec_reload,
132935 + .sub = NULL,
132936 + .next = NULL,
132937 + .static_pass_number = 0,
132938 +#endif
132939 + .tv_id = TV_NONE,
132940 + .properties_required = 0,
132941 + .properties_provided = 0,
132942 + .properties_destroyed = 0,
132943 + .todo_flags_start = 0,
132944 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
132945 +#if BUILDING_GCC_VERSION < 4009
132946 + }
132947 +#endif
132948 +};
132949 +
132950 +#if BUILDING_GCC_VERSION >= 4009
132951 +static const struct pass_data kernexec_fptr_pass_data = {
132952 +#else
132953 +static struct gimple_opt_pass kernexec_fptr_pass = {
132954 + .pass = {
132955 +#endif
132956 + .type = GIMPLE_PASS,
132957 + .name = "kernexec_fptr",
132958 +#if BUILDING_GCC_VERSION >= 4008
132959 + .optinfo_flags = OPTGROUP_NONE,
132960 +#endif
132961 +#if BUILDING_GCC_VERSION >= 5000
132962 +#elif BUILDING_GCC_VERSION == 4009
132963 + .has_gate = true,
132964 + .has_execute = true,
132965 +#else
132966 + .gate = kernexec_cmodel_check,
132967 + .execute = execute_kernexec_fptr,
132968 + .sub = NULL,
132969 + .next = NULL,
132970 + .static_pass_number = 0,
132971 +#endif
132972 + .tv_id = TV_NONE,
132973 + .properties_required = 0,
132974 + .properties_provided = 0,
132975 + .properties_destroyed = 0,
132976 + .todo_flags_start = 0,
132977 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
132978 +#if BUILDING_GCC_VERSION < 4009
132979 + }
132980 +#endif
132981 +};
132982 +
132983 +#if BUILDING_GCC_VERSION >= 4009
132984 +static const struct pass_data kernexec_retaddr_pass_data = {
132985 +#else
132986 +static struct rtl_opt_pass kernexec_retaddr_pass = {
132987 + .pass = {
132988 +#endif
132989 + .type = RTL_PASS,
132990 + .name = "kernexec_retaddr",
132991 +#if BUILDING_GCC_VERSION >= 4008
132992 + .optinfo_flags = OPTGROUP_NONE,
132993 +#endif
132994 +#if BUILDING_GCC_VERSION >= 5000
132995 +#elif BUILDING_GCC_VERSION == 4009
132996 + .has_gate = true,
132997 + .has_execute = true,
132998 +#else
132999 + .gate = kernexec_cmodel_check,
133000 + .execute = execute_kernexec_retaddr,
133001 + .sub = NULL,
133002 + .next = NULL,
133003 + .static_pass_number = 0,
133004 +#endif
133005 + .tv_id = TV_NONE,
133006 + .properties_required = 0,
133007 + .properties_provided = 0,
133008 + .properties_destroyed = 0,
133009 + .todo_flags_start = 0,
133010 + .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
133011 +#if BUILDING_GCC_VERSION < 4009
133012 + }
133013 +#endif
133014 +};
133015 +
133016 +#if BUILDING_GCC_VERSION >= 4009
133017 +class kernexec_reload_pass : public gimple_opt_pass {
133018 +public:
133019 + kernexec_reload_pass() : gimple_opt_pass(kernexec_reload_pass_data, g) {}
133020 +#if BUILDING_GCC_VERSION >= 5000
133021 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
133022 + virtual unsigned int execute(function *) { return execute_kernexec_reload(); }
133023 +#else
133024 + bool gate() { return kernexec_cmodel_check(); }
133025 + unsigned int execute() { return execute_kernexec_reload(); }
133026 +#endif
133027 +};
133028 +
133029 +class kernexec_fptr_pass : public gimple_opt_pass {
133030 +public:
133031 + kernexec_fptr_pass() : gimple_opt_pass(kernexec_fptr_pass_data, g) {}
133032 +#if BUILDING_GCC_VERSION >= 5000
133033 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
133034 + virtual unsigned int execute(function *) { return execute_kernexec_fptr(); }
133035 +#else
133036 + bool gate() { return kernexec_cmodel_check(); }
133037 + unsigned int execute() { return execute_kernexec_fptr(); }
133038 +#endif
133039 +};
133040 +
133041 +class kernexec_retaddr_pass : public rtl_opt_pass {
133042 +public:
133043 + kernexec_retaddr_pass() : rtl_opt_pass(kernexec_retaddr_pass_data, g) {}
133044 +#if BUILDING_GCC_VERSION >= 5000
133045 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
133046 + virtual unsigned int execute(function *) { return execute_kernexec_retaddr(); }
133047 +#else
133048 + bool gate() { return kernexec_cmodel_check(); }
133049 + unsigned int execute() { return execute_kernexec_retaddr(); }
133050 +#endif
133051 +};
133052 +}
133053 +
133054 +static opt_pass *make_kernexec_reload_pass(void)
133055 +{
133056 + return new kernexec_reload_pass();
133057 +}
133058 +
133059 +static opt_pass *make_kernexec_fptr_pass(void)
133060 +{
133061 + return new kernexec_fptr_pass();
133062 +}
133063 +
133064 +static opt_pass *make_kernexec_retaddr_pass(void)
133065 +{
133066 + return new kernexec_retaddr_pass();
133067 +}
133068 +#else
133069 +static struct opt_pass *make_kernexec_reload_pass(void)
133070 +{
133071 + return &kernexec_reload_pass.pass;
133072 +}
133073 +
133074 +static struct opt_pass *make_kernexec_fptr_pass(void)
133075 +{
133076 + return &kernexec_fptr_pass.pass;
133077 +}
133078 +
133079 +static struct opt_pass *make_kernexec_retaddr_pass(void)
133080 +{
133081 + return &kernexec_retaddr_pass.pass;
133082 +}
133083 +#endif
133084 +
133085 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
133086 +{
133087 + const char * const plugin_name = plugin_info->base_name;
133088 + const int argc = plugin_info->argc;
133089 + const struct plugin_argument * const argv = plugin_info->argv;
133090 + int i;
133091 + struct register_pass_info kernexec_reload_pass_info;
133092 + struct register_pass_info kernexec_fptr_pass_info;
133093 + struct register_pass_info kernexec_retaddr_pass_info;
133094 +
133095 + kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
133096 + kernexec_reload_pass_info.reference_pass_name = "ssa";
133097 + kernexec_reload_pass_info.ref_pass_instance_number = 1;
133098 + kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
133099 +
133100 + kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
133101 + kernexec_fptr_pass_info.reference_pass_name = "ssa";
133102 + kernexec_fptr_pass_info.ref_pass_instance_number = 1;
133103 + kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
133104 +
133105 + kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
133106 + kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
133107 + kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
133108 + kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
133109 +
133110 + if (!plugin_default_version_check(version, &gcc_version)) {
133111 + error(G_("incompatible gcc/plugin versions"));
133112 + return 1;
133113 + }
133114 +
133115 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kernexec_plugin_info);
133116 +
133117 + if (TARGET_64BIT == 0)
133118 + return 0;
133119 +
133120 + for (i = 0; i < argc; ++i) {
133121 + if (!strcmp(argv[i].key, "method")) {
133122 + if (!argv[i].value) {
133123 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
133124 + continue;
133125 + }
133126 + if (!strcmp(argv[i].value, "bts")) {
133127 + kernexec_instrument_fptr = kernexec_instrument_fptr_bts;
133128 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_bts;
133129 + } else if (!strcmp(argv[i].value, "or")) {
133130 + kernexec_instrument_fptr = kernexec_instrument_fptr_or;
133131 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_or;
133132 + fix_register("r12", 1, 1);
133133 + } else
133134 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
133135 + continue;
133136 + }
133137 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
133138 + }
133139 + if (!kernexec_instrument_fptr || !kernexec_instrument_retaddr)
133140 + error(G_("no instrumentation method was selected via '-fplugin-arg-%s-method'"), plugin_name);
133141 +
133142 + if (kernexec_instrument_fptr == kernexec_instrument_fptr_or)
133143 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_reload_pass_info);
133144 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_fptr_pass_info);
133145 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_retaddr_pass_info);
133146 +
133147 + return 0;
133148 +}
133149 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
133150 new file mode 100644
133151 index 0000000..161ab18
133152 --- /dev/null
133153 +++ b/tools/gcc/latent_entropy_plugin.c
133154 @@ -0,0 +1,474 @@
133155 +/*
133156 + * Copyright 2012-2015 by the PaX Team <pageexec@freemail.hu>
133157 + * Licensed under the GPL v2
133158 + *
133159 + * Note: the choice of the license means that the compilation process is
133160 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
133161 + * but for the kernel it doesn't matter since it doesn't link against
133162 + * any of the gcc libraries
133163 + *
133164 + * gcc plugin to help generate a little bit of entropy from program state,
133165 + * used throughout the uptime of the kernel
133166 + *
133167 + * TODO:
133168 + * - add ipa pass to identify not explicitly marked candidate functions
133169 + * - mix in more program state (function arguments/return values, loop variables, etc)
133170 + * - more instrumentation control via attribute parameters
133171 + *
133172 + * BUGS:
133173 + * - none known
133174 + */
133175 +
133176 +#include "gcc-common.h"
133177 +
133178 +int plugin_is_GPL_compatible;
133179 +
133180 +static GTY(()) tree latent_entropy_decl;
133181 +
133182 +static struct plugin_info latent_entropy_plugin_info = {
133183 + .version = "201512150000",
133184 + .help = NULL
133185 +};
133186 +
133187 +static unsigned HOST_WIDE_INT seed;
133188 +static unsigned HOST_WIDE_INT get_random_const(void)
133189 +{
133190 + unsigned int i;
133191 + unsigned HOST_WIDE_INT ret = 0;
133192 +
133193 + for (i = 0; i < 8 * sizeof ret; i++) {
133194 + ret = (ret << 1) | (seed & 1);
133195 + seed >>= 1;
133196 + if (ret & 1)
133197 + seed ^= 0xD800000000000000ULL;
133198 + }
133199 +
133200 + return ret;
133201 +}
133202 +
133203 +static tree handle_latent_entropy_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
133204 +{
133205 + tree type;
133206 + unsigned long long mask;
133207 +#if BUILDING_GCC_VERSION <= 4007
133208 + VEC(constructor_elt, gc) *vals;
133209 +#else
133210 + vec<constructor_elt, va_gc> *vals;
133211 +#endif
133212 +
133213 + switch (TREE_CODE(*node)) {
133214 + default:
133215 + *no_add_attrs = true;
133216 + error("%qE attribute only applies to functions and variables", name);
133217 + break;
133218 +
133219 + case VAR_DECL:
133220 + if (DECL_INITIAL(*node)) {
133221 + *no_add_attrs = true;
133222 + error("variable %qD with %qE attribute must not be initialized", *node, name);
133223 + break;
133224 + }
133225 +
133226 + if (!TREE_STATIC(*node)) {
133227 + *no_add_attrs = true;
133228 + error("variable %qD with %qE attribute must not be local", *node, name);
133229 + break;
133230 + }
133231 +
133232 + type = TREE_TYPE(*node);
133233 + switch (TREE_CODE(type)) {
133234 + default:
133235 + *no_add_attrs = true;
133236 + error("variable %qD with %qE attribute must be an integer or a fixed length integer array type or a fixed sized structure with integer fields", *node, name);
133237 + break;
133238 +
133239 + case RECORD_TYPE: {
133240 + tree field;
133241 + unsigned int nelt = 0;
133242 +
133243 + for (field = TYPE_FIELDS(type); field; nelt++, field = TREE_CHAIN(field)) {
133244 + tree fieldtype;
133245 +
133246 + fieldtype = TREE_TYPE(field);
133247 + if (TREE_CODE(fieldtype) != INTEGER_TYPE) {
133248 + *no_add_attrs = true;
133249 + error("structure variable %qD with %qE attribute has a non-integer field %qE", *node, name, field);
133250 + break;
133251 + }
133252 + }
133253 +
133254 + if (field)
133255 + break;
133256 +
133257 +#if BUILDING_GCC_VERSION <= 4007
133258 + vals = VEC_alloc(constructor_elt, gc, nelt);
133259 +#else
133260 + vec_alloc(vals, nelt);
133261 +#endif
133262 +
133263 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
133264 + tree fieldtype;
133265 +
133266 + fieldtype = TREE_TYPE(field);
133267 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(fieldtype)) - 1);
133268 + mask = 2 * (mask - 1) + 1;
133269 +
133270 + if (TYPE_UNSIGNED(fieldtype))
133271 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cstu(fieldtype, mask & get_random_const()));
133272 + else
133273 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cst(fieldtype, mask & get_random_const()));
133274 + }
133275 +
133276 + DECL_INITIAL(*node) = build_constructor(type, vals);
133277 +//debug_tree(DECL_INITIAL(*node));
133278 + break;
133279 + }
133280 +
133281 + case INTEGER_TYPE:
133282 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(type)) - 1);
133283 + mask = 2 * (mask - 1) + 1;
133284 +
133285 + if (TYPE_UNSIGNED(type))
133286 + DECL_INITIAL(*node) = build_int_cstu(type, mask & get_random_const());
133287 + else
133288 + DECL_INITIAL(*node) = build_int_cst(type, mask & get_random_const());
133289 + break;
133290 +
133291 + case ARRAY_TYPE: {
133292 + tree elt_type, array_size, elt_size;
133293 + unsigned int i, nelt;
133294 +
133295 + elt_type = TREE_TYPE(type);
133296 + elt_size = TYPE_SIZE_UNIT(TREE_TYPE(type));
133297 + array_size = TYPE_SIZE_UNIT(type);
133298 +
133299 + if (TREE_CODE(elt_type) != INTEGER_TYPE || !array_size || TREE_CODE(array_size) != INTEGER_CST) {
133300 + *no_add_attrs = true;
133301 + error("array variable %qD with %qE attribute must be a fixed length integer array type", *node, name);
133302 + break;
133303 + }
133304 +
133305 + nelt = TREE_INT_CST_LOW(array_size) / TREE_INT_CST_LOW(elt_size);
133306 +#if BUILDING_GCC_VERSION <= 4007
133307 + vals = VEC_alloc(constructor_elt, gc, nelt);
133308 +#else
133309 + vec_alloc(vals, nelt);
133310 +#endif
133311 +
133312 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(elt_type)) - 1);
133313 + mask = 2 * (mask - 1) + 1;
133314 +
133315 + for (i = 0; i < nelt; i++)
133316 + if (TYPE_UNSIGNED(elt_type))
133317 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cstu(elt_type, mask & get_random_const()));
133318 + else
133319 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cst(elt_type, mask & get_random_const()));
133320 +
133321 + DECL_INITIAL(*node) = build_constructor(type, vals);
133322 +//debug_tree(DECL_INITIAL(*node));
133323 + break;
133324 + }
133325 + }
133326 + break;
133327 +
133328 + case FUNCTION_DECL:
133329 + break;
133330 + }
133331 +
133332 + return NULL_TREE;
133333 +}
133334 +
133335 +static struct attribute_spec latent_entropy_attr = {
133336 + .name = "latent_entropy",
133337 + .min_length = 0,
133338 + .max_length = 0,
133339 + .decl_required = true,
133340 + .type_required = false,
133341 + .function_type_required = false,
133342 + .handler = handle_latent_entropy_attribute,
133343 +#if BUILDING_GCC_VERSION >= 4007
133344 + .affects_type_identity = false
133345 +#endif
133346 +};
133347 +
133348 +static void register_attributes(void *event_data, void *data)
133349 +{
133350 + register_attribute(&latent_entropy_attr);
133351 +}
133352 +
133353 +static bool gate_latent_entropy(void)
133354 +{
133355 + // don't bother with noreturn functions for now
133356 + if (TREE_THIS_VOLATILE(current_function_decl))
133357 + return false;
133358 +
133359 + // gcc-4.5 doesn't discover some trivial noreturn functions
133360 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds) == 0)
133361 + return false;
133362 +
133363 + return lookup_attribute("latent_entropy", DECL_ATTRIBUTES(current_function_decl)) != NULL_TREE;
133364 +}
133365 +
133366 +static enum tree_code get_op(tree *rhs)
133367 +{
133368 + static enum tree_code op;
133369 + unsigned HOST_WIDE_INT random_const;
133370 +
133371 + random_const = get_random_const();
133372 +
133373 + switch (op) {
133374 + case BIT_XOR_EXPR:
133375 + op = PLUS_EXPR;
133376 + break;
133377 +
133378 + case PLUS_EXPR:
133379 + if (rhs) {
133380 + op = LROTATE_EXPR;
133381 + random_const &= HOST_BITS_PER_WIDE_INT - 1;
133382 + break;
133383 + }
133384 +
133385 + case LROTATE_EXPR:
133386 + default:
133387 + op = BIT_XOR_EXPR;
133388 + break;
133389 + }
133390 + if (rhs)
133391 + *rhs = build_int_cstu(unsigned_intDI_type_node, random_const);
133392 + return op;
133393 +}
133394 +
133395 +static void perturb_local_entropy(basic_block bb, tree local_entropy)
133396 +{
133397 + gimple_stmt_iterator gsi;
133398 + gimple assign;
133399 + tree addxorrol, rhs;
133400 + enum tree_code op;
133401 +
133402 + op = get_op(&rhs);
133403 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, op, unsigned_intDI_type_node, local_entropy, rhs);
133404 + assign = gimple_build_assign(local_entropy, addxorrol);
133405 + gsi = gsi_after_labels(bb);
133406 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
133407 + update_stmt(assign);
133408 +//debug_bb(bb);
133409 +}
133410 +
133411 +static void perturb_latent_entropy(basic_block bb, tree rhs)
133412 +{
133413 + gimple_stmt_iterator gsi;
133414 + gimple assign;
133415 + tree addxorrol, temp;
133416 +
133417 + // 1. create temporary copy of latent_entropy
133418 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
133419 + add_referenced_var(temp);
133420 +
133421 + // 2. read...
133422 + temp = make_ssa_name(temp, NULL);
133423 + assign = gimple_build_assign(temp, latent_entropy_decl);
133424 + SSA_NAME_DEF_STMT(temp) = assign;
133425 + add_referenced_var(latent_entropy_decl);
133426 + gsi = gsi_after_labels(bb);
133427 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
133428 + update_stmt(assign);
133429 +
133430 + // 3. ...modify...
133431 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, get_op(NULL), unsigned_intDI_type_node, temp, rhs);
133432 + temp = make_ssa_name(SSA_NAME_VAR(temp), NULL);
133433 + assign = gimple_build_assign(temp, addxorrol);
133434 + SSA_NAME_DEF_STMT(temp) = assign;
133435 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
133436 + update_stmt(assign);
133437 +
133438 + // 4. ...write latent_entropy
133439 + assign = gimple_build_assign(latent_entropy_decl, temp);
133440 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
133441 + update_stmt(assign);
133442 +}
133443 +
133444 +static unsigned int execute_latent_entropy(void)
133445 +{
133446 + basic_block bb;
133447 + gimple assign;
133448 + gimple_stmt_iterator gsi;
133449 + tree local_entropy;
133450 +
133451 + if (!latent_entropy_decl) {
133452 + varpool_node_ptr node;
133453 +
133454 + FOR_EACH_VARIABLE(node) {
133455 + tree var = NODE_DECL(node);
133456 +
133457 + if (DECL_NAME_LENGTH(var) < sizeof("latent_entropy") - 1)
133458 + continue;
133459 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
133460 + continue;
133461 + latent_entropy_decl = var;
133462 +// debug_tree(var);
133463 + break;
133464 + }
133465 + if (!latent_entropy_decl) {
133466 +// debug_tree(current_function_decl);
133467 + return 0;
133468 + }
133469 + }
133470 +
133471 +//fprintf(stderr, "latent_entropy: %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
133472 +
133473 + // 1. create local entropy variable
133474 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
133475 + add_referenced_var(local_entropy);
133476 + mark_sym_for_renaming(local_entropy);
133477 +
133478 + // 2. initialize local entropy variable
133479 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
133480 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
133481 + if (!single_pred_p(bb)) {
133482 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
133483 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
133484 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
133485 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
133486 + }
133487 + gsi = gsi_after_labels(bb);
133488 +
133489 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
133490 +// gimple_set_location(assign, loc);
133491 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
133492 + update_stmt(assign);
133493 +//debug_bb(bb);
133494 + bb = bb->next_bb;
133495 +
133496 + // 3. instrument each BB with an operation on the local entropy variable
133497 + while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
133498 + perturb_local_entropy(bb, local_entropy);
133499 +//debug_bb(bb);
133500 + bb = bb->next_bb;
133501 + };
133502 +
133503 + // 4. mix local entropy into the global entropy variable
133504 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
133505 + perturb_latent_entropy(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)), local_entropy);
133506 +//debug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
133507 + return 0;
133508 +}
133509 +
133510 +static void latent_entropy_start_unit(void *gcc_data, void *user_data)
133511 +{
133512 + tree latent_entropy_type;
133513 +
133514 + seed = get_random_seed(false);
133515 +
133516 + if (in_lto_p)
133517 + return;
133518 +
133519 + // extern volatile u64 latent_entropy
133520 + gcc_assert(TYPE_PRECISION(long_long_unsigned_type_node) == 64);
133521 + latent_entropy_type = build_qualified_type(long_long_unsigned_type_node, TYPE_QUALS(long_long_unsigned_type_node) | TYPE_QUAL_VOLATILE);
133522 + latent_entropy_decl = build_decl(UNKNOWN_LOCATION, VAR_DECL, get_identifier("latent_entropy"), latent_entropy_type);
133523 +
133524 + TREE_STATIC(latent_entropy_decl) = 1;
133525 + TREE_PUBLIC(latent_entropy_decl) = 1;
133526 + TREE_USED(latent_entropy_decl) = 1;
133527 + DECL_PRESERVE_P(latent_entropy_decl) = 1;
133528 + TREE_THIS_VOLATILE(latent_entropy_decl) = 1;
133529 + DECL_EXTERNAL(latent_entropy_decl) = 1;
133530 + DECL_ARTIFICIAL(latent_entropy_decl) = 1;
133531 + lang_hooks.decls.pushdecl(latent_entropy_decl);
133532 +// DECL_ASSEMBLER_NAME(latent_entropy_decl);
133533 +// varpool_finalize_decl(latent_entropy_decl);
133534 +// varpool_mark_needed_node(latent_entropy_decl);
133535 +}
133536 +
133537 +#if BUILDING_GCC_VERSION >= 4009
133538 +namespace {
133539 +static const struct pass_data latent_entropy_pass_data = {
133540 +#else
133541 +static struct gimple_opt_pass latent_entropy_pass = {
133542 + .pass = {
133543 +#endif
133544 + .type = GIMPLE_PASS,
133545 + .name = "latent_entropy",
133546 +#if BUILDING_GCC_VERSION >= 4008
133547 + .optinfo_flags = OPTGROUP_NONE,
133548 +#endif
133549 +#if BUILDING_GCC_VERSION >= 5000
133550 +#elif BUILDING_GCC_VERSION == 4009
133551 + .has_gate = true,
133552 + .has_execute = true,
133553 +#else
133554 + .gate = gate_latent_entropy,
133555 + .execute = execute_latent_entropy,
133556 + .sub = NULL,
133557 + .next = NULL,
133558 + .static_pass_number = 0,
133559 +#endif
133560 + .tv_id = TV_NONE,
133561 + .properties_required = PROP_gimple_leh | PROP_cfg,
133562 + .properties_provided = 0,
133563 + .properties_destroyed = 0,
133564 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
133565 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
133566 +#if BUILDING_GCC_VERSION < 4009
133567 + }
133568 +#endif
133569 +};
133570 +
133571 +#if BUILDING_GCC_VERSION >= 4009
133572 +class latent_entropy_pass : public gimple_opt_pass {
133573 +public:
133574 + latent_entropy_pass() : gimple_opt_pass(latent_entropy_pass_data, g) {}
133575 +#if BUILDING_GCC_VERSION >= 5000
133576 + virtual bool gate(function *) { return gate_latent_entropy(); }
133577 + virtual unsigned int execute(function *) { return execute_latent_entropy(); }
133578 +#else
133579 + bool gate() { return gate_latent_entropy(); }
133580 + unsigned int execute() { return execute_latent_entropy(); }
133581 +#endif
133582 +};
133583 +}
133584 +
133585 +static opt_pass *make_latent_entropy_pass(void)
133586 +{
133587 + return new latent_entropy_pass();
133588 +}
133589 +#else
133590 +static struct opt_pass *make_latent_entropy_pass(void)
133591 +{
133592 + return &latent_entropy_pass.pass;
133593 +}
133594 +#endif
133595 +
133596 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
133597 +{
133598 + const char * const plugin_name = plugin_info->base_name;
133599 + struct register_pass_info latent_entropy_pass_info;
133600 +
133601 + latent_entropy_pass_info.pass = make_latent_entropy_pass();
133602 + latent_entropy_pass_info.reference_pass_name = "optimized";
133603 + latent_entropy_pass_info.ref_pass_instance_number = 1;
133604 + latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
133605 + static const struct ggc_root_tab gt_ggc_r_gt_latent_entropy[] = {
133606 + {
133607 + .base = &latent_entropy_decl,
133608 + .nelt = 1,
133609 + .stride = sizeof(latent_entropy_decl),
133610 + .cb = &gt_ggc_mx_tree_node,
133611 + .pchw = &gt_pch_nx_tree_node
133612 + },
133613 + LAST_GGC_ROOT_TAB
133614 + };
133615 +
133616 + if (!plugin_default_version_check(version, &gcc_version)) {
133617 + error(G_("incompatible gcc/plugin versions"));
133618 + return 1;
133619 + }
133620 +
133621 + register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
133622 + register_callback(plugin_name, PLUGIN_START_UNIT, &latent_entropy_start_unit, NULL);
133623 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_latent_entropy);
133624 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
133625 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
133626 +
133627 + return 0;
133628 +}
133629 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
133630 new file mode 100644
133631 index 0000000..444b8bd
133632 --- /dev/null
133633 +++ b/tools/gcc/randomize_layout_plugin.c
133634 @@ -0,0 +1,930 @@
133635 +/*
133636 + * Copyright 2014,2015 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
133637 + * and PaX Team <pageexec@freemail.hu>
133638 + * Licensed under the GPL v2
133639 + *
133640 + * Usage:
133641 + * $ # for 4.5/4.6/C based 4.7
133642 + * $ 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
133643 + * $ # for C++ based 4.7/4.8+
133644 + * $ 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
133645 + * $ gcc -fplugin=./randomize_layout_plugin.so test.c -O2
133646 + */
133647 +
133648 +#include "gcc-common.h"
133649 +#include "randomize_layout_seed.h"
133650 +
133651 +#if BUILDING_GCC_MAJOR < 4 || (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR < 6) || \
133652 + (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR == 6 && BUILDING_GCC_PATCHLEVEL < 4)
133653 +#error "The RANDSTRUCT plugin requires GCC 4.6.4 or newer."
133654 +#endif
133655 +
133656 +#define ORIG_TYPE_NAME(node) \
133657 + (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
133658 +
133659 +int plugin_is_GPL_compatible;
133660 +
133661 +static int performance_mode;
133662 +
133663 +static struct plugin_info randomize_layout_plugin_info = {
133664 + .version = "201402201816",
133665 + .help = "disable\t\t\tdo not activate plugin\n"
133666 + "performance-mode\tenable cacheline-aware layout randomization\n"
133667 +};
133668 +
133669 +/* from old Linux dcache.h */
133670 +static inline unsigned long
133671 +partial_name_hash(unsigned long c, unsigned long prevhash)
133672 +{
133673 + return (prevhash + (c << 4) + (c >> 4)) * 11;
133674 +}
133675 +static inline unsigned int
133676 +name_hash(const unsigned char *name)
133677 +{
133678 + unsigned long hash = 0;
133679 + unsigned int len = strlen((const char *)name);
133680 + while (len--)
133681 + hash = partial_name_hash(*name++, hash);
133682 + return (unsigned int)hash;
133683 +}
133684 +
133685 +static tree handle_randomize_layout_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
133686 +{
133687 + tree type;
133688 +
133689 + *no_add_attrs = true;
133690 + if (TREE_CODE(*node) == FUNCTION_DECL) {
133691 + error("%qE attribute does not apply to functions (%qF)", name, *node);
133692 + return NULL_TREE;
133693 + }
133694 +
133695 + if (TREE_CODE(*node) == PARM_DECL) {
133696 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
133697 + return NULL_TREE;
133698 + }
133699 +
133700 + if (TREE_CODE(*node) == VAR_DECL) {
133701 + error("%qE attribute does not apply to variables (%qD)", name, *node);
133702 + return NULL_TREE;
133703 + }
133704 +
133705 + if (TYPE_P(*node)) {
133706 + type = *node;
133707 + } else {
133708 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
133709 + type = TREE_TYPE(*node);
133710 + }
133711 +
133712 + if (TREE_CODE(type) != RECORD_TYPE) {
133713 + error("%qE attribute used on %qT applies to struct types only", name, type);
133714 + return NULL_TREE;
133715 + }
133716 +
133717 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
133718 + error("%qE attribute is already applied to the type %qT", name, type);
133719 + return NULL_TREE;
133720 + }
133721 +
133722 + *no_add_attrs = false;
133723 +
133724 + return NULL_TREE;
133725 +}
133726 +
133727 +/* set on complete types that we don't need to inspect further at all */
133728 +static tree handle_randomize_considered_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
133729 +{
133730 + *no_add_attrs = false;
133731 + return NULL_TREE;
133732 +}
133733 +
133734 +/*
133735 + * set on types that we've performed a shuffle on, to prevent re-shuffling
133736 + * this does not preclude us from inspecting its fields for potential shuffles
133737 + */
133738 +static tree handle_randomize_performed_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
133739 +{
133740 + *no_add_attrs = false;
133741 + return NULL_TREE;
133742 +}
133743 +
133744 +/*
133745 + * 64bit variant of Bob Jenkins' public domain PRNG
133746 + * 256 bits of internal state
133747 + */
133748 +
133749 +typedef unsigned long long u64;
133750 +
133751 +typedef struct ranctx { u64 a; u64 b; u64 c; u64 d; } ranctx;
133752 +
133753 +#define rot(x,k) (((x)<<(k))|((x)>>(64-(k))))
133754 +static u64 ranval(ranctx *x) {
133755 + u64 e = x->a - rot(x->b, 7);
133756 + x->a = x->b ^ rot(x->c, 13);
133757 + x->b = x->c + rot(x->d, 37);
133758 + x->c = x->d + e;
133759 + x->d = e + x->a;
133760 + return x->d;
133761 +}
133762 +
133763 +static void raninit(ranctx *x, u64 *seed) {
133764 + int i;
133765 +
133766 + x->a = seed[0];
133767 + x->b = seed[1];
133768 + x->c = seed[2];
133769 + x->d = seed[3];
133770 +
133771 + for (i=0; i < 30; ++i)
133772 + (void)ranval(x);
133773 +}
133774 +
133775 +static u64 shuffle_seed[4];
133776 +
133777 +struct partition_group {
133778 + tree tree_start;
133779 + unsigned long start;
133780 + unsigned long length;
133781 +};
133782 +
133783 +static void partition_struct(tree *fields, unsigned long length, struct partition_group *size_groups, unsigned long *num_groups)
133784 +{
133785 + unsigned long i;
133786 + unsigned long accum_size = 0;
133787 + unsigned long accum_length = 0;
133788 + unsigned long group_idx = 0;
133789 +
133790 + gcc_assert(length < INT_MAX);
133791 +
133792 + memset(size_groups, 0, sizeof(struct partition_group) * length);
133793 +
133794 + for (i = 0; i < length; i++) {
133795 + if (size_groups[group_idx].tree_start == NULL_TREE) {
133796 + size_groups[group_idx].tree_start = fields[i];
133797 + size_groups[group_idx].start = i;
133798 + accum_length = 0;
133799 + accum_size = 0;
133800 + }
133801 + accum_size += (unsigned long)int_size_in_bytes(TREE_TYPE(fields[i]));
133802 + accum_length++;
133803 + if (accum_size >= 64) {
133804 + size_groups[group_idx].length = accum_length;
133805 + accum_length = 0;
133806 + group_idx++;
133807 + }
133808 + }
133809 +
133810 + if (size_groups[group_idx].tree_start != NULL_TREE &&
133811 + !size_groups[group_idx].length) {
133812 + size_groups[group_idx].length = accum_length;
133813 + group_idx++;
133814 + }
133815 +
133816 + *num_groups = group_idx;
133817 +}
133818 +
133819 +static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
133820 +{
133821 + unsigned long i, x;
133822 + struct partition_group size_group[length];
133823 + unsigned long num_groups = 0;
133824 + unsigned long randnum;
133825 +
133826 + partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups);
133827 + for (i = num_groups - 1; i > 0; i--) {
133828 + struct partition_group tmp;
133829 + randnum = ranval(prng_state) % (i + 1);
133830 + tmp = size_group[i];
133831 + size_group[i] = size_group[randnum];
133832 + size_group[randnum] = tmp;
133833 + }
133834 +
133835 + for (x = 0; x < num_groups; x++) {
133836 + for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) {
133837 + tree tmp;
133838 + if (DECL_BIT_FIELD_TYPE(newtree[i]))
133839 + continue;
133840 + randnum = ranval(prng_state) % (i + 1);
133841 + // we could handle this case differently if desired
133842 + if (DECL_BIT_FIELD_TYPE(newtree[randnum]))
133843 + continue;
133844 + tmp = newtree[i];
133845 + newtree[i] = newtree[randnum];
133846 + newtree[randnum] = tmp;
133847 + }
133848 + }
133849 +}
133850 +
133851 +static void full_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
133852 +{
133853 + unsigned long i, randnum;
133854 +
133855 + for (i = length - 1; i > 0; i--) {
133856 + tree tmp;
133857 + randnum = ranval(prng_state) % (i + 1);
133858 + tmp = newtree[i];
133859 + newtree[i] = newtree[randnum];
133860 + newtree[randnum] = tmp;
133861 + }
133862 +}
133863 +
133864 +/* modern in-place Fisher-Yates shuffle */
133865 +static void shuffle(const_tree type, tree *newtree, unsigned long length)
133866 +{
133867 + unsigned long i;
133868 + u64 seed[4];
133869 + ranctx prng_state;
133870 + const unsigned char *structname;
133871 +
133872 + if (length == 0)
133873 + return;
133874 +
133875 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
133876 +
133877 + structname = ORIG_TYPE_NAME(type);
133878 +
133879 +#ifdef __DEBUG_PLUGIN
133880 + fprintf(stderr, "Shuffling struct %s %p\n", (const char *)structname, type);
133881 +#ifdef __DEBUG_VERBOSE
133882 + debug_tree((tree)type);
133883 +#endif
133884 +#endif
133885 +
133886 + for (i = 0; i < 4; i++) {
133887 + seed[i] = shuffle_seed[i];
133888 + seed[i] ^= name_hash(structname);
133889 + }
133890 +
133891 + raninit(&prng_state, (u64 *)&seed);
133892 +
133893 + if (performance_mode)
133894 + performance_shuffle(newtree, length, &prng_state);
133895 + else
133896 + full_shuffle(newtree, length, &prng_state);
133897 +}
133898 +
133899 +static bool is_flexible_array(const_tree field)
133900 +{
133901 + const_tree fieldtype;
133902 + const_tree typesize;
133903 + const_tree elemtype;
133904 + const_tree elemsize;
133905 +
133906 + fieldtype = TREE_TYPE(field);
133907 + typesize = TYPE_SIZE(fieldtype);
133908 +
133909 + if (TREE_CODE(fieldtype) != ARRAY_TYPE)
133910 + return false;
133911 +
133912 + elemtype = TREE_TYPE(fieldtype);
133913 + elemsize = TYPE_SIZE(elemtype);
133914 +
133915 + /* size of type is represented in bits */
133916 +
133917 + if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
133918 + TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
133919 + return true;
133920 +
133921 + if (typesize != NULL_TREE &&
133922 + (TREE_CONSTANT(typesize) && (!TREE_INT_CST_LOW(typesize) ||
133923 + TREE_INT_CST_LOW(typesize) == TREE_INT_CST_LOW(elemsize))))
133924 + return true;
133925 +
133926 + return false;
133927 +}
133928 +
133929 +static int relayout_struct(tree type)
133930 +{
133931 + unsigned long num_fields = (unsigned long)list_length(TYPE_FIELDS(type));
133932 + unsigned long shuffle_length = num_fields;
133933 + tree field;
133934 + tree newtree[num_fields];
133935 + unsigned long i;
133936 + tree list;
133937 + tree variant;
133938 + tree main_variant;
133939 + expanded_location xloc;
133940 +
133941 + if (TYPE_FIELDS(type) == NULL_TREE)
133942 + return 0;
133943 +
133944 + if (num_fields < 2)
133945 + return 0;
133946 +
133947 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
133948 +
133949 + gcc_assert(num_fields < INT_MAX);
133950 +
133951 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)) ||
133952 + lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
133953 + return 0;
133954 +
133955 + /* Workaround for 3rd-party VirtualBox source that we can't modify ourselves */
133956 + if (!strcmp((const char *)ORIG_TYPE_NAME(type), "INTNETTRUNKFACTORY") ||
133957 + !strcmp((const char *)ORIG_TYPE_NAME(type), "RAWPCIFACTORY"))
133958 + return 0;
133959 +
133960 + /* throw out any structs in uapi */
133961 + xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
133962 +
133963 + if (strstr(xloc.file, "/uapi/"))
133964 + error(G_("attempted to randomize userland API struct %s"), ORIG_TYPE_NAME(type));
133965 +
133966 + for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
133967 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
133968 + newtree[i] = field;
133969 + }
133970 +
133971 + /*
133972 + * enforce that we don't randomize the layout of the last
133973 + * element of a struct if it's a 0 or 1-length array
133974 + * or a proper flexible array
133975 + */
133976 + if (is_flexible_array(newtree[num_fields - 1]))
133977 + shuffle_length--;
133978 +
133979 + shuffle(type, (tree *)newtree, shuffle_length);
133980 +
133981 + /*
133982 + * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
133983 + * as gcc provides no other way to detect such code
133984 + */
133985 + list = make_node(FIELD_DECL);
133986 + TREE_CHAIN(list) = newtree[0];
133987 + TREE_TYPE(list) = void_type_node;
133988 + DECL_SIZE(list) = bitsize_zero_node;
133989 + DECL_NONADDRESSABLE_P(list) = 1;
133990 + DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
133991 + DECL_SIZE_UNIT(list) = size_zero_node;
133992 + DECL_FIELD_OFFSET(list) = size_zero_node;
133993 + DECL_CONTEXT(list) = type;
133994 + // to satisfy the constify plugin
133995 + TREE_READONLY(list) = 1;
133996 +
133997 + for (i = 0; i < num_fields - 1; i++)
133998 + TREE_CHAIN(newtree[i]) = newtree[i+1];
133999 + TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
134000 +
134001 + main_variant = TYPE_MAIN_VARIANT(type);
134002 + for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
134003 + TYPE_FIELDS(variant) = list;
134004 + TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
134005 + TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
134006 + }
134007 +
134008 + /*
134009 + * force a re-layout of the main variant
134010 + * the TYPE_SIZE for all variants will be recomputed
134011 + * by finalize_type_size()
134012 + */
134013 + TYPE_SIZE(main_variant) = NULL_TREE;
134014 + layout_type(main_variant);
134015 + gcc_assert(TYPE_SIZE(main_variant) != NULL_TREE);
134016 +
134017 + return 1;
134018 +}
134019 +
134020 +/* from constify plugin */
134021 +static const_tree get_field_type(const_tree field)
134022 +{
134023 + return strip_array_types(TREE_TYPE(field));
134024 +}
134025 +
134026 +/* from constify plugin */
134027 +static bool is_fptr(const_tree fieldtype)
134028 +{
134029 + if (TREE_CODE(fieldtype) != POINTER_TYPE)
134030 + return false;
134031 +
134032 + return TREE_CODE(TREE_TYPE(fieldtype)) == FUNCTION_TYPE;
134033 +}
134034 +
134035 +/* derived from constify plugin */
134036 +static int is_pure_ops_struct(const_tree node)
134037 +{
134038 + const_tree field;
134039 +
134040 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
134041 +
134042 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
134043 + const_tree fieldtype = get_field_type(field);
134044 + enum tree_code code = TREE_CODE(fieldtype);
134045 +
134046 + if (node == fieldtype)
134047 + continue;
134048 +
134049 + if (!is_fptr(fieldtype))
134050 + return 0;
134051 +
134052 + if (code != RECORD_TYPE && code != UNION_TYPE)
134053 + continue;
134054 +
134055 + if (!is_pure_ops_struct(fieldtype))
134056 + return 0;
134057 + }
134058 +
134059 + return 1;
134060 +}
134061 +
134062 +static void randomize_type(tree type)
134063 +{
134064 + tree variant;
134065 +
134066 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
134067 +
134068 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
134069 + return;
134070 +
134071 + if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
134072 + relayout_struct(type);
134073 +
134074 + for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
134075 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
134076 + TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
134077 + }
134078 +#ifdef __DEBUG_PLUGIN
134079 + fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
134080 +#ifdef __DEBUG_VERBOSE
134081 + debug_tree(type);
134082 +#endif
134083 +#endif
134084 +}
134085 +
134086 +static void randomize_layout_finish_decl(void *event_data, void *data)
134087 +{
134088 + tree decl = (tree)event_data;
134089 + tree type;
134090 +
134091 + if (decl == NULL_TREE || decl == error_mark_node)
134092 + return;
134093 +
134094 + type = TREE_TYPE(decl);
134095 +
134096 + if (TREE_CODE(decl) != VAR_DECL)
134097 + return;
134098 +
134099 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
134100 + return;
134101 +
134102 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)))
134103 + return;
134104 +
134105 + relayout_decl(decl);
134106 +}
134107 +
134108 +static void finish_type(void *event_data, void *data)
134109 +{
134110 + tree type = (tree)event_data;
134111 +
134112 + if (type == NULL_TREE || type == error_mark_node)
134113 + return;
134114 +
134115 + if (TREE_CODE(type) != RECORD_TYPE)
134116 + return;
134117 +
134118 + if (TYPE_FIELDS(type) == NULL_TREE)
134119 + return;
134120 +
134121 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
134122 + return;
134123 +
134124 +#ifdef __DEBUG_PLUGIN
134125 + fprintf(stderr, "Calling randomize_type on %s\n", ORIG_TYPE_NAME(type));
134126 +#endif
134127 +#ifdef __DEBUG_VERBOSE
134128 + debug_tree(type);
134129 +#endif
134130 + randomize_type(type);
134131 +
134132 + return;
134133 +}
134134 +
134135 +static struct attribute_spec randomize_layout_attr = {
134136 + .name = "randomize_layout",
134137 + // related to args
134138 + .min_length = 0,
134139 + .max_length = 0,
134140 + .decl_required = false,
134141 + // need type declaration
134142 + .type_required = true,
134143 + .function_type_required = false,
134144 + .handler = handle_randomize_layout_attr,
134145 +#if BUILDING_GCC_VERSION >= 4007
134146 + .affects_type_identity = true
134147 +#endif
134148 +};
134149 +
134150 +static struct attribute_spec no_randomize_layout_attr = {
134151 + .name = "no_randomize_layout",
134152 + // related to args
134153 + .min_length = 0,
134154 + .max_length = 0,
134155 + .decl_required = false,
134156 + // need type declaration
134157 + .type_required = true,
134158 + .function_type_required = false,
134159 + .handler = handle_randomize_layout_attr,
134160 +#if BUILDING_GCC_VERSION >= 4007
134161 + .affects_type_identity = true
134162 +#endif
134163 +};
134164 +
134165 +static struct attribute_spec randomize_considered_attr = {
134166 + .name = "randomize_considered",
134167 + // related to args
134168 + .min_length = 0,
134169 + .max_length = 0,
134170 + .decl_required = false,
134171 + // need type declaration
134172 + .type_required = true,
134173 + .function_type_required = false,
134174 + .handler = handle_randomize_considered_attr,
134175 +#if BUILDING_GCC_VERSION >= 4007
134176 + .affects_type_identity = false
134177 +#endif
134178 +};
134179 +
134180 +static struct attribute_spec randomize_performed_attr = {
134181 + .name = "randomize_performed",
134182 + // related to args
134183 + .min_length = 0,
134184 + .max_length = 0,
134185 + .decl_required = false,
134186 + // need type declaration
134187 + .type_required = true,
134188 + .function_type_required = false,
134189 + .handler = handle_randomize_performed_attr,
134190 +#if BUILDING_GCC_VERSION >= 4007
134191 + .affects_type_identity = false
134192 +#endif
134193 +};
134194 +
134195 +static void register_attributes(void *event_data, void *data)
134196 +{
134197 + register_attribute(&randomize_layout_attr);
134198 + register_attribute(&no_randomize_layout_attr);
134199 + register_attribute(&randomize_considered_attr);
134200 + register_attribute(&randomize_performed_attr);
134201 +}
134202 +
134203 +static void check_bad_casts_in_constructor(tree var, tree init)
134204 +{
134205 + unsigned HOST_WIDE_INT idx;
134206 + tree field, val;
134207 + tree field_type, val_type;
134208 +
134209 + FOR_EACH_CONSTRUCTOR_ELT(CONSTRUCTOR_ELTS(init), idx, field, val) {
134210 + if (TREE_CODE(val) == CONSTRUCTOR) {
134211 + check_bad_casts_in_constructor(var, val);
134212 + continue;
134213 + }
134214 +
134215 + /* pipacs' plugin creates franken-arrays that differ from those produced by
134216 + normal code which all have valid 'field' trees. work around this */
134217 + if (field == NULL_TREE)
134218 + continue;
134219 + field_type = TREE_TYPE(field);
134220 + val_type = TREE_TYPE(val);
134221 +
134222 + if (TREE_CODE(field_type) != POINTER_TYPE || TREE_CODE(val_type) != POINTER_TYPE)
134223 + continue;
134224 +
134225 + if (field_type == val_type)
134226 + continue;
134227 +
134228 + field_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(field_type))));
134229 + val_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(val_type))));
134230 +
134231 + if (field_type == void_type_node)
134232 + continue;
134233 + if (field_type == val_type)
134234 + continue;
134235 + if (TREE_CODE(val_type) != RECORD_TYPE)
134236 + continue;
134237 +
134238 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(val_type)))
134239 + continue;
134240 + inform(DECL_SOURCE_LOCATION(var), "found mismatched struct pointer types: %qT and %qT\n", TYPE_MAIN_VARIANT(field_type), TYPE_MAIN_VARIANT(val_type));
134241 + }
134242 +}
134243 +
134244 +/* derived from the constify plugin */
134245 +static void check_global_variables(void *event_data, void *data)
134246 +{
134247 + struct varpool_node *node;
134248 + tree init;
134249 +
134250 + FOR_EACH_VARIABLE(node) {
134251 + tree var = NODE_DECL(node);
134252 + init = DECL_INITIAL(var);
134253 + if (init == NULL_TREE)
134254 + continue;
134255 +
134256 + if (TREE_CODE(init) != CONSTRUCTOR)
134257 + continue;
134258 +
134259 + check_bad_casts_in_constructor(var, init);
134260 + }
134261 +}
134262 +
134263 +static bool dominated_by_is_err(const_tree rhs, basic_block bb)
134264 +{
134265 + basic_block dom;
134266 + gimple dom_stmt;
134267 + gimple call_stmt;
134268 + const_tree dom_lhs;
134269 + const_tree poss_is_err_cond;
134270 + const_tree poss_is_err_func;
134271 + const_tree is_err_arg;
134272 +
134273 + dom = get_immediate_dominator(CDI_DOMINATORS, bb);
134274 + if (!dom)
134275 + return false;
134276 +
134277 + dom_stmt = last_stmt(dom);
134278 + if (!dom_stmt)
134279 + return false;
134280 +
134281 + if (gimple_code(dom_stmt) != GIMPLE_COND)
134282 + return false;
134283 +
134284 + if (gimple_cond_code(dom_stmt) != NE_EXPR)
134285 + return false;
134286 +
134287 + if (!integer_zerop(gimple_cond_rhs(dom_stmt)))
134288 + return false;
134289 +
134290 + poss_is_err_cond = gimple_cond_lhs(dom_stmt);
134291 +
134292 + if (TREE_CODE(poss_is_err_cond) != SSA_NAME)
134293 + return false;
134294 +
134295 + call_stmt = SSA_NAME_DEF_STMT(poss_is_err_cond);
134296 +
134297 + if (gimple_code(call_stmt) != GIMPLE_CALL)
134298 + return false;
134299 +
134300 + dom_lhs = gimple_get_lhs(call_stmt);
134301 + poss_is_err_func = gimple_call_fndecl(call_stmt);
134302 + if (!poss_is_err_func)
134303 + return false;
134304 + if (dom_lhs != poss_is_err_cond)
134305 + return false;
134306 + if (strcmp(DECL_NAME_POINTER(poss_is_err_func), "IS_ERR"))
134307 + return false;
134308 +
134309 + is_err_arg = gimple_call_arg(call_stmt, 0);
134310 + if (!is_err_arg)
134311 + return false;
134312 +
134313 + if (is_err_arg != rhs)
134314 + return false;
134315 +
134316 + return true;
134317 +}
134318 +
134319 +static void handle_local_var_initializers(void)
134320 +{
134321 + tree var;
134322 + unsigned int i;
134323 +
134324 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
134325 + tree init = DECL_INITIAL(var);
134326 + if (!init)
134327 + continue;
134328 + if (TREE_CODE(init) != CONSTRUCTOR)
134329 + continue;
134330 + check_bad_casts_in_constructor(var, init);
134331 + }
134332 +}
134333 +
134334 +/*
134335 + * iterate over all statements to find "bad" casts:
134336 + * those where the address of the start of a structure is cast
134337 + * to a pointer of a structure of a different type, or a
134338 + * structure pointer type is cast to a different structure pointer type
134339 + */
134340 +static unsigned int find_bad_casts(void)
134341 +{
134342 + basic_block bb;
134343 +
134344 + handle_local_var_initializers();
134345 +
134346 + FOR_EACH_BB_FN(bb, cfun) {
134347 + gimple_stmt_iterator gsi;
134348 +
134349 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
134350 + gimple stmt;
134351 + const_tree lhs;
134352 + const_tree lhs_type;
134353 + const_tree rhs1;
134354 + const_tree rhs_type;
134355 + const_tree ptr_lhs_type;
134356 + const_tree ptr_rhs_type;
134357 + const_tree op0;
134358 + const_tree op0_type;
134359 + enum tree_code rhs_code;
134360 +
134361 + stmt = gsi_stmt(gsi);
134362 +
134363 +#ifdef __DEBUG_PLUGIN
134364 +#ifdef __DEBUG_VERBOSE
134365 + debug_gimple_stmt(stmt);
134366 + debug_tree(gimple_get_lhs(stmt));
134367 +#endif
134368 +#endif
134369 +
134370 + if (gimple_code(stmt) != GIMPLE_ASSIGN)
134371 + continue;
134372 +
134373 +#ifdef __DEBUG_PLUGIN
134374 +#ifdef __DEBUG_VERBOSE
134375 + debug_tree(gimple_assign_rhs1(stmt));
134376 +#endif
134377 +#endif
134378 +
134379 + rhs_code = gimple_assign_rhs_code(stmt);
134380 +
134381 + if (rhs_code != ADDR_EXPR && rhs_code != SSA_NAME)
134382 + continue;
134383 +
134384 + lhs = gimple_get_lhs(stmt);
134385 + lhs_type = TREE_TYPE(lhs);
134386 + rhs1 = gimple_assign_rhs1(stmt);
134387 + rhs_type = TREE_TYPE(rhs1);
134388 +
134389 + if (TREE_CODE(rhs_type) != POINTER_TYPE ||
134390 + TREE_CODE(lhs_type) != POINTER_TYPE)
134391 + continue;
134392 +
134393 + ptr_lhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type))));
134394 + ptr_rhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type))));
134395 +
134396 + if (ptr_rhs_type == void_type_node)
134397 + continue;
134398 +
134399 + if (ptr_lhs_type == void_type_node)
134400 + continue;
134401 +
134402 + if (dominated_by_is_err(rhs1, bb))
134403 + continue;
134404 +
134405 + if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
134406 +#ifndef __DEBUG_PLUGIN
134407 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_lhs_type)))
134408 +#endif
134409 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
134410 + continue;
134411 + }
134412 +
134413 + if (rhs_code == SSA_NAME && ptr_lhs_type == ptr_rhs_type)
134414 + continue;
134415 +
134416 + if (rhs_code == ADDR_EXPR) {
134417 + op0 = TREE_OPERAND(rhs1, 0);
134418 +
134419 + if (op0 == NULL_TREE)
134420 + continue;
134421 +
134422 + if (TREE_CODE(op0) != VAR_DECL)
134423 + continue;
134424 +
134425 + op0_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0))));
134426 + if (op0_type == ptr_lhs_type)
134427 + continue;
134428 +
134429 +#ifndef __DEBUG_PLUGIN
134430 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(op0_type)))
134431 +#endif
134432 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, op0_type);
134433 + } else {
134434 + const_tree ssa_name_var = SSA_NAME_VAR(rhs1);
134435 + /* skip bogus type casts introduced by container_of */
134436 + if (ssa_name_var != NULL_TREE && DECL_NAME(ssa_name_var) &&
134437 + !strcmp((const char *)DECL_NAME_POINTER(ssa_name_var), "__mptr"))
134438 + continue;
134439 +#ifndef __DEBUG_PLUGIN
134440 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_rhs_type)))
134441 +#endif
134442 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
134443 + }
134444 +
134445 + }
134446 + }
134447 + return 0;
134448 +}
134449 +
134450 +#if BUILDING_GCC_VERSION >= 4009
134451 +static const struct pass_data randomize_layout_bad_cast_data = {
134452 +#else
134453 +static struct gimple_opt_pass randomize_layout_bad_cast = {
134454 + .pass = {
134455 +#endif
134456 + .type = GIMPLE_PASS,
134457 + .name = "randomize_layout_bad_cast",
134458 +#if BUILDING_GCC_VERSION >= 4008
134459 + .optinfo_flags = OPTGROUP_NONE,
134460 +#endif
134461 +#if BUILDING_GCC_VERSION >= 5000
134462 +#elif BUILDING_GCC_VERSION >= 4009
134463 + .has_gate = false,
134464 + .has_execute = true,
134465 +#else
134466 + .gate = NULL,
134467 + .execute = find_bad_casts,
134468 + .sub = NULL,
134469 + .next = NULL,
134470 + .static_pass_number = 0,
134471 +#endif
134472 + .tv_id = TV_NONE,
134473 + .properties_required = PROP_cfg,
134474 + .properties_provided = 0,
134475 + .properties_destroyed = 0,
134476 + .todo_flags_start = 0,
134477 + .todo_flags_finish = TODO_dump_func
134478 +#if BUILDING_GCC_VERSION < 4009
134479 + }
134480 +#endif
134481 +};
134482 +
134483 +#if BUILDING_GCC_VERSION >= 4009
134484 +namespace {
134485 +class randomize_layout_bad_cast : public gimple_opt_pass {
134486 +public:
134487 + randomize_layout_bad_cast() : gimple_opt_pass(randomize_layout_bad_cast_data, g) {}
134488 +#if BUILDING_GCC_VERSION >= 5000
134489 + virtual unsigned int execute(function *) { return find_bad_casts(); }
134490 +#else
134491 + unsigned int execute() { return find_bad_casts(); }
134492 +#endif
134493 +};
134494 +}
134495 +#endif
134496 +
134497 +static struct opt_pass *make_randomize_layout_bad_cast(void)
134498 +{
134499 +#if BUILDING_GCC_VERSION >= 4009
134500 + return new randomize_layout_bad_cast();
134501 +#else
134502 + return &randomize_layout_bad_cast.pass;
134503 +#endif
134504 +}
134505 +
134506 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
134507 +{
134508 + int i;
134509 + const char * const plugin_name = plugin_info->base_name;
134510 + const int argc = plugin_info->argc;
134511 + const struct plugin_argument * const argv = plugin_info->argv;
134512 + bool enable = true;
134513 + int obtained_seed = 0;
134514 + struct register_pass_info randomize_layout_bad_cast_info;
134515 +
134516 + randomize_layout_bad_cast_info.pass = make_randomize_layout_bad_cast();
134517 + randomize_layout_bad_cast_info.reference_pass_name = "ssa";
134518 + randomize_layout_bad_cast_info.ref_pass_instance_number = 1;
134519 + randomize_layout_bad_cast_info.pos_op = PASS_POS_INSERT_AFTER;
134520 +
134521 + if (!plugin_default_version_check(version, &gcc_version)) {
134522 + error(G_("incompatible gcc/plugin versions"));
134523 + return 1;
134524 + }
134525 +
134526 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
134527 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
134528 + enable = false;
134529 + }
134530 +
134531 + for (i = 0; i < argc; ++i) {
134532 + if (!strcmp(argv[i].key, "disable")) {
134533 + enable = false;
134534 + continue;
134535 + }
134536 + if (!strcmp(argv[i].key, "performance-mode")) {
134537 + performance_mode = 1;
134538 + continue;
134539 + }
134540 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
134541 + }
134542 +
134543 + if (strlen(randstruct_seed) != 64) {
134544 + error(G_("invalid seed value supplied for %s plugin"), plugin_name);
134545 + return 1;
134546 + }
134547 + obtained_seed = sscanf(randstruct_seed, "%016llx%016llx%016llx%016llx",
134548 + &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
134549 + if (obtained_seed != 4) {
134550 + error(G_("Invalid seed supplied for %s plugin"), plugin_name);
134551 + return 1;
134552 + }
134553 +
134554 + register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
134555 + if (enable) {
134556 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
134557 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &randomize_layout_bad_cast_info);
134558 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
134559 + register_callback(plugin_name, PLUGIN_FINISH_DECL, randomize_layout_finish_decl, NULL);
134560 + }
134561 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
134562 +
134563 + return 0;
134564 +}
134565 diff --git a/tools/gcc/size_overflow_plugin/.gitignore b/tools/gcc/size_overflow_plugin/.gitignore
134566 new file mode 100644
134567 index 0000000..c4b24b9
134568 --- /dev/null
134569 +++ b/tools/gcc/size_overflow_plugin/.gitignore
134570 @@ -0,0 +1,3 @@
134571 +disable_size_overflow_hash.h
134572 +size_overflow_hash.h
134573 +size_overflow_hash_aux.h
134574 diff --git a/tools/gcc/size_overflow_plugin/Makefile b/tools/gcc/size_overflow_plugin/Makefile
134575 new file mode 100644
134576 index 0000000..f74d85a
134577 --- /dev/null
134578 +++ b/tools/gcc/size_overflow_plugin/Makefile
134579 @@ -0,0 +1,28 @@
134580 +HOST_EXTRACXXFLAGS += $(call hostcc-option, -fno-ipa-icf)
134581 +
134582 +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
134583 +always := $($(HOSTLIBS)-y)
134584 +
134585 +size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
134586 +
134587 +$(patsubst $(srctree)/$(src)/%.c,$(obj)/%.o,$(wildcard $(srctree)/$(src)/*.c)): $(objtree)/$(obj)/size_overflow_hash.h $(objtree)/$(obj)/size_overflow_hash_aux.h $(objtree)/$(obj)/disable_size_overflow_hash.h
134588 +
134589 +quiet_cmd_build_size_overflow_hash = GENHASH $@
134590 + cmd_build_size_overflow_hash = \
134591 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash -d $< -o $@
134592 +$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
134593 + $(call if_changed,build_size_overflow_hash)
134594 +
134595 +quiet_cmd_build_size_overflow_hash_aux = GENHASH $@
134596 + cmd_build_size_overflow_hash_aux = \
134597 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash_aux -d $< -o $@
134598 +$(objtree)/$(obj)/size_overflow_hash_aux.h: $(src)/size_overflow_hash_aux.data FORCE
134599 + $(call if_changed,build_size_overflow_hash_aux)
134600 +
134601 +quiet_cmd_build_disable_size_overflow_hash = GENHASH $@
134602 + cmd_build_disable_size_overflow_hash = \
134603 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s disable_size_overflow_hash -d $< -o $@
134604 +$(objtree)/$(obj)/disable_size_overflow_hash.h: $(src)/disable_size_overflow_hash.data FORCE
134605 + $(call if_changed,build_disable_size_overflow_hash)
134606 +
134607 +targets += size_overflow_hash.h size_overflow_hash_aux.h disable_size_overflow_hash.h
134608 diff --git a/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
134609 new file mode 100644
134610 index 0000000..5276d6e
134611 --- /dev/null
134612 +++ b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
134613 @@ -0,0 +1,12433 @@
134614 +disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode gru_message_queue_desc 0 4 NULL
134615 +disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
134616 +disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 NULL nohasharray
134617 +disable_so_sil_iowrite8_fndecl_22 sil_iowrite8 fndecl 3-2 22 &disable_so_macvlan_sync_address_fndecl_22
134618 +disable_so_addr_to_user_sctp_pf_23 addr_to_user sctp_pf 0 23 NULL nohasharray
134619 +disable_so_signalquality_rtl_stats_23 signalquality rtl_stats 0 23 &disable_so_addr_to_user_sctp_pf_23
134620 +disable_so_sem_otime_semid64_ds_29 sem_otime semid64_ds 0 29 NULL
134621 +disable_so_rec8b_ide_timing_33 rec8b ide_timing 0 33 NULL
134622 +disable_so_stime_task_struct_41 stime task_struct 0 41 NULL nohasharray
134623 +disable_so_ulist_rbtree_search_fndecl_41 ulist_rbtree_search fndecl 2 41 &disable_so_stime_task_struct_41
134624 +disable_so_pfuze100_set_ramp_delay_fndecl_52 pfuze100_set_ramp_delay fndecl 0-2 52 NULL
134625 +disable_so_make_sockaddr_fndecl_54 make_sockaddr fndecl 2 54 NULL
134626 +disable_so_mmap_min_addr_vardecl_56 mmap_min_addr vardecl 0 56 NULL nohasharray
134627 +disable_so_mwl8k_cmd_get_watchdog_bitmap_fndecl_56 mwl8k_cmd_get_watchdog_bitmap fndecl 0 56 &disable_so_mmap_min_addr_vardecl_56
134628 +disable_so_panel_power_down_delay_cdv_intel_dp_59 panel_power_down_delay cdv_intel_dp 0 59 NULL
134629 +disable_so_max_ref_div_radeon_pll_60 max_ref_div radeon_pll 0 60 NULL
134630 +disable_so_penirq_recheck_delay_usecs_ads7846_81 penirq_recheck_delay_usecs ads7846 0 81 NULL
134631 +disable_so_cobalt_query_dv_timings_fndecl_82 cobalt_query_dv_timings fndecl 0 82 NULL
134632 +disable_so_timeout_slgt_info_83 timeout slgt_info 0 83 NULL
134633 +disable_so_radio_syn_reserved_addr28_b43_nphy_channeltab_entry_rev3_92 radio_syn_reserved_addr28 b43_nphy_channeltab_entry_rev3 0 92 NULL
134634 +disable_so_vsc824x_ack_interrupt_fndecl_109 vsc824x_ack_interrupt fndecl 0 109 NULL
134635 +disable_so_scan_timing_sh_keysc_info_117 scan_timing sh_keysc_info 0 117 NULL
134636 +disable_so_cp_table_gpu_addr_radeon_rlc_124 cp_table_gpu_addr radeon_rlc 0 124 NULL
134637 +disable_so_mpihelp_mul_karatsuba_case_fndecl_125 mpihelp_mul_karatsuba_case fndecl 3-5 125 NULL nohasharray
134638 +disable_so_g84_cipher_object_ctor_fndecl_125 g84_cipher_object_ctor fndecl 0 125 &disable_so_mpihelp_mul_karatsuba_case_fndecl_125
134639 +disable_so_current_nat_addr_fndecl_130 current_nat_addr fndecl 0-2 130 NULL
134640 +disable_so_qla2x00_gid_pt_rsp_size_fndecl_134 qla2x00_gid_pt_rsp_size fndecl 0 134 NULL
134641 +disable_so_zd_check_signal_fndecl_139 zd_check_signal fndecl 0-2 139 NULL
134642 +disable_so_qlcnic_83xx_interrupt_test_fndecl_160 qlcnic_83xx_interrupt_test fndecl 0 160 NULL
134643 +disable_so_show_cpu_clock_sel_fndecl_161 show_cpu_clock_sel fndecl 0 161 NULL
134644 +disable_so_zd_usb_iowrite16v_async_fndecl_163 zd_usb_iowrite16v_async fndecl 3 163 NULL
134645 +disable_so_si_get_mclk_frequency_ratio_fndecl_169 si_get_mclk_frequency_ratio fndecl 0-1 169 NULL
134646 +disable_so_vactive_vblank_hi_detailed_pixel_timing_173 vactive_vblank_hi detailed_pixel_timing 0 173 NULL
134647 +disable_so_ecryptfs_hash_bits_vardecl_messaging_c_174 ecryptfs_hash_bits vardecl_messaging.c 0 174 NULL
134648 +disable_so_addr_efx_endpoint_page_189 addr efx_endpoint_page 0 189 NULL
134649 +disable_so_uptime_proc_open_fndecl_190 uptime_proc_open fndecl 0 190 NULL
134650 +disable_so_mtrr_tom2_vardecl_198 mtrr_tom2 vardecl 0 198 NULL
134651 +disable_so_addr_sh_eth_txdesc_201 addr sh_eth_txdesc 0 201 NULL
134652 +disable_so_ocfs2_info_handle_uuid_fndecl_202 ocfs2_info_handle_uuid fndecl 0 202 NULL
134653 +disable_so_nf_oaktrail_hdmi_clock_216 nf oaktrail_hdmi_clock 0 216 NULL
134654 +disable_so_cpufreq_p4_setdc_fndecl_226 cpufreq_p4_setdc fndecl 1-2 226 NULL
134655 +disable_so_ieee80211_aes_ccm_decrypt_fndecl_227 ieee80211_aes_ccm_decrypt fndecl 0-5-7 227 NULL
134656 +disable_so_l1oip_4bit_to_law_fndecl_247 l1oip_4bit_to_law fndecl 0-2 247 NULL
134657 +disable_so_tune_timeout_vardecl_radio_si470x_common_c_250 tune_timeout vardecl_radio-si470x-common.c 0 250 NULL
134658 +disable_so_ieee80211_aes_cmac_key_setup_fndecl_254 ieee80211_aes_cmac_key_setup fndecl 2 254 NULL
134659 +disable_so_padlock_sha1_finup_fndecl_258 padlock_sha1_finup fndecl 0 258 NULL
134660 +disable_so_iwl_dbgfs_interrupt_read_fndecl_261 iwl_dbgfs_interrupt_read fndecl 3-0 261 NULL
134661 +disable_so_c2_del_addr_fndecl_280 c2_del_addr fndecl 2-3 280 NULL
134662 +disable_so_get_systime_stmmac_hwtimestamp_281 get_systime stmmac_hwtimestamp 0 281 NULL
134663 +disable_so_xfrm_flowi_saddr_fndecl_287 xfrm_flowi_saddr fndecl 2 287 NULL
134664 +disable_so_lifetime_route_info_291 lifetime route_info 0 291 NULL
134665 +disable_so_mtime_cifs_unix_set_info_args_293 mtime cifs_unix_set_info_args 0 293 NULL
134666 +disable_so_sense_addr_mscp_296 sense_addr mscp 0 296 NULL
134667 +disable_so_module_addr_max_rx_vardecl_module_c_304 module_addr_max_rx vardecl_module.c 0 304 NULL
134668 +disable_so_cy8ctmg110_set_sleepmode_fndecl_309 cy8ctmg110_set_sleepmode fndecl 0 309 NULL
134669 +disable_so_signal_cck_phy_hdr_312 signal cck_phy_hdr 0 312 NULL
134670 +disable_so_i915_ring_freq_table_fndecl_313 i915_ring_freq_table fndecl 0 313 NULL
134671 +disable_so_vga16fb_clock_chip_fndecl_316 vga16fb_clock_chip fndecl 2 316 NULL
134672 +disable_so_abituguru_send_address_fndecl_319 abituguru_send_address fndecl 3 319 NULL
134673 +disable_so_err_hci_request_321 err hci_request 0 321 NULL
134674 +disable_so_timeout_sg_io_hdr_322 timeout sg_io_hdr 0 322 NULL
134675 +disable_so_crypto_aead_maxauthsize_fndecl_331 crypto_aead_maxauthsize fndecl 0 331 NULL
134676 +disable_so_gru_first_node_paddr_vardecl_x2apic_uv_x_c_335 gru_first_node_paddr vardecl_x2apic_uv_x.c 0 335 NULL
134677 +disable_so_bitmap_subset_fndecl_340 bitmap_subset fndecl 3 340 NULL
134678 +disable_so_intr_timer_vnic_fc_config_342 intr_timer vnic_fc_config 0 342 NULL
134679 +disable_so_abort_timeout_iscsi_session_343 abort_timeout iscsi_session 0 343 NULL
134680 +disable_so_crypto_authenc_esn_verify_fndecl_345 crypto_authenc_esn_verify fndecl 0 345 NULL
134681 +disable_so_dn_hash_dump_zone_fndecl_347 dn_hash_dump_zone fndecl 0 347 NULL
134682 +disable_so_new_center_freq_seg0_ieee80211_wide_bw_chansw_ie_350 new_center_freq_seg0 ieee80211_wide_bw_chansw_ie 0 350 NULL
134683 +disable_so_ata_probe_timeout_vardecl_libata_core_c_353 ata_probe_timeout vardecl_libata-core.c 0 353 NULL
134684 +disable_so_posix_cpu_clock_get_fndecl_354 posix_cpu_clock_get fndecl 1 354 NULL
134685 +disable_so_ivtv_msleep_timeout_fndecl_356 ivtv_msleep_timeout fndecl 1 356 NULL nohasharray
134686 +disable_so_wrmsrl_amd_safe_fndecl_356 wrmsrl_amd_safe fndecl 0 356 &disable_so_ivtv_msleep_timeout_fndecl_356
134687 +disable_so_bp_tss_segment_16_362 bp tss_segment_16 0 362 NULL
134688 +disable_so_btree_level_jset_372 btree_level jset 0 372 NULL
134689 +disable_so_addr_mlx5_wqe_data_seg_376 addr mlx5_wqe_data_seg 0 376 NULL
134690 +disable_so_pos_encryptor_desc_380 pos encryptor_desc 0 380 NULL
134691 +disable_so_des4_idmac_desc_64addr_382 des4 idmac_desc_64addr 0 382 NULL
134692 +disable_so_huptimer_isdn_net_local_s_386 huptimer isdn_net_local_s 0 386 NULL
134693 +disable_so_ali_settimer_fndecl_390 ali_settimer fndecl 1 390 NULL
134694 +disable_so_show_constraint_time_window_us_fndecl_393 show_constraint_time_window_us fndecl 0 393 NULL nohasharray
134695 +disable_so_queue_con_delay_fndecl_393 queue_con_delay fndecl 2 393 &disable_so_show_constraint_time_window_us_fndecl_393
134696 +disable_so_btrfs_insert_delayed_item_fndecl_394 btrfs_insert_delayed_item fndecl 0 394 NULL nohasharray
134697 +disable_so_reg_w_fndecl_394 reg_w fndecl 3 394 &disable_so_btrfs_insert_delayed_item_fndecl_394
134698 +disable_so_liquidio_ptp_adjfreq_fndecl_396 liquidio_ptp_adjfreq fndecl 2 396 NULL
134699 +disable_so_freq_dvbt_set_parameters_msg_404 freq dvbt_set_parameters_msg 0 404 NULL
134700 +disable_so_uid_btrfs_inode_item_419 uid btrfs_inode_item 0 419 NULL
134701 +disable_so_cuid_ipc64_perm_421 cuid ipc64_perm 0 421 NULL
134702 +disable_so_addr_nvkm_fb_tile_430 addr nvkm_fb_tile 0 430 NULL
134703 +disable_so_st_ctime_nsec_stat_435 st_ctime_nsec stat 0 435 NULL nohasharray
134704 +disable_so_end_seq_tcp_skb_cb_435 end_seq tcp_skb_cb 0 435 &disable_so_st_ctime_nsec_stat_435
134705 +disable_so_ttime_samples_cfq_ttime_442 ttime_samples cfq_ttime 0 442 NULL
134706 +disable_so_snd_timer_interrupt_fndecl_465 snd_timer_interrupt fndecl 2 465 NULL
134707 +disable_so_min_img_ir_timing_range_466 min img_ir_timing_range 0 466 NULL
134708 +disable_so_freq_wmi_cancel_remain_on_chnl_event_472 freq wmi_cancel_remain_on_chnl_event 0 472 NULL
134709 +disable_so_prism54_set_mac_address_fndecl_477 prism54_set_mac_address fndecl 0 477 NULL
134710 +disable_so_ccp_run_xts_aes_cmd_fndecl_481 ccp_run_xts_aes_cmd fndecl 0 481 NULL
134711 +disable_so_queue_time_cqm_rmid_entry_485 queue_time cqm_rmid_entry 0 485 NULL
134712 +disable_so_hpi_sample_clock_query_local_rate_fndecl_487 hpi_sample_clock_query_local_rate fndecl 1-0 487 NULL
134713 +disable_so_bcma_chipco_get_alp_clock_fndecl_488 bcma_chipco_get_alp_clock fndecl 0 488 NULL
134714 +disable_so_musb_read_txhubaddr_fndecl_495 musb_read_txhubaddr fndecl 2-0 495 NULL
134715 +disable_so_timestamp_discovery_state_508 timestamp discovery_state 0 508 NULL
134716 +disable_so_autosleep_show_fndecl_509 autosleep_show fndecl 0 509 NULL
134717 +disable_so_dx_major_hash_ocfs2_dx_entry_517 dx_major_hash ocfs2_dx_entry 0 517 NULL
134718 +disable_so_rhashtable_insert_slow_fndecl_525 rhashtable_insert_slow fndecl 0 525 NULL
134719 +disable_so_vaddr_page_fndecl_526 vaddr_page fndecl 0 526 NULL
134720 +disable_so_apei_check_mce_fndecl_561 apei_check_mce fndecl 0 561 NULL
134721 +disable_so_cifs_convert_address_fndecl_567 cifs_convert_address fndecl 3 567 NULL
134722 +disable_so_nla_put_be32_fndecl_572 nla_put_be32 fndecl 0-3 572 NULL
134723 +disable_so_dn_username2sockaddr_fndecl_573 dn_username2sockaddr fndecl 0-2 573 NULL
134724 +disable_so_compat_sys_timer_settime_fndecl_577 compat_sys_timer_settime fndecl 1 577 NULL
134725 +disable_so_hash_extent_data_ref_fndecl_581 hash_extent_data_ref fndecl 0-1-2-3 581 NULL
134726 +disable_so_addr_buffer1_cmd_desc_type0_591 addr_buffer1 cmd_desc_type0 0 591 NULL
134727 +disable_so_acpi_os_prepare_extended_sleep_fndecl_597 acpi_os_prepare_extended_sleep fndecl 0-2 597 NULL
134728 +disable_so_mdio_addr_port_info_608 mdio_addr port_info 0 608 NULL
134729 +disable_so_dl_runtime_dl_bandwidth_609 dl_runtime dl_bandwidth 0 609 NULL
134730 +disable_so_sense_addr_asc_scsiq_1_628 sense_addr asc_scsiq_1 0 628 NULL
134731 +disable_so_x86_cache_max_rmid_cpuinfo_x86_631 x86_cache_max_rmid cpuinfo_x86 0 631 NULL
134732 +disable_so_wm8978_set_dai_clkdiv_fndecl_638 wm8978_set_dai_clkdiv fndecl 3-0 638 NULL
134733 +disable_so_new_cpufreq_freqs_646 new cpufreq_freqs 0 646 NULL
134734 +disable_so_max_offchan_duration_iwl_tdls_channel_switch_timing_649 max_offchan_duration iwl_tdls_channel_switch_timing 0 649 NULL
134735 +disable_so_i_ctime_nsec_ocfs2_dinode_657 i_ctime_nsec ocfs2_dinode 0 657 NULL
134736 +disable_so_req_dma_addr_generic_pdu_resc_661 req_dma_addr generic_pdu_resc 0 661 NULL
134737 +disable_so_minor_hash_fname_673 minor_hash fname 0 673 NULL
134738 +disable_so_sprintf_temp_from_reg_fndecl_675 sprintf_temp_from_reg fndecl 0-3 675 NULL
134739 +disable_so_cpu_freq_to_power_fndecl_677 cpu_freq_to_power fndecl 0-2 677 NULL
134740 +disable_so_timbradio_vidioc_s_frequency_fndecl_688 timbradio_vidioc_s_frequency fndecl 0 688 NULL
134741 +disable_so_target_bfa_bsg_rport_scsi_addr_s_690 target bfa_bsg_rport_scsi_addr_s 0 690 NULL
134742 +disable_so_cs_addr_snd_ak4xxx_private_693 cs_addr snd_ak4xxx_private 0 693 NULL
134743 +disable_so_s3_set_pixclock_fndecl_694 s3_set_pixclock fndecl 2 694 NULL
134744 +disable_so_write_gracetime_fndecl_705 write_gracetime fndecl 0 705 NULL
134745 +disable_so_smack_task_getpgid_fndecl_708 smack_task_getpgid fndecl 0 708 NULL
134746 +disable_so_wl1251_acx_service_period_timeout_fndecl_709 wl1251_acx_service_period_timeout fndecl 0 709 NULL
134747 +disable_so_gid_ubifs_ino_node_712 gid ubifs_ino_node 0 712 NULL
134748 +disable_so___sony_nc_kbd_backlight_timeout_set_fndecl_713 __sony_nc_kbd_backlight_timeout_set fndecl 1 713 NULL
134749 +disable_so_watchdog_init_timeout_fndecl_721 watchdog_init_timeout fndecl 2 721 NULL
134750 +disable_so_led_on_time_adp8870_backlight_platform_data_723 led_on_time adp8870_backlight_platform_data 0 723 NULL
134751 +disable_so_txhubaddr_musb_csr_regs_727 txhubaddr musb_csr_regs 0 727 NULL
134752 +disable_so_flexonenand_addr_fndecl_731 flexonenand_addr fndecl 0-2 731 NULL
134753 +disable_so_scan_timestamp_local_info_733 scan_timestamp local_info 0 733 NULL
134754 +disable_so_brcmf_dongle_scantime_fndecl_735 brcmf_dongle_scantime fndecl 2-3-4-0 735 NULL
134755 +disable_so_pg_delay_d_vardecl_pktgen_c_748 pg_delay_d vardecl_pktgen.c 0 748 NULL
134756 +disable_so_current_sit_addr_fndecl_752 current_sit_addr fndecl 0-2 752 NULL
134757 +disable_so_mix_msr_src_node_conf_t_769 mix_msr src_node_conf_t 0 769 NULL
134758 +disable_so_sha1_mb_async_final_fndecl_780 sha1_mb_async_final fndecl 0 780 NULL
134759 +disable_so_dma_addr_ipw2100_rx_packet_785 dma_addr ipw2100_rx_packet 0 785 NULL
134760 +disable_so_addrHigh_lpfc_pde7_802 addrHigh lpfc_pde7 0 802 NULL
134761 +disable_so_frequency_cpufreq_frequency_table_805 frequency cpufreq_frequency_table 0 805 NULL
134762 +disable_so_timer_int_req_nes_device_806 timer_int_req nes_device 0 806 NULL
134763 +disable_so_if_freq_mxl5005s_config_819 if_freq mxl5005s_config 0 819 NULL
134764 +disable_so_radix_tree_lookup_fndecl_821 radix_tree_lookup fndecl 2 821 NULL
134765 +disable_so_subdivision_dma_buffparms_826 subdivision dma_buffparms 0 826 NULL
134766 +disable_so_HYPERVISOR_event_channel_op_fndecl_838 HYPERVISOR_event_channel_op fndecl 0 838 NULL
134767 +disable_so_dm_jiffies_to_msec64_fndecl_843 dm_jiffies_to_msec64 fndecl 1-0 843 NULL
134768 +disable_so_trim_bitmaps_fndecl_845 trim_bitmaps fndecl 0-3-4-5 845 NULL
134769 +disable_so_cg_spll_spread_spectrum_2_ni_clock_registers_846 cg_spll_spread_spectrum_2 ni_clock_registers 0 846 NULL
134770 +disable_so_xfs_btree_increment_fndecl_856 xfs_btree_increment fndecl 0 856 NULL nohasharray
134771 +disable_so_xfs_btree_ptr_offset_fndecl_856 xfs_btree_ptr_offset fndecl 0-2 856 &disable_so_xfs_btree_increment_fndecl_856
134772 +disable_so_put_unaligned_be32_fndecl_861 put_unaligned_be32 fndecl 1 861 NULL
134773 +disable_so_acpi_os_map_generic_address_fndecl_862 acpi_os_map_generic_address fndecl 0 862 NULL
134774 +disable_so_mpll_func_cntl_1_ci_clock_registers_864 mpll_func_cntl_1 ci_clock_registers 0 864 NULL
134775 +disable_so_buffer_warning_time_budget_870 buffer_warning_time budget 0 870 NULL
134776 +disable_so_imr_sourceaddr_ip_mreq_source_875 imr_sourceaddr ip_mreq_source 0 875 NULL
134777 +disable_so_msi2500_s_frequency_fndecl_879 msi2500_s_frequency fndecl 0 879 NULL
134778 +disable_so_tx_bd_haddr_hi_bnx2_tx_bd_881 tx_bd_haddr_hi bnx2_tx_bd 0 881 NULL
134779 +disable_so_wmi_addr_fndecl_882 wmi_addr fndecl 2 882 NULL
134780 +disable_so_rt6_info_hash_nhsfn_fndecl_886 rt6_info_hash_nhsfn fndecl 0-1 886 NULL
134781 +disable_so_snd_seq_oss_timer_stop_fndecl_904 snd_seq_oss_timer_stop fndecl 0 904 NULL
134782 +disable_so_addr_lo_rx_desc_909 addr_lo rx_desc 0 909 NULL
134783 +disable_so_bx_tss_segment_16_926 bx tss_segment_16 0 926 NULL
134784 +disable_so_inactive_time_station_info_927 inactive_time station_info 0 927 NULL
134785 +disable_so_last_reset_jiffies_iwl_rf_reset_931 last_reset_jiffies iwl_rf_reset 0 931 NULL
134786 +disable_so_shm_dtime_shmid64_ds_943 shm_dtime shmid64_ds 0 943 NULL
134787 +disable_so_autosleep_store_fndecl_949 autosleep_store fndecl 0-4 949 NULL nohasharray
134788 +disable_so_sit_base_addr_sit_info_949 sit_base_addr sit_info 0 949 &disable_so_autosleep_store_fndecl_949
134789 +disable_so_ageing_time_net_bridge_957 ageing_time net_bridge 0 957 NULL
134790 +disable_so_set_frequency_shifter_fndecl_959 set_frequency_shifter fndecl 0-2-3 959 NULL
134791 +disable_so_pci_bus_vardecl_bkm_a8_c_960 pci_bus vardecl_bkm_a8.c 0 960 NULL
134792 +disable_so_i_uid_ext2_inode_963 i_uid ext2_inode 0 963 NULL
134793 +disable_so_cpufreq_cpu_get_fndecl_965 cpufreq_cpu_get fndecl 1 965 NULL
134794 +disable_so_tsc_offset_vmcb_control_area_968 tsc_offset vmcb_control_area 0 968 NULL
134795 +disable_so_read_addr_qla8044_minidump_entry_rdmem_977 read_addr qla8044_minidump_entry_rdmem 0 977 NULL
134796 +disable_so_addr1_nphy_rf_control_override_rev2_978 addr1 nphy_rf_control_override_rev2 0 978 NULL
134797 +disable_so_qdisc_class_hash_fndecl_982 qdisc_class_hash fndecl 0-1-2 982 NULL
134798 +disable_so_crypto_register_ahash_fndecl_984 crypto_register_ahash fndecl 0 984 NULL
134799 +disable_so_addr_unlock2_cfi_private_989 addr_unlock2 cfi_private 0 989 NULL
134800 +disable_so_calc_baud_rate_divisor_fndecl_995 calc_baud_rate_divisor fndecl 2 995 NULL
134801 +disable_so_scsi_runtime_suspend_fndecl_1008 scsi_runtime_suspend fndecl 0 1008 NULL
134802 +disable_so_gran_sizek_var_mtrr_state_1012 gran_sizek var_mtrr_state 0 1012 NULL
134803 +disable_so_ax25_uid_info_open_fndecl_1028 ax25_uid_info_open fndecl 0 1028 NULL
134804 +disable_so_sh_mmcif_clock_control_fndecl_1029 sh_mmcif_clock_control fndecl 2 1029 NULL
134805 +disable_so_SYSC_setresgid_fndecl_1032 SYSC_setresgid fndecl 0 1032 NULL
134806 +disable_so_f1x_lookup_addr_in_dct_fndecl_1033 f1x_lookup_addr_in_dct fndecl 0-1-2-3 1033 NULL
134807 +disable_so_ufshcd_pci_runtime_suspend_fndecl_1044 ufshcd_pci_runtime_suspend fndecl 0 1044 NULL
134808 +disable_so_rme9652_set_interrupt_interval_fndecl_1049 rme9652_set_interrupt_interval fndecl 2 1049 NULL
134809 +disable_so_kgdb_validate_break_address_fndecl_1055 kgdb_validate_break_address fndecl 0 1055 NULL
134810 +disable_so_cp_mqd_base_addr_hi_hqd_registers_1058 cp_mqd_base_addr_hi hqd_registers 0 1058 NULL
134811 +disable_so_serial8250_get_divisor_fndecl_1063 serial8250_get_divisor fndecl 2-0 1063 NULL
134812 +disable_so_mpll_func_cntl_ci_clock_registers_1072 mpll_func_cntl ci_clock_registers 0 1072 NULL
134813 +disable_so_dma_addr_iser_tx_desc_1074 dma_addr iser_tx_desc 0 1074 NULL nohasharray
134814 +disable_so_fail_addr_erase_info_1074 fail_addr erase_info 0 1074 &disable_so_dma_addr_iser_tx_desc_1074
134815 +disable_so_timeout_static_key_deferred_1078 timeout static_key_deferred 0 1078 NULL
134816 +disable_so_uid_vardecl_initramfs_c_1083 uid vardecl_initramfs.c 0 1083 NULL
134817 +disable_so_amdgpu_mm_rreg_fndecl_1084 amdgpu_mm_rreg fndecl 0-2 1084 NULL
134818 +disable_so_hash_ip6_expire_fndecl_1088 hash_ip6_expire fndecl 4 1088 NULL
134819 +disable_so_addr_buffer4_cmd_desc_type0_1089 addr_buffer4 cmd_desc_type0 0 1089 NULL
134820 +disable_so__snd_hdac_read_parm_fndecl_1100 _snd_hdac_read_parm fndecl 3-2-0 1100 NULL
134821 +disable_so_mlx5_query_mad_ifc_gids_fndecl_1101 mlx5_query_mad_ifc_gids fndecl 0 1101 NULL
134822 +disable_so_dbgfs_prph_reg_addr_iwl_mvm_1102 dbgfs_prph_reg_addr iwl_mvm 0 1102 NULL
134823 +disable_so_cttimeout_default_fill_info_fndecl_1107 cttimeout_default_fill_info fndecl 4-3-6-0 1107 NULL
134824 +disable_so_expiry_time_cache_head_1108 expiry_time cache_head 0 1108 NULL
134825 +disable_so_dma_desc_set_addr_fndecl_1139 dma_desc_set_addr fndecl 3 1139 NULL
134826 +disable_so_addr_crb_addr_pair_1140 addr crb_addr_pair 0 1140 NULL
134827 +disable_so_sleep_dvb_tuner_ops_1155 sleep dvb_tuner_ops 0 1155 NULL
134828 +disable_so_info_for_irq_fndecl_1159 info_for_irq fndecl 1 1159 NULL
134829 +disable_so_mlx4_ib_find_real_gid_fndecl_1163 mlx4_ib_find_real_gid fndecl 2 1163 NULL
134830 +disable_so_timestamp_perf_cgroup_info_1168 timestamp perf_cgroup_info 0 1168 NULL
134831 +disable_so_mthca_QUERY_FW_fndecl_1176 mthca_QUERY_FW fndecl 0 1176 NULL
134832 +disable_so_fc_exch_set_addr_fndecl_1180 fc_exch_set_addr fndecl 2-3 1180 NULL
134833 +disable_so_rhashtable_rehash_chain_fndecl_1192 rhashtable_rehash_chain fndecl 2 1192 NULL
134834 +disable_so_own_addr_tipc_net_1206 own_addr tipc_net 0 1206 NULL
134835 +disable_so_ip6addrlbl_alloc_fndecl_1212 ip6addrlbl_alloc fndecl 4 1212 NULL
134836 +disable_so_nft_hash_init_fndecl_1216 nft_hash_init fndecl 0 1216 NULL
134837 +disable_so_max_freq_cpufreq_cpuinfo_1219 max_freq cpufreq_cpuinfo 0 1219 NULL
134838 +disable_so_spi_port_rcvhdr_tailaddr_ipath_base_info_1223 spi_port_rcvhdr_tailaddr ipath_base_info 0 1223 NULL
134839 +disable_so_ceph_vxattrcb_dir_rctime_fndecl_1240 ceph_vxattrcb_dir_rctime fndecl 3-0 1240 NULL
134840 +disable_so_cas_interrupt_fndecl_1242 cas_interrupt fndecl 1 1242 NULL nohasharray
134841 +disable_so_set_msr_hyperv_fndecl_1242 set_msr_hyperv fndecl 3 1242 &disable_so_cas_interrupt_fndecl_1242
134842 +disable_so_mmc_rescan_try_freq_fndecl_1249 mmc_rescan_try_freq fndecl 2 1249 NULL
134843 +disable_so_rtsx_pci_write_be32_fndecl_1251 rtsx_pci_write_be32 fndecl 2-3 1251 NULL
134844 +disable_so_sum_sleep_runtime_sched_statistics_1253 sum_sleep_runtime sched_statistics 0 1253 NULL
134845 +disable_so_flags_pt_regs_1254 flags pt_regs 0 1254 NULL
134846 +disable_so_bug10934_timer_txc43128_data_1290 bug10934_timer txc43128_data 0 1290 NULL nohasharray
134847 +disable_so_rq_size_log2_t3_wq_1290 rq_size_log2 t3_wq 0 1290 &disable_so_bug10934_timer_txc43128_data_1290
134848 +disable_so_do_sched_rt_period_timer_fndecl_1292 do_sched_rt_period_timer fndecl 2 1292 NULL
134849 +disable_so_db_dma_address_skd_special_context_1295 db_dma_address skd_special_context 0 1295 NULL
134850 +disable_so_time_stamp_hbq_dmabuf_1300 time_stamp hbq_dmabuf 0 1300 NULL
134851 +disable_so_print_vma_addr_fndecl_1312 print_vma_addr fndecl 2 1312 NULL
134852 +disable_so_max_acl_mac_addrs_wiphy_1316 max_acl_mac_addrs wiphy 0 1316 NULL
134853 +disable_so_shash_async_update_fndecl_1319 shash_async_update fndecl 0 1319 NULL
134854 +disable_so_programm_delay_vardecl_nandsim_c_1320 programm_delay vardecl_nandsim.c 0 1320 NULL
134855 +disable_so_stimescaled_task_struct_1330 stimescaled task_struct 0 1330 NULL nohasharray
134856 +disable_so_p_gma_clock_t_1330 p gma_clock_t 0 1330 &disable_so_stimescaled_task_struct_1330
134857 +disable_so_bitmap_bytes_fndecl_1338 bitmap_bytes fndecl 0-1-2 1338 NULL
134858 +disable_so_max8649_enable_time_fndecl_1340 max8649_enable_time fndecl 0 1340 NULL
134859 +disable_so_sg_set_timeout_fndecl_1360 sg_set_timeout fndecl 0 1360 NULL
134860 +disable_so_mrp_join_time_vardecl_mrp_c_1361 mrp_join_time vardecl_mrp.c 0 1361 NULL
134861 +disable_so_queue_address_queue_properties_1364 queue_address queue_properties 0 1364 NULL
134862 +disable_so_adfs_unix2adfs_time_fndecl_1365 adfs_unix2adfs_time fndecl 2 1365 NULL nohasharray
134863 +disable_so_start_rmt_timer2_fndecl_1365 start_rmt_timer2 fndecl 2 1365 &disable_so_adfs_unix2adfs_time_fndecl_1365
134864 +disable_so_qla2x00_gid_list_size_fndecl_1367 qla2x00_gid_list_size fndecl 0 1367 NULL nohasharray
134865 +disable_so_sr_get_phy_addr_fndecl_1367 sr_get_phy_addr fndecl 0 1367 &disable_so_qla2x00_gid_list_size_fndecl_1367
134866 +disable_so_rb_subtree_last_anon_vma_chain_1370 rb_subtree_last anon_vma_chain 0 1370 NULL
134867 +disable_so_snd_soc_runtime_activate_fndecl_1372 snd_soc_runtime_activate fndecl 2 1372 NULL nohasharray
134868 +disable_so_gateway_ctrl_address_wil_fw_record_gateway_data4_1372 gateway_ctrl_address wil_fw_record_gateway_data4 0 1372 &disable_so_snd_soc_runtime_activate_fndecl_1372
134869 +disable_so_timer_elsa_hw_1375 timer elsa_hw 0 1375 NULL nohasharray
134870 +disable_so_sched_setscheduler_fndecl_1375 sched_setscheduler fndecl 2-0 1375 &disable_so_timer_elsa_hw_1375 nohasharray
134871 +disable_so_bitmap_check_fndecl_1375 bitmap_check fndecl 3 1375 &disable_so_sched_setscheduler_fndecl_1375
134872 +disable_so_pwr_wake_on_timer_exp_read_fndecl_1379 pwr_wake_on_timer_exp_read fndecl 3-0 1379 NULL
134873 +disable_so_prev_input_time_vardecl_sequencer_c_1380 prev_input_time vardecl_sequencer.c 0 1380 NULL
134874 +disable_so_mii_phy_addr_gem_1381 mii_phy_addr gem 0 1381 NULL
134875 +disable_so_snd_seq_queue_timer_set_tempo_fndecl_1388 snd_seq_queue_timer_set_tempo fndecl 1-2 1388 NULL
134876 +disable_so_efx_ef10_rx_enable_timestamping_fndecl_1394 efx_ef10_rx_enable_timestamping fndecl 0 1394 NULL
134877 +disable_so_xfrm_src_hash_fndecl_1398 xfrm_src_hash fndecl 0-4 1398 NULL
134878 +disable_so_set_pixclock_fndecl_1401 set_pixclock fndecl 2 1401 NULL
134879 +disable_so_start_dma_addr_vardecl_swiotlb_xen_c_1402 start_dma_addr vardecl_swiotlb-xen.c 0 1402 NULL
134880 +disable_so_pcm512x_set_dividers_fndecl_1412 pcm512x_set_dividers fndecl 0 1412 NULL
134881 +disable_so_frequency_tea5761_priv_1416 frequency tea5761_priv 0 1416 NULL
134882 +disable_so_ifa_flags_ifaddrmsg_1431 ifa_flags ifaddrmsg 0 1431 NULL
134883 +disable_so_last_queue_full_time_scsi_device_1432 last_queue_full_time scsi_device 0 1432 NULL
134884 +disable_so_dma_ops_reserve_addresses_fndecl_1438 dma_ops_reserve_addresses fndecl 2-3 1438 NULL
134885 +disable_so_reg_w_fndecl_1440 reg_w fndecl 4-0 1440 NULL
134886 +disable_so_tomoyo_check_inet_address_fndecl_1442 tomoyo_check_inet_address fndecl 0-2-3 1442 NULL
134887 +disable_so_is_oldclock_fndecl_1444 is_oldclock fndecl 1 1444 NULL
134888 +disable_so_width_latch_addr_flash_data_1448 width latch_addr_flash_data 0 1448 NULL
134889 +disable_so_tuner_address_ix2505v_config_1466 tuner_address ix2505v_config 0 1466 NULL
134890 +disable_so_alarm_setitimer_fndecl_1477 alarm_setitimer fndecl 1-0 1477 NULL
134891 +disable_so_enc28j60_rx_interrupt_fndecl_1478 enc28j60_rx_interrupt fndecl 0 1478 NULL
134892 +disable_so_i2c_address_xc4000_config_1488 i2c_address xc4000_config 0 1488 NULL
134893 +disable_so_dx_runtime_sc_1503 dx runtime_sc 0 1503 NULL
134894 +disable_so_tda827x_addr_tda8290_priv_1514 tda827x_addr tda8290_priv 0 1514 NULL
134895 +disable_so_addr_sym_tblmove_1540 addr sym_tblmove 0 1540 NULL
134896 +disable_so_cs_tss_segment_16_1560 cs tss_segment_16 0 1560 NULL
134897 +disable_so_demod_address_drxk_state_1562 demod_address drxk_state 0 1562 NULL
134898 +disable_so_enable_time_regulation_constraints_1573 enable_time regulation_constraints 0 1573 NULL nohasharray
134899 +disable_so_dma_addr_flexcop_usb_1573 dma_addr flexcop_usb 0 1573 &disable_so_enable_time_regulation_constraints_1573
134900 +disable_so_dma_addr_cas_page_1575 dma_addr cas_page 0 1575 NULL
134901 +disable_so_start_read_delay_c_1578 start_read delay_c 0 1578 NULL
134902 +disable_so_complete_crypto_async_request_1579 complete crypto_async_request 2 1579 NULL
134903 +disable_so_cycles_2_us_fndecl_1583 cycles_2_us fndecl 0-1 1583 NULL
134904 +disable_so_pd_timeout_vardecl_pd_c_1584 pd_timeout vardecl_pd.c 0 1584 NULL
134905 +disable_so_last_end_request_cfq_ttime_1591 last_end_request cfq_ttime 0 1591 NULL
134906 +disable_so_addr_sky2_rx_le_1593 addr sky2_rx_le 0 1593 NULL
134907 +disable_so_tick_raw_sched_clock_data_1597 tick_raw sched_clock_data 0 1597 NULL
134908 +disable_so_if_freq_khz_pll_tab_1599 if_freq_khz pll_tab 0 1599 NULL
134909 +disable_so_set_clock_info_fndecl_1600 set_clock_info fndecl 0 1600 NULL
134910 +disable_so_bs_delay_cx24113_state_1602 bs_delay cx24113_state 0 1602 NULL
134911 +disable_so_address_atto_physical_region_description_1608 address atto_physical_region_description 0 1608 NULL
134912 +disable_so_jiffies_force_qs_rcu_state_1611 jiffies_force_qs rcu_state 0 1611 NULL
134913 +disable_so_mpll_ad_func_cntl_si_clock_registers_1615 mpll_ad_func_cntl si_clock_registers 0 1615 NULL
134914 +disable_so___new_c_uuid_parms_from_attrs_fndecl_1628 __new_c_uuid_parms_from_attrs fndecl 0 1628 NULL
134915 +disable_so___btree_sort_fndecl_1629 __btree_sort fndecl 4 1629 NULL
134916 +disable_so_crypto_authenc_encrypt_done_fndecl_1634 crypto_authenc_encrypt_done fndecl 2 1634 NULL
134917 +disable_so_uhci_submit_interrupt_fndecl_1635 uhci_submit_interrupt fndecl 0 1635 NULL
134918 +disable_so_es_tss_segment_16_1639 es tss_segment_16 0 1639 NULL
134919 +disable_so_addrHigh_sge_ieee1212_1649 addrHigh sge_ieee1212 0 1649 NULL
134920 +disable_so_btree_insert_level_fndecl_1651 btree_insert_level fndecl 6 1651 NULL
134921 +disable_so_calc_gus_envelope_time_fndecl_1653 calc_gus_envelope_time fndecl 1-2-3-0 1653 NULL
134922 +disable_so_rhashtable_shrink_fndecl_1657 rhashtable_shrink fndecl 0 1657 NULL
134923 +disable_so_jiffies_next_msi2500_state_1659 jiffies_next msi2500_state 0 1659 NULL
134924 +disable_so_di_gid_dinode_1663 di_gid dinode 0 1663 NULL
134925 +disable_so_address_drm_radeon_surface_alloc_1665 address drm_radeon_surface_alloc 0 1665 NULL
134926 +disable_so_nsec_btrfs_ioctl_timespec_1668 nsec btrfs_ioctl_timespec 0 1668 NULL
134927 +disable_so_uptime_sysinfo_1669 uptime sysinfo 0 1669 NULL
134928 +disable_so_timeout_mgmt_cp_add_advertising_1685 timeout mgmt_cp_add_advertising 0 1685 NULL nohasharray
134929 +disable_so_systime_fndecl_1685 systime fndecl 0 1685 &disable_so_timeout_mgmt_cp_add_advertising_1685 nohasharray
134930 +disable_so_addr0_ulptx_sgl_1685 addr0 ulptx_sgl 0 1685 &disable_so_systime_fndecl_1685
134931 +disable_so_poll_timeout_irlap_cb_1688 poll_timeout irlap_cb 0 1688 NULL nohasharray
134932 +disable_so_tsc_irq_max8925_chip_1688 tsc_irq max8925_chip 0 1688 &disable_so_poll_timeout_irlap_cb_1688
134933 +disable_so_pbl_addr_t3_swrq_1691 pbl_addr t3_swrq 0 1691 NULL
134934 +disable_so_ar_addr_qlc_83xx_quad_entry_1699 ar_addr qlc_83xx_quad_entry 0 1699 NULL
134935 +disable_so_min_freq_softlimit_intel_gen6_power_mgmt_1704 min_freq_softlimit intel_gen6_power_mgmt 0 1704 NULL
134936 +disable_so_spkt_family_sockaddr_pkt_1712 spkt_family sockaddr_pkt 0 1712 NULL
134937 +disable_so_timeout_vardecl_w83877f_wdt_c_1721 timeout vardecl_w83877f_wdt.c 0 1721 NULL
134938 +disable_so_nfs_map_gid_to_group_fndecl_1724 nfs_map_gid_to_group fndecl 4-0 1724 NULL
134939 +disable_so_iram_offset_sst_addr_1727 iram_offset sst_addr 0 1727 NULL
134940 +disable_so_mp_lapic_addr_vardecl_1729 mp_lapic_addr vardecl 0 1729 NULL
134941 +disable_so_apei_write_mce_fndecl_1731 apei_write_mce fndecl 0 1731 NULL
134942 +disable_so_spectrum_stv0900_signal_info_1736 spectrum stv0900_signal_info 0 1736 NULL
134943 +disable_so_hash_ipmark6_expire_fndecl_1741 hash_ipmark6_expire fndecl 4 1741 NULL
134944 +disable_so_r100_mm_rreg_slow_fndecl_1751 r100_mm_rreg_slow fndecl 2-0 1751 NULL
134945 +disable_so_gntdev_ioctl_get_offset_for_vaddr_fndecl_1754 gntdev_ioctl_get_offset_for_vaddr fndecl 0 1754 NULL
134946 +disable_so_cm36651_write_int_time_fndecl_1774 cm36651_write_int_time fndecl 0 1774 NULL
134947 +disable_so_dp_clock_radeon_connector_atom_dig_1775 dp_clock radeon_connector_atom_dig 0 1775 NULL nohasharray
134948 +disable_so_am79c_ack_interrupt_fndecl_1775 am79c_ack_interrupt fndecl 0 1775 &disable_so_dp_clock_radeon_connector_atom_dig_1775
134949 +disable_so_phys_addr_qlcnic_host_tx_ring_1780 phys_addr qlcnic_host_tx_ring 0 1780 NULL nohasharray
134950 +disable_so_read_addr_qla83xx_minidump_entry_rdmux2_1780 read_addr qla83xx_minidump_entry_rdmux2 0 1780 &disable_so_phys_addr_qlcnic_host_tx_ring_1780
134951 +disable_so_select_addr_1_qla83xx_minidump_entry_rdmux2_1790 select_addr_1 qla83xx_minidump_entry_rdmux2 0 1790 NULL
134952 +disable_so___padata_set_cpumasks_fndecl_1793 __padata_set_cpumasks fndecl 0 1793 NULL
134953 +disable_so_padlock_sha_init_fndecl_1815 padlock_sha_init fndecl 0 1815 NULL
134954 +disable_so_acpi_cpufreq_early_init_fndecl_1824 acpi_cpufreq_early_init fndecl 0 1824 NULL
134955 +disable_so_dst_addr_ioat_xor_descriptor_1835 dst_addr ioat_xor_descriptor 0 1835 NULL
134956 +disable_so_sadb_lifetime_bytes_sadb_lifetime_1836 sadb_lifetime_bytes sadb_lifetime 0 1836 NULL
134957 +disable_so_event_box_addr_wl1251_1839 event_box_addr wl1251 0 1839 NULL
134958 +disable_so_addr_ahci_sg_1848 addr ahci_sg 0 1848 NULL
134959 +disable_so_acct_timexpd_task_struct_1854 acct_timexpd task_struct 0 1854 NULL
134960 +disable_so_mkey_lease_timeout_ipath_ibdev_1856 mkey_lease_timeout ipath_ibdev 0 1856 NULL nohasharray
134961 +disable_so_paddr_idt77252_skb_prv_1856 paddr idt77252_skb_prv 0 1856 &disable_so_mkey_lease_timeout_ipath_ibdev_1856
134962 +disable_so_timeout_dmatest_params_1857 timeout dmatest_params 0 1857 NULL
134963 +disable_so_cipso_v4_bitmap_setbit_fndecl_1861 cipso_v4_bitmap_setbit fndecl 2 1861 NULL
134964 +disable_so_sun6i_spi_runtime_resume_fndecl_1869 sun6i_spi_runtime_resume fndecl 0 1869 NULL
134965 +disable_so_shash_ahash_update_fndecl_1877 shash_ahash_update fndecl 0 1877 NULL
134966 +disable_so_ss_family___kernel_sockaddr_storage_1886 ss_family __kernel_sockaddr_storage 0 1886 NULL
134967 +disable_so_swap_time_bloom_pair_1898 swap_time bloom_pair 0 1898 NULL nohasharray
134968 +disable_so_blank_time_dce6_wm_params_1898 blank_time dce6_wm_params 0 1898 &disable_so_swap_time_bloom_pair_1898
134969 +disable_so_btree_order_fndecl_1901 btree_order fndecl 0 1901 NULL
134970 +disable_so_sil_iowrite16_fndecl_1906 sil_iowrite16 fndecl 3-2 1906 NULL
134971 +disable_so_service_timer_period_i40e_pf_1923 service_timer_period i40e_pf 0 1923 NULL nohasharray
134972 +disable_so_address_acpi_resource_fixed_memory32_1923 address acpi_resource_fixed_memory32 0 1923 &disable_so_service_timer_period_i40e_pf_1923
134973 +disable_so_paddr_dw_spi_1926 paddr dw_spi 0 1926 NULL
134974 +disable_so___audit_sockaddr_fndecl_1929 __audit_sockaddr fndecl 1 1929 NULL
134975 +disable_so_ieee80211_aes_gcm_key_setup_encrypt_fndecl_1936 ieee80211_aes_gcm_key_setup_encrypt fndecl 2 1936 NULL
134976 +disable_so_mce_chrdev_open_fndecl_1937 mce_chrdev_open fndecl 0 1937 NULL
134977 +disable_so_shadow_reg_phy_addr_ql3_adapter_1940 shadow_reg_phy_addr ql3_adapter 0 1940 NULL
134978 +disable_so_dma_addr_t3_cq_1953 dma_addr t3_cq 0 1953 NULL
134979 +disable_so_crypto_pcbc_decrypt_inplace_fndecl_1957 crypto_pcbc_decrypt_inplace fndecl 0 1957 NULL
134980 +disable_so_sw_reset_and_clock_fndecl_1963 sw_reset_and_clock fndecl 0 1963 NULL
134981 +disable_so_wp_next_time_fndecl_1967 wp_next_time fndecl 0-1 1967 NULL
134982 +disable_so_timer_expires_dev_pm_info_1979 timer_expires dev_pm_info 0 1979 NULL
134983 +disable_so_dll_cntl_si_clock_registers_1988 dll_cntl si_clock_registers 0 1988 NULL
134984 +disable_so_sysctl_x25_clear_request_timeout_vardecl_2007 sysctl_x25_clear_request_timeout vardecl 0 2007 NULL
134985 +disable_so___skb_complete_tx_timestamp_fndecl_2011 __skb_complete_tx_timestamp fndecl 3 2011 NULL
134986 +disable_so_st_ctime_compat_stat_2020 st_ctime compat_stat 0 2020 NULL
134987 +disable_so_ns_nongc_ctime_the_nilfs_2021 ns_nongc_ctime the_nilfs 0 2021 NULL
134988 +disable_so_slave_address_cp2112_write_read_req_report_2022 slave_address cp2112_write_read_req_report 0 2022 NULL
134989 +disable_so_beacon_timeout_ms_show_fndecl_2029 beacon_timeout_ms_show fndecl 0 2029 NULL
134990 +disable_so_daddr_lap_cb_2033 daddr lap_cb 0 2033 NULL
134991 +disable_so_next_txd_phys_addr_mwl8k_tx_desc_2040 next_txd_phys_addr mwl8k_tx_desc 0 2040 NULL
134992 +disable_so_tps65910_rtc_set_time_fndecl_2042 tps65910_rtc_set_time fndecl 0 2042 NULL
134993 +disable_so_address_sg_list_2047 address sg_list 0 2047 NULL
134994 +disable_so_r62_val_fc2580_freq_regs_2052 r62_val fc2580_freq_regs 0 2052 NULL
134995 +disable_so_atomic64_cmpxchg_fndecl_2053 atomic64_cmpxchg fndecl 0-2-3 2053 NULL
134996 +disable_so_delay_cfg80211_coalesce_rules_2055 delay cfg80211_coalesce_rules 0 2055 NULL
134997 +disable_so_addrconf_sysctl_register_fndecl_2065 addrconf_sysctl_register fndecl 0 2065 NULL nohasharray
134998 +disable_so_max_timeout_watchdog_device_2065 max_timeout watchdog_device 0 2065 &disable_so_addrconf_sysctl_register_fndecl_2065
134999 +disable_so_gid_autofs_v5_packet_2071 gid autofs_v5_packet 0 2071 NULL
135000 +disable_so_ratio_t_rj54n1_clock_div_2081 ratio_t rj54n1_clock_div 0 2081 NULL
135001 +disable_so_compat_sys_signalfd4_fndecl_2082 compat_sys_signalfd4 fndecl 0-4 2082 NULL
135002 +disable_so_demod_address_ds3000_config_2084 demod_address ds3000_config 0 2084 NULL
135003 +disable_so_xfrm_flowi_addr_get_fndecl_2087 xfrm_flowi_addr_get fndecl 4 2087 NULL
135004 +disable_so_ts_delay_vardecl_ucb1400_ts_c_2088 ts_delay vardecl_ucb1400_ts.c 0 2088 NULL
135005 +disable_so_get_cpu_iowait_time_us_fndecl_2097 get_cpu_iowait_time_us fndecl 0-1 2097 NULL
135006 +disable_so_crypto_sha1_finup_fndecl_2101 crypto_sha1_finup fndecl 3 2101 NULL
135007 +disable_so_wlc_phy_chan2freq_nphy_fndecl_2103 wlc_phy_chan2freq_nphy fndecl 2 2103 NULL
135008 +disable_so_palmas_smps_set_ramp_delay_fndecl_2110 palmas_smps_set_ramp_delay fndecl 0 2110 NULL
135009 +disable_so_ncp_add_be32_fndecl_2114 ncp_add_be32 fndecl 2 2114 NULL
135010 +disable_so_fast_div_bias_ath_hw_antcomb_conf_2119 fast_div_bias ath_hw_antcomb_conf 0 2119 NULL
135011 +disable_so_memconsole_baseaddr_vardecl_memconsole_c_2130 memconsole_baseaddr vardecl_memconsole.c 0 2130 NULL
135012 +disable_so_max8907_rtc_read_time_fndecl_2134 max8907_rtc_read_time fndecl 0 2134 NULL
135013 +disable_so_cur_daddr_pktgen_dev_2141 cur_daddr pktgen_dev 0 2141 NULL
135014 +disable_so_mapped_loc_addr_nes_cm_listener_2153 mapped_loc_addr nes_cm_listener 0 2153 NULL
135015 +disable_so_index_ath_gen_timer_2154 index ath_gen_timer 0 2154 NULL
135016 +disable_so_brcms_c_duty_cycle_set_fndecl_2162 brcms_c_duty_cycle_set fndecl 2 2162 NULL
135017 +disable_so_rx_addr_happy_meal_rxd_2164 rx_addr happy_meal_rxd 0 2164 NULL
135018 +disable_so_cp_dma_addr_mscp_2187 cp_dma_addr mscp 0 2187 NULL
135019 +disable_so_address_hi_be_bus_address32_2192 address_hi be_bus_address32 0 2192 NULL nohasharray
135020 +disable_so_parse_sockaddr_pair_fndecl_2192 parse_sockaddr_pair fndecl 0-2 2192 &disable_so_address_hi_be_bus_address32_2192
135021 +disable_so_channel_sockaddr_mISDN_2193 channel sockaddr_mISDN 0 2193 NULL
135022 +disable_so_channel_time_mwl8k_priv_2196 channel_time mwl8k_priv 0 2196 NULL
135023 +disable_so_saddr_min_pktgen_dev_2198 saddr_min pktgen_dev 0 2198 NULL
135024 +disable_so_cirrus_set_start_address_fndecl_2201 cirrus_set_start_address fndecl 2 2201 NULL
135025 +disable_so_exp_time_rmc_entry_2203 exp_time rmc_entry 0 2203 NULL
135026 +disable_so_acpi_os_get_timer_fndecl_2213 acpi_os_get_timer fndecl 0 2213 NULL nohasharray
135027 +disable_so_to_addr_efx_memcpy_req_2213 to_addr efx_memcpy_req 0 2213 &disable_so_acpi_os_get_timer_fndecl_2213
135028 +disable_so_gather_bitmaps_fndecl_2219 gather_bitmaps fndecl 0 2219 NULL
135029 +disable_so_timeout_ms_rdma_ucm_resolve_ip_2231 timeout_ms rdma_ucm_resolve_ip 0 2231 NULL
135030 +disable_so_ui_birthtime_ufs2_inode_2238 ui_birthtime ufs2_inode 0 2238 NULL
135031 +disable_so_security_mmap_addr_fndecl_2241 security_mmap_addr fndecl 0-1 2241 NULL
135032 +disable_so_atl1c_hash_mc_addr_fndecl_2245 atl1c_hash_mc_addr fndecl 0 2245 NULL
135033 +disable_so_isl1208_i2c_read_time_fndecl_2247 isl1208_i2c_read_time fndecl 0 2247 NULL
135034 +disable_so_stats_reset_time_bfa_fcport_s_2251 stats_reset_time bfa_fcport_s 0 2251 NULL
135035 +disable_so_uid_mcontroller_2253 uid mcontroller 0 2253 NULL
135036 +disable_so_daddr_iriap_cb_2262 daddr iriap_cb 0 2262 NULL
135037 +disable_so_rtl2832_sdr_set_tuner_freq_fndecl_2267 rtl2832_sdr_set_tuner_freq fndecl 0 2267 NULL
135038 +disable_so_chipio_write_address_fndecl_2270 chipio_write_address fndecl 0-2 2270 NULL
135039 +disable_so_small_buf_q_phy_addr_ql3_adapter_2279 small_buf_q_phy_addr ql3_adapter 0 2279 NULL
135040 +disable_so_sys_utime_fndecl_2283 sys_utime fndecl 0 2283 NULL nohasharray
135041 +disable_so_muldiv32_fndecl_2283 muldiv32 fndecl 0-1-2-3 2283 &disable_so_sys_utime_fndecl_2283
135042 +disable_so_bd_list_addr_hi_bnx2i_nop_out_request_2284 bd_list_addr_hi bnx2i_nop_out_request 0 2284 NULL
135043 +disable_so_show_trans_timeout_fndecl_2286 show_trans_timeout fndecl 0 2286 NULL
135044 +disable_so_il4965_tx_queue_stop_scheduler_fndecl_2292 il4965_tx_queue_stop_scheduler fndecl 2 2292 NULL
135045 +disable_so_demod_address_ves1820_config_2298 demod_address ves1820_config 0 2298 NULL
135046 +disable_so_backlight_on_delay_cdv_intel_dp_2301 backlight_on_delay cdv_intel_dp 0 2301 NULL
135047 +disable_so_ip_vs_lblcr_hashkey_fndecl_2305 ip_vs_lblcr_hashkey fndecl 1 2305 NULL
135048 +disable_so_tulip_interrupt_fndecl_2323 tulip_interrupt fndecl 1 2323 NULL
135049 +disable_so_m_ts_clockk_strength_drxk_state_2324 m_ts_clockk_strength drxk_state 0 2324 NULL
135050 +disable_so_carl9170_debugfs_hw_iowrite32_write_fndecl_2330 carl9170_debugfs_hw_iowrite32_write fndecl 0-3 2330 NULL
135051 +disable_so_iclock_count_vardecl_clock_c_2334 iclock_count vardecl_clock.c 0 2334 NULL
135052 +disable_so_eop_gpu_addr_kernel_queue_2339 eop_gpu_addr kernel_queue 0 2339 NULL
135053 +disable_so___insert_inode_hash_fndecl_2341 __insert_inode_hash fndecl 2 2341 NULL
135054 +disable_so_lasttime_vardecl_serial_u16550_c_2348 lasttime vardecl_serial-u16550.c 0 2348 NULL
135055 +disable_so_custom_divisor_ftdi_private_2356 custom_divisor ftdi_private 0 2356 NULL nohasharray
135056 +disable_so_bma150_set_any_motion_interrupt_fndecl_2356 bma150_set_any_motion_interrupt fndecl 3-4-0 2356 &disable_so_custom_divisor_ftdi_private_2356
135057 +disable_so_cdrom_get_random_writable_fndecl_2357 cdrom_get_random_writable fndecl 0 2357 NULL
135058 +disable_so_delay_vardecl_wm9713_c_2358 delay vardecl_wm9713.c 0 2358 NULL
135059 +disable_so_usc_enable_async_clock_fndecl_2361 usc_enable_async_clock fndecl 2 2361 NULL
135060 +disable_so___cpu_to_virtio64_fndecl_2365 __cpu_to_virtio64 fndecl 0-2 2365 NULL
135061 +disable_so_freq_offset_xc5000_priv_2385 freq_offset xc5000_priv 0 2385 NULL
135062 +disable_so_decompressed_size_regcache_lzo_ctx_2401 decompressed_size regcache_lzo_ctx 0 2401 NULL
135063 +disable_so_tps65910_sleepinit_fndecl_2406 tps65910_sleepinit fndecl 0 2406 NULL
135064 +disable_so_i2c_address_dib0090_config_2410 i2c_address dib0090_config 0 2410 NULL
135065 +disable_so_paddr_nes_fast_mr_wqe_pbl_2411 paddr nes_fast_mr_wqe_pbl 0 2411 NULL
135066 +disable_so_time_fcoe_fcf_2412 time fcoe_fcf 0 2412 NULL
135067 +disable_so_ndisc_addr_option_pad_fndecl_2413 ndisc_addr_option_pad fndecl 0 2413 NULL
135068 +disable_so_next_cpu_uv_rtc_timer_head_2424 next_cpu uv_rtc_timer_head 0 2424 NULL
135069 +disable_so_buffer_addr_fm10k_tx_desc_2425 buffer_addr fm10k_tx_desc 0 2425 NULL
135070 +disable_so_ahci_init_interrupts_fndecl_2426 ahci_init_interrupts fndecl 2-0 2426 NULL
135071 +disable_so_cp_interrupt_fndecl_2429 cp_interrupt fndecl 1 2429 NULL
135072 +disable_so_sha1_mb_update_fndecl_2431 sha1_mb_update fndecl 0 2431 NULL
135073 +disable_so_mii_bmsr1_bnx2_2432 mii_bmsr1 bnx2 0 2432 NULL
135074 +disable_so_i2c_addr_lnbp21_2433 i2c_addr lnbp21 0 2433 NULL
135075 +disable_so_dmadesc_set_addr_fndecl_2434 dmadesc_set_addr fndecl 3 2434 NULL
135076 +disable_so___irq_alloc_descs_fndecl_2452 __irq_alloc_descs fndecl 0-3-2-1-4 2452 NULL
135077 +disable_so_efx_ptp_process_times_fndecl_2453 efx_ptp_process_times fndecl 0 2453 NULL
135078 +disable_so_SiS_SetReg_fndecl_2455 SiS_SetReg fndecl 2-3-4 2455 NULL
135079 +disable_so_hashlimit_byte_cost_fndecl_2456 hashlimit_byte_cost fndecl 0-1 2456 NULL
135080 +disable_so_sd_mtime_stat_data_v1_2460 sd_mtime stat_data_v1 0 2460 NULL
135081 +disable_so_string_addr_inc_fndecl_2472 string_addr_inc fndecl 2 2472 NULL
135082 +disable_so_set_mc_hash_fndecl_2473 set_mc_hash fndecl 0 2473 NULL
135083 +disable_so_height_psb_intel_sdvo_preferred_input_timing_args_2479 height psb_intel_sdvo_preferred_input_timing_args 0 2479 NULL
135084 +disable_so_seq_netlbl_unlhsh_walk_arg_2483 seq netlbl_unlhsh_walk_arg 0 2483 NULL
135085 +disable_so_set_cpu_itimer_fndecl_2486 set_cpu_itimer fndecl 2 2486 NULL
135086 +disable_so_reqoff_crypto_authenc_ctx_2490 reqoff crypto_authenc_ctx 0 2490 NULL
135087 +disable_so_i_gid_ocfs2_dinode_2496 i_gid ocfs2_dinode 0 2496 NULL
135088 +disable_so_bind_mcastif_addr_fndecl_2497 bind_mcastif_addr fndecl 0 2497 NULL
135089 +disable_so_pm_runtime_put_autosuspend_fndecl_2498 pm_runtime_put_autosuspend fndecl 0 2498 NULL
135090 +disable_so_xfs_btree_insert_fndecl_2499 xfs_btree_insert fndecl 0 2499 NULL
135091 +disable_so_update_time_fndecl_2500 update_time fndecl 0 2500 NULL
135092 +disable_so_fill_mtrr_var_range_fndecl_2523 fill_mtrr_var_range fndecl 2-3-4-5 2523 NULL
135093 +disable_so_of_cpufreq_power_cooling_register_fndecl_2525 of_cpufreq_power_cooling_register fndecl 3 2525 NULL
135094 +disable_so_addr_genwqe_mem_2530 addr genwqe_mem 0 2530 NULL
135095 +disable_so_rtr_solicit_delay_ipv6_devconf_2532 rtr_solicit_delay ipv6_devconf 0 2532 NULL nohasharray
135096 +disable_so_num_of_cycles_in_period_igp_power_info_2532 num_of_cycles_in_period igp_power_info 0 2532 &disable_so_rtr_solicit_delay_ipv6_devconf_2532
135097 +disable_so_vhost16_to_cpu_fndecl_2533 vhost16_to_cpu fndecl 0 2533 NULL
135098 +disable_so_clock_adj_k_clock_2534 clock_adj k_clock 1 2534 NULL
135099 +disable_so_global_default_fn_cipher_key_bytes_ecryptfs_mount_crypt_stat_2536 global_default_fn_cipher_key_bytes ecryptfs_mount_crypt_stat 0 2536 NULL
135100 +disable_so_clock_fc2580_config_2541 clock fc2580_config 0 2541 NULL
135101 +disable_so_sb_bitmaps_hpfs_sb_info_2542 sb_bitmaps hpfs_sb_info 0 2542 NULL
135102 +disable_so_devfreq_event_get_edev_by_phandle_fndecl_2550 devfreq_event_get_edev_by_phandle fndecl 2 2550 NULL
135103 +disable_so_reiserfs_allocate_list_bitmaps_fndecl_2551 reiserfs_allocate_list_bitmaps fndecl 3 2551 NULL
135104 +disable_so_nr_set_mac_address_fndecl_2555 nr_set_mac_address fndecl 0 2555 NULL
135105 +disable_so_SYSC_setuid_fndecl_2561 SYSC_setuid fndecl 0 2561 NULL
135106 +disable_so_shadow_ctx_time_perf_event_2574 shadow_ctx_time perf_event 0 2574 NULL nohasharray
135107 +disable_so_kernel_text_address_fndecl_2574 kernel_text_address fndecl 1 2574 &disable_so_shadow_ctx_time_perf_event_2574
135108 +disable_so_msb_bna_dma_addr_2580 msb bna_dma_addr 0 2580 NULL
135109 +disable_so_ipmi_get_my_address_fndecl_2581 ipmi_get_my_address fndecl 0 2581 NULL
135110 +disable_so_scan_sleep_millisecs_show_fndecl_2585 scan_sleep_millisecs_show fndecl 0 2585 NULL
135111 +disable_so_l2tp_scope_id_sockaddr_l2tpip6_2587 l2tp_scope_id sockaddr_l2tpip6 0 2587 NULL
135112 +disable_so_freq_to_idx_fndecl_2591 freq_to_idx fndecl 2 2591 NULL
135113 +disable_so_tps65910_set_ext_sleep_config_fndecl_2597 tps65910_set_ext_sleep_config fndecl 0-2 2597 NULL
135114 +disable_so_try_write_address_fndecl_2599 try_write_address fndecl 0 2599 NULL
135115 +disable_so_ifa_mask_in_ifaddr_2609 ifa_mask in_ifaddr 0 2609 NULL
135116 +disable_so_phys_addr_nx_host_tx_ring_2615 phys_addr nx_host_tx_ring 0 2615 NULL
135117 +disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 usb_wait_anchor_empty_timeout fndecl 2-0 2618 NULL nohasharray
135118 +disable_so_p2_gma_clock_t_2618 p2 gma_clock_t 0 2618 &disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 nohasharray
135119 +disable_so_cra_blocksize_crypto_alg_2618 cra_blocksize crypto_alg 0 2618 &disable_so_p2_gma_clock_t_2618
135120 +disable_so_b1_setinterrupt_fndecl_2626 b1_setinterrupt fndecl 1-2 2626 NULL
135121 +disable_so_flsh_addr_esas2r_flash_context_2628 flsh_addr esas2r_flash_context 0 2628 NULL
135122 +disable_so_bClockID_uac_clock_source_descriptor_2629 bClockID uac_clock_source_descriptor 0 2629 NULL
135123 +disable_so_free_dma_map_ops_2636 free dma_map_ops 4 2636 NULL
135124 +disable_so_apds990x_set_atime_fndecl_2647 apds990x_set_atime fndecl 2 2647 NULL
135125 +disable_so_jiffies_sdr_cap_vivid_dev_2650 jiffies_sdr_cap vivid_dev 0 2650 NULL
135126 +disable_so_rf_mux_ploy_r820t_freq_range_2652 rf_mux_ploy r820t_freq_range 0 2652 NULL nohasharray
135127 +disable_so_policy_hash_direct_fndecl_2652 policy_hash_direct fndecl 4 2652 &disable_so_rf_mux_ploy_r820t_freq_range_2652
135128 +disable_so_base_addr_sudmac_regs_2655 base_addr sudmac_regs 0 2655 NULL
135129 +disable_so_id_rdma_ucm_resolve_addr_2656 id rdma_ucm_resolve_addr 0 2656 NULL
135130 +disable_so_demod_address_stv0367_config_2659 demod_address stv0367_config 0 2659 NULL
135131 +disable_so_get_if_frequency_dvb_tuner_ops_2660 get_if_frequency dvb_tuner_ops 0 2660 NULL
135132 +disable_so_r_idx_addr_brcmf_pcie_ringbuf_2666 r_idx_addr brcmf_pcie_ringbuf 0 2666 NULL
135133 +disable_so_address_sisusb_packet_2668 address sisusb_packet 0 2668 NULL
135134 +disable_so_cia_min_keysize_cipher_alg_2682 cia_min_keysize cipher_alg 0 2682 NULL
135135 +disable_so_snd_timer_start_fndecl_2702 snd_timer_start fndecl 2-0 2702 NULL
135136 +disable_so_erst_exec_set_src_address_base_fndecl_2703 erst_exec_set_src_address_base fndecl 0 2703 NULL
135137 +disable_so_end_seq_tcp_sack_block_wire_2708 end_seq tcp_sack_block_wire 0 2708 NULL nohasharray
135138 +disable_so__abb5zes3_rtc_read_timer_fndecl_2708 _abb5zes3_rtc_read_timer fndecl 0 2708 &disable_so_end_seq_tcp_sack_block_wire_2708
135139 +disable_so_rn5t618_wdt_set_timeout_fndecl_2711 rn5t618_wdt_set_timeout fndecl 2-0 2711 NULL nohasharray
135140 +disable_so_hsync_off_hi_lvds_dvo_timing_2711 hsync_off_hi lvds_dvo_timing 0 2711 &disable_so_rn5t618_wdt_set_timeout_fndecl_2711
135141 +disable_so_hdelayx1_bttv_tvnorm_2714 hdelayx1 bttv_tvnorm 0 2714 NULL
135142 +disable_so_raw_interval_timekeeper_2728 raw_interval timekeeper 0 2728 NULL
135143 +disable_so___vxge_hw_ring_item_dma_addr_fndecl_2731 __vxge_hw_ring_item_dma_addr fndecl 0 2731 NULL
135144 +disable_so_mlx5_query_hca_vport_gid_fndecl_2744 mlx5_query_hca_vport_gid fndecl 0 2744 NULL
135145 +disable_so_period_ptr_atmel_runtime_data_2748 period_ptr atmel_runtime_data 0 2748 NULL
135146 +disable_so_buf_addr_lo_fcoe_bd_ctx_2755 buf_addr_lo fcoe_bd_ctx 0 2755 NULL nohasharray
135147 +disable_so_cycles_2_ns_fndecl_2755 cycles_2_ns fndecl 0-1 2755 &disable_so_buf_addr_lo_fcoe_bd_ctx_2755
135148 +disable_so_md5_parse_tcp_sock_af_ops_2765 md5_parse tcp_sock_af_ops 3-0 2765 NULL
135149 +disable_so_nbytes_ablkcipher_walk_2767 nbytes ablkcipher_walk 0 2767 NULL
135150 +disable_so_crypto_hash_setkey_fndecl_2770 crypto_hash_setkey fndecl 0-3 2770 NULL
135151 +disable_so_addr_gf100_gr_init_2776 addr gf100_gr_init 0 2776 NULL
135152 +disable_so_auth_hashbits_vardecl_auth_c_2783 auth_hashbits vardecl_auth.c 0 2783 NULL
135153 +disable_so_ipr_reset_start_timer_fndecl_2784 ipr_reset_start_timer fndecl 2 2784 NULL nohasharray
135154 +disable_so_tv_sec_compat_timeval_2784 tv_sec compat_timeval 0 2784 &disable_so_ipr_reset_start_timer_fndecl_2784 nohasharray
135155 +disable_so_addr_vring_desc_2784 addr vring_desc 0 2784 &disable_so_tv_sec_compat_timeval_2784
135156 +disable_so_addr_initio_host_2790 addr initio_host 0 2790 NULL
135157 +disable_so_i2c_addr_dib7000p_state_2791 i2c_addr dib7000p_state 0 2791 NULL
135158 +disable_so_trim_no_bitmap_fndecl_2799 trim_no_bitmap fndecl 0-3-4-5 2799 NULL nohasharray
135159 +disable_so_imp_msr_src_node_conf_t_2799 imp_msr src_node_conf_t 0 2799 &disable_so_trim_no_bitmap_fndecl_2799
135160 +disable_so_phys_addr_pch_udc_dev_2801 phys_addr pch_udc_dev 0 2801 NULL
135161 +disable_so_mpll_ss2_ci_clock_registers_2804 mpll_ss2 ci_clock_registers 0 2804 NULL
135162 +disable_so_mutex_lock_interruptible_fndecl_2810 mutex_lock_interruptible fndecl 0 2810 NULL
135163 +disable_so___btrfs_add_delayed_item_fndecl_2812 __btrfs_add_delayed_item fndecl 0 2812 NULL
135164 +disable_so_physaddr_map_node_2828 physaddr map_node 0 2828 NULL
135165 +disable_so_fault_mutex_hash_fndecl_2829 fault_mutex_hash fndecl 0-5-6 2829 NULL
135166 +disable_so_tsi721_imsg_interrupt_enable_fndecl_2832 tsi721_imsg_interrupt_enable fndecl 2-3 2832 NULL
135167 +disable_so_ocfs2_reserve_cluster_bitmap_bits_fndecl_2835 ocfs2_reserve_cluster_bitmap_bits fndecl 0 2835 NULL
135168 +disable_so_address_lcnphy_radio_regs_2840 address lcnphy_radio_regs 0 2840 NULL
135169 +disable_so_write_timeout_vardecl_at24_c_2843 write_timeout vardecl_at24.c 0 2843 NULL nohasharray
135170 +disable_so_rdma_bind_addr_fndecl_2843 rdma_bind_addr fndecl 0 2843 &disable_so_write_timeout_vardecl_at24_c_2843
135171 +disable_so_x86_schedule_events_fndecl_2848 x86_schedule_events fndecl 2 2848 NULL
135172 +disable_so_acpi_ut_status_exit_fndecl_2850 acpi_ut_status_exit fndecl 5 2850 NULL
135173 +disable_so_wlcore_read_hwaddr_fndecl_2853 wlcore_read_hwaddr fndecl 0-4 2853 NULL
135174 +disable_so_apicaddr_mpc_ioapic_2859 apicaddr mpc_ioapic 0 2859 NULL
135175 +disable_so_msec_dwell_time_host_cmd_ds_chan_rpt_req_2868 msec_dwell_time host_cmd_ds_chan_rpt_req 0 2868 NULL
135176 +disable_so_hpsa_find_cfg_addrs_fndecl_2876 hpsa_find_cfg_addrs fndecl 0 2876 NULL
135177 +disable_so_sched_clock_cpu_fndecl_2881 sched_clock_cpu fndecl 0-1 2881 NULL
135178 +disable_so_qs_itimelimit_fs_quota_stat_2888 qs_itimelimit fs_quota_stat 0 2888 NULL
135179 +disable_so_bitmap_set_pending_fndecl_2892 bitmap_set_pending fndecl 2 2892 NULL
135180 +disable_so_rt2x00debug_read_crypto_stats_fndecl_2894 rt2x00debug_read_crypto_stats fndecl 0-3 2894 NULL
135181 +disable_so_calibrate_tsc_x86_platform_ops_2895 calibrate_tsc x86_platform_ops 0 2895 NULL
135182 +disable_so_timeout_show_fndecl_2898 timeout_show fndecl 0 2898 NULL
135183 +disable_so_snd_hda_codec_read_fndecl_2913 snd_hda_codec_read fndecl 0-2-4-5 2913 NULL
135184 +disable_so___bitmap_size_fndecl_2921 __bitmap_size fndecl 0 2921 NULL
135185 +disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923 snd_pcm_ioctl_delay_compat fndecl 0 2923 NULL nohasharray
135186 +disable_so_addr_abituguru_data_2923 addr abituguru_data 0 2923 &disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923
135187 +disable_so_amdgpu_atombios_set_engine_dram_timings_fndecl_2927 amdgpu_atombios_set_engine_dram_timings fndecl 2-3 2927 NULL
135188 +disable_so_i2c_address_mt2060_config_2931 i2c_address mt2060_config 0 2931 NULL
135189 +disable_so_time_msdos_dir_entry_2939 time msdos_dir_entry 0 2939 NULL
135190 +disable_so_acpi_install_address_space_handler_fndecl_2940 acpi_install_address_space_handler fndecl 0-2 2940 NULL nohasharray
135191 +disable_so_addr_genwqe_reg_2940 addr genwqe_reg 0 2940 &disable_so_acpi_install_address_space_handler_fndecl_2940
135192 +disable_so_addr_max77693_reg_data_2945 addr max77693_reg_data 0 2945 NULL nohasharray
135193 +disable_so_addrconf_set_dstaddr_fndecl_2945 addrconf_set_dstaddr fndecl 0 2945 &disable_so_addr_max77693_reg_data_2945
135194 +disable_so_gcm_hash_init_done_fndecl_2957 gcm_hash_init_done fndecl 2 2957 NULL
135195 +disable_so_mwifiex_pcie_alloc_sleep_cookie_buf_fndecl_2961 mwifiex_pcie_alloc_sleep_cookie_buf fndecl 0 2961 NULL
135196 +disable_so_ip_list_gid_vardecl_xt_recent_c_2969 ip_list_gid vardecl_xt_recent.c 0 2969 NULL
135197 +disable_so_ieee80211_calculate_rx_timestamp_fndecl_2979 ieee80211_calculate_rx_timestamp fndecl 3-4-0 2979 NULL
135198 +disable_so_jiffies_at_last_reset_qla_statistics_2982 jiffies_at_last_reset qla_statistics 0 2982 NULL
135199 +disable_so_read_magic_time_fndecl_3002 read_magic_time fndecl 0 3002 NULL
135200 +disable_so_node_addr_mdc_hw_list_desc_3006 node_addr mdc_hw_list_desc 0 3006 NULL
135201 +disable_so_bitmap_clear_bits_fndecl_3008 bitmap_clear_bits fndecl 3-4 3008 NULL
135202 +disable_so_cipher_offset_icp_qat_fw_la_cipher_req_params_3009 cipher_offset icp_qat_fw_la_cipher_req_params 0 3009 NULL
135203 +disable_so_local_addr_c2wr_ep_listen_create_req_3021 local_addr c2wr_ep_listen_create_req 0 3021 NULL nohasharray
135204 +disable_so_bitmap_end_sync_fndecl_3021 bitmap_end_sync fndecl 2 3021 &disable_so_local_addr_c2wr_ep_listen_create_req_3021
135205 +disable_so___xfrm6_daddr_saddr_hash_fndecl_3024 __xfrm6_daddr_saddr_hash fndecl 0 3024 NULL
135206 +disable_so_port_name_fcgs_gidpn_req_s_3037 port_name fcgs_gidpn_req_s 0 3037 NULL
135207 +disable_so___pm_runtime_set_status_fndecl_3040 __pm_runtime_set_status fndecl 0 3040 NULL nohasharray
135208 +disable_so_inactivity_time_adxl34x_platform_data_3040 inactivity_time adxl34x_platform_data 0 3040 &disable_so___pm_runtime_set_status_fndecl_3040
135209 +disable_so_bm_dev_capacity_drbd_bitmap_3043 bm_dev_capacity drbd_bitmap 0 3043 NULL
135210 +disable_so_arp_hash_fndecl_3046 arp_hash fndecl 2 3046 NULL
135211 +disable_so_setkey_ablkcipher_alg_3056 setkey ablkcipher_alg 3 3056 NULL
135212 +disable_so_display_delay_s5p_mfc_ctx_3062 display_delay s5p_mfc_ctx 0 3062 NULL
135213 +disable_so_power_jiffies_hda_codec_3064 power_jiffies hda_codec 0 3064 NULL
135214 +disable_so_dw_mci_exynos_adjust_clock_fndecl_3069 dw_mci_exynos_adjust_clock fndecl 2 3069 NULL
135215 +disable_so_set_var_mtrr_msr_fndecl_3073 set_var_mtrr_msr fndecl 3 3073 NULL
135216 +disable_so_pm860x_rtc_read_time_fndecl_3079 pm860x_rtc_read_time fndecl 0 3079 NULL nohasharray
135217 +disable_so_buffer_haddr_rbd_3079 buffer_haddr rbd 0 3079 &disable_so_pm860x_rtc_read_time_fndecl_3079
135218 +disable_so_snd_usb_find_clock_source_fndecl_3080 snd_usb_find_clock_source fndecl 2 3080 NULL
135219 +disable_so_response_buffer_address_on_dsp_hpi_hw_obj_3083 response_buffer_address_on_dsp hpi_hw_obj 0 3083 NULL
135220 +disable_so_valid_mmap_phys_addr_range_fndecl_3090 valid_mmap_phys_addr_range fndecl 1-2 3090 NULL
135221 +disable_so_mc_addr_count_s2io_nic_3095 mc_addr_count s2io_nic 0 3095 NULL
135222 +disable_so_si4713_g_frequency_fndecl_3096 si4713_g_frequency fndecl 0 3096 NULL
135223 +disable_so_rtl_bb_delay_fndecl_3097 rtl_bb_delay fndecl 2-3 3097 NULL
135224 +disable_so_nla_put_u16_fndecl_3101 nla_put_u16 fndecl 3-0 3101 NULL
135225 +disable_so_enet_addr_rst_fndecl_3111 enet_addr_rst fndecl 1 3111 NULL
135226 +disable_so_xtime_interval_timekeeper_3116 xtime_interval timekeeper 0 3116 NULL
135227 +disable_so_atomic_set_prop_fndecl_3117 atomic_set_prop fndecl 4-0 3117 NULL
135228 +disable_so_read_timeout_vardecl_legousbtower_c_3118 read_timeout vardecl_legousbtower.c 0 3118 NULL nohasharray
135229 +disable_so_netmask_c2_netaddr_3118 netmask c2_netaddr 0 3118 &disable_so_read_timeout_vardecl_legousbtower_c_3118 nohasharray
135230 +disable_so_hashlo_smsc911x_data_3118 hashlo smsc911x_data 0 3118 &disable_so_netmask_c2_netaddr_3118 nohasharray
135231 +disable_so_q_hash_irda_queue_3118 q_hash irda_queue 0 3118 &disable_so_hashlo_smsc911x_data_3118
135232 +disable_so_rpc_get_timeout_fndecl_3124 rpc_get_timeout fndecl 0 3124 NULL
135233 +disable_so_ctime_fuse_attr_3128 ctime fuse_attr 0 3128 NULL
135234 +disable_so_dl_time_nfs4_delegation_3130 dl_time nfs4_delegation 0 3130 NULL
135235 +disable_so_tx_packet_ring_addr_acx_data_path_params_resp_3132 tx_packet_ring_addr acx_data_path_params_resp 0 3132 NULL
135236 +disable_so__div_round_fndecl_3134 _div_round fndecl 2-3-0 3134 NULL
135237 +disable_so_power_up_frequency_adf4350_platform_data_3140 power_up_frequency adf4350_platform_data 0 3140 NULL
135238 +disable_so_bytes_xfrm_lifetime_cur_3145 bytes xfrm_lifetime_cur 0 3145 NULL
135239 +disable_so_show_nguid_fndecl_3155 show_nguid fndecl 0 3155 NULL nohasharray
135240 +disable_so_svm_read_tsc_offset_fndecl_3155 svm_read_tsc_offset fndecl 0 3155 &disable_so_show_nguid_fndecl_3155
135241 +disable_so_shash_ahash_finup_fndecl_3156 shash_ahash_finup fndecl 0 3156 NULL
135242 +disable_so_adjtime_ptp_clock_info_3161 adjtime ptp_clock_info 2 3161 NULL
135243 +disable_so_read_addr___mux2_3162 read_addr __mux2 0 3162 NULL
135244 +disable_so_mem_type_mtrr_iter_3164 mem_type mtrr_iter 0 3164 NULL
135245 +disable_so_cg_spll_func_cntl_ni_clock_registers_3176 cg_spll_func_cntl ni_clock_registers 0 3176 NULL
135246 +disable_so_schedule_hrtimeout_range_clock_fndecl_3178 schedule_hrtimeout_range_clock fndecl 4-2 3178 NULL nohasharray
135247 +disable_so_bitmap_copy_fndecl_3178 bitmap_copy fndecl 3 3178 &disable_so_schedule_hrtimeout_range_clock_fndecl_3178
135248 +disable_so__is_valid_table_div_fndecl_3179 _is_valid_table_div fndecl 2 3179 NULL
135249 +disable_so_addr_2_qla83xx_minidump_entry_pollrdmwr_3183 addr_2 qla83xx_minidump_entry_pollrdmwr 0 3183 NULL
135250 +disable_so_via_clock_vardecl_via82cxxx_c_3195 via_clock vardecl_via82cxxx.c 0 3195 NULL
135251 +disable_so_timeout_reader_dev_3196 timeout reader_dev 0 3196 NULL
135252 +disable_so_delay_palmas_clk32k_desc_3198 delay palmas_clk32k_desc 0 3198 NULL nohasharray
135253 +disable_so_freq_if_hz_tda10048_state_3198 freq_if_hz tda10048_state 0 3198 &disable_so_delay_palmas_clk32k_desc_3198
135254 +disable_so_i2c_address_tda18218_config_3199 i2c_address tda18218_config 0 3199 NULL nohasharray
135255 +disable_so_bot_freq_region_info_3199 bot_freq region_info 0 3199 &disable_so_i2c_address_tda18218_config_3199
135256 +disable_so_sdr_adc_freq_vivid_dev_3202 sdr_adc_freq vivid_dev 0 3202 NULL
135257 +disable_so_wlc_phy_cal_perical_mphase_schedule_fndecl_3220 wlc_phy_cal_perical_mphase_schedule fndecl 2 3220 NULL
135258 +disable_so_uid_ceph_mds_reply_inode_3222 uid ceph_mds_reply_inode 0 3222 NULL nohasharray
135259 +disable_so_mapped_rem_addr_nes_cm_node_3222 mapped_rem_addr nes_cm_node 0 3222 &disable_so_uid_ceph_mds_reply_inode_3222
135260 +disable_so_txq_addr_vf_pf_txq_params_3223 txq_addr vf_pf_txq_params 0 3223 NULL
135261 +disable_so_dma_addr_ksz_shared_mem_3226 dma_addr ksz_shared_mem 0 3226 NULL
135262 +disable_so_smb_timer_atl1_hw_3230 smb_timer atl1_hw 0 3230 NULL
135263 +disable_so_nilfs_btree_node_set_key_fndecl_3231 nilfs_btree_node_set_key fndecl 2-3 3231 NULL
135264 +disable_so_finish_output_interrupt_fndecl_3255 finish_output_interrupt fndecl 1 3255 NULL
135265 +disable_so_command_block_agent_address_sbp2_logical_unit_3261 command_block_agent_address sbp2_logical_unit 0 3261 NULL
135266 +disable_so_st21nfca_get_iso14443_3_uid_fndecl_3264 st21nfca_get_iso14443_3_uid fndecl 0 3264 NULL
135267 +disable_so_db_rec_addr_mlx5_qp_context_3265 db_rec_addr mlx5_qp_context 0 3265 NULL
135268 +disable_so_rssi_jiffies_mwifiex_auto_tdls_peer_3275 rssi_jiffies mwifiex_auto_tdls_peer 0 3275 NULL
135269 +disable_so_random_read_wakeup_bits_vardecl_random_c_3284 random_read_wakeup_bits vardecl_random.c 0 3284 NULL
135270 +disable_so_time_busy_survey_info_3291 time_busy survey_info 0 3291 NULL
135271 +disable_so_platform_pci_sleep_wake_fndecl_3293 platform_pci_sleep_wake fndecl 0 3293 NULL nohasharray
135272 +disable_so_walk_blocksize_blkcipher_walk_3293 walk_blocksize blkcipher_walk 0 3293 &disable_so_platform_pci_sleep_wake_fndecl_3293
135273 +disable_so_addr_kvm_shadow_walk_iterator_3297 addr kvm_shadow_walk_iterator 0 3297 NULL
135274 +disable_so_r6e_val_fc2580_freq_regs_3300 r6e_val fc2580_freq_regs 0 3300 NULL
135275 +disable_so_clock_speed_ov7670_info_3304 clock_speed ov7670_info 0 3304 NULL
135276 +disable_so_bank_base_effect_addr_snd_ymfpci_3311 bank_base_effect_addr snd_ymfpci 0 3311 NULL
135277 +disable_so_nfs_map_name_to_uid_fndecl_3313 nfs_map_name_to_uid fndecl 0-3 3313 NULL
135278 +disable_so_read_block_bitmap_fndecl_3319 read_block_bitmap fndecl 0-3-4 3319 NULL
135279 +disable_so_sis190_get_mac_addr_from_apc_fndecl_3325 sis190_get_mac_addr_from_apc fndecl 0 3325 NULL
135280 +disable_so_head_uvc_clock_3340 head uvc_clock 0 3340 NULL
135281 +disable_so_amd_clock_vardecl_amd74xx_c_3344 amd_clock vardecl_amd74xx.c 0 3344 NULL nohasharray
135282 +disable_so_host_cmds_addr_rtsx_pcr_3344 host_cmds_addr rtsx_pcr 0 3344 &disable_so_amd_clock_vardecl_amd74xx_c_3344
135283 +disable_so_xp_cpu_to_nasid_uv_fndecl_3353 xp_cpu_to_nasid_uv fndecl 0 3353 NULL
135284 +disable_so_last_join_time_local_info_3359 last_join_time local_info 0 3359 NULL
135285 +disable_so_tcf_hash_release_fndecl_3369 tcf_hash_release fndecl 0 3369 NULL
135286 +disable_so_carl9170_set_slot_time_fndecl_3372 carl9170_set_slot_time fndecl 0 3372 NULL
135287 +disable_so_mmc_schedule_delayed_work_fndecl_3376 mmc_schedule_delayed_work fndecl 2 3376 NULL
135288 +disable_so_m_mt9t112_pll_divider_3397 m mt9t112_pll_divider 0 3397 NULL nohasharray
135289 +disable_so__rtl92c_phy_calculate_bit_shift_fndecl_3397 _rtl92c_phy_calculate_bit_shift fndecl 0-1 3397 &disable_so_m_mt9t112_pll_divider_3397
135290 +disable_so_irlap_generate_rand_time_slot_fndecl_3415 irlap_generate_rand_time_slot fndecl 0-1-2 3415 NULL
135291 +disable_so_via_set_secondary_address_fndecl_3417 via_set_secondary_address fndecl 1 3417 NULL
135292 +disable_so___timekeeping_set_tai_offset_fndecl_3425 __timekeeping_set_tai_offset fndecl 2 3425 NULL
135293 +disable_so_apic_access_addr_vmcs12_3427 apic_access_addr vmcs12 0 3427 NULL
135294 +disable_so_prod_idx_addr_cqicb_3435 prod_idx_addr cqicb 0 3435 NULL
135295 +disable_so_uwb_rc_dev_addr_mgmt_fndecl_3445 uwb_rc_dev_addr_mgmt fndecl 0 3445 NULL
135296 +disable_so_sg_bus_addr_ScsiReqBlk_3447 sg_bus_addr ScsiReqBlk 0 3447 NULL
135297 +disable_so_i2c_addr_lgdt3306a_config_3452 i2c_addr lgdt3306a_config 0 3452 NULL
135298 +disable_so_sym_selectclock_fndecl_3453 sym_selectclock fndecl 2 3453 NULL
135299 +disable_so_timestamp_wl1251_rx_descriptor_3475 timestamp wl1251_rx_descriptor 0 3475 NULL
135300 +disable_so_hw_cons_phys_addr_qlcnic_host_tx_ring_3481 hw_cons_phys_addr qlcnic_host_tx_ring 0 3481 NULL
135301 +disable_so_last_jiffies_snd_timer_system_private_3482 last_jiffies snd_timer_system_private 0 3482 NULL
135302 +disable_so_r_min_rnr_timer_qib_qp_3487 r_min_rnr_timer qib_qp 0 3487 NULL
135303 +disable_so_ata_wait_register_fndecl_3494 ata_wait_register fndecl 0 3494 NULL
135304 +disable_so_time_adjust_vardecl_ntp_c_3504 time_adjust vardecl_ntp.c 0 3504 NULL
135305 +disable_so_cursor_addr_intel_crtc_3508 cursor_addr intel_crtc 0 3508 NULL
135306 +disable_so_trf7970a_pm_runtime_suspend_fndecl_3511 trf7970a_pm_runtime_suspend fndecl 0 3511 NULL
135307 +disable_so_oops_timestamp_vardecl_printk_c_3515 oops_timestamp vardecl_printk.c 0 3515 NULL
135308 +disable_so_data_blkaddr_dnode_of_data_3521 data_blkaddr dnode_of_data 0 3521 NULL
135309 +disable_so_SYSC_set_tid_address_fndecl_3523 SYSC_set_tid_address fndecl 0 3523 NULL
135310 +disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 ftdi_232am_baud_base_to_divisor fndecl 0-1-2 3525 NULL nohasharray
135311 +disable_so_fll_ratio__fll_div_3525 fll_ratio _fll_div 0 3525 &disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 nohasharray
135312 +disable_so_xpcs_reg_addr_write_fndecl_3525 xpcs_reg_addr_write fndecl 3-0 3525 &disable_so_fll_ratio__fll_div_3525
135313 +disable_so_init_crypto_ahash_3526 init crypto_ahash 0 3526 NULL
135314 +disable_so_sit_blkaddr_f2fs_super_block_3531 sit_blkaddr f2fs_super_block 0 3531 NULL
135315 +disable_so_uuid_io_fndecl_3533 uuid_io fndecl 2 3533 NULL
135316 +disable_so_bufs_dma_addr_slgt_info_3534 bufs_dma_addr slgt_info 0 3534 NULL
135317 +disable_so_cpumask_size_fndecl_3544 cpumask_size fndecl 0 3544 NULL
135318 +disable_so_ocfs2_load_local_quota_bitmaps_fndecl_3551 ocfs2_load_local_quota_bitmaps fndecl 0 3551 NULL
135319 +disable_so_ghash_mod_init_fndecl_3557 ghash_mod_init fndecl 0 3557 NULL
135320 +disable_so_ath5k_hw_init_beacon_timers_fndecl_3558 ath5k_hw_init_beacon_timers fndecl 2-3 3558 NULL
135321 +disable_so_addr_h_qla2xxx_fce_chain_3560 addr_h qla2xxx_fce_chain 0 3560 NULL
135322 +disable_so_acpi_pci_sleep_wake_fndecl_3562 acpi_pci_sleep_wake fndecl 0 3562 NULL
135323 +disable_so_sd_set_timing_fndecl_3566 sd_set_timing fndecl 0 3566 NULL
135324 +disable_so_hpt3x2n_pci_clock_fndecl_3568 hpt3x2n_pci_clock fndecl 0 3568 NULL
135325 +disable_so_ata_sff_busy_sleep_fndecl_3571 ata_sff_busy_sleep fndecl 2-3 3571 NULL
135326 +disable_so_min_freq_cpufreq_cpuinfo_3592 min_freq cpufreq_cpuinfo 0 3592 NULL
135327 +disable_so_ver_blank_start_via_display_timing_3593 ver_blank_start via_display_timing 0 3593 NULL
135328 +disable_so_last_tsc_khz_kvm_arch_3596 last_tsc_khz kvm_arch 0 3596 NULL
135329 +disable_so_addrconf_sysctl_stable_secret_fndecl_3602 addrconf_sysctl_stable_secret fndecl 0 3602 NULL
135330 +disable_so_rxq_addr_vf_pf_rxq_params_3624 rxq_addr vf_pf_rxq_params 0 3624 NULL
135331 +disable_so_go7007_usb_ezusb_write_interrupt_fndecl_3625 go7007_usb_ezusb_write_interrupt fndecl 3-2 3625 NULL
135332 +disable_so_zd_write_mac_addr_fndecl_3635 zd_write_mac_addr fndecl 0 3635 NULL
135333 +disable_so_rt2x00crypto_tx_insert_iv_fndecl_3640 rt2x00crypto_tx_insert_iv fndecl 2 3640 NULL
135334 +disable_so_lvb_imtime_packed_ocfs2_meta_lvb_3641 lvb_imtime_packed ocfs2_meta_lvb 0 3641 NULL
135335 +disable_so_base_address_acpi_srat_mem_affinity_3662 base_address acpi_srat_mem_affinity 0 3662 NULL
135336 +disable_so_time_ksz_counter_info_3667 time ksz_counter_info 0 3667 NULL
135337 +disable_so_phys_addr_qlcnic_host_sds_ring_3676 phys_addr qlcnic_host_sds_ring 0 3676 NULL
135338 +disable_so_addr_ipcm_cookie_3680 addr ipcm_cookie 0 3680 NULL
135339 +disable_so_timestamp_nfs4_renewdata_3698 timestamp nfs4_renewdata 0 3698 NULL
135340 +disable_so_ocfs2_find_subtree_root_fndecl_3700 ocfs2_find_subtree_root fndecl 0 3700 NULL
135341 +disable_so_azx_get_delay_from_lpib_fndecl_3703 azx_get_delay_from_lpib fndecl 0-3 3703 NULL
135342 +disable_so_ieee80211_frequency_to_channel_fndecl_3709 ieee80211_frequency_to_channel fndecl 0-1 3709 NULL
135343 +disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720 rx8025_sysfs_show_clock_adjust fndecl 0 3720 NULL nohasharray
135344 +disable_so_vtotal___fb_timings_3720 vtotal __fb_timings 0 3720 &disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720
135345 +disable_so_autofs4_compat_get_set_timeout_fndecl_3726 autofs4_compat_get_set_timeout fndecl 0 3726 NULL
135346 +disable_so_paddr_ath10k_mem_chunk_3729 paddr ath10k_mem_chunk 0 3729 NULL
135347 +disable_so_interrupt_serio_driver_3738 interrupt serio_driver 2 3738 NULL
135348 +disable_so_m2_gma_clock_t_3742 m2 gma_clock_t 0 3742 NULL
135349 +disable_so_n_mt9t112_pll_divider_3743 n mt9t112_pll_divider 0 3743 NULL
135350 +disable_so_gcm_hash_crypt_done_fndecl_3746 gcm_hash_crypt_done fndecl 2 3746 NULL
135351 +disable_so_addr_i915_wa_reg_3751 addr i915_wa_reg 0 3751 NULL
135352 +disable_so_r12_kvm_regs_3771 r12 kvm_regs 0 3771 NULL
135353 +disable_so_sw_addr_dsa_chip_data_3785 sw_addr dsa_chip_data 0 3785 NULL
135354 +disable_so_t_sec_xfs_ictimestamp_3790 t_sec xfs_ictimestamp 0 3790 NULL
135355 +disable_so_ext4_block_bitmap_csum_set_fndecl_3795 ext4_block_bitmap_csum_set fndecl 2 3795 NULL
135356 +disable_so_pud_page_vaddr_fndecl_3809 pud_page_vaddr fndecl 0 3809 NULL
135357 +disable_so_coalescing_timeout_bfi_enet_ib_cfg_3813 coalescing_timeout bfi_enet_ib_cfg 0 3813 NULL
135358 +disable_so_sg_list_dma_address_skd_command_header_3825 sg_list_dma_address skd_command_header 0 3825 NULL
135359 +disable_so_ax25_display_timer_fndecl_3831 ax25_display_timer fndecl 0 3831 NULL
135360 +disable_so_tsi721_imsg_interrupt_disable_fndecl_3835 tsi721_imsg_interrupt_disable fndecl 2-3 3835 NULL
135361 +disable_so_irlap_start_mbusy_timer_fndecl_3852 irlap_start_mbusy_timer fndecl 2 3852 NULL
135362 +disable_so_size_log2_iwch_create_cq_resp_3861 size_log2 iwch_create_cq_resp 0 3861 NULL
135363 +disable_so_cttimeout_get_timeout_fndecl_3867 cttimeout_get_timeout fndecl 0 3867 NULL
135364 +disable_so_ioadl_bus_addr_pmcraid_ioarcb_3871 ioadl_bus_addr pmcraid_ioarcb 0 3871 NULL
135365 +disable_so___clocksource_register_scale_fndecl_3879 __clocksource_register_scale fndecl 2-3-0 3879 NULL
135366 +disable_so_tx_lsndtime_ccid2_hc_tx_sock_3890 tx_lsndtime ccid2_hc_tx_sock 0 3890 NULL
135367 +disable_so_xfs_btree_new_root_fndecl_3895 xfs_btree_new_root fndecl 0 3895 NULL
135368 +disable_so_freq_p54_channel_entry_3897 freq p54_channel_entry 0 3897 NULL
135369 +disable_so_xen_poll_irq_timeout_fndecl_3900 xen_poll_irq_timeout fndecl 1-2 3900 NULL
135370 +disable_so_nilfs_btree_propagate_v_fndecl_3902 nilfs_btree_propagate_v fndecl 0 3902 NULL
135371 +disable_so_max8907_rtc_set_time_fndecl_3905 max8907_rtc_set_time fndecl 0 3905 NULL
135372 +disable_so_alps_command_mode_set_addr_fndecl_3910 alps_command_mode_set_addr fndecl 2 3910 NULL
135373 +disable_so_ltimer_val_vxge_hw_tim_intr_config_3911 ltimer_val vxge_hw_tim_intr_config 0 3911 NULL
135374 +disable_so_dqb_btime_v1_disk_dqblk_3914 dqb_btime v1_disk_dqblk 0 3914 NULL nohasharray
135375 +disable_so_rsp_dmaaddr_fw_scsi_read_wr_3914 rsp_dmaaddr fw_scsi_read_wr 0 3914 &disable_so_dqb_btime_v1_disk_dqblk_3914
135376 +disable_so_ieee802154_hdr_push_addr_fndecl_3915 ieee802154_hdr_push_addr fndecl 0 3915 NULL
135377 +disable_so_blk_mq_init_bitmap_tags_fndecl_3929 blk_mq_init_bitmap_tags fndecl 2 3929 NULL
135378 +disable_so_mtimensec_fuse_attr_3937 mtimensec fuse_attr 0 3937 NULL
135379 +disable_so_cpu_clock_sample_group_fndecl_3939 cpu_clock_sample_group fndecl 1 3939 NULL
135380 +disable_so_min_bit_val_anatop_regulator_3947 min_bit_val anatop_regulator 0 3947 NULL
135381 +disable_so_warmup_time_sfb_sched_data_3959 warmup_time sfb_sched_data 0 3959 NULL
135382 +disable_so_zd_write_mac_addr_common_fndecl_3965 zd_write_mac_addr_common fndecl 0 3965 NULL
135383 +disable_so_ext2_valid_block_bitmap_fndecl_3966 ext2_valid_block_bitmap fndecl 3 3966 NULL
135384 +disable_so_ctnetlink_change_timeout_fndecl_3973 ctnetlink_change_timeout fndecl 0 3973 NULL
135385 +disable_so_root_nfs_parse_addr_fndecl_3974 root_nfs_parse_addr fndecl 0 3974 NULL
135386 +disable_so_zalloc_cpumask_var_fndecl_3979 zalloc_cpumask_var fndecl 2 3979 NULL
135387 +disable_so_sta_addr_hash_fndecl_3982 sta_addr_hash fndecl 0-3 3982 NULL
135388 +disable_so_address_ins_format3_3983 address ins_format3 0 3983 NULL
135389 +disable_so___nfsd4_write_time_fndecl_3999 __nfsd4_write_time fndecl 0 3999 NULL
135390 +disable_so_disc_start_time_esas2r_adapter_4010 disc_start_time esas2r_adapter 0 4010 NULL
135391 +disable_so_scroll_jiffies_magicmouse_sc_4034 scroll_jiffies magicmouse_sc 0 4034 NULL
135392 +disable_so_add_input_randomness_fndecl_4036 add_input_randomness fndecl 3-1-2 4036 NULL
135393 +disable_so_rc5t583_regulator_enable_time_fndecl_4047 rc5t583_regulator_enable_time fndecl 0 4047 NULL
135394 +disable_so_s_log2sharesize_adfs_sb_info_4052 s_log2sharesize adfs_sb_info 0 4052 NULL
135395 +disable_so___bitmap_or_fndecl_4055 __bitmap_or fndecl 4 4055 NULL
135396 +disable_so_clockevents_config_and_register_fndecl_4078 clockevents_config_and_register fndecl 2-3-4 4078 NULL
135397 +disable_so_db_addr_mlx5_ib_create_qp_4086 db_addr mlx5_ib_create_qp 0 4086 NULL
135398 +disable_so_t4_wr_mbox_meat_fndecl_4090 t4_wr_mbox_meat fndecl 0-2 4090 NULL
135399 +disable_so_debounce_time_lm8333_platform_data_4097 debounce_time lm8333_platform_data 0 4097 NULL
135400 +disable_so_di_atime_logfs_disk_inode_4115 di_atime logfs_disk_inode 0 4115 NULL
135401 +disable_so_slave_address_cp2112_read_req_report_4116 slave_address cp2112_read_req_report 0 4116 NULL
135402 +disable_so_sleep_functions_on_battery_store_fndecl_4126 sleep_functions_on_battery_store fndecl 0-4 4126 NULL
135403 +disable_so_neigh_rand_reach_time_fndecl_4142 neigh_rand_reach_time fndecl 0-1 4142 NULL
135404 +disable_so_fib_devindex_hashfn_fndecl_4150 fib_devindex_hashfn fndecl 0-1 4150 NULL
135405 +disable_so_compat_sys_clock_adjtime_fndecl_4152 compat_sys_clock_adjtime fndecl 1 4152 NULL nohasharray
135406 +disable_so_addr_sh_eth_rxdesc_4152 addr sh_eth_rxdesc 0 4152 &disable_so_compat_sys_clock_adjtime_fndecl_4152
135407 +disable_so_throttled_clock_task_time_cfs_rq_4161 throttled_clock_task_time cfs_rq 0 4161 NULL
135408 +disable_so_usb_set_lpm_timeout_fndecl_4163 usb_set_lpm_timeout fndecl 3 4163 NULL
135409 +disable_so_delay_multi_eq_delay_info_4167 delay_multi eq_delay_info 0 4167 NULL nohasharray
135410 +disable_so_reg_w_fndecl_4167 reg_w fndecl 2 4167 &disable_so_delay_multi_eq_delay_info_4167
135411 +disable_so_btree_migratepage_fndecl_4171 btree_migratepage fndecl 0 4171 NULL
135412 +disable_so_vpfe_set_sdr_addr_fndecl_4178 vpfe_set_sdr_addr fndecl 2 4178 NULL
135413 +disable_so_rx_beacon_signal_avg_station_info_4180 rx_beacon_signal_avg station_info 0 4180 NULL
135414 +disable_so_put_time_rxrpc_connection_4183 put_time rxrpc_connection 0 4183 NULL
135415 +disable_so_demod_address_nxt200x_config_4185 demod_address nxt200x_config 0 4185 NULL
135416 +disable_so_addr_lo_cmdQ_e_4186 addr_lo cmdQ_e 0 4186 NULL
135417 +disable_so_addr_lo_eth_tx_next_bd_4188 addr_lo eth_tx_next_bd 0 4188 NULL
135418 +disable_so_timeout_kbd_backlight_4193 timeout kbd_backlight 0 4193 NULL
135419 +disable_so_hw_ptr_buffer_jiffies_snd_pcm_runtime_4199 hw_ptr_buffer_jiffies snd_pcm_runtime 0 4199 NULL
135420 +disable_so_hash_walk_new_entry_fndecl_4203 hash_walk_new_entry fndecl 0 4203 NULL
135421 +disable_so_time_of_death_afs_server_4206 time_of_death afs_server 0 4206 NULL
135422 +disable_so_rtl2832_sdr_s_frequency_fndecl_4208 rtl2832_sdr_s_frequency fndecl 0 4208 NULL
135423 +disable_so_si476x_radio_g_frequency_fndecl_4218 si476x_radio_g_frequency fndecl 0 4218 NULL
135424 +disable_so_ahc_delay_fndecl_4220 ahc_delay fndecl 1 4220 NULL
135425 +disable_so_mounted_time_sit_info_4228 mounted_time sit_info 0 4228 NULL
135426 +disable_so_ahash_register_instance_fndecl_4229 ahash_register_instance fndecl 0 4229 NULL
135427 +disable_so_f_frequency_e4000_dev_4236 f_frequency e4000_dev 0 4236 NULL
135428 +disable_so_timekeeping_adjust_fndecl_4243 timekeeping_adjust fndecl 2 4243 NULL
135429 +disable_so_sis190_mac_addr_fndecl_4248 sis190_mac_addr fndecl 0 4248 NULL nohasharray
135430 +disable_so_vma_interval_tree_subtree_search_fndecl_4248 vma_interval_tree_subtree_search fndecl 2-3 4248 &disable_so_sis190_mac_addr_fndecl_4248
135431 +disable_so_xhci_enable_usb3_lpm_timeout_fndecl_4278 xhci_enable_usb3_lpm_timeout fndecl 0 4278 NULL
135432 +disable_so_address_be_bus_address64_4299 address be_bus_address64 0 4299 NULL
135433 +disable_so_freq_tef6862_state_4304 freq tef6862_state 0 4304 NULL
135434 +disable_so_aes_decrypt_interrupt_read_fndecl_4309 aes_decrypt_interrupt_read fndecl 3-0 4309 NULL
135435 +disable_so_lm3533_set_boost_freq_fndecl_4311 lm3533_set_boost_freq fndecl 0-2 4311 NULL
135436 +disable_so_adis16400_set_freq_fndecl_4314 adis16400_set_freq fndecl 0 4314 NULL
135437 +disable_so_vsync_offset_pulse_width_lo_detailed_pixel_timing_4318 vsync_offset_pulse_width_lo detailed_pixel_timing 0 4318 NULL
135438 +disable_so_time_atkbd_4320 time atkbd 0 4320 NULL nohasharray
135439 +disable_so_make_kuid_fndecl_4320 make_kuid fndecl 2 4320 &disable_so_time_atkbd_4320
135440 +disable_so_lookup_scsi3addr_fndecl_4332 lookup_scsi3addr fndecl 2-3-4 4332 NULL
135441 +disable_so_bf_buf_addr_ath_rxbuf_4337 bf_buf_addr ath_rxbuf 0 4337 NULL
135442 +disable_so_kbd_backlight_timeout_vardecl_sony_laptop_c_4340 kbd_backlight_timeout vardecl_sony-laptop.c 0 4340 NULL
135443 +disable_so_tomoyo_addprintf_fndecl_4352 tomoyo_addprintf fndecl 2 4352 NULL
135444 +disable_so_ab3100_get_register_interruptible_fndecl_4353 ab3100_get_register_interruptible fndecl 0 4353 NULL
135445 +disable_so_cpufreq_add_dev_interface_fndecl_4356 cpufreq_add_dev_interface fndecl 0 4356 NULL
135446 +disable_so_upper_addr_ufshcd_sg_entry_4364 upper_addr ufshcd_sg_entry 0 4364 NULL
135447 +disable_so_linear_address_kvm_translation_4366 linear_address kvm_translation 0 4366 NULL
135448 +disable_so_n_tty_receive_signal_char_fndecl_4373 n_tty_receive_signal_char fndecl 2 4373 NULL
135449 +disable_so_proc_uid_vardecl_airo_c_4387 proc_uid vardecl_airo.c 0 4387 NULL nohasharray
135450 +disable_so_dequeue_signal_fndecl_4387 dequeue_signal fndecl 0 4387 &disable_so_proc_uid_vardecl_airo_c_4387
135451 +disable_so_nilfs_btree_root_broken_fndecl_4403 nilfs_btree_root_broken fndecl 2 4403 NULL
135452 +disable_so_kstrtoll_from_user_fndecl_4415 kstrtoll_from_user fndecl 2 4415 NULL
135453 +disable_so_timestamp_fw_packet_4416 timestamp fw_packet 0 4416 NULL
135454 +disable_so_hhf_reset_timeout_hhf_sched_data_4417 hhf_reset_timeout hhf_sched_data 0 4417 NULL
135455 +disable_so_timeout_mpt3_ioctl_command_4422 timeout mpt3_ioctl_command 0 4422 NULL
135456 +disable_so_reg_write_fndecl_4433 reg_write fndecl 0-2-3 4433 NULL
135457 +disable_so_et0phyaddr_ssb_sprom_4448 et0phyaddr ssb_sprom 0 4448 NULL
135458 +disable_so_prev_steal_time_rq_4451 prev_steal_time rq 0 4451 NULL
135459 +disable_so_master_init_timer_mipi_config_4453 master_init_timer mipi_config 0 4453 NULL
135460 +disable_so_find_eth_addr_in_vpd_fndecl_4457 find_eth_addr_in_vpd fndecl 3 4457 NULL
135461 +disable_so_ccca_start_addr_snd_emu10k1_pcm_4459 ccca_start_addr snd_emu10k1_pcm 0 4459 NULL
135462 +disable_so_freq_offset_khz_vhf_dib0090_config_4461 freq_offset_khz_vhf dib0090_config 0 4461 NULL
135463 +disable_so_rxqueue_timer_velocity_opt_4470 rxqueue_timer velocity_opt 0 4470 NULL
135464 +disable_so_sysctl_rose_link_fail_timeout_vardecl_4477 sysctl_rose_link_fail_timeout vardecl 0 4477 NULL
135465 +disable_so_ablkcipher_walk_first_fndecl_4483 ablkcipher_walk_first fndecl 0 4483 NULL
135466 +disable_so_get_cached_alias_guid_fndecl_4490 get_cached_alias_guid fndecl 2-3 4490 NULL
135467 +disable_so_cfg80211_chandef_dfs_cac_time_fndecl_4493 cfg80211_chandef_dfs_cac_time fndecl 0 4493 NULL
135468 +disable_so_mclk_div2_cs42l56_private_4499 mclk_div2 cs42l56_private 0 4499 NULL
135469 +disable_so_snd_timer_user_ioctl_fndecl_4500 snd_timer_user_ioctl fndecl 0 4500 NULL nohasharray
135470 +disable_so_s5p_mfc_clock_on_fndecl_4500 s5p_mfc_clock_on fndecl 0 4500 &disable_so_snd_timer_user_ioctl_fndecl_4500
135471 +disable_so_boundary_snd_pcm_runtime_4504 boundary snd_pcm_runtime 0 4504 NULL nohasharray
135472 +disable_so_show_message_age_timer_fndecl_4504 show_message_age_timer fndecl 0 4504 &disable_so_boundary_snd_pcm_runtime_4504
135473 +disable_so_tn_smc_wreg_fndecl_4512 tn_smc_wreg fndecl 2-3 4512 NULL
135474 +disable_so_ip_perf_sample_data_4515 ip perf_sample_data 0 4515 NULL nohasharray
135475 +disable_so_intel_gpu_freq_fndecl_4515 intel_gpu_freq fndecl 0-2 4515 &disable_so_ip_perf_sample_data_4515
135476 +disable_so_clk_delay_mmc_host_4517 clk_delay mmc_host 0 4517 NULL
135477 +disable_so_addr_atiixp_modem_4521 addr atiixp_modem 0 4521 NULL
135478 +disable_so_rsp_dmaaddr_fw_scsi_write_wr_4522 rsp_dmaaddr fw_scsi_write_wr 0 4522 NULL
135479 +disable_so_last_sum_exec_runtime_task_struct_4531 last_sum_exec_runtime task_struct 0 4531 NULL
135480 +disable_so_buf_addr_mlx5_ib_create_qp_4533 buf_addr mlx5_ib_create_qp 0 4533 NULL
135481 +disable_so_set_h245_addr_fndecl_4538 set_h245_addr fndecl 2-4 4538 NULL
135482 +disable_so_sleep_reg_fan53555_device_info_4552 sleep_reg fan53555_device_info 0 4552 NULL
135483 +disable_so_freqmode__pll_div_4562 freqmode _pll_div 0 4562 NULL
135484 +disable_so_buffer_addr_i40e_tx_desc_4570 buffer_addr i40e_tx_desc 0 4570 NULL
135485 +disable_so_ctime_cifs_unix_set_info_args_4572 ctime cifs_unix_set_info_args 0 4572 NULL
135486 +disable_so_pci_bus_saa7164_dev_4576 pci_bus saa7164_dev 0 4576 NULL
135487 +disable_so_addr_vhost_log_4579 addr vhost_log 0 4579 NULL
135488 +disable_so_store_fan_div_fndecl_4585 store_fan_div fndecl 0-4 4585 NULL
135489 +disable_so_timeout__mgslpc_info_4586 timeout _mgslpc_info 0 4586 NULL
135490 +disable_so_posix_timer_add_fndecl_4591 posix_timer_add fndecl 0 4591 NULL
135491 +disable_so_system_timestamp_iwl_rx_phy_info_4592 system_timestamp iwl_rx_phy_info 0 4592 NULL
135492 +disable_so_guid_ib_dm_ioc_profile_4593 guid ib_dm_ioc_profile 0 4593 NULL
135493 +disable_so_qat_alg_ablkcipher_init_com_fndecl_4596 qat_alg_ablkcipher_init_com fndecl 5 4596 NULL
135494 +disable_so_irlan_client_start_kick_timer_fndecl_4618 irlan_client_start_kick_timer fndecl 2 4618 NULL
135495 +disable_so_kvm_apic_match_physical_addr_fndecl_4632 kvm_apic_match_physical_addr fndecl 2 4632 NULL
135496 +disable_so_task_fix_setuid_security_operations_4637 task_fix_setuid security_operations 0 4637 NULL
135497 +disable_so_nla_put_labels_fndecl_4639 nla_put_labels fndecl 3 4639 NULL
135498 +disable_so_xen_pcibk_guest_interrupt_fndecl_4644 xen_pcibk_guest_interrupt fndecl 1 4644 NULL
135499 +disable_so_phys_addr_qlcnic_fw_dump_4650 phys_addr qlcnic_fw_dump 0 4650 NULL
135500 +disable_so_daddr_ath5k_buf_4651 daddr ath5k_buf 0 4651 NULL
135501 +disable_so_phase_delay_atom_voltage_table_4655 phase_delay atom_voltage_table 0 4655 NULL
135502 +disable_so_nl80211_send_auth_timeout_fndecl_4657 nl80211_send_auth_timeout fndecl 4 4657 NULL
135503 +disable_so_af9013_statistics_signal_strength_fndecl_4658 af9013_statistics_signal_strength fndecl 0 4658 NULL
135504 +disable_so_kbd_led_timeout_store_fndecl_4659 kbd_led_timeout_store fndecl 0-4 4659 NULL
135505 +disable_so_byte_align_snd_pcm_runtime_4661 byte_align snd_pcm_runtime 0 4661 NULL
135506 +disable_so_stv0900_get_timing_offst_fndecl_4670 stv0900_get_timing_offst fndecl 0-2 4670 NULL
135507 +disable_so_clk_frequency_imx_sgtl5000_data_4671 clk_frequency imx_sgtl5000_data 0 4671 NULL
135508 +disable_so_sys_image_guid_ib_device_attr_4674 sys_image_guid ib_device_attr 0 4674 NULL
135509 +disable_so_timestamp_usec_rt2x00dump_hdr_4680 timestamp_usec rt2x00dump_hdr 0 4680 NULL
135510 +disable_so_ieee80211_aes_cmac_fndecl_4693 ieee80211_aes_cmac fndecl 4 4693 NULL
135511 +disable_so_hpi_handle_indexes_fndecl_4704 hpi_handle_indexes fndecl 1 4704 NULL
135512 +disable_so_runtime_suspend_mmc_bus_ops_4709 runtime_suspend mmc_bus_ops 0 4709 NULL
135513 +disable_so_i_atime_bfs_inode_4710 i_atime bfs_inode 0 4710 NULL
135514 +disable_so_tsf_timestamp_rx_ppdu_end_common_4717 tsf_timestamp rx_ppdu_end_common 0 4717 NULL
135515 +disable_so_register_blkdev_fndecl_4723 register_blkdev fndecl 0-1 4723 NULL
135516 +disable_so_clockevents_unbind_fndecl_4727 clockevents_unbind fndecl 2 4727 NULL
135517 +disable_so_dma_addr_vmxnet3_rx_buf_info_4730 dma_addr vmxnet3_rx_buf_info 0 4730 NULL
135518 +disable_so_ip_idents_reserve_fndecl_4731 ip_idents_reserve fndecl 0-1-2 4731 NULL
135519 +disable_so_atomic64_sub_and_test_fndecl_4733 atomic64_sub_and_test fndecl 1 4733 NULL nohasharray
135520 +disable_so_hsync_offset_lo_detailed_pixel_timing_4733 hsync_offset_lo detailed_pixel_timing 0 4733 &disable_so_atomic64_sub_and_test_fndecl_4733
135521 +disable_so_wakeup_total_time_show_fndecl_4745 wakeup_total_time_show fndecl 0 4745 NULL
135522 +disable_so_kv_get_sleep_divider_id_from_clock_fndecl_4756 kv_get_sleep_divider_id_from_clock fndecl 2 4756 NULL
135523 +disable_so_delay_fn_vardecl_delay_c_4772 delay_fn vardecl_delay.c 1 4772 NULL
135524 +disable_so_do_sched_cfs_period_timer_fndecl_4778 do_sched_cfs_period_timer fndecl 2 4778 NULL
135525 +disable_so_gid_index_mlx4_av_4786 gid_index mlx4_av 0 4786 NULL
135526 +disable_so_rq_addr_high_nes_qp_context_4796 rq_addr_high nes_qp_context 0 4796 NULL
135527 +disable_so_last_commit_jiffies_cache_4801 last_commit_jiffies cache 0 4801 NULL
135528 +disable_so_frequency_sst_hsw_audio_data_format_ipc_4811 frequency sst_hsw_audio_data_format_ipc 0 4811 NULL
135529 +disable_so_dev_sleep_time_cyapa_4825 dev_sleep_time cyapa 0 4825 NULL nohasharray
135530 +disable_so_si570_update_rfreq_fndecl_4825 si570_update_rfreq fndecl 0 4825 &disable_so_dev_sleep_time_cyapa_4825
135531 +disable_so_reply_dma_max_address_MPT2SAS_ADAPTER_4826 reply_dma_max_address MPT2SAS_ADAPTER 0 4826 NULL
135532 +disable_so_freq_nvkm_ram_data_4838 freq nvkm_ram_data 0 4838 NULL
135533 +disable_so_ata_timing_find_mode_fndecl_4841 ata_timing_find_mode fndecl 1 4841 NULL
135534 +disable_so_hci_bdaddr_list_del_fndecl_4856 hci_bdaddr_list_del fndecl 0 4856 NULL
135535 +disable_so_challenge_timestamp_vardecl_tcp_input_c_4859 challenge_timestamp vardecl_tcp_input.c 0 4859 NULL
135536 +disable_so_bar2_address_fndecl_4862 bar2_address fndecl 2 4862 NULL
135537 +disable_so_time_pardevice_4872 time pardevice 0 4872 NULL
135538 +disable_so_open_posix_clock_operations_4876 open posix_clock_operations 2 4876 NULL
135539 +disable_so_buf2_addr_xgmac_dma_desc_4877 buf2_addr xgmac_dma_desc 0 4877 NULL
135540 +disable_so_mixart_set_clock_fndecl_4878 mixart_set_clock fndecl 3 4878 NULL nohasharray
135541 +disable_so_adis16480_get_filter_freq_fndecl_4878 adis16480_get_filter_freq fndecl 0 4878 &disable_so_mixart_set_clock_fndecl_4878
135542 +disable_so_ssb_chipco_watchdog_get_max_timer_fndecl_4885 ssb_chipco_watchdog_get_max_timer fndecl 0 4885 NULL
135543 +disable_so_sys_timerfd_gettime_fndecl_4888 sys_timerfd_gettime fndecl 1 4888 NULL nohasharray
135544 +disable_so_regcache_rbtree_read_fndecl_4888 regcache_rbtree_read fndecl 2 4888 &disable_so_sys_timerfd_gettime_fndecl_4888
135545 +disable_so_reiserfs_read_bitmap_block_fndecl_4892 reiserfs_read_bitmap_block fndecl 2 4892 NULL
135546 +disable_so_mapaddr_bq_desc_4896 mapaddr bq_desc 0 4896 NULL
135547 +disable_so_sec_tomoyo_time_4898 sec tomoyo_time 0 4898 NULL
135548 +disable_so_nvkm_timer_wait_ne_fndecl_4904 nvkm_timer_wait_ne fndecl 3-5 4904 NULL
135549 +disable_so_ehash_locks_mask_inet_hashinfo_4906 ehash_locks_mask inet_hashinfo 0 4906 NULL
135550 +disable_so_split_scan_timeout_read_fndecl_4910 split_scan_timeout_read fndecl 3-0 4910 NULL
135551 +disable_so_rdmsr_safe_regs_on_cpu_fndecl_4918 rdmsr_safe_regs_on_cpu fndecl 0-1 4918 NULL
135552 +disable_so_data_addr_pmu_nvbios_pmuR_4930 data_addr_pmu nvbios_pmuR 0 4930 NULL
135553 +disable_so_fs_overflowgid_vardecl_4952 fs_overflowgid vardecl 0 4952 NULL
135554 +disable_so_crypto_authenc_esn_encrypt_done_fndecl_4953 crypto_authenc_esn_encrypt_done fndecl 2 4953 NULL
135555 +disable_so_addr_lo_sdhci_adma2_64_desc_4956 addr_lo sdhci_adma2_64_desc 0 4956 NULL
135556 +disable_so_hc_erase_timeout_mmc_ext_csd_4958 hc_erase_timeout mmc_ext_csd 0 4958 NULL nohasharray
135557 +disable_so_translation_offset_acpi_address64_attribute_4958 translation_offset acpi_address64_attribute 0 4958 &disable_so_hc_erase_timeout_mmc_ext_csd_4958
135558 +disable_so_address_acpi_object_region_4962 address acpi_object_region 0 4962 NULL
135559 +disable_so_nlmsvc_timeout_vardecl_4968 nlmsvc_timeout vardecl 0 4968 NULL
135560 +disable_so_icmpv6_time_netns_sysctl_ipv6_4971 icmpv6_time netns_sysctl_ipv6 0 4971 NULL
135561 +disable_so_rhashtable_walk_init_fndecl_4975 rhashtable_walk_init fndecl 0 4975 NULL
135562 +disable_so_tm_wday_rtc_time_4991 tm_wday rtc_time 0 4991 NULL
135563 +disable_so_pre_event_timeout_seq_oss_readq_4996 pre_event_timeout seq_oss_readq 0 4996 NULL
135564 +disable_so_m_sys_clock_freq_drxk_state_5005 m_sys_clock_freq drxk_state 0 5005 NULL
135565 +disable_so_btree_merge_fndecl_5007 btree_merge fndecl 4 5007 NULL
135566 +disable_so_addr_snd_dma_buffer_5022 addr snd_dma_buffer 0 5022 NULL
135567 +disable_so_mlx4_get_slave_num_gids_fndecl_5024 mlx4_get_slave_num_gids fndecl 0-2-3 5024 NULL
135568 +disable_so_time_nfc_llcp_sdp_tlv_5037 time nfc_llcp_sdp_tlv 0 5037 NULL
135569 +disable_so_hangcheck_tsc_margin_vardecl_hangcheck_timer_c_5043 hangcheck_tsc_margin vardecl_hangcheck-timer.c 0 5043 NULL
135570 +disable_so_fill_node_footer_blkaddr_fndecl_5053 fill_node_footer_blkaddr fndecl 2 5053 NULL
135571 +disable_so_sc_lseg_stime_nilfs_sc_info_5054 sc_lseg_stime nilfs_sc_info 0 5054 NULL
135572 +disable_so_kstrtou8_fndecl_5058 kstrtou8 fndecl 0 5058 NULL
135573 +disable_so_RF_SYN_pll_refdiv_chan_info_nphy_radio205x_5063 RF_SYN_pll_refdiv chan_info_nphy_radio205x 0 5063 NULL
135574 +disable_so_addr_lo_tx_desc_5065 addr_lo tx_desc 0 5065 NULL
135575 +disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067 mos7840_calc_baud_rate_divisor fndecl 2 5067 NULL nohasharray
135576 +disable_so_addr_iwch_mm_entry_5067 addr iwch_mm_entry 0 5067 &disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067
135577 +disable_so_freq_wmi_send_mgmt_cmd_5080 freq wmi_send_mgmt_cmd 0 5080 NULL
135578 +disable_so_wep_addr_key_count_read_fndecl_5085 wep_addr_key_count_read fndecl 3-0 5085 NULL
135579 +disable_so_bitmap_find_next_zero_area_off_fndecl_5088 bitmap_find_next_zero_area_off fndecl 0-2-3-4-5-6 5088 NULL
135580 +disable_so_udf_bitmap_new_block_fndecl_5093 udf_bitmap_new_block fndecl 0-4 5093 NULL
135581 +disable_so_ds1343_read_time_fndecl_5094 ds1343_read_time fndecl 0 5094 NULL nohasharray
135582 +disable_so_panel_blon_delay_radeon_encoder_lvds_5094 panel_blon_delay radeon_encoder_lvds 0 5094 &disable_so_ds1343_read_time_fndecl_5094
135583 +disable_so_hpi_cobranet_set_ip_address_fndecl_5106 hpi_cobranet_set_ip_address fndecl 1 5106 NULL
135584 +disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107 rx_bidx_addr bnx2_rx_ring_info 0 5107 NULL nohasharray
135585 +disable_so_bitmap_andnot_fndecl_5107 bitmap_andnot fndecl 4 5107 &disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107
135586 +disable_so_end_seq_illinois_5111 end_seq illinois 0 5111 NULL
135587 +disable_so_in_progress_block_addr_flchip_5114 in_progress_block_addr flchip 0 5114 NULL
135588 +disable_so_xmit_timestamp_cw1200_queue_item_5121 xmit_timestamp cw1200_queue_item 0 5121 NULL
135589 +disable_so_snd_ymfpci_timer_fndecl_5137 snd_ymfpci_timer fndecl 2-0 5137 NULL
135590 +disable_so_sysctl_rose_no_activity_timeout_vardecl_5143 sysctl_rose_no_activity_timeout vardecl 0 5143 NULL
135591 +disable_so_mtime_p9_wstat_5152 mtime p9_wstat 0 5152 NULL nohasharray
135592 +disable_so_addr_mvs_prd_5152 addr mvs_prd 0 5152 &disable_so_mtime_p9_wstat_5152
135593 +disable_so_pcan_usb_pro_set_bittiming_fndecl_5169 pcan_usb_pro_set_bittiming fndecl 0 5169 NULL
135594 +disable_so_phy_addr_e1000_hw_5196 phy_addr e1000_hw 0 5196 NULL
135595 +disable_so_cpufreq_p4_init_fndecl_5201 cpufreq_p4_init fndecl 0 5201 NULL
135596 +disable_so_iscsit_na_dataout_timeout_retries_fndecl_5205 iscsit_na_dataout_timeout_retries fndecl 0 5205 NULL
135597 +disable_so_ata_sff_queue_delayed_work_fndecl_5217 ata_sff_queue_delayed_work fndecl 2 5217 NULL
135598 +disable_so_post_div_atom_mpll_param_5225 post_div atom_mpll_param 0 5225 NULL
135599 +disable_so_cfg80211_wext_freq_fndecl_5229 cfg80211_wext_freq fndecl 0 5229 NULL
135600 +disable_so_poll_timer_vardecl_hfcmulti_c_5232 poll_timer vardecl_hfcmulti.c 0 5232 NULL
135601 +disable_so_antdiv_ctl1_modal_eep_4k_header_5248 antdiv_ctl1 modal_eep_4k_header 0 5248 NULL
135602 +disable_so_snd_efw_command_get_clock_source_fndecl_5253 snd_efw_command_get_clock_source fndecl 0 5253 NULL
135603 +disable_so_img_ir_free_timing_dynamic_fndecl_5255 img_ir_free_timing_dynamic fndecl 0-1 5255 NULL
135604 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_retries_fndecl_5267 iscsi_nacl_attrib_store_dataout_timeout_retries fndecl 0-3 5267 NULL
135605 +disable_so_st_mtime_nsec_compat_stat_5268 st_mtime_nsec compat_stat 0 5268 NULL nohasharray
135606 +disable_so_mpll_dq_func_cntl_2_rv770_clock_registers_5268 mpll_dq_func_cntl_2 rv770_clock_registers 0 5268 &disable_so_st_mtime_nsec_compat_stat_5268
135607 +disable_so_selinux_task_setpgid_fndecl_5275 selinux_task_setpgid fndecl 0 5275 NULL
135608 +disable_so_target_addr_sg_entry_5281 target_addr sg_entry 0 5281 NULL nohasharray
135609 +disable_so_range_start_fixed_mtrr_segment_5281 range_start fixed_mtrr_segment 0 5281 &disable_so_target_addr_sg_entry_5281
135610 +disable_so_interrupt_offset_vnic_cq_5300 interrupt_offset vnic_cq 0 5300 NULL
135611 +disable_so_usb_calc_bus_time_fndecl_5306 usb_calc_bus_time fndecl 0-4-2 5306 NULL
135612 +disable_so_cypress_calculate_burst_time_fndecl_5314 cypress_calculate_burst_time fndecl 2-3-0 5314 NULL nohasharray
135613 +disable_so_ds_num_nfs4_file_layout_dsaddr_5314 ds_num nfs4_file_layout_dsaddr 0 5314 &disable_so_cypress_calculate_burst_time_fndecl_5314
135614 +disable_so_nilfs_btree_assign_v_fndecl_5317 nilfs_btree_assign_v fndecl 0-5 5317 NULL
135615 +disable_so_seq_tipc_nl_msg_5321 seq tipc_nl_msg 0 5321 NULL
135616 +disable_so_dr_addr_qlc_83xx_quad_entry_5328 dr_addr qlc_83xx_quad_entry 0 5328 NULL
135617 +disable_so_lzo_decompress_fndecl_5329 lzo_decompress fndecl 3 5329 NULL
135618 +disable_so_get_phys_addr_esas2r_sg_context_5331 get_phys_addr esas2r_sg_context 0 5331 NULL
135619 +disable_so_i2c_udelay_vardecl_bttv_i2c_c_5339 i2c_udelay vardecl_bttv-i2c.c 0 5339 NULL
135620 +disable_so_msr_src_desc_5345 msr src_desc 0 5345 NULL
135621 +disable_so_put_time_rxrpc_transport_5355 put_time rxrpc_transport 0 5355 NULL
135622 +disable_so_mtrr_del_fndecl_5356 mtrr_del fndecl 2-3 5356 NULL
135623 +disable_so_d_itimer_fs_disk_quota_5358 d_itimer fs_disk_quota 0 5358 NULL
135624 +disable_so_buf_phy_addr_high_ql_rcv_buf_cb_5366 buf_phy_addr_high ql_rcv_buf_cb 0 5366 NULL
135625 +disable_so_cpufreq_get_cur_state_fndecl_5369 cpufreq_get_cur_state fndecl 1 5369 NULL
135626 +disable_so_hi_cfg_bridge_delay_drxj_data_5374 hi_cfg_bridge_delay drxj_data 0 5374 NULL
135627 +disable_so_btrfs_uuid_tree_lookup_fndecl_5376 btrfs_uuid_tree_lookup fndecl 0-3-4 5376 NULL
135628 +disable_so_ds1347_read_time_fndecl_5383 ds1347_read_time fndecl 0 5383 NULL nohasharray
135629 +disable_so_uv_nmi_slave_delay_vardecl_uv_nmi_c_5383 uv_nmi_slave_delay vardecl_uv_nmi.c 0 5383 &disable_so_ds1347_read_time_fndecl_5383
135630 +disable_so_nvm_start_addr_code_entry_5390 nvm_start_addr code_entry 0 5390 NULL
135631 +disable_so_bna_tx_coalescing_timeo_set_fndecl_5397 bna_tx_coalescing_timeo_set fndecl 2 5397 NULL
135632 +disable_so_ptp_pch_adjtime_fndecl_5406 ptp_pch_adjtime fndecl 2 5406 NULL nohasharray
135633 +disable_so_setkey_blkcipher_tfm_5406 setkey blkcipher_tfm 0-3 5406 &disable_so_ptp_pch_adjtime_fndecl_5406
135634 +disable_so_poll_time_plat_max3100_5416 poll_time plat_max3100 0 5416 NULL
135635 +disable_so_xfrm_hash_free_fndecl_5437 xfrm_hash_free fndecl 2 5437 NULL
135636 +disable_so_sh_cmt_register_clockevent_fndecl_5438 sh_cmt_register_clockevent fndecl 0 5438 NULL
135637 +disable_so_wake_cnt_blk_mq_bitmap_tags_5442 wake_cnt blk_mq_bitmap_tags 0 5442 NULL
135638 +disable_so_ping_clear_saddr_fndecl_5445 ping_clear_saddr fndecl 2 5445 NULL
135639 +disable_so_address_dummy_5460 address dummy 0 5460 NULL
135640 +disable_so_rtl_signal_scale_mapping_fndecl_5462 rtl_signal_scale_mapping fndecl 0-2 5462 NULL
135641 +disable_so_nfs_cache_getent_timeout_vardecl_cache_lib_c_5468 nfs_cache_getent_timeout vardecl_cache_lib.c 0 5468 NULL
135642 +disable_so_wmi_addr_remap_fndecl_5469 wmi_addr_remap fndecl 0-1 5469 NULL
135643 +disable_so_hash_mem_fndecl_5475 hash_mem fndecl 2 5475 NULL
135644 +disable_so_mpll_ss1_ni_clock_registers_5476 mpll_ss1 ni_clock_registers 0 5476 NULL
135645 +disable_so_cg_spll_spread_spectrum_rv730_clock_registers_5480 cg_spll_spread_spectrum rv730_clock_registers 0 5480 NULL
135646 +disable_so_data_shared_msr_entry_5484 data shared_msr_entry 0 5484 NULL
135647 +disable_so_bitmap_count_page_fndecl_5494 bitmap_count_page fndecl 2 5494 NULL
135648 +disable_so_write_radio_reg_fndecl_5497 write_radio_reg fndecl 2-3 5497 NULL nohasharray
135649 +disable_so_skcipher_recvmsg_async_fndecl_5497 skcipher_recvmsg_async fndecl 0 5497 &disable_so_write_radio_reg_fndecl_5497
135650 +disable_so_i2c_address_stv6110_priv_5499 i2c_address stv6110_priv 0 5499 NULL
135651 +disable_so_sh_cmt_clocksource_enable_fndecl_5501 sh_cmt_clocksource_enable fndecl 0 5501 NULL
135652 +disable_so_effhash_fndecl_5510 effhash fndecl 0-1 5510 NULL
135653 +disable_so_kswapd_try_to_sleep_fndecl_5521 kswapd_try_to_sleep fndecl 2 5521 NULL
135654 +disable_so_oublock_signal_struct_5525 oublock signal_struct 0 5525 NULL
135655 +disable_so_intel_bios_ssc_frequency_fndecl_5528 intel_bios_ssc_frequency fndecl 0 5528 NULL
135656 +disable_so_ioasa_bus_addr_pmcraid_ioarcb_5540 ioasa_bus_addr pmcraid_ioarcb 0 5540 NULL
135657 +disable_so_addr_req_t_5548 addr req_t 0 5548 NULL
135658 +disable_so_xfs_btree_read_bufl_fndecl_5558 xfs_btree_read_bufl fndecl 0-3 5558 NULL
135659 +disable_so_csa_expire_time_mwifiex_private_5561 csa_expire_time mwifiex_private 0 5561 NULL
135660 +disable_so_hpi_cobranet_set_static_ip_address_fndecl_5564 hpi_cobranet_set_static_ip_address fndecl 1 5564 NULL
135661 +disable_so_crypto_sha256_update_fndecl_5571 crypto_sha256_update fndecl 3 5571 NULL
135662 +disable_so_pixclock_vardecl_matroxfb_base_c_5573 pixclock vardecl_matroxfb_base.c 0 5573 NULL
135663 +disable_so_crypto_inc_byte_fndecl_5578 crypto_inc_byte fndecl 2 5578 NULL
135664 +disable_so_duration_iwl_time_event_cmd_5595 duration iwl_time_event_cmd 0 5595 NULL
135665 +disable_so_ddcb_daddr_ddcb_queue_5599 ddcb_daddr ddcb_queue 0 5599 NULL
135666 +disable_so_sst_handle_vb_timer_fndecl_5602 sst_handle_vb_timer fndecl 0 5602 NULL
135667 +disable_so_comp_resp_timeout_reg_pch_phub_reg_5604 comp_resp_timeout_reg pch_phub_reg 0 5604 NULL
135668 +disable_so_sys_getegid_fndecl_5608 sys_getegid fndecl 0 5608 NULL
135669 +disable_so_st_gid___old_kernel_stat_5613 st_gid __old_kernel_stat 0 5613 NULL
135670 +disable_so_daddr_iphdr_5614 daddr iphdr 0 5614 NULL
135671 +disable_so_desc_set_buf_addr_and_size_fndecl_5618 desc_set_buf_addr_and_size fndecl 2-3 5618 NULL
135672 +disable_so_pch_udc_enable_ep_interrupts_fndecl_5624 pch_udc_enable_ep_interrupts fndecl 2 5624 NULL
135673 +disable_so_physaddr_brcmf_msgbuf_pktid_5642 physaddr brcmf_msgbuf_pktid 0 5642 NULL
135674 +disable_so_usb_timeout_vardecl_radio_si470x_usb_c_5648 usb_timeout vardecl_radio-si470x-usb.c 0 5648 NULL
135675 +disable_so_show_sys_image_guid_fndecl_5652 show_sys_image_guid fndecl 0 5652 NULL
135676 +disable_so_mtask_addr_beiscsi_io_task_5654 mtask_addr beiscsi_io_task 0 5654 NULL
135677 +disable_so_no_addr_gfs2_inum_host_5660 no_addr gfs2_inum_host 0 5660 NULL
135678 +disable_so___sw_hweight64_fndecl_5663 __sw_hweight64 fndecl 1-0 5663 NULL
135679 +disable_so_aca_tstamp_ifacaddr6_5678 aca_tstamp ifacaddr6 0 5678 NULL
135680 +disable_so_fill_in_addresses_op_x86_model_spec_5684 fill_in_addresses op_x86_model_spec 0 5684 NULL
135681 +disable_so_root_hfs_btree_5692 root hfs_btree 0 5692 NULL
135682 +disable_so_update_time_saa7164_histogram_bucket_5697 update_time saa7164_histogram_bucket 0 5697 NULL
135683 +disable_so_hw_ptr_base_snd_pcm_runtime_5698 hw_ptr_base snd_pcm_runtime 0 5698 NULL
135684 +disable_so_snd_emu10k1_timer_fndecl_5702 snd_emu10k1_timer fndecl 2-0 5702 NULL
135685 +disable_so_bmap_hash_id_fndecl_5706 bmap_hash_id fndecl 0-2 5706 NULL
135686 +disable_so_timeout_abs_ns_vcpu_set_singleshot_timer_5711 timeout_abs_ns vcpu_set_singleshot_timer 0 5711 NULL
135687 +disable_so_timestamp_discovery_t_5725 timestamp discovery_t 0 5725 NULL nohasharray
135688 +disable_so_uid_fuse_setattr_in_5725 uid fuse_setattr_in 0 5725 &disable_so_timestamp_discovery_t_5725 nohasharray
135689 +disable_so_SYSC_setreuid_fndecl_5725 SYSC_setreuid fndecl 0 5725 &disable_so_uid_fuse_setattr_in_5725
135690 +disable_so_r10_kvm_regs_5730 r10 kvm_regs 0 5730 NULL
135691 +disable_so_bulk_in_epaddr_sur40_state_5741 bulk_in_epaddr sur40_state 0 5741 NULL
135692 +disable_so_rt2x00lib_rxdone_read_signal_fndecl_5747 rt2x00lib_rxdone_read_signal fndecl 0 5747 NULL
135693 +disable_so_ti_tscadc_driver_init_fndecl_5771 ti_tscadc_driver_init fndecl 0 5771 NULL
135694 +disable_so_iowrite8_fndecl_5781 iowrite8 fndecl 1 5781 NULL
135695 +disable_so_mthca_resize_cq_fndecl_5782 mthca_resize_cq fndecl 0 5782 NULL
135696 +disable_so_lbs_host_sleep_write_fndecl_5783 lbs_host_sleep_write fndecl 0-3 5783 NULL
135697 +disable_so_addr_tx_buf_desc_5787 addr tx_buf_desc 0 5787 NULL
135698 +disable_so_tcn_timer_value___bridge_info_5789 tcn_timer_value __bridge_info 0 5789 NULL
135699 +disable_so_old_jiffies_ati_remote_5798 old_jiffies ati_remote 0 5798 NULL
135700 +disable_so_timeout_sched_poll_5810 timeout sched_poll 0 5810 NULL
135701 +disable_so_addr_doit_fndecl_5813 addr_doit fndecl 0 5813 NULL
135702 +disable_so_enic_dev_del_addr_fndecl_5814 enic_dev_del_addr fndecl 0 5814 NULL
135703 +disable_so_start_addr_gen_pool_chunk_5822 start_addr gen_pool_chunk 0 5822 NULL
135704 +disable_so_smsc75xx_enable_phy_wakeup_interrupts_fndecl_5824 smsc75xx_enable_phy_wakeup_interrupts fndecl 2-0 5824 NULL
135705 +disable_so_ieee802154_hdr_peek_addrs_fndecl_5825 ieee802154_hdr_peek_addrs fndecl 0 5825 NULL
135706 +disable_so_dsp_dram_offset_sst_addr_5830 dsp_dram_offset sst_addr 0 5830 NULL
135707 +disable_so_mwifiex_read_reg_fndecl_5832 mwifiex_read_reg fndecl 2 5832 NULL
135708 +disable_so_process_tgid_comm_proc_event_5834 process_tgid comm_proc_event 0 5834 NULL
135709 +disable_so_idedisk_read_native_max_address_fndecl_5836 idedisk_read_native_max_address fndecl 0 5836 NULL
135710 +disable_so_bus_time_fw_ohci_5838 bus_time fw_ohci 0 5838 NULL
135711 +disable_so_demod_address_nxt6000_config_5841 demod_address nxt6000_config 0 5841 NULL
135712 +disable_so_recover_timer_write_fndecl_5848 recover_timer_write fndecl 3-0 5848 NULL
135713 +disable_so_next_jiffies_tick_sched_5856 next_jiffies tick_sched 0 5856 NULL
135714 +disable_so_addr_asc_sg_list_5863 addr asc_sg_list 0 5863 NULL
135715 +disable_so_schedule_delayed_work_fndecl_5873 schedule_delayed_work fndecl 2 5873 NULL
135716 +disable_so_allow_utime_fat_mount_options_5877 allow_utime fat_mount_options 0 5877 NULL
135717 +disable_so_irlap_start_query_timer_fndecl_5881 irlap_start_query_timer fndecl 3-2 5881 NULL
135718 +disable_so_nent_kvm_cpuid2_5883 nent kvm_cpuid2 0 5883 NULL
135719 +disable_so_delay_pcm_irq_snd_emu10k1_5885 delay_pcm_irq snd_emu10k1 0 5885 NULL
135720 +disable_so_DAC1064_calcclock_fndecl_5888 DAC1064_calcclock fndecl 2-3 5888 NULL
135721 +disable_so_ep_address_ath6kl_usb_pipe_5905 ep_address ath6kl_usb_pipe 0 5905 NULL nohasharray
135722 +disable_so_set_bit_le_fndecl_5905 set_bit_le fndecl 1 5905 &disable_so_ep_address_ath6kl_usb_pipe_5905
135723 +disable_so_last_force_reset_jiffies_il_force_reset_5911 last_force_reset_jiffies il_force_reset 0 5911 NULL
135724 +disable_so_evclk_radeon_vce_clock_voltage_dependency_entry_5913 evclk radeon_vce_clock_voltage_dependency_entry 0 5913 NULL
135725 +disable_so_status_address_card_5915 status_address card 0 5915 NULL
135726 +disable_so_ifal_index_ifaddrlblmsg_5916 ifal_index ifaddrlblmsg 0 5916 NULL
135727 +disable_so_validate_add_page_mtrr_ops_5922 validate_add_page mtrr_ops 1-2 5922 NULL
135728 +disable_so_fm10k_ptp_adjtime_fndecl_5923 fm10k_ptp_adjtime fndecl 2 5923 NULL
135729 +disable_so_addrtype_ip6addrlbl_entry_5927 addrtype ip6addrlbl_entry 0 5927 NULL
135730 +disable_so_packet_life_time_ib_sa_path_rec_5929 packet_life_time ib_sa_path_rec 0 5929 NULL
135731 +disable_so_open_time_local_info_5930 open_time local_info 0 5930 NULL
135732 +disable_so_apply_time_iwl_time_event_cmd_5933 apply_time iwl_time_event_cmd 0 5933 NULL
135733 +disable_so_default_address_sc520_par_table_5941 default_address sc520_par_table 0 5941 NULL
135734 +disable_so_btrfs_hash_init_fndecl_5945 btrfs_hash_init fndecl 0 5945 NULL
135735 +disable_so_tsc_khz_ref_vardecl_tsc_c_5951 tsc_khz_ref vardecl_tsc.c 0 5951 NULL
135736 +disable_so_init_hrtimers_cpu_fndecl_5954 init_hrtimers_cpu fndecl 1 5954 NULL
135737 +disable_so_dma_address_scatterlist_5955 dma_address scatterlist 0 5955 NULL
135738 +disable_so_vsi_id_i40e_virtchnl_ether_addr_list_5963 vsi_id i40e_virtchnl_ether_addr_list 0 5963 NULL
135739 +disable_so_i_mtime_sysv_inode_5967 i_mtime sysv_inode 0 5967 NULL
135740 +disable_so_mult_clock_event_device_5973 mult clock_event_device 0 5973 NULL nohasharray
135741 +disable_so_schedule_internal_copy_fndecl_5973 schedule_internal_copy fndecl 2-3-4 5973 &disable_so_mult_clock_event_device_5973
135742 +disable_so_hash_netport6_expire_fndecl_5974 hash_netport6_expire fndecl 4 5974 NULL
135743 +disable_so_tap_time_vardecl_mousedev_c_5990 tap_time vardecl_mousedev.c 0 5990 NULL
135744 +disable_so_write_reg_fndecl_5992 write_reg fndecl 3 5992 NULL
135745 +disable_so_clk_divider_round_rate_fndecl_6000 clk_divider_round_rate fndecl 2-0 6000 NULL
135746 +disable_so_hor_sync_end_via_display_timing_6001 hor_sync_end via_display_timing 0 6001 NULL
135747 +disable_so_xe_name_hash_ocfs2_xattr_entry_6006 xe_name_hash ocfs2_xattr_entry 0 6006 NULL
135748 +disable_so_blkcipher_next_fast_fndecl_6013 blkcipher_next_fast fndecl 0 6013 NULL
135749 +disable_so_gcm_dec_hash_continue_fndecl_6014 gcm_dec_hash_continue fndecl 0 6014 NULL
135750 +disable_so_x_qxl_bitmap_6015 x qxl_bitmap 0 6015 NULL
135751 +disable_so__rtl92s_phy_calculate_bit_shift_fndecl_6019 _rtl92s_phy_calculate_bit_shift fndecl 0-1 6019 NULL
135752 +disable_so_snd_pcm_oss_get_odelay_fndecl_6033 snd_pcm_oss_get_odelay fndecl 0 6033 NULL
135753 +disable_so_remote_addr_c2wr_qp_connect_req_6036 remote_addr c2wr_qp_connect_req 0 6036 NULL
135754 +disable_so_set_time_rtc_class_ops_6037 set_time rtc_class_ops 0 6037 NULL
135755 +disable_so_kvm_lapic_set_vapic_addr_fndecl_6040 kvm_lapic_set_vapic_addr fndecl 2 6040 NULL
135756 +disable_so_netlink_hash_fndecl_6041 netlink_hash fndecl 0 6041 NULL
135757 +disable_so_delay_edac_device_ctl_info_6043 delay edac_device_ctl_info 0 6043 NULL
135758 +disable_so_hash_src_fndecl_6045 hash_src fndecl 0 6045 NULL
135759 +disable_so_addrconf_add_ifaddr_fndecl_6046 addrconf_add_ifaddr fndecl 0 6046 NULL
135760 +disable_so_abx500_get_register_interruptible_fndecl_6047 abx500_get_register_interruptible fndecl 0 6047 NULL
135761 +disable_so_uac_clock_source_is_valid_fndecl_6049 uac_clock_source_is_valid fndecl 2 6049 NULL
135762 +disable_so_max_keysize_crypto_report_cipher_6050 max_keysize crypto_report_cipher 0 6050 NULL
135763 +disable_so_hit_timestamp_hh_flow_state_6053 hit_timestamp hh_flow_state 0 6053 NULL
135764 +disable_so_crypto_fpu_setkey_fndecl_6067 crypto_fpu_setkey fndecl 0-3 6067 NULL
135765 +disable_so_ticks_snd_timer_instance_6068 ticks snd_timer_instance 0 6068 NULL nohasharray
135766 +disable_so_dev_mem_address_mlx4_cable_info_6068 dev_mem_address mlx4_cable_info 0 6068 &disable_so_ticks_snd_timer_instance_6068
135767 +disable_so_start_time_ieee80211_measurement_params_6073 start_time ieee80211_measurement_params 0 6073 NULL
135768 +disable_so_i_ino_timelimit_qc_info_6082 i_ino_timelimit qc_info 0 6082 NULL
135769 +disable_so_sll_ifindex_sockaddr_ll_6083 sll_ifindex sockaddr_ll 0 6083 NULL
135770 +disable_so_sleep_auth_read_fndecl_6084 sleep_auth_read fndecl 3-0 6084 NULL
135771 +disable_so_btrfs_run_delayed_refs_fndecl_6098 btrfs_run_delayed_refs fndecl 0 6098 NULL
135772 +disable_so_blocksize_crypto_report_aead_6103 blocksize crypto_report_aead 0 6103 NULL
135773 +disable_so_periods_snd_pcm_runtime_6104 periods snd_pcm_runtime 0 6104 NULL
135774 +disable_so_wait_for_completion_io_timeout_fndecl_6120 wait_for_completion_io_timeout fndecl 2-0 6120 NULL
135775 +disable_so_rsi_cmd52readbyte_fndecl_6123 rsi_cmd52readbyte fndecl 0-2 6123 NULL
135776 +disable_so_jiffies_io_6127 jiffies io 0 6127 NULL
135777 +disable_so_ac97_clock_vardecl_atiixp_c_6132 ac97_clock vardecl_atiixp.c 0 6132 NULL
135778 +disable_so_vmap_block_vaddr_fndecl_6152 vmap_block_vaddr fndecl 1-2 6152 NULL
135779 +disable_so_depth_blk_mq_bitmap_tags_6153 depth blk_mq_bitmap_tags 0 6153 NULL
135780 +disable_so_mul_vnic_intr_coal_timer_info_6154 mul vnic_intr_coal_timer_info 0 6154 NULL
135781 +disable_so_ctrl_freq_au0828_dev_6155 ctrl_freq au0828_dev 0 6155 NULL
135782 +disable_so_hrtimer_get_res_fndecl_6170 hrtimer_get_res fndecl 1 6170 NULL
135783 +disable_so_nlm_hash_address_fndecl_6174 nlm_hash_address fndecl 0 6174 NULL
135784 +disable_so_vaddr_vfio_iommu_type1_dma_map_6175 vaddr vfio_iommu_type1_dma_map 0 6175 NULL
135785 +disable_so_cpuidle_register_device_fndecl_6179 cpuidle_register_device fndecl 0 6179 NULL
135786 +disable_so_wl18xx_set_host_cfg_bitmap_fndecl_6180 wl18xx_set_host_cfg_bitmap fndecl 0 6180 NULL
135787 +disable_so_daddr_ircomm_tty_cb_6187 daddr ircomm_tty_cb 0 6187 NULL
135788 +disable_so_address_iio_chan_spec_6188 address iio_chan_spec 0 6188 NULL
135789 +disable_so_gem_interrupt_fndecl_6193 gem_interrupt fndecl 1 6193 NULL
135790 +disable_so_test_steal_space_from_bitmap_to_extent_fndecl_6197 test_steal_space_from_bitmap_to_extent fndecl 0 6197 NULL
135791 +disable_so_write8_async_rtl_io_6212 write8_async rtl_io 2-3 6212 NULL
135792 +disable_so_gpio_request_fndecl_6213 gpio_request fndecl 0-1 6213 NULL
135793 +disable_so_max_cmds_mthca_cmd_6222 max_cmds mthca_cmd 0 6222 NULL
135794 +disable_so_rhashtable_rehash_one_fndecl_6224 rhashtable_rehash_one fndecl 2 6224 NULL
135795 +disable_so_addr_hi_sli4_sge_6229 addr_hi sli4_sge 0 6229 NULL
135796 +disable_so_bnx2x_set_iscsi_eth_mac_addr_fndecl_6234 bnx2x_set_iscsi_eth_mac_addr fndecl 0 6234 NULL
135797 +disable_so___ipv6_addr_label_fndecl_6235 __ipv6_addr_label fndecl 3-4 6235 NULL
135798 +disable_so_chnl_freq_wil6210_rtap_6236 chnl_freq wil6210_rtap 0 6236 NULL
135799 +disable_so_mv88e6xxx_port_to_phy_addr_fndecl_6239 mv88e6xxx_port_to_phy_addr fndecl 0-2 6239 NULL
135800 +disable_so_phy_pm_runtime_get_sync_fndecl_6245 phy_pm_runtime_get_sync fndecl 0 6245 NULL
135801 +disable_so_kempld_wdt_set_pretimeout_fndecl_6258 kempld_wdt_set_pretimeout fndecl 2 6258 NULL
135802 +disable_so_sq_page_table_addr_lo_iscsi_kwqe_conn_offload1_6259 sq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 6259 NULL
135803 +disable_so_async_chainiv_schedule_work_fndecl_6271 async_chainiv_schedule_work fndecl 0 6271 NULL
135804 +disable_so_bus_clock_khz_ocores_i2c_6290 bus_clock_khz ocores_i2c 0 6290 NULL
135805 +disable_so_cttimeout_default_get_fndecl_6297 cttimeout_default_get fndecl 0 6297 NULL
135806 +disable_so_show_pci_clock_sel_fndecl_6300 show_pci_clock_sel fndecl 0 6300 NULL nohasharray
135807 +disable_so_addr_w83627ehf_data_6300 addr w83627ehf_data 0 6300 &disable_so_show_pci_clock_sel_fndecl_6300
135808 +disable_so_base_addr_pmc_dev_6305 base_addr pmc_dev 0 6305 NULL
135809 +disable_so_max_post_div_radeon_pll_6315 max_post_div radeon_pll 0 6315 NULL
135810 +disable_so_mmc_sd_erase_timeout_fndecl_6317 mmc_sd_erase_timeout fndecl 0-3 6317 NULL
135811 +disable_so_get_time_sound_timer_operations_6318 get_time sound_timer_operations 0 6318 NULL
135812 +disable_so_runtime_reg_sch311x_pdev_data_6324 runtime_reg sch311x_pdev_data 0 6324 NULL
135813 +disable_so_hscx_interrupt_fndecl_6328 hscx_interrupt fndecl 2 6328 NULL
135814 +disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346 hangcheck_margin vardecl_hangcheck-timer.c 0 6346 NULL nohasharray
135815 +disable_so___hrtimer_start_range_ns_fndecl_6346 __hrtimer_start_range_ns fndecl 3 6346 &disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346
135816 +disable_so_force_addr_vardecl_i2c_ali15x3_c_6378 force_addr vardecl_i2c-ali15x3.c 0 6378 NULL
135817 +disable_so_usb_interrupt_msg_fndecl_6387 usb_interrupt_msg fndecl 4-2-6-0 6387 NULL
135818 +disable_so_bitmap_file_test_bit_fndecl_6390 bitmap_file_test_bit fndecl 2 6390 NULL
135819 +disable_so_access_delay_vardecl_nandsim_c_6394 access_delay vardecl_nandsim.c 0 6394 NULL
135820 +disable_so_snd_ice1712_interrupt_fndecl_6396 snd_ice1712_interrupt fndecl 1 6396 NULL
135821 +disable_so_i2c_addr_isl6421_6399 i2c_addr isl6421 0 6399 NULL
135822 +disable_so_sta_connected_time_read_fndecl_6408 sta_connected_time_read fndecl 3 6408 NULL
135823 +disable_so_dbg_uidn_show_fndecl_6415 dbg_uidn_show fndecl 3 6415 NULL
135824 +disable_so_timeout_fib6_gc_args_6417 timeout fib6_gc_args 0 6417 NULL
135825 +disable_so_max_pixelclock_v4l2_bt_timings_cap_6421 max_pixelclock v4l2_bt_timings_cap 0 6421 NULL nohasharray
135826 +disable_so_vlv_clock_fndecl_6421 vlv_clock fndecl 1 6421 &disable_so_max_pixelclock_v4l2_bt_timings_cap_6421
135827 +disable_so_hold_timer_value___port_info_6426 hold_timer_value __port_info 0 6426 NULL
135828 +disable_so_plllocktime_psb_s_6428 plllocktime psb_s 0 6428 NULL nohasharray
135829 +disable_so_channel2freq_lp_fndecl_6428 channel2freq_lp fndecl 0-1 6428 &disable_so_plllocktime_psb_s_6428
135830 +disable_so_base_addr_fpoint_info_6432 base_addr fpoint_info 0 6432 NULL
135831 +disable_so_paravirt_write_msr_fndecl_6445 paravirt_write_msr fndecl 0-1-2-3 6445 NULL
135832 +disable_so_bnx2x_eee_nvram_to_time_fndecl_6450 bnx2x_eee_nvram_to_time fndecl 1 6450 NULL
135833 +disable_so_dn_nl_deladdr_fndecl_6451 dn_nl_deladdr fndecl 0 6451 NULL
135834 +disable_so_mpll_ss_rv730_clock_registers_6456 mpll_ss rv730_clock_registers 0 6456 NULL nohasharray
135835 +disable_so_buffer_addr_atl1e_tpd_desc_6456 buffer_addr atl1e_tpd_desc 0 6456 &disable_so_mpll_ss_rv730_clock_registers_6456
135836 +disable_so_xfs_btree_lshift_fndecl_6459 xfs_btree_lshift fndecl 0 6459 NULL
135837 +disable_so_tomoyo_check_unix_address_fndecl_6464 tomoyo_check_unix_address fndecl 0-2 6464 NULL
135838 +disable_so_bitmap_pos_to_ord_fndecl_6476 bitmap_pos_to_ord fndecl 3-2 6476 NULL
135839 +disable_so_bql_set_hold_time_fndecl_6478 bql_set_hold_time fndecl 0-4 6478 NULL
135840 +disable_so_range_shift_fixed_mtrr_segment_6484 range_shift fixed_mtrr_segment 0 6484 NULL
135841 +disable_so___clocksource_update_freq_scale_fndecl_6485 __clocksource_update_freq_scale fndecl 2-3 6485 NULL
135842 +disable_so_freq_pmu1_plltab_entry_6497 freq pmu1_plltab_entry 0 6497 NULL
135843 +disable_so___btrfs_abort_transaction_fndecl_6516 __btrfs_abort_transaction fndecl 5 6516 NULL
135844 +disable_so_timeout_clks_mmc_data_6527 timeout_clks mmc_data 0 6527 NULL
135845 +disable_so_set_tss_addr_kvm_x86_ops_6529 set_tss_addr kvm_x86_ops 2 6529 NULL
135846 +disable_so_acpi_device_sleep_wake_fndecl_6537 acpi_device_sleep_wake fndecl 0-2-3 6537 NULL nohasharray
135847 +disable_so_rtsc_x2y_fndecl_6537 rtsc_x2y fndecl 0-2 6537 &disable_so_acpi_device_sleep_wake_fndecl_6537
135848 +disable_so_msr_saved_flags_uart_8250_port_6538 msr_saved_flags uart_8250_port 0 6538 NULL
135849 +disable_so_next_blk_mq_timeout_data_6556 next blk_mq_timeout_data 0 6556 NULL nohasharray
135850 +disable_so_sumo_set_uvd_clocks_fndecl_6556 sumo_set_uvd_clocks fndecl 2-3-0 6556 &disable_so_next_blk_mq_timeout_data_6556
135851 +disable_so_ovs_flow_used_time_fndecl_6571 ovs_flow_used_time fndecl 1-0 6571 NULL
135852 +disable_so_orinoco_ioctl_setfreq_fndecl_6577 orinoco_ioctl_setfreq fndecl 0 6577 NULL
135853 +disable_so_hash_netport4_expire_fndecl_6582 hash_netport4_expire fndecl 4 6582 NULL
135854 +disable_so_rpwwn_bfa_bsg_rport_scsi_addr_s_6584 rpwwn bfa_bsg_rport_scsi_addr_s 0 6584 NULL
135855 +disable_so_gid_ncp_mount_data_v4_6586 gid ncp_mount_data_v4 0 6586 NULL
135856 +disable_so_set_input_clock_fndecl_6599 set_input_clock fndecl 0 6599 NULL
135857 +disable_so_mmap_bytes_snd_pcm_oss_runtime_6600 mmap_bytes snd_pcm_oss_runtime 0 6600 NULL
135858 +disable_so_do_sys_settimeofday_fndecl_6601 do_sys_settimeofday fndecl 0 6601 NULL
135859 +disable_so_tv_sec_ufs_timeval_6608 tv_sec ufs_timeval 0 6608 NULL
135860 +disable_so_tk_debug_sleep_time_open_fndecl_6625 tk_debug_sleep_time_open fndecl 0 6625 NULL
135861 +disable_so_bmg160_convert_freq_to_bit_fndecl_6628 bmg160_convert_freq_to_bit fndecl 0 6628 NULL
135862 +disable_so_sis_ata133_program_timings_fndecl_6633 sis_ata133_program_timings fndecl 2 6633 NULL
135863 +disable_so_timestamp_nvkm_alarm_6635 timestamp nvkm_alarm 0 6635 NULL nohasharray
135864 +disable_so_offset_crypto_hash_walk_6635 offset crypto_hash_walk 0 6635 &disable_so_timestamp_nvkm_alarm_6635
135865 +disable_so_ocfs2_rotate_subtree_left_fndecl_6641 ocfs2_rotate_subtree_left fndecl 0-5 6641 NULL
135866 +disable_so_vactive_lo_detailed_pixel_timing_6644 vactive_lo detailed_pixel_timing 0 6644 NULL
135867 +disable_so_givencrypt_ablkcipher_tfm_6647 givencrypt ablkcipher_tfm 0 6647 NULL
135868 +disable_so_fill_in_real_sgid_index_fndecl_6648 fill_in_real_sgid_index fndecl 2-3 6648 NULL
135869 +disable_so_i_gid_read_fndecl_6650 i_gid_read fndecl 0 6650 NULL
135870 +disable_so_uniq_time_smt_values_6653 uniq_time smt_values 0 6653 NULL nohasharray
135871 +disable_so_missvaddr_gru_tlb_fault_handle_6653 missvaddr gru_tlb_fault_handle 0 6653 &disable_so_uniq_time_smt_values_6653
135872 +disable_so_rq_timeout_request_queue_6657 rq_timeout request_queue 0 6657 NULL
135873 +disable_so_resp_bd_list_addr_hi_bnx2i_login_request_6658 resp_bd_list_addr_hi bnx2i_login_request 0 6658 NULL
135874 +disable_so_ebp_tss_segment_32_6659 ebp tss_segment_32 0 6659 NULL
135875 +disable_so_sha_complete_job_fndecl_6679 sha_complete_job fndecl 3 6679 NULL
135876 +disable_so_cursor_vram_addr_viafb_shared_6684 cursor_vram_addr viafb_shared 0 6684 NULL
135877 +disable_so_si_set_smc_sram_address_fndecl_6696 si_set_smc_sram_address fndecl 0-2 6696 NULL
135878 +disable_so_ocfs2_divide_leaf_refcount_block_fndecl_6709 ocfs2_divide_leaf_refcount_block fndecl 0 6709 NULL
135879 +disable_so_smp_base_set_mtrr_data_6722 smp_base set_mtrr_data 0 6722 NULL
135880 +disable_so_titsc_parse_dt_fndecl_6744 titsc_parse_dt fndecl 0 6744 NULL
135881 +disable_so_driver_timestamp_netxen_minidump_template_hdr_6745 driver_timestamp netxen_minidump_template_hdr 0 6745 NULL
135882 +disable_so_end_address_dmar_rmrr_unit_6748 end_address dmar_rmrr_unit 0 6748 NULL
135883 +disable_so_std_signal_mode_vivid_dev_6752 std_signal_mode vivid_dev 0 6752 NULL
135884 +disable_so_part_timeout_show_fndecl_6761 part_timeout_show fndecl 0 6761 NULL
135885 +disable_so_tx_coal_timer_stmmac_priv_6772 tx_coal_timer stmmac_priv 0 6772 NULL
135886 +disable_so_kvm_clock_read_fndecl_6779 kvm_clock_read fndecl 0 6779 NULL
135887 +disable_so_alarm_clock_get_fndecl_6780 alarm_clock_get fndecl 1 6780 NULL
135888 +disable_so_rcar_i2c_clock_calculate_fndecl_6789 rcar_i2c_clock_calculate fndecl 0 6789 NULL
135889 +disable_so_timeout_vardecl_sbc60xxwdt_c_6807 timeout vardecl_sbc60xxwdt.c 0 6807 NULL
135890 +disable_so_rp_uid_ubifs_sb_node_6810 rp_uid ubifs_sb_node 0 6810 NULL
135891 +disable_so_wm8940_set_dai_clkdiv_fndecl_6811 wm8940_set_dai_clkdiv fndecl 3-0 6811 NULL
135892 +disable_so_shift_clk_divider_6812 shift clk_divider 0 6812 NULL nohasharray
135893 +disable_so_gateway_addr_addr_wil_fw_record_gateway_data_6812 gateway_addr_addr wil_fw_record_gateway_data 0 6812 &disable_so_shift_clk_divider_6812 nohasharray
135894 +disable_so_snd_bebob_stream_get_clock_src_fndecl_6812 snd_bebob_stream_get_clock_src fndecl 0 6812 &disable_so_gateway_addr_addr_wil_fw_record_gateway_data_6812
135895 +disable_so_io_profile_start_time_bfa_fcpim_s_6814 io_profile_start_time bfa_fcpim_s 0 6814 NULL
135896 +disable_so_tsc_timestamp_pvclock_vcpu_time_info_6819 tsc_timestamp pvclock_vcpu_time_info 0 6819 NULL
135897 +disable_so_paddr_ath10k_skb_rxcb_6820 paddr ath10k_skb_rxcb 0 6820 NULL
135898 +disable_so_src_addr_ioat_dma_descriptor_6823 src_addr ioat_dma_descriptor 0 6823 NULL
135899 +disable_so_ivsize_ablkcipher_tfm_6824 ivsize ablkcipher_tfm 0 6824 NULL
135900 +disable_so_p_val_aic32x4_rate_divs_6838 p_val aic32x4_rate_divs 0 6838 NULL nohasharray
135901 +disable_so_bit_putcs_unaligned_fndecl_6838 bit_putcs_unaligned fndecl 5-6-7-8 6838 &disable_so_p_val_aic32x4_rate_divs_6838
135902 +disable_so_iaddr2blockno_fndecl_6842 iaddr2blockno fndecl 0 6842 NULL nohasharray
135903 +disable_so_reserved_top_mlx4_bitmap_6842 reserved_top mlx4_bitmap 0 6842 &disable_so_iaddr2blockno_fndecl_6842
135904 +disable_so_address_acpi_object_processor_6844 address acpi_object_processor 0 6844 NULL nohasharray
135905 +disable_so_top_freq_region_info_6844 top_freq region_info 0 6844 &disable_so_address_acpi_object_processor_6844
135906 +disable_so_phys_addr_sge_txq_6851 phys_addr sge_txq 0 6851 NULL
135907 +disable_so_irq_find_mapping_fndecl_6855 irq_find_mapping fndecl 0-2 6855 NULL
135908 +disable_so_ipaddr_rds_ib_ipaddr_6865 ipaddr rds_ib_ipaddr 0 6865 NULL
135909 +disable_so_cdv_intel_clock_recovery_ok_fndecl_6866 cdv_intel_clock_recovery_ok fndecl 2 6866 NULL
135910 +disable_so_rmw_ath_ops_6869 rmw ath_ops 2-3-4 6869 NULL
135911 +disable_so_last_jiffies_ivtv_api_cache_6880 last_jiffies ivtv_api_cache 0 6880 NULL
135912 +disable_so_ui_atimensec_ufs2_inode_6881 ui_atimensec ufs2_inode 0 6881 NULL
135913 +disable_so_gether_get_host_addr_cdc_fndecl_6888 gether_get_host_addr_cdc fndecl 0 6888 NULL
135914 +disable_so_wmi_add_cipher_key_fndecl_6891 wmi_add_cipher_key fndecl 0-2-4 6891 NULL
135915 +disable_so_ppp_gidle_fndecl_6898 ppp_gidle fndecl 0-1 6898 NULL
135916 +disable_so_dialtimeout_isdn_net_local_s_6908 dialtimeout isdn_net_local_s 0 6908 NULL
135917 +disable_so_conf_printf2_fndecl_6910 conf_printf2 fndecl 2-4-5 6910 NULL
135918 +disable_so_pilot_stv0900_signal_info_6915 pilot stv0900_signal_info 0 6915 NULL
135919 +disable_so_size_log2_t3_wq_6928 size_log2 t3_wq 0 6928 NULL
135920 +disable_so_s35390a_set_datetime_fndecl_6935 s35390a_set_datetime fndecl 0 6935 NULL
135921 +disable_so_sys_setfsgid_fndecl_6945 sys_setfsgid fndecl 0-1 6945 NULL
135922 +disable_so_triflex_load_timing_fndecl_6946 triflex_load_timing fndecl 3 6946 NULL
135923 +disable_so_ps2mult_interrupt_fndecl_6951 ps2mult_interrupt fndecl 2 6951 NULL
135924 +disable_so_hpi_sample_clock_query_source_fndecl_6959 hpi_sample_clock_query_source fndecl 1-0 6959 NULL
135925 +disable_so_tseg2_max_can_bittiming_const_6963 tseg2_max can_bittiming_const 0 6963 NULL
135926 +disable_so_rec8b_ata_timing_6977 rec8b ata_timing 0 6977 NULL
135927 +disable_so_vactive___fb_timings_6978 vactive __fb_timings 0 6978 NULL
135928 +disable_so_mgid_index_mlx4_qp_path_6990 mgid_index mlx4_qp_path 0 6990 NULL
135929 +disable_so_log_start_addr_server_hdr_7000 log_start_addr server_hdr 0 7000 NULL
135930 +disable_so_t2timer_ax25_info_struct_7019 t2timer ax25_info_struct 0 7019 NULL
135931 +disable_so_start_address_mxt_object_7033 start_address mxt_object 0 7033 NULL
135932 +disable_so_cpufreq_add_dev_symlink_fndecl_7039 cpufreq_add_dev_symlink fndecl 0 7039 NULL
135933 +disable_so_fm10k_systime_read_fndecl_7040 fm10k_systime_read fndecl 0 7040 NULL
135934 +disable_so_dv_timings_signal_mode_vivid_dev_7046 dv_timings_signal_mode vivid_dev 0 7046 NULL
135935 +disable_so_set_expect_timeout_fndecl_7051 set_expect_timeout fndecl 2 7051 NULL
135936 +disable_so_ts_dev_2_peak_time_ref_7055 ts_dev_2 peak_time_ref 0 7055 NULL
135937 +disable_so_pci_lat_timer_tg3_7056 pci_lat_timer tg3 0 7056 NULL
135938 +disable_so_ioarcb_bus_addr_pmcraid_ioarcb_7057 ioarcb_bus_addr pmcraid_ioarcb 0 7057 NULL
135939 +disable_so_tbl_addr_ahci_cmd_hdr_7060 tbl_addr ahci_cmd_hdr 0 7060 NULL
135940 +disable_so_total_i915_address_space_7088 total i915_address_space 0 7088 NULL
135941 +disable_so_nfs_mountpoint_expiry_timeout_vardecl_7089 nfs_mountpoint_expiry_timeout vardecl 0 7089 NULL
135942 +disable_so_rx_control_addr_acx_data_path_params_resp_7090 rx_control_addr acx_data_path_params_resp 0 7090 NULL
135943 +disable_so_qs_btimelimit_fs_quota_stat_7091 qs_btimelimit fs_quota_stat 0 7091 NULL
135944 +disable_so_SYSC_semtimedop_fndecl_7096 SYSC_semtimedop fndecl 1-3 7096 NULL
135945 +disable_so_lm8323_pwm_show_time_fndecl_7100 lm8323_pwm_show_time fndecl 0 7100 NULL
135946 +disable_so_start_time_btrfs_transaction_7107 start_time btrfs_transaction 0 7107 NULL
135947 +disable_so_dma_bytes_snd_pcm_runtime_7108 dma_bytes snd_pcm_runtime 0 7108 NULL
135948 +disable_so_sr__coeff_div_7109 sr _coeff_div 0 7109 NULL
135949 +disable_so_assert_pio_clocks_7119 assert pio_clocks 0 7119 NULL
135950 +disable_so_sctp_bind_addr_copy_fndecl_7122 sctp_bind_addr_copy fndecl 0-5 7122 NULL
135951 +disable_so_irq_domain_get_irq_data_fndecl_7132 irq_domain_get_irq_data fndecl 2 7132 NULL
135952 +disable_so_cur_freq_intel_gen6_power_mgmt_7134 cur_freq intel_gen6_power_mgmt 0 7134 NULL nohasharray
135953 +disable_so_address_mask_fndecl_7134 address_mask fndecl 0-2 7134 &disable_so_cur_freq_intel_gen6_power_mgmt_7134
135954 +disable_so_timeout_md_thread_7138 timeout md_thread 0 7138 NULL
135955 +disable_so_nicvf_register_interrupts_fndecl_7143 nicvf_register_interrupts fndecl 0 7143 NULL
135956 +disable_so_logical_drive_info_dma_addr_ips_ha_7146 logical_drive_info_dma_addr ips_ha 0 7146 NULL
135957 +disable_so_ai_slowclk_freq_fndecl_7147 ai_slowclk_freq fndecl 0 7147 NULL
135958 +disable_so_addr_play_vals_7151 addr play_vals 0 7151 NULL
135959 +disable_so_enc_addr_low_ssp_ini_io_start_req_7153 enc_addr_low ssp_ini_io_start_req 0 7153 NULL
135960 +disable_so_dev_sockaddr_mISDN_7154 dev sockaddr_mISDN 0 7154 NULL
135961 +disable_so_scan_start_time_ath_ant_comb_7155 scan_start_time ath_ant_comb 0 7155 NULL nohasharray
135962 +disable_so_mcryptd_hash_final_fndecl_7155 mcryptd_hash_final fndecl 2 7155 &disable_so_scan_start_time_ath_ant_comb_7155
135963 +disable_so_ack_time_minstrel_rate_7156 ack_time minstrel_rate 0 7156 NULL
135964 +disable_so_start_time_fscache_retrieval_7166 start_time fscache_retrieval 0 7166 NULL
135965 +disable_so_timetosend_nes_timer_entry_7169 timetosend nes_timer_entry 0 7169 NULL
135966 +disable_so_autofs4_get_set_timeout_fndecl_7185 autofs4_get_set_timeout fndecl 0 7185 NULL
135967 +disable_so_list_voltage_regulator_ops_7194 list_voltage regulator_ops 0-2 7194 NULL
135968 +disable_so_round_jiffies_fndecl_7204 round_jiffies fndecl 0-1 7204 NULL nohasharray
135969 +disable_so_address_lo_be_bus_address32_7204 address_lo be_bus_address32 0 7204 &disable_so_round_jiffies_fndecl_7204
135970 +disable_so_efx_recycle_rx_pages_fndecl_7206 efx_recycle_rx_pages fndecl 3 7206 NULL
135971 +disable_so_ssb_chipco_watchdog_timer_set_fndecl_7210 ssb_chipco_watchdog_timer_set fndecl 2-0 7210 NULL
135972 +disable_so_ebitmap_netlbl_export_fndecl_7212 ebitmap_netlbl_export fndecl 0 7212 NULL
135973 +disable_so_charge_timeout_wm8350_charger_policy_7222 charge_timeout wm8350_charger_policy 0 7222 NULL
135974 +disable_so_tf_c_r820t_freq_range_7225 tf_c r820t_freq_range 0 7225 NULL
135975 +disable_so_hpi_read_words_le16_fndecl_7226 hpi_read_words_le16 fndecl 2-4 7226 NULL
135976 +disable_so_ip6addrlbl_newdel_fndecl_7230 ip6addrlbl_newdel fndecl 0 7230 NULL
135977 +disable_so_seq_default_timer_card_vardecl_7233 seq_default_timer_card vardecl 0 7233 NULL
135978 +disable_so_ip6_route_get_saddr_fndecl_7240 ip6_route_get_saddr fndecl 0 7240 NULL
135979 +disable_so_packet_timeout_vardecl_legousbtower_c_7247 packet_timeout vardecl_legousbtower.c 0 7247 NULL
135980 +disable_so_base_clockid_alarm_base_7253 base_clockid alarm_base 0 7253 NULL
135981 +disable_so_pll_time_modem_state_ser12_7269 pll_time modem_state_ser12 0 7269 NULL
135982 +disable_so_phyaddr_fe_priv_7272 phyaddr fe_priv 0 7272 NULL
135983 +disable_so_xfs_btree_copy_keys_fndecl_7274 xfs_btree_copy_keys fndecl 4 7274 NULL
135984 +disable_so_lzo_uncompress_fndecl_7276 lzo_uncompress fndecl 6 7276 NULL
135985 +disable_so_spc_assoc_id_sctp_paddr_change_7283 spc_assoc_id sctp_paddr_change 0 7283 NULL
135986 +disable_so_min_interrupt_out_interval_vardecl_ldusb_c_7293 min_interrupt_out_interval vardecl_ldusb.c 0 7293 NULL
135987 +disable_so_phys_addr_qlcnic_host_rds_ring_7298 phys_addr qlcnic_host_rds_ring 0 7298 NULL
135988 +disable_so_ethoc_interrupt_fndecl_7299 ethoc_interrupt fndecl 1 7299 NULL
135989 +disable_so_wintime_si_dyn_powertune_data_7305 wintime si_dyn_powertune_data 0 7305 NULL
135990 +disable_so_timestamp_cnic_context_7309 timestamp cnic_context 0 7309 NULL nohasharray
135991 +disable_so_rx8025_set_clock_adjust_fndecl_7309 rx8025_set_clock_adjust fndecl 2-0 7309 &disable_so_timestamp_cnic_context_7309
135992 +disable_so_read_mac_address_dvb_usb_device_properties_7321 read_mac_address dvb_usb_device_properties 0 7321 NULL
135993 +disable_so_pm_runtime_set_active_fndecl_7330 pm_runtime_set_active fndecl 0 7330 NULL
135994 +disable_so_snd_seq_oss_synth_addr_fndecl_7331 snd_seq_oss_synth_addr fndecl 0 7331 NULL
135995 +disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332 netlbl_unlabel_addrinfo_get fndecl 0 7332 NULL nohasharray
135996 +disable_so_transport_type_sockaddr_rxrpc_7332 transport_type sockaddr_rxrpc 0 7332 &disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332
135997 +disable_so_tx_control_addr_acx_data_path_params_resp_7345 tx_control_addr acx_data_path_params_resp 0 7345 NULL
135998 +disable_so_intel_runtime_suspend_fndecl_7354 intel_runtime_suspend fndecl 0 7354 NULL nohasharray
135999 +disable_so_arb_timeout_pca9541_7354 arb_timeout pca9541 0 7354 &disable_so_intel_runtime_suspend_fndecl_7354
136000 +disable_so_authenc_esn_geniv_ahash_done_fndecl_7357 authenc_esn_geniv_ahash_done fndecl 2 7357 NULL
136001 +disable_so_total_blkcipher_walk_7358 total blkcipher_walk 0 7358 NULL
136002 +disable_so_mtime_fuse_attr_7361 mtime fuse_attr 0 7361 NULL
136003 +disable_so_gtt_phys_addr__intel_private_7365 gtt_phys_addr _intel_private 0 7365 NULL
136004 +disable_so_btree_lookup_raw_fndecl_7367 btree_lookup_raw fndecl 0-2-7 7367 NULL
136005 +disable_so_show_imon_clock_fndecl_7376 show_imon_clock fndecl 0 7376 NULL
136006 +disable_so_acpi_cpufreq_guess_freq_fndecl_7383 acpi_cpufreq_guess_freq fndecl 0 7383 NULL
136007 +disable_so_pch_udc_ep_bit_set_fndecl_7386 pch_udc_ep_bit_set fndecl 3 7386 NULL
136008 +disable_so_tv_nsec_compat_timespec_7389 tv_nsec compat_timespec 0 7389 NULL
136009 +disable_so_try_msr_calibrate_tsc_fndecl_7392 try_msr_calibrate_tsc fndecl 0 7392 NULL
136010 +disable_so_msi001_s_frequency_fndecl_7396 msi001_s_frequency fndecl 0 7396 NULL
136011 +disable_so_lxt971_ack_interrupt_fndecl_7397 lxt971_ack_interrupt fndecl 0 7397 NULL nohasharray
136012 +disable_so_i40e_get_mac_addr_fndecl_7397 i40e_get_mac_addr fndecl 0 7397 &disable_so_lxt971_ack_interrupt_fndecl_7397
136013 +disable_so_conn_db_addr_lo_fcoe_kwqe_conn_offload2_7408 conn_db_addr_lo fcoe_kwqe_conn_offload2 0 7408 NULL
136014 +disable_so_spcp8x5_get_msr_fndecl_7409 spcp8x5_get_msr fndecl 0 7409 NULL
136015 +disable_so_signal_det_fndecl_7411 signal_det fndecl 2 7411 NULL
136016 +disable_so_vclk_fb_div_pll_ct_7423 vclk_fb_div pll_ct 0 7423 NULL
136017 +disable_so_crypto_ahash_final_fndecl_7433 crypto_ahash_final fndecl 0 7433 NULL
136018 +disable_so_vidioc_s_hw_freq_seek_fndecl_7439 vidioc_s_hw_freq_seek fndecl 0 7439 NULL
136019 +disable_so_aa_calc_profile_hash_fndecl_7443 aa_calc_profile_hash fndecl 0-4 7443 NULL
136020 +disable_so_count_sha1_state_7456 count sha1_state 0 7456 NULL
136021 +disable_so_full_name_hash_fndecl_7466 full_name_hash fndecl 0-2 7466 NULL
136022 +disable_so_serial8250_set_divisor_fndecl_7469 serial8250_set_divisor fndecl 4-3 7469 NULL
136023 +disable_so_add_hwgenerator_randomness_fndecl_7471 add_hwgenerator_randomness fndecl 2-3 7471 NULL
136024 +disable_so_xfs_btree_check_block_fndecl_7472 xfs_btree_check_block fndecl 0 7472 NULL
136025 +disable_so_f1x_get_norm_dct_addr_fndecl_7473 f1x_get_norm_dct_addr fndecl 0-3-5 7473 NULL
136026 +disable_so_timeout_tid_ampdu_rx_7484 timeout tid_ampdu_rx 0 7484 NULL
136027 +disable_so_uv_rtc_find_next_timer_fndecl_7494 uv_rtc_find_next_timer fndecl 2 7494 NULL
136028 +disable_so_mmc_erase_timeout_fndecl_7496 mmc_erase_timeout fndecl 0-3-2 7496 NULL
136029 +disable_so_interrupt_in_endpoint_edgeport_serial_7513 interrupt_in_endpoint edgeport_serial 0 7513 NULL
136030 +disable_so_start_asd_ha_addrspace_7515 start asd_ha_addrspace 0 7515 NULL
136031 +disable_so_ccp_register_aes_alg_fndecl_7517 ccp_register_aes_alg fndecl 0 7517 NULL
136032 +disable_so_addr_ptr_drm_i915_gem_mmap_7520 addr_ptr drm_i915_gem_mmap 0 7520 NULL
136033 +disable_so_ecryptfs_get_tfm_and_mutex_for_cipher_name_fndecl_7524 ecryptfs_get_tfm_and_mutex_for_cipher_name fndecl 0 7524 NULL
136034 +disable_so_async_schedule_fndecl_7528 async_schedule fndecl 0 7528 NULL nohasharray
136035 +disable_so_crypto_ctr_crypt_inplace_fndecl_7528 crypto_ctr_crypt_inplace fndecl 0 7528 &disable_so_async_schedule_fndecl_7528
136036 +disable_so_snd_mpu401_uart_interrupt_fndecl_7536 snd_mpu401_uart_interrupt fndecl 1 7536 NULL
136037 +disable_so_cfg_max_scsicmpl_time_lpfc_vport_7541 cfg_max_scsicmpl_time lpfc_vport 0 7541 NULL
136038 +disable_so_blkcipher_done_slow_fndecl_7555 blkcipher_done_slow fndecl 0-2 7555 NULL
136039 +disable_so_cg_spll_spread_spectrum_si_clock_registers_7557 cg_spll_spread_spectrum si_clock_registers 0 7557 NULL
136040 +disable_so_dev_addr_mv_udc_7559 dev_addr mv_udc 0 7559 NULL
136041 +disable_so___restart_timer_fndecl_7572 __restart_timer fndecl 2 7572 NULL
136042 +disable_so_phy_interrupt_fndecl_7576 phy_interrupt fndecl 1 7576 NULL
136043 +disable_so_pending_auth_reply_time_wl12xx_vif_7583 pending_auth_reply_time wl12xx_vif 0 7583 NULL
136044 +disable_so_kempld_wdt_set_stage_timeout_fndecl_7592 kempld_wdt_set_stage_timeout fndecl 3 7592 NULL
136045 +disable_so_mwifiex_ret_802_11_mac_address_fndecl_7598 mwifiex_ret_802_11_mac_address fndecl 0 7598 NULL
136046 +disable_so_ad799x_write_frequency_fndecl_7606 ad799x_write_frequency fndecl 0-4 7606 NULL
136047 +disable_so_htab_map_hash_fndecl_7622 htab_map_hash fndecl 0-2 7622 NULL
136048 +disable_so_smack_task_getscheduler_fndecl_7629 smack_task_getscheduler fndecl 0 7629 NULL
136049 +disable_so_atomic64_sub_fndecl_7638 atomic64_sub fndecl 1 7638 NULL
136050 +disable_so___mcheck_cpu_cap_init_fndecl_7640 __mcheck_cpu_cap_init fndecl 0 7640 NULL
136051 +disable_so_sq_dma_addr_nvme_queue_7641 sq_dma_addr nvme_queue 0 7641 NULL
136052 +disable_so_data_address_mscp_7645 data_address mscp 0 7645 NULL
136053 +disable_so_block_address_ms_param_register_7651 block_address ms_param_register 0 7651 NULL
136054 +disable_so___wait_on_bit_lock_fndecl_7653 __wait_on_bit_lock fndecl 0 7653 NULL
136055 +disable_so_dma_addr_qla2_sgx_7667 dma_addr qla2_sgx 0 7667 NULL
136056 +disable_so_ba1_addr_cs4281_7670 ba1_addr cs4281 0 7670 NULL
136057 +disable_so_addr_nv50_disp_mthd_list_7671 addr nv50_disp_mthd_list 0 7671 NULL
136058 +disable_so_address_stv090x_config_7672 address stv090x_config 0 7672 NULL
136059 +disable_so_addr_oxygen_7675 addr oxygen 0 7675 NULL
136060 +disable_so_mei_wd_ops_set_timeout_fndecl_7696 mei_wd_ops_set_timeout fndecl 2 7696 NULL
136061 +disable_so_clock_getres_k_clock_7708 clock_getres k_clock 1 7708 NULL
136062 +disable_so_hash_shift_neigh_hash_table_7714 hash_shift neigh_hash_table 0 7714 NULL
136063 +disable_so_pmu_fast_powerup_delay_fndecl_7721 pmu_fast_powerup_delay fndecl 0 7721 NULL
136064 +disable_so_dst_addr_rds_info_rdma_connection_7722 dst_addr rds_info_rdma_connection 0 7722 NULL
136065 +disable_so_period_timeriomem_rng_private_data_7730 period timeriomem_rng_private_data 0 7730 NULL
136066 +disable_so_ocfs2_flock_handle_signal_fndecl_7734 ocfs2_flock_handle_signal fndecl 0 7734 NULL
136067 +disable_so_seq_rds_info_message_7735 seq rds_info_message 0 7735 NULL
136068 +disable_so_base_addr_net_device_7745 base_addr net_device 0 7745 NULL
136069 +disable_so_sense_addr_fcpio_icmnd_16_7746 sense_addr fcpio_icmnd_16 0 7746 NULL
136070 +disable_so_clocks_calc_mult_shift_fndecl_7747 clocks_calc_mult_shift fndecl 3-4-5 7747 NULL
136071 +disable_so_monotonic_time_coarse_sec_vsyscall_gtod_data_7749 monotonic_time_coarse_sec vsyscall_gtod_data 0 7749 NULL
136072 +disable_so_remote_ca_guid_cm_timewait_info_7768 remote_ca_guid cm_timewait_info 0 7768 NULL
136073 +disable_so_tsf_timestamp_wmi_phyerr_7783 tsf_timestamp wmi_phyerr 0 7783 NULL
136074 +disable_so_fullbatt_vchk_jiffies_at_charger_manager_7786 fullbatt_vchk_jiffies_at charger_manager 0 7786 NULL
136075 +disable_so_st_mtime_nsec_p9_stat_dotl_7787 st_mtime_nsec p9_stat_dotl 0 7787 NULL
136076 +disable_so_hmac_sha256_fndecl_7789 hmac_sha256 fndecl 0-2-4 7789 NULL
136077 +disable_so_writeback_delay_fndecl_7808 writeback_delay fndecl 0-2 7808 NULL
136078 +disable_so_offset_ioctl_gntdev_get_offset_for_vaddr_7812 offset ioctl_gntdev_get_offset_for_vaddr 0 7812 NULL
136079 +disable_so_tuner_frequency_stv0288_state_7823 tuner_frequency stv0288_state 0 7823 NULL
136080 +disable_so_neigh_hash_grow_fndecl_7824 neigh_hash_grow fndecl 2 7824 NULL
136081 +disable_so_timeout_sh_mmcif_host_7836 timeout sh_mmcif_host 0 7836 NULL
136082 +disable_so_cpuid_eax_fndecl_7845 cpuid_eax fndecl 0 7845 NULL
136083 +disable_so_mclk_pwrmgt_cntl_si_clock_registers_7850 mclk_pwrmgt_cntl si_clock_registers 0 7850 NULL
136084 +disable_so_mgt_update_addr_fndecl_7857 mgt_update_addr fndecl 0 7857 NULL nohasharray
136085 +disable_so_regmap_bulk_read_fndecl_7857 regmap_bulk_read fndecl 4-0-2 7857 &disable_so_mgt_update_addr_fndecl_7857
136086 +disable_so_cpufreq_governor_init_fndecl_7864 cpufreq_governor_init fndecl 0 7864 NULL
136087 +disable_so_sync_freq_arizona_fll_7868 sync_freq arizona_fll 0 7868 NULL
136088 +disable_so_channel_switch_time_ath_chanctx_sched_7869 channel_switch_time ath_chanctx_sched 0 7869 NULL nohasharray
136089 +disable_so_isp1760_udc_set_address_fndecl_7869 isp1760_udc_set_address fndecl 2 7869 &disable_so_channel_switch_time_ath_chanctx_sched_7869
136090 +disable_so_n_hw_addrs_iwl_nvm_data_7872 n_hw_addrs iwl_nvm_data 0 7872 NULL
136091 +disable_so_rcu_jiffies_till_stall_check_fndecl_7874 rcu_jiffies_till_stall_check fndecl 0 7874 NULL
136092 +disable_so_seq_b43legacy_txstatus_7880 seq b43legacy_txstatus 0 7880 NULL
136093 +disable_so_hpi_tuner_query_frequency_fndecl_7881 hpi_tuner_query_frequency fndecl 0-1 7881 NULL
136094 +disable_so_data_address_descriptor_7886 data_address descriptor 0 7886 NULL
136095 +disable_so_mpll_dq_func_cntl_ci_clock_registers_7890 mpll_dq_func_cntl ci_clock_registers 0 7890 NULL
136096 +disable_so_hpfs_load_bitmap_directory_fndecl_7892 hpfs_load_bitmap_directory fndecl 2 7892 NULL
136097 +disable_so_hour_tomoyo_time_7893 hour tomoyo_time 0 7893 NULL
136098 +disable_so_dx_pt_regs_7894 dx pt_regs 0 7894 NULL
136099 +disable_so_mthca_SW2HW_EQ_fndecl_7906 mthca_SW2HW_EQ fndecl 3-0 7906 NULL
136100 +disable_so_megasas_start_timer_fndecl_7920 megasas_start_timer fndecl 4 7920 NULL
136101 +disable_so_Memhscx_interrupt_fndecl_7925 Memhscx_interrupt fndecl 2 7925 NULL
136102 +disable_so_ena_gpio_regulator_config_7927 ena_gpio regulator_config 0 7927 NULL
136103 +disable_so_tda827x_initial_sleep_fndecl_7929 tda827x_initial_sleep fndecl 0 7929 NULL
136104 +disable_so_hfrontporch_v4l2_bt_timings_7935 hfrontporch v4l2_bt_timings 0 7935 NULL
136105 +disable_so_xfrm_flowi_daddr_fndecl_7937 xfrm_flowi_daddr fndecl 2 7937 NULL
136106 +disable_so_fw_schedule_device_work_fndecl_7962 fw_schedule_device_work fndecl 2 7962 NULL
136107 +disable_so_xfs_btree_get_bufl_fndecl_7965 xfs_btree_get_bufl fndecl 3 7965 NULL
136108 +disable_so_cpu_to_macvtap16_fndecl_7976 cpu_to_macvtap16 fndecl 0-2 7976 NULL nohasharray
136109 +disable_so_evm_calc_hmac_or_hash_fndecl_7976 evm_calc_hmac_or_hash fndecl 0-4 7976 &disable_so_cpu_to_macvtap16_fndecl_7976
136110 +disable_so_first_port_bitmap_port_7981 first_port bitmap_port 0 7981 NULL
136111 +disable_so_compat_get_bitmap_fndecl_7984 compat_get_bitmap fndecl 0-3 7984 NULL
136112 +disable_so_dma_addr_iser_rx_desc_7996 dma_addr iser_rx_desc 0 7996 NULL
136113 +disable_so_channel2freq_a_fndecl_7997 channel2freq_a fndecl 0-1 7997 NULL
136114 +disable_so_card_snd_timer_info_8007 card snd_timer_info 0 8007 NULL nohasharray
136115 +disable_so_svga_set_timings_fndecl_8007 svga_set_timings fndecl 4-5-6-7-8-9 8007 &disable_so_card_snd_timer_info_8007
136116 +disable_so_apanel_addr_vardecl_i2c_i801_c_8018 apanel_addr vardecl_i2c-i801.c 0 8018 NULL
136117 +disable_so_bcma_pmu_pll_clock_fndecl_8024 bcma_pmu_pll_clock fndecl 2-3-0 8024 NULL
136118 +disable_so_sha1_transform_asm_vardecl_sha1_ssse3_glue_c_8028 sha1_transform_asm vardecl_sha1_ssse3_glue.c 3 8028 NULL
136119 +disable_so_add_timer_randomness_fndecl_8030 add_timer_randomness fndecl 2 8030 NULL
136120 +disable_so_hash_mask_mesh_table_8031 hash_mask mesh_table 0 8031 NULL
136121 +disable_so_show_dgid_fndecl_8032 show_dgid fndecl 0 8032 NULL
136122 +disable_so_div_cfg_dib8000_config_8034 div_cfg dib8000_config 0 8034 NULL
136123 +disable_so_demod_address_l64781_config_8035 demod_address l64781_config 0 8035 NULL
136124 +disable_so_uid_cramfs_inode_8037 uid cramfs_inode 0 8037 NULL
136125 +disable_so_recover_timer_read_fndecl_8053 recover_timer_read fndecl 0 8053 NULL
136126 +disable_so_usb_sleep_music_show_fndecl_8055 usb_sleep_music_show fndecl 0 8055 NULL
136127 +disable_so_hw_ptr_interrupt_snd_pcm_runtime_8061 hw_ptr_interrupt snd_pcm_runtime 0 8061 NULL
136128 +disable_so_reset_delay_us_e1000_phy_info_8066 reset_delay_us e1000_phy_info 0 8066 NULL
136129 +disable_so_timeout_packet_command_8072 timeout packet_command 0 8072 NULL
136130 +disable_so_jiffies_a_sl811_8074 jiffies_a sl811 0 8074 NULL nohasharray
136131 +disable_so_idedisk_set_max_address_fndecl_8074 idedisk_set_max_address fndecl 0-2 8074 &disable_so_jiffies_a_sl811_8074
136132 +disable_so_base_addr_TAG_TW_Device_Extension_8076 base_addr TAG_TW_Device_Extension 0 8076 NULL
136133 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data4_8080 gateway_cmd_addr wil_fw_record_gateway_data4 0 8080 NULL
136134 +disable_so_snd_cmipci_interrupt_fndecl_8083 snd_cmipci_interrupt fndecl 1 8083 NULL
136135 +disable_so_ivsize_blkcipher_alg_8085 ivsize blkcipher_alg 0 8085 NULL
136136 +disable_so_mlx5e_add_eth_addr_rule_fndecl_8090 mlx5e_add_eth_addr_rule fndecl 0 8090 NULL
136137 +disable_so_sysctl_rose_call_request_timeout_vardecl_8095 sysctl_rose_call_request_timeout vardecl 0 8095 NULL nohasharray
136138 +disable_so_b43_phy_maskset_fndecl_8095 b43_phy_maskset fndecl 2-3-4 8095 &disable_so_sysctl_rose_call_request_timeout_vardecl_8095
136139 +disable_so_dma_addr_mraid_pci_blk_8116 dma_addr mraid_pci_blk 0 8116 NULL
136140 +disable_so___arch_hweight32_fndecl_8119 __arch_hweight32 fndecl 0-1 8119 NULL
136141 +disable_so_lvds_downclock_drm_i915_private_8128 lvds_downclock drm_i915_private 0 8128 NULL
136142 +disable_so_calgary_set_split_completion_timeout_fndecl_8129 calgary_set_split_completion_timeout fndecl 2 8129 NULL
136143 +disable_so_i_atime_minix2_inode_8131 i_atime minix2_inode 0 8131 NULL
136144 +disable_so_xclk_post_div_pll_ct_8137 xclk_post_div pll_ct 0 8137 NULL
136145 +disable_so_legacy_display_base_addr_radeon_crtc_8144 legacy_display_base_addr radeon_crtc 0 8144 NULL
136146 +disable_so_rv6xx_memory_clock_entry_set_reference_divider_fndecl_8149 rv6xx_memory_clock_entry_set_reference_divider fndecl 3 8149 NULL
136147 +disable_so_x86_phys_bits_cpuinfo_x86_8154 x86_phys_bits cpuinfo_x86 0 8154 NULL
136148 +disable_so_vmx_get_preemption_timer_value_fndecl_8155 vmx_get_preemption_timer_value fndecl 0 8155 NULL
136149 +disable_so_delayed_set_value_led_classdev_8162 delayed_set_value led_classdev 0 8162 NULL
136150 +disable_so_link_timeout_fe_priv_8170 link_timeout fe_priv 0 8170 NULL nohasharray
136151 +disable_so_snd_ice1712_pro_internal_clock_info_fndecl_8170 snd_ice1712_pro_internal_clock_info fndecl 0 8170 &disable_so_link_timeout_fe_priv_8170
136152 +disable_so___jhash_nwords_fndecl_8180 __jhash_nwords fndecl 0-1-2-3 8180 NULL
136153 +disable_so_buffer_addr_e1000_rx_desc_8186 buffer_addr e1000_rx_desc 0 8186 NULL
136154 +disable_so_s_wtime_ext2_super_block_8189 s_wtime ext2_super_block 0 8189 NULL nohasharray
136155 +disable_so_sel_addr1___mux2_8189 sel_addr1 __mux2 0 8189 &disable_so_s_wtime_ext2_super_block_8189
136156 +disable_so_elan_smbus_sleep_control_fndecl_8190 elan_smbus_sleep_control fndecl 0 8190 NULL
136157 +disable_so_hscale_timing_8195 hscale timing 0 8195 NULL
136158 +disable_so_mem_addr_sms_data_download_8196 mem_addr sms_data_download 0 8196 NULL
136159 +disable_so_last_time2_intel_ilk_power_mgmt_8197 last_time2 intel_ilk_power_mgmt 0 8197 NULL
136160 +disable_so_end_point_addr_cx231xx_video_mode_8198 end_point_addr cx231xx_video_mode 0 8198 NULL
136161 +disable_so_cmx_delay_dsp_8202 cmx_delay dsp 0 8202 NULL
136162 +disable_so_inet6_rtm_deladdr_fndecl_8203 inet6_rtm_deladdr fndecl 0 8203 NULL
136163 +disable_so_local_ca_guid_cm_rep_msg_8210 local_ca_guid cm_rep_msg 0 8210 NULL
136164 +disable_so_address_r8a66597_device_8227 address r8a66597_device 0 8227 NULL
136165 +disable_so_idle_jiffies_tick_sched_8241 idle_jiffies tick_sched 0 8241 NULL nohasharray
136166 +disable_so_ver_addr_via_display_timing_8241 ver_addr via_display_timing 0 8241 &disable_so_idle_jiffies_tick_sched_8241
136167 +disable_so_addr_hamachi_desc_8244 addr hamachi_desc 0 8244 NULL nohasharray
136168 +disable_so_addr_snd_dmaengine_dai_dma_data_8244 addr snd_dmaengine_dai_dma_data 0 8244 &disable_so_addr_hamachi_desc_8244
136169 +disable_so_ip6addrlbl_add_fndecl_8251 ip6addrlbl_add fndecl 0-4 8251 NULL
136170 +disable_so_transtime_vim2m_ctx_8252 transtime vim2m_ctx 0 8252 NULL
136171 +disable_so_seq_prism2_frag_entry_8262 seq prism2_frag_entry 0 8262 NULL
136172 +disable_so_uid_args_requester_8263 uid args_requester 0 8263 NULL
136173 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_retry_fndecl_8264 bfa_fcs_lport_ns_sm_gid_ft_retry fndecl 2 8264 NULL
136174 +disable_so_jffs2_lzo_decompress_fndecl_8274 jffs2_lzo_decompress fndecl 3 8274 NULL
136175 +disable_so_fb_start_aligned_physaddr_osd_info_8300 fb_start_aligned_physaddr osd_info 0 8300 NULL
136176 +disable_so_latch_addr_flash_driver_init_fndecl_8304 latch_addr_flash_driver_init fndecl 0 8304 NULL
136177 +disable_so_ab3100_rtc_read_time_fndecl_8312 ab3100_rtc_read_time fndecl 0 8312 NULL
136178 +disable_so_set_addr_fndecl_8318 set_addr fndecl 2-4-5 8318 NULL
136179 +disable_so_bit_width_acpi_pct_register_8319 bit_width acpi_pct_register 0 8319 NULL
136180 +disable_so_cpu_core_id_cpuinfo_x86_8323 cpu_core_id cpuinfo_x86 0 8323 NULL
136181 +disable_so_hash_rem_ccp_aes_cmac_req_ctx_8330 hash_rem ccp_aes_cmac_req_ctx 0 8330 NULL
136182 +disable_so_ps_timeout_wireless_dev_8334 ps_timeout wireless_dev 0 8334 NULL
136183 +disable_so_next_address_dma_ops_domain_8335 next_address dma_ops_domain 0 8335 NULL
136184 +disable_so_skcipher_pull_sgl_fndecl_8337 skcipher_pull_sgl fndecl 2 8337 NULL
136185 +disable_so_create_impulse_test_signal_fndecl_8361 create_impulse_test_signal fndecl 3 8361 NULL
136186 +disable_so_mod_timer_pending_fndecl_8362 mod_timer_pending fndecl 2-0 8362 NULL nohasharray
136187 +disable_so_ep0_trb_addr_dwc3_8362 ep0_trb_addr dwc3 0 8362 &disable_so_mod_timer_pending_fndecl_8362
136188 +disable_so_mtt_base_addr_h_mlx4_cq_context_8364 mtt_base_addr_h mlx4_cq_context 0 8364 NULL
136189 +disable_so_i2c_smbus_write_byte_data_fndecl_8369 i2c_smbus_write_byte_data fndecl 0-2-3 8369 NULL
136190 +disable_so_tpg_hscale_div_fndecl_8382 tpg_hscale_div fndecl 0-3 8382 NULL
136191 +disable_so_timestamp_bnx2i_endpoint_8390 timestamp bnx2i_endpoint 0 8390 NULL
136192 +disable_so_audit_backlog_wait_time_vardecl_audit_c_8393 audit_backlog_wait_time vardecl_audit.c 0 8393 NULL
136193 +disable_so_compat_put_timeval_fndecl_8394 compat_put_timeval fndecl 0 8394 NULL
136194 +disable_so_btree_remove128_fndecl_8408 btree_remove128 fndecl 2 8408 NULL
136195 +disable_so_pcxhr_hardware_timer_fndecl_8413 pcxhr_hardware_timer fndecl 0 8413 NULL
136196 +disable_so_ixgbe_atr_compute_sig_hash_82599_fndecl_8416 ixgbe_atr_compute_sig_hash_82599 fndecl 0 8416 NULL
136197 +disable_so_space_id_acpi_generic_address_8425 space_id acpi_generic_address 0 8425 NULL
136198 +disable_so_befs_btree_read_fndecl_8444 befs_btree_read fndecl 3 8444 NULL
136199 +disable_so_cttimeout_default_set_fndecl_8445 cttimeout_default_set fndecl 0 8445 NULL
136200 +disable_so_set_bdaddr_hci_dev_8450 set_bdaddr hci_dev 0 8450 NULL
136201 +disable_so_select_addr_qla82xx_md_entry_queue_8457 select_addr qla82xx_md_entry_queue 0 8457 NULL
136202 +disable_so_crypto_register_alg_fndecl_8460 crypto_register_alg fndecl 0 8460 NULL
136203 +disable_so_inet6_fill_ifmcaddr_fndecl_8465 inet6_fill_ifmcaddr fndecl 0-3-5 8465 NULL
136204 +disable_so_image_address_acpi_table_bgrt_8468 image_address acpi_table_bgrt 0 8468 NULL
136205 +disable_so_cmd_lock_addr_ulp_mem_io_8484 cmd_lock_addr ulp_mem_io 0 8484 NULL
136206 +disable_so_r600_engine_clock_entry_set_step_time_fndecl_8486 r600_engine_clock_entry_set_step_time fndecl 3 8486 NULL
136207 +disable_so_cxd2820r_sleep_t2_fndecl_8488 cxd2820r_sleep_t2 fndecl 0 8488 NULL
136208 +disable_so_si_get_cu_active_bitmap_fndecl_8498 si_get_cu_active_bitmap fndecl 0-2-3 8498 NULL
136209 +disable_so_clock_drxd_config_8500 clock drxd_config 0 8500 NULL nohasharray
136210 +disable_so_i2c_addr_zl10039_state_8500 i2c_addr zl10039_state 0 8500 &disable_so_clock_drxd_config_8500 nohasharray
136211 +disable_so_map_sg_dma_map_ops_8500 map_sg dma_map_ops 0-3 8500 &disable_so_i2c_addr_zl10039_state_8500
136212 +disable_so_addr_vt1211_data_8504 addr vt1211_data 0 8504 NULL
136213 +disable_so_vsync_pulse_width_lvds_dvo_timing_8520 vsync_pulse_width lvds_dvo_timing 0 8520 NULL
136214 +disable_so_set_frequency_fndecl_8523 set_frequency fndecl 0-3 8523 NULL
136215 +disable_so_lola_enable_clock_events_fndecl_8528 lola_enable_clock_events fndecl 0 8528 NULL
136216 +disable_so_pci_prepare_to_sleep_fndecl_8531 pci_prepare_to_sleep fndecl 0 8531 NULL
136217 +disable_so_valleyview_rps_max_freq_fndecl_8541 valleyview_rps_max_freq fndecl 0 8541 NULL
136218 +disable_so_wm8350_set_clkdiv_fndecl_8547 wm8350_set_clkdiv fndecl 3 8547 NULL
136219 +disable_so_scope_inet6_ifaddr_8569 scope inet6_ifaddr 0 8569 NULL
136220 +disable_so_hci_update_random_address_fndecl_8570 hci_update_random_address fndecl 0 8570 NULL nohasharray
136221 +disable_so_level_btrfs_delayed_extent_op_8570 level btrfs_delayed_extent_op 0 8570 &disable_so_hci_update_random_address_fndecl_8570
136222 +disable_so_p5_mt9t112_pll_divider_8582 p5 mt9t112_pll_divider 0 8582 NULL
136223 +disable_so_period_frames_snd_pcm_oss_runtime_8583 period_frames snd_pcm_oss_runtime 0 8583 NULL nohasharray
136224 +disable_so_sgtl5000_set_clock_fndecl_8583 sgtl5000_set_clock fndecl 2 8583 &disable_so_period_frames_snd_pcm_oss_runtime_8583
136225 +disable_so_ns_to_timespec_fndecl_8584 ns_to_timespec fndecl 1 8584 NULL
136226 +disable_so_mmc_test_random_perf_fndecl_8591 mmc_test_random_perf fndecl 0 8591 NULL
136227 +disable_so_ac_sleep_before_get_state_ms_vardecl_ac_c_8592 ac_sleep_before_get_state_ms vardecl_ac.c 0 8592 NULL
136228 +disable_so_s5h1420_getfreqoffset_fndecl_8597 s5h1420_getfreqoffset fndecl 0 8597 NULL
136229 +disable_so_pll_j_aic32x4_rate_divs_8598 pll_j aic32x4_rate_divs 0 8598 NULL
136230 +disable_so_freq_stb0899_params_8606 freq stb0899_params 0 8606 NULL
136231 +disable_so_vblank_hi_oaktrail_timing_info_8607 vblank_hi oaktrail_timing_info 0 8607 NULL
136232 +disable_so_subnet_timeout_ipath_ibdev_8613 subnet_timeout ipath_ibdev 0 8613 NULL nohasharray
136233 +disable_so_demod_address_or51211_config_8613 demod_address or51211_config 0 8613 &disable_so_subnet_timeout_ipath_ibdev_8613
136234 +disable_so___compat_put_timespec_fndecl_8625 __compat_put_timespec fndecl 0 8625 NULL
136235 +disable_so_sq_addr_hi_fcoe_kwqe_conn_offload1_8631 sq_addr_hi fcoe_kwqe_conn_offload1 0 8631 NULL
136236 +disable_so_compat_sock_get_timestamp_fndecl_8635 compat_sock_get_timestamp fndecl 0 8635 NULL
136237 +disable_so_next_sit_addr_fndecl_8639 next_sit_addr fndecl 0-2 8639 NULL
136238 +disable_so_update_mc_addr_fm10k_mac_ops_8643 update_mc_addr fm10k_mac_ops 4 8643 NULL
136239 +disable_so_img_ir_timing_range_convert_fndecl_8648 img_ir_timing_range_convert fndecl 3-4-5 8648 NULL
136240 +disable_so_adc_clock_ratio_dib0090_io_config_8649 adc_clock_ratio dib0090_io_config 0 8649 NULL
136241 +disable_so_regcache_rbtree_sync_fndecl_8655 regcache_rbtree_sync fndecl 0-2-3 8655 NULL
136242 +disable_so_nilfs_btree_gather_data_fndecl_8666 nilfs_btree_gather_data fndecl 0-4 8666 NULL
136243 +disable_so__scsih_get_sas_address_fndecl_8674 _scsih_get_sas_address fndecl 2 8674 NULL
136244 +disable_so_mul_u64_u32_shr_fndecl_8675 mul_u64_u32_shr fndecl 0-1-2-3 8675 NULL
136245 +disable_so_find_next_zero_bit_fndecl_8677 find_next_zero_bit fndecl 0-2-3 8677 NULL
136246 +disable_so_generic_set_freq_fndecl_8678 generic_set_freq fndecl 0-2 8678 NULL
136247 +disable_so_time_in_irq_usb_usbvision_8687 time_in_irq usb_usbvision 0 8687 NULL
136248 +disable_so_data_addr_asc_scsiq_1_8688 data_addr asc_scsiq_1 0 8688 NULL
136249 +disable_so_nl80211_parse_random_mac_fndecl_8702 nl80211_parse_random_mac fndecl 0 8702 NULL
136250 +disable_so_hpi_compander_set_attack_time_constant_fndecl_8705 hpi_compander_set_attack_time_constant fndecl 1-0 8705 NULL
136251 +disable_so_qla2x00_sns_gid_pt_fndecl_8706 qla2x00_sns_gid_pt fndecl 0 8706 NULL
136252 +disable_so_tipc_own_addr_fndecl_8707 tipc_own_addr fndecl 0 8707 NULL
136253 +disable_so_da9055_rtc_read_time_fndecl_8709 da9055_rtc_read_time fndecl 0 8709 NULL
136254 +disable_so_theta__fll_div_8710 theta _fll_div 0 8710 NULL nohasharray
136255 +disable_so_size_genwqe_bitstream_8710 size genwqe_bitstream 0 8710 &disable_so_theta__fll_div_8710
136256 +disable_so_cpu_to_virtio64_fndecl_8714 cpu_to_virtio64 fndecl 0-2 8714 NULL
136257 +disable_so_sleep_reg_bma180_part_info_8720 sleep_reg bma180_part_info 0 8720 NULL
136258 +disable_so_via_clock_init_fndecl_8721 via_clock_init fndecl 2 8721 NULL
136259 +disable_so_time_reftime_vardecl_ntp_c_8722 time_reftime vardecl_ntp.c 0 8722 NULL
136260 +disable_so_sysfs_set_reg_fndecl_8723 sysfs_set_reg fndecl 5 8723 NULL
136261 +disable_so_rport_del_timeout_vardecl_8725 rport_del_timeout vardecl 0 8725 NULL
136262 +disable_so_rb_subtree_gap_vm_area_struct_8729 rb_subtree_gap vm_area_struct 0 8729 NULL
136263 +disable_so_mipi_dsi_dcs_set_column_address_fndecl_8732 mipi_dsi_dcs_set_column_address fndecl 0 8732 NULL
136264 +disable_so_aes_encrypt_fail_read_fndecl_8737 aes_encrypt_fail_read fndecl 0-3 8737 NULL
136265 +disable_so_sumo_set_uvd_clock_fndecl_8742 sumo_set_uvd_clock fndecl 0-2-3-4 8742 NULL
136266 +disable_so_daddr_irlap_cb_8752 daddr irlap_cb 0 8752 NULL
136267 +disable_so_skcipher_sendpage_fndecl_8759 skcipher_sendpage fndecl 0-3-4-5 8759 NULL
136268 +disable_so_bitmap_store_fndecl_8764 bitmap_store fndecl 0-3 8764 NULL
136269 +disable_so_outdiv_arizona_fll_cfg_8765 outdiv arizona_fll_cfg 0 8765 NULL
136270 +disable_so_mce_start_timer_fndecl_8772 mce_start_timer fndecl 1 8772 NULL nohasharray
136271 +disable_so_kxcjk1013_runtime_resume_fndecl_8772 kxcjk1013_runtime_resume fndecl 0 8772 &disable_so_mce_start_timer_fndecl_8772
136272 +disable_so_p_addr_fw_desc_8777 p_addr fw_desc 0 8777 NULL
136273 +disable_so_count_uid_gid_extent_8799 count uid_gid_extent 0 8799 NULL
136274 +disable_so_ring_base_address_kfd_ioctl_create_queue_args_8811 ring_base_address kfd_ioctl_create_queue_args 0 8811 NULL
136275 +disable_so_start_addr_mlx5_mkey_seg_8817 start_addr mlx5_mkey_seg 0 8817 NULL
136276 +disable_so_ui_gid_ufs2_inode_8825 ui_gid ufs2_inode 0 8825 NULL
136277 +disable_so_addr_idx_tx_sw_desc_8827 addr_idx tx_sw_desc 0 8827 NULL
136278 +disable_so_cookie_init_timestamp_fndecl_8835 cookie_init_timestamp fndecl 0 8835 NULL
136279 +disable_so_f2fs_crypto_initialize_fndecl_8839 f2fs_crypto_initialize fndecl 0 8839 NULL
136280 +disable_so_timeout_ib_mad_send_wr_private_8841 timeout ib_mad_send_wr_private 0 8841 NULL nohasharray
136281 +disable_so_ddiv_gf100_clk_info_8841 ddiv gf100_clk_info 0 8841 &disable_so_timeout_ib_mad_send_wr_private_8841
136282 +disable_so_start_time_ieee80211_p2p_noa_desc_8844 start_time ieee80211_p2p_noa_desc 0 8844 NULL
136283 +disable_so__isl12057_rtc_read_time_fndecl_8850 _isl12057_rtc_read_time fndecl 0 8850 NULL
136284 +disable_so_read_addr_qla8xxx_minidump_entry_cache_8859 read_addr qla8xxx_minidump_entry_cache 0 8859 NULL
136285 +disable_so_b43legacy_get_txgain_freq_power_amp_fndecl_8866 b43legacy_get_txgain_freq_power_amp fndecl 0-1 8866 NULL
136286 +disable_so_ldelay_codel_vars_8872 ldelay codel_vars 0 8872 NULL
136287 +disable_so_mode_addr_ath_gen_timer_configuration_8875 mode_addr ath_gen_timer_configuration 0 8875 NULL
136288 +disable_so_move_addr_to_kernel_fndecl_8882 move_addr_to_kernel fndecl 0-2 8882 NULL
136289 +disable_so_last_time_cpufreq_stats_8891 last_time cpufreq_stats 0 8891 NULL
136290 +disable_so_di_uid_xfs_icdinode_8897 di_uid xfs_icdinode 0 8897 NULL
136291 +disable_so_g84_cipher_init_fndecl_8909 g84_cipher_init fndecl 0 8909 NULL
136292 +disable_so_slave_addr_intel_dvo_device_8910 slave_addr intel_dvo_device 0 8910 NULL
136293 +disable_so_avg_time_ide_tape_obj_8917 avg_time ide_tape_obj 0 8917 NULL
136294 +disable_so_ticks_timerfd_ctx_8928 ticks timerfd_ctx 0 8928 NULL
136295 +disable_so_st_atime_compat_stat_8936 st_atime compat_stat 0 8936 NULL
136296 +disable_so_addrconf_init_net_fndecl_8938 addrconf_init_net fndecl 0 8938 NULL
136297 +disable_so_qla4xxx_start_timer_fndecl_8945 qla4xxx_start_timer fndecl 3 8945 NULL
136298 +disable_so_crypto_blkcipher_decrypt_fndecl_8955 crypto_blkcipher_decrypt fndecl 0-4 8955 NULL
136299 +disable_so_guest_physical_address_vmcs12_8957 guest_physical_address vmcs12 0 8957 NULL
136300 +disable_so_acpi_lpss_runtime_resume_fndecl_8958 acpi_lpss_runtime_resume fndecl 0 8958 NULL nohasharray
136301 +disable_so_tegra_spi_runtime_resume_fndecl_8958 tegra_spi_runtime_resume fndecl 0 8958 &disable_so_acpi_lpss_runtime_resume_fndecl_8958
136302 +disable_so_runtime_resume_fndecl_8969 runtime_resume fndecl 0 8969 NULL
136303 +disable_so_hpi_tuner_set_hd_radio_signal_blend_fndecl_8970 hpi_tuner_set_hd_radio_signal_blend fndecl 0-1 8970 NULL
136304 +disable_so_wait_isoch_resource_delay_after_bus_reset_fndecl_8971 wait_isoch_resource_delay_after_bus_reset fndecl 0 8971 NULL
136305 +disable_so_end_fw_address_region_8972 end fw_address_region 0 8972 NULL
136306 +disable_so_sel_time_fcoe_ctlr_8977 sel_time fcoe_ctlr 0 8977 NULL
136307 +disable_so_unmap_addr_tso_state_8980 unmap_addr tso_state 0 8980 NULL
136308 +disable_so_v_freq_adv76xx_video_standards_8995 v_freq adv76xx_video_standards 0 8995 NULL
136309 +disable_so_p3_mt9t112_pll_divider_8996 p3 mt9t112_pll_divider 0 8996 NULL
136310 +disable_so_si476x_cmd_tune_seek_freq_fndecl_8997 si476x_cmd_tune_seek_freq fndecl 0-4-6 8997 NULL
136311 +disable_so_lzo1x_1_do_compress_fndecl_9000 lzo1x_1_do_compress fndecl 2 9000 NULL
136312 +disable_so_data_ramfuc_reg_9003 data ramfuc_reg 0 9003 NULL
136313 +disable_so_uid_drm_client_9005 uid drm_client 0 9005 NULL nohasharray
136314 +disable_so_size_pfn_var_mtrr_range_state_9005 size_pfn var_mtrr_range_state 0 9005 &disable_so_uid_drm_client_9005
136315 +disable_so_decode_attr_time_modify_fndecl_9006 decode_attr_time_modify fndecl 0 9006 NULL nohasharray
136316 +disable_so_last_jiffies_debug_vals_9006 last_jiffies debug_vals 0 9006 &disable_so_decode_attr_time_modify_fndecl_9006
136317 +disable_so_i2c_address_tua6100_priv_9007 i2c_address tua6100_priv 0 9007 NULL nohasharray
136318 +disable_so_end_mtrr_iter_9007 end mtrr_iter 0 9007 &disable_so_i2c_address_tua6100_priv_9007
136319 +disable_so_sin6_flowinfo_sockaddr_in6_9019 sin6_flowinfo sockaddr_in6 0 9019 NULL nohasharray
136320 +disable_so_device_destroy_fndecl_9019 device_destroy fndecl 2 9019 &disable_so_sin6_flowinfo_sockaddr_in6_9019
136321 +disable_so_si_tss_segment_16_9021 si tss_segment_16 0 9021 NULL
136322 +disable_so_parport_ieee1284_epp_write_addr_fndecl_9024 parport_ieee1284_epp_write_addr fndecl 0 9024 NULL
136323 +disable_so_esi_user_regs_struct32_9028 esi user_regs_struct32 0 9028 NULL
136324 +disable_so_clockevents_unbind_device_fndecl_9035 clockevents_unbind_device fndecl 2 9035 NULL nohasharray
136325 +disable_so_t1_interrupt_fndecl_9035 t1_interrupt fndecl 1 9035 &disable_so_clockevents_unbind_device_fndecl_9035 nohasharray
136326 +disable_so_randomize_stack_top_fndecl_9035 randomize_stack_top fndecl 0-1 9035 &disable_so_t1_interrupt_fndecl_9035
136327 +disable_so_mv88e6xxx_set_addr_direct_fndecl_9045 mv88e6xxx_set_addr_direct fndecl 0 9045 NULL
136328 +disable_so_phy_addr_cas_9051 phy_addr cas 0 9051 NULL
136329 +disable_so_usnic_transport_sock_get_addr_fndecl_9083 usnic_transport_sock_get_addr fndecl 0 9083 NULL
136330 +disable_so_debug_dma_free_coherent_fndecl_9087 debug_dma_free_coherent fndecl 4 9087 NULL nohasharray
136331 +disable_so_hashtab_insert_fndecl_9087 hashtab_insert fndecl 0 9087 &disable_so_debug_dma_free_coherent_fndecl_9087
136332 +disable_so_kblockd_schedule_delayed_work_on_fndecl_9095 kblockd_schedule_delayed_work_on fndecl 3-1 9095 NULL nohasharray
136333 +disable_so_lbs_host_sleep_cfg_fndecl_9095 lbs_host_sleep_cfg fndecl 0 9095 &disable_so_kblockd_schedule_delayed_work_on_fndecl_9095
136334 +disable_so_q_ctime_msg_queue_9100 q_ctime msg_queue 0 9100 NULL
136335 +disable_so_start_time_il_spectrum_cmd_9104 start_time il_spectrum_cmd 0 9104 NULL
136336 +disable_so_local_clock_fndecl_9106 local_clock fndecl 0 9106 NULL
136337 +disable_so_addr_xtsplit_9109 addr xtsplit 0 9109 NULL
136338 +disable_so_runtime_suspend_fndecl_9118 runtime_suspend fndecl 0 9118 NULL
136339 +disable_so_pch_src_uuid_lo_read_fndecl_9120 pch_src_uuid_lo_read fndecl 0 9120 NULL nohasharray
136340 +disable_so_freq_is_chan_12_13_14_fndecl_9120 freq_is_chan_12_13_14 fndecl 1 9120 &disable_so_pch_src_uuid_lo_read_fndecl_9120
136341 +disable_so_addr1___pollrdmwr_9145 addr1 __pollrdmwr 0 9145 NULL
136342 +disable_so_iowrite16_rep_fndecl_9149 iowrite16_rep fndecl 3 9149 NULL
136343 +disable_so_rss_hash_result_eth_fast_path_rx_cqe_9151 rss_hash_result eth_fast_path_rx_cqe 0 9151 NULL
136344 +disable_so_ieee80211_fill_mesh_addresses_fndecl_9154 ieee80211_fill_mesh_addresses fndecl 0 9154 NULL
136345 +disable_so_dequeue_signal_lock_fndecl_9161 dequeue_signal_lock fndecl 0 9161 NULL
136346 +disable_so_min_tomoyo_time_9165 min tomoyo_time 0 9165 NULL
136347 +disable_so_hash_kernfs_node_9177 hash kernfs_node 0 9177 NULL
136348 +disable_so_get_subaddr_fndecl_9183 get_subaddr fndecl 0-3 9183 NULL
136349 +disable_so_tms_stime_tms_9187 tms_stime tms 0 9187 NULL
136350 +disable_so_shash_async_final_fndecl_9193 shash_async_final fndecl 0 9193 NULL
136351 +disable_so_sksg_dma_address_skd_request_context_9194 sksg_dma_address skd_request_context 0 9194 NULL
136352 +disable_so_rss_hash_val_rss_header_9205 rss_hash_val rss_header 0 9205 NULL
136353 +disable_so_actual_clock_mmc_host_9217 actual_clock mmc_host 0 9217 NULL
136354 +disable_so_xt_cluster_is_multicast_addr_fndecl_9218 xt_cluster_is_multicast_addr fndecl 2 9218 NULL
136355 +disable_so_ww_mutex_lock_interruptible_fndecl_9222 ww_mutex_lock_interruptible fndecl 0 9222 NULL
136356 +disable_so_twake_snd_pcm_runtime_9229 twake snd_pcm_runtime 0 9229 NULL
136357 +disable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 0 9236 NULL
136358 +disable_so_tx_complete_addr_acx_data_path_params_resp_9246 tx_complete_addr acx_data_path_params_resp 0 9246 NULL
136359 +disable_so_pbn_div_drm_dp_mst_topology_mgr_9251 pbn_div drm_dp_mst_topology_mgr 0 9251 NULL
136360 +disable_so_num_address_p54_group_address_table_9258 num_address p54_group_address_table 0 9258 NULL
136361 +disable_so_ks108_set_xaddr_fndecl_9262 ks108_set_xaddr fndecl 2-3 9262 NULL
136362 +disable_so_xtal_freq_qm1d1c0042_config_9263 xtal_freq qm1d1c0042_config 0 9263 NULL
136363 +disable_so_lbs_host_sleep_read_fndecl_9270 lbs_host_sleep_read fndecl 3-0 9270 NULL
136364 +disable_so_fdiv_it913x_dev_9273 fdiv it913x_dev 0 9273 NULL nohasharray
136365 +disable_so_oom_score_adj_signal_struct_9273 oom_score_adj signal_struct 0 9273 &disable_so_fdiv_it913x_dev_9273
136366 +disable_so_compat_sys_mq_timedsend_fndecl_9287 compat_sys_mq_timedsend fndecl 3-1 9287 NULL
136367 +disable_so_snd_tea575x_val_to_freq_fndecl_9302 snd_tea575x_val_to_freq fndecl 0-2 9302 NULL
136368 +disable_so_addr_resolve_fndecl_9304 addr_resolve fndecl 0 9304 NULL
136369 +disable_so_address_mic_vqconfig_9306 address mic_vqconfig 0 9306 NULL nohasharray
136370 +disable_so_stat_params_addr_lo_fcoe_kwqe_stat_9306 stat_params_addr_lo fcoe_kwqe_stat 0 9306 &disable_so_address_mic_vqconfig_9306
136371 +disable_so_trace_clock_local_fndecl_9318 trace_clock_local fndecl 0 9318 NULL nohasharray
136372 +disable_so_proc_gid_map_write_fndecl_9318 proc_gid_map_write fndecl 0-3 9318 &disable_so_trace_clock_local_fndecl_9318
136373 +disable_so_discovery_timeout_mpath_info_9320 discovery_timeout mpath_info 0 9320 NULL
136374 +disable_so_xmit_timeout_nbd_device_9323 xmit_timeout nbd_device 0 9323 NULL
136375 +disable_so_timer_irq_vardecl_cs5535_clockevt_c_9326 timer_irq vardecl_cs5535-clockevt.c 0 9326 NULL
136376 +disable_so_kblockd_schedule_delayed_work_fndecl_9328 kblockd_schedule_delayed_work fndecl 2 9328 NULL
136377 +disable_so_utimes_common_fndecl_9330 utimes_common fndecl 0 9330 NULL
136378 +disable_so_di_gid_qnx4_inode_entry_9346 di_gid qnx4_inode_entry 0 9346 NULL nohasharray
136379 +disable_so_rpc_localaddr_fndecl_9346 rpc_localaddr fndecl 0 9346 &disable_so_di_gid_qnx4_inode_entry_9346
136380 +disable_so_ibits_pll_freq_tbl_9354 ibits pll_freq_tbl 0 9354 NULL
136381 +disable_so_addr_nct6683_data_9356 addr nct6683_data 0 9356 NULL
136382 +disable_so_l2_fhdr_hash_l2_fhdr_9360 l2_fhdr_hash l2_fhdr 0 9360 NULL
136383 +disable_so_hpfs_count_one_bitmap_fndecl_9362 hpfs_count_one_bitmap fndecl 0-2 9362 NULL
136384 +disable_so_ax25_uid_ioctl_fndecl_9367 ax25_uid_ioctl fndecl 0 9367 NULL
136385 +disable_so_last_rebuild_jiffies_inet_frags_9369 last_rebuild_jiffies inet_frags 0 9369 NULL
136386 +disable_so_hash_ipportnet6_expire_fndecl_9373 hash_ipportnet6_expire fndecl 4 9373 NULL
136387 +disable_so_uuid_count_mgmt_cp_start_service_discovery_9374 uuid_count mgmt_cp_start_service_discovery 0 9374 NULL
136388 +disable_so_ixgbe_set_vf_mac_addr_fndecl_9376 ixgbe_set_vf_mac_addr fndecl 3 9376 NULL
136389 +disable_so_addr_dma_desc_9383 addr dma_desc 0 9383 NULL
136390 +disable_so_ilk_get_aux_clock_divider_fndecl_9386 ilk_get_aux_clock_divider fndecl 0 9386 NULL
136391 +disable_so_host_bfa_bsg_rport_scsi_addr_s_9387 host bfa_bsg_rport_scsi_addr_s 0 9387 NULL
136392 +disable_so_xfs_btree_init_block_int_fndecl_9393 xfs_btree_init_block_int fndecl 3-7 9393 NULL
136393 +disable_so_dutycycle_pwm_voltages_9394 dutycycle pwm_voltages 0 9394 NULL
136394 +disable_so_max_timer_ms_ssb_chipcommon_9403 max_timer_ms ssb_chipcommon 0 9403 NULL
136395 +disable_so_demod_address_jdvbt90502_config_9412 demod_address jdvbt90502_config 0 9412 NULL nohasharray
136396 +disable_so_inet_dev_addr_type_fndecl_9412 inet_dev_addr_type fndecl 3 9412 &disable_so_demod_address_jdvbt90502_config_9412
136397 +disable_so_bit_offset_acpi_generic_address_9413 bit_offset acpi_generic_address 0 9413 NULL
136398 +disable_so_crypto_hash_update_fndecl_9415 crypto_hash_update fndecl 0-3 9415 NULL
136399 +disable_so_ftdi_2232h_baud_to_divisor_fndecl_9425 ftdi_2232h_baud_to_divisor fndecl 0-1 9425 NULL
136400 +disable_so_blk_post_runtime_resume_fndecl_9432 blk_post_runtime_resume fndecl 2 9432 NULL
136401 +disable_so_parent_btrfs_delayed_data_ref_9437 parent btrfs_delayed_data_ref 0 9437 NULL nohasharray
136402 +disable_so_netxen_get_interrupt_mode_fndecl_9437 netxen_get_interrupt_mode fndecl 0 9437 &disable_so_parent_btrfs_delayed_data_ref_9437
136403 +disable_so_entry_attr_timeout_fndecl_9441 entry_attr_timeout fndecl 0 9441 NULL
136404 +disable_so_wall_time_snsec_vsyscall_gtod_data_9445 wall_time_snsec vsyscall_gtod_data 0 9445 NULL
136405 +disable_so_atm_get_addr_fndecl_9446 atm_get_addr fndecl 3 9446 NULL
136406 +disable_so_address_efx_farch_register_test_9448 address efx_farch_register_test 0 9448 NULL
136407 +disable_so_rx_errors_net_device_stats_9453 rx_errors net_device_stats 0 9453 NULL
136408 +disable_so_crypto_sha1_update_fndecl_9455 crypto_sha1_update fndecl 3 9455 NULL
136409 +disable_so_bm_set_drbd_bitmap_9457 bm_set drbd_bitmap 0 9457 NULL
136410 +disable_so_mb86a16_write_fndecl_9462 mb86a16_write fndecl 3 9462 NULL
136411 +disable_so_cycle_delay_radeon_dpm_fan_9463 cycle_delay radeon_dpm_fan 0 9463 NULL
136412 +disable_so_value_vmx_msr_entry_9464 value vmx_msr_entry 0 9464 NULL
136413 +disable_so_io_bitmap_b_vmcs12_9472 io_bitmap_b vmcs12 0 9472 NULL
136414 +disable_so_brtime_id_seeprom_config_9474 brtime_id seeprom_config 0 9474 NULL
136415 +disable_so_frequency_stv0367ter_state_9481 frequency stv0367ter_state 0 9481 NULL
136416 +disable_so_ccp_aes_cmac_setkey_fndecl_9503 ccp_aes_cmac_setkey fndecl 0-3 9503 NULL
136417 +disable_so_tsc_ratio_vcpu_svm_9506 tsc_ratio vcpu_svm 0 9506 NULL
136418 +disable_so_crypto_cts_setkey_fndecl_9507 crypto_cts_setkey fndecl 0-3 9507 NULL
136419 +disable_so_clock_t_to_compat_clock_t_fndecl_9510 clock_t_to_compat_clock_t fndecl 1-0 9510 NULL
136420 +disable_so_xcan_err_interrupt_fndecl_9511 xcan_err_interrupt fndecl 2 9511 NULL nohasharray
136421 +disable_so_gru_start_paddr_vardecl_x2apic_uv_x_c_9511 gru_start_paddr vardecl_x2apic_uv_x.c 0 9511 &disable_so_xcan_err_interrupt_fndecl_9511
136422 +disable_so_nilfs_btree_check_delete_fndecl_9514 nilfs_btree_check_delete fndecl 0 9514 NULL
136423 +disable_so_debug_dma_sync_single_for_device_fndecl_9517 debug_dma_sync_single_for_device fndecl 3-2 9517 NULL
136424 +disable_so_single_bit_error_correct_fndecl_9520 single_bit_error_correct fndecl 4 9520 NULL
136425 +disable_so_data_busaddr_ips_scb_9530 data_busaddr ips_scb 0 9530 NULL
136426 +disable_so_diversity_delay_dib8000_config_9533 diversity_delay dib8000_config 0 9533 NULL
136427 +disable_so_ems_usb_set_bittiming_fndecl_9537 ems_usb_set_bittiming fndecl 0 9537 NULL
136428 +disable_so_port_update_gid_work_9549 port update_gid_work 0 9549 NULL
136429 +disable_so_cryptomgr_schedule_test_fndecl_9550 cryptomgr_schedule_test fndecl 0 9550 NULL
136430 +disable_so_hpd_eop_gpu_addr_radeon_mec_9554 hpd_eop_gpu_addr radeon_mec 0 9554 NULL
136431 +disable_so_cluster_slot_bitmap_9571 cluster_slot bitmap 0 9571 NULL
136432 +disable_so_address_space_cmos_rtc_board_info_9586 address_space cmos_rtc_board_info 0 9586 NULL
136433 +disable_so_regcache_rbtree_set_register_fndecl_9588 regcache_rbtree_set_register fndecl 3-4 9588 NULL
136434 +disable_so_gen8_xcs_signal_fndecl_9591 gen8_xcs_signal fndecl 0-2 9591 NULL
136435 +disable_so_time_stamp_il_tx_queue_9592 time_stamp il_tx_queue 0 9592 NULL
136436 +disable_so_first_dev_address_fndecl_9599 first_dev_address fndecl 0-1 9599 NULL
136437 +disable_so_lpfc_max_scsicmpl_time_show_fndecl_9604 lpfc_max_scsicmpl_time_show fndecl 0 9604 NULL
136438 +disable_so_efx_ef10_get_sysclk_freq_fndecl_9605 efx_ef10_get_sysclk_freq fndecl 0 9605 NULL
136439 +disable_so_utime_signal_struct_9619 utime signal_struct 0 9619 NULL nohasharray
136440 +disable_so_connected_time_station_info_9619 connected_time station_info 0 9619 &disable_so_utime_signal_struct_9619
136441 +disable_so_elapsed_time_f2fs_checkpoint_9631 elapsed_time f2fs_checkpoint 0 9631 NULL
136442 +disable_so_read_addr_qla8044_minidump_entry_pollrd_9634 read_addr qla8044_minidump_entry_pollrd 0 9634 NULL
136443 +disable_so_time_stamp_sec_TAG_TW_Event_9639 time_stamp_sec TAG_TW_Event 0 9639 NULL
136444 +disable_so_blk_pre_runtime_suspend_fndecl_9640 blk_pre_runtime_suspend fndecl 0 9640 NULL
136445 +disable_so_ds_divider_index_sumo_pl_9644 ds_divider_index sumo_pl 0 9644 NULL
136446 +disable_so_out_of_line_wait_on_bit_timeout_fndecl_9648 out_of_line_wait_on_bit_timeout fndecl 5-0 9648 NULL
136447 +disable_so_sys_getuid16_fndecl_9653 sys_getuid16 fndecl 0 9653 NULL
136448 +disable_so_smc_interrupt_fndecl_9659 smc_interrupt fndecl 1 9659 NULL
136449 +disable_so_pld_clock_kempld_device_data_9670 pld_clock kempld_device_data 0 9670 NULL
136450 +disable_so_hello_time_show_fndecl_9675 hello_time_show fndecl 0 9675 NULL
136451 +disable_so_paddr_tsq_info_9680 paddr tsq_info 0 9680 NULL
136452 +disable_so_fifo_addr_fwnet_packet_task_9682 fifo_addr fwnet_packet_task 0 9682 NULL
136453 +disable_so_uaddr_ivtv_dma_page_info_9683 uaddr ivtv_dma_page_info 0 9683 NULL
136454 +disable_so_lp872x_regulator_enable_time_fndecl_9684 lp872x_regulator_enable_time fndecl 0 9684 NULL
136455 +disable_so_r67_val_fc2580_freq_regs_9685 r67_val fc2580_freq_regs 0 9685 NULL
136456 +disable_so_mclk_freq_rj54n1_pdata_9727 mclk_freq rj54n1_pdata 0 9727 NULL
136457 +disable_so_qdelay_pie_vars_9735 qdelay pie_vars 0 9735 NULL
136458 +disable_so_uncore_msr_fixed_ctl_fndecl_9740 uncore_msr_fixed_ctl fndecl 0 9740 NULL
136459 +disable_so_ifa_preferred_lft_in_ifaddr_9744 ifa_preferred_lft in_ifaddr 0 9744 NULL
136460 +disable_so_cpuid_device_create_fndecl_9746 cpuid_device_create fndecl 1 9746 NULL
136461 +disable_so_musb_write_rxhubaddr_fndecl_9750 musb_write_rxhubaddr fndecl 2-3 9750 NULL
136462 +disable_so_moddelay_soundfont_voice_parm_9752 moddelay soundfont_voice_parm 0 9752 NULL
136463 +disable_so_uwb_rc_mac_addr_setup_fndecl_9754 uwb_rc_mac_addr_setup fndecl 0 9754 NULL
136464 +disable_so_kv_convert_2bit_index_to_voltage_fndecl_9759 kv_convert_2bit_index_to_voltage fndecl 0-2 9759 NULL
136465 +disable_so_timeout_interval_bau_control_9762 timeout_interval bau_control 0 9762 NULL
136466 +disable_so_acpi_ut_check_address_range_fndecl_9782 acpi_ut_check_address_range fndecl 1-2-3 9782 NULL
136467 +disable_so_signal_rtl8187_priv_9785 signal rtl8187_priv 0 9785 NULL
136468 +disable_so_usb__coeff_div_9793 usb _coeff_div 0 9793 NULL
136469 +disable_so_dspaddr_offset_intel_crtc_9795 dspaddr_offset intel_crtc 0 9795 NULL
136470 +disable_so_demod_address_mt352_config_9806 demod_address mt352_config 0 9806 NULL
136471 +disable_so_ntfs_bitmap_set_bits_in_run_fndecl_9807 ntfs_bitmap_set_bits_in_run fndecl 2-3 9807 NULL
136472 +disable_so_vaddr_ioctl_gntdev_get_offset_for_vaddr_9810 vaddr ioctl_gntdev_get_offset_for_vaddr 0 9810 NULL
136473 +disable_so_mtime_fuse_setattr_in_9811 mtime fuse_setattr_in 0 9811 NULL nohasharray
136474 +disable_so_r10_pt_regs_9811 r10 pt_regs 0 9811 &disable_so_mtime_fuse_setattr_in_9811
136475 +disable_so_ath6kl_wmi_bmisstime_cmd_fndecl_9818 ath6kl_wmi_bmisstime_cmd fndecl 2-0 9818 NULL
136476 +disable_so_addr_lp55xx_reg_9819 addr lp55xx_reg 0 9819 NULL
136477 +disable_so_rq_pbl_addr_hi_fcoe_kwqe_conn_offload1_9838 rq_pbl_addr_hi fcoe_kwqe_conn_offload1 0 9838 NULL
136478 +disable_so___bitmap_shift_right_fndecl_9852 __bitmap_shift_right fndecl 3-4 9852 NULL
136479 +disable_so_set_ramp_delay_regulator_ops_9853 set_ramp_delay regulator_ops 0 9853 NULL
136480 +disable_so_delay_qla8044_reset_entry_hdr_9861 delay qla8044_reset_entry_hdr 0 9861 NULL
136481 +disable_so_dn_nl_dump_ifaddr_fndecl_9864 dn_nl_dump_ifaddr fndecl 0 9864 NULL
136482 +disable_so_cryptd_blkcipher_decrypt_enqueue_fndecl_9865 cryptd_blkcipher_decrypt_enqueue fndecl 0 9865 NULL
136483 +disable_so_dma_addr_vnic_rq_buf_9867 dma_addr vnic_rq_buf 0 9867 NULL
136484 +disable_so_atomic_pte_lookup_fndecl_9877 atomic_pte_lookup fndecl 2 9877 NULL
136485 +disable_so_init_freq_pt3_adap_config_9886 init_freq pt3_adap_config 0 9886 NULL nohasharray
136486 +disable_so_tq_can_bittiming_9886 tq can_bittiming 0 9886 &disable_so_init_freq_pt3_adap_config_9886
136487 +disable_so_base_addr_tg3_firmware_hdr_9887 base_addr tg3_firmware_hdr 0 9887 NULL
136488 +disable_so_execaddr_object_info_9888 execaddr object_info 0 9888 NULL
136489 +disable_so_freq_r3A_value_fndecl_9891 freq_r3A_value fndecl 0-1 9891 NULL
136490 +disable_so_xfs_btree_shift_ptrs_fndecl_9894 xfs_btree_shift_ptrs fndecl 4 9894 NULL
136491 +disable_so_rsp_producer_index_phy_addr_low_ql3_adapter_9895 rsp_producer_index_phy_addr_low ql3_adapter 0 9895 NULL
136492 +disable_so_n_voltages_regulator_desc_9911 n_voltages regulator_desc 0 9911 NULL
136493 +disable_so_reset_gid_table_fndecl_9912 reset_gid_table fndecl 2 9912 NULL
136494 +disable_so_dentist_vco_freq_trinity_sys_info_9922 dentist_vco_freq trinity_sys_info 0 9922 NULL
136495 +disable_so_mactime_linux_wlan_ng_cap_hdr_9926 mactime linux_wlan_ng_cap_hdr 0 9926 NULL nohasharray
136496 +disable_so_address_hi_ht_irq_msg_9926 address_hi ht_irq_msg 0 9926 &disable_so_mactime_linux_wlan_ng_cap_hdr_9926
136497 +disable_so_mdac_aic31xx_rate_divs_9931 mdac aic31xx_rate_divs 0 9931 NULL
136498 +disable_so_si2168_sleep_fndecl_9938 si2168_sleep fndecl 0 9938 NULL
136499 +disable_so_spp_assoc_id_sctp_paddrparams_9958 spp_assoc_id sctp_paddrparams 0 9958 NULL
136500 +disable_so_skcipher_wait_for_data_fndecl_9959 skcipher_wait_for_data fndecl 0 9959 NULL
136501 +disable_so_c_delay_target_disk_conf_9960 c_delay_target disk_conf 0 9960 NULL
136502 +disable_so_p1div_pmu1_plltab_entry_9962 p1div pmu1_plltab_entry 0 9962 NULL
136503 +disable_so_extract_clock_fndecl_9973 extract_clock fndecl 1-2-0 9973 NULL
136504 +disable_so_addr_hi_rx_desc_9978 addr_hi rx_desc 0 9978 NULL
136505 +disable_so_sin_family_sockaddr_in_9981 sin_family sockaddr_in 0 9981 NULL
136506 +disable_so_ticks_snd_timer_user_9987 ticks snd_timer_user 0 9987 NULL
136507 +disable_so_address_musb_9992 address musb 0 9992 NULL
136508 +disable_so_invalidate_guid_record_fndecl_9996 invalidate_guid_record fndecl 2 9996 NULL
136509 +disable_so_request_daddr_isci_request_10008 request_daddr isci_request 0 10008 NULL
136510 +disable_so_addr_sec_info_di_buf_entry_10016 addr_sec_info di_buf_entry 0 10016 NULL
136511 +disable_so_hash_netportnet4_expire_fndecl_10025 hash_netportnet4_expire fndecl 4 10025 NULL
136512 +disable_so_hid_time_value_fndecl_10028 hid_time_value fndecl 0 10028 NULL
136513 +disable_so_ts_jiffies_uwb_beca_e_10039 ts_jiffies uwb_beca_e 0 10039 NULL
136514 +disable_so_hpi_sample_clock_get_source_fndecl_10048 hpi_sample_clock_get_source fndecl 1-0 10048 NULL
136515 +disable_so_hfsplus_btree_open_fndecl_10055 hfsplus_btree_open fndecl 2 10055 NULL
136516 +disable_so_rx_drain_timeout_msecs_vardecl_10061 rx_drain_timeout_msecs vardecl 0 10061 NULL
136517 +disable_so_start_seq_tcp_sack_block_wire_10072 start_seq tcp_sack_block_wire 0 10072 NULL
136518 +disable_so_sha1_mb_finup_fndecl_10074 sha1_mb_finup fndecl 0 10074 NULL
136519 +disable_so_flow_get_skuid_fndecl_10095 flow_get_skuid fndecl 0 10095 NULL
136520 +disable_so_i_atime_ext4_inode_10096 i_atime ext4_inode 0 10096 NULL
136521 +disable_so_wd_timeout_iwl_txq_10106 wd_timeout iwl_txq 0 10106 NULL
136522 +disable_so_tx_lpi_timer_ethtool_eee_10108 tx_lpi_timer ethtool_eee 0 10108 NULL
136523 +disable_so_cpumask_clear_cpu_fndecl_10109 cpumask_clear_cpu fndecl 1 10109 NULL
136524 +disable_so_apply_time_iwl_hs20_roc_req_10117 apply_time iwl_hs20_roc_req 0 10117 NULL
136525 +disable_so_pos2min_hash_fndecl_10123 pos2min_hash fndecl 0-2 10123 NULL
136526 +disable_so_mode_mask_ath_gen_timer_configuration_10124 mode_mask ath_gen_timer_configuration 0 10124 NULL
136527 +disable_so_del_timer_sync_fndecl_10133 del_timer_sync fndecl 0 10133 NULL
136528 +disable_so_res_toss_time_dlm_rsb_10135 res_toss_time dlm_rsb 0 10135 NULL nohasharray
136529 +disable_so_vblank___fb_timings_10135 vblank __fb_timings 0 10135 &disable_so_res_toss_time_dlm_rsb_10135
136530 +disable_so_phase_seg1_can_bittiming_10141 phase_seg1 can_bittiming 0 10141 NULL
136531 +disable_so_fixed_mtrr_seg_end_range_index_fndecl_10143 fixed_mtrr_seg_end_range_index fndecl 0 10143 NULL
136532 +disable_so_xgene_enet_set_mac_address_fndecl_10148 xgene_enet_set_mac_address fndecl 0 10148 NULL
136533 +disable_so_rtl_rfreg_delay_fndecl_10149 rtl_rfreg_delay fndecl 3-5 10149 NULL
136534 +disable_so_channel_of_freq_fndecl_10152 channel_of_freq fndecl 0-1 10152 NULL nohasharray
136535 +disable_so_gpio_set_value_cansleep_fndecl_10152 gpio_set_value_cansleep fndecl 1-2 10152 &disable_so_channel_of_freq_fndecl_10152
136536 +disable_so_em_sti_clocksource_read_fndecl_10153 em_sti_clocksource_read fndecl 0 10153 NULL
136537 +disable_so_tc90522_sleep_fndecl_10162 tc90522_sleep fndecl 0 10162 NULL
136538 +disable_so_discovery_timeout_mesh_path_10170 discovery_timeout mesh_path 0 10170 NULL
136539 +disable_so_pcf8563_rtc_read_time_fndecl_10175 pcf8563_rtc_read_time fndecl 0 10175 NULL
136540 +disable_so_ixgb_mc_addr_list_update_fndecl_10187 ixgb_mc_addr_list_update fndecl 3 10187 NULL
136541 +disable_so_rng_gen_random_rng_tfm_10199 rng_gen_random rng_tfm 3-0 10199 NULL
136542 +disable_so_db_rec_addr_mlx4_qp_context_10204 db_rec_addr mlx4_qp_context 0 10204 NULL nohasharray
136543 +disable_so_sgl_pg0_addr_lo_sgl_page_pairs_10204 sgl_pg0_addr_lo sgl_page_pairs 0 10204 &disable_so_db_rec_addr_mlx4_qp_context_10204
136544 +disable_so_pgid_coda_in_hdr_10212 pgid coda_in_hdr 0 10212 NULL
136545 +disable_so_xfs_btree_get_numrecs_fndecl_10214 xfs_btree_get_numrecs fndecl 0 10214 NULL
136546 +disable_so_txLifetime_ConfigRid_10224 txLifetime ConfigRid 0 10224 NULL
136547 +disable_so_active_time_dce8_wm_params_10231 active_time dce8_wm_params 0 10231 NULL
136548 +disable_so_spi_imx_clkdiv_1_fndecl_10237 spi_imx_clkdiv_1 fndecl 1-2 10237 NULL
136549 +disable_so_vlv_force_gfx_clock_fndecl_10238 vlv_force_gfx_clock fndecl 0 10238 NULL
136550 +disable_so_prism54_get_freq_fndecl_10256 prism54_get_freq fndecl 0 10256 NULL
136551 +disable_so_ath6kl_wmi_disctimeout_cmd_fndecl_10259 ath6kl_wmi_disctimeout_cmd fndecl 2-0 10259 NULL
136552 +disable_so_dma_addr_snd_pcm_runtime_10260 dma_addr snd_pcm_runtime 0 10260 NULL
136553 +disable_so_p7_mt9t112_pll_divider_10261 p7 mt9t112_pll_divider 0 10261 NULL
136554 +disable_so_start_pid_timer_list_10264 start_pid timer_list 0 10264 NULL
136555 +disable_so_gateway_ctrl_address_wil_fw_record_gateway_data_10268 gateway_ctrl_address wil_fw_record_gateway_data 0 10268 NULL
136556 +disable_so_btree_insert128_fndecl_10277 btree_insert128 fndecl 2-3-5 10277 NULL
136557 +disable_so_i_dtime_ext2_inode_info_10287 i_dtime ext2_inode_info 0 10287 NULL
136558 +disable_so_mcryptd_hash_init_fndecl_10290 mcryptd_hash_init fndecl 2 10290 NULL
136559 +disable_so_freq_bfa_diag_ledtest_s_10293 freq bfa_diag_ledtest_s 0 10293 NULL
136560 +disable_so_TSS_sha1_fndecl_10297 TSS_sha1 fndecl 2 10297 NULL
136561 +disable_so_ccp_aes_cmac_init_fndecl_10298 ccp_aes_cmac_init fndecl 0 10298 NULL
136562 +disable_so_fc_fcp_timer_set_fndecl_10312 fc_fcp_timer_set fndecl 2 10312 NULL
136563 +disable_so_blkcipher_walk_next_fndecl_10321 blkcipher_walk_next fndecl 0 10321 NULL
136564 +disable_so_pwm_clock_nvkm_therm_10336 pwm_clock nvkm_therm 2-0 10336 NULL nohasharray
136565 +disable_so_ecryptfs_code_for_cipher_string_fndecl_10336 ecryptfs_code_for_cipher_string fndecl 2 10336 &disable_so_pwm_clock_nvkm_therm_10336
136566 +disable_so_smc_wreg_amdgpu_device_10339 smc_wreg amdgpu_device 2-3 10339 NULL
136567 +disable_so_symlink_hash_fndecl_10341 symlink_hash fndecl 1 10341 NULL
136568 +disable_so_eax_smm_regs_10346 eax smm_regs 0 10346 NULL
136569 +disable_so_sctp_setsockopt_nodelay_fndecl_10349 sctp_setsockopt_nodelay fndecl 0-3 10349 NULL
136570 +disable_so_min_vdisktime_cfq_rb_root_10355 min_vdisktime cfq_rb_root 0 10355 NULL
136571 +disable_so_address_lo_msi_msg_10356 address_lo msi_msg 0 10356 NULL
136572 +disable_so_unmapped_addr_srp_map_state_10359 unmapped_addr srp_map_state 0 10359 NULL
136573 +disable_so_buff_addr_ixgb_tx_desc_10366 buff_addr ixgb_tx_desc 0 10366 NULL
136574 +disable_so_i_ctime_sysv_inode_10368 i_ctime sysv_inode 0 10368 NULL
136575 +disable_so_avg_signal_local_info_10389 avg_signal local_info 0 10389 NULL
136576 +disable_so_sctp_bind_addrs_to_raw_fndecl_10390 sctp_bind_addrs_to_raw fndecl 3 10390 NULL
136577 +disable_so_xfs_btree_reada_bufs_fndecl_10403 xfs_btree_reada_bufs fndecl 2-3-4 10403 NULL
136578 +disable_so_cx_tss_segment_16_10404 cx tss_segment_16 0 10404 NULL
136579 +disable_so_cryptd_hash_update_enqueue_fndecl_10406 cryptd_hash_update_enqueue fndecl 0 10406 NULL
136580 +disable_so_log2sharesize_adfs_discrecord_10408 log2sharesize adfs_discrecord 0 10408 NULL
136581 +disable_so_eqaddr_csio_eq_params_10412 eqaddr csio_eq_params 0 10412 NULL
136582 +disable_so_dad_probes_inet6_ifaddr_10417 dad_probes inet6_ifaddr 0 10417 NULL
136583 +disable_so_ath5k_iowrite32_fndecl_10429 ath5k_iowrite32 fndecl 2 10429 NULL
136584 +disable_so_timeout_proto_10448 timeout proto 0 10448 NULL
136585 +disable_so_recycle_rx_buf_fndecl_10456 recycle_rx_buf fndecl 3 10456 NULL
136586 +disable_so_zero_scatter_daddr_isci_request_10458 zero_scatter_daddr isci_request 0 10458 NULL nohasharray
136587 +disable_so_cryptd_hash_digest_enqueue_fndecl_10458 cryptd_hash_digest_enqueue fndecl 0 10458 &disable_so_zero_scatter_daddr_isci_request_10458
136588 +disable_so_snd_pcm_hw_rule_muldivk_fndecl_10469 snd_pcm_hw_rule_muldivk fndecl 0 10469 NULL
136589 +disable_so_nilfs_btree_assign_fndecl_10473 nilfs_btree_assign fndecl 0-3 10473 NULL
136590 +disable_so_base_addr_ce_space_unaligned_ath10k_ce_ring_10487 base_addr_ce_space_unaligned ath10k_ce_ring 0 10487 NULL
136591 +disable_so_bch_btree_map_leaf_nodes_fndecl_10499 bch_btree_map_leaf_nodes fndecl 0 10499 NULL
136592 +disable_so_periods_snd_pcm_oss_runtime_10500 periods snd_pcm_oss_runtime 0 10500 NULL
136593 +disable_so_uvc_video_clock_decode_fndecl_10502 uvc_video_clock_decode fndecl 4 10502 NULL
136594 +disable_so_t3timer_ax25_info_struct_10512 t3timer ax25_info_struct 0 10512 NULL
136595 +disable_so_sq_page_table_addr_hi_iscsi_kwqe_conn_offload1_10520 sq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 10520 NULL
136596 +disable_so_phys_addr_nx_host_sds_ring_10525 phys_addr nx_host_sds_ring 0 10525 NULL nohasharray
136597 +disable_so_current_pixclock_sis_video_info_10525 current_pixclock sis_video_info 0 10525 &disable_so_phys_addr_nx_host_sds_ring_10525
136598 +disable_so_ccp_aes_crypt_fndecl_10531 ccp_aes_crypt fndecl 0 10531 NULL
136599 +disable_so_clock_speed_MGSL_PARAMS32_10537 clock_speed MGSL_PARAMS32 0 10537 NULL
136600 +disable_so_sense_paddr_gdth_cmndinfo_10539 sense_paddr gdth_cmndinfo 0 10539 NULL
136601 +disable_so_lasttime_batadv_bla_claim_10544 lasttime batadv_bla_claim 0 10544 NULL
136602 +disable_so_tv_sec_timespec_10551 tv_sec timespec 0 10551 NULL
136603 +disable_so_cmb_tx_timer_atl1_hw_10553 cmb_tx_timer atl1_hw 0 10553 NULL nohasharray
136604 +disable_so_bm_bit_to_page_idx_fndecl_10553 bm_bit_to_page_idx fndecl 0-2 10553 &disable_so_cmb_tx_timer_atl1_hw_10553
136605 +disable_so_xfs_btree_read_buf_block_fndecl_10555 xfs_btree_read_buf_block fndecl 0 10555 NULL
136606 +disable_so_hash_dx_hash_info_10563 hash dx_hash_info 0 10563 NULL
136607 +disable_so_be16_to_cpu_n_fndecl_10566 be16_to_cpu_n fndecl 3 10566 NULL nohasharray
136608 +disable_so_ip_vs_bind_scheduler_fndecl_10566 ip_vs_bind_scheduler fndecl 0 10566 &disable_so_be16_to_cpu_n_fndecl_10566
136609 +disable_so_di_ctime_gfs2_dinode_10570 di_ctime gfs2_dinode 0 10570 NULL
136610 +disable_so_adjust_tsc_offset_kvm_x86_ops_10575 adjust_tsc_offset kvm_x86_ops 2 10575 NULL
136611 +disable_so_num_timeout_request_sock_10577 num_timeout request_sock 0 10577 NULL
136612 +disable_so___const_udelay_fndecl_10578 __const_udelay fndecl 1 10578 NULL
136613 +disable_so_wsm_ba_timeout_indication_fndecl_10580 wsm_ba_timeout_indication fndecl 0 10580 NULL
136614 +disable_so_tsc_connect_fndecl_10581 tsc_connect fndecl 0 10581 NULL
136615 +disable_so_recover_ata_timing_10582 recover ata_timing 0 10582 NULL
136616 +disable_so_addr_sch56xx_watchdog_data_10589 addr sch56xx_watchdog_data 0 10589 NULL
136617 +disable_so_phys_proc_id_cpuinfo_x86_10590 phys_proc_id cpuinfo_x86 0 10590 NULL
136618 +disable_so_gtime_signal_struct_10597 gtime signal_struct 0 10597 NULL
136619 +disable_so_clk_radeon_clock_voltage_dependency_entry_10605 clk radeon_clock_voltage_dependency_entry 0 10605 NULL
136620 +disable_so___oprofile_hrtimer_stop_fndecl_10609 __oprofile_hrtimer_stop fndecl 1 10609 NULL
136621 +disable_so_psched_get_time_fndecl_10619 psched_get_time fndecl 0 10619 NULL
136622 +disable_so_min_sleep_time_f2fs_gc_kthread_10623 min_sleep_time f2fs_gc_kthread 0 10623 NULL
136623 +disable_so_runtime_cfs_bandwidth_10624 runtime cfs_bandwidth 0 10624 NULL
136624 +disable_so_parse_timing_property_fndecl_10626 parse_timing_property fndecl 0 10626 NULL
136625 +disable_so_scan_bitmap_block_fndecl_10627 scan_bitmap_block fndecl 0-2-4-6 10627 NULL
136626 +disable_so_e1000e_pm_runtime_resume_fndecl_10638 e1000e_pm_runtime_resume fndecl 0 10638 NULL
136627 +disable_so_spi_nor_read_dummy_cycles_fndecl_10639 spi_nor_read_dummy_cycles fndecl 0 10639 NULL nohasharray
136628 +disable_so_sha_finish_walk_fndecl_10639 sha_finish_walk fndecl 0 10639 &disable_so_spi_nor_read_dummy_cycles_fndecl_10639
136629 +disable_so_address_gsm_mux_10640 address gsm_mux 0 10640 NULL
136630 +disable_so__rtl92ee_phy_calculate_bit_shift_fndecl_10643 _rtl92ee_phy_calculate_bit_shift fndecl 0-1 10643 NULL
136631 +disable_so_lasttime_batadv_bla_backbone_gw_10651 lasttime batadv_bla_backbone_gw 0 10651 NULL
136632 +disable_so_addr___crb_10654 addr __crb 0 10654 NULL
136633 +disable_so_stv0297_set_tv_freq_fndecl_10665 stv0297_set_tv_freq fndecl 2 10665 NULL
136634 +disable_so_txlo_dma_addr_typhoon_10667 txlo_dma_addr typhoon 0 10667 NULL
136635 +disable_so_ip_vs_dh_hashkey_fndecl_10670 ip_vs_dh_hashkey fndecl 1 10670 NULL
136636 +disable_so_setup_clocks_ufs_hba_variant_ops_10681 setup_clocks ufs_hba_variant_ops 0 10681 NULL
136637 +disable_so_decode_attr_time_access_fndecl_10682 decode_attr_time_access fndecl 0 10682 NULL
136638 +disable_so_pci_back_from_sleep_fndecl_10685 pci_back_from_sleep fndecl 0 10685 NULL
136639 +disable_so_ath9k_hw_init_macaddr_fndecl_10686 ath9k_hw_init_macaddr fndecl 0 10686 NULL nohasharray
136640 +disable_so_dma_buffer_atmel_runtime_data_10686 dma_buffer atmel_runtime_data 0 10686 &disable_so_ath9k_hw_init_macaddr_fndecl_10686
136641 +disable_so_timer_resolution_snd_pcm_runtime_10688 timer_resolution snd_pcm_runtime 0 10688 NULL
136642 +disable_so_snd_pcm_hw_rule_mul_fndecl_10689 snd_pcm_hw_rule_mul fndecl 0 10689 NULL
136643 +disable_so_subdivision_snd_pcm_oss_runtime_10697 subdivision snd_pcm_oss_runtime 0 10697 NULL
136644 +disable_so_split_huge_page_address_fndecl_10699 split_huge_page_address fndecl 2 10699 NULL
136645 +disable_so_bound_dev_if_rdma_dev_addr_10707 bound_dev_if rdma_dev_addr 0 10707 NULL
136646 +disable_so_gyro_3d_adjust_channel_bit_mask_fndecl_10717 gyro_3d_adjust_channel_bit_mask fndecl 3 10717 NULL
136647 +disable_so_ahash_prepare_alg_fndecl_10721 ahash_prepare_alg fndecl 0 10721 NULL
136648 +disable_so_st_mtime_sec_p9_stat_dotl_10725 st_mtime_sec p9_stat_dotl 0 10725 NULL
136649 +disable_so_num_timings_display_timings_10728 num_timings display_timings 0 10728 NULL
136650 +disable_so_clock_rq_10733 clock rq 0 10733 NULL
136651 +disable_so_sys_signalfd_fndecl_10740 sys_signalfd fndecl 0 10740 NULL
136652 +disable_so_last_tick_time_esas2r_adapter_10742 last_tick_time esas2r_adapter 0 10742 NULL
136653 +disable_so_low_addr_msgbuf_buf_addr_10746 low_addr msgbuf_buf_addr 0 10746 NULL
136654 +disable_so_mlx4_ib_invalidate_all_guid_record_fndecl_10755 mlx4_ib_invalidate_all_guid_record fndecl 2 10755 NULL
136655 +disable_so_crypto_gcm_verify_fndecl_10762 crypto_gcm_verify fndecl 0 10762 NULL
136656 +disable_so_devt_from_partuuid_fndecl_10763 devt_from_partuuid fndecl 0 10763 NULL nohasharray
136657 +disable_so_demod_address_or51132_config_10763 demod_address or51132_config 0 10763 &disable_so_devt_from_partuuid_fndecl_10763
136658 +disable_so_rv770_program_interrupt_vectors_fndecl_10768 rv770_program_interrupt_vectors fndecl 0 10768 NULL
136659 +disable_so_i915_mutex_lock_interruptible_fndecl_10777 i915_mutex_lock_interruptible fndecl 0 10777 NULL
136660 +disable_so_addr_il3945_tfd_tb_10790 addr il3945_tfd_tb 0 10790 NULL
136661 +disable_so_pr_gid_elf_prpsinfo_10803 pr_gid elf_prpsinfo 0 10803 NULL
136662 +disable_so_ism2_runtime_sc_10805 ism2 runtime_sc 0 10805 NULL
136663 +disable_so_sumo_get_sleep_divider_id_from_clock_fndecl_10823 sumo_get_sleep_divider_id_from_clock fndecl 2-0 10823 NULL nohasharray
136664 +disable_so_consumer_index_phys_addr_lo_megasas_init_queue_info_10823 consumer_index_phys_addr_lo megasas_init_queue_info 0 10823 &disable_so_sumo_get_sleep_divider_id_from_clock_fndecl_10823
136665 +disable_so__mv88e6xxx_reg_write_fndecl_10825 _mv88e6xxx_reg_write fndecl 0-2-3-4 10825 NULL
136666 +disable_so_flush_timeout_ath_chanctx_10828 flush_timeout ath_chanctx 0 10828 NULL nohasharray
136667 +disable_so_rxaddr_starfire_rx_desc_10828 rxaddr starfire_rx_desc 0 10828 &disable_so_flush_timeout_ath_chanctx_10828 nohasharray
136668 +disable_so_nla_get_u64_fndecl_10828 nla_get_u64 fndecl 0 10828 &disable_so_rxaddr_starfire_rx_desc_10828
136669 +disable_so_r600_get_gpu_clock_counter_fndecl_10836 r600_get_gpu_clock_counter fndecl 0 10836 NULL
136670 +disable_so_sys_timer_settime_fndecl_10837 sys_timer_settime fndecl 1 10837 NULL
136671 +disable_so_cmp_next_hrtimer_event_fndecl_10846 cmp_next_hrtimer_event fndecl 0-1-2 10846 NULL
136672 +disable_so_ac97_clock_via82xx_10850 ac97_clock via82xx 0 10850 NULL
136673 +disable_so_ageing_timer_value___fdb_entry_10853 ageing_timer_value __fdb_entry 0 10853 NULL
136674 +disable_so_dv_timings_cap_v4l2_subdev_pad_ops_10860 dv_timings_cap v4l2_subdev_pad_ops 0 10860 NULL
136675 +disable_so_cpufreq_get_global_kobject_fndecl_10881 cpufreq_get_global_kobject fndecl 0 10881 NULL
136676 +disable_so_freq_ath5k_rate_pcal_info_10883 freq ath5k_rate_pcal_info 0 10883 NULL
136677 +disable_so_shm_ctime_shmid64_ds_10884 shm_ctime shmid64_ds 0 10884 NULL nohasharray
136678 +disable_so_mt2050_set_if_freq_fndecl_10884 mt2050_set_if_freq fndecl 2 10884 &disable_so_shm_ctime_shmid64_ds_10884
136679 +disable_so_d_itimer_xfs_disk_dquot_10893 d_itimer xfs_disk_dquot 0 10893 NULL nohasharray
136680 +disable_so_saddr_irda_sock_10893 saddr irda_sock 0 10893 &disable_so_d_itimer_xfs_disk_dquot_10893
136681 +disable_so_doorbell_preserve_vardecl_pcc_cpufreq_c_10898 doorbell_preserve vardecl_pcc-cpufreq.c 0 10898 NULL
136682 +disable_so_signal_nr_nvkm_perfdom_10899 signal_nr nvkm_perfdom 0 10899 NULL
136683 +disable_so_cg_spll_func_cntl_2_ni_clock_registers_10900 cg_spll_func_cntl_2 ni_clock_registers 0 10900 NULL
136684 +disable_so_ac_utime_acct_v3_10901 ac_utime acct_v3 0 10901 NULL
136685 +disable_so_mclk_prediv_cs42l56_private_10907 mclk_prediv cs42l56_private 0 10907 NULL
136686 +disable_so_SYSC_mq_timedreceive_fndecl_10921 SYSC_mq_timedreceive fndecl 1-3 10921 NULL
136687 +disable_so_vpm_write_address_fndecl_10930 vpm_write_address fndecl 2 10930 NULL
136688 +disable_so_i_iw_freq_10939 i iw_freq 0 10939 NULL nohasharray
136689 +disable_so_ia32_tsc_adjust_msr_kvm_vcpu_arch_10939 ia32_tsc_adjust_msr kvm_vcpu_arch 0 10939 &disable_so_i_iw_freq_10939
136690 +disable_so_rv3029c2_i2c_read_time_fndecl_10942 rv3029c2_i2c_read_time fndecl 0 10942 NULL nohasharray
136691 +disable_so_txok_interrupt_mask_ath_hw_10942 txok_interrupt_mask ath_hw 0 10942 &disable_so_rv3029c2_i2c_read_time_fndecl_10942
136692 +disable_so_err_time_ip6_tnl_10945 err_time ip6_tnl 0 10945 NULL
136693 +disable_so_free_nodes_hfs_btree_10954 free_nodes hfs_btree 0 10954 NULL
136694 +disable_so_dwell_time_delta_per_probe_conf_sched_scan_settings_10955 dwell_time_delta_per_probe conf_sched_scan_settings 0 10955 NULL
136695 +disable_so_blkcipher_walk_virt_block_fndecl_10958 blkcipher_walk_virt_block fndecl 0-3 10958 NULL
136696 +disable_so_bnx2x_change_mac_addr_fndecl_10964 bnx2x_change_mac_addr fndecl 0 10964 NULL
136697 +disable_so_sh_tmu_clocksource_enable_fndecl_10968 sh_tmu_clocksource_enable fndecl 0 10968 NULL
136698 +disable_so_pdiv_b43_phy_lp_10974 pdiv b43_phy_lp 0 10974 NULL
136699 +disable_so_br2684_mac_addr_fndecl_10977 br2684_mac_addr fndecl 0 10977 NULL
136700 +disable_so___hrtimer_init_fndecl_10979 __hrtimer_init fndecl 2 10979 NULL
136701 +disable_so_cisco_timer_fndecl_10984 cisco_timer fndecl 1 10984 NULL
136702 +disable_so_desc_address_fndecl_10998 desc_address fndecl 2-3 10998 NULL
136703 +disable_so_padlock_sha256_update_nano_fndecl_11008 padlock_sha256_update_nano fndecl 3 11008 NULL
136704 +disable_so_end_addr_gen_pool_chunk_11013 end_addr gen_pool_chunk 0 11013 NULL
136705 +disable_so_bitmap_file_set_bit_fndecl_11015 bitmap_file_set_bit fndecl 2 11015 NULL
136706 +disable_so_em28xx_write_reg_fndecl_11020 em28xx_write_reg fndecl 2-0-3 11020 NULL
136707 +disable_so_ocfs2_info_freefrag_scan_bitmap_fndecl_11032 ocfs2_info_freefrag_scan_bitmap fndecl 0-3 11032 NULL
136708 +disable_so_xen_teardown_timer_fndecl_11036 xen_teardown_timer fndecl 1 11036 NULL
136709 +disable_so_get_physaddr_fm_api_fndecl_11037 get_physaddr_fm_api fndecl 0 11037 NULL
136710 +disable_so_nfs_direct_read_schedule_iovec_fndecl_11039 nfs_direct_read_schedule_iovec fndecl 0-3 11039 NULL
136711 +disable_so_ocfs2_group_bitmap_size_fndecl_11043 ocfs2_group_bitmap_size fndecl 0 11043 NULL
136712 +disable_so_hsw_pcm_runtime_suspend_fndecl_11046 hsw_pcm_runtime_suspend fndecl 0 11046 NULL
136713 +disable_so_bi_start_gfs2_bitmap_11049 bi_start gfs2_bitmap 0 11049 NULL
136714 +disable_so_src_addr_hi_dmae_command_11052 src_addr_hi dmae_command 0 11052 NULL
136715 +disable_so_lsb_bna_dma_addr_11059 lsb bna_dma_addr 0 11059 NULL
136716 +disable_so_cb_s5p_jpeg_addr_11062 cb s5p_jpeg_addr 0 11062 NULL
136717 +disable_so_plink_timeout_sta_info_11094 plink_timeout sta_info 0 11094 NULL
136718 +disable_so_crypto_blkcipher_set_iv_fndecl_11098 crypto_blkcipher_set_iv fndecl 3 11098 NULL
136719 +disable_so_custom_divisor_mxser_port_11109 custom_divisor mxser_port 0 11109 NULL
136720 +disable_so_raw_cell_paddr_idt77252_dev_11112 raw_cell_paddr idt77252_dev 0 11112 NULL
136721 +disable_so_acpi_lpss_runtime_suspend_fndecl_11116 acpi_lpss_runtime_suspend fndecl 0 11116 NULL nohasharray
136722 +disable_so_addr_creg_cmd_11116 addr creg_cmd 0 11116 &disable_so_acpi_lpss_runtime_suspend_fndecl_11116
136723 +disable_so_dev_type_rdma_dev_addr_11123 dev_type rdma_dev_addr 0 11123 NULL
136724 +disable_so_signal_hermes_rx_descriptor_11147 signal hermes_rx_descriptor 0 11147 NULL
136725 +disable_so_phys_addr_nx_host_rds_ring_11168 phys_addr nx_host_rds_ring 0 11168 NULL
136726 +disable_so_addr1_de_desc_11170 addr1 de_desc 0 11170 NULL nohasharray
136727 +disable_so_ci_populate_mc_reg_addresses_fndecl_11170 ci_populate_mc_reg_addresses fndecl 0 11170 &disable_so_addr1_de_desc_11170
136728 +disable_so_addr__ioeventfd_11180 addr _ioeventfd 0 11180 NULL
136729 +disable_so_vx_change_frequency_fndecl_11184 vx_change_frequency fndecl 0 11184 NULL
136730 +disable_so_unbind_from_irq_fndecl_11196 unbind_from_irq fndecl 1 11196 NULL
136731 +disable_so_wext_cipher2level_fndecl_11197 wext_cipher2level fndecl 1 11197 NULL
136732 +disable_so_demod_address_cx24117_priv_11199 demod_address cx24117_priv 0 11199 NULL
136733 +disable_so_local_pkt_addr_dle_11206 local_pkt_addr dle 0 11206 NULL
136734 +disable_so_timewarn_cs_write_fndecl_11208 timewarn_cs_write fndecl 3-0 11208 NULL nohasharray
136735 +disable_so_prescale__pll_div_11208 prescale _pll_div 0 11208 &disable_so_timewarn_cs_write_fndecl_11208
136736 +disable_so_i2400m_read_mac_addr_fndecl_11209 i2400m_read_mac_addr fndecl 0 11209 NULL
136737 +disable_so__drbd_bm_find_next_zero_fndecl_11228 _drbd_bm_find_next_zero fndecl 0-2 11228 NULL
136738 +disable_so_printfbuf_aac_init_11236 printfbuf aac_init 0 11236 NULL nohasharray
136739 +disable_so_crypto_ablkcipher_ctxsize_fndecl_11236 crypto_ablkcipher_ctxsize fndecl 0 11236 &disable_so_printfbuf_aac_init_11236
136740 +disable_so_k__pll_div_11239 k _pll_div 0 11239 NULL
136741 +disable_so_qdiv_ratio_skl_wrpll_params_11242 qdiv_ratio skl_wrpll_params 0 11242 NULL
136742 +disable_so_dma_addr___vxge_hw_fifo_txdl_priv_11244 dma_addr __vxge_hw_fifo_txdl_priv 0 11244 NULL
136743 +disable_so_urandom_read_fndecl_11245 urandom_read fndecl 0-3 11245 NULL
136744 +disable_so_crypto_notify_fndecl_11249 crypto_notify fndecl 1 11249 NULL
136745 +disable_so_sd_gid_stat_data_v1_11250 sd_gid stat_data_v1 0 11250 NULL
136746 +disable_so_xlog_find_cycle_start_fndecl_11263 xlog_find_cycle_start fndecl 0-3 11263 NULL
136747 +disable_so_unbind_from_irqhandler_fndecl_11274 unbind_from_irqhandler fndecl 1 11274 NULL
136748 +disable_so_ref_divider_panel_info_11279 ref_divider panel_info 0 11279 NULL nohasharray
136749 +disable_so_nfs_wait_bit_killable_fndecl_11279 nfs_wait_bit_killable fndecl 0 11279 &disable_so_ref_divider_panel_info_11279
136750 +disable_so_freq_p54_scan_head_11280 freq p54_scan_head 0 11280 NULL
136751 +disable_so_it_overrun_k_itimer_11284 it_overrun k_itimer 0 11284 NULL
136752 +disable_so_txbd_addr_lo_host_cmd_ds_pcie_details_11288 txbd_addr_lo host_cmd_ds_pcie_details 0 11288 NULL
136753 +disable_so_calc_baud_divisor_fndecl_11290 calc_baud_divisor fndecl 0-1 11290 NULL
136754 +disable_so_hash_net6_expire_fndecl_11296 hash_net6_expire fndecl 4 11296 NULL
136755 +disable_so_ax25_addr_build_fndecl_11299 ax25_addr_build fndecl 0 11299 NULL
136756 +disable_so_vnic_dev_del_addr_fndecl_11303 vnic_dev_del_addr fndecl 0 11303 NULL
136757 +disable_so_wrmsrl_safe_fndecl_11305 wrmsrl_safe fndecl 0-2 11305 NULL
136758 +disable_so_jiffies_last_vardecl_intel_powerclamp_c_11307 jiffies_last vardecl_intel_powerclamp.c 0 11307 NULL
136759 +disable_so_mmc_select_timing_fndecl_11311 mmc_select_timing fndecl 0 11311 NULL
136760 +disable_so_crypto_cbc_encrypt_inplace_fndecl_11315 crypto_cbc_encrypt_inplace fndecl 0 11315 NULL
136761 +disable_so_cma_translate_addr_fndecl_11326 cma_translate_addr fndecl 0 11326 NULL
136762 +disable_so_period_bytes_snd_pcm_oss_runtime_11332 period_bytes snd_pcm_oss_runtime 0 11332 NULL
136763 +disable_so_board_addr_ath6kl_hw_11334 board_addr ath6kl_hw 0 11334 NULL
136764 +disable_so_shash_ahash_mcryptd_digest_fndecl_11335 shash_ahash_mcryptd_digest fndecl 0 11335 NULL
136765 +disable_so_crypto_gcm_encrypt_fndecl_11338 crypto_gcm_encrypt fndecl 0 11338 NULL
136766 +disable_so_btrfs_wq_run_delayed_node_fndecl_11342 btrfs_wq_run_delayed_node fndecl 0 11342 NULL
136767 +disable_so_pch_udc_ep_bit_clr_fndecl_11345 pch_udc_ep_bit_clr fndecl 3 11345 NULL nohasharray
136768 +enable_so_rcv_tsecr_tcp_options_received_11345 rcv_tsecr tcp_options_received 0 11345 &disable_so_pch_udc_ep_bit_clr_fndecl_11345
136769 +disable_so_bin_uuid_fndecl_11348 bin_uuid fndecl 3-0 11348 NULL
136770 +disable_so_offset_to_bitmap_fndecl_11359 offset_to_bitmap fndecl 0-2 11359 NULL
136771 +disable_so_default_tv_freq_vardecl_pvrusb2_hdw_c_11362 default_tv_freq vardecl_pvrusb2-hdw.c 0 11362 NULL
136772 +disable_so_SiS_SetReg_fndecl_11366 SiS_SetReg fndecl 1-3 11366 NULL
136773 +disable_so_sec_btrfs_ioctl_timespec_11375 sec btrfs_ioctl_timespec 0 11375 NULL
136774 +disable_so_dn_nl_newaddr_fndecl_11380 dn_nl_newaddr fndecl 0 11380 NULL
136775 +disable_so_DAC1064_calcclock_fndecl_11385 DAC1064_calcclock fndecl 1-2 11385 NULL
136776 +disable_so_trinity_set_divider_value_fndecl_11387 trinity_set_divider_value fndecl 3 11387 NULL
136777 +disable_so_ac_utime_taskstats_11391 ac_utime taskstats 0 11391 NULL nohasharray
136778 +disable_so_zd_iowrite32_locked_fndecl_11391 zd_iowrite32_locked fndecl 0-2 11391 &disable_so_ac_utime_taskstats_11391
136779 +disable_so_crypto_rfc4309_setkey_fndecl_11398 crypto_rfc4309_setkey fndecl 0-3 11398 NULL
136780 +disable_so_lvb_igid_ocfs2_meta_lvb_11400 lvb_igid ocfs2_meta_lvb 0 11400 NULL nohasharray
136781 +disable_so_buffer_list_dma_addr_mgsl_struct_11400 buffer_list_dma_addr mgsl_struct 0 11400 &disable_so_lvb_igid_ocfs2_meta_lvb_11400
136782 +disable_so_si_pmu_fast_pwrup_delay_fndecl_11409 si_pmu_fast_pwrup_delay fndecl 0 11409 NULL
136783 +disable_so_tps6586x_rtc_read_time_fndecl_11415 tps6586x_rtc_read_time fndecl 0 11415 NULL
136784 +disable_so_hash_rem_ccp_sha_req_ctx_11427 hash_rem ccp_sha_req_ctx 0 11427 NULL
136785 +disable_so_phys_addr_udc_11429 phys_addr udc 0 11429 NULL
136786 +disable_so_center_freq2_cfg80211_chan_def_11433 center_freq2 cfg80211_chan_def 0 11433 NULL
136787 +disable_so_lock_btree_op_11443 lock btree_op 0 11443 NULL
136788 +disable_so_freq_mt7601u_freq_cal_11461 freq mt7601u_freq_cal 0 11461 NULL
136789 +disable_so_pm860x_reg_write_fndecl_11462 pm860x_reg_write fndecl 0-2-3 11462 NULL
136790 +disable_so_crypto_hash_walk_first_fndecl_11464 crypto_hash_walk_first fndecl 0 11464 NULL
136791 +disable_so_mlx4_ib_init_alias_guid_work_fndecl_11465 mlx4_ib_init_alias_guid_work fndecl 2 11465 NULL
136792 +disable_so_uid_fuse_attr_11471 uid fuse_attr 0 11471 NULL nohasharray
136793 +disable_so_l2addrsize_fndecl_11471 l2addrsize fndecl 0 11471 &disable_so_uid_fuse_attr_11471
136794 +disable_so_snprintf_fndecl_11478 snprintf fndecl 0-2 11478 NULL
136795 +disable_so_ath9k_hw_set_ack_timeout_fndecl_11491 ath9k_hw_set_ack_timeout fndecl 2 11491 NULL
136796 +disable_so_eq_delay_to_mult_fndecl_11493 eq_delay_to_mult fndecl 0-1 11493 NULL
136797 +disable_so_bit_length_acpi_object_field_common_11503 bit_length acpi_object_field_common 0 11503 NULL
136798 +disable_so_di_mtime_qnx6_inode_entry_11506 di_mtime qnx6_inode_entry 0 11506 NULL
136799 +disable_so_prism54_set_freq_fndecl_11509 prism54_set_freq fndecl 0 11509 NULL
136800 +disable_so_resp_bd_list_addr_lo_bnx2i_text_request_11511 resp_bd_list_addr_lo bnx2i_text_request 0 11511 NULL
136801 +disable_so_gid_ipc64_perm_11519 gid ipc64_perm 0 11519 NULL
136802 +disable_so_offset_delta_bnx2x_func_set_timesync_params_11542 offset_delta bnx2x_func_set_timesync_params 0 11542 NULL
136803 +disable_so_local_clock_us_fndecl_11549 local_clock_us fndecl 0 11549 NULL
136804 +disable_so_seq_tnl_ptk_info_11554 seq tnl_ptk_info 0 11554 NULL
136805 +disable_so_carl9170_set_freq_cal_data_fndecl_11578 carl9170_set_freq_cal_data fndecl 0 11578 NULL
136806 +disable_so_pmcraid_enable_interrupts_fndecl_11580 pmcraid_enable_interrupts fndecl 2 11580 NULL nohasharray
136807 +disable_so_get_free_region_mtrr_ops_11580 get_free_region mtrr_ops 1-2 11580 &disable_so_pmcraid_enable_interrupts_fndecl_11580
136808 +disable_so_mclkdiv2_cs42l52_clk_para_11588 mclkdiv2 cs42l52_clk_para 0 11588 NULL
136809 +disable_so_secid_netlbl_unlhsh_addr6_11595 secid netlbl_unlhsh_addr6 0 11595 NULL
136810 +disable_so_opaque_hashval_fndecl_11605 opaque_hashval fndecl 2 11605 NULL
136811 +disable_so_bcma_chipco_watchdog_get_max_timer_fndecl_11606 bcma_chipco_watchdog_get_max_timer fndecl 0 11606 NULL
136812 +disable_so_security_settime_fndecl_11608 security_settime fndecl 0 11608 NULL
136813 +disable_so_hash_tomoyo_path_info_11611 hash tomoyo_path_info 0 11611 NULL
136814 +disable_so_sllc_family_sockaddr_llc_11612 sllc_family sockaddr_llc 0 11612 NULL
136815 +disable_so_get_physaddr_from_sgc_fndecl_11613 get_physaddr_from_sgc fndecl 0 11613 NULL
136816 +disable_so_compat_sock_get_timestampns_fndecl_11614 compat_sock_get_timestampns fndecl 0 11614 NULL
136817 +disable_so_div2_pll_div_11630 div2 pll_div 0 11630 NULL
136818 +disable_so_dot_gma_clock_t_11632 dot gma_clock_t 0 11632 NULL
136819 +disable_so_addr_smsc47b397_data_11633 addr smsc47b397_data 0 11633 NULL nohasharray
136820 +disable_so_cpufreq_power2state_fndecl_11633 cpufreq_power2state fndecl 3 11633 &disable_so_addr_smsc47b397_data_11633 nohasharray
136821 +disable_so_cia_setkey_cipher_alg_11633 cia_setkey cipher_alg 0-3 11633 &disable_so_cpufreq_power2state_fndecl_11633
136822 +disable_so_log2P_nvkm_pll_vals_11639 log2P nvkm_pll_vals 0 11639 NULL
136823 +disable_so_timeout_tipc_subscription_11656 timeout tipc_subscription 0 11656 NULL
136824 +disable_so_sem_addr_mm_dma_desc_11658 sem_addr mm_dma_desc 0 11658 NULL
136825 +disable_so_adis16334_get_freq_fndecl_11667 adis16334_get_freq fndecl 0 11667 NULL
136826 +disable_so_register_address_dif_settings_11668 register_address dif_settings 0 11668 NULL
136827 +disable_so_cpufreq_p4_get_frequency_fndecl_11672 cpufreq_p4_get_frequency fndecl 0 11672 NULL
136828 +disable_so_sysctl_tcp_keepalive_time_vardecl_11678 sysctl_tcp_keepalive_time vardecl 0 11678 NULL nohasharray
136829 +disable_so_paddr_rsq_info_11678 paddr rsq_info 0 11678 &disable_so_sysctl_tcp_keepalive_time_vardecl_11678
136830 +disable_so_gc_timer_show_fndecl_11691 gc_timer_show fndecl 0 11691 NULL
136831 +disable_so_udp6_portaddr_hash_fndecl_11698 udp6_portaddr_hash fndecl 0-3 11698 NULL
136832 +disable_so_ablkcipher_walk_done_fndecl_11708 ablkcipher_walk_done fndecl 0-3 11708 NULL
136833 +disable_so_ahci_exec_polled_cmd_fndecl_11713 ahci_exec_polled_cmd fndecl 6-2-5 11713 NULL
136834 +disable_so_fb_addr_drm_via_dmablit_11717 fb_addr drm_via_dmablit 0 11717 NULL
136835 +disable_so_pci_bus_cx23885_dev_11720 pci_bus cx23885_dev 0 11720 NULL
136836 +disable_so_spacing_v4l2_hw_freq_seek_11726 spacing v4l2_hw_freq_seek 0 11726 NULL
136837 +disable_so_ncp_obtain_mtime_fndecl_11732 ncp_obtain_mtime fndecl 0 11732 NULL
136838 +disable_so_timer_index_at_state_t_11751 timer_index at_state_t 0 11751 NULL nohasharray
136839 +disable_so_sctp_copy_laddrs_fndecl_11751 sctp_copy_laddrs fndecl 2-4 11751 &disable_so_timer_index_at_state_t_11751
136840 +disable_so_max_freq_omap_hsmmc_platform_data_11755 max_freq omap_hsmmc_platform_data 0 11755 NULL nohasharray
136841 +disable_so_tcp_md5_do_add_fndecl_11755 tcp_md5_do_add fndecl 5-6 11755 &disable_so_max_freq_omap_hsmmc_platform_data_11755
136842 +disable_so_iio_interrupt_trigger_driver_init_fndecl_11758 iio_interrupt_trigger_driver_init fndecl 0 11758 NULL nohasharray
136843 +disable_so_iwl_dbgfs_sleep_level_override_write_fndecl_11758 iwl_dbgfs_sleep_level_override_write fndecl 0-3 11758 &disable_so_iio_interrupt_trigger_driver_init_fndecl_11758
136844 +disable_so_ps_upsd_timeouts_read_fndecl_11759 ps_upsd_timeouts_read fndecl 3-0 11759 NULL nohasharray
136845 +disable_so_bus_frequency_vardecl_i2c_kempld_c_11759 bus_frequency vardecl_i2c-kempld.c 0 11759 &disable_so_ps_upsd_timeouts_read_fndecl_11759
136846 +disable_so_nm_uid_nl_mmap_hdr_11761 nm_uid nl_mmap_hdr 0 11761 NULL
136847 +disable_so_s_wtime_ext3_super_block_11765 s_wtime ext3_super_block 0 11765 NULL
136848 +disable_so_gr_fhash_fndecl_11768 gr_fhash fndecl 1-2 11768 NULL
136849 +disable_so_orig_ax_pt_regs_11775 orig_ax pt_regs 0 11775 NULL
136850 +disable_so_validate_scan_freqs_fndecl_11781 validate_scan_freqs fndecl 0 11781 NULL
136851 +disable_so_sbq_addr_cqicb_11782 sbq_addr cqicb 0 11782 NULL nohasharray
136852 +disable_so_irq_i2c_client_11782 irq i2c_client 0 11782 &disable_so_sbq_addr_cqicb_11782
136853 +disable_so_ip_addr_rocker_neigh_tbl_entry_11785 ip_addr rocker_neigh_tbl_entry 0 11785 NULL
136854 +disable_so_timestamp_mwifiex_bssdescriptor_11788 timestamp mwifiex_bssdescriptor 0 11788 NULL
136855 +disable_so_bg_block_bitmap_ext3_group_desc_11791 bg_block_bitmap ext3_group_desc 0 11791 NULL
136856 +disable_so_crystal_freq_saa711x_state_11797 crystal_freq saa711x_state 0 11797 NULL
136857 +disable_so_dqb_itime_mem_dqblk_11799 dqb_itime mem_dqblk 0 11799 NULL nohasharray
136858 +disable_so_get_journal_hash_dev_fndecl_11799 get_journal_hash_dev fndecl 3 11799 &disable_so_dqb_itime_mem_dqblk_11799
136859 +disable_so_addr_domain_fndecl_11807 addr_domain fndecl 2 11807 NULL
136860 +disable_so_get_time_window_fndecl_11808 get_time_window fndecl 0 11808 NULL
136861 +disable_so_chargetime_isdn_net_local_s_11812 chargetime isdn_net_local_s 0 11812 NULL
136862 +disable_so_sched_clock_local_fndecl_11817 sched_clock_local fndecl 0 11817 NULL
136863 +disable_so_address_ehci_iso_stream_11822 address ehci_iso_stream 0 11822 NULL
136864 +disable_so_simple_strtoul_fndecl_11835 simple_strtoul fndecl 0 11835 NULL
136865 +disable_so_i9xx_get_aux_clock_divider_fndecl_11841 i9xx_get_aux_clock_divider fndecl 0 11841 NULL
136866 +disable_so_emulator_set_msr_fndecl_11853 emulator_set_msr fndecl 3 11853 NULL
136867 +disable_so_sst_module_runtime_alloc_blocks_fndecl_11854 sst_module_runtime_alloc_blocks fndecl 2-0 11854 NULL
136868 +disable_so_msr_sum_desc_11862 msr sum_desc 0 11862 NULL
136869 +disable_so_rs780_set_engine_clock_scaling_fndecl_11864 rs780_set_engine_clock_scaling fndecl 0 11864 NULL
136870 +disable_so_write_file_regidx_fndecl_11870 write_file_regidx fndecl 3 11870 NULL
136871 +disable_so_task_sched_runtime_fndecl_11884 task_sched_runtime fndecl 0 11884 NULL
136872 +disable_so_hash_dst_fndecl_11898 hash_dst fndecl 0 11898 NULL
136873 +disable_so_xtal_cap10p_r820t_freq_range_11904 xtal_cap10p r820t_freq_range 0 11904 NULL
136874 +disable_so_ath6kl_cfg80211_deepsleep_resume_fndecl_11915 ath6kl_cfg80211_deepsleep_resume fndecl 0 11915 NULL
136875 +disable_so_count_qce_sha_reqctx_11921 count qce_sha_reqctx 0 11921 NULL
136876 +disable_so_hashlimit_mt_init_fndecl_11925 hashlimit_mt_init fndecl 0 11925 NULL
136877 +disable_so_time_remaining_msec_TAG_TW_Lock_11931 time_remaining_msec TAG_TW_Lock 0 11931 NULL
136878 +disable_so_extcpu_mce_11945 extcpu mce 0 11945 NULL
136879 +disable_so_hci_bdaddr_list_add_fndecl_11954 hci_bdaddr_list_add fndecl 0 11954 NULL
136880 +disable_so_task_list_pbl_addr_hi_fcoe_kwqe_init1_11965 task_list_pbl_addr_hi fcoe_kwqe_init1 0 11965 NULL
136881 +disable_so_time_blocked_kvm_spinlock_stats_11970 time_blocked kvm_spinlock_stats 0 11970 NULL
136882 +disable_so_mapaddr_c2_element_11974 mapaddr c2_element 0 11974 NULL
136883 +disable_so_uwb_rc_mac_addr_show_fndecl_11979 uwb_rc_mac_addr_show fndecl 0 11979 NULL
136884 +disable_so_ccp_run_rsa_cmd_fndecl_11983 ccp_run_rsa_cmd fndecl 0 11983 NULL
136885 +disable_so_cc770_rtr_interrupt_fndecl_11989 cc770_rtr_interrupt fndecl 2 11989 NULL
136886 +disable_so_bitmap_create_fndecl_12000 bitmap_create fndecl 2 12000 NULL
136887 +disable_so_maximum_acpi_address64_attribute_12007 maximum acpi_address64_attribute 0 12007 NULL
136888 +disable_so_i2c_addr_stv090x_internal_12008 i2c_addr stv090x_internal 0 12008 NULL
136889 +disable_so_s_time_ptc_stats_12018 s_time ptc_stats 0 12018 NULL
136890 +disable_so_disc_timeout_hci_conn_12021 disc_timeout hci_conn 0 12021 NULL
136891 +disable_so_proc_dointvec_jiffies_fndecl_12024 proc_dointvec_jiffies fndecl 0 12024 NULL
136892 +disable_so_wm8350_wdt_set_timeout_fndecl_12039 wm8350_wdt_set_timeout fndecl 2-0 12039 NULL
136893 +disable_so_sys_geteuid16_fndecl_12045 sys_geteuid16 fndecl 0 12045 NULL
136894 +disable_so_parse_strtoull_fndecl_12065 parse_strtoull fndecl 0 12065 NULL
136895 +disable_so_bp_index_nilfs_btree_path_12067 bp_index nilfs_btree_path 0 12067 NULL
136896 +disable_so_max_signal_ieee80211_hw_12078 max_signal ieee80211_hw 0 12078 NULL
136897 +disable_so_rx_timeout_vardecl_men_z135_uart_c_12080 rx_timeout vardecl_men_z135_uart.c 0 12080 NULL
136898 +disable_so_sws_timer_config_nes_adapter_12081 sws_timer_config nes_adapter 0 12081 NULL
136899 +disable_so_ic_myaddr_vardecl_12088 ic_myaddr vardecl 0 12088 NULL
136900 +disable_so_bitmap_ord_to_pos_fndecl_12108 bitmap_ord_to_pos fndecl 3-0 12108 NULL
136901 +disable_so_debounce_jiffies_lp8727_chg_12115 debounce_jiffies lp8727_chg 0 12115 NULL
136902 +disable_so_hashval1_2_rx_pkt_hdr1_12125 hashval1_2 rx_pkt_hdr1 0 12125 NULL
136903 +disable_so_acpi_ut_divide_fndecl_12126 acpi_ut_divide fndecl 0-1-2 12126 NULL
136904 +disable_so_irst_store_wakeup_time_fndecl_12127 irst_store_wakeup_time fndecl 0-4 12127 NULL
136905 +disable_so_xfs_bmap_btree_to_extents_fndecl_12130 xfs_bmap_btree_to_extents fndecl 0 12130 NULL
136906 +disable_so_addrconf_notify_fndecl_12132 addrconf_notify fndecl 0 12132 NULL
136907 +disable_so_ath5k_beacon_update_timers_fndecl_12135 ath5k_beacon_update_timers fndecl 2 12135 NULL
136908 +disable_so_pid_pppol2tpv3in6_addr_12136 pid pppol2tpv3in6_addr 0 12136 NULL
136909 +disable_so__abb5zes3_rtc_set_timer_fndecl_12149 _abb5zes3_rtc_set_timer fndecl 0 12149 NULL
136910 +disable_so_remote_ca_guid_ib_cm_req_event_param_12150 remote_ca_guid ib_cm_req_event_param 0 12150 NULL
136911 +disable_so_grcan_reset_timer_fndecl_12158 grcan_reset_timer fndecl 2 12158 NULL
136912 +disable_so_sctp_sockaddr_af_fndecl_12166 sctp_sockaddr_af fndecl 3 12166 NULL
136913 +disable_so_di_ctime_efs_dinode_12170 di_ctime efs_dinode 0 12170 NULL
136914 +disable_so_bitmap_fill_fndecl_12173 bitmap_fill fndecl 2 12173 NULL
136915 +disable_so_clock_mga_i2c_chan_12185 clock mga_i2c_chan 0 12185 NULL
136916 +disable_so_physaddr_pau_fpdu_frag_12193 physaddr pau_fpdu_frag 0 12193 NULL
136917 +disable_so_adm9240_write_fan_div_fndecl_12196 adm9240_write_fan_div fndecl 3-2 12196 NULL
136918 +disable_so_addr_privcmd_mmapbatch_v2_12199 addr privcmd_mmapbatch_v2 0 12199 NULL
136919 +disable_so_start_freq_khz_ieee80211_freq_range_12202 start_freq_khz ieee80211_freq_range 0 12202 NULL nohasharray
136920 +disable_so_total_ablkcipher_walk_12202 total ablkcipher_walk 0 12202 &disable_so_start_freq_khz_ieee80211_freq_range_12202
136921 +disable_so_ktime_us_delta_fndecl_12204 ktime_us_delta fndecl 0 12204 NULL
136922 +disable_so_hmark_addr_mask_fndecl_12206 hmark_addr_mask fndecl 1 12206 NULL
136923 +disable_so_force_addr_vardecl_i2c_viapro_c_12216 force_addr vardecl_i2c-viapro.c 0 12216 NULL nohasharray
136924 +disable_so_next_hash_dir_private_info_12216 next_hash dir_private_info 0 12216 &disable_so_force_addr_vardecl_i2c_viapro_c_12216
136925 +disable_so_i40e_aq_mac_address_write_fndecl_12217 i40e_aq_mac_address_write fndecl 0 12217 NULL
136926 +disable_so_sys_set_tid_address_fndecl_12219 sys_set_tid_address fndecl 0 12219 NULL
136927 +disable_so_ebitmap_contains_fndecl_12231 ebitmap_contains fndecl 3 12231 NULL
136928 +disable_so_bfa_timer_begin_fndecl_12232 bfa_timer_begin fndecl 5 12232 NULL
136929 +disable_so_sst_hsw_dsp_runtime_resume_fndecl_12234 sst_hsw_dsp_runtime_resume fndecl 0 12234 NULL
136930 +disable_so_crypto_rfc4543_encrypt_fndecl_12243 crypto_rfc4543_encrypt fndecl 0 12243 NULL
136931 +disable_so_addr_ib_phys_buf_12245 addr ib_phys_buf 0 12245 NULL
136932 +disable_so_rhashtable_jhash2_fndecl_12249 rhashtable_jhash2 fndecl 0 12249 NULL
136933 +disable_so_highbit_ebitmap_12260 highbit ebitmap 0 12260 NULL
136934 +disable_so_btrfs_run_delayed_items_fndecl_12263 btrfs_run_delayed_items fndecl 0 12263 NULL
136935 +disable_so_security_task_setscheduler_fndecl_12267 security_task_setscheduler fndecl 0 12267 NULL
136936 +disable_so_sense_phys_addr_megasas_cmd_fusion_12272 sense_phys_addr megasas_cmd_fusion 0 12272 NULL
136937 +disable_so_devid_ptp_clock_12277 devid ptp_clock 0 12277 NULL
136938 +disable_so_pwwn_bfa_bsg_rport_scsi_addr_s_12278 pwwn bfa_bsg_rport_scsi_addr_s 0 12278 NULL nohasharray
136939 +disable_so_ihash_entries_vardecl_inode_c_12278 ihash_entries vardecl_inode.c 0 12278 &disable_so_pwwn_bfa_bsg_rport_scsi_addr_s_12278
136940 +disable_so_gid_ncp_mount_data_12282 gid ncp_mount_data 0 12282 NULL
136941 +disable_so_qla2x00_zio_timer_show_fndecl_12290 qla2x00_zio_timer_show fndecl 0 12290 NULL
136942 +disable_so_mlx4_hca_core_clock_update_fndecl_12300 mlx4_hca_core_clock_update fndecl 0 12300 NULL
136943 +disable_so_accel_3d_adjust_channel_bit_mask_fndecl_12308 accel_3d_adjust_channel_bit_mask fndecl 3 12308 NULL
136944 +disable_so_dtt200u_fe_sleep_fndecl_12311 dtt200u_fe_sleep fndecl 0 12311 NULL
136945 +disable_so_asix_read_phy_addr_fndecl_12320 asix_read_phy_addr fndecl 0 12320 NULL
136946 +disable_so_viafb_load_reg_fndecl_12323 viafb_load_reg fndecl 1 12323 NULL nohasharray
136947 +disable_so_bm_bits_drbd_bitmap_12323 bm_bits drbd_bitmap 0 12323 &disable_so_viafb_load_reg_fndecl_12323
136948 +disable_so_ixgbe_write_mc_addr_list_fndecl_12325 ixgbe_write_mc_addr_list fndecl 0 12325 NULL
136949 +disable_so_gid_max_xt_owner_match_info_12332 gid_max xt_owner_match_info 0 12332 NULL
136950 +disable_so_duty_cycle_pwm_device_12334 duty_cycle pwm_device 0 12334 NULL
136951 +disable_so_get_nohz_timer_target_fndecl_12336 get_nohz_timer_target fndecl 0 12336 NULL
136952 +disable_so_pte_encode_i915_address_space_12340 pte_encode i915_address_space 0-1 12340 NULL
136953 +disable_so_mdac_aic32x4_rate_divs_12367 mdac aic32x4_rate_divs 0 12367 NULL
136954 +disable_so_tipc_media_addr_printf_fndecl_12368 tipc_media_addr_printf fndecl 2 12368 NULL
136955 +disable_so_i_atime_ext3_inode_12370 i_atime ext3_inode 0 12370 NULL
136956 +disable_so_bitmap_ip_gc_test_fndecl_12372 bitmap_ip_gc_test fndecl 3 12372 NULL
136957 +disable_so_vlv_gpu_freq_div_fndecl_12377 vlv_gpu_freq_div fndecl 0 12377 NULL nohasharray
136958 +disable_so_nilfs_btree_get_new_block_fndecl_12377 nilfs_btree_get_new_block fndecl 0-2 12377 &disable_so_vlv_gpu_freq_div_fndecl_12377
136959 +disable_so_schedule_hrtimeout_range_fndecl_12390 schedule_hrtimeout_range fndecl 2 12390 NULL
136960 +disable_so_btrfs_init_delayed_node_fndecl_12401 btrfs_init_delayed_node fndecl 3 12401 NULL
136961 +disable_so_connect_time_stamp_skd_device_12406 connect_time_stamp skd_device 0 12406 NULL
136962 +disable_so_gcm_hash_remain_fndecl_12408 gcm_hash_remain fndecl 0-2 12408 NULL
136963 +disable_so_kasprintf_fndecl_12414 kasprintf fndecl 1 12414 NULL
136964 +disable_so_iTCO_wdt_set_timeout_fndecl_12423 iTCO_wdt_set_timeout fndecl 2 12423 NULL
136965 +disable_so_queue_ixgbe_mac_addr_12436 queue ixgbe_mac_addr 0 12436 NULL
136966 +disable_so_i_atime_extra_ext4_inode_12438 i_atime_extra ext4_inode 0 12438 NULL
136967 +disable_so_bts_interrupt_threshold_debug_store_12439 bts_interrupt_threshold debug_store 0 12439 NULL
136968 +disable_so_erase_delay_vardecl_nandsim_c_12453 erase_delay vardecl_nandsim.c 0 12453 NULL
136969 +disable_so__rx_page_addr_iwl_host_cmd_12457 _rx_page_addr iwl_host_cmd 0 12457 NULL
136970 +disable_so_fandiv1_w83627ehf_data_12459 fandiv1 w83627ehf_data 0 12459 NULL
136971 +disable_so_affs_hash_name_fndecl_12465 affs_hash_name fndecl 0-3 12465 NULL
136972 +disable_so_timeout_tipc_subscr_12467 timeout tipc_subscr 0 12467 NULL
136973 +disable_so_decrypt_msdu_lib80211_crypto_ops_12475 decrypt_msdu lib80211_crypto_ops 3 12475 NULL
136974 +disable_so_ext4_read_block_bitmap_nowait_fndecl_12477 ext4_read_block_bitmap_nowait fndecl 2 12477 NULL
136975 +disable_so_i40e_rx_hash_fndecl_12482 i40e_rx_hash fndecl 0 12482 NULL
136976 +disable_so_padata_set_cpumasks_fndecl_12492 padata_set_cpumasks fndecl 0 12492 NULL
136977 +disable_so_dm_btree_empty_fndecl_12493 dm_btree_empty fndecl 0 12493 NULL
136978 +disable_so_nv_do_interrupt_fndecl_12501 nv_do_interrupt fndecl 2 12501 NULL
136979 +disable_so_max8997_set_voltage_buck_time_sel_fndecl_12503 max8997_set_voltage_buck_time_sel fndecl 0-2-3 12503 NULL
136980 +disable_so_div_factor_fine_fndecl_12505 div_factor_fine fndecl 0-1 12505 NULL
136981 +disable_so_r820t_sysfreq_sel_fndecl_12506 r820t_sysfreq_sel fndecl 0-2 12506 NULL
136982 +disable_so_msleep_xc2028_ctrl_12512 msleep xc2028_ctrl 0 12512 NULL nohasharray
136983 +disable_so_get_maxrecs_xfs_btree_ops_12512 get_maxrecs xfs_btree_ops 0 12512 &disable_so_msleep_xc2028_ctrl_12512
136984 +disable_so_test_rhashtable_fndecl_12513 test_rhashtable fndecl 0 12513 NULL
136985 +disable_so_i2c_address_mt2131_config_12514 i2c_address mt2131_config 0 12514 NULL
136986 +disable_so_rapl_compute_time_window_core_fndecl_12519 rapl_compute_time_window_core fndecl 0-2 12519 NULL
136987 +disable_so_mi1_wr_addr_fndecl_12527 mi1_wr_addr fndecl 0 12527 NULL nohasharray
136988 +disable_so_write_reg_fndecl_12527 write_reg fndecl 1 12527 &disable_so_mi1_wr_addr_fndecl_12527
136989 +disable_so_mce_adjust_timer_default_fndecl_12530 mce_adjust_timer_default fndecl 0-1 12530 NULL
136990 +disable_so_low_bkey_12536 low bkey 0 12536 NULL
136991 +disable_so_arcmsr_alloc_sysfs_attr_fndecl_12547 arcmsr_alloc_sysfs_attr fndecl 0 12547 NULL
136992 +disable_so_data_qxl_bitmap_12551 data qxl_bitmap 0 12551 NULL
136993 +disable_so_imsf_multiaddr_ip_msfilter_12556 imsf_multiaddr ip_msfilter 0 12556 NULL
136994 +disable_so_qa_indx_sdebug_hrtimer_12577 qa_indx sdebug_hrtimer 0 12577 NULL
136995 +disable_so_shash_compat_digest_fndecl_12579 shash_compat_digest fndecl 0-3 12579 NULL
136996 +disable_so_max8998_rtc_set_time_fndecl_12607 max8998_rtc_set_time fndecl 0 12607 NULL
136997 +disable_so_dib7000m_write_word_fndecl_12610 dib7000m_write_word fndecl 3 12610 NULL
136998 +disable_so_real_start_time_task_struct_12612 real_start_time task_struct 0 12612 NULL
136999 +disable_so_rhashtable_expand_fndecl_12634 rhashtable_expand fndecl 0 12634 NULL
137000 +disable_so_seq_cxgbi_skb_cb_12636 seq cxgbi_skb_cb 0 12636 NULL
137001 +disable_so_daddr_irnet_log_12640 daddr irnet_log 0 12640 NULL
137002 +disable_so_r8a66597_clock_enable_fndecl_12645 r8a66597_clock_enable fndecl 0 12645 NULL
137003 +disable_so_rsa_get_d_fndecl_12646 rsa_get_d fndecl 5 12646 NULL
137004 +disable_so_compat_sys_timer_gettime_fndecl_12649 compat_sys_timer_gettime fndecl 1 12649 NULL
137005 +disable_so_daddr_tcp4_pseudohdr_12650 daddr tcp4_pseudohdr 0 12650 NULL
137006 +disable_so_ccp_crypto_enqueue_cmd_fndecl_12657 ccp_crypto_enqueue_cmd fndecl 0 12657 NULL
137007 +disable_so_gm107_fan_pwm_clock_fndecl_12663 gm107_fan_pwm_clock fndecl 0 12663 NULL
137008 +disable_so_em_sti_clock_event_next_fndecl_12667 em_sti_clock_event_next fndecl 1 12667 NULL
137009 +disable_so___hash_conntrack_fndecl_12675 __hash_conntrack fndecl 0-3 12675 NULL
137010 +disable_so_nr_of_adrs_cmd_ds_mac_multicast_addr_12679 nr_of_adrs cmd_ds_mac_multicast_addr 0 12679 NULL
137011 +disable_so_mpihelp_mul_fndecl_12686 mpihelp_mul fndecl 3-5 12686 NULL
137012 +disable_so_retry_delay_timer_fcoe_fcp_rsp_payload_12692 retry_delay_timer fcoe_fcp_rsp_payload 0 12692 NULL
137013 +disable_so_b43_phy_write_fndecl_12694 b43_phy_write fndecl 2-3 12694 NULL
137014 +disable_so_ageing_time_tun_struct_12716 ageing_time tun_struct 0 12716 NULL nohasharray
137015 +disable_so_rx_delay_rk_priv_data_12716 rx_delay rk_priv_data 0 12716 &disable_so_ageing_time_tun_struct_12716
137016 +disable_so_dma_addr_rxbuff_ent_12717 dma_addr rxbuff_ent 0 12717 NULL
137017 +disable_so_swb_base_asd_ha_addrspace_12726 swb_base asd_ha_addrspace 0 12726 NULL
137018 +disable_so_set_voltage_time_sel_regulator_ops_12737 set_voltage_time_sel regulator_ops 0-2 12737 NULL nohasharray
137019 +disable_so_crypto_ecb_setkey_fndecl_12737 crypto_ecb_setkey fndecl 0-3 12737 &disable_so_set_voltage_time_sel_regulator_ops_12737
137020 +disable_so_width_clk_divider_12738 width clk_divider 0 12738 NULL
137021 +disable_so_mga_set_start_address_fndecl_12745 mga_set_start_address fndecl 2 12745 NULL
137022 +disable_so_last_timer_vardecl_tusb6010_c_12750 last_timer vardecl_tusb6010.c 0 12750 NULL
137023 +disable_so_jiffies_at_free_qla_tgt_cmd_12753 jiffies_at_free qla_tgt_cmd 0 12753 NULL nohasharray
137024 +disable_so_ufs_set_inode_uid_fndecl_12753 ufs_set_inode_uid fndecl 3 12753 &disable_so_jiffies_at_free_qla_tgt_cmd_12753
137025 +disable_so_ipv6_get_saddr_eval_fndecl_12754 ipv6_get_saddr_eval fndecl 0 12754 NULL
137026 +disable_so_bond_xmit_hash_fndecl_12757 bond_xmit_hash fndecl 0 12757 NULL
137027 +disable_so_freqm_snd_usb_endpoint_12761 freqm snd_usb_endpoint 0 12761 NULL
137028 +disable_so_mclkdiv_cs42l73_mclkx_div_12771 mclkdiv cs42l73_mclkx_div 0 12771 NULL
137029 +disable_so_slot_time_rtl8187_priv_12775 slot_time rtl8187_priv 0 12775 NULL
137030 +disable_so_mwifiex_auto_tdls_update_peer_signal_fndecl_12781 mwifiex_auto_tdls_update_peer_signal fndecl 3-4 12781 NULL
137031 +disable_so_channel_mwifiex_chan_freq_power_12794 channel mwifiex_chan_freq_power 0 12794 NULL
137032 +disable_so_pll_loopdiv_dib0090_io_config_12799 pll_loopdiv dib0090_io_config 0 12799 NULL nohasharray
137033 +disable_so_branch_addr_yellowfin_desc_12799 branch_addr yellowfin_desc 0 12799 &disable_so_pll_loopdiv_dib0090_io_config_12799
137034 +disable_so__kstrtoul_fndecl_12800 _kstrtoul fndecl 0 12800 NULL
137035 +disable_so_ns_to_timeval_fndecl_12804 ns_to_timeval fndecl 1 12804 NULL nohasharray
137036 +disable_so_enc_addr_high_sata_start_req_12804 enc_addr_high sata_start_req 0 12804 &disable_so_ns_to_timeval_fndecl_12804
137037 +disable_so_ftdi_232bm_baud_to_divisor_fndecl_12815 ftdi_232bm_baud_to_divisor fndecl 0-1 12815 NULL
137038 +disable_so_crypto_aead_setkey_fndecl_12818 crypto_aead_setkey fndecl 0-3 12818 NULL
137039 +disable_so_ufs_cpu_to_data_ptr_fndecl_12819 ufs_cpu_to_data_ptr fndecl 3 12819 NULL
137040 +disable_so_s35390a_rtc_read_time_fndecl_12823 s35390a_rtc_read_time fndecl 0 12823 NULL
137041 +disable_so_orinoco_ioctl_getfreq_fndecl_12824 orinoco_ioctl_getfreq fndecl 0 12824 NULL
137042 +disable_so_be_get_temp_freq_be_adapter_12832 be_get_temp_freq be_adapter 0 12832 NULL
137043 +disable_so_sha256_transform_asm_vardecl_sha256_ssse3_glue_c_12837 sha256_transform_asm vardecl_sha256_ssse3_glue.c 3 12837 NULL
137044 +disable_so_ubifs_leb_unmap_fndecl_12841 ubifs_leb_unmap fndecl 0-2 12841 NULL
137045 +disable_so_telclk_interrupt_vardecl_tlclk_c_12842 telclk_interrupt vardecl_tlclk.c 0 12842 NULL
137046 +disable_so_eax_tss_segment_32_12853 eax tss_segment_32 0 12853 NULL
137047 +disable_so_recover_ide_timing_12854 recover ide_timing 0 12854 NULL
137048 +disable_so_ima_calc_file_hash_fndecl_12858 ima_calc_file_hash fndecl 0 12858 NULL
137049 +disable_so_timestamp_inquiry_entry_12867 timestamp inquiry_entry 0 12867 NULL
137050 +disable_so_blk_post_runtime_suspend_fndecl_12869 blk_post_runtime_suspend fndecl 2 12869 NULL
137051 +disable_so_clocksource_register_khz_fndecl_12871 clocksource_register_khz fndecl 2 12871 NULL
137052 +disable_so___xfrm4_daddr_saddr_hash_fndecl_12875 __xfrm4_daddr_saddr_hash fndecl 0 12875 NULL
137053 +disable_so_calibrate_delay_converge_fndecl_12881 calibrate_delay_converge fndecl 0 12881 NULL
137054 +disable_so_cgroup_kn_set_ugid_fndecl_12885 cgroup_kn_set_ugid fndecl 0 12885 NULL
137055 +disable_so_bm_number_of_pages_drbd_bitmap_12889 bm_number_of_pages drbd_bitmap 0 12889 NULL
137056 +disable_so_blck_N_aic32x4_rate_divs_12896 blck_N aic32x4_rate_divs 0 12896 NULL
137057 +disable_so_delayacct_blkio_ticks_fndecl_12901 delayacct_blkio_ticks fndecl 0 12901 NULL
137058 +disable_so_sh_irda_set_timeout_fndecl_12902 sh_irda_set_timeout fndecl 2 12902 NULL
137059 +disable_so_bch_next_delay_fndecl_12906 bch_next_delay fndecl 0-2 12906 NULL
137060 +disable_so_address_lo_ht_irq_msg_12914 address_lo ht_irq_msg 0 12914 NULL
137061 +disable_so_cr_gsc_addr_12917 cr gsc_addr 0 12917 NULL nohasharray
137062 +disable_so_fmc_set_freq_fndecl_12917 fmc_set_freq fndecl 0-2 12917 &disable_so_cr_gsc_addr_12917
137063 +disable_so_s_wtime_nilfs_super_block_12947 s_wtime nilfs_super_block 0 12947 NULL
137064 +disable_so___pm_runtime_idle_fndecl_12950 __pm_runtime_idle fndecl 0 12950 NULL
137065 +disable_so_timeout_dvb_ca_slot_12955 timeout dvb_ca_slot 0 12955 NULL
137066 +disable_so_ktime_get_real_ns_fndecl_12957 ktime_get_real_ns fndecl 0 12957 NULL nohasharray
137067 +disable_so_read_temp_msr_fndecl_12957 read_temp_msr fndecl 0 12957 &disable_so_ktime_get_real_ns_fndecl_12957
137068 +disable_so_clock_get_k_clock_12965 clock_get k_clock 1 12965 NULL
137069 +disable_so_addr___cache_12967 addr __cache 0 12967 NULL
137070 +disable_so_dev_addr_mv_u3d_12969 dev_addr mv_u3d 0 12969 NULL
137071 +disable_so_xfrm6_input_addr_fndecl_12971 xfrm6_input_addr fndecl 4 12971 NULL
137072 +disable_so_rfcomm_dlc_set_timer_fndecl_12983 rfcomm_dlc_set_timer fndecl 2 12983 NULL
137073 +disable_so_short_addr_ieee802154_hw_addr_filt_12985 short_addr ieee802154_hw_addr_filt 0 12985 NULL
137074 +disable_so_base_addr_rdma_cq_setup_12989 base_addr rdma_cq_setup 0 12989 NULL
137075 +disable_so_rsp_q_phy_addr_ql3_adapter_12990 rsp_q_phy_addr ql3_adapter 0 12990 NULL
137076 +disable_so_cc770_status_interrupt_fndecl_12992 cc770_status_interrupt fndecl 0 12992 NULL
137077 +disable_so_tx_addr_uart_8250_dma_12997 tx_addr uart_8250_dma 0 12997 NULL
137078 +disable_so_cur_delay_intel_ilk_power_mgmt_13003 cur_delay intel_ilk_power_mgmt 0 13003 NULL
137079 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data_13008 gateway_cmd_addr wil_fw_record_gateway_data 0 13008 NULL
137080 +disable_so_wq_cpumask_show_fndecl_13018 wq_cpumask_show fndecl 0 13018 NULL
137081 +disable_so_hash_index_fndecl_13050 hash_index fndecl 0-1-2 13050 NULL
137082 +disable_so_qs6612_ack_interrupt_fndecl_13054 qs6612_ack_interrupt fndecl 0 13054 NULL
137083 +disable_so_dst_addr_ioat_dma_descriptor_13055 dst_addr ioat_dma_descriptor 0 13055 NULL
137084 +disable_so_qce_ablkcipher_encrypt_fndecl_13064 qce_ablkcipher_encrypt fndecl 0 13064 NULL
137085 +disable_so_cra_alignmask_crypto_alg_13076 cra_alignmask crypto_alg 0 13076 NULL
137086 +disable_so_rx_busy_ath_cycle_counters_13078 rx_busy ath_cycle_counters 0 13078 NULL
137087 +disable_so_dummy_hrtimer_pointer_fndecl_13080 dummy_hrtimer_pointer fndecl 0 13080 NULL nohasharray
137088 +disable_so_freq_carl9170_rf_init_13080 freq carl9170_rf_init 0 13080 &disable_so_dummy_hrtimer_pointer_fndecl_13080
137089 +disable_so_host_addr_mei_hbm_cl_cmd_13107 host_addr mei_hbm_cl_cmd 0 13107 NULL nohasharray
137090 +disable_so_set_bbreg_rtl_hal_ops_13107 set_bbreg rtl_hal_ops 2-4 13107 &disable_so_host_addr_mei_hbm_cl_cmd_13107
137091 +disable_so_da9063_rtc_read_time_fndecl_13117 da9063_rtc_read_time fndecl 0 13117 NULL
137092 +disable_so_ext4_validate_block_bitmap_fndecl_13120 ext4_validate_block_bitmap fndecl 3 13120 NULL
137093 +disable_so_adp8870_write_fndecl_13121 adp8870_write fndecl 0-2-3 13121 NULL
137094 +disable_so_clock_set_k_clock_13122 clock_set k_clock 1 13122 NULL nohasharray
137095 +disable_so_check_clock_fndecl_13122 check_clock fndecl 1 13122 &disable_so_clock_set_k_clock_13122
137096 +disable_so_addr_wil6210_mbox_ring_desc_13127 addr wil6210_mbox_ring_desc 0 13127 NULL
137097 +disable_so_stats_time_fnic_13131 stats_time fnic 0 13131 NULL
137098 +disable_so_brcms_add_timer_fndecl_13133 brcms_add_timer fndecl 2 13133 NULL
137099 +disable_so_r6a_val_fc2580_freq_regs_13136 r6a_val fc2580_freq_regs 0 13136 NULL
137100 +disable_so_enabled_otg_timer_bits_ci_hdrc_13140 enabled_otg_timer_bits ci_hdrc 0 13140 NULL
137101 +disable_so_atp867x_get_recover_clocks_shifted_fndecl_13150 atp867x_get_recover_clocks_shifted fndecl 0-1 13150 NULL
137102 +disable_so_timeout_nf_ct_gre_13156 timeout nf_ct_gre 0 13156 NULL
137103 +disable_so_snd_fm801_interrupt_fndecl_13162 snd_fm801_interrupt fndecl 1 13162 NULL
137104 +disable_so_afs_server_timeout_vardecl_server_c_13168 afs_server_timeout vardecl_server.c 0 13168 NULL
137105 +disable_so_wm8974_set_dai_clkdiv_fndecl_13171 wm8974_set_dai_clkdiv fndecl 3 13171 NULL
137106 +disable_so_ipw_send_adapter_address_fndecl_13183 ipw_send_adapter_address fndecl 0 13183 NULL
137107 +disable_so_crypto_fpu_encrypt_fndecl_13188 crypto_fpu_encrypt fndecl 0-4 13188 NULL
137108 +disable_so_blockno2iaddr_fndecl_13194 blockno2iaddr fndecl 2 13194 NULL
137109 +disable_so_s_addr_per_block_bits_ext2_sb_info_13196 s_addr_per_block_bits ext2_sb_info 0 13196 NULL
137110 +disable_so_mac_time_rtl8187_rx_hdr_13204 mac_time rtl8187_rx_hdr 0 13204 NULL
137111 +disable_so_efx_phc_gettime_fndecl_13210 efx_phc_gettime fndecl 0 13210 NULL nohasharray
137112 +disable_so_freq_fm_rx_13210 freq fm_rx 0 13210 &disable_so_efx_phc_gettime_fndecl_13210
137113 +disable_so_set_fan1_div_fndecl_13214 set_fan1_div fndecl 0-4 13214 NULL
137114 +disable_so_kstrtos16_from_user_fndecl_13215 kstrtos16_from_user fndecl 2 13215 NULL
137115 +disable_so_timer_int_req_nes_adapter_13220 timer_int_req nes_adapter 0 13220 NULL nohasharray
137116 +disable_so_raddr_rdma_iu_13220 raddr rdma_iu 0 13220 &disable_so_timer_int_req_nes_adapter_13220
137117 +disable_so_calibrate_delay_direct_fndecl_13221 calibrate_delay_direct fndecl 0 13221 NULL
137118 +disable_so_il_scan_cancel_timeout_fndecl_13227 il_scan_cancel_timeout fndecl 2 13227 NULL
137119 +disable_so_di_uid_gfs2_dinode_13234 di_uid gfs2_dinode 0 13234 NULL
137120 +disable_so_globaltxtimeout_ath_hw_13238 globaltxtimeout ath_hw 0 13238 NULL
137121 +disable_so_handle_new_msr_fndecl_13247 handle_new_msr fndecl 2 13247 NULL
137122 +disable_so_efx_ef10_get_mac_address_fndecl_13249 efx_ef10_get_mac_address fndecl 0 13249 NULL
137123 +disable_so_i_atime_exofs_fcb_13250 i_atime exofs_fcb 0 13250 NULL
137124 +disable_so_dwell_time_active_wmi_start_scan_arg_13251 dwell_time_active wmi_start_scan_arg 0 13251 NULL
137125 +disable_so_SYSC_signalfd_fndecl_13255 SYSC_signalfd fndecl 0 13255 NULL
137126 +disable_so_ipv4addr_iscsi_ipv4addr_13263 ipv4addr iscsi_ipv4addr 0 13263 NULL
137127 +disable_so_nilfs_btree_prepare_update_v_fndecl_13265 nilfs_btree_prepare_update_v fndecl 0 13265 NULL
137128 +disable_so_timer_in_use_max_nes_hw_tune_timer_13266 timer_in_use_max nes_hw_tune_timer 0 13266 NULL nohasharray
137129 +disable_so_qlcnic_83xx_sre_macaddr_change_fndecl_13266 qlcnic_83xx_sre_macaddr_change fndecl 0 13266 &disable_so_timer_in_use_max_nes_hw_tune_timer_13266
137130 +disable_so_xgmac_interrupt_fndecl_13268 xgmac_interrupt fndecl 1 13268 NULL
137131 +disable_so_radio_s_hw_freq_seek_fndecl_13308 radio_s_hw_freq_seek fndecl 0 13308 NULL nohasharray
137132 +disable_so_apei_read_mce_fndecl_13308 apei_read_mce fndecl 0 13308 &disable_so_radio_s_hw_freq_seek_fndecl_13308
137133 +disable_so_clear_tasks_mm_cpumask_fndecl_13309 clear_tasks_mm_cpumask fndecl 1 13309 NULL
137134 +disable_so_bmsr_e1000_phy_regs_13313 bmsr e1000_phy_regs 0 13313 NULL
137135 +disable_so_mcryptd_hash_digest_fndecl_13325 mcryptd_hash_digest fndecl 2 13325 NULL
137136 +disable_so_cpumask_set_cpu_fndecl_13326 cpumask_set_cpu fndecl 1 13326 NULL
137137 +disable_so_ipath_unmasktime_ipath_devdata_13342 ipath_unmasktime ipath_devdata 0 13342 NULL
137138 +disable_so_interruptjiffies_vardecl_floppy_c_13345 interruptjiffies vardecl_floppy.c 0 13345 NULL
137139 +disable_so_remove_from_bitmap_fndecl_13352 remove_from_bitmap fndecl 0 13352 NULL
137140 +disable_so_sst_wait_timeout_fndecl_13353 sst_wait_timeout fndecl 0 13353 NULL nohasharray
137141 +disable_so_last_timeout_arcnet_local_13353 last_timeout arcnet_local 0 13353 &disable_so_sst_wait_timeout_fndecl_13353 nohasharray
137142 +disable_so_cfg_table_bus_addr_pmcraid_instance_13353 cfg_table_bus_addr pmcraid_instance 0 13353 &disable_so_last_timeout_arcnet_local_13353
137143 +disable_so_mtime_vardecl_initramfs_c_13365 mtime vardecl_initramfs.c 0 13365 NULL
137144 +disable_so_ds3232_read_time_fndecl_13366 ds3232_read_time fndecl 0 13366 NULL nohasharray
137145 +disable_so_addr_bcma_device_13366 addr bcma_device 0 13366 &disable_so_ds3232_read_time_fndecl_13366
137146 +disable_so_dma_addr_drv_ctl_io_13371 dma_addr drv_ctl_io 0 13371 NULL
137147 +disable_so_crypto_check_alg_fndecl_13376 crypto_check_alg fndecl 0 13376 NULL
137148 +disable_so_drbd_adm_get_timeout_type_fndecl_13391 drbd_adm_get_timeout_type fndecl 0 13391 NULL
137149 +disable_so_hpi_silence_detector_set_delay_fndecl_13393 hpi_silence_detector_set_delay fndecl 0-1 13393 NULL
137150 +disable_so__get_table_div_fndecl_13398 _get_table_div fndecl 0-2 13398 NULL
137151 +disable_so_backtrace_address_fndecl_13401 backtrace_address fndecl 2 13401 NULL
137152 +disable_so_ax25_addr_parse_fndecl_13402 ax25_addr_parse fndecl 2 13402 NULL
137153 +disable_so_ath5k_hw_ani_get_listen_time_fndecl_13417 ath5k_hw_ani_get_listen_time fndecl 0 13417 NULL nohasharray
137154 +disable_so_map_page_dma_map_ops_13417 map_page dma_map_ops 0-3-4 13417 &disable_so_ath5k_hw_ani_get_listen_time_fndecl_13417
137155 +disable_so_cpufreq_stats_free_table_fndecl_13437 cpufreq_stats_free_table fndecl 1 13437 NULL
137156 +disable_so_eft_addr_l_qla2xxx_fw_dump_13450 eft_addr_l qla2xxx_fw_dump 0 13450 NULL
137157 +disable_so_cit_write_reg_fndecl_13451 cit_write_reg fndecl 2 13451 NULL
137158 +disable_so_chash_f2fs_inode_info_13456 chash f2fs_inode_info 0 13456 NULL
137159 +disable_so_vblank_lo_oaktrail_timing_info_13463 vblank_lo oaktrail_timing_info 0 13463 NULL
137160 +disable_so_rtl8139_interrupt_fndecl_13468 rtl8139_interrupt fndecl 1 13468 NULL
137161 +disable_so_start_time_dm_io_13470 start_time dm_io 0 13470 NULL
137162 +disable_so_mt2032_set_if_freq_fndecl_13473 mt2032_set_if_freq fndecl 2-3-4 13473 NULL
137163 +disable_so_demod_address_cx24110_config_13476 demod_address cx24110_config 0 13476 NULL
137164 +disable_so_atime_tcs3472_data_13482 atime tcs3472_data 0 13482 NULL
137165 +disable_so_div_ratio_fndecl_13491 div_ratio fndecl 0-2-1 13491 NULL
137166 +disable_so_seq_xfrm_state_walk_13498 seq xfrm_state_walk 0 13498 NULL
137167 +disable_so_qdisc_class_hash_init_fndecl_13502 qdisc_class_hash_init fndecl 0 13502 NULL
137168 +disable_so_sha256_generic_block_fn_fndecl_13506 sha256_generic_block_fn fndecl 3 13506 NULL
137169 +disable_so_find_first_bit_fndecl_13507 find_first_bit fndecl 0-2 13507 NULL
137170 +disable_so_idle_timeout_clip_vcc_13512 idle_timeout clip_vcc 0 13512 NULL nohasharray
137171 +disable_so_input_set_abs_params_fndecl_13512 input_set_abs_params fndecl 3-4-5-6-2 13512 &disable_so_idle_timeout_clip_vcc_13512
137172 +disable_so_bond_time_in_interval_fndecl_13516 bond_time_in_interval fndecl 2 13516 NULL nohasharray
137173 +disable_so_nv04_timer_init_fndecl_13516 nv04_timer_init fndecl 0 13516 &disable_so_bond_time_in_interval_fndecl_13516
137174 +disable_so_paravirt_read_msr_fndecl_13526 paravirt_read_msr fndecl 0-1 13526 NULL
137175 +disable_so_dram_offset_sst_addr_13528 dram_offset sst_addr 0 13528 NULL
137176 +disable_so_em_sti_clocksource_enable_fndecl_13530 em_sti_clocksource_enable fndecl 0 13530 NULL
137177 +disable_so_timestamp_ieee80211_tdls_ch_sw_params_13545 timestamp ieee80211_tdls_ch_sw_params 0 13545 NULL
137178 +disable_so_post_divider_rv6xx_sclk_stepping_13551 post_divider rv6xx_sclk_stepping 0 13551 NULL nohasharray
137179 +disable_so_center_freq_ieee80211_channel_13551 center_freq ieee80211_channel 0 13551 &disable_so_post_divider_rv6xx_sclk_stepping_13551
137180 +disable_so_port_rcvhdrqtailaddr_phys_ipath_portdata_13553 port_rcvhdrqtailaddr_phys ipath_portdata 0 13553 NULL
137181 +disable_so_acpi_check_address_range_fndecl_13569 acpi_check_address_range fndecl 1-2-3 13569 NULL
137182 +disable_so_time_mt_init_fndecl_13576 time_mt_init fndecl 0 13576 NULL
137183 +disable_so_blkcipher_done_fast_fndecl_13584 blkcipher_done_fast fndecl 0-2 13584 NULL
137184 +disable_so_phys_addr_mpi_mem_13591 phys_addr mpi_mem 0 13591 NULL nohasharray
137185 +disable_so_timeout_p9_trans_rdma_13591 timeout p9_trans_rdma 0 13591 &disable_so_phys_addr_mpi_mem_13591 nohasharray
137186 +disable_so_ssb_chipco_watchdog_timer_set_ms_fndecl_13591 ssb_chipco_watchdog_timer_set_ms fndecl 2-0 13591 &disable_so_timeout_p9_trans_rdma_13591
137187 +disable_so_c_can_set_bittiming_fndecl_13601 c_can_set_bittiming fndecl 0 13601 NULL
137188 +disable_so_crypto_ccm_module_init_fndecl_13609 crypto_ccm_module_init fndecl 0 13609 NULL
137189 +disable_so_addr_hi_eth_tx_next_bd_13611 addr_hi eth_tx_next_bd 0 13611 NULL
137190 +disable_so_addr_hi_cmdQ_e_13613 addr_hi cmdQ_e 0 13613 NULL
137191 +disable_so_min_keysize_crypto_report_cipher_13617 min_keysize crypto_report_cipher 0 13617 NULL
137192 +disable_so_seq_printf_with_thousands_grouping_fndecl_13628 seq_printf_with_thousands_grouping fndecl 2 13628 NULL
137193 +disable_so_cpuidle_init_fndecl_13639 cpuidle_init fndecl 0 13639 NULL
137194 +disable_so_period_ksz_timer_info_13641 period ksz_timer_info 0 13641 NULL
137195 +disable_so_vx_modify_board_clock_fndecl_13669 vx_modify_board_clock fndecl 0 13669 NULL
137196 +disable_so_cmd_box_addr_wl1251_13673 cmd_box_addr wl1251 0 13673 NULL
137197 +disable_so_demod_address_va1j5jf8007s_config_13675 demod_address va1j5jf8007s_config 0 13675 NULL
137198 +disable_so_timestamp_unavailable_nfs4_deviceid_node_13676 timestamp_unavailable nfs4_deviceid_node 0 13676 NULL nohasharray
137199 +disable_so_len_in_mceusb_dev_13676 len_in mceusb_dev 0 13676 &disable_so_timestamp_unavailable_nfs4_deviceid_node_13676
137200 +disable_so_di_uid_efs_dinode_13682 di_uid efs_dinode 0 13682 NULL
137201 +disable_so_aty_ld_le32_fndecl_13683 aty_ld_le32 fndecl 0 13683 NULL
137202 +disable_so_freqValRadio_pvr2_hdw_13684 freqValRadio pvr2_hdw 0 13684 NULL
137203 +disable_so_fd_pppol2tp_addr_13691 fd pppol2tp_addr 0 13691 NULL
137204 +disable_so_ver_total_via_display_timing_13695 ver_total via_display_timing 0 13695 NULL
137205 +disable_so_wait_on_bit_action_fndecl_13700 wait_on_bit_action fndecl 0 13700 NULL
137206 +disable_so_prandom_seed_state_fndecl_13705 prandom_seed_state fndecl 2 13705 NULL
137207 +disable_so_br_set_hello_time_fndecl_13706 br_set_hello_time fndecl 2-0 13706 NULL
137208 +disable_so_servaddr_vardecl_nfsroot_c_13709 servaddr vardecl_nfsroot.c 0 13709 NULL
137209 +disable_so_pci_bus_read_config_byte_fndecl_13716 pci_bus_read_config_byte fndecl 0-2-3 13716 NULL
137210 +disable_so_cipher_blocksize_blkcipher_walk_13719 cipher_blocksize blkcipher_walk 0 13719 NULL
137211 +disable_so_isdn_divert_read_fndecl_13720 isdn_divert_read fndecl 0 13720 NULL
137212 +disable_so_sys_getegid16_fndecl_13732 sys_getegid16 fndecl 0 13732 NULL
137213 +disable_so_turnaround_delay_fndecl_13736 turnaround_delay fndecl 2 13736 NULL nohasharray
137214 +disable_so_ft_min_img_ir_free_timing_13736 ft_min img_ir_free_timing 0 13736 &disable_so_turnaround_delay_fndecl_13736
137215 +disable_so_addr_1_qla8044_minidump_entry_rdmdio_13738 addr_1 qla8044_minidump_entry_rdmdio 0 13738 NULL nohasharray
137216 +disable_so_write_begin_address_space_operations_13738 write_begin address_space_operations 0-3-4 13738 &disable_so_addr_1_qla8044_minidump_entry_rdmdio_13738
137217 +disable_so_ext4fs_dirhash_fndecl_13754 ext4fs_dirhash fndecl 2 13754 NULL
137218 +disable_so_mpll_func_cntl_2_ci_clock_registers_13768 mpll_func_cntl_2 ci_clock_registers 0 13768 NULL
137219 +disable_so_update_ts_time_stats_fndecl_13777 update_ts_time_stats fndecl 1 13777 NULL
137220 +disable_so_adv_smbus_write_byte_data_fndecl_13784 adv_smbus_write_byte_data fndecl 0-3-2-4 13784 NULL
137221 +disable_so_tg3_nvram_read_be32_fndecl_13791 tg3_nvram_read_be32 fndecl 0-2 13791 NULL
137222 +disable_so_ftdi_232bm_baud_base_to_divisor_fndecl_13805 ftdi_232bm_baud_base_to_divisor fndecl 0-1-2 13805 NULL nohasharray
137223 +disable_so_compat_sys_clock_getres_fndecl_13805 compat_sys_clock_getres fndecl 1 13805 &disable_so_ftdi_232bm_baud_base_to_divisor_fndecl_13805
137224 +disable_so_mtimensec_fuse_setattr_in_13811 mtimensec fuse_setattr_in 0 13811 NULL
137225 +disable_so_stime_task_cputime_13814 stime task_cputime 0 13814 NULL
137226 +disable_so_update_rq_clock_task_fndecl_13818 update_rq_clock_task fndecl 2 13818 NULL
137227 +disable_so_first_pending_disptime_throtl_service_queue_13825 first_pending_disptime throtl_service_queue 0 13825 NULL
137228 +disable_so_zalloc_cpumask_var_node_fndecl_13830 zalloc_cpumask_var_node fndecl 2-3 13830 NULL
137229 +disable_so_s_last_error_time_ext4_super_block_13833 s_last_error_time ext4_super_block 0 13833 NULL
137230 +disable_so_ksz_start_timer_fndecl_13834 ksz_start_timer fndecl 2 13834 NULL nohasharray
137231 +disable_so_uwb_rc_mac_addr_get_fndecl_13834 uwb_rc_mac_addr_get fndecl 0 13834 &disable_so_ksz_start_timer_fndecl_13834
137232 +disable_so_last_jiffies_loopback_pcm_13838 last_jiffies loopback_pcm 0 13838 NULL
137233 +disable_so_devm_free_irq_fndecl_13839 devm_free_irq fndecl 2 13839 NULL
137234 +disable_so_wlcore_irq_locked_fndecl_13846 wlcore_irq_locked fndecl 0 13846 NULL
137235 +disable_so_hpet_reserve_platform_timers_fndecl_13848 hpet_reserve_platform_timers fndecl 1 13848 NULL
137236 +disable_so_drm_legacy_ctxbitmap_next_fndecl_13853 drm_legacy_ctxbitmap_next fndecl 0 13853 NULL
137237 +disable_so_addr_hi_sdhci_adma2_64_desc_13867 addr_hi sdhci_adma2_64_desc 0 13867 NULL nohasharray
137238 +disable_so_xfs_btree_lookup_get_block_fndecl_13867 xfs_btree_lookup_get_block fndecl 0 13867 &disable_so_addr_hi_sdhci_adma2_64_desc_13867
137239 +disable_so_ktime_to_us_fndecl_13868 ktime_to_us fndecl 0 13868 NULL nohasharray
137240 +disable_so_mlx5_query_mad_ifc_system_image_guid_fndecl_13868 mlx5_query_mad_ifc_system_image_guid fndecl 0 13868 &disable_so_ktime_to_us_fndecl_13868
137241 +disable_so_smack_task_setpgid_fndecl_13869 smack_task_setpgid fndecl 0 13869 NULL
137242 +disable_so_payload_addr_vpdma_cfd_13876 payload_addr vpdma_cfd 0 13876 NULL
137243 +disable_so_chgfreq_cs42l73_platform_data_13884 chgfreq cs42l73_platform_data 0 13884 NULL
137244 +disable_so_interrupt_page_vmbus_channel_initiate_contact_13895 interrupt_page vmbus_channel_initiate_contact 0 13895 NULL
137245 +disable_so_ptrace_set_breakpoint_addr_fndecl_13901 ptrace_set_breakpoint_addr fndecl 0-2-3 13901 NULL nohasharray
137246 +disable_so_vsync_pulse_width_lo_oaktrail_timing_info_13901 vsync_pulse_width_lo oaktrail_timing_info 0 13901 &disable_so_ptrace_set_breakpoint_addr_fndecl_13901
137247 +disable_so_mcryptd_hash_setkey_fndecl_13926 mcryptd_hash_setkey fndecl 0-3 13926 NULL
137248 +disable_so_put_unaligned_be64_fndecl_13929 put_unaligned_be64 fndecl 1 13929 NULL
137249 +disable_so_voldelay_soundfont_voice_parm_13931 voldelay soundfont_voice_parm 0 13931 NULL
137250 +disable_so_addr_high_lancer_cmd_req_read_object_13932 addr_high lancer_cmd_req_read_object 0 13932 NULL
137251 +disable_so_src_addr_rds_info_rdma_connection_13938 src_addr rds_info_rdma_connection 0 13938 NULL
137252 +disable_so_rs780_force_fbdiv_fndecl_13945 rs780_force_fbdiv fndecl 2 13945 NULL
137253 +disable_so_xfs_btree_key_offset_fndecl_13946 xfs_btree_key_offset fndecl 0-2 13946 NULL nohasharray
137254 +disable_so_cryptd_hash_init_enqueue_fndecl_13946 cryptd_hash_init_enqueue fndecl 0 13946 &disable_so_xfs_btree_key_offset_fndecl_13946
137255 +disable_so_from_addr_param_sctp_af_13948 from_addr_param sctp_af 3 13948 NULL
137256 +disable_so_ept_walk_addr_generic_fndecl_13950 ept_walk_addr_generic fndecl 4-5 13950 NULL
137257 +disable_so_cpu_timer_list_iter_13954 cpu timer_list_iter 0 13954 NULL nohasharray
137258 +disable_so_iowrite16_fndecl_13954 iowrite16 fndecl 1 13954 &disable_so_cpu_timer_list_iter_13954
137259 +disable_so_do_utime_fndecl_13972 do_utime fndecl 2-0 13972 NULL
137260 +disable_so_base_addr_cx18_13974 base_addr cx18 0 13974 NULL
137261 +disable_so_rtpm_suspended_time_show_fndecl_13986 rtpm_suspended_time_show fndecl 0 13986 NULL
137262 +disable_so_ctime_fuse_setattr_in_13994 ctime fuse_setattr_in 0 13994 NULL
137263 +disable_so__rtl92ce_signal_scale_mapping_fndecl_14005 _rtl92ce_signal_scale_mapping fndecl 0-2 14005 NULL
137264 +disable_so_base_address_kvm_ioapic_14007 base_address kvm_ioapic 0 14007 NULL
137265 +disable_so_addr_hi_tx_desc_14014 addr_hi tx_desc 0 14014 NULL
137266 +disable_so_db_page_addr_ocrdma_create_cq_uresp_14016 db_page_addr ocrdma_create_cq_uresp 0 14016 NULL
137267 +disable_so_cur_cpufreq_policy_14023 cur cpufreq_policy 0 14023 NULL
137268 +disable_so_iommu_context_addr_fndecl_14032 iommu_context_addr fndecl 2-3 14032 NULL
137269 +disable_so_pll_i2c_address_dvb_pll_priv_14036 pll_i2c_address dvb_pll_priv 0 14036 NULL
137270 +disable_so_eth_mac_addr_fndecl_14045 eth_mac_addr fndecl 0 14045 NULL
137271 +disable_so_dce_v8_0_crtc_set_base_atomic_fndecl_14048 dce_v8_0_crtc_set_base_atomic fndecl 0 14048 NULL
137272 +disable_so_irq_to_desc_fndecl_14051 irq_to_desc fndecl 1 14051 NULL
137273 +disable_so_ept_identity_map_addr_kvm_arch_14060 ept_identity_map_addr kvm_arch 0 14060 NULL
137274 +disable_so_t1timer_ax25_info_struct_14071 t1timer ax25_info_struct 0 14071 NULL
137275 +disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073 rxbd_addr_hi host_cmd_ds_pcie_details 0 14073 NULL nohasharray
137276 +disable_so_nfsd4_decode_bitmap_fndecl_14073 nfsd4_decode_bitmap fndecl 0 14073 &disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073
137277 +disable_so_xfs_vn_update_time_fndecl_14075 xfs_vn_update_time fndecl 0 14075 NULL
137278 +disable_so_cpufreq_frequency_table_target_fndecl_14082 cpufreq_frequency_table_target fndecl 3 14082 NULL
137279 +disable_so_pll_j_aic31xx_rate_divs_14098 pll_j aic31xx_rate_divs 0 14098 NULL
137280 +disable_so_pirq_from_irq_fndecl_14110 pirq_from_irq fndecl 1 14110 NULL
137281 +disable_so_zforce_scan_frequency_fndecl_14111 zforce_scan_frequency fndecl 0 14111 NULL
137282 +disable_so_uv_bios_freq_base_fndecl_14114 uv_bios_freq_base fndecl 1 14114 NULL
137283 +disable_so_si2165_set_if_freq_shift_fndecl_14123 si2165_set_if_freq_shift fndecl 0-2 14123 NULL
137284 +disable_so___hw_addr_sync_fndecl_14136 __hw_addr_sync fndecl 0-3 14136 NULL
137285 +disable_so_y_qxl_bitmap_14153 y qxl_bitmap 0 14153 NULL
137286 +disable_so_crypto_aead_setauthsize_fndecl_14158 crypto_aead_setauthsize fndecl 2 14158 NULL
137287 +disable_so_r600_engine_clock_entry_set_post_divider_fndecl_14159 r600_engine_clock_entry_set_post_divider fndecl 3 14159 NULL
137288 +disable_so_onenand_buffer_address_fndecl_14162 onenand_buffer_address fndecl 0-2-3 14162 NULL
137289 +disable_so___xfrm_state_lookup_byaddr_fndecl_14170 __xfrm_state_lookup_byaddr fndecl 2-5-6 14170 NULL
137290 +disable_so_uwbd_evt_handle_rc_dev_addr_conflict_fndecl_14177 uwbd_evt_handle_rc_dev_addr_conflict fndecl 0 14177 NULL
137291 +disable_so_mpt_add_sge_64bit_1078_fndecl_14179 mpt_add_sge_64bit_1078 fndecl 2-3 14179 NULL
137292 +disable_so_exynos4_jpeg_set_dec_bitstream_size_fndecl_14180 exynos4_jpeg_set_dec_bitstream_size fndecl 2 14180 NULL
137293 +disable_so_bg_block_bitmap_hi_ext4_group_desc_14201 bg_block_bitmap_hi ext4_group_desc 0 14201 NULL
137294 +disable_so_msecs_to_jiffies_fndecl_14205 msecs_to_jiffies fndecl 0-1 14205 NULL
137295 +disable_so_wait_on_page_bit_killable_timeout_fndecl_14212 wait_on_page_bit_killable_timeout fndecl 3-0 14212 NULL
137296 +disable_so_xfrm_state_addr_check_fndecl_14213 xfrm_state_addr_check fndecl 4 14213 NULL
137297 +disable_so_addr_sil24_sge_14214 addr sil24_sge 0 14214 NULL
137298 +disable_so_t2_hash_tbl_addr_lo_fcoe_kwqe_init2_14217 t2_hash_tbl_addr_lo fcoe_kwqe_init2 0 14217 NULL
137299 +disable_so_custom_divisor_uart_port_14227 custom_divisor uart_port 0 14227 NULL
137300 +disable_so_mclk_freq_s3fb_info_14228 mclk_freq s3fb_info 0 14228 NULL
137301 +disable_so_crypto_rfc4106_decrypt_fndecl_14233 crypto_rfc4106_decrypt fndecl 0 14233 NULL
137302 +disable_so_phy_addr_b44_14235 phy_addr b44 0 14235 NULL
137303 +disable_so_gpiochip_set_chained_irqchip_fndecl_14248 gpiochip_set_chained_irqchip fndecl 3 14248 NULL
137304 +disable_so_pci_bus_address_fndecl_14252 pci_bus_address fndecl 0 14252 NULL
137305 +disable_so_sleep_functions_on_battery_show_fndecl_14253 sleep_functions_on_battery_show fndecl 0 14253 NULL nohasharray
137306 +disable_so_to_hash_fndecl_14253 to_hash fndecl 0-1 14253 &disable_so_sleep_functions_on_battery_show_fndecl_14253
137307 +disable_so_ghash_async_init_fndecl_14257 ghash_async_init fndecl 0 14257 NULL
137308 +disable_so_port_down_timeout_vnic_fc_config_14262 port_down_timeout vnic_fc_config 0 14262 NULL
137309 +disable_so_master_timeout_vardecl_nf_conntrack_amanda_c_14266 master_timeout vardecl_nf_conntrack_amanda.c 0 14266 NULL
137310 +disable_so_register_address_increment_fndecl_14270 register_address_increment fndecl 2-3 14270 NULL
137311 +disable_so_ultra_settings_chipset_bus_clock_list_entry_14273 ultra_settings chipset_bus_clock_list_entry 0 14273 NULL
137312 +disable_so_do_timer_fndecl_14291 do_timer fndecl 1 14291 NULL nohasharray
137313 +disable_so_hpi_sample_clock_set_source_index_fndecl_14291 hpi_sample_clock_set_source_index fndecl 1-0 14291 &disable_so_do_timer_fndecl_14291
137314 +disable_so_ndi_latency_timer_vardecl_ftdi_sio_c_14293 ndi_latency_timer vardecl_ftdi_sio.c 0 14293 NULL
137315 +disable_so_gateway_addr_addr_wil_fw_record_gateway_data4_14300 gateway_addr_addr wil_fw_record_gateway_data4 0 14300 NULL
137316 +disable_so_rxrpc_validate_address_fndecl_14303 rxrpc_validate_address fndecl 0-3 14303 NULL
137317 +disable_so_function_num_atto_csmi_get_pci_bus_addr_14307 function_num atto_csmi_get_pci_bus_addr 0 14307 NULL
137318 +disable_so_packet_timeout_jiffies_lego_usb_tower_14311 packet_timeout_jiffies lego_usb_tower 0 14311 NULL
137319 +disable_so_caller_uid_ceph_mds_request_head_14323 caller_uid ceph_mds_request_head 0 14323 NULL
137320 +disable_so_e1000_get_phy_addr_for_bm_page_fndecl_14324 e1000_get_phy_addr_for_bm_page fndecl 0-1-2 14324 NULL
137321 +disable_so_buf_base_addr_c67x00_hcd_14328 buf_base_addr c67x00_hcd 0 14328 NULL nohasharray
137322 +disable_so_hactive_hi_lvds_dvo_timing_14328 hactive_hi lvds_dvo_timing 0 14328 &disable_so_buf_base_addr_c67x00_hcd_14328
137323 +disable_so_addr_nv4e_i2c_port_14334 addr nv4e_i2c_port 0 14334 NULL
137324 +disable_so_ncp_add_be16_fndecl_14337 ncp_add_be16 fndecl 2 14337 NULL
137325 +disable_so_paddr_mm_dmapool_14345 paddr mm_dmapool 0 14345 NULL
137326 +disable_so_disc_wait_time_esas2r_adapter_14347 disc_wait_time esas2r_adapter 0 14347 NULL
137327 +disable_so_sgidx_scsi_ctrl_blk_14351 sgidx scsi_ctrl_blk 0 14351 NULL
137328 +disable_so_compute_split_timeout_timestamp_fndecl_14357 compute_split_timeout_timestamp fndecl 0-2 14357 NULL
137329 +disable_so_sin_port_sockaddr_in_14374 sin_port sockaddr_in 0 14374 NULL
137330 +disable_so_ci_get_mclk_frequency_ratio_fndecl_14375 ci_get_mclk_frequency_ratio fndecl 0-1 14375 NULL nohasharray
137331 +disable_so_nilfs_btree_node_move_left_fndecl_14375 nilfs_btree_node_move_left fndecl 3 14375 &disable_so_ci_get_mclk_frequency_ratio_fndecl_14375
137332 +disable_so_stv0367cab_get_derot_freq_fndecl_14379 stv0367cab_get_derot_freq fndecl 0-2 14379 NULL
137333 +disable_so_line_time_radeon_crtc_14380 line_time radeon_crtc 0 14380 NULL
137334 +disable_so_src_data_addr_icp_qat_fw_comn_req_mid_14391 src_data_addr icp_qat_fw_comn_req_mid 0 14391 NULL
137335 +disable_so_dev_addr_cx231xx_i2c_xfer_data_14403 dev_addr cx231xx_i2c_xfer_data 0 14403 NULL
137336 +disable_so_card_snd_timer_info32_14407 card snd_timer_info32 0 14407 NULL nohasharray
137337 +disable_so_authenc_esn_verify_ahash_done_fndecl_14407 authenc_esn_verify_ahash_done fndecl 2 14407 &disable_so_card_snd_timer_info32_14407
137338 +disable_so_compat_put_timespec_fndecl_14416 compat_put_timespec fndecl 0 14416 NULL
137339 +disable_so_nct6775_write_fan_div_fndecl_14421 nct6775_write_fan_div fndecl 2 14421 NULL
137340 +disable_so_compat_sys_settimeofday_fndecl_14431 compat_sys_settimeofday fndecl 0 14431 NULL
137341 +disable_so_irlmp_start_idle_timer_fndecl_14433 irlmp_start_idle_timer fndecl 2 14433 NULL
137342 +disable_so_min_flt_signal_struct_14436 min_flt signal_struct 0 14436 NULL
137343 +disable_so___release_region_fndecl_14448 __release_region fndecl 2-3 14448 NULL
137344 +disable_so_dccp_time_wait_fndecl_14450 dccp_time_wait fndecl 3-2 14450 NULL nohasharray
137345 +disable_so_rt_mutex_timed_futex_lock_fndecl_14450 rt_mutex_timed_futex_lock fndecl 0 14450 &disable_so_dccp_time_wait_fndecl_14450
137346 +disable_so_div1_pll_div_14458 div1 pll_div 0 14458 NULL
137347 +disable_so_timestamp_ata_ering_entry_14485 timestamp ata_ering_entry 0 14485 NULL
137348 +disable_so_mod_delayed_work_on_fndecl_14497 mod_delayed_work_on fndecl 1-4 14497 NULL
137349 +disable_so_dma_addr_rx_14500 dma_addr rx 0 14500 NULL nohasharray
137350 +disable_so__rtl92de_signal_scale_mapping_fndecl_14500 _rtl92de_signal_scale_mapping fndecl 0-2 14500 &disable_so_dma_addr_rx_14500
137351 +disable_so_cp_hqd_pq_rptr_report_addr_hi_hqd_registers_14512 cp_hqd_pq_rptr_report_addr_hi hqd_registers 0 14512 NULL
137352 +disable_so_snd_emu1010_internal_clock_info_fndecl_14514 snd_emu1010_internal_clock_info fndecl 0 14514 NULL
137353 +disable_so_nicvf_queue_reg_write_fndecl_14519 nicvf_queue_reg_write fndecl 3-4 14519 NULL
137354 +disable_so_icsk_user_timeout_inet_connection_sock_14528 icsk_user_timeout inet_connection_sock 0 14528 NULL
137355 +disable_so_gcm_hash_assoc_remain_continue_fndecl_14530 gcm_hash_assoc_remain_continue fndecl 0 14530 NULL
137356 +disable_so_get_max_engine_clock_in_mhz_fndecl_14540 get_max_engine_clock_in_mhz fndecl 0 14540 NULL
137357 +disable_so_port_snd_seq_addr_14543 port snd_seq_addr 0 14543 NULL
137358 +disable_so_nouveau_pmops_runtime_resume_fndecl_14545 nouveau_pmops_runtime_resume fndecl 0 14545 NULL
137359 +disable_so_timeout_vardecl_nf_conntrack_netbios_ns_c_14547 timeout vardecl_nf_conntrack_netbios_ns.c 0 14547 NULL
137360 +disable_so_cik_get_gpu_clock_counter_fndecl_14557 cik_get_gpu_clock_counter fndecl 0 14557 NULL
137361 +disable_so_addrconf_fixup_forwarding_fndecl_14567 addrconf_fixup_forwarding fndecl 0-3 14567 NULL
137362 +disable_so_batadv_nc_hash_choose_fndecl_14575 batadv_nc_hash_choose fndecl 0-2 14575 NULL
137363 +disable_so_pbl_addr_iwch_reg_user_mr_resp_14576 pbl_addr iwch_reg_user_mr_resp 0 14576 NULL
137364 +disable_so_m48t59_rtc_read_time_fndecl_14585 m48t59_rtc_read_time fndecl 0 14585 NULL
137365 +disable_so_read_tsc_fndecl_14589 read_tsc fndecl 0 14589 NULL
137366 +disable_so_rtsc_min_fndecl_14591 rtsc_min fndecl 3-4 14591 NULL
137367 +disable_so_bank_addr_snd_ymfpci_voice_14595 bank_addr snd_ymfpci_voice 0 14595 NULL
137368 +disable_so_hpi_bitstream_get_activity_fndecl_14606 hpi_bitstream_get_activity fndecl 0 14606 NULL
137369 +disable_so_prandom_seed_early_fndecl_14613 prandom_seed_early fndecl 2 14613 NULL
137370 +disable_so_cmd_cons_dma_addr_qlcnic_hostrq_tx_ctx_14615 cmd_cons_dma_addr qlcnic_hostrq_tx_ctx 0 14615 NULL
137371 +disable_so_shash_async_import_fndecl_14618 shash_async_import fndecl 0 14618 NULL
137372 +disable_so_osc_clock_freq_drx_common_attr_14640 osc_clock_freq drx_common_attr 0 14640 NULL
137373 +disable_so_freq_ath5k_edge_power_14657 freq ath5k_edge_power 0 14657 NULL
137374 +disable_so_td_addr_c67x00_td_14658 td_addr c67x00_td 0 14658 NULL
137375 +disable_so_dma_addr_whc_std_14663 dma_addr whc_std 0 14663 NULL nohasharray
137376 +disable_so_elfcorehdr_addr_vardecl_14663 elfcorehdr_addr vardecl 0 14663 &disable_so_dma_addr_whc_std_14663
137377 +disable_so_ene_set_reg_addr_fndecl_14666 ene_set_reg_addr fndecl 2 14666 NULL
137378 +disable_so_fbk_divider_panel_info_14668 fbk_divider panel_info 0 14668 NULL
137379 +disable_so_bytes_snd_pcm_oss_runtime_14669 bytes snd_pcm_oss_runtime 0 14669 NULL
137380 +disable_so_vadc_hw_settle_time_from_dt_fndecl_14670 vadc_hw_settle_time_from_dt fndecl 0-1 14670 NULL
137381 +disable_so_crypto842_mod_init_fndecl_14677 crypto842_mod_init fndecl 0 14677 NULL
137382 +disable_so_max77693_set_timeout_fndecl_14678 max77693_set_timeout fndecl 2 14678 NULL
137383 +disable_so_mtt_base_addr_h_mlx4_qp_context_14690 mtt_base_addr_h mlx4_qp_context 0 14690 NULL
137384 +disable_so_mtt_base_addr_l_mlx4_srq_context_14691 mtt_base_addr_l mlx4_srq_context 0 14691 NULL
137385 +disable_so_fib_info_hash_size_vardecl_fib_semantics_c_14699 fib_info_hash_size vardecl_fib_semantics.c 0 14699 NULL
137386 +disable_so___addr_hash_fndecl_14702 __addr_hash fndecl 0-3-4 14702 NULL
137387 +disable_so_rise_time_lp8788_bl_config_14703 rise_time lp8788_bl_config 0 14703 NULL
137388 +disable_so_ebitmap_start_positive_fndecl_14708 ebitmap_start_positive fndecl 0 14708 NULL
137389 +disable_so_ssb_chipco_watchdog_timer_set_wdt_fndecl_14712 ssb_chipco_watchdog_timer_set_wdt fndecl 2-0 14712 NULL
137390 +disable_so_saddr_ipq_14715 saddr ipq 0 14715 NULL
137391 +disable_so_il4965_math_div_round_fndecl_14717 il4965_math_div_round fndecl 1-2 14717 NULL
137392 +disable_so_dac_mmap_min_addr_vardecl_14725 dac_mmap_min_addr vardecl 0 14725 NULL
137393 +disable_so_show_sas_end_dev_initiator_response_timeout_fndecl_14730 show_sas_end_dev_initiator_response_timeout fndecl 0 14730 NULL
137394 +disable_so_md5_mod_init_fndecl_14761 md5_mod_init fndecl 0 14761 NULL
137395 +disable_so_lasttime_htcp_14766 lasttime htcp 0 14766 NULL
137396 +disable_so_cac_time_ms_mwifiex_radar_params_14775 cac_time_ms mwifiex_radar_params 0 14775 NULL
137397 +disable_so_rs5c348_rtc_set_time_fndecl_14776 rs5c348_rtc_set_time fndecl 0 14776 NULL
137398 +disable_so_o2net_sc_queue_delayed_work_fndecl_14778 o2net_sc_queue_delayed_work fndecl 3 14778 NULL
137399 +disable_so_phonet_address_del_fndecl_14787 phonet_address_del fndecl 0 14787 NULL
137400 +disable_so_efx_phc_adjtime_fndecl_14790 efx_phc_adjtime fndecl 0 14790 NULL
137401 +disable_so_lzo_compress_pages_fndecl_14806 lzo_compress_pages fndecl 3-4 14806 NULL
137402 +disable_so_chv_gpu_freq_fndecl_14811 chv_gpu_freq fndecl 0-2 14811 NULL nohasharray
137403 +disable_so_nbytes_blkcipher_walk_14811 nbytes blkcipher_walk 0 14811 &disable_so_chv_gpu_freq_fndecl_14811
137404 +disable_so_addr___mem_14815 addr __mem 0 14815 NULL
137405 +disable_so___cpufreq_governor_fndecl_14821 __cpufreq_governor fndecl 0 14821 NULL nohasharray
137406 +disable_so_hash_lo_smsc95xx_priv_14821 hash_lo smsc95xx_priv 0 14821 &disable_so___cpufreq_governor_fndecl_14821
137407 +disable_so_naddr_ipath_user_sdma_pkt_14830 naddr ipath_user_sdma_pkt 0 14830 NULL
137408 +disable_so_address_pci_mmcfg_region_14831 address pci_mmcfg_region 0 14831 NULL
137409 +disable_so_crypto_ecb_module_init_fndecl_14834 crypto_ecb_module_init fndecl 0 14834 NULL
137410 +disable_so_last_host_tsc_kvm_vcpu_arch_14836 last_host_tsc kvm_vcpu_arch 0 14836 NULL
137411 +disable_so_eir_has_uuids_fndecl_14845 eir_has_uuids fndecl 2 14845 NULL
137412 +disable_so_b_addr_xfer_desc_buffer_14849 b_addr xfer_desc_buffer 0 14849 NULL
137413 +disable_so_xtal_freq_mxl5005s_config_14852 xtal_freq mxl5005s_config 0 14852 NULL
137414 +disable_so_pvclock_tsc_khz_fndecl_14859 pvclock_tsc_khz fndecl 0 14859 NULL
137415 +disable_so_isl1208_rtc_interrupt_fndecl_14861 isl1208_rtc_interrupt fndecl 0 14861 NULL
137416 +disable_so_dwell_time_passive_wmi_start_scan_arg_14866 dwell_time_passive wmi_start_scan_arg 0 14866 NULL
137417 +disable_so_writeout_period_time_vardecl_page_writeback_c_14870 writeout_period_time vardecl_page-writeback.c 0 14870 NULL
137418 +disable_so_valid_mtrr_type_fndecl_14883 valid_mtrr_type fndecl 1 14883 NULL
137419 +disable_so_dev_idx_sockaddr_nfc_llcp_14893 dev_idx sockaddr_nfc_llcp 0 14893 NULL
137420 +disable_so_addr_nv50_disp_mthd_chan_14896 addr nv50_disp_mthd_chan 0 14896 NULL
137421 +disable_so_ts_paddr_end_ath_hw_14898 ts_paddr_end ath_hw 0 14898 NULL
137422 +disable_so_get_urb_to_r8a66597_addr_fndecl_14901 get_urb_to_r8a66597_addr fndecl 0 14901 NULL
137423 +disable_so_remote_ref_time_lp_14915 remote_ref_time lp 0 14915 NULL
137424 +disable_so_bitmap_id_iscsi_conn_14920 bitmap_id iscsi_conn 0 14920 NULL
137425 +disable_so_root_btrfs_delayed_data_ref_14922 root btrfs_delayed_data_ref 0 14922 NULL
137426 +disable_so_c67x00_ll_read_mem_le16_fndecl_14937 c67x00_ll_read_mem_le16 fndecl 2-4 14937 NULL
137427 +disable_so_addr_sz_picolcd_data_14956 addr_sz picolcd_data 0 14956 NULL
137428 +disable_so_xhci_calculate_intel_u1_timeout_fndecl_14959 xhci_calculate_intel_u1_timeout fndecl 0 14959 NULL
137429 +disable_so_crypto_init_shash_ops_fndecl_14968 crypto_init_shash_ops fndecl 0 14968 NULL
137430 +disable_so_cputime_to_compat_timeval_fndecl_14969 cputime_to_compat_timeval fndecl 1 14969 NULL nohasharray
137431 +disable_so_cpufreq_set_cur_state_fndecl_14969 cpufreq_set_cur_state fndecl 1 14969 &disable_so_cputime_to_compat_timeval_fndecl_14969
137432 +disable_so_start_time_flakey_c_14970 start_time flakey_c 0 14970 NULL
137433 +disable_so_snd_asihpi_sampleclock_add_fndecl_14973 snd_asihpi_sampleclock_add fndecl 0 14973 NULL
137434 +disable_so_addr_sky2_tx_le_14974 addr sky2_tx_le 0 14974 NULL
137435 +disable_so_mcfg_addr_acpi_pci_root_14978 mcfg_addr acpi_pci_root 0 14978 NULL
137436 +disable_so_cryptd_hash_import_fndecl_14985 cryptd_hash_import fndecl 0 14985 NULL
137437 +disable_so_cac_start_time_wireless_dev_14998 cac_start_time wireless_dev 0 14998 NULL
137438 +disable_so_inaddr_any_override_acl_subject_label_15014 inaddr_any_override acl_subject_label 0 15014 NULL
137439 +disable_so_dma_addr_cmdQ_ce_15023 dma_addr cmdQ_ce 0 15023 NULL nohasharray
137440 +disable_so_affs_init_bitmap_fndecl_15023 affs_init_bitmap fndecl 0 15023 &disable_so_dma_addr_cmdQ_ce_15023
137441 +disable_so_select_addr_qla8xxx_minidump_entry_mux_15025 select_addr qla8xxx_minidump_entry_mux 0 15025 NULL
137442 +disable_so_frequency_cx24113_state_15031 frequency cx24113_state 0 15031 NULL
137443 +disable_so_port0_phy_addr_falcon_nvconfig_board_v2_15034 port0_phy_addr falcon_nvconfig_board_v2 0 15034 NULL
137444 +disable_so_snd_dice_transaction_get_clock_source_fndecl_15041 snd_dice_transaction_get_clock_source fndecl 0 15041 NULL
137445 +disable_so_valid_time_prefix_cacheinfo_15043 valid_time prefix_cacheinfo 0 15043 NULL
137446 +disable_so_acpi_get_cpuid_fndecl_15055 acpi_get_cpuid fndecl 0-3 15055 NULL
137447 +disable_so_faddr_rds_info_message_15057 faddr rds_info_message 0 15057 NULL
137448 +disable_so_hsync_pulse_width_lo_oaktrail_timing_info_15059 hsync_pulse_width_lo oaktrail_timing_info 0 15059 NULL
137449 +disable_so_mthca_WRITE_MTT_fndecl_15060 mthca_WRITE_MTT fndecl 0-3 15060 NULL
137450 +disable_so_ath9k_iowrite32_fndecl_15073 ath9k_iowrite32 fndecl 2 15073 NULL
137451 +disable_so_uid_max_xt_owner_match_info_15077 uid_max xt_owner_match_info 0 15077 NULL
137452 +disable_so_addr_low_mcp_kreq_ether_recv_15081 addr_low mcp_kreq_ether_recv 0 15081 NULL
137453 +disable_so_gem_get_device_address_fndecl_15093 gem_get_device_address fndecl 0 15093 NULL
137454 +disable_so_s5m8767_rtc_set_time_reg_fndecl_15094 s5m8767_rtc_set_time_reg fndecl 0 15094 NULL
137455 +disable_so_host_side_addr_fit_sg_descriptor_15098 host_side_addr fit_sg_descriptor 0 15098 NULL
137456 +disable_so_gtt_start_gpu_addr_kfd_dev_15100 gtt_start_gpu_addr kfd_dev 0 15100 NULL
137457 +disable_so_device_timestamp_ieee80211_rx_status_15103 device_timestamp ieee80211_rx_status 0 15103 NULL
137458 +disable_so_tcp_fastopen_reset_cipher_fndecl_15116 tcp_fastopen_reset_cipher fndecl 2 15116 NULL
137459 +disable_so_acpi_leave_sleep_state_prep_fndecl_15121 acpi_leave_sleep_state_prep fndecl 0-1 15121 NULL
137460 +disable_so_suspend_freq_cpufreq_policy_15133 suspend_freq cpufreq_policy 0 15133 NULL
137461 +disable_so___usb_control_msg_fndecl_15142 __usb_control_msg fndecl 8-2-9-5-0-4-6-3 15142 NULL
137462 +disable_so_sin6_scope_id_sockaddr_in6_15151 sin6_scope_id sockaddr_in6 0 15151 NULL
137463 +disable_so_ufshcd_devfreq_target_fndecl_15152 ufshcd_devfreq_target fndecl 0 15152 NULL
137464 +disable_so_dma_addr_wbsd_host_15158 dma_addr wbsd_host 0 15158 NULL
137465 +disable_so_timer_in_use_old_nes_hw_tune_timer_15174 timer_in_use_old nes_hw_tune_timer 0 15174 NULL
137466 +disable_so_mce_log_therm_throt_event_fndecl_15178 mce_log_therm_throt_event fndecl 1 15178 NULL nohasharray
137467 +disable_so_mce_write_fndecl_15178 mce_write fndecl 3-0 15178 &disable_so_mce_log_therm_throt_event_fndecl_15178
137468 +disable_so_expires_cpu_timer_list_15182 expires cpu_timer_list 0 15182 NULL
137469 +disable_so_address_drm_dp_aux_msg_15184 address drm_dp_aux_msg 0 15184 NULL
137470 +disable_so_eip_tss_segment_32_15186 eip tss_segment_32 0 15186 NULL
137471 +disable_so_snd_als4000_interrupt_fndecl_15191 snd_als4000_interrupt fndecl 1 15191 NULL nohasharray
137472 +disable_so_pcf2123_rtc_read_time_fndecl_15191 pcf2123_rtc_read_time fndecl 0 15191 &disable_so_snd_als4000_interrupt_fndecl_15191
137473 +disable_so_rcx_kvm_regs_15192 rcx kvm_regs 0 15192 NULL
137474 +disable_so_dma_addr_s_rxd_os_15193 dma_addr s_rxd_os 0 15193 NULL
137475 +disable_so_retrans_time_ifla_cacheinfo_15201 retrans_time ifla_cacheinfo 0 15201 NULL
137476 +disable_so_cxd2820r_sleep_t_fndecl_15204 cxd2820r_sleep_t fndecl 0 15204 NULL
137477 +disable_so_bcma_core_pcie2_war_delay_perst_enab_fndecl_15208 bcma_core_pcie2_war_delay_perst_enab fndecl 0 15208 NULL
137478 +disable_so_btrfs_delayed_inode_reserve_metadata_fndecl_15215 btrfs_delayed_inode_reserve_metadata fndecl 0 15215 NULL
137479 +disable_so___iowrite64_copy_fndecl_15216 __iowrite64_copy fndecl 3 15216 NULL nohasharray
137480 +disable_so_ext3fs_dirhash_fndecl_15216 ext3fs_dirhash fndecl 2 15216 &disable_so___iowrite64_copy_fndecl_15216
137481 +disable_so_nilfs_btree_propagate_fndecl_15225 nilfs_btree_propagate fndecl 0 15225 NULL
137482 +disable_so_sha256_ssse3_update_fndecl_15226 sha256_ssse3_update fndecl 3 15226 NULL
137483 +disable_so_target_addr_i2400m_bootrom_header_15227 target_addr i2400m_bootrom_header 0 15227 NULL
137484 +disable_so_ip_vs_addr_equal_fndecl_15229 ip_vs_addr_equal fndecl 1 15229 NULL
137485 +disable_so_matroxfb_PLL_calcclock_fndecl_15230 matroxfb_PLL_calcclock fndecl 2-3-0 15230 NULL
137486 +disable_so_int_timeout_msb_data_15245 int_timeout msb_data 0 15245 NULL nohasharray
137487 +disable_so_check_quotactl_permission_fndecl_15245 check_quotactl_permission fndecl 4-0-3-2 15245 &disable_so_int_timeout_msb_data_15245
137488 +disable_so_expires_crash_uid_15248 expires crash_uid 0 15248 NULL
137489 +disable_so_mul_n_basecase_fndecl_15258 mul_n_basecase fndecl 4 15258 NULL
137490 +disable_so_crypto_xcbc_digest_update_fndecl_15259 crypto_xcbc_digest_update fndecl 3 15259 NULL
137491 +disable_so_first_jiffies_ati_remote_15260 first_jiffies ati_remote 0 15260 NULL
137492 +disable_so___get_hash_thresh_fndecl_15268 __get_hash_thresh fndecl 2 15268 NULL
137493 +disable_so_isoc_in_endpointaddr_au0828_dev_15269 isoc_in_endpointaddr au0828_dev 0 15269 NULL
137494 +disable_so_crypto_ctxsize_fndecl_15285 crypto_ctxsize fndecl 0 15285 NULL
137495 +disable_so_max_rx_ip_addr_qlcnic_info_15295 max_rx_ip_addr qlcnic_info 0 15295 NULL nohasharray
137496 +disable_so_mtrr_add_fndecl_15295 mtrr_add fndecl 1-2 15295 &disable_so_max_rx_ip_addr_qlcnic_info_15295
137497 +disable_so_plugged_delay_bau_control_15298 plugged_delay bau_control 0 15298 NULL
137498 +disable_so_skcipher_async_cb_fndecl_15303 skcipher_async_cb fndecl 2 15303 NULL
137499 +disable_so_bytes_bitmap_storage_15310 bytes bitmap_storage 0 15310 NULL
137500 +disable_so_xhci_calculate_u1_timeout_fndecl_15314 xhci_calculate_u1_timeout fndecl 0 15314 NULL nohasharray
137501 +disable_so_sym_getpciclock_fndecl_15314 sym_getpciclock fndecl 0 15314 &disable_so_xhci_calculate_u1_timeout_fndecl_15314 nohasharray
137502 +disable_so_major_hash_ocfs2_dx_hinfo_15314 major_hash ocfs2_dx_hinfo 0 15314 &disable_so_sym_getpciclock_fndecl_15314
137503 +disable_so_ns_delay_scale_fndecl_15317 ns_delay_scale fndecl 4 15317 NULL
137504 +disable_so_addr_atiixp_dma_desc_15333 addr atiixp_dma_desc 0 15333 NULL
137505 +disable_so_logicalBlockNum_kernel_lb_addr_15336 logicalBlockNum kernel_lb_addr 0 15336 NULL
137506 +disable_so_last_rx_timestamp_i40e_ring_15342 last_rx_timestamp i40e_ring 0 15342 NULL
137507 +disable_so_ifa_index_ifaddrmsg_15348 ifa_index ifaddrmsg 0 15348 NULL
137508 +disable_so_timing_reg_mtk_i2c_15349 timing_reg mtk_i2c 0 15349 NULL
137509 +disable_so_msr_srcimp_desc_15353 msr srcimp_desc 0 15353 NULL
137510 +disable_so_r2c_val_fc2580_freq_regs_15359 r2c_val fc2580_freq_regs 0 15359 NULL
137511 +disable_so_xfer_udelay_nci_spi_15364 xfer_udelay nci_spi 0 15364 NULL
137512 +disable_so_hash_key_type_and_desc_fndecl_15370 hash_key_type_and_desc fndecl 0 15370 NULL
137513 +disable_so_set_window_latch_addr_flash_info_15372 set_window latch_addr_flash_info 1 15372 NULL
137514 +disable_so_host_addr_ipw2100_bd_15376 host_addr ipw2100_bd 0 15376 NULL
137515 +disable_so_eeprom_addr_state_15380 eeprom_addr state 0 15380 NULL
137516 +disable_so_sys_mq_timedreceive_fndecl_15392 sys_mq_timedreceive fndecl 1-3 15392 NULL
137517 +disable_so_ghash_async_update_fndecl_15422 ghash_async_update fndecl 0 15422 NULL
137518 +disable_so___send_signal_fndecl_15424 __send_signal fndecl 0-1 15424 NULL
137519 +disable_so_edi_user_regs_struct32_15430 edi user_regs_struct32 0 15430 NULL
137520 +disable_so_perf_cpu_time_max_percent_handler_fndecl_15448 perf_cpu_time_max_percent_handler fndecl 0 15448 NULL
137521 +disable_so_phy_register_fixup_for_uid_fndecl_15449 phy_register_fixup_for_uid fndecl 0 15449 NULL
137522 +disable_so_vpd_address_write_fndecl_15453 vpd_address_write fndecl 0-2-3 15453 NULL
137523 +disable_so_schedule_timeout_killable_fndecl_15458 schedule_timeout_killable fndecl 1-0 15458 NULL
137524 +disable_so_a21_wdt_set_timeout_fndecl_15463 a21_wdt_set_timeout fndecl 2 15463 NULL
137525 +disable_so_reg_val_pll_div_15464 reg_val pll_div 0 15464 NULL
137526 +disable_so_adjfreq_ptp_clock_info_15468 adjfreq ptp_clock_info 2 15468 NULL
137527 +disable_so___nlm_hash_addr6_fndecl_15486 __nlm_hash_addr6 fndecl 0 15486 NULL
137528 +disable_so_addr_sgentry_15489 addr sgentry 0 15489 NULL
137529 +disable_so_psb_sgx_interrupt_fndecl_15502 psb_sgx_interrupt fndecl 2-3 15502 NULL
137530 +disable_so_clk_divider_recalc_rate_fndecl_15503 clk_divider_recalc_rate fndecl 2-0 15503 NULL
137531 +disable_so_xferq_addr_hi_fcoe_kwqe_conn_offload2_15506 xferq_addr_hi fcoe_kwqe_conn_offload2 0 15506 NULL
137532 +disable_so_enable_usb3_lpm_timeout_hc_driver_15513 enable_usb3_lpm_timeout hc_driver 0 15513 NULL
137533 +disable_so_i2c_addr_lg2160_config_15521 i2c_addr lg2160_config 0 15521 NULL
137534 +disable_so_timeout_ms_nvme_passthru_cmd_15526 timeout_ms nvme_passthru_cmd 0 15526 NULL
137535 +disable_so_vm_cr_msr_nested_state_15529 vm_cr_msr nested_state 0 15529 NULL
137536 +disable_so_ocfs2_xattr_find_divide_pos_fndecl_15532 ocfs2_xattr_find_divide_pos fndecl 0 15532 NULL
137537 +disable_so_async_schedule_domain_fndecl_15534 async_schedule_domain fndecl 0 15534 NULL
137538 +disable_so_last_cqm_event_signal_ieee80211_if_managed_15539 last_cqm_event_signal ieee80211_if_managed 0 15539 NULL
137539 +disable_so_aic79xx_seltime_vardecl_aic79xx_osm_c_15542 aic79xx_seltime vardecl_aic79xx_osm.c 0 15542 NULL
137540 +disable_so_hrtimer_interval_ms_pmu_15546 hrtimer_interval_ms pmu 0 15546 NULL
137541 +disable_so_address_hi_msi_msg_15552 address_hi msi_msg 0 15552 NULL
137542 +disable_so_test_and_clear_bit_le_fndecl_15554 test_and_clear_bit_le fndecl 1 15554 NULL
137543 +disable_so_snd_echo_clock_source_put_fndecl_15557 snd_echo_clock_source_put fndecl 0 15557 NULL
137544 +disable_so_wait_for_completion_interruptible_timeout_fndecl_15561 wait_for_completion_interruptible_timeout fndecl 0-2 15561 NULL
137545 +disable_so_recover_width_atiixp_ide_timing_15562 recover_width atiixp_ide_timing 0 15562 NULL
137546 +disable_so_start_int_poll_timer_fndecl_15566 start_int_poll_timer fndecl 2 15566 NULL
137547 +disable_so_runtime_error_dev_pm_info_15567 runtime_error dev_pm_info 0 15567 NULL
137548 +disable_so_rdmsrl_on_cpu_fndecl_15568 rdmsrl_on_cpu fndecl 0-1 15568 NULL
137549 +disable_so_test_ahash_cycles_fndecl_15585 test_ahash_cycles fndecl 0-3 15585 NULL
137550 +disable_so_freq_hz_xc5000_priv_15586 freq_hz xc5000_priv 0 15586 NULL
137551 +disable_so_timeout_d_tpm_vendor_specific_15591 timeout_d tpm_vendor_specific 0 15591 NULL nohasharray
137552 +disable_so_laddr_rds_info_connection_15591 laddr rds_info_connection 0 15591 &disable_so_timeout_d_tpm_vendor_specific_15591
137553 +disable_so_be_get_rss_hash_opts_fndecl_15601 be_get_rss_hash_opts fndecl 0 15601 NULL
137554 +disable_so_shadow_addr_kvm_shadow_walk_iterator_15604 shadow_addr kvm_shadow_walk_iterator 0 15604 NULL
137555 +disable_so_hactive_lo_detailed_pixel_timing_15606 hactive_lo detailed_pixel_timing 0 15606 NULL
137556 +disable_so_SYSC_getpgid_fndecl_15618 SYSC_getpgid fndecl 0-1 15618 NULL
137557 +disable_so_inet_dump_ifaddr_fndecl_15621 inet_dump_ifaddr fndecl 0 15621 NULL
137558 +disable_so_sjw_t_pucan_timing_slow_15625 sjw_t pucan_timing_slow 0 15625 NULL
137559 +disable_so_slave_id_snd_timer_instance_15628 slave_id snd_timer_instance 0 15628 NULL nohasharray
137560 +disable_so__ubh_find_last_zero_bit__fndecl_15628 _ubh_find_last_zero_bit_ fndecl 0-3-4-5 15628 &disable_so_slave_id_snd_timer_instance_15628
137561 +disable_so_cmin_flt_signal_struct_15630 cmin_flt signal_struct 0 15630 NULL
137562 +disable_so_sg_busaddr_ips_scb_15639 sg_busaddr ips_scb 0 15639 NULL
137563 +disable_so_rq_timeout_rpc_rqst_15640 rq_timeout rpc_rqst 0 15640 NULL
137564 +disable_so_hpi_bitstream_set_data_polarity_fndecl_15646 hpi_bitstream_set_data_polarity fndecl 0-1 15646 NULL
137565 +disable_so_bs_rdiv_cx24113_state_15647 bs_rdiv cx24113_state 0 15647 NULL
137566 +disable_so_addr_lo_sli4_sge_15650 addr_lo sli4_sge 0 15650 NULL
137567 +disable_so_sctp_getsockopt_primary_addr_fndecl_15660 sctp_getsockopt_primary_addr fndecl 0 15660 NULL
137568 +disable_so_chip_uptime_esas2r_adapter_15661 chip_uptime esas2r_adapter 0 15661 NULL
137569 +disable_so_rx_statistics_jiffies_iwl_priv_15670 rx_statistics_jiffies iwl_priv 0 15670 NULL
137570 +disable_so_ablkcipher_walk_phys_fndecl_15671 ablkcipher_walk_phys fndecl 0 15671 NULL
137571 +disable_so_test_bitmaps_and_extents_fndecl_15676 test_bitmaps_and_extents fndecl 0 15676 NULL
137572 +disable_so_cur_rx_coal_timeval_vnic_cq_15695 cur_rx_coal_timeval vnic_cq 0 15695 NULL
137573 +disable_so_ds_addr_bus_dma_segment_15697 ds_addr bus_dma_segment 0 15697 NULL
137574 +disable_so_hrtimer_forward_fndecl_15719 hrtimer_forward fndecl 0 15719 NULL
137575 +disable_so_pmc_sleep_tmr_open_fndecl_15722 pmc_sleep_tmr_open fndecl 0 15722 NULL
137576 +disable_so_ovol_updated_control_runtime_15730 ovol_updated control_runtime 0 15730 NULL
137577 +disable_so___btrfs_run_delayed_refs_fndecl_15751 __btrfs_run_delayed_refs fndecl 0 15751 NULL
137578 +disable_so_at803x_ack_interrupt_fndecl_15758 at803x_ack_interrupt fndecl 0 15758 NULL
137579 +disable_so_phy_addr_bnx2_15762 phy_addr bnx2 0 15762 NULL
137580 +disable_so_acpi_os_sleep_fndecl_15766 acpi_os_sleep fndecl 1 15766 NULL
137581 +disable_so_mceusb_dev_driver_init_fndecl_15775 mceusb_dev_driver_init fndecl 0 15775 NULL
137582 +disable_so_iowrite32be_fndecl_15786 iowrite32be fndecl 1 15786 NULL
137583 +disable_so_rp1_freq_intel_gen6_power_mgmt_15787 rp1_freq intel_gen6_power_mgmt 0 15787 NULL
137584 +disable_so_mapped_rem_addr_nes_cm_info_15788 mapped_rem_addr nes_cm_info 0 15788 NULL
137585 +disable_so_bulkin_endpoint_addr_rsi_91x_usbdev_15790 bulkin_endpoint_addr rsi_91x_usbdev 0 15790 NULL
137586 +disable_so_connected_addr_rds_info_socket_15792 connected_addr rds_info_socket 0 15792 NULL
137587 +disable_so_usc_enable_aux_clock_fndecl_15795 usc_enable_aux_clock fndecl 2 15795 NULL
137588 +disable_so_add_delayed_tree_ref_fndecl_15797 add_delayed_tree_ref fndecl 11-5-6-7-8-9 15797 NULL
137589 +disable_so_wow_intr_before_sleep_ath_softc_15802 wow_intr_before_sleep ath_softc 0 15802 NULL
137590 +disable_so_rgb_time_bd2802_led_platform_data_15808 rgb_time bd2802_led_platform_data 0 15808 NULL
137591 +disable_so_intel_sdvo_get_slave_addr_fndecl_15818 intel_sdvo_get_slave_addr fndecl 0 15818 NULL
137592 +disable_so_tsc_start_vardecl_tsc_c_15853 tsc_start vardecl_tsc.c 0 15853 NULL
137593 +disable_so_get_cycle_time_fndecl_15861 get_cycle_time fndecl 0 15861 NULL
137594 +disable_so_cookie_dmaengine_pcm_runtime_data_15862 cookie dmaengine_pcm_runtime_data 0 15862 NULL nohasharray
137595 +disable_so___bfa_dma_be_addr_set_fndecl_15862 __bfa_dma_be_addr_set fndecl 2 15862 &disable_so_cookie_dmaengine_pcm_runtime_data_15862
137596 +disable_so_vactive_timing_15863 vactive timing 0 15863 NULL
137597 +disable_so_management_agent_address_sbp2_target_15871 management_agent_address sbp2_target 0 15871 NULL
137598 +disable_so_i2c_check_addr_busy_fndecl_15889 i2c_check_addr_busy fndecl 2 15889 NULL
137599 +disable_so_db_rec_addr_mlx4_cq_context_15890 db_rec_addr mlx4_cq_context 0 15890 NULL
137600 +disable_so_addr_wil_memio_block_15893 addr wil_memio_block 0 15893 NULL
137601 +disable_so_interrupt_out_size_usb_serial_port_15896 interrupt_out_size usb_serial_port 0 15896 NULL
137602 +disable_so_wait_for_completion_killable_fndecl_15899 wait_for_completion_killable fndecl 0 15899 NULL
137603 +disable_so_m48t35_read_time_fndecl_15900 m48t35_read_time fndecl 0 15900 NULL
137604 +disable_so_ath9k_btcoex_handle_interrupt_fndecl_15912 ath9k_btcoex_handle_interrupt fndecl 2 15912 NULL
137605 +disable_so_get_key_lib80211_crypto_ops_15916 get_key lib80211_crypto_ops 0-2 15916 NULL
137606 +disable_so_tw_sport_inet_timewait_sock_15928 tw_sport inet_timewait_sock 0 15928 NULL
137607 +disable_so_crypto_xor_byte_fndecl_15934 crypto_xor_byte fndecl 3 15934 NULL
137608 +disable_so_nilfs_btree_promote_key_fndecl_15935 nilfs_btree_promote_key fndecl 4 15935 NULL
137609 +disable_so_irq_set_chip_data_fndecl_15945 irq_set_chip_data fndecl 1 15945 NULL
137610 +disable_so_retransmits_timed_out_fndecl_15952 retransmits_timed_out fndecl 3 15952 NULL
137611 +disable_so_titsc_config_wires_fndecl_15953 titsc_config_wires fndecl 0 15953 NULL
137612 +disable_so_cpufreq_quick_get_max_fndecl_15956 cpufreq_quick_get_max fndecl 0-1 15956 NULL
137613 +disable_so_verify_ptp_clock_info_15963 verify ptp_clock_info 4 15963 NULL
137614 +disable_so_gid_ceph_mds_caps_15966 gid ceph_mds_caps 0 15966 NULL
137615 +disable_so_mlx4_ib_update_cache_on_guid_change_fndecl_15969 mlx4_ib_update_cache_on_guid_change fndecl 2-3 15969 NULL
137616 +disable_so_musb_write_txfunaddr_fndecl_15974 musb_write_txfunaddr fndecl 2-3 15974 NULL
137617 +disable_so_acpi_ut_add_address_range_fndecl_16007 acpi_ut_add_address_range fndecl 1-2-3-0 16007 NULL
137618 +disable_so_dma_addr_rsxx_dma_16020 dma_addr rsxx_dma 0 16020 NULL
137619 +disable_so_setup_acpi_object_addr_handler_16031 setup acpi_object_addr_handler 0 16031 NULL
137620 +disable_so_idletimer_tg_init_fndecl_16041 idletimer_tg_init fndecl 0 16041 NULL
137621 +disable_so_msdu_paddr_htt_mgmt_tx_desc_16042 msdu_paddr htt_mgmt_tx_desc 0 16042 NULL
137622 +disable_so_radeon_atombios_parse_pplib_non_clock_info_fndecl_16044 radeon_atombios_parse_pplib_non_clock_info fndecl 2 16044 NULL
137623 +disable_so_scale_stime_fndecl_16047 scale_stime fndecl 1-2-3-0 16047 NULL
137624 +disable_so_wl12xx_enable_interrupts_fndecl_16057 wl12xx_enable_interrupts fndecl 0 16057 NULL
137625 +disable_so_paddr_persistent_ram_zone_16058 paddr persistent_ram_zone 0 16058 NULL
137626 +disable_so_get_dst_timing_fndecl_16070 get_dst_timing fndecl 0 16070 NULL
137627 +disable_so_max_init_timeo_sctp_association_16072 max_init_timeo sctp_association 0 16072 NULL
137628 +disable_so_update_gid_table_fndecl_16082 update_gid_table fndecl 2 16082 NULL
137629 +disable_so_dma_addr_xilly_mapping_16083 dma_addr xilly_mapping 0 16083 NULL
137630 +disable_so_bt_wait_time_ath_btcoex_16086 bt_wait_time ath_btcoex 0 16086 NULL
137631 +disable_so_cfg80211_rx_unexpected_4addr_frame_fndecl_16088 cfg80211_rx_unexpected_4addr_frame fndecl 3 16088 NULL
137632 +disable_so_ip6_rt_gc_timeout_netns_sysctl_ipv6_16090 ip6_rt_gc_timeout netns_sysctl_ipv6 0 16090 NULL nohasharray
137633 +disable_so_ieee80211_if_read_path_refresh_time_fndecl_16090 ieee80211_if_read_path_refresh_time fndecl 3-0 16090 &disable_so_ip6_rt_gc_timeout_netns_sysctl_ipv6_16090
137634 +disable_so_wimax_addr_scnprint_fndecl_16095 wimax_addr_scnprint fndecl 4 16095 NULL
137635 +disable_so_airspy_s_frequency_fndecl_16098 airspy_s_frequency fndecl 0 16098 NULL
137636 +disable_so_crypto_blkcipher_ctxsize_fndecl_16105 crypto_blkcipher_ctxsize fndecl 0 16105 NULL
137637 +disable_so_blk_addr_f2fs_io_info_16107 blk_addr f2fs_io_info 0 16107 NULL
137638 +disable_so_div_r0_pll_values_16109 div_r0 pll_values 0 16109 NULL
137639 +disable_so_slack_hold_time_dql_16111 slack_hold_time dql 0 16111 NULL
137640 +disable_so_iscsi_tpg_attrib_show_netif_timeout_fndecl_16119 iscsi_tpg_attrib_show_netif_timeout fndecl 0 16119 NULL
137641 +disable_so_crypto_inc_fndecl_16125 crypto_inc fndecl 2 16125 NULL
137642 +disable_so_dualwatch_jiffies_ivtv_16137 dualwatch_jiffies ivtv 0 16137 NULL nohasharray
137643 +disable_so_enable_irq_fndecl_16137 enable_irq fndecl 1 16137 &disable_so_dualwatch_jiffies_ivtv_16137
137644 +disable_so_alb_set_mac_address_fndecl_16150 alb_set_mac_address fndecl 0 16150 NULL
137645 +disable_so_do_sigtimedwait_fndecl_16152 do_sigtimedwait fndecl 0 16152 NULL
137646 +disable_so_sys_timerfd_create_fndecl_16155 sys_timerfd_create fndecl 2-1 16155 NULL
137647 +disable_so_xen_smp_send_reschedule_fndecl_16161 xen_smp_send_reschedule fndecl 1 16161 NULL nohasharray
137648 +disable_so_addrHigh_ulp_bde64_16161 addrHigh ulp_bde64 0 16161 &disable_so_xen_smp_send_reschedule_fndecl_16161
137649 +disable_so_storm_memset_spq_addr_fndecl_16172 storm_memset_spq_addr fndecl 2-3 16172 NULL
137650 +disable_so_inactivity_timeout_cfhsi_config_16173 inactivity_timeout cfhsi_config 0 16173 NULL nohasharray
137651 +disable_so_iwl_eeprom_query_addr_fndecl_16173 iwl_eeprom_query_addr fndecl 2-3 16173 &disable_so_inactivity_timeout_cfhsi_config_16173
137652 +disable_so_nmsrs_kvm_msr_list_16175 nmsrs kvm_msr_list 0 16175 NULL
137653 +disable_so_count_radeon_vce_clock_voltage_dependency_table_16180 count radeon_vce_clock_voltage_dependency_table 0 16180 NULL
137654 +disable_so_qla4_83xx_wr_reg_indirect_fndecl_16184 qla4_83xx_wr_reg_indirect fndecl 2-3 16184 NULL
137655 +disable_so_show_src_clock_fndecl_16195 show_src_clock fndecl 0 16195 NULL
137656 +disable_so_timeout_ncp_lock_ioctl_16196 timeout ncp_lock_ioctl 0 16196 NULL
137657 +disable_so_sctp_getsockopt_local_addrs_fndecl_16201 sctp_getsockopt_local_addrs fndecl 2 16201 NULL nohasharray
137658 +disable_so_wusb_set_dev_addr_fndecl_16201 wusb_set_dev_addr fndecl 3 16201 &disable_so_sctp_getsockopt_local_addrs_fndecl_16201
137659 +disable_so_ageing_time___bridge_info_16213 ageing_time __bridge_info 0 16213 NULL
137660 +disable_so_bd_list_addr_hi_bnx2i_login_request_16219 bd_list_addr_hi bnx2i_login_request 0 16219 NULL
137661 +disable_so_btrfs_delete_delayed_items_fndecl_16220 btrfs_delete_delayed_items fndecl 0 16220 NULL nohasharray
137662 +disable_so_sethdraddr_fndecl_16220 sethdraddr fndecl 0 16220 &disable_so_btrfs_delete_delayed_items_fndecl_16220
137663 +disable_so_ci_i2c_addr_netup_ci_state_16240 ci_i2c_addr netup_ci_state 0 16240 NULL
137664 +disable_so_hi_phys_addr_16280 hi phys_addr 0 16280 NULL
137665 +disable_so___chk_range_not_ok_fndecl_16282 __chk_range_not_ok fndecl 1-2 16282 NULL
137666 +disable_so_ocfs2_add_clusters_in_btree_fndecl_16283 ocfs2_add_clusters_in_btree fndecl 0-4 16283 NULL
137667 +disable_so_prev_task_link_tss_segment_32_16296 prev_task_link tss_segment_32 0 16296 NULL
137668 +disable_so_ad1889_load_adc_interrupt_count_fndecl_16303 ad1889_load_adc_interrupt_count fndecl 2 16303 NULL
137669 +disable_so_cp_mqd_base_addr_lo_cik_mqd_16307 cp_mqd_base_addr_lo cik_mqd 0 16307 NULL
137670 +disable_so_led_on_time_adp5520_leds_platform_data_16308 led_on_time adp5520_leds_platform_data 0 16308 NULL
137671 +disable_so_dma_addr_adf_etr_ring_data_16309 dma_addr adf_etr_ring_data 0 16309 NULL
137672 +disable_so_demod_address_s921_config_16312 demod_address s921_config 0 16312 NULL
137673 +disable_so_valid_lft_inet6_ifaddr_16318 valid_lft inet6_ifaddr 0 16318 NULL
137674 +disable_so_addr_boom_rx_desc_16324 addr boom_rx_desc 0 16324 NULL
137675 +disable_so_ghash_async_digest_fndecl_16326 ghash_async_digest fndecl 0 16326 NULL
137676 +disable_so_i_atime_f2fs_inode_16339 i_atime f2fs_inode 0 16339 NULL
137677 +disable_so_update_bus_time_fndecl_16343 update_bus_time fndecl 0 16343 NULL
137678 +disable_so_addr_st_register_16344 addr st_register 0 16344 NULL nohasharray
137679 +disable_so_team_port_set_team_dev_addr_fndecl_16344 team_port_set_team_dev_addr fndecl 0 16344 &disable_so_addr_st_register_16344
137680 +disable_so_pll_prediv_dibx000_bandwidth_config_16345 pll_prediv dibx000_bandwidth_config 0 16345 NULL
137681 +disable_so_delay_kbd_repeat_16363 delay kbd_repeat 0 16363 NULL
137682 +disable_so_rproc_elf_get_boot_addr_fndecl_16372 rproc_elf_get_boot_addr fndecl 0 16372 NULL
137683 +disable_so_f2fs_dentry_hash_fndecl_16378 f2fs_dentry_hash fndecl 0 16378 NULL
137684 +disable_so_alarm_nvkm_timer_16388 alarm nvkm_timer 2 16388 NULL
137685 +disable_so_snd_seq_oss_timer_continue_fndecl_16406 snd_seq_oss_timer_continue fndecl 0 16406 NULL
137686 +disable_so_p1_mt9t112_pll_divider_16434 p1 mt9t112_pll_divider 0 16434 NULL
137687 +disable_so_unmap_sg_dma_map_ops_16437 unmap_sg dma_map_ops 3 16437 NULL
137688 +disable_so_ccp_aes_rfc3686_encrypt_fndecl_16455 ccp_aes_rfc3686_encrypt fndecl 0 16455 NULL
137689 +disable_so_bad_dma_addr_vardecl_amd_gart_64_c_16460 bad_dma_addr vardecl_amd_gart_64.c 0 16460 NULL
137690 +disable_so_ath6kl_sdio_set_cmd53_arg_fndecl_16468 ath6kl_sdio_set_cmd53_arg fndecl 3-7 16468 NULL
137691 +disable_so_list_phy_addr_list_info_hold_16469 list_phy_addr list_info_hold 0 16469 NULL
137692 +disable_so_jack_detect_delay_max98095_pdata_16483 jack_detect_delay max98095_pdata 0 16483 NULL
137693 +disable_so_bcma_erom_get_addr_desc_fndecl_16484 bcma_erom_get_addr_desc fndecl 0 16484 NULL nohasharray
137694 +disable_so_fib_info_hash_free_fndecl_16484 fib_info_hash_free fndecl 2 16484 &disable_so_bcma_erom_get_addr_desc_fndecl_16484
137695 +disable_so_frequency_xc2028_data_16487 frequency xc2028_data 0 16487 NULL
137696 +disable_so_acpi_hw_extended_sleep_fndecl_16503 acpi_hw_extended_sleep fndecl 0 16503 NULL
137697 +disable_so_lxt970_ack_interrupt_fndecl_16507 lxt970_ack_interrupt fndecl 0 16507 NULL nohasharray
137698 +disable_so_debug_dma_map_page_fndecl_16507 debug_dma_map_page fndecl 3-6-4 16507 &disable_so_lxt970_ack_interrupt_fndecl_16507
137699 +disable_so_freq_hi_jiffies_od_cpu_dbs_info_s_16514 freq_hi_jiffies od_cpu_dbs_info_s 0 16514 NULL
137700 +disable_so_address_u132_respond_16518 address u132_respond 0 16518 NULL
137701 +disable_so_tegra_spi_transfer_delay_fndecl_16528 tegra_spi_transfer_delay fndecl 1 16528 NULL
137702 +disable_so_cdb_phyaddr_hi32_AdapterControlBlock_16537 cdb_phyaddr_hi32 AdapterControlBlock 0 16537 NULL
137703 +disable_so_copied_seq_cxgbi_sock_16540 copied_seq cxgbi_sock 0 16540 NULL
137704 +disable_so_src_addr_lo_dmae_command_16542 src_addr_lo dmae_command 0 16542 NULL
137705 +disable_so_addr_lo_eth_tx_bd_16543 addr_lo eth_tx_bd 0 16543 NULL
137706 +disable_so_ccp_aes_cmac_digest_fndecl_16547 ccp_aes_cmac_digest fndecl 0 16547 NULL
137707 +disable_so_ip_pt_regs_16548 ip pt_regs 0 16548 NULL
137708 +disable_so_sleep_vol_cache_fan53555_device_info_16553 sleep_vol_cache fan53555_device_info 0 16553 NULL
137709 +disable_so_hblank_hi_oaktrail_timing_info_16559 hblank_hi oaktrail_timing_info 0 16559 NULL
137710 +disable_so_qla2x00_get_async_timeout_fndecl_16577 qla2x00_get_async_timeout fndecl 0 16577 NULL
137711 +disable_so___bitmap_andnot_fndecl_16578 __bitmap_andnot fndecl 4 16578 NULL
137712 +disable_so_hfreq_fb_cvt_data_16579 hfreq fb_cvt_data 0 16579 NULL
137713 +disable_so_tseg1_pucan_timing_slow_16580 tseg1 pucan_timing_slow 0 16580 NULL
137714 +disable_so_freq_rfmon_header_16593 freq rfmon_header 0 16593 NULL
137715 +disable_so_load_block_bitmap_fndecl_16597 load_block_bitmap fndecl 0-3 16597 NULL
137716 +disable_so_flush_timer_il_lq_sta_16606 flush_timer il_lq_sta 0 16606 NULL
137717 +disable_so_ieee80211_channel_to_frequency_fndecl_16619 ieee80211_channel_to_frequency fndecl 0-1 16619 NULL
137718 +disable_so_log_guest_addr_vhost_vring_addr_16627 log_guest_addr vhost_vring_addr 0 16627 NULL nohasharray
137719 +disable_so_cpumask_first_fndecl_16627 cpumask_first fndecl 0 16627 &disable_so_log_guest_addr_vhost_vring_addr_16627
137720 +disable_so_sctp_addr_id2transport_fndecl_16639 sctp_addr_id2transport fndecl 3 16639 NULL
137721 +disable_so_dx_context_paddr_sst_hsw_16656 dx_context_paddr sst_hsw 0 16656 NULL
137722 +disable_so_demod_address_au8522_config_16665 demod_address au8522_config 0 16665 NULL
137723 +disable_so_acpi_device_uid_show_fndecl_16681 acpi_device_uid_show fndecl 0 16681 NULL nohasharray
137724 +disable_so_sys_setresuid16_fndecl_16681 sys_setresuid16 fndecl 0-1-2-3 16681 &disable_so_acpi_device_uid_show_fndecl_16681
137725 +disable_so_crypto_rfc4106_encrypt_fndecl_16683 crypto_rfc4106_encrypt fndecl 0 16683 NULL
137726 +disable_so_field_bit_length_acpi_create_field_info_16693 field_bit_length acpi_create_field_info 0 16693 NULL nohasharray
137727 +disable_so_insert_revoke_hash_fndecl_16693 insert_revoke_hash fndecl 0-2 16693 &disable_so_field_bit_length_acpi_create_field_info_16693
137728 +disable_so_target_cpufreq_driver_16704 target cpufreq_driver 2 16704 NULL
137729 +disable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 0-2-4-5-6 16712 NULL
137730 +disable_so_time_kvm_vcpu_arch_16718 time kvm_vcpu_arch 0 16718 NULL
137731 +disable_so_mark_bitmap_end_fndecl_16723 mark_bitmap_end fndecl 1-2 16723 NULL
137732 +disable_so_edi_tss_segment_32_16727 edi tss_segment_32 0 16727 NULL
137733 +disable_so_native_calibrate_tsc_fndecl_16735 native_calibrate_tsc fndecl 0 16735 NULL
137734 +disable_so_buf_phy_addr_low_ql_rcv_buf_cb_16742 buf_phy_addr_low ql_rcv_buf_cb 0 16742 NULL
137735 +disable_so_mv88e6131_port_to_phy_addr_fndecl_16751 mv88e6131_port_to_phy_addr fndecl 0-2 16751 NULL
137736 +disable_so_vpd_cap_addr_pci_params_16752 vpd_cap_addr pci_params 0 16752 NULL nohasharray
137737 +disable_so_qce_ablkcipher_decrypt_fndecl_16752 qce_ablkcipher_decrypt fndecl 0 16752 &disable_so_vpd_cap_addr_pci_params_16752
137738 +disable_so_guest_interruptibility_info_vmcs12_16754 guest_interruptibility_info vmcs12 0 16754 NULL
137739 +disable_so_dma_ops_alloc_addresses_fndecl_16763 dma_ops_alloc_addresses fndecl 0-3-4-5 16763 NULL
137740 +disable_so_base_io_addr_cx25821_dev_16770 base_io_addr cx25821_dev 0 16770 NULL
137741 +disable_so_w1_delay_parm_vardecl_w1_io_c_16771 w1_delay_parm vardecl_w1_io.c 0 16771 NULL
137742 +disable_so_devm_kasprintf_fndecl_16792 devm_kasprintf fndecl 2 16792 NULL nohasharray
137743 +disable_so_crypto_rfc4309_setauthsize_fndecl_16792 crypto_rfc4309_setauthsize fndecl 2 16792 &disable_so_devm_kasprintf_fndecl_16792
137744 +disable_so_blp_qat_crypto_request_buffs_16801 blp qat_crypto_request_buffs 0 16801 NULL
137745 +disable_so_crypto_enqueue_request_fndecl_16802 crypto_enqueue_request fndecl 0 16802 NULL
137746 +disable_so_si2165_sleep_fndecl_16803 si2165_sleep fndecl 0 16803 NULL
137747 +disable_so_count_radeon_uvd_clock_voltage_dependency_table_16804 count radeon_uvd_clock_voltage_dependency_table 0 16804 NULL
137748 +disable_so_addr_low_viafb_vx855_dma_descr_16813 addr_low viafb_vx855_dma_descr 0 16813 NULL
137749 +disable_so_shash_async_digest_fndecl_16817 shash_async_digest fndecl 0 16817 NULL
137750 +disable_so_ip_apei_exec_context_16824 ip apei_exec_context 0 16824 NULL nohasharray
137751 +disable_so_si_program_ulv_memory_timing_parameters_fndecl_16824 si_program_ulv_memory_timing_parameters fndecl 0 16824 &disable_so_ip_apei_exec_context_16824
137752 +disable_so_xfs_btree_delete_fndecl_16843 xfs_btree_delete fndecl 0 16843 NULL
137753 +disable_so_round_jiffies_up_fndecl_16844 round_jiffies_up fndecl 1-0 16844 NULL
137754 +disable_so___add_delayed_refs_fndecl_16846 __add_delayed_refs fndecl 0-5 16846 NULL
137755 +disable_so_tv_sec_xfs_bstime_16848 tv_sec xfs_bstime 0 16848 NULL
137756 +disable_so_lsize_mtrr_value_16850 lsize mtrr_value 0 16850 NULL
137757 +disable_so_demod_address_stv0288_config_16852 demod_address stv0288_config 0 16852 NULL
137758 +disable_so_efi_lookup_mapped_addr_fndecl_16854 efi_lookup_mapped_addr fndecl 1 16854 NULL
137759 +disable_so_schedule_timeout_fndecl_16856 schedule_timeout fndecl 0-1 16856 NULL
137760 +disable_so_ceph_aes_decrypt2_fndecl_16857 ceph_aes_decrypt2 fndecl 2-8 16857 NULL
137761 +disable_so_da9055_wdt_set_timeout_fndecl_16860 da9055_wdt_set_timeout fndecl 2-0 16860 NULL
137762 +disable_so_erst_dma_addr_xhci_erst_16864 erst_dma_addr xhci_erst 0 16864 NULL
137763 +disable_so_prefered_lft_inet6_ifaddr_16873 prefered_lft inet6_ifaddr 0 16873 NULL
137764 +disable_so_ti_tsc_driver_init_fndecl_16883 ti_tsc_driver_init fndecl 0 16883 NULL
137765 +disable_so_dataout_timeout_iscsi_node_attrib_16884 dataout_timeout iscsi_node_attrib 0 16884 NULL
137766 +disable_so___rtc_read_time_fndecl_16890 __rtc_read_time fndecl 0 16890 NULL nohasharray
137767 +disable_so_tn_smc_rreg_fndecl_16890 tn_smc_rreg fndecl 0-2 16890 &disable_so___rtc_read_time_fndecl_16890
137768 +disable_so_lpage_dma_addr_genwqe_sgl_16893 lpage_dma_addr genwqe_sgl 0 16893 NULL
137769 +disable_so_schedule_on_each_cpu_fndecl_16903 schedule_on_each_cpu fndecl 0 16903 NULL nohasharray
137770 +disable_so_print_dropped_signal_fndecl_16903 print_dropped_signal fndecl 1 16903 &disable_so_schedule_on_each_cpu_fndecl_16903
137771 +disable_so_pctv452e_read_mac_address_fndecl_16904 pctv452e_read_mac_address fndecl 0 16904 NULL
137772 +disable_so_regcache_lzo_get_blkindex_fndecl_16910 regcache_lzo_get_blkindex fndecl 0-2 16910 NULL
137773 +disable_so_login_timeout_qla_hw_data_16911 login_timeout qla_hw_data 0 16911 NULL
137774 +disable_so_bitmap_find_free_region_fndecl_16912 bitmap_find_free_region fndecl 0-2-3 16912 NULL
137775 +disable_so_bit_reverse_mpeg_output_fndecl_16915 bit_reverse_mpeg_output fndecl 0 16915 NULL
137776 +disable_so_da9063_wdt_set_timeout_fndecl_16916 da9063_wdt_set_timeout fndecl 2-0 16916 NULL
137777 +disable_so_pci_bus_insert_busn_res_fndecl_16923 pci_bus_insert_busn_res fndecl 3-2 16923 NULL
137778 +disable_so_port_mlx4_next_alias_guid_work_16924 port mlx4_next_alias_guid_work 0 16924 NULL
137779 +disable_so_port_guid_nodeinfo_16928 port_guid nodeinfo 0 16928 NULL
137780 +disable_so_transition_latency_cpufreq_cpuinfo_16939 transition_latency cpufreq_cpuinfo 0 16939 NULL
137781 +disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940 si476x_core_cmd_fm_phase_div_status fndecl 0 16940 NULL nohasharray
137782 +disable_so_convert_hwaddr_wlcore_ops_16940 convert_hwaddr wlcore_ops 0 16940 &disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940
137783 +disable_so_tps80031_rtc_set_time_fndecl_16950 tps80031_rtc_set_time fndecl 0 16950 NULL
137784 +disable_so_select_addr_qla8044_minidump_entry_mux_16956 select_addr qla8044_minidump_entry_mux 0 16956 NULL
137785 +disable_so_hr222_get_external_clock_fndecl_16966 hr222_get_external_clock fndecl 0 16966 NULL
137786 +disable_so_evm_calc_hash_fndecl_16971 evm_calc_hash fndecl 0-4 16971 NULL
137787 +disable_so_ima_maxorder_vardecl_ima_crypto_c_16973 ima_maxorder vardecl_ima_crypto.c 0 16973 NULL
137788 +disable_so_delay_sh_keysc_info_16974 delay sh_keysc_info 0 16974 NULL
137789 +disable_so_sample_point_can_bittiming_16980 sample_point can_bittiming 0 16980 NULL
137790 +disable_so_ipmi_set_timeout_fndecl_16982 ipmi_set_timeout fndecl 0 16982 NULL
137791 +disable_so_address_SG32ENTRY_16984 address SG32ENTRY 0 16984 NULL
137792 +disable_so_mlx4_ib_guid_port_init_fndecl_16985 mlx4_ib_guid_port_init fndecl 2 16985 NULL
137793 +disable_so_ma901radio_set_freq_fndecl_16989 ma901radio_set_freq fndecl 0-2 16989 NULL
137794 +disable_so_i_ctime_f2fs_inode_17005 i_ctime f2fs_inode 0 17005 NULL
137795 +disable_so_pa_rxrf_lna2_freq_tune_chan_info_2064_lcnphy_17009 pa_rxrf_lna2_freq_tune chan_info_2064_lcnphy 0 17009 NULL
137796 +disable_so_vhost_add_used_and_signal_n_fndecl_17013 vhost_add_used_and_signal_n fndecl 4 17013 NULL
137797 +disable_so_fragshift_snd_pcm_oss_runtime_17015 fragshift snd_pcm_oss_runtime 0 17015 NULL
137798 +disable_so_sci_rx_interrupt_fndecl_17016 sci_rx_interrupt fndecl 1 17016 NULL
137799 +disable_so_wakeup_last_time_show_fndecl_17020 wakeup_last_time_show fndecl 0 17020 NULL
137800 +disable_so_from_addr_efx_memcpy_req_17021 from_addr efx_memcpy_req 0 17021 NULL
137801 +disable_so_tcp_timer_core_clk_divisor_nes_adapter_17033 tcp_timer_core_clk_divisor nes_adapter 0 17033 NULL
137802 +disable_so_reconnect_delay_srp_rport_17034 reconnect_delay srp_rport 0 17034 NULL
137803 +disable_so_clock_frequency_s3c_camif_sensor_info_17035 clock_frequency s3c_camif_sensor_info 0 17035 NULL
137804 +disable_so_copy_to_user_kmaddress_fndecl_17049 copy_to_user_kmaddress fndecl 0 17049 NULL
137805 +disable_so_il_send_rxon_timing_fndecl_17051 il_send_rxon_timing fndecl 0 17051 NULL
137806 +disable_so_system_time_pvclock_vcpu_time_info_17061 system_time pvclock_vcpu_time_info 0 17061 NULL
137807 +disable_so_ds3234_read_time_fndecl_17062 ds3234_read_time fndecl 0 17062 NULL
137808 +disable_so_dat_addr_batadv_orig_node_17063 dat_addr batadv_orig_node 0 17063 NULL
137809 +disable_so_master_cycle_now_kvm_arch_17072 master_cycle_now kvm_arch 0 17072 NULL
137810 +disable_so_netxen_decode_crb_addr_fndecl_17076 netxen_decode_crb_addr fndecl 0-1 17076 NULL
137811 +disable_so_pwm1_freq_lm63_data_17083 pwm1_freq lm63_data 0 17083 NULL
137812 +disable_so_leddc_on_time_ssb_sprom_17089 leddc_on_time ssb_sprom 0 17089 NULL
137813 +disable_so_timer_offset_tg3_17106 timer_offset tg3 0 17106 NULL
137814 +disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108 rcvhdrqtailaddr_phys qib_ctxtdata 0 17108 NULL nohasharray
137815 +disable_so_next_signal_fndecl_17108 next_signal fndecl 0 17108 &disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108
137816 +disable_so_ptp_write_host_time_efx_nic_type_17118 ptp_write_host_time efx_nic_type 2 17118 NULL
137817 +disable_so_isl12057_rtc_set_time_fndecl_17119 isl12057_rtc_set_time fndecl 0 17119 NULL
137818 +disable_so_p4_mt9t112_pll_divider_17123 p4 mt9t112_pll_divider 0 17123 NULL
137819 +disable_so___sk_mem_schedule_fndecl_17130 __sk_mem_schedule fndecl 2 17130 NULL
137820 +disable_so_do_sched_setscheduler_fndecl_17133 do_sched_setscheduler fndecl 2-1-0 17133 NULL
137821 +disable_so_demod_address_s5h1420_config_17152 demod_address s5h1420_config 0 17152 NULL
137822 +disable_so_stats_reset_time_fnic_17155 stats_reset_time fnic 0 17155 NULL nohasharray
137823 +disable_so_buffer_addr_hi_iscsi_bd_17155 buffer_addr_hi iscsi_bd 0 17155 &disable_so_stats_reset_time_fnic_17155 nohasharray
137824 +disable_so_ver_sync_end_via_display_timing_17155 ver_sync_end via_display_timing 0 17155 &disable_so_buffer_addr_hi_iscsi_bd_17155
137825 +disable_so_bit_cursor_fndecl_17158 bit_cursor fndecl 4-5-6 17158 NULL
137826 +disable_so_nv50_fan_pwm_clock_fndecl_17168 nv50_fan_pwm_clock fndecl 0 17168 NULL
137827 +disable_so_s_def_resuid_ext2_super_block_17174 s_def_resuid ext2_super_block 0 17174 NULL
137828 +disable_so_delay_until_ipoib_mcast_17176 delay_until ipoib_mcast 0 17176 NULL
137829 +disable_so_command_addr_acpi_ec_17177 command_addr acpi_ec 0 17177 NULL
137830 +disable_so_set_freq_adis16400_chip_info_17183 set_freq adis16400_chip_info 0 17183 NULL
137831 +disable_so_fd_pppol2tpin6_addr_17186 fd pppol2tpin6_addr 0 17186 NULL
137832 +disable_so_genwqe_set_interrupt_capability_fndecl_17191 genwqe_set_interrupt_capability fndecl 2-0 17191 NULL
137833 +disable_so_random_frame_ehci_hcd_17194 random_frame ehci_hcd 0 17194 NULL nohasharray
137834 +disable_so_ctrl_req_addr_dwc3_17194 ctrl_req_addr dwc3 0 17194 &disable_so_random_frame_ehci_hcd_17194
137835 +disable_so_xhci_disable_usb3_lpm_timeout_fndecl_17199 xhci_disable_usb3_lpm_timeout fndecl 0 17199 NULL
137836 +disable_so_sp_dma_addr_hostdata_17202 sp_dma_addr hostdata 0 17202 NULL nohasharray
137837 +disable_so_drbg_hash_hashgen_fndecl_17202 drbg_hash_hashgen fndecl 0-3 17202 &disable_so_sp_dma_addr_hostdata_17202
137838 +disable_so_demod_address_mt312_config_17203 demod_address mt312_config 0 17203 NULL
137839 +disable_so_buf_count_ccp_sha_req_ctx_17205 buf_count ccp_sha_req_ctx 0 17205 NULL
137840 +disable_so_atiixp_set_pio_timing_fndecl_17209 atiixp_set_pio_timing fndecl 3 17209 NULL
137841 +disable_so_tpm2_get_random_fndecl_17212 tpm2_get_random fndecl 0-3 17212 NULL
137842 +disable_so_offset_btrfs_key_17213 offset btrfs_key 0 17213 NULL
137843 +disable_so_dccps_timestamp_time_dccp_sock_17214 dccps_timestamp_time dccp_sock 0 17214 NULL
137844 +disable_so_this_tsc_write_kvm_vcpu_arch_17221 this_tsc_write kvm_vcpu_arch 0 17221 NULL
137845 +disable_so_cpufreq_driver_target_fndecl_17222 cpufreq_driver_target fndecl 2 17222 NULL
137846 +disable_so_prev_task_link_tss_segment_16_17224 prev_task_link tss_segment_16 0 17224 NULL
137847 +disable_so_sc92031_interrupt_fndecl_17226 sc92031_interrupt fndecl 1 17226 NULL nohasharray
137848 +disable_so_daddr_irnet_socket_17226 daddr irnet_socket 0 17226 &disable_so_sc92031_interrupt_fndecl_17226 nohasharray
137849 +disable_so_new_center_freq_seg1_ieee80211_wide_bw_chansw_ie_17226 new_center_freq_seg1 ieee80211_wide_bw_chansw_ie 0 17226 &disable_so_daddr_irnet_socket_17226
137850 +disable_so_iffreq_tuner_params_17241 iffreq tuner_params 0 17241 NULL
137851 +disable_so_erase_time_flchip_17257 erase_time flchip 0 17257 NULL
137852 +disable_so_lp8788_is_valid_buck_addr_fndecl_17271 lp8788_is_valid_buck_addr fndecl 1 17271 NULL nohasharray
137853 +disable_so_ntfs_mft_bitmap_find_and_alloc_free_rec_nolock_fndecl_17271 ntfs_mft_bitmap_find_and_alloc_free_rec_nolock fndecl 0 17271 &disable_so_lp8788_is_valid_buck_addr_fndecl_17271
137854 +disable_so_pci_timedia_setup_fndecl_17276 pci_timedia_setup fndecl 4 17276 NULL
137855 +disable_so_security_task_setpgid_fndecl_17277 security_task_setpgid fndecl 2 17277 NULL
137856 +disable_so_ref_div_pll_info_17279 ref_div pll_info 0 17279 NULL nohasharray
137857 +disable_so_ifr6_ifindex_in6_ifreq_17279 ifr6_ifindex in6_ifreq 0 17279 &disable_so_ref_div_pll_info_17279
137858 +disable_so_nm_gid_nl_mmap_hdr_17280 nm_gid nl_mmap_hdr 0 17280 NULL
137859 +disable_so_account_system_time_fndecl_17285 account_system_time fndecl 3-4 17285 NULL nohasharray
137860 +disable_so_ptrace_signal_fndecl_17285 ptrace_signal fndecl 0-1 17285 &disable_so_account_system_time_fndecl_17285
137861 +disable_so_cm36651_read_int_time_fndecl_17287 cm36651_read_int_time fndecl 0 17287 NULL
137862 +disable_so_calculate_destination_timeout_fndecl_17288 calculate_destination_timeout fndecl 0 17288 NULL
137863 +disable_so_hsync_pulse_width_lo_detailed_pixel_timing_17297 hsync_pulse_width_lo detailed_pixel_timing 0 17297 NULL
137864 +disable_so_pci_pm_runtime_suspend_fndecl_17299 pci_pm_runtime_suspend fndecl 0 17299 NULL
137865 +disable_so_ifindex_ip6addrlbl_entry_17305 ifindex ip6addrlbl_entry 0 17305 NULL
137866 +disable_so_lookup_enclosing_address_handler_fndecl_17312 lookup_enclosing_address_handler fndecl 3 17312 NULL
137867 +disable_so_addrconf_mod_rs_timer_fndecl_17333 addrconf_mod_rs_timer fndecl 2 17333 NULL nohasharray
137868 +disable_so_dma_addr_tse_buffer_17333 dma_addr tse_buffer 0 17333 &disable_so_addrconf_mod_rs_timer_fndecl_17333
137869 +disable_so_mod_timer_pinned_fndecl_17334 mod_timer_pinned fndecl 2-0 17334 NULL
137870 +disable_so_cpufreq_power_cooling_register_fndecl_17338 cpufreq_power_cooling_register fndecl 2 17338 NULL
137871 +disable_so_bytenr_btrfs_delayed_ref_node_17344 bytenr btrfs_delayed_ref_node 0 17344 NULL
137872 +disable_so_genwqe_debugfs_queue_working_time_open_fndecl_17354 genwqe_debugfs_queue_working_time_open fndecl 0 17354 NULL
137873 +disable_so_poll_select_set_timeout_fndecl_17361 poll_select_set_timeout fndecl 2-3 17361 NULL nohasharray
137874 +disable_so_dma_addr_efx_buffer_17361 dma_addr efx_buffer 0 17361 &disable_so_poll_select_set_timeout_fndecl_17361
137875 +disable_so_loc_addr_nes_cm_node_17375 loc_addr nes_cm_node 0 17375 NULL
137876 +disable_so_sdev_show_eh_timeout_fndecl_17386 sdev_show_eh_timeout fndecl 0 17386 NULL
137877 +disable_so_isl1208_i2c_set_time_fndecl_17398 isl1208_i2c_set_time fndecl 0 17398 NULL
137878 +disable_so_lx_interrupt_handle_async_events_fndecl_17400 lx_interrupt_handle_async_events fndecl 0 17400 NULL
137879 +disable_so_phys_addr_pmem_device_17405 phys_addr pmem_device 0 17405 NULL
137880 +disable_so___cpufreq_remove_dev_prepare_fndecl_17414 __cpufreq_remove_dev_prepare fndecl 0 17414 NULL
137881 +disable_so_readpage_address_space_operations_17426 readpage address_space_operations 0 17426 NULL
137882 +disable_so_last_tdls_pkt_time_sta_info_17439 last_tdls_pkt_time sta_info 0 17439 NULL
137883 +disable_so_bfa_fcs_rport_set_del_timeout_fndecl_17442 bfa_fcs_rport_set_del_timeout fndecl 1 17442 NULL nohasharray
137884 +disable_so_last_div_tuner_simple_priv_17442 last_div tuner_simple_priv 0 17442 &disable_so_bfa_fcs_rport_set_del_timeout_fndecl_17442
137885 +disable_so_clockevents_update_freq_fndecl_17446 clockevents_update_freq fndecl 2 17446 NULL
137886 +disable_so_dev_addr_init_fndecl_17450 dev_addr_init fndecl 0 17450 NULL
137887 +disable_so_div_clk_fixed_factor_17451 div clk_fixed_factor 0 17451 NULL
137888 +disable_so_t2_ptr_hash_tbl_addr_hi_fcoe_kwqe_init2_17457 t2_ptr_hash_tbl_addr_hi fcoe_kwqe_init2 0 17457 NULL
137889 +disable_so_i_unsignaled_bytes_rds_iw_connection_17462 i_unsignaled_bytes rds_iw_connection 0 17462 NULL
137890 +disable_so_calc_pmtimer_ref_fndecl_17467 calc_pmtimer_ref fndecl 0-2-3-1 17467 NULL
137891 +disable_so_mb_dma_address_skd_fitmsg_context_17468 mb_dma_address skd_fitmsg_context 0 17468 NULL
137892 +disable_so_bd_list_addr_hi_bnx2i_cmd_request_17469 bd_list_addr_hi bnx2i_cmd_request 0 17469 NULL
137893 +disable_so_schedule_iso_resource_fndecl_17474 schedule_iso_resource fndecl 2 17474 NULL
137894 +disable_so_select_addr_qla83xx_minidump_entry_pollrd_17476 select_addr qla83xx_minidump_entry_pollrd 0 17476 NULL
137895 +disable_so_ipv4_daddr_nf_bridge_info_17490 ipv4_daddr nf_bridge_info 0 17490 NULL
137896 +disable_so_fifo_delay_map_brcmf_fws_info_17499 fifo_delay_map brcmf_fws_info 0 17499 NULL
137897 +disable_so_cpumask_next_and_fndecl_17511 cpumask_next_and fndecl 1-0 17511 NULL
137898 +disable_so_crypto_ctr_crypt_fndecl_17512 crypto_ctr_crypt fndecl 0-4 17512 NULL
137899 +disable_so_current_frequency_or51132_state_17519 current_frequency or51132_state 0 17519 NULL
137900 +disable_so_clocks_calc_max_nsecs_fndecl_17521 clocks_calc_max_nsecs fndecl 1-2-3-4-0 17521 NULL
137901 +disable_so_brcmf_get_next_free_bsscfgidx_fndecl_17528 brcmf_get_next_free_bsscfgidx fndecl 0 17528 NULL
137902 +disable_so_ide_dma_timeout_retry_fndecl_17531 ide_dma_timeout_retry fndecl 2 17531 NULL
137903 +disable_so_radeon_legacy_get_engine_clock_fndecl_17536 radeon_legacy_get_engine_clock fndecl 0 17536 NULL
137904 +disable_so_longcal_timer_ath_ani_17540 longcal_timer ath_ani 0 17540 NULL
137905 +disable_so_beacon_init_val_il_rxon_time_cmd_17543 beacon_init_val il_rxon_time_cmd 0 17543 NULL
137906 +disable_so_bcma_pmu_xtalfreq_fndecl_17556 bcma_pmu_xtalfreq fndecl 0 17556 NULL
137907 +disable_so_hdelay_timing_17557 hdelay timing 0 17557 NULL
137908 +disable_so_ticks_snd_seq_timer_17559 ticks snd_seq_timer 0 17559 NULL nohasharray
137909 +disable_so_coublock_signal_struct_17559 coublock signal_struct 0 17559 &disable_so_ticks_snd_seq_timer_17559
137910 +disable_so_snd_timer_dev_register_fndecl_17565 snd_timer_dev_register fndecl 0 17565 NULL
137911 +disable_so_wait_on_bit_lock_action_fndecl_17576 wait_on_bit_lock_action fndecl 0 17576 NULL
137912 +disable_so_node_guid_nodeinfo_17589 node_guid nodeinfo 0 17589 NULL
137913 +disable_so_packet_filter_bitmap_kaweth_device_17590 packet_filter_bitmap kaweth_device 0 17590 NULL
137914 +disable_so_erase_timeout_sd_ssr_17594 erase_timeout sd_ssr 0 17594 NULL
137915 +disable_so_ratio_r_rj54n1_clock_div_17609 ratio_r rj54n1_clock_div 0 17609 NULL
137916 +disable_so_clock_info_cmd_complete_fndecl_17616 clock_info_cmd_complete fndecl 0 17616 NULL
137917 +disable_so_cir_addr_nvt_dev_17619 cir_addr nvt_dev 0 17619 NULL
137918 +disable_so_plink_timeout_mesh_config_17621 plink_timeout mesh_config 0 17621 NULL
137919 +disable_so_numaddr_mwl8k_cmd_mac_multicast_adr_17633 numaddr mwl8k_cmd_mac_multicast_adr 0 17633 NULL
137920 +enable_so_last_used_idx_vringh_17635 last_used_idx vringh 0 17635 NULL nohasharray
137921 +disable_so_addr_nvbios_extdev_func_17635 addr nvbios_extdev_func 0 17635 &enable_so_last_used_idx_vringh_17635 nohasharray
137922 +disable_so_xfs_btree_set_numrecs_fndecl_17635 xfs_btree_set_numrecs fndecl 2 17635 &disable_so_addr_nvbios_extdev_func_17635
137923 +disable_so_pll_clkdiv_adau1701_17652 pll_clkdiv adau1701 0 17652 NULL
137924 +disable_so_btree_insert_raw_fndecl_17655 btree_insert_raw fndecl 0-2 17655 NULL
137925 +disable_so_svm_adjust_tsc_offset_fndecl_17663 svm_adjust_tsc_offset fndecl 2 17663 NULL
137926 +disable_so_mpll_ss2_ni_clock_registers_17677 mpll_ss2 ni_clock_registers 0 17677 NULL
137927 +disable_so_seq_zoran_sync_17679 seq zoran_sync 0 17679 NULL
137928 +disable_so_frequency_drv2667_data_17686 frequency drv2667_data 0 17686 NULL
137929 +disable_so_ieee80211_if_fmt_beacon_timeout_fndecl_17690 ieee80211_if_fmt_beacon_timeout fndecl 0-3 17690 NULL
137930 +disable_so_switch_time_iwl5000_channel_switch_cmd_17709 switch_time iwl5000_channel_switch_cmd 0 17709 NULL
137931 +disable_so_paging64_walk_addr_generic_fndecl_17719 paging64_walk_addr_generic fndecl 4-5 17719 NULL
137932 +disable_so_hw_usb_set_address_fndecl_17723 hw_usb_set_address fndecl 2 17723 NULL
137933 +disable_so_sysrq_reset_downtime_ms_vardecl_sysrq_c_17734 sysrq_reset_downtime_ms vardecl_sysrq.c 0 17734 NULL
137934 +disable_so_ttime_mean_cfq_ttime_17742 ttime_mean cfq_ttime 0 17742 NULL nohasharray
137935 +disable_so_cpufreq_add_dev_fndecl_17742 cpufreq_add_dev fndecl 0 17742 &disable_so_ttime_mean_cfq_ttime_17742
137936 +disable_so_int_poll_timeout_fndecl_17745 int_poll_timeout fndecl 1 17745 NULL
137937 +disable_so_pmdown_time_snd_soc_pcm_runtime_17753 pmdown_time snd_soc_pcm_runtime 0 17753 NULL
137938 +disable_so_i_dtime_ocfs2_dinode_17762 i_dtime ocfs2_dinode 0 17762 NULL
137939 +disable_so_stk1160_write_reg_fndecl_17777 stk1160_write_reg fndecl 0-2-3 17777 NULL
137940 +disable_so_wlcore_save_freed_pkts_addr_fndecl_17778 wlcore_save_freed_pkts_addr fndecl 3 17778 NULL
137941 +disable_so_sys_getuid_fndecl_17783 sys_getuid fndecl 0 17783 NULL
137942 +disable_so_ath5k_hw_set_ack_timeout_fndecl_17785 ath5k_hw_set_ack_timeout fndecl 2 17785 NULL
137943 +disable_so_vfio_intx_set_signal_fndecl_17806 vfio_intx_set_signal fndecl 0 17806 NULL
137944 +disable_so_hash_dst_fndecl_17815 hash_dst fndecl 0-2-3 17815 NULL
137945 +disable_so_ci_set_smc_sram_address_fndecl_17817 ci_set_smc_sram_address fndecl 0-2 17817 NULL
137946 +disable_so_ax_pt_regs_17818 ax pt_regs 0 17818 NULL
137947 +disable_so_gf110_fan_pwm_clock_fndecl_17824 gf110_fan_pwm_clock fndecl 0 17824 NULL nohasharray
137948 +disable_so_txdescmem_busaddr_altera_tse_private_17824 txdescmem_busaddr altera_tse_private 0 17824 &disable_so_gf110_fan_pwm_clock_fndecl_17824
137949 +disable_so_shash_digest_unaligned_fndecl_17828 shash_digest_unaligned fndecl 0-3 17828 NULL
137950 +disable_so_crypto_user_rcv_msg_fndecl_17830 crypto_user_rcv_msg fndecl 0 17830 NULL
137951 +disable_so_hfsplus_bnode_findhash_fndecl_17834 hfsplus_bnode_findhash fndecl 2 17834 NULL
137952 +disable_so_hactive_lo_oaktrail_timing_info_17844 hactive_lo oaktrail_timing_info 0 17844 NULL
137953 +disable_so_paddr_eni_skb_prv_17847 paddr eni_skb_prv 0 17847 NULL nohasharray
137954 +disable_so_proc_disconnectsignal_fndecl_17847 proc_disconnectsignal fndecl 0 17847 &disable_so_paddr_eni_skb_prv_17847
137955 +disable_so_msec_bts_action_delay_17848 msec bts_action_delay 0 17848 NULL
137956 +disable_so_start_fixed_mtrr_segment_17854 start fixed_mtrr_segment 0 17854 NULL
137957 +disable_so_addr_mlx4_wqe_data_seg_17863 addr mlx4_wqe_data_seg 0 17863 NULL
137958 +disable_so_vhost32_to_cpu_fndecl_17870 vhost32_to_cpu fndecl 0-2 17870 NULL
137959 +disable_so_wl1273_fm_get_freq_fndecl_17876 wl1273_fm_get_freq fndecl 0 17876 NULL
137960 +disable_so_sumo_set_divider_value_fndecl_17879 sumo_set_divider_value fndecl 3-2 17879 NULL
137961 +disable_so_dev_stc_uvc_clock_sample_17886 dev_stc uvc_clock_sample 0 17886 NULL
137962 +disable_so_xfs_bmap_extents_to_btree_fndecl_17888 xfs_bmap_extents_to_btree fndecl 0 17888 NULL nohasharray
137963 +disable_so_sha1_ssse3_finup_fndecl_17888 sha1_ssse3_finup fndecl 3 17888 &disable_so_xfs_bmap_extents_to_btree_fndecl_17888
137964 +disable_so_address_threshold_block_17898 address threshold_block 0 17898 NULL
137965 +disable_so_timeout_vardecl_w83793_c_17902 timeout vardecl_w83793.c 0 17902 NULL
137966 +disable_so_bitmap_port_gc_test_fndecl_17905 bitmap_port_gc_test fndecl 3 17905 NULL
137967 +disable_so_efx_ef10_filter_hash_fndecl_17915 efx_ef10_filter_hash fndecl 0 17915 NULL
137968 +disable_so_i40evf_init_interrupt_scheme_fndecl_17922 i40evf_init_interrupt_scheme fndecl 0 17922 NULL
137969 +disable_so_get_descriptor_addr_fndecl_17925 get_descriptor_addr fndecl 0 17925 NULL
137970 +disable_so_fll_loop_gain__fll_div_17926 fll_loop_gain _fll_div 0 17926 NULL
137971 +disable_so_timestamp_nfs_pgio_header_17936 timestamp nfs_pgio_header 0 17936 NULL
137972 +disable_so_axp20x_set_dcdc_freq_fndecl_17938 axp20x_set_dcdc_freq fndecl 0-2 17938 NULL
137973 +disable_so_fc2580_s_frequency_fndecl_17946 fc2580_s_frequency fndecl 0 17946 NULL
137974 +disable_so_cxd2820r_sleep_fndecl_17948 cxd2820r_sleep fndecl 0 17948 NULL
137975 +disable_so_shash_update_unaligned_fndecl_17955 shash_update_unaligned fndecl 0-3 17955 NULL
137976 +disable_so_queue_snd_seq_queue_timer_17961 queue snd_seq_queue_timer 0 17961 NULL nohasharray
137977 +disable_so_toshiba_sleep_functions_status_get_fndecl_17961 toshiba_sleep_functions_status_get fndecl 0 17961 &disable_so_queue_snd_seq_queue_timer_17961
137978 +disable_so_pcc_cpufreq_probe_fndecl_17966 pcc_cpufreq_probe fndecl 0 17966 NULL nohasharray
137979 +disable_so_rsa_extract_mpi_fndecl_17966 rsa_extract_mpi fndecl 5 17966 &disable_so_pcc_cpufreq_probe_fndecl_17966
137980 +disable_so_rxrpc_resend_timeout_vardecl_17967 rxrpc_resend_timeout vardecl 0 17967 NULL nohasharray
137981 +disable_so_cxd2820r_sleep_c_fndecl_17967 cxd2820r_sleep_c fndecl 0 17967 &disable_so_rxrpc_resend_timeout_vardecl_17967
137982 +disable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 0 17972 NULL
137983 +disable_so_perf_event_time_fndecl_17980 perf_event_time fndecl 0 17980 NULL nohasharray
137984 +disable_so_crypto_ahash_update_fndecl_17980 crypto_ahash_update fndecl 0 17980 &disable_so_perf_event_time_fndecl_17980
137985 +disable_so_palmas_clear_interrupts_fndecl_17987 palmas_clear_interrupts fndecl 0 17987 NULL
137986 +disable_so_timeout_vardecl_nf_conntrack_snmp_c_17991 timeout vardecl_nf_conntrack_snmp.c 0 17991 NULL
137987 +disable_so_addr_lo_eth_rx_sge_17992 addr_lo eth_rx_sge 0 17992 NULL
137988 +disable_so_cryptd_hash_update_fndecl_17997 cryptd_hash_update fndecl 2 17997 NULL
137989 +disable_so_crypto_authenc_esn_setkey_fndecl_18010 crypto_authenc_esn_setkey fndecl 0 18010 NULL
137990 +disable_so_uwb_rc_mac_addr_store_fndecl_18016 uwb_rc_mac_addr_store fndecl 0-4 18016 NULL
137991 +disable_so_netlbl_unlhsh_hash_fndecl_18024 netlbl_unlhsh_hash fndecl 0-1 18024 NULL
137992 +disable_so_min_delta_ns_clock_event_device_18031 min_delta_ns clock_event_device 0 18031 NULL
137993 +disable_so_ali_timeout_bits_vardecl_alim1535_wdt_c_18033 ali_timeout_bits vardecl_alim1535_wdt.c 0 18033 NULL
137994 +disable_so_sci_mpxed_interrupt_fndecl_18035 sci_mpxed_interrupt fndecl 1 18035 NULL
137995 +disable_so_time_freq_vardecl_ntp_c_18036 time_freq vardecl_ntp.c 0 18036 NULL
137996 +disable_so_be_cmd_page_addrs_prepare_fndecl_18059 be_cmd_page_addrs_prepare fndecl 2 18059 NULL
137997 +disable_so_base_addr_brcmf_pcie_console_18075 base_addr brcmf_pcie_console 0 18075 NULL
137998 +disable_so_seq_cn_msg_18076 seq cn_msg 0 18076 NULL
137999 +disable_so_packet_time_ipw_ibss_seq_18079 packet_time ipw_ibss_seq 0 18079 NULL
138000 +disable_so_atomic_set_property_drm_connector_funcs_18088 atomic_set_property drm_connector_funcs 0-4 18088 NULL
138001 +disable_so_ts_jiffies_uwb_event_18092 ts_jiffies uwb_event 0 18092 NULL nohasharray
138002 +disable_so_xc_set_rf_frequency_fndecl_18092 xc_set_rf_frequency fndecl 0-2 18092 &disable_so_ts_jiffies_uwb_event_18092
138003 +disable_so_beacon_time_tsf_bits_il_hw_params_18095 beacon_time_tsf_bits il_hw_params 0 18095 NULL
138004 +disable_so_restore_freq_cpufreq_policy_18098 restore_freq cpufreq_policy 0 18098 NULL
138005 +disable_so_link_check_timeout_ixgbe_adapter_18101 link_check_timeout ixgbe_adapter 0 18101 NULL
138006 +disable_so_zd_iowrite32_fndecl_18117 zd_iowrite32 fndecl 0-3 18117 NULL nohasharray
138007 +disable_so_block_bitmap_ext3_new_group_data_18117 block_bitmap ext3_new_group_data 0 18117 &disable_so_zd_iowrite32_fndecl_18117
138008 +disable_so_radeon_fence_schedule_check_fndecl_18136 radeon_fence_schedule_check fndecl 2 18136 NULL
138009 +disable_so_ed_schedule_fndecl_18142 ed_schedule fndecl 0 18142 NULL
138010 +disable_so_pci_clock_ctrl_tg3_18144 pci_clock_ctrl tg3 0 18144 NULL
138011 +disable_so_start_i915_address_space_18152 start i915_address_space 0 18152 NULL
138012 +disable_so_reg_w_fndecl_18159 reg_w fndecl 2 18159 NULL
138013 +disable_so_xfrm_get_saddr_fndecl_18161 xfrm_get_saddr fndecl 4 18161 NULL
138014 +disable_so_src_addr_rcar_dmac_xfer_chunk_18165 src_addr rcar_dmac_xfer_chunk 0 18165 NULL
138015 +disable_so_chip_init_time_esas2r_adapter_18169 chip_init_time esas2r_adapter 0 18169 NULL
138016 +disable_so___btree_submit_bio_done_fndecl_18170 __btree_submit_bio_done fndecl 0-2 18170 NULL
138017 +disable_so_pick_local_ipaddrs_fndecl_18171 pick_local_ipaddrs fndecl 0 18171 NULL
138018 +disable_so_host_sof_uvc_clock_sample_18177 host_sof uvc_clock_sample 0 18177 NULL
138019 +disable_so_ratio_op_rj54n1_clock_div_18180 ratio_op rj54n1_clock_div 0 18180 NULL
138020 +disable_so_dm_btree_remove_leaves_fndecl_18182 dm_btree_remove_leaves fndecl 0-2-4 18182 NULL
138021 +disable_so_rfcomm_session_set_timer_fndecl_18183 rfcomm_session_set_timer fndecl 2 18183 NULL
138022 +disable_so_i_gid_ext2_inode_18187 i_gid ext2_inode 0 18187 NULL
138023 +disable_so_tipc_tlv_sprintf_fndecl_18203 tipc_tlv_sprintf fndecl 0 18203 NULL
138024 +disable_so_usbnet_get_ethernet_addr_fndecl_18204 usbnet_get_ethernet_addr fndecl 0 18204 NULL
138025 +disable_so_faddr_drm_i915_error_ring_18209 faddr drm_i915_error_ring 0 18209 NULL
138026 +disable_so_nla_put_ipaddr4_fndecl_18214 nla_put_ipaddr4 fndecl 0 18214 NULL
138027 +disable_so_ring_dma_addr_netdev_private_18216 ring_dma_addr netdev_private 0 18216 NULL
138028 +disable_so_fc_gid_ft_build_fndecl_18221 fc_gid_ft_build fndecl 0-3 18221 NULL
138029 +disable_so_base_hi_mtrr_var_range_18224 base_hi mtrr_var_range 0 18224 NULL nohasharray
138030 +disable_so_mISDNisac_irq_fndecl_18224 mISDNisac_irq fndecl 2 18224 &disable_so_base_hi_mtrr_var_range_18224
138031 +disable_so_no_bit_error_verify_fndecl_18225 no_bit_error_verify fndecl 4 18225 NULL
138032 +disable_so_account_guest_time_fndecl_18233 account_guest_time fndecl 2-3 18233 NULL
138033 +disable_so_show_port_gid_idx_fndecl_18237 show_port_gid_idx fndecl 0 18237 NULL
138034 +disable_so_ath9k_hw_set_cts_timeout_fndecl_18239 ath9k_hw_set_cts_timeout fndecl 2 18239 NULL
138035 +disable_so_sctp_raw_to_bind_addrs_fndecl_18240 sctp_raw_to_bind_addrs fndecl 0-3-4-5 18240 NULL
138036 +disable_so_format_snd_pcm_oss_runtime_18246 format snd_pcm_oss_runtime 0 18246 NULL
138037 +disable_so_ring_base_address_kfd_ioctl_update_queue_args_18252 ring_base_address kfd_ioctl_update_queue_args 0 18252 NULL
138038 +disable_so_best_dsc_rw_freq_ide_tape_obj_18253 best_dsc_rw_freq ide_tape_obj 0 18253 NULL
138039 +disable_so_mlx4_ib_set_default_gid_fndecl_18263 mlx4_ib_set_default_gid fndecl 3 18263 NULL
138040 +disable_so_msrpm_base_pa_vmcb_control_area_18266 msrpm_base_pa vmcb_control_area 0 18266 NULL
138041 +disable_so_macb_reg_writel_macb_18287 macb_reg_writel macb 3 18287 NULL
138042 +disable_so_btrfs_inode_delayed_dir_index_count_fndecl_18292 btrfs_inode_delayed_dir_index_count fndecl 0 18292 NULL
138043 +disable_so_rounded_hashtable_size_fndecl_18305 rounded_hashtable_size fndecl 0 18305 NULL
138044 +disable_so_kv_calculate_ds_divider_fndecl_18314 kv_calculate_ds_divider fndecl 0 18314 NULL
138045 +disable_so_srom_address_fndecl_18316 srom_address fndecl 2 18316 NULL
138046 +disable_so_min_keysize_blkcipher_alg_18320 min_keysize blkcipher_alg 0 18320 NULL
138047 +disable_so_sd_atime_stat_data_v1_18328 sd_atime stat_data_v1 0 18328 NULL nohasharray
138048 +disable_so_last_valid_interrupt_tsc2005_18328 last_valid_interrupt tsc2005 0 18328 &disable_so_sd_atime_stat_data_v1_18328
138049 +disable_so_divider_sm501_clock_18331 divider sm501_clock 0 18331 NULL
138050 +disable_so_dwell_time_dfs_conf_sched_scan_settings_18333 dwell_time_dfs conf_sched_scan_settings 0 18333 NULL
138051 +disable_so_synaptics_i2c_reschedule_work_fndecl_18336 synaptics_i2c_reschedule_work fndecl 2 18336 NULL
138052 +disable_so_active_time_dce6_wm_params_18344 active_time dce6_wm_params 0 18344 NULL
138053 +disable_so_shpchp_poll_time_vardecl_18356 shpchp_poll_time vardecl 0 18356 NULL
138054 +disable_so_qat_alg_ablkcipher_init_sessions_fndecl_18359 qat_alg_ablkcipher_init_sessions fndecl 3 18359 NULL
138055 +disable_so_next_blkaddr_node_footer_18360 next_blkaddr node_footer 0 18360 NULL
138056 +disable_so_r9701_set_datetime_fndecl_18365 r9701_set_datetime fndecl 0 18365 NULL
138057 +disable_so_global_default_cipher_key_size_ecryptfs_mount_crypt_stat_18369 global_default_cipher_key_size ecryptfs_mount_crypt_stat 0 18369 NULL
138058 +disable_so_read_tsc_offset_kvm_x86_ops_18374 read_tsc_offset kvm_x86_ops 0 18374 NULL
138059 +disable_so_chunkshift_bitmap_counts_18388 chunkshift bitmap_counts 0 18388 NULL
138060 +disable_so_daddr_i915_page_table_entry_18391 daddr i915_page_table_entry 0 18391 NULL
138061 +disable_so_set_addr_filters_fndecl_18395 set_addr_filters fndecl 0 18395 NULL nohasharray
138062 +disable_so_writepages_address_space_operations_18395 writepages address_space_operations 0 18395 &disable_so_set_addr_filters_fndecl_18395
138063 +disable_so_ablkcipher_next_fast_fndecl_18397 ablkcipher_next_fast fndecl 0 18397 NULL
138064 +disable_so_local_ref_time_lp_18398 local_ref_time lp 0 18398 NULL
138065 +disable_so_size__cpuid4_info_regs_18403 size _cpuid4_info_regs 0 18403 NULL
138066 +disable_so_st_atime_sec_p9_stat_dotl_18404 st_atime_sec p9_stat_dotl 0 18404 NULL nohasharray
138067 +disable_so_hackrf_s_frequency_fndecl_18404 hackrf_s_frequency fndecl 0 18404 &disable_so_st_atime_sec_p9_stat_dotl_18404
138068 +disable_so_ext4_inode_bitmap_fndecl_18405 ext4_inode_bitmap fndecl 0 18405 NULL
138069 +disable_so_crypto_sha256_finup_fndecl_18406 crypto_sha256_finup fndecl 3 18406 NULL
138070 +disable_so_timeout_ip_vs_sync_v4_18416 timeout ip_vs_sync_v4 0 18416 NULL nohasharray
138071 +disable_so_nla_put_hwaddr_fndecl_18416 nla_put_hwaddr fndecl 0 18416 &disable_so_timeout_ip_vs_sync_v4_18416
138072 +disable_so_tasklet_hrtimer_init_fndecl_18423 tasklet_hrtimer_init fndecl 3 18423 NULL
138073 +disable_so_ieee80211_if_fmt_path_refresh_time_fndecl_18427 ieee80211_if_fmt_path_refresh_time fndecl 0-3 18427 NULL
138074 +disable_so_address_high_b43_dmadesc64_18431 address_high b43_dmadesc64 0 18431 NULL
138075 +disable_so_wd_timeout_mei_device_18432 wd_timeout mei_device 0 18432 NULL
138076 +disable_so_bitmap_fold_fndecl_18439 bitmap_fold fndecl 4 18439 NULL
138077 +disable_so_dma_addr_freelQ_ce_18441 dma_addr freelQ_ce 0 18441 NULL
138078 +disable_so_demod_address_cx24117_config_18444 demod_address cx24117_config 0 18444 NULL
138079 +disable_so_rs5c372_get_datetime_fndecl_18451 rs5c372_get_datetime fndecl 0 18451 NULL
138080 +disable_so_diolan_set_clock_synch_fndecl_18461 diolan_set_clock_synch fndecl 0 18461 NULL nohasharray
138081 +disable_so_tcp_timeout_ip_vs_timeout_user_18461 tcp_timeout ip_vs_timeout_user 0 18461 &disable_so_diolan_set_clock_synch_fndecl_18461
138082 +disable_so_mac_addr_low_nes_adapter_18465 mac_addr_low nes_adapter 0 18465 NULL
138083 +disable_so_sci_interrupt_acpi_table_fadt_18467 sci_interrupt acpi_table_fadt 0 18467 NULL
138084 +disable_so_mii_bmsr_bnx2_18468 mii_bmsr bnx2 0 18468 NULL
138085 +disable_so_qla4xxx_fw_timestamp_show_fndecl_18474 qla4xxx_fw_timestamp_show fndecl 0 18474 NULL
138086 +disable_so_viafb_fill_crtc_timing_fndecl_18476 viafb_fill_crtc_timing fndecl 2-3 18476 NULL
138087 +disable_so_sysctl_max_tw_buckets_inet_timewait_death_row_18487 sysctl_max_tw_buckets inet_timewait_death_row 0 18487 NULL
138088 +disable_so_hfdiv_dib0090_pll_18489 hfdiv dib0090_pll 0 18489 NULL
138089 +disable_so_demod_address_si21xx_config_18490 demod_address si21xx_config 0 18490 NULL
138090 +disable_so_sbp_tpg_attrib_show_max_reconnect_timeout_fndecl_18494 sbp_tpg_attrib_show_max_reconnect_timeout fndecl 0 18494 NULL
138091 +disable_so_cciss_find_cfg_addrs_fndecl_18500 cciss_find_cfg_addrs fndecl 0 18500 NULL
138092 +disable_so_sdo_runtime_resume_fndecl_18516 sdo_runtime_resume fndecl 0 18516 NULL
138093 +disable_so_available_uuids_show_fndecl_18518 available_uuids_show fndecl 0 18518 NULL
138094 +disable_so_mtrr_open_fndecl_18521 mtrr_open fndecl 0 18521 NULL
138095 +disable_so_r_min_rnr_timer_ipath_qp_18527 r_min_rnr_timer ipath_qp 0 18527 NULL
138096 +disable_so_fixed_mtrr_addr_seg_to_range_index_fndecl_18537 fixed_mtrr_addr_seg_to_range_index fndecl 1-0 18537 NULL
138097 +disable_so_timeout_floppy_drive_params_18540 timeout floppy_drive_params 0 18540 NULL
138098 +disable_so_show_cpu_clock_fndecl_18546 show_cpu_clock fndecl 0 18546 NULL
138099 +disable_so_inet6_fill_ifacaddr_fndecl_18549 inet6_fill_ifacaddr fndecl 0-3-5 18549 NULL
138100 +disable_so_physical_address_kvm_translation_18550 physical_address kvm_translation 0 18550 NULL
138101 +disable_so_kvm_mtrr_set_msr_fndecl_18553 kvm_mtrr_set_msr fndecl 3 18553 NULL
138102 +disable_so_dccp_timestamp_fndecl_18560 dccp_timestamp fndecl 0 18560 NULL
138103 +disable_so_frequency_analog_parameters_18561 frequency analog_parameters 0 18561 NULL
138104 +disable_so_resp_bd_list_addr_lo_bnx2i_login_request_18562 resp_bd_list_addr_lo bnx2i_login_request 0 18562 NULL
138105 +disable_so_pixels_1_gpu_addr_mga_cursor_18572 pixels_1_gpu_addr mga_cursor 0 18572 NULL
138106 +disable_so_compat_sys_stime_fndecl_18574 compat_sys_stime fndecl 0 18574 NULL
138107 +disable_so_timestamp_fwd_flush_batadv_priv_nc_18585 timestamp_fwd_flush batadv_priv_nc 0 18585 NULL nohasharray
138108 +disable_so_nilfs_btree_get_block_fndecl_18585 nilfs_btree_get_block fndecl 0-2 18585 &disable_so_timestamp_fwd_flush_batadv_priv_nc_18585
138109 +disable_so_sleep_cookie_pbase_pcie_service_card_18597 sleep_cookie_pbase pcie_service_card 0 18597 NULL
138110 +disable_so_sm_set_bitmap_fndecl_18598 sm_set_bitmap fndecl 2 18598 NULL
138111 +disable_so_lr_timeout_ext4_li_request_18599 lr_timeout ext4_li_request 0 18599 NULL
138112 +disable_so_start_time_bfa_diag_dport_subtest_result_s_18621 start_time bfa_diag_dport_subtest_result_s 0 18621 NULL
138113 +disable_so_ieee80211_aes_gmac_key_setup_fndecl_18626 ieee80211_aes_gmac_key_setup fndecl 2 18626 NULL
138114 +disable_so_code_addr_pmu_nvbios_pmuR_18630 code_addr_pmu nvbios_pmuR 0 18630 NULL
138115 +disable_so_btree_write_alias_fndecl_18631 btree_write_alias fndecl 0 18631 NULL
138116 +disable_so_level_btrfs_delayed_tree_ref_18632 level btrfs_delayed_tree_ref 0 18632 NULL
138117 +disable_so_bch_strtoull_h_fndecl_18633 bch_strtoull_h fndecl 0 18633 NULL
138118 +disable_so_resolution_snd_timer_status_18636 resolution snd_timer_status 0 18636 NULL
138119 +disable_so_crypto_module_init_fndecl_18640 crypto_module_init fndecl 0 18640 NULL
138120 +disable_so_mic_to_dma_addr_fndecl_18642 mic_to_dma_addr fndecl 0-2 18642 NULL
138121 +disable_so_nonblocking_wait_time_shtc1_data_18656 nonblocking_wait_time shtc1_data 0 18656 NULL
138122 +disable_so___remove_suid_fndecl_18657 __remove_suid fndecl 0 18657 NULL
138123 +disable_so_bootime_st_sensor_settings_18658 bootime st_sensor_settings 0 18658 NULL
138124 +disable_so_total_ref_mod_btrfs_delayed_ref_head_18666 total_ref_mod btrfs_delayed_ref_head 0 18666 NULL
138125 +disable_so_is_noncanonical_address_fndecl_18677 is_noncanonical_address fndecl 1 18677 NULL
138126 +disable_so_xcan_set_bittiming_fndecl_18678 xcan_set_bittiming fndecl 0 18678 NULL
138127 +disable_so_ipmi_set_my_address_fndecl_18680 ipmi_set_my_address fndecl 0 18680 NULL
138128 +disable_so_pixels_2_gpu_addr_mga_cursor_18686 pixels_2_gpu_addr mga_cursor 0 18686 NULL
138129 +disable_so_adjust_tsc_offset_guest_fndecl_18708 adjust_tsc_offset_guest fndecl 2 18708 NULL
138130 +disable_so_meson_spifc_runtime_resume_fndecl_18709 meson_spifc_runtime_resume fndecl 0 18709 NULL
138131 +disable_so_mclk_pwrmgt_cntl_rv770_clock_registers_18711 mclk_pwrmgt_cntl rv770_clock_registers 0 18711 NULL
138132 +disable_so_avgidle_cbq_class_18722 avgidle cbq_class 0 18722 NULL
138133 +disable_so_nla_nest_end_fndecl_18729 nla_nest_end fndecl 0 18729 NULL
138134 +disable_so_suspend_time_il_scan_cmd_18736 suspend_time il_scan_cmd 0 18736 NULL
138135 +disable_so_jiffies_to_timespec_fndecl_18737 jiffies_to_timespec fndecl 1 18737 NULL
138136 +disable_so___uwb_addr_print_fndecl_18746 __uwb_addr_print fndecl 0 18746 NULL
138137 +disable_so_apicid_set_error_type_with_address_18747 apicid set_error_type_with_address 0 18747 NULL
138138 +disable_so_reachable_time_ifla_cacheinfo_18748 reachable_time ifla_cacheinfo 0 18748 NULL
138139 +disable_so_mxl111sf_write_reg_fndecl_18752 mxl111sf_write_reg fndecl 0 18752 NULL
138140 +disable_so_img_ir_timing_preprocess_fndecl_18766 img_ir_timing_preprocess fndecl 2 18766 NULL
138141 +disable_so_aosr_aic31xx_rate_divs_18787 aosr aic31xx_rate_divs 0 18787 NULL
138142 +disable_so_led_set_flash_timeout_fndecl_18793 led_set_flash_timeout fndecl 2 18793 NULL
138143 +disable_so_proc_dointvec_userhz_jiffies_fndecl_18794 proc_dointvec_userhz_jiffies fndecl 0 18794 NULL
138144 +disable_so_return_address_stack_frame_18797 return_address stack_frame 0 18797 NULL
138145 +disable_so_perf_set_shadow_time_fndecl_18814 perf_set_shadow_time fndecl 3 18814 NULL nohasharray
138146 +disable_so_start_time_mem_ctl_info_18814 start_time mem_ctl_info 0 18814 &disable_so_perf_set_shadow_time_fndecl_18814
138147 +disable_so_out_of_int_time_mmc_ext_csd_18824 out_of_int_time mmc_ext_csd 0 18824 NULL
138148 +disable_so_tmr_subdevice_snd_timer_18828 tmr_subdevice snd_timer 0 18828 NULL
138149 +disable_so_xgmac_reg_addr_read_fndecl_18829 xgmac_reg_addr_read fndecl 3-0 18829 NULL
138150 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_retries_fndecl_18834 iscsi_nacl_attrib_show_dataout_timeout_retries fndecl 0 18834 NULL
138151 +disable_so_ip_hash_net4_elem_18835 ip hash_net4_elem 0 18835 NULL
138152 +disable_so_gid_ucred_18846 gid ucred 0 18846 NULL
138153 +disable_so_r44_val_fc2580_freq_regs_18847 r44_val fc2580_freq_regs 0 18847 NULL
138154 +disable_so_fotg210_set_dev_addr_fndecl_18854 fotg210_set_dev_addr fndecl 2 18854 NULL
138155 +disable_so_mac_time_hostap_80211_rx_status_18865 mac_time hostap_80211_rx_status 0 18865 NULL
138156 +disable_so___smsc95xx_write_reg_fndecl_18876 __smsc95xx_write_reg fndecl 0-2-3 18876 NULL
138157 +disable_so_svm_write_tsc_offset_fndecl_18879 svm_write_tsc_offset fndecl 2 18879 NULL
138158 +disable_so_max8997_rtc_read_time_fndecl_18881 max8997_rtc_read_time fndecl 0 18881 NULL nohasharray
138159 +disable_so_prev_tsc_cpudata_18881 prev_tsc cpudata 0 18881 &disable_so_max8997_rtc_read_time_fndecl_18881
138160 +disable_so_padlock_sha1_update_nano_fndecl_18884 padlock_sha1_update_nano fndecl 3 18884 NULL
138161 +disable_so_sysctl_rose_restart_request_timeout_vardecl_18885 sysctl_rose_restart_request_timeout vardecl 0 18885 NULL
138162 +disable_so_sysctl_aarp_expiry_time_vardecl_18891 sysctl_aarp_expiry_time vardecl 0 18891 NULL
138163 +disable_so_crypto_register_pcomp_fndecl_18915 crypto_register_pcomp fndecl 0 18915 NULL
138164 +disable_so_ata_timing_cycle2mode_fndecl_18918 ata_timing_cycle2mode fndecl 0 18918 NULL
138165 +disable_so_proc_dointvec_ms_jiffies_fndecl_18925 proc_dointvec_ms_jiffies fndecl 0 18925 NULL
138166 +disable_so_busaddr_vlsi_irda_dev_18931 busaddr vlsi_irda_dev 0 18931 NULL
138167 +disable_so_rx_coalescing_timeo_bna_ccb_18934 rx_coalescing_timeo bna_ccb 0 18934 NULL
138168 +disable_so_tx_ring_dma_addr_pcnet32_private_18936 tx_ring_dma_addr pcnet32_private 0 18936 NULL
138169 +disable_so_netlbl_unlhsh_add_addr6_fndecl_18945 netlbl_unlhsh_add_addr6 fndecl 4-0 18945 NULL nohasharray
138170 +disable_so_libipw_channel_to_freq_fndecl_18945 libipw_channel_to_freq fndecl 0-2 18945 &disable_so_netlbl_unlhsh_add_addr6_fndecl_18945
138171 +disable_so_oo_time_nfs4_openowner_18954 oo_time nfs4_openowner 0 18954 NULL
138172 +disable_so_rht_key_hashfn_fndecl_18957 rht_key_hashfn fndecl 0 18957 NULL
138173 +disable_so_query_id_mlx4_alias_guid_work_context_18958 query_id mlx4_alias_guid_work_context 0 18958 NULL nohasharray
138174 +disable_so_address_rq_enet_desc_18958 address rq_enet_desc 0 18958 &disable_so_query_id_mlx4_alias_guid_work_context_18958
138175 +disable_so_scan_bitmap_fndecl_18963 scan_bitmap fndecl 0-3-5-7 18963 NULL
138176 +disable_so_btrfs_item_key_to_cpu_fndecl_18966 btrfs_item_key_to_cpu fndecl 3 18966 NULL
138177 +disable_so_store_fan_time_fndecl_18972 store_fan_time fndecl 0-4 18972 NULL
138178 +disable_so_hash_conntrack_fndecl_18974 hash_conntrack fndecl 0 18974 NULL
138179 +disable_so_lsndtime_tcp_sock_18975 lsndtime tcp_sock 0 18975 NULL
138180 +disable_so_ratio_tg_rj54n1_clock_div_18979 ratio_tg rj54n1_clock_div 0 18979 NULL
138181 +disable_so_freq_lo_od_cpu_dbs_info_s_18987 freq_lo od_cpu_dbs_info_s 0 18987 NULL
138182 +disable_so_usnic_uiom_interval_tree_compute_subtree_last_fndecl_18989 usnic_uiom_interval_tree_compute_subtree_last fndecl 0 18989 NULL
138183 +disable_so_cg_spll_spread_spectrum_rv770_clock_registers_19000 cg_spll_spread_spectrum rv770_clock_registers 0 19000 NULL
138184 +disable_so_ps_poll_ps_poll_timeouts_read_fndecl_19005 ps_poll_ps_poll_timeouts_read fndecl 3 19005 NULL
138185 +disable_so_addr_low_sata_start_req_19006 addr_low sata_start_req 0 19006 NULL
138186 +disable_so_seq_rxrpc_header_19018 seq rxrpc_header 0 19018 NULL
138187 +disable_so_bs_uid_xfs_bstat_19023 bs_uid xfs_bstat 0 19023 NULL
138188 +disable_so_cmb_rx_timer_atl1_hw_19025 cmb_rx_timer atl1_hw 0 19025 NULL
138189 +disable_so_timestamp_batadv_nc_packet_19027 timestamp batadv_nc_packet 0 19027 NULL
138190 +disable_so_addr_high_ssp_ini_io_start_req_19029 addr_high ssp_ini_io_start_req 0 19029 NULL
138191 +disable_so_n_addresses_rxk5_key_19030 n_addresses rxk5_key 0 19030 NULL
138192 +disable_so_ccp_crypto_enqueue_request_fndecl_19035 ccp_crypto_enqueue_request fndecl 0 19035 NULL
138193 +disable_so_timeout_mxser_port_19037 timeout mxser_port 0 19037 NULL
138194 +disable_so_xfs_btree_rec_addr_fndecl_19048 xfs_btree_rec_addr fndecl 2 19048 NULL
138195 +disable_so_sz_qat_crypto_request_buffs_19050 sz qat_crypto_request_buffs 0 19050 NULL
138196 +disable_so_start_field_bit_offset_acpi_object_field_common_19052 start_field_bit_offset acpi_object_field_common 0 19052 NULL
138197 +disable_so_compat_sys_timer_create_fndecl_19053 compat_sys_timer_create fndecl 1 19053 NULL
138198 +disable_so_ioctl_busaddr_ips_ha_19067 ioctl_busaddr ips_ha 0 19067 NULL
138199 +disable_so_crypto_rng_reset_fndecl_19075 crypto_rng_reset fndecl 3 19075 NULL
138200 +disable_so_alignmask_crypto_hash_walk_19078 alignmask crypto_hash_walk 0 19078 NULL
138201 +disable_so_dst_addr_hi_dmae_command_19086 dst_addr_hi dmae_command 0 19086 NULL
138202 +disable_so_tx_time_us_qlcnic_nic_intr_coalesce_19089 tx_time_us qlcnic_nic_intr_coalesce 0 19089 NULL
138203 +disable_so_sctp_getsockopt_peer_addr_info_fndecl_19099 sctp_getsockopt_peer_addr_info fndecl 0 19099 NULL
138204 +disable_so_ack_interrupt_mbus_hw_ops_19100 ack_interrupt mbus_hw_ops 2 19100 NULL
138205 +disable_so_fm_tx_set_freq_fndecl_19116 fm_tx_set_freq fndecl 0-2 19116 NULL
138206 +disable_so_time_stabiliz_dibx000_agc_config_19117 time_stabiliz dibx000_agc_config 0 19117 NULL
138207 +disable_so_m_session_timeout_ceph_mdsmap_19122 m_session_timeout ceph_mdsmap 0 19122 NULL nohasharray
138208 +disable_so_rq_first_pbe_addr_hi_fcoe_kwqe_conn_offload1_19122 rq_first_pbe_addr_hi fcoe_kwqe_conn_offload1 0 19122 &disable_so_m_session_timeout_ceph_mdsmap_19122
138209 +disable_so_cfg80211_set_cipher_pairwise_fndecl_19124 cfg80211_set_cipher_pairwise fndecl 2 19124 NULL
138210 +disable_so_addr_low_bufq_addr_element_19128 addr_low bufq_addr_element 0 19128 NULL
138211 +disable_so__random_read_fndecl_19137 _random_read fndecl 0-1-3 19137 NULL
138212 +disable_so_data_timeout_ns_mmc_ioc_cmd_19142 data_timeout_ns mmc_ioc_cmd 0 19142 NULL
138213 +disable_so_sys_timer_getoverrun_fndecl_19145 sys_timer_getoverrun fndecl 1-0 19145 NULL
138214 +disable_so_force_static_address_read_fndecl_19149 force_static_address_read fndecl 3-0 19149 NULL
138215 +disable_so_timeout_vardecl_alim7101_wdt_c_19153 timeout vardecl_alim7101_wdt.c 0 19153 NULL
138216 +disable_so_get_msr_x86_emulate_ops_19170 get_msr x86_emulate_ops 2 19170 NULL
138217 +disable_so_freeze_timeout_msecs_vardecl_19173 freeze_timeout_msecs vardecl 0 19173 NULL
138218 +disable_so_time_mid_afs_uuid_19174 time_mid afs_uuid 0 19174 NULL
138219 +disable_so_do_signal_stop_fndecl_19193 do_signal_stop fndecl 1 19193 NULL
138220 +disable_so_xtime_update_fndecl_19206 xtime_update fndecl 1 19206 NULL
138221 +disable_so_sd_uid_stat_data_19209 sd_uid stat_data 0 19209 NULL
138222 +disable_so_conn_schedule_ip_vs_protocol_19210 conn_schedule ip_vs_protocol 1 19210 NULL
138223 +disable_so_ocfs2_dx_dir_name_hash_fndecl_19211 ocfs2_dx_dir_name_hash fndecl 3 19211 NULL
138224 +disable_so_posix_clock_register_fndecl_19213 posix_clock_register fndecl 2-0 19213 NULL
138225 +disable_so_ctnl_timeout_parse_policy_fndecl_19218 ctnl_timeout_parse_policy fndecl 0 19218 NULL
138226 +disable_so_get_parent_r8a66597_address_fndecl_19219 get_parent_r8a66597_address fndecl 0 19219 NULL
138227 +disable_so_ath5k_hw_htoclock_fndecl_19227 ath5k_hw_htoclock fndecl 2-0 19227 NULL
138228 +disable_so_cport_addr_nm256_19228 cport_addr nm256 0 19228 NULL
138229 +disable_so_mt2032_compute_freq_fndecl_19230 mt2032_compute_freq fndecl 2-3-4 19230 NULL
138230 +disable_so_prox_adjust_channel_bit_mask_fndecl_19253 prox_adjust_channel_bit_mask fndecl 3 19253 NULL
138231 +disable_so_base_addr_vnic_dev_ring_19264 base_addr vnic_dev_ring 0 19264 NULL
138232 +disable_so_authenc_geniv_ahash_update_done_fndecl_19273 authenc_geniv_ahash_update_done fndecl 2 19273 NULL
138233 +disable_so_ath6kl_cfg80211_host_sleep_fndecl_19284 ath6kl_cfg80211_host_sleep fndecl 0 19284 NULL
138234 +disable_so_keyring_detect_cycle_fndecl_19294 keyring_detect_cycle fndecl 0 19294 NULL
138235 +disable_so_bus_addr_img_hash_dev_19301 bus_addr img_hash_dev 0 19301 NULL
138236 +disable_so_nv04_timer_fini_fndecl_19314 nv04_timer_fini fndecl 0 19314 NULL
138237 +disable_so_sysctl_x25_restart_request_timeout_vardecl_19317 sysctl_x25_restart_request_timeout vardecl 0 19317 NULL
138238 +disable_so_timer_in_use_nes_hw_tune_timer_19327 timer_in_use nes_hw_tune_timer 0 19327 NULL
138239 +disable_so_misdn_add_timer_fndecl_19332 misdn_add_timer fndecl 2-0 19332 NULL
138240 +disable_so_timeout_vardecl_rn5t618_wdt_c_19337 timeout vardecl_rn5t618_wdt.c 0 19337 NULL
138241 +disable_so_err_addr_bfa_diag_memtest_result_19350 err_addr bfa_diag_memtest_result 0 19350 NULL
138242 +disable_so_jfs_strtoUCS_fndecl_19357 jfs_strtoUCS fndecl 3-0 19357 NULL
138243 +disable_so_addr_to_vsyscall_nr_fndecl_19368 addr_to_vsyscall_nr fndecl 0-1 19368 NULL
138244 +disable_so_small_buf_phy_addr_high_ql3_adapter_19371 small_buf_phy_addr_high ql3_adapter 0 19371 NULL
138245 +disable_so_micd_bias_start_time_arizona_pdata_19379 micd_bias_start_time arizona_pdata 0 19379 NULL
138246 +disable_so_current_frequency_s5h1411_state_19382 current_frequency s5h1411_state 0 19382 NULL
138247 +disable_so_silence_threshold_snd_pcm_runtime_19384 silence_threshold snd_pcm_runtime 0 19384 NULL
138248 +disable_so_pid_pppol2tpv3_addr_19385 pid pppol2tpv3_addr 0 19385 NULL
138249 +disable_so_wm8960_set_dai_clkdiv_fndecl_19392 wm8960_set_dai_clkdiv fndecl 3 19392 NULL
138250 +disable_so_drm_modeset_lock_interruptible_fndecl_19397 drm_modeset_lock_interruptible fndecl 0 19397 NULL
138251 +disable_so_isdn_divert_open_fndecl_19417 isdn_divert_open fndecl 0 19417 NULL
138252 +disable_so_uwb_rc_dev_addr_set_fndecl_19418 uwb_rc_dev_addr_set fndecl 0 19418 NULL
138253 +disable_so_frames_v4l2_timecode_19427 frames v4l2_timecode 0 19427 NULL
138254 +disable_so_bw_time_stamp_backing_dev_info_19428 bw_time_stamp backing_dev_info 0 19428 NULL
138255 +disable_so_nes_create_sockaddr_fndecl_19431 nes_create_sockaddr fndecl 1-2 19431 NULL
138256 +disable_so_s_uuid_hash_ocfs2_super_block_19432 s_uuid_hash ocfs2_super_block 0 19432 NULL
138257 +disable_so_paging64_walk_addr_fndecl_19436 paging64_walk_addr fndecl 3-4 19436 NULL
138258 +disable_so_snd_sonicvibes_interrupt_fndecl_19437 snd_sonicvibes_interrupt fndecl 1 19437 NULL
138259 +disable_so_width_psb_intel_sdvo_preferred_input_timing_args_19438 width psb_intel_sdvo_preferred_input_timing_args 0 19438 NULL
138260 +disable_so_padlock_sha256_final_fndecl_19450 padlock_sha256_final fndecl 0 19450 NULL
138261 +disable_so_period_time_bau_control_19451 period_time bau_control 0 19451 NULL
138262 +disable_so_timestamp_nfs4_closedata_19455 timestamp nfs4_closedata 0 19455 NULL
138263 +disable_so_crypto_fpu_init_fndecl_19461 crypto_fpu_init fndecl 0 19461 NULL
138264 +disable_so_sysctl_x25_reset_request_timeout_vardecl_19463 sysctl_x25_reset_request_timeout vardecl 0 19463 NULL nohasharray
138265 +disable_so_start_write_delay_c_19463 start_write delay_c 0 19463 &disable_so_sysctl_x25_reset_request_timeout_vardecl_19463
138266 +disable_so_calc_div_fndecl_19469 calc_div fndecl 0-4-3 19469 NULL
138267 +disable_so_log2bpmb_adfs_discrecord_19475 log2bpmb adfs_discrecord 0 19475 NULL
138268 +disable_so_sys_pkt_addr_dle_19487 sys_pkt_addr dle 0 19487 NULL
138269 +disable_so_igb_set_vf_mac_addr_fndecl_19490 igb_set_vf_mac_addr fndecl 3 19490 NULL
138270 +disable_so_ipaddr_atm_mpoa_qos_19492 ipaddr atm_mpoa_qos 0 19492 NULL
138271 +disable_so_start_addr_ms_system_item_19495 start_addr ms_system_item 0 19495 NULL
138272 +disable_so_nmi_timer_start_cpu_fndecl_19509 nmi_timer_start_cpu fndecl 1-0 19509 NULL
138273 +disable_so_rv3029c2_i2c_set_time_fndecl_19511 rv3029c2_i2c_set_time fndecl 0 19511 NULL
138274 +disable_so_trinity_get_valid_engine_clock_fndecl_19516 trinity_get_valid_engine_clock fndecl 0 19516 NULL
138275 +disable_so_add_addr_fndecl_19518 add_addr fndecl 3-4 19518 NULL nohasharray
138276 +disable_so_hash_extent_data_ref_item_fndecl_19518 hash_extent_data_ref_item fndecl 0 19518 &disable_so_add_addr_fndecl_19518
138277 +disable_so_prev_hw_ptr_period_snd_pcm_oss_runtime_19519 prev_hw_ptr_period snd_pcm_oss_runtime 0 19519 NULL
138278 +disable_so_eqaddr_fw_ri_res_sqrq_19526 eqaddr fw_ri_res_sqrq 0 19526 NULL
138279 +disable_so_tms_stime_compat_tms_19527 tms_stime compat_tms 0 19527 NULL
138280 +disable_so_period_addr_ath_gen_timer_configuration_19529 period_addr ath_gen_timer_configuration 0 19529 NULL
138281 +disable_so_sp_tss_segment_16_19536 sp tss_segment_16 0 19536 NULL nohasharray
138282 +disable_so_nrpages_address_space_19536 nrpages address_space 0 19536 &disable_so_sp_tss_segment_16_19536
138283 +disable_so_fb_cvt_pixclock_fndecl_19545 fb_cvt_pixclock fndecl 0 19545 NULL
138284 +disable_so_ipv6_addr_hash_fndecl_19554 ipv6_addr_hash fndecl 0 19554 NULL
138285 +disable_so_fnhe_daddr_fib_nh_exception_19556 fnhe_daddr fib_nh_exception 0 19556 NULL
138286 +disable_so_cir_addr_fintek_dev_19561 cir_addr fintek_dev 0 19561 NULL
138287 +disable_so_saddr_max_pktgen_dev_19567 saddr_max pktgen_dev 0 19567 NULL
138288 +disable_so_check_nnp_nosuid_fndecl_19568 check_nnp_nosuid fndecl 0 19568 NULL
138289 +disable_so_write_phy_reg_fndecl_19585 write_phy_reg fndecl 0-2-3 19585 NULL
138290 +disable_so_garp_join_time_vardecl_garp_c_19597 garp_join_time vardecl_garp.c 0 19597 NULL
138291 +disable_so_signalfd_dequeue_fndecl_19602 signalfd_dequeue fndecl 0-3 19602 NULL
138292 +disable_so_write8_comm_runtime_19603 write8 comm_runtime 4 19603 NULL
138293 +disable_so_sys_semtimedop_fndecl_19605 sys_semtimedop fndecl 1-3-0 19605 NULL
138294 +disable_so_xenvif_rx_queue_timeout_fndecl_19613 xenvif_rx_queue_timeout fndecl 0 19613 NULL
138295 +disable_so_local_cm_response_timeout_ib_cm_req_param_19614 local_cm_response_timeout ib_cm_req_param 0 19614 NULL nohasharray
138296 +disable_so_ath9k_hw_gen_timer_start_fndecl_19614 ath9k_hw_gen_timer_start fndecl 3-4 19614 &disable_so_local_cm_response_timeout_ib_cm_req_param_19614 nohasharray
138297 +disable_so_xtal_cap0p_r820t_freq_range_19614 xtal_cap0p r820t_freq_range 0 19614 &disable_so_ath9k_hw_gen_timer_start_fndecl_19614
138298 +disable_so_time_fmeter_19622 time fmeter 0 19622 NULL
138299 +disable_so_mce_timer_kick_fndecl_19627 mce_timer_kick fndecl 1 19627 NULL
138300 +disable_so_freqn_usb_stream_kernel_19628 freqn usb_stream_kernel 0 19628 NULL
138301 +disable_so_cg_spll_spread_spectrum_2_ci_clock_registers_19639 cg_spll_spread_spectrum_2 ci_clock_registers 0 19639 NULL
138302 +disable_so_ltr501_als_read_samp_freq_fndecl_19642 ltr501_als_read_samp_freq fndecl 0 19642 NULL
138303 +disable_so_addr_snd_sg_page_19645 addr snd_sg_page 0 19645 NULL nohasharray
138304 +disable_so_xfs_btree_kill_root_fndecl_19645 xfs_btree_kill_root fndecl 0 19645 &disable_so_addr_snd_sg_page_19645
138305 +disable_so_xc_get_signal_level_fndecl_19649 xc_get_signal_level fndecl 0 19649 NULL
138306 +disable_so_rx8581_get_datetime_fndecl_19650 rx8581_get_datetime fndecl 0 19650 NULL
138307 +disable_so_mdiv_gk104_clk_info_19653 mdiv gk104_clk_info 0 19653 NULL
138308 +disable_so_c_faddr_rds_connection_19664 c_faddr rds_connection 0 19664 NULL
138309 +disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666 afs_mntpt_expiry_timeout vardecl_mntpt.c 0 19666 NULL nohasharray
138310 +disable_so___queue_delayed_work_fndecl_19666 __queue_delayed_work fndecl 1-4 19666 &disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666
138311 +disable_so_store_risetime_fndecl_19668 store_risetime fndecl 4-0 19668 NULL
138312 +disable_so_div_r1_pll_values_19670 div_r1 pll_values 0 19670 NULL
138313 +disable_so_tstamp_inet6_ifaddr_19680 tstamp inet6_ifaddr 0 19680 NULL
138314 +disable_so_get_bt_addr_fndecl_19687 get_bt_addr fndecl 0 19687 NULL
138315 +disable_so_clocksource_register_hz_fndecl_19688 clocksource_register_hz fndecl 2 19688 NULL
138316 +disable_so_ceph_mdsmap_get_random_mds_fndecl_19695 ceph_mdsmap_get_random_mds fndecl 0 19695 NULL
138317 +disable_so_addr_qla82xx_md_entry_crb_19696 addr qla82xx_md_entry_crb 0 19696 NULL
138318 +disable_so_frequency_itd1000_state_19704 frequency itd1000_state 0 19704 NULL
138319 +disable_so_parent_tgid_fork_proc_event_19713 parent_tgid fork_proc_event 0 19713 NULL
138320 +disable_so_i_uid_ocfs2_dinode_19720 i_uid ocfs2_dinode 0 19720 NULL
138321 +disable_so_mx2_camera_clock_start_fndecl_19722 mx2_camera_clock_start fndecl 0 19722 NULL
138322 +disable_so_crypto_ccm_decrypt_fndecl_19728 crypto_ccm_decrypt fndecl 0 19728 NULL
138323 +disable_so_seq_put_decimal_ull_fndecl_19739 seq_put_decimal_ull fndecl 3 19739 NULL
138324 +disable_so_capture_source_addr_snd_card_saa7134_19740 capture_source_addr snd_card_saa7134 0 19740 NULL
138325 +disable_so_write_reg_fndecl_19743 write_reg fndecl 0-3 19743 NULL
138326 +disable_so_ndac_aic32x4_rate_divs_19748 ndac aic32x4_rate_divs 0 19748 NULL
138327 +disable_so_hpi_sample_clock_set_source_fndecl_19753 hpi_sample_clock_set_source fndecl 1-0 19753 NULL
138328 +disable_so_address_ipr_ioadl_desc_19756 address ipr_ioadl_desc 0 19756 NULL
138329 +disable_so_curr_hash_dir_private_info_19760 curr_hash dir_private_info 0 19760 NULL
138330 +disable_so_ccp_register_sha_alg_fndecl_19771 ccp_register_sha_alg fndecl 0 19771 NULL
138331 +disable_so_addr_set_port_fndecl_19776 addr_set_port fndecl 2 19776 NULL
138332 +disable_so_gpu_id_kfd_ioctl_get_clock_counters_args_19784 gpu_id kfd_ioctl_get_clock_counters_args 0 19784 NULL
138333 +disable_so_seq_cpl_rx_data_ddp_norss_19788 seq cpl_rx_data_ddp_norss 0 19788 NULL nohasharray
138334 +disable_so_cherryview_rps_max_freq_fndecl_19788 cherryview_rps_max_freq fndecl 0 19788 &disable_so_seq_cpl_rx_data_ddp_norss_19788
138335 +disable_so_inet6_dump_addr_fndecl_19792 inet6_dump_addr fndecl 0 19792 NULL
138336 +disable_so_pixelclock_videomode_19794 pixelclock videomode 0 19794 NULL
138337 +disable_so_hbackporch_v4l2_bt_timings_19806 hbackporch v4l2_bt_timings 0 19806 NULL
138338 +disable_so_dy_runtime_sc_19824 dy runtime_sc 0 19824 NULL nohasharray
138339 +disable_so_dm_btree_insert_fndecl_19824 dm_btree_insert fndecl 0-2 19824 &disable_so_dy_runtime_sc_19824
138340 +disable_so_cpufreq_generic_get_fndecl_19829 cpufreq_generic_get fndecl 0-1 19829 NULL
138341 +disable_so_outdiv_fll_factors_19836 outdiv fll_factors 0 19836 NULL
138342 +disable_so_scd_base_addr_il_priv_19840 scd_base_addr il_priv 0 19840 NULL
138343 +disable_so_acpi_ut_short_divide_fndecl_19845 acpi_ut_short_divide fndecl 1 19845 NULL
138344 +disable_so_timewarn_cs_read_fndecl_19849 timewarn_cs_read fndecl 0 19849 NULL
138345 +disable_so_freq_wmi_rx_action_event_19864 freq wmi_rx_action_event 0 19864 NULL
138346 +disable_so_eeprom_indirect_address_fndecl_19868 eeprom_indirect_address fndecl 0-2-3 19868 NULL
138347 +disable_so_core_clock_nes_adapter_19875 core_clock nes_adapter 0 19875 NULL
138348 +disable_so_ecx_v86_regs_19877 ecx v86_regs 0 19877 NULL
138349 +disable_so_base_clock_show_fndecl_19894 base_clock_show fndecl 0 19894 NULL
138350 +disable_so_jiffies_next_rtl2832_sdr_dev_19897 jiffies_next rtl2832_sdr_dev 0 19897 NULL
138351 +disable_so_process_tgid_exit_proc_event_19898 process_tgid exit_proc_event 0 19898 NULL
138352 +disable_so_n_cipher_suites_wiphy_19902 n_cipher_suites wiphy 0 19902 NULL
138353 +disable_so_fsl_asrc_cal_asrck_divisor_fndecl_19905 fsl_asrc_cal_asrck_divisor fndecl 0-2 19905 NULL
138354 +disable_so_ntimer_qs_tp_params_19910 ntimer_qs tp_params 0 19910 NULL
138355 +disable_so_rf_freq_off_mt7601u_eeprom_params_19920 rf_freq_off mt7601u_eeprom_params 0 19920 NULL
138356 +disable_so_ip_hash_netport4_elem_19921 ip hash_netport4_elem 0 19921 NULL
138357 +disable_so_cnid_hfs_btree_19924 cnid hfs_btree 0 19924 NULL
138358 +disable_so_vblank_lo_detailed_pixel_timing_19925 vblank_lo detailed_pixel_timing 0 19925 NULL
138359 +disable_so_addr_i2c_client_19929 addr i2c_client 0 19929 NULL
138360 +disable_so_addr_nv50_i2c_port_19931 addr nv50_i2c_port 0 19931 NULL
138361 +disable_so_epp_write_addr_parport_operations_19935 epp_write_addr parport_operations 0-3 19935 NULL
138362 +disable_so_ds_last_time_o2hb_disk_slot_19938 ds_last_time o2hb_disk_slot 0 19938 NULL
138363 +disable_so_local_addr_rds_info_tcp_socket_19943 local_addr rds_info_tcp_socket 0 19943 NULL
138364 +disable_so_i_ctime_ext3_inode_19948 i_ctime ext3_inode 0 19948 NULL
138365 +disable_so_maven_set_reg_fndecl_19961 maven_set_reg fndecl 3 19961 NULL
138366 +disable_so_maven_find_exact_clocks_fndecl_19977 maven_find_exact_clocks fndecl 1-2 19977 NULL
138367 +disable_so_tda826x_sleep_fndecl_19981 tda826x_sleep fndecl 0 19981 NULL
138368 +disable_so_rate_snd_pcm_runtime_19986 rate snd_pcm_runtime 0 19986 NULL
138369 +disable_so___pm_runtime_suspend_fndecl_19989 __pm_runtime_suspend fndecl 0 19989 NULL
138370 +disable_so_time_tx_survey_info_19997 time_tx survey_info 0 19997 NULL
138371 +disable_so_rt_time_rt_rq_20001 rt_time rt_rq 0 20001 NULL
138372 +disable_so_message_buffer_address_on_dsp_hpi_hw_obj_20007 message_buffer_address_on_dsp hpi_hw_obj 0 20007 NULL nohasharray
138373 +disable_so_log2_element_size_xilly_channel_20007 log2_element_size xilly_channel 0 20007 &disable_so_message_buffer_address_on_dsp_hpi_hw_obj_20007
138374 +disable_so_xfs_btree_init_block_fndecl_20025 xfs_btree_init_block fndecl 6 20025 NULL
138375 +disable_so_ds1347_set_time_fndecl_20026 ds1347_set_time fndecl 0 20026 NULL
138376 +disable_so_cyapa_start_runtime_fndecl_20033 cyapa_start_runtime fndecl 0 20033 NULL
138377 +disable_so_mvumi_map_pci_addr_fndecl_20039 mvumi_map_pci_addr fndecl 0 20039 NULL
138378 +disable_so_vpd_paddr_low_lpfc_mbx_read_rev_20047 vpd_paddr_low lpfc_mbx_read_rev 0 20047 NULL
138379 +disable_so_di_atime_qnx4_inode_entry_20056 di_atime qnx4_inode_entry 0 20056 NULL nohasharray
138380 +disable_so_cgid_ipc64_perm_20056 cgid ipc64_perm 0 20056 &disable_so_di_atime_qnx4_inode_entry_20056
138381 +disable_so_bb_watchdog_timeout_ms_ath_hw_20060 bb_watchdog_timeout_ms ath_hw 0 20060 NULL
138382 +disable_so_des5_idmac_desc_64addr_20062 des5 idmac_desc_64addr 0 20062 NULL
138383 +disable_so_buf_addr_mlx5_ib_resize_cq_20068 buf_addr mlx5_ib_resize_cq 0 20068 NULL
138384 +disable_so_is_partially_uptodate_address_space_operations_20075 is_partially_uptodate address_space_operations 2-3 20075 NULL
138385 +disable_so_mask_kvm_mtrr_range_20079 mask kvm_mtrr_range 0 20079 NULL
138386 +disable_so_st_ctime___old_kernel_stat_20080 st_ctime __old_kernel_stat 0 20080 NULL
138387 +disable_so_i_ctime_exofs_fcb_20092 i_ctime exofs_fcb 0 20092 NULL
138388 +disable_so_drbg_kcapi_random_fndecl_20112 drbg_kcapi_random fndecl 3-0 20112 NULL
138389 +disable_so_gid_fuse_in_header_20113 gid fuse_in_header 0 20113 NULL
138390 +disable_so_proto_xfrm_usersa_id_20137 proto xfrm_usersa_id 0 20137 NULL
138391 +disable_so_nsec_timecounter_20144 nsec timecounter 0 20144 NULL nohasharray
138392 +disable_so_kvm_set_shared_msr_fndecl_20144 kvm_set_shared_msr fndecl 2 20144 &disable_so_nsec_timecounter_20144
138393 +disable_so___xfrm4_addr_hash_fndecl_20148 __xfrm4_addr_hash fndecl 0 20148 NULL
138394 +disable_so_hpet_address_vardecl_20150 hpet_address vardecl 0 20150 NULL
138395 +disable_so_next_buf_addr_c67x00_hcd_20169 next_buf_addr c67x00_hcd 0 20169 NULL
138396 +disable_so_urg_seq_tcp_sock_20171 urg_seq tcp_sock 0 20171 NULL
138397 +disable_so_uid_crash_uid_20189 uid crash_uid 0 20189 NULL
138398 +disable_so_force_addr_vardecl_i2c_sis5595_c_20194 force_addr vardecl_i2c-sis5595.c 0 20194 NULL
138399 +disable_so_get_random_bytes_fndecl_20208 get_random_bytes fndecl 2 20208 NULL
138400 +disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 NULL
138401 +disable_so_ptp_devt_vardecl_ptp_clock_c_20222 ptp_devt vardecl_ptp_clock.c 0 20222 NULL
138402 +disable_so_rp5c01_read_time_fndecl_20225 rp5c01_read_time fndecl 0 20225 NULL
138403 +disable_so_scsi_inq_timeout_vardecl_scsi_scan_c_20228 scsi_inq_timeout vardecl_scsi_scan.c 0 20228 NULL
138404 +disable_so_crypto_report_alg_fndecl_20233 crypto_report_alg fndecl 0 20233 NULL
138405 +disable_so_cache_flush_timeout_vardecl_ms_block_c_20240 cache_flush_timeout vardecl_ms_block.c 0 20240 NULL nohasharray
138406 +disable_so_freq_to_note_fndecl_20240 freq_to_note fndecl 0-1 20240 &disable_so_cache_flush_timeout_vardecl_ms_block_c_20240
138407 +disable_so_sdhci_runtime_pm_put_fndecl_20243 sdhci_runtime_pm_put fndecl 0 20243 NULL nohasharray
138408 +disable_so_lookup_signal_page_by_index_fndecl_20243 lookup_signal_page_by_index fndecl 2 20243 &disable_so_sdhci_runtime_pm_put_fndecl_20243
138409 +disable_so_blkaddr_fsync_inode_entry_20244 blkaddr fsync_inode_entry 0 20244 NULL
138410 +disable_so_refb_r_div_ad9523_platform_data_20245 refb_r_div ad9523_platform_data 0 20245 NULL nohasharray
138411 +disable_so_i40e_aq_mac_address_read_fndecl_20245 i40e_aq_mac_address_read fndecl 0 20245 &disable_so_refb_r_div_ad9523_platform_data_20245
138412 +disable_so_buf_count_ccp_aes_cmac_req_ctx_20252 buf_count ccp_aes_cmac_req_ctx 0 20252 NULL
138413 +disable_so_nfs4_proc_get_lease_time_fndecl_20254 nfs4_proc_get_lease_time fndecl 0 20254 NULL nohasharray
138414 +disable_so_dma_addr_enet_cb_20254 dma_addr enet_cb 0 20254 &disable_so_nfs4_proc_get_lease_time_fndecl_20254
138415 +disable_so_eax_user_regs_struct32_20260 eax user_regs_struct32 0 20260 NULL
138416 +disable_so_freq_wmi_remain_on_chnl_cmd_20271 freq wmi_remain_on_chnl_cmd 0 20271 NULL
138417 +disable_so_esp_tss_segment_32_20300 esp tss_segment_32 0 20300 NULL
138418 +disable_so_hash_netportnet6_expire_fndecl_20301 hash_netportnet6_expire fndecl 4 20301 NULL
138419 +disable_so_dma_buffer_sst_module_runtime_context_20307 dma_buffer sst_module_runtime_context 0 20307 NULL nohasharray
138420 +disable_so_dest_data_addr_icp_qat_fw_comn_req_mid_20307 dest_data_addr icp_qat_fw_comn_req_mid 0 20307 &disable_so_dma_buffer_sst_module_runtime_context_20307
138421 +disable_so_nosnoop_pbladdr_fw_ri_tpte_20317 nosnoop_pbladdr fw_ri_tpte 0 20317 NULL
138422 +disable_so_sir_addr_sockaddr_irda_20319 sir_addr sockaddr_irda 0 20319 NULL
138423 +disable_so_iter_div_u64_rem_fndecl_20326 iter_div_u64_rem fndecl 0 20326 NULL
138424 +disable_so_ps2_adjust_timeout_fndecl_20329 ps2_adjust_timeout fndecl 0-3-2 20329 NULL nohasharray
138425 +disable_so_ztime_trackpoint_data_20329 ztime trackpoint_data 0 20329 &disable_so_ps2_adjust_timeout_fndecl_20329
138426 +disable_so_ui_uid_ufs2_inode_20330 ui_uid ufs2_inode 0 20330 NULL nohasharray
138427 +disable_so_stb6000_sleep_fndecl_20330 stb6000_sleep fndecl 0 20330 &disable_so_ui_uid_ufs2_inode_20330
138428 +disable_so_gfs2_bit_search_fndecl_20331 gfs2_bit_search fndecl 0-2 20331 NULL
138429 +disable_so_ccp_run_aes_cmac_cmd_fndecl_20335 ccp_run_aes_cmac_cmd fndecl 0 20335 NULL
138430 +disable_so_compat_sys_clock_gettime_fndecl_20336 compat_sys_clock_gettime fndecl 1 20336 NULL
138431 +disable_so_div_fc2580_pll_20347 div fc2580_pll 0 20347 NULL
138432 +disable_so_xfrm_spi_hash_fndecl_20353 xfrm_spi_hash fndecl 0-3-4-5 20353 NULL
138433 +disable_so_compute_duty_cycle_fndecl_20356 compute_duty_cycle fndecl 0-2 20356 NULL
138434 +disable_so_pmcraid_read_interrupts_fndecl_20362 pmcraid_read_interrupts fndecl 0 20362 NULL
138435 +disable_so_receive_bitmap_fndecl_20365 receive_bitmap fndecl 0 20365 NULL
138436 +disable_so_ccycle_esp_20366 ccycle esp 0 20366 NULL
138437 +disable_so_rspi_wait_for_interrupt_fndecl_20368 rspi_wait_for_interrupt fndecl 3-0 20368 NULL
138438 +disable_so_bitmap_startwrite_fndecl_20371 bitmap_startwrite fndecl 2-3 20371 NULL
138439 +disable_so_crypto_rfc4543_decrypt_fndecl_20376 crypto_rfc4543_decrypt fndecl 0 20376 NULL
138440 +disable_so_acpi_os_signal_fndecl_20378 acpi_os_signal fndecl 0 20378 NULL
138441 +disable_so_interrupt_type___vxge_hw_fifo_20379 interrupt_type __vxge_hw_fifo 0 20379 NULL
138442 +disable_so_address_lo_lpfc_rqe_20386 address_lo lpfc_rqe 0 20386 NULL
138443 +disable_so_addr_rsxx_reg_access_20389 addr rsxx_reg_access 0 20389 NULL
138444 +disable_so_vpm_read_address_fndecl_20399 vpm_read_address fndecl 0 20399 NULL
138445 +disable_so_block_addr_f2fs_nat_entry_20409 block_addr f2fs_nat_entry 0 20409 NULL
138446 +disable_so_backlight_duty_cycle_psb_intel_mode_device_20421 backlight_duty_cycle psb_intel_mode_device 0 20421 NULL
138447 +disable_so_skd_start_timer_fndecl_20432 skd_start_timer fndecl 0 20432 NULL
138448 +disable_so_cmd64x_program_timings_fndecl_20435 cmd64x_program_timings fndecl 2 20435 NULL
138449 +disable_so_chgfreq_cs42l52_platform_data_20448 chgfreq cs42l52_platform_data 0 20448 NULL
138450 +disable_so_tvaudio_sleep_fndecl_20455 tvaudio_sleep fndecl 2 20455 NULL
138451 +disable_so_simplefb_clocks_init_fndecl_20466 simplefb_clocks_init fndecl 0 20466 NULL
138452 +disable_so_last_time_stats_20477 last time_stats 0 20477 NULL
138453 +disable_so_min_freq_intel_gen6_power_mgmt_20480 min_freq intel_gen6_power_mgmt 0 20480 NULL
138454 +disable_so_il_dbgfs_interrupt_read_fndecl_20484 il_dbgfs_interrupt_read fndecl 3-0 20484 NULL
138455 +disable_so_final_timeout_irlap_cb_20486 final_timeout irlap_cb 0 20486 NULL
138456 +disable_so_sec_btrfs_timespec_20492 sec btrfs_timespec 0 20492 NULL
138457 +disable_so_bitmap_prepare_for_write_fndecl_20495 bitmap_prepare_for_write fndecl 3 20495 NULL
138458 +disable_so_cg_spll_func_cntl_3_ni_clock_registers_20497 cg_spll_func_cntl_3 ni_clock_registers 0 20497 NULL
138459 +disable_so_pch_udc_disable_interrupts_fndecl_20502 pch_udc_disable_interrupts fndecl 2 20502 NULL
138460 +disable_so_i_mtime_bfs_inode_20503 i_mtime bfs_inode 0 20503 NULL
138461 +disable_so_timeout_nft_dynset_20509 timeout nft_dynset 0 20509 NULL
138462 +disable_so_ni_populate_memory_timing_parameters_fndecl_20513 ni_populate_memory_timing_parameters fndecl 0 20513 NULL
138463 +disable_so_scnprintf_fndecl_20531 scnprintf fndecl 0-2 20531 NULL nohasharray
138464 +disable_so_select_addr_qla8xxx_minidump_entry_queue_20531 select_addr qla8xxx_minidump_entry_queue 0 20531 &disable_so_scnprintf_fndecl_20531
138465 +disable_so___ww_mutex_lock_interruptible_slowpath_fndecl_20533 __ww_mutex_lock_interruptible_slowpath fndecl 0 20533 NULL
138466 +disable_so_compute_subtree_max_end_fndecl_20536 compute_subtree_max_end fndecl 0 20536 NULL
138467 +disable_so_wlc_lcnphy_qdiv_roundup_fndecl_20539 wlc_lcnphy_qdiv_roundup fndecl 0-2-1 20539 NULL
138468 +disable_so_value_ieee80211_timeout_interval_ie_20540 value ieee80211_timeout_interval_ie 0 20540 NULL
138469 +disable_so_skb_put_le32_fndecl_20551 skb_put_le32 fndecl 2 20551 NULL
138470 +disable_so_get_setup_data_paddr_fndecl_20558 get_setup_data_paddr fndecl 0 20558 NULL
138471 +disable_so_i_mtime_nilfs_inode_20563 i_mtime nilfs_inode 0 20563 NULL
138472 +disable_so_cipher_key_params_20564 cipher key_params 0 20564 NULL
138473 +disable_so_iscsit_na_random_datain_pdu_offsets_fndecl_20565 iscsit_na_random_datain_pdu_offsets fndecl 0 20565 NULL
138474 +disable_so_delay_mult_qib_pportdata_20567 delay_mult qib_pportdata 0 20567 NULL
138475 +disable_so_pm_timer_block_acpi_table_fadt_20569 pm_timer_block acpi_table_fadt 0 20569 NULL
138476 +disable_so_addr_data_si_sm_io_20586 addr_data si_sm_io 0 20586 NULL nohasharray
138477 +disable_so_sib_flowinfo_sockaddr_ib_20586 sib_flowinfo sockaddr_ib 0 20586 &disable_so_addr_data_si_sm_io_20586
138478 +disable_so_dll_cntl_rv770_clock_registers_20601 dll_cntl rv770_clock_registers 0 20601 NULL nohasharray
138479 +disable_so_field_bit_position_acpi_create_field_info_20601 field_bit_position acpi_create_field_info 0 20601 &disable_so_dll_cntl_rv770_clock_registers_20601
138480 +disable_so_ndtc_hash_mask_ndt_config_20603 ndtc_hash_mask ndt_config 0 20603 NULL
138481 +disable_so_borrow_defer_timestamp_brcmf_fws_info_20615 borrow_defer_timestamp brcmf_fws_info 0 20615 NULL
138482 +disable_so_wakeup_max_time_show_fndecl_20622 wakeup_max_time_show fndecl 0 20622 NULL
138483 +disable_so_tw_flowlabel_inet_timewait_sock_20634 tw_flowlabel inet_timewait_sock 0 20634 NULL
138484 +disable_so_ib_baseaddr_l_mvumi_hs_page4_20645 ib_baseaddr_l mvumi_hs_page4 0 20645 NULL
138485 +disable_so_shash_register_instance_fndecl_20652 shash_register_instance fndecl 0 20652 NULL
138486 +disable_so_snd_usb_clock_find_source_fndecl_20655 snd_usb_clock_find_source fndecl 0-2 20655 NULL
138487 +disable_so_g_dv_timings_v4l2_subdev_video_ops_20656 g_dv_timings v4l2_subdev_video_ops 0 20656 NULL
138488 +disable_so_radio_addr_em28xx_board_20659 radio_addr em28xx_board 0 20659 NULL
138489 +disable_so_cx24117_sleep_fndecl_20661 cx24117_sleep fndecl 0 20661 NULL
138490 +disable_so_run_one_delayed_ref_fndecl_20668 run_one_delayed_ref fndecl 0 20668 NULL nohasharray
138491 +disable_so_saddr_ircomm_info_20668 saddr ircomm_info 0 20668 &disable_so_run_one_delayed_ref_fndecl_20668
138492 +disable_so_i2c_addr_req_t_20671 i2c_addr req_t 0 20671 NULL
138493 +disable_so_mcryptd_hash_import_fndecl_20673 mcryptd_hash_import fndecl 0 20673 NULL
138494 +disable_so_ath10k_reg_addr_read_fndecl_20675 ath10k_reg_addr_read fndecl 3-0 20675 NULL nohasharray
138495 +disable_so_frequency_stepsize_dvb_frontend_info_20675 frequency_stepsize dvb_frontend_info 0 20675 &disable_so_ath10k_reg_addr_read_fndecl_20675
138496 +disable_so_latency_timer_show_fndecl_20676 latency_timer_show fndecl 0 20676 NULL nohasharray
138497 +disable_so_total_bytes_transferred_snd_compr_runtime_20676 total_bytes_transferred snd_compr_runtime 0 20676 &disable_so_latency_timer_show_fndecl_20676
138498 +disable_so_control_addr_qla8xxx_minidump_entry_cache_20678 control_addr qla8xxx_minidump_entry_cache 0 20678 NULL
138499 +disable_so_timeout_i2c_algo_bit_data_20687 timeout i2c_algo_bit_data 0 20687 NULL
138500 +disable_so_lookup_address_fndecl_20689 lookup_address fndecl 1 20689 NULL
138501 +disable_so_pcf8523_rtc_read_time_fndecl_20690 pcf8523_rtc_read_time fndecl 0 20690 NULL
138502 +disable_so_freq_nvbios_cstepX_20695 freq nvbios_cstepX 0 20695 NULL
138503 +disable_so_seq_virtio_gpu_fence_20701 seq virtio_gpu_fence 0 20701 NULL
138504 +disable_so_ftime_qlcnic_filter_20707 ftime qlcnic_filter 0 20707 NULL nohasharray
138505 +disable_so_myri10ge_rss_hash_vardecl_myri10ge_c_20707 myri10ge_rss_hash vardecl_myri10ge.c 0 20707 &disable_so_ftime_qlcnic_filter_20707
138506 +disable_so_mwifiex_cmd_802_11_mac_address_fndecl_20714 mwifiex_cmd_802_11_mac_address fndecl 0 20714 NULL
138507 +disable_so_typeAndTimezone_timestamp_20722 typeAndTimezone timestamp 0 20722 NULL
138508 +disable_so_btrfs_delayed_update_inode_fndecl_20726 btrfs_delayed_update_inode fndecl 0 20726 NULL
138509 +disable_so_dsc_timeout_ide_tape_obj_20727 dsc_timeout ide_tape_obj 0 20727 NULL
138510 +disable_so_stb0899_dvbs2_set_carr_freq_fndecl_20730 stb0899_dvbs2_set_carr_freq fndecl 2-3 20730 NULL
138511 +disable_so_wl1271_acx_service_period_timeout_fndecl_20736 wl1271_acx_service_period_timeout fndecl 0 20736 NULL
138512 +disable_so_am335x_tsc_se_clr_fndecl_20745 am335x_tsc_se_clr fndecl 2 20745 NULL
138513 +disable_so_node_guid_ib_node_info_20750 node_guid ib_node_info 0 20750 NULL nohasharray
138514 +disable_so_rsxx_addr8_to_laddr_fndecl_20750 rsxx_addr8_to_laddr fndecl 0-1 20750 &disable_so_node_guid_ib_node_info_20750
138515 +disable_so_nilfs_btree_propagate_p_fndecl_20757 nilfs_btree_propagate_p fndecl 0 20757 NULL
138516 +disable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 0 20758 NULL
138517 +disable_so_dev_pm_opp_find_freq_exact_fndecl_20768 dev_pm_opp_find_freq_exact fndecl 2 20768 NULL
138518 +disable_so_mpll_dq_func_cntl_ni_clock_registers_20779 mpll_dq_func_cntl ni_clock_registers 0 20779 NULL
138519 +disable_so_print_time_fndecl_20783 print_time fndecl 1-0 20783 NULL
138520 +disable_so_store_fan_stop_time_fndecl_20785 store_fan_stop_time fndecl 0-4 20785 NULL nohasharray
138521 +disable_so_gpu_addr_r600_vram_scratch_20785 gpu_addr r600_vram_scratch 0 20785 &disable_so_store_fan_stop_time_fndecl_20785
138522 +disable_so_s5m8767_set_voltage_time_sel_fndecl_20788 s5m8767_set_voltage_time_sel fndecl 0-2-3 20788 NULL nohasharray
138523 +disable_so_addr_kvm_async_pf_20788 addr kvm_async_pf 0 20788 &disable_so_s5m8767_set_voltage_time_sel_fndecl_20788
138524 +disable_so_rxLifetime_ConfigRid_20793 rxLifetime ConfigRid 0 20793 NULL
138525 +disable_so_downdelay_bond_params_20794 downdelay bond_params 0 20794 NULL
138526 +disable_so_dma_address_info_20796 dma address_info 0 20796 NULL
138527 +disable_so_write16_async_rtl_io_20799 write16_async rtl_io 2-3 20799 NULL
138528 +disable_so_sec_2_cycles_fndecl_20803 sec_2_cycles fndecl 0-1 20803 NULL
138529 +disable_so_nsec_base_pvclock_gtod_data_20804 nsec_base pvclock_gtod_data 0 20804 NULL
138530 +disable_so_ndo_set_mac_address_net_device_ops_20806 ndo_set_mac_address net_device_ops 0 20806 NULL
138531 +disable_so_crypto_dump_report_fndecl_20811 crypto_dump_report fndecl 0 20811 NULL
138532 +disable_so_ttime_total_cfq_ttime_20813 ttime_total cfq_ttime 0 20813 NULL
138533 +disable_so_freq_chan_info_2064_lcnphy_20814 freq chan_info_2064_lcnphy 0 20814 NULL
138534 +disable_so_msleep_fndecl_20815 msleep fndecl 1 20815 NULL nohasharray
138535 +disable_so_freq_hz_xc4000_priv_20815 freq_hz xc4000_priv 0 20815 &disable_so_msleep_fndecl_20815
138536 +disable_so_t4_set_params_nosleep_fndecl_20819 t4_set_params_nosleep fndecl 0-2-3-4 20819 NULL
138537 +disable_so_get_next_timer_interrupt_fndecl_20832 get_next_timer_interrupt fndecl 0-1 20832 NULL
138538 +disable_so_vol_bit_width_anatop_regulator_20852 vol_bit_width anatop_regulator 0 20852 NULL
138539 +disable_so_VSyncStart_xtimings_20858 VSyncStart xtimings 0 20858 NULL
138540 +disable_so_calibrate_delay_is_known_fndecl_20859 calibrate_delay_is_known fndecl 0 20859 NULL
138541 +disable_so_handling_delay_adc_jack_data_20874 handling_delay adc_jack_data 0 20874 NULL
138542 +disable_so_fm3130_get_time_fndecl_20875 fm3130_get_time fndecl 0 20875 NULL
138543 +disable_so_addr_hi_mv_sg_20880 addr_hi mv_sg 0 20880 NULL
138544 +disable_so_print_time_fndecl_20896 print_time fndecl 1 20896 NULL nohasharray
138545 +disable_so_ini_jiffies_tm6000_dmaqueue_20896 ini_jiffies tm6000_dmaqueue 0 20896 &disable_so_print_time_fndecl_20896
138546 +disable_so_timeout_carl9170_tx_info_20900 timeout carl9170_tx_info 0 20900 NULL
138547 +disable_so_phys_addr_t4_sq_20908 phys_addr t4_sq 0 20908 NULL
138548 +disable_so_ns_2_cycles_fndecl_20913 ns_2_cycles fndecl 0-1 20913 NULL
138549 +disable_so_number_fndecl_20920 number fndecl 3 20920 NULL
138550 +disable_so_n_wm8978_pll_div_20930 n wm8978_pll_div 0 20930 NULL
138551 +disable_so_snd_es1938_interrupt_fndecl_20934 snd_es1938_interrupt fndecl 1 20934 NULL
138552 +disable_so___ilog2_u64_fndecl_20935 __ilog2_u64 fndecl 0-1 20935 NULL
138553 +disable_so_acpi_target_sleep_state_vardecl_sleep_c_20940 acpi_target_sleep_state vardecl_sleep.c 0 20940 NULL
138554 +disable_so_wq_cpumask_store_fndecl_20950 wq_cpumask_store fndecl 0-4 20950 NULL
138555 +disable_so_bmc150_accel_get_startup_times_fndecl_20957 bmc150_accel_get_startup_times fndecl 0 20957 NULL
138556 +disable_so_antdiv_ctl2_modal_eep_4k_header_20958 antdiv_ctl2 modal_eep_4k_header 0 20958 NULL
138557 +disable_so_rc_keydown_notimeout_fndecl_20964 rc_keydown_notimeout fndecl 4-3 20964 NULL
138558 +disable_so_inet6_fill_ifaddr_fndecl_20965 inet6_fill_ifaddr fndecl 0-3-5 20965 NULL
138559 +disable_so_hca_core_clock_mlx4_caps_20972 hca_core_clock mlx4_caps 0 20972 NULL
138560 +disable_so_netxen_set_interrupt_mode_fndecl_20973 netxen_set_interrupt_mode fndecl 2 20973 NULL
138561 +disable_so_slottime_sixpack_20976 slottime sixpack 0 20976 NULL
138562 +disable_so_mpll_ad_func_cntl_rv770_clock_registers_20978 mpll_ad_func_cntl rv770_clock_registers 0 20978 NULL
138563 +disable_so_uhash_entries_vardecl_udp_c_20980 uhash_entries vardecl_udp.c 0 20980 NULL
138564 +disable_so_s2mps11_regulator_set_voltage_time_sel_fndecl_20983 s2mps11_regulator_set_voltage_time_sel fndecl 0-2-3 20983 NULL
138565 +disable_so_mlx4_ib_query_gid_fndecl_20997 mlx4_ib_query_gid fndecl 0-2-3 20997 NULL
138566 +disable_so_ep_timeout_secs_vardecl_iwch_cm_c_20999 ep_timeout_secs vardecl_iwch_cm.c 0 20999 NULL nohasharray
138567 +disable_so_w83627ehf_write_fan_div_fndecl_20999 w83627ehf_write_fan_div fndecl 2 20999 &disable_so_ep_timeout_secs_vardecl_iwch_cm_c_20999
138568 +disable_so_vddc_radeon_clock_and_voltage_limits_21012 vddc radeon_clock_and_voltage_limits 0 21012 NULL
138569 +disable_so_spu_sleep_ds_device_21015 spu_sleep ds_device 0 21015 NULL
138570 +disable_so_dqb_btime_if_dqblk_21019 dqb_btime if_dqblk 0 21019 NULL
138571 +disable_so_sg_frame_phys_addr_megasas_cmd_fusion_21025 sg_frame_phys_addr megasas_cmd_fusion 0 21025 NULL
138572 +disable_so_radeon_crtc_set_base_atomic_fndecl_21027 radeon_crtc_set_base_atomic fndecl 0-3-4 21027 NULL
138573 +disable_so_i40e_get_san_mac_addr_fndecl_21029 i40e_get_san_mac_addr fndecl 0 21029 NULL
138574 +disable_so_regmap_del_irq_chip_fndecl_21031 regmap_del_irq_chip fndecl 1 21031 NULL
138575 +disable_so_res_hash_dlm_rsb_21034 res_hash dlm_rsb 0 21034 NULL
138576 +disable_so_early_acpi_parse_madt_lapic_addr_ovr_fndecl_21041 early_acpi_parse_madt_lapic_addr_ovr fndecl 0 21041 NULL
138577 +disable_so_tw_tos_inet_timewait_sock_21047 tw_tos inet_timewait_sock 0 21047 NULL
138578 +disable_so_cfg80211_get_chans_dfs_cac_time_fndecl_21052 cfg80211_get_chans_dfs_cac_time fndecl 0-2-3 21052 NULL
138579 +disable_so_random_tipc_net_21055 random tipc_net 0 21055 NULL
138580 +disable_so_tag_reg_addr_qla8xxx_minidump_entry_cache_21058 tag_reg_addr qla8xxx_minidump_entry_cache 0 21058 NULL
138581 +disable_so_m1_gma_clock_t_21062 m1 gma_clock_t 0 21062 NULL
138582 +disable_so_cutime_signal_struct_21069 cutime signal_struct 0 21069 NULL
138583 +disable_so_frac_pos_dummy_systimer_pcm_21070 frac_pos dummy_systimer_pcm 0 21070 NULL
138584 +disable_so_mmc_sdio_runtime_resume_fndecl_21078 mmc_sdio_runtime_resume fndecl 0 21078 NULL
138585 +disable_so_last_write_time_smb_com_query_information_rsp_21093 last_write_time smb_com_query_information_rsp 0 21093 NULL
138586 +disable_so_ssb_sdio_set_sbaddr_window_fndecl_21116 ssb_sdio_set_sbaddr_window fndecl 0-2 21116 NULL
138587 +disable_so_apei_clear_mce_fndecl_21119 apei_clear_mce fndecl 0 21119 NULL
138588 +disable_so_pnfs_layoutget_retry_bit_wait_fndecl_21127 pnfs_layoutget_retry_bit_wait fndecl 0 21127 NULL
138589 +disable_so_rq_page_table_addr_lo_iscsi_kwqe_conn_offload2_21144 rq_page_table_addr_lo iscsi_kwqe_conn_offload2 0 21144 NULL
138590 +disable_so_addrconf_sysctl_forward_fndecl_21146 addrconf_sysctl_forward fndecl 0 21146 NULL
138591 +disable_so_bcma_pmu_get_bus_clock_fndecl_21147 bcma_pmu_get_bus_clock fndecl 0 21147 NULL nohasharray
138592 +disable_so_address_acpi_generic_address_21147 address acpi_generic_address 0 21147 &disable_so_bcma_pmu_get_bus_clock_fndecl_21147
138593 +disable_so_phys_addr__DMABUFFERENTRY_21149 phys_addr _DMABUFFERENTRY 0 21149 NULL
138594 +disable_so_phy_addr_bnx2x_port_21152 phy_addr bnx2x_port 0 21152 NULL
138595 +disable_so_demod_address_va1j5jf8007t_config_21154 demod_address va1j5jf8007t_config 0 21154 NULL
138596 +disable_so_mgt_orb_timeout_sbp2_target_21164 mgt_orb_timeout sbp2_target 0 21164 NULL
138597 +disable_so_io_addr_blogic_probeinfo_21171 io_addr blogic_probeinfo 0 21171 NULL
138598 +disable_so_stag_c2_data_addr_21185 stag c2_data_addr 0 21185 NULL
138599 +disable_so_idle_timeout_set_fndecl_21189 idle_timeout_set fndecl 2 21189 NULL nohasharray
138600 +disable_so_rx_dma_addr_sh_msiof_spi_priv_21189 rx_dma_addr sh_msiof_spi_priv 0 21189 &disable_so_idle_timeout_set_fndecl_21189
138601 +disable_so_poll_schedule_timeout_fndecl_21195 poll_schedule_timeout fndecl 4 21195 NULL
138602 +disable_so_fb_cvt_ideal_duty_cycle_fndecl_21197 fb_cvt_ideal_duty_cycle fndecl 0 21197 NULL
138603 +disable_so_dwell_time_brcmf_fil_af_params_le_21198 dwell_time brcmf_fil_af_params_le 0 21198 NULL
138604 +disable_so_pciehp_poll_time_vardecl_21204 pciehp_poll_time vardecl 0 21204 NULL
138605 +disable_so_sha1_base_do_update_fndecl_21207 sha1_base_do_update fndecl 3 21207 NULL
138606 +disable_so_arizona_runtime_suspend_fndecl_21209 arizona_runtime_suspend fndecl 0 21209 NULL nohasharray
138607 +disable_so_pdev_bus_addr_vardecl_pdev_bus_c_21209 pdev_bus_addr vardecl_pdev_bus.c 0 21209 &disable_so_arizona_runtime_suspend_fndecl_21209
138608 +disable_so_xc_get_frequency_error_fndecl_21217 xc_get_frequency_error fndecl 0 21217 NULL
138609 +disable_so_phys_addr_megasas_sge_skinny_21220 phys_addr megasas_sge_skinny 0 21220 NULL
138610 +disable_so_i2c_addr_radeon_router_21224 i2c_addr radeon_router 0 21224 NULL
138611 +disable_so_invalidatepage_address_space_operations_21227 invalidatepage address_space_operations 2-3 21227 NULL
138612 +disable_so_usb_free_coherent_fndecl_21239 usb_free_coherent fndecl 2-4 21239 NULL
138613 +disable_so_ci_populate_memory_timing_parameters_fndecl_21251 ci_populate_memory_timing_parameters fndecl 0-2-3 21251 NULL
138614 +disable_so_compat_sys_semtimedop_fndecl_21253 compat_sys_semtimedop fndecl 3-1-0 21253 NULL
138615 +disable_so_blkcipher_walk_done_fndecl_21256 blkcipher_walk_done fndecl 0-3 21256 NULL
138616 +disable_so_iscsi_tpg_attrib_store_login_timeout_fndecl_21278 iscsi_tpg_attrib_store_login_timeout fndecl 0-3 21278 NULL
138617 +disable_so_tuner_address_mt2063_config_21279 tuner_address mt2063_config 0 21279 NULL
138618 +disable_so_register_refined_jiffies_fndecl_21283 register_refined_jiffies fndecl 1 21283 NULL
138619 +disable_so_debug_dma_unmap_sg_fndecl_21286 debug_dma_unmap_sg fndecl 3 21286 NULL
138620 +disable_so_of_do_get_timings_fndecl_21294 of_do_get_timings fndecl 0 21294 NULL
138621 +disable_so_mtrr_file_del_fndecl_21306 mtrr_file_del fndecl 1-2 21306 NULL
138622 +disable_so_set_timeout_watchdog_ops_21311 set_timeout watchdog_ops 2-0 21311 NULL
138623 +disable_so_ipv6_addr_prefix_fndecl_21318 ipv6_addr_prefix fndecl 3 21318 NULL
138624 +disable_so_ath6kl_disconnect_timeout_read_fndecl_21329 ath6kl_disconnect_timeout_read fndecl 3-0 21329 NULL
138625 +disable_so_tx_duty_cycle_cck_brcms_c_info_21336 tx_duty_cycle_cck brcms_c_info 0 21336 NULL
138626 +disable_so_pentium3_get_frequency_fndecl_21339 pentium3_get_frequency fndecl 0 21339 NULL
138627 +disable_so_ldr_img_ir_timing_regvals_21340 ldr img_ir_timing_regvals 0 21340 NULL
138628 +disable_so_extended_cpuid_level_cpuinfo_x86_21354 extended_cpuid_level cpuinfo_x86 0 21354 NULL
138629 +disable_so_btrfs_dev_replace_time_started_fndecl_21355 btrfs_dev_replace_time_started fndecl 0 21355 NULL
138630 +disable_so_sys_getrandom_fndecl_21357 sys_getrandom fndecl 3-0-2 21357 NULL
138631 +disable_so_bit_offset_bm_xfer_ctx_21370 bit_offset bm_xfer_ctx 0 21370 NULL
138632 +disable_so_dtime_inet_peer_21374 dtime inet_peer 0 21374 NULL
138633 +disable_so_ac_btime_acct_v3_21378 ac_btime acct_v3 0 21378 NULL nohasharray
138634 +disable_so_ccp_aes_cmac_final_fndecl_21378 ccp_aes_cmac_final fndecl 0 21378 &disable_so_ac_btime_acct_v3_21378
138635 +disable_so_clock_sdhci_host_21381 clock sdhci_host 0 21381 NULL
138636 +disable_so_check_delayed_ref_fndecl_21388 check_delayed_ref fndecl 0-4-5-6 21388 NULL
138637 +disable_so_ath_gen_timer_alloc_fndecl_21393 ath_gen_timer_alloc fndecl 5 21393 NULL
138638 +disable_so_irq_address_info_21405 irq address_info 0 21405 NULL
138639 +disable_so_mpll_ad_func_cntl_2_rv770_clock_registers_21412 mpll_ad_func_cntl_2 rv770_clock_registers 0 21412 NULL
138640 +disable_so_sctp_copy_one_addr_fndecl_21416 sctp_copy_one_addr fndecl 0-5 21416 NULL
138641 +disable_so_high_mcp_dma_addr_21433 high mcp_dma_addr 0 21433 NULL
138642 +disable_so_volt_change_delay_si_ulv_param_21442 volt_change_delay si_ulv_param 0 21442 NULL
138643 +disable_so_msr_bitmap_vmcs12_21445 msr_bitmap vmcs12 0 21445 NULL
138644 +disable_so_setauthsize_crypto_aead_21450 setauthsize crypto_aead 2 21450 NULL
138645 +disable_so_next_txpwr_check_time_b43_phy_21453 next_txpwr_check_time b43_phy 0 21453 NULL
138646 +disable_so_nl80211_send_assoc_timeout_fndecl_21464 nl80211_send_assoc_timeout fndecl 4 21464 NULL nohasharray
138647 +disable_so_i_no_addr_gfs2_inode_21464 i_no_addr gfs2_inode 0 21464 &disable_so_nl80211_send_assoc_timeout_fndecl_21464
138648 +disable_so_indirect_dma_addr_srp_request_21474 indirect_dma_addr srp_request 0 21474 NULL
138649 +disable_so_btrfs_uuid_iter_rem_fndecl_21476 btrfs_uuid_iter_rem fndecl 0-3-4 21476 NULL
138650 +disable_so_addr_op_msr_21481 addr op_msr 0 21481 NULL
138651 +disable_so_sysctl_x25_call_request_timeout_vardecl_21486 sysctl_x25_call_request_timeout vardecl 0 21486 NULL
138652 +disable_so_guard_time_trf7970a_21487 guard_time trf7970a 0 21487 NULL
138653 +disable_so_mclk_div_mcam_camera_21501 mclk_div mcam_camera 0 21501 NULL
138654 +disable_so_cpu_to_fs16_fndecl_21502 cpu_to_fs16 fndecl 0-2 21502 NULL
138655 +disable_so_dma_addr_dma_mapping_21503 dma_addr dma_mapping 0 21503 NULL
138656 +disable_so_extra_buf1_address_ene_device_21504 extra_buf1_address ene_device 0 21504 NULL
138657 +disable_so_last_completion_time_lpfc_hba_21515 last_completion_time lpfc_hba 0 21515 NULL
138658 +disable_so_il_add_beacon_time_fndecl_21519 il_add_beacon_time fndecl 0-4-3-2 21519 NULL
138659 +disable_so_stats_reset_time_bfa_port_s_21525 stats_reset_time bfa_port_s 0 21525 NULL
138660 +disable_so_rptr_gpu_addr_kernel_queue_21535 rptr_gpu_addr kernel_queue 0 21535 NULL nohasharray
138661 +disable_so_ceph_crypto_init_fndecl_21535 ceph_crypto_init fndecl 0 21535 &disable_so_rptr_gpu_addr_kernel_queue_21535
138662 +disable_so_out_of_line_wait_on_bit_lock_fndecl_21538 out_of_line_wait_on_bit_lock fndecl 0 21538 NULL
138663 +disable_so_demod_address_s5h1409_config_21550 demod_address s5h1409_config 0 21550 NULL
138664 +disable_so_bmsr_cphy_21556 bmsr cphy 0 21556 NULL
138665 +disable_so_small_buf_phy_addr_low_ql3_adapter_21561 small_buf_phy_addr_low ql3_adapter 0 21561 NULL
138666 +disable_so_bitmap_start_sync_fndecl_21564 bitmap_start_sync fndecl 2-4 21564 NULL
138667 +disable_so_last_frequency_mb86a20s_state_21569 last_frequency mb86a20s_state 0 21569 NULL
138668 +disable_so_addr_hi_st_ss_sgitem_21571 addr_hi st_ss_sgitem 0 21571 NULL
138669 +disable_so_last_dev_address_fndecl_21603 last_dev_address fndecl 0-1 21603 NULL
138670 +disable_so_account_user_time_fndecl_21611 account_user_time fndecl 2-3 21611 NULL
138671 +disable_so_mdiv_nvkm_domain_21612 mdiv nvkm_domain 0 21612 NULL
138672 +disable_so_mclk_div_wm8804_priv_21616 mclk_div wm8804_priv 0 21616 NULL
138673 +disable_so_dclk___fb_timings_21625 dclk __fb_timings 0 21625 NULL
138674 +disable_so_ts_jiffies_xpc_rsvd_page_21630 ts_jiffies xpc_rsvd_page 0 21630 NULL
138675 +disable_so_wlcore_translate_addr_fndecl_21631 wlcore_translate_addr fndecl 0-2 21631 NULL
138676 +disable_so_clock_mult_par_info_21633 clock_mult par_info 0 21633 NULL
138677 +disable_so_timeout_mgmt_cp_set_discoverable_21656 timeout mgmt_cp_set_discoverable 0 21656 NULL
138678 +disable_so_timeout_jiffies_jmb38x_ms_host_21666 timeout_jiffies jmb38x_ms_host 0 21666 NULL
138679 +disable_so_ax88179_set_mac_addr_fndecl_21668 ax88179_set_mac_addr fndecl 0 21668 NULL
138680 +disable_so_signalfd_copyinfo_fndecl_21691 signalfd_copyinfo fndecl 0 21691 NULL
138681 +disable_so_crypto_cbc_setkey_fndecl_21695 crypto_cbc_setkey fndecl 0-3 21695 NULL
138682 +disable_so_pm_freeze_timeout_show_fndecl_21696 pm_freeze_timeout_show fndecl 0 21696 NULL
138683 +disable_so_ip_clock_khz_ocores_i2c_21700 ip_clock_khz ocores_i2c 0 21700 NULL
138684 +disable_so_HDSPM_bit2freq_fndecl_21701 HDSPM_bit2freq fndecl 0 21701 NULL
138685 +disable_so_qdelay_old_pie_vars_21717 qdelay_old pie_vars 0 21717 NULL
138686 +disable_so_pixel_clock_max_soc_camera_sense_21728 pixel_clock_max soc_camera_sense 0 21728 NULL
138687 +disable_so_hash_max_net_bridge_21732 hash_max net_bridge 0 21732 NULL
138688 +disable_so_hashfn_fndecl_21739 hashfn fndecl 0 21739 NULL
138689 +disable_so_default_gfx_clock_sst_spec_21741 default_gfx_clock sst_spec 0 21741 NULL
138690 +disable_so_snd_seq_oss_timer_ioctl_fndecl_21751 snd_seq_oss_timer_ioctl fndecl 0 21751 NULL
138691 +disable_so_addr1_dir_table_slot_21753 addr1 dir_table_slot 0 21753 NULL
138692 +disable_so_ieee80211_extend_absent_time_fndecl_21756 ieee80211_extend_absent_time fndecl 2 21756 NULL
138693 +disable_so_sumo_set_ds_dividers_fndecl_21757 sumo_set_ds_dividers fndecl 2-3 21757 NULL
138694 +disable_so_fm_rx_set_freq_fndecl_21763 fm_rx_set_freq fndecl 0-2 21763 NULL
138695 +disable_so_end_phys_addr_qxl_memslot_21767 end_phys_addr qxl_memslot 0 21767 NULL
138696 +disable_so_phys_addr_megasas_sge64_21771 phys_addr megasas_sge64 0 21771 NULL
138697 +disable_so_evtchn_from_irq_fndecl_21772 evtchn_from_irq fndecl 1-0 21772 NULL
138698 +disable_so_addr_pch_gbe_phy_info_21776 addr pch_gbe_phy_info 0 21776 NULL
138699 +disable_so_jiffies_vid_out_vivid_dev_21777 jiffies_vid_out vivid_dev 0 21777 NULL
138700 +disable_so_slottime_ath_hw_21784 slottime ath_hw 0 21784 NULL
138701 +disable_so_ath6kl_wmi_set_host_sleep_mode_cmd_fndecl_21804 ath6kl_wmi_set_host_sleep_mode_cmd fndecl 0-2 21804 NULL
138702 +disable_so_iwl_dbgfs_current_sleep_command_read_fndecl_21810 iwl_dbgfs_current_sleep_command_read fndecl 3-0 21810 NULL
138703 +disable_so_ioctl_sound_timer_operations_21820 ioctl sound_timer_operations 0 21820 NULL
138704 +disable_so_i_atime_sysv_inode_21822 i_atime sysv_inode 0 21822 NULL
138705 +disable_so_rx_ring_dma_addr_amd8111e_priv_21826 rx_ring_dma_addr amd8111e_priv 0 21826 NULL
138706 +disable_so_hundredsOfMicroseconds_timestamp_21834 hundredsOfMicroseconds timestamp 0 21834 NULL
138707 +disable_so_ei_interrupt_fndecl_21846 ei_interrupt fndecl 1 21846 NULL
138708 +disable_so_address_wq_enet_desc_21854 address wq_enet_desc 0 21854 NULL
138709 +disable_so_avivo_get_fb_ref_div_fndecl_21857 avivo_get_fb_ref_div fndecl 3-5 21857 NULL
138710 +disable_so_ac_btime_taskstats_21864 ac_btime taskstats 0 21864 NULL
138711 +disable_so_reg_base_addr_dmar_drhd_unit_21865 reg_base_addr dmar_drhd_unit 0 21865 NULL
138712 +disable_so_svm_scale_tsc_fndecl_21868 svm_scale_tsc fndecl 0-2 21868 NULL
138713 +disable_so_m88rs6000t_sleep_fndecl_21874 m88rs6000t_sleep fndecl 0 21874 NULL
138714 +disable_so_bt_priority_time_ath_btcoex_21878 bt_priority_time ath_btcoex 0 21878 NULL
138715 +disable_so_radeon_legacy_get_memory_clock_fndecl_21881 radeon_legacy_get_memory_clock fndecl 0 21881 NULL
138716 +disable_so_drbg_cpu_to_be32_fndecl_21882 drbg_cpu_to_be32 fndecl 1 21882 NULL
138717 +disable_so_hpi_sample_clock_get_sample_rate_fndecl_21888 hpi_sample_clock_get_sample_rate fndecl 1-0 21888 NULL
138718 +disable_so_refdiv_radeon_atom_ss_21889 refdiv radeon_atom_ss 0 21889 NULL
138719 +disable_so_e_d_tov_timer_val_fcoe_kwqe_conn_offload4_21894 e_d_tov_timer_val fcoe_kwqe_conn_offload4 0 21894 NULL
138720 +disable_so_efx_ef10_rx_disable_timestamping_fndecl_21895 efx_ef10_rx_disable_timestamping fndecl 0 21895 NULL
138721 +disable_so_microseconds_timestamp_21897 microseconds timestamp 0 21897 NULL nohasharray
138722 +disable_so_hashbin_find_fndecl_21897 hashbin_find fndecl 2 21897 &disable_so_microseconds_timestamp_21897
138723 +disable_so_uid_audit_sig_info_21901 uid audit_sig_info 0 21901 NULL
138724 +disable_so_scb_busaddr_ips_scb_21906 scb_busaddr ips_scb 0 21906 NULL
138725 +disable_so_uvc_clock_param_get_fndecl_21908 uvc_clock_param_get fndecl 0 21908 NULL
138726 +disable_so_ali_program_timings_fndecl_21912 ali_program_timings fndecl 4 21912 NULL
138727 +disable_so_rx8025_get_time_fndecl_21924 rx8025_get_time fndecl 0 21924 NULL
138728 +disable_so_rx_addr_uart_8250_dma_21929 rx_addr uart_8250_dma 0 21929 NULL
138729 +disable_so_i2c_addr_sensor_s_21935 i2c_addr sensor_s 0 21935 NULL
138730 +disable_so_interrupt_m66592_21937 interrupt m66592 0 21937 NULL
138731 +disable_so_btintel_check_bdaddr_fndecl_21945 btintel_check_bdaddr fndecl 0 21945 NULL
138732 +disable_so_re_timeout_dummy_hcd_21947 re_timeout dummy_hcd 0 21947 NULL nohasharray
138733 +disable_so_mmc_runtime_suspend_fndecl_21947 mmc_runtime_suspend fndecl 0 21947 &disable_so_re_timeout_dummy_hcd_21947
138734 +disable_so_prb_resp_timeout_brcms_c_info_21953 prb_resp_timeout brcms_c_info 0 21953 NULL
138735 +disable_so_pcf8563_set_datetime_fndecl_21960 pcf8563_set_datetime fndecl 0 21960 NULL nohasharray
138736 +disable_so_addr_low_vring_dma_addr_21960 addr_low vring_dma_addr 0 21960 &disable_so_pcf8563_set_datetime_fndecl_21960
138737 +disable_so_key_schedule_gc_fndecl_21977 key_schedule_gc fndecl 1 21977 NULL
138738 +disable_so_max_freq_softlimit_intel_gen6_power_mgmt_21980 max_freq_softlimit intel_gen6_power_mgmt 0 21980 NULL
138739 +disable_so_sctp_v6_inaddr_any_fndecl_21991 sctp_v6_inaddr_any fndecl 2 21991 NULL
138740 +disable_so_bitmap_get_counter_fndecl_22004 bitmap_get_counter fndecl 2 22004 NULL
138741 +disable_so_id_cpufreq_cooling_device_22010 id cpufreq_cooling_device 0 22010 NULL
138742 +disable_so_efx_phc_adjfreq_fndecl_22013 efx_phc_adjfreq fndecl 0 22013 NULL
138743 +disable_so_i9xx_clock_fndecl_22015 i9xx_clock fndecl 1 22015 NULL
138744 +disable_so_backlight_off_delay_intel_dp_22022 backlight_off_delay intel_dp 0 22022 NULL
138745 +disable_so_adjust_tsc_offset_host_fndecl_22031 adjust_tsc_offset_host fndecl 2 22031 NULL
138746 +disable_so_ocfs2_inode_lock_atime_fndecl_22032 ocfs2_inode_lock_atime fndecl 0 22032 NULL
138747 +disable_so_last_timeout_jiffies_smi_info_22035 last_timeout_jiffies smi_info 0 22035 NULL
138748 +disable_so_dnet_addr_type_fndecl_22038 dnet_addr_type fndecl 1 22038 NULL
138749 +disable_so_qce_ablkcipher_crypt_fndecl_22054 qce_ablkcipher_crypt fndecl 0 22054 NULL
138750 +disable_so_move_addr_to_user_fndecl_22055 move_addr_to_user fndecl 2-0 22055 NULL
138751 +disable_so_qce_cpu_to_be32p_array_fndecl_22057 qce_cpu_to_be32p_array fndecl 3 22057 NULL
138752 +disable_so_rsp_kvm_regs_22061 rsp kvm_regs 0 22061 NULL
138753 +disable_so_sst_hsw_runtime_module_create_fndecl_22070 sst_hsw_runtime_module_create fndecl 3-2 22070 NULL
138754 +disable_so_paddr_ctlr_info_22072 paddr ctlr_info 0 22072 NULL
138755 +disable_so_net2272_get_ep_by_addr_fndecl_22073 net2272_get_ep_by_addr fndecl 2 22073 NULL
138756 +disable_so_nilfs_btree_node_get_ptr_fndecl_22076 nilfs_btree_node_get_ptr fndecl 0-2 22076 NULL
138757 +disable_so_signal_avg_station_info_22078 signal_avg station_info 0 22078 NULL
138758 +disable_so_hdmi_runtime_resume_fndecl_22080 hdmi_runtime_resume fndecl 0 22080 NULL
138759 +disable_so_nla_padlen_fndecl_22096 nla_padlen fndecl 1-0 22096 NULL
138760 +disable_so_sof_offset_uvc_clock_22104 sof_offset uvc_clock 0 22104 NULL
138761 +disable_so_current_frequency_au8522_state_22105 current_frequency au8522_state 0 22105 NULL
138762 +disable_so_vdelay_timing_22106 vdelay timing 0 22106 NULL
138763 +disable_so_abx500_get_register_page_interruptible_fndecl_22107 abx500_get_register_page_interruptible fndecl 0 22107 NULL
138764 +disable_so_xc_set_IF_frequency_fndecl_22111 xc_set_IF_frequency fndecl 0-2 22111 NULL
138765 +disable_so_curr_minor_hash_dir_private_info_22113 curr_minor_hash dir_private_info 0 22113 NULL
138766 +disable_so_ipg_find_phyaddr_fndecl_22117 ipg_find_phyaddr fndecl 0 22117 NULL
138767 +disable_so_dwell_time_passive_conf_sched_scan_settings_22127 dwell_time_passive conf_sched_scan_settings 0 22127 NULL
138768 +disable_so_ontime_snd_emux_voice_22136 ontime snd_emux_voice 0 22136 NULL
138769 +disable_so_queue_info_new_phys_addr_hi_megasas_init_frame_22147 queue_info_new_phys_addr_hi megasas_init_frame 0 22147 NULL
138770 +disable_so_demod_address_tda10048_config_22153 demod_address tda10048_config 0 22153 NULL
138771 +disable_so_timestamp_data_baddr_pmcraid_instance_22154 timestamp_data_baddr pmcraid_instance 0 22154 NULL
138772 +disable_so_qce_setup_regs_ablkcipher_fndecl_22163 qce_setup_regs_ablkcipher fndecl 0-2 22163 NULL
138773 +disable_so_cpu_index_cpuinfo_x86_22166 cpu_index cpuinfo_x86 0 22166 NULL nohasharray
138774 +disable_so_cache_timeout_vardecl_sm_ftl_c_22166 cache_timeout vardecl_sm_ftl.c 0 22166 &disable_so_cpu_index_cpuinfo_x86_22166
138775 +disable_so_ls_scan_time_dlm_ls_22170 ls_scan_time dlm_ls 0 22170 NULL
138776 +disable_so_overflowgid_vardecl_22177 overflowgid vardecl 0 22177 NULL
138777 +disable_so_timeout_uart_port_22187 timeout uart_port 0 22187 NULL
138778 +disable_so_ctime_nilfs_segsum_info_22193 ctime nilfs_segsum_info 0 22193 NULL
138779 +disable_so___cpu_to_virtio32_fndecl_22198 __cpu_to_virtio32 fndecl 0-2 22198 NULL
138780 +disable_so___page_check_address_fndecl_22199 __page_check_address fndecl 3 22199 NULL
138781 +disable_so_frequency_khz_m88rs6000t_dev_22206 frequency_khz m88rs6000t_dev 0 22206 NULL
138782 +disable_so_fm10k_update_mc_addr_vf_fndecl_22212 fm10k_update_mc_addr_vf fndecl 4 22212 NULL
138783 +disable_so_xfs_daddr_to_agno_fndecl_22214 xfs_daddr_to_agno fndecl 0-2 22214 NULL
138784 +disable_so_addr_radeon_bo_va_22216 addr radeon_bo_va 0 22216 NULL
138785 +disable_so_iwl_dbgfs_sleep_level_override_read_fndecl_22221 iwl_dbgfs_sleep_level_override_read fndecl 3-0 22221 NULL
138786 +disable_so_write_seq_cxgbi_sock_22223 write_seq cxgbi_sock 0 22223 NULL
138787 +disable_so_jiffies_init_s_stats_22227 jiffies_init s_stats 0 22227 NULL
138788 +disable_so_addr_1_qla83xx_minidump_entry_pollrdmwr_22235 addr_1 qla83xx_minidump_entry_pollrdmwr 0 22235 NULL
138789 +disable_so_boomerang_interrupt_fndecl_22238 boomerang_interrupt fndecl 1 22238 NULL
138790 +disable_so_start_addr_prism2_download_data_22240 start_addr prism2_download_data 0 22240 NULL
138791 +disable_so_addr_fixed_phy_22243 addr fixed_phy 0 22243 NULL
138792 +disable_so_parenttime_ictimesync_data_22250 parenttime ictimesync_data 0 22250 NULL
138793 +disable_so_tidvaddr_ipath_tid_info_22251 tidvaddr ipath_tid_info 0 22251 NULL
138794 +disable_so_ip_vs_sh_hashkey_fndecl_22252 ip_vs_sh_hashkey fndecl 1 22252 NULL
138795 +disable_so_m41t94_set_time_fndecl_22256 m41t94_set_time fndecl 0 22256 NULL
138796 +disable_so___bitmap_and_fndecl_22259 __bitmap_and fndecl 4 22259 NULL
138797 +disable_so_read_addr_qla82xx_md_entry_rdrom_22262 read_addr qla82xx_md_entry_rdrom 0 22262 NULL
138798 +disable_so_crypto_authenc_esn_iverify_fndecl_22263 crypto_authenc_esn_iverify fndecl 0-3 22263 NULL
138799 +disable_so_udelay_ixgbe_mbx_info_22275 udelay ixgbe_mbx_info 0 22275 NULL
138800 +disable_so_addr_init_tab_22277 addr init_tab 0 22277 NULL nohasharray
138801 +disable_so_cpufreq_cpu_get_raw_fndecl_22277 cpufreq_cpu_get_raw fndecl 1 22277 &disable_so_addr_init_tab_22277
138802 +disable_so_show_orig_dgid_fndecl_22281 show_orig_dgid fndecl 0 22281 NULL
138803 +disable_so_tua6100_sleep_fndecl_22289 tua6100_sleep fndecl 0 22289 NULL
138804 +disable_so_crypto_memneq_fndecl_22293 crypto_memneq fndecl 3 22293 NULL
138805 +disable_so_next_gid_index_mthca_mgm_22295 next_gid_index mthca_mgm 0 22295 NULL
138806 +disable_so__abb5zes3_rtc_read_time_fndecl_22302 _abb5zes3_rtc_read_time fndecl 0 22302 NULL nohasharray
138807 +disable_so_free_block_xfs_btree_ops_22302 free_block xfs_btree_ops 0 22302 &disable_so__abb5zes3_rtc_read_time_fndecl_22302
138808 +disable_so_cn_vprintf_fndecl_22303 cn_vprintf fndecl 0 22303 NULL nohasharray
138809 +disable_so_ixgbe_read_reg_fndecl_22303 ixgbe_read_reg fndecl 0-2 22303 &disable_so_cn_vprintf_fndecl_22303
138810 +disable_so_utime_mddev_22314 utime mddev 0 22314 NULL
138811 +disable_so_set_node_addr_fndecl_22329 set_node_addr fndecl 3 22329 NULL
138812 +disable_so_start_group_wait_time_cfqg_stats_22330 start_group_wait_time cfqg_stats 0 22330 NULL
138813 +disable_so_addrLow_ulp_bde64_22341 addrLow ulp_bde64 0 22341 NULL
138814 +disable_so_mr_get_mtt_addr_fndecl_22342 mr_get_mtt_addr fndecl 0 22342 NULL
138815 +disable_so_auto_deep_sleep_timeout_lbs_private_22358 auto_deep_sleep_timeout lbs_private 0 22358 NULL
138816 +disable_so_daddr_min_pktgen_dev_22362 daddr_min pktgen_dev 0 22362 NULL
138817 +disable_so_tusb_set_clock_source_fndecl_22365 tusb_set_clock_source fndecl 2 22365 NULL
138818 +disable_so_ocfs2_rotate_subtree_right_fndecl_22369 ocfs2_rotate_subtree_right fndecl 0-5 22369 NULL
138819 +disable_so_timestamp_nfs4_unlockdata_22375 timestamp nfs4_unlockdata 0 22375 NULL
138820 +disable_so_time_perf_event_context_22379 time perf_event_context 0 22379 NULL
138821 +disable_so_max8998_set_voltage_buck_time_sel_fndecl_22384 max8998_set_voltage_buck_time_sel fndecl 0-2-3 22384 NULL
138822 +disable_so_to_increment_rpc_timeout_22408 to_increment rpc_timeout 0 22408 NULL
138823 +disable_so_pci_addr_islpci_membuf_22412 pci_addr islpci_membuf 0 22412 NULL
138824 +disable_so_gf_div_fndecl_22416 gf_div fndecl 0-2-3 22416 NULL
138825 +disable_so_timeout_us_drm_vmw_fence_wait_arg_22421 timeout_us drm_vmw_fence_wait_arg 0 22421 NULL
138826 +disable_so_sd_ctime_stat_data_22425 sd_ctime stat_data 0 22425 NULL nohasharray
138827 +disable_so_runtime_reg_sch311x_gpio_block_22425 runtime_reg sch311x_gpio_block 0 22425 &disable_so_sd_ctime_stat_data_22425 nohasharray
138828 +disable_so_crypto_authenc_iverify_fndecl_22425 crypto_authenc_iverify fndecl 0-3 22425 &disable_so_runtime_reg_sch311x_gpio_block_22425
138829 +disable_so_port_guid_ib_node_info_22427 port_guid ib_node_info 0 22427 NULL
138830 +disable_so_ring_iowrite32options_fndecl_22428 ring_iowrite32options fndecl 2 22428 NULL
138831 +disable_so_period_ptr_snd_pcm_oss_runtime_22430 period_ptr snd_pcm_oss_runtime 0 22430 NULL
138832 +disable_so_ac_stimescaled_taskstats_22436 ac_stimescaled taskstats 0 22436 NULL
138833 +disable_so_slave_address_acpi_resource_i2c_serialbus_22453 slave_address acpi_resource_i2c_serialbus 0 22453 NULL
138834 +disable_so_dma_addr1_flexcop_dma_22481 dma_addr1 flexcop_dma 0 22481 NULL
138835 +disable_so_r11_kvm_regs_22488 r11 kvm_regs 0 22488 NULL
138836 +disable_so_lookup_overlapping_address_handler_fndecl_22494 lookup_overlapping_address_handler fndecl 2-3 22494 NULL
138837 +disable_so_throttled_clock_task_cfs_rq_22505 throttled_clock_task cfs_rq 0 22505 NULL
138838 +disable_so_bulletin_addr_vfpf_acquire_tlv_22506 bulletin_addr vfpf_acquire_tlv 0 22506 NULL
138839 +disable_so_buffer_bytes_snd_pcm_oss_runtime_22509 buffer_bytes snd_pcm_oss_runtime 0 22509 NULL
138840 +disable_so_cryptd_hash_enqueue_fndecl_22511 cryptd_hash_enqueue fndecl 0 22511 NULL
138841 +disable_so_set_msr_hyperv_pw_fndecl_22514 set_msr_hyperv_pw fndecl 3 22514 NULL
138842 +disable_so_am335x_tsc_se_set_cache_fndecl_22522 am335x_tsc_se_set_cache fndecl 2 22522 NULL
138843 +disable_so_dwell_time_delta_per_probe_5_conf_sched_scan_settings_22525 dwell_time_delta_per_probe_5 conf_sched_scan_settings 0 22525 NULL
138844 +disable_so_stride_qxl_bitmap_22527 stride qxl_bitmap 0 22527 NULL
138845 +disable_so_enable_time_regulator_ops_22541 enable_time regulator_ops 0 22541 NULL
138846 +disable_so_usb_port_runtime_resume_fndecl_22542 usb_port_runtime_resume fndecl 0 22542 NULL
138847 +disable_so_i_time_minix_inode_22559 i_time minix_inode 0 22559 NULL
138848 +disable_so_rpc_uaddr2sockaddr_fndecl_22573 rpc_uaddr2sockaddr fndecl 0-3 22573 NULL
138849 +disable_so_runtime_show_fndecl_22581 runtime_show fndecl 0 22581 NULL
138850 +disable_so__sched_setscheduler_fndecl_22589 _sched_setscheduler fndecl 0-2 22589 NULL
138851 +disable_so_ahc_outb_fndecl_22592 ahc_outb fndecl 2-3 22592 NULL
138852 +disable_so_tcp_fin_timeout_ip_vs_timeout_user_22596 tcp_fin_timeout ip_vs_timeout_user 0 22596 NULL
138853 +disable_so_channels_snd_pcm_oss_runtime_22629 channels snd_pcm_oss_runtime 0 22629 NULL
138854 +disable_so_ivsize_blkcipher_walk_22638 ivsize blkcipher_walk 0 22638 NULL
138855 +disable_so_xpcs_reg_addr_read_fndecl_22646 xpcs_reg_addr_read fndecl 3-0 22646 NULL
138856 +disable_so_ea_segmented_address_22657 ea segmented_address 0 22657 NULL
138857 +disable_so_rxhash_bnx2x_agg_info_22658 rxhash bnx2x_agg_info 0 22658 NULL
138858 +disable_so_get_timer_interval_fndecl_22661 get_timer_interval fndecl 0-2 22661 NULL
138859 +disable_so_clock_psb_intel_sdvo_preferred_input_timing_args_22671 clock psb_intel_sdvo_preferred_input_timing_args 0 22671 NULL
138860 +disable_so_nft_hash_obj_fndecl_22673 nft_hash_obj fndecl 0-2 22673 NULL
138861 +disable_so_ber_jiffies_stats_dib8000_state_22674 ber_jiffies_stats dib8000_state 0 22674 NULL
138862 +disable_so_sleep_ms_rtl_ps_ctl_22681 sleep_ms rtl_ps_ctl 0 22681 NULL
138863 +disable_so_addr_hi_eth_tx_start_bd_22685 addr_hi eth_tx_start_bd 0 22685 NULL
138864 +disable_so_lasttime_sym_shcb_22688 lasttime sym_shcb 0 22688 NULL
138865 +disable_so_cttimeout_init_fndecl_22691 cttimeout_init fndecl 0 22691 NULL
138866 +disable_so_crypto_authenc_encrypt_fndecl_22693 crypto_authenc_encrypt fndecl 0 22693 NULL
138867 +disable_so_kernfs_name_hash_fndecl_22704 kernfs_name_hash fndecl 0 22704 NULL
138868 +disable_so_msleep_interruptible_fndecl_22713 msleep_interruptible fndecl 1-0 22713 NULL
138869 +disable_so_compq_addr_lo_addr_ctrl_blk_22728 compq_addr_lo addr_ctrl_blk 0 22728 NULL
138870 +disable_so_dib7000p_get_time_us_fndecl_22737 dib7000p_get_time_us fndecl 0 22737 NULL
138871 +disable_so_src_addr_dma_slave_config_22748 src_addr dma_slave_config 0 22748 NULL
138872 +disable_so_userspace_addr_kvm_memory_slot_22749 userspace_addr kvm_memory_slot 0 22749 NULL
138873 +disable_so_addr6_resolve_fndecl_22753 addr6_resolve fndecl 0 22753 NULL
138874 +disable_so_sst_pm_runtime_put_fndecl_22759 sst_pm_runtime_put fndecl 0 22759 NULL
138875 +disable_so_mlx4_ib_get_aguid_comp_mask_from_ix_fndecl_22761 mlx4_ib_get_aguid_comp_mask_from_ix fndecl 0-1 22761 NULL
138876 +disable_so_d_time_dentry_22767 d_time dentry 0 22767 NULL
138877 +disable_so_mtd_to_docg4_address_fndecl_22769 mtd_to_docg4_address fndecl 0-1-2 22769 NULL
138878 +disable_so_cycle_counter_tag_capidtmf_recv_state_22771 cycle_counter tag_capidtmf_recv_state 0 22771 NULL
138879 +disable_so_lp872x_select_buck_vout_addr_fndecl_22790 lp872x_select_buck_vout_addr fndecl 0-2 22790 NULL
138880 +disable_so_base_mbox_addr_blogic_extmbox_req_22802 base_mbox_addr blogic_extmbox_req 0 22802 NULL nohasharray
138881 +disable_so_no_addr_gfs2_inum_22802 no_addr gfs2_inum 0 22802 &disable_so_base_mbox_addr_blogic_extmbox_req_22802
138882 +disable_so_debug_dma_map_sg_fndecl_22804 debug_dma_map_sg fndecl 3-4 22804 NULL
138883 +disable_so___cpuidle_register_driver_fndecl_22806 __cpuidle_register_driver fndecl 0 22806 NULL
138884 +disable_so_vhost64_to_cpu_fndecl_22807 vhost64_to_cpu fndecl 0 22807 NULL
138885 +disable_so_start_address_acpi_address_range_22816 start_address acpi_address_range 0 22816 NULL
138886 +disable_so_mce_request_packet_fndecl_22818 mce_request_packet fndecl 3 22818 NULL
138887 +disable_so_bad_std_timing_fndecl_22827 bad_std_timing fndecl 1 22827 NULL
138888 +disable_so_swap_cluster_schedule_discard_fndecl_22833 swap_cluster_schedule_discard fndecl 2 22833 NULL
138889 +disable_so_palmas_rtc_set_time_fndecl_22849 palmas_rtc_set_time fndecl 0 22849 NULL
138890 +disable_so___arch_hweight8_fndecl_22850 __arch_hweight8 fndecl 0-1 22850 NULL
138891 +disable_so_store_risefalltime_fndecl_22854 store_risefalltime fndecl 5-0-4 22854 NULL
138892 +disable_so_qlcnic_83xx_get_mac_address_fndecl_22858 qlcnic_83xx_get_mac_address fndecl 0 22858 NULL
138893 +disable_so_vnic_dev_get_mac_addr_fndecl_22860 vnic_dev_get_mac_addr fndecl 0 22860 NULL
138894 +disable_so_hash_id_hh_flow_state_22864 hash_id hh_flow_state 0 22864 NULL
138895 +disable_so_runtime_suspend_dev_pm_ops_22871 runtime_suspend dev_pm_ops 0 22871 NULL nohasharray
138896 +disable_so_objectid_btrfs_key_22871 objectid btrfs_key 0 22871 &disable_so_runtime_suspend_dev_pm_ops_22871
138897 +disable_so_bitmap_parse_fndecl_22876 bitmap_parse fndecl 0-2-4 22876 NULL
138898 +disable_so_avg_delay_fndecl_22883 avg_delay fndecl 0 22883 NULL nohasharray
138899 +disable_so_mce_threshold_block_init_fndecl_22883 mce_threshold_block_init fndecl 2 22883 &disable_so_avg_delay_fndecl_22883
138900 +disable_so_pdeath_signal_task_struct_22884 pdeath_signal task_struct 0 22884 NULL
138901 +disable_so_bits_per_word_blk_mq_bitmap_tags_22896 bits_per_word blk_mq_bitmap_tags 0 22896 NULL
138902 +disable_so_saddr_irda_device_info_22915 saddr irda_device_info 0 22915 NULL
138903 +disable_so_frm_extra_delay_vardecl_isar_c_22927 frm_extra_delay vardecl_isar.c 0 22927 NULL
138904 +disable_so_lbs_set_host_sleep_fndecl_22932 lbs_set_host_sleep fndecl 0 22932 NULL
138905 +disable_so_orinoco_ioctl_setfreq_fndecl_22934 orinoco_ioctl_setfreq fndecl 0 22934 NULL
138906 +disable_so_bit_bitstream_cursor_22959 bit bitstream_cursor 0 22959 NULL
138907 +disable_so_cifs_strtoUTF16_fndecl_22967 cifs_strtoUTF16 fndecl 0-3 22967 NULL
138908 +disable_so_rbx_kvm_regs_22975 rbx kvm_regs 0 22975 NULL
138909 +disable_so_runtime_resume_dev_pm_ops_22976 runtime_resume dev_pm_ops 0 22976 NULL
138910 +disable_so_address_ioaccel2_sg_element_22986 address ioaccel2_sg_element 0 22986 NULL
138911 +disable_so_frags_paddr_htt_data_tx_desc_22993 frags_paddr htt_data_tx_desc 0 22993 NULL
138912 +disable_so_ss_ctime_nilfs_sustat_23015 ss_ctime nilfs_sustat 0 23015 NULL
138913 +disable_so_radeon_atom_set_ac_timing_fndecl_23020 radeon_atom_set_ac_timing fndecl 2 23020 NULL
138914 +disable_so_b43legacy_interrupt_ack_fndecl_23025 b43legacy_interrupt_ack fndecl 2 23025 NULL
138915 +disable_so_i_atime_nsec_f2fs_inode_23028 i_atime_nsec f2fs_inode 0 23028 NULL
138916 +disable_so_addr_wil_fw_record_fill_23039 addr wil_fw_record_fill 0 23039 NULL
138917 +disable_so_cyc2ns_offset_cyc2ns_data_23042 cyc2ns_offset cyc2ns_data 0 23042 NULL
138918 +disable_so_panel_power_cycle_delay_cdv_intel_dp_23045 panel_power_cycle_delay cdv_intel_dp 0 23045 NULL
138919 +disable_so_crypto_rfc4543_copy_src_to_dst_fndecl_23047 crypto_rfc4543_copy_src_to_dst fndecl 0 23047 NULL
138920 +disable_so_pte_pfn_to_mfn_fndecl_23066 pte_pfn_to_mfn fndecl 1-0 23066 NULL
138921 +disable_so_hpll_freq_drm_i915_private_23074 hpll_freq drm_i915_private 0 23074 NULL
138922 +disable_so_ly_base_addr_c67x00_td_23082 ly_base_addr c67x00_td 0 23082 NULL
138923 +disable_so_num_bits_alps_bitmap_point_23084 num_bits alps_bitmap_point 0 23084 NULL
138924 +disable_so_ip6addrlbl_dump_fndecl_23085 ip6addrlbl_dump fndecl 0 23085 NULL
138925 +disable_so_sc_seg_ctime_nilfs_sc_info_23088 sc_seg_ctime nilfs_sc_info 0 23088 NULL
138926 +disable_so_rxbd_addr_lo_host_cmd_ds_pcie_details_23092 rxbd_addr_lo host_cmd_ds_pcie_details 0 23092 NULL
138927 +disable_so_addrconf_init_fndecl_23107 addrconf_init fndecl 0 23107 NULL
138928 +disable_so_regcache_lzo_read_fndecl_23109 regcache_lzo_read fndecl 0-2 23109 NULL
138929 +disable_so_mac_addr_high_nes_adapter_23110 mac_addr_high nes_adapter 0 23110 NULL nohasharray
138930 +disable_so_gf100_fifo_engidx_fndecl_23110 gf100_fifo_engidx fndecl 0 23110 &disable_so_mac_addr_high_nes_adapter_23110
138931 +disable_so_busy_timeout_mmc_command_23112 busy_timeout mmc_command 0 23112 NULL
138932 +disable_so_expired_tscdeadline_kvm_timer_23113 expired_tscdeadline kvm_timer 0 23113 NULL nohasharray
138933 +disable_so_dtoh_mb_data_addr_brcmf_pcie_shared_info_23113 dtoh_mb_data_addr brcmf_pcie_shared_info 0 23113 &disable_so_expired_tscdeadline_kvm_timer_23113
138934 +disable_so_mmc_mmc_erase_timeout_fndecl_23122 mmc_mmc_erase_timeout fndecl 0-3-2 23122 NULL
138935 +disable_so_bq32k_rtc_read_time_fndecl_23124 bq32k_rtc_read_time fndecl 0 23124 NULL
138936 +disable_so_mtt_base_addr_h_mlx4_eq_context_23127 mtt_base_addr_h mlx4_eq_context 0 23127 NULL
138937 +disable_so_sack_timeout_netns_sctp_23134 sack_timeout netns_sctp 0 23134 NULL
138938 +disable_so_addr_hw_breakpoint_23137 addr hw_breakpoint 0 23137 NULL
138939 +disable_so_port_sctp_bind_addr_23142 port sctp_bind_addr 0 23142 NULL
138940 +disable_so_rpa_timeout_set_fndecl_23145 rpa_timeout_set fndecl 2 23145 NULL nohasharray
138941 +disable_so_mthca_SW2HW_MPT_fndecl_23145 mthca_SW2HW_MPT fndecl 0-3 23145 &disable_so_rpa_timeout_set_fndecl_23145 nohasharray
138942 +disable_so_mlx5_query_mad_ifc_node_guid_fndecl_23145 mlx5_query_mad_ifc_node_guid fndecl 0 23145 &disable_so_mthca_SW2HW_MPT_fndecl_23145
138943 +disable_so_eof_gid_xfs_fs_eofblocks_23146 eof_gid xfs_fs_eofblocks 0 23146 NULL
138944 +disable_so_ccp_aes_decrypt_fndecl_23149 ccp_aes_decrypt fndecl 0 23149 NULL
138945 +disable_so_idle_timeout_hci_dev_23160 idle_timeout hci_dev 0 23160 NULL
138946 +disable_so_radeon_atom_set_memory_clock_fndecl_23164 radeon_atom_set_memory_clock fndecl 2 23164 NULL
138947 +disable_so_k_pll_div_23168 k pll_div 0 23168 NULL
138948 +disable_so_ebitmap_node_clr_bit_fndecl_23171 ebitmap_node_clr_bit fndecl 2 23171 NULL
138949 +disable_so_rt_runtime_rt_schedulable_data_23172 rt_runtime rt_schedulable_data 0 23172 NULL
138950 +disable_so_reply_dma_min_address_MPT2SAS_ADAPTER_23181 reply_dma_min_address MPT2SAS_ADAPTER 0 23181 NULL
138951 +disable_so_tsc_shift_pvclock_vcpu_time_info_23184 tsc_shift pvclock_vcpu_time_info 0 23184 NULL
138952 +disable_so_vlan_dev_set_mac_address_fndecl_23188 vlan_dev_set_mac_address fndecl 0 23188 NULL
138953 +disable_so_mpll_ss1_ci_clock_registers_23197 mpll_ss1 ci_clock_registers 0 23197 NULL
138954 +disable_so_addr_cmd_complete_fndecl_23200 addr_cmd_complete fndecl 0 23200 NULL
138955 +disable_so_cpu_clock_fndecl_23205 cpu_clock fndecl 1-0 23205 NULL
138956 +disable_so_prescale_pll_div_23215 prescale pll_div 0 23215 NULL
138957 +disable_so_sel_addr2___mux2_23216 sel_addr2 __mux2 0 23216 NULL
138958 +disable_so_usb_sleep_charge_store_fndecl_23232 usb_sleep_charge_store fndecl 0-4 23232 NULL
138959 +disable_so_bmc150_accel_set_interrupt_fndecl_23235 bmc150_accel_set_interrupt fndecl 0 23235 NULL
138960 +disable_so_netlbl_af4list_audit_addr_fndecl_23240 netlbl_af4list_audit_addr fndecl 4-5 23240 NULL
138961 +disable_so_max_freq_intel_gen6_power_mgmt_23243 max_freq intel_gen6_power_mgmt 0 23243 NULL
138962 +disable_so_i_ctime_ext4_inode_23246 i_ctime ext4_inode 0 23246 NULL
138963 +disable_so_sel_read_avc_hash_stats_fndecl_23251 sel_read_avc_hash_stats fndecl 0-3 23251 NULL
138964 +disable_so_wlc_phy_get_chan_freq_range_nphy_fndecl_23253 wlc_phy_get_chan_freq_range_nphy fndecl 2 23253 NULL
138965 +disable_so_trinity_convert_did_to_freq_fndecl_23254 trinity_convert_did_to_freq fndecl 0-2 23254 NULL
138966 +disable_so_nopin_timeout_iscsi_node_attrib_23262 nopin_timeout iscsi_node_attrib 0 23262 NULL
138967 +disable_so_blk_rq_timeout_fndecl_23263 blk_rq_timeout fndecl 0-1 23263 NULL
138968 +disable_so_dmfe_interrupt_fndecl_23265 dmfe_interrupt fndecl 1 23265 NULL
138969 +disable_so_crypto_rng_generate_fndecl_23266 crypto_rng_generate fndecl 0-5 23266 NULL
138970 +disable_so_ebitmap_read_fndecl_23268 ebitmap_read fndecl 0 23268 NULL
138971 +disable_so_loops_per_jiffy_cpuinfo_x86_23277 loops_per_jiffy cpuinfo_x86 0 23277 NULL
138972 +disable_so_T7_address_mxt_data_23282 T7_address mxt_data 0 23282 NULL
138973 +disable_so_turn_around_timeout_mipi_config_23283 turn_around_timeout mipi_config 0 23283 NULL
138974 +disable_so_crypto_report_one_fndecl_23300 crypto_report_one fndecl 0 23300 NULL
138975 +disable_so_io_base_addr_pch_spi_data_23302 io_base_addr pch_spi_data 0 23302 NULL
138976 +disable_so___ww_mutex_lock_interruptible_fndecl_23308 __ww_mutex_lock_interruptible fndecl 0 23308 NULL
138977 +disable_so_get_bitmap_file_fndecl_23317 get_bitmap_file fndecl 0 23317 NULL
138978 +disable_so_address_hi_lpfc_rqe_23318 address_hi lpfc_rqe 0 23318 NULL
138979 +disable_so_iscsit_na_nopin_response_timeout_fndecl_23323 iscsit_na_nopin_response_timeout fndecl 2-0 23323 NULL
138980 +disable_so_omap1_spi100k_runtime_resume_fndecl_23325 omap1_spi100k_runtime_resume fndecl 0 23325 NULL
138981 +disable_so_snd_timer_global_register_fndecl_23326 snd_timer_global_register fndecl 0 23326 NULL
138982 +disable_so_to_initval_rpc_timeout_23329 to_initval rpc_timeout 0 23329 NULL
138983 +disable_so_bd_list_addr_hi_bnx2i_text_request_23342 bd_list_addr_hi bnx2i_text_request 0 23342 NULL
138984 +disable_so_i2c_addr_a8293_config_23348 i2c_addr a8293_config 0 23348 NULL
138985 +disable_so_range_sizek_var_mtrr_state_23353 range_sizek var_mtrr_state 0 23353 NULL
138986 +disable_so_total_time_running_perf_event_23362 total_time_running perf_event 0 23362 NULL
138987 +disable_so_vdi_gid_vxfs_inode_info_23369 vdi_gid vxfs_inode_info 0 23369 NULL
138988 +disable_so_attrtimeo_timestamp_nfs_inode_23391 attrtimeo_timestamp nfs_inode 0 23391 NULL
138989 +disable_so_si476x_core_cmd_fm_tune_freq_a10_fndecl_23406 si476x_core_cmd_fm_tune_freq_a10 fndecl 0 23406 NULL
138990 +disable_so_sensor_addr_sd_23409 sensor_addr sd 0 23409 NULL
138991 +disable_so_run_delayed_extent_op_fndecl_23414 run_delayed_extent_op fndecl 0 23414 NULL
138992 +disable_so_PXDaddress_fndecl_23420 PXDaddress fndecl 2 23420 NULL
138993 +disable_so_timeout_addr_req_23421 timeout addr_req 0 23421 NULL
138994 +disable_so_tx_pwr_last_recalc_freq_b43_phy_n_23433 tx_pwr_last_recalc_freq b43_phy_n 0 23433 NULL
138995 +disable_so_iscsit_na_nopin_timeout_fndecl_23436 iscsit_na_nopin_timeout fndecl 2-0 23436 NULL
138996 +disable_so_set_tsc_khz_kvm_x86_ops_23439 set_tsc_khz kvm_x86_ops 2 23439 NULL
138997 +disable_so_eee_timer_vardecl_stmmac_main_c_23447 eee_timer vardecl_stmmac_main.c 0 23447 NULL
138998 +disable_so_ndac_aic31xx_rate_divs_23456 ndac aic31xx_rate_divs 0 23456 NULL nohasharray
138999 +disable_so_r27_val_fc2580_freq_regs_23456 r27_val fc2580_freq_regs 0 23456 &disable_so_ndac_aic31xx_rate_divs_23456
139000 +disable_so_ports_timeout_uhci_hcd_23457 ports_timeout uhci_hcd 0 23457 NULL
139001 +disable_so_fw_load_addr_cas_23459 fw_load_addr cas 0 23459 NULL
139002 +disable_so_enic_dev_add_addr_fndecl_23465 enic_dev_add_addr fndecl 0 23465 NULL
139003 +disable_so_hpet_num_timers_vardecl_hpet_c_23468 hpet_num_timers vardecl_hpet.c 0 23468 NULL
139004 +disable_so_protocol_tomoyo_addr_info_23473 protocol tomoyo_addr_info 0 23473 NULL
139005 +disable_so_sys_clock_settime_fndecl_23475 sys_clock_settime fndecl 1 23475 NULL
139006 +disable_so_pch_uart_hal_enable_interrupt_fndecl_23482 pch_uart_hal_enable_interrupt fndecl 2 23482 NULL
139007 +disable_so_start_addr_snd_emu10k1_pcm_23487 start_addr snd_emu10k1_pcm 0 23487 NULL
139008 +disable_so___bitmap_xor_fndecl_23490 __bitmap_xor fndecl 4 23490 NULL
139009 +disable_so_dst_addr_beiscsi_endpoint_23495 dst_addr beiscsi_endpoint 0 23495 NULL
139010 +disable_so_mask_hi_mtrr_var_range_23508 mask_hi mtrr_var_range 0 23508 NULL
139011 +disable_so_max_mlx4_bitmap_23521 max mlx4_bitmap 0 23521 NULL
139012 +disable_so_bitmap_ip_do_list_fndecl_23527 bitmap_ip_do_list fndecl 0 23527 NULL
139013 +disable_so_radio_freq_tuner_23529 radio_freq tuner 0 23529 NULL
139014 +disable_so_timeout_idletimer_tg_info_23534 timeout idletimer_tg_info 0 23534 NULL
139015 +disable_so_end_jiffies_iwl_mvm_time_event_data_23536 end_jiffies iwl_mvm_time_event_data 0 23536 NULL
139016 +disable_so_try_read_address_fndecl_23550 try_read_address fndecl 0-2 23550 NULL
139017 +disable_so_cpufreq_stats_create_table_fndecl_23554 cpufreq_stats_create_table fndecl 1 23554 NULL
139018 +disable_so_div2__pll_div_23561 div2 _pll_div 0 23561 NULL
139019 +disable_so_hpi_sample_clock_set_local_rate_fndecl_23570 hpi_sample_clock_set_local_rate fndecl 1-0 23570 NULL
139020 +disable_so_sctp_assoc_set_bind_addr_from_ep_fndecl_23572 sctp_assoc_set_bind_addr_from_ep fndecl 0-3 23572 NULL
139021 +disable_so_hscb_busaddr_scb_data_23574 hscb_busaddr scb_data 0 23574 NULL
139022 +disable_so_shadow_msr_edgeport_port_23577 shadow_msr edgeport_port 0 23577 NULL
139023 +disable_so_gcm_hash_fndecl_23580 gcm_hash fndecl 0 23580 NULL
139024 +disable_so_kvm_send_hwpoison_signal_fndecl_23581 kvm_send_hwpoison_signal fndecl 1 23581 NULL
139025 +disable_so_spu_reg_delay_if_spi_card_23584 spu_reg_delay if_spi_card 0 23584 NULL
139026 +disable_so_inet_rtm_deladdr_fndecl_23589 inet_rtm_deladdr fndecl 0 23589 NULL
139027 +disable_so_sm2_runtime_sc_23590 sm2 runtime_sc 0 23590 NULL
139028 +disable_so_cpumask_parselist_user_fndecl_23592 cpumask_parselist_user fndecl 0-2 23592 NULL
139029 +disable_so_clock_cooling_get_frequency_fndecl_23598 clock_cooling_get_frequency fndecl 0 23598 NULL
139030 +disable_so_nilfs_btree_last_key_fndecl_23599 nilfs_btree_last_key fndecl 0 23599 NULL
139031 +disable_so_address_map_r8a66597_23613 address_map r8a66597 0 23613 NULL
139032 +disable_so_closest_timer_fndecl_23617 closest_timer fndecl 2 23617 NULL
139033 +disable_so_delay_radeon_atom_ss_23618 delay radeon_atom_ss 0 23618 NULL
139034 +disable_so_no_addr_gfs2_skip_data_23619 no_addr gfs2_skip_data 0 23619 NULL nohasharray
139035 +disable_so_bloutp_qat_crypto_request_buffs_23619 bloutp qat_crypto_request_buffs 0 23619 &disable_so_no_addr_gfs2_skip_data_23619
139036 +disable_so_i2s_runtime_resume_fndecl_23625 i2s_runtime_resume fndecl 0 23625 NULL nohasharray
139037 +disable_so_mtime_seg_entry_23625 mtime seg_entry 0 23625 &disable_so_i2s_runtime_resume_fndecl_23625
139038 +disable_so_atime_apds990x_chip_23626 atime apds990x_chip 0 23626 NULL
139039 +disable_so_irq_domain_free_irqs_fndecl_23634 irq_domain_free_irqs fndecl 1-2 23634 NULL
139040 +disable_so_gru_last_node_paddr_vardecl_x2apic_uv_x_c_23641 gru_last_node_paddr vardecl_x2apic_uv_x.c 0 23641 NULL
139041 +disable_so_tss_addr_kvm_arch_23642 tss_addr kvm_arch 0 23642 NULL
139042 +disable_so_rv3029c2_rtc_read_time_fndecl_23644 rv3029c2_rtc_read_time fndecl 0 23644 NULL
139043 +disable_so___round_jiffies_fndecl_23650 __round_jiffies fndecl 2-1-0 23650 NULL
139044 +disable_so_fixed_mtrr_seg_unit_range_index_fndecl_23657 fixed_mtrr_seg_unit_range_index fndecl 2-0 23657 NULL
139045 +disable_so_timeriomem_rng_driver_init_fndecl_23666 timeriomem_rng_driver_init fndecl 0 23666 NULL
139046 +disable_so_read_status_jiffies_af9013_state_23669 read_status_jiffies af9013_state 0 23669 NULL
139047 +disable_so_st_gid_compat_stat_23673 st_gid compat_stat 0 23673 NULL nohasharray
139048 +disable_so_addr_snic_sg_desc_23673 addr snic_sg_desc 0 23673 &disable_so_st_gid_compat_stat_23673
139049 +disable_so_boottime_get_fndecl_23679 boottime_get fndecl 0 23679 NULL
139050 +disable_so_sctp_v4_inaddr_any_fndecl_23681 sctp_v4_inaddr_any fndecl 2 23681 NULL
139051 +disable_so_posix_cpu_clock_get_task_fndecl_23683 posix_cpu_clock_get_task fndecl 2 23683 NULL nohasharray
139052 +disable_so_gpio_free_fndecl_23683 gpio_free fndecl 1 23683 &disable_so_posix_cpu_clock_get_task_fndecl_23683
139053 +disable_so_ebitmap_cpy_fndecl_23688 ebitmap_cpy fndecl 0 23688 NULL
139054 +disable_so___bitmap_parselist_fndecl_23689 __bitmap_parselist fndecl 0-2-5 23689 NULL
139055 +disable_so_wlcore_hw_interrupt_notify_fndecl_23695 wlcore_hw_interrupt_notify fndecl 0 23695 NULL
139056 +disable_so_schedule_zero_fndecl_23702 schedule_zero fndecl 2-3 23702 NULL nohasharray
139057 +disable_so_mtt_addr_mlx4_mpt_entry_23702 mtt_addr mlx4_mpt_entry 0 23702 &disable_so_schedule_zero_fndecl_23702
139058 +disable_so_adis16400_get_freq_fndecl_23703 adis16400_get_freq fndecl 0 23703 NULL
139059 +disable_so_interrupt_out_endpoint_size_ld_usb_23705 interrupt_out_endpoint_size ld_usb 0 23705 NULL
139060 +disable_so_mac_time_libipw_rx_stats_23706 mac_time libipw_rx_stats 0 23706 NULL nohasharray
139061 +disable_so___ipv6_addr_diff_fndecl_23706 __ipv6_addr_diff fndecl 0 23706 &disable_so_mac_time_libipw_rx_stats_23706
139062 +disable_so_delay_snd_pcm_status_23708 delay snd_pcm_status 0 23708 NULL
139063 +disable_so_oprofile_set_timeout_fndecl_23715 oprofile_set_timeout fndecl 1-0 23715 NULL
139064 +disable_so_fll_fratio__fll_div_23723 fll_fratio _fll_div 0 23723 NULL
139065 +disable_so___uac_clock_find_source_fndecl_23728 __uac_clock_find_source fndecl 0-2 23728 NULL
139066 +disable_so_acpi_pci_root_get_mcfg_addr_fndecl_23731 acpi_pci_root_get_mcfg_addr fndecl 0 23731 NULL
139067 +disable_so_snd_hda_codec_write_fndecl_23746 snd_hda_codec_write fndecl 0-5-4-2 23746 NULL
139068 +disable_so_local_ipaddr_nes_vnic_23747 local_ipaddr nes_vnic 0 23747 NULL
139069 +disable_so_frequency_stv0900_signal_info_23753 frequency stv0900_signal_info 0 23753 NULL
139070 +disable_so_ic_addrservaddr_vardecl_23754 ic_addrservaddr vardecl 0 23754 NULL
139071 +disable_so_next_hrtimer_event_fusbh200_hcd_23756 next_hrtimer_event fusbh200_hcd 0 23756 NULL
139072 +disable_so_speedstep_get_frequency_fndecl_23758 speedstep_get_frequency fndecl 0 23758 NULL
139073 +disable_so_lpe_base_sst_addr_23776 lpe_base sst_addr 0 23776 NULL
139074 +disable_so_saddr_flowidn_23780 saddr flowidn 0 23780 NULL
139075 +disable_so_uwb_rc_dev_addr_get_fndecl_23783 uwb_rc_dev_addr_get fndecl 0 23783 NULL
139076 +disable_so_qla2x00_start_timer_fndecl_23784 qla2x00_start_timer fndecl 3 23784 NULL
139077 +disable_so_pcan_usb_fd_set_bittiming_slow_fndecl_23790 pcan_usb_fd_set_bittiming_slow fndecl 0 23790 NULL
139078 +disable_so_crypto_rfc4543_setauthsize_fndecl_23801 crypto_rfc4543_setauthsize fndecl 2 23801 NULL
139079 +disable_so_drbd_send_uuids_skip_initial_sync_fndecl_23802 drbd_send_uuids_skip_initial_sync fndecl 0 23802 NULL
139080 +disable_so_si476x_phase_diversity_mode_to_idx_fndecl_23804 si476x_phase_diversity_mode_to_idx fndecl 0 23804 NULL
139081 +disable_so_ci_program_memory_timing_parameters_fndecl_23805 ci_program_memory_timing_parameters fndecl 0 23805 NULL
139082 +disable_so_show_ioc_guid_fndecl_23810 show_ioc_guid fndecl 0 23810 NULL
139083 +disable_so_gpiod_get_raw_value_cansleep_fndecl_23812 gpiod_get_raw_value_cansleep fndecl 0 23812 NULL
139084 +disable_so_cpu_to_fs64_fndecl_23816 cpu_to_fs64 fndecl 0-2 23816 NULL
139085 +disable_so_tomoyo_convert_time_fndecl_23823 tomoyo_convert_time fndecl 1 23823 NULL
139086 +disable_so_ufshcd_runtime_resume_fndecl_23824 ufshcd_runtime_resume fndecl 0 23824 NULL
139087 +disable_so_ext4_block_bitmap_csum_verify_fndecl_23826 ext4_block_bitmap_csum_verify fndecl 2 23826 NULL
139088 +disable_so_hash_hi_smsc95xx_priv_23835 hash_hi smsc95xx_priv 0 23835 NULL
139089 +disable_so_pm_autosleep_init_fndecl_23847 pm_autosleep_init fndecl 0 23847 NULL
139090 +disable_so_mpu_timer_init_fndecl_23854 mpu_timer_init fndecl 1 23854 NULL
139091 +disable_so_bg_block_bitmap_ext2_group_desc_23861 bg_block_bitmap ext2_group_desc 0 23861 NULL
139092 +disable_so_mlx4_en_config_port_scheduler_fndecl_23868 mlx4_en_config_port_scheduler fndecl 0 23868 NULL
139093 +disable_so_pixelclock_for_modeset_radeon_connector_23870 pixelclock_for_modeset radeon_connector 0 23870 NULL
139094 +disable_so_ocfs2_remove_btree_range_fndecl_23874 ocfs2_remove_btree_range fndecl 0-3-4-5-8 23874 NULL
139095 +disable_so_crypto_authenc_setkey_fndecl_23875 crypto_authenc_setkey fndecl 0 23875 NULL
139096 +disable_so_vdiv_mcp77_clk_priv_23881 vdiv mcp77_clk_priv 0 23881 NULL
139097 +disable_so_xfs_da_hashname_fndecl_23895 xfs_da_hashname fndecl 2 23895 NULL
139098 +disable_so_sky2_rx_hash_fndecl_23905 sky2_rx_hash fndecl 2 23905 NULL
139099 +disable_so_pci_revert_fw_address_fndecl_23911 pci_revert_fw_address fndecl 3-4 23911 NULL
139100 +disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914 gru_chiplet_cpu_to_mmr fndecl 2 23914 NULL nohasharray
139101 +disable_so_htotal___fb_timings_23914 htotal __fb_timings 0 23914 &disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914
139102 +disable_so_coalescing_timeo_bna_tx_config_23917 coalescing_timeo bna_tx_config 0 23917 NULL
139103 +disable_so_block_size_ccp_sha_def_23920 block_size ccp_sha_def 0 23920 NULL
139104 +disable_so_chunk_sizek_mtrr_cleanup_result_23928 chunk_sizek mtrr_cleanup_result 0 23928 NULL
139105 +disable_so_cpufreq_register_driver_fndecl_23933 cpufreq_register_driver fndecl 0 23933 NULL
139106 +disable_so_requested_freq_cs_cpu_dbs_info_s_23941 requested_freq cs_cpu_dbs_info_s 0 23941 NULL
139107 +disable_so_ath9k_hw_setslottime_fndecl_23946 ath9k_hw_setslottime fndecl 2 23946 NULL
139108 +disable_so_clock_man_fndecl_23950 clock_man fndecl 2 23950 NULL
139109 +disable_so_dma2_address_info_23953 dma2 address_info 0 23953 NULL
139110 +disable_so_crypto_ctr_crypt_segment_fndecl_23955 crypto_ctr_crypt_segment fndecl 0 23955 NULL
139111 +disable_so_be_set_rss_hash_opts_fndecl_23960 be_set_rss_hash_opts fndecl 0 23960 NULL
139112 +disable_so_src_low_addr_mvumi_dyn_list_entry_23961 src_low_addr mvumi_dyn_list_entry 0 23961 NULL
139113 +disable_so_fm_v4l2_vidioc_s_hw_freq_seek_fndecl_23963 fm_v4l2_vidioc_s_hw_freq_seek fndecl 0 23963 NULL
139114 +disable_so_tmr_start_sound_lowlev_timer_23966 tmr_start sound_lowlev_timer 1 23966 NULL
139115 +disable_so_task_clock_event_update_fndecl_23968 task_clock_event_update fndecl 2 23968 NULL
139116 +disable_so_i_mtime_minix2_inode_23986 i_mtime minix2_inode 0 23986 NULL
139117 +disable_so_time_offset_wl1271_23987 time_offset wl1271 0 23987 NULL
139118 +disable_so_src_nents_qce_sha_reqctx_24004 src_nents qce_sha_reqctx 0 24004 NULL
139119 +disable_so_elements_bitmap_ipmac_24013 elements bitmap_ipmac 0 24013 NULL
139120 +disable_so_aggregation_timeout_cfhsi_config_24023 aggregation_timeout cfhsi_config 0 24023 NULL
139121 +disable_so_write_interrupt_go7007_hpi_ops_24025 write_interrupt go7007_hpi_ops 3 24025 NULL
139122 +disable_so_data_timer_list_24031 data timer_list 0 24031 NULL
139123 +disable_so_reference_freq_radeon_pll_24034 reference_freq radeon_pll 0 24034 NULL
139124 +disable_so_smi_mod_timer_fndecl_24037 smi_mod_timer fndecl 2 24037 NULL
139125 +disable_so_sha1_mb_async_digest_fndecl_24067 sha1_mb_async_digest fndecl 0 24067 NULL
139126 +disable_so_drv2667_set_waveform_freq_fndecl_24071 drv2667_set_waveform_freq fndecl 0 24071 NULL
139127 +disable_so_ath6kl_disconnect_timeout_write_fndecl_24073 ath6kl_disconnect_timeout_write fndecl 3-0 24073 NULL nohasharray
139128 +disable_so_band_center_freq1_wmi_channel_arg_24073 band_center_freq1 wmi_channel_arg 0 24073 &disable_so_ath6kl_disconnect_timeout_write_fndecl_24073
139129 +disable_so_hi_cfg_timing_div_drxd_state_24076 hi_cfg_timing_div drxd_state 0 24076 NULL nohasharray
139130 +disable_so_addr_gf100_grctx_24076 addr gf100_grctx 0 24076 &disable_so_hi_cfg_timing_div_drxd_state_24076
139131 +disable_so_expected_sys_clock_freq_drxd_state_24078 expected_sys_clock_freq drxd_state 0 24078 NULL
139132 +disable_so_img_ir_symbol_timing_fndecl_24080 img_ir_symbol_timing fndecl 0-2-3-4-5 24080 NULL
139133 +disable_so_nr_uuids_cache_set_24084 nr_uuids cache_set 0 24084 NULL nohasharray
139134 +disable_so_hash_tbl_pbl_addr_lo_fcoe_kwqe_init2_24084 hash_tbl_pbl_addr_lo fcoe_kwqe_init2 0 24084 &disable_so_nr_uuids_cache_set_24084
139135 +disable_so_radeon_atom_get_clock_dividers_fndecl_24091 radeon_atom_get_clock_dividers fndecl 2-0-3 24091 NULL
139136 +disable_so_rx_pg_bidx_addr_bnx2_rx_ring_info_24100 rx_pg_bidx_addr bnx2_rx_ring_info 0 24100 NULL
139137 +disable_so_pty_signal_fndecl_24107 pty_signal fndecl 2 24107 NULL
139138 +disable_so_laddr_rsxx_dma_24112 laddr rsxx_dma 0 24112 NULL
139139 +disable_so_position_ct_timer_instance_24114 position ct_timer_instance 0 24114 NULL
139140 +disable_so_btrfs_create_uuid_tree_fndecl_24124 btrfs_create_uuid_tree fndecl 0 24124 NULL
139141 +disable_so_version_ethtool_regs_24128 version ethtool_regs 0 24128 NULL
139142 +disable_so_usleep_range_fndecl_24129 usleep_range fndecl 1-2 24129 NULL
139143 +disable_so_pdc_detect_pll_input_clock_fndecl_24132 pdc_detect_pll_input_clock fndecl 0 24132 NULL
139144 +disable_so_dn_ifaddr_notify_fndecl_24133 dn_ifaddr_notify fndecl 1 24133 NULL
139145 +disable_so_sis_ata133_program_udma_timings_fndecl_24137 sis_ata133_program_udma_timings fndecl 2 24137 NULL
139146 +disable_so_fll_fratio_fll_div_24138 fll_fratio fll_div 0 24138 NULL
139147 +disable_so_switch_addr_tda827x_config_24144 switch_addr tda827x_config 0 24144 NULL
139148 +disable_so_scan_timeout_airo_info_24146 scan_timeout airo_info 0 24146 NULL nohasharray
139149 +disable_so_tps6586x_rtc_set_time_fndecl_24146 tps6586x_rtc_set_time fndecl 0 24146 &disable_so_scan_timeout_airo_info_24146
139150 +disable_so_ip101a_g_ack_interrupt_fndecl_24147 ip101a_g_ack_interrupt fndecl 0 24147 NULL
139151 +disable_so_clock_speed__MGSL_PARAMS_24149 clock_speed _MGSL_PARAMS 0 24149 NULL nohasharray
139152 +disable_so_esi_tss_segment_32_24149 esi tss_segment_32 0 24149 &disable_so_clock_speed__MGSL_PARAMS_24149
139153 +disable_so_sync_size_bitmap_super_s_24170 sync_size bitmap_super_s 0 24170 NULL
139154 +disable_so_hwirq_irq_data_24172 hwirq irq_data 0 24172 NULL
139155 +disable_so_brcm_fet_ack_interrupt_fndecl_24181 brcm_fet_ack_interrupt fndecl 0 24181 NULL
139156 +disable_so_min_delta_ticks_clock_event_device_24191 min_delta_ticks clock_event_device 0 24191 NULL
139157 +disable_so_device_snd_timer_id_24197 device snd_timer_id 0 24197 NULL
139158 +disable_so_xcan_tx_interrupt_fndecl_24200 xcan_tx_interrupt fndecl 2 24200 NULL
139159 +disable_so_dmabuf_timeout_fndecl_24205 dmabuf_timeout fndecl 0 24205 NULL
139160 +disable_so_pm_runtime_get_sync_fndecl_24206 pm_runtime_get_sync fndecl 0 24206 NULL
139161 +disable_so_vdso_addr_fndecl_24212 vdso_addr fndecl 1-2 24212 NULL
139162 +disable_so___subtree_last_usnic_uiom_interval_node_24213 __subtree_last usnic_uiom_interval_node 0 24213 NULL
139163 +disable_so_read_mac_addr_pch_gbe_functions_24216 read_mac_addr pch_gbe_functions 0 24216 NULL
139164 +disable_so_get_option_gid_fndecl_24218 get_option_gid fndecl 0 24218 NULL
139165 +disable_so_decode_freq_dst_state_24221 decode_freq dst_state 0 24221 NULL
139166 +disable_so_nilfs_btree_prepare_delete_fndecl_24237 nilfs_btree_prepare_delete fndecl 0 24237 NULL
139167 +disable_so_start_time_s2io_nic_24242 start_time s2io_nic 0 24242 NULL
139168 +disable_so_tv_vsync_delay_nv04_crtc_reg_24261 tv_vsync_delay nv04_crtc_reg 0 24261 NULL
139169 +disable_so_sq_addr_low_nes_qp_context_24263 sq_addr_low nes_qp_context 0 24263 NULL
139170 +disable_so_jiffies_next_airspy_24265 jiffies_next airspy 0 24265 NULL
139171 +disable_so_show_node_guid_fndecl_24266 show_node_guid fndecl 0 24266 NULL
139172 +disable_so_new_addr_tcf_nat_24272 new_addr tcf_nat 0 24272 NULL nohasharray
139173 +disable_so_dt_cpufreq_probe_fndecl_24272 dt_cpufreq_probe fndecl 0 24272 &disable_so_new_addr_tcf_nat_24272
139174 +disable_so_src_freq_tbl_24280 src freq_tbl 0 24280 NULL
139175 +disable_so_tps51632_dcdc_set_ramp_delay_fndecl_24291 tps51632_dcdc_set_ramp_delay fndecl 0-2 24291 NULL
139176 +disable_so_resolution_num_snd_timer_gstatus_24293 resolution_num snd_timer_gstatus 0 24293 NULL
139177 +disable_so_delay_usecs_spi_transfer_24301 delay_usecs spi_transfer 0 24301 NULL
139178 +disable_so_curfreq_dsbr100_device_24314 curfreq dsbr100_device 0 24314 NULL
139179 +disable_so_mlx4_set_admin_guid_fndecl_24342 mlx4_set_admin_guid fndecl 3-4 24342 NULL
139180 +disable_so__get_table_maxdiv_fndecl_24353 _get_table_maxdiv fndecl 0 24353 NULL
139181 +disable_so_fb_div_scale_rv6xx_power_info_24360 fb_div_scale rv6xx_power_info 0 24360 NULL
139182 +disable_so_fb_get_hfreq_fndecl_24369 fb_get_hfreq fndecl 0-1-2 24369 NULL
139183 +disable_so_mmp_time_mmp_struct_24373 mmp_time mmp_struct 0 24373 NULL
139184 +disable_so_timestamp_mwifiex_fixed_bcn_param_24375 timestamp mwifiex_fixed_bcn_param 0 24375 NULL
139185 +disable_so_s2mpu02_set_ramp_delay_fndecl_24379 s2mpu02_set_ramp_delay fndecl 0 24379 NULL
139186 +disable_so_last_fail_time_iscsi_login_stats_24381 last_fail_time iscsi_login_stats 0 24381 NULL
139187 +disable_so_bus_addr_vnic_res_24386 bus_addr vnic_res 0 24386 NULL
139188 +disable_so_i40e_ptp_adjtime_fndecl_24400 i40e_ptp_adjtime fndecl 2 24400 NULL
139189 +disable_so_msr_ct_atc_24401 msr ct_atc 0 24401 NULL
139190 +disable_so_pvr2_hdw_get_cur_freq_fndecl_24402 pvr2_hdw_get_cur_freq fndecl 0 24402 NULL
139191 +disable_so_time_ubifs_znode_24419 time ubifs_znode 0 24419 NULL
139192 +disable_so_ssp_get_clk_div_fndecl_24428 ssp_get_clk_div fndecl 0-2 24428 NULL
139193 +disable_so_sem_otime_sem_24429 sem_otime sem 0 24429 NULL
139194 +disable_so_mrst_lvds_clock_fndecl_24433 mrst_lvds_clock fndecl 1 24433 NULL
139195 +disable_so_ccp_aes_setkey_fndecl_24438 ccp_aes_setkey fndecl 3 24438 NULL
139196 +disable_so_log2_page_size_mlx5_mkey_seg_24441 log2_page_size mlx5_mkey_seg 0 24441 NULL
139197 +disable_so_qtimer_val_fndecl_24449 qtimer_val fndecl 0 24449 NULL
139198 +disable_so_sum_exec_runtime_sched_entity_24453 sum_exec_runtime sched_entity 0 24453 NULL
139199 +disable_so_ehash_mask_inet_hashinfo_24457 ehash_mask inet_hashinfo 0 24457 NULL
139200 +disable_so_bd_list_addr_hi_bnx2i_tmf_request_24461 bd_list_addr_hi bnx2i_tmf_request 0 24461 NULL
139201 +disable_so_qce_ahash_register_fndecl_24475 qce_ahash_register fndecl 0 24475 NULL
139202 +disable_so_acpi_leave_sleep_state_fndecl_24476 acpi_leave_sleep_state fndecl 0-1 24476 NULL
139203 +disable_so_last_can_queue_ramp_up_time_fc_fcp_internal_24477 last_can_queue_ramp_up_time fc_fcp_internal 0 24477 NULL
139204 +disable_so_mtrr_gran_size_vardecl_cleanup_c_24487 mtrr_gran_size vardecl_cleanup.c 0 24487 NULL
139205 +disable_so_tef6862_s_frequency_fndecl_24490 tef6862_s_frequency fndecl 0 24490 NULL
139206 +disable_so_update_uc_addr_fm10k_mac_ops_24492 update_uc_addr fm10k_mac_ops 4 24492 NULL
139207 +disable_so_cipher_key_sz_icp_qat_fw_cipher_cd_ctrl_hdr_24515 cipher_key_sz icp_qat_fw_cipher_cd_ctrl_hdr 0 24515 NULL
139208 +disable_so_read_div_fndecl_24524 read_div fndecl 0-2-3-4 24524 NULL
139209 +disable_so_sctp_setsockopt_peer_addr_params_fndecl_24525 sctp_setsockopt_peer_addr_params fndecl 3-0 24525 NULL
139210 +disable_so_dev_addr_dma_debug_entry_24528 dev_addr dma_debug_entry 0 24528 NULL
139211 +disable_so_txurn_interrupt_mask_ath_hw_24529 txurn_interrupt_mask ath_hw 0 24529 NULL
139212 +disable_so_reg_w_fndecl_24535 reg_w fndecl 2-3 24535 NULL
139213 +disable_so_fs_csaddr_ufs_super_block_first_24537 fs_csaddr ufs_super_block_first 0 24537 NULL nohasharray
139214 +disable_so_dv_timings_aspect_ratio_vivid_dev_24537 dv_timings_aspect_ratio vivid_dev 0 24537 &disable_so_fs_csaddr_ufs_super_block_first_24537
139215 +disable_so_af_tx_sent_jiffies_brcmf_p2p_info_24540 af_tx_sent_jiffies brcmf_p2p_info 0 24540 NULL
139216 +disable_so_timekeeping_max_deferment_fndecl_24546 timekeeping_max_deferment fndecl 0 24546 NULL
139217 +disable_so_poly_cipherpad_fndecl_24550 poly_cipherpad fndecl 0 24550 NULL
139218 +disable_so_aosr_aic32x4_rate_divs_24551 aosr aic32x4_rate_divs 0 24551 NULL
139219 +disable_so_dir_band_bitmap_hpfs_super_block_24552 dir_band_bitmap hpfs_super_block 0 24552 NULL
139220 +disable_so_confq_first_pbe_addr_hi_fcoe_kwqe_conn_offload3_24566 confq_first_pbe_addr_hi fcoe_kwqe_conn_offload3 0 24566 NULL
139221 +disable_so_console_addr_brcmf_sdio_24567 console_addr brcmf_sdio 0 24567 NULL
139222 +disable_so_cis820x_ack_interrupt_fndecl_24585 cis820x_ack_interrupt fndecl 0 24585 NULL
139223 +disable_so_proc_loginuid_read_fndecl_24604 proc_loginuid_read fndecl 3-0 24604 NULL
139224 +disable_so_schedule_nes_timer_fndecl_24613 schedule_nes_timer fndecl 0 24613 NULL
139225 +disable_so_base_freq_patch_info_24622 base_freq patch_info 0 24622 NULL
139226 +disable_so_acpi_hw_sleep_dispatch_fndecl_24627 acpi_hw_sleep_dispatch fndecl 0-1 24627 NULL
139227 +disable_so_busaddr_cciss_scsi_cmd_stack_elem_t_24629 busaddr cciss_scsi_cmd_stack_elem_t 0 24629 NULL
139228 +disable_so_hscb_busaddr_hardware_scb_24633 hscb_busaddr hardware_scb 0 24633 NULL
139229 +disable_so_scsi_reset_delay_adveep_38C0800_config_24634 scsi_reset_delay adveep_38C0800_config 0 24634 NULL
139230 +disable_so_mclk_fb_div_pll_ct_24641 mclk_fb_div pll_ct 0 24641 NULL
139231 +disable_so_writeback_index_address_space_24643 writeback_index address_space 0 24643 NULL
139232 +disable_so_ieee80211_aes_cmac_256_fndecl_24647 ieee80211_aes_cmac_256 fndecl 4 24647 NULL
139233 +disable_so_i915_gem_object_set_to_cpu_domain_fndecl_24650 i915_gem_object_set_to_cpu_domain fndecl 0 24650 NULL
139234 +disable_so_i2c_addr_sd_24651 i2c_addr sd 0 24651 NULL
139235 +disable_so_next_jiffies_vardecl_ksz884x_c_24672 next_jiffies vardecl_ksz884x.c 0 24672 NULL
139236 +disable_so_sclk_frequency_sumo_sclk_voltage_mapping_entry_24676 sclk_frequency sumo_sclk_voltage_mapping_entry 0 24676 NULL
139237 +disable_so_eop_buffer_address_kfd_ioctl_create_queue_args_24677 eop_buffer_address kfd_ioctl_create_queue_args 0 24677 NULL
139238 +disable_so_cyc2ns_mul_cyc2ns_data_24698 cyc2ns_mul cyc2ns_data 0 24698 NULL
139239 +disable_so_task_getscheduler_security_operations_24701 task_getscheduler security_operations 0 24701 NULL
139240 +disable_so_bitmap_search_next_usable_block_fndecl_24705 bitmap_search_next_usable_block fndecl 0-1-3 24705 NULL
139241 +disable_so_gfn_to_memslot_dirty_bitmap_fndecl_24710 gfn_to_memslot_dirty_bitmap fndecl 2 24710 NULL
139242 +disable_so_type_acpi_signal_fatal_info_24717 type acpi_signal_fatal_info 0 24717 NULL
139243 +disable_so_interrupt_mod_interval_vardecl_24721 interrupt_mod_interval vardecl 0 24721 NULL
139244 +disable_so_crypto_authenc_esn_givencrypt_fndecl_24722 crypto_authenc_esn_givencrypt fndecl 0 24722 NULL
139245 +disable_so_atl1e_hash_mc_addr_fndecl_24728 atl1e_hash_mc_addr fndecl 0 24728 NULL
139246 +disable_so_digest_size_ccp_sha_def_24730 digest_size ccp_sha_def 0 24730 NULL
139247 +disable_so_sysfs_show_current_clocksources_fndecl_24748 sysfs_show_current_clocksources fndecl 0 24748 NULL
139248 +disable_so_timeout_ip_set_ext_24754 timeout ip_set_ext 0 24754 NULL
139249 +disable_so_freqmode_pll_div_24757 freqmode pll_div 0 24757 NULL
139250 +disable_so_mvs_write_port_cfg_addr_fndecl_24758 mvs_write_port_cfg_addr fndecl 3 24758 NULL nohasharray
139251 +disable_so_vactive_lo_oaktrail_timing_info_24758 vactive_lo oaktrail_timing_info 0 24758 &disable_so_mvs_write_port_cfg_addr_fndecl_24758
139252 +disable_so_cs42xx8_runtime_resume_fndecl_24764 cs42xx8_runtime_resume fndecl 0 24764 NULL
139253 +disable_so_snd_pcm_hw_rule_div_fndecl_24768 snd_pcm_hw_rule_div fndecl 0 24768 NULL
139254 +disable_so_drbg_hash_process_addtl_fndecl_24773 drbg_hash_process_addtl fndecl 0 24773 NULL
139255 +disable_so__lookup_address_cpa_fndecl_24780 _lookup_address_cpa fndecl 2 24780 NULL
139256 +disable_so_time_stamp_iwl_traffic_load_24795 time_stamp iwl_traffic_load 0 24795 NULL
139257 +disable_so_remote_cm_response_timeout_ib_cm_req_event_param_24800 remote_cm_response_timeout ib_cm_req_event_param 0 24800 NULL
139258 +disable_so_busaddr_nes_rskb_cb_24803 busaddr nes_rskb_cb 0 24803 NULL nohasharray
139259 +disable_so_setkey_ablkcipher_tfm_24803 setkey ablkcipher_tfm 0-3 24803 &disable_so_busaddr_nes_rskb_cb_24803
139260 +disable_so_acpi_sleep_prepare_fndecl_24809 acpi_sleep_prepare fndecl 1 24809 NULL
139261 +disable_so_max98090_find_divisor_fndecl_24832 max98090_find_divisor fndecl 0-2 24832 NULL
139262 +disable_so_panel_digon_delay_radeon_encoder_lvds_24833 panel_digon_delay radeon_encoder_lvds 0 24833 NULL
139263 +disable_so_qp_dma_addr_t3_rdma_init_attr_24843 qp_dma_addr t3_rdma_init_attr 0 24843 NULL
139264 +disable_so_interval_tree_compute_subtree_last_fndecl_24849 interval_tree_compute_subtree_last fndecl 0 24849 NULL
139265 +disable_so_queue_info_new_phys_addr_lo_megasas_init_frame_24856 queue_info_new_phys_addr_lo megasas_init_frame 0 24856 NULL
139266 +disable_so_mipi_dsi_dcs_enter_sleep_mode_fndecl_24857 mipi_dsi_dcs_enter_sleep_mode fndecl 0 24857 NULL
139267 +disable_so_ring_iowrite64desc_fndecl_24858 ring_iowrite64desc fndecl 2 24858 NULL nohasharray
139268 +disable_so_regcache_rbtree_lookup_fndecl_24858 regcache_rbtree_lookup fndecl 2 24858 &disable_so_ring_iowrite64desc_fndecl_24858
139269 +disable_so_rx_timeout_sci_port_24883 rx_timeout sci_port 0 24883 NULL nohasharray
139270 +disable_so_add_atomic_switch_msr_fndecl_24883 add_atomic_switch_msr fndecl 3-4 24883 &disable_so_rx_timeout_sci_port_24883
139271 +disable_so_xfs_btree_del_cursor_fndecl_24886 xfs_btree_del_cursor fndecl 2 24886 NULL
139272 +disable_so_dsp_time_last_pcxhr_mgr_24894 dsp_time_last pcxhr_mgr 0 24894 NULL
139273 +disable_so_addr_carm_msg_allocbuf_24908 addr carm_msg_allocbuf 0 24908 NULL
139274 +disable_so_max_gids_mthca_dev_lim_24911 max_gids mthca_dev_lim 0 24911 NULL nohasharray
139275 +disable_so_af9005_get_pre_vit_err_bit_count_fndecl_24911 af9005_get_pre_vit_err_bit_count fndecl 0 24911 &disable_so_max_gids_mthca_dev_lim_24911
139276 +disable_so_last_jiffies_vardecl_isdn_net_c_24918 last_jiffies vardecl_isdn_net.c 0 24918 NULL
139277 +disable_so_pci_bus_cx88_core_24932 pci_bus cx88_core 0 24932 NULL
139278 +disable_so_devm_gpio_request_one_fndecl_24938 devm_gpio_request_one fndecl 0-2 24938 NULL
139279 +disable_so_launder_page_address_space_operations_24942 launder_page address_space_operations 0 24942 NULL
139280 +disable_so_enh_desc_get_timestamp_fndecl_24946 enh_desc_get_timestamp fndecl 0 24946 NULL
139281 +disable_so___pci_bus_find_cap_start_fndecl_24949 __pci_bus_find_cap_start fndecl 0-2 24949 NULL
139282 +disable_so_prepare_signal_fndecl_24954 prepare_signal fndecl 1 24954 NULL
139283 +disable_so_il_vfrontporch_v4l2_bt_timings_24960 il_vfrontporch v4l2_bt_timings 0 24960 NULL
139284 +disable_so_ide_pio_cycle_time_fndecl_24963 ide_pio_cycle_time fndecl 2-0 24963 NULL
139285 +disable_so_demod_address_tda10086_config_24966 demod_address tda10086_config 0 24966 NULL nohasharray
139286 +disable_so_ath5k_check_timer_win_fndecl_24966 ath5k_check_timer_win fndecl 1-2 24966 &disable_so_demod_address_tda10086_config_24966
139287 +disable_so_pentium_core_get_frequency_fndecl_24968 pentium_core_get_frequency fndecl 0 24968 NULL
139288 +disable_so_freqerr_chk_fndecl_24974 freqerr_chk fndecl 0-2-3 24974 NULL
139289 +disable_so_tgt_reset_timeout_iscsi_session_24977 tgt_reset_timeout iscsi_session 0 24977 NULL
139290 +disable_so_gpiod_set_raw_value_cansleep_fndecl_24979 gpiod_set_raw_value_cansleep fndecl 2 24979 NULL
139291 +disable_so_write_addr_fndecl_24985 write_addr fndecl 2 24985 NULL
139292 +disable_so_mcs7830_set_mac_address_fndecl_24986 mcs7830_set_mac_address fndecl 0 24986 NULL
139293 +disable_so_multiaddr_ip_mc_list_24989 multiaddr ip_mc_list 0 24989 NULL
139294 +disable_so_shash_ahash_digest_fndecl_24990 shash_ahash_digest fndecl 0 24990 NULL
139295 +disable_so_unlock_timer_adp5589_kpad_platform_data_24993 unlock_timer adp5589_kpad_platform_data 0 24993 NULL
139296 +disable_so_connect_timeout_vsock_sock_25001 connect_timeout vsock_sock 0 25001 NULL
139297 +disable_so_m_addr_rds_cong_map_25013 m_addr rds_cong_map 0 25013 NULL
139298 +disable_so_flash_addr_esas2r_ioctlfs_command_25014 flash_addr esas2r_ioctlfs_command 0 25014 NULL
139299 +disable_so_da9052_rtc_read_time_fndecl_25015 da9052_rtc_read_time fndecl 0 25015 NULL
139300 +disable_so_cpu_to_vhost32_fndecl_25031 cpu_to_vhost32 fndecl 0-2 25031 NULL
139301 +disable_so_vxlan_nla_put_addr_fndecl_25037 vxlan_nla_put_addr fndecl 0 25037 NULL
139302 +disable_so_hello_timer_value___bridge_info_25048 hello_timer_value __bridge_info 0 25048 NULL
139303 +disable_so_steer_res_gid_25050 steer res_gid 0 25050 NULL
139304 +disable_so_average_frequency_time_stats_25055 average_frequency time_stats 0 25055 NULL
139305 +disable_so_sense_busaddr_scb_data_25056 sense_busaddr scb_data 0 25056 NULL
139306 +disable_so_rx_stall_timeout_msecs_vardecl_25059 rx_stall_timeout_msecs vardecl 0 25059 NULL
139307 +disable_so_bypclk_div_dibx000_bandwidth_config_25065 bypclk_div dibx000_bandwidth_config 0 25065 NULL
139308 +disable_so_drm_dp_clock_recovery_ok_fndecl_25083 drm_dp_clock_recovery_ok fndecl 2 25083 NULL
139309 +disable_so_get_min_clock_sdhci_ops_25084 get_min_clock sdhci_ops 0 25084 NULL
139310 +disable_so_port_ka_time_fcoe_ctlr_25085 port_ka_time fcoe_ctlr 0 25085 NULL
139311 +disable_so_btrfs_set_token_timespec_nsec_fndecl_25090 btrfs_set_token_timespec_nsec fndecl 3 25090 NULL
139312 +disable_so_tx_bd_haddr_lo_bnx2_tx_bd_25100 tx_bd_haddr_lo bnx2_tx_bd 0 25100 NULL
139313 +disable_so_pwm_freq_div_dib7000p_config_25102 pwm_freq_div dib7000p_config 0 25102 NULL
139314 +disable_so_x86_pmu_config_addr_fndecl_25103 x86_pmu_config_addr fndecl 0-1 25103 NULL
139315 +disable_so_address_TAG_TW_SG_Entry_25109 address TAG_TW_SG_Entry 0 25109 NULL
139316 +disable_so_cfg_base_smsc_chip_address_25125 cfg_base smsc_chip_address 0 25125 NULL
139317 +disable_so_snd_iprintf_fndecl_25126 snd_iprintf fndecl 0 25126 NULL
139318 +disable_so_sony_nc_kbd_backlight_timeout_show_fndecl_25134 sony_nc_kbd_backlight_timeout_show fndecl 0 25134 NULL
139319 +disable_so___hw_addr_create_ex_fndecl_25138 __hw_addr_create_ex fndecl 3 25138 NULL
139320 +disable_so_sdev_show_timeout_fndecl_25140 sdev_show_timeout fndecl 0 25140 NULL
139321 +disable_so_valleyview_rps_guar_freq_fndecl_25141 valleyview_rps_guar_freq fndecl 0 25141 NULL
139322 +disable_so_msg_addr_lo_vf_pf_event_data_25142 msg_addr_lo vf_pf_event_data 0 25142 NULL nohasharray
139323 +disable_so_hfreq___fb_timings_25142 hfreq __fb_timings 0 25142 &disable_so_msg_addr_lo_vf_pf_event_data_25142
139324 +disable_so_select_addr_2_qla83xx_minidump_entry_rdmux2_25145 select_addr_2 qla83xx_minidump_entry_rdmux2 0 25145 NULL
139325 +disable_so_ctrl_addr_palmas_regs_info_25149 ctrl_addr palmas_regs_info 0 25149 NULL
139326 +disable_so_gid_affs_tail_25153 gid affs_tail 0 25153 NULL
139327 +disable_so_recv_timeout_iscsi_conn_25159 recv_timeout iscsi_conn 0 25159 NULL
139328 +disable_so_decode_attr_lease_time_fndecl_25160 decode_attr_lease_time fndecl 0 25160 NULL
139329 +disable_so_log10times100_fndecl_25175 log10times100 fndecl 0-1 25175 NULL
139330 +disable_so_crypto_register_shashes_fndecl_25178 crypto_register_shashes fndecl 0 25178 NULL
139331 +disable_so_sh_cmt_clock_event_next_fndecl_25183 sh_cmt_clock_event_next fndecl 1 25183 NULL
139332 +disable_so_update_mctime_fndecl_25185 update_mctime fndecl 0 25185 NULL
139333 +disable_so_snd_hdspm_info_clock_source_fndecl_25189 snd_hdspm_info_clock_source fndecl 0 25189 NULL
139334 +disable_so_ds1390_read_time_fndecl_25191 ds1390_read_time fndecl 0 25191 NULL
139335 +disable_so_crypto_gcm_setkey_fndecl_25197 crypto_gcm_setkey fndecl 0-3 25197 NULL
139336 +disable_so_atomic_read_file_fndecl_25200 atomic_read_file fndecl 3-0 25200 NULL
139337 +disable_so_i_ctime_minix2_inode_25213 i_ctime minix2_inode 0 25213 NULL
139338 +disable_so_account_fndecl_25224 account fndecl 0-4-2 25224 NULL
139339 +disable_so_bestclock_fndecl_25226 bestclock fndecl 1 25226 NULL
139340 +disable_so_regcache_rbtree_insert_to_block_fndecl_25230 regcache_rbtree_insert_to_block fndecl 3-4-5-6 25230 NULL
139341 +disable_so_pentiumM_get_frequency_fndecl_25231 pentiumM_get_frequency fndecl 0 25231 NULL
139342 +disable_so_model_mceusb_dev_25234 model mceusb_dev 0 25234 NULL
139343 +disable_so_sk_rcvtimeo_sock_25235 sk_rcvtimeo sock 0 25235 NULL
139344 +disable_so_atomic_long_add_fndecl_25245 atomic_long_add fndecl 1 25245 NULL
139345 +disable_so_tw_rcv_wnd_tcp_timewait_sock_25247 tw_rcv_wnd tcp_timewait_sock 0 25247 NULL
139346 +disable_so_vga_switcheroo_runtime_resume_fndecl_25258 vga_switcheroo_runtime_resume fndecl 0 25258 NULL nohasharray
139347 +disable_so_swp_freq_calcuation_fndecl_25258 swp_freq_calcuation fndecl 0-10-8-9 25258 &disable_so_vga_switcheroo_runtime_resume_fndecl_25258
139348 +disable_so_sys_setresuid_fndecl_25263 sys_setresuid fndecl 0-1-2-3 25263 NULL
139349 +disable_so_va_gid_coda_vattr_25267 va_gid coda_vattr 0 25267 NULL
139350 +disable_so_adis16136_set_freq_fndecl_25268 adis16136_set_freq fndecl 0 25268 NULL
139351 +disable_so_sha1_ssse3_update_fndecl_25270 sha1_ssse3_update fndecl 3 25270 NULL
139352 +disable_so_data_addr_rx_ring_info_25277 data_addr rx_ring_info 0 25277 NULL
139353 +disable_so_in_n_analog_pcm_runtime_25285 in_n_analog pcm_runtime 0 25285 NULL
139354 +disable_so_active_ide_timing_25290 active ide_timing 0 25290 NULL
139355 +disable_so_max_img_ir_timing_range_25312 max img_ir_timing_range 0 25312 NULL
139356 +disable_so_sisusb_setidxreg_fndecl_25313 sisusb_setidxreg fndecl 0-2-3-4 25313 NULL
139357 +disable_so_rss_hash_cq_enet_rq_desc_25315 rss_hash cq_enet_rq_desc 0 25315 NULL
139358 +disable_so_sdhci_pltfm_clk_get_max_clock_fndecl_25319 sdhci_pltfm_clk_get_max_clock fndecl 0 25319 NULL
139359 +disable_so_be_cmd_mac_addr_query_fndecl_25342 be_cmd_mac_addr_query fndecl 0 25342 NULL
139360 +disable_so_st_atime_nsec_compat_stat_25348 st_atime_nsec compat_stat 0 25348 NULL
139361 +disable_so_blkcipher_walk_virt_fndecl_25350 blkcipher_walk_virt fndecl 0 25350 NULL
139362 +disable_so_ata_sff_interrupt_fndecl_25352 ata_sff_interrupt fndecl 1 25352 NULL
139363 +disable_so_vdisktime_cfq_group_25353 vdisktime cfq_group 0 25353 NULL
139364 +disable_so_sctp_apply_peer_addr_params_fndecl_25357 sctp_apply_peer_addr_params fndecl 0 25357 NULL
139365 +disable_so_hpi_sample_clock_get_local_rate_lock_fndecl_25364 hpi_sample_clock_get_local_rate_lock fndecl 1-0 25364 NULL
139366 +disable_so_sticks_snd_timer_25366 sticks snd_timer 0 25366 NULL
139367 +disable_so_segv_uid_gr_arg_25373 segv_uid gr_arg 0 25373 NULL
139368 +disable_so_signal_rate_plcp_signal_rate_lookup_25377 signal_rate plcp_signal_rate_lookup 0 25377 NULL
139369 +disable_so_timeout_jiffies_tifm_sd_25387 timeout_jiffies tifm_sd 0 25387 NULL
139370 +disable_so_fence_gpu_addr_kernel_queue_25394 fence_gpu_addr kernel_queue 0 25394 NULL
139371 +disable_so_pch_udc_enable_interrupts_fndecl_25405 pch_udc_enable_interrupts fndecl 2 25405 NULL
139372 +disable_so_addr_hi_eth_rx_sge_25407 addr_hi eth_rx_sge 0 25407 NULL
139373 +disable_so_flushtimeout_nfulnl_instance_25409 flushtimeout nfulnl_instance 0 25409 NULL
139374 +disable_so_ti12xx_untie_interrupts_fndecl_25411 ti12xx_untie_interrupts fndecl 2 25411 NULL
139375 +disable_so_dma_addr_t4_cq_25412 dma_addr t4_cq 0 25412 NULL
139376 +disable_so_task_list_pbl_addr_lo_fcoe_kwqe_init1_25414 task_list_pbl_addr_lo fcoe_kwqe_init1 0 25414 NULL
139377 +disable_so_conntrack_addrcmp_fndecl_25418 conntrack_addrcmp fndecl 4 25418 NULL
139378 +disable_so_datablock_addr_fndecl_25424 datablock_addr fndecl 0-2 25424 NULL
139379 +disable_so_intel_sdvo_create_preferred_input_timing_fndecl_25428 intel_sdvo_create_preferred_input_timing fndecl 3-4 25428 NULL
139380 +disable_so_return_address_stack_frame_ia32_25439 return_address stack_frame_ia32 0 25439 NULL
139381 +disable_so_tmds_chip_slave_addr_tmds_chip_information_25446 tmds_chip_slave_addr tmds_chip_information 0 25446 NULL
139382 +disable_so_releasepage_address_space_operations_25450 releasepage address_space_operations 2 25450 NULL
139383 +disable_so_sys_setgid_fndecl_25470 sys_setgid fndecl 0-1 25470 NULL nohasharray
139384 +disable_so_random_address_open_fndecl_25470 random_address_open fndecl 0 25470 &disable_so_sys_setgid_fndecl_25470
139385 +disable_so_creation_time_se_device_25474 creation_time se_device 0 25474 NULL
139386 +disable_so_addr_qla8xxx_minidump_entry_crb_25475 addr qla8xxx_minidump_entry_crb 0 25475 NULL
139387 +disable_so_wrmsr_safe_on_cpu_fndecl_25481 wrmsr_safe_on_cpu fndecl 0-1 25481 NULL
139388 +disable_so_htc_addr_ath6kl_mbox_info_25495 htc_addr ath6kl_mbox_info 0 25495 NULL
139389 +disable_so_crypto_shash_export_fndecl_25501 crypto_shash_export fndecl 0 25501 NULL
139390 +disable_so_pm_runtime_autosuspend_expiration_fndecl_25503 pm_runtime_autosuspend_expiration fndecl 0 25503 NULL
139391 +disable_so_fib_info_update_nh_saddr_fndecl_25504 fib_info_update_nh_saddr fndecl 0 25504 NULL
139392 +disable_so_ac_uid_taskstats_25506 ac_uid taskstats 0 25506 NULL
139393 +disable_so_bufaddr_epic_rx_desc_25507 bufaddr epic_rx_desc 0 25507 NULL
139394 +disable_so_process_tgid_id_proc_event_25512 process_tgid id_proc_event 0 25512 NULL
139395 +disable_so_si5351_msynth_params_address_fndecl_25517 si5351_msynth_params_address fndecl 0-1 25517 NULL
139396 +disable_so_btrfs_dev_replace_time_stopped_fndecl_25538 btrfs_dev_replace_time_stopped fndecl 0 25538 NULL
139397 +disable_so___irq_set_handler_fndecl_25547 __irq_set_handler fndecl 1 25547 NULL
139398 +disable_so_next_addr_ath_gen_timer_configuration_25559 next_addr ath_gen_timer_configuration 0 25559 NULL
139399 +disable_so_timeout_request_25561 timeout request 0 25561 NULL
139400 +disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562 rx_bd_haddr_hi bnx2_rx_bd 0 25562 NULL nohasharray
139401 +disable_so_jhash_1word_fndecl_25562 jhash_1word fndecl 0-1 25562 &disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562
139402 +disable_so_freq_ref_fll_factors_25565 freq_ref fll_factors 0 25565 NULL
139403 +disable_so_compat_sys_mq_timedreceive_fndecl_25566 compat_sys_mq_timedreceive fndecl 1-3 25566 NULL
139404 +disable_so_scl_falling_time_dw_i2c_dev_25576 scl_falling_time dw_i2c_dev 0 25576 NULL
139405 +disable_so_maj_flt_signal_struct_25583 maj_flt signal_struct 0 25583 NULL
139406 +disable_so_irq_set_chip_and_handler_name_fndecl_25596 irq_set_chip_and_handler_name fndecl 1 25596 NULL
139407 +disable_so_timeout_ms_ib_mad_send_buf_25607 timeout_ms ib_mad_send_buf 0 25607 NULL
139408 +disable_so_qs_itimelimit_fs_quota_statv_25612 qs_itimelimit fs_quota_statv 0 25612 NULL nohasharray
139409 +disable_so_blkcipher_aead_walk_virt_block_fndecl_25612 blkcipher_aead_walk_virt_block fndecl 0-4 25612 &disable_so_qs_itimelimit_fs_quota_statv_25612
139410 +disable_so_o2hb_heartbeat_timeout_ms_o2net_handshake_25614 o2hb_heartbeat_timeout_ms o2net_handshake 0 25614 NULL
139411 +disable_so_sampling_time_acpi_power_meter_capabilities_25620 sampling_time acpi_power_meter_capabilities 0 25620 NULL
139412 +disable_so_C_SYSC_signalfd_fndecl_25641 C_SYSC_signalfd fndecl 0 25641 NULL
139413 +disable_so_dpp_page_addr_lo_ocrdma_alloc_pd_uresp_25645 dpp_page_addr_lo ocrdma_alloc_pd_uresp 0 25645 NULL
139414 +disable_so_memclock_pm2fb_par_25648 memclock pm2fb_par 0 25648 NULL
139415 +disable_so_hca_core_clock_mlx4_init_hca_param_25649 hca_core_clock mlx4_init_hca_param 0 25649 NULL
139416 +disable_so_hash_fndecl_25655 hash fndecl 0-2 25655 NULL
139417 +disable_so_get_scr_cfg_addr_fndecl_25659 get_scr_cfg_addr fndecl 0-2 25659 NULL
139418 +disable_so_brp_can_bittiming_25672 brp can_bittiming 0 25672 NULL
139419 +disable_so_hash_tcindex_data_25674 hash tcindex_data 0 25674 NULL
139420 +disable_so_store_pwm_auto_spinup_time_fndecl_25686 store_pwm_auto_spinup_time fndecl 0-4 25686 NULL nohasharray
139421 +disable_so_wm5100_runtime_resume_fndecl_25686 wm5100_runtime_resume fndecl 0 25686 &disable_so_store_pwm_auto_spinup_time_fndecl_25686
139422 +disable_so_cbc_aes_decrypt_fndecl_25690 cbc_aes_decrypt fndecl 0-4 25690 NULL
139423 +disable_so_find_vma_fndecl_25710 find_vma fndecl 2 25710 NULL
139424 +disable_so_set_register_interruptible_fndecl_25711 set_register_interruptible fndecl 0 25711 NULL
139425 +disable_so_last_beacon_timestamp_atmel_private_25714 last_beacon_timestamp atmel_private 0 25714 NULL
139426 +disable_so_print_uuid_item_fndecl_25720 print_uuid_item fndecl 2-3 25720 NULL nohasharray
139427 +disable_so_intel_pxfreq_fndecl_25720 intel_pxfreq fndecl 0-1 25720 &disable_so_print_uuid_item_fndecl_25720
139428 +disable_so___mlx4_ib_query_gid_fndecl_25733 __mlx4_ib_query_gid fndecl 0-2-3 25733 NULL
139429 +disable_so_crypto_pcbc_setkey_fndecl_25734 crypto_pcbc_setkey fndecl 0-3 25734 NULL
139430 +disable_so_iClockSource_uac_clock_source_descriptor_25741 iClockSource uac_clock_source_descriptor 0 25741 NULL
139431 +disable_so_madc_aic32x4_rate_divs_25746 madc aic32x4_rate_divs 0 25746 NULL nohasharray
139432 +disable_so_test_and_set_bit_le_fndecl_25746 test_and_set_bit_le fndecl 1 25746 &disable_so_madc_aic32x4_rate_divs_25746
139433 +disable_so_init_acpi_pm_clocksource_fndecl_25751 init_acpi_pm_clocksource fndecl 0 25751 NULL
139434 +disable_so_bit_width_io_addr_25761 bit_width io_addr 0 25761 NULL nohasharray
139435 +disable_so_shash_async_finup_fndecl_25761 shash_async_finup fndecl 0 25761 &disable_so_bit_width_io_addr_25761
139436 +disable_so_i_mtime_extra_ext4_inode_25766 i_mtime_extra ext4_inode 0 25766 NULL
139437 +disable_so_suid_ban_expires_user_struct_25778 suid_ban_expires user_struct 0 25778 NULL
139438 +disable_so_sys_timer_delete_fndecl_25781 sys_timer_delete fndecl 1 25781 NULL
139439 +disable_so_write16_b43_bus_dev_25800 write16 b43_bus_dev 3 25800 NULL
139440 +disable_so_pci_bus_clock_list_fndecl_25811 pci_bus_clock_list fndecl 0-1 25811 NULL
139441 +disable_so_pll_freq_adau_25818 pll_freq adau 0 25818 NULL
139442 +disable_so_kvm_get_lapic_tscdeadline_msr_fndecl_25821 kvm_get_lapic_tscdeadline_msr fndecl 0 25821 NULL
139443 +disable_so_power_off_longtime_mmc_ext_csd_25827 power_off_longtime mmc_ext_csd 0 25827 NULL
139444 +disable_so_mcryptd_hash_digest_enqueue_fndecl_25830 mcryptd_hash_digest_enqueue fndecl 0 25830 NULL
139445 +disable_so_bch_btree_node_get_fndecl_25837 bch_btree_node_get fndecl 4 25837 NULL
139446 +disable_so_sa_timeout_mmc_ext_csd_25842 sa_timeout mmc_ext_csd 0 25842 NULL
139447 +disable_so_rc5t583_rtc_set_time_fndecl_25844 rc5t583_rtc_set_time fndecl 0 25844 NULL
139448 +disable_so_pll2_ndiv_b_cnt_ad9523_platform_data_25849 pll2_ndiv_b_cnt ad9523_platform_data 0 25849 NULL
139449 +disable_so_xfs_btree_kill_iroot_fndecl_25851 xfs_btree_kill_iroot fndecl 0 25851 NULL
139450 +disable_so_freq_offset_xc4000_priv_25852 freq_offset xc4000_priv 0 25852 NULL
139451 +disable_so_orig_eax_user_regs_struct32_25853 orig_eax user_regs_struct32 0 25853 NULL
139452 +disable_so_i_mtime_ext4_inode_25857 i_mtime ext4_inode 0 25857 NULL nohasharray
139453 +disable_so_hash_ipportnet4_expire_fndecl_25857 hash_ipportnet4_expire fndecl 4 25857 &disable_so_i_mtime_ext4_inode_25857
139454 +disable_so_max_keysize_blkcipher_alg_25859 max_keysize blkcipher_alg 0 25859 NULL
139455 +disable_so__kstrtol_fndecl_25860 _kstrtol fndecl 0 25860 NULL nohasharray
139456 +disable_so_reqsize_crypto_aead_25860 reqsize crypto_aead 0 25860 &disable_so__kstrtol_fndecl_25860
139457 +disable_so_group_exit_code_signal_struct_25863 group_exit_code signal_struct 0 25863 NULL
139458 +disable_so_i2c_address_qt1010_config_25866 i2c_address qt1010_config 0 25866 NULL
139459 +disable_so_musb_bulk_nak_timeout_fndecl_25876 musb_bulk_nak_timeout fndecl 3 25876 NULL
139460 +disable_so_rangehigh_v4l2_hw_freq_seek_25892 rangehigh v4l2_hw_freq_seek 0 25892 NULL
139461 +disable_so_xferaddr_mbox_out_25904 xferaddr mbox_out 0 25904 NULL
139462 +disable_so_address_mode_snd_emu10k1_25917 address_mode snd_emu10k1 0 25917 NULL
139463 +disable_so_ac_uid_acct_v3_25928 ac_uid acct_v3 0 25928 NULL
139464 +disable_so_show_cpumask_fndecl_25949 show_cpumask fndecl 0 25949 NULL
139465 +disable_so_x86_max_cores_cpuinfo_x86_25950 x86_max_cores cpuinfo_x86 0 25950 NULL
139466 +disable_so_nr_mtrr_spare_reg_vardecl_cleanup_c_25954 nr_mtrr_spare_reg vardecl_cleanup.c 0 25954 NULL
139467 +disable_so_fib_info_hash_move_fndecl_25959 fib_info_hash_move fndecl 3 25959 NULL
139468 +disable_so_rst_timer_val_intel_dsi_25967 rst_timer_val intel_dsi 0 25967 NULL
139469 +disable_so_backlog_wait_time_audit_status_25971 backlog_wait_time audit_status 0 25971 NULL
139470 +disable_so_gid_h_misc_25975 gid h_misc 0 25975 NULL
139471 +disable_so_wm8962_runtime_resume_fndecl_25981 wm8962_runtime_resume fndecl 0 25981 NULL
139472 +disable_so_ip_vs_rs_hashkey_fndecl_25992 ip_vs_rs_hashkey fndecl 1 25992 NULL
139473 +disable_so_sbp_tpg_attrib_store_max_reconnect_timeout_fndecl_25997 sbp_tpg_attrib_store_max_reconnect_timeout fndecl 0-3 25997 NULL
139474 +disable_so_hpwdt_time_left_fndecl_25998 hpwdt_time_left fndecl 0 25998 NULL
139475 +disable_so_mtrr_calc_range_state_fndecl_26002 mtrr_calc_range_state fndecl 3-4-2-1 26002 NULL
139476 +disable_so_tipc_addr_scope_fndecl_26006 tipc_addr_scope fndecl 0 26006 NULL
139477 +disable_so_rdmsr_safe_regs_fndecl_26012 rdmsr_safe_regs fndecl 0 26012 NULL
139478 +disable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 2 26018 NULL
139479 +disable_so_addr_ethoc_bd_26021 addr ethoc_bd 0 26021 NULL
139480 +disable_so_marvell_ack_interrupt_fndecl_26036 marvell_ack_interrupt fndecl 0 26036 NULL
139481 +disable_so_link_check_timeout_igb_adapter_26037 link_check_timeout igb_adapter 0 26037 NULL nohasharray
139482 +disable_so_psb_intel_crtc_clock_get_fndecl_26037 psb_intel_crtc_clock_get fndecl 0 26037 &disable_so_link_check_timeout_igb_adapter_26037
139483 +disable_so_t2_ptr_hash_tbl_addr_lo_fcoe_kwqe_init2_26039 t2_ptr_hash_tbl_addr_lo fcoe_kwqe_init2 0 26039 NULL
139484 +disable_so_interrupt_out_interval_ld_usb_26046 interrupt_out_interval ld_usb 0 26046 NULL
139485 +disable_so_bs_gid_xfs_bstat_26053 bs_gid xfs_bstat 0 26053 NULL
139486 +disable_so_wm8900_set_dai_clkdiv_fndecl_26074 wm8900_set_dai_clkdiv fndecl 3 26074 NULL
139487 +disable_so_setkey_blkcipher_alg_26078 setkey blkcipher_alg 3 26078 NULL
139488 +disable_so_ixgbevf_init_interrupt_scheme_fndecl_26085 ixgbevf_init_interrupt_scheme fndecl 0 26085 NULL
139489 +disable_so___sw_hweight32_fndecl_26088 __sw_hweight32 fndecl 1-0 26088 NULL nohasharray
139490 +disable_so_addr_hi_eth_tx_bd_26088 addr_hi eth_tx_bd 0 26088 &disable_so___sw_hweight32_fndecl_26088 nohasharray
139491 +disable_so_hashval2_1_rx_pkt_hdr1_26088 hashval2_1 rx_pkt_hdr1 0 26088 &disable_so_addr_hi_eth_tx_bd_26088
139492 +disable_so_debounce_time_snd_soc_jack_gpio_26097 debounce_time snd_soc_jack_gpio 0 26097 NULL
139493 +disable_so_ath6kl_wmi_pstream_timeout_event_rx_fndecl_26100 ath6kl_wmi_pstream_timeout_event_rx fndecl 3 26100 NULL
139494 +disable_so_fl0addr_fw_iq_cmd_26103 fl0addr fw_iq_cmd 0 26103 NULL
139495 +disable_so___acpi_os_prepare_extended_sleep_vardecl_osl_c_26106 __acpi_os_prepare_extended_sleep vardecl_osl.c 2 26106 NULL
139496 +disable_so_atomic_check_drm_mode_config_funcs_26109 atomic_check drm_mode_config_funcs 0 26109 NULL
139497 +disable_so_st_mtime_stat_26114 st_mtime stat 0 26114 NULL
139498 +disable_so_cx23885_set_freq_fndecl_26129 cx23885_set_freq fndecl 0 26129 NULL
139499 +disable_so_img_ir_timings_convert_fndecl_26132 img_ir_timings_convert fndecl 3-4 26132 NULL
139500 +disable_so_generic_update_time_fndecl_26133 generic_update_time fndecl 0 26133 NULL
139501 +disable_so_cpu_to_virtio32_fndecl_26151 cpu_to_virtio32 fndecl 0-2 26151 NULL
139502 +disable_so_dp_dma_addr_mic_device_26153 dp_dma_addr mic_device 0 26153 NULL
139503 +disable_so_mask_clocksource_26154 mask clocksource 0 26154 NULL
139504 +disable_so_bit_rate_hpi_msg_format_26167 bit_rate hpi_msg_format 0 26167 NULL
139505 +disable_so_set_bitmap_file_fndecl_26171 set_bitmap_file fndecl 0-2 26171 NULL
139506 +disable_so_show_fast_charge_timer_fndecl_26172 show_fast_charge_timer fndecl 0 26172 NULL
139507 +disable_so_rt_spc_timelimit_qc_type_state_26186 rt_spc_timelimit qc_type_state 0 26186 NULL
139508 +disable_so_HYPERVISOR_physdev_op_fndecl_26192 HYPERVISOR_physdev_op fndecl 0 26192 NULL
139509 +disable_so_sci_br_interrupt_fndecl_26202 sci_br_interrupt fndecl 1 26202 NULL
139510 +disable_so_bitmap_ipmac_do_list_fndecl_26203 bitmap_ipmac_do_list fndecl 4 26203 NULL
139511 +disable_so_kxcjk1013_setup_any_motion_interrupt_fndecl_26214 kxcjk1013_setup_any_motion_interrupt fndecl 0 26214 NULL
139512 +disable_so_io_request_phys_addr_megasas_cmd_fusion_26240 io_request_phys_addr megasas_cmd_fusion 0 26240 NULL
139513 +disable_so_compute_unit_id_cpuinfo_x86_26241 compute_unit_id cpuinfo_x86 0 26241 NULL
139514 +disable_so_dynpm_action_timeout_radeon_pm_26257 dynpm_action_timeout radeon_pm 0 26257 NULL
139515 +disable_so_lookup_address_in_pgd_fndecl_26268 lookup_address_in_pgd fndecl 2 26268 NULL
139516 +disable_so_addr_prism2_download_data_area_26275 addr prism2_download_data_area 0 26275 NULL
139517 +disable_so_channels_snd_pcm_runtime_26297 channels snd_pcm_runtime 0 26297 NULL
139518 +disable_so_iamthif_timer_mei_device_26298 iamthif_timer mei_device 0 26298 NULL nohasharray
139519 +disable_so_simple_strtol_fndecl_26298 simple_strtol fndecl 0 26298 &disable_so_iamthif_timer_mei_device_26298
139520 +disable_so_rose_set_mac_address_fndecl_26302 rose_set_mac_address fndecl 0 26302 NULL
139521 +disable_so_sq_addr_lo_fcoe_kwqe_conn_offload1_26303 sq_addr_lo fcoe_kwqe_conn_offload1 0 26303 NULL
139522 +disable_so_m88ds3103_sleep_fndecl_26315 m88ds3103_sleep fndecl 0 26315 NULL
139523 +disable_so_ping_timeo_net_conf_26316 ping_timeo net_conf 0 26316 NULL nohasharray
139524 +disable_so_parent_btrfs_delayed_tree_ref_26316 parent btrfs_delayed_tree_ref 0 26316 &disable_so_ping_timeo_net_conf_26316
139525 +disable_so_esd_timeout_ms_tsc2005_platform_data_26333 esd_timeout_ms tsc2005_platform_data 0 26333 NULL
139526 +disable_so_addr_change_member_26339 addr change_member 0 26339 NULL
139527 +disable_so_mvs_show_interrupt_coalescing_fndecl_26346 mvs_show_interrupt_coalescing fndecl 0 26346 NULL
139528 +disable_so_hashkey_raw_ip_vs_pe_26355 hashkey_raw ip_vs_pe 0 26355 NULL
139529 +disable_so_skl_compute_linetime_wm_fndecl_26358 skl_compute_linetime_wm fndecl 0 26358 NULL
139530 +disable_so_radeon_pmops_runtime_resume_fndecl_26363 radeon_pmops_runtime_resume fndecl 0 26363 NULL
139531 +disable_so_op_remote_addr_rm_rdma_op_26364 op_remote_addr rm_rdma_op 0 26364 NULL
139532 +disable_so_yura_hash_fndecl_26368 yura_hash fndecl 2 26368 NULL
139533 +disable_so_blocksize_qce_ablkcipher_def_26370 blocksize qce_ablkcipher_def 0 26370 NULL
139534 +disable_so_phys_efi_set_virtual_address_map_fndecl_26380 phys_efi_set_virtual_address_map fndecl 1-2 26380 NULL
139535 +disable_so_sfi_lapic_addr_vardecl_sfi_c_26384 sfi_lapic_addr vardecl_sfi.c 0 26384 NULL
139536 +disable_so_ebp_user_regs_struct32_26386 ebp user_regs_struct32 0 26386 NULL
139537 +disable_so_total_time_enabled_perf_event_26387 total_time_enabled perf_event 0 26387 NULL nohasharray
139538 +disable_so_ext4_inode_bitmap_csum_set_fndecl_26387 ext4_inode_bitmap_csum_set fndecl 2-5 26387 &disable_so_total_time_enabled_perf_event_26387
139539 +disable_so_write32_b43_bus_dev_26402 write32 b43_bus_dev 3 26402 NULL
139540 +disable_so_seq_default_timer_device_vardecl_26404 seq_default_timer_device vardecl 0 26404 NULL
139541 +disable_so_address_xfs_dir2_leaf_entry_26411 address xfs_dir2_leaf_entry 0 26411 NULL
139542 +disable_so_regmap_irq_get_virq_fndecl_26413 regmap_irq_get_virq fndecl 2-0 26413 NULL
139543 +disable_so_msr_ia32_feature_control_nested_vmx_26415 msr_ia32_feature_control nested_vmx 0 26415 NULL
139544 +disable_so_last_load_cpufreq_cooling_device_26418 last_load cpufreq_cooling_device 0 26418 NULL
139545 +disable_so_blank_time_dce8_wm_params_26421 blank_time dce8_wm_params 0 26421 NULL
139546 +disable_so_start_time_rsxx_bio_meta_26424 start_time rsxx_bio_meta 0 26424 NULL
139547 +disable_so_ima_calc_file_hash_atfm_fndecl_26437 ima_calc_file_hash_atfm fndecl 0 26437 NULL
139548 +disable_so_range_to_mtrr_fndecl_26447 range_to_mtrr fndecl 2-3 26447 NULL
139549 +disable_so_sm_addr_ns_dev_26449 sm_addr ns_dev 0 26449 NULL
139550 +disable_so_uartlite_outle32_fndecl_26455 uartlite_outle32 fndecl 1 26455 NULL
139551 +disable_so___arch_hweight64_fndecl_26456 __arch_hweight64 fndecl 0-1 26456 NULL nohasharray
139552 +disable_so_rsa_parse_key_fndecl_26456 rsa_parse_key fndecl 3 26456 &disable_so___arch_hweight64_fndecl_26456
139553 +disable_so_data_addr_ide_io_ports_26461 data_addr ide_io_ports 0 26461 NULL
139554 +disable_so_mce_adjust_timer_vardecl_mce_c_26462 mce_adjust_timer vardecl_mce.c 0-1 26462 NULL
139555 +disable_so_tv_sec_ceph_timespec_26463 tv_sec ceph_timespec 0 26463 NULL
139556 +disable_so_val_v4l2_dbg_register_26470 val v4l2_dbg_register 0 26470 NULL
139557 +disable_so_jiffies_read_fndecl_26480 jiffies_read fndecl 0 26480 NULL
139558 +disable_so_compat_sys_clock_settime_fndecl_26491 compat_sys_clock_settime fndecl 1 26491 NULL
139559 +disable_so_i2c_addr_tda827x_priv_26495 i2c_addr tda827x_priv 0 26495 NULL
139560 +disable_so_snd_trident_interrupt_fndecl_26498 snd_trident_interrupt fndecl 1 26498 NULL
139561 +disable_so_mce_flush_rx_buffer_fndecl_26515 mce_flush_rx_buffer fndecl 2 26515 NULL
139562 +disable_so_ufshcd_runtime_suspend_fndecl_26519 ufshcd_runtime_suspend fndecl 0 26519 NULL
139563 +disable_so___down_timeout_fndecl_26530 __down_timeout fndecl 2-0 26530 NULL nohasharray
139564 +disable_so_rdma_addr_find_dmac_by_grh_fndecl_26530 rdma_addr_find_dmac_by_grh fndecl 0 26530 &disable_so___down_timeout_fndecl_26530
139565 +disable_so_ppll_ref_div_radeon_regs_26531 ppll_ref_div radeon_regs 0 26531 NULL
139566 +disable_so_fs_overflowuid_vardecl_26541 fs_overflowuid vardecl 0 26541 NULL
139567 +disable_so_ceph_str_hash_rjenkins_fndecl_26542 ceph_str_hash_rjenkins fndecl 0-2 26542 NULL
139568 +disable_so_threshold_low_nes_hw_tune_timer_26544 threshold_low nes_hw_tune_timer 0 26544 NULL
139569 +disable_so_addressPXD_fndecl_26546 addressPXD fndecl 0 26546 NULL
139570 +disable_so_get_cpu_idle_time_us_fndecl_26547 get_cpu_idle_time_us fndecl 0-1 26547 NULL
139571 +disable_so_x86_pmu_event_addr_fndecl_26551 x86_pmu_event_addr fndecl 0-1 26551 NULL
139572 +disable_so_da9055_rtc_set_time_fndecl_26553 da9055_rtc_set_time fndecl 0 26553 NULL nohasharray
139573 +disable_so_address_hi_ips_enh_sglist_26553 address_hi ips_enh_sglist 0 26553 &disable_so_da9055_rtc_set_time_fndecl_26553
139574 +disable_so_cpufreq_quick_get_fndecl_26559 cpufreq_quick_get fndecl 0-1 26559 NULL nohasharray
139575 +disable_so_ieee80211_aes_gcm_encrypt_fndecl_26559 ieee80211_aes_gcm_encrypt fndecl 5 26559 &disable_so_cpufreq_quick_get_fndecl_26559
139576 +disable_so_bug17190_timer_qt202x_phy_data_26561 bug17190_timer qt202x_phy_data 0 26561 NULL nohasharray
139577 +disable_so_efx_farch_filter_hash_fndecl_26561 efx_farch_filter_hash fndecl 0-1 26561 &disable_so_bug17190_timer_qt202x_phy_data_26561
139578 +disable_so_timestamp_beacon_format_26566 timestamp beacon_format 0 26566 NULL
139579 +disable_so_postscale__pll_div_26568 postscale _pll_div 0 26568 NULL
139580 +disable_so_next_nat_addr_fndecl_26576 next_nat_addr fndecl 0-2 26576 NULL
139581 +disable_so_shdwreg_addr_hi_addr_ctrl_blk_26592 shdwreg_addr_hi addr_ctrl_blk 0 26592 NULL
139582 +disable_so_xfs_btree_insrec_fndecl_26593 xfs_btree_insrec fndecl 0 26593 NULL
139583 +disable_so_sci_tx_interrupt_fndecl_26595 sci_tx_interrupt fndecl 1 26595 NULL nohasharray
139584 +disable_so_add_delayed_ref_head_fndecl_26595 add_delayed_ref_head fndecl 4-5 26595 &disable_so_sci_tx_interrupt_fndecl_26595
139585 +disable_so_tegra_wdt_set_timeout_fndecl_26597 tegra_wdt_set_timeout fndecl 2 26597 NULL
139586 +disable_so_base_addr_dmi_ipmi_data_26600 base_addr dmi_ipmi_data 0 26600 NULL nohasharray
139587 +disable_so_s_audio_sampling_freq_cx2341x_handler_ops_26600 s_audio_sampling_freq cx2341x_handler_ops 0-2 26600 &disable_so_base_addr_dmi_ipmi_data_26600
139588 +disable_so_pll_post_div_radeon_crtc_26608 pll_post_div radeon_crtc 0 26608 NULL
139589 +disable_so_sdio_enable_4bit_bus_fndecl_26617 sdio_enable_4bit_bus fndecl 0 26617 NULL
139590 +disable_so_jiffies_to_usecs_fndecl_26625 jiffies_to_usecs fndecl 0-1 26625 NULL
139591 +disable_so_i_mtime_nsec_ocfs2_dinode_26627 i_mtime_nsec ocfs2_dinode 0 26627 NULL
139592 +disable_so_set_var_mtrr_fndecl_26628 set_var_mtrr fndecl 2-3 26628 NULL
139593 +disable_so_usec_2_cycles_fndecl_26641 usec_2_cycles fndecl 0-1 26641 NULL
139594 +disable_so_inq_data_baddr_pmcraid_instance_26646 inq_data_baddr pmcraid_instance 0 26646 NULL
139595 +disable_so_re_timeout_vhci_hcd_26649 re_timeout vhci_hcd 0 26649 NULL
139596 +disable_so_timer_buf_periods_pcxhr_stream_26650 timer_buf_periods pcxhr_stream 0 26650 NULL
139597 +disable_so_lease_break_time_vardecl_26659 lease_break_time vardecl 0 26659 NULL
139598 +disable_so_first_frag_time_libipw_frag_entry_26673 first_frag_time libipw_frag_entry 0 26673 NULL
139599 +disable_so_send_timer_event_fndecl_26675 send_timer_event fndecl 0 26675 NULL
139600 +disable_so_timestamp_lo_mlx4_ts_cqe_26678 timestamp_lo mlx4_ts_cqe 0 26678 NULL nohasharray
139601 +disable_so_twl_rtc_read_time_fndecl_26678 twl_rtc_read_time fndecl 0 26678 &disable_so_timestamp_lo_mlx4_ts_cqe_26678
139602 +disable_so_prism54_get_freq_fndecl_26679 prism54_get_freq fndecl 0 26679 NULL
139603 +disable_so_signal_quality_wireless_stats_26683 signal_quality wireless_stats 0 26683 NULL
139604 +disable_so_serial8250_request_rsa_resource_fndecl_26695 serial8250_request_rsa_resource fndecl 0 26695 NULL
139605 +disable_so_crypto_ahash_init_fndecl_26697 crypto_ahash_init fndecl 0 26697 NULL
139606 +disable_so_i8xx_clock_fndecl_26699 i8xx_clock fndecl 1 26699 NULL
139607 +disable_so_crypto_alg_extsize_fndecl_26720 crypto_alg_extsize fndecl 0 26720 NULL
139608 +disable_so_get_iowait_time_fndecl_26723 get_iowait_time fndecl 1-0 26723 NULL
139609 +disable_so_wl1271_acx_init_rx_interrupt_fndecl_26727 wl1271_acx_init_rx_interrupt fndecl 0 26727 NULL
139610 +disable_so_check_intr_schedule_fndecl_26728 check_intr_schedule fndecl 2-3 26728 NULL
139611 +disable_so_cobalt_s_dv_timings_fndecl_26730 cobalt_s_dv_timings fndecl 0 26730 NULL
139612 +disable_so_resolution_snd_timer_instance_26747 resolution snd_timer_instance 0 26747 NULL
139613 +disable_so_gf100_vm_addr_fndecl_26753 gf100_vm_addr fndecl 0-2-3-4 26753 NULL
139614 +disable_so_nilfs_btree_convert_and_insert_fndecl_26755 nilfs_btree_convert_and_insert fndecl 0-2-6 26755 NULL
139615 +disable_so_xlog_find_verify_cycle_fndecl_26760 xlog_find_verify_cycle fndecl 0-2-3 26760 NULL
139616 +disable_so_base_address_kvm_lapic_26767 base_address kvm_lapic 0 26767 NULL
139617 +disable_so_unmap_page_dma_map_ops_26774 unmap_page dma_map_ops 2-3 26774 NULL nohasharray
139618 +disable_so_modcode_stv0900_signal_info_26774 modcode stv0900_signal_info 0 26774 &disable_so_unmap_page_dma_map_ops_26774
139619 +disable_so_mthca_cmd_wait_fndecl_26776 mthca_cmd_wait fndecl 0-2 26776 NULL nohasharray
139620 +disable_so_tun2_maddress_stv0900_init_params_26776 tun2_maddress stv0900_init_params 0 26776 &disable_so_mthca_cmd_wait_fndecl_26776
139621 +disable_so_simple_sleep_fndecl_26802 simple_sleep fndecl 0 26802 NULL
139622 +disable_so_tv_sec_timestruc_t_26805 tv_sec timestruc_t 0 26805 NULL
139623 +disable_so_get_vblank_timestamp_drm_driver_26807 get_vblank_timestamp drm_driver 2 26807 NULL
139624 +disable_so_dsbr100_setfreq_fndecl_26808 dsbr100_setfreq fndecl 0-2 26808 NULL
139625 +disable_so_base_addr_unaligned_vnic_dev_ring_26813 base_addr_unaligned vnic_dev_ring 0 26813 NULL
139626 +disable_so_addr_ib_mw_bind_info_26826 addr ib_mw_bind_info 0 26826 NULL
139627 +disable_so_cpuidle_add_interface_fndecl_26838 cpuidle_add_interface fndecl 0 26838 NULL nohasharray
139628 +disable_so_addr4_resolve_fndecl_26838 addr4_resolve fndecl 0 26838 &disable_so_cpuidle_add_interface_fndecl_26838
139629 +disable_so_rdmsrl_safe_on_cpu_fndecl_26843 rdmsrl_safe_on_cpu fndecl 0-1 26843 NULL
139630 +disable_so_random_read_fndecl_26852 random_read fndecl 0-3 26852 NULL
139631 +disable_so_reachable_time_ra_msg_26853 reachable_time ra_msg 0 26853 NULL
139632 +disable_so_mutex_lock_interruptible_nested_fndecl_26858 mutex_lock_interruptible_nested fndecl 0 26858 NULL
139633 +disable_so_erase_time_max_flchip_26863 erase_time_max flchip 0 26863 NULL
139634 +disable_so_cpufreq_frequency_table_get_index_fndecl_26865 cpufreq_frequency_table_get_index fndecl 2 26865 NULL
139635 +disable_so_efficient_freq_intel_gen6_power_mgmt_26867 efficient_freq intel_gen6_power_mgmt 0 26867 NULL
139636 +disable_so_sysctl_sched_rt_runtime_vardecl_26872 sysctl_sched_rt_runtime vardecl 0 26872 NULL
139637 +disable_so_time_ncp_cache_head_26879 time ncp_cache_head 0 26879 NULL
139638 +disable_so_qdisc_class_hash_free_fndecl_26882 qdisc_class_hash_free fndecl 2 26882 NULL
139639 +disable_so_cpu_cpuidle_device_26895 cpu cpuidle_device 0 26895 NULL
139640 +disable_so_mod_phy_reg_fndecl_26899 mod_phy_reg fndecl 2-3-4 26899 NULL
139641 +disable_so_vb2_dma_contig_plane_dma_addr_fndecl_26900 vb2_dma_contig_plane_dma_addr fndecl 0 26900 NULL
139642 +disable_so_btree_split_beneath_fndecl_26901 btree_split_beneath fndecl 0 26901 NULL
139643 +disable_so_timestamp_desc_tbl_t_26905 timestamp desc_tbl_t 0 26905 NULL
139644 +disable_so_addr_bit_set_fndecl_26910 addr_bit_set fndecl 0-2 26910 NULL nohasharray
139645 +disable_so_snd_soc_write_fndecl_26910 snd_soc_write fndecl 0-2-3 26910 &disable_so_addr_bit_set_fndecl_26910 nohasharray
139646 +disable_so_timing_legacy_data_26910 timing legacy_data 0 26910 &disable_so_snd_soc_write_fndecl_26910
139647 +disable_so_nsleep_k_clock_26913 nsleep k_clock 1 26913 NULL
139648 +disable_so_sys_stime_fndecl_26915 sys_stime fndecl 0 26915 NULL
139649 +disable_so_sjw_max_can_bittiming_const_26917 sjw_max can_bittiming_const 0 26917 NULL nohasharray
139650 +disable_so_cbc_aes_encrypt_fndecl_26917 cbc_aes_encrypt fndecl 0-4 26917 &disable_so_sjw_max_can_bittiming_const_26917
139651 +disable_so_get_debugctlmsr_fndecl_26918 get_debugctlmsr fndecl 0 26918 NULL
139652 +disable_so_xfs_btree_delrec_fndecl_26919 xfs_btree_delrec fndecl 0 26919 NULL
139653 +disable_so_hr222_sub_set_clock_fndecl_26925 hr222_sub_set_clock fndecl 2-0 26925 NULL
139654 +disable_so_dd_desc_paddr_ath_descdma_26927 dd_desc_paddr ath_descdma 0 26927 NULL
139655 +disable_so_shift_clock_event_device_26934 shift clock_event_device 0 26934 NULL
139656 +disable_so_rx_bseq_addr_bnx2_rx_ring_info_26936 rx_bseq_addr bnx2_rx_ring_info 0 26936 NULL
139657 +disable_so_brcms_c_calc_ba_time_fndecl_26948 brcms_c_calc_ba_time fndecl 0-2 26948 NULL
139658 +disable_so_rcv_buffer_time_stamp_lpfc_vport_26952 rcv_buffer_time_stamp lpfc_vport 0 26952 NULL
139659 +disable_so_min_post_div_radeon_pll_26958 min_post_div radeon_pll 0 26958 NULL
139660 +disable_so_mcryptd_hash_finup_enqueue_fndecl_26959 mcryptd_hash_finup_enqueue fndecl 0 26959 NULL
139661 +disable_so_ip_TransportAddress_ipAddress_26969 ip TransportAddress_ipAddress 0 26969 NULL
139662 +disable_so_addr_fritzcard_26973 addr fritzcard 0 26973 NULL nohasharray
139663 +disable_so_ata_read_native_max_address_fndecl_26973 ata_read_native_max_address fndecl 0 26973 &disable_so_addr_fritzcard_26973
139664 +disable_so_ktime_get_real_seconds_fndecl_26974 ktime_get_real_seconds fndecl 0 26974 NULL nohasharray
139665 +disable_so_i_crtime_extra_ext4_inode_26974 i_crtime_extra ext4_inode 0 26974 &disable_so_ktime_get_real_seconds_fndecl_26974
139666 +disable_so_kern_addr_valid_fndecl_26978 kern_addr_valid fndecl 1 26978 NULL
139667 +disable_so_rtimer_val_vxge_hw_tim_intr_config_26991 rtimer_val vxge_hw_tim_intr_config 0 26991 NULL
139668 +disable_so_timestamp_agere_ext_scan_info_26993 timestamp agere_ext_scan_info 0 26993 NULL
139669 +disable_so_ps_ring_physaddr_rx_ring_26997 ps_ring_physaddr rx_ring 0 26997 NULL
139670 +disable_so_set_bit_in_list_bitmap_fndecl_26998 set_bit_in_list_bitmap fndecl 2 26998 NULL
139671 +disable_so_gid_index_mlx4_eth_av_27005 gid_index mlx4_eth_av 0 27005 NULL
139672 +disable_so_sender_euid_binder_transaction_data_27019 sender_euid binder_transaction_data 0 27019 NULL
139673 +disable_so_sctp_setsockopt_peer_primary_addr_fndecl_27027 sctp_setsockopt_peer_primary_addr fndecl 3-0 27027 NULL
139674 +disable_so_sysctl_x25_ack_holdback_timeout_vardecl_27031 sysctl_x25_ack_holdback_timeout vardecl 0 27031 NULL
139675 +disable_so_blkcipher_next_copy_fndecl_27033 blkcipher_next_copy fndecl 0 27033 NULL
139676 +disable_so_cg_spll_func_cntl_4_si_clock_registers_27036 cg_spll_func_cntl_4 si_clock_registers 0 27036 NULL
139677 +disable_so_mthca_buddy_alloc_fndecl_27037 mthca_buddy_alloc fndecl 2-0 27037 NULL
139678 +disable_so_seq_tcp_skb_cb_27054 seq tcp_skb_cb 0 27054 NULL
139679 +disable_so_s_bitmap_maxbytes_ext4_sb_info_27055 s_bitmap_maxbytes ext4_sb_info 0 27055 NULL
139680 +disable_so_addr_off_bfa_fru_s_27061 addr_off bfa_fru_s 0 27061 NULL
139681 +disable_so_dataserver_timeo_vardecl_filelayoutdev_c_27062 dataserver_timeo vardecl_filelayoutdev.c 0 27062 NULL
139682 +disable_so_demod_address_stv0900_config_27065 demod_address stv0900_config 0 27065 NULL
139683 +disable_so_kvm_apic_match_logical_addr_fndecl_27077 kvm_apic_match_logical_addr fndecl 2 27077 NULL
139684 +disable_so_expires_cpu_itimer_27081 expires cpu_itimer 0 27081 NULL nohasharray
139685 +disable_so_request_any_context_irq_fndecl_27081 request_any_context_irq fndecl 0-1 27081 &disable_so_expires_cpu_itimer_27081
139686 +disable_so_timeout_vardecl_kempld_wdt_c_27085 timeout vardecl_kempld_wdt.c 0 27085 NULL
139687 +disable_so_buffer_addr_rx_free_desc_27090 buffer_addr rx_free_desc 0 27090 NULL
139688 +disable_so_vx_set_clock_fndecl_27093 vx_set_clock fndecl 2 27093 NULL
139689 +disable_so_br_set_forward_delay_fndecl_27097 br_set_forward_delay fndecl 0 27097 NULL
139690 +disable_so_hash_net4_expire_fndecl_27108 hash_net4_expire fndecl 4 27108 NULL
139691 +disable_so_stv0900_get_freq_auto_fndecl_27111 stv0900_get_freq_auto fndecl 0 27111 NULL
139692 +disable_so_wait_for_common_fndecl_27112 wait_for_common fndecl 3 27112 NULL
139693 +disable_so_nfs4_schedule_migration_recovery_fndecl_27114 nfs4_schedule_migration_recovery fndecl 0 27114 NULL
139694 +disable_so_d_rt_spc_timer_qc_dqblk_27117 d_rt_spc_timer qc_dqblk 0 27117 NULL
139695 +disable_so_btree_insert64_fndecl_27118 btree_insert64 fndecl 2-4 27118 NULL
139696 +disable_so_addrconf_mod_dad_work_fndecl_27128 addrconf_mod_dad_work fndecl 2 27128 NULL
139697 +disable_so_coalescing_timeo_bna_rx_config_27130 coalescing_timeo bna_rx_config 0 27130 NULL nohasharray
139698 +disable_so_addr_page_to_node_27130 addr page_to_node 0 27130 &disable_so_coalescing_timeo_bna_rx_config_27130
139699 +disable_so_st_atime_nsec_p9_stat_dotl_27131 st_atime_nsec p9_stat_dotl 0 27131 NULL
139700 +disable_so_myri10ge_intr_coal_delay_vardecl_myri10ge_c_27141 myri10ge_intr_coal_delay vardecl_myri10ge.c 0 27141 NULL
139701 +disable_so_hash_shift_deflate_state_27146 hash_shift deflate_state 0 27146 NULL
139702 +disable_so_palmas_rtc_read_time_fndecl_27149 palmas_rtc_read_time fndecl 0 27149 NULL
139703 +disable_so___atomic_add_ifless_fndecl_27155 __atomic_add_ifless fndecl 3 27155 NULL
139704 +disable_so_iscsi_conn_get_addr_param_fndecl_27170 iscsi_conn_get_addr_param fndecl 0 27170 NULL
139705 +disable_so___clocksource_update_freq_hz_fndecl_27171 __clocksource_update_freq_hz fndecl 2 27171 NULL
139706 +disable_so_id_sst_module_runtime_27177 id sst_module_runtime 0 27177 NULL
139707 +disable_so_crypto_xcbc_digest_setkey_fndecl_27185 crypto_xcbc_digest_setkey fndecl 0-3 27185 NULL
139708 +disable_so_enic_set_mac_addr_fndecl_27188 enic_set_mac_addr fndecl 0 27188 NULL
139709 +disable_so_expires_timer_list_27202 expires timer_list 0 27202 NULL
139710 +disable_so_compute_subtree_last_fndecl_27204 compute_subtree_last fndecl 0 27204 NULL
139711 +disable_so_qla4_82xx_decode_crb_addr_fndecl_27209 qla4_82xx_decode_crb_addr fndecl 0-1 27209 NULL
139712 +disable_so_debugtimer_vardecl_floppy_c_27217 debugtimer vardecl_floppy.c 0 27217 NULL
139713 +disable_so_time_offset_perf_event_mmap_page_27223 time_offset perf_event_mmap_page 0 27223 NULL
139714 +disable_so___ufshcd_setup_clocks_fndecl_27227 __ufshcd_setup_clocks fndecl 0 27227 NULL
139715 +disable_so_ccallback_snd_timer_instance_27233 ccallback snd_timer_instance 4 27233 NULL
139716 +disable_so_cpufreq_p4_get_fndecl_27237 cpufreq_p4_get fndecl 1 27237 NULL
139717 +disable_so_bd_phy_addr_wcn36xx_dxe_ctl_27253 bd_phy_addr wcn36xx_dxe_ctl 0 27253 NULL
139718 +disable_so___xfrm_dst_hash_fndecl_27263 __xfrm_dst_hash fndecl 0-3-4-5 27263 NULL
139719 +disable_so_mcp795_read_time_fndecl_27267 mcp795_read_time fndecl 0 27267 NULL
139720 +disable_so_base_mtrr_sentry_27271 base mtrr_sentry 0 27271 NULL
139721 +disable_so_proc_do_large_bitmap_fndecl_27272 proc_do_large_bitmap fndecl 0 27272 NULL
139722 +disable_so_stv0367cab_get_adc_freq_fndecl_27274 stv0367cab_get_adc_freq fndecl 0-2 27274 NULL
139723 +disable_so_gpadc_page_addr_pm80x_subchip_27284 gpadc_page_addr pm80x_subchip 0 27284 NULL
139724 +disable_so_udf_count_free_bitmap_fndecl_27294 udf_count_free_bitmap fndecl 0 27294 NULL
139725 +disable_so_timestamp_ieee80211_channel_switch_27297 timestamp ieee80211_channel_switch 0 27297 NULL
139726 +disable_so_fd_flush_timestamp_i40e_pf_27298 fd_flush_timestamp i40e_pf 0 27298 NULL nohasharray
139727 +disable_so_snd_rme96_info_clockmode_control_fndecl_27298 snd_rme96_info_clockmode_control fndecl 0 27298 &disable_so_fd_flush_timestamp_i40e_pf_27298
139728 +disable_so_past_time_fndecl_27299 past_time fndecl 1 27299 NULL
139729 +disable_so_status_hci_rp_read_bd_addr_27307 status hci_rp_read_bd_addr 0 27307 NULL
139730 +disable_so_demod_address_lgs8gxx_config_27311 demod_address lgs8gxx_config 0 27311 NULL
139731 +disable_so_clock_offset_mlx4_fw_27318 clock_offset mlx4_fw 0 27318 NULL
139732 +disable_so_native_sched_clock_fndecl_27322 native_sched_clock fndecl 0 27322 NULL
139733 +disable_so_preferred_time_prefix_cacheinfo_27329 preferred_time prefix_cacheinfo 0 27329 NULL nohasharray
139734 +disable_so_srq_get_mtt_addr_fndecl_27329 srq_get_mtt_addr fndecl 0 27329 &disable_so_preferred_time_prefix_cacheinfo_27329
139735 +disable_so_di_pt_regs_27336 di pt_regs 0 27336 NULL
139736 +disable_so_buf1_addr_xgmac_dma_desc_27344 buf1_addr xgmac_dma_desc 0 27344 NULL
139737 +disable_so_timer_mask_ath_gen_timer_table_27351 timer_mask ath_gen_timer_table 0 27351 NULL
139738 +disable_so_max_frags_iwl_time_event_cmd_27357 max_frags iwl_time_event_cmd 0 27357 NULL nohasharray
139739 +disable_so_wd_last_clocksource_27357 wd_last clocksource 0 27357 &disable_so_max_frags_iwl_time_event_cmd_27357
139740 +disable_so_sermouse_interrupt_fndecl_27361 sermouse_interrupt fndecl 2 27361 NULL
139741 +disable_so_tm_mday_rtc_time_27369 tm_mday rtc_time 0 27369 NULL
139742 +disable_so_opad_count_ccp_sha_ctx_27374 opad_count ccp_sha_ctx 0 27374 NULL
139743 +disable_so_keyed_hash_fndecl_27379 keyed_hash fndecl 0-2 27379 NULL
139744 +disable_so_addr_d11init_27383 addr d11init 0 27383 NULL
139745 +disable_so_test_bit_le_fndecl_27392 test_bit_le fndecl 1 27392 NULL
139746 +disable_so_i2c_bit_add_bus_fndecl_27395 i2c_bit_add_bus fndecl 0 27395 NULL
139747 +disable_so_xhci_calculate_u2_timeout_fndecl_27406 xhci_calculate_u2_timeout fndecl 0 27406 NULL
139748 +disable_so_sym_getclock_fndecl_27414 sym_getclock fndecl 2 27414 NULL
139749 +disable_so_pat_x_mtrr_type_fndecl_27415 pat_x_mtrr_type fndecl 1-2 27415 NULL
139750 +disable_so_val_addr_core1_nphy_rf_control_override_rev7_27422 val_addr_core1 nphy_rf_control_override_rev7 0 27422 NULL nohasharray
139751 +disable_so_qce_ahash_hmac_setkey_fndecl_27422 qce_ahash_hmac_setkey fndecl 3 27422 &disable_so_val_addr_core1_nphy_rf_control_override_rev7_27422
139752 +disable_so_ratio_o_rj54n1_clock_div_27431 ratio_o rj54n1_clock_div 0 27431 NULL nohasharray
139753 +disable_so_pr_uid_elf_prpsinfo_27431 pr_uid elf_prpsinfo 0 27431 &disable_so_ratio_o_rj54n1_clock_div_27431
139754 +disable_so_nla_get_be64_fndecl_27433 nla_get_be64 fndecl 0 27433 NULL
139755 +disable_so_encryptor_fndecl_27450 encryptor fndecl 0 27450 NULL
139756 +disable_so_hsync_offset_lo_oaktrail_timing_info_27455 hsync_offset_lo oaktrail_timing_info 0 27455 NULL
139757 +disable_so_store_scaling_max_freq_fndecl_27459 store_scaling_max_freq fndecl 0-3 27459 NULL
139758 +disable_so_addrLow_lpfc_pde7_27462 addrLow lpfc_pde7 0 27462 NULL
139759 +disable_so_ql_get_mac_addr_reg_fndecl_27466 ql_get_mac_addr_reg fndecl 0 27466 NULL
139760 +disable_so_r600_engine_clock_entry_set_feedback_divider_fndecl_27467 r600_engine_clock_entry_set_feedback_divider fndecl 3 27467 NULL
139761 +disable_so_queue_timestamp_cw1200_queue_item_27470 queue_timestamp cw1200_queue_item 0 27470 NULL nohasharray
139762 +disable_so_timing_event_fndecl_27470 timing_event fndecl 0 27470 &disable_so_queue_timestamp_cw1200_queue_item_27470
139763 +disable_so_seg0_blkaddr_f2fs_sm_info_27483 seg0_blkaddr f2fs_sm_info 0 27483 NULL nohasharray
139764 +disable_so_shash_async_init_fndecl_27483 shash_async_init fndecl 0 27483 &disable_so_seg0_blkaddr_f2fs_sm_info_27483
139765 +disable_so_esas2r_buffered_ioctl_addr_vardecl_27487 esas2r_buffered_ioctl_addr vardecl 0 27487 NULL
139766 +disable_so_buffer_write_time_max_flchip_27491 buffer_write_time_max flchip 0 27491 NULL
139767 +disable_so_reg_data_clock_eeprom_93cx6_27496 reg_data_clock eeprom_93cx6 0 27496 NULL
139768 +disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497 ieee80211_if_read_min_discovery_timeout fndecl 3-0 27497 NULL nohasharray
139769 +disable_so_address_pmcraid_ioadl_desc_27497 address pmcraid_ioadl_desc 0 27497 &disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497
139770 +disable_so_host_perf_guest_switch_msr_27498 host perf_guest_switch_msr 0 27498 NULL
139771 +disable_so_dummy_buffer_addr_hi_iscsi_kwqe_init1_27499 dummy_buffer_addr_hi iscsi_kwqe_init1 0 27499 NULL
139772 +disable_so__rtl88e_phy_calculate_bit_shift_fndecl_27500 _rtl88e_phy_calculate_bit_shift fndecl 0-1 27500 NULL
139773 +disable_so_mceusb_dev_printdata_fndecl_27502 mceusb_dev_printdata fndecl 4 27502 NULL
139774 +disable_so_sk_sndtimeo_sock_27506 sk_sndtimeo sock 0 27506 NULL
139775 +disable_so_oprofile_timer_init_fndecl_27514 oprofile_timer_init fndecl 0 27514 NULL
139776 +disable_so_st_atime___old_kernel_stat_27516 st_atime __old_kernel_stat 0 27516 NULL
139777 +disable_so_hpi_sample_clock_set_local_rate_lock_fndecl_27517 hpi_sample_clock_set_local_rate_lock fndecl 1-0 27517 NULL
139778 +disable_so_addr_perf_sample_data_27520 addr perf_sample_data 0 27520 NULL
139779 +disable_so_curr_dbg_uidn_show_fndecl_27524 curr_dbg_uidn_show fndecl 3 27524 NULL
139780 +disable_so_crypto_register_template_fndecl_27525 crypto_register_template fndecl 0 27525 NULL
139781 +disable_so_process_tgid_sid_proc_event_27544 process_tgid sid_proc_event 0 27544 NULL
139782 +disable_so_fandiv2_nct6775_data_27558 fandiv2 nct6775_data 0 27558 NULL
139783 +disable_so_delay_time_bridge_mcast_other_query_27560 delay_time bridge_mcast_other_query 0 27560 NULL
139784 +disable_so_addr_hi_acard_sg_27563 addr_hi acard_sg 0 27563 NULL
139785 +disable_so_address_tlan_buffer_27580 address tlan_buffer 0 27580 NULL
139786 +disable_so_rdma_addr_find_smac_by_sgid_fndecl_27591 rdma_addr_find_smac_by_sgid fndecl 0 27591 NULL
139787 +disable_so_addrconf_add_linklocal_fndecl_27592 addrconf_add_linklocal fndecl 3 27592 NULL
139788 +disable_so_fb_delay_gt215_clk_info_27603 fb_delay gt215_clk_info 0 27603 NULL
139789 +disable_so_ss_nongc_ctime_nilfs_sustat_27619 ss_nongc_ctime nilfs_sustat 0 27619 NULL
139790 +disable_so_shash_ahash_mcryptd_final_fndecl_27624 shash_ahash_mcryptd_final fndecl 0 27624 NULL
139791 +disable_so_iwl_set_hw_address_family_8000_fndecl_27628 iwl_set_hw_address_family_8000 fndecl 6-7 27628 NULL
139792 +disable_so_dm_delay_init_fndecl_27635 dm_delay_init fndecl 0 27635 NULL
139793 +disable_so_seq_tcphdr_27638 seq tcphdr 0 27638 NULL
139794 +disable_so_cbq_undelay_prio_fndecl_27641 cbq_undelay_prio fndecl 0-3 27641 NULL
139795 +disable_so_sst_module_runtime_save_fndecl_27642 sst_module_runtime_save fndecl 0 27642 NULL
139796 +disable_so_crypto_pcbc_module_init_fndecl_27648 crypto_pcbc_module_init fndecl 0 27648 NULL
139797 +disable_so_freq_prev_cpu_data_t_27649 freq_prev cpu_data_t 0 27649 NULL
139798 +disable_so_status_mce_27652 status mce 0 27652 NULL
139799 +disable_so_buff_addr_ixgb_rx_desc_27660 buff_addr ixgb_rx_desc 0 27660 NULL
139800 +disable_so_phy_addr_mii_phy_27664 phy_addr mii_phy 0 27664 NULL
139801 +disable_so_demod_address_lgdt330x_config_27668 demod_address lgdt330x_config 0 27668 NULL
139802 +disable_so__next_div_fndecl_27679 _next_div fndecl 0-2 27679 NULL
139803 +disable_so_rtc_timer_enqueue_fndecl_27693 rtc_timer_enqueue fndecl 0 27693 NULL nohasharray
139804 +disable_so_addr_phy_device_27693 addr phy_device 0 27693 &disable_so_rtc_timer_enqueue_fndecl_27693
139805 +disable_so_timer_multiplier_tg3_27703 timer_multiplier tg3 0 27703 NULL
139806 +disable_so_address_acpi_table_madt_27705 address acpi_table_madt 0 27705 NULL
139807 +disable_so_saddr_flowi4_27709 saddr flowi4 0 27709 NULL
139808 +disable_so_acpi_tb_select_address_fndecl_27710 acpi_tb_select_address fndecl 0-2-3 27710 NULL
139809 +disable_so_wl18xx_acx_ap_sleep_fndecl_27719 wl18xx_acx_ap_sleep fndecl 0 27719 NULL
139810 +disable_so_sleep_start_sched_statistics_27721 sleep_start sched_statistics 0 27721 NULL nohasharray
139811 +disable_so_inj_addr_set_fndecl_27721 inj_addr_set fndecl 2 27721 &disable_so_sleep_start_sched_statistics_27721
139812 +disable_so_addr_fw_page_27728 addr fw_page 0 27728 NULL
139813 +disable_so_time_stamp_e1000_tx_buffer_27729 time_stamp e1000_tx_buffer 0 27729 NULL
139814 +disable_so_ata_internal_cmd_timed_out_fndecl_27734 ata_internal_cmd_timed_out fndecl 2 27734 NULL
139815 +disable_so_sleep_ide_drive_s_27745 sleep ide_drive_s 0 27745 NULL
139816 +disable_so_platform_clock_control_fndecl_27752 platform_clock_control fndecl 0 27752 NULL
139817 +disable_so_tick_timex_27769 tick timex 0 27769 NULL
139818 +disable_so__is_best_div_fndecl_27772 _is_best_div fndecl 1-2-3 27772 NULL
139819 +disable_so_update_cpumask_fndecl_27776 update_cpumask fndecl 0 27776 NULL
139820 +disable_so_mxser_get_msr_fndecl_27778 mxser_get_msr fndecl 3 27778 NULL
139821 +disable_so_btree_insert32_fndecl_27786 btree_insert32 fndecl 2-4 27786 NULL
139822 +disable_so_ccp_do_sha_update_fndecl_27787 ccp_do_sha_update fndecl 0-2 27787 NULL
139823 +disable_so_complete_crypto_gcm_ghash_ctx_27789 complete crypto_gcm_ghash_ctx 0 27789 NULL
139824 +disable_so_cryptoloop_transfer_fndecl_27794 cryptoloop_transfer fndecl 0-4-6-7 27794 NULL
139825 +disable_so_max_reconnect_timeout_sbp_tport_27795 max_reconnect_timeout sbp_tport 0 27795 NULL
139826 +disable_so_drxj_dap_write_reg16_fndecl_27796 drxj_dap_write_reg16 fndecl 0-3 27796 NULL
139827 +disable_so_i_crtime_ext4_inode_27803 i_crtime ext4_inode 0 27803 NULL
139828 +disable_so_bridge_ctl_pci_bus_27806 bridge_ctl pci_bus 0 27806 NULL
139829 +disable_so_sas_unregister_devs_sas_addr_fndecl_27808 sas_unregister_devs_sas_addr fndecl 2 27808 NULL
139830 +disable_so_move_to_next_stateful_cpuid_entry_fndecl_27817 move_to_next_stateful_cpuid_entry fndecl 0-2 27817 NULL
139831 +disable_so_delay_pktgen_dev_27827 delay pktgen_dev 0 27827 NULL
139832 +disable_so_ipath_physaddr_ipath_devdata_27830 ipath_physaddr ipath_devdata 0 27830 NULL
139833 +disable_so_rh_timer_musb_27835 rh_timer musb 0 27835 NULL
139834 +disable_so_spinfo_cwnd_sctp_paddrinfo_27841 spinfo_cwnd sctp_paddrinfo 0 27841 NULL
139835 +disable_so_prism54_set_freq_fndecl_27858 prism54_set_freq fndecl 0 27858 NULL
139836 +disable_so_host_addr_mei_msg_hdr_27859 host_addr mei_msg_hdr 0 27859 NULL
139837 +disable_so_xr17v35x_get_divisor_fndecl_27860 xr17v35x_get_divisor fndecl 0-2 27860 NULL
139838 +disable_so_run_delayed_data_ref_fndecl_27870 run_delayed_data_ref fndecl 0 27870 NULL
139839 +disable_so_args_addr_pmu_nvbios_pmuR_27871 args_addr_pmu nvbios_pmuR 0 27871 NULL
139840 +disable_so_nr_of_multicastmacaddr_lbtf_private_27872 nr_of_multicastmacaddr lbtf_private 0 27872 NULL
139841 +disable_so_cfg80211_mgd_wext_siwfreq_fndecl_27873 cfg80211_mgd_wext_siwfreq fndecl 0 27873 NULL
139842 +disable_so_get_ftdi_divisor_fndecl_27883 get_ftdi_divisor fndecl 0 27883 NULL nohasharray
139843 +disable_so_sense_buf_phys_addr_lo_megasas_pthru_frame_27883 sense_buf_phys_addr_lo megasas_pthru_frame 0 27883 &disable_so_get_ftdi_divisor_fndecl_27883
139844 +disable_so_acpi_gbl_sleep_type_a_vardecl_27893 acpi_gbl_sleep_type_a vardecl 0 27893 NULL
139845 +disable_so_addr_ahc_dma_seg_27896 addr ahc_dma_seg 0 27896 NULL
139846 +disable_so_est_timer_fndecl_27898 est_timer fndecl 1 27898 NULL
139847 +disable_so_phonet_address_add_fndecl_27900 phonet_address_add fndecl 0-2 27900 NULL
139848 +disable_so_uhci_sprint_schedule_fndecl_27905 uhci_sprint_schedule fndecl 0 27905 NULL
139849 +disable_so_cpufreq_generic_init_fndecl_27911 cpufreq_generic_init fndecl 3 27911 NULL
139850 +disable_so_brcms_c_calc_frame_time_fndecl_27915 brcms_c_calc_frame_time fndecl 0-4-2 27915 NULL
139851 +disable_so_max_pixel_clock_matrox_fb_info_27917 max_pixel_clock matrox_fb_info 0 27917 NULL
139852 +disable_so_cfg80211_get_end_freq_fndecl_27923 cfg80211_get_end_freq fndecl 0-1-2 27923 NULL
139853 +disable_so_tv_usec_timeval_27924 tv_usec timeval 0 27924 NULL nohasharray
139854 +disable_so_bootloader_addr_mxt_data_27924 bootloader_addr mxt_data 0 27924 &disable_so_tv_usec_timeval_27924
139855 +disable_so_scope_ipv6_saddr_dst_27930 scope ipv6_saddr_dst 0 27930 NULL
139856 +disable_so_skcipher_recvmsg_sync_fndecl_27933 skcipher_recvmsg_sync fndecl 0 27933 NULL
139857 +disable_so_nf_ct_free_hashtable_fndecl_27936 nf_ct_free_hashtable fndecl 2 27936 NULL
139858 +disable_so_addr_netlbl_af4list_27939 addr netlbl_af4list 0 27939 NULL
139859 +disable_so_idgen_delay_netns_sysctl_ipv6_27941 idgen_delay netns_sysctl_ipv6 0 27941 NULL
139860 +disable_so_time_low_afs_uuid_27956 time_low afs_uuid 0 27956 NULL
139861 +disable_so_set_tv_freq_fndecl_27970 set_tv_freq fndecl 2 27970 NULL
139862 +disable_so_average_duration_time_stats_27971 average_duration time_stats 0 27971 NULL
139863 +disable_so_multicast_num_addrs__mace_private_27974 multicast_num_addrs _mace_private 0 27974 NULL
139864 +disable_so_ghash_pclmulqdqni_mod_init_fndecl_27975 ghash_pclmulqdqni_mod_init fndecl 0 27975 NULL
139865 +disable_so_gs_gru_base_paddr_gru_state_27988 gs_gru_base_paddr gru_state 0 27988 NULL nohasharray
139866 +disable_so_paging32_walk_addr_fndecl_27988 paging32_walk_addr fndecl 3-4 27988 &disable_so_gs_gru_base_paddr_gru_state_27988
139867 +disable_so_musb_read_rxfunaddr_fndecl_27990 musb_read_rxfunaddr fndecl 2-0 27990 NULL
139868 +disable_so_kstrtoint_fndecl_27993 kstrtoint fndecl 0 27993 NULL
139869 +disable_so_rv770_encode_yclk_post_div_fndecl_27996 rv770_encode_yclk_post_div fndecl 0-1 27996 NULL
139870 +disable_so_di_uid_qnx6_inode_entry_28014 di_uid qnx6_inode_entry 0 28014 NULL
139871 +disable_so_sctp_verify_addr_fndecl_28018 sctp_verify_addr fndecl 0-3 28018 NULL
139872 +disable_so_timeout_ieee80211_mgd_assoc_data_28022 timeout ieee80211_mgd_assoc_data 0 28022 NULL
139873 +disable_so_nadc_aic31xx_rate_divs_28025 nadc aic31xx_rate_divs 0 28025 NULL
139874 +disable_so_address_end_unity_map_entry_28028 address_end unity_map_entry 0 28028 NULL
139875 +disable_so_ring_pt_address_sst_hsw_ipc_stream_ring_28034 ring_pt_address sst_hsw_ipc_stream_ring 0 28034 NULL
139876 +disable_so_rx_hashtbl_used_head_alb_bond_info_28035 rx_hashtbl_used_head alb_bond_info 0 28035 NULL
139877 +disable_so_reset_time_vardecl_cs_c_28036 reset_time vardecl_cs.c 0 28036 NULL
139878 +disable_so_slicer_line_delay_cx18_av_state_28042 slicer_line_delay cx18_av_state 0 28042 NULL
139879 +disable_so_addr1_unlock_addr_28045 addr1 unlock_addr 0 28045 NULL
139880 +disable_so_timestamp_ath6kl_fwlog_slot_28050 timestamp ath6kl_fwlog_slot 0 28050 NULL
139881 +disable_so_max8925_rtc_set_time_fndecl_28052 max8925_rtc_set_time fndecl 0 28052 NULL
139882 +disable_so_hblank_lo_lvds_dvo_timing_28054 hblank_lo lvds_dvo_timing 0 28054 NULL
139883 +disable_so_total_bytes_available_snd_compr_runtime_28061 total_bytes_available snd_compr_runtime 0 28061 NULL
139884 +disable_so_start_jiffies_dm_cache_migration_28062 start_jiffies dm_cache_migration 0 28062 NULL
139885 +disable_so_fm10k_read_systime_pf_fndecl_28063 fm10k_read_systime_pf fndecl 0 28063 NULL
139886 +disable_so_time_stopped_btrfs_dev_replace_28065 time_stopped btrfs_dev_replace 0 28065 NULL
139887 +disable_so_total_time_devfreq_dev_status_28070 total_time devfreq_dev_status 0 28070 NULL
139888 +disable_so_congested_cycles_vardecl_tlb_uv_c_28074 congested_cycles vardecl_tlb_uv.c 0 28074 NULL
139889 +disable_so_db_addr_mlx4_ib_create_cq_28077 db_addr mlx4_ib_create_cq 0 28077 NULL
139890 +disable_so_ipaddr_atmmpc_ioc_28080 ipaddr atmmpc_ioc 0 28080 NULL
139891 +disable_so_drm_modeset_backoff_interruptible_fndecl_28087 drm_modeset_backoff_interruptible fndecl 0 28087 NULL
139892 +disable_so_pcr_address_fndecl_28088 pcr_address fndecl 0 28088 NULL
139893 +disable_so_fill_stats_for_tgid_fndecl_28092 fill_stats_for_tgid fndecl 0-1 28092 NULL
139894 +disable_so_ep0_set_address_fndecl_28094 ep0_set_address fndecl 0 28094 NULL
139895 +disable_so_vdi_uid_vxfs_inode_info_28097 vdi_uid vxfs_inode_info 0 28097 NULL
139896 +disable_so_cryptd_hash_final_fndecl_28098 cryptd_hash_final fndecl 2 28098 NULL
139897 +disable_so_sysctl_aevent_etime_netns_xfrm_28099 sysctl_aevent_etime netns_xfrm 0 28099 NULL
139898 +disable_so_nilfs_segctor_last_seg_write_time_secs_show_fndecl_28103 nilfs_segctor_last_seg_write_time_secs_show fndecl 0 28103 NULL
139899 +disable_so_toshiba_usb_sleep_charge_set_fndecl_28108 toshiba_usb_sleep_charge_set fndecl 0 28108 NULL
139900 +disable_so_r63_val_fc2580_freq_regs_28120 r63_val fc2580_freq_regs 0 28120 NULL
139901 +disable_so_myri10ge_read_mac_addr_fndecl_28129 myri10ge_read_mac_addr fndecl 0 28129 NULL
139902 +disable_so_stv090x_get_feclock_fndecl_28130 stv090x_get_feclock fndecl 0 28130 NULL
139903 +disable_so_m_blkbit_log_xfs_mount_28131 m_blkbit_log xfs_mount 0 28131 NULL
139904 +disable_so_duration_iwl_mvm_time_event_data_28140 duration iwl_mvm_time_event_data 0 28140 NULL
139905 +disable_so_compute_tsc_offset_kvm_x86_ops_28149 compute_tsc_offset kvm_x86_ops 0-2 28149 NULL
139906 +disable_so_sys_clock_freq_drxd_state_28176 sys_clock_freq drxd_state 0 28176 NULL
139907 +disable_so_addrLow_sge_ieee1212_28181 addrLow sge_ieee1212 0 28181 NULL
139908 +disable_so_ctnetlink_timestamp_size_fndecl_28183 ctnetlink_timestamp_size fndecl 0 28183 NULL
139909 +disable_so_ahash_def_finup_fndecl_28189 ahash_def_finup fndecl 0 28189 NULL
139910 +disable_so_hw_ptr_jiffies_snd_pcm_runtime_28200 hw_ptr_jiffies snd_pcm_runtime 0 28200 NULL
139911 +disable_so_tmr_device_snd_timer_28205 tmr_device snd_timer 0 28205 NULL
139912 +disable_so_kycr2_delay_sh_keysc_info_28217 kycr2_delay sh_keysc_info 0 28217 NULL
139913 +disable_so_timestamp_nfs4_opendata_28221 timestamp nfs4_opendata 0 28221 NULL
139914 +disable_so_mb_find_next_zero_bit_fndecl_28223 mb_find_next_zero_bit fndecl 0-2-3 28223 NULL
139915 +disable_so_nbytes_orig_qce_sha_reqctx_28228 nbytes_orig qce_sha_reqctx 0 28228 NULL
139916 +disable_so_code_addr_nvbios_pmuR_28229 code_addr nvbios_pmuR 0 28229 NULL
139917 +disable_so_clock_pad_drive_dib0070_config_28232 clock_pad_drive dib0070_config 0 28232 NULL nohasharray
139918 +disable_so_ringid_wmi_bcast_vring_cfg_28232 ringid wmi_bcast_vring_cfg 0 28232 &disable_so_clock_pad_drive_dib0070_config_28232
139919 +disable_so_centiseconds_timestamp_28239 centiseconds timestamp 0 28239 NULL nohasharray
139920 +disable_so_psb_vdc_interrupt_fndecl_28239 psb_vdc_interrupt fndecl 2 28239 &disable_so_centiseconds_timestamp_28239
139921 +disable_so_freqshift_snd_usb_endpoint_28255 freqshift snd_usb_endpoint 0 28255 NULL
139922 +disable_so_drm_vblank_count_and_time_fndecl_28263 drm_vblank_count_and_time fndecl 2 28263 NULL
139923 +disable_so_cr_s5p_jpeg_addr_28264 cr s5p_jpeg_addr 0 28264 NULL
139924 +disable_so_adis16136_get_freq_fndecl_28268 adis16136_get_freq fndecl 0 28268 NULL nohasharray
139925 +disable_so_cpu_to_tun16_fndecl_28268 cpu_to_tun16 fndecl 0-2 28268 &disable_so_adis16136_get_freq_fndecl_28268
139926 +disable_so_index_msr_data_28269 index msr_data 0 28269 NULL
139927 +disable_so_clock_realtek_pci_sdmmc_28276 clock realtek_pci_sdmmc 0 28276 NULL
139928 +disable_so_div_q0_pll_values_28280 div_q0 pll_values 0 28280 NULL
139929 +disable_so_fall_time_lp8788_bl_config_28282 fall_time lp8788_bl_config 0 28282 NULL
139930 +disable_so_producer_index_phys_addr_lo_megasas_init_queue_info_28289 producer_index_phys_addr_lo megasas_init_queue_info 0 28289 NULL
139931 +disable_so_hash_ipport4_expire_fndecl_28290 hash_ipport4_expire fndecl 4 28290 NULL
139932 +disable_so_ifa_valid_lft_in_ifaddr_28292 ifa_valid_lft in_ifaddr 0 28292 NULL nohasharray
139933 +disable_so_test_ahash_jiffies_digest_fndecl_28292 test_ahash_jiffies_digest fndecl 0 28292 &disable_so_ifa_valid_lft_in_ifaddr_28292
139934 +disable_so_bitmap_parselist_fndecl_28296 bitmap_parselist fndecl 0-3 28296 NULL
139935 +disable_so_st_uid_stat_28301 st_uid stat 0 28301 NULL
139936 +disable_so_default_powersave_bias_vardecl_cpufreq_ondemand_c_28302 default_powersave_bias vardecl_cpufreq_ondemand.c 0 28302 NULL
139937 +disable_so__simple_hash_fndecl_28307 _simple_hash fndecl 0 28307 NULL
139938 +disable_so_sys_setfsuid_fndecl_28311 sys_setfsuid fndecl 0-1 28311 NULL
139939 +disable_so_buf_addr_mlx4_ib_resize_cq_28313 buf_addr mlx4_ib_resize_cq 0 28313 NULL nohasharray
139940 +disable_so_netxen_config_ipaddr_fndecl_28313 netxen_config_ipaddr fndecl 2 28313 &disable_so_buf_addr_mlx4_ib_resize_cq_28313 nohasharray
139941 +disable_so_set_32bit_tls_fndecl_28313 set_32bit_tls fndecl 3 28313 &disable_so_netxen_config_ipaddr_fndecl_28313
139942 +disable_so_init_systime_stmmac_hwtimestamp_28315 init_systime stmmac_hwtimestamp 2-3 28315 NULL
139943 +disable_so_bf_daddr_ath_buf_28317 bf_daddr ath_buf 0 28317 NULL nohasharray
139944 +disable_so_xfs_btree_readahead_ptr_fndecl_28317 xfs_btree_readahead_ptr fndecl 3 28317 &disable_so_bf_daddr_ath_buf_28317
139945 +disable_so__is_valid_div_fndecl_28320 _is_valid_div fndecl 2 28320 NULL
139946 +disable_so_loop_id_2100_gid_list_info_28327 loop_id_2100 gid_list_info 0 28327 NULL nohasharray
139947 +disable_so_hi_regpair_28327 hi regpair 0 28327 &disable_so_loop_id_2100_gid_list_info_28327
139948 +disable_so_dst_addr_rcar_dmac_xfer_chunk_28333 dst_addr rcar_dmac_xfer_chunk 0 28333 NULL
139949 +disable_so_svm_msrpm_offset_fndecl_28343 svm_msrpm_offset fndecl 0-1 28343 NULL
139950 +disable_so_dma_free_attrs_fndecl_28349 dma_free_attrs fndecl 2-4 28349 NULL
139951 +disable_so_gc_psx_delay_vardecl_gamecon_c_28354 gc_psx_delay vardecl_gamecon.c 0 28354 NULL
139952 +disable_so_di_mtime_nsec_gfs2_dinode_28356 di_mtime_nsec gfs2_dinode 0 28356 NULL
139953 +disable_so_panel_post_divider_radeon_encoder_lvds_28360 panel_post_divider radeon_encoder_lvds 0 28360 NULL
139954 +disable_so_cpu_rt_runtime_write_fndecl_28375 cpu_rt_runtime_write fndecl 3-0 28375 NULL nohasharray
139955 +disable_so_hrtimer_nanosleep_fndecl_28375 hrtimer_nanosleep fndecl 4 28375 &disable_so_cpu_rt_runtime_write_fndecl_28375
139956 +disable_so_addr_yellowfin_desc_28380 addr yellowfin_desc 0 28380 NULL
139957 +disable_so_time_count_mptsas_target_reset_event_28383 time_count mptsas_target_reset_event 0 28383 NULL nohasharray
139958 +disable_so_pos2maj_hash_fndecl_28383 pos2maj_hash fndecl 0-2 28383 &disable_so_time_count_mptsas_target_reset_event_28383
139959 +disable_so_chv_freq_opcode_fndecl_28386 chv_freq_opcode fndecl 0-2 28386 NULL
139960 +disable_so_nsecs_to_jiffies_fndecl_28394 nsecs_to_jiffies fndecl 0-1 28394 NULL
139961 +disable_so_qpn_hash_fndecl_28400 qpn_hash fndecl 0-2 28400 NULL
139962 +disable_so_seltime_b_ahc_softc_28409 seltime_b ahc_softc 0 28409 NULL
139963 +disable_so_ast_set_start_address_crt1_fndecl_28414 ast_set_start_address_crt1 fndecl 2 28414 NULL
139964 +disable_so_tseg2_pucan_timing_fast_28420 tseg2 pucan_timing_fast 0 28420 NULL
139965 +disable_so_tlv_put_uuid_fndecl_28427 tlv_put_uuid fndecl 0 28427 NULL
139966 +disable_so_cur_tsc_write_kvm_arch_28444 cur_tsc_write kvm_arch 0 28444 NULL
139967 +disable_so_addr_2_qla8044_minidump_entry_rdmdio_28446 addr_2 qla8044_minidump_entry_rdmdio 0 28446 NULL
139968 +disable_so_ft_img_ir_timing_regvals_28448 ft img_ir_timing_regvals 0 28448 NULL
139969 +disable_so_blk_queue_rq_timeout_fndecl_28452 blk_queue_rq_timeout fndecl 2 28452 NULL
139970 +disable_so_pch_udc_read_device_interrupts_fndecl_28463 pch_udc_read_device_interrupts fndecl 0 28463 NULL
139971 +disable_so_spidev_sync_fndecl_28473 spidev_sync fndecl 0 28473 NULL
139972 +disable_so_mvs_store_interrupt_coalescing_fndecl_28474 mvs_store_interrupt_coalescing fndecl 0-4 28474 NULL
139973 +disable_so_div_up_fndecl_28477 div_up fndecl 0-1-2 28477 NULL
139974 +disable_so_iwlagn_hw_valid_rtc_data_addr_fndecl_28480 iwlagn_hw_valid_rtc_data_addr fndecl 1 28480 NULL
139975 +disable_so_ixgbe_init_interrupt_scheme_fndecl_28488 ixgbe_init_interrupt_scheme fndecl 0 28488 NULL
139976 +disable_so_next_hrtimer_event_ehci_hcd_28494 next_hrtimer_event ehci_hcd 0 28494 NULL
139977 +disable_so_show_hold_timer_fndecl_28495 show_hold_timer fndecl 0 28495 NULL
139978 +disable_so_linetime_intel_pipe_wm_28496 linetime intel_pipe_wm 0 28496 NULL
139979 +disable_so_rcq_addr_vf_pf_rxq_params_28504 rcq_addr vf_pf_rxq_params 0 28504 NULL
139980 +disable_so_paddr_ath10k_hif_sg_item_28509 paddr ath10k_hif_sg_item 0 28509 NULL
139981 +disable_so_ocfs2_clear_bit_unaligned_fndecl_28520 ocfs2_clear_bit_unaligned fndecl 1 28520 NULL
139982 +disable_so_interrupt_notify_wlcore_ops_28523 interrupt_notify wlcore_ops 0 28523 NULL
139983 +disable_so_r_direct_hash_ceph_mds_request_28525 r_direct_hash ceph_mds_request 0 28525 NULL
139984 +disable_so_i_ctime_omfs_inode_28528 i_ctime omfs_inode 0 28528 NULL
139985 +disable_so_sas_request_addr_fndecl_28536 sas_request_addr fndecl 0 28536 NULL
139986 +disable_so_bnx2x_send_reset_timesync_ramrod_fndecl_28537 bnx2x_send_reset_timesync_ramrod fndecl 0 28537 NULL
139987 +disable_so_prev_sum_exec_runtime_sched_entity_28542 prev_sum_exec_runtime sched_entity 0 28542 NULL nohasharray
139988 +disable_so_reg_w1_fndecl_28542 reg_w1 fndecl 2-3 28542 &disable_so_prev_sum_exec_runtime_sched_entity_28542
139989 +disable_so_addr_wil_memio_28545 addr wil_memio 0 28545 NULL
139990 +disable_so_drm_get_last_vbltimestamp_fndecl_28555 drm_get_last_vbltimestamp fndecl 2 28555 NULL nohasharray
139991 +disable_so_decryptor_fndecl_28555 decryptor fndecl 0 28555 &disable_so_drm_get_last_vbltimestamp_fndecl_28555
139992 +disable_so_mcryptd_hash_enqueue_fndecl_28559 mcryptd_hash_enqueue fndecl 0 28559 NULL
139993 +disable_so_i_ctime_nilfs_inode_28572 i_ctime nilfs_inode 0 28572 NULL
139994 +disable_so_ablkcipher_request_complete_fndecl_28578 ablkcipher_request_complete fndecl 2 28578 NULL
139995 +disable_so_quark_x1000_get_clk_div_fndecl_28592 quark_x1000_get_clk_div fndecl 0-1 28592 NULL
139996 +disable_so_myri10ge_update_mac_address_fndecl_28593 myri10ge_update_mac_address fndecl 0 28593 NULL
139997 +disable_so_crypto_authenc_decrypt_fndecl_28596 crypto_authenc_decrypt fndecl 0 28596 NULL
139998 +disable_so_addr_starfire_tx_desc_2_28603 addr starfire_tx_desc_2 0 28603 NULL
139999 +disable_so___rhashtable_insert_fast_fndecl_28605 __rhashtable_insert_fast fndecl 0 28605 NULL
140000 +disable_so_addr_cp_desc_28611 addr cp_desc 0 28611 NULL
140001 +disable_so_ic_pause_timer_mtip_port_28612 ic_pause_timer mtip_port 0 28612 NULL nohasharray
140002 +disable_so_bitmap_checkfree_fndecl_28612 bitmap_checkfree fndecl 2 28612 &disable_so_ic_pause_timer_mtip_port_28612
140003 +disable_so_ac_utimescaled_taskstats_28613 ac_utimescaled taskstats 0 28613 NULL
140004 +disable_so___subtree_last_umem_odp_node_28630 __subtree_last umem_odp_node 0 28630 NULL
140005 +disable_so_i_ctime_bfs_inode_28632 i_ctime bfs_inode 0 28632 NULL
140006 +disable_so_s_def_resgid_ext4_super_block_28638 s_def_resgid ext4_super_block 0 28638 NULL
140007 +disable_so_addr_alert_data_28639 addr alert_data 0 28639 NULL
140008 +disable_so_p_vaddr_elf32_phdr_28641 p_vaddr elf32_phdr 0 28641 NULL
140009 +disable_so_kv_set_divider_value_fndecl_28644 kv_set_divider_value fndecl 3-0 28644 NULL
140010 +disable_so_bitmap_clear_fndecl_28646 bitmap_clear fndecl 2-3 28646 NULL
140011 +disable_so_uartlite_inle32_fndecl_28652 uartlite_inle32 fndecl 0 28652 NULL
140012 +disable_so_kvm_hv_vapic_msr_write_fndecl_28670 kvm_hv_vapic_msr_write fndecl 3 28670 NULL
140013 +disable_so_sgl_addr_fcpio_icmnd_16_28672 sgl_addr fcpio_icmnd_16 0 28672 NULL
140014 +disable_so_timestamp_bfa_trc_s_28675 timestamp bfa_trc_s 0 28675 NULL
140015 +disable_so_xbofs_delay_irda_skb_cb_28676 xbofs_delay irda_skb_cb 0 28676 NULL
140016 +disable_so_hpfs_map_bitmap_fndecl_28681 hpfs_map_bitmap fndecl 2 28681 NULL
140017 +disable_so_tz_minuteswest_timezone_28688 tz_minuteswest timezone 0 28688 NULL
140018 +disable_so_pc_clock_settime_fndecl_28698 pc_clock_settime fndecl 1 28698 NULL
140019 +disable_so_orinoco_hw_get_freq_fndecl_28700 orinoco_hw_get_freq fndecl 0 28700 NULL
140020 +disable_so_phys_addr_megasas_sge32_28701 phys_addr megasas_sge32 0 28701 NULL
140021 +disable_so_tusb_otg_ints_fndecl_28728 tusb_otg_ints fndecl 2 28728 NULL
140022 +disable_so_dynamic_ps_forced_timeout_ieee80211_local_28729 dynamic_ps_forced_timeout ieee80211_local 0 28729 NULL
140023 +disable_so_atomic_notifier_call_chain_fndecl_28732 atomic_notifier_call_chain fndecl 0-2 28732 NULL
140024 +disable_so_time_ext_busy_survey_info_28734 time_ext_busy survey_info 0 28734 NULL
140025 +disable_so___audit_signal_info_fndecl_28736 __audit_signal_info fndecl 0-1 28736 NULL
140026 +disable_so_SYSC_mq_timedsend_fndecl_28740 SYSC_mq_timedsend fndecl 1-3 28740 NULL
140027 +disable_so_gss_krb5_aes_decrypt_fndecl_28742 gss_krb5_aes_decrypt fndecl 0-2 28742 NULL
140028 +disable_so_sys_clock_getres_fndecl_28754 sys_clock_getres fndecl 1 28754 NULL
140029 +disable_so_addr_max8997_muic_reg_data_28757 addr max8997_muic_reg_data 0 28757 NULL
140030 +disable_so_address_floppy_fdc_state_28762 address floppy_fdc_state 0 28762 NULL
140031 +disable_so_btrfs_uuid_tree_add_fndecl_28765 btrfs_uuid_tree_add fndecl 0-4-5 28765 NULL
140032 +disable_so_default_radio_freq_vardecl_pvrusb2_hdw_c_28767 default_radio_freq vardecl_pvrusb2-hdw.c 0 28767 NULL
140033 +disable_so_ac_stime_pacct_struct_28773 ac_stime pacct_struct 0 28773 NULL
140034 +disable_so___btree_submit_bio_start_fndecl_28775 __btree_submit_bio_start fndecl 0 28775 NULL
140035 +disable_so_add_new_bitmap_fndecl_28783 add_new_bitmap fndecl 3 28783 NULL
140036 +disable_so_cinblock_signal_struct_28789 cinblock signal_struct 0 28789 NULL
140037 +disable_so_bd_list_addr_hi_bnx2i_logout_request_28791 bd_list_addr_hi bnx2i_logout_request 0 28791 NULL
140038 +disable_so_tv_freq_bttv_28796 tv_freq bttv 0 28796 NULL
140039 +disable_so___btrfs_run_delayed_items_fndecl_28804 __btrfs_run_delayed_items fndecl 0-3 28804 NULL nohasharray
140040 +disable_so_dst_addr_dma_slave_config_28804 dst_addr dma_slave_config 0 28804 &disable_so___btrfs_run_delayed_items_fndecl_28804
140041 +disable_so_xfs_bitmap_empty_fndecl_28805 xfs_bitmap_empty fndecl 2 28805 NULL
140042 +disable_so_btrfs_alloc_delayed_item_fndecl_28813 btrfs_alloc_delayed_item fndecl 1 28813 NULL
140043 +disable_so_virtio32_to_cpu_fndecl_28839 virtio32_to_cpu fndecl 0-2 28839 NULL
140044 +disable_so_random_frame_fusbh200_hcd_28840 random_frame fusbh200_hcd 0 28840 NULL
140045 +disable_so_wl1273_fm_set_tx_freq_fndecl_28841 wl1273_fm_set_tx_freq fndecl 2 28841 NULL nohasharray
140046 +disable_so_rip_kvm_regs_28841 rip kvm_regs 0 28841 &disable_so_wl1273_fm_set_tx_freq_fndecl_28841
140047 +disable_so_last_capture_dmaaddr_es1938_28843 last_capture_dmaaddr es1938 0 28843 NULL
140048 +disable_so_mic_is_system_addr_fndecl_28851 mic_is_system_addr fndecl 2 28851 NULL
140049 +disable_so_sst_module_runtime_new_fndecl_28861 sst_module_runtime_new fndecl 2 28861 NULL
140050 +disable_so_nat_blkaddr_f2fs_nm_info_28862 nat_blkaddr f2fs_nm_info 0 28862 NULL
140051 +disable_so_ustrtoul_fndecl_28866 ustrtoul fndecl 0 28866 NULL
140052 +disable_so_tomoyo_write_log2_fndecl_28871 tomoyo_write_log2 fndecl 2 28871 NULL
140053 +disable_so_rate_snd_pcm_oss_runtime_28878 rate snd_pcm_oss_runtime 0 28878 NULL
140054 +disable_so_cl_idle_timeout_ms_o2nm_cluster_28885 cl_idle_timeout_ms o2nm_cluster 0 28885 NULL
140055 +disable_so_pc_clock_adjtime_fndecl_28892 pc_clock_adjtime fndecl 1 28892 NULL
140056 +disable_so_mmc_power_cycle_fndecl_28894 mmc_power_cycle fndecl 2 28894 NULL
140057 +disable_so_cpufreq_get_fndecl_28896 cpufreq_get fndecl 0-1 28896 NULL
140058 +disable_so_ci_get_sleep_divider_id_from_clock_fndecl_28898 ci_get_sleep_divider_id_from_clock fndecl 2 28898 NULL
140059 +disable_so_mmio_writel_intel_uncore_funcs_28903 mmio_writel intel_uncore_funcs 2-3 28903 NULL
140060 +disable_so_cpufreq_stats_init_fndecl_28912 cpufreq_stats_init fndecl 0 28912 NULL
140061 +disable_so_sbp_tpg_attrib_store_mgt_orb_timeout_fndecl_28914 sbp_tpg_attrib_store_mgt_orb_timeout fndecl 0-3 28914 NULL
140062 +disable_so___virtio16_to_cpu_fndecl_28917 __virtio16_to_cpu fndecl 0-2 28917 NULL
140063 +disable_so___pm_runtime_resume_fndecl_28918 __pm_runtime_resume fndecl 0 28918 NULL
140064 +disable_so_task_setpgid_security_operations_28939 task_setpgid security_operations 2 28939 NULL
140065 +disable_so_perf_event_set_clock_fndecl_28941 perf_event_set_clock fndecl 0 28941 NULL
140066 +disable_so_sci_er_interrupt_fndecl_28944 sci_er_interrupt fndecl 1 28944 NULL
140067 +disable_so_mmc_sdio_get_max_clock_fndecl_28945 mmc_sdio_get_max_clock fndecl 0 28945 NULL
140068 +disable_so_dma_addr_cmdQ_28949 dma_addr cmdQ 0 28949 NULL
140069 +disable_so_s_def_resuid_ext3_super_block_28958 s_def_resuid ext3_super_block 0 28958 NULL
140070 +disable_so_init_timer_cpu_fndecl_28961 init_timer_cpu fndecl 2 28961 NULL
140071 +disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962 sst_hsw_dsp_runtime_suspend fndecl 0 28962 NULL nohasharray
140072 +disable_so_mem_busaddr_ahd_platform_data_28962 mem_busaddr ahd_platform_data 0 28962 &disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962
140073 +disable_so_xen_setup_timer_fndecl_28968 xen_setup_timer fndecl 1 28968 NULL
140074 +disable_so_vx_clock_mode_info_fndecl_28969 vx_clock_mode_info fndecl 0 28969 NULL
140075 +disable_so_clk_frequency_csis_state_28987 clk_frequency csis_state 0 28987 NULL
140076 +disable_so_cma_clear_bitmap_fndecl_28991 cma_clear_bitmap fndecl 2-3 28991 NULL
140077 +disable_so_tg3_nvram_phys_addr_fndecl_28993 tg3_nvram_phys_addr fndecl 0-2 28993 NULL
140078 +disable_so_ufshcd_init_clocks_fndecl_28995 ufshcd_init_clocks fndecl 0 28995 NULL nohasharray
140079 +disable_so_ima_init_crypto_fndecl_28995 ima_init_crypto fndecl 0 28995 &disable_so_ufshcd_init_clocks_fndecl_28995
140080 +disable_so_i2c_address_ts2020_priv_29002 i2c_address ts2020_priv 0 29002 NULL
140081 +disable_so_gf_mul_fndecl_29007 gf_mul fndecl 0-3 29007 NULL
140082 +disable_so_sys_geteuid_fndecl_29013 sys_geteuid fndecl 0 29013 NULL
140083 +disable_so_do_one_acipher_op_fndecl_29014 do_one_acipher_op fndecl 0-2 29014 NULL
140084 +disable_so_ssb_pmu_get_alp_clock_clk0_fndecl_29019 ssb_pmu_get_alp_clock_clk0 fndecl 0 29019 NULL
140085 +disable_so_addr_ib_sge_29021 addr ib_sge 0 29021 NULL
140086 +disable_so_rdi_kvm_regs_29022 rdi kvm_regs 0 29022 NULL
140087 +disable_so_dma_subdivide_fndecl_29027 dma_subdivide fndecl 3-0 29027 NULL
140088 +disable_so_nilfs_superblock_sb_write_time_secs_show_fndecl_29044 nilfs_superblock_sb_write_time_secs_show fndecl 0 29044 NULL
140089 +disable_so_mlx4_ib_init_gid_table_fndecl_29049 mlx4_ib_init_gid_table fndecl 0 29049 NULL
140090 +disable_so_xfs_bmap_add_attrfork_btree_fndecl_29052 xfs_bmap_add_attrfork_btree fndecl 0 29052 NULL
140091 +disable_so_pcf2123_rtc_set_time_fndecl_29057 pcf2123_rtc_set_time fndecl 0 29057 NULL
140092 +disable_so_vactive_hi_oaktrail_timing_info_29063 vactive_hi oaktrail_timing_info 0 29063 NULL
140093 +disable_so_xfs_btree_lookup_fndecl_29066 xfs_btree_lookup fndecl 0 29066 NULL
140094 +disable_so_si476x_core_cmd_fm_tune_freq_a20_fndecl_29072 si476x_core_cmd_fm_tune_freq_a20 fndecl 0 29072 NULL
140095 +disable_so_hcd_pci_runtime_resume_fndecl_29073 hcd_pci_runtime_resume fndecl 0 29073 NULL
140096 +disable_so_switch_time_wl12xx_cmd_channel_switch_29074 switch_time wl12xx_cmd_channel_switch 0 29074 NULL
140097 +disable_so_ata_internal_cmd_timeout_fndecl_29075 ata_internal_cmd_timeout fndecl 0-2 29075 NULL nohasharray
140098 +disable_so_hash_shift_flow_cache_29075 hash_shift flow_cache 0 29075 &disable_so_ata_internal_cmd_timeout_fndecl_29075
140099 +disable_so_timeout_sg_io_v4_29079 timeout sg_io_v4 0 29079 NULL
140100 +disable_so___btrfs_add_delayed_insertion_item_fndecl_29083 __btrfs_add_delayed_insertion_item fndecl 0 29083 NULL
140101 +disable_so_bn_nchildren_nilfs_btree_node_29084 bn_nchildren nilfs_btree_node 0 29084 NULL
140102 +disable_so_jiffies_vardecl_29085 jiffies vardecl 0 29085 NULL
140103 +disable_so_frag_count_ct_timer_instance_29091 frag_count ct_timer_instance 0 29091 NULL
140104 +disable_so_ref_start_vardecl_tsc_c_29097 ref_start vardecl_tsc.c 0 29097 NULL
140105 +disable_so_timeout_ms_cm_id_private_29104 timeout_ms cm_id_private 0 29104 NULL
140106 +disable_so_nfulnl_set_timeout_fndecl_29106 nfulnl_set_timeout fndecl 2 29106 NULL nohasharray
140107 +disable_so_addr_high_lancer_cmd_req_write_object_29106 addr_high lancer_cmd_req_write_object 0 29106 &disable_so_nfulnl_set_timeout_fndecl_29106
140108 +disable_so_i_mtime_exofs_fcb_29107 i_mtime exofs_fcb 0 29107 NULL
140109 +disable_so_ss_pt_regs_29109 ss pt_regs 0 29109 NULL
140110 +disable_so_ivsize_ablkcipher_alg_29115 ivsize ablkcipher_alg 0 29115 NULL
140111 +disable_so_signal_strength_rx_status_29125 signal_strength rx_status 0 29125 NULL
140112 +disable_so_radio_rx_freq_vivid_dev_29126 radio_rx_freq vivid_dev 0 29126 NULL
140113 +disable_so_io_virtual_address_ib_pool_fmr_29135 io_virtual_address ib_pool_fmr 0 29135 NULL
140114 +disable_so_addr_low_mcp_kreq_ether_send_29138 addr_low mcp_kreq_ether_send 0 29138 NULL
140115 +disable_so_pad_bits_bitstream_29149 pad_bits bitstream 0 29149 NULL
140116 +disable_so_clockdiv_sd_29154 clockdiv sd 0 29154 NULL
140117 +disable_so_retu_wdt_set_timeout_fndecl_29155 retu_wdt_set_timeout fndecl 2-0 29155 NULL nohasharray
140118 +disable_so_hw_roc_start_time_ieee80211_local_29155 hw_roc_start_time ieee80211_local 0 29155 &disable_so_retu_wdt_set_timeout_fndecl_29155
140119 +disable_so_set_ip_addr_fndecl_29159 set_ip_addr fndecl 4 29159 NULL nohasharray
140120 +disable_so_hsync_offset_hi_oaktrail_timing_info_29159 hsync_offset_hi oaktrail_timing_info 0 29159 &disable_so_set_ip_addr_fndecl_29159
140121 +disable_so_valid_phys_addr_range_fndecl_29163 valid_phys_addr_range fndecl 2 29163 NULL
140122 +disable_so_hsw_compute_linetime_wm_fndecl_29166 hsw_compute_linetime_wm fndecl 0 29166 NULL
140123 +disable_so_set_frontend_jiffies_af9013_state_29174 set_frontend_jiffies af9013_state 0 29174 NULL
140124 +disable_so_max_schedule_delay_balloon_stats_29176 max_schedule_delay balloon_stats 0 29176 NULL
140125 +disable_so_matroxfb_mavenclock_fndecl_29182 matroxfb_mavenclock fndecl 2-3 29182 NULL
140126 +disable_so_rrq_stop_time_lpfc_node_rrq_29187 rrq_stop_time lpfc_node_rrq 0 29187 NULL
140127 +disable_so_can_ifindex_sockaddr_can_29188 can_ifindex sockaddr_can 0 29188 NULL
140128 +disable_so_time_hi_and_version_afs_uuid_29192 time_hi_and_version afs_uuid 0 29192 NULL
140129 +disable_so_inode_bitmap_ext4_new_group_data_29195 inode_bitmap ext4_new_group_data 0 29195 NULL
140130 +disable_so_madc_aic31xx_rate_divs_29206 madc aic31xx_rate_divs 0 29206 NULL
140131 +disable_so_i_mtime_ext3_inode_29219 i_mtime ext3_inode 0 29219 NULL
140132 +disable_so_ccp_aes_cmac_finup_fndecl_29220 ccp_aes_cmac_finup fndecl 0 29220 NULL
140133 +disable_so_listen_time_ath5k_ani_state_29228 listen_time ath5k_ani_state 0 29228 NULL
140134 +disable_so_di_mtime_gfs2_dinode_29230 di_mtime gfs2_dinode 0 29230 NULL nohasharray
140135 +disable_so_snd_pcm_hw_rule_mulkdiv_fndecl_29230 snd_pcm_hw_rule_mulkdiv fndecl 0 29230 &disable_so_di_mtime_gfs2_dinode_29230
140136 +disable_so_qlcnic_get_ioaddr_fndecl_29235 qlcnic_get_ioaddr fndecl 2 29235 NULL
140137 +disable_so_si476x_radio_s_hw_freq_seek_fndecl_29237 si476x_radio_s_hw_freq_seek fndecl 0 29237 NULL
140138 +disable_so_SiS_SetRegANDOR_fndecl_29240 SiS_SetRegANDOR fndecl 2-3-5-4 29240 NULL
140139 +disable_so_dev_wait_time_esas2r_sas_nvram_29244 dev_wait_time esas2r_sas_nvram 0 29244 NULL
140140 +disable_so_b44_recycle_rx_fndecl_29255 b44_recycle_rx fndecl 2-3 29255 NULL
140141 +disable_so_max_state_devfreq_dev_profile_29257 max_state devfreq_dev_profile 0 29257 NULL
140142 +disable_so_freq_std_sccnxp_chip_29265 freq_std sccnxp_chip 0 29265 NULL nohasharray
140143 +disable_so___ipv6_addr_diff32_fndecl_29265 __ipv6_addr_diff32 fndecl 0 29265 &disable_so_freq_std_sccnxp_chip_29265
140144 +disable_so_kvm_max_guest_tsc_khz_vardecl_29276 kvm_max_guest_tsc_khz vardecl 0 29276 NULL
140145 +disable_so_ioaddr_velocity_info_29278 ioaddr velocity_info 0 29278 NULL
140146 +disable_so_last_rx_time_xenvif_queue_29307 last_rx_time xenvif_queue 0 29307 NULL
140147 +disable_so_expires_timeriomem_rng_private_data_29310 expires timeriomem_rng_private_data 0 29310 NULL nohasharray
140148 +disable_so_dev_sound_lowlev_timer_29310 dev sound_lowlev_timer 0 29310 &disable_so_expires_timeriomem_rng_private_data_29310
140149 +disable_so_btrfs_set_inode_gid_fndecl_29338 btrfs_set_inode_gid fndecl 3 29338 NULL
140150 +disable_so_i2c_clock_speed_i2c_pca9564_pf_platform_data_29345 i2c_clock_speed i2c_pca9564_pf_platform_data 0 29345 NULL nohasharray
140151 +disable_so_pci_bus_read_config_dword_fndecl_29345 pci_bus_read_config_dword fndecl 0-2-3 29345 &disable_so_i2c_clock_speed_i2c_pca9564_pf_platform_data_29345
140152 +disable_so_adav80x_set_adc_clock_fndecl_29348 adav80x_set_adc_clock fndecl 2 29348 NULL
140153 +disable_so_mod_size_ccp_rsa_op_29350 mod_size ccp_rsa_op 0 29350 NULL
140154 +disable_so_iscsit_na_random_r2t_offsets_fndecl_29363 iscsit_na_random_r2t_offsets fndecl 0 29363 NULL nohasharray
140155 +disable_so_buf_addr_lo_mv_u3d_trb_hw_29363 buf_addr_lo mv_u3d_trb_hw 0 29363 &disable_so_iscsit_na_random_r2t_offsets_fndecl_29363
140156 +disable_so_smsc75xx_set_mac_address_fndecl_29364 smsc75xx_set_mac_address fndecl 0 29364 NULL
140157 +disable_so_m88rs6000t_set_pll_freq_fndecl_29365 m88rs6000t_set_pll_freq fndecl 0-2 29365 NULL
140158 +disable_so_scaled_div_fndecl_29370 scaled_div fndecl 0-1-2 29370 NULL
140159 +disable_so_rtsc_y2x_fndecl_29372 rtsc_y2x fndecl 0-2 29372 NULL
140160 +disable_so_uart_update_timeout_fndecl_29380 uart_update_timeout fndecl 3-2 29380 NULL
140161 +disable_so_dbuf_addr_ath6kl_dbglog_hdr_29381 dbuf_addr ath6kl_dbglog_hdr 0 29381 NULL
140162 +disable_so_sample_rate_div_inv_mpu6050_reg_map_29386 sample_rate_div inv_mpu6050_reg_map 0 29386 NULL nohasharray
140163 +disable_so_ath10k_ce_dest_ring_base_addr_set_fndecl_29386 ath10k_ce_dest_ring_base_addr_set fndecl 3 29386 &disable_so_sample_rate_div_inv_mpu6050_reg_map_29386
140164 +disable_so_nla_parse_nested_fndecl_29395 nla_parse_nested fndecl 2-0 29395 NULL
140165 +disable_so___sched_setscheduler_fndecl_29397 __sched_setscheduler fndecl 0 29397 NULL
140166 +disable_so_add_atomic_switch_msr_special_fndecl_29400 add_atomic_switch_msr_special fndecl 6-7 29400 NULL
140167 +disable_so___xfrm_spi_hash_fndecl_29403 __xfrm_spi_hash fndecl 0-2-3-4-5 29403 NULL
140168 +disable_so_ceph_decode_pgid_fndecl_29407 ceph_decode_pgid fndecl 0 29407 NULL
140169 +disable_so_loc_addr_nes_cm_info_29413 loc_addr nes_cm_info 0 29413 NULL
140170 +disable_so_kxcjk1013_convert_freq_to_bit_fndecl_29417 kxcjk1013_convert_freq_to_bit fndecl 0 29417 NULL
140171 +disable_so_exec_clock_cfs_rq_29423 exec_clock cfs_rq 0 29423 NULL
140172 +disable_so_irst_show_wakeup_time_fndecl_29431 irst_show_wakeup_time fndecl 0 29431 NULL nohasharray
140173 +disable_so_macb_interrupt_fndecl_29431 macb_interrupt fndecl 1 29431 &disable_so_irst_show_wakeup_time_fndecl_29431
140174 +disable_so_crypto_register_notifier_fndecl_29432 crypto_register_notifier fndecl 0 29432 NULL nohasharray
140175 +disable_so_shash_compat_setkey_fndecl_29432 shash_compat_setkey fndecl 0-3 29432 &disable_so_crypto_register_notifier_fndecl_29432
140176 +disable_so_pwm_freq_div_dib8000_config_29434 pwm_freq_div dib8000_config 0 29434 NULL
140177 +disable_so_ds1305_set_time_fndecl_29436 ds1305_set_time fndecl 0 29436 NULL
140178 +disable_so_add_sctp_bind_addr_fndecl_29438 add_sctp_bind_addr fndecl 0-3 29438 NULL
140179 +disable_so___virtio32_to_cpu_fndecl_29440 __virtio32_to_cpu fndecl 0-2 29440 NULL
140180 +disable_so_phonet_address_lookup_fndecl_29442 phonet_address_lookup fndecl 2 29442 NULL
140181 +disable_so_max_timeout_rc_dev_29444 max_timeout rc_dev 0 29444 NULL
140182 +disable_so_address_lo_ips_enh_sglist_29453 address_lo ips_enh_sglist 0 29453 NULL
140183 +disable_so_cdrom_is_random_writable_fndecl_29454 cdrom_is_random_writable fndecl 0 29454 NULL
140184 +disable_so_devblksize_log2_squashfs_sb_info_29455 devblksize_log2 squashfs_sb_info 0 29455 NULL
140185 +disable_so_ps_pspoll_timeouts_read_fndecl_29459 ps_pspoll_timeouts_read fndecl 3-0 29459 NULL
140186 +disable_so_kvm_apic_has_interrupt_fndecl_29462 kvm_apic_has_interrupt fndecl 0 29462 NULL
140187 +disable_so_max6902_read_time_fndecl_29464 max6902_read_time fndecl 0 29464 NULL
140188 +disable_so_get_bit_address_fndecl_29473 get_bit_address fndecl 2 29473 NULL
140189 +disable_so_last_sample_time_vardecl_smscoreapi_c_29477 last_sample_time vardecl_smscoreapi.c 0 29477 NULL nohasharray
140190 +disable_so_btree_readahead_hook_fndecl_29477 btree_readahead_hook fndecl 3-4 29477 &disable_so_last_sample_time_vardecl_smscoreapi_c_29477
140191 +disable_so_final_crypto_ahash_29478 final crypto_ahash 0 29478 NULL
140192 +disable_so_sum_sched_runtime_signal_struct_29480 sum_sched_runtime signal_struct 0 29480 NULL
140193 +disable_so_status_addr_req_29482 status addr_req 0 29482 NULL
140194 +disable_so_micd_dbtime_arizona_pdata_29495 micd_dbtime arizona_pdata 0 29495 NULL
140195 +disable_so_tqi_burst_time_ath5k_txq_info_29499 tqi_burst_time ath5k_txq_info 0 29499 NULL
140196 +disable_so_rs5c372_rtc_read_time_fndecl_29505 rs5c372_rtc_read_time fndecl 0 29505 NULL
140197 +disable_so_pi_write_regr_fndecl_29517 pi_write_regr fndecl 4 29517 NULL
140198 +disable_so_used_cells_ti_tscadc_dev_29522 used_cells ti_tscadc_dev 0 29522 NULL
140199 +disable_so_delay_to_eeprom_index_fndecl_29523 delay_to_eeprom_index fndecl 1 29523 NULL
140200 +disable_so_devfreq_event_get_edev_count_fndecl_29524 devfreq_event_get_edev_count fndecl 0 29524 NULL
140201 +disable_so_pci_enable_msix_range_fndecl_29535 pci_enable_msix_range fndecl 0-4-3 29535 NULL
140202 +disable_so_last_stats_time_ocrdma_dev_29544 last_stats_time ocrdma_dev 0 29544 NULL
140203 +disable_so_sb_c_bitmap_hpfs_sb_info_29558 sb_c_bitmap hpfs_sb_info 0 29558 NULL
140204 +disable_so_submit_time_us_bbio_29575 submit_time_us bbio 0 29575 NULL
140205 +disable_so_bitmap_remap_fndecl_29578 bitmap_remap fndecl 5 29578 NULL
140206 +disable_so_ath_force_no_ir_freq_fndecl_29580 ath_force_no_ir_freq fndecl 2 29580 NULL
140207 +disable_so_time_slice_start_ieee80211_sta_tx_tspec_29586 time_slice_start ieee80211_sta_tx_tspec 0 29586 NULL
140208 +disable_so_mlx4_get_roce_gid_from_slave_fndecl_29587 mlx4_get_roce_gid_from_slave fndecl 2-3 29587 NULL
140209 +disable_so_signalfd_read_fndecl_29589 signalfd_read fndecl 0 29589 NULL
140210 +disable_so_iscsi_nacl_attrib_show_random_datain_seq_offsets_fndecl_29602 iscsi_nacl_attrib_show_random_datain_seq_offsets fndecl 0 29602 NULL
140211 +disable_so_it913x_sleep_fndecl_29615 it913x_sleep fndecl 0 29615 NULL
140212 +disable_so_phy_addr_external_netdev_private_29618 phy_addr_external netdev_private 0 29618 NULL
140213 +disable_so_ssb_clockspeed_fndecl_29627 ssb_clockspeed fndecl 0 29627 NULL
140214 +disable_so_tx_int_delay_e1000_adapter_29628 tx_int_delay e1000_adapter 0 29628 NULL
140215 +disable_so_qlcnic_83xx_idc_check_timeout_fndecl_29633 qlcnic_83xx_idc_check_timeout fndecl 0 29633 NULL
140216 +disable_so_tegra_wdt_get_timeleft_fndecl_29649 tegra_wdt_get_timeleft fndecl 0 29649 NULL
140217 +disable_so_get_intermediate_cpufreq_driver_29653 get_intermediate cpufreq_driver 0 29653 NULL
140218 +disable_so_lpfc_debugfs_start_time_vardecl_lpfc_debugfs_c_29655 lpfc_debugfs_start_time vardecl_lpfc_debugfs.c 0 29655 NULL
140219 +disable_so_check_addr_fndecl_29658 check_addr fndecl 3-4 29658 NULL
140220 +disable_so_irlap_start_poll_timer_fndecl_29663 irlap_start_poll_timer fndecl 2 29663 NULL nohasharray
140221 +disable_so_mlx5_query_node_guid_fndecl_29663 mlx5_query_node_guid fndecl 0 29663 &disable_so_irlap_start_poll_timer_fndecl_29663
140222 +disable_so_read_addr_qla8044_minidump_entry_rdrom_29676 read_addr qla8044_minidump_entry_rdrom 0 29676 NULL nohasharray
140223 +disable_so_to_addr_param_sctp_af_29676 to_addr_param sctp_af 0 29676 &disable_so_read_addr_qla8044_minidump_entry_rdrom_29676
140224 +disable_so_buf_addr_mlx4_ib_create_cq_29678 buf_addr mlx4_ib_create_cq 0 29678 NULL
140225 +disable_so_forward_delay_timer_value___port_info_29680 forward_delay_timer_value __port_info 0 29680 NULL
140226 +disable_so_packet_life_time_ib_sa_mcmember_rec_29682 packet_life_time ib_sa_mcmember_rec 0 29682 NULL
140227 +disable_so_batadv_hash_dat_fndecl_29684 batadv_hash_dat fndecl 0-2 29684 NULL
140228 +disable_so_qxl_bo_physical_address_fndecl_29696 qxl_bo_physical_address fndecl 0-3 29696 NULL
140229 +disable_so_hspi_status_check_timeout_fndecl_29712 hspi_status_check_timeout fndecl 0 29712 NULL
140230 +disable_so_nes_addr_resolve_neigh_fndecl_29717 nes_addr_resolve_neigh fndecl 0-2-3 29717 NULL
140231 +disable_so_hash2pos_fndecl_29725 hash2pos fndecl 0-2-3 29725 NULL
140232 +disable_so_bcma_chipco_watchdog_timer_set_fndecl_29730 bcma_chipco_watchdog_timer_set fndecl 2-0 29730 NULL
140233 +disable_so_hor_addr_via_display_timing_29736 hor_addr via_display_timing 0 29736 NULL
140234 +disable_so_ceph_str_hash_fndecl_29742 ceph_str_hash fndecl 0-3 29742 NULL
140235 +disable_so_qla2x00_gid_pt_fndecl_29752 qla2x00_gid_pt fndecl 0 29752 NULL nohasharray
140236 +disable_so_ocfs2_xattr_name_hash_fndecl_29752 ocfs2_xattr_name_hash fndecl 0-3 29752 &disable_so_qla2x00_gid_pt_fndecl_29752
140237 +disable_so_kstrtouint_from_user_fndecl_29755 kstrtouint_from_user fndecl 0-2 29755 NULL
140238 +disable_so_get_timeout_clock_sdhci_ops_29760 get_timeout_clock sdhci_ops 0 29760 NULL nohasharray
140239 +disable_so_curfreq_raremono_device_29760 curfreq raremono_device 0 29760 &disable_so_get_timeout_clock_sdhci_ops_29760
140240 +disable_so_send_time_batadv_forw_packet_29762 send_time batadv_forw_packet 0 29762 NULL
140241 +disable_so_ms_brcms_timer_29763 ms brcms_timer 0 29763 NULL nohasharray
140242 +disable_so_lp872x_get_timestep_usec_fndecl_29763 lp872x_get_timestep_usec fndecl 0 29763 &disable_so_ms_brcms_timer_29763
140243 +disable_so_bmap_address_space_operations_29766 bmap address_space_operations 2 29766 NULL
140244 +disable_so_ds1390_set_time_fndecl_29768 ds1390_set_time fndecl 0 29768 NULL
140245 +disable_so_release_jiffies_dvb_frontend_private_29775 release_jiffies dvb_frontend_private 0 29775 NULL
140246 +disable_so_hsw_pcm_runtime_resume_fndecl_29777 hsw_pcm_runtime_resume fndecl 0 29777 NULL
140247 +disable_so_pcan_usb_set_bittiming_fndecl_29781 pcan_usb_set_bittiming fndecl 0 29781 NULL
140248 +disable_so_pmcraid_disable_interrupts_fndecl_29788 pmcraid_disable_interrupts fndecl 2 29788 NULL
140249 +disable_so_bit_line_usb_fifo_29792 bit_line usb_fifo 0 29792 NULL
140250 +disable_so_hash_name_fndecl_29814 hash_name fndecl 0 29814 NULL
140251 +disable_so_t4vf_set_addr_hash_fndecl_29821 t4vf_set_addr_hash fndecl 0-2 29821 NULL
140252 +disable_so_bit_length_acpi_object_region_field_29824 bit_length acpi_object_region_field 0 29824 NULL
140253 +disable_so_native_read_tsc_fndecl_29825 native_read_tsc fndecl 0 29825 NULL
140254 +disable_so_sha256_base_do_update_fndecl_29849 sha256_base_do_update fndecl 3 29849 NULL
140255 +disable_so_timeout_ip_vs_conn_29852 timeout ip_vs_conn 0 29852 NULL
140256 +disable_so_conn_db_addr_hi_fcoe_kwqe_conn_offload2_29864 conn_db_addr_hi fcoe_kwqe_conn_offload2 0 29864 NULL
140257 +disable_so_timeout_type_timeout_parms_29877 timeout_type timeout_parms 0 29877 NULL
140258 +disable_so_arch_apei_filter_addr_vardecl_29884 arch_apei_filter_addr vardecl 0 29884 NULL
140259 +disable_so_crypto_shash_import_fndecl_29885 crypto_shash_import fndecl 0 29885 NULL
140260 +disable_so_ktime_get_ns_fndecl_29890 ktime_get_ns fndecl 0 29890 NULL
140261 +disable_so_store_scaling_min_freq_fndecl_29892 store_scaling_min_freq fndecl 0-3 29892 NULL
140262 +disable_so_nfsd_map_name_to_uid_fndecl_29920 nfsd_map_name_to_uid fndecl 0 29920 NULL
140263 +disable_so_min_interrupt_in_interval_vardecl_ldusb_c_29924 min_interrupt_in_interval vardecl_ldusb.c 0 29924 NULL
140264 +disable_so_cdv_intel_clock_fndecl_29931 cdv_intel_clock fndecl 1 29931 NULL
140265 +disable_so_di_mtime_efs_dinode_29934 di_mtime efs_dinode 0 29934 NULL nohasharray
140266 +disable_so_hpet_freq_vardecl_hpet_c_29934 hpet_freq vardecl_hpet.c 0 29934 &disable_so_di_mtime_efs_dinode_29934
140267 +disable_so_shash_async_setkey_fndecl_29939 shash_async_setkey fndecl 0-3 29939 NULL
140268 +disable_so_qs_btimelimit_fs_quota_statv_29943 qs_btimelimit fs_quota_statv 0 29943 NULL
140269 +disable_so_addr_mpr121_init_register_29945 addr mpr121_init_register 0 29945 NULL
140270 +disable_so_pixelclock_v4l2_bt_timings_29967 pixelclock v4l2_bt_timings 0 29967 NULL
140271 +disable_so_spi_imx_clkdiv_2_fndecl_29968 spi_imx_clkdiv_2 fndecl 1-2 29968 NULL
140272 +disable_so_ed_uuid_drbd_device_29970 ed_uuid drbd_device 0 29970 NULL
140273 +disable_so_timestamp_nfs_release_lockowner_data_29972 timestamp nfs_release_lockowner_data 0 29972 NULL
140274 +disable_so_smp_send_reschedule_smp_ops_29981 smp_send_reschedule smp_ops 1 29981 NULL
140275 +disable_so_lm3533_led_delay_set_fndecl_29984 lm3533_led_delay_set fndecl 0-2 29984 NULL
140276 +disable_so_rx_errors_rtnl_link_stats64_29988 rx_errors rtnl_link_stats64 0 29988 NULL
140277 +disable_so_fm10k_read_reg_fndecl_29989 fm10k_read_reg fndecl 0-2 29989 NULL
140278 +disable_so_timeout_jiffies_tifm_ms_29995 timeout_jiffies tifm_ms 0 29995 NULL nohasharray
140279 +disable_so_confq_pbl_base_addr_hi_fcoe_kwqe_conn_offload4_29995 confq_pbl_base_addr_hi fcoe_kwqe_conn_offload4 0 29995 &disable_so_timeout_jiffies_tifm_ms_29995
140280 +disable_so_wait_on_bit_lock_fndecl_30009 wait_on_bit_lock fndecl 0 30009 NULL
140281 +disable_so_rx8025_get_clock_adjust_fndecl_30011 rx8025_get_clock_adjust fndecl 0 30011 NULL
140282 +disable_so_sem_ctime_sem_array_30014 sem_ctime sem_array 0 30014 NULL
140283 +disable_so_sleep_mask_bma180_part_info_30016 sleep_mask bma180_part_info 0 30016 NULL
140284 +disable_so_demod_address_zl10353_config_30017 demod_address zl10353_config 0 30017 NULL
140285 +disable_so_msr_amixer_desc_30027 msr amixer_desc 0 30027 NULL
140286 +disable_so_diolan_usb_transfer_fndecl_30033 diolan_usb_transfer fndecl 0 30033 NULL
140287 +disable_so_mlx4_get_slave_from_roce_gid_fndecl_30035 mlx4_get_slave_from_roce_gid fndecl 2 30035 NULL
140288 +disable_so_or51211_read_signal_strength_fndecl_30044 or51211_read_signal_strength fndecl 0 30044 NULL
140289 +disable_so_panel_power_up_delay_intel_dp_30048 panel_power_up_delay intel_dp 0 30048 NULL
140290 +disable_so_bit_bmove_fndecl_30057 bit_bmove fndecl 3-4-5-6-7-8 30057 NULL
140291 +disable_so_posix_cpu_clock_getres_fndecl_30065 posix_cpu_clock_getres fndecl 1 30065 NULL
140292 +disable_so_ktime_divns_fndecl_30067 ktime_divns fndecl 0-2 30067 NULL
140293 +disable_so_vsync_offset_hi_oaktrail_timing_info_30079 vsync_offset_hi oaktrail_timing_info 0 30079 NULL
140294 +disable_so_msr_host_kernel_gs_base_vcpu_vmx_30082 msr_host_kernel_gs_base vcpu_vmx 0 30082 NULL
140295 +disable_so_r6d_val_fc2580_freq_regs_30084 r6d_val fc2580_freq_regs 0 30084 NULL
140296 +disable_so_qlcnic_pci_get_crb_addr_2M_fndecl_30093 qlcnic_pci_get_crb_addr_2M fndecl 2 30093 NULL
140297 +disable_so_btrfs_commit_inode_delayed_items_fndecl_30109 btrfs_commit_inode_delayed_items fndecl 0 30109 NULL
140298 +disable_so_usec_delay_e1000_mbx_info_30132 usec_delay e1000_mbx_info 0 30132 NULL
140299 +disable_so_inet6_rtm_getaddr_fndecl_30136 inet6_rtm_getaddr fndecl 0 30136 NULL
140300 +disable_so_busaddr_reply_queue_buffer_30140 busaddr reply_queue_buffer 0 30140 NULL
140301 +disable_so_show_pwm_auto_spinup_time_fndecl_30149 show_pwm_auto_spinup_time fndecl 0 30149 NULL
140302 +disable_so_addr_rds_iovec_30161 addr rds_iovec 0 30161 NULL
140303 +disable_so___nlm_hash_addr4_fndecl_30164 __nlm_hash_addr4 fndecl 0 30164 NULL
140304 +disable_so_ctime_cs_msdos_dir_entry_30167 ctime_cs msdos_dir_entry 0 30167 NULL
140305 +disable_so_next_otg_timer_ci_hdrc_30174 next_otg_timer ci_hdrc 0 30174 NULL
140306 +disable_so_select_addr_qla82xx_md_entry_mux_30183 select_addr qla82xx_md_entry_mux 0 30183 NULL
140307 +disable_so_qi_itimelimit_xfs_quotainfo_30196 qi_itimelimit xfs_quotainfo 0 30196 NULL
140308 +disable_so_iowrite32_fndecl_30197 iowrite32 fndecl 1 30197 NULL
140309 +disable_so_hash_ipportip6_expire_fndecl_30205 hash_ipportip6_expire fndecl 4 30205 NULL
140310 +disable_so_argument_acpi_signal_fatal_info_30208 argument acpi_signal_fatal_info 0 30208 NULL
140311 +disable_so_btree_write_cache_pages_fndecl_30231 btree_write_cache_pages fndecl 0 30231 NULL
140312 +disable_so_clock_audioformat_30236 clock audioformat 0 30236 NULL
140313 +disable_so_to_retries_rpc_timeout_30265 to_retries rpc_timeout 0 30265 NULL
140314 +disable_so_last_moder_jiffies_mlx4_en_priv_30269 last_moder_jiffies mlx4_en_priv 0 30269 NULL nohasharray
140315 +disable_so_vivid_radio_rx_s_hw_freq_seek_fndecl_30269 vivid_radio_rx_s_hw_freq_seek fndecl 0 30269 &disable_so_last_moder_jiffies_mlx4_en_priv_30269
140316 +disable_so_start_empty_time_cfqg_stats_30276 start_empty_time cfqg_stats 0 30276 NULL nohasharray
140317 +disable_so_i2c_addr_dib7000m_state_30276 i2c_addr dib7000m_state 0 30276 &disable_so_start_empty_time_cfqg_stats_30276
140318 +disable_so_ext_phy_addr_amd8111e_priv_30286 ext_phy_addr amd8111e_priv 0 30286 NULL
140319 +disable_so___account_cfs_rq_runtime_fndecl_30291 __account_cfs_rq_runtime fndecl 2 30291 NULL
140320 +disable_so_snd_pcm_delay_fndecl_30298 snd_pcm_delay fndecl 0 30298 NULL
140321 +disable_so_lpfc_cr_delay_store_fndecl_30310 lpfc_cr_delay_store fndecl 0 30310 NULL
140322 +disable_so_uartlite_outbe32_fndecl_30324 uartlite_outbe32 fndecl 1 30324 NULL
140323 +disable_so_intel_runtime_resume_fndecl_30334 intel_runtime_resume fndecl 0 30334 NULL
140324 +disable_so_hv_tsc_page_kvm_arch_30336 hv_tsc_page kvm_arch 0 30336 NULL
140325 +disable_so_snprintf_int_array_fndecl_30344 snprintf_int_array fndecl 2 30344 NULL
140326 +disable_so___hw_addr_sync_one_fndecl_30350 __hw_addr_sync_one fndecl 0-3 30350 NULL
140327 +disable_so_tuner_addr_em28xx_board_30367 tuner_addr em28xx_board 0 30367 NULL
140328 +disable_so_stat_params_addr_hi_fcoe_kwqe_stat_30370 stat_params_addr_hi fcoe_kwqe_stat 0 30370 NULL
140329 +disable_so_tv_hsync_delay2_nv04_crtc_reg_30375 tv_hsync_delay2 nv04_crtc_reg 0 30375 NULL
140330 +disable_so_wlc_phy_table_addr_fndecl_30378 wlc_phy_table_addr fndecl 2-3-4-5-6 30378 NULL
140331 +disable_so_rsa_setkey_fndecl_30386 rsa_setkey fndecl 3 30386 NULL
140332 +disable_so_bcma_pmu_get_alp_clock_fndecl_30397 bcma_pmu_get_alp_clock fndecl 0 30397 NULL
140333 +disable_so_timeout_nft_set_30398 timeout nft_set 0 30398 NULL
140334 +disable_so_cm_create_timewait_info_fndecl_30403 cm_create_timewait_info fndecl 1 30403 NULL
140335 +disable_so_start_time_bfa_diag_dport_result_s_30404 start_time bfa_diag_dport_result_s 0 30404 NULL
140336 +disable_so_fw_schedule_bm_work_fndecl_30422 fw_schedule_bm_work fndecl 2 30422 NULL
140337 +disable_so_xs_get_random_port_fndecl_30424 xs_get_random_port fndecl 0 30424 NULL
140338 +disable_so_ba0_addr_snd_cs46xx_30426 ba0_addr snd_cs46xx 0 30426 NULL
140339 +disable_so_rx_interframe_timeout_wil6210_priv_30430 rx_interframe_timeout wil6210_priv 0 30430 NULL
140340 +disable_so_xfs_uuid_mount_fndecl_30439 xfs_uuid_mount fndecl 0 30439 NULL nohasharray
140341 +disable_so_avtab_hash_fndecl_30439 avtab_hash fndecl 0-2 30439 &disable_so_xfs_uuid_mount_fndecl_30439
140342 +disable_so_snd_seq_queue_timer_close_fndecl_30450 snd_seq_queue_timer_close fndecl 1 30450 NULL nohasharray
140343 +disable_so_gid_cap_mthca_init_ib_param_30450 gid_cap mthca_init_ib_param 0 30450 &disable_so_snd_seq_queue_timer_close_fndecl_30450
140344 +disable_so_powerdown_delay_divider_sta350_platform_data_30459 powerdown_delay_divider sta350_platform_data 0 30459 NULL nohasharray
140345 +disable_so_acpi_pm_device_sleep_state_fndecl_30459 acpi_pm_device_sleep_state fndecl 0 30459 &disable_so_powerdown_delay_divider_sta350_platform_data_30459
140346 +disable_so__regulator_get_enable_time_fndecl_30467 _regulator_get_enable_time fndecl 0 30467 NULL
140347 +disable_so_hpet_set_alarm_time_fndecl_30469 hpet_set_alarm_time fndecl 3-2-1 30469 NULL
140348 +disable_so_ctime_nsec_ubifs_ino_node_30480 ctime_nsec ubifs_ino_node 0 30480 NULL
140349 +disable_so_ocfb_writereg_fndecl_30484 ocfb_writereg fndecl 3 30484 NULL
140350 +disable_so_i2c_smbus_read_word_data_fndecl_30505 i2c_smbus_read_word_data fndecl 0-2 30505 NULL nohasharray
140351 +disable_so_r13_kvm_regs_30505 r13 kvm_regs 0 30505 &disable_so_i2c_smbus_read_word_data_fndecl_30505
140352 +disable_so_cb_gsc_addr_30507 cb gsc_addr 0 30507 NULL
140353 +disable_so_freq_mwifiex_chan_freq_power_30518 freq mwifiex_chan_freq_power 0 30518 NULL
140354 +disable_so_fflp_hash_clear_fndecl_30528 fflp_hash_clear fndecl 0 30528 NULL
140355 +disable_so_time_stamp_ixgb_buffer_30530 time_stamp ixgb_buffer 0 30530 NULL
140356 +disable_so_lbs_sleepparams_read_fndecl_30539 lbs_sleepparams_read fndecl 3-0 30539 NULL
140357 +disable_so_extract_freq_fndecl_30555 extract_freq fndecl 0-1 30555 NULL
140358 +disable_so_ndiv_int_pmu1_plltab_entry_30559 ndiv_int pmu1_plltab_entry 0 30559 NULL
140359 +disable_so_u1_timeout_store_fndecl_30569 u1_timeout_store fndecl 0-4 30569 NULL
140360 +disable_so_queue_working_time_show_fndecl_30574 queue_working_time_show fndecl 0 30574 NULL
140361 +disable_so_addr_atiixp_30579 addr atiixp 0 30579 NULL
140362 +disable_so_c67x00_ll_write_mem_le16_fndecl_30584 c67x00_ll_write_mem_le16 fndecl 2-4 30584 NULL
140363 +disable_so_demod_address_atbm8830_config_30586 demod_address atbm8830_config 0 30586 NULL
140364 +disable_so_crypto_hash_digest_fndecl_30590 crypto_hash_digest fndecl 0-3 30590 NULL
140365 +disable_so_addr_filter__MGSL_PARAMS_30592 addr_filter _MGSL_PARAMS 0 30592 NULL
140366 +disable_so_clock_khz_dib0070_config_30609 clock_khz dib0070_config 0 30609 NULL
140367 +disable_so_sha1_mb_final_fndecl_30610 sha1_mb_final fndecl 0 30610 NULL
140368 +disable_so_tw_rcv_nxt_tcp_timewait_sock_30612 tw_rcv_nxt tcp_timewait_sock 0 30612 NULL
140369 +disable_so_xtal_freq_stb0899_config_30613 xtal_freq stb0899_config 0 30613 NULL
140370 +disable_so_di_ctime_qnx6_inode_entry_30614 di_ctime qnx6_inode_entry 0 30614 NULL
140371 +disable_so_start_time_lpfc_scsi_buf_30621 start_time lpfc_scsi_buf 0 30621 NULL
140372 +disable_so_xfs_btree_log_keys_fndecl_30625 xfs_btree_log_keys fndecl 3-4 30625 NULL
140373 +disable_so_pcpu_chunk_addr_fndecl_30628 pcpu_chunk_addr fndecl 0-2-3 30628 NULL
140374 +disable_so_day_timestamp_30633 day timestamp 0 30633 NULL
140375 +disable_so_rds_cong_from_addr_fndecl_30634 rds_cong_from_addr fndecl 1 30634 NULL
140376 +disable_so_tx_dma_addr_smsc9420_pdata_30649 tx_dma_addr smsc9420_pdata 0 30649 NULL
140377 +disable_so_xact_addr_filt_port_info_30664 xact_addr_filt port_info 0 30664 NULL
140378 +disable_so_slot_time_rtl8180_priv_30669 slot_time rtl8180_priv 0 30669 NULL
140379 +disable_so_store_guid_fndecl_30675 store_guid fndecl 0 30675 NULL
140380 +disable_so_input_addr_to_csrow_fndecl_30677 input_addr_to_csrow fndecl 0-2 30677 NULL
140381 +disable_so_sq_read_base_addr_a1_btmrvl_sdio_card_reg_30692 sq_read_base_addr_a1 btmrvl_sdio_card_reg 0 30692 NULL
140382 +disable_so_fq_codel_hash_fndecl_30698 fq_codel_hash fndecl 0 30698 NULL
140383 +disable_so_btrfs_add_delayed_extent_op_fndecl_30699 btrfs_add_delayed_extent_op fndecl 0-3-4 30699 NULL
140384 +disable_so_enabled_hrtimer_events_fotg210_hcd_30705 enabled_hrtimer_events fotg210_hcd 0 30705 NULL
140385 +disable_so_shift_sm501_clock_30710 shift sm501_clock 0 30710 NULL
140386 +disable_so_tov_in_jiffies_tpacket_kbdq_core_30716 tov_in_jiffies tpacket_kbdq_core 0 30716 NULL nohasharray
140387 +disable_so_rqq_addr_lo_addr_ctrl_blk_30716 rqq_addr_lo addr_ctrl_blk 0 30716 &disable_so_tov_in_jiffies_tpacket_kbdq_core_30716
140388 +disable_so_fill_addr_fndecl_30730 fill_addr fndecl 0-3-4-6 30730 NULL
140389 +disable_so_policy_hash_bysel_fndecl_30767 policy_hash_bysel fndecl 3 30767 NULL
140390 +disable_so_flags_to_set_btrfs_delayed_extent_op_30771 flags_to_set btrfs_delayed_extent_op 0 30771 NULL
140391 +disable_so_blk_mq_alloc_bitmap_fndecl_30774 blk_mq_alloc_bitmap fndecl 2 30774 NULL
140392 +disable_so_btrfs_add_delayed_data_ref_fndecl_30775 btrfs_add_delayed_data_ref fndecl 0-11-3-4-5-6-7-8 30775 NULL
140393 +disable_so_pm_runtime_get_fndecl_30787 pm_runtime_get fndecl 0 30787 NULL
140394 +disable_so_dln2_spi_runtime_suspend_fndecl_30789 dln2_spi_runtime_suspend fndecl 0 30789 NULL
140395 +disable_so_rq_page_table_addr_hi_iscsi_kwqe_conn_offload2_30790 rq_page_table_addr_hi iscsi_kwqe_conn_offload2 0 30790 NULL
140396 +disable_so_crypto_authenc_esn_decrypt_fndecl_30793 crypto_authenc_esn_decrypt fndecl 0 30793 NULL
140397 +disable_so_brcmf_cfg80211_wait_vif_event_timeout_fndecl_30794 brcmf_cfg80211_wait_vif_event_timeout fndecl 3-0 30794 NULL
140398 +disable_so_sctp_getsockopt_nodelay_fndecl_30795 sctp_getsockopt_nodelay fndecl 0 30795 NULL nohasharray
140399 +disable_so_sll_pkttype_sockaddr_ll_30795 sll_pkttype sockaddr_ll 0 30795 &disable_so_sctp_getsockopt_nodelay_fndecl_30795
140400 +disable_so_txfunaddr_musb_csr_regs_30797 txfunaddr musb_csr_regs 0 30797 NULL
140401 +disable_so_hash_phys_wd719x_30798 hash_phys wd719x 0 30798 NULL
140402 +disable_so_io_base_address_info_30800 io_base address_info 0 30800 NULL
140403 +disable_so_dummy_buffer_addr_lo_iscsi_kwqe_init1_30804 dummy_buffer_addr_lo iscsi_kwqe_init1 0 30804 NULL
140404 +disable_so_root_btrfs_delayed_tree_ref_30811 root btrfs_delayed_tree_ref 0 30811 NULL nohasharray
140405 +disable_so_sr_bit_offset_ocfs2_suballoc_result_30811 sr_bit_offset ocfs2_suballoc_result 0 30811 &disable_so_root_btrfs_delayed_tree_ref_30811
140406 +disable_so_mmc_test_random_write_perf_fndecl_30814 mmc_test_random_write_perf fndecl 0 30814 NULL
140407 +disable_so_block_num_ib_sa_guidinfo_rec_30816 block_num ib_sa_guidinfo_rec 0 30816 NULL
140408 +disable_so_decode_attr_time_metadata_fndecl_30823 decode_attr_time_metadata fndecl 0 30823 NULL nohasharray
140409 +disable_so_i40e_get_port_mac_addr_fndecl_30823 i40e_get_port_mac_addr fndecl 0 30823 &disable_so_decode_attr_time_metadata_fndecl_30823
140410 +disable_so_first_frag_time_ieee80211_fragment_entry_30835 first_frag_time ieee80211_fragment_entry 0 30835 NULL nohasharray
140411 +disable_so_ccp_crypto_success_fndecl_30835 ccp_crypto_success fndecl 1 30835 &disable_so_first_frag_time_ieee80211_fragment_entry_30835 nohasharray
140412 +disable_so_recent_entry_hash4_fndecl_30835 recent_entry_hash4 fndecl 0 30835 &disable_so_ccp_crypto_success_fndecl_30835
140413 +disable_so_rp0_freq_intel_gen6_power_mgmt_30837 rp0_freq intel_gen6_power_mgmt 0 30837 NULL
140414 +disable_so_dm_btree_walk_fndecl_30840 dm_btree_walk fndecl 0-2 30840 NULL
140415 +disable_so_hid_descriptor_address_i2c_hid_platform_data_30846 hid_descriptor_address i2c_hid_platform_data 0 30846 NULL
140416 +disable_so_address_acpi_mcfg_allocation_30855 address acpi_mcfg_allocation 0 30855 NULL
140417 +disable_so_hpfs_truncate_btree_fndecl_30857 hpfs_truncate_btree fndecl 2-4 30857 NULL
140418 +disable_so_timestamp_transaction_30860 timestamp transaction 0 30860 NULL
140419 +disable_so_crypto_pcbc_encrypt_inplace_fndecl_30862 crypto_pcbc_encrypt_inplace fndecl 0 30862 NULL
140420 +disable_so_part_time_mmc_ext_csd_30871 part_time mmc_ext_csd 0 30871 NULL
140421 +disable_so_vpd_paddr_high_lpfc_mbx_read_rev_30896 vpd_paddr_high lpfc_mbx_read_rev 0 30896 NULL
140422 +disable_so_addr_nvkm_fifo_chan_30902 addr nvkm_fifo_chan 0 30902 NULL
140423 +disable_so_crypto_register_algs_fndecl_30905 crypto_register_algs fndecl 0 30905 NULL nohasharray
140424 +disable_so_dhash_entries_vardecl_dcache_c_30905 dhash_entries vardecl_dcache.c 0 30905 &disable_so_crypto_register_algs_fndecl_30905
140425 +disable_so_bank_base_capture_addr_snd_ymfpci_30915 bank_base_capture_addr snd_ymfpci 0 30915 NULL
140426 +disable_so_t2_hash_tbl_addr_hi_fcoe_kwqe_init2_30918 t2_hash_tbl_addr_hi fcoe_kwqe_init2 0 30918 NULL nohasharray
140427 +disable_so_nilfs_btree_lookup_fndecl_30918 nilfs_btree_lookup fndecl 0-2 30918 &disable_so_t2_hash_tbl_addr_hi_fcoe_kwqe_init2_30918
140428 +disable_so_cpufreq_set_fndecl_30921 cpufreq_set fndecl 2 30921 NULL
140429 +disable_so_phys_addr_sge_fl_30927 phys_addr sge_fl 0 30927 NULL
140430 +disable_so_brcms_c_calc_ack_time_fndecl_30936 brcms_c_calc_ack_time fndecl 0-2 30936 NULL
140431 +disable_so_limit_gma_clock_funcs_30938 limit gma_clock_funcs 2 30938 NULL nohasharray
140432 +disable_so_xenbus_printf_fndecl_30938 xenbus_printf fndecl 0 30938 &disable_so_limit_gma_clock_funcs_30938
140433 +disable_so_qlcnic_decode_crb_addr_fndecl_30939 qlcnic_decode_crb_addr fndecl 0-1 30939 NULL
140434 +disable_so_last_sleep_jiffies_rtl_ps_ctl_30947 last_sleep_jiffies rtl_ps_ctl 0 30947 NULL nohasharray
140435 +disable_so___virtio64_to_cpu_fndecl_30947 __virtio64_to_cpu fndecl 0 30947 &disable_so_last_sleep_jiffies_rtl_ps_ctl_30947
140436 +disable_so_do_one_ahash_op_fndecl_30974 do_one_ahash_op fndecl 0-2 30974 NULL
140437 +disable_so_dev_bus_addr_gnttab_map_grant_ref_30975 dev_bus_addr gnttab_map_grant_ref 0 30975 NULL
140438 +disable_so_sctp_getsockopt_delayed_ack_fndecl_30979 sctp_getsockopt_delayed_ack fndecl 2-0 30979 NULL
140439 +disable_so_mclk_div_cfb_info_30983 mclk_div cfb_info 0 30983 NULL
140440 +disable_so_HYPERVISOR_update_va_mapping_fndecl_30985 HYPERVISOR_update_va_mapping fndecl 1 30985 NULL
140441 +disable_so_xfrm_addr_any_fndecl_30992 xfrm_addr_any fndecl 2 30992 NULL
140442 +disable_so_cyapa_gen5_deep_sleep_fndecl_30993 cyapa_gen5_deep_sleep fndecl 0 30993 NULL
140443 +disable_so_addr_unlock1_cfi_private_30996 addr_unlock1 cfi_private 0 30996 NULL
140444 +disable_so_adc_cell_ti_tscadc_dev_31010 adc_cell ti_tscadc_dev 0 31010 NULL
140445 +disable_so_vpe_runtime_get_fndecl_31015 vpe_runtime_get fndecl 0 31015 NULL
140446 +disable_so_crypto_cts_module_init_fndecl_31019 crypto_cts_module_init fndecl 0 31019 NULL
140447 +disable_so_show_fan_stop_time_fndecl_31023 show_fan_stop_time fndecl 0 31023 NULL
140448 +disable_so_addr_bnx2_fw_file_section_31025 addr bnx2_fw_file_section 0 31025 NULL
140449 +disable_so_seg_addr_xhci_erst_entry_31037 seg_addr xhci_erst_entry 0 31037 NULL
140450 +disable_so_fb_get_hblank_by_hfreq_fndecl_31039 fb_get_hblank_by_hfreq fndecl 0-1-2 31039 NULL
140451 +disable_so_addr_hif_scatter_req_31042 addr hif_scatter_req 0 31042 NULL
140452 +disable_so_sg_page_iter_dma_address_fndecl_31047 sg_page_iter_dma_address fndecl 0 31047 NULL
140453 +disable_so_btrfsic_block_hashtable_lookup_fndecl_31074 btrfsic_block_hashtable_lookup fndecl 2 31074 NULL
140454 +disable_so_tm6000_set_reg_fndecl_31090 tm6000_set_reg fndecl 0-3-4 31090 NULL
140455 +disable_so_sense_buf_phys_addr_lo_megasas_io_frame_31098 sense_buf_phys_addr_lo megasas_io_frame 0 31098 NULL
140456 +disable_so_batadv_iv_ogm_emit_send_time_fndecl_31100 batadv_iv_ogm_emit_send_time fndecl 0 31100 NULL
140457 +disable_so_pcf8563_rtc_set_time_fndecl_31101 pcf8563_rtc_set_time fndecl 0 31101 NULL
140458 +disable_so_s_extPosition_udf_bitmap_31104 s_extPosition udf_bitmap 0 31104 NULL
140459 +disable_so_base_io_addr__hp_host_info_31105 base_io_addr _hp_host_info 0 31105 NULL
140460 +disable_so_tsi721_omsg_interrupt_disable_fndecl_31108 tsi721_omsg_interrupt_disable fndecl 3-2 31108 NULL
140461 +disable_so_ac_etime_acct_v3_31115 ac_etime acct_v3 0 31115 NULL
140462 +disable_so_io_bitmap_a_vmcs12_31120 io_bitmap_a vmcs12 0 31120 NULL
140463 +disable_so_vddci_radeon_clock_and_voltage_limits_31124 vddci radeon_clock_and_voltage_limits 0 31124 NULL
140464 +disable_so_format_snd_pcm_runtime_31130 format snd_pcm_runtime 0 31130 NULL
140465 +disable_so_ds3232_set_time_fndecl_31132 ds3232_set_time fndecl 0 31132 NULL
140466 +disable_so_mlx4_bitmap_init_fndecl_31138 mlx4_bitmap_init fndecl 0-2-3-4-5 31138 NULL
140467 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_31141 nfs4_xdr_dec_get_lease_time fndecl 0 31141 NULL
140468 +disable_so_active_ata_timing_31146 active ata_timing 0 31146 NULL
140469 +disable_so_cpuidle_register_driver_fndecl_31155 cpuidle_register_driver fndecl 0 31155 NULL
140470 +disable_so_sha1_ssse3_mod_init_fndecl_31158 sha1_ssse3_mod_init fndecl 0 31158 NULL
140471 +disable_so_trust_timeout_wusbhc_31165 trust_timeout wusbhc 0 31165 NULL
140472 +disable_so___crypto_memneq_generic_fndecl_31174 __crypto_memneq_generic fndecl 3 31174 NULL
140473 +disable_so_hash_ipportip4_expire_fndecl_31188 hash_ipportip4_expire fndecl 4 31188 NULL
140474 +disable_so_timestamp_sniffed_purge_batadv_priv_nc_31190 timestamp_sniffed_purge batadv_priv_nc 0 31190 NULL
140475 +disable_so_i915_min_freq_get_fndecl_31193 i915_min_freq_get fndecl 0 31193 NULL
140476 +disable_so_max_scan_time_wmi_start_scan_arg_31206 max_scan_time wmi_start_scan_arg 0 31206 NULL nohasharray
140477 +disable_so_n_pins_ptp_clock_info_31206 n_pins ptp_clock_info 0 31206 &disable_so_max_scan_time_wmi_start_scan_arg_31206
140478 +disable_so_adis16136_read_frequency_fndecl_31213 adis16136_read_frequency fndecl 0 31213 NULL
140479 +disable_so_dce_v11_0_crtc_set_base_atomic_fndecl_31215 dce_v11_0_crtc_set_base_atomic fndecl 0 31215 NULL
140480 +disable_so_clock2alarm_fndecl_31223 clock2alarm fndecl 1 31223 NULL
140481 +disable_so_timeout_wait_bit_key_31247 timeout wait_bit_key 0 31247 NULL
140482 +disable_so_time_offset_fat_mount_options_31254 time_offset fat_mount_options 0 31254 NULL
140483 +disable_so_max3421_set_address_fndecl_31258 max3421_set_address fndecl 3 31258 NULL
140484 +disable_so_tick_gtod_sched_clock_data_31262 tick_gtod sched_clock_data 0 31262 NULL
140485 +disable_so_freq_usb_usbvision_31263 freq usb_usbvision 0 31263 NULL
140486 +disable_so_address_high_sbp2_target_31266 address_high sbp2_target 0 31266 NULL nohasharray
140487 +disable_so_batadv_orig_hash_add_if_fndecl_31266 batadv_orig_hash_add_if fndecl 0-2 31266 &disable_so_address_high_sbp2_target_31266
140488 +disable_so_rx8581_rtc_read_time_fndecl_31271 rx8581_rtc_read_time fndecl 0 31271 NULL
140489 +disable_so_address_acpi_madt_io_apic_31284 address acpi_madt_io_apic 0 31284 NULL
140490 +disable_so_qce_setup_regs_ahash_fndecl_31290 qce_setup_regs_ahash fndecl 0 31290 NULL
140491 +disable_so_freq_offset_khz_uhf_dib0070_config_31304 freq_offset_khz_uhf dib0070_config 0 31304 NULL
140492 +disable_so_dmaaddr_lanai_buffer_31308 dmaaddr lanai_buffer 0 31308 NULL
140493 +disable_so_selinux_mmap_addr_fndecl_31313 selinux_mmap_addr fndecl 0 31313 NULL
140494 +disable_so_wt_timeout_st21nfcb_se_info_31334 wt_timeout st21nfcb_se_info 0 31334 NULL
140495 +disable_so_baseaddr_h_mvumi_sgl_31335 baseaddr_h mvumi_sgl 0 31335 NULL
140496 +disable_so_mmc_send_relative_addr_fndecl_31338 mmc_send_relative_addr fndecl 0 31338 NULL nohasharray
140497 +disable_so_ufs_bitmap_search_fndecl_31338 ufs_bitmap_search fndecl 0-3-4 31338 &disable_so_mmc_send_relative_addr_fndecl_31338 nohasharray
140498 +disable_so_cur_tsc_offset_kvm_arch_31338 cur_tsc_offset kvm_arch 0 31338 &disable_so_ufs_bitmap_search_fndecl_31338
140499 +disable_so_xfs_btree_check_lptr_fndecl_31339 xfs_btree_check_lptr fndecl 0 31339 NULL
140500 +disable_so_dynamic_ps_timeout_read_fndecl_31341 dynamic_ps_timeout_read fndecl 3-0 31341 NULL
140501 +disable_so_ret_ccp_crypto_cmd_31344 ret ccp_crypto_cmd 0 31344 NULL
140502 +disable_so_physical_mem_addr_wl1251_31345 physical_mem_addr wl1251 0 31345 NULL
140503 +disable_so_schedule_work_on_fndecl_31361 schedule_work_on fndecl 1 31361 NULL
140504 +disable_so_es_tss_segment_32_31367 es tss_segment_32 0 31367 NULL
140505 +disable_so_link_schedule_user_fndecl_31379 link_schedule_user fndecl 0 31379 NULL
140506 +disable_so_vsock_addr_cast_fndecl_31386 vsock_addr_cast fndecl 2 31386 NULL
140507 +disable_so_debug_dma_sync_single_for_cpu_fndecl_31387 debug_dma_sync_single_for_cpu fndecl 3-2 31387 NULL
140508 +disable_so_num_bytes_btrfs_delayed_ref_node_31390 num_bytes btrfs_delayed_ref_node 0 31390 NULL
140509 +disable_so_clockevents_config_fndecl_31391 clockevents_config fndecl 2 31391 NULL nohasharray
140510 +disable_so_wl1271_acx_host_if_cfg_bitmap_fndecl_31391 wl1271_acx_host_if_cfg_bitmap fndecl 0 31391 &disable_so_clockevents_config_fndecl_31391
140511 +disable_so_kstrtol_from_user_fndecl_31403 kstrtol_from_user fndecl 0-2 31403 NULL
140512 +disable_so_req_timeout_ppp_31406 req_timeout ppp 0 31406 NULL
140513 +disable_so_recvsignalpower_rtl_stats_31407 recvsignalpower rtl_stats 0 31407 NULL
140514 +disable_so_gr_log_signal_fndecl_31408 gr_log_signal fndecl 1 31408 NULL
140515 +disable_so_round_jiffies_up_relative_fndecl_31409 round_jiffies_up_relative fndecl 1-0 31409 NULL
140516 +disable_so_nr_cs5535_mfgpt_timer_31410 nr cs5535_mfgpt_timer 0 31410 NULL
140517 +disable_so_af9005_fe_read_signal_strength_fndecl_31416 af9005_fe_read_signal_strength fndecl 0 31416 NULL nohasharray
140518 +disable_so_aes_decrypt_packets_read_fndecl_31416 aes_decrypt_packets_read fndecl 0-3 31416 &disable_so_af9005_fe_read_signal_strength_fndecl_31416
140519 +disable_so_usnic_uiom_interval_tree_subtree_search_fndecl_31422 usnic_uiom_interval_tree_subtree_search fndecl 2-3 31422 NULL nohasharray
140520 +disable_so_ima_calc_file_hash_tfm_fndecl_31422 ima_calc_file_hash_tfm fndecl 0 31422 &disable_so_usnic_uiom_interval_tree_subtree_search_fndecl_31422
140521 +disable_so_rxrpc_max_call_lifetime_vardecl_31433 rxrpc_max_call_lifetime vardecl 0 31433 NULL nohasharray
140522 +disable_so_di_gid_logfs_disk_inode_31433 di_gid logfs_disk_inode 0 31433 &disable_so_rxrpc_max_call_lifetime_vardecl_31433
140523 +disable_so_ds1374_wdt_settimeout_fndecl_31434 ds1374_wdt_settimeout fndecl 1-0 31434 NULL
140524 +disable_so_tei_sockaddr_mISDN_31438 tei sockaddr_mISDN 0 31438 NULL
140525 +disable_so_bs_sleepduration_ath9k_beacon_state_31443 bs_sleepduration ath9k_beacon_state 0 31443 NULL
140526 +disable_so_pci_bus_write_config_word_fndecl_31447 pci_bus_write_config_word fndecl 0-2-3-4 31447 NULL
140527 +disable_so_cra_ctxsize_crypto_alg_31451 cra_ctxsize crypto_alg 0 31451 NULL
140528 +disable_so_dmable_fw_paddr_sst_fw_31454 dmable_fw_paddr sst_fw 0 31454 NULL
140529 +disable_so_nsec_btrfs_timespec_31463 nsec btrfs_timespec 0 31463 NULL nohasharray
140530 +disable_so_set_timeout_fndecl_31463 set_timeout fndecl 2-0 31463 &disable_so_nsec_btrfs_timespec_31463
140531 +disable_so_ima_calc_field_array_hash_tfm_fndecl_31467 ima_calc_field_array_hash_tfm fndecl 0-3 31467 NULL
140532 +disable_so_bond_eth_hash_fndecl_31472 bond_eth_hash fndecl 0 31472 NULL
140533 +disable_so_task_setscheduler_security_operations_31479 task_setscheduler security_operations 0 31479 NULL
140534 +disable_so_cs_tss_segment_32_31480 cs tss_segment_32 0 31480 NULL
140535 +disable_so_intr_gen_timer_thresh_ath_hw_31491 intr_gen_timer_thresh ath_hw 0 31491 NULL nohasharray
140536 +disable_so_nilfs_btree_find_near_fndecl_31491 nilfs_btree_find_near fndecl 0 31491 &disable_so_intr_gen_timer_thresh_ath_hw_31491
140537 +disable_so_sta_last_ack_signal_read_fndecl_31492 sta_last_ack_signal_read fndecl 3 31492 NULL
140538 +disable_so___uwb_dev_addr_assigned_fndecl_31493 __uwb_dev_addr_assigned fndecl 0 31493 NULL
140539 +disable_so_uuid_show_fndecl_31494 uuid_show fndecl 0 31494 NULL
140540 +disable_so_elan_sleep_fndecl_31502 elan_sleep fndecl 0 31502 NULL
140541 +disable_so_setkey_crypto_aead_31507 setkey crypto_aead 0-3 31507 NULL
140542 +disable_so_ebitmap_netlbl_import_fndecl_31508 ebitmap_netlbl_import fndecl 0 31508 NULL
140543 +disable_so_ccp_aes_rfc3686_decrypt_fndecl_31513 ccp_aes_rfc3686_decrypt fndecl 0 31513 NULL
140544 +disable_so_timeout_map_r8a66597_31517 timeout_map r8a66597 0 31517 NULL
140545 +disable_so_vga_switcheroo_runtime_resume_hdmi_audio_fndecl_31521 vga_switcheroo_runtime_resume_hdmi_audio fndecl 0 31521 NULL nohasharray
140546 +disable_so_in_div_min_matrox_pll_features_31521 in_div_min matrox_pll_features 0 31521 &disable_so_vga_switcheroo_runtime_resume_hdmi_audio_fndecl_31521
140547 +disable_so_hashbin_insert_fndecl_31527 hashbin_insert fndecl 3 31527 NULL
140548 +disable_so_reset_jiffies_fw_card_31535 reset_jiffies fw_card 0 31535 NULL
140549 +disable_so_addr_gk20a_instmem_priv_31544 addr gk20a_instmem_priv 0 31544 NULL
140550 +disable_so_vringh32_to_cpu_fndecl_31546 vringh32_to_cpu fndecl 0-2 31546 NULL
140551 +disable_so_qat_hash_alg_qat_alg_aead_ctx_31550 qat_hash_alg qat_alg_aead_ctx 0 31550 NULL
140552 +disable_so_timeout_move_vardecl_ch_c_31551 timeout_move vardecl_ch.c 0 31551 NULL
140553 +disable_so_iowrite8_rep_fndecl_31565 iowrite8_rep fndecl 3 31565 NULL
140554 +disable_so_omfs_hash_fndecl_31572 omfs_hash fndecl 0-3 31572 NULL
140555 +disable_so_ltc3589_set_ramp_delay_fndecl_31580 ltc3589_set_ramp_delay fndecl 0 31580 NULL
140556 +disable_so_wants_signal_fndecl_31583 wants_signal fndecl 1 31583 NULL
140557 +disable_so_set_sig_addr_fndecl_31588 set_sig_addr fndecl 4 31588 NULL
140558 +disable_so_udelay_i2c_algo_bit_data_31597 udelay i2c_algo_bit_data 0 31597 NULL
140559 +disable_so_wlapi_add_timer_fndecl_31598 wlapi_add_timer fndecl 2 31598 NULL
140560 +disable_so_gid_min_xt_owner_match_info_31604 gid_min xt_owner_match_info 0 31604 NULL
140561 +disable_so_mmap_addr_security_operations_31609 mmap_addr security_operations 0-1 31609 NULL
140562 +disable_so_cache_time_vardecl_battery_c_31620 cache_time vardecl_battery.c 0 31620 NULL
140563 +disable_so_idletimer_tg_checkentry_fndecl_31633 idletimer_tg_checkentry fndecl 0 31633 NULL
140564 +disable_so_sha256_ssse3_finup_fndecl_31637 sha256_ssse3_finup fndecl 3 31637 NULL
140565 +disable_so_f1x_translate_sysaddr_to_cs_fndecl_31647 f1x_translate_sysaddr_to_cs fndecl 0-2 31647 NULL
140566 +disable_so_partial_name_hash_fndecl_31651 partial_name_hash fndecl 0-1-2 31651 NULL
140567 +disable_so_edx_v86_regs_31655 edx v86_regs 0 31655 NULL
140568 +disable_so_kdb_printf_fndecl_31658 kdb_printf fndecl 0 31658 NULL
140569 +disable_so_voltage_response_time_radeon_dpm_31671 voltage_response_time radeon_dpm 0 31671 NULL
140570 +disable_so_ufshcd_pci_runtime_resume_fndecl_31682 ufshcd_pci_runtime_resume fndecl 0 31682 NULL
140571 +disable_so_trace_clock_jiffies_fndecl_31684 trace_clock_jiffies fndecl 0 31684 NULL
140572 +disable_so_crypto_rfc4543_crypt_fndecl_31691 crypto_rfc4543_crypt fndecl 0 31691 NULL
140573 +disable_so_qp_bitmap_ntb_transport_ctx_31692 qp_bitmap ntb_transport_ctx 0 31692 NULL
140574 +disable_so_mclk_radeon_clock_and_voltage_limits_31701 mclk radeon_clock_and_voltage_limits 0 31701 NULL
140575 +disable_so_hash_dev_block_bits_dm_verity_31709 hash_dev_block_bits dm_verity 0 31709 NULL
140576 +disable_so_crypto_gcm_init_crypt_fndecl_31718 crypto_gcm_init_crypt fndecl 2 31718 NULL
140577 +disable_so_addr_ahd_dma_seg_31719 addr ahd_dma_seg 0 31719 NULL
140578 +disable_so_rx_frame_ath_cycle_counters_31739 rx_frame ath_cycle_counters 0 31739 NULL
140579 +disable_so_nadc_aic32x4_rate_divs_31741 nadc aic32x4_rate_divs 0 31741 NULL
140580 +disable_so_gpu_addr_r600_ih_31749 gpu_addr r600_ih 0 31749 NULL
140581 +disable_so_acpi_ex_system_do_sleep_fndecl_31750 acpi_ex_system_do_sleep fndecl 0-1 31750 NULL
140582 +disable_so_bigdirindaddr_adfs_bigdirentry_31757 bigdirindaddr adfs_bigdirentry 0 31757 NULL
140583 +disable_so_vm_entry_msr_load_addr_vmcs12_31781 vm_entry_msr_load_addr vmcs12 0 31781 NULL
140584 +disable_so_qce_ahash_async_req_handle_fndecl_31785 qce_ahash_async_req_handle fndecl 0 31785 NULL
140585 +disable_so_ecryptfs_calculate_md5_fndecl_31787 ecryptfs_calculate_md5 fndecl 0-4 31787 NULL
140586 +disable_so_pixclock_fb_var_screeninfo_31790 pixclock fb_var_screeninfo 0 31790 NULL
140587 +disable_so_from_kgid_munged_fndecl_31791 from_kgid_munged fndecl 0 31791 NULL
140588 +disable_so_memsize_bitmap_ipmac_31792 memsize bitmap_ipmac 0 31792 NULL
140589 +disable_so_ctxsize_crypto_type_31795 ctxsize crypto_type 0 31795 NULL
140590 +disable_so_fpage_dma_addr_genwqe_sgl_31796 fpage_dma_addr genwqe_sgl 0 31796 NULL
140591 +disable_so_qib_hol_timeout_ms_vardecl_qib_tx_c_31801 qib_hol_timeout_ms vardecl_qib_tx.c 0 31801 NULL
140592 +disable_so_ping_timeout_iscsi_conn_31802 ping_timeout iscsi_conn 0 31802 NULL
140593 +disable_so_rpcauth_key_timeout_notify_fndecl_31805 rpcauth_key_timeout_notify fndecl 0 31805 NULL
140594 +disable_so_snd_timer_open_fndecl_31807 snd_timer_open fndecl 4 31807 NULL
140595 +disable_so_it_overrun_last_k_itimer_31814 it_overrun_last k_itimer 0 31814 NULL
140596 +disable_so_mapaddr_rocker_dma_ring_info_31819 mapaddr rocker_dma_ring_info 0 31819 NULL
140597 +disable_so_disarm_req_delay_fndecl_31821 disarm_req_delay fndecl 0 31821 NULL
140598 +disable_so_bus_addr_mvumi_res_31827 bus_addr mvumi_res 0 31827 NULL nohasharray
140599 +disable_so_dev_sas_addr_mvs_phy_31827 dev_sas_addr mvs_phy 0 31827 &disable_so_bus_addr_mvumi_res_31827 nohasharray
140600 +disable_so_select_addr_qla8044_minidump_entry_queue_31827 select_addr qla8044_minidump_entry_queue 0 31827 &disable_so_dev_sas_addr_mvs_phy_31827
140601 +disable_so_lzo1x_decompress_safe_fndecl_31834 lzo1x_decompress_safe fndecl 2 31834 NULL
140602 +disable_so_spte_is_bit_cleared_fndecl_31843 spte_is_bit_cleared fndecl 2-3 31843 NULL
140603 +disable_so_mclk_radeon_pm_clock_info_31848 mclk radeon_pm_clock_info 0 31848 NULL
140604 +disable_so_timer_expires_wakeup_source_31849 timer_expires wakeup_source 0 31849 NULL
140605 +disable_so_si_populate_memory_timing_parameters_fndecl_31852 si_populate_memory_timing_parameters fndecl 0 31852 NULL
140606 +disable_so_offset_timex_31854 offset timex 0 31854 NULL
140607 +disable_so_tuner_addr_tvcard_31862 tuner_addr tvcard 0 31862 NULL
140608 +disable_so_mask_and_set_register_interruptible_fndecl_31871 mask_and_set_register_interruptible fndecl 0 31871 NULL
140609 +disable_so_generic_set_freq_fndecl_31881 generic_set_freq fndecl 0-2-3 31881 NULL
140610 +disable_so_quota_iwl_time_quota_data_31890 quota iwl_time_quota_data 0 31890 NULL
140611 +disable_so_timer_set_at_tlan_priv_31902 timer_set_at tlan_priv 0 31902 NULL
140612 +disable_so_update_time_ds2760_device_info_31906 update_time ds2760_device_info 0 31906 NULL
140613 +disable_so_qlcnic_83xx_wrt_reg_indirect_fndecl_31907 qlcnic_83xx_wrt_reg_indirect fndecl 2-3 31907 NULL
140614 +disable_so_nmi_timer_setup_fndecl_31908 nmi_timer_setup fndecl 0 31908 NULL
140615 +disable_so_period_size_atmel_runtime_data_31909 period_size atmel_runtime_data 0 31909 NULL
140616 +disable_so_spi_pioavailaddr_qib_base_info_31911 spi_pioavailaddr qib_base_info 0 31911 NULL
140617 +disable_so_err_msr_info_31913 err msr_info 0 31913 NULL
140618 +disable_so_pcan_usb_fd_set_clock_domain_fndecl_31920 pcan_usb_fd_set_clock_domain fndecl 0 31920 NULL
140619 +disable_so_i_ipmi_set_timeout_fndecl_31922 i_ipmi_set_timeout fndecl 0 31922 NULL
140620 +disable_so_tw_ts_offset_tcp_timewait_sock_31933 tw_ts_offset tcp_timewait_sock 0 31933 NULL
140621 +disable_so_shash_setkey_unaligned_fndecl_31935 shash_setkey_unaligned fndecl 3 31935 NULL
140622 +disable_so_kempld_wdt_get_timeout_fndecl_31937 kempld_wdt_get_timeout fndecl 0 31937 NULL
140623 +disable_so_addr___mux_31940 addr __mux 0 31940 NULL
140624 +disable_so_clk_divider_bestdiv_fndecl_31941 clk_divider_bestdiv fndecl 2-0-5 31941 NULL
140625 +disable_so_bm_words_drbd_bitmap_31943 bm_words drbd_bitmap 0 31943 NULL
140626 +disable_so_timeout_show_fndecl_31957 timeout_show fndecl 0 31957 NULL
140627 +disable_so_snd_hdsp_info_system_clock_mode_fndecl_31974 snd_hdsp_info_system_clock_mode fndecl 0 31974 NULL
140628 +disable_so_time_wrap_offset_vivid_dev_31985 time_wrap_offset vivid_dev 0 31985 NULL
140629 +disable_so_addr_iwl_fw_dbg_reg_op_31986 addr iwl_fw_dbg_reg_op 0 31986 NULL
140630 +disable_so_xclk_ref_div_pll_ct_31987 xclk_ref_div pll_ct 0 31987 NULL
140631 +disable_so_rd32_nvkm_ofuncs_31990 rd32 nvkm_ofuncs 0-2 31990 NULL
140632 +disable_so_addr_sis5595_data_32006 addr sis5595_data 0 32006 NULL
140633 +disable_so_demod_address_cx22702_config_32010 demod_address cx22702_config 0 32010 NULL
140634 +disable_so_hashlimit_init_dst_fndecl_32011 hashlimit_init_dst fndecl 4 32011 NULL
140635 +disable_so_cx24113_set_frequency_fndecl_32013 cx24113_set_frequency fndecl 2 32013 NULL
140636 +disable_so_bq2415x_sysfs_set_timer_fndecl_32020 bq2415x_sysfs_set_timer fndecl 0-4 32020 NULL
140637 +disable_so___find_rev_next_zero_bit_fndecl_32028 __find_rev_next_zero_bit fndecl 0-2-3 32028 NULL
140638 +disable_so_ahd_outb_fndecl_32029 ahd_outb fndecl 2-3 32029 NULL
140639 +disable_so_pfn_to_mfn_frame_list_list_arch_shared_info_32030 pfn_to_mfn_frame_list_list arch_shared_info 0 32030 NULL
140640 +disable_so_viafb_set_vclock_fndecl_32033 viafb_set_vclock fndecl 1 32033 NULL
140641 +disable_so_paddr_csio_dma_buf_32035 paddr csio_dma_buf 0 32035 NULL
140642 +disable_so_tw_ts_recent_stamp_tcp_timewait_sock_32042 tw_ts_recent_stamp tcp_timewait_sock 0 32042 NULL
140643 +disable_so_rangetr_hash_fndecl_32045 rangetr_hash fndecl 0 32045 NULL
140644 +disable_so_vsyn_off_hdmi_timings_32055 vsyn_off hdmi_timings 0 32055 NULL
140645 +disable_so_fnic_dev_mac_addr_fndecl_32057 fnic_dev_mac_addr fndecl 0 32057 NULL nohasharray
140646 +disable_so_s921_read_signal_strength_fndecl_32057 s921_read_signal_strength fndecl 0 32057 &disable_so_fnic_dev_mac_addr_fndecl_32057
140647 +disable_so_iscsit_ta_login_timeout_fndecl_32061 iscsit_ta_login_timeout fndecl 0 32061 NULL
140648 +disable_so_btrfs_delayed_ref_init_fndecl_32064 btrfs_delayed_ref_init fndecl 0 32064 NULL
140649 +disable_so_clk_register_divider_fndecl_32066 clk_register_divider fndecl 7-6 32066 NULL
140650 +disable_so_compat_sys_timerfd_settime_fndecl_32068 compat_sys_timerfd_settime fndecl 1 32068 NULL
140651 +disable_so_last_tsc_write_kvm_arch_32069 last_tsc_write kvm_arch 0 32069 NULL
140652 +disable_so_timeout_mraid_mmadp_32081 timeout mraid_mmadp 0 32081 NULL
140653 +disable_so_selinux_task_getscheduler_fndecl_32087 selinux_task_getscheduler fndecl 0 32087 NULL
140654 +disable_so_handle_slaves_guid_change_fndecl_32090 handle_slaves_guid_change fndecl 2-3 32090 NULL
140655 +disable_so_r68_val_fc2580_freq_regs_32091 r68_val fc2580_freq_regs 0 32091 NULL
140656 +disable_so_cx23885_set_frequency_fndecl_32119 cx23885_set_frequency fndecl 0 32119 NULL
140657 +disable_so_freqn_snd_usb_endpoint_32123 freqn snd_usb_endpoint 0 32123 NULL
140658 +disable_so_prandom_bytes_fndecl_32129 prandom_bytes fndecl 2 32129 NULL nohasharray
140659 +disable_so_tfmsize_crypto_type_32129 tfmsize crypto_type 0 32129 &disable_so_prandom_bytes_fndecl_32129
140660 +disable_so_freq_ar9170_calibration_target_power_legacy_32133 freq ar9170_calibration_target_power_legacy 0 32133 NULL nohasharray
140661 +disable_so_addr_buffer_state_32133 addr buffer_state 0 32133 &disable_so_freq_ar9170_calibration_target_power_legacy_32133
140662 +enable_so_max_rate_idx_ieee80211_tx_rate_control_32134 max_rate_idx ieee80211_tx_rate_control 0 32134 NULL nohasharray
140663 +disable_so_btree_invalidatepage_fndecl_32134 btree_invalidatepage fndecl 2 32134 &enable_so_max_rate_idx_ieee80211_tx_rate_control_32134
140664 +disable_so_hfs_bnode_findhash_fndecl_32138 hfs_bnode_findhash fndecl 2 32138 NULL
140665 +disable_so_symhash_fndecl_32144 symhash fndecl 0 32144 NULL
140666 +disable_so_ahc_print_register_fndecl_32148 ahc_print_register fndecl 5 32148 NULL
140667 +disable_so_rq_majortimeo_rpc_rqst_32158 rq_majortimeo rpc_rqst 0 32158 NULL
140668 +disable_so_ber_jiffies_stats_dib7000p_state_32159 ber_jiffies_stats dib7000p_state 0 32159 NULL
140669 +disable_so_i_mtime_f2fs_inode_32162 i_mtime f2fs_inode 0 32162 NULL
140670 +disable_so_addr_cistpl_checksum_t_32163 addr cistpl_checksum_t 0 32163 NULL
140671 +disable_so_n_fll_div_32168 n fll_div 0 32168 NULL
140672 +disable_so_advance_jiffies_uhci_qh_32179 advance_jiffies uhci_qh 0 32179 NULL
140673 +disable_so_query_dv_timings_last_vivid_dev_32182 query_dv_timings_last vivid_dev 0 32182 NULL
140674 +disable_so_mlx4_reset_roce_gids_fndecl_32207 mlx4_reset_roce_gids fndecl 2 32207 NULL
140675 +disable_so_addr_rec_vals_32208 addr rec_vals 0 32208 NULL
140676 +disable_so_chunks_bitmap_counts_32213 chunks bitmap_counts 0 32213 NULL
140677 +disable_so_irq_create_mapping_fndecl_32230 irq_create_mapping fndecl 0-2 32230 NULL
140678 +disable_so_addr_lo_eth_tx_start_bd_32234 addr_lo eth_tx_start_bd 0 32234 NULL
140679 +disable_so_radeon_irq_kms_sw_irq_get_delayed_fndecl_32235 radeon_irq_kms_sw_irq_get_delayed fndecl 2 32235 NULL
140680 +disable_so_irlap_start_slot_timer_fndecl_32236 irlap_start_slot_timer fndecl 2 32236 NULL
140681 +disable_so_get_timeout_fndecl_32254 get_timeout fndecl 0 32254 NULL
140682 +disable_so_smk_open_netlbladdr_fndecl_32279 smk_open_netlbladdr fndecl 0 32279 NULL
140683 +disable_so_cifs_dfs_mountpoint_expiry_timeout_vardecl_cifs_dfs_ref_c_32281 cifs_dfs_mountpoint_expiry_timeout vardecl_cifs_dfs_ref.c 0 32281 NULL
140684 +disable_so_freq_stb0899_internal_32287 freq stb0899_internal 0 32287 NULL
140685 +disable_so_crypto_cmac_digest_update_fndecl_32293 crypto_cmac_digest_update fndecl 3 32293 NULL
140686 +disable_so_sirf_usp_pcm_runtime_resume_fndecl_32303 sirf_usp_pcm_runtime_resume fndecl 0 32303 NULL
140687 +disable_so_show_state_time_fndecl_32307 show_state_time fndecl 0 32307 NULL
140688 +disable_so_max_freq_dw_spi_32310 max_freq dw_spi 0 32310 NULL
140689 +disable_so_msg_stime_msqid64_ds_32312 msg_stime msqid64_ds 0 32312 NULL
140690 +disable_so_xtalfreq_brcms_phy_32317 xtalfreq brcms_phy 0 32317 NULL
140691 +disable_so_cpu_to_be32_array_fndecl_32318 cpu_to_be32_array fndecl 3 32318 NULL
140692 +disable_so_addr_tuner_setup_32321 addr tuner_setup 0 32321 NULL
140693 +disable_so_schedule_timeout_interruptible_fndecl_32331 schedule_timeout_interruptible fndecl 0-1 32331 NULL
140694 +disable_so_shm16read_addr_next_b43_dfsentry_32334 shm16read_addr_next b43_dfsentry 0 32334 NULL
140695 +disable_so_ver_sync_start_via_display_timing_32337 ver_sync_start via_display_timing 0 32337 NULL
140696 +disable_so_ath9k_hw_synth_delay_fndecl_32339 ath9k_hw_synth_delay fndecl 3 32339 NULL
140697 +disable_so_sys_setpgid_fndecl_32340 sys_setpgid fndecl 1-2 32340 NULL
140698 +disable_so_mmc_test_random_read_perf_fndecl_32342 mmc_test_random_read_perf fndecl 0 32342 NULL nohasharray
140699 +disable_so_addrmax_vxlan_dev_32342 addrmax vxlan_dev 0 32342 &disable_so_mmc_test_random_read_perf_fndecl_32342
140700 +disable_so_interrupt_in_interval_ld_usb_32353 interrupt_in_interval ld_usb 0 32353 NULL
140701 +disable_so_mlx4_ib_slave_alias_guid_event_fndecl_32363 mlx4_ib_slave_alias_guid_event fndecl 2-3 32363 NULL
140702 +disable_so_usb_addr_u132_udev_32366 usb_addr u132_udev 0 32366 NULL
140703 +disable_so_account_shared_subtree_fndecl_32369 account_shared_subtree fndecl 4-5 32369 NULL
140704 +disable_so_process_tgid_exec_proc_event_32371 process_tgid exec_proc_event 0 32371 NULL
140705 +disable_so_resp_bd_list_addr_hi_bnx2i_text_request_32375 resp_bd_list_addr_hi bnx2i_text_request 0 32375 NULL nohasharray
140706 +disable_so_rhashtable_lookup_insert_key_fndecl_32375 rhashtable_lookup_insert_key fndecl 0 32375 &disable_so_resp_bd_list_addr_hi_bnx2i_text_request_32375
140707 +disable_so_last_ave_beacon_signal_ieee80211_if_managed_32405 last_ave_beacon_signal ieee80211_if_managed 0 32405 NULL
140708 +disable_so_vml_nearest_clock_fndecl_32407 vml_nearest_clock fndecl 1-0 32407 NULL
140709 +disable_so_silence_start_snd_pcm_runtime_32410 silence_start snd_pcm_runtime 0 32410 NULL
140710 +disable_so_setfreq_fndecl_32411 setfreq fndecl 2 32411 NULL
140711 +disable_so_nent_kvm_cpuid_32413 nent kvm_cpuid 0 32413 NULL
140712 +disable_so_try_to_del_timer_sync_fndecl_32416 try_to_del_timer_sync fndecl 0 32416 NULL
140713 +disable_so_rtc_timer_start_fndecl_32417 rtc_timer_start fndecl 0 32417 NULL nohasharray
140714 +disable_so_get_cur_freq_fndecl_32417 get_cur_freq fndecl 1 32417 &disable_so_rtc_timer_start_fndecl_32417
140715 +disable_so_rf_set_freq_ath_hw_private_ops_32419 rf_set_freq ath_hw_private_ops 0 32419 NULL
140716 +disable_so_buffer_addr_pch_gbe_rx_desc_32427 buffer_addr pch_gbe_rx_desc 0 32427 NULL
140717 +disable_so_ath_chanctx_setup_timer_fndecl_32434 ath_chanctx_setup_timer fndecl 2 32434 NULL nohasharray
140718 +disable_so_top_mlx4_bitmap_32434 top mlx4_bitmap 0 32434 &disable_so_ath_chanctx_setup_timer_fndecl_32434
140719 +disable_so_addr_acl_ip_label_32438 addr acl_ip_label 0 32438 NULL nohasharray
140720 +disable_so_center_freq_seg2_idx_ieee80211_vht_operation_32438 center_freq_seg2_idx ieee80211_vht_operation 0 32438 &disable_so_addr_acl_ip_label_32438
140721 +disable_so_dn_sockaddr2username_fndecl_32446 dn_sockaddr2username fndecl 0 32446 NULL
140722 +disable_so_lasttime_vardecl_xfs_buf_item_c_32457 lasttime vardecl_xfs_buf_item.c 0 32457 NULL
140723 +disable_so___btrfs_add_delayed_deletion_item_fndecl_32458 __btrfs_add_delayed_deletion_item fndecl 0 32458 NULL
140724 +disable_so_pm_autosleep_lock_fndecl_32459 pm_autosleep_lock fndecl 0 32459 NULL
140725 +disable_so_bitmap_storage_alloc_fndecl_32460 bitmap_storage_alloc fndecl 2-4 32460 NULL nohasharray
140726 +disable_so_num_emulated_msrs_vardecl_x86_c_32460 num_emulated_msrs vardecl_x86.c 0 32460 &disable_so_bitmap_storage_alloc_fndecl_32460
140727 +disable_so_C_SYSC_signalfd4_fndecl_32461 C_SYSC_signalfd4 fndecl 0-4 32461 NULL nohasharray
140728 +disable_so_io_ctl_read_bitmap_fndecl_32461 io_ctl_read_bitmap fndecl 0 32461 &disable_so_C_SYSC_signalfd4_fndecl_32461
140729 +disable_so_address_u132_addr_32463 address u132_addr 0 32463 NULL
140730 +disable_so_att_dev_sas_addr_mvs_phy_32465 att_dev_sas_addr mvs_phy 0 32465 NULL
140731 +disable_so_next_status_checked_time_sp2_32472 next_status_checked_time sp2 0 32472 NULL
140732 +disable_so_address_i2400m_poke_table_32473 address i2400m_poke_table 0 32473 NULL
140733 +disable_so_time_slice_sched_rt_entity_32475 time_slice sched_rt_entity 0 32475 NULL nohasharray
140734 +disable_so_xfs_btree_ptr_to_daddr_fndecl_32475 xfs_btree_ptr_to_daddr fndecl 0 32475 &disable_so_time_slice_sched_rt_entity_32475
140735 +disable_so_br_multicast_update_query_timer_fndecl_32479 br_multicast_update_query_timer fndecl 3 32479 NULL
140736 +disable_so_rpa_timeout_hci_dev_32482 rpa_timeout hci_dev 0 32482 NULL
140737 +disable_so_retry_delay_timestamp_bnx2fc_rport_32484 retry_delay_timestamp bnx2fc_rport 0 32484 NULL
140738 +disable_so_ext4_mark_bitmap_end_fndecl_32489 ext4_mark_bitmap_end fndecl 1-2 32489 NULL
140739 +disable_so_hw_start_time_ieee80211_roc_work_32492 hw_start_time ieee80211_roc_work 0 32492 NULL
140740 +disable_so_enq_busaddr_ips_ha_32493 enq_busaddr ips_ha 0 32493 NULL
140741 +disable_so_xfs_btree_rshift_fndecl_32496 xfs_btree_rshift fndecl 0 32496 NULL
140742 +disable_so_reqsize_ablkcipher_tfm_32500 reqsize ablkcipher_tfm 0 32500 NULL
140743 +disable_so_checkani_timer_ath_ani_32510 checkani_timer ath_ani 0 32510 NULL
140744 +disable_so_refdiv_cx24113_state_32517 refdiv cx24113_state 0 32517 NULL
140745 +disable_so_clock_divn_sym_hcb_32524 clock_divn sym_hcb 0 32524 NULL nohasharray
140746 +disable_so_delay_qla4_83xx_reset_entry_hdr_32524 delay qla4_83xx_reset_entry_hdr 0 32524 &disable_so_clock_divn_sym_hcb_32524
140747 +disable_so_write_bitmap_entries_fndecl_32527 write_bitmap_entries fndecl 0 32527 NULL
140748 +disable_so_next_timer_tvec_base_32537 next_timer tvec_base 0 32537 NULL nohasharray
140749 +disable_so_daddr_irlan_cb_32537 daddr irlan_cb 0 32537 &disable_so_next_timer_tvec_base_32537
140750 +disable_so_demod_address_dib3000_config_32538 demod_address dib3000_config 0 32538 NULL
140751 +disable_so_bc_blocklog_xfs_btree_cur_32544 bc_blocklog xfs_btree_cur 0 32544 NULL
140752 +disable_so_delay_rts_before_send_serial_rs485_32545 delay_rts_before_send serial_rs485 0 32545 NULL
140753 +disable_so___skb_tx_hash_fndecl_32547 __skb_tx_hash fndecl 0-3 32547 NULL
140754 +disable_so_get_mac_address_qlcnic_hardware_ops_32567 get_mac_address qlcnic_hardware_ops 3 32567 NULL
140755 +disable_so_cpu_clock_sample_fndecl_32583 cpu_clock_sample fndecl 1 32583 NULL
140756 +disable_so_n__fll_div_32585 n _fll_div 0 32585 NULL
140757 +disable_so_addr_l_qla2xxx_fce_chain_32589 addr_l qla2xxx_fce_chain 0 32589 NULL
140758 +disable_so___bitmap_weight_fndecl_32591 __bitmap_weight fndecl 0-2 32591 NULL
140759 +disable_so_cac_time_ms_wireless_dev_32596 cac_time_ms wireless_dev 0 32596 NULL
140760 +disable_so_spi_pioavailaddr_ipath_base_info_32598 spi_pioavailaddr ipath_base_info 0 32598 NULL
140761 +disable_so_timestamp_carm_msg_sync_time_32600 timestamp carm_msg_sync_time 0 32600 NULL
140762 +disable_so_kstrtoint_from_user_fndecl_32601 kstrtoint_from_user fndecl 2-0 32601 NULL
140763 +disable_so_rtc_read_time_fndecl_32605 rtc_read_time fndecl 0 32605 NULL
140764 +disable_so_intel_fuzzy_clock_check_fndecl_32608 intel_fuzzy_clock_check fndecl 1-2 32608 NULL
140765 +disable_so_beacon_interval_iwl_rxon_time_cmd_32609 beacon_interval iwl_rxon_time_cmd 0 32609 NULL nohasharray
140766 +disable_so_ac_etime_taskstats_32609 ac_etime taskstats 0 32609 &disable_so_beacon_interval_iwl_rxon_time_cmd_32609
140767 +disable_so_pcie_sbdf_set_error_type_with_address_32610 pcie_sbdf set_error_type_with_address 0 32610 NULL nohasharray
140768 +disable_so_mwifiex_get_center_freq_index_fndecl_32610 mwifiex_get_center_freq_index fndecl 0-3 32610 &disable_so_pcie_sbdf_set_error_type_with_address_32610
140769 +disable_so_table_instance_rehash_fndecl_32621 table_instance_rehash fndecl 2 32621 NULL
140770 +disable_so_btrfs_timespec_nsec_fndecl_32628 btrfs_timespec_nsec fndecl 0 32628 NULL
140771 +disable_so_pll2_r2_div_ad9523_platform_data_32641 pll2_r2_div ad9523_platform_data 0 32641 NULL
140772 +disable_so_ahash_op_unaligned_fndecl_32645 ahash_op_unaligned fndecl 0 32645 NULL
140773 +disable_so_pm3fb_calculate_clock_fndecl_32653 pm3fb_calculate_clock fndecl 1 32653 NULL
140774 +disable_so___load_block_bitmap_fndecl_32655 __load_block_bitmap fndecl 0-3 32655 NULL
140775 +disable_so_timeout_blk_mq_tag_set_32657 timeout blk_mq_tag_set 0 32657 NULL
140776 +disable_so_rangelow_v4l2_frequency_band_32670 rangelow v4l2_frequency_band 0 32670 NULL
140777 +disable_so_crypto_rng_get_bytes_fndecl_32675 crypto_rng_get_bytes fndecl 0-3 32675 NULL
140778 +disable_so_ns_ctime_the_nilfs_32681 ns_ctime the_nilfs 0 32681 NULL
140779 +disable_so_m41t80_sysfs_show_sqwfreq_fndecl_32683 m41t80_sysfs_show_sqwfreq fndecl 0 32683 NULL
140780 +disable_so_level_irq_udelay_cyttsp4_core_platform_data_32688 level_irq_udelay cyttsp4_core_platform_data 0 32688 NULL nohasharray
140781 +disable_so_gma_bus_addr__intel_private_32688 gma_bus_addr _intel_private 0 32688 &disable_so_level_irq_udelay_cyttsp4_core_platform_data_32688
140782 +disable_so_e4000_sleep_fndecl_32694 e4000_sleep fndecl 0 32694 NULL
140783 +disable_so_snd_riptide_interrupt_fndecl_32696 snd_riptide_interrupt fndecl 1 32696 NULL nohasharray
140784 +disable_so_max_spi_freq_wm0010_priv_32696 max_spi_freq wm0010_priv 0 32696 &disable_so_snd_riptide_interrupt_fndecl_32696
140785 +disable_so_s_mtime_ext4_super_block_32699 s_mtime ext4_super_block 0 32699 NULL
140786 +disable_so_dma_addr_dm1105_dev_32704 dma_addr dm1105_dev 0 32704 NULL
140787 +disable_so_vmx_preemption_timer_value_vmcs12_32707 vmx_preemption_timer_value vmcs12 0 32707 NULL nohasharray
140788 +disable_so_uid_fileEntry_32707 uid fileEntry 0 32707 &disable_so_vmx_preemption_timer_value_vmcs12_32707
140789 +disable_so_saffirepro_both_clk_freq_get_fndecl_32709 saffirepro_both_clk_freq_get fndecl 0 32709 NULL
140790 +disable_so_cx231xx_s_frequency_fndecl_32713 cx231xx_s_frequency fndecl 0 32713 NULL
140791 +disable_so_sys_getgid_fndecl_32720 sys_getgid fndecl 0 32720 NULL
140792 +disable_so_tuner_address_zl10036_config_32733 tuner_address zl10036_config 0 32733 NULL
140793 +disable_so_max_medium_access_timeouts_store_fndecl_32735 max_medium_access_timeouts_store fndecl 0-4 32735 NULL
140794 +disable_so_cyapa_sleep_time_to_pwr_cmd_fndecl_32740 cyapa_sleep_time_to_pwr_cmd fndecl 0-1 32740 NULL
140795 +disable_so_s5m_rtc_read_time_fndecl_32755 s5m_rtc_read_time fndecl 0 32755 NULL
140796 +disable_so_i2c_read_le16_fndecl_32758 i2c_read_le16 fndecl 0 32758 NULL
140797 +disable_so_sysctl_rose_ack_hold_back_timeout_vardecl_32768 sysctl_rose_ack_hold_back_timeout vardecl 0 32768 NULL
140798 +disable_so_pentium4_get_frequency_fndecl_32777 pentium4_get_frequency fndecl 0 32777 NULL
140799 +disable_so_divider_phase_ad9523_channel_spec_32779 divider_phase ad9523_channel_spec 0 32779 NULL
140800 +disable_so_s_nr_groups_udf_bitmap_32784 s_nr_groups udf_bitmap 0 32784 NULL
140801 +disable_so_acpi_dev_runtime_resume_fndecl_32787 acpi_dev_runtime_resume fndecl 0 32787 NULL
140802 +disable_so_posted_intr_desc_addr_vmcs12_32788 posted_intr_desc_addr vmcs12 0 32788 NULL
140803 +disable_so_acpi_enter_sleep_state_fndecl_32791 acpi_enter_sleep_state fndecl 0-1 32791 NULL
140804 +disable_so_lola_init_clock_widget_fndecl_32800 lola_init_clock_widget fndecl 0 32800 NULL
140805 +disable_so_blocksize_ablkcipher_walk_32810 blocksize ablkcipher_walk 0 32810 NULL
140806 +disable_so_ctime_msdos_dir_entry_32811 ctime msdos_dir_entry 0 32811 NULL
140807 +disable_so_hpi_tuner_get_frequency_fndecl_32813 hpi_tuner_get_frequency fndecl 0-1 32813 NULL
140808 +disable_so_rhashtable_lookup_insert_fast_fndecl_32820 rhashtable_lookup_insert_fast fndecl 0 32820 NULL
140809 +disable_so_sync_freq_max8952_platform_data_32822 sync_freq max8952_platform_data 0 32822 NULL
140810 +disable_so_timeout_rc_dev_32826 timeout rc_dev 0 32826 NULL
140811 +disable_so_to_c2_data_addr_32827 to c2_data_addr 0 32827 NULL
140812 +disable_so_il4965_tfd_tb_get_addr_fndecl_32833 il4965_tfd_tb_get_addr fndecl 0 32833 NULL
140813 +disable_so_ctnl_timeout_dump_fndecl_32835 ctnl_timeout_dump fndecl 0 32835 NULL nohasharray
140814 +disable_so_nouveau_pmops_runtime_suspend_fndecl_32835 nouveau_pmops_runtime_suspend fndecl 0 32835 &disable_so_ctnl_timeout_dump_fndecl_32835
140815 +disable_so_kvm_get_apic_interrupt_fndecl_32843 kvm_get_apic_interrupt fndecl 0 32843 NULL
140816 +disable_so_do_bit_flips_fndecl_32848 do_bit_flips fndecl 2 32848 NULL
140817 +disable_so_bitmap_xor_fndecl_32858 bitmap_xor fndecl 4 32858 NULL
140818 +disable_so_vdelay_bttv_tvnorm_32863 vdelay bttv_tvnorm 0 32863 NULL
140819 +disable_so_rt_dbmsignal_ipw_rt_hdr_32871 rt_dbmsignal ipw_rt_hdr 0 32871 NULL
140820 +disable_so_rtc_set_ntp_time_fndecl_32881 rtc_set_ntp_time fndecl 0 32881 NULL
140821 +disable_so_hash_conntrack_raw_fndecl_32882 hash_conntrack_raw fndecl 0 32882 NULL
140822 +disable_so_find_mc_by_sys_addr_fndecl_32888 find_mc_by_sys_addr fndecl 2 32888 NULL
140823 +disable_so_low_mcp_dma_addr_32890 low mcp_dma_addr 0 32890 NULL
140824 +disable_so_rds_cmsg_atomic_fndecl_32895 rds_cmsg_atomic fndecl 0 32895 NULL
140825 +disable_so___hw_addr_add_ex_fndecl_32899 __hw_addr_add_ex fndecl 0-3 32899 NULL
140826 +disable_so_xfs_btree_decrement_fndecl_32925 xfs_btree_decrement fndecl 0 32925 NULL
140827 +disable_so_nilfs_btree_prepare_propagate_v_fndecl_32937 nilfs_btree_prepare_propagate_v fndecl 0 32937 NULL
140828 +disable_so_m41t80_rtc_read_time_fndecl_32947 m41t80_rtc_read_time fndecl 0 32947 NULL
140829 +disable_so_address_ci_hdrc_32962 address ci_hdrc 0 32962 NULL
140830 +disable_so_tua9001_sleep_fndecl_32966 tua9001_sleep fndecl 0 32966 NULL
140831 +disable_so_pm_generic_runtime_resume_fndecl_32968 pm_generic_runtime_resume fndecl 0 32968 NULL
140832 +disable_so_dma_addr_chunk_32969 dma_addr chunk 0 32969 NULL
140833 +disable_so_dm_attr_uuid_show_fndecl_32981 dm_attr_uuid_show fndecl 0 32981 NULL
140834 +disable_so_ac_stime_acct_v3_32985 ac_stime acct_v3 0 32985 NULL
140835 +disable_so_int_freq_r820t_priv_32987 int_freq r820t_priv 0 32987 NULL
140836 +disable_so_r8_pt_regs_32990 r8 pt_regs 0 32990 NULL
140837 +disable_so_address_TAG_TW_SG_Entry_ISO_32992 address TAG_TW_SG_Entry_ISO 0 32992 NULL
140838 +disable_so_segment0_blkaddr_f2fs_super_block_32995 segment0_blkaddr f2fs_super_block 0 32995 NULL
140839 +disable_so_time_of_death_afs_vlocation_32996 time_of_death afs_vlocation 0 32996 NULL
140840 +disable_so_addrm_unknown_feature_attrs_fndecl_33000 addrm_unknown_feature_attrs fndecl 0 33000 NULL
140841 +disable_so_monotonic_time_sec_vsyscall_gtod_data_33004 monotonic_time_sec vsyscall_gtod_data 0 33004 NULL
140842 +disable_so_tv_hsync_delay_nv04_crtc_reg_33012 tv_hsync_delay nv04_crtc_reg 0 33012 NULL
140843 +disable_so_neigh_proc_base_reachable_time_fndecl_33013 neigh_proc_base_reachable_time fndecl 0 33013 NULL
140844 +disable_so_ocfs2_unlink_subtree_fndecl_33022 ocfs2_unlink_subtree fndecl 5 33022 NULL
140845 +disable_so_poll_time_max3100_port_33028 poll_time max3100_port 0 33028 NULL
140846 +disable_so_compat_sys_time_fndecl_33034 compat_sys_time fndecl 0 33034 NULL nohasharray
140847 +disable_so_m_osc_clock_freq_drxk_state_33034 m_osc_clock_freq drxk_state 0 33034 &disable_so_compat_sys_time_fndecl_33034
140848 +disable_so_dev_addr_mmc_test_area_33044 dev_addr mmc_test_area 0 33044 NULL
140849 +disable_so_ntp_tick_timekeeper_33046 ntp_tick timekeeper 0 33046 NULL
140850 +disable_so_day_tomoyo_time_33064 day tomoyo_time 0 33064 NULL
140851 +disable_so_wait_time_stamp_lpfc_bsg_event_33070 wait_time_stamp lpfc_bsg_event 0 33070 NULL
140852 +disable_so_vblank_hi_lvds_dvo_timing_33077 vblank_hi lvds_dvo_timing 0 33077 NULL
140853 +disable_so_cycle_last_timecounter_33078 cycle_last timecounter 0 33078 NULL
140854 +disable_so_ql_write_page0_reg_fndecl_33082 ql_write_page0_reg fndecl 3 33082 NULL
140855 +disable_so_dma_addr_mic_smpt_33090 dma_addr mic_smpt 0 33090 NULL
140856 +disable_so_torture_random_fndecl_33096 torture_random fndecl 0 33096 NULL
140857 +disable_so_collect_signal_fndecl_33097 collect_signal fndecl 1 33097 NULL
140858 +disable_so_free_count_reiserfs_bitmap_info_33099 free_count reiserfs_bitmap_info 0 33099 NULL
140859 +disable_so_sys_clock_gettime_fndecl_33100 sys_clock_gettime fndecl 1 33100 NULL
140860 +disable_so_word_write_time_max_flchip_33105 word_write_time_max flchip 0 33105 NULL nohasharray
140861 +disable_so_y_gsc_addr_33105 y gsc_addr 0 33105 &disable_so_word_write_time_max_flchip_33105
140862 +disable_so_prdaddr_atp_id_33111 prdaddr atp_id 0 33111 NULL nohasharray
140863 +disable_so_intel_fdi_link_freq_fndecl_33111 intel_fdi_link_freq fndecl 0 33111 &disable_so_prdaddr_atp_id_33111
140864 +disable_so_soft_use_expires_seconds_xfrm_lifetime_cfg_33115 soft_use_expires_seconds xfrm_lifetime_cfg 0 33115 NULL
140865 +disable_so_strtobool_fndecl_33116 strtobool fndecl 0 33116 NULL
140866 +disable_so_smsc95xx_hash_fndecl_33122 smsc95xx_hash fndecl 0 33122 NULL
140867 +disable_so_mce_device_create_fndecl_33128 mce_device_create fndecl 1-0 33128 NULL
140868 +disable_so_ip6addrlbl_net_init_fndecl_33129 ip6addrlbl_net_init fndecl 0 33129 NULL
140869 +disable_so_brcms_b_set_addrmatch_fndecl_33130 brcms_b_set_addrmatch fndecl 2 33130 NULL
140870 +disable_so_tracer_tgid_ptrace_proc_event_33131 tracer_tgid ptrace_proc_event 0 33131 NULL
140871 +disable_so_pretimeout_vardecl_kempld_wdt_c_33137 pretimeout vardecl_kempld_wdt.c 0 33137 NULL
140872 +disable_so_o2net_set_usertimeout_fndecl_33145 o2net_set_usertimeout fndecl 0 33145 NULL nohasharray
140873 +disable_so_cryptd_blkcipher_encrypt_enqueue_fndecl_33145 cryptd_blkcipher_encrypt_enqueue fndecl 0 33145 &disable_so_o2net_set_usertimeout_fndecl_33145
140874 +disable_so_q_stime_msg_queue_33150 q_stime msg_queue 0 33150 NULL
140875 +disable_so_cursor_cache_gpu_addr_ast_private_33160 cursor_cache_gpu_addr ast_private 0 33160 NULL
140876 +disable_so_clockid_to_kclock_fndecl_33163 clockid_to_kclock fndecl 1 33163 NULL
140877 +disable_so_address_ipr_ioadl64_desc_33170 address ipr_ioadl64_desc 0 33170 NULL
140878 +disable_so_wl1271_acx_sleep_auth_fndecl_33172 wl1271_acx_sleep_auth fndecl 0 33172 NULL nohasharray
140879 +disable_so_addr_mii_phy_33172 addr mii_phy 0 33172 &disable_so_wl1271_acx_sleep_auth_fndecl_33172
140880 +disable_so_cr_camif_addr_33181 cr camif_addr 0 33181 NULL
140881 +disable_so___bch_btree_mark_key_fndecl_33194 __bch_btree_mark_key fndecl 2 33194 NULL
140882 +disable_so_mem_addr_m3_list_33199 mem_addr m3_list 0 33199 NULL
140883 +disable_so_start_time_tx_traffic_info_33206 start_time tx_traffic_info 0 33206 NULL
140884 +disable_so_crypto_aead_decrypt_fndecl_33207 crypto_aead_decrypt fndecl 0 33207 NULL
140885 +disable_so_i_mtime_ext2_inode_33209 i_mtime ext2_inode 0 33209 NULL
140886 +disable_so_mei_me_pm_runtime_resume_fndecl_33216 mei_me_pm_runtime_resume fndecl 0 33216 NULL
140887 +disable_so_irq_free_descs_fndecl_33218 irq_free_descs fndecl 1-2 33218 NULL
140888 +disable_so_tune_freq_si476x_radio_ops_33229 tune_freq si476x_radio_ops 0 33229 NULL
140889 +disable_so_increase_address_space_fndecl_33247 increase_address_space fndecl 2 33247 NULL
140890 +disable_so_ps_timeout_vardecl_pseudo_h_33252 ps_timeout vardecl_pseudo.h 0 33252 NULL
140891 +disable_so_init_jiffies_clocksource_fndecl_33253 init_jiffies_clocksource fndecl 0 33253 NULL
140892 +disable_so_do_cpu_nanosleep_fndecl_33255 do_cpu_nanosleep fndecl 1 33255 NULL
140893 +disable_so_efi_thunk_set_virtual_address_map_fndecl_33273 efi_thunk_set_virtual_address_map fndecl 2-3 33273 NULL
140894 +disable_so_ring_physaddr_fbr_lookup_33275 ring_physaddr fbr_lookup 0 33275 NULL
140895 +disable_so_wakeup_prevent_sleep_time_show_fndecl_33280 wakeup_prevent_sleep_time_show fndecl 0 33280 NULL nohasharray
140896 +disable_so_isi_camera_clock_start_fndecl_33280 isi_camera_clock_start fndecl 0 33280 &disable_so_wakeup_prevent_sleep_time_show_fndecl_33280 nohasharray
140897 +disable_so_rsdt_physical_address_acpi_table_rsdp_33280 rsdt_physical_address acpi_table_rsdp 0 33280 &disable_so_isi_camera_clock_start_fndecl_33280 nohasharray
140898 +disable_so_ccp_aes_rfc3686_setkey_fndecl_33280 ccp_aes_rfc3686_setkey fndecl 3 33280 &disable_so_rsdt_physical_address_acpi_table_rsdp_33280
140899 +disable_so_jiffies_to_clock_t_fndecl_33285 jiffies_to_clock_t fndecl 0-1 33285 NULL
140900 +disable_so_gpu_addr_radeon_ib_33291 gpu_addr radeon_ib 0 33291 NULL
140901 +disable_so_crypto_rfc4106_setkey_fndecl_33297 crypto_rfc4106_setkey fndecl 0-3 33297 NULL
140902 +disable_so_crypto_rfc4309_encrypt_fndecl_33306 crypto_rfc4309_encrypt fndecl 0 33306 NULL
140903 +disable_so_xhci_calculate_lpm_timeout_fndecl_33310 xhci_calculate_lpm_timeout fndecl 0 33310 NULL
140904 +disable_so_addr_high_mcp_kreq_ether_send_33319 addr_high mcp_kreq_ether_send 0 33319 NULL
140905 +disable_so_calc_divisor_fndecl_33333 calc_divisor fndecl 0 33333 NULL
140906 +disable_so_i2c_address_dib0070_config_33334 i2c_address dib0070_config 0 33334 NULL
140907 +disable_so_alloc_sleep_millisecs_show_fndecl_33339 alloc_sleep_millisecs_show fndecl 0 33339 NULL nohasharray
140908 +disable_so_hpi_tuner_set_frequency_fndecl_33339 hpi_tuner_set_frequency fndecl 0-1 33339 &disable_so_alloc_sleep_millisecs_show_fndecl_33339
140909 +disable_so_sysctl_aarp_tick_time_vardecl_33343 sysctl_aarp_tick_time vardecl 0 33343 NULL
140910 +disable_so_stv0367cab_set_derot_freq_fndecl_33348 stv0367cab_set_derot_freq fndecl 0-2-3 33348 NULL
140911 +disable_so_pkt_phys_addr_mwl8k_tx_desc_33350 pkt_phys_addr mwl8k_tx_desc 0 33350 NULL
140912 +disable_so_addr_low_lancer_cmd_req_write_object_33351 addr_low lancer_cmd_req_write_object 0 33351 NULL
140913 +disable_so_posix_timer_id_signal_struct_33352 posix_timer_id signal_struct 0 33352 NULL
140914 +disable_so_s_mtime_ext2_super_block_33353 s_mtime ext2_super_block 0 33353 NULL
140915 +disable_so_freq_wmi_remain_on_chnl_event_33368 freq wmi_remain_on_chnl_event 0 33368 NULL
140916 +disable_so_token_time_sfb_sched_data_33369 token_time sfb_sched_data 0 33369 NULL nohasharray
140917 +disable_so_kvmclock_offset_kvm_arch_33369 kvmclock_offset kvm_arch 0 33369 &disable_so_token_time_sfb_sched_data_33369
140918 +disable_so_pipelines_addr_device_queue_manager_33373 pipelines_addr device_queue_manager 0 33373 NULL
140919 +disable_so_nilfs_btree_prepare_convert_and_insert_fndecl_33375 nilfs_btree_prepare_convert_and_insert fndecl 0-2 33375 NULL
140920 +disable_so_hash_netnet6_expire_fndecl_33396 hash_netnet6_expire fndecl 4 33396 NULL
140921 +disable_so_ticks_snd_timer_hardware_33398 ticks snd_timer_hardware 0 33398 NULL nohasharray
140922 +disable_so_pci_bus_max_busnr_fndecl_33398 pci_bus_max_busnr fndecl 0 33398 &disable_so_ticks_snd_timer_hardware_33398
140923 +disable_so_start_time_search_33410 start_time search 0 33410 NULL
140924 +disable_so_flip_addr_intel_overlay_33431 flip_addr intel_overlay 0 33431 NULL
140925 +disable_so_sync_single_for_cpu_dma_map_ops_33433 sync_single_for_cpu dma_map_ops 2-3 33433 NULL
140926 +disable_so_di_ctime_logfs_disk_inode_33435 di_ctime logfs_disk_inode 0 33435 NULL
140927 +disable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 0 33455 NULL
140928 +disable_so_sbp_tpg_attrib_show_mgt_orb_timeout_fndecl_33467 sbp_tpg_attrib_show_mgt_orb_timeout fndecl 0 33467 NULL
140929 +disable_so_btrfs_set_free_space_bitmaps_fndecl_33481 btrfs_set_free_space_bitmaps fndecl 3 33481 NULL
140930 +disable_so_demod_address_stv0299_config_33483 demod_address stv0299_config 0 33483 NULL
140931 +disable_so_lbs_sleepparams_write_fndecl_33488 lbs_sleepparams_write fndecl 0-3 33488 NULL
140932 +disable_so_start_time_edac_device_ctl_info_33489 start_time edac_device_ctl_info 0 33489 NULL
140933 +disable_so_addr_f71805f_data_33493 addr f71805f_data 0 33493 NULL
140934 +disable_so_mcgcap_mce_33500 mcgcap mce 0 33500 NULL
140935 +disable_so___smp_spurious_interrupt_fndecl_33501 __smp_spurious_interrupt fndecl 1 33501 NULL
140936 +disable_so_acpi_pad_rrtime_show_fndecl_33511 acpi_pad_rrtime_show fndecl 0 33511 NULL
140937 +disable_so_crypto_ctr_module_init_fndecl_33512 crypto_ctr_module_init fndecl 0 33512 NULL
140938 +disable_so_dtim_time_iwl_mac_data_sta_33519 dtim_time iwl_mac_data_sta 0 33519 NULL
140939 +disable_so_start_signal_voltage_switch_mmc_host_ops_33520 start_signal_voltage_switch mmc_host_ops 0 33520 NULL
140940 +disable_so_ui_atime_ufs2_inode_33541 ui_atime ufs2_inode 0 33541 NULL nohasharray
140941 +disable_so_pll_prediv_dib0090_io_config_33541 pll_prediv dib0090_io_config 0 33541 &disable_so_ui_atime_ufs2_inode_33541
140942 +disable_so_synchronize_irq_fndecl_33551 synchronize_irq fndecl 1 33551 NULL
140943 +disable_so_addrconf_disable_ipv6_fndecl_33555 addrconf_disable_ipv6 fndecl 0 33555 NULL
140944 +disable_so_addr_RxDesc_33558 addr RxDesc 0 33558 NULL
140945 +disable_so_rtc_irq_set_freq_fndecl_33559 rtc_irq_set_freq fndecl 0 33559 NULL
140946 +disable_so_md4_mod_init_fndecl_33560 md4_mod_init fndecl 0 33560 NULL
140947 +disable_so_addr_1_qla8044_minidump_entry_pollwr_33561 addr_1 qla8044_minidump_entry_pollwr 0 33561 NULL
140948 +disable_so_decnet_address_vardecl_33562 decnet_address vardecl 0 33562 NULL
140949 +disable_so_tx_bseq_addr_bnx2_tx_ring_info_33563 tx_bseq_addr bnx2_tx_ring_info 0 33563 NULL
140950 +disable_so_clock_sched_clock_data_33565 clock sched_clock_data 0 33565 NULL
140951 +disable_so_va_uid_coda_vattr_33569 va_uid coda_vattr 0 33569 NULL
140952 +disable_so_timeout_RioCommand_33570 timeout RioCommand 0 33570 NULL
140953 +disable_so_ramp_time_pcf50633_bl_platform_data_33574 ramp_time pcf50633_bl_platform_data 0 33574 NULL
140954 +disable_so_bitmap_init_from_disk_fndecl_33575 bitmap_init_from_disk fndecl 2 33575 NULL
140955 +disable_so_startaddr_banshee_reg_33580 startaddr banshee_reg 0 33580 NULL
140956 +disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581 intel_pipe_to_cpu_transcoder fndecl 0-2 33581 NULL nohasharray
140957 +disable_so_ctl_addr_ide_io_ports_33581 ctl_addr ide_io_ports 0 33581 &disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581
140958 +disable_so_ext4_read_inode_bitmap_fndecl_33583 ext4_read_inode_bitmap fndecl 2 33583 NULL
140959 +disable_so_ims_pcu_ofn_bit_store_fndecl_33597 ims_pcu_ofn_bit_store fndecl 0-4 33597 NULL
140960 +disable_so___bitmap_clear_bits_fndecl_33603 __bitmap_clear_bits fndecl 3-4 33603 NULL
140961 +disable_so_cg_spll_spread_spectrum_2_rv730_clock_registers_33607 cg_spll_spread_spectrum_2 rv730_clock_registers 0 33607 NULL
140962 +disable_so_cs5535_mfgpt_alloc_timer_fndecl_33609 cs5535_mfgpt_alloc_timer fndecl 1 33609 NULL
140963 +disable_so_to_maxval_rpc_timeout_33618 to_maxval rpc_timeout 0 33618 NULL nohasharray
140964 +disable_so_freq_freq_tbl_33618 freq freq_tbl 0 33618 &disable_so_to_maxval_rpc_timeout_33618
140965 +disable_so_hpi_sample_clock_set_auto_fndecl_33619 hpi_sample_clock_set_auto fndecl 1-0 33619 NULL
140966 +disable_so_addr_lo_freelQ_e_33620 addr_lo freelQ_e 0 33620 NULL
140967 +disable_so_addr_via686a_data_33627 addr via686a_data 0 33627 NULL
140968 +disable_so_seq_time_vardecl_33630 seq_time vardecl 0 33630 NULL
140969 +disable_so_tgid_task_struct_33635 tgid task_struct 0 33635 NULL nohasharray
140970 +disable_so_index_addr_read_data_fndecl_33635 index_addr_read_data fndecl 2 33635 &disable_so_tgid_task_struct_33635
140971 +disable_so_random_fasync_fndecl_33642 random_fasync fndecl 1 33642 NULL
140972 +disable_so_snd_usb_mixer_interrupt_v2_fndecl_33643 snd_usb_mixer_interrupt_v2 fndecl 3 33643 NULL
140973 +disable_so_vq_vram_addr_viafb_shared_33653 vq_vram_addr viafb_shared 0 33653 NULL
140974 +disable_so_key_index_wmi_add_cipher_key_cmd_33662 key_index wmi_add_cipher_key_cmd 0 33662 NULL
140975 +disable_so_tpu_pwm_timer_start_fndecl_33663 tpu_pwm_timer_start fndecl 0 33663 NULL
140976 +disable_so_interrupt_in_interval_lego_usb_tower_33664 interrupt_in_interval lego_usb_tower 0 33664 NULL
140977 +disable_so_pr_gid_compat_elf_prpsinfo_33667 pr_gid compat_elf_prpsinfo 0 33667 NULL
140978 +disable_so_sinit_max_init_timeo_sctp_initmsg_33681 sinit_max_init_timeo sctp_initmsg 0 33681 NULL
140979 +disable_so_sdev_store_eh_timeout_fndecl_33688 sdev_store_eh_timeout fndecl 0-4 33688 NULL
140980 +disable_so_uid_ceph_mds_caps_33696 uid ceph_mds_caps 0 33696 NULL
140981 +disable_so_min_timeout_rc_dev_33699 min_timeout rc_dev 0 33699 NULL
140982 +disable_so_addr_alx_rfd_33711 addr alx_rfd 0 33711 NULL
140983 +disable_so_pwm_divisor_max77693_haptic_33724 pwm_divisor max77693_haptic 0 33724 NULL
140984 +disable_so_cb710_mmc_select_clock_divider_fndecl_33732 cb710_mmc_select_clock_divider fndecl 2 33732 NULL
140985 +disable_so_service_timer_previous_i40e_pf_33743 service_timer_previous i40e_pf 0 33743 NULL
140986 +disable_so_btree_gc_count_keys_fndecl_33745 btree_gc_count_keys fndecl 0 33745 NULL
140987 +disable_so_max_usec_vnic_intr_coal_timer_info_33753 max_usec vnic_intr_coal_timer_info 0 33753 NULL
140988 +disable_so_force_hpet_address_vardecl_33758 force_hpet_address vardecl 0 33758 NULL
140989 +disable_so_fl_addr_fib_result_nl_33759 fl_addr fib_result_nl 0 33759 NULL
140990 +disable_so_cx231xx_i2c_recv_bytes_with_saddr_fndecl_33773 cx231xx_i2c_recv_bytes_with_saddr fndecl 0 33773 NULL
140991 +disable_so_cursor_addr_radeon_crtc_33776 cursor_addr radeon_crtc 0 33776 NULL
140992 +disable_so_btrfs_update_time_fndecl_33780 btrfs_update_time fndecl 0 33780 NULL
140993 +disable_so_from_kuid_munged_fndecl_33783 from_kuid_munged fndecl 0 33783 NULL
140994 +disable_so_irda_discover_daddr_and_lsap_sel_fndecl_33786 irda_discover_daddr_and_lsap_sel fndecl 0 33786 NULL
140995 +disable_so_efx_probe_interrupts_fndecl_33793 efx_probe_interrupts fndecl 0 33793 NULL
140996 +disable_so_custom_divisor_cyclades_port_33795 custom_divisor cyclades_port 0 33795 NULL
140997 +disable_so_uli526x_interrupt_fndecl_33800 uli526x_interrupt fndecl 1 33800 NULL
140998 +disable_so_ocrdma_add_stat_fndecl_33807 ocrdma_add_stat fndecl 0 33807 NULL
140999 +disable_so_btrfs_set_token_inode_uid_fndecl_33810 btrfs_set_token_inode_uid fndecl 3 33810 NULL
141000 +disable_so_iowrite32_rep_fndecl_33813 iowrite32_rep fndecl 3 33813 NULL
141001 +disable_so_sys_setresgid_fndecl_33818 sys_setresgid fndecl 0-1-2-3 33818 NULL
141002 +disable_so_radeon_dp_get_dp_link_clock_fndecl_33823 radeon_dp_get_dp_link_clock fndecl 0-3 33823 NULL
141003 +disable_so_timeout__synclinkmp_info_33838 timeout _synclinkmp_info 0 33838 NULL
141004 +disable_so_phys_addr_esas2r_mem_desc_33844 phys_addr esas2r_mem_desc 0 33844 NULL
141005 +disable_so_cpufreq_register_notifier_fndecl_33845 cpufreq_register_notifier fndecl 0 33845 NULL
141006 +disable_so_ufx_reg_write_fndecl_33849 ufx_reg_write fndecl 3 33849 NULL
141007 +disable_so_kstrtou8_from_user_fndecl_33852 kstrtou8_from_user fndecl 0-2 33852 NULL
141008 +disable_so_hpi_sample_clock_get_local_rate_fndecl_33857 hpi_sample_clock_get_local_rate fndecl 1-0 33857 NULL
141009 +disable_so_hor_sync_start_via_display_timing_33861 hor_sync_start via_display_timing 0 33861 NULL
141010 +disable_so_seq_netlbl_domhsh_walk_arg_33872 seq netlbl_domhsh_walk_arg 0 33872 NULL
141011 +disable_so_wrmsrl_on_cpu_fndecl_33873 wrmsrl_on_cpu fndecl 0-1 33873 NULL
141012 +disable_so_cpu_to_vringh32_fndecl_33880 cpu_to_vringh32 fndecl 0-2 33880 NULL
141013 +disable_so_ni_do_program_memory_timing_parameters_fndecl_33886 ni_do_program_memory_timing_parameters fndecl 0 33886 NULL
141014 +disable_so_comp_addr_hi_dmae_command_33889 comp_addr_hi dmae_command 0 33889 NULL
141015 +disable_so_wl18xx_acx_interrupt_notify_config_fndecl_33899 wl18xx_acx_interrupt_notify_config fndecl 0 33899 NULL
141016 +disable_so_creation_time_iscsi_session_33906 creation_time iscsi_session 0 33906 NULL nohasharray
141017 +disable_so_via_clock_vardecl_pata_via_c_33906 via_clock vardecl_pata_via.c 0 33906 &disable_so_creation_time_iscsi_session_33906 nohasharray
141018 +disable_so_bnx2x_get_rxhash_fndecl_33906 bnx2x_get_rxhash fndecl 0 33906 &disable_so_via_clock_vardecl_pata_via_c_33906
141019 +disable_so_mmio_readl_intel_uncore_funcs_33910 mmio_readl intel_uncore_funcs 0-2 33910 NULL
141020 +disable_so_refresh_time_e1000_fc_info_33911 refresh_time e1000_fc_info 0 33911 NULL
141021 +disable_so_hash_fname_33923 hash fname 0 33923 NULL
141022 +disable_so_sysctl_netrom_transport_timeout_vardecl_33929 sysctl_netrom_transport_timeout vardecl 0 33929 NULL
141023 +disable_so_cg_spll_func_cntl_si_clock_registers_33932 cg_spll_func_cntl si_clock_registers 0 33932 NULL
141024 +disable_so_img_ir_free_timing_fndecl_33939 img_ir_free_timing fndecl 0-2 33939 NULL
141025 +disable_so_max_tsc_khz_vardecl_x86_c_33942 max_tsc_khz vardecl_x86.c 0 33942 NULL
141026 +disable_so_timeout_a_tpm_vendor_specific_33951 timeout_a tpm_vendor_specific 0 33951 NULL
141027 +disable_so_generic_cmd6_time_mmc_ext_csd_33957 generic_cmd6_time mmc_ext_csd 0 33957 NULL
141028 +disable_so_subnet_timeout_qib_ibport_33973 subnet_timeout qib_ibport 0 33973 NULL nohasharray
141029 +disable_so_ring_iowrite16desc_fndecl_33973 ring_iowrite16desc fndecl 2 33973 &disable_so_subnet_timeout_qib_ibport_33973 nohasharray
141030 +disable_so_freq_tiny_spi_33973 freq tiny_spi 0 33973 &disable_so_ring_iowrite16desc_fndecl_33973
141031 +disable_so_ip6addrlbl_del_fndecl_33977 ip6addrlbl_del fndecl 0-4 33977 NULL
141032 +disable_so_btree_readpage_fndecl_33979 btree_readpage fndecl 0 33979 NULL
141033 +disable_so_ifa_broadcast_in_ifaddr_33999 ifa_broadcast in_ifaddr 0 33999 NULL
141034 +disable_so___cpuidle_register_device_fndecl_34012 __cpuidle_register_device fndecl 0 34012 NULL
141035 +disable_so_hpfs_prefetch_bitmap_fndecl_34014 hpfs_prefetch_bitmap fndecl 2 34014 NULL
141036 +disable_so_cur_freq_lbtf_private_34017 cur_freq lbtf_private 0 34017 NULL
141037 +disable_so_pxa2xx_ssp_get_clk_div_fndecl_34021 pxa2xx_ssp_get_clk_div fndecl 0-3 34021 NULL
141038 +disable_so_data_addr_acpi_ec_34022 data_addr acpi_ec 0 34022 NULL
141039 +disable_so_sdev_runtime_resume_fndecl_34033 sdev_runtime_resume fndecl 0 34033 NULL nohasharray
141040 +disable_so_get_aux_clock_divider_intel_dp_34033 get_aux_clock_divider intel_dp 0 34033 &disable_so_sdev_runtime_resume_fndecl_34033
141041 +disable_so_proc_tgid_io_accounting_fndecl_34034 proc_tgid_io_accounting fndecl 0 34034 NULL
141042 +disable_so_long_timeout_scsi_tape_34043 long_timeout scsi_tape 0 34043 NULL
141043 +disable_so_crypto_authenc_esn_givencrypt_done_fndecl_34047 crypto_authenc_esn_givencrypt_done fndecl 2 34047 NULL
141044 +disable_so_addr_wil_fw_data_dwrite_34059 addr wil_fw_data_dwrite 0 34059 NULL
141045 +disable_so_shash_prepare_alg_fndecl_34073 shash_prepare_alg fndecl 0 34073 NULL
141046 +disable_so_ccp_register_aes_algs_fndecl_34079 ccp_register_aes_algs fndecl 0 34079 NULL
141047 +disable_so_addr_mwifiex_dma_mapping_34088 addr mwifiex_dma_mapping 0 34088 NULL
141048 +disable_so_signal_level_hfa384x_comms_quality_34089 signal_level hfa384x_comms_quality 0 34089 NULL
141049 +disable_so_per_jiffies_stats_dib7000p_state_34090 per_jiffies_stats dib7000p_state 0 34090 NULL nohasharray
141050 +disable_so__ocrdma_pd_mgr_put_bitmap_fndecl_34090 _ocrdma_pd_mgr_put_bitmap fndecl 0-2 34090 &disable_so_per_jiffies_stats_dib7000p_state_34090
141051 +disable_so_rt_mutex_timed_lock_fndecl_34096 rt_mutex_timed_lock fndecl 0 34096 NULL
141052 +disable_so_addr_i2c_device_34103 addr i2c_device 0 34103 NULL
141053 +disable_so_run_nmi_sleep_test_fndecl_34107 run_nmi_sleep_test fndecl 1 34107 NULL
141054 +disable_so_distribute_cfs_runtime_fndecl_34121 distribute_cfs_runtime fndecl 0-2-3 34121 NULL
141055 +disable_so_iscsi_nacl_attrib_store_nopin_response_timeout_fndecl_34124 iscsi_nacl_attrib_store_nopin_response_timeout fndecl 0-3 34124 NULL
141056 +disable_so_bi_len_gfs2_bitmap_34126 bi_len gfs2_bitmap 0 34126 NULL
141057 +disable_so_qdiv_mode_skl_wrpll_params_34127 qdiv_mode skl_wrpll_params 0 34127 NULL
141058 +disable_so_cpuidle_enable_device_fndecl_34132 cpuidle_enable_device fndecl 0 34132 NULL
141059 +disable_so_timer_slack_ns_task_struct_34139 timer_slack_ns task_struct 0 34139 NULL
141060 +disable_so_mic_max_system_addr_fndecl_34141 mic_max_system_addr fndecl 0 34141 NULL nohasharray
141061 +disable_so_ima_calc_file_shash_fndecl_34141 ima_calc_file_shash fndecl 0 34141 &disable_so_mic_max_system_addr_fndecl_34141
141062 +disable_so_lm3533_led_get_hw_delay_fndecl_34142 lm3533_led_get_hw_delay fndecl 0 34142 NULL
141063 +disable_so_nd_ipv4_address_o2nm_node_34144 nd_ipv4_address o2nm_node 0 34144 NULL
141064 +disable_so_r28_val_fc2580_freq_regs_34150 r28_val fc2580_freq_regs 0 34150 NULL
141065 +disable_so_musb_read_txfunaddr_fndecl_34175 musb_read_txfunaddr fndecl 2-0 34175 NULL
141066 +disable_so_offset_addr_pch_udc_ep_34177 offset_addr pch_udc_ep 0 34177 NULL
141067 +disable_so_stv0900_get_carr_freq_fndecl_34190 stv0900_get_carr_freq fndecl 0-2 34190 NULL
141068 +disable_so_base_addr_user_desc_34191 base_addr user_desc 0 34191 NULL
141069 +disable_so_hi_cfg_timing_div_drxj_data_34197 hi_cfg_timing_div drxj_data 0 34197 NULL
141070 +disable_so_sha1_mb_async_finup_fndecl_34207 sha1_mb_async_finup fndecl 0 34207 NULL
141071 +disable_so_hpi_outstream_set_time_scale_fndecl_34210 hpi_outstream_set_time_scale fndecl 1-0 34210 NULL
141072 +disable_so_keyup_jiffies_rc_dev_34213 keyup_jiffies rc_dev 0 34213 NULL
141073 +disable_so_inet_sk_reselect_saddr_fndecl_34214 inet_sk_reselect_saddr fndecl 0 34214 NULL
141074 +disable_so_cm_ack_timeout_fndecl_34216 cm_ack_timeout fndecl 0-1-2 34216 NULL nohasharray
141075 +disable_so_req_consumer_index_phy_addr_high_ql3_adapter_34216 req_consumer_index_phy_addr_high ql3_adapter 0 34216 &disable_so_cm_ack_timeout_fndecl_34216
141076 +disable_so_nsec_to_clock_t_fndecl_34222 nsec_to_clock_t fndecl 0-1 34222 NULL
141077 +disable_so_pch_systime_write_fndecl_34223 pch_systime_write fndecl 2 34223 NULL
141078 +disable_so_addr_uio_mem_34242 addr uio_mem 0 34242 NULL
141079 +disable_so_xfs_btree_split_fndecl_34248 xfs_btree_split fndecl 0 34248 NULL
141080 +disable_so_address_acpi_pct_register_34258 address acpi_pct_register 0 34258 NULL
141081 +disable_so_ci_otg_fsm_add_timer_fndecl_34261 ci_otg_fsm_add_timer fndecl 2 34261 NULL
141082 +disable_so_snd_timer_resolution_fndecl_34272 snd_timer_resolution fndecl 0 34272 NULL
141083 +disable_so_delay_rts_after_send_serial_rs485_34273 delay_rts_after_send serial_rs485 0 34273 NULL nohasharray
141084 +disable_so_set_msr_interception_fndecl_34273 set_msr_interception fndecl 2 34273 &disable_so_delay_rts_after_send_serial_rs485_34273
141085 +disable_so_qla4xxx_fw_ext_timestamp_show_fndecl_34274 qla4xxx_fw_ext_timestamp_show fndecl 0 34274 NULL
141086 +disable_so_hash_ipport6_expire_fndecl_34286 hash_ipport6_expire fndecl 4 34286 NULL
141087 +disable_so_da9063_rtc_set_time_fndecl_34291 da9063_rtc_set_time fndecl 0 34291 NULL nohasharray
141088 +disable_so_early_cpu_to_node_fndecl_34291 early_cpu_to_node fndecl 0 34291 &disable_so_da9063_rtc_set_time_fndecl_34291
141089 +disable_so_port_io_addr_34293 port io_addr 0 34293 NULL
141090 +disable_so_nilfs_palloc_bitmap_blkoff_fndecl_34306 nilfs_palloc_bitmap_blkoff fndecl 0-2 34306 NULL
141091 +disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320 last_delaylps_stamp_jiffies rtl_ps_ctl 0 34320 NULL nohasharray
141092 +disable_so_tunedfreq_s5h1420_state_34320 tunedfreq s5h1420_state 0 34320 &disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320
141093 +disable_so_rd16_nvkm_ofuncs_34339 rd16 nvkm_ofuncs 0-2 34339 NULL
141094 +disable_so_cipher_cfg_offset_icp_qat_fw_cipher_cd_ctrl_hdr_34345 cipher_cfg_offset icp_qat_fw_cipher_cd_ctrl_hdr 0 34345 NULL
141095 +disable_so_eeprom_delay_ipw_priv_34346 eeprom_delay ipw_priv 0 34346 NULL nohasharray
141096 +disable_so_hpi_tone_detector_get_frequency_fndecl_34346 hpi_tone_detector_get_frequency fndecl 0-1 34346 &disable_so_eeprom_delay_ipw_priv_34346
141097 +disable_so_intr_timer_type_vnic_fc_config_34351 intr_timer_type vnic_fc_config 0 34351 NULL
141098 +disable_so_skcipher_null_crypt_fndecl_34354 skcipher_null_crypt fndecl 0-4 34354 NULL
141099 +disable_so_ac_stime_taskstats_34355 ac_stime taskstats 0 34355 NULL
141100 +disable_so_set_bit_to_user_fndecl_34358 set_bit_to_user fndecl 0 34358 NULL
141101 +disable_so_sip_timeout_vardecl_nf_conntrack_sip_c_34365 sip_timeout vardecl_nf_conntrack_sip.c 0 34365 NULL
141102 +disable_so_map_addr_fndecl_34371 map_addr fndecl 2-3-6-7 34371 NULL
141103 +disable_so_rds_sysctl_reconnect_min_jiffies_vardecl_34380 rds_sysctl_reconnect_min_jiffies vardecl 0 34380 NULL
141104 +disable_so_note_interrupt_fndecl_34381 note_interrupt fndecl 1 34381 NULL
141105 +disable_so_addr_nv50_sync_34383 addr nv50_sync 0 34383 NULL
141106 +disable_so_clock_gate_dis2_vlv_s0ix_state_34384 clock_gate_dis2 vlv_s0ix_state 0 34384 NULL
141107 +disable_so_sctp_add_bind_addr_fndecl_34385 sctp_add_bind_addr fndecl 4 34385 NULL nohasharray
141108 +disable_so_crypto_comp_decompress_fndecl_34385 crypto_comp_decompress fndecl 3 34385 &disable_so_sctp_add_bind_addr_fndecl_34385
141109 +disable_so_s5h1409_sleep_fndecl_34392 s5h1409_sleep fndecl 2 34392 NULL
141110 +disable_so_i2c_address_mt2266_config_34394 i2c_address mt2266_config 0 34394 NULL
141111 +disable_so_ext4_inode_bitmap_csum_verify_fndecl_34396 ext4_inode_bitmap_csum_verify fndecl 2-5 34396 NULL
141112 +disable_so_blocksize_crypto_report_cipher_34404 blocksize crypto_report_cipher 0 34404 NULL
141113 +disable_so_min_dwell_time_active_conf_scan_settings_34406 min_dwell_time_active conf_scan_settings 0 34406 NULL
141114 +disable_so_sec_ptp_clock_time_34411 sec ptp_clock_time 0 34411 NULL nohasharray
141115 +disable_so_vxlan_nla_get_addr_fndecl_34411 vxlan_nla_get_addr fndecl 0 34411 &disable_so_sec_ptp_clock_time_34411
141116 +disable_so_psb_intel_sdvo_create_preferred_input_timing_fndecl_34416 psb_intel_sdvo_create_preferred_input_timing fndecl 3-4 34416 NULL
141117 +disable_so_decode_attr_bitmap_fndecl_34420 decode_attr_bitmap fndecl 0 34420 NULL
141118 +disable_so_address_acpi_mem_space_context_34426 address acpi_mem_space_context 0 34426 NULL
141119 +disable_so_netlbl_domhsh_hash_fndecl_34442 netlbl_domhsh_hash fndecl 0 34442 NULL
141120 +disable_so_bdbar_addr_ichdev_34446 bdbar_addr ichdev 0 34446 NULL
141121 +disable_so_ksm_thread_sleep_millisecs_vardecl_ksm_c_34451 ksm_thread_sleep_millisecs vardecl_ksm.c 0 34451 NULL
141122 +disable_so_signal_ieee80211_rx_status_34458 signal ieee80211_rx_status 0 34458 NULL
141123 +disable_so_dma_addr_cxio_hal_ctrl_qp_34469 dma_addr cxio_hal_ctrl_qp 0 34469 NULL
141124 +disable_so_ata_lookup_timeout_table_fndecl_34470 ata_lookup_timeout_table fndecl 1 34470 NULL
141125 +disable_so_sk_rmem_schedule_fndecl_34476 sk_rmem_schedule fndecl 3 34476 NULL
141126 +disable_so_end_seq_tcp_sack_block_34486 end_seq tcp_sack_block 0 34486 NULL
141127 +disable_so_min_delay_intel_ilk_power_mgmt_34505 min_delay intel_ilk_power_mgmt 0 34505 NULL
141128 +disable_so_sol_time_fcoe_ctlr_34513 sol_time fcoe_ctlr 0 34513 NULL
141129 +disable_so_spu_set_interrupt_mode_fndecl_34518 spu_set_interrupt_mode fndecl 0 34518 NULL
141130 +disable_so_stmmac_interrupt_fndecl_34535 stmmac_interrupt fndecl 1 34535 NULL
141131 +disable_so_sin6_family_sockaddr_in6_34544 sin6_family sockaddr_in6 0 34544 NULL
141132 +disable_so_mem_addr__drm_via_descriptor_34550 mem_addr _drm_via_descriptor 0 34550 NULL
141133 +disable_so_root_server_addr_vardecl_34556 root_server_addr vardecl 0 34556 NULL
141134 +disable_so_pfkey_sadb_addr2xfrm_addr_fndecl_34565 pfkey_sadb_addr2xfrm_addr fndecl 0 34565 NULL
141135 +disable_so_map_sip_addr_fndecl_34566 map_sip_addr fndecl 2-3 34566 NULL
141136 +disable_so_path_refresh_time_mesh_config_34567 path_refresh_time mesh_config 0 34567 NULL nohasharray
141137 +disable_so_ccp_register_sha_algs_fndecl_34567 ccp_register_sha_algs fndecl 0 34567 &disable_so_path_refresh_time_mesh_config_34567
141138 +disable_so_max_tx_power_mwifiex_chan_freq_power_34571 max_tx_power mwifiex_chan_freq_power 0 34571 NULL
141139 +disable_so_last_mlx4_bitmap_34590 last mlx4_bitmap 0 34590 NULL
141140 +disable_so_alloc_cpumask_var_fndecl_34599 alloc_cpumask_var fndecl 2 34599 NULL
141141 +disable_so_addr_macb_dma_desc_34600 addr macb_dma_desc 0 34600 NULL
141142 +disable_so_eee_timer_vardecl_sxgbe_main_c_34602 eee_timer vardecl_sxgbe_main.c 0 34602 NULL nohasharray
141143 +disable_so_rdx_kvm_regs_34602 rdx kvm_regs 0 34602 &disable_so_eee_timer_vardecl_sxgbe_main_c_34602
141144 +disable_so_rsi_kvm_regs_34605 rsi kvm_regs 0 34605 NULL
141145 +disable_so_task_tgid_nr_ns_fndecl_34623 task_tgid_nr_ns fndecl 0 34623 NULL
141146 +disable_so_saddr_irnet_log_34630 saddr irnet_log 0 34630 NULL
141147 +disable_so_timestart_edc_34631 timestart edc 0 34631 NULL
141148 +disable_so_saddr_tcp4_pseudohdr_34636 saddr tcp4_pseudohdr 0 34636 NULL
141149 +disable_so_ab3100_mask_and_set_register_interruptible_fndecl_34643 ab3100_mask_and_set_register_interruptible fndecl 0 34643 NULL
141150 +disable_so_hsave_msr_nested_state_34651 hsave_msr nested_state 0 34651 NULL
141151 +disable_so_schedule_timeout_uninterruptible_fndecl_34670 schedule_timeout_uninterruptible fndecl 1-0 34670 NULL
141152 +disable_so_addr_tuner_i2c_props_34671 addr tuner_i2c_props 0 34671 NULL
141153 +disable_so_hash_ip4_expire_fndecl_34676 hash_ip4_expire fndecl 4 34676 NULL
141154 +disable_so_rxfunaddr_musb_csr_regs_34678 rxfunaddr musb_csr_regs 0 34678 NULL
141155 +disable_so_timer_intv_tipc_link_req_34680 timer_intv tipc_link_req 0 34680 NULL
141156 +disable_so_mounted_uid_ncp_fs_info_34684 mounted_uid ncp_fs_info 0 34684 NULL
141157 +disable_so_crypto_ablkcipher_setkey_fndecl_34685 crypto_ablkcipher_setkey fndecl 0-3 34685 NULL
141158 +disable_so_pm_qos_update_request_timeout_fndecl_34688 pm_qos_update_request_timeout fndecl 3-2 34688 NULL
141159 +disable_so_max_interrupt_work_vardecl_starfire_c_34691 max_interrupt_work vardecl_starfire.c 0 34691 NULL nohasharray
141160 +disable_so_register_dnaddr_notifier_fndecl_34691 register_dnaddr_notifier fndecl 0 34691 &disable_so_max_interrupt_work_vardecl_starfire_c_34691
141161 +disable_so_incr_cpu_timer_list_34693 incr cpu_timer_list 0 34693 NULL
141162 +disable_so_crypto_pcbc_decrypt_segment_fndecl_34695 crypto_pcbc_decrypt_segment fndecl 0 34695 NULL
141163 +disable_so_sgid_index_ib_global_route_34700 sgid_index ib_global_route 0 34700 NULL
141164 +disable_so_min_mtime_sit_info_34717 min_mtime sit_info 0 34717 NULL nohasharray
141165 +disable_so_panel_power_down_delay_intel_dp_34717 panel_power_down_delay intel_dp 0 34717 &disable_so_min_mtime_sit_info_34717
141166 +disable_so_i_hash_shift_vardecl_inode_c_34719 i_hash_shift vardecl_inode.c 0 34719 NULL
141167 +disable_so_wusb_trust_timeout_show_fndecl_34721 wusb_trust_timeout_show fndecl 0 34721 NULL nohasharray
141168 +disable_so_feed_div_min_matrox_pll_features_34721 feed_div_min matrox_pll_features 0 34721 &disable_so_wusb_trust_timeout_show_fndecl_34721
141169 +disable_so_time_ntlmv2_resp_34723 time ntlmv2_resp 0 34723 NULL
141170 +disable_so_cache_time_vardecl_sbs_c_34731 cache_time vardecl_sbs.c 0 34731 NULL
141171 +disable_so_calc_eng_mem_clock_fndecl_34737 calc_eng_mem_clock fndecl 2-0 34737 NULL
141172 +disable_so_rx_time_us_qlcnic_nic_intr_coalesce_34739 rx_time_us qlcnic_nic_intr_coalesce 0 34739 NULL
141173 +disable_so_di_mtime_qnx4_inode_entry_34740 di_mtime qnx4_inode_entry 0 34740 NULL
141174 +disable_so_ts_paddr_start_ath_hw_34743 ts_paddr_start ath_hw 0 34743 NULL
141175 +disable_so_smsc95xx_enable_phy_wakeup_interrupts_fndecl_34747 smsc95xx_enable_phy_wakeup_interrupts fndecl 0-2 34747 NULL
141176 +disable_so_ccp_sha_finup_fndecl_34752 ccp_sha_finup fndecl 0 34752 NULL
141177 +disable_so_sdr_fm_freq_vivid_dev_34755 sdr_fm_freq vivid_dev 0 34755 NULL
141178 +disable_so_out_n_analog_pcm_runtime_34756 out_n_analog pcm_runtime 0 34756 NULL
141179 +disable_so_dmaaddr_net2280_dma_34761 dmaaddr net2280_dma 0 34761 NULL
141180 +disable_so_wl12xx_tx_delayed_compl_fndecl_34763 wl12xx_tx_delayed_compl fndecl 0 34763 NULL
141181 +disable_so_uv_rtc_set_timer_fndecl_34765 uv_rtc_set_timer fndecl 1 34765 NULL
141182 +disable_so_switch_start_time_ath_chanctx_sched_34766 switch_start_time ath_chanctx_sched 0 34766 NULL
141183 +disable_so_xhci_calculate_intel_u2_timeout_fndecl_34769 xhci_calculate_intel_u2_timeout fndecl 0 34769 NULL
141184 +disable_so_addrconf_get_prefix_route_fndecl_34770 addrconf_get_prefix_route fndecl 2 34770 NULL nohasharray
141185 +disable_so_cp_mqd_base_addr_hi_cik_mqd_34770 cp_mqd_base_addr_hi cik_mqd 0 34770 &disable_so_addrconf_get_prefix_route_fndecl_34770
141186 +disable_so_ts_total_peak_time_ref_34800 ts_total peak_time_ref 0 34800 NULL nohasharray
141187 +disable_so_airtime_link_metric_get_fndecl_34800 airtime_link_metric_get fndecl 0 34800 &disable_so_ts_total_peak_time_ref_34800
141188 +disable_so_btrfsic_block_link_hashtable_lookup_fndecl_34807 btrfsic_block_link_hashtable_lookup fndecl 2-4 34807 NULL
141189 +disable_so_posix_cpu_nsleep_fndecl_34821 posix_cpu_nsleep fndecl 1 34821 NULL
141190 +disable_so_phys_addr_kvm_coalesced_mmio_34828 phys_addr kvm_coalesced_mmio 0 34828 NULL
141191 +disable_so_baddr_sym_m_vtob_34832 baddr sym_m_vtob 0 34832 NULL
141192 +disable_so_tp_set_timers_fndecl_34836 tp_set_timers fndecl 2 34836 NULL nohasharray
141193 +disable_so_clock_t_to_jiffies_fndecl_34836 clock_t_to_jiffies fndecl 0-1 34836 &disable_so_tp_set_timers_fndecl_34836
141194 +disable_so_bq2415x_sysfs_show_timer_fndecl_34838 bq2415x_sysfs_show_timer fndecl 0 34838 NULL
141195 +disable_so_compat_sys_utimensat_fndecl_34845 compat_sys_utimensat fndecl 1-0 34845 NULL
141196 +disable_so_be64_to_timespec_fndecl_34857 be64_to_timespec fndecl 1 34857 NULL
141197 +disable_so_bus_addr_drm_ati_pcigart_info_34860 bus_addr drm_ati_pcigart_info 0 34860 NULL
141198 +disable_so_rt2x00crypto_rx_insert_iv_fndecl_34864 rt2x00crypto_rx_insert_iv fndecl 2 34864 NULL
141199 +disable_so___mmc_set_clock_fndecl_34870 __mmc_set_clock fndecl 2 34870 NULL
141200 +disable_so_node_random_fndecl_34871 node_random fndecl 0 34871 NULL
141201 +disable_so_timer_endnode_hello_message_34875 timer endnode_hello_message 0 34875 NULL
141202 +disable_so_drbg_hash_df_fndecl_34876 drbg_hash_df fndecl 0-3 34876 NULL
141203 +disable_so_xfs_btree_shift_keys_fndecl_34880 xfs_btree_shift_keys fndecl 4 34880 NULL
141204 +disable_so_check_freqs_fndecl_34886 check_freqs fndecl 2 34886 NULL
141205 +disable_so_zd_iowrite16_fndecl_34890 zd_iowrite16 fndecl 0 34890 NULL
141206 +disable_so_timespec_to_be64_fndecl_34898 timespec_to_be64 fndecl 0 34898 NULL
141207 +disable_so_random_frame_fotg210_hcd_34908 random_frame fotg210_hcd 0 34908 NULL
141208 +disable_so___addrconf_sysctl_register_fndecl_34918 __addrconf_sysctl_register fndecl 0 34918 NULL
141209 +disable_so_addr_sge_fl_34923 addr sge_fl 0 34923 NULL
141210 +disable_so_irq_timeout_read_fndecl_34926 irq_timeout_read fndecl 3-0 34926 NULL
141211 +disable_so_show_interrupt_enable_fndecl_34935 show_interrupt_enable fndecl 0 34935 NULL
141212 +disable_so_sctp_getsockopt_paddr_thresholds_fndecl_34938 sctp_getsockopt_paddr_thresholds fndecl 0 34938 NULL
141213 +disable_so_nilfs_superblock_sb_write_time_show_fndecl_34943 nilfs_superblock_sb_write_time_show fndecl 0 34943 NULL
141214 +disable_so_emac_addr_bnx2x_mac_vals_34948 emac_addr bnx2x_mac_vals 0 34948 NULL
141215 +disable_so_fs_tss_segment_32_34954 fs tss_segment_32 0 34954 NULL
141216 +disable_so_twl6030_interrupt_mask_fndecl_34960 twl6030_interrupt_mask fndecl 2-0 34960 NULL
141217 +disable_so_tda18271_sleep_fndecl_34961 tda18271_sleep fndecl 0 34961 NULL
141218 +disable_so_smack_task_setscheduler_fndecl_34976 smack_task_setscheduler fndecl 0 34976 NULL
141219 +disable_so_rp_ts_jiffies_xpc_activate_mq_msghdr_uv_34992 rp_ts_jiffies xpc_activate_mq_msghdr_uv 0 34992 NULL
141220 +disable_so_p_vaddr_elf64_phdr_34996 p_vaddr elf64_phdr 0 34996 NULL
141221 +disable_so_ath9k_hw_rf_set_freq_fndecl_35000 ath9k_hw_rf_set_freq fndecl 0 35000 NULL
141222 +disable_so_regulator_set_voltage_time_sel_fndecl_35005 regulator_set_voltage_time_sel fndecl 2-3-0 35005 NULL
141223 +disable_so_read_addr_stride___cache_35010 read_addr_stride __cache 0 35010 NULL
141224 +disable_so_get_slave_base_gid_ix_fndecl_35011 get_slave_base_gid_ix fndecl 0-2-3 35011 NULL
141225 +disable_so_sccb_reg_write_fndecl_35015 sccb_reg_write fndecl 2-3 35015 NULL
141226 +disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019 fsl_pwm_calculate_period_cycles fndecl 0-2 35019 NULL nohasharray
141227 +disable_so_dn_hash_sock_fndecl_35019 dn_hash_sock fndecl 0 35019 &disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019
141228 +disable_so_lp8788_rtc_set_time_fndecl_35021 lp8788_rtc_set_time fndecl 0 35021 NULL
141229 +disable_so_qos_ctl_libipw_hdr_3addrqos_35024 qos_ctl libipw_hdr_3addrqos 0 35024 NULL
141230 +disable_so_clk_divider_set_rate_fndecl_35029 clk_divider_set_rate fndecl 2-3 35029 NULL
141231 +disable_so_et1phyaddr_ssb_sprom_35034 et1phyaddr ssb_sprom 0 35034 NULL
141232 +disable_so_tg3_hwclock_to_timestamp_fndecl_35038 tg3_hwclock_to_timestamp fndecl 2 35038 NULL
141233 +disable_so_cipso_v4_bitmap_walk_fndecl_35041 cipso_v4_bitmap_walk fndecl 0-3 35041 NULL
141234 +disable_so_wmi_set_mac_address_fndecl_35043 wmi_set_mac_address fndecl 0 35043 NULL
141235 +disable_so_hpi_cobranet_get_macaddress_fndecl_35048 hpi_cobranet_get_macaddress fndecl 1 35048 NULL
141236 +disable_so_rds_sysctl_reconnect_max_jiffies_vardecl_35052 rds_sysctl_reconnect_max_jiffies vardecl 0 35052 NULL
141237 +disable_so_bg_inode_bitmap_ext2_group_desc_35053 bg_inode_bitmap ext2_group_desc 0 35053 NULL
141238 +disable_so_jiffies_u132_endp_35057 jiffies u132_endp 0 35057 NULL
141239 +disable_so_vivid_sdr_s_frequency_fndecl_35060 vivid_sdr_s_frequency fndecl 0 35060 NULL nohasharray
141240 +disable_so_bnx2x_rearm_latch_signal_fndecl_35060 bnx2x_rearm_latch_signal fndecl 2 35060 &disable_so_vivid_sdr_s_frequency_fndecl_35060
141241 +disable_so_SYSC_signalfd4_fndecl_35061 SYSC_signalfd4 fndecl 4 35061 NULL
141242 +disable_so_qp_get_mtt_addr_fndecl_35062 qp_get_mtt_addr fndecl 0 35062 NULL nohasharray
141243 +disable_so_put_dec_fndecl_35062 put_dec fndecl 2 35062 &disable_so_qp_get_mtt_addr_fndecl_35062
141244 +disable_so_time_perf_cgroup_info_35063 time perf_cgroup_info 0 35063 NULL
141245 +disable_so_xattr_datum_hashkey_fndecl_35065 xattr_datum_hashkey fndecl 4 35065 NULL
141246 +disable_so_fandiv1_nct6775_data_35066 fandiv1 nct6775_data 0 35066 NULL
141247 +disable_so_backbias_response_time_radeon_dpm_35069 backbias_response_time radeon_dpm 0 35069 NULL
141248 +disable_so_wrmsrl_safe_on_cpu_fndecl_35071 wrmsrl_safe_on_cpu fndecl 0-1 35071 NULL
141249 +disable_so_update_time_vardecl_page_writeback_c_35083 update_time vardecl_page-writeback.c 0 35083 NULL
141250 +disable_so_fifo_copy_timeout_rtl8139_private_35085 fifo_copy_timeout rtl8139_private 0 35085 NULL
141251 +disable_so_kstrtou16_from_user_fndecl_35089 kstrtou16_from_user fndecl 2 35089 NULL
141252 +disable_so_atomic_check_drm_crtc_helper_funcs_35115 atomic_check drm_crtc_helper_funcs 0 35115 NULL
141253 +disable_so_sprintf_fndecl_35121 sprintf fndecl 0 35121 NULL
141254 +disable_so_ipv6_add_addr_fndecl_35131 ipv6_add_addr fndecl 4-5-7-8-6 35131 NULL
141255 +disable_so_free_irq_fndecl_35135 free_irq fndecl 1 35135 NULL
141256 +disable_so_inet_addr_onlink_fndecl_35142 inet_addr_onlink fndecl 2-3 35142 NULL
141257 +disable_so_dbg_snprintf_key_fndecl_35144 dbg_snprintf_key fndecl 4 35144 NULL
141258 +disable_so_compute_guest_tsc_fndecl_35147 compute_guest_tsc fndecl 0 35147 NULL
141259 +disable_so_ieee80211_crypto_ccmp_decrypt_fndecl_35154 ieee80211_crypto_ccmp_decrypt fndecl 2 35154 NULL
141260 +disable_so_start_time_task_struct_35158 start_time task_struct 0 35158 NULL
141261 +disable_so__da9063_wdt_set_timeout_fndecl_35161 _da9063_wdt_set_timeout fndecl 2-0 35161 NULL
141262 +disable_so_hard_add_expires_seconds_xfrm_lifetime_cfg_35162 hard_add_expires_seconds xfrm_lifetime_cfg 0 35162 NULL
141263 +disable_so_page_address_ms_param_register_35167 page_address ms_param_register 0 35167 NULL nohasharray
141264 +disable_so_rsaddr_irnet_socket_35167 rsaddr irnet_socket 0 35167 &disable_so_page_address_ms_param_register_35167
141265 +disable_so_acpi_os_remove_interrupt_handler_fndecl_35171 acpi_os_remove_interrupt_handler fndecl 1 35171 NULL
141266 +disable_so_hash_mac4_expire_fndecl_35179 hash_mac4_expire fndecl 4 35179 NULL
141267 +disable_so_wd_timeout_irlap_cb_35189 wd_timeout irlap_cb 0 35189 NULL
141268 +disable_so_bitmap_set_memory_bits_fndecl_35200 bitmap_set_memory_bits fndecl 2 35200 NULL
141269 +disable_so_o2nm_cluster_attr_idle_timeout_ms_read_fndecl_35219 o2nm_cluster_attr_idle_timeout_ms_read fndecl 0 35219 NULL
141270 +disable_so_set_clock_sdhci_ops_35233 set_clock sdhci_ops 2 35233 NULL
141271 +disable_so_dib3000mc_set_timing_fndecl_35234 dib3000mc_set_timing fndecl 2-3 35234 NULL
141272 +disable_so_ui_ctimensec_ufs2_inode_35235 ui_ctimensec ufs2_inode 0 35235 NULL nohasharray
141273 +disable_so_timerfd_fget_fndecl_35235 timerfd_fget fndecl 1 35235 &disable_so_ui_ctimensec_ufs2_inode_35235
141274 +disable_so_fat_time_fat2unix_fndecl_35238 fat_time_fat2unix fndecl 5-4-3 35238 NULL nohasharray
141275 +disable_so_c_reconnect_jiffies_rds_connection_35238 c_reconnect_jiffies rds_connection 0 35238 &disable_so_fat_time_fat2unix_fndecl_35238
141276 +disable_so_link_transition_jiffies_cas_35242 link_transition_jiffies cas 0 35242 NULL
141277 +disable_so_nested_vmx_load_msr_fndecl_35245 nested_vmx_load_msr fndecl 2 35245 NULL
141278 +disable_so_freqmax_snd_usb_endpoint_35248 freqmax snd_usb_endpoint 0 35248 NULL
141279 +disable_so___ocfs2_write_remove_suid_fndecl_35250 __ocfs2_write_remove_suid fndecl 0 35250 NULL
141280 +disable_so_si_parse_pplib_clock_info_fndecl_35257 si_parse_pplib_clock_info fndecl 3 35257 NULL
141281 +disable_so_nfs_init_timeout_values_fndecl_35265 nfs_init_timeout_values fndecl 3-4-2 35265 NULL
141282 +disable_so_pm_generic_runtime_suspend_fndecl_35268 pm_generic_runtime_suspend fndecl 0 35268 NULL
141283 +disable_so_err_time_ip_tunnel_35271 err_time ip_tunnel 0 35271 NULL
141284 +disable_so_addr_1_qla8044_minidump_entry_pollrdmwr_35274 addr_1 qla8044_minidump_entry_pollrdmwr 0 35274 NULL
141285 +disable_so_simple_strtoull_fndecl_35278 simple_strtoull fndecl 0 35278 NULL
141286 +disable_so_jiffies_to_wait_irctl_35279 jiffies_to_wait irctl 0 35279 NULL
141287 +disable_so_delay_loop_fndecl_35280 delay_loop fndecl 1 35280 NULL
141288 +disable_so_lbs_set_deep_sleep_fndecl_35287 lbs_set_deep_sleep fndecl 0 35287 NULL nohasharray
141289 +disable_so_log_start_addr_client_hdr_35287 log_start_addr client_hdr 0 35287 &disable_so_lbs_set_deep_sleep_fndecl_35287
141290 +disable_so_max_sleep_period_ieee80211_conf_35289 max_sleep_period ieee80211_conf 0 35289 NULL
141291 +disable_so_default_mclk_radeon_clock_35306 default_mclk radeon_clock 0 35306 NULL nohasharray
141292 +disable_so_clock_intel_sdvo_preferred_input_timing_args_35306 clock intel_sdvo_preferred_input_timing_args 0 35306 &disable_so_default_mclk_radeon_clock_35306
141293 +disable_so_sctp_setsockopt_primary_addr_fndecl_35330 sctp_setsockopt_primary_addr fndecl 3-0 35330 NULL
141294 +disable_so_sys_setreuid_fndecl_35338 sys_setreuid fndecl 0-1-2 35338 NULL
141295 +disable_so_tailbuf_paddr_gr_ep_35341 tailbuf_paddr gr_ep 0 35341 NULL
141296 +disable_so_hpi_write_words_le16_fndecl_35350 hpi_write_words_le16 fndecl 2-4 35350 NULL
141297 +disable_so_kvm_set_irq_fndecl_35352 kvm_set_irq fndecl 3-2 35352 NULL
141298 +disable_so_rq_pbl_addr_lo_fcoe_kwqe_conn_offload1_35353 rq_pbl_addr_lo fcoe_kwqe_conn_offload1 0 35353 NULL
141299 +disable_so_trim_timeout_mmc_ext_csd_35357 trim_timeout mmc_ext_csd 0 35357 NULL
141300 +disable_so_alps_get_bitmap_points_fndecl_35358 alps_get_bitmap_points fndecl 1 35358 NULL nohasharray
141301 +disable_so_nilfs_btree_node_init_fndecl_35358 nilfs_btree_node_init fndecl 4 35358 &disable_so_alps_get_bitmap_points_fndecl_35358
141302 +disable_so_fl_break_time_file_lock_35359 fl_break_time file_lock 0 35359 NULL
141303 +disable_so_read_addr_qla82xx_md_entry_cache_35362 read_addr qla82xx_md_entry_cache 0 35362 NULL
141304 +disable_so_maddr_xmaddr_35364 maddr xmaddr 0 35364 NULL
141305 +disable_so_timeout_per_command_vscsiif_request_35368 timeout_per_command vscsiif_request 0 35368 NULL
141306 +disable_so_fuse_read_interrupt_fndecl_35386 fuse_read_interrupt fndecl 3-0 35386 NULL
141307 +disable_so_vsock_addr_init_fndecl_35395 vsock_addr_init fndecl 2 35395 NULL
141308 +disable_so_khugepaged_alloc_sleep_millisecs_vardecl_huge_memory_c_35404 khugepaged_alloc_sleep_millisecs vardecl_huge_memory.c 0 35404 NULL
141309 +disable_so_crypto_ahash_setkey_fndecl_35405 crypto_ahash_setkey fndecl 0-3 35405 NULL
141310 +disable_so_en_addr1_nphy_rf_control_override_rev3_35419 en_addr1 nphy_rf_control_override_rev3 0 35419 NULL
141311 +disable_so_rds_ib_update_ipaddr_fndecl_35431 rds_ib_update_ipaddr fndecl 0-2 35431 NULL
141312 +disable_so_address_atto_vda_sge_35432 address atto_vda_sge 0 35432 NULL
141313 +disable_so_w1_process_command_addremove_fndecl_35438 w1_process_command_addremove fndecl 0 35438 NULL
141314 +disable_so_smp_cmd_pairing_random_fndecl_35441 smp_cmd_pairing_random fndecl 0 35441 NULL
141315 +disable_so_crypto_gcm_module_init_fndecl_35446 crypto_gcm_module_init fndecl 0 35446 NULL
141316 +disable_so_ath5k_hw_get_default_slottime_fndecl_35448 ath5k_hw_get_default_slottime fndecl 0 35448 NULL
141317 +disable_so_ac_gid_acct_v3_35461 ac_gid acct_v3 0 35461 NULL nohasharray
141318 +disable_so_bitmap_checkpage_fndecl_35461 bitmap_checkpage fndecl 2 35461 &disable_so_ac_gid_acct_v3_35461
141319 +disable_so_bitmap_blkno_ocfs2_super_35475 bitmap_blkno ocfs2_super 0 35475 NULL
141320 +disable_so_rate_dummy_systimer_pcm_35487 rate dummy_systimer_pcm 0 35487 NULL
141321 +disable_so_moder_time_mlx4_en_cq_35496 moder_time mlx4_en_cq 0 35496 NULL
141322 +disable_so_orion_spi_runtime_resume_fndecl_35506 orion_spi_runtime_resume fndecl 0 35506 NULL
141323 +disable_so_monotonic_time_snsec_vsyscall_gtod_data_35513 monotonic_time_snsec vsyscall_gtod_data 0 35513 NULL
141324 +disable_so_mceusb_process_ir_data_fndecl_35515 mceusb_process_ir_data fndecl 2 35515 NULL
141325 +disable_so_dst_set_freq_fndecl_35516 dst_set_freq fndecl 2 35516 NULL
141326 +disable_so_rtl8139_weird_interrupt_fndecl_35523 rtl8139_weird_interrupt fndecl 4-5 35523 NULL
141327 +disable_so_irlmp_start_discovery_timer_fndecl_35529 irlmp_start_discovery_timer fndecl 2 35529 NULL
141328 +disable_so_address_SGentry_35534 address SGentry 0 35534 NULL
141329 +disable_so_src_clk_freq_msdc_host_35541 src_clk_freq msdc_host 0 35541 NULL
141330 +disable_so_SYSC_signal_fndecl_35543 SYSC_signal fndecl 1 35543 NULL
141331 +disable_so_current_frequency_lgdt3306a_state_35547 current_frequency lgdt3306a_state 0 35547 NULL
141332 +disable_so_i_rt_spc_timelimit_qc_info_35555 i_rt_spc_timelimit qc_info 0 35555 NULL
141333 +disable_so_host_kvm_shared_msr_values_35560 host kvm_shared_msr_values 0 35560 NULL
141334 +disable_so_mapped_loc_addr_nes_cm_info_35561 mapped_loc_addr nes_cm_info 0 35561 NULL
141335 +disable_so_ath6kl_set_addrwin_reg_fndecl_35566 ath6kl_set_addrwin_reg fndecl 0-2 35566 NULL
141336 +disable_so_output_sleep_fndecl_35570 output_sleep fndecl 1 35570 NULL
141337 +disable_so_aes_decrypt_fail_read_fndecl_35596 aes_decrypt_fail_read fndecl 0-3 35596 NULL
141338 +disable_so_hw_timeout_redrat3_dev_35597 hw_timeout redrat3_dev 0 35597 NULL
141339 +disable_so_cx231xx_set_analog_freq_fndecl_35598 cx231xx_set_analog_freq fndecl 2 35598 NULL
141340 +disable_so_sctp_conn_schedule_fndecl_35608 sctp_conn_schedule fndecl 1 35608 NULL
141341 +disable_so_runtime_suspend_sleep_time_cyapa_35610 runtime_suspend_sleep_time cyapa 0 35610 NULL
141342 +disable_so_debug_dma_unmap_page_fndecl_35623 debug_dma_unmap_page fndecl 3-2 35623 NULL
141343 +disable_so_timecounter_read_fndecl_35625 timecounter_read fndecl 0 35625 NULL
141344 +disable_so_clock_mmc_ios_35630 clock mmc_ios 0 35630 NULL
141345 +disable_so_pretimeout_kempld_wdt_data_35641 pretimeout kempld_wdt_data 0 35641 NULL
141346 +disable_so_time_show_fndecl_35660 time_show fndecl 0 35660 NULL
141347 +disable_so_div3_pll_div_35668 div3 pll_div 0 35668 NULL
141348 +disable_so_btree_get_extent_fndecl_35670 btree_get_extent fndecl 4-5 35670 NULL
141349 +disable_so_paddr_ath10k_skb_cb_35676 paddr ath10k_skb_cb 0 35676 NULL
141350 +disable_so_pci_bus_mraid_hba_info_35677 pci_bus mraid_hba_info 0 35677 NULL
141351 +disable_so_m41t80_get_datetime_fndecl_35678 m41t80_get_datetime fndecl 0 35678 NULL
141352 +disable_so_sh_tmu_clock_event_next_fndecl_35683 sh_tmu_clock_event_next fndecl 1 35683 NULL
141353 +disable_so_randomize_range_fndecl_35684 randomize_range fndecl 1-2-3-0 35684 NULL
141354 +disable_so_complete_signal_fndecl_35696 complete_signal fndecl 1 35696 NULL
141355 +disable_so_nft_hash_insert_fndecl_35701 nft_hash_insert fndecl 0 35701 NULL
141356 +disable_so_kvm_vm_ioctl_set_tss_addr_fndecl_35702 kvm_vm_ioctl_set_tss_addr fndecl 2 35702 NULL
141357 +disable_so_si2165_adjust_pll_divl_fndecl_35704 si2165_adjust_pll_divl fndecl 0 35704 NULL
141358 +disable_so_addr_l_xfer_desc_35720 addr_l xfer_desc 0 35720 NULL
141359 +disable_so_m_hash_dlm_message_35721 m_hash dlm_message 0 35721 NULL
141360 +disable_so_end_freq_khz_ieee80211_freq_range_35730 end_freq_khz ieee80211_freq_range 0 35730 NULL
141361 +disable_so_start_addr_vpdma_dtd_35734 start_addr vpdma_dtd 0 35734 NULL
141362 +disable_so_red_calc_qavg_from_idle_time_fndecl_35745 red_calc_qavg_from_idle_time fndecl 0 35745 NULL
141363 +disable_so_cg_spll_spread_spectrum_2_si_clock_registers_35754 cg_spll_spread_spectrum_2 si_clock_registers 0 35754 NULL
141364 +disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758 l2tp_flowinfo sockaddr_l2tpip6 0 35758 NULL nohasharray
141365 +disable_so_sk_txhash_sock_35758 sk_txhash sock 0 35758 &disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758
141366 +disable_so_get_mac_address_efx_nic_type_35761 get_mac_address efx_nic_type 0 35761 NULL
141367 +disable_so_crypto_aead_alg_ivsize_fndecl_35777 crypto_aead_alg_ivsize fndecl 0 35777 NULL
141368 +disable_so_vga_switcheroo_runtime_suspend_fndecl_35778 vga_switcheroo_runtime_suspend fndecl 0 35778 NULL
141369 +disable_so_sm_lookup_bitmap_fndecl_35780 sm_lookup_bitmap fndecl 2 35780 NULL
141370 +disable_so_r6040_interrupt_fndecl_35784 r6040_interrupt fndecl 1 35784 NULL
141371 +disable_so_timer_installed_vardecl_ad1848_c_35808 timer_installed vardecl_ad1848.c 0 35808 NULL
141372 +disable_so_addr_to_kill_35815 addr to_kill 0 35815 NULL
141373 +disable_so_postsleep_max_us_mmc_ioc_cmd_35817 postsleep_max_us mmc_ioc_cmd 0 35817 NULL
141374 +disable_so_calc_hash_fndecl_35821 calc_hash fndecl 0-3 35821 NULL
141375 +disable_so_testscript_addr_ath6kl_hw_35825 testscript_addr ath6kl_hw 0 35825 NULL
141376 +disable_so_dma_addr_cpcs_trailer_desc_35826 dma_addr cpcs_trailer_desc 0 35826 NULL nohasharray
141377 +disable_so_nr_threads_signal_struct_35826 nr_threads signal_struct 0 35826 &disable_so_dma_addr_cpcs_trailer_desc_35826
141378 +disable_so_iwl_mvm_schedule_csa_period_fndecl_35828 iwl_mvm_schedule_csa_period fndecl 3-4-0 35828 NULL
141379 +disable_so_nfs4_schedule_stateid_recovery_fndecl_35861 nfs4_schedule_stateid_recovery fndecl 0 35861 NULL
141380 +disable_so_timeout_last_ncp_server_35864 timeout_last ncp_server 0 35864 NULL
141381 +disable_so_send_utimes_fndecl_35871 send_utimes fndecl 3-0-2 35871 NULL nohasharray
141382 +disable_so_remote_rp_ts_jiffies_xpc_partition_35871 remote_rp_ts_jiffies xpc_partition 0 35871 &disable_so_send_utimes_fndecl_35871
141383 +disable_so_current_frequency_lgdt3305_state_35902 current_frequency lgdt3305_state 0 35902 NULL
141384 +disable_so_dram_addr_to_input_addr_fndecl_35905 dram_addr_to_input_addr fndecl 0-2 35905 NULL nohasharray
141385 +disable_so_ifa_local_dn_ifaddr_35905 ifa_local dn_ifaddr 0 35905 &disable_so_dram_addr_to_input_addr_fndecl_35905
141386 +disable_so_proc_uid_map_write_fndecl_35919 proc_uid_map_write fndecl 0-3 35919 NULL
141387 +disable_so_snd_timer_user_fasync_fndecl_35926 snd_timer_user_fasync fndecl 1 35926 NULL nohasharray
141388 +disable_so_ecb_aes_encrypt_fndecl_35926 ecb_aes_encrypt fndecl 0-4 35926 &disable_so_snd_timer_user_fasync_fndecl_35926
141389 +disable_so_st_ctime_sec_p9_stat_dotl_35932 st_ctime_sec p9_stat_dotl 0 35932 NULL
141390 +disable_so_cg_spll_func_cntl_rv730_clock_registers_35937 cg_spll_func_cntl rv730_clock_registers 0 35937 NULL
141391 +disable_so_phy_addr_niu_35946 phy_addr niu 0 35946 NULL
141392 +disable_so_curr_freq_ufs_clk_info_35949 curr_freq ufs_clk_info 0 35949 NULL
141393 +disable_so_ac_gid_taskstats_35951 ac_gid taskstats 0 35951 NULL
141394 +disable_so_addr_hi_eth_rx_bd_35955 addr_hi eth_rx_bd 0 35955 NULL nohasharray
141395 +disable_so_hw_dma_bit_mask_hptiop_adapter_ops_35955 hw_dma_bit_mask hptiop_adapter_ops 0 35955 &disable_so_addr_hi_eth_rx_bd_35955
141396 +disable_so_crypto_cmac_digest_setkey_fndecl_35967 crypto_cmac_digest_setkey fndecl 0-3 35967 NULL
141397 +disable_so_abort_mfi_phys_addr_hi_megasas_abort_frame_35969 abort_mfi_phys_addr_hi megasas_abort_frame 0 35969 NULL
141398 +disable_so_pch_can_bit_set_fndecl_35970 pch_can_bit_set fndecl 2 35970 NULL
141399 +disable_so_kvasprintf_fndecl_35976 kvasprintf fndecl 1 35976 NULL
141400 +disable_so___bitmap_parse_fndecl_35977 __bitmap_parse fndecl 0-2-5 35977 NULL
141401 +disable_so_nct6775_select_fan_div_fndecl_35983 nct6775_select_fan_div fndecl 3-4 35983 NULL
141402 +disable_so_ip_hash_ip4_elem_35987 ip hash_ip4_elem 0 35987 NULL
141403 +disable_so_nct6775_write_fan_div_common_fndecl_35989 nct6775_write_fan_div_common fndecl 2 35989 NULL nohasharray
141404 +disable_so_get_mtime_fndecl_35989 get_mtime fndecl 0 35989 &disable_so_nct6775_write_fan_div_common_fndecl_35989
141405 +disable_so_sctp_getsockopt_peer_addr_params_fndecl_35998 sctp_getsockopt_peer_addr_params fndecl 0 35998 NULL
141406 +disable_so_tuner_frequency_stv0299_state_35999 tuner_frequency stv0299_state 0 35999 NULL
141407 +disable_so_sinfo_timetolive_sctp_sndrcvinfo_36000 sinfo_timetolive sctp_sndrcvinfo 0 36000 NULL
141408 +disable_so_h_start_jiffies_jbd2_journal_handle_36008 h_start_jiffies jbd2_journal_handle 0 36008 NULL nohasharray
141409 +disable_so_ccp_aes_xts_setkey_fndecl_36008 ccp_aes_xts_setkey fndecl 0-3 36008 &disable_so_h_start_jiffies_jbd2_journal_handle_36008
141410 +disable_so_uv_local_mmr_address_fndecl_36009 uv_local_mmr_address fndecl 1 36009 NULL
141411 +disable_so_adxl34x_autosleep_show_fndecl_36014 adxl34x_autosleep_show fndecl 0 36014 NULL
141412 +disable_so_tst_addr_ns_dev_36023 tst_addr ns_dev 0 36023 NULL
141413 +disable_so_addr_acard_sg_36025 addr acard_sg 0 36025 NULL
141414 +disable_so_pcxhr_sub_get_external_clock_fndecl_36041 pcxhr_sub_get_external_clock fndecl 0 36041 NULL
141415 +disable_so_address_fault_36043 address fault 0 36043 NULL
141416 +disable_so_s35390a_rtc_set_time_fndecl_36048 s35390a_rtc_set_time fndecl 0 36048 NULL nohasharray
141417 +disable_so_rt5677_dsp_mode_i2c_read_addr_fndecl_36048 rt5677_dsp_mode_i2c_read_addr fndecl 0-2 36048 &disable_so_s35390a_rtc_set_time_fndecl_36048
141418 +disable_so_mmd_addr_reg_val_36052 mmd_addr reg_val 0 36052 NULL
141419 +disable_so_ips_flashbusaddr_vardecl_ips_c_36053 ips_flashbusaddr vardecl_ips.c 0 36053 NULL
141420 +disable_so_i_spc_timelimit_qc_info_36081 i_spc_timelimit qc_info 0 36081 NULL
141421 +disable_so_st_gid_stat_36085 st_gid stat 0 36085 NULL
141422 +disable_so_acpi_ev_address_space_dispatch_fndecl_36089 acpi_ev_address_space_dispatch fndecl 0-4-5 36089 NULL
141423 +disable_so_mpll_ad_func_cntl_2_ni_clock_registers_36093 mpll_ad_func_cntl_2 ni_clock_registers 0 36093 NULL
141424 +disable_so_i_atime_ocfs2_dinode_36099 i_atime ocfs2_dinode 0 36099 NULL
141425 +disable_so_setup_timer_IRQ0_pin_fndecl_36100 setup_timer_IRQ0_pin fndecl 3-2 36100 NULL
141426 +disable_so_error_info_addr_mvm_alive_resp_36103 error_info_addr mvm_alive_resp 0 36103 NULL nohasharray
141427 +disable_so_cma_bitmap_pages_to_bits_fndecl_36103 cma_bitmap_pages_to_bits fndecl 0-2 36103 &disable_so_error_info_addr_mvm_alive_resp_36103
141428 +disable_so_kstrtoull_fndecl_36106 kstrtoull fndecl 0 36106 NULL
141429 +disable_so_fax_head_line_time_fndecl_36108 fax_head_line_time fndecl 0 36108 NULL
141430 +disable_so_rtl8152_set_mac_address_fndecl_36112 rtl8152_set_mac_address fndecl 0 36112 NULL
141431 +disable_so_t_sleep_cycle_at86rf2xx_chip_data_36118 t_sleep_cycle at86rf2xx_chip_data 0 36118 NULL
141432 +disable_so_no_quota_btrfs_delayed_ref_node_36121 no_quota btrfs_delayed_ref_node 0 36121 NULL nohasharray
141433 +disable_so_ccp_register_aes_xts_algs_fndecl_36121 ccp_register_aes_xts_algs fndecl 0 36121 &disable_so_no_quota_btrfs_delayed_ref_node_36121
141434 +disable_so_shutdown_time_vardecl_torture_c_36136 shutdown_time vardecl_torture.c 0 36136 NULL nohasharray
141435 +disable_so_i40e_init_interrupt_scheme_fndecl_36136 i40e_init_interrupt_scheme fndecl 0 36136 &disable_so_shutdown_time_vardecl_torture_c_36136
141436 +disable_so_ath5k_hw_clocktoh_fndecl_36137 ath5k_hw_clocktoh fndecl 0-2 36137 NULL
141437 +disable_so_addr_off_bfa_flash_s_36155 addr_off bfa_flash_s 0 36155 NULL
141438 +disable_so_mlx4_bitmap_free_fndecl_36158 mlx4_bitmap_free fndecl 2 36158 NULL
141439 +disable_so_setup_cluster_no_bitmap_fndecl_36163 setup_cluster_no_bitmap fndecl 4-5-6-7 36163 NULL
141440 +disable_so_last_queue_full_time_bfad_itnim_s_36172 last_queue_full_time bfad_itnim_s 0 36172 NULL
141441 +disable_so_do_cpuid_ent_fndecl_36174 do_cpuid_ent fndecl 5 36174 NULL
141442 +disable_so_lzo_compress_fndecl_36177 lzo_compress fndecl 3 36177 NULL
141443 +disable_so_set_radio_freq_fndecl_36200 set_radio_freq fndecl 2 36200 NULL
141444 +disable_so_get_random_bytes_arch_fndecl_36201 get_random_bytes_arch fndecl 2 36201 NULL
141445 +disable_so_netlbl_unlhsh_add_addr4_fndecl_36206 netlbl_unlhsh_add_addr4 fndecl 4-0 36206 NULL
141446 +disable_so_assert_file_addr_sdpcm_shared_36210 assert_file_addr sdpcm_shared 0 36210 NULL
141447 +disable_so_timestamp_rxdone_entry_desc_36213 timestamp rxdone_entry_desc 0 36213 NULL
141448 +disable_so_interrupts_open_fndecl_36230 interrupts_open fndecl 0 36230 NULL
141449 +disable_so_nhash_jffs2_full_dirent_36231 nhash jffs2_full_dirent 0 36231 NULL
141450 +disable_so_max_level_cpufreq_cooling_device_36241 max_level cpufreq_cooling_device 0 36241 NULL
141451 +disable_so_ovl_set_timestamps_fndecl_36245 ovl_set_timestamps fndecl 0 36245 NULL
141452 +disable_so_evtchn_interrupt_fndecl_36255 evtchn_interrupt fndecl 1 36255 NULL
141453 +disable_so_timeout_ip_vs_service_36264 timeout ip_vs_service 0 36264 NULL
141454 +disable_so_dwell_time_dfs_conf_scan_settings_36271 dwell_time_dfs conf_scan_settings 0 36271 NULL
141455 +disable_so_drbd_send_uuids_fndecl_36274 drbd_send_uuids fndecl 0 36274 NULL
141456 +disable_so_bd_list_addr_lo_bnx2i_logout_request_36277 bd_list_addr_lo bnx2i_logout_request 0 36277 NULL
141457 +disable_so_rds_ib_add_ipaddr_fndecl_36278 rds_ib_add_ipaddr fndecl 2 36278 NULL nohasharray
141458 +disable_so_nilfs_btree_assign_gc_fndecl_36278 nilfs_btree_assign_gc fndecl 0-3 36278 &disable_so_rds_ib_add_ipaddr_fndecl_36278
141459 +disable_so_last_post_time_vardecl_hv_balloon_c_36289 last_post_time vardecl_hv_balloon.c 0 36289 NULL
141460 +disable_so_skb_physaddr_macb_36295 skb_physaddr macb 0 36295 NULL
141461 +disable_so_dq_hash_bits_vardecl_dquot_c_36296 dq_hash_bits vardecl_dquot.c 0 36296 NULL
141462 +disable_so_rpfilter_get_saddr_fndecl_36300 rpfilter_get_saddr fndecl 0-1 36300 NULL
141463 +disable_so_sys_setregid16_fndecl_36302 sys_setregid16 fndecl 0-1-2 36302 NULL
141464 +disable_so_f_frequency_fc2580_dev_36307 f_frequency fc2580_dev 0 36307 NULL
141465 +disable_so_address_r8a66597_td_36315 address r8a66597_td 0 36315 NULL
141466 +disable_so_address_acpi_madt_local_apic_override_36325 address acpi_madt_local_apic_override 0 36325 NULL nohasharray
141467 +disable_so_num_addresses_i40e_aqc_macvlan_36325 num_addresses i40e_aqc_macvlan 0 36325 &disable_so_address_acpi_madt_local_apic_override_36325
141468 +disable_so_cache_time_vardecl_ds2760_battery_c_36329 cache_time vardecl_ds2760_battery.c 0 36329 NULL
141469 +disable_so_ext_start_addr_hi_i740fb_par_36335 ext_start_addr_hi i740fb_par 0 36335 NULL
141470 +disable_so_mlx4_get_slave_node_guid_fndecl_36336 mlx4_get_slave_node_guid fndecl 2 36336 NULL
141471 +disable_so_reg_delay_fndecl_36338 reg_delay fndecl 5 36338 NULL
141472 +disable_so_dev_addr_del_fndecl_36356 dev_addr_del fndecl 0 36356 NULL
141473 +disable_so_address_low_b43_dmadesc64_36370 address_low b43_dmadesc64 0 36370 NULL
141474 +disable_so_cpuid_seek_fndecl_36372 cpuid_seek fndecl 0-2 36372 NULL
141475 +disable_so_mhash_entries_vardecl_namespace_c_36377 mhash_entries vardecl_namespace.c 0 36377 NULL
141476 +disable_so_btree_grow_fndecl_36388 btree_grow fndecl 3 36388 NULL
141477 +disable_so_ie6xx_wdt_set_timeout_fndecl_36389 ie6xx_wdt_set_timeout fndecl 2 36389 NULL
141478 +disable_so_cq_page_table_addr_hi_iscsi_kwqe_conn_offload1_36403 cq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 36403 NULL
141479 +disable_so_phys_addr_ntb_mw_36409 phys_addr ntb_mw 0 36409 NULL
141480 +disable_so_tsl2563_write_interrupt_config_fndecl_36415 tsl2563_write_interrupt_config fndecl 0 36415 NULL
141481 +disable_so_bitmap_bitremap_fndecl_36419 bitmap_bitremap fndecl 4-0-1 36419 NULL
141482 +disable_so_cryptd_hash_final_enqueue_fndecl_36420 cryptd_hash_final_enqueue fndecl 0 36420 NULL
141483 +disable_so_addr_azx_rb_36425 addr azx_rb 0 36425 NULL
141484 +disable_so_discov_timeout_hci_dev_36432 discov_timeout hci_dev 0 36432 NULL
141485 +disable_so_interrupt_event_ixgbe_adapter_36433 interrupt_event ixgbe_adapter 0 36433 NULL
141486 +disable_so_hpi_bitstream_set_clock_edge_fndecl_36438 hpi_bitstream_set_clock_edge fndecl 1-0 36438 NULL
141487 +disable_so_atime_fuse_setattr_in_36441 atime fuse_setattr_in 0 36441 NULL
141488 +disable_so_family_xfrm_usersa_info_36443 family xfrm_usersa_info 0 36443 NULL
141489 +disable_so_wlc_phy_channel2freq_fndecl_36444 wlc_phy_channel2freq fndecl 1 36444 NULL
141490 +disable_so_max_delay_intel_ilk_power_mgmt_36447 max_delay intel_ilk_power_mgmt 0 36447 NULL
141491 +disable_so_sys_setregid_fndecl_36457 sys_setregid fndecl 0-1-2 36457 NULL
141492 +disable_so_mpll_dq_func_cntl_rv770_clock_registers_36466 mpll_dq_func_cntl rv770_clock_registers 0 36466 NULL
141493 +disable_so_shortcal_timer_ath_ani_36468 shortcal_timer ath_ani 0 36468 NULL
141494 +disable_so_check_config_address_fndecl_36471 check_config_address fndecl 4 36471 NULL nohasharray
141495 +disable_so_db_addr_mlx5_ib_create_srq_36471 db_addr mlx5_ib_create_srq 0 36471 &disable_so_check_config_address_fndecl_36471
141496 +disable_so_sysctl_rose_reset_request_timeout_vardecl_36479 sysctl_rose_reset_request_timeout vardecl 0 36479 NULL
141497 +disable_so_address_mspro_attr_entry_36482 address mspro_attr_entry 0 36482 NULL
141498 +disable_so_min_discovery_timeout_mesh_config_36485 min_discovery_timeout mesh_config 0 36485 NULL
141499 +disable_so_bitmap_il_ht_agg_36487 bitmap il_ht_agg 0 36487 NULL
141500 +disable_so_crypto_ecb_crypt_fndecl_36489 crypto_ecb_crypt fndecl 0 36489 NULL
141501 +disable_so_address_arch_hw_breakpoint_36491 address arch_hw_breakpoint 0 36491 NULL
141502 +disable_so_flush_timer_iwl_lq_sta_36505 flush_timer iwl_lq_sta 0 36505 NULL
141503 +disable_so_demod_address_sp8870_config_36507 demod_address sp8870_config 0 36507 NULL
141504 +disable_so_hashbin_remove_fndecl_36512 hashbin_remove fndecl 2 36512 NULL
141505 +disable_so_mpll_ad_func_cntl_ni_clock_registers_36523 mpll_ad_func_cntl ni_clock_registers 0 36523 NULL
141506 +disable_so_timeout_usbdevfs_bulktransfer_36525 timeout usbdevfs_bulktransfer 0 36525 NULL
141507 +disable_so_ctl_freq_cx231xx_36526 ctl_freq cx231xx 0 36526 NULL
141508 +disable_so_last_isr_time_misc_stats_36527 last_isr_time misc_stats 0 36527 NULL
141509 +disable_so_mlx4_gen_guid_change_eqe_fndecl_36529 mlx4_gen_guid_change_eqe fndecl 0-2-3 36529 NULL
141510 +disable_so_addr_e1000_phy_info_36530 addr e1000_phy_info 0 36530 NULL nohasharray
141511 +disable_so_misc_mce_36530 misc mce 0 36530 &disable_so_addr_e1000_phy_info_36530
141512 +disable_so_align_addr_sdhci_host_36535 align_addr sdhci_host 0 36535 NULL
141513 +disable_so_gran_sizek_mtrr_cleanup_result_36538 gran_sizek mtrr_cleanup_result 0 36538 NULL
141514 +disable_so_mcryptd_hash_export_fndecl_36554 mcryptd_hash_export fndecl 0 36554 NULL
141515 +disable_so_snd_opl3_timer_new_fndecl_36558 snd_opl3_timer_new fndecl 0-3-2 36558 NULL
141516 +disable_so_alarmtimer_rtc_interface_setup_fndecl_36561 alarmtimer_rtc_interface_setup fndecl 0 36561 NULL
141517 +disable_so_mb86a20s_read_signal_strength_fndecl_36562 mb86a20s_read_signal_strength fndecl 0 36562 NULL
141518 +disable_so_devm_request_threaded_irq_fndecl_36564 devm_request_threaded_irq fndecl 0-2-5 36564 NULL
141519 +disable_so_VDisplay_xtimings_36585 VDisplay xtimings 0 36585 NULL
141520 +disable_so_delay_usec_e1000_eeprom_info_36611 delay_usec e1000_eeprom_info 0 36611 NULL
141521 +disable_so_enabled_hrtimer_events_fusbh200_hcd_36613 enabled_hrtimer_events fusbh200_hcd 0 36613 NULL nohasharray
141522 +disable_so_myaddr_sym_hcb_36613 myaddr sym_hcb 0 36613 &disable_so_enabled_hrtimer_events_fusbh200_hcd_36613
141523 +disable_so_bmc150_accel_runtime_resume_fndecl_36616 bmc150_accel_runtime_resume fndecl 0 36616 NULL nohasharray
141524 +disable_so_frequency_tuner_simple_priv_36616 frequency tuner_simple_priv 0 36616 &disable_so_bmc150_accel_runtime_resume_fndecl_36616
141525 +disable_so_dll_cntl_ni_clock_registers_36640 dll_cntl ni_clock_registers 0 36640 NULL
141526 +disable_so_phys_addr_high_qlcnic_tx_mbx_36646 phys_addr_high qlcnic_tx_mbx 0 36646 NULL
141527 +disable_so_ntfs_bitmap_set_run_fndecl_36647 ntfs_bitmap_set_run fndecl 2-3 36647 NULL
141528 +disable_so_hfs_btree_open_fndecl_36648 hfs_btree_open fndecl 2 36648 NULL
141529 +disable_so_radio_tea5777_set_freq_fndecl_36650 radio_tea5777_set_freq fndecl 0 36650 NULL
141530 +disable_so_default_timeout_cyclades_port_36652 default_timeout cyclades_port 0 36652 NULL
141531 +disable_so_trinity_get_sleep_divider_id_from_clock_fndecl_36654 trinity_get_sleep_divider_id_from_clock fndecl 2 36654 NULL
141532 +disable_so_timeout_osst_tape_36656 timeout osst_tape 0 36656 NULL
141533 +disable_so_sda_falling_time_dw_i2c_dev_36665 sda_falling_time dw_i2c_dev 0 36665 NULL
141534 +disable_so_libipw_freq_to_channel_fndecl_36675 libipw_freq_to_channel fndecl 0-2 36675 NULL
141535 +disable_so_el3_interrupt_fndecl_36679 el3_interrupt fndecl 1 36679 NULL
141536 +disable_so_cg_spll_func_cntl_3_rv770_clock_registers_36680 cg_spll_func_cntl_3 rv770_clock_registers 0 36680 NULL
141537 +disable_so_resp_dma_addr_generic_pdu_resc_36683 resp_dma_addr generic_pdu_resc 0 36683 NULL
141538 +disable_so_store_imon_clock_fndecl_36685 store_imon_clock fndecl 0-4 36685 NULL
141539 +disable_so_kdbgetaddrarg_fndecl_36689 kdbgetaddrarg fndecl 0 36689 NULL
141540 +disable_so_ahash_def_finup_done1_fndecl_36695 ahash_def_finup_done1 fndecl 2 36695 NULL
141541 +disable_so_backlight_on_delay_intel_dp_36699 backlight_on_delay intel_dp 0 36699 NULL
141542 +disable_so_daddr_ipq_36701 daddr ipq 0 36701 NULL
141543 +disable_so_sha512_generic_mod_init_fndecl_36702 sha512_generic_mod_init fndecl 0 36702 NULL
141544 +disable_so_HYPERVISOR_dom0_op_fndecl_36705 HYPERVISOR_dom0_op fndecl 0 36705 NULL
141545 +disable_so_pll_ref_div_pll_ct_36716 pll_ref_div pll_ct 0 36716 NULL
141546 +disable_so_timecounter_cyc2time_fndecl_36723 timecounter_cyc2time fndecl 0-2 36723 NULL
141547 +disable_so_hello_time___bridge_info_36726 hello_time __bridge_info 0 36726 NULL
141548 +disable_so___clockevents_update_freq_fndecl_36730 __clockevents_update_freq fndecl 2 36730 NULL
141549 +disable_so_lvds_ssc_freq_intel_vbt_data_36732 lvds_ssc_freq intel_vbt_data 0 36732 NULL
141550 +disable_so_mlx4_bitmap_alloc_range_fndecl_36733 mlx4_bitmap_alloc_range fndecl 0-2-3 36733 NULL
141551 +disable_so_hmark_hash_fndecl_36743 hmark_hash fndecl 0 36743 NULL
141552 +disable_so_atimensec_fuse_attr_36765 atimensec fuse_attr 0 36765 NULL
141553 +disable_so_sys_getgid16_fndecl_36779 sys_getgid16 fndecl 0 36779 NULL
141554 +disable_so_hash_32_fndecl_36780 hash_32 fndecl 0-3 36780 NULL
141555 +disable_so_di_gid_qnx6_inode_entry_36804 di_gid qnx6_inode_entry 0 36804 NULL nohasharray
141556 +disable_so_jhash_fndecl_36804 jhash fndecl 0-2-3 36804 &disable_so_di_gid_qnx6_inode_entry_36804
141557 +disable_so_last_time1_intel_ilk_power_mgmt_36819 last_time1 intel_ilk_power_mgmt 0 36819 NULL
141558 +disable_so_xen_clocksource_get_cycles_fndecl_36821 xen_clocksource_get_cycles fndecl 0 36821 NULL
141559 +disable_so_address_show_fndecl_36822 address_show fndecl 0 36822 NULL
141560 +disable_so_next_desc_addr_mm_dma_desc_36825 next_desc_addr mm_dma_desc 0 36825 NULL
141561 +disable_so_update_time_acpi_battery_36827 update_time acpi_battery 0 36827 NULL
141562 +disable_so_nla_put_le16_fndecl_36829 nla_put_le16 fndecl 0-3 36829 NULL
141563 +disable_so_sense_buf_phys_addr_hi_megasas_pthru_frame_36842 sense_buf_phys_addr_hi megasas_pthru_frame 0 36842 NULL
141564 +disable_so_vkdb_printf_fndecl_36847 vkdb_printf fndecl 0 36847 NULL
141565 +disable_so_cpu_to_fs32_fndecl_36849 cpu_to_fs32 fndecl 0-2 36849 NULL
141566 +disable_so_mxl301rf_sleep_fndecl_36864 mxl301rf_sleep fndecl 0 36864 NULL
141567 +disable_so_nfqueue_hash_fndecl_36865 nfqueue_hash fndecl 0-2-3-4 36865 NULL
141568 +disable_so_irq_set_irq_wake_fndecl_36876 irq_set_irq_wake fndecl 0-1 36876 NULL
141569 +disable_so_topology_change_timer_value___bridge_info_36878 topology_change_timer_value __bridge_info 0 36878 NULL
141570 +disable_so_settle_time_sym_shcb_36880 settle_time sym_shcb 0 36880 NULL
141571 +disable_so_mei_wd_set_start_timeout_fndecl_36890 mei_wd_set_start_timeout fndecl 2 36890 NULL
141572 +disable_so_inet6_dump_ifaddr_fndecl_36895 inet6_dump_ifaddr fndecl 0 36895 NULL
141573 +disable_so_sh_msiof_get_delay_bit_fndecl_36896 sh_msiof_get_delay_bit fndecl 0-1 36896 NULL
141574 +disable_so_pwm_uptime_w83793_data_36909 pwm_uptime w83793_data 0 36909 NULL nohasharray
141575 +disable_so_zd_iowrite32a_locked_fndecl_36909 zd_iowrite32a_locked fndecl 0-3 36909 &disable_so_pwm_uptime_w83793_data_36909
141576 +disable_so_usb_runtime_suspend_fndecl_36911 usb_runtime_suspend fndecl 0 36911 NULL
141577 +disable_so_buf_addr_mlx5_ib_create_srq_36916 buf_addr mlx5_ib_create_srq 0 36916 NULL
141578 +disable_so_sbp2_pointer_to_addr_fndecl_36918 sbp2_pointer_to_addr fndecl 0 36918 NULL
141579 +disable_so_start_pcm_timer0_fndecl_36921 start_pcm_timer0 fndecl 2 36921 NULL
141580 +disable_so_timestamp_il3945_rx_frame_end_36930 timestamp il3945_rx_frame_end 0 36930 NULL
141581 +disable_so_nilfs_btree_node_broken_fndecl_36936 nilfs_btree_node_broken fndecl 2-3 36936 NULL
141582 +disable_so_wm8991_set_dai_clkdiv_fndecl_36938 wm8991_set_dai_clkdiv fndecl 3 36938 NULL
141583 +disable_so_timeout_ieee80211_mgd_auth_data_36943 timeout ieee80211_mgd_auth_data 0 36943 NULL
141584 +disable_so_i2c_address_itd1000_config_36949 i2c_address itd1000_config 0 36949 NULL
141585 +disable_so_nla_put_be16_fndecl_36955 nla_put_be16 fndecl 0-3 36955 NULL
141586 +disable_so_dma_addr_bcm_sysport_cb_36958 dma_addr bcm_sysport_cb 0 36958 NULL
141587 +disable_so_timeout_trf7970a_36959 timeout trf7970a 0 36959 NULL nohasharray
141588 +disable_so_s35390a_get_datetime_fndecl_36959 s35390a_get_datetime fndecl 0 36959 &disable_so_timeout_trf7970a_36959
141589 +disable_so_spn_dev_sockaddr_pn_36960 spn_dev sockaddr_pn 0 36960 NULL
141590 +disable_so_dpp_page_addr_hi_ocrdma_alloc_pd_uresp_36964 dpp_page_addr_hi ocrdma_alloc_pd_uresp 0 36964 NULL
141591 +disable_so_tv_sec_compat_timespec_36965 tv_sec compat_timespec 0 36965 NULL
141592 +disable_so_get_dclk_freq_fndecl_36970 get_dclk_freq fndecl 0 36970 NULL
141593 +disable_so_intlog2_fndecl_36975 intlog2 fndecl 0-1 36975 NULL
141594 +disable_so_psb_intel_clock_fndecl_36993 psb_intel_clock fndecl 1 36993 NULL
141595 +disable_so_i_uid_write_fndecl_36996 i_uid_write fndecl 2 36996 NULL
141596 +disable_so_addr_st_sgitem_37005 addr st_sgitem 0 37005 NULL
141597 +disable_so_do_usleep_range_fndecl_37008 do_usleep_range fndecl 1-2 37008 NULL
141598 +disable_so_insert_entries_i915_address_space_37011 insert_entries i915_address_space 3 37011 NULL
141599 +disable_so_ext4_init_inode_bitmap_fndecl_37017 ext4_init_inode_bitmap fndecl 0-3 37017 NULL
141600 +disable_so_sp_pt_regs_37018 sp pt_regs 0 37018 NULL
141601 +disable_so_addr_gsm_dlci_37020 addr gsm_dlci 0 37020 NULL
141602 +disable_so_lbq_addr_cqicb_37033 lbq_addr cqicb 0 37033 NULL
141603 +disable_so_stv090x_get_car_freq_fndecl_37041 stv090x_get_car_freq fndecl 0-2 37041 NULL
141604 +disable_so_resp_sas_sha_m_spg_fndecl_37046 resp_sas_sha_m_spg fndecl 0 37046 NULL
141605 +disable_so_cyc2ns_shift_cyc2ns_data_37055 cyc2ns_shift cyc2ns_data 0 37055 NULL
141606 +disable_so_max8997_muic_set_debounce_time_fndecl_37057 max8997_muic_set_debounce_time fndecl 2-0 37057 NULL
141607 +disable_so_tms_cutime_compat_tms_37072 tms_cutime compat_tms 0 37072 NULL
141608 +disable_so_u2_timeout_store_fndecl_37082 u2_timeout_store fndecl 0-4 37082 NULL
141609 +disable_so_addr2_unlock_addr_37100 addr2 unlock_addr 0 37100 NULL
141610 +disable_so_pch_gbe_hal_read_mac_addr_fndecl_37101 pch_gbe_hal_read_mac_addr fndecl 0 37101 NULL
141611 +disable_so_blkcipher_next_slow_fndecl_37102 blkcipher_next_slow fndecl 3-4 37102 NULL
141612 +disable_so_addr_ata_bmdma_prd_37108 addr ata_bmdma_prd 0 37108 NULL
141613 +disable_so_nl80211_valid_4addr_fndecl_37115 nl80211_valid_4addr fndecl 0-4 37115 NULL
141614 +disable_so_dlm_lockres_hash_fndecl_37119 dlm_lockres_hash fndecl 2 37119 NULL
141615 +disable_so_uid_ipc64_perm_37121 uid ipc64_perm 0 37121 NULL
141616 +disable_so_paddr_gr_dma_desc_37127 paddr gr_dma_desc 0 37127 NULL
141617 +disable_so_max_cb_time_fndecl_37133 max_cb_time fndecl 0 37133 NULL
141618 +disable_so_smt_get_time_fndecl_37135 smt_get_time fndecl 0 37135 NULL
141619 +disable_so_div_q1_pll_values_37147 div_q1 pll_values 0 37147 NULL
141620 +disable_so_ufshcd_setup_clocks_fndecl_37162 ufshcd_setup_clocks fndecl 0 37162 NULL
141621 +disable_so_gid_fuse_attr_37169 gid fuse_attr 0 37169 NULL
141622 +disable_so_smsc75xx_hash_fndecl_37173 smsc75xx_hash fndecl 0 37173 NULL
141623 +disable_so_crypto_skcipher_givencrypt_fndecl_37175 crypto_skcipher_givencrypt fndecl 0 37175 NULL
141624 +disable_so_ip_vs_set_timeout_fndecl_37183 ip_vs_set_timeout fndecl 0 37183 NULL
141625 +disable_so_pci_bus_cx25821_dev_37185 pci_bus cx25821_dev 0 37185 NULL
141626 +disable_so_b43_set_slot_time_fndecl_37196 b43_set_slot_time fndecl 2 37196 NULL
141627 +disable_so_af9013_sleep_fndecl_37201 af9013_sleep fndecl 0 37201 NULL
141628 +disable_so_sock_check_timeo_net_conf_37210 sock_check_timeo net_conf 0 37210 NULL
141629 +disable_so_tms_utime_tms_37217 tms_utime tms 0 37217 NULL
141630 +disable_so_lx_interrupt_request_new_buffer_fndecl_37218 lx_interrupt_request_new_buffer fndecl 0 37218 NULL
141631 +disable_so_cryptomgr_notify_fndecl_37232 cryptomgr_notify fndecl 0 37232 NULL
141632 +disable_so_wm831x_wdt_set_timeout_fndecl_37238 wm831x_wdt_set_timeout fndecl 2-0 37238 NULL
141633 +disable_so_qh_schedule_fndecl_37247 qh_schedule fndecl 0 37247 NULL
141634 +disable_so_nilfs_segctor_last_nongc_write_time_secs_show_fndecl_37250 nilfs_segctor_last_nongc_write_time_secs_show fndecl 0 37250 NULL nohasharray
141635 +disable_so_total_crypto_hash_walk_37250 total crypto_hash_walk 0 37250 &disable_so_nilfs_segctor_last_nongc_write_time_secs_show_fndecl_37250
141636 +disable_so_fq_rehash_fndecl_37274 fq_rehash fndecl 3-5 37274 NULL
141637 +disable_so_set_addr_dsa_switch_driver_37276 set_addr dsa_switch_driver 0 37276 NULL
141638 +disable_so_tv_sec_timeval_37284 tv_sec timeval 0 37284 NULL
141639 +disable_so_timestamp_nfs4_lockdata_37285 timestamp nfs4_lockdata 0 37285 NULL
141640 +disable_so_ccp_register_aes_xts_alg_fndecl_37292 ccp_register_aes_xts_alg fndecl 0 37292 NULL
141641 +disable_so_ssb_chipco_timing_init_fndecl_37295 ssb_chipco_timing_init fndecl 2 37295 NULL
141642 +disable_so_atime_sec_ubifs_ino_node_37298 atime_sec ubifs_ino_node 0 37298 NULL
141643 +disable_so_sel_addr___queue_37305 sel_addr __queue 0 37305 NULL
141644 +disable_so_nla_put_shortaddr_fndecl_37306 nla_put_shortaddr fndecl 0 37306 NULL
141645 +disable_so_snd_pcm_sgbuf_get_addr_fndecl_37310 snd_pcm_sgbuf_get_addr fndecl 0-2 37310 NULL
141646 +disable_so_qla2x00_program_flash_address_fndecl_37312 qla2x00_program_flash_address fndecl 2 37312 NULL
141647 +disable_so_linetime_skl_pipe_wm_37317 linetime skl_pipe_wm 0 37317 NULL
141648 +disable_so_d_time_ptc_stats_37320 d_time ptc_stats 0 37320 NULL nohasharray
141649 +disable_so_dst_slave_addr_rcar_dmac_chan_37320 dst_slave_addr rcar_dmac_chan 0 37320 &disable_so_d_time_ptc_stats_37320
141650 +disable_so_edx_tss_segment_32_37322 edx tss_segment_32 0 37322 NULL
141651 +disable_so_time_stamp_ixgbevf_tx_buffer_37332 time_stamp ixgbevf_tx_buffer 0 37332 NULL
141652 +disable_so_dccpor_elapsed_time_dccp_options_received_37349 dccpor_elapsed_time dccp_options_received 0 37349 NULL nohasharray
141653 +disable_so_rhine_interrupt_fndecl_37349 rhine_interrupt fndecl 1 37349 &disable_so_dccpor_elapsed_time_dccp_options_received_37349
141654 +disable_so_cpufreq_get_policy_fndecl_37351 cpufreq_get_policy fndecl 0-2 37351 NULL
141655 +disable_so_blocksize_ccp_aes_def_37352 blocksize ccp_aes_def 0 37352 NULL
141656 +disable_so_disengage_timeout_xpc_partition_37353 disengage_timeout xpc_partition 0 37353 NULL
141657 +disable_so_nilfs_btree_lookup_contig_fndecl_37360 nilfs_btree_lookup_contig fndecl 0-2 37360 NULL
141658 +disable_so_timeo_rpc_rtt_37368 timeo rpc_rtt 0 37368 NULL
141659 +disable_so_calc_divisor_fndecl_37379 calc_divisor fndecl 0-1 37379 NULL
141660 +disable_so_uid_ncp_mount_data_37380 uid ncp_mount_data 0 37380 NULL nohasharray
141661 +disable_so_ip_vs_conn_hashkey_conn_fndecl_37380 ip_vs_conn_hashkey_conn fndecl 0 37380 &disable_so_uid_ncp_mount_data_37380
141662 +disable_so_clock_delay_adv7511_link_config_37390 clock_delay adv7511_link_config 0 37390 NULL nohasharray
141663 +disable_so_mtrr_check_fndecl_37390 mtrr_check fndecl 1-2 37390 &disable_so_clock_delay_adv7511_link_config_37390
141664 +disable_so_tuner_addr_cx231xx_37393 tuner_addr cx231xx 0 37393 NULL
141665 +disable_so_minute_timestamp_37395 minute timestamp 0 37395 NULL
141666 +disable_so_mthca_mr_alloc_fndecl_37397 mthca_mr_alloc fndecl 5-0-2-3 37397 NULL
141667 +disable_so_cx24123_int_log2_fndecl_37405 cx24123_int_log2 fndecl 0-2 37405 NULL
141668 +disable_so_s_def_resgid_ext2_super_block_37420 s_def_resgid ext2_super_block 0 37420 NULL nohasharray
141669 +disable_so_fast_pwrup_delay_ssb_chipcommon_37420 fast_pwrup_delay ssb_chipcommon 0 37420 &disable_so_s_def_resgid_ext2_super_block_37420
141670 +disable_so_nfs_key_timeout_notify_fndecl_37423 nfs_key_timeout_notify fndecl 0 37423 NULL nohasharray
141671 +disable_so_netxen_schedule_work_fndecl_37423 netxen_schedule_work fndecl 3 37423 &disable_so_nfs_key_timeout_notify_fndecl_37423
141672 +disable_so_rx8025_sysfs_store_clock_adjust_fndecl_37426 rx8025_sysfs_store_clock_adjust fndecl 0-4 37426 NULL
141673 +disable_so_port_mlx4_alias_guid_work_context_37428 port mlx4_alias_guid_work_context 0 37428 NULL
141674 +disable_so_lpfc_max_scsicmpl_time_set_fndecl_37433 lpfc_max_scsicmpl_time_set fndecl 2 37433 NULL
141675 +disable_so_mld_ifc_start_timer_fndecl_37436 mld_ifc_start_timer fndecl 2 37436 NULL
141676 +disable_so_guest_phys_addr_vhost_memory_region_37438 guest_phys_addr vhost_memory_region 0 37438 NULL nohasharray
141677 +disable_so_tun1_maddress_stv0900_init_params_37438 tun1_maddress stv0900_init_params 0 37438 &disable_so_guest_phys_addr_vhost_memory_region_37438
141678 +disable_so_i2c_addr_m88ds3103_config_37446 i2c_addr m88ds3103_config 0 37446 NULL
141679 +disable_so_hd_phys_address_hpet_data_37448 hd_phys_address hpet_data 0 37448 NULL
141680 +disable_so_ip_addr_c2_netaddr_37452 ip_addr c2_netaddr 0 37452 NULL
141681 +disable_so_acpi_map_cpuid_fndecl_37455 acpi_map_cpuid fndecl 0-1-2 37455 NULL
141682 +disable_so_regcache_lzo_block_count_fndecl_37459 regcache_lzo_block_count fndecl 0 37459 NULL
141683 +disable_so_iwl_dbgfs_interrupt_write_fndecl_37470 iwl_dbgfs_interrupt_write fndecl 0-3 37470 NULL
141684 +disable_so_freq_timex_37471 freq timex 0 37471 NULL
141685 +disable_so_gk104_fifo_engidx_fndecl_37472 gk104_fifo_engidx fndecl 0 37472 NULL
141686 +disable_so_ocfs2_write_remove_suid_fndecl_37473 ocfs2_write_remove_suid fndecl 0 37473 NULL
141687 +disable_so_zd_iowrite16a_locked_fndecl_37478 zd_iowrite16a_locked fndecl 0 37478 NULL
141688 +disable_so_base_clock_slgt_info_37486 base_clock slgt_info 0 37486 NULL
141689 +disable_so_onenand_addr_fndecl_37493 onenand_addr fndecl 0-2 37493 NULL
141690 +disable_so_bitmap_shift_right_fndecl_37507 bitmap_shift_right fndecl 3-4 37507 NULL
141691 +disable_so_phys_addr_netxen_recv_context_37520 phys_addr netxen_recv_context 0 37520 NULL
141692 +disable_so_dma_addr_vmxnet3_tx_buf_info_37524 dma_addr vmxnet3_tx_buf_info 0 37524 NULL
141693 +disable_so_start_time_fnic_io_req_37530 start_time fnic_io_req 0 37530 NULL
141694 +disable_so_hash_val_rss_header_37536 hash_val rss_header 0 37536 NULL
141695 +disable_so_dev_addr_bdc_37537 dev_addr bdc 0 37537 NULL
141696 +disable_so_cobalt_enum_dv_timings_fndecl_37539 cobalt_enum_dv_timings fndecl 0 37539 NULL
141697 +disable_so_timestamp_cw1200_link_entry_37549 timestamp cw1200_link_entry 0 37549 NULL
141698 +disable_so_c_resolution_snd_timer_hardware_37556 c_resolution snd_timer_hardware 0 37556 NULL
141699 +disable_so_dummy_systimer_pointer_fndecl_37562 dummy_systimer_pointer fndecl 0 37562 NULL
141700 +disable_so_cir_wake_addr_nvt_dev_37577 cir_wake_addr nvt_dev 0 37577 NULL
141701 +disable_so_clients_bit_vector_mac_configuration_entry_37582 clients_bit_vector mac_configuration_entry 0 37582 NULL
141702 +disable_so___round_jiffies_up_fndecl_37586 __round_jiffies_up fndecl 2-1-0 37586 NULL
141703 +disable_so_xfs_btree_updkey_fndecl_37592 xfs_btree_updkey fndecl 0 37592 NULL
141704 +disable_so_r6b_val_fc2580_freq_regs_37593 r6b_val fc2580_freq_regs 0 37593 NULL
141705 +disable_so_audit_backlog_wait_time_master_vardecl_audit_c_37596 audit_backlog_wait_time_master vardecl_audit.c 0 37596 NULL
141706 +disable_so_hhf_arrays_reset_timestamp_hhf_sched_data_37598 hhf_arrays_reset_timestamp hhf_sched_data 0 37598 NULL
141707 +disable_so_rate_den_snd_pcm_runtime_37607 rate_den snd_pcm_runtime 0 37607 NULL
141708 +disable_so_vdi_mtime_vxfs_inode_info_37613 vdi_mtime vxfs_inode_info 0 37613 NULL
141709 +disable_so_tx_bufs_dma_addr_sc92031_priv_37616 tx_bufs_dma_addr sc92031_priv 0 37616 NULL
141710 +disable_so_brcmf_msgbuf_schedule_txdata_fndecl_37619 brcmf_msgbuf_schedule_txdata fndecl 2 37619 NULL
141711 +disable_so_pvr2_hdw_set_cur_freq_fndecl_37630 pvr2_hdw_set_cur_freq fndecl 2 37630 NULL
141712 +disable_so_pixclock_fb_cvt_data_37637 pixclock fb_cvt_data 0 37637 NULL
141713 +disable_so_ieee80211_if_read_beacon_timeout_fndecl_37639 ieee80211_if_read_beacon_timeout fndecl 3-0 37639 NULL
141714 +disable_so_ds1374_read_time_fndecl_37640 ds1374_read_time fndecl 0 37640 NULL
141715 +disable_so_addr_handler_fndecl_37652 addr_handler fndecl 1 37652 NULL
141716 +disable_so_v_radeon_clock_voltage_dependency_entry_37656 v radeon_clock_voltage_dependency_entry 0 37656 NULL
141717 +disable_so_bma150_set_high_g_interrupt_fndecl_37662 bma150_set_high_g_interrupt fndecl 4-5-3-0 37662 NULL
141718 +disable_so_SYSC_setresuid_fndecl_37663 SYSC_setresuid fndecl 0 37663 NULL
141719 +disable_so_sht15_interrupt_fired_fndecl_37668 sht15_interrupt_fired fndecl 1 37668 NULL
141720 +disable_so_munge_address_falcon_spi_device_37671 munge_address falcon_spi_device 0 37671 NULL
141721 +disable_so___hw_addr_unsync_fndecl_37673 __hw_addr_unsync fndecl 3 37673 NULL
141722 +disable_so_uv_mmtimer_femtoperiod_vardecl_uv_mmtimer_c_37680 uv_mmtimer_femtoperiod vardecl_uv_mmtimer.c 0 37680 NULL
141723 +disable_so_phy_addr_pxa168_eth_private_37687 phy_addr pxa168_eth_private 0 37687 NULL
141724 +disable_so_pch_udc_read_ep_interrupts_fndecl_37692 pch_udc_read_ep_interrupts fndecl 0 37692 NULL
141725 +disable_so_en_addr0_nphy_rf_control_override_rev3_37699 en_addr0 nphy_rf_control_override_rev3 0 37699 NULL
141726 +disable_so_sense_phys_addr_megasas_cmd_37718 sense_phys_addr megasas_cmd 0 37718 NULL
141727 +disable_so_dsc_poll_freq_ide_tape_obj_37730 dsc_poll_freq ide_tape_obj 0 37730 NULL
141728 +disable_so_no_gc_sleep_time_f2fs_gc_kthread_37736 no_gc_sleep_time f2fs_gc_kthread 0 37736 NULL
141729 +disable_so_b_addr_dma_data_buffer_37749 b_addr dma_data_buffer 0 37749 NULL
141730 +disable_so_test_hash_jiffies_fndecl_37757 test_hash_jiffies fndecl 4 37757 NULL
141731 +disable_so_bufptr_addr_nm256_stream_37759 bufptr_addr nm256_stream 0 37759 NULL nohasharray
141732 +disable_so_gcm_hash_crypt_continue_fndecl_37759 gcm_hash_crypt_continue fndecl 0 37759 &disable_so_bufptr_addr_nm256_stream_37759
141733 +disable_so_get_semotime_fndecl_37761 get_semotime fndecl 0 37761 NULL
141734 +disable_so_ds_tss_segment_32_37770 ds tss_segment_32 0 37770 NULL nohasharray
141735 +disable_so_ccp_run_aes_cmd_fndecl_37770 ccp_run_aes_cmd fndecl 0 37770 &disable_so_ds_tss_segment_32_37770
141736 +disable_so_sys_signal_fndecl_37776 sys_signal fndecl 1 37776 NULL
141737 +disable_so_jiffies_till_next_fqs_vardecl_tree_c_37778 jiffies_till_next_fqs vardecl_tree.c 0 37778 NULL
141738 +disable_so_col_scan_delay_us_matrix_keypad_platform_data_37789 col_scan_delay_us matrix_keypad_platform_data 0 37789 NULL
141739 +disable_so_small_buf_phy_addr_ql3_adapter_37791 small_buf_phy_addr ql3_adapter 0 37791 NULL
141740 +disable_so_bitmap_intersects_fndecl_37795 bitmap_intersects fndecl 3 37795 NULL
141741 +disable_so_clock_panel_info_37807 clock panel_info 0 37807 NULL
141742 +disable_so_unix_gid_hash_fndecl_37822 unix_gid_hash fndecl 0 37822 NULL
141743 +disable_so_btrfs_inode_uid_fndecl_37823 btrfs_inode_uid fndecl 0 37823 NULL
141744 +disable_so_snd_usb_find_clock_multiplier_fndecl_37825 snd_usb_find_clock_multiplier fndecl 2 37825 NULL nohasharray
141745 +disable_so_queue_show_random_fndecl_37825 queue_show_random fndecl 0 37825 &disable_so_snd_usb_find_clock_multiplier_fndecl_37825
141746 +disable_so_intr_gen_timer_trigger_ath_hw_37826 intr_gen_timer_trigger ath_hw 0 37826 NULL
141747 +disable_so_mvs_interrupt_fndecl_37840 mvs_interrupt fndecl 1 37840 NULL
141748 +disable_so_aic7xxx_seltime_vardecl_aic7xxx_osm_c_37841 aic7xxx_seltime vardecl_aic7xxx_osm.c 0 37841 NULL
141749 +disable_so_baud_uartdiv_baycom_state_37846 baud_uartdiv baycom_state 0 37846 NULL
141750 +disable_so_ac97_clock_vardecl_intel8x0m_c_37848 ac97_clock vardecl_intel8x0m.c 0 37848 NULL nohasharray
141751 +disable_so_rtl818x_iowrite8_idx_fndecl_37848 rtl818x_iowrite8_idx fndecl 3 37848 &disable_so_ac97_clock_vardecl_intel8x0m_c_37848
141752 +disable_so_io_addr_kcq_info_37850 io_addr kcq_info 0 37850 NULL
141753 +disable_so_last_signal_sta_info_37865 last_signal sta_info 0 37865 NULL
141754 +disable_so_dccpor_timestamp_echo_dccp_options_received_37875 dccpor_timestamp_echo dccp_options_received 0 37875 NULL
141755 +disable_so_ccp_aes_cmac_update_fndecl_37894 ccp_aes_cmac_update fndecl 0 37894 NULL
141756 +disable_so_chip_delay_nand_chip_37901 chip_delay nand_chip 0 37901 NULL
141757 +disable_so_saddr_irlap_cb_37910 saddr irlap_cb 0 37910 NULL
141758 +disable_so_disk_timeout_disk_conf_37918 disk_timeout disk_conf 0 37918 NULL
141759 +disable_so_show_time_in_state_fndecl_37923 show_time_in_state fndecl 0 37923 NULL
141760 +disable_so_snd_timer_user_pause_fndecl_37928 snd_timer_user_pause fndecl 0 37928 NULL
141761 +disable_so_is_valid_rtc_data_addr_il_ops_37930 is_valid_rtc_data_addr il_ops 1 37930 NULL
141762 +disable_so_wl18xx_enable_interrupts_fndecl_37937 wl18xx_enable_interrupts fndecl 0 37937 NULL nohasharray
141763 +disable_so_nested_vmx_store_msr_fndecl_37937 nested_vmx_store_msr fndecl 2 37937 &disable_so_wl18xx_enable_interrupts_fndecl_37937
141764 +disable_so_last_ack_time_misc_stats_37946 last_ack_time misc_stats 0 37946 NULL
141765 +disable_so_vblank_lo_lvds_dvo_timing_37949 vblank_lo lvds_dvo_timing 0 37949 NULL
141766 +disable_so_ath6kl_get_hi_item_addr_fndecl_37951 ath6kl_get_hi_item_addr fndecl 0-2 37951 NULL
141767 +disable_so_bitmap_word_used_fndecl_37955 bitmap_word_used fndecl 2 37955 NULL
141768 +disable_so_process_tgid_coredump_proc_event_37962 process_tgid coredump_proc_event 0 37962 NULL
141769 +disable_so_device_addr_net2280_tx_hdr_37967 device_addr net2280_tx_hdr 0 37967 NULL nohasharray
141770 +disable_so_sctp_assoc_set_bind_addr_from_cookie_fndecl_37967 sctp_assoc_set_bind_addr_from_cookie fndecl 0-3 37967 &disable_so_device_addr_net2280_tx_hdr_37967
141771 +disable_so_read_l1_tsc_kvm_x86_ops_37977 read_l1_tsc kvm_x86_ops 0-2 37977 NULL
141772 +disable_so_ipqhashfn_fndecl_37983 ipqhashfn fndecl 1-4 37983 NULL
141773 +disable_so_divider_get_val_fndecl_37994 divider_get_val fndecl 1-2-4-0 37994 NULL
141774 +disable_so_rfc4106_set_hash_subkey_fndecl_37995 rfc4106_set_hash_subkey fndecl 3 37995 NULL
141775 +disable_so_intel_overlay_recover_from_interrupt_fndecl_37996 intel_overlay_recover_from_interrupt fndecl 0 37996 NULL
141776 +disable_so_demod_address_tda10023_config_37998 demod_address tda10023_config 0 37998 NULL nohasharray
141777 +disable_so_addrconf_del_ifaddr_fndecl_37998 addrconf_del_ifaddr fndecl 0 37998 &disable_so_demod_address_tda10023_config_37998
141778 +disable_so_clear_bit_unlock_fndecl_38002 clear_bit_unlock fndecl 1 38002 NULL
141779 +disable_so_mactime_ieee80211_rx_status_38004 mactime ieee80211_rx_status 0 38004 NULL
141780 +disable_so_conn_info_timestamp_hci_conn_38005 conn_info_timestamp hci_conn 0 38005 NULL
141781 +disable_so_il_vsync_v4l2_bt_timings_38013 il_vsync v4l2_bt_timings 0 38013 NULL
141782 +disable_so_bch_strtouint_h_fndecl_38016 bch_strtouint_h fndecl 0 38016 NULL
141783 +disable_so_crypto_ccm_encrypt_fndecl_38019 crypto_ccm_encrypt fndecl 0 38019 NULL
141784 +disable_so_beacon_timeout_ms_vardecl_38026 beacon_timeout_ms vardecl 0 38026 NULL
141785 +disable_so_ima_calc_field_array_hash_fndecl_38044 ima_calc_field_array_hash fndecl 0-3 38044 NULL
141786 +disable_so_mISDN_clock_update_fndecl_38046 mISDN_clock_update fndecl 2 38046 NULL
141787 +disable_so_rv6xx_memory_clock_entry_set_post_divider_fndecl_38049 rv6xx_memory_clock_entry_set_post_divider fndecl 3 38049 NULL nohasharray
141788 +disable_so_tuner_set_frequency_stb0899_config_38049 tuner_set_frequency stb0899_config 2 38049 &disable_so_rv6xx_memory_clock_entry_set_post_divider_fndecl_38049
141789 +disable_so_bcma_pmu_get_cpu_clock_fndecl_38056 bcma_pmu_get_cpu_clock fndecl 0 38056 NULL
141790 +disable_so_mei_irq_write_handler_fndecl_38063 mei_irq_write_handler fndecl 0 38063 NULL
141791 +disable_so_follow_huge_addr_fndecl_38066 follow_huge_addr fndecl 2 38066 NULL
141792 +disable_so_wait_for_completion_timeout_fndecl_38078 wait_for_completion_timeout fndecl 0-2 38078 NULL
141793 +disable_so_wm8961_set_clkdiv_fndecl_38080 wm8961_set_clkdiv fndecl 3 38080 NULL
141794 +disable_so_process_tgid_ptrace_proc_event_38081 process_tgid ptrace_proc_event 0 38081 NULL
141795 +disable_so_blocknr_disk_bitmap_header_38088 blocknr disk_bitmap_header 0 38088 NULL
141796 +disable_so_index_cnt_btrfs_delayed_node_38090 index_cnt btrfs_delayed_node 0 38090 NULL
141797 +disable_so_bq32k_rtc_set_time_fndecl_38091 bq32k_rtc_set_time fndecl 0 38091 NULL nohasharray
141798 +disable_so_apei_map_generic_address_fndecl_38091 apei_map_generic_address fndecl 0 38091 &disable_so_bq32k_rtc_set_time_fndecl_38091
141799 +disable_so_xfs_iformat_btree_fndecl_38096 xfs_iformat_btree fndecl 0 38096 NULL
141800 +disable_so_inet6_rtm_newaddr_fndecl_38099 inet6_rtm_newaddr fndecl 0 38099 NULL
141801 +disable_so_tuner_set_frequency_stv090x_config_38105 tuner_set_frequency stv090x_config 2 38105 NULL
141802 +disable_so_atomic_notifier_chain_register_fndecl_38114 atomic_notifier_chain_register fndecl 0 38114 NULL
141803 +disable_so_timeout_parms_to_skb_fndecl_38116 timeout_parms_to_skb fndecl 0 38116 NULL
141804 +disable_so_key_idx_off_ieee80211_cipher_scheme_38117 key_idx_off ieee80211_cipher_scheme 0 38117 NULL
141805 +disable_so_qla2x00_zio_timer_store_fndecl_38118 qla2x00_zio_timer_store fndecl 0 38118 NULL
141806 +disable_so_pch_udc_write_ep_interrupts_fndecl_38129 pch_udc_write_ep_interrupts fndecl 2 38129 NULL
141807 +disable_so_ipv4addr_cxgbi_hba_38131 ipv4addr cxgbi_hba 0 38131 NULL
141808 +disable_so_ep0_bounce_addr_dwc3_38133 ep0_bounce_addr dwc3 0 38133 NULL
141809 +disable_so_br_ip_hash_fndecl_38135 br_ip_hash fndecl 0 38135 NULL
141810 +disable_so_signal_to_av_fndecl_38146 signal_to_av fndecl 0 38146 NULL nohasharray
141811 +disable_so_ext4_init_block_bitmap_fndecl_38146 ext4_init_block_bitmap fndecl 3 38146 &disable_so_signal_to_av_fndecl_38146
141812 +disable_so_mapped_physical_address_acpi_mem_space_context_38147 mapped_physical_address acpi_mem_space_context 0 38147 NULL
141813 +disable_so_uptime_dn_dev_38149 uptime dn_dev 0 38149 NULL nohasharray
141814 +disable_so_btrfs_name_hash_fndecl_38149 btrfs_name_hash fndecl 0-2 38149 &disable_so_uptime_dn_dev_38149
141815 +disable_so_snd_timer_pause_fndecl_38159 snd_timer_pause fndecl 0 38159 NULL
141816 +disable_so_flash_addr_atto_vda_flash_req_38165 flash_addr atto_vda_flash_req 0 38165 NULL
141817 +disable_so_bfa_fcs_lport_ns_sm_sending_gid_ft_fndecl_38173 bfa_fcs_lport_ns_sm_sending_gid_ft fndecl 2 38173 NULL
141818 +disable_so_nla_put_flag_fndecl_38183 nla_put_flag fndecl 0 38183 NULL
141819 +disable_so_fll_freq_in_wm8350_data_38185 fll_freq_in wm8350_data 0 38185 NULL
141820 +disable_so_softdog_set_timeout_fndecl_38187 softdog_set_timeout fndecl 2 38187 NULL
141821 +disable_so_i_uid_sysv_inode_38197 i_uid sysv_inode 0 38197 NULL
141822 +disable_so_start_time_wl1271_tx_hw_descr_38213 start_time wl1271_tx_hw_descr 0 38213 NULL
141823 +disable_so_address_callback_fw_address_handler_38224 address_callback fw_address_handler 6-9 38224 NULL
141824 +disable_so_last_rsrc_error_time_lpfc_hba_38225 last_rsrc_error_time lpfc_hba 0 38225 NULL
141825 +disable_so_val_addr1_nphy_rf_control_override_rev3_38228 val_addr1 nphy_rf_control_override_rev3 0 38228 NULL
141826 +disable_so_ipr_transop_timeout_vardecl_ipr_c_38231 ipr_transop_timeout vardecl_ipr.c 0 38231 NULL
141827 +disable_so_disk_events_poll_jiffies_fndecl_38233 disk_events_poll_jiffies fndecl 0 38233 NULL
141828 +disable_so_s2mps11_set_ramp_delay_fndecl_38236 s2mps11_set_ramp_delay fndecl 0 38236 NULL
141829 +disable_so_rdb_BlockBytes_RigidDiskBlock_38238 rdb_BlockBytes RigidDiskBlock 0 38238 NULL
141830 +disable_so_bitmap_equal_fndecl_38239 bitmap_equal fndecl 3 38239 NULL
141831 +disable_so_drm_mm_init_fndecl_38240 drm_mm_init fndecl 2-3 38240 NULL nohasharray
141832 +disable_so_ring_info_addr_brcmf_pcie_shared_info_38240 ring_info_addr brcmf_pcie_shared_info 0 38240 &disable_so_drm_mm_init_fndecl_38240
141833 +disable_so_cg_spll_spread_spectrum_ni_clock_registers_38241 cg_spll_spread_spectrum ni_clock_registers 0 38241 NULL
141834 +disable_so_byt_gpu_freq_fndecl_38243 byt_gpu_freq fndecl 0-2 38243 NULL
141835 +disable_so_hhf_evict_timeout_hhf_sched_data_38244 hhf_evict_timeout hhf_sched_data 0 38244 NULL
141836 +disable_so_addr_unmap_notify_38247 addr unmap_notify 0 38247 NULL
141837 +disable_so_xfs_btree_reada_bufl_fndecl_38248 xfs_btree_reada_bufl fndecl 2-3 38248 NULL
141838 +disable_so_ip_vs_conn_hashkey_param_fndecl_38257 ip_vs_conn_hashkey_param fndecl 0 38257 NULL
141839 +disable_so_prev_steal_time_rq_rq_38260 prev_steal_time_rq rq 0 38260 NULL
141840 +disable_so_mapaddr_map_list_38266 mapaddr map_list 0 38266 NULL
141841 +disable_so_reqoff_crypto_authenc_esn_ctx_38268 reqoff crypto_authenc_esn_ctx 0 38268 NULL
141842 +disable_so_ui_mtimensec_ufs2_inode_38278 ui_mtimensec ufs2_inode 0 38278 NULL
141843 +disable_so_scbbaddr_ahc_pci_softc_38281 scbbaddr ahc_pci_softc 0 38281 NULL
141844 +disable_so_demod_address_dst_config_38283 demod_address dst_config 0 38283 NULL
141845 +disable_so_pcc_cpufreq_init_fndecl_38287 pcc_cpufreq_init fndecl 0 38287 NULL
141846 +disable_so_channel_divider_ad9523_channel_spec_38291 channel_divider ad9523_channel_spec 0 38291 NULL
141847 +disable_so_time_in_ghes_estatus_cache_38306 time_in ghes_estatus_cache 0 38306 NULL
141848 +disable_so_time_stamp_i40e_tx_buffer_38313 time_stamp i40e_tx_buffer 0 38313 NULL
141849 +disable_so_show_signal_msg_fndecl_38336 show_signal_msg fndecl 3 38336 NULL
141850 +disable_so_cma_bitmap_aligned_offset_fndecl_38343 cma_bitmap_aligned_offset fndecl 0-2 38343 NULL
141851 +disable_so_digi_set_modem_signals_fndecl_38348 digi_set_modem_signals fndecl 0 38348 NULL
141852 +disable_so_sum_blk_addr_fndecl_38356 sum_blk_addr fndecl 0-2-3 38356 NULL
141853 +disable_so_gcm_hash_assoc_done_fndecl_38360 gcm_hash_assoc_done fndecl 2 38360 NULL
141854 +disable_so_dma_headwb_addr_i40e_virtchnl_txq_info_38365 dma_headwb_addr i40e_virtchnl_txq_info 0 38365 NULL
141855 +disable_so_cpu_cpufreq_policy_38366 cpu cpufreq_policy 0 38366 NULL nohasharray
141856 +disable_so_shash_descsize_dm_verity_38366 shash_descsize dm_verity 0 38366 &disable_so_cpu_cpufreq_policy_38366
141857 +disable_so_sleep_cookie_addr_lo_host_cmd_ds_pcie_details_38370 sleep_cookie_addr_lo host_cmd_ds_pcie_details 0 38370 NULL
141858 +disable_so_bch_btree_keys_u64s_remaining_fndecl_38373 bch_btree_keys_u64s_remaining fndecl 0 38373 NULL
141859 +disable_so_timeout_lp_struct_38387 timeout lp_struct 0 38387 NULL
141860 +disable_so_x1205_set_datetime_fndecl_38391 x1205_set_datetime fndecl 4 38391 NULL
141861 +disable_so_dma_addr_rxd_info_38410 dma_addr rxd_info 0 38410 NULL
141862 +disable_so_copy_signaled_event_data_fndecl_38425 copy_signaled_event_data fndecl 1 38425 NULL
141863 +disable_so_bcn_addr_carl9170_bcn_ctrl_cmd_38429 bcn_addr carl9170_bcn_ctrl_cmd 0 38429 NULL
141864 +disable_so_rproc_vq_interrupt_fndecl_38432 rproc_vq_interrupt fndecl 2 38432 NULL
141865 +disable_so_div_clk_div_table_38447 div clk_div_table 0 38447 NULL
141866 +disable_so_seq_default_timer_resolution_vardecl_38451 seq_default_timer_resolution vardecl 0 38451 NULL
141867 +disable_so_dma_ops_free_addresses_fndecl_38461 dma_ops_free_addresses fndecl 2-3 38461 NULL
141868 +disable_so_time_zero_xfs_mru_cache_38463 time_zero xfs_mru_cache 0 38463 NULL
141869 +disable_so_timeAdj_TCP_Server_Info_38464 timeAdj TCP_Server_Info 0 38464 NULL
141870 +disable_so_curr_kvm_shared_msr_values_38468 curr kvm_shared_msr_values 0 38468 NULL
141871 +disable_so_vhost_add_used_and_signal_fndecl_38469 vhost_add_used_and_signal fndecl 4-3 38469 NULL
141872 +disable_so_mclk_pwrmgt_cntl_ni_clock_registers_38478 mclk_pwrmgt_cntl ni_clock_registers 0 38478 NULL
141873 +disable_so_srp_reconnect_delay_vardecl_ib_srp_c_38484 srp_reconnect_delay vardecl_ib_srp.c 0 38484 NULL
141874 +disable_so_i2c_clk_divider_au0828_board_38485 i2c_clk_divider au0828_board 0 38485 NULL
141875 +disable_so_ark_set_pixclock_fndecl_38501 ark_set_pixclock fndecl 2 38501 NULL
141876 +disable_so_use_time_xfrm_lifetime_cur_38505 use_time xfrm_lifetime_cur 0 38505 NULL nohasharray
141877 +disable_so_musb_advance_schedule_fndecl_38505 musb_advance_schedule fndecl 4 38505 &disable_so_use_time_xfrm_lifetime_cur_38505
141878 +disable_so_spinfo_mtu_sctp_paddrinfo_38516 spinfo_mtu sctp_paddrinfo 0 38516 NULL
141879 +disable_so_sample_freq_tda10048_state_38521 sample_freq tda10048_state 0 38521 NULL
141880 +disable_so_mapping_level_dirty_bitmap_fndecl_38527 mapping_level_dirty_bitmap fndecl 2 38527 NULL
141881 +disable_so_rx_ring_dma_addr_sc92031_priv_38536 rx_ring_dma_addr sc92031_priv 0 38536 NULL
141882 +disable_so___ipv6_addr_type_fndecl_38537 __ipv6_addr_type fndecl 0 38537 NULL
141883 +disable_so_cstamp_inet6_ifaddr_38541 cstamp inet6_ifaddr 0 38541 NULL
141884 +disable_so_arch_randomize_brk_fndecl_38542 arch_randomize_brk fndecl 0 38542 NULL
141885 +disable_so_imon_mce_key_lookup_fndecl_38543 imon_mce_key_lookup fndecl 0-2 38543 NULL
141886 +disable_so_amdgpu_mm_wreg_fndecl_38550 amdgpu_mm_wreg fndecl 2-3 38550 NULL
141887 +disable_so_mgid_index_mthca_qp_path_38553 mgid_index mthca_qp_path 0 38553 NULL
141888 +disable_so_i_gid_bfs_inode_38565 i_gid bfs_inode 0 38565 NULL
141889 +disable_so_tx_delayed_compl_wlcore_ops_38572 tx_delayed_compl wlcore_ops 0 38572 NULL
141890 +disable_so_split_scan_timeout_write_fndecl_38579 split_scan_timeout_write fndecl 3-0 38579 NULL
141891 +disable_so_xfs_btree_change_owner_fndecl_38586 xfs_btree_change_owner fndecl 0-2 38586 NULL
141892 +disable_so_hash_sendmsg_fndecl_38588 hash_sendmsg fndecl 0 38588 NULL
141893 +disable_so_read_inode_bitmap_fndecl_38589 read_inode_bitmap fndecl 2 38589 NULL
141894 +disable_so_before_ctime_sec_nfsd4_change_info_38591 before_ctime_sec nfsd4_change_info 0 38591 NULL
141895 +disable_so_sys_clock_freq_drx_common_attr_38599 sys_clock_freq drx_common_attr 0 38599 NULL
141896 +disable_so_kvm_x2apic_msr_write_fndecl_38601 kvm_x2apic_msr_write fndecl 3 38601 NULL
141897 +disable_so_stored_addr_lo_amd_iommu_38609 stored_addr_lo amd_iommu 0 38609 NULL
141898 +disable_so_udp_port_udp_media_addr_38613 udp_port udp_media_addr 0 38613 NULL
141899 +disable_so_hashmask_Qdisc_class_hash_38621 hashmask Qdisc_class_hash 0 38621 NULL
141900 +disable_so_i_gid_nilfs_inode_38625 i_gid nilfs_inode 0 38625 NULL
141901 +disable_so__freq_tbl_determine_rate_fndecl_38627 _freq_tbl_determine_rate fndecl 0 38627 NULL
141902 +disable_so_n__pll_div_38634 n _pll_div 0 38634 NULL
141903 +disable_so_security_task_getpgid_fndecl_38635 security_task_getpgid fndecl 0 38635 NULL
141904 +disable_so_dmsr_eg20t_port_38638 dmsr eg20t_port 0 38638 NULL
141905 +disable_so_e4000_s_frequency_fndecl_38648 e4000_s_frequency fndecl 0 38648 NULL
141906 +disable_so_timestamp_iwl_rx_phy_res_38650 timestamp iwl_rx_phy_res 0 38650 NULL
141907 +disable_so_set_freq_fndecl_38651 set_freq fndecl 2 38651 NULL
141908 +disable_so_technisat_usb2_set_led_timer_fndecl_38654 technisat_usb2_set_led_timer fndecl 3-2 38654 NULL
141909 +disable_so_mthca_query_gid_fndecl_38656 mthca_query_gid fndecl 2-3 38656 NULL
141910 +disable_so_mpihelp_addmul_1_fndecl_38658 mpihelp_addmul_1 fndecl 3 38658 NULL
141911 +disable_so_press_adjust_channel_bit_mask_fndecl_38661 press_adjust_channel_bit_mask fndecl 3 38661 NULL
141912 +disable_so_vdi_ctime_vxfs_inode_info_38664 vdi_ctime vxfs_inode_info 0 38664 NULL
141913 +disable_so_afs_vlocation_update_timeout_vardecl_vlocation_c_38669 afs_vlocation_update_timeout vardecl_vlocation.c 0 38669 NULL nohasharray
141914 +disable_so_last_semaphore_signal_addr_radeon_ring_38669 last_semaphore_signal_addr radeon_ring 0 38669 &disable_so_afs_vlocation_update_timeout_vardecl_vlocation_c_38669
141915 +disable_so_rhashtable_check_elasticity_fndecl_38676 rhashtable_check_elasticity fndecl 3 38676 NULL
141916 +disable_so_addr_bus_sg_simple_element_38677 addr_bus sg_simple_element 0 38677 NULL
141917 +disable_so_pcxhr_get_external_clock_fndecl_38682 pcxhr_get_external_clock fndecl 0 38682 NULL
141918 +disable_so_ahd_timer_reset_fndecl_38702 ahd_timer_reset fndecl 2 38702 NULL nohasharray
141919 +disable_so_nr_uninterruptible_rq_38702 nr_uninterruptible rq 0 38702 &disable_so_ahd_timer_reset_fndecl_38702
141920 +disable_so_dp_saddr_rds_ib_connect_private_38707 dp_saddr rds_ib_connect_private 0 38707 NULL
141921 +disable_so_dsp_spl_jiffies_vardecl_38710 dsp_spl_jiffies vardecl 0 38710 NULL
141922 +disable_so_mtrr_lookup_init_fndecl_38724 mtrr_lookup_init fndecl 4-3 38724 NULL
141923 +disable_so_qdisc_watchdog_schedule_fndecl_38729 qdisc_watchdog_schedule fndecl 2 38729 NULL
141924 +disable_so_authenc_esn_verify_ahash_update_done_fndecl_38734 authenc_esn_verify_ahash_update_done fndecl 2 38734 NULL
141925 +disable_so_hactive_hi_oaktrail_timing_info_38738 hactive_hi oaktrail_timing_info 0 38738 NULL
141926 +disable_so_i2c_address_xc5000_config_38739 i2c_address xc5000_config 0 38739 NULL
141927 +disable_so_address_fw_hdr_38754 address fw_hdr 0 38754 NULL
141928 +disable_so_radio_addr_saa7134_dev_38765 radio_addr saa7134_dev 0 38765 NULL
141929 +disable_so_i2c_address_max2165_config_38766 i2c_address max2165_config 0 38766 NULL nohasharray
141930 +disable_so_lcq_addr_lo_fcoe_kwqe_conn_offload4_38766 lcq_addr_lo fcoe_kwqe_conn_offload4 0 38766 &disable_so_i2c_address_max2165_config_38766
141931 +disable_so_fan1_div_amc6821_data_38770 fan1_div amc6821_data 0 38770 NULL
141932 +disable_so_sd_blocks_per_bitmap_gfs2_sbd_38771 sd_blocks_per_bitmap gfs2_sbd 0 38771 NULL
141933 +disable_so_cryptd_hash_finup_fndecl_38778 cryptd_hash_finup fndecl 2 38778 NULL
141934 +disable_so_mnamehash_dlm_master_list_entry_38791 mnamehash dlm_master_list_entry 0 38791 NULL
141935 +disable_so_compat_sys_clock_nanosleep_fndecl_38793 compat_sys_clock_nanosleep fndecl 1 38793 NULL
141936 +disable_so_minutes_v4l2_timecode_38804 minutes v4l2_timecode 0 38804 NULL
141937 +disable_so_mtrr_type_lookup_variable_fndecl_38806 mtrr_type_lookup_variable fndecl 1-2 38806 NULL
141938 +disable_so_pch_uart_hal_disable_interrupt_fndecl_38820 pch_uart_hal_disable_interrupt fndecl 2 38820 NULL nohasharray
141939 +disable_so_addr_azx_38820 addr azx 0 38820 &disable_so_pch_uart_hal_disable_interrupt_fndecl_38820
141940 +disable_so_num_addresses_at24_data_38822 num_addresses at24_data 0 38822 NULL
141941 +disable_so_delay_reg_anatop_regulator_38823 delay_reg anatop_regulator 0 38823 NULL
141942 +disable_so_table_addr_radeon_gart_38825 table_addr radeon_gart 0 38825 NULL
141943 +disable_so_random_ioctl_fndecl_38846 random_ioctl fndecl 0 38846 NULL
141944 +disable_so_iwl_count_chain_bitmap_fndecl_38847 iwl_count_chain_bitmap fndecl 0-1 38847 NULL
141945 +disable_so_phy_pm_runtime_get_fndecl_38865 phy_pm_runtime_get fndecl 0 38865 NULL
141946 +disable_so_interrupt_level_mask_kszphy_type_38870 interrupt_level_mask kszphy_type 0 38870 NULL nohasharray
141947 +disable_so_r25_val_fc2580_freq_regs_38870 r25_val fc2580_freq_regs 0 38870 &disable_so_interrupt_level_mask_kszphy_type_38870
141948 +disable_so_cc770_tx_interrupt_fndecl_38879 cc770_tx_interrupt fndecl 2 38879 NULL
141949 +disable_so_rq_first_pbe_addr_lo_fcoe_kwqe_conn_offload1_38880 rq_first_pbe_addr_lo fcoe_kwqe_conn_offload1 0 38880 NULL
141950 +disable_so_hpi_compander_get_attack_time_constant_fndecl_38881 hpi_compander_get_attack_time_constant fndecl 1-0 38881 NULL
141951 +disable_so_get_clock_info_fndecl_38883 get_clock_info fndecl 4-0 38883 NULL
141952 +disable_so_ieee80211_aes_gmac_fndecl_38891 ieee80211_aes_gmac fndecl 5 38891 NULL
141953 +disable_so_port_mlx4_sriov_alias_guid_port_rec_det_38897 port mlx4_sriov_alias_guid_port_rec_det 0 38897 NULL
141954 +disable_so_fd_pppol2tpv3_addr_38898 fd pppol2tpv3_addr 0 38898 NULL nohasharray
141955 +disable_so_bcm3510_set_freq_fndecl_38898 bcm3510_set_freq fndecl 2 38898 &disable_so_fd_pppol2tpv3_addr_38898
141956 +disable_so_irq_dispose_mapping_fndecl_38902 irq_dispose_mapping fndecl 1 38902 NULL
141957 +disable_so_crypto_ccm_decrypt_done_fndecl_38904 crypto_ccm_decrypt_done fndecl 2 38904 NULL
141958 +disable_so_cw1200_queue_get_xmit_timestamp_fndecl_38907 cw1200_queue_get_xmit_timestamp fndecl 3 38907 NULL nohasharray
141959 +disable_so_s_addr_per_block_bits_ext4_sb_info_38907 s_addr_per_block_bits ext4_sb_info 0 38907 &disable_so_cw1200_queue_get_xmit_timestamp_fndecl_38907
141960 +disable_so_check_num_extents_and_bitmaps_fndecl_38927 check_num_extents_and_bitmaps fndecl 0 38927 NULL
141961 +disable_so_timekeeping_get_tai_offset_fndecl_38933 timekeeping_get_tai_offset fndecl 0 38933 NULL nohasharray
141962 +disable_so_ccp_register_aes_cmac_algs_fndecl_38933 ccp_register_aes_cmac_algs fndecl 0 38933 &disable_so_timekeeping_get_tai_offset_fndecl_38933
141963 +disable_so_mlx4_get_base_gid_ix_fndecl_38938 mlx4_get_base_gid_ix fndecl 0-2-3 38938 NULL
141964 +disable_so_default_i2c_addr_dib7000p_config_38941 default_i2c_addr dib7000p_config 0 38941 NULL
141965 +disable_so_nilfs_btree_get_next_key_fndecl_38942 nilfs_btree_get_next_key fndecl 0 38942 NULL
141966 +disable_so_eoc_delay_ns_cc10001_adc_device_38943 eoc_delay_ns cc10001_adc_device 0 38943 NULL
141967 +disable_so_get_clock_desc_fndecl_38944 get_clock_desc fndecl 1 38944 NULL
141968 +disable_so_hdsp_set_interrupt_interval_fndecl_38947 hdsp_set_interrupt_interval fndecl 2 38947 NULL
141969 +disable_so_sysctl_sched_time_avg_vardecl_38969 sysctl_sched_time_avg vardecl 0 38969 NULL
141970 +disable_so_vivid_radio_s_frequency_fndecl_38975 vivid_radio_s_frequency fndecl 0 38975 NULL
141971 +disable_so_sha1_pad_fndecl_38979 sha1_pad fndecl 0-2 38979 NULL
141972 +disable_so_hash_mask_deflate_state_38981 hash_mask deflate_state 0 38981 NULL
141973 +disable_so_pos_dmaengine_pcm_runtime_data_38984 pos dmaengine_pcm_runtime_data 0 38984 NULL
141974 +disable_so_set_dma_addr_fndecl_38989 set_dma_addr fndecl 1-2 38989 NULL
141975 +disable_so_caller_gid_ceph_mds_request_head_38991 caller_gid ceph_mds_request_head 0 38991 NULL
141976 +disable_so_bf_paddr_ath_mci_buf_38995 bf_paddr ath_mci_buf 0 38995 NULL
141977 +disable_so_x86_setup_var_mtrrs_fndecl_39006 x86_setup_var_mtrrs fndecl 4-3-2 39006 NULL nohasharray
141978 +disable_so_uv_global_mmr64_address_fndecl_39006 uv_global_mmr64_address fndecl 1 39006 &disable_so_x86_setup_var_mtrrs_fndecl_39006
141979 +disable_so_interrupt_out_interval_lego_usb_tower_39007 interrupt_out_interval lego_usb_tower 0 39007 NULL
141980 +disable_so_di_uid_logfs_disk_inode_39011 di_uid logfs_disk_inode 0 39011 NULL
141981 +disable_so_cfag12864b_address_fndecl_39018 cfag12864b_address fndecl 1 39018 NULL
141982 +disable_so_dmaaddr_b43legacy_dmadesc_meta_39023 dmaaddr b43legacy_dmadesc_meta 0 39023 NULL
141983 +disable_so_dce_v10_0_crtc_set_base_atomic_fndecl_39025 dce_v10_0_crtc_set_base_atomic fndecl 0 39025 NULL
141984 +disable_so_dst_addr_l_wcn36xx_dxe_desc_39037 dst_addr_l wcn36xx_dxe_desc 0 39037 NULL
141985 +disable_so_show_fan_div_fndecl_39039 show_fan_div fndecl 0 39039 NULL
141986 +disable_so_set_timer_slack_fndecl_39051 set_timer_slack fndecl 2 39051 NULL
141987 +disable_so_seq_xfrm_usersa_info_39054 seq xfrm_usersa_info 0 39054 NULL
141988 +disable_so_freq_wmi_send_action_cmd_39065 freq wmi_send_action_cmd 0 39065 NULL
141989 +disable_so_addr_ksz_hw_desc_39069 addr ksz_hw_desc 0 39069 NULL
141990 +disable_so_fll_refclk_div__fll_div_39071 fll_refclk_div _fll_div 0 39071 NULL
141991 +disable_so_atime_nsec_ubifs_ino_node_39079 atime_nsec ubifs_ino_node 0 39079 NULL
141992 +disable_so_p2m_jiffies_solo_dev_39094 p2m_jiffies solo_dev 0 39094 NULL
141993 +disable_so_cl_time_nfs4_client_39095 cl_time nfs4_client 0 39095 NULL
141994 +disable_so_addr_inet_cork_39099 addr inet_cork 0 39099 NULL nohasharray
141995 +disable_so_get_cur_freq_on_cpu_fndecl_39099 get_cur_freq_on_cpu fndecl 0 39099 &disable_so_addr_inet_cork_39099
141996 +disable_so_addr_radeon_dummy_page_39105 addr radeon_dummy_page 0 39105 NULL
141997 +disable_so_dmar_set_interrupt_fndecl_39106 dmar_set_interrupt fndecl 0 39106 NULL
141998 +disable_so_read_position_register_address_sst_hsw_ipc_stream_alloc_reply_39122 read_position_register_address sst_hsw_ipc_stream_alloc_reply 0 39122 NULL
141999 +disable_so_atomic_set_property_drm_plane_funcs_39123 atomic_set_property drm_plane_funcs 0-4 39123 NULL nohasharray
142000 +disable_so_sisfb_mode_rate_to_dclock_fndecl_39123 sisfb_mode_rate_to_dclock fndecl 2-3-0 39123 &disable_so_atomic_set_property_drm_plane_funcs_39123
142001 +disable_so_div_sync_wait_dib7000p_state_39125 div_sync_wait dib7000p_state 0 39125 NULL nohasharray
142002 +disable_so_enic_dev_add_station_addr_fndecl_39125 enic_dev_add_station_addr fndecl 0 39125 &disable_so_div_sync_wait_dib7000p_state_39125
142003 +disable_so_regcache_rbtree_write_fndecl_39126 regcache_rbtree_write fndecl 2-3 39126 NULL
142004 +disable_so_boot_addr_nvbios_pmuR_39136 boot_addr nvbios_pmuR 0 39136 NULL
142005 +disable_so_slack_timer_list_39142 slack timer_list 0 39142 NULL
142006 +disable_so_qat_alg_ablkcipher_decrypt_fndecl_39147 qat_alg_ablkcipher_decrypt fndecl 0 39147 NULL
142007 +disable_so_security_task_fix_setuid_fndecl_39149 security_task_fix_setuid fndecl 0 39149 NULL
142008 +disable_so_result_xfs_btree_split_args_39161 result xfs_btree_split_args 0 39161 NULL
142009 +disable_so_max_medium_access_timeouts_show_fndecl_39174 max_medium_access_timeouts_show fndecl 0 39174 NULL
142010 +disable_so_rx_rx_timeout_wa_read_fndecl_39183 rx_rx_timeout_wa_read fndecl 3 39183 NULL nohasharray
142011 +disable_so_store_falltime_fndecl_39183 store_falltime fndecl 4-0 39183 &disable_so_rx_rx_timeout_wa_read_fndecl_39183
142012 +disable_so_n_gma_clock_t_39192 n gma_clock_t 0 39192 NULL
142013 +disable_so_phy_addr_wcn36xx_dxe_mem_pool_39193 phy_addr wcn36xx_dxe_mem_pool 0 39193 NULL
142014 +disable_so_r6c_val_fc2580_freq_regs_39202 r6c_val fc2580_freq_regs 0 39202 NULL
142015 +disable_so_adis16480_get_freq_fndecl_39205 adis16480_get_freq fndecl 0 39205 NULL
142016 +disable_so_stv0367_get_tuner_freq_fndecl_39210 stv0367_get_tuner_freq fndecl 0 39210 NULL
142017 +disable_so_loadtime_init_fndecl_39230 loadtime_init fndecl 0 39230 NULL
142018 +disable_so_vcc_timeout_period_lec_priv_39232 vcc_timeout_period lec_priv 0 39232 NULL nohasharray
142019 +disable_so_ciu_div_dw_mci_exynos_priv_data_39232 ciu_div dw_mci_exynos_priv_data 0 39232 &disable_so_vcc_timeout_period_lec_priv_39232
142020 +disable_so_rxhubaddr_musb_csr_regs_39234 rxhubaddr musb_csr_regs 0 39234 NULL
142021 +disable_so_igb_init_interrupt_scheme_fndecl_39237 igb_init_interrupt_scheme fndecl 0 39237 NULL
142022 +disable_so_decrypt_mpdu_lib80211_crypto_ops_39245 decrypt_mpdu lib80211_crypto_ops 2 39245 NULL
142023 +disable_so_enc_cd_paddr_qat_alg_ablkcipher_ctx_39246 enc_cd_paddr qat_alg_ablkcipher_ctx 0 39246 NULL
142024 +disable_so_ax_tss_segment_16_39248 ax tss_segment_16 0 39248 NULL
142025 +disable_so___crypto_memneq_fndecl_39251 __crypto_memneq fndecl 3 39251 NULL
142026 +disable_so_core_freq_drm_psb_private_39252 core_freq drm_psb_private 0 39252 NULL
142027 +disable_so_i_gid_minix_inode_39253 i_gid minix_inode 0 39253 NULL
142028 +disable_so_sllc_arphrd_sockaddr_llc_39261 sllc_arphrd sockaddr_llc 0 39261 NULL
142029 +disable_so_bind_virq_for_mce_fndecl_39266 bind_virq_for_mce fndecl 0 39266 NULL
142030 +disable_so_poll_timeout_hwif_s_39267 poll_timeout hwif_s 0 39267 NULL
142031 +disable_so_cik_set_uvd_clock_fndecl_39276 cik_set_uvd_clock fndecl 2-0 39276 NULL
142032 +disable_so_watchdog_get_timeleft_fndecl_39280 watchdog_get_timeleft fndecl 0 39280 NULL
142033 +disable_so_pti_addr_pti_dev_39288 pti_addr pti_dev 0 39288 NULL
142034 +disable_so_last_guest_tsc_kvm_vcpu_arch_39290 last_guest_tsc kvm_vcpu_arch 0 39290 NULL
142035 +disable_so_crypto_cts_encrypt_fndecl_39299 crypto_cts_encrypt fndecl 0-4 39299 NULL
142036 +disable_so_set_timer_mode_fndecl_39306 set_timer_mode fndecl 1 39306 NULL
142037 +disable_so_vref_delay_usecs_ads7846_39307 vref_delay_usecs ads7846 0 39307 NULL nohasharray
142038 +disable_so_signal_rxdone_entry_desc_39307 signal rxdone_entry_desc 0 39307 &disable_so_vref_delay_usecs_ads7846_39307
142039 +disable_so_kr_rcvhdrtailaddr_ipath_kregs_39311 kr_rcvhdrtailaddr ipath_kregs 0 39311 NULL
142040 +disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 cyapa_pwr_cmd_to_sleep_time fndecl 0-1 39315 NULL nohasharray
142041 +disable_so_sleep_time_packet_data_39315 sleep_time packet_data 0 39315 &disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 nohasharray
142042 +disable_so_sdhci_runtime_pm_get_fndecl_39315 sdhci_runtime_pm_get fndecl 0 39315 &disable_so_sleep_time_packet_data_39315
142043 +disable_so___request_region_fndecl_39330 __request_region fndecl 3-2-5 39330 NULL
142044 +disable_so_hash_next_entry_39332 hash_next entry 0 39332 NULL
142045 +disable_so_timeout_dmx_sct_filter_params_39333 timeout dmx_sct_filter_params 0 39333 NULL
142046 +disable_so_dma_in_mceusb_dev_39335 dma_in mceusb_dev 0 39335 NULL
142047 +disable_so_address_acpi_resource_fixed_io_39338 address acpi_resource_fixed_io 0 39338 NULL
142048 +disable_so_adjusted_clock_radeon_crtc_39340 adjusted_clock radeon_crtc 0 39340 NULL
142049 +disable_so_busaddr_drm_dma_handle_39348 busaddr drm_dma_handle 0 39348 NULL
142050 +disable_so_gid_ok_fndecl_39349 gid_ok fndecl 3 39349 NULL
142051 +disable_so_sched_clock_remote_fndecl_39352 sched_clock_remote fndecl 0 39352 NULL
142052 +disable_so_i_ctime_extra_ext4_inode_39365 i_ctime_extra ext4_inode 0 39365 NULL
142053 +disable_so_mISDN_inittimer_fndecl_39396 mISDN_inittimer fndecl 0 39396 NULL
142054 +disable_so_status_addr_efx_vf_39401 status_addr efx_vf 0 39401 NULL nohasharray
142055 +disable_so_freq_ieee80211_rx_status_39401 freq ieee80211_rx_status 0 39401 &disable_so_status_addr_efx_vf_39401
142056 +disable_so_validate_acl_mac_addrs_fndecl_39406 validate_acl_mac_addrs fndecl 0 39406 NULL nohasharray
142057 +disable_so_encrypt_mpdu_lib80211_crypto_ops_39406 encrypt_mpdu lib80211_crypto_ops 2 39406 &disable_so_validate_acl_mac_addrs_fndecl_39406
142058 +disable_so_max_idle_ns_clocksource_39415 max_idle_ns clocksource 0 39415 NULL
142059 +disable_so_sys_setreuid16_fndecl_39425 sys_setreuid16 fndecl 0-1-2 39425 NULL
142060 +disable_so_typhoon_start_runtime_fndecl_39437 typhoon_start_runtime fndecl 0 39437 NULL nohasharray
142061 +disable_so_frequency_dtv_frontend_properties_39437 frequency dtv_frontend_properties 0 39437 &disable_so_typhoon_start_runtime_fndecl_39437
142062 +disable_so_addr_init_table_39442 addr init_table 0 39442 NULL
142063 +disable_so_gru_end_paddr_vardecl_x2apic_uv_x_c_39443 gru_end_paddr vardecl_x2apic_uv_x.c 0 39443 NULL
142064 +disable_so_irq_timeout_write_fndecl_39445 irq_timeout_write fndecl 3-0 39445 NULL
142065 +disable_so_uwb_rc_mac_addr_set_fndecl_39450 uwb_rc_mac_addr_set fndecl 0 39450 NULL
142066 +disable_so_ext4_es_find_delayed_extent_range_fndecl_39461 ext4_es_find_delayed_extent_range fndecl 2-3 39461 NULL
142067 +disable_so_conn_timeout_hci_conn_39470 conn_timeout hci_conn 0 39470 NULL nohasharray
142068 +disable_so_compat_sys_rt_sigtimedwait_fndecl_39470 compat_sys_rt_sigtimedwait fndecl 0 39470 &disable_so_conn_timeout_hci_conn_39470
142069 +disable_so_snd_usb_pcm_delay_fndecl_39473 snd_usb_pcm_delay fndecl 0-2 39473 NULL nohasharray
142070 +disable_so_freq_offset_khz_vhf_dib0070_config_39473 freq_offset_khz_vhf dib0070_config 0 39473 &disable_so_snd_usb_pcm_delay_fndecl_39473
142071 +disable_so_sz_out_qat_crypto_request_buffs_39477 sz_out qat_crypto_request_buffs 0 39477 NULL
142072 +disable_so_tx_abs_int_delay_e1000_adapter_39481 tx_abs_int_delay e1000_adapter 0 39481 NULL
142073 +disable_so_nilfs_btree_node_delete_fndecl_39483 nilfs_btree_node_delete fndecl 2 39483 NULL
142074 +disable_so_timeout_write_fndecl_39484 timeout_write fndecl 3-0 39484 NULL
142075 +disable_so_ac97_clock_vardecl_intel8x0_c_39489 ac97_clock vardecl_intel8x0.c 0 39489 NULL
142076 +disable_so_get_clock_info_fndecl_39492 get_clock_info fndecl 0 39492 NULL
142077 +disable_so_buf_paddr_uioc_39504 buf_paddr uioc 0 39504 NULL
142078 +disable_so_mpll_ss2_rv770_clock_registers_39508 mpll_ss2 rv770_clock_registers 0 39508 NULL
142079 +disable_so_fc_exch_timer_set_fndecl_39511 fc_exch_timer_set fndecl 2 39511 NULL
142080 +disable_so_stv0900_write_reg_fndecl_39517 stv0900_write_reg fndecl 2-3 39517 NULL
142081 +disable_so_divf_ide_proc_devset_39528 divf ide_proc_devset 0 39528 NULL
142082 +disable_so_wm_adsp_create_region_fndecl_39536 wm_adsp_create_region fndecl 2 39536 NULL
142083 +disable_so_pl2303_encode_baud_rate_divisor_fndecl_39544 pl2303_encode_baud_rate_divisor fndecl 0-2 39544 NULL
142084 +disable_so_mlx4_put_slave_node_guid_fndecl_39546 mlx4_put_slave_node_guid fndecl 3 39546 NULL
142085 +disable_so_sgl_addr_lo_fw_flash_Update_req_39547 sgl_addr_lo fw_flash_Update_req 0 39547 NULL
142086 +disable_so_m41t93_set_time_fndecl_39562 m41t93_set_time fndecl 0 39562 NULL
142087 +disable_so_width_intel_sdvo_preferred_input_timing_args_39563 width intel_sdvo_preferred_input_timing_args 0 39563 NULL
142088 +disable_so_RF_SYN_reserved_addr29_chan_info_nphy_radio205x_39569 RF_SYN_reserved_addr29 chan_info_nphy_radio205x 0 39569 NULL
142089 +disable_so_delay_vardecl_wm9712_c_39574 delay vardecl_wm9712.c 0 39574 NULL
142090 +disable_so_usb_sleep_charge_show_fndecl_39578 usb_sleep_charge_show fndecl 0 39578 NULL
142091 +disable_so_cpu_to_virtio16_fndecl_39582 cpu_to_virtio16 fndecl 0-2 39582 NULL
142092 +disable_so_e1000e_init_rx_addrs_fndecl_39608 e1000e_init_rx_addrs fndecl 2 39608 NULL
142093 +disable_so_wss_random_offset_tpg_draw_params_39616 wss_random_offset tpg_draw_params 0 39616 NULL
142094 +disable_so_ib_qib_sys_image_guid_vardecl_39617 ib_qib_sys_image_guid vardecl 0 39617 NULL
142095 +disable_so_m_gma_clock_t_39618 m gma_clock_t 0 39618 NULL
142096 +disable_so_nilfs_btree_node_move_right_fndecl_39627 nilfs_btree_node_move_right fndecl 3 39627 NULL
142097 +disable_so_max14577_muic_set_debounce_time_fndecl_39632 max14577_muic_set_debounce_time fndecl 2-0 39632 NULL nohasharray
142098 +disable_so_shash_compat_final_fndecl_39632 shash_compat_final fndecl 0 39632 &disable_so_max14577_muic_set_debounce_time_fndecl_39632
142099 +disable_so_tx_coal_timer_sxgbe_tx_queue_39639 tx_coal_timer sxgbe_tx_queue 0 39639 NULL
142100 +disable_so_antsignal_rx_radiotap_hdr_39653 antsignal rx_radiotap_hdr 0 39653 NULL
142101 +disable_so_vaddr_gru_dump_context_header_39663 vaddr gru_dump_context_header 0 39663 NULL
142102 +disable_so_cap_task_setscheduler_fndecl_39664 cap_task_setscheduler fndecl 0 39664 NULL
142103 +disable_so_bt_inq_page_start_time_bt_coexist_8723_39665 bt_inq_page_start_time bt_coexist_8723 0 39665 NULL
142104 +disable_so_last_beacon_signal_ieee80211_if_managed_39670 last_beacon_signal ieee80211_if_managed 0 39670 NULL
142105 +disable_so_ni_ipv4_address_dlm_node_info_39675 ni_ipv4_address dlm_node_info 0 39675 NULL
142106 +disable_so_i_gid_minix2_inode_39680 i_gid minix2_inode 0 39680 NULL
142107 +disable_so_mx51_ecspi_clkdiv_fndecl_39681 mx51_ecspi_clkdiv fndecl 1-2-0 39681 NULL
142108 +disable_so_mld_dad_start_timer_fndecl_39685 mld_dad_start_timer fndecl 2 39685 NULL
142109 +disable_so_fm10k_read_systime_vf_fndecl_39687 fm10k_read_systime_vf fndecl 0 39687 NULL
142110 +disable_so_cp_hqd_pq_wptr_poll_addr_hi_hqd_registers_39692 cp_hqd_pq_wptr_poll_addr_hi hqd_registers 0 39692 NULL
142111 +disable_so_i2c_smbus_read_byte_data_fndecl_39698 i2c_smbus_read_byte_data fndecl 0-2 39698 NULL
142112 +disable_so_abort_mfi_phys_addr_lo_megasas_abort_frame_39699 abort_mfi_phys_addr_lo megasas_abort_frame 0 39699 NULL
142113 +disable_so_sclk_radeon_pm_clock_info_39706 sclk radeon_pm_clock_info 0 39706 NULL
142114 +disable_so_dma_addr_pch_udc_dev_39708 dma_addr pch_udc_dev 0 39708 NULL
142115 +disable_so_word_write_time_flchip_39711 word_write_time flchip 0 39711 NULL nohasharray
142116 +disable_so_acpi_dev_runtime_suspend_fndecl_39711 acpi_dev_runtime_suspend fndecl 0 39711 &disable_so_word_write_time_flchip_39711
142117 +disable_so_poll_time_us_sccnxp_pdata_39712 poll_time_us sccnxp_pdata 0 39712 NULL
142118 +disable_so_div2_wm8978_pll_div_39713 div2 wm8978_pll_div 0 39713 NULL nohasharray
142119 +disable_so_ssb_chipco_alp_clock_fndecl_39713 ssb_chipco_alp_clock fndecl 0 39713 &disable_so_div2_wm8978_pll_div_39713
142120 +disable_so_chan_get_sndtimeo_cb_fndecl_39717 chan_get_sndtimeo_cb fndecl 0 39717 NULL nohasharray
142121 +disable_so_sys_image_guid_vardecl_ipath_verbs_c_39717 sys_image_guid vardecl_ipath_verbs.c 0 39717 &disable_so_chan_get_sndtimeo_cb_fndecl_39717 nohasharray
142122 +disable_so_address_start_unity_map_entry_39717 address_start unity_map_entry 0 39717 &disable_so_sys_image_guid_vardecl_ipath_verbs_c_39717
142123 +disable_so___ew32_fndecl_39722 __ew32 fndecl 2-3 39722 NULL
142124 +disable_so_schedule_sequence_fndecl_39726 schedule_sequence fndecl 3 39726 NULL
142125 +disable_so_bitmap_cond_end_sync_fndecl_39734 bitmap_cond_end_sync fndecl 2 39734 NULL
142126 +disable_so_mc13xxx_rtc_read_time_fndecl_39742 mc13xxx_rtc_read_time fndecl 0 39742 NULL
142127 +disable_so_time_out_ncp_mount_data_kernel_39747 time_out ncp_mount_data_kernel 0 39747 NULL
142128 +disable_so_address_khugepaged_scan_39752 address khugepaged_scan 0 39752 NULL
142129 +disable_so_ab3100_set_register_interruptible_fndecl_39767 ab3100_set_register_interruptible fndecl 0 39767 NULL
142130 +disable_so_ixgbe_write_uc_addr_list_fndecl_39773 ixgbe_write_uc_addr_list fndecl 2 39773 NULL
142131 +disable_so_i2c_udelay_vardecl_cx88_i2c_c_39777 i2c_udelay vardecl_cx88-i2c.c 0 39777 NULL
142132 +disable_so_pm_test_delay_vardecl_suspend_c_39779 pm_test_delay vardecl_suspend.c 0 39779 NULL
142133 +disable_so___mt7601u_phy_freq_cal_fndecl_39782 __mt7601u_phy_freq_cal fndecl 3 39782 NULL
142134 +disable_so_s2mpa01_regulator_set_voltage_time_sel_fndecl_39788 s2mpa01_regulator_set_voltage_time_sel fndecl 0-2-3 39788 NULL
142135 +disable_so_mlx4_get_admin_guid_fndecl_39797 mlx4_get_admin_guid fndecl 2-3 39797 NULL
142136 +disable_so_enic_dev_intr_coal_timer_info_fndecl_39803 enic_dev_intr_coal_timer_info fndecl 0 39803 NULL
142137 +disable_so_freq_can_clock_39804 freq can_clock 0 39804 NULL
142138 +disable_so_ktime_set_fndecl_39816 ktime_set fndecl 1-2 39816 NULL
142139 +disable_so_bitmap_set_fndecl_39820 bitmap_set fndecl 2-3 39820 NULL
142140 +disable_so_ttm_bo_delayed_delete_fndecl_39822 ttm_bo_delayed_delete fndecl 0 39822 NULL nohasharray
142141 +disable_so_ath_force_clear_no_ir_freq_fndecl_39822 ath_force_clear_no_ir_freq fndecl 2 39822 &disable_so_ttm_bo_delayed_delete_fndecl_39822
142142 +disable_so_ipw_set_random_seed_fndecl_39834 ipw_set_random_seed fndecl 0 39834 NULL
142143 +disable_so_tpm2_gen_interrupt_fndecl_39854 tpm2_gen_interrupt fndecl 0 39854 NULL
142144 +disable_so_addr_sch5627_data_39866 addr sch5627_data 0 39866 NULL
142145 +disable_so_governor_cpufreq_governor_39867 governor cpufreq_governor 0 39867 NULL
142146 +disable_so_jhash_3words_fndecl_39870 jhash_3words fndecl 0-1-3 39870 NULL
142147 +disable_so_lvb_iatime_packed_ocfs2_meta_lvb_39885 lvb_iatime_packed ocfs2_meta_lvb 0 39885 NULL
142148 +disable_so_delay_zl6100_data_39886 delay zl6100_data 0 39886 NULL
142149 +disable_so_nla_put_string_fndecl_39892 nla_put_string fndecl 0 39892 NULL
142150 +disable_so_ctime_mddev_39904 ctime mddev 0 39904 NULL
142151 +disable_so_set_output_clock_fndecl_39910 set_output_clock fndecl 0 39910 NULL
142152 +disable_so_clear_bit_le_fndecl_39918 clear_bit_le fndecl 1 39918 NULL
142153 +disable_so_target_burst_mode_freq_mipi_config_39926 target_burst_mode_freq mipi_config 0 39926 NULL
142154 +disable_so_host_addr_gnttab_map_grant_ref_39935 host_addr gnttab_map_grant_ref 0 39935 NULL
142155 +disable_so_esd_timeout_tsc2005_39938 esd_timeout tsc2005 0 39938 NULL
142156 +disable_so_nr_parts_latch_addr_flash_data_39945 nr_parts latch_addr_flash_data 0 39945 NULL
142157 +disable_so_efx_test_interrupts_fndecl_39946 efx_test_interrupts fndecl 0 39946 NULL
142158 +disable_so_ds1685_rtc_read_time_fndecl_39947 ds1685_rtc_read_time fndecl 0 39947 NULL nohasharray
142159 +disable_so_ctxbitmap_gru_tlb_global_handle_39947 ctxbitmap gru_tlb_global_handle 0 39947 &disable_so_ds1685_rtc_read_time_fndecl_39947
142160 +disable_so_si_program_memory_timing_parameters_fndecl_39954 si_program_memory_timing_parameters fndecl 0 39954 NULL
142161 +disable_so___mce_read_apei_fndecl_39956 __mce_read_apei fndecl 0 39956 NULL
142162 +disable_so_xtime_nsec_tk_read_base_39961 xtime_nsec tk_read_base 0 39961 NULL
142163 +disable_so_plldiv_clk_coeff_39962 plldiv clk_coeff 0 39962 NULL
142164 +disable_so_iscsi_nacl_attrib_show_random_r2t_offsets_fndecl_39965 iscsi_nacl_attrib_show_random_r2t_offsets fndecl 0 39965 NULL
142165 +disable_so_crtc_clock_drm_display_mode_39969 crtc_clock drm_display_mode 0 39969 NULL
142166 +disable_so_qat_alg_ablkcipher_encrypt_fndecl_40005 qat_alg_ablkcipher_encrypt fndecl 0 40005 NULL
142167 +disable_so_dib7000p_write_word_fndecl_40007 dib7000p_write_word fndecl 2-3 40007 NULL
142168 +disable_so_crypto_register_shash_fndecl_40011 crypto_register_shash fndecl 0 40011 NULL
142169 +disable_so_acpi_os_signal_semaphore_fndecl_40013 acpi_os_signal_semaphore fndecl 0 40013 NULL
142170 +disable_so_w1_delay_fndecl_40014 w1_delay fndecl 1 40014 NULL
142171 +disable_so_tda10071_sleep_fndecl_40017 tda10071_sleep fndecl 0 40017 NULL
142172 +disable_so_blkcipher_walk_phys_fndecl_40019 blkcipher_walk_phys fndecl 0 40019 NULL
142173 +disable_so_aes_cmac_fndecl_40025 aes_cmac fndecl 0-4 40025 NULL
142174 +disable_so_dwell_time_passive_conf_scan_settings_40029 dwell_time_passive conf_scan_settings 0 40029 NULL nohasharray
142175 +disable_so_freq_wmi_channel_arg_40029 freq wmi_channel_arg 0 40029 &disable_so_dwell_time_passive_conf_scan_settings_40029
142176 +disable_so_ip_tss_segment_16_40046 ip tss_segment_16 0 40046 NULL
142177 +disable_so_recent_entry_hash6_fndecl_40053 recent_entry_hash6 fndecl 0 40053 NULL
142178 +disable_so_pci_addr_mm_dma_desc_40056 pci_addr mm_dma_desc 0 40056 NULL
142179 +disable_so_mwifiex_get_random_ba_threshold_fndecl_40074 mwifiex_get_random_ba_threshold fndecl 0 40074 NULL nohasharray
142180 +disable_so_ccp_aes_xts_decrypt_fndecl_40074 ccp_aes_xts_decrypt fndecl 0 40074 &disable_so_mwifiex_get_random_ba_threshold_fndecl_40074
142181 +disable_so_nilfs_btree_delete_fndecl_40077 nilfs_btree_delete fndecl 0-2 40077 NULL
142182 +disable_so_db_page_addr_ocrdma_create_qp_uresp_40086 db_page_addr ocrdma_create_qp_uresp 0 40086 NULL
142183 +disable_so_bitmap_empty_fndecl_40098 bitmap_empty fndecl 2 40098 NULL
142184 +disable_so_crypto_aes_expand_key_fndecl_40101 crypto_aes_expand_key fndecl 0-3 40101 NULL
142185 +disable_so_sclk_radeon_clock_and_voltage_limits_40103 sclk radeon_clock_and_voltage_limits 0 40103 NULL
142186 +disable_so_daddr_irda_sock_40107 daddr irda_sock 0 40107 NULL
142187 +disable_so_efx_phc_settime_fndecl_40110 efx_phc_settime fndecl 0 40110 NULL nohasharray
142188 +disable_so_w1_gpio_write_bit_val_fndecl_40110 w1_gpio_write_bit_val fndecl 2 40110 &disable_so_efx_phc_settime_fndecl_40110
142189 +disable_so_memsize_bitmap_port_40111 memsize bitmap_port 0 40111 NULL
142190 +disable_so_freq_channel_detector_40125 freq channel_detector 0 40125 NULL
142191 +disable_so_bitmap_port_do_list_fndecl_40145 bitmap_port_do_list fndecl 0 40145 NULL
142192 +disable_so_mcs7830_hif_set_mac_address_fndecl_40149 mcs7830_hif_set_mac_address fndecl 0 40149 NULL
142193 +disable_so_musb_write_rxfunaddr_fndecl_40150 musb_write_rxfunaddr fndecl 2-3 40150 NULL
142194 +disable_so_ioaddr_set_address_info_40154 ioaddr set_address_info 0 40154 NULL nohasharray
142195 +disable_so_mmap_kvaddr_fndecl_40154 mmap_kvaddr fndecl 0-2-4 40154 &disable_so_ioaddr_set_address_info_40154
142196 +disable_so_hr_timeout_ms_o2hb_region_40157 hr_timeout_ms o2hb_region 0 40157 NULL
142197 +disable_so_startbit_ebitmap_node_40162 startbit ebitmap_node 0 40162 NULL
142198 +disable_so_phys_addr_sfi_apic_table_entry_40169 phys_addr sfi_apic_table_entry 0 40169 NULL
142199 +disable_so_hw_settle_time_vadc_channel_prop_40184 hw_settle_time vadc_channel_prop 0 40184 NULL
142200 +disable_so_pio_address_scsi_qla_host_40189 pio_address scsi_qla_host 0 40189 NULL
142201 +disable_so_iffreq_dvb_pll_desc_40199 iffreq dvb_pll_desc 0 40199 NULL nohasharray
142202 +disable_so_cobalt_g_dv_timings_fndecl_40199 cobalt_g_dv_timings fndecl 0 40199 &disable_so_iffreq_dvb_pll_desc_40199
142203 +disable_so_to_addr_conv_fndecl_40204 to_addr_conv fndecl 3 40204 NULL
142204 +disable_so_fm10k_update_uc_addr_vf_fndecl_40219 fm10k_update_uc_addr_vf fndecl 4 40219 NULL
142205 +disable_so_empress_addr_saa7134_board_40236 empress_addr saa7134_board 0 40236 NULL
142206 +disable_so_lm3533_led_delay_on_set_fndecl_40245 lm3533_led_delay_on_set fndecl 0 40245 NULL
142207 +disable_so_cryptd_hash_digest_fndecl_40277 cryptd_hash_digest fndecl 2 40277 NULL
142208 +disable_so_p2m_timeouts_show_fndecl_40284 p2m_timeouts_show fndecl 0 40284 NULL
142209 +disable_so_decrypt_blkcipher_tfm_40300 decrypt blkcipher_tfm 0-4 40300 NULL
142210 +disable_so_freq_radio_tea5777_40301 freq radio_tea5777 0 40301 NULL
142211 +disable_so_height_v4l2_bt_timings_40304 height v4l2_bt_timings 0 40304 NULL
142212 +disable_so_set_channels_control_runtime_40305 set_channels control_runtime 0 40305 NULL
142213 +disable_so_mpll_ss1_si_clock_registers_40320 mpll_ss1 si_clock_registers 0 40320 NULL
142214 +disable_so_address_drm_radeon_surface_free_40326 address drm_radeon_surface_free 0 40326 NULL
142215 +disable_so_scopedist_ipv6_saddr_score_40339 scopedist ipv6_saddr_score 0 40339 NULL
142216 +disable_so_eeprom_addr_pvr2_hdw_40343 eeprom_addr pvr2_hdw 0 40343 NULL
142217 +disable_so_phys_addr_low_qlcnic_tx_mbx_40351 phys_addr_low qlcnic_tx_mbx 0 40351 NULL
142218 +disable_so_i_ctime_nsec_nilfs_inode_40368 i_ctime_nsec nilfs_inode 0 40368 NULL
142219 +disable_so_crypto_set_driver_name_fndecl_40369 crypto_set_driver_name fndecl 0 40369 NULL
142220 +disable_so_gid_args_requester_40377 gid args_requester 0 40377 NULL
142221 +disable_so_ds1343_set_time_fndecl_40381 ds1343_set_time fndecl 0 40381 NULL nohasharray
142222 +disable_so_p2_mt9t112_pll_divider_40381 p2 mt9t112_pll_divider 0 40381 &disable_so_ds1343_set_time_fndecl_40381
142223 +disable_so_get_phys_to_machine_fndecl_40384 get_phys_to_machine fndecl 0-1 40384 NULL
142224 +disable_so_irlmp_start_watchdog_timer_fndecl_40386 irlmp_start_watchdog_timer fndecl 2 40386 NULL
142225 +disable_so_it_id_k_itimer_40394 it_id k_itimer 0 40394 NULL
142226 +disable_so_proc_gid_vardecl_airo_c_40395 proc_gid vardecl_airo.c 0 40395 NULL
142227 +disable_so_vf_addr_lo_bnx2x_vf_mbx_40423 vf_addr_lo bnx2x_vf_mbx 0 40423 NULL
142228 +disable_so_hsw_get_aux_clock_divider_fndecl_40428 hsw_get_aux_clock_divider fndecl 0 40428 NULL
142229 +disable_so_uid_coda_in_hdr_40430 uid coda_in_hdr 0 40430 NULL
142230 +disable_so_il4965_sta_modify_sleep_tx_count_fndecl_40431 il4965_sta_modify_sleep_tx_count fndecl 2 40431 NULL
142231 +disable_so_op_nmi_timer_init_fndecl_40444 op_nmi_timer_init fndecl 0 40444 NULL
142232 +disable_so_reply_dma_min_address_MPT3SAS_ADAPTER_40450 reply_dma_min_address MPT3SAS_ADAPTER 0 40450 NULL
142233 +disable_so_clock_elmer0_board_info_40451 clock_elmer0 board_info 0 40451 NULL
142234 +disable_so_drift_time_trackpoint_data_40460 drift_time trackpoint_data 0 40460 NULL
142235 +disable_so_tpm_get_random_fndecl_40461 tpm_get_random fndecl 0-3 40461 NULL
142236 +disable_so_HDisplay_xtimings_40462 HDisplay xtimings 0 40462 NULL
142237 +disable_so_addr_desc_frag_40463 addr desc_frag 0 40463 NULL
142238 +disable_so___scrub_mark_bitmap_fndecl_40465 __scrub_mark_bitmap fndecl 3-4 40465 NULL
142239 +disable_so_da9063_wdt_timeout_to_sel_fndecl_40469 da9063_wdt_timeout_to_sel fndecl 0-1 40469 NULL
142240 +disable_so_hactive___fb_timings_40471 hactive __fb_timings 0 40471 NULL
142241 +disable_so_next_blkaddr_of_node_fndecl_40477 next_blkaddr_of_node fndecl 0 40477 NULL
142242 +disable_so_gk20a_timer_init_fndecl_40478 gk20a_timer_init fndecl 0 40478 NULL
142243 +disable_so_saa7164_i2caddr_to_unitid_fndecl_40486 saa7164_i2caddr_to_unitid fndecl 2 40486 NULL
142244 +disable_so___hw_addr_unsync_one_fndecl_40488 __hw_addr_unsync_one fndecl 4 40488 NULL
142245 +disable_so_uncore_msr_box_offset_fndecl_40489 uncore_msr_box_offset fndecl 0 40489 NULL
142246 +disable_so_kgdbdbgp_wait_time_vardecl_ehci_dbgp_c_40510 kgdbdbgp_wait_time vardecl_ehci-dbgp.c 0 40510 NULL
142247 +disable_so_sys_time_fndecl_40516 sys_time fndecl 0 40516 NULL
142248 +disable_so_addrconf_sysctl_proxy_ndp_fndecl_40521 addrconf_sysctl_proxy_ndp fndecl 0 40521 NULL
142249 +disable_so_jiffies_64_vardecl_40530 jiffies_64 vardecl 0 40530 NULL
142250 +disable_so_time_fcoe_rport_40540 time fcoe_rport 0 40540 NULL nohasharray
142251 +disable_so_i_time_fuse_inode_40540 i_time fuse_inode 0 40540 &disable_so_time_fcoe_rport_40540
142252 +disable_so_fllclk_div__fll_div_40542 fllclk_div _fll_div 0 40542 NULL
142253 +disable_so_mmc_sleep_fndecl_40550 mmc_sleep fndecl 0 40550 NULL
142254 +disable_so_swap_activate_address_space_operations_40556 swap_activate address_space_operations 0 40556 NULL
142255 +disable_so_snd_timer_reschedule_fndecl_40558 snd_timer_reschedule fndecl 2 40558 NULL
142256 +disable_so_register_inetaddr_notifier_fndecl_40563 register_inetaddr_notifier fndecl 0 40563 NULL nohasharray
142257 +disable_so_shash_async_export_fndecl_40563 shash_async_export fndecl 0 40563 &disable_so_register_inetaddr_notifier_fndecl_40563
142258 +disable_so_tx_duty_cycle_ene_device_40568 tx_duty_cycle ene_device 0 40568 NULL
142259 +disable_so_delay_cfg80211_sched_scan_request_40582 delay cfg80211_sched_scan_request 0 40582 NULL
142260 +disable_so_sctp_copy_local_addr_list_fndecl_40597 sctp_copy_local_addr_list fndecl 0-4 40597 NULL
142261 +disable_so_can_clock_plx_pci_card_info_40599 can_clock plx_pci_card_info 0 40599 NULL
142262 +disable_so_last_semaphore_signal_addr_amdgpu_ring_40601 last_semaphore_signal_addr amdgpu_ring 0 40601 NULL
142263 +disable_so_slave_addr_radeon_encoder_ext_tmds_40618 slave_addr radeon_encoder_ext_tmds 0 40618 NULL
142264 +disable_so_lrg_buf_q_phy_addr_ql3_adapter_40620 lrg_buf_q_phy_addr ql3_adapter 0 40620 NULL
142265 +disable_so_slave_addr_sdvo_device_mapping_40627 slave_addr sdvo_device_mapping 0 40627 NULL
142266 +disable_so_raddr_fw_ldst_mdio_40629 raddr fw_ldst_mdio 0 40629 NULL
142267 +disable_so_soc_dpcm_runtime_update_fndecl_40639 soc_dpcm_runtime_update fndecl 0 40639 NULL
142268 +disable_so_md_timestamp_netxen_minidump_40640 md_timestamp netxen_minidump 0 40640 NULL
142269 +disable_so_freq_magnitude_fndecl_40641 freq_magnitude fndecl 0-2-3 40641 NULL
142270 +disable_so_asd_write_reg_addr_fndecl_40648 asd_write_reg_addr fndecl 2-3 40648 NULL
142271 +disable_so_ndiv_frac_pmu1_plltab_entry_40664 ndiv_frac pmu1_plltab_entry 0 40664 NULL
142272 +disable_so___percpu_counter_add_fndecl_40667 __percpu_counter_add fndecl 2 40667 NULL
142273 +disable_so_r600_set_mpll_lock_time_fndecl_40677 r600_set_mpll_lock_time fndecl 2 40677 NULL
142274 +disable_so_m_daddr_rds_message_40687 m_daddr rds_message 0 40687 NULL
142275 +disable_so_tbl_addr_hi_ahci_cmd_hdr_40697 tbl_addr_hi ahci_cmd_hdr 0 40697 NULL
142276 +disable_so___cfq_update_io_thinktime_fndecl_40698 __cfq_update_io_thinktime fndecl 2 40698 NULL
142277 +disable_so_sense_addr_snic_icmnd_40701 sense_addr snic_icmnd 0 40701 NULL
142278 +disable_so_addr_mlx5e_sq_dma_40707 addr mlx5e_sq_dma 0 40707 NULL
142279 +disable_so_lp872x_is_valid_buck_addr_fndecl_40709 lp872x_is_valid_buck_addr fndecl 1 40709 NULL
142280 +disable_so_dma_addr_respQ_40711 dma_addr respQ 0 40711 NULL
142281 +disable_so_mclkdiv_cs4265_clk_para_40714 mclkdiv cs4265_clk_para 0 40714 NULL
142282 +disable_so_sh_tmu_clocksource_read_fndecl_40723 sh_tmu_clocksource_read fndecl 0 40723 NULL nohasharray
142283 +disable_so_mthca_cmd_poll_fndecl_40723 mthca_cmd_poll fndecl 0-2 40723 &disable_so_sh_tmu_clocksource_read_fndecl_40723
142284 +disable_so_radio_si4713_s_frequency_fndecl_40725 radio_si4713_s_frequency fndecl 0 40725 NULL
142285 +disable_so_onecputick_vardecl_posix_cpu_timers_c_40726 onecputick vardecl_posix-cpu-timers.c 0 40726 NULL
142286 +disable_so_v_freq_adv7842_video_standards_40728 v_freq adv7842_video_standards 0 40728 NULL
142287 +disable_so___ip6addrlbl_del_fndecl_40742 __ip6addrlbl_del fndecl 0-4 40742 NULL
142288 +disable_so_encrypt_msdu_lib80211_crypto_ops_40743 encrypt_msdu lib80211_crypto_ops 2 40743 NULL
142289 +disable_so_rolloff_stv0900_signal_info_40745 rolloff stv0900_signal_info 0 40745 NULL
142290 +disable_so_pci_finish_runtime_suspend_fndecl_40755 pci_finish_runtime_suspend fndecl 0 40755 NULL
142291 +disable_so_tcp_sacktag_walk_fndecl_40756 tcp_sacktag_walk fndecl 6-5 40756 NULL
142292 +disable_so_vnic_dev_add_addr_fndecl_40765 vnic_dev_add_addr fndecl 0 40765 NULL
142293 +disable_so_zd_usb_iowrite16v_fndecl_40771 zd_usb_iowrite16v fndecl 3-0 40771 NULL nohasharray
142294 +disable_so_frequency_mb86a16_state_40771 frequency mb86a16_state 0 40771 &disable_so_zd_usb_iowrite16v_fndecl_40771
142295 +disable_so_clk_ref_div_fll_div_40776 clk_ref_div fll_div 0 40776 NULL
142296 +disable_so_lifetime_write_kbytes_show_fndecl_40777 lifetime_write_kbytes_show fndecl 0 40777 NULL nohasharray
142297 +disable_so_smp_send_reschedule_fndecl_40777 smp_send_reschedule fndecl 1 40777 &disable_so_lifetime_write_kbytes_show_fndecl_40777
142298 +disable_so_crypto_ccm_auth_fndecl_40795 crypto_ccm_auth fndecl 0-3 40795 NULL
142299 +disable_so_get_option_uid_fndecl_40799 get_option_uid fndecl 0 40799 NULL
142300 +disable_so_be_mac_addr_set_fndecl_40804 be_mac_addr_set fndecl 0 40804 NULL
142301 +disable_so_frac_timecounter_40806 frac timecounter 0 40806 NULL
142302 +disable_so_pid_pppol2tpin6_addr_40809 pid pppol2tpin6_addr 0 40809 NULL
142303 +disable_so_i40e_vc_del_mac_addr_msg_fndecl_40824 i40e_vc_del_mac_addr_msg fndecl 0-3 40824 NULL nohasharray
142304 +disable_so_uncore_msr_box_ctl_fndecl_40824 uncore_msr_box_ctl fndecl 0 40824 &disable_so_i40e_vc_del_mac_addr_msg_fndecl_40824
142305 +disable_so_ahd_delay_fndecl_40826 ahd_delay fndecl 1 40826 NULL
142306 +disable_so_read_addr___queue_40832 read_addr __queue 0 40832 NULL
142307 +disable_so_ring_iowrite32desc_fndecl_40836 ring_iowrite32desc fndecl 2 40836 NULL
142308 +disable_so_mma8452_get_samp_freq_index_fndecl_40841 mma8452_get_samp_freq_index fndecl 0-2-3 40841 NULL
142309 +disable_so_nouveau_bo_wr32_fndecl_40847 nouveau_bo_wr32 fndecl 2-3 40847 NULL
142310 +disable_so_drm_object_attach_property_fndecl_40853 drm_object_attach_property fndecl 3 40853 NULL
142311 +disable_so_sched_rr_timeslice_vardecl_40858 sched_rr_timeslice vardecl 0 40858 NULL
142312 +disable_so_hash_recvmsg_fndecl_40871 hash_recvmsg fndecl 0-3 40871 NULL
142313 +disable_so_timeradd_entry_fndecl_40873 timeradd_entry fndecl 0-3 40873 NULL
142314 +disable_so_pages_per_bnode_hfs_btree_40875 pages_per_bnode hfs_btree 0 40875 NULL
142315 +disable_so_ubifs_destroy_tnc_subtree_fndecl_40878 ubifs_destroy_tnc_subtree fndecl 0 40878 NULL
142316 +disable_so_add_uuid_fndecl_40884 add_uuid fndecl 4 40884 NULL nohasharray
142317 +disable_so_make_checksum_hmac_md5_fndecl_40884 make_checksum_hmac_md5 fndecl 3-5 40884 &disable_so_add_uuid_fndecl_40884
142318 +disable_so_sync_bmp_nbits_regcache_lzo_ctx_40890 sync_bmp_nbits regcache_lzo_ctx 0 40890 NULL
142319 +disable_so_crypto_fpu_decrypt_fndecl_40907 crypto_fpu_decrypt fndecl 0-4 40907 NULL
142320 +disable_so_qce_ahash_final_fndecl_40916 qce_ahash_final fndecl 0 40916 NULL
142321 +disable_so_auto_stop_time_uhci_hcd_40917 auto_stop_time uhci_hcd 0 40917 NULL
142322 +disable_so_sys_rt_sigtimedwait_fndecl_40920 sys_rt_sigtimedwait fndecl 0 40920 NULL
142323 +disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923 dec_cd_paddr qat_alg_ablkcipher_ctx 0 40923 NULL nohasharray
142324 +disable_so_i2cdev_check_addr_fndecl_40923 i2cdev_check_addr fndecl 2 40923 &disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923
142325 +disable_so_inode_bitmap_ext3_new_group_data_40928 inode_bitmap ext3_new_group_data 0 40928 NULL
142326 +disable_so_inet_select_addr_fndecl_40940 inet_select_addr fndecl 0-2-3 40940 NULL nohasharray
142327 +disable_so_curfreq_keene_device_40940 curfreq keene_device 0 40940 &disable_so_inet_select_addr_fndecl_40940
142328 +disable_so_w83627ehf_write_fan_div_common_fndecl_40945 w83627ehf_write_fan_div_common fndecl 3 40945 NULL
142329 +disable_so_req_addr_efx_vf_40947 req_addr efx_vf 0 40947 NULL
142330 +disable_so_get_crandom_fndecl_40951 get_crandom fndecl 0 40951 NULL
142331 +disable_so_authenc_esn_geniv_ahash_update_done2_fndecl_40965 authenc_esn_geniv_ahash_update_done2 fndecl 2 40965 NULL
142332 +disable_so_bt3c_address_fndecl_40975 bt3c_address fndecl 1 40975 NULL
142333 +disable_so_tx_bidx_addr_bnx2_tx_ring_info_40977 tx_bidx_addr bnx2_tx_ring_info 0 40977 NULL
142334 +disable_so_cs5520_set_timings_fndecl_40978 cs5520_set_timings fndecl 3 40978 NULL
142335 +disable_so_addrLow_ULP_BDL_40980 addrLow ULP_BDL 0 40980 NULL
142336 +disable_so_last_wakeup_time_rtl_ps_ctl_40987 last_wakeup_time rtl_ps_ctl 0 40987 NULL
142337 +disable_so_kstrtos8_fndecl_40989 kstrtos8 fndecl 0 40989 NULL nohasharray
142338 +disable_so_drbg_hash_generate_fndecl_40989 drbg_hash_generate fndecl 0-3 40989 &disable_so_kstrtos8_fndecl_40989
142339 +disable_so_vaddr_get_pfn_fndecl_40993 vaddr_get_pfn fndecl 0-1 40993 NULL
142340 +disable_so_s_def_resgid_ext3_super_block_40996 s_def_resgid ext3_super_block 0 40996 NULL
142341 +disable_so_sr_nongc_ctime_nilfs_super_root_40997 sr_nongc_ctime nilfs_super_root 0 40997 NULL
142342 +disable_so_rsp_producer_index_phy_addr_high_ql3_adapter_40998 rsp_producer_index_phy_addr_high ql3_adapter 0 40998 NULL
142343 +disable_so_per_jiffies_stats_dib8000_state_40999 per_jiffies_stats dib8000_state 0 40999 NULL
142344 +disable_so_cobalt_dv_timings_cap_fndecl_41001 cobalt_dv_timings_cap fndecl 0 41001 NULL
142345 +disable_so_encrypt_blkcipher_tfm_41013 encrypt blkcipher_tfm 0-4 41013 NULL
142346 +disable_so_max_dwell_time_active_conf_scan_settings_41024 max_dwell_time_active conf_scan_settings 0 41024 NULL
142347 +disable_so_gpu_addr_radeon_fence_driver_41046 gpu_addr radeon_fence_driver 0 41046 NULL
142348 +disable_so_read_cache_jiffies_nfs_inode_41071 read_cache_jiffies nfs_inode 0 41071 NULL
142349 +disable_so_curfreq_ma901radio_device_41079 curfreq ma901radio_device 0 41079 NULL
142350 +disable_so_show_constraint_max_time_window_us_fndecl_41080 show_constraint_max_time_window_us fndecl 0 41080 NULL
142351 +disable_so_acpi_tables_addr_vardecl_osl_c_41081 acpi_tables_addr vardecl_osl.c 0 41081 NULL
142352 +disable_so_gdth_delay_fndecl_41096 gdth_delay fndecl 1 41096 NULL
142353 +disable_so_wq_calc_node_cpumask_fndecl_41102 wq_calc_node_cpumask fndecl 2 41102 NULL
142354 +disable_so_qp_bitmap_free_ntb_transport_ctx_41105 qp_bitmap_free ntb_transport_ctx 0 41105 NULL
142355 +disable_so_show_admin_alias_guid_fndecl_41106 show_admin_alias_guid fndecl 0 41106 NULL
142356 +disable_so_freq_vardecl_mxb_c_41108 freq vardecl_mxb.c 0 41108 NULL
142357 +disable_so_vx_set_internal_clock_fndecl_41114 vx_set_internal_clock fndecl 2 41114 NULL
142358 +disable_so_jiffies_at_alloc_qla_tgt_cmd_41119 jiffies_at_alloc qla_tgt_cmd 0 41119 NULL
142359 +disable_so_timestamp_ath9k_htc_tx_ctl_41124 timestamp ath9k_htc_tx_ctl 0 41124 NULL
142360 +disable_so_ib_baseaddr_h_mvumi_hs_page4_41130 ib_baseaddr_h mvumi_hs_page4 0 41130 NULL
142361 +disable_so_cherryview_rps_guar_freq_fndecl_41132 cherryview_rps_guar_freq fndecl 0 41132 NULL
142362 +disable_so_time_survey_info_41134 time survey_info 0 41134 NULL
142363 +disable_so_child_tgid_fork_proc_event_41148 child_tgid fork_proc_event 0 41148 NULL
142364 +disable_so_companion_addr_pm860x_platform_data_41156 companion_addr pm860x_platform_data 0 41156 NULL
142365 +disable_so_lgdt330x_read_signal_strength_fndecl_41159 lgdt330x_read_signal_strength fndecl 0 41159 NULL
142366 +disable_so_genwqe_curr_dbg_uid1_show_fndecl_41164 genwqe_curr_dbg_uid1_show fndecl 0 41164 NULL
142367 +disable_so_addr_nct6775_data_41165 addr nct6775_data 0 41165 NULL
142368 +disable_so_assoc_id_sctp_getaddrs_41169 assoc_id sctp_getaddrs 0 41169 NULL
142369 +disable_so_set_addr_fndecl_41173 set_addr fndecl 2 41173 NULL
142370 +disable_so_fairness_timeout_fairness_vars_per_port_41174 fairness_timeout fairness_vars_per_port 0 41174 NULL
142371 +disable_so_acpi_os_install_interrupt_handler_fndecl_41179 acpi_os_install_interrupt_handler fndecl 1 41179 NULL
142372 +disable_so_ref_freq_vardecl_tsc_c_41183 ref_freq vardecl_tsc.c 0 41183 NULL
142373 +disable_so_latest_ip_addr_eg_cache_entry_41198 latest_ip_addr eg_cache_entry 0 41198 NULL
142374 +disable_so_long_timeout_osst_tape_41205 long_timeout osst_tape 0 41205 NULL
142375 +disable_so_dma_addr_mcam_dma_desc_41206 dma_addr mcam_dma_desc 0 41206 NULL
142376 +disable_so_address_lower_scu_sgl_element_41221 address_lower scu_sgl_element 0 41221 NULL
142377 +disable_so_paravirt_read_tsc_fndecl_41239 paravirt_read_tsc fndecl 0 41239 NULL
142378 +disable_so_posix_clock_realtime_set_fndecl_41245 posix_clock_realtime_set fndecl 0 41245 NULL
142379 +disable_so_phys_addr_netxen_dummy_dma_41248 phys_addr netxen_dummy_dma 0 41248 NULL
142380 +disable_so_addr_port_fndecl_41249 addr_port fndecl 0 41249 NULL nohasharray
142381 +disable_so_ip_vs_svc_hashkey_fndecl_41249 ip_vs_svc_hashkey fndecl 2-3 41249 &disable_so_addr_port_fndecl_41249
142382 +disable_so_kstrtoul_from_user_fndecl_41258 kstrtoul_from_user fndecl 0-2 41258 NULL
142383 +disable_so_xfrm_state_lookup_byaddr_fndecl_41260 xfrm_state_lookup_byaddr fndecl 2-5-6 41260 NULL
142384 +disable_so_ns_sbwtime_the_nilfs_41268 ns_sbwtime the_nilfs 0 41268 NULL
142385 +disable_so_max_delta_ns_clock_event_device_41269 max_delta_ns clock_event_device 0 41269 NULL
142386 +disable_so_mcryptd_hash_init_enqueue_fndecl_41273 mcryptd_hash_init_enqueue fndecl 0 41273 NULL
142387 +disable_so_enic_set_mac_address_dynamic_fndecl_41279 enic_set_mac_address_dynamic fndecl 0 41279 NULL
142388 +disable_so_igb_ptp_adjtime_i210_fndecl_41280 igb_ptp_adjtime_i210 fndecl 2 41280 NULL
142389 +disable_so_timestamp_cper_record_header_41286 timestamp cper_record_header 0 41286 NULL
142390 +disable_so_mtt_base_addr_l_mlx4_cq_context_41294 mtt_base_addr_l mlx4_cq_context 0 41294 NULL
142391 +disable_so_base_lo_mtrr_var_range_41296 base_lo mtrr_var_range 0 41296 NULL
142392 +disable_so_ucma_query_gid_fndecl_41299 ucma_query_gid fndecl 3 41299 NULL
142393 +disable_so_ioat_dma_setup_interrupts_fndecl_41304 ioat_dma_setup_interrupts fndecl 0 41304 NULL
142394 +disable_so_cmaj_flt_signal_struct_41306 cmaj_flt signal_struct 0 41306 NULL
142395 +disable_so_wlc_phy_ant_rxdiv_set_fndecl_41312 wlc_phy_ant_rxdiv_set fndecl 2 41312 NULL
142396 +disable_so_ata_timing_compute_fndecl_41314 ata_timing_compute fndecl 2 41314 NULL
142397 +disable_so_jiffies_resched_rcu_state_41320 jiffies_resched rcu_state 0 41320 NULL
142398 +disable_so_cc770_rx_interrupt_fndecl_41322 cc770_rx_interrupt fndecl 2 41322 NULL
142399 +disable_so_configure_clock_fndecl_41329 configure_clock fndecl 0 41329 NULL
142400 +disable_so_timeout_ip_set_41331 timeout ip_set 0 41331 NULL
142401 +disable_so_dcbnl_getperm_hwaddr_fndecl_41338 dcbnl_getperm_hwaddr fndecl 0 41338 NULL
142402 +disable_so_cfg80211_set_cipher_group_fndecl_41343 cfg80211_set_cipher_group fndecl 2 41343 NULL
142403 +disable_so_time_ipr_trace_entry_41350 time ipr_trace_entry 0 41350 NULL
142404 +disable_so_csize_lattime_ahc_pci_softc_41352 csize_lattime ahc_pci_softc 0 41352 NULL
142405 +disable_so_bind_to_cpu_evtchn_ops_41358 bind_to_cpu evtchn_ops 2 41358 NULL
142406 +disable_so_init_lib80211_crypto_ops_41363 init lib80211_crypto_ops 1 41363 NULL
142407 +disable_so_xhci_get_timeout_no_hub_lpm_fndecl_41382 xhci_get_timeout_no_hub_lpm fndecl 0 41382 NULL
142408 +disable_so_ast_set_index_reg_mask_fndecl_41386 ast_set_index_reg_mask fndecl 5 41386 NULL nohasharray
142409 +disable_so_iwl_send_rxon_timing_fndecl_41386 iwl_send_rxon_timing fndecl 0 41386 &disable_so_ast_set_index_reg_mask_fndecl_41386
142410 +disable_so_last_can_queue_ramp_down_time_fc_fcp_internal_41400 last_can_queue_ramp_down_time fc_fcp_internal 0 41400 NULL
142411 +disable_so_bClockID_uac_clock_selector_descriptor_41403 bClockID uac_clock_selector_descriptor 0 41403 NULL
142412 +disable_so_sys_setuid_fndecl_41415 sys_setuid fndecl 0-1 41415 NULL
142413 +disable_so_i2c_address_tda826x_priv_41421 i2c_address tda826x_priv 0 41421 NULL
142414 +disable_so_dma_addr_efx_rx_buffer_41422 dma_addr efx_rx_buffer 0 41422 NULL
142415 +disable_so_retrans_timeout_l2cap_chan_41431 retrans_timeout l2cap_chan 0 41431 NULL
142416 +disable_so_musb_read_rxhubaddr_fndecl_41435 musb_read_rxhubaddr fndecl 2-0 41435 NULL
142417 +disable_so_pll_reference_div_radeon_crtc_41437 pll_reference_div radeon_crtc 0 41437 NULL
142418 +disable_so_macvlan_set_mac_address_fndecl_41439 macvlan_set_mac_address fndecl 0 41439 NULL
142419 +disable_so_i_uid_read_fndecl_41443 i_uid_read fndecl 0 41443 NULL
142420 +disable_so_hpi_silence_detector_get_delay_fndecl_41450 hpi_silence_detector_get_delay fndecl 0-1 41450 NULL
142421 +disable_so__div_round_up_fndecl_41453 _div_round_up fndecl 0-3-2 41453 NULL
142422 +disable_so_br_timer_value_fndecl_41454 br_timer_value fndecl 0 41454 NULL
142423 +disable_so_compat_sys_utimes_fndecl_41459 compat_sys_utimes fndecl 0 41459 NULL
142424 +disable_so_tx_duty_cycle_ofdm_brcms_c_info_41464 tx_duty_cycle_ofdm brcms_c_info 0 41464 NULL
142425 +disable_so_crypto_authenc_verify_fndecl_41468 crypto_authenc_verify fndecl 0 41468 NULL
142426 +disable_so_signalQuality_StatusRid_41475 signalQuality StatusRid 0 41475 NULL
142427 +disable_so_storvsc_timeout_vardecl_storvsc_drv_c_41479 storvsc_timeout vardecl_storvsc_drv.c 0 41479 NULL
142428 +disable_so_sctp_v6_from_addr_param_fndecl_41480 sctp_v6_from_addr_param fndecl 3-4 41480 NULL
142429 +disable_so_xfs_btree_check_ptr_fndecl_41490 xfs_btree_check_ptr fndecl 3-0 41490 NULL
142430 +disable_so___anon_vma_interval_tree_compute_subtree_last_fndecl_41494 __anon_vma_interval_tree_compute_subtree_last fndecl 0 41494 NULL
142431 +disable_so_drive_jiffies_skd_device_41506 drive_jiffies skd_device 0 41506 NULL
142432 +disable_so_last_dock_time_dock_station_41508 last_dock_time dock_station 0 41508 NULL
142433 +disable_so_common_nsleep_fndecl_41534 common_nsleep fndecl 1 41534 NULL
142434 +disable_so_sun4i_spi_runtime_resume_fndecl_41538 sun4i_spi_runtime_resume fndecl 0 41538 NULL
142435 +disable_so_src_nents_qce_cipher_reqctx_41541 src_nents qce_cipher_reqctx 0 41541 NULL
142436 +disable_so_daddr_irda_ias_set_41547 daddr irda_ias_set 0 41547 NULL
142437 +disable_so_cpufreq_frequency_get_table_fndecl_41548 cpufreq_frequency_get_table fndecl 1 41548 NULL
142438 +disable_so_bd_list_addr_lo_bnx2i_tmf_request_41551 bd_list_addr_lo bnx2i_tmf_request 0 41551 NULL
142439 +disable_so_mkey_lease_timeout_qib_ibport_41552 mkey_lease_timeout qib_ibport 0 41552 NULL
142440 +disable_so_dma_addr_efx_rx_page_state_41558 dma_addr efx_rx_page_state 0 41558 NULL
142441 +disable_so_igb_runtime_resume_fndecl_41565 igb_runtime_resume fndecl 0 41565 NULL
142442 +disable_so_wait_on_page_bit_killable_fndecl_41573 wait_on_page_bit_killable fndecl 0 41573 NULL
142443 +disable_so_time_js_event_41583 time js_event 0 41583 NULL nohasharray
142444 +disable_so_lzo_mod_init_fndecl_41583 lzo_mod_init fndecl 0 41583 &disable_so_time_js_event_41583
142445 +disable_so_cg_spll_func_cntl_2_si_clock_registers_41584 cg_spll_func_cntl_2 si_clock_registers 0 41584 NULL
142446 +disable_so_swa_base_asd_ha_addrspace_41593 swa_base asd_ha_addrspace 0 41593 NULL
142447 +disable_so_flow_get_skgid_fndecl_41594 flow_get_skgid fndecl 0 41594 NULL nohasharray
142448 +disable_so_fib_sync_down_addr_fndecl_41594 fib_sync_down_addr fndecl 2 41594 &disable_so_flow_get_skgid_fndecl_41594
142449 +disable_so_fl0addr_csio_iq_params_41595 fl0addr csio_iq_params 0 41595 NULL
142450 +disable_so_cpufreq_stat_notifier_policy_fndecl_41604 cpufreq_stat_notifier_policy fndecl 0 41604 NULL nohasharray
142451 +disable_so_hash_by_src_fndecl_41604 hash_by_src fndecl 0 41604 &disable_so_cpufreq_stat_notifier_policy_fndecl_41604
142452 +disable_so_read_nvkm_timer_41609 read nvkm_timer 0 41609 NULL
142453 +disable_so_shm32read_addr_next_b43_dfsentry_41611 shm32read_addr_next b43_dfsentry 0 41611 NULL
142454 +disable_so_lo_regpair_41616 lo regpair 0 41616 NULL
142455 +disable_so_addr_netdev_desc_41619 addr netdev_desc 0 41619 NULL
142456 +disable_so_ndesc_get_timestamp_fndecl_41626 ndesc_get_timestamp fndecl 0 41626 NULL
142457 +disable_so_gid_cramfs_inode_41627 gid cramfs_inode 0 41627 NULL
142458 +disable_so___sw_hweight8_fndecl_41629 __sw_hweight8 fndecl 1-0 41629 NULL
142459 +disable_so_kvm_mtrr_get_guest_memory_type_fndecl_41633 kvm_mtrr_get_guest_memory_type fndecl 2-0 41633 NULL
142460 +disable_so___xfrm6_addr_hash_fndecl_41637 __xfrm6_addr_hash fndecl 0 41637 NULL
142461 +disable_so_phys_reg_addr_slgt_info_41642 phys_reg_addr slgt_info 0 41642 NULL
142462 +disable_so_il_dbgfs_wd_timeout_write_fndecl_41643 il_dbgfs_wd_timeout_write fndecl 3 41643 NULL
142463 +disable_so_count_sha256_state_41648 count sha256_state 0 41648 NULL
142464 +disable_so_ironlake_check_encoder_dotclock_fndecl_41660 ironlake_check_encoder_dotclock fndecl 2 41660 NULL
142465 +disable_so_af9015_eeprom_hash_fndecl_41666 af9015_eeprom_hash fndecl 0 41666 NULL
142466 +disable_so_intel_dotclock_calculate_fndecl_41668 intel_dotclock_calculate fndecl 1-0 41668 NULL
142467 +disable_so_rdmsrl_amd_safe_fndecl_41672 rdmsrl_amd_safe fndecl 0 41672 NULL
142468 +disable_so_crypto_ablkcipher_encrypt_fndecl_41682 crypto_ablkcipher_encrypt fndecl 0 41682 NULL
142469 +disable_so_bcma_pmu_pll_clock_bcm4706_fndecl_41683 bcma_pmu_pll_clock_bcm4706 fndecl 0-2 41683 NULL
142470 +disable_so_regmap_write_fndecl_41685 regmap_write fndecl 0-2-3 41685 NULL
142471 +disable_so_setup_APIC_mce_threshold_fndecl_41686 setup_APIC_mce_threshold fndecl 0-1-2 41686 NULL
142472 +disable_so_copy_signal_fndecl_41687 copy_signal fndecl 1 41687 NULL
142473 +disable_so_dma_addr_dw_spi_41693 dma_addr dw_spi 0 41693 NULL
142474 +disable_so_leave_oper_channel_time_ieee80211_local_41701 leave_oper_channel_time ieee80211_local 0 41701 NULL
142475 +disable_so_bit_putcs_fndecl_41704 bit_putcs fndecl 4-5-6-7-8 41704 NULL
142476 +disable_so_nbpf_runtime_resume_fndecl_41706 nbpf_runtime_resume fndecl 0 41706 NULL
142477 +disable_so_force_addr_vardecl_vt8231_c_41714 force_addr vardecl_vt8231.c 0 41714 NULL
142478 +disable_so_radio_syn_pll_refdiv_b43_nphy_channeltab_entry_rev3_41738 radio_syn_pll_refdiv b43_nphy_channeltab_entry_rev3 0 41738 NULL
142479 +disable_so_epoch_time_atto_vda_cfg_init_41739 epoch_time atto_vda_cfg_init 0 41739 NULL
142480 +disable_so_node_size_shift_hfs_btree_41753 node_size_shift hfs_btree 0 41753 NULL
142481 +disable_so_gfx_addr_intel_hw_status_page_41756 gfx_addr intel_hw_status_page 0 41756 NULL
142482 +disable_so_mtrr_trim_uncached_memory_fndecl_41757 mtrr_trim_uncached_memory fndecl 1 41757 NULL
142483 +disable_so_start_idle_time_cfqg_stats_41767 start_idle_time cfqg_stats 0 41767 NULL
142484 +disable_so_receive_bitmap_plain_fndecl_41772 receive_bitmap_plain fndecl 0-2 41772 NULL
142485 +disable_so___set_port_dev_addr_fndecl_41787 __set_port_dev_addr fndecl 0 41787 NULL
142486 +disable_so_max_delta_ticks_clock_event_device_41796 max_delta_ticks clock_event_device 0 41796 NULL
142487 +disable_so_register_ip_vs_scheduler_fndecl_41797 register_ip_vs_scheduler fndecl 0 41797 NULL
142488 +disable_so_lcd_pixclock_atyfb_par_41804 lcd_pixclock atyfb_par 0 41804 NULL
142489 +disable_so_mwl8k_cmd_set_mac_addr_fndecl_41809 mwl8k_cmd_set_mac_addr fndecl 0 41809 NULL
142490 +disable_so_mktime64_fndecl_41810 mktime64 fndecl 0-6-5-4-3-2-1 41810 NULL
142491 +disable_so_brcmf_pcie_buscore_prep_addr_fndecl_41821 brcmf_pcie_buscore_prep_addr fndecl 0-2 41821 NULL
142492 +disable_so_s_bitmap_ino_omfs_sb_info_41835 s_bitmap_ino omfs_sb_info 0 41835 NULL
142493 +disable_so_tlan_handle_interrupt_fndecl_41866 tlan_handle_interrupt fndecl 1 41866 NULL
142494 +disable_so_crypto_authenc_esn_genicv_fndecl_41873 crypto_authenc_esn_genicv fndecl 0 41873 NULL
142495 +disable_so_bfad_iocmd_rport_get_addr_fndecl_41879 bfad_iocmd_rport_get_addr fndecl 0 41879 NULL
142496 +disable_so_xhci_del_comp_mod_timer_fndecl_41881 xhci_del_comp_mod_timer fndecl 3 41881 NULL
142497 +disable_so_raddr_c2wr_ae_connection_request_41889 raddr c2wr_ae_connection_request 0 41889 NULL
142498 +disable_so_btrfs_run_delayed_items_nr_fndecl_41895 btrfs_run_delayed_items_nr fndecl 0-3 41895 NULL nohasharray
142499 +disable_so_isac_interrupt_fndecl_41895 isac_interrupt fndecl 2 41895 &disable_so_btrfs_run_delayed_items_nr_fndecl_41895
142500 +disable_so_address_b43_dmadesc32_41900 address b43_dmadesc32 0 41900 NULL
142501 +disable_so_i_gid_ext4_inode_41907 i_gid ext4_inode 0 41907 NULL
142502 +disable_so_sil24_exec_polled_cmd_fndecl_41911 sil24_exec_polled_cmd fndecl 2 41911 NULL
142503 +disable_so_cp_hqd_pq_rptr_report_addr_hqd_registers_41912 cp_hqd_pq_rptr_report_addr hqd_registers 0 41912 NULL
142504 +disable_so_uuid_hash_ocfs2_super_41922 uuid_hash ocfs2_super 0 41922 NULL
142505 +disable_so_connect_time_usb_device_41926 connect_time usb_device 0 41926 NULL
142506 +disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 hard_byte_limit xfrm_lifetime_cfg 0 41928 NULL nohasharray
142507 +disable_so_q_rtime_msg_queue_41928 q_rtime msg_queue 0 41928 &disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 nohasharray
142508 +disable_so_saddr_iphdr_41928 saddr iphdr 0 41928 &disable_so_q_rtime_msg_queue_41928
142509 +disable_so_nfs4_schedule_session_recovery_fndecl_41930 nfs4_schedule_session_recovery fndecl 2 41930 NULL
142510 +disable_so_desc_card_addr_qla8044_minidump_entry_rdmem_pex_dma_41937 desc_card_addr qla8044_minidump_entry_rdmem_pex_dma 0 41937 NULL
142511 +disable_so_freq_ar9170_calibration_target_power_ht_41939 freq ar9170_calibration_target_power_ht 0 41939 NULL
142512 +disable_so_ino_timelimit_qc_type_state_41942 ino_timelimit qc_type_state 0 41942 NULL
142513 +disable_so_ifa_local_in_ifaddr_41951 ifa_local in_ifaddr 0 41951 NULL
142514 +disable_so_seq_radeon_fence_41952 seq radeon_fence 0 41952 NULL
142515 +disable_so_mmc_interrupt_hpi_fndecl_41967 mmc_interrupt_hpi fndecl 0 41967 NULL
142516 +disable_so_addr_nvbios_xpio_41977 addr nvbios_xpio 0 41977 NULL
142517 +disable_so_mlx4_test_interrupts_fndecl_41979 mlx4_test_interrupts fndecl 0 41979 NULL
142518 +disable_so_alps_process_bitmap_fndecl_41983 alps_process_bitmap fndecl 0 41983 NULL
142519 +disable_so_enter_deep_sleep_lbs_private_41984 enter_deep_sleep lbs_private 0 41984 NULL
142520 +disable_so_freq_detected_vx_core_41987 freq_detected vx_core 0 41987 NULL
142521 +disable_so_sig_ksignal_41988 sig ksignal 0 41988 NULL
142522 +disable_so_kvm_clock_get_cycles_fndecl_41992 kvm_clock_get_cycles fndecl 0 41992 NULL
142523 +disable_so_mthca_setup_hca_fndecl_41999 mthca_setup_hca fndecl 0 41999 NULL
142524 +disable_so_ipath_led_override_timeoff_ipath_devdata_42003 ipath_led_override_timeoff ipath_devdata 0 42003 NULL nohasharray
142525 +disable_so_authenc_geniv_ahash_done_fndecl_42003 authenc_geniv_ahash_done fndecl 2 42003 &disable_so_ipath_led_override_timeoff_ipath_devdata_42003
142526 +disable_so_cxgb4vf_set_mac_addr_fndecl_42004 cxgb4vf_set_mac_addr fndecl 0 42004 NULL
142527 +disable_so_poly_cipher_fndecl_42005 poly_cipher fndecl 0 42005 NULL
142528 +disable_so_lfo2delay_soundfont_voice_parm_42007 lfo2delay soundfont_voice_parm 0 42007 NULL
142529 +disable_so_cik_get_cu_active_bitmap_fndecl_42010 cik_get_cu_active_bitmap fndecl 0-2-3 42010 NULL
142530 +disable_so_get_max_clock_sdhci_ops_42015 get_max_clock sdhci_ops 0 42015 NULL
142531 +disable_so_svm_read_l1_tsc_fndecl_42018 svm_read_l1_tsc fndecl 0-2 42018 NULL
142532 +disable_so_dccp_feat_signal_nn_change_fndecl_42022 dccp_feat_signal_nn_change fndecl 3 42022 NULL
142533 +disable_so_e1000_test_msi_interrupt_fndecl_42028 e1000_test_msi_interrupt fndecl 0 42028 NULL
142534 +disable_so_uv_rtc_setup_clock_fndecl_42030 uv_rtc_setup_clock fndecl 0 42030 NULL
142535 +disable_so_rsa_get_e_fndecl_42032 rsa_get_e fndecl 5 42032 NULL
142536 +disable_so_set_h225_addr_fndecl_42039 set_h225_addr fndecl 2-4 42039 NULL
142537 +disable_so_next_hrtimer_event_fotg210_hcd_42040 next_hrtimer_event fotg210_hcd 0 42040 NULL
142538 +disable_so_baseaddr_m48t35_priv_42042 baseaddr m48t35_priv 0 42042 NULL
142539 +disable_so_src_high_addr_mvumi_dyn_list_entry_42046 src_high_addr mvumi_dyn_list_entry 0 42046 NULL
142540 +disable_so_address_x86_exception_42048 address x86_exception 0 42048 NULL nohasharray
142541 +disable_so_adis16480_set_freq_fndecl_42048 adis16480_set_freq fndecl 0 42048 &disable_so_address_x86_exception_42048
142542 +disable_so_skcipher_recvmsg_fndecl_42050 skcipher_recvmsg fndecl 0 42050 NULL
142543 +disable_so_uid_ncp_mount_data_v4_42052 uid ncp_mount_data_v4 0 42052 NULL
142544 +disable_so_guid_qib_pportdata_42064 guid qib_pportdata 0 42064 NULL
142545 +disable_so_usb_find_address_fndecl_42069 usb_find_address fndecl 0 42069 NULL
142546 +disable_so_crypto_comp_compress_fndecl_42075 crypto_comp_compress fndecl 3 42075 NULL
142547 +disable_so_xcan_state_interrupt_fndecl_42076 xcan_state_interrupt fndecl 2 42076 NULL
142548 +disable_so_xfs_dir2_leaf_search_hash_fndecl_42097 xfs_dir2_leaf_search_hash fndecl 0 42097 NULL
142549 +disable_so_rtl8169_interrupt_fndecl_42115 rtl8169_interrupt fndecl 1 42115 NULL
142550 +disable_so_ip_list_uid_vardecl_xt_recent_c_42144 ip_list_uid vardecl_xt_recent.c 0 42144 NULL
142551 +disable_so_request_sound_timer_fndecl_42149 request_sound_timer fndecl 1 42149 NULL nohasharray
142552 +disable_so_sof_search_timeout_stb0899_config_42149 sof_search_timeout stb0899_config 0 42149 &disable_so_request_sound_timer_fndecl_42149
142553 +disable_so_uvc_timeout_param_vardecl_42158 uvc_timeout_param vardecl 0 42158 NULL
142554 +disable_so_stv0900_get_mclk_freq_fndecl_42161 stv0900_get_mclk_freq fndecl 0-2 42161 NULL
142555 +disable_so_pch_systime_read_fndecl_42169 pch_systime_read fndecl 0 42169 NULL
142556 +disable_so_accumulate_16bit_val_fndecl_42178 accumulate_16bit_val fndecl 2 42178 NULL
142557 +disable_so_cryptd_blkcipher_enqueue_fndecl_42182 cryptd_blkcipher_enqueue fndecl 0 42182 NULL
142558 +disable_so_sjw_can_bittiming_42187 sjw can_bittiming 0 42187 NULL
142559 +disable_so_vortex_interrupt_fndecl_42189 vortex_interrupt fndecl 1 42189 NULL
142560 +disable_so_ar_addr_qla4_83xx_quad_entry_42190 ar_addr qla4_83xx_quad_entry 0 42190 NULL
142561 +disable_so_sctp_v4_from_addr_param_fndecl_42197 sctp_v4_from_addr_param fndecl 3 42197 NULL
142562 +disable_so_sda_hold_time_dw_i2c_dev_42198 sda_hold_time dw_i2c_dev 0 42198 NULL
142563 +disable_so_proc_doulongvec_ms_jiffies_minmax_fndecl_42211 proc_doulongvec_ms_jiffies_minmax fndecl 0 42211 NULL
142564 +disable_so_monitor_timeout_l2cap_chan_42212 monitor_timeout l2cap_chan 0 42212 NULL
142565 +disable_so_sys_setfsuid16_fndecl_42222 sys_setfsuid16 fndecl 0-1 42222 NULL
142566 +disable_so_rrd_ret_timer_atl1_hw_42226 rrd_ret_timer atl1_hw 0 42226 NULL nohasharray
142567 +disable_so__get_table_mindiv_fndecl_42226 _get_table_mindiv fndecl 0 42226 &disable_so_rrd_ret_timer_atl1_hw_42226
142568 +disable_so_ext4_block_bitmap_set_fndecl_42228 ext4_block_bitmap_set fndecl 3 42228 NULL
142569 +disable_so_select_timeout_pca9541_42231 select_timeout pca9541 0 42231 NULL
142570 +disable_so_id_and_color_iwl_time_event_cmd_42237 id_and_color iwl_time_event_cmd 0 42237 NULL
142571 +disable_so_map_id_down_fndecl_42241 map_id_down fndecl 0-2 42241 NULL
142572 +disable_so_usb_sleep_music_store_fndecl_42245 usb_sleep_music_store fndecl 0-4 42245 NULL
142573 +disable_so_ath6kl_sdio_func0_cmd52_wr_byte_fndecl_42251 ath6kl_sdio_func0_cmd52_wr_byte fndecl 0 42251 NULL
142574 +disable_so_bitmap_and_fndecl_42267 bitmap_and fndecl 4 42267 NULL
142575 +disable_so_tx_frame_ath_cycle_counters_42275 tx_frame ath_cycle_counters 0 42275 NULL
142576 +disable_so_hasht_dcb_output_42279 hasht dcb_output 0 42279 NULL
142577 +disable_so_xfs_btree_key_addr_fndecl_42282 xfs_btree_key_addr fndecl 2 42282 NULL
142578 +disable_so_lpfc_max_scsicmpl_time_store_fndecl_42289 lpfc_max_scsicmpl_time_store fndecl 0 42289 NULL
142579 +disable_so_ltr501_ps_write_samp_freq_fndecl_42298 ltr501_ps_write_samp_freq fndecl 0 42298 NULL
142580 +disable_so_time_zero_perf_event_mmap_page_42309 time_zero perf_event_mmap_page 0 42309 NULL nohasharray
142581 +disable_so_dmatest_random_fndecl_42309 dmatest_random fndecl 0 42309 &disable_so_time_zero_perf_event_mmap_page_42309
142582 +disable_so_sm_addr_sm501_mem_42315 sm_addr sm501_mem 0 42315 NULL
142583 +disable_so_snd_rme32_info_clockmode_control_fndecl_42323 snd_rme32_info_clockmode_control fndecl 0 42323 NULL
142584 +disable_so_max8997_rtc_set_time_fndecl_42326 max8997_rtc_set_time fndecl 0 42326 NULL nohasharray
142585 +disable_so_freq_ath6kl_mgmt_buff_42326 freq ath6kl_mgmt_buff 0 42326 &disable_so_max8997_rtc_set_time_fndecl_42326
142586 +disable_so_clk_register_divider_table_fndecl_42329 clk_register_divider_table fndecl 7-6 42329 NULL
142587 +disable_so_guid_indexes_mlx4_sriov_alias_guid_info_rec_det_42332 guid_indexes mlx4_sriov_alias_guid_info_rec_det 0 42332 NULL
142588 +disable_so_addr_cis_cache_entry_42335 addr cis_cache_entry 0 42335 NULL
142589 +disable_so_dma_addr_bnad_tx_vector_42337 dma_addr bnad_tx_vector 0 42337 NULL
142590 +disable_so_mgid_index_mlx5_qp_path_42339 mgid_index mlx5_qp_path 0 42339 NULL
142591 +disable_so_tcm_base_address_brcmf_pcie_shared_info_42357 tcm_base_address brcmf_pcie_shared_info 0 42357 NULL
142592 +disable_so_mod_timer_fndecl_42361 mod_timer fndecl 2-0 42361 NULL
142593 +disable_so_srpt_service_guid_vardecl_ib_srpt_c_42363 srpt_service_guid vardecl_ib_srpt.c 0 42363 NULL
142594 +disable_so_qat_alg_ablkcipher_init_enc_fndecl_42373 qat_alg_ablkcipher_init_enc fndecl 4 42373 NULL
142595 +disable_so_mdiv_gf100_clk_info_42375 mdiv gf100_clk_info 0 42375 NULL
142596 +disable_so__ubh_find_next_zero_bit__fndecl_42379 _ubh_find_next_zero_bit_ fndecl 0-3-4-5 42379 NULL
142597 +disable_so_tv_nsec_timespec_42383 tv_nsec timespec 0 42383 NULL
142598 +disable_so_last_timestamp_iso_context_42389 last_timestamp iso_context 0 42389 NULL
142599 +disable_so_iqaddr_fw_ri_res_cq_42408 iqaddr fw_ri_res_cq 0 42408 NULL
142600 +disable_so_proc_loginuid_write_fndecl_42419 proc_loginuid_write fndecl 3 42419 NULL
142601 +disable_so_mpeg_output_clock_rate_drxj_data_42421 mpeg_output_clock_rate drxj_data 0 42421 NULL
142602 +disable_so_fref_clock_ratio_dib0090_config_42426 fref_clock_ratio dib0090_config 0 42426 NULL
142603 +disable_so_virtnet_set_mac_address_fndecl_42429 virtnet_set_mac_address fndecl 0 42429 NULL
142604 +disable_so_panel_pwr_delay_radeon_encoder_atom_dig_42430 panel_pwr_delay radeon_encoder_atom_dig 0 42430 NULL
142605 +disable_so_timeo_nfs_parsed_mount_data_42431 timeo nfs_parsed_mount_data 0 42431 NULL
142606 +disable_so_correction_snd_timer_system_private_42446 correction snd_timer_system_private 0 42446 NULL
142607 +disable_so_intr_timer_usec_vnic_enet_config_42448 intr_timer_usec vnic_enet_config 0 42448 NULL
142608 +disable_so_id_mISDNtimer_42453 id mISDNtimer 0 42453 NULL
142609 +disable_so_i2c_algo_dp_aux_address_fndecl_42460 i2c_algo_dp_aux_address fndecl 2 42460 NULL
142610 +disable_so__register_divider_fndecl_42464 _register_divider fndecl 7-6 42464 NULL
142611 +disable_so_max8998_rtc_read_time_fndecl_42466 max8998_rtc_read_time fndecl 0 42466 NULL
142612 +disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474 sctp_setsockopt_paddr_thresholds fndecl 3-0 42474 NULL nohasharray
142613 +disable_so_stv0900_get_tuner_freq_fndecl_42474 stv0900_get_tuner_freq fndecl 0 42474 &disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474
142614 +disable_so_rt2x00crypto_tx_overhead_fndecl_42475 rt2x00crypto_tx_overhead fndecl 0 42475 NULL
142615 +disable_so_lm3533_led_delay_off_set_fndecl_42481 lm3533_led_delay_off_set fndecl 0 42481 NULL
142616 +disable_so_time_blocked_xen_spinlock_stats_42482 time_blocked xen_spinlock_stats 0 42482 NULL
142617 +disable_so_nat_ver_bitmap_bytesize_f2fs_checkpoint_42483 nat_ver_bitmap_bytesize f2fs_checkpoint 0 42483 NULL
142618 +disable_so_reg_write_fndecl_42487 reg_write fndecl 0 42487 NULL
142619 +disable_so_btrfs_insert_delayed_dir_index_fndecl_42491 btrfs_insert_delayed_dir_index fndecl 0-4-7-8 42491 NULL
142620 +disable_so_r53_val_fc2580_freq_regs_42497 r53_val fc2580_freq_regs 0 42497 NULL
142621 +disable_so_txerr_interrupt_mask_ath_hw_42499 txerr_interrupt_mask ath_hw 0 42499 NULL
142622 +disable_so_avail_max_snd_pcm_runtime_42523 avail_max snd_pcm_runtime 0 42523 NULL nohasharray
142623 +disable_so_ibx_display_interrupt_update_fndecl_42523 ibx_display_interrupt_update fndecl 3-2 42523 &disable_so_avail_max_snd_pcm_runtime_42523
142624 +disable_so_addr_hi_freelQ_e_42531 addr_hi freelQ_e 0 42531 NULL
142625 +disable_so_wrmsr_safe_regs_on_cpu_fndecl_42539 wrmsr_safe_regs_on_cpu fndecl 0-1 42539 NULL
142626 +disable_so_initial_apicid_cpuinfo_x86_42542 initial_apicid cpuinfo_x86 0 42542 NULL
142627 +disable_so_rx_ring_dma_addr_pcnet32_private_42551 rx_ring_dma_addr pcnet32_private 0 42551 NULL
142628 +disable_so_max_sleep_time_f2fs_gc_kthread_42557 max_sleep_time f2fs_gc_kthread 0 42557 NULL nohasharray
142629 +disable_so_addr_high_vring_dma_addr_42557 addr_high vring_dma_addr 0 42557 &disable_so_max_sleep_time_f2fs_gc_kthread_42557
142630 +disable_so_db_rec_addr_mlx4_srq_context_42559 db_rec_addr mlx4_srq_context 0 42559 NULL
142631 +disable_so_mmc_clock_opt_set_fndecl_42561 mmc_clock_opt_set fndecl 2 42561 NULL
142632 +disable_so_sys_setgid16_fndecl_42562 sys_setgid16 fndecl 0-1 42562 NULL
142633 +disable_so_command_width_atiixp_ide_timing_42566 command_width atiixp_ide_timing 0 42566 NULL
142634 +disable_so_cgroup_addrm_files_fndecl_42568 cgroup_addrm_files fndecl 0 42568 NULL
142635 +disable_so_nla_put_via_fndecl_42571 nla_put_via fndecl 4 42571 NULL
142636 +disable_so_flow_get_rxhash_fndecl_42572 flow_get_rxhash fndecl 0 42572 NULL
142637 +disable_so_ves1820_set_tv_freq_fndecl_42581 ves1820_set_tv_freq fndecl 2 42581 NULL
142638 +disable_so_clk_calc_subtree_fndecl_42586 clk_calc_subtree fndecl 2-4 42586 NULL
142639 +disable_so_demod_address_stb0899_config_42587 demod_address stb0899_config 0 42587 NULL
142640 +disable_so_thash_entries_vardecl_tcp_c_42589 thash_entries vardecl_tcp.c 0 42589 NULL
142641 +disable_so_clock_freq_ushc_data_42599 clock_freq ushc_data 0 42599 NULL
142642 +disable_so_VSyncEnd_xtimings_42606 VSyncEnd xtimings 0 42606 NULL
142643 +disable_so_hv_need_to_signal_fndecl_42615 hv_need_to_signal fndecl 1 42615 NULL
142644 +disable_so_rsa_get_n_fndecl_42620 rsa_get_n fndecl 5 42620 NULL
142645 +disable_so_pci_bus_write_config_dword_fndecl_42624 pci_bus_write_config_dword fndecl 0-2-3-4 42624 NULL
142646 +disable_so_gen_pool_virt_to_phys_fndecl_42628 gen_pool_virt_to_phys fndecl 2-0 42628 NULL
142647 +disable_so_brcmf_sdiod_addrprep_fndecl_42643 brcmf_sdiod_addrprep fndecl 0 42643 NULL
142648 +disable_so_mpt_loadtime_max_sectors_vardecl_mptsas_c_42653 mpt_loadtime_max_sectors vardecl_mptsas.c 0 42653 NULL
142649 +disable_so_iscsi_stat_tgt_attr_show_attr_last_fail_time_fndecl_42661 iscsi_stat_tgt_attr_show_attr_last_fail_time fndecl 0 42661 NULL
142650 +disable_so_rx_antdiv_shared_phy_42665 rx_antdiv shared_phy 0 42665 NULL
142651 +disable_so_uart_get_attr_custom_divisor_fndecl_42667 uart_get_attr_custom_divisor fndecl 0 42667 NULL nohasharray
142652 +disable_so_bch_btree_map_nodes_recurse_fndecl_42667 bch_btree_map_nodes_recurse fndecl 0 42667 &disable_so_uart_get_attr_custom_divisor_fndecl_42667
142653 +disable_so_dib0090_write_reg_fndecl_42668 dib0090_write_reg fndecl 3 42668 NULL nohasharray
142654 +disable_so_hv_need_to_signal_on_read_fndecl_42668 hv_need_to_signal_on_read fndecl 1 42668 &disable_so_dib0090_write_reg_fndecl_42668
142655 +disable_so_bs_freqcnt_cx24113_state_42672 bs_freqcnt cx24113_state 0 42672 NULL
142656 +disable_so_netlbl_unlhsh_remove_addr6_fndecl_42673 netlbl_unlhsh_remove_addr6 fndecl 0 42673 NULL
142657 +disable_so_authenc_esn_verify_ahash_update_done2_fndecl_42674 authenc_esn_verify_ahash_update_done2 fndecl 2 42674 NULL
142658 +disable_so_last_time_megasas_instance_42679 last_time megasas_instance 0 42679 NULL
142659 +disable_so_hashval1_1_rx_pkt_hdr1_42687 hashval1_1 rx_pkt_hdr1 0 42687 NULL
142660 +disable_so_nilfs_btree_do_lookup_fndecl_42696 nilfs_btree_do_lookup fndecl 0-3 42696 NULL
142661 +disable_so_ip_vs_create_timeout_table_fndecl_42701 ip_vs_create_timeout_table fndecl 2 42701 NULL
142662 +disable_so_mesh_table_hash_fndecl_42703 mesh_table_hash fndecl 0 42703 NULL
142663 +disable_so_divide_fndecl_42710 divide fndecl 1 42710 NULL
142664 +disable_so_nilfs_btree_node_insert_fndecl_42712 nilfs_btree_node_insert fndecl 2-3 42712 NULL
142665 +disable_so_set_div_fndecl_42720 set_div fndecl 0-4 42720 NULL
142666 +disable_so_current_uuid_show_fndecl_42727 current_uuid_show fndecl 0 42727 NULL nohasharray
142667 +disable_so_nfs4_decode_mp_ds_addr_fndecl_42727 nfs4_decode_mp_ds_addr fndecl 3 42727 &disable_so_current_uuid_show_fndecl_42727
142668 +disable_so_remove_uuid_fndecl_42730 remove_uuid fndecl 0-4 42730 NULL
142669 +disable_so_bd_list_addr_lo_bnx2i_text_request_42732 bd_list_addr_lo bnx2i_text_request 0 42732 NULL
142670 +disable_so_pch_gbe_mac_mc_addr_list_update_fndecl_42738 pch_gbe_mac_mc_addr_list_update fndecl 4 42738 NULL
142671 +disable_so_tbl_addr_brcms_phy_42754 tbl_addr brcms_phy 0 42754 NULL
142672 +disable_so_addr_sch5636_data_42756 addr sch5636_data 0 42756 NULL
142673 +disable_so_hpfa_freq_cs42l56_platform_data_42759 hpfa_freq cs42l56_platform_data 0 42759 NULL
142674 +disable_so_fanout_demux_hash_fndecl_42764 fanout_demux_hash fndecl 0-3 42764 NULL
142675 +disable_so_cxgb_set_mac_addr_fndecl_42780 cxgb_set_mac_addr fndecl 0 42780 NULL
142676 +disable_so_dn_addr2asc_fndecl_42781 dn_addr2asc fndecl 1 42781 NULL
142677 +disable_so_mt9t031_runtime_resume_fndecl_42782 mt9t031_runtime_resume fndecl 0 42782 NULL
142678 +disable_so_nla_put_le64_fndecl_42786 nla_put_le64 fndecl 0 42786 NULL
142679 +disable_so_dell_rbu_dmaaddr_vardecl_dell_rbu_c_42794 dell_rbu_dmaaddr vardecl_dell_rbu.c 0 42794 NULL
142680 +disable_so_ocfs2_update_inode_atime_fndecl_42799 ocfs2_update_inode_atime fndecl 0 42799 NULL nohasharray
142681 +disable_so_pfkey_sockaddr_fill_fndecl_42799 pfkey_sockaddr_fill fndecl 2-4 42799 &disable_so_ocfs2_update_inode_atime_fndecl_42799
142682 +disable_so_vga_get_interruptible_fndecl_42803 vga_get_interruptible fndecl 0 42803 NULL
142683 +disable_so_lookup_pmd_address_fndecl_42804 lookup_pmd_address fndecl 1 42804 NULL
142684 +disable_so_i40e_set_rss_hash_opt_fndecl_42810 i40e_set_rss_hash_opt fndecl 0 42810 NULL
142685 +disable_so_from_kuid_fndecl_42812 from_kuid fndecl 0 42812 NULL
142686 +disable_so_resolution_snd_timer_gstatus_42814 resolution snd_timer_gstatus 0 42814 NULL
142687 +disable_so_demod_address_cx22700_config_42828 demod_address cx22700_config 0 42828 NULL
142688 +disable_so_mpu_start_timer_fndecl_42840 mpu_start_timer fndecl 1 42840 NULL nohasharray
142689 +disable_so_end_point_addr_cx231xx_audio_42840 end_point_addr cx231xx_audio 0 42840 &disable_so_mpu_start_timer_fndecl_42840
142690 +disable_so_hpwdt_change_timer_fndecl_42850 hpwdt_change_timer fndecl 1 42850 NULL nohasharray
142691 +disable_so_host_addr_hw_cmd_42850 host_addr hw_cmd 0 42850 &disable_so_hpwdt_change_timer_fndecl_42850
142692 +disable_so_update_gid_fndecl_42874 update_gid fndecl 3 42874 NULL
142693 +disable_so_read_div_fndecl_42880 read_div fndecl 0 42880 NULL nohasharray
142694 +disable_so_SYSC_setpgid_fndecl_42880 SYSC_setpgid fndecl 1-2 42880 &disable_so_read_div_fndecl_42880
142695 +disable_so_exptime_mpath_info_42881 exptime mpath_info 0 42881 NULL
142696 +disable_so_count_netdev_hw_addr_list_42886 count netdev_hw_addr_list 0 42886 NULL
142697 +disable_so___sel_hash_fndecl_42890 __sel_hash fndecl 0-2-3 42890 NULL
142698 +disable_so_cipher_rt2x00lib_crypto_42894 cipher rt2x00lib_crypto 0 42894 NULL
142699 +disable_so___dequeue_signal_fndecl_42904 __dequeue_signal fndecl 0 42904 NULL
142700 +disable_so_uid_dpot_data_42905 uid dpot_data 0 42905 NULL
142701 +disable_so_tc_index_bitmap_bits_asd_seq_data_42910 tc_index_bitmap_bits asd_seq_data 0 42910 NULL
142702 +disable_so_ablkcipher_copy_iv_fndecl_42911 ablkcipher_copy_iv fndecl 3 42911 NULL
142703 +disable_so_pci_pm_runtime_resume_fndecl_42917 pci_pm_runtime_resume fndecl 0 42917 NULL
142704 +disable_so_default_sclk_radeon_clock_42919 default_sclk radeon_clock 0 42919 NULL
142705 +disable_so_register_inet6addr_notifier_fndecl_42932 register_inet6addr_notifier fndecl 0 42932 NULL nohasharray
142706 +disable_so_e1000_rx_hash_fndecl_42932 e1000_rx_hash fndecl 2 42932 &disable_so_register_inet6addr_notifier_fndecl_42932
142707 +disable_so_isl1208_rtc_set_time_fndecl_42933 isl1208_rtc_set_time fndecl 0 42933 NULL nohasharray
142708 +disable_so_ringid_wmi_vring_ba_en_cmd_42933 ringid wmi_vring_ba_en_cmd 0 42933 &disable_so_isl1208_rtc_set_time_fndecl_42933 nohasharray
142709 +disable_so_host_addr_io_accel1_cmd_42933 host_addr io_accel1_cmd 0 42933 &disable_so_ringid_wmi_vring_ba_en_cmd_42933
142710 +disable_so_uwb_rc_dev_addr_assign_fndecl_42936 uwb_rc_dev_addr_assign fndecl 0 42936 NULL
142711 +disable_so_address_vme_bus_error_42937 address vme_bus_error 0 42937 NULL nohasharray
142712 +disable_so_cma_bind_addr_fndecl_42937 cma_bind_addr fndecl 0 42937 &disable_so_address_vme_bus_error_42937
142713 +disable_so_cyapa_gen5_set_interval_time_fndecl_42941 cyapa_gen5_set_interval_time fndecl 0-3 42941 NULL
142714 +disable_so_ecx_tss_segment_32_42952 ecx tss_segment_32 0 42952 NULL
142715 +disable_so_percentage_divider_radeon_atom_ss_42955 percentage_divider radeon_atom_ss 0 42955 NULL
142716 +disable_so_timeout_sg_fd_42956 timeout sg_fd 0 42956 NULL
142717 +disable_so_ftdi_2232h_baud_base_to_divisor_fndecl_42957 ftdi_2232h_baud_base_to_divisor fndecl 0-1-2 42957 NULL
142718 +disable_so_mcryptd_hash_update_fndecl_42959 mcryptd_hash_update fndecl 2 42959 NULL
142719 +disable_so_iqaddr_csio_iq_params_42960 iqaddr csio_iq_params 0 42960 NULL
142720 +disable_so_head_wb_addr_i40e_hmc_obj_txq_42977 head_wb_addr i40e_hmc_obj_txq 0 42977 NULL nohasharray
142721 +disable_so_written_btree_42977 written btree 0 42977 &disable_so_head_wb_addr_i40e_hmc_obj_txq_42977
142722 +disable_so___btrfs_update_delayed_inode_fndecl_42987 __btrfs_update_delayed_inode fndecl 0 42987 NULL
142723 +disable_so_af9005_fe_sleep_fndecl_42988 af9005_fe_sleep fndecl 0 42988 NULL nohasharray
142724 +disable_so_counter_address_p4_counter_binding_42988 counter_address p4_counter_binding 0 42988 &disable_so_af9005_fe_sleep_fndecl_42988
142725 +disable_so_alt_timeout_ib_qp_attr_42989 alt_timeout ib_qp_attr 0 42989 NULL
142726 +disable_so_db_record_addr_mlx5_cq_context_43002 db_record_addr mlx5_cq_context 0 43002 NULL nohasharray
142727 +disable_so_rhashtable_insert_rehash_fndecl_43002 rhashtable_insert_rehash fndecl 0 43002 &disable_so_db_record_addr_mlx5_cq_context_43002
142728 +disable_so_zd1201_set_mac_address_fndecl_43003 zd1201_set_mac_address fndecl 0 43003 NULL
142729 +disable_so_scs_init_hss_address_fndecl_43016 scs_init_hss_address fndecl 0 43016 NULL
142730 +disable_so_hash_fndecl_43020 hash fndecl 0 43020 NULL
142731 +disable_so_hpi_tuner_get_hd_radio_signal_blend_fndecl_43025 hpi_tuner_get_hd_radio_signal_blend fndecl 0-1 43025 NULL
142732 +disable_so_rt_runtime_rt_rq_43033 rt_runtime rt_rq 0 43033 NULL
142733 +disable_so_dbi_bw_timer_mipi_config_43043 dbi_bw_timer mipi_config 0 43043 NULL
142734 +disable_so_bch_btree_op_init_fndecl_43045 bch_btree_op_init fndecl 2 43045 NULL
142735 +disable_so_ctl_mce_bank_43048 ctl mce_bank 0 43048 NULL
142736 +disable_so_io_addr_ips_ha_43051 io_addr ips_ha 0 43051 NULL
142737 +disable_so_ucode_beacon_time_iwl_priv_43063 ucode_beacon_time iwl_priv 0 43063 NULL
142738 +disable_so_fast_clip_ctrl_delay_s_cfg_agc_43064 fast_clip_ctrl_delay s_cfg_agc 0 43064 NULL
142739 +disable_so_read_interrupt_status_fndecl_43075 read_interrupt_status fndecl 0 43075 NULL
142740 +disable_so_suspend_time_nv04_timer_priv_43078 suspend_time nv04_timer_priv 0 43078 NULL
142741 +disable_so_nl80211_send_mlme_timeout_fndecl_43081 nl80211_send_mlme_timeout fndecl 5 43081 NULL
142742 +disable_so_xfs_uuid_table_size_vardecl_xfs_mount_c_43090 xfs_uuid_table_size vardecl_xfs_mount.c 0 43090 NULL
142743 +disable_so_bitmap_allocate_region_fndecl_43093 bitmap_allocate_region fndecl 2-3 43093 NULL
142744 +disable_so_timeouts_show_fndecl_43114 timeouts_show fndecl 0 43114 NULL
142745 +disable_so_lm8323_pwm_store_time_fndecl_43123 lm8323_pwm_store_time fndecl 0 43123 NULL nohasharray
142746 +disable_so_crypto_register_instance_fndecl_43123 crypto_register_instance fndecl 0 43123 &disable_so_lm8323_pwm_store_time_fndecl_43123
142747 +disable_so_acpi_map_vaddr_lookup_fndecl_43126 acpi_map_vaddr_lookup fndecl 1-2 43126 NULL nohasharray
142748 +disable_so_bitclk_freq_fsl_ssi_private_43126 bitclk_freq fsl_ssi_private 0 43126 &disable_so_acpi_map_vaddr_lookup_fndecl_43126
142749 +disable_so_retranscount_nes_timer_entry_43129 retranscount nes_timer_entry 0 43129 NULL
142750 +disable_so_driver_timestamp_qla8044_minidump_template_hdr_43138 driver_timestamp qla8044_minidump_template_hdr 0 43138 NULL
142751 +disable_so_rtl8187_iowrite_async_fndecl_43147 rtl8187_iowrite_async fndecl 4-2 43147 NULL
142752 +disable_so_gcm_hash_crypt_remain_continue_fndecl_43164 gcm_hash_crypt_remain_continue fndecl 0 43164 NULL
142753 +disable_so_timeout_usbdevfs_ctrltransfer_43171 timeout usbdevfs_ctrltransfer 0 43171 NULL
142754 +disable_so_addr_snd_ac97_43179 addr snd_ac97 0 43179 NULL
142755 +disable_so_snd_timer_user_start_fndecl_43188 snd_timer_user_start fndecl 0 43188 NULL
142756 +disable_so_div_f0_pll_values_43197 div_f0 pll_values 0 43197 NULL
142757 +disable_so_tx_watchdog_timeout_conf_tx_settings_43198 tx_watchdog_timeout conf_tx_settings 0 43198 NULL
142758 +disable_so_demod_address_stv0297_config_43206 demod_address stv0297_config 0 43206 NULL nohasharray
142759 +disable_so_stv090x_write_reg_fndecl_43206 stv090x_write_reg fndecl 3-0 43206 &disable_so_demod_address_stv0297_config_43206
142760 +disable_so_atomic64_sub_return_fndecl_43214 atomic64_sub_return fndecl 0-1 43214 NULL
142761 +disable_so_select_addr_2_qla8044_minidump_entry_rdmux2_43220 select_addr_2 qla8044_minidump_entry_rdmux2 0 43220 NULL
142762 +disable_so_pixel_clock_radeon_encoder_43221 pixel_clock radeon_encoder 0 43221 NULL
142763 +disable_so_rdmsr_safe_on_cpu_fndecl_43222 rdmsr_safe_on_cpu fndecl 0-1 43222 NULL
142764 +disable_so_adav80x_set_dac_clock_fndecl_43226 adav80x_set_dac_clock fndecl 2 43226 NULL
142765 +disable_so_rc5t583_rtc_read_time_fndecl_43238 rc5t583_rtc_read_time fndecl 0 43238 NULL nohasharray
142766 +disable_so_bitmap_zero_fndecl_43238 bitmap_zero fndecl 2 43238 &disable_so_rc5t583_rtc_read_time_fndecl_43238
142767 +disable_so_vid_from_reg_fndecl_43258 vid_from_reg fndecl 0-1 43258 NULL
142768 +disable_so_page_dp83640_clock_43262 page dp83640_clock 0 43262 NULL
142769 +disable_so_mthca_SW2HW_SRQ_fndecl_43263 mthca_SW2HW_SRQ fndecl 0-3 43263 NULL
142770 +disable_so_tea5777_freq_to_v4l2_freq_fndecl_43267 tea5777_freq_to_v4l2_freq fndecl 0-2 43267 NULL
142771 +disable_so_addr_lo_eth_rx_bd_43268 addr_lo eth_rx_bd 0 43268 NULL
142772 +disable_so_timeout_nf_conntrack_expect_policy_43269 timeout nf_conntrack_expect_policy 0 43269 NULL
142773 +disable_so_read_addr___mux_43284 read_addr __mux 0 43284 NULL
142774 +disable_so_start_address___osdv2_cdb_addr_len_43285 start_address __osdv2_cdb_addr_len 0 43285 NULL
142775 +disable_so_frac_bot_pll_div_43287 frac_bot pll_div 0 43287 NULL
142776 +disable_so_batadv_bitmap_shift_left_fndecl_43296 batadv_bitmap_shift_left fndecl 2 43296 NULL
142777 +disable_so_btrfs_timespec_sec_fndecl_43304 btrfs_timespec_sec fndecl 0 43304 NULL
142778 +disable_so_atime_cifs_unix_set_info_args_43311 atime cifs_unix_set_info_args 0 43311 NULL
142779 +disable_so_id_bitmap_port_adt_elem_43312 id bitmap_port_adt_elem 0 43312 NULL
142780 +disable_so_hsize_std_timing_43315 hsize std_timing 0 43315 NULL
142781 +disable_so_addr_wusb_dev_43323 addr wusb_dev 0 43323 NULL
142782 +disable_so_dma_addr_zynqmp_qspi_43329 dma_addr zynqmp_qspi 0 43329 NULL
142783 +disable_so_flash_timeout_max77693_sub_led_43338 flash_timeout max77693_sub_led 0 43338 NULL nohasharray
142784 +disable_so_save_restore_gpu_addr_radeon_rlc_43338 save_restore_gpu_addr radeon_rlc 0 43338 &disable_so_flash_timeout_max77693_sub_led_43338
142785 +disable_so_cypress_get_mclk_frequency_ratio_fndecl_43339 cypress_get_mclk_frequency_ratio fndecl 0-2 43339 NULL
142786 +disable_so_running_clock_fndecl_43341 running_clock fndecl 0 43341 NULL
142787 +disable_so_snd_echo_clock_source_info_fndecl_43348 snd_echo_clock_source_info fndecl 0 43348 NULL
142788 +disable_so_random_id_operand_ib_cm_43350 random_id_operand ib_cm 0 43350 NULL
142789 +disable_so_il3945_build_tx_cmd_hwcrypto_fndecl_43368 il3945_build_tx_cmd_hwcrypto fndecl 5 43368 NULL
142790 +disable_so_regcache_lzo_decompress_cache_block_fndecl_43370 regcache_lzo_decompress_cache_block fndecl 0 43370 NULL
142791 +disable_so_rv6xx_memory_clock_entry_set_feedback_divider_fndecl_43374 rv6xx_memory_clock_entry_set_feedback_divider fndecl 3 43374 NULL
142792 +disable_so_timer_expires_rts51x_chip_43381 timer_expires rts51x_chip 0 43381 NULL
142793 +disable_so_bond_alb_set_mac_address_fndecl_43392 bond_alb_set_mac_address fndecl 0 43392 NULL
142794 +disable_so_write_leasetime_fndecl_43394 write_leasetime fndecl 0 43394 NULL
142795 +disable_so_ftdi_232am_baud_to_divisor_fndecl_43399 ftdi_232am_baud_to_divisor fndecl 0-1 43399 NULL
142796 +disable_so_jiffies_be_aic_obj_43400 jiffies be_aic_obj 0 43400 NULL
142797 +disable_so_timer_jiffies_tvec_base_43403 timer_jiffies tvec_base 0 43403 NULL
142798 +disable_so___ip6addrlbl_add_fndecl_43404 __ip6addrlbl_add fndecl 0 43404 NULL
142799 +disable_so_sd_ctime_stat_data_v1_43407 sd_ctime stat_data_v1 0 43407 NULL
142800 +disable_so_check_timers_list_fndecl_43411 check_timers_list fndecl 0-3 43411 NULL
142801 +disable_so_addr2_dir_table_slot_43416 addr2 dir_table_slot 0 43416 NULL
142802 +disable_so_bch_btree_map_nodes_fndecl_43426 bch_btree_map_nodes fndecl 0 43426 NULL
142803 +disable_so_burst_bclkdiv_tlv320dac33_priv_43428 burst_bclkdiv tlv320dac33_priv 0 43428 NULL
142804 +disable_so_cx24116_read_signal_strength_fndecl_43436 cx24116_read_signal_strength fndecl 0 43436 NULL
142805 +disable_so_xferq_addr_lo_fcoe_kwqe_conn_offload2_43439 xferq_addr_lo fcoe_kwqe_conn_offload2 0 43439 NULL
142806 +disable_so_timeout_bfa_timer_s_43448 timeout bfa_timer_s 0 43448 NULL
142807 +disable_so_ocfs2_wait_for_mask_interruptible_fndecl_43456 ocfs2_wait_for_mask_interruptible fndecl 0 43456 NULL
142808 +disable_so_stream_timeout_nf_ct_gre_43468 stream_timeout nf_ct_gre 0 43468 NULL
142809 +disable_so_sample_div_st_rc_device_43474 sample_div st_rc_device 0 43474 NULL
142810 +disable_so_crypto_shash_finup_fndecl_43475 crypto_shash_finup fndecl 0-3 43475 NULL
142811 +disable_so_current_frequency_lg216x_state_43480 current_frequency lg216x_state 0 43480 NULL
142812 +disable_so_error_sha1_hash_ctx_43486 error sha1_hash_ctx 0 43486 NULL
142813 +disable_so_link_up_time_swStat_43487 link_up_time swStat 0 43487 NULL
142814 +disable_so_qce_ablkcipher_setkey_fndecl_43494 qce_ablkcipher_setkey fndecl 0-3 43494 NULL
142815 +disable_so_timeout_msec_TAG_TW_Lock_43496 timeout_msec TAG_TW_Lock 0 43496 NULL
142816 +disable_so_mcs7830_hif_get_mac_address_fndecl_43507 mcs7830_hif_get_mac_address fndecl 0 43507 NULL
142817 +disable_so_show_fan_time_fndecl_43512 show_fan_time fndecl 0 43512 NULL
142818 +disable_so_x25_display_timer_fndecl_43519 x25_display_timer fndecl 0 43519 NULL
142819 +disable_so_address_m920x_inits_43524 address m920x_inits 0 43524 NULL
142820 +disable_so_msr_extra_reg_43525 msr extra_reg 0 43525 NULL
142821 +disable_so_hashm_nv50_disp_mthd_v1_43528 hashm nv50_disp_mthd_v1 0 43528 NULL
142822 +disable_so_get_dvbt_signal_to_noise_fndecl_43531 get_dvbt_signal_to_noise fndecl 0 43531 NULL
142823 +disable_so_snd_seq_oss_timer_start_fndecl_43533 snd_seq_oss_timer_start fndecl 0 43533 NULL
142824 +disable_so_ath5k_hw_register_timeout_fndecl_43537 ath5k_hw_register_timeout fndecl 0-3-4 43537 NULL
142825 +disable_so_slave_addr_intel_sdvo_43549 slave_addr intel_sdvo 0 43549 NULL
142826 +disable_so_buf_addr_rocker_desc_43555 buf_addr rocker_desc 0 43555 NULL
142827 +disable_so_bCSourceID_uac_clock_multiplier_descriptor_43558 bCSourceID uac_clock_multiplier_descriptor 0 43558 NULL nohasharray
142828 +disable_so_scsi_reset_delay_adveep_38C1600_config_43558 scsi_reset_delay adveep_38C1600_config 0 43558 &disable_so_bCSourceID_uac_clock_multiplier_descriptor_43558 nohasharray
142829 +disable_so_nla_put_u8_fndecl_43558 nla_put_u8 fndecl 0-3 43558 &disable_so_scsi_reset_delay_adveep_38C1600_config_43558
142830 +disable_so_udp4_portaddr_hash_fndecl_43560 udp4_portaddr_hash fndecl 0-2-3 43560 NULL
142831 +disable_so_port_clock_intel_crtc_state_43564 port_clock intel_crtc_state 0 43564 NULL
142832 +disable_so_cpufreq_update_policy_fndecl_43580 cpufreq_update_policy fndecl 0-1 43580 NULL nohasharray
142833 +disable_so_crypto_rfc4106_setauthsize_fndecl_43580 crypto_rfc4106_setauthsize fndecl 2 43580 &disable_so_cpufreq_update_policy_fndecl_43580
142834 +disable_so_pm_schedule_suspend_fndecl_43585 pm_schedule_suspend fndecl 2-0 43585 NULL
142835 +disable_so_HSyncStart_xtimings_43588 HSyncStart xtimings 0 43588 NULL
142836 +disable_so_write_seq_tcp_sock_43590 write_seq tcp_sock 0 43590 NULL
142837 +disable_so_orion_spi_50mhz_ac_timing_erratum_fndecl_43600 orion_spi_50mhz_ac_timing_erratum fndecl 2 43600 NULL
142838 +disable_so_set_clock_vml_sys_43602 set_clock vml_sys 2 43602 NULL
142839 +disable_so_sample_to_timespec_fndecl_43603 sample_to_timespec fndecl 2-1 43603 NULL
142840 +disable_so_ib_find_gid_fndecl_43614 ib_find_gid fndecl 0 43614 NULL
142841 +disable_so_ath9k_hw_set_sifs_time_fndecl_43616 ath9k_hw_set_sifs_time fndecl 2 43616 NULL
142842 +disable_so_snd_als4000_set_addr_fndecl_43620 snd_als4000_set_addr fndecl 1 43620 NULL
142843 +disable_so_dma_addr_as102_dev_t_43627 dma_addr as102_dev_t 0 43627 NULL
142844 +disable_so_gcm_hash_crypt_remain_done_fndecl_43636 gcm_hash_crypt_remain_done fndecl 2 43636 NULL
142845 +disable_so_msm6242_read_time_fndecl_43640 msm6242_read_time fndecl 0 43640 NULL
142846 +disable_so_last_tick_timer_local_info_43641 last_tick_timer local_info 0 43641 NULL
142847 +disable_so_guid_show_fndecl_43648 guid_show fndecl 0 43648 NULL
142848 +disable_so_key_set_timeout_fndecl_43649 key_set_timeout fndecl 2 43649 NULL
142849 +disable_so_abx80x_rtc_read_time_fndecl_43656 abx80x_rtc_read_time fndecl 0 43656 NULL
142850 +disable_so_freq_wmi_ch_info_ev_arg_43659 freq wmi_ch_info_ev_arg 0 43659 NULL
142851 +disable_so___delayacct_blkio_ticks_fndecl_43660 __delayacct_blkio_ticks fndecl 0 43660 NULL
142852 +disable_so_base_dwell_time_conf_sched_scan_settings_43662 base_dwell_time conf_sched_scan_settings 0 43662 NULL
142853 +disable_so_ps_upsd_max_sptime_read_fndecl_43665 ps_upsd_max_sptime_read fndecl 3-0 43665 NULL
142854 +disable_so_sis190_get_mac_addr_fndecl_43671 sis190_get_mac_addr fndecl 0 43671 NULL
142855 +disable_so_pll_loopdiv_dibx090p_best_adc_43673 pll_loopdiv dibx090p_best_adc 0 43673 NULL
142856 +disable_so_first_uid_gid_extent_43687 first uid_gid_extent 0 43687 NULL
142857 +disable_so_des2_idmac_desc_64addr_43704 des2 idmac_desc_64addr 0 43704 NULL
142858 +disable_so_irq_get_irq_data_fndecl_43708 irq_get_irq_data fndecl 1 43708 NULL
142859 +disable_so_mask_mlx4_bitmap_43716 mask mlx4_bitmap 0 43716 NULL
142860 +disable_so_time_stamp_ixgbe_tx_buffer_43717 time_stamp ixgbe_tx_buffer 0 43717 NULL
142861 +disable_so_tx_frequency_wl1273_device_43727 tx_frequency wl1273_device 0 43727 NULL
142862 +disable_so_divider_round_rate_fndecl_43731 divider_round_rate fndecl 2-0-5 43731 NULL
142863 +disable_so_delay_bfa_iocfc_intr_attr_s_43734 delay bfa_iocfc_intr_attr_s 0 43734 NULL
142864 +disable_so_dccp_elapsed_time_len_fndecl_43735 dccp_elapsed_time_len fndecl 0 43735 NULL
142865 +disable_so_uwb_rc_addr_set_fndecl_43736 uwb_rc_addr_set fndecl 0 43736 NULL
142866 +disable_so_add_delayed_data_ref_fndecl_43738 add_delayed_data_ref fndecl 10-12-5-6-7-8-9 43738 NULL
142867 +disable_so_double_bit_error_detect_fndecl_43740 double_bit_error_detect fndecl 4 43740 NULL
142868 +disable_so_pc_clock_gettime_fndecl_43750 pc_clock_gettime fndecl 1 43750 NULL
142869 +disable_so_ts_tgid_owner_gru_thread_state_43760 ts_tgid_owner gru_thread_state 0 43760 NULL
142870 +disable_so_hpet_set_periodic_freq_fndecl_43764 hpet_set_periodic_freq fndecl 1 43764 NULL
142871 +disable_so___vmw_piter_sg_addr_fndecl_43770 __vmw_piter_sg_addr fndecl 0 43770 NULL
142872 +disable_so_ipmi_validate_addr_fndecl_43771 ipmi_validate_addr fndecl 2 43771 NULL
142873 +disable_so_delay_fb_deferred_io_43773 delay fb_deferred_io 0 43773 NULL
142874 +disable_so_fixed_mtrr_addr_to_seg_fndecl_43774 fixed_mtrr_addr_to_seg fndecl 1 43774 NULL nohasharray
142875 +disable_so___bitmap_equal_fndecl_43774 __bitmap_equal fndecl 3 43774 &disable_so_fixed_mtrr_addr_to_seg_fndecl_43774
142876 +disable_so_igb_check_for_bit_pf_fndecl_43775 igb_check_for_bit_pf fndecl 2 43775 NULL
142877 +disable_so_led_override_timeoff_qib_pportdata_43779 led_override_timeoff qib_pportdata 0 43779 NULL
142878 +disable_so_wd_timeout_il_cfg_43781 wd_timeout il_cfg 0 43781 NULL
142879 +disable_so_addr_kvm_io_range_43786 addr kvm_io_range 0 43786 NULL
142880 +disable_so_sleep_millisecs_show_fndecl_43792 sleep_millisecs_show fndecl 0 43792 NULL
142881 +disable_so_rpc_set_queue_timer_fndecl_43797 rpc_set_queue_timer fndecl 2 43797 NULL
142882 +disable_so_ksz9031_center_flp_timing_fndecl_43804 ksz9031_center_flp_timing fndecl 0 43804 NULL
142883 +disable_so_kstrtoull_from_user_fndecl_43809 kstrtoull_from_user fndecl 2 43809 NULL
142884 +disable_so_numa_get_avg_runtime_fndecl_43810 numa_get_avg_runtime fndecl 0 43810 NULL
142885 +disable_so_max77693_led_flash_timeout_set_fndecl_43811 max77693_led_flash_timeout_set fndecl 2 43811 NULL
142886 +disable_so_mlx4_reset_roce_port_gids_fndecl_43816 mlx4_reset_roce_port_gids fndecl 0-2-3 43816 NULL
142887 +disable_so_interrupt_level_vardecl_fdomain_c_43820 interrupt_level vardecl_fdomain.c 0 43820 NULL nohasharray
142888 +disable_so_crypto_ahash_finup_fndecl_43820 crypto_ahash_finup fndecl 0 43820 &disable_so_interrupt_level_vardecl_fdomain_c_43820
142889 +disable_so_block_bitmap_ext4_new_group_data_43822 block_bitmap ext4_new_group_data 0 43822 NULL
142890 +disable_so_timer_stats_update_stats_fndecl_43829 timer_stats_update_stats fndecl 2 43829 NULL
142891 +disable_so___nilfs_btree_get_block_fndecl_43845 __nilfs_btree_get_block fndecl 0-2 43845 NULL
142892 +disable_so_wait_on_bit_lock_io_fndecl_43852 wait_on_bit_lock_io fndecl 0 43852 NULL
142893 +disable_so_authenc_esn_geniv_ahash_update_done_fndecl_43855 authenc_esn_geniv_ahash_update_done fndecl 2 43855 NULL
142894 +disable_so_pre_event_timeout_vardecl_sequencer_c_43856 pre_event_timeout vardecl_sequencer.c 0 43856 NULL nohasharray
142895 +disable_so_last_rx_time_net_local_43856 last_rx_time net_local 0 43856 &disable_so_pre_event_timeout_vardecl_sequencer_c_43856
142896 +disable_so_run_delayed_tree_ref_fndecl_43857 run_delayed_tree_ref fndecl 0 43857 NULL
142897 +disable_so_radio_addr_saa7134_board_43862 radio_addr saa7134_board 0 43862 NULL
142898 +disable_so_hor_total_via_display_timing_43866 hor_total via_display_timing 0 43866 NULL
142899 +disable_so_mem_addr_pch_dma_desc_regs_43867 mem_addr pch_dma_desc_regs 0 43867 NULL
142900 +disable_so_addr_Vmxnet3_TxDesc_43868 addr Vmxnet3_TxDesc 0 43868 NULL
142901 +disable_so_set_ras_addr_fndecl_43869 set_ras_addr fndecl 4 43869 NULL
142902 +disable_so_cpuidle_register_fndecl_43887 cpuidle_register fndecl 0 43887 NULL
142903 +disable_so_start_seq_tcp_sack_block_43898 start_seq tcp_sack_block 0 43898 NULL
142904 +disable_so_seq_default_timer_subdevice_vardecl_43912 seq_default_timer_subdevice vardecl 0 43912 NULL
142905 +disable_so_pci_bus_update_busn_res_end_fndecl_43918 pci_bus_update_busn_res_end fndecl 2-0 43918 NULL
142906 +disable_so_qdisc_watchdog_schedule_ns_fndecl_43926 qdisc_watchdog_schedule_ns fndecl 2 43926 NULL
142907 +disable_so_sys_timer_create_fndecl_43937 sys_timer_create fndecl 1 43937 NULL
142908 +disable_so_atmel_spi_runtime_resume_fndecl_43938 atmel_spi_runtime_resume fndecl 0 43938 NULL nohasharray
142909 +disable_so_zd1201_set_freq_fndecl_43938 zd1201_set_freq fndecl 0 43938 &disable_so_atmel_spi_runtime_resume_fndecl_43938
142910 +disable_so_gid_fuse_setattr_in_43939 gid fuse_setattr_in 0 43939 NULL
142911 +disable_so_bit_putcs_aligned_fndecl_43966 bit_putcs_aligned fndecl 5-6-7-8 43966 NULL
142912 +disable_so_log_mc_hash_sz_mlx4_init_hca_param_43973 log_mc_hash_sz mlx4_init_hca_param 0 43973 NULL
142913 +disable_so_igb_write_8bit_ctrl_reg_fndecl_43984 igb_write_8bit_ctrl_reg fndecl 2 43984 NULL
142914 +disable_so_r50_val_fc2580_freq_regs_43992 r50_val fc2580_freq_regs 0 43992 NULL
142915 +disable_so_ccp_aes_xts_encrypt_fndecl_43996 ccp_aes_xts_encrypt fndecl 0 43996 NULL
142916 +disable_so_tty_unregister_device_fndecl_44000 tty_unregister_device fndecl 2 44000 NULL
142917 +disable_so_bus_addr_vnic_dev_bar_44006 bus_addr vnic_dev_bar 0 44006 NULL
142918 +disable_so_pcf8523_rtc_set_time_fndecl_44007 pcf8523_rtc_set_time fndecl 0 44007 NULL
142919 +disable_so_dq_hash_mask_vardecl_dquot_c_44015 dq_hash_mask vardecl_dquot.c 0 44015 NULL
142920 +disable_so_device_addr_lm87_tx_hdr_44016 device_addr lm87_tx_hdr 0 44016 NULL
142921 +disable_so__kstrtoull_fndecl_44018 _kstrtoull fndecl 0 44018 NULL
142922 +disable_so_brcmf_sdiod_set_sbaddr_window_fndecl_44019 brcmf_sdiod_set_sbaddr_window fndecl 0-2 44019 NULL
142923 +disable_so_drbd_adm_new_c_uuid_fndecl_44035 drbd_adm_new_c_uuid fndecl 0 44035 NULL
142924 +disable_so_signal_hostap_80211_rx_status_44041 signal hostap_80211_rx_status 0 44041 NULL
142925 +disable_so_enqueue_time_codel_skb_cb_44046 enqueue_time codel_skb_cb 0 44046 NULL
142926 +disable_so_conv_clk_and_div_n_pcr_ops_44049 conv_clk_and_div_n pcr_ops 0-1 44049 NULL
142927 +disable_so_ep93xx_spi_calc_divisors_fndecl_44051 ep93xx_spi_calc_divisors fndecl 0-2 44051 NULL
142928 +disable_so_j_trans_start_time_reiserfs_journal_44058 j_trans_start_time reiserfs_journal 0 44058 NULL
142929 +disable_so_cvt_kvaddr_fndecl_44079 cvt_kvaddr fndecl 0 44079 NULL
142930 +disable_so_tm_mon_rtc_time_44080 tm_mon rtc_time 0 44080 NULL
142931 +disable_so_uart_get_divisor_fndecl_44085 uart_get_divisor fndecl 0-2 44085 NULL
142932 +disable_so_spn_obj_sockaddr_pn_44086 spn_obj sockaddr_pn 0 44086 NULL
142933 +disable_so_cur_start_addr_sisusb_usb_data_44091 cur_start_addr sisusb_usb_data 0 44091 NULL nohasharray
142934 +disable_so___vma_address_fndecl_44091 __vma_address fndecl 0 44091 &disable_so_cur_start_addr_sisusb_usb_data_44091
142935 +disable_so_read_systime_fm10k_mac_ops_44092 read_systime fm10k_mac_ops 0 44092 NULL
142936 +disable_so_nfsd_map_name_to_gid_fndecl_44096 nfsd_map_name_to_gid fndecl 0 44096 NULL
142937 +disable_so_mthca_cmd_box_fndecl_44108 mthca_cmd_box fndecl 7-0-2-4-3 44108 NULL nohasharray
142938 +disable_so_chv_clock_fndecl_44108 chv_clock fndecl 1 44108 &disable_so_mthca_cmd_box_fndecl_44108
142939 +disable_so_ironlake_pch_transcoder_set_timings_fndecl_44115 ironlake_pch_transcoder_set_timings fndecl 2 44115 NULL
142940 +disable_so___br_ip4_hash_fndecl_44134 __br_ip4_hash fndecl 0 44134 NULL
142941 +disable_so_divider_recalc_rate_fndecl_44140 divider_recalc_rate fndecl 3-0-2 44140 NULL nohasharray
142942 +disable_so_reg_id_res_gid_44140 reg_id res_gid 0 44140 &disable_so_divider_recalc_rate_fndecl_44140
142943 +disable_so_dev_rst_time_qlcnic_adapter_44150 dev_rst_time qlcnic_adapter 0 44150 NULL
142944 +disable_so_nsec_ptp_clock_time_44160 nsec ptp_clock_time 0 44160 NULL
142945 +disable_so_node_count_hfs_btree_44162 node_count hfs_btree 0 44162 NULL
142946 +disable_so_iscsit_na_dataout_timeout_fndecl_44167 iscsit_na_dataout_timeout fndecl 2-0 44167 NULL nohasharray
142947 +disable_so_idletimer_ax25_info_struct_44167 idletimer ax25_info_struct 0 44167 &disable_so_iscsit_na_dataout_timeout_fndecl_44167
142948 +disable_so_btrfs_delayed_qgroup_accounting_fndecl_44171 btrfs_delayed_qgroup_accounting fndecl 0 44171 NULL
142949 +disable_so_t4_wr_mbox_timeout_fndecl_44177 t4_wr_mbox_timeout fndecl 2 44177 NULL
142950 +disable_so_db_addr_mlx4_ib_create_qp_44182 db_addr mlx4_ib_create_qp 0 44182 NULL nohasharray
142951 +disable_so_mxl111sf_streaming_ctrl_atsc_mh_fndecl_44182 mxl111sf_streaming_ctrl_atsc_mh fndecl 0 44182 &disable_so_db_addr_mlx4_ib_create_qp_44182
142952 +disable_so_ipath_pkt_delay_fndecl_44185 ipath_pkt_delay fndecl 0-1-2-3 44185 NULL nohasharray
142953 +disable_so_cycle_state_xhci_ring_44185 cycle_state xhci_ring 0 44185 &disable_so_ipath_pkt_delay_fndecl_44185
142954 +disable_so_phys_dma_addr_r852_device_44187 phys_dma_addr r852_device 0 44187 NULL
142955 +disable_so_nopin_response_timeout_iscsi_node_attrib_44188 nopin_response_timeout iscsi_node_attrib 0 44188 NULL
142956 +disable_so_lkey_mthca_resize_cq_44197 lkey mthca_resize_cq 0 44197 NULL
142957 +disable_so_rx_timeout_netdev_private_44200 rx_timeout netdev_private 0 44200 NULL
142958 +disable_so_naddr_qib_user_sdma_pkt_44203 naddr qib_user_sdma_pkt 0 44203 NULL
142959 +disable_so_block_to_cpu_fndecl_44212 block_to_cpu fndecl 0 44212 NULL
142960 +disable_so_read_tail_n_tty_data_44226 read_tail n_tty_data 0 44226 NULL
142961 +disable_so_bssidx_rt2x00lib_crypto_44239 bssidx rt2x00lib_crypto 0 44239 NULL
142962 +disable_so_number_pci_bus_44243 number pci_bus 0 44243 NULL
142963 +disable_so_watchdog_timeout_w83793_data_44253 watchdog_timeout w83793_data 0 44253 NULL
142964 +disable_so_cz_clock_intel_rps_ei_44276 cz_clock intel_rps_ei 0 44276 NULL
142965 +disable_so_proc_gid_map_open_fndecl_44293 proc_gid_map_open fndecl 0 44293 NULL
142966 +disable_so_r2d_val_fc2580_freq_regs_44295 r2d_val fc2580_freq_regs 0 44295 NULL
142967 +disable_so_wm8510_set_dai_clkdiv_fndecl_44299 wm8510_set_dai_clkdiv fndecl 3 44299 NULL
142968 +disable_so_otime_jfs_inode_info_44300 otime jfs_inode_info 0 44300 NULL
142969 +disable_so_rss_hash_be_rx_compl_info_44306 rss_hash be_rx_compl_info 0 44306 NULL
142970 +disable_so_radio_tx_freq_vivid_dev_44308 radio_tx_freq vivid_dev 0 44308 NULL
142971 +disable_so_smbhash_fndecl_44311 smbhash fndecl 0 44311 NULL
142972 +disable_so_nla_put_in6_addr_fndecl_44317 nla_put_in6_addr fndecl 0 44317 NULL
142973 +disable_so_fll_ref_freq__fll_div_44318 fll_ref_freq _fll_div 0 44318 NULL
142974 +disable_so_prandom_bytes_state_fndecl_44332 prandom_bytes_state fndecl 3 44332 NULL
142975 +disable_so_base_dma_addr_srp_map_state_44343 base_dma_addr srp_map_state 0 44343 NULL
142976 +disable_so_addr_intel_plane_error_state_44366 addr intel_plane_error_state 0 44366 NULL
142977 +disable_so_start_addr_acpi_memory_info_44372 start_addr acpi_memory_info 0 44372 NULL
142978 +disable_so_bitmap_cpg_ocfs2_super_44373 bitmap_cpg ocfs2_super 0 44373 NULL
142979 +disable_so_interval_zd_usb_interrupt_44381 interval zd_usb_interrupt 0 44381 NULL
142980 +disable_so_neigh_proc_dointvec_ms_jiffies_fndecl_44384 neigh_proc_dointvec_ms_jiffies fndecl 0 44384 NULL
142981 +disable_so_fsl_esai_divisor_cal_fndecl_44386 fsl_esai_divisor_cal fndecl 5-3 44386 NULL
142982 +disable_so_sync_single_for_device_dma_map_ops_44393 sync_single_for_device dma_map_ops 2-3 44393 NULL
142983 +disable_so_cl_lease_time_nfs_client_44400 cl_lease_time nfs_client 0 44400 NULL
142984 +disable_so_asd_get_user_sas_addr_fndecl_44401 asd_get_user_sas_addr fndecl 0 44401 NULL
142985 +disable_so_ss_tss_segment_16_44415 ss tss_segment_16 0 44415 NULL
142986 +disable_so_ave_beacon_signal_ieee80211_if_managed_44440 ave_beacon_signal ieee80211_if_managed 0 44440 NULL
142987 +disable_so_smsc911x_hash_fndecl_44443 smsc911x_hash fndecl 0 44443 NULL
142988 +disable_so_flow_hash_from_keys_fndecl_44444 flow_hash_from_keys fndecl 0 44444 NULL
142989 +disable_so_addr_vt8231_data_44455 addr vt8231_data 0 44455 NULL
142990 +disable_so_drm_fixp_mul_fndecl_44461 drm_fixp_mul fndecl 0-1-2 44461 NULL
142991 +disable_so_bind_evtchn_to_cpu_fndecl_44464 bind_evtchn_to_cpu fndecl 2-1 44464 NULL
142992 +disable_so_rdma_set_reuseaddr_fndecl_44469 rdma_set_reuseaddr fndecl 0 44469 NULL
142993 +disable_so_vx_calc_clock_from_freq_fndecl_44479 vx_calc_clock_from_freq fndecl 0-2 44479 NULL
142994 +disable_so_rs_conn_addr_rds_sock_44482 rs_conn_addr rds_sock 0 44482 NULL
142995 +disable_so_decode_attr_time_delta_fndecl_44484 decode_attr_time_delta fndecl 0 44484 NULL nohasharray
142996 +disable_so_xfs_btree_get_bufs_fndecl_44484 xfs_btree_get_bufs fndecl 3-4 44484 &disable_so_decode_attr_time_delta_fndecl_44484
142997 +disable_so_zd_chip_set_multicast_hash_fndecl_44491 zd_chip_set_multicast_hash fndecl 0 44491 NULL
142998 +disable_so_write32_async_rtl_io_44499 write32_async rtl_io 2-3 44499 NULL
142999 +disable_so_tcf_hashinfo_init_fndecl_44504 tcf_hashinfo_init fndecl 2 44504 NULL
143000 +disable_so_buffer_addr_atl1c_rx_free_desc_44505 buffer_addr atl1c_rx_free_desc 0 44505 NULL
143001 +disable_so_rqq_addr_hi_addr_ctrl_blk_44511 rqq_addr_hi addr_ctrl_blk 0 44511 NULL
143002 +disable_so_max_pll_spi_speed_pll_clock_map_44513 max_pll_spi_speed pll_clock_map 0 44513 NULL
143003 +disable_so_read_addr_qla8xxx_minidump_entry_mux_44516 read_addr qla8xxx_minidump_entry_mux 0 44516 NULL
143004 +disable_so_abx500_set_register_interruptible_fndecl_44521 abx500_set_register_interruptible fndecl 0-4 44521 NULL
143005 +disable_so_range_startk_var_mtrr_state_44530 range_startk var_mtrr_state 0 44530 NULL
143006 +disable_so_dev_idx_sockaddr_nfc_44533 dev_idx sockaddr_nfc 0 44533 NULL
143007 +disable_so_query_dv_timings_vivid_dev_44543 query_dv_timings vivid_dev 0 44543 NULL
143008 +disable_so_saddr_ircomm_tty_cb_44557 saddr ircomm_tty_cb 0 44557 NULL
143009 +disable_so_schedule_delay_balloon_stats_44561 schedule_delay balloon_stats 0 44561 NULL
143010 +disable_so___start_cp_addr_fndecl_44569 __start_cp_addr fndecl 0 44569 NULL
143011 +disable_so_m41t94_read_time_fndecl_44577 m41t94_read_time fndecl 0 44577 NULL
143012 +disable_so_set_pte_vaddr_fndecl_44586 set_pte_vaddr fndecl 1 44586 NULL
143013 +disable_so_sctp_getsockopt_peer_addrs_fndecl_44593 sctp_getsockopt_peer_addrs fndecl 0 44593 NULL
143014 +disable_so_lu_reset_timeout_iscsi_session_44595 lu_reset_timeout iscsi_session 0 44595 NULL
143015 +disable_so_jade_interrupt_fndecl_44602 jade_interrupt fndecl 2 44602 NULL nohasharray
143016 +disable_so_ebx_smm_regs_44602 ebx smm_regs 0 44602 &disable_so_jade_interrupt_fndecl_44602 nohasharray
143017 +disable_so_nilfs_btree_prepare_insert_fndecl_44602 nilfs_btree_prepare_insert fndecl 0-4 44602 &disable_so_ebx_smm_regs_44602
143018 +disable_so_pcf50633_rtc_read_time_fndecl_44606 pcf50633_rtc_read_time fndecl 0 44606 NULL
143019 +disable_so_active_time_evergreen_wm_params_44608 active_time evergreen_wm_params 0 44608 NULL
143020 +disable_so_flags_inet6_ifaddr_44611 flags inet6_ifaddr 0 44611 NULL
143021 +disable_so_sioaddr_watchdog_data_44614 sioaddr watchdog_data 0 44614 NULL
143022 +disable_so_sense_addr_adv_scsi_req_q_44624 sense_addr adv_scsi_req_q 0 44624 NULL
143023 +disable_so_maxfrags_snd_pcm_oss_runtime_44625 maxfrags snd_pcm_oss_runtime 0 44625 NULL
143024 +disable_so_settle_delay_usecs_ads7846_platform_data_44627 settle_delay_usecs ads7846_platform_data 0 44627 NULL
143025 +disable_so_get_random_int_fndecl_44628 get_random_int fndecl 0 44628 NULL
143026 +disable_so_ahash_def_finup_finish1_fndecl_44631 ahash_def_finup_finish1 fndecl 0-2 44631 NULL
143027 +disable_so_calib_time_b43_lo_calib_44633 calib_time b43_lo_calib 0 44633 NULL
143028 +disable_so_timespec_to_jiffies_fndecl_44642 timespec_to_jiffies fndecl 0 44642 NULL
143029 +disable_so_secid_netlbl_unlhsh_addr4_44654 secid netlbl_unlhsh_addr4 0 44654 NULL
143030 +disable_so_tcp_init_nondata_skb_fndecl_44656 tcp_init_nondata_skb fndecl 2 44656 NULL
143031 +disable_so_time_start_nfs_fattr_44666 time_start nfs_fattr 0 44666 NULL
143032 +disable_so_nilfs_dev_uuid_show_fndecl_44683 nilfs_dev_uuid_show fndecl 0 44683 NULL
143033 +disable_so_prctl_get_tid_address_fndecl_44684 prctl_get_tid_address fndecl 0 44684 NULL
143034 +disable_so_rq_addr_t3_wq_44688 rq_addr t3_wq 0 44688 NULL
143035 +disable_so_lpfc_max_scsicmpl_time_vardecl_lpfc_attr_c_44694 lpfc_max_scsicmpl_time vardecl_lpfc_attr.c 0 44694 NULL
143036 +disable_so_show_guid_fndecl_44695 show_guid fndecl 0 44695 NULL
143037 +disable_so_rsi_cmd52writebyte_fndecl_44700 rsi_cmd52writebyte fndecl 0-2-3 44700 NULL
143038 +disable_so_rx_rx_timeout_read_fndecl_44710 rx_rx_timeout_read fndecl 3 44710 NULL
143039 +disable_so_fw_localtime_wl_fw_status_44711 fw_localtime wl_fw_status 0 44711 NULL
143040 +disable_so_sm501_calc_clock_fndecl_44717 sm501_calc_clock fndecl 1-4 44717 NULL
143041 +disable_so_address_radio_20xx_regs_44719 address radio_20xx_regs 0 44719 NULL
143042 +disable_so_round_jiffies_common_fndecl_44723 round_jiffies_common fndecl 0-2-1 44723 NULL
143043 +disable_so_offtime_cbq_class_44730 offtime cbq_class 0 44730 NULL
143044 +disable_so_cur_clock_rtsx_pcr_44731 cur_clock rtsx_pcr 0 44731 NULL
143045 +disable_so_cik_set_uvd_clocks_fndecl_44739 cik_set_uvd_clocks fndecl 3-2-0 44739 NULL
143046 +disable_so_write_reg_sja1000_priv_44741 write_reg sja1000_priv 3 44741 NULL
143047 +disable_so_leaf_tail_hfs_btree_44745 leaf_tail hfs_btree 0 44745 NULL
143048 +disable_so_ui_ctime_ufs2_inode_44748 ui_ctime ufs2_inode 0 44748 NULL nohasharray
143049 +disable_so_addr_it87_data_44748 addr it87_data 0 44748 &disable_so_ui_ctime_ufs2_inode_44748
143050 +disable_so_add_time_xfrm_lifetime_cur_44766 add_time xfrm_lifetime_cur 0 44766 NULL
143051 +disable_so_genwqe_debugfs_curr_dbg_uid1_open_fndecl_44769 genwqe_debugfs_curr_dbg_uid1_open fndecl 0 44769 NULL
143052 +disable_so_espibug_timeout_sge_44778 espibug_timeout sge 0 44778 NULL
143053 +disable_so_buffer_addr_pch_gbe_tx_desc_44790 buffer_addr pch_gbe_tx_desc 0 44790 NULL
143054 +disable_so_crypto_shash_init_fndecl_44815 crypto_shash_init fndecl 0 44815 NULL
143055 +disable_so_get_evtchn_to_irq_fndecl_44824 get_evtchn_to_irq fndecl 0-1 44824 NULL nohasharray
143056 +disable_so_jhash2_fndecl_44824 jhash2 fndecl 0-2-3 44824 &disable_so_get_evtchn_to_irq_fndecl_44824
143057 +disable_so_s_mtime_nilfs_super_block_44839 s_mtime nilfs_super_block 0 44839 NULL
143058 +disable_so_nilfs_segctor_last_nongc_write_time_show_fndecl_44843 nilfs_segctor_last_nongc_write_time_show fndecl 0 44843 NULL
143059 +disable_so_usec_delay_ixgbe_mbx_info_44850 usec_delay ixgbe_mbx_info 0 44850 NULL
143060 +disable_so_ecryptfs_cipher_code_to_string_fndecl_44859 ecryptfs_cipher_code_to_string fndecl 0 44859 NULL
143061 +disable_so_ieee802154_hdr_get_addr_fndecl_44863 ieee802154_hdr_get_addr fndecl 0 44863 NULL
143062 +disable_so_ecp_write_addr_parport_operations_44867 ecp_write_addr parport_operations 0 44867 NULL
143063 +disable_so_mtrr_add_page_fndecl_44881 mtrr_add_page fndecl 1-2 44881 NULL
143064 +disable_so_snd_via686_interrupt_fndecl_44897 snd_via686_interrupt fndecl 1 44897 NULL nohasharray
143065 +disable_so_minor_hash_dx_hash_info_44897 minor_hash dx_hash_info 0 44897 &disable_so_snd_via686_interrupt_fndecl_44897
143066 +disable_so_i2c_addr_dmi_onboard_device_info_44901 i2c_addr dmi_onboard_device_info 0 44901 NULL
143067 +disable_so_tcp_conn_schedule_fndecl_44909 tcp_conn_schedule fndecl 1 44909 NULL nohasharray
143068 +disable_so_udelay_fm10k_mbx_info_44909 udelay fm10k_mbx_info 0 44909 &disable_so_tcp_conn_schedule_fndecl_44909
143069 +disable_so_c_timestamp_svc_cacherep_44918 c_timestamp svc_cacherep 0 44918 NULL
143070 +disable_so_timeout_mpt2_ioctl_command_44920 timeout mpt2_ioctl_command 0 44920 NULL
143071 +disable_so_sk_lingertime_sock_44923 sk_lingertime sock 0 44923 NULL
143072 +disable_so_latency_timer_hpp_type0_44929 latency_timer hpp_type0 0 44929 NULL
143073 +disable_so_mtime_squashfs_base_inode_44930 mtime squashfs_base_inode 0 44930 NULL
143074 +disable_so_rpc_peeraddr_fndecl_44940 rpc_peeraddr fndecl 0-3 44940 NULL
143075 +disable_so_dsap_sockaddr_nfc_llcp_44945 dsap sockaddr_nfc_llcp 0 44945 NULL
143076 +disable_so_shash_ahash_mcryptd_finup_fndecl_44946 shash_ahash_mcryptd_finup fndecl 0 44946 NULL
143077 +disable_so_SiS_SetRegANDOR_fndecl_44947 SiS_SetRegANDOR fndecl 1-2-3-4 44947 NULL
143078 +disable_so_cpu_timer_sample_group_fndecl_44962 cpu_timer_sample_group fndecl 1 44962 NULL
143079 +disable_so_key_timeout_rpc_authops_44963 key_timeout rpc_authops 0 44963 NULL
143080 +disable_so_proc_uid_map_open_fndecl_44967 proc_uid_map_open fndecl 0 44967 NULL
143081 +disable_so_spp_pathmtu_sctp_paddrparams_44974 spp_pathmtu sctp_paddrparams 0 44974 NULL
143082 +disable_so_b43_radio_write_fndecl_44980 b43_radio_write fndecl 3 44980 NULL
143083 +disable_so_level_btree_44981 level btree 0 44981 NULL
143084 +disable_so_shift_clocksource_44992 shift clocksource 0 44992 NULL
143085 +disable_so_mount_timeout_ceph_options_44999 mount_timeout ceph_options 0 44999 NULL
143086 +disable_so_igmp_start_timer_fndecl_45000 igmp_start_timer fndecl 2 45000 NULL
143087 +disable_so_force_addr_vardecl_via686a_c_45006 force_addr vardecl_via686a.c 0 45006 NULL
143088 +disable_so_ahash_wait_fndecl_45017 ahash_wait fndecl 0-1 45017 NULL
143089 +disable_so_acpi_pm_device_sleep_wake_fndecl_45036 acpi_pm_device_sleep_wake fndecl 0 45036 NULL
143090 +disable_so_palette_qxl_bitmap_45040 palette qxl_bitmap 0 45040 NULL
143091 +disable_so_subdevice_snd_timer_id_45046 subdevice snd_timer_id 0 45046 NULL
143092 +disable_so_demod_address_sp887x_config_45051 demod_address sp887x_config 0 45051 NULL
143093 +disable_so_end_address_acpi_address_range_45053 end_address acpi_address_range 0 45053 NULL
143094 +disable_so_fm_rx_get_band_freq_range_fndecl_45055 fm_rx_get_band_freq_range fndecl 0 45055 NULL
143095 +disable_so_tcp_time_wait_fndecl_45056 tcp_time_wait fndecl 3-2 45056 NULL nohasharray
143096 +disable_so_mlx4_ib_gen_node_guid_fndecl_45056 mlx4_ib_gen_node_guid fndecl 0 45056 &disable_so_tcp_time_wait_fndecl_45056
143097 +disable_so_gpio_get_value_cansleep_fndecl_45065 gpio_get_value_cansleep fndecl 0-1 45065 NULL
143098 +disable_so_max6900_i2c_read_time_fndecl_45069 max6900_i2c_read_time fndecl 0 45069 NULL
143099 +disable_so_sys_futimesat_fndecl_45070 sys_futimesat fndecl 1 45070 NULL
143100 +disable_so_genwqe_debugfs_prev_dbg_uid2_open_fndecl_45072 genwqe_debugfs_prev_dbg_uid2_open fndecl 0 45072 NULL
143101 +disable_so_cmd_attr_register_cpumask_fndecl_45074 cmd_attr_register_cpumask fndecl 0 45074 NULL
143102 +disable_so_hdspm_get_aes_sample_rate_fndecl_45076 hdspm_get_aes_sample_rate fndecl 2 45076 NULL
143103 +disable_so_set_magic_time_fndecl_45079 set_magic_time fndecl 3-2-1 45079 NULL
143104 +disable_so_pci_bus_alloc_from_region_fndecl_45084 pci_bus_alloc_from_region fndecl 5-3-4 45084 NULL
143105 +disable_so_set_pending_timer_val_fndecl_45111 set_pending_timer_val fndecl 2 45111 NULL
143106 +disable_so_i_ctime_nsec_f2fs_inode_45121 i_ctime_nsec f2fs_inode 0 45121 NULL nohasharray
143107 +disable_so_s_mtime_ext3_super_block_45121 s_mtime ext3_super_block 0 45121 &disable_so_i_ctime_nsec_f2fs_inode_45121
143108 +disable_so_inet_csk_reset_keepalive_timer_fndecl_45127 inet_csk_reset_keepalive_timer fndecl 2 45127 NULL
143109 +disable_so_x25_addr_ntoa_fndecl_45136 x25_addr_ntoa fndecl 0 45136 NULL
143110 +disable_so_ltimeout_ia_vcc_45137 ltimeout ia_vcc 0 45137 NULL
143111 +disable_so_high_addr_msgbuf_buf_addr_45142 high_addr msgbuf_buf_addr 0 45142 NULL
143112 +disable_so_pit_calibrate_tsc_fndecl_45149 pit_calibrate_tsc fndecl 0-2 45149 NULL
143113 +disable_so_fw_dma_addr_sproc_45154 fw_dma_addr sproc 0 45154 NULL
143114 +disable_so_addr_lola_bar_45160 addr lola_bar 0 45160 NULL
143115 +disable_so_set_normalized_timespec_fndecl_45161 set_normalized_timespec fndecl 2-3 45161 NULL
143116 +disable_so_lp8788_show_eoc_time_fndecl_45162 lp8788_show_eoc_time fndecl 0 45162 NULL
143117 +disable_so_set_ageing_time_fndecl_45172 set_ageing_time fndecl 2 45172 NULL
143118 +disable_so_address_radio_regs_45181 address radio_regs 0 45181 NULL
143119 +disable_so_do_set_sock_timeout_fndecl_45197 do_set_sock_timeout fndecl 0-5 45197 NULL
143120 +disable_so_bootaddr_mic_device_45198 bootaddr mic_device 0 45198 NULL
143121 +disable_so_ext4_max_bitmap_size_fndecl_45201 ext4_max_bitmap_size fndecl 0-1 45201 NULL
143122 +disable_so_rapl_compute_time_window_atom_fndecl_45202 rapl_compute_time_window_atom fndecl 0-2 45202 NULL
143123 +disable_so_di_atime_nsec_gfs2_dinode_45214 di_atime_nsec gfs2_dinode 0 45214 NULL
143124 +disable_so_watchdog_get_timeout_fndecl_45215 watchdog_get_timeout fndecl 0 45215 NULL
143125 +disable_so_undertime_tc_cbq_xstats_45217 undertime tc_cbq_xstats 0 45217 NULL
143126 +disable_so_trace_clock_fndecl_45219 trace_clock fndecl 0 45219 NULL
143127 +disable_so_usb_bulk_msg_fndecl_45230 usb_bulk_msg fndecl 0-4-2-6 45230 NULL
143128 +disable_so_clock_es1968_45231 clock es1968 0 45231 NULL
143129 +disable_so_fillvaddr_gru_tlb_fault_handle_45245 fillvaddr gru_tlb_fault_handle 0 45245 NULL
143130 +disable_so_blocksize_crypto_report_blkcipher_45248 blocksize crypto_report_blkcipher 0 45248 NULL
143131 +disable_so_cdc_ncm_store_tx_timer_usecs_fndecl_45252 cdc_ncm_store_tx_timer_usecs fndecl 0-4 45252 NULL
143132 +disable_so_uv_nmi_loop_delay_vardecl_uv_nmi_c_45253 uv_nmi_loop_delay vardecl_uv_nmi.c 0 45253 NULL
143133 +disable_so_default_timer_slack_ns_task_struct_45261 default_timer_slack_ns task_struct 0 45261 NULL
143134 +disable_so_tsc_offset_adjustment_kvm_vcpu_arch_45263 tsc_offset_adjustment kvm_vcpu_arch 0 45263 NULL
143135 +disable_so_bf_buf_addr_ath_buf_45279 bf_buf_addr ath_buf 0 45279 NULL
143136 +disable_so_xen_clocksource_read_fndecl_45285 xen_clocksource_read fndecl 0 45285 NULL
143137 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_fndecl_45292 iscsi_nacl_attrib_store_dataout_timeout fndecl 0-3 45292 NULL
143138 +disable_so_r8_kvm_regs_45295 r8 kvm_regs 0 45295 NULL
143139 +disable_so_w1_master_attribute_show_timeout_fndecl_45297 w1_master_attribute_show_timeout fndecl 0 45297 NULL
143140 +disable_so_uuid_show_fallback_fndecl_45299 uuid_show_fallback fndecl 0 45299 NULL
143141 +disable_so_nv04_timer_read_fndecl_45300 nv04_timer_read fndecl 0 45300 NULL
143142 +disable_so_write_port_cfg_addr_mvs_dispatch_45302 write_port_cfg_addr mvs_dispatch 2 45302 NULL
143143 +disable_so_ixgbevf_check_for_bit_vf_fndecl_45303 ixgbevf_check_for_bit_vf fndecl 2 45303 NULL
143144 +disable_so_radio_syn_reserved_addr29_b43_nphy_channeltab_entry_rev3_45310 radio_syn_reserved_addr29 b43_nphy_channeltab_entry_rev3 0 45310 NULL
143145 +disable_so_blkcipher_walk_first_fndecl_45312 blkcipher_walk_first fndecl 0 45312 NULL
143146 +disable_so_add_interrupt_randomness_fndecl_45315 add_interrupt_randomness fndecl 1-2 45315 NULL
143147 +disable_so_lg2160_set_spi_clock_fndecl_45319 lg2160_set_spi_clock fndecl 0 45319 NULL
143148 +disable_so_scaled_div32_fndecl_45321 scaled_div32 fndecl 0-1-2 45321 NULL
143149 +disable_so_spkt_protocol_sockaddr_pkt_45330 spkt_protocol sockaddr_pkt 0 45330 NULL
143150 +disable_so_drain_timeout_xenvif_45332 drain_timeout xenvif 0 45332 NULL
143151 +disable_so_sysctl_tcp_fin_timeout_vardecl_45335 sysctl_tcp_fin_timeout vardecl 0 45335 NULL
143152 +disable_so_dlm_dump_rsb_hash_fndecl_45352 dlm_dump_rsb_hash fndecl 2 45352 NULL
143153 +disable_so_get_idle_time_fndecl_45358 get_idle_time fndecl 1-0 45358 NULL
143154 +disable_so_demod_address_ves1x93_config_45359 demod_address ves1x93_config 0 45359 NULL
143155 +disable_so_hid_sensor_write_samp_freq_value_fndecl_45374 hid_sensor_write_samp_freq_value fndecl 2-3 45374 NULL
143156 +disable_so_tuner_addr_saa7134_dev_45377 tuner_addr saa7134_dev 0 45377 NULL
143157 +disable_so_index_ptp_clock_45382 index ptp_clock 0 45382 NULL
143158 +disable_so_rbd_dev_v2_header_onetime_fndecl_45386 rbd_dev_v2_header_onetime fndecl 0 45386 NULL
143159 +disable_so_xfs_btree_make_block_unfull_fndecl_45388 xfs_btree_make_block_unfull fndecl 3-0 45388 NULL
143160 +disable_so_crypto_shash_setkey_fndecl_45392 crypto_shash_setkey fndecl 0-3 45392 NULL
143161 +disable_so_seq_devkmsg_user_45410 seq devkmsg_user 0 45410 NULL
143162 +disable_so_ad799x_read_frequency_fndecl_45414 ad799x_read_frequency fndecl 0 45414 NULL
143163 +disable_so_gid_ceph_mds_reply_inode_45416 gid ceph_mds_reply_inode 0 45416 NULL
143164 +disable_so_zl10036_set_frequency_fndecl_45420 zl10036_set_frequency fndecl 2 45420 NULL
143165 +disable_so_backlight_duty_cycle_drm_psb_private_45424 backlight_duty_cycle drm_psb_private 0 45424 NULL
143166 +disable_so_devm_kvasprintf_fndecl_45431 devm_kvasprintf fndecl 2 45431 NULL
143167 +disable_so_nvif_object_wr_fndecl_45438 nvif_object_wr fndecl 4-3 45438 NULL
143168 +disable_so_expires_rpc_timer_45444 expires rpc_timer 0 45444 NULL
143169 +disable_so_resource_address_pmcraid_config_table_entry_45452 resource_address pmcraid_config_table_entry 0 45452 NULL nohasharray
143170 +disable_so_timer_active_bfa_fcdiag_qtest_s_45452 timer_active bfa_fcdiag_qtest_s 0 45452 &disable_so_resource_address_pmcraid_config_table_entry_45452 nohasharray
143171 +disable_so_dev_addr_c67x00_td_45452 dev_addr c67x00_td 0 45452 &disable_so_timer_active_bfa_fcdiag_qtest_s_45452
143172 +disable_so_asd_write_reg_word_fndecl_45465 asd_write_reg_word fndecl 2-3 45465 NULL
143173 +disable_so_time_started_btrfs_dev_replace_45480 time_started btrfs_dev_replace 0 45480 NULL
143174 +disable_so_btrfs_add_delayed_tree_ref_fndecl_45481 btrfs_add_delayed_tree_ref fndecl 0-10-3-4-5-6-7 45481 NULL
143175 +disable_so_i2c_addr_fc2580_config_45482 i2c_addr fc2580_config 0 45482 NULL
143176 +disable_so_device_missing_delay__MPT_ADAPTER_45485 device_missing_delay _MPT_ADAPTER 0 45485 NULL
143177 +disable_so_pdiv_skl_wrpll_params_45498 pdiv skl_wrpll_params 0 45498 NULL
143178 +disable_so_fast_RR_timeout_irlap_cb_45499 fast_RR_timeout irlap_cb 0 45499 NULL
143179 +disable_so_usb_control_msg_fndecl_45507 usb_control_msg fndecl 8-0-2-9-5-4-6-3 45507 NULL
143180 +disable_so_cpu_to_vhost16_fndecl_45510 cpu_to_vhost16 fndecl 2 45510 NULL
143181 +disable_so_vma_interval_tree_compute_subtree_last_fndecl_45515 vma_interval_tree_compute_subtree_last fndecl 0 45515 NULL
143182 +disable_so_paddr_mwifiex_evt_buf_desc_45527 paddr mwifiex_evt_buf_desc 0 45527 NULL nohasharray
143183 +disable_so_saddr_lap_cb_45527 saddr lap_cb 0 45527 &disable_so_paddr_mwifiex_evt_buf_desc_45527
143184 +disable_so_nilfs_btree_find_target_v_fndecl_45528 nilfs_btree_find_target_v fndecl 0-3 45528 NULL
143185 +disable_so_pagf_btreeblks_xfs_perag_45534 pagf_btreeblks xfs_perag 0 45534 NULL
143186 +disable_so_reestablish_timeout_rpc_xprt_45538 reestablish_timeout rpc_xprt 0 45538 NULL
143187 +disable_so_show_falltime_fndecl_45545 show_falltime fndecl 0 45545 NULL
143188 +disable_so_tl_time_tcon_link_45553 tl_time tcon_link 0 45553 NULL nohasharray
143189 +disable_so_address_ips_sglist_45553 address ips_sglist 0 45553 &disable_so_tl_time_tcon_link_45553
143190 +disable_so_phy_address_bcmgenet_platform_data_45558 phy_address bcmgenet_platform_data 0 45558 NULL
143191 +disable_so_seq_kern_ipc_perm_45559 seq kern_ipc_perm 0 45559 NULL
143192 +disable_so_verify_cpufreq_driver_45564 verify cpufreq_driver 0 45564 NULL
143193 +disable_so_mcp795_set_time_fndecl_45573 mcp795_set_time fndecl 0 45573 NULL
143194 +disable_so_sw_beacon_response_time_ath9k_ops_config_45576 sw_beacon_response_time ath9k_ops_config 0 45576 NULL
143195 +disable_so_postsleep_min_us_mmc_ioc_cmd_45584 postsleep_min_us mmc_ioc_cmd 0 45584 NULL
143196 +disable_so_write_reg_c_can_priv_45594 write_reg c_can_priv 3 45594 NULL
143197 +disable_so_first_frag_time_prism2_frag_entry_45596 first_frag_time prism2_frag_entry 0 45596 NULL
143198 +disable_so_rsa_init_fndecl_45605 rsa_init fndecl 0 45605 NULL
143199 +disable_so_laddr_c2wr_ae_active_connect_results_45607 laddr c2wr_ae_active_connect_results 0 45607 NULL nohasharray
143200 +disable_so_base_kvm_mtrr_range_45607 base kvm_mtrr_range 0 45607 &disable_so_laddr_c2wr_ae_active_connect_results_45607
143201 +disable_so_readfreq_si476x_rsq_status_report_45610 readfreq si476x_rsq_status_report 0 45610 NULL
143202 +disable_so_gss_krb5_aes_encrypt_fndecl_45613 gss_krb5_aes_encrypt fndecl 0-2 45613 NULL
143203 +disable_so_igmp_ifc_start_timer_fndecl_45616 igmp_ifc_start_timer fndecl 2 45616 NULL
143204 +disable_so_usb_addr_u132_endp_45622 usb_addr u132_endp 0 45622 NULL
143205 +disable_so_manage_tempaddrs_fndecl_45628 manage_tempaddrs fndecl 3-4-6 45628 NULL
143206 +disable_so_win_mask_latch_addr_flash_info_45634 win_mask latch_addr_flash_info 0 45634 NULL
143207 +disable_so_tx_delay_rk_priv_data_45645 tx_delay rk_priv_data 0 45645 NULL
143208 +disable_so_addr_high_viafb_vx855_dma_descr_45656 addr_high viafb_vx855_dma_descr 0 45656 NULL
143209 +disable_so_snd_asihpi_tuner_freq_info_fndecl_45664 snd_asihpi_tuner_freq_info fndecl 0 45664 NULL
143210 +disable_so_spt_assoc_id_sctp_paddrthlds_45665 spt_assoc_id sctp_paddrthlds 0 45665 NULL
143211 +disable_so_xtfpga_i2s_runtime_resume_fndecl_45670 xtfpga_i2s_runtime_resume fndecl 0 45670 NULL
143212 +disable_so_T44_address_mxt_data_45677 T44_address mxt_data 0 45677 NULL
143213 +disable_so_crypto_cbc_encrypt_fndecl_45683 crypto_cbc_encrypt fndecl 0-4 45683 NULL
143214 +disable_so_clockrate_ath_common_45695 clockrate ath_common 0 45695 NULL
143215 +disable_so_wakeup_timer_p54_common_45703 wakeup_timer p54_common 0 45703 NULL
143216 +disable_so_regulator_set_voltage_time_fndecl_45707 regulator_set_voltage_time fndecl 0 45707 NULL
143217 +disable_so_i2c_addr_isl6405_45720 i2c_addr isl6405 0 45720 NULL
143218 +disable_so_allocate_va_range_i915_address_space_45728 allocate_va_range i915_address_space 2-3 45728 NULL
143219 +disable_so_lx_interrupt_test_ack_fndecl_45736 lx_interrupt_test_ack fndecl 0 45736 NULL
143220 +disable_so_set_msr_mce_fndecl_45738 set_msr_mce fndecl 3 45738 NULL
143221 +disable_so_ircomm_tty_start_watchdog_timer_fndecl_45741 ircomm_tty_start_watchdog_timer fndecl 2 45741 NULL
143222 +disable_so_mount_time_nfs_server_45742 mount_time nfs_server 0 45742 NULL
143223 +disable_so_padata_cpu_hash_fndecl_45743 padata_cpu_hash fndecl 0 45743 NULL
143224 +disable_so_mtime_sec_ubifs_ino_node_45747 mtime_sec ubifs_ino_node 0 45747 NULL nohasharray
143225 +disable_so_f1x_map_sysaddr_to_csrow_fndecl_45747 f1x_map_sysaddr_to_csrow fndecl 2 45747 &disable_so_mtime_sec_ubifs_ino_node_45747
143226 +disable_so_set_static_address_fndecl_45752 set_static_address fndecl 0 45752 NULL
143227 +disable_so_cmos_interrupt_fndecl_45753 cmos_interrupt fndecl 1 45753 NULL
143228 +disable_so_addr_buffer_rcv_desc_45761 addr_buffer rcv_desc 0 45761 NULL
143229 +disable_so_leddc_off_time_ssb_sprom_45764 leddc_off_time ssb_sprom 0 45764 NULL
143230 +disable_so_ext4_page_crypto_fndecl_45770 ext4_page_crypto fndecl 4 45770 NULL
143231 +disable_so_dqb_itime_if_dqblk_45773 dqb_itime if_dqblk 0 45773 NULL
143232 +disable_so_addr_nvme_user_io_45777 addr nvme_user_io 0 45777 NULL
143233 +disable_so_split_timeout_jiffies_fw_card_45779 split_timeout_jiffies fw_card 0 45779 NULL
143234 +disable_so_buf_addr_mlx4_ib_create_qp_45781 buf_addr mlx4_ib_create_qp 0 45781 NULL
143235 +disable_so_dax_get_addr_fndecl_45788 dax_get_addr fndecl 0-3 45788 NULL
143236 +disable_so_select_addr_qla8044_minidump_entry_pollrd_45815 select_addr qla8044_minidump_entry_pollrd 0 45815 NULL nohasharray
143237 +disable_so_sis190_get_mac_addr_from_eeprom_fndecl_45815 sis190_get_mac_addr_from_eeprom fndecl 0 45815 &disable_so_select_addr_qla8044_minidump_entry_pollrd_45815
143238 +disable_so_hwt_wait_time_fndecl_45826 hwt_wait_time fndecl 2 45826 NULL
143239 +disable_so_j_timestamp_reiserfs_journal_list_45839 j_timestamp reiserfs_journal_list 0 45839 NULL
143240 +disable_so_kxcjk1013_setup_new_data_interrupt_fndecl_45841 kxcjk1013_setup_new_data_interrupt fndecl 0 45841 NULL
143241 +disable_so_c2_add_addr_fndecl_45842 c2_add_addr fndecl 2-3 45842 NULL
143242 +disable_so_saddr_ip_tunnel_dst_45850 saddr ip_tunnel_dst 0 45850 NULL
143243 +disable_so_timeout_cdrom_generic_command_45854 timeout cdrom_generic_command 0 45854 NULL
143244 +disable_so_tdm_delay_aic3x_priv_45859 tdm_delay aic3x_priv 0 45859 NULL
143245 +disable_so_toshiba_usb_sleep_charge_get_fndecl_45863 toshiba_usb_sleep_charge_get fndecl 0 45863 NULL
143246 +disable_so_acpi_subsys_runtime_resume_fndecl_45871 acpi_subsys_runtime_resume fndecl 0 45871 NULL
143247 +disable_so_azx_command_addr_fndecl_45877 azx_command_addr fndecl 0-1 45877 NULL
143248 +disable_so_node_guid_ib_device_45878 node_guid ib_device 0 45878 NULL
143249 +disable_so_time_unit_rapl_package_45880 time_unit rapl_package 0 45880 NULL
143250 +disable_so_bw_timer_intel_dsi_45883 bw_timer intel_dsi 0 45883 NULL nohasharray
143251 +disable_so_sys_signalfd4_fndecl_45883 sys_signalfd4 fndecl 4 45883 &disable_so_bw_timer_intel_dsi_45883
143252 +disable_so_addr_st_ss_sgitem_45905 addr st_ss_sgitem 0 45905 NULL
143253 +disable_so_setlightfreq_fndecl_45914 setlightfreq fndecl 2 45914 NULL
143254 +disable_so_sis_ata33_program_udma_timings_fndecl_45916 sis_ata33_program_udma_timings fndecl 2 45916 NULL nohasharray
143255 +disable_so_str2hashbuf_fndecl_45916 str2hashbuf fndecl 2 45916 &disable_so_sis_ata33_program_udma_timings_fndecl_45916
143256 +disable_so_presentation_position_register_address_sst_hsw_ipc_stream_alloc_reply_45919 presentation_position_register_address sst_hsw_ipc_stream_alloc_reply 0 45919 NULL
143257 +disable_so_dbm_antsignal_hostap_radiotap_rx_45933 dbm_antsignal hostap_radiotap_rx 0 45933 NULL
143258 +disable_so_time_s5m_rtc_reg_config_45934 time s5m_rtc_reg_config 0 45934 NULL
143259 +disable_so_gro_flush_timeout_show_fndecl_45944 gro_flush_timeout_show fndecl 0 45944 NULL
143260 +disable_so_suid_dumpable_vardecl_45948 suid_dumpable vardecl 0 45948 NULL
143261 +disable_so_sel_addr___pollrd_45957 sel_addr __pollrd 0 45957 NULL
143262 +disable_so_st_atime_nsec_stat_45960 st_atime_nsec stat 0 45960 NULL
143263 +disable_so_mb862xx_i2c_do_address_fndecl_45962 mb862xx_i2c_do_address fndecl 2 45962 NULL nohasharray
143264 +disable_so_radeon_atom_set_engine_dram_timings_fndecl_45962 radeon_atom_set_engine_dram_timings fndecl 2-3 45962 &disable_so_mb862xx_i2c_do_address_fndecl_45962
143265 +disable_so_last_rx_signal_sta_info_45967 last_rx_signal sta_info 0 45967 NULL
143266 +disable_so_current_frequency_lgdt330x_state_45968 current_frequency lgdt330x_state 0 45968 NULL
143267 +disable_so_gpu_addr_radeon_semaphore_45975 gpu_addr radeon_semaphore 0 45975 NULL
143268 +disable_so_hello_time_net_bridge_45982 hello_time net_bridge 0 45982 NULL
143269 +disable_so_suspend_time_ipw2100_priv_45995 suspend_time ipw2100_priv 0 45995 NULL
143270 +disable_so_mtime_nsec_ubifs_ino_node_46001 mtime_nsec ubifs_ino_node 0 46001 NULL
143271 +disable_so_group_cipher_suite_atmel_private_46009 group_cipher_suite atmel_private 0 46009 NULL
143272 +disable_so_fw_hash_fndecl_46017 fw_hash fndecl 0-1 46017 NULL
143273 +disable_so_dualwatch_jiffies_cx18_46022 dualwatch_jiffies cx18 0 46022 NULL nohasharray
143274 +disable_so_ufs_set_inode_gid_fndecl_46022 ufs_set_inode_gid fndecl 3 46022 &disable_so_dualwatch_jiffies_cx18_46022
143275 +disable_so_hw_ptr_snd_rawmidi_runtime_46024 hw_ptr snd_rawmidi_runtime 0 46024 NULL
143276 +disable_so_erst_exec_set_dst_address_base_fndecl_46025 erst_exec_set_dst_address_base fndecl 0 46025 NULL
143277 +disable_so_port_expander_addr_mxl111sf_state_46026 port_expander_addr mxl111sf_state 0 46026 NULL
143278 +disable_so_tea5764_set_freq_fndecl_46030 tea5764_set_freq fndecl 2 46030 NULL
143279 +disable_so_timestamp_nfs4_delegreturndata_46035 timestamp nfs4_delegreturndata 0 46035 NULL
143280 +disable_so_crypto_blkcipher_encrypt_fndecl_46038 crypto_blkcipher_encrypt fndecl 0-4 46038 NULL
143281 +disable_so_sd_set_timing_fndecl_46047 sd_set_timing fndecl 0 46047 NULL
143282 +disable_so_eflags_user_regs_struct32_46056 eflags user_regs_struct32 0 46056 NULL nohasharray
143283 +disable_so_set_wqe_64bit_value_fndecl_46056 set_wqe_64bit_value fndecl 3 46056 &disable_so_eflags_user_regs_struct32_46056
143284 +disable_so_crypto_cbc_encrypt_segment_fndecl_46064 crypto_cbc_encrypt_segment fndecl 0 46064 NULL
143285 +disable_so_f_bavail_kstatfs_46066 f_bavail kstatfs 0 46066 NULL
143286 +disable_so_inet6_dump_ifacaddr_fndecl_46071 inet6_dump_ifacaddr fndecl 0 46071 NULL
143287 +disable_so_dma_addr_ipw_rx_mem_buffer_46073 dma_addr ipw_rx_mem_buffer 0 46073 NULL
143288 +disable_so_rfkill_last_scheduled_vardecl_input_c_46074 rfkill_last_scheduled vardecl_input.c 0 46074 NULL
143289 +disable_so_dma_addr_ntb_transport_mw_46085 dma_addr ntb_transport_mw 0 46085 NULL
143290 +disable_so_qce_ahash_init_fndecl_46087 qce_ahash_init fndecl 0 46087 NULL
143291 +disable_so_lambda_fll_div_46091 lambda fll_div 0 46091 NULL
143292 +disable_so_amd_iommu_enable_interrupts_fndecl_46110 amd_iommu_enable_interrupts fndecl 0 46110 NULL
143293 +disable_so_pineview_clock_fndecl_46122 pineview_clock fndecl 1 46122 NULL
143294 +disable_so_aes_set_key_common_fndecl_46123 aes_set_key_common fndecl 0-4 46123 NULL
143295 +disable_so_max_dwell_time_active_long_conf_scan_settings_46124 max_dwell_time_active_long conf_scan_settings 0 46124 NULL nohasharray
143296 +disable_so_clock_khz_sym_hcb_46124 clock_khz sym_hcb 0 46124 &disable_so_max_dwell_time_active_long_conf_scan_settings_46124
143297 +disable_so_mrp_periodic_time_vardecl_mrp_c_46127 mrp_periodic_time vardecl_mrp.c 0 46127 NULL
143298 +disable_so_mlx5_query_hca_vport_node_guid_fndecl_46128 mlx5_query_hca_vport_node_guid fndecl 0 46128 NULL
143299 +disable_so_xfs_kgid_to_gid_fndecl_46136 xfs_kgid_to_gid fndecl 0 46136 NULL
143300 +disable_so_ata_msleep_fndecl_46137 ata_msleep fndecl 2 46137 NULL
143301 +disable_so_ccp_sha_init_fndecl_46144 ccp_sha_init fndecl 0 46144 NULL
143302 +disable_so___mv88e6xxx_write_addr_fndecl_46145 __mv88e6xxx_write_addr fndecl 0 46145 NULL
143303 +disable_so_wdt_set_time_fndecl_46151 wdt_set_time fndecl 1-0 46151 NULL
143304 +disable_so_first_above_time_codel_vars_46152 first_above_time codel_vars 0 46152 NULL
143305 +disable_so_extclk_freq_max8649_platform_data_46157 extclk_freq max8649_platform_data 0 46157 NULL
143306 +disable_so_init_clocksource_sysfs_fndecl_46161 init_clocksource_sysfs fndecl 0 46161 NULL
143307 +disable_so_escape_clk_div_intel_dsi_46167 escape_clk_div intel_dsi 0 46167 NULL
143308 +disable_so_l2cap_sock_get_sndtimeo_cb_fndecl_46168 l2cap_sock_get_sndtimeo_cb fndecl 0 46168 NULL
143309 +disable_so_ebx_tss_segment_32_46181 ebx tss_segment_32 0 46181 NULL
143310 +disable_so_freq_in_rule_band_fndecl_46182 freq_in_rule_band fndecl 2 46182 NULL
143311 +disable_so_get_signal_to_noise_fndecl_46189 get_signal_to_noise fndecl 0 46189 NULL
143312 +disable_so_bitmap_parse_user_fndecl_46193 bitmap_parse_user fndecl 0-2-4 46193 NULL
143313 +disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL
143314 +disable_so_phy_addr_adf_admin_comms_46206 phy_addr adf_admin_comms 0 46206 NULL nohasharray
143315 +disable_so_hblank_lo_detailed_pixel_timing_46206 hblank_lo detailed_pixel_timing 0 46206 &disable_so_phy_addr_adf_admin_comms_46206
143316 +disable_so_delay_time_NvRamType_46210 delay_time NvRamType 0 46210 NULL
143317 +disable_so_subtree_max_end_memtype_46217 subtree_max_end memtype 0 46217 NULL
143318 +disable_so_i_gid_ext3_inode_46225 i_gid ext3_inode 0 46225 NULL
143319 +disable_so_dma_addr_rx_sw_desc_46234 dma_addr rx_sw_desc 0 46234 NULL
143320 +disable_so_smsc_phy_ack_interrupt_fndecl_46236 smsc_phy_ack_interrupt fndecl 0 46236 NULL
143321 +disable_so_crypto_ctr_setkey_fndecl_46238 crypto_ctr_setkey fndecl 0-3 46238 NULL
143322 +disable_so_ap_beacon_time_iwl_mvm_vif_46241 ap_beacon_time iwl_mvm_vif 0 46241 NULL
143323 +disable_so_phy_addr_base_niu_phy_template_46243 phy_addr_base niu_phy_template 0 46243 NULL
143324 +disable_so_dev_getbyhwaddr_rcu_fndecl_46248 dev_getbyhwaddr_rcu fndecl 2 46248 NULL
143325 +disable_so_delay_time_vardecl_pcnet_cs_c_46250 delay_time vardecl_pcnet_cs.c 0 46250 NULL
143326 +disable_so_from_hash_fndecl_46264 from_hash fndecl 0-1 46264 NULL
143327 +disable_so_lapic_timer_frequency_vardecl_46265 lapic_timer_frequency vardecl 0 46265 NULL
143328 +disable_so_cs35l32_runtime_resume_fndecl_46274 cs35l32_runtime_resume fndecl 0 46274 NULL
143329 +disable_so_clock_high_l3_pins_46276 clock_high l3_pins 0 46276 NULL
143330 +disable_so_snd_opl3_timer2_init_fndecl_46281 snd_opl3_timer2_init fndecl 0-2 46281 NULL
143331 +disable_so_demod_address_mb86a16_config_46282 demod_address mb86a16_config 0 46282 NULL
143332 +disable_so_atime_fuse_attr_46283 atime fuse_attr 0 46283 NULL
143333 +disable_so_blink_time_wm831x_status_46292 blink_time wm831x_status 0 46292 NULL
143334 +disable_so_dm_btree_insert_notify_fndecl_46297 dm_btree_insert_notify fndecl 0-2 46297 NULL
143335 +disable_so__rtl92c_signal_scale_mapping_fndecl_46298 _rtl92c_signal_scale_mapping fndecl 0-2 46298 NULL
143336 +disable_so_usb_port_runtime_suspend_fndecl_46299 usb_port_runtime_suspend fndecl 0 46299 NULL
143337 +disable_so___bitmap_start_sync_fndecl_46300 __bitmap_start_sync fndecl 2-4 46300 NULL
143338 +disable_so_ep_timeout_secs_vardecl_cm_c_46302 ep_timeout_secs vardecl_cm.c 0 46302 NULL
143339 +disable_so_prop_seg_can_bittiming_46312 prop_seg can_bittiming 0 46312 NULL
143340 +disable_so_signalstrength_rtl_stats_46320 signalstrength rtl_stats 0 46320 NULL
143341 +disable_so_xpc_hb_check_timeout_vardecl_xpc_main_c_46327 xpc_hb_check_timeout vardecl_xpc_main.c 0 46327 NULL
143342 +disable_so_creation_time_se_dev_entry_46338 creation_time se_dev_entry 0 46338 NULL
143343 +disable_so_ene_set_tx_duty_cycle_fndecl_46344 ene_set_tx_duty_cycle fndecl 2 46344 NULL
143344 +disable_so_atimensec_fuse_setattr_in_46351 atimensec fuse_setattr_in 0 46351 NULL
143345 +disable_so_ip_mce_46362 ip mce 0 46362 NULL
143346 +disable_so_ntfs_bitmap_clear_run_fndecl_46364 ntfs_bitmap_clear_run fndecl 2-3 46364 NULL
143347 +disable_so_ds1286_read_time_fndecl_46365 ds1286_read_time fndecl 0 46365 NULL
143348 +disable_so_sd_uid_stat_data_v1_46367 sd_uid stat_data_v1 0 46367 NULL
143349 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_fndecl_46369 bfa_fcs_lport_ns_sm_gid_ft fndecl 2 46369 NULL
143350 +disable_so_address_usb_ep_46374 address usb_ep 0 46374 NULL
143351 +disable_so_txctl_measured_time_b43_txpower_lo_control_46377 txctl_measured_time b43_txpower_lo_control 0 46377 NULL
143352 +disable_so_gru_start_paddr_vardecl_46378 gru_start_paddr vardecl 0 46378 NULL
143353 +disable_so_second_timestamp_46379 second timestamp 0 46379 NULL
143354 +disable_so_code_acpi_signal_fatal_info_46389 code acpi_signal_fatal_info 0 46389 NULL
143355 +disable_so_cpu_hrtimer_cpu_base_46390 cpu hrtimer_cpu_base 0 46390 NULL
143356 +disable_so_bcma_chipco_watchdog_timer_set_wdt_fndecl_46396 bcma_chipco_watchdog_timer_set_wdt fndecl 2-0 46396 NULL
143357 +disable_so_check_intr_schedule_fndecl_46403 check_intr_schedule fndecl 2-3-0 46403 NULL
143358 +disable_so_start_mtrr_iter_46427 start mtrr_iter 0 46427 NULL
143359 +disable_so_cp_hqd_pq_wptr_poll_addr_hqd_registers_46430 cp_hqd_pq_wptr_poll_addr hqd_registers 0 46430 NULL
143360 +disable_so_irlap_start_final_timer_fndecl_46431 irlap_start_final_timer fndecl 2 46431 NULL
143361 +disable_so_tuner_pll_address_budget_ci_46436 tuner_pll_address budget_ci 0 46436 NULL
143362 +disable_so_mmc35240_get_samp_freq_index_fndecl_46439 mmc35240_get_samp_freq_index fndecl 0 46439 NULL
143363 +disable_so_addr_qat_alg_buf_46445 addr qat_alg_buf 0 46445 NULL
143364 +disable_so_set_ifa_lifetime_fndecl_46447 set_ifa_lifetime fndecl 3-2 46447 NULL
143365 +disable_so_crypto_authenc_module_init_fndecl_46455 crypto_authenc_module_init fndecl 0 46455 NULL
143366 +disable_so_start_fw_address_region_46456 start fw_address_region 0 46456 NULL
143367 +disable_so_snd_seq_queue_timer_open_fndecl_46460 snd_seq_queue_timer_open fndecl 1 46460 NULL
143368 +disable_so_rt_mutex_lock_interruptible_fndecl_46473 rt_mutex_lock_interruptible fndecl 0 46473 NULL
143369 +disable_so_link_set_timer_fndecl_46475 link_set_timer fndecl 2 46475 NULL
143370 +disable_so_pci_bus_check_dev_fndecl_46486 pci_bus_check_dev fndecl 2 46486 NULL
143371 +disable_so_header_dma_addr_tso_state_46489 header_dma_addr tso_state 0 46489 NULL
143372 +disable_so_get_frequency_dvb_tuner_ops_46496 get_frequency dvb_tuner_ops 0 46496 NULL
143373 +disable_so_eth_prepare_mac_addr_change_fndecl_46501 eth_prepare_mac_addr_change fndecl 0 46501 NULL
143374 +disable_so_nfs_direct_write_schedule_iovec_fndecl_46504 nfs_direct_write_schedule_iovec fndecl 0-3 46504 NULL
143375 +disable_so_sib_sid_mask_sockaddr_ib_46511 sib_sid_mask sockaddr_ib 0 46511 NULL
143376 +disable_so_gc_upcall_timestamp_gss_cred_46522 gc_upcall_timestamp gss_cred 0 46522 NULL
143377 +disable_so_zd_iowrite32a_fndecl_46529 zd_iowrite32a fndecl 0-3 46529 NULL
143378 +disable_so_btrfs_delayed_item_reserve_metadata_fndecl_46535 btrfs_delayed_item_reserve_metadata fndecl 0 46535 NULL
143379 +disable_so_qi_btimelimit_xfs_quotainfo_46536 qi_btimelimit xfs_quotainfo 0 46536 NULL
143380 +disable_so_tick_do_timer_cpu_vardecl_46549 tick_do_timer_cpu vardecl 0 46549 NULL
143381 +disable_so_dma_addr_rsxx_cs_buffer_46558 dma_addr rsxx_cs_buffer 0 46558 NULL
143382 +disable_so_niu_set_hash_opts_fndecl_46560 niu_set_hash_opts fndecl 0 46560 NULL
143383 +disable_so_ext_start_addr_i740fb_par_46564 ext_start_addr i740fb_par 0 46564 NULL nohasharray
143384 +disable_so_s5h1420_setfreqoffset_fndecl_46564 s5h1420_setfreqoffset fndecl 2 46564 &disable_so_ext_start_addr_i740fb_par_46564
143385 +disable_so_find_first_zero_bit_fndecl_46567 find_first_zero_bit fndecl 0-2 46567 NULL
143386 +disable_so_ahd_print_register_fndecl_46568 ahd_print_register fndecl 5 46568 NULL
143387 +disable_so_uid_autofs_v5_packet_46569 uid autofs_v5_packet 0 46569 NULL nohasharray
143388 +disable_so_btrfs_find_delayed_ref_head_fndecl_46569 btrfs_find_delayed_ref_head fndecl 2 46569 &disable_so_uid_autofs_v5_packet_46569
143389 +disable_so_beacon_time_stamp_iwl_rx_phy_res_46571 beacon_time_stamp iwl_rx_phy_res 0 46571 NULL
143390 +disable_so_file_update_time_fndecl_46572 file_update_time fndecl 0 46572 NULL nohasharray
143391 +disable_so_mlx4_bitmap_avail_fndecl_46572 mlx4_bitmap_avail fndecl 0 46572 &disable_so_file_update_time_fndecl_46572
143392 +disable_so_lbase_mtrr_value_46577 lbase mtrr_value 0 46577 NULL
143393 +disable_so_frame_bits_snd_pcm_runtime_46580 frame_bits snd_pcm_runtime 0 46580 NULL
143394 +disable_so_mtrr_write_fndecl_46581 mtrr_write fndecl 3 46581 NULL
143395 +disable_so_dm_btree_find_key_fndecl_46584 dm_btree_find_key fndecl 0-2 46584 NULL
143396 +disable_so_timekeeping_set_tai_offset_fndecl_46587 timekeeping_set_tai_offset fndecl 1 46587 NULL
143397 +disable_so_di_tss_segment_16_46594 di tss_segment_16 0 46594 NULL
143398 +disable_so_tda10071_read_signal_strength_fndecl_46598 tda10071_read_signal_strength fndecl 0 46598 NULL
143399 +disable_so___ipv6_addr_diff64_fndecl_46599 __ipv6_addr_diff64 fndecl 0 46599 NULL
143400 +disable_so_ieee80211_runtime_change_iftype_fndecl_46603 ieee80211_runtime_change_iftype fndecl 0 46603 NULL
143401 +disable_so_get_cpu_idle_time_fndecl_46620 get_cpu_idle_time fndecl 1-0 46620 NULL
143402 +disable_so_max6900_i2c_set_time_fndecl_46626 max6900_i2c_set_time fndecl 0 46626 NULL nohasharray
143403 +disable_so_sha1_ctx_mgr_submit_fndecl_46626 sha1_ctx_mgr_submit fndecl 4 46626 &disable_so_max6900_i2c_set_time_fndecl_46626
143404 +disable_so_effective_len_mlx4_bitmap_46628 effective_len mlx4_bitmap 0 46628 NULL
143405 +disable_so_hours_v4l2_timecode_46630 hours v4l2_timecode 0 46630 NULL
143406 +disable_so_vivid_video_s_frequency_fndecl_46635 vivid_video_s_frequency fndecl 0 46635 NULL
143407 +disable_so_rtpm_active_time_show_fndecl_46638 rtpm_active_time_show fndecl 0 46638 NULL
143408 +disable_so___hw_addr_del_fndecl_46652 __hw_addr_del fndecl 0-3 46652 NULL
143409 +disable_so_lp8788_select_buck_vout_addr_fndecl_46658 lp8788_select_buck_vout_addr fndecl 0-2 46658 NULL
143410 +disable_so___flow_hash_from_keys_fndecl_46659 __flow_hash_from_keys fndecl 0 46659 NULL
143411 +disable_so_addrconf_prefix_route_fndecl_46665 addrconf_prefix_route fndecl 2 46665 NULL
143412 +disable_so_bmg160_runtime_resume_fndecl_46671 bmg160_runtime_resume fndecl 0 46671 NULL
143413 +disable_so_msg_ctime_msqid64_ds_46672 msg_ctime msqid64_ds 0 46672 NULL
143414 +disable_so_pvclock_scale_delta_fndecl_46676 pvclock_scale_delta fndecl 0 46676 NULL
143415 +disable_so_rtsx_usb_switch_clock_fndecl_46677 rtsx_usb_switch_clock fndecl 3-2-0 46677 NULL
143416 +disable_so_kstrtouint_fndecl_46682 kstrtouint fndecl 0 46682 NULL
143417 +disable_so_read_addr_qla82xx_md_entry_queue_46684 read_addr qla82xx_md_entry_queue 0 46684 NULL
143418 +disable_so_depth_blk_align_bitmap_46713 depth blk_align_bitmap 0 46713 NULL
143419 +disable_so_sysctl_aarp_resolve_time_vardecl_46714 sysctl_aarp_resolve_time vardecl 0 46714 NULL nohasharray
143420 +disable_so_zd_iowrite16_locked_fndecl_46714 zd_iowrite16_locked fndecl 0 46714 &disable_so_sysctl_aarp_resolve_time_vardecl_46714
143421 +disable_so_rio_addr_tsi721_tx_desc_46721 rio_addr tsi721_tx_desc 0 46721 NULL
143422 +disable_so_addr_mv_sg_46722 addr mv_sg 0 46722 NULL
143423 +disable_so_plat_get_static_power_cpufreq_cooling_device_46723 plat_get_static_power cpufreq_cooling_device 3 46723 NULL
143424 +disable_so_ebitmap_get_bit_fndecl_46726 ebitmap_get_bit fndecl 2 46726 NULL
143425 +disable_so_st_mtime_compat_stat_46734 st_mtime compat_stat 0 46734 NULL
143426 +disable_so_fw_core_add_address_handler_fndecl_46736 fw_core_add_address_handler fndecl 0 46736 NULL
143427 +disable_so_spc_timelimit_qc_type_state_46739 spc_timelimit qc_type_state 0 46739 NULL
143428 +disable_so_tcp_v4_md5_hash_pseudoheader_fndecl_46749 tcp_v4_md5_hash_pseudoheader fndecl 4 46749 NULL
143429 +disable_so_bfa_get_log_time_fndecl_46750 bfa_get_log_time fndecl 0 46750 NULL
143430 +disable_so_ghash_async_final_fndecl_46752 ghash_async_final fndecl 0 46752 NULL
143431 +disable_so_sadb_address_proto_sadb_address_46755 sadb_address_proto sadb_address 0 46755 NULL
143432 +disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763 hard_use_expires_seconds xfrm_lifetime_cfg 0 46763 NULL nohasharray
143433 +disable_so_addrtype_mt_init_fndecl_46763 addrtype_mt_init fndecl 0 46763 &disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763
143434 +disable_so_ipv6_addr_label_init_fndecl_46770 ipv6_addr_label_init fndecl 0 46770 NULL
143435 +disable_so_nbytes_ccp_sha_req_ctx_46772 nbytes ccp_sha_req_ctx 0 46772 NULL
143436 +disable_so_dr_addr_qla4_83xx_quad_entry_46781 dr_addr qla4_83xx_quad_entry 0 46781 NULL
143437 +disable_so_s_csaddr_ufs_sb_private_info_46789 s_csaddr ufs_sb_private_info 0 46789 NULL
143438 +disable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 0 46792 NULL
143439 +disable_so_qce_crypto_driver_init_fndecl_46810 qce_crypto_driver_init fndecl 0 46810 NULL
143440 +disable_so_uuid_tree_generation_btrfs_super_block_46815 uuid_tree_generation btrfs_super_block 0 46815 NULL
143441 +disable_so_panel_pwr_delay_radeon_encoder_lvds_46816 panel_pwr_delay radeon_encoder_lvds 0 46816 NULL
143442 +disable_so_lambda__fll_div_46826 lambda _fll_div 0 46826 NULL
143443 +disable_so_pre_div__pll_div_46827 pre_div _pll_div 0 46827 NULL
143444 +disable_so_paging32_walk_addr_generic_fndecl_46828 paging32_walk_addr_generic fndecl 4-5 46828 NULL
143445 +disable_so_timeout_brcmf_btcoex_info_46840 timeout brcmf_btcoex_info 0 46840 NULL
143446 +disable_so_toshiba_sleep_functions_status_set_fndecl_46848 toshiba_sleep_functions_status_set fndecl 0 46848 NULL
143447 +disable_so_i_gid_exofs_fcb_46849 i_gid exofs_fcb 0 46849 NULL
143448 +disable_so_mounted_uid_compat_ncp_fs_info_v2_46851 mounted_uid compat_ncp_fs_info_v2 0 46851 NULL
143449 +disable_so_ecryptfs_process_key_cipher_fndecl_46863 ecryptfs_process_key_cipher fndecl 0 46863 NULL
143450 +disable_so_tuner_address_stb6100_config_46865 tuner_address stb6100_config 0 46865 NULL
143451 +disable_so_clk_div_ti_tscadc_dev_46872 clk_div ti_tscadc_dev 0 46872 NULL
143452 +disable_so_last_change_time_lpfc_nodelist_46878 last_change_time lpfc_nodelist 0 46878 NULL
143453 +disable_so_addr_mthca_catas_err_46893 addr mthca_catas_err 0 46893 NULL
143454 +disable_so_card_snd_timer_ginfo_46895 card snd_timer_ginfo 0 46895 NULL
143455 +disable_so_svm_set_tsc_khz_fndecl_46900 svm_set_tsc_khz fndecl 2 46900 NULL
143456 +disable_so_buffer_addr_atl1c_tpd_desc_46908 buffer_addr atl1c_tpd_desc 0 46908 NULL
143457 +disable_so_last_expires_snd_timer_system_private_46917 last_expires snd_timer_system_private 0 46917 NULL
143458 +disable_so___arch_hweight16_fndecl_46932 __arch_hweight16 fndecl 0-1 46932 NULL
143459 +disable_so_clockevent_delta2ns_fndecl_46934 clockevent_delta2ns fndecl 1-0 46934 NULL
143460 +disable_so_addr_PVSCSISGElement_46942 addr PVSCSISGElement 0 46942 NULL nohasharray
143461 +disable_so_bg_inode_bitmap_hi_ext4_group_desc_46942 bg_inode_bitmap_hi ext4_group_desc 0 46942 &disable_so_addr_PVSCSISGElement_46942
143462 +disable_so_ai_clkctl_fast_pwrup_delay_fndecl_46950 ai_clkctl_fast_pwrup_delay fndecl 0 46950 NULL
143463 +disable_so_demod_address_mb86a20s_config_46954 demod_address mb86a20s_config 0 46954 NULL
143464 +disable_so_ebitmap_set_bit_fndecl_46955 ebitmap_set_bit fndecl 0-2 46955 NULL
143465 +disable_so_set_eth_addr_fndecl_46958 set_eth_addr fndecl 0 46958 NULL
143466 +disable_so_ghash_async_setkey_fndecl_46962 ghash_async_setkey fndecl 0-3 46962 NULL
143467 +disable_so_hid_time_platform_driver_init_fndecl_46963 hid_time_platform_driver_init fndecl 0 46963 NULL
143468 +disable_so_ad9523_set_clock_provider_fndecl_46979 ad9523_set_clock_provider fndecl 2-0-3 46979 NULL
143469 +disable_so_pbl_addr_tpt_attributes_46980 pbl_addr tpt_attributes 0 46980 NULL
143470 +disable_so_ts_dev_1_peak_time_ref_46981 ts_dev_1 peak_time_ref 0 46981 NULL
143471 +disable_so_buff_phy_addr_amd8111e_rx_dr_46984 buff_phy_addr amd8111e_rx_dr 0 46984 NULL
143472 +disable_so_scan_index_timestamp_iio_dev_46989 scan_index_timestamp iio_dev 0 46989 NULL
143473 +disable_so_ceph_str_hash_linux_fndecl_46991 ceph_str_hash_linux fndecl 0-2 46991 NULL
143474 +disable_so_compq_addr_hi_addr_ctrl_blk_46993 compq_addr_hi addr_ctrl_blk 0 46993 NULL
143475 +disable_so_ctime_sec_ubifs_ino_node_46994 ctime_sec ubifs_ino_node 0 46994 NULL
143476 +disable_so_ring_addr_fe_priv_46998 ring_addr fe_priv 0 46998 NULL
143477 +disable_so_scratch_addr_dwc3_47001 scratch_addr dwc3 0 47001 NULL
143478 +disable_so_be_vf_eth_addr_config_fndecl_47005 be_vf_eth_addr_config fndecl 0 47005 NULL
143479 +disable_so_timeout_pardevice_47010 timeout pardevice 0 47010 NULL
143480 +disable_so_crypto_aes_set_key_fndecl_47018 crypto_aes_set_key fndecl 3 47018 NULL
143481 +disable_so_esp_cur_dma_addr_fndecl_47025 esp_cur_dma_addr fndecl 0 47025 NULL
143482 +disable_so_ba1_addr_snd_cs46xx_47035 ba1_addr snd_cs46xx 0 47035 NULL
143483 +disable_so_decode_bitmap_c_fndecl_47038 decode_bitmap_c fndecl 0-4 47038 NULL
143484 +disable_so_NCR5380_set_timer_fndecl_47039 NCR5380_set_timer fndecl 2 47039 NULL
143485 +disable_so_schedule_copy_fndecl_47040 schedule_copy fndecl 2-4-5-8 47040 NULL
143486 +disable_so_ipath_sdma_abort_jiffies_ipath_devdata_47057 ipath_sdma_abort_jiffies ipath_devdata 0 47057 NULL nohasharray
143487 +disable_so_rpi_paddr_hi_lpfc_mbx_post_hdr_tmpl_47057 rpi_paddr_hi lpfc_mbx_post_hdr_tmpl 0 47057 &disable_so_ipath_sdma_abort_jiffies_ipath_devdata_47057
143488 +disable_so_address_acpi_dmar_hardware_unit_47065 address acpi_dmar_hardware_unit 0 47065 NULL
143489 +disable_so_try_address_fndecl_47083 try_address fndecl 2-3 47083 NULL
143490 +disable_so_mclk_freq_codec_priv_47084 mclk_freq codec_priv 0 47084 NULL
143491 +disable_so_diva_os_get_pci_bus_fndecl_47095 diva_os_get_pci_bus fndecl 0 47095 NULL
143492 +disable_so_shm_atime_shmid64_ds_47100 shm_atime shmid64_ds 0 47100 NULL
143493 +disable_so_tag_reg_addr_qla8044_minidump_entry_cache_47106 tag_reg_addr qla8044_minidump_entry_cache 0 47106 NULL
143494 +disable_so_timestamp_hi_mlx4_ts_cqe_47113 timestamp_hi mlx4_ts_cqe 0 47113 NULL nohasharray
143495 +disable_so_pcap_rtc_read_time_fndecl_47113 pcap_rtc_read_time fndecl 0 47113 &disable_so_timestamp_hi_mlx4_ts_cqe_47113
143496 +disable_so_xircom_interrupt_fndecl_47114 xircom_interrupt fndecl 1 47114 NULL
143497 +disable_so_atombios_crtc_set_base_atomic_fndecl_47122 atombios_crtc_set_base_atomic fndecl 0-3-4 47122 NULL
143498 +disable_so_ath5k_eeprom_init_11a_pcal_freq_fndecl_47134 ath5k_eeprom_init_11a_pcal_freq fndecl 0 47134 NULL
143499 +disable_so_tcs3472_show_int_time_available_fndecl_47135 tcs3472_show_int_time_available fndecl 0 47135 NULL
143500 +disable_so_freq_cx88_core_47137 freq cx88_core 0 47137 NULL
143501 +disable_so_gen6_signal_fndecl_47138 gen6_signal fndecl 0-2 47138 NULL
143502 +disable_so_wlc_lcnphy_rx_signal_power_fndecl_47140 wlc_lcnphy_rx_signal_power fndecl 0 47140 NULL
143503 +disable_so_sq_size_log2_t3_wq_47146 sq_size_log2 t3_wq 0 47146 NULL
143504 +disable_so_rht_head_hashfn_fndecl_47148 rht_head_hashfn fndecl 0 47148 NULL
143505 +disable_so_core_frequency_acpi_processor_px_47149 core_frequency acpi_processor_px 0 47149 NULL
143506 +disable_so_nilfs_btree_do_lookup_last_fndecl_47151 nilfs_btree_do_lookup_last fndecl 0 47151 NULL
143507 +disable_so_last_intr_timestamp_ctlr_info_47154 last_intr_timestamp ctlr_info 0 47154 NULL
143508 +disable_so_curr_freq_rt2x00_dev_47156 curr_freq rt2x00_dev 0 47156 NULL
143509 +disable_so_uid_cf_mod_47160 uid cf_mod 0 47160 NULL
143510 +disable_so_rem_mceusb_dev_47168 rem mceusb_dev 0 47168 NULL
143511 +disable_so_lpphy_qdiv_roundup_fndecl_47185 lpphy_qdiv_roundup fndecl 0-2-1 47185 NULL
143512 +disable_so_start_phys_addr_qxl_memslot_47196 start_phys_addr qxl_memslot 0 47196 NULL
143513 +disable_so_update_ia32_tsc_adjust_msr_fndecl_47211 update_ia32_tsc_adjust_msr fndecl 2 47211 NULL
143514 +disable_so_radeon_atom_set_engine_clock_fndecl_47215 radeon_atom_set_engine_clock fndecl 2 47215 NULL
143515 +disable_so_mtt_base_addr_l_mlx4_qp_context_47232 mtt_base_addr_l mlx4_qp_context 0 47232 NULL
143516 +disable_so_mtt_base_addr_h_mlx4_srq_context_47233 mtt_base_addr_h mlx4_srq_context 0 47233 NULL
143517 +disable_so_init_cpufreq_driver_47242 init cpufreq_driver 0 47242 NULL
143518 +disable_so_gpio_nsleep_auok190x_board_47243 gpio_nsleep auok190x_board 0 47243 NULL
143519 +disable_so_il4965_count_chain_bitmap_fndecl_47252 il4965_count_chain_bitmap fndecl 0-1 47252 NULL
143520 +disable_so_fl_downgrade_time_file_lock_47257 fl_downgrade_time file_lock 0 47257 NULL
143521 +disable_so_get_low_record_time_index_fndecl_47259 get_low_record_time_index fndecl 2 47259 NULL
143522 +disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266 efx_ptp_get_timestamp_corrections fndecl 0 47266 NULL nohasharray
143523 +disable_so_hactive_timing_47266 hactive timing 0 47266 &disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266
143524 +disable_so_feedback_divider_aty128_pll_47275 feedback_divider aty128_pll 0 47275 NULL
143525 +disable_so_daddr_max_pktgen_dev_47293 daddr_max pktgen_dev 0 47293 NULL
143526 +disable_so_addr_ce_desc_47294 addr ce_desc 0 47294 NULL
143527 +disable_so_val_addr0_nphy_rf_control_override_rev3_47315 val_addr0 nphy_rf_control_override_rev3 0 47315 NULL
143528 +disable_so_SYSC_time_fndecl_47318 SYSC_time fndecl 0 47318 NULL
143529 +disable_so_device_addr_hw_cmd_47322 device_addr hw_cmd 0 47322 NULL
143530 +disable_so_cryptd_hash_init_fndecl_47329 cryptd_hash_init fndecl 2 47329 NULL
143531 +disable_so_hpfs_add_sector_to_btree_fndecl_47344 hpfs_add_sector_to_btree fndecl 0-2-4 47344 NULL
143532 +disable_so_vref_delay_usecs_ad7877_47346 vref_delay_usecs ad7877 0 47346 NULL
143533 +disable_so_jiftime_fndecl_47359 jiftime fndecl 2 47359 NULL
143534 +disable_so_year_timestamp_47377 year timestamp 0 47377 NULL
143535 +disable_so_rt_runtime_rt_bandwidth_47380 rt_runtime rt_bandwidth 0 47380 NULL
143536 +disable_so_team_port_set_orig_dev_addr_fndecl_47381 team_port_set_orig_dev_addr fndecl 0 47381 NULL
143537 +disable_so_ldt_selector_tss_segment_32_47382 ldt_selector tss_segment_32 0 47382 NULL
143538 +disable_so_atomic_check_drm_plane_helper_funcs_47383 atomic_check drm_plane_helper_funcs 0 47383 NULL
143539 +disable_so_ath9k_hw_set_global_txtimeout_fndecl_47387 ath9k_hw_set_global_txtimeout fndecl 2 47387 NULL
143540 +disable_so_crypto_blkcipher_setkey_fndecl_47393 crypto_blkcipher_setkey fndecl 0-3 47393 NULL
143541 +disable_so_signal_libipw_rx_stats_47394 signal libipw_rx_stats 0 47394 NULL
143542 +disable_so_wm831x_rtc_readtime_fndecl_47406 wm831x_rtc_readtime fndecl 0 47406 NULL nohasharray
143543 +disable_so_reg_write_fndecl_47406 reg_write fndecl 2 47406 &disable_so_wm831x_rtc_readtime_fndecl_47406
143544 +disable_so_rx_int_delay_e1000_adapter_47412 rx_int_delay e1000_adapter 0 47412 NULL
143545 +disable_so_watchdog_timeo_net_device_47415 watchdog_timeo net_device 0 47415 NULL
143546 +disable_so_m_hi_cfg_bridge_delay_drxk_state_47416 m_hi_cfg_bridge_delay drxk_state 0 47416 NULL
143547 +disable_so_xfs_btree_get_rec_fndecl_47417 xfs_btree_get_rec fndecl 0 47417 NULL
143548 +disable_so_del_timer_fndecl_47421 del_timer fndecl 0 47421 NULL
143549 +disable_so_cq_dma_addr_nvme_queue_47424 cq_dma_addr nvme_queue 0 47424 NULL nohasharray
143550 +disable_so_pci_bus_write_config_byte_fndecl_47424 pci_bus_write_config_byte fndecl 0-2-3-4 47424 &disable_so_cq_dma_addr_nvme_queue_47424
143551 +disable_so_printk_timed_ratelimit_fndecl_47432 printk_timed_ratelimit fndecl 2 47432 NULL
143552 +disable_so_addr_high_bufq_addr_element_47437 addr_high bufq_addr_element 0 47437 NULL
143553 +disable_so_snd_seq_oss_timer_tempo_fndecl_47444 snd_seq_oss_timer_tempo fndecl 0 47444 NULL
143554 +disable_so_radeon_atom_get_memory_pll_dividers_fndecl_47447 radeon_atom_get_memory_pll_dividers fndecl 0-2 47447 NULL
143555 +disable_so_vdi_atime_vxfs_inode_info_47463 vdi_atime vxfs_inode_info 0 47463 NULL nohasharray
143556 +disable_so_timestamp_iwl_priv_47463 timestamp iwl_priv 0 47463 &disable_so_vdi_atime_vxfs_inode_info_47463
143557 +disable_so_ts_steal_jiffies_gru_thread_state_47477 ts_steal_jiffies gru_thread_state 0 47477 NULL
143558 +disable_so_brcms_c_set_addrmatch_fndecl_47479 brcms_c_set_addrmatch fndecl 2 47479 NULL
143559 +disable_so_cia_max_keysize_cipher_alg_47480 cia_max_keysize cipher_alg 0 47480 NULL
143560 +disable_so_inet_addr_type_fndecl_47499 inet_addr_type fndecl 2 47499 NULL
143561 +disable_so_sd_atime_stat_data_47502 sd_atime stat_data 0 47502 NULL
143562 +disable_so_tcf_hash_create_fndecl_47512 tcf_hash_create fndecl 0-4 47512 NULL
143563 +disable_so_addr_low_ssp_ini_io_start_req_47520 addr_low ssp_ini_io_start_req 0 47520 NULL nohasharray
143564 +disable_so_mlx4_bitmap_free_range_fndecl_47520 mlx4_bitmap_free_range fndecl 2-3 47520 &disable_so_addr_low_ssp_ini_io_start_req_47520
143565 +disable_so___xfrm4_dpref_spref_hash_fndecl_47524 __xfrm4_dpref_spref_hash fndecl 0 47524 NULL
143566 +disable_so_error_info_addr_mvm_alive_resp_ver2_47529 error_info_addr mvm_alive_resp_ver2 0 47529 NULL
143567 +disable_so_idle_freq_intel_gen6_power_mgmt_47531 idle_freq intel_gen6_power_mgmt 0 47531 NULL
143568 +disable_so_regidx_ath9k_debug_47533 regidx ath9k_debug 0 47533 NULL
143569 +disable_so___delay_fndecl_47535 __delay fndecl 1 47535 NULL
143570 +disable_so_gid_vardecl_initramfs_c_47557 gid vardecl_initramfs.c 0 47557 NULL
143571 +disable_so_channel_freq_wmi_scan_ev_arg_47561 channel_freq wmi_scan_ev_arg 0 47561 NULL nohasharray
143572 +disable_so_rx_hash_log_tbl_sz_mlx5e_params_47561 rx_hash_log_tbl_sz mlx5e_params 0 47561 &disable_so_channel_freq_wmi_scan_ev_arg_47561
143573 +disable_so_addr_high_sata_start_req_47563 addr_high sata_start_req 0 47563 NULL nohasharray
143574 +disable_so_addr_pages_devres_47563 addr pages_devres 0 47563 &disable_so_addr_high_sata_start_req_47563
143575 +disable_so_min_align_snd_pcm_runtime_47579 min_align snd_pcm_runtime 0 47579 NULL nohasharray
143576 +disable_so_dev_set_mac_address_fndecl_47579 dev_set_mac_address fndecl 0 47579 &disable_so_min_align_snd_pcm_runtime_47579
143577 +disable_so_sip_sprintf_addr_port_fndecl_47581 sip_sprintf_addr_port fndecl 0-4 47581 NULL
143578 +disable_so_physical_addr_cper_sec_mem_err_47582 physical_addr cper_sec_mem_err 0 47582 NULL nohasharray
143579 +disable_so_log2taps_oslec_state_47582 log2taps oslec_state 0 47582 &disable_so_physical_addr_cper_sec_mem_err_47582
143580 +disable_so_rehash_time_sfb_sched_data_47586 rehash_time sfb_sched_data 0 47586 NULL nohasharray
143581 +disable_so_x25_parse_address_block_fndecl_47586 x25_parse_address_block fndecl 0 47586 &disable_so_rehash_time_sfb_sched_data_47586
143582 +disable_so_write_reg_fndecl_47589 write_reg fndecl 3-2 47589 NULL
143583 +disable_so_buffer_addr_tx_packet_desc_47592 buffer_addr tx_packet_desc 0 47592 NULL
143584 +disable_so_xfs_iomap_write_delay_fndecl_47595 xfs_iomap_write_delay fndecl 0-2-3 47595 NULL
143585 +disable_so_valleyview_rps_min_freq_fndecl_47598 valleyview_rps_min_freq fndecl 0 47598 NULL
143586 +disable_so_eft_addr_h_qla2xxx_fw_dump_47600 eft_addr_h qla2xxx_fw_dump 0 47600 NULL
143587 +disable_so_tms_cstime_tms_47604 tms_cstime tms 0 47604 NULL nohasharray
143588 +disable_so_btrfs_node_key_to_cpu_fndecl_47604 btrfs_node_key_to_cpu fndecl 3 47604 &disable_so_tms_cstime_tms_47604
143589 +disable_so_base_reg_regcache_rbtree_node_47612 base_reg regcache_rbtree_node 0 47612 NULL
143590 +disable_so_bd_list_addr_lo_bnx2i_cmd_request_47615 bd_list_addr_lo bnx2i_cmd_request 0 47615 NULL
143591 +disable_so_ltr501_ps_read_samp_freq_fndecl_47616 ltr501_ps_read_samp_freq fndecl 0 47616 NULL
143592 +disable_so_freq_pulse_event_47630 freq pulse_event 0 47630 NULL
143593 +disable_so_ixgbe_set_rss_hash_opt_fndecl_47632 ixgbe_set_rss_hash_opt fndecl 0 47632 NULL
143594 +disable_so_timeout_vardecl_hvc_console_c_47646 timeout vardecl_hvc_console.c 0 47646 NULL
143595 +disable_so_buffer_addr_e1000_tx_desc_47648 buffer_addr e1000_tx_desc 0 47648 NULL
143596 +disable_so_keyctl_set_timeout_fndecl_47649 keyctl_set_timeout fndecl 2-1-0 47649 NULL
143597 +disable_so_cfg80211_wext_siwfreq_fndecl_47653 cfg80211_wext_siwfreq fndecl 0 47653 NULL
143598 +disable_so_dw_wdt_time_left_fndecl_47654 dw_wdt_time_left fndecl 0 47654 NULL
143599 +disable_so_tstep_addr_palmas_regs_info_47657 tstep_addr palmas_regs_info 0 47657 NULL
143600 +disable_so_frac_period_rest_dummy_systimer_pcm_47674 frac_period_rest dummy_systimer_pcm 0 47674 NULL
143601 +disable_so_fill_bitmap_rle_bits_fndecl_47678 fill_bitmap_rle_bits fndecl 0 47678 NULL
143602 +disable_so_set_timebase_fndecl_47679 set_timebase fndecl 1 47679 NULL
143603 +disable_so_i2c_addr_tua9001_config_47682 i2c_addr tua9001_config 0 47682 NULL
143604 +disable_so_time_scan_survey_info_47684 time_scan survey_info 0 47684 NULL
143605 +disable_so_lzo_decompress_fndecl_47694 lzo_decompress fndecl 2 47694 NULL
143606 +disable_so_hsync_pulse_width_lvds_dvo_timing_47698 hsync_pulse_width lvds_dvo_timing 0 47698 NULL
143607 +disable_so_bdc_address_device_fndecl_47704 bdc_address_device fndecl 0-2 47704 NULL
143608 +disable_so_base_addr_ivtv_47705 base_addr ivtv 0 47705 NULL
143609 +disable_so_clock_start_soc_camera_host_ops_47707 clock_start soc_camera_host_ops 0 47707 NULL
143610 +disable_so_enum_dv_timings_v4l2_subdev_pad_ops_47708 enum_dv_timings v4l2_subdev_pad_ops 0 47708 NULL nohasharray
143611 +disable_so_crypto_authenc_esn_encrypt_fndecl_47708 crypto_authenc_esn_encrypt fndecl 0 47708 &disable_so_enum_dv_timings_v4l2_subdev_pad_ops_47708
143612 +disable_so_rv740_get_mclk_frequency_ratio_fndecl_47715 rv740_get_mclk_frequency_ratio fndecl 0-1 47715 NULL
143613 +disable_so_lola_set_clock_fndecl_47716 lola_set_clock fndecl 0 47716 NULL
143614 +disable_so_hid_rtc_read_time_fndecl_47725 hid_rtc_read_time fndecl 0 47725 NULL
143615 +disable_so_ext4_update_other_inodes_time_fndecl_47730 ext4_update_other_inodes_time fndecl 2 47730 NULL
143616 +disable_so_uartlite_inbe32_fndecl_47739 uartlite_inbe32 fndecl 0 47739 NULL
143617 +disable_so_tm_yday_rtc_time_47740 tm_yday rtc_time 0 47740 NULL
143618 +disable_so_snd_azf3328_timer_fndecl_47746 snd_azf3328_timer fndecl 0-2 47746 NULL
143619 +disable_so_pci_bus_atto_channel_info_47747 pci_bus atto_channel_info 0 47747 NULL
143620 +disable_so_control_addr_qla8044_minidump_entry_cache_47750 control_addr qla8044_minidump_entry_cache 0 47750 NULL
143621 +disable_so_bit_enables_uv1h_lb_target_physical_apic_id_mask_s_47755 bit_enables uv1h_lb_target_physical_apic_id_mask_s 0 47755 NULL
143622 +disable_so_tx_ring_dma_addr_amd8111e_priv_47757 tx_ring_dma_addr amd8111e_priv 0 47757 NULL
143623 +disable_so_frac_period_size_dummy_systimer_pcm_47758 frac_period_size dummy_systimer_pcm 0 47758 NULL
143624 +disable_so_inet6_addr_add_fndecl_47759 inet6_addr_add fndecl 0-2-5-7-8-6 47759 NULL
143625 +disable_so_initial_descriptor_timeout_vardecl_hub_c_47763 initial_descriptor_timeout vardecl_hub.c 0 47763 NULL
143626 +disable_so_nbytes_ccp_aes_cmac_req_ctx_47773 nbytes ccp_aes_cmac_req_ctx 0 47773 NULL
143627 +disable_so_account_idle_time_fndecl_47777 account_idle_time fndecl 1 47777 NULL
143628 +disable_so_ip_addr_nes_arp_entry_47790 ip_addr nes_arp_entry 0 47790 NULL
143629 +disable_so_sha1_generic_mod_init_fndecl_47800 sha1_generic_mod_init fndecl 0 47800 NULL
143630 +disable_so_nla_validate_nested_fndecl_47801 nla_validate_nested fndecl 2-0 47801 NULL
143631 +disable_so_enable_refdiv_dibx000_bandwidth_config_47815 enable_refdiv dibx000_bandwidth_config 0 47815 NULL
143632 +disable_so_demod_address_cx24123_config_47819 demod_address cx24123_config 0 47819 NULL
143633 +disable_so_alloc_usb_address_fndecl_47822 alloc_usb_address fndecl 0 47822 NULL
143634 +disable_so_compat_sys_signalfd_fndecl_47830 compat_sys_signalfd fndecl 0 47830 NULL
143635 +disable_so_silence_filled_snd_pcm_runtime_47852 silence_filled snd_pcm_runtime 0 47852 NULL nohasharray
143636 +disable_so_demod_addr_tm6000_core_47852 demod_addr tm6000_core 0 47852 &disable_so_silence_filled_snd_pcm_runtime_47852
143637 +disable_so___net_get_random_once_fndecl_47854 __net_get_random_once fndecl 2 47854 NULL
143638 +disable_so_add_device_randomness_fndecl_47860 add_device_randomness fndecl 2 47860 NULL nohasharray
143639 +disable_so_put_dec_trunc8_fndecl_47860 put_dec_trunc8 fndecl 2 47860 &disable_so_add_device_randomness_fndecl_47860
143640 +disable_so___ntfs_bitmap_set_bits_in_run_fndecl_47864 __ntfs_bitmap_set_bits_in_run fndecl 2-3 47864 NULL
143641 +disable_so_qce_ahash_digest_fndecl_47873 qce_ahash_digest fndecl 0 47873 NULL
143642 +disable_so_i_gid_f2fs_inode_47888 i_gid f2fs_inode 0 47888 NULL
143643 +disable_so_currentfreq_s921_state_47895 currentfreq s921_state 0 47895 NULL
143644 +disable_so_dma_ring_addr_i40e_virtchnl_rxq_info_47897 dma_ring_addr i40e_virtchnl_rxq_info 0 47897 NULL
143645 +disable_so_qla82xx_decode_crb_addr_fndecl_47901 qla82xx_decode_crb_addr fndecl 0-1 47901 NULL
143646 +disable_so_xtal_cap20p_r820t_freq_range_47903 xtal_cap20p r820t_freq_range 0 47903 NULL
143647 +disable_so_drbd_uuid_dump_fndecl_47904 drbd_uuid_dump fndecl 4 47904 NULL
143648 +disable_so_host_addr_gnttab_unmap_grant_ref_47911 host_addr gnttab_unmap_grant_ref 0 47911 NULL
143649 +disable_so_crypto_ccm_setkey_fndecl_47913 crypto_ccm_setkey fndecl 0-3 47913 NULL
143650 +disable_so_ipath_sdma_abort_intr_timeout_ipath_devdata_47922 ipath_sdma_abort_intr_timeout ipath_devdata 0 47922 NULL
143651 +disable_so_think_time_usb_tt_47928 think_time usb_tt 0 47928 NULL
143652 +disable_so_vaddr_ib_reth_47929 vaddr ib_reth 0 47929 NULL
143653 +disable_so_num_clock_sources_echoaudio_47930 num_clock_sources echoaudio 0 47930 NULL nohasharray
143654 +disable_so_shutdwn_delay_cs42l73_private_47930 shutdwn_delay cs42l73_private 0 47930 &disable_so_num_clock_sources_echoaudio_47930
143655 +disable_so_count_bitmaps_fndecl_47942 count_bitmaps fndecl 0 47942 NULL
143656 +disable_so_crypto_aead_ivsize_fndecl_47945 crypto_aead_ivsize fndecl 0 47945 NULL
143657 +disable_so_rs5c348_rtc_read_time_fndecl_47948 rs5c348_rtc_read_time fndecl 0 47948 NULL
143658 +disable_so_kvm_set_lapic_tscdeadline_msr_fndecl_47952 kvm_set_lapic_tscdeadline_msr fndecl 2 47952 NULL
143659 +disable_so_ext4_inode_bitmap_set_fndecl_47957 ext4_inode_bitmap_set fndecl 3 47957 NULL
143660 +disable_so_sysctl_llc2_busy_timeout_vardecl_47965 sysctl_llc2_busy_timeout vardecl 0 47965 NULL
143661 +disable_so_atl2_hash_mc_addr_fndecl_47966 atl2_hash_mc_addr fndecl 0 47966 NULL
143662 +disable_so_wm97xx_reg_write_fndecl_47973 wm97xx_reg_write fndecl 3-2 47973 NULL
143663 +disable_so_isci_setup_interrupts_fndecl_47977 isci_setup_interrupts fndecl 0 47977 NULL
143664 +disable_so_hdmi_mode_alternate_clock_fndecl_47981 hdmi_mode_alternate_clock fndecl 0 47981 NULL
143665 +disable_so_xhci_address_device_fndecl_47987 xhci_address_device fndecl 0 47987 NULL
143666 +disable_so_snd_timer_start1_fndecl_47992 snd_timer_start1 fndecl 3-0 47992 NULL
143667 +disable_so_timing_setup_fndecl_48002 timing_setup fndecl 3-4 48002 NULL
143668 +disable_so_clk_freq_g762_platform_data_48004 clk_freq g762_platform_data 0 48004 NULL
143669 +disable_so_sh_addralign_elf64_shdr_48012 sh_addralign elf64_shdr 0 48012 NULL nohasharray
143670 +disable_so_crypto_aead_reqsize_fndecl_48012 crypto_aead_reqsize fndecl 0 48012 &disable_so_sh_addralign_elf64_shdr_48012
143671 +disable_so_qlcnic_82xx_get_mac_address_fndecl_48015 qlcnic_82xx_get_mac_address fndecl 0 48015 NULL
143672 +disable_so_frequency_dvb_pll_priv_48016 frequency dvb_pll_priv 0 48016 NULL
143673 +disable_so_i915_min_freq_set_fndecl_48019 i915_min_freq_set fndecl 2-0 48019 NULL
143674 +disable_so_slave_addr_psb_intel_sdvo_48022 slave_addr psb_intel_sdvo 0 48022 NULL
143675 +disable_so_si_get_ddr3_mclk_frequency_ratio_fndecl_48025 si_get_ddr3_mclk_frequency_ratio fndecl 0-1 48025 NULL
143676 +disable_so_lgdt3306a_fe_sleep_fndecl_48026 lgdt3306a_fe_sleep fndecl 0 48026 NULL
143677 +disable_so_ctnl_timeout_fill_info_fndecl_48030 ctnl_timeout_fill_info fndecl 3-5-0-2 48030 NULL
143678 +disable_so_r69_val_fc2580_freq_regs_48037 r69_val fc2580_freq_regs 0 48037 NULL nohasharray
143679 +disable_so_btree_lookup32_fndecl_48037 btree_lookup32 fndecl 2 48037 &disable_so_r69_val_fc2580_freq_regs_48037
143680 +disable_so_reservation_object_wait_timeout_rcu_fndecl_48039 reservation_object_wait_timeout_rcu fndecl 0-4 48039 NULL
143681 +disable_so_utimescaled_task_struct_48041 utimescaled task_struct 0 48041 NULL
143682 +disable_so_hrtimer_init_fndecl_48048 hrtimer_init fndecl 2 48048 NULL
143683 +disable_so_regmap_bulk_write_fndecl_48058 regmap_bulk_write fndecl 0-2-4 48058 NULL
143684 +disable_so_rt_saddr_dn_route_48062 rt_saddr dn_route 0 48062 NULL
143685 +disable_so_ring_interrupt_index_fndecl_48065 ring_interrupt_index fndecl 0 48065 NULL nohasharray
143686 +disable_so_dclk_freq_i7core_pvt_48065 dclk_freq i7core_pvt 0 48065 &disable_so_ring_interrupt_index_fndecl_48065
143687 +disable_so_di_atime_gfs2_dinode_48066 di_atime gfs2_dinode 0 48066 NULL
143688 +disable_so_be32_add_cpu_fndecl_48069 be32_add_cpu fndecl 2 48069 NULL
143689 +disable_so_keepalive_time_tcp_sock_48076 keepalive_time tcp_sock 0 48076 NULL nohasharray
143690 +disable_so_mptscsih_get_tm_timeout_fndecl_48076 mptscsih_get_tm_timeout fndecl 0 48076 &disable_so_keepalive_time_tcp_sock_48076
143691 +disable_so_set_channel_address_fndecl_48079 set_channel_address fndecl 2-3 48079 NULL
143692 +disable_so_clock_vardecl_max6650_c_48080 clock vardecl_max6650.c 0 48080 NULL
143693 +disable_so_mapped_loc_addr_nes_cm_node_48083 mapped_loc_addr nes_cm_node 0 48083 NULL
143694 +disable_so___br_ip6_hash_fndecl_48084 __br_ip6_hash fndecl 0 48084 NULL
143695 +disable_so_si4713_tx_tune_freq_fndecl_48092 si4713_tx_tune_freq fndecl 0-2 48092 NULL
143696 +disable_so_wait_for_completion_killable_timeout_fndecl_48103 wait_for_completion_killable_timeout fndecl 2-0 48103 NULL
143697 +disable_so_lpfc_max_scsicmpl_time_init_fndecl_48110 lpfc_max_scsicmpl_time_init fndecl 2 48110 NULL
143698 +disable_so_lib80211_register_crypto_ops_fndecl_48112 lib80211_register_crypto_ops fndecl 0 48112 NULL
143699 +disable_so_get_error_address_fndecl_48129 get_error_address fndecl 0 48129 NULL nohasharray
143700 +disable_so_sfreq_sst_byt_pcm_params_48129 sfreq sst_byt_pcm_params 0 48129 &disable_so_get_error_address_fndecl_48129
143701 +disable_so_vsync_off_lvds_dvo_timing_48134 vsync_off lvds_dvo_timing 0 48134 NULL
143702 +disable_so_transop_timeout_ipr_ioa_cfg_48141 transop_timeout ipr_ioa_cfg 0 48141 NULL
143703 +disable_so_addrconf_prefix_rcv_fndecl_48148 addrconf_prefix_rcv fndecl 3 48148 NULL
143704 +disable_so_copied_seq_tcp_sock_48149 copied_seq tcp_sock 0 48149 NULL
143705 +disable_so_pm_autosleep_set_state_fndecl_48154 pm_autosleep_set_state fndecl 0 48154 NULL
143706 +disable_so_mlx4_en_read_clock_fndecl_48159 mlx4_en_read_clock fndecl 0 48159 NULL
143707 +disable_so_ipmi_request_settime_fndecl_48166 ipmi_request_settime fndecl 0 48166 NULL
143708 +disable_so_atime_p9_wstat_48170 atime p9_wstat 0 48170 NULL
143709 +disable_so_sys_mq_timedsend_fndecl_48174 sys_mq_timedsend fndecl 3-1 48174 NULL
143710 +disable_so_td_base_addr_c67x00_hcd_48184 td_base_addr c67x00_hcd 0 48184 NULL
143711 +disable_so_mca_tstamp_ifmcaddr6_48186 mca_tstamp ifmcaddr6 0 48186 NULL
143712 +disable_so_tobe_rx_coal_timeval_vnic_cq_48199 tobe_rx_coal_timeval vnic_cq 0 48199 NULL nohasharray
143713 +disable_so_read_msr_fndecl_48199 read_msr fndecl 0 48199 &disable_so_tobe_rx_coal_timeval_vnic_cq_48199
143714 +disable_so_main_blkaddr_f2fs_sm_info_48201 main_blkaddr f2fs_sm_info 0 48201 NULL
143715 +disable_so_doorbell_physical_address_kgd2kfd_shared_resources_48202 doorbell_physical_address kgd2kfd_shared_resources 0 48202 NULL
143716 +disable_so_aa_fs_seq_hash_open_fndecl_48204 aa_fs_seq_hash_open fndecl 0 48204 NULL
143717 +disable_so_skcipher_all_sg_nents_fndecl_48207 skcipher_all_sg_nents fndecl 0 48207 NULL
143718 +disable_so_addr_r10dev_48214 addr r10dev 0 48214 NULL
143719 +disable_so_btc_set_ulv_dram_timing_fndecl_48216 btc_set_ulv_dram_timing fndecl 0 48216 NULL
143720 +disable_so_gid_btrfs_inode_item_48221 gid btrfs_inode_item 0 48221 NULL
143721 +disable_so_time_offset_vardecl_ntp_c_48224 time_offset vardecl_ntp.c 0 48224 NULL
143722 +disable_so_bitmaps_hpfs_super_block_48227 bitmaps hpfs_super_block 0 48227 NULL
143723 +disable_so_tpg_hdiv_fndecl_48235 tpg_hdiv fndecl 0-3 48235 NULL
143724 +disable_so_nextmsg_time_vardecl_ipath_intr_c_48236 nextmsg_time vardecl_ipath_intr.c 0 48236 NULL
143725 +disable_so_src_bitmap_qxl_copy_48243 src_bitmap qxl_copy 0 48243 NULL nohasharray
143726 +disable_so_btree_split_sibling_fndecl_48243 btree_split_sibling fndecl 0-3 48243 &disable_so_src_bitmap_qxl_copy_48243
143727 +disable_so_sm1_runtime_sc_48251 sm1 runtime_sc 0 48251 NULL nohasharray
143728 +disable_so_r6f_val_fc2580_freq_regs_48251 r6f_val fc2580_freq_regs 0 48251 &disable_so_sm1_runtime_sc_48251
143729 +disable_so_dp_daddr_rds_iw_connect_private_48258 dp_daddr rds_iw_connect_private 0 48258 NULL nohasharray
143730 +disable_so_ceph_dentry_hash_fndecl_48258 ceph_dentry_hash fndecl 0 48258 &disable_so_dp_daddr_rds_iw_connect_private_48258
143731 +disable_so_tm_delta_smt_timer_48263 tm_delta smt_timer 0 48263 NULL nohasharray
143732 +disable_so_enabled_hrtimer_events_ehci_hcd_48263 enabled_hrtimer_events ehci_hcd 0 48263 &disable_so_tm_delta_smt_timer_48263
143733 +disable_so_clock_task_rq_48277 clock_task rq 0 48277 NULL
143734 +disable_so_ui_mtime_ufs2_inode_48286 ui_mtime ufs2_inode 0 48286 NULL
143735 +disable_so_sumo_parse_pplib_clock_info_fndecl_48288 sumo_parse_pplib_clock_info fndecl 3 48288 NULL
143736 +disable_so_crypto_shash_final_fndecl_48296 crypto_shash_final fndecl 0 48296 NULL
143737 +disable_so_tproxy_handle_time_wait4_fndecl_48305 tproxy_handle_time_wait4 fndecl 2-3 48305 NULL
143738 +disable_so_timeout_pg_48333 timeout pg 0 48333 NULL
143739 +disable_so_set_next_event_clock_event_device_48353 set_next_event clock_event_device 1 48353 NULL
143740 +disable_so_VCOdivider_cx24123_bandselect_val_48358 VCOdivider cx24123_bandselect_val 0 48358 NULL
143741 +disable_so_pch_mac_start_address_pch_phub_reg_48361 pch_mac_start_address pch_phub_reg 0 48361 NULL nohasharray
143742 +disable_so_dib8000_write_word_fndecl_48361 dib8000_write_word fndecl 2-3 48361 &disable_so_pch_mac_start_address_pch_phub_reg_48361
143743 +disable_so_skcipher_wait_for_wmem_fndecl_48362 skcipher_wait_for_wmem fndecl 0-2 48362 NULL
143744 +disable_so_num_mc_addrs_ixgb_hw_48363 num_mc_addrs ixgb_hw 0 48363 NULL
143745 +disable_so_timeout_net_conf_48365 timeout net_conf 0 48365 NULL
143746 +disable_so_last_awake_jiffies_rtl_ps_ctl_48378 last_awake_jiffies rtl_ps_ctl 0 48378 NULL
143747 +disable_so_mphash_entries_vardecl_namespace_c_48379 mphash_entries vardecl_namespace.c 0 48379 NULL
143748 +disable_so_dbs_freq_increase_fndecl_48380 dbs_freq_increase fndecl 2 48380 NULL nohasharray
143749 +disable_so_crypto_register_rngs_fndecl_48380 crypto_register_rngs fndecl 0 48380 &disable_so_dbs_freq_increase_fndecl_48380
143750 +disable_so_lgdt3306a_read_signal_strength_fndecl_48382 lgdt3306a_read_signal_strength fndecl 0 48382 NULL
143751 +disable_so_di_atime_efs_dinode_48386 di_atime efs_dinode 0 48386 NULL
143752 +disable_so_iscsi_nacl_attrib_show_nopin_timeout_fndecl_48391 iscsi_nacl_attrib_show_nopin_timeout fndecl 0 48391 NULL
143753 +disable_so_update_streaming_control_runtime_48422 update_streaming control_runtime 0 48422 NULL
143754 +disable_so_setpolicy_cpufreq_driver_48433 setpolicy cpufreq_driver 0 48433 NULL
143755 +disable_so_clockid_timerfd_ctx_48442 clockid timerfd_ctx 0 48442 NULL
143756 +disable_so_set_bau_on_time_bau_control_48444 set_bau_on_time bau_control 0 48444 NULL nohasharray
143757 +disable_so_vclk_post_div_pll_ct_48444 vclk_post_div pll_ct 0 48444 &disable_so_set_bau_on_time_bau_control_48444
143758 +disable_so_test_acipher_jiffies_fndecl_48452 test_acipher_jiffies fndecl 0 48452 NULL
143759 +disable_so_radio_syn_reserved_addr27_b43_nphy_channeltab_entry_rev3_48453 radio_syn_reserved_addr27 b43_nphy_channeltab_entry_rev3 0 48453 NULL
143760 +disable_so_fan_timer_f75375_data_48461 fan_timer f75375_data 0 48461 NULL nohasharray
143761 +disable_so_address_ksm_scan_48461 address ksm_scan 0 48461 &disable_so_fan_timer_f75375_data_48461
143762 +disable_so_elements_bitmap_port_48466 elements bitmap_port 0 48466 NULL
143763 +disable_so_zd_chip_read_mac_addr_fw_fndecl_48469 zd_chip_read_mac_addr_fw fndecl 0 48469 NULL
143764 +disable_so___round_jiffies_up_relative_fndecl_48487 __round_jiffies_up_relative fndecl 2-1-0 48487 NULL
143765 +disable_so_gfs2_disk_hash_fndecl_48491 gfs2_disk_hash fndecl 2 48491 NULL
143766 +disable_so_max6900_rtc_read_time_fndecl_48493 max6900_rtc_read_time fndecl 0 48493 NULL nohasharray
143767 +disable_so_bsscfgidx_brcmf_mbss_ssid_le_48493 bsscfgidx brcmf_mbss_ssid_le 0 48493 &disable_so_max6900_rtc_read_time_fndecl_48493
143768 +disable_so_kvm_set_tsc_khz_fndecl_48520 kvm_set_tsc_khz fndecl 2 48520 NULL
143769 +disable_so_rx8025_set_time_fndecl_48524 rx8025_set_time fndecl 0 48524 NULL
143770 +disable_so_usbvision_stream_interrupt_fndecl_48527 usbvision_stream_interrupt fndecl 0 48527 NULL nohasharray
143771 +disable_so_ip_vs_lblc_hashkey_fndecl_48527 ip_vs_lblc_hashkey fndecl 1 48527 &disable_so_usbvision_stream_interrupt_fndecl_48527
143772 +disable_so_timeout_cm_av_48528 timeout cm_av 0 48528 NULL nohasharray
143773 +disable_so_ww_mutex_lock_slow_interruptible_fndecl_48528 ww_mutex_lock_slow_interruptible fndecl 0 48528 &disable_so_timeout_cm_av_48528
143774 +disable_so___rmid_queue_time_ms_vardecl_perf_event_intel_cqm_c_48542 __rmid_queue_time_ms vardecl_perf_event_intel_cqm.c 0 48542 NULL
143775 +disable_so_blk_addr_node_info_48545 blk_addr node_info 0 48545 NULL
143776 +disable_so_SYSC_sched_getscheduler_fndecl_48547 SYSC_sched_getscheduler fndecl 0-1 48547 NULL
143777 +disable_so_i915_max_freq_get_fndecl_48551 i915_max_freq_get fndecl 0 48551 NULL
143778 +disable_so_min_dwell_time_active_long_conf_scan_settings_48560 min_dwell_time_active_long conf_scan_settings 0 48560 NULL nohasharray
143779 +disable_so_set_memclock_fndecl_48560 set_memclock fndecl 2 48560 &disable_so_min_dwell_time_active_long_conf_scan_settings_48560
143780 +disable_so_ext4_get_bitmap_fndecl_48566 ext4_get_bitmap fndecl 2 48566 NULL
143781 +disable_so_read_addr___pollrd_48572 read_addr __pollrd 0 48572 NULL
143782 +disable_so_cn_esc_printf_fndecl_48573 cn_esc_printf fndecl 0 48573 NULL
143783 +disable_so_osd_keepalive_timeout_ceph_options_48576 osd_keepalive_timeout ceph_options 0 48576 NULL nohasharray
143784 +disable_so_freq_cea_sad_48576 freq cea_sad 0 48576 &disable_so_osd_keepalive_timeout_ceph_options_48576
143785 +disable_so_rp_down_timeout_vlv_s0ix_state_48583 rp_down_timeout vlv_s0ix_state 0 48583 NULL
143786 +disable_so_x86_coreid_bits_cpuinfo_x86_48589 x86_coreid_bits cpuinfo_x86 0 48589 NULL nohasharray
143787 +disable_so_radeon_fence_seq_signaled_fndecl_48589 radeon_fence_seq_signaled fndecl 3 48589 &disable_so_x86_coreid_bits_cpuinfo_x86_48589
143788 +disable_so_timeval_to_jiffies_fndecl_48593 timeval_to_jiffies fndecl 0 48593 NULL
143789 +disable_so_addr_hash_fndecl_48596 addr_hash fndecl 0-2-3 48596 NULL
143790 +disable_so_frame_timestamp_iwl_tdls_channel_switch_timing_48601 frame_timestamp iwl_tdls_channel_switch_timing 0 48601 NULL
143791 +disable_so_post_divider_pll_18818_48604 post_divider pll_18818 0 48604 NULL
143792 +disable_so_mapaddr_ql_rcv_buf_cb_48606 mapaddr ql_rcv_buf_cb 0 48606 NULL
143793 +disable_so_get_tsc_mode_fndecl_48608 get_tsc_mode fndecl 0-1 48608 NULL
143794 +disable_so_parse_nl_saddr_fndecl_48609 parse_nl_saddr fndecl 0 48609 NULL
143795 +disable_so_il_dbgfs_interrupt_write_fndecl_48612 il_dbgfs_interrupt_write fndecl 0-3 48612 NULL
143796 +disable_so_timer_ticks_snd_ymfpci_48615 timer_ticks snd_ymfpci 0 48615 NULL
143797 +disable_so_pause_time_e1000_fc_info_48619 pause_time e1000_fc_info 0 48619 NULL
143798 +disable_so_curspataddr_banshee_reg_48622 curspataddr banshee_reg 0 48622 NULL
143799 +disable_so_sysctl_discovery_timeout_vardecl_48636 sysctl_discovery_timeout vardecl 0 48636 NULL
143800 +disable_so_pch_opt_rom_start_address_pch_phub_reg_48637 pch_opt_rom_start_address pch_phub_reg 0 48637 NULL
143801 +disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640 ocfs2_test_bg_bit_allocatable fndecl 2 48640 NULL nohasharray
143802 +disable_so_bit_count_syscon_gpio_data_48640 bit_count syscon_gpio_data 0 48640 &disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640
143803 +disable_so_st_uid_compat_stat_48641 st_uid compat_stat 0 48641 NULL
143804 +disable_so_zd1201_get_freq_fndecl_48656 zd1201_get_freq fndecl 0 48656 NULL nohasharray
143805 +disable_so_set_key_lib80211_crypto_ops_48656 set_key lib80211_crypto_ops 2 48656 &disable_so_zd1201_get_freq_fndecl_48656
143806 +disable_so_padata_set_cpumask_fndecl_48659 padata_set_cpumask fndecl 0 48659 NULL
143807 +disable_so_addrconf_sysctl_mtu_fndecl_48662 addrconf_sysctl_mtu fndecl 0 48662 NULL
143808 +disable_so_elapsed_time_sit_info_48663 elapsed_time sit_info 0 48663 NULL
143809 +disable_so_irq_uart_port_48670 irq uart_port 0 48670 NULL
143810 +disable_so_timeout_ib_qp_attr_48674 timeout ib_qp_attr 0 48674 NULL
143811 +disable_so_read_addr_mdc_hw_list_desc_48675 read_addr mdc_hw_list_desc 0 48675 NULL
143812 +disable_so_xfs_btree_update_fndecl_48676 xfs_btree_update fndecl 0 48676 NULL
143813 +disable_so_phy_pm_runtime_put_sync_fndecl_48680 phy_pm_runtime_put_sync fndecl 0 48680 NULL
143814 +disable_so_pcc_cpufreq_target_fndecl_48684 pcc_cpufreq_target fndecl 2 48684 NULL
143815 +disable_so_call_timer_fn_fndecl_48686 call_timer_fn fndecl 3 48686 NULL
143816 +disable_so_xfs_bmap_add_extent_delay_real_fndecl_48692 xfs_bmap_add_extent_delay_real fndecl 0 48692 NULL
143817 +disable_so_bdi_position_ratio_fndecl_48698 bdi_position_ratio fndecl 0-2-3-4-5-6 48698 NULL
143818 +disable_so_rcq_np_addr_vf_pf_rxq_params_48718 rcq_np_addr vf_pf_rxq_params 0 48718 NULL
143819 +disable_so_rp_gid_ubifs_sb_node_48723 rp_gid ubifs_sb_node 0 48723 NULL
143820 +disable_so_phys_addr_gen_pool_chunk_48730 phys_addr gen_pool_chunk 0 48730 NULL
143821 +disable_so_addr_qla8044_minidump_entry_crb_48734 addr qla8044_minidump_entry_crb 0 48734 NULL
143822 +disable_so_mt7601u_wr_fndecl_48735 mt7601u_wr fndecl 3-2 48735 NULL nohasharray
143823 +disable_so_cpufreq_policy_restore_fndecl_48735 cpufreq_policy_restore fndecl 1 48735 &disable_so_mt7601u_wr_fndecl_48735
143824 +disable_so_cpuid_read_fndecl_48739 cpuid_read fndecl 0 48739 NULL
143825 +disable_so_be_cmd_modify_eq_delay_fndecl_48751 be_cmd_modify_eq_delay fndecl 0 48751 NULL
143826 +disable_so_time_shift_perf_event_mmap_page_48757 time_shift perf_event_mmap_page 0 48757 NULL
143827 +disable_so_i_ctime_ext2_inode_48758 i_ctime ext2_inode 0 48758 NULL nohasharray
143828 +disable_so_ide_timing_find_mode_fndecl_48758 ide_timing_find_mode fndecl 1 48758 &disable_so_i_ctime_ext2_inode_48758
143829 +disable_so_err_crypto_gcm_setkey_result_48768 err crypto_gcm_setkey_result 0 48768 NULL
143830 +disable_so_baddr_videobuf_buffer_48769 baddr videobuf_buffer 0 48769 NULL
143831 +disable_so_sys_utimes_fndecl_48778 sys_utimes fndecl 0 48778 NULL
143832 +disable_so_kstrtos8_from_user_fndecl_48783 kstrtos8_from_user fndecl 2 48783 NULL
143833 +disable_so_regmap_raw_read_fndecl_48789 regmap_raw_read fndecl 4-0-2 48789 NULL
143834 +disable_so_map_sysaddr_to_csrow_low_ops_48803 map_sysaddr_to_csrow low_ops 2 48803 NULL
143835 +disable_so_tg3_get_device_address_fndecl_48809 tg3_get_device_address fndecl 0 48809 NULL
143836 +disable_so_mfgid_sz_cyttsp4_cydata_48812 mfgid_sz cyttsp4_cydata 0 48812 NULL
143837 +disable_so_mceusb_cmd_datasize_fndecl_48817 mceusb_cmd_datasize fndecl 0 48817 NULL
143838 +disable_so_tv_freq_vivid_dev_48830 tv_freq vivid_dev 0 48830 NULL
143839 +disable_so_timecounter_init_fndecl_48837 timecounter_init fndecl 3 48837 NULL
143840 +disable_so_udf_bitmap_free_blocks_fndecl_48841 udf_bitmap_free_blocks fndecl 4-5 48841 NULL
143841 +disable_so__snd_timer_stop_fndecl_48842 _snd_timer_stop fndecl 0 48842 NULL
143842 +disable_so_hash_bits_deflate_state_48850 hash_bits deflate_state 0 48850 NULL
143843 +disable_so_if_freq_mb86a20s_state_48853 if_freq mb86a20s_state 0 48853 NULL
143844 +disable_so_ieee80211_aes_ccm_encrypt_fndecl_48857 ieee80211_aes_ccm_encrypt fndecl 5-7 48857 NULL
143845 +disable_so_msec20_to_jiffies_vardecl_enc28j60_c_48860 msec20_to_jiffies vardecl_enc28j60.c 0 48860 NULL
143846 +disable_so_mmc_sd_get_max_clock_fndecl_48866 mmc_sd_get_max_clock fndecl 0 48866 NULL
143847 +disable_so_s_def_resuid_ext4_super_block_48868 s_def_resuid ext4_super_block 0 48868 NULL
143848 +disable_so_get_physaddr_fs_api_fndecl_48871 get_physaddr_fs_api fndecl 0 48871 NULL
143849 +disable_so_selinux_task_setscheduler_fndecl_48872 selinux_task_setscheduler fndecl 0 48872 NULL
143850 +disable_so_snd_timer_new_fndecl_48873 snd_timer_new fndecl 0 48873 NULL
143851 +disable_so_register_write_rt2800_ops_48876 register_write rt2800_ops 2-3 48876 NULL
143852 +disable_so_client_snd_seq_addr_48879 client snd_seq_addr 0 48879 NULL
143853 +disable_so_saddr_iriap_cb_48880 saddr iriap_cb 0 48880 NULL
143854 +disable_so_error_cpu_itimer_48884 error cpu_itimer 0 48884 NULL
143855 +disable_so_buffer_write_time_flchip_48888 buffer_write_time flchip 0 48888 NULL
143856 +disable_so_valleyview_rps_rpe_freq_fndecl_48901 valleyview_rps_rpe_freq fndecl 0 48901 NULL
143857 +disable_so_bmg160_setup_any_motion_interrupt_fndecl_48906 bmg160_setup_any_motion_interrupt fndecl 0 48906 NULL
143858 +disable_so_min_timing_entry_48911 min timing_entry 0 48911 NULL
143859 +disable_so_tx_coalescing_timeo_bnad_48916 tx_coalescing_timeo bnad 0 48916 NULL
143860 +disable_so___clockevents_try_unbind_fndecl_48918 __clockevents_try_unbind fndecl 2 48918 NULL
143861 +disable_so_cyapa_get_wait_time_for_pwr_cmd_fndecl_48920 cyapa_get_wait_time_for_pwr_cmd fndecl 0-1 48920 NULL
143862 +disable_so_uid_ubifs_ino_node_48950 uid ubifs_ino_node 0 48950 NULL nohasharray
143863 +disable_so_missing_pages_bitmap_counts_48950 missing_pages bitmap_counts 0 48950 &disable_so_uid_ubifs_ino_node_48950
143864 +disable_so_snd_es1968_interrupt_fndecl_48965 snd_es1968_interrupt fndecl 1 48965 NULL
143865 +disable_so_img_ir_symbol_timing_preprocess_fndecl_48967 img_ir_symbol_timing_preprocess fndecl 2 48967 NULL
143866 +disable_so_cryptomgr_init_fndecl_48976 cryptomgr_init fndecl 0 48976 NULL
143867 +disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977 sync_offset_clockdrift_max ieee80211_if_mesh 0 48977 NULL nohasharray
143868 +disable_so_br_mac_hash_fndecl_48977 br_mac_hash fndecl 2 48977 &disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977
143869 +disable_so_rt_daddr_dn_route_48981 rt_daddr dn_route 0 48981 NULL
143870 +disable_so_acpi_get_sleep_type_data_fndecl_48985 acpi_get_sleep_type_data fndecl 0-1 48985 NULL nohasharray
143871 +disable_so_nilfs_btree_mark_fndecl_48985 nilfs_btree_mark fndecl 0-2 48985 &disable_so_acpi_get_sleep_type_data_fndecl_48985
143872 +disable_so_led_on_time_adp8860_backlight_platform_data_48994 led_on_time adp8860_backlight_platform_data 0 48994 NULL nohasharray
143873 +disable_so_jdvbt90502_pll_set_freq_fndecl_48994 jdvbt90502_pll_set_freq fndecl 2 48994 &disable_so_led_on_time_adp8860_backlight_platform_data_48994
143874 +disable_so_max_duration_time_stats_48998 max_duration time_stats 0 48998 NULL
143875 +disable_so_update_debugctlmsr_fndecl_49008 update_debugctlmsr fndecl 1 49008 NULL
143876 +disable_so_default_dclk_div_ssd1307fb_deviceinfo_49014 default_dclk_div ssd1307fb_deviceinfo 0 49014 NULL
143877 +disable_so_bound_addr_rds_info_socket_49019 bound_addr rds_info_socket 0 49019 NULL
143878 +disable_so_output_mute_control_runtime_49021 output_mute control_runtime 0 49021 NULL
143879 +disable_so_btree_csum_one_bio_fndecl_49026 btree_csum_one_bio fndecl 0 49026 NULL
143880 +disable_so_xfs_btree_ptr_addr_fndecl_49031 xfs_btree_ptr_addr fndecl 2 49031 NULL
143881 +disable_so_qs_rtbtimelimit_fs_quota_statv_49033 qs_rtbtimelimit fs_quota_statv 0 49033 NULL
143882 +disable_so_min_cpufreq_policy_49035 min cpufreq_policy 0 49035 NULL nohasharray
143883 +disable_so_semaphore_wait_to_signaller_ring_fndecl_49035 semaphore_wait_to_signaller_ring fndecl 3 49035 &disable_so_min_cpufreq_policy_49035
143884 +disable_so_intr_coal_delay_myri10ge_priv_49037 intr_coal_delay myri10ge_priv 0 49037 NULL
143885 +disable_so_set_public_address_fndecl_49049 set_public_address fndecl 0 49049 NULL
143886 +disable_so_rtc_tm_to_time64_fndecl_49056 rtc_tm_to_time64 fndecl 0 49056 NULL
143887 +disable_so_ext4_block_bitmap_fndecl_49058 ext4_block_bitmap fndecl 0 49058 NULL
143888 +disable_so_nft_hash_key_fndecl_49062 nft_hash_key fndecl 0-2 49062 NULL
143889 +disable_so_dma_addr_cb_49079 dma_addr cb 0 49079 NULL nohasharray
143890 +disable_so_inet6_addr_modify_fndecl_49079 inet6_addr_modify fndecl 0-3-4-2 49079 &disable_so_dma_addr_cb_49079
143891 +disable_so_rhashtable_walk_start_fndecl_49080 rhashtable_walk_start fndecl 0 49080 NULL
143892 +disable_so_sctp_transport_timeout_fndecl_49094 sctp_transport_timeout fndecl 0 49094 NULL
143893 +disable_so_hfdiv_dib0070_tuning_49097 hfdiv dib0070_tuning 0 49097 NULL
143894 +disable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 5 49098 NULL
143895 +disable_so_test_ahash_jiffies_fndecl_49109 test_ahash_jiffies fndecl 0-3 49109 NULL
143896 +disable_so_result_scsi_cmnd_49113 result scsi_cmnd 0 49113 NULL nohasharray
143897 +disable_so_codel_get_time_fndecl_49113 codel_get_time fndecl 0 49113 &disable_so_result_scsi_cmnd_49113
143898 +disable_so_mce_async_out_fndecl_49115 mce_async_out fndecl 3 49115 NULL
143899 +disable_so_reg_write_fndecl_49116 reg_write fndecl 2-3 49116 NULL nohasharray
143900 +disable_so_hash_htab_elem_49116 hash htab_elem 0 49116 &disable_so_reg_write_fndecl_49116
143901 +disable_so_interrupt_r8a66597_49118 interrupt r8a66597 0 49118 NULL
143902 +disable_so_start_threshold_snd_pcm_runtime_49130 start_threshold snd_pcm_runtime 0 49130 NULL
143903 +disable_so_mt9m111_reg_write_fndecl_49148 mt9m111_reg_write fndecl 0-2-3 49148 NULL
143904 +disable_so_ci_otg_add_timer_fndecl_49151 ci_otg_add_timer fndecl 2 49151 NULL
143905 +disable_so_refa_r_div_ad9523_platform_data_49157 refa_r_div ad9523_platform_data 0 49157 NULL
143906 +disable_so_paddr_setup_data_node_49166 paddr setup_data_node 0 49166 NULL
143907 +disable_so_vactive_lo_lvds_dvo_timing_49180 vactive_lo lvds_dvo_timing 0 49180 NULL
143908 +disable_so_init_dma_addr_pcnet32_private_49182 init_dma_addr pcnet32_private 0 49182 NULL
143909 +disable_so_sh_dmae_runtime_resume_fndecl_49185 sh_dmae_runtime_resume fndecl 0 49185 NULL
143910 +disable_so_timeout_tid_ampdu_tx_49186 timeout tid_ampdu_tx 0 49186 NULL nohasharray
143911 +disable_so_read_peer_guid_fndecl_49186 read_peer_guid fndecl 0 49186 &disable_so_timeout_tid_ampdu_tx_49186
143912 +disable_so_if_freq_tda18271_std_map_item_49207 if_freq tda18271_std_map_item 0 49207 NULL nohasharray
143913 +disable_so_sd_hash_ptrs_gfs2_sbd_49207 sd_hash_ptrs gfs2_sbd 0 49207 &disable_so_if_freq_tda18271_std_map_item_49207
143914 +disable_so_dma_addr_t4_sq_49217 dma_addr t4_sq 0 49217 NULL
143915 +disable_so_suspend_sleep_time_cyapa_49219 suspend_sleep_time cyapa 0 49219 NULL
143916 +disable_so_mtime_nsec_p9_iattr_dotl_49224 mtime_nsec p9_iattr_dotl 0 49224 NULL nohasharray
143917 +disable_so_schedule_external_copy_fndecl_49224 schedule_external_copy fndecl 2-3 49224 &disable_so_mtime_nsec_p9_iattr_dotl_49224
143918 +disable_so_clockevents_init_sysfs_fndecl_49238 clockevents_init_sysfs fndecl 0 49238 NULL
143919 +disable_so_bus_settle_time_blogic_drvr_options_49241 bus_settle_time blogic_drvr_options 0 49241 NULL
143920 +disable_so_nf_ct_timeout_ext_add_fndecl_49245 nf_ct_timeout_ext_add fndecl 3 49245 NULL
143921 +disable_so_wm8350_rtc_readtime_fndecl_49258 wm8350_rtc_readtime fndecl 0 49258 NULL
143922 +disable_so_wm8753_set_dai_clkdiv_fndecl_49259 wm8753_set_dai_clkdiv fndecl 3 49259 NULL nohasharray
143923 +disable_so_di_gid_xfs_icdinode_49259 di_gid xfs_icdinode 0 49259 &disable_so_wm8753_set_dai_clkdiv_fndecl_49259
143924 +disable_so_acpi_lapic_addr_vardecl_boot_c_49264 acpi_lapic_addr vardecl_boot.c 0 49264 NULL
143925 +disable_so_ifa_tstamp_in_ifaddr_49266 ifa_tstamp in_ifaddr 0 49266 NULL
143926 +disable_so_tboot_addr_boot_params_49267 tboot_addr boot_params 0 49267 NULL
143927 +disable_so_rt5677_dsp_mode_i2c_write_addr_fndecl_49301 rt5677_dsp_mode_i2c_write_addr fndecl 0-2-3-4 49301 NULL
143928 +disable_so_il_vbackporch_v4l2_bt_timings_49302 il_vbackporch v4l2_bt_timings 0 49302 NULL
143929 +disable_so_jiffies_64_to_clock_t_fndecl_49307 jiffies_64_to_clock_t fndecl 0-1 49307 NULL nohasharray
143930 +disable_so_crypto_ahash_extsize_fndecl_49307 crypto_ahash_extsize fndecl 0 49307 &disable_so_jiffies_64_to_clock_t_fndecl_49307
143931 +disable_so_disptime_throtl_grp_49308 disptime throtl_grp 0 49308 NULL
143932 +disable_so_k_fll_div_49317 k fll_div 0 49317 NULL
143933 +disable_so_last_time_bictcp_49322 last_time bictcp 0 49322 NULL
143934 +disable_so_qm1d1c0042_sleep_fndecl_49326 qm1d1c0042_sleep fndecl 0 49326 NULL
143935 +disable_so_crypto_register_aeads_fndecl_49338 crypto_register_aeads fndecl 0 49338 NULL nohasharray
143936 +disable_so_gcm_hash_init_continue_fndecl_49338 gcm_hash_init_continue fndecl 0 49338 &disable_so_crypto_register_aeads_fndecl_49338
143937 +disable_so_rds_ib_laddr_check_fndecl_49343 rds_ib_laddr_check fndecl 0-1 49343 NULL
143938 +disable_so_rv6xx_convert_clock_to_stepping_fndecl_49345 rv6xx_convert_clock_to_stepping fndecl 2-0 49345 NULL
143939 +disable_so_io_addr_uhci_hcd_49351 io_addr uhci_hcd 0 49351 NULL
143940 +disable_so_mcryptd_hash_update_enqueue_fndecl_49367 mcryptd_hash_update_enqueue fndecl 0 49367 NULL
143941 +disable_so_dll_cntl_ci_clock_registers_49369 dll_cntl ci_clock_registers 0 49369 NULL
143942 +disable_so_d_btimer_fs_disk_quota_49376 d_btimer fs_disk_quota 0 49376 NULL nohasharray
143943 +disable_so_uv_nmi_initial_delay_vardecl_uv_nmi_c_49376 uv_nmi_initial_delay vardecl_uv_nmi.c 0 49376 &disable_so_d_btimer_fs_disk_quota_49376 nohasharray
143944 +disable_so_s_addr_in_addr_49376 s_addr in_addr 0 49376 &disable_so_uv_nmi_initial_delay_vardecl_uv_nmi_c_49376
143945 +disable_so_addrlow_dma64desc_49384 addrlow dma64desc 0 49384 NULL
143946 +disable_so_tcn_timer_show_fndecl_49401 tcn_timer_show fndecl 0 49401 NULL
143947 +disable_so_query_gid_ib_device_49415 query_gid ib_device 0-2-3 49415 NULL nohasharray
143948 +disable_so_physaddr_qib_devdata_49415 physaddr qib_devdata 0 49415 &disable_so_query_gid_ib_device_49415
143949 +disable_so_descsize_crypto_shash_49421 descsize crypto_shash 0 49421 NULL
143950 +disable_so_gatt_bus_addr_agp_bridge_data_49422 gatt_bus_addr agp_bridge_data 0 49422 NULL
143951 +disable_so_confq_pbl_base_addr_lo_fcoe_kwqe_conn_offload4_49427 confq_pbl_base_addr_lo fcoe_kwqe_conn_offload4 0 49427 NULL
143952 +disable_so_fm_v4l2_vidioc_s_freq_fndecl_49444 fm_v4l2_vidioc_s_freq fndecl 0 49444 NULL
143953 +disable_so_tidvaddr_qib_tid_info_49445 tidvaddr qib_tid_info 0 49445 NULL
143954 +disable_so_hpi_cobranet_get_ip_address_fndecl_49449 hpi_cobranet_get_ip_address fndecl 1 49449 NULL
143955 +disable_so_nla_put_s32_fndecl_49455 nla_put_s32 fndecl 0-3 49455 NULL
143956 +disable_so_saa711x_s_clock_freq_fndecl_49457 saa711x_s_clock_freq fndecl 2 49457 NULL
143957 +disable_so_timestamp_mwl8k_tx_desc_49459 timestamp mwl8k_tx_desc 0 49459 NULL
143958 +disable_so___xfrm6_dpref_spref_hash_fndecl_49463 __xfrm6_dpref_spref_hash fndecl 0 49463 NULL
143959 +disable_so_dn_hash_fndecl_49465 dn_hash fndecl 0-1-2 49465 NULL
143960 +disable_so_x_runtime_sc_49473 x runtime_sc 0 49473 NULL
143961 +disable_so_sgl_pg1_addr_hi_sgl_page_pairs_49474 sgl_pg1_addr_hi sgl_page_pairs 0 49474 NULL
143962 +disable_so_mtime_sec_p9_iattr_dotl_49482 mtime_sec p9_iattr_dotl 0 49482 NULL
143963 +disable_so_mpll_ad_func_cntl_ci_clock_registers_49490 mpll_ad_func_cntl ci_clock_registers 0 49490 NULL nohasharray
143964 +disable_so_mounted_uid_ncp_mount_data_v4_49490 mounted_uid ncp_mount_data_v4 0 49490 &disable_so_mpll_ad_func_cntl_ci_clock_registers_49490
143965 +disable_so_i2c_write_le16_fndecl_49491 i2c_write_le16 fndecl 0 49491 NULL nohasharray
143966 +disable_so_svm_compute_tsc_offset_fndecl_49491 svm_compute_tsc_offset fndecl 0-2 49491 &disable_so_i2c_write_le16_fndecl_49491
143967 +disable_so_d_rtbtimer_xfs_disk_dquot_49495 d_rtbtimer xfs_disk_dquot 0 49495 NULL
143968 +disable_so_parport_set_timeout_fndecl_49497 parport_set_timeout fndecl 2-0 49497 NULL
143969 +disable_so_radelay_esp_49498 radelay esp 0 49498 NULL
143970 +disable_so_addr_i2c_board_info_49507 addr i2c_board_info 0 49507 NULL
143971 +disable_so_adma_addr_sdhci_host_49508 adma_addr sdhci_host 0 49508 NULL
143972 +disable_so_rq_addr_t3_rdma_init_wr_49515 rq_addr t3_rdma_init_wr 0 49515 NULL
143973 +disable_so_runtime_remaining_cfs_rq_49516 runtime_remaining cfs_rq 0 49516 NULL
143974 +disable_so_dreq_timestamp_time_dccp_request_sock_49520 dreq_timestamp_time dccp_request_sock 0 49520 NULL
143975 +disable_so_regmap_add_irq_chip_fndecl_49529 regmap_add_irq_chip fndecl 4-0-2-3 49529 NULL
143976 +disable_so_drm_fixp_div_fndecl_49535 drm_fixp_div fndecl 0-1-2 49535 NULL
143977 +disable_so_ar_addr_qla8044_quad_entry_49543 ar_addr qla8044_quad_entry 0 49543 NULL
143978 +disable_so_regcache_lzo_compress_cache_block_fndecl_49544 regcache_lzo_compress_cache_block fndecl 0 49544 NULL
143979 +disable_so___subtree_last_interval_tree_node_49547 __subtree_last interval_tree_node 0 49547 NULL
143980 +disable_so_pll1_feedback_div_ad9523_platform_data_49550 pll1_feedback_div ad9523_platform_data 0 49550 NULL nohasharray
143981 +disable_so_uncore_get_attr_cpumask_fndecl_49550 uncore_get_attr_cpumask fndecl 0 49550 &disable_so_pll1_feedback_div_ad9523_platform_data_49550
143982 +disable_so_read_clocksource_49555 read clocksource 0 49555 NULL
143983 +disable_so_hash_sk_buff_49561 hash sk_buff 0 49561 NULL
143984 +disable_so_I_T_nexus_loss_timeout_sas_end_device_49562 I_T_nexus_loss_timeout sas_end_device 0 49562 NULL nohasharray
143985 +disable_so_enc_addr_high_ssp_ini_io_start_req_49562 enc_addr_high ssp_ini_io_start_req 0 49562 &disable_so_I_T_nexus_loss_timeout_sas_end_device_49562
143986 +disable_so_alarm_clock_getres_fndecl_49575 alarm_clock_getres fndecl 1 49575 NULL
143987 +disable_so_regcache_lzo_get_blkpos_fndecl_49577 regcache_lzo_get_blkpos fndecl 0-2 49577 NULL
143988 +disable_so_atyfb_get_pixclock_fndecl_49582 atyfb_get_pixclock fndecl 0 49582 NULL
143989 +disable_so_mclkdiv_pll_div_49594 mclkdiv pll_div 0 49594 NULL
143990 +disable_so_frame_phys_addr_megasas_cmd_49601 frame_phys_addr megasas_cmd 0 49601 NULL nohasharray
143991 +disable_so_ccp_sha_digest_fndecl_49601 ccp_sha_digest fndecl 0 49601 &disable_so_frame_phys_addr_megasas_cmd_49601
143992 +disable_so_si476x_core_cmd_am_tune_freq_a10_fndecl_49610 si476x_core_cmd_am_tune_freq_a10 fndecl 0 49610 NULL
143993 +disable_so_sctp_setsockopt_delayed_ack_fndecl_49618 sctp_setsockopt_delayed_ack fndecl 3-0 49618 NULL
143994 +disable_so_gpu_addr_radeon_ring_49632 gpu_addr radeon_ring 0 49632 NULL
143995 +disable_so_uac_clock_selector_get_val_fndecl_49639 uac_clock_selector_get_val fndecl 0-2 49639 NULL nohasharray
143996 +disable_so_osc_clock_freq_drxd_state_49639 osc_clock_freq drxd_state 0 49639 &disable_so_uac_clock_selector_get_val_fndecl_49639
143997 +disable_so_addr_rx_desc_49640 addr rx_desc 0 49640 NULL
143998 +disable_so_r600_engine_clock_entry_set_reference_divider_fndecl_49644 r600_engine_clock_entry_set_reference_divider fndecl 3 49644 NULL
143999 +disable_so_set_fan_div_fndecl_49645 set_fan_div fndecl 0-4 49645 NULL nohasharray
144000 +disable_so_intermediate_freq_drx_common_attr_49645 intermediate_freq drx_common_attr 0 49645 &disable_so_set_fan_div_fndecl_49645
144001 +disable_so_wr32_nvkm_ofuncs_49648 wr32 nvkm_ofuncs 2-3 49648 NULL
144002 +disable_so__rtl8821ae_phy_calculate_bit_shift_fndecl_49649 _rtl8821ae_phy_calculate_bit_shift fndecl 0-1 49649 NULL
144003 +disable_so_cpufreq_governor_start_fndecl_49658 cpufreq_governor_start fndecl 0 49658 NULL
144004 +disable_so_mcgstatus_mce_49682 mcgstatus mce 0 49682 NULL
144005 +disable_so_bitmap_size_f2fs_nm_info_49684 bitmap_size f2fs_nm_info 0 49684 NULL
144006 +disable_so_SYSC_setgid_fndecl_49688 SYSC_setgid fndecl 0 49688 NULL
144007 +disable_so_dx_tss_segment_16_49692 dx tss_segment_16 0 49692 NULL
144008 +disable_so_tg3_test_interrupt_fndecl_49694 tg3_test_interrupt fndecl 0 49694 NULL
144009 +disable_so_rv6xx_compute_count_for_delay_fndecl_49697 rv6xx_compute_count_for_delay fndecl 0-2-3 49697 NULL
144010 +disable_so_read_time_mei_cl_cb_49706 read_time mei_cl_cb 0 49706 NULL
144011 +disable_so_addrconf_forward_change_fndecl_49711 addrconf_forward_change fndecl 2 49711 NULL
144012 +disable_so_cx24113_writereg_fndecl_49714 cx24113_writereg fndecl 0-3 49714 NULL
144013 +disable_so_demod_address_tda1004x_config_49721 demod_address tda1004x_config 0 49721 NULL
144014 +disable_so_device_timestamp_ieee80211_channel_switch_49722 device_timestamp ieee80211_channel_switch 0 49722 NULL
144015 +disable_so_gid_fileEntry_49725 gid fileEntry 0 49725 NULL
144016 +disable_so_dma_addr_clx2_queue_49729 dma_addr clx2_queue 0 49729 NULL
144017 +disable_so_extsize_crypto_type_49730 extsize crypto_type 0 49730 NULL
144018 +disable_so_k__fll_div_49732 k _fll_div 0 49732 NULL
144019 +disable_so_sumo_set_ss_dividers_fndecl_49747 sumo_set_ss_dividers fndecl 2-3 49747 NULL
144020 +disable_so_i2c_clock_i2c_algo_pca_data_49751 i2c_clock i2c_algo_pca_data 0 49751 NULL nohasharray
144021 +disable_so_skb_get_hash_perturb_fndecl_49751 skb_get_hash_perturb fndecl 0 49751 &disable_so_i2c_clock_i2c_algo_pca_data_49751
144022 +disable_so_expire_llc_timer_49752 expire llc_timer 0 49752 NULL
144023 +disable_so_rdma_copy_addr_fndecl_49754 rdma_copy_addr fndecl 0 49754 NULL
144024 +disable_so_hblank___fb_timings_49755 hblank __fb_timings 0 49755 NULL
144025 +disable_so_stripe_count_nfs4_file_layout_dsaddr_49758 stripe_count nfs4_file_layout_dsaddr 0 49758 NULL
144026 +disable_so_inet_rtm_newaddr_fndecl_49766 inet_rtm_newaddr fndecl 0 49766 NULL nohasharray
144027 +disable_so_generic_handle_irq_fndecl_49766 generic_handle_irq fndecl 1 49766 &disable_so_inet_rtm_newaddr_fndecl_49766
144028 +disable_so_parport_ieee1284_ecp_write_addr_fndecl_49769 parport_ieee1284_ecp_write_addr fndecl 0 49769 NULL
144029 +disable_so_dl_runtime_sched_dl_entity_49775 dl_runtime sched_dl_entity 0 49775 NULL
144030 +disable_so_cur_saddr_pktgen_dev_49776 cur_saddr pktgen_dev 0 49776 NULL
144031 +disable_so_nf_ct_expect_dst_hash_fndecl_49778 nf_ct_expect_dst_hash fndecl 0 49778 NULL
144032 +disable_so_compat_sys_times_fndecl_49783 compat_sys_times fndecl 0 49783 NULL nohasharray
144033 +disable_so___bitmap_shift_left_fndecl_49783 __bitmap_shift_left fndecl 3-4 49783 &disable_so_compat_sys_times_fndecl_49783
144034 +disable_so_sq_addr_high_nes_qp_context_49784 sq_addr_high nes_qp_context 0 49784 NULL
144035 +disable_so_phy_address_ethtool_cmd_49790 phy_address ethtool_cmd 0 49790 NULL
144036 +disable_so_intr_timer_type_vnic_enet_config_49793 intr_timer_type vnic_enet_config 0 49793 NULL
144037 +disable_so_end_time_bfa_diag_dport_result_s_49798 end_time bfa_diag_dport_result_s 0 49798 NULL
144038 +disable_so_prot_addr_saa7146_video_dma_49808 prot_addr saa7146_video_dma 0 49808 NULL
144039 +disable_so_p2m_timeout_show_fndecl_49814 p2m_timeout_show fndecl 0 49814 NULL
144040 +disable_so_pr_uid_compat_elf_prpsinfo_49815 pr_uid compat_elf_prpsinfo 0 49815 NULL
144041 +disable_so_pch_udc_disable_ep_interrupts_fndecl_49816 pch_udc_disable_ep_interrupts fndecl 2 49816 NULL
144042 +disable_so_bd_list_addr_lo_bnx2i_login_request_49817 bd_list_addr_lo bnx2i_login_request 0 49817 NULL
144043 +disable_so_nsec_pvclock_wall_clock_49833 nsec pvclock_wall_clock 0 49833 NULL
144044 +disable_so_bss_lose_timeout_conf_conn_settings_49850 bss_lose_timeout conf_conn_settings 0 49850 NULL
144045 +disable_so_snd_opl3_timer1_init_fndecl_49852 snd_opl3_timer1_init fndecl 0-2 49852 NULL
144046 +disable_so_data_crb_addr_pair_49859 data crb_addr_pair 0 49859 NULL
144047 +disable_so_txeol_interrupt_mask_ath_hw_49864 txeol_interrupt_mask ath_hw 0 49864 NULL
144048 +disable_so_ctrl_freq_set_fndecl_49865 ctrl_freq_set fndecl 3 49865 NULL
144049 +disable_so_freq_pda_iq_autocal_entry_49869 freq pda_iq_autocal_entry 0 49869 NULL
144050 +disable_so_kempld_wdt_set_timeout_fndecl_49893 kempld_wdt_set_timeout fndecl 2 49893 NULL
144051 +disable_so_nilfs_btree_node_set_ptr_fndecl_49897 nilfs_btree_node_set_ptr fndecl 2-3 49897 NULL
144052 +disable_so_time_to_val_fndecl_49902 time_to_val fndecl 0-4-2-3 49902 NULL
144053 +disable_so_capture_timestamp_qla27xx_fwdt_template_49904 capture_timestamp qla27xx_fwdt_template 0 49904 NULL nohasharray
144054 +disable_so_wl1273_fm_set_rx_freq_fndecl_49904 wl1273_fm_set_rx_freq fndecl 2 49904 &disable_so_capture_timestamp_qla27xx_fwdt_template_49904
144055 +disable_so_set_spdif_clock_snd_ice1712_49905 set_spdif_clock snd_ice1712 2 49905 NULL
144056 +disable_so_nmi_evntsel_msr_to_bit_fndecl_49906 nmi_evntsel_msr_to_bit fndecl 0-1 49906 NULL
144057 +disable_so_get_ipv6_addr_fndecl_49909 get_ipv6_addr fndecl 2 49909 NULL
144058 +disable_so_bitstream_cursor_advance_fndecl_49911 bitstream_cursor_advance fndecl 2 49911 NULL
144059 +disable_so_trap_addr_sdpcm_shared_49924 trap_addr sdpcm_shared 0 49924 NULL
144060 +disable_so_show_port_gid_fndecl_49927 show_port_gid fndecl 0 49927 NULL
144061 +disable_so_ib_sa_guid_info_rec_query_fndecl_49928 ib_sa_guid_info_rec_query fndecl 0-3-5-7-8 49928 NULL
144062 +disable_so_mtrr_type_lookup_fndecl_49929 mtrr_type_lookup fndecl 1-2 49929 NULL
144063 +disable_so_persistent_offset_sst_module_runtime_49933 persistent_offset sst_module_runtime 0 49933 NULL
144064 +disable_so_lvb_ictime_packed_ocfs2_meta_lvb_49940 lvb_ictime_packed ocfs2_meta_lvb 0 49940 NULL
144065 +disable_so_boost_freq_lm3533_platform_data_49943 boost_freq lm3533_platform_data 0 49943 NULL
144066 +disable_so_inet_twsk_schedule_fndecl_49946 inet_twsk_schedule fndecl 2 49946 NULL
144067 +disable_so_host_time_adj_time_work_49952 host_time adj_time_work 0 49952 NULL
144068 +disable_so_b43_dma_address_fndecl_49953 b43_dma_address fndecl 0-2 49953 NULL
144069 +disable_so_max_delay_iwl_time_event_cmd_49957 max_delay iwl_time_event_cmd 0 49957 NULL
144070 +disable_so_shash_final_unaligned_fndecl_49961 shash_final_unaligned fndecl 0 49961 NULL
144071 +disable_so_mpll_func_cntl_si_clock_registers_49965 mpll_func_cntl si_clock_registers 0 49965 NULL
144072 +disable_so_nfsd4_write_time_fndecl_49969 nfsd4_write_time fndecl 0 49969 NULL
144073 +disable_so_ds1374_set_time_fndecl_49975 ds1374_set_time fndecl 0 49975 NULL
144074 +disable_so_batadv_hash_new_fndecl_49976 batadv_hash_new fndecl 1 49976 NULL
144075 +disable_so_timeout_i2c_adapter_49981 timeout i2c_adapter 0 49981 NULL nohasharray
144076 +disable_so_delay_radeon_voltage_49981 delay radeon_voltage 0 49981 &disable_so_timeout_i2c_adapter_49981 nohasharray
144077 +disable_so___cpufreq_stats_create_table_fndecl_49981 __cpufreq_stats_create_table fndecl 0 49981 &disable_so_delay_radeon_voltage_49981
144078 +disable_so_op_x86_virt_to_phys_fndecl_49986 op_x86_virt_to_phys fndecl 0-1 49986 NULL nohasharray
144079 +disable_so_freq_time_stamp_hw_perf_event_49986 freq_time_stamp hw_perf_event 0 49986 &disable_so_op_x86_virt_to_phys_fndecl_49986
144080 +disable_so_dib7000p_get_internal_freq_fndecl_49987 dib7000p_get_internal_freq fndecl 0 49987 NULL nohasharray
144081 +disable_so_msr_daio_desc_49987 msr daio_desc 0 49987 &disable_so_dib7000p_get_internal_freq_fndecl_49987
144082 +disable_so_RF_SYN_reserved_addr28_chan_info_nphy_radio205x_49990 RF_SYN_reserved_addr28 chan_info_nphy_radio205x 0 49990 NULL
144083 +disable_so_timer_vardecl_iphase_c_49991 timer vardecl_iphase.c 0 49991 NULL
144084 +disable_so_typhoon_sleep_fndecl_49999 typhoon_sleep fndecl 0-2 49999 NULL
144085 +disable_so_confq_first_pbe_addr_lo_fcoe_kwqe_conn_offload3_50012 confq_first_pbe_addr_lo fcoe_kwqe_conn_offload3 0 50012 NULL
144086 +disable_so__rtl92d_phy_calculate_bit_shift_fndecl_50016 _rtl92d_phy_calculate_bit_shift fndecl 0-1 50016 NULL
144087 +disable_so_ds1307_set_time_fndecl_50017 ds1307_set_time fndecl 0 50017 NULL
144088 +disable_so_dma_addr__DMABUFFERENTRY_50032 dma_addr _DMABUFFERENTRY 0 50032 NULL
144089 +disable_so_payload_addr_isp1760_qtd_50045 payload_addr isp1760_qtd 0 50045 NULL
144090 +disable_so_crypto_pcbc_encrypt_fndecl_50054 crypto_pcbc_encrypt fndecl 0-4 50054 NULL
144091 +disable_so_tcp_shift_skb_data_fndecl_50056 tcp_shift_skb_data fndecl 5-4 50056 NULL
144092 +disable_so_reference_div_radeon_pll_50062 reference_div radeon_pll 0 50062 NULL
144093 +disable_so_io_addr_blogic_adapter_50066 io_addr blogic_adapter 0 50066 NULL
144094 +disable_so_bfs_paprd_timestamp_ath_buf_state_50090 bfs_paprd_timestamp ath_buf_state 0 50090 NULL
144095 +disable_so_address_bau_msg_payload_50110 address bau_msg_payload 0 50110 NULL
144096 +disable_so_scsi_reset_delay_adveep_3550_config_50118 scsi_reset_delay adveep_3550_config 0 50118 NULL
144097 +disable_so_start_bit_alps_bitmap_point_50119 start_bit alps_bitmap_point 0 50119 NULL
144098 +disable_so_i_atime_ext2_inode_50120 i_atime ext2_inode 0 50120 NULL nohasharray
144099 +disable_so_link_down_time_swStat_50120 link_down_time swStat 0 50120 &disable_so_i_atime_ext2_inode_50120
144100 +disable_so_sys_timerfd_settime_fndecl_50127 sys_timerfd_settime fndecl 1 50127 NULL nohasharray
144101 +disable_so_t1timer_lapb_parms_struct_50127 t1timer lapb_parms_struct 0 50127 &disable_so_sys_timerfd_settime_fndecl_50127
144102 +disable_so_lp8755_buck_enable_time_fndecl_50128 lp8755_buck_enable_time fndecl 0 50128 NULL
144103 +disable_so_hash_v4_fndecl_50129 hash_v4 fndecl 0 50129 NULL
144104 +disable_so_btree_lookup128_fndecl_50132 btree_lookup128 fndecl 3 50132 NULL
144105 +disable_so_data_msr_data_50133 data msr_data 0 50133 NULL
144106 +disable_so_max_freq_ufs_clk_info_50134 max_freq ufs_clk_info 0 50134 NULL
144107 +disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136 carl9170_debugfs_tx_ampdu_scheduler_read fndecl 3 50136 NULL nohasharray
144108 +disable_so_write32_tg3_50136 write32 tg3 3 50136 &disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136
144109 +disable_so_vm_addr_fndecl_50143 vm_addr fndecl 0-2-3-4 50143 NULL
144110 +disable_so_mmc_sd_runtime_suspend_fndecl_50164 mmc_sd_runtime_suspend fndecl 0 50164 NULL
144111 +disable_so_msr_pcap_chip_50171 msr pcap_chip 0 50171 NULL
144112 +disable_so_ptp_clock_index_fndecl_50179 ptp_clock_index fndecl 0 50179 NULL nohasharray
144113 +disable_so_str2hashbuf_signed_fndecl_50179 str2hashbuf_signed fndecl 2 50179 &disable_so_ptp_clock_index_fndecl_50179
144114 +disable_so_dapm_clock_event_fndecl_50184 dapm_clock_event fndecl 0 50184 NULL nohasharray
144115 +disable_so_skcipher_null_givdecrypt_fndecl_50184 skcipher_null_givdecrypt fndecl 0 50184 &disable_so_dapm_clock_event_fndecl_50184
144116 +disable_so_nlm_timeout_vardecl_svc_c_50197 nlm_timeout vardecl_svc.c 0 50197 NULL
144117 +disable_so_st_mtime_nsec_stat_50200 st_mtime_nsec stat 0 50200 NULL
144118 +disable_so_haddr_tpd_haddr_50202 haddr tpd_haddr 0 50202 NULL
144119 +disable_so_cx24116_sleep_fndecl_50204 cx24116_sleep fndecl 0 50204 NULL
144120 +disable_so_printframe_fndecl_50210 printframe fndecl 3 50210 NULL nohasharray
144121 +disable_so_pch_udc_write_device_interrupts_fndecl_50210 pch_udc_write_device_interrupts fndecl 2 50210 &disable_so_printframe_fndecl_50210
144122 +disable_so_measure_12bit_voltage_fndecl_50211 measure_12bit_voltage fndecl 0-2 50211 NULL
144123 +disable_so_mcheck_init_device_fndecl_50223 mcheck_init_device fndecl 0 50223 NULL
144124 +disable_so_igb_init_rx_addrs_fndecl_50228 igb_init_rx_addrs fndecl 2 50228 NULL
144125 +disable_so_s11_img_ir_timing_regvals_50232 s11 img_ir_timing_regvals 0 50232 NULL
144126 +disable_so_paddr_mwifiex_pcie_buf_desc_50236 paddr mwifiex_pcie_buf_desc 0 50236 NULL
144127 +disable_so_rdma_resolve_addr_fndecl_50240 rdma_resolve_addr fndecl 0 50240 NULL
144128 +disable_so_mlx4_ib_notify_slaves_on_guid_change_fndecl_50248 mlx4_ib_notify_slaves_on_guid_change fndecl 2-3 50248 NULL
144129 +disable_so_si476x_core_cmd_am_tune_freq_a20_fndecl_50250 si476x_core_cmd_am_tune_freq_a20 fndecl 0 50250 NULL
144130 +disable_so_addr_lo_dma_address_50252 addr_lo dma_address 0 50252 NULL
144131 +disable_so_scsi_runtime_resume_fndecl_50254 scsi_runtime_resume fndecl 0 50254 NULL
144132 +disable_so_pkt_rbtree_find_fndecl_50259 pkt_rbtree_find fndecl 2 50259 NULL
144133 +disable_so_p_div_aic31xx_priv_50261 p_div aic31xx_priv 0 50261 NULL
144134 +disable_so_da9052_rtc_set_time_fndecl_50269 da9052_rtc_set_time fndecl 0 50269 NULL
144135 +disable_so_read_addr_qla4_83xx_minidump_entry_rdmem_pex_dma_50271 read_addr qla4_83xx_minidump_entry_rdmem_pex_dma 0 50271 NULL
144136 +disable_so_timeout_jiffies_qib_qp_50276 timeout_jiffies qib_qp 0 50276 NULL
144137 +disable_so_tmr_restart_sound_lowlev_timer_50278 tmr_restart sound_lowlev_timer 1 50278 NULL
144138 +disable_so_irq_domain_free_irqs_common_fndecl_50279 irq_domain_free_irqs_common fndecl 2-3 50279 NULL nohasharray
144139 +disable_so_hsync_vsync_offset_pulse_width_hi_detailed_pixel_timing_50279 hsync_vsync_offset_pulse_width_hi detailed_pixel_timing 0 50279 &disable_so_irq_domain_free_irqs_common_fndecl_50279
144140 +disable_so_eop_ring_buffer_address_queue_properties_50280 eop_ring_buffer_address queue_properties 0 50280 NULL
144141 +disable_so_bna_rx_coalescing_timeo_set_fndecl_50282 bna_rx_coalescing_timeo_set fndecl 2 50282 NULL
144142 +disable_so_shash_compat_update_fndecl_50285 shash_compat_update fndecl 0-3 50285 NULL
144143 +disable_so_get_physaddr_buffered_ioctl_fndecl_50286 get_physaddr_buffered_ioctl fndecl 0 50286 NULL
144144 +disable_so_snd_hrtimer_init_fndecl_50291 snd_hrtimer_init fndecl 0 50291 NULL
144145 +disable_so_cpuidle_add_state_sysfs_fndecl_50292 cpuidle_add_state_sysfs fndecl 0 50292 NULL
144146 +disable_so_bitmap_set_bits_fndecl_50299 bitmap_set_bits fndecl 3-4 50299 NULL
144147 +disable_so_cur_sge_off_fcoe_mul_sges_ctx_50300 cur_sge_off fcoe_mul_sges_ctx 0 50300 NULL
144148 +disable_so_mpll_func_cntl_1_si_clock_registers_50301 mpll_func_cntl_1 si_clock_registers 0 50301 NULL
144149 +disable_so_genwqe_debugfs_curr_dbg_uid0_open_fndecl_50304 genwqe_debugfs_curr_dbg_uid0_open fndecl 0 50304 NULL
144150 +disable_so_tx_interframe_timeout_wil6210_priv_50305 tx_interframe_timeout wil6210_priv 0 50305 NULL
144151 +disable_so_pending_csums_btrfs_delayed_ref_root_50311 pending_csums btrfs_delayed_ref_root 0 50311 NULL
144152 +disable_so_addr_count_blogic_adapter_50326 addr_count blogic_adapter 0 50326 NULL
144153 +disable_so_cpufreq_out_of_sync_fndecl_50327 cpufreq_out_of_sync fndecl 2 50327 NULL nohasharray
144154 +disable_so_typ_timing_entry_50327 typ timing_entry 0 50327 &disable_so_cpufreq_out_of_sync_fndecl_50327
144155 +disable_so_used_skcipher_ctx_50342 used skcipher_ctx 0 50342 NULL
144156 +disable_so_iscsit_create_random_array_fndecl_50360 iscsit_create_random_array fndecl 2 50360 NULL
144157 +disable_so_current_frequency_s5h1409_state_50366 current_frequency s5h1409_state 0 50366 NULL
144158 +disable_so_cb_camif_addr_50371 cb camif_addr 0 50371 NULL
144159 +disable_so_prepare_kswapd_sleep_fndecl_50377 prepare_kswapd_sleep fndecl 2-3 50377 NULL
144160 +disable_so___tcf_hash_release_fndecl_50380 __tcf_hash_release fndecl 0 50380 NULL
144161 +disable_so_ntfs_bitmap_clear_bit_fndecl_50382 ntfs_bitmap_clear_bit fndecl 2 50382 NULL
144162 +disable_so_tg3_ptp_adjtime_fndecl_50384 tg3_ptp_adjtime fndecl 2 50384 NULL
144163 +disable_so_xfs_btree_copy_recs_fndecl_50385 xfs_btree_copy_recs fndecl 4 50385 NULL
144164 +disable_so___cpufreq_get_fndecl_50397 __cpufreq_get fndecl 0 50397 NULL
144165 +disable_so_rtl821x_ack_interrupt_fndecl_50399 rtl821x_ack_interrupt fndecl 0 50399 NULL
144166 +disable_so_ss_divider_index_sumo_pl_50401 ss_divider_index sumo_pl 0 50401 NULL
144167 +disable_so_igb_runtime_suspend_fndecl_50408 igb_runtime_suspend fndecl 0 50408 NULL nohasharray
144168 +disable_so_hash_ipmark4_expire_fndecl_50408 hash_ipmark4_expire fndecl 4 50408 &disable_so_igb_runtime_suspend_fndecl_50408
144169 +disable_so_addr_TxDesc_50413 addr TxDesc 0 50413 NULL
144170 +disable_so_xfs_btree_dup_cursor_fndecl_50417 xfs_btree_dup_cursor fndecl 0 50417 NULL
144171 +disable_so_channel2freq_bg_fndecl_50421 channel2freq_bg fndecl 0-1 50421 NULL
144172 +disable_so_freq_lo_jiffies_od_cpu_dbs_info_s_50424 freq_lo_jiffies od_cpu_dbs_info_s 0 50424 NULL
144173 +disable_so_time_cifsInodeInfo_50431 time cifsInodeInfo 0 50431 NULL
144174 +disable_so_tps65910_rtc_read_time_fndecl_50446 tps65910_rtc_read_time fndecl 0 50446 NULL
144175 +disable_so_freq_wmi_p2p_rx_probe_req_event_50455 freq wmi_p2p_rx_probe_req_event 0 50455 NULL
144176 +disable_so_ifa_cstamp_in_ifaddr_50464 ifa_cstamp in_ifaddr 0 50464 NULL
144177 +disable_so_reg_ds1685_rtc_time_regs_50466 reg ds1685_rtc_time_regs 0 50466 NULL
144178 +disable_so_n_freq_tbl_50468 n freq_tbl 0 50468 NULL
144179 +disable_so_hash_code_f2fs_dir_entry_50474 hash_code f2fs_dir_entry 0 50474 NULL
144180 +disable_so_link_check_timeout_i40e_pf_50476 link_check_timeout i40e_pf 0 50476 NULL
144181 +disable_so_addr_lo_eth_rx_cqe_next_page_50479 addr_lo eth_rx_cqe_next_page 0 50479 NULL
144182 +disable_so_sr_timestamp_nfs4_sequence_res_50481 sr_timestamp nfs4_sequence_res 0 50481 NULL nohasharray
144183 +disable_so_cpumask_parse_fndecl_50481 cpumask_parse fndecl 0 50481 &disable_so_sr_timestamp_nfs4_sequence_res_50481
144184 +disable_so_set_pte_vaddr_pud_fndecl_50497 set_pte_vaddr_pud fndecl 2 50497 NULL
144185 +disable_so_pa_rxrf_lna1_freq_tune_chan_info_2064_lcnphy_50502 pa_rxrf_lna1_freq_tune chan_info_2064_lcnphy 0 50502 NULL
144186 +disable_so_uv_global_gru_mmr_address_fndecl_50507 uv_global_gru_mmr_address fndecl 0-1-2 50507 NULL
144187 +disable_so_address_desc_ptr_50509 address desc_ptr 0 50509 NULL
144188 +disable_so_crypto_aead_alg_maxauthsize_fndecl_50510 crypto_aead_alg_maxauthsize fndecl 0 50510 NULL
144189 +disable_so_pci_get_interrupt_pin_fndecl_50512 pci_get_interrupt_pin fndecl 0 50512 NULL
144190 +disable_so_addr_assign_type_show_fndecl_50513 addr_assign_type_show fndecl 0 50513 NULL
144191 +disable_so_frequency_si4713_device_50518 frequency si4713_device 0 50518 NULL
144192 +disable_so__iommu_cpumask_show_fndecl_50522 _iommu_cpumask_show fndecl 0 50522 NULL
144193 +disable_so_mma9551_runtime_resume_fndecl_50531 mma9551_runtime_resume fndecl 0 50531 NULL
144194 +disable_so_mvs_set_sas_addr_fndecl_50535 mvs_set_sas_addr fndecl 2-5 50535 NULL
144195 +disable_so_rv3029c2_rtc_set_time_fndecl_50537 rv3029c2_rtc_set_time fndecl 0 50537 NULL nohasharray
144196 +disable_so__zd_iowrite32v_async_locked_fndecl_50537 _zd_iowrite32v_async_locked fndecl 3-0 50537 &disable_so_rv3029c2_rtc_set_time_fndecl_50537
144197 +disable_so_demod_addr_m88rs2000_config_50543 demod_addr m88rs2000_config 0 50543 NULL
144198 +disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547 mv88e6xxx_set_addr_indirect fndecl 0 50547 NULL nohasharray
144199 +disable_so_bind_evtchn_to_irqhandler_fndecl_50547 bind_evtchn_to_irqhandler fndecl 0-1 50547 &disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547
144200 +disable_so_twl6030_interrupt_unmask_fndecl_50550 twl6030_interrupt_unmask fndecl 2-0 50550 NULL
144201 +disable_so_recovery_pio_clocks_50551 recovery pio_clocks 0 50551 NULL
144202 +disable_so_lp8788_rtc_read_time_fndecl_50573 lp8788_rtc_read_time fndecl 0 50573 NULL nohasharray
144203 +disable_so_dummy_buffer_addr_hi_fcoe_kwqe_init1_50573 dummy_buffer_addr_hi fcoe_kwqe_init1 0 50573 &disable_so_lp8788_rtc_read_time_fndecl_50573 nohasharray
144204 +disable_so_power_page_addr_pm80x_subchip_50573 power_page_addr pm80x_subchip 0 50573 &disable_so_dummy_buffer_addr_hi_fcoe_kwqe_init1_50573
144205 +disable_so_beacon_timeout_ieee80211_if_managed_50580 beacon_timeout ieee80211_if_managed 0 50580 NULL
144206 +disable_so_mag3110_get_samp_freq_index_fndecl_50581 mag3110_get_samp_freq_index fndecl 0 50581 NULL
144207 +disable_so_sock_get_timestamp_fndecl_50582 sock_get_timestamp fndecl 0 50582 NULL
144208 +disable_so_addr_low_lancer_cmd_req_read_object_50585 addr_low lancer_cmd_req_read_object 0 50585 NULL
144209 +disable_so_regcache_lzo_write_fndecl_50595 regcache_lzo_write fndecl 0-2-3 50595 NULL
144210 +disable_so_enable_time_regulator_desc_50604 enable_time regulator_desc 0 50604 NULL
144211 +disable_so___cpufreq_driver_target_fndecl_50610 __cpufreq_driver_target fndecl 2 50610 NULL
144212 +disable_so_mt_ctxbitmap_gru_mm_tracker_50612 mt_ctxbitmap gru_mm_tracker 0 50612 NULL
144213 +disable_so_compat_sys_futimesat_fndecl_50617 compat_sys_futimesat fndecl 1-0 50617 NULL
144214 +disable_so_bind_timeout_rpc_xprt_50622 bind_timeout rpc_xprt 0 50622 NULL
144215 +disable_so_wait_conversion_complete_interrupt_fndecl_50628 wait_conversion_complete_interrupt fndecl 0 50628 NULL
144216 +disable_so_minimum_acpi_address64_attribute_50631 minimum acpi_address64_attribute 0 50631 NULL
144217 +disable_so_radix_tree_delete_fndecl_50632 radix_tree_delete fndecl 2 50632 NULL
144218 +disable_so_snd_timer_user_stop_fndecl_50656 snd_timer_user_stop fndecl 0 50656 NULL
144219 +disable_so_m_hi_cfg_timing_div_drxk_state_50665 m_hi_cfg_timing_div drxk_state 0 50665 NULL
144220 +disable_so_r_timeout_ceph_mds_request_50669 r_timeout ceph_mds_request 0 50669 NULL
144221 +disable_so_snd_timer_continue_fndecl_50670 snd_timer_continue fndecl 0 50670 NULL
144222 +disable_so_dwc3_ep0_set_isoch_delay_fndecl_50672 dwc3_ep0_set_isoch_delay fndecl 0 50672 NULL
144223 +disable_so_btree_submit_bio_hook_fndecl_50677 btree_submit_bio_hook fndecl 0-2-6 50677 NULL
144224 +disable_so_start_pid_hrtimer_50687 start_pid hrtimer 0 50687 NULL
144225 +disable_so_deliver_posted_interrupt_kvm_x86_ops_50698 deliver_posted_interrupt kvm_x86_ops 2 50698 NULL
144226 +disable_so_pwm_divisor_max8997_haptic_50704 pwm_divisor max8997_haptic 0 50704 NULL
144227 +disable_so_dma_addr_iwl_queue_50725 dma_addr iwl_queue 0 50725 NULL
144228 +disable_so_di_uid_qnx4_inode_entry_50728 di_uid qnx4_inode_entry 0 50728 NULL
144229 +disable_so_nfs_idmap_cache_timeout_vardecl_50733 nfs_idmap_cache_timeout vardecl 0 50733 NULL
144230 +disable_so_carl9170_set_beacon_timers_fndecl_50741 carl9170_set_beacon_timers fndecl 0 50741 NULL
144231 +disable_so_msg_addr_hi_vf_pf_event_data_50756 msg_addr_hi vf_pf_event_data 0 50756 NULL
144232 +disable_so_jiffies_vid_cap_vivid_dev_50760 jiffies_vid_cap vivid_dev 0 50760 NULL
144233 +disable_so_addr_amdgpu_dummy_page_50765 addr amdgpu_dummy_page 0 50765 NULL
144234 +disable_so_img_i2c_raw_atomic_delay_handler_fndecl_50779 img_i2c_raw_atomic_delay_handler fndecl 0 50779 NULL
144235 +disable_so_dst_addr_filter_ipv4_5tuple_50793 dst_addr filter_ipv4_5tuple 0 50793 NULL
144236 +disable_so_remote_ca_guid_ib_cm_rep_event_param_50795 remote_ca_guid ib_cm_rep_event_param 0 50795 NULL nohasharray
144237 +disable_so_ioaddr_physical_voice_info_50795 ioaddr physical_voice_info 0 50795 &disable_so_remote_ca_guid_ib_cm_rep_event_param_50795
144238 +disable_so_xfs_btree_log_recs_fndecl_50800 xfs_btree_log_recs fndecl 3-4 50800 NULL
144239 +disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811 iwl_sta_modify_sleep_tx_count fndecl 2 50811 NULL nohasharray
144240 +disable_so_ldt_tss_segment_16_50811 ldt tss_segment_16 0 50811 &disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811
144241 +disable_so_adxl34x_autosleep_store_fndecl_50816 adxl34x_autosleep_store fndecl 0-4 50816 NULL
144242 +disable_so_io_schedule_timeout_fndecl_50822 io_schedule_timeout fndecl 1-0 50822 NULL
144243 +disable_so_addr_pm8001_prd_50827 addr pm8001_prd 0 50827 NULL
144244 +disable_so_hfsplus_btree_write_fndecl_50829 hfsplus_btree_write fndecl 0 50829 NULL
144245 +disable_so_jfs_strfromUCS_le_fndecl_50830 jfs_strfromUCS_le fndecl 0-3 50830 NULL
144246 +disable_so_dmaaddr_b43_dmadesc_meta_50842 dmaaddr b43_dmadesc_meta 0 50842 NULL
144247 +disable_so_eh_timeout_scsi_device_50843 eh_timeout scsi_device 0 50843 NULL
144248 +disable_so_max_buffer_time_batadv_priv_nc_50848 max_buffer_time batadv_priv_nc 0 50848 NULL
144249 +disable_so_mask_timecounter_50851 mask timecounter 0 50851 NULL
144250 +disable_so_i2c_addr_cx24113_config_50855 i2c_addr cx24113_config 0 50855 NULL
144251 +disable_so_clock_khz_ocores_i2c_platform_data_50856 clock_khz ocores_i2c_platform_data 0 50856 NULL nohasharray
144252 +disable_so_i2c_addr_i2c_device_addr_50856 i2c_addr i2c_device_addr 0 50856 &disable_so_clock_khz_ocores_i2c_platform_data_50856
144253 +disable_so_lp_rx_timeout_intel_dsi_50859 lp_rx_timeout intel_dsi 0 50859 NULL nohasharray
144254 +disable_so_crypto_authenc_givencrypt_done_fndecl_50859 crypto_authenc_givencrypt_done fndecl 2 50859 &disable_so_lp_rx_timeout_intel_dsi_50859
144255 +disable_so_origninator_host_cmd_ds_11n_batimeout_50866 origninator host_cmd_ds_11n_batimeout 0 50866 NULL
144256 +disable_so_ip_vs_conn_hashkey_fndecl_50872 ip_vs_conn_hashkey fndecl 0-2-3 50872 NULL
144257 +disable_so_twa_aen_sync_time_fndecl_50875 twa_aen_sync_time fndecl 2 50875 NULL
144258 +disable_so_cachedaddr_irda_sock_50876 cachedaddr irda_sock 0 50876 NULL
144259 +disable_so_carl9170_find_freq_idx_fndecl_50881 carl9170_find_freq_idx fndecl 3 50881 NULL
144260 +disable_so___next_timer_interrupt_fndecl_50887 __next_timer_interrupt fndecl 0 50887 NULL
144261 +disable_so_reg_addr_reg_val_50891 reg_addr reg_val 0 50891 NULL
144262 +disable_so_dma_ring_addr_i40e_virtchnl_txq_info_50900 dma_ring_addr i40e_virtchnl_txq_info 0 50900 NULL
144263 +disable_so_interval_tree_subtree_search_fndecl_50901 interval_tree_subtree_search fndecl 2-3 50901 NULL
144264 +disable_so_xfs_btree_log_ptrs_fndecl_50906 xfs_btree_log_ptrs fndecl 3-4 50906 NULL
144265 +disable_so_dib8000_get_time_us_fndecl_50908 dib8000_get_time_us fndecl 0 50908 NULL
144266 +disable_so_iscsi_nacl_attrib_store_random_datain_pdu_offsets_fndecl_50909 iscsi_nacl_attrib_store_random_datain_pdu_offsets fndecl 0-3 50909 NULL nohasharray
144267 +disable_so_seq_ceph_snap_context_50909 seq ceph_snap_context 0 50909 &disable_so_iscsi_nacl_attrib_store_random_datain_pdu_offsets_fndecl_50909
144268 +disable_so_v_radeon_vce_clock_voltage_dependency_entry_50914 v radeon_vce_clock_voltage_dependency_entry 0 50914 NULL
144269 +disable_so_authenc_verify_ahash_update_done_fndecl_50918 authenc_verify_ahash_update_done fndecl 2 50918 NULL
144270 +disable_so___get_order_fndecl_50924 __get_order fndecl 0-1 50924 NULL
144271 +disable_so_ahash_complete_fndecl_50926 ahash_complete fndecl 2 50926 NULL
144272 +disable_so_aes_encrypt_interrupt_read_fndecl_50940 aes_encrypt_interrupt_read fndecl 3-0 50940 NULL
144273 +disable_so_m_freq_tbl_50942 m freq_tbl 0 50942 NULL
144274 +disable_so_faddr_ptd_50953 faddr ptd 0 50953 NULL
144275 +disable_so_ceph_mdsmap_get_addr_fndecl_50967 ceph_mdsmap_get_addr fndecl 2 50967 NULL
144276 +disable_so_cma_bitmap_aligned_mask_fndecl_50977 cma_bitmap_aligned_mask fndecl 0-2 50977 NULL
144277 +disable_so_iscsi_tpg_attrib_show_login_timeout_fndecl_50979 iscsi_tpg_attrib_show_login_timeout fndecl 0 50979 NULL
144278 +disable_so_send_set_imon_clock_fndecl_50982 send_set_imon_clock fndecl 0 50982 NULL
144279 +disable_so_inet_saddr_inet_sock_50990 inet_saddr inet_sock 0 50990 NULL
144280 +disable_so_qlcnic_get_mac_address_fndecl_50991 qlcnic_get_mac_address fndecl 3 50991 NULL
144281 +disable_so_afs_get_MAC_address_fndecl_50999 afs_get_MAC_address fndecl 0 50999 NULL
144282 +disable_so_timestamp_batadv_frag_table_entry_51002 timestamp batadv_frag_table_entry 0 51002 NULL nohasharray
144283 +disable_so_dn_rt_hash_mask_vardecl_dn_route_c_51002 dn_rt_hash_mask vardecl_dn_route.c 0 51002 &disable_so_timestamp_batadv_frag_table_entry_51002
144284 +disable_so_phy_addr_tg3_51010 phy_addr tg3 0 51010 NULL
144285 +disable_so_vmx_set_tss_addr_fndecl_51020 vmx_set_tss_addr fndecl 0-2 51020 NULL
144286 +disable_so_dialed_frequency_ptp_clock_51022 dialed_frequency ptp_clock 0 51022 NULL nohasharray
144287 +disable_so_get_std_timing_fndecl_51022 get_std_timing fndecl 0 51022 &disable_so_dialed_frequency_ptp_clock_51022
144288 +disable_so_hdspm_get_pll_freq_fndecl_51023 hdspm_get_pll_freq fndecl 0 51023 NULL
144289 +disable_so_sb_timeshift_hpfs_sb_info_51027 sb_timeshift hpfs_sb_info 0 51027 NULL
144290 +disable_so_ob_baseaddr_l_mvumi_hs_page4_51028 ob_baseaddr_l mvumi_hs_page4 0 51028 NULL
144291 +disable_so_tw_snd_nxt_tcp_timewait_sock_51035 tw_snd_nxt tcp_timewait_sock 0 51035 NULL
144292 +disable_so_buffer_used_snd_pcm_oss_runtime_51041 buffer_used snd_pcm_oss_runtime 0 51041 NULL
144293 +disable_so_read_addr_qla8xxx_minidump_entry_queue_51046 read_addr qla8xxx_minidump_entry_queue 0 51046 NULL
144294 +disable_so_address_vardecl_it8712f_wdt_c_51057 address vardecl_it8712f_wdt.c 0 51057 NULL
144295 +disable_so_kr_rcvhdraddr_ipath_kregs_51063 kr_rcvhdraddr ipath_kregs 0 51063 NULL
144296 +disable_so_wlcore_hw_ap_sleep_fndecl_51069 wlcore_hw_ap_sleep fndecl 0 51069 NULL
144297 +disable_so_vnic_dev_intr_coal_timer_info_fndecl_51076 vnic_dev_intr_coal_timer_info fndecl 0 51076 NULL
144298 +disable_so_table2_addr_ipw2100_ordinals_51081 table2_addr ipw2100_ordinals 0 51081 NULL
144299 +disable_so_addr_bnx2x_phy_51087 addr bnx2x_phy 0 51087 NULL
144300 +disable_so_xfs_btree_copy_ptrs_fndecl_51093 xfs_btree_copy_ptrs fndecl 4 51093 NULL
144301 +disable_so_core_frequency_transition_fndecl_51097 core_frequency_transition fndecl 2 51097 NULL
144302 +disable_so_msr_ioctl_fndecl_51103 msr_ioctl fndecl 0 51103 NULL
144303 +disable_so_split_timeout_hi_fw_card_51105 split_timeout_hi fw_card 0 51105 NULL
144304 +disable_so_msg_bits_ccp_sha_req_ctx_51106 msg_bits ccp_sha_req_ctx 0 51106 NULL
144305 +disable_so_page_order_btree_keys_51110 page_order btree_keys 0 51110 NULL
144306 +disable_so_pvclock_gtod_register_notifier_fndecl_51113 pvclock_gtod_register_notifier fndecl 0 51113 NULL
144307 +disable_so_cfg80211_ibss_wext_siwfreq_fndecl_51119 cfg80211_ibss_wext_siwfreq fndecl 0 51119 NULL
144308 +disable_so_pan_id_ieee802154_hw_addr_filt_51121 pan_id ieee802154_hw_addr_filt 0 51121 NULL
144309 +disable_so_alignmask_blkcipher_walk_51130 alignmask blkcipher_walk 0 51130 NULL
144310 +disable_so_i2c_master_send_fndecl_51152 i2c_master_send fndecl 3-0 51152 NULL
144311 +disable_so_skcipher_null_givencrypt_fndecl_51153 skcipher_null_givencrypt fndecl 0 51153 NULL
144312 +disable_so_hr_last_timeout_start_o2hb_region_51155 hr_last_timeout_start o2hb_region 0 51155 NULL
144313 +disable_so_cycles_ath_cycle_counters_51156 cycles ath_cycle_counters 0 51156 NULL
144314 +disable_so_notify_remote_via_irq_fndecl_51164 notify_remote_via_irq fndecl 1 51164 NULL
144315 +disable_so_onenand_block_address_fndecl_51167 onenand_block_address fndecl 0-2 51167 NULL
144316 +disable_so_ctimensec_fuse_setattr_in_51177 ctimensec fuse_setattr_in 0 51177 NULL
144317 +disable_so_exp_time_mesh_path_51180 exp_time mesh_path 0 51180 NULL
144318 +disable_so_tcp_try_rmem_schedule_fndecl_51194 tcp_try_rmem_schedule fndecl 3 51194 NULL
144319 +disable_so_avail_mlx4_bitmap_51198 avail mlx4_bitmap 0 51198 NULL
144320 +disable_so_s2mpa01_set_ramp_delay_fndecl_51200 s2mpa01_set_ramp_delay fndecl 0 51200 NULL
144321 +disable_so_addr_e820entry_51224 addr e820entry 0 51224 NULL
144322 +disable_so_rx_dma_addr_smsc9420_pdata_51225 rx_dma_addr smsc9420_pdata 0 51225 NULL
144323 +disable_so_trf7970a_pm_runtime_resume_fndecl_51233 trf7970a_pm_runtime_resume fndecl 0 51233 NULL
144324 +disable_so_pfkey_sockaddr_extract_fndecl_51238 pfkey_sockaddr_extract fndecl 0 51238 NULL
144325 +disable_so_clock_snd_ac97_bus_51245 clock snd_ac97_bus 0 51245 NULL
144326 +disable_so_mtime_dir_entry_51261 mtime dir_entry 0 51261 NULL
144327 +disable_so_address_upper_scu_sgl_element_51271 address_upper scu_sgl_element 0 51271 NULL
144328 +disable_so_resolution_vardecl_hrtimer_c_51279 resolution vardecl_hrtimer.c 0 51279 NULL nohasharray
144329 +disable_so_r600_dpm_get_vblank_time_fndecl_51279 r600_dpm_get_vblank_time fndecl 0 51279 &disable_so_resolution_vardecl_hrtimer_c_51279
144330 +disable_so___ndelay_fndecl_51287 __ndelay fndecl 1 51287 NULL
144331 +disable_so_hashbin_lock_find_fndecl_51294 hashbin_lock_find fndecl 2 51294 NULL
144332 +disable_so_snd_es1968_apu_set_freq_fndecl_51295 snd_es1968_apu_set_freq fndecl 3 51295 NULL
144333 +disable_so_lvb_iuid_ocfs2_meta_lvb_51297 lvb_iuid ocfs2_meta_lvb 0 51297 NULL
144334 +disable_so_usb2_lpm_l1_timeout_show_fndecl_51308 usb2_lpm_l1_timeout_show fndecl 0 51308 NULL
144335 +disable_so_addrHigh_ULP_BDL_51312 addrHigh ULP_BDL 0 51312 NULL
144336 +disable_so_alarm_timer_nsleep_fndecl_51313 alarm_timer_nsleep fndecl 1 51313 NULL nohasharray
144337 +disable_so_cpufreq_get_max_state_fndecl_51313 cpufreq_get_max_state fndecl 1 51313 &disable_so_alarm_timer_nsleep_fndecl_51313
144338 +disable_so_addr_buffer2_cmd_desc_type0_51316 addr_buffer2 cmd_desc_type0 0 51316 NULL
144339 +disable_so___mlx4_cmd_fndecl_51319 __mlx4_cmd fndecl 0-2-5 51319 NULL
144340 +disable_so_addr_nvif_ioctl_rd_v0_51321 addr nvif_ioctl_rd_v0 0 51321 NULL
144341 +disable_so_register_write_lock_rt2800_ops_51323 register_write_lock rt2800_ops 3 51323 NULL
144342 +disable_so_addr_host_sg_desc_51324 addr host_sg_desc 0 51324 NULL
144343 +disable_so_swc_base_addr_vardecl_pc87413_wdt_c_51328 swc_base_addr vardecl_pc87413_wdt.c 0 51328 NULL
144344 +disable_so_myri10ge_set_mac_address_fndecl_51332 myri10ge_set_mac_address fndecl 0 51332 NULL
144345 +disable_so_xt_ct_set_timeout_fndecl_51333 xt_ct_set_timeout fndecl 0 51333 NULL
144346 +disable_so_crypto_ahash_digest_fndecl_51343 crypto_ahash_digest fndecl 0 51343 NULL
144347 +disable_so_calculate_next_time_fndecl_51345 calculate_next_time fndecl 0 51345 NULL
144348 +disable_so_from_kgid_fndecl_51359 from_kgid fndecl 0 51359 NULL
144349 +disable_so_dm9161_ack_interrupt_fndecl_51361 dm9161_ack_interrupt fndecl 0 51361 NULL nohasharray
144350 +disable_so_write_addr_mdc_hw_list_desc_51361 write_addr mdc_hw_list_desc 0 51361 &disable_so_dm9161_ack_interrupt_fndecl_51361
144351 +disable_so_clock_kvm_clock_data_51363 clock kvm_clock_data 0 51363 NULL
144352 +disable_so_sapi_sockaddr_mISDN_51369 sapi sockaddr_mISDN 0 51369 NULL
144353 +disable_so_act8b_ide_timing_51373 act8b ide_timing 0 51373 NULL
144354 +disable_so_driver_data_cpufreq_frequency_table_51376 driver_data cpufreq_frequency_table 0 51376 NULL
144355 +disable_so_timeout_clk_sdhci_host_51378 timeout_clk sdhci_host 0 51378 NULL
144356 +disable_so_ref_div_rv7xx_power_info_51381 ref_div rv7xx_power_info 0 51381 NULL
144357 +disable_so_event_jiffies_atkbd_51387 event_jiffies atkbd 0 51387 NULL
144358 +disable_so_addr_kvm_coalesced_mmio_zone_51392 addr kvm_coalesced_mmio_zone 0 51392 NULL
144359 +disable_so_print_fatal_signal_fndecl_51397 print_fatal_signal fndecl 1 51397 NULL
144360 +disable_so_de_media_interrupt_fndecl_51410 de_media_interrupt fndecl 2 51410 NULL nohasharray
144361 +disable_so_cryptomgr_schedule_probe_fndecl_51410 cryptomgr_schedule_probe fndecl 0 51410 &disable_so_de_media_interrupt_fndecl_51410
144362 +disable_so_ql_set_mac_addr_reg_fndecl_51414 ql_set_mac_addr_reg fndecl 0-4 51414 NULL
144363 +disable_so_iscsi_stat_sess_show_attr_conn_timeout_errors_fndecl_51417 iscsi_stat_sess_show_attr_conn_timeout_errors fndecl 0 51417 NULL
144364 +disable_so_read_addr_qla8044_minidump_entry_cache_51419 read_addr qla8044_minidump_entry_cache 0 51419 NULL
144365 +disable_so_clk_freq_khz_pll_tab_51420 clk_freq_khz pll_tab 0 51420 NULL
144366 +disable_so_pll_d_aic32x4_rate_divs_51425 pll_d aic32x4_rate_divs 0 51425 NULL
144367 +disable_so_T6_address_mxt_data_51429 T6_address mxt_data 0 51429 NULL
144368 +disable_so_q_addr_ioat_pq_descriptor_51439 q_addr ioat_pq_descriptor 0 51439 NULL
144369 +disable_so_imx_phy_crbit_assert_fndecl_51461 imx_phy_crbit_assert fndecl 0 51461 NULL
144370 +disable_so_soc_camera_clock_start_fndecl_51464 soc_camera_clock_start fndecl 0 51464 NULL
144371 +disable_so_after_ctime_nsec_nfsd4_change_info_51470 after_ctime_nsec nfsd4_change_info 0 51470 NULL
144372 +disable_so_free_fall_time_adxl34x_platform_data_51477 free_fall_time adxl34x_platform_data 0 51477 NULL
144373 +disable_so_new_c_uuid_parms_from_attrs_fndecl_51480 new_c_uuid_parms_from_attrs fndecl 0 51480 NULL
144374 +disable_so_addr_high_mcp_kreq_ether_recv_51484 addr_high mcp_kreq_ether_recv 0 51484 NULL
144375 +disable_so_min_freq_ufs_clk_info_51485 min_freq ufs_clk_info 0 51485 NULL
144376 +disable_so_force_addr_vardecl_sis5595_c_51490 force_addr vardecl_sis5595.c 0 51490 NULL
144377 +disable_so_byt_freq_opcode_fndecl_51497 byt_freq_opcode fndecl 0-2 51497 NULL
144378 +disable_so_vco_gma_clock_t_51506 vco gma_clock_t 0 51506 NULL
144379 +disable_so_saddr_irlan_cb_51519 saddr irlan_cb 0 51519 NULL
144380 +disable_so_r14_kvm_regs_51526 r14 kvm_regs 0 51526 NULL
144381 +disable_so_sys_image_guid_ib_device_modify_51537 sys_image_guid ib_device_modify 0 51537 NULL
144382 +disable_so_abx500_mask_and_set_register_interruptible_fndecl_51542 abx500_mask_and_set_register_interruptible fndecl 0-5 51542 NULL
144383 +disable_so_show_constraint_min_time_window_us_fndecl_51544 show_constraint_min_time_window_us fndecl 0 51544 NULL
144384 +disable_so_phys_addr_sge_rspq_51550 phys_addr sge_rspq 0 51550 NULL
144385 +disable_so_tw_substate_inet_timewait_sock_51564 tw_substate inet_timewait_sock 0 51564 NULL
144386 +disable_so_ebx_user_regs_struct32_51572 ebx user_regs_struct32 0 51572 NULL
144387 +disable_so_snd_azf3328_interrupt_fndecl_51583 snd_azf3328_interrupt fndecl 1 51583 NULL
144388 +disable_so_wl1251_acx_rx_msdu_life_time_fndecl_51591 wl1251_acx_rx_msdu_life_time fndecl 0 51591 NULL
144389 +disable_so_grh_gid_fl_mlx5_av_51610 grh_gid_fl mlx5_av 0 51610 NULL
144390 +disable_so_space_id_acpi_object_addr_handler_51611 space_id acpi_object_addr_handler 0 51611 NULL
144391 +disable_so_pick_local_ip6addrs_fndecl_51615 pick_local_ip6addrs fndecl 0 51615 NULL
144392 +disable_so_nmi_perfctr_msr_to_bit_fndecl_51618 nmi_perfctr_msr_to_bit fndecl 0-1 51618 NULL
144393 +disable_so_dcc_timeout_vardecl_nf_conntrack_irc_c_51622 dcc_timeout vardecl_nf_conntrack_irc.c 0 51622 NULL
144394 +disable_so_ath9k_hw_fbin2freq_fndecl_51628 ath9k_hw_fbin2freq fndecl 0-1 51628 NULL
144395 +disable_so_audit_signal_info_fndecl_51630 audit_signal_info fndecl 0-1 51630 NULL
144396 +disable_so_sirdev_schedule_request_fndecl_51632 sirdev_schedule_request fndecl 3-0 51632 NULL
144397 +disable_so_stb0899_write_s2reg_fndecl_51642 stb0899_write_s2reg fndecl 5-0 51642 NULL nohasharray
144398 +disable_so_sha512_ssse3_mod_init_fndecl_51642 sha512_ssse3_mod_init fndecl 0 51642 &disable_so_stb0899_write_s2reg_fndecl_51642
144399 +disable_so_get_bitmap_fndecl_51645 get_bitmap fndecl 0-2 51645 NULL
144400 +disable_so_total_bitmaps_btrfs_free_space_ctl_51648 total_bitmaps btrfs_free_space_ctl 0 51648 NULL
144401 +disable_so_sk_wmem_schedule_fndecl_51651 sk_wmem_schedule fndecl 2 51651 NULL
144402 +disable_so_btree_readpage_end_io_hook_fndecl_51654 btree_readpage_end_io_hook fndecl 0 51654 NULL
144403 +disable_so_delay_pi_adapter_51655 delay pi_adapter 0 51655 NULL
144404 +disable_so_snd_pcm_new_fndecl_51660 snd_pcm_new fndecl 0-3-4-5 51660 NULL
144405 +disable_so_soft_add_expires_seconds_xfrm_lifetime_cfg_51674 soft_add_expires_seconds xfrm_lifetime_cfg 0 51674 NULL
144406 +disable_so_ib_query_gid_fndecl_51677 ib_query_gid fndecl 0-2-3 51677 NULL
144407 +disable_so_m_hi_cfg_timeout_drxk_state_51689 m_hi_cfg_timeout drxk_state 0 51689 NULL
144408 +disable_so_mma9553_runtime_resume_fndecl_51690 mma9553_runtime_resume fndecl 0 51690 NULL
144409 +disable_so_phy_pm_runtime_put_fndecl_51692 phy_pm_runtime_put fndecl 0 51692 NULL
144410 +disable_so_cdclk_freq_drm_i915_private_51693 cdclk_freq drm_i915_private 0 51693 NULL
144411 +disable_so__get_div_fndecl_51696 _get_div fndecl 2-0 51696 NULL
144412 +disable_so_sit_ver_bitmap_bytesize_f2fs_checkpoint_51697 sit_ver_bitmap_bytesize f2fs_checkpoint 0 51697 NULL
144413 +disable_so_seq_framebuf_51700 seq framebuf 0 51700 NULL nohasharray
144414 +disable_so_tsc_drv_init_fndecl_51700 tsc_drv_init fndecl 0 51700 &disable_so_seq_framebuf_51700
144415 +disable_so_lower_first_uid_gid_extent_51714 lower_first uid_gid_extent 0 51714 NULL
144416 +disable_so_acpi_enter_sleep_state_prep_fndecl_51716 acpi_enter_sleep_state_prep fndecl 0-1 51716 NULL
144417 +disable_so_set_data_timeout_fndecl_51718 set_data_timeout fndecl 2-3 51718 NULL
144418 +disable_so_suspend_test_start_time_vardecl_suspend_test_c_51720 suspend_test_start_time vardecl_suspend_test.c 0 51720 NULL
144419 +disable_so_phy_addr_uli526x_board_info_51722 phy_addr uli526x_board_info 0 51722 NULL
144420 +disable_so_vdelay_bttv_geometry_51725 vdelay bttv_geometry 0 51725 NULL
144421 +disable_so_rv6xx_find_memory_clock_with_highest_vco_fndecl_51726 rv6xx_find_memory_clock_with_highest_vco fndecl 2-3 51726 NULL
144422 +disable_so_blocksize_crypto_report_hash_51730 blocksize crypto_report_hash 0 51730 NULL
144423 +disable_so_set_param_timeout_fndecl_51735 set_param_timeout fndecl 0 51735 NULL
144424 +disable_so_iowrite16be_fndecl_51739 iowrite16be fndecl 1 51739 NULL
144425 +disable_so_lvds_chip_slave_addr_lvds_chip_information_51750 lvds_chip_slave_addr lvds_chip_information 0 51750 NULL
144426 +disable_so_xhci_queue_address_device_fndecl_51755 xhci_queue_address_device fndecl 0-3-4 51755 NULL
144427 +disable_so_rx_abs_int_delay_e1000_adapter_51763 rx_abs_int_delay e1000_adapter 0 51763 NULL
144428 +disable_so_ext4_wait_block_bitmap_fndecl_51764 ext4_wait_block_bitmap fndecl 2 51764 NULL
144429 +disable_so_tid_host_cmd_ds_11n_batimeout_51772 tid host_cmd_ds_11n_batimeout 0 51772 NULL
144430 +disable_so_mpll_ss1_rv770_clock_registers_51773 mpll_ss1 rv770_clock_registers 0 51773 NULL
144431 +disable_so_xpc_disengage_timelimit_vardecl_51789 xpc_disengage_timelimit vardecl 0 51789 NULL
144432 +disable_so_current_dispclk_radeon_clock_51795 current_dispclk radeon_clock 0 51795 NULL
144433 +disable_so_mclk_sm501_clock_51799 mclk sm501_clock 0 51799 NULL
144434 +disable_so_frequency_mixart_clock_properties_51800 frequency mixart_clock_properties 0 51800 NULL nohasharray
144435 +disable_so_freq_p54_rssi_db_entry_51800 freq p54_rssi_db_entry 0 51800 &disable_so_frequency_mixart_clock_properties_51800
144436 +disable_so_display_delay_enable_s5p_mfc_ctx_51814 display_delay_enable s5p_mfc_ctx 0 51814 NULL
144437 +disable_so_phys_to_virt_fndecl_51830 phys_to_virt fndecl 1 51830 NULL
144438 +disable_so___lock_timer_fndecl_51836 __lock_timer fndecl 1 51836 NULL
144439 +disable_so_gid_index_mthca_av_51840 gid_index mthca_av 0 51840 NULL
144440 +disable_so_physical_address_smbios_cru64_info_51854 physical_address smbios_cru64_info 0 51854 NULL
144441 +disable_so_sleep_em28xx_reg_seq_51857 sleep em28xx_reg_seq 0 51857 NULL
144442 +disable_so_current_frequency_or51211_state_51860 current_frequency or51211_state 0 51860 NULL
144443 +disable_so_timer_trig_init_fndecl_51865 timer_trig_init fndecl 0 51865 NULL
144444 +disable_so___posix_timers_find_fndecl_51867 __posix_timers_find fndecl 3 51867 NULL
144445 +disable_so_xattr_hash_fndecl_51881 xattr_hash fndecl 2 51881 NULL
144446 +disable_so_ntfs_bitmap_set_bit_fndecl_51888 ntfs_bitmap_set_bit fndecl 2 51888 NULL
144447 +disable_so_hp_ntimer_hpets_51897 hp_ntimer hpets 0 51897 NULL
144448 +disable_so_crypto_blkcipher_decrypt_iv_fndecl_51901 crypto_blkcipher_decrypt_iv fndecl 0-4 51901 NULL
144449 +disable_so_emitted_jiffies_drm_i915_gem_request_51929 emitted_jiffies drm_i915_gem_request 0 51929 NULL
144450 +disable_so_PageAddress__MPI2_CONFIG_REQUEST_51930 PageAddress _MPI2_CONFIG_REQUEST 0 51930 NULL
144451 +disable_so_mlx4_read_clock_fndecl_51933 mlx4_read_clock fndecl 0 51933 NULL
144452 +disable_so_plh_retry_timestamp_pnfs_layout_hdr_51936 plh_retry_timestamp pnfs_layout_hdr 0 51936 NULL nohasharray
144453 +disable_so_ext4_set_bitmap_checksums_fndecl_51936 ext4_set_bitmap_checksums fndecl 0-2 51936 &disable_so_plh_retry_timestamp_pnfs_layout_hdr_51936
144454 +disable_so_padlock_sha256_finup_fndecl_51938 padlock_sha256_finup fndecl 0 51938 NULL
144455 +disable_so_delay_usec_e1000_nvm_info_51943 delay_usec e1000_nvm_info 0 51943 NULL
144456 +disable_so_guest_phys_addr_kvm_userspace_memory_region_51947 guest_phys_addr kvm_userspace_memory_region 0 51947 NULL
144457 +disable_so_addr_drm_radeon_gem_userptr_51948 addr drm_radeon_gem_userptr 0 51948 NULL
144458 +disable_so__regulator_enable_delay_fndecl_51949 _regulator_enable_delay fndecl 1 51949 NULL
144459 +disable_so_grp_time_xfs_mru_cache_51952 grp_time xfs_mru_cache 0 51952 NULL
144460 +disable_so_clock_realtek_pci_ms_51953 clock realtek_pci_ms 0 51953 NULL
144461 +disable_so_sm_ll_lookup_bitmap_fndecl_51973 sm_ll_lookup_bitmap fndecl 0-2 51973 NULL
144462 +disable_so_sa_family_sockaddr_51986 sa_family sockaddr 0 51986 NULL
144463 +disable_so_i_dtime_ext3_inode_info_51992 i_dtime ext3_inode_info 0 51992 NULL
144464 +disable_so_bitmap_ipmac_gc_test_fndecl_51993 bitmap_ipmac_gc_test fndecl 3 51993 NULL
144465 +disable_so_ocfs2_change_ctime_fndecl_52000 ocfs2_change_ctime fndecl 0 52000 NULL
144466 +disable_so_sadb_lifetime_usetime_sadb_lifetime_52005 sadb_lifetime_usetime sadb_lifetime 0 52005 NULL
144467 +disable_so_sysctl_lap_keepalive_time_vardecl_52006 sysctl_lap_keepalive_time vardecl 0 52006 NULL nohasharray
144468 +disable_so_address_u132_command_52006 address u132_command 0 52006 &disable_so_sysctl_lap_keepalive_time_vardecl_52006
144469 +disable_so_txdesc_interrupt_mask_ath_hw_52011 txdesc_interrupt_mask ath_hw 0 52011 NULL
144470 +disable_so_rebind_irq_to_cpu_fndecl_52013 rebind_irq_to_cpu fndecl 1-2 52013 NULL
144471 +disable_so_gid_numa_group_52023 gid numa_group 0 52023 NULL
144472 +disable_so_cpuidle_add_sysfs_fndecl_52026 cpuidle_add_sysfs fndecl 0 52026 NULL
144473 +disable_so_selinux_task_getpgid_fndecl_52032 selinux_task_getpgid fndecl 0 52032 NULL
144474 +disable_so_demod_address_cx24116_config_52035 demod_address cx24116_config 0 52035 NULL
144475 +disable_so_sched_group_set_rt_runtime_fndecl_52036 sched_group_set_rt_runtime fndecl 2-0 52036 NULL
144476 +disable_so_ntp_error_timekeeper_52044 ntp_error timekeeper 0 52044 NULL
144477 +disable_so_sys_addr_to_dram_addr_fndecl_52052 sys_addr_to_dram_addr fndecl 0-2 52052 NULL
144478 +disable_so_shared_data_busaddr_ahc_softc_52059 shared_data_busaddr ahc_softc 0 52059 NULL
144479 +disable_so_gl_demote_time_gfs2_glock_52068 gl_demote_time gfs2_glock 0 52068 NULL
144480 +disable_so_m41t93_get_time_fndecl_52075 m41t93_get_time fndecl 0 52075 NULL
144481 +disable_so_reg_val_coeff_clk_div_52082 reg_val coeff_clk_div 0 52082 NULL
144482 +disable_so_dap_fcgs_gidpn_resp_s_52084 dap fcgs_gidpn_resp_s 0 52084 NULL
144483 +disable_so_kbd_backlight_timeout_show_fndecl_52086 kbd_backlight_timeout_show fndecl 0 52086 NULL
144484 +disable_so_ifa_address_in_ifaddr_52095 ifa_address in_ifaddr 0 52095 NULL
144485 +disable_so_mmc_set_clock_fndecl_52096 mmc_set_clock fndecl 2 52096 NULL
144486 +disable_so_constant_timex_52100 constant timex 0 52100 NULL
144487 +disable_so_rds_ib_remove_ipaddr_fndecl_52103 rds_ib_remove_ipaddr fndecl 2 52103 NULL
144488 +disable_so_adf4350_set_freq_fndecl_52106 adf4350_set_freq fndecl 0-2 52106 NULL
144489 +disable_so_max_mtime_sit_info_52107 max_mtime sit_info 0 52107 NULL
144490 +disable_so_retry_delay_timestamp_fc_port_52109 retry_delay_timestamp fc_port 0 52109 NULL
144491 +disable_so_sha256_ssse3_mod_init_fndecl_52112 sha256_ssse3_mod_init fndecl 0 52112 NULL
144492 +disable_so_nilfs_btree_init_fndecl_52115 nilfs_btree_init fndecl 0 52115 NULL
144493 +disable_so_baseaddr_ds1685_priv_52117 baseaddr ds1685_priv 0 52117 NULL
144494 +disable_so_vga_get_uninterruptible_fndecl_52134 vga_get_uninterruptible fndecl 0 52134 NULL
144495 +disable_so_gr_handle_signal_fndecl_52137 gr_handle_signal fndecl 2 52137 NULL
144496 +disable_so_sample_bits_snd_pcm_runtime_52138 sample_bits snd_pcm_runtime 0 52138 NULL
144497 +disable_so_make_kgid_fndecl_52149 make_kgid fndecl 2 52149 NULL
144498 +disable_so_skcipher_sendmsg_fndecl_52153 skcipher_sendmsg fndecl 0-3 52153 NULL
144499 +disable_so_base_addr_ce_space_ath10k_ce_ring_52154 base_addr_ce_space ath10k_ce_ring 0 52154 NULL
144500 +disable_so_msr_guest_kernel_gs_base_vcpu_vmx_52157 msr_guest_kernel_gs_base vcpu_vmx 0 52157 NULL
144501 +disable_so_mpll_func_cntl_rv730_clock_registers_52160 mpll_func_cntl rv730_clock_registers 0 52160 NULL
144502 +disable_so_system_time_xenpf_settime_52164 system_time xenpf_settime 0 52164 NULL
144503 +disable_so_ddiv_gk104_clk_info_52171 ddiv gk104_clk_info 0 52171 NULL
144504 +disable_so_detect_pll_input_clock_fndecl_52172 detect_pll_input_clock fndecl 1-0 52172 NULL
144505 +disable_so_mpll_dq_func_cntl_2_ni_clock_registers_52173 mpll_dq_func_cntl_2 ni_clock_registers 0 52173 NULL
144506 +disable_so_opmode_delay_picolcd_data_52176 opmode_delay picolcd_data 0 52176 NULL
144507 +disable_so_get_display_clock_speed_drm_i915_display_funcs_52177 get_display_clock_speed drm_i915_display_funcs 0 52177 NULL
144508 +disable_so_addr_lp8788_chg_param_52185 addr lp8788_chg_param 0 52185 NULL
144509 +disable_so_beacon_interval_il_rxon_time_cmd_52191 beacon_interval il_rxon_time_cmd 0 52191 NULL
144510 +disable_so_threshold_high_nes_hw_tune_timer_52193 threshold_high nes_hw_tune_timer 0 52193 NULL
144511 +disable_so_timeout_ms_rdma_ucm_resolve_route_52203 timeout_ms rdma_ucm_resolve_route 0 52203 NULL
144512 +disable_so___mmc_set_signal_voltage_fndecl_52208 __mmc_set_signal_voltage fndecl 0 52208 NULL
144513 +disable_so_jhash_2words_fndecl_52211 jhash_2words fndecl 0-1-2 52211 NULL
144514 +disable_so_suspend_time_iwl_scan_cmd_52218 suspend_time iwl_scan_cmd 0 52218 NULL
144515 +disable_so_sha1_mb_async_update_fndecl_52220 sha1_mb_async_update fndecl 0 52220 NULL
144516 +disable_so_sleep_cx231xx_reg_seq_52228 sleep cx231xx_reg_seq 0 52228 NULL
144517 +disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243 select_addr_1 qla8044_minidump_entry_rdmux2 0 52243 NULL nohasharray
144518 +disable_so_SYSC_setregid_fndecl_52243 SYSC_setregid fndecl 0 52243 &disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243
144519 +disable_so_snd_pcm_timer_resolution_fndecl_52247 snd_pcm_timer_resolution fndecl 0 52247 NULL
144520 +disable_so_s_hash_function_reiserfs_sb_info_52248 s_hash_function reiserfs_sb_info 0-2 52248 NULL
144521 +disable_so_read_addr_qla8044_minidump_entry_rdmux2_52249 read_addr qla8044_minidump_entry_rdmux2 0 52249 NULL
144522 +disable_so_comp_addr_lo_dmae_command_52260 comp_addr_lo dmae_command 0 52260 NULL
144523 +disable_so_tsl2563_read_interrupt_config_fndecl_52267 tsl2563_read_interrupt_config fndecl 0 52267 NULL
144524 +disable_so_mlx4_ib_init_alias_guid_service_fndecl_52269 mlx4_ib_init_alias_guid_service fndecl 0 52269 NULL
144525 +disable_so_pvr2_hdw_get_eeprom_addr_fndecl_52271 pvr2_hdw_get_eeprom_addr fndecl 0 52271 NULL
144526 +disable_so_coalescing_timeo_bna_ib_52276 coalescing_timeo bna_ib 0 52276 NULL
144527 +disable_so_sll_protocol_sockaddr_ll_52284 sll_protocol sockaddr_ll 0 52284 NULL nohasharray
144528 +disable_so_cmd64x_set_timing_fndecl_52284 cmd64x_set_timing fndecl 3 52284 &disable_so_sll_protocol_sockaddr_ll_52284
144529 +disable_so_entrytime_batadv_bcast_duplist_entry_52297 entrytime batadv_bcast_duplist_entry 0 52297 NULL
144530 +disable_so_cumul_ack_westwood_52298 cumul_ack westwood 0 52298 NULL
144531 +disable_so_r2b_val_fc2580_freq_regs_52299 r2b_val fc2580_freq_regs 0 52299 NULL
144532 +disable_so_btree_remove32_fndecl_52302 btree_remove32 fndecl 2 52302 NULL
144533 +disable_so_btrfs_insert_delayed_items_fndecl_52308 btrfs_insert_delayed_items fndecl 0 52308 NULL
144534 +disable_so_bios_limit_cpufreq_driver_52312 bios_limit cpufreq_driver 1 52312 NULL
144535 +disable_so___nf_conntrack_hash_insert_fndecl_52323 __nf_conntrack_hash_insert fndecl 2-3 52323 NULL
144536 +disable_so_rapl_get_attr_cpumask_fndecl_52324 rapl_get_attr_cpumask fndecl 0 52324 NULL
144537 +disable_so_frequency_dst_state_52328 frequency dst_state 0 52328 NULL
144538 +disable_so_status_fifo_addr_sbp_login_descriptor_52353 status_fifo_addr sbp_login_descriptor 0 52353 NULL
144539 +disable_so_musb_write_txhubaddr_fndecl_52354 musb_write_txhubaddr fndecl 2-3 52354 NULL
144540 +disable_so_cx18_msleep_timeout_fndecl_52356 cx18_msleep_timeout fndecl 1 52356 NULL
144541 +disable_so_input_event_fndecl_52364 input_event fndecl 3-4 52364 NULL
144542 +disable_so_timeout_ip_vs_sync_v6_52374 timeout ip_vs_sync_v6 0 52374 NULL
144543 +disable_so_wait_on_bit_io_fndecl_52381 wait_on_bit_io fndecl 0 52381 NULL
144544 +disable_so_mthca_mr_alloc_notrans_fndecl_52385 mthca_mr_alloc_notrans fndecl 0-2 52385 NULL
144545 +disable_so_pwm_divisor_nvbios_perf_fan_52386 pwm_divisor nvbios_perf_fan 0 52386 NULL nohasharray
144546 +disable_so_iscsi_ipv4addr_port_info_52386 iscsi_ipv4addr port_info 0 52386 &disable_so_pwm_divisor_nvbios_perf_fan_52386
144547 +disable_so_dpp_unmapped_addr_be_dev_info_52388 dpp_unmapped_addr be_dev_info 0 52388 NULL nohasharray
144548 +disable_so_request_threaded_irq_fndecl_52388 request_threaded_irq fndecl 0-1-4 52388 &disable_so_dpp_unmapped_addr_be_dev_info_52388
144549 +disable_so_g84_cipher_ctor_fndecl_52389 g84_cipher_ctor fndecl 0 52389 NULL
144550 +disable_so_time_constant_vardecl_ntp_c_52392 time_constant vardecl_ntp.c 0 52392 NULL nohasharray
144551 +disable_so_sis_ata100_program_timings_fndecl_52392 sis_ata100_program_timings fndecl 2 52392 &disable_so_time_constant_vardecl_ntp_c_52392
144552 +disable_so_hbqaddrHigh_config_hbq_var_52395 hbqaddrHigh config_hbq_var 0 52395 NULL
144553 +disable_so_objectid_btrfs_delayed_data_ref_52398 objectid btrfs_delayed_data_ref 0 52398 NULL
144554 +disable_so_btrfs_schedule_bio_fndecl_52412 btrfs_schedule_bio fndecl 3 52412 NULL
144555 +disable_so_wm8804_set_clkdiv_fndecl_52423 wm8804_set_clkdiv fndecl 3 52423 NULL
144556 +disable_so_tm_year_rtc_time_52437 tm_year rtc_time 0 52437 NULL
144557 +disable_so_message_age_timer_value___port_info_52442 message_age_timer_value __port_info 0 52442 NULL nohasharray
144558 +disable_so_genwqe_debugfs_prev_dbg_uid0_open_fndecl_52442 genwqe_debugfs_prev_dbg_uid0_open fndecl 0 52442 &disable_so_message_age_timer_value___port_info_52442
144559 +disable_so_time_stamp_pch_gbe_buffer_52453 time_stamp pch_gbe_buffer 0 52453 NULL
144560 +disable_so_fsl_pwm_calculate_cycles_fndecl_52454 fsl_pwm_calculate_cycles fndecl 0-2 52454 NULL
144561 +disable_so_default_timetolive_sctp_association_52455 default_timetolive sctp_association 0 52455 NULL
144562 +disable_so_xc2028_sleep_fndecl_52469 xc2028_sleep fndecl 0 52469 NULL
144563 +disable_so_regulator_map_voltage_linear_fndecl_52488 regulator_map_voltage_linear fndecl 0-2-3 52488 NULL
144564 +disable_so_nsecs_to_jiffies64_fndecl_52497 nsecs_to_jiffies64 fndecl 0-1 52497 NULL
144565 +disable_so_pm_runtime_resume_fndecl_52501 pm_runtime_resume fndecl 0 52501 NULL
144566 +disable_so_stop_threshold_snd_pcm_runtime_52503 stop_threshold snd_pcm_runtime 0 52503 NULL
144567 +disable_so_il_get_passive_dwell_time_fndecl_52511 il_get_passive_dwell_time fndecl 0 52511 NULL nohasharray
144568 +disable_so_show_src_clock_sel_fndecl_52511 show_src_clock_sel fndecl 0 52511 &disable_so_il_get_passive_dwell_time_fndecl_52511
144569 +disable_so_mxl111sf_frontend_attach_atsc_mh_fndecl_52518 mxl111sf_frontend_attach_atsc_mh fndecl 0 52518 NULL
144570 +disable_so_gcm_hash_assoc_continue_fndecl_52527 gcm_hash_assoc_continue fndecl 0 52527 NULL
144571 +disable_so_time_next_packet_fq_flow_52535 time_next_packet fq_flow 0 52535 NULL nohasharray
144572 +disable_so_exit_deep_sleep_lbs_private_52535 exit_deep_sleep lbs_private 0 52535 &disable_so_time_next_packet_fq_flow_52535
144573 +disable_so_page_check_address_pmd_fndecl_52537 page_check_address_pmd fndecl 3 52537 NULL
144574 +disable_so_stime_signal_struct_52540 stime signal_struct 0 52540 NULL nohasharray
144575 +disable_so_hblank_lo_oaktrail_timing_info_52540 hblank_lo oaktrail_timing_info 0 52540 &disable_so_stime_signal_struct_52540
144576 +disable_so_sgl_pg1_addr_lo_sgl_page_pairs_52550 sgl_pg1_addr_lo sgl_page_pairs 0 52550 NULL
144577 +disable_so_tx_timeout_last_recovery_i40e_pf_52564 tx_timeout_last_recovery i40e_pf 0 52564 NULL nohasharray
144578 +disable_so_clock_name_show_fndecl_52564 clock_name_show fndecl 0 52564 &disable_so_tx_timeout_last_recovery_i40e_pf_52564
144579 +disable_so_c67x00_sched_start_scheduler_fndecl_52570 c67x00_sched_start_scheduler fndecl 0 52570 NULL
144580 +disable_so_acpi_sleep_tts_switch_fndecl_52575 acpi_sleep_tts_switch fndecl 1 52575 NULL
144581 +disable_so_addr0_nphy_rf_control_override_rev2_52577 addr0 nphy_rf_control_override_rev2 0 52577 NULL
144582 +disable_so_tv_nsec_xfs_bstime_52584 tv_nsec xfs_bstime 0 52584 NULL
144583 +disable_so_xfs_btree_check_sptr_fndecl_52587 xfs_btree_check_sptr fndecl 0 52587 NULL
144584 +disable_so_get_vmx_mem_address_fndecl_52590 get_vmx_mem_address fndecl 3 52590 NULL
144585 +disable_so_suspend_time_il3945_scan_cmd_52601 suspend_time il3945_scan_cmd 0 52601 NULL nohasharray
144586 +disable_so_ahash_def_finup_finish2_fndecl_52601 ahash_def_finup_finish2 fndecl 2 52601 &disable_so_suspend_time_il3945_scan_cmd_52601
144587 +disable_so_si4713_s_frequency_fndecl_52608 si4713_s_frequency fndecl 0 52608 NULL
144588 +disable_so_icsk_timeout_inet_connection_sock_52623 icsk_timeout inet_connection_sock 0 52623 NULL
144589 +disable_so____skb_get_hash_fndecl_52630 ___skb_get_hash fndecl 0 52630 NULL
144590 +disable_so_dn_nl_fill_ifaddr_fndecl_52641 dn_nl_fill_ifaddr fndecl 0-3-5 52641 NULL
144591 +disable_so_physical_reg_addr_wl1251_52646 physical_reg_addr wl1251 0 52646 NULL
144592 +disable_so_setup_ata_timing_52661 setup ata_timing 0 52661 NULL
144593 +disable_so_delay_tc_pie_xstats_52665 delay tc_pie_xstats 0 52665 NULL
144594 +disable_so_sys_utimensat_fndecl_52666 sys_utimensat fndecl 1 52666 NULL
144595 +disable_so_ringid_wmi_vring_cfg_52670 ringid wmi_vring_cfg 0 52670 NULL
144596 +disable_so_cmd_timeout_ms_mmc_ioc_cmd_52681 cmd_timeout_ms mmc_ioc_cmd 0 52681 NULL
144597 +disable_so_fr_timer_fndecl_52687 fr_timer fndecl 1 52687 NULL
144598 +disable_so_if_sdio_enter_deep_sleep_fndecl_52688 if_sdio_enter_deep_sleep fndecl 0 52688 NULL
144599 +disable_so_set_rate_control_runtime_52697 set_rate control_runtime 0 52697 NULL
144600 +disable_so_req_consumer_index_phy_addr_low_ql3_adapter_52703 req_consumer_index_phy_addr_low ql3_adapter 0 52703 NULL
144601 +disable_so_addr_max17042_reg_data_52712 addr max17042_reg_data 0 52712 NULL
144602 +disable_so_cit_get_clock_div_fndecl_52713 cit_get_clock_div fndecl 0 52713 NULL nohasharray
144603 +disable_so_mpll_ss2_si_clock_registers_52713 mpll_ss2 si_clock_registers 0 52713 &disable_so_cit_get_clock_div_fndecl_52713
144604 +disable_so_addr_pt1_table_52714 addr pt1_table 0 52714 NULL
144605 +disable_so_ds1742_rtc_read_time_fndecl_52716 ds1742_rtc_read_time fndecl 0 52716 NULL nohasharray
144606 +disable_so_control_cache_address_on_dsp_dsp_obj_52716 control_cache_address_on_dsp dsp_obj 0 52716 &disable_so_ds1742_rtc_read_time_fndecl_52716
144607 +disable_so_ide_get_lba_addr_fndecl_52722 ide_get_lba_addr fndecl 0 52722 NULL
144608 +disable_so_msi_addr_drm_psb_private_52725 msi_addr drm_psb_private 0 52725 NULL
144609 +disable_so_migratepage_address_space_operations_52735 migratepage address_space_operations 0 52735 NULL
144610 +disable_so_apicid_cpuinfo_x86_52743 apicid cpuinfo_x86 0 52743 NULL
144611 +disable_so_ageing_time_show_fndecl_52746 ageing_time_show fndecl 0 52746 NULL
144612 +disable_so___hw_addr_add_fndecl_52752 __hw_addr_add fndecl 0-3 52752 NULL
144613 +disable_so_addr_end_vardecl_init_64_c_52755 addr_end vardecl_init_64.c 0 52755 NULL
144614 +disable_so_cmd_box_addr_wl1271_52756 cmd_box_addr wl1271 0 52756 NULL
144615 +disable_so_crypto_cipher_setkey_fndecl_52762 crypto_cipher_setkey fndecl 0-3 52762 NULL
144616 +disable_so_wmi_del_cipher_key_fndecl_52767 wmi_del_cipher_key fndecl 0 52767 NULL
144617 +disable_so_ptp_dp83640_adjtime_fndecl_52770 ptp_dp83640_adjtime fndecl 2 52770 NULL nohasharray
144618 +disable_so___hw_addr_del_ex_fndecl_52770 __hw_addr_del_ex fndecl 0-3 52770 &disable_so_ptp_dp83640_adjtime_fndecl_52770
144619 +disable_so_reiserfs_init_bitmap_cache_fndecl_52773 reiserfs_init_bitmap_cache fndecl 0 52773 NULL
144620 +disable_so_time_to_jiffies_fndecl_52778 time_to_jiffies fndecl 1-2-0 52778 NULL nohasharray
144621 +disable_so_cleanup_addr_jit_context_52778 cleanup_addr jit_context 0 52778 &disable_so_time_to_jiffies_fndecl_52778 nohasharray
144622 +disable_so_vmx_set_apic_access_page_addr_fndecl_52778 vmx_set_apic_access_page_addr fndecl 2 52778 &disable_so_cleanup_addr_jit_context_52778
144623 +disable_so_sxgbe_rx_interrupt_fndecl_52784 sxgbe_rx_interrupt fndecl 1 52784 NULL
144624 +disable_so_twl_rtc_set_time_fndecl_52785 twl_rtc_set_time fndecl 0 52785 NULL
144625 +disable_so_mwifiex_set_aes_key_v2_fndecl_52787 mwifiex_set_aes_key_v2 fndecl 0 52787 NULL
144626 +disable_so_start_address_rtl2832_reg_entry_52792 start_address rtl2832_reg_entry 0 52792 NULL nohasharray
144627 +disable_so_encrypt_crypto_aead_52792 encrypt crypto_aead 0 52792 &disable_so_start_address_rtl2832_reg_entry_52792
144628 +disable_so_dynamic_ps_timeout_write_fndecl_52802 dynamic_ps_timeout_write fndecl 3-0 52802 NULL
144629 +disable_so_sge_addr_vf_pf_rxq_params_52803 sge_addr vf_pf_rxq_params 0 52803 NULL
144630 +disable_so_rtc_time64_to_tm_fndecl_52820 rtc_time64_to_tm fndecl 1 52820 NULL
144631 +disable_so_fwnet_hwaddr_fifo_fndecl_52824 fwnet_hwaddr_fifo fndecl 0 52824 NULL
144632 +disable_so_clock_khz_dib0090_io_config_52827 clock_khz dib0090_io_config 0 52827 NULL
144633 +disable_so_tuner_frequency_m88rs2000_state_52828 tuner_frequency m88rs2000_state 0 52828 NULL
144634 +disable_so_twl4030_wdt_set_timeout_fndecl_52829 twl4030_wdt_set_timeout fndecl 2 52829 NULL
144635 +disable_so_min_vruntime_cfs_rq_52838 min_vruntime cfs_rq 0 52838 NULL
144636 +disable_so_nv04_timer_alarm_fndecl_52840 nv04_timer_alarm fndecl 2 52840 NULL
144637 +disable_so_sched_runtime_sched_attr_52849 sched_runtime sched_attr 0 52849 NULL
144638 +disable_so_seq_netlink_callback_52857 seq netlink_callback 0 52857 NULL
144639 +disable_so_addr_hi_tg3_tx_buffer_desc_52858 addr_hi tg3_tx_buffer_desc 0 52858 NULL
144640 +disable_so_dev_addr_add_fndecl_52865 dev_addr_add fndecl 0 52865 NULL
144641 +disable_so_mxt_lookup_bootloader_address_fndecl_52874 mxt_lookup_bootloader_address fndecl 0 52874 NULL
144642 +disable_so_rhashtable_init_fndecl_52886 rhashtable_init fndecl 0 52886 NULL
144643 +disable_so_log_unit_to_scsi3addr_fndecl_52888 log_unit_to_scsi3addr fndecl 3 52888 NULL
144644 +disable_so_warmup_time_tc_sfb_qopt_52893 warmup_time tc_sfb_qopt 0 52893 NULL
144645 +disable_so_acpi_ex_system_signal_event_fndecl_52910 acpi_ex_system_signal_event fndecl 0 52910 NULL
144646 +disable_so_ccp_aes_rfc3686_crypt_fndecl_52911 ccp_aes_rfc3686_crypt fndecl 0 52911 NULL
144647 +disable_so_bf_daddr_ath_rxbuf_52915 bf_daddr ath_rxbuf 0 52915 NULL
144648 +disable_so_addr_aac_entry_52921 addr aac_entry 0 52921 NULL
144649 +disable_so_slack_start_time_dql_52922 slack_start_time dql 0 52922 NULL
144650 +disable_so_mma8452_set_hp_filter_frequency_fndecl_52927 mma8452_set_hp_filter_frequency fndecl 0-2-3 52927 NULL
144651 +disable_so_dqb_btime_mem_dqblk_52929 dqb_btime mem_dqblk 0 52929 NULL
144652 +disable_so_mthca_cmd_fndecl_52930 mthca_cmd fndecl 0-2-3 52930 NULL
144653 +disable_so_signal_nr_nvkm_specdom_52941 signal_nr nvkm_specdom 0 52941 NULL
144654 +disable_so_bitmap_find_next_zero_area_fndecl_52944 bitmap_find_next_zero_area fndecl 0-2-3-4-5 52944 NULL
144655 +disable_so_host_addr_p54p_desc_52948 host_addr p54p_desc 0 52948 NULL
144656 +disable_so_signal_strength_wireless_stats_52949 signal_strength wireless_stats 0 52949 NULL
144657 +disable_so_vnic_dev_intr_coal_timer_hw_to_usec_fndecl_52950 vnic_dev_intr_coal_timer_hw_to_usec fndecl 0-2 52950 NULL
144658 +disable_so_base_time_dummy_systimer_pcm_52952 base_time dummy_systimer_pcm 0 52952 NULL
144659 +disable_so_setkey_crypto_ahash_52959 setkey crypto_ahash 0-3 52959 NULL
144660 +disable_so_sll_hatype_sockaddr_ll_52974 sll_hatype sockaddr_ll 0 52974 NULL
144661 +disable_so_ktime_get_raw_fast_ns_fndecl_52986 ktime_get_raw_fast_ns fndecl 0 52986 NULL
144662 +disable_so_tv_freq_tuner_52988 tv_freq tuner 0 52988 NULL
144663 +disable_so_cifs_ci_hash_fndecl_52999 cifs_ci_hash fndecl 0 52999 NULL
144664 +disable_so_last_jiffies_rtc_plat_data_53004 last_jiffies rtc_plat_data 0 53004 NULL
144665 +disable_so_base_addr_eisa_device_53008 base_addr eisa_device 0 53008 NULL
144666 +disable_so_vbaddr_drm_savage_common_state_53015 vbaddr drm_savage_common_state 0 53015 NULL
144667 +disable_so_cal_timeout_at86rf230_local_53017 cal_timeout at86rf230_local 0 53017 NULL
144668 +disable_so_alarmtimer_init_fndecl_53028 alarmtimer_init fndecl 0 53028 NULL
144669 +disable_so_compat_sys_timerfd_gettime_fndecl_53031 compat_sys_timerfd_gettime fndecl 1 53031 NULL
144670 +disable_so_gpu_addr_radeon_vce_53033 gpu_addr radeon_vce 0 53033 NULL
144671 +disable_so_valleyview_get_display_clock_speed_fndecl_53041 valleyview_get_display_clock_speed fndecl 0 53041 NULL
144672 +disable_so__base_interrupt_fndecl_53046 _base_interrupt fndecl 1 53046 NULL
144673 +disable_so_qtail_snd_timer_user_53048 qtail snd_timer_user 0 53048 NULL
144674 +disable_so_max14577_set_fast_charge_timer_fndecl_53049 max14577_set_fast_charge_timer fndecl 2-0 53049 NULL nohasharray
144675 +disable_so_addr_mce_53049 addr mce 0 53049 &disable_so_max14577_set_fast_charge_timer_fndecl_53049
144676 +disable_so_find_next_bit_fndecl_53053 find_next_bit fndecl 0-2-3 53053 NULL
144677 +disable_so_sci_apc_agent_start_timer_fndecl_53055 sci_apc_agent_start_timer fndecl 2 53055 NULL
144678 +disable_so_padlock_sha_update_fndecl_53061 padlock_sha_update fndecl 0-3 53061 NULL
144679 +disable_so_soft_byte_limit_xfrm_lifetime_cfg_53071 soft_byte_limit xfrm_lifetime_cfg 0 53071 NULL
144680 +disable_so_addr_ahd_dma64_seg_53072 addr ahd_dma64_seg 0 53072 NULL
144681 +disable_so_address_bus_request_53084 address bus_request 0 53084 NULL
144682 +disable_so_xfs_btree_dec_cursor_fndecl_53087 xfs_btree_dec_cursor fndecl 0 53087 NULL
144683 +disable_so_gro_flush_timeout_store_fndecl_53088 gro_flush_timeout_store fndecl 4-0 53088 NULL
144684 +disable_so_handle_nested_irq_fndecl_53092 handle_nested_irq fndecl 1 53092 NULL
144685 +disable_so_hi_cfg_bridge_delay_drxd_state_53095 hi_cfg_bridge_delay drxd_state 0 53095 NULL nohasharray
144686 +disable_so___scale_tsc_fndecl_53095 __scale_tsc fndecl 0-1-2 53095 &disable_so_hi_cfg_bridge_delay_drxd_state_53095
144687 +disable_so_bitmap_dirty_bits_fndecl_53100 bitmap_dirty_bits fndecl 2 53100 NULL
144688 +disable_so_ufs_data_ptr_to_cpu_fndecl_53104 ufs_data_ptr_to_cpu fndecl 0 53104 NULL
144689 +disable_so_i_mtime_ocfs2_dinode_53106 i_mtime ocfs2_dinode 0 53106 NULL
144690 +disable_so_raddr_c2wr_ae_active_connect_results_53114 raddr c2wr_ae_active_connect_results 0 53114 NULL
144691 +disable_so_freerunning_timer_show_fndecl_53117 freerunning_timer_show fndecl 0 53117 NULL
144692 +disable_so_get_est_timing_fndecl_53119 get_est_timing fndecl 0 53119 NULL
144693 +disable_so_irq_clock_event_device_53122 irq clock_event_device 0 53122 NULL nohasharray
144694 +disable_so_address_iio_dev_attr_53122 address iio_dev_attr 0 53122 &disable_so_irq_clock_event_device_53122
144695 +disable_so__get_maxdiv_fndecl_53128 _get_maxdiv fndecl 0-2 53128 NULL
144696 +disable_so_boot_time_nfsd_net_53147 boot_time nfsd_net 0 53147 NULL
144697 +disable_so_fl_init_hashtable_fndecl_53150 fl_init_hashtable fndecl 0 53150 NULL
144698 +disable_so_nh_saddr_fib_nh_53152 nh_saddr fib_nh 0 53152 NULL
144699 +disable_so_direct_IO_address_space_operations_53153 direct_IO address_space_operations 0-3 53153 NULL
144700 +disable_so_db_addr_mlx5_ib_create_cq_53177 db_addr mlx5_ib_create_cq 0 53177 NULL nohasharray
144701 +disable_so_page_address_in_vma_fndecl_53177 page_address_in_vma fndecl 0 53177 &disable_so_db_addr_mlx5_ib_create_cq_53177
144702 +disable_so_current_freq_av7110_53182 current_freq av7110 0 53182 NULL
144703 +disable_so_wdt_set_timeout_fndecl_53183 wdt_set_timeout fndecl 2 53183 NULL
144704 +disable_so_uid_min_xt_owner_match_info_53195 uid_min xt_owner_match_info 0 53195 NULL
144705 +disable_so_clear_range_i915_address_space_53198 clear_range i915_address_space 2-3 53198 NULL nohasharray
144706 +disable_so_mipi_dsi_dcs_set_page_address_fndecl_53198 mipi_dsi_dcs_set_page_address fndecl 0 53198 &disable_so_clear_range_i915_address_space_53198
144707 +disable_so_timestamp_il_priv_53208 timestamp il_priv 0 53208 NULL
144708 +disable_so_nbytes_ablkcipher_request_53222 nbytes ablkcipher_request 0 53222 NULL
144709 +disable_so_bitmap_size_sit_info_53224 bitmap_size sit_info 0 53224 NULL
144710 +disable_so_minlen_img_ir_free_timing_53227 minlen img_ir_free_timing 0 53227 NULL
144711 +disable_so_btrfs_alloc_from_bitmap_fndecl_53249 btrfs_alloc_from_bitmap fndecl 0-4-5 53249 NULL
144712 +disable_so_micd_timeout_arizona_extcon_info_53253 micd_timeout arizona_extcon_info 0 53253 NULL
144713 +disable_so_mipi_dsi_dcs_exit_sleep_mode_fndecl_53255 mipi_dsi_dcs_exit_sleep_mode fndecl 0 53255 NULL
144714 +disable_so_btc_find_valid_clock_fndecl_53267 btc_find_valid_clock fndecl 0-3-2 53267 NULL nohasharray
144715 +disable_so_cnsmr_idx_addr_wqicb_53267 cnsmr_idx_addr wqicb 0 53267 &disable_so_btc_find_valid_clock_fndecl_53267
144716 +disable_so_cg_spll_func_cntl_3_rv730_clock_registers_53272 cg_spll_func_cntl_3 rv730_clock_registers 0 53272 NULL
144717 +disable_so_switch_time_il4965_channel_switch_cmd_53281 switch_time il4965_channel_switch_cmd 0 53281 NULL
144718 +disable_so_mic_x100_ack_interrupt_fndecl_53283 mic_x100_ack_interrupt fndecl 0 53283 NULL nohasharray
144719 +disable_so_bitmap_set_ll_fndecl_53283 bitmap_set_ll fndecl 0-2-3 53283 &disable_so_mic_x100_ack_interrupt_fndecl_53283
144720 +disable_so_ci_otg_del_timer_fndecl_53284 ci_otg_del_timer fndecl 2 53284 NULL
144721 +disable_so_elapsed_jiffies_msecs_fndecl_53288 elapsed_jiffies_msecs fndecl 0 53288 NULL
144722 +disable_so_neigh_add_timer_fndecl_53296 neigh_add_timer fndecl 2 53296 NULL
144723 +disable_so_chunk_sizek_var_mtrr_state_53302 chunk_sizek var_mtrr_state 0 53302 NULL
144724 +disable_so_set_flexbg_block_bitmap_fndecl_53307 set_flexbg_block_bitmap fndecl 0-4-5 53307 NULL
144725 +disable_so_tw_rcv_wscale_inet_timewait_sock_53312 tw_rcv_wscale inet_timewait_sock 0 53312 NULL
144726 +disable_so_ablkcipher_walk_next_fndecl_53328 ablkcipher_walk_next fndecl 0 53328 NULL
144727 +disable_so_xen_mce_chrdev_open_fndecl_53331 xen_mce_chrdev_open fndecl 0 53331 NULL
144728 +disable_so_be16_add_cpu_fndecl_53336 be16_add_cpu fndecl 2 53336 NULL
144729 +disable_so_write_end_address_space_operations_53339 write_end address_space_operations 0-3-4-5 53339 NULL
144730 +disable_so_kobj_cpu_cpufreq_policy_53349 kobj_cpu cpufreq_policy 0 53349 NULL
144731 +disable_so_cticks_snd_timer_instance_53353 cticks snd_timer_instance 0 53353 NULL
144732 +disable_so_bus_num_atto_csmi_get_pci_bus_addr_53363 bus_num atto_csmi_get_pci_bus_addr 0 53363 NULL
144733 +disable_so_wall_time_sec_vsyscall_gtod_data_53364 wall_time_sec vsyscall_gtod_data 0 53364 NULL
144734 +disable_so_vfrontporch_v4l2_bt_timings_53369 vfrontporch v4l2_bt_timings 0 53369 NULL
144735 +disable_so_dataset_patch_addr_ath6kl_hw_53371 dataset_patch_addr ath6kl_hw 0 53371 NULL
144736 +disable_so___bitmap_subset_fndecl_53372 __bitmap_subset fndecl 3 53372 NULL
144737 +disable_so_sii9234_runtime_resume_fndecl_53375 sii9234_runtime_resume fndecl 0 53375 NULL
144738 +disable_so_ccp_crypto_init_fndecl_53377 ccp_crypto_init fndecl 0 53377 NULL
144739 +disable_so_inaddr_usnic_fwd_dev_53382 inaddr usnic_fwd_dev 0 53382 NULL
144740 +disable_so_ndo_validate_addr_net_device_ops_53392 ndo_validate_addr net_device_ops 0 53392 NULL nohasharray
144741 +disable_so_valid_msr_intercept_fndecl_53392 valid_msr_intercept fndecl 1 53392 &disable_so_ndo_validate_addr_net_device_ops_53392
144742 +disable_so_ept_walk_addr_fndecl_53393 ept_walk_addr fndecl 3-4 53393 NULL
144743 +disable_so_dma_alloc_attrs_fndecl_53394 dma_alloc_attrs fndecl 2-4 53394 NULL
144744 +disable_so_btrfs_delayed_inode_init_fndecl_53395 btrfs_delayed_inode_init fndecl 0 53395 NULL
144745 +disable_so_atomic_stats_read_fndecl_53399 atomic_stats_read fndecl 3-0 53399 NULL
144746 +disable_so_src_slave_addr_rcar_dmac_chan_53400 src_slave_addr rcar_dmac_chan 0 53400 NULL
144747 +disable_so_sys_guid_ib_node_info_53401 sys_guid ib_node_info 0 53401 NULL
144748 +disable_so_freqValTelevision_pvr2_hdw_53403 freqValTelevision pvr2_hdw 0 53403 NULL
144749 +disable_so_quotad_check_timeo_fndecl_53409 quotad_check_timeo fndecl 4 53409 NULL
144750 +disable_so_smp_size_set_mtrr_data_53411 smp_size set_mtrr_data 0 53411 NULL
144751 +disable_so_addr_wil_fw_data_gw_53417 addr wil_fw_data_gw 0 53417 NULL
144752 +disable_so_irlap_start_wd_timer_fndecl_53423 irlap_start_wd_timer fndecl 2 53423 NULL
144753 +disable_so_nla_put_u32_fndecl_53424 nla_put_u32 fndecl 0-3 53424 NULL
144754 +disable_so_ucode_start_addr_smc_firmware_header_v1_0_53438 ucode_start_addr smc_firmware_header_v1_0 0 53438 NULL
144755 +disable_so_dma_addr_tso_state_53442 dma_addr tso_state 0 53442 NULL
144756 +disable_so___down_common_fndecl_53444 __down_common fndecl 2 53444 NULL
144757 +disable_so_bma180_set_sleep_state_fndecl_53447 bma180_set_sleep_state fndecl 0 53447 NULL
144758 +disable_so_reqsize_crypto_ahash_53448 reqsize crypto_ahash 0 53448 NULL
144759 +disable_so_qs_rtbtimelimit_fs_quota_stat_53453 qs_rtbtimelimit fs_quota_stat 0 53453 NULL
144760 +disable_so_mmc_set_relative_addr_fndecl_53454 mmc_set_relative_addr fndecl 0 53454 NULL
144761 +disable_so_genwqe_debugfs_jtimer_open_fndecl_53455 genwqe_debugfs_jtimer_open fndecl 0 53455 NULL
144762 +disable_so_xruns_snd_rawmidi_runtime_53458 xruns snd_rawmidi_runtime 0 53458 NULL
144763 +disable_so_cpumask_local_spread_fndecl_53460 cpumask_local_spread fndecl 0-1-2 53460 NULL
144764 +disable_so_peer_addr_rds_info_tcp_socket_53463 peer_addr rds_info_tcp_socket 0 53463 NULL
144765 +disable_so_do_set_fan_div_fndecl_53464 do_set_fan_div fndecl 0 53464 NULL
144766 +disable_so_nfs_map_uid_to_name_fndecl_53467 nfs_map_uid_to_name fndecl 4-0 53467 NULL
144767 +disable_so_handle_drm_vmw_fence_signaled_arg_53472 handle drm_vmw_fence_signaled_arg 0 53472 NULL
144768 +disable_so_guest_perf_guest_switch_msr_53477 guest perf_guest_switch_msr 0 53477 NULL
144769 +disable_so_encrypt_blkcipher_alg_53493 encrypt blkcipher_alg 4 53493 NULL
144770 +disable_so_tmr_disable_sound_lowlev_timer_53495 tmr_disable sound_lowlev_timer 1 53495 NULL nohasharray
144771 +disable_so_shim_phy_addr_sst_res_info_53495 shim_phy_addr sst_res_info 0 53495 &disable_so_tmr_disable_sound_lowlev_timer_53495
144772 +disable_so_conversion_time_smm665_data_53516 conversion_time smm665_data 0 53516 NULL
144773 +disable_so_iscsi_tpg_attrib_store_netif_timeout_fndecl_53517 iscsi_tpg_attrib_store_netif_timeout fndecl 0-3 53517 NULL
144774 +disable_so_address_ib_umem_53524 address ib_umem 0 53524 NULL
144775 +disable_so_di_gid_gfs2_dinode_53528 di_gid gfs2_dinode 0 53528 NULL
144776 +disable_so_mem_busaddr_ahc_platform_data_53533 mem_busaddr ahc_platform_data 0 53533 NULL nohasharray
144777 +disable_so_sg_list_busaddr_scb_53533 sg_list_busaddr scb 0 53533 &disable_so_mem_busaddr_ahc_platform_data_53533
144778 +disable_so_vactive_hi_lvds_dvo_timing_53549 vactive_hi lvds_dvo_timing 0 53549 NULL
144779 +disable_so_block_dma_addr_rx_block_info_53550 block_dma_addr rx_block_info 0 53550 NULL
144780 +disable_so_st_ctime_nsec_compat_stat_53567 st_ctime_nsec compat_stat 0 53567 NULL
144781 +disable_so_storm_memset_hc_timeout_fndecl_53596 storm_memset_hc_timeout fndecl 2-3-5 53596 NULL
144782 +disable_so_vapic_addr_kvm_lapic_53599 vapic_addr kvm_lapic 0 53599 NULL
144783 +disable_so_schedule_irq_fndecl_53600 schedule_irq fndecl 2 53600 NULL
144784 +disable_so_smp_cmd_ident_addr_info_fndecl_53602 smp_cmd_ident_addr_info fndecl 0 53602 NULL
144785 +disable_so_rsp_dmaaddr_fw_scsi_cmd_wr_53609 rsp_dmaaddr fw_scsi_cmd_wr 0 53609 NULL
144786 +disable_so_device_addr_p54p_desc_53612 device_addr p54p_desc 0 53612 NULL nohasharray
144787 +disable_so_wm8350_reg_write_fndecl_53612 wm8350_reg_write fndecl 2-3-0 53612 &disable_so_device_addr_p54p_desc_53612
144788 +disable_so_ringid_wil_back_tx_53620 ringid wil_back_tx 0 53620 NULL nohasharray
144789 +disable_so_ahd_resolve_seqaddr_fndecl_53620 ahd_resolve_seqaddr fndecl 0-2 53620 &disable_so_ringid_wil_back_tx_53620
144790 +disable_so_sleep_control_elan_transport_ops_53622 sleep_control elan_transport_ops 0 53622 NULL
144791 +disable_so_btrfs_set_token_inode_gid_fndecl_53628 btrfs_set_token_inode_gid fndecl 3 53628 NULL
144792 +disable_so_format_gro_flush_timeout_fndecl_53638 format_gro_flush_timeout fndecl 0 53638 NULL
144793 +disable_so_one_bits_word_at_a_time_53641 one_bits word_at_a_time 0 53641 NULL
144794 +disable_so_i2c_addr_xc2028_config_53658 i2c_addr xc2028_config 0 53658 NULL
144795 +disable_so_ss_tss_segment_32_53663 ss tss_segment_32 0 53663 NULL
144796 +disable_so_backlight_off_delay_cdv_intel_dp_53664 backlight_off_delay cdv_intel_dp 0 53664 NULL
144797 +disable_so_genwqe_debugfs_prev_dbg_uid1_open_fndecl_53665 genwqe_debugfs_prev_dbg_uid1_open fndecl 0 53665 NULL
144798 +disable_so_mult_clocksource_53667 mult clocksource 0 53667 NULL nohasharray
144799 +disable_so_parse_nl_addr_fndecl_53667 parse_nl_addr fndecl 0 53667 &disable_so_mult_clocksource_53667
144800 +disable_so_irq_parport_53669 irq parport 0 53669 NULL
144801 +disable_so_apparmor_hash_size_vardecl_crypto_c_53670 apparmor_hash_size vardecl_crypto.c 0 53670 NULL
144802 +disable_so_vnic_dev_intr_coal_timer_usec_to_hw_fndecl_53671 vnic_dev_intr_coal_timer_usec_to_hw fndecl 0-2 53671 NULL
144803 +disable_so_si_do_program_memory_timing_parameters_fndecl_53672 si_do_program_memory_timing_parameters fndecl 0 53672 NULL
144804 +disable_so_addr_tx_desc_53676 addr tx_desc 0 53676 NULL
144805 +disable_so_put_unaligned_be16_fndecl_53677 put_unaligned_be16 fndecl 1 53677 NULL
144806 +disable_so_family_xfrm_usersa_id_53678 family xfrm_usersa_id 0 53678 NULL
144807 +disable_so_bcm54xx_ack_interrupt_fndecl_53685 bcm54xx_ack_interrupt fndecl 0 53685 NULL nohasharray
144808 +disable_so_svga_check_timings_fndecl_53685 svga_check_timings fndecl 3 53685 &disable_so_bcm54xx_ack_interrupt_fndecl_53685
144809 +disable_so_i40e_vc_add_mac_addr_msg_fndecl_53688 i40e_vc_add_mac_addr_msg fndecl 0-3 53688 NULL
144810 +disable_so_addr_mvfrey_inlist_entry_53690 addr mvfrey_inlist_entry 0 53690 NULL
144811 +disable_so_pch_src_uuid_hi_read_fndecl_53692 pch_src_uuid_hi_read fndecl 0 53692 NULL
144812 +disable_so___bitmap_intersects_fndecl_53698 __bitmap_intersects fndecl 3 53698 NULL
144813 +disable_so_atomic_open_fndecl_53702 atomic_open fndecl 0 53702 NULL
144814 +disable_so_address_dsp_scb_descriptor_53708 address dsp_scb_descriptor 0 53708 NULL
144815 +disable_so_timestamp_il_rx_phy_res_53714 timestamp il_rx_phy_res 0 53714 NULL
144816 +disable_so_start_time_edac_pci_ctl_info_53715 start_time edac_pci_ctl_info 0 53715 NULL
144817 +disable_so_show_forward_delay_timer_fndecl_53717 show_forward_delay_timer fndecl 0 53717 NULL nohasharray
144818 +disable_so_iscsi_nacl_attrib_show_random_datain_pdu_offsets_fndecl_53717 iscsi_nacl_attrib_show_random_datain_pdu_offsets fndecl 0 53717 &disable_so_show_forward_delay_timer_fndecl_53717
144819 +disable_so_memory_address_range_set_error_type_with_address_53722 memory_address_range set_error_type_with_address 0 53722 NULL
144820 +disable_so_sm501_find_clock_fndecl_53729 sm501_find_clock fndecl 3-0 53729 NULL
144821 +disable_so___round_jiffies_relative_fndecl_53743 __round_jiffies_relative fndecl 2-0-1 53743 NULL
144822 +disable_so_ccp_aes_xts_crypt_fndecl_53745 ccp_aes_xts_crypt fndecl 0 53745 NULL
144823 +disable_so_buf_addr_mlx5_ib_create_cq_53754 buf_addr mlx5_ib_create_cq 0 53754 NULL
144824 +disable_so_i_gid_sysv_inode_53757 i_gid sysv_inode 0 53757 NULL
144825 +disable_so_address_fm10k_fault_53764 address fm10k_fault 0 53764 NULL
144826 +disable_so_ntb_set_mw_addr_fndecl_53775 ntb_set_mw_addr fndecl 3 53775 NULL
144827 +disable_so_rx_bd_haddr_lo_bnx2_rx_bd_53781 rx_bd_haddr_lo bnx2_rx_bd 0 53781 NULL
144828 +disable_so_set_rfreg_rtl_hal_ops_53782 set_rfreg rtl_hal_ops 3-5 53782 NULL
144829 +disable_so_kstrtoll_fndecl_53783 kstrtoll fndecl 0 53783 NULL
144830 +disable_so_btrfs_set_token_64_fndecl_53792 btrfs_set_token_64 fndecl 3-4 53792 NULL
144831 +disable_so_clock_dw_mci_slot_53801 clock dw_mci_slot 0 53801 NULL nohasharray
144832 +disable_so_i_uid_nilfs_inode_53801 i_uid nilfs_inode 0 53801 &disable_so_clock_dw_mci_slot_53801
144833 +disable_so_packet_len_2_sched_time_fndecl_53809 packet_len_2_sched_time fndecl 0-1 53809 NULL
144834 +disable_so_calc_div_fndecl_53821 calc_div fndecl 0-1 53821 NULL
144835 +disable_so_rsvd_pbl_addr_tpt_entry_53834 rsvd_pbl_addr tpt_entry 0 53834 NULL nohasharray
144836 +disable_so_dsc_rw_frequency_idetape_config_53834 dsc_rw_frequency idetape_config 0 53834 &disable_so_rsvd_pbl_addr_tpt_entry_53834
144837 +disable_so_ahc_get_sense_bufaddr_fndecl_53837 ahc_get_sense_bufaddr fndecl 0 53837 NULL
144838 +disable_so_jiffies_at_alloc_scsi_cmnd_53839 jiffies_at_alloc scsi_cmnd 0 53839 NULL
144839 +disable_so_sense_addr_orc_scb_53841 sense_addr orc_scb 0 53841 NULL
144840 +disable_so_stall_timeout_xenvif_53851 stall_timeout xenvif 0 53851 NULL
144841 +disable_so_tlv_put_btrfs_timespec_fndecl_53854 tlv_put_btrfs_timespec fndecl 0 53854 NULL
144842 +disable_so_nfsd4_decode_time_fndecl_53864 nfsd4_decode_time fndecl 0 53864 NULL
144843 +disable_so_threshold_target_nes_hw_tune_timer_53868 threshold_target nes_hw_tune_timer 0 53868 NULL
144844 +disable_so_i_uid_bfs_inode_53869 i_uid bfs_inode 0 53869 NULL
144845 +disable_so_vidioc_query_dv_timings_fndecl_53872 vidioc_query_dv_timings fndecl 0 53872 NULL
144846 +disable_so_rtl2832_sleep_fndecl_53873 rtl2832_sleep fndecl 0 53873 NULL
144847 +disable_so_snd_soc_update_bits_fndecl_53881 snd_soc_update_bits fndecl 0-2-4-3 53881 NULL
144848 +disable_so_sched_clock_fndecl_53886 sched_clock fndecl 0 53886 NULL
144849 +disable_so_ps_poll_upsd_timeouts_read_fndecl_53888 ps_poll_upsd_timeouts_read fndecl 3 53888 NULL
144850 +disable_so_pmdown_time_set_fndecl_53891 pmdown_time_set fndecl 0-4 53891 NULL
144851 +disable_so_sync_endtime_ip_vs_conn_53903 sync_endtime ip_vs_conn 0 53903 NULL
144852 +disable_so_timeout_c_tpm_vendor_specific_53905 timeout_c tpm_vendor_specific 0 53905 NULL
144853 +disable_so_i2c_address_mxl5005s_config_53906 i2c_address mxl5005s_config 0 53906 NULL
144854 +disable_so_bin_dn_node_address_fndecl_53909 bin_dn_node_address fndecl 0 53909 NULL
144855 +disable_so_i2c_addr_dib3000mc_state_53912 i2c_addr dib3000mc_state 0 53912 NULL
144856 +disable_so_musb_schedule_fndecl_53920 musb_schedule fndecl 3-0 53920 NULL
144857 +disable_so_card_addr_pcmcia_device_53921 card_addr pcmcia_device 0 53921 NULL
144858 +disable_so_freq_si476x_tune_freq_args_53927 freq si476x_tune_freq_args 0 53927 NULL
144859 +disable_so_xfrm_dst_hash_transfer_fndecl_53935 xfrm_dst_hash_transfer fndecl 4 53935 NULL
144860 +disable_so_fs_time_ufs_super_block_first_53936 fs_time ufs_super_block_first 0 53936 NULL
144861 +disable_so_buffer_addr_ath6kl_dbglog_buf_53947 buffer_addr ath6kl_dbglog_buf 0 53947 NULL
144862 +disable_so_drbd_send_bitmap_fndecl_53952 drbd_send_bitmap fndecl 0 53952 NULL
144863 +disable_so_xfs_kuid_to_uid_fndecl_53958 xfs_kuid_to_uid fndecl 0 53958 NULL
144864 +disable_so_addr_off_bfa_flash_53970 addr_off bfa_flash 0 53970 NULL
144865 +disable_so_string_langid_usb_device_53974 string_langid usb_device 0 53974 NULL
144866 +disable_so_src_addr_qla4_83xx_pex_dma_descriptor_53995 src_addr qla4_83xx_pex_dma_descriptor 0 53995 NULL
144867 +disable_so_crc32_pclmul_mod_init_fndecl_53996 crc32_pclmul_mod_init fndecl 0 53996 NULL
144868 +disable_so_range_to_mtrr_with_hole_fndecl_53998 range_to_mtrr_with_hole fndecl 0-2-3 53998 NULL
144869 +disable_so_cpu_cpufreq_freqs_54025 cpu cpufreq_freqs 0 54025 NULL
144870 +disable_so_read_addr_qla83xx_minidump_entry_pollrd_54033 read_addr qla83xx_minidump_entry_pollrd 0 54033 NULL
144871 +disable_so_wall_time_coarse_nsec_vsyscall_gtod_data_54044 wall_time_coarse_nsec vsyscall_gtod_data 0 54044 NULL
144872 +disable_so_HTotal_xtimings_54045 HTotal xtimings 0 54045 NULL
144873 +disable_so_hpi_cobranet_get_static_ip_address_fndecl_54046 hpi_cobranet_get_static_ip_address fndecl 1 54046 NULL
144874 +disable_so_device_reset_timer_mipi_config_54052 device_reset_timer mipi_config 0 54052 NULL
144875 +disable_so_myri10ge_watchdog_timeout_vardecl_myri10ge_c_54061 myri10ge_watchdog_timeout vardecl_myri10ge.c 0 54061 NULL
144876 +disable_so_slope_div_nvbios_therm_sensor_54063 slope_div nvbios_therm_sensor 0 54063 NULL
144877 +disable_so_cg_spll_func_cntl_rv770_clock_registers_54065 cg_spll_func_cntl rv770_clock_registers 0 54065 NULL
144878 +disable_so_custom_divisor_serial_struct_54066 custom_divisor serial_struct 0 54066 NULL
144879 +disable_so_cq_get_mtt_addr_fndecl_54071 cq_get_mtt_addr fndecl 0 54071 NULL
144880 +disable_so_stack_maxrandom_size_fndecl_54078 stack_maxrandom_size fndecl 0 54078 NULL
144881 +disable_so_ktime_get_mono_fast_ns_fndecl_54083 ktime_get_mono_fast_ns fndecl 0 54083 NULL
144882 +disable_so_reachable_time_neigh_parms_54094 reachable_time neigh_parms 0 54094 NULL
144883 +disable_so_hid_time_parse_report_fndecl_54114 hid_time_parse_report fndecl 0 54114 NULL
144884 +disable_so_baddr0_gru_instruction_54117 baddr0 gru_instruction 0 54117 NULL
144885 +disable_so_time_in_queue_disk_stats_54131 time_in_queue disk_stats 0 54131 NULL
144886 +disable_so_smsc95xx_set_mac_address_fndecl_54135 smsc95xx_set_mac_address fndecl 0 54135 NULL
144887 +disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140 sysctl_numa_balancing_scan_delay vardecl 0 54140 NULL nohasharray
144888 +disable_so_tun16_to_cpu_fndecl_54140 tun16_to_cpu fndecl 0-2 54140 &disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140
144889 +disable_so_addr_2_qla8044_minidump_entry_pollrdmwr_54142 addr_2 qla8044_minidump_entry_pollrdmwr 0 54142 NULL
144890 +disable_so___xfrm6_pref_hash_fndecl_54144 __xfrm6_pref_hash fndecl 0 54144 NULL
144891 +disable_so_sm501_select_clock_fndecl_54146 sm501_select_clock fndecl 1-0 54146 NULL
144892 +disable_so_x86_acpi_enter_sleep_state_fndecl_54149 x86_acpi_enter_sleep_state fndecl 0-1 54149 NULL
144893 +disable_so_ips_fix_ffdc_time_fndecl_54151 ips_fix_ffdc_time fndecl 3 54151 NULL
144894 +disable_so_set_var_mtrr_range_fndecl_54160 set_var_mtrr_range fndecl 2-3 54160 NULL nohasharray
144895 +disable_so_bi_blocks_gfs2_bitmap_54160 bi_blocks gfs2_bitmap 0 54160 &disable_so_set_var_mtrr_range_fndecl_54160
144896 +disable_so_ath10k_recalc_rtscts_prot_fndecl_54161 ath10k_recalc_rtscts_prot fndecl 0 54161 NULL
144897 +disable_so_i915_frequency_info_fndecl_54168 i915_frequency_info fndecl 0 54168 NULL
144898 +disable_so_store_fast_charge_timer_fndecl_54173 store_fast_charge_timer fndecl 0-4 54173 NULL
144899 +disable_so_compat_put_bitmap_fndecl_54182 compat_put_bitmap fndecl 0-3 54182 NULL
144900 +disable_so_cccr_address_p4_counter_binding_54184 cccr_address p4_counter_binding 0 54184 NULL
144901 +disable_so_extra_buf2_address_ene_device_54188 extra_buf2_address ene_device 0 54188 NULL
144902 +disable_so_gr_insert_uid_fndecl_54189 gr_insert_uid fndecl 2 54189 NULL
144903 +disable_so_addr_wil_fw_record_data_54198 addr wil_fw_record_data 0 54198 NULL
144904 +disable_so_hash_mask_dm_exception_table_54212 hash_mask dm_exception_table 0 54212 NULL
144905 +disable_so_cir_addr_ite_dev_54217 cir_addr ite_dev 0 54217 NULL
144906 +disable_so_end_fixed_mtrr_segment_54218 end fixed_mtrr_segment 0 54218 NULL
144907 +disable_so_timer_in_use_min_nes_hw_tune_timer_54220 timer_in_use_min nes_hw_tune_timer 0 54220 NULL
144908 +disable_so_act8b_ata_timing_54221 act8b ata_timing 0 54221 NULL
144909 +disable_so_psmouse_interrupt_fndecl_54222 psmouse_interrupt fndecl 2 54222 NULL
144910 +disable_so_reply_queue_start_phys_addr_lo_megasas_init_queue_info_54244 reply_queue_start_phys_addr_lo megasas_init_queue_info 0 54244 NULL
144911 +disable_so__freq_tbl_determine_rate_fndecl_54245 _freq_tbl_determine_rate fndecl 0 54245 NULL
144912 +disable_so_tm_hour_rtc_time_54254 tm_hour rtc_time 0 54254 NULL
144913 +disable_so_efx_nic_init_interrupt_fndecl_54259 efx_nic_init_interrupt fndecl 0 54259 NULL
144914 +disable_so_dr_addr_qla8044_quad_entry_54260 dr_addr qla8044_quad_entry 0 54260 NULL
144915 +disable_so_integer_pll_div_54261 integer pll_div 0 54261 NULL nohasharray
144916 +disable_so_buf_addr_brcmf_pcie_console_54261 buf_addr brcmf_pcie_console 0 54261 &disable_so_integer_pll_div_54261
144917 +disable_so_fandiv2_w83627ehf_data_54263 fandiv2 w83627ehf_data 0 54263 NULL
144918 +disable_so_gf_numsrc_group_filter_54274 gf_numsrc group_filter 0 54274 NULL
144919 +disable_so_adis_write_reg_fndecl_54282 adis_write_reg fndecl 0 54282 NULL
144920 +disable_so_last_commit_jiffies_pool_54290 last_commit_jiffies pool 0 54290 NULL nohasharray
144921 +disable_so_btree_cache_used_cache_set_54290 btree_cache_used cache_set 0 54290 &disable_so_last_commit_jiffies_pool_54290
144922 +disable_so_hid_time_probe_fndecl_54292 hid_time_probe fndecl 0 54292 NULL
144923 +disable_so_cgroup_subtree_control_write_fndecl_54294 cgroup_subtree_control_write fndecl 0-3 54294 NULL
144924 +disable_so_hpt3x2n_set_clock_fndecl_54295 hpt3x2n_set_clock fndecl 2 54295 NULL
144925 +disable_so_timestamp_nfs4_layoutget_args_54296 timestamp nfs4_layoutget_args 0 54296 NULL
144926 +disable_so_mic_setup_interrupts_fndecl_54300 mic_setup_interrupts fndecl 0 54300 NULL
144927 +disable_so_imsf_numsrc_ip_msfilter_54312 imsf_numsrc ip_msfilter 0 54312 NULL
144928 +disable_so_dma_addr_solos_skb_cb_54324 dma_addr solos_skb_cb 0 54324 NULL
144929 +disable_so_irq_domain_set_info_fndecl_54334 irq_domain_set_info fndecl 3-2 54334 NULL
144930 +disable_so_ks108_set_yaddr_fndecl_54335 ks108_set_yaddr fndecl 2-3 54335 NULL
144931 +disable_so_lfo1delay_soundfont_voice_parm_54350 lfo1delay soundfont_voice_parm 0 54350 NULL
144932 +disable_so_netxen_get_ioaddr_fndecl_54354 netxen_get_ioaddr fndecl 2 54354 NULL
144933 +disable_so_addrs_per_inode_fndecl_54364 addrs_per_inode fndecl 0 54364 NULL
144934 +disable_so_msr_rsc_54369 msr rsc 0 54369 NULL
144935 +disable_so_busaddr_CommandList_54370 busaddr CommandList 0 54370 NULL
144936 +disable_so_paddr_mwifiex_pfu_buf_desc_54374 paddr mwifiex_pfu_buf_desc 0 54374 NULL
144937 +disable_so_ieee80211_aes_key_setup_encrypt_fndecl_54383 ieee80211_aes_key_setup_encrypt fndecl 2-3 54383 NULL
144938 +disable_so_cpumask_parse_user_fndecl_54390 cpumask_parse_user fndecl 0-2 54390 NULL
144939 +disable_so_ack_signal_zd_mac_54391 ack_signal zd_mac 0 54391 NULL
144940 +disable_so_addr_lp855x_rom_data_54408 addr lp855x_rom_data 0 54408 NULL
144941 +disable_so_ar9003_mci_wait_for_interrupt_fndecl_54411 ar9003_mci_wait_for_interrupt fndecl 2-3 54411 NULL
144942 +disable_so_enable_timeout_sdio_func_54417 enable_timeout sdio_func 0 54417 NULL
144943 +disable_so_overrun_time_n_tty_data_54426 overrun_time n_tty_data 0 54426 NULL
144944 +disable_so_seq_netlbl_cipsov4_doiwalk_arg_54427 seq netlbl_cipsov4_doiwalk_arg 0 54427 NULL
144945 +disable_so_addr_hi_ocrdma_sge_54434 addr_hi ocrdma_sge 0 54434 NULL
144946 +disable_so_lcq_addr_hi_fcoe_kwqe_conn_offload4_54436 lcq_addr_hi fcoe_kwqe_conn_offload4 0 54436 NULL
144947 +disable_so_avc_ca_get_time_date_fndecl_54437 avc_ca_get_time_date fndecl 0 54437 NULL
144948 +disable_so_msg_rtime_msqid64_ds_54442 msg_rtime msqid64_ds 0 54442 NULL
144949 +disable_so_delay_vardecl_wm9705_c_54454 delay vardecl_wm9705.c 0 54454 NULL
144950 +disable_so_hpi_set_address_fndecl_54461 hpi_set_address fndecl 2 54461 NULL
144951 +disable_so_seq_nft_ctx_54462 seq nft_ctx 0 54462 NULL
144952 +disable_so_dm_btree_remove_fndecl_54463 dm_btree_remove fndecl 0-2 54463 NULL
144953 +disable_so_stv0297_set_initialdemodfreq_fndecl_54465 stv0297_set_initialdemodfreq fndecl 2 54465 NULL
144954 +disable_so_shdwreg_addr_lo_addr_ctrl_blk_54466 shdwreg_addr_lo addr_ctrl_blk 0 54466 NULL
144955 +disable_so_i2c_dev_addr_au0828_rc_54470 i2c_dev_addr au0828_rc 0 54470 NULL
144956 +disable_so_sha256_generic_mod_init_fndecl_54474 sha256_generic_mod_init fndecl 0 54474 NULL
144957 +disable_so_kdiv_skl_wrpll_params_54475 kdiv skl_wrpll_params 0 54475 NULL
144958 +disable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 0 54477 NULL
144959 +disable_so_addr_gsm_msg_54481 addr gsm_msg 0 54481 NULL
144960 +disable_so_select_delay_floppy_drive_params_54487 select_delay floppy_drive_params 0 54487 NULL
144961 +disable_so_dm_btree_find_highest_key_fndecl_54489 dm_btree_find_highest_key fndecl 0-2 54489 NULL
144962 +disable_so_last_retry_addr_kvm_vcpu_arch_54492 last_retry_addr kvm_vcpu_arch 0 54492 NULL
144963 +disable_so_default_delay_pi_protocol_54493 default_delay pi_protocol 0 54493 NULL
144964 +disable_so_dummy_dma_page_physical_address_r592_device_54497 dummy_dma_page_physical_address r592_device 0 54497 NULL
144965 +disable_so_drbg_hash_update_fndecl_54501 drbg_hash_update fndecl 0 54501 NULL
144966 +disable_so_cryptd_blkcipher_setkey_fndecl_54506 cryptd_blkcipher_setkey fndecl 0-3 54506 NULL
144967 +disable_so_mounted_uid_ncp_fs_info_v2_54511 mounted_uid ncp_fs_info_v2 0 54511 NULL
144968 +disable_so_htc_ext_addr_ath6kl_mbox_info_54517 htc_ext_addr ath6kl_mbox_info 0 54517 NULL
144969 +disable_so_xen_pmd_val_fndecl_54519 xen_pmd_val fndecl 0 54519 NULL
144970 +disable_so_incr_cpu_itimer_54530 incr cpu_itimer 0 54530 NULL
144971 +disable_so_fw_blob_dest_addr_pn544_i2c_phy_54532 fw_blob_dest_addr pn544_i2c_phy 0 54532 NULL
144972 +disable_so_ip_addr_nx_ip_list_54540 ip_addr nx_ip_list 0 54540 NULL
144973 +disable_so_test_ahash_cycles_digest_fndecl_54541 test_ahash_cycles_digest fndecl 0 54541 NULL
144974 +disable_so_tegra_sflash_runtime_resume_fndecl_54543 tegra_sflash_runtime_resume fndecl 0 54543 NULL
144975 +disable_so_start_addr_qlcnic_flt_entry_54564 start_addr qlcnic_flt_entry 0 54564 NULL
144976 +disable_so_addr_lo_tg3_rx_buffer_desc_54565 addr_lo tg3_rx_buffer_desc 0 54565 NULL
144977 +disable_so_btrfs_free_space_bitmaps_fndecl_54566 btrfs_free_space_bitmaps fndecl 0 54566 NULL nohasharray
144978 +disable_so_crypto_rfc4309_decrypt_fndecl_54566 crypto_rfc4309_decrypt fndecl 0 54566 &disable_so_btrfs_free_space_bitmaps_fndecl_54566
144979 +disable_so_crypto_ahash_op_fndecl_54569 crypto_ahash_op fndecl 0 54569 NULL
144980 +disable_so_rbt_ib_umem_compute_subtree_last_fndecl_54589 rbt_ib_umem_compute_subtree_last fndecl 0 54589 NULL
144981 +disable_so_ap_sleep_wlcore_ops_54591 ap_sleep wlcore_ops 0 54591 NULL
144982 +disable_so_get_freq_adis16400_chip_info_54596 get_freq adis16400_chip_info 0 54596 NULL
144983 +disable_so_entries_dmaaddr_snd_trident_tlb_54601 entries_dmaaddr snd_trident_tlb 0 54601 NULL
144984 +disable_so_hwrqaddr_fw_ri_init_54619 hwrqaddr fw_ri_init 0 54619 NULL
144985 +disable_so_rs_user_addr_rds_sock_54620 rs_user_addr rds_sock 0 54620 NULL
144986 +disable_so_snd_timer_global_new_fndecl_54623 snd_timer_global_new fndecl 2-0 54623 NULL
144987 +disable_so_rsi_setclock_fndecl_54628 rsi_setclock fndecl 2 54628 NULL
144988 +disable_so_addr_ct_vm_block_54632 addr ct_vm_block 0 54632 NULL
144989 +disable_so_read_addr_qla8044_minidump_entry_mux_54633 read_addr qla8044_minidump_entry_mux 0 54633 NULL
144990 +disable_so_queue_delayed_work_on_fndecl_54644 queue_delayed_work_on fndecl 1-4 54644 NULL
144991 +disable_so_arcmsr_adjust_disk_queue_depth_fndecl_54647 arcmsr_adjust_disk_queue_depth fndecl 0-2 54647 NULL
144992 +disable_so_mpihelp_mul_1_fndecl_54658 mpihelp_mul_1 fndecl 3 54658 NULL
144993 +disable_so_bitmap_ipmac_do_add_fndecl_54672 bitmap_ipmac_do_add fndecl 4 54672 NULL
144994 +disable_so_paddr_fsl_asrc_54677 paddr fsl_asrc 0 54677 NULL
144995 +disable_so_sil_iowrite32_fndecl_54679 sil_iowrite32 fndecl 3-2 54679 NULL
144996 +disable_so_adv_smbus_write_byte_data_fndecl_54684 adv_smbus_write_byte_data fndecl 2-3-0 54684 NULL
144997 +disable_so_delay_snd_pcm_runtime_54685 delay snd_pcm_runtime 0 54685 NULL
144998 +disable_so_cp_blkaddr_f2fs_super_block_54690 cp_blkaddr f2fs_super_block 0 54690 NULL
144999 +disable_so_schedule_erase_fndecl_54695 schedule_erase fndecl 4-3 54695 NULL
145000 +disable_so_mesh_set_short_slot_time_fndecl_54696 mesh_set_short_slot_time fndecl 0 54696 NULL
145001 +disable_so_pll2_ndiv_a_cnt_ad9523_platform_data_54701 pll2_ndiv_a_cnt ad9523_platform_data 0 54701 NULL
145002 +disable_so_dirtytime_expire_interval_vardecl_54714 dirtytime_expire_interval vardecl 0 54714 NULL nohasharray
145003 +disable_so_cdv_intel_crtc_clock_get_fndecl_54714 cdv_intel_crtc_clock_get fndecl 0 54714 &disable_so_dirtytime_expire_interval_vardecl_54714
145004 +disable_so_timeout_vardecl_w83627hf_wdt_c_54716 timeout vardecl_w83627hf_wdt.c 0 54716 NULL
145005 +disable_so_ccp_addr_hi_fndecl_54724 ccp_addr_hi fndecl 0 54724 NULL nohasharray
145006 +disable_so_usnic_fwd_add_ipaddr_fndecl_54724 usnic_fwd_add_ipaddr fndecl 2 54724 &disable_so_ccp_addr_hi_fndecl_54724
145007 +disable_so_encrypt_ablkcipher_tfm_54728 encrypt ablkcipher_tfm 0 54728 NULL
145008 +disable_so_dp83640_ack_interrupt_fndecl_54729 dp83640_ack_interrupt fndecl 0 54729 NULL
145009 +disable_so_crypto_pcbc_decrypt_fndecl_54732 crypto_pcbc_decrypt fndecl 0-4 54732 NULL
145010 +disable_so_jackdetect_debounce_time_adau1761_platform_data_54736 jackdetect_debounce_time adau1761_platform_data 0 54736 NULL
145011 +disable_so_ism1_runtime_sc_54739 ism1 runtime_sc 0 54739 NULL
145012 +disable_so___hw_addr_sync_multiple_fndecl_54744 __hw_addr_sync_multiple fndecl 0-3 54744 NULL nohasharray
145013 +disable_so_irq_modify_status_fndecl_54744 irq_modify_status fndecl 1 54744 &disable_so___hw_addr_sync_multiple_fndecl_54744
145014 +disable_so_vfreq_aspect_std_timing_54751 vfreq_aspect std_timing 0 54751 NULL
145015 +disable_so_sd_gid_stat_data_54756 sd_gid stat_data 0 54756 NULL
145016 +disable_so_buffer_addr_m3_dma_54757 buffer_addr m3_dma 0 54757 NULL
145017 +disable_so_driver_timestamp_qla4_8xxx_minidump_template_hdr_54761 driver_timestamp qla4_8xxx_minidump_template_hdr 0 54761 NULL
145018 +disable_so_bitmap_root_ll_disk_54791 bitmap_root ll_disk 0 54791 NULL
145019 +disable_so_addr_to_sbp2_pointer_fndecl_54805 addr_to_sbp2_pointer fndecl 1 54805 NULL
145020 +disable_so_i2c_addr_af9013_config_54806 i2c_addr af9013_config 0 54806 NULL
145021 +disable_so_runtime_sched_dl_entity_54815 runtime sched_dl_entity 0 54815 NULL
145022 +disable_so_signal_rtl8187_rx_hdr_54828 signal rtl8187_rx_hdr 0 54828 NULL
145023 +disable_so_gid_list_dma_qla_hw_data_54829 gid_list_dma qla_hw_data 0 54829 NULL
145024 +disable_so_tsi721_omsg_interrupt_enable_fndecl_54831 tsi721_omsg_interrupt_enable fndecl 3-2 54831 NULL
145025 +disable_so_nsec_pps_ktime_54835 nsec pps_ktime 0 54835 NULL
145026 +disable_so_timeout_xfrm_policy_queue_54847 timeout xfrm_policy_queue 0 54847 NULL
145027 +disable_so_uid_used_vardecl_gracl_segv_c_54850 uid_used vardecl_gracl_segv.c 0 54850 NULL
145028 +disable_so_regmap_update_bits_fndecl_54855 regmap_update_bits fndecl 0-2-4-3 54855 NULL
145029 +disable_so_next_status_checked_time_netup_ci_state_54858 next_status_checked_time netup_ci_state 0 54858 NULL
145030 +disable_so_dma_addr_s_txd_os_54860 dma_addr s_txd_os 0 54860 NULL
145031 +disable_so_tms_cstime_compat_tms_54864 tms_cstime compat_tms 0 54864 NULL
145032 +disable_so_reply_dma_max_address_MPT3SAS_ADAPTER_54869 reply_dma_max_address MPT3SAS_ADAPTER 0 54869 NULL
145033 +disable_so_tsc_read_refs_fndecl_54873 tsc_read_refs fndecl 0 54873 NULL
145034 +disable_so_tpm_get_timeouts_fndecl_54878 tpm_get_timeouts fndecl 0 54878 NULL
145035 +disable_so_dn_hash_dump_bucket_fndecl_54884 dn_hash_dump_bucket fndecl 0 54884 NULL
145036 +disable_so_queue_timeout_fndecl_54887 queue_timeout fndecl 2 54887 NULL
145037 +disable_so_T5_address_mxt_data_54888 T5_address mxt_data 0 54888 NULL
145038 +disable_so_arizona_runtime_resume_fndecl_54897 arizona_runtime_resume fndecl 0 54897 NULL
145039 +disable_so_udp_timeout_ip_vs_timeout_user_54908 udp_timeout ip_vs_timeout_user 0 54908 NULL
145040 +disable_so_idiag_uid_inet_diag_msg_54913 idiag_uid inet_diag_msg 0 54913 NULL nohasharray
145041 +disable_so_last_semaphore_wait_addr_radeon_ring_54913 last_semaphore_wait_addr radeon_ring 0 54913 &disable_so_idiag_uid_inet_diag_msg_54913
145042 +disable_so_aty_st_le32_fndecl_54925 aty_st_le32 fndecl 2 54925 NULL
145043 +disable_so_saffirepro_both_clk_freq_set_fndecl_54935 saffirepro_both_clk_freq_set fndecl 0 54935 NULL
145044 +disable_so_mcryptd_hash_finup_fndecl_54940 mcryptd_hash_finup fndecl 2 54940 NULL
145045 +disable_so_nla_put_be64_fndecl_54942 nla_put_be64 fndecl 0 54942 NULL
145046 +disable_so_delay_qlc_83xx_entry_hdr_54949 delay qlc_83xx_entry_hdr 0 54949 NULL
145047 +disable_so_dac33_dai_delay_fndecl_54952 dac33_dai_delay fndecl 0 54952 NULL nohasharray
145048 +disable_so_dmaaddr_cafe_priv_54952 dmaaddr cafe_priv 0 54952 &disable_so_dac33_dai_delay_fndecl_54952
145049 +disable_so_addr_hda_codec_54956 addr hda_codec 0 54956 NULL
145050 +disable_so_dummy_buffer_addr_lo_fcoe_kwqe_init1_54962 dummy_buffer_addr_lo fcoe_kwqe_init1 0 54962 NULL nohasharray
145051 +disable_so_magn_3d_adjust_channel_bit_mask_fndecl_54962 magn_3d_adjust_channel_bit_mask fndecl 3 54962 &disable_so_dummy_buffer_addr_lo_fcoe_kwqe_init1_54962
145052 +disable_so_default_timetolive_sctp_sock_54963 default_timetolive sctp_sock 0 54963 NULL
145053 +disable_so_test_acipher_cycles_fndecl_54972 test_acipher_cycles fndecl 0 54972 NULL
145054 +disable_so_last_jiffies_tick_sched_54974 last_jiffies tick_sched 0 54974 NULL
145055 +disable_so_offset_btrfs_delayed_data_ref_54980 offset btrfs_delayed_data_ref 0 54980 NULL
145056 +disable_so_toshiba_usb_sleep_music_set_fndecl_54986 toshiba_usb_sleep_music_set fndecl 0 54986 NULL
145057 +disable_so_addr_start_vardecl_init_64_c_54989 addr_start vardecl_init_64.c 0 54989 NULL
145058 +disable_so_seq_xfrm_user_acquire_54990 seq xfrm_user_acquire 0 54990 NULL
145059 +disable_so_setup_ide_timing_54997 setup ide_timing 0 54997 NULL
145060 +disable_so_dirtytime_interval_handler_fndecl_54998 dirtytime_interval_handler fndecl 0 54998 NULL
145061 +disable_so_last_heartbeat_timestamp_ctlr_info_55000 last_heartbeat_timestamp ctlr_info 0 55000 NULL
145062 +disable_so_bond_set_mac_address_fndecl_55006 bond_set_mac_address fndecl 0 55006 NULL
145063 +disable_so_curfreq_amradio_device_55017 curfreq amradio_device 0 55017 NULL
145064 +disable_so_time_mult_perf_event_mmap_page_55031 time_mult perf_event_mmap_page 0 55031 NULL nohasharray
145065 +disable_so___i2c_bit_add_bus_fndecl_55031 __i2c_bit_add_bus fndecl 0 55031 &disable_so_time_mult_perf_event_mmap_page_55031
145066 +disable_so_addr_f71882fg_data_55035 addr f71882fg_data 0 55035 NULL
145067 +disable_so_time_stamp_igb_tx_buffer_55041 time_stamp igb_tx_buffer 0 55041 NULL
145068 +disable_so_fsl_spdif_txclk_caldiv_fndecl_55042 fsl_spdif_txclk_caldiv fndecl 3-0 55042 NULL
145069 +disable_so_wall_time_coarse_sec_vsyscall_gtod_data_55048 wall_time_coarse_sec vsyscall_gtod_data 0 55048 NULL nohasharray
145070 +disable_so_rv770_set_smc_sram_address_fndecl_55048 rv770_set_smc_sram_address fndecl 0-2 55048 &disable_so_wall_time_coarse_sec_vsyscall_gtod_data_55048
145071 +disable_so_enic_set_mac_address_fndecl_55049 enic_set_mac_address fndecl 0 55049 NULL
145072 +disable_so_bitmap_shift_left_fndecl_55055 bitmap_shift_left fndecl 3-4 55055 NULL
145073 +disable_so_uea_set_bulk_timeout_fndecl_55059 uea_set_bulk_timeout fndecl 2 55059 NULL
145074 +disable_so_xfs_btree_check_lblock_fndecl_55062 xfs_btree_check_lblock fndecl 0 55062 NULL
145075 +disable_so_addr_num_sctp_getaddrs_old_55065 addr_num sctp_getaddrs_old 0 55065 NULL
145076 +disable_so_random_ri_fndecl_55094 random_ri fndecl 0 55094 NULL
145077 +disable_so_rhashtable_insert_fast_fndecl_55105 rhashtable_insert_fast fndecl 0 55105 NULL
145078 +disable_so_val_nla_map_55108 val nla_map 0 55108 NULL
145079 +disable_so_sis_program_timings_fndecl_55111 sis_program_timings fndecl 2 55111 NULL
145080 +disable_so_crypto_authenc_esn_module_init_fndecl_55112 crypto_authenc_esn_module_init fndecl 0 55112 NULL
145081 +disable_so_open_d_r820t_freq_range_55124 open_d r820t_freq_range 0 55124 NULL
145082 +disable_so_b43legacy_set_slot_time_fndecl_55128 b43legacy_set_slot_time fndecl 2 55128 NULL nohasharray
145083 +disable_so_rowaddr_fndecl_55128 rowaddr fndecl 2 55128 &disable_so_b43legacy_set_slot_time_fndecl_55128 nohasharray
145084 +disable_so_iscsit_do_crypto_hash_sg_fndecl_55128 iscsit_do_crypto_hash_sg fndecl 4-5 55128 &disable_so_rowaddr_fndecl_55128 nohasharray
145085 +disable_so_padlock_sha1_final_fndecl_55128 padlock_sha1_final fndecl 0 55128 &disable_so_iscsit_do_crypto_hash_sg_fndecl_55128
145086 +disable_so_st_ctime_stat_55144 st_ctime stat 0 55144 NULL
145087 +disable_so_bma150_set_low_g_interrupt_fndecl_55166 bma150_set_low_g_interrupt fndecl 4-5-3-0 55166 NULL
145088 +disable_so_atomic_commit_drm_mode_config_funcs_55169 atomic_commit drm_mode_config_funcs 0 55169 NULL
145089 +disable_so_timeout_ns_mmc_data_55170 timeout_ns mmc_data 0 55170 NULL
145090 +disable_so_rq_addr_low_nes_qp_context_55197 rq_addr_low nes_qp_context 0 55197 NULL
145091 +disable_so_gaintime_tsl2563_gainlevel_coeff_55201 gaintime tsl2563_gainlevel_coeff 0 55201 NULL
145092 +disable_so_attr_timeout_fndecl_55204 attr_timeout fndecl 0 55204 NULL
145093 +disable_so_tx_addr_happy_meal_txd_55205 tx_addr happy_meal_txd 0 55205 NULL nohasharray
145094 +disable_so_hsync_v4l2_bt_timings_55205 hsync v4l2_bt_timings 0 55205 &disable_so_tx_addr_happy_meal_txd_55205
145095 +disable_so_decode_bitmap_fndecl_55218 decode_bitmap fndecl 0 55218 NULL
145096 +disable_so_p1_gma_clock_t_55221 p1 gma_clock_t 0 55221 NULL
145097 +disable_so_bitrate_can_bittiming_55225 bitrate can_bittiming 0 55225 NULL
145098 +disable_so_tqi_ready_time_ath5k_txq_info_55226 tqi_ready_time ath5k_txq_info 0 55226 NULL
145099 +disable_so_msr_seek_fndecl_55235 msr_seek fndecl 0-2 55235 NULL
145100 +disable_so_fw_mon_cycle_cnt_iwl_fw_error_dump_fw_mon_55239 fw_mon_cycle_cnt iwl_fw_error_dump_fw_mon 0 55239 NULL
145101 +disable_so_ac97_clock_vardecl_via82xx_c_55242 ac97_clock vardecl_via82xx.c 0 55242 NULL
145102 +disable_so_si2157_sleep_fndecl_55246 si2157_sleep fndecl 0 55246 NULL
145103 +disable_so_max8925_rtc_read_time_fndecl_55254 max8925_rtc_read_time fndecl 0 55254 NULL
145104 +disable_so_di_gid_efs_dinode_55256 di_gid efs_dinode 0 55256 NULL
145105 +disable_so_elan_i2c_sleep_control_fndecl_55264 elan_i2c_sleep_control fndecl 0 55264 NULL
145106 +disable_so_freq_reg_info_regd_fndecl_55266 freq_reg_info_regd fndecl 2 55266 NULL
145107 +disable_so_int_coalescing_timer_ahd_softc_55267 int_coalescing_timer ahd_softc 0 55267 NULL
145108 +disable_so_grsec_alert_wtime_vardecl_55279 grsec_alert_wtime vardecl 0 55279 NULL
145109 +disable_so_btrfs_inode_gid_fndecl_55281 btrfs_inode_gid fndecl 0 55281 NULL
145110 +disable_so_ebitmap_node_set_bit_fndecl_55285 ebitmap_node_set_bit fndecl 2 55285 NULL
145111 +disable_so_gpu_addr_kfd_mem_obj_55286 gpu_addr kfd_mem_obj 0 55286 NULL
145112 +disable_so_smp_random_fndecl_55288 smp_random fndecl 0 55288 NULL
145113 +disable_so_start_rmt_timer1_fndecl_55290 start_rmt_timer1 fndecl 2 55290 NULL
145114 +disable_so_cit_setkey_cipher_tfm_55304 cit_setkey cipher_tfm 0-3 55304 NULL
145115 +disable_so_grpfreq_pca963x_chipdef_55310 grpfreq pca963x_chipdef 0 55310 NULL
145116 +disable_so_mb_dma_address_skd_special_context_55312 mb_dma_address skd_special_context 0 55312 NULL
145117 +disable_so_t4_fwaddrspace_write_fndecl_55313 t4_fwaddrspace_write fndecl 0-2 55313 NULL
145118 +disable_so_num_msrs_to_save_vardecl_x86_c_55317 num_msrs_to_save vardecl_x86.c 0 55317 NULL
145119 +disable_so_cdc_ncm_show_tx_timer_usecs_fndecl_55319 cdc_ncm_show_tx_timer_usecs fndecl 0 55319 NULL
145120 +disable_so_sum_exec_runtime_task_cputime_55320 sum_exec_runtime task_cputime 0 55320 NULL
145121 +disable_so_crypto_hash_final_fndecl_55327 crypto_hash_final fndecl 0 55327 NULL
145122 +disable_so___irq_domain_add_fndecl_55334 __irq_domain_add fndecl 2-3 55334 NULL
145123 +disable_so_end_addr_p54_tx_info_55335 end_addr p54_tx_info 0 55335 NULL
145124 +disable_so_pre_div_pll__55336 pre_div pll_ 0 55336 NULL nohasharray
145125 +disable_so_als_adjust_channel_bit_mask_fndecl_55336 als_adjust_channel_bit_mask fndecl 3 55336 &disable_so_pre_div_pll__55336
145126 +disable_so_write_timeout_cdrom_info_55346 write_timeout cdrom_info 0 55346 NULL nohasharray
145127 +disable_so_crypto_ecb_decrypt_fndecl_55346 crypto_ecb_decrypt fndecl 0-4 55346 &disable_so_write_timeout_cdrom_info_55346
145128 +disable_so_audit_set_backlog_wait_time_fndecl_55349 audit_set_backlog_wait_time fndecl 1-0 55349 NULL
145129 +disable_so_show_risefalltime_fndecl_55351 show_risefalltime fndecl 4-0 55351 NULL
145130 +disable_so_ahash_def_finup_done2_fndecl_55353 ahash_def_finup_done2 fndecl 2 55353 NULL
145131 +disable_so_dm_btree_lookup_fndecl_55361 dm_btree_lookup fndecl 0-2 55361 NULL
145132 +disable_so_drm_prime_sg_to_page_addr_arrays_fndecl_55369 drm_prime_sg_to_page_addr_arrays fndecl 4 55369 NULL
145133 +disable_so_real_clock_atom_clock_dividers_55377 real_clock atom_clock_dividers 0 55377 NULL
145134 +disable_so_div_f1_pll_values_55378 div_f1 pll_values 0 55378 NULL
145135 +disable_so_pci_address_hpt_iopsg_55384 pci_address hpt_iopsg 0 55384 NULL
145136 +disable_so_inode_id_btrfs_delayed_node_55390 inode_id btrfs_delayed_node 0 55390 NULL
145137 +disable_so_write32_bcma_host_ops_55392 write32 bcma_host_ops 3 55392 NULL
145138 +disable_so_freq_libipw_channel_55395 freq libipw_channel 0 55395 NULL nohasharray
145139 +disable_so_maxlen_img_ir_free_timing_55395 maxlen img_ir_free_timing 0 55395 &disable_so_freq_libipw_channel_55395
145140 +disable_so_tgid_autofs_wait_queue_55396 tgid autofs_wait_queue 0 55396 NULL
145141 +disable_so_init_latch_addr_flash_data_55405 init latch_addr_flash_data 2 55405 NULL
145142 +disable_so_di_ctime_nsec_gfs2_dinode_55408 di_ctime_nsec gfs2_dinode 0 55408 NULL nohasharray
145143 +disable_so_hdspm_round_frequency_fndecl_55408 hdspm_round_frequency fndecl 0-1 55408 &disable_so_di_ctime_nsec_gfs2_dinode_55408
145144 +disable_so_time_expires_NCR5380_hostdata_55415 time_expires NCR5380_hostdata 0 55415 NULL
145145 +disable_so___cpu_to_virtio16_fndecl_55418 __cpu_to_virtio16 fndecl 0-2 55418 NULL
145146 +disable_so_ktime_get_seconds_fndecl_55426 ktime_get_seconds fndecl 0 55426 NULL
145147 +disable_so_start_pci_bus_region_55432 start pci_bus_region 0 55432 NULL
145148 +disable_so_uid_h_misc_55433 uid h_misc 0 55433 NULL
145149 +disable_so_clock_drm_display_mode_55440 clock drm_display_mode 0 55440 NULL
145150 +disable_so_show_pci_clock_fndecl_55445 show_pci_clock fndecl 0 55445 NULL
145151 +disable_so_locks_mul_rhashtable_params_55448 locks_mul rhashtable_params 0 55448 NULL
145152 +disable_so_ds2404_read_time_fndecl_55458 ds2404_read_time fndecl 0 55458 NULL
145153 +disable_so_freq_reg_info_fndecl_55465 freq_reg_info fndecl 2 55465 NULL
145154 +disable_so_buffer_addr_nm256_55469 buffer_addr nm256 0 55469 NULL
145155 +disable_so_gr_find_uid_fndecl_55479 gr_find_uid fndecl 0-1 55479 NULL
145156 +disable_so_crypto_report_fndecl_55482 crypto_report fndecl 0 55482 NULL
145157 +disable_so_si470x_set_freq_fndecl_55487 si470x_set_freq fndecl 2 55487 NULL
145158 +disable_so_addr_nvif_ioctl_wr_v0_55489 addr nvif_ioctl_wr_v0 0 55489 NULL
145159 +disable_so_vruntime_sched_entity_55490 vruntime sched_entity 0 55490 NULL nohasharray
145160 +disable_so_hdelay_bttv_geometry_55490 hdelay bttv_geometry 0 55490 &disable_so_vruntime_sched_entity_55490 nohasharray
145161 +disable_so_btrfs_bitmap_cluster_fndecl_55490 btrfs_bitmap_cluster fndecl 4-5-6-7 55490 &disable_so_hdelay_bttv_geometry_55490
145162 +disable_so_height_intel_sdvo_preferred_input_timing_args_55498 height intel_sdvo_preferred_input_timing_args 0 55498 NULL
145163 +disable_so_bosr__coeff_div_55501 bosr _coeff_div 0 55501 NULL
145164 +disable_so_logical_address_ms_extra_data_register_55503 logical_address ms_extra_data_register 0 55503 NULL
145165 +disable_so_last_timeout_iscsi_task_55509 last_timeout iscsi_task 0 55509 NULL
145166 +disable_so_ip_vs_addr_set_fndecl_55530 ip_vs_addr_set fndecl 1 55530 NULL
145167 +disable_so_cg_spll_func_cntl_3_si_clock_registers_55541 cg_spll_func_cntl_3 si_clock_registers 0 55541 NULL nohasharray
145168 +disable_so_pwr_delay_panel_info_55541 pwr_delay panel_info 0 55541 &disable_so_cg_spll_func_cntl_3_si_clock_registers_55541 nohasharray
145169 +disable_so_desc_card_addr___mem_55541 desc_card_addr __mem 0 55541 &disable_so_pwr_delay_panel_info_55541
145170 +disable_so_read_addr_qla8xxx_minidump_entry_rdmem_55551 read_addr qla8xxx_minidump_entry_rdmem 0 55551 NULL nohasharray
145171 +disable_so_xgmac_reg_addr_write_fndecl_55551 xgmac_reg_addr_write fndecl 3-0 55551 &disable_so_read_addr_qla8xxx_minidump_entry_rdmem_55551
145172 +disable_so_timing_hpt_clock_55565 timing hpt_clock 0 55565 NULL
145173 +disable_so_kvm_get_tsc_khz_fndecl_55570 kvm_get_tsc_khz fndecl 0 55570 NULL
145174 +disable_so_demod_address_tda8083_config_55572 demod_address tda8083_config 0 55572 NULL
145175 +disable_so_ql_set_mac_addr_fndecl_55574 ql_set_mac_addr fndecl 0 55574 NULL
145176 +disable_so_lzo1x_1_compress_fndecl_55575 lzo1x_1_compress fndecl 2 55575 NULL
145177 +disable_so_psb_intel_sdvo_get_slave_addr_fndecl_55586 psb_intel_sdvo_get_slave_addr fndecl 0 55586 NULL
145178 +disable_so_tseg1_max_can_bittiming_const_55596 tseg1_max can_bittiming_const 0 55596 NULL
145179 +disable_so_cap_mmap_addr_fndecl_55598 cap_mmap_addr fndecl 0 55598 NULL nohasharray
145180 +disable_so_i_saddr_rds_incoming_55598 i_saddr rds_incoming 0 55598 &disable_so_cap_mmap_addr_fndecl_55598
145181 +disable_so_scan_cycle_time_adp5589_kpad_platform_data_55611 scan_cycle_time adp5589_kpad_platform_data 0 55611 NULL
145182 +disable_so_timeout_usb3_lpm_parameters_55617 timeout usb3_lpm_parameters 0 55617 NULL
145183 +disable_so_dma_addr0_flexcop_dma_55619 dma_addr0 flexcop_dma 0 55619 NULL nohasharray
145184 +disable_so_pci_bus_alloc_resource_fndecl_55619 pci_bus_alloc_resource fndecl 5-3-4 55619 &disable_so_dma_addr0_flexcop_dma_55619
145185 +disable_so_drm_legacy_ctxbitmap_free_fndecl_55620 drm_legacy_ctxbitmap_free fndecl 2 55620 NULL
145186 +disable_so_dp_saddr_rds_iw_connect_private_55621 dp_saddr rds_iw_connect_private 0 55621 NULL
145187 +disable_so_get_fan1_div_fndecl_55629 get_fan1_div fndecl 0 55629 NULL
145188 +disable_so_cfg_rrq_xri_bitmap_sz_lpfc_hba_55637 cfg_rrq_xri_bitmap_sz lpfc_hba 0 55637 NULL
145189 +disable_so_timeout_ms_rdma_ucm_resolve_addr_55643 timeout_ms rdma_ucm_resolve_addr 0 55643 NULL
145190 +disable_so_elv_rqhash_find_fndecl_55656 elv_rqhash_find fndecl 2 55656 NULL
145191 +disable_so_addrconf_sysctl_disable_fndecl_55663 addrconf_sysctl_disable fndecl 0 55663 NULL
145192 +disable_so_cx24117_read_signal_strength_fndecl_55668 cx24117_read_signal_strength fndecl 0 55668 NULL
145193 +disable_so_table2_addr_ipw_priv_55672 table2_addr ipw_priv 0 55672 NULL
145194 +disable_so_lock_time_drm_lock_data_55680 lock_time drm_lock_data 0 55680 NULL
145195 +disable_so_timeout_init_vardecl_ch_c_55683 timeout_init vardecl_ch.c 0 55683 NULL
145196 +disable_so_btrfs_uuid_tree_rem_fndecl_55691 btrfs_uuid_tree_rem fndecl 0-4-5 55691 NULL
145197 +disable_so_n_cipher_schemes_ieee80211_hw_55692 n_cipher_schemes ieee80211_hw 0 55692 NULL
145198 +disable_so_wcid_rt2x00lib_crypto_55695 wcid rt2x00lib_crypto 0 55695 NULL
145199 +disable_so_beiscsi_get_macaddr_fndecl_55699 beiscsi_get_macaddr fndecl 0 55699 NULL
145200 +disable_so_fdb_delete_by_addr_fndecl_55704 fdb_delete_by_addr fndecl 3 55704 NULL
145201 +disable_so_hpi_compander_get_decay_time_constant_fndecl_55715 hpi_compander_get_decay_time_constant fndecl 1-0 55715 NULL
145202 +disable_so_pcc_get_freq_fndecl_55717 pcc_get_freq fndecl 0 55717 NULL
145203 +disable_so_mca_cstamp_ifmcaddr6_55724 mca_cstamp ifmcaddr6 0 55724 NULL
145204 +disable_so_seltime_ahd_softc_55725 seltime ahd_softc 0 55725 NULL nohasharray
145205 +disable_so_addr_2_qla8044_minidump_entry_pollwr_55725 addr_2 qla8044_minidump_entry_pollwr 0 55725 &disable_so_seltime_ahd_softc_55725
145206 +disable_so_vm_exit_msr_load_addr_vmcs12_55733 vm_exit_msr_load_addr vmcs12 0 55733 NULL
145207 +disable_so_mclk_pwrmgt_cntl_ci_clock_registers_55735 mclk_pwrmgt_cntl ci_clock_registers 0 55735 NULL
145208 +disable_so_gcm_hash_update_fndecl_55740 gcm_hash_update fndecl 0-4 55740 NULL
145209 +disable_so_ab3100_set_test_register_interruptible_fndecl_55741 ab3100_set_test_register_interruptible fndecl 0 55741 NULL
145210 +disable_so_ieee802154_hdr_get_addrs_fndecl_55743 ieee802154_hdr_get_addrs fndecl 0 55743 NULL
145211 +disable_so_devfreq_userspace_handler_fndecl_55748 devfreq_userspace_handler fndecl 0 55748 NULL
145212 +disable_so_host_sg_tbl_addr_rtsx_pcr_55750 host_sg_tbl_addr rtsx_pcr 0 55750 NULL
145213 +disable_so_crypto_hash_walk_first_compat_fndecl_55757 crypto_hash_walk_first_compat fndecl 0-4 55757 NULL
145214 +disable_so_mpll_dq_func_cntl_si_clock_registers_55759 mpll_dq_func_cntl si_clock_registers 0 55759 NULL
145215 +disable_so_check_gran_clock_compatibility_fndecl_55761 check_gran_clock_compatibility fndecl 2 55761 NULL
145216 +disable_so_watchdog_set_timeout_fndecl_55765 watchdog_set_timeout fndecl 2-0 55765 NULL
145217 +disable_so_c_laddr_rds_connection_55766 c_laddr rds_connection 0 55766 NULL
145218 +disable_so_slot_timeout_irlap_cb_55778 slot_timeout irlap_cb 0 55778 NULL
145219 +disable_so_timer_quantum_ns_efx_nic_55779 timer_quantum_ns efx_nic 0 55779 NULL
145220 +disable_so_me_addr_hbm_props_request_55786 me_addr hbm_props_request 0 55786 NULL
145221 +disable_so_snd_timer_user_continue_fndecl_55796 snd_timer_user_continue fndecl 0 55796 NULL
145222 +disable_so_last_rx_timestamp_ixgbe_adapter_55801 last_rx_timestamp ixgbe_adapter 0 55801 NULL
145223 +disable_so_di_mtime_logfs_disk_inode_55807 di_mtime logfs_disk_inode 0 55807 NULL
145224 +disable_so_mxr_runtime_resume_fndecl_55814 mxr_runtime_resume fndecl 0 55814 NULL
145225 +disable_so_write_tsc_offset_kvm_x86_ops_55825 write_tsc_offset kvm_x86_ops 2 55825 NULL
145226 +disable_so_suspended_jiffies_dev_pm_info_55833 suspended_jiffies dev_pm_info 0 55833 NULL
145227 +disable_so_daddr_flowi4_55835 daddr flowi4 0 55835 NULL
145228 +disable_so_arcmsr_Read_iop_rqbuffer_data_fndecl_55838 arcmsr_Read_iop_rqbuffer_data fndecl 0 55838 NULL
145229 +disable_so_ac_utime_pacct_struct_55849 ac_utime pacct_struct 0 55849 NULL
145230 +disable_so_si476x_radio_s_frequency_fndecl_55854 si476x_radio_s_frequency fndecl 0 55854 NULL
145231 +disable_so_tg3_nvram_logical_addr_fndecl_55858 tg3_nvram_logical_addr fndecl 0-2 55858 NULL
145232 +disable_so_last_delay_mult_qib_chippport_specific_55859 last_delay_mult qib_chippport_specific 0 55859 NULL nohasharray
145233 +disable_so_addr_offset_x86_pmu_55859 addr_offset x86_pmu 0-1 55859 &disable_so_last_delay_mult_qib_chippport_specific_55859
145234 +disable_so_nvkm_timer_alarm_fndecl_55870 nvkm_timer_alarm fndecl 2 55870 NULL
145235 +disable_so_num_mc_addrs_ixgbe_addr_filter_info_55888 num_mc_addrs ixgbe_addr_filter_info 0 55888 NULL
145236 +disable_so_snd_interval_muldivk_fndecl_55894 snd_interval_muldivk fndecl 3 55894 NULL
145237 +disable_so_read_time_rtc_class_ops_55898 read_time rtc_class_ops 0 55898 NULL
145238 +disable_so_timeouts_size_ip_vs_app_55902 timeouts_size ip_vs_app 0 55902 NULL
145239 +disable_so_mwifiex_process_sleep_confirm_resp_fndecl_55909 mwifiex_process_sleep_confirm_resp fndecl 3 55909 NULL
145240 +disable_so_sleep_auth_write_fndecl_55911 sleep_auth_write fndecl 0-3 55911 NULL
145241 +disable_so_addr_hi_pm4_query_status_55924 addr_hi pm4_query_status 0 55924 NULL
145242 +disable_so_rpc_anyaddr_fndecl_55925 rpc_anyaddr fndecl 0-1 55925 NULL
145243 +disable_so_fence_gpu_addr_device_queue_manager_55932 fence_gpu_addr device_queue_manager 0 55932 NULL
145244 +disable_so_send_guid_cmd_fndecl_55933 send_guid_cmd fndecl 0 55933 NULL
145245 +disable_so_next_id_mISDNtimerdev_55935 next_id mISDNtimerdev 0 55935 NULL
145246 +disable_so_ref_freq_arizona_fll_55939 ref_freq arizona_fll 0 55939 NULL
145247 +disable_so_find_prop_handlers_by_hash_fndecl_55957 find_prop_handlers_by_hash fndecl 1 55957 NULL
145248 +disable_so_cg_spll_spread_spectrum_ci_clock_registers_55960 cg_spll_spread_spectrum ci_clock_registers 0 55960 NULL
145249 +disable_so___xfrm_src_hash_fndecl_55965 __xfrm_src_hash fndecl 0-3-4 55965 NULL
145250 +disable_so_tps80031_rtc_read_time_fndecl_55978 tps80031_rtc_read_time fndecl 0 55978 NULL
145251 +disable_so_dvb_pll_sleep_fndecl_55979 dvb_pll_sleep fndecl 0 55979 NULL
145252 +disable_so_lose_cover_sizek_mtrr_cleanup_result_55990 lose_cover_sizek mtrr_cleanup_result 0 55990 NULL
145253 +disable_so_wil_ioc_addr_fndecl_55992 wil_ioc_addr fndecl 2-3 55992 NULL
145254 +disable_so_ste10Xp_ack_interrupt_fndecl_55999 ste10Xp_ack_interrupt fndecl 0 55999 NULL
145255 +disable_so_btc_skip_blacklist_clocks_fndecl_56010 btc_skip_blacklist_clocks fndecl 2-3 56010 NULL
145256 +disable_so_sleep_mask_palmas_clk32k_desc_56015 sleep_mask palmas_clk32k_desc 0 56015 NULL
145257 +disable_so_cs_pt_regs_56018 cs pt_regs 0 56018 NULL nohasharray
145258 +disable_so_vmcs_writel_fndecl_56018 vmcs_writel fndecl 2 56018 &disable_so_cs_pt_regs_56018
145259 +disable_so_i_mtime_nsec_f2fs_inode_56019 i_mtime_nsec f2fs_inode 0 56019 NULL
145260 +disable_so_ecx_user_regs_struct32_56025 ecx user_regs_struct32 0 56025 NULL
145261 +disable_so_k8_map_sysaddr_to_csrow_fndecl_56032 k8_map_sysaddr_to_csrow fndecl 2 56032 NULL
145262 +disable_so_max_busy_timeout_mmc_host_56037 max_busy_timeout mmc_host 0 56037 NULL
145263 +disable_so_snd_tea575x_get_freq_fndecl_56045 snd_tea575x_get_freq fndecl 0 56045 NULL
145264 +disable_so_timer_interval_r8a66597_pipe_info_56047 timer_interval r8a66597_pipe_info 0 56047 NULL nohasharray
145265 +disable_so_wc_ct_timer_56047 wc ct_timer 0 56047 &disable_so_timer_interval_r8a66597_pipe_info_56047
145266 +disable_so_gs_tss_segment_32_56052 gs tss_segment_32 0 56052 NULL
145267 +disable_so_bg_inode_bitmap_lo_ext4_group_desc_56060 bg_inode_bitmap_lo ext4_group_desc 0 56060 NULL
145268 +disable_so_debounce_jiffies_gpio_extcon_data_56062 debounce_jiffies gpio_extcon_data 0 56062 NULL
145269 +disable_so_timestamp_perf_event_context_56076 timestamp perf_event_context 0 56076 NULL
145270 +disable_so_s10_img_ir_timing_regvals_56082 s10 img_ir_timing_regvals 0 56082 NULL
145271 +disable_so_addr_nv50_instmem_priv_56092 addr nv50_instmem_priv 0 56092 NULL
145272 +disable_so_stock_freq_vardecl_p4_clockmod_c_56103 stock_freq vardecl_p4-clockmod.c 0 56103 NULL
145273 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_56110 nfs4_xdr_dec_get_lease_time fndecl 0 56110 NULL
145274 +disable_so_dclk_div_ssd1307fb_par_56111 dclk_div ssd1307fb_par 0 56111 NULL
145275 +disable_so_ad1889_load_wave_interrupt_count_fndecl_56114 ad1889_load_wave_interrupt_count fndecl 2 56114 NULL
145276 +disable_so_tm_sec_rtc_time_56120 tm_sec rtc_time 0 56120 NULL
145277 +disable_so_setsck_fndecl_56125 setsck fndecl 2 56125 NULL
145278 +disable_so_acpi_ut_remove_address_range_fndecl_56141 acpi_ut_remove_address_range fndecl 1 56141 NULL
145279 +disable_so_ssa_blkaddr_f2fs_sm_info_56145 ssa_blkaddr f2fs_sm_info 0 56145 NULL
145280 +disable_so_ack_time_rtl8180_priv_56151 ack_time rtl8180_priv 0 56151 NULL
145281 +disable_so_updelay_bond_params_56155 updelay bond_params 0 56155 NULL
145282 +disable_so_pch_can_bit_clear_fndecl_56156 pch_can_bit_clear fndecl 2 56156 NULL
145283 +disable_so_i2c_addr_si2165_config_56160 i2c_addr si2165_config 0 56160 NULL
145284 +disable_so_gen8_rcs_signal_fndecl_56195 gen8_rcs_signal fndecl 0-2 56195 NULL
145285 +disable_so_bmg160_setup_new_data_interrupt_fndecl_56196 bmg160_setup_new_data_interrupt fndecl 0 56196 NULL
145286 +disable_so_addrhigh_dma64desc_56199 addrhigh dma64desc 0 56199 NULL
145287 +disable_so_kvm_get_time_scale_fndecl_56201 kvm_get_time_scale fndecl 1 56201 NULL
145288 +disable_so_post_divider_atom_clock_dividers_56220 post_divider atom_clock_dividers 0 56220 NULL
145289 +disable_so_max6900_rtc_set_time_fndecl_56236 max6900_rtc_set_time fndecl 0 56236 NULL
145290 +disable_so_crypto_rfc3686_setkey_fndecl_56237 crypto_rfc3686_setkey fndecl 0-3 56237 NULL
145291 +disable_so_mtt_base_addr_l_mlx4_eq_context_56245 mtt_base_addr_l mlx4_eq_context 0 56245 NULL nohasharray
145292 +disable_so_sq_read_base_addr_a0_btmrvl_sdio_card_reg_56245 sq_read_base_addr_a0 btmrvl_sdio_card_reg 0 56245 &disable_so_mtt_base_addr_l_mlx4_eq_context_56245
145293 +disable_so_lbs_cmd_802_11_sleep_params_fndecl_56246 lbs_cmd_802_11_sleep_params fndecl 0 56246 NULL
145294 +disable_so_verity_hash_at_level_fndecl_56248 verity_hash_at_level fndecl 2 56248 NULL
145295 +disable_so_sk_reset_timer_fndecl_56251 sk_reset_timer fndecl 3 56251 NULL
145296 +disable_so_skcipher_sndbuf_fndecl_56255 skcipher_sndbuf fndecl 0 56255 NULL
145297 +disable_so_st_ctime_nsec_p9_stat_dotl_56256 st_ctime_nsec p9_stat_dotl 0 56256 NULL nohasharray
145298 +disable_so_r29_val_fc2580_freq_regs_56256 r29_val fc2580_freq_regs 0 56256 &disable_so_st_ctime_nsec_p9_stat_dotl_56256
145299 +disable_so_qmi_wwan_mac_addr_fndecl_56258 qmi_wwan_mac_addr fndecl 0 56258 NULL
145300 +disable_so_cik_set_vce_clocks_fndecl_56266 cik_set_vce_clocks fndecl 3-0 56266 NULL nohasharray
145301 +disable_so_bitmap_copy_from_slot_fndecl_56266 bitmap_copy_from_slot fndecl 0-2 56266 &disable_so_cik_set_vce_clocks_fndecl_56266
145302 +disable_so_delay_mult_ipath_devdata_56277 delay_mult ipath_devdata 0 56277 NULL
145303 +disable_so_esas2r_disc_get_phys_addr_fndecl_56278 esas2r_disc_get_phys_addr fndecl 0 56278 NULL
145304 +disable_so_sst_module_runtime_get_from_id_fndecl_56286 sst_module_runtime_get_from_id fndecl 2 56286 NULL
145305 +disable_so_freq_req_adf4350_state_56294 freq_req adf4350_state 0 56294 NULL
145306 +disable_so_max_bandwidth_khz_ieee80211_freq_range_56300 max_bandwidth_khz ieee80211_freq_range 0 56300 NULL
145307 +disable_so_faddr_rds_info_connection_56313 faddr rds_info_connection 0 56313 NULL
145308 +disable_so_pcm_delay_pcm_stream_info_56329 pcm_delay pcm_stream_info 0 56329 NULL nohasharray
145309 +disable_so_dev_addr_pch_dma_desc_regs_56329 dev_addr pch_dma_desc_regs 0 56329 &disable_so_pcm_delay_pcm_stream_info_56329
145310 +disable_so_show_sgid_fndecl_56331 show_sgid fndecl 0 56331 NULL
145311 +disable_so_sumo_get_valid_engine_clock_fndecl_56332 sumo_get_valid_engine_clock fndecl 0 56332 NULL
145312 +disable_so_bitmap_resize_fndecl_56333 bitmap_resize fndecl 0-2 56333 NULL
145313 +disable_so_get_cpufreq_driver_56334 get cpufreq_driver 0-1 56334 NULL
145314 +disable_so_cg_spll_spread_spectrum_2_rv770_clock_registers_56343 cg_spll_spread_spectrum_2 rv770_clock_registers 0 56343 NULL
145315 +disable_so_dsa_slave_set_mac_address_fndecl_56363 dsa_slave_set_mac_address fndecl 0 56363 NULL nohasharray
145316 +disable_so_log2secsize_adfs_discrecord_56363 log2secsize adfs_discrecord 0 56363 &disable_so_dsa_slave_set_mac_address_fndecl_56363
145317 +disable_so_offset_bit_entry_56370 offset bit_entry 0 56370 NULL
145318 +disable_so_serio_interrupt_fndecl_56371 serio_interrupt fndecl 2 56371 NULL
145319 +disable_so_nla_put_s8_fndecl_56378 nla_put_s8 fndecl 0 56378 NULL
145320 +disable_so_max_timing_entry_56381 max timing_entry 0 56381 NULL
145321 +disable_so_clk_div_chip_data_56404 clk_div chip_data 0 56404 NULL
145322 +disable_so_index_addr_fndecl_56405 index_addr fndecl 2-3 56405 NULL
145323 +disable_so_sysctl_tipc_named_timeout_vardecl_56406 sysctl_tipc_named_timeout vardecl 0 56406 NULL nohasharray
145324 +disable_so_pci_bus_clock_list_ultra_fndecl_56406 pci_bus_clock_list_ultra fndecl 0-1 56406 &disable_so_sysctl_tipc_named_timeout_vardecl_56406
145325 +disable_so_pwm_freq_to_reg_fndecl_56419 pwm_freq_to_reg fndecl 0-1 56419 NULL
145326 +disable_so_compaq_ioaddr_vardecl_3c59x_c_56423 compaq_ioaddr vardecl_3c59x.c 0 56423 NULL
145327 +disable_so_nv04_timer_ctor_fndecl_56428 nv04_timer_ctor fndecl 0 56428 NULL
145328 +disable_so_last_jiffies_dm_kcopyd_throttle_56429 last_jiffies dm_kcopyd_throttle 0 56429 NULL
145329 +disable_so_prev_xfer_time_if_spi_card_56430 prev_xfer_time if_spi_card 0 56430 NULL
145330 +disable_so_cpufreq_governor_dbs_fndecl_56433 cpufreq_governor_dbs fndecl 0 56433 NULL
145331 +disable_so_align_vdso_addr_fndecl_56438 align_vdso_addr fndecl 0-1 56438 NULL
145332 +disable_so_addresshigh_SG64ENTRY_56440 addresshigh SG64ENTRY 0 56440 NULL
145333 +disable_so_freq_nvbios_M0205T_56458 freq nvbios_M0205T 0 56458 NULL
145334 +disable_so_hfs_bnode_hash_fndecl_56462 hfs_bnode_hash fndecl 0-1 56462 NULL
145335 +disable_so_address_rmap_item_56465 address rmap_item 0 56465 NULL
145336 +disable_so_tseg1_pucan_timing_fast_56466 tseg1 pucan_timing_fast 0 56466 NULL
145337 +disable_so_read_reg_qlcnic_hardware_ops_56470 read_reg qlcnic_hardware_ops 0-2 56470 NULL
145338 +disable_so_ba0_addr_cs4281_56471 ba0_addr cs4281 0 56471 NULL
145339 +disable_so_seltime_ahc_softc_56482 seltime ahc_softc 0 56482 NULL
145340 +disable_so_preferred_resolution_snd_seq_timer_56486 preferred_resolution snd_seq_timer 0 56486 NULL
145341 +disable_so_rtl8723e_dm_bt_set_sw_full_time_dac_swing_fndecl_56491 rtl8723e_dm_bt_set_sw_full_time_dac_swing fndecl 3 56491 NULL
145342 +disable_so_compat_sys_utime_fndecl_56499 compat_sys_utime fndecl 0 56499 NULL
145343 +disable_so_max_cpufreq_policy_56505 max cpufreq_policy 0 56505 NULL
145344 +disable_so_gpm_addr_ath9k_hw_mci_56507 gpm_addr ath9k_hw_mci 0 56507 NULL
145345 +disable_so_local_cm_response_timeout_ib_cm_req_event_param_56527 local_cm_response_timeout ib_cm_req_event_param 0 56527 NULL
145346 +disable_so_di_ctime_qnx4_inode_entry_56528 di_ctime qnx4_inode_entry 0 56528 NULL
145347 +disable_so_check_object_size_fndecl_56537 check_object_size fndecl 2 56537 NULL
145348 +disable_so_netlbl_unlhsh_remove_addr4_fndecl_56540 netlbl_unlhsh_remove_addr4 fndecl 0 56540 NULL
145349 +disable_so_pio_address_qla_hw_data_56550 pio_address qla_hw_data 0 56550 NULL
145350 +disable_so_clockdelay_te_vardecl_hfcmulti_c_56569 clockdelay_te vardecl_hfcmulti.c 0 56569 NULL
145351 +disable_so_cfg80211_get_start_freq_fndecl_56579 cfg80211_get_start_freq fndecl 0-1-2 56579 NULL
145352 +disable_so_crypto_info_open_fndecl_56585 crypto_info_open fndecl 0 56585 NULL
145353 +disable_so_iio_interrupt_trigger_probe_fndecl_56586 iio_interrupt_trigger_probe fndecl 0 56586 NULL
145354 +disable_so_csize_lattime_ahd_suspend_pci_state_56599 csize_lattime ahd_suspend_pci_state 0 56599 NULL
145355 +disable_so_pcxhr_get_clock_reg_fndecl_56600 pcxhr_get_clock_reg fndecl 2-0 56600 NULL
145356 +disable_so_ib_find_cached_gid_fndecl_56608 ib_find_cached_gid fndecl 0 56608 NULL
145357 +disable_so_btree_node_write_endio_fndecl_56609 btree_node_write_endio fndecl 2 56609 NULL
145358 +disable_so_rxdescmem_busaddr_altera_tse_private_56610 rxdescmem_busaddr altera_tse_private 0 56610 NULL
145359 +disable_so_pwm_downtime_w83793_data_56624 pwm_downtime w83793_data 0 56624 NULL
145360 +disable_so_nl80211_crypto_settings_fndecl_56625 nl80211_crypto_settings fndecl 0 56625 NULL
145361 +disable_so_freq_pmu0_plltab_entry_56630 freq pmu0_plltab_entry 0 56630 NULL
145362 +disable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 0 56634 NULL
145363 +disable_so_time_rx_survey_info_56644 time_rx survey_info 0 56644 NULL
145364 +disable_so_isp1362_write_diraddr_fndecl_56658 isp1362_write_diraddr fndecl 2-3 56658 NULL
145365 +disable_so_utime_task_cputime_56665 utime task_cputime 0 56665 NULL
145366 +disable_so_blogic_add_probeaddr_isa_fndecl_56669 blogic_add_probeaddr_isa fndecl 1 56669 NULL
145367 +disable_so_memsize_bitmap_ip_56671 memsize bitmap_ip 0 56671 NULL
145368 +disable_so_ssb_pmu_get_alp_clock_fndecl_56673 ssb_pmu_get_alp_clock fndecl 0 56673 NULL nohasharray
145369 +disable_so_crypto_xor_fndecl_56673 crypto_xor fndecl 3 56673 &disable_so_ssb_pmu_get_alp_clock_fndecl_56673
145370 +disable_so_addr_wqicb_56680 addr wqicb 0 56680 NULL
145371 +disable_so_post_div_atom_clock_dividers_56686 post_div atom_clock_dividers 0 56686 NULL
145372 +disable_so_local_ca_guid_cm_req_msg_56691 local_ca_guid cm_req_msg 0 56691 NULL
145373 +disable_so_ath5k_hw_check_beacon_timers_fndecl_56701 ath5k_hw_check_beacon_timers fndecl 2 56701 NULL
145374 +disable_so_resultjiffies_vardecl_floppy_c_56702 resultjiffies vardecl_floppy.c 0 56702 NULL
145375 +disable_so_snd_tea575x_s_hw_freq_seek_fndecl_56703 snd_tea575x_s_hw_freq_seek fndecl 0 56703 NULL
145376 +disable_so_ir_clock_mhz_vardecl_tm6000_input_c_56706 ir_clock_mhz vardecl_tm6000-input.c 0 56706 NULL
145377 +disable_so_mei_me_pm_runtime_suspend_fndecl_56711 mei_me_pm_runtime_suspend fndecl 0 56711 NULL
145378 +disable_so_deftype_kvm_mtrr_56712 deftype kvm_mtrr 0 56712 NULL
145379 +disable_so_base_addr_phys__adpt_hba_56713 base_addr_phys _adpt_hba 0 56713 NULL
145380 +disable_so_addr_nvkm_instobj_56715 addr nvkm_instobj 0 56715 NULL
145381 +disable_so_do_wait_for_common_fndecl_56721 do_wait_for_common fndecl 4 56721 NULL
145382 +disable_so_i_uid_minix_inode_56733 i_uid minix_inode 0 56733 NULL
145383 +disable_so_addr_nvkm_engctx_56734 addr nvkm_engctx 0 56734 NULL nohasharray
145384 +disable_so_RF_SYN_reserved_addr27_chan_info_nphy_radio205x_56734 RF_SYN_reserved_addr27 chan_info_nphy_radio205x 0 56734 &disable_so_addr_nvkm_engctx_56734
145385 +disable_so_bp_pt_regs_56736 bp pt_regs 0 56736 NULL
145386 +disable_so_hor_blank_end_via_display_timing_56738 hor_blank_end via_display_timing 0 56738 NULL
145387 +disable_so_panel_power_cycle_delay_intel_dp_56739 panel_power_cycle_delay intel_dp 0 56739 NULL
145388 +disable_so_dib8000_sleep_fndecl_56740 dib8000_sleep fndecl 0 56740 NULL
145389 +disable_so_ext4_valid_block_bitmap_fndecl_56749 ext4_valid_block_bitmap fndecl 0-3 56749 NULL
145390 +disable_so_func_bit_map_vif_list_event_data_56753 func_bit_map vif_list_event_data 0 56753 NULL
145391 +disable_so_netxen_nic_set_mcast_addr_fndecl_56754 netxen_nic_set_mcast_addr fndecl 2 56754 NULL
145392 +disable_so_wrmsr_on_cpu_fndecl_56757 wrmsr_on_cpu fndecl 0-1-3-4 56757 NULL
145393 +disable_so_rmap_recycle_fndecl_56761 rmap_recycle fndecl 3 56761 NULL
145394 +disable_so_cyapa_gen5_get_interval_time_fndecl_56783 cyapa_gen5_get_interval_time fndecl 0 56783 NULL nohasharray
145395 +disable_so_laddr_rds_info_message_56783 laddr rds_info_message 0 56783 &disable_so_cyapa_gen5_get_interval_time_fndecl_56783
145396 +disable_so_btrfs_set_inode_uid_fndecl_56785 btrfs_set_inode_uid fndecl 3 56785 NULL
145397 +disable_so_wl1251_acx_group_address_tbl_fndecl_56786 wl1251_acx_group_address_tbl fndecl 0 56786 NULL
145398 +disable_so_idletimer_tg_show_fndecl_56792 idletimer_tg_show fndecl 0 56792 NULL
145399 +disable_so_ofdmtab_addr_b43_phy_g_56793 ofdmtab_addr b43_phy_g 0 56793 NULL
145400 +disable_so_count_radeon_clock_voltage_dependency_table_56794 count radeon_clock_voltage_dependency_table 0 56794 NULL
145401 +disable_so_nla_put_in_addr_fndecl_56802 nla_put_in_addr fndecl 0 56802 NULL
145402 +disable_so_br_multicast_set_hash_max_fndecl_56807 br_multicast_set_hash_max fndecl 0-2 56807 NULL
145403 +disable_so_runtime_expires_cfs_rq_56808 runtime_expires cfs_rq 0 56808 NULL nohasharray
145404 +disable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 0 56808 &disable_so_runtime_expires_cfs_rq_56808
145405 +disable_so_sisfb_post_xgi_setclocks_fndecl_56821 sisfb_post_xgi_setclocks fndecl 2 56821 NULL
145406 +disable_so_ipath_signal_procs_fndecl_56823 ipath_signal_procs fndecl 2 56823 NULL
145407 +disable_so_seqtimer_scaling_vardecl_azt3328_c_56829 seqtimer_scaling vardecl_azt3328.c 0 56829 NULL
145408 +disable_so_bar_bus_addr_usnic_ib_create_qp_resp_56831 bar_bus_addr usnic_ib_create_qp_resp 0 56831 NULL
145409 +disable_so_fib_laddr_hashfn_fndecl_56832 fib_laddr_hashfn fndecl 0-1 56832 NULL
145410 +disable_so_qlcnic_82xx_sre_macaddr_change_fndecl_56836 qlcnic_82xx_sre_macaddr_change fndecl 0 56836 NULL
145411 +disable_so_dm_btree_find_lowest_key_fndecl_56845 dm_btree_find_lowest_key fndecl 0-2 56845 NULL
145412 +disable_so_get_fan_div_fndecl_56857 get_fan_div fndecl 0 56857 NULL
145413 +disable_so_neigh_proc_dointvec_jiffies_fndecl_56860 neigh_proc_dointvec_jiffies fndecl 0 56860 NULL
145414 +disable_so_last_delay_snd_usb_substream_56861 last_delay snd_usb_substream 0 56861 NULL
145415 +disable_so_memory_address_set_error_type_with_address_56863 memory_address set_error_type_with_address 0 56863 NULL
145416 +disable_so_seq_b43_txstatus_56873 seq b43_txstatus 0 56873 NULL
145417 +disable_so_phonet_address_notify_fndecl_56877 phonet_address_notify fndecl 1-3 56877 NULL
145418 +disable_so_msp_sleep_fndecl_56878 msp_sleep fndecl 2 56878 NULL nohasharray
145419 +disable_so_ltr501_match_samp_freq_fndecl_56878 ltr501_match_samp_freq fndecl 0 56878 &disable_so_msp_sleep_fndecl_56878
145420 +disable_so_signalled_used_vhost_virtqueue_56881 signalled_used vhost_virtqueue 0 56881 NULL
145421 +disable_so_titsc_probe_fndecl_56883 titsc_probe fndecl 0 56883 NULL
145422 +disable_so_xfs_btree_check_sblock_fndecl_56897 xfs_btree_check_sblock fndecl 0 56897 NULL
145423 +disable_so_jiffies_next_hackrf_dev_56900 jiffies_next hackrf_dev 0 56900 NULL
145424 +disable_so_bpf_get_prandom_u32_fndecl_56904 bpf_get_prandom_u32 fndecl 0 56904 NULL
145425 +disable_so_rt_lifetime_icmpv6_nd_ra_56907 rt_lifetime icmpv6_nd_ra 0 56907 NULL
145426 +disable_so_base_addr_ufshcd_sg_entry_56924 base_addr ufshcd_sg_entry 0 56924 NULL
145427 +disable_so_crypto_gcm_decrypt_fndecl_56932 crypto_gcm_decrypt fndecl 0 56932 NULL
145428 +disable_so_pll_d_aic31xx_rate_divs_56933 pll_d aic31xx_rate_divs 0 56933 NULL
145429 +disable_so_mc_arb_burst_time_SMC_SIslands_MCArbDramTimingRegisterSet_56938 mc_arb_burst_time SMC_SIslands_MCArbDramTimingRegisterSet 0 56938 NULL
145430 +disable_so_hfc_jiffies_vardecl_hfcpci_c_56949 hfc_jiffies vardecl_hfcpci.c 0 56949 NULL
145431 +disable_so_pm_timeout_orinoco_private_56953 pm_timeout orinoco_private 0 56953 NULL
145432 +disable_so_cpu_delayed_work_56959 cpu delayed_work 0 56959 NULL
145433 +disable_so_sys_sched_setscheduler_fndecl_56964 sys_sched_setscheduler fndecl 2-1-0 56964 NULL
145434 +disable_so_ucode_beacon_time_il_priv_56968 ucode_beacon_time il_priv 0 56968 NULL
145435 +disable_so_ntsc_tvdac_adj_radeon_encoder_tv_dac_56984 ntsc_tvdac_adj radeon_encoder_tv_dac 0 56984 NULL
145436 +disable_so_hbqaddrLow_config_hbq_var_56996 hbqaddrLow config_hbq_var 0 56996 NULL
145437 +disable_so_hpios_delay_micro_seconds_fndecl_57000 hpios_delay_micro_seconds fndecl 1 57000 NULL
145438 +disable_so_pwm_freq_nvbios_therm_fan_57021 pwm_freq nvbios_therm_fan 0 57021 NULL
145439 +disable_so_cycle_interval_timekeeper_57030 cycle_interval timekeeper 0 57030 NULL
145440 +disable_so_qce_ablkcipher_register_fndecl_57031 qce_ablkcipher_register fndecl 0 57031 NULL
145441 +disable_so_posix_cpu_clock_set_fndecl_57033 posix_cpu_clock_set fndecl 1 57033 NULL
145442 +disable_so_ac97_clock_via82xx_modem_57034 ac97_clock via82xx_modem 0 57034 NULL
145443 +disable_so_ip_set_get_ipaddr4_fndecl_57035 ip_set_get_ipaddr4 fndecl 0 57035 NULL
145444 +disable_so_mmap_min_addr_handler_fndecl_57042 mmap_min_addr_handler fndecl 0 57042 NULL
145445 +disable_so___mutex_lock_interruptible_slowpath_fndecl_57044 __mutex_lock_interruptible_slowpath fndecl 0 57044 NULL
145446 +disable_so_round_jiffies_relative_fndecl_57045 round_jiffies_relative fndecl 0-1 57045 NULL
145447 +disable_so_addr2___pollrdmwr_57048 addr2 __pollrdmwr 0 57048 NULL
145448 +disable_so_opmode_ioaddr_mxser_port_57052 opmode_ioaddr mxser_port 0 57052 NULL nohasharray
145449 +disable_so_xfrm_hash_transfer_fndecl_57052 xfrm_hash_transfer fndecl 5 57052 &disable_so_opmode_ioaddr_mxser_port_57052
145450 +disable_so_hpi_sample_clock_query_source_index_fndecl_57055 hpi_sample_clock_query_source_index fndecl 1-0 57055 NULL
145451 +disable_so_bitmap_full_fndecl_57072 bitmap_full fndecl 2 57072 NULL
145452 +disable_so_cmd_attr_deregister_cpumask_fndecl_57077 cmd_attr_deregister_cpumask fndecl 0 57077 NULL
145453 +disable_so_hashtab_create_fndecl_57082 hashtab_create fndecl 3 57082 NULL
145454 +disable_so_laddr_c2wr_ae_connection_request_57084 laddr c2wr_ae_connection_request 0 57084 NULL
145455 +disable_so_alarmtimer_suspend_fndecl_57099 alarmtimer_suspend fndecl 0 57099 NULL
145456 +disable_so___cpufreq_cooling_register_fndecl_57101 __cpufreq_cooling_register fndecl 3 57101 NULL
145457 +disable_so_fll_clk_ref_div__fll_div_57104 fll_clk_ref_div _fll_div 0 57104 NULL
145458 +disable_so_tsc_to_system_mul_pvclock_vcpu_time_info_57110 tsc_to_system_mul pvclock_vcpu_time_info 0 57110 NULL nohasharray
145459 +disable_so_dp_clock_radeon_dp_link_train_info_57110 dp_clock radeon_dp_link_train_info 0 57110 &disable_so_tsc_to_system_mul_pvclock_vcpu_time_info_57110
145460 +disable_so_d_spc_timer_qc_dqblk_57112 d_spc_timer qc_dqblk 0 57112 NULL
145461 +disable_so_ntp_error_shift_timekeeper_57130 ntp_error_shift timekeeper 0 57130 NULL
145462 +disable_so_tuner_addr_cx88_board_57133 tuner_addr cx88_board 0 57133 NULL
145463 +disable_so_width_v4l2_bt_timings_57137 width v4l2_bt_timings 0 57137 NULL
145464 +disable_so_function_timer_list_57140 function timer_list 1 57140 NULL
145465 +disable_so_tuner_address_ts2020_config_57154 tuner_address ts2020_config 0 57154 NULL
145466 +disable_so_sm501_set_clock_fndecl_57155 sm501_set_clock fndecl 3-0 57155 NULL
145467 +disable_so_addrlimit_qib_user_sdma_pkt_57160 addrlimit qib_user_sdma_pkt 0 57160 NULL
145468 +disable_so_read_file_regidx_fndecl_57161 read_file_regidx fndecl 3-0 57161 NULL
145469 +disable_so_slot_time_rt2x00lib_erp_57170 slot_time rt2x00lib_erp 0 57170 NULL
145470 +disable_so_bx_pt_regs_57172 bx pt_regs 0 57172 NULL
145471 +disable_so_ssb_pmu_get_controlclock_fndecl_57187 ssb_pmu_get_controlclock fndecl 0 57187 NULL
145472 +disable_so_inet_fill_ifaddr_fndecl_57209 inet_fill_ifaddr fndecl 0-3-5 57209 NULL
145473 +disable_so_mem_addr_vardecl_debugfs_c_57210 mem_addr vardecl_debugfs.c 0 57210 NULL
145474 +disable_so_iwl_static_sleep_cmd_fndecl_57211 iwl_static_sleep_cmd fndecl 4 57211 NULL
145475 +disable_so_frequency_khz_ts2020_priv_57218 frequency_khz ts2020_priv 0 57218 NULL
145476 +disable_so_hashm_dcb_output_57225 hashm dcb_output 0 57225 NULL
145477 +disable_so_show_risetime_fndecl_57236 show_risetime fndecl 0 57236 NULL
145478 +disable_so_iscsi_nacl_attrib_store_random_r2t_offsets_fndecl_57241 iscsi_nacl_attrib_store_random_r2t_offsets fndecl 0-3 57241 NULL
145479 +disable_so_hash_netiface6_expire_fndecl_57246 hash_netiface6_expire fndecl 4 57246 NULL
145480 +disable_so_delayed_ack_bictcp_57249 delayed_ack bictcp 0 57249 NULL
145481 +disable_so_addr_he_ioctl_reg_57251 addr he_ioctl_reg 0 57251 NULL
145482 +disable_so_crystalfreq_ssb_chipcommon_pmu_57260 crystalfreq ssb_chipcommon_pmu 0 57260 NULL
145483 +disable_so_i_dtime_ext4_inode_info_57265 i_dtime ext4_inode_info 0 57265 NULL
145484 +disable_so_qlcnic_schedule_work_fndecl_57272 qlcnic_schedule_work fndecl 3 57272 NULL
145485 +disable_so_uid_affs_tail_57279 uid affs_tail 0 57279 NULL nohasharray
145486 +disable_so_delay_slave_57279 delay slave 0 57279 &disable_so_uid_affs_tail_57279 nohasharray
145487 +disable_so_pwm_freq_to_reg_627hf_fndecl_57279 pwm_freq_to_reg_627hf fndecl 0 57279 &disable_so_delay_slave_57279
145488 +disable_so_sock_set_timeout_fndecl_57281 sock_set_timeout fndecl 0-3 57281 NULL
145489 +disable_so_phys_addr_fndecl_57284 phys_addr fndecl 0 57284 NULL
145490 +disable_so_i_uid_minix2_inode_57288 i_uid minix2_inode 0 57288 NULL
145491 +disable_so_hash_netnet4_expire_fndecl_57295 hash_netnet4_expire fndecl 4 57295 NULL
145492 +disable_so_mtrr_file_add_fndecl_57296 mtrr_file_add fndecl 1-2 57296 NULL
145493 +disable_so_rd_addr_gfs2_rgrpd_57301 rd_addr gfs2_rgrpd 0 57301 NULL
145494 +disable_so_elf_map_fndecl_57308 elf_map fndecl 0-2-4-5 57308 NULL
145495 +disable_so_frame_len_stv0900_signal_info_57310 frame_len stv0900_signal_info 0 57310 NULL nohasharray
145496 +disable_so_crypto_pcbc_encrypt_segment_fndecl_57310 crypto_pcbc_encrypt_segment fndecl 0 57310 &disable_so_frame_len_stv0900_signal_info_57310
145497 +disable_so_xs_init_anyaddr_fndecl_57311 xs_init_anyaddr fndecl 1 57311 NULL
145498 +disable_so_ahash_setkey_unaligned_fndecl_57314 ahash_setkey_unaligned fndecl 3 57314 NULL
145499 +disable_so_active_time_lm8333_platform_data_57318 active_time lm8333_platform_data 0 57318 NULL
145500 +disable_so_snd_timer_start_slave_fndecl_57320 snd_timer_start_slave fndecl 0 57320 NULL
145501 +disable_so_dma_addr_pluto_57323 dma_addr pluto 0 57323 NULL nohasharray
145502 +disable_so_bitmap_print_to_pagebuf_fndecl_57323 bitmap_print_to_pagebuf fndecl 4 57323 &disable_so_dma_addr_pluto_57323
145503 +disable_so_sgl_pg0_addr_hi_sgl_page_pairs_57333 sgl_pg0_addr_hi sgl_page_pairs 0 57333 NULL
145504 +disable_so_scd_base_addr_iwl_trans_pcie_57336 scd_base_addr iwl_trans_pcie 0 57336 NULL
145505 +disable_so_vfio_msi_set_vector_signal_fndecl_57339 vfio_msi_set_vector_signal fndecl 0-2 57339 NULL
145506 +disable_so_sfq_hash_fndecl_57343 sfq_hash fndecl 0 57343 NULL
145507 +disable_so_security_task_getscheduler_fndecl_57345 security_task_getscheduler fndecl 0 57345 NULL
145508 +disable_so_xfrm_idx_hash_transfer_fndecl_57346 xfrm_idx_hash_transfer fndecl 3 57346 NULL
145509 +disable_so_hblank_hi_lvds_dvo_timing_57349 hblank_hi lvds_dvo_timing 0 57349 NULL
145510 +disable_so_try_cancel_split_timeout_fndecl_57358 try_cancel_split_timeout fndecl 0 57358 NULL
145511 +disable_so_node_read_cpumask_fndecl_57363 node_read_cpumask fndecl 0 57363 NULL
145512 +disable_so_module_addr_max_rw_vardecl_module_c_57377 module_addr_max_rw vardecl_module.c 0 57377 NULL
145513 +disable_so_timecounter_read_delta_fndecl_57378 timecounter_read_delta fndecl 0 57378 NULL
145514 +disable_so_addr_hi_ahci_sg_57386 addr_hi ahci_sg 0 57386 NULL
145515 +disable_so_rpi_paddr_lo_lpfc_mbx_post_hdr_tmpl_57387 rpi_paddr_lo lpfc_mbx_post_hdr_tmpl 0 57387 NULL
145516 +disable_so_read_signal_strength_dvb_frontend_ops_57393 read_signal_strength dvb_frontend_ops 0 57393 NULL nohasharray
145517 +disable_so_aes_init_fndecl_57393 aes_init fndecl 0 57393 &disable_so_read_signal_strength_dvb_frontend_ops_57393
145518 +disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397 iscsi_stat_instance_show_attr_disc_time fndecl 0 57397 NULL nohasharray
145519 +disable_so_inblock_signal_struct_57397 inblock signal_struct 0 57397 &disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397
145520 +disable_so_ks0108_address_fndecl_57399 ks0108_address fndecl 1 57399 NULL
145521 +disable_so_set_mtrr_fndecl_57402 set_mtrr fndecl 2-3 57402 NULL
145522 +disable_so___hw_addr_del_entry_fndecl_57405 __hw_addr_del_entry fndecl 0 57405 NULL
145523 +disable_so_adis16136_write_frequency_fndecl_57414 adis16136_write_frequency fndecl 0-4 57414 NULL
145524 +disable_so_addr_hi_eth_rx_cqe_next_page_57432 addr_hi eth_rx_cqe_next_page 0 57432 NULL
145525 +disable_so_vp_iowrite64_twopart_fndecl_57440 vp_iowrite64_twopart fndecl 1 57440 NULL
145526 +disable_so_demod_i2c_addr_tda10071_config_57445 demod_i2c_addr tda10071_config 0 57445 NULL
145527 +disable_so___mcheck_cpu_mce_banks_init_fndecl_57446 __mcheck_cpu_mce_banks_init fndecl 0 57446 NULL
145528 +disable_so_reference_freq_amdgpu_pll_57451 reference_freq amdgpu_pll 0 57451 NULL
145529 +disable_so_default_dispclk_radeon_clock_57469 default_dispclk radeon_clock 0 57469 NULL
145530 +disable_so_dma_pool_free_fndecl_57472 dma_pool_free fndecl 3 57472 NULL
145531 +disable_so_ds1307_get_time_fndecl_57477 ds1307_get_time fndecl 0 57477 NULL
145532 +disable_so_addr_ch_mem_range_57497 addr ch_mem_range 0 57497 NULL
145533 +disable_so_ip_hash_netiface4_elem_57501 ip hash_netiface4_elem 0 57501 NULL
145534 +disable_so_dt_cpufreq_platdrv_init_fndecl_57502 dt_cpufreq_platdrv_init fndecl 0 57502 NULL
145535 +disable_so_fuse_flush_times_fndecl_57514 fuse_flush_times fndecl 0 57514 NULL
145536 +disable_so_nl_pid_sockaddr_nl_57515 nl_pid sockaddr_nl 0 57515 NULL
145537 +disable_so_plane_vaddr_fndecl_57531 plane_vaddr fndecl 5 57531 NULL
145538 +disable_so_addr_nv_adma_prd_57534 addr nv_adma_prd 0 57534 NULL
145539 +disable_so_task_tgid_vnr_fndecl_57539 task_tgid_vnr fndecl 0 57539 NULL
145540 +disable_so_get_register_interruptible_fndecl_57541 get_register_interruptible fndecl 0 57541 NULL
145541 +disable_so_spi_rcvhdr_tailaddr_ipath_base_info_57542 spi_rcvhdr_tailaddr ipath_base_info 0 57542 NULL
145542 +disable_so_ath9k_hw_clear_queue_interrupts_fndecl_57543 ath9k_hw_clear_queue_interrupts fndecl 2 57543 NULL
145543 +disable_so_cl_recover_timer_dlm_cluster_57553 cl_recover_timer dlm_cluster 0 57553 NULL nohasharray
145544 +disable_so_boot_addr_pmu_nvbios_pmuR_57553 boot_addr_pmu nvbios_pmuR 0 57553 &disable_so_cl_recover_timer_dlm_cluster_57553 nohasharray
145545 +disable_so___mod_timer_fndecl_57553 __mod_timer fndecl 2 57553 &disable_so_boot_addr_pmu_nvbios_pmuR_57553
145546 +disable_so_hpfb_freq_cs42l56_platform_data_57565 hpfb_freq cs42l56_platform_data 0 57565 NULL nohasharray
145547 +disable_so_i915_max_freq_set_fndecl_57565 i915_max_freq_set fndecl 2-0 57565 &disable_so_hpfb_freq_cs42l56_platform_data_57565
145548 +disable_so_frequency_v4l2_frequency_57580 frequency v4l2_frequency 0 57580 NULL
145549 +disable_so_time_mce_57593 time mce 0 57593 NULL
145550 +disable_so_addr_abituguru3_data_57605 addr abituguru3_data 0 57605 NULL
145551 +disable_so_bitmap_onto_fndecl_57611 bitmap_onto fndecl 4 57611 NULL
145552 +disable_so_rx4581_get_datetime_fndecl_57612 rx4581_get_datetime fndecl 0 57612 NULL
145553 +disable_so_rem_addr_nes_cm_info_57615 rem_addr nes_cm_info 0 57615 NULL
145554 +disable_so_lease_time_nfs_fsinfo_57627 lease_time nfs_fsinfo 0 57627 NULL
145555 +disable_so_hash_tbl_pbl_addr_hi_fcoe_kwqe_init2_57631 hash_tbl_pbl_addr_hi fcoe_kwqe_init2 0 57631 NULL
145556 +disable_so_pci_addr_blogic_probeinfo_57646 pci_addr blogic_probeinfo 0 57646 NULL
145557 +disable_so_intel_gpio_runtime_idle_fndecl_57650 intel_gpio_runtime_idle fndecl 0 57650 NULL
145558 +disable_so_clock_div_par_info_57652 clock_div par_info 0 57652 NULL
145559 +disable_so_overflowuid_vardecl_57653 overflowuid vardecl 0 57653 NULL
145560 +disable_so_start_time_request_57657 start_time request 0 57657 NULL nohasharray
145561 +disable_so_wil_freq_seq_open_fndecl_57657 wil_freq_seq_open fndecl 0 57657 &disable_so_start_time_request_57657 nohasharray
145562 +disable_so_ocfs2_find_next_zero_bit_unaligned_fndecl_57657 ocfs2_find_next_zero_bit_unaligned fndecl 0-2 57657 &disable_so_wil_freq_seq_open_fndecl_57657
145563 +disable_so_addr_hi_dma_address_57659 addr_hi dma_address 0 57659 NULL
145564 +disable_so_wm2200_runtime_resume_fndecl_57661 wm2200_runtime_resume fndecl 0 57661 NULL nohasharray
145565 +disable_so_w_idx_addr_brcmf_pcie_ringbuf_57661 w_idx_addr brcmf_pcie_ringbuf 0 57661 &disable_so_wm2200_runtime_resume_fndecl_57661
145566 +disable_so_timeout_us_vardecl_tlb_uv_c_57666 timeout_us vardecl_tlb_uv.c 0 57666 NULL
145567 +disable_so_fence_wait_timeout_fndecl_57667 fence_wait_timeout fndecl 0-3 57667 NULL nohasharray
145568 +disable_so_signal_cfg80211_bss_57667 signal cfg80211_bss 0 57667 &disable_so_fence_wait_timeout_fndecl_57667
145569 +disable_so_admin_timeout_vardecl_nvme_core_c_57668 admin_timeout vardecl_nvme-core.c 0 57668 NULL
145570 +disable_so_next_gid_index_mlx4_mgm_57670 next_gid_index mlx4_mgm 0 57670 NULL
145571 +disable_so_sdn_objnamel_sockaddr_dn_57674 sdn_objnamel sockaddr_dn 0 57674 NULL
145572 +disable_so_diolan_set_clock_synch_timeout_fndecl_57678 diolan_set_clock_synch_timeout fndecl 0 57678 NULL
145573 +disable_so_pioaddr_rhine_private_57682 pioaddr rhine_private 0 57682 NULL nohasharray
145574 +disable_so_or51132_read_signal_strength_fndecl_57682 or51132_read_signal_strength fndecl 0 57682 &disable_so_pioaddr_rhine_private_57682
145575 +disable_so_np_oaktrail_hdmi_clock_57683 np oaktrail_hdmi_clock 0 57683 NULL
145576 +disable_so_laddr_check_rds_transport_57695 laddr_check rds_transport 1 57695 NULL
145577 +disable_so_pause_time_ixgbe_fc_info_57702 pause_time ixgbe_fc_info 0 57702 NULL
145578 +disable_so_img_spfi_runtime_resume_fndecl_57703 img_spfi_runtime_resume fndecl 0 57703 NULL
145579 +disable_so_y_runtime_sc_57719 y runtime_sc 0 57719 NULL nohasharray
145580 +disable_so_tscdeadline_kvm_timer_57719 tscdeadline kvm_timer 0 57719 &disable_so_y_runtime_sc_57719
145581 +disable_so_dmaaddr_avmcard_dmabuf_57720 dmaaddr avmcard_dmabuf 0 57720 NULL nohasharray
145582 +disable_so_cg_spll_func_cntl_4_ni_clock_registers_57720 cg_spll_func_cntl_4 ni_clock_registers 0 57720 &disable_so_dmaaddr_avmcard_dmabuf_57720
145583 +disable_so_xgene_rtc_read_time_fndecl_57728 xgene_rtc_read_time fndecl 0 57728 NULL
145584 +disable_so_dma_addr_vnic_wq_buf_57732 dma_addr vnic_wq_buf 0 57732 NULL
145585 +disable_so_E_md4hash_fndecl_57735 E_md4hash fndecl 0 57735 NULL
145586 +disable_so_azx_timecounter_init_fndecl_57762 azx_timecounter_init fndecl 3 57762 NULL
145587 +disable_so_pcibios_save_fw_addr_fndecl_57765 pcibios_save_fw_addr fndecl 3 57765 NULL nohasharray
145588 +disable_so_hash_setkey_fndecl_57765 hash_setkey fndecl 0-3 57765 &disable_so_pcibios_save_fw_addr_fndecl_57765
145589 +disable_so_dlm_master_hash_fndecl_57794 dlm_master_hash fndecl 2 57794 NULL
145590 +disable_so_bitmap_or_fndecl_57806 bitmap_or fndecl 4 57806 NULL
145591 +disable_so_iso_stream_schedule_fndecl_57815 iso_stream_schedule fndecl 0 57815 NULL nohasharray
145592 +disable_so_crypto_register_rng_fndecl_57815 crypto_register_rng fndecl 0 57815 &disable_so_iso_stream_schedule_fndecl_57815
145593 +disable_so_authenc_verify_ahash_done_fndecl_57820 authenc_verify_ahash_done fndecl 2 57820 NULL
145594 +disable_so___timespec_to_jiffies_fndecl_57822 __timespec_to_jiffies fndecl 0-2-1 57822 NULL
145595 +disable_so_sys_addr_to_csrow_fndecl_57824 sys_addr_to_csrow fndecl 0-2 57824 NULL
145596 +disable_so_req_q_phy_addr_ql3_adapter_57830 req_q_phy_addr ql3_adapter 0 57830 NULL
145597 +disable_so_htod_mb_data_addr_brcmf_pcie_shared_info_57843 htod_mb_data_addr brcmf_pcie_shared_info 0 57843 NULL
145598 +disable_so_xfs_btree_rec_offset_fndecl_57864 xfs_btree_rec_offset fndecl 0-2 57864 NULL
145599 +disable_so_write_phy_reg_fndecl_57868 write_phy_reg fndecl 3-2 57868 NULL
145600 +disable_so_bg_block_bitmap_lo_ext4_group_desc_57870 bg_block_bitmap_lo ext4_group_desc 0 57870 NULL
145601 +disable_so_s_wtime_ext4_super_block_57871 s_wtime ext4_super_block 0 57871 NULL
145602 +disable_so_bridge_hello_time_net_bridge_57884 bridge_hello_time net_bridge 0 57884 NULL
145603 +disable_so_gpu_addr_radeon_wb_57894 gpu_addr radeon_wb 0 57894 NULL
145604 +disable_so_addr_vxge_hw_mempool_dma_57895 addr vxge_hw_mempool_dma 0 57895 NULL nohasharray
145605 +disable_so_command_setecptiming_fndecl_57895 command_setecptiming fndecl 0 57895 &disable_so_addr_vxge_hw_mempool_dma_57895
145606 +disable_so_kbd_led_timeout_show_fndecl_57896 kbd_led_timeout_show fndecl 0 57896 NULL
145607 +disable_so_ceph_aes_encrypt2_fndecl_57897 ceph_aes_encrypt2 fndecl 2-6-8 57897 NULL
145608 +disable_so_mask_lo_mtrr_var_range_57901 mask_lo mtrr_var_range 0 57901 NULL
145609 +disable_so_family_xfrm_kmaddress_57907 family xfrm_kmaddress 0 57907 NULL
145610 +disable_so_ks0108_delay_vardecl_ks0108_c_57914 ks0108_delay vardecl_ks0108.c 0 57914 NULL
145611 +disable_so_mtime_server_afs_file_status_57920 mtime_server afs_file_status 0 57920 NULL
145612 +disable_so_base_guid_qib_devdata_57924 base_guid qib_devdata 0 57924 NULL
145613 +disable_so_btrfs_delete_delayed_insertion_item_fndecl_57926 btrfs_delete_delayed_insertion_item fndecl 0 57926 NULL
145614 +disable_so_atime_sec_p9_iattr_dotl_57931 atime_sec p9_iattr_dotl 0 57931 NULL
145615 +disable_so_io_bitmap_max_thread_struct_57932 io_bitmap_max thread_struct 0 57932 NULL
145616 +disable_so_cpu_has_cpufreq_fndecl_57939 cpu_has_cpufreq fndecl 1 57939 NULL
145617 +disable_so_discov_interleaved_timeout_hci_dev_57944 discov_interleaved_timeout hci_dev 0 57944 NULL
145618 +disable_so_batadv_orig_hash_del_if_fndecl_57951 batadv_orig_hash_del_if fndecl 2 57951 NULL
145619 +disable_so_vapic_addr_kvm_vapic_addr_57958 vapic_addr kvm_vapic_addr 0 57958 NULL
145620 +disable_so_qce_ahash_update_fndecl_57959 qce_ahash_update fndecl 0 57959 NULL
145621 +disable_so_work_base_addr_snd_ymfpci_57965 work_base_addr snd_ymfpci 0 57965 NULL
145622 +disable_so_enable_cpuidle_governor_57967 enable cpuidle_governor 0 57967 NULL
145623 +disable_so_hash_write_fndecl_57980 hash_write fndecl 0 57980 NULL
145624 +disable_so_addr_cs5535audio_dma_desc_57981 addr cs5535audio_dma_desc 0 57981 NULL nohasharray
145625 +disable_so_wdt_set_timeout_fndecl_57981 wdt_set_timeout fndecl 0 57981 &disable_so_addr_cs5535audio_dma_desc_57981
145626 +disable_so_memaddr_velocity_info_57982 memaddr velocity_info 0 57982 NULL
145627 +disable_so_uuids_open_fndecl_57986 uuids_open fndecl 0 57986 NULL
145628 +disable_so_p6_mt9t112_pll_divider_58006 p6 mt9t112_pll_divider 0 58006 NULL
145629 +disable_so_buffer_addr_lo_iscsi_bd_58012 buffer_addr_lo iscsi_bd 0 58012 NULL
145630 +disable_so_piix_set_timings_fndecl_58017 piix_set_timings fndecl 3 58017 NULL
145631 +disable_so_rqt_hwaddr_t4_rq_58021 rqt_hwaddr t4_rq 0 58021 NULL
145632 +disable_so_fc_gidpn_build_fndecl_58022 fc_gidpn_build fndecl 0-3-5 58022 NULL nohasharray
145633 +disable_so_ia32_misc_enable_msr_kvm_vcpu_arch_58022 ia32_misc_enable_msr kvm_vcpu_arch 0 58022 &disable_so_fc_gidpn_build_fndecl_58022
145634 +disable_so_sdev_runtime_suspend_fndecl_58023 sdev_runtime_suspend fndecl 0 58023 NULL
145635 +disable_so_check_msr_fndecl_58027 check_msr fndecl 2 58027 NULL
145636 +disable_so_init_addr_pmu_nvbios_pmuR_58030 init_addr_pmu nvbios_pmuR 0 58030 NULL
145637 +disable_so_read_addr_qla82xx_md_entry_mux_58034 read_addr qla82xx_md_entry_mux 0 58034 NULL
145638 +disable_so_vclk_post_div_real_pll_ct_58036 vclk_post_div_real pll_ct 0 58036 NULL
145639 +disable_so_mv88e6060_set_addr_fndecl_58039 mv88e6060_set_addr fndecl 0 58039 NULL
145640 +disable_so_skb_tx_hash_fndecl_58044 skb_tx_hash fndecl 0 58044 NULL
145641 +disable_so_kvm_mtrr_valid_fndecl_58049 kvm_mtrr_valid fndecl 3 58049 NULL
145642 +disable_so_enic_dev_del_station_addr_fndecl_58050 enic_dev_del_station_addr fndecl 0 58050 NULL
145643 +disable_so_divisor_flow_filter_58055 divisor flow_filter 0 58055 NULL nohasharray
145644 +disable_so_sg_addr_orc_scb_58055 sg_addr orc_scb 0 58055 &disable_so_divisor_flow_filter_58055
145645 +disable_so_read_addr_qla8xxx_minidump_entry_rdrom_58060 read_addr qla8xxx_minidump_entry_rdrom 0 58060 NULL
145646 +disable_so_op2_value_baddr1_gru_instruction_58062 op2_value_baddr1 gru_instruction 0 58062 NULL
145647 +disable_so_wait_table_hash_nr_entries_zone_58067 wait_table_hash_nr_entries zone 0 58067 NULL
145648 +disable_so_write_delay_adis_data_58068 write_delay adis_data 0 58068 NULL
145649 +disable_so_paging64_walk_addr_nested_fndecl_58079 paging64_walk_addr_nested fndecl 3-4 58079 NULL
145650 +disable_so_pm860x_rtc_set_time_fndecl_58084 pm860x_rtc_set_time fndecl 0 58084 NULL nohasharray
145651 +disable_so_setup_clock_dw_mci_drv_data_58084 setup_clock dw_mci_drv_data 0 58084 &disable_so_pm860x_rtc_set_time_fndecl_58084
145652 +disable_so_regvalue__coeff_div_58086 regvalue _coeff_div 0 58086 NULL
145653 +disable_so_ext_addr_solo_p2m_desc_58103 ext_addr solo_p2m_desc 0 58103 NULL
145654 +disable_so_vclk_radeon_uvd_clock_voltage_dependency_entry_58107 vclk radeon_uvd_clock_voltage_dependency_entry 0 58107 NULL
145655 +disable_so_freq_ath5k_chan_pcal_info_58109 freq ath5k_chan_pcal_info 0 58109 NULL
145656 +disable_so_d_ino_timer_qc_dqblk_58112 d_ino_timer qc_dqblk 0 58112 NULL nohasharray
145657 +disable_so_hpi_sample_clock_get_source_index_fndecl_58112 hpi_sample_clock_get_source_index fndecl 1-0 58112 &disable_so_d_ino_timer_qc_dqblk_58112
145658 +disable_so_src_addr_low_qlcnic_pex_dma_descriptor_58115 src_addr_low qlcnic_pex_dma_descriptor 0 58115 NULL
145659 +disable_so_dvb_buf_tscnt_vardecl_cx88_dvb_c_58119 dvb_buf_tscnt vardecl_cx88-dvb.c 0 58119 NULL
145660 +disable_so_aes_encrypt_packets_read_fndecl_58121 aes_encrypt_packets_read fndecl 0-3 58121 NULL
145661 +disable_so_cq_dma_address_skd_device_58128 cq_dma_address skd_device 0 58128 NULL
145662 +disable_so_mtrr_type_lookup_fixed_fndecl_58157 mtrr_type_lookup_fixed fndecl 1 58157 NULL
145663 +disable_so_start_rmt_timer0_fndecl_58158 start_rmt_timer0 fndecl 2 58158 NULL nohasharray
145664 +disable_so_pneigh_hash_fndecl_58158 pneigh_hash fndecl 2 58158 &disable_so_start_rmt_timer0_fndecl_58158
145665 +disable_so_spi_rcvhdr_tailaddr_qib_base_info_58167 spi_rcvhdr_tailaddr qib_base_info 0 58167 NULL
145666 +disable_so_high_bkey_58171 high bkey 0 58171 NULL
145667 +disable_so_remove_journal_hash_fndecl_58179 remove_journal_hash fndecl 4 58179 NULL
145668 +disable_so_snd_sgbuf_get_addr_fndecl_58188 snd_sgbuf_get_addr fndecl 0-2 58188 NULL
145669 +disable_so_get_cpu_topology_fndecl_58189 get_cpu_topology fndecl 1 58189 NULL
145670 +disable_so_mwl8k_cmd_update_mac_addr_fndecl_58193 mwl8k_cmd_update_mac_addr fndecl 0 58193 NULL
145671 +disable_so_i_mode_inode_58204 i_mode inode 0 58204 NULL
145672 +disable_so_qla4xxx_fw_uptime_show_fndecl_58212 qla4xxx_fw_uptime_show fndecl 0 58212 NULL
145673 +disable_so_ct_xfitimer_irq_rearm_fndecl_58216 ct_xfitimer_irq_rearm fndecl 2 58216 NULL
145674 +disable_so_r820t_set_analog_freq_fndecl_58223 r820t_set_analog_freq fndecl 0 58223 NULL
145675 +disable_so_devlink_sound_timer_operations_58261 devlink sound_timer_operations 0 58261 NULL
145676 +disable_so_lx_dsp_get_clock_frequency_fndecl_58263 lx_dsp_get_clock_frequency fndecl 0 58263 NULL
145677 +disable_so_qdr_dfe_time_qib_chippport_specific_58265 qdr_dfe_time qib_chippport_specific 0 58265 NULL
145678 +disable_so_boottime_set_fndecl_58270 boottime_set fndecl 0 58270 NULL
145679 +disable_so_unhandled_signal_fndecl_58272 unhandled_signal fndecl 2 58272 NULL
145680 +disable_so_nested_vmx_check_msr_switch_fndecl_58274 nested_vmx_check_msr_switch fndecl 2-3 58274 NULL
145681 +disable_so_atomic_counters_read_fndecl_58280 atomic_counters_read fndecl 3-0 58280 NULL
145682 +disable_so_read_delay_adis_data_58281 read_delay adis_data 0 58281 NULL
145683 +disable_so_rsi_sdio_set_cmd52_arg_fndecl_58288 rsi_sdio_set_cmd52_arg fndecl 0-2-3-4-5 58288 NULL
145684 +disable_so_ipv6_dev_get_saddr_fndecl_58290 ipv6_dev_get_saddr fndecl 0 58290 NULL
145685 +disable_so_futex_atomic_cmpxchg_inatomic_fndecl_58294 futex_atomic_cmpxchg_inatomic fndecl 4 58294 NULL
145686 +disable_so_gcm_hash_assoc_remain_done_fndecl_58296 gcm_hash_assoc_remain_done fndecl 2 58296 NULL
145687 +disable_so_regmap_update_bits_async_fndecl_58298 regmap_update_bits_async fndecl 2-4-3-0 58298 NULL
145688 +disable_so_dialwait_timer_isdn_net_local_s_58300 dialwait_timer isdn_net_local_s 0 58300 NULL
145689 +disable_so_addr_mISDNchannel_58316 addr mISDNchannel 0 58316 NULL
145690 +disable_so_incr_error_cpu_itimer_58327 incr_error cpu_itimer 0 58327 NULL
145691 +disable_so_tai_offset_timekeeper_58331 tai_offset timekeeper 0 58331 NULL
145692 +disable_so_mce_rdmsrl_fndecl_58332 mce_rdmsrl fndecl 0 58332 NULL
145693 +disable_so_start_ecm_timer_fndecl_58359 start_ecm_timer fndecl 2 58359 NULL
145694 +disable_so_autoconfig_read_divisor_id_fndecl_58367 autoconfig_read_divisor_id fndecl 0 58367 NULL
145695 +disable_so_x86_get_mtrr_mem_range_fndecl_58379 x86_get_mtrr_mem_range fndecl 3-4-2-0 58379 NULL
145696 +disable_so_mpc_ioapic_addr_fndecl_58384 mpc_ioapic_addr fndecl 0 58384 NULL
145697 +disable_so_addr_type_ipv6_saddr_score_58395 addr_type ipv6_saddr_score 0 58395 NULL
145698 +disable_so_setfreq_i_fndecl_58400 setfreq_i fndecl 2 58400 NULL
145699 +disable_so_tcp_md5_hash_skb_data_fndecl_58401 tcp_md5_hash_skb_data fndecl 3 58401 NULL
145700 +disable_so_aca_cstamp_ifacaddr6_58402 aca_cstamp ifacaddr6 0 58402 NULL
145701 +disable_so_old_cpufreq_freqs_58403 old cpufreq_freqs 0 58403 NULL
145702 +disable_so_jiffies_to_timeval_fndecl_58407 jiffies_to_timeval fndecl 1 58407 NULL
145703 +disable_so_vnic_dev_set_mac_addr_fndecl_58408 vnic_dev_set_mac_addr fndecl 0 58408 NULL
145704 +disable_so_sadb_lifetime_addtime_sadb_lifetime_58416 sadb_lifetime_addtime sadb_lifetime 0 58416 NULL
145705 +disable_so_addr_smsc47m1_data_58419 addr smsc47m1_data 0 58419 NULL
145706 +disable_so_clk_freq_g762_data_58420 clk_freq g762_data 0 58420 NULL
145707 +disable_so_khugepaged_scan_sleep_millisecs_vardecl_huge_memory_c_58427 khugepaged_scan_sleep_millisecs vardecl_huge_memory.c 0 58427 NULL nohasharray
145708 +disable_so_pairwise_cipher_suite_atmel_private_58427 pairwise_cipher_suite atmel_private 0 58427 &disable_so_khugepaged_scan_sleep_millisecs_vardecl_huge_memory_c_58427
145709 +disable_so_max_addr_dmar_domain_58431 max_addr dmar_domain 0 58431 NULL
145710 +disable_so_snd_ice1712_pro_internal_clock_default_info_fndecl_58437 snd_ice1712_pro_internal_clock_default_info fndecl 0 58437 NULL nohasharray
145711 +disable_so_memory_add_physaddr_to_nid_fndecl_58437 memory_add_physaddr_to_nid fndecl 0-1 58437 &disable_so_snd_ice1712_pro_internal_clock_default_info_fndecl_58437
145712 +disable_so_bnx2fc_cmd_timer_set_fndecl_58441 bnx2fc_cmd_timer_set fndecl 2 58441 NULL
145713 +disable_so_do_settimeofday64_fndecl_58445 do_settimeofday64 fndecl 0 58445 NULL
145714 +disable_so_uv_mmtimer_ioctl_fndecl_58452 uv_mmtimer_ioctl fndecl 0 58452 NULL
145715 +disable_so_r61_val_fc2580_freq_regs_58455 r61_val fc2580_freq_regs 0 58455 NULL
145716 +disable_so_epp_read_addr_parport_operations_58468 epp_read_addr parport_operations 0-3 58468 NULL
145717 +disable_so_audio_config_hdmi_pixel_clock_fndecl_58471 audio_config_hdmi_pixel_clock fndecl 0 58471 NULL
145718 +disable_so_bufaddr_epic_tx_desc_58478 bufaddr epic_tx_desc 0 58478 NULL nohasharray
145719 +disable_so_qlcnic_sre_macaddr_change_fndecl_58478 qlcnic_sre_macaddr_change fndecl 0 58478 &disable_so_bufaddr_epic_tx_desc_58478
145720 +disable_so_gtime_task_struct_58480 gtime task_struct 0 58480 NULL nohasharray
145721 +disable_so_dma_addr_vpdma_buf_58480 dma_addr vpdma_buf 0 58480 &disable_so_gtime_task_struct_58480
145722 +disable_so_div_sync_wait_dib7000m_state_58486 div_sync_wait dib7000m_state 0 58486 NULL
145723 +disable_so_long_press_time_val_palmas_pwron_config_58497 long_press_time_val palmas_pwron_config 0 58497 NULL
145724 +disable_so_primary_pci_bus_58515 primary pci_bus 0 58515 NULL
145725 +disable_so_clk_frequency_imx_wm8962_data_58525 clk_frequency imx_wm8962_data 0 58525 NULL
145726 +disable_so_ieee80211_if_fmt_min_discovery_timeout_fndecl_58528 ieee80211_if_fmt_min_discovery_timeout fndecl 0-3 58528 NULL
145727 +disable_so_vidioc_s_frequency_fndecl_58543 vidioc_s_frequency fndecl 0 58543 NULL
145728 +disable_so_bitstream_put_bits_fndecl_58552 bitstream_put_bits fndecl 0-3 58552 NULL
145729 +disable_so_rbp_kvm_regs_58553 rbp kvm_regs 0 58553 NULL
145730 +disable_so_dosr_aic32x4_rate_divs_58555 dosr aic32x4_rate_divs 0 58555 NULL
145731 +disable_so_vscnprintf_fndecl_58558 vscnprintf fndecl 0-2 58558 NULL
145732 +disable_so_static_address_open_fndecl_58572 static_address_open fndecl 0 58572 NULL
145733 +disable_so_sysctl_rose_clear_request_timeout_vardecl_58580 sysctl_rose_clear_request_timeout vardecl 0 58580 NULL
145734 +disable_so_di_uid_dinode_58581 di_uid dinode 0 58581 NULL
145735 +disable_so_crypto_cts_decrypt_fndecl_58584 crypto_cts_decrypt fndecl 0-4 58584 NULL
145736 +disable_so_igu_base_addr_bnx2x_58589 igu_base_addr bnx2x 0 58589 NULL
145737 +disable_so_ifa_address_dn_ifaddr_58593 ifa_address dn_ifaddr 0 58593 NULL
145738 +disable_so_p54_get_band_from_freq_fndecl_58594 p54_get_band_from_freq fndecl 1 58594 NULL
145739 +disable_so_csk_ddp_setup_pgidx_cxgbi_device_58611 csk_ddp_setup_pgidx cxgbi_device 2 58611 NULL
145740 +disable_so_ref_mod_btrfs_delayed_ref_node_58614 ref_mod btrfs_delayed_ref_node 0 58614 NULL
145741 +disable_so_gr_remove_uid_fndecl_58619 gr_remove_uid fndecl 1 58619 NULL
145742 +disable_so_i2c_address_fc0012_config_58626 i2c_address fc0012_config 0 58626 NULL nohasharray
145743 +disable_so_ablkcipher_done_slow_fndecl_58626 ablkcipher_done_slow fndecl 0-2 58626 &disable_so_i2c_address_fc0012_config_58626
145744 +disable_so_address_b43legacy_dmadesc32_58627 address b43legacy_dmadesc32 0 58627 NULL
145745 +disable_so_di_atime_qnx6_inode_entry_58654 di_atime qnx6_inode_entry 0 58654 NULL nohasharray
145746 +disable_so_hactive_lo_lvds_dvo_timing_58654 hactive_lo lvds_dvo_timing 0 58654 &disable_so_di_atime_qnx6_inode_entry_58654
145747 +disable_so_ack_seq_tcp_skb_cb_58657 ack_seq tcp_skb_cb 0 58657 NULL
145748 +disable_so_matroxfb_PLL_mavenclock_fndecl_58658 matroxfb_PLL_mavenclock fndecl 3-4 58658 NULL nohasharray
145749 +disable_so_assert_exp_addr_sdpcm_shared_58658 assert_exp_addr sdpcm_shared 0 58658 &disable_so_matroxfb_PLL_mavenclock_fndecl_58658
145750 +disable_so_pre_div_freq_tbl_58661 pre_div freq_tbl 0 58661 NULL
145751 +disable_so_alsa_timer_init_fndecl_58667 alsa_timer_init fndecl 0 58667 NULL
145752 +disable_so_alloc_cpumask_var_node_fndecl_58668 alloc_cpumask_var_node fndecl 2-3 58668 NULL
145753 +disable_so_genwqe_debugfs_curr_dbg_uid2_open_fndecl_58673 genwqe_debugfs_curr_dbg_uid2_open fndecl 0 58673 NULL
145754 +disable_so_pixclock_fb_videomode_58678 pixclock fb_videomode 0 58678 NULL
145755 +disable_so_h_addr_reg_musb_qh_58681 h_addr_reg musb_qh 0 58681 NULL
145756 +disable_so_timeout_cyclades_port_58683 timeout cyclades_port 0 58683 NULL
145757 +disable_so_cxio_init_resource_fifo_random_fndecl_58684 cxio_init_resource_fifo_random fndecl 3 58684 NULL
145758 +disable_so_dib8000_get_timeout_fndecl_58702 dib8000_get_timeout fndecl 2-0 58702 NULL nohasharray
145759 +disable_so_xfs_btree_get_buf_block_fndecl_58702 xfs_btree_get_buf_block fndecl 0 58702 &disable_so_dib8000_get_timeout_fndecl_58702
145760 +disable_so_apds9300_write_interrupt_config_fndecl_58703 apds9300_write_interrupt_config fndecl 0 58703 NULL
145761 +disable_so_ath9k_hw_computetxtime_fndecl_58711 ath9k_hw_computetxtime fndecl 0-3-4-5 58711 NULL
145762 +disable_so_bus_address_drm_buf_58716 bus_address drm_buf 0 58716 NULL
145763 +disable_so_nr_irqs_vardecl_58723 nr_irqs vardecl 0 58723 NULL nohasharray
145764 +disable_so_hashbin_find_next_fndecl_58723 hashbin_find_next fndecl 2 58723 &disable_so_nr_irqs_vardecl_58723
145765 +disable_so_snd_usb_find_clock_selector_fndecl_58728 snd_usb_find_clock_selector fndecl 2 58728 NULL
145766 +disable_so_radio_freq_bttv_58729 radio_freq bttv 0 58729 NULL
145767 +disable_so_xc_set_signal_source_fndecl_58733 xc_set_signal_source fndecl 0 58733 NULL
145768 +disable_so_doorbell_write_vardecl_pcc_cpufreq_c_58745 doorbell_write vardecl_pcc-cpufreq.c 0 58745 NULL
145769 +disable_so_cpu_clock_counter_kfd_ioctl_get_clock_counters_args_58758 cpu_clock_counter kfd_ioctl_get_clock_counters_args 0 58758 NULL
145770 +disable_so_btrfs_set_dev_replace_time_started_fndecl_58761 btrfs_set_dev_replace_time_started fndecl 3 58761 NULL
145771 +disable_so_i_hash_mask_vardecl_inode_c_58762 i_hash_mask vardecl_inode.c 0 58762 NULL
145772 +disable_so_gr_set_address_fndecl_58765 gr_set_address fndecl 2 58765 NULL
145773 +disable_so_perfect_tx_time_minstrel_rate_58766 perfect_tx_time minstrel_rate 0 58766 NULL
145774 +disable_so_min_ref_div_radeon_pll_58768 min_ref_div radeon_pll 0 58768 NULL
145775 +disable_so_demod_address_ec100_config_58771 demod_address ec100_config 0 58771 NULL
145776 +disable_so_phys_addr_vm_struct_58777 phys_addr vm_struct 0 58777 NULL
145777 +disable_so_addr_ramfuc_reg_58780 addr ramfuc_reg 0 58780 NULL nohasharray
145778 +disable_so_start_addr_p54_tx_info_58780 start_addr p54_tx_info 0 58780 &disable_so_addr_ramfuc_reg_58780
145779 +disable_so_interrupt_mask_oxygen_58792 interrupt_mask oxygen 0 58792 NULL
145780 +disable_so_time_to_tm_fndecl_58793 time_to_tm fndecl 2-1 58793 NULL
145781 +disable_so_irq_pci_dev_58794 irq pci_dev 0 58794 NULL
145782 +disable_so_reg_write_fndecl_58795 reg_write fndecl 0-2-3-4 58795 NULL
145783 +disable_so_eof_uid_xfs_fs_eofblocks_58796 eof_uid xfs_fs_eofblocks 0 58796 NULL
145784 +disable_so_s_dv_timings_v4l2_subdev_video_ops_58798 s_dv_timings v4l2_subdev_video_ops 0 58798 NULL
145785 +disable_so_iscsit_do_crypto_hash_buf_fndecl_58805 iscsit_do_crypto_hash_buf fndecl 3-4 58805 NULL
145786 +disable_so_ablkcipher_next_slow_fndecl_58809 ablkcipher_next_slow fndecl 3-4 58809 NULL
145787 +disable_so_set_process_cpu_timer_fndecl_58820 set_process_cpu_timer fndecl 2 58820 NULL
145788 +disable_so_btbcm_check_bdaddr_fndecl_58825 btbcm_check_bdaddr fndecl 0 58825 NULL
145789 +disable_so_seek_timeout_vardecl_radio_si470x_common_c_58832 seek_timeout vardecl_radio-si470x-common.c 0 58832 NULL
145790 +disable_so_rhashtable_rehash_attach_fndecl_58833 rhashtable_rehash_attach fndecl 0 58833 NULL
145791 +disable_so_read_posix_clock_operations_58837 read posix_clock_operations 2 58837 NULL
145792 +disable_so_atomic_open_inode_operations_58838 atomic_open inode_operations 4-5 58838 NULL nohasharray
145793 +disable_so_vnic_dev_get_intr_coal_timer_max_fndecl_58838 vnic_dev_get_intr_coal_timer_max fndecl 0 58838 &disable_so_atomic_open_inode_operations_58838
145794 +disable_so_timeout_cmd_bidir_58846 timeout cmd_bidir 0 58846 NULL
145795 +disable_so_bank_mce_58847 bank mce 0 58847 NULL
145796 +disable_so_hw_ptr_wrap_snd_pcm_runtime_58849 hw_ptr_wrap snd_pcm_runtime 0 58849 NULL
145797 +disable_so_batadv_iv_ogm_fwd_send_time_fndecl_58851 batadv_iv_ogm_fwd_send_time fndecl 0 58851 NULL
145798 +disable_so_lrg_buf_q_alloc_phy_addr_ql3_adapter_58856 lrg_buf_q_alloc_phy_addr ql3_adapter 0 58856 NULL
145799 +disable_so_avc_get_hash_stats_fndecl_58860 avc_get_hash_stats fndecl 0 58860 NULL
145800 +disable_so_do_utimes_fndecl_58870 do_utimes fndecl 0-1 58870 NULL
145801 +disable_so_get_max_timeout_count_sdhci_ops_58875 get_max_timeout_count sdhci_ops 0 58875 NULL
145802 +disable_so_sys_setuid16_fndecl_58881 sys_setuid16 fndecl 0-1 58881 NULL
145803 +disable_so_pq_gpu_addr_kernel_queue_58891 pq_gpu_addr kernel_queue 0 58891 NULL
145804 +disable_so_suspend_time_ipw_priv_58911 suspend_time ipw_priv 0 58911 NULL
145805 +disable_so_Ti3026_calcclock_fndecl_58917 Ti3026_calcclock fndecl 2-3-0 58917 NULL
145806 +disable_so_virtual_reg_addr_wl1251_58918 virtual_reg_addr wl1251 0 58918 NULL
145807 +disable_so_timeout_read_fndecl_58936 timeout_read fndecl 3 58936 NULL
145808 +disable_so_bank_base_playback_addr_snd_ymfpci_58940 bank_base_playback_addr snd_ymfpci 0 58940 NULL
145809 +disable_so_sunkbd_interrupt_fndecl_58943 sunkbd_interrupt fndecl 2 58943 NULL
145810 +disable_so_cpufreq_add_policy_cpu_fndecl_58948 cpufreq_add_policy_cpu fndecl 0-2 58948 NULL
145811 +disable_so_vfreq___fb_timings_58967 vfreq __fb_timings 0 58967 NULL
145812 +disable_so___fdget_fndecl_58975 __fdget fndecl 1 58975 NULL
145813 +disable_so_log_addr_vhost_virtqueue_58983 log_addr vhost_virtqueue 0 58983 NULL
145814 +disable_so_start_addr_bnx2_mips_fw_file_entry_58985 start_addr bnx2_mips_fw_file_entry 0 58985 NULL
145815 +disable_so_wt_timeout_st21nfca_se_info_58988 wt_timeout st21nfca_se_info 0 58988 NULL
145816 +disable_so_sg_physaddr_sg_map_node_59010 sg_physaddr sg_map_node 0 59010 NULL
145817 +disable_so_hsync_pulse_width_hi_oaktrail_timing_info_59019 hsync_pulse_width_hi oaktrail_timing_info 0 59019 NULL
145818 +disable_so_cx88_set_freq_fndecl_59030 cx88_set_freq fndecl 0 59030 NULL
145819 +disable_so_daddr_ircomm_info_59034 daddr ircomm_info 0 59034 NULL
145820 +disable_so_iscsit_ta_netif_timeout_fndecl_59038 iscsit_ta_netif_timeout fndecl 0 59038 NULL
145821 +disable_so_frequency_stv090x_state_59044 frequency stv090x_state 0 59044 NULL
145822 +disable_so_slave_address_cp2112_write_req_report_59049 slave_address cp2112_write_req_report 0 59049 NULL
145823 +disable_so_ipath_hol_timeout_ms_vardecl_ipath_driver_c_59051 ipath_hol_timeout_ms vardecl_ipath_driver.c 0 59051 NULL
145824 +disable_so_acpi_throttling_wrmsr_fndecl_59058 acpi_throttling_wrmsr fndecl 1 59058 NULL
145825 +disable_so_acpi_cpufreq_init_fndecl_59061 acpi_cpufreq_init fndecl 0 59061 NULL
145826 +disable_so_evtbd_addr_hi_host_cmd_ds_pcie_details_59067 evtbd_addr_hi host_cmd_ds_pcie_details 0 59067 NULL
145827 +disable_so_addr_lo_dma_desc_59074 addr_lo dma_desc 0 59074 NULL
145828 +disable_so_xen_mce_chrdev_read_fndecl_59076 xen_mce_chrdev_read fndecl 0 59076 NULL
145829 +disable_so_addr_max8998_reg_dump_59086 addr max8998_reg_dump 0 59086 NULL
145830 +disable_so_card_snd_timer_id_59096 card snd_timer_id 0 59096 NULL
145831 +disable_so_addr_qib_sdma_txreq_59099 addr qib_sdma_txreq 0 59099 NULL
145832 +disable_so_rx_coalescing_timeo_bnad_59109 rx_coalescing_timeo bnad 0 59109 NULL
145833 +disable_so_dm_btree_del_fndecl_59119 dm_btree_del fndecl 0-2 59119 NULL
145834 +disable_so_topology_change_timer_show_fndecl_59122 topology_change_timer_show fndecl 0 59122 NULL
145835 +disable_so_ip_vs_addr_copy_fndecl_59129 ip_vs_addr_copy fndecl 1 59129 NULL
145836 +disable_so_i2c_address_cxd2820r_config_59130 i2c_address cxd2820r_config 0 59130 NULL
145837 +disable_so_panel_ref_divider_radeon_encoder_lvds_59134 panel_ref_divider radeon_encoder_lvds 0 59134 NULL nohasharray
145838 +disable_so_clock_lvds_dvo_timing_59134 clock lvds_dvo_timing 0 59134 &disable_so_panel_ref_divider_radeon_encoder_lvds_59134
145839 +disable_so_skcipher_setkey_fndecl_59135 skcipher_setkey fndecl 0-3 59135 NULL
145840 +disable_so_pcxhr_clock_type_info_fndecl_59137 pcxhr_clock_type_info fndecl 0 59137 NULL
145841 +disable_so_ccp_sha_setkey_fndecl_59138 ccp_sha_setkey fndecl 3 59138 NULL
145842 +disable_so_xfs_btree_shift_recs_fndecl_59139 xfs_btree_shift_recs fndecl 4 59139 NULL
145843 +disable_so_irq_set_chip_fndecl_59141 irq_set_chip fndecl 1 59141 NULL
145844 +disable_so_prech_timeout_midi_parms_59145 prech_timeout midi_parms 0 59145 NULL
145845 +disable_so_ecryptfs_message_wait_timeout_vardecl_59150 ecryptfs_message_wait_timeout vardecl 0 59150 NULL
145846 +disable_so_max_time_dib3000mc_config_59165 max_time dib3000mc_config 0 59165 NULL
145847 +disable_so_freq_snd_tea575x_59172 freq snd_tea575x 0 59172 NULL nohasharray
145848 +disable_so_hactive_hblank_hi_detailed_pixel_timing_59172 hactive_hblank_hi detailed_pixel_timing 0 59172 &disable_so_freq_snd_tea575x_59172
145849 +disable_so_last_port_bitmap_port_59176 last_port bitmap_port 0 59176 NULL
145850 +disable_so_svm_cid_sockaddr_vm_59186 svm_cid sockaddr_vm 0 59186 NULL
145851 +disable_so_divisor_tc_u_hnode_59196 divisor tc_u_hnode 0 59196 NULL
145852 +disable_so_address_r8a66597_pipe_info_59198 address r8a66597_pipe_info 0 59198 NULL
145853 +disable_so_val_addr_core0_nphy_rf_control_override_rev7_59213 val_addr_core0 nphy_rf_control_override_rev7 0 59213 NULL
145854 +disable_so_hv_signal_event_fndecl_59215 hv_signal_event fndecl 0 59215 NULL
145855 +disable_so_rv740_get_decoded_reference_divider_fndecl_59216 rv740_get_decoded_reference_divider fndecl 0-1 59216 NULL
145856 +disable_so_ecb_aes_decrypt_fndecl_59224 ecb_aes_decrypt fndecl 0-4 59224 NULL
145857 +disable_so_b44_interrupt_fndecl_59225 b44_interrupt fndecl 1 59225 NULL
145858 +disable_so_cpufreq_sysfs_create_file_fndecl_59228 cpufreq_sysfs_create_file fndecl 0 59228 NULL
145859 +disable_so_err_msr_regs_info_59233 err msr_regs_info 0 59233 NULL
145860 +disable_so_hci_dev_sockaddr_hci_59237 hci_dev sockaddr_hci 0 59237 NULL
145861 +disable_so_paddr_scq_info_59242 paddr scq_info 0 59242 NULL
145862 +disable_so_saddr_dat_cx231xx_i2c_xfer_data_59247 saddr_dat cx231xx_i2c_xfer_data 0 59247 NULL
145863 +disable_so_hash_cnt_ccp_aes_cmac_req_ctx_59249 hash_cnt ccp_aes_cmac_req_ctx 0 59249 NULL
145864 +disable_so_read_addr___cache_59255 read_addr __cache 0 59255 NULL
145865 +disable_so_freq_wmi_p2p_probe_response_cmd_59256 freq wmi_p2p_probe_response_cmd 0 59256 NULL
145866 +disable_so_ack_seq_tcphdr_59257 ack_seq tcphdr 0 59257 NULL
145867 +disable_so_i_uid_ext4_inode_59259 i_uid ext4_inode 0 59259 NULL
145868 +disable_so_prandom_seed_fndecl_59265 prandom_seed fndecl 1 59265 NULL nohasharray
145869 +disable_so_table1_addr_ipw_priv_59265 table1_addr ipw_priv 0 59265 &disable_so_prandom_seed_fndecl_59265
145870 +disable_so_set_mtrr_ops_59267 set mtrr_ops 2-3 59267 NULL
145871 +disable_so_signal_adm8211_tx_hdr_59276 signal adm8211_tx_hdr 0 59276 NULL
145872 +disable_so_n_pll_div_59277 n pll_div 0 59277 NULL
145873 +disable_so_burst_time_pie_vars_59278 burst_time pie_vars 0 59278 NULL
145874 +disable_so_atp867x_get_active_clocks_shifted_fndecl_59292 atp867x_get_active_clocks_shifted fndecl 0-2 59292 NULL
145875 +disable_so_hello_timer_show_fndecl_59304 hello_timer_show fndecl 0 59304 NULL
145876 +disable_so_pc_timeout_ubifs_debug_info_59317 pc_timeout ubifs_debug_info 0 59317 NULL
145877 +disable_so_reg_se_cache_ti_tscadc_dev_59318 reg_se_cache ti_tscadc_dev 0 59318 NULL
145878 +disable_so_hv_init_clockevent_device_fndecl_59324 hv_init_clockevent_device fndecl 2 59324 NULL nohasharray
145879 +disable_so_error_async_delayed_refs_59324 error async_delayed_refs 0 59324 &disable_so_hv_init_clockevent_device_fndecl_59324
145880 +disable_so_query_dv_timings_v4l2_subdev_video_ops_59327 query_dv_timings v4l2_subdev_video_ops 0 59327 NULL
145881 +disable_so_pwr_vec_read_time_b43_txpower_lo_control_59329 pwr_vec_read_time b43_txpower_lo_control 0 59329 NULL
145882 +disable_so_proc_do_uuid_fndecl_59345 proc_do_uuid fndecl 0 59345 NULL
145883 +disable_so_nilfs_segctor_last_seg_write_time_show_fndecl_59356 nilfs_segctor_last_seg_write_time_show fndecl 0 59356 NULL nohasharray
145884 +disable_so_hpi_tuner_get_hd_radio_signal_quality_fndecl_59356 hpi_tuner_get_hd_radio_signal_quality fndecl 0-1 59356 &disable_so_nilfs_segctor_last_seg_write_time_show_fndecl_59356
145885 +disable_so_usb_start_wait_urb_fndecl_59365 usb_start_wait_urb fndecl 0 59365 NULL
145886 +disable_so_cpuid_xenpf_cpu_ol_59386 cpuid xenpf_cpu_ol 0 59386 NULL
145887 +disable_so_mem_addr_ips_ha_59397 mem_addr ips_ha 0 59397 NULL
145888 +disable_so_ip6addrlbl_fill_fndecl_59401 ip6addrlbl_fill fndecl 0-4-6 59401 NULL
145889 +disable_so_cq_addr_lo_fcoe_kwqe_conn_offload2_59405 cq_addr_lo fcoe_kwqe_conn_offload2 0 59405 NULL
145890 +disable_so_l_pll_freq_tbl_59406 l pll_freq_tbl 0 59406 NULL
145891 +disable_so_sgid_idx_ocrdma_qp_59415 sgid_idx ocrdma_qp 0 59415 NULL
145892 +disable_so_i2c_bit_add_numbered_bus_fndecl_59416 i2c_bit_add_numbered_bus fndecl 0 59416 NULL
145893 +disable_so_trb_addr_lo_mv_u3d_ep_context_59424 trb_addr_lo mv_u3d_ep_context 0 59424 NULL
145894 +disable_so_shash_compat_init_fndecl_59445 shash_compat_init fndecl 0 59445 NULL
145895 +disable_so_currentfreq_cx24123_state_59448 currentfreq cx24123_state 0 59448 NULL
145896 +disable_so_neigh_proc_dointvec_userhz_jiffies_fndecl_59453 neigh_proc_dointvec_userhz_jiffies fndecl 0 59453 NULL
145897 +disable_so_panel_fb_divider_radeon_encoder_lvds_59458 panel_fb_divider radeon_encoder_lvds 0 59458 NULL nohasharray
145898 +disable_so_sec_pvclock_wall_clock_59458 sec pvclock_wall_clock 0 59458 &disable_so_panel_fb_divider_radeon_encoder_lvds_59458
145899 +disable_so_wl18xx_acx_host_if_cfg_bitmap_fndecl_59465 wl18xx_acx_host_if_cfg_bitmap fndecl 0 59465 NULL
145900 +disable_so_addr_erase_info_59472 addr erase_info 0 59472 NULL nohasharray
145901 +disable_so_ath9k_hw_addrxbuf_edma_fndecl_59472 ath9k_hw_addrxbuf_edma fndecl 2 59472 &disable_so_addr_erase_info_59472
145902 +disable_so_hour_timestamp_59476 hour timestamp 0 59476 NULL
145903 +disable_so_check_cpu_itimer_fndecl_59478 check_cpu_itimer fndecl 5-4 59478 NULL
145904 +disable_so_flush_time_cache_detail_59492 flush_time cache_detail 0 59492 NULL
145905 +disable_so_error0_timeout_si_sm_data_59495 error0_timeout si_sm_data 0 59495 NULL
145906 +disable_so_sampling_freq_mixart_stream_param_desc_59502 sampling_freq mixart_stream_param_desc 0 59502 NULL
145907 +disable_so_enc_addr_low_sata_start_req_59503 enc_addr_low sata_start_req 0 59503 NULL
145908 +disable_so_hash_unix_address_59504 hash unix_address 0 59504 NULL nohasharray
145909 +disable_so_ufs_get_inode_uid_fndecl_59504 ufs_get_inode_uid fndecl 0 59504 &disable_so_hash_unix_address_59504
145910 +disable_so_demod_address_tda1002x_config_59516 demod_address tda1002x_config 0 59516 NULL
145911 +disable_so_getaddr_dumpit_fndecl_59518 getaddr_dumpit fndecl 0 59518 NULL
145912 +disable_so_tg3_interrupt_fndecl_59519 tg3_interrupt fndecl 1 59519 NULL
145913 +disable_so_utime_task_struct_59526 utime task_struct 0 59526 NULL
145914 +disable_so_decrypt_ablkcipher_tfm_59537 decrypt ablkcipher_tfm 0 59537 NULL
145915 +disable_so_dma_addr_bnad_rx_vector_59551 dma_addr bnad_rx_vector 0 59551 NULL
145916 +disable_so_vram_addr_viafb_par_59552 vram_addr viafb_par 0 59552 NULL
145917 +disable_so_s00_img_ir_timing_regvals_59579 s00 img_ir_timing_regvals 0 59579 NULL
145918 +disable_so_pci_swizzle_interrupt_pin_fndecl_59580 pci_swizzle_interrupt_pin fndecl 0-2 59580 NULL
145919 +disable_so_iscsi_nacl_attrib_store_random_datain_seq_offsets_fndecl_59581 iscsi_nacl_attrib_store_random_datain_seq_offsets fndecl 0-3 59581 NULL
145920 +disable_so_time_next_delayed_flow_fq_sched_data_59598 time_next_delayed_flow fq_sched_data 0 59598 NULL
145921 +disable_so_signal_ttm_lock_59613 signal ttm_lock 0 59613 NULL
145922 +disable_so_trap_timeout_qib_ibport_59624 trap_timeout qib_ibport 0 59624 NULL
145923 +disable_so_hash_sendpage_fndecl_59633 hash_sendpage fndecl 0-3-4 59633 NULL
145924 +disable_so_address_i2c_algo_dp_aux_data_59643 address i2c_algo_dp_aux_data 0 59643 NULL
145925 +disable_so_baddr_pmcraid_hostrcb_59651 baddr pmcraid_hostrcb 0 59651 NULL
145926 +disable_so_jiffies_drm_i915_error_request_59653 jiffies drm_i915_error_request 0 59653 NULL
145927 +disable_so_niu_enable_interrupts_fndecl_59655 niu_enable_interrupts fndecl 0 59655 NULL nohasharray
145928 +disable_so_addr_nvkm_gpuobj_59655 addr nvkm_gpuobj 0 59655 &disable_so_niu_enable_interrupts_fndecl_59655
145929 +disable_so_irlap_start_backoff_timer_fndecl_59668 irlap_start_backoff_timer fndecl 2 59668 NULL
145930 +disable_so_cs_chp_time_transaction_chp_stats_s_59671 cs_chp_time transaction_chp_stats_s 0 59671 NULL nohasharray
145931 +disable_so_bufferinfo_array_phy_address_mixart_flowinfo_59671 bufferinfo_array_phy_address mixart_flowinfo 0 59671 &disable_so_cs_chp_time_transaction_chp_stats_s_59671
145932 +disable_so_start_time_bfa_ioim_s_59693 start_time bfa_ioim_s 0 59693 NULL nohasharray
145933 +disable_so_nilfs_btree_assign_p_fndecl_59693 nilfs_btree_assign_p fndecl 0-5 59693 &disable_so_start_time_bfa_ioim_s_59693
145934 +disable_so_pid_pppol2tp_addr_59696 pid pppol2tp_addr 0 59696 NULL
145935 +disable_so_paging32_walk_addr_nested_fndecl_59706 paging32_walk_addr_nested fndecl 3-4 59706 NULL
145936 +disable_so_set_timer_tick_hw_59707 set_timer_tick hw 2 59707 NULL
145937 +disable_so_irq_domain_alloc_irqs_parent_fndecl_59718 irq_domain_alloc_irqs_parent fndecl 2-3-0 59718 NULL
145938 +disable_so_pcf8583_rtc_read_time_fndecl_59722 pcf8583_rtc_read_time fndecl 0 59722 NULL
145939 +disable_so_i_rx_jiffies_rds_incoming_59727 i_rx_jiffies rds_incoming 0 59727 NULL
145940 +disable_so_addr_pt1_buffer_59731 addr pt1_buffer 0 59731 NULL
145941 +disable_so_od_cpufreq_governor_dbs_fndecl_59745 od_cpufreq_governor_dbs fndecl 0 59745 NULL
145942 +disable_so_atmel_set_mac_address_fndecl_59747 atmel_set_mac_address fndecl 0 59747 NULL nohasharray
145943 +disable_so_ioaddr_mxser_port_59747 ioaddr mxser_port 0 59747 &disable_so_atmel_set_mac_address_fndecl_59747
145944 +disable_so_kvm_mtrr_check_gfn_range_consistency_fndecl_59759 kvm_mtrr_check_gfn_range_consistency fndecl 3-2 59759 NULL
145945 +disable_so_mul_n_fndecl_59766 mul_n fndecl 4 59766 NULL
145946 +disable_so_mlx4_bitmap_alloc_fndecl_59767 mlx4_bitmap_alloc fndecl 0 59767 NULL
145947 +disable_so_device_num_atto_csmi_get_pci_bus_addr_59770 device_num atto_csmi_get_pci_bus_addr 0 59770 NULL
145948 +disable_so_ksz_init_timer_fndecl_59771 ksz_init_timer fndecl 2 59771 NULL
145949 +disable_so_signr_usbdevfs_disconnectsignal_59774 signr usbdevfs_disconnectsignal 0 59774 NULL
145950 +disable_so_hash_netiface4_expire_fndecl_59777 hash_netiface4_expire fndecl 4 59777 NULL
145951 +disable_so_timeoutValue_RAID_CONTEXT_59780 timeoutValue RAID_CONTEXT 0 59780 NULL
145952 +disable_so_vsync_pulse_width_hi_oaktrail_timing_info_59785 vsync_pulse_width_hi oaktrail_timing_info 0 59785 NULL
145953 +disable_so_macvtap16_to_cpu_fndecl_59790 macvtap16_to_cpu fndecl 0-2 59790 NULL
145954 +disable_so_ns_ack_interrupt_fndecl_59791 ns_ack_interrupt fndecl 0 59791 NULL
145955 +disable_so_btrfs_commit_inode_delayed_inode_fndecl_59792 btrfs_commit_inode_delayed_inode fndecl 0 59792 NULL
145956 +disable_so_lg_addr_ns_dev_59797 lg_addr ns_dev 0 59797 NULL
145957 +disable_so_nr_divisor_sym_chip_59803 nr_divisor sym_chip 0 59803 NULL
145958 +disable_so_cpu_power_to_freq_fndecl_59806 cpu_power_to_freq fndecl 2 59806 NULL nohasharray
145959 +disable_so_hash_sfq_slot_59806 hash sfq_slot 0 59806 &disable_so_cpu_power_to_freq_fndecl_59806
145960 +disable_so_netvsc_set_mac_addr_fndecl_59822 netvsc_set_mac_addr fndecl 0 59822 NULL
145961 +disable_so_kxcjk1013_get_startup_times_fndecl_59827 kxcjk1013_get_startup_times fndecl 0 59827 NULL nohasharray
145962 +disable_so_bitmap_ipmac_do_test_fndecl_59827 bitmap_ipmac_do_test fndecl 3 59827 &disable_so_kxcjk1013_get_startup_times_fndecl_59827
145963 +disable_so_decnet_time_wait_vardecl_59833 decnet_time_wait vardecl 0 59833 NULL
145964 +disable_so_delay_multiplier_be_set_eqd_59834 delay_multiplier be_set_eqd 0 59834 NULL
145965 +disable_so_asr_get_base_address_fndecl_59835 asr_get_base_address fndecl 0 59835 NULL
145966 +disable_so_timeout_nouveau_fence_59837 timeout nouveau_fence 0 59837 NULL
145967 +disable_so_m_pll_freq_tbl_59838 m pll_freq_tbl 0 59838 NULL
145968 +disable_so_tea5764_get_freq_fndecl_59848 tea5764_get_freq fndecl 0 59848 NULL
145969 +disable_so_seq_km_event_59849 seq km_event 0 59849 NULL nohasharray
145970 +disable_so_dst_addr_lo_dmae_command_59849 dst_addr_lo dmae_command 0 59849 &disable_so_seq_km_event_59849
145971 +disable_so_get_ep_by_addr_fndecl_59856 get_ep_by_addr fndecl 2 59856 NULL
145972 +disable_so_txbd_addr_hi_host_cmd_ds_pcie_details_59885 txbd_addr_hi host_cmd_ds_pcie_details 0 59885 NULL
145973 +disable_so_hash_v6_fndecl_59887 hash_v6 fndecl 0 59887 NULL
145974 +disable_so_sst_module_runtime_restore_fndecl_59893 sst_module_runtime_restore fndecl 0 59893 NULL
145975 +disable_so_pvclock_clocksource_read_fndecl_59895 pvclock_clocksource_read fndecl 0 59895 NULL nohasharray
145976 +disable_so_hdspm_set_interrupt_interval_fndecl_59895 hdspm_set_interrupt_interval fndecl 2-0 59895 &disable_so_pvclock_clocksource_read_fndecl_59895
145977 +disable_so_i2c_addr_r820t_config_59896 i2c_addr r820t_config 0 59896 NULL
145978 +disable_so_i2400m_check_mac_addr_fndecl_59899 i2400m_check_mac_addr fndecl 0 59899 NULL
145979 +disable_so_get_uuid_export_operations_59904 get_uuid export_operations 0 59904 NULL
145980 +disable_so_last_tx_jiffies_fmdev_59908 last_tx_jiffies fmdev 0 59908 NULL nohasharray
145981 +disable_so_delay_use_vardecl_usb_c_59908 delay_use vardecl_usb.c 0 59908 &disable_so_last_tx_jiffies_fmdev_59908
145982 +disable_so_show_telclock_version_fndecl_59913 show_telclock_version fndecl 0 59913 NULL
145983 +disable_so_flush_time_il3945_rs_sta_59914 flush_time il3945_rs_sta 0 59914 NULL
145984 +disable_so_sip_sprintf_addr_fndecl_59915 sip_sprintf_addr fndecl 0 59915 NULL
145985 +disable_so_lola_set_clock_index_fndecl_59921 lola_set_clock_index fndecl 0 59921 NULL nohasharray
145986 +disable_so_addr_stv0900_reg_59921 addr stv0900_reg 0 59921 &disable_so_lola_set_clock_index_fndecl_59921
145987 +disable_so_vsnprintf_fndecl_59932 vsnprintf fndecl 0-2 59932 NULL
145988 +disable_so_nfs4_delay_fndecl_59938 nfs4_delay fndecl 0 59938 NULL nohasharray
145989 +disable_so___bch_btree_map_nodes_fndecl_59938 __bch_btree_map_nodes fndecl 0 59938 &disable_so_nfs4_delay_fndecl_59938
145990 +disable_so_freq_before_jump_fm_rx_59940 freq_before_jump fm_rx 0 59940 NULL
145991 +disable_so_vt8623_set_pixclock_fndecl_59944 vt8623_set_pixclock fndecl 2 59944 NULL
145992 +disable_so_seq_ieee80211_fragment_entry_59945 seq ieee80211_fragment_entry 0 59945 NULL
145993 +disable_so_map_nr_blk_mq_bitmap_tags_59947 map_nr blk_mq_bitmap_tags 0 59947 NULL nohasharray
145994 +disable_so_r5_hash_fndecl_59947 r5_hash fndecl 2 59947 &disable_so_map_nr_blk_mq_bitmap_tags_59947
145995 +disable_so_s_first_error_time_ext4_super_block_59952 s_first_error_time ext4_super_block 0 59952 NULL
145996 +disable_so_crypto_ablkcipher_decrypt_fndecl_59964 crypto_ablkcipher_decrypt fndecl 0 59964 NULL
145997 +disable_so_i_gid_write_fndecl_59978 i_gid_write fndecl 2 59978 NULL
145998 +disable_so_dst_nents_qce_cipher_reqctx_59989 dst_nents qce_cipher_reqctx 0 59989 NULL
145999 +disable_so_addr_nvme_passthru_cmd_59990 addr nvme_passthru_cmd 0 59990 NULL
146000 +disable_so_vsprintf_fndecl_59994 vsprintf fndecl 0 59994 NULL
146001 +disable_so_desc_daddr_ath5k_hw_59995 desc_daddr ath5k_hw 0 59995 NULL
146002 +disable_so_n_pll_freq_tbl_60004 n pll_freq_tbl 0 60004 NULL
146003 +disable_so_ufshcd_parse_clock_info_fndecl_60006 ufshcd_parse_clock_info fndecl 0 60006 NULL
146004 +disable_so_max_timer_ms_bcm47xx_wdt_60015 max_timer_ms bcm47xx_wdt 0 60015 NULL
146005 +disable_so_add_monitor_signal_fndecl_60038 add_monitor_signal fndecl 4 60038 NULL
146006 +disable_so_check_matrix_bitmap_fndecl_60054 check_matrix_bitmap fndecl 0-2-3-4 60054 NULL
146007 +disable_so_bitmap_file_clear_bit_fndecl_60061 bitmap_file_clear_bit fndecl 2 60061 NULL nohasharray
146008 +disable_so_nvkm_ramht_hash_fndecl_60061 nvkm_ramht_hash fndecl 0-2-3 60061 &disable_so_bitmap_file_clear_bit_fndecl_60061
146009 +disable_so_radeon_ib_schedule_fndecl_60075 radeon_ib_schedule fndecl 0 60075 NULL
146010 +disable_so_sleep_cookie_addr_hi_host_cmd_ds_pcie_details_60083 sleep_cookie_addr_hi host_cmd_ds_pcie_details 0 60083 NULL
146011 +disable_so_crypto_cbc_decrypt_fndecl_60087 crypto_cbc_decrypt fndecl 0-4 60087 NULL
146012 +disable_so_calc_mode_timings_fndecl_60088 calc_mode_timings fndecl 1-2-3 60088 NULL
146013 +disable_so_jiffies_till_first_fqs_vardecl_tree_c_60090 jiffies_till_first_fqs vardecl_tree.c 0 60090 NULL
146014 +disable_so_reorder_timeout_l2tp_session_60091 reorder_timeout l2tp_session 0 60091 NULL
146015 +disable_so_ieee80211_get_noa_absent_time_fndecl_60093 ieee80211_get_noa_absent_time fndecl 0-2 60093 NULL
146016 +disable_so_vsync_offset_lo_oaktrail_timing_info_60096 vsync_offset_lo oaktrail_timing_info 0 60096 NULL
146017 +disable_so_daddr_flowidn_60098 daddr flowidn 0 60098 NULL
146018 +disable_so_mwifiex_set_mac_address_fndecl_60110 mwifiex_set_mac_address fndecl 0 60110 NULL
146019 +disable_so_xgbe_get_tstamp_time_fndecl_60114 xgbe_get_tstamp_time fndecl 0 60114 NULL
146020 +disable_so_end_seq_bictcp_60116 end_seq bictcp 0 60116 NULL
146021 +disable_so_rv770_calculate_fractional_mpll_feedback_divider_fndecl_60119 rv770_calculate_fractional_mpll_feedback_divider fndecl 1-2 60119 NULL nohasharray
146022 +disable_so_set_msr_x86_emulate_ops_60119 set_msr x86_emulate_ops 2-3 60119 &disable_so_rv770_calculate_fractional_mpll_feedback_divider_fndecl_60119
146023 +disable_so_radeon_vm_bo_set_addr_fndecl_60122 radeon_vm_bo_set_addr fndecl 3-0 60122 NULL
146024 +disable_so_reload_jiffies_iwl_priv_60123 reload_jiffies iwl_priv 0 60123 NULL
146025 +disable_so_shdntimer_max17042_config_data_60124 shdntimer max17042_config_data 0 60124 NULL nohasharray
146026 +disable_so_timestamp_lec_arp_table_60124 timestamp lec_arp_table 0 60124 &disable_so_shdntimer_max17042_config_data_60124
146027 +disable_so_reg_duty_cycle_pm860x_backlight_data_60125 reg_duty_cycle pm860x_backlight_data 0 60125 NULL
146028 +disable_so_buff_phy_addr_amd8111e_tx_dr_60126 buff_phy_addr amd8111e_tx_dr 0 60126 NULL
146029 +disable_so_nilfs_btree_seek_key_fndecl_60131 nilfs_btree_seek_key fndecl 0-2 60131 NULL
146030 +disable_so_local_addr_mm_dma_desc_60141 local_addr mm_dma_desc 0 60141 NULL
146031 +disable_so_cmd_attr_tgid_fndecl_60158 cmd_attr_tgid fndecl 0 60158 NULL
146032 +disable_so_read_addr_qla8044_minidump_entry_queue_60166 read_addr qla8044_minidump_entry_queue 0 60166 NULL
146033 +disable_so_snd_soc_runtime_deactivate_fndecl_60170 snd_soc_runtime_deactivate fndecl 2 60170 NULL
146034 +disable_so_addr_lo_tg3_tx_buffer_desc_60173 addr_lo tg3_tx_buffer_desc 0 60173 NULL
146035 +disable_so_addr_c4iw_mm_entry_60182 addr c4iw_mm_entry 0 60182 NULL
146036 +disable_so_gid_index_ib_user_mad_hdr_60188 gid_index ib_user_mad_hdr 0 60188 NULL
146037 +disable_so_div_vnic_intr_coal_timer_info_60192 div vnic_intr_coal_timer_info 0 60192 NULL
146038 +disable_so_udf_bitmap_prealloc_blocks_fndecl_60195 udf_bitmap_prealloc_blocks fndecl 0-4-5 60195 NULL
146039 +disable_so_i_atime_nsec_ocfs2_dinode_60196 i_atime_nsec ocfs2_dinode 0 60196 NULL
146040 +disable_so_addr_buffer3_cmd_desc_type0_60201 addr_buffer3 cmd_desc_type0 0 60201 NULL
146041 +disable_so_mac_time_rtl8187b_rx_hdr_60213 mac_time rtl8187b_rx_hdr 0 60213 NULL
146042 +disable_so_regmap_read_fndecl_60217 regmap_read fndecl 0-2 60217 NULL
146043 +disable_so_oprofile_time_slice_vardecl_60220 oprofile_time_slice vardecl 0 60220 NULL
146044 +disable_so_monotonic_time_coarse_nsec_vsyscall_gtod_data_60224 monotonic_time_coarse_nsec vsyscall_gtod_data 0 60224 NULL
146045 +disable_so_toshiba_usb_sleep_music_get_fndecl_60227 toshiba_usb_sleep_music_get fndecl 0 60227 NULL
146046 +disable_so_msr_read_fndecl_60228 msr_read fndecl 0 60228 NULL
146047 +disable_so_via_set_primary_address_fndecl_60230 via_set_primary_address fndecl 1 60230 NULL
146048 +disable_so_hpfs_stop_cycles_fndecl_60236 hpfs_stop_cycles fndecl 2 60236 NULL
146049 +disable_so_cpumask_any_but_fndecl_60246 cpumask_any_but fndecl 0-2 60246 NULL
146050 +disable_so_hash_cnt_ccp_sha_req_ctx_60248 hash_cnt ccp_sha_req_ctx 0 60248 NULL
146051 +disable_so_atime_nsec_p9_iattr_dotl_60254 atime_nsec p9_iattr_dotl 0 60254 NULL
146052 +disable_so___ilog2_u32_fndecl_60257 __ilog2_u32 fndecl 0-1 60257 NULL
146053 +disable_so_it_clock_k_itimer_60276 it_clock k_itimer 0 60276 NULL
146054 +disable_so_stats_addr_vfpf_init_tlv_60282 stats_addr vfpf_init_tlv 0 60282 NULL
146055 +disable_so_zd1201_set_freq_fndecl_60293 zd1201_set_freq fndecl 0 60293 NULL
146056 +disable_so_freq_sc18is602_60297 freq sc18is602 0 60297 NULL
146057 +disable_so_imr_multiaddr_ip_mreq_source_60300 imr_multiaddr ip_mreq_source 0 60300 NULL
146058 +disable_so_skbaddr_ath5k_buf_60306 skbaddr ath5k_buf 0 60306 NULL
146059 +disable_so_bus_addr_sg_el_60307 bus_addr sg_el 0 60307 NULL
146060 +disable_so_iwl_add_beacon_time_fndecl_60324 iwl_add_beacon_time fndecl 0-4-3-2 60324 NULL
146061 +disable_so_regcache_lzo_sync_fndecl_60330 regcache_lzo_sync fndecl 0 60330 NULL
146062 +disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331 __mlx4_find_zone_by_uid_unique fndecl 2 60331 NULL nohasharray
146063 +disable_so_ucma_query_addr_fndecl_60331 ucma_query_addr fndecl 3 60331 &disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331
146064 +disable_so_nilfs_btree_commit_insert_fndecl_60335 nilfs_btree_commit_insert fndecl 4 60335 NULL
146065 +disable_so_rbtree_open_fndecl_60337 rbtree_open fndecl 0 60337 NULL
146066 +disable_so_addr_off_bfa_phy_s_60341 addr_off bfa_phy_s 0 60341 NULL
146067 +disable_so_rj54n1_set_clock_fndecl_60342 rj54n1_set_clock fndecl 0 60342 NULL nohasharray
146068 +disable_so___udelay_fndecl_60342 __udelay fndecl 1 60342 &disable_so_rj54n1_set_clock_fndecl_60342
146069 +disable_so_sysctl_llc2_p_timeout_vardecl_60348 sysctl_llc2_p_timeout vardecl 0 60348 NULL
146070 +disable_so_dwc3_ep0_set_address_fndecl_60355 dwc3_ep0_set_address fndecl 0 60355 NULL
146071 +disable_so_nla_put_msecs_fndecl_60358 nla_put_msecs fndecl 0 60358 NULL
146072 +disable_so_div_factor_fndecl_60362 div_factor fndecl 0-1 60362 NULL
146073 +disable_so_sense_busaddr_scb_60364 sense_busaddr scb 0 60364 NULL
146074 +disable_so_ufshcd_pltfrm_runtime_resume_fndecl_60367 ufshcd_pltfrm_runtime_resume fndecl 0 60367 NULL
146075 +disable_so_pixel_clock_vbe_crtc_ib_60373 pixel_clock vbe_crtc_ib 0 60373 NULL
146076 +disable_so_erst_timedout_fndecl_60378 erst_timedout fndecl 2 60378 NULL
146077 +disable_so_crypto_ecb_encrypt_fndecl_60388 crypto_ecb_encrypt fndecl 0-4 60388 NULL
146078 +disable_so_rtsx_resv_buf_addr_rtsx_pcr_60399 rtsx_resv_buf_addr rtsx_pcr 0 60399 NULL
146079 +disable_so_i2c_address_mc44s803_config_60409 i2c_address mc44s803_config 0 60409 NULL
146080 +disable_so_ath_hw_get_listen_time_fndecl_60410 ath_hw_get_listen_time fndecl 0 60410 NULL
146081 +disable_so_rpc_sockaddr2uaddr_fndecl_60418 rpc_sockaddr2uaddr fndecl 2 60418 NULL
146082 +disable_so_sys_setresgid16_fndecl_60419 sys_setresgid16 fndecl 0-1-2-3 60419 NULL
146083 +disable_so_mc_addr_inet_sock_60425 mc_addr inet_sock 0 60425 NULL
146084 +disable_so_txqueue_timer_velocity_opt_60430 txqueue_timer velocity_opt 0 60430 NULL
146085 +disable_so_set_mtrr_from_inactive_cpu_fndecl_60437 set_mtrr_from_inactive_cpu fndecl 2-3 60437 NULL
146086 +disable_so_i915_interrupt_info_fndecl_60441 i915_interrupt_info fndecl 0 60441 NULL
146087 +disable_so_bmiss_timeout_ath_beacon_config_60451 bmiss_timeout ath_beacon_config 0 60451 NULL
146088 +disable_so_callback_addr_req_60459 callback addr_req 1 60459 NULL
146089 +disable_so_vmx_compute_tsc_offset_fndecl_60461 vmx_compute_tsc_offset fndecl 0-2 60461 NULL
146090 +disable_so_ncpus_uv_rtc_timer_head_60462 ncpus uv_rtc_timer_head 0 60462 NULL
146091 +disable_so_passed_seqno_drm_vmw_fence_signaled_arg_60464 passed_seqno drm_vmw_fence_signaled_arg 0 60464 NULL
146092 +disable_so_send_signal_fndecl_60468 send_signal fndecl 0-1 60468 NULL
146093 +disable_so_isl1208_rtc_read_time_fndecl_60479 isl1208_rtc_read_time fndecl 0 60479 NULL
146094 +disable_so_cbs_dma_addr_nic_60500 cbs_dma_addr nic 0 60500 NULL
146095 +disable_so_mpihelp_divrem_fndecl_60501 mpihelp_divrem fndecl 6-0-4 60501 NULL
146096 +disable_so_branch_address_descriptor_60510 branch_address descriptor 0 60510 NULL
146097 +disable_so_hash_lock_index_stripe_head_60512 hash_lock_index stripe_head 0 60512 NULL
146098 +disable_so_brl_timeout_vardecl_keyboard_c_60524 brl_timeout vardecl_keyboard.c 0 60524 NULL
146099 +disable_so_chip_addr_dsp_image_seg_60530 chip_addr dsp_image_seg 0 60530 NULL
146100 +disable_so_test_hash_cycles_fndecl_60535 test_hash_cycles fndecl 4 60535 NULL
146101 +disable_so_dma_addr_srr_60537 dma_addr srr 0 60537 NULL
146102 +disable_so_spinfo_assoc_id_sctp_paddrinfo_60539 spinfo_assoc_id sctp_paddrinfo 0 60539 NULL
146103 +disable_so_nvkm_timer_wait_eq_fndecl_60542 nvkm_timer_wait_eq fndecl 3-4-5 60542 NULL
146104 +disable_so_eq_get_mtt_addr_fndecl_60544 eq_get_mtt_addr fndecl 0 60544 NULL
146105 +disable_so_cq_page_table_addr_lo_iscsi_kwqe_conn_offload1_60567 cq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 60567 NULL
146106 +disable_so_tk_timeout_rpc_task_60572 tk_timeout rpc_task 0 60572 NULL
146107 +disable_so_cn_printf_fndecl_60575 cn_printf fndecl 0 60575 NULL nohasharray
146108 +disable_so_sgl_addr_hi_fw_flash_Update_req_60575 sgl_addr_hi fw_flash_Update_req 0 60575 &disable_so_cn_printf_fndecl_60575 nohasharray
146109 +disable_so_sysfs_idx_addr_vardecl_nes_c_60575 sysfs_idx_addr vardecl_nes.c 0 60575 &disable_so_sgl_addr_hi_fw_flash_Update_req_60575
146110 +disable_so___xfs_btree_split_fndecl_60576 __xfs_btree_split fndecl 0 60576 NULL
146111 +disable_so_lun_atto_csmi_get_dev_addr_60579 lun atto_csmi_get_dev_addr 0 60579 NULL
146112 +disable_so_xfs_btree_block_change_owner_fndecl_60599 xfs_btree_block_change_owner fndecl 0-3 60599 NULL
146113 +disable_so_k_wm8978_pll_div_60623 k wm8978_pll_div 0 60623 NULL
146114 +disable_so_saved_clock_vardecl_cr_pll_c_60624 saved_clock vardecl_cr_pll.c 0 60624 NULL
146115 +disable_so_mapaddr_tx_ring_info_60630 mapaddr tx_ring_info 0 60630 NULL nohasharray
146116 +disable_so_derot_freq_stb0899_internal_60630 derot_freq stb0899_internal 0 60630 &disable_so_mapaddr_tx_ring_info_60630
146117 +disable_so_edx_user_regs_struct32_60635 edx user_regs_struct32 0 60635 NULL
146118 +disable_so_cgtime_signal_struct_60641 cgtime signal_struct 0 60641 NULL
146119 +disable_so_ide_timing_compute_fndecl_60642 ide_timing_compute fndecl 2 60642 NULL
146120 +disable_so_btree_read_extent_buffer_pages_fndecl_60645 btree_read_extent_buffer_pages fndecl 0-4 60645 NULL
146121 +disable_so_sys_sched_getscheduler_fndecl_60650 sys_sched_getscheduler fndecl 1-0 60650 NULL
146122 +disable_so_hpi_compander_set_decay_time_constant_fndecl_60651 hpi_compander_set_decay_time_constant fndecl 1-0 60651 NULL
146123 +disable_so_uwb_rc_addr_get_fndecl_60653 uwb_rc_addr_get fndecl 0 60653 NULL
146124 +disable_so_max_chan_time_wsm_scan_ch_60669 max_chan_time wsm_scan_ch 0 60669 NULL
146125 +disable_so_ci_otg_fsm_del_timer_fndecl_60676 ci_otg_fsm_del_timer fndecl 2 60676 NULL
146126 +disable_so_clockdelay_nt_vardecl_hfcmulti_c_60678 clockdelay_nt vardecl_hfcmulti.c 0 60678 NULL
146127 +disable_so_hsync_off_lo_lvds_dvo_timing_60681 hsync_off_lo lvds_dvo_timing 0 60681 NULL
146128 +disable_so_leaf_head_hfs_btree_60686 leaf_head hfs_btree 0 60686 NULL
146129 +disable_so_signal_user32_60695 signal user32 0 60695 NULL
146130 +disable_so_timeout_netns_frags_60708 timeout netns_frags 0 60708 NULL
146131 +disable_so_time_to_send_netem_skb_cb_60711 time_to_send netem_skb_cb 0 60711 NULL nohasharray
146132 +disable_so_ref_div_atom_clock_dividers_60711 ref_div atom_clock_dividers 0 60711 &disable_so_time_to_send_netem_skb_cb_60711
146133 +disable_so_dev_sof_uvc_clock_sample_60716 dev_sof uvc_clock_sample 0 60716 NULL
146134 +disable_so_addr_reg_musb_qh_60718 addr_reg musb_qh 0 60718 NULL nohasharray
146135 +enable_so_acpi_ex_do_math_op_fndecl_60718 acpi_ex_do_math_op fndecl 0-3-2 60718 &disable_so_addr_reg_musb_qh_60718
146136 +disable_so_reg_clock_sx150x_789_pri_60721 reg_clock sx150x_789_pri 0 60721 NULL
146137 +disable_so___parse_nl_addr_fndecl_60734 __parse_nl_addr fndecl 0 60734 NULL
146138 +disable_so_frequency_zl10036_state_60737 frequency zl10036_state 0 60737 NULL
146139 +disable_so_acpi_sleep_state_supported_fndecl_60743 acpi_sleep_state_supported fndecl 1 60743 NULL
146140 +disable_so_put_dec_full8_fndecl_60744 put_dec_full8 fndecl 2 60744 NULL
146141 +disable_so_atkbd_interrupt_fndecl_60746 atkbd_interrupt fndecl 2 60746 NULL
146142 +disable_so_signal_station_info_60755 signal station_info 0 60755 NULL
146143 +disable_so_r15_kvm_regs_60757 r15 kvm_regs 0 60757 NULL
146144 +disable_so_tx_dma_addr_sh_msiof_spi_priv_60773 tx_dma_addr sh_msiof_spi_priv 0 60773 NULL
146145 +disable_so_handler_acpi_object_addr_handler_60775 handler acpi_object_addr_handler 0-2-3 60775 NULL nohasharray
146146 +disable_so_sctp_bind_addr_init_fndecl_60775 sctp_bind_addr_init fndecl 2 60775 &disable_so_handler_acpi_object_addr_handler_60775
146147 +disable_so_hfsplus_calc_btree_clump_size_fndecl_60777 hfsplus_calc_btree_clump_size fndecl 0-1-2-3 60777 NULL
146148 +disable_so_xc2028_set_analog_freq_fndecl_60787 xc2028_set_analog_freq fndecl 0 60787 NULL
146149 +disable_so_reg_w_val_fndecl_60792 reg_w_val fndecl 2-3 60792 NULL
146150 +disable_so_mlx4_mtt_addr_fndecl_60804 mlx4_mtt_addr fndecl 0 60804 NULL
146151 +disable_so_kstrtos16_fndecl_60808 kstrtos16 fndecl 0 60808 NULL
146152 +disable_so_demod_address_bcm3510_config_60810 demod_address bcm3510_config 0 60810 NULL
146153 +disable_so_xt_addr_cmp_fndecl_60817 xt_addr_cmp fndecl 4 60817 NULL
146154 +disable_so_kstrtou16_fndecl_60828 kstrtou16 fndecl 0 60828 NULL
146155 +disable_so_crypto_cbc_decrypt_segment_fndecl_60829 crypto_cbc_decrypt_segment fndecl 0 60829 NULL
146156 +disable_so_cs_last_clocksource_60836 cs_last clocksource 0 60836 NULL
146157 +disable_so_decrypt_blkcipher_alg_60844 decrypt blkcipher_alg 4 60844 NULL
146158 +disable_so_demod_address_drxd_config_60850 demod_address drxd_config 0 60850 NULL
146159 +disable_so_rs_bound_addr_rds_sock_60851 rs_bound_addr rds_sock 0 60851 NULL
146160 +disable_so_pcxhr_sub_set_clock_fndecl_60853 pcxhr_sub_set_clock fndecl 2-0 60853 NULL nohasharray
146161 +disable_so_inet6_dump_ifmcaddr_fndecl_60853 inet6_dump_ifmcaddr fndecl 0 60853 &disable_so_pcxhr_sub_set_clock_fndecl_60853
146162 +disable_so_mpll_ref_div_rv6xx_power_info_60865 mpll_ref_div rv6xx_power_info 0 60865 NULL
146163 +disable_so_clk_mul_sdhci_host_60866 clk_mul sdhci_host 0 60866 NULL
146164 +disable_so_cryptd_hash_finup_enqueue_fndecl_60873 cryptd_hash_finup_enqueue fndecl 0 60873 NULL
146165 +disable_so_pc87360_autodiv_fndecl_60877 pc87360_autodiv fndecl 2 60877 NULL nohasharray
146166 +disable_so_si_get_gpu_clock_counter_fndecl_60877 si_get_gpu_clock_counter fndecl 0 60877 &disable_so_pc87360_autodiv_fndecl_60877
146167 +disable_so_dma_addr___vxge_hw_blockpool_entry_60895 dma_addr __vxge_hw_blockpool_entry 0 60895 NULL
146168 +disable_so_write32_ssb_bus_ops_60906 write32 ssb_bus_ops 3 60906 NULL
146169 +disable_so_bfa_fcs_lport_ns_process_gidft_pids_fndecl_60914 bfa_fcs_lport_ns_process_gidft_pids fndecl 3 60914 NULL
146170 +disable_so_hash_walk_next_fndecl_60955 hash_walk_next fndecl 0 60955 NULL
146171 +disable_so_tm_min_rtc_time_60965 tm_min rtc_time 0 60965 NULL
146172 +disable_so_m48t86_rtc_read_time_fndecl_60966 m48t86_rtc_read_time fndecl 0 60966 NULL
146173 +disable_so_alloc_gen8_temp_bitmaps_fndecl_60972 alloc_gen8_temp_bitmaps fndecl 0 60972 NULL
146174 +disable_so_max_dwell_time_delta_conf_sched_scan_settings_60976 max_dwell_time_delta conf_sched_scan_settings 0 60976 NULL
146175 +disable_so_src_addr_filter_ipv4_5tuple_60977 src_addr filter_ipv4_5tuple 0 60977 NULL nohasharray
146176 +disable_so_intel_freq_opcode_fndecl_60977 intel_freq_opcode fndecl 0-2 60977 &disable_so_src_addr_filter_ipv4_5tuple_60977
146177 +disable_so_btree_pages_cache_set_60979 btree_pages cache_set 0 60979 NULL
146178 +disable_so_pop_time_snd_soc_card_60984 pop_time snd_soc_card 0 60984 NULL
146179 +disable_so_v4l2_i2c_subdev_addr_fndecl_60994 v4l2_i2c_subdev_addr fndecl 0 60994 NULL
146180 +disable_so_find_and_set_predefined_video_timings_fndecl_61004 find_and_set_predefined_video_timings fndecl 2 61004 NULL
146181 +disable_so_bus_ipr_res_addr_61007 bus ipr_res_addr 0 61007 NULL
146182 +disable_so_t2timer_lapb_parms_struct_61011 t2timer lapb_parms_struct 0 61011 NULL nohasharray
146183 +disable_so_size_log2_t3_cq_61011 size_log2 t3_cq 0 61011 &disable_so_t2timer_lapb_parms_struct_61011
146184 +disable_so_virtual_apic_page_addr_vmcs12_61020 virtual_apic_page_addr vmcs12 0 61020 NULL
146185 +disable_so_show_sas_end_dev_I_T_nexus_loss_timeout_fndecl_61033 show_sas_end_dev_I_T_nexus_loss_timeout fndecl 0 61033 NULL
146186 +disable_so_first_time_batadv_tt_roam_node_61055 first_time batadv_tt_roam_node 0 61055 NULL
146187 +disable_so_blank_time_evergreen_wm_params_61058 blank_time evergreen_wm_params 0 61058 NULL
146188 +disable_so_crypto_hash_walk_done_fndecl_61061 crypto_hash_walk_done fndecl 0-2 61061 NULL
146189 +disable_so_qi_rtbtimelimit_xfs_quotainfo_61067 qi_rtbtimelimit xfs_quotainfo 0 61067 NULL
146190 +disable_so_dma_addr_freelQ_61069 dma_addr freelQ 0 61069 NULL
146191 +disable_so_gateway_value_addr_wil_fw_record_gateway_data_61071 gateway_value_addr wil_fw_record_gateway_data 0 61071 NULL
146192 +disable_so_ndisc_opt_addr_space_fndecl_61076 ndisc_opt_addr_space fndecl 0 61076 NULL nohasharray
146193 +disable_so_pcan_usb_fd_set_bittiming_fast_fndecl_61076 pcan_usb_fd_set_bittiming_fast fndecl 0 61076 &disable_so_ndisc_opt_addr_space_fndecl_61076
146194 +disable_so_wl1251_translate_reg_addr_fndecl_61077 wl1251_translate_reg_addr fndecl 0-2 61077 NULL
146195 +disable_so_irq_set_handler_data_fndecl_61096 irq_set_handler_data fndecl 1 61096 NULL nohasharray
146196 +disable_so_be64_add_cpu_fndecl_61096 be64_add_cpu fndecl 2 61096 &disable_so_irq_set_handler_data_fndecl_61096
146197 +disable_so_find_first_extent_bit_state_fndecl_61098 find_first_extent_bit_state fndecl 2 61098 NULL
146198 +disable_so_confirm_addr_indev_fndecl_61106 confirm_addr_indev fndecl 0 61106 NULL
146199 +disable_so_ci_otg_init_timers_fndecl_61122 ci_otg_init_timers fndecl 0 61122 NULL
146200 +disable_so_rangehigh_v4l2_frequency_band_61125 rangehigh v4l2_frequency_band 0 61125 NULL
146201 +disable_so_rdb_PartitionList_RigidDiskBlock_61126 rdb_PartitionList RigidDiskBlock 0 61126 NULL
146202 +disable_so_qat_alg_ablkcipher_setkey_fndecl_61127 qat_alg_ablkcipher_setkey fndecl 3 61127 NULL
146203 +disable_so_ath6kl_cfg80211_deepsleep_suspend_fndecl_61128 ath6kl_cfg80211_deepsleep_suspend fndecl 0 61128 NULL
146204 +disable_so_phase_seg2_can_bittiming_61132 phase_seg2 can_bittiming 0 61132 NULL
146205 +disable_so_mii_address_fndecl_61157 mii_address fndecl 1-2 61157 NULL
146206 +disable_so_dent_key_init_hash_fndecl_61159 dent_key_init_hash fndecl 3-4 61159 NULL
146207 +disable_so__drbd_send_uuids_fndecl_61164 _drbd_send_uuids fndecl 0 61164 NULL
146208 +disable_so_addr_gf100_gr_mmio_61167 addr gf100_gr_mmio 0 61167 NULL
146209 +disable_so_xfrm_dst_hash_fndecl_61174 xfrm_dst_hash fndecl 0-4-5 61174 NULL
146210 +disable_so_i2c_smbus_read_i2c_block_data_fndecl_61176 i2c_smbus_read_i2c_block_data fndecl 0-2-3 61176 NULL
146211 +disable_so_mthca_HW2SW_SRQ_fndecl_61199 mthca_HW2SW_SRQ fndecl 0-3 61199 NULL
146212 +disable_so_bit_fields_len_ocrdma_srq_61200 bit_fields_len ocrdma_srq 0 61200 NULL
146213 +disable_so_cpuidle_add_device_sysfs_fndecl_61204 cpuidle_add_device_sysfs fndecl 0 61204 NULL
146214 +disable_so_avail_snd_rawmidi_runtime_61205 avail snd_rawmidi_runtime 0 61205 NULL
146215 +disable_so_fib_info_hashfn_fndecl_61213 fib_info_hashfn fndecl 0 61213 NULL
146216 +disable_so_zd_usb_iowrite16v_async_end_fndecl_61215 zd_usb_iowrite16v_async_end fndecl 0 61215 NULL nohasharray
146217 +disable_so_shash_ahash_mcryptd_update_fndecl_61215 shash_ahash_mcryptd_update fndecl 0 61215 &disable_so_zd_usb_iowrite16v_async_end_fndecl_61215
146218 +disable_so_buf_addr_mlx4_ib_create_srq_61216 buf_addr mlx4_ib_create_srq 0 61216 NULL
146219 +disable_so_post_divider_panel_info_61220 post_divider panel_info 0 61220 NULL
146220 +disable_so_wrmsr_safe_regs_fndecl_61235 wrmsr_safe_regs fndecl 0 61235 NULL
146221 +disable_so_get_stats_jiffies_smsdvb_client_t_61240 get_stats_jiffies smsdvb_client_t 0 61240 NULL
146222 +disable_so_ebitmap_next_positive_fndecl_61248 ebitmap_next_positive fndecl 0-3 61248 NULL
146223 +disable_so_ieee80211_aes_gcm_decrypt_fndecl_61254 ieee80211_aes_gcm_decrypt fndecl 0-5 61254 NULL
146224 +disable_so_sprintf_string_fndecl_61260 sprintf_string fndecl 0 61260 NULL nohasharray
146225 +disable_so_ci_do_program_memory_timing_parameters_fndecl_61260 ci_do_program_memory_timing_parameters fndecl 0 61260 &disable_so_sprintf_string_fndecl_61260
146226 +disable_so_be32_to_cpu_array_fndecl_61277 be32_to_cpu_array fndecl 3 61277 NULL
146227 +disable_so_ds_tss_segment_16_61290 ds tss_segment_16 0 61290 NULL
146228 +disable_so_start_delay_ns_cc10001_adc_device_61303 start_delay_ns cc10001_adc_device 0 61303 NULL
146229 +disable_so_data_addr_nvbios_pmuR_61307 data_addr nvbios_pmuR 0 61307 NULL
146230 +disable_so_time_stamp_il_traffic_load_61308 time_stamp il_traffic_load 0 61308 NULL nohasharray
146231 +disable_so_crypto_ccm_encrypt_done_fndecl_61308 crypto_ccm_encrypt_done fndecl 2 61308 &disable_so_time_stamp_il_traffic_load_61308
146232 +disable_so_max_pixclock_tdfx_par_61310 max_pixclock tdfx_par 0 61310 NULL
146233 +disable_so_nilfs_btree_node_get_key_fndecl_61317 nilfs_btree_node_get_key fndecl 0-2 61317 NULL
146234 +disable_so_sk_forced_wmem_schedule_fndecl_61322 sk_forced_wmem_schedule fndecl 2 61322 NULL
146235 +disable_so_rxhash_tun_flow_entry_61325 rxhash tun_flow_entry 0 61325 NULL
146236 +disable_so___spin_time_accum_fndecl_61328 __spin_time_accum fndecl 1 61328 NULL
146237 +disable_so_iscsi_nacl_attrib_store_nopin_timeout_fndecl_61329 iscsi_nacl_attrib_store_nopin_timeout fndecl 0-3 61329 NULL
146238 +disable_so_dqb_itime_v1_disk_dqblk_61340 dqb_itime v1_disk_dqblk 0 61340 NULL nohasharray
146239 +disable_so_rds_iw_laddr_check_fndecl_61340 rds_iw_laddr_check fndecl 0-1 61340 &disable_so_dqb_itime_v1_disk_dqblk_61340
146240 +disable_so_pcibios_retrieve_fw_addr_fndecl_61341 pcibios_retrieve_fw_addr fndecl 0-2 61341 NULL
146241 +disable_so_iwl_scan_cancel_timeout_fndecl_61342 iwl_scan_cancel_timeout fndecl 2 61342 NULL
146242 +disable_so_m41t80_sysfs_set_sqwfreq_fndecl_61345 m41t80_sysfs_set_sqwfreq fndecl 0-4 61345 NULL
146243 +disable_so_atl1_hash_mc_addr_fndecl_61348 atl1_hash_mc_addr fndecl 0 61348 NULL
146244 +disable_so_daddr_irda_device_info_61349 daddr irda_device_info 0 61349 NULL
146245 +disable_so_read_addr_qla82xx_md_entry_rdmem_61354 read_addr qla82xx_md_entry_rdmem 0 61354 NULL
146246 +disable_so_wm8990_set_dai_clkdiv_fndecl_61357 wm8990_set_dai_clkdiv fndecl 3 61357 NULL
146247 +disable_so_btrfs_delete_delayed_dir_index_fndecl_61358 btrfs_delete_delayed_dir_index fndecl 0-4 61358 NULL
146248 +disable_so_disable_irq_fndecl_61372 disable_irq fndecl 1 61372 NULL
146249 +disable_so_parport_ieee1284_epp_read_addr_fndecl_61382 parport_ieee1284_epp_read_addr fndecl 0 61382 NULL nohasharray
146250 +disable_so_num_to_str_fndecl_61382 num_to_str fndecl 0-3-2 61382 &disable_so_parport_ieee1284_epp_read_addr_fndecl_61382
146251 +disable_so_period_timeriomem_rng_data_61395 period timeriomem_rng_data 0 61395 NULL
146252 +disable_so_crypto_gcm_setkey_done_fndecl_61396 crypto_gcm_setkey_done fndecl 2 61396 NULL
146253 +disable_so_ocfs2_journal_addressable_fndecl_61399 ocfs2_journal_addressable fndecl 0 61399 NULL
146254 +disable_so_smsdvb_read_signal_strength_fndecl_61408 smsdvb_read_signal_strength fndecl 0 61408 NULL
146255 +disable_so_flash_busaddr_ips_ha_61415 flash_busaddr ips_ha 0 61415 NULL
146256 +disable_so_enable_time_us_tps_info_61417 enable_time_us tps_info 0 61417 NULL
146257 +disable_so_mtrr_chunk_size_vardecl_cleanup_c_61418 mtrr_chunk_size vardecl_cleanup.c 0 61418 NULL
146258 +disable_so_show_dock_uid_fndecl_61419 show_dock_uid fndecl 0 61419 NULL
146259 +disable_so_get_pageblock_bitmap_fndecl_61435 get_pageblock_bitmap fndecl 2 61435 NULL
146260 +disable_so_s5p_jpeg_runtime_resume_fndecl_61449 s5p_jpeg_runtime_resume fndecl 0 61449 NULL nohasharray
146261 +disable_so_last_ramp_down_time_lpfc_hba_61449 last_ramp_down_time lpfc_hba 0 61449 &disable_so_s5p_jpeg_runtime_resume_fndecl_61449
146262 +disable_so_rsp_dmaaddr_fw_fcoe_els_ct_wr_61457 rsp_dmaaddr fw_fcoe_els_ct_wr 0 61457 NULL
146263 +disable_so_pcsp_timer_update_fndecl_61473 pcsp_timer_update fndecl 0 61473 NULL
146264 +disable_so_i8042_start_time_vardecl_i8042_h_61479 i8042_start_time vardecl_i8042.h 0 61479 NULL nohasharray
146265 +disable_so_insert_into_bitmap_fndecl_61479 insert_into_bitmap fndecl 0 61479 &disable_so_i8042_start_time_vardecl_i8042_h_61479
146266 +disable_so_xclkmaxrasdelay_pll_ct_61489 xclkmaxrasdelay pll_ct 0 61489 NULL
146267 +disable_so_ioa_cb_bus_addr_pmcraid_cmd_61490 ioa_cb_bus_addr pmcraid_cmd 0 61490 NULL
146268 +disable_so_sis_ata16_program_timings_fndecl_61491 sis_ata16_program_timings fndecl 2 61491 NULL
146269 +disable_so_read_addr_stride___queue_61493 read_addr_stride __queue 0 61493 NULL
146270 +disable_so_w1_timeout_vardecl_w1_c_61497 w1_timeout vardecl_w1.c 0 61497 NULL nohasharray
146271 +disable_so_beacon_init_val_iwl_rxon_time_cmd_61497 beacon_init_val iwl_rxon_time_cmd 0 61497 &disable_so_w1_timeout_vardecl_w1_c_61497
146272 +disable_so_split_timeout_lo_fw_card_61499 split_timeout_lo fw_card 0 61499 NULL
146273 +disable_so_nla_find_fndecl_61508 nla_find fndecl 2 61508 NULL
146274 +disable_so_timer_period_frag_pcxhr_stream_61512 timer_period_frag pcxhr_stream 0 61512 NULL
146275 +disable_so_addr_hi_tg3_rx_buffer_desc_61522 addr_hi tg3_rx_buffer_desc 0 61522 NULL
146276 +disable_so_i_uid_ext3_inode_61529 i_uid ext3_inode 0 61529 NULL nohasharray
146277 +disable_so_r30_val_fc2580_freq_regs_61529 r30_val fc2580_freq_regs 0 61529 &disable_so_i_uid_ext3_inode_61529
146278 +disable_so_i_delayed_blks_xfs_inode_61540 i_delayed_blks xfs_inode 0 61540 NULL nohasharray
146279 +disable_so_aes_set_key_fndecl_61540 aes_set_key fndecl 0-3 61540 &disable_so_i_delayed_blks_xfs_inode_61540
146280 +disable_so_loc_addr_nes_cm_listener_61541 loc_addr nes_cm_listener 0 61541 NULL
146281 +disable_so_addr_w6692_hw_61546 addr w6692_hw 0 61546 NULL
146282 +disable_so_mvs_write_port_vsr_addr_fndecl_61549 mvs_write_port_vsr_addr fndecl 3 61549 NULL
146283 +disable_so_s_addr_per_block_bits_ext3_sb_info_61550 s_addr_per_block_bits ext3_sb_info 0 61550 NULL
146284 +disable_so_o2net_set_nodelay_fndecl_61551 o2net_set_nodelay fndecl 0 61551 NULL
146285 +disable_so_mlx5_ib_query_gid_fndecl_61553 mlx5_ib_query_gid fndecl 2-3 61553 NULL
146286 +disable_so_pdl_paddr_hp100_ring_61561 pdl_paddr hp100_ring 0 61561 NULL
146287 +disable_so_pci_bus_read_dev_vendor_id_fndecl_61562 pci_bus_read_dev_vendor_id fndecl 2 61562 NULL
146288 +disable_so_fs16_to_cpu_fndecl_61568 fs16_to_cpu fndecl 0-2 61568 NULL
146289 +disable_so_prandom_u32_state_fndecl_61582 prandom_u32_state fndecl 0 61582 NULL
146290 +disable_so_high_bits_word_at_a_time_61595 high_bits word_at_a_time 0 61595 NULL
146291 +disable_so_broadsheet_spiflash_op_on_address_fndecl_61596 broadsheet_spiflash_op_on_address fndecl 0-2-3 61596 NULL
146292 +disable_so_device_create_fndecl_61600 device_create fndecl 3 61600 NULL
146293 +disable_so_mce_wrmsrl_fndecl_61602 mce_wrmsrl fndecl 2 61602 NULL
146294 +disable_so_jiffies_to_msecs_fndecl_61603 jiffies_to_msecs fndecl 0-1 61603 NULL
146295 +disable_so_desc_card_addr_qla4_83xx_minidump_entry_rdmem_pex_dma_61605 desc_card_addr qla4_83xx_minidump_entry_rdmem_pex_dma 0 61605 NULL
146296 +disable_so_remote_cm_response_timeout_ib_cm_req_param_61617 remote_cm_response_timeout ib_cm_req_param 0 61617 NULL
146297 +disable_so_i_ctime_ocfs2_dinode_61629 i_ctime ocfs2_dinode 0 61629 NULL
146298 +disable_so_uac_clock_selector_set_val_fndecl_61640 uac_clock_selector_set_val fndecl 2-0 61640 NULL
146299 +disable_so_throtl_schedule_pending_timer_fndecl_61645 throtl_schedule_pending_timer fndecl 2 61645 NULL
146300 +disable_so_t_nsec_xfs_ictimestamp_61648 t_nsec xfs_ictimestamp 0 61648 NULL
146301 +disable_so_hashbits_rpc_cred_cache_61651 hashbits rpc_cred_cache 0 61651 NULL
146302 +disable_so_iscsi_nacl_attrib_show_nopin_response_timeout_fndecl_61655 iscsi_nacl_attrib_show_nopin_response_timeout fndecl 0 61655 NULL
146303 +disable_so_address_SG64ENTRY_61656 address SG64ENTRY 0 61656 NULL
146304 +disable_so_cputime_advance_fndecl_61661 cputime_advance fndecl 2 61661 NULL
146305 +disable_so_ts_delay_pressure_vardecl_ucb1400_ts_c_61663 ts_delay_pressure vardecl_ucb1400_ts.c 0 61663 NULL
146306 +disable_so_mapaddr_skge_element_61673 mapaddr skge_element 0 61673 NULL
146307 +disable_so_resetcal_timer_ath_ani_61692 resetcal_timer ath_ani 0 61692 NULL
146308 +disable_so_btrfs_check_uuid_tree_entry_fndecl_61694 btrfs_check_uuid_tree_entry fndecl 4 61694 NULL
146309 +disable_so_tuner_addr_tm6000_core_61695 tuner_addr tm6000_core 0 61695 NULL
146310 +disable_so_last_msgtime_vardecl_ide_io_c_61702 last_msgtime vardecl_ide-io.c 0 61702 NULL
146311 +disable_so_hpi_sample_clock_get_auto_fndecl_61704 hpi_sample_clock_get_auto fndecl 1-0 61704 NULL
146312 +disable_so_ext4_find_delayed_extent_fndecl_61709 ext4_find_delayed_extent fndecl 0 61709 NULL
146313 +disable_so_freq_offset_khz_uhf_dib0090_config_61716 freq_offset_khz_uhf dib0090_config 0 61716 NULL
146314 +disable_so_sha1_generic_block_fn_fndecl_61724 sha1_generic_block_fn fndecl 3 61724 NULL
146315 +disable_so_xc4000_get_signal_fndecl_61727 xc4000_get_signal fndecl 0 61727 NULL
146316 +disable_so_vf_addr_hi_bnx2x_vf_mbx_61734 vf_addr_hi bnx2x_vf_mbx 0 61734 NULL nohasharray
146317 +enable_so_exit_info_2_vmcb_control_area_61734 exit_info_2 vmcb_control_area 0 61734 &disable_so_vf_addr_hi_bnx2x_vf_mbx_61734
146318 +disable_so_pcxhr_update_timer_pos_fndecl_61736 pcxhr_update_timer_pos fndecl 3 61736 NULL nohasharray
146319 +disable_so_adis16480_set_filter_freq_fndecl_61736 adis16480_set_filter_freq fndecl 0 61736 &disable_so_pcxhr_update_timer_pos_fndecl_61736 nohasharray
146320 +disable_so_xfs_daddr_to_agbno_fndecl_61736 xfs_daddr_to_agbno fndecl 0-2 61736 &disable_so_adis16480_set_filter_freq_fndecl_61736
146321 +disable_so_stb0899_calc_derot_time_fndecl_61753 stb0899_calc_derot_time fndecl 0-1 61753 NULL nohasharray
146322 +disable_so_fb_end_aligned_physaddr_osd_info_61753 fb_end_aligned_physaddr osd_info 0 61753 &disable_so_stb0899_calc_derot_time_fndecl_61753
146323 +disable_so_ssb_calc_clock_rate_fndecl_61754 ssb_calc_clock_rate fndecl 0-3-2 61754 NULL nohasharray
146324 +disable_so_seq_amdgpu_fence_61754 seq amdgpu_fence 0 61754 &disable_so_ssb_calc_clock_rate_fndecl_61754
146325 +disable_so_disable_irq_nosync_fndecl_61758 disable_irq_nosync fndecl 1 61758 NULL
146326 +disable_so_nft_dump_register_fndecl_61766 nft_dump_register fndecl 0 61766 NULL
146327 +disable_so_file_remove_suid_fndecl_61769 file_remove_suid fndecl 0 61769 NULL
146328 +disable_so_ltr501_als_write_samp_freq_fndecl_61771 ltr501_als_write_samp_freq fndecl 0 61771 NULL
146329 +disable_so_pixclock_my_timming_61772 pixclock my_timming 0 61772 NULL
146330 +disable_so_rtl818x_iowrite8_fndecl_61778 rtl818x_iowrite8 fndecl 3 61778 NULL
146331 +disable_so_bql_show_hold_time_fndecl_61783 bql_show_hold_time fndecl 0 61783 NULL
146332 +disable_so_db_addr_mlx4_ib_create_srq_61795 db_addr mlx4_ib_create_srq 0 61795 NULL
146333 +disable_so_lgdt3306a_sleep_fndecl_61796 lgdt3306a_sleep fndecl 0 61796 NULL
146334 +disable_so_cpuid_nent_kvm_vcpu_arch_61798 cpuid_nent kvm_vcpu_arch 0 61798 NULL
146335 +disable_so_addr_hdac_device_61804 addr hdac_device 0 61804 NULL
146336 +disable_so_center_freq_stb0899_internal_61821 center_freq stb0899_internal 0 61821 NULL
146337 +disable_so_addr_cqicb_61823 addr cqicb 0 61823 NULL
146338 +disable_so_oprofile_hrtimer_setup_fndecl_61824 oprofile_hrtimer_setup fndecl 0 61824 NULL
146339 +disable_so_tvaudio_addr_em28xx_board_61828 tvaudio_addr em28xx_board 0 61828 NULL
146340 +disable_so__ocrdma_pd_mgr_get_bitmap_fndecl_61833 _ocrdma_pd_mgr_get_bitmap fndecl 0 61833 NULL
146341 +disable_so_rd08_nvkm_ofuncs_61836 rd08 nvkm_ofuncs 0-2 61836 NULL
146342 +disable_so_clipped_freq_cpufreq_cooling_device_61837 clipped_freq cpufreq_cooling_device 0 61837 NULL
146343 +disable_so_config_addend_stmmac_hwtimestamp_61840 config_addend stmmac_hwtimestamp 2 61840 NULL
146344 +disable_so_crypto_authenc_givencrypt_fndecl_61841 crypto_authenc_givencrypt fndecl 0 61841 NULL
146345 +disable_so_freq_table_get_index_fndecl_61842 freq_table_get_index fndecl 2 61842 NULL
146346 +disable_so_qla2x00_issue_iocb_timeout_fndecl_61848 qla2x00_issue_iocb_timeout fndecl 0-3-5 61848 NULL
146347 +disable_so_afs_vlocation_timeout_vardecl_vlocation_c_61850 afs_vlocation_timeout vardecl_vlocation.c 0 61850 NULL
146348 +disable_so_dev_addr__drm_via_descriptor_61860 dev_addr _drm_via_descriptor 0 61860 NULL
146349 +disable_so_inet_confirm_addr_fndecl_61869 inet_confirm_addr fndecl 0 61869 NULL nohasharray
146350 +enable_so__eip_x86_emulate_ctxt_61869 _eip x86_emulate_ctxt 0 61869 &disable_so_inet_confirm_addr_fndecl_61869
146351 +disable_so_ethtool_get_perm_addr_fndecl_61870 ethtool_get_perm_addr fndecl 0 61870 NULL
146352 +disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876 sctp_ulpevent_make_peer_addr_change fndecl 6 61876 NULL nohasharray
146353 +disable_so_calc_lanman_hash_fndecl_61876 calc_lanman_hash fndecl 0 61876 &disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876
146354 +disable_so_init_blkcipher_desc_fndecl_61877 init_blkcipher_desc fndecl 0-3-5 61877 NULL
146355 +disable_so_address_acpi_pci_routing_table_61886 address acpi_pci_routing_table 0 61886 NULL
146356 +disable_so_tx_tone_freq_b43_phy_lp_61888 tx_tone_freq b43_phy_lp 0 61888 NULL
146357 +disable_so___ip6addrlbl_match_fndecl_61894 __ip6addrlbl_match fndecl 4-5 61894 NULL
146358 +disable_so_irq_domain_free_irqs_top_fndecl_61898 irq_domain_free_irqs_top fndecl 2-3 61898 NULL
146359 +disable_so_freq_tm6000_core_61902 freq tm6000_core 0 61902 NULL
146360 +disable_so_addr_lo_ocrdma_sge_61909 addr_lo ocrdma_sge 0 61909 NULL
146361 +disable_so_ctlr_ka_time_fcoe_ctlr_61922 ctlr_ka_time fcoe_ctlr 0 61922 NULL
146362 +disable_so_mcryptd_hash_final_enqueue_fndecl_61941 mcryptd_hash_final_enqueue fndecl 0 61941 NULL
146363 +disable_so_dn_match_addr_fndecl_61944 dn_match_addr fndecl 1 61944 NULL
146364 +disable_so_mac_time_b43legacy_rxhdr_fw3_61952 mac_time b43legacy_rxhdr_fw3 0 61952 NULL nohasharray
146365 +disable_so_force_static_address_write_fndecl_61952 force_static_address_write fndecl 3 61952 &disable_so_mac_time_b43legacy_rxhdr_fw3_61952
146366 +disable_so_delay_adp5588_kpad_61963 delay adp5588_kpad 0 61963 NULL
146367 +disable_so_cg_time_ufs_cylinder_group_61969 cg_time ufs_cylinder_group 0 61969 NULL
146368 +disable_so_pll_freq_ene_device_61971 pll_freq ene_device 0 61971 NULL
146369 +disable_so_iscsit_na_random_datain_seq_offsets_fndecl_61975 iscsit_na_random_datain_seq_offsets fndecl 0 61975 NULL
146370 +disable_so_addr_dme1737_data_61978 addr dme1737_data 0 61978 NULL
146371 +disable_so_crypto_probing_notify_fndecl_61991 crypto_probing_notify fndecl 0-1 61991 NULL
146372 +disable_so_offset_fw_address_handler_61992 offset fw_address_handler 0 61992 NULL
146373 +disable_so_vsel_addr_palmas_regs_info_61997 vsel_addr palmas_regs_info 0 61997 NULL
146374 +disable_so_last_time_ecne_reduced_sctp_transport_61998 last_time_ecne_reduced sctp_transport 0 61998 NULL
146375 +disable_so_units_sprintf_fndecl_62002 units_sprintf fndecl 0 62002 NULL
146376 +disable_so_gpu_addr_radeon_uvd_62004 gpu_addr radeon_uvd 0 62004 NULL
146377 +disable_so_adc_freq_stmpe_touch_62006 adc_freq stmpe_touch 0 62006 NULL
146378 +disable_so_dosr_aic31xx_rate_divs_62015 dosr aic31xx_rate_divs 0 62015 NULL
146379 +disable_so_tsc_khz_vardecl_62031 tsc_khz vardecl 0 62031 NULL
146380 +disable_so_accounting_timestamp_dev_pm_info_62040 accounting_timestamp dev_pm_info 0 62040 NULL nohasharray
146381 +disable_so_sensor_addr_mcam_camera_62040 sensor_addr mcam_camera 0 62040 &disable_so_accounting_timestamp_dev_pm_info_62040
146382 +disable_so___sw_hweight16_fndecl_62046 __sw_hweight16 fndecl 1-0 62046 NULL
146383 +disable_so_st_atime_stat_62052 st_atime stat 0 62052 NULL nohasharray
146384 +disable_so_dsi_pll_div_dsi_mnp_62052 dsi_pll_div dsi_mnp 0 62052 &disable_so_st_atime_stat_62052
146385 +disable_so_ath5k_hw_write_ofdm_timings_fndecl_62063 ath5k_hw_write_ofdm_timings fndecl 0 62063 NULL
146386 +disable_so_addr_dn_neigh_62067 addr dn_neigh 0 62067 NULL
146387 +disable_so_small_buf_q_alloc_phy_addr_ql3_adapter_62071 small_buf_q_alloc_phy_addr ql3_adapter 0 62071 NULL
146388 +disable_so_in6_dump_addrs_fndecl_62073 in6_dump_addrs fndecl 0 62073 NULL nohasharray
146389 +disable_so_toggle_hw_mce_inject_fndecl_62073 toggle_hw_mce_inject fndecl 0-1 62073 &disable_so_in6_dump_addrs_fndecl_62073
146390 +disable_so_addr_mthca_data_seg_62083 addr mthca_data_seg 0 62083 NULL
146391 +disable_so_err_interrupt_orion_mdio_dev_62099 err_interrupt orion_mdio_dev 0 62099 NULL
146392 +disable_so_callback_snd_timer_instance_62100 callback snd_timer_instance 2-3 62100 NULL
146393 +disable_so_acc_jiffies_ati_remote_62109 acc_jiffies ati_remote 0 62109 NULL
146394 +disable_so_regcache_rbtree_drop_fndecl_62111 regcache_rbtree_drop fndecl 2-3 62111 NULL
146395 +disable_so_post_div_radeon_pll_62120 post_div radeon_pll 0 62120 NULL
146396 +disable_so_local_addr_rds_atomic_args_62123 local_addr rds_atomic_args 0 62123 NULL
146397 +disable_so_rds_tcp_laddr_check_fndecl_62131 rds_tcp_laddr_check fndecl 1 62131 NULL
146398 +disable_so_sock_get_timestampns_fndecl_62145 sock_get_timestampns fndecl 0 62145 NULL
146399 +disable_so_beacon_time_stamp_il_rx_phy_res_62147 beacon_time_stamp il_rx_phy_res 0 62147 NULL
146400 +disable_so_panel_power_up_delay_cdv_intel_dp_62150 panel_power_up_delay cdv_intel_dp 0 62150 NULL
146401 +disable_so_dma_addr_solo_p2m_desc_62151 dma_addr solo_p2m_desc 0 62151 NULL
146402 +disable_so_hangcheck_tick_vardecl_hangcheck_timer_c_62154 hangcheck_tick vardecl_hangcheck-timer.c 0 62154 NULL nohasharray
146403 +disable_so_kbd_backlight_timeout_store_fndecl_62154 kbd_backlight_timeout_store fndecl 0-4 62154 &disable_so_hangcheck_tick_vardecl_hangcheck_timer_c_62154
146404 +disable_so_xhci_call_host_update_timeout_for_endpoint_fndecl_62155 xhci_call_host_update_timeout_for_endpoint fndecl 0 62155 NULL
146405 +disable_so_read_block_bitmap_fndecl_62158 read_block_bitmap fndecl 2 62158 NULL
146406 +disable_so_ceph_aes_decrypt_fndecl_62159 ceph_aes_decrypt fndecl 2-6 62159 NULL
146407 +disable_so_mpll_func_cntl_2_si_clock_registers_62165 mpll_func_cntl_2 si_clock_registers 0 62165 NULL
146408 +disable_so_s01_img_ir_timing_regvals_62168 s01 img_ir_timing_regvals 0 62168 NULL
146409 +disable_so_xmit_hashtype_vardecl_bond_main_c_62175 xmit_hashtype vardecl_bond_main.c 0 62175 NULL
146410 +disable_so_seconds_v4l2_timecode_62177 seconds v4l2_timecode 0 62177 NULL
146411 +disable_so_dma_addr_t3_wq_62178 dma_addr t3_wq 0 62178 NULL
146412 +disable_so_cryptd_hash_export_fndecl_62185 cryptd_hash_export fndecl 0 62185 NULL
146413 +disable_so_get_qam_signal_to_noise_fndecl_62191 get_qam_signal_to_noise fndecl 0 62191 NULL
146414 +disable_so_dp_daddr_rds_ib_connect_private_62196 dp_daddr rds_ib_connect_private 0 62196 NULL
146415 +disable_so_max77693_muic_set_debounce_time_fndecl_62200 max77693_muic_set_debounce_time fndecl 0-2 62200 NULL
146416 +disable_so_bch_time_stats_update_fndecl_62214 bch_time_stats_update fndecl 2 62214 NULL
146417 +disable_so_t4_set_addr_hash_fndecl_62216 t4_set_addr_hash fndecl 0-2-3 62216 NULL
146418 +disable_so_proc_disconnectsignal_compat_fndecl_62217 proc_disconnectsignal_compat fndecl 0 62217 NULL
146419 +disable_so_rtsx_pci_switch_clock_fndecl_62219 rtsx_pci_switch_clock fndecl 2-0 62219 NULL
146420 +disable_so_addr_chip_data_62229 addr chip_data 0 62229 NULL
146421 +disable_so_timer_abs_periods_pcxhr_stream_62230 timer_abs_periods pcxhr_stream 0 62230 NULL
146422 +disable_so_tty_ldisc_lock_pair_timeout_fndecl_62232 tty_ldisc_lock_pair_timeout fndecl 3 62232 NULL
146423 +disable_so_fd_pppol2tpv3in6_addr_62243 fd pppol2tpv3in6_addr 0 62243 NULL
146424 +disable_so_hrtimer_start_range_ns_fndecl_62253 hrtimer_start_range_ns fndecl 3 62253 NULL
146425 +disable_so_r9_kvm_regs_62259 r9 kvm_regs 0 62259 NULL
146426 +disable_so_supported_addrs_sctp_pf_62261 supported_addrs sctp_pf 0 62261 NULL
146427 +disable_so_xfs_bmapi_delay_fndecl_62277 xfs_bmapi_delay fndecl 0-2-3 62277 NULL
146428 +disable_so_tseg2_pucan_timing_slow_62290 tseg2 pucan_timing_slow 0 62290 NULL
146429 +disable_so_mtime_ncp_cache_head_62294 mtime ncp_cache_head 0 62294 NULL
146430 +disable_so_get_ramp_delay_fndecl_62302 get_ramp_delay fndecl 0 62302 NULL
146431 +disable_so_decrypt_crypto_aead_62305 decrypt crypto_aead 0 62305 NULL
146432 +disable_so_paddr_mmd_fw_ldst_mdio_62306 paddr_mmd fw_ldst_mdio 0 62306 NULL
146433 +disable_so_start_address___osdv1_cdb_addr_len_62309 start_address __osdv1_cdb_addr_len 0 62309 NULL
146434 +disable_so_freq_as10x_tune_args_62312 freq as10x_tune_args 0 62312 NULL
146435 +disable_so_timestamp_low_rtl_stats_62314 timestamp_low rtl_stats 0 62314 NULL
146436 +disable_so_uid_fuse_in_header_62319 uid fuse_in_header 0 62319 NULL
146437 +disable_so_bfa_fcs_rport_del_timeout_vardecl_bfa_fcs_rport_c_62320 bfa_fcs_rport_del_timeout vardecl_bfa_fcs_rport.c 0 62320 NULL nohasharray
146438 +disable_so_argidx_mc_buffer_62320 argidx mc_buffer 0 62320 &disable_so_bfa_fcs_rport_del_timeout_vardecl_bfa_fcs_rport_c_62320
146439 +disable_so_ci_recover_timer_dlm_config_info_62321 ci_recover_timer dlm_config_info 0 62321 NULL nohasharray
146440 +disable_so_gart_bus_addr_agp_bridge_data_62321 gart_bus_addr agp_bridge_data 0 62321 &disable_so_ci_recover_timer_dlm_config_info_62321
146441 +disable_so_ci_get_ddr3_mclk_frequency_ratio_fndecl_62335 ci_get_ddr3_mclk_frequency_ratio fndecl 0-1 62335 NULL
146442 +disable_so_addr_flags_ec_params_i2c_passthru_msg_62337 addr_flags ec_params_i2c_passthru_msg 0 62337 NULL
146443 +disable_so_mISDN_clock_get_fndecl_62339 mISDN_clock_get fndecl 0 62339 NULL nohasharray
146444 +disable_so_beacon_paddr_ath10k_vif_62339 beacon_paddr ath10k_vif 0 62339 &disable_so_mISDN_clock_get_fndecl_62339 nohasharray
146445 +disable_so_tda10023_writereg_fndecl_62339 tda10023_writereg fndecl 3 62339 &disable_so_beacon_paddr_ath10k_vif_62339
146446 +disable_so___iowrite32_copy_fndecl_62342 __iowrite32_copy fndecl 3 62342 NULL
146447 +disable_so_bit_offset_acpi_pct_register_62348 bit_offset acpi_pct_register 0 62348 NULL
146448 +disable_so_ccp_aes_encrypt_fndecl_62350 ccp_aes_encrypt fndecl 0 62350 NULL
146449 +disable_so_crypto_cbc_module_init_fndecl_62352 crypto_cbc_module_init fndecl 0 62352 NULL
146450 +disable_so_decode_attr_time_fndecl_62359 decode_attr_time fndecl 0 62359 NULL
146451 +disable_so_btrfs_set_dev_replace_time_stopped_fndecl_62364 btrfs_set_dev_replace_time_stopped fndecl 3 62364 NULL
146452 +disable_so_i2c_addr_stv0900_internal_62365 i2c_addr stv0900_internal 0 62365 NULL
146453 +disable_so_sys_setfsgid16_fndecl_62369 sys_setfsgid16 fndecl 0-1 62369 NULL
146454 +disable_so__zd_iowrite32v_locked_fndecl_62374 _zd_iowrite32v_locked fndecl 3-0 62374 NULL nohasharray
146455 +disable_so_C_SYSC_semtimedop_fndecl_62374 C_SYSC_semtimedop fndecl 0-1-3 62374 &disable_so__zd_iowrite32v_locked_fndecl_62374
146456 +disable_so_native_mode_display_timings_62375 native_mode display_timings 0 62375 NULL
146457 +disable_so_wm8400_set_dai_clkdiv_fndecl_62376 wm8400_set_dai_clkdiv fndecl 3 62376 NULL
146458 +disable_so_phy_fixed_addr_vardecl_fixed_phy_c_62380 phy_fixed_addr vardecl_fixed_phy.c 0 62380 NULL
146459 +disable_so_lo_phys_addr_62383 lo phys_addr 0 62383 NULL
146460 +disable_so_schedule_resp_fndecl_62394 schedule_resp fndecl 4-3 62394 NULL
146461 +disable_so_tw_ts_recent_tcp_timewait_sock_62395 tw_ts_recent tcp_timewait_sock 0 62395 NULL
146462 +disable_so_bus_addr_videobuf_dmabuf_62402 bus_addr videobuf_dmabuf 0 62402 NULL
146463 +disable_so_i_uid_exofs_fcb_62409 i_uid exofs_fcb 0 62409 NULL
146464 +disable_so_pc_clock_getres_fndecl_62422 pc_clock_getres fndecl 1 62422 NULL
146465 +disable_so_lock_addr_ulp_mem_io_62424 lock_addr ulp_mem_io 0 62424 NULL
146466 +disable_so___set_radio_freq_fndecl_62425 __set_radio_freq fndecl 2 62425 NULL
146467 +disable_so_ath5k_hw_set_cts_timeout_fndecl_62429 ath5k_hw_set_cts_timeout fndecl 2 62429 NULL
146468 +disable_so_ni_program_memory_timing_parameters_fndecl_62435 ni_program_memory_timing_parameters fndecl 0 62435 NULL
146469 +disable_so_stv6110_set_frequency_fndecl_62438 stv6110_set_frequency fndecl 2 62438 NULL
146470 +disable_so_padata_index_to_cpu_fndecl_62451 padata_index_to_cpu fndecl 0-2 62451 NULL
146471 +disable_so_btree_insert_fndecl_62456 btree_insert fndecl 5 62456 NULL
146472 +disable_so_time_hfa384x_rx_frame_62462 time hfa384x_rx_frame 0 62462 NULL
146473 +disable_so_qat_alg_ablkcipher_init_dec_fndecl_62464 qat_alg_ablkcipher_init_dec fndecl 4 62464 NULL
146474 +disable_so_addr_mcp23s08_62465 addr mcp23s08 0 62465 NULL
146475 +disable_so_faddr_ip_options_62466 faddr ip_options 0 62466 NULL nohasharray
146476 +disable_so_ufs_get_inode_gid_fndecl_62466 ufs_get_inode_gid fndecl 0 62466 &disable_so_faddr_ip_options_62466
146477 +disable_so_min_rnr_timer_ib_qp_attr_62467 min_rnr_timer ib_qp_attr 0 62467 NULL
146478 +disable_so_update_timestamp_of_queue_fndecl_62482 update_timestamp_of_queue fndecl 2 62482 NULL
146479 +disable_so_center_freq1_cfg80211_chan_def_62486 center_freq1 cfg80211_chan_def 0 62486 NULL
146480 +disable_so_watchdog_set_timeout_fndecl_62487 watchdog_set_timeout fndecl 0 62487 NULL
146481 +disable_so_bitmap_parselist_user_fndecl_62492 bitmap_parselist_user fndecl 0-2-4 62492 NULL
146482 +disable_so_tuner_address_tda1004x_config_62514 tuner_address tda1004x_config 0 62514 NULL
146483 +disable_so_src_addr_l_wcn36xx_dxe_desc_62516 src_addr_l wcn36xx_dxe_desc 0 62516 NULL
146484 +disable_so_loadaddr_object_info_62521 loadaddr object_info 0 62521 NULL
146485 +disable_so_store_cpumask_fndecl_62525 store_cpumask fndecl 4-0 62525 NULL
146486 +disable_so_sysctl_llc2_rej_timeout_vardecl_62533 sysctl_llc2_rej_timeout vardecl 0 62533 NULL nohasharray
146487 +disable_so_symbol_rate_stv0900_signal_info_62533 symbol_rate stv0900_signal_info 0 62533 &disable_so_sysctl_llc2_rej_timeout_vardecl_62533
146488 +disable_so_get_pending_timer_val_fndecl_62535 get_pending_timer_val fndecl 0-1 62535 NULL
146489 +disable_so_acpi_tb_init_generic_address_fndecl_62545 acpi_tb_init_generic_address fndecl 2-3-4 62545 NULL
146490 +disable_so_laddr_xt_tproxy_target_info_62546 laddr xt_tproxy_target_info 0 62546 NULL
146491 +disable_so_bitmaps_btrfs_io_ctl_62547 bitmaps btrfs_io_ctl 0 62547 NULL
146492 +disable_so_phy_tx_tone_freq_brcms_phy_62552 phy_tx_tone_freq brcms_phy 0 62552 NULL
146493 +disable_so_rdaddr_irnet_socket_62558 rdaddr irnet_socket 0 62558 NULL
146494 +disable_so_uid_ucred_62560 uid ucred 0 62560 NULL
146495 +disable_so_mod_delayed_work_fndecl_62563 mod_delayed_work fndecl 3 62563 NULL
146496 +disable_so_base_pfn_var_mtrr_range_state_62564 base_pfn var_mtrr_range_state 0 62564 NULL
146497 +disable_so_cx_pt_regs_62574 cx pt_regs 0 62574 NULL
146498 +disable_so_cpuid_device_destroy_fndecl_62575 cpuid_device_destroy fndecl 1 62575 NULL
146499 +disable_so_pm_print_times_show_fndecl_62583 pm_print_times_show fndecl 0 62583 NULL
146500 +disable_so_blkaddr_discard_entry_62585 blkaddr discard_entry 0 62585 NULL
146501 +disable_so_wl1271_acx_group_address_tbl_fndecl_62591 wl1271_acx_group_address_tbl fndecl 0 62591 NULL nohasharray
146502 +disable_so_rangelow_v4l2_hw_freq_seek_62591 rangelow v4l2_hw_freq_seek 0 62591 &disable_so_wl1271_acx_group_address_tbl_fndecl_62591
146503 +disable_so_crc32_le_fndecl_62601 crc32_le fndecl 0-1-3 62601 NULL
146504 +disable_so_freq_cx23885_dev_62605 freq cx23885_dev 0 62605 NULL
146505 +disable_so_sysctl_netrom_transport_no_activity_timeout_vardecl_62608 sysctl_netrom_transport_no_activity_timeout vardecl 0 62608 NULL
146506 +disable_so_xfs_btree_new_iroot_fndecl_62611 xfs_btree_new_iroot fndecl 0 62611 NULL
146507 +disable_so_tproxy_handle_time_wait6_fndecl_62612 tproxy_handle_time_wait6 fndecl 3-2 62612 NULL
146508 +disable_so_sys_getpgid_fndecl_62613 sys_getpgid fndecl 0-1 62613 NULL
146509 +disable_so_next_td_addr_c67x00_hcd_62615 next_td_addr c67x00_hcd 0 62615 NULL
146510 +disable_so_hdspm_aes_sync_check_fndecl_62629 hdspm_aes_sync_check fndecl 2 62629 NULL
146511 +disable_so_ebitmap_node_get_bit_fndecl_62633 ebitmap_node_get_bit fndecl 2 62633 NULL
146512 +disable_so_nilfs_palloc_get_bitmap_block_fndecl_62635 nilfs_palloc_get_bitmap_block fndecl 0-2 62635 NULL
146513 +disable_so_spll_ref_div_rv6xx_power_info_62638 spll_ref_div rv6xx_power_info 0 62638 NULL nohasharray
146514 +disable_so_center_freq_seg1_idx_ieee80211_vht_operation_62638 center_freq_seg1_idx ieee80211_vht_operation 0 62638 &disable_so_spll_ref_div_rv6xx_power_info_62638
146515 +disable_so_swc_base_asd_ha_addrspace_62642 swc_base asd_ha_addrspace 0 62642 NULL nohasharray
146516 +disable_so__abb5zes3_rtc_update_timer_fndecl_62642 _abb5zes3_rtc_update_timer fndecl 0 62642 &disable_so_swc_base_asd_ha_addrspace_62642
146517 +disable_so_cgcdiv_saa711x_state_62643 cgcdiv saa711x_state 0 62643 NULL
146518 +disable_so_igmp_mod_timer_fndecl_62656 igmp_mod_timer fndecl 2 62656 NULL
146519 +disable_so_write16_comm_runtime_62657 write16 comm_runtime 0 62657 NULL
146520 +disable_so_sib_sid_sockaddr_ib_62658 sib_sid sockaddr_ib 0 62658 NULL
146521 +disable_so_srx_service_sockaddr_rxrpc_62661 srx_service sockaddr_rxrpc 0 62661 NULL
146522 +disable_so_sh_cmt_clocksource_read_fndecl_62671 sh_cmt_clocksource_read fndecl 0 62671 NULL
146523 +disable_so_freq_saa7164_port_62674 freq saa7164_port 0 62674 NULL
146524 +disable_so_nilfs_btree_node_lookup_fndecl_62675 nilfs_btree_node_lookup fndecl 2 62675 NULL
146525 +disable_so_addr_1_qla8044_minidump_entry_rddfe_62676 addr_1 qla8044_minidump_entry_rddfe 0 62676 NULL
146526 +disable_so_rtl_udelay_fndecl_62677 rtl_udelay fndecl 1 62677 NULL nohasharray
146527 +disable_so_VTotal_xtimings_62677 VTotal xtimings 0 62677 &disable_so_rtl_udelay_fndecl_62677
146528 +disable_so_ib_get_cached_gid_fndecl_62698 ib_get_cached_gid fndecl 2-3 62698 NULL
146529 +disable_so_dvb_frontend_sleep_until_fndecl_62701 dvb_frontend_sleep_until fndecl 2 62701 NULL
146530 +disable_so_i2c_address_stv6110_config_62706 i2c_address stv6110_config 0 62706 NULL
146531 +disable_so_address_ihex_record_62713 address ihex_record 0 62713 NULL
146532 +disable_so_next_rptr_gpu_addr_radeon_ring_62716 next_rptr_gpu_addr radeon_ring 0 62716 NULL
146533 +disable_so_wusb_trust_timeout_store_fndecl_62719 wusb_trust_timeout_store fndecl 0-4 62719 NULL
146534 +disable_so_add_bytes_to_bitmap_fndecl_62721 add_bytes_to_bitmap fndecl 0-3-4 62721 NULL
146535 +disable_so_set_ethernet_addr_fndecl_62733 set_ethernet_addr fndecl 0 62733 NULL
146536 +disable_so_nmsrs_kvm_msrs_62744 nmsrs kvm_msrs 0 62744 NULL
146537 +disable_so_ant_div_control_ar9300_BaseExtension_1_62759 ant_div_control ar9300_BaseExtension_1 0 62759 NULL
146538 +disable_so_padlock_sha_import_fndecl_62760 padlock_sha_import fndecl 0 62760 NULL
146539 +disable_so_do_timerfd_settime_fndecl_62764 do_timerfd_settime fndecl 1 62764 NULL nohasharray
146540 +disable_so_phy_addr_netdev_private_62764 phy_addr netdev_private 0 62764 &disable_so_do_timerfd_settime_fndecl_62764
146541 +disable_so_bd_list_addr_lo_bnx2i_nop_out_request_62766 bd_list_addr_lo bnx2i_nop_out_request 0 62766 NULL
146542 +disable_so_get_sndtimeo_l2cap_ops_62767 get_sndtimeo l2cap_ops 0 62767 NULL
146543 +disable_so_active_jiffies_dev_pm_info_62774 active_jiffies dev_pm_info 0 62774 NULL
146544 +disable_so_r5f_val_fc2580_freq_regs_62778 r5f_val fc2580_freq_regs 0 62778 NULL
146545 +disable_so_ac97_clock_vardecl_via82xx_modem_c_62781 ac97_clock vardecl_via82xx_modem.c 0 62781 NULL
146546 +disable_so_after_ctime_sec_nfsd4_change_info_62785 after_ctime_sec nfsd4_change_info 0 62785 NULL
146547 +disable_so_vma_compute_subtree_gap_fndecl_62794 vma_compute_subtree_gap fndecl 0 62794 NULL
146548 +disable_so_fll_freq_out_wm8350_data_62801 fll_freq_out wm8350_data 0 62801 NULL
146549 +disable_so_nfs_map_group_to_gid_fndecl_62809 nfs_map_group_to_gid fndecl 0-3 62809 NULL
146550 +disable_so_saddr_irnet_socket_62828 saddr irnet_socket 0 62828 NULL
146551 +disable_so_fixed_mtrr_range_end_addr_fndecl_62835 fixed_mtrr_range_end_addr fndecl 2-0 62835 NULL
146552 +disable_so_sis_program_udma_timings_fndecl_62837 sis_program_udma_timings fndecl 2 62837 NULL
146553 +disable_so_timeout_lpfc_scsi_buf_62845 timeout lpfc_scsi_buf 0 62845 NULL
146554 +disable_so_brp_inc_can_bittiming_const_62858 brp_inc can_bittiming_const 0 62858 NULL
146555 +disable_so_timer_counter_tg3_62864 timer_counter tg3 0 62864 NULL
146556 +disable_so_slave_addr_psb_intel_i2c_chan_62869 slave_addr psb_intel_i2c_chan 0 62869 NULL
146557 +disable_so_mapaddr_rocker_desc_info_62870 mapaddr rocker_desc_info 0 62870 NULL
146558 +disable_so_cid_addr_drv_ctl_io_62879 cid_addr drv_ctl_io 0 62879 NULL
146559 +disable_so_ifreq_dibx000_bandwidth_config_62891 ifreq dibx000_bandwidth_config 0 62891 NULL
146560 +disable_so_m_iw_freq_62894 m iw_freq 0 62894 NULL
146561 +disable_so___nci_request_fndecl_62899 __nci_request fndecl 0 62899 NULL
146562 +disable_so_tuner_addr_cx23885_dev_62908 tuner_addr cx23885_dev 0 62908 NULL
146563 +disable_so_acpi_remove_address_space_handler_fndecl_62916 acpi_remove_address_space_handler fndecl 0-2 62916 NULL
146564 +disable_so_vma_address_fndecl_62917 vma_address fndecl 0 62917 NULL
146565 +disable_so_cg_spll_func_cntl_2_rv770_clock_registers_62925 cg_spll_func_cntl_2 rv770_clock_registers 0 62925 NULL
146566 +disable_so_clear_state_gpu_addr_radeon_rlc_62934 clear_state_gpu_addr radeon_rlc 0 62934 NULL
146567 +disable_so_timeout__x_config_parms_62944 timeout _x_config_parms 0 62944 NULL
146568 +disable_so_vbackporch_v4l2_bt_timings_62951 vbackporch v4l2_bt_timings 0 62951 NULL
146569 +disable_so_crypto_rfc4543_setkey_fndecl_62960 crypto_rfc4543_setkey fndecl 0-3 62960 NULL
146570 +disable_so_xc_get_hsync_freq_fndecl_62961 xc_get_hsync_freq fndecl 0 62961 NULL
146571 +disable_so_run_delayed_start_btrfs_delayed_ref_root_62962 run_delayed_start btrfs_delayed_ref_root 0 62962 NULL nohasharray
146572 +disable_so_netxen_nic_pci_get_crb_addr_2M_fndecl_62962 netxen_nic_pci_get_crb_addr_2M fndecl 2 62962 &disable_so_run_delayed_start_btrfs_delayed_ref_root_62962
146573 +disable_so_frac_top_pll_div_62988 frac_top pll_div 0 62988 NULL nohasharray
146574 +disable_so_busaddr__CommandList_struct_62988 busaddr _CommandList_struct 0 62988 &disable_so_frac_top_pll_div_62988
146575 +disable_so_buffer_paddr_ghes_62992 buffer_paddr ghes 0 62992 NULL
146576 +disable_so_be32_to_cpu_n_fndecl_62994 be32_to_cpu_n fndecl 3 62994 NULL
146577 +disable_so_ccp_sha_update_fndecl_63000 ccp_sha_update fndecl 0 63000 NULL
146578 +disable_so_chipco_pctl_clockfreqlimit_fndecl_63008 chipco_pctl_clockfreqlimit fndecl 0 63008 NULL
146579 +disable_so_sys_gettimeofday_fndecl_63009 sys_gettimeofday fndecl 0 63009 NULL
146580 +disable_so_ext4_read_block_bitmap_fndecl_63029 ext4_read_block_bitmap fndecl 2 63029 NULL
146581 +disable_so_sis900_interrupt_fndecl_63044 sis900_interrupt fndecl 1 63044 NULL
146582 +disable_so_tv_usec_compat_timeval_63056 tv_usec compat_timeval 0 63056 NULL
146583 +disable_so_timeout_ct_entry_24xx_63060 timeout ct_entry_24xx 0 63060 NULL
146584 +disable_so_ib_reset_mad_timeout_fndecl_63061 ib_reset_mad_timeout fndecl 2 63061 NULL
146585 +disable_so_register_lapic_address_fndecl_63066 register_lapic_address fndecl 1 63066 NULL
146586 +disable_so_sgl_dma_addr_genwqe_sgl_63082 sgl_dma_addr genwqe_sgl 0 63082 NULL
146587 +disable_so_nf_conntrack_hash_rnd_vardecl_63088 nf_conntrack_hash_rnd vardecl 0 63088 NULL
146588 +disable_so_snd_emu10k1_ptr_write_fndecl_63094 snd_emu10k1_ptr_write fndecl 2-3-4 63094 NULL
146589 +disable_so_index_svm_direct_access_msrs_63098 index svm_direct_access_msrs 0 63098 NULL
146590 +disable_so_crypto_authenc_genicv_fndecl_63111 crypto_authenc_genicv fndecl 0 63111 NULL
146591 +disable_so_pcf50633_rtc_set_time_fndecl_63123 pcf50633_rtc_set_time fndecl 0 63123 NULL
146592 +disable_so_hsyn_pol_hdmi_timings_63136 hsyn_pol hdmi_timings 0 63136 NULL
146593 +disable_so_ri_addr_gfs2_rindex_63138 ri_addr gfs2_rindex 0 63138 NULL
146594 +disable_so_nr_oaktrail_hdmi_clock_63155 nr oaktrail_hdmi_clock 0 63155 NULL nohasharray
146595 +disable_so_dma_addr_nic_63155 dma_addr nic 0 63155 &disable_so_nr_oaktrail_hdmi_clock_63155
146596 +disable_so_dlm_hash2nodeid_fndecl_63162 dlm_hash2nodeid fndecl 2 63162 NULL
146597 +disable_so_efx_enable_interrupts_fndecl_63163 efx_enable_interrupts fndecl 0 63163 NULL nohasharray
146598 +disable_so_freq_offset_rt2x00_dev_63163 freq_offset rt2x00_dev 0 63163 &disable_so_efx_enable_interrupts_fndecl_63163
146599 +disable_so_dma_addr_il_queue_63172 dma_addr il_queue 0 63172 NULL
146600 +disable_so_buf_addr_hi_fcoe_bd_ctx_63176 buf_addr_hi fcoe_bd_ctx 0 63176 NULL
146601 +disable_so_i2c_addr_lgdt3305_config_63179 i2c_addr lgdt3305_config 0 63179 NULL nohasharray
146602 +disable_so_sched_addr_ath9k_hw_mci_63179 sched_addr ath9k_hw_mci 0 63179 &disable_so_i2c_addr_lgdt3305_config_63179
146603 +disable_so_mic_x100_get_boot_addr_fndecl_63190 mic_x100_get_boot_addr fndecl 0 63190 NULL
146604 +disable_so_i2c_clock_period_ivtv_options_63202 i2c_clock_period ivtv_options 0 63202 NULL
146605 +disable_so_f2fs_init_crypto_fndecl_63218 f2fs_init_crypto fndecl 0 63218 NULL
146606 +disable_so_snd_ymfpci_interrupt_fndecl_63224 snd_ymfpci_interrupt fndecl 1 63224 NULL
146607 +disable_so_set_tsc_mode_fndecl_63231 set_tsc_mode fndecl 0-1 63231 NULL
146608 +disable_so_update_crypto_ahash_63235 update crypto_ahash 0 63235 NULL
146609 +disable_so_base_freq_stv0297_state_63242 base_freq stv0297_state 0 63242 NULL
146610 +disable_so_mounted_uid_ncp_mount_data_63250 mounted_uid ncp_mount_data 0 63250 NULL
146611 +disable_so_wall_clock_kvm_arch_63252 wall_clock kvm_arch 0 63252 NULL nohasharray
146612 +disable_so_system_clock_counter_kfd_ioctl_get_clock_counters_args_63252 system_clock_counter kfd_ioctl_get_clock_counters_args 0 63252 &disable_so_wall_clock_kvm_arch_63252
146613 +disable_so_r100_mm_wreg_slow_fndecl_63255 r100_mm_wreg_slow fndecl 2-3 63255 NULL
146614 +disable_so_ocrdma_query_gid_fndecl_63259 ocrdma_query_gid fndecl 0-3 63259 NULL
146615 +disable_so_sha1_mb_async_init_fndecl_63263 sha1_mb_async_init fndecl 0 63263 NULL
146616 +disable_so_i_mtime_nsec_nilfs_inode_63266 i_mtime_nsec nilfs_inode 0 63266 NULL
146617 +disable_so_s_pkt_delay_ipath_qp_63270 s_pkt_delay ipath_qp 0 63270 NULL
146618 +disable_so_ecryptfs_read_update_atime_fndecl_63272 ecryptfs_read_update_atime fndecl 0 63272 NULL
146619 +disable_so_seq_auto_out_pin_63274 seq auto_out_pin 0 63274 NULL
146620 +disable_so_pmdown_time_show_fndecl_63283 pmdown_time_show fndecl 0 63283 NULL
146621 +disable_so_pwm_freq_div_dib7000m_config_63285 pwm_freq_div dib7000m_config 0 63285 NULL
146622 +disable_so_bit_width_acpi_generic_address_63286 bit_width acpi_generic_address 0 63286 NULL
146623 +disable_so_addr_sg_entry_63287 addr sg_entry 0 63287 NULL
146624 +disable_so_ocfs2_pack_timespec_fndecl_63293 ocfs2_pack_timespec fndecl 0 63293 NULL
146625 +disable_so_ipv6_addr_label_fndecl_63298 ipv6_addr_label fndecl 3-4 63298 NULL
146626 +disable_so_chgfreq_cs42l56_platform_data_63299 chgfreq cs42l56_platform_data 0 63299 NULL
146627 +disable_so_sco_sock_set_timer_fndecl_63304 sco_sock_set_timer fndecl 2 63304 NULL nohasharray
146628 +disable_so_skb_get_hash_fndecl_63304 skb_get_hash fndecl 0 63304 &disable_so_sco_sock_set_timer_fndecl_63304
146629 +disable_so_timeout_tsk_mgmt_entry_63307 timeout tsk_mgmt_entry 0 63307 NULL
146630 +disable_so_sysctl_slot_timeout_vardecl_63317 sysctl_slot_timeout vardecl 0 63317 NULL
146631 +disable_so_set_sadb_address_fndecl_63320 set_sadb_address fndecl 2 63320 NULL
146632 +disable_so_handle_frequent_errors_fndecl_63324 handle_frequent_errors fndecl 4 63324 NULL
146633 +disable_so_last_ramp_up_time_bfad_itnim_s_63328 last_ramp_up_time bfad_itnim_s 0 63328 NULL
146634 +disable_so_timeout_vardecl_xen_wdt_c_63339 timeout vardecl_xen_wdt.c 0 63339 NULL nohasharray
146635 +disable_so_padlock_sha_export_fndecl_63339 padlock_sha_export fndecl 0 63339 &disable_so_timeout_vardecl_xen_wdt_c_63339
146636 +disable_so_mt9t112_set_pll_dividers_fndecl_63341 mt9t112_set_pll_dividers fndecl 2-3-4-5-6-7-8-9-10-0 63341 NULL
146637 +disable_so_uv_cpu_to_pnode_fndecl_63343 uv_cpu_to_pnode fndecl 0 63343 NULL
146638 +disable_so_gsc_runtime_resume_fndecl_63355 gsc_runtime_resume fndecl 0 63355 NULL
146639 +disable_so_pci_bus_find_capability_fndecl_63357 pci_bus_find_capability fndecl 0-2 63357 NULL
146640 +disable_so_addr_af9013_reg_bit_63363 addr af9013_reg_bit 0 63363 NULL
146641 +disable_so_ath5k_eeprom_bin2freq_fndecl_63364 ath5k_eeprom_bin2freq fndecl 0-2 63364 NULL
146642 +disable_so_sd_mtime_stat_data_63370 sd_mtime stat_data 0 63370 NULL
146643 +disable_so_next_hscb_busaddr_hardware_scb_63375 next_hscb_busaddr hardware_scb 0 63375 NULL nohasharray
146644 +disable_so_cpufreq_set_policy_fndecl_63375 cpufreq_set_policy fndecl 0 63375 &disable_so_next_hscb_busaddr_hardware_scb_63375
146645 +disable_so_cache_tsc_vardecl_max8925_core_c_63377 cache_tsc vardecl_max8925-core.c 0 63377 NULL
146646 +disable_so_xtime_remainder_timekeeper_63380 xtime_remainder timekeeper 0 63380 NULL
146647 +disable_so_st_uid___old_kernel_stat_63381 st_uid __old_kernel_stat 0 63381 NULL
146648 +disable_so_timeout_b_tpm_vendor_specific_63382 timeout_b tpm_vendor_specific 0 63382 NULL
146649 +disable_so_vol_bit_shift_anatop_regulator_63384 vol_bit_shift anatop_regulator 0 63384 NULL
146650 +disable_so_msr_offset_intel_uncore_type_63385 msr_offset intel_uncore_type 0 63385 NULL
146651 +disable_so_random_write_fndecl_63387 random_write fndecl 0-3 63387 NULL
146652 +disable_so_bcma_chipco_watchdog_timer_set_ms_wdt_fndecl_63389 bcma_chipco_watchdog_timer_set_ms_wdt fndecl 2-0 63389 NULL
146653 +disable_so__div_round_closest_fndecl_63400 _div_round_closest fndecl 0-3-2 63400 NULL
146654 +disable_so_acpi_ut_strtoul64_fndecl_63410 acpi_ut_strtoul64 fndecl 0 63410 NULL
146655 +disable_so_alarm_time_xgene_rtc_dev_63411 alarm_time xgene_rtc_dev 0 63411 NULL nohasharray
146656 +disable_so_dynamic_ps_timeout_ieee80211_conf_63411 dynamic_ps_timeout ieee80211_conf 0 63411 &disable_so_alarm_time_xgene_rtc_dev_63411 nohasharray
146657 +disable_so_split_timeout_cycles_fw_card_63411 split_timeout_cycles fw_card 0 63411 &disable_so_dynamic_ps_timeout_ieee80211_conf_63411
146658 +disable_so_bitstream_get_bits_fndecl_63423 bitstream_get_bits fndecl 0-3 63423 NULL
146659 +disable_so_tw_timeout_inet_timewait_sock_63424 tw_timeout inet_timewait_sock 0 63424 NULL
146660 +disable_so_drbg_kcapi_hash_fndecl_63433 drbg_kcapi_hash fndecl 0 63433 NULL
146661 +disable_so_wait_for_completion_interruptible_fndecl_63448 wait_for_completion_interruptible fndecl 0 63448 NULL
146662 +disable_so_sys_clock_nanosleep_fndecl_63449 sys_clock_nanosleep fndecl 1 63449 NULL
146663 +disable_so_nouveau_hw_get_clock_fndecl_63456 nouveau_hw_get_clock fndecl 0-2 63456 NULL
146664 +disable_so_nilfs_btree_propagate_gc_fndecl_63460 nilfs_btree_propagate_gc fndecl 0 63460 NULL
146665 +disable_so_crypto_xcbc_module_init_fndecl_63471 crypto_xcbc_module_init fndecl 0 63471 NULL
146666 +disable_so_amradio_set_freq_fndecl_63479 amradio_set_freq fndecl 0-2 63479 NULL
146667 +disable_so_task_getpgid_security_operations_63489 task_getpgid security_operations 0 63489 NULL nohasharray
146668 +disable_so_crypto_register_akcipher_fndecl_63489 crypto_register_akcipher fndecl 0 63489 &disable_so_task_getpgid_security_operations_63489
146669 +disable_so_netxen_nic_map_indirect_address_128M_fndecl_63490 netxen_nic_map_indirect_address_128M fndecl 2 63490 NULL
146670 +disable_so_vnic_intr_coalescing_timer_set_fndecl_63494 vnic_intr_coalescing_timer_set fndecl 2 63494 NULL
146671 +disable_so_chipset_settings_chipset_bus_clock_list_entry_63497 chipset_settings chipset_bus_clock_list_entry 0 63497 NULL
146672 +disable_so_new_cycle_state_xhci_dequeue_state_63499 new_cycle_state xhci_dequeue_state 0 63499 NULL
146673 +disable_so_radeon_legacy_set_engine_clock_fndecl_63512 radeon_legacy_set_engine_clock fndecl 2 63512 NULL
146674 +disable_so_addr___ctrl_63513 addr __ctrl 0 63513 NULL
146675 +disable_so_asix_get_phy_addr_fndecl_63534 asix_get_phy_addr fndecl 0 63534 NULL
146676 +disable_so_time_in_queue_dm_stat_percpu_63541 time_in_queue dm_stat_percpu 0 63541 NULL
146677 +disable_so_ufshcd_pltfrm_runtime_suspend_fndecl_63543 ufshcd_pltfrm_runtime_suspend fndecl 0 63543 NULL
146678 +disable_so_spu_port_delay_if_spi_card_63548 spu_port_delay if_spi_card 0 63548 NULL nohasharray
146679 +disable_so_cs_cpufreq_governor_dbs_fndecl_63548 cs_cpufreq_governor_dbs fndecl 0 63548 &disable_so_spu_port_delay_if_spi_card_63548
146680 +disable_so_type_ceph_crypto_key_63565 type ceph_crypto_key 0 63565 NULL
146681 +disable_so_bus_settle_time_blogic_adapter_63575 bus_settle_time blogic_adapter 0 63575 NULL
146682 +disable_so_ref_divider_aty128_constants_63576 ref_divider aty128_constants 0 63576 NULL
146683 +disable_so_remote_qpn_cm_timewait_info_63581 remote_qpn cm_timewait_info 0 63581 NULL
146684 +disable_so_boot_time_fc_lport_63585 boot_time fc_lport 0 63585 NULL
146685 +disable_so_imx_phy_reg_addressing_fndecl_63588 imx_phy_reg_addressing fndecl 0 63588 NULL
146686 +disable_so_irq_set_irq_type_fndecl_63590 irq_set_irq_type fndecl 2-1 63590 NULL
146687 +disable_so_appl_ptr_snd_rawmidi_runtime_63609 appl_ptr snd_rawmidi_runtime 0 63609 NULL
146688 +disable_so_snd_hdac_regmap_write_raw_fndecl_63613 snd_hdac_regmap_write_raw fndecl 0-3-2 63613 NULL
146689 +disable_so_control_addr_qla82xx_md_entry_cache_63615 control_addr qla82xx_md_entry_cache 0 63615 NULL
146690 +disable_so_nla_put_ipaddr6_fndecl_63618 nla_put_ipaddr6 fndecl 0 63618 NULL
146691 +disable_so_da9052_wdt_set_timeout_fndecl_63621 da9052_wdt_set_timeout fndecl 2-0 63621 NULL
146692 +disable_so_cstime_signal_struct_63629 cstime signal_struct 0 63629 NULL
146693 +disable_so_dm_region_hash_create_fndecl_63649 dm_region_hash_create fndecl 5-8-9 63649 NULL
146694 +disable_so_krng_get_random_fndecl_63655 krng_get_random fndecl 3 63655 NULL
146695 +disable_so_r9701_get_datetime_fndecl_63665 r9701_get_datetime fndecl 0 63665 NULL
146696 +disable_so_crypto_rfc3686_crypt_fndecl_63668 crypto_rfc3686_crypt fndecl 0 63668 NULL
146697 +disable_so_xen_late_init_mcelog_fndecl_63669 xen_late_init_mcelog fndecl 0 63669 NULL
146698 +disable_so_prot_res_gid_63673 prot res_gid 0 63673 NULL
146699 +disable_so_ext3_valid_block_bitmap_fndecl_63688 ext3_valid_block_bitmap fndecl 3 63688 NULL
146700 +disable_so_smt_timer_start_fndecl_63691 smt_timer_start fndecl 3 63691 NULL nohasharray
146701 +disable_so_port_tomoyo_inet_addr_info_63691 port tomoyo_inet_addr_info 0 63691 &disable_so_smt_timer_start_fndecl_63691
146702 +disable_so_generic_check_addressable_fndecl_63696 generic_check_addressable fndecl 1-2 63696 NULL nohasharray
146703 +disable_so___check_object_size_fndecl_63696 __check_object_size fndecl 2 63696 &disable_so_generic_check_addressable_fndecl_63696
146704 +disable_so_r820t_sleep_fndecl_63717 r820t_sleep fndecl 0 63717 NULL
146705 +disable_so_lgdt3305_read_signal_strength_fndecl_63720 lgdt3305_read_signal_strength fndecl 0 63720 NULL
146706 +disable_so_wl1251_acx_sleep_auth_fndecl_63727 wl1251_acx_sleep_auth fndecl 0 63727 NULL
146707 +disable_so_clk_out_div_ts2020_priv_63728 clk_out_div ts2020_priv 0 63728 NULL
146708 +disable_so_sys_clock_adjtime_fndecl_63736 sys_clock_adjtime fndecl 1 63736 NULL
146709 +disable_so_radio_addr_cx88_board_63745 radio_addr cx88_board 0 63745 NULL
146710 +disable_so_input_print_bitmap_fndecl_63755 input_print_bitmap fndecl 0-2 63755 NULL
146711 +disable_so_memstick_set_rw_addr_fndecl_63757 memstick_set_rw_addr fndecl 0 63757 NULL
146712 +disable_so_simple_strtoll_fndecl_63758 simple_strtoll fndecl 0 63758 NULL
146713 +disable_so___mv88e6xxx_read_addr_fndecl_63766 __mv88e6xxx_read_addr fndecl 0 63766 NULL
146714 +disable_so_nf_conntrack_timeout_init_fndecl_63771 nf_conntrack_timeout_init fndecl 0 63771 NULL
146715 +disable_so_ob_baseaddr_h_mvumi_hs_page4_63775 ob_baseaddr_h mvumi_hs_page4 0 63775 NULL
146716 +disable_so_stored_addr_hi_amd_iommu_63784 stored_addr_hi amd_iommu 0 63784 NULL
146717 +disable_so_HSyncEnd_xtimings_63785 HSyncEnd xtimings 0 63785 NULL
146718 +disable_so_addr_h_xfer_desc_63789 addr_h xfer_desc 0 63789 NULL
146719 +disable_so_i2c_address_stb6000_priv_63790 i2c_address stb6000_priv 0 63790 NULL
146720 +disable_so_runtime_expires_cfs_bandwidth_63800 runtime_expires cfs_bandwidth 0 63800 NULL
146721 +disable_so_account_steal_time_fndecl_63806 account_steal_time fndecl 1 63806 NULL
146722 +disable_so_sleep_max_sched_statistics_63826 sleep_max sched_statistics 0 63826 NULL
146723 +disable_so_usecs_to_jiffies_fndecl_63832 usecs_to_jiffies fndecl 0-1 63832 NULL
146724 +disable_so_dsp_iram_offset_sst_addr_63833 dsp_iram_offset sst_addr 0 63833 NULL
146725 +disable_so_central_freq_skl_wrpll_params_63836 central_freq skl_wrpll_params 0 63836 NULL
146726 +disable_so_bitmap_release_region_fndecl_63837 bitmap_release_region fndecl 2-3 63837 NULL
146727 +disable_so_dx_hack_hash_signed_fndecl_63847 dx_hack_hash_signed fndecl 0-2 63847 NULL
146728 +disable_so_qhead_snd_timer_user_63855 qhead snd_timer_user 0 63855 NULL
146729 +disable_so_table1_addr_ipw2100_ordinals_63856 table1_addr ipw2100_ordinals 0 63856 NULL
146730 +disable_so_dec_cd_paddr_qat_alg_aead_ctx_63860 dec_cd_paddr qat_alg_aead_ctx 0 63860 NULL
146731 +disable_so_ppll_div_3_radeon_regs_63862 ppll_div_3 radeon_regs 0 63862 NULL
146732 +disable_so_sys_addr_to_input_addr_fndecl_63863 sys_addr_to_input_addr fndecl 0-2 63863 NULL
146733 +disable_so_dma_rx_timeout_lpuart_port_63878 dma_rx_timeout lpuart_port 0 63878 NULL
146734 +disable_so_dma_addr_t4_rq_63886 dma_addr t4_rq 0 63886 NULL
146735 +disable_so_radeon_semaphore_emit_signal_fndecl_63895 radeon_semaphore_emit_signal fndecl 2 63895 NULL
146736 +disable_so_probe_timeout_ieee80211_if_managed_63910 probe_timeout ieee80211_if_managed 0 63910 NULL
146737 +disable_so_mthca_MAD_IFC_fndecl_63923 mthca_MAD_IFC fndecl 4-0 63923 NULL
146738 +disable_so_get_strength_time_mb86a20s_state_63926 get_strength_time mb86a20s_state 0 63926 NULL
146739 +disable_so_rx_frequency_wl1273_device_63933 rx_frequency wl1273_device 0 63933 NULL nohasharray
146740 +disable_so_arcmsr_module_init_fndecl_63933 arcmsr_module_init fndecl 0 63933 &disable_so_rx_frequency_wl1273_device_63933
146741 +disable_so_timeout_vardecl_alim1535_wdt_c_63935 timeout vardecl_alim1535_wdt.c 0 63935 NULL
146742 +disable_so_query_dv_timings_size_vivid_dev_63943 query_dv_timings_size vivid_dev 0 63943 NULL
146743 +disable_so_nf_nat_sdp_addr_fndecl_63949 nf_nat_sdp_addr fndecl 2-3 63949 NULL
146744 +disable_so_shash_finup_unaligned_fndecl_63955 shash_finup_unaligned fndecl 0-3 63955 NULL
146745 +disable_so_rdmsr_on_cpu_fndecl_63956 rdmsr_on_cpu fndecl 0-1 63956 NULL
146746 +disable_so_qlge_set_mac_address_fndecl_63968 qlge_set_mac_address fndecl 0 63968 NULL
146747 +disable_so_config_ipaddr_qlcnic_nic_template_63973 config_ipaddr qlcnic_nic_template 2 63973 NULL
146748 +disable_so_timer_enable_snd_opl3_63986 timer_enable snd_opl3 0 63986 NULL
146749 +disable_so_virtio16_to_cpu_fndecl_63994 virtio16_to_cpu fndecl 0-2 63994 NULL
146750 +disable_so_ecryptfs_init_crypto_fndecl_63995 ecryptfs_init_crypto fndecl 0 63995 NULL
146751 +disable_so_address_ccp_dma_info_64001 address ccp_dma_info 0 64001 NULL
146752 +disable_so_rx_packet_ring_addr_acx_data_path_params_resp_64002 rx_packet_ring_addr acx_data_path_params_resp 0 64002 NULL nohasharray
146753 +disable_so_cfg80211_wext_siwfreq_fndecl_64002 cfg80211_wext_siwfreq fndecl 0 64002 &disable_so_rx_packet_ring_addr_acx_data_path_params_resp_64002
146754 +disable_so_settime_security_operations_64006 settime security_operations 0 64006 NULL nohasharray
146755 +disable_so_SYSC_timerfd_create_fndecl_64006 SYSC_timerfd_create fndecl 2 64006 &disable_so_settime_security_operations_64006
146756 +disable_so_cryptd_hash_setkey_fndecl_64014 cryptd_hash_setkey fndecl 0-3 64014 NULL
146757 +disable_so_irq_net_device_64015 irq net_device 0 64015 NULL
146758 +disable_so_sysfs_show_available_clocksources_fndecl_64024 sysfs_show_available_clocksources fndecl 0 64024 NULL
146759 +disable_so_s_frequency_v4l2_subdev_tuner_ops_64037 s_frequency v4l2_subdev_tuner_ops 0 64037 NULL
146760 +disable_so_tcp_v6_md5_hash_pseudoheader_fndecl_64051 tcp_v6_md5_hash_pseudoheader fndecl 4 64051 NULL
146761 +disable_so_ieee80211_queue_delayed_work_fndecl_64056 ieee80211_queue_delayed_work fndecl 3 64056 NULL
146762 +disable_so_rtc_set_time_fndecl_64057 rtc_set_time fndecl 0 64057 NULL
146763 +disable_so_addr_i2c_msg_64074 addr i2c_msg 0 64074 NULL
146764 +disable_so_cea_mode_alternate_clock_fndecl_64078 cea_mode_alternate_clock fndecl 0 64078 NULL
146765 +disable_so_cfreq_esp_64080 cfreq esp 0 64080 NULL
146766 +disable_so___irq_get_desc_lock_fndecl_64081 __irq_get_desc_lock fndecl 1 64081 NULL
146767 +disable_so_pticks_snd_timer_instance_64084 pticks snd_timer_instance 0 64084 NULL
146768 +disable_so_ip6addrlbl_get_fndecl_64092 ip6addrlbl_get fndecl 0 64092 NULL nohasharray
146769 +disable_so_ocfs2_desc_bitmap_to_cluster_off_fndecl_64092 ocfs2_desc_bitmap_to_cluster_off fndecl 0-2-3 64092 &disable_so_ip6addrlbl_get_fndecl_64092
146770 +disable_so_nilfs_btree_commit_convert_and_insert_fndecl_64095 nilfs_btree_commit_convert_and_insert fndecl 2-6 64095 NULL
146771 +disable_so_prandom_u32_fndecl_64118 prandom_u32 fndecl 0 64118 NULL
146772 +disable_so_mask_ds1685_rtc_time_regs_64121 mask ds1685_rtc_time_regs 0 64121 NULL
146773 +disable_so_ic_servaddr_vardecl_64122 ic_servaddr vardecl 0 64122 NULL
146774 +disable_so_hashval2_0_rx_pkt_hdr1_64124 hashval2_0 rx_pkt_hdr1 0 64124 NULL
146775 +disable_so_xfrm_addr_equal_fndecl_64155 xfrm_addr_equal fndecl 3 64155 NULL
146776 +disable_so_cq_addr_hi_fcoe_kwqe_conn_offload2_64157 cq_addr_hi fcoe_kwqe_conn_offload2 0 64157 NULL
146777 +disable_so_rq_tmo_jiffies_srp_target_port_64158 rq_tmo_jiffies srp_target_port 0 64158 NULL
146778 +disable_so_xen_sysfs_uuid_init_fndecl_64160 xen_sysfs_uuid_init fndecl 0 64160 NULL
146779 +disable_so___dm_stat_init_temporary_percpu_totals_fndecl_64162 __dm_stat_init_temporary_percpu_totals fndecl 3 64162 NULL
146780 +disable_so_pcxhr_set_clock_fndecl_64184 pcxhr_set_clock fndecl 2-0 64184 NULL
146781 +disable_so_bitmap_endwrite_fndecl_64188 bitmap_endwrite fndecl 2-3 64188 NULL
146782 +disable_so_pages_bitmap_counts_64197 pages bitmap_counts 0 64197 NULL
146783 +disable_so_base_address_dmar_rmrr_unit_64199 base_address dmar_rmrr_unit 0 64199 NULL
146784 +disable_so_udp_conn_schedule_fndecl_64203 udp_conn_schedule fndecl 1 64203 NULL
146785 +disable_so_max_timebase_img_pwm_soc_data_64210 max_timebase img_pwm_soc_data 0 64210 NULL
146786 +disable_so_cycles_at_suspend_vardecl_timekeeping_c_64211 cycles_at_suspend vardecl_timekeeping.c 0 64211 NULL nohasharray
146787 +disable_so_get_unmapped_area_fndecl_64211 get_unmapped_area fndecl 0-2-4-5 64211 &disable_so_cycles_at_suspend_vardecl_timekeeping_c_64211
146788 +disable_so_addr_psb_pipe_64215 addr psb_pipe 0 64215 NULL
146789 +disable_so_acpi_subsys_runtime_suspend_fndecl_64232 acpi_subsys_runtime_suspend fndecl 0 64232 NULL
146790 +disable_so_pci_bus_read_config_word_fndecl_64248 pci_bus_read_config_word fndecl 0-2-3 64248 NULL
146791 +disable_so_last_rx_timestamp_igb_adapter_64249 last_rx_timestamp igb_adapter 0 64249 NULL
146792 +disable_so_snd_timer_user_ioctl_compat_fndecl_64250 snd_timer_user_ioctl_compat fndecl 0 64250 NULL
146793 +disable_so_tag_reg_addr_qla82xx_md_entry_cache_64251 tag_reg_addr qla82xx_md_entry_cache 0 64251 NULL
146794 +disable_so_cond_wait_interruptible_timeout_irqrestore_fndecl_64253 cond_wait_interruptible_timeout_irqrestore fndecl 2-0 64253 NULL
146795 +disable_so_signr_usbdevfs_disconnectsignal32_64254 signr usbdevfs_disconnectsignal32 0 64254 NULL
146796 +disable_so_inet6_addr_del_fndecl_64255 inet6_addr_del fndecl 0-2-5-3 64255 NULL
146797 +disable_so_pci_quatech_clock_fndecl_64264 pci_quatech_clock fndecl 0 64264 NULL nohasharray
146798 +disable_so_crypto_null_mod_init_fndecl_64264 crypto_null_mod_init fndecl 0 64264 &disable_so_pci_quatech_clock_fndecl_64264
146799 +disable_so_kvm_write_wall_clock_fndecl_64267 kvm_write_wall_clock fndecl 2 64267 NULL
146800 +disable_so_smk_write_netlbladdr_fndecl_64270 smk_write_netlbladdr fndecl 3 64270 NULL
146801 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_fndecl_64272 iscsi_nacl_attrib_show_dataout_timeout fndecl 0 64272 NULL
146802 +disable_so_sched_setscheduler_nocheck_fndecl_64274 sched_setscheduler_nocheck fndecl 2-0 64274 NULL
146803 +disable_so_target_stat_scsi_auth_intr_show_attr_creation_time_fndecl_64275 target_stat_scsi_auth_intr_show_attr_creation_time fndecl 0 64275 NULL
146804 +disable_so_dx_hack_hash_unsigned_fndecl_64277 dx_hack_hash_unsigned fndecl 0-2 64277 NULL
146805 +disable_so_xsdt_physical_address_acpi_table_rsdp_64302 xsdt_physical_address acpi_table_rsdp 0 64302 NULL
146806 +disable_so_timeout_watchdog_device_64303 timeout watchdog_device 0 64303 NULL
146807 +disable_so_crypto_shash_digest_fndecl_64307 crypto_shash_digest fndecl 0-3 64307 NULL
146808 +disable_so_jiffies_ati_remote2_64334 jiffies ati_remote2 0 64334 NULL
146809 +disable_so_target_stat_scsi_lu_show_attr_creation_time_fndecl_64336 target_stat_scsi_lu_show_attr_creation_time fndecl 0 64336 NULL
146810 +disable_so_intel_increase_pllclock_fndecl_64342 intel_increase_pllclock fndecl 2 64342 NULL
146811 +disable_so_wm8350_rtc_settime_fndecl_64353 wm8350_rtc_settime fndecl 0 64353 NULL
146812 +disable_so_saa711x_s_crystal_freq_fndecl_64358 saa711x_s_crystal_freq fndecl 2 64358 NULL
146813 +disable_so_get_div_fndecl_64359 get_div fndecl 0 64359 NULL
146814 +disable_so_dln2_spi_runtime_resume_fndecl_64364 dln2_spi_runtime_resume fndecl 0 64364 NULL
146815 +disable_so_register_address_fndecl_64366 register_address fndecl 0-2 64366 NULL
146816 +disable_so_ipath_guid_ipath_devdata_64367 ipath_guid ipath_devdata 0 64367 NULL
146817 +disable_so_dma_address_edgeport_port_64376 dma_address edgeport_port 0 64376 NULL
146818 +disable_so_tlb_rd_addr_vlv_s0ix_state_64377 tlb_rd_addr vlv_s0ix_state 0 64377 NULL
146819 +disable_so_br_mdb_rehash_fndecl_64384 br_mdb_rehash fndecl 2 64384 NULL
146820 +disable_so_irq_ti_tscadc_dev_64390 irq ti_tscadc_dev 0 64390 NULL
146821 +disable_so_rh_hash_fndecl_64392 rh_hash fndecl 0-2 64392 NULL
146822 +disable_so_addr_Vmxnet3_RxDesc_64395 addr Vmxnet3_RxDesc 0 64395 NULL
146823 +disable_so_wptr_gpu_addr_kernel_queue_64396 wptr_gpu_addr kernel_queue 0 64396 NULL
146824 +disable_so__regmap_raw_write_fndecl_64399 _regmap_raw_write fndecl 2-4-0 64399 NULL
146825 +disable_so_crypto_ahash_walk_first_fndecl_64405 crypto_ahash_walk_first fndecl 0 64405 NULL
146826 +disable_so_host_start_efx_ptp_timeset_64407 host_start efx_ptp_timeset 0 64407 NULL
146827 +disable_so___compat_put_timeval_fndecl_64422 __compat_put_timeval fndecl 0 64422 NULL nohasharray
146828 +disable_so_img_ir_timings_preprocess_fndecl_64422 img_ir_timings_preprocess fndecl 2 64422 &disable_so___compat_put_timeval_fndecl_64422
146829 +disable_so_addr_sst_byt_address_info_64439 addr sst_byt_address_info 0 64439 NULL nohasharray
146830 +disable_so_hashhi_smsc911x_data_64439 hashhi smsc911x_data 0 64439 &disable_so_addr_sst_byt_address_info_64439
146831 +disable_so_do_set_clk_freq_fndecl_64447 do_set_clk_freq fndecl 2 64447 NULL
146832 +disable_so_sctp_bind_addr_dup_fndecl_64448 sctp_bind_addr_dup fndecl 3 64448 NULL
146833 +disable_so_rtsc_init_fndecl_64458 rtsc_init fndecl 3-4 64458 NULL
146834 +disable_so_bg_inode_bitmap_ext3_group_desc_64471 bg_inode_bitmap ext3_group_desc 0 64471 NULL
146835 +disable_so_qla8044_wr_reg_indirect_fndecl_64475 qla8044_wr_reg_indirect fndecl 2-3 64475 NULL
146836 +disable_so_switch_time_wl18xx_cmd_channel_switch_64491 switch_time wl18xx_cmd_channel_switch 0 64491 NULL
146837 +disable_so_address_acpi_table_desc_64497 address acpi_table_desc 0 64497 NULL
146838 +disable_so_loading_timeout_vardecl_firmware_class_c_64498 loading_timeout vardecl_firmware_class.c 0 64498 NULL nohasharray
146839 +disable_so_ceph_aes_encrypt_fndecl_64498 ceph_aes_encrypt fndecl 2-6 64498 &disable_so_loading_timeout_vardecl_firmware_class_c_64498
146840 +disable_so_xfrm_state_addr_cmp_fndecl_64504 xfrm_state_addr_cmp fndecl 3 64504 NULL
146841 +disable_so_gc_timer_value___bridge_info_64506 gc_timer_value __bridge_info 0 64506 NULL
146842 +disable_so_x25_addr_aton_fndecl_64507 x25_addr_aton fndecl 0 64507 NULL
146843 +disable_so_nci_request_fndecl_64508 nci_request fndecl 0-4 64508 NULL
146844 +disable_so_ufs_get_de_namlen_fndecl_64510 ufs_get_de_namlen fndecl 0 64510 NULL
146845 +disable_so_crypto_blkcipher_encrypt_iv_fndecl_64517 crypto_blkcipher_encrypt_iv fndecl 0-4 64517 NULL
146846 +disable_so_bfa_fcs_lport_ns_gid_ft_response_fndecl_64527 bfa_fcs_lport_ns_gid_ft_response fndecl 4-5-6 64527 NULL
146847 +disable_so_memtype_devlog_memaddr16_devlog_fw_devlog_cmd_64529 memtype_devlog_memaddr16_devlog fw_devlog_cmd 0 64529 NULL
146848 +disable_so_osc_clock_deviation_drxd_state_64533 osc_clock_deviation drxd_state 0 64533 NULL
146849 +disable_so_mwl8k_cmd_del_mac_addr_fndecl_64540 mwl8k_cmd_del_mac_addr fndecl 0 64540 NULL
146850 +disable_so_sysctl_llc2_ack_timeout_vardecl_64541 sysctl_llc2_ack_timeout vardecl 0 64541 NULL
146851 +disable_so_dm_hash_init_fndecl_64547 dm_hash_init fndecl 0 64547 NULL
146852 +disable_so_setup_cluster_bitmap_fndecl_64549 setup_cluster_bitmap fndecl 4-5-6-7 64549 NULL
146853 +disable_so_regcache_rbtree_get_register_fndecl_64551 regcache_rbtree_get_register fndecl 0-3 64551 NULL
146854 +disable_so_seq_put_decimal_ll_fndecl_64554 seq_put_decimal_ll fndecl 3 64554 NULL
146855 +disable_so_do_timerfd_gettime_fndecl_64594 do_timerfd_gettime fndecl 1 64594 NULL
146856 +disable_so_ctrl_addr___cache_64596 ctrl_addr __cache 0 64596 NULL
146857 +disable_so_writepage_address_space_operations_64597 writepage address_space_operations 0 64597 NULL
146858 +disable_so_hcd_pci_runtime_suspend_fndecl_64602 hcd_pci_runtime_suspend fndecl 0 64602 NULL
146859 +disable_so_maxadj_clocksource_64615 maxadj clocksource 0 64615 NULL nohasharray
146860 +disable_so_delay_lms283gf05_seq_64615 delay lms283gf05_seq 0 64615 &disable_so_maxadj_clocksource_64615
146861 +disable_so_stv0900_get_lock_timeout_fndecl_64620 stv0900_get_lock_timeout fndecl 3 64620 NULL
146862 +disable_so_clk_div_tifm_sd_64621 clk_div tifm_sd 0 64621 NULL
146863 +disable_so_sleep_dvb_frontend_ops_64644 sleep dvb_frontend_ops 0 64644 NULL
146864 +disable_so_tuner_addr_au0828_board_64647 tuner_addr au0828_board 0 64647 NULL
146865 +disable_so_ds1305_get_time_fndecl_64652 ds1305_get_time fndecl 0 64652 NULL
146866 +disable_so_efx_soft_enable_interrupts_fndecl_64659 efx_soft_enable_interrupts fndecl 0 64659 NULL
146867 +disable_so_elements_bitmap_ip_64674 elements bitmap_ip 0 64674 NULL
146868 +disable_so_pcf8563_get_datetime_fndecl_64678 pcf8563_get_datetime fndecl 0 64678 NULL
146869 +disable_so_buf_dma_addr_slgt_desc_64694 buf_dma_addr slgt_desc 0 64694 NULL
146870 +disable_so_twl_aen_sync_time_fndecl_64703 twl_aen_sync_time fndecl 2 64703 NULL
146871 +disable_so_exit_signal_task_struct_64705 exit_signal task_struct 0 64705 NULL
146872 +disable_so_wm8804_runtime_resume_fndecl_64707 wm8804_runtime_resume fndecl 0 64707 NULL
146873 +disable_so_adis16334_set_freq_fndecl_64712 adis16334_set_freq fndecl 0 64712 NULL
146874 +disable_so_menf21bmc_wdt_settimeout_fndecl_64721 menf21bmc_wdt_settimeout fndecl 2-0 64721 NULL
146875 +disable_so_sec_pps_ktime_64728 sec pps_ktime 0 64728 NULL nohasharray
146876 +disable_so_virtual_tsc_khz_kvm_vcpu_arch_64728 virtual_tsc_khz kvm_vcpu_arch 0 64728 &disable_so_sec_pps_ktime_64728
146877 +disable_so_set_timeout_fndecl_64741 set_timeout fndecl 1 64741 NULL
146878 +disable_so_posix_timer_by_id_fndecl_64744 posix_timer_by_id fndecl 1 64744 NULL
146879 +disable_so_sclk_fb_div_pll_ct_64751 sclk_fb_div pll_ct 0 64751 NULL nohasharray
146880 +disable_so_add_msr_offset_fndecl_64751 add_msr_offset fndecl 1 64751 &disable_so_sclk_fb_div_pll_ct_64751
146881 +disable_so_il_get_active_dwell_time_fndecl_64753 il_get_active_dwell_time fndecl 0-3 64753 NULL
146882 +disable_so_crypto_cbc_decrypt_inplace_fndecl_64755 crypto_cbc_decrypt_inplace fndecl 0 64755 NULL
146883 +disable_so_undertime_cbq_class_64773 undertime cbq_class 0 64773 NULL nohasharray
146884 +disable_so_beacon_time_iwl_mac_data_ap_64773 beacon_time iwl_mac_data_ap 0 64773 &disable_so_undertime_cbq_class_64773
146885 +disable_so_gpio_to_desc_fndecl_64785 gpio_to_desc fndecl 1 64785 NULL nohasharray
146886 +disable_so_rtl8723_phy_calculate_bit_shift_fndecl_64785 rtl8723_phy_calculate_bit_shift fndecl 0-1 64785 &disable_so_gpio_to_desc_fndecl_64785
146887 +disable_so_cherryview_rps_rpe_freq_fndecl_64792 cherryview_rps_rpe_freq fndecl 0 64792 NULL
146888 +disable_so_phys_addr_matrox_device_64795 phys_addr matrox_device 0 64795 NULL
146889 +disable_so_iwl_mvm_time_event_send_add_fndecl_64805 iwl_mvm_time_event_send_add fndecl 0 64805 NULL nohasharray
146890 +disable_so_p_addr_ioat_pq_descriptor_64805 p_addr ioat_pq_descriptor 0 64805 &disable_so_iwl_mvm_time_event_send_add_fndecl_64805
146891 +disable_so_hub_set_address_fndecl_64806 hub_set_address fndecl 2 64806 NULL
146892 +disable_so_tegra_slink_runtime_resume_fndecl_64822 tegra_slink_runtime_resume fndecl 0 64822 NULL
146893 +disable_so_head_hashfn_fndecl_64825 head_hashfn fndecl 0 64825 NULL
146894 +disable_so_time_queue_snd_seq_client_port_64827 time_queue snd_seq_client_port 0 64827 NULL
146895 +disable_so_bitmap_clear_ll_fndecl_64837 bitmap_clear_ll fndecl 0-2-3 64837 NULL
146896 +disable_so_dma_beacon_response_time_ath9k_ops_config_64844 dma_beacon_response_time ath9k_ops_config 0 64844 NULL
146897 +disable_so_aic_cal_start_time_ath9k_hw_aic_64848 aic_cal_start_time ath9k_hw_aic 0 64848 NULL
146898 +disable_so_dram_freq_ast2300_dram_param_64872 dram_freq ast2300_dram_param 0 64872 NULL
146899 +disable_so_uv_rtc_unset_timer_fndecl_64879 uv_rtc_unset_timer fndecl 1 64879 NULL
146900 +disable_so_xclkpagefaultdelay_pll_ct_64883 xclkpagefaultdelay pll_ct 0 64883 NULL
146901 +disable_so_ipvs_mt_addrcmp_fndecl_64884 ipvs_mt_addrcmp fndecl 4 64884 NULL
146902 +disable_so_base_addr_adf_bar_64885 base_addr adf_bar 0 64885 NULL
146903 +disable_so_ctimensec_fuse_attr_64891 ctimensec fuse_attr 0 64891 NULL
146904 +disable_so_ims_pcu_ofn_bit_show_fndecl_64893 ims_pcu_ofn_bit_show fndecl 0 64893 NULL
146905 +disable_so_regvalue__pll_div_64897 regvalue _pll_div 0 64897 NULL
146906 +disable_so_mode_ata_timing_64902 mode ata_timing 0 64902 NULL
146907 +disable_so_size_mtrr_sentry_64908 size mtrr_sentry 0 64908 NULL
146908 +disable_so_i2c_addr_dibx000_i2c_master_64923 i2c_addr dibx000_i2c_master 0 64923 NULL
146909 +disable_so_go7007_usb_read_interrupt_fndecl_64943 go7007_usb_read_interrupt fndecl 0 64943 NULL
146910 +disable_so_db_page_addr_ocrdma_create_srq_uresp_64946 db_page_addr ocrdma_create_srq_uresp 0 64946 NULL
146911 +disable_so_resolution_snd_timer_hardware_64953 resolution snd_timer_hardware 0 64953 NULL
146912 +disable_so___virt_addr_valid_fndecl_64955 __virt_addr_valid fndecl 1 64955 NULL
146913 +disable_so_nilfs_btree_insert_fndecl_64974 nilfs_btree_insert fndecl 0-2 64974 NULL
146914 +disable_so_nearest_clock_vml_sys_64980 nearest_clock vml_sys 2-0 64980 NULL
146915 +disable_so_crypto_cmac_module_init_fndecl_64981 crypto_cmac_module_init fndecl 0 64981 NULL
146916 +disable_so_cx23885_set_freq_via_ops_fndecl_64991 cx23885_set_freq_via_ops fndecl 0 64991 NULL
146917 +disable_so_hfdiv_code_dib0090_pll_64992 hfdiv_code dib0090_pll 0 64992 NULL
146918 +disable_so_phonet_address_get_fndecl_65002 phonet_address_get fndecl 0-2 65002 NULL
146919 +disable_so_xtime_sec_timekeeper_65003 xtime_sec timekeeper 0 65003 NULL
146920 +disable_so_fll_outdiv__fll_div_65007 fll_outdiv _fll_div 0 65007 NULL
146921 +disable_so_spi_max_frequency_ti_qspi_65008 spi_max_frequency ti_qspi 0 65008 NULL
146922 +disable_so_switch_time_iwl6000_channel_switch_cmd_65010 switch_time iwl6000_channel_switch_cmd 0 65010 NULL
146923 +disable_so_timeout_usdhi6_host_65012 timeout usdhi6_host 0 65012 NULL nohasharray
146924 +disable_so_dirtied_time_when_inode_65012 dirtied_time_when inode 0 65012 &disable_so_timeout_usdhi6_host_65012
146925 +disable_so_sys_settimeofday_fndecl_65021 sys_settimeofday fndecl 0 65021 NULL
146926 +disable_so_dummy_clock_read_fndecl_65029 dummy_clock_read fndecl 0 65029 NULL
146927 +disable_so_bitmap_load_fndecl_65032 bitmap_load fndecl 0 65032 NULL
146928 +disable_so_crypto_register_aead_fndecl_65065 crypto_register_aead fndecl 0 65065 NULL
146929 +disable_so_clock_frequency_sc18is602_platform_data_65066 clock_frequency sc18is602_platform_data 0 65066 NULL
146930 +disable_so_zd1201_get_freq_fndecl_65079 zd1201_get_freq fndecl 0 65079 NULL
146931 +disable_so_test_bitmaps_fndecl_65080 test_bitmaps fndecl 0 65080 NULL
146932 +disable_so_before_ctime_nsec_nfsd4_change_info_65085 before_ctime_nsec nfsd4_change_info 0 65085 NULL
146933 +disable_so_evtbd_addr_lo_host_cmd_ds_pcie_details_65086 evtbd_addr_lo host_cmd_ds_pcie_details 0 65086 NULL
146934 +disable_so_cursor_addr_gma_crtc_65091 cursor_addr gma_crtc 0 65091 NULL
146935 +disable_so_atomic_set_property_drm_crtc_funcs_65096 atomic_set_property drm_crtc_funcs 0-4 65096 NULL
146936 +disable_so_add_timer_on_fndecl_65097 add_timer_on fndecl 2 65097 NULL
146937 +disable_so_ccp_sha_final_fndecl_65104 ccp_sha_final fndecl 0 65104 NULL
146938 +disable_so_ip_vs_dbg_addr_fndecl_65105 ip_vs_dbg_addr fndecl 1 65105 NULL
146939 +disable_so_gl_hold_time_gfs2_glock_65107 gl_hold_time gfs2_glock 0 65107 NULL
146940 +disable_so_crypto_shash_update_fndecl_65113 crypto_shash_update fndecl 0-3 65113 NULL
146941 +disable_so_sleep_wake_pci_platform_pm_ops_65121 sleep_wake pci_platform_pm_ops 0 65121 NULL
146942 +disable_so_snd_hdsp_info_clock_source_fndecl_65123 snd_hdsp_info_clock_source fndecl 0 65123 NULL
146943 +disable_so_trace_clock_global_fndecl_65145 trace_clock_global fndecl 0 65145 NULL
146944 +disable_so_timestamp_iwl_rx_phy_info_65153 timestamp iwl_rx_phy_info 0 65153 NULL
146945 +disable_so_d_btimer_xfs_disk_dquot_65155 d_btimer xfs_disk_dquot 0 65155 NULL
146946 +disable_so_mthca_mr_alloc_phys_fndecl_65161 mthca_mr_alloc_phys fndecl 7-5-2-4-0 65161 NULL
146947 +disable_so_var_to_timing_fndecl_65170 var_to_timing fndecl 2-3 65170 NULL
146948 +disable_so_p2div_pmu1_plltab_entry_65173 p2div pmu1_plltab_entry 0 65173 NULL nohasharray
146949 +disable_so_kszphy_ack_interrupt_fndecl_65173 kszphy_ack_interrupt fndecl 0 65173 &disable_so_p2div_pmu1_plltab_entry_65173
146950 +disable_so_timeout_mgsl_struct_65176 timeout mgsl_struct 0 65176 NULL nohasharray
146951 +disable_so_amd_uncore_attr_show_cpumask_fndecl_65176 amd_uncore_attr_show_cpumask fndecl 0 65176 &disable_so_timeout_mgsl_struct_65176
146952 +disable_so_padata_register_cpumask_notifier_fndecl_65178 padata_register_cpumask_notifier fndecl 0 65178 NULL
146953 +disable_so_bit_clear_fndecl_65181 bit_clear fndecl 3-4-5-6 65181 NULL
146954 +disable_so_addr_wil_fw_data_gw4_65184 addr wil_fw_data_gw4 0 65184 NULL
146955 +disable_so_phy_addr_skge_hw_65197 phy_addr skge_hw 0 65197 NULL
146956 +disable_so_xen_cpuid_xenpf_pcpuinfo_65200 xen_cpuid xenpf_pcpuinfo 0 65200 NULL
146957 +disable_so_vsync_v4l2_bt_timings_65208 vsync v4l2_bt_timings 0 65208 NULL nohasharray
146958 +disable_so_vmcb_msrpm_nested_state_65208 vmcb_msrpm nested_state 0 65208 &disable_so_vsync_v4l2_bt_timings_65208
146959 +disable_so_determine_event_timeout_rsi_hw_65216 determine_event_timeout rsi_hw 0 65216 NULL
146960 +disable_so_rax_kvm_regs_65218 rax kvm_regs 0 65218 NULL
146961 +disable_so_tms_utime_compat_tms_65221 tms_utime compat_tms 0 65221 NULL
146962 +disable_so_ip_vs_ftp_get_addrport_fndecl_65224 ip_vs_ftp_get_addrport fndecl 4 65224 NULL
146963 +disable_so_dclk_radeon_uvd_clock_voltage_dependency_entry_65235 dclk radeon_uvd_clock_voltage_dependency_entry 0 65235 NULL
146964 +disable_so_sin6_port_sockaddr_in6_65238 sin6_port sockaddr_in6 0 65238 NULL
146965 +disable_so_mtrr_del_page_fndecl_65239 mtrr_del_page fndecl 2-3 65239 NULL
146966 +disable_so_timestamp_sec_rt2x00dump_hdr_65245 timestamp_sec rt2x00dump_hdr 0 65245 NULL
146967 +disable_so_snd_interval_mulkdiv_fndecl_65264 snd_interval_mulkdiv fndecl 2 65264 NULL
146968 +disable_so_ktime_sec_timekeeper_65270 ktime_sec timekeeper 0 65270 NULL nohasharray
146969 +disable_so_pid_fcgs_gidft_resp_s_65270 pid fcgs_gidft_resp_s 0 65270 &disable_so_ktime_sec_timekeeper_65270
146970 +disable_so_mmc_set_signal_voltage_fndecl_65277 mmc_set_signal_voltage fndecl 0-3 65277 NULL
146971 +disable_so_addr_lo_pm4_query_status_65283 addr_lo pm4_query_status 0 65283 NULL
146972 +disable_so_wep_interrupt_read_fndecl_65287 wep_interrupt_read fndecl 3-0 65287 NULL
146973 +disable_so_timeout_qib_qp_65289 timeout qib_qp 0 65289 NULL
146974 +disable_so_cpuid_edx_fndecl_65291 cpuid_edx fndecl 0 65291 NULL
146975 +disable_so_q2_addr_high_nes_qp_context_65298 q2_addr_high nes_qp_context 0 65298 NULL
146976 +disable_so_addr_f7188x_sio_65304 addr f7188x_sio 0 65304 NULL
146977 +disable_so_st_mtime___old_kernel_stat_65306 st_mtime __old_kernel_stat 0 65306 NULL
146978 +disable_so_radeon_fence_wait_seq_timeout_fndecl_65307 radeon_fence_wait_seq_timeout fndecl 4-0 65307 NULL
146979 +disable_so_runtime_suspend_power_mode_cyapa_65317 runtime_suspend_power_mode cyapa 0 65317 NULL
146980 +disable_so_ieee80211_crypto_ccmp_encrypt_fndecl_65319 ieee80211_crypto_ccmp_encrypt fndecl 2 65319 NULL
146981 +disable_so_bbaddr_drm_i915_error_ring_65323 bbaddr drm_i915_error_ring 0 65323 NULL
146982 +disable_so_nmi_timer_stop_cpu_fndecl_65325 nmi_timer_stop_cpu fndecl 1 65325 NULL
146983 +disable_so_crypto_aead_encrypt_fndecl_65326 crypto_aead_encrypt fndecl 0 65326 NULL
146984 +disable_so_d_rtbtimer_fs_disk_quota_65332 d_rtbtimer fs_disk_quota 0 65332 NULL
146985 +disable_so_si_calculate_cac_wintime_fndecl_65336 si_calculate_cac_wintime fndecl 0 65336 NULL
146986 +disable_so_baseaddr_l_mvumi_sgl_65375 baseaddr_l mvumi_sgl 0 65375 NULL
146987 +disable_so_current_flash_timeout_max77693_led_device_65379 current_flash_timeout max77693_led_device 0 65379 NULL
146988 +disable_so_shunt_div_ina2xx_config_65385 shunt_div ina2xx_config 0 65385 NULL
146989 +disable_so_waiting_set_timer_fndecl_65387 waiting_set_timer fndecl 2 65387 NULL
146990 +disable_so_tms_cutime_tms_65396 tms_cutime tms 0 65396 NULL
146991 +disable_so_wl1271_acx_rx_msdu_life_time_fndecl_65398 wl1271_acx_rx_msdu_life_time fndecl 0 65398 NULL
146992 +disable_so_phy_addr_ax88172a_private_65403 phy_addr ax88172a_private 0 65403 NULL
146993 +disable_so_vm_exit_msr_store_addr_vmcs12_65409 vm_exit_msr_store_addr vmcs12 0 65409 NULL
146994 +disable_so_reorder_timeout_l2tp_session_cfg_65412 reorder_timeout l2tp_session_cfg 0 65412 NULL nohasharray
146995 +disable_so_bit_spin_lock_fndecl_65412 bit_spin_lock fndecl 1 65412 &disable_so_reorder_timeout_l2tp_session_cfg_65412
146996 +disable_so_data_address_mspro_param_register_65413 data_address mspro_param_register 0 65413 NULL
146997 +disable_so_addr_hwsq_reg_65417 addr hwsq_reg 0 65417 NULL
146998 +disable_so_nla_put_u64_fndecl_65419 nla_put_u64 fndecl 3-0 65419 NULL
146999 +disable_so_dma_addr_vb2_dc_buf_65420 dma_addr vb2_dc_buf 0 65420 NULL
147000 +disable_so_snd_timer_stop_fndecl_65441 snd_timer_stop fndecl 0 65441 NULL
147001 +disable_so_down_timeout_fndecl_65445 down_timeout fndecl 2-0 65445 NULL
147002 +disable_so_sys_timer_gettime_fndecl_65465 sys_timer_gettime fndecl 1 65465 NULL
147003 +disable_so_pnp_printf_fndecl_65468 pnp_printf fndecl 0 65468 NULL
147004 +disable_so_write_reg_cc770_priv_65479 write_reg cc770_priv 3 65479 NULL
147005 +disable_so_create_time_stateowner_id_65480 create_time stateowner_id 0 65480 NULL
147006 +disable_so_q2_addr_low_nes_qp_context_65481 q2_addr_low nes_qp_context 0 65481 NULL
147007 +disable_so_nvme_io_timeout_vardecl_65489 nvme_io_timeout vardecl 0 65489 NULL nohasharray
147008 +disable_so_index_nilfs_btree_readahead_info_65489 index nilfs_btree_readahead_info 0 65489 &disable_so_nvme_io_timeout_vardecl_65489
147009 +disable_so_i_uid_f2fs_inode_65496 i_uid f2fs_inode 0 65496 NULL
147010 +disable_so_enc_cd_paddr_qat_alg_aead_ctx_65505 enc_cd_paddr qat_alg_aead_ctx 0 65505 NULL
147011 +disable_so_s5m_rtc_set_time_fndecl_65518 s5m_rtc_set_time fndecl 0 65518 NULL
147012 +disable_so_addr_w83627hf_data_65526 addr w83627hf_data 0 65526 NULL
147013 +disable_so_si_pt_regs_65527 si pt_regs 0 65527 NULL
147014 +enable_so_rts_threshold_wiphy_15170 rts_threshold wiphy 0 15170 NULL
147015 +enable_so_value_iw_param_65472 value iw_param 0 65472 NULL
147016 +enable_so_value_acpi_object_integer_44755 value acpi_object_integer 0 44755 NULL
147017 +enable_so_idx_ieee80211_tx_rate_64646 idx ieee80211_tx_rate 0 64646 NULL
147018 +enable_so_rs_get_adjacent_rate_fndecl_28334 rs_get_adjacent_rate fndecl 0-2 28334 NULL
147019 +enable_so_index_rs_rate_53 index rs_rate 0 53 NULL
147020 +enable_so_l1_xfs_bmbt_rec_host_22094 l1 xfs_bmbt_rec_host 0 22094 NULL
147021 +enable_so_l0_xfs_bmbt_rec_host_34805 l0 xfs_bmbt_rec_host 0 34805 NULL
147022 +enable_so_max_scsi_cmds_megasas_instance_35835 max_scsi_cmds megasas_instance 0 35835 NULL
147023 +enable_so_throttlequeuedepth_megasas_instance_42316 throttlequeuedepth megasas_instance 0 42316 NULL
147024 +enable_so_max_fw_cmds_megasas_instance_53309 max_fw_cmds megasas_instance 0 53309 NULL
147025 +enable_so_max_num_sge_megasas_instance_55755 max_num_sge megasas_instance 0 55755 NULL
147026 +enable_so_max_sectors_per_req_megasas_instance_56408 max_sectors_per_req megasas_instance 0 56408 NULL
147027 +enable_so_max_mfi_cmds_megasas_instance_19731 max_mfi_cmds megasas_instance 0 19731 NULL
147028 +enable_so_read_fw_status_reg_megasas_instance_template_13572 read_fw_status_reg megasas_instance_template 0 13572 NULL
147029 +enable_so_eip_x86_emulate_ctxt_12354 eip x86_emulate_ctxt 0 12354 NULL
147030 +enable_so_next_rip_x86_instruction_info_56868 next_rip x86_instruction_info 0 56868 NULL
147031 +enable_so_exit_int_info_vmcb_control_area_18357 exit_int_info vmcb_control_area 0 18357 NULL
147032 +enable_so_exit_info_1_vmcb_control_area_20200 exit_info_1 vmcb_control_area 0 20200 NULL
147033 +enable_so_event_inj_vmcb_control_area_23434 event_inj vmcb_control_area 0 23434 NULL
147034 +enable_so_iopm_base_pa_vmcb_control_area_57998 iopm_base_pa vmcb_control_area 0 57998 NULL
147035 +enable_so_i_size_lo_ext4_inode_40153 i_size_lo ext4_inode 0 40153 NULL
147036 +enable_so_i_size_high_ext4_inode_18545 i_size_high ext4_inode 0 18545 NULL
147037 +enable_so_nr_kvm_queued_interrupt_34927 nr kvm_queued_interrupt 0 34927 NULL
147038 +enable_so_last_used_idx_vhost_virtqueue_40059 last_used_idx vhost_virtqueue 0 40059 NULL
147039 +enable_so___load_segment_descriptor_fndecl_30833 __load_segment_descriptor fndecl 2-4 30833 NULL
147040 +enable_so_resource_size_38580 resource_size nvkm_device_func 0 38580 NULL
147041 +enable_so_rate_n_flags_iwlagn_tx_resp_63401 rate_n_flags iwlagn_tx_resp 0 63401 NULL
147042 +enable_so_iwlagn_hwrate_to_mac80211_idx_fndecl_57485 iwlagn_hwrate_to_mac80211_idx fndecl 0-1 57485 NULL
147043 +enable_so_rate_n_flags_iwl_rx_phy_info_45542 rate_n_flags iwl_rx_phy_info 0 45542 NULL
147044 +enable_so_deh_location_reiserfs_de_head_7682 deh_location reiserfs_de_head 0 7682 NULL
147045 +enable_so_deh_offset_reiserfs_de_head_42314 deh_offset reiserfs_de_head 0 42314 NULL
147046 +enable_so_dsack_tcp_options_received_27706 dsack tcp_options_received 0 27706 NULL
147047 diff --git a/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
147048 new file mode 100644
147049 index 0000000..be9724d
147050 --- /dev/null
147051 +++ b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
147052 @@ -0,0 +1,103 @@
147053 +#!/bin/bash
147054 +
147055 +# This script generates the hash table (size_overflow_hash.h) for the size_overflow gcc plugin (size_overflow_plugin.c).
147056 +
147057 +header1="size_overflow_hash.h"
147058 +database="size_overflow_hash.data"
147059 +n=65536
147060 +hashtable_name="size_overflow_hash"
147061 +
147062 +usage() {
147063 +cat <<EOF
147064 +usage: $0 options
147065 +OPTIONS:
147066 + -h|--help help
147067 + -o header file
147068 + -d database file
147069 + -n hash array size
147070 + -s name of the hash table
147071 +EOF
147072 + return 0
147073 +}
147074 +
147075 +while true
147076 +do
147077 + case "$1" in
147078 + -h|--help) usage && exit 0;;
147079 + -n) n=$2; shift 2;;
147080 + -o) header1="$2"; shift 2;;
147081 + -d) database="$2"; shift 2;;
147082 + -s) hashtable_name="$2"; shift 2;;
147083 + --) shift 1; break ;;
147084 + *) break ;;
147085 + esac
147086 +done
147087 +
147088 +create_defines() {
147089 + for i in `seq 0 31`
147090 + do
147091 + echo -e "#define PARAM"$i" (1U << "$i")" >> "$header1"
147092 + done
147093 + echo >> "$header1"
147094 +}
147095 +
147096 +create_structs() {
147097 + rm -f "$header1"
147098 +
147099 + create_defines
147100 +
147101 + cat "$database" | while read data
147102 + do
147103 + data_array=($data)
147104 + struct_hash_name="${data_array[0]}"
147105 + funcn="${data_array[1]}"
147106 + context="${data_array[2]}"
147107 + params="${data_array[3]}"
147108 + next="${data_array[5]}"
147109 +
147110 + echo "const struct size_overflow_hash $struct_hash_name = {" >> "$header1"
147111 +
147112 + echo -e "\t.next\t= $next,\n\t.name\t= \"$funcn\",\n\t.context\t= \"$context\"," >> "$header1"
147113 + echo -en "\t.param\t= " >> "$header1"
147114 + line=
147115 + for param_num in ${params//-/ };
147116 + do
147117 + line="${line}PARAM"$param_num"|"
147118 + done
147119 +
147120 + echo -e "${line%?},\n};\n" >> "$header1"
147121 + done
147122 +}
147123 +
147124 +create_headers() {
147125 + echo "const struct size_overflow_hash * const $hashtable_name[$n] = {" >> "$header1"
147126 +}
147127 +
147128 +create_array_elements() {
147129 + index=0
147130 + grep -v "nohasharray" $database | sort -n -k 5 | while read data
147131 + do
147132 + data_array=($data)
147133 + i="${data_array[4]}"
147134 + hash="${data_array[0]}"
147135 + while [[ $index -lt $i ]]
147136 + do
147137 + echo -e "\t["$index"]\t= NULL," >> "$header1"
147138 + index=$(($index + 1))
147139 + done
147140 + index=$(($index + 1))
147141 + echo -e "\t["$i"]\t= &"$hash"," >> "$header1"
147142 + done
147143 + echo '};' >> $header1
147144 +}
147145 +
147146 +size_overflow_plugin_dir=`dirname $header1`
147147 +if [ "$size_overflow_plugin_dir" != '.' ]; then
147148 + mkdir -p "$size_overflow_plugin_dir" 2> /dev/null
147149 +fi
147150 +
147151 +create_structs
147152 +create_headers
147153 +create_array_elements
147154 +
147155 +exit 0
147156 diff --git a/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
147157 new file mode 100644
147158 index 0000000..cc20d48
147159 --- /dev/null
147160 +++ b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
147161 @@ -0,0 +1,416 @@
147162 +/*
147163 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
147164 + * Licensed under the GPL v2, or (at your option) v3
147165 + *
147166 + * Homepage:
147167 + * https://github.com/ephox-gcc-plugins/size_overflow
147168 + *
147169 + * Documentation:
147170 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
147171 + *
147172 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
147173 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
147174 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
147175 + *
147176 + * Usage:
147177 + * $ make
147178 + * $ make run
147179 + */
147180 +
147181 +#include "size_overflow.h"
147182 +
147183 +// Data for the size_overflow asm stmt
147184 +struct asm_data {
147185 + // call or return stmt with our attributes
147186 + gimple target_stmt;
147187 + // def_stmt of the marked arg
147188 + gimple def_stmt;
147189 + // size_overflow asm rhs
147190 + tree input;
147191 + // the output (lhs) of the size_overflow asm is the marked arg
147192 + tree output;
147193 + // marked arg number (0 for return values)
147194 + unsigned int argnum;
147195 + // intentional mark type
147196 + enum intentional_mark intentional_mark;
147197 +};
147198 +
147199 +static void __unused print_asm_data(struct asm_data *asm_data)
147200 +{
147201 + fprintf(stderr, "-----------------------\nprint_asm_data:\n");
147202 +
147203 + fprintf(stderr, "def_stmt\n");
147204 + debug_gimple_stmt(asm_data->def_stmt);
147205 + fprintf(stderr, "target_stmt\n");
147206 + debug_gimple_stmt(asm_data->target_stmt);
147207 + fprintf(stderr, "output\n");
147208 + debug_tree(asm_data->output);
147209 + fprintf(stderr, "input\n");
147210 + debug_tree(asm_data->input);
147211 +}
147212 +
147213 +static const char *convert_mark_to_str(enum intentional_mark mark)
147214 +{
147215 + switch (mark) {
147216 + case MARK_NO:
147217 + return OK_ASM_STR;
147218 + case MARK_YES:
147219 + return YES_ASM_STR;
147220 + case MARK_END_INTENTIONAL:
147221 + return END_INTENTIONAL_ASM_STR;
147222 + case MARK_TURN_OFF:
147223 + return TURN_OFF_ASM_STR;
147224 + }
147225 + gcc_unreachable();
147226 +}
147227 +
147228 +static char *create_asm_comment(struct asm_data *asm_data, const char *mark_str)
147229 +{
147230 + const char *fn_name;
147231 + char *asm_comment;
147232 + unsigned int len;
147233 +
147234 + if (gimple_code(asm_data->target_stmt) == GIMPLE_RETURN)
147235 + fn_name = DECL_NAME_POINTER(current_function_decl);
147236 + else
147237 + fn_name = DECL_NAME_POINTER(gimple_call_fndecl(asm_data->target_stmt));
147238 +
147239 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, asm_data->argnum);
147240 + gcc_assert(len > 0);
147241 +
147242 + return asm_comment;
147243 +}
147244 +
147245 +#if BUILDING_GCC_VERSION <= 4007
147246 +static VEC(tree, gc) *create_asm_io_list(tree string, tree io)
147247 +#else
147248 +static vec<tree, va_gc> *create_asm_io_list(tree string, tree io)
147249 +#endif
147250 +{
147251 + tree list;
147252 +#if BUILDING_GCC_VERSION <= 4007
147253 + VEC(tree, gc) *vec_list = NULL;
147254 +#else
147255 + vec<tree, va_gc> *vec_list = NULL;
147256 +#endif
147257 +
147258 + list = build_tree_list(NULL_TREE, string);
147259 + list = chainon(NULL_TREE, build_tree_list(list, io));
147260 +#if BUILDING_GCC_VERSION <= 4007
147261 + VEC_safe_push(tree, gc, vec_list, list);
147262 +#else
147263 + vec_safe_push(vec_list, list);
147264 +#endif
147265 + return vec_list;
147266 +}
147267 +
147268 +static void create_so_asm_stmt(struct asm_data *asm_data)
147269 +{
147270 + char *asm_comment;
147271 + const char *mark_str;
147272 + gasm *asm_stmt;
147273 + gimple_stmt_iterator gsi;
147274 + tree str_input, str_output;
147275 +#if BUILDING_GCC_VERSION <= 4007
147276 + VEC(tree, gc) *input = NULL, *output = NULL;
147277 +#else
147278 + vec<tree, va_gc> *input = NULL, *output = NULL;
147279 +#endif
147280 +
147281 + mark_str = convert_mark_to_str(asm_data->intentional_mark);
147282 + asm_comment = create_asm_comment(asm_data, mark_str);
147283 +
147284 + str_input = build_string(2, "0");
147285 + input = create_asm_io_list(str_input, asm_data->input);
147286 + str_output = build_string(4, "=rm");
147287 + output = create_asm_io_list(str_output, asm_data->output);
147288 +
147289 + asm_stmt = as_a_gasm(gimple_build_asm_vec(asm_comment, input, output, NULL, NULL));
147290 + gimple_asm_set_volatile(asm_stmt, true);
147291 +
147292 + gsi = gsi_for_stmt(asm_data->def_stmt);
147293 + gsi_insert_after(&gsi, asm_stmt, GSI_NEW_STMT);
147294 +
147295 + SSA_NAME_DEF_STMT(asm_data->output) = asm_stmt;
147296 +
147297 + free(asm_comment);
147298 +}
147299 +
147300 +static void check_size_overflow_asm(struct asm_data *asm_data)
147301 +{
147302 + enum intentional_mark old_intentional_mark = get_so_asm_type(asm_data->def_stmt);
147303 +
147304 + if (old_intentional_mark == asm_data->intentional_mark)
147305 + return;
147306 + if (asm_data->intentional_mark == MARK_NO)
147307 + return;
147308 +
147309 + print_intentional_mark(old_intentional_mark);
147310 + print_intentional_mark(asm_data->intentional_mark);
147311 + gcc_unreachable();
147312 +}
147313 +
147314 +static tree get_so_asm_output(struct asm_data *asm_data)
147315 +{
147316 + gimple stmt = asm_data->target_stmt;
147317 + unsigned int argnum = asm_data->argnum;
147318 +
147319 + switch (gimple_code(stmt)) {
147320 + case GIMPLE_RETURN:
147321 + gcc_assert(argnum == 0);
147322 + return gimple_return_retval(as_a_greturn(stmt));
147323 + case GIMPLE_CALL:
147324 + gcc_assert(argnum != 0);
147325 + gcc_assert(gimple_call_num_args(stmt) >= argnum);
147326 + return gimple_call_arg(stmt, argnum - 1);
147327 + default:
147328 + debug_gimple_stmt(stmt);
147329 + gcc_unreachable();
147330 + }
147331 +}
147332 +
147333 +static tree get_so_asm_input(struct asm_data *asm_data)
147334 +{
147335 + gassign *assign;
147336 + tree output_type, new_var;
147337 + gimple_stmt_iterator gsi;
147338 +
147339 + output_type = TREE_TYPE(asm_data->output);
147340 + new_var = create_new_var(output_type);
147341 +
147342 + assign = gimple_build_assign(new_var, asm_data->output);
147343 + gimple_assign_set_lhs(assign, make_ssa_name(new_var, assign));
147344 +
147345 + gsi = gsi_for_stmt(asm_data->target_stmt);
147346 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
147347 +
147348 + asm_data->def_stmt = assign;
147349 +
147350 + new_var = create_new_var(output_type);
147351 + asm_data->output = make_ssa_name(new_var, asm_data->target_stmt);
147352 +
147353 + return gimple_assign_lhs(assign);
147354 +}
147355 +
147356 +static void set_so_asm_input_target_stmt(struct asm_data *asm_data)
147357 +{
147358 + switch (gimple_code(asm_data->target_stmt)) {
147359 + case GIMPLE_CALL:
147360 + gimple_call_set_arg(asm_data->target_stmt, asm_data->argnum - 1, asm_data->output);
147361 + break;
147362 + case GIMPLE_RETURN:
147363 + gimple_return_set_retval(as_a_greturn(asm_data->target_stmt), asm_data->output);
147364 + break;
147365 + default:
147366 + debug_gimple_stmt(asm_data->target_stmt);
147367 + gcc_unreachable();
147368 + }
147369 +
147370 + update_stmt(asm_data->def_stmt);
147371 +}
147372 +
147373 +/* This is the gimple part of searching for a missing size_overflow attribute. If the intentional_overflow attribute type
147374 + * is of the right kind create the appropriate size_overflow asm stmts:
147375 + * __asm__("# size_overflow MARK_END_INTENTIONAL" : =rm" D.3344_8 : "0" cicus.4_16);
147376 + * __asm__("# size_overflow MARK_NO" : =rm" cicus.4_16 : "0" size_1(D));
147377 + */
147378 +static void insert_size_overflow_asm(gimple stmt, unsigned int argnum, enum intentional_mark intentional_mark)
147379 +{
147380 + struct asm_data asm_data;
147381 +
147382 + asm_data.target_stmt = stmt;
147383 + asm_data.argnum = argnum;
147384 + asm_data.intentional_mark = intentional_mark;
147385 +
147386 + asm_data.output = get_so_asm_output(&asm_data);
147387 + if (asm_data.output == NULL_TREE)
147388 + return;
147389 + if (is_gimple_constant(asm_data.output))
147390 + return;
147391 + if (skip_types(asm_data.output))
147392 + return;
147393 +
147394 + asm_data.def_stmt = get_def_stmt(asm_data.output);
147395 + if (is_size_overflow_asm(asm_data.def_stmt)) {
147396 + check_size_overflow_asm(&asm_data);
147397 + return;
147398 + }
147399 +
147400 + asm_data.input = get_so_asm_input(&asm_data);
147401 +
147402 + create_so_asm_stmt(&asm_data);
147403 + set_so_asm_input_target_stmt(&asm_data);
147404 +
147405 + update_stmt(asm_data.def_stmt);
147406 + update_stmt(asm_data.target_stmt);
147407 +}
147408 +
147409 +// Determine the correct arg index and arg and insert the asm stmt to mark the stmt.
147410 +static void insert_so_asm_by_so_attr(gimple stmt, unsigned int orig_argnum)
147411 +{
147412 + if (orig_argnum == 0 && gimple_code(stmt) == GIMPLE_RETURN) {
147413 + insert_size_overflow_asm(stmt, 0, MARK_NO);
147414 + return;
147415 + }
147416 +
147417 + if (orig_argnum != 0 && gimple_code(stmt) == GIMPLE_CALL)
147418 + insert_size_overflow_asm(stmt, orig_argnum, MARK_NO);
147419 +}
147420 +
147421 +// If a function arg or the return value is marked by the size_overflow attribute then set its index in the array.
147422 +static void set_argnum_attribute(const_tree attr, bool *argnums)
147423 +{
147424 + unsigned int argnum;
147425 + tree attr_value;
147426 +
147427 + gcc_assert(attr);
147428 + for (attr_value = TREE_VALUE(attr); attr_value; attr_value = TREE_CHAIN(attr_value)) {
147429 + argnum = (unsigned int)tree_to_uhwi(TREE_VALUE(attr_value));
147430 + argnums[argnum] = true;
147431 + }
147432 +}
147433 +
147434 +// Check whether the arguments are marked by the size_overflow attribute.
147435 +static void search_interesting_so_args(tree fndecl, bool *argnums)
147436 +{
147437 + const_tree attr;
147438 +
147439 + attr = get_attribute("size_overflow", fndecl);
147440 + if (attr)
147441 + set_argnum_attribute(attr, argnums);
147442 +}
147443 +
147444 +static enum intentional_mark handle_intentional_attr(gimple stmt, unsigned int argnum)
147445 +{
147446 + const_tree fndecl;
147447 + enum intentional_mark mark;
147448 +
147449 + mark = check_intentional_attribute(stmt, argnum);
147450 + if (mark == MARK_NO)
147451 + return MARK_NO;
147452 + if (gimple_code(stmt) == GIMPLE_RETURN)
147453 + fndecl = current_function_decl;
147454 + else
147455 + fndecl = gimple_call_fndecl(stmt);
147456 + if (fndecl == NULL_TREE && !get_size_overflow_hash_entry_tree(fndecl, argnum, DISABLE_SIZE_OVERFLOW))
147457 + return MARK_NO;
147458 + insert_size_overflow_asm(stmt, argnum, mark);
147459 + return mark;
147460 +}
147461 +
147462 +static void handle_size_overflow_attr_ret(greturn *stmt)
147463 +{
147464 + enum intentional_mark mark;
147465 + bool orig_argnums[MAX_PARAM + 1] = {false};
147466 +
147467 + search_interesting_so_args(get_orig_fndecl(current_function_decl), (bool *) &orig_argnums);
147468 +
147469 + mark = handle_intentional_attr(stmt, 0);
147470 + if (mark == MARK_NO && orig_argnums[0])
147471 + insert_so_asm_by_so_attr(stmt, 0);
147472 +}
147473 +
147474 +// If the argument(s) of the callee function are marked by an attribute then mark the call stmt with an asm stmt
147475 +static void handle_size_overflow_attr_call(gcall *stmt)
147476 +{
147477 + tree fndecl;
147478 + unsigned int argnum;
147479 + bool orig_argnums[MAX_PARAM + 1] = {false};
147480 +
147481 + fndecl = get_interesting_orig_fndecl_from_stmt(stmt);
147482 + if (fndecl == NULL_TREE)
147483 + return;
147484 + if (DECL_BUILT_IN(fndecl))
147485 + return;
147486 +
147487 + search_interesting_so_args(fndecl, (bool *) &orig_argnums);
147488 +
147489 + for (argnum = 1; argnum <= gimple_call_num_args(stmt); argnum++) {
147490 + enum intentional_mark mark = handle_intentional_attr(stmt, argnum);
147491 +
147492 + if (mark == MARK_NO && !is_vararg(fndecl, argnum) && orig_argnums[argnum])
147493 + insert_so_asm_by_so_attr(stmt, argnum);
147494 + }
147495 +}
147496 +
147497 +// Iterate over all the stmts and search for call stmts and mark them if they have size_overflow attribute
147498 +static unsigned int search_interesting_functions(void)
147499 +{
147500 + basic_block bb;
147501 +
147502 + FOR_EACH_BB_FN(bb, cfun) {
147503 + gimple_stmt_iterator gsi;
147504 +
147505 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
147506 + gimple stmt = gsi_stmt(gsi);
147507 +
147508 + if (is_gimple_call(stmt))
147509 + handle_size_overflow_attr_call(as_a_gcall(stmt));
147510 + else if (gimple_code(stmt) == GIMPLE_RETURN)
147511 + handle_size_overflow_attr_ret(as_a_greturn(stmt));
147512 + }
147513 + }
147514 + return 0;
147515 +}
147516 +
147517 +/*
147518 + * A lot of functions get inlined before the ipa passes so after the build_ssa gimple pass
147519 + * this pass inserts asm stmts to mark the interesting args
147520 + * that the ipa pass will detect and insert the size overflow checks for.
147521 + */
147522 +#if BUILDING_GCC_VERSION >= 4009
147523 +static const struct pass_data insert_size_overflow_asm_pass_data = {
147524 +#else
147525 +static struct gimple_opt_pass insert_size_overflow_asm_pass = {
147526 + .pass = {
147527 +#endif
147528 + .type = GIMPLE_PASS,
147529 + .name = "insert_size_overflow_asm",
147530 +#if BUILDING_GCC_VERSION >= 4008
147531 + .optinfo_flags = OPTGROUP_NONE,
147532 +#endif
147533 +#if BUILDING_GCC_VERSION >= 5000
147534 +#elif BUILDING_GCC_VERSION >= 4009
147535 + .has_gate = false,
147536 + .has_execute = true,
147537 +#else
147538 + .gate = NULL,
147539 + .execute = search_interesting_functions,
147540 + .sub = NULL,
147541 + .next = NULL,
147542 + .static_pass_number = 0,
147543 +#endif
147544 + .tv_id = TV_NONE,
147545 + .properties_required = PROP_cfg,
147546 + .properties_provided = 0,
147547 + .properties_destroyed = 0,
147548 + .todo_flags_start = 0,
147549 + .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
147550 +#if BUILDING_GCC_VERSION < 4009
147551 + }
147552 +#endif
147553 +};
147554 +
147555 +#if BUILDING_GCC_VERSION >= 4009
147556 +namespace {
147557 +class insert_size_overflow_asm_pass : public gimple_opt_pass {
147558 +public:
147559 + insert_size_overflow_asm_pass() : gimple_opt_pass(insert_size_overflow_asm_pass_data, g) {}
147560 +#if BUILDING_GCC_VERSION >= 5000
147561 + virtual unsigned int execute(function *) { return search_interesting_functions(); }
147562 +#else
147563 + unsigned int execute() { return search_interesting_functions(); }
147564 +#endif
147565 +};
147566 +}
147567 +
147568 +opt_pass *make_insert_size_overflow_asm_pass(void)
147569 +{
147570 + return new insert_size_overflow_asm_pass();
147571 +}
147572 +#else
147573 +struct opt_pass *make_insert_size_overflow_asm_pass(void)
147574 +{
147575 + return &insert_size_overflow_asm_pass.pass;
147576 +}
147577 +#endif
147578 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c b/tools/gcc/size_overflow_plugin/intentional_overflow.c
147579 new file mode 100644
147580 index 0000000..7d9135d
147581 --- /dev/null
147582 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
147583 @@ -0,0 +1,1032 @@
147584 +/*
147585 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
147586 + * Licensed under the GPL v2, or (at your option) v3
147587 + *
147588 + * Homepage:
147589 + * https://github.com/ephox-gcc-plugins/size_overflow
147590 + *
147591 + * Documentation:
147592 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
147593 + *
147594 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
147595 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
147596 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
147597 + *
147598 + * Usage:
147599 + * $ make
147600 + * $ make run
147601 + */
147602 +
147603 +#include "size_overflow.h"
147604 +
147605 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs);
147606 +
147607 +static const char *get_asm_string(const gasm *stmt)
147608 +{
147609 + if (stmt)
147610 + return gimple_asm_string(stmt);
147611 + return NULL;
147612 +}
147613 +
147614 +tree get_size_overflow_asm_input(const gasm *stmt)
147615 +{
147616 + gcc_assert(gimple_asm_ninputs(stmt) != 0);
147617 + return TREE_VALUE(gimple_asm_input_op(stmt, 0));
147618 +}
147619 +
147620 +bool is_size_overflow_insert_check_asm(const gasm *stmt)
147621 +{
147622 + const char *str;
147623 +
147624 + if (!is_size_overflow_asm(stmt))
147625 + return false;
147626 +
147627 + str = get_asm_string(stmt);
147628 + if (!str)
147629 + return false;
147630 + return !strncmp(str, OK_ASM_STR, sizeof(OK_ASM_STR) - 1);
147631 +}
147632 +
147633 +bool is_size_overflow_asm(const_gimple stmt)
147634 +{
147635 + const char *str;
147636 +
147637 + if (!stmt)
147638 + return false;
147639 + if (gimple_code(stmt) != GIMPLE_ASM)
147640 + return false;
147641 +
147642 + str = get_asm_string(as_a_const_gasm(stmt));
147643 + if (!str)
147644 + return false;
147645 + return !strncmp(str, SO_ASM_STR, sizeof(SO_ASM_STR) - 1);
147646 +}
147647 +
147648 +static bool is_size_overflow_intentional_asm_turn_off(const gasm *stmt)
147649 +{
147650 + const char *str;
147651 +
147652 + if (!is_size_overflow_asm(stmt))
147653 + return false;
147654 +
147655 + str = get_asm_string(stmt);
147656 + if (!str)
147657 + return false;
147658 + return !strncmp(str, TURN_OFF_ASM_STR, sizeof(TURN_OFF_ASM_STR) - 1);
147659 +}
147660 +
147661 +static bool is_size_overflow_intentional_asm_end(const gasm *stmt)
147662 +{
147663 + const char *str;
147664 +
147665 + if (!is_size_overflow_asm(stmt))
147666 + return false;
147667 +
147668 + str = get_asm_string(stmt);
147669 + if (!str)
147670 + return false;
147671 + return !strncmp(str, END_INTENTIONAL_ASM_STR, sizeof(END_INTENTIONAL_ASM_STR) - 1);
147672 +}
147673 +
147674 +/* Get the param of the intentional_overflow attribute.
147675 + * * 0: MARK_END_INTENTIONAL
147676 + * * 1..MAX_PARAM: MARK_YES
147677 + * * -1: MARK_TURN_OFF
147678 + */
147679 +static tree get_attribute_param(const_tree decl)
147680 +{
147681 + const_tree attr;
147682 +
147683 + if (decl == NULL_TREE)
147684 + return NULL_TREE;
147685 +
147686 + attr = get_attribute("intentional_overflow", decl);
147687 + if (attr)
147688 + return TREE_VALUE(attr);
147689 + return NULL_TREE;
147690 +}
147691 +
147692 +// MARK_TURN_OFF
147693 +static bool is_turn_off_intentional_attr(const_tree decl)
147694 +{
147695 + const_tree param_head;
147696 +
147697 + param_head = get_attribute_param(decl);
147698 + if (param_head == NULL_TREE)
147699 + return false;
147700 +
147701 + if (tree_to_shwi(TREE_VALUE(param_head)) == -1)
147702 + return true;
147703 + return false;
147704 +}
147705 +
147706 +// MARK_END_INTENTIONAL
147707 +static bool is_end_intentional_intentional_attr(const_tree decl)
147708 +{
147709 + const_tree param_head;
147710 +
147711 + param_head = get_attribute_param(decl);
147712 + if (param_head == NULL_TREE)
147713 + return false;
147714 +
147715 + if (tree_to_shwi(TREE_VALUE(param_head)) == 0)
147716 + return true;
147717 + return false;
147718 +}
147719 +
147720 +// MARK_YES
147721 +static bool is_yes_intentional_attr(const_tree decl, unsigned int argnum)
147722 +{
147723 + tree param, param_head;
147724 +
147725 + if (argnum == 0)
147726 + return false;
147727 +
147728 + param_head = get_attribute_param(decl);
147729 + for (param = param_head; param; param = TREE_CHAIN(param)) {
147730 + int argval = tree_to_shwi(TREE_VALUE(param));
147731 +
147732 + if (argval <= 0)
147733 + continue;
147734 + if (argnum == (unsigned int)argval)
147735 + return true;
147736 + }
147737 + return false;
147738 +}
147739 +
147740 +static void print_missing_intentional(enum intentional_mark callee_attr, enum intentional_mark caller_attr, const_tree decl, unsigned int argnum)
147741 +{
147742 + const struct size_overflow_hash *hash;
147743 +// location_t loc;
147744 +
147745 + if (caller_attr == MARK_NO || caller_attr == MARK_END_INTENTIONAL || caller_attr == MARK_TURN_OFF)
147746 + return;
147747 +
147748 + if (callee_attr == MARK_END_INTENTIONAL || callee_attr == MARK_YES)
147749 + return;
147750 +
147751 + hash = get_size_overflow_hash_entry_tree(decl, argnum, SIZE_OVERFLOW);
147752 + if (!hash)
147753 + return;
147754 +
147755 +// !!!
147756 +// loc = DECL_SOURCE_LOCATION(decl);
147757 +// inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
147758 +}
147759 +
147760 +// Get the field decl of a component ref for intentional_overflow checking
147761 +static const_tree search_field_decl(const_tree comp_ref)
147762 +{
147763 + const_tree field = NULL_TREE;
147764 + unsigned int i, len = TREE_OPERAND_LENGTH(comp_ref);
147765 +
147766 + for (i = 0; i < len; i++) {
147767 + field = TREE_OPERAND(comp_ref, i);
147768 + if (TREE_CODE(field) == FIELD_DECL)
147769 + break;
147770 + }
147771 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
147772 + return field;
147773 +}
147774 +
147775 +/* Get the type of the intentional_overflow attribute of a node
147776 + * * MARK_TURN_OFF
147777 + * * MARK_YES
147778 + * * MARK_NO
147779 + * * MARK_END_INTENTIONAL
147780 + */
147781 +enum intentional_mark get_intentional_attr_type(const_tree node)
147782 +{
147783 + const_tree cur_decl;
147784 +
147785 + if (node == NULL_TREE)
147786 + return MARK_NO;
147787 +
147788 + switch (TREE_CODE(node)) {
147789 + case COMPONENT_REF:
147790 + cur_decl = search_field_decl(node);
147791 + // !!! temporarily ignore bitfield types
147792 + if (DECL_BIT_FIELD_TYPE(cur_decl))
147793 + return MARK_YES;
147794 + if (is_turn_off_intentional_attr(cur_decl))
147795 + return MARK_TURN_OFF;
147796 + if (is_end_intentional_intentional_attr(cur_decl))
147797 + return MARK_YES;
147798 + break;
147799 + case PARM_DECL: {
147800 + unsigned int argnum;
147801 +
147802 + cur_decl = get_orig_fndecl(current_function_decl);
147803 + argnum = find_arg_number_tree(node, cur_decl);
147804 + if (argnum == CANNOT_FIND_ARG)
147805 + return MARK_NO;
147806 + if (is_yes_intentional_attr(cur_decl, argnum))
147807 + return MARK_YES;
147808 + if (is_end_intentional_intentional_attr(cur_decl))
147809 + return MARK_END_INTENTIONAL;
147810 + break;
147811 + }
147812 + case FUNCTION_DECL: {
147813 + const_tree fndecl = get_orig_fndecl(node);
147814 +
147815 + if (is_turn_off_intentional_attr(fndecl))
147816 + return MARK_TURN_OFF;
147817 + if (is_end_intentional_intentional_attr(fndecl))
147818 + return MARK_END_INTENTIONAL;
147819 + break;
147820 + }
147821 + case FIELD_DECL:
147822 + // !!! temporarily ignore bitfield types
147823 + if (DECL_BIT_FIELD_TYPE(node))
147824 + return MARK_YES;
147825 + case VAR_DECL:
147826 + if (is_end_intentional_intentional_attr(node))
147827 + return MARK_END_INTENTIONAL;
147828 + if (is_turn_off_intentional_attr(node))
147829 + return MARK_TURN_OFF;
147830 + default:
147831 + break;
147832 + }
147833 + return MARK_NO;
147834 +}
147835 +
147836 +static enum intentional_mark walk_use_def_phi(gimple_set *visited, const_tree result)
147837 +{
147838 + enum intentional_mark mark = MARK_NO;
147839 + gphi *phi = as_a_gphi(get_def_stmt(result));
147840 + unsigned int i, n = gimple_phi_num_args(phi);
147841 +
147842 + pointer_set_insert(visited, phi);
147843 + for (i = 0; i < n; i++) {
147844 + tree arg = gimple_phi_arg_def(phi, i);
147845 +
147846 + mark = walk_use_def(visited, arg);
147847 + if (mark != MARK_NO)
147848 + return mark;
147849 + }
147850 +
147851 + return mark;
147852 +}
147853 +
147854 +static enum intentional_mark walk_use_def_binary(gimple_set *visited, const_tree lhs)
147855 +{
147856 + enum intentional_mark mark;
147857 + tree rhs1, rhs2;
147858 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
147859 +
147860 + rhs1 = gimple_assign_rhs1(def_stmt);
147861 + rhs2 = gimple_assign_rhs2(def_stmt);
147862 +
147863 + mark = walk_use_def(visited, rhs1);
147864 + if (mark == MARK_NO)
147865 + return walk_use_def(visited, rhs2);
147866 + return mark;
147867 +}
147868 +
147869 +enum intentional_mark get_so_asm_type(const_gimple stmt)
147870 +{
147871 + const gasm *asm_stmt;
147872 +
147873 + if (!stmt)
147874 + return MARK_NO;
147875 + if (!is_size_overflow_asm(stmt))
147876 + return MARK_NO;
147877 +
147878 + asm_stmt = as_a_const_gasm(stmt);
147879 + if (is_size_overflow_insert_check_asm(asm_stmt))
147880 + return MARK_NO;
147881 + if (is_size_overflow_intentional_asm_turn_off(asm_stmt))
147882 + return MARK_TURN_OFF;
147883 + if (is_size_overflow_intentional_asm_end(asm_stmt))
147884 + return MARK_END_INTENTIONAL;
147885 + return MARK_YES;
147886 +}
147887 +
147888 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs)
147889 +{
147890 + const_gimple def_stmt;
147891 +
147892 + if (TREE_CODE(lhs) != SSA_NAME)
147893 + return get_intentional_attr_type(lhs);
147894 +
147895 + def_stmt = get_def_stmt(lhs);
147896 + gcc_assert(def_stmt);
147897 +
147898 + if (pointer_set_insert(visited, def_stmt))
147899 + return MARK_NO;
147900 +
147901 + switch (gimple_code(def_stmt)) {
147902 + case GIMPLE_CALL:
147903 + case GIMPLE_RETURN:
147904 + return MARK_NO;
147905 + case GIMPLE_NOP:
147906 + return walk_use_def(visited, SSA_NAME_VAR(lhs));
147907 + case GIMPLE_ASM:
147908 + return get_so_asm_type(as_a_const_gasm(def_stmt));
147909 + case GIMPLE_PHI:
147910 + return walk_use_def_phi(visited, lhs);
147911 + case GIMPLE_ASSIGN:
147912 + switch (gimple_num_ops(def_stmt)) {
147913 + case 2:
147914 + return walk_use_def(visited, gimple_assign_rhs1(def_stmt));
147915 + case 3:
147916 + return walk_use_def_binary(visited, lhs);
147917 + }
147918 + default:
147919 + debug_gimple_stmt((gimple)def_stmt);
147920 + error("%s: unknown gimple code", __func__);
147921 + gcc_unreachable();
147922 + }
147923 +}
147924 +
147925 +enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var)
147926 +{
147927 + enum intentional_mark mark;
147928 + gimple_set *visited;
147929 +
147930 + if (is_turn_off_intentional_attr(get_orig_fndecl(current_function_decl)))
147931 + return MARK_TURN_OFF;
147932 +
147933 + visited = pointer_set_create();
147934 + mark = walk_use_def(visited, var);
147935 + pointer_set_destroy(visited);
147936 +
147937 + return mark;
147938 +}
147939 +
147940 +/* Search intentional_overflow attribute on caller and on callee too.
147941 + * -1 / MARK_TURN_OFF: means that overflow checking is turned off inside the function and
147942 + * parameters aren't tracked backwards.
147943 + * 1..31 / MARK_YES: e.g., 4 means that overflow checking is turned off on the fourth parameter inside
147944 + * the function.
147945 + * 0 / MARK_END_INTENTIONAL: means that overflow checking is turned off on all the parameters of the function
147946 + * in all callers (on a structure field means that overflow checking is turned off
147947 + * in all expressions involving the given field).
147948 + */
147949 +enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum)
147950 +{
147951 + enum intentional_mark caller_mark, callee_mark;
147952 + const_tree fndecl, orig_cur_fndecl, arg;
147953 +
147954 + orig_cur_fndecl = get_orig_fndecl(current_function_decl);
147955 +
147956 + // handle MARK_TURN_OFF early on the caller
147957 + if (is_turn_off_intentional_attr(orig_cur_fndecl))
147958 + return MARK_TURN_OFF;
147959 + // handle MARK_END_INTENTIONAL on the caller
147960 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
147961 + return MARK_END_INTENTIONAL;
147962 +
147963 + switch (gimple_code(stmt)) {
147964 + case GIMPLE_RETURN:
147965 + gcc_assert(argnum == 0);
147966 + // for now ignore other intentional attribute types on returns
147967 + return MARK_NO;
147968 + case GIMPLE_CALL:
147969 + gcc_assert(argnum != 0);
147970 + gcc_assert(argnum <= gimple_call_num_args(stmt));
147971 + arg = gimple_call_arg(stmt, argnum - 1);
147972 + break;
147973 + default:
147974 + debug_gimple_stmt((gimple)stmt);
147975 + gcc_unreachable();
147976 + }
147977 +
147978 + // XXX ideiglenesen 0-nal a fuggvenyen belul is ki van kapcsolva a dupolas, eddig igy mukodott a doksi ellenere
147979 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
147980 + return MARK_END_INTENTIONAL;
147981 +
147982 + fndecl = get_interesting_orig_fndecl_from_stmt(as_a_const_gcall(stmt));
147983 + // handle MARK_TURN_OFF on the callee
147984 + if (is_turn_off_intentional_attr(fndecl))
147985 + return MARK_TURN_OFF;
147986 + // find a defining marked caller argument or struct field for arg
147987 + caller_mark = check_intentional_size_overflow_asm_and_attribute(arg);
147988 +
147989 + // did we find a marked struct field?
147990 + if (caller_mark == MARK_TURN_OFF)
147991 + return MARK_TURN_OFF;
147992 +
147993 + // handle MARK_END_INTENTIONAL on the callee
147994 + if (is_end_intentional_intentional_attr(fndecl))
147995 + callee_mark = MARK_END_INTENTIONAL;
147996 + // is it a marked callee parameter?
147997 + else if (is_yes_intentional_attr(fndecl, argnum))
147998 + callee_mark = MARK_YES;
147999 + else
148000 + callee_mark = MARK_NO;
148001 +
148002 + // no intentional attribute found
148003 + if (callee_mark == MARK_NO && caller_mark == MARK_NO)
148004 + return MARK_NO;
148005 +
148006 + // MARK_YES is meaningful only on the caller
148007 + if (caller_mark == MARK_NO && callee_mark == MARK_YES)
148008 + return MARK_NO;
148009 +
148010 + // we found a code region where we don't want to duplicate
148011 + if (caller_mark == MARK_YES && callee_mark == MARK_END_INTENTIONAL)
148012 + return MARK_END_INTENTIONAL;
148013 +
148014 + // ignore the intentional attribute on the callee if we didn't find a marked defining argument or struct field
148015 + if (caller_mark == MARK_NO && callee_mark == MARK_END_INTENTIONAL)
148016 + return MARK_NO;
148017 +
148018 + // the callee is missing the intentional attribute (MARK_YES or MARK_END_INTENTIONAL)
148019 + if (caller_mark == MARK_YES) {
148020 + print_missing_intentional(callee_mark, caller_mark, fndecl, argnum);
148021 + return MARK_YES;
148022 + }
148023 +
148024 + fprintf(stderr, "caller: %s callee: %s\n", DECL_NAME_POINTER(orig_cur_fndecl), DECL_NAME_POINTER(fndecl));
148025 + debug_gimple_stmt((gimple)stmt);
148026 + print_intentional_mark(caller_mark);
148027 + print_intentional_mark(callee_mark);
148028 + gcc_unreachable();
148029 +}
148030 +
148031 +bool is_a_cast_and_const_overflow(const_tree no_const_rhs)
148032 +{
148033 + const_tree rhs1, lhs, rhs1_type, lhs_type;
148034 + enum machine_mode lhs_mode, rhs_mode;
148035 + gimple def_stmt = get_def_stmt(no_const_rhs);
148036 +
148037 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
148038 + return false;
148039 +
148040 + rhs1 = gimple_assign_rhs1(def_stmt);
148041 + lhs = gimple_assign_lhs(def_stmt);
148042 + rhs1_type = TREE_TYPE(rhs1);
148043 + lhs_type = TREE_TYPE(lhs);
148044 + rhs_mode = TYPE_MODE(rhs1_type);
148045 + lhs_mode = TYPE_MODE(lhs_type);
148046 + if (TYPE_UNSIGNED(lhs_type) == TYPE_UNSIGNED(rhs1_type) || lhs_mode != rhs_mode)
148047 + return false;
148048 +
148049 + return true;
148050 +}
148051 +
148052 +static unsigned int uses_num(tree node)
148053 +{
148054 + imm_use_iterator imm_iter;
148055 + use_operand_p use_p;
148056 + unsigned int num = 0;
148057 +
148058 + FOR_EACH_IMM_USE_FAST(use_p, imm_iter, node) {
148059 + gimple use_stmt = USE_STMT(use_p);
148060 +
148061 + if (use_stmt == NULL)
148062 + return num;
148063 + if (is_gimple_debug(use_stmt))
148064 + continue;
148065 + if (gimple_assign_cast_p(use_stmt) && is_size_overflow_type(gimple_assign_lhs(use_stmt)))
148066 + continue;
148067 + num++;
148068 + }
148069 + return num;
148070 +}
148071 +
148072 +static bool no_uses(tree node)
148073 +{
148074 + return !uses_num(node);
148075 +}
148076 +
148077 +// 3.8.5 mm/page-writeback.c __ilog2_u64(): ret, uint + uintmax; uint -> int; int max
148078 +bool is_const_plus_unsigned_signed_truncation(const_tree lhs)
148079 +{
148080 + tree rhs1, lhs_type, rhs_type, rhs2, not_const_rhs;
148081 + gimple def_stmt = get_def_stmt(lhs);
148082 +
148083 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
148084 + return false;
148085 +
148086 + rhs1 = gimple_assign_rhs1(def_stmt);
148087 + rhs_type = TREE_TYPE(rhs1);
148088 + lhs_type = TREE_TYPE(lhs);
148089 + if (TYPE_UNSIGNED(lhs_type) || !TYPE_UNSIGNED(rhs_type))
148090 + return false;
148091 + if (TYPE_MODE(lhs_type) != TYPE_MODE(rhs_type))
148092 + return false;
148093 +
148094 + def_stmt = get_def_stmt(rhs1);
148095 + if (!def_stmt || !is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 3)
148096 + return false;
148097 +
148098 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR)
148099 + return false;
148100 +
148101 + rhs1 = gimple_assign_rhs1(def_stmt);
148102 + rhs2 = gimple_assign_rhs2(def_stmt);
148103 + if (!is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
148104 + return false;
148105 +
148106 + if (is_gimple_constant(rhs2))
148107 + not_const_rhs = rhs1;
148108 + else
148109 + not_const_rhs = rhs2;
148110 +
148111 + return no_uses(not_const_rhs);
148112 +}
148113 +
148114 +static bool is_lt_signed_type_max(const_tree rhs)
148115 +{
148116 + const_tree new_type, type_max, type = TREE_TYPE(rhs);
148117 +
148118 + if (!TYPE_UNSIGNED(type))
148119 + return true;
148120 +
148121 + switch (TYPE_MODE(type)) {
148122 + case QImode:
148123 + new_type = intQI_type_node;
148124 + break;
148125 + case HImode:
148126 + new_type = intHI_type_node;
148127 + break;
148128 + case SImode:
148129 + new_type = intSI_type_node;
148130 + break;
148131 + case DImode:
148132 + new_type = intDI_type_node;
148133 + break;
148134 + default:
148135 + debug_tree((tree)type);
148136 + gcc_unreachable();
148137 + }
148138 +
148139 + type_max = TYPE_MAX_VALUE(new_type);
148140 + if (!tree_int_cst_lt(type_max, rhs))
148141 + return true;
148142 +
148143 + return false;
148144 +}
148145 +
148146 +static bool is_gt_zero(const_tree rhs)
148147 +{
148148 + const_tree type = TREE_TYPE(rhs);
148149 +
148150 + if (TYPE_UNSIGNED(type))
148151 + return true;
148152 +
148153 + if (!tree_int_cst_lt(rhs, integer_zero_node))
148154 + return true;
148155 +
148156 + return false;
148157 +}
148158 +
148159 +bool is_a_constant_overflow(const gassign *stmt, const_tree rhs)
148160 +{
148161 + if (gimple_assign_rhs_code(stmt) == MIN_EXPR)
148162 + return false;
148163 + if (!is_gimple_constant(rhs))
148164 + return false;
148165 +
148166 + // if the const is between 0 and the max value of the signed type of the same bitsize then there is no intentional overflow
148167 + if (is_lt_signed_type_max(rhs) && is_gt_zero(rhs))
148168 + return false;
148169 +
148170 + return true;
148171 +}
148172 +
148173 +static tree change_assign_rhs(struct visited *visited, gassign *stmt, const_tree orig_rhs, tree new_rhs)
148174 +{
148175 + const_gimple assign;
148176 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
148177 + tree origtype = TREE_TYPE(orig_rhs);
148178 +
148179 + assign = build_cast_stmt(visited, origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
148180 + pointer_set_insert(visited->my_stmts, assign);
148181 + return get_lhs(assign);
148182 +}
148183 +
148184 +tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2)
148185 +{
148186 + tree new_rhs, orig_rhs;
148187 + void (*gimple_assign_set_rhs)(gimple, tree);
148188 + tree rhs1 = gimple_assign_rhs1(stmt);
148189 + tree rhs2 = gimple_assign_rhs2(stmt);
148190 + tree lhs = gimple_assign_lhs(stmt);
148191 +
148192 + if (!check_overflow)
148193 + return create_assign(visited, stmt, lhs, AFTER_STMT);
148194 +
148195 + if (change_rhs == NULL_TREE)
148196 + return create_assign(visited, stmt, lhs, AFTER_STMT);
148197 +
148198 + if (new_rhs2 == NULL_TREE) {
148199 + orig_rhs = rhs1;
148200 + gimple_assign_set_rhs = &gimple_assign_set_rhs1;
148201 + } else {
148202 + orig_rhs = rhs2;
148203 + gimple_assign_set_rhs = &gimple_assign_set_rhs2;
148204 + }
148205 +
148206 + check_size_overflow(expand_from, stmt, TREE_TYPE(change_rhs), change_rhs, orig_rhs, BEFORE_STMT);
148207 +
148208 + new_rhs = change_assign_rhs(visited, stmt, orig_rhs, change_rhs);
148209 + gimple_assign_set_rhs(stmt, new_rhs);
148210 + update_stmt(stmt);
148211 +
148212 + return create_assign(visited, stmt, lhs, AFTER_STMT);
148213 +}
148214 +
148215 +static bool is_subtraction_special(struct visited *visited, const gassign *stmt)
148216 +{
148217 + gimple rhs1_def_stmt, rhs2_def_stmt;
148218 + const_tree rhs1_def_stmt_rhs1, rhs2_def_stmt_rhs1, rhs1_def_stmt_lhs, rhs2_def_stmt_lhs;
148219 + enum machine_mode rhs1_def_stmt_rhs1_mode, rhs2_def_stmt_rhs1_mode, rhs1_def_stmt_lhs_mode, rhs2_def_stmt_lhs_mode;
148220 + const_tree rhs1 = gimple_assign_rhs1(stmt);
148221 + const_tree rhs2 = gimple_assign_rhs2(stmt);
148222 +
148223 + if (is_gimple_constant(rhs1) || is_gimple_constant(rhs2))
148224 + return false;
148225 +
148226 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
148227 + return false;
148228 +
148229 + gcc_assert(TREE_CODE(rhs1) == SSA_NAME && TREE_CODE(rhs2) == SSA_NAME);
148230 +
148231 + rhs1_def_stmt = get_def_stmt(rhs1);
148232 + rhs2_def_stmt = get_def_stmt(rhs2);
148233 + if (!gimple_assign_cast_p(rhs1_def_stmt) || !gimple_assign_cast_p(rhs2_def_stmt))
148234 + return false;
148235 +
148236 + rhs1_def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
148237 + rhs2_def_stmt_rhs1 = gimple_assign_rhs1(rhs2_def_stmt);
148238 + rhs1_def_stmt_lhs = gimple_assign_lhs(rhs1_def_stmt);
148239 + rhs2_def_stmt_lhs = gimple_assign_lhs(rhs2_def_stmt);
148240 + rhs1_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_rhs1));
148241 + rhs2_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_rhs1));
148242 + rhs1_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_lhs));
148243 + rhs2_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_lhs));
148244 + if (GET_MODE_BITSIZE(rhs1_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs1_def_stmt_lhs_mode))
148245 + return false;
148246 + if (GET_MODE_BITSIZE(rhs2_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs2_def_stmt_lhs_mode))
148247 + return false;
148248 +
148249 + pointer_set_insert(visited->no_cast_check, rhs1_def_stmt);
148250 + pointer_set_insert(visited->no_cast_check, rhs2_def_stmt);
148251 + return true;
148252 +}
148253 +
148254 +static gassign *create_binary_assign(struct visited *visited, enum tree_code code, gassign *stmt, tree rhs1, tree rhs2)
148255 +{
148256 + gassign *assign;
148257 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
148258 + tree type = TREE_TYPE(rhs1);
148259 + tree lhs = create_new_var(type);
148260 +
148261 + gcc_assert(types_compatible_p(type, TREE_TYPE(rhs2)));
148262 + assign = as_a_gassign(gimple_build_assign_with_ops(code, lhs, rhs1, rhs2));
148263 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
148264 +
148265 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
148266 + update_stmt(assign);
148267 + pointer_set_insert(visited->my_stmts, assign);
148268 + return assign;
148269 +}
148270 +
148271 +static tree cast_to_TI_type(struct visited *visited, gassign *stmt, tree node)
148272 +{
148273 + gimple_stmt_iterator gsi;
148274 + const_gimple cast_stmt;
148275 + tree type = TREE_TYPE(node);
148276 +
148277 + if (types_compatible_p(type, intTI_type_node))
148278 + return node;
148279 +
148280 + gsi = gsi_for_stmt(stmt);
148281 + cast_stmt = build_cast_stmt(visited, intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
148282 + pointer_set_insert(visited->my_stmts, cast_stmt);
148283 + return get_lhs(cast_stmt);
148284 +}
148285 +
148286 +static tree get_def_stmt_rhs(struct visited *visited, const_tree var)
148287 +{
148288 + tree rhs1, def_stmt_rhs1;
148289 + gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt;
148290 +
148291 + def_stmt = get_def_stmt(var);
148292 + if (!gimple_assign_cast_p(def_stmt))
148293 + return NULL_TREE;
148294 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && pointer_set_contains(visited->my_stmts, def_stmt) && gimple_assign_cast_p(def_stmt));
148295 +
148296 + rhs1 = gimple_assign_rhs1(def_stmt);
148297 + rhs1_def_stmt = get_def_stmt(rhs1);
148298 + if (!gimple_assign_cast_p(rhs1_def_stmt))
148299 + return rhs1;
148300 +
148301 + def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
148302 + def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1);
148303 +
148304 + switch (gimple_code(def_stmt_rhs1_def_stmt)) {
148305 + case GIMPLE_CALL:
148306 + case GIMPLE_NOP:
148307 + case GIMPLE_ASM:
148308 + case GIMPLE_PHI:
148309 + return def_stmt_rhs1;
148310 + case GIMPLE_ASSIGN:
148311 + return rhs1;
148312 + default:
148313 + debug_gimple_stmt(def_stmt_rhs1_def_stmt);
148314 + gcc_unreachable();
148315 + }
148316 +}
148317 +
148318 +tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs)
148319 +{
148320 + tree new_rhs1, new_rhs2;
148321 + tree new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1, new_lhs;
148322 + gassign *assign, *stmt = as_a_gassign(get_def_stmt(lhs));
148323 + tree rhs1 = gimple_assign_rhs1(stmt);
148324 + tree rhs2 = gimple_assign_rhs2(stmt);
148325 +
148326 + if (!is_subtraction_special(visited, stmt))
148327 + return NULL_TREE;
148328 +
148329 + new_rhs1 = expand(visited, expand_from, rhs1);
148330 + new_rhs2 = expand(visited, expand_from, rhs2);
148331 +
148332 + new_rhs1_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs1);
148333 + new_rhs2_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs2);
148334 +
148335 + if (new_rhs1_def_stmt_rhs1 == NULL_TREE || new_rhs2_def_stmt_rhs1 == NULL_TREE)
148336 + return NULL_TREE;
148337 +
148338 + if (!types_compatible_p(TREE_TYPE(new_rhs1_def_stmt_rhs1), TREE_TYPE(new_rhs2_def_stmt_rhs1))) {
148339 + new_rhs1_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs1_def_stmt_rhs1);
148340 + new_rhs2_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs2_def_stmt_rhs1);
148341 + }
148342 +
148343 + assign = create_binary_assign(visited, MINUS_EXPR, stmt, new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1);
148344 + new_lhs = gimple_assign_lhs(assign);
148345 + check_size_overflow(expand_from, assign, TREE_TYPE(new_lhs), new_lhs, rhs1, AFTER_STMT);
148346 +
148347 + return dup_assign(visited, stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
148348 +}
148349 +
148350 +bool is_a_neg_overflow(const gassign *stmt, const_tree rhs)
148351 +{
148352 + const_gimple def_stmt;
148353 +
148354 + if (TREE_CODE(rhs) != SSA_NAME)
148355 + return false;
148356 +
148357 + if (gimple_assign_rhs_code(stmt) != PLUS_EXPR)
148358 + return false;
148359 +
148360 + def_stmt = get_def_stmt(rhs);
148361 + if (!is_gimple_assign(def_stmt) || gimple_assign_rhs_code(def_stmt) != BIT_NOT_EXPR)
148362 + return false;
148363 +
148364 + return true;
148365 +}
148366 +
148367 +/* e.g., drivers/acpi/acpica/utids.c acpi_ut_execute_CID()
148368 + * ((count - 1) * sizeof(struct acpi_pnp_dee_id_list) -> (count + fffffff) * 16
148369 + * fffffff * 16 > signed max -> truncate
148370 + */
148371 +static bool look_for_mult_and_add(const_gimple stmt)
148372 +{
148373 + const_tree res;
148374 + tree rhs1, rhs2, def_rhs1, def_rhs2, const_rhs, def_const_rhs;
148375 + const_gimple def_stmt;
148376 +
148377 + if (!stmt || gimple_code(stmt) == GIMPLE_NOP)
148378 + return false;
148379 + if (!is_gimple_assign(stmt))
148380 + return false;
148381 + if (gimple_assign_rhs_code(stmt) != MULT_EXPR)
148382 + return false;
148383 +
148384 + rhs1 = gimple_assign_rhs1(stmt);
148385 + rhs2 = gimple_assign_rhs2(stmt);
148386 + if (is_gimple_constant(rhs1)) {
148387 + const_rhs = rhs1;
148388 + def_stmt = get_def_stmt(rhs2);
148389 + } else if (is_gimple_constant(rhs2)) {
148390 + const_rhs = rhs2;
148391 + def_stmt = get_def_stmt(rhs1);
148392 + } else
148393 + return false;
148394 +
148395 + if (!is_gimple_assign(def_stmt))
148396 + return false;
148397 +
148398 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR && gimple_assign_rhs_code(def_stmt) != MINUS_EXPR)
148399 + return false;
148400 +
148401 + def_rhs1 = gimple_assign_rhs1(def_stmt);
148402 + def_rhs2 = gimple_assign_rhs2(def_stmt);
148403 + if (is_gimple_constant(def_rhs1))
148404 + def_const_rhs = def_rhs1;
148405 + else if (is_gimple_constant(def_rhs2))
148406 + def_const_rhs = def_rhs2;
148407 + else
148408 + return false;
148409 +
148410 + res = fold_binary_loc(gimple_location(def_stmt), MULT_EXPR, TREE_TYPE(const_rhs), const_rhs, def_const_rhs);
148411 + if (is_lt_signed_type_max(res) && is_gt_zero(res))
148412 + return false;
148413 + return true;
148414 +}
148415 +
148416 +enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt)
148417 +{
148418 + const_gimple def_stmt_1, def_stmt_2;
148419 + const_tree rhs1, rhs2;
148420 + bool add_mul_rhs1, add_mul_rhs2;
148421 +
148422 + rhs1 = gimple_assign_rhs1(stmt);
148423 + def_stmt_1 = get_def_stmt(rhs1);
148424 + add_mul_rhs1 = look_for_mult_and_add(def_stmt_1);
148425 +
148426 + rhs2 = gimple_assign_rhs2(stmt);
148427 + def_stmt_2 = get_def_stmt(rhs2);
148428 + add_mul_rhs2 = look_for_mult_and_add(def_stmt_2);
148429 +
148430 + if (add_mul_rhs1)
148431 + return RHS1_INTENTIONAL_OVERFLOW;
148432 + if (add_mul_rhs2)
148433 + return RHS2_INTENTIONAL_OVERFLOW;
148434 + return NO_INTENTIONAL_OVERFLOW;
148435 +}
148436 +
148437 +static gassign *get_dup_stmt(struct visited *visited, gassign *stmt)
148438 +{
148439 + gassign *my_stmt;
148440 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
148441 +
148442 + gsi_next(&gsi);
148443 + my_stmt = as_a_gassign(gsi_stmt(gsi));
148444 +
148445 + gcc_assert(pointer_set_contains(visited->my_stmts, my_stmt));
148446 + if (gimple_assign_cast_p(stmt) && gimple_assign_cast_p(my_stmt))
148447 + return my_stmt;
148448 +
148449 + if (gimple_assign_rhs_code(stmt) != gimple_assign_rhs_code(my_stmt)) {
148450 + fprintf(stderr, "%s != %s\n", get_tree_code_name(gimple_assign_rhs_code(stmt)), get_tree_code_name(gimple_assign_rhs_code(my_stmt)));
148451 + debug_gimple_stmt(stmt);
148452 + debug_gimple_stmt(my_stmt);
148453 + gcc_unreachable();
148454 + }
148455 +
148456 + return my_stmt;
148457 +}
148458 +
148459 +/* unsigned type -> unary or binary assign (rhs1 or rhs2 is constant)
148460 + * unsigned type cast to signed type, unsigned type: no more uses
148461 + * e.g., lib/vsprintf.c:simple_strtol()
148462 + * _10 = (unsigned long int) _9
148463 + * _11 = -_10;
148464 + * _12 = (long int) _11; (_11_ no more uses)
148465 + */
148466 +static bool is_call_or_cast(gimple stmt)
148467 +{
148468 + return gimple_assign_cast_p(stmt) || is_gimple_call(stmt);
148469 +}
148470 +
148471 +static bool is_unsigned_cast_or_call_def_stmt(const_tree node)
148472 +{
148473 + const_tree rhs;
148474 + gimple def_stmt;
148475 +
148476 + if (node == NULL_TREE)
148477 + return true;
148478 + if (is_gimple_constant(node))
148479 + return true;
148480 +
148481 + def_stmt = get_def_stmt(node);
148482 + if (!def_stmt)
148483 + return false;
148484 +
148485 + if (is_call_or_cast(def_stmt))
148486 + return true;
148487 +
148488 + if (!is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 2)
148489 + return false;
148490 + rhs = gimple_assign_rhs1(def_stmt);
148491 + def_stmt = get_def_stmt(rhs);
148492 + if (!def_stmt)
148493 + return false;
148494 + return is_call_or_cast(def_stmt);
148495 +}
148496 +
148497 +void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt)
148498 +{
148499 + unsigned int use_num;
148500 + gassign *so_stmt;
148501 + const_gimple def_stmt;
148502 + const_tree rhs1, rhs2;
148503 + tree rhs = gimple_assign_rhs1(stmt);
148504 + tree lhs_type = TREE_TYPE(gimple_assign_lhs(stmt));
148505 + const_tree rhs_type = TREE_TYPE(rhs);
148506 +
148507 + if (!(TYPE_UNSIGNED(rhs_type) && !TYPE_UNSIGNED(lhs_type)))
148508 + return;
148509 + if (GET_MODE_BITSIZE(TYPE_MODE(rhs_type)) != GET_MODE_BITSIZE(TYPE_MODE(lhs_type)))
148510 + return;
148511 + use_num = uses_num(rhs);
148512 + if (use_num != 1)
148513 + return;
148514 +
148515 + def_stmt = get_def_stmt(rhs);
148516 + if (!def_stmt)
148517 + return;
148518 + if (!is_gimple_assign(def_stmt))
148519 + return;
148520 +
148521 + rhs1 = gimple_assign_rhs1(def_stmt);
148522 + if (!is_unsigned_cast_or_call_def_stmt(rhs1))
148523 + return;
148524 +
148525 + rhs2 = gimple_assign_rhs2(def_stmt);
148526 + if (!is_unsigned_cast_or_call_def_stmt(rhs2))
148527 + return;
148528 + if (gimple_num_ops(def_stmt) == 3 && !is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
148529 + return;
148530 +
148531 + so_stmt = get_dup_stmt(visited, stmt);
148532 + create_up_and_down_cast(visited, so_stmt, lhs_type, gimple_assign_rhs1(so_stmt));
148533 +}
148534 +
148535 +/* gcc intentional overflow
148536 + * e.g., skb_set_network_header(), skb_set_mac_header()
148537 + * -, int offset + u16 network_header
148538 + * offset = -x->props.header_len
148539 + * skb->network_header += offset;
148540 + *
148541 + * SSA
148542 + * _141 = -_140;
148543 + * _154 = (short unsigned int) _141;
148544 + * _155 = (size_overflow_type_SI) _154;
148545 + * _156 = _154 + _155; // 2x
148546 + * _157 = (short unsigned int) _156;
148547 + */
148548 +static bool is_short_cast_neg(const_tree rhs)
148549 +{
148550 + const_tree cast_rhs;
148551 + const_gimple neg_stmt;
148552 + gimple neg_cast_stmt, cast_stmt = get_def_stmt(rhs);
148553 +
148554 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
148555 + return false;
148556 +
148557 + cast_rhs = gimple_assign_rhs1(cast_stmt);
148558 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) >= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs))))
148559 + return false;
148560 +
148561 + neg_cast_stmt = get_def_stmt(cast_rhs);
148562 + if (!neg_cast_stmt || !gimple_assign_cast_p(neg_cast_stmt))
148563 + return false;
148564 +
148565 + neg_stmt = get_def_stmt(gimple_assign_rhs1(neg_cast_stmt));
148566 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
148567 + return false;
148568 + return gimple_assign_rhs_code(neg_stmt) == NEGATE_EXPR;
148569 +}
148570 +
148571 +static bool check_add_stmt(const_tree node)
148572 +{
148573 + const_gimple add_stmt;
148574 + const_tree add_rhs1, add_rhs2;
148575 +
148576 + if (node == NULL_TREE)
148577 + return false;
148578 +
148579 + add_stmt = get_def_stmt(node);
148580 + if (!add_stmt || !is_gimple_assign(add_stmt) || gimple_assign_rhs_code(add_stmt) != PLUS_EXPR)
148581 + return false;
148582 +
148583 + add_rhs1 = gimple_assign_rhs1(add_stmt);
148584 + add_rhs2 = gimple_assign_rhs2(add_stmt);
148585 + return is_short_cast_neg(add_rhs1) || is_short_cast_neg(add_rhs2);
148586 +}
148587 +
148588 +bool neg_short_add_intentional_overflow(gassign *unary_stmt)
148589 +{
148590 + const_tree rhs1, add_rhs1, add_rhs2, cast_rhs;
148591 + gimple cast_stmt;
148592 + const_gimple add_stmt;
148593 +
148594 + rhs1 = gimple_assign_rhs1(unary_stmt);
148595 +
148596 + cast_stmt = get_def_stmt(rhs1);
148597 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
148598 + return false;
148599 + cast_rhs = gimple_assign_rhs1(cast_stmt);
148600 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) <= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs1))))
148601 + return false;
148602 +
148603 + // one or two plus expressions
148604 + if (check_add_stmt(cast_rhs))
148605 + return true;
148606 +
148607 + add_stmt = get_def_stmt(cast_rhs);
148608 + if (!add_stmt || !is_gimple_assign(add_stmt))
148609 + return false;
148610 + add_rhs1 = gimple_assign_rhs1(add_stmt);
148611 + if (check_add_stmt(add_rhs1))
148612 + return true;
148613 + add_rhs2 = gimple_assign_rhs2(add_stmt);
148614 + return check_add_stmt(add_rhs2);
148615 +}
148616 diff --git a/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
148617 new file mode 100644
148618 index 0000000..5622b51
148619 --- /dev/null
148620 +++ b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
148621 @@ -0,0 +1,137 @@
148622 +/*
148623 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
148624 + * Licensed under the GPL v2, or (at your option) v3
148625 + *
148626 + * Homepage:
148627 + * https://github.com/ephox-gcc-plugins/size_overflow
148628 + *
148629 + * Documentation:
148630 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
148631 + *
148632 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
148633 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
148634 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
148635 + *
148636 + * Usage:
148637 + * $ make
148638 + * $ make run
148639 + */
148640 +
148641 +#include "size_overflow.h"
148642 +
148643 +bool skip_expr_on_double_type(const gassign *stmt)
148644 +{
148645 + enum tree_code code = gimple_assign_rhs_code(stmt);
148646 +
148647 + switch (code) {
148648 + case RSHIFT_EXPR:
148649 + case TRUNC_DIV_EXPR:
148650 + case CEIL_DIV_EXPR:
148651 + case FLOOR_DIV_EXPR:
148652 + case ROUND_DIV_EXPR:
148653 + case EXACT_DIV_EXPR:
148654 + case RDIV_EXPR:
148655 + case TRUNC_MOD_EXPR:
148656 + case CEIL_MOD_EXPR:
148657 + case FLOOR_MOD_EXPR:
148658 + case ROUND_MOD_EXPR:
148659 + return true;
148660 + default:
148661 + return false;
148662 + }
148663 +}
148664 +
148665 +void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs)
148666 +{
148667 + const_tree orig_rhs1;
148668 + tree down_lhs, new_lhs, dup_type = TREE_TYPE(rhs);
148669 + const_gimple down_cast, up_cast;
148670 + gimple_stmt_iterator gsi = gsi_for_stmt(use_stmt);
148671 +
148672 + down_cast = build_cast_stmt(visited, orig_type, rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
148673 + down_lhs = get_lhs(down_cast);
148674 +
148675 + gsi = gsi_for_stmt(use_stmt);
148676 + up_cast = build_cast_stmt(visited, dup_type, down_lhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
148677 + new_lhs = get_lhs(up_cast);
148678 +
148679 + orig_rhs1 = gimple_assign_rhs1(use_stmt);
148680 + if (operand_equal_p(orig_rhs1, rhs, 0))
148681 + gimple_assign_set_rhs1(use_stmt, new_lhs);
148682 + else
148683 + gimple_assign_set_rhs2(use_stmt, new_lhs);
148684 + update_stmt(use_stmt);
148685 +
148686 + pointer_set_insert(visited->my_stmts, up_cast);
148687 + pointer_set_insert(visited->my_stmts, down_cast);
148688 + pointer_set_insert(visited->skip_expr_casts, up_cast);
148689 + pointer_set_insert(visited->skip_expr_casts, down_cast);
148690 +}
148691 +
148692 +static tree get_proper_unsigned_half_type(const_tree node)
148693 +{
148694 + tree new_type, type;
148695 +
148696 + gcc_assert(is_size_overflow_type(node));
148697 +
148698 + type = TREE_TYPE(node);
148699 + switch (TYPE_MODE(type)) {
148700 + case HImode:
148701 + new_type = unsigned_intQI_type_node;
148702 + break;
148703 + case SImode:
148704 + new_type = unsigned_intHI_type_node;
148705 + break;
148706 + case DImode:
148707 + new_type = unsigned_intSI_type_node;
148708 + break;
148709 + case TImode:
148710 + new_type = unsigned_intDI_type_node;
148711 + break;
148712 + default:
148713 + gcc_unreachable();
148714 + }
148715 +
148716 + if (TYPE_QUALS(type) != 0)
148717 + return build_qualified_type(new_type, TYPE_QUALS(type));
148718 + return new_type;
148719 +}
148720 +
148721 +static void insert_cast_rhs(struct visited *visited, gassign *stmt, tree rhs)
148722 +{
148723 + tree type;
148724 +
148725 + if (rhs == NULL_TREE)
148726 + return;
148727 + if (!is_size_overflow_type(rhs))
148728 + return;
148729 +
148730 + type = get_proper_unsigned_half_type(rhs);
148731 + if (is_gimple_constant(rhs))
148732 + return;
148733 + create_up_and_down_cast(visited, stmt, type, rhs);
148734 +}
148735 +
148736 +static void insert_cast(struct visited *visited, gassign *stmt, tree rhs)
148737 +{
148738 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && !is_size_overflow_type(rhs))
148739 + return;
148740 + gcc_assert(is_size_overflow_type(rhs));
148741 + insert_cast_rhs(visited, stmt, rhs);
148742 +}
148743 +
148744 +void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type)
148745 +{
148746 + tree rhs1, rhs2;
148747 +
148748 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS1_INTENTIONAL_OVERFLOW) {
148749 + rhs1 = gimple_assign_rhs1(stmt);
148750 + insert_cast(visited, stmt, rhs1);
148751 + }
148752 +
148753 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS2_INTENTIONAL_OVERFLOW) {
148754 + rhs2 = gimple_assign_rhs2(stmt);
148755 + insert_cast(visited, stmt, rhs2);
148756 + }
148757 +}
148758 +
148759 diff --git a/tools/gcc/size_overflow_plugin/size_overflow.h b/tools/gcc/size_overflow_plugin/size_overflow.h
148760 new file mode 100644
148761 index 0000000..5fd6c28
148762 --- /dev/null
148763 +++ b/tools/gcc/size_overflow_plugin/size_overflow.h
148764 @@ -0,0 +1,323 @@
148765 +#ifndef SIZE_OVERFLOW_H
148766 +#define SIZE_OVERFLOW_H
148767 +
148768 +#define CREATE_NEW_VAR NULL_TREE
148769 +#define MAX_PARAM 31
148770 +#define CANNOT_FIND_ARG 32
148771 +#define NONE_ARGNUM 32
148772 +
148773 +#define BEFORE_STMT true
148774 +#define AFTER_STMT false
148775 +
148776 +#define TURN_OFF_ASM_STR "# size_overflow MARK_TURN_OFF "
148777 +#define YES_ASM_STR "# size_overflow MARK_YES "
148778 +#define END_INTENTIONAL_ASM_STR "# size_overflow MARK_END_INTENTIONAL "
148779 +#define SO_ASM_STR "# size_overflow "
148780 +#define OK_ASM_STR "# size_overflow MARK_NO"
148781 +
148782 +#define FUNCTION_PTR_P(node) \
148783 + (TREE_CODE(TREE_TYPE(node)) == POINTER_TYPE && (TREE_CODE(TREE_TYPE(TREE_TYPE(node))) == FUNCTION_TYPE || TREE_CODE(TREE_TYPE(TREE_TYPE(node))) == METHOD_TYPE))
148784 +
148785 +#define CODES_LIMIT 32
148786 +
148787 +#define GLOBAL_NIFN_LEN 65536
148788 +#define NO_HASH 65537
148789 +
148790 +#define SIZE_OVERFLOW true
148791 +#define DISABLE_SIZE_OVERFLOW false
148792 +
148793 +#include "gcc-common.h"
148794 +
148795 +#include <string.h>
148796 +#include <limits.h>
148797 +
148798 +enum intentional_mark {
148799 + MARK_NO, MARK_YES, MARK_END_INTENTIONAL, MARK_TURN_OFF
148800 +};
148801 +
148802 +enum intentional_overflow_type {
148803 + NO_INTENTIONAL_OVERFLOW, RHS1_INTENTIONAL_OVERFLOW, RHS2_INTENTIONAL_OVERFLOW
148804 +};
148805 +
148806 +enum size_overflow_mark {
148807 + NO_SO_MARK, YES_SO_MARK, ASM_STMT_SO_MARK
148808 +};
148809 +
148810 +struct decl_hash {
148811 + size_t tree_codes_len;
148812 + unsigned char tree_codes[CODES_LIMIT];
148813 + const_tree decl;
148814 + const char *context;
148815 + unsigned int hash;
148816 + const char *fn_name;
148817 +};
148818 +
148819 +struct next_interesting_function;
148820 +typedef struct next_interesting_function * next_interesting_function_t;
148821 +
148822 +struct interesting_stmts;
148823 +typedef struct interesting_stmts * interesting_stmts_t;
148824 +
148825 +// Store data associated with the next_interesting_function_t entry
148826 +struct fn_raw_data
148827 +{
148828 + const char *decl_str;
148829 + tree decl;
148830 + const char *context;
148831 + unsigned int hash;
148832 + unsigned int num;
148833 + enum size_overflow_mark marked;
148834 +};
148835 +
148836 +#if BUILDING_GCC_VERSION <= 4007
148837 +DEF_VEC_P(next_interesting_function_t);
148838 +DEF_VEC_ALLOC_P(next_interesting_function_t, heap);
148839 +#endif
148840 +
148841 +#if BUILDING_GCC_VERSION >= 5000
148842 +typedef struct hash_set<const_gimple> gimple_set;
148843 +
148844 +static inline bool pointer_set_insert(gimple_set *visited, const_gimple stmt)
148845 +{
148846 + return visited->add(stmt);
148847 +}
148848 +
148849 +static inline bool pointer_set_contains(gimple_set *visited, const_gimple stmt)
148850 +{
148851 + return visited->contains(stmt);
148852 +}
148853 +
148854 +static inline gimple_set* pointer_set_create(void)
148855 +{
148856 + return new hash_set<const_gimple>;
148857 +}
148858 +
148859 +static inline void pointer_set_destroy(gimple_set *visited)
148860 +{
148861 + delete visited;
148862 +}
148863 +
148864 +typedef struct hash_set<next_interesting_function_t> next_interesting_function_set;
148865 +
148866 +static inline bool pointer_set_insert(next_interesting_function_set *visited, next_interesting_function_t node)
148867 +{
148868 + return visited->add(node);
148869 +}
148870 +
148871 +static inline bool pointer_set_contains(next_interesting_function_set *visited, next_interesting_function_t node)
148872 +{
148873 + return visited->contains(node);
148874 +}
148875 +
148876 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
148877 +{
148878 + return new hash_set<next_interesting_function_t>;
148879 +}
148880 +
148881 +static inline void pointer_set_destroy(next_interesting_function_set *visited)
148882 +{
148883 + delete visited;
148884 +}
148885 +#else
148886 +typedef struct pointer_set_t gimple_set;
148887 +typedef struct pointer_set_t next_interesting_function_set;
148888 +
148889 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
148890 +{
148891 + return pointer_set_create();
148892 +}
148893 +#endif
148894 +
148895 +struct visited {
148896 + gimple_set *stmts;
148897 + gimple_set *my_stmts;
148898 + gimple_set *skip_expr_casts;
148899 + gimple_set *no_cast_check;
148900 +};
148901 +
148902 +/*
148903 + * * children: callers with data flow into the integer parameter of decl
148904 + * * decl_name: name of the function or the field
148905 + * * context: the containing type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
148906 + * * hash: hash num of the function
148907 + * * num: parameter number (1-31) or return value (0)
148908 + * * marked: determines whether to duplicate stmts and/or look for missing hashtable entries
148909 + * * orig_next_node: pointer to the originally cloned function
148910 + */
148911 +
148912 +struct next_interesting_function {
148913 + next_interesting_function_t next;
148914 +#if BUILDING_GCC_VERSION <= 4007
148915 + VEC(next_interesting_function_t, heap) *children;
148916 +#else
148917 + vec<next_interesting_function_t, va_heap, vl_embed> *children;
148918 +#endif
148919 + const char *decl_name;
148920 + const char *context;
148921 + unsigned int hash;
148922 + unsigned int num;
148923 + enum size_overflow_mark marked;
148924 + next_interesting_function_t orig_next_node;
148925 +};
148926 +
148927 +// size_overflow_plugin.c
148928 +extern tree report_size_overflow_decl;
148929 +extern tree size_overflow_type_HI;
148930 +extern tree size_overflow_type_SI;
148931 +extern tree size_overflow_type_DI;
148932 +extern tree size_overflow_type_TI;
148933 +
148934 +
148935 +// size_overflow_plugin_hash.c
148936 +struct size_overflow_hash {
148937 + const struct size_overflow_hash * const next;
148938 + const char * const name;
148939 + const char * const context;
148940 + const unsigned int param;
148941 +};
148942 +
148943 +extern const char *get_orig_decl_name(const_tree decl);
148944 +extern bool is_size_overflow_asm(const_gimple stmt);
148945 +extern void print_missing_function(next_interesting_function_t node);
148946 +extern const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table);
148947 +extern unsigned int find_arg_number_tree(const_tree arg, const_tree func);
148948 +extern unsigned int get_decl_hash(const_tree decl, const char *decl_name);
148949 +extern const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum);
148950 +
148951 +
148952 +// intentional_overflow.c
148953 +extern enum intentional_mark get_intentional_attr_type(const_tree node);
148954 +extern tree get_size_overflow_asm_input(const gasm *stmt);
148955 +extern enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var);
148956 +extern bool is_size_overflow_insert_check_asm(const gasm *stmt);
148957 +extern enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum);
148958 +extern enum intentional_mark get_so_asm_type(const_gimple stmt);
148959 +extern const_tree get_attribute(const char* attr_name, const_tree decl);
148960 +extern bool is_a_cast_and_const_overflow(const_tree no_const_rhs);
148961 +extern bool is_const_plus_unsigned_signed_truncation(const_tree lhs);
148962 +extern bool is_a_constant_overflow(const gassign *stmt, const_tree rhs);
148963 +extern tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2);
148964 +extern tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs);
148965 +extern bool is_a_neg_overflow(const gassign *stmt, const_tree rhs);
148966 +extern enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt);
148967 +extern void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt);
148968 +extern bool neg_short_add_intentional_overflow(gassign *stmt);
148969 +
148970 +
148971 +// insert_size_overflow_asm.c
148972 +#if BUILDING_GCC_VERSION >= 4009
148973 +extern opt_pass *make_insert_size_overflow_asm_pass(void);
148974 +#else
148975 +extern struct opt_pass *make_insert_size_overflow_asm_pass(void);
148976 +#endif
148977 +extern bool search_interesting_args(tree fndecl, bool *argnums);
148978 +
148979 +
148980 +// size_overflow_misc.c
148981 +extern bool is_vararg(const_tree fn, unsigned int num);
148982 +extern tree get_ref_field(const_tree ref);
148983 +extern unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num);
148984 +extern const char *get_type_name_from_field(const_tree field_decl);
148985 +extern void set_dominance_info(void);
148986 +extern void unset_dominance_info(void);
148987 +extern tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt);
148988 +extern tree get_orig_fndecl(const_tree clone_fndecl);
148989 +extern unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum);
148990 +extern bool is_valid_cgraph_node(struct cgraph_node *node);
148991 +extern void set_current_function_decl(tree fndecl);
148992 +extern void unset_current_function_decl(void);
148993 +extern gimple get_def_stmt(const_tree node);
148994 +extern tree create_new_var(tree type);
148995 +extern gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force);
148996 +extern bool skip_types(const_tree var);
148997 +extern tree cast_a_tree(tree type, tree var);
148998 +extern bool is_size_overflow_type(const_tree var);
148999 +extern bool made_by_compiler(const_tree decl);
149000 +extern gimple get_fnptr_def_stmt(const_tree fn_ptr);
149001 +extern tree get_lhs(const_gimple stmt);
149002 +
149003 +
149004 +// size_overflow_transform.c
149005 +struct interesting_stmts {
149006 + struct interesting_stmts *next;
149007 + next_interesting_function_t next_node;
149008 + gimple first_stmt;
149009 + tree orig_node;
149010 + unsigned int num;
149011 +};
149012 +
149013 +extern unsigned int size_overflow_transform(struct cgraph_node *node);
149014 +extern tree handle_fnptr_assign(const_gimple stmt);
149015 +
149016 +
149017 +// size_overflow_transform_core.c
149018 +extern tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before);
149019 +extern tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node);
149020 +extern tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs);
149021 +extern void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before);
149022 +extern tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
149023 +extern tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before);
149024 +
149025 +
149026 +// remove_unnecessary_dup.c
149027 +extern struct opt_pass *make_remove_unnecessary_dup_pass(void);
149028 +extern void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type);
149029 +extern bool skip_expr_on_double_type(const gassign *stmt);
149030 +extern void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs);
149031 +
149032 +
149033 +// size_overflow_ipa.c
149034 +struct walk_use_def_data {
149035 + next_interesting_function_t parent;
149036 + next_interesting_function_t next_cnodes_head;
149037 + gimple_set *visited;
149038 +};
149039 +
149040 +extern const char* get_decl_context(const_tree decl);
149041 +extern void add_to_global_next_interesting_function(next_interesting_function_t new_entry);
149042 +extern bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node);
149043 +extern void push_child(next_interesting_function_t parent, next_interesting_function_t child);
149044 +extern struct cgraph_node *get_cnode(const_tree fndecl);
149045 +extern next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
149046 +extern next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data);
149047 +extern next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data);
149048 +extern void size_overflow_register_hooks(void);
149049 +#if BUILDING_GCC_VERSION >= 4009
149050 +extern opt_pass *make_size_overflow_functions_pass(void);
149051 +#else
149052 +extern struct opt_pass *make_size_overflow_functions_pass(void);
149053 +#endif
149054 +extern void size_overflow_node_removal_hook(struct cgraph_node *node, void *data);
149055 +extern next_interesting_function_t get_and_create_next_node_from_global_next_nodes(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
149056 +extern next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
149057 +extern next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
149058 +
149059 +
149060 +// size_overflow_lto.c
149061 +extern void size_overflow_read_summary_lto(void);
149062 +#if BUILDING_GCC_VERSION >= 4008
149063 +extern void size_overflow_write_summary_lto(void);
149064 +#elif BUILDING_GCC_VERSION >= 4006
149065 +extern void size_overflow_write_summary_lto(cgraph_node_set set, varpool_node_set vset);
149066 +#else
149067 +extern void size_overflow_write_summary_lto(cgraph_node_set set);
149068 +#endif
149069 +
149070 +// size_overflow_fnptrs.c
149071 +extern void handle_function_ptr_ret(struct walk_use_def_data *use_def_data, const_tree fn_ptr);
149072 +extern void check_local_variables(next_interesting_function_t next_node);
149073 +extern void check_global_variables(next_interesting_function_t cur_global);
149074 +extern next_interesting_function_t get_and_create_next_node_from_global_next_nodes_fnptr(const_tree fn_ptr, struct fn_raw_data *raw_data);
149075 +
149076 +
149077 +// size_overflow_debug.c
149078 +extern void __unused print_intentional_mark(enum intentional_mark mark);
149079 +extern unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node);
149080 +extern void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this);
149081 +extern void __unused print_global_next_interesting_functions(void);
149082 +extern void __unused print_children_chain_list(next_interesting_function_t next_node);
149083 +extern void __unused print_all_next_node_children_chain_list(next_interesting_function_t next_node);
149084 +extern const char * __unused print_so_mark_name(enum size_overflow_mark mark);
149085 +extern const char * __unused print_intentional_mark_name(enum intentional_mark mark);
149086 +
149087 +#endif
149088 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_debug.c b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
149089 new file mode 100644
149090 index 0000000..fc58e16
149091 --- /dev/null
149092 +++ b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
149093 @@ -0,0 +1,194 @@
149094 +/*
149095 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
149096 + * Licensed under the GPL v2, or (at your option) v3
149097 + *
149098 + * Homepage:
149099 + * https://github.com/ephox-gcc-plugins/size_overflow
149100 + *
149101 + * Documentation:
149102 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
149103 + *
149104 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
149105 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
149106 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
149107 + *
149108 + * Usage:
149109 + * $ make
149110 + * $ make run
149111 + */
149112 +
149113 +#include "size_overflow.h"
149114 +
149115 +void __unused print_intentional_mark(enum intentional_mark mark)
149116 +{
149117 + fprintf(stderr, "intentional mark: ");
149118 + switch (mark) {
149119 + case MARK_NO:
149120 + fprintf(stderr, "mark_no\n");
149121 + break;
149122 + case MARK_YES:
149123 + fprintf(stderr, "mark_yes\n");
149124 + break;
149125 + case MARK_TURN_OFF:
149126 + fprintf(stderr, "mark_turn_off\n");
149127 + break;
149128 + case MARK_END_INTENTIONAL:
149129 + fprintf(stderr, "mark_end_intentional\n");
149130 + break;
149131 + }
149132 +}
149133 +
149134 +unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node)
149135 +{
149136 + basic_block bb;
149137 +
149138 + fprintf(file, "dump_function function_name: %s\n", cgraph_node_name(node));
149139 +
149140 + fprintf(file, "\nstmts:\n");
149141 + FOR_EACH_BB_FN(bb, DECL_STRUCT_FUNCTION(NODE_DECL(node))) {
149142 + gimple_stmt_iterator si;
149143 +
149144 + fprintf(file, "<bb %u>:\n", bb->index);
149145 + for (si = gsi_start_phis(bb); !gsi_end_p(si); gsi_next(&si))
149146 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
149147 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
149148 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
149149 + fprintf(file, "\n");
149150 + }
149151 +
149152 + fprintf(file, "---------------------------------\n");
149153 +
149154 + return 0;
149155 +}
149156 +
149157 +static void __unused print_next_interesting_function(next_interesting_function_t node)
149158 +{
149159 + unsigned int i, children_len;
149160 + next_interesting_function_t cur;
149161 +
149162 + if (!node)
149163 + return;
149164 +
149165 +#if BUILDING_GCC_VERSION <= 4007
149166 + if (VEC_empty(next_interesting_function_t, node->children))
149167 + children_len = 0;
149168 + else
149169 + children_len = VEC_length(next_interesting_function_t, node->children);
149170 +#else
149171 + children_len = vec_safe_length(node->children);
149172 +#endif
149173 +
149174 + fprintf(stderr, "print_next_interesting_function: ptr: %p, ", node);
149175 + fprintf(stderr, "decl_name: %s, ", node->decl_name);
149176 +
149177 + fprintf(stderr, "num: %u marked: %s context: %s children len: %u\n", node->num, print_so_mark_name(node->marked), node->context, children_len);
149178 +#if BUILDING_GCC_VERSION <= 4007
149179 + if (VEC_empty(next_interesting_function_t, node->children))
149180 + return;
149181 + FOR_EACH_VEC_ELT(next_interesting_function_t, node->children, i, cur) {
149182 +#else
149183 + FOR_EACH_VEC_SAFE_ELT(node->children, i, cur) {
149184 +#endif
149185 + fprintf(stderr, "\t%u. child: %s %u %p marked: %s context: %s\n", i + 1, cur->decl_name, cur->num, cur, print_so_mark_name(cur->marked), cur->context);
149186 + }
149187 +}
149188 +
149189 +// Dump the full next_interesting_function_t list for parsing by print_dependecy.py
149190 +void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this)
149191 +{
149192 + next_interesting_function_t cur;
149193 + unsigned int len;
149194 +
149195 + fprintf(stderr, "----------------------\nnext_interesting_function_t head: %p\n", head);
149196 + for (cur = head, len = 0; cur; cur = cur->next, len++) {
149197 + fprintf(stderr, "%u. ", len + 1);
149198 + print_next_interesting_function(cur);
149199 +
149200 + fprintf(stderr, "+++++ has orig node: %p +++++\n", cur->orig_next_node);
149201 + print_next_interesting_function(cur->orig_next_node);
149202 +
149203 + if (only_this)
149204 + break;
149205 + }
149206 +
149207 + fprintf(stderr, "len: %u\n----------------------\n\n\n", len + 1);
149208 +}
149209 +
149210 +void __unused print_global_next_interesting_functions(void)
149211 +{
149212 + unsigned int i;
149213 +
149214 + fprintf(stderr, "----------------------\nprint_global_next_interesting_functions:\n----------------------\n");
149215 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
149216 + if (!global_next_interesting_function[i])
149217 + continue;
149218 + fprintf(stderr, "hash: %u\n", i);
149219 + print_next_interesting_functions_chain(global_next_interesting_function[i], false);
149220 + }
149221 + fprintf(stderr, "----------------------\n\n");
149222 +}
149223 +
149224 +// Dump the information related to the specified next_interesting_function_t for parsing by print_dependecy.py
149225 +void __unused print_children_chain_list(next_interesting_function_t next_node)
149226 +{
149227 + next_interesting_function_t cur;
149228 + unsigned int i;
149229 +
149230 +#if BUILDING_GCC_VERSION <= 4007
149231 + if (VEC_empty(next_interesting_function_t, next_node->children))
149232 + return;
149233 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, cur) {
149234 +#else
149235 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, cur) {
149236 +#endif
149237 + fprintf(stderr, "parent: %s %u (marked: %s) child: %s %u\n", next_node->decl_name, next_node->num, print_so_mark_name(next_node->marked), cur->decl_name, cur->num);
149238 + print_children_chain_list(cur);
149239 + }
149240 +}
149241 +
149242 +void __unused print_all_next_node_children_chain_list(next_interesting_function_t head)
149243 +{
149244 + next_interesting_function_t cur;
149245 +
149246 + for (cur = head; cur; cur = cur->next) {
149247 +#if BUILDING_GCC_VERSION <= 4007
149248 + if (VEC_empty(next_interesting_function_t, cur->children))
149249 +#else
149250 + if (vec_safe_length(cur->children) == 0)
149251 +#endif
149252 + continue;
149253 + fprintf(stderr, "############ START ############\n");
149254 + print_children_chain_list(cur);
149255 + fprintf(stderr, "############ END ############\n");
149256 + }
149257 +}
149258 +
149259 +const char * __unused print_intentional_mark_name(enum intentional_mark mark)
149260 +{
149261 + switch(mark) {
149262 + case MARK_NO:
149263 + return "mark no";
149264 + case MARK_YES:
149265 + return "mark yes";
149266 + case MARK_END_INTENTIONAL:
149267 + return "mark end intetional";
149268 + case MARK_TURN_OFF:
149269 + return "mark turn off";
149270 + }
149271 +
149272 + gcc_unreachable();
149273 +}
149274 +
149275 +const char * __unused print_so_mark_name(enum size_overflow_mark mark)
149276 +{
149277 + switch(mark) {
149278 + case ASM_STMT_SO_MARK:
149279 + return "asm_stmt_so_mark";
149280 + case YES_SO_MARK:
149281 + return "yes_so_mark";
149282 + case NO_SO_MARK:
149283 + return "no_so_mark";
149284 + }
149285 +
149286 + gcc_unreachable();
149287 +}
149288 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
149289 new file mode 100644
149290 index 0000000..3fc86c1
149291 --- /dev/null
149292 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
149293 @@ -0,0 +1,21744 @@
149294 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
149295 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 2-3-4 3 NULL
149296 +enable_so_size_ttm_mem_reg_8 size ttm_mem_reg 0 8 NULL
149297 +enable_so_char2uni_nls_table_12 char2uni nls_table 0 12 NULL
149298 +enable_so_nrbufs_pipe_inode_info_13 nrbufs pipe_inode_info 0 13 NULL nohasharray
149299 +enable_so_logi_dj_recv_query_paired_devices_fndecl_13 logi_dj_recv_query_paired_devices fndecl 0 13 &enable_so_nrbufs_pipe_inode_info_13
149300 +enable_so_payload_len_ipv6hdr_16 payload_len ipv6hdr 0 16 NULL
149301 +enable_so_NumPhys__EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE_17 NumPhys _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE 0 17 NULL
149302 +enable_so_max_name_len_fndecl_19 max_name_len fndecl 0 19 NULL nohasharray
149303 +enable_so_kfd_wait_on_events_fndecl_19 kfd_wait_on_events fndecl 2 19 &enable_so_max_name_len_fndecl_19
149304 +enable_so_ext4_seek_data_fndecl_21 ext4_seek_data fndecl 2 21 NULL
149305 +enable_so_dma_buf_sz_sxgbe_priv_data_24 dma_buf_sz sxgbe_priv_data 0 24 NULL nohasharray
149306 +enable_so_max_cache_pages_snd_emu10k1_24 max_cache_pages snd_emu10k1 0 24 &enable_so_dma_buf_sz_sxgbe_priv_data_24
149307 +enable_so_T9_reportid_max_mxt_data_25 T9_reportid_max mxt_data 0 25 NULL
149308 +enable_so_max_frags_vxge_hw_fifo_config_26 max_frags vxge_hw_fifo_config 0 26 NULL
149309 +enable_so_snic_reset_stats_write_fndecl_30 snic_reset_stats_write fndecl 3 30 NULL
149310 +enable_so_ocfs2_xattr_get_clusters_fndecl_34 ocfs2_xattr_get_clusters fndecl 0 34 NULL nohasharray
149311 +enable_so_ath10k_core_create_fndecl_34 ath10k_core_create fndecl 1 34 &enable_so_ocfs2_xattr_get_clusters_fndecl_34
149312 +enable_so_total_drm_buf_35 total drm_buf 0 35 NULL
149313 +enable_so_sis5595_device_add_fndecl_39 sis5595_device_add fndecl 1 39 NULL
149314 +enable_so_mc_vram_size_amdgpu_mc_45 mc_vram_size amdgpu_mc 0 45 NULL
149315 +enable_so_iwl_dbgfs_nvm_read_fndecl_54 iwl_dbgfs_nvm_read fndecl 3 54 NULL
149316 +enable_so_pattern_len_tcf_em_text_57 pattern_len tcf_em_text 0 57 NULL nohasharray
149317 +enable_so_p54_init_common_fndecl_57 p54_init_common fndecl 1 57 &enable_so_pattern_len_tcf_em_text_57
149318 +enable_so_rx_desc_count_i40evf_adapter_62 rx_desc_count i40evf_adapter 0 62 NULL nohasharray
149319 +enable_so_bin_to_hex_dup_fndecl_62 bin_to_hex_dup fndecl 2 62 &enable_so_rx_desc_count_i40evf_adapter_62
149320 +enable_so_len_nf_ct_ext_63 len nf_ct_ext 0 63 NULL
149321 +enable_so_sl811_hc_init_fndecl_66 sl811_hc_init fndecl 2-3 66 NULL
149322 +enable_so_cipso_v4_delopt_fndecl_67 cipso_v4_delopt fndecl 0 67 NULL
149323 +enable_so_npages_mlx5_pages_req_70 npages mlx5_pages_req 0 70 NULL
149324 +enable_so_mtt_seg_size_mthca_limits_72 mtt_seg_size mthca_limits 0 72 NULL
149325 +enable_so_iov_iter_get_pages_alloc_fndecl_76 iov_iter_get_pages_alloc fndecl 0-3 76 NULL
149326 +enable_so_iwch_reject_cr_fndecl_78 iwch_reject_cr fndecl 3 78 NULL
149327 +enable_so_data_size_data_queue_85 data_size data_queue 0 85 NULL nohasharray
149328 +enable_so_ieee80211_if_read_dot11MeshMaxPeerLinks_fndecl_85 ieee80211_if_read_dot11MeshMaxPeerLinks fndecl 3 85 &enable_so_data_size_data_queue_85
149329 +enable_so_ceph_dir_llseek_fndecl_99 ceph_dir_llseek fndecl 2 99 NULL
149330 +enable_so_erase_size_flash_info_100 erase_size flash_info 0 100 NULL
149331 +enable_so_ncp_do_request_fndecl_102 ncp_do_request fndecl 2-4-0 102 NULL
149332 +enable_so_fi_blkno_ocfs2_find_inode_args_104 fi_blkno ocfs2_find_inode_args 0 104 NULL
149333 +enable_so_phase_snd_usb_endpoint_106 phase snd_usb_endpoint 0 106 NULL
149334 +enable_so_kvm_read_guest_fndecl_107 kvm_read_guest fndecl 2-4 107 NULL
149335 +enable_so_add_new_gdb_meta_bg_fndecl_116 add_new_gdb_meta_bg fndecl 3 116 NULL nohasharray
149336 +enable_so_ieee80211_if_read_hw_queues_fndecl_116 ieee80211_if_read_hw_queues fndecl 3 116 &enable_so_add_new_gdb_meta_bg_fndecl_116
149337 +enable_so_buffer_min_vardecl_floppy_c_117 buffer_min vardecl_floppy.c 0 117 NULL
149338 +enable_so_needed_tailroom_net_device_118 needed_tailroom net_device 0 118 NULL
149339 +enable_so_send_remove_xattr_fndecl_122 send_remove_xattr fndecl 4 122 NULL
149340 +enable_so_ipath_reg_phys_mr_fndecl_125 ipath_reg_phys_mr fndecl 3 125 NULL
149341 +enable_so_in_ep_rtl_usb_128 in_ep rtl_usb 0 128 NULL nohasharray
149342 +enable_so_number_i40e_aqc_list_capabilities_element_resp_128 number i40e_aqc_list_capabilities_element_resp 0 128 &enable_so_in_ep_rtl_usb_128
149343 +enable_so_xfs_dir_removename_fndecl_133 xfs_dir_removename fndecl 7 133 NULL
149344 +enable_so_cifs_setxattr_fndecl_134 cifs_setxattr fndecl 4 134 NULL
149345 +enable_so_nr_pages_dma_mapping_136 nr_pages dma_mapping 0 136 NULL
149346 +enable_so_data_offset_netup_dma_139 data_offset netup_dma 0 139 NULL nohasharray
149347 +enable_so_len_io_failure_record_139 len io_failure_record 0 139 &enable_so_data_offset_netup_dma_139
149348 +enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142 n_mac_vlan_filters vfpf_set_q_filters_tlv 0 142 NULL nohasharray
149349 +enable_so_qib_alloc_mr_fndecl_142 qib_alloc_mr fndecl 3 142 &enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142
149350 +enable_so_leaf_move_items_fndecl_145 leaf_move_items fndecl 4 145 NULL
149351 +enable_so_ir_context_support_fw_ohci_147 ir_context_support fw_ohci 0 147 NULL
149352 +enable_so_jffs2_nfs_get_inode_fndecl_152 jffs2_nfs_get_inode fndecl 2 152 NULL
149353 +enable_so_uvc_endpoint_max_bpi_fndecl_155 uvc_endpoint_max_bpi fndecl 0 155 NULL
149354 +enable_so_ext4_ext_remove_space_fndecl_170 ext4_ext_remove_space fndecl 2-3 170 NULL
149355 +enable_so_acl_len_nfs_getaclres_171 acl_len nfs_getaclres 0 171 NULL
149356 +enable_so_vfs_write_fndecl_176 vfs_write fndecl 3-0 176 NULL
149357 +enable_so_ufx_read_edid_fndecl_184 ufx_read_edid fndecl 0 184 NULL
149358 +enable_so_ci_get_data_fndecl_185 ci_get_data fndecl 3 185 NULL
149359 +enable_so_length_sl811h_ep_186 length sl811h_ep 0 186 NULL
149360 +enable_so_sddr55_write_data_fndecl_188 sddr55_write_data fndecl 4-3 188 NULL
149361 +enable_so_mptctl_do_fw_download_fndecl_190 mptctl_do_fw_download fndecl 3 190 NULL
149362 +enable_so_traffic_class_ib_sa_path_rec_191 traffic_class ib_sa_path_rec 0 191 NULL
149363 +enable_so_brcmf_iovar_data_set_fndecl_192 brcmf_iovar_data_set fndecl 4 192 NULL
149364 +enable_so_give_pages_fndecl_198 give_pages fndecl 3 198 NULL
149365 +enable_so_sys_pwrite64_fndecl_206 sys_pwrite64 fndecl 3 206 NULL
149366 +enable_so_xfs_zero_file_space_fndecl_211 xfs_zero_file_space fndecl 2-3 211 NULL nohasharray
149367 +enable_so_bn_shadow_fndecl_211 bn_shadow fndecl 2 211 &enable_so_xfs_zero_file_space_fndecl_211
149368 +enable_so_cxgb_alloc_mem_fndecl_212 cxgb_alloc_mem fndecl 1 212 NULL
149369 +enable_so_copies_r10conf_216 copies r10conf 0 216 NULL
149370 +enable_so_optrom_size_qla_hw_data_230 optrom_size qla_hw_data 0 230 NULL
149371 +enable_so_pvid_ocrdma_dev_231 pvid ocrdma_dev 0 231 NULL nohasharray
149372 +enable_so_afs_cell_alloc_fndecl_231 afs_cell_alloc fndecl 2 231 &enable_so_pvid_ocrdma_dev_231
149373 +enable_so_ad9523_write_fndecl_233 ad9523_write fndecl 2 233 NULL
149374 +enable_so_iwl_dbgfs_low_latency_read_fndecl_237 iwl_dbgfs_low_latency_read fndecl 3 237 NULL
149375 +enable_so_ocfs2_mark_extent_refcounted_fndecl_240 ocfs2_mark_extent_refcounted fndecl 6-4 240 NULL
149376 +enable_so_musb_readw_vardecl_241 musb_readw vardecl 0 241 NULL
149377 +enable_so_sysv_inode_by_name_fndecl_242 sysv_inode_by_name fndecl 0 242 NULL
149378 +enable_so_adis16400_show_serial_number_fndecl_246 adis16400_show_serial_number fndecl 3 246 NULL
149379 +enable_so_offset_nvkm_vma_248 offset nvkm_vma 0 248 NULL
149380 +enable_so_amdgpu_vm_directory_size_fndecl_249 amdgpu_vm_directory_size fndecl 0 249 NULL
149381 +enable_so_ixgbevf_change_mtu_fndecl_251 ixgbevf_change_mtu fndecl 2 251 NULL nohasharray
149382 +enable_so_pclk_limit_ov6650_251 pclk_limit ov6650 0 251 &enable_so_ixgbevf_change_mtu_fndecl_251 nohasharray
149383 +enable_so_saved_skb_len_nfc_digital_dev_251 saved_skb_len nfc_digital_dev 0 251 &enable_so_pclk_limit_ov6650_251
149384 +enable_so_minimum_acpi_address32_attribute_256 minimum acpi_address32_attribute 0 256 NULL
149385 +enable_so_venus_symlink_fndecl_257 venus_symlink fndecl 6-4 257 NULL
149386 +enable_so_l2cap_parse_conf_req_fndecl_260 l2cap_parse_conf_req fndecl 0 260 NULL
149387 +enable_so_lf_entries_gfs2_leaf_263 lf_entries gfs2_leaf 0 263 NULL
149388 +enable_so_max_can_queue_fc_fcp_internal_270 max_can_queue fc_fcp_internal 0 270 NULL
149389 +enable_so_dbg_leb_change_fndecl_272 dbg_leb_change fndecl 4 272 NULL
149390 +enable_so_tcp_current_mss_fndecl_275 tcp_current_mss fndecl 0 275 NULL
149391 +enable_so_vmbus_sendpacket_multipagebuffer_fndecl_276 vmbus_sendpacket_multipagebuffer fndecl 4 276 NULL
149392 +enable_so_es_lblk_extent_status_280 es_lblk extent_status 0 280 NULL
149393 +enable_so_read_snd_midi_event_282 read snd_midi_event 0 282 NULL
149394 +enable_so_bytesperline_sh_veu_vfmt_288 bytesperline sh_veu_vfmt 0 288 NULL nohasharray
149395 +enable_so_vmscsi_size_delta_vardecl_storvsc_drv_c_288 vmscsi_size_delta vardecl_storvsc_drv.c 0 288 &enable_so_bytesperline_sh_veu_vfmt_288
149396 +enable_so_islpci_mgt_transaction_fndecl_297 islpci_mgt_transaction fndecl 5 297 NULL
149397 +enable_so__alloc_cdb_cont_fndecl_298 _alloc_cdb_cont fndecl 2 298 NULL
149398 +enable_so_xfs_qm_dqread_fndecl_302 xfs_qm_dqread fndecl 2 302 NULL nohasharray
149399 +enable_so_num_targets_dm_table_302 num_targets dm_table 0 302 &enable_so_xfs_qm_dqread_fndecl_302
149400 +enable_so_xfpregs_get_fndecl_305 xfpregs_get fndecl 4 305 NULL
149401 +enable_so_cfpkt_create_pfx_fndecl_313 cfpkt_create_pfx fndecl 2 313 NULL
149402 +enable_so_MaxBufferSize_negotiate_rsp_314 MaxBufferSize negotiate_rsp 0 314 NULL nohasharray
149403 +enable_so_ip_num_acl_subject_label_314 ip_num acl_subject_label 0 314 &enable_so_MaxBufferSize_negotiate_rsp_314
149404 +enable_so_name_len_jffs2_raw_xattr_318 name_len jffs2_raw_xattr 0 318 NULL
149405 +enable_so_num_alt_usb_usbvision_328 num_alt usb_usbvision 0 328 NULL
149406 +enable_so_start_fb_cmap_user_333 start fb_cmap_user 0 333 NULL
149407 +enable_so_block_size_se_dev_attrib_334 block_size se_dev_attrib 0 334 NULL
149408 +enable_so_done_status_atmel_spi_338 done_status atmel_spi 0 338 NULL
149409 +enable_so_udl_submit_urb_fndecl_353 udl_submit_urb fndecl 3 353 NULL
149410 +enable_so_tx_idx_bchannel_355 tx_idx bchannel 0 355 NULL
149411 +enable_so_alt_port_mthca_qp_358 alt_port mthca_qp 0 358 NULL
149412 +enable_so_bNumConfigurations_usb_device_descriptor_360 bNumConfigurations usb_device_descriptor 0 360 NULL
149413 +enable_so_link_buf_size_dvb_ca_slot_365 link_buf_size dvb_ca_slot 0 365 NULL
149414 +enable_so_length_st21nfca_atr_req_366 length st21nfca_atr_req 0 366 NULL
149415 +enable_so_fusbh200_urb_done_fndecl_371 fusbh200_urb_done fndecl 3 371 NULL
149416 +enable_so_setup_ctxt_fndecl_374 setup_ctxt fndecl 2 374 NULL nohasharray
149417 +enable_so_intel_soc_dts_iosf_init_fndecl_374 intel_soc_dts_iosf_init fndecl 2 374 &enable_so_setup_ctxt_fndecl_374
149418 +enable_so___i2400mu_send_barker_fndecl_375 __i2400mu_send_barker fndecl 3 375 NULL
149419 +enable_so_cx18_read_fndecl_384 cx18_read fndecl 3 384 NULL
149420 +enable_so_duplex_tg3_link_config_395 duplex tg3_link_config 0 395 NULL
149421 +enable_so_keyspan_pda_write_fndecl_398 keyspan_pda_write fndecl 4 398 NULL
149422 +enable_so_cyberjack_write_fndecl_399 cyberjack_write fndecl 4 399 NULL
149423 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_eqs_get_fndecl_402 mlxsw_cmd_mbox_query_aq_cap_max_num_eqs_get fndecl 0 402 NULL
149424 +enable_so_ext_clk_freq_hz_smiapp_pll_409 ext_clk_freq_hz smiapp_pll 0 409 NULL nohasharray
149425 +enable_so_result_iscsi_bsg_reply_409 result iscsi_bsg_reply 0 409 &enable_so_ext_clk_freq_hz_smiapp_pll_409
149426 +enable_so_fcp_resid_bnx2fc_cmd_412 fcp_resid bnx2fc_cmd 0 412 NULL
149427 +enable_so_base_cbuf_417 base cbuf 0 417 NULL
149428 +enable_so_mp_config_acpi_gsi_fndecl_419 mp_config_acpi_gsi fndecl 2 419 NULL
149429 +enable_so_fat_short2uni_fndecl_423 fat_short2uni fndecl 0 423 NULL
149430 +enable_so_vol_reg_size_tas571x_chip_426 vol_reg_size tas571x_chip 0 426 NULL
149431 +enable_so_status_netdev_desc_430 status netdev_desc 0 430 NULL
149432 +enable_so_twsk_obj_size_timewait_sock_ops_433 twsk_obj_size timewait_sock_ops 0 433 NULL
149433 +enable_so_hfs_file_fsync_fndecl_434 hfs_file_fsync fndecl 2-3 434 NULL
149434 +enable_so_rx_buf_sz_rhine_private_435 rx_buf_sz rhine_private 0 435 NULL
149435 +enable_so_id_alias_prop_438 id alias_prop 0 438 NULL
149436 +enable_so_get_conn_info_fndecl_440 get_conn_info fndecl 4 440 NULL
149437 +enable_so_intr_count_ql_adapter_442 intr_count ql_adapter 0 442 NULL
149438 +enable_so_challenge_len_ieee802_11_elems_444 challenge_len ieee802_11_elems 0 444 NULL
149439 +enable_so_cem_build_path_fndecl_451 cem_build_path fndecl 0 451 NULL
149440 +enable_so_width_g2d_frame_453 width g2d_frame 0 453 NULL
149441 +enable_so___kfifo_max_r_fndecl_459 __kfifo_max_r fndecl 0-1-2 459 NULL nohasharray
149442 +enable_so_root_entry_lctp_fndecl_459 root_entry_lctp fndecl 0 459 &enable_so___kfifo_max_r_fndecl_459
149443 +enable_so_e_shnum_elf64_hdr_461 e_shnum elf64_hdr 0 461 NULL
149444 +enable_so_ssp_debug_mode_read_fndecl_463 ssp_debug_mode_read fndecl 3 463 NULL
149445 +enable_so_page_size_nvme_dev_465 page_size nvme_dev 0 465 NULL
149446 +enable_so_udf_load_logicalvol_fndecl_471 udf_load_logicalvol fndecl 2 471 NULL nohasharray
149447 +enable_so_rx_rx_dropped_frame_read_fndecl_471 rx_rx_dropped_frame_read fndecl 3 471 &enable_so_udf_load_logicalvol_fndecl_471
149448 +enable_so_make_checksum_v2_fndecl_475 make_checksum_v2 fndecl 3-5 475 NULL
149449 +enable_so_map_write_fndecl_480 map_write fndecl 3 480 NULL
149450 +enable_so_diva_alloc_dma_map_fndecl_485 diva_alloc_dma_map fndecl 2 485 NULL
149451 +enable_so_ext_start_xfs_extent_486 ext_start xfs_extent 0 486 NULL
149452 +enable_so_consumed_sg_mapping_iter_487 consumed sg_mapping_iter 0 487 NULL
149453 +enable_so_nr_local_rds_rdma_args_488 nr_local rds_rdma_args 0 488 NULL
149454 +enable_so_sp2_read_i2c_fndecl_489 sp2_read_i2c fndecl 4 489 NULL
149455 +enable_so_rx_path_reset_read_fndecl_490 rx_path_reset_read fndecl 3 490 NULL
149456 +enable_so_edid_store_fndecl_491 edid_store fndecl 6 491 NULL
149457 +enable_so_sndbuf_size_net_conf_498 sndbuf_size net_conf 0 498 NULL
149458 +enable_so_cfg80211_inform_bss_width_frame_fndecl_501 cfg80211_inform_bss_width_frame fndecl 5 501 NULL
149459 +enable_so_max_seg_sz_mmc_test_area_502 max_seg_sz mmc_test_area 0 502 NULL nohasharray
149460 +enable_so_security_inode_getxattr_fndecl_502 security_inode_getxattr fndecl 0 502 &enable_so_max_seg_sz_mmc_test_area_502 nohasharray
149461 +enable_so_ll_mtu_ipw_hardware_502 ll_mtu ipw_hardware 0 502 &enable_so_security_inode_getxattr_fndecl_502
149462 +enable_so_num_virtio_mmio_vq_info_503 num virtio_mmio_vq_info 0 503 NULL
149463 +enable_so_wa_xfer_status_to_errno_fndecl_506 wa_xfer_status_to_errno fndecl 0 506 NULL
149464 +enable_so_hlen_ip6_tnl_510 hlen ip6_tnl 0 510 NULL
149465 +enable_so_si476x_radio_read_acf_blob_fndecl_515 si476x_radio_read_acf_blob fndecl 3 515 NULL
149466 +enable_so_length_qib_sge_516 length qib_sge 0 516 NULL
149467 +enable_so_gfn_guest_walkerEPT_517 gfn guest_walkerEPT 0 517 NULL
149468 +enable_so_dig_rate_snd_bt87x_board_522 dig_rate snd_bt87x_board 0 522 NULL
149469 +enable_so_grow_gnttab_list_fndecl_523 grow_gnttab_list fndecl 1 523 NULL
149470 +enable_so_videobuf_read_zerocopy_fndecl_546 videobuf_read_zerocopy fndecl 3 546 NULL
149471 +enable_so_iscsi_add_hdr_fndecl_551 iscsi_add_hdr fndecl 2 551 NULL
149472 +enable_so_leaf_paste_in_buffer_fndecl_552 leaf_paste_in_buffer fndecl 4 552 NULL nohasharray
149473 +enable_so_names_count_tomoyo_condition_552 names_count tomoyo_condition 0 552 &enable_so_leaf_paste_in_buffer_fndecl_552
149474 +enable_so_behind_page_count_r1bio_557 behind_page_count r1bio 0 557 NULL
149475 +enable_so_cmd_amdkfd_ioctl_desc_560 cmd amdkfd_ioctl_desc 0 560 NULL
149476 +enable_so_kzalloc_node_fndecl_563 kzalloc_node fndecl 1 563 NULL
149477 +enable_so_idma64_prep_slave_sg_fndecl_565 idma64_prep_slave_sg fndecl 3 565 NULL
149478 +enable_so_btrfs_item_size_nr_fndecl_572 btrfs_item_size_nr fndecl 0 572 NULL
149479 +enable_so_cfi_read_pri_fndecl_573 cfi_read_pri fndecl 3 573 NULL
149480 +enable_so_disk_secno_bplus_leaf_node_574 disk_secno bplus_leaf_node 0 574 NULL
149481 +enable_so_maxfrsize_bfa_port_cfg_s_576 maxfrsize bfa_port_cfg_s 0 576 NULL
149482 +enable_so_paging64_init_context_common_fndecl_577 paging64_init_context_common fndecl 3 577 NULL nohasharray
149483 +enable_so_ext4_swap_extents_fndecl_577 ext4_swap_extents fndecl 6-0-5-4 577 &enable_so_paging64_init_context_common_fndecl_577
149484 +enable_so_blk_update_bidi_request_fndecl_588 blk_update_bidi_request fndecl 3-4-2 588 NULL
149485 +enable_so_drm_property_create_bitmask_fndecl_591 drm_property_create_bitmask fndecl 6 591 NULL
149486 +enable_so_log_mc_entry_sz_mlx4_init_hca_param_595 log_mc_entry_sz mlx4_init_hca_param 0 595 NULL
149487 +enable_so_xmit_head_mgsl_struct_596 xmit_head mgsl_struct 0 596 NULL
149488 +enable_so_max_send_sge_ib_qp_cap_601 max_send_sge ib_qp_cap 0 601 NULL
149489 +enable_so_nr_groups_pcpu_alloc_info_602 nr_groups pcpu_alloc_info 0 602 NULL
149490 +enable_so_lcm_not_zero_fndecl_603 lcm_not_zero fndecl 2-0-1 603 NULL nohasharray
149491 +enable_so_xfs_bmapi_read_fndecl_603 xfs_bmapi_read fndecl 3-2 603 &enable_so_lcm_not_zero_fndecl_603 nohasharray
149492 +enable_so_sock_xmit_fndecl_603 sock_xmit fndecl 4 603 &enable_so_xfs_bmapi_read_fndecl_603
149493 +enable_so_FormattedSize_erase_unit_header_t_604 FormattedSize erase_unit_header_t 0 604 NULL
149494 +enable_so_getxattr_fndecl_605 getxattr fndecl 4 605 NULL nohasharray
149495 +enable_so_pvr2_v4l2_ioctl_fndecl_605 pvr2_v4l2_ioctl fndecl 2 605 &enable_so_getxattr_fndecl_605
149496 +enable_so_copy_and_ioctl_fndecl_609 copy_and_ioctl fndecl 4 609 NULL
149497 +enable_so_ftrace_size_ramoops_context_610 ftrace_size ramoops_context 0 610 NULL
149498 +enable_so_ixgbe_alloc_q_vector_fndecl_612 ixgbe_alloc_q_vector fndecl 4-6 612 NULL
149499 +enable_so_num_queue_pairs_i40e_virtchnl_vf_resource_613 num_queue_pairs i40e_virtchnl_vf_resource 0 613 NULL
149500 +enable_so_virt_end_dm_thin_new_mapping_616 virt_end dm_thin_new_mapping 0 616 NULL
149501 +enable_so_maxsize_tm6000_endpoint_618 maxsize tm6000_endpoint 0 618 NULL
149502 +enable_so_smk_user_access_fndecl_619 smk_user_access fndecl 3 619 NULL
149503 +enable_so_nvme_trans_log_supp_pages_fndecl_625 nvme_trans_log_supp_pages fndecl 3 625 NULL
149504 +enable_so_xenbus_file_read_fndecl_632 xenbus_file_read fndecl 3 632 NULL
149505 +enable_so_bfad_iocmd_port_disable_fndecl_633 bfad_iocmd_port_disable fndecl 0 633 NULL
149506 +enable_so_b43_debugfs_read_fndecl_634 b43_debugfs_read fndecl 3 634 NULL
149507 +enable_so_priv_size_mlxsw_driver_636 priv_size mlxsw_driver 0 636 NULL
149508 +enable_so_ieee80211_rx_mgmt_beacon_fndecl_637 ieee80211_rx_mgmt_beacon fndecl 3 637 NULL
149509 +enable_so_msg_len_dvb_diseqc_master_cmd_643 msg_len dvb_diseqc_master_cmd 0 643 NULL nohasharray
149510 +enable_so_d1_vring_rx_mac_643 d1 vring_rx_mac 0 643 &enable_so_msg_len_dvb_diseqc_master_cmd_643
149511 +enable_so_ocrdma_get_pbl_info_fndecl_644 ocrdma_get_pbl_info fndecl 3 644 NULL
149512 +enable_so_size_si_sm_handlers_648 size si_sm_handlers 0 648 NULL
149513 +enable_so_fat_sync_bhs_fndecl_655 fat_sync_bhs fndecl 0 655 NULL nohasharray
149514 +enable_so_tcp_try_undo_partial_fndecl_655 tcp_try_undo_partial fndecl 2 655 &enable_so_fat_sync_bhs_fndecl_655
149515 +enable_so_header_length_irda_usb_cb_657 header_length irda_usb_cb 0 657 NULL
149516 +enable_so_bfad_iocmd_debug_ctl_fndecl_658 bfad_iocmd_debug_ctl fndecl 0 658 NULL
149517 +enable_so_rtsx_usb_read_ppbuf_fndecl_659 rtsx_usb_read_ppbuf fndecl 3-0 659 NULL nohasharray
149518 +enable_so_nchannels_fs_dev_659 nchannels fs_dev 0 659 &enable_so_rtsx_usb_read_ppbuf_fndecl_659
149519 +enable_so_start_async_extent_663 start async_extent 0 663 NULL
149520 +enable_so_tx_max_size_cxgbi_device_664 tx_max_size cxgbi_device 0 664 NULL nohasharray
149521 +enable_so_evdev_do_ioctl_fndecl_664 evdev_do_ioctl fndecl 2-0 664 &enable_so_tx_max_size_cxgbi_device_664
149522 +enable_so_cw_cursor_fndecl_666 cw_cursor fndecl 4 666 NULL
149523 +enable_so___push_leaf_left_fndecl_667 __push_leaf_left fndecl 8 667 NULL
149524 +enable_so_dccph_seq2_dccp_hdr_669 dccph_seq2 dccp_hdr 0 669 NULL
149525 +enable_so_lbs_highsnr_write_fndecl_671 lbs_highsnr_write fndecl 3 671 NULL
149526 +enable_so_skb_size_nx_host_rds_ring_672 skb_size nx_host_rds_ring 0 672 NULL
149527 +enable_so_bond_change_mtu_fndecl_674 bond_change_mtu fndecl 2 674 NULL
149528 +enable_so_mac_len_sk_buff_676 mac_len sk_buff 0 676 NULL
149529 +enable_so_mbox_offset_sst_res_info_678 mbox_offset sst_res_info 0 678 NULL
149530 +enable_so_page_order_sg_scatter_hold_679 page_order sg_scatter_hold 0 679 NULL
149531 +enable_so_stats_count_smsdvb_debugfs_683 stats_count smsdvb_debugfs 0 683 NULL
149532 +enable_so_get_eeprom_len_ethtool_ops_686 get_eeprom_len ethtool_ops 0 686 NULL
149533 +enable_so_follow_page_pte_fndecl_687 follow_page_pte fndecl 2 687 NULL
149534 +enable_so_mchip_get_frame_fndecl_692 mchip_get_frame fndecl 0 692 NULL
149535 +enable_so_ttm_page_pool_free_fndecl_693 ttm_page_pool_free fndecl 2 693 NULL
149536 +enable_so_handle_pte_fault_fndecl_694 handle_pte_fault fndecl 3 694 NULL nohasharray
149537 +enable_so_paylen_newwin_ib_rmpp_hdr_694 paylen_newwin ib_rmpp_hdr 0 694 &enable_so_handle_pte_fault_fndecl_694
149538 +enable_so_size_pstore_private_696 size pstore_private 0 696 NULL nohasharray
149539 +enable_so_read_file_spec_scan_ctl_fndecl_696 read_file_spec_scan_ctl fndecl 3 696 &enable_so_size_pstore_private_696
149540 +enable_so_dut_mode_read_fndecl_698 dut_mode_read fndecl 3 698 NULL
149541 +enable_so_mthca_process_mad_fndecl_707 mthca_process_mad fndecl 3 707 NULL
149542 +enable_so_flush_end_io_fndecl_708 flush_end_io fndecl 2 708 NULL
149543 +enable_so_sig_size_s3fwrn5_fw_info_719 sig_size s3fwrn5_fw_info 0 719 NULL
149544 +enable_so_request_key_with_auxdata_fndecl_720 request_key_with_auxdata fndecl 4 720 NULL
149545 +enable_so_xfs_buf_get_map_fndecl_729 xfs_buf_get_map fndecl 3 729 NULL
149546 +enable_so_qib_ib_rcv_fndecl_734 qib_ib_rcv fndecl 4 734 NULL
149547 +enable_so_tsi148_alloc_resource_fndecl_736 tsi148_alloc_resource fndecl 2 736 NULL
149548 +enable_so_write_cache_pages_fndecl_737 write_cache_pages fndecl 0 737 NULL
149549 +enable_so_count_TxFifo_750 count TxFifo 0 750 NULL
149550 +enable_so_DataBufsSize_snd_korg1212_758 DataBufsSize snd_korg1212 0 758 NULL
149551 +enable_so_ilf_len_xfs_inode_log_format_759 ilf_len xfs_inode_log_format 0 759 NULL
149552 +enable_so_tda8083_readregs_fndecl_764 tda8083_readregs fndecl 4 764 NULL nohasharray
149553 +enable_so_controller_code_mspro_sys_info_764 controller_code mspro_sys_info 0 764 &enable_so_tda8083_readregs_fndecl_764
149554 +enable_so_iwl_trans_alloc_fndecl_767 iwl_trans_alloc fndecl 5-1 767 NULL
149555 +enable_so_len_vnic_dev_bar_768 len vnic_dev_bar 0 768 NULL
149556 +enable_so_vb2_fop_read_fndecl_771 vb2_fop_read fndecl 3 771 NULL
149557 +enable_so_truncate_one_csum_fndecl_777 truncate_one_csum fndecl 4-5 777 NULL
149558 +enable_so_num_virtio_pci_vq_info_778 num virtio_pci_vq_info 0 778 NULL
149559 +enable_so_gem_change_mtu_fndecl_785 gem_change_mtu fndecl 2 785 NULL
149560 +enable_so___fdt_scan_reserved_mem_fndecl_789 __fdt_scan_reserved_mem fndecl 1 789 NULL
149561 +enable_so_prepare_reply_buffer_fndecl_793 prepare_reply_buffer fndecl 4-3-5 793 NULL
149562 +enable_so_extent_direct_795 extent direct 0 795 NULL
149563 +enable_so_height_qxl_head_799 height qxl_head 0 799 NULL
149564 +enable_so_pci_iomap_range_fndecl_809 pci_iomap_range fndecl 4-3 809 NULL
149565 +enable_so_sdp1length__SpiCfgData_813 sdp1length _SpiCfgData 0 813 NULL
149566 +enable_so_niqflint_niq_fw_pfvf_cmd_814 niqflint_niq fw_pfvf_cmd 0 814 NULL
149567 +enable_so_request_key_auth_read_fndecl_830 request_key_auth_read fndecl 3 830 NULL
149568 +enable_so_pipeline_post_proc_swi_read_fndecl_831 pipeline_post_proc_swi_read fndecl 3 831 NULL
149569 +enable_so_SyS_sethostname_fndecl_837 SyS_sethostname fndecl 2 837 NULL
149570 +enable_so_mdata_ofsh_cyttsp4_sysinfo_data_844 mdata_ofsh cyttsp4_sysinfo_data 0 844 NULL
149571 +enable_so_s_inopb_ufs_sb_private_info_849 s_inopb ufs_sb_private_info 0 849 NULL
149572 +enable_so__picolcd_flash_write_fndecl_853 _picolcd_flash_write fndecl 4 853 NULL
149573 +enable_so_irnet_ctrl_write_fndecl_856 irnet_ctrl_write fndecl 3 856 NULL
149574 +enable_so_rsi_copy_to_card_fndecl_858 rsi_copy_to_card fndecl 3 858 NULL nohasharray
149575 +enable_so_nilfs_inode_by_name_fndecl_858 nilfs_inode_by_name fndecl 0 858 &enable_so_rsi_copy_to_card_fndecl_858
149576 +enable_so_unix_seqpacket_recvmsg_fndecl_861 unix_seqpacket_recvmsg fndecl 3 861 NULL
149577 +enable_so_qi_dqperchunk_xfs_quotainfo_863 qi_dqperchunk xfs_quotainfo 0 863 NULL
149578 +enable_so_adu_read_fndecl_866 adu_read fndecl 3 866 NULL
149579 +enable_so_safe_prepare_write_buffer_fndecl_872 safe_prepare_write_buffer fndecl 3 872 NULL
149580 +enable_so_field_count_audit_rule_data_886 field_count audit_rule_data 0 886 NULL
149581 +enable_so_octeon_read_device_mem64_fndecl_892 octeon_read_device_mem64 fndecl 0 892 NULL
149582 +enable_so_orinoco_change_mtu_fndecl_895 orinoco_change_mtu fndecl 2 895 NULL nohasharray
149583 +enable_so_forw_xfs_attr3_icleaf_hdr_895 forw xfs_attr3_icleaf_hdr 0 895 &enable_so_orinoco_change_mtu_fndecl_895
149584 +enable_so_p_srate_f_uac2_opts_896 p_srate f_uac2_opts 0 896 NULL
149585 +enable_so_vm_normal_page_fndecl_897 vm_normal_page fndecl 2 897 NULL
149586 +enable_so_rdma_copy_tail_fndecl_898 rdma_copy_tail fndecl 3 898 NULL nohasharray
149587 +enable_so_cpu_mask_len_res_opts_898 cpu_mask_len res_opts 0 898 &enable_so_rdma_copy_tail_fndecl_898
149588 +enable_so_ieee80211_if_read_dot11MeshHWMPpreqMinInterval_fndecl_899 ieee80211_if_read_dot11MeshHWMPpreqMinInterval fndecl 3 899 NULL
149589 +enable_so_user_bs_factor_ide_tape_obj_906 user_bs_factor ide_tape_obj 0 906 NULL
149590 +enable_so_good_bytes_nfs_pgio_header_909 good_bytes nfs_pgio_header 0 909 NULL nohasharray
149591 +enable_so_tcpprobe_sprint_fndecl_909 tcpprobe_sprint fndecl 0 909 &enable_so_good_bytes_nfs_pgio_header_909
149592 +enable_so_num_channels_wmi_start_scan_cmd_915 num_channels wmi_start_scan_cmd 0 915 NULL
149593 +enable_so_set_args_iw_priv_args_916 set_args iw_priv_args 0 916 NULL
149594 +enable_so_max_reply_bytes_mpt3_ioctl_command_918 max_reply_bytes mpt3_ioctl_command 0 918 NULL
149595 +enable_so_post_fifo_size__adpt_hba_919 post_fifo_size _adpt_hba 0 919 NULL
149596 +enable_so_status_word_gem_rxd_925 status_word gem_rxd 0 925 NULL nohasharray
149597 +enable_so_video_hsize_solo_dev_925 video_hsize solo_dev 0 925 &enable_so_status_word_gem_rxd_925
149598 +enable_so_isofs_bread_fndecl_929 isofs_bread fndecl 2 929 NULL
149599 +enable_so_xpnet_dev_change_mtu_fndecl_932 xpnet_dev_change_mtu fndecl 2 932 NULL
149600 +enable_so_nfrags_pkt_gl_937 nfrags pkt_gl 0 937 NULL
149601 +enable_so_max_sense_bytes_mpt2_ioctl_command_942 max_sense_bytes mpt2_ioctl_command 0 942 NULL
149602 +enable_so_icmp_len_batadv_socket_packet_944 icmp_len batadv_socket_packet 0 944 NULL
149603 +enable_so_pcpu_embed_first_chunk_fndecl_947 pcpu_embed_first_chunk fndecl 3-2-1 947 NULL nohasharray
149604 +enable_so_mei_amthif_read_fndecl_947 mei_amthif_read fndecl 4 947 &enable_so_pcpu_embed_first_chunk_fndecl_947
149605 +enable_so_lprocfs_alloc_obd_stats_fndecl_950 lprocfs_alloc_obd_stats fndecl 2 950 NULL
149606 +enable_so_pci_num_vf_fndecl_952 pci_num_vf fndecl 0 952 NULL
149607 +enable_so_ssid_len_wireless_dev_954 ssid_len wireless_dev 0 954 NULL
149608 +enable_so_length_ndis_80211_bssid_ex_955 length ndis_80211_bssid_ex 0 955 NULL
149609 +enable_so_sel_read_bool_fndecl_959 sel_read_bool fndecl 3 959 NULL
149610 +enable_so_size_wl3501_md_ind_961 size wl3501_md_ind 0 961 NULL
149611 +enable_so_compat_sys_preadv64_fndecl_968 compat_sys_preadv64 fndecl 3 968 NULL
149612 +enable_so_avc_tuner_tuneqpsk_fndecl_978 avc_tuner_tuneqpsk fndecl 0 978 NULL
149613 +enable_so_em28xx_alloc_urbs_fndecl_983 em28xx_alloc_urbs fndecl 5-6-4 983 NULL nohasharray
149614 +enable_so_s_blocks_count_hi_ext4_super_block_983 s_blocks_count_hi ext4_super_block 0 983 &enable_so_em28xx_alloc_urbs_fndecl_983
149615 +enable_so_sm501_create_subio_fndecl_985 sm501_create_subio fndecl 4-3 985 NULL
149616 +enable_so_esp6_get_mtu_fndecl_987 esp6_get_mtu fndecl 0-2 987 NULL
149617 +enable_so_total_blocks_hfsplus_fork_raw_988 total_blocks hfsplus_fork_raw 0 988 NULL
149618 +enable_so_acc_userl_accessdata_dn_989 acc_userl accessdata_dn 0 989 NULL
149619 +enable_so_unlock_extent_fndecl_990 unlock_extent fndecl 2-3 990 NULL
149620 +enable_so_gtt_size_amdgpu_mc_994 gtt_size amdgpu_mc 0 994 NULL
149621 +enable_so_btmrvl_pscmd_read_fndecl_999 btmrvl_pscmd_read fndecl 3 999 NULL
149622 +enable_so_ContainerSwitchEntries_aac_get_container_count_resp_1001 ContainerSwitchEntries aac_get_container_count_resp 0 1001 NULL
149623 +enable_so_reserve_metadata_bytes_fndecl_1002 reserve_metadata_bytes fndecl 0 1002 NULL
149624 +enable_so_cpu_count_MPT3SAS_ADAPTER_1003 cpu_count MPT3SAS_ADAPTER 0 1003 NULL
149625 +enable_so_xfs_dir3_leafn_read_fndecl_1004 xfs_dir3_leafn_read fndecl 3 1004 NULL
149626 +enable_so_ath6kl_add_bss_if_needed_fndecl_1006 ath6kl_add_bss_if_needed fndecl 6 1006 NULL
149627 +enable_so___dm_get_module_param_fndecl_1008 __dm_get_module_param fndecl 2-3-0 1008 NULL
149628 +enable_so_assoc_req_len_wmi_connect_event_1014 assoc_req_len wmi_connect_event 0 1014 NULL
149629 +enable_so_de_hash_gfs2_dirent_1015 de_hash gfs2_dirent 0 1015 NULL
149630 +enable_so_s_last_cno_nilfs_super_block_1016 s_last_cno nilfs_super_block 0 1016 NULL
149631 +enable_so_i2c_smbus_check_pec_fndecl_1018 i2c_smbus_check_pec fndecl 0 1018 NULL
149632 +enable_so_offset_kmem_cache_1021 offset kmem_cache 0 1021 NULL
149633 +enable_so_nvram_size_chip_desc_1022 nvram_size chip_desc 0 1022 NULL
149634 +enable_so_len_wcn36xx_hal_msg_header_1023 len wcn36xx_hal_msg_header 0 1023 NULL
149635 +enable_so_dlm_len_mt76_fw_header_1030 dlm_len mt76_fw_header 0 1030 NULL
149636 +enable_so_pci_scan_single_device_fndecl_1034 pci_scan_single_device fndecl 2 1034 NULL
149637 +enable_so_wq_ecount_lpfc_sli4_hba_1039 wq_ecount lpfc_sli4_hba 0 1039 NULL
149638 +enable_so_page_shift_mlx5_buf_1041 page_shift mlx5_buf 0 1041 NULL nohasharray
149639 +enable_so_jffs2_iget_fndecl_1041 jffs2_iget fndecl 2 1041 &enable_so_page_shift_mlx5_buf_1041 nohasharray
149640 +enable_so_ssb_admatch_size_fndecl_1041 ssb_admatch_size fndecl 0-1 1041 &enable_so_jffs2_iget_fndecl_1041
149641 +enable_so_iv_len_txentry_desc_1042 iv_len txentry_desc 0 1042 NULL nohasharray
149642 +enable_so_address_length_acpi_resource_fixed_io_1042 address_length acpi_resource_fixed_io 0 1042 &enable_so_iv_len_txentry_desc_1042
149643 +enable_so_vnic_dev_get_res_count_fndecl_1044 vnic_dev_get_res_count fndecl 0 1044 NULL
149644 +enable_so_read_data_done_iscsi_datain_req_1049 read_data_done iscsi_datain_req 0 1049 NULL nohasharray
149645 +enable_so_registers_gen_74x164_chip_1049 registers gen_74x164_chip 0 1049 &enable_so_read_data_done_iscsi_datain_req_1049
149646 +enable_so_bfad_iocmd_iocfc_set_intr_fndecl_1050 bfad_iocmd_iocfc_set_intr fndecl 0 1050 NULL
149647 +enable_so_m5602_urb_complete_fndecl_1052 m5602_urb_complete fndecl 3 1052 NULL
149648 +enable_so_rocker_dma_test_offset_fndecl_1055 rocker_dma_test_offset fndecl 3 1055 NULL
149649 +enable_so_nentries_ebt_replace_1059 nentries ebt_replace 0 1059 NULL
149650 +enable_so_ch_r_tail_jsm_channel_1063 ch_r_tail jsm_channel 0 1063 NULL
149651 +enable_so_data_ep_set_params_fndecl_1064 data_ep_set_params fndecl 3-4 1064 NULL
149652 +enable_so_cw_clear_fndecl_1066 cw_clear fndecl 5-3-4-6 1066 NULL
149653 +enable_so_len_left_brcmf_sdio_hdrinfo_1067 len_left brcmf_sdio_hdrinfo 0 1067 NULL
149654 +enable_so_i_dno_hpfs_inode_info_1070 i_dno hpfs_inode_info 0 1070 NULL nohasharray
149655 +enable_so_line__mgslpc_info_1070 line _mgslpc_info 0 1070 &enable_so_i_dno_hpfs_inode_info_1070
149656 +enable_so_num_min_snd_ratden_1071 num_min snd_ratden 0 1071 NULL
149657 +enable_so_private_data_len_iw_cm_conn_param_1076 private_data_len iw_cm_conn_param 0 1076 NULL
149658 +enable_so_enable_clk_ops_1078 enable clk_ops 0 1078 NULL
149659 +enable_so_rq_wqe_count_mlx5_ib_create_qp_1079 rq_wqe_count mlx5_ib_create_qp 0 1079 NULL
149660 +enable_so_ReadEEProm_fndecl_1081 ReadEEProm fndecl 3 1081 NULL
149661 +enable_so_inum_ns_common_1087 inum ns_common 0 1087 NULL
149662 +enable_so_max_srq_sz_mthca_dev_lim_1088 max_srq_sz mthca_dev_lim 0 1088 NULL
149663 +enable_so_libipw_classify_fndecl_1089 libipw_classify fndecl 0 1089 NULL
149664 +enable_so_data_start_msdos_sb_info_1100 data_start msdos_sb_info 0 1100 NULL
149665 +enable_so_num_counters_compat_ebt_replace_1102 num_counters compat_ebt_replace 0 1102 NULL
149666 +enable_so_b_cnt_mon_reader_bin_1106 b_cnt mon_reader_bin 0 1106 NULL
149667 +enable_so_rx_ring_count_e1000_adapter_1107 rx_ring_count e1000_adapter 0 1107 NULL
149668 +enable_so_cmd_sg_entries_vardecl_ib_srp_c_1108 cmd_sg_entries vardecl_ib_srp.c 0 1108 NULL
149669 +enable_so_ResponseDataLength__MPI2_SMP_PASSTHROUGH_REPLY_1113 ResponseDataLength _MPI2_SMP_PASSTHROUGH_REPLY 0 1113 NULL
149670 +enable_so_io_free_memtype_fndecl_1116 io_free_memtype fndecl 1-2 1116 NULL
149671 +enable_so_create_attr_set_fndecl_1118 create_attr_set fndecl 1 1118 NULL
149672 +enable_so_slave_cnt_bonding_1119 slave_cnt bonding 0 1119 NULL
149673 +enable_so_rxkad_decrypt_ticket_fndecl_1120 rxkad_decrypt_ticket fndecl 3 1120 NULL
149674 +enable_so_mdc800_device_read_fndecl_1123 mdc800_device_read fndecl 3 1123 NULL
149675 +enable_so_ctl_in_pipe_brcmf_usbdev_info_1124 ctl_in_pipe brcmf_usbdev_info 0 1124 NULL
149676 +enable_so_ion_handle_test_kernel_fndecl_1127 ion_handle_test_kernel fndecl 3-4 1127 NULL
149677 +enable_so_forw_xfs_dir3_icleaf_hdr_1136 forw xfs_dir3_icleaf_hdr 0 1136 NULL
149678 +enable_so_log_num_mlx4_resource_1137 log_num mlx4_resource 0 1137 NULL
149679 +enable_so_port_num_ib_mad_port_private_1140 port_num ib_mad_port_private 0 1140 NULL
149680 +enable_so_usblp_new_writeurb_fndecl_1149 usblp_new_writeurb fndecl 2 1149 NULL nohasharray
149681 +enable_so_p54spi_spi_read_fndecl_1149 p54spi_spi_read fndecl 4 1149 &enable_so_usblp_new_writeurb_fndecl_1149
149682 +enable_so_offset_mirror_1150 offset mirror 0 1150 NULL
149683 +enable_so_hw_max_sectors_se_dev_attrib_1152 hw_max_sectors se_dev_attrib 0 1152 NULL
149684 +enable_so_ntfs_rl_vcn_to_lcn_fndecl_1155 ntfs_rl_vcn_to_lcn fndecl 0-2 1155 NULL
149685 +enable_so_cbuf_data_fndecl_1158 cbuf_data fndecl 0 1158 NULL
149686 +enable_so_xstateregs_set_fndecl_1159 xstateregs_set fndecl 4 1159 NULL
149687 +enable_so_sysctl_tcp_max_reordering_vardecl_1161 sysctl_tcp_max_reordering vardecl 0 1161 NULL
149688 +enable_so_rtsx_usb_write_ppbuf_fndecl_1165 rtsx_usb_write_ppbuf fndecl 3-0 1165 NULL
149689 +enable_so_sg_len_mmc_data_1168 sg_len mmc_data 0 1168 NULL nohasharray
149690 +enable_so_nfs4_acl_bytes_fndecl_1168 nfs4_acl_bytes fndecl 0-1 1168 &enable_so_sg_len_mmc_data_1168
149691 +enable_so_flow_label_ib_global_route_1172 flow_label ib_global_route 0 1172 NULL
149692 +enable_so___set_xattr_fndecl_1176 __set_xattr fndecl 5-3 1176 NULL
149693 +enable_so_br_vlan_add_fndecl_1177 br_vlan_add fndecl 2 1177 NULL
149694 +enable_so_resp_disconnect_pg_fndecl_1178 resp_disconnect_pg fndecl 0 1178 NULL
149695 +enable_so_nr_push_drm_nouveau_gem_pushbuf_1184 nr_push drm_nouveau_gem_pushbuf 0 1184 NULL
149696 +enable_so_alloc_sglist_fndecl_1187 alloc_sglist fndecl 3-2-1 1187 NULL
149697 +enable_so_mxr_mplane_fill_fndecl_1189 mxr_mplane_fill fndecl 3-4 1189 NULL
149698 +enable_so_vme_get_size_fndecl_1191 vme_get_size fndecl 0 1191 NULL
149699 +enable_so_tx_frag_key_not_found_read_fndecl_1192 tx_frag_key_not_found_read fndecl 3 1192 NULL
149700 +enable_so_probe_resp_len_cfg80211_beacon_data_1195 probe_resp_len cfg80211_beacon_data 0 1195 NULL
149701 +enable_so_rdmarc_per_qp_mlx4_profile_1197 rdmarc_per_qp mlx4_profile 0 1197 NULL
149702 +enable_so_adf_create_ring_fndecl_1199 adf_create_ring fndecl 5 1199 NULL
149703 +enable_so_nfs4_get_security_label_fndecl_1201 nfs4_get_security_label fndecl 3 1201 NULL nohasharray
149704 +enable_so_rx_sdu_size_tsap_cb_1201 rx_sdu_size tsap_cb 0 1201 &enable_so_nfs4_get_security_label_fndecl_1201
149705 +enable_so_pvscsi_ring_pages_vardecl_vmw_pvscsi_c_1202 pvscsi_ring_pages vardecl_vmw_pvscsi.c 0 1202 NULL
149706 +enable_so_scsi_log_dump_sense_fndecl_1206 scsi_log_dump_sense fndecl 5 1206 NULL
149707 +enable_so_pcpu_mem_zalloc_fndecl_1207 pcpu_mem_zalloc fndecl 1 1207 NULL
149708 +enable_so_max_sge_mvumi_hba_1213 max_sge mvumi_hba 0 1213 NULL
149709 +enable_so_logfs_segment_write_compress_fndecl_1214 logfs_segment_write_compress fndecl 5 1214 NULL
149710 +enable_so_max_transfer_bytes_storvsc_device_1221 max_transfer_bytes storvsc_device 0 1221 NULL
149711 +enable_so_max_pkt_size_au0828_dev_1222 max_pkt_size au0828_dev 0 1222 NULL
149712 +enable_so_segno_curseg_info_1223 segno curseg_info 0 1223 NULL
149713 +enable_so_pfkey_sendmsg_fndecl_1225 pfkey_sendmsg fndecl 3 1225 NULL
149714 +enable_so_i_sblock_bfs_inode_info_1228 i_sblock bfs_inode_info 0 1228 NULL
149715 +enable_so_cached_dev_cache_miss_fndecl_1232 cached_dev_cache_miss fndecl 4 1232 NULL
149716 +enable_so_pte_hole_mm_walk_1233 pte_hole mm_walk 0 1233 NULL
149717 +enable_so_prev_chunk_sectors_r5conf_1237 prev_chunk_sectors r5conf 0 1237 NULL
149718 +enable_so_elf_headers_sz_kimage_arch_1238 elf_headers_sz kimage_arch 0 1238 NULL
149719 +enable_so_buffer_dma_zd_usb_interrupt_1239 buffer_dma zd_usb_interrupt 0 1239 NULL
149720 +enable_so_remote_settings_file_write_fndecl_1240 remote_settings_file_write fndecl 3 1240 NULL
149721 +enable_so_dlc_leaf_msg_log_message_1244 dlc leaf_msg_log_message 0 1244 NULL
149722 +enable_so_get_tdp_level_kvm_x86_ops_1250 get_tdp_level kvm_x86_ops 0 1250 NULL nohasharray
149723 +enable_so_cifs_local_to_utf16_bytes_fndecl_1250 cifs_local_to_utf16_bytes fndecl 0 1250 &enable_so_get_tdp_level_kvm_x86_ops_1250
149724 +enable_so_max_vports_lpfc_hba_1253 max_vports lpfc_hba 0 1253 NULL
149725 +enable_so_find_highest_prio_tid_fndecl_1254 find_highest_prio_tid fndecl 0 1254 NULL
149726 +enable_so_num_slaves_mlx4_dev_1258 num_slaves mlx4_dev 0 1258 NULL
149727 +enable_so_alloc32_mon_bin_get32_1260 alloc32 mon_bin_get32 0 1260 NULL
149728 +enable_so_nfs_readdir_xdr_filler_fndecl_1265 nfs_readdir_xdr_filler fndecl 0 1265 NULL
149729 +enable_so_nlmsg_len_nlmsghdr_1272 nlmsg_len nlmsghdr 0 1272 NULL
149730 +enable_so_viafb_dvp0_proc_write_fndecl_1276 viafb_dvp0_proc_write fndecl 3 1276 NULL
149731 +enable_so___lbtf_cmd_async_fndecl_1280 __lbtf_cmd_async fndecl 4 1280 NULL nohasharray
149732 +enable_so_sst_fill_and_send_cmd_fndecl_1280 sst_fill_and_send_cmd fndecl 7 1280 &enable_so___lbtf_cmd_async_fndecl_1280
149733 +enable_so_ocfs2_read_extent_block_fndecl_1285 ocfs2_read_extent_block fndecl 0-2 1285 NULL
149734 +enable_so_agp_alloc_page_array_fndecl_1289 agp_alloc_page_array fndecl 1 1289 NULL
149735 +enable_so_fw_epd_frame_1293 fw epd_frame 0 1293 NULL
149736 +enable_so_local_port_mlx4_ptys_reg_1294 local_port mlx4_ptys_reg 0 1294 NULL
149737 +enable_so_prv_size_override_lpss_device_desc_1301 prv_size_override lpss_device_desc 0 1301 NULL
149738 +enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308 wMaxControlMessage usb_cdc_mbim_desc 0 1308 NULL
149739 +enable_so_vmw_kms_stdu_surface_dirty_fndecl_1310 vmw_kms_stdu_surface_dirty fndecl 8 1310 NULL
149740 +enable_so_txhdr_len_mlxsw_driver_1313 txhdr_len mlxsw_driver 0 1313 NULL nohasharray
149741 +enable_so_number_snd_pcm_substream_1313 number snd_pcm_substream 0 1313 &enable_so_txhdr_len_mlxsw_driver_1313 nohasharray
149742 +enable_so_curr_resync_mddev_1313 curr_resync mddev 0 1313 &enable_so_number_snd_pcm_substream_1313
149743 +enable_so_vd_cbr_au_count_gru_vma_data_1314 vd_cbr_au_count gru_vma_data 0 1314 NULL
149744 +enable_so_read_kernfs_ops_1325 read kernfs_ops 0 1325 NULL
149745 +enable_so_win_size_async_state_1326 win_size async_state 0 1326 NULL
149746 +enable_so_flctl_cmdfunc_fndecl_1333 flctl_cmdfunc fndecl 3 1333 NULL
149747 +enable_so_ufs_alloc_lastblock_fndecl_1339 ufs_alloc_lastblock fndecl 2 1339 NULL
149748 +enable_so_fat_parse_short_fndecl_1348 fat_parse_short fndecl 0 1348 NULL
149749 +enable_so_current_limit_memblock_1350 current_limit memblock 0 1350 NULL
149750 +enable_so_ccp_set_dm_area_fndecl_1351 ccp_set_dm_area fndecl 4 1351 NULL
149751 +enable_so_btrfs_delalloc_reserve_space_fndecl_1354 btrfs_delalloc_reserve_space fndecl 0 1354 NULL
149752 +enable_so_MemReadHSCX_fndecl_1364 MemReadHSCX fndecl 0 1364 NULL
149753 +enable_so_len_btrfs_ordered_sum_1365 len btrfs_ordered_sum 0 1365 NULL nohasharray
149754 +enable_so_max_num_of_queues_per_device_vardecl_1365 max_num_of_queues_per_device vardecl 0 1365 &enable_so_len_btrfs_ordered_sum_1365
149755 +enable_so_tx_ring_count_xgbe_prv_data_1366 tx_ring_count xgbe_prv_data 0 1366 NULL
149756 +enable_so_len_orinoco_scan_data_1370 len orinoco_scan_data 0 1370 NULL nohasharray
149757 +enable_so_dlen_hci_sco_hdr_1370 dlen hci_sco_hdr 0 1370 &enable_so_len_orinoco_scan_data_1370
149758 +enable_so_v_total_aty128_crtc_1375 v_total aty128_crtc 0 1375 NULL
149759 +enable_so_reiserfs_get_block_fndecl_1379 reiserfs_get_block fndecl 2 1379 NULL
149760 +enable_so_w_drm_vmw_rect_1383 w drm_vmw_rect 0 1383 NULL
149761 +enable_so_ieee80211_probereq_get_fndecl_1384 ieee80211_probereq_get fndecl 5-4 1384 NULL
149762 +enable_so_iwl_dbgfs_calib_disabled_read_fndecl_1386 iwl_dbgfs_calib_disabled_read fndecl 3 1386 NULL
149763 +enable_so_vlen_nfsd3_writeargs_1388 vlen nfsd3_writeargs 0 1388 NULL
149764 +enable_so_smsc911x_rx_get_rxstatus_fndecl_1389 smsc911x_rx_get_rxstatus fndecl 0 1389 NULL
149765 +enable_so_iwl_dbgfs_rx_phyinfo_read_fndecl_1394 iwl_dbgfs_rx_phyinfo_read fndecl 3 1394 NULL
149766 +enable_so_stepped_offset_skb_seq_state_1395 stepped_offset skb_seq_state 0 1395 NULL
149767 +enable_so_sctp_setsockopt_connectx_old_fndecl_1396 sctp_setsockopt_connectx_old fndecl 3 1396 NULL
149768 +enable_so_len_wsm_hdr_1398 len wsm_hdr 0 1398 NULL
149769 +enable_so_dev_size_amd_flash_info_1399 dev_size amd_flash_info 0 1399 NULL
149770 +enable_so_usb_transport_fail_vub300_mmc_host_1403 usb_transport_fail vub300_mmc_host 0 1403 NULL
149771 +enable_so_cmd_size_scsi_host_template_1404 cmd_size scsi_host_template 0 1404 NULL
149772 +enable_so_wl1271_rx_filter_get_fields_size_fndecl_1405 wl1271_rx_filter_get_fields_size fndecl 0 1405 NULL
149773 +enable_so_num_hsi_port_1406 num hsi_port 0 1406 NULL
149774 +enable_so_ide_core_cp_entry_fndecl_1407 ide_core_cp_entry fndecl 3 1407 NULL
149775 +enable_so_ec_hdr_alsize_ubi_device_1411 ec_hdr_alsize ubi_device 0 1411 NULL
149776 +enable_so_ubifs_leb_write_fndecl_1412 ubifs_leb_write fndecl 5-4 1412 NULL nohasharray
149777 +enable_so_num_rx_bds_bcmgenet_priv_1412 num_rx_bds bcmgenet_priv 0 1412 &enable_so_ubifs_leb_write_fndecl_1412
149778 +enable_so_copy_pages_to_kvecs_fndecl_1417 copy_pages_to_kvecs fndecl 0 1417 NULL
149779 +enable_so_fill_gap_fndecl_1418 fill_gap fndecl 4-3 1418 NULL
149780 +enable_so_qlcnic_83xx_sysfs_flash_write_handler_fndecl_1419 qlcnic_83xx_sysfs_flash_write_handler fndecl 6 1419 NULL
149781 +enable_so_ocfs2_get_block_fndecl_1420 ocfs2_get_block fndecl 2 1420 NULL
149782 +enable_so_wpa_ie_len_orinoco_private_1421 wpa_ie_len orinoco_private 0 1421 NULL nohasharray
149783 +enable_so_reg_umr_fndecl_1421 reg_umr fndecl 3-5 1421 &enable_so_wpa_ie_len_orinoco_private_1421
149784 +enable_so_bch_dump_read_fndecl_1422 bch_dump_read fndecl 3 1422 NULL
149785 +enable_so_tnc_insert_fndecl_1431 tnc_insert fndecl 4 1431 NULL
149786 +enable_so_idma64_alloc_desc_fndecl_1433 idma64_alloc_desc fndecl 1 1433 NULL
149787 +enable_so_relocation_count_drm_i915_gem_exec_object2_1435 relocation_count drm_i915_gem_exec_object2 0 1435 NULL
149788 +enable_so_rdev_num_s2mps11_info_1439 rdev_num s2mps11_info 0 1439 NULL
149789 +enable_so_alloc_libipw_fndecl_1447 alloc_libipw fndecl 1 1447 NULL
149790 +enable_so_size_ip_vs_sync_mesg_1448 size ip_vs_sync_mesg 0 1448 NULL
149791 +enable_so_memcg_update_list_lru_node_fndecl_1454 memcg_update_list_lru_node fndecl 3 1454 NULL
149792 +enable_so_sys_ppoll_fndecl_1459 sys_ppoll fndecl 2 1459 NULL
149793 +enable_so_size_fw_sec_1464 size fw_sec 0 1464 NULL
149794 +enable_so_net_header_len_sctp_af_1467 net_header_len sctp_af 0 1467 NULL
149795 +enable_so_btrfs_del_inode_ref_in_log_fndecl_1471 btrfs_del_inode_ref_in_log fndecl 4 1471 NULL
149796 +enable_so_ceph_decode_32_fndecl_1473 ceph_decode_32 fndecl 0 1473 NULL
149797 +enable_so_xenbus_map_ring_valloc_pv_fndecl_1474 xenbus_map_ring_valloc_pv fndecl 3 1474 NULL
149798 +enable_so_ax25_output_fndecl_1475 ax25_output fndecl 2 1475 NULL
149799 +enable_so_iio_debugfs_write_reg_fndecl_1477 iio_debugfs_write_reg fndecl 3 1477 NULL
149800 +enable_so_pbus_size_io_fndecl_1478 pbus_size_io fndecl 2 1478 NULL
149801 +enable_so_nfs3_proc_symlink_fndecl_1479 nfs3_proc_symlink fndecl 4 1479 NULL
149802 +enable_so_iscsi_sw_tcp_send_data_prep_fndecl_1485 iscsi_sw_tcp_send_data_prep fndecl 5-4 1485 NULL
149803 +enable_so_irq_base_max8925_chip_1487 irq_base max8925_chip 0 1487 NULL
149804 +enable_so_ecryptfs_write_metadata_to_contents_fndecl_1490 ecryptfs_write_metadata_to_contents fndecl 3 1490 NULL
149805 +enable_so_de4x5_alloc_rx_buff_fndecl_1491 de4x5_alloc_rx_buff fndecl 3 1491 NULL
149806 +enable_so_n_channels_ieee80211_supported_band_1494 n_channels ieee80211_supported_band 0 1494 NULL
149807 +enable_so_blocks_count_ext4_new_group_data_1496 blocks_count ext4_new_group_data 0 1496 NULL
149808 +enable_so_ezusb_program_fndecl_1497 ezusb_program fndecl 3-4 1497 NULL
149809 +enable_so_qnq_vid_be_adapter_1499 qnq_vid be_adapter 0 1499 NULL nohasharray
149810 +enable_so_ext4_mpage_readpages_fndecl_1499 ext4_mpage_readpages fndecl 4 1499 &enable_so_qnq_vid_be_adapter_1499
149811 +enable_so_num_step_snd_ratden_1500 num_step snd_ratden 0 1500 NULL nohasharray
149812 +enable_so_cx18_copy_buf_to_user_fndecl_1500 cx18_copy_buf_to_user fndecl 4-0 1500 &enable_so_num_step_snd_ratden_1500
149813 +enable_so_uvc_video_decode_start_fndecl_1505 uvc_video_decode_start fndecl 0 1505 NULL
149814 +enable_so_print_frame_fndecl_1506 print_frame fndecl 0 1506 NULL
149815 +enable_so_bo_info_size_drm_amdgpu_bo_list_in_1510 bo_info_size drm_amdgpu_bo_list_in 0 1510 NULL
149816 +enable_so_dma_data_req_size_ivtv_1512 dma_data_req_size ivtv 0 1512 NULL
149817 +enable_so_initiate_new_session_fndecl_1514 initiate_new_session fndecl 6 1514 NULL nohasharray
149818 +enable_so___break_lease_fndecl_1514 __break_lease fndecl 0 1514 &enable_so_initiate_new_session_fndecl_1514
149819 +enable_so_sk_sndbuf_sock_1516 sk_sndbuf sock 0 1516 NULL
149820 +enable_so_shmem_file_setup_fndecl_1517 shmem_file_setup fndecl 2 1517 NULL
149821 +enable_so_buf_size_mlx4_ib_qp_1529 buf_size mlx4_ib_qp 0 1529 NULL nohasharray
149822 +enable_so_qlcnic_sriov_init_fndecl_1529 qlcnic_sriov_init fndecl 2 1529 &enable_so_buf_size_mlx4_ib_qp_1529
149823 +enable_so_eth_header_fndecl_1531 eth_header fndecl 3-6 1531 NULL
149824 +enable_so_max_rqe_ocrdma_dev_attr_1534 max_rqe ocrdma_dev_attr 0 1534 NULL
149825 +enable_so_grcan_allocate_dma_buffers_fndecl_1535 grcan_allocate_dma_buffers fndecl 2-3 1535 NULL
149826 +enable_so_readlink_inode_operations_1540 readlink inode_operations 0 1540 NULL
149827 +enable_so___es_remove_extent_fndecl_1544 __es_remove_extent fndecl 0-3-2 1544 NULL
149828 +enable_so___aa_kvmalloc_fndecl_1547 __aa_kvmalloc fndecl 1 1547 NULL
149829 +enable_so_max_gs_mlx4_srq_1550 max_gs mlx4_srq 0 1550 NULL
149830 +enable_so_beg_hdmi_pulse_1552 beg hdmi_pulse 0 1552 NULL
149831 +enable_so_rq_end_io_target_type_1559 rq_end_io target_type 0 1559 NULL
149832 +enable_so_gru_preload_tlb_fndecl_1562 gru_preload_tlb fndecl 7-4 1562 NULL
149833 +enable_so_prio_read_fndecl_1564 prio_read fndecl 2 1564 NULL
149834 +enable_so_i2cdev_write_fndecl_1565 i2cdev_write fndecl 3 1565 NULL
149835 +enable_so_libcfs_kvzalloc_fndecl_1568 libcfs_kvzalloc fndecl 1 1568 NULL
149836 +enable_so_alignment_acpi_resource_io_1569 alignment acpi_resource_io 0 1569 NULL nohasharray
149837 +enable_so_page_readlink_fndecl_1569 page_readlink fndecl 3 1569 &enable_so_alignment_acpi_resource_io_1569
149838 +enable_so_kmem_zalloc_large_fndecl_1572 kmem_zalloc_large fndecl 1 1572 NULL
149839 +enable_so_size_drm_qxl_alloc_1578 size drm_qxl_alloc 0 1578 NULL
149840 +enable_so_ndesc_srp_map_state_1582 ndesc srp_map_state 0 1582 NULL
149841 +enable_so_vb2_dvb_register_adapter_fndecl_1588 vb2_dvb_register_adapter fndecl 0 1588 NULL
149842 +enable_so_error_error_frame_non_ctrl_read_fndecl_1589 error_error_frame_non_ctrl_read fndecl 3 1589 NULL
149843 +enable_so_process_hot_add_fndecl_1590 process_hot_add fndecl 3 1590 NULL
149844 +enable_so_sector_clone_info_1593 sector clone_info 0 1593 NULL
149845 +enable_so_length_cpc_can_msg_1600 length cpc_can_msg 0 1600 NULL nohasharray
149846 +enable_so_size_icp_qat_uof_batch_init_1600 size icp_qat_uof_batch_init 0 1600 &enable_so_length_cpc_can_msg_1600 nohasharray
149847 +enable_so_target_length_spar_controlvm_parameters_header_1600 target_length spar_controlvm_parameters_header 0 1600 &enable_so_size_icp_qat_uof_batch_init_1600
149848 +enable_so_block_size_c2port_ops_1610 block_size c2port_ops 0 1610 NULL
149849 +enable_so_pppoe_sendmsg_fndecl_1612 pppoe_sendmsg fndecl 3 1612 NULL
149850 +enable_so_tsout_exchange_fndecl_1621 tsout_exchange fndecl 3 1621 NULL
149851 +enable_so_rawv6_send_hdrinc_fndecl_1625 rawv6_send_hdrinc fndecl 3 1625 NULL nohasharray
149852 +enable_so_max_frame_size_usb_usbvision_1625 max_frame_size usb_usbvision 0 1625 &enable_so_rawv6_send_hdrinc_fndecl_1625
149853 +enable_so_dt_num_devices_exofs_device_table_1626 dt_num_devices exofs_device_table 0 1626 NULL
149854 +enable_so_size_bin_attribute_1632 size bin_attribute 0 1632 NULL
149855 +enable_so_num_fw_rsc_vdev_vring_1645 num fw_rsc_vdev_vring 0 1645 NULL
149856 +enable_so_cblock_policy_result_1648 cblock policy_result 0 1648 NULL
149857 +enable_so_kobil_write_fndecl_1651 kobil_write fndecl 4 1651 NULL
149858 +enable_so_st_set_pages_fndecl_1655 st_set_pages fndecl 3 1655 NULL
149859 +enable_so_copied_rpc_pipe_msg_1658 copied rpc_pipe_msg 0 1658 NULL
149860 +enable_so_ib_register_mad_snoop_fndecl_1663 ib_register_mad_snoop fndecl 2 1663 NULL
149861 +enable_so_rds_tcp_sendmsg_fndecl_1668 rds_tcp_sendmsg fndecl 3 1668 NULL
149862 +enable_so_num_clips_drm_vmw_present_arg_1671 num_clips drm_vmw_present_arg 0 1671 NULL nohasharray
149863 +enable_so_pci_brcm_trumanage_setup_fndecl_1671 pci_brcm_trumanage_setup fndecl 4 1671 &enable_so_num_clips_drm_vmw_present_arg_1671
149864 +enable_so_bfad_iocmd_ratelim_speed_fndecl_1674 bfad_iocmd_ratelim_speed fndecl 0 1674 NULL nohasharray
149865 +enable_so_hidraw_send_report_fndecl_1674 hidraw_send_report fndecl 3 1674 &enable_so_bfad_iocmd_ratelim_speed_fndecl_1674
149866 +enable_so_vzalloc_node_fndecl_1683 vzalloc_node fndecl 1 1683 NULL
149867 +enable_so_rsrc_len_usb_hcd_1686 rsrc_len usb_hcd 0 1686 NULL
149868 +enable_so_file_size_squashfs_ldir_inode_1687 file_size squashfs_ldir_inode 0 1687 NULL
149869 +enable_so_remain_bytes_asc_q_done_info_1696 remain_bytes asc_q_done_info 0 1696 NULL
149870 +enable_so_size_grcan_dma_buffer_1702 size grcan_dma_buffer 0 1702 NULL
149871 +enable_so_divasa_remap_pci_bar_fndecl_1710 divasa_remap_pci_bar fndecl 4-3 1710 NULL nohasharray
149872 +enable_so_get_cap_size_qlcnic_hardware_ops_1710 get_cap_size qlcnic_hardware_ops 0 1710 &enable_so_divasa_remap_pci_bar_fndecl_1710 nohasharray
149873 +enable_so_linear_conf_fndecl_1710 linear_conf fndecl 2 1710 &enable_so_get_cap_size_qlcnic_hardware_ops_1710
149874 +enable_so_ext4_getblk_fndecl_1720 ext4_getblk fndecl 3 1720 NULL
149875 +enable_so_yres_drm_cmdline_mode_1722 yres drm_cmdline_mode 0 1722 NULL
149876 +enable_so_qtd_fill_fndecl_1725 qtd_fill fndecl 4-5-2-0-3 1725 NULL
149877 +enable_so_submit_io_fndecl_1726 submit_io fndecl 3 1726 NULL
149878 +enable_so_ts_num_ids_nfsd4_test_stateid_1732 ts_num_ids nfsd4_test_stateid 0 1732 NULL nohasharray
149879 +enable_so_devm_iio_device_alloc_fndecl_1732 devm_iio_device_alloc fndecl 2 1732 &enable_so_ts_num_ids_nfsd4_test_stateid_1732
149880 +enable_so_state_hmask_netns_xfrm_1733 state_hmask netns_xfrm 0 1733 NULL
149881 +enable_so___gfn_to_hva_many_fndecl_1735 __gfn_to_hva_many fndecl 0-2 1735 NULL
149882 +enable_so_l4_hdr_size_vmxnet3_tx_ctx_1737 l4_hdr_size vmxnet3_tx_ctx 0 1737 NULL
149883 +enable_so_userspace_do_request_fndecl_1738 userspace_do_request fndecl 5 1738 NULL
149884 +enable_so_pci_omegapci_setup_fndecl_1740 pci_omegapci_setup fndecl 4 1740 NULL
149885 +enable_so_ad_sd_write_reg_fndecl_1743 ad_sd_write_reg fndecl 3 1743 NULL nohasharray
149886 +enable_so_nr_packets_saa7134_ts_1743 nr_packets saa7134_ts 0 1743 &enable_so_ad_sd_write_reg_fndecl_1743
149887 +enable_so_compat_filldir_fndecl_1746 compat_filldir fndecl 3 1746 NULL
149888 +enable_so_sectorsize_btrfs_root_1747 sectorsize btrfs_root 0 1747 NULL
149889 +enable_so_si4713_send_command_fndecl_1750 si4713_send_command fndecl 6 1750 NULL
149890 +enable_so_copy_module_from_user_fndecl_1751 copy_module_from_user fndecl 2 1751 NULL
149891 +enable_so_hugetlbfs_fallocate_fndecl_1752 hugetlbfs_fallocate fndecl 3-4 1752 NULL
149892 +enable_so_it_context_mask_fw_ohci_1753 it_context_mask fw_ohci 0 1753 NULL
149893 +enable_so_ext4_remove_blocks_fndecl_1754 ext4_remove_blocks fndecl 5 1754 NULL
149894 +enable_so_len_pda_custom_wrapper_1757 len pda_custom_wrapper 0 1757 NULL nohasharray
149895 +enable_so_lustre_acl_xattr_merge2ext_fndecl_1757 lustre_acl_xattr_merge2ext fndecl 2 1757 &enable_so_len_pda_custom_wrapper_1757
149896 +enable_so_offset_scrub_nocow_inode_1762 offset scrub_nocow_inode 0 1762 NULL
149897 +enable_so_ima_show_measurements_count_fndecl_1763 ima_show_measurements_count fndecl 3 1763 NULL
149898 +enable_so___es_insert_extent_fndecl_1764 __es_insert_extent fndecl 0 1764 NULL
149899 +enable_so_size_intel_rotation_info_1772 size intel_rotation_info 0 1772 NULL
149900 +enable_so_eqe_size_mlx4_caps_1775 eqe_size mlx4_caps 0 1775 NULL
149901 +enable_so_key_length_mwifiex_wep_key_1784 key_length mwifiex_wep_key 0 1784 NULL
149902 +enable_so___of_translate_address_fndecl_1786 __of_translate_address fndecl 0 1786 NULL
149903 +enable_so_port_pd_mlx4_av_1788 port_pd mlx4_av 0 1788 NULL
149904 +enable_so_ovs_fragment_fndecl_1791 ovs_fragment fndecl 3 1791 NULL
149905 +enable_so_pitch_radeonfb_info_1792 pitch radeonfb_info 0 1792 NULL
149906 +enable_so_reiserfs_add_entry_fndecl_1797 reiserfs_add_entry fndecl 4 1797 NULL
149907 +enable_so_vub300_usb_bulk_msg_fndecl_1799 vub300_usb_bulk_msg fndecl 4-2 1799 NULL nohasharray
149908 +enable_so_security_inode_killpriv_fndecl_1799 security_inode_killpriv fndecl 0 1799 &enable_so_vub300_usb_bulk_msg_fndecl_1799
149909 +enable_so_wl1273_fm_write_data_fndecl_1803 wl1273_fm_write_data fndecl 3 1803 NULL
149910 +enable_so_num_mtt_segs_mthca_limits_1806 num_mtt_segs mthca_limits 0 1806 NULL
149911 +enable_so_mei_cl_send_fndecl_1807 mei_cl_send fndecl 3 1807 NULL
149912 +enable_so_dataInSize_mpt_ioctl_command_1808 dataInSize mpt_ioctl_command 0 1808 NULL
149913 +enable_so_udl_gem_alloc_object_fndecl_1811 udl_gem_alloc_object fndecl 2 1811 NULL
149914 +enable_so___hugepage_set_anon_rmap_fndecl_1814 __hugepage_set_anon_rmap fndecl 3 1814 NULL nohasharray
149915 +enable_so_sv_nrpools_svc_serv_1814 sv_nrpools svc_serv 0 1814 &enable_so___hugepage_set_anon_rmap_fndecl_1814
149916 +enable_so_fuse_dir_ioctl_fndecl_1818 fuse_dir_ioctl fndecl 2 1818 NULL
149917 +enable_so_bufsize_saa7134_dmasound_1821 bufsize saa7134_dmasound 0 1821 NULL
149918 +enable_so_lleft_ext4_allocation_request_1823 lleft ext4_allocation_request 0 1823 NULL nohasharray
149919 +enable_so_s_size_qib_qp_1823 s_size qib_qp 0 1823 &enable_so_lleft_ext4_allocation_request_1823
149920 +enable_so_rt2x00debug_write_eeprom_fndecl_1824 rt2x00debug_write_eeprom fndecl 3 1824 NULL
149921 +enable_so_num_vectors_e1000_adapter_1827 num_vectors e1000_adapter 0 1827 NULL
149922 +enable_so___add_prelim_ref_fndecl_1828 __add_prelim_ref fndecl 6-5-2 1828 NULL
149923 +enable_so_ntfs_ucstonls_fndecl_1834 ntfs_ucstonls fndecl 3-5 1834 NULL
149924 +enable_so_kvm_mmu_gva_to_gpa_write_fndecl_1840 kvm_mmu_gva_to_gpa_write fndecl 0 1840 NULL
149925 +enable_so_walk_system_ram_range_fndecl_1842 walk_system_ram_range fndecl 2-1 1842 NULL
149926 +enable_so_check_free_sectors_fndecl_1843 check_free_sectors fndecl 2 1843 NULL
149927 +enable_so_vm_map_ram_fndecl_1845 vm_map_ram fndecl 2 1845 NULL
149928 +enable_so_device_slot_1847 device slot 0 1847 NULL
149929 +enable_so_ncpus_xen_mc_physcpuinfo_1849 ncpus xen_mc_physcpuinfo 0 1849 NULL
149930 +enable_so_qla4_82xx_pci_mem_read_2M_fndecl_1850 qla4_82xx_pci_mem_read_2M fndecl 2 1850 NULL
149931 +enable_so_maximum_cx88_ctrl_1852 maximum cx88_ctrl 0 1852 NULL
149932 +enable_so_isr_tx_procs_read_fndecl_1855 isr_tx_procs_read fndecl 3 1855 NULL
149933 +enable_so_drm_mode_create_tv_properties_fndecl_1857 drm_mode_create_tv_properties fndecl 2 1857 NULL
149934 +enable_so_dm_write_async_fndecl_1859 dm_write_async fndecl 3 1859 NULL
149935 +enable_so_read_file_wow_fndecl_1861 read_file_wow fndecl 3 1861 NULL
149936 +enable_so_rxq_req_tg3_1873 rxq_req tg3 0 1873 NULL
149937 +enable_so_nl80211_send_rx_auth_fndecl_1876 nl80211_send_rx_auth fndecl 4 1876 NULL nohasharray
149938 +enable_so_bset_tree_bytes_fndecl_1876 bset_tree_bytes fndecl 0 1876 &enable_so_nl80211_send_rx_auth_fndecl_1876
149939 +enable_so_mwl8k_cmd_set_beacon_fndecl_1877 mwl8k_cmd_set_beacon fndecl 4 1877 NULL
149940 +enable_so_sisusb_bulkin_msg_fndecl_1878 sisusb_bulkin_msg fndecl 4-2 1878 NULL nohasharray
149941 +enable_so_buf_size_cx18_stream_1878 buf_size cx18_stream 0 1878 &enable_so_sisusb_bulkin_msg_fndecl_1878
149942 +enable_so_num_vmdq_vsis_i40e_pf_1882 num_vmdq_vsis i40e_pf 0 1882 NULL
149943 +enable_so___clear_user_fndecl_1885 __clear_user fndecl 0 1885 NULL
149944 +enable_so_partial_shdma_desc_1886 partial shdma_desc 0 1886 NULL
149945 +enable_so__iwl_dbgfs_fw_dbg_collect_write_fndecl_1890 _iwl_dbgfs_fw_dbg_collect_write fndecl 3 1890 NULL
149946 +enable_so_vmxnet3_get_hdr_len_fndecl_1891 vmxnet3_get_hdr_len fndecl 0 1891 NULL
149947 +enable_so_read_file_ani_fndecl_1898 read_file_ani fndecl 3 1898 NULL
149948 +enable_so_cq_ecount_lpfc_sli4_hba_1907 cq_ecount lpfc_sli4_hba 0 1907 NULL
149949 +enable_so_ca91cx42_master_set_fndecl_1913 ca91cx42_master_set fndecl 4 1913 NULL
149950 +enable_so_mpi_alloc_limb_space_fndecl_1925 mpi_alloc_limb_space fndecl 1 1925 NULL
149951 +enable_so_fix_unclean_leb_fndecl_1927 fix_unclean_leb fndecl 3 1927 NULL
149952 +enable_so_bfad_iocmd_fcport_disable_fndecl_1932 bfad_iocmd_fcport_disable fndecl 0 1932 NULL
149953 +enable_so_convert_ip_to_linear_fndecl_1933 convert_ip_to_linear fndecl 0 1933 NULL
149954 +enable_so_send_cap_msg_fndecl_1934 send_cap_msg fndecl 13 1934 NULL
149955 +enable_so_length_usnic_uiom_reg_1937 length usnic_uiom_reg 0 1937 NULL
149956 +enable_so_usblp_write_fndecl_1945 usblp_write fndecl 3 1945 NULL
149957 +enable_so_sd_init_fndecl_1946 sd_init fndecl 0 1946 NULL
149958 +enable_so_sv_resid_sym_ccb_1947 sv_resid sym_ccb 0 1947 NULL
149959 +enable_so_ieee80211_get_mesh_hdrlen_fndecl_1948 ieee80211_get_mesh_hdrlen fndecl 0 1948 NULL
149960 +enable_so_gss_pipe_downcall_fndecl_1949 gss_pipe_downcall fndecl 3 1949 NULL
149961 +enable_so_num_adcs_cs42xx8_driver_data_1953 num_adcs cs42xx8_driver_data 0 1953 NULL
149962 +enable_so_mcryptd_alloc_instance_fndecl_1958 mcryptd_alloc_instance fndecl 2-3 1958 NULL
149963 +enable_so___kmalloc_fndecl_1964 __kmalloc fndecl 1 1964 NULL
149964 +enable_so_xlog_get_bp_fndecl_1966 xlog_get_bp fndecl 2 1966 NULL
149965 +enable_so_tty_buffer_request_room_fndecl_1967 tty_buffer_request_room fndecl 0-2 1967 NULL
149966 +enable_so_to_dio_submit_1977 to dio_submit 0 1977 NULL nohasharray
149967 +enable_so_partitionLength_partitionDesc_1977 partitionLength partitionDesc 0 1977 &enable_so_to_dio_submit_1977
149968 +enable_so_tipc_sendmcast_fndecl_1981 tipc_sendmcast fndecl 4 1981 NULL nohasharray
149969 +enable_so_ll_md_brw_size_ll_sb_info_1981 ll_md_brw_size ll_sb_info 0 1981 &enable_so_tipc_sendmcast_fndecl_1981
149970 +enable_so_i5k_find_amb_registers_fndecl_1986 i5k_find_amb_registers fndecl 2 1986 NULL
149971 +enable_so_mwifiex_memrw_read_fndecl_1997 mwifiex_memrw_read fndecl 3 1997 NULL
149972 +enable_so_total_memory_vbe_ib_1999 total_memory vbe_ib 0 1999 NULL
149973 +enable_so_idx_len_tg3_rx_buffer_desc_2006 idx_len tg3_rx_buffer_desc 0 2006 NULL
149974 +enable_so_alauda_read_block_fndecl_2008 alauda_read_block fndecl 4 2008 NULL
149975 +enable_so_ipv6_skip_exthdr_fndecl_2016 ipv6_skip_exthdr fndecl 0-2 2016 NULL
149976 +enable_so_madvise_vma_fndecl_2019 madvise_vma fndecl 4-3 2019 NULL
149977 +enable_so_ec_i2c_count_message_fndecl_2022 ec_i2c_count_message fndecl 0-2 2022 NULL nohasharray
149978 +enable_so_doc_probe_fndecl_2022 doc_probe fndecl 1 2022 &enable_so_ec_i2c_count_message_fndecl_2022
149979 +enable_so_vga_vram_base_vardecl_vgacon_c_2024 vga_vram_base vardecl_vgacon.c 0 2024 NULL
149980 +enable_so_max_write_fuse_conn_2028 max_write fuse_conn 0 2028 NULL
149981 +enable_so_process_adv_report_fndecl_2030 process_adv_report fndecl 9 2030 NULL
149982 +enable_so_ib_umem_odp_map_dma_single_page_fndecl_2040 ib_umem_odp_map_dma_single_page fndecl 0 2040 NULL
149983 +enable_so_gss_encrypt_xdr_buf_fndecl_2050 gss_encrypt_xdr_buf fndecl 3 2050 NULL
149984 +enable_so_set_sock_size_fndecl_2051 set_sock_size fndecl 3 2051 NULL
149985 +enable_so_xfs_da_grow_inode_int_fndecl_2058 xfs_da_grow_inode_int fndecl 3 2058 NULL
149986 +enable_so_wdt87xx_i2c_xfer_fndecl_2059 wdt87xx_i2c_xfer fndecl 3-5 2059 NULL nohasharray
149987 +enable_so_getgain_fndecl_2059 getgain fndecl 0 2059 &enable_so_wdt87xx_i2c_xfer_fndecl_2059 nohasharray
149988 +enable_so_rt2x00queue_remove_l2pad_fndecl_2059 rt2x00queue_remove_l2pad fndecl 2 2059 &enable_so_getgain_fndecl_2059
149989 +enable_so_receive_n_bytes_fndecl_2063 receive_n_bytes fndecl 3 2063 NULL
149990 +enable_so_val_bytes_regmap_format_2064 val_bytes regmap_format 0 2064 NULL
149991 +enable_so_usbat_flash_read_data_fndecl_2065 usbat_flash_read_data fndecl 4 2065 NULL
149992 +enable_so_ide_dump_status_fndecl_2068 ide_dump_status fndecl 0 2068 NULL
149993 +enable_so_total_copied_iscsi_segment_2071 total_copied iscsi_segment 0 2071 NULL
149994 +enable_so_dvb_generic_ioctl_fndecl_2081 dvb_generic_ioctl fndecl 2 2081 NULL
149995 +enable_so_mei_io_cb_alloc_buf_fndecl_2088 mei_io_cb_alloc_buf fndecl 2-0 2088 NULL
149996 +enable_so___kernel_write_fndecl_2090 __kernel_write fndecl 3-0 2090 NULL
149997 +enable_so_rxd_size_bdx_priv_2091 rxd_size bdx_priv 0 2091 NULL
149998 +enable_so_sensor_xres_em28xx_v4l2_2095 sensor_xres em28xx_v4l2 0 2095 NULL
149999 +enable_so_size_nfs_fattr_2101 size nfs_fattr 0 2101 NULL
150000 +enable_so_min_odd_fndecl_2105 min_odd fndecl 0-1-2 2105 NULL
150001 +enable_so_namelen_extended_attribute_2109 namelen extended_attribute 0 2109 NULL
150002 +enable_so_dlen_nft_immediate_expr_2110 dlen nft_immediate_expr 0 2110 NULL
150003 +enable_so_max_pkt_payload_len_nci_conn_info_2111 max_pkt_payload_len nci_conn_info 0 2111 NULL
150004 +enable_so_oom_adj_read_fndecl_2116 oom_adj_read fndecl 3 2116 NULL
150005 +enable_so_ecryptfs_truncate_fndecl_2118 ecryptfs_truncate fndecl 2 2118 NULL
150006 +enable_so_rxfrag_size_ipg_nic_private_2119 rxfrag_size ipg_nic_private 0 2119 NULL
150007 +enable_so_untrack_pfn_fndecl_2124 untrack_pfn fndecl 3 2124 NULL
150008 +enable_so_gen_unique_name_fndecl_2127 gen_unique_name fndecl 0 2127 NULL
150009 +enable_so_sector_size_nd_blk_device_2130 sector_size nd_blk_device 0 2130 NULL
150010 +enable_so_dce_v10_0_afmt_update_ACR_fndecl_2133 dce_v10_0_afmt_update_ACR fndecl 2 2133 NULL
150011 +enable_so_hdrs_min_io_size_ubi_device_2134 hdrs_min_io_size ubi_device 0 2134 NULL
150012 +enable_so_offset_resp_ies_ndis_80211_assoc_info_2135 offset_resp_ies ndis_80211_assoc_info 0 2135 NULL
150013 +enable_so_req_lim_srp_rdma_ch_2136 req_lim srp_rdma_ch 0 2136 NULL
150014 +enable_so_count_skge_ring_2140 count skge_ring 0 2140 NULL
150015 +enable_so_dma_len_srp_map_state_2141 dma_len srp_map_state 0 2141 NULL nohasharray
150016 +enable_so_smb_init_fndecl_2141 smb_init fndecl 2 2141 &enable_so_dma_len_srp_map_state_2141 nohasharray
150017 +enable_so_connection_length_spar_controlvm_parameters_header_2141 connection_length spar_controlvm_parameters_header 0 2141 &enable_so_smb_init_fndecl_2141
150018 +enable_so__iwl_dbgfs_sta_drain_write_fndecl_2142 _iwl_dbgfs_sta_drain_write fndecl 3 2142 NULL
150019 +enable_so_capacity_p9_fcall_2144 capacity p9_fcall 0 2144 NULL
150020 +enable_so_sisusbcon_bmove_fndecl_2146 sisusbcon_bmove fndecl 7-5-6 2146 NULL
150021 +enable_so_multi_ios_hda_gen_spec_2147 multi_ios hda_gen_spec 0 2147 NULL
150022 +enable_so_ioc_len_obd_ioctl_hdr_2148 ioc_len obd_ioctl_hdr 0 2148 NULL
150023 +enable_so_mpc_new_length_vardecl_mpparse_c_2163 mpc_new_length vardecl_mpparse.c 0 2163 NULL nohasharray
150024 +enable_so_block_size__drive_info_struct_2163 block_size _drive_info_struct 0 2163 &enable_so_mpc_new_length_vardecl_mpparse_c_2163
150025 +enable_so___kfifo_dma_out_prepare_fndecl_2165 __kfifo_dma_out_prepare fndecl 4 2165 NULL
150026 +enable_so_lpfc_idiag_extacc_avail_get_fndecl_2170 lpfc_idiag_extacc_avail_get fndecl 3-0 2170 NULL
150027 +enable_so_read_size_perf_event_2173 read_size perf_event 0 2173 NULL
150028 +enable_so_ext4_setup_next_flex_gd_fndecl_2174 ext4_setup_next_flex_gd fndecl 4 2174 NULL
150029 +enable_so_qsfp_1_read_fndecl_2184 qsfp_1_read fndecl 3 2184 NULL
150030 +enable_so_rate_max_audioformat_2186 rate_max audioformat 0 2186 NULL nohasharray
150031 +enable_so_max_txsz_ulp_iscsi_info_2186 max_txsz ulp_iscsi_info 0 2186 &enable_so_rate_max_audioformat_2186
150032 +enable_so_bus_bm_cmd_send_i2400m_2189 bus_bm_cmd_send i2400m 0 2189 NULL
150033 +enable_so_ast_ttm_tt_create_fndecl_2190 ast_ttm_tt_create fndecl 2 2190 NULL
150034 +enable_so_qp_handle_buf_size_vmci_ctx_notify_recv_info_2191 qp_handle_buf_size vmci_ctx_notify_recv_info 0 2191 NULL
150035 +enable_so_ldlm_lock_create_fndecl_2195 ldlm_lock_create fndecl 7 2195 NULL
150036 +enable_so___btrfs_direct_write_fndecl_2197 __btrfs_direct_write fndecl 3 2197 NULL
150037 +enable_so_max_header_size_irlan_provider_cb_2198 max_header_size irlan_provider_cb 0 2198 NULL
150038 +enable_so_h_proto_ethhdr_2199 h_proto ethhdr 0 2199 NULL
150039 +enable_so_s_blocks_per_group_ext4_sb_info_2201 s_blocks_per_group ext4_sb_info 0 2201 NULL
150040 +enable_so_offs_v_fimc_frame_2215 offs_v fimc_frame 0 2215 NULL
150041 +enable_so_valuelen_xfs_attr_inactive_list_2216 valuelen xfs_attr_inactive_list 0 2216 NULL
150042 +enable_so_npads_smiapp_subdev_2220 npads smiapp_subdev 0 2220 NULL
150043 +enable_so_DH_length_eg_ctrl_info_2234 DH_length eg_ctrl_info 0 2234 NULL
150044 +enable_so_read_saa7146_use_ops_2236 read saa7146_use_ops 0 2236 NULL
150045 +enable_so_nfs_proc_readdir_fndecl_2240 nfs_proc_readdir fndecl 5 2240 NULL
150046 +enable_so_lpsn_qib_swqe_2241 lpsn qib_swqe 0 2241 NULL
150047 +enable_so_macb_change_mtu_fndecl_2242 macb_change_mtu fndecl 2 2242 NULL
150048 +enable_so_s_mb_group_prealloc_ext4_sb_info_2246 s_mb_group_prealloc ext4_sb_info 0 2246 NULL
150049 +enable_so_d_reclen_ufs_dir_entry_2247 d_reclen ufs_dir_entry 0 2247 NULL
150050 +enable_so_SYSC_prctl_fndecl_2255 SYSC_prctl fndecl 4 2255 NULL
150051 +enable_so_omfs_get_block_fndecl_2262 omfs_get_block fndecl 2 2262 NULL
150052 +enable_so_big_oops_buf_sz_vardecl_platform_c_2265 big_oops_buf_sz vardecl_platform.c 0 2265 NULL
150053 +enable_so___mmc_switch_fndecl_2268 __mmc_switch fndecl 0 2268 NULL
150054 +enable_so_compat_rw_copy_check_uvector_fndecl_2274 compat_rw_copy_check_uvector fndecl 0-3 2274 NULL nohasharray
150055 +enable_so_rxpipe_descr_host_int_trig_rx_data_read_fndecl_2274 rxpipe_descr_host_int_trig_rx_data_read fndecl 3 2274 &enable_so_compat_rw_copy_check_uvector_fndecl_2274
150056 +enable_so_transport_init_se_cmd_fndecl_2277 transport_init_se_cmd fndecl 4 2277 NULL
150057 +enable_so_num_touchids_mxt_data_2284 num_touchids mxt_data 0 2284 NULL
150058 +enable_so_write_phy_fndecl_2290 write_phy fndecl 3 2290 NULL
150059 +enable_so_scrub_extent_fndecl_2293 scrub_extent fndecl 3-2-9-4 2293 NULL
150060 +enable_so_proc_sched_autogroup_set_nice_fndecl_2296 proc_sched_autogroup_set_nice fndecl 2 2296 NULL
150061 +enable_so_bulk_out_endpointAddr_usb_lcd_2303 bulk_out_endpointAddr usb_lcd 0 2303 NULL
150062 +enable_so_sensf_res_len_nfc_target_2304 sensf_res_len nfc_target 0 2304 NULL
150063 +enable_so_isdn_net_header_fndecl_2308 isdn_net_header fndecl 3-6 2308 NULL
150064 +enable_so_af9033_wr_regs_fndecl_2314 af9033_wr_regs fndecl 4 2314 NULL nohasharray
150065 +enable_so_read_pointer_st_buffer_2314 read_pointer st_buffer 0 2314 &enable_so_af9033_wr_regs_fndecl_2314
150066 +enable_so_clipcount_v4l2_window_2316 clipcount v4l2_window 0 2316 NULL
150067 +enable_so_il_dbgfs_stations_read_fndecl_2319 il_dbgfs_stations_read fndecl 3 2319 NULL
150068 +enable_so_ieee80211_tdls_prep_mgmt_packet_fndecl_2320 ieee80211_tdls_prep_mgmt_packet fndecl 10 2320 NULL
150069 +enable_so_mmc_alloc_sg_fndecl_2323 mmc_alloc_sg fndecl 1 2323 NULL
150070 +enable_so_i915_gem_object_create_from_data_fndecl_2325 i915_gem_object_create_from_data fndecl 3 2325 NULL
150071 +enable_so_sl_vid_mlx4_cqe_2328 sl_vid mlx4_cqe 0 2328 NULL
150072 +enable_so_sendmsg_proto_ops_2329 sendmsg proto_ops 0 2329 NULL
150073 +enable_so_qp_num_ib_cm_rep_param_2338 qp_num ib_cm_rep_param 0 2338 NULL nohasharray
150074 +enable_so_size_debugfs_blob_wrapper_2338 size debugfs_blob_wrapper 0 2338 &enable_so_qp_num_ib_cm_rep_param_2338
150075 +enable_so_gfx_partition_size_amdgpu_gds_asic_info_2339 gfx_partition_size amdgpu_gds_asic_info 0 2339 NULL
150076 +enable_so_memsz_kexec_segment_2340 memsz kexec_segment 0 2340 NULL nohasharray
150077 +enable_so_rx_rx_beacon_early_term_read_fndecl_2340 rx_rx_beacon_early_term_read fndecl 3 2340 &enable_so_memsz_kexec_segment_2340
150078 +enable_so_sg_copy_to_buffer_fndecl_2349 sg_copy_to_buffer fndecl 4 2349 NULL
150079 +enable_so_dvb_dmxdev_section_callback_fndecl_2352 dvb_dmxdev_section_callback fndecl 2-4 2352 NULL
150080 +enable_so_cipso_v4_map_cat_enum_hton_fndecl_2359 cipso_v4_map_cat_enum_hton fndecl 0 2359 NULL
150081 +enable_so_fat_ioctl_filldir_fndecl_2360 fat_ioctl_filldir fndecl 3 2360 NULL
150082 +enable_so_ReplUnitNum_nftl_uci0_2366 ReplUnitNum nftl_uci0 0 2366 NULL
150083 +enable_so_count_brcmf_pno_scanresults_le_2373 count brcmf_pno_scanresults_le 0 2373 NULL nohasharray
150084 +enable_so_packet_size_st5481_in_2373 packet_size st5481_in 0 2373 &enable_so_count_brcmf_pno_scanresults_le_2373
150085 +enable_so_cache_block_lba_msb_data_2385 cache_block_lba msb_data 0 2385 NULL
150086 +enable_so_tx_buffer_size_peak_usb_adapter_2386 tx_buffer_size peak_usb_adapter 0 2386 NULL nohasharray
150087 +enable_so_batadv_tt_local_client_is_roaming_fndecl_2386 batadv_tt_local_client_is_roaming fndecl 3 2386 &enable_so_tx_buffer_size_peak_usb_adapter_2386
150088 +enable_so_va_address_drm_amdgpu_gem_va_2389 va_address drm_amdgpu_gem_va 0 2389 NULL nohasharray
150089 +enable_so_pcifront_rescan_root_fndecl_2389 pcifront_rescan_root fndecl 3 2389 &enable_so_va_address_drm_amdgpu_gem_va_2389
150090 +enable_so_check_and_mark_free_block_fndecl_2391 check_and_mark_free_block fndecl 2 2391 NULL
150091 +enable_so_xlog_do_recovery_pass_fndecl_2401 xlog_do_recovery_pass fndecl 3 2401 NULL
150092 +enable_so_asd_get_cmdctx_size_fndecl_2408 asd_get_cmdctx_size fndecl 0 2408 NULL
150093 +enable_so_pci_cardbus_resource_alignment_fndecl_2410 pci_cardbus_resource_alignment fndecl 0 2410 NULL
150094 +enable_so___jfs_getxattr_fndecl_2412 __jfs_getxattr fndecl 0 2412 NULL
150095 +enable_so_cfi_intelext_write_buffers_fndecl_2417 cfi_intelext_write_buffers fndecl 3 2417 NULL nohasharray
150096 +enable_so_rspq_size_qset_params_2417 rspq_size qset_params 0 2417 &enable_so_cfi_intelext_write_buffers_fndecl_2417
150097 +enable_so_get_count_dm_space_map_2419 get_count dm_space_map 0 2419 NULL
150098 +enable_so_ocfs2_acl_from_xattr_fndecl_2423 ocfs2_acl_from_xattr fndecl 2 2423 NULL
150099 +enable_so_omtu_l2cap_chan_2424 omtu l2cap_chan 0 2424 NULL
150100 +enable_so_smtcfb_write_fndecl_2433 smtcfb_write fndecl 3 2433 NULL
150101 +enable_so_ib_umem_copy_from_fndecl_2435 ib_umem_copy_from fndecl 3-4 2435 NULL
150102 +enable_so_bcm3510_writebytes_fndecl_2436 bcm3510_writebytes fndecl 4 2436 NULL
150103 +enable_so_mtip_submit_request_fndecl_2437 mtip_submit_request fndecl 0 2437 NULL
150104 +enable_so_init_asiliant_fndecl_2438 init_asiliant fndecl 2 2438 NULL
150105 +enable_so_carl9170_rx_copy_data_fndecl_2443 carl9170_rx_copy_data fndecl 2 2443 NULL
150106 +enable_so_key_len_key_params_2447 key_len key_params 0 2447 NULL
150107 +enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 ocfs2_lock_refcount_allocators fndecl 3-2 2461 NULL nohasharray
150108 +enable_so_fb_base_bochs_device_2461 fb_base bochs_device 0 2461 &enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 nohasharray
150109 +enable_so_rsize_p9_conn_2461 rsize p9_conn 0 2461 &enable_so_fb_base_bochs_device_2461
150110 +enable_so_tomoyo_read_control_fndecl_2465 tomoyo_read_control fndecl 3 2465 NULL
150111 +enable_so_regmap_register_patch_fndecl_2466 regmap_register_patch fndecl 3 2466 NULL
150112 +enable_so_proc_maps_open_fndecl_2468 proc_maps_open fndecl 4 2468 NULL nohasharray
150113 +enable_so_rtllib_alloc_txb_fndecl_2468 rtllib_alloc_txb fndecl 1 2468 &enable_so_proc_maps_open_fndecl_2468
150114 +enable_so_maxpacket_usb_ep_2473 maxpacket usb_ep 0 2473 NULL
150115 +enable_so_ixgb_change_mtu_fndecl_2482 ixgb_change_mtu fndecl 2 2482 NULL
150116 +enable_so_num_vf_en_nicpf_2486 num_vf_en nicpf 0 2486 NULL
150117 +enable_so_tcp_sacktag_one_fndecl_2487 tcp_sacktag_one fndecl 7 2487 NULL
150118 +enable_so_ocfs2_xattr_get_nolock_fndecl_2493 ocfs2_xattr_get_nolock fndecl 0 2493 NULL
150119 +enable_so_btrfs_find_all_leafs_fndecl_2499 btrfs_find_all_leafs fndecl 3 2499 NULL
150120 +enable_so_hard_mtu_lan78xx_net_2507 hard_mtu lan78xx_net 0 2507 NULL
150121 +enable_so_size_arpt_replace_2509 size arpt_replace 0 2509 NULL
150122 +enable_so_unmap_alignment_scsi_disk_2514 unmap_alignment scsi_disk 0 2514 NULL
150123 +enable_so_evdev_ioctl_handler_fndecl_2522 evdev_ioctl_handler fndecl 2 2522 NULL
150124 +enable_so_usbpn_set_mtu_fndecl_2527 usbpn_set_mtu fndecl 2 2527 NULL
150125 +enable_so_vfio_unpin_pages_fndecl_2528 vfio_unpin_pages fndecl 0 2528 NULL
150126 +enable_so___nf_nat_mangle_tcp_packet_fndecl_2531 __nf_nat_mangle_tcp_packet fndecl 6-8 2531 NULL
150127 +enable_so_should_remove_suid_fndecl_2532 should_remove_suid fndecl 0 2532 NULL
150128 +enable_so_ocfs2_direct_IO_extend_no_holes_fndecl_2534 ocfs2_direct_IO_extend_no_holes fndecl 3 2534 NULL
150129 +enable_so_l2down_create_fndecl_2536 l2down_create fndecl 4 2536 NULL
150130 +enable_so_mthca_alloc_init_fndecl_2537 mthca_alloc_init fndecl 3-2 2537 NULL
150131 +enable_so_tcp_shifted_skb_fndecl_2543 tcp_shifted_skb fndecl 4 2543 NULL
150132 +enable_so___wa_seg_submit_fndecl_2547 __wa_seg_submit fndecl 0 2547 NULL nohasharray
150133 +enable_so_lprocfs_wr_import_fndecl_2547 lprocfs_wr_import fndecl 3 2547 &enable_so___wa_seg_submit_fndecl_2547
150134 +enable_so___kmem_cache_alias_fndecl_2551 __kmem_cache_alias fndecl 3-2 2551 NULL
150135 +enable_so_vm_brk_fndecl_2552 vm_brk fndecl 1-2 2552 NULL
150136 +enable_so_dma_maxpq_fndecl_2555 dma_maxpq fndecl 0 2555 NULL
150137 +enable_so_off_fuse_dirent_2561 off fuse_dirent 0 2561 NULL
150138 +enable_so_active_duplex_niu_link_config_2566 active_duplex niu_link_config 0 2566 NULL
150139 +enable_so_hdsp_external_sample_rate_fndecl_2568 hdsp_external_sample_rate fndecl 0 2568 NULL
150140 +enable_so_extend_brk_fndecl_2574 extend_brk fndecl 2-1 2574 NULL
150141 +enable_so___tun_chr_ioctl_fndecl_2575 __tun_chr_ioctl fndecl 4 2575 NULL
150142 +enable_so_aio_offset_iocb_2576 aio_offset iocb 0 2576 NULL nohasharray
150143 +enable_so_skb_checksum_trimmed_fndecl_2576 skb_checksum_trimmed fndecl 2 2576 &enable_so_aio_offset_iocb_2576
150144 +enable_so_len_patch_info_2583 len patch_info 0 2583 NULL
150145 +enable_so_get_memory_block_size_fndecl_2600 get_memory_block_size fndecl 0 2600 NULL nohasharray
150146 +enable_so_page_cache_tree_insert_fndecl_2600 page_cache_tree_insert fndecl 0 2600 &enable_so_get_memory_block_size_fndecl_2600
150147 +enable_so_maxfrsize_bfa_fcs_rport_s_2601 maxfrsize bfa_fcs_rport_s 0 2601 NULL
150148 +enable_so_mesh_table_alloc_fndecl_2610 mesh_table_alloc fndecl 1 2610 NULL
150149 +enable_so_ld_active_tgt_count_lov_desc_2613 ld_active_tgt_count lov_desc 0 2613 NULL
150150 +enable_so_dst_maxburst_dma_slave_config_2619 dst_maxburst dma_slave_config 0 2619 NULL
150151 +enable_so_len_whc_std_2626 len whc_std 0 2626 NULL
150152 +enable_so_ptn3460_read_bytes_fndecl_2627 ptn3460_read_bytes fndecl 4 2627 NULL
150153 +enable_so_snd_soc_params_to_frame_size_fndecl_2630 snd_soc_params_to_frame_size fndecl 0 2630 NULL nohasharray
150154 +enable_so_total_vm_mm_struct_2630 total_vm mm_struct 0 2630 &enable_so_snd_soc_params_to_frame_size_fndecl_2630
150155 +enable_so_radeon_vram_location_fndecl_2634 radeon_vram_location fndecl 3 2634 NULL
150156 +enable_so_bop_lookup_contig_nilfs_bmap_operations_2637 bop_lookup_contig nilfs_bmap_operations 0 2637 NULL
150157 +enable_so_regmap_spi_gather_write_fndecl_2639 regmap_spi_gather_write fndecl 3-5 2639 NULL
150158 +enable_so_num_cpu_pages_amdgpu_gart_2640 num_cpu_pages amdgpu_gart 0 2640 NULL
150159 +enable_so_rx_bufshift_rtl_stats_2641 rx_bufshift rtl_stats 0 2641 NULL
150160 +enable_so_sys_read_fndecl_2644 sys_read fndecl 3 2644 NULL
150161 +enable_so_max_low_pfn_mapped_vardecl_2650 max_low_pfn_mapped vardecl 0 2650 NULL
150162 +enable_so_pktgen_alloc_skb_fndecl_2658 pktgen_alloc_skb fndecl 3 2658 NULL nohasharray
150163 +enable_so_resync_max_mddev_2658 resync_max mddev 0 2658 &enable_so_pktgen_alloc_skb_fndecl_2658
150164 +enable_so_ath10k_debug_fw_reset_stats_read_fndecl_2660 ath10k_debug_fw_reset_stats_read fndecl 3 2660 NULL nohasharray
150165 +enable_so_alloc_large_system_hash_fndecl_2660 alloc_large_system_hash fndecl 2 2660 &enable_so_ath10k_debug_fw_reset_stats_read_fndecl_2660
150166 +enable_so_dlen_hci_acl_hdr_2672 dlen hci_acl_hdr 0 2672 NULL nohasharray
150167 +enable_so_evdev_ioctl_fndecl_2672 evdev_ioctl fndecl 2 2672 &enable_so_dlen_hci_acl_hdr_2672
150168 +enable_so_ee_block_ext4_extent_2673 ee_block ext4_extent 0 2673 NULL
150169 +enable_so_scif_user_recv_fndecl_2675 scif_user_recv fndecl 3 2675 NULL nohasharray
150170 +enable_so_bbt_erase_shift_bbm_info_2675 bbt_erase_shift bbm_info 0 2675 &enable_so_scif_user_recv_fndecl_2675
150171 +enable_so_TmpDcm_zoran_jpg_settings_2679 TmpDcm zoran_jpg_settings 0 2679 NULL
150172 +enable_so_mad_len_ib_mad_recv_wc_2683 mad_len ib_mad_recv_wc 0 2683 NULL
150173 +enable_so_logo_lines_vardecl_fbcon_c_2685 logo_lines vardecl_fbcon.c 0 2685 NULL
150174 +enable_so_queue_reply_fndecl_2691 queue_reply fndecl 3 2691 NULL
150175 +enable_so_pkt_finish_packet_fndecl_2701 pkt_finish_packet fndecl 2 2701 NULL
150176 +enable_so_crash_shrink_memory_fndecl_2706 crash_shrink_memory fndecl 1 2706 NULL
150177 +enable_so_src_len_ccp_sha_engine_2711 src_len ccp_sha_engine 0 2711 NULL nohasharray
150178 +enable_so_zoran_write_fndecl_2711 zoran_write fndecl 3 2711 &enable_so_src_len_ccp_sha_engine_2711
150179 +enable_so_u132_hcd_bulk_output_sent_fndecl_2715 u132_hcd_bulk_output_sent fndecl 4 2715 NULL
150180 +enable_so_mt7601u_usb_alloc_buf_fndecl_2716 mt7601u_usb_alloc_buf fndecl 2 2716 NULL
150181 +enable_so_bytesused_v4l2_buffer_2717 bytesused v4l2_buffer 0 2717 NULL
150182 +enable_so_handle_received_packet_fndecl_2730 handle_received_packet fndecl 3 2730 NULL
150183 +enable_so_get_res_add_size_fndecl_2740 get_res_add_size fndecl 0 2740 NULL
150184 +enable_so_iov_iter_get_pages_fndecl_2747 iov_iter_get_pages fndecl 0-4-3 2747 NULL
150185 +enable_so_mem_vardecl_applicom_c_2753 mem vardecl_applicom.c 0 2753 NULL
150186 +enable_so_rfcomm_send_test_fndecl_2760 rfcomm_send_test fndecl 4 2760 NULL nohasharray
150187 +enable_so_cache_write_procfs_fndecl_2760 cache_write_procfs fndecl 3 2760 &enable_so_rfcomm_send_test_fndecl_2760
150188 +enable_so_qib_user_sdma_alloc_header_fndecl_2761 qib_user_sdma_alloc_header fndecl 2 2761 NULL
150189 +enable_so_ecryptfs_write_fndecl_2763 ecryptfs_write fndecl 4-3 2763 NULL
150190 +enable_so_qnx6_match_fndecl_2766 qnx6_match fndecl 0 2766 NULL
150191 +enable_so_u_ssize_user32_2770 u_ssize user32 0 2770 NULL
150192 +enable_so_ieee80211_alloc_hw_nm_fndecl_2774 ieee80211_alloc_hw_nm fndecl 1 2774 NULL
150193 +enable_so_batadv_check_unicast_packet_fndecl_2775 batadv_check_unicast_packet fndecl 3 2775 NULL nohasharray
150194 +enable_so_fw_mon_size_iwl_trans_pcie_2775 fw_mon_size iwl_trans_pcie 0 2775 &enable_so_batadv_check_unicast_packet_fndecl_2775
150195 +enable_so_uhci_result_common_fndecl_2788 uhci_result_common fndecl 0 2788 NULL
150196 +enable_so_pkcs7_sig_note_skid_fndecl_2795 pkcs7_sig_note_skid fndecl 5 2795 NULL
150197 +enable_so_iobase_vardecl_l440gx_c_2797 iobase vardecl_l440gx.c 0 2797 NULL
150198 +enable_so_sb_inodelog_xfs_sb_2799 sb_inodelog xfs_sb 0 2799 NULL
150199 +enable_so_st21nfca_hci_se_io_fndecl_2800 st21nfca_hci_se_io fndecl 4 2800 NULL nohasharray
150200 +enable_so_mp_find_ioapic_pin_fndecl_2800 mp_find_ioapic_pin fndecl 0-2 2800 &enable_so_st21nfca_hci_se_io_fndecl_2800
150201 +enable_so_put_chars_fndecl_2801 put_chars fndecl 3 2801 NULL
150202 +enable_so_usb_stor_set_xfer_buf_fndecl_2809 usb_stor_set_xfer_buf fndecl 2 2809 NULL
150203 +enable_so_num_active_queues_i40evf_adapter_2813 num_active_queues i40evf_adapter 0 2813 NULL
150204 +enable_so_num_cnic_queues_bnx2x_2816 num_cnic_queues bnx2x 0 2816 NULL
150205 +enable_so__sp2d_min_pg_fndecl_2819 _sp2d_min_pg fndecl 0 2819 NULL
150206 +enable_so_rtsx_pci_dma_map_sg_fndecl_2820 rtsx_pci_dma_map_sg fndecl 0 2820 NULL
150207 +enable_so_VerDcm_zoran_jpg_settings_2823 VerDcm zoran_jpg_settings 0 2823 NULL
150208 +enable_so_btrfs_get_16_fndecl_2836 btrfs_get_16 fndecl 0 2836 NULL
150209 +enable_so_ureg_align_qib_devdata_2841 ureg_align qib_devdata 0 2841 NULL
150210 +enable_so_max_data_size_ath6kl_bmi_2842 max_data_size ath6kl_bmi 0 2842 NULL
150211 +enable_so_dccm2_len_iwl_cfg_2852 dccm2_len iwl_cfg 0 2852 NULL
150212 +enable_so_phys_size_hfs_inode_info_2856 phys_size hfs_inode_info 0 2856 NULL nohasharray
150213 +enable_so_bit_offset_nvmem_cell_2856 bit_offset nvmem_cell 0 2856 &enable_so_phys_size_hfs_inode_info_2856
150214 +enable_so_btrfs_reloc_clone_csums_fndecl_2862 btrfs_reloc_clone_csums fndecl 3-2 2862 NULL
150215 +enable_so_q_depth_nvme_dev_2866 q_depth nvme_dev 0 2866 NULL nohasharray
150216 +enable_so_zd_usb_read_fw_fndecl_2866 zd_usb_read_fw fndecl 4 2866 &enable_so_q_depth_nvme_dev_2866
150217 +enable_so_max_sst_algo_control_2868 max sst_algo_control 0 2868 NULL
150218 +enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869 secondary_bin_size drm_mga_dma_bootstrap 0 2869 NULL nohasharray
150219 +enable_so_sys_recvfrom_fndecl_2869 sys_recvfrom fndecl 3 2869 &enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869
150220 +enable_so_cmodio_id_vardecl_janz_cmodio_c_2872 cmodio_id vardecl_janz-cmodio.c 0 2872 NULL
150221 +enable_so_drm_gem_object_init_fndecl_2882 drm_gem_object_init fndecl 3 2882 NULL nohasharray
150222 +enable_so_sg_init_one_fndecl_2882 sg_init_one fndecl 3 2882 &enable_so_drm_gem_object_init_fndecl_2882
150223 +enable_so_qlcnic_sriov_pf_enable_fndecl_2884 qlcnic_sriov_pf_enable fndecl 2 2884 NULL
150224 +enable_so_n_notifiers_vmci_ctx_2889 n_notifiers vmci_ctx 0 2889 NULL
150225 +enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892 ieee80211_tdls_add_chan_switch_resp_ies fndecl 7 2892 NULL nohasharray
150226 +enable_so_pca953x_setup_gpio_fndecl_2892 pca953x_setup_gpio fndecl 2 2892 &enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892
150227 +enable_so_set_max_cos_est_fndecl_2893 set_max_cos_est fndecl 0 2893 NULL
150228 +enable_so_prl_count_ip_tunnel_2900 prl_count ip_tunnel 0 2900 NULL
150229 +enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901 xfs_bmapi_reserve_delalloc fndecl 2 2901 NULL nohasharray
150230 +enable_so_nf_ct_seq_adjust_fndecl_2901 nf_ct_seq_adjust fndecl 4 2901 &enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901
150231 +enable_so_mem_rw_fndecl_2902 mem_rw fndecl 3 2902 NULL
150232 +enable_so_tx_max_out_p_vardecl_mptlan_c_2906 tx_max_out_p vardecl_mptlan.c 0 2906 NULL
150233 +enable_so_chroma_size_s5p_mfc_ctx_2911 chroma_size s5p_mfc_ctx 0 2911 NULL
150234 +enable_so_length_usbhs_pkt_2912 length usbhs_pkt 0 2912 NULL
150235 +enable_so_tda1004x_do_upload_fndecl_2916 tda1004x_do_upload fndecl 3 2916 NULL
150236 +enable_so_discard_swap_cluster_fndecl_2926 discard_swap_cluster fndecl 3-2 2926 NULL
150237 +enable_so_rx_buf_size_octeon_nic_if_config_2928 rx_buf_size octeon_nic_if_config 0 2928 NULL nohasharray
150238 +enable_so_bytes_left_nfs_direct_req_2928 bytes_left nfs_direct_req 0 2928 &enable_so_rx_buf_size_octeon_nic_if_config_2928
150239 +enable_so_rx_num_pgs_tp_params_2929 rx_num_pgs tp_params 0 2929 NULL
150240 +enable_so_tx_cnt_isac_2931 tx_cnt isac 0 2931 NULL nohasharray
150241 +enable_so_pno_blkpg_partition_2931 pno blkpg_partition 0 2931 &enable_so_tx_cnt_isac_2931
150242 +enable_so_fnic_fc_trace_max_pages_vardecl_2932 fnic_fc_trace_max_pages vardecl 0 2932 NULL
150243 +enable_so_tx_ring_count_ixgbevf_adapter_2933 tx_ring_count ixgbevf_adapter 0 2933 NULL
150244 +enable_so_max_ndp_size_cdc_ncm_ctx_2942 max_ndp_size cdc_ncm_ctx 0 2942 NULL
150245 +enable_so_sys_remap_file_pages_fndecl_2943 sys_remap_file_pages fndecl 2-4-1 2943 NULL
150246 +enable_so_devm_ioremap_wc_fndecl_2945 devm_ioremap_wc fndecl 3-2 2945 NULL
150247 +enable_so_HorDcm_zoran_jpg_settings_2947 HorDcm zoran_jpg_settings 0 2947 NULL nohasharray
150248 +enable_so_tx_idx_dchannel_2947 tx_idx dchannel 0 2947 &enable_so_HorDcm_zoran_jpg_settings_2947
150249 +enable_so_cydata_ofs_cyttsp4_sysinfo_ofs_2952 cydata_ofs cyttsp4_sysinfo_ofs 0 2952 NULL
150250 +enable_so_alloc_blksz_hfsplus_sb_info_2955 alloc_blksz hfsplus_sb_info 0 2955 NULL
150251 +enable_so___kfifo_alloc_fndecl_2958 __kfifo_alloc fndecl 3 2958 NULL
150252 +enable_so_info_len_ib_ucm_event_2963 info_len ib_ucm_event 0 2963 NULL
150253 +enable_so_s_ipg_ufs_sb_private_info_2965 s_ipg ufs_sb_private_info 0 2965 NULL
150254 +enable_so_SyS_sched_setaffinity_fndecl_2967 SyS_sched_setaffinity fndecl 2 2967 NULL
150255 +enable_so_do_tcp_sendpages_fndecl_2968 do_tcp_sendpages fndecl 4-3 2968 NULL
150256 +enable_so_pn533_dep_link_up_fndecl_2969 pn533_dep_link_up fndecl 5 2969 NULL
150257 +enable_so_qp_table_size_qib_ibdev_2970 qp_table_size qib_ibdev 0 2970 NULL
150258 +enable_so_align_ip_set_ext_type_2975 align ip_set_ext_type 0 2975 NULL
150259 +enable_so_mrp_pdu_append_vecattr_hdr_fndecl_2982 mrp_pdu_append_vecattr_hdr fndecl 3 2982 NULL
150260 +enable_so_origin_write_extent_fndecl_2983 origin_write_extent fndecl 2 2983 NULL
150261 +enable_so_h_align_bdisp_fmt_2988 h_align bdisp_fmt 0 2988 NULL nohasharray
150262 +enable_so_reiserfs_cut_from_item_fndecl_2988 reiserfs_cut_from_item fndecl 6 2988 &enable_so_h_align_bdisp_fmt_2988
150263 +enable_so_iscsi_start_cid_cnic_local_2995 iscsi_start_cid cnic_local 0 2995 NULL
150264 +enable_so_offset_fuse_notify_retrieve_out_2999 offset fuse_notify_retrieve_out 0 2999 NULL
150265 +enable_so_hdr_len_iscsi_task_3003 hdr_len iscsi_task 0 3003 NULL
150266 +enable_so_do_sync_mmap_readahead_fndecl_3008 do_sync_mmap_readahead fndecl 4 3008 NULL
150267 +enable_so_rdma_build_arg_xdr_fndecl_3012 rdma_build_arg_xdr fndecl 3 3012 NULL
150268 +enable_so_mem_write_fndecl_3019 mem_write fndecl 3 3019 NULL
150269 +enable_so_bpw_len_pch_spi_data_3026 bpw_len pch_spi_data 0 3026 NULL
150270 +enable_so_de_rec_len_gfs2_dirent_3029 de_rec_len gfs2_dirent 0 3029 NULL
150271 +enable_so_of_fdt_match_fndecl_3030 of_fdt_match fndecl 2 3030 NULL
150272 +enable_so_dual_channel_active_fndecl_3033 dual_channel_active fndecl 0 3033 NULL
150273 +enable_so_fat_compat_ioctl_filldir_fndecl_3037 fat_compat_ioctl_filldir fndecl 3 3037 NULL
150274 +enable_so_xfs_bulkstat_grab_ichunk_fndecl_3041 xfs_bulkstat_grab_ichunk fndecl 2 3041 NULL
150275 +enable_so_add_res_tree_fndecl_3044 add_res_tree fndecl 7 3044 NULL
150276 +enable_so_ping_common_sendmsg_fndecl_3046 ping_common_sendmsg fndecl 5 3046 NULL
150277 +enable_so_at25_ee_write_fndecl_3050 at25_ee_write fndecl 4-3 3050 NULL
150278 +enable_so_skb_seq_read_fndecl_3054 skb_seq_read fndecl 0-1 3054 NULL
150279 +enable_so_size_ecryptfs_cache_info_3056 size ecryptfs_cache_info 0 3056 NULL
150280 +enable_so_prepare_to_wait_event_fndecl_3060 prepare_to_wait_event fndecl 0 3060 NULL
150281 +enable_so_dst_addr_width_dma_slave_config_3068 dst_addr_width dma_slave_config 0 3068 NULL nohasharray
150282 +enable_so_ntfs_map_runlist_fndecl_3068 ntfs_map_runlist fndecl 2 3068 &enable_so_dst_addr_width_dma_slave_config_3068
150283 +enable_so_compat_process_vm_rw_fndecl_3069 compat_process_vm_rw fndecl 5-3 3069 NULL
150284 +enable_so_security_setxattr_fndecl_3070 security_setxattr fndecl 4 3070 NULL
150285 +enable_so_hbuf_max_len_mei_hw_ops_3071 hbuf_max_len mei_hw_ops 0 3071 NULL
150286 +enable_so_height_au0828_dev_3073 height au0828_dev 0 3073 NULL
150287 +enable_so_sg_addr_size__MPT_ADAPTER_3079 sg_addr_size _MPT_ADAPTER 0 3079 NULL
150288 +enable_so_brcmf_p2p_escan_fndecl_3080 brcmf_p2p_escan fndecl 2 3080 NULL
150289 +enable_so_cluster_next_swap_info_struct_3087 cluster_next swap_info_struct 0 3087 NULL
150290 +enable_so_total_h_mt9t031_3088 total_h mt9t031 0 3088 NULL
150291 +enable_so_npages_mthca_db_table_3090 npages mthca_db_table 0 3090 NULL nohasharray
150292 +enable_so_ad7280_write_fndecl_3090 ad7280_write fndecl 0 3090 &enable_so_npages_mthca_db_table_3090
150293 +enable_so_fb_prepare_logo_fndecl_3092 fb_prepare_logo fndecl 0 3092 NULL
150294 +enable_so_loopstart_soundfont_sample_info_3093 loopstart soundfont_sample_info 0 3093 NULL
150295 +enable_so_gtt_mappable_entries__intel_private_3099 gtt_mappable_entries _intel_private 0 3099 NULL
150296 +enable_so_vol_cdev_direct_write_fndecl_3100 vol_cdev_direct_write fndecl 3 3100 NULL
150297 +enable_so_rx_pkt_map_sz_tg3_3106 rx_pkt_map_sz tg3 0 3106 NULL
150298 +enable_so_mt76_init_sband_fndecl_3112 mt76_init_sband fndecl 4-6 3112 NULL nohasharray
150299 +enable_so_iwl_dbgfs_rxon_flags_read_fndecl_3112 iwl_dbgfs_rxon_flags_read fndecl 3 3112 &enable_so_mt76_init_sband_fndecl_3112
150300 +enable_so_fb_alloc_cmap_gfp_fndecl_3115 fb_alloc_cmap_gfp fndecl 2 3115 NULL
150301 +enable_so_edid_write_fndecl_3118 edid_write fndecl 3 3118 NULL
150302 +enable_so_ipip6_tunnel_change_mtu_fndecl_3119 ipip6_tunnel_change_mtu fndecl 2 3119 NULL nohasharray
150303 +enable_so_blk_rq_map_user_fndecl_3119 blk_rq_map_user fndecl 5 3119 &enable_so_ipip6_tunnel_change_mtu_fndecl_3119 nohasharray
150304 +enable_so_compat_filldir64_fndecl_3119 compat_filldir64 fndecl 3 3119 &enable_so_blk_rq_map_user_fndecl_3119 nohasharray
150305 +enable_so_controller_function_ms_boot_attr_info_3119 controller_function ms_boot_attr_info 0 3119 &enable_so_compat_filldir64_fndecl_3119
150306 +enable_so_status_whc_qhead_3133 status whc_qhead 0 3133 NULL
150307 +enable_so_ext4_block_zero_page_range_fndecl_3135 ext4_block_zero_page_range fndecl 3 3135 NULL
150308 +enable_so_strndup_user_fndecl_3136 strndup_user fndecl 2 3136 NULL
150309 +enable_so_brcmf_usb_dlstart_fndecl_3138 brcmf_usb_dlstart fndecl 3 3138 NULL
150310 +enable_so_fotg210_urb_done_fndecl_3144 fotg210_urb_done fndecl 3 3144 NULL
150311 +enable_so_tx_room_keyspan_pda_private_3146 tx_room keyspan_pda_private 0 3146 NULL
150312 +enable_so_usbhs_read_fndecl_3148 usbhs_read fndecl 0 3148 NULL nohasharray
150313 +enable_so_fragment_length_zd_usb_rx_3148 fragment_length zd_usb_rx 0 3148 &enable_so_usbhs_read_fndecl_3148 nohasharray
150314 +enable_so_nilfs_scan_dsync_log_fndecl_3148 nilfs_scan_dsync_log fndecl 2 3148 &enable_so_fragment_length_zd_usb_rx_3148
150315 +enable_so_iseg_base_mlx5_core_dev_3151 iseg_base mlx5_core_dev 0 3151 NULL
150316 +enable_so_udf_get_last_session_fndecl_3152 udf_get_last_session fndecl 0 3152 NULL
150317 +enable_so_mmio_size_drm_mga_private_3160 mmio_size drm_mga_private 0 3160 NULL
150318 +enable_so_prealloc_size_ich_pcm_table_3162 prealloc_size ich_pcm_table 0 3162 NULL nohasharray
150319 +enable_so_sys_sendto_fndecl_3162 sys_sendto fndecl 6-3 3162 &enable_so_prealloc_size_ich_pcm_table_3162
150320 +enable_so_send_ext_msg_udp_fndecl_3163 send_ext_msg_udp fndecl 3 3163 NULL
150321 +enable_so_cfv_alloc_and_copy_skb_fndecl_3167 cfv_alloc_and_copy_skb fndecl 4 3167 NULL nohasharray
150322 +enable_so_logfs_is_valid_block_fndecl_3167 logfs_is_valid_block fndecl 3 3167 &enable_so_cfv_alloc_and_copy_skb_fndecl_3167
150323 +enable_so_bytes_per_pixel_vivid_dev_3174 bytes_per_pixel vivid_dev 0 3174 NULL
150324 +enable_so_fill_elf_header_fndecl_3182 fill_elf_header fndecl 2 3182 NULL
150325 +enable_so_wl1271_format_buffer_fndecl_3185 wl1271_format_buffer fndecl 2 3185 NULL
150326 +enable_so_keyspan_write_fndecl_3189 keyspan_write fndecl 4 3189 NULL
150327 +enable_so_min_io_size_ubi_device_3191 min_io_size ubi_device 0 3191 NULL nohasharray
150328 +enable_so_uvc_alloc_entity_fndecl_3191 uvc_alloc_entity fndecl 3-4 3191 &enable_so_min_io_size_ubi_device_3191
150329 +enable_so_nvme_trans_supported_vpd_pages_fndecl_3196 nvme_trans_supported_vpd_pages fndecl 4 3196 NULL
150330 +enable_so_mspi_apply_cpu_mode_quirks_fndecl_3197 mspi_apply_cpu_mode_quirks fndecl 0-4 3197 NULL
150331 +enable_so_lcd_hblank_len_atyfb_par_3198 lcd_hblank_len atyfb_par 0 3198 NULL nohasharray
150332 +enable_so_p9_tag_alloc_fndecl_3198 p9_tag_alloc fndecl 3 3198 &enable_so_lcd_hblank_len_atyfb_par_3198
150333 +enable_so_import_iovec_fndecl_3201 import_iovec fndecl 3 3201 NULL
150334 +enable_so_chunk_size_mdu_array_info_s_3205 chunk_size mdu_array_info_s 0 3205 NULL
150335 +enable_so_cfs_cpt_table_create_fndecl_3207 cfs_cpt_table_create fndecl 1 3207 NULL
150336 +enable_so_sisusb_send_packet_fndecl_3208 sisusb_send_packet fndecl 2 3208 NULL
150337 +enable_so_key_icverrors_read_fndecl_3212 key_icverrors_read fndecl 3 3212 NULL
150338 +enable_so_usbvision_set_output_fndecl_3216 usbvision_set_output fndecl 2-3 3216 NULL
150339 +enable_so_rx_buffer_len_ixgb_adapter_3217 rx_buffer_len ixgb_adapter 0 3217 NULL nohasharray
150340 +enable_so_cw1200_sdio_memcpy_fromio_fndecl_3217 cw1200_sdio_memcpy_fromio fndecl 4 3217 &enable_so_rx_buffer_len_ixgb_adapter_3217 nohasharray
150341 +enable_so_iwl_dbgfs_pm_params_read_fndecl_3217 iwl_dbgfs_pm_params_read fndecl 3 3217 &enable_so_cw1200_sdio_memcpy_fromio_fndecl_3217
150342 +enable_so_nportcntrs_hfi1_devdata_3218 nportcntrs hfi1_devdata 0 3218 NULL
150343 +enable_so_h_len_logfs_journal_header_3222 h_len logfs_journal_header 0 3222 NULL
150344 +enable_so_bfad_iocmd_cee_get_stats_fndecl_3228 bfad_iocmd_cee_get_stats fndecl 0 3228 NULL
150345 +enable_so_mad_size_ib_mad_private_3230 mad_size ib_mad_private 0 3230 NULL
150346 +enable_so_command_setexposure_fndecl_3231 command_setexposure fndecl 0 3231 NULL
150347 +enable_so_sq_num_entries_c4iw_qp_attributes_3234 sq_num_entries c4iw_qp_attributes 0 3234 NULL
150348 +enable_so_lbs_rdbbp_write_fndecl_3237 lbs_rdbbp_write fndecl 3 3237 NULL
150349 +enable_so_inlen_ib_udata_3242 inlen ib_udata 0 3242 NULL nohasharray
150350 +enable_so_expect_class_max_nf_conntrack_helper_3242 expect_class_max nf_conntrack_helper 0 3242 &enable_so_inlen_ib_udata_3242
150351 +enable_so_max_wqe_ocrdma_dev_attr_3246 max_wqe ocrdma_dev_attr 0 3246 NULL
150352 +enable_so_of_property_match_string_fndecl_3250 of_property_match_string fndecl 0 3250 NULL
150353 +enable_so_shmem_kernel_file_setup_fndecl_3251 shmem_kernel_file_setup fndecl 2 3251 NULL
150354 +enable_so_vfio_msi_enable_fndecl_3257 vfio_msi_enable fndecl 2 3257 NULL
150355 +enable_so_sbc_check_prot_fndecl_3258 sbc_check_prot fndecl 4 3258 NULL
150356 +enable_so_taglen_cb_compound_hdr_res_3259 taglen cb_compound_hdr_res 0 3259 NULL
150357 +enable_so_imx_pcm_dma_init_fndecl_3260 imx_pcm_dma_init fndecl 2 3260 NULL nohasharray
150358 +enable_so_compat_sys_readv_fndecl_3260 compat_sys_readv fndecl 3 3260 &enable_so_imx_pcm_dma_init_fndecl_3260
150359 +enable_so_rx_rx_phy_hdr_read_fndecl_3269 rx_rx_phy_hdr_read fndecl 3 3269 NULL
150360 +enable_so_vub300_response_error_fndecl_3270 vub300_response_error fndecl 0 3270 NULL
150361 +enable_so_altera_set_ir_post_fndecl_3271 altera_set_ir_post fndecl 2 3271 NULL
150362 +enable_so_rsxx_cram_read_fndecl_3278 rsxx_cram_read fndecl 3 3278 NULL
150363 +enable_so_error_mmc_data_3279 error mmc_data 0 3279 NULL
150364 +enable_so_doff_tcphdr_3280 doff tcphdr 0 3280 NULL nohasharray
150365 +enable_so_ds1305_nvram_read_fndecl_3280 ds1305_nvram_read fndecl 6 3280 &enable_so_doff_tcphdr_3280
150366 +enable_so_ms_write_bytes_fndecl_3282 ms_write_bytes fndecl 0 3282 NULL
150367 +enable_so_stolen_base_drm_psb_private_3285 stolen_base drm_psb_private 0 3285 NULL nohasharray
150368 +enable_so_cfg80211_rx_assoc_resp_fndecl_3285 cfg80211_rx_assoc_resp fndecl 4 3285 &enable_so_stolen_base_drm_psb_private_3285
150369 +enable_so_htable_bits_fndecl_3286 htable_bits fndecl 0 3286 NULL
150370 +enable_so_check_eofblocks_fl_fndecl_3293 check_eofblocks_fl fndecl 0 3293 NULL
150371 +enable_so_iov_count_iscsi_data_count_3301 iov_count iscsi_data_count 0 3301 NULL
150372 +enable_so_rds_page_remainder_alloc_fndecl_3303 rds_page_remainder_alloc fndecl 2 3303 NULL
150373 +enable_so_alg_setsockopt_fndecl_3306 alg_setsockopt fndecl 5 3306 NULL
150374 +enable_so_transfer_size_zr364xx_pipeinfo_3312 transfer_size zr364xx_pipeinfo 0 3312 NULL
150375 +enable_so_sdmabufcnt_qib_chip_specific_3319 sdmabufcnt qib_chip_specific 0 3319 NULL
150376 +enable_so_snd_rme9652_playback_copy_fndecl_3321 snd_rme9652_playback_copy fndecl 5 3321 NULL
150377 +enable_so_bulk_out_ep_irda_usb_cb_3322 bulk_out_ep irda_usb_cb 0 3322 NULL
150378 +enable_so_lock_extent_bits_fndecl_3328 lock_extent_bits fndecl 3-2 3328 NULL
150379 +enable_so_length_ima_digest_data_3329 length ima_digest_data 0 3329 NULL
150380 +enable_so_hidraw_report_event_fndecl_3332 hidraw_report_event fndecl 3 3332 NULL
150381 +enable_so_i_xattr_loc_ocfs2_dinode_3335 i_xattr_loc ocfs2_dinode 0 3335 NULL
150382 +enable_so_base_drm_agp_head_3348 base drm_agp_head 0 3348 NULL nohasharray
150383 +enable_so_curchunk_hdrlen_drm_dp_sideband_msg_rx_3348 curchunk_hdrlen drm_dp_sideband_msg_rx 0 3348 &enable_so_base_drm_agp_head_3348
150384 +enable_so_smi_get_fwd_port_fndecl_3349 smi_get_fwd_port fndecl 0 3349 NULL nohasharray
150385 +enable_so_memcg_update_list_lru_fndecl_3349 memcg_update_list_lru fndecl 3 3349 &enable_so_smi_get_fwd_port_fndecl_3349
150386 +enable_so_ext4_finish_convert_inline_dir_fndecl_3350 ext4_finish_convert_inline_dir fndecl 5 3350 NULL
150387 +enable_so_pgt_bits_nvkm_mmu_func_3353 pgt_bits nvkm_mmu_func 0 3353 NULL nohasharray
150388 +enable_so_max_bands_multiq_sched_data_3353 max_bands multiq_sched_data 0 3353 &enable_so_pgt_bits_nvkm_mmu_func_3353
150389 +enable_so_sysctl_nr_open_vardecl_3355 sysctl_nr_open vardecl 0 3355 NULL
150390 +enable_so_logfs_uncompress_fndecl_3359 logfs_uncompress fndecl 3-4 3359 NULL
150391 +enable_so___process_changed_new_xattr_fndecl_3360 __process_changed_new_xattr fndecl 6-4 3360 NULL
150392 +enable_so_essidlen_zd1201_3366 essidlen zd1201 0 3366 NULL
150393 +enable_so_frame_size_stk_camera_3367 frame_size stk_camera 0 3367 NULL
150394 +enable_so_amd_create_gatt_pages_fndecl_3370 amd_create_gatt_pages fndecl 1 3370 NULL
150395 +enable_so_xfs_dir3_leaf_get_buf_fndecl_3380 xfs_dir3_leaf_get_buf fndecl 2 3380 NULL
150396 +enable_so_phys_hw_bank_3381 phys hw_bank 0 3381 NULL
150397 +enable_so_blk_add_request_payload_fndecl_3382 blk_add_request_payload fndecl 3 3382 NULL
150398 +enable_so_nvdimm_set_config_data_fndecl_3384 nvdimm_set_config_data fndecl 4 3384 NULL
150399 +enable_so_pgoff_vm_fault_3385 pgoff vm_fault 0 3385 NULL nohasharray
150400 +enable_so_drbd_bm_resize_fndecl_3385 drbd_bm_resize fndecl 2 3385 &enable_so_pgoff_vm_fault_3385
150401 +enable_so_xfs_iext_realloc_direct_fndecl_3386 xfs_iext_realloc_direct fndecl 2 3386 NULL
150402 +enable_so_beacon_ie_len_wmi_connect_event_3388 beacon_ie_len wmi_connect_event 0 3388 NULL nohasharray
150403 +enable_so_rport_priv_size_fc_lport_3388 rport_priv_size fc_lport 0 3388 &enable_so_beacon_ie_len_wmi_connect_event_3388
150404 +enable_so_xz_dec_lzma2_reset_fndecl_3390 xz_dec_lzma2_reset fndecl 2 3390 NULL
150405 +enable_so_n_min_aptina_pll_limits_3393 n_min aptina_pll_limits 0 3393 NULL
150406 +enable_so_max_frame_size_nes_vnic_3395 max_frame_size nes_vnic 0 3395 NULL
150407 +enable_so_num_paths_rdma_route_3407 num_paths rdma_route 0 3407 NULL
150408 +enable_so_pos_in_item_treepath_3409 pos_in_item treepath 0 3409 NULL
150409 +enable_so_minLen_group_data_3411 minLen group_data 0 3411 NULL
150410 +enable_so_scsi_report_opcode_fndecl_3412 scsi_report_opcode fndecl 3 3412 NULL
150411 +enable_so_mtu_tipc_link_entry_3415 mtu tipc_link_entry 0 3415 NULL
150412 +enable_so_venus_create_fndecl_3416 venus_create fndecl 4 3416 NULL
150413 +enable_so_opts1_RxDesc_3421 opts1 RxDesc 0 3421 NULL
150414 +enable_so___gunzip_fndecl_3422 __gunzip fndecl 2-6 3422 NULL
150415 +enable_so_rlim_cur_rlimit_3431 rlim_cur rlimit 0 3431 NULL nohasharray
150416 +enable_so_set_secure_conn_fndecl_3431 set_secure_conn fndecl 4 3431 &enable_so_rlim_cur_rlimit_3431
150417 +enable_so_drv_cp_harray_to_user_fndecl_3434 drv_cp_harray_to_user fndecl 0 3434 NULL nohasharray
150418 +enable_so_sync_timeline_create_fndecl_3434 sync_timeline_create fndecl 2 3434 &enable_so_drv_cp_harray_to_user_fndecl_3434
150419 +enable_so_udf_getblk_fndecl_3436 udf_getblk fndecl 2 3436 NULL
150420 +enable_so_len_nft_bitwise_3441 len nft_bitwise 0 3441 NULL nohasharray
150421 +enable_so_command_setcolourbalance_fndecl_3441 command_setcolourbalance fndecl 0 3441 &enable_so_len_nft_bitwise_3441
150422 +enable_so_uc_inSize_upc_req_3444 uc_inSize upc_req 0 3444 NULL
150423 +enable_so_rpipe_check_aim_fndecl_3456 rpipe_check_aim fndecl 0 3456 NULL nohasharray
150424 +enable_so_scsi_debug_unmap_granularity_vardecl_scsi_debug_c_3456 scsi_debug_unmap_granularity vardecl_scsi_debug.c 0 3456 &enable_so_rpipe_check_aim_fndecl_3456
150425 +enable_so_s_itb_per_group_ext4_sb_info_3459 s_itb_per_group ext4_sb_info 0 3459 NULL
150426 +enable_so_adfs_dir_read_fndecl_3464 adfs_dir_read fndecl 2 3464 NULL
150427 +enable_so_vm_stat_account_fndecl_3465 vm_stat_account fndecl 4 3465 NULL
150428 +enable_so_ngpios_chv_community_3476 ngpios chv_community 0 3476 NULL
150429 +enable_so_qib_qsfp_write_fndecl_3477 qib_qsfp_write fndecl 2-4-0 3477 NULL
150430 +enable_so_namelen_xfs_dir2_sf_entry_3481 namelen xfs_dir2_sf_entry 0 3481 NULL nohasharray
150431 +enable_so_chip_send_contexts_hfi1_devdata_3481 chip_send_contexts hfi1_devdata 0 3481 &enable_so_namelen_xfs_dir2_sf_entry_3481
150432 +enable_so_zlib_tr_flush_block_fndecl_3485 zlib_tr_flush_block fndecl 3 3485 NULL
150433 +enable_so_xfer_len_nvme_trans_io_cdb_3486 xfer_len nvme_trans_io_cdb 0 3486 NULL
150434 +enable_so_alt_traffic_class_cm_req_msg_3489 alt_traffic_class cm_req_msg 0 3489 NULL
150435 +enable_so_rx_buf_size__mgslpc_info_3490 rx_buf_size _mgslpc_info 0 3490 NULL
150436 +enable_so_from_dio_submit_3494 from dio_submit 0 3494 NULL
150437 +enable_so_snd_pcm_oss_prepare_fndecl_3506 snd_pcm_oss_prepare fndecl 0 3506 NULL
150438 +enable_so_kfifo_copy_to_user_fndecl_3509 kfifo_copy_to_user fndecl 3-4-0 3509 NULL nohasharray
150439 +enable_so_hs_bkt_bits_cfs_hash_3509 hs_bkt_bits cfs_hash 0 3509 &enable_so_kfifo_copy_to_user_fndecl_3509
150440 +enable_so_gru_vtop_fndecl_3522 gru_vtop fndecl 2 3522 NULL
150441 +enable_so_nvme_char_major_vardecl_nvme_core_c_3526 nvme_char_major vardecl_nvme-core.c 0 3526 NULL
150442 +enable_so_read_file_tgt_int_stats_fndecl_3530 read_file_tgt_int_stats fndecl 3 3530 NULL
150443 +enable_so_cipso_v4_gentag_rng_fndecl_3532 cipso_v4_gentag_rng fndecl 0 3532 NULL
150444 +enable_so_cl_out_max_entry_size_mvumi_hs_page1_3540 cl_out_max_entry_size mvumi_hs_page1 0 3540 NULL
150445 +enable_so_btrfs_qgroup_reserve_fndecl_3543 btrfs_qgroup_reserve fndecl 0 3543 NULL nohasharray
150446 +enable_so_snd_hdsp_playback_copy_fndecl_3543 snd_hdsp_playback_copy fndecl 5 3543 &enable_so_btrfs_qgroup_reserve_fndecl_3543
150447 +enable_so_get_user_page_nowait_fndecl_3545 get_user_page_nowait fndecl 3 3545 NULL nohasharray
150448 +enable_so_dvb_dmxdev_buffer_read_fndecl_3545 dvb_dmxdev_buffer_read fndecl 4-0 3545 &enable_so_get_user_page_nowait_fndecl_3545
150449 +enable_so_window_size_deflate_state_3549 window_size deflate_state 0 3549 NULL
150450 +enable_so_mult_count_ide_drive_s_3550 mult_count ide_drive_s 0 3550 NULL
150451 +enable_so_ocfs2_read_xattr_bucket_fndecl_3553 ocfs2_read_xattr_bucket fndecl 0-2 3553 NULL
150452 +enable_so_sg_copy_from_buffer_fndecl_3557 sg_copy_from_buffer fndecl 0-4 3557 NULL
150453 +enable_so_security_context_to_sid_force_fndecl_3559 security_context_to_sid_force fndecl 2 3559 NULL
150454 +enable_so_mt2063_write_fndecl_3567 mt2063_write fndecl 4 3567 NULL
150455 +enable_so_page_cache_sync_readahead_fndecl_3569 page_cache_sync_readahead fndecl 4 3569 NULL
150456 +enable_so_encode_diropargs3_fndecl_3574 encode_diropargs3 fndecl 4 3574 NULL
150457 +enable_so__snd_pcm_new_fndecl_3575 _snd_pcm_new fndecl 4-5 3575 NULL
150458 +enable_so_template_size_qla27xx_fwdt_template_3576 template_size qla27xx_fwdt_template 0 3576 NULL
150459 +enable_so_len_capiloaddatapart_3577 len capiloaddatapart 0 3577 NULL
150460 +enable_so_pcpu_page_first_chunk_fndecl_3579 pcpu_page_first_chunk fndecl 1 3579 NULL
150461 +enable_so_asq_buf_size_i40e_adminq_info_3582 asq_buf_size i40e_adminq_info 0 3582 NULL
150462 +enable_so_ddr_av_base_mthca_av_table_3589 ddr_av_base mthca_av_table 0 3589 NULL
150463 +enable_so_ip_vs_icmp_xmit_fndecl_3590 ip_vs_icmp_xmit fndecl 4 3590 NULL nohasharray
150464 +enable_so_npads_xtpg_device_3590 npads xtpg_device 0 3590 &enable_so_ip_vs_icmp_xmit_fndecl_3590
150465 +enable_so_buf_size_i1480_3593 buf_size i1480 0 3593 NULL
150466 +enable_so_brcmf_chip_tcm_rambase_fndecl_3599 brcmf_chip_tcm_rambase fndecl 0 3599 NULL
150467 +enable_so_e820_update_range_fndecl_3600 e820_update_range fndecl 1-2 3600 NULL nohasharray
150468 +enable_so_use_debug_keys_read_fndecl_3600 use_debug_keys_read fndecl 3 3600 &enable_so_e820_update_range_fndecl_3600
150469 +enable_so_cdns_uart_get_port_fndecl_3601 cdns_uart_get_port fndecl 1 3601 NULL
150470 +enable_so_xdr_extend_head_fndecl_3606 xdr_extend_head fndecl 3 3606 NULL
150471 +enable_so_engine_len_viafb_dev_3608 engine_len viafb_dev 0 3608 NULL
150472 +enable_so_ss_out_channels_hdsp_3619 ss_out_channels hdsp 0 3619 NULL nohasharray
150473 +enable_so_drm_universal_plane_init_fndecl_3619 drm_universal_plane_init fndecl 6 3619 &enable_so_ss_out_channels_hdsp_3619
150474 +enable_so_ns_blocksize_the_nilfs_3624 ns_blocksize the_nilfs 0 3624 NULL nohasharray
150475 +enable_so_bytes_btrfs_dio_private_3624 bytes btrfs_dio_private 0 3624 &enable_so_ns_blocksize_the_nilfs_3624 nohasharray
150476 +enable_so_do_msg_fill_fndecl_3624 do_msg_fill fndecl 3 3624 &enable_so_bytes_btrfs_dio_private_3624
150477 +enable_so_offline_pages_fndecl_3625 offline_pages fndecl 1-2 3625 NULL
150478 +enable_so_tail_timestamp_event_queue_3626 tail timestamp_event_queue 0 3626 NULL nohasharray
150479 +enable_so_length_pseudo_hdr_3626 length pseudo_hdr 0 3626 &enable_so_tail_timestamp_event_queue_3626
150480 +enable_so_add_res_range_fndecl_3629 add_res_range fndecl 4 3629 NULL
150481 +enable_so_cbuf_eat_fndecl_3631 cbuf_eat fndecl 2 3631 NULL
150482 +enable_so_sl_ib_ah_attr_3633 sl ib_ah_attr 0 3633 NULL
150483 +enable_so_vmci_transport_queue_pair_alloc_fndecl_3639 vmci_transport_queue_pair_alloc fndecl 4-3 3639 NULL nohasharray
150484 +enable_so_xfs_attr3_leaf_freextent_fndecl_3639 xfs_attr3_leaf_freextent fndecl 4-3 3639 &enable_so_vmci_transport_queue_pair_alloc_fndecl_3639
150485 +enable_so_t_blocknr_high_journal_block_tag_s_3648 t_blocknr_high journal_block_tag_s 0 3648 NULL
150486 +enable_so_s_desc_size_ext4_sb_info_3652 s_desc_size ext4_sb_info 0 3652 NULL
150487 +enable_so_pci_id_imc_uncore_pci_dev_3656 pci_id imc_uncore_pci_dev 0 3656 NULL
150488 +enable_so_parport_ieee1284_ecp_read_data_fndecl_3660 parport_ieee1284_ecp_read_data fndecl 0 3660 NULL nohasharray
150489 +enable_so_c_plan_ahead_disk_conf_3660 c_plan_ahead disk_conf 0 3660 &enable_so_parport_ieee1284_ecp_read_data_fndecl_3660
150490 +enable_so_ext2_get_blocks_fndecl_3661 ext2_get_blocks fndecl 0 3661 NULL nohasharray
150491 +enable_so_im_len_xfs_imap_3661 im_len xfs_imap 0 3661 &enable_so_ext2_get_blocks_fndecl_3661
150492 +enable_so_arch_reserve_mem_area_fndecl_3662 arch_reserve_mem_area fndecl 2 3662 NULL
150493 +enable_so_aper_base_amdgpu_mc_3664 aper_base amdgpu_mc 0 3664 NULL
150494 +enable_so_child_cnt_ubifs_znode_3667 child_cnt ubifs_znode 0 3667 NULL
150495 +enable_so_bio_find_or_create_slab_fndecl_3671 bio_find_or_create_slab fndecl 1 3671 NULL
150496 +enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673 pcpu_chunk_struct_size vardecl_percpu.c 0 3673 NULL nohasharray
150497 +enable_so_get_zeroed_page_fndecl_3673 get_zeroed_page fndecl 0 3673 &enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673
150498 +enable_so_interfaces_count_ffs_data_3677 interfaces_count ffs_data 0 3677 NULL
150499 +enable_so_alloc_orinocodev_fndecl_3688 alloc_orinocodev fndecl 1 3688 NULL
150500 +enable_so_len_mic_mw_3689 len mic_mw 0 3689 NULL
150501 +enable_so_ath10k_wmi_tlv_op_gen_vdev_sta_uapsd_fndecl_3692 ath10k_wmi_tlv_op_gen_vdev_sta_uapsd fndecl 5 3692 NULL
150502 +enable_so_read_file_bool_bmps_fndecl_3699 read_file_bool_bmps fndecl 3 3699 NULL
150503 +enable_so_srp_max_rsp_size_srpt_port_attrib_3700 srp_max_rsp_size srpt_port_attrib 0 3700 NULL
150504 +enable_so_vmw_cmdbuf_space_pool_fndecl_3702 vmw_cmdbuf_space_pool fndecl 3 3702 NULL nohasharray
150505 +enable_so_get_urb_error_fndecl_3702 get_urb_error fndecl 0 3702 &enable_so_vmw_cmdbuf_space_pool_fndecl_3702
150506 +enable_so_allocate_cmdlines_buffer_fndecl_3704 allocate_cmdlines_buffer fndecl 1 3704 NULL
150507 +enable_so_vlan_netdev_private_3705 vlan netdev_private 0 3705 NULL
150508 +enable_so_ip_getsockopt_fndecl_3711 ip_getsockopt fndecl 0 3711 NULL
150509 +enable_so_len_sctp_auth_bytes_3715 len sctp_auth_bytes 0 3715 NULL
150510 +enable_so_byte_len_ib_wc_3716 byte_len ib_wc 0 3716 NULL
150511 +enable_so_len_amp_assoc_3724 len amp_assoc 0 3724 NULL
150512 +enable_so___v4l2_ctrl_modify_range_fndecl_3726 __v4l2_ctrl_modify_range fndecl 3-2-5 3726 NULL
150513 +enable_so_SYSC_rt_sigpending_fndecl_3728 SYSC_rt_sigpending fndecl 2 3728 NULL
150514 +enable_so_mcs_wrap_fir_skb_fndecl_3729 mcs_wrap_fir_skb fndecl 0 3729 NULL nohasharray
150515 +enable_so_split_leaf_fndecl_3729 split_leaf fndecl 0 3729 &enable_so_mcs_wrap_fir_skb_fndecl_3729
150516 +enable_so_video_ioctl2_fndecl_3735 video_ioctl2 fndecl 2 3735 NULL
150517 +enable_so_ecryptfs_message_buf_len_vardecl_3736 ecryptfs_message_buf_len vardecl 0 3736 NULL nohasharray
150518 +enable_so_current_queue_depth_limit_bmic_identify_physical_device_3736 current_queue_depth_limit bmic_identify_physical_device 0 3736 &enable_so_ecryptfs_message_buf_len_vardecl_3736
150519 +enable_so_insert_ptr_fndecl_3737 insert_ptr fndecl 6 3737 NULL
150520 +enable_so_entries_p54_cal_database_3741 entries p54_cal_database 0 3741 NULL
150521 +enable_so_error_null_frame_tx_start_read_fndecl_3750 error_null_frame_tx_start_read fndecl 3 3750 NULL
150522 +enable_so_nr_reserved_tags_blk_mq_tags_3751 nr_reserved_tags blk_mq_tags 0 3751 NULL
150523 +enable_so_e_value_size_f2fs_xattr_entry_3755 e_value_size f2fs_xattr_entry 0 3755 NULL
150524 +enable_so_private_value_sbmix_elem_3773 private_value sbmix_elem 0 3773 NULL
150525 +enable_so_size_m48t35_priv_3775 size m48t35_priv 0 3775 NULL
150526 +enable_so_tblsize_snd_sg_buf_3776 tblsize snd_sg_buf 0 3776 NULL
150527 +enable_so_ag_shift_befs_sb_info_3778 ag_shift befs_sb_info 0 3778 NULL nohasharray
150528 +enable_so_num_returned_bytes_fit_completion_entry_v1_3778 num_returned_bytes fit_completion_entry_v1 0 3778 &enable_so_ag_shift_befs_sb_info_3778
150529 +enable_so_fl_starve_thres_sge_3779 fl_starve_thres sge 0 3779 NULL
150530 +enable_so_rnt_rc_sl_fl_ocrdma_qp_params_3780 rnt_rc_sl_fl ocrdma_qp_params 0 3780 NULL
150531 +enable_so_next_fn_fndecl_3785 next_fn fndecl 0-3 3785 NULL
150532 +enable_so_rx_status_len_ath9k_hw_capabilities_3793 rx_status_len ath9k_hw_capabilities 0 3793 NULL
150533 +enable_so_buflen_audit_krule_3796 buflen audit_krule 0 3796 NULL
150534 +enable_so_concat_writev_fndecl_3800 concat_writev fndecl 4 3800 NULL
150535 +enable_so_extend_netdev_table_fndecl_3806 extend_netdev_table fndecl 0 3806 NULL
150536 +enable_so_nfc_hci_send_event_fndecl_3807 nfc_hci_send_event fndecl 5 3807 NULL
150537 +enable_so_nextLineNumber_vardecl_rocket_c_3809 nextLineNumber vardecl_rocket.c 0 3809 NULL
150538 +enable_so_ip_last_used_group_ocfs2_inode_info_3814 ip_last_used_group ocfs2_inode_info 0 3814 NULL
150539 +enable_so_e_cpos_ocfs2_extent_rec_3815 e_cpos ocfs2_extent_rec 0 3815 NULL
150540 +enable_so_dccp_recvmsg_fndecl_3819 dccp_recvmsg fndecl 3 3819 NULL nohasharray
150541 +enable_so_fnic_trace_debugfs_lseek_fndecl_3819 fnic_trace_debugfs_lseek fndecl 2 3819 &enable_so_dccp_recvmsg_fndecl_3819
150542 +enable_so_force_bredr_smp_write_fndecl_3821 force_bredr_smp_write fndecl 3 3821 NULL
150543 +enable_so_offset32_cm_req_msg_3827 offset32 cm_req_msg 0 3827 NULL
150544 +enable_so_bits_per_word_spi_device_3828 bits_per_word spi_device 0 3828 NULL
150545 +enable_so_mei_nfc_send_fndecl_3830 mei_nfc_send fndecl 3 3830 NULL
150546 +enable_so_read_file_xmit_fndecl_3836 read_file_xmit fndecl 3 3836 NULL
150547 +enable_so_num_counters_ipt_replace_3837 num_counters ipt_replace 0 3837 NULL
150548 +enable_so_error_btrfs_end_io_wq_3838 error btrfs_end_io_wq 0 3838 NULL
150549 +enable_so_find_end_of_node_fndecl_3843 find_end_of_node fndecl 0-3-1-2 3843 NULL
150550 +enable_so_bg_inode_table_hi_ext4_group_desc_3844 bg_inode_table_hi ext4_group_desc 0 3844 NULL
150551 +enable_so_btrfs_dirty_pages_fndecl_3848 btrfs_dirty_pages fndecl 6-5 3848 NULL
150552 +enable_so_bfad_iocmd_fcpim_get_del_itn_stats_fndecl_3853 bfad_iocmd_fcpim_get_del_itn_stats fndecl 0 3853 NULL
150553 +enable_so_qib_verbs_send_fndecl_3860 qib_verbs_send fndecl 5-3 3860 NULL
150554 +enable_so_ocfs2_free_clusters_fndecl_3866 ocfs2_free_clusters fndecl 4 3866 NULL
150555 +enable_so_minlen_fstrim_range_3870 minlen fstrim_range 0 3870 NULL
150556 +enable_so_size_of_priv_dvb_usb_adapter_fe_properties_3875 size_of_priv dvb_usb_adapter_fe_properties 0 3875 NULL
150557 +enable_so_lbs_threshold_read_fndecl_3877 lbs_threshold_read fndecl 5 3877 NULL
150558 +enable_so_console_size_ramoops_context_3884 console_size ramoops_context 0 3884 NULL
150559 +enable_so_s_num_blocks_omfs_sb_info_3888 s_num_blocks omfs_sb_info 0 3888 NULL nohasharray
150560 +enable_so_dbgfs_sram_len_il_priv_3888 dbgfs_sram_len il_priv 0 3888 &enable_so_s_num_blocks_omfs_sb_info_3888
150561 +enable_so_fs_div_hfs_sb_info_3890 fs_div hfs_sb_info 0 3890 NULL
150562 +enable_so_btrfs_inode_ref_name_len_fndecl_3891 btrfs_inode_ref_name_len fndecl 0 3891 NULL
150563 +enable_so_snd_pcm_lib_preallocate_pages_fndecl_3892 snd_pcm_lib_preallocate_pages fndecl 4 3892 NULL nohasharray
150564 +enable_so_rx_defrag_tkip_called_read_fndecl_3892 rx_defrag_tkip_called_read fndecl 3 3892 &enable_so_snd_pcm_lib_preallocate_pages_fndecl_3892
150565 +enable_so_arch_gnttab_init_fndecl_3893 arch_gnttab_init fndecl 1 3893 NULL
150566 +enable_so_rootdir_empty_fndecl_3895 rootdir_empty fndecl 2 3895 NULL
150567 +enable_so_xfs_extent_busy_trim_fndecl_3898 xfs_extent_busy_trim fndecl 3-2 3898 NULL
150568 +enable_so_gfs2_meta_wipe_fndecl_3900 gfs2_meta_wipe fndecl 2 3900 NULL
150569 +enable_so_get_enc_strm_size_s5p_mfc_hw_ops_3906 get_enc_strm_size s5p_mfc_hw_ops 0 3906 NULL
150570 +enable_so_endpoint_usb_data_stream_properties_3909 endpoint usb_data_stream_properties 0 3909 NULL
150571 +enable_so_event_calibration_read_fndecl_3912 event_calibration_read fndecl 3 3912 NULL
150572 +enable_so_mlx4_en_set_vf_vlan_fndecl_3917 mlx4_en_set_vf_vlan fndecl 4 3917 NULL
150573 +enable_so_proc_fault_inject_write_fndecl_3921 proc_fault_inject_write fndecl 3 3921 NULL
150574 +enable_so_mp_map_gsi_to_irq_fndecl_3923 mp_map_gsi_to_irq fndecl 1 3923 NULL
150575 +enable_so_cfpkt_set_prio_fndecl_3935 cfpkt_set_prio fndecl 2 3935 NULL
150576 +enable_so_unix_dgram_sendmsg_fndecl_3944 unix_dgram_sendmsg fndecl 3 3944 NULL
150577 +enable_so_ath6kl_send_go_probe_resp_fndecl_3946 ath6kl_send_go_probe_resp fndecl 3 3946 NULL
150578 +enable_so__efx_mcdi_rpc_async_fndecl_3948 _efx_mcdi_rpc_async fndecl 4-5 3948 NULL
150579 +enable_so_atalk_recvmsg_fndecl_3950 atalk_recvmsg fndecl 3 3950 NULL
150580 +enable_so_backup_src_sz_kimage_arch_3957 backup_src_sz kimage_arch 0 3957 NULL nohasharray
150581 +enable_so_resync_min_mddev_3957 resync_min mddev 0 3957 &enable_so_backup_src_sz_kimage_arch_3957
150582 +enable_so_data_out_res_cnt_srp_rsp_3959 data_out_res_cnt srp_rsp 0 3959 NULL
150583 +enable_so_make_le_item_head_fndecl_3961 make_le_item_head fndecl 6-4-5 3961 NULL
150584 +enable_so_parse_header_ops_3963 parse header_ops 0 3963 NULL
150585 +enable_so_hpfs_de_as_down_as_possible_fndecl_3967 hpfs_de_as_down_as_possible fndecl 0-2 3967 NULL
150586 +enable_so_dgram_sendmsg_fndecl_3972 dgram_sendmsg fndecl 3 3972 NULL
150587 +enable_so_wrbs_per_cxn_hba_parameters_3974 wrbs_per_cxn hba_parameters 0 3974 NULL
150588 +enable_so_num_entries_aper_size_info_lvl2_3983 num_entries aper_size_info_lvl2 0 3983 NULL
150589 +enable_so_max_ti_iu_len_srp_rdma_ch_3984 max_ti_iu_len srp_rdma_ch 0 3984 NULL
150590 +enable_so_num_pages_ttm_mem_reg_3986 num_pages ttm_mem_reg 0 3986 NULL nohasharray
150591 +enable_so_nv50_chan_create_fndecl_3986 nv50_chan_create fndecl 6 3986 &enable_so_num_pages_ttm_mem_reg_3986
150592 +enable_so_i2400m_rx_trace_fndecl_3988 i2400m_rx_trace fndecl 3 3988 NULL
150593 +enable_so_tp_len_tpacket2_hdr_3990 tp_len tpacket2_hdr 0 3990 NULL nohasharray
150594 +enable_so___acpi_register_gsi_vardecl_3990 __acpi_register_gsi vardecl 0 3990 &enable_so_tp_len_tpacket2_hdr_3990
150595 +enable_so_rfcomm_sock_recvmsg_fndecl_3992 rfcomm_sock_recvmsg fndecl 3 3992 NULL
150596 +enable_so_iwl_dbgfs_uapsd_misbehaving_read_fndecl_3994 iwl_dbgfs_uapsd_misbehaving_read fndecl 3 3994 NULL
150597 +enable_so_opt_nflen_ipv6_txoptions_3998 opt_nflen ipv6_txoptions 0 3998 NULL nohasharray
150598 +enable_so_len_be_queue_info_3998 len be_queue_info 0 3998 &enable_so_opt_nflen_ipv6_txoptions_3998
150599 +enable_so_buffer_bytes_max_snd_pcm_hardware_4001 buffer_bytes_max snd_pcm_hardware 0 4001 NULL
150600 +enable_so_id_hfsplus_cat_file_4005 id hfsplus_cat_file 0 4005 NULL
150601 +enable_so_t4_init_clip_tbl_fndecl_4007 t4_init_clip_tbl fndecl 1-2 4007 NULL nohasharray
150602 +enable_so_format_supported_num_psb_intel_sdvo_connector_4007 format_supported_num psb_intel_sdvo_connector 0 4007 &enable_so_t4_init_clip_tbl_fndecl_4007 nohasharray
150603 +enable_so_mei_dbgfs_read_active_fndecl_4007 mei_dbgfs_read_active fndecl 3 4007 &enable_so_format_supported_num_psb_intel_sdvo_connector_4007
150604 +enable_so_rx_data_max_size_sst_generic_ipc_4011 rx_data_max_size sst_generic_ipc 0 4011 NULL
150605 +enable_so_bioset_create_nobvec_fndecl_4015 bioset_create_nobvec fndecl 2-1 4015 NULL
150606 +enable_so_f1_id_amd64_family_type_4017 f1_id amd64_family_type 0 4017 NULL
150607 +enable_so_rtl2830_regmap_gather_write_fndecl_4018 rtl2830_regmap_gather_write fndecl 5 4018 NULL
150608 +enable_so_alloc_pg_vec_fndecl_4020 alloc_pg_vec fndecl 3 4020 NULL
150609 +enable_so_b_size_mon_reader_bin_4021 b_size mon_reader_bin 0 4021 NULL
150610 +enable_so_j_start_reiserfs_journal_list_4030 j_start reiserfs_journal_list 0 4030 NULL
150611 +enable_so_length_usb_request_4031 length usb_request 0 4031 NULL
150612 +enable_so_rx_buf_sz_netdev_private_4035 rx_buf_sz netdev_private 0 4035 NULL
150613 +enable_so_MsgLength__MSG_EVENT_NOTIFY_REPLY_4038 MsgLength _MSG_EVENT_NOTIFY_REPLY 0 4038 NULL
150614 +enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040 brcmf_sdio_txpkt_hdalign fndecl 0 4040 NULL nohasharray
150615 +enable_so_do_cow_fault_fndecl_4040 do_cow_fault fndecl 3-5 4040 &enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040
150616 +enable_so_user_mss_tcp_options_received_4043 user_mss tcp_options_received 0 4043 NULL nohasharray
150617 +enable_so_ipc_rcu_alloc_fndecl_4043 ipc_rcu_alloc fndecl 1 4043 &enable_so_user_mss_tcp_options_received_4043
150618 +enable_so_scsi_execute_req_flags_fndecl_4044 scsi_execute_req_flags fndecl 5 4044 NULL
150619 +enable_so_tx_data_count_hso_serial_4046 tx_data_count hso_serial 0 4046 NULL
150620 +enable_so_prepare_header_fndecl_4047 prepare_header fndecl 5-0 4047 NULL
150621 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt2sas_facts_4050 MaxReplyDescriptorPostQueueDepth mpt2sas_facts 0 4050 NULL
150622 +enable_so_ssid_len_cfg80211_connect_params_4052 ssid_len cfg80211_connect_params 0 4052 NULL
150623 +enable_so_m5mols_read_u32_fndecl_4057 m5mols_read_u32 fndecl 2 4057 NULL
150624 +enable_so_cx18_v4l2_read_fndecl_4063 cx18_v4l2_read fndecl 3 4063 NULL
150625 +enable_so_isoc_packet_size_usb_usbvision_4066 isoc_packet_size usb_usbvision 0 4066 NULL
150626 +enable_so_cfg80211_notify_new_peer_candidate_fndecl_4073 cfg80211_notify_new_peer_candidate fndecl 4 4073 NULL
150627 +enable_so_iscsi_max_snd_data_seg_len_dev_db_entry_4074 iscsi_max_snd_data_seg_len dev_db_entry 0 4074 NULL
150628 +enable_so_do_validate_mem_fndecl_4075 do_validate_mem fndecl 3-2 4075 NULL nohasharray
150629 +enable_so_input_ff_create_fndecl_4075 input_ff_create fndecl 2 4075 &enable_so_do_validate_mem_fndecl_4075
150630 +enable_so_ring_overflow_per_user_data_4076 ring_overflow per_user_data 0 4076 NULL
150631 +enable_so_mlx4_en_get_num_flows_fndecl_4078 mlx4_en_get_num_flows fndecl 0 4078 NULL
150632 +enable_so_IOCRequestFrameSize_mpt3sas_facts_4079 IOCRequestFrameSize mpt3sas_facts 0 4079 NULL
150633 +enable_so_bfad_iocmd_ioc_get_info_fndecl_4081 bfad_iocmd_ioc_get_info fndecl 0 4081 NULL
150634 +enable_so_read_ftrace_buffer_info_4082 read ftrace_buffer_info 0 4082 NULL
150635 +enable_so_kvm_vcpu_read_guest_page_fndecl_4083 kvm_vcpu_read_guest_page fndecl 2-5 4083 NULL
150636 +enable_so_n_drm_r128_depth_4085 n drm_r128_depth 0 4085 NULL
150637 +enable_so_skb_copy_and_csum_datagram_fndecl_4086 skb_copy_and_csum_datagram fndecl 4-2 4086 NULL
150638 +enable_so__ocfs2_free_clusters_fndecl_4087 _ocfs2_free_clusters fndecl 4 4087 NULL
150639 +enable_so_base_intel_initial_plane_config_4088 base intel_initial_plane_config 0 4088 NULL
150640 +enable_so_num_pipes_intel_device_info_4092 num_pipes intel_device_info 0 4092 NULL
150641 +enable_so_sca_keylength_sctp_authkey_4095 sca_keylength sctp_authkey 0 4095 NULL
150642 +enable_so_m1_xgene_enet_raw_desc_4097 m1 xgene_enet_raw_desc 0 4097 NULL
150643 +enable_so_ae_res_sd_4099 ae_res sd 0 4099 NULL
150644 +enable_so_ext4_fname_encrypted_size_fndecl_4100 ext4_fname_encrypted_size fndecl 0-2 4100 NULL
150645 +enable_so_size_dt_strings_fdt_header_4102 size_dt_strings fdt_header 0 4102 NULL
150646 +enable_so_special_ixgb_rx_desc_4107 special ixgb_rx_desc 0 4107 NULL nohasharray
150647 +enable_so_nbuttons_tca6416_keys_platform_data_4107 nbuttons tca6416_keys_platform_data 0 4107 &enable_so_special_ixgb_rx_desc_4107
150648 +enable_so_blkno_xfs_da_args_4112 blkno xfs_da_args 0 4112 NULL
150649 +enable_so_vringh_iov_pull_kern_fndecl_4115 vringh_iov_pull_kern fndecl 3 4115 NULL
150650 +enable_so_read_reg_fndecl_4120 read_reg fndecl 0 4120 NULL
150651 +enable_so_jffs2_acl_from_medium_fndecl_4129 jffs2_acl_from_medium fndecl 2 4129 NULL
150652 +enable_so_ocfs2_read_group_descriptor_fndecl_4136 ocfs2_read_group_descriptor fndecl 3 4136 NULL
150653 +enable_so_ssid_len_mwifiex_802_11_ssid_4139 ssid_len mwifiex_802_11_ssid 0 4139 NULL
150654 +enable_so_size_badblocks_4142 size badblocks 0 4142 NULL
150655 +enable_so_interleave_cfi_private_4153 interleave cfi_private 0 4153 NULL
150656 +enable_so_ocfs2_readpages_fndecl_4156 ocfs2_readpages fndecl 4 4156 NULL nohasharray
150657 +enable_so_num_msix_vec_be_adapter_4156 num_msix_vec be_adapter 0 4156 &enable_so_ocfs2_readpages_fndecl_4156
150658 +enable_so_batadv_tt_local_add_fndecl_4159 batadv_tt_local_add fndecl 3 4159 NULL
150659 +enable_so_tool_spadfn_read_fndecl_4176 tool_spadfn_read fndecl 3 4176 NULL nohasharray
150660 +enable_so_epp_write_data_parport_operations_4176 epp_write_data parport_operations 0 4176 &enable_so_tool_spadfn_read_fndecl_4176
150661 +enable_so_max_rx_urb_irda_usb_cb_4182 max_rx_urb irda_usb_cb 0 4182 NULL
150662 +enable_so_saa7146_vmalloc_build_pgtable_fndecl_4183 saa7146_vmalloc_build_pgtable fndecl 2 4183 NULL
150663 +enable_so_team_change_mtu_fndecl_4186 team_change_mtu fndecl 2 4186 NULL
150664 +enable_so_irda_setsockopt_fndecl_4195 irda_setsockopt fndecl 5 4195 NULL
150665 +enable_so_wBeaconInfoLength_uwb_rc_evt_beacon_WUSB_0100_4200 wBeaconInfoLength uwb_rc_evt_beacon_WUSB_0100 0 4200 NULL
150666 +enable_so_bd_dev_block_device_4202 bd_dev block_device 0 4202 NULL
150667 +enable_so_vfs_getxattr_fndecl_4203 vfs_getxattr fndecl 0 4203 NULL
150668 +enable_so_sample_bits_snd_soc_dai_4206 sample_bits snd_soc_dai 0 4206 NULL nohasharray
150669 +enable_so_parent___prelim_ref_4206 parent __prelim_ref 0 4206 &enable_so_sample_bits_snd_soc_dai_4206
150670 +enable_so_rx_page_order_il_hw_params_4208 rx_page_order il_hw_params 0 4208 NULL
150671 +enable_so_rx_pkt_offset_rxpd_4210 rx_pkt_offset rxpd 0 4210 NULL
150672 +enable_so_max_vectors_i40e_virtchnl_vf_resource_4213 max_vectors i40e_virtchnl_vf_resource 0 4213 NULL
150673 +enable_so_ext2_setsize_fndecl_4215 ext2_setsize fndecl 2 4215 NULL nohasharray
150674 +enable_so_nci_hci_set_param_fndecl_4215 nci_hci_set_param fndecl 5 4215 &enable_so_ext2_setsize_fndecl_4215
150675 +enable_so_proc_stats_rid_open_fndecl_4219 proc_stats_rid_open fndecl 0 4219 NULL
150676 +enable_so_store_pending_adv_report_fndecl_4222 store_pending_adv_report fndecl 7 4222 NULL
150677 +enable_so_ath10k_write_htt_max_amsdu_ampdu_fndecl_4223 ath10k_write_htt_max_amsdu_ampdu fndecl 3 4223 NULL
150678 +enable_so_nilfs_segbuf_map_fndecl_4225 nilfs_segbuf_map fndecl 3-2 4225 NULL nohasharray
150679 +enable_so_dlm_lock_fndecl_4225 dlm_lock fndecl 6 4225 &enable_so_nilfs_segbuf_map_fndecl_4225
150680 +enable_so___nla_put_fndecl_4226 __nla_put fndecl 3 4226 NULL
150681 +enable_so_len_bpf_prog_4232 len bpf_prog 0 4232 NULL
150682 +enable_so_data_len_nci_data_4237 data_len nci_data 0 4237 NULL
150683 +enable_so_ip6gre_err_fndecl_4238 ip6gre_err fndecl 5-6 4238 NULL
150684 +enable_so_alloc_size_debug_buffer_4240 alloc_size debug_buffer 0 4240 NULL
150685 +enable_so_subpage_sft_mtd_info_4249 subpage_sft mtd_info 0 4249 NULL
150686 +enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250 ieee80211_mesh_rx_mgmt_action fndecl 3 4250 NULL nohasharray
150687 +enable_so_duplex_ethtool_cmd_4250 duplex ethtool_cmd 0 4250 &enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250
150688 +enable_so_cfg80211_mlme_register_mgmt_fndecl_4255 cfg80211_mlme_register_mgmt fndecl 5 4255 NULL
150689 +enable_so_fb_y_vmw_fb_par_4260 fb_y vmw_fb_par 0 4260 NULL
150690 +enable_so_user_width_soc_camera_device_4262 user_width soc_camera_device 0 4262 NULL
150691 +enable_so_ntids_tid_info_4263 ntids tid_info 0 4263 NULL
150692 +enable_so_nilfs_gccache_submit_read_node_fndecl_4267 nilfs_gccache_submit_read_node fndecl 2-3 4267 NULL
150693 +enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270 qlcnic_sysfs_read_pci_config fndecl 6 4270 NULL nohasharray
150694 +enable_so_xgbe_init_ring_fndecl_4270 xgbe_init_ring fndecl 3 4270 &enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270
150695 +enable_so_ide_set_pio_fndecl_4272 ide_set_pio fndecl 2 4272 NULL
150696 +enable_so_mp_map_pin_to_irq_fndecl_4276 mp_map_pin_to_irq fndecl 1 4276 NULL
150697 +enable_so_fuse_ioctl_copy_user_fndecl_4279 fuse_ioctl_copy_user fndecl 4-3 4279 NULL
150698 +enable_so_rx_packet_len_nci_uart_4280 rx_packet_len nci_uart 0 4280 NULL
150699 +enable_so_mrp_request_join_fndecl_4281 mrp_request_join fndecl 4 4281 NULL
150700 +enable_so_ib_qib_lkey_table_size_vardecl_4282 ib_qib_lkey_table_size vardecl 0 4282 NULL
150701 +enable_so_gfs2_getbuf_fndecl_4283 gfs2_getbuf fndecl 2 4283 NULL
150702 +enable_so_route_mtu_cached_xfrm_dst_4288 route_mtu_cached xfrm_dst 0 4288 NULL nohasharray
150703 +enable_so_mangle_name_fndecl_4288 mangle_name fndecl 0 4288 &enable_so_route_mtu_cached_xfrm_dst_4288
150704 +enable_so_connector_count_drm_fb_helper_4290 connector_count drm_fb_helper 0 4290 NULL
150705 +enable_so_h_next_leaf_blk_ocfs2_extent_block_4292 h_next_leaf_blk ocfs2_extent_block 0 4292 NULL
150706 +enable_so___add_section_fndecl_4296 __add_section fndecl 3 4296 NULL
150707 +enable_so_cgroup_task_count_fndecl_4297 cgroup_task_count fndecl 0 4297 NULL
150708 +enable_so_maxpacket_musb_qh_4303 maxpacket musb_qh 0 4303 NULL
150709 +enable_so_rx_frm_len_mask_macb_4310 rx_frm_len_mask macb 0 4310 NULL
150710 +enable_so_raid56_alloc_missing_rbio_fndecl_4316 raid56_alloc_missing_rbio fndecl 4 4316 NULL
150711 +enable_so_ps_upsd_max_apturn_read_fndecl_4317 ps_upsd_max_apturn_read fndecl 3 4317 NULL
150712 +enable_so_bufsize_i2c_hid_4318 bufsize i2c_hid 0 4318 NULL
150713 +enable_so_bfad_iocmd_rport_get_stats_fndecl_4323 bfad_iocmd_rport_get_stats fndecl 0 4323 NULL
150714 +enable_so_old_chunk_dm_exception_4333 old_chunk dm_exception 0 4333 NULL
150715 +enable_so_ax25_send_frame_fndecl_4335 ax25_send_frame fndecl 2 4335 NULL
150716 +enable_so_length_rbd_obj_request_4337 length rbd_obj_request 0 4337 NULL
150717 +enable_so_stripe_len_btrfs_raid_bio_4340 stripe_len btrfs_raid_bio 0 4340 NULL nohasharray
150718 +enable_so_iwl_dbgfs_rx_queue_read_fndecl_4340 iwl_dbgfs_rx_queue_read fndecl 3 4340 &enable_so_stripe_len_btrfs_raid_bio_4340
150719 +enable_so_v4l2_ctrl_new_fndecl_4341 v4l2_ctrl_new fndecl 8-7-10-12 4341 NULL
150720 +enable_so_key_len_neigh_table_4347 key_len neigh_table 0 4347 NULL
150721 +enable_so_scrbuf_size_sisusb_usb_data_4350 scrbuf_size sisusb_usb_data 0 4350 NULL
150722 +enable_so_len_mwifiex_ds_misc_gen_ie_4351 len mwifiex_ds_misc_gen_ie 0 4351 NULL
150723 +enable_so_musb_giveback_fndecl_4352 musb_giveback fndecl 3 4352 NULL
150724 +enable_so_o_size_x509_parse_context_4358 o_size x509_parse_context 0 4358 NULL
150725 +enable_so_max_sg_segs_vardecl_osst_c_4365 max_sg_segs vardecl_osst.c 0 4365 NULL
150726 +enable_so_snd_emu10k1_synth_alloc_fndecl_4366 snd_emu10k1_synth_alloc fndecl 2 4366 NULL
150727 +enable_so_isdn_tty_edit_at_fndecl_4376 isdn_tty_edit_at fndecl 0 4376 NULL nohasharray
150728 +enable_so_nilfs_sufile_resize_fndecl_4376 nilfs_sufile_resize fndecl 2 4376 &enable_so_isdn_tty_edit_at_fndecl_4376
150729 +enable_so_ip_vs_conn_tab_bits_vardecl_ip_vs_conn_c_4379 ip_vs_conn_tab_bits vardecl_ip_vs_conn.c 0 4379 NULL
150730 +enable_so_ts_packet_size_cx8802_dev_4383 ts_packet_size cx8802_dev 0 4383 NULL nohasharray
150731 +enable_so_dir_entries_msdos_sb_info_4383 dir_entries msdos_sb_info 0 4383 &enable_so_ts_packet_size_cx8802_dev_4383
150732 +enable_so_ext4_add_new_descs_fndecl_4390 ext4_add_new_descs fndecl 3 4390 NULL
150733 +enable_so_err_vlan_tg3_rx_buffer_desc_4391 err_vlan tg3_rx_buffer_desc 0 4391 NULL
150734 +enable_so_diReadSpecial_fndecl_4393 diReadSpecial fndecl 2 4393 NULL
150735 +enable_so_ivtv_udma_setup_fndecl_4395 ivtv_udma_setup fndecl 4 4395 NULL
150736 +enable_so_mgag200_bo_create_fndecl_4398 mgag200_bo_create fndecl 2 4398 NULL
150737 +enable_so_skb_realloc_headroom_fndecl_4399 skb_realloc_headroom fndecl 2 4399 NULL nohasharray
150738 +enable_so_ath10k_mem_value_write_fndecl_4399 ath10k_mem_value_write fndecl 3 4399 &enable_so_skb_realloc_headroom_fndecl_4399
150739 +enable_so_leadin_ignore_xpnet_message_4402 leadin_ignore xpnet_message 0 4402 NULL nohasharray
150740 +enable_so_segment_length_sbp_page_table_entry_4402 segment_length sbp_page_table_entry 0 4402 &enable_so_leadin_ignore_xpnet_message_4402
150741 +enable_so_page_ofs__ntfs_inode_4407 page_ofs _ntfs_inode 0 4407 NULL
150742 +enable_so_new_bytenr_backref_node_4416 new_bytenr backref_node 0 4416 NULL
150743 +enable_so___alloc_block_fndecl_4419 __alloc_block fndecl 2 4419 NULL nohasharray
150744 +enable_so_nfc_llcp_build_tlv_fndecl_4419 nfc_llcp_build_tlv fndecl 3 4419 &enable_so___alloc_block_fndecl_4419
150745 +enable_so_early_init_dt_scan_memory_fndecl_4420 early_init_dt_scan_memory fndecl 1 4420 NULL
150746 +enable_so_batadv_tvlv_container_register_fndecl_4435 batadv_tvlv_container_register fndecl 5 4435 NULL
150747 +enable_so_batadv_bla_update_own_backbone_gw_fndecl_4436 batadv_bla_update_own_backbone_gw fndecl 3 4436 NULL nohasharray
150748 +enable_so_jfs_fsync_fndecl_4436 jfs_fsync fndecl 2-3 4436 &enable_so_batadv_bla_update_own_backbone_gw_fndecl_4436
150749 +enable_so_f2fs_add_inline_entry_fndecl_4438 f2fs_add_inline_entry fndecl 4 4438 NULL
150750 +enable_so_bRefresh_usb_endpoint_descriptor_4444 bRefresh usb_endpoint_descriptor 0 4444 NULL
150751 +enable_so_number_mdu_disk_info_s_4445 number mdu_disk_info_s 0 4445 NULL
150752 +enable_so_width_simplefb_params_4449 width simplefb_params 0 4449 NULL
150753 +enable_so_nfsd_read_fndecl_4451 nfsd_read fndecl 3-5 4451 NULL
150754 +enable_so_ieee80211_key_alloc_fndecl_4452 ieee80211_key_alloc fndecl 3 4452 NULL
150755 +enable_so_compress_raw_buf_fndecl_4453 compress_raw_buf fndecl 0 4453 NULL
150756 +enable_so_n_comedi_insn_4458 n comedi_insn 0 4458 NULL
150757 +enable_so_bm_status_read_fndecl_4460 bm_status_read fndecl 3 4460 NULL
150758 +enable_so_sftid_base_tid_info_4462 sftid_base tid_info 0 4462 NULL
150759 +enable_so_fifo_size_fritz_bcs_4463 fifo_size fritz_bcs 0 4463 NULL
150760 +enable_so_gunzip_fndecl_4465 gunzip fndecl 2 4465 NULL
150761 +enable_so_kernel_read_fndecl_4468 kernel_read fndecl 4-0 4468 NULL
150762 +enable_so_rx_ring_size_altera_tse_private_4470 rx_ring_size altera_tse_private 0 4470 NULL
150763 +enable_so_sddr09_read22_fndecl_4476 sddr09_read22 fndecl 4-3-6 4476 NULL
150764 +enable_so_ocfs2_control_message_fndecl_4479 ocfs2_control_message fndecl 3 4479 NULL
150765 +enable_so_hdmi_create_eld_ctl_fndecl_4485 hdmi_create_eld_ctl fndecl 2 4485 NULL
150766 +enable_so_hdr_len_l2tp_session_4486 hdr_len l2tp_session 0 4486 NULL nohasharray
150767 +enable_so_fragments_squashfs_super_block_4486 fragments squashfs_super_block 0 4486 &enable_so_hdr_len_l2tp_session_4486
150768 +enable_so_fw_size_amdgpu_firmware_4488 fw_size amdgpu_firmware 0 4488 NULL
150769 +enable_so_fallocate_chunk_fndecl_4489 fallocate_chunk fndecl 3 4489 NULL
150770 +enable_so_alt_pkey_index_ib_qp_attr_4502 alt_pkey_index ib_qp_attr 0 4502 NULL
150771 +enable_so_load_xattr_datum_fndecl_4505 load_xattr_datum fndecl 0 4505 NULL
150772 +enable_so___mei_cl_recv_fndecl_4519 __mei_cl_recv fndecl 0-3 4519 NULL
150773 +enable_so_nfs3_proc_readdir_fndecl_4544 nfs3_proc_readdir fndecl 5 4544 NULL nohasharray
150774 +enable_so_ath10k_read_pktlog_filter_fndecl_4544 ath10k_read_pktlog_filter fndecl 3 4544 &enable_so_nfs3_proc_readdir_fndecl_4544
150775 +enable_so_BlocksPerUnit_partition_t_4545 BlocksPerUnit partition_t 0 4545 NULL
150776 +enable_so_uhci_giveback_urb_fndecl_4547 uhci_giveback_urb fndecl 4 4547 NULL
150777 +enable_so_data_size_cz_buffer_entry_4548 data_size cz_buffer_entry 0 4548 NULL
150778 +enable_so_qdepth_uas_dev_info_4551 qdepth uas_dev_info 0 4551 NULL
150779 +enable_so_nr_chans_solo_dev_4552 nr_chans solo_dev 0 4552 NULL
150780 +enable_so_data_len_o2net_msg_4553 data_len o2net_msg 0 4553 NULL
150781 +enable_so_acpi_read_slow_fndecl_4554 acpi_read_slow fndecl 3-2 4554 NULL
150782 +enable_so_hwcursor_size_sis_video_info_4560 hwcursor_size sis_video_info 0 4560 NULL
150783 +enable_so_channels_snd_korg1212_4562 channels snd_korg1212 0 4562 NULL
150784 +enable_so_usbvision_rvmalloc_fndecl_4564 usbvision_rvmalloc fndecl 1 4564 NULL
150785 +enable_so_word1_pkt_stat_desc_4565 word1 pkt_stat_desc 0 4565 NULL
150786 +enable_so_LoadBitmap_fndecl_4569 LoadBitmap fndecl 2 4569 NULL
150787 +enable_so_far_copies_geom_4570 far_copies geom 0 4570 NULL
150788 +enable_so_dlen_nft_set_4577 dlen nft_set 0 4577 NULL
150789 +enable_so_rx_buf_sz_gem_4593 rx_buf_sz gem 0 4593 NULL nohasharray
150790 +enable_so_cxd2841er_read_regs_fndecl_4593 cxd2841er_read_regs fndecl 5 4593 &enable_so_rx_buf_sz_gem_4593
150791 +enable_so_fdt_nop_node_fndecl_4595 fdt_nop_node fndecl 2 4595 NULL
150792 +enable_so_bio_detain_fndecl_4601 bio_detain fndecl 2 4601 NULL
150793 +enable_so_header_size_partition_4606 header_size partition 0 4606 NULL
150794 +enable_so_btrfs_del_inode_extref_fndecl_4607 btrfs_del_inode_extref fndecl 4 4607 NULL
150795 +enable_so_max_event_log_size_iwl_base_params_4612 max_event_log_size iwl_base_params 0 4612 NULL
150796 +enable_so_sxgbe_change_mtu_fndecl_4613 sxgbe_change_mtu fndecl 2 4613 NULL
150797 +enable_so_tm6000_i2c_send_regs_fndecl_4617 tm6000_i2c_send_regs fndecl 5 4617 NULL
150798 +enable_so_cksumlength_gss_krb5_enctype_4630 cksumlength gss_krb5_enctype 0 4630 NULL
150799 +enable_so_tcam_size_mc5_4631 tcam_size mc5 0 4631 NULL nohasharray
150800 +enable_so_size_minus_one_mxt_object_4631 size_minus_one mxt_object 0 4631 &enable_so_tcam_size_mc5_4631
150801 +enable_so_total_bytes__osd_req_data_segment_4634 total_bytes _osd_req_data_segment 0 4634 NULL
150802 +enable_so_setup_efi_state_fndecl_4639 setup_efi_state fndecl 5-2-3-4 4639 NULL
150803 +enable_so_irq_nvecs_bnx2_4644 irq_nvecs bnx2 0 4644 NULL
150804 +enable_so_read_eeprom_bytes_fndecl_4649 read_eeprom_bytes fndecl 4 4649 NULL
150805 +enable_so_size_simple_transaction_argresp_4650 size simple_transaction_argresp 0 4650 NULL
150806 +enable_so_valence_hfsplus_cat_folder_4655 valence hfsplus_cat_folder 0 4655 NULL
150807 +enable_so_buffer_size_smsusb_device_t_4667 buffer_size smsusb_device_t 0 4667 NULL
150808 +enable_so_overridesize_vardecl_nandsim_c_4668 overridesize vardecl_nandsim.c 0 4668 NULL
150809 +enable_so_r10_sync_page_io_fndecl_4672 r10_sync_page_io fndecl 3-2 4672 NULL
150810 +enable_so_bcache_major_vardecl_super_c_4677 bcache_major vardecl_super.c 0 4677 NULL
150811 +enable_so_bytenr_btrfs_ordered_sum_4679 bytenr btrfs_ordered_sum 0 4679 NULL
150812 +enable_so_dm_get_reserved_bio_based_ios_fndecl_4680 dm_get_reserved_bio_based_ios fndecl 0 4680 NULL
150813 +enable_so_l1_dirbase_vardecl_acpi_extlog_c_4681 l1_dirbase vardecl_acpi_extlog.c 0 4681 NULL
150814 +enable_so__rtl92s_get_h2c_cmdlen_fndecl_4683 _rtl92s_get_h2c_cmdlen fndecl 0 4683 NULL
150815 +enable_so_rspResId_fcp_rsp_4685 rspResId fcp_rsp 0 4685 NULL
150816 +enable_so_snd_pcm_hw_param_near_fndecl_4691 snd_pcm_hw_param_near fndecl 4 4691 NULL
150817 +enable_so_optlen_ip_options_4698 optlen ip_options 0 4698 NULL nohasharray
150818 +enable_so_send_section_cnt_netvsc_device_4698 send_section_cnt netvsc_device 0 4698 &enable_so_optlen_ip_options_4698
150819 +enable_so_btrfs_header_nritems_fndecl_4699 btrfs_header_nritems fndecl 0 4699 NULL
150820 +enable_so_bpf_func_bpf_prog_4701 bpf_func bpf_prog 0 4701 NULL
150821 +enable_so_iwl_parse_nvm_mcc_info_fndecl_4702 iwl_parse_nvm_mcc_info fndecl 3 4702 NULL nohasharray
150822 +enable_so_single_open_fndecl_4702 single_open fndecl 0 4702 &enable_so_iwl_parse_nvm_mcc_info_fndecl_4702
150823 +enable_so_xdr_decode_word_fndecl_4707 xdr_decode_word fndecl 2 4707 NULL
150824 +enable_so_gfs2_glock_nq_m_fndecl_4712 gfs2_glock_nq_m fndecl 1 4712 NULL
150825 +enable_so_nr_hw_queues_blk_mq_tag_set_4713 nr_hw_queues blk_mq_tag_set 0 4713 NULL
150826 +enable_so_count_user_sgentry64_4714 count user_sgentry64 0 4714 NULL
150827 +enable_so_hpfs_ea_remove_fndecl_4717 hpfs_ea_remove fndecl 4-2 4717 NULL
150828 +enable_so_snd_cs4281_BA1_read_fndecl_4720 snd_cs4281_BA1_read fndecl 5 4720 NULL
150829 +enable_so_sp_bb_data_fc_els_csp_4721 sp_bb_data fc_els_csp 0 4721 NULL
150830 +enable_so_tx_tx_burst_programmed_read_fndecl_4723 tx_tx_burst_programmed_read fndecl 3 4723 NULL
150831 +enable_so_next_page_mpage_da_data_4726 next_page mpage_da_data 0 4726 NULL
150832 +enable_so_displacement_bts_phys_4728 displacement bts_phys 0 4728 NULL
150833 +enable_so_net2272_read_packet_fndecl_4735 net2272_read_packet fndecl 4 4735 NULL
150834 +enable_so_qla82xx_pci_mem_read_direct_fndecl_4739 qla82xx_pci_mem_read_direct fndecl 2 4739 NULL
150835 +enable_so_smk_set_cipso_fndecl_4744 smk_set_cipso fndecl 3 4744 NULL
150836 +enable_so_num_srq_mthca_profile_4747 num_srq mthca_profile 0 4747 NULL
150837 +enable_so_netlbl_catmap_setrng_fndecl_4749 netlbl_catmap_setrng fndecl 2 4749 NULL
150838 +enable_so_offline_isolated_pages_fndecl_4750 offline_isolated_pages fndecl 1-2 4750 NULL
150839 +enable_so_format_count_drm_plane_4754 format_count drm_plane 0 4754 NULL
150840 +enable_so_maxpacket_sl811h_ep_4755 maxpacket sl811h_ep 0 4755 NULL
150841 +enable_so_igbvf_receive_skb_fndecl_4757 igbvf_receive_skb fndecl 5 4757 NULL
150842 +enable_so_read_reg_cc770_priv_4760 read_reg cc770_priv 0 4760 NULL
150843 +enable_so_responder_resources_ib_cm_req_param_4766 responder_resources ib_cm_req_param 0 4766 NULL
150844 +enable_so_map_sz_cyttsp4_sysinfo_ofs_4769 map_sz cyttsp4_sysinfo_ofs 0 4769 NULL
150845 +enable_so_acpi_rs_set_resource_source_fndecl_4776 acpi_rs_set_resource_source fndecl 0-2 4776 NULL
150846 +enable_so_length_property_4777 length property 0 4777 NULL
150847 +enable_so_stride_snd_usb_endpoint_4779 stride snd_usb_endpoint 0 4779 NULL
150848 +enable_so_max_tfr_mmc_test_area_4780 max_tfr mmc_test_area 0 4780 NULL
150849 +enable_so_crtc_vsync_start_drm_display_mode_4785 crtc_vsync_start drm_display_mode 0 4785 NULL nohasharray
150850 +enable_so_n_channels_cfg80211_scan_request_4785 n_channels cfg80211_scan_request 0 4785 &enable_so_crtc_vsync_start_drm_display_mode_4785
150851 +enable_so_img_height_s5p_mfc_ctx_4793 img_height s5p_mfc_ctx 0 4793 NULL
150852 +enable_so___kfifo_from_user_fndecl_4796 __kfifo_from_user fndecl 3 4796 NULL nohasharray
150853 +enable_so_SyS_get_mempolicy_fndecl_4796 SyS_get_mempolicy fndecl 3 4796 &enable_so___kfifo_from_user_fndecl_4796
150854 +enable_so_fmc_send_cmd_fndecl_4800 fmc_send_cmd fndecl 0-5 4800 NULL
150855 +enable_so_set_indirect_ea_fndecl_4810 set_indirect_ea fndecl 5-3 4810 NULL
150856 +enable_so_INFTL_deleteblock_fndecl_4811 INFTL_deleteblock fndecl 2 4811 NULL
150857 +enable_so_length_reiserfs_security_handle_4813 length reiserfs_security_handle 0 4813 NULL
150858 +enable_so_buffer_size_ide_tape_obj_4815 buffer_size ide_tape_obj 0 4815 NULL
150859 +enable_so_drm_mode_vrefresh_fndecl_4817 drm_mode_vrefresh fndecl 0 4817 NULL
150860 +enable_so_ov534_reg_read_fndecl_4820 ov534_reg_read fndecl 0 4820 NULL
150861 +enable_so_ext4_dir_llseek_fndecl_4826 ext4_dir_llseek fndecl 2 4826 NULL
150862 +enable_so_new_orphans_ubifs_info_4827 new_orphans ubifs_info 0 4827 NULL
150863 +enable_so_i2c_read_fndecl_4828 i2c_read fndecl 4-6 4828 NULL nohasharray
150864 +enable_so_find_skb_fndecl_4828 find_skb fndecl 3 4828 &enable_so_i2c_read_fndecl_4828 nohasharray
150865 +enable_so_period_bytes_snd_card_asihpi_pcm_4828 period_bytes snd_card_asihpi_pcm 0 4828 &enable_so_find_skb_fndecl_4828
150866 +enable_so_nelems_cciss_scsi_cmd_stack_t_4829 nelems cciss_scsi_cmd_stack_t 0 4829 NULL
150867 +enable_so_alloc_dummy_extent_buffer_fndecl_4832 alloc_dummy_extent_buffer fndecl 2 4832 NULL
150868 +enable_so_axi_dmac_alloc_desc_fndecl_4833 axi_dmac_alloc_desc fndecl 1 4833 NULL
150869 +enable_so_read_buf_fndecl_4838 read_buf fndecl 2 4838 NULL
150870 +enable_so_compat_ipv6_setsockopt_fndecl_4839 compat_ipv6_setsockopt fndecl 5 4839 NULL
150871 +enable_so_bio_trim_fndecl_4843 bio_trim fndecl 2-3 4843 NULL
150872 +enable_so_start_service_discovery_fndecl_4846 start_service_discovery fndecl 4 4846 NULL
150873 +enable_so_btrfs_get_32_fndecl_4847 btrfs_get_32 fndecl 0 4847 NULL
150874 +enable_so_hash_size_cache_detail_4852 hash_size cache_detail 0 4852 NULL
150875 +enable_so_start__iohandle_4857 start _iohandle 0 4857 NULL
150876 +enable_so_do_ipv6_getsockopt_fndecl_4859 do_ipv6_getsockopt fndecl 0 4859 NULL
150877 +enable_so_max_tgts_snic_fw_info_4861 max_tgts snic_fw_info 0 4861 NULL
150878 +enable_so_encode_path_fndecl_4865 encode_path fndecl 3 4865 NULL nohasharray
150879 +enable_so_attach_hdlc_protocol_fndecl_4865 attach_hdlc_protocol fndecl 3 4865 &enable_so_encode_path_fndecl_4865
150880 +enable_so_s_desc_per_block_ext4_sb_info_4867 s_desc_per_block ext4_sb_info 0 4867 NULL nohasharray
150881 +enable_so_gfn_to_hva_memslot_prot_fndecl_4867 gfn_to_hva_memslot_prot fndecl 2 4867 &enable_so_s_desc_per_block_ext4_sb_info_4867
150882 +enable_so_i40e_reserve_msix_vectors_fndecl_4870 i40e_reserve_msix_vectors fndecl 0 4870 NULL
150883 +enable_so_i_lenEAttr_udf_inode_info_4872 i_lenEAttr udf_inode_info 0 4872 NULL nohasharray
150884 +enable_so_find_overflow_devnum_fndecl_4872 find_overflow_devnum fndecl 0 4872 &enable_so_i_lenEAttr_udf_inode_info_4872
150885 +enable_so_out_args_qlcnic_mailbox_metadata_4881 out_args qlcnic_mailbox_metadata 0 4881 NULL
150886 +enable_so_mlx4_get_eqs_per_port_fndecl_4892 mlx4_get_eqs_per_port fndecl 0 4892 NULL
150887 +enable_so_snd_interval_refine_min_fndecl_4894 snd_interval_refine_min fndecl 2 4894 NULL nohasharray
150888 +enable_so_sc_datablk_cnt_nilfs_sc_info_4894 sc_datablk_cnt nilfs_sc_info 0 4894 &enable_so_snd_interval_refine_min_fndecl_4894 nohasharray
150889 +enable_so_credits_send_context_info_4894 credits send_context_info 0 4894 &enable_so_sc_datablk_cnt_nilfs_sc_info_4894
150890 +enable_so_tng_serial_setup_fndecl_4896 tng_serial_setup fndecl 4 4896 NULL
150891 +enable_so_head_circ_buf_4897 head circ_buf 0 4897 NULL
150892 +enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898 wMaxSegmentSize usb_cdc_ether_desc 0 4898 NULL nohasharray
150893 +enable_so_refdiv_arizona_fll_cfg_4898 refdiv arizona_fll_cfg 0 4898 &enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898
150894 +enable_so_upper_size_to_lower_size_fndecl_4899 upper_size_to_lower_size fndecl 0-2 4899 NULL
150895 +enable_so_need_tx_headroom_prism2_helper_functions_4902 need_tx_headroom prism2_helper_functions 0 4902 NULL
150896 +enable_so_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
150897 +enable_so_diva_um_idi_read_fndecl_4912 diva_um_idi_read fndecl 0 4912 NULL
150898 +enable_so_tree_mod_log_eb_move_fndecl_4920 tree_mod_log_eb_move fndecl 5 4920 NULL
150899 +enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
150900 +enable_so_event_trigger_write_fndecl_4922 event_trigger_write fndecl 3 4922 NULL
150901 +enable_so_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
150902 +enable_so_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
150903 +enable_so_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
150904 +enable_so_clear_extent_bits_fndecl_4939 clear_extent_bits fndecl 2-3 4939 NULL
150905 +enable_so_ocfs2_xattr_security_set_fndecl_4947 ocfs2_xattr_security_set fndecl 4 4947 NULL
150906 +enable_so_update_tind_extent_range_fndecl_4950 update_tind_extent_range fndecl 3 4950 NULL nohasharray
150907 +enable_so_mlx5_ib_db_map_user_fndecl_4950 mlx5_ib_db_map_user fndecl 2 4950 &enable_so_update_tind_extent_range_fndecl_4950 nohasharray
150908 +enable_so_read_tape_fndecl_4950 read_tape fndecl 2 4950 &enable_so_mlx5_ib_db_map_user_fndecl_4950
150909 +enable_so_clear_extent_uptodate_fndecl_4952 clear_extent_uptodate fndecl 2-3 4952 NULL
150910 +enable_so_myri10ge_get_txrx_fndecl_4953 myri10ge_get_txrx fndecl 2 4953 NULL
150911 +enable_so_aat2870_reg_write_file_fndecl_4965 aat2870_reg_write_file fndecl 3 4965 NULL
150912 +enable_so_fuse_conn_limit_read_fndecl_4967 fuse_conn_limit_read fndecl 3 4967 NULL
150913 +enable_so_team_options_register_fndecl_4968 team_options_register fndecl 3 4968 NULL
150914 +enable_so_radeon_align_pitch_fndecl_4969 radeon_align_pitch fndecl 0-2 4969 NULL
150915 +enable_so_read_len_t4_swsqe_4971 read_len t4_swsqe 0 4971 NULL nohasharray
150916 +enable_so_reiserfs_dir_fsync_fndecl_4971 reiserfs_dir_fsync fndecl 2-3 4971 &enable_so_read_len_t4_swsqe_4971
150917 +enable_so_iwl_mvm_power_mac_dbgfs_read_fndecl_4976 iwl_mvm_power_mac_dbgfs_read fndecl 0 4976 NULL
150918 +enable_so_len_htc_record_hdr_4978 len htc_record_hdr 0 4978 NULL
150919 +enable_so_t_data_nents_se_cmd_4981 t_data_nents se_cmd 0 4981 NULL nohasharray
150920 +enable_so_dma_tx_num_vardecl_altera_tse_main_c_4981 dma_tx_num vardecl_altera_tse_main.c 0 4981 &enable_so_t_data_nents_se_cmd_4981
150921 +enable_so_btrfs_pin_extent_for_log_replay_fndecl_4982 btrfs_pin_extent_for_log_replay fndecl 3-2 4982 NULL
150922 +enable_so_buffer_size_most_channel_config_4986 buffer_size most_channel_config 0 4986 NULL
150923 +enable_so_scif_send_fndecl_4988 scif_send fndecl 3 4988 NULL
150924 +enable_so_phy_duplex_pxa168_eth_private_4990 phy_duplex pxa168_eth_private 0 4990 NULL
150925 +enable_so_stripe_unit_ore_layout_4991 stripe_unit ore_layout 0 4991 NULL
150926 +enable_so___mt7601u_dma_fw_fndecl_4994 __mt7601u_dma_fw fndecl 4 4994 NULL
150927 +enable_so_kmem_cache_create_fndecl_5007 kmem_cache_create fndecl 2-3 5007 NULL
150928 +enable_so_read_int_fndecl_5009 read_int fndecl 0 5009 NULL nohasharray
150929 +enable_so_tx_tx_retry_per_rate_read_fndecl_5009 tx_tx_retry_per_rate_read fndecl 3 5009 &enable_so_read_int_fndecl_5009
150930 +enable_so_numEntries__ATOM_PPLIB_SAMClk_Voltage_Limit_Table_5010 numEntries _ATOM_PPLIB_SAMClk_Voltage_Limit_Table 0 5010 NULL
150931 +enable_so_xfs_qm_dqget_fndecl_5012 xfs_qm_dqget fndecl 3 5012 NULL nohasharray
150932 +enable_so_o2net_send_message_fndecl_5012 o2net_send_message fndecl 4 5012 &enable_so_xfs_qm_dqget_fndecl_5012 nohasharray
150933 +enable_so_mgmt_limited_event_fndecl_5012 mgmt_limited_event fndecl 4 5012 &enable_so_o2net_send_message_fndecl_5012
150934 +enable_so_xenvif_gop_skb_fndecl_5015 xenvif_gop_skb fndecl 0 5015 NULL
150935 +enable_so_info1_htt_rx_indication_hdr_5016 info1 htt_rx_indication_hdr 0 5016 NULL
150936 +enable_so_bulk_in_size_usb_idmouse_5017 bulk_in_size usb_idmouse 0 5017 NULL
150937 +enable_so_hard_header_len_net_device_5025 hard_header_len net_device 0 5025 NULL
150938 +enable_so_ubifs_unpack_bits_fndecl_5033 ubifs_unpack_bits fndecl 0-3 5033 NULL
150939 +enable_so_nr_pages_firmware_buf_5039 nr_pages firmware_buf 0 5039 NULL
150940 +enable_so_device_tg3_dev_id_5042 device tg3_dev_id 0 5042 NULL nohasharray
150941 +enable_so_mlx4_log_num_mgm_entry_size_vardecl_5042 mlx4_log_num_mgm_entry_size vardecl 0 5042 &enable_so_device_tg3_dev_id_5042
150942 +enable_so_ldebugfs_fid_write_common_fndecl_5049 ldebugfs_fid_write_common fndecl 2 5049 NULL
150943 +enable_so_jffs2_fsync_fndecl_5052 jffs2_fsync fndecl 2-3 5052 NULL
150944 +enable_so_index_squashfs_dir_index_5053 index squashfs_dir_index 0 5053 NULL
150945 +enable_so_rcvidx_IsdnCardState_5055 rcvidx IsdnCardState 0 5055 NULL nohasharray
150946 +enable_so_compress_raw_buf_fndecl_5055 compress_raw_buf fndecl 0 5055 &enable_so_rcvidx_IsdnCardState_5055
150947 +enable_so_offset_SVGAGuestPtr_5056 offset SVGAGuestPtr 0 5056 NULL
150948 +enable_so_ext4_llseek_fndecl_5060 ext4_llseek fndecl 2 5060 NULL
150949 +enable_so_kvm_vcpu_gfn_to_pfn_atomic_fndecl_5062 kvm_vcpu_gfn_to_pfn_atomic fndecl 2 5062 NULL
150950 +enable_so_port_mlx4_ib_demux_ctx_5063 port mlx4_ib_demux_ctx 0 5063 NULL
150951 +enable_so_len_BufferControl_5068 len BufferControl 0 5068 NULL
150952 +enable_so_size_compat_arpt_replace_5071 size compat_arpt_replace 0 5071 NULL
150953 +enable_so_ie_len_cfg80211_scan_request_5073 ie_len cfg80211_scan_request 0 5073 NULL
150954 +enable_so_tomoyo_commit_ok_fndecl_5076 tomoyo_commit_ok fndecl 2 5076 NULL
150955 +enable_so_read_flush_pipefs_fndecl_5080 read_flush_pipefs fndecl 3 5080 NULL
150956 +enable_so_domain_a_len_ccp_ecc_point_math_5093 domain_a_len ccp_ecc_point_math 0 5093 NULL
150957 +enable_so___radix_tree_create_fndecl_5102 __radix_tree_create fndecl 0 5102 NULL
150958 +enable_so_default_file_splice_write_fndecl_5103 default_file_splice_write fndecl 4 5103 NULL
150959 +enable_so_efi_get_runtime_map_desc_size_fndecl_5111 efi_get_runtime_map_desc_size fndecl 0 5111 NULL nohasharray
150960 +enable_so_trusted_set_fndecl_5111 trusted_set fndecl 4 5111 &enable_so_efi_get_runtime_map_desc_size_fndecl_5111
150961 +enable_so_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112 bfad_iocmd_fcpim_cfg_lunmask fndecl 0 5112 NULL nohasharray
150962 +enable_so_mem_eni_dev_5112 mem eni_dev 0 5112 &enable_so_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112
150963 +enable_so_num_banks_adf_hw_device_data_5115 num_banks adf_hw_device_data 0 5115 NULL
150964 +enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117 spi_bits_per_word cw1200_platform_data_spi 0 5117 NULL nohasharray
150965 +enable_so___link_buffer_fndecl_5117 __link_buffer fndecl 2 5117 &enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117
150966 +enable_so_num_gpio_tc3589x_5118 num_gpio tc3589x 0 5118 NULL
150967 +enable_so_replay_log_leb_fndecl_5123 replay_log_leb fndecl 3 5123 NULL
150968 +enable_so_ocfs2_trim_extent_fndecl_5124 ocfs2_trim_extent fndecl 4-3-0 5124 NULL
150969 +enable_so_ceph_alloc_page_vector_fndecl_5125 ceph_alloc_page_vector fndecl 1 5125 NULL
150970 +enable_so_iwl_dbgfs_rx_handlers_read_fndecl_5127 iwl_dbgfs_rx_handlers_read fndecl 3 5127 NULL
150971 +enable_so_ccp_init_sg_workarea_fndecl_5128 ccp_init_sg_workarea fndecl 4 5128 NULL
150972 +enable_so_fuse_dev_splice_write_fndecl_5131 fuse_dev_splice_write fndecl 4 5131 NULL
150973 +enable_so_nfs4_init_callback_netid_fndecl_5134 nfs4_init_callback_netid fndecl 0 5134 NULL
150974 +enable_so_rate_num_snd_pcm_hw_params_5135 rate_num snd_pcm_hw_params 0 5135 NULL
150975 +enable_so_rlen_si2157_cmd_5138 rlen si2157_cmd 0 5138 NULL nohasharray
150976 +enable_so_channel_count_il_priv_5138 channel_count il_priv 0 5138 &enable_so_rlen_si2157_cmd_5138
150977 +enable_so_fnic_stats_debugfs_read_fndecl_5139 fnic_stats_debugfs_read fndecl 3 5139 NULL
150978 +enable_so_echo_client_prep_commit_fndecl_5142 echo_client_prep_commit fndecl 8 5142 NULL
150979 +enable_so_csio_scsi_eqsize_vardecl_5146 csio_scsi_eqsize vardecl 0 5146 NULL
150980 +enable_so_ocfs2_iget_fndecl_5154 ocfs2_iget fndecl 2 5154 NULL
150981 +enable_so_total_in_z_stream_s_5155 total_in z_stream_s 0 5155 NULL
150982 +enable_so_stv0297_readregs_fndecl_5156 stv0297_readregs fndecl 4 5156 NULL
150983 +enable_so_o2hb_debug_create_fndecl_5163 o2hb_debug_create fndecl 4 5163 NULL
150984 +enable_so_tx_hdr_len_p54_common_5164 tx_hdr_len p54_common 0 5164 NULL nohasharray
150985 +enable_so_wep_packets_read_fndecl_5164 wep_packets_read fndecl 3 5164 &enable_so_tx_hdr_len_p54_common_5164
150986 +enable_so_indices_ixgbe_ring_feature_5170 indices ixgbe_ring_feature 0 5170 NULL
150987 +enable_so_batadv_tt_local_remove_fndecl_5177 batadv_tt_local_remove fndecl 3 5177 NULL
150988 +enable_so_ext4_es_insert_extent_fndecl_5178 ext4_es_insert_extent fndecl 0-3-2 5178 NULL nohasharray
150989 +enable_so_len_bts_file_action_5178 len bts_file_action 0 5178 &enable_so_ext4_es_insert_extent_fndecl_5178
150990 +enable_so_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
150991 +enable_so_port_mlx5_ib_qp_5186 port mlx5_ib_qp 0 5186 NULL
150992 +enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
150993 +enable_so_SyS_lsetxattr_fndecl_5195 SyS_lsetxattr fndecl 4 5195 NULL
150994 +enable_so_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 NULL
150995 +enable_so_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
150996 +enable_so_nr_nvkm_fifo_5199 nr nvkm_fifo 0 5199 NULL nohasharray
150997 +enable_so_alloc_fcdev_fndecl_5199 alloc_fcdev fndecl 1 5199 &enable_so_nr_nvkm_fifo_5199
150998 +enable_so_port_num_rdma_cm_id_5206 port_num rdma_cm_id 0 5206 NULL
150999 +enable_so_vtbl_size_ubi_device_5209 vtbl_size ubi_device 0 5209 NULL
151000 +enable_so_snd_midi_event_encode_fndecl_5210 snd_midi_event_encode fndecl 0 5210 NULL
151001 +enable_so_hugetlb_entry_mm_walk_5211 hugetlb_entry mm_walk 0 5211 NULL
151002 +enable_so_drm_gem_private_object_init_fndecl_5217 drm_gem_private_object_init fndecl 3 5217 NULL
151003 +enable_so_phys_ichxrom_window_5221 phys ichxrom_window 0 5221 NULL
151004 +enable_so_mmc_test_broken_transfer_fndecl_5224 mmc_test_broken_transfer fndecl 3-2 5224 NULL
151005 +enable_so_sq905_read_data_fndecl_5229 sq905_read_data fndecl 0 5229 NULL
151006 +enable_so_madvise_hwpoison_fndecl_5231 madvise_hwpoison fndecl 2 5231 NULL
151007 +enable_so_nr_extents__ntfs_inode_5242 nr_extents _ntfs_inode 0 5242 NULL
151008 +enable_so_nf_reject_iphdr_put_fndecl_5243 nf_reject_iphdr_put fndecl 3 5243 NULL
151009 +enable_so_feednum_dvb_demux_5252 feednum dvb_demux 0 5252 NULL
151010 +enable_so_fdt_next_subnode_fndecl_5258 fdt_next_subnode fndecl 2 5258 NULL
151011 +enable_so_len_fstrim_range_5265 len fstrim_range 0 5265 NULL
151012 +enable_so_h_total_aty128_crtc_5275 h_total aty128_crtc 0 5275 NULL nohasharray
151013 +enable_so_sys_modify_ldt_fndecl_5275 sys_modify_ldt fndecl 3 5275 &enable_so_h_total_aty128_crtc_5275
151014 +enable_so_upload_data_fndecl_5277 upload_data fndecl 2 5277 NULL nohasharray
151015 +enable_so_fi_extents_max_fiemap_extent_info_5277 fi_extents_max fiemap_extent_info 0 5277 &enable_so_upload_data_fndecl_5277
151016 +enable_so_xlog_find_verify_log_record_fndecl_5285 xlog_find_verify_log_record fndecl 2 5285 NULL
151017 +enable_so_ieee80211_if_read_element_ttl_fndecl_5286 ieee80211_if_read_element_ttl fndecl 3 5286 NULL
151018 +enable_so_count_mpc8xxx_spi_5287 count mpc8xxx_spi 0 5287 NULL
151019 +enable_so_dma_offset_freelQ_5299 dma_offset freelQ 0 5299 NULL nohasharray
151020 +enable_so_lpt_hght_ubifs_info_5299 lpt_hght ubifs_info 0 5299 &enable_so_dma_offset_freelQ_5299
151021 +enable_so_drm_ht_create_fndecl_5302 drm_ht_create fndecl 2 5302 NULL
151022 +enable_so_error_ide_atapi_pc_5308 error ide_atapi_pc 0 5308 NULL
151023 +enable_so_sctp_setsockopt_events_fndecl_5309 sctp_setsockopt_events fndecl 3 5309 NULL
151024 +enable_so_thermal_tx_stop_read_fndecl_5310 thermal_tx_stop_read fndecl 3 5310 NULL
151025 +enable_so_beep_amp_alc_spec_5315 beep_amp alc_spec 0 5315 NULL
151026 +enable_so_devm_mdiobus_alloc_size_fndecl_5317 devm_mdiobus_alloc_size fndecl 2 5317 NULL
151027 +enable_so_matchsize_xt_match_5320 matchsize xt_match 0 5320 NULL
151028 +enable_so____alloc_bootmem_node_fndecl_5329 ___alloc_bootmem_node fndecl 3-2-4-5 5329 NULL
151029 +enable_so_scsi_change_queue_depth_fndecl_5330 scsi_change_queue_depth fndecl 2 5330 NULL
151030 +enable_so_get_cramfs_inode_fndecl_5332 get_cramfs_inode fndecl 3 5332 NULL
151031 +enable_so_jfs_quota_read_fndecl_5341 jfs_quota_read fndecl 5 5341 NULL
151032 +enable_so_comedi_isadma_alloc_fndecl_5342 comedi_isadma_alloc fndecl 2 5342 NULL
151033 +enable_so_get_cr3_kvm_mmu_5347 get_cr3 kvm_mmu 0 5347 NULL
151034 +enable_so_data_count_iscsi_task_5350 data_count iscsi_task 0 5350 NULL
151035 +enable_so_brcmf_usb_send_ctl_fndecl_5357 brcmf_usb_send_ctl fndecl 3 5357 NULL
151036 +enable_so_compute_blocknr_fndecl_5361 compute_blocknr fndecl 0-2 5361 NULL nohasharray
151037 +enable_so_read_user_buf_avail_tomoyo_io_buffer_5361 read_user_buf_avail tomoyo_io_buffer 0 5361 &enable_so_compute_blocknr_fndecl_5361
151038 +enable_so_ceph_setxattr_fndecl_5362 ceph_setxattr fndecl 4 5362 NULL
151039 +enable_so_michael_mic_fndecl_5363 michael_mic fndecl 5 5363 NULL
151040 +enable_so_nfs4_proc_readdir_fndecl_5367 nfs4_proc_readdir fndecl 5 5367 NULL
151041 +enable_so_xfs_buf_read_uncached_fndecl_5369 xfs_buf_read_uncached fndecl 2-3 5369 NULL
151042 +enable_so_mangle_packet_fndecl_5371 mangle_packet fndecl 2-7-9 5371 NULL
151043 +enable_so_hfsplus_free_extents_fndecl_5372 hfsplus_free_extents fndecl 4 5372 NULL nohasharray
151044 +enable_so_ieee80211_rx_mgmt_disassoc_fndecl_5372 ieee80211_rx_mgmt_disassoc fndecl 3 5372 &enable_so_hfsplus_free_extents_fndecl_5372
151045 +enable_so_mwifiex_write_data_to_card_fndecl_5375 mwifiex_write_data_to_card fndecl 3 5375 NULL
151046 +enable_so_max_header_size_irlan_client_cb_5378 max_header_size irlan_client_cb 0 5378 NULL nohasharray
151047 +enable_so_block_size_squashfs_sb_info_5378 block_size squashfs_sb_info 0 5378 &enable_so_max_header_size_irlan_client_cb_5378
151048 +enable_so_skbprio_ip_set_ext_5381 skbprio ip_set_ext 0 5381 NULL nohasharray
151049 +enable_so_flash_dev_cache_miss_fndecl_5381 flash_dev_cache_miss fndecl 4 5381 &enable_so_skbprio_ip_set_ext_5381
151050 +enable_so_regset_tls_set_fndecl_5384 regset_tls_set fndecl 4 5384 NULL
151051 +enable_so_fuse_perform_write_fndecl_5386 fuse_perform_write fndecl 4-0 5386 NULL
151052 +enable_so_check_iommu_size_fndecl_5390 check_iommu_size fndecl 0-2-1 5390 NULL
151053 +enable_so_pcibios_window_alignment_fndecl_5391 pcibios_window_alignment fndecl 0 5391 NULL
151054 +enable_so_error_thin_bio_list_fndecl_5394 error_thin_bio_list fndecl 3 5394 NULL nohasharray
151055 +enable_so_iscsi_create_flashnode_sess_fndecl_5394 iscsi_create_flashnode_sess fndecl 4 5394 &enable_so_error_thin_bio_list_fndecl_5394
151056 +enable_so_snd_hda_get_connections_fndecl_5398 snd_hda_get_connections fndecl 0 5398 NULL
151057 +enable_so_len_iw_mgmt_info_element_5411 len iw_mgmt_info_element 0 5411 NULL
151058 +enable_so_udpv6_setsockopt_fndecl_5412 udpv6_setsockopt fndecl 5 5412 NULL
151059 +enable_so_session_key_encryption_key_bytes_ecryptfs_password_5413 session_key_encryption_key_bytes ecryptfs_password 0 5413 NULL
151060 +enable_so_value_xen_pci_op_5416 value xen_pci_op 0 5416 NULL
151061 +enable_so_allocmin_nilfs_sufile_info_5418 allocmin nilfs_sufile_info 0 5418 NULL
151062 +enable_so_reg_size_intel_iommu_5423 reg_size intel_iommu 0 5423 NULL nohasharray
151063 +enable_so_nilfs_sufile_truncate_range_fndecl_5423 nilfs_sufile_truncate_range fndecl 3-2 5423 &enable_so_reg_size_intel_iommu_5423 nohasharray
151064 +enable_so_ino_ncp_entry_info_5423 ino ncp_entry_info 0 5423 &enable_so_nilfs_sufile_truncate_range_fndecl_5423
151065 +enable_so_port_mad_size_fndecl_5434 port_mad_size fndecl 0 5434 NULL
151066 +enable_so_sigmadsp_read_i2c_fndecl_5435 sigmadsp_read_i2c fndecl 4 5435 NULL
151067 +enable_so_size_drm_radeon_gem_create_5440 size drm_radeon_gem_create 0 5440 NULL
151068 +enable_so_vlen_nfsd_writeargs_5461 vlen nfsd_writeargs 0 5461 NULL
151069 +enable_so_btrfs_fiemap_fndecl_5462 btrfs_fiemap fndecl 4-3 5462 NULL
151070 +enable_so_num_stations_il_priv_5465 num_stations il_priv 0 5465 NULL
151071 +enable_so_acpi_register_gsi_ioapic_fndecl_5477 acpi_register_gsi_ioapic fndecl 2 5477 NULL
151072 +enable_so_max_pkeys_mthca_dev_lim_5481 max_pkeys mthca_dev_lim 0 5481 NULL
151073 +enable_so_efs_find_entry_fndecl_5485 efs_find_entry fndecl 0 5485 NULL
151074 +enable_so_valuelen_xfs_attr_sf_entry_5490 valuelen xfs_attr_sf_entry 0 5490 NULL
151075 +enable_so_block_isofs_fid_5500 block isofs_fid 0 5500 NULL nohasharray
151076 +enable_so_seq_copy_in_user_fndecl_5500 seq_copy_in_user fndecl 3 5500 &enable_so_block_isofs_fid_5500
151077 +enable_so_s_fpb_ufs_sb_private_info_5504 s_fpb ufs_sb_private_info 0 5504 NULL
151078 +enable_so_f_width_camif_frame_5509 f_width camif_frame 0 5509 NULL
151079 +enable_so___tipc_sendmsg_fndecl_5510 __tipc_sendmsg fndecl 3 5510 NULL nohasharray
151080 +enable_so_pn_socket_create_fndecl_5510 pn_socket_create fndecl 3 5510 &enable_so___tipc_sendmsg_fndecl_5510
151081 +enable_so_vmw_execbuf_submit_cmdbuf_fndecl_5516 vmw_execbuf_submit_cmdbuf fndecl 3 5516 NULL
151082 +enable_so_nsrcs_igmpv3_query_5520 nsrcs igmpv3_query 0 5520 NULL
151083 +enable_so_wiidebug_eeprom_read_fndecl_5523 wiidebug_eeprom_read fndecl 3 5523 NULL
151084 +enable_so_smk_write_rules_list_fndecl_5526 smk_write_rules_list fndecl 3 5526 NULL
151085 +enable_so_line_slgt_info_5527 line slgt_info 0 5527 NULL
151086 +enable_so_ceph_tcp_sendpage_fndecl_5531 ceph_tcp_sendpage fndecl 0-4 5531 NULL
151087 +enable_so_debug_output_fndecl_5532 debug_output fndecl 3 5532 NULL nohasharray
151088 +enable_so_tool_dbfn_read_fndecl_5532 tool_dbfn_read fndecl 3 5532 &enable_so_debug_output_fndecl_5532
151089 +enable_so_sq_cnt_queue_set_5538 sq_cnt queue_set 0 5538 NULL nohasharray
151090 +enable_so_batadv_arp_get_type_fndecl_5538 batadv_arp_get_type fndecl 3 5538 &enable_so_sq_cnt_queue_set_5538
151091 +enable_so_vector_acpi_hest_notify_5540 vector acpi_hest_notify 0 5540 NULL
151092 +enable_so_xfs_dqcheck_fndecl_5545 xfs_dqcheck fndecl 3 5545 NULL
151093 +enable_so_logical_ext4_allocation_request_5548 logical ext4_allocation_request 0 5548 NULL nohasharray
151094 +enable_so_mlx5_create_flow_table_fndecl_5548 mlx5_create_flow_table fndecl 4 5548 &enable_so_logical_ext4_allocation_request_5548
151095 +enable_so___netdev_alloc_skb_fndecl_5552 __netdev_alloc_skb fndecl 2 5552 NULL
151096 +enable_so_hpfs_search_hotfix_map_fndecl_5559 hpfs_search_hotfix_map fndecl 0-2 5559 NULL
151097 +enable_so_filemap_fdatawait_range_fndecl_5563 filemap_fdatawait_range fndecl 0 5563 NULL nohasharray
151098 +enable_so_slabinfo_write_fndecl_5563 slabinfo_write fndecl 3 5563 &enable_so_filemap_fdatawait_range_fndecl_5563
151099 +enable_so_nfs41_maxread_overhead_vardecl_5564 nfs41_maxread_overhead vardecl 0 5564 NULL
151100 +enable_so_iowarrior_write_fndecl_5567 iowarrior_write fndecl 3 5567 NULL
151101 +enable_so_ihl_xfrm_mode_skb_cb_5571 ihl xfrm_mode_skb_cb 0 5571 NULL nohasharray
151102 +enable_so_session_udf_options_5571 session udf_options 0 5571 &enable_so_ihl_xfrm_mode_skb_cb_5571
151103 +enable_so___dev_set_mtu_fndecl_5572 __dev_set_mtu fndecl 2 5572 NULL
151104 +enable_so_nblocks_range2trim_5574 nblocks range2trim 0 5574 NULL
151105 +enable_so_target_check_max_data_sg_nents_fndecl_5575 target_check_max_data_sg_nents fndecl 3 5575 NULL
151106 +enable_so_i2c_read_eeprom_fndecl_5583 i2c_read_eeprom fndecl 5 5583 NULL
151107 +enable_so_nfqnl_get_sk_secctx_fndecl_5586 nfqnl_get_sk_secctx fndecl 0 5586 NULL nohasharray
151108 +enable_so_from_buffer_fndecl_5586 from_buffer fndecl 3 5586 &enable_so_nfqnl_get_sk_secctx_fndecl_5586
151109 +enable_so_horus3a_i2c_debug_fndecl_5589 horus3a_i2c_debug fndecl 5 5589 NULL
151110 +enable_so_fdt_path_offset_fndecl_5591 fdt_path_offset fndecl 0 5591 NULL
151111 +enable_so_ext4_xattr_security_set_fndecl_5594 ext4_xattr_security_set fndecl 4 5594 NULL nohasharray
151112 +enable_so_bg_itable_unused_lo_ext4_group_desc_5594 bg_itable_unused_lo ext4_group_desc 0 5594 &enable_so_ext4_xattr_security_set_fndecl_5594
151113 +enable_so_num_scanouts_virtio_gpu_device_5598 num_scanouts virtio_gpu_device 0 5598 NULL
151114 +enable_so_memory_map_bottom_up_fndecl_5599 memory_map_bottom_up fndecl 1-2 5599 NULL nohasharray
151115 +enable_so_size_sched_attr_5599 size sched_attr 0 5599 &enable_so_memory_map_bottom_up_fndecl_5599
151116 +enable_so_nftl_write_fndecl_5605 nftl_write fndecl 2 5605 NULL
151117 +enable_so_pbl_base_rdma_info_5607 pbl_base rdma_info 0 5607 NULL
151118 +enable_so_snd_pcm_oss_write3_fndecl_5618 snd_pcm_oss_write3 fndecl 0 5618 NULL
151119 +enable_so_odata_dma_usb_xpad_5619 odata_dma usb_xpad 0 5619 NULL
151120 +enable_so_shmem_fallocate_fndecl_5621 shmem_fallocate fndecl 3-4 5621 NULL
151121 +enable_so_xfs_iext_insert_fndecl_5624 xfs_iext_insert fndecl 3 5624 NULL
151122 +enable_so_c_irotor_ufs_cg_private_info_5628 c_irotor ufs_cg_private_info 0 5628 NULL nohasharray
151123 +enable_so_gtt_end_radeon_mc_5628 gtt_end radeon_mc 0 5628 &enable_so_c_irotor_ufs_cg_private_info_5628
151124 +enable_so_max_sectors_ide_port_info_5629 max_sectors ide_port_info 0 5629 NULL
151125 +enable_so_id_iio_dev_5631 id iio_dev 0 5631 NULL
151126 +enable_so_wbcir_tx_fndecl_5632 wbcir_tx fndecl 3 5632 NULL
151127 +enable_so_screen_width_vardecl_hyperv_fb_c_5635 screen_width vardecl_hyperv_fb.c 0 5635 NULL nohasharray
151128 +enable_so_platform_mmio_alloc_vardecl_platform_pci_c_5635 platform_mmio_alloc vardecl_platform-pci.c 0 5635 &enable_so_screen_width_vardecl_hyperv_fb_c_5635 nohasharray
151129 +enable_so_dev_counters_read_fndecl_5635 dev_counters_read fndecl 3 5635 &enable_so_platform_mmio_alloc_vardecl_platform_pci_c_5635
151130 +enable_so_num_counters_compat_ip6t_replace_5636 num_counters compat_ip6t_replace 0 5636 NULL
151131 +enable_so_udpv6_recvmsg_fndecl_5638 udpv6_recvmsg fndecl 3 5638 NULL
151132 +enable_so_ring_buffer_size_vardecl_ldusb_c_5645 ring_buffer_size vardecl_ldusb.c 0 5645 NULL
151133 +enable_so_efi_memdesc_size_efi_info_5654 efi_memdesc_size efi_info 0 5654 NULL nohasharray
151134 +enable_so_tx_ring_size_altera_tse_private_5654 tx_ring_size altera_tse_private 0 5654 &enable_so_efi_memdesc_size_efi_info_5654 nohasharray
151135 +enable_so_iwl_dbgfs_reply_tx_error_read_fndecl_5654 iwl_dbgfs_reply_tx_error_read fndecl 3 5654 &enable_so_tx_ring_size_altera_tse_private_5654
151136 +enable_so___spi_map_msg_fndecl_5657 __spi_map_msg fndecl 0 5657 NULL nohasharray
151137 +enable_so_dev_id_pci_id_descr_5657 dev_id pci_id_descr 0 5657 &enable_so___spi_map_msg_fndecl_5657
151138 +enable_so_vmw_kms_stdu_dma_fndecl_5659 vmw_kms_stdu_dma fndecl 7 5659 NULL
151139 +enable_so_isert_put_login_tx_fndecl_5660 isert_put_login_tx fndecl 3 5660 NULL
151140 +enable_so_block_mask_htc_target_5671 block_mask htc_target 0 5671 NULL
151141 +enable_so_sgl_read_to_frags_fndecl_5672 sgl_read_to_frags fndecl 3-2 5672 NULL
151142 +enable_so_mtu_ppp_channel_5679 mtu ppp_channel 0 5679 NULL nohasharray
151143 +enable_so_blklen_regcache_rbtree_node_5679 blklen regcache_rbtree_node 0 5679 &enable_so_mtu_ppp_channel_5679 nohasharray
151144 +enable_so_ucma_query_fndecl_5679 ucma_query fndecl 4 5679 &enable_so_blklen_regcache_rbtree_node_5679
151145 +enable_so_ext4_es_alloc_extent_fndecl_5681 ext4_es_alloc_extent fndecl 2-3 5681 NULL
151146 +enable_so_bio_alloc_mddev_fndecl_5685 bio_alloc_mddev fndecl 2 5685 NULL
151147 +enable_so_mmc_hs200_to_hs400_fndecl_5686 mmc_hs200_to_hs400 fndecl 0 5686 NULL
151148 +enable_so_lbtf_cmd_async_fndecl_5691 lbtf_cmd_async fndecl 4 5691 NULL
151149 +enable_so_totsize_xfs_attr_sf_hdr_5692 totsize xfs_attr_sf_hdr 0 5692 NULL
151150 +enable_so_s_blocks_count_ext2_super_block_5695 s_blocks_count ext2_super_block 0 5695 NULL
151151 +enable_so_il_dbgfs_rxon_filter_flags_read_fndecl_5698 il_dbgfs_rxon_filter_flags_read fndecl 3 5698 NULL
151152 +enable_so_write_bytes_to_xdr_buf_fndecl_5702 write_bytes_to_xdr_buf fndecl 4-2 5702 NULL
151153 +enable_so_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707 cfg80211_rx_unprot_mlme_mgmt fndecl 3 5707 NULL nohasharray
151154 +enable_so_batadv_tt_save_orig_buffer_fndecl_5707 batadv_tt_save_orig_buffer fndecl 4 5707 &enable_so_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707
151155 +enable_so_virtnet_change_mtu_fndecl_5709 virtnet_change_mtu fndecl 2 5709 NULL
151156 +enable_so_zm_wmfw_adsp1_alg_hdr_5710 zm wmfw_adsp1_alg_hdr 0 5710 NULL
151157 +enable_so_raw_send_hdrinc_fndecl_5711 raw_send_hdrinc fndecl 4 5711 NULL
151158 +enable_so_sys_fcntl_fndecl_5712 sys_fcntl fndecl 3 5712 NULL
151159 +enable_so_in_attr_len_ore_io_state_5713 in_attr_len ore_io_state 0 5713 NULL
151160 +enable_so_vt_hdr_vxfs_typed_5715 vt_hdr vxfs_typed 0 5715 NULL
151161 +enable_so_hfsplus_get_block_fndecl_5725 hfsplus_get_block fndecl 2 5725 NULL
151162 +enable_so_debug_read_fndecl_5737 debug_read fndecl 3 5737 NULL
151163 +enable_so_max_order_mlx4_buddy_5738 max_order mlx4_buddy 0 5738 NULL
151164 +enable_so_scrbuf_sisusb_usb_data_5749 scrbuf sisusb_usb_data 0 5749 NULL
151165 +enable_so_event_tx_stuck_read_fndecl_5754 event_tx_stuck_read fndecl 3 5754 NULL
151166 +enable_so_skb_checksum_maybe_trim_fndecl_5755 skb_checksum_maybe_trim fndecl 2 5755 NULL
151167 +enable_so_nci_prop_cmd_fndecl_5756 nci_prop_cmd fndecl 3 5756 NULL
151168 +enable_so_s_journal_inum_ext4_super_block_5759 s_journal_inum ext4_super_block 0 5759 NULL
151169 +enable_so_setup_extent_mapping_fndecl_5768 setup_extent_mapping fndecl 3-2-4 5768 NULL
151170 +enable_so_xfs_map_at_offset_fndecl_5785 xfs_map_at_offset fndecl 4 5785 NULL
151171 +enable_so_console_size_ramoops_platform_data_5786 console_size ramoops_platform_data 0 5786 NULL
151172 +enable_so_mc_handle_file_pte_fndecl_5787 mc_handle_file_pte fndecl 2 5787 NULL
151173 +enable_so_bq32k_read_fndecl_5789 bq32k_read fndecl 4 5789 NULL
151174 +enable_so_pci_mem_start_vardecl_5790 pci_mem_start vardecl 0 5790 NULL
151175 +enable_so_p9_check_zc_errors_fndecl_5806 p9_check_zc_errors fndecl 4 5806 NULL
151176 +enable_so_usb_ftdi_elan_edset_output_fndecl_5808 usb_ftdi_elan_edset_output fndecl 0 5808 NULL
151177 +enable_so_ubifs_recover_size_accum_fndecl_5809 ubifs_recover_size_accum fndecl 4 5809 NULL nohasharray
151178 +enable_so_NumPhys__CONFIG_PAGE_SAS_EXPANDER_0_5809 NumPhys _CONFIG_PAGE_SAS_EXPANDER_0 0 5809 &enable_so_ubifs_recover_size_accum_fndecl_5809
151179 +enable_so_length_uwb_ie_hdr_5811 length uwb_ie_hdr 0 5811 NULL nohasharray
151180 +enable_so_firmware_data_write_fndecl_5811 firmware_data_write fndecl 6-5 5811 &enable_so_length_uwb_ie_hdr_5811 nohasharray
151181 +enable_so_prefetch_len_ath10k_htt_5811 prefetch_len ath10k_htt 0 5811 &enable_so_firmware_data_write_fndecl_5811
151182 +enable_so_ncp_read_bounce_fndecl_5812 ncp_read_bounce fndecl 8 5812 NULL
151183 +enable_so_fc_dl_fcp_cmnd_5817 fc_dl fcp_cmnd 0 5817 NULL
151184 +enable_so_compr_flush_fndecl_5826 compr_flush fndecl 2 5826 NULL
151185 +enable_so_hid_hw_raw_request_fndecl_5827 hid_hw_raw_request fndecl 0 5827 NULL
151186 +enable_so_zlib_decompress_biovec_fndecl_5829 zlib_decompress_biovec fndecl 6 5829 NULL
151187 +enable_so_dvbdmx_write_fndecl_5836 dvbdmx_write fndecl 3 5836 NULL
151188 +enable_so_start_uffdio_range_5837 start uffdio_range 0 5837 NULL nohasharray
151189 +enable_so_synproxy_options_size_fndecl_5837 synproxy_options_size fndecl 0 5837 &enable_so_start_uffdio_range_5837
151190 +enable_so_interpret_user_input_fndecl_5842 interpret_user_input fndecl 2 5842 NULL
151191 +enable_so_transferred_vardecl_shuttle_usbat_c_5845 transferred vardecl_shuttle_usbat.c 0 5845 NULL
151192 +enable_so_sync_fill_pt_info_fndecl_5846 sync_fill_pt_info fndecl 0 5846 NULL
151193 +enable_so_v9fs_xattr_security_set_fndecl_5847 v9fs_xattr_security_set fndecl 4 5847 NULL
151194 +enable_so_get_n_events_by_type_fndecl_5850 get_n_events_by_type fndecl 0 5850 NULL
151195 +enable_so_sound_insert_unit_fndecl_5861 sound_insert_unit fndecl 3-4 5861 NULL
151196 +enable_so_SyS_sched_getaffinity_fndecl_5863 SyS_sched_getaffinity fndecl 2 5863 NULL
151197 +enable_so_len_hv_mpb_array_5864 len hv_mpb_array 0 5864 NULL
151198 +enable_so_um_size_bcm5974_config_5867 um_size bcm5974_config 0 5867 NULL
151199 +enable_so_e1000_receive_skb_fndecl_5875 e1000_receive_skb fndecl 5 5875 NULL
151200 +enable_so_sq_db_page_mthca_create_qp_5878 sq_db_page mthca_create_qp 0 5878 NULL nohasharray
151201 +enable_so_get_rx_status_altera_dmaops_5878 get_rx_status altera_dmaops 0 5878 &enable_so_sq_db_page_mthca_create_qp_5878 nohasharray
151202 +enable_so_rb_page_offset_nicvf_5878 rb_page_offset nicvf 0 5878 &enable_so_get_rx_status_altera_dmaops_5878
151203 +enable_so_read_len_t3_swsq_5880 read_len t3_swsq 0 5880 NULL
151204 +enable_so_xfs_qm_vop_dqalloc_fndecl_5887 xfs_qm_vop_dqalloc fndecl 2-3-4 5887 NULL nohasharray
151205 +enable_so_cydata_ofsh_cyttsp4_sysinfo_data_5887 cydata_ofsh cyttsp4_sysinfo_data 0 5887 &enable_so_xfs_qm_vop_dqalloc_fndecl_5887
151206 +enable_so_max_sg_count_hpt_iop_request_get_config_5890 max_sg_count hpt_iop_request_get_config 0 5890 NULL
151207 +enable_so_force_max_req_size_vardecl_vub300_c_5891 force_max_req_size vardecl_vub300.c 0 5891 NULL
151208 +enable_so_dma_common_pages_remap_fndecl_5893 dma_common_pages_remap fndecl 2 5893 NULL
151209 +enable_so_size_squashfs_dir_entry_5896 size squashfs_dir_entry 0 5896 NULL
151210 +enable_so___nla_reserve_fndecl_5901 __nla_reserve fndecl 3 5901 NULL
151211 +enable_so_alloc_rx_slot_fndecl_5908 alloc_rx_slot fndecl 0 5908 NULL
151212 +enable_so_bytes_drm_i915_error_state_buf_5909 bytes drm_i915_error_state_buf 0 5909 NULL
151213 +enable_so_sctp_tsnmap_num_gabs_fndecl_5915 sctp_tsnmap_num_gabs fndecl 0 5915 NULL
151214 +enable_so_grec_nsrcs_igmpv3_grec_5916 grec_nsrcs igmpv3_grec 0 5916 NULL
151215 +enable_so_buffer_len_async_pdu_handle_5928 buffer_len async_pdu_handle 0 5928 NULL
151216 +enable_so_resp_caching_pg_fndecl_5930 resp_caching_pg fndecl 0 5930 NULL
151217 +enable_so_ocfs2_reflink_xattr_buckets_fndecl_5931 ocfs2_reflink_xattr_buckets fndecl 7 5931 NULL
151218 +enable_so_layout_in_gaps_fndecl_5933 layout_in_gaps fndecl 2 5933 NULL
151219 +enable_so_intel_gtt_unmap_memory_fndecl_5935 intel_gtt_unmap_memory fndecl 2 5935 NULL
151220 +enable_so_max_attributes_pmbus_data_5939 max_attributes pmbus_data 0 5939 NULL
151221 +enable_so_ide_config_drive_speed_fndecl_5940 ide_config_drive_speed fndecl 2 5940 NULL
151222 +enable_so_gfn_to_pfn_atomic_fndecl_5942 gfn_to_pfn_atomic fndecl 2 5942 NULL
151223 +enable_so_buffer_blocks_osst_buffer_5944 buffer_blocks osst_buffer 0 5944 NULL
151224 +enable_so_max_header_size_irda_sock_5950 max_header_size irda_sock 0 5950 NULL
151225 +enable_so_height_tm6000_fh_5952 height tm6000_fh 0 5952 NULL
151226 +enable_so_count_w6692B_hw_5953 count w6692B_hw 0 5953 NULL
151227 +enable_so_len_ias_value_5959 len ias_value 0 5959 NULL
151228 +enable_so_tx_hdrlen_brcmf_sdio_5961 tx_hdrlen brcmf_sdio 0 5961 NULL
151229 +enable_so_write_alias_journal_fndecl_5962 write_alias_journal fndecl 2 5962 NULL
151230 +enable_so_viafb_second_size_vardecl_viafbdev_c_5965 viafb_second_size vardecl_viafbdev.c 0 5965 NULL
151231 +enable_so_allocmax_nilfs_sufile_info_5969 allocmax nilfs_sufile_info 0 5969 NULL
151232 +enable_so_f2fs_setxattr_fndecl_5975 f2fs_setxattr fndecl 5 5975 NULL
151233 +enable_so_do_rc_ack_fndecl_5983 do_rc_ack fndecl 3 5983 NULL nohasharray
151234 +enable_so_nfsd4_encode_dirent_fndecl_5983 nfsd4_encode_dirent fndecl 3 5983 &enable_so_do_rc_ack_fndecl_5983
151235 +enable_so_create_gpadl_header_fndecl_5995 create_gpadl_header fndecl 2 5995 NULL
151236 +enable_so_acpi_install_table_fndecl_6000 acpi_install_table fndecl 1 6000 NULL nohasharray
151237 +enable_so_revalidate_fndecl_6000 revalidate fndecl 2 6000 &enable_so_acpi_install_table_fndecl_6000 nohasharray
151238 +enable_so_snd_hdac_read_parm_uncached_fndecl_6000 snd_hdac_read_parm_uncached fndecl 0 6000 &enable_so_revalidate_fndecl_6000
151239 +enable_so_clk_recalc_fndecl_6001 clk_recalc fndecl 0-2 6001 NULL
151240 +enable_so_drm_fb_helper_init_fndecl_6007 drm_fb_helper_init fndecl 3-4 6007 NULL nohasharray
151241 +enable_so_map_words_netvsc_device_6007 map_words netvsc_device 0 6007 &enable_so_drm_fb_helper_init_fndecl_6007
151242 +enable_so_afs_vnode_store_data_fndecl_6011 afs_vnode_store_data fndecl 4-5 6011 NULL
151243 +enable_so_mmc_send_status_fndecl_6013 mmc_send_status fndecl 0 6013 NULL nohasharray
151244 +enable_so_orig_sg_segs_osst_buffer_6013 orig_sg_segs osst_buffer 0 6013 &enable_so_mmc_send_status_fndecl_6013
151245 +enable_so_sys_process_vm_readv_fndecl_6017 sys_process_vm_readv fndecl 3-5 6017 NULL nohasharray
151246 +enable_so_brcmf_usbdev_qinit_fndecl_6017 brcmf_usbdev_qinit fndecl 2 6017 &enable_so_sys_process_vm_readv_fndecl_6017
151247 +enable_so_max_discard_sectors_queue_limits_6023 max_discard_sectors queue_limits 0 6023 NULL
151248 +enable_so_wqe_cnt_mlx5_ib_wq_6024 wqe_cnt mlx5_ib_wq 0 6024 NULL nohasharray
151249 +enable_so_bfad_iocmd_porglog_get_fndecl_6024 bfad_iocmd_porglog_get fndecl 0 6024 &enable_so_wqe_cnt_mlx5_ib_wq_6024
151250 +enable_so_icv_trunc_len_ah_data_6025 icv_trunc_len ah_data 0 6025 NULL nohasharray
151251 +enable_so_flags_rtl8180_rx_desc_6025 flags rtl8180_rx_desc 0 6025 &enable_so_icv_trunc_len_ah_data_6025
151252 +enable_so_xlog_bwrite_fndecl_6028 xlog_bwrite fndecl 2 6028 NULL
151253 +enable_so_msix_map_region_fndecl_6035 msix_map_region fndecl 2 6035 NULL
151254 +enable_so_ceph_create_snap_context_fndecl_6041 ceph_create_snap_context fndecl 1 6041 NULL
151255 +enable_so_cmipci_sb_reg_decode_fndecl_6048 cmipci_sb_reg_decode fndecl 2 6048 NULL
151256 +enable_so_n_ssids_cfg80211_scan_request_6049 n_ssids cfg80211_scan_request 0 6049 NULL
151257 +enable_so_scif_rb_space_fndecl_6052 scif_rb_space fndecl 0 6052 NULL
151258 +enable_so_dmi_len_vardecl_dmi_scan_c_6054 dmi_len vardecl_dmi_scan.c 0 6054 NULL nohasharray
151259 +enable_so_ext4_inode_table_fndecl_6054 ext4_inode_table fndecl 0 6054 &enable_so_dmi_len_vardecl_dmi_scan_c_6054
151260 +enable_so_map_base_tpm_inf_dev_6056 map_base tpm_inf_dev 0 6056 NULL
151261 +enable_so_spu_base_info_size_ipath_user_info_6059 spu_base_info_size ipath_user_info 0 6059 NULL
151262 +enable_so_scsi_debug_dev_size_mb_vardecl_scsi_debug_c_6060 scsi_debug_dev_size_mb vardecl_scsi_debug.c 0 6060 NULL
151263 +enable_so_sta_last_seq_ctrl_read_fndecl_6065 sta_last_seq_ctrl_read fndecl 3 6065 NULL
151264 +enable_so_count_vardecl_speedtest_c_6069 count vardecl_speedtest.c 0 6069 NULL
151265 +enable_so_cifs_readv_from_socket_fndecl_6070 cifs_readv_from_socket fndecl 0-4-3 6070 NULL
151266 +enable_so_length_hci_ev_le_advertising_info_6074 length hci_ev_le_advertising_info 0 6074 NULL
151267 +enable_so_elog_len_extlog_l1_head_6075 elog_len extlog_l1_head 0 6075 NULL
151268 +enable_so_sector_size_s3fwrn5_fw_info_6081 sector_size s3fwrn5_fw_info 0 6081 NULL nohasharray
151269 +enable_so_ioctx_alloc_fndecl_6081 ioctx_alloc fndecl 1 6081 &enable_so_sector_size_s3fwrn5_fw_info_6081
151270 +enable_so_nd_blk_do_bvec_fndecl_6085 nd_blk_do_bvec fndecl 0 6085 NULL
151271 +enable_so_remote_miu_nfc_llcp_sock_6088 remote_miu nfc_llcp_sock 0 6088 NULL nohasharray
151272 +enable_so_pcifront_scan_root_fndecl_6088 pcifront_scan_root fndecl 3 6088 &enable_so_remote_miu_nfc_llcp_sock_6088
151273 +enable_so_channel_num_ad9523_channel_spec_6095 channel_num ad9523_channel_spec 0 6095 NULL
151274 +enable_so___gfs2_xattr_set_fndecl_6098 __gfs2_xattr_set fndecl 4 6098 NULL
151275 +enable_so_sdmmc_execute_tuning_fndecl_6102 sdmmc_execute_tuning fndecl 2 6102 NULL
151276 +enable_so_alloc_irdadev_fndecl_6103 alloc_irdadev fndecl 1 6103 NULL
151277 +enable_so_rate_min_snd_pcm_hardware_6109 rate_min snd_pcm_hardware 0 6109 NULL nohasharray
151278 +enable_so_blkdev_issue_discard_fndecl_6109 blkdev_issue_discard fndecl 0-3-2 6109 &enable_so_rate_min_snd_pcm_hardware_6109
151279 +enable_so_resid_scsi_data_buffer_6113 resid scsi_data_buffer 0 6113 NULL
151280 +enable_so_ilf_blkno_xfs_inode_log_format_6118 ilf_blkno xfs_inode_log_format 0 6118 NULL nohasharray
151281 +enable_so_read_extent_buffer_to_user_fndecl_6118 read_extent_buffer_to_user fndecl 4-3 6118 &enable_so_ilf_blkno_xfs_inode_log_format_6118
151282 +enable_so_hblank_panel_info_6122 hblank panel_info 0 6122 NULL
151283 +enable_so_pwc_get_fps_Kiara_fndecl_6127 pwc_get_fps_Kiara fndecl 0 6127 NULL
151284 +enable_so_smk_write_access2_fndecl_6129 smk_write_access2 fndecl 3 6129 NULL
151285 +enable_so_buf_count_slgt_desc_6140 buf_count slgt_desc 0 6140 NULL
151286 +enable_so_max_gs_mlx5_ib_wq_6148 max_gs mlx5_ib_wq 0 6148 NULL
151287 +enable_so_pwr_enable_ps_read_fndecl_6149 pwr_enable_ps_read fndecl 3 6149 NULL nohasharray
151288 +enable_so_bytes_per_sector_mspro_devinfo_6149 bytes_per_sector mspro_devinfo 0 6149 &enable_so_pwr_enable_ps_read_fndecl_6149
151289 +enable_so_fts_ieee80211_device_6153 fts ieee80211_device 0 6153 NULL
151290 +enable_so_name_len_f2fs_dir_entry_6154 name_len f2fs_dir_entry 0 6154 NULL
151291 +enable_so_gfn_to_pfn_memslot_fndecl_6158 gfn_to_pfn_memslot fndecl 2 6158 NULL
151292 +enable_so_buf_size_rte_log_le_6160 buf_size rte_log_le 0 6160 NULL nohasharray
151293 +enable_so_udf_read_tagged_fndecl_6160 udf_read_tagged fndecl 2 6160 &enable_so_buf_size_rte_log_le_6160
151294 +enable_so_kernel_write_fndecl_6162 kernel_write fndecl 3-0 6162 NULL
151295 +enable_so_rcl_nrefcalls_referring_call_list_6169 rcl_nrefcalls referring_call_list 0 6169 NULL
151296 +enable_so_dsp_tone_hw_message_fndecl_6173 dsp_tone_hw_message fndecl 3 6173 NULL
151297 +enable_so_m_agirotor_xfs_mount_6177 m_agirotor xfs_mount 0 6177 NULL
151298 +enable_so_fs_descs_count_ffs_data_6179 fs_descs_count ffs_data 0 6179 NULL
151299 +enable_so_sensor_write_regs_fndecl_6181 sensor_write_regs fndecl 0 6181 NULL
151300 +enable_so_arizona_calc_fratio_fndecl_6185 arizona_calc_fratio fndecl 0 6185 NULL
151301 +enable_so_start_mtd_oob_buf64_6198 start mtd_oob_buf64 0 6198 NULL
151302 +enable_so___einj_error_trigger_fndecl_6200 __einj_error_trigger fndecl 1 6200 NULL nohasharray
151303 +enable_so_venus_rename_fndecl_6200 venus_rename fndecl 4-5 6200 &enable_so___einj_error_trigger_fndecl_6200
151304 +enable_so___send_write_same_fndecl_6201 __send_write_same fndecl 0 6201 NULL
151305 +enable_so_height_linux_logo_6207 height linux_logo 0 6207 NULL nohasharray
151306 +enable_so_digi_write_oob_command_fndecl_6207 digi_write_oob_command fndecl 3 6207 &enable_so_height_linux_logo_6207
151307 +enable_so_mmc_spi_readtoken_fndecl_6208 mmc_spi_readtoken fndecl 0 6208 NULL
151308 +enable_so_index_lola_stream_6210 index lola_stream 0 6210 NULL nohasharray
151309 +enable_so_dac_channels_pcm_oxygen_model_6210 dac_channels_pcm oxygen_model 0 6210 &enable_so_index_lola_stream_6210
151310 +enable_so_val_bits_regmap_config_6218 val_bits regmap_config 0 6218 NULL
151311 +enable_so_sc_ssid_len_wl18xx_event_mailbox_6223 sc_ssid_len wl18xx_event_mailbox 0 6223 NULL
151312 +enable_so_exofs_read_lookup_dev_table_fndecl_6230 exofs_read_lookup_dev_table fndecl 3 6230 NULL
151313 +enable_so_bytenr_backref_node_6238 bytenr backref_node 0 6238 NULL
151314 +enable_so_setup_sgl_fndecl_6242 setup_sgl fndecl 4-5 6242 NULL
151315 +enable_so_ag_xfs_fstrm_item_6243 ag xfs_fstrm_item 0 6243 NULL
151316 +enable_so_mode_offset_pktcdvd_device_6248 mode_offset pktcdvd_device 0 6248 NULL
151317 +enable_so_rxq_cnt_tg3_6249 rxq_cnt tg3 0 6249 NULL
151318 +enable_so_ubifs_leb_change_fndecl_6254 ubifs_leb_change fndecl 4 6254 NULL
151319 +enable_so_send_mbox_fndecl_6260 send_mbox fndecl 4 6260 NULL
151320 +enable_so_brcmf_usb_attach_fndecl_6261 brcmf_usb_attach fndecl 2-3 6261 NULL
151321 +enable_so_blkno_xfs_bmalloca_6265 blkno xfs_bmalloca 0 6265 NULL nohasharray
151322 +enable_so_bNumInterfaces_usb_config_descriptor_6265 bNumInterfaces usb_config_descriptor 0 6265 &enable_so_blkno_xfs_bmalloca_6265
151323 +enable_so_xs_setup_xprt_fndecl_6266 xs_setup_xprt fndecl 3-2 6266 NULL
151324 +enable_so_size_drm_vmw_alloc_dmabuf_req_6273 size drm_vmw_alloc_dmabuf_req 0 6273 NULL
151325 +enable_so_vb2_dma_sg_get_userptr_fndecl_6274 vb2_dma_sg_get_userptr fndecl 2-3 6274 NULL
151326 +enable_so_sb_nextnum_nilfs_segment_buffer_6275 sb_nextnum nilfs_segment_buffer 0 6275 NULL
151327 +enable_so_dm_cell_error_fndecl_6277 dm_cell_error fndecl 3 6277 NULL nohasharray
151328 +enable_so_command_setsensorfps_fndecl_6277 command_setsensorfps fndecl 0 6277 &enable_so_dm_cell_error_fndecl_6277
151329 +enable_so_nrealwriters_stress_lock_torture_cxt_6279 nrealwriters_stress lock_torture_cxt 0 6279 NULL
151330 +enable_so_copy_out_args_fndecl_6283 copy_out_args fndecl 3 6283 NULL
151331 +enable_so_regmap_i2c_gather_write_fndecl_6284 regmap_i2c_gather_write fndecl 3-5 6284 NULL nohasharray
151332 +enable_so_data_len_op_arr_write_6284 data_len op_arr_write 0 6284 &enable_so_regmap_i2c_gather_write_fndecl_6284
151333 +enable_so_gnet_stats_copy_app_fndecl_6286 gnet_stats_copy_app fndecl 3 6286 NULL
151334 +enable_so__snd_pcm_lib_alloc_vmalloc_buffer_fndecl_6287 _snd_pcm_lib_alloc_vmalloc_buffer fndecl 2 6287 NULL
151335 +enable_so_hOver_plus_panel_info_6297 hOver_plus panel_info 0 6297 NULL
151336 +enable_so_lpuart_copy_rx_to_tty_fndecl_6298 lpuart_copy_rx_to_tty fndecl 3 6298 NULL
151337 +enable_so__iwl_dbgfs_set_nic_temperature_write_fndecl_6303 _iwl_dbgfs_set_nic_temperature_write fndecl 3 6303 NULL
151338 +enable_so_count_leafs_fndecl_6305 count_leafs fndecl 0 6305 NULL
151339 +enable_so_sn9c2028_command_fndecl_6307 sn9c2028_command fndecl 0 6307 NULL
151340 +enable_so_em28xx_audio_ep_packet_size_fndecl_6311 em28xx_audio_ep_packet_size fndecl 0 6311 NULL
151341 +enable_so_shadow_fetch_fndecl_6315 shadow_fetch fndecl 3 6315 NULL
151342 +enable_so_sectors_r1bio_6323 sectors r1bio 0 6323 NULL
151343 +enable_so_len_ethtool_gstrings_6325 len ethtool_gstrings 0 6325 NULL
151344 +enable_so_totalhigh_sysinfo_6327 totalhigh sysinfo 0 6327 NULL nohasharray
151345 +enable_so_max_ustore_icp_qat_fw_loader_hal_handle_6327 max_ustore icp_qat_fw_loader_hal_handle 0 6327 &enable_so_totalhigh_sysinfo_6327
151346 +enable_so_cipso_v4_gentag_rbm_fndecl_6335 cipso_v4_gentag_rbm fndecl 0 6335 NULL nohasharray
151347 +enable_so_raid5_build_block_fndecl_6335 raid5_build_block fndecl 2 6335 &enable_so_cipso_v4_gentag_rbm_fndecl_6335 nohasharray
151348 +enable_so_asd_get_devctx_size_fndecl_6335 asd_get_devctx_size fndecl 0 6335 &enable_so_raid5_build_block_fndecl_6335
151349 +enable_so_ray_cs_essid_proc_write_fndecl_6336 ray_cs_essid_proc_write fndecl 3 6336 NULL
151350 +enable_so_virtio_cread32_fndecl_6338 virtio_cread32 fndecl 0 6338 NULL
151351 +enable_so_h_max_out_saa7146_standard_6339 h_max_out saa7146_standard 0 6339 NULL
151352 +enable_so_orinoco_set_key_fndecl_6341 orinoco_set_key fndecl 5-7 6341 NULL nohasharray
151353 +enable_so_i40e_align_l2obj_base_fndecl_6341 i40e_align_l2obj_base fndecl 1-0 6341 &enable_so_orinoco_set_key_fndecl_6341
151354 +enable_so_n_o_ps_usb_stream_kernel_6346 n_o_ps usb_stream_kernel 0 6346 NULL
151355 +enable_so_wbuf_ofs_jffs2_sb_info_6347 wbuf_ofs jffs2_sb_info 0 6347 NULL nohasharray
151356 +enable_so_init_per_cpu_fndecl_6347 init_per_cpu fndecl 1 6347 &enable_so_wbuf_ofs_jffs2_sb_info_6347
151357 +enable_so_hsmmc_command_incomplete_fndecl_6348 hsmmc_command_incomplete fndecl 2 6348 NULL
151358 +enable_so_compat_sys_pwritev_fndecl_6349 compat_sys_pwritev fndecl 3 6349 NULL nohasharray
151359 +enable_so_flags_fcoe_fcf_6349 flags fcoe_fcf 0 6349 &enable_so_compat_sys_pwritev_fndecl_6349
151360 +enable_so_data_pad_ubi_vid_hdr_6352 data_pad ubi_vid_hdr 0 6352 NULL nohasharray
151361 +enable_so_chipid_to_nrcores_fndecl_6352 chipid_to_nrcores fndecl 0 6352 &enable_so_data_pad_ubi_vid_hdr_6352
151362 +enable_so_pci_mmconfig_insert_fndecl_6353 pci_mmconfig_insert fndecl 3-4-5 6353 NULL
151363 +enable_so_logfs_iget_fndecl_6356 logfs_iget fndecl 2 6356 NULL
151364 +enable_so_lrf_body_len_nfsd4_layoutreturn_6359 lrf_body_len nfsd4_layoutreturn 0 6359 NULL
151365 +enable_so_len_p54_rx_data_6362 len p54_rx_data 0 6362 NULL
151366 +enable_so_sisusb_send_bulk_msg_fndecl_6363 sisusb_send_bulk_msg fndecl 3-2 6363 NULL
151367 +enable_so_alloc_sja1000dev_fndecl_6367 alloc_sja1000dev fndecl 1 6367 NULL
151368 +enable_so_fdt_parent_offset_fndecl_6368 fdt_parent_offset fndecl 0 6368 NULL
151369 +enable_so_elants_i2c_execute_command_fndecl_6371 elants_i2c_execute_command fndecl 3-5 6371 NULL nohasharray
151370 +enable_so_recover_head_fndecl_6371 recover_head fndecl 3 6371 &enable_so_elants_i2c_execute_command_fndecl_6371
151371 +enable_so_dev_pm_opp_get_opp_count_fndecl_6372 dev_pm_opp_get_opp_count fndecl 0 6372 NULL
151372 +enable_so_command_p_header80_6374 command p_header80 0 6374 NULL
151373 +enable_so_xfs_buf_associate_memory_fndecl_6376 xfs_buf_associate_memory fndecl 3 6376 NULL
151374 +enable_so_cur_inode_size_send_ctx_6380 cur_inode_size send_ctx 0 6380 NULL nohasharray
151375 +enable_so_blkfactor_dio_submit_6380 blkfactor dio_submit 0 6380 &enable_so_cur_inode_size_send_ctx_6380
151376 +enable_so_tail_hid_debug_list_6381 tail hid_debug_list 0 6381 NULL
151377 +enable_so_xfs_rtallocate_extent_near_fndecl_6383 xfs_rtallocate_extent_near fndecl 3-5-9 6383 NULL
151378 +enable_so_snd_info_entry_llseek_fndecl_6384 snd_info_entry_llseek fndecl 2 6384 NULL
151379 +enable_so_partition_sched_domains_fndecl_6386 partition_sched_domains fndecl 1 6386 NULL
151380 +enable_so_length_fusbh200_qtd_6388 length fusbh200_qtd 0 6388 NULL
151381 +enable_so_wps_probe_req_ie_len_mlme_priv_6393 wps_probe_req_ie_len mlme_priv 0 6393 NULL
151382 +enable_so_totalreserve_pages_vardecl_6395 totalreserve_pages vardecl 0 6395 NULL nohasharray
151383 +enable_so_max_agbno_xfs_alloc_arg_6395 max_agbno xfs_alloc_arg 0 6395 &enable_so_totalreserve_pages_vardecl_6395
151384 +enable_so_i_file_acl_ext2_inode_info_6396 i_file_acl ext2_inode_info 0 6396 NULL
151385 +enable_so_lpfc_debugfs_dif_err_write_fndecl_6403 lpfc_debugfs_dif_err_write fndecl 3 6403 NULL
151386 +enable_so_srpt_post_send_fndecl_6405 srpt_post_send fndecl 3 6405 NULL nohasharray
151387 +enable_so_compat_sys_ppoll_fndecl_6405 compat_sys_ppoll fndecl 2 6405 &enable_so_srpt_post_send_fndecl_6405
151388 +enable_so_alloc_blocks_hfs_inode_info_6406 alloc_blocks hfs_inode_info 0 6406 NULL
151389 +enable_so_copy_from_iter_fndecl_6410 copy_from_iter fndecl 2-0 6410 NULL
151390 +enable_so_fwnet_change_mtu_fndecl_6424 fwnet_change_mtu fndecl 2 6424 NULL nohasharray
151391 +enable_so_x509_note_serial_fndecl_6424 x509_note_serial fndecl 5 6424 &enable_so_fwnet_change_mtu_fndecl_6424
151392 +enable_so_de_entrylen_reiserfs_dir_entry_6426 de_entrylen reiserfs_dir_entry 0 6426 NULL
151393 +enable_so_dib9000_write16_attr_fndecl_6428 dib9000_write16_attr fndecl 4 6428 NULL
151394 +enable_so_sys_brk_fndecl_6435 sys_brk fndecl 1 6435 NULL
151395 +enable_so_skd_end_request_fndecl_6438 skd_end_request fndecl 3 6438 NULL
151396 +enable_so_parse_dcb20_entry_fndecl_6440 parse_dcb20_entry fndecl 3 6440 NULL
151397 +enable_so_user_base_qib_mregion_6443 user_base qib_mregion 0 6443 NULL
151398 +enable_so_max_packet_sz_tx_musb_hw_ep_6448 max_packet_sz_tx musb_hw_ep 0 6448 NULL
151399 +enable_so_snd_hammerfall_get_buffer_fndecl_6450 snd_hammerfall_get_buffer fndecl 3 6450 NULL
151400 +enable_so_qib_init_pportdata_fndecl_6452 qib_init_pportdata fndecl 4 6452 NULL
151401 +enable_so_out_epnum_usb_gadget_6453 out_epnum usb_gadget 0 6453 NULL
151402 +enable_so_iov_iter_advance_fndecl_6457 iov_iter_advance fndecl 2 6457 NULL
151403 +enable_so_xtTruncate_fndecl_6468 xtTruncate fndecl 3 6468 NULL
151404 +enable_so_dm_end_request_fndecl_6471 dm_end_request fndecl 2 6471 NULL
151405 +enable_so_add_endpoint_hc_driver_6482 add_endpoint hc_driver 0 6482 NULL
151406 +enable_so_dx_fb_image_6483 dx fb_image 0 6483 NULL
151407 +enable_so_usb_device_lseek_fndecl_6485 usb_device_lseek fndecl 2 6485 NULL
151408 +enable_so_datasize_vub300_mmc_host_6490 datasize vub300_mmc_host 0 6490 NULL nohasharray
151409 +enable_so_beep_amp_ad198x_spec_6490 beep_amp ad198x_spec 0 6490 &enable_so_datasize_vub300_mmc_host_6490 nohasharray
151410 +enable_so_probe_kernel_write_fndecl_6490 probe_kernel_write fndecl 3 6490 &enable_so_beep_amp_ad198x_spec_6490
151411 +enable_so_v9fs_xattr_trusted_set_fndecl_6494 v9fs_xattr_trusted_set fndecl 4 6494 NULL
151412 +enable_so_curr_dma_words_tegra_spi_data_6500 curr_dma_words tegra_spi_data 0 6500 NULL
151413 +enable_so_new_offset_mdp_superblock_1_6501 new_offset mdp_superblock_1 0 6501 NULL
151414 +enable_so_f_read_cntrs_qib_devdata_6502 f_read_cntrs qib_devdata 0 6502 NULL
151415 +enable_so_inc_remap_and_issue_cell_fndecl_6505 inc_remap_and_issue_cell fndecl 3 6505 NULL
151416 +enable_so_hugetlb_file_setup_fndecl_6506 hugetlb_file_setup fndecl 2 6506 NULL
151417 +enable_so_vfs_setpos_fndecl_6511 vfs_setpos fndecl 2 6511 NULL
151418 +enable_so_base_size_aac_dev_6512 base_size aac_dev 0 6512 NULL
151419 +enable_so_l2_fhdr_vlan_tag_l2_fhdr_6516 l2_fhdr_vlan_tag l2_fhdr 0 6516 NULL
151420 +enable_so_lbs_highrssi_write_fndecl_6520 lbs_highrssi_write fndecl 3 6520 NULL
151421 +enable_so___get_data_block_fndecl_6521 __get_data_block fndecl 2 6521 NULL
151422 +enable_so_copy_page_from_iter_fndecl_6523 copy_page_from_iter fndecl 0-3 6523 NULL
151423 +enable_so_sector_start_dm_target_spec_6526 sector_start dm_target_spec 0 6526 NULL
151424 +enable_so_copy_from_user_fndecl_6532 copy_from_user fndecl 0-3 6532 NULL
151425 +enable_so_resp_err_recov_pg_fndecl_6533 resp_err_recov_pg fndecl 0 6533 NULL nohasharray
151426 +enable_so_bytes_cifs_readdata_6533 bytes cifs_readdata 0 6533 &enable_so_resp_err_recov_pg_fndecl_6533
151427 +enable_so_size_ubifs_wbuf_6537 size ubifs_wbuf 0 6537 NULL
151428 +enable_so_tx_ring_size_vmxnet3_adapter_6541 tx_ring_size vmxnet3_adapter 0 6541 NULL
151429 +enable_so_fe_logical_ext4_free_extent_6542 fe_logical ext4_free_extent 0 6542 NULL
151430 +enable_so_max_vfs_vardecl_igb_main_c_6547 max_vfs vardecl_igb_main.c 0 6547 NULL
151431 +enable_so_count_ixgb_desc_ring_6548 count ixgb_desc_ring 0 6548 NULL
151432 +enable_so_v9fs_xattr_trusted_get_fndecl_6549 v9fs_xattr_trusted_get fndecl 4 6549 NULL
151433 +enable_so_xlog_do_log_recovery_fndecl_6557 xlog_do_log_recovery fndecl 3 6557 NULL
151434 +enable_so_active_duplex_tg3_link_config_6559 active_duplex tg3_link_config 0 6559 NULL
151435 +enable_so_verity_verify_io_fndecl_6564 verity_verify_io fndecl 0 6564 NULL
151436 +enable_so_vlan_tpid_ovs_action_push_vlan_6565 vlan_tpid ovs_action_push_vlan 0 6565 NULL
151437 +enable_so_num_x_edt_ft5x06_ts_data_6566 num_x edt_ft5x06_ts_data 0 6566 NULL
151438 +enable_so_sddr09_read21_fndecl_6568 sddr09_read21 fndecl 4-3-6 6568 NULL nohasharray
151439 +enable_so_neigh_hash_alloc_fndecl_6568 neigh_hash_alloc fndecl 1 6568 &enable_so_sddr09_read21_fndecl_6568
151440 +enable_so_acpi_ut_create_package_object_fndecl_6569 acpi_ut_create_package_object fndecl 1 6569 NULL
151441 +enable_so_ath6kl_wmi_connect_cmd_fndecl_6571 ath6kl_wmi_connect_cmd fndecl 2-10 6571 NULL nohasharray
151442 +enable_so_command_setcolourparams_fndecl_6571 command_setcolourparams fndecl 0 6571 &enable_so_ath6kl_wmi_connect_cmd_fndecl_6571
151443 +enable_so_rts51x_write_mem_fndecl_6573 rts51x_write_mem fndecl 4 6573 NULL
151444 +enable_so_log_num_qps_mlx4_init_hca_param_6574 log_num_qps mlx4_init_hca_param 0 6574 NULL
151445 +enable_so_mptctl_do_mpt_command_fndecl_6578 mptctl_do_mpt_command fndecl 0 6578 NULL
151446 +enable_so_gcd_fndecl_6579 gcd fndecl 0-2-1 6579 NULL
151447 +enable_so_argc_tomoyo_condition_6587 argc tomoyo_condition 0 6587 NULL
151448 +enable_so_wil_write_file_rxon_fndecl_6590 wil_write_file_rxon fndecl 3 6590 NULL
151449 +enable_so_capture_frlog_rme96_6593 capture_frlog rme96 0 6593 NULL nohasharray
151450 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_fndecl_6593 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout fndecl 3 6593 &enable_so_capture_frlog_rme96_6593
151451 +enable_so_bfad_iocmd_vport_clr_stats_fndecl_6597 bfad_iocmd_vport_clr_stats fndecl 0 6597 NULL
151452 +enable_so_pci_get_device_fndecl_6606 pci_get_device fndecl 2 6606 NULL
151453 +enable_so_dma_map_page_fndecl_6607 dma_map_page fndecl 0 6607 NULL
151454 +enable_so_irda_sendmsg_ultra_fndecl_6612 irda_sendmsg_ultra fndecl 3 6612 NULL nohasharray
151455 +enable_so_osst_execute_fndecl_6612 osst_execute fndecl 6-3-7 6612 &enable_so_irda_sendmsg_ultra_fndecl_6612
151456 +enable_so_size_synthhid_msg_hdr_6615 size synthhid_msg_hdr 0 6615 NULL nohasharray
151457 +enable_so_num_large_buffers_ql3_adapter_6615 num_large_buffers ql3_adapter 0 6615 &enable_so_size_synthhid_msg_hdr_6615
151458 +enable_so_length_v4l2_mbus_frame_desc_entry_6616 length v4l2_mbus_frame_desc_entry 0 6616 NULL
151459 +enable_so_ocfs2_mark_extent_written_fndecl_6620 ocfs2_mark_extent_written fndecl 6-4 6620 NULL
151460 +enable_so_ath_recv_fndecl_6621 ath_recv fndecl 3 6621 NULL
151461 +enable_so_num_outputs_drm_vmw_update_layout_arg_6623 num_outputs drm_vmw_update_layout_arg 0 6623 NULL
151462 +enable_so_hw_queue_depth_vardecl_null_blk_c_6624 hw_queue_depth vardecl_null_blk.c 0 6624 NULL
151463 +enable_so_cifs_setsize_fndecl_6630 cifs_setsize fndecl 2 6630 NULL nohasharray
151464 +enable_so_copy_for_split_fndecl_6630 copy_for_split fndecl 7-8 6630 &enable_so_cifs_setsize_fndecl_6630
151465 +enable_so_sample_rate_echoaudio_6631 sample_rate echoaudio 0 6631 NULL
151466 +enable_so_integrity_read_file_fndecl_6633 integrity_read_file fndecl 0 6633 NULL nohasharray
151467 +enable_so_buf_size_mlx4_en_rx_ring_6633 buf_size mlx4_en_rx_ring 0 6633 &enable_so_integrity_read_file_fndecl_6633
151468 +enable_so_SYSC_migrate_pages_fndecl_6634 SYSC_migrate_pages fndecl 2 6634 NULL
151469 +enable_so_packet_setsockopt_fndecl_6637 packet_setsockopt fndecl 5 6637 NULL
151470 +enable_so_xmit_count_modem_info_6639 xmit_count modem_info 0 6639 NULL
151471 +enable_so_bpp_xvip_video_format_6640 bpp xvip_video_format 0 6640 NULL
151472 +enable_so_irlan_provider_connect_indication_fndecl_6644 irlan_provider_connect_indication fndecl 5 6644 NULL
151473 +enable_so_local_payload_max_nfc_digital_dev_6651 local_payload_max nfc_digital_dev 0 6651 NULL nohasharray
151474 +enable_so_set_number_fndecl_6651 set_number fndecl 2 6651 &enable_so_local_payload_max_nfc_digital_dev_6651
151475 +enable_so_length_acpi_namestring_info_6654 length acpi_namestring_info 0 6654 NULL
151476 +enable_so_async_error_osd_request_6658 async_error osd_request 0 6658 NULL
151477 +enable_so_persistent_commit_merge_fndecl_6660 persistent_commit_merge fndecl 2 6660 NULL
151478 +enable_so_nilfs_segment_list_add_fndecl_6665 nilfs_segment_list_add fndecl 2 6665 NULL
151479 +enable_so_orinoco_add_extscan_result_fndecl_6668 orinoco_add_extscan_result fndecl 3 6668 NULL nohasharray
151480 +enable_so_io_reserve_memtype_fndecl_6668 io_reserve_memtype fndecl 1-2 6668 &enable_so_orinoco_add_extscan_result_fndecl_6668
151481 +enable_so_img_imem_size_fw_hdr_6675 img_imem_size fw_hdr 0 6675 NULL nohasharray
151482 +enable_so_pccard_store_cis_fndecl_6675 pccard_store_cis fndecl 6 6675 &enable_so_img_imem_size_fw_hdr_6675
151483 +enable_so_compatsize_xt_match_6677 compatsize xt_match 0 6677 NULL
151484 +enable_so_lpfc_debugfs_lseek_fndecl_6679 lpfc_debugfs_lseek fndecl 2 6679 NULL
151485 +enable_so_present_pages_zone_6685 present_pages zone 0 6685 NULL
151486 +enable_so_ac_2order_ext4_allocation_context_6690 ac_2order ext4_allocation_context 0 6690 NULL
151487 +enable_so_param_ssp_completion_resp_6691 param ssp_completion_resp 0 6691 NULL
151488 +enable_so_esize___kfifo_6692 esize __kfifo 0 6692 NULL nohasharray
151489 +enable_so_drop_endpoint_hc_driver_6692 drop_endpoint hc_driver 0 6692 &enable_so_esize___kfifo_6692
151490 +enable_so_max_recvmsg_len_netlink_sock_6699 max_recvmsg_len netlink_sock 0 6699 NULL
151491 +enable_so_nroots_rs_control_6706 nroots rs_control 0 6706 NULL nohasharray
151492 +enable_so_gsm_control_message_fndecl_6706 gsm_control_message fndecl 4 6706 &enable_so_nroots_rs_control_6706
151493 +enable_so_do_ipv6_setsockopt_fndecl_6708 do_ipv6_setsockopt fndecl 5-0 6708 NULL nohasharray
151494 +enable_so_length_p_header80_6708 length p_header80 0 6708 &enable_so_do_ipv6_setsockopt_fndecl_6708
151495 +enable_so_raw_recvmsg_fndecl_6710 raw_recvmsg fndecl 3 6710 NULL
151496 +enable_so_sample_rate_mixart_mgr_6716 sample_rate mixart_mgr 0 6716 NULL
151497 +enable_so_ssb_sdio_block_read_fndecl_6721 ssb_sdio_block_read fndecl 3 6721 NULL
151498 +enable_so_qdisc_class_hash_alloc_fndecl_6725 qdisc_class_hash_alloc fndecl 1 6725 NULL
151499 +enable_so_ieee_il_rate_info_6732 ieee il_rate_info 0 6732 NULL
151500 +enable_so_iova_mlx5_core_mr_6733 iova mlx5_core_mr 0 6733 NULL
151501 +enable_so_pagesize_sddr09_card_info_6735 pagesize sddr09_card_info 0 6735 NULL
151502 +enable_so_gnttab_alloc_grant_references_fndecl_6739 gnttab_alloc_grant_references fndecl 1 6739 NULL
151503 +enable_so__read_and_match_data_map_fndecl_6747 _read_and_match_data_map fndecl 2 6747 NULL
151504 +enable_so_rfcomm_sock_setsockopt_fndecl_6749 rfcomm_sock_setsockopt fndecl 5 6749 NULL
151505 +enable_so_before_xfs_da_node_entry_6750 before xfs_da_node_entry 0 6750 NULL
151506 +enable_so_bfad_iocmd_diag_queuetest_fndecl_6752 bfad_iocmd_diag_queuetest fndecl 0 6752 NULL
151507 +enable_so_openings_ahd_linux_device_6755 openings ahd_linux_device 0 6755 NULL
151508 +enable_so_alloc_size__osd_req_data_segment_6757 alloc_size _osd_req_data_segment 0 6757 NULL
151509 +enable_so_um_idi_write_fndecl_6758 um_idi_write fndecl 3 6758 NULL
151510 +enable_so_tun_opts_len_sw_flow_key_6759 tun_opts_len sw_flow_key 0 6759 NULL
151511 +enable_so_rbd_obj_request_submit_fndecl_6760 rbd_obj_request_submit fndecl 0 6760 NULL
151512 +enable_so_ocfs2_direct_IO_fndecl_6762 ocfs2_direct_IO fndecl 3 6762 NULL
151513 +enable_so_al_stripe_size_resize_parms_6766 al_stripe_size resize_parms 0 6766 NULL
151514 +enable_so_start_mtd_oob_buf_6767 start mtd_oob_buf 0 6767 NULL
151515 +enable_so_rx_pkt_ram_iadev_priv_6768 rx_pkt_ram iadev_priv 0 6768 NULL nohasharray
151516 +enable_so_gfs2_alloc_sort_buffer_fndecl_6768 gfs2_alloc_sort_buffer fndecl 1 6768 &enable_so_rx_pkt_ram_iadev_priv_6768
151517 +enable_so_sg_tablesize_Scsi_Host_6769 sg_tablesize Scsi_Host 0 6769 NULL
151518 +enable_so_alloc_ring_fndecl_6773 alloc_ring fndecl 2-4 6773 NULL
151519 +enable_so_dn_recvmsg_fndecl_6774 dn_recvmsg fndecl 3 6774 NULL
151520 +enable_so_ext4_readpages_fndecl_6776 ext4_readpages fndecl 4 6776 NULL
151521 +enable_so_asn_1_decode_fndecl_6777 asn_1_decode fndecl 0 6777 NULL nohasharray
151522 +enable_so_max_vals_input_dev_6777 max_vals input_dev 0 6777 &enable_so_asn_1_decode_fndecl_6777
151523 +enable_so_bio_phys_segments_fndecl_6778 bio_phys_segments fndecl 0 6778 NULL
151524 +enable_so_mmc_send_bus_test_fndecl_6782 mmc_send_bus_test fndecl 4-3 6782 NULL
151525 +enable_so_ecryptfs_send_message_fndecl_6785 ecryptfs_send_message fndecl 2 6785 NULL
151526 +enable_so_alloc_and_copy_string_fndecl_6786 alloc_and_copy_string fndecl 2 6786 NULL
151527 +enable_so_bio_integrity_advance_fndecl_6791 bio_integrity_advance fndecl 2 6791 NULL
151528 +enable_so_st21nfca_im_send_atr_req_fndecl_6792 st21nfca_im_send_atr_req fndecl 3 6792 NULL
151529 +enable_so_length_nbpf_desc_6795 length nbpf_desc 0 6795 NULL
151530 +enable_so_xfs_da_shrink_inode_fndecl_6796 xfs_da_shrink_inode fndecl 2 6796 NULL
151531 +enable_so_pop_tx_fndecl_6799 pop_tx fndecl 2 6799 NULL
151532 +enable_so_bankwidth_map_info_6800 bankwidth map_info 0 6800 NULL
151533 +enable_so_pfn_mlx4_uar_6801 pfn mlx4_uar 0 6801 NULL
151534 +enable_so_ctrl_dma_acm_6806 ctrl_dma acm 0 6806 NULL
151535 +enable_so_ip6ip6_err_fndecl_6807 ip6ip6_err fndecl 5 6807 NULL
151536 +enable_so_nfc_digital_allocate_device_fndecl_6810 nfc_digital_allocate_device fndecl 4 6810 NULL
151537 +enable_so_csio_mem_read_fndecl_6812 csio_mem_read fndecl 3 6812 NULL
151538 +enable_so_debugfs_write_file_bool_fndecl_6814 debugfs_write_file_bool fndecl 3 6814 NULL
151539 +enable_so_tx_pipe_at76_priv_6815 tx_pipe at76_priv 0 6815 NULL
151540 +enable_so_pwr_power_save_off_read_fndecl_6816 pwr_power_save_off_read fndecl 3 6816 NULL
151541 +enable_so_minor_miscdevice_6818 minor miscdevice 0 6818 NULL
151542 +enable_so_hs_rehash_bits_cfs_hash_6820 hs_rehash_bits cfs_hash 0 6820 NULL
151543 +enable_so_bfs_iget_fndecl_6821 bfs_iget fndecl 2 6821 NULL
151544 +enable_so_xlbd_reserve_minors_fndecl_6830 xlbd_reserve_minors fndecl 2-1 6830 NULL
151545 +enable_so_centre_vertically_fndecl_6833 centre_vertically fndecl 2 6833 NULL
151546 +enable_so_xfs_dialloc_ag_finobt_near_fndecl_6835 xfs_dialloc_ag_finobt_near fndecl 1 6835 NULL
151547 +enable_so_copy_page_to_iter_fndecl_6842 copy_page_to_iter fndecl 0-3 6842 NULL
151548 +enable_so_lcd_proc_write_fndecl_6844 lcd_proc_write fndecl 3 6844 NULL
151549 +enable_so_intel_framebuffer_size_for_mode_fndecl_6849 intel_framebuffer_size_for_mode fndecl 0-2 6849 NULL nohasharray
151550 +enable_so___ceph_getxattr_fndecl_6849 __ceph_getxattr fndecl 0 6849 &enable_so_intel_framebuffer_size_for_mode_fndecl_6849
151551 +enable_so_hpfs_file_fsync_fndecl_6851 hpfs_file_fsync fndecl 2-3 6851 NULL
151552 +enable_so_kclist_add_private_fndecl_6853 kclist_add_private fndecl 1-2 6853 NULL
151553 +enable_so_bg_channels_libipw_geo_6854 bg_channels libipw_geo 0 6854 NULL
151554 +enable_so_ci_role_write_fndecl_6855 ci_role_write fndecl 3 6855 NULL
151555 +enable_so_hdlc_empty_fifo_fndecl_6862 hdlc_empty_fifo fndecl 2 6862 NULL
151556 +enable_so_qib_user_sdma_num_pages_fndecl_6864 qib_user_sdma_num_pages fndecl 0 6864 NULL
151557 +enable_so_buffer_kbs_vardecl_st_c_6866 buffer_kbs vardecl_st.c 0 6866 NULL
151558 +enable_so_size_vb2_fileio_buf_6875 size vb2_fileio_buf 0 6875 NULL nohasharray
151559 +enable_so_offset_amp_assoc_6875 offset amp_assoc 0 6875 &enable_so_size_vb2_fileio_buf_6875
151560 +enable_so_xres_fb_videomode_6878 xres fb_videomode 0 6878 NULL
151561 +enable_so_rxbufferhandle_kaweth_device_6883 rxbufferhandle kaweth_device 0 6883 NULL
151562 +enable_so___kfifo_in_r_fndecl_6892 __kfifo_in_r fndecl 4-3 6892 NULL nohasharray
151563 +enable_so_jffs2_zlib_decompress_fndecl_6892 jffs2_zlib_decompress fndecl 3-4 6892 &enable_so___kfifo_in_r_fndecl_6892
151564 +enable_so_hpfs_bplus_lookup_fndecl_6896 hpfs_bplus_lookup fndecl 0-4 6896 NULL nohasharray
151565 +enable_so_index_mlx5_uar_6896 index mlx5_uar 0 6896 &enable_so_hpfs_bplus_lookup_fndecl_6896
151566 +enable_so_adis16136_show_serial_fndecl_6897 adis16136_show_serial fndecl 3 6897 NULL
151567 +enable_so_link_duplex_e1000_adapter_6902 link_duplex e1000_adapter 0 6902 NULL
151568 +enable_so_jfs_quota_write_fndecl_6903 jfs_quota_write fndecl 5 6903 NULL
151569 +enable_so_write_inflate_state_6907 write inflate_state 0 6907 NULL
151570 +enable_so_table_size_radeon_gart_6911 table_size radeon_gart 0 6911 NULL
151571 +enable_so_pwr_sleep_time_count_read_fndecl_6914 pwr_sleep_time_count_read fndecl 3 6914 NULL
151572 +enable_so_error_dm_io_6915 error dm_io 0 6915 NULL
151573 +enable_so_maxbufsize__isdn_driver_6917 maxbufsize _isdn_driver 0 6917 NULL
151574 +enable_so_drm_gtf_mode_complex_fndecl_6918 drm_gtf_mode_complex fndecl 3-2-4-7-9-10-8 6918 NULL
151575 +enable_so_jfs_nfs_get_inode_fndecl_6925 jfs_nfs_get_inode fndecl 2 6925 NULL
151576 +enable_so_buflen_packet_command_6926 buflen packet_command 0 6926 NULL
151577 +enable_so_multi_src_desc_6933 multi src_desc 0 6933 NULL
151578 +enable_so_nvram_pagesize_tg3_6938 nvram_pagesize tg3 0 6938 NULL
151579 +enable_so_nbytes_ide_cmd_6945 nbytes ide_cmd 0 6945 NULL
151580 +enable_so_enic_rxcopybreak_fndecl_6960 enic_rxcopybreak fndecl 4 6960 NULL
151581 +enable_so_af9013_write_ofsm_regs_fndecl_6965 af9013_write_ofsm_regs fndecl 4 6965 NULL
151582 +enable_so_ufs_free_blocks_fndecl_6968 ufs_free_blocks fndecl 3-2 6968 NULL nohasharray
151583 +enable_so_tlv_put_u64_fndecl_6968 tlv_put_u64 fndecl 0 6968 &enable_so_ufs_free_blocks_fndecl_6968
151584 +enable_so_odm_group_width_pnfs_osd_data_map_6977 odm_group_width pnfs_osd_data_map 0 6977 NULL
151585 +enable_so_mq_msg_max_ipc_namespace_6978 mq_msg_max ipc_namespace 0 6978 NULL
151586 +enable_so_pvr2_v4l2_read_fndecl_6981 pvr2_v4l2_read fndecl 3 6981 NULL
151587 +enable_so_async_set_registers_fndecl_6987 async_set_registers fndecl 3 6987 NULL
151588 +enable_so_mappable_base_i915_gtt_6993 mappable_base i915_gtt 0 6993 NULL
151589 +enable_so_sq_spare_wqes_mlx4_ib_qp_6994 sq_spare_wqes mlx4_ib_qp 0 6994 NULL
151590 +enable_so_smk_write_cipso_fndecl_6998 smk_write_cipso fndecl 3 6998 NULL
151591 +enable_so_gnttab_max_grant_frames_fndecl_7002 gnttab_max_grant_frames fndecl 0 7002 NULL
151592 +enable_so_ft_data_ro_fcp_txrdy_7005 ft_data_ro fcp_txrdy 0 7005 NULL
151593 +enable_so_p_start_nilfs_period_7008 p_start nilfs_period 0 7008 NULL nohasharray
151594 +enable_so___posix_lock_file_fndecl_7008 __posix_lock_file fndecl 0 7008 &enable_so_p_start_nilfs_period_7008
151595 +enable_so_s_groups_count_ext4_sb_info_7012 s_groups_count ext4_sb_info 0 7012 NULL
151596 +enable_so_ocfs2_cache_cluster_dealloc_fndecl_7016 ocfs2_cache_cluster_dealloc fndecl 3-2 7016 NULL
151597 +enable_so_attr_bytes_osdv2_attributes_list_element_7018 attr_bytes osdv2_attributes_list_element 0 7018 NULL
151598 +enable_so_channels_snd_pcm_plugin_format_7026 channels snd_pcm_plugin_format 0 7026 NULL
151599 +enable_so_virtio_gpu_alloc_object_fndecl_7030 virtio_gpu_alloc_object fndecl 2 7030 NULL
151600 +enable_so_h_sync_strt_wid_crtc_7033 h_sync_strt_wid crtc 0 7033 NULL
151601 +enable_so_fat_short2lower_uni_fndecl_7036 fat_short2lower_uni fndecl 0 7036 NULL
151602 +enable_so_mq_msg_default_ipc_namespace_7041 mq_msg_default ipc_namespace 0 7041 NULL nohasharray
151603 +enable_so_fpregs_get_fndecl_7041 fpregs_get fndecl 4 7041 &enable_so_mq_msg_default_ipc_namespace_7041
151604 +enable_so_n_krcv_queues_hfi1_devdata_7042 n_krcv_queues hfi1_devdata 0 7042 NULL
151605 +enable_so_kvm_read_guest_page_fndecl_7049 kvm_read_guest_page fndecl 2-5 7049 NULL
151606 +enable_so_iforce_send_packet_fndecl_7050 iforce_send_packet fndecl 2 7050 NULL
151607 +enable_so_srq_entry_sz_mlx4_dev_cap_7052 srq_entry_sz mlx4_dev_cap 0 7052 NULL
151608 +enable_so_SYSC_pselect6_fndecl_7055 SYSC_pselect6 fndecl 1 7055 NULL
151609 +enable_so_packet_size_usbatm_channel_7056 packet_size usbatm_channel 0 7056 NULL
151610 +enable_so___btrfs_drop_extents_fndecl_7058 __btrfs_drop_extents fndecl 6-5 7058 NULL
151611 +enable_so_cryptd_alloc_instance_fndecl_7059 cryptd_alloc_instance fndecl 3-2 7059 NULL
151612 +enable_so_dccph_doff_dccp_hdr_7060 dccph_doff dccp_hdr 0 7060 NULL nohasharray
151613 +enable_so_ddebug_proc_write_fndecl_7060 ddebug_proc_write fndecl 3 7060 &enable_so_dccph_doff_dccp_hdr_7060
151614 +enable_so_total_VFs_pci_sriov_7061 total_VFs pci_sriov 0 7061 NULL
151615 +enable_so_i_dir_start_lookup_ext4_inode_info_7062 i_dir_start_lookup ext4_inode_info 0 7062 NULL
151616 +enable_so_core_tpg_set_initiator_node_queue_depth_fndecl_7063 core_tpg_set_initiator_node_queue_depth fndecl 3 7063 NULL
151617 +enable_so_jt_size_gfx_firmware_header_v1_0_7064 jt_size gfx_firmware_header_v1_0 0 7064 NULL
151618 +enable_so_zisofs_fill_pages_fndecl_7066 zisofs_fill_pages fndecl 3 7066 NULL
151619 +enable_so_lua_sysfs_read_fndecl_7069 lua_sysfs_read fndecl 6 7069 NULL
151620 +enable_so_command_hdac_bus_ops_7079 command hdac_bus_ops 0 7079 NULL
151621 +enable_so_pref_height_vmw_display_unit_7089 pref_height vmw_display_unit 0 7089 NULL nohasharray
151622 +enable_so_tot_nodes_mic_bootparam_7089 tot_nodes mic_bootparam 0 7089 &enable_so_pref_height_vmw_display_unit_7089
151623 +enable_so_rx_pending_sky2_port_7090 rx_pending sky2_port 0 7090 NULL
151624 +enable_so_get_vm_area_fndecl_7091 get_vm_area fndecl 1 7091 NULL
151625 +enable_so_dma_mt7601u_dma_buf_7098 dma mt7601u_dma_buf 0 7098 NULL
151626 +enable_so_rtl8139_change_mtu_fndecl_7099 rtl8139_change_mtu fndecl 2 7099 NULL
151627 +enable_so_nvkm_fifo_chan_ctor_fndecl_7101 nvkm_fifo_chan_ctor fndecl 11 7101 NULL nohasharray
151628 +enable_so_mpi_alloc_fndecl_7101 mpi_alloc fndecl 1 7101 &enable_so_nvkm_fifo_chan_ctor_fndecl_7101
151629 +enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104 paging32_gpte_to_gfn_lvl fndecl 0-2-1 7104 NULL nohasharray
151630 +enable_so_scan_ies_len_ieee80211_local_7104 scan_ies_len ieee80211_local 0 7104 &enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104
151631 +enable_so_nfsd4_encode_readv_fndecl_7110 nfsd4_encode_readv fndecl 4 7110 NULL
151632 +enable_so_rsxx_dma_queue_bio_fndecl_7118 rsxx_dma_queue_bio fndecl 0 7118 NULL
151633 +enable_so_wil_tid_ampdu_rx_alloc_fndecl_7119 wil_tid_ampdu_rx_alloc fndecl 2 7119 NULL
151634 +enable_so_alloc_pv_object_fndecl_7121 alloc_pv_object fndecl 3 7121 NULL
151635 +enable_so_ftrace_size_ramoops_platform_data_7124 ftrace_size ramoops_platform_data 0 7124 NULL
151636 +enable_so_report_size_hid_global_7127 report_size hid_global 0 7127 NULL nohasharray
151637 +enable_so_dfs_file_read_fndecl_7127 dfs_file_read fndecl 3 7127 &enable_so_report_size_hid_global_7127
151638 +enable_so_link_chain_affs_tail_7131 link_chain affs_tail 0 7131 NULL nohasharray
151639 +enable_so_acpi_rs_set_resource_length_fndecl_7131 acpi_rs_set_resource_length fndecl 1 7131 &enable_so_link_chain_affs_tail_7131 nohasharray
151640 +enable_so_svc_getnl_fndecl_7131 svc_getnl fndecl 0 7131 &enable_so_acpi_rs_set_resource_length_fndecl_7131
151641 +enable_so_nstids_tid_info_7139 nstids tid_info 0 7139 NULL
151642 +enable_so_mdiobus_read_fndecl_7146 mdiobus_read fndecl 0 7146 NULL
151643 +enable_so_vc_origin_vc_data_7148 vc_origin vc_data 0 7148 NULL
151644 +enable_so_ea_secno_fnode_7151 ea_secno fnode 0 7151 NULL nohasharray
151645 +enable_so_privsize_nft_set_ops_7151 privsize nft_set_ops 0 7151 &enable_so_ea_secno_fnode_7151
151646 +enable_so_nv50_disp_new__fndecl_7152 nv50_disp_new_ fndecl 4 7152 NULL
151647 +enable_so_newblocks_xfs_growfs_rt_7154 newblocks xfs_growfs_rt 0 7154 NULL
151648 +enable_so_selinux_inode_setsecurity_fndecl_7159 selinux_inode_setsecurity fndecl 4 7159 NULL
151649 +enable_so_num_packets_st5481_in_7161 num_packets st5481_in 0 7161 NULL
151650 +enable_so___add_to_page_cache_locked_fndecl_7168 __add_to_page_cache_locked fndecl 0 7168 NULL
151651 +enable_so_setup_sg_fndecl_7174 setup_sg fndecl 3 7174 NULL
151652 +enable_so_get_rxfh_key_size_ethtool_ops_7178 get_rxfh_key_size ethtool_ops 0 7178 NULL
151653 +enable_so_ax88179_write_cmd_async_fndecl_7180 ax88179_write_cmd_async fndecl 5 7180 NULL
151654 +enable_so_vdisplay_moderec_7183 vdisplay moderec 0 7183 NULL nohasharray
151655 +enable_so_mfd_add_devices_fndecl_7183 mfd_add_devices fndecl 6-2-4 7183 &enable_so_vdisplay_moderec_7183
151656 +enable_so_ino_node_footer_7185 ino node_footer 0 7185 NULL
151657 +enable_so_acc_accl_accessdata_dn_7186 acc_accl accessdata_dn 0 7186 NULL
151658 +enable_so_vc_rows_vc_data_7192 vc_rows vc_data 0 7192 NULL nohasharray
151659 +enable_so___shmem_file_setup_fndecl_7192 __shmem_file_setup fndecl 2 7192 &enable_so_vc_rows_vc_data_7192 nohasharray
151660 +enable_so_btrfs_get_token_32_fndecl_7192 btrfs_get_token_32 fndecl 0 7192 &enable_so___shmem_file_setup_fndecl_7192 nohasharray
151661 +enable_so_ic_size_xlog_in_core_7192 ic_size xlog_in_core 0 7192 &enable_so_btrfs_get_token_32_fndecl_7192
151662 +enable_so_mmc_calc_max_discard_fndecl_7198 mmc_calc_max_discard fndecl 0 7198 NULL
151663 +enable_so_z_incomp_fndecl_7201 z_incomp fndecl 3 7201 NULL
151664 +enable_so_length_pnfs_layout_range_7207 length pnfs_layout_range 0 7207 NULL nohasharray
151665 +enable_so_ide_init_port_fndecl_7207 ide_init_port fndecl 2 7207 &enable_so_length_pnfs_layout_range_7207
151666 +enable_so___wa_populate_dto_urb_fndecl_7208 __wa_populate_dto_urb fndecl 4-3 7208 NULL
151667 +enable_so_size_srp_iu_7210 size srp_iu 0 7210 NULL nohasharray
151668 +enable_so_drbd_drain_block_fndecl_7210 drbd_drain_block fndecl 2 7210 &enable_so_size_srp_iu_7210
151669 +enable_so_rivafb_do_maximize_fndecl_7212 rivafb_do_maximize fndecl 3-4 7212 NULL nohasharray
151670 +enable_so_eq_ecount_lpfc_sli4_hba_7212 eq_ecount lpfc_sli4_hba 0 7212 &enable_so_rivafb_do_maximize_fndecl_7212
151671 +enable_so__iwl_dbgfs_bt_force_ant_write_fndecl_7214 _iwl_dbgfs_bt_force_ant_write fndecl 3 7214 NULL
151672 +enable_so_max_id_Scsi_Host_7217 max_id Scsi_Host 0 7217 NULL
151673 +enable_so_num_chipselect_spi_gpio_platform_data_7218 num_chipselect spi_gpio_platform_data 0 7218 NULL
151674 +enable_so_bfad_iocmd_qos_get_attr_fndecl_7226 bfad_iocmd_qos_get_attr fndecl 0 7226 NULL
151675 +enable_so_fdt_node_depth_fndecl_7240 fdt_node_depth fndecl 0 7240 NULL nohasharray
151676 +enable_so_s_mb_last_group_ext4_sb_info_7240 s_mb_last_group ext4_sb_info 0 7240 &enable_so_fdt_node_depth_fndecl_7240
151677 +enable_so_xfs_attr3_leaf_create_fndecl_7243 xfs_attr3_leaf_create fndecl 2 7243 NULL
151678 +enable_so_len_session_key_7253 len session_key 0 7253 NULL
151679 +enable_so_ddcb_max_ddcb_queue_7260 ddcb_max ddcb_queue 0 7260 NULL
151680 +enable_so_bpp_cobalt_stream_7263 bpp cobalt_stream 0 7263 NULL
151681 +enable_so_iscsi_recv_pdu_fndecl_7264 iscsi_recv_pdu fndecl 4 7264 NULL
151682 +enable_so_xlog_bread_fndecl_7272 xlog_bread fndecl 2 7272 NULL
151683 +enable_so_vc_saved_x_vc_data_7275 vc_saved_x vc_data 0 7275 NULL
151684 +enable_so_data_size_rxkad_level1_hdr_7278 data_size rxkad_level1_hdr 0 7278 NULL nohasharray
151685 +enable_so_num_asq_entries_i40e_adminq_info_7278 num_asq_entries i40e_adminq_info 0 7278 &enable_so_data_size_rxkad_level1_hdr_7278
151686 +enable_so_hsync_psb_pipe_7286 hsync psb_pipe 0 7286 NULL
151687 +enable_so_fc_plogi_acc_build_fndecl_7291 fc_plogi_acc_build fndecl 8 7291 NULL
151688 +enable_so_trailer_len_dst_entry_7294 trailer_len dst_entry 0 7294 NULL nohasharray
151689 +enable_so_pci_default_setup_fndecl_7294 pci_default_setup fndecl 4 7294 &enable_so_trailer_len_dst_entry_7294
151690 +enable_so_cmd_size_vmw_view_7295 cmd_size vmw_view 0 7295 NULL nohasharray
151691 +enable_so_ubifs_update_one_lp_fndecl_7295 ubifs_update_one_lp fndecl 3 7295 &enable_so_cmd_size_vmw_view_7295 nohasharray
151692 +enable_so___copy_to_user_swizzled_fndecl_7295 __copy_to_user_swizzled fndecl 3-4 7295 &enable_so_ubifs_update_one_lp_fndecl_7295
151693 +enable_so_next_send_psn_mlx4_qp_context_7298 next_send_psn mlx4_qp_context 0 7298 NULL
151694 +enable_so_height_vpe_q_data_7303 height vpe_q_data 0 7303 NULL
151695 +enable_so_fdt_setprop_inplace_fndecl_7306 fdt_setprop_inplace fndecl 2 7306 NULL
151696 +enable_so_value_apei_exec_context_7318 value apei_exec_context 0 7318 NULL
151697 +enable_so_fdir_filter_count_ixgbe_adapter_7322 fdir_filter_count ixgbe_adapter 0 7322 NULL nohasharray
151698 +enable_so_add_frontend_dmx_demux_7322 add_frontend dmx_demux 0 7322 &enable_so_fdir_filter_count_ixgbe_adapter_7322
151699 +enable_so_bus_num_dw_pci_controller_7324 bus_num dw_pci_controller 0 7324 NULL
151700 +enable_so_len_f2fs_encrypted_symlink_data_7327 len f2fs_encrypted_symlink_data 0 7327 NULL
151701 +enable_so_wsize_inflate_state_7329 wsize inflate_state 0 7329 NULL
151702 +enable_so_control_cnt_pvr2_hdw_7335 control_cnt pvr2_hdw 0 7335 NULL
151703 +enable_so_drm_malloc_ab_fndecl_7340 drm_malloc_ab fndecl 1-2 7340 NULL
151704 +enable_so_pvr2_i2c_read_fndecl_7344 pvr2_i2c_read fndecl 4-6 7344 NULL
151705 +enable_so_sdebug_change_qdepth_fndecl_7345 sdebug_change_qdepth fndecl 2 7345 NULL
151706 +enable_so_jpegqual_s2255_vc_7351 jpegqual s2255_vc 0 7351 NULL nohasharray
151707 +enable_so_btusb_recv_intr_fndecl_7351 btusb_recv_intr fndecl 3 7351 &enable_so_jpegqual_s2255_vc_7351 nohasharray
151708 +enable_so_get_server_iovec_fndecl_7351 get_server_iovec fndecl 2 7351 &enable_so_btusb_recv_intr_fndecl_7351
151709 +enable_so_mesh_fwd_csa_frame_fndecl_7353 mesh_fwd_csa_frame fndecl 3 7353 NULL nohasharray
151710 +enable_so_calc_sq_size_fndecl_7353 calc_sq_size fndecl 0 7353 &enable_so_mesh_fwd_csa_frame_fndecl_7353
151711 +enable_so_mcp251x_spi_trans_fndecl_7356 mcp251x_spi_trans fndecl 2 7356 NULL
151712 +enable_so_dm_vcalloc_fndecl_7357 dm_vcalloc fndecl 2-1 7357 NULL
151713 +enable_so_sys_fadvise64_fndecl_7365 sys_fadvise64 fndecl 2-3 7365 NULL
151714 +enable_so_hfsplus_min_io_size_fndecl_7368 hfsplus_min_io_size fndecl 0 7368 NULL
151715 +enable_so_check_left_item_operations_7369 check_left item_operations 0 7369 NULL
151716 +enable_so_e_value_size_ext2_xattr_entry_7373 e_value_size ext2_xattr_entry 0 7373 NULL
151717 +enable_so_bufsize_pstore_info_7375 bufsize pstore_info 0 7375 NULL
151718 +enable_so_shmem_swapin_fndecl_7376 shmem_swapin fndecl 4 7376 NULL nohasharray
151719 +enable_so_scsi_mode_sense_fndecl_7376 scsi_mode_sense fndecl 5 7376 &enable_so_shmem_swapin_fndecl_7376
151720 +enable_so_c67x00_create_td_fndecl_7377 c67x00_create_td fndecl 4 7377 NULL
151721 +enable_so_fs_ablocks_hfs_sb_info_7381 fs_ablocks hfs_sb_info 0 7381 NULL
151722 +enable_so_amd8111e_change_mtu_fndecl_7389 amd8111e_change_mtu fndecl 2 7389 NULL
151723 +enable_so_packetsize__rbu_data_7390 packetsize _rbu_data 0 7390 NULL
151724 +enable_so_v_tot_disp_crtc_7400 v_tot_disp crtc 0 7400 NULL
151725 +enable_so_ext4_ext_zeroout_fndecl_7404 ext4_ext_zeroout fndecl 0 7404 NULL
151726 +enable_so_fw_sent_bcm203x_data_7405 fw_sent bcm203x_data 0 7405 NULL
151727 +enable_so___ip_append_data_fndecl_7411 __ip_append_data fndecl 9-8 7411 NULL
151728 +enable_so_default_value_cx88_ctrl_7412 default_value cx88_ctrl 0 7412 NULL
151729 +enable_so_htotal_psb_pipe_7415 htotal psb_pipe 0 7415 NULL nohasharray
151730 +enable_so_xfs_dialloc_ag_fndecl_7415 xfs_dialloc_ag fndecl 3 7415 &enable_so_htotal_psb_pipe_7415 nohasharray
151731 +enable_so_block_ack_param_set_host_cmd_ds_11n_addba_req_7415 block_ack_param_set host_cmd_ds_11n_addba_req 0 7415 &enable_so_xfs_dialloc_ag_fndecl_7415
151732 +enable_so_st_write_fndecl_7417 st_write fndecl 3 7417 NULL
151733 +enable_so_xfs_iget_fndecl_7419 xfs_iget fndecl 3 7419 NULL nohasharray
151734 +enable_so_alloc_idx_lebs_fndecl_7419 alloc_idx_lebs fndecl 2 7419 &enable_so_xfs_iget_fndecl_7419
151735 +enable_so___kfifo_peek_n_fndecl_7422 __kfifo_peek_n fndecl 0 7422 NULL
151736 +enable_so_mirror_sd_gl860_7430 mirror sd_gl860 0 7430 NULL
151737 +enable_so_residue_dma_tx_state_7432 residue dma_tx_state 0 7432 NULL nohasharray
151738 +enable_so_hdrsize_genl_family_7432 hdrsize genl_family 0 7432 &enable_so_residue_dma_tx_state_7432
151739 +enable_so_xfs_file_fsync_fndecl_7433 xfs_file_fsync fndecl 2-3 7433 NULL
151740 +enable_so_iio_device_add_event_fndecl_7439 iio_device_add_event fndecl 0 7439 NULL
151741 +enable_so_data_len_sk_buff_7447 data_len sk_buff 0 7447 NULL
151742 +enable_so_rate_ctrl_alg_read_fndecl_7449 rate_ctrl_alg_read fndecl 3 7449 NULL
151743 +enable_so_shdma_prep_memcpy_fndecl_7451 shdma_prep_memcpy fndecl 4-3 7451 NULL nohasharray
151744 +enable_so_stat_st_vardecl_drv_c_7451 stat_st vardecl_drv.c 0 7451 &enable_so_shdma_prep_memcpy_fndecl_7451
151745 +enable_so_drVBMSt_hfs_mdb_7456 drVBMSt hfs_mdb 0 7456 NULL
151746 +enable_so_size_vmci_handle_arr_7457 size vmci_handle_arr 0 7457 NULL
151747 +enable_so_len_sk_buff_7460 len sk_buff 0 7460 NULL
151748 +enable_so_hpfs_alloc_sector_fndecl_7462 hpfs_alloc_sector fndecl 0-4-3-2 7462 NULL
151749 +enable_so_t_blocknr_journal_block_tag_s_7464 t_blocknr journal_block_tag_s 0 7464 NULL
151750 +enable_so_num_present_cpu_lpfc_sli4_hba_7465 num_present_cpu lpfc_sli4_hba 0 7465 NULL nohasharray
151751 +enable_so_cmdline_store_fndecl_7465 cmdline_store fndecl 4 7465 &enable_so_num_present_cpu_lpfc_sli4_hba_7465
151752 +enable_so_Length__SECURITY_BUFFER_7467 Length _SECURITY_BUFFER 0 7467 NULL
151753 +enable_so_buffer_dma_ehci_qtd_7468 buffer_dma ehci_qtd 0 7468 NULL nohasharray
151754 +enable_so_minors_gigaset_driver_7468 minors gigaset_driver 0 7468 &enable_so_buffer_dma_ehci_qtd_7468
151755 +enable_so_block_to_sectors_fndecl_7472 block_to_sectors fndecl 0-2 7472 NULL
151756 +enable_so_devmem_is_allowed_fndecl_7475 devmem_is_allowed fndecl 1 7475 NULL
151757 +enable_so_ieee80211_if_read_tsf_fndecl_7479 ieee80211_if_read_tsf fndecl 3 7479 NULL
151758 +enable_so_status_c67x00_urb_priv_7480 status c67x00_urb_priv 0 7480 NULL
151759 +enable_so_rxrpc_server_keyring_fndecl_7484 rxrpc_server_keyring fndecl 3 7484 NULL
151760 +enable_so_f_width_fimc_frame_7488 f_width fimc_frame 0 7488 NULL nohasharray
151761 +enable_so_req_capsule_get_size_fndecl_7488 req_capsule_get_size fndecl 0 7488 &enable_so_f_width_fimc_frame_7488
151762 +enable_so_s_log_block_size_ext2_super_block_7490 s_log_block_size ext2_super_block 0 7490 NULL
151763 +enable_so_can_nice_fndecl_7498 can_nice fndecl 2 7498 NULL
151764 +enable_so_ri_lsegs_start_nilfs_recovery_info_7501 ri_lsegs_start nilfs_recovery_info 0 7501 NULL
151765 +enable_so_calculate_inocache_hashsize_fndecl_7506 calculate_inocache_hashsize fndecl 0-1 7506 NULL
151766 +enable_so_btrfs_truncate_inode_items_fndecl_7511 btrfs_truncate_inode_items fndecl 4 7511 NULL
151767 +enable_so_alloc_disk_node_fndecl_7513 alloc_disk_node fndecl 1 7513 NULL
151768 +enable_so_netlink_change_ngroups_fndecl_7514 netlink_change_ngroups fndecl 2 7514 NULL
151769 +enable_so_src_len_akcipher_request_7526 src_len akcipher_request 0 7526 NULL
151770 +enable_so_xfs_iomap_eof_want_preallocate_fndecl_7527 xfs_iomap_eof_want_preallocate fndecl 4-3 7527 NULL
151771 +enable_so_cfg_hba_queue_depth_lpfc_hba_7534 cfg_hba_queue_depth lpfc_hba 0 7534 NULL
151772 +enable_so_delta_mmap_mm_struct_7536 delta_mmap mm_struct 0 7536 NULL
151773 +enable_so_length_ndis_80211_ssid_7537 length ndis_80211_ssid 0 7537 NULL
151774 +enable_so_size_hpi_response_header_7541 size hpi_response_header 0 7541 NULL
151775 +enable_so_hd_nirqs_hpet_data_7558 hd_nirqs hpet_data 0 7558 NULL
151776 +enable_so_raid10_resize_fndecl_7562 raid10_resize fndecl 2 7562 NULL
151777 +enable_so_max_channels_snd_pcm_chmap_7565 max_channels snd_pcm_chmap 0 7565 NULL
151778 +enable_so_duplicateIXtree_fndecl_7568 duplicateIXtree fndecl 3-2 7568 NULL
151779 +enable_so_len_cpl_rx_data_7570 len cpl_rx_data 0 7570 NULL
151780 +enable_so_wqe_fcoe_cqe_7572 wqe fcoe_cqe 0 7572 NULL
151781 +enable_so_rtsx_usb_send_cmd_fndecl_7578 rtsx_usb_send_cmd fndecl 0 7578 NULL
151782 +enable_so_byte_count_mlx5_wqe_data_seg_7581 byte_count mlx5_wqe_data_seg 0 7581 NULL
151783 +enable_so_mISDN_sock_sendmsg_fndecl_7584 mISDN_sock_sendmsg fndecl 3 7584 NULL nohasharray
151784 +enable_so_tcp_manip_pkt_fndecl_7584 tcp_manip_pkt fndecl 4 7584 &enable_so_mISDN_sock_sendmsg_fndecl_7584
151785 +enable_so_tuple_size_blk_integrity_7585 tuple_size blk_integrity 0 7585 NULL
151786 +enable_so_count_ivtvfb_dma_frame_7586 count ivtvfb_dma_frame 0 7586 NULL
151787 +enable_so_length_sctp_chunkhdr_7587 length sctp_chunkhdr 0 7587 NULL
151788 +enable_so_ftdi_elan_edset_input_fndecl_7588 ftdi_elan_edset_input fndecl 0 7588 NULL
151789 +enable_so_lpfc_debugfs_read_fndecl_7589 lpfc_debugfs_read fndecl 3 7589 NULL
151790 +enable_so_scan_index_iio_chan_spec_7597 scan_index iio_chan_spec 0 7597 NULL
151791 +enable_so_q_blkno_xfs_dquot_7601 q_blkno xfs_dquot 0 7601 NULL
151792 +enable_so_pathmtu_sctp_transport_7603 pathmtu sctp_transport 0 7603 NULL
151793 +enable_so_fuse_listxattr_fndecl_7605 fuse_listxattr fndecl 3 7605 NULL
151794 +enable_so_pzl_urb_dequeue_fndecl_7607 pzl_urb_dequeue fndecl 3 7607 NULL
151795 +enable_so___reserved_mem_check_root_fndecl_7611 __reserved_mem_check_root fndecl 1 7611 NULL
151796 +enable_so_rcvidx_w6692B_hw_7613 rcvidx w6692B_hw 0 7613 NULL nohasharray
151797 +enable_so_wFormatVersion_ms_bootblock_header_7613 wFormatVersion ms_bootblock_header 0 7613 &enable_so_rcvidx_w6692B_hw_7613
151798 +enable_so_id_hid_report_7618 id hid_report 0 7618 NULL
151799 +enable_so_drm_fb_helper_fill_var_fndecl_7619 drm_fb_helper_fill_var fndecl 4-3 7619 NULL
151800 +enable_so_physical_scrub_page_7621 physical scrub_page 0 7621 NULL
151801 +enable_so_block_udf_vds_record_7623 block udf_vds_record 0 7623 NULL
151802 +enable_so_ocfs2_free_suballoc_bits_fndecl_7627 ocfs2_free_suballoc_bits fndecl 5 7627 NULL
151803 +enable_so_agp_allocate_memory_wrap_fndecl_7635 agp_allocate_memory_wrap fndecl 1 7635 NULL
151804 +enable_so_virt_to_scatterlist_fndecl_7637 virt_to_scatterlist fndecl 2 7637 NULL
151805 +enable_so_read_cable_det_adv76xx_chip_info_7641 read_cable_det adv76xx_chip_info 0 7641 NULL
151806 +enable_so_num_sge_ib_uverbs_recv_wr_7647 num_sge ib_uverbs_recv_wr 0 7647 NULL
151807 +enable_so_xpt_remotelen_svc_xprt_7655 xpt_remotelen svc_xprt 0 7655 NULL
151808 +enable_so_s_fsize_ufs_sb_private_info_7659 s_fsize ufs_sb_private_info 0 7659 NULL nohasharray
151809 +enable_so_maxwritelen_proc_data_7659 maxwritelen proc_data 0 7659 &enable_so_s_fsize_ufs_sb_private_info_7659
151810 +enable_so_brcmf_proto_bcdc_txdata_fndecl_7662 brcmf_proto_bcdc_txdata fndecl 3 7662 NULL
151811 +enable_so_to_perf_branch_entry_7663 to perf_branch_entry 0 7663 NULL
151812 +enable_so_compat_SyS_migrate_pages_fndecl_7673 compat_SyS_migrate_pages fndecl 2 7673 NULL
151813 +enable_so_rds_sendmsg_fndecl_7675 rds_sendmsg fndecl 3 7675 NULL
151814 +enable_so_nfsd_max_blksize_vardecl_7678 nfsd_max_blksize vardecl 0 7678 NULL
151815 +enable_so_shmem_read_mapping_page_gfp_fndecl_7681 shmem_read_mapping_page_gfp fndecl 2 7681 NULL
151816 +enable_so_UniStrnlen_fndecl_7682 UniStrnlen fndecl 0 7682 NULL
151817 +enable_so_pm860x_page_bulk_read_fndecl_7685 pm860x_page_bulk_read fndecl 3 7685 NULL nohasharray
151818 +enable_so_l1oip_socket_send_fndecl_7685 l1oip_socket_send fndecl 7 7685 &enable_so_pm860x_page_bulk_read_fndecl_7685
151819 +enable_so_ipoib_dev_init_fndecl_7687 ipoib_dev_init fndecl 3 7687 NULL nohasharray
151820 +enable_so_cfg80211_sme_get_conn_ies_fndecl_7687 cfg80211_sme_get_conn_ies fndecl 3 7687 &enable_so_ipoib_dev_init_fndecl_7687
151821 +enable_so_num_gpios_stmpe_7689 num_gpios stmpe 0 7689 NULL
151822 +enable_so_di_extsize_xfs_icdinode_7693 di_extsize xfs_icdinode 0 7693 NULL
151823 +enable_so_n_tty_receive_buf_real_raw_fndecl_7696 n_tty_receive_buf_real_raw fndecl 4 7696 NULL
151824 +enable_so_record_length_cper_record_header_7697 record_length cper_record_header 0 7697 NULL
151825 +enable_so_mxt_upload_cfg_mem_fndecl_7702 mxt_upload_cfg_mem fndecl 4 7702 NULL
151826 +enable_so_hdr_len_virtio_net_hdr_7704 hdr_len virtio_net_hdr 0 7704 NULL nohasharray
151827 +enable_so_rf_cpos_ocfs2_refcount_block_7704 rf_cpos ocfs2_refcount_block 0 7704 &enable_so_hdr_len_virtio_net_hdr_7704 nohasharray
151828 +enable_so_befs_nls2utf_fndecl_7704 befs_nls2utf fndecl 3 7704 &enable_so_rf_cpos_ocfs2_refcount_block_7704
151829 +enable_so_tx_tx_start_templates_read_fndecl_7711 tx_tx_start_templates_read fndecl 3 7711 NULL nohasharray
151830 +enable_so_fd_vfid_fip_fab_desc_7711 fd_vfid fip_fab_desc 0 7711 &enable_so_tx_tx_start_templates_read_fndecl_7711
151831 +enable_so_stride_pci_sriov_7712 stride pci_sriov 0 7712 NULL
151832 +enable_so_i915_gem_get_gtt_size_fndecl_7714 i915_gem_get_gtt_size fndecl 0-2 7714 NULL
151833 +enable_so_controller_number_ms_boot_attr_info_7716 controller_number ms_boot_attr_info 0 7716 NULL
151834 +enable_so_sess_alloc_buffer_fndecl_7728 sess_alloc_buffer fndecl 2 7728 NULL
151835 +enable_so_ceph_pool_perm_check_fndecl_7729 ceph_pool_perm_check fndecl 0 7729 NULL nohasharray
151836 +enable_so_if_ipx_offset_ipx_interface_7729 if_ipx_offset ipx_interface 0 7729 &enable_so_ceph_pool_perm_check_fndecl_7729
151837 +enable_so_get_num_rx_queues_rtnl_link_ops_7733 get_num_rx_queues rtnl_link_ops 0 7733 NULL
151838 +enable_so_access_remote_vm_fndecl_7734 access_remote_vm fndecl 4-0-2 7734 NULL nohasharray
151839 +enable_so_iwl_dbgfs_txfifo_flush_write_fndecl_7734 iwl_dbgfs_txfifo_flush_write fndecl 3 7734 &enable_so_access_remote_vm_fndecl_7734
151840 +enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737 iscsit_find_cmd_from_itt_or_dump fndecl 3 7737 NULL nohasharray
151841 +enable_so_driver_state_read_fndecl_7737 driver_state_read fndecl 3 7737 &enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737
151842 +enable_so_vxres_aty128_crtc_7753 vxres aty128_crtc 0 7753 NULL
151843 +enable_so_ide_get_best_pio_mode_fndecl_7756 ide_get_best_pio_mode fndecl 0-2-3 7756 NULL nohasharray
151844 +enable_so_mlx4_enable_sriov_fndecl_7756 mlx4_enable_sriov fndecl 4-3 7756 &enable_so_ide_get_best_pio_mode_fndecl_7756 nohasharray
151845 +enable_so_max_eq_lpfc_max_cfg_param_7756 max_eq lpfc_max_cfg_param 0 7756 &enable_so_mlx4_enable_sriov_fndecl_7756
151846 +enable_so_xfs_dir2_free_read_fndecl_7759 xfs_dir2_free_read fndecl 3 7759 NULL
151847 +enable_so_ext4_fname_crypto_alloc_buffer_fndecl_7767 ext4_fname_crypto_alloc_buffer fndecl 2 7767 NULL
151848 +enable_so_pps_devt_vardecl_pps_c_7772 pps_devt vardecl_pps.c 0 7772 NULL
151849 +enable_so_ocfs2_get_suballoc_slot_bit_fndecl_7773 ocfs2_get_suballoc_slot_bit fndecl 2 7773 NULL
151850 +enable_so_t_data_nents_orig_se_cmd_7775 t_data_nents_orig se_cmd 0 7775 NULL
151851 +enable_so_split_mem_range_fndecl_7776 split_mem_range fndecl 4-3 7776 NULL
151852 +enable_so_mode_size_cyttsp4_sysinfo_ofs_7780 mode_size cyttsp4_sysinfo_ofs 0 7780 NULL
151853 +enable_so_alloc_ep_fndecl_7782 alloc_ep fndecl 1 7782 NULL
151854 +enable_so_mmu_private_affs_inode_info_7785 mmu_private affs_inode_info 0 7785 NULL
151855 +enable_so_st_do_scsi_fndecl_7789 st_do_scsi fndecl 4 7789 NULL
151856 +enable_so_qxl_framebuffer_surface_dirty_fndecl_7791 qxl_framebuffer_surface_dirty fndecl 6 7791 NULL nohasharray
151857 +enable_so_pg_read_fndecl_7791 pg_read fndecl 3 7791 &enable_so_qxl_framebuffer_surface_dirty_fndecl_7791
151858 +enable_so_inode_getblk_fndecl_7794 inode_getblk fndecl 2-0 7794 NULL
151859 +enable_so___clk_speculate_rates_fndecl_7795 __clk_speculate_rates fndecl 2 7795 NULL
151860 +enable_so_remove_advertising_fndecl_7798 remove_advertising fndecl 4 7798 NULL
151861 +enable_so_qnx4_get_block_fndecl_7810 qnx4_get_block fndecl 2 7810 NULL
151862 +enable_so_cciss_max_sectors_ctlr_info_7811 cciss_max_sectors ctlr_info 0 7811 NULL nohasharray
151863 +enable_so_len_nfs_diropargs_7811 len nfs_diropargs 0 7811 &enable_so_cciss_max_sectors_ctlr_info_7811
151864 +enable_so_plen_hci_event_hdr_7815 plen hci_event_hdr 0 7815 NULL
151865 +enable_so_mb_cache_create_fndecl_7816 mb_cache_create fndecl 2 7816 NULL
151866 +enable_so_node_ino_num_f2fs_sb_info_7818 node_ino_num f2fs_sb_info 0 7818 NULL
151867 +enable_so_length_scsi_mode_data_7819 length scsi_mode_data 0 7819 NULL
151868 +enable_so_id_avail_ipack_device_7822 id_avail ipack_device 0 7822 NULL
151869 +enable_so_n_stats_ethtool_stats_7823 n_stats ethtool_stats 0 7823 NULL
151870 +enable_so_get_pipe_fndecl_7825 get_pipe fndecl 0-2 7825 NULL
151871 +enable_so_nabs_joydev_7827 nabs joydev 0 7827 NULL
151872 +enable_so_x1_virtio_gpu_framebuffer_7830 x1 virtio_gpu_framebuffer 0 7830 NULL
151873 +enable_so_minstrel_stats_read_fndecl_7833 minstrel_stats_read fndecl 3 7833 NULL
151874 +enable_so_rtpref_nfs_fsinfo_7835 rtpref nfs_fsinfo 0 7835 NULL
151875 +enable_so_nonstatic_find_mem_region_fndecl_7838 nonstatic_find_mem_region fndecl 1-2 7838 NULL
151876 +enable_so_sys_truncate_fndecl_7846 sys_truncate fndecl 2 7846 NULL
151877 +enable_so_bestcount_xfs_dir2_leaf_tail_7847 bestcount xfs_dir2_leaf_tail 0 7847 NULL
151878 +enable_so_sl_datalen_nfsd4_slot_7859 sl_datalen nfsd4_slot 0 7859 NULL
151879 +enable_so_wqe_shift_mlx4_ib_wq_7860 wqe_shift mlx4_ib_wq 0 7860 NULL
151880 +enable_so_offset_iscsi_data_7862 offset iscsi_data 0 7862 NULL
151881 +enable_so_block_aligned_filename_size_ecryptfs_parse_tag_70_packet_silly_stack_7865 block_aligned_filename_size ecryptfs_parse_tag_70_packet_silly_stack 0 7865 NULL nohasharray
151882 +enable_so_s_fpbshift_ufs_sb_private_info_7865 s_fpbshift ufs_sb_private_info 0 7865 &enable_so_block_aligned_filename_size_ecryptfs_parse_tag_70_packet_silly_stack_7865
151883 +enable_so_cyapa_i2c_read_fndecl_7870 cyapa_i2c_read fndecl 3 7870 NULL
151884 +enable_so_image_sectors_s3fwrn5_fw_image_7871 image_sectors s3fwrn5_fw_image 0 7871 NULL
151885 +enable_so_mapped_vram_mb862xxfb_par_7872 mapped_vram mb862xxfb_par 0 7872 NULL
151886 +enable_so_iscsi_tcp_dgst_header_fndecl_7878 iscsi_tcp_dgst_header fndecl 3 7878 NULL
151887 +enable_so_used_snd_ctl_elem_list_7883 used snd_ctl_elem_list 0 7883 NULL
151888 +enable_so_rxstatus_epic_rx_desc_7884 rxstatus epic_rx_desc 0 7884 NULL nohasharray
151889 +enable_so_sd_read_data_fndecl_7884 sd_read_data fndecl 3-0 7884 &enable_so_rxstatus_epic_rx_desc_7884 nohasharray
151890 +enable_so_freecom_readdata_fndecl_7884 freecom_readdata fndecl 3-4 7884 &enable_so_sd_read_data_fndecl_7884
151891 +enable_so_ath6kl_wmi_send_mgmt_cmd_fndecl_7888 ath6kl_wmi_send_mgmt_cmd fndecl 7-2 7888 NULL
151892 +enable_so_ieee80211_if_read_dot11MeshHWMPperrMinInterval_fndecl_7889 ieee80211_if_read_dot11MeshHWMPperrMinInterval fndecl 3 7889 NULL
151893 +enable_so_i2400m_unknown_barker_fndecl_7903 i2400m_unknown_barker fndecl 3 7903 NULL
151894 +enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906 ath6kl_wmi_info_req_cmd fndecl 2 7906 NULL nohasharray
151895 +enable_so_vdi_size_vxfs_inode_info_7906 vdi_size vxfs_inode_info 0 7906 &enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906
151896 +enable_so_mode_id_vbe_mode_ib_7913 mode_id vbe_mode_ib 0 7913 NULL
151897 +enable_so_depth_s5p_jpeg_fmt_7914 depth s5p_jpeg_fmt 0 7914 NULL
151898 +enable_so_rx_ring_size_vmxnet3_adapter_7917 rx_ring_size vmxnet3_adapter 0 7917 NULL
151899 +enable_so_ccw_bmove_fndecl_7918 ccw_bmove fndecl 5-7-3-8-6-4 7918 NULL
151900 +enable_so_uvesafb_setpalette_fndecl_7922 uvesafb_setpalette fndecl 2 7922 NULL
151901 +enable_so_raid5_size_fndecl_7933 raid5_size fndecl 0-3-2 7933 NULL
151902 +enable_so_jp_journal_size_journal_params_7943 jp_journal_size journal_params 0 7943 NULL
151903 +enable_so_psb_unlocked_ioctl_fndecl_7949 psb_unlocked_ioctl fndecl 2 7949 NULL
151904 +enable_so_num_sdma_hfi1_devdata_7951 num_sdma hfi1_devdata 0 7951 NULL
151905 +enable_so_jme_change_mtu_fndecl_7964 jme_change_mtu fndecl 2 7964 NULL nohasharray
151906 +enable_so_sd_start_fndecl_7964 sd_start fndecl 0 7964 &enable_so_jme_change_mtu_fndecl_7964
151907 +enable_so_squashfs_read_table_fndecl_7970 squashfs_read_table fndecl 3 7970 NULL nohasharray
151908 +enable_so_ticket_len_rxk5_key_7970 ticket_len rxk5_key 0 7970 &enable_so_squashfs_read_table_fndecl_7970
151909 +enable_so__sp2d_alloc_fndecl_7971 _sp2d_alloc fndecl 1-3-2 7971 NULL
151910 +enable_so_peb_count_ubi_device_7987 peb_count ubi_device 0 7987 NULL
151911 +enable_so_initrd_end_vardecl_7989 initrd_end vardecl 0 7989 NULL
151912 +enable_so_ip_append_data_fndecl_7997 ip_append_data fndecl 6-5 7997 NULL
151913 +enable_so_find_resource_fndecl_8013 find_resource fndecl 3 8013 NULL nohasharray
151914 +enable_so_encode_opaque_fixed_fndecl_8013 encode_opaque_fixed fndecl 3 8013 &enable_so_find_resource_fndecl_8013 nohasharray
151915 +enable_so_ocfs2_read_quota_phys_block_fndecl_8013 ocfs2_read_quota_phys_block fndecl 2 8013 &enable_so_encode_opaque_fixed_fndecl_8013
151916 +enable_so_max_mtu_mlx4_en_priv_8015 max_mtu mlx4_en_priv 0 8015 NULL
151917 +enable_so_svcxdr_dupstr_fndecl_8016 svcxdr_dupstr fndecl 3 8016 NULL
151918 +enable_so_keyctl_instantiate_key_iov_fndecl_8026 keyctl_instantiate_key_iov fndecl 3 8026 NULL
151919 +enable_so_period_size_snd_pcm_runtime_8027 period_size snd_pcm_runtime 0 8027 NULL
151920 +enable_so_length_e1000_rx_desc_8032 length e1000_rx_desc 0 8032 NULL
151921 +enable_so_mcast_mtu_ipoib_dev_priv_8033 mcast_mtu ipoib_dev_priv 0 8033 NULL
151922 +enable_so_gtt_base_align_radeon_mc_8035 gtt_base_align radeon_mc 0 8035 NULL
151923 +enable_so_vbi_width_au0828_dev_8038 vbi_width au0828_dev 0 8038 NULL
151924 +enable_so_size_nvkm_fifo_chan_8052 size nvkm_fifo_chan 0 8052 NULL
151925 +enable_so_ieee80211_tdls_build_mgmt_packet_data_fndecl_8053 ieee80211_tdls_build_mgmt_packet_data fndecl 8 8053 NULL
151926 +enable_so_cb710_check_event_fndecl_8054 cb710_check_event fndecl 0 8054 NULL nohasharray
151927 +enable_so_memmap_entry_callback_fndecl_8054 memmap_entry_callback fndecl 1-2 8054 &enable_so_cb710_check_event_fndecl_8054
151928 +enable_so_pd_handles_sz_MPT3SAS_ADAPTER_8057 pd_handles_sz MPT3SAS_ADAPTER 0 8057 NULL
151929 +enable_so_mmio_megabytes_vmbus_channel_offer_8058 mmio_megabytes vmbus_channel_offer 0 8058 NULL nohasharray
151930 +enable_so_goldfish_tty_line_count_vardecl_goldfish_c_8058 goldfish_tty_line_count vardecl_goldfish.c 0 8058 &enable_so_mmio_megabytes_vmbus_channel_offer_8058
151931 +enable_so_ceph_read_dir_fndecl_8062 ceph_read_dir fndecl 3 8062 NULL
151932 +enable_so_btrfs_unlink_inode_fndecl_8064 btrfs_unlink_inode fndecl 6 8064 NULL
151933 +enable_so_jffs2_trusted_setxattr_fndecl_8075 jffs2_trusted_setxattr fndecl 4 8075 NULL
151934 +enable_so_vlan_dev_vlan_proto_fndecl_8077 vlan_dev_vlan_proto fndecl 0 8077 NULL
151935 +enable_so_savage_map_video_fndecl_8078 savage_map_video fndecl 2 8078 NULL
151936 +enable_so_encode_string_fndecl_8079 encode_string fndecl 2 8079 NULL
151937 +enable_so_copy_counters_to_user_fndecl_8080 copy_counters_to_user fndecl 5 8080 NULL
151938 +enable_so_out_pipe_usbtest_dev_8085 out_pipe usbtest_dev 0 8085 NULL
151939 +enable_so_length_packet_8086 length packet 0 8086 NULL
151940 +enable_so_lpt_lnum_bits_ubifs_info_8094 lpt_lnum_bits ubifs_info 0 8094 NULL
151941 +enable_so_ali1535_smba_vardecl_i2c_ali1535_c_8095 ali1535_smba vardecl_i2c-ali1535.c 0 8095 NULL
151942 +enable_so_sd_complete_frame_fndecl_8096 sd_complete_frame fndecl 3 8096 NULL
151943 +enable_so_dvb_dvr_read_fndecl_8098 dvb_dvr_read fndecl 3 8098 NULL nohasharray
151944 +enable_so_batchcount_kmem_cache_8098 batchcount kmem_cache 0 8098 &enable_so_dvb_dvr_read_fndecl_8098
151945 +enable_so_sddr55_read_data_fndecl_8099 sddr55_read_data fndecl 4-3 8099 NULL nohasharray
151946 +enable_so_error_num_frame_cts_nul_flid_read_fndecl_8099 error_num_frame_cts_nul_flid_read fndecl 3 8099 &enable_so_sddr55_read_data_fndecl_8099
151947 +enable_so_simple_transaction_read_fndecl_8103 simple_transaction_read fndecl 3 8103 NULL
151948 +enable_so_ext4_end_io_dio_fndecl_8107 ext4_end_io_dio fndecl 2-3 8107 NULL
151949 +enable_so_tgt_count_blogic_adapter_8109 tgt_count blogic_adapter 0 8109 NULL
151950 +enable_so_acpi_ut_get_resource_header_length_fndecl_8110 acpi_ut_get_resource_header_length fndecl 0 8110 NULL
151951 +enable_so_speed_channel_8113 speed channel 0 8113 NULL
151952 +enable_so_up_dnode_8116 up dnode 0 8116 NULL
151953 +enable_so___copy_user_nocache_fndecl_8122 __copy_user_nocache fndecl 0 8122 NULL
151954 +enable_so_m_pblk_f2fs_map_blocks_8129 m_pblk f2fs_map_blocks 0 8129 NULL
151955 +enable_so_jffs2_scan_inode_node_fndecl_8132 jffs2_scan_inode_node fndecl 4 8132 NULL
151956 +enable_so_cfg_size_pci_dev_8134 cfg_size pci_dev 0 8134 NULL
151957 +enable_so_wpa_ie_len_libipw_network_8137 wpa_ie_len libipw_network 0 8137 NULL nohasharray
151958 +enable_so_write_mem_fndecl_8137 write_mem fndecl 3 8137 &enable_so_wpa_ie_len_libipw_network_8137 nohasharray
151959 +enable_so_ucNumDPMLevels__ATOM_PPLIB_STATE_V2_8137 ucNumDPMLevels _ATOM_PPLIB_STATE_V2 0 8137 &enable_so_write_mem_fndecl_8137
151960 +enable_so_max_xmit_dlength_iscsi_conn_8139 max_xmit_dlength iscsi_conn 0 8139 NULL nohasharray
151961 +enable_so_nct6683_find_fndecl_8139 nct6683_find fndecl 0 8139 &enable_so_max_xmit_dlength_iscsi_conn_8139
151962 +enable_so_iic_tpm_write_long_fndecl_8143 iic_tpm_write_long fndecl 3 8143 NULL
151963 +enable_so_hfsplus_add_extent_fndecl_8150 hfsplus_add_extent fndecl 4-3 8150 NULL nohasharray
151964 +enable_so_entry_length_fndecl_8150 entry_length fndecl 0 8150 &enable_so_hfsplus_add_extent_fndecl_8150
151965 +enable_so_sys_preadv_fndecl_8159 sys_preadv fndecl 3 8159 NULL
151966 +enable_so_hr_start_block_o2hb_region_8162 hr_start_block o2hb_region 0 8162 NULL
151967 +enable_so_num_custom_params_pinctrl_desc_8163 num_custom_params pinctrl_desc 0 8163 NULL nohasharray
151968 +enable_so_fuse_direct_IO_fndecl_8163 fuse_direct_IO fndecl 3 8163 &enable_so_num_custom_params_pinctrl_desc_8163
151969 +enable_so_devnum_denali_nand_info_8164 devnum denali_nand_info 0 8164 NULL nohasharray
151970 +enable_so_read_len_ddb_flashio_8164 read_len ddb_flashio 0 8164 &enable_so_devnum_denali_nand_info_8164
151971 +enable_so_ubifs_scanned_corruption_fndecl_8170 ubifs_scanned_corruption fndecl 3 8170 NULL
151972 +enable_so_tx_ring_count_igb_adapter_8171 tx_ring_count igb_adapter 0 8171 NULL
151973 +enable_so_jumpshot_write_data_fndecl_8172 jumpshot_write_data fndecl 4 8172 NULL
151974 +enable_so_blksz_mmc_data_8174 blksz mmc_data 0 8174 NULL nohasharray
151975 +enable_so_ptr_mask_efx_tx_queue_8174 ptr_mask efx_tx_queue 0 8174 &enable_so_blksz_mmc_data_8174
151976 +enable_so_avail_ubifs_wbuf_8176 avail ubifs_wbuf 0 8176 NULL
151977 +enable_so_pdu_read_fndecl_8183 pdu_read fndecl 3 8183 NULL
151978 +enable_so_nsftids_tid_info_8187 nsftids tid_info 0 8187 NULL
151979 +enable_so_brcms_c_get_header_len_fndecl_8189 brcms_c_get_header_len fndecl 0 8189 NULL
151980 +enable_so_resource_alignment_fndecl_8199 resource_alignment fndecl 0 8199 NULL
151981 +enable_so_sci_dma_rx_push_fndecl_8206 sci_dma_rx_push fndecl 2 8206 NULL
151982 +enable_so_tx_ring_count_fm10k_intfc_8210 tx_ring_count fm10k_intfc 0 8210 NULL
151983 +enable_so_mmap_size_kioctx_8213 mmap_size kioctx 0 8213 NULL
151984 +enable_so_clear_extent_bit_fndecl_8215 clear_extent_bit fndecl 2-3 8215 NULL nohasharray
151985 +enable_so_pci_scan_bus_fndecl_8215 pci_scan_bus fndecl 1 8215 &enable_so_clear_extent_bit_fndecl_8215
151986 +enable_so_be_f_offset_pnfs_block_extent_8222 be_f_offset pnfs_block_extent 0 8222 NULL
151987 +enable_so_eeprom_size_iwl_base_params_8231 eeprom_size iwl_base_params 0 8231 NULL
151988 +enable_so_ir_freecount_xfs_inobt_rec_incore_8237 ir_freecount xfs_inobt_rec_incore 0 8237 NULL
151989 +enable_so_SYSC_llistxattr_fndecl_8238 SYSC_llistxattr fndecl 3 8238 NULL
151990 +enable_so_dump_data_bytes_fndecl_8240 dump_data_bytes fndecl 3 8240 NULL
151991 +enable_so_ocfs2_remove_extent_fndecl_8243 ocfs2_remove_extent fndecl 4-3 8243 NULL
151992 +enable_so_stk_read_fndecl_8245 stk_read fndecl 3 8245 NULL
151993 +enable_so_num_tasks_per_conn_iscsi_kwqe_init1_8249 num_tasks_per_conn iscsi_kwqe_init1 0 8249 NULL
151994 +enable_so_sys_sched_setaffinity_fndecl_8253 sys_sched_setaffinity fndecl 2 8253 NULL
151995 +enable_so_vmw_cursor_update_dmabuf_fndecl_8254 vmw_cursor_update_dmabuf fndecl 4-3 8254 NULL
151996 +enable_so_default_erasesize_fndecl_8255 default_erasesize fndecl 0 8255 NULL
151997 +enable_so_num_alloc_vsi_i40e_pf_8259 num_alloc_vsi i40e_pf 0 8259 NULL
151998 +enable_so_datablkcnt_capi_register_params_8263 datablkcnt capi_register_params 0 8263 NULL
151999 +enable_so_cow_file_range_inline_fndecl_8264 cow_file_range_inline fndecl 4-3 8264 NULL
152000 +enable_so_datablklen_capi_register_params_8275 datablklen capi_register_params 0 8275 NULL nohasharray
152001 +enable_so_proc_scsi_devinfo_write_fndecl_8275 proc_scsi_devinfo_write fndecl 3 8275 &enable_so_datablklen_capi_register_params_8275
152002 +enable_so_cdc_ncm_check_tx_max_fndecl_8278 cdc_ncm_check_tx_max fndecl 0-2 8278 NULL
152003 +enable_so_msg_len_rndis_message_8281 msg_len rndis_message 0 8281 NULL
152004 +enable_so___sg_free_table_fndecl_8283 __sg_free_table fndecl 2 8283 NULL
152005 +enable_so_tail_len_cfg80211_beacon_data_8293 tail_len cfg80211_beacon_data 0 8293 NULL
152006 +enable_so_ns_blocks_per_segment_the_nilfs_8295 ns_blocks_per_segment the_nilfs 0 8295 NULL
152007 +enable_so_c_data_len_pvr2_ioread_8300 c_data_len pvr2_ioread 0 8300 NULL
152008 +enable_so_ath6kl_fwlog_read_fndecl_8310 ath6kl_fwlog_read fndecl 3 8310 NULL
152009 +enable_so_ipath_rcvtidcnt_ipath_devdata_8311 ipath_rcvtidcnt ipath_devdata 0 8311 NULL
152010 +enable_so_wil_read_file_recovery_fndecl_8315 wil_read_file_recovery fndecl 3 8315 NULL
152011 +enable_so_max_data_size_ircomm_tty_cb_8316 max_data_size ircomm_tty_cb 0 8316 NULL nohasharray
152012 +enable_so_group_trans_num_acl_subject_label_8316 group_trans_num acl_subject_label 0 8316 &enable_so_max_data_size_ircomm_tty_cb_8316
152013 +enable_so_offset12_cm_rep_msg_8317 offset12 cm_rep_msg 0 8317 NULL
152014 +enable_so_depth_vim2m_fmt_8319 depth vim2m_fmt 0 8319 NULL nohasharray
152015 +enable_so_msg_len_drm_dp_sideband_msg_hdr_8319 msg_len drm_dp_sideband_msg_hdr 0 8319 &enable_so_depth_vim2m_fmt_8319
152016 +enable_so_sv_max_payload_svc_serv_8322 sv_max_payload svc_serv 0 8322 NULL
152017 +enable_so_vga_video_font_height_vardecl_vgacon_c_8324 vga_video_font_height vardecl_vgacon.c 0 8324 NULL
152018 +enable_so_i2c_wr_fndecl_8325 i2c_wr fndecl 4 8325 NULL
152019 +enable_so_xfs_bmap_longest_free_extent_fndecl_8327 xfs_bmap_longest_free_extent fndecl 2 8327 NULL
152020 +enable_so_vhci_urb_dequeue_fndecl_8333 vhci_urb_dequeue fndecl 3 8333 NULL
152021 +enable_so_early_init_dt_check_for_initrd_fndecl_8345 early_init_dt_check_for_initrd fndecl 1 8345 NULL
152022 +enable_so_disks_stripe_head_8349 disks stripe_head 0 8349 NULL
152023 +enable_so_ch_do_scsi_fndecl_8353 ch_do_scsi fndecl 5 8353 NULL nohasharray
152024 +enable_so_req_pay_size_qlcnic_bc_trans_8353 req_pay_size qlcnic_bc_trans 0 8353 &enable_so_ch_do_scsi_fndecl_8353
152025 +enable_so_rx_size_i2400mu_8374 rx_size i2400mu 0 8374 NULL nohasharray
152026 +enable_so_venus_link_fndecl_8374 venus_link fndecl 5 8374 &enable_so_rx_size_i2400mu_8374
152027 +enable_so_height_deinterlace_q_data_8376 height deinterlace_q_data 0 8376 NULL nohasharray
152028 +enable_so_afs_lookup_filldir_fndecl_8376 afs_lookup_filldir fndecl 5 8376 &enable_so_height_deinterlace_q_data_8376 nohasharray
152029 +enable_so_sctp_ssn_next_fndecl_8376 sctp_ssn_next fndecl 0 8376 &enable_so_afs_lookup_filldir_fndecl_8376
152030 +enable_so_do_writepages_fndecl_8382 do_writepages fndecl 0 8382 NULL
152031 +enable_so_current_read_offset_scif_rb_8387 current_read_offset scif_rb 0 8387 NULL
152032 +enable_so_riva_get_cmap_len_fndecl_8393 riva_get_cmap_len fndecl 0 8393 NULL
152033 +enable_so_sent_iscsi_r2t_info_8394 sent iscsi_r2t_info 0 8394 NULL nohasharray
152034 +enable_so_depth_tc_sfq_qopt_v1_8394 depth tc_sfq_qopt_v1 0 8394 &enable_so_sent_iscsi_r2t_info_8394
152035 +enable_so_ceph_pagelist_append_fndecl_8397 ceph_pagelist_append fndecl 3 8397 NULL
152036 +enable_so_wusb_ccm_mac_fndecl_8404 wusb_ccm_mac fndecl 7 8404 NULL
152037 +enable_so_del_ptr_fndecl_8406 del_ptr fndecl 4 8406 NULL
152038 +enable_so_pkt_size_data_cmd_8407 pkt_size data_cmd 0 8407 NULL
152039 +enable_so_length_ipw_tx_packet_8408 length ipw_tx_packet 0 8408 NULL
152040 +enable_so_bitrate_snd_at73c213_8409 bitrate snd_at73c213 0 8409 NULL
152041 +enable_so_wNdpOutPayloadRemainder_usb_cdc_ncm_ntb_parameters_8415 wNdpOutPayloadRemainder usb_cdc_ncm_ntb_parameters 0 8415 NULL
152042 +enable_so_ring_blocks_vxge_hw_ring_config_8417 ring_blocks vxge_hw_ring_config 0 8417 NULL nohasharray
152043 +enable_so_lbs_lowrssi_read_fndecl_8417 lbs_lowrssi_read fndecl 3 8417 &enable_so_ring_blocks_vxge_hw_ring_config_8417
152044 +enable_so_i_ino_inode_8428 i_ino inode 0 8428 NULL
152045 +enable_so_rtsx_pci_dma_transfer_fndecl_8439 rtsx_pci_dma_transfer fndecl 0 8439 NULL
152046 +enable_so_block_dm_buffer_8440 block dm_buffer 0 8440 NULL
152047 +enable_so_offset_l2tp_session_8443 offset l2tp_session 0 8443 NULL
152048 +enable_so_bfad_iocmd_flash_read_part_fndecl_8446 bfad_iocmd_flash_read_part fndecl 0 8446 NULL nohasharray
152049 +enable_so_frame_size_tlan_list_8446 frame_size tlan_list 0 8446 &enable_so_bfad_iocmd_flash_read_part_fndecl_8446
152050 +enable_so_ql_process_mac_split_rx_intr_fndecl_8452 ql_process_mac_split_rx_intr fndecl 4 8452 NULL nohasharray
152051 +enable_so_len_scifioctl_msg_8452 len scifioctl_msg 0 8452 &enable_so_ql_process_mac_split_rx_intr_fndecl_8452
152052 +enable_so_SyS_lsetxattr_fndecl_8453 SyS_lsetxattr fndecl 4 8453 NULL
152053 +enable_so_parport_pc_probe_port_fndecl_8454 parport_pc_probe_port fndecl 1 8454 NULL
152054 +enable_so_extra_bytes_asc_q_done_info_8460 extra_bytes asc_q_done_info 0 8460 NULL
152055 +enable_so_sg_off_isert_data_buf_8466 sg_off isert_data_buf 0 8466 NULL
152056 +enable_so_free_enic_rfs_flw_tbl_8469 free enic_rfs_flw_tbl 0 8469 NULL
152057 +enable_so_drm_gem_create_mmap_offset_size_fndecl_8471 drm_gem_create_mmap_offset_size fndecl 2 8471 NULL nohasharray
152058 +enable_so_shmem_truncate_range_fndecl_8471 shmem_truncate_range fndecl 2-3 8471 &enable_so_drm_gem_create_mmap_offset_size_fndecl_8471
152059 +enable_so_lbytes_tree_balance_8472 lbytes tree_balance 0 8472 NULL
152060 +enable_so_bpp_plane0_bdisp_fmt_8473 bpp_plane0 bdisp_fmt 0 8473 NULL
152061 +enable_so_snd_seq_device_new_fndecl_8474 snd_seq_device_new fndecl 4 8474 NULL
152062 +enable_so_screen_size_fb_info_8480 screen_size fb_info 0 8480 NULL
152063 +enable_so_length_btrfs_bio_stripe_8481 length btrfs_bio_stripe 0 8481 NULL
152064 +enable_so_i915_gem_get_gtt_alignment_fndecl_8484 i915_gem_get_gtt_alignment fndecl 2 8484 NULL
152065 +enable_so_mt76_ampdu_action_fndecl_8487 mt76_ampdu_action fndecl 5 8487 NULL nohasharray
152066 +enable_so_max_feed_count_dvb_usb_fe_adapter_8487 max_feed_count dvb_usb_fe_adapter 0 8487 &enable_so_mt76_ampdu_action_fndecl_8487
152067 +enable_so_ecryptfs_send_message_locked_fndecl_8490 ecryptfs_send_message_locked fndecl 2 8490 NULL
152068 +enable_so_get_count_order_fndecl_8491 get_count_order fndecl 0 8491 NULL
152069 +enable_so_data_size_ipmi_smi_msg_8493 data_size ipmi_smi_msg 0 8493 NULL
152070 +enable_so_data_write_fndecl_8494 data_write fndecl 3 8494 NULL
152071 +enable_so_isr_rx_procs_read_fndecl_8495 isr_rx_procs_read fndecl 3 8495 NULL
152072 +enable_so_vmw_gmr2_bind_fndecl_8503 vmw_gmr2_bind fndecl 3 8503 NULL
152073 +enable_so_id_da903x_subdev_info_8507 id da903x_subdev_info 0 8507 NULL
152074 +enable_so_usblp_cache_device_id_string_fndecl_8509 usblp_cache_device_id_string fndecl 0 8509 NULL
152075 +enable_so_dy_fb_copyarea_8510 dy fb_copyarea 0 8510 NULL
152076 +enable_so_num_processors_vardecl_8512 num_processors vardecl 0 8512 NULL
152077 +enable_so_follows_u132_command_8527 follows u132_command 0 8527 NULL
152078 +enable_so_alloc_blksz_shift_hfsplus_sb_info_8530 alloc_blksz_shift hfsplus_sb_info 0 8530 NULL
152079 +enable_so_strnlen_user_fndecl_8532 strnlen_user fndecl 0-2 8532 NULL
152080 +enable_so_rtsx_usb_write_register_fndecl_8533 rtsx_usb_write_register fndecl 0 8533 NULL
152081 +enable_so_overlay_out_left_vivid_dev_8540 overlay_out_left vivid_dev 0 8540 NULL
152082 +enable_so_logfs_seek_data_fndecl_8541 logfs_seek_data fndecl 2-0 8541 NULL nohasharray
152083 +enable_so_limit_kmem_cache_8541 limit kmem_cache 0 8541 &enable_so_logfs_seek_data_fndecl_8541
152084 +enable_so_num_gfx_vgastate_8542 num_gfx vgastate 0 8542 NULL
152085 +enable_so_fuse_dir_fsync_fndecl_8543 fuse_dir_fsync fndecl 2-3 8543 NULL
152086 +enable_so_sysminor_aoedev_8549 sysminor aoedev 0 8549 NULL
152087 +enable_so_vfront_porch_videomode_8550 vfront_porch videomode 0 8550 NULL nohasharray
152088 +enable_so_memsize_vardecl_tridentfb_c_8550 memsize vardecl_tridentfb.c 0 8550 &enable_so_vfront_porch_videomode_8550
152089 +enable_so_mailbox_add_intel_sst_drv_8554 mailbox_add intel_sst_drv 0 8554 NULL
152090 +enable_so_SyS_ppoll_fndecl_8572 SyS_ppoll fndecl 2 8572 NULL
152091 +enable_so_clone_bio_fndecl_8573 clone_bio fndecl 3-4 8573 NULL
152092 +enable_so_len_vmxnet3_rx_buf_info_8575 len vmxnet3_rx_buf_info 0 8575 NULL nohasharray
152093 +enable_so_mlx5_ib_update_mtt_fndecl_8575 mlx5_ib_update_mtt fndecl 3-2 8575 &enable_so_len_vmxnet3_rx_buf_info_8575
152094 +enable_so_num_module_param_attrs_8584 num module_param_attrs 0 8584 NULL
152095 +enable_so_max_request_size_brcmf_sdio_dev_8586 max_request_size brcmf_sdio_dev 0 8586 NULL
152096 +enable_so_ddb_output_write_fndecl_8589 ddb_output_write fndecl 3-0 8589 NULL
152097 +enable_so_height_efifb_dmi_info_8596 height efifb_dmi_info 0 8596 NULL nohasharray
152098 +enable_so_gss_unwrap_kerberos_v2_fndecl_8596 gss_unwrap_kerberos_v2 fndecl 2 8596 &enable_so_height_efifb_dmi_info_8596
152099 +enable_so_iwl_dbgfs_disable_ht40_write_fndecl_8599 iwl_dbgfs_disable_ht40_write fndecl 3 8599 NULL
152100 +enable_so_drm_mode_crtc_set_gamma_size_fndecl_8602 drm_mode_crtc_set_gamma_size fndecl 2 8602 NULL
152101 +enable_so_dvb_ringbuffer_free_fndecl_8603 dvb_ringbuffer_free fndecl 0 8603 NULL
152102 +enable_so_size_hw_bank_8604 size hw_bank 0 8604 NULL
152103 +enable_so_uar_scratch_entry_sz_mthca_dev_lim_8606 uar_scratch_entry_sz mthca_dev_lim 0 8606 NULL
152104 +enable_so_hw_token_fusbh200_qh_hw_8607 hw_token fusbh200_qh_hw 0 8607 NULL
152105 +enable_so_seq_buf_commit_fndecl_8608 seq_buf_commit fndecl 2 8608 NULL
152106 +enable_so_irq_spi_device_8610 irq spi_device 0 8610 NULL
152107 +enable_so_kmem_alloc_fndecl_8611 kmem_alloc fndecl 1 8611 NULL
152108 +enable_so_rbd_img_obj_request_submit_fndecl_8613 rbd_img_obj_request_submit fndecl 0 8613 NULL
152109 +enable_so_transfer_size_fndecl_8623 transfer_size fndecl 0-1-2-3 8623 NULL
152110 +enable_so_xattr_permission_fndecl_8624 xattr_permission fndecl 0 8624 NULL
152111 +enable_so_new_dir_fndecl_8636 new_dir fndecl 3 8636 NULL
152112 +enable_so_num_tx_rings_p_up_mlx4_en_priv_8640 num_tx_rings_p_up mlx4_en_priv 0 8640 NULL
152113 +enable_so_in_height_sh_vou_geometry_8644 in_height sh_vou_geometry 0 8644 NULL
152114 +enable_so_block_size_cache_args_8648 block_size cache_args 0 8648 NULL
152115 +enable_so_e_value_offs_ext4_xattr_entry_8650 e_value_offs ext4_xattr_entry 0 8650 NULL
152116 +enable_so_xfs_bmap_worst_indlen_fndecl_8651 xfs_bmap_worst_indlen fndecl 0 8651 NULL
152117 +enable_so_mr_len_rpcrdma_mr_seg_8652 mr_len rpcrdma_mr_seg 0 8652 NULL nohasharray
152118 +enable_so_truncate_size_ceph_mds_reply_inode_8652 truncate_size ceph_mds_reply_inode 0 8652 &enable_so_mr_len_rpcrdma_mr_seg_8652
152119 +enable_so_copy_from_user_toio_fndecl_8653 copy_from_user_toio fndecl 3 8653 NULL
152120 +enable_so_vmcore_size_vardecl_vmcore_c_8660 vmcore_size vardecl_vmcore.c 0 8660 NULL
152121 +enable_so_read_mem_fndecl_8661 read_mem fndecl 3 8661 NULL
152122 +enable_so_SYSC_sethostname_fndecl_8663 SYSC_sethostname fndecl 2 8663 NULL
152123 +enable_so_vbi_end_bttv_8666 vbi_end bttv 0 8666 NULL
152124 +enable_so_ext4_zero_range_fndecl_8667 ext4_zero_range fndecl 2-3 8667 NULL
152125 +enable_so_reserve_pfn_range_fndecl_8670 reserve_pfn_range fndecl 1-2 8670 NULL
152126 +enable_so_vb2_write_fndecl_8671 vb2_write fndecl 3 8671 NULL
152127 +enable_so_len_ipath_diag_xpkt_8673 len ipath_diag_xpkt 0 8673 NULL
152128 +enable_so_write_data_done_iscsi_cmd_8676 write_data_done iscsi_cmd 0 8676 NULL
152129 +enable_so_aml_offset_acpi_rsconvert_info_8678 aml_offset acpi_rsconvert_info 0 8678 NULL
152130 +enable_so_lustre_acl_xattr_merge2posix_fndecl_8683 lustre_acl_xattr_merge2posix fndecl 2 8683 NULL
152131 +enable_so_status_whc_urb_8685 status whc_urb 0 8685 NULL
152132 +enable_so_end_data_prctl_mm_map_8687 end_data prctl_mm_map 0 8687 NULL
152133 +enable_so_mtd_add_partition_fndecl_8688 mtd_add_partition fndecl 3 8688 NULL
152134 +enable_so_env_start_mm_struct_8690 env_start mm_struct 0 8690 NULL nohasharray
152135 +enable_so_bfad_iocmd_qos_set_bw_fndecl_8690 bfad_iocmd_qos_set_bw fndecl 0 8690 &enable_so_env_start_mm_struct_8690
152136 +enable_so_mpeglines_vardecl_cx231xx_417_c_8691 mpeglines vardecl_cx231xx-417.c 0 8691 NULL nohasharray
152137 +enable_so_b_out_mon_reader_bin_8691 b_out mon_reader_bin 0 8691 &enable_so_mpeglines_vardecl_cx231xx_417_c_8691
152138 +enable_so_blk_mq_update_nr_requests_fndecl_8694 blk_mq_update_nr_requests fndecl 2 8694 NULL
152139 +enable_so_bfad_iocmd_cee_attr_fndecl_8696 bfad_iocmd_cee_attr fndecl 0 8696 NULL nohasharray
152140 +enable_so_NumEraseUnits_erase_unit_header_t_8696 NumEraseUnits erase_unit_header_t 0 8696 &enable_so_bfad_iocmd_cee_attr_fndecl_8696
152141 +enable_so_ebcnt_vardecl_readtest_c_8699 ebcnt vardecl_readtest.c 0 8699 NULL
152142 +enable_so_iblock_execute_rw_fndecl_8701 iblock_execute_rw fndecl 3 8701 NULL
152143 +enable_so_ilo_read_fndecl_8704 ilo_read fndecl 3 8704 NULL
152144 +enable_so_hpfs_prefetch_sectors_fndecl_8708 hpfs_prefetch_sectors fndecl 2 8708 NULL
152145 +enable_so_rx_buf_sz_sh_eth_private_8709 rx_buf_sz sh_eth_private 0 8709 NULL nohasharray
152146 +enable_so_max_unmap_blocks_scsi_disk_8709 max_unmap_blocks scsi_disk 0 8709 &enable_so_rx_buf_sz_sh_eth_private_8709 nohasharray
152147 +enable_so_out_ptr_mdc800_data_8709 out_ptr mdc800_data 0 8709 &enable_so_max_unmap_blocks_scsi_disk_8709
152148 +enable_so_ieee80211_if_read_estab_plinks_fndecl_8710 ieee80211_if_read_estab_plinks fndecl 3 8710 NULL
152149 +enable_so_ieee80211_send_auth_fndecl_8716 ieee80211_send_auth fndecl 6 8716 NULL
152150 +enable_so_inode_number_squashfs_dir_header_8723 inode_number squashfs_dir_header 0 8723 NULL
152151 +enable_so_iram_end_intel_sst_drv_8725 iram_end intel_sst_drv 0 8725 NULL
152152 +enable_so_qsfp_read_fndecl_8729 qsfp_read fndecl 2-4-0 8729 NULL
152153 +enable_so_read_hdlc_status_fritz_adapter_8730 read_hdlc_status fritz_adapter 0 8730 NULL nohasharray
152154 +enable_so_disconnect_fndecl_8730 disconnect fndecl 4 8730 &enable_so_read_hdlc_status_fritz_adapter_8730
152155 +enable_so_ext_param_page_length_nand_onfi_params_8736 ext_param_page_length nand_onfi_params 0 8736 NULL
152156 +enable_so___blockdev_direct_IO_fndecl_8738 __blockdev_direct_IO fndecl 5-0 8738 NULL nohasharray
152157 +enable_so_ipgre_header_fndecl_8738 ipgre_header fndecl 3 8738 &enable_so___blockdev_direct_IO_fndecl_8738
152158 +enable_so_size_kmem_cache_8740 size kmem_cache 0 8740 NULL
152159 +enable_so_osc_iocontrol_fndecl_8742 osc_iocontrol fndecl 3 8742 NULL
152160 +enable_so_fd_execute_unmap_fndecl_8745 fd_execute_unmap fndecl 3-2 8745 NULL
152161 +enable_so_perf_ustack_task_size_fndecl_8746 perf_ustack_task_size fndecl 0 8746 NULL
152162 +enable_so_bits_per_pixel_smiapp_pll_8747 bits_per_pixel smiapp_pll 0 8747 NULL
152163 +enable_so___vlan_add_fndecl_8748 __vlan_add fndecl 2 8748 NULL
152164 +enable_so_max_epid_fjes_hw_8751 max_epid fjes_hw 0 8751 NULL
152165 +enable_so_btrfs_double_extent_lock_fndecl_8752 btrfs_double_extent_lock fndecl 5-4-2 8752 NULL
152166 +enable_so__netlbl_catmap_getnode_fndecl_8754 _netlbl_catmap_getnode fndecl 2 8754 NULL
152167 +enable_so_my_skb_align_fndecl_8755 my_skb_align fndecl 2 8755 NULL
152168 +enable_so_format_devstat_counter_fndecl_8757 format_devstat_counter fndecl 3 8757 NULL
152169 +enable_so_snd_pcm_hw_param_set_fndecl_8761 snd_pcm_hw_param_set fndecl 4 8761 NULL
152170 +enable_so_length_acpi_nfit_system_address_8762 length acpi_nfit_system_address 0 8762 NULL
152171 +enable_so_max_swap_info_struct_8767 max swap_info_struct 0 8767 NULL
152172 +enable_so_read_file_beacon_fndecl_8768 read_file_beacon fndecl 3 8768 NULL nohasharray
152173 +enable_so_max_pfn_radeon_vm_manager_8768 max_pfn radeon_vm_manager 0 8768 &enable_so_read_file_beacon_fndecl_8768
152174 +enable_so_ieee80211_if_read_dropped_frames_congestion_fndecl_8776 ieee80211_if_read_dropped_frames_congestion fndecl 3 8776 NULL
152175 +enable_so_gfs2_adjust_quota_fndecl_8777 gfs2_adjust_quota fndecl 2 8777 NULL
152176 +enable_so_data_dma_powermate_device_8783 data_dma powermate_device 0 8783 NULL
152177 +enable_so_rx_tr_cfv_info_8786 rx_tr cfv_info 0 8786 NULL nohasharray
152178 +enable_so___pg_advance_sg_page_iter_8786 __pg_advance sg_page_iter 0 8786 &enable_so_rx_tr_cfv_info_8786
152179 +enable_so_nfs_setup_write_request_fndecl_8793 nfs_setup_write_request fndecl 3-4 8793 NULL nohasharray
152180 +enable_so_mem_swapout_entry_fndecl_8793 mem_swapout_entry fndecl 3 8793 &enable_so_nfs_setup_write_request_fndecl_8793
152181 +enable_so_lcd_vblank_len_atyfb_par_8796 lcd_vblank_len atyfb_par 0 8796 NULL
152182 +enable_so_logic_start_scrub_parity_8798 logic_start scrub_parity 0 8798 NULL
152183 +enable_so_write_ext_msg_fndecl_8804 write_ext_msg fndecl 3 8804 NULL
152184 +enable_so_amdgpu_gart_size_vardecl_8805 amdgpu_gart_size vardecl 0 8805 NULL
152185 +enable_so_info3_wmi_data_hdr_8808 info3 wmi_data_hdr 0 8808 NULL
152186 +enable_so_cfg80211_roamed_fndecl_8811 cfg80211_roamed fndecl 5-7 8811 NULL
152187 +enable_so_nilfs_cpfile_get_checkpoint_fndecl_8812 nilfs_cpfile_get_checkpoint fndecl 2 8812 NULL
152188 +enable_so_ieee80211_hdrlen_fndecl_8814 ieee80211_hdrlen fndecl 0 8814 NULL nohasharray
152189 +enable_so_batadv_tt_global_add_fndecl_8814 batadv_tt_global_add fndecl 4 8814 &enable_so_ieee80211_hdrlen_fndecl_8814
152190 +enable_so_dma_alloc_pages_fndecl_8819 dma_alloc_pages fndecl 3 8819 NULL nohasharray
152191 +enable_so_sys_set_mempolicy_fndecl_8819 sys_set_mempolicy fndecl 3 8819 &enable_so_dma_alloc_pages_fndecl_8819
152192 +enable_so_dma_buf_mmap_fndecl_8825 dma_buf_mmap fndecl 3 8825 NULL
152193 +enable_so_buflow_ring_desc_ex_8829 buflow ring_desc_ex 0 8829 NULL
152194 +enable_so_vsync_len_videomode_8830 vsync_len videomode 0 8830 NULL
152195 +enable_so_wm5110_set_fll_fndecl_8841 wm5110_set_fll fndecl 5 8841 NULL
152196 +enable_so_iscsi_tcp_segment_recv_fndecl_8845 iscsi_tcp_segment_recv fndecl 4-0 8845 NULL
152197 +enable_so_max_packet_size_ftdi_private_8847 max_packet_size ftdi_private 0 8847 NULL
152198 +enable_so_ibufsize_sisusb_usb_data_8851 ibufsize sisusb_usb_data 0 8851 NULL
152199 +enable_so_blkno2_xfs_da_args_8858 blkno2 xfs_da_args 0 8858 NULL
152200 +enable_so_pci_xr17v35x_setup_fndecl_8861 pci_xr17v35x_setup fndecl 4 8861 NULL nohasharray
152201 +enable_so_generic_readlink_fndecl_8861 generic_readlink fndecl 3 8861 &enable_so_pci_xr17v35x_setup_fndecl_8861
152202 +enable_so_alloc_extent_buffer_fndecl_8862 alloc_extent_buffer fndecl 2 8862 NULL
152203 +enable_so_dm_set_target_max_io_len_fndecl_8872 dm_set_target_max_io_len fndecl 2 8872 NULL
152204 +enable_so___memblock_free_early_fndecl_8876 __memblock_free_early fndecl 2-1 8876 NULL
152205 +enable_so_jfs_readpages_fndecl_8877 jfs_readpages fndecl 4 8877 NULL
152206 +enable_so_root_entry_uctp_fndecl_8878 root_entry_uctp fndecl 0 8878 NULL
152207 +enable_so_icsk_ext_hdr_len_inet_connection_sock_8885 icsk_ext_hdr_len inet_connection_sock 0 8885 NULL
152208 +enable_so_playback_frlog_rme32_8891 playback_frlog rme32 0 8891 NULL
152209 +enable_so_via_lock_rate_fndecl_8895 via_lock_rate fndecl 2 8895 NULL nohasharray
152210 +enable_so_sl_tclass_flowlabel_mthca_av_8895 sl_tclass_flowlabel mthca_av 0 8895 &enable_so_via_lock_rate_fndecl_8895
152211 +enable_so_batps_powernow_k8_data_8899 batps powernow_k8_data 0 8899 NULL
152212 +enable_so_byt_serial_setup_fndecl_8903 byt_serial_setup fndecl 4 8903 NULL nohasharray
152213 +enable_so_pages_squashfs_cache_8903 pages squashfs_cache 0 8903 &enable_so_byt_serial_setup_fndecl_8903
152214 +enable_so_bits_per_pixel_fb_var_screeninfo_8906 bits_per_pixel fb_var_screeninfo 0 8906 NULL nohasharray
152215 +enable_so_a_data_exec_8906 a_data exec 0 8906 &enable_so_bits_per_pixel_fb_var_screeninfo_8906
152216 +enable_so_fll_factors_fndecl_8907 fll_factors fndecl 2-3 8907 NULL
152217 +enable_so__xfs_buf_get_pages_fndecl_8920 _xfs_buf_get_pages fndecl 2 8920 NULL
152218 +enable_so_rt2x00debug_read_queue_dump_fndecl_8923 rt2x00debug_read_queue_dump fndecl 3 8923 NULL
152219 +enable_so_data_size_mdp_superblock_1_8925 data_size mdp_superblock_1 0 8925 NULL nohasharray
152220 +enable_so_max_transfer_size_dwc2_core_params_8925 max_transfer_size dwc2_core_params 0 8925 &enable_so_data_size_mdp_superblock_1_8925
152221 +enable_so_fip_flags_fip_header_8926 fip_flags fip_header 0 8926 NULL
152222 +enable_so_nbufread_gspca_dev_8934 nbufread gspca_dev 0 8934 NULL
152223 +enable_so_begin_cmd_fndecl_8941 begin_cmd fndecl 0 8941 NULL
152224 +enable_so_i40e_pci_sriov_enable_fndecl_8949 i40e_pci_sriov_enable fndecl 2 8949 NULL
152225 +enable_so_tree_root_btrfs_root_backup_8950 tree_root btrfs_root_backup 0 8950 NULL
152226 +enable_so_get_arg_page_fndecl_8953 get_arg_page fndecl 2 8953 NULL
152227 +enable_so_rx_metadata_offset_brcmf_msgbuf_8954 rx_metadata_offset brcmf_msgbuf 0 8954 NULL
152228 +enable_so_videobuf_mmap_setup_fndecl_8956 videobuf_mmap_setup fndecl 3 8956 NULL nohasharray
152229 +enable_so_nfrags_pktgen_dev_8956 nfrags pktgen_dev 0 8956 &enable_so_videobuf_mmap_setup_fndecl_8956 nohasharray
152230 +enable_so_stats_read_ul_fndecl_8956 stats_read_ul fndecl 3 8956 &enable_so_nfrags_pktgen_dev_8956
152231 +enable_so_pkt_align_fndecl_8963 pkt_align fndecl 2-3 8963 NULL
152232 +enable_so_fromlen_nfs_symlinkargs_8967 fromlen nfs_symlinkargs 0 8967 NULL
152233 +enable_so_wm8776_field_set_fndecl_8970 wm8776_field_set fndecl 2 8970 NULL
152234 +enable_so_area_length_dmi_system_event_log_8974 area_length dmi_system_event_log 0 8974 NULL
152235 +enable_so_n_bch_control_8979 n bch_control 0 8979 NULL
152236 +enable_so_batadv_bla_rx_fndecl_8980 batadv_bla_rx fndecl 3 8980 NULL
152237 +enable_so_fanout_ubifs_info_8981 fanout ubifs_info 0 8981 NULL
152238 +enable_so_ocfs2_xattr_find_entry_fndecl_8983 ocfs2_xattr_find_entry fndecl 0 8983 NULL
152239 +enable_so_link_duplex_netxen_adapter_8988 link_duplex netxen_adapter 0 8988 NULL
152240 +enable_so_block_begin_dm_cell_key_8992 block_begin dm_cell_key 0 8992 NULL
152241 +enable_so_plip_hard_header_cache_fndecl_8995 plip_hard_header_cache fndecl 3 8995 NULL
152242 +enable_so_vmalloc_user_fndecl_8999 vmalloc_user fndecl 1 8999 NULL
152243 +enable_so_SyS_select_fndecl_9004 SyS_select fndecl 1 9004 NULL
152244 +enable_so_scatterwalk_map_and_copy_fndecl_9005 scatterwalk_map_and_copy fndecl 3 9005 NULL
152245 +enable_so_ib_process_mad_fndecl_9006 ib_process_mad fndecl 3 9006 NULL
152246 +enable_so_vb2_dvb_register_frontend_fndecl_9015 vb2_dvb_register_frontend fndecl 0 9015 NULL
152247 +enable_so_add_dts_thermal_zone_fndecl_9019 add_dts_thermal_zone fndecl 4 9019 NULL
152248 +enable_so_pcan_usb_decode_data_fndecl_9023 pcan_usb_decode_data fndecl 2 9023 NULL nohasharray
152249 +enable_so_bfad_iocmd_diag_dport_show_fndecl_9023 bfad_iocmd_diag_dport_show fndecl 0 9023 &enable_so_pcan_usb_decode_data_fndecl_9023
152250 +enable_so_cdrom_read_cd_fndecl_9024 cdrom_read_cd fndecl 5-4 9024 NULL nohasharray
152251 +enable_so_xen_del_extra_mem_fndecl_9024 xen_del_extra_mem fndecl 2-1 9024 &enable_so_cdrom_read_cd_fndecl_9024
152252 +enable_so_report_desc_size_mousevsc_dev_9027 report_desc_size mousevsc_dev 0 9027 NULL
152253 +enable_so_nextread_isowbuf_t_9028 nextread isowbuf_t 0 9028 NULL nohasharray
152254 +enable_so_offset_gro_remcsum_9028 offset gro_remcsum 0 9028 &enable_so_nextread_isowbuf_t_9028
152255 +enable_so_t4_alloc_mem_fndecl_9029 t4_alloc_mem fndecl 1 9029 NULL
152256 +enable_so_wDescriptorLength_hid_class_descriptor_9030 wDescriptorLength hid_class_descriptor 0 9030 NULL nohasharray
152257 +enable_so_id_port_9030 id port 0 9030 &enable_so_wDescriptorLength_hid_class_descriptor_9030
152258 +enable_so_svc_create_pooled_fndecl_9043 svc_create_pooled fndecl 2 9043 NULL
152259 +enable_so_raid_disks_geom_9044 raid_disks geom 0 9044 NULL
152260 +enable_so_ath6kl_wmi_delete_pstream_cmd_fndecl_9048 ath6kl_wmi_delete_pstream_cmd fndecl 2 9048 NULL
152261 +enable_so_bounce_sgl_count_storvsc_cmd_request_9051 bounce_sgl_count storvsc_cmd_request 0 9051 NULL
152262 +enable_so__drbd_bm_find_next_fndecl_9063 _drbd_bm_find_next fndecl 2-0 9063 NULL nohasharray
152263 +enable_so_keys_bset_9063 keys bset 0 9063 &enable_so__drbd_bm_find_next_fndecl_9063 nohasharray
152264 +enable_so_tx_buf_sz_iadev_priv_9063 tx_buf_sz iadev_priv 0 9063 &enable_so_keys_bset_9063 nohasharray
152265 +enable_so_send_mpa_reply_fndecl_9063 send_mpa_reply fndecl 3 9063 &enable_so_tx_buf_sz_iadev_priv_9063 nohasharray
152266 +enable_so_error_rx_cmplt_db_overflow_cnt_read_fndecl_9063 error_rx_cmplt_db_overflow_cnt_read fndecl 3 9063 &enable_so_send_mpa_reply_fndecl_9063
152267 +enable_so_logical_maximum_hid_field_9067 logical_maximum hid_field 0 9067 NULL
152268 +enable_so_buflen_compat_xfs_fsop_attrlist_handlereq_9071 buflen compat_xfs_fsop_attrlist_handlereq 0 9071 NULL
152269 +enable_so_current_sg_offset_msb_data_9075 current_sg_offset msb_data 0 9075 NULL
152270 +enable_so_nilfs_dat_read_fndecl_9076 nilfs_dat_read fndecl 2 9076 NULL nohasharray
152271 +enable_so_uniqueid_cifsInodeInfo_9076 uniqueid cifsInodeInfo 0 9076 &enable_so_nilfs_dat_read_fndecl_9076
152272 +enable_so_advertised_mtu_tipc_link_9077 advertised_mtu tipc_link 0 9077 NULL
152273 +enable_so_out_int_pipe_usbtest_dev_9078 out_int_pipe usbtest_dev 0 9078 NULL nohasharray
152274 +enable_so_bfad_iocmd_fcpim_throttle_query_fndecl_9078 bfad_iocmd_fcpim_throttle_query fndecl 0 9078 &enable_so_out_int_pipe_usbtest_dev_9078 nohasharray
152275 +enable_so_dispatch_ioctl_fndecl_9078 dispatch_ioctl fndecl 2 9078 &enable_so_bfad_iocmd_fcpim_throttle_query_fndecl_9078
152276 +enable_so_count_afs_call_9081 count afs_call 0 9081 NULL nohasharray
152277 +enable_so_sel_read_initcon_fndecl_9081 sel_read_initcon fndecl 3 9081 &enable_so_count_afs_call_9081
152278 +enable_so_start_brk_mm_struct_9085 start_brk mm_struct 0 9085 NULL nohasharray
152279 +enable_so_iwl_dbgfs_tof_range_abort_read_fndecl_9085 iwl_dbgfs_tof_range_abort_read fndecl 3 9085 &enable_so_start_brk_mm_struct_9085
152280 +enable_so_inet_create_fndecl_9087 inet_create fndecl 3 9087 NULL nohasharray
152281 +enable_so_optlen_rdma_ucm_set_option_9087 optlen rdma_ucm_set_option 0 9087 &enable_so_inet_create_fndecl_9087
152282 +enable_so_event_count_Fsm_9088 event_count Fsm 0 9088 NULL
152283 +enable_so_width_fb_fillrect_9090 width fb_fillrect 0 9090 NULL nohasharray
152284 +enable_so_sizeimage_bdisp_frame_9090 sizeimage bdisp_frame 0 9090 &enable_so_width_fb_fillrect_9090
152285 +enable_so_xfs_iext_add_indirect_multi_fndecl_9091 xfs_iext_add_indirect_multi fndecl 3-4 9091 NULL
152286 +enable_so_vmci_qp_alloc_fndecl_9094 vmci_qp_alloc fndecl 5-3 9094 NULL
152287 +enable_so_limit_parsed_partitions_9099 limit parsed_partitions 0 9099 NULL
152288 +enable_so_logical_id_i40e_aqc_list_capabilities_element_resp_9102 logical_id i40e_aqc_list_capabilities_element_resp 0 9102 NULL
152289 +enable_so_keylen_ieee80211_key_conf_9103 keylen ieee80211_key_conf 0 9103 NULL
152290 +enable_so_fragment_size_cfrfml_9106 fragment_size cfrfml 0 9106 NULL nohasharray
152291 +enable_so_s_blocks_count_lo_ext4_super_block_9106 s_blocks_count_lo ext4_super_block 0 9106 &enable_so_fragment_size_cfrfml_9106
152292 +enable_so_x38_channel_num_vardecl_x38_edac_c_9109 x38_channel_num vardecl_x38_edac.c 0 9109 NULL
152293 +enable_so_pvr2_stream_set_buffer_count_fndecl_9116 pvr2_stream_set_buffer_count fndecl 2 9116 NULL
152294 +enable_so_qla4_82xx_pci_mem_write_2M_fndecl_9117 qla4_82xx_pci_mem_write_2M fndecl 2 9117 NULL
152295 +enable_so_numEntries__ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table_9118 numEntries _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table 0 9118 NULL
152296 +enable_so_break_ksm_fndecl_9124 break_ksm fndecl 2 9124 NULL
152297 +enable_so_reiserfs_direct_IO_fndecl_9131 reiserfs_direct_IO fndecl 3 9131 NULL
152298 +enable_so_neigh_priv_len_net_device_9133 neigh_priv_len net_device 0 9133 NULL
152299 +enable_so_rx_buf_sz_vardecl_r8169_c_9136 rx_buf_sz vardecl_r8169.c 0 9136 NULL
152300 +enable_so_read_buffer_length_adu_device_9140 read_buffer_length adu_device 0 9140 NULL
152301 +enable_so_cdce925_pll_round_rate_fndecl_9145 cdce925_pll_round_rate fndecl 2 9145 NULL
152302 +enable_so_size_ip6t_replace_9148 size ip6t_replace 0 9148 NULL
152303 +enable_so_p1_max_aptina_pll_limits_9149 p1_max aptina_pll_limits 0 9149 NULL
152304 +enable_so_cifs_uncached_read_into_pages_fndecl_9150 cifs_uncached_read_into_pages fndecl 3 9150 NULL
152305 +enable_so_ext_capab_len_station_parameters_9152 ext_capab_len station_parameters 0 9152 NULL
152306 +enable_so_fill_readbuf_fndecl_9155 fill_readbuf fndecl 3 9155 NULL
152307 +enable_so_depth_saa7134_format_9167 depth saa7134_format 0 9167 NULL nohasharray
152308 +enable_so_rds_iw_sysctl_max_send_wr_vardecl_9167 rds_iw_sysctl_max_send_wr vardecl 0 9167 &enable_so_depth_saa7134_format_9167 nohasharray
152309 +enable_so_learn_buffer_len_vardecl_gracl_learn_c_9167 learn_buffer_len vardecl_gracl_learn.c 0 9167 &enable_so_rds_iw_sysctl_max_send_wr_vardecl_9167
152310 +enable_so_ib_qib_max_sges_vardecl_9168 ib_qib_max_sges vardecl 0 9168 NULL
152311 +enable_so_channels_ua101_stream_9173 channels ua101_stream 0 9173 NULL
152312 +enable_so_alloc_queue_pairs_i40e_vsi_9174 alloc_queue_pairs i40e_vsi 0 9174 NULL
152313 +enable_so_offset_hv_multipage_buffer_9175 offset hv_multipage_buffer 0 9175 NULL
152314 +enable_so___ext4_handle_dirty_super_fndecl_9177 __ext4_handle_dirty_super fndecl 0 9177 NULL nohasharray
152315 +enable_so_hid_input_report_fndecl_9177 hid_input_report fndecl 4 9177 &enable_so___ext4_handle_dirty_super_fndecl_9177
152316 +enable_so_b_size_buffer_head_9178 b_size buffer_head 0 9178 NULL
152317 +enable_so_max_vfio_pci_fill_info_9182 max vfio_pci_fill_info 0 9182 NULL
152318 +enable_so_form_cm_frame_fndecl_9184 form_cm_frame fndecl 4-6 9184 NULL
152319 +enable_so_device_sis_chipset_9193 device sis_chipset 0 9193 NULL
152320 +enable_so_stb0899_write_regs_fndecl_9197 stb0899_write_regs fndecl 4 9197 NULL nohasharray
152321 +enable_so_wiimote_cmd_read_fndecl_9197 wiimote_cmd_read fndecl 4 9197 &enable_so_stb0899_write_regs_fndecl_9197
152322 +enable_so_buflen_xfs_fsop_attrlist_handlereq_9199 buflen xfs_fsop_attrlist_handlereq 0 9199 NULL
152323 +enable_so_efx_rx_packet_fndecl_9200 efx_rx_packet fndecl 4-3 9200 NULL
152324 +enable_so_byte_per_page_nand_onfi_params_9202 byte_per_page nand_onfi_params 0 9202 NULL
152325 +enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 tx_max_datagrams cdc_ncm_ctx 0 9206 NULL nohasharray
152326 +enable_so_proto_tun_pi_9206 proto tun_pi 0 9206 &enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 nohasharray
152327 +enable_so_max_pages_ib_fmr_attr_9206 max_pages ib_fmr_attr 0 9206 &enable_so_proto_tun_pi_9206
152328 +enable_so_hw_token_ehci_qh_hw_9208 hw_token ehci_qh_hw 0 9208 NULL
152329 +enable_so_file_id_object_info_9209 file_id object_info 0 9209 NULL
152330 +enable_so_mesh_rx_path_sel_frame_fndecl_9210 mesh_rx_path_sel_frame fndecl 3 9210 NULL
152331 +enable_so_sae_data_len_cfg80211_auth_request_9212 sae_data_len cfg80211_auth_request 0 9212 NULL
152332 +enable_so_ide_driver_proc_write_fndecl_9214 ide_driver_proc_write fndecl 3 9214 NULL
152333 +enable_so_zram_meta_alloc_fndecl_9221 zram_meta_alloc fndecl 2 9221 NULL
152334 +enable_so_pcicfg_size_sst_pdata_9222 pcicfg_size sst_pdata 0 9222 NULL
152335 +enable_so_ext4_create_inline_data_fndecl_9231 ext4_create_inline_data fndecl 3 9231 NULL
152336 +enable_so_supported_rates_len_station_parameters_9235 supported_rates_len station_parameters 0 9235 NULL
152337 +enable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 3 9236 NULL
152338 +enable_so_i2400mu_rx_size_grow_fndecl_9246 i2400mu_rx_size_grow fndecl 0 9246 NULL
152339 +enable_so_phys_pmd_init_fndecl_9251 phys_pmd_init fndecl 0-2-3 9251 NULL nohasharray
152340 +enable_so_vram_start_vml_info_9251 vram_start vml_info 0 9251 &enable_so_phys_pmd_init_fndecl_9251
152341 +enable_so_n_sbufs_stk_camera_9256 n_sbufs stk_camera 0 9256 NULL
152342 +enable_so_sk_priority_sock_9258 sk_priority sock 0 9258 NULL
152343 +enable_so_alloc_order_ioatdma_chan_9262 alloc_order ioatdma_chan 0 9262 NULL
152344 +enable_so_buffer_size_snd_rawmidi_runtime_9267 buffer_size snd_rawmidi_runtime 0 9267 NULL
152345 +enable_so_acpi_ns_build_normalized_path_fndecl_9269 acpi_ns_build_normalized_path fndecl 0 9269 NULL
152346 +enable_so_wl1251_sdio_write_fndecl_9274 wl1251_sdio_write fndecl 4 9274 NULL
152347 +enable_so_ResponseDataLength__MSG_SMP_PASSTHROUGH_REPLY_9278 ResponseDataLength _MSG_SMP_PASSTHROUGH_REPLY 0 9278 NULL
152348 +enable_so_nr_pages_start_info_9283 nr_pages start_info 0 9283 NULL
152349 +enable_so_lbs_failcount_read_fndecl_9284 lbs_failcount_read fndecl 3 9284 NULL
152350 +enable_so_offset_ivtv_dma_page_info_9286 offset ivtv_dma_page_info 0 9286 NULL
152351 +enable_so_rx_cmd_ep_usb_card_rec_9290 rx_cmd_ep usb_card_rec 0 9290 NULL nohasharray
152352 +enable_so_buffer_bytes_st_buffer_9290 buffer_bytes st_buffer 0 9290 &enable_so_rx_cmd_ep_usb_card_rec_9290 nohasharray
152353 +enable_so_format_reserved_ms_boot_header_9290 format_reserved ms_boot_header 0 9290 &enable_so_buffer_bytes_st_buffer_9290
152354 +enable_so_cxd2820r_wr_regs_fndecl_9307 cxd2820r_wr_regs fndecl 4 9307 NULL
152355 +enable_so_sys_splice_fndecl_9308 sys_splice fndecl 5 9308 NULL
152356 +enable_so_sctp_setsockopt_context_fndecl_9312 sctp_setsockopt_context fndecl 3 9312 NULL
152357 +enable_so_fcoe_conn_context_id_fcoe_kcqe_9316 fcoe_conn_context_id fcoe_kcqe 0 9316 NULL
152358 +enable_so_find_mergeable_fndecl_9318 find_mergeable fndecl 2 9318 NULL
152359 +enable_so_size_dt_struct_fdt_header_9319 size_dt_struct fdt_header 0 9319 NULL
152360 +enable_so_in_packet_size_pcm_runtime_9321 in_packet_size pcm_runtime 0 9321 NULL
152361 +enable_so_pages_in_io_dio_submit_9326 pages_in_io dio_submit 0 9326 NULL
152362 +enable_so__wm8994_set_fll_fndecl_9332 _wm8994_set_fll fndecl 4-5 9332 NULL nohasharray
152363 +enable_so_sys_mincore_fndecl_9332 sys_mincore fndecl 1-2 9332 &enable_so__wm8994_set_fll_fndecl_9332
152364 +enable_so_rbuf_fill_count_slgt_info_9335 rbuf_fill_count slgt_info 0 9335 NULL
152365 +enable_so_ttm_bo_ioremap_fndecl_9337 ttm_bo_ioremap fndecl 3-2 9337 NULL
152366 +enable_so_htree_dirblock_to_tree_fndecl_9339 htree_dirblock_to_tree fndecl 3 9339 NULL
152367 +enable_so_di_size_xfs_icdinode_9350 di_size xfs_icdinode 0 9350 NULL
152368 +enable_so_tse_init_rx_buffer_fndecl_9354 tse_init_rx_buffer fndecl 3 9354 NULL
152369 +enable_so_offset_ore_io_state_9357 offset ore_io_state 0 9357 NULL
152370 +enable_so_stv6110x_write_regs_fndecl_9359 stv6110x_write_regs fndecl 4 9359 NULL
152371 +enable_so_qib_qp_rcv_fndecl_9365 qib_qp_rcv fndecl 5 9365 NULL
152372 +enable_so_compat_sys_get_mempolicy_fndecl_9366 compat_sys_get_mempolicy fndecl 4-3 9366 NULL
152373 +enable_so_mt2060_writeregs_fndecl_9371 mt2060_writeregs fndecl 3 9371 NULL nohasharray
152374 +enable_so_depth_read_fndecl_9371 depth_read fndecl 3 9371 &enable_so_mt2060_writeregs_fndecl_9371
152375 +enable_so_le_adv_data_len_hci_conn_9377 le_adv_data_len hci_conn 0 9377 NULL
152376 +enable_so_mss_clamp_tcp_options_received_9378 mss_clamp tcp_options_received 0 9378 NULL
152377 +enable_so_fix_priv_head_fndecl_9385 fix_priv_head fndecl 2 9385 NULL
152378 +enable_so_nr_uart_driver_9391 nr uart_driver 0 9391 NULL
152379 +enable_so_dr_pre_altera_jtag_9393 dr_pre altera_jtag 0 9393 NULL
152380 +enable_so_ubifs_tnc_add_nm_fndecl_9397 ubifs_tnc_add_nm fndecl 4-5 9397 NULL
152381 +enable_so_sr_bg_blkno_ocfs2_suballoc_result_9401 sr_bg_blkno ocfs2_suballoc_result 0 9401 NULL
152382 +enable_so_caif_seqpkt_recvmsg_fndecl_9402 caif_seqpkt_recvmsg fndecl 3 9402 NULL
152383 +enable_so_exclude_mem_range_fndecl_9404 exclude_mem_range fndecl 2-3 9404 NULL
152384 +enable_so_blk_queue_physical_block_size_fndecl_9410 blk_queue_physical_block_size fndecl 2 9410 NULL
152385 +enable_so_data_start_dm_ioctl_9412 data_start dm_ioctl 0 9412 NULL
152386 +enable_so_return_size_drm_amdgpu_info_9414 return_size drm_amdgpu_info 0 9414 NULL
152387 +enable_so_acpi_ex_system_memory_space_handler_fndecl_9419 acpi_ex_system_memory_space_handler fndecl 2 9419 NULL
152388 +enable_so_r592_read_fifo_pio_fndecl_9421 r592_read_fifo_pio fndecl 3 9421 NULL nohasharray
152389 +enable_so_rocker_dma_ring_create_fndecl_9421 rocker_dma_ring_create fndecl 3 9421 &enable_so_r592_read_fifo_pio_fndecl_9421
152390 +enable_so_dlen_garp_attr_9422 dlen garp_attr 0 9422 NULL
152391 +enable_so_dgap_config_get_num_prts_fndecl_9435 dgap_config_get_num_prts fndecl 0 9435 NULL
152392 +enable_so_ext4_restore_inline_data_fndecl_9436 ext4_restore_inline_data fndecl 5 9436 NULL
152393 +enable_so_height_stk1160_9446 height stk1160 0 9446 NULL
152394 +enable_so_mtdchar_readoob_fndecl_9459 mtdchar_readoob fndecl 4-3 9459 NULL
152395 +enable_so_si21_writeregs_fndecl_9460 si21_writeregs fndecl 4 9460 NULL
152396 +enable_so_async_wrap_skb_fndecl_9465 async_wrap_skb fndecl 0 9465 NULL
152397 +enable_so_kvm_mmu_page_fault_fndecl_9470 kvm_mmu_page_fault fndecl 2 9470 NULL
152398 +enable_so_vmf_insert_pfn_pmd_fndecl_9481 vmf_insert_pfn_pmd fndecl 4 9481 NULL
152399 +enable_so_height_cobalt_stream_9490 height cobalt_stream 0 9490 NULL nohasharray
152400 +enable_so_lbs_debugfs_read_fndecl_9490 lbs_debugfs_read fndecl 3 9490 &enable_so_height_cobalt_stream_9490
152401 +enable_so_qnx6_long_match_fndecl_9502 qnx6_long_match fndecl 0 9502 NULL
152402 +enable_so_bpp_mcam_format_struct_9503 bpp mcam_format_struct 0 9503 NULL
152403 +enable_so_maxdev_vardecl_slcan_c_9507 maxdev vardecl_slcan.c 0 9507 NULL
152404 +enable_so_zlib_updatewindow_fndecl_9508 zlib_updatewindow fndecl 2 9508 NULL
152405 +enable_so_fillonedir_fndecl_9511 fillonedir fndecl 3 9511 NULL
152406 +enable_so_s_clustersize_bits_ocfs2_super_block_9516 s_clustersize_bits ocfs2_super_block 0 9516 NULL nohasharray
152407 +enable_so_zero_disk_area_fndecl_9516 zero_disk_area fndecl 2 9516 &enable_so_s_clustersize_bits_ocfs2_super_block_9516
152408 +enable_so_pcm512x_find_sck_fndecl_9522 pcm512x_find_sck fndecl 0 9522 NULL
152409 +enable_so_kdb_max_commands_vardecl_kdb_main_c_9529 kdb_max_commands vardecl_kdb_main.c 0 9529 NULL
152410 +enable_so_cap_width_usbtv_norm_params_9538 cap_width usbtv_norm_params 0 9538 NULL
152411 +enable_so_nilfs_mdt_forget_block_fndecl_9543 nilfs_mdt_forget_block fndecl 2 9543 NULL
152412 +enable_so_smk_read_doi_fndecl_9550 smk_read_doi fndecl 3 9550 NULL
152413 +enable_so___bio_alloc_fndecl_9552 __bio_alloc fndecl 2-3 9552 NULL
152414 +enable_so_rt2x00queue_insert_l2pad_fndecl_9553 rt2x00queue_insert_l2pad fndecl 2 9553 NULL
152415 +enable_so_display_byte_stride_vivid_dev_9554 display_byte_stride vivid_dev 0 9554 NULL
152416 +enable_so_rx_skb_reserve_vardecl_he_c_9559 rx_skb_reserve vardecl_he.c 0 9559 NULL
152417 +enable_so_glocont_endpoint_keyspan_device_details_9560 glocont_endpoint keyspan_device_details 0 9560 NULL
152418 +enable_so_vlan_alloc_res_fndecl_9561 vlan_alloc_res fndecl 7 9561 NULL
152419 +enable_so_p9_client_statsize_fndecl_9568 p9_client_statsize fndecl 0 9568 NULL nohasharray
152420 +enable_so_ath10k_write_fw_dbglog_fndecl_9568 ath10k_write_fw_dbglog fndecl 3 9568 &enable_so_p9_client_statsize_fndecl_9568
152421 +enable_so_page_order_cas_9572 page_order cas 0 9572 NULL nohasharray
152422 +enable_so_pwr_sleep_time_avg_read_fndecl_9572 pwr_sleep_time_avg_read fndecl 3 9572 &enable_so_page_order_cas_9572
152423 +enable_so_width_drm_mode_create_dumb_9575 width drm_mode_create_dumb 0 9575 NULL
152424 +enable_so_sctp_setsockopt_auth_chunk_fndecl_9576 sctp_setsockopt_auth_chunk fndecl 3 9576 NULL
152425 +enable_so_mpage_add_bh_to_extent_fndecl_9577 mpage_add_bh_to_extent fndecl 2 9577 NULL
152426 +enable_so_mode_buf_len_udl_device_9578 mode_buf_len udl_device 0 9578 NULL nohasharray
152427 +enable_so_of_gpio_named_count_fndecl_9578 of_gpio_named_count fndecl 0 9578 &enable_so_mode_buf_len_udl_device_9578
152428 +enable_so_cfg80211_rx_mgmt_fndecl_9583 cfg80211_rx_mgmt fndecl 5 9583 NULL
152429 +enable_so_amdgpu_fence_wait_any_fndecl_9585 amdgpu_fence_wait_any fndecl 3 9585 NULL
152430 +enable_so_crtc_vblank_start_drm_display_mode_9587 crtc_vblank_start drm_display_mode 0 9587 NULL
152431 +enable_so_dn_create_fndecl_9590 dn_create fndecl 3 9590 NULL
152432 +enable_so_wm5102_set_fll_fndecl_9596 wm5102_set_fll fndecl 5 9596 NULL nohasharray
152433 +enable_so_get_kobj_path_length_fndecl_9596 get_kobj_path_length fndecl 0 9596 &enable_so_wm5102_set_fll_fndecl_9596
152434 +enable_so_torch_max_current_as3645a_platform_data_9597 torch_max_current as3645a_platform_data 0 9597 NULL
152435 +enable_so_writerids_fndecl_9601 writerids fndecl 0 9601 NULL
152436 +enable_so_ileb_len_ubifs_info_9607 ileb_len ubifs_info 0 9607 NULL
152437 +enable_so_skd_max_pass_thru_vardecl_skd_main_c_9608 skd_max_pass_thru vardecl_skd_main.c 0 9608 NULL
152438 +enable_so_free_bg_ocfs2_cached_block_free_9619 free_bg ocfs2_cached_block_free 0 9619 NULL
152439 +enable_so_size_scif_rb_9622 size scif_rb 0 9622 NULL
152440 +enable_so_blk_end_request_err_fndecl_9623 blk_end_request_err fndecl 2 9623 NULL
152441 +enable_so_hpfs_ea_write_fndecl_9626 hpfs_ea_write fndecl 5-4-2 9626 NULL
152442 +enable_so_num_fcxps_vardecl_9630 num_fcxps vardecl 0 9630 NULL
152443 +enable_so_ubifs_wbuf_seek_nolock_fndecl_9634 ubifs_wbuf_seek_nolock fndecl 3 9634 NULL
152444 +enable_so_fc_host_post_vendor_event_fndecl_9636 fc_host_post_vendor_event fndecl 3 9636 NULL
152445 +enable_so_copy_to_iter_fndecl_9638 copy_to_iter fndecl 0-2 9638 NULL
152446 +enable_so_fd_do_prot_unmap_fndecl_9639 fd_do_prot_unmap fndecl 3 9639 NULL
152447 +enable_so_batadv_handle_announce_fndecl_9642 batadv_handle_announce fndecl 4 9642 NULL
152448 +enable_so_num_nodes_hdac_device_9647 num_nodes hdac_device 0 9647 NULL
152449 +enable_so_dma_tx_size_stmmac_priv_9653 dma_tx_size stmmac_priv 0 9653 NULL
152450 +enable_so_height_drm_vmw_size_9654 height drm_vmw_size 0 9654 NULL nohasharray
152451 +enable_so_dict_size_lzma_header_9654 dict_size lzma_header 0 9654 &enable_so_height_drm_vmw_size_9654
152452 +enable_so_x509_akid_note_name_fndecl_9656 x509_akid_note_name fndecl 5 9656 NULL
152453 +enable_so_wm8400_register_regulator_fndecl_9660 wm8400_register_regulator fndecl 2 9660 NULL
152454 +enable_so_hugetlb_cow_fndecl_9665 hugetlb_cow fndecl 3 9665 NULL
152455 +enable_so_usnic_debugfs_buildinfo_read_fndecl_9667 usnic_debugfs_buildinfo_read fndecl 3 9667 NULL
152456 +enable_so_hr_slots_per_page_o2hb_region_9668 hr_slots_per_page o2hb_region 0 9668 NULL
152457 +enable_so_PCI_Address_DAC960_Controller_9669 PCI_Address DAC960_Controller 0 9669 NULL
152458 +enable_so_sctp_setsockopt_rtoinfo_fndecl_9678 sctp_setsockopt_rtoinfo fndecl 3 9678 NULL
152459 +enable_so_xen_blkif_max_ring_order_vardecl_xen_blkfront_c_9681 xen_blkif_max_ring_order vardecl_xen-blkfront.c 0 9681 NULL
152460 +enable_so_length_hpfs_dirent_9682 length hpfs_dirent 0 9682 NULL
152461 +enable_so_plip_hard_header_fndecl_9684 plip_hard_header fndecl 3-6 9684 NULL nohasharray
152462 +enable_so_scrub_pages_for_parity_fndecl_9684 scrub_pages_for_parity fndecl 3-2-4 9684 &enable_so_plip_hard_header_fndecl_9684
152463 +enable_so_osd_req_decode_sense_full_fndecl_9685 osd_req_decode_sense_full fndecl 0 9685 NULL
152464 +enable_so_s3fwrn5_fw_prep_msg_fndecl_9686 s3fwrn5_fw_prep_msg fndecl 6 9686 NULL nohasharray
152465 +enable_so_di_height_logfs_disk_inode_9686 di_height logfs_disk_inode 0 9686 &enable_so_s3fwrn5_fw_prep_msg_fndecl_9686 nohasharray
152466 +enable_so_read_packet_length_lego_usb_tower_9686 read_packet_length lego_usb_tower 0 9686 &enable_so_di_height_logfs_disk_inode_9686
152467 +enable_so_ba_param_set_wmi_rcp_addba_req_event_9687 ba_param_set wmi_rcp_addba_req_event 0 9687 NULL
152468 +enable_so_xresstep_svga_fb_format_9690 xresstep svga_fb_format 0 9690 NULL
152469 +enable_so_max_num_pmkids_wiphy_9691 max_num_pmkids wiphy 0 9691 NULL
152470 +enable_so_fill_from_dev_buffer_fndecl_9695 fill_from_dev_buffer fndecl 3 9695 NULL
152471 +enable_so_adp5589_build_gpiomap_fndecl_9697 adp5589_build_gpiomap fndecl 0 9697 NULL
152472 +enable_so__fdt_resize_property_fndecl_9703 _fdt_resize_property fndecl 2-4 9703 NULL
152473 +enable_so_srp_add_port_fndecl_9704 srp_add_port fndecl 2 9704 NULL nohasharray
152474 +enable_so_phys_addr_ntb_transport_mw_9704 phys_addr ntb_transport_mw 0 9704 &enable_so_srp_add_port_fndecl_9704
152475 +enable_so_payload_len_cfg80211_wowlan_tcp_9706 payload_len cfg80211_wowlan_tcp 0 9706 NULL nohasharray
152476 +enable_so_tty_insert_flip_string_flags_fndecl_9706 tty_insert_flip_string_flags fndecl 4 9706 &enable_so_payload_len_cfg80211_wowlan_tcp_9706
152477 +enable_so_sr_write_async_fndecl_9707 sr_write_async fndecl 3 9707 NULL
152478 +enable_so_affs_direct_IO_fndecl_9712 affs_direct_IO fndecl 3 9712 NULL
152479 +enable_so_xprt_rdma_max_inline_write_vardecl_transport_c_9715 xprt_rdma_max_inline_write vardecl_transport.c 0 9715 NULL
152480 +enable_so_page_size_dataflash_9722 page_size dataflash 0 9722 NULL nohasharray
152481 +enable_so_tx_ringsz_alx_priv_9722 tx_ringsz alx_priv 0 9722 &enable_so_page_size_dataflash_9722
152482 +enable_so_setup_port_fndecl_9724 setup_port fndecl 5-4 9724 NULL nohasharray
152483 +enable_so_ieee80211_build_preq_ies_band_fndecl_9724 ieee80211_build_preq_ies_band fndecl 0 9724 &enable_so_setup_port_fndecl_9724 nohasharray
152484 +enable_so_start_bidx_of_node_fndecl_9724 start_bidx_of_node fndecl 0-1 9724 &enable_so_ieee80211_build_preq_ies_band_fndecl_9724
152485 +enable_so_mask_myri10ge_tx_buf_9725 mask myri10ge_tx_buf 0 9725 NULL
152486 +enable_so_vicam_control_msg_fndecl_9727 vicam_control_msg fndecl 0 9727 NULL
152487 +enable_so_qsfp_2_read_fndecl_9744 qsfp_2_read fndecl 3 9744 NULL
152488 +enable_so_blkdev_fsync_fndecl_9745 blkdev_fsync fndecl 2-3 9745 NULL
152489 +enable_so_bnx2x_mcast_handle_current_cmd_fndecl_9747 bnx2x_mcast_handle_current_cmd fndecl 0 9747 NULL
152490 +enable_so___alloc_bootmem_fndecl_9753 __alloc_bootmem fndecl 2-1-3 9753 NULL
152491 +enable_so_hbuf_free_slots_mei_hw_ops_9760 hbuf_free_slots mei_hw_ops 0 9760 NULL
152492 +enable_so_hidraw_write_fndecl_9763 hidraw_write fndecl 3 9763 NULL nohasharray
152493 +enable_so_buffer_length_floppy_raw_cmd_9763 buffer_length floppy_raw_cmd 0 9763 &enable_so_hidraw_write_fndecl_9763
152494 +enable_so_index_sdio_uart_port_9769 index sdio_uart_port 0 9769 NULL
152495 +enable_so_stat_ethoc_bd_9775 stat ethoc_bd 0 9775 NULL nohasharray
152496 +enable_so_dvb_ringbuffer_write_fndecl_9775 dvb_ringbuffer_write fndecl 3-0 9775 &enable_so_stat_ethoc_bd_9775
152497 +enable_so_vmlfb_alloc_vram_area_fndecl_9776 vmlfb_alloc_vram_area fndecl 2 9776 NULL
152498 +enable_so_ctl_dev_e752x_dev_info_9777 ctl_dev e752x_dev_info 0 9777 NULL
152499 +enable_so_encap_hlen_ip_tunnel_9779 encap_hlen ip_tunnel 0 9779 NULL nohasharray
152500 +enable_so_mlxsw_pci_queue_group_init_fndecl_9779 mlxsw_pci_queue_group_init fndecl 4 9779 &enable_so_encap_hlen_ip_tunnel_9779
152501 +enable_so_tool_mask_read_fndecl_9780 tool_mask_read fndecl 3 9780 NULL
152502 +enable_so_highest_inum_ubifs_info_9785 highest_inum ubifs_info 0 9785 NULL
152503 +enable_so_valuelen_xfs_da_args_9786 valuelen xfs_da_args 0 9786 NULL
152504 +enable_so_irda_recvmsg_dgram_fndecl_9788 irda_recvmsg_dgram fndecl 3 9788 NULL
152505 +enable_so_tx_frag_tkip_called_read_fndecl_9796 tx_frag_tkip_called_read fndecl 3 9796 NULL
152506 +enable_so_vci_atm_vcc_9797 vci atm_vcc 0 9797 NULL
152507 +enable_so_aper_base_agp_kern_info_9798 aper_base agp_kern_info 0 9798 NULL
152508 +enable_so_irlan_insert_array_param_fndecl_9800 irlan_insert_array_param fndecl 4 9800 NULL
152509 +enable_so_get_max_inline_xattr_value_size_fndecl_9801 get_max_inline_xattr_value_size fndecl 0 9801 NULL
152510 +enable_so_rq_callsize_rpc_rqst_9803 rq_callsize rpc_rqst 0 9803 NULL
152511 +enable_so_osst_write_fndecl_9806 osst_write fndecl 3 9806 NULL
152512 +enable_so_in_size_ViceIoctl_9808 in_size ViceIoctl 0 9808 NULL nohasharray
152513 +enable_so_usbvision_read_fndecl_9808 usbvision_read fndecl 3 9808 &enable_so_in_size_ViceIoctl_9808
152514 +enable_so_num_private_args_iw_handler_def_9810 num_private_args iw_handler_def 0 9810 NULL
152515 +enable_so_update_backref_node_fndecl_9811 update_backref_node fndecl 3 9811 NULL
152516 +enable_so_pathmtu_sctp_association_9815 pathmtu sctp_association 0 9815 NULL
152517 +enable_so_brcmf_proto_bcdc_hdrpush_fndecl_9818 brcmf_proto_bcdc_hdrpush fndecl 3 9818 NULL nohasharray
152518 +enable_so_NumPhysDiskPaths__CONFIG_PAGE_RAID_PHYS_DISK_1_9818 NumPhysDiskPaths _CONFIG_PAGE_RAID_PHYS_DISK_1 0 9818 &enable_so_brcmf_proto_bcdc_hdrpush_fndecl_9818
152519 +enable_so_pref_erase_mmc_card_9824 pref_erase mmc_card 0 9824 NULL
152520 +enable_so_flags_rtl8187se_rx_desc_9826 flags rtl8187se_rx_desc 0 9826 NULL
152521 +enable_so_list_bytes_osdv1_attributes_list_header_9829 list_bytes osdv1_attributes_list_header 0 9829 NULL
152522 +enable_so_section_count_f2fs_super_block_9832 section_count f2fs_super_block 0 9832 NULL nohasharray
152523 +enable_so_iwl_dbgfs_ucode_tx_stats_read_fndecl_9832 iwl_dbgfs_ucode_tx_stats_read fndecl 3 9832 &enable_so_section_count_f2fs_super_block_9832
152524 +enable_so_sectors_r10bio_9834 sectors r10bio 0 9834 NULL
152525 +enable_so_msg_length_sms_msg_hdr_9842 msg_length sms_msg_hdr 0 9842 NULL
152526 +enable_so_mlx4_ib_demux_mad_fndecl_9843 mlx4_ib_demux_mad fndecl 2 9843 NULL nohasharray
152527 +enable_so_snd_compr_get_avail_fndecl_9843 snd_compr_get_avail fndecl 0 9843 &enable_so_mlx4_ib_demux_mad_fndecl_9843
152528 +enable_so_complete_read_super_fndecl_9844 complete_read_super fndecl 3 9844 NULL
152529 +enable_so_vlanTag_rx_desc_9847 vlanTag rx_desc 0 9847 NULL
152530 +enable_so_bi_residual_count_iscsi_scsi_rsp_9850 bi_residual_count iscsi_scsi_rsp 0 9850 NULL
152531 +enable_so_pg_count_agp_allocate_9853 pg_count agp_allocate 0 9853 NULL
152532 +enable_so_data_size_virtio_gpu_vbuffer_9856 data_size virtio_gpu_vbuffer 0 9856 NULL
152533 +enable_so_caif_create_fndecl_9857 caif_create fndecl 3 9857 NULL
152534 +enable_so_vlan_id_rlb_client_info_9858 vlan_id rlb_client_info 0 9858 NULL
152535 +enable_so_read_fiforeg_fndecl_9859 read_fiforeg fndecl 2 9859 NULL nohasharray
152536 +enable_so_nr_of_buckets_v4l2_ctrl_handler_9859 nr_of_buckets v4l2_ctrl_handler 0 9859 &enable_so_read_fiforeg_fndecl_9859
152537 +enable_so_videobuf_read_one_fndecl_9862 videobuf_read_one fndecl 3 9862 NULL
152538 +enable_so_get_img_height_s5p_mfc_hw_ops_9869 get_img_height s5p_mfc_hw_ops 0 9869 NULL
152539 +enable_so_arvo_sysfs_read_fndecl_9874 arvo_sysfs_read fndecl 6 9874 NULL
152540 +enable_so_xfs_seek_hole_data_fndecl_9883 xfs_seek_hole_data fndecl 2 9883 NULL
152541 +enable_so_v4l_nbufs_vardecl_9889 v4l_nbufs vardecl 0 9889 NULL
152542 +enable_so_copy_from_user_nmi_fndecl_9899 copy_from_user_nmi fndecl 3 9899 NULL
152543 +enable_so_ovfx2_pkt_scan_fndecl_9901 ovfx2_pkt_scan fndecl 3 9901 NULL nohasharray
152544 +enable_so_begin_entry_alloc_9901 begin entry_alloc 0 9901 &enable_so_ovfx2_pkt_scan_fndecl_9901
152545 +enable_so_tx_ring_size_sky2_port_9902 tx_ring_size sky2_port 0 9902 NULL
152546 +enable_so_nkeys_tc_u32_sel_9905 nkeys tc_u32_sel 0 9905 NULL
152547 +enable_so_legacy_count_vardecl_pty_c_9908 legacy_count vardecl_pty.c 0 9908 NULL
152548 +enable_so_prism54_wpa_bss_ie_add_fndecl_9910 prism54_wpa_bss_ie_add fndecl 4 9910 NULL
152549 +enable_so_stat_ddb_output_9913 stat ddb_output 0 9913 NULL
152550 +enable_so_alloc_event_waiters_fndecl_9914 alloc_event_waiters fndecl 1 9914 NULL
152551 +enable_so_ep_in_ksdazzle_cb_9917 ep_in ksdazzle_cb 0 9917 NULL
152552 +enable_so___ceph_do_getattr_fndecl_9918 __ceph_do_getattr fndecl 0 9918 NULL
152553 +enable_so_vbe_modes_cnt_uvesafb_par_9928 vbe_modes_cnt uvesafb_par 0 9928 NULL
152554 +enable_so_audit_log_n_string_fndecl_9930 audit_log_n_string fndecl 3 9930 NULL
152555 +enable_so_len_load_info_9931 len load_info 0 9931 NULL
152556 +enable_so_num_wsm_set_tx_rate_retry_policy_9933 num wsm_set_tx_rate_retry_policy 0 9933 NULL
152557 +enable_so_wb_pgbase_nfs_page_9940 wb_pgbase nfs_page 0 9940 NULL nohasharray
152558 +enable_so_object_name_len_ncp_objectname_ioctl_9940 object_name_len ncp_objectname_ioctl 0 9940 &enable_so_wb_pgbase_nfs_page_9940
152559 +enable_so_forced_ps_read_fndecl_9942 forced_ps_read fndecl 3 9942 NULL
152560 +enable_so_client_set_fmt_fndecl_9946 client_set_fmt fndecl 4-5 9946 NULL
152561 +enable_so_buffer_len_bnad_debug_info_9948 buffer_len bnad_debug_info 0 9948 NULL
152562 +enable_so_error_dm_crypt_io_9949 error dm_crypt_io 0 9949 NULL
152563 +enable_so_ath6kl_wmi_send_probe_response_cmd_fndecl_9955 ath6kl_wmi_send_probe_response_cmd fndecl 6-2 9955 NULL
152564 +enable_so_utf16s_to_utf8s_fndecl_9956 utf16s_to_utf8s fndecl 0 9956 NULL
152565 +enable_so_build_request_ceph_auth_client_ops_9960 build_request ceph_auth_client_ops 0 9960 NULL
152566 +enable_so_xfs_difree_inobt_fndecl_9961 xfs_difree_inobt fndecl 4 9961 NULL
152567 +enable_so_shmem_pwrite_slow_fndecl_9966 shmem_pwrite_slow fndecl 2-3 9966 NULL
152568 +enable_so_rt2x00dev_extra_tx_headroom_fndecl_9971 rt2x00dev_extra_tx_headroom fndecl 0 9971 NULL
152569 +enable_so_rs_pretty_print_rate_fndecl_9980 rs_pretty_print_rate fndecl 0 9980 NULL nohasharray
152570 +enable_so_pg_vec_len_netlink_ring_9980 pg_vec_len netlink_ring 0 9980 &enable_so_rs_pretty_print_rate_fndecl_9980
152571 +enable_so_count_tun_filter_9984 count tun_filter 0 9984 NULL
152572 +enable_so_start_extent_buffer_9986 start extent_buffer 0 9986 NULL
152573 +enable_so_map_sg_ib_dma_mapping_ops_9988 map_sg ib_dma_mapping_ops 0 9988 NULL
152574 +enable_so_hugepage_add_anon_rmap_fndecl_9989 hugepage_add_anon_rmap fndecl 3 9989 NULL
152575 +enable_so_nilfs_insert_inode_locked_fndecl_9991 nilfs_insert_inode_locked fndecl 3 9991 NULL
152576 +enable_so_dm_rh_region_to_sector_fndecl_9992 dm_rh_region_to_sector fndecl 0-2 9992 NULL
152577 +enable_so_ieee80211_if_read_last_beacon_fndecl_9994 ieee80211_if_read_last_beacon fndecl 3 9994 NULL
152578 +enable_so_sample_bits_twl4030_priv_10002 sample_bits twl4030_priv 0 10002 NULL
152579 +enable_so_rpcrdma_inline_fixup_fndecl_10007 rpcrdma_inline_fixup fndecl 3 10007 NULL
152580 +enable_so_setifbcnt_fndecl_10012 setifbcnt fndecl 3 10012 NULL
152581 +enable_so__create_sg_bios_fndecl_10015 _create_sg_bios fndecl 4 10015 NULL
152582 +enable_so_nouveau_sgdma_create_ttm_fndecl_10022 nouveau_sgdma_create_ttm fndecl 2 10022 NULL
152583 +enable_so_ov_position_drbd_device_10027 ov_position drbd_device 0 10027 NULL
152584 +enable_so_skb_append_datato_frags_fndecl_10028 skb_append_datato_frags fndecl 5 10028 NULL
152585 +enable_so_add_dataflash_otp_fndecl_10031 add_dataflash_otp fndecl 4-3 10031 NULL
152586 +enable_so___cookie_v6_check_fndecl_10035 __cookie_v6_check fndecl 0 10035 NULL
152587 +enable_so_get_img_width_s5p_mfc_hw_ops_10036 get_img_width s5p_mfc_hw_ops 0 10036 NULL
152588 +enable_so_mwifiex_send_tdls_action_frame_fndecl_10044 mwifiex_send_tdls_action_frame fndecl 7 10044 NULL
152589 +enable_so_block_count_hfsplus_extent_10045 block_count hfsplus_extent 0 10045 NULL nohasharray
152590 +enable_so_bd_iov_count_ptlrpc_bulk_desc_10045 bd_iov_count ptlrpc_bulk_desc 0 10045 &enable_so_block_count_hfsplus_extent_10045
152591 +enable_so_sisusbcon_scroll_fndecl_10048 sisusbcon_scroll fndecl 5-2-3 10048 NULL
152592 +enable_so_send_buf_size_netvsc_device_10051 send_buf_size netvsc_device 0 10051 NULL
152593 +enable_so_ath6kl_wmi_powermode_cmd_fndecl_10052 ath6kl_wmi_powermode_cmd fndecl 2 10052 NULL
152594 +enable_so_usbat_write_blocks_fndecl_10053 usbat_write_blocks fndecl 3-4 10053 NULL nohasharray
152595 +enable_so_command_file_write_fndecl_10053 command_file_write fndecl 3 10053 &enable_so_usbat_write_blocks_fndecl_10053
152596 +enable_so_musb_urb_dequeue_fndecl_10056 musb_urb_dequeue fndecl 3 10056 NULL
152597 +enable_so_dm_bufio_prefetch_fndecl_10057 dm_bufio_prefetch fndecl 2 10057 NULL
152598 +enable_so_bio_detain_range_fndecl_10064 bio_detain_range fndecl 2-3 10064 NULL
152599 +enable_so_rx_buf_sz_sis190_private_10068 rx_buf_sz sis190_private 0 10068 NULL nohasharray
152600 +enable_so_uvc_simplify_fraction_fndecl_10068 uvc_simplify_fraction fndecl 3 10068 &enable_so_rx_buf_sz_sis190_private_10068
152601 +enable_so_max_pages_fuse_req_10069 max_pages fuse_req 0 10069 NULL
152602 +enable_so_iwl_dbgfs_set_nic_temperature_read_fndecl_10071 iwl_dbgfs_set_nic_temperature_read fndecl 3 10071 NULL
152603 +enable_so_qpn_ib_ucm_rep_10073 qpn ib_ucm_rep 0 10073 NULL
152604 +enable_so_sg_size_octnic_gather_10076 sg_size octnic_gather 0 10076 NULL
152605 +enable_so_ocfs2_refcount_xattr_tree_rec_fndecl_10077 ocfs2_refcount_xattr_tree_rec fndecl 3 10077 NULL
152606 +enable_so_read_csr_fndecl_10078 read_csr fndecl 0 10078 NULL
152607 +enable_so_height_virtio_gpu_rect_10085 height virtio_gpu_rect 0 10085 NULL
152608 +enable_so_ssb_admatch_base_fndecl_10086 ssb_admatch_base fndecl 0-1 10086 NULL
152609 +enable_so___send_changing_extent_only_fndecl_10090 __send_changing_extent_only fndecl 0 10090 NULL
152610 +enable_so_outlen_write_fndecl_10093 outlen_write fndecl 3 10093 NULL
152611 +enable_so_msix_num_bnad_10096 msix_num bnad 0 10096 NULL
152612 +enable_so_em28xx_init_usb_xfer_fndecl_10106 em28xx_init_usb_xfer fndecl 5-6-4 10106 NULL
152613 +enable_so_finish_wqe_fndecl_10107 finish_wqe fndecl 3 10107 NULL nohasharray
152614 +enable_so__regmap_raw_multi_reg_write_fndecl_10107 _regmap_raw_multi_reg_write fndecl 3 10107 &enable_so_finish_wqe_fndecl_10107
152615 +enable_so_trace_parser_get_init_fndecl_10112 trace_parser_get_init fndecl 2 10112 NULL
152616 +enable_so_req_sz__MPT_ADAPTER_10113 req_sz _MPT_ADAPTER 0 10113 NULL
152617 +enable_so_tfms_count_crypt_config_10114 tfms_count crypt_config 0 10114 NULL
152618 +enable_so_total_len_extlog_l1_head_10117 total_len extlog_l1_head 0 10117 NULL nohasharray
152619 +enable_so_uvc_video_encode_data_fndecl_10117 uvc_video_encode_data fndecl 0-4 10117 &enable_so_total_len_extlog_l1_head_10117
152620 +enable_so_len_pda_entry_10121 len pda_entry 0 10121 NULL nohasharray
152621 +enable_so_netlbl_mgmt_add_common_fndecl_10121 netlbl_mgmt_add_common fndecl 0 10121 &enable_so_len_pda_entry_10121
152622 +enable_so_MaxBlocksPerCommand_DAC960_Controller_10124 MaxBlocksPerCommand DAC960_Controller 0 10124 NULL nohasharray
152623 +enable_so_data_dma_usbtouch_usb_10124 data_dma usbtouch_usb 0 10124 &enable_so_MaxBlocksPerCommand_DAC960_Controller_10124
152624 +enable_so_max_hw_sectors_nvme_dev_10127 max_hw_sectors nvme_dev 0 10127 NULL nohasharray
152625 +enable_so_parent_overlap_rbd_device_10127 parent_overlap rbd_device 0 10127 &enable_so_max_hw_sectors_nvme_dev_10127
152626 +enable_so_max_bu_buf_len_ubifs_info_10130 max_bu_buf_len ubifs_info 0 10130 NULL
152627 +enable_so_ieee80211_rx_mgmt_auth_fndecl_10133 ieee80211_rx_mgmt_auth fndecl 3 10133 NULL
152628 +enable_so_num_inbound_streams_sctp_inithdr_10138 num_inbound_streams sctp_inithdr 0 10138 NULL
152629 +enable_so_qlcnic_83xx_diag_alloc_res_fndecl_10139 qlcnic_83xx_diag_alloc_res fndecl 3 10139 NULL
152630 +enable_so_xprt_rdma_allocate_fndecl_10143 xprt_rdma_allocate fndecl 2 10143 NULL
152631 +enable_so_ns_cno_the_nilfs_10144 ns_cno the_nilfs 0 10144 NULL nohasharray
152632 +enable_so_sg_segs_osst_buffer_10144 sg_segs osst_buffer 0 10144 &enable_so_ns_cno_the_nilfs_10144 nohasharray
152633 +enable_so_key_ifindex_read_fndecl_10144 key_ifindex_read fndecl 3 10144 &enable_so_sg_segs_osst_buffer_10144
152634 +enable_so_ldebugfs_fid_space_seq_write_fndecl_10152 ldebugfs_fid_space_seq_write fndecl 3 10152 NULL
152635 +enable_so_udp_tun_rx_dst_fndecl_10154 udp_tun_rx_dst fndecl 4-5 10154 NULL
152636 +enable_so__sp2d_max_pg_fndecl_10157 _sp2d_max_pg fndecl 0 10157 NULL
152637 +enable_so_usnic_vnic_res_spec_update_fndecl_10169 usnic_vnic_res_spec_update fndecl 3 10169 NULL
152638 +enable_so_error_block_length_acpi_hest_generic_10170 error_block_length acpi_hest_generic 0 10170 NULL
152639 +enable_so_cluster_size_msdos_sb_info_10172 cluster_size msdos_sb_info 0 10172 NULL
152640 +enable_so_s_inopf_ufs_sb_private_info_10174 s_inopf ufs_sb_private_info 0 10174 NULL nohasharray
152641 +enable_so_substream_count_snd_rawmidi_str_10174 substream_count snd_rawmidi_str 0 10174 &enable_so_s_inopf_ufs_sb_private_info_10174
152642 +enable_so_acpi_sci_ioapic_setup_fndecl_10182 acpi_sci_ioapic_setup fndecl 1-4 10182 NULL
152643 +enable_so_read_buffer_size_vardecl_legousbtower_c_10184 read_buffer_size vardecl_legousbtower.c 0 10184 NULL
152644 +enable_so_transport_alloc_session_tags_fndecl_10186 transport_alloc_session_tags fndecl 3-2 10186 NULL
152645 +enable_so_xfrm6_init_path_fndecl_10187 xfrm6_init_path fndecl 3 10187 NULL
152646 +enable_so_size_erst_erange_10188 size erst_erange 0 10188 NULL
152647 +enable_so_opera1_xilinx_rw_fndecl_10190 opera1_xilinx_rw fndecl 5 10190 NULL
152648 +enable_so_PagesPerBlock_ms_lib_ctrl_10191 PagesPerBlock ms_lib_ctrl 0 10191 NULL
152649 +enable_so_tx_buf_size_mwifiex_adapter_10198 tx_buf_size mwifiex_adapter 0 10198 NULL
152650 +enable_so_old_log_size_persistent_ram_zone_10215 old_log_size persistent_ram_zone 0 10215 NULL
152651 +enable_so___ext4_journal_get_write_access_fndecl_10217 __ext4_journal_get_write_access fndecl 0 10217 NULL nohasharray
152652 +enable_so_smb_init_no_reconnect_fndecl_10217 smb_init_no_reconnect fndecl 2 10217 &enable_so___ext4_journal_get_write_access_fndecl_10217
152653 +enable_so_wil_addba_rx_request_fndecl_10219 wil_addba_rx_request fndecl 4 10219 NULL
152654 +enable_so_rds_message_map_pages_fndecl_10220 rds_message_map_pages fndecl 2 10220 NULL
152655 +enable_so_ext4_xattr_set_handle_fndecl_10221 ext4_xattr_set_handle fndecl 6 10221 NULL
152656 +enable_so_alg_setkey_fndecl_10222 alg_setkey fndecl 3 10222 NULL
152657 +enable_so_next_id_hfs_sb_info_10229 next_id hfs_sb_info 0 10229 NULL
152658 +enable_so_qlcnic_set_sds_ring_count_fndecl_10232 qlcnic_set_sds_ring_count fndecl 2 10232 NULL
152659 +enable_so_input_get_new_minor_fndecl_10235 input_get_new_minor fndecl 0 10235 NULL
152660 +enable_so_iio_devt_vardecl_industrialio_core_c_10237 iio_devt vardecl_industrialio-core.c 0 10237 NULL nohasharray
152661 +enable_so_req_pages_pvscsi_adapter_10237 req_pages pvscsi_adapter 0 10237 &enable_so_iio_devt_vardecl_industrialio_core_c_10237
152662 +enable_so_uarc_size_mthca_uar_table_10238 uarc_size mthca_uar_table 0 10238 NULL
152663 +enable_so_bv_len_bio_vec_10239 bv_len bio_vec 0 10239 NULL nohasharray
152664 +enable_so_do_fcntl_fndecl_10239 do_fcntl fndecl 3 10239 &enable_so_bv_len_bio_vec_10239
152665 +enable_so_q1_depth_bna_rx_config_10241 q1_depth bna_rx_config 0 10241 NULL
152666 +enable_so_smallpageshift_sddr55_card_info_10244 smallpageshift sddr55_card_info 0 10244 NULL
152667 +enable_so_residual_data_len_ipr_ioasa_hdr_10247 residual_data_len ipr_ioasa_hdr 0 10247 NULL
152668 +enable_so_irias_add_octseq_attrib_fndecl_10252 irias_add_octseq_attrib fndecl 4 10252 NULL nohasharray
152669 +enable_so_diva_os_get_context_size_fndecl_10252 diva_os_get_context_size fndecl 0 10252 &enable_so_irias_add_octseq_attrib_fndecl_10252
152670 +enable_so_filelayout_get_dense_offset_fndecl_10253 filelayout_get_dense_offset fndecl 0 10253 NULL
152671 +enable_so_agg_buf_sz_vardecl_r8152_c_10254 agg_buf_sz vardecl_r8152.c 0 10254 NULL nohasharray
152672 +enable_so_vxlan6_xmit_skb_fndecl_10254 vxlan6_xmit_skb fndecl 11 10254 &enable_so_agg_buf_sz_vardecl_r8152_c_10254
152673 +enable_so_nilfs_sufile_do_scrap_fndecl_10257 nilfs_sufile_do_scrap fndecl 2 10257 NULL
152674 +enable_so_iscsi_sw_tcp_send_hdr_prep_fndecl_10261 iscsi_sw_tcp_send_hdr_prep fndecl 3 10261 NULL
152675 +enable_so_sdebug_store_sectors_vardecl_scsi_debug_c_10267 sdebug_store_sectors vardecl_scsi_debug.c 0 10267 NULL
152676 +enable_so_jffs2_scan_dirent_node_fndecl_10268 jffs2_scan_dirent_node fndecl 4 10268 NULL
152677 +enable_so_dn_sendmsg_fndecl_10269 dn_sendmsg fndecl 3 10269 NULL
152678 +enable_so_rxd_process_rxd_ops_10271 rxd_process rxd_ops 0 10271 NULL
152679 +enable_so_vmci_host_setup_notify_fndecl_10273 vmci_host_setup_notify fndecl 2 10273 NULL
152680 +enable_so_vmw_resource_buf_alloc_fndecl_10284 vmw_resource_buf_alloc fndecl 0 10284 NULL
152681 +enable_so_o_width_g2d_frame_10291 o_width g2d_frame 0 10291 NULL
152682 +enable_so_num_vfs_i40e_hw_capabilities_10302 num_vfs i40e_hw_capabilities 0 10302 NULL
152683 +enable_so_bfad_iocmd_fcport_reset_stats_fndecl_10304 bfad_iocmd_fcport_reset_stats fndecl 0 10304 NULL nohasharray
152684 +enable_so_ieee80211_tdls_add_chan_switch_req_ies_fndecl_10304 ieee80211_tdls_add_chan_switch_req_ies fndecl 6 10304 &enable_so_bfad_iocmd_fcport_reset_stats_fndecl_10304
152685 +enable_so_scsi_vpd_inquiry_fndecl_10315 scsi_vpd_inquiry fndecl 4-0 10315 NULL
152686 +enable_so_num_mnt_opts_security_mnt_opts_10327 num_mnt_opts security_mnt_opts 0 10327 NULL
152687 +enable_so_blk_stack_limits_fndecl_10332 blk_stack_limits fndecl 3 10332 NULL
152688 +enable_so_dev_mem_write_fndecl_10335 dev_mem_write fndecl 3 10335 NULL
152689 +enable_so_down_bplus_internal_node_10336 down bplus_internal_node 0 10336 NULL
152690 +enable_so_boot_max_nr_grant_frames_vardecl_grant_table_c_10337 boot_max_nr_grant_frames vardecl_grant-table.c 0 10337 NULL
152691 +enable_so_len_xdr_buf_10338 len xdr_buf 0 10338 NULL
152692 +enable_so_sector_size_btt_10339 sector_size btt 0 10339 NULL
152693 +enable_so_edid_blocks_vivid_dev_10341 edid_blocks vivid_dev 0 10341 NULL
152694 +enable_so_cids_per_blk_cnic_local_10342 cids_per_blk cnic_local 0 10342 NULL
152695 +enable_so_nr_possible_cpus_uv_blade_info_10350 nr_possible_cpus uv_blade_info 0 10350 NULL
152696 +enable_so_s_no_blocks_logfs_super_10354 s_no_blocks logfs_super 0 10354 NULL
152697 +enable_so___pci_request_selected_regions_fndecl_10361 __pci_request_selected_regions fndecl 0 10361 NULL
152698 +enable_so_num_mgms_mlx4_caps_10367 num_mgms mlx4_caps 0 10367 NULL
152699 +enable_so_rx_filter_data_filter_read_fndecl_10369 rx_filter_data_filter_read fndecl 3 10369 NULL
152700 +enable_so_len_mt7601u_dma_buf_10376 len mt7601u_dma_buf 0 10376 NULL nohasharray
152701 +enable_so_ssid_len_libipw_network_10376 ssid_len libipw_network 0 10376 &enable_so_len_mt7601u_dma_buf_10376
152702 +enable_so_decomp_windowBits_zlib_ctx_10381 decomp_windowBits zlib_ctx 0 10381 NULL
152703 +enable_so_mc_saved_count_mc_saved_data_10384 mc_saved_count mc_saved_data 0 10384 NULL
152704 +enable_so_size_synthvid_msg_hdr_10391 size synthvid_msg_hdr 0 10391 NULL
152705 +enable_so_arg_ax25_ctl_struct_10392 arg ax25_ctl_struct 0 10392 NULL nohasharray
152706 +enable_so_cxgbi_ddp_reserve_fndecl_10392 cxgbi_ddp_reserve fndecl 4 10392 &enable_so_arg_ax25_ctl_struct_10392
152707 +enable_so_iomem_base_myri10ge_priv_10393 iomem_base myri10ge_priv 0 10393 NULL
152708 +enable_so_max_beb_per1024_mtd_dev_param_10395 max_beb_per1024 mtd_dev_param 0 10395 NULL
152709 +enable_so_link_freq_smiapp_pll_10397 link_freq smiapp_pll 0 10397 NULL
152710 +enable_so_tg3_run_loopback_fndecl_10398 tg3_run_loopback fndecl 2 10398 NULL
152711 +enable_so_snd_midi_channel_init_set_fndecl_10399 snd_midi_channel_init_set fndecl 1 10399 NULL
152712 +enable_so_ihead_offs_ubifs_info_10400 ihead_offs ubifs_info 0 10400 NULL
152713 +enable_so_length_p_header95_10401 length p_header95 0 10401 NULL
152714 +enable_so_romfs_blk_strnlen_fndecl_10402 romfs_blk_strnlen fndecl 3-2-0 10402 NULL
152715 +enable_so_num_data_channels_st_sensor_data_10404 num_data_channels st_sensor_data 0 10404 NULL
152716 +enable_so_vlan_proto_bond_vlan_tag_10405 vlan_proto bond_vlan_tag 0 10405 NULL nohasharray
152717 +enable_so__osd_req_sizeof_alist_header_fndecl_10405 _osd_req_sizeof_alist_header fndecl 0 10405 &enable_so_vlan_proto_bond_vlan_tag_10405 nohasharray
152718 +enable_so_num_vss_cfgs_wm8994_pdata_10405 num_vss_cfgs wm8994_pdata 0 10405 &enable_so__osd_req_sizeof_alist_header_fndecl_10405
152719 +enable_so_zap_vma_ptes_fndecl_10406 zap_vma_ptes fndecl 3-2 10406 NULL
152720 +enable_so_u_memcpya_fndecl_10408 u_memcpya fndecl 2-3 10408 NULL
152721 +enable_so_off_xtsplit_10412 off xtsplit 0 10412 NULL
152722 +enable_so_max_ctrl_size_ims_pcu_10413 max_ctrl_size ims_pcu 0 10413 NULL
152723 +enable_so_nent_mlx4_eq_10414 nent mlx4_eq 0 10414 NULL
152724 +enable_so_size_xt_table_info_10415 size xt_table_info 0 10415 NULL
152725 +enable_so_xfs_iget_cache_miss_fndecl_10416 xfs_iget_cache_miss fndecl 4 10416 NULL
152726 +enable_so_spi_async_locked_fndecl_10422 spi_async_locked fndecl 0 10422 NULL
152727 +enable_so_flip_sd_gl860_10437 flip sd_gl860 0 10437 NULL nohasharray
152728 +enable_so_byte_count_iwl_rx_mpdu_res_start_10437 byte_count iwl_rx_mpdu_res_start 0 10437 &enable_so_flip_sd_gl860_10437
152729 +enable_so_alloc_switch_ctx_fndecl_10438 alloc_switch_ctx fndecl 3-2 10438 NULL
152730 +enable_so_radeon_gem_object_create_fndecl_10441 radeon_gem_object_create fndecl 2 10441 NULL
152731 +enable_so_expand_inode_data_fndecl_10442 expand_inode_data fndecl 2-3 10442 NULL
152732 +enable_so_NumberOfPhyBlock_ms_lib_ctrl_10443 NumberOfPhyBlock ms_lib_ctrl 0 10443 NULL
152733 +enable_so_wrfilled_cyberjack_private_10444 wrfilled cyberjack_private 0 10444 NULL
152734 +enable_so_p9dirent_read_fndecl_10450 p9dirent_read fndecl 3-0 10450 NULL
152735 +enable_so_ext4_write_inline_data_end_fndecl_10452 ext4_write_inline_data_end fndecl 0-4 10452 NULL
152736 +enable_so_page_shift_nand_chip_10453 page_shift nand_chip 0 10453 NULL
152737 +enable_so_length_acpi_mem_space_context_10460 length acpi_mem_space_context 0 10460 NULL
152738 +enable_so_vxlan_change_mtu_fndecl_10464 vxlan_change_mtu fndecl 2 10464 NULL nohasharray
152739 +enable_so___btt_map_write_fndecl_10464 __btt_map_write fndecl 0 10464 &enable_so_vxlan_change_mtu_fndecl_10464
152740 +enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467 wNdpOutDivisor usb_cdc_ncm_ntb_parameters 0 10467 NULL nohasharray
152741 +enable_so_notesize_fndecl_10467 notesize fndecl 0 10467 &enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467
152742 +enable_so___genwqe_readq_fndecl_10470 __genwqe_readq fndecl 0 10470 NULL
152743 +enable_so_usblp_ioctl_fndecl_10472 usblp_ioctl fndecl 2 10472 NULL
152744 +enable_so_nfsd4_get_drc_mem_fndecl_10473 nfsd4_get_drc_mem fndecl 0 10473 NULL
152745 +enable_so_devnum_usb_device_10474 devnum usb_device 0 10474 NULL
152746 +enable_so_signature_mspro_attribute_10483 signature mspro_attribute 0 10483 NULL
152747 +enable_so_out_min_chans_snd_card_asihpi_10490 out_min_chans snd_card_asihpi 0 10490 NULL nohasharray
152748 +enable_so_avc_tuner_dsd_dvb_c_fndecl_10490 avc_tuner_dsd_dvb_c fndecl 0 10490 &enable_so_out_min_chans_snd_card_asihpi_10490
152749 +enable_so_nbpf_prep_memcpy_fndecl_10492 nbpf_prep_memcpy fndecl 4 10492 NULL
152750 +enable_so_msb_cache_read_fndecl_10494 msb_cache_read fndecl 0-5-2 10494 NULL
152751 +enable_so_ext4_ext_direct_IO_fndecl_10503 ext4_ext_direct_IO fndecl 3 10503 NULL nohasharray
152752 +enable_so_xfs_bmap_punch_delalloc_range_fndecl_10503 xfs_bmap_punch_delalloc_range fndecl 2 10503 &enable_so_ext4_ext_direct_IO_fndecl_10503
152753 +enable_so_cidlen_he_rbrq_10504 cidlen he_rbrq 0 10504 NULL
152754 +enable_so_cr_namelen_nfsd4_create_10516 cr_namelen nfsd4_create 0 10516 NULL
152755 +enable_so_dma_burst_size_chip_data_10519 dma_burst_size chip_data 0 10519 NULL nohasharray
152756 +enable_so_ipmi_major_vardecl_ipmi_devintf_c_10519 ipmi_major vardecl_ipmi_devintf.c 0 10519 &enable_so_dma_burst_size_chip_data_10519
152757 +enable_so_posix_acl_from_xattr_fndecl_10527 posix_acl_from_xattr fndecl 3 10527 NULL nohasharray
152758 +enable_so_sd_alloc_ctl_entry_fndecl_10527 sd_alloc_ctl_entry fndecl 1 10527 &enable_so_posix_acl_from_xattr_fndecl_10527
152759 +enable_so_stride_cobalt_stream_10537 stride cobalt_stream 0 10537 NULL
152760 +enable_so_cros_ec_prepare_tx_fndecl_10539 cros_ec_prepare_tx fndecl 0 10539 NULL
152761 +enable_so_logical_scrub_page_10540 logical scrub_page 0 10540 NULL nohasharray
152762 +enable_so_touchscreen_set_params_fndecl_10540 touchscreen_set_params fndecl 3 10540 &enable_so_logical_scrub_page_10540
152763 +enable_so_xen_set_callback_via_fndecl_10541 xen_set_callback_via fndecl 1 10541 NULL
152764 +enable_so_y_skip_top_mt9m001_10547 y_skip_top mt9m001 0 10547 NULL nohasharray
152765 +enable_so_isofs_get_last_session_fndecl_10547 isofs_get_last_session fndecl 0 10547 &enable_so_y_skip_top_mt9m001_10547
152766 +enable_so_read_cis_cache_fndecl_10548 read_cis_cache fndecl 4 10548 NULL
152767 +enable_so_nv_change_mtu_fndecl_10551 nv_change_mtu fndecl 2 10551 NULL
152768 +enable_so_wm_adsp_read_algs_fndecl_10552 wm_adsp_read_algs fndecl 4 10552 NULL
152769 +enable_so_new_leaf_fndecl_10553 new_leaf fndecl 3 10553 NULL
152770 +enable_so_id_hsi_controller_10557 id hsi_controller 0 10557 NULL
152771 +enable_so_tcf_csum_ipv6_icmp_fndecl_10562 tcf_csum_ipv6_icmp fndecl 3 10562 NULL
152772 +enable_so_bfad_iocmd_sfp_speed_fndecl_10563 bfad_iocmd_sfp_speed fndecl 0 10563 NULL
152773 +enable_so_lpfc_present_cpu_vardecl_10567 lpfc_present_cpu vardecl 0 10567 NULL
152774 +enable_so_num_send_contexts_hfi1_devdata_10569 num_send_contexts hfi1_devdata 0 10569 NULL
152775 +enable_so_sector_p_data_10572 sector p_data 0 10572 NULL
152776 +enable_so_cnt_rsxx_reg_access_10573 cnt rsxx_reg_access 0 10573 NULL
152777 +enable_so_sb_bsize_shift_gfs2_sb_host_10575 sb_bsize_shift gfs2_sb_host 0 10575 NULL nohasharray
152778 +enable_so_ds_write_shift_logfs_disk_super_10575 ds_write_shift logfs_disk_super 0 10575 &enable_so_sb_bsize_shift_gfs2_sb_host_10575
152779 +enable_so_initialized_size__ntfs_inode_10576 initialized_size _ntfs_inode 0 10576 NULL
152780 +enable_so_resource_addr_nvkm_device_func_10582 resource_addr nvkm_device_func 0 10582 NULL nohasharray
152781 +enable_so_fuse_fsync_fndecl_10582 fuse_fsync fndecl 2-3 10582 &enable_so_resource_addr_nvkm_device_func_10582
152782 +enable_so_vmw_compat_shader_add_fndecl_10585 vmw_compat_shader_add fndecl 6 10585 NULL nohasharray
152783 +enable_so_buf_idx_mei_cl_cb_10585 buf_idx mei_cl_cb 0 10585 &enable_so_vmw_compat_shader_add_fndecl_10585
152784 +enable_so_pcmcia_make_resource_fndecl_10591 pcmcia_make_resource fndecl 2-1 10591 NULL
152785 +enable_so_wcn36xx_smd_send_and_wait_fndecl_10595 wcn36xx_smd_send_and_wait fndecl 2 10595 NULL
152786 +enable_so_size_ib_uverbs_flow_attr_10597 size ib_uverbs_flow_attr 0 10597 NULL
152787 +enable_so_max_frame_size_atl1_hw_10601 max_frame_size atl1_hw 0 10601 NULL nohasharray
152788 +enable_so_bfad_iocmd_ioc_get_fwstats_fndecl_10601 bfad_iocmd_ioc_get_fwstats fndecl 0 10601 &enable_so_max_frame_size_atl1_hw_10601
152789 +enable_so_num_amd_northbridge_info_10604 num amd_northbridge_info 0 10604 NULL
152790 +enable_so_uremainder64_st_cmdstatus_10606 uremainder64 st_cmdstatus 0 10606 NULL
152791 +enable_so_inst_size_il4965_firmware_pieces_10607 inst_size il4965_firmware_pieces 0 10607 NULL
152792 +enable_so_rq_depth_p9_rdma_opts_10608 rq_depth p9_rdma_opts 0 10608 NULL nohasharray
152793 +enable_so_index_vardecl_mtpav_c_10608 index vardecl_mtpav.c 0 10608 &enable_so_rq_depth_p9_rdma_opts_10608
152794 +enable_so_brightness_sd_gl860_10611 brightness sd_gl860 0 10611 NULL
152795 +enable_so_epp_free_pages_ptlrpc_enc_page_pool_10614 epp_free_pages ptlrpc_enc_page_pool 0 10614 NULL
152796 +enable_so_ext4_trim_all_free_fndecl_10621 ext4_trim_all_free fndecl 0-4-2 10621 NULL
152797 +enable_so_rfs_ipg_rx_10623 rfs ipg_rx 0 10623 NULL
152798 +enable_so___probe_kernel_write_fndecl_10625 __probe_kernel_write fndecl 3 10625 NULL
152799 +enable_so_rx_queues_nicvf_10628 rx_queues nicvf 0 10628 NULL
152800 +enable_so_pkt_alignment_factor_rndis_initialize_complete_10633 pkt_alignment_factor rndis_initialize_complete 0 10633 NULL
152801 +enable_so_pgbase_nfs_pgio_args_10636 pgbase nfs_pgio_args 0 10636 NULL
152802 +enable_so_tcp_sendpage_fndecl_10646 tcp_sendpage fndecl 4-3 10646 NULL
152803 +enable_so_memory_size_vhost_memory_region_10658 memory_size vhost_memory_region 0 10658 NULL
152804 +enable_so_tlv_put_fndecl_10659 tlv_put fndecl 4-0 10659 NULL
152805 +enable_so_start_mtd_oob_buf32_10664 start mtd_oob_buf32 0 10664 NULL
152806 +enable_so_len_ahd_dma_seg_10667 len ahd_dma_seg 0 10667 NULL
152807 +enable_so_radeon_ttm_tt_create_fndecl_10672 radeon_ttm_tt_create fndecl 2 10672 NULL
152808 +enable_so_mmc_test_simple_transfer_fndecl_10675 mmc_test_simple_transfer fndecl 6-5-3 10675 NULL
152809 +enable_so_cdce925_pll_find_rate_fndecl_10678 cdce925_pll_find_rate fndecl 2-1 10678 NULL
152810 +enable_so_xfs_rtfind_forw_fndecl_10681 xfs_rtfind_forw fndecl 3 10681 NULL nohasharray
152811 +enable_so_word_size_e1000_nvm_info_10681 word_size e1000_nvm_info 0 10681 &enable_so_xfs_rtfind_forw_fndecl_10681
152812 +enable_so_tlen_sc18is602_10682 tlen sc18is602 0 10682 NULL
152813 +enable_so_sb_bsize_gfs2_sb_host_10683 sb_bsize gfs2_sb_host 0 10683 NULL
152814 +enable_so_ipv6_setsockopt_fndecl_10684 ipv6_setsockopt fndecl 5 10684 NULL
152815 +enable_so_extract_icmp6_fields_fndecl_10685 extract_icmp6_fields fndecl 2 10685 NULL nohasharray
152816 +enable_so_write_file_bool_bmps_fndecl_10685 write_file_bool_bmps fndecl 3 10685 &enable_so_extract_icmp6_fields_fndecl_10685
152817 +enable_so_num_frames_usb_usbvision_10687 num_frames usb_usbvision 0 10687 NULL
152818 +enable_so_alauda_read_block_raw_fndecl_10688 alauda_read_block_raw fndecl 4 10688 NULL
152819 +enable_so_rx_ba_win_size_conf_ht_setting_10692 rx_ba_win_size conf_ht_setting 0 10692 NULL
152820 +enable_so_gigaset_initbcs_fndecl_10693 gigaset_initbcs fndecl 3 10693 NULL
152821 +enable_so_lov_ost_pool_extend_fndecl_10697 lov_ost_pool_extend fndecl 2 10697 NULL
152822 +enable_so_afs_write_begin_fndecl_10704 afs_write_begin fndecl 3-4 10704 NULL
152823 +enable_so_ft_burst_len_fcp_txrdy_10705 ft_burst_len fcp_txrdy 0 10705 NULL
152824 +enable_so_xfs_alloc_read_agf_fndecl_10710 xfs_alloc_read_agf fndecl 3 10710 NULL
152825 +enable_so_iio_set_bytes_per_datum_kfifo_fndecl_10712 iio_set_bytes_per_datum_kfifo fndecl 2 10712 NULL
152826 +enable_so_bfad_iocmd_diag_fwping_fndecl_10717 bfad_iocmd_diag_fwping fndecl 0 10717 NULL
152827 +enable_so_set_le_key_k_offset_fndecl_10721 set_le_key_k_offset fndecl 3 10721 NULL
152828 +enable_so___btrfs_getxattr_fndecl_10728 __btrfs_getxattr fndecl 0 10728 NULL nohasharray
152829 +enable_so_ipv6_recv_error_fndecl_10728 ipv6_recv_error fndecl 3 10728 &enable_so___btrfs_getxattr_fndecl_10728 nohasharray
152830 +enable_so_dma_rx_num_vardecl_altera_tse_main_c_10728 dma_rx_num vardecl_altera_tse_main.c 0 10728 &enable_so_ipv6_recv_error_fndecl_10728
152831 +enable_so_xen_p2m_size_vardecl_10730 xen_p2m_size vardecl 0 10730 NULL
152832 +enable_so_iomem_reg_shift_serial_struct_10733 iomem_reg_shift serial_struct 0 10733 NULL
152833 +enable_so_write_file_queue_fndecl_10737 write_file_queue fndecl 3 10737 NULL
152834 +enable_so_sb_dirblklog_xfs_sb_10738 sb_dirblklog xfs_sb 0 10738 NULL
152835 +enable_so___memblock_find_range_bottom_up_fndecl_10739 __memblock_find_range_bottom_up fndecl 0-4-1-2 10739 NULL
152836 +enable_so_x_offset_mxr_crop_10741 x_offset mxr_crop 0 10741 NULL
152837 +enable_so_max_bytes_per_io_se_dev_attrib_10744 max_bytes_per_io se_dev_attrib 0 10744 NULL
152838 +enable_so_BufSizeShift_qinfo_chip_10746 BufSizeShift qinfo_chip 0 10746 NULL nohasharray
152839 +enable_so_page_errors_dio_10746 page_errors dio 0 10746 &enable_so_BufSizeShift_qinfo_chip_10746
152840 +enable_so_next_blkoff_curseg_info_10751 next_blkoff curseg_info 0 10751 NULL
152841 +enable_so_NumEraseRegions_cfi_ident_10753 NumEraseRegions cfi_ident 0 10753 NULL
152842 +enable_so_write_head_fndecl_10754 write_head fndecl 4 10754 NULL
152843 +enable_so_adu_write_fndecl_10756 adu_write fndecl 3 10756 NULL
152844 +enable_so_data_start_dm_verity_10759 data_start dm_verity 0 10759 NULL
152845 +enable_so_new_chunk_core_exception_10765 new_chunk core_exception 0 10765 NULL
152846 +enable_so_batadv_send_tt_request_fndecl_10766 batadv_send_tt_request fndecl 5 10766 NULL
152847 +enable_so_ocrdma_reg_user_mr_fndecl_10777 ocrdma_reg_user_mr fndecl 2-3 10777 NULL
152848 +enable_so_amdgpu_ttm_tt_create_fndecl_10779 amdgpu_ttm_tt_create fndecl 2 10779 NULL
152849 +enable_so_setexposure_fndecl_10781 setexposure fndecl 0 10781 NULL
152850 +enable_so_btrfs_free_extent_fndecl_10784 btrfs_free_extent fndecl 4-3 10784 NULL
152851 +enable_so_iptunnel_xmit_fndecl_10787 iptunnel_xmit fndecl 6 10787 NULL
152852 +enable_so_soc_camera_calc_client_output_fndecl_10789 soc_camera_calc_client_output fndecl 6 10789 NULL
152853 +enable_so_pnode_sz_ubifs_info_10791 pnode_sz ubifs_info 0 10791 NULL nohasharray
152854 +enable_so_ea_write_fndecl_10791 ea_write fndecl 3 10791 &enable_so_pnode_sz_ubifs_info_10791 nohasharray
152855 +enable_so_dwc3_testmode_write_fndecl_10791 dwc3_testmode_write fndecl 3 10791 &enable_so_ea_write_fndecl_10791
152856 +enable_so_read32_brcmf_buscore_ops_10795 read32 brcmf_buscore_ops 0 10795 NULL
152857 +enable_so_set_config_fndecl_10797 set_config fndecl 0 10797 NULL
152858 +enable_so_num_events_kfd_ioctl_wait_events_args_10811 num_events kfd_ioctl_wait_events_args 0 10811 NULL nohasharray
152859 +enable_so_rtgt_cnt_snic_disc_10811 rtgt_cnt snic_disc 0 10811 &enable_so_num_events_kfd_ioctl_wait_events_args_10811
152860 +enable_so_ssb_sdio_block_write_fndecl_10815 ssb_sdio_block_write fndecl 3 10815 NULL nohasharray
152861 +enable_so_num_rxd_netxen_adapter_10815 num_rxd netxen_adapter 0 10815 &enable_so_ssb_sdio_block_write_fndecl_10815
152862 +enable_so_add_regulator_linked_fndecl_10819 add_regulator_linked fndecl 1 10819 NULL
152863 +enable_so_batadv_dat_snoop_incoming_arp_request_fndecl_10823 batadv_dat_snoop_incoming_arp_request fndecl 3 10823 NULL
152864 +enable_so_read_reg_ipac_hw_10828 read_reg ipac_hw 0 10828 NULL
152865 +enable_so_gart_end_crash_elf_data_10833 gart_end crash_elf_data 0 10833 NULL nohasharray
152866 +enable_so_num_mpt_mthca_profile_10833 num_mpt mthca_profile 0 10833 &enable_so_gart_end_crash_elf_data_10833
152867 +enable_so_rsrc_start_usb_hcd_10839 rsrc_start usb_hcd 0 10839 NULL
152868 +enable_so_do_generic_file_read_fndecl_10842 do_generic_file_read fndecl 0-4 10842 NULL
152869 +enable_so_get_cmdline_fndecl_10847 get_cmdline fndecl 3 10847 NULL
152870 +enable_so_dma_last_offset_ivtv_stream_10849 dma_last_offset ivtv_stream 0 10849 NULL
152871 +enable_so_set_le_fndecl_10854 set_le fndecl 4 10854 NULL nohasharray
152872 +enable_so_rndis_add_response_fndecl_10854 rndis_add_response fndecl 2 10854 &enable_so_set_le_fndecl_10854
152873 +enable_so_v_size_nilfs_argv_10857 v_size nilfs_argv 0 10857 NULL
152874 +enable_so_h_stk_size_10859 h stk_size 0 10859 NULL
152875 +enable_so_size_fuse_notify_retrieve_out_10862 size fuse_notify_retrieve_out 0 10862 NULL
152876 +enable_so_disk_expand_part_tbl_fndecl_10866 disk_expand_part_tbl fndecl 2 10866 NULL
152877 +enable_so_command_p_header95_10867 command p_header95 0 10867 NULL
152878 +enable_so_ezusb_fill_req_fndecl_10868 ezusb_fill_req fndecl 0-2 10868 NULL nohasharray
152879 +enable_so_ts_packet_count_cx23885_tsport_10868 ts_packet_count cx23885_tsport 0 10868 &enable_so_ezusb_fill_req_fndecl_10868
152880 +enable_so_p9stat_read_fndecl_10869 p9stat_read fndecl 3 10869 NULL
152881 +enable_so_spi_xmit_fndecl_10874 spi_xmit fndecl 3 10874 NULL
152882 +enable_so_pci_mmconfig_alloc_fndecl_10875 pci_mmconfig_alloc fndecl 2-3-4 10875 NULL
152883 +enable_so_w9968cf_pkt_scan_fndecl_10878 w9968cf_pkt_scan fndecl 3 10878 NULL
152884 +enable_so_sgl_map_user_pages_fndecl_10881 sgl_map_user_pages fndecl 3-2 10881 NULL
152885 +enable_so_num_streams_lola_pcm_10882 num_streams lola_pcm 0 10882 NULL
152886 +enable_so_run_apei_exec_ins_type_10886 run apei_exec_ins_type 0 10886 NULL
152887 +enable_so_drv_tss_rings_qlcnic_adapter_10887 drv_tss_rings qlcnic_adapter 0 10887 NULL
152888 +enable_so_spu_write_fndecl_10889 spu_write fndecl 4 10889 NULL
152889 +enable_so_ocfs2_reflink_xattr_rec_fndecl_10890 ocfs2_reflink_xattr_rec fndecl 3 10890 NULL
152890 +enable_so_max_sge_per_wr_iwch_rnic_attributes_10892 max_sge_per_wr iwch_rnic_attributes 0 10892 NULL
152891 +enable_so_ecryptfs_lower_header_size_fndecl_10894 ecryptfs_lower_header_size fndecl 0 10894 NULL
152892 +enable_so_slot_device_offset_controller_10895 slot_device_offset controller 0 10895 NULL
152893 +enable_so_table_size_acpi_einj_trigger_10899 table_size acpi_einj_trigger 0 10899 NULL
152894 +enable_so_i2c_hid_get_report_length_fndecl_10901 i2c_hid_get_report_length fndecl 0 10901 NULL nohasharray
152895 +enable_so_n_cell_devs_intel_soc_pmic_config_10901 n_cell_devs intel_soc_pmic_config 0 10901 &enable_so_i2c_hid_get_report_length_fndecl_10901
152896 +enable_so_udf_read_ptagged_fndecl_10905 udf_read_ptagged fndecl 3 10905 NULL
152897 +enable_so_vfio_lock_acct_fndecl_10907 vfio_lock_acct fndecl 1 10907 NULL
152898 +enable_so_msix_vector_count_MPT2SAS_ADAPTER_10911 msix_vector_count MPT2SAS_ADAPTER 0 10911 NULL
152899 +enable_so_SyS_listxattr_fndecl_10916 SyS_listxattr fndecl 3 10916 NULL
152900 +enable_so_data_len_rndis_packet_10918 data_len rndis_packet 0 10918 NULL nohasharray
152901 +enable_so_compat_sys_msgsnd_fndecl_10918 compat_sys_msgsnd fndecl 3 10918 &enable_so_data_len_rndis_packet_10918
152902 +enable_so_isdn_audio_adpcm2xlaw_fndecl_10927 isdn_audio_adpcm2xlaw fndecl 0 10927 NULL
152903 +enable_so_ieee802154_max_payload_fndecl_10928 ieee802154_max_payload fndecl 0 10928 NULL
152904 +enable_so_ud_bmove_fndecl_10929 ud_bmove fndecl 8-6-4-7-5-3 10929 NULL
152905 +enable_so_ieee80211_if_read_dot11MeshAwakeWindowDuration_fndecl_10932 ieee80211_if_read_dot11MeshAwakeWindowDuration fndecl 3 10932 NULL
152906 +enable_so_dma_acm_rb_10934 dma acm_rb 0 10934 NULL
152907 +enable_so_l_offset_lbuf_10935 l_offset lbuf 0 10935 NULL
152908 +enable_so_compat_raw_setsockopt_fndecl_10937 compat_raw_setsockopt fndecl 5 10937 NULL
152909 +enable_so_mlx5_ib_alloc_fast_reg_page_list_fndecl_10941 mlx5_ib_alloc_fast_reg_page_list fndecl 2 10941 NULL
152910 +enable_so_bmp_len_xfrm_replay_state_esn_10945 bmp_len xfrm_replay_state_esn 0 10945 NULL
152911 +enable_so_max_i2c_msg_len_r820t_config_10951 max_i2c_msg_len r820t_config 0 10951 NULL nohasharray
152912 +enable_so_acc_passl_accessdata_dn_10951 acc_passl accessdata_dn 0 10951 &enable_so_max_i2c_msg_len_r820t_config_10951
152913 +enable_so_num_lan_qps_i40e_pf_10953 num_lan_qps i40e_pf 0 10953 NULL
152914 +enable_so_iov_iter_init_fndecl_10954 iov_iter_init fndecl 5-4 10954 NULL
152915 +enable_so_dest_offset_btrfs_ioctl_clone_range_args_10960 dest_offset btrfs_ioctl_clone_range_args 0 10960 NULL
152916 +enable_so_drm_fb_helper_fill_fix_fndecl_10963 drm_fb_helper_fill_fix fndecl 2 10963 NULL
152917 +enable_so_brd_alloc_fndecl_10964 brd_alloc fndecl 1 10964 NULL
152918 +enable_so_jffs2_flash_read_fndecl_10968 jffs2_flash_read fndecl 0 10968 NULL
152919 +enable_so_agp_remap_fndecl_10970 agp_remap fndecl 2 10970 NULL
152920 +enable_so_sys_ftruncate_fndecl_10972 sys_ftruncate fndecl 2 10972 NULL
152921 +enable_so_encrypted_key_size_ecryptfs_session_key_10978 encrypted_key_size ecryptfs_session_key 0 10978 NULL nohasharray
152922 +enable_so_buffer_count_drm_i915_gem_execbuffer_10978 buffer_count drm_i915_gem_execbuffer 0 10978 &enable_so_encrypted_key_size_ecryptfs_session_key_10978
152923 +enable_so_ssid_len_wl1271_scan_10981 ssid_len wl1271_scan 0 10981 NULL
152924 +enable_so_lbs_wrbbp_write_fndecl_10987 lbs_wrbbp_write fndecl 3 10987 NULL
152925 +enable_so_l2cap_build_conf_rsp_fndecl_10988 l2cap_build_conf_rsp fndecl 0 10988 NULL
152926 +enable_so_msize_vardecl_pmc551_c_10989 msize vardecl_pmc551.c 0 10989 NULL nohasharray
152927 +enable_so_vxfs_blkiget_fndecl_10989 vxfs_blkiget fndecl 3-2 10989 &enable_so_msize_vardecl_pmc551_c_10989
152928 +enable_so_height_v4l2_rect_10995 height v4l2_rect 0 10995 NULL
152929 +enable_so_punit_size2_intel_pmc_ipc_dev_10998 punit_size2 intel_pmc_ipc_dev 0 10998 NULL
152930 +enable_so_l2nbperpage_jfs_sb_info_11000 l2nbperpage jfs_sb_info 0 11000 NULL
152931 +enable_so_dccp_setsockopt_ccid_fndecl_11006 dccp_setsockopt_ccid fndecl 4 11006 NULL
152932 +enable_so_drm_gtf2_m_fndecl_11007 drm_gtf2_m fndecl 0 11007 NULL
152933 +enable_so_SyS_semop_fndecl_11008 SyS_semop fndecl 3 11008 NULL
152934 +enable_so_height_v4l2_pix_format_mplane_11015 height v4l2_pix_format_mplane 0 11015 NULL
152935 +enable_so_xferred_ScsiReqBlk_11017 xferred ScsiReqBlk 0 11017 NULL
152936 +enable_so_target_cmd_size_check_fndecl_11019 target_cmd_size_check fndecl 2 11019 NULL
152937 +enable_so_rx_pkt_pad_sge_11020 rx_pkt_pad sge 0 11020 NULL
152938 +enable_so_len_hif_scatter_req_11022 len hif_scatter_req 0 11022 NULL
152939 +enable_so_error_bio_batch_11023 error bio_batch 0 11023 NULL
152940 +enable_so_register_virtio_driver_fndecl_11025 register_virtio_driver fndecl 0 11025 NULL
152941 +enable_so_preallocate_pcm_pages_fndecl_11026 preallocate_pcm_pages fndecl 2 11026 NULL
152942 +enable_so_count_vfio_irq_set_11027 count vfio_irq_set 0 11027 NULL
152943 +enable_so_drm_dp_sideband_msg_build_fndecl_11028 drm_dp_sideband_msg_build fndecl 3 11028 NULL
152944 +enable_so_len_nfs3_mknodargs_11030 len nfs3_mknodargs 0 11030 NULL
152945 +enable_so_snd_ac97_pcm_assign_fndecl_11033 snd_ac97_pcm_assign fndecl 2 11033 NULL
152946 +enable_so_sectors_per_block_pool_11035 sectors_per_block pool 0 11035 NULL nohasharray
152947 +enable_so_audio_outs_vx_core_11035 audio_outs vx_core 0 11035 &enable_so_sectors_per_block_pool_11035
152948 +enable_so_namelen_xfs_dir2_data_entry_11036 namelen xfs_dir2_data_entry 0 11036 NULL nohasharray
152949 +enable_so_ep_msg_in_peak_usb_device_11036 ep_msg_in peak_usb_device 0 11036 &enable_so_namelen_xfs_dir2_data_entry_11036
152950 +enable_so_iic_tpm_write_fndecl_11039 iic_tpm_write fndecl 3 11039 NULL
152951 +enable_so_DataTransferLength_DAC960_V2_UserCommand_11040 DataTransferLength DAC960_V2_UserCommand 0 11040 NULL
152952 +enable_so_xlog_write_log_records_fndecl_11042 xlog_write_log_records fndecl 4-3 11042 NULL
152953 +enable_so_isr_pci_pm_read_fndecl_11052 isr_pci_pm_read fndecl 3 11052 NULL
152954 +enable_so_va_size_coda_vattr_11053 va_size coda_vattr 0 11053 NULL
152955 +enable_so_drbd_send_drequest_fndecl_11057 drbd_send_drequest fndecl 3-4 11057 NULL
152956 +enable_so_do_mlock_fndecl_11062 do_mlock fndecl 2-1 11062 NULL
152957 +enable_so_default_rds_buf_vardecl_fmdrv_common_c_11072 default_rds_buf vardecl_fmdrv_common.c 0 11072 NULL
152958 +enable_so_i2c_writebytes_fndecl_11073 i2c_writebytes fndecl 4 11073 NULL
152959 +enable_so_ib_agent_port_open_fndecl_11074 ib_agent_port_open fndecl 2 11074 NULL nohasharray
152960 +enable_so_show_attribute_configfs_item_operations_11074 show_attribute configfs_item_operations 0 11074 &enable_so_ib_agent_port_open_fndecl_11074
152961 +enable_so_pipeline_sec_frag_swi_read_fndecl_11077 pipeline_sec_frag_swi_read fndecl 3 11077 NULL
152962 +enable_so_entry_fat_entry_11079 entry fat_entry 0 11079 NULL
152963 +enable_so_irda_sendmsg_dgram_fndecl_11080 irda_sendmsg_dgram fndecl 3 11080 NULL
152964 +enable_so_tx_load_dma_buffer_fndecl_11082 tx_load_dma_buffer fndecl 3 11082 NULL
152965 +enable_so_compat_readv_fndecl_11090 compat_readv fndecl 3 11090 NULL
152966 +enable_so_snd_pcm_new_internal_fndecl_11091 snd_pcm_new_internal fndecl 4-5 11091 NULL
152967 +enable_so_read_bytes_sh_flctl_11094 read_bytes sh_flctl 0 11094 NULL
152968 +enable_so_do_brk_fndecl_11101 do_brk fndecl 1-2 11101 NULL
152969 +enable_so_acpi_processor_power_verify_fndecl_11105 acpi_processor_power_verify fndecl 0 11105 NULL
152970 +enable_so_ext4_acl_from_disk_fndecl_11107 ext4_acl_from_disk fndecl 2 11107 NULL nohasharray
152971 +enable_so___getblk_gfp_fndecl_11107 __getblk_gfp fndecl 3-2 11107 &enable_so_ext4_acl_from_disk_fndecl_11107
152972 +enable_so_wm9081_set_sysclk_fndecl_11108 wm9081_set_sysclk fndecl 4 11108 NULL nohasharray
152973 +enable_so_wTotalBlockNumber_ms_bootblock_sysinf_11108 wTotalBlockNumber ms_bootblock_sysinf 0 11108 &enable_so_wm9081_set_sysclk_fndecl_11108
152974 +enable_so_addr_last_netup_dma_11114 addr_last netup_dma 0 11114 NULL
152975 +enable_so_hpfs_ea_read_fndecl_11118 hpfs_ea_read fndecl 5-4-2 11118 NULL
152976 +enable_so__fdt_splice_string_fndecl_11123 _fdt_splice_string fndecl 2 11123 NULL
152977 +enable_so_whitebal_sd_gl860_11124 whitebal sd_gl860 0 11124 NULL
152978 +enable_so_n_channels_iwl_mcc_update_resp_11128 n_channels iwl_mcc_update_resp 0 11128 NULL
152979 +enable_so___vmalloc_node_flags_fndecl_11139 __vmalloc_node_flags fndecl 1 11139 NULL
152980 +enable_so_num__cdrp_cmd_11142 num _cdrp_cmd 0 11142 NULL
152981 +enable_so_pageshift_nand_flash_dev_11144 pageshift nand_flash_dev 0 11144 NULL
152982 +enable_so_queue_depth_nullb_queue_11148 queue_depth nullb_queue 0 11148 NULL
152983 +enable_so_max_voices_snd_emux_11150 max_voices snd_emux 0 11150 NULL
152984 +enable_so_generic_ptrace_pokedata_fndecl_11153 generic_ptrace_pokedata fndecl 2 11153 NULL
152985 +enable_so_o2nm_this_node_fndecl_11157 o2nm_this_node fndecl 0 11157 NULL
152986 +enable_so_resource_from_user_fndecl_11158 resource_from_user fndecl 3 11158 NULL
152987 +enable_so_batadv_bla_add_claim_fndecl_11159 batadv_bla_add_claim fndecl 3 11159 NULL
152988 +enable_so_tclass_mlx5_av_11167 tclass mlx5_av 0 11167 NULL
152989 +enable_so_rmtvaluelen2_xfs_da_args_11168 rmtvaluelen2 xfs_da_args 0 11168 NULL
152990 +enable_so_FlNum_hfs_cat_file_11169 FlNum hfs_cat_file 0 11169 NULL nohasharray
152991 +enable_so_drv_rss_rings_qlcnic_adapter_11169 drv_rss_rings qlcnic_adapter 0 11169 &enable_so_FlNum_hfs_cat_file_11169
152992 +enable_so_max_supported_extcon_dev_11172 max_supported extcon_dev 0 11172 NULL
152993 +enable_so_udf_tread_fndecl_11173 udf_tread fndecl 2 11173 NULL
152994 +enable_so_payload_len_fc_bsg_buffer_11175 payload_len fc_bsg_buffer 0 11175 NULL
152995 +enable_so_c4iw_init_resource_fndecl_11178 c4iw_init_resource fndecl 2-3 11178 NULL
152996 +enable_so_jp_journal_1st_block_journal_params_11180 jp_journal_1st_block journal_params 0 11180 NULL
152997 +enable_so_ilo_major_vardecl_hpilo_c_11181 ilo_major vardecl_hpilo.c 0 11181 NULL
152998 +enable_so_xtInsert_fndecl_11182 xtInsert fndecl 5-4 11182 NULL
152999 +enable_so_resp_len_pn533_cmd_11192 resp_len pn533_cmd 0 11192 NULL nohasharray
153000 +enable_so_sys_get_mempolicy_fndecl_11192 sys_get_mempolicy fndecl 4-3 11192 &enable_so_resp_len_pn533_cmd_11192
153001 +enable_so_resid_virtio_scsi_cmd_resp_11193 resid virtio_scsi_cmd_resp 0 11193 NULL
153002 +enable_so_nr_pins_timbgpio_platform_data_11195 nr_pins timbgpio_platform_data 0 11195 NULL
153003 +enable_so_mangle_sdp_packet_fndecl_11198 mangle_sdp_packet fndecl 2-10 11198 NULL
153004 +enable_so_snoop_send_pio_handler_fndecl_11203 snoop_send_pio_handler fndecl 3 11203 NULL
153005 +enable_so_vb2_fop_write_fndecl_11207 vb2_fop_write fndecl 3 11207 NULL
153006 +enable_so_used_bytes_ubi_volume_info_11209 used_bytes ubi_volume_info 0 11209 NULL
153007 +enable_so_mq_create_fndecl_11210 mq_create fndecl 1 11210 NULL nohasharray
153008 +enable_so_lstcon_session_info_fndecl_11210 lstcon_session_info fndecl 6 11210 &enable_so_mq_create_fndecl_11210
153009 +enable_so_tx_tx_template_prepared_read_fndecl_11211 tx_tx_template_prepared_read fndecl 3 11211 NULL
153010 +enable_so_num_encoder_drm_mode_config_11220 num_encoder drm_mode_config 0 11220 NULL
153011 +enable_so_max_flash_intensity_adp1653_platform_data_11225 max_flash_intensity adp1653_platform_data 0 11225 NULL
153012 +enable_so_bcd2000_dump_buffer_fndecl_11234 bcd2000_dump_buffer fndecl 3 11234 NULL
153013 +enable_so_hiwat_bus_param_11240 hiwat bus_param 0 11240 NULL
153014 +enable_so_hdr_len_ieee80211_cipher_scheme_11241 hdr_len ieee80211_cipher_scheme 0 11241 NULL
153015 +enable_so_enable_write_fndecl_11243 enable_write fndecl 3 11243 NULL
153016 +enable_so_tx_tx_template_programmed_read_fndecl_11246 tx_tx_template_programmed_read fndecl 3 11246 NULL
153017 +enable_so_nfsd_get_default_max_blksize_fndecl_11251 nfsd_get_default_max_blksize fndecl 0 11251 NULL
153018 +enable_so_ds1305_nvram_write_fndecl_11267 ds1305_nvram_write fndecl 6 11267 NULL
153019 +enable_so_hactive_videomode_11268 hactive videomode 0 11268 NULL nohasharray
153020 +enable_so_ubi_leb_read_sg_fndecl_11268 ubi_leb_read_sg fndecl 0 11268 &enable_so_hactive_videomode_11268
153021 +enable_so_btcx_align_fndecl_11269 btcx_align fndecl 4 11269 NULL
153022 +enable_so_snd_midi_event_encode_byte_fndecl_11281 snd_midi_event_encode_byte fndecl 0 11281 NULL
153023 +enable_so_btrfs_set_prop_fndecl_11284 btrfs_set_prop fndecl 4 11284 NULL
153024 +enable_so_exynos4_jpeg_get_output_buffer_size_fndecl_11286 exynos4_jpeg_get_output_buffer_size fndecl 0-3 11286 NULL
153025 +enable_so_push_rx_fndecl_11288 push_rx fndecl 3 11288 NULL
153026 +enable_so_snd_efw_resp_buf_size_vardecl_11291 snd_efw_resp_buf_size vardecl 0 11291 NULL
153027 +enable_so_mxuport_prepare_write_buffer_fndecl_11292 mxuport_prepare_write_buffer fndecl 3 11292 NULL
153028 +enable_so_alloc_test_extent_buffer_fndecl_11293 alloc_test_extent_buffer fndecl 2 11293 NULL
153029 +enable_so_newkey_nilfs_btnode_chkey_ctxt_11296 newkey nilfs_btnode_chkey_ctxt 0 11296 NULL
153030 +enable_so_max_pkt_size_stk1160_11297 max_pkt_size stk1160 0 11297 NULL
153031 +enable_so_wqe_shift_mthca_wq_11298 wqe_shift mthca_wq 0 11298 NULL
153032 +enable_so_remap_pfn_range_fndecl_11299 remap_pfn_range fndecl 3-4 11299 NULL
153033 +enable_so_data_len_ssif_info_11317 data_len ssif_info 0 11317 NULL
153034 +enable_so_buf_len_mwifiex_sdio_mpa_tx_11323 buf_len mwifiex_sdio_mpa_tx 0 11323 NULL
153035 +enable_so_len_brcmf_vndr_dcmd_hdr_11327 len brcmf_vndr_dcmd_hdr 0 11327 NULL nohasharray
153036 +enable_so_alloc_sched_domains_fndecl_11327 alloc_sched_domains fndecl 1 11327 &enable_so_len_brcmf_vndr_dcmd_hdr_11327
153037 +enable_so_back_xfs_da_blkinfo_11330 back xfs_da_blkinfo 0 11330 NULL
153038 +enable_so_page_size_ib_umem_11335 page_size ib_umem 0 11335 NULL
153039 +enable_so_out_len_tso_state_11337 out_len tso_state 0 11337 NULL
153040 +enable_so_charcount_console_font_11338 charcount console_font 0 11338 NULL
153041 +enable_so_command_p_header100_11343 command p_header100 0 11343 NULL
153042 +enable_so_s_sbbase_ufs_sb_private_info_11344 s_sbbase ufs_sb_private_info 0 11344 NULL
153043 +enable_so_hci_sock_setsockopt_fndecl_11346 hci_sock_setsockopt fndecl 5 11346 NULL
153044 +enable_so_update_devnum_fndecl_11348 update_devnum fndecl 2 11348 NULL
153045 +enable_so_buffer_length_usbdevfs_urb_11350 buffer_length usbdevfs_urb 0 11350 NULL
153046 +enable_so_nilfs_cpfile_delete_checkpoints_fndecl_11352 nilfs_cpfile_delete_checkpoints fndecl 2-3 11352 NULL
153047 +enable_so_vlanid_full_rx_done_desc_11354 vlanid full_rx_done_desc 0 11354 NULL
153048 +enable_so_n_pfns_xen_memory_region_11357 n_pfns xen_memory_region 0 11357 NULL
153049 +enable_so_fd_execute_rw_fndecl_11359 fd_execute_rw fndecl 3 11359 NULL
153050 +enable_so_amdgpu_gem_object_create_fndecl_11366 amdgpu_gem_object_create fndecl 2 11366 NULL nohasharray
153051 +enable_so_clkrc_div_ov965x_interval_11366 clkrc_div ov965x_interval 0 11366 &enable_so_amdgpu_gem_object_create_fndecl_11366
153052 +enable_so_ieee80211_if_read_ht_opmode_fndecl_11367 ieee80211_if_read_ht_opmode fndecl 3 11367 NULL
153053 +enable_so_tso_fragment_fndecl_11369 tso_fragment fndecl 3 11369 NULL
153054 +enable_so_build_dpcd_write_fndecl_11376 build_dpcd_write fndecl 4 11376 NULL
153055 +enable_so_xz_dec_init_fndecl_11382 xz_dec_init fndecl 2 11382 NULL
153056 +enable_so_sync_io_fndecl_11385 sync_io fndecl 0 11385 NULL
153057 +enable_so_alloc_streams_hc_driver_11390 alloc_streams hc_driver 0 11390 NULL
153058 +enable_so_sctp_getsockopt_assoc_stats_fndecl_11393 sctp_getsockopt_assoc_stats fndecl 2 11393 NULL
153059 +enable_so_txs_vardecl_ambassador_c_11398 txs vardecl_ambassador.c 0 11398 NULL
153060 +enable_so_setup_data_setup_header_11411 setup_data setup_header 0 11411 NULL
153061 +enable_so_in_args_qlcnic_mailbox_metadata_11413 in_args qlcnic_mailbox_metadata 0 11413 NULL
153062 +enable_so_iso_packets_buffer_init_fndecl_11414 iso_packets_buffer_init fndecl 3-4 11414 NULL
153063 +enable_so_lpfc_idiag_extacc_drivr_get_fndecl_11416 lpfc_idiag_extacc_drivr_get fndecl 3-0 11416 NULL
153064 +enable_so_cnt_qib_ctxtdata_11417 cnt qib_ctxtdata 0 11417 NULL
153065 +enable_so_smt_build_frame_fndecl_11428 smt_build_frame fndecl 4 11428 NULL
153066 +enable_so_isdn_ppp_write_fndecl_11430 isdn_ppp_write fndecl 4 11430 NULL
153067 +enable_so_rxBytesRemaining_edgeport_serial_11436 rxBytesRemaining edgeport_serial 0 11436 NULL nohasharray
153068 +enable_so_rule_cnt_ethtool_rxnfc_11436 rule_cnt ethtool_rxnfc 0 11436 &enable_so_rxBytesRemaining_edgeport_serial_11436
153069 +enable_so_iwl_dbgfs_log_event_write_fndecl_11443 iwl_dbgfs_log_event_write fndecl 3 11443 NULL
153070 +enable_so_llsec_do_decrypt_auth_fndecl_11445 llsec_do_decrypt_auth fndecl 0 11445 NULL
153071 +enable_so_ccp_init_dm_workarea_fndecl_11450 ccp_init_dm_workarea fndecl 3 11450 NULL
153072 +enable_so___compat_sys_preadv64_fndecl_11452 __compat_sys_preadv64 fndecl 3 11452 NULL
153073 +enable_so_wmi_evt_tx_mgmt_fndecl_11458 wmi_evt_tx_mgmt fndecl 4 11458 NULL
153074 +enable_so_proc_scsi_write_fndecl_11461 proc_scsi_write fndecl 3 11461 NULL
153075 +enable_so_reshape_ring_fndecl_11464 reshape_ring fndecl 2 11464 NULL
153076 +enable_so_len_cq_rsp_desc_11465 len_cq rsp_desc 0 11465 NULL
153077 +enable_so_NFTL_findfreeblock_fndecl_11466 NFTL_findfreeblock fndecl 0 11466 NULL
153078 +enable_so_lower_margin_fb_var_screeninfo_11469 lower_margin fb_var_screeninfo 0 11469 NULL
153079 +enable_so_id_header_size_perf_event_11470 id_header_size perf_event 0 11470 NULL
153080 +enable_so_sdhci_execute_tuning_fndecl_11471 sdhci_execute_tuning fndecl 2 11471 NULL
153081 +enable_so_ieee80211_send_bar_fndecl_11472 ieee80211_send_bar fndecl 3 11472 NULL
153082 +enable_so_hsync_len_videomode_11474 hsync_len videomode 0 11474 NULL
153083 +enable_so_iov_shorten_fndecl_11481 iov_shorten fndecl 3 11481 NULL nohasharray
153084 +enable_so_c_cpos_ocfs2_write_cluster_desc_11481 c_cpos ocfs2_write_cluster_desc 0 11481 &enable_so_iov_shorten_fndecl_11481
153085 +enable_so_num_crtc_drm_mode_config_11484 num_crtc drm_mode_config 0 11484 NULL
153086 +enable_so_count_e1000_ring_11491 count e1000_ring 0 11491 NULL
153087 +enable_so_get_ablock_fndecl_11495 get_ablock fndecl 2 11495 NULL nohasharray
153088 +enable_so_length_RioCommand_11495 length RioCommand 0 11495 &enable_so_get_ablock_fndecl_11495
153089 +enable_so_batadv_max_header_len_fndecl_11496 batadv_max_header_len fndecl 0 11496 NULL
153090 +enable_so_qcaspi_write_burst_fndecl_11497 qcaspi_write_burst fndecl 3 11497 NULL
153091 +enable_so_prepare_write_buffer_usb_serial_driver_11498 prepare_write_buffer usb_serial_driver 0 11498 NULL
153092 +enable_so_context_struct_to_string_fndecl_11502 context_struct_to_string fndecl 0 11502 NULL
153093 +enable_so_w_cpos_ocfs2_write_ctxt_11503 w_cpos ocfs2_write_ctxt 0 11503 NULL
153094 +enable_so_period_bytes_max_snd_pcm_hardware_11507 period_bytes_max snd_pcm_hardware 0 11507 NULL
153095 +enable_so_virtio_read_fndecl_11512 virtio_read fndecl 3 11512 NULL
153096 +enable_so_adau1701_register_size_fndecl_11523 adau1701_register_size fndecl 0 11523 NULL
153097 +enable_so_kvm_mmu_get_page_fndecl_11527 kvm_mmu_get_page fndecl 2 11527 NULL
153098 +enable_so_ccw_putcs_fndecl_11532 ccw_putcs fndecl 4-5-6 11532 NULL
153099 +enable_so_llcp_add_tlv_fndecl_11542 llcp_add_tlv fndecl 3 11542 NULL
153100 +enable_so_max_transfer_size_s2255_pipeinfo_11546 max_transfer_size s2255_pipeinfo 0 11546 NULL
153101 +enable_so_screen_height_vardecl_hyperv_fb_c_11550 screen_height vardecl_hyperv_fb.c 0 11550 NULL
153102 +enable_so_spi_sync_locked_fndecl_11557 spi_sync_locked fndecl 0 11557 NULL
153103 +enable_so_dm_startbit_adfs_discmap_11559 dm_startbit adfs_discmap 0 11559 NULL
153104 +enable_so_drm_plane_init_fndecl_11560 drm_plane_init fndecl 6 11560 NULL
153105 +enable_so_avail_in_z_stream_s_11562 avail_in z_stream_s 0 11562 NULL
153106 +enable_so_dataxfer_length_hpt_iop_request_scsi_command_11566 dataxfer_length hpt_iop_request_scsi_command 0 11566 NULL
153107 +enable_so_rec_len_nilfs_dir_entry_11567 rec_len nilfs_dir_entry 0 11567 NULL
153108 +enable_so_balance_level_fndecl_11568 balance_level fndecl 0 11568 NULL
153109 +enable_so_cur_transfer_size_s2255_pipeinfo_11571 cur_transfer_size s2255_pipeinfo 0 11571 NULL nohasharray
153110 +enable_so_rx_remain_len_hif_device_usb_11571 rx_remain_len hif_device_usb 0 11571 &enable_so_cur_transfer_size_s2255_pipeinfo_11571
153111 +enable_so_find_compression_threshold_fndecl_11575 find_compression_threshold fndecl 3 11575 NULL nohasharray
153112 +enable_so___ocfs2_add_entry_fndecl_11575 __ocfs2_add_entry fndecl 4 11575 &enable_so_find_compression_threshold_fndecl_11575
153113 +enable_so_ram_header_offset_qxl_rom_11576 ram_header_offset qxl_rom 0 11576 NULL
153114 +enable_so_brcmf_fil_iovar_data_get_fndecl_11579 brcmf_fil_iovar_data_get fndecl 4 11579 NULL
153115 +enable_so_update_memcg_params_fndecl_11583 update_memcg_params fndecl 2 11583 NULL
153116 +enable_so_pwc_get_fps_fndecl_11588 pwc_get_fps fndecl 0 11588 NULL nohasharray
153117 +enable_so_next_index_jfs_inode_info_11588 next_index jfs_inode_info 0 11588 &enable_so_pwc_get_fps_fndecl_11588
153118 +enable_so_rpc_pipe_generic_upcall_fndecl_11597 rpc_pipe_generic_upcall fndecl 4 11597 NULL
153119 +enable_so_add_advertising_fndecl_11602 add_advertising fndecl 4 11602 NULL
153120 +enable_so_prev_free_msdos_sb_info_11603 prev_free msdos_sb_info 0 11603 NULL nohasharray
153121 +enable_so_spi_execute_fndecl_11603 spi_execute fndecl 5 11603 &enable_so_prev_free_msdos_sb_info_11603 nohasharray
153122 +enable_so_slave_num_vardecl_shdma_base_c_11603 slave_num vardecl_shdma-base.c 0 11603 &enable_so_spi_execute_fndecl_11603
153123 +enable_so_read_file_btcoex_fndecl_11604 read_file_btcoex fndecl 3 11604 NULL
153124 +enable_so_send_reply_fndecl_11610 send_reply fndecl 7 11610 NULL
153125 +enable_so_dvb_net_sec_callback_fndecl_11617 dvb_net_sec_callback fndecl 2 11617 NULL
153126 +enable_so_batadv_tt_hash_find_fndecl_11619 batadv_tt_hash_find fndecl 3 11619 NULL
153127 +enable_so_word1_atl1e_recv_ret_status_11620 word1 atl1e_recv_ret_status 0 11620 NULL
153128 +enable_so_btrfs_add_ordered_extent_dio_fndecl_11621 btrfs_add_ordered_extent_dio fndecl 4-2-5-3 11621 NULL
153129 +enable_so_dataLen_PVSCSIRingCmpDesc_11627 dataLen PVSCSIRingCmpDesc 0 11627 NULL
153130 +enable_so_acpi_register_ioapic_fndecl_11630 acpi_register_ioapic fndecl 3 11630 NULL
153131 +enable_so_posix_acl_init_fndecl_11632 posix_acl_init fndecl 2 11632 NULL nohasharray
153132 +enable_so_dtl1_write_fndecl_11632 dtl1_write fndecl 0 11632 &enable_so_posix_acl_init_fndecl_11632 nohasharray
153133 +enable_so_peek_head_len_fndecl_11632 peek_head_len fndecl 0 11632 &enable_so_dtl1_write_fndecl_11632
153134 +enable_so_num_mon_ceph_options_11640 num_mon ceph_options 0 11640 NULL
153135 +enable_so_ceph_sync_direct_write_fndecl_11641 ceph_sync_direct_write fndecl 0-3 11641 NULL
153136 +enable_so_vmw_execbuf_process_fndecl_11642 vmw_execbuf_process fndecl 5 11642 NULL
153137 +enable_so_ath6kl_get_num_reg_fndecl_11647 ath6kl_get_num_reg fndecl 0 11647 NULL
153138 +enable_so_bulk_size_cam_11663 bulk_size cam 0 11663 NULL
153139 +enable_so___setup_root_fndecl_11664 __setup_root fndecl 2-1 11664 NULL nohasharray
153140 +enable_so_num_snd_ratnum_11664 num snd_ratnum 0 11664 &enable_so___setup_root_fndecl_11664 nohasharray
153141 +enable_so_lpfc_sli4_bsg_set_internal_loopback_fndecl_11664 lpfc_sli4_bsg_set_internal_loopback fndecl 0 11664 &enable_so_num_snd_ratnum_11664
153142 +enable_so_sel_write_member_fndecl_11667 sel_write_member fndecl 3 11667 NULL
153143 +enable_so_align_pnp_mem_11669 align pnp_mem 0 11669 NULL
153144 +enable_so___btrfs_find_all_roots_fndecl_11682 __btrfs_find_all_roots fndecl 3 11682 NULL nohasharray
153145 +enable_so_vp_request_msix_vectors_fndecl_11682 vp_request_msix_vectors fndecl 2 11682 &enable_so___btrfs_find_all_roots_fndecl_11682
153146 +enable_so_i915_stolen_to_physical_fndecl_11685 i915_stolen_to_physical fndecl 0 11685 NULL nohasharray
153147 +enable_so_erasesize_mtd_erase_region_info_11685 erasesize mtd_erase_region_info 0 11685 &enable_so_i915_stolen_to_physical_fndecl_11685
153148 +enable_so_data_len_b43legacy_dfs_file_11690 data_len b43legacy_dfs_file 0 11690 NULL
153149 +enable_so_fill_note_info_fndecl_11692 fill_note_info fndecl 2 11692 NULL
153150 +enable_so_tx_tail_len_pn533_frame_ops_11694 tx_tail_len pn533_frame_ops 0 11694 NULL
153151 +enable_so_stride_efifb_dmi_info_11695 stride efifb_dmi_info 0 11695 NULL
153152 +enable_so_num_rates_wmi_rate_set_arg_11696 num_rates wmi_rate_set_arg 0 11696 NULL
153153 +enable_so_kernel_tree_alloc_fndecl_11698 kernel_tree_alloc fndecl 1 11698 NULL
153154 +enable_so_iwl_dbgfs_rxon_filter_flags_read_fndecl_11699 iwl_dbgfs_rxon_filter_flags_read fndecl 3 11699 NULL
153155 +enable_so_shared_mic_nid_ca0132_spec_11702 shared_mic_nid ca0132_spec 0 11702 NULL
153156 +enable_so___vma_reservation_common_fndecl_11707 __vma_reservation_common fndecl 3 11707 NULL nohasharray
153157 +enable_so_mwifiex_debug_mask_write_fndecl_11707 mwifiex_debug_mask_write fndecl 3 11707 &enable_so___vma_reservation_common_fndecl_11707
153158 +enable_so_phys_lcr_base__synclinkmp_info_11713 phys_lcr_base _synclinkmp_info 0 11713 NULL
153159 +enable_so_sizeof_partition_entry__gpt_header_11718 sizeof_partition_entry _gpt_header 0 11718 NULL
153160 +enable_so_ipv6_renew_options_fndecl_11728 ipv6_renew_options fndecl 5 11728 NULL
153161 +enable_so_ov511_pkt_scan_fndecl_11737 ov511_pkt_scan fndecl 3 11737 NULL
153162 +enable_so_length_v4l2_plane_11738 length v4l2_plane 0 11738 NULL nohasharray
153163 +enable_so_epp_total_pages_ptlrpc_enc_page_pool_11738 epp_total_pages ptlrpc_enc_page_pool 0 11738 &enable_so_length_v4l2_plane_11738
153164 +enable_so_gart_pin_size_radeon_device_11745 gart_pin_size radeon_device 0 11745 NULL
153165 +enable_so_symlink_size_squashfs_symlink_inode_11747 symlink_size squashfs_symlink_inode 0 11747 NULL
153166 +enable_so_log_num_cqs_mlx4_init_hca_param_11748 log_num_cqs mlx4_init_hca_param 0 11748 NULL
153167 +enable_so_lba_shift_nvme_ns_11763 lba_shift nvme_ns 0 11763 NULL nohasharray
153168 +enable_so_count_nfs_pgio_res_11763 count nfs_pgio_res 0 11763 &enable_so_lba_shift_nvme_ns_11763
153169 +enable_so_num_mtt_mthca_profile_11767 num_mtt mthca_profile 0 11767 NULL
153170 +enable_so_length_acpi_dmar_header_11768 length acpi_dmar_header 0 11768 NULL
153171 +enable_so_grow_buffers_fndecl_11774 grow_buffers fndecl 3-2 11774 NULL
153172 +enable_so_pci_scan_child_bus_fndecl_11784 pci_scan_child_bus fndecl 0 11784 NULL
153173 +enable_so_svc_pool_map_init_percpu_fndecl_11792 svc_pool_map_init_percpu fndecl 0 11792 NULL nohasharray
153174 +enable_so_iscsi_sw_tcp_session_create_fndecl_11792 iscsi_sw_tcp_session_create fndecl 3 11792 &enable_so_svc_pool_map_init_percpu_fndecl_11792
153175 +enable_so_find_vqs_virtio_config_ops_11797 find_vqs virtio_config_ops 0 11797 NULL
153176 +enable_so_p9_client_prepare_req_fndecl_11803 p9_client_prepare_req fndecl 3 11803 NULL
153177 +enable_so___kmalloc_node_fndecl_11804 __kmalloc_node fndecl 1 11804 NULL
153178 +enable_so_depth_cx23885_fmt_11806 depth cx23885_fmt 0 11806 NULL
153179 +enable_so_num_resources_nd_namespace_blk_11815 num_resources nd_namespace_blk 0 11815 NULL
153180 +enable_so_SyS_flistxattr_fndecl_11825 SyS_flistxattr fndecl 3 11825 NULL
153181 +enable_so_bufflen_alua_dh_data_11826 bufflen alua_dh_data 0 11826 NULL
153182 +enable_so_be_change_mtu_fndecl_11828 be_change_mtu fndecl 2 11828 NULL
153183 +enable_so_acpi_allocate_root_table_fndecl_11829 acpi_allocate_root_table fndecl 1 11829 NULL nohasharray
153184 +enable_so_do_register_entry_fndecl_11829 do_register_entry fndecl 4 11829 &enable_so_acpi_allocate_root_table_fndecl_11829
153185 +enable_so_atk_debugfs_ggrp_read_fndecl_11841 atk_debugfs_ggrp_read fndecl 3 11841 NULL
153186 +enable_so_length_TAG_TW_SG_Entry_ISO_11846 length TAG_TW_SG_Entry_ISO 0 11846 NULL
153187 +enable_so_mic_vringh_copy_fndecl_11848 mic_vringh_copy fndecl 4 11848 NULL
153188 +enable_so_num_crtc_mga_device_11851 num_crtc mga_device 0 11851 NULL
153189 +enable_so_number_of_packets_urb_11853 number_of_packets urb 0 11853 NULL nohasharray
153190 +enable_so_add_to_page_cache_lru_fndecl_11853 add_to_page_cache_lru fndecl 0 11853 &enable_so_number_of_packets_urb_11853
153191 +enable_so_sg_tablesize_srp_target_port_11858 sg_tablesize srp_target_port 0 11858 NULL
153192 +enable_so_btmrvl_pscmd_write_fndecl_11859 btmrvl_pscmd_write fndecl 3 11859 NULL
153193 +enable_so_frame_rate_sd_11862 frame_rate sd 0 11862 NULL
153194 +enable_so_s_nsegments_nilfs_super_block_11865 s_nsegments nilfs_super_block 0 11865 NULL
153195 +enable_so_wr_host_buf_pos_xilly_channel_11866 wr_host_buf_pos xilly_channel 0 11866 NULL
153196 +enable_so_heads_ssfdcr_record_11869 heads ssfdcr_record 0 11869 NULL
153197 +enable_so_domain_child_num_acl_role_label_11875 domain_child_num acl_role_label 0 11875 NULL
153198 +enable_so_idetape_queue_rw_tail_fndecl_11881 idetape_queue_rw_tail fndecl 3 11881 NULL
153199 +enable_so_alloc_empty_pages_fndecl_11885 alloc_empty_pages fndecl 2 11885 NULL nohasharray
153200 +enable_so_bochs_dispi_read_fndecl_11885 bochs_dispi_read fndecl 0 11885 &enable_so_alloc_empty_pages_fndecl_11885 nohasharray
153201 +enable_so_leaf_dealloc_fndecl_11885 leaf_dealloc fndecl 4-3 11885 &enable_so_bochs_dispi_read_fndecl_11885
153202 +enable_so_f_width_gsc_frame_11886 f_width gsc_frame 0 11886 NULL
153203 +enable_so_num_channels_iw_scan_req_11889 num_channels iw_scan_req 0 11889 NULL
153204 +enable_so_vfs_read_fndecl_11892 vfs_read fndecl 3-0 11892 NULL nohasharray
153205 +enable_so_chap_string_to_hex_fndecl_11892 chap_string_to_hex fndecl 0-3 11892 &enable_so_vfs_read_fndecl_11892
153206 +enable_so_llcp_tlv16_fndecl_11893 llcp_tlv16 fndecl 0 11893 NULL
153207 +enable_so_flaglen_ring_desc_ex_11894 flaglen ring_desc_ex 0 11894 NULL
153208 +enable_so_set_brk_fndecl_11900 set_brk fndecl 1-2 11900 NULL
153209 +enable_so_libipw_change_mtu_fndecl_11901 libipw_change_mtu fndecl 2 11901 NULL
153210 +enable_so_fw_dump_size_scsi_qla_host_11903 fw_dump_size scsi_qla_host 0 11903 NULL
153211 +enable_so_iwl_dbgfs_missed_beacon_write_fndecl_11905 iwl_dbgfs_missed_beacon_write fndecl 3 11905 NULL
153212 +enable_so_mwifiex_histogram_read_fndecl_11910 mwifiex_histogram_read fndecl 3 11910 NULL
153213 +enable_so_num_dma_mlx5e_tx_skb_cb_11911 num_dma mlx5e_tx_skb_cb 0 11911 NULL nohasharray
153214 +enable_so_snd_device_new_fndecl_11911 snd_device_new fndecl 0 11911 &enable_so_num_dma_mlx5e_tx_skb_cb_11911
153215 +enable_so_dio_set_defer_completion_fndecl_11916 dio_set_defer_completion fndecl 0 11916 NULL
153216 +enable_so_residual_length_atto_vda_scsi_rsp_11918 residual_length atto_vda_scsi_rsp 0 11918 NULL
153217 +enable_so_lbs_lowsnr_read_fndecl_11920 lbs_lowsnr_read fndecl 3 11920 NULL
153218 +enable_so_p9_fd_read_fndecl_11921 p9_fd_read fndecl 3-0 11921 NULL
153219 +enable_so_kvm_read_guest_virt_system_fndecl_11922 kvm_read_guest_virt_system fndecl 4-2 11922 NULL
153220 +enable_so_tx_buffer_count_hso_serial_11927 tx_buffer_count hso_serial 0 11927 NULL
153221 +enable_so_orig_start_move_extent_11928 orig_start move_extent 0 11928 NULL
153222 +enable_so_length_p_header100_11933 length p_header100 0 11933 NULL
153223 +enable_so_ext4_move_extents_fndecl_11935 ext4_move_extents fndecl 5-3-4 11935 NULL
153224 +enable_so_alloc_low_pages_fndecl_11940 alloc_low_pages fndecl 1 11940 NULL nohasharray
153225 +enable_so_v9fs_remote_get_acl_fndecl_11940 v9fs_remote_get_acl fndecl 4 11940 &enable_so_alloc_low_pages_fndecl_11940
153226 +enable_so_mss_request_sock_11943 mss request_sock 0 11943 NULL
153227 +enable_so_spi_write_fndecl_11948 spi_write fndecl 0 11948 NULL
153228 +enable_so_choose_data_offset_fndecl_11950 choose_data_offset fndecl 0 11950 NULL
153229 +enable_so_bpp_bdisp_fmt_11954 bpp bdisp_fmt 0 11954 NULL
153230 +enable_so_qla4_82xx_pci_set_window_fndecl_11958 qla4_82xx_pci_set_window fndecl 0-2 11958 NULL
153231 +enable_so_osc_cached_mb_seq_write_fndecl_11961 osc_cached_mb_seq_write fndecl 3 11961 NULL
153232 +enable_so_fdt_subnode_offset_namelen_fndecl_11971 fdt_subnode_offset_namelen fndecl 2-0 11971 NULL
153233 +enable_so_bsg_major_vardecl_bsg_c_11972 bsg_major vardecl_bsg.c 0 11972 NULL
153234 +enable_so_sctp_make_abort_user_fndecl_11973 sctp_make_abort_user fndecl 3 11973 NULL nohasharray
153235 +enable_so_spmi_controller_alloc_fndecl_11973 spmi_controller_alloc fndecl 2 11973 &enable_so_sctp_make_abort_user_fndecl_11973
153236 +enable_so_pcpu_nr_groups_vardecl_percpu_c_11974 pcpu_nr_groups vardecl_percpu.c 0 11974 NULL
153237 +enable_so_ath10k_htt_rx_crypto_param_len_fndecl_11982 ath10k_htt_rx_crypto_param_len fndecl 0 11982 NULL
153238 +enable_so_total_mapping_size_fndecl_11985 total_mapping_size fndecl 0 11985 NULL
153239 +enable_so_ssp_create_msg_fndecl_11986 ssp_create_msg fndecl 2 11986 NULL
153240 +enable_so_tx_frag_cache_hit_read_fndecl_11988 tx_frag_cache_hit_read fndecl 3 11988 NULL
153241 +enable_so_x_size_mms114_platform_data_11991 x_size mms114_platform_data 0 11991 NULL
153242 +enable_so_virtualUnits_INFTLPartition_11994 virtualUnits INFTLPartition 0 11994 NULL
153243 +enable_so_rx_buffer_size_peak_usb_adapter_11997 rx_buffer_size peak_usb_adapter 0 11997 NULL
153244 +enable_so_ib_umad_init_port_fndecl_12004 ib_umad_init_port fndecl 2 12004 NULL
153245 +enable_so_error_data_insert_op_12006 error data_insert_op 0 12006 NULL
153246 +enable_so___btrfs_setxattr_fndecl_12010 __btrfs_setxattr fndecl 5 12010 NULL
153247 +enable_so___nlmsg_put_fndecl_12014 __nlmsg_put fndecl 5 12014 NULL nohasharray
153248 +enable_so_lustre_posix_acl_xattr_2ext_fndecl_12014 lustre_posix_acl_xattr_2ext fndecl 2 12014 &enable_so___nlmsg_put_fndecl_12014
153249 +enable_so_acl_cnt_xfs_acl_12016 acl_cnt xfs_acl 0 12016 NULL
153250 +enable_so_rfcomm_sock_sendmsg_fndecl_12022 rfcomm_sock_sendmsg fndecl 3 12022 NULL nohasharray
153251 +enable_so_br_send_bpdu_fndecl_12022 br_send_bpdu fndecl 3 12022 &enable_so_rfcomm_sock_sendmsg_fndecl_12022
153252 +enable_so_yres_fb_var_screeninfo_12023 yres fb_var_screeninfo 0 12023 NULL
153253 +enable_so_xfs_dir2_sf_addname_easy_fndecl_12024 xfs_dir2_sf_addname_easy fndecl 4 12024 NULL
153254 +enable_so_sisusb_write_mem_bulk_fndecl_12029 sisusb_write_mem_bulk fndecl 4 12029 NULL
153255 +enable_so_alloc_group_attrs_fndecl_12032 alloc_group_attrs fndecl 3 12032 NULL nohasharray
153256 +enable_so_wusb_prf_256_fndecl_12032 wusb_prf_256 fndecl 7 12032 &enable_so_alloc_group_attrs_fndecl_12032
153257 +enable_so_drm_property_create_enum_fndecl_12034 drm_property_create_enum fndecl 5 12034 NULL
153258 +enable_so_comedi_alloc_subdevices_fndecl_12036 comedi_alloc_subdevices fndecl 2 12036 NULL
153259 +enable_so_scsi_cmds_max_iscsi_session_12037 scsi_cmds_max iscsi_session 0 12037 NULL
153260 +enable_so_rf_suballoc_bit_ocfs2_refcount_block_12038 rf_suballoc_bit ocfs2_refcount_block 0 12038 NULL
153261 +enable_so___mm_populate_fndecl_12039 __mm_populate fndecl 2-1 12039 NULL
153262 +enable_so_regsize_si_sm_io_12043 regsize si_sm_io 0 12043 NULL
153263 +enable_so_batadv_bla_send_claim_fndecl_12045 batadv_bla_send_claim fndecl 3 12045 NULL
153264 +enable_so_physical_btrfs_bio_stripe_12047 physical btrfs_bio_stripe 0 12047 NULL
153265 +enable_so_len_brcmf_sdio_hdrinfo_12048 len brcmf_sdio_hdrinfo 0 12048 NULL nohasharray
153266 +enable_so_order_ipr_sglist_12048 order ipr_sglist 0 12048 &enable_so_len_brcmf_sdio_hdrinfo_12048
153267 +enable_so_ata_exec_internal_fndecl_12059 ata_exec_internal fndecl 6 12059 NULL
153268 +enable_so_l1oip_law_to_4bit_fndecl_12061 l1oip_law_to_4bit fndecl 0 12061 NULL
153269 +enable_so_devm_ioremap_fndecl_12064 devm_ioremap fndecl 3-2 12064 NULL nohasharray
153270 +enable_so_bufsize_st5481_in_12064 bufsize st5481_in 0 12064 &enable_so_devm_ioremap_fndecl_12064
153271 +enable_so_drbd_send_ov_request_fndecl_12066 drbd_send_ov_request fndecl 2-3 12066 NULL
153272 +enable_so_recover_peb_fndecl_12069 recover_peb fndecl 7-6 12069 NULL
153273 +enable_so_rw_verify_area_fndecl_12072 rw_verify_area fndecl 0-4 12072 NULL nohasharray
153274 +enable_so_count_afs_permits_12072 count afs_permits 0 12072 &enable_so_rw_verify_area_fndecl_12072
153275 +enable_so_evdev_handle_get_val_fndecl_12073 evdev_handle_get_val fndecl 5-6-0 12073 NULL nohasharray
153276 +enable_so_lirc_register_driver_fndecl_12073 lirc_register_driver fndecl 0 12073 &enable_so_evdev_handle_get_val_fndecl_12073
153277 +enable_so_ttm_pool_update_free_locked_fndecl_12074 ttm_pool_update_free_locked fndecl 2 12074 NULL
153278 +enable_so_cirrus_bo_create_fndecl_12083 cirrus_bo_create fndecl 2 12083 NULL
153279 +enable_so_d_size_size_entry_12084 d_size size_entry 0 12084 NULL
153280 +enable_so_nr_relocs_drm_nouveau_gem_pushbuf_12085 nr_relocs drm_nouveau_gem_pushbuf 0 12085 NULL
153281 +enable_so_nvme_trans_copy_from_user_fndecl_12088 nvme_trans_copy_from_user fndecl 3 12088 NULL
153282 +enable_so_security_socket_recvmsg_fndecl_12091 security_socket_recvmsg fndecl 0 12091 NULL nohasharray
153283 +enable_so_iwl_dbgfs_temperature_read_fndecl_12091 iwl_dbgfs_temperature_read fndecl 3 12091 &enable_so_security_socket_recvmsg_fndecl_12091
153284 +enable_so_nla_len_nlattr_12092 nla_len nlattr 0 12092 NULL
153285 +enable_so_n_posix_ace_state_array_12096 n posix_ace_state_array 0 12096 NULL
153286 +enable_so_pad_size_asd_flash_de_12100 pad_size asd_flash_de 0 12100 NULL
153287 +enable_so_lpfc_debugfs_dumpHostSlim_data_fndecl_12108 lpfc_debugfs_dumpHostSlim_data fndecl 0 12108 NULL
153288 +enable_so_mirror_array_cnt_nfs4_ff_layout_segment_12109 mirror_array_cnt nfs4_ff_layout_segment 0 12109 NULL
153289 +enable_so_length_framebuf_12110 length framebuf 0 12110 NULL nohasharray
153290 +enable_so_prism2_set_genericelement_fndecl_12110 prism2_set_genericelement fndecl 3 12110 &enable_so_length_framebuf_12110
153291 +enable_so_security_context_to_sid_core_fndecl_12115 security_context_to_sid_core fndecl 2 12115 NULL
153292 +enable_so_get_num_tx_queues_rtnl_link_ops_12119 get_num_tx_queues rtnl_link_ops 0 12119 NULL
153293 +enable_so_super_1_rdev_size_change_fndecl_12120 super_1_rdev_size_change fndecl 2 12120 NULL
153294 +enable_so_mwifiex_hscfg_write_fndecl_12125 mwifiex_hscfg_write fndecl 3 12125 NULL
153295 +enable_so_key_size_ccp_rsa_engine_12126 key_size ccp_rsa_engine 0 12126 NULL
153296 +enable_so_ProgRegShift_cfi_intelext_programming_regioninfo_12129 ProgRegShift cfi_intelext_programming_regioninfo 0 12129 NULL
153297 +enable_so_ext4_fiemap_fndecl_12131 ext4_fiemap fndecl 4-3 12131 NULL
153298 +enable_so_metablock_size_btrfsic_state_12137 metablock_size btrfsic_state 0 12137 NULL
153299 +enable_so_writeset_alloc_fndecl_12139 writeset_alloc fndecl 2 12139 NULL
153300 +enable_so_mempool_resize_fndecl_12140 mempool_resize fndecl 2 12140 NULL
153301 +enable_so_gfs2_rgrp_send_discards_fndecl_12149 gfs2_rgrp_send_discards fndecl 2 12149 NULL
153302 +enable_so_ql_is_link_full_dup_fndecl_12152 ql_is_link_full_dup fndecl 0 12152 NULL
153303 +enable_so_find_block_fndecl_12156 find_block fndecl 0-3 12156 NULL
153304 +enable_so_ip_vs_receive_fndecl_12161 ip_vs_receive fndecl 3 12161 NULL
153305 +enable_so_set_page_fndecl_12165 set_page fndecl 0 12165 NULL
153306 +enable_so___alloc_ei_netdev_fndecl_12169 __alloc_ei_netdev fndecl 1 12169 NULL
153307 +enable_so___fuse_get_req_fndecl_12176 __fuse_get_req fndecl 2 12176 NULL
153308 +enable_so_brcmf_sdio_tx_ctrlframe_fndecl_12177 brcmf_sdio_tx_ctrlframe fndecl 3 12177 NULL
153309 +enable_so_bulk_in_size_sur40_state_12178 bulk_in_size sur40_state 0 12178 NULL
153310 +enable_so_rx_count_rx_header_12180 rx_count rx_header 0 12180 NULL
153311 +enable_so_default_file_splice_read_fndecl_12182 default_file_splice_read fndecl 4 12182 NULL
153312 +enable_so_lprocfs_write_helper_fndecl_12184 lprocfs_write_helper fndecl 2 12184 NULL
153313 +enable_so_se_callback_addr_len_nfsd4_setclientid_12186 se_callback_addr_len nfsd4_setclientid 0 12186 NULL
153314 +enable_so_alignment_acpi_resource_memory24_12188 alignment acpi_resource_memory24 0 12188 NULL
153315 +enable_so_max_qp_sz_mlx4_dev_cap_12189 max_qp_sz mlx4_dev_cap 0 12189 NULL
153316 +enable_so_lpfc_bsg_diag_mode_enter_fndecl_12200 lpfc_bsg_diag_mode_enter fndecl 0 12200 NULL
153317 +enable_so_handle_gk20a_instobj_dma_12206 handle gk20a_instobj_dma 0 12206 NULL
153318 +enable_so_lmc_crcSize_lmc___softc_12208 lmc_crcSize lmc___softc 0 12208 NULL
153319 +enable_so_length_cifs_io_parms_12209 length cifs_io_parms 0 12209 NULL nohasharray
153320 +enable_so_l2cap_sock_setsockopt_old_fndecl_12209 l2cap_sock_setsockopt_old fndecl 4 12209 &enable_so_length_cifs_io_parms_12209
153321 +enable_so_vmci_transport_set_min_buffer_size_fndecl_12216 vmci_transport_set_min_buffer_size fndecl 2 12216 NULL
153322 +enable_so_hci_sock_sendmsg_fndecl_12231 hci_sock_sendmsg fndecl 3 12231 NULL
153323 +enable_so_virtscsi_kick_cmd_fndecl_12237 virtscsi_kick_cmd fndecl 3-4 12237 NULL
153324 +enable_so_read_file_tx99_power_fndecl_12238 read_file_tx99_power fndecl 3 12238 NULL
153325 +enable_so_generic_file_llseek_size_fndecl_12242 generic_file_llseek_size fndecl 2-5 12242 NULL
153326 +enable_so_synproxy_tstamp_adjust_fndecl_12243 synproxy_tstamp_adjust fndecl 2 12243 NULL
153327 +enable_so_max_pkt_size_em28xx_usb_bufs_12248 max_pkt_size em28xx_usb_bufs 0 12248 NULL
153328 +enable_so_write_block_fndecl_12253 write_block fndecl 3 12253 NULL
153329 +enable_so_hpfs_map_fnode_fndecl_12255 hpfs_map_fnode fndecl 2 12255 NULL
153330 +enable_so_unique_len_drm_master_12259 unique_len drm_master 0 12259 NULL
153331 +enable_so_zs_size_classes_vardecl_zsmalloc_c_12260 zs_size_classes vardecl_zsmalloc.c 0 12260 NULL
153332 +enable_so_endpoint_snd_usX2Y_substream_12267 endpoint snd_usX2Y_substream 0 12267 NULL
153333 +enable_so_mempool_create_fndecl_12270 mempool_create fndecl 1 12270 NULL
153334 +enable_so_cur_page_len_dio_submit_12271 cur_page_len dio_submit 0 12271 NULL
153335 +enable_so_rsi_issue_sdiocommand_fndecl_12282 rsi_issue_sdiocommand fndecl 2 12282 NULL
153336 +enable_so_handle_fcp_fndecl_12283 handle_fcp fndecl 9 12283 NULL
153337 +enable_so_capacity_sddr09_card_info_12286 capacity sddr09_card_info 0 12286 NULL
153338 +enable_so_sb_sectsize_xfs_sb_12294 sb_sectsize xfs_sb 0 12294 NULL
153339 +enable_so_bm_find_next_fndecl_12298 bm_find_next fndecl 0-2 12298 NULL
153340 +enable_so_size_btrfs_ioctl_logical_ino_args_12299 size btrfs_ioctl_logical_ino_args 0 12299 NULL
153341 +enable_so_max_y_fb_monspecs_12303 max_y fb_monspecs 0 12303 NULL
153342 +enable_so_nb_blocks_NFTLrecord_12306 nb_blocks NFTLrecord 0 12306 NULL
153343 +enable_so_hr_blocks_o2hb_region_12318 hr_blocks o2hb_region 0 12318 NULL nohasharray
153344 +enable_so_mthca_max_data_size_fndecl_12318 mthca_max_data_size fndecl 0-3 12318 &enable_so_hr_blocks_o2hb_region_12318
153345 +enable_so_length_sg_mapping_iter_12324 length sg_mapping_iter 0 12324 NULL nohasharray
153346 +enable_so_sctp_make_abort_violation_fndecl_12324 sctp_make_abort_violation fndecl 4 12324 &enable_so_length_sg_mapping_iter_12324
153347 +enable_so_ubifs_change_lp_fndecl_12325 ubifs_change_lp fndecl 3 12325 NULL
153348 +enable_so_no_of_triplet_mwifiex_802_11d_domain_reg_12326 no_of_triplet mwifiex_802_11d_domain_reg 0 12326 NULL
153349 +enable_so_tracing_clock_write_fndecl_12330 tracing_clock_write fndecl 3 12330 NULL
153350 +enable_so_s_log_block_size_nilfs_super_block_12332 s_log_block_size nilfs_super_block 0 12332 NULL
153351 +enable_so_read_regr_pi_protocol_12333 read_regr pi_protocol 0 12333 NULL
153352 +enable_so_status_w840_rx_desc_12335 status w840_rx_desc 0 12335 NULL nohasharray
153353 +enable_so_snd_hdac_bus_exec_verb_unlocked_fndecl_12335 snd_hdac_bus_exec_verb_unlocked fndecl 0 12335 &enable_so_status_w840_rx_desc_12335
153354 +enable_so_out_usbnet_12337 out usbnet 0 12337 NULL
153355 +enable_so_bank_size_stub_chip_12338 bank_size stub_chip 0 12338 NULL
153356 +enable_so_base_shift_iwl_fw_dbg_dest_tlv_12341 base_shift iwl_fw_dbg_dest_tlv 0 12341 NULL
153357 +enable_so_dccps_iss_dccp_sock_12346 dccps_iss dccp_sock 0 12346 NULL
153358 +enable_so_max_buf_size_tegra_slink_data_12348 max_buf_size tegra_slink_data 0 12348 NULL
153359 +enable_so_ocfs2_symlink_get_block_fndecl_12352 ocfs2_symlink_get_block fndecl 2 12352 NULL
153360 +enable_so_td_done_fndecl_12358 td_done fndecl 0 12358 NULL
153361 +enable_so_reserve_additional_memory_fndecl_12359 reserve_additional_memory fndecl 1 12359 NULL nohasharray
153362 +enable_so_limit_scaled_size_lock_fndecl_12359 limit_scaled_size_lock fndecl 5-6 12359 &enable_so_reserve_additional_memory_fndecl_12359 nohasharray
153363 +enable_so_igb_pci_sriov_configure_fndecl_12359 igb_pci_sriov_configure fndecl 2 12359 &enable_so_limit_scaled_size_lock_fndecl_12359
153364 +enable_so_ioremap_uc_fndecl_12363 ioremap_uc fndecl 2-1 12363 NULL
153365 +enable_so_xb_blkno_ocfs2_xattr_block_12365 xb_blkno ocfs2_xattr_block 0 12365 NULL
153366 +enable_so_num_subdevs_v4l2_async_notifier_12368 num_subdevs v4l2_async_notifier 0 12368 NULL
153367 +enable_so_compat_SyS_set_mempolicy_fndecl_12372 compat_SyS_set_mempolicy fndecl 3 12372 NULL
153368 +enable_so_i_entries_gfs2_inode_12374 i_entries gfs2_inode 0 12374 NULL
153369 +enable_so_mic_rx_pkts_read_fndecl_12375 mic_rx_pkts_read fndecl 3 12375 NULL
153370 +enable_so_iscsi_segment_seek_sg_fndecl_12378 iscsi_segment_seek_sg fndecl 5-4 12378 NULL nohasharray
153371 +enable_so_pci_enable_device_flags_fndecl_12378 pci_enable_device_flags fndecl 0 12378 &enable_so_iscsi_segment_seek_sg_fndecl_12378
153372 +enable_so_rx_prefix_size_efx_nic_12381 rx_prefix_size efx_nic 0 12381 NULL
153373 +enable_so_serial8250_port_size_fndecl_12384 serial8250_port_size fndecl 0 12384 NULL nohasharray
153374 +enable_so_if_usb_host_to_card_fndecl_12384 if_usb_host_to_card fndecl 4 12384 &enable_so_serial8250_port_size_fndecl_12384
153375 +enable_so_get_packet_pg_fndecl_12388 get_packet_pg fndecl 4 12388 NULL
153376 +enable_so_stb6100_write_reg_range_fndecl_12391 stb6100_write_reg_range fndecl 4 12391 NULL nohasharray
153377 +enable_so_frag_size_mlx4_en_frag_info_12391 frag_size mlx4_en_frag_info 0 12391 &enable_so_stb6100_write_reg_range_fndecl_12391
153378 +enable_so_data_segment_bytes_gru_create_context_req_12392 data_segment_bytes gru_create_context_req 0 12392 NULL
153379 +enable_so_num_ufbufs_vardecl_12394 num_ufbufs vardecl 0 12394 NULL
153380 +enable_so_memory_block_action_fndecl_12395 memory_block_action fndecl 1 12395 NULL
153381 +enable_so_alloc_one_pg_vec_page_fndecl_12396 alloc_one_pg_vec_page fndecl 1 12396 NULL
153382 +enable_so_ath10k_read_quiet_period_fndecl_12397 ath10k_read_quiet_period fndecl 3 12397 NULL
153383 +enable_so_buffer_size_zoran_buffer_col_12398 buffer_size zoran_buffer_col 0 12398 NULL
153384 +enable_so_powercap_register_zone_fndecl_12399 powercap_register_zone fndecl 6 12399 NULL
153385 +enable_so_ieee802154_alloc_hw_fndecl_12400 ieee802154_alloc_hw fndecl 1 12400 NULL
153386 +enable_so_edt_ft5x06_debugfs_raw_data_read_fndecl_12401 edt_ft5x06_debugfs_raw_data_read fndecl 3 12401 NULL
153387 +enable_so_acl_len_nfs_setaclargs_12402 acl_len nfs_setaclargs 0 12402 NULL
153388 +enable_so_length_iw_point_12404 length iw_point 0 12404 NULL
153389 +enable_so_reg_read_fndecl_12405 reg_read fndecl 4 12405 NULL
153390 +enable_so_snd_rawmidi_write_fndecl_12411 snd_rawmidi_write fndecl 3 12411 NULL
153391 +enable_so_p9_fd_write_fndecl_12417 p9_fd_write fndecl 3-0 12417 NULL
153392 +enable_so_read_reg_xcan_priv_12419 read_reg xcan_priv 0 12419 NULL nohasharray
153393 +enable_so_dccp_insert_fn_opt_fndecl_12419 dccp_insert_fn_opt fndecl 5 12419 &enable_so_read_reg_xcan_priv_12419
153394 +enable_so_cx231xx_init_vbi_isoc_fndecl_12422 cx231xx_init_vbi_isoc fndecl 4-2-3 12422 NULL
153395 +enable_so_init_rs_non_canonical_fndecl_12424 init_rs_non_canonical fndecl 5-1 12424 NULL
153396 +enable_so_len_SL_component_12428 len SL_component 0 12428 NULL
153397 +enable_so_ext4_quota_read_fndecl_12429 ext4_quota_read fndecl 5 12429 NULL nohasharray
153398 +enable_so_add_pid_filter_fndecl_12429 add_pid_filter fndecl 0 12429 &enable_so_ext4_quota_read_fndecl_12429
153399 +enable_so_lpfc_idiag_mbxacc_read_fndecl_12430 lpfc_idiag_mbxacc_read fndecl 3 12430 NULL
153400 +enable_so_pkey_tbl_len_ib_port_attr_12434 pkey_tbl_len ib_port_attr 0 12434 NULL
153401 +enable_so_hcd_priv_size_hc_driver_12440 hcd_priv_size hc_driver 0 12440 NULL
153402 +enable_so_informationLength_fileEntry_12442 informationLength fileEntry 0 12442 NULL nohasharray
153403 +enable_so_sctp_setsockopt_maxburst_fndecl_12442 sctp_setsockopt_maxburst fndecl 3 12442 &enable_so_informationLength_fileEntry_12442
153404 +enable_so_divisor_tc_sfq_qopt_12444 divisor tc_sfq_qopt 0 12444 NULL
153405 +enable_so_ie_len_cfg80211_connect_params_12446 ie_len cfg80211_connect_params 0 12446 NULL
153406 +enable_so_u132_endp_urb_dequeue_fndecl_12447 u132_endp_urb_dequeue fndecl 4 12447 NULL nohasharray
153407 +enable_so_ceph_sync_write_fndecl_12447 ceph_sync_write fndecl 0-3 12447 &enable_so_u132_endp_urb_dequeue_fndecl_12447
153408 +enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 acpi_gsb_i2c_write_bytes fndecl 4 12449 NULL nohasharray
153409 +enable_so_GetRecvByte_fndecl_12449 GetRecvByte fndecl 0 12449 &enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 nohasharray
153410 +enable_so_length_iwl_wipan_noa_attribute_12449 length iwl_wipan_noa_attribute 0 12449 &enable_so_GetRecvByte_fndecl_12449
153411 +enable_so_len_qlcnic_flt_header_12450 len qlcnic_flt_header 0 12450 NULL
153412 +enable_so_rx_padding_usbatm_driver_12455 rx_padding usbatm_driver 0 12455 NULL
153413 +enable_so_platform_get_irq_fndecl_12459 platform_get_irq fndecl 0 12459 NULL
153414 +enable_so_keyspan_setup_urb_fndecl_12461 keyspan_setup_urb fndecl 6-3-2 12461 NULL
153415 +enable_so_num_cq_mthca_profile_12463 num_cq mthca_profile 0 12463 NULL
153416 +enable_so_tp_block_nr_tpacket_req_12465 tp_block_nr tpacket_req 0 12465 NULL
153417 +enable_so_tx_frag_bad_mblk_num_read_fndecl_12467 tx_frag_bad_mblk_num_read fndecl 3 12467 NULL
153418 +enable_so_num_leds_pca9532_chip_info_12471 num_leds pca9532_chip_info 0 12471 NULL
153419 +enable_so_lpfc_lun_queue_depth_init_fndecl_12474 lpfc_lun_queue_depth_init fndecl 2 12474 NULL
153420 +enable_so_rx_defrag_need_defrag_read_fndecl_12486 rx_defrag_need_defrag_read fndecl 3 12486 NULL
153421 +enable_so_lock_extent_fndecl_12493 lock_extent fndecl 3-2 12493 NULL
153422 +enable_so_vgacon_adjust_height_fndecl_12495 vgacon_adjust_height fndecl 2 12495 NULL nohasharray
153423 +enable_so_acpi_tb_install_standard_table_fndecl_12495 acpi_tb_install_standard_table fndecl 1 12495 &enable_so_vgacon_adjust_height_fndecl_12495 nohasharray
153424 +enable_so_ih_item_len_item_head_12495 ih_item_len item_head 0 12495 &enable_so_acpi_tb_install_standard_table_fndecl_12495
153425 +enable_so_blk_update_nr_requests_fndecl_12497 blk_update_nr_requests fndecl 2 12497 NULL
153426 +enable_so_map_off_xfs_dir2_leaf_map_info_12499 map_off xfs_dir2_leaf_map_info 0 12499 NULL
153427 +enable_so_dccp_feat_valid_nn_length_fndecl_12500 dccp_feat_valid_nn_length fndecl 0 12500 NULL
153428 +enable_so_response_length_be_cmd_resp_hdr_12501 response_length be_cmd_resp_hdr 0 12501 NULL nohasharray
153429 +enable_so_mmc_test_alloc_mem_fndecl_12501 mmc_test_alloc_mem fndecl 2-3 12501 &enable_so_response_length_be_cmd_resp_hdr_12501
153430 +enable_so_stream_next_buffer_fndecl_12502 stream_next_buffer fndecl 0 12502 NULL
153431 +enable_so_nclips_saa7134_dev_12507 nclips saa7134_dev 0 12507 NULL
153432 +enable_so_brcmf_chip_tcm_ramsize_fndecl_12513 brcmf_chip_tcm_ramsize fndecl 0 12513 NULL
153433 +enable_so_max_tchs_cyttsp4_sysinfo_ofs_12516 max_tchs cyttsp4_sysinfo_ofs 0 12516 NULL
153434 +enable_so_madvise_dontneed_fndecl_12517 madvise_dontneed fndecl 3-4 12517 NULL
153435 +enable_so_alloc_skb_with_frags_fndecl_12518 alloc_skb_with_frags fndecl 2 12518 NULL nohasharray
153436 +enable_so_num_pointers_whc_std_12518 num_pointers whc_std 0 12518 &enable_so_alloc_skb_with_frags_fndecl_12518
153437 +enable_so_video_read_fndecl_12519 video_read fndecl 3 12519 NULL
153438 +enable_so_stats_dot11FCSErrorCount_read_fndecl_12521 stats_dot11FCSErrorCount_read fndecl 3 12521 NULL
153439 +enable_so_snd_midi_channel_alloc_set_fndecl_12522 snd_midi_channel_alloc_set fndecl 1 12522 NULL
153440 +enable_so_index_mtd_info_12524 index mtd_info 0 12524 NULL
153441 +enable_so_al_tr_number_to_on_disk_sector_fndecl_12526 al_tr_number_to_on_disk_sector fndecl 0 12526 NULL
153442 +enable_so_depth_fb_image_12530 depth fb_image 0 12530 NULL
153443 +enable_so_lpc_sch_populate_cell_fndecl_12532 lpc_sch_populate_cell fndecl 5-4-6 12532 NULL
153444 +enable_so_write_isowbuf_t_12533 write isowbuf_t 0 12533 NULL
153445 +enable_so_m25p80_read_reg_fndecl_12535 m25p80_read_reg fndecl 4 12535 NULL
153446 +enable_so_learn_buffer_user_len_vardecl_gracl_learn_c_12538 learn_buffer_user_len vardecl_gracl_learn.c 0 12538 NULL
153447 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_cqs_get_fndecl_12540 mlxsw_cmd_mbox_query_aq_cap_max_num_cqs_get fndecl 0 12540 NULL
153448 +enable_so_sd_tuning_rx_cmd_fndecl_12543 sd_tuning_rx_cmd fndecl 2 12543 NULL
153449 +enable_so_cdrom_read_cdda_old_fndecl_12547 cdrom_read_cdda_old fndecl 4 12547 NULL
153450 +enable_so_qword_get_fndecl_12549 qword_get fndecl 0 12549 NULL
153451 +enable_so_recv_dless_read_fndecl_12554 recv_dless_read fndecl 4 12554 NULL nohasharray
153452 +enable_so_hfi1_alloc_mr_fndecl_12554 hfi1_alloc_mr fndecl 3 12554 &enable_so_recv_dless_read_fndecl_12554
153453 +enable_so_h_size_xlog_rec_header_12561 h_size xlog_rec_header 0 12561 NULL
153454 +enable_so_qnx6_readpages_fndecl_12570 qnx6_readpages fndecl 4 12570 NULL
153455 +enable_so_read8_sync_rtl_io_12571 read8_sync rtl_io 0 12571 NULL
153456 +enable_so_address_length_acpi_resource_memory32_12576 address_length acpi_resource_memory32 0 12576 NULL
153457 +enable_so_fs_path_add_from_extent_buffer_fndecl_12581 fs_path_add_from_extent_buffer fndecl 0-4 12581 NULL
153458 +enable_so_rate_den_snd_pcm_hw_params_12586 rate_den snd_pcm_hw_params 0 12586 NULL
153459 +enable_so_acpi_tb_acquire_temp_table_fndecl_12590 acpi_tb_acquire_temp_table fndecl 2 12590 NULL nohasharray
153460 +enable_so_raid_disk_md_rdev_12590 raid_disk md_rdev 0 12590 &enable_so_acpi_tb_acquire_temp_table_fndecl_12590
153461 +enable_so_pt1_nr_tables_vardecl_pt1_c_12591 pt1_nr_tables vardecl_pt1.c 0 12591 NULL
153462 +enable_so_pci_scan_root_bus_msi_fndecl_12593 pci_scan_root_bus_msi fndecl 2 12593 NULL
153463 +enable_so_pn544_hci_probe_fndecl_12594 pn544_hci_probe fndecl 6-4 12594 NULL
153464 +enable_so_min_sys_clk_div_smiapp_pll_branch_limits_12595 min_sys_clk_div smiapp_pll_branch_limits 0 12595 NULL
153465 +enable_so_dev_rsize_hid_device_12597 dev_rsize hid_device 0 12597 NULL
153466 +enable_so_sx_fb_copyarea_12600 sx fb_copyarea 0 12600 NULL
153467 +enable_so_wqe_sz_mlx5e_rq_12601 wqe_sz mlx5e_rq 0 12601 NULL
153468 +enable_so_blk_limits_io_opt_fndecl_12606 blk_limits_io_opt fndecl 2 12606 NULL
153469 +enable_so_rt_priority_task_struct_12608 rt_priority task_struct 0 12608 NULL nohasharray
153470 +enable_so_allocate_snoop_packet_fndecl_12608 allocate_snoop_packet fndecl 1-2-3 12608 &enable_so_rt_priority_task_struct_12608
153471 +enable_so_depth_g2d_fmt_12611 depth g2d_fmt 0 12611 NULL
153472 +enable_so_num_bank_bcm_kona_gpio_12612 num_bank bcm_kona_gpio 0 12612 NULL
153473 +enable_so_a4t_cs_init_fndecl_12613 a4t_cs_init fndecl 3 12613 NULL
153474 +enable_so_pty_vivid_rds_gen_12619 pty vivid_rds_gen 0 12619 NULL
153475 +enable_so_evm_write_key_fndecl_12624 evm_write_key fndecl 3 12624 NULL
153476 +enable_so_maxpacket_r8a66597_td_12628 maxpacket r8a66597_td 0 12628 NULL
153477 +enable_so_length_wep_key_12635 length wep_key 0 12635 NULL
153478 +enable_so_xfs_dir2_block_sfsize_fndecl_12636 xfs_dir2_block_sfsize fndecl 0 12636 NULL
153479 +enable_so_pattern_len_cfg80211_pkt_pattern_12639 pattern_len cfg80211_pkt_pattern 0 12639 NULL
153480 +enable_so_current_count_sectors_vardecl_floppy_c_12647 current_count_sectors vardecl_floppy.c 0 12647 NULL nohasharray
153481 +enable_so_size_of_pci_range_12647 size of_pci_range 0 12647 &enable_so_current_count_sectors_vardecl_floppy_c_12647
153482 +enable_so_local_nentries_xpc_openclose_args_12648 local_nentries xpc_openclose_args 0 12648 NULL
153483 +enable_so_kcalloc_fndecl_12649 kcalloc fndecl 1-2 12649 NULL
153484 +enable_so_fdir_pf_active_filters_i40e_pf_12654 fdir_pf_active_filters i40e_pf 0 12654 NULL
153485 +enable_so_sl_encaps_fndecl_12658 sl_encaps fndecl 3 12658 NULL
153486 +enable_so_get_index_fndecl_12660 get_index fndecl 0 12660 NULL
153487 +enable_so_linear_hugepage_index_fndecl_12664 linear_hugepage_index fndecl 0-2 12664 NULL
153488 +enable_so_sg_offset_iscsi_segment_12667 sg_offset iscsi_segment 0 12667 NULL
153489 +enable_so_num_aces_cifs_acl_12670 num_aces cifs_acl 0 12670 NULL
153490 +enable_so_beacon_buf_size_mwifiex_bssdescriptor_12674 beacon_buf_size mwifiex_bssdescriptor 0 12674 NULL nohasharray
153491 +enable_so_last_page_snd_trident_memblk_arg_12674 last_page snd_trident_memblk_arg 0 12674 &enable_so_beacon_buf_size_mwifiex_bssdescriptor_12674
153492 +enable_so_doorbell_base_kfd_dev_12677 doorbell_base kfd_dev 0 12677 NULL
153493 +enable_so_eeec_entry_sz_mthca_dev_lim_12679 eeec_entry_sz mthca_dev_lim 0 12679 NULL
153494 +enable_so_HST_kyrofb_info_12685 HST kyrofb_info 0 12685 NULL
153495 +enable_so_src_height_tpg_data_12686 src_height tpg_data 0 12686 NULL
153496 +enable_so_ttm_object_file_init_fndecl_12687 ttm_object_file_init fndecl 2 12687 NULL
153497 +enable_so_ns_nsegments_the_nilfs_12690 ns_nsegments the_nilfs 0 12690 NULL
153498 +enable_so_transport_init_session_tags_fndecl_12691 transport_init_session_tags fndecl 2-1 12691 NULL
153499 +enable_so_buf_size_mlx4_en_cq_12695 buf_size mlx4_en_cq 0 12695 NULL
153500 +enable_so_dn_neigh_elist_fndecl_12712 dn_neigh_elist fndecl 0 12712 NULL
153501 +enable_so_mdio_phys_octeon_mdiobus_12713 mdio_phys octeon_mdiobus 0 12713 NULL nohasharray
153502 +enable_so_fld_debugfs_hash_seq_write_fndecl_12713 fld_debugfs_hash_seq_write fndecl 3 12713 &enable_so_mdio_phys_octeon_mdiobus_12713
153503 +enable_so_total_len_ocrdma_hdr_wqe_12714 total_len ocrdma_hdr_wqe 0 12714 NULL nohasharray
153504 +enable_so_sys_listxattr_fndecl_12714 sys_listxattr fndecl 3 12714 &enable_so_total_len_ocrdma_hdr_wqe_12714
153505 +enable_so_blk_ioctl_discard_fndecl_12725 blk_ioctl_discard fndecl 3-2 12725 NULL
153506 +enable_so_ss_in_channels_hdsp_12726 ss_in_channels hdsp 0 12726 NULL
153507 +enable_so_start_brk_prctl_mm_map_12729 start_brk prctl_mm_map 0 12729 NULL
153508 +enable_so_btrfs_truncate_item_fndecl_12731 btrfs_truncate_item fndecl 3 12731 NULL
153509 +enable_so_xfs_iomap_write_direct_fndecl_12733 xfs_iomap_write_direct fndecl 2 12733 NULL
153510 +enable_so_read_profile_fndecl_12736 read_profile fndecl 3 12736 NULL
153511 +enable_so_sky2_pci_read16_fndecl_12740 sky2_pci_read16 fndecl 0 12740 NULL
153512 +enable_so_count_nfsd3_readres_12745 count nfsd3_readres 0 12745 NULL
153513 +enable_so_aead_assoclen_aead_ctx_12755 aead_assoclen aead_ctx 0 12755 NULL nohasharray
153514 +enable_so_nfsd4_encode_splice_read_fndecl_12755 nfsd4_encode_splice_read fndecl 4 12755 &enable_so_aead_assoclen_aead_ctx_12755
153515 +enable_so_reserve_memtype_fndecl_12762 reserve_memtype fndecl 1-2 12762 NULL
153516 +enable_so_num_unit_element_struct_12767 num unit_element_struct 0 12767 NULL
153517 +enable_so_wl1251_sdio_read_fndecl_12773 wl1251_sdio_read fndecl 4 12773 NULL
153518 +enable_so_driver_add_groups_fndecl_12778 driver_add_groups fndecl 0 12778 NULL
153519 +enable_so_height_mxr_block_12780 height mxr_block 0 12780 NULL
153520 +enable_so_ieee80211_if_read_dot11MeshHWMProotInterval_fndecl_12786 ieee80211_if_read_dot11MeshHWMProotInterval fndecl 3 12786 NULL
153521 +enable_so_rx_max_pg_ring_bnx2_12789 rx_max_pg_ring bnx2 0 12789 NULL
153522 +enable_so_sb_fseg_start_nilfs_segment_buffer_12802 sb_fseg_start nilfs_segment_buffer 0 12802 NULL
153523 +enable_so_mpage_readpages_fndecl_12807 mpage_readpages fndecl 3 12807 NULL
153524 +enable_so_object_num_mxt_info_12810 object_num mxt_info 0 12810 NULL
153525 +enable_so_testmode_write_fndecl_12814 testmode_write fndecl 3 12814 NULL
153526 +enable_so_hint_events_per_packet_input_dev_12818 hint_events_per_packet input_dev 0 12818 NULL nohasharray
153527 +enable_so_subdev_ioctl_fndecl_12818 subdev_ioctl fndecl 2 12818 &enable_so_hint_events_per_packet_input_dev_12818
153528 +enable_so_xen_pirq_from_irq_fndecl_12820 xen_pirq_from_irq fndecl 0 12820 NULL
153529 +enable_so___videobuf_mmap_setup_fndecl_12822 __videobuf_mmap_setup fndecl 0-3 12822 NULL
153530 +enable_so_ksocknal_alloc_tx_fndecl_12825 ksocknal_alloc_tx fndecl 2 12825 NULL
153531 +enable_so_falcon_spi_device_init_fndecl_12835 falcon_spi_device_init fndecl 4 12835 NULL
153532 +enable_so_vmw_du_crtc_cursor_set_fndecl_12844 vmw_du_crtc_cursor_set fndecl 5-4 12844 NULL
153533 +enable_so_xfs_rtfind_back_fndecl_12849 xfs_rtfind_back fndecl 3 12849 NULL
153534 +enable_so_sbs_setup_fndecl_12851 sbs_setup fndecl 4 12851 NULL
153535 +enable_so_key_mic_failures_read_fndecl_12858 key_mic_failures_read fndecl 3 12858 NULL
153536 +enable_so_rx_buffer_size_macb_12864 rx_buffer_size macb 0 12864 NULL
153537 +enable_so_snd_interval_refine_max_fndecl_12865 snd_interval_refine_max fndecl 2 12865 NULL
153538 +enable_so_frameoffset_b43legacy_dmaring_12869 frameoffset b43legacy_dmaring 0 12869 NULL
153539 +enable_so_max_ddbs_hw_profile_12873 max_ddbs hw_profile 0 12873 NULL
153540 +enable_so_tcp_remove_reno_sacks_fndecl_12874 tcp_remove_reno_sacks fndecl 2 12874 NULL
153541 +enable_so_length_i2c_hid_cmd_12879 length i2c_hid_cmd 0 12879 NULL
153542 +enable_so_response_length_ib_uverbs_ex_create_cq_resp_12889 response_length ib_uverbs_ex_create_cq_resp 0 12889 NULL
153543 +enable_so_udp_uncompress_fndecl_12890 udp_uncompress fndecl 2 12890 NULL
153544 +enable_so_max_response_pages_fndecl_12895 max_response_pages fndecl 0 12895 NULL
153545 +enable_so_offset_ceph_dentry_info_12896 offset ceph_dentry_info 0 12896 NULL
153546 +enable_so_early_init_dt_alloc_memory_arch_fndecl_12899 early_init_dt_alloc_memory_arch fndecl 2-1 12899 NULL
153547 +enable_so_dbgfs_sram_len_iwl_mvm_12900 dbgfs_sram_len iwl_mvm 0 12900 NULL
153548 +enable_so_tool_db_read_fndecl_12902 tool_db_read fndecl 3 12902 NULL
153549 +enable_so_ccw_cursor_fndecl_12903 ccw_cursor fndecl 4 12903 NULL
153550 +enable_so_capinc_tty_write_fndecl_12904 capinc_tty_write fndecl 3 12904 NULL
153551 +enable_so_add_children_fndecl_12906 add_children fndecl 2 12906 NULL
153552 +enable_so_max_reportid_mxt_data_12917 max_reportid mxt_data 0 12917 NULL
153553 +enable_so_gsm_stuff_frame_fndecl_12918 gsm_stuff_frame fndecl 0 12918 NULL
153554 +enable_so_m_lblk_ext4_map_blocks_12920 m_lblk ext4_map_blocks 0 12920 NULL
153555 +enable_so_nilfs_sufile_delete_segment_usage_block_fndecl_12921 nilfs_sufile_delete_segment_usage_block fndecl 2 12921 NULL
153556 +enable_so_qs_out_channels_hdspm_12922 qs_out_channels hdspm 0 12922 NULL
153557 +enable_so_idetape_mtioctop_fndecl_12923 idetape_mtioctop fndecl 3 12923 NULL
153558 +enable_so_sh_irda_init_iobuf_fndecl_12924 sh_irda_init_iobuf fndecl 2 12924 NULL nohasharray
153559 +enable_so_i2400m_tx_stats_read_fndecl_12924 i2400m_tx_stats_read fndecl 3 12924 &enable_so_sh_irda_init_iobuf_fndecl_12924
153560 +enable_so_ath6kl_wmi_disconnect_cmd_fndecl_12926 ath6kl_wmi_disconnect_cmd fndecl 2 12926 NULL
153561 +enable_so_obufsize_sisusb_usb_data_12932 obufsize sisusb_usb_data 0 12932 NULL nohasharray
153562 +enable_so_mangle_content_len_fndecl_12932 mangle_content_len fndecl 2 12932 &enable_so_obufsize_sisusb_usb_data_12932 nohasharray
153563 +enable_so_asymmetric_verify_fndecl_12932 asymmetric_verify fndecl 3 12932 &enable_so_mangle_content_len_fndecl_12932
153564 +enable_so_ext4_split_extent_at_fndecl_12936 ext4_split_extent_at fndecl 4 12936 NULL
153565 +enable_so_vlan_id_vlan_dev_priv_12939 vlan_id vlan_dev_priv 0 12939 NULL
153566 +enable_so_xlog_clear_stale_blocks_fndecl_12940 xlog_clear_stale_blocks fndecl 2 12940 NULL
153567 +enable_so_phys_pud_init_fndecl_12941 phys_pud_init fndecl 0-2-3 12941 NULL
153568 +enable_so_gfs2_meta_indirect_buffer_fndecl_12942 gfs2_meta_indirect_buffer fndecl 3 12942 NULL
153569 +enable_so_run_delalloc_range_fndecl_12946 run_delalloc_range fndecl 3-4 12946 NULL nohasharray
153570 +enable_so_aio_read_events_fndecl_12946 aio_read_events fndecl 3 12946 &enable_so_run_delalloc_range_fndecl_12946 nohasharray
153571 +enable_so_mptctl_getiocinfo_fndecl_12946 mptctl_getiocinfo fndecl 2 12946 &enable_so_aio_read_events_fndecl_12946
153572 +enable_so_get_rate_snd_ice1712_12947 get_rate snd_ice1712 0 12947 NULL nohasharray
153573 +enable_so_sel_read_policycap_fndecl_12947 sel_read_policycap fndecl 3 12947 &enable_so_get_rate_snd_ice1712_12947
153574 +enable_so_st_nci_se_io_fndecl_12948 st_nci_se_io fndecl 4 12948 NULL
153575 +enable_so_nr_segments_blkif_request_rw_12950 nr_segments blkif_request_rw 0 12950 NULL
153576 +enable_so_b43legacy_debugfs_write_fndecl_12959 b43legacy_debugfs_write fndecl 3 12959 NULL
153577 +enable_so_vm_start_vm_area_struct_12960 vm_start vm_area_struct 0 12960 NULL
153578 +enable_so_data_pipe_mts_transfer_context_12962 data_pipe mts_transfer_context 0 12962 NULL
153579 +enable_so_apei_exec_ctx_set_input_fndecl_12968 apei_exec_ctx_set_input fndecl 2 12968 NULL
153580 +enable_so_initiator_length_spar_controlvm_parameters_header_12973 initiator_length spar_controlvm_parameters_header 0 12973 NULL
153581 +enable_so_clone_update_extent_map_fndecl_12984 clone_update_extent_map fndecl 4-5 12984 NULL nohasharray
153582 +enable_so_newwin_mad_rmpp_recv_12984 newwin mad_rmpp_recv 0 12984 &enable_so_clone_update_extent_map_fndecl_12984
153583 +enable_so_num_outbound_streams_sctp_inithdr_12987 num_outbound_streams sctp_inithdr 0 12987 NULL
153584 +enable_so_ql4xmaxqdepth_vardecl_ql4_os_c_12992 ql4xmaxqdepth vardecl_ql4_os.c 0 12992 NULL
153585 +enable_so_xdr_reserve_space_fndecl_12997 xdr_reserve_space fndecl 2 12997 NULL
153586 +enable_so_end_file_extent_cluster_13001 end file_extent_cluster 0 13001 NULL
153587 +enable_so_pm3fb_size_memory_fndecl_13002 pm3fb_size_memory fndecl 0 13002 NULL
153588 +enable_so_mcp795_rtcc_write_fndecl_13014 mcp795_rtcc_write fndecl 4 13014 NULL nohasharray
153589 +enable_so_gfs2_fsync_fndecl_13014 gfs2_fsync fndecl 2-3 13014 &enable_so_mcp795_rtcc_write_fndecl_13014
153590 +enable_so_sg_alloc_table_from_pages_fndecl_13015 sg_alloc_table_from_pages fndecl 5-4 13015 NULL nohasharray
153591 +enable_so_kfifo_unused_fndecl_13015 kfifo_unused fndecl 0 13015 &enable_so_sg_alloc_table_from_pages_fndecl_13015
153592 +enable_so_arg_end_mm_struct_13016 arg_end mm_struct 0 13016 NULL
153593 +enable_so_mp_override_legacy_irq_fndecl_13017 mp_override_legacy_irq fndecl 1-4 13017 NULL
153594 +enable_so_rpcrdma_alloc_regbuf_fndecl_13018 rpcrdma_alloc_regbuf fndecl 2 13018 NULL
153595 +enable_so_snd_nm256_capture_copy_fndecl_13021 snd_nm256_capture_copy fndecl 5 13021 NULL
153596 +enable_so_do_mbind_fndecl_13022 do_mbind fndecl 2-1 13022 NULL
153597 +enable_so_format_supported_num_intel_sdvo_connector_13024 format_supported_num intel_sdvo_connector 0 13024 NULL
153598 +enable_so___free_memory_core_fndecl_13029 __free_memory_core fndecl 0-1-2 13029 NULL nohasharray
153599 +enable_so_iwl_dbgfs_nic_temp_read_fndecl_13029 iwl_dbgfs_nic_temp_read fndecl 3 13029 &enable_so___free_memory_core_fndecl_13029
153600 +enable_so_blk_queue_resize_tags_fndecl_13037 blk_queue_resize_tags fndecl 2 13037 NULL
153601 +enable_so_copy_align_dma_device_13054 copy_align dma_device 0 13054 NULL
153602 +enable_so_p9_fcall_alloc_fndecl_13055 p9_fcall_alloc fndecl 1 13055 NULL nohasharray
153603 +enable_so_sco_sock_recvmsg_fndecl_13055 sco_sock_recvmsg fndecl 3 13055 &enable_so_p9_fcall_alloc_fndecl_13055
153604 +enable_so_hfront_porch_videomode_13056 hfront_porch videomode 0 13056 NULL
153605 +enable_so_calib_calib_count_read_fndecl_13060 calib_calib_count_read fndecl 3 13060 NULL
153606 +enable_so_p_offset_elf64_phdr_13061 p_offset elf64_phdr 0 13061 NULL
153607 +enable_so_xfs_bunmapi_fndecl_13063 xfs_bunmapi fndecl 3-4 13063 NULL
153608 +enable_so___ocfs2_dx_dir_leaf_insert_fndecl_13066 __ocfs2_dx_dir_leaf_insert fndecl 4 13066 NULL
153609 +enable_so_read_disk_sb_fndecl_13071 read_disk_sb fndecl 2 13071 NULL
153610 +enable_so_drAlBlkSiz_hfs_mdb_13072 drAlBlkSiz hfs_mdb 0 13072 NULL nohasharray
153611 +enable_so_amd756_ioport_vardecl_i2c_amd756_c_13072 amd756_ioport vardecl_i2c-amd756.c 0 13072 &enable_so_drAlBlkSiz_hfs_mdb_13072
153612 +enable_so_first_p2m_pfn_start_info_13081 first_p2m_pfn start_info 0 13081 NULL
153613 +enable_so_envc_tomoyo_condition_13082 envc tomoyo_condition 0 13082 NULL
153614 +enable_so_c4iw_reject_cr_fndecl_13085 c4iw_reject_cr fndecl 3 13085 NULL
153615 +enable_so_vread_fndecl_13086 vread fndecl 3-0 13086 NULL
153616 +enable_so_hard_mtu_usbnet_13093 hard_mtu usbnet 0 13093 NULL nohasharray
153617 +enable_so_vrambase_sisusb_usb_data_13093 vrambase sisusb_usb_data 0 13093 &enable_so_hard_mtu_usbnet_13093 nohasharray
153618 +enable_so_cursg_ofs_ide_cmd_13093 cursg_ofs ide_cmd 0 13093 &enable_so_vrambase_sisusb_usb_data_13093 nohasharray
153619 +enable_so_thermal_zone_device_register_fndecl_13093 thermal_zone_device_register fndecl 2 13093 &enable_so_cursg_ofs_ide_cmd_13093
153620 +enable_so_set_wep_key_fndecl_13094 set_wep_key fndecl 4 13094 NULL
153621 +enable_so___exclude_logged_extent_fndecl_13095 __exclude_logged_extent fndecl 3-2 13095 NULL
153622 +enable_so_end_data_mm_struct_13099 end_data mm_struct 0 13099 NULL
153623 +enable_so_ocfs2_cow_sync_writeback_fndecl_13102 ocfs2_cow_sync_writeback fndecl 3-4 13102 NULL nohasharray
153624 +enable_so_user_trans_num_acl_subject_label_13102 user_trans_num acl_subject_label 0 13102 &enable_so_ocfs2_cow_sync_writeback_fndecl_13102
153625 +enable_so___qp_memcpy_from_queue_fndecl_13103 __qp_memcpy_from_queue fndecl 4-3 13103 NULL nohasharray
153626 +enable_so_sctp_tsnmap_skip_fndecl_13103 sctp_tsnmap_skip fndecl 2 13103 &enable_so___qp_memcpy_from_queue_fndecl_13103
153627 +enable_so_cx24117_readregN_fndecl_13105 cx24117_readregN fndecl 4 13105 NULL
153628 +enable_so_num_qp_mlx4_profile_13106 num_qp mlx4_profile 0 13106 NULL
153629 +enable_so_di_size_efs_dinode_13109 di_size efs_dinode 0 13109 NULL
153630 +enable_so_au_verfsize_rpc_auth_13110 au_verfsize rpc_auth 0 13110 NULL
153631 +enable_so_DecodeMatrix_fndecl_13117 DecodeMatrix fndecl 0 13117 NULL nohasharray
153632 +enable_so_wIELength_uwb_rc_evt_drp_WUSB_0100_13117 wIELength uwb_rc_evt_drp_WUSB_0100 0 13117 &enable_so_DecodeMatrix_fndecl_13117
153633 +enable_so_sys_setpriority_fndecl_13132 sys_setpriority fndecl 3 13132 NULL
153634 +enable_so_source_pad_adv76xx_state_13133 source_pad adv76xx_state 0 13133 NULL
153635 +enable_so_c4iw_wr_log_size_order_vardecl_device_c_13134 c4iw_wr_log_size_order vardecl_device.c 0 13134 NULL
153636 +enable_so_line6_alloc_sysex_buffer_fndecl_13138 line6_alloc_sysex_buffer fndecl 4 13138 NULL
153637 +enable_so_genwqe_sriov_configure_fndecl_13139 genwqe_sriov_configure fndecl 2 13139 NULL
153638 +enable_so_mousedev_reserve_minor_fndecl_13143 mousedev_reserve_minor fndecl 0 13143 NULL
153639 +enable_so_viafb_bpp_vardecl_viafbdev_c_13145 viafb_bpp vardecl_viafbdev.c 0 13145 NULL
153640 +enable_so_max_response_packet_size_ec_response_get_protocol_info_13148 max_response_packet_size ec_response_get_protocol_info 0 13148 NULL
153641 +enable_so_key_affs_ext_key_13149 key affs_ext_key 0 13149 NULL
153642 +enable_so_calc_available_memory_size_fndecl_13151 calc_available_memory_size fndecl 0 13151 NULL
153643 +enable_so_last_load_s3c_hsotg_ep_13153 last_load s3c_hsotg_ep 0 13153 NULL
153644 +enable_so_len_mtd_write_req_13154 len mtd_write_req 0 13154 NULL nohasharray
153645 +enable_so_EraseUnitSize_erase_unit_header_t_13154 EraseUnitSize erase_unit_header_t 0 13154 &enable_so_len_mtd_write_req_13154
153646 +enable_so_inline_xattr_size_fndecl_13166 inline_xattr_size fndecl 0 13166 NULL
153647 +enable_so_hpfs_add_to_dnode_fndecl_13167 hpfs_add_to_dnode fndecl 4-2 13167 NULL
153648 +enable_so_nouveau_compat_ioctl_fndecl_13186 nouveau_compat_ioctl fndecl 2 13186 NULL
153649 +enable_so_blocksize_f2fs_sb_info_13191 blocksize f2fs_sb_info 0 13191 NULL
153650 +enable_so_bsg_setup_queue_fndecl_13194 bsg_setup_queue fndecl 5 13194 NULL
153651 +enable_so_generic_access_phys_fndecl_13197 generic_access_phys fndecl 2-4 13197 NULL
153652 +enable_so_snd_pcm_oss_read_fndecl_13198 snd_pcm_oss_read fndecl 3 13198 NULL
153653 +enable_so_SyS_ppoll_fndecl_13201 SyS_ppoll fndecl 2 13201 NULL
153654 +enable_so_dma_map_sg_attrs_fndecl_13202 dma_map_sg_attrs fndecl 0 13202 NULL
153655 +enable_so_num_channels_sh_cmt_device_13209 num_channels sh_cmt_device 0 13209 NULL
153656 +enable_so_buf_size_in_bytes_kfd_ioctl_dbg_address_watch_args_13210 buf_size_in_bytes kfd_ioctl_dbg_address_watch_args 0 13210 NULL
153657 +enable_so_height_usbtv_13217 height usbtv 0 13217 NULL nohasharray
153658 +enable_so_bm_entry_write_fndecl_13217 bm_entry_write fndecl 3 13217 &enable_so_height_usbtv_13217
153659 +enable_so_create_boot_cache_fndecl_13218 create_boot_cache fndecl 3 13218 NULL
153660 +enable_so_total_xfer_len_sas_task_13219 total_xfer_len sas_task 0 13219 NULL
153661 +enable_so_ath5k_common_padpos_fndecl_13221 ath5k_common_padpos fndecl 0 13221 NULL
153662 +enable_so_tcp_copy_to_iovec_fndecl_13227 tcp_copy_to_iovec fndecl 3 13227 NULL
153663 +enable_so_len_hi_sigma_action_13229 len_hi sigma_action 0 13229 NULL
153664 +enable_so_filldir64_fndecl_13232 filldir64 fndecl 3 13232 NULL
153665 +enable_so_mtdram_init_device_fndecl_13236 mtdram_init_device fndecl 3 13236 NULL
153666 +enable_so_ipxitf_alloc_fndecl_13238 ipxitf_alloc fndecl 6 13238 NULL
153667 +enable_so_max_mthca_wq_13240 max mthca_wq 0 13240 NULL
153668 +enable_so_update_sge_fndecl_13245 update_sge fndecl 2 13245 NULL
153669 +enable_so_sq_psn_ib_qp_attr_13249 sq_psn ib_qp_attr 0 13249 NULL nohasharray
153670 +enable_so_batadv_handle_tt_response_fndecl_13249 batadv_handle_tt_response fndecl 4 13249 &enable_so_sq_psn_ib_qp_attr_13249
153671 +enable_so_dst_base_apei_exec_context_13252 dst_base apei_exec_context 0 13252 NULL
153672 +enable_so_maxsize_p9_trans_module_13254 maxsize p9_trans_module 0 13254 NULL
153673 +enable_so_pid_filter_count_dvb_usb_adapter_properties_13258 pid_filter_count dvb_usb_adapter_properties 0 13258 NULL
153674 +enable_so_blocklen_bytes_drbg_core_13259 blocklen_bytes drbg_core 0 13259 NULL nohasharray
153675 +enable_so_maxid_scif_info_13259 maxid scif_info 0 13259 &enable_so_blocklen_bytes_drbg_core_13259
153676 +enable_so_rsp_pay_size_qlcnic_bc_trans_13274 rsp_pay_size qlcnic_bc_trans 0 13274 NULL nohasharray
153677 +enable_so_rx_len_acpi_ipmi_msg_13274 rx_len acpi_ipmi_msg 0 13274 &enable_so_rsp_pay_size_qlcnic_bc_trans_13274
153678 +enable_so_xfs_iomap_write_unwritten_fndecl_13278 xfs_iomap_write_unwritten fndecl 2-3 13278 NULL
153679 +enable_so_status_usb_iso_packet_descriptor_13287 status usb_iso_packet_descriptor 0 13287 NULL
153680 +enable_so_num_bytes_sigma_fw_chunk_control_13289 num_bytes sigma_fw_chunk_control 0 13289 NULL
153681 +enable_so_compress_file_range_fndecl_13295 compress_file_range fndecl 3-4 13295 NULL
153682 +enable_so_ioc_plen1_libcfs_ioctl_data_13297 ioc_plen1 libcfs_ioctl_data 0 13297 NULL
153683 +enable_so_dlmfs_file_read_fndecl_13298 dlmfs_file_read fndecl 3 13298 NULL
153684 +enable_so_sys_writev_fndecl_13299 sys_writev fndecl 3 13299 NULL
153685 +enable_so_alloc_page_buffers_fndecl_13304 alloc_page_buffers fndecl 2 13304 NULL
153686 +enable_so_tx_frag_cache_miss_read_fndecl_13305 tx_frag_cache_miss_read fndecl 3 13305 NULL
153687 +enable_so_rxkad_secure_packet_auth_fndecl_13307 rxkad_secure_packet_auth fndecl 3 13307 NULL
153688 +enable_so_list_bytes_osdv2_attributes_list_header_13311 list_bytes osdv2_attributes_list_header 0 13311 NULL
153689 +enable_so_tool_db_write_fndecl_13312 tool_db_write fndecl 3 13312 NULL
153690 +enable_so_token_size_iw_ioctl_description_13319 token_size iw_ioctl_description 0 13319 NULL nohasharray
153691 +enable_so_req_len_snic_req_info_13319 req_len snic_req_info 0 13319 &enable_so_token_size_iw_ioctl_description_13319
153692 +enable_so_slhc_uncompress_fndecl_13322 slhc_uncompress fndecl 0-3 13322 NULL
153693 +enable_so_skb_zerocopy_headlen_fndecl_13325 skb_zerocopy_headlen fndecl 0 13325 NULL
153694 +enable_so_csum_and_copy_from_iter_fndecl_13338 csum_and_copy_from_iter fndecl 2 13338 NULL
153695 +enable_so_copy_buffer_fndecl_13339 copy_buffer fndecl 1-2-3 13339 NULL
153696 +enable_so_brcmf_usb_dl_cmd_fndecl_13344 brcmf_usb_dl_cmd fndecl 4 13344 NULL
153697 +enable_so_x25_asy_change_mtu_fndecl_13347 x25_asy_change_mtu fndecl 2 13347 NULL
153698 +enable_so_pwr_ps_enter_read_fndecl_13348 pwr_ps_enter_read fndecl 3 13348 NULL nohasharray
153699 +enable_so_sctp_setsockopt_adaptation_layer_fndecl_13348 sctp_setsockopt_adaptation_layer fndecl 3 13348 &enable_so_pwr_ps_enter_read_fndecl_13348
153700 +enable_so_compat_mtw_from_user_fndecl_13351 compat_mtw_from_user fndecl 0 13351 NULL
153701 +enable_so_hecubafb_write_fndecl_13357 hecubafb_write fndecl 3 13357 NULL
153702 +enable_so_carl9170_handle_mpdu_fndecl_13359 carl9170_handle_mpdu fndecl 3 13359 NULL
153703 +enable_so_hhf_zalloc_fndecl_13363 hhf_zalloc fndecl 1 13363 NULL
153704 +enable_so_unit_mddev_13365 unit mddev 0 13365 NULL
153705 +enable_so_ihl_iphdr_13367 ihl iphdr 0 13367 NULL nohasharray
153706 +enable_so_cfg80211_process_auth_fndecl_13367 cfg80211_process_auth fndecl 3 13367 &enable_so_ihl_iphdr_13367
153707 +enable_so_sd_size_stat_data_13368 sd_size stat_data 0 13368 NULL
153708 +enable_so_ep_response_mts_desc_13372 ep_response mts_desc 0 13372 NULL
153709 +enable_so_num_pages_ttm_tt_13376 num_pages ttm_tt 0 13376 NULL nohasharray
153710 +enable_so_error_error_frame_during_protection_read_fndecl_13376 error_error_frame_during_protection_read fndecl 3 13376 &enable_so_num_pages_ttm_tt_13376
153711 +enable_so_ds_in_channels_hdspm_13382 ds_in_channels hdspm 0 13382 NULL nohasharray
153712 +enable_so_T5_msg_size_mxt_data_13382 T5_msg_size mxt_data 0 13382 &enable_so_ds_in_channels_hdspm_13382
153713 +enable_so_max_width_sh_mobile_ceu_dev_13387 max_width sh_mobile_ceu_dev 0 13387 NULL nohasharray
153714 +enable_so_rules_all_snd_pcm_hw_constraints_13387 rules_all snd_pcm_hw_constraints 0 13387 &enable_so_max_width_sh_mobile_ceu_dev_13387
153715 +enable_so_off_dt_strings_fdt_header_13388 off_dt_strings fdt_header 0 13388 NULL nohasharray
153716 +enable_so_chunk_size_lirc_buffer_13388 chunk_size lirc_buffer 0 13388 &enable_so_off_dt_strings_fdt_header_13388
153717 +enable_so_beep_amp_conexant_spec_13390 beep_amp conexant_spec 0 13390 NULL
153718 +enable_so_ic_offset_xlog_in_core_13393 ic_offset xlog_in_core 0 13393 NULL nohasharray
153719 +enable_so_cmdsts__BufferDesc_13393 cmdsts _BufferDesc 0 13393 &enable_so_ic_offset_xlog_in_core_13393 nohasharray
153720 +enable_so_max_sets_vardecl_ip_set_core_c_13393 max_sets vardecl_ip_set_core.c 0 13393 &enable_so_cmdsts__BufferDesc_13393
153721 +enable_so_memblock_add_fndecl_13394 memblock_add fndecl 1-2 13394 NULL
153722 +enable_so_nfs42_fallocate_fndecl_13396 nfs42_fallocate fndecl 3-4 13396 NULL
153723 +enable_so_mp_payload_len_fcoe_mp_rsp_union_13397 mp_payload_len fcoe_mp_rsp_union 0 13397 NULL nohasharray
153724 +enable_so_i_size_write_fndecl_13397 i_size_write fndecl 2 13397 &enable_so_mp_payload_len_fcoe_mp_rsp_union_13397
153725 +enable_so_microread_probe_fndecl_13400 microread_probe fndecl 6-4 13400 NULL nohasharray
153726 +enable_so_slgt_device_count_vardecl_synclink_gt_c_13400 slgt_device_count vardecl_synclink_gt.c 0 13400 &enable_so_microread_probe_fndecl_13400
153727 +enable_so_rmmio_base_cirrus_device_13402 rmmio_base cirrus_device 0 13402 NULL
153728 +enable_so_nfs_proc_readlink_fndecl_13404 nfs_proc_readlink fndecl 4-3 13404 NULL
153729 +enable_so_shrink_slab_fndecl_13407 shrink_slab fndecl 5-4 13407 NULL
153730 +enable_so_subdevices_count_snd_rawmidi_info_13408 subdevices_count snd_rawmidi_info 0 13408 NULL
153731 +enable_so_rate_adav80x_13411 rate adav80x 0 13411 NULL
153732 +enable_so_extra_len_request_13419 extra_len request 0 13419 NULL
153733 +enable_so_i2c_smbus_xfer_fndecl_13421 i2c_smbus_xfer fndecl 0 13421 NULL
153734 +enable_so_nrealreaders_stress_lock_torture_cxt_13422 nrealreaders_stress lock_torture_cxt 0 13422 NULL
153735 +enable_so_tx_headroom_ieee80211_local_13423 tx_headroom ieee80211_local 0 13423 NULL
153736 +enable_so_do_direct_IO_fndecl_13424 do_direct_IO fndecl 0 13424 NULL
153737 +enable_so_di_nblocks_xfs_icdinode_13426 di_nblocks xfs_icdinode 0 13426 NULL
153738 +enable_so_tb_path_alloc_fndecl_13427 tb_path_alloc fndecl 2 13427 NULL
153739 +enable_so_get_origin_minimum_chunksize_fndecl_13432 get_origin_minimum_chunksize fndecl 0 13432 NULL
153740 +enable_so_nouveau_channel_prep_fndecl_13435 nouveau_channel_prep fndecl 4 13435 NULL
153741 +enable_so_usbdev_lseek_fndecl_13441 usbdev_lseek fndecl 2 13441 NULL
153742 +enable_so_promote_fndecl_13442 promote fndecl 4-3 13442 NULL nohasharray
153743 +enable_so_mwifiex_memrw_write_fndecl_13442 mwifiex_memrw_write fndecl 3 13442 &enable_so_promote_fndecl_13442
153744 +enable_so_kvm_read_guest_phys_system_fndecl_13445 kvm_read_guest_phys_system fndecl 2-4 13445 NULL
153745 +enable_so_nports_adapter_params_13446 nports adapter_params 0 13446 NULL
153746 +enable_so_vlan_mlx4_ib_tunnel_header_13451 vlan mlx4_ib_tunnel_header 0 13451 NULL
153747 +enable_so_fill_read_buf_fndecl_13455 fill_read_buf fndecl 0-2 13455 NULL
153748 +enable_so_me_start_ocfs2_move_extents_13461 me_start ocfs2_move_extents 0 13461 NULL nohasharray
153749 +enable_so_max_eq_mlx4_func_cap_13461 max_eq mlx4_func_cap 0 13461 &enable_so_me_start_ocfs2_move_extents_13461
153750 +enable_so_flaglen_ring_desc_13468 flaglen ring_desc 0 13468 NULL
153751 +enable_so_ufs_alloc_fragments_fndecl_13472 ufs_alloc_fragments fndecl 2-0-3 13472 NULL nohasharray
153752 +enable_so_handle_mm_fault_fndecl_13472 handle_mm_fault fndecl 3 13472 &enable_so_ufs_alloc_fragments_fndecl_13472 nohasharray
153753 +enable_so_snd_ctl_new_fndecl_13472 snd_ctl_new fndecl 2 13472 &enable_so_handle_mm_fault_fndecl_13472
153754 +enable_so_height_bttv_fh_13473 height bttv_fh 0 13473 NULL
153755 +enable_so_multipath_end_bh_io_fndecl_13474 multipath_end_bh_io fndecl 2 13474 NULL
153756 +enable_so_req_ie_length_ndis_80211_assoc_info_13477 req_ie_length ndis_80211_assoc_info 0 13477 NULL nohasharray
153757 +enable_so___videobuf_alloc_vb_fndecl_13477 __videobuf_alloc_vb fndecl 1 13477 &enable_so_req_ie_length_ndis_80211_assoc_info_13477
153758 +enable_so_devfn_slot_13478 devfn slot 0 13478 NULL
153759 +enable_so_ext4_convert_unwritten_extents_fndecl_13483 ext4_convert_unwritten_extents fndecl 3-4 13483 NULL
153760 +enable_so_size_jffs2_full_dnode_13487 size jffs2_full_dnode 0 13487 NULL
153761 +enable_so_sk_datalen_svc_sock_13490 sk_datalen svc_sock 0 13490 NULL nohasharray
153762 +enable_so_i_section_size_iso_inode_info_13490 i_section_size iso_inode_info 0 13490 &enable_so_sk_datalen_svc_sock_13490
153763 +enable_so_curchunk_len_drm_dp_sideband_msg_rx_13501 curchunk_len drm_dp_sideband_msg_rx 0 13501 NULL
153764 +enable_so_sendpage_proto_ops_13505 sendpage proto_ops 0 13505 NULL nohasharray
153765 +enable_so_hwtstamp_ioctl_fndecl_13505 hwtstamp_ioctl fndecl 0 13505 &enable_so_sendpage_proto_ops_13505
153766 +enable_so_btmrvl_hscmd_write_fndecl_13506 btmrvl_hscmd_write fndecl 3 13506 NULL
153767 +enable_so_max_channels_cmipci_13517 max_channels cmipci 0 13517 NULL nohasharray
153768 +enable_so_len_unix_address_13517 len unix_address 0 13517 &enable_so_max_channels_cmipci_13517
153769 +enable_so_max_out_size_ims_pcu_13527 max_out_size ims_pcu 0 13527 NULL
153770 +enable_so_av_buf_head_dccp_ackvec_13528 av_buf_head dccp_ackvec 0 13528 NULL nohasharray
153771 +enable_so_alloc_fdmem_fndecl_13528 alloc_fdmem fndecl 1 13528 &enable_so_av_buf_head_dccp_ackvec_13528
153772 +enable_so_ppp_print_buffer_fndecl_13530 ppp_print_buffer fndecl 3 13530 NULL
153773 +enable_so_max_ws_blocks_scsi_disk_13533 max_ws_blocks scsi_disk 0 13533 NULL
153774 +enable_so_find_rsb_nodir_fndecl_13537 find_rsb_nodir fndecl 3 13537 NULL
153775 +enable_so_hfi1_snoop_write_fndecl_13544 hfi1_snoop_write fndecl 3 13544 NULL
153776 +enable_so_p_filesz_elf64_phdr_13545 p_filesz elf64_phdr 0 13545 NULL
153777 +enable_so_len_prism2_download_data_area_13551 len prism2_download_data_area 0 13551 NULL
153778 +enable_so_nes_reg_user_mr_fndecl_13553 nes_reg_user_mr fndecl 2-3 13553 NULL nohasharray
153779 +enable_so_nvme_trans_send_download_fw_cmd_fndecl_13553 nvme_trans_send_download_fw_cmd fndecl 4 13553 &enable_so_nes_reg_user_mr_fndecl_13553
153780 +enable_so_context_id_fcoe_kwqe_conn_destroy_13555 context_id fcoe_kwqe_conn_destroy 0 13555 NULL
153781 +enable_so___devcgroup_inode_permission_fndecl_13559 __devcgroup_inode_permission fndecl 0 13559 NULL nohasharray
153782 +enable_so_ib_qib_qp_table_size_vardecl_qib_verbs_c_13559 ib_qib_qp_table_size vardecl_qib_verbs.c 0 13559 &enable_so___devcgroup_inode_permission_fndecl_13559
153783 +enable_so_buf_len_vp702x_device_state_13562 buf_len vp702x_device_state 0 13562 NULL
153784 +enable_so_capture_periodsize_rme96_13564 capture_periodsize rme96 0 13564 NULL
153785 +enable_so_edt_ft5x06_ts_readwrite_fndecl_13570 edt_ft5x06_ts_readwrite fndecl 2-4-0 13570 NULL
153786 +enable_so_avc_tuner_dsd_dvb_t_fndecl_13571 avc_tuner_dsd_dvb_t fndecl 0 13571 NULL
153787 +enable_so_amdtp_stream_get_max_payload_fndecl_13574 amdtp_stream_get_max_payload fndecl 0 13574 NULL
153788 +enable_so_irq_alloc_generic_chip_fndecl_13577 irq_alloc_generic_chip fndecl 2 13577 NULL
153789 +enable_so_fd_do_prot_fill_fndecl_13583 fd_do_prot_fill fndecl 5-3 13583 NULL
153790 +enable_so_pwr_fix_tsf_ps_read_fndecl_13584 pwr_fix_tsf_ps_read fndecl 3 13584 NULL
153791 +enable_so_ring_size_r600_ih_13586 ring_size r600_ih 0 13586 NULL
153792 +enable_so_lines_nvkm_gpio_func_13593 lines nvkm_gpio_func 0 13593 NULL
153793 +enable_so_video_v_start_saa7134_tvnorm_13594 video_v_start saa7134_tvnorm 0 13594 NULL nohasharray
153794 +enable_so___skb_flow_dissect_fndecl_13594 __skb_flow_dissect fndecl 6 13594 &enable_so_video_v_start_saa7134_tvnorm_13594
153795 +enable_so_pxa168_eth_change_mtu_fndecl_13596 pxa168_eth_change_mtu fndecl 2 13596 NULL nohasharray
153796 +enable_so_sysctl_wmem_default_vardecl_13596 sysctl_wmem_default vardecl 0 13596 &enable_so_pxa168_eth_change_mtu_fndecl_13596
153797 +enable_so_fb_x_vmw_fb_par_13597 fb_x vmw_fb_par 0 13597 NULL
153798 +enable_so_active_ahc_linux_device_13601 active ahc_linux_device 0 13601 NULL
153799 +enable_so_size_drm_mm_node_13605 size drm_mm_node 0 13605 NULL
153800 +enable_so_flowinfo_read_fndecl_13608 flowinfo_read fndecl 3 13608 NULL
153801 +enable_so_id_pcap_subdev_13609 id pcap_subdev 0 13609 NULL
153802 +enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611 cipso_v4_map_cat_rbm_hton fndecl 0 13611 NULL nohasharray
153803 +enable_so_size_sm501_mem_13611 size sm501_mem 0 13611 &enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611
153804 +enable_so___alloc_pred_stack_fndecl_13612 __alloc_pred_stack fndecl 2 13612 NULL
153805 +enable_so_nvoices_snd_seq_oss_reg_13613 nvoices snd_seq_oss_reg 0 13613 NULL
153806 +enable_so_us122l_start_fndecl_13617 us122l_start fndecl 2-3 13617 NULL
153807 +enable_so_softback_top_vardecl_fbcon_c_13621 softback_top vardecl_fbcon.c 0 13621 NULL nohasharray
153808 +enable_so_mpt_entry_sz_mthca_dev_lim_13621 mpt_entry_sz mthca_dev_lim 0 13621 &enable_so_softback_top_vardecl_fbcon_c_13621
153809 +enable_so_desc_size_efi_memory_map_13622 desc_size efi_memory_map 0 13622 NULL nohasharray
153810 +enable_so_usb_reset_device_fndecl_13622 usb_reset_device fndecl 0 13622 &enable_so_desc_size_efi_memory_map_13622
153811 +enable_so_ws_col_winsize_13628 ws_col winsize 0 13628 NULL
153812 +enable_so_num_mgms_mthca_limits_13629 num_mgms mthca_limits 0 13629 NULL
153813 +enable_so_x1_drm_clip_rect_13637 x1 drm_clip_rect 0 13637 NULL nohasharray
153814 +enable_so_max_dpcd_transaction_bytes_drm_dp_mst_topology_mgr_13637 max_dpcd_transaction_bytes drm_dp_mst_topology_mgr 0 13637 &enable_so_x1_drm_clip_rect_13637
153815 +enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638 xenbus_map_ring_valloc_hvm fndecl 3 13638 NULL nohasharray
153816 +enable_so_entry_mpls_label_13638 entry mpls_label 0 13638 &enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638
153817 +enable_so_nbytes_ata_queued_cmd_13642 nbytes ata_queued_cmd 0 13642 NULL
153818 +enable_so_nilfs_compute_checksum_fndecl_13643 nilfs_compute_checksum fndecl 6 13643 NULL nohasharray
153819 +enable_so_npools_svc_pool_map_13643 npools svc_pool_map 0 13643 &enable_so_nilfs_compute_checksum_fndecl_13643
153820 +enable_so_number_mdp_device_descriptor_s_13645 number mdp_device_descriptor_s 0 13645 NULL
153821 +enable_so_totalsize_fdt_header_13649 totalsize fdt_header 0 13649 NULL
153822 +enable_so_unicast_mac_count_be_nic_res_desc_13650 unicast_mac_count be_nic_res_desc 0 13650 NULL
153823 +enable_so_page_len_xdr_buf_13652 page_len xdr_buf 0 13652 NULL
153824 +enable_so_buffer_pos_vardecl_event_buffer_c_13658 buffer_pos vardecl_event_buffer.c 0 13658 NULL
153825 +enable_so_width_s2255_vc_13661 width s2255_vc 0 13661 NULL
153826 +enable_so_fdt_node_offset_by_prop_value_fndecl_13670 fdt_node_offset_by_prop_value fndecl 2 13670 NULL
153827 +enable_so_qpn_ib_ucm_req_13672 qpn ib_ucm_req 0 13672 NULL
153828 +enable_so_length_rbd_img_request_13674 length rbd_img_request 0 13674 NULL
153829 +enable_so_vsync_psb_pipe_13675 vsync psb_pipe 0 13675 NULL
153830 +enable_so_virtscsi_change_queue_depth_fndecl_13676 virtscsi_change_queue_depth fndecl 2 13676 NULL
153831 +enable_so_fixup_pmc551_fndecl_13679 fixup_pmc551 fndecl 0 13679 NULL nohasharray
153832 +enable_so_mpls_rt_alloc_fndecl_13679 mpls_rt_alloc fndecl 1 13679 &enable_so_fixup_pmc551_fndecl_13679
153833 +enable_so_nfc_hci_send_cmd_async_fndecl_13680 nfc_hci_send_cmd_async fndecl 5 13680 NULL
153834 +enable_so_receive_big_fndecl_13686 receive_big fndecl 5 13686 NULL
153835 +enable_so_writing_osst_buffer_13689 writing osst_buffer 0 13689 NULL
153836 +enable_so_lo_hi_readq_fndecl_13693 lo_hi_readq fndecl 0 13693 NULL
153837 +enable_so_w_align_bdisp_fmt_13694 w_align bdisp_fmt 0 13694 NULL
153838 +enable_so_hpfs_free_sectors_fndecl_13696 hpfs_free_sectors fndecl 3 13696 NULL
153839 +enable_so_skb_size_qlcnic_host_rds_ring_13698 skb_size qlcnic_host_rds_ring 0 13698 NULL nohasharray
153840 +enable_so_hfi1_alloc_fast_reg_page_list_fndecl_13698 hfi1_alloc_fast_reg_page_list fndecl 2 13698 &enable_so_skb_size_qlcnic_host_rds_ring_13698
153841 +enable_so_resize_platform_label_table_fndecl_13711 resize_platform_label_table fndecl 2 13711 NULL
153842 +enable_so_bos_desc_fndecl_13715 bos_desc fndecl 0 13715 NULL
153843 +enable_so_valuelen_lo_extended_attribute_13722 valuelen_lo extended_attribute 0 13722 NULL
153844 +enable_so_payload_len_pptp_gre_header_13724 payload_len pptp_gre_header 0 13724 NULL
153845 +enable_so_wsm_buf_reserve_fndecl_13730 wsm_buf_reserve fndecl 2 13730 NULL
153846 +enable_so_channels_max_snd_soc_pcm_stream_13737 channels_max snd_soc_pcm_stream 0 13737 NULL nohasharray
153847 +enable_so_bfad_iocmd_adapter_cfg_mode_fndecl_13737 bfad_iocmd_adapter_cfg_mode fndecl 0 13737 &enable_so_channels_max_snd_soc_pcm_stream_13737 nohasharray
153848 +enable_so_mfd_add_device_fndecl_13737 mfd_add_device fndecl 6-2 13737 &enable_so_bfad_iocmd_adapter_cfg_mode_fndecl_13737
153849 +enable_so_shdma_prep_dma_cyclic_fndecl_13739 shdma_prep_dma_cyclic fndecl 4-2-3 13739 NULL
153850 +enable_so_nr_segments_vscsiif_request_13741 nr_segments vscsiif_request 0 13741 NULL nohasharray
153851 +enable_so_pof_write_buffer_fndecl_13741 pof_write_buffer fndecl 0 13741 &enable_so_nr_segments_vscsiif_request_13741
153852 +enable_so_len_tcf_em_nbyte_13742 len tcf_em_nbyte 0 13742 NULL
153853 +enable_so_cipso_v4_genopt_fndecl_13743 cipso_v4_genopt fndecl 0 13743 NULL nohasharray
153854 +enable_so_write_pipe_ezusb_priv_13743 write_pipe ezusb_priv 0 13743 &enable_so_cipso_v4_genopt_fndecl_13743
153855 +enable_so_level_guest_walker32_13749 level guest_walker32 0 13749 NULL
153856 +enable_so_qlcnic_alloc_sds_rings_fndecl_13752 qlcnic_alloc_sds_rings fndecl 2 13752 NULL
153857 +enable_so_compat_sys_recv_fndecl_13753 compat_sys_recv fndecl 3 13753 NULL
153858 +enable_so_length_core_conn_create_data_13754 length core_conn_create_data 0 13754 NULL nohasharray
153859 +enable_so_numrx_velocity_opt_13754 numrx velocity_opt 0 13754 &enable_so_length_core_conn_create_data_13754
153860 +enable_so_i_pino_f2fs_inode_13756 i_pino f2fs_inode 0 13756 NULL
153861 +enable_so_slgt_compat_ioctl_fndecl_13761 slgt_compat_ioctl fndecl 3 13761 NULL nohasharray
153862 +enable_so_xfs_alloc_pagf_init_fndecl_13761 xfs_alloc_pagf_init fndecl 3 13761 &enable_so_slgt_compat_ioctl_fndecl_13761
153863 +enable_so_encrypt_headroom_ieee80211_sub_if_data_13764 encrypt_headroom ieee80211_sub_if_data 0 13764 NULL
153864 +enable_so_ar5523_cmd_read_fndecl_13766 ar5523_cmd_read fndecl 4 13766 NULL
153865 +enable_so_len_nci_set_config_param_13768 len nci_set_config_param 0 13768 NULL
153866 +enable_so_ecryptfs_miscdev_write_fndecl_13772 ecryptfs_miscdev_write fndecl 3 13772 NULL
153867 +enable_so_get_audio_sampling_rate_fndecl_13774 get_audio_sampling_rate fndecl 0 13774 NULL
153868 +enable_so_do_tcp_rcv_fndecl_13775 do_tcp_rcv fndecl 3 13775 NULL
153869 +enable_so_check_extent_to_block_fndecl_13780 check_extent_to_block fndecl 2-3 13780 NULL
153870 +enable_so_ue_size_asd_bios_chim_struct_13782 ue_size asd_bios_chim_struct 0 13782 NULL
153871 +enable_so_usbhs_dma_calc_received_size_fndecl_13783 usbhs_dma_calc_received_size fndecl 0-3 13783 NULL
153872 +enable_so_build_data_key_fndecl_13784 build_data_key fndecl 2 13784 NULL
153873 +enable_so_iwl_trans_read_mem32_fndecl_13786 iwl_trans_read_mem32 fndecl 0 13786 NULL
153874 +enable_so_ept_get_level1_sp_gpa_fndecl_13788 ept_get_level1_sp_gpa fndecl 0 13788 NULL nohasharray
153875 +enable_so_inbufBits_bunzip_data_13788 inbufBits bunzip_data 0 13788 &enable_so_ept_get_level1_sp_gpa_fndecl_13788
153876 +enable_so_smk_write_load_fndecl_13790 smk_write_load fndecl 3 13790 NULL
153877 +enable_so_num_channels_xilly_endpoint_13791 num_channels xilly_endpoint 0 13791 NULL
153878 +enable_so_tipc_conn_sendmsg_fndecl_13792 tipc_conn_sendmsg fndecl 5 13792 NULL
153879 +enable_so_reply_sz__MPT_ADAPTER_13794 reply_sz _MPT_ADAPTER 0 13794 NULL
153880 +enable_so_num_fcoe_msix_i40e_pf_13802 num_fcoe_msix i40e_pf 0 13802 NULL
153881 +enable_so_ath6kl_create_qos_write_fndecl_13804 ath6kl_create_qos_write fndecl 3 13804 NULL
153882 +enable_so_gx_frame_buffer_size_fndecl_13808 gx_frame_buffer_size fndecl 0 13808 NULL
153883 +enable_so_fifo_size_sram_channel_13811 fifo_size sram_channel 0 13811 NULL
153884 +enable_so_shared_kmem_cache_13812 shared kmem_cache 0 13812 NULL
153885 +enable_so_fifo_depth_fsl_ssi_private_13814 fifo_depth fsl_ssi_private 0 13814 NULL
153886 +enable_so_den_min_snd_ratnum_13815 den_min snd_ratnum 0 13815 NULL
153887 +enable_so_rt6i_nfheader_len_rt6_info_13820 rt6i_nfheader_len rt6_info 0 13820 NULL
153888 +enable_so_phys_pte_init_fndecl_13824 phys_pte_init fndecl 0-2-3 13824 NULL nohasharray
153889 +enable_so_seq_read_fndecl_13824 seq_read fndecl 3 13824 &enable_so_phys_pte_init_fndecl_13824
153890 +enable_so_brcmf_sdio_firmware_callback_fndecl_13829 brcmf_sdio_firmware_callback fndecl 4 13829 NULL
153891 +enable_so_ib_dma_map_sg_fndecl_13830 ib_dma_map_sg fndecl 0 13830 NULL
153892 +enable_so_logical_offset_btrfs_dio_private_13833 logical_offset btrfs_dio_private 0 13833 NULL
153893 +enable_so_acpi_os_get_root_pointer_fndecl_13835 acpi_os_get_root_pointer fndecl 0 13835 NULL nohasharray
153894 +enable_so_ieee80211_if_read_smps_fndecl_13835 ieee80211_if_read_smps fndecl 3 13835 &enable_so_acpi_os_get_root_pointer_fndecl_13835
153895 +enable_so_cypress_write_fndecl_13836 cypress_write fndecl 4 13836 NULL
153896 +enable_so_ceph_fallocate_fndecl_13837 ceph_fallocate fndecl 4-3 13837 NULL
153897 +enable_so_nr_vecs_biovec_slab_13838 nr_vecs biovec_slab 0 13838 NULL
153898 +enable_so_init_memory_mapping_fndecl_13840 init_memory_mapping fndecl 0-2-1 13840 NULL
153899 +enable_so_resize_user_fndecl_13857 resize_user fndecl 3 13857 NULL nohasharray
153900 +enable_so_bfad_iocmd_ioc_disable_fndecl_13857 bfad_iocmd_ioc_disable fndecl 0 13857 &enable_so_resize_user_fndecl_13857
153901 +enable_so_sddr09_read_data_fndecl_13860 sddr09_read_data fndecl 3-2 13860 NULL
153902 +enable_so_starting_offset_mpt3_diag_read_buffer_13869 starting_offset mpt3_diag_read_buffer 0 13869 NULL
153903 +enable_so_of_flat_dt_match_fndecl_13870 of_flat_dt_match fndecl 1 13870 NULL
153904 +enable_so_pack_sg_list_fndecl_13874 pack_sg_list fndecl 5 13874 NULL
153905 +enable_so_front_len_ceph_msg_header_13876 front_len ceph_msg_header 0 13876 NULL
153906 +enable_so_gfs2_add_jextent_fndecl_13879 gfs2_add_jextent fndecl 2-3 13879 NULL
153907 +enable_so_analog_ep_bulk_em28xx_13880 analog_ep_bulk em28xx 0 13880 NULL
153908 +enable_so_layers_idr_13889 layers idr 0 13889 NULL
153909 +enable_so___btt_log_write_fndecl_13893 __btt_log_write fndecl 0 13893 NULL
153910 +enable_so_cblock_per_bio_data_13894 cblock per_bio_data 0 13894 NULL
153911 +enable_so_s_ncg_ufs_sb_private_info_13899 s_ncg ufs_sb_private_info 0 13899 NULL nohasharray
153912 +enable_so_rlen_cm4000_dev_13899 rlen cm4000_dev 0 13899 &enable_so_s_ncg_ufs_sb_private_info_13899
153913 +enable_so_hold_inflate_state_13902 hold inflate_state 0 13902 NULL
153914 +enable_so_ep93xx_spi_chip_setup_fndecl_13909 ep93xx_spi_chip_setup fndecl 0 13909 NULL
153915 +enable_so_size_qlcnic_83xx_dump_template_hdr_13912 size qlcnic_83xx_dump_template_hdr 0 13912 NULL
153916 +enable_so_pio_base_qib_ctxtdata_13913 pio_base qib_ctxtdata 0 13913 NULL
153917 +enable_so_wm_coeff_parse_int_fndecl_13918 wm_coeff_parse_int fndecl 0 13918 NULL
153918 +enable_so_ipr_max_devs_vardecl_ipr_c_13921 ipr_max_devs vardecl_ipr.c 0 13921 NULL nohasharray
153919 +enable_so_trips_thermal_zone_device_13921 trips thermal_zone_device 0 13921 &enable_so_ipr_max_devs_vardecl_ipr_c_13921
153920 +enable_so_vt_block_vxfs_typed_13924 vt_block vxfs_typed 0 13924 NULL
153921 +enable_so_garmin_read_process_fndecl_13926 garmin_read_process fndecl 3 13926 NULL
153922 +enable_so_unix_stream_read_actor_fndecl_13931 unix_stream_read_actor fndecl 2-3 13931 NULL
153923 +enable_so_s_firstdatazone_minix_sb_info_13932 s_firstdatazone minix_sb_info 0 13932 NULL
153924 +enable_so_hcd_buffer_alloc_fndecl_13940 hcd_buffer_alloc fndecl 2 13940 NULL
153925 +enable_so_img_IMEM_size_fw_hdr_13961 img_IMEM_size fw_hdr 0 13961 NULL
153926 +enable_so_start_ubifs_bud_13964 start ubifs_bud 0 13964 NULL
153927 +enable_so_u132_hcd_configure_input_recv_fndecl_13969 u132_hcd_configure_input_recv fndecl 4 13969 NULL
153928 +enable_so_nla_append_fndecl_13971 nla_append fndecl 2 13971 NULL
153929 +enable_so_ib_copy_to_udata_fndecl_13974 ib_copy_to_udata fndecl 3 13974 NULL
153930 +enable_so_yres_panel_info_13976 yres panel_info 0 13976 NULL
153931 +enable_so_e_phnum_elf32_hdr_13980 e_phnum elf32_hdr 0 13980 NULL
153932 +enable_so_isdn_tty_handleDLEdown_fndecl_13981 isdn_tty_handleDLEdown fndecl 0 13981 NULL
153933 +enable_so_SyS_fgetxattr_fndecl_13984 SyS_fgetxattr fndecl 4 13984 NULL
153934 +enable_so_syslog_partial_vardecl_printk_c_13985 syslog_partial vardecl_printk.c 0 13985 NULL
153935 +enable_so_rd_size_uhid_device_13986 rd_size uhid_device 0 13986 NULL
153936 +enable_so_libipw_alloc_txb_fndecl_13992 libipw_alloc_txb fndecl 3-2-1 13992 NULL
153937 +enable_so_size_urb_list_13995 size urb_list 0 13995 NULL
153938 +enable_so_i2400mu_notification_grok_fndecl_13997 i2400mu_notification_grok fndecl 3 13997 NULL
153939 +enable_so_pnp_add_io_resource_fndecl_14000 pnp_add_io_resource fndecl 3-2 14000 NULL
153940 +enable_so_nilfs_read_super_root_block_fndecl_14003 nilfs_read_super_root_block fndecl 2 14003 NULL nohasharray
153941 +enable_so_wanted_disk_byte___prelim_ref_14003 wanted_disk_byte __prelim_ref 0 14003 &enable_so_nilfs_read_super_root_block_fndecl_14003 nohasharray
153942 +enable_so_blkno_xfs_da_state_blk_14003 blkno xfs_da_state_blk 0 14003 &enable_so_wanted_disk_byte___prelim_ref_14003 nohasharray
153943 +enable_so_i_len_xfs_log_iovec_14003 i_len xfs_log_iovec 0 14003 &enable_so_blkno_xfs_da_state_blk_14003
153944 +enable_so_buffer_top_vardecl_nm256_c_14008 buffer_top vardecl_nm256.c 0 14008 NULL
153945 +enable_so_n_phy_mvs_chip_info_14009 n_phy mvs_chip_info 0 14009 NULL
153946 +enable_so_ino_logfs_transaction_14011 ino logfs_transaction 0 14011 NULL nohasharray
153947 +enable_so_batadv_socket_add_packet_fndecl_14011 batadv_socket_add_packet fndecl 3 14011 &enable_so_ino_logfs_transaction_14011
153948 +enable_so_e820_update_range_saved_fndecl_14017 e820_update_range_saved fndecl 1-2 14017 NULL
153949 +enable_so_btrfs_find_create_tree_block_fndecl_14018 btrfs_find_create_tree_block fndecl 2 14018 NULL
153950 +enable_so_nct6775_find_fndecl_14019 nct6775_find fndecl 0 14019 NULL
153951 +enable_so_security_enabled_ieee802154_hdr_fc_14024 security_enabled ieee802154_hdr_fc 0 14024 NULL
153952 +enable_so_sensor_framerate_go7007_14025 sensor_framerate go7007 0 14025 NULL
153953 +enable_so_seg_rmpp_size_ib_mad_send_buf_14037 seg_rmpp_size ib_mad_send_buf 0 14037 NULL
153954 +enable_so_mst_offs_ubifs_info_14045 mst_offs ubifs_info 0 14045 NULL
153955 +enable_so_rate_ib_sa_path_rec_14046 rate ib_sa_path_rec 0 14046 NULL nohasharray
153956 +enable_so_descriptors_per_page__drm_via_sg_info_14046 descriptors_per_page _drm_via_sg_info 0 14046 &enable_so_rate_ib_sa_path_rec_14046
153957 +enable_so_zlib_deflateInit2_fndecl_14048 zlib_deflateInit2 fndecl 5-4 14048 NULL
153958 +enable_so_nr_perf_callchain_entry_14049 nr perf_callchain_entry 0 14049 NULL
153959 +enable_so_xdr_shift_buf_fndecl_14055 xdr_shift_buf fndecl 2 14055 NULL nohasharray
153960 +enable_so_drbd_recv_fndecl_14055 drbd_recv fndecl 3-0 14055 &enable_so_xdr_shift_buf_fndecl_14055 nohasharray
153961 +enable_so_C_SYSC_mbind_fndecl_14055 C_SYSC_mbind fndecl 5 14055 &enable_so_drbd_recv_fndecl_14055
153962 +enable_so_add_new_gdb_fndecl_14056 add_new_gdb fndecl 3 14056 NULL nohasharray
153963 +enable_so_nr_ring_pages_blkfront_info_14056 nr_ring_pages blkfront_info 0 14056 &enable_so_add_new_gdb_fndecl_14056
153964 +enable_so_ocfs2_xattr_ibody_get_fndecl_14057 ocfs2_xattr_ibody_get fndecl 0 14057 NULL nohasharray
153965 +enable_so_nl80211_send_connect_result_fndecl_14057 nl80211_send_connect_result fndecl 5-7 14057 &enable_so_ocfs2_xattr_ibody_get_fndecl_14057 nohasharray
153966 +enable_so_read_flush_procfs_fndecl_14057 read_flush_procfs fndecl 3 14057 &enable_so_nl80211_send_connect_result_fndecl_14057
153967 +enable_so_btrfs_fallocate_fndecl_14060 btrfs_fallocate fndecl 3-4 14060 NULL
153968 +enable_so_mgmt_device_connected_fndecl_14065 mgmt_device_connected fndecl 5 14065 NULL nohasharray
153969 +enable_so_entry_number_user_desc_14065 entry_number user_desc 0 14065 &enable_so_mgmt_device_connected_fndecl_14065
153970 +enable_so_cyttsp_spi_write_block_data_fndecl_14068 cyttsp_spi_write_block_data fndecl 4 14068 NULL
153971 +enable_so_error_async_submit_bio_14075 error async_submit_bio 0 14075 NULL
153972 +enable_so_end_switchdev_vlan_dump_14086 end switchdev_vlan_dump 0 14086 NULL
153973 +enable_so_sh_msiof_dma_once_fndecl_14090 sh_msiof_dma_once fndecl 4 14090 NULL nohasharray
153974 +enable_so_filemark_cnt_os_aux_s_14090 filemark_cnt os_aux_s 0 14090 &enable_so_sh_msiof_dma_once_fndecl_14090
153975 +enable_so_phantom_major_vardecl_phantom_c_14093 phantom_major vardecl_phantom.c 0 14093 NULL
153976 +enable_so_snd_compr_calc_avail_fndecl_14094 snd_compr_calc_avail fndecl 0 14094 NULL
153977 +enable_so___ext4_handle_dirty_metadata_fndecl_14098 __ext4_handle_dirty_metadata fndecl 0 14098 NULL
153978 +enable_so_btmrvl_hscfgcmd_write_fndecl_14100 btmrvl_hscfgcmd_write fndecl 3 14100 NULL
153979 +enable_so_data_len_vscsibk_pend_14106 data_len vscsibk_pend 0 14106 NULL
153980 +enable_so_gue_gro_remcsum_fndecl_14109 gue_gro_remcsum fndecl 5-2 14109 NULL nohasharray
153981 +enable_so_wil_write_file_wmi_fndecl_14109 wil_write_file_wmi fndecl 3 14109 &enable_so_gue_gro_remcsum_fndecl_14109
153982 +enable_so_alt_port_mlx4_ib_qp_14114 alt_port mlx4_ib_qp 0 14114 NULL nohasharray
153983 +enable_so_elem_size_xdr_array2_desc_14114 elem_size xdr_array2_desc 0 14114 &enable_so_alt_port_mlx4_ib_qp_14114
153984 +enable_so_hfs_direct_IO_fndecl_14120 hfs_direct_IO fndecl 3 14120 NULL
153985 +enable_so_data_count_iscsi_r2t_info_14122 data_count iscsi_r2t_info 0 14122 NULL
153986 +enable_so_adaption_gsm_dlci_14123 adaption gsm_dlci 0 14123 NULL
153987 +enable_so_size_mlx4_en_rx_ring_14125 size mlx4_en_rx_ring 0 14125 NULL
153988 +enable_so_efd_count_ext4_free_data_14128 efd_count ext4_free_data 0 14128 NULL
153989 +enable_so_i2400m_net_rx_fndecl_14129 i2400m_net_rx fndecl 5 14129 NULL
153990 +enable_so_size_uhid_input2_req_14140 size uhid_input2_req 0 14140 NULL nohasharray
153991 +enable_so_ieee80211_if_read_rc_rateidx_mask_5ghz_fndecl_14140 ieee80211_if_read_rc_rateidx_mask_5ghz fndecl 3 14140 &enable_so_size_uhid_input2_req_14140
153992 +enable_so_cros_ec_spi_receive_packet_fndecl_14142 cros_ec_spi_receive_packet fndecl 2 14142 NULL
153993 +enable_so_dqi_entry_size_qtree_mem_dqinfo_14150 dqi_entry_size qtree_mem_dqinfo 0 14150 NULL
153994 +enable_so_short_len_fat_ioctl_filldir_callback_14151 short_len fat_ioctl_filldir_callback 0 14151 NULL
153995 +enable_so_page_size_at24_platform_data_14152 page_size at24_platform_data 0 14152 NULL
153996 +enable_so_svcxdr_tmpalloc_fndecl_14154 svcxdr_tmpalloc fndecl 2 14154 NULL nohasharray
153997 +enable_so_write_kmem_fndecl_14154 write_kmem fndecl 3 14154 &enable_so_svcxdr_tmpalloc_fndecl_14154
153998 +enable_so_range_min_regmap_range_node_14166 range_min regmap_range_node 0 14166 NULL
153999 +enable_so_ocfs2_read_blocks_sync_fndecl_14169 ocfs2_read_blocks_sync fndecl 2 14169 NULL
154000 +enable_so_cmd_len_scsi_cmnd_14171 cmd_len scsi_cmnd 0 14171 NULL
154001 +enable_so_ath6kl_wmi_sync_point_fndecl_14172 ath6kl_wmi_sync_point fndecl 2 14172 NULL
154002 +enable_so_len_hermes_idstring_14173 len hermes_idstring 0 14173 NULL
154003 +enable_so_brcmf_usb_recv_ctl_fndecl_14174 brcmf_usb_recv_ctl fndecl 3 14174 NULL
154004 +enable_so___conn_send_command_fndecl_14180 __conn_send_command fndecl 6-4 14180 NULL
154005 +enable_so_curr_tx_buf_size_mwifiex_adapter_14186 curr_tx_buf_size mwifiex_adapter 0 14186 NULL
154006 +enable_so_cfpkt_add_trail_fndecl_14191 cfpkt_add_trail fndecl 3 14191 NULL
154007 +enable_so_rxrpc_request_key_fndecl_14192 rxrpc_request_key fndecl 3 14192 NULL
154008 +enable_so_uvc_fraction_to_interval_fndecl_14194 uvc_fraction_to_interval fndecl 0-2-1 14194 NULL
154009 +enable_so_offset_iscsi_datain_14195 offset iscsi_datain 0 14195 NULL
154010 +enable_so_middle_len_ceph_msg_header_14196 middle_len ceph_msg_header 0 14196 NULL
154011 +enable_so_len_hv_multipage_buffer_14208 len hv_multipage_buffer 0 14208 NULL nohasharray
154012 +enable_so_get_rx_fifo_content_fndecl_14208 get_rx_fifo_content fndecl 0 14208 &enable_so_len_hv_multipage_buffer_14208
154013 +enable_so_remote_qpn_qib_qp_14212 remote_qpn qib_qp 0 14212 NULL
154014 +enable_so_num_ports_mlx4_func_cap_14214 num_ports mlx4_func_cap 0 14214 NULL
154015 +enable_so_cmd_bounce_size_vmw_sw_context_14217 cmd_bounce_size vmw_sw_context 0 14217 NULL
154016 +enable_so_num_gsm_mux_14221 num gsm_mux 0 14221 NULL
154017 +enable_so_e1000_copybreak_fndecl_14223 e1000_copybreak fndecl 3 14223 NULL
154018 +enable_so_hpfs_remove_dtree_fndecl_14224 hpfs_remove_dtree fndecl 2 14224 NULL
154019 +enable_so_hw_token_fotg210_qtd_14233 hw_token fotg210_qtd 0 14233 NULL
154020 +enable_so_comedi_alloc_devpriv_fndecl_14235 comedi_alloc_devpriv fndecl 2 14235 NULL
154021 +enable_so_usb_submit_urb_fndecl_14237 usb_submit_urb fndecl 0 14237 NULL
154022 +enable_so_next_send_psn_mlx5_qp_context_14239 next_send_psn mlx5_qp_context 0 14239 NULL
154023 +enable_so_create_lease_size_smb_version_values_14240 create_lease_size smb_version_values 0 14240 NULL
154024 +enable_so_backup_load_addr_kimage_arch_14243 backup_load_addr kimage_arch 0 14243 NULL nohasharray
154025 +enable_so_ath6kl_wmi_test_cmd_fndecl_14243 ath6kl_wmi_test_cmd fndecl 3 14243 &enable_so_backup_load_addr_kimage_arch_14243 nohasharray
154026 +enable_so_virtqueue_add_inbuf_fndecl_14243 virtqueue_add_inbuf fndecl 3 14243 &enable_so_ath6kl_wmi_test_cmd_fndecl_14243
154027 +enable_so_write_buf_fndecl_14247 write_buf fndecl 3-0 14247 NULL nohasharray
154028 +enable_so_vid_batadv_tt_common_entry_14247 vid batadv_tt_common_entry 0 14247 &enable_so_write_buf_fndecl_14247
154029 +enable_so_cy8ctmg110_read_regs_fndecl_14259 cy8ctmg110_read_regs fndecl 3 14259 NULL nohasharray
154030 +enable_so_octeon_allocate_device_mem_fndecl_14259 octeon_allocate_device_mem fndecl 2 14259 &enable_so_cy8ctmg110_read_regs_fndecl_14259 nohasharray
154031 +enable_so___wmi_send_fndecl_14259 __wmi_send fndecl 4 14259 &enable_so_octeon_allocate_device_mem_fndecl_14259
154032 +enable_so_size_drm_scatter_gather_14264 size drm_scatter_gather 0 14264 NULL
154033 +enable_so_copy_from_buf_fndecl_14271 copy_from_buf fndecl 2-4 14271 NULL
154034 +enable_so_afs_cell_create_fndecl_14273 afs_cell_create fndecl 2 14273 NULL
154035 +enable_so_nilfs_sufile_block_get_segment_usage_fndecl_14278 nilfs_sufile_block_get_segment_usage fndecl 2 14278 NULL
154036 +enable_so_transfer_spi_master_14283 transfer spi_master 0 14283 NULL nohasharray
154037 +enable_so_rds_iw_ring_resize_fndecl_14283 rds_iw_ring_resize fndecl 2 14283 &enable_so_transfer_spi_master_14283
154038 +enable_so_pmtu_qib_qp_14287 pmtu qib_qp 0 14287 NULL nohasharray
154039 +enable_so_qpn_ds_mlx5_wqe_ctrl_seg_14287 qpn_ds mlx5_wqe_ctrl_seg 0 14287 &enable_so_pmtu_qib_qp_14287
154040 +enable_so_req_lim_delta_srp_aer_req_14289 req_lim_delta srp_aer_req 0 14289 NULL
154041 +enable_so_blk_insert_cloned_request_fndecl_14291 blk_insert_cloned_request fndecl 0 14291 NULL
154042 +enable_so_snd_pcm_oss_write2_fndecl_14295 snd_pcm_oss_write2 fndecl 3-0 14295 NULL
154043 +enable_so_yscroll_display_14301 yscroll display 0 14301 NULL
154044 +enable_so_size_ldt_struct_14303 size ldt_struct 0 14303 NULL
154045 +enable_so_outdiv_fll_div_14312 outdiv fll_div 0 14312 NULL
154046 +enable_so_scif_p2p_setsg_fndecl_14314 scif_p2p_setsg fndecl 2-3 14314 NULL
154047 +enable_so_iwl_dbgfs_csr_write_fndecl_14320 iwl_dbgfs_csr_write fndecl 3 14320 NULL
154048 +enable_so_nilfs_ilookup_fndecl_14324 nilfs_ilookup fndecl 3 14324 NULL
154049 +enable_so_gfn_kvm_mmu_page_14326 gfn kvm_mmu_page 0 14326 NULL
154050 +enable_so_pcbit_stat_fndecl_14327 pcbit_stat fndecl 2 14327 NULL
154051 +enable_so_ath6kl_wmi_ap_profile_commit_fndecl_14329 ath6kl_wmi_ap_profile_commit fndecl 2 14329 NULL
154052 +enable_so_data_offset_md_rdev_14330 data_offset md_rdev 0 14330 NULL
154053 +enable_so_pasid_limit_vardecl_kfd_pasid_c_14334 pasid_limit vardecl_kfd_pasid.c 0 14334 NULL
154054 +enable_so_fdt_getprop_namelen_fndecl_14339 fdt_getprop_namelen fndecl 2 14339 NULL nohasharray
154055 +enable_so_mask_myri10ge_rx_buf_14339 mask myri10ge_rx_buf 0 14339 &enable_so_fdt_getprop_namelen_fndecl_14339
154056 +enable_so_carl9170_cmd_callback_fndecl_14341 carl9170_cmd_callback fndecl 2 14341 NULL
154057 +enable_so_loop_start_patch_info_14350 loop_start patch_info 0 14350 NULL
154058 +enable_so_vnet_hdr_sz_macvtap_queue_14351 vnet_hdr_sz macvtap_queue 0 14351 NULL nohasharray
154059 +enable_so_ath6kl_regread_read_fndecl_14351 ath6kl_regread_read fndecl 3 14351 &enable_so_vnet_hdr_sz_macvtap_queue_14351
154060 +enable_so_do_sys_truncate_fndecl_14355 do_sys_truncate fndecl 2 14355 NULL
154061 +enable_so_current_committed_pstore_14356 current_committed pstore 0 14356 NULL
154062 +enable_so_start_section_nr_memory_block_14358 start_section_nr memory_block 0 14358 NULL
154063 +enable_so_blkno_attrlist_cursor_kern_14361 blkno attrlist_cursor_kern 0 14361 NULL
154064 +enable_so_num_vqs_virtio_blk_14363 num_vqs virtio_blk 0 14363 NULL
154065 +enable_so_size_set_mib_buffer_14366 size set_mib_buffer 0 14366 NULL
154066 +enable_so_do_jffs2_setxattr_fndecl_14373 do_jffs2_setxattr fndecl 5 14373 NULL nohasharray
154067 +enable_so_dm_bufio_get_fndecl_14373 dm_bufio_get fndecl 2 14373 &enable_so_do_jffs2_setxattr_fndecl_14373 nohasharray
154068 +enable_so_max_tokens_iw_ioctl_description_14373 max_tokens iw_ioctl_description 0 14373 &enable_so_dm_bufio_get_fndecl_14373
154069 +enable_so_nvme_trans_mode_page_create_fndecl_14375 nvme_trans_mode_page_create fndecl 7-4 14375 NULL
154070 +enable_so_length_scsiif_request_segment_14376 length scsiif_request_segment 0 14376 NULL
154071 +enable_so_start_extent_map_14377 start extent_map 0 14377 NULL nohasharray
154072 +enable_so_ahd_linux_user_tagdepth_fndecl_14377 ahd_linux_user_tagdepth fndecl 0 14377 &enable_so_start_extent_map_14377
154073 +enable_so_tclass_flow_ocrdma_grh_14379 tclass_flow ocrdma_grh 0 14379 NULL
154074 +enable_so_rcname_read_fndecl_14380 rcname_read fndecl 3 14380 NULL
154075 +enable_so_num_phys__sas_node_14384 num_phys _sas_node 0 14384 NULL
154076 +enable_so_word15_lpfc_mbx_read_config_14387 word15 lpfc_mbx_read_config 0 14387 NULL
154077 +enable_so_dma_in_iguanair_14391 dma_in iguanair 0 14391 NULL
154078 +enable_so_sisusbcon_scroll_area_fndecl_14392 sisusbcon_scroll_area fndecl 3-4 14392 NULL
154079 +enable_so_run_delalloc_nocow_fndecl_14395 run_delalloc_nocow fndecl 3-4 14395 NULL
154080 +enable_so_smp_snoop_fndecl_14400 smp_snoop fndecl 2 14400 NULL
154081 +enable_so_ssize_usbat_info_14405 ssize usbat_info 0 14405 NULL
154082 +enable_so_jffs2_add_physical_node_ref_fndecl_14406 jffs2_add_physical_node_ref fndecl 3-2 14406 NULL
154083 +enable_so_vmcb_iopm_nested_state_14411 vmcb_iopm nested_state 0 14411 NULL nohasharray
154084 +enable_so_dma_error_r592_device_14411 dma_error r592_device 0 14411 &enable_so_vmcb_iopm_nested_state_14411
154085 +enable_so_crtc_hblank_start_drm_display_mode_14412 crtc_hblank_start drm_display_mode 0 14412 NULL nohasharray
154086 +enable_so_min_snd_interval_14412 min snd_interval 0 14412 &enable_so_crtc_hblank_start_drm_display_mode_14412 nohasharray
154087 +enable_so_rl_space_gfs2_rgrp_list_14412 rl_space gfs2_rgrp_list 0 14412 &enable_so_min_snd_interval_14412
154088 +enable_so_num_channels_hsi_config_14414 num_channels hsi_config 0 14414 NULL
154089 +enable_so_bigdirlen_adfs_bigdirentry_14420 bigdirlen adfs_bigdirentry 0 14420 NULL
154090 +enable_so_key_flags_read_fndecl_14424 key_flags_read fndecl 3 14424 NULL
154091 +enable_so_snd_es1938_capture_copy_fndecl_14425 snd_es1938_capture_copy fndecl 5 14425 NULL
154092 +enable_so_xlog_recover_process_one_iunlink_fndecl_14426 xlog_recover_process_one_iunlink fndecl 3-0-2 14426 NULL
154093 +enable_so_up_cfg80211_dscp_exception_14433 up cfg80211_dscp_exception 0 14433 NULL
154094 +enable_so_offset_brcmf_vndr_dcmd_hdr_14440 offset brcmf_vndr_dcmd_hdr 0 14440 NULL
154095 +enable_so_fimc_adjust_mplane_format_fndecl_14442 fimc_adjust_mplane_format fndecl 3-2 14442 NULL
154096 +enable_so_wrt_pass_cntr_osst_tape_14444 wrt_pass_cntr osst_tape 0 14444 NULL
154097 +enable_so_flush_fndecl_14454 flush fndecl 2 14454 NULL
154098 +enable_so_size_dictionary_14455 size dictionary 0 14455 NULL
154099 +enable_so_residual_data_length_pmcraid_ioasa_14459 residual_data_length pmcraid_ioasa 0 14459 NULL
154100 +enable_so__regmap_multi_reg_write_fndecl_14460 _regmap_multi_reg_write fndecl 3 14460 NULL nohasharray
154101 +enable_so_ravb_hwtstamp_set_fndecl_14460 ravb_hwtstamp_set fndecl 0 14460 &enable_so__regmap_multi_reg_write_fndecl_14460
154102 +enable_so_skb_to_sgvec_nomark_fndecl_14461 skb_to_sgvec_nomark fndecl 4-3 14461 NULL
154103 +enable_so_data_inp_ep_vub300_mmc_host_14468 data_inp_ep vub300_mmc_host 0 14468 NULL nohasharray
154104 +enable_so_cfs_hash_create_fndecl_14468 cfs_hash_create fndecl 4-2-5 14468 &enable_so_data_inp_ep_vub300_mmc_host_14468
154105 +enable_so_sel_end_vardecl_selection_c_14469 sel_end vardecl_selection.c 0 14469 NULL
154106 +enable_so_ntfs_sync_mft_mirror_fndecl_14470 ntfs_sync_mft_mirror fndecl 2 14470 NULL
154107 +enable_so_lpfc_sli_probe_sriov_nr_virtfn_fndecl_14471 lpfc_sli_probe_sriov_nr_virtfn fndecl 2 14471 NULL
154108 +enable_so_num_chn_netvsc_device_14475 num_chn netvsc_device 0 14475 NULL nohasharray
154109 +enable_so_rdmarc_entry_sz_mlx4_dev_cap_14475 rdmarc_entry_sz mlx4_dev_cap 0 14475 &enable_so_num_chn_netvsc_device_14475
154110 +enable_so_groups_netlink_table_14476 groups netlink_table 0 14476 NULL
154111 +enable_so_t1_change_mtu_fndecl_14478 t1_change_mtu fndecl 2 14478 NULL
154112 +enable_so_udp_setsockopt_fndecl_14482 udp_setsockopt fndecl 5 14482 NULL
154113 +enable_so_rx_unit_if_sdio_card_14483 rx_unit if_sdio_card 0 14483 NULL nohasharray
154114 +enable_so_compressed_smiapp_csi_data_format_14483 compressed smiapp_csi_data_format 0 14483 &enable_so_rx_unit_if_sdio_card_14483 nohasharray
154115 +enable_so_qos_mlx4_vf_immed_vlan_work_14483 qos mlx4_vf_immed_vlan_work 0 14483 &enable_so_compressed_smiapp_csi_data_format_14483
154116 +enable_so_ntfs_perform_write_fndecl_14496 ntfs_perform_write fndecl 3-0 14496 NULL
154117 +enable_so_btrfs_lookup_bio_sums_dio_fndecl_14498 btrfs_lookup_bio_sums_dio fndecl 4 14498 NULL
154118 +enable_so_gsm_control_send_fndecl_14499 gsm_control_send fndecl 4 14499 NULL
154119 +enable_so_free_area_init_node_fndecl_14500 free_area_init_node fndecl 3 14500 NULL nohasharray
154120 +enable_so_bfad_iocmd_fcport_enable_fndecl_14500 bfad_iocmd_fcport_enable fndecl 0 14500 &enable_so_free_area_init_node_fndecl_14500
154121 +enable_so_selinux_inode_post_setxattr_fndecl_14502 selinux_inode_post_setxattr fndecl 4 14502 NULL
154122 +enable_so_num_vq_mic_device_desc_14503 num_vq mic_device_desc 0 14503 NULL
154123 +enable_so_bnad_q_num_adjust_fndecl_14512 bnad_q_num_adjust fndecl 2 14512 NULL
154124 +enable_so_end_code_mm_struct_14519 end_code mm_struct 0 14519 NULL
154125 +enable_so_volume_p_header100_14528 volume p_header100 0 14528 NULL
154126 +enable_so_memcg_update_all_list_lrus_fndecl_14532 memcg_update_all_list_lrus fndecl 1 14532 NULL
154127 +enable_so_viafb_second_offset_vardecl_viafbdev_c_14533 viafb_second_offset vardecl_viafbdev.c 0 14533 NULL
154128 +enable_so_size_ichxrom_window_14540 size ichxrom_window 0 14540 NULL
154129 +enable_so_len_extent_info_14542 len extent_info 0 14542 NULL
154130 +enable_so_ieee80211_get_hdrlen_from_skb_fndecl_14543 ieee80211_get_hdrlen_from_skb fndecl 0 14543 NULL
154131 +enable_so_ctrl_set_croph_fndecl_14545 ctrl_set_croph fndecl 3 14545 NULL nohasharray
154132 +enable_so_density_scsi_tape_14545 density scsi_tape 0 14545 &enable_so_ctrl_set_croph_fndecl_14545 nohasharray
154133 +enable_so_word17_lpfc_mbx_read_config_14545 word17 lpfc_mbx_read_config 0 14545 &enable_so_density_scsi_tape_14545
154134 +enable_so_snd_ftu_create_effect_switch_fndecl_14546 snd_ftu_create_effect_switch fndecl 3-2 14546 NULL
154135 +enable_so_lsave_cnt_ubifs_info_14547 lsave_cnt ubifs_info 0 14547 NULL
154136 +enable_so_len_btrfsic_block_data_ctx_14548 len btrfsic_block_data_ctx 0 14548 NULL nohasharray
154137 +enable_so_dump_fh_il_ops_14548 dump_fh il_ops 0 14548 &enable_so_len_btrfsic_block_data_ctx_14548
154138 +enable_so___alloc_memory_core_early_fndecl_14550 __alloc_memory_core_early fndecl 3-2-4-5 14550 NULL nohasharray
154139 +enable_so_bus_shift_altera_uart_platform_uart_14550 bus_shift altera_uart_platform_uart 0 14550 &enable_so___alloc_memory_core_early_fndecl_14550
154140 +enable_so_rn_snamelen_nfsd4_rename_14552 rn_snamelen nfsd4_rename 0 14552 NULL
154141 +enable_so_pri_wm_latency_write_fndecl_14556 pri_wm_latency_write fndecl 3 14556 NULL
154142 +enable_so_keyctl_update_key_fndecl_14558 keyctl_update_key fndecl 3 14558 NULL
154143 +enable_so_carm_handle_array_info_fndecl_14563 carm_handle_array_info fndecl 4 14563 NULL
154144 +enable_so_set_ep_max_packet_size_fndecl_14569 set_ep_max_packet_size fndecl 3 14569 NULL
154145 +enable_so_data_sector_size_mmc_ext_csd_14571 data_sector_size mmc_ext_csd 0 14571 NULL
154146 +enable_so_buffer_size_ncp_server_14574 buffer_size ncp_server 0 14574 NULL
154147 +enable_so_acpi_io_base_intel_pmc_ipc_dev_14580 acpi_io_base intel_pmc_ipc_dev 0 14580 NULL
154148 +enable_so_btrfs_wait_ordered_range_fndecl_14581 btrfs_wait_ordered_range fndecl 2-3 14581 NULL
154149 +enable_so_cur_pos_tegra_slink_data_14583 cur_pos tegra_slink_data 0 14583 NULL
154150 +enable_so_ext2_xattr_trusted_set_fndecl_14586 ext2_xattr_trusted_set fndecl 4 14586 NULL nohasharray
154151 +enable_so_be_length_pnfs_block_extent_14586 be_length pnfs_block_extent 0 14586 &enable_so_ext2_xattr_trusted_set_fndecl_14586
154152 +enable_so_fs_firstcg_efs_super_14587 fs_firstcg efs_super 0 14587 NULL
154153 +enable_so_channel_spacing_adf4350_platform_data_14594 channel_spacing adf4350_platform_data 0 14594 NULL
154154 +enable_so_link_pipe_fndecl_14595 link_pipe fndecl 3 14595 NULL
154155 +enable_so_static_start_pccard_mem_map_14601 static_start pccard_mem_map 0 14601 NULL
154156 +enable_so_nes_netdev_change_mtu_fndecl_14604 nes_netdev_change_mtu fndecl 2 14604 NULL
154157 +enable_so___get_user_pages_fndecl_14607 __get_user_pages fndecl 0-3 14607 NULL nohasharray
154158 +enable_so_befs_utf2nls_fndecl_14607 befs_utf2nls fndecl 3 14607 &enable_so___get_user_pages_fndecl_14607
154159 +enable_so_skb_split_fndecl_14609 skb_split fndecl 3 14609 NULL nohasharray
154160 +enable_so_mqd_size_aligned_kfd_device_info_14609 mqd_size_aligned kfd_device_info 0 14609 &enable_so_skb_split_fndecl_14609
154161 +enable_so_alb_send_lp_vid_fndecl_14613 alb_send_lp_vid fndecl 4-3 14613 NULL
154162 +enable_so_recv_bulk_pipe_us_data_14615 recv_bulk_pipe us_data 0 14615 NULL nohasharray
154163 +enable_so_max_sge_isert_conn_14615 max_sge isert_conn 0 14615 &enable_so_recv_bulk_pipe_us_data_14615
154164 +enable_so_ddp_ppod_write_idata_fndecl_14617 ddp_ppod_write_idata fndecl 5 14617 NULL
154165 +enable_so_node_scif_dev_14623 node scif_dev 0 14623 NULL
154166 +enable_so_vmw_execbuf_cmdbuf_fndecl_14639 vmw_execbuf_cmdbuf fndecl 4 14639 NULL
154167 +enable_so_length_comedi_lrange_14641 length comedi_lrange 0 14641 NULL
154168 +enable_so_SSIDsize_bss_info_14644 SSIDsize bss_info 0 14644 NULL
154169 +enable_so_dln2_gpio_get_pin_count_fndecl_14646 dln2_gpio_get_pin_count fndecl 0 14646 NULL
154170 +enable_so_endpoint_usbdevfs_urb_14649 endpoint usbdevfs_urb 0 14649 NULL
154171 +enable_so_write_dst_fndecl_14653 write_dst fndecl 3 14653 NULL nohasharray
154172 +enable_so_get_sb_block_fndecl_14653 get_sb_block fndecl 0 14653 &enable_so_write_dst_fndecl_14653
154173 +enable_so_wNdpOutAlignment_usb_cdc_ncm_ntb_parameters_14656 wNdpOutAlignment usb_cdc_ncm_ntb_parameters 0 14656 NULL
154174 +enable_so_ep_usbip_header_basic_14659 ep usbip_header_basic 0 14659 NULL
154175 +enable_so_interval_solo_enc_dev_14661 interval solo_enc_dev 0 14661 NULL
154176 +enable_so_ext2_try_to_allocate_fndecl_14672 ext2_try_to_allocate fndecl 0-4 14672 NULL
154177 +enable_so_sg_tablesize_usb_bus_14673 sg_tablesize usb_bus 0 14673 NULL
154178 +enable_so_di_anextents_xfs_dinode_14674 di_anextents xfs_dinode 0 14674 NULL
154179 +enable_so_aircable_prepare_write_buffer_fndecl_14678 aircable_prepare_write_buffer fndecl 3 14678 NULL
154180 +enable_so_file_size_squashfs_reg_inode_14679 file_size squashfs_reg_inode 0 14679 NULL
154181 +enable_so_x86_virt_bits_cpuinfo_x86_14680 x86_virt_bits cpuinfo_x86 0 14680 NULL
154182 +enable_so_mtu_vnic_devcmd_notify_14682 mtu vnic_devcmd_notify 0 14682 NULL
154183 +enable_so_lpfc_idiag_cmd_get_fndecl_14683 lpfc_idiag_cmd_get fndecl 2 14683 NULL
154184 +enable_so_rx_queue_entry_next_fndecl_14688 rx_queue_entry_next fndecl 0 14688 NULL nohasharray
154185 +enable_so_stream_sctp_datahdr_14688 stream sctp_datahdr 0 14688 &enable_so_rx_queue_entry_next_fndecl_14688
154186 +enable_so_ibmasm_new_command_fndecl_14689 ibmasm_new_command fndecl 2 14689 NULL
154187 +enable_so_max_srq_sge_ib_device_attr_14690 max_srq_sge ib_device_attr 0 14690 NULL
154188 +enable_so_rx_filter_mc_filter_read_fndecl_14691 rx_filter_mc_filter_read fndecl 3 14691 NULL
154189 +enable_so_smt_fill_path_fndecl_14692 smt_fill_path fndecl 0 14692 NULL
154190 +enable_so_ttm_tt_init_fndecl_14694 ttm_tt_init fndecl 3 14694 NULL
154191 +enable_so_num_sizes_vmw_surface_14695 num_sizes vmw_surface 0 14695 NULL
154192 +enable_so_sq_depth_p9_rdma_opts_14698 sq_depth p9_rdma_opts 0 14698 NULL nohasharray
154193 +enable_so_count_ctxt_eager_bufs_14698 count ctxt_eager_bufs 0 14698 &enable_so_sq_depth_p9_rdma_opts_14698
154194 +enable_so___alloc_bootmem_low_node_fndecl_14701 __alloc_bootmem_low_node fndecl 3-2-4 14701 NULL nohasharray
154195 +enable_so_sel_write_context_fndecl_14701 sel_write_context fndecl 3 14701 &enable_so___alloc_bootmem_low_node_fndecl_14701
154196 +enable_so_set_extent_new_fndecl_14709 set_extent_new fndecl 3-2 14709 NULL
154197 +enable_so_AdapterFibsSize_aac_init_14712 AdapterFibsSize aac_init 0 14712 NULL
154198 +enable_so_ftop_swregs_state_14719 ftop swregs_state 0 14719 NULL
154199 +enable_so_cxgbi_device_portmap_create_fndecl_14720 cxgbi_device_portmap_create fndecl 3 14720 NULL
154200 +enable_so_mmc_spi_data_do_fndecl_14728 mmc_spi_data_do fndecl 4 14728 NULL
154201 +enable_so_get_enc_dpb_count_s5p_mfc_hw_ops_14729 get_enc_dpb_count s5p_mfc_hw_ops 0 14729 NULL
154202 +enable_so_or51132_writebuf_fndecl_14730 or51132_writebuf fndecl 3 14730 NULL
154203 +enable_so_hdrlen_ppp_file_14734 hdrlen ppp_file 0 14734 NULL nohasharray
154204 +enable_so_ath9k_htc_rx_msg_fndecl_14734 ath9k_htc_rx_msg fndecl 3 14734 &enable_so_hdrlen_ppp_file_14734
154205 +enable_so_ext2_find_near_fndecl_14741 ext2_find_near fndecl 0 14741 NULL nohasharray
154206 +enable_so_channels_usb_mixer_elem_info_14741 channels usb_mixer_elem_info 0 14741 &enable_so_ext2_find_near_fndecl_14741
154207 +enable_so_mcs_unwrap_fir_fndecl_14742 mcs_unwrap_fir fndecl 3 14742 NULL
154208 +enable_so_cifs_read_from_socket_fndecl_14743 cifs_read_from_socket fndecl 0-3 14743 NULL
154209 +enable_so_mlx4_alloc_icm_coherent_fndecl_14745 mlx4_alloc_icm_coherent fndecl 3 14745 NULL
154210 +enable_so_ivtvfb_prep_frame_fndecl_14770 ivtvfb_prep_frame fndecl 5 14770 NULL
154211 +enable_so_fdt_nop_property_fndecl_14776 fdt_nop_property fndecl 2 14776 NULL
154212 +enable_so_size_snd_seq_pool_14782 size snd_seq_pool 0 14782 NULL
154213 +enable_so_dev_cmd_headroom_iwl_trans_14787 dev_cmd_headroom iwl_trans 0 14787 NULL nohasharray
154214 +enable_so_block_start_deflate_state_14787 block_start deflate_state 0 14787 &enable_so_dev_cmd_headroom_iwl_trans_14787
154215 +enable_so_td_fill_fndecl_14788 td_fill fndecl 3 14788 NULL
154216 +enable_so_brcmf_sdio_verifymemory_fndecl_14795 brcmf_sdio_verifymemory fndecl 4-2 14795 NULL nohasharray
154217 +enable_so_realloc_buffer_fndecl_14795 realloc_buffer fndecl 2 14795 &enable_so_brcmf_sdio_verifymemory_fndecl_14795
154218 +enable_so_mthca_map_user_db_fndecl_14796 mthca_map_user_db fndecl 5 14796 NULL
154219 +enable_so_event_rx_pool_read_fndecl_14803 event_rx_pool_read fndecl 3 14803 NULL
154220 +enable_so_sg_read_fndecl_14804 sg_read fndecl 3 14804 NULL
154221 +enable_so_sb_max_fwd_alloc_hpfs_sb_info_14807 sb_max_fwd_alloc hpfs_sb_info 0 14807 NULL
154222 +enable_so_nr_sectors_fat_floppy_defaults_14809 nr_sectors fat_floppy_defaults 0 14809 NULL
154223 +enable_so_type_sctp_paramhdr_14810 type sctp_paramhdr 0 14810 NULL
154224 +enable_so_read_fn_xusb_udc_14819 read_fn xusb_udc 0 14819 NULL
154225 +enable_so_fout_arizona_fll_14821 fout arizona_fll 0 14821 NULL
154226 +enable_so_wDescriptorLength_hid_descriptor_14825 wDescriptorLength hid_descriptor 0 14825 NULL
154227 +enable_so_tg3_change_mtu_fndecl_14826 tg3_change_mtu fndecl 2 14826 NULL
154228 +enable_so_mlxsw_sx_flood_init_fndecl_14827 mlxsw_sx_flood_init fndecl 0 14827 NULL
154229 +enable_so_parport_read_fndecl_14828 parport_read fndecl 0 14828 NULL
154230 +enable_so_residual_length_response_14830 residual_length response 0 14830 NULL
154231 +enable_so_sis5595_base_vardecl_i2c_sis5595_c_14832 sis5595_base vardecl_i2c-sis5595.c 0 14832 NULL
154232 +enable_so_shift_arg_pages_fndecl_14835 shift_arg_pages fndecl 2 14835 NULL nohasharray
154233 +enable_so_pwr_missing_bcns_read_fndecl_14835 pwr_missing_bcns_read fndecl 3 14835 &enable_so_shift_arg_pages_fndecl_14835
154234 +enable_so_map_len_ssfdcr_record_14843 map_len ssfdcr_record 0 14843 NULL
154235 +enable_so_h_s5p_jpeg_q_data_14846 h s5p_jpeg_q_data 0 14846 NULL
154236 +enable_so_vram_contig_size_vml_info_14851 vram_contig_size vml_info 0 14851 NULL
154237 +enable_so_sample_rate_max_lola_14860 sample_rate_max lola 0 14860 NULL
154238 +enable_so_channels_cea_sad_14862 channels cea_sad 0 14862 NULL
154239 +enable_so_iwl_pcie_alloc_fw_monitor_fndecl_14872 iwl_pcie_alloc_fw_monitor fndecl 2 14872 NULL
154240 +enable_so_threads_mask_netns_ipvs_14873 threads_mask netns_ipvs 0 14873 NULL
154241 +enable_so_inocache_hashsize_jffs2_sb_info_14875 inocache_hashsize jffs2_sb_info 0 14875 NULL
154242 +enable_so_submit_queues_vardecl_null_blk_c_14881 submit_queues vardecl_null_blk.c 0 14881 NULL
154243 +enable_so_pg_first_page_collect_14888 pg_first page_collect 0 14888 NULL
154244 +enable_so_invalidate_inode_pages2_range_fndecl_14896 invalidate_inode_pages2_range fndecl 0-3 14896 NULL
154245 +enable_so_ebcnt_vardecl_pagetest_c_14897 ebcnt vardecl_pagetest.c 0 14897 NULL
154246 +enable_so_crtc_vsync_end_drm_display_mode_14898 crtc_vsync_end drm_display_mode 0 14898 NULL
154247 +enable_so_extent_clear_unlock_delalloc_fndecl_14899 extent_clear_unlock_delalloc fndecl 2-3 14899 NULL nohasharray
154248 +enable_so_nkeys_tc_pedit_sel_14899 nkeys tc_pedit_sel 0 14899 &enable_so_extent_clear_unlock_delalloc_fndecl_14899
154249 +enable_so_len_move_extent_14902 len move_extent 0 14902 NULL
154250 +enable_so_ntty_write_fndecl_14903 ntty_write fndecl 3 14903 NULL
154251 +enable_so_vringh_init_user_fndecl_14905 vringh_init_user fndecl 3 14905 NULL
154252 +enable_so_max_height_vsp1_rwpf_14907 max_height vsp1_rwpf 0 14907 NULL nohasharray
154253 +enable_so_firmware_store_fndecl_14907 firmware_store fndecl 4 14907 &enable_so_max_height_vsp1_rwpf_14907
154254 +enable_so_entry_size_neigh_table_14911 entry_size neigh_table 0 14911 NULL
154255 +enable_so_in_pipe_usbtest_dev_14914 in_pipe usbtest_dev 0 14914 NULL
154256 +enable_so_add_device_fndecl_14915 add_device fndecl 4 14915 NULL
154257 +enable_so_fdt_path_offset_namelen_fndecl_14918 fdt_path_offset_namelen fndecl 0 14918 NULL
154258 +enable_so_num_mic_vqconfig_14919 num mic_vqconfig 0 14919 NULL
154259 +enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 tx_fifo_size sh_msiof_spi_priv 0 14926 NULL nohasharray
154260 +enable_so_tower_read_fndecl_14926 tower_read fndecl 3 14926 &enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 nohasharray
154261 +enable_so_enc_pools_add_pages_fndecl_14926 enc_pools_add_pages fndecl 1 14926 &enable_so_tower_read_fndecl_14926
154262 +enable_so_e1000_frag_len_fndecl_14930 e1000_frag_len fndecl 0 14930 NULL
154263 +enable_so_at25_bin_read_fndecl_14936 at25_bin_read fndecl 5-6 14936 NULL
154264 +enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938 get_allocated_memblock_reserved_regions_info fndecl 0 14938 NULL nohasharray
154265 +enable_so_pagemap_read_fndecl_14938 pagemap_read fndecl 3 14938 &enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938
154266 +enable_so_decrypted_datalen_encrypted_key_payload_14939 decrypted_datalen encrypted_key_payload 0 14939 NULL
154267 +enable_so_len_hif_scatter_item_14940 len hif_scatter_item 0 14940 NULL
154268 +enable_so_ib_alloc_device_fndecl_14944 ib_alloc_device fndecl 1 14944 NULL
154269 +enable_so_dump_smb_fndecl_14947 dump_smb fndecl 2 14947 NULL
154270 +enable_so_tailout_ignore_xpnet_message_14949 tailout_ignore xpnet_message 0 14949 NULL
154271 +enable_so_ulong_write_file_fndecl_14950 ulong_write_file fndecl 3 14950 NULL
154272 +enable_so_dvb_ca_en50221_io_ioctl_fndecl_14953 dvb_ca_en50221_io_ioctl fndecl 2 14953 NULL
154273 +enable_so_osst_max_sg_segs_vardecl_osst_c_14954 osst_max_sg_segs vardecl_osst.c 0 14954 NULL
154274 +enable_so_smiapp_write_no_quirk_fndecl_14958 smiapp_write_no_quirk fndecl 2 14958 NULL
154275 +enable_so_dvb_net_eth_type_trans_fndecl_14972 dvb_net_eth_type_trans fndecl 0 14972 NULL
154276 +enable_so_bop_lookup_nilfs_bmap_operations_14977 bop_lookup nilfs_bmap_operations 0 14977 NULL
154277 +enable_so_l2cap_build_conf_req_fndecl_14978 l2cap_build_conf_req fndecl 0 14978 NULL
154278 +enable_so_iwl_dbgfs_rf_reset_read_fndecl_14979 iwl_dbgfs_rf_reset_read fndecl 3 14979 NULL
154279 +enable_so_romfs_iget_fndecl_14980 romfs_iget fndecl 2 14980 NULL
154280 +enable_so_fuse_read_update_size_fndecl_14982 fuse_read_update_size fndecl 2 14982 NULL
154281 +enable_so_icv_len_ieee80211_key_conf_14983 icv_len ieee80211_key_conf 0 14983 NULL nohasharray
154282 +enable_so_canon_head_n_tty_data_14983 canon_head n_tty_data 0 14983 &enable_so_icv_len_ieee80211_key_conf_14983
154283 +enable_so_alloc_ep_req_fndecl_14986 alloc_ep_req fndecl 3-2 14986 NULL
154284 +enable_so_device_config_dma_device_14988 device_config dma_device 0 14988 NULL
154285 +enable_so_uhid_char_write_fndecl_14997 uhid_char_write fndecl 3 14997 NULL
154286 +enable_so_read_vmcore_fndecl_14998 read_vmcore fndecl 3 14998 NULL
154287 +enable_so_vfio_pci_set_msi_trigger_fndecl_15000 vfio_pci_set_msi_trigger fndecl 4-3 15000 NULL
154288 +enable_so_drbd_bm_words_fndecl_15003 drbd_bm_words fndecl 0 15003 NULL nohasharray
154289 +enable_so_length_sge_ieee1212_15003 length sge_ieee1212 0 15003 &enable_so_drbd_bm_words_fndecl_15003
154290 +enable_so_alloc_gtt_mem_fndecl_15005 alloc_gtt_mem fndecl 2 15005 NULL
154291 +enable_so_ib_init_ah_from_mcmember_fndecl_15006 ib_init_ah_from_mcmember fndecl 2 15006 NULL nohasharray
154292 +enable_so_discard_mtd_blktrans_ops_15006 discard mtd_blktrans_ops 0 15006 &enable_so_ib_init_ah_from_mcmember_fndecl_15006
154293 +enable_so___vhost_add_used_n_fndecl_15017 __vhost_add_used_n fndecl 3 15017 NULL
154294 +enable_so_all_tables_size_vardecl_osl_c_15020 all_tables_size vardecl_osl.c 0 15020 NULL nohasharray
154295 +enable_so_buffers_ivtv_stream_15020 buffers ivtv_stream 0 15020 &enable_so_all_tables_size_vardecl_osl_c_15020
154296 +enable_so_macvtap_do_read_fndecl_15021 macvtap_do_read fndecl 0 15021 NULL
154297 +enable_so_SyS_rt_sigpending_fndecl_15033 SyS_rt_sigpending fndecl 2 15033 NULL
154298 +enable_so_saddr_fsl_edma_hw_tcd_15034 saddr fsl_edma_hw_tcd 0 15034 NULL
154299 +enable_so_d_id_xfs_disk_dquot_15039 d_id xfs_disk_dquot 0 15039 NULL nohasharray
154300 +enable_so_num_rar_entries_ixgbe_mac_info_15039 num_rar_entries ixgbe_mac_info 0 15039 &enable_so_d_id_xfs_disk_dquot_15039
154301 +enable_so_rts51x_read_mem_fndecl_15042 rts51x_read_mem fndecl 4 15042 NULL nohasharray
154302 +enable_so_mpeglines_vardecl_cx23885_417_c_15042 mpeglines vardecl_cx23885-417.c 0 15042 &enable_so_rts51x_read_mem_fndecl_15042 nohasharray
154303 +enable_so_partitionStartingLocation_partitionDesc_15042 partitionStartingLocation partitionDesc 0 15042 &enable_so_mpeglines_vardecl_cx23885_417_c_15042
154304 +enable_so_dec_pending_fndecl_15045 dec_pending fndecl 2 15045 NULL nohasharray
154305 +enable_so_fou_recv_pull_fndecl_15045 fou_recv_pull fndecl 2 15045 &enable_so_dec_pending_fndecl_15045 nohasharray
154306 +enable_so_num_user_pages_fndecl_15045 num_user_pages fndecl 0 15045 &enable_so_fou_recv_pull_fndecl_15045
154307 +enable_so_xfs_trans_free_extent_fndecl_15048 xfs_trans_free_extent fndecl 3-4 15048 NULL
154308 +enable_so_max_io_len_dm_target_15053 max_io_len dm_target 0 15053 NULL
154309 +enable_so_handle_event_fsnotify_ops_15054 handle_event fsnotify_ops 0 15054 NULL nohasharray
154310 +enable_so_buf_len_htc_packet_15054 buf_len htc_packet 0 15054 &enable_so_handle_event_fsnotify_ops_15054
154311 +enable_so_sc_netid_len_nfs4_setclientid_15059 sc_netid_len nfs4_setclientid 0 15059 NULL
154312 +enable_so_height_cx2341x_handler_15060 height cx2341x_handler 0 15060 NULL
154313 +enable_so_dump_eeprom_eeprom_ops_15062 dump_eeprom eeprom_ops 0 15062 NULL
154314 +enable_so_oblocks_per_dblock_fndecl_15063 oblocks_per_dblock fndecl 0 15063 NULL
154315 +enable_so_num_widgets_snd_soc_dapm_widget_list_15064 num_widgets snd_soc_dapm_widget_list 0 15064 NULL
154316 +enable_so_vid_hdr_alsize_ubi_device_15065 vid_hdr_alsize ubi_device 0 15065 NULL
154317 +enable_so_ctrlbuf_dma_usbhid_device_15067 ctrlbuf_dma usbhid_device 0 15067 NULL nohasharray
154318 +enable_so_lpt_offs_bits_ubifs_info_15067 lpt_offs_bits ubifs_info 0 15067 &enable_so_ctrlbuf_dma_usbhid_device_15067
154319 +enable_so_write_len_ddb_flashio_15069 write_len ddb_flashio 0 15069 NULL
154320 +enable_so_saturation_sd_gl860_15076 saturation sd_gl860 0 15076 NULL
154321 +enable_so_xfs_rtcheck_range_fndecl_15077 xfs_rtcheck_range fndecl 3 15077 NULL nohasharray
154322 +enable_so_starting_offset_mpt2_diag_read_buffer_15077 starting_offset mpt2_diag_read_buffer 0 15077 &enable_so_xfs_rtcheck_range_fndecl_15077
154323 +enable_so_bm_words_bm_xfer_ctx_15081 bm_words bm_xfer_ctx 0 15081 NULL
154324 +enable_so_start_send_fndecl_15083 start_send fndecl 3 15083 NULL
154325 +enable_so_offs_ubifs_ref_node_15088 offs ubifs_ref_node 0 15088 NULL
154326 +enable_so_cirrusfb_get_memsize_fndecl_15094 cirrusfb_get_memsize fndecl 0 15094 NULL nohasharray
154327 +enable_so_ia32_arch_ptrace_fndecl_15094 ia32_arch_ptrace fndecl 3 15094 &enable_so_cirrusfb_get_memsize_fndecl_15094
154328 +enable_so_drm_mm_insert_node_in_range_generic_fndecl_15103 drm_mm_insert_node_in_range_generic fndecl 3 15103 NULL
154329 +enable_so_usbat_read_blocks_fndecl_15109 usbat_read_blocks fndecl 3-4 15109 NULL
154330 +enable_so_split_nodes_size_interleave_fndecl_15116 split_nodes_size_interleave fndecl 3-4-5 15116 NULL
154331 +enable_so_ubifs_tnc_replace_fndecl_15122 ubifs_tnc_replace fndecl 7-6 15122 NULL
154332 +enable_so_read_sb_page_fndecl_15124 read_sb_page fndecl 5-4-2 15124 NULL
154333 +enable_so_macvlan_change_mtu_fndecl_15125 macvlan_change_mtu fndecl 2 15125 NULL nohasharray
154334 +enable_so_ebcnt_vardecl_stresstest_c_15125 ebcnt vardecl_stresstest.c 0 15125 &enable_so_macvlan_change_mtu_fndecl_15125
154335 +enable_so_first_offset_afs_call_15128 first_offset afs_call 0 15128 NULL
154336 +enable_so_bytes_rds_iovec_15133 bytes rds_iovec 0 15133 NULL
154337 +enable_so_ath6kl_roam_table_read_fndecl_15141 ath6kl_roam_table_read fndecl 3 15141 NULL
154338 +enable_so_copy_oldmem_page_fndecl_15143 copy_oldmem_page fndecl 1-3 15143 NULL
154339 +enable_so_mid_get_vbt_data_r1_fndecl_15145 mid_get_vbt_data_r1 fndecl 2 15145 NULL
154340 +enable_so_elem_size_snd_array_15155 elem_size snd_array 0 15155 NULL nohasharray
154341 +enable_so_chaoskey_read_fndecl_15155 chaoskey_read fndecl 3 15155 &enable_so_elem_size_snd_array_15155
154342 +enable_so___fswab64_fndecl_15160 __fswab64 fndecl 0 15160 NULL
154343 +enable_so_i_disk_sec_hpfs_inode_info_15165 i_disk_sec hpfs_inode_info 0 15165 NULL
154344 +enable_so_ovl_dir_llseek_fndecl_15169 ovl_dir_llseek fndecl 2 15169 NULL
154345 +enable_so_frontswap_curr_pages_fndecl_15172 frontswap_curr_pages fndecl 0 15172 NULL nohasharray
154346 +enable_so_xfs_idata_realloc_fndecl_15172 xfs_idata_realloc fndecl 2 15172 &enable_so_frontswap_curr_pages_fndecl_15172
154347 +enable_so_si_namelen_nfsd4_secinfo_15174 si_namelen nfsd4_secinfo 0 15174 NULL
154348 +enable_so_perform_sglist_fndecl_15184 perform_sglist fndecl 3-6 15184 NULL
154349 +enable_so_nr_pages_videobuf_dmabuf_15190 nr_pages videobuf_dmabuf 0 15190 NULL nohasharray
154350 +enable_so_walk_hugetlb_range_fndecl_15190 walk_hugetlb_range fndecl 0 15190 &enable_so_nr_pages_videobuf_dmabuf_15190
154351 +enable_so_sg_len_mmc_test_area_15192 sg_len mmc_test_area 0 15192 NULL
154352 +enable_so_ucStateEntrySize__ATOM_PPLIB_POWERPLAYTABLE_15196 ucStateEntrySize _ATOM_PPLIB_POWERPLAYTABLE 0 15196 NULL
154353 +enable_so_p9_client_write_fndecl_15200 p9_client_write fndecl 0 15200 NULL
154354 +enable_so_mwifiex_regrdwr_write_fndecl_15202 mwifiex_regrdwr_write fndecl 3 15202 NULL
154355 +enable_so_size_nforce2_smbus_15203 size nforce2_smbus 0 15203 NULL
154356 +enable_so_top_qxl_urect_15205 top qxl_urect 0 15205 NULL
154357 +enable_so_simple_setattr_fndecl_15209 simple_setattr fndecl 0 15209 NULL nohasharray
154358 +enable_so_nlm_end_grace_read_fndecl_15209 nlm_end_grace_read fndecl 3 15209 &enable_so_simple_setattr_fndecl_15209
154359 +enable_so_gso_max_size_net_device_15213 gso_max_size net_device 0 15213 NULL
154360 +enable_so_sge_control_sge_params_15216 sge_control sge_params 0 15216 NULL
154361 +enable_so_vals_size_ceph_inode_xattrs_info_15217 vals_size ceph_inode_xattrs_info 0 15217 NULL
154362 +enable_so_len_policydb_15230 len policydb 0 15230 NULL
154363 +enable_so_sisusb_bulkout_msg_fndecl_15233 sisusb_bulkout_msg fndecl 5-3 15233 NULL nohasharray
154364 +enable_so_hfsplus_ext_lastblock_fndecl_15233 hfsplus_ext_lastblock fndecl 0 15233 &enable_so_sisusb_bulkout_msg_fndecl_15233
154365 +enable_so_genwqe_ffdc_buff_size_fndecl_15236 genwqe_ffdc_buff_size fndecl 0 15236 NULL
154366 +enable_so_surface_width_drm_fb_helper_surface_size_15237 surface_width drm_fb_helper_surface_size 0 15237 NULL
154367 +enable_so_len_sock_fprog_15239 len sock_fprog 0 15239 NULL
154368 +enable_so_do_setxattr_fndecl_15243 do_setxattr fndecl 5 15243 NULL
154369 +enable_so_protocol_hdlc_header_15245 protocol hdlc_header 0 15245 NULL
154370 +enable_so_result_wa_seg_15248 result wa_seg 0 15248 NULL nohasharray
154371 +enable_so_ide_cdrom_register_fndecl_15248 ide_cdrom_register fndecl 2 15248 &enable_so_result_wa_seg_15248
154372 +enable_so_sb_rextsize_xfs_sb_15250 sb_rextsize xfs_sb 0 15250 NULL
154373 +enable_so_ecryptfs_read_lower_page_segment_fndecl_15255 ecryptfs_read_lower_page_segment fndecl 4 15255 NULL
154374 +enable_so_rmsg_size_hv_netvsc_packet_15256 rmsg_size hv_netvsc_packet 0 15256 NULL
154375 +enable_so_current_credit_fndecl_15260 current_credit fndecl 0 15260 NULL nohasharray
154376 +enable_so_dm_block_location_fndecl_15260 dm_block_location fndecl 0 15260 &enable_so_current_credit_fndecl_15260 nohasharray
154377 +enable_so_msb_mark_page_bad_fndecl_15260 msb_mark_page_bad fndecl 2 15260 &enable_so_dm_block_location_fndecl_15260
154378 +enable_so_num_tx_queues_net_device_15263 num_tx_queues net_device 0 15263 NULL
154379 +enable_so_writequeue_entry_complete_fndecl_15264 writequeue_entry_complete fndecl 2 15264 NULL
154380 +enable_so_qce_import_common_fndecl_15267 qce_import_common fndecl 2 15267 NULL
154381 +enable_so_la_peer_max_bio_size_meta_data_on_disk_15270 la_peer_max_bio_size meta_data_on_disk 0 15270 NULL
154382 +enable_so_bstr_printf_fndecl_15271 bstr_printf fndecl 0 15271 NULL
154383 +enable_so_recursive_scan_fndecl_15275 recursive_scan fndecl 5 15275 NULL
154384 +enable_so_nsect_ide_taskfile_15283 nsect ide_taskfile 0 15283 NULL
154385 +enable_so_srp_max_req_size_vardecl_ib_srpt_c_15291 srp_max_req_size vardecl_ib_srpt.c 0 15291 NULL nohasharray
154386 +enable_so_wacom_set_device_mode_fndecl_15291 wacom_set_device_mode fndecl 3 15291 &enable_so_srp_max_req_size_vardecl_ib_srpt_c_15291
154387 +enable_so_cx24120_writeregs_fndecl_15295 cx24120_writeregs fndecl 4 15295 NULL
154388 +enable_so_len_logfs_object_header_15296 len logfs_object_header 0 15296 NULL
154389 +enable_so_pwr_wake_on_host_read_fndecl_15298 pwr_wake_on_host_read fndecl 3 15298 NULL
154390 +enable_so_residual_virtio_scsi_inhdr_15299 residual virtio_scsi_inhdr 0 15299 NULL
154391 +enable_so_scd_size_idt77252_dev_15300 scd_size idt77252_dev 0 15300 NULL nohasharray
154392 +enable_so_tidmapcnt_hfi1_ctxtdata_15300 tidmapcnt hfi1_ctxtdata 0 15300 &enable_so_scd_size_idt77252_dev_15300
154393 +enable_so___sg_alloc_table_fndecl_15308 __sg_alloc_table fndecl 0-2-3 15308 NULL
154394 +enable_so_snic_hex_dump_fndecl_15315 snic_hex_dump fndecl 3 15315 NULL
154395 +enable_so_residual_count_iscsi_data_rsp_15317 residual_count iscsi_data_rsp 0 15317 NULL
154396 +enable_so_snd_pcm_plug_client_channels_buf_fndecl_15318 snd_pcm_plug_client_channels_buf fndecl 0-3 15318 NULL
154397 +enable_so_hpfs_dir_lseek_fndecl_15324 hpfs_dir_lseek fndecl 2 15324 NULL nohasharray
154398 +enable_so_h_vlan_proto_vlan_ethhdr_15324 h_vlan_proto vlan_ethhdr 0 15324 &enable_so_hpfs_dir_lseek_fndecl_15324
154399 +enable_so_ath10k_dbg_sta_write_addba_resp_fndecl_15326 ath10k_dbg_sta_write_addba_resp fndecl 3 15326 NULL
154400 +enable_so_ehci_urb_dequeue_fndecl_15333 ehci_urb_dequeue fndecl 3 15333 NULL
154401 +enable_so_dup_to_netobj_fndecl_15336 dup_to_netobj fndecl 3 15336 NULL
154402 +enable_so_cifs_readdata_alloc_fndecl_15339 cifs_readdata_alloc fndecl 1 15339 NULL
154403 +enable_so_min_io_size_ubifs_info_15340 min_io_size ubifs_info 0 15340 NULL
154404 +enable_so_iser_alloc_fmr_pool_fndecl_15341 iser_alloc_fmr_pool fndecl 3 15341 NULL
154405 +enable_so_sc18is602_txrx_fndecl_15346 sc18is602_txrx fndecl 0 15346 NULL
154406 +enable_so_check_can_nocow_fndecl_15347 check_can_nocow fndecl 2 15347 NULL
154407 +enable_so_efx_rx_mk_skb_fndecl_15349 efx_rx_mk_skb fndecl 5-3 15349 NULL
154408 +enable_so_s_cluster_bits_ext4_sb_info_15353 s_cluster_bits ext4_sb_info 0 15353 NULL
154409 +enable_so_nfs_file_direct_read_fndecl_15359 nfs_file_direct_read fndecl 3 15359 NULL
154410 +enable_so_seq_len_key_params_15366 seq_len key_params 0 15366 NULL
154411 +enable_so_num_total_plane_drm_mode_config_15377 num_total_plane drm_mode_config 0 15377 NULL
154412 +enable_so_size_affs_tail_15386 size affs_tail 0 15386 NULL
154413 +enable_so_size_mtd_info_15393 size mtd_info 0 15393 NULL
154414 +enable_so_id_mic_device_15395 id mic_device 0 15395 NULL
154415 +enable_so_rds_ib_ring_init_fndecl_15404 rds_ib_ring_init fndecl 2 15404 NULL
154416 +enable_so_udf_bread_fndecl_15411 udf_bread fndecl 2 15411 NULL
154417 +enable_so_pnp_alloc_fndecl_15414 pnp_alloc fndecl 1 15414 NULL
154418 +enable_so_setup_buffering_fndecl_15419 setup_buffering fndecl 3 15419 NULL
154419 +enable_so_queues_read_fndecl_15422 queues_read fndecl 3 15422 NULL
154420 +enable_so_logical_reada_extent_15426 logical reada_extent 0 15426 NULL
154421 +enable_so_pwc_set_video_mode_fndecl_15427 pwc_set_video_mode fndecl 5 15427 NULL
154422 +enable_so_size_cmd_header_15429 size cmd_header 0 15429 NULL
154423 +enable_so_ddr_base_intel_sst_drv_15431 ddr_base intel_sst_drv 0 15431 NULL
154424 +enable_so_ati_remote_sendpacket_fndecl_15435 ati_remote_sendpacket fndecl 2 15435 NULL
154425 +enable_so_max_vpi_lpfc_hba_15442 max_vpi lpfc_hba 0 15442 NULL
154426 +enable_so_eeprom_93xx46_bin_read_fndecl_15447 eeprom_93xx46_bin_read fndecl 6 15447 NULL
154427 +enable_so_callout_len_request_key_auth_15448 callout_len request_key_auth 0 15448 NULL nohasharray
154428 +enable_so_smk_write_net6addr_fndecl_15448 smk_write_net6addr fndecl 3 15448 &enable_so_callout_len_request_key_auth_15448
154429 +enable_so_code_page_dir_hpfs_spare_block_15449 code_page_dir hpfs_spare_block 0 15449 NULL
154430 +enable_so_codec_list_read_file_fndecl_15453 codec_list_read_file fndecl 3 15453 NULL
154431 +enable_so_wdm_create_fndecl_15456 wdm_create fndecl 3 15456 NULL
154432 +enable_so_rtsx_pci_write_ppbuf_fndecl_15464 rtsx_pci_write_ppbuf fndecl 0 15464 NULL
154433 +enable_so_octeon_setup_iq_fndecl_15466 octeon_setup_iq fndecl 3 15466 NULL
154434 +enable_so_regmap_spi_write_fndecl_15476 regmap_spi_write fndecl 3 15476 NULL
154435 +enable_so_mmio_len_fb_fix_screeninfo_15477 mmio_len fb_fix_screeninfo 0 15477 NULL
154436 +enable_so_priv_size_iscsit_transport_15489 priv_size iscsit_transport 0 15489 NULL
154437 +enable_so_nf_nat_sdp_port_fndecl_15490 nf_nat_sdp_port fndecl 2-7 15490 NULL
154438 +enable_so_old_oblock_policy_result_15494 old_oblock policy_result 0 15494 NULL
154439 +enable_so_ath10k_fw_crash_dump_read_fndecl_15496 ath10k_fw_crash_dump_read fndecl 3 15496 NULL
154440 +enable_so_cached_start_hfs_inode_info_15502 cached_start hfs_inode_info 0 15502 NULL
154441 +enable_so_sys_rt_sigpending_fndecl_15506 sys_rt_sigpending fndecl 2 15506 NULL
154442 +enable_so_size_videobuf_buffer_15508 size videobuf_buffer 0 15508 NULL
154443 +enable_so_gfs2_fallocate_fndecl_15515 gfs2_fallocate fndecl 4-3 15515 NULL
154444 +enable_so_max_pkt_size_cx231xx_video_mode_15531 max_pkt_size cx231xx_video_mode 0 15531 NULL
154445 +enable_so_pci_siig_setup_fndecl_15532 pci_siig_setup fndecl 4 15532 NULL
154446 +enable_so_wl1273_fm_get_tx_ctune_fndecl_15534 wl1273_fm_get_tx_ctune fndecl 0 15534 NULL
154447 +enable_so_space_bits_ubifs_info_15538 space_bits ubifs_info 0 15538 NULL
154448 +enable_so_hi_priority_depth_MPT3SAS_ADAPTER_15543 hi_priority_depth MPT3SAS_ADAPTER 0 15543 NULL
154449 +enable_so_genwqe_user_vmap_fndecl_15544 genwqe_user_vmap fndecl 4 15544 NULL nohasharray
154450 +enable_so_key_conf_hw_key_idx_read_fndecl_15544 key_conf_hw_key_idx_read fndecl 3 15544 &enable_so_genwqe_user_vmap_fndecl_15544
154451 +enable_so_index_btframe_15545 index btframe 0 15545 NULL
154452 +enable_so_data_length_mts_transfer_context_15546 data_length mts_transfer_context 0 15546 NULL
154453 +enable_so_map_size_drm_amdgpu_gem_va_15550 map_size drm_amdgpu_gem_va 0 15550 NULL nohasharray
154454 +enable_so_il_dbgfs_channels_read_fndecl_15550 il_dbgfs_channels_read fndecl 3 15550 &enable_so_map_size_drm_amdgpu_gem_va_15550
154455 +enable_so_ep_in_kingsun_cb_15553 ep_in kingsun_cb 0 15553 NULL
154456 +enable_so_diff_usnic_uiom_reg_15554 diff usnic_uiom_reg 0 15554 NULL
154457 +enable_so_video_buffer_size_vivid_dev_15556 video_buffer_size vivid_dev 0 15556 NULL
154458 +enable_so_node_start_pfn_pglist_data_15561 node_start_pfn pglist_data 0 15561 NULL
154459 +enable_so_num_sge_ib_send_wr_15565 num_sge ib_send_wr 0 15565 NULL
154460 +enable_so_swiotlb_late_init_with_tbl_fndecl_15566 swiotlb_late_init_with_tbl fndecl 2 15566 NULL nohasharray
154461 +enable_so_push_frame_fndecl_15566 push_frame fndecl 2 15566 &enable_so_swiotlb_late_init_with_tbl_fndecl_15566
154462 +enable_so_s_map2blk_adfs_sb_info_15569 s_map2blk adfs_sb_info 0 15569 NULL
154463 +enable_so_m_min_aptina_pll_limits_15576 m_min aptina_pll_limits 0 15576 NULL
154464 +enable_so_acpi20_efi_15582 acpi20 efi 0 15582 NULL
154465 +enable_so_NumTransferUnits_erase_unit_header_t_15585 NumTransferUnits erase_unit_header_t 0 15585 NULL
154466 +enable_so___split_and_process_non_flush_fndecl_15587 __split_and_process_non_flush fndecl 0 15587 NULL nohasharray
154467 +enable_so_SYSC_listxattr_fndecl_15587 SYSC_listxattr fndecl 3 15587 &enable_so___split_and_process_non_flush_fndecl_15587
154468 +enable_so_tx_ring_count_ixgbe_adapter_15595 tx_ring_count ixgbe_adapter 0 15595 NULL
154469 +enable_so_memsz_fifo_15603 memsz fifo 0 15603 NULL
154470 +enable_so_len_nfs3_createargs_15604 len nfs3_createargs 0 15604 NULL
154471 +enable_so_gs_buf_alloc_fndecl_15608 gs_buf_alloc fndecl 2 15608 NULL
154472 +enable_so_do_add_page_to_bio_fndecl_15612 do_add_page_to_bio fndecl 10-4-2 15612 NULL
154473 +enable_so_udf_compute_nr_groups_fndecl_15617 udf_compute_nr_groups fndecl 0 15617 NULL
154474 +enable_so_num_edbs_asd_seq_data_15621 num_edbs asd_seq_data 0 15621 NULL
154475 +enable_so_ch_r_head_jsm_channel_15625 ch_r_head jsm_channel 0 15625 NULL
154476 +enable_so_drm_addmap_core_fndecl_15627 drm_addmap_core fndecl 3-2 15627 NULL nohasharray
154477 +enable_so_nents_sg_table_15627 nents sg_table 0 15627 &enable_so_drm_addmap_core_fndecl_15627 nohasharray
154478 +enable_so_count_preds_fndecl_15627 count_preds fndecl 0 15627 &enable_so_nents_sg_table_15627
154479 +enable_so_i915_error_state_buf_init_fndecl_15630 i915_error_state_buf_init fndecl 4-3 15630 NULL
154480 +enable_so_mcs_wrap_mir_skb_fndecl_15633 mcs_wrap_mir_skb fndecl 0 15633 NULL
154481 +enable_so_netlbl_domhsh_init_fndecl_15635 netlbl_domhsh_init fndecl 1 15635 NULL
154482 +enable_so_end_bttv_vbi_fmt_15637 end bttv_vbi_fmt 0 15637 NULL nohasharray
154483 +enable_so_SyS_pselect6_fndecl_15637 SyS_pselect6 fndecl 1 15637 &enable_so_end_bttv_vbi_fmt_15637
154484 +enable_so_dma_in_redrat3_dev_15639 dma_in redrat3_dev 0 15639 NULL
154485 +enable_so_akid_raw_issuer_size_x509_parse_context_15651 akid_raw_issuer_size x509_parse_context 0 15651 NULL
154486 +enable_so_mapped_vram_radeonfb_info_15654 mapped_vram radeonfb_info 0 15654 NULL nohasharray
154487 +enable_so_read_bytes_from_xdr_buf_fndecl_15654 read_bytes_from_xdr_buf fndecl 4-2 15654 &enable_so_mapped_vram_radeonfb_info_15654 nohasharray
154488 +enable_so_extra_msdu_prefix_len_lib80211_crypto_ops_15654 extra_msdu_prefix_len lib80211_crypto_ops 0 15654 &enable_so_read_bytes_from_xdr_buf_fndecl_15654
154489 +enable_so_kvm_pv_enable_async_pf_fndecl_15662 kvm_pv_enable_async_pf fndecl 2 15662 NULL
154490 +enable_so_sb_rblocks_xfs_sb_15668 sb_rblocks xfs_sb 0 15668 NULL
154491 +enable_so_SyS_poll_fndecl_15679 SyS_poll fndecl 2 15679 NULL
154492 +enable_so_wsize_p9_conn_15686 wsize p9_conn 0 15686 NULL
154493 +enable_so_total_bnx2x_sriov_15692 total bnx2x_sriov 0 15692 NULL
154494 +enable_so_num_bytes_sigmadsp_control_15699 num_bytes sigmadsp_control 0 15699 NULL
154495 +enable_so_iov_len_kvec_15702 iov_len kvec 0 15702 NULL nohasharray
154496 +enable_so_context_alloc_fndecl_15702 context_alloc fndecl 3 15702 &enable_so_iov_len_kvec_15702
154497 +enable_so_blk_rq_err_bytes_fndecl_15705 blk_rq_err_bytes fndecl 0 15705 NULL
154498 +enable_so_numa_scan_offset_mm_struct_15710 numa_scan_offset mm_struct 0 15710 NULL nohasharray
154499 +enable_so__iwl_dbgfs_tof_responder_params_write_fndecl_15710 _iwl_dbgfs_tof_responder_params_write fndecl 3 15710 &enable_so_numa_scan_offset_mm_struct_15710
154500 +enable_so_btrfs_chunk_sub_stripes_fndecl_15711 btrfs_chunk_sub_stripes fndecl 0 15711 NULL
154501 +enable_so_ib_umem_page_count_fndecl_15714 ib_umem_page_count fndecl 0 15714 NULL
154502 +enable_so_name_len_nilfs_dir_entry_15715 name_len nilfs_dir_entry 0 15715 NULL
154503 +enable_so_user_size_drm_i915_gem_userptr_15716 user_size drm_i915_gem_userptr 0 15716 NULL
154504 +enable_so_di_xblk_qnx4_inode_entry_15719 di_xblk qnx4_inode_entry 0 15719 NULL
154505 +enable_so_new_tape_buffer_fndecl_15721 new_tape_buffer fndecl 3 15721 NULL
154506 +enable_so_datafab_write_data_fndecl_15723 datafab_write_data fndecl 4 15723 NULL
154507 +enable_so_fdt_set_name_fndecl_15724 fdt_set_name fndecl 2 15724 NULL
154508 +enable_so_n_window_iwl_queue_15731 n_window iwl_queue 0 15731 NULL
154509 +enable_so_setup_boot_parameters_fndecl_15734 setup_boot_parameters fndecl 6-3-4-5 15734 NULL
154510 +enable_so_lcd_height_atyfb_par_15743 lcd_height atyfb_par 0 15743 NULL
154511 +enable_so_num_locks_dlm_migratable_lockres_15745 num_locks dlm_migratable_lockres 0 15745 NULL
154512 +enable_so_hotfix_map_hpfs_spare_block_15748 hotfix_map hpfs_spare_block 0 15748 NULL
154513 +enable_so_remote_miu_nfc_llcp_local_15749 remote_miu nfc_llcp_local 0 15749 NULL
154514 +enable_so_st_int_ioctl_fndecl_15750 st_int_ioctl fndecl 3 15750 NULL nohasharray
154515 +enable_so_base_nr_i2c_mux_reg_platform_data_15750 base_nr i2c_mux_reg_platform_data 0 15750 &enable_so_st_int_ioctl_fndecl_15750
154516 +enable_so_ip_tunnel_change_mtu_fndecl_15752 ip_tunnel_change_mtu fndecl 2 15752 NULL
154517 +enable_so_transfer_done_snd_usb_substream_15753 transfer_done snd_usb_substream 0 15753 NULL
154518 +enable_so_xres__sisbios_mode_15754 xres _sisbios_mode 0 15754 NULL
154519 +enable_so_bfad_iocmd_ioc_reset_stats_fndecl_15763 bfad_iocmd_ioc_reset_stats fndecl 0 15763 NULL
154520 +enable_so_niu_change_mtu_fndecl_15765 niu_change_mtu fndecl 2 15765 NULL
154521 +enable_so_header_read_sd_15767 header_read sd 0 15767 NULL
154522 +enable_so_mc13xxx_spi_write_fndecl_15768 mc13xxx_spi_write fndecl 3 15768 NULL
154523 +enable_so_irttp_connect_confirm_fndecl_15769 irttp_connect_confirm fndecl 4-5 15769 NULL
154524 +enable_so_tx_put__synclinkmp_info_15770 tx_put _synclinkmp_info 0 15770 NULL
154525 +enable_so_btrfs_create_qgroup_fndecl_15772 btrfs_create_qgroup fndecl 3 15772 NULL
154526 +enable_so_size_order_mesh_table_15774 size_order mesh_table 0 15774 NULL
154527 +enable_so_kgdb_hex2mem_fndecl_15776 kgdb_hex2mem fndecl 3 15776 NULL
154528 +enable_so_rdma_read_chunk_lcl_fndecl_15778 rdma_read_chunk_lcl fndecl 7 15778 NULL nohasharray
154529 +enable_so_ntfs_copy_from_user_iter_fndecl_15778 ntfs_copy_from_user_iter fndecl 5-3 15778 &enable_so_rdma_read_chunk_lcl_fndecl_15778
154530 +enable_so_xfs_bmap_split_extent_at_fndecl_15780 xfs_bmap_split_extent_at fndecl 3 15780 NULL
154531 +enable_so_PacketLength_wa_xfer_packet_status_len_hwaiso_15781 PacketLength wa_xfer_packet_status_len_hwaiso 0 15781 NULL
154532 +enable_so_vde_ast_vbios_enhtable_15784 vde ast_vbios_enhtable 0 15784 NULL
154533 +enable_so_maxports_dgnc_board_15787 maxports dgnc_board 0 15787 NULL
154534 +enable_so_count_nfs4_readdir_arg_15790 count nfs4_readdir_arg 0 15790 NULL
154535 +enable_so_simple_attr_read_fndecl_15793 simple_attr_read fndecl 3 15793 NULL
154536 +enable_so_region_size_dm_region_hash_15798 region_size dm_region_hash 0 15798 NULL
154537 +enable_so_fi_ndatablk_nilfs_finfo_15799 fi_ndatablk nilfs_finfo 0 15799 NULL
154538 +enable_so_ath_rxbuf_alloc_fndecl_15802 ath_rxbuf_alloc fndecl 2 15802 NULL
154539 +enable_so_btintel_secure_send_fndecl_15805 btintel_secure_send fndecl 3 15805 NULL
154540 +enable_so_datablob_hmac_verify_fndecl_15809 datablob_hmac_verify fndecl 4 15809 NULL
154541 +enable_so_cache_read_fndecl_15813 cache_read fndecl 3 15813 NULL
154542 +enable_so_length_idma64_desc_15822 length idma64_desc 0 15822 NULL
154543 +enable_so_n_match_sets_cfg80211_sched_scan_request_15823 n_match_sets cfg80211_sched_scan_request 0 15823 NULL nohasharray
154544 +enable_so_user_regset_copyout_fndecl_15823 user_regset_copyout fndecl 7 15823 &enable_so_n_match_sets_cfg80211_sched_scan_request_15823
154545 +enable_so_rsssize_pkd_fw_vi_cmd_15824 rsssize_pkd fw_vi_cmd 0 15824 NULL
154546 +enable_so_word13_lpfc_mbx_read_config_15832 word13 lpfc_mbx_read_config 0 15832 NULL
154547 +enable_so_ocfs2_read_blocks_fndecl_15834 ocfs2_read_blocks fndecl 0-2 15834 NULL
154548 +enable_so_skb_make_writable_fndecl_15836 skb_make_writable fndecl 2 15836 NULL
154549 +enable_so_rx_num_pg_ch_pm_15838 rx_num_pg ch_pm 0 15838 NULL
154550 +enable_so_block_llseek_fndecl_15846 block_llseek fndecl 2 15846 NULL nohasharray
154551 +enable_so_irq_set_msi_desc_fndecl_15846 irq_set_msi_desc fndecl 1 15846 &enable_so_block_llseek_fndecl_15846
154552 +enable_so_msg_print_ext_body_fndecl_15847 msg_print_ext_body fndecl 0 15847 NULL
154553 +enable_so_pnp_register_mem_resource_fndecl_15849 pnp_register_mem_resource fndecl 6-3-5 15849 NULL
154554 +enable_so_net2272_read_fndecl_15850 net2272_read fndecl 0 15850 NULL
154555 +enable_so_sb_set_blocksize_fndecl_15860 sb_set_blocksize fndecl 2-0 15860 NULL
154556 +enable_so_kvm_read_guest_virt_helper_fndecl_15863 kvm_read_guest_virt_helper fndecl 3-1 15863 NULL
154557 +enable_so_period_bytes_min_snd_pcm_hardware_15864 period_bytes_min snd_pcm_hardware 0 15864 NULL
154558 +enable_so_mlx4_valid_vf_state_change_fndecl_15876 mlx4_valid_vf_state_change fndecl 5 15876 NULL nohasharray
154559 +enable_so_o2net_send_tcp_msg_fndecl_15876 o2net_send_tcp_msg fndecl 4-3 15876 &enable_so_mlx4_valid_vf_state_change_fndecl_15876
154560 +enable_so_sel_read_mls_fndecl_15882 sel_read_mls fndecl 3 15882 NULL
154561 +enable_so_unix_mkname_fndecl_15883 unix_mkname fndecl 0-2 15883 NULL
154562 +enable_so_ie_len_cfg80211_auth_request_15886 ie_len cfg80211_auth_request 0 15886 NULL nohasharray
154563 +enable_so_dp_init_fndecl_15886 dp_init fndecl 0 15886 &enable_so_ie_len_cfg80211_auth_request_15886
154564 +enable_so_dump_align_fndecl_15890 dump_align fndecl 2 15890 NULL
154565 +enable_so_sn9c2028_read1_fndecl_15891 sn9c2028_read1 fndecl 0 15891 NULL
154566 +enable_so_num_fitmsg_context_skd_device_15897 num_fitmsg_context skd_device 0 15897 NULL
154567 +enable_so_num_pds_mthca_limits_15899 num_pds mthca_limits 0 15899 NULL nohasharray
154568 +enable_so_size_drm_i915_error_state_buf_15899 size drm_i915_error_state_buf 0 15899 &enable_so_num_pds_mthca_limits_15899
154569 +enable_so_cpia_usb_transferCmd_fndecl_15901 cpia_usb_transferCmd fndecl 0 15901 NULL
154570 +enable_so_usb_alloc_dev_fndecl_15902 usb_alloc_dev fndecl 3 15902 NULL
154571 +enable_so_dir_info_len_ceph_file_info_15905 dir_info_len ceph_file_info 0 15905 NULL nohasharray
154572 +enable_so_flags_v4l2_ioctl_info_15905 flags v4l2_ioctl_info 0 15905 &enable_so_dir_info_len_ceph_file_info_15905
154573 +enable_so_status_pch_udc_data_dma_desc_15911 status pch_udc_data_dma_desc 0 15911 NULL
154574 +enable_so_smiapp_write_fndecl_15913 smiapp_write fndecl 2 15913 NULL
154575 +enable_so_vsp1_entity_init_fndecl_15916 vsp1_entity_init fndecl 3 15916 NULL
154576 +enable_so_rh_queue_status_fndecl_15921 rh_queue_status fndecl 0 15921 NULL
154577 +enable_so_group_width_ore_layout_15927 group_width ore_layout 0 15927 NULL
154578 +enable_so_command_setyuvtresh_fndecl_15933 command_setyuvtresh fndecl 0 15933 NULL
154579 +enable_so_v4l2_m2m_dqbuf_fndecl_15936 v4l2_m2m_dqbuf fndecl 0 15936 NULL
154580 +enable_so_npages_gssx_arg_accept_sec_context_15939 npages gssx_arg_accept_sec_context 0 15939 NULL
154581 +enable_so_netlink_sendmsg_fndecl_15943 netlink_sendmsg fndecl 3 15943 NULL
154582 +enable_so_rstatus_usblp_15945 rstatus usblp 0 15945 NULL
154583 +enable_so_hw_scan_ies_bufsize_ieee80211_local_15949 hw_scan_ies_bufsize ieee80211_local 0 15949 NULL
154584 +enable_so_xfs_ialloc_pagi_init_fndecl_15952 xfs_ialloc_pagi_init fndecl 3 15952 NULL
154585 +enable_so_mcp795_rtcc_read_fndecl_15956 mcp795_rtcc_read fndecl 4 15956 NULL
154586 +enable_so_nr_rtc_mem_15958 nr rtc_mem 0 15958 NULL nohasharray
154587 +enable_so_ebt_buf_add_pad_fndecl_15958 ebt_buf_add_pad fndecl 0 15958 &enable_so_nr_rtc_mem_15958
154588 +enable_so_data_dma_usb_acecad_15962 data_dma usb_acecad 0 15962 NULL
154589 +enable_so_splice_pipe_to_pipe_fndecl_15964 splice_pipe_to_pipe fndecl 3 15964 NULL
154590 +enable_so_dai_list_read_file_fndecl_15966 dai_list_read_file fndecl 3 15966 NULL
154591 +enable_so_brcmf_bus_add_txhdrlen_fndecl_15969 brcmf_bus_add_txhdrlen fndecl 2 15969 NULL
154592 +enable_so_ath6kl_wmi_beginscan_cmd_fndecl_15973 ath6kl_wmi_beginscan_cmd fndecl 8-2 15973 NULL
154593 +enable_so_first_burst_iscsi_session_15974 first_burst iscsi_session 0 15974 NULL
154594 +enable_so_mmc_test_area_io_fndecl_15982 mmc_test_area_io fndecl 2 15982 NULL
154595 +enable_so_nb_blocks_INFTLrecord_15986 nb_blocks INFTLrecord 0 15986 NULL
154596 +enable_so_data_len_usb_req_15991 data_len usb_req 0 15991 NULL
154597 +enable_so_nilfs_cpfile_get_blkoff_fndecl_15997 nilfs_cpfile_get_blkoff fndecl 0-2 15997 NULL
154598 +enable_so_num_mem_chunks_ath10k_wmi_16005 num_mem_chunks ath10k_wmi 0 16005 NULL
154599 +enable_so_last_offset_inode_defrag_16007 last_offset inode_defrag 0 16007 NULL
154600 +enable_so_fiv_s5k5baf_16012 fiv s5k5baf 0 16012 NULL
154601 +enable_so_ivtv_buf_copy_from_user_fndecl_16013 ivtv_buf_copy_from_user fndecl 4 16013 NULL
154602 +enable_so_gk20a_instobj_new_fndecl_16015 gk20a_instobj_new fndecl 2 16015 NULL
154603 +enable_so_num_stripes_map_lookup_16016 num_stripes map_lookup 0 16016 NULL
154604 +enable_so_payload_len_bsg_buffer_16019 payload_len bsg_buffer 0 16019 NULL
154605 +enable_so_bo_size_drm_amdgpu_gem_create_in_16025 bo_size drm_amdgpu_gem_create_in 0 16025 NULL nohasharray
154606 +enable_so_xhci_urb_dequeue_fndecl_16025 xhci_urb_dequeue fndecl 3 16025 &enable_so_bo_size_drm_amdgpu_gem_create_in_16025 nohasharray
154607 +enable_so_jfs_truncate_nolock_fndecl_16025 jfs_truncate_nolock fndecl 2 16025 &enable_so_xhci_urb_dequeue_fndecl_16025
154608 +enable_so_len_brcmf_tlv_16031 len brcmf_tlv 0 16031 NULL
154609 +enable_so_sb_permission_fndecl_16032 sb_permission fndecl 0 16032 NULL
154610 +enable_so_ct_atc_create_fndecl_16033 ct_atc_create fndecl 3 16033 NULL nohasharray
154611 +enable_so_channels_max_hda_pcm_stream_16033 channels_max hda_pcm_stream 0 16033 &enable_so_ct_atc_create_fndecl_16033
154612 +enable_so_vmw_kms_sou_do_dmabuf_dirty_fndecl_16036 vmw_kms_sou_do_dmabuf_dirty fndecl 4 16036 NULL
154613 +enable_so_count_connectors_drm_mode_crtc_16038 count_connectors drm_mode_crtc 0 16038 NULL
154614 +enable_so_nsec_seg_buf_16050 nsec seg_buf 0 16050 NULL nohasharray
154615 +enable_so_snd_pcm_plugin_build_fndecl_16050 snd_pcm_plugin_build fndecl 5 16050 &enable_so_nsec_seg_buf_16050
154616 +enable_so_nouveau_bo_new_fndecl_16051 nouveau_bo_new fndecl 2 16051 NULL
154617 +enable_so_len_ahc_dma_seg_16052 len ahc_dma_seg 0 16052 NULL
154618 +enable_so_n_insns_comedi_insnlist_16056 n_insns comedi_insnlist 0 16056 NULL
154619 +enable_so_ts_packet_size_cx231xx_tsport_16063 ts_packet_size cx231xx_tsport 0 16063 NULL
154620 +enable_so_pgsize_vardecl_pagetest_c_16065 pgsize vardecl_pagetest.c 0 16065 NULL
154621 +enable_so_compat_sys_sendfile64_fndecl_16066 compat_sys_sendfile64 fndecl 4 16066 NULL nohasharray
154622 +enable_so_set_parameters_fndecl_16066 set_parameters fndecl 8-7 16066 &enable_so_compat_sys_sendfile64_fndecl_16066
154623 +enable_so_do_swap_page_fndecl_16068 do_swap_page fndecl 3 16068 NULL
154624 +enable_so_ht_print_chan_fndecl_16071 ht_print_chan fndecl 0 16071 NULL
154625 +enable_so_max_rxd_qlcnic_adapter_16074 max_rxd qlcnic_adapter 0 16074 NULL
154626 +enable_so_mgag200_ttm_tt_create_fndecl_16093 mgag200_ttm_tt_create fndecl 2 16093 NULL
154627 +enable_so_pci_add_resource_offset_fndecl_16095 pci_add_resource_offset fndecl 3 16095 NULL
154628 +enable_so_w_mode_size_16096 w mode_size 0 16096 NULL
154629 +enable_so_param_len_mgmt_pending_cmd_16099 param_len mgmt_pending_cmd 0 16099 NULL
154630 +enable_so_grow_dev_page_fndecl_16100 grow_dev_page fndecl 4-5-3 16100 NULL
154631 +enable_so_instances_minus_one_mxt_object_16107 instances_minus_one mxt_object 0 16107 NULL
154632 +enable_so_find_extend_vma_fndecl_16110 find_extend_vma fndecl 2 16110 NULL
154633 +enable_so_brcmf_usb_dl_send_bulk_fndecl_16113 brcmf_usb_dl_send_bulk fndecl 3 16113 NULL nohasharray
154634 +enable_so_xillybus_llseek_fndecl_16113 xillybus_llseek fndecl 2 16113 &enable_so_brcmf_usb_dl_send_bulk_fndecl_16113
154635 +enable_so_tx_bytes_queued_ipw_tty_16114 tx_bytes_queued ipw_tty 0 16114 NULL
154636 +enable_so_logfs_cleanse_block_fndecl_16119 logfs_cleanse_block fndecl 3 16119 NULL
154637 +enable_so_bfad_iocmd_fruvpd_update_fndecl_16121 bfad_iocmd_fruvpd_update fndecl 0 16121 NULL
154638 +enable_so_snd_rawmidi_kernel_write_fndecl_16129 snd_rawmidi_kernel_write fndecl 3 16129 NULL
154639 +enable_so_agi_seqno_xfs_agi_16130 agi_seqno xfs_agi 0 16130 NULL
154640 +enable_so_vf_count_efx_nic_16134 vf_count efx_nic 0 16134 NULL
154641 +enable_so_hci_req_add_ev_fndecl_16136 hci_req_add_ev fndecl 3 16136 NULL
154642 +enable_so_port_length_c67x00_td_16141 port_length c67x00_td 0 16141 NULL nohasharray
154643 +enable_so_fanout_set_data_ebpf_fndecl_16141 fanout_set_data_ebpf fndecl 3 16141 &enable_so_port_length_c67x00_td_16141
154644 +enable_so_get_partial_shdma_ops_16144 get_partial shdma_ops 0 16144 NULL
154645 +enable_so_samples_per_line_v4l2_vbi_format_16148 samples_per_line v4l2_vbi_format 0 16148 NULL
154646 +enable_so_max_packet_length_mv_dqh_16157 max_packet_length mv_dqh 0 16157 NULL
154647 +enable_so_beep_amp_via_spec_16168 beep_amp via_spec 0 16168 NULL
154648 +enable_so_read_for_csum_fndecl_16170 read_for_csum fndecl 3-2 16170 NULL
154649 +enable_so_reiserfs_commit_write_fndecl_16171 reiserfs_commit_write fndecl 4 16171 NULL
154650 +enable_so_ath6kl_wmi_set_keepalive_cmd_fndecl_16174 ath6kl_wmi_set_keepalive_cmd fndecl 2 16174 NULL
154651 +enable_so_rxrpc_recvmsg_fndecl_16178 rxrpc_recvmsg fndecl 3 16178 NULL
154652 +enable_so_board_span_myri10ge_priv_16182 board_span myri10ge_priv 0 16182 NULL nohasharray
154653 +enable_so_minor_lirc_driver_16182 minor lirc_driver 0 16182 &enable_so_board_span_myri10ge_priv_16182
154654 +enable_so_pathlen_nfs_symlinkargs_16183 pathlen nfs_symlinkargs 0 16183 NULL
154655 +enable_so_width_drm_mode_fb_cmd2_16185 width drm_mode_fb_cmd2 0 16185 NULL
154656 +enable_so_ib_uverbs_alloc_pd_fndecl_16189 ib_uverbs_alloc_pd fndecl 4 16189 NULL
154657 +enable_so_h_input_res_16191 h input_res 0 16191 NULL
154658 +enable_so_vid_hdr_offs_mtd_dev_param_16199 vid_hdr_offs mtd_dev_param 0 16199 NULL
154659 +enable_so_osdname_len_osd_dev_info_16203 osdname_len osd_dev_info 0 16203 NULL
154660 +enable_so_ipath_init_qp_table_fndecl_16220 ipath_init_qp_table fndecl 2 16220 NULL
154661 +enable_so_blksize_mtd_blktrans_ops_16221 blksize mtd_blktrans_ops 0 16221 NULL nohasharray
154662 +enable_so_rose_create_fndecl_16221 rose_create fndecl 3 16221 &enable_so_blksize_mtd_blktrans_ops_16221 nohasharray
154663 +enable_so_sys_fgetxattr_fndecl_16221 sys_fgetxattr fndecl 4 16221 &enable_so_rose_create_fndecl_16221
154664 +enable_so_port_hdspm_16225 port hdspm 0 16225 NULL
154665 +enable_so_mmio_vardecl_via_wdt_c_16227 mmio vardecl_via_wdt.c 0 16227 NULL
154666 +enable_so_m_in_maxlevels_xfs_mount_16231 m_in_maxlevels xfs_mount 0 16231 NULL nohasharray
154667 +enable_so_bfad_iocmd_port_reset_stats_fndecl_16231 bfad_iocmd_port_reset_stats fndecl 0 16231 &enable_so_m_in_maxlevels_xfs_mount_16231
154668 +enable_so_operand_1_len_ccp_ecc_modular_math_16234 operand_1_len ccp_ecc_modular_math 0 16234 NULL
154669 +enable_so_ks8851_rdreg32_fndecl_16240 ks8851_rdreg32 fndecl 0 16240 NULL
154670 +enable_so_len_wmi_p2p_rx_probe_req_event_16241 len wmi_p2p_rx_probe_req_event 0 16241 NULL
154671 +enable_so_used_count_pvr2_buffer_16246 used_count pvr2_buffer 0 16246 NULL
154672 +enable_so_num_tbps___thermal_zone_16249 num_tbps __thermal_zone 0 16249 NULL
154673 +enable_so_nilfs_iget_locked_fndecl_16250 nilfs_iget_locked fndecl 3 16250 NULL
154674 +enable_so_offs_ubifs_scan_node_16253 offs ubifs_scan_node 0 16253 NULL
154675 +enable_so_xfs_getbmapx_fix_eof_hole_fndecl_16255 xfs_getbmapx_fix_eof_hole fndecl 5 16255 NULL
154676 +enable_so_mon_stat_read_fndecl_16261 mon_stat_read fndecl 3 16261 NULL
154677 +enable_so_num_desc__drm_via_sg_info_16262 num_desc _drm_via_sg_info 0 16262 NULL
154678 +enable_so_length_scsi_data_buffer_16267 length scsi_data_buffer 0 16267 NULL
154679 +enable_so_s_fpg_ufs_sb_private_info_16269 s_fpg ufs_sb_private_info 0 16269 NULL
154680 +enable_so_s_inodes_per_group_ext2_sb_info_16273 s_inodes_per_group ext2_sb_info 0 16273 NULL
154681 +enable_so__max_length_ieee80211_radiotap_iterator_16274 _max_length ieee80211_radiotap_iterator 0 16274 NULL
154682 +enable_so_obj_len_fndecl_16275 obj_len fndecl 0 16275 NULL
154683 +enable_so_mmio_size_sis_video_info_16284 mmio_size sis_video_info 0 16284 NULL
154684 +enable_so_find_ibft_region_fndecl_16285 find_ibft_region fndecl 0 16285 NULL
154685 +enable_so_dvbdev_get_free_adapter_num_fndecl_16292 dvbdev_get_free_adapter_num fndecl 0 16292 NULL
154686 +enable_so_bits_inflate_state_16300 bits inflate_state 0 16300 NULL
154687 +enable_so_vfs_writev_fndecl_16301 vfs_writev fndecl 3 16301 NULL
154688 +enable_so_crypto_alloc_instance2_fndecl_16302 crypto_alloc_instance2 fndecl 3 16302 NULL
154689 +enable_so_isdn_tty_countDLE_fndecl_16304 isdn_tty_countDLE fndecl 0 16304 NULL
154690 +enable_so_brcmf_sdiod_txglomsz_vardecl_bcmsdh_c_16306 brcmf_sdiod_txglomsz vardecl_bcmsdh.c 0 16306 NULL
154691 +enable_so_len_ieee80211_vendor_radiotap_16308 len ieee80211_vendor_radiotap 0 16308 NULL
154692 +enable_so_aac_fib_send_fndecl_16315 aac_fib_send fndecl 3 16315 NULL
154693 +enable_so_memblock_mark_mirror_fndecl_16321 memblock_mark_mirror fndecl 2-1 16321 NULL
154694 +enable_so_major_tty_driver_16323 major tty_driver 0 16323 NULL
154695 +enable_so_AscGetMaxDmaCount_fndecl_16326 AscGetMaxDmaCount fndecl 0 16326 NULL
154696 +enable_so_jent_zalloc_fndecl_16331 jent_zalloc fndecl 1 16331 NULL
154697 +enable_so_fdt_bus_default_count_cells_fndecl_16340 fdt_bus_default_count_cells fndecl 2 16340 NULL
154698 +enable_so_l2tp_session_create_fndecl_16341 l2tp_session_create fndecl 1 16341 NULL
154699 +enable_so_sys_dup2_fndecl_16343 sys_dup2 fndecl 2 16343 NULL nohasharray
154700 +enable_so_max_vfs_be_resources_16343 max_vfs be_resources 0 16343 &enable_so_sys_dup2_fndecl_16343
154701 +enable_so_fuse_dir_compat_ioctl_fndecl_16346 fuse_dir_compat_ioctl fndecl 2 16346 NULL
154702 +enable_so_channels_snd_emu10k1_fx8010_pcm_16368 channels snd_emu10k1_fx8010_pcm 0 16368 NULL
154703 +enable_so_udf_get_pblock_virt15_fndecl_16373 udf_get_pblock_virt15 fndecl 4 16373 NULL
154704 +enable_so_help_fndecl_16375 help fndecl 3-5 16375 NULL nohasharray
154705 +enable_so_ath9k_debugfs_read_buf_fndecl_16375 ath9k_debugfs_read_buf fndecl 3 16375 &enable_so_help_fndecl_16375
154706 +enable_so_len_iwl_mvm_dump_desc_16383 len iwl_mvm_dump_desc 0 16383 NULL
154707 +enable_so_zd_mac_preinit_hw_fndecl_16386 zd_mac_preinit_hw fndecl 0 16386 NULL
154708 +enable_so_sr_set_blocklength_fndecl_16390 sr_set_blocklength fndecl 2 16390 NULL
154709 +enable_so_dsize_ip_set_16391 dsize ip_set 0 16391 NULL
154710 +enable_so_max_nr_frames_gnttab_query_size_16393 max_nr_frames gnttab_query_size 0 16393 NULL
154711 +enable_so_set_pio_mode_fndecl_16395 set_pio_mode fndecl 2 16395 NULL nohasharray
154712 +enable_so_ip_options_get_alloc_fndecl_16395 ip_options_get_alloc fndecl 1 16395 &enable_so_set_pio_mode_fndecl_16395 nohasharray
154713 +enable_so_pci_map_page_fndecl_16395 pci_map_page fndecl 0 16395 &enable_so_ip_options_get_alloc_fndecl_16395
154714 +enable_so_rt2x00debug_read_queue_stats_fndecl_16396 rt2x00debug_read_queue_stats fndecl 3 16396 NULL
154715 +enable_so_SYSC_setgroups_fndecl_16397 SYSC_setgroups fndecl 1 16397 NULL
154716 +enable_so___logfs_seek_data_fndecl_16398 __logfs_seek_data fndecl 2-0 16398 NULL
154717 +enable_so_usbat_execute_command_fndecl_16400 usbat_execute_command fndecl 3 16400 NULL
154718 +enable_so_compress_sliced_buf_fndecl_16402 compress_sliced_buf fndecl 0-2 16402 NULL
154719 +enable_so_statelen_drbg_core_16405 statelen drbg_core 0 16405 NULL
154720 +enable_so_omap_hsmmc_setup_dma_transfer_fndecl_16407 omap_hsmmc_setup_dma_transfer fndecl 0 16407 NULL
154721 +enable_so_controller_number_mspro_sys_info_16408 controller_number mspro_sys_info 0 16408 NULL
154722 +enable_so_romfs_dev_read_fndecl_16412 romfs_dev_read fndecl 2-4 16412 NULL
154723 +enable_so_bcnt_aoeif_16414 bcnt aoeif 0 16414 NULL
154724 +enable_so_n_sectors_hpfs_super_block_16421 n_sectors hpfs_super_block 0 16421 NULL
154725 +enable_so_bNrInPins_uac_selector_unit_descriptor_16423 bNrInPins uac_selector_unit_descriptor 0 16423 NULL
154726 +enable_so_numa_emulation_fndecl_16441 numa_emulation fndecl 2 16441 NULL
154727 +enable_so_ep_in_usbtest_info_16442 ep_in usbtest_info 0 16442 NULL
154728 +enable_so_batadv_bla_answer_request_fndecl_16443 batadv_bla_answer_request fndecl 3 16443 NULL nohasharray
154729 +enable_so_pcmcia_irq_pcmcia_socket_16443 pcmcia_irq pcmcia_socket 0 16443 &enable_so_batadv_bla_answer_request_fndecl_16443
154730 +enable_so_ReadHSCX_fndecl_16444 ReadHSCX fndecl 0 16444 NULL nohasharray
154731 +enable_so_garp_request_join_fndecl_16444 garp_request_join fndecl 4 16444 &enable_so_ReadHSCX_fndecl_16444
154732 +enable_so_mpu3050_xyz_read_reg_fndecl_16445 mpu3050_xyz_read_reg fndecl 3 16445 NULL
154733 +enable_so_endp_in_zd1201_16446 endp_in zd1201 0 16446 NULL
154734 +enable_so_frame_size_au0828_dev_16447 frame_size au0828_dev 0 16447 NULL
154735 +enable_so_wp_page_copy_fndecl_16450 wp_page_copy fndecl 3 16450 NULL
154736 +enable_so_sdhci_alloc_host_fndecl_16454 sdhci_alloc_host fndecl 2 16454 NULL
154737 +enable_so_prism2_change_mtu_fndecl_16473 prism2_change_mtu fndecl 2 16473 NULL
154738 +enable_so_m_sectbb_log_xfs_mount_16477 m_sectbb_log xfs_mount 0 16477 NULL nohasharray
154739 +enable_so_nfs_proc_symlink_fndecl_16477 nfs_proc_symlink fndecl 4 16477 &enable_so_m_sectbb_log_xfs_mount_16477
154740 +enable_so_nilfs_iget_fndecl_16478 nilfs_iget fndecl 3 16478 NULL
154741 +enable_so_msg_count_amd8111e_rx_dr_16493 msg_count amd8111e_rx_dr 0 16493 NULL
154742 +enable_so_fc_plogi_x_build_fndecl_16495 fc_plogi_x_build fndecl 8 16495 NULL
154743 +enable_so_blksz_fw_dl_mwifiex_pcie_device_16498 blksz_fw_dl mwifiex_pcie_device 0 16498 NULL nohasharray
154744 +enable_so_ttm_page_alloc_init_fndecl_16498 ttm_page_alloc_init fndecl 2 16498 &enable_so_blksz_fw_dl_mwifiex_pcie_device_16498
154745 +enable_so_max_srq_wqes_mthca_limits_16499 max_srq_wqes mthca_limits 0 16499 NULL
154746 +enable_so_stride_simplefb_platform_data_16503 stride simplefb_platform_data 0 16503 NULL
154747 +enable_so_crypt_alloc_buffer_fndecl_16511 crypt_alloc_buffer fndecl 2 16511 NULL
154748 +enable_so_cfs_cpt_num_estimate_fndecl_16512 cfs_cpt_num_estimate fndecl 0 16512 NULL
154749 +enable_so_blocks_available_dio_submit_16522 blocks_available dio_submit 0 16522 NULL
154750 +enable_so_xb_suballoc_loc_ocfs2_xattr_block_16523 xb_suballoc_loc ocfs2_xattr_block 0 16523 NULL
154751 +enable_so_io_throttle_count_vnic_snic_config_16529 io_throttle_count vnic_snic_config 0 16529 NULL
154752 +enable_so_comm_size_perf_comm_event_16533 comm_size perf_comm_event 0 16533 NULL
154753 +enable_so_ath10k_read_htt_stats_mask_fndecl_16534 ath10k_read_htt_stats_mask fndecl 3 16534 NULL
154754 +enable_so_lpt_lebs_ubifs_info_16535 lpt_lebs ubifs_info 0 16535 NULL
154755 +enable_so_smk_read_mapped_fndecl_16537 smk_read_mapped fndecl 3 16537 NULL
154756 +enable_so_tmds_register_read_bytes_fndecl_16541 tmds_register_read_bytes fndecl 3 16541 NULL
154757 +enable_so_MaxSimpleVolumes_aac_get_container_count_resp_16542 MaxSimpleVolumes aac_get_container_count_resp 0 16542 NULL
154758 +enable_so_max_mthca_srq_16551 max mthca_srq 0 16551 NULL
154759 +enable_so_max_srq_sz_mlx4_dev_cap_16554 max_srq_sz mlx4_dev_cap 0 16554 NULL
154760 +enable_so_groups_alloc_fndecl_16557 groups_alloc fndecl 1 16557 NULL
154761 +enable_so_result_wa_xfer_16568 result wa_xfer 0 16568 NULL
154762 +enable_so_cramfs_uncompress_block_fndecl_16569 cramfs_uncompress_block fndecl 4-2 16569 NULL
154763 +enable_so___mei_cl_send_fndecl_16571 __mei_cl_send fndecl 3 16571 NULL
154764 +enable_so_n_barrier_cbs_vardecl_rcutorture_c_16575 n_barrier_cbs vardecl_rcutorture.c 0 16575 NULL
154765 +enable_so_descriptor_elements_timb_dma_platform_data_channel_16581 descriptor_elements timb_dma_platform_data_channel 0 16581 NULL
154766 +enable_so_n_phy_pm8001_chip_info_16585 n_phy pm8001_chip_info 0 16585 NULL
154767 +enable_so_len_atmel_priv_ioctl_16592 len atmel_priv_ioctl 0 16592 NULL
154768 +enable_so_ino_logfs_block_16599 ino logfs_block 0 16599 NULL
154769 +enable_so_send_to_group_fndecl_16600 send_to_group fndecl 0 16600 NULL
154770 +enable_so_ext4_group_extend_fndecl_16613 ext4_group_extend fndecl 3 16613 NULL
154771 +enable_so_coda_upcall_fndecl_16614 coda_upcall fndecl 2 16614 NULL
154772 +enable_so_agf_freeblks_xfs_agf_16620 agf_freeblks xfs_agf 0 16620 NULL
154773 +enable_so_amdgpu_ttm_gtt_read_fndecl_16621 amdgpu_ttm_gtt_read fndecl 3 16621 NULL
154774 +enable_so_ceph_fsync_fndecl_16625 ceph_fsync fndecl 2-3 16625 NULL
154775 +enable_so_len_t4_cqe_16627 len t4_cqe 0 16627 NULL
154776 +enable_so_ext_tree_remove_fndecl_16629 ext_tree_remove fndecl 3-4 16629 NULL nohasharray
154777 +enable_so_uc_outSize_upc_req_16629 uc_outSize upc_req 0 16629 &enable_so_ext_tree_remove_fndecl_16629
154778 +enable_so_fault_inject_write_fndecl_16637 fault_inject_write fndecl 3 16637 NULL
154779 +enable_so_crtc_hsync_start_drm_display_mode_16643 crtc_hsync_start drm_display_mode 0 16643 NULL
154780 +enable_so_svc_pool_map_init_pernode_fndecl_16648 svc_pool_map_init_pernode fndecl 0 16648 NULL
154781 +enable_so_nfc_hci_allocate_device_fndecl_16649 nfc_hci_allocate_device fndecl 8-6 16649 NULL
154782 +enable_so_wpa_ie_len_mwifiex_private_16651 wpa_ie_len mwifiex_private 0 16651 NULL
154783 +enable_so_notify_uva_vmci_set_notify_info_16655 notify_uva vmci_set_notify_info 0 16655 NULL
154784 +enable_so_rxHeader1_edgeport_serial_16658 rxHeader1 edgeport_serial 0 16658 NULL
154785 +enable_so_core_alua_write_tpg_metadata_fndecl_16659 core_alua_write_tpg_metadata fndecl 3 16659 NULL
154786 +enable_so_li_total_channels_vardecl_16663 li_total_channels vardecl 0 16663 NULL
154787 +enable_so_frag_off_frag_hdr_16668 frag_off frag_hdr 0 16668 NULL
154788 +enable_so_memblock_remove_fndecl_16669 memblock_remove fndecl 2-1 16669 NULL
154789 +enable_so_y_size_mms114_platform_data_16671 y_size mms114_platform_data 0 16671 NULL
154790 +enable_so_drNxtCNID_hfs_mdb_16673 drNxtCNID hfs_mdb 0 16673 NULL
154791 +enable_so_of_dma_match_channel_fndecl_16675 of_dma_match_channel fndecl 3 16675 NULL
154792 +enable_so_ext_mem_k_screen_info_16677 ext_mem_k screen_info 0 16677 NULL nohasharray
154793 +enable_so_dlfb_get_edid_fndecl_16677 dlfb_get_edid fndecl 0 16677 &enable_so_ext_mem_k_screen_info_16677
154794 +enable_so_hue_sd_gl860_16686 hue sd_gl860 0 16686 NULL
154795 +enable_so___alloc_objio_seg_fndecl_16688 __alloc_objio_seg fndecl 1 16688 NULL nohasharray
154796 +enable_so_cons_read_buffer_16688 cons read_buffer 0 16688 &enable_so___alloc_objio_seg_fndecl_16688
154797 +enable_so_jffs2_scan_xref_node_fndecl_16692 jffs2_scan_xref_node fndecl 4 16692 NULL
154798 +enable_so_size_loaded_s3c_hsotg_ep_16693 size_loaded s3c_hsotg_ep 0 16693 NULL nohasharray
154799 +enable_so_batadv_check_unicast_ttvn_fndecl_16693 batadv_check_unicast_ttvn fndecl 3 16693 &enable_so_size_loaded_s3c_hsotg_ep_16693
154800 +enable_so_efx_ef10_pci_sriov_enable_fndecl_16694 efx_ef10_pci_sriov_enable fndecl 2 16694 NULL
154801 +enable_so_llcp_tlv_miux_fndecl_16699 llcp_tlv_miux fndecl 0 16699 NULL
154802 +enable_so_ad714x_spi_read_fndecl_16700 ad714x_spi_read fndecl 4 16700 NULL
154803 +enable_so_tlv_buf_len_mwifiex_scan_cmd_config_16702 tlv_buf_len mwifiex_scan_cmd_config 0 16702 NULL
154804 +enable_so_hdlc_loop_fndecl_16708 hdlc_loop fndecl 0 16708 NULL
154805 +enable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 3 16712 NULL
154806 +enable_so_ntargets_ips_ha_16718 ntargets ips_ha 0 16718 NULL
154807 +enable_so_pcm_buf_host_rw_ofs_snd_card_asihpi_pcm_16719 pcm_buf_host_rw_ofs snd_card_asihpi_pcm 0 16719 NULL
154808 +enable_so_opcfg_ofsl_cyttsp4_sysinfo_data_16723 opcfg_ofsl cyttsp4_sysinfo_data 0 16723 NULL
154809 +enable_so_multi_io_quirk_mmc_host_ops_16729 multi_io_quirk mmc_host_ops 0 16729 NULL
154810 +enable_so_fat_length_fat_boot_sector_16730 fat_length fat_boot_sector 0 16730 NULL
154811 +enable_so_width_qxl_head_16734 width qxl_head 0 16734 NULL
154812 +enable_so_nchannels_twl6030_gpadc_platform_data_16736 nchannels twl6030_gpadc_platform_data 0 16736 NULL
154813 +enable_so_rx_rate_rx_frames_per_rates_read_fndecl_16737 rx_rate_rx_frames_per_rates_read fndecl 3 16737 NULL nohasharray
154814 +enable_so_udf_add_extendedattr_fndecl_16737 udf_add_extendedattr fndecl 2 16737 &enable_so_rx_rate_rx_frames_per_rates_read_fndecl_16737 nohasharray
154815 +enable_so_kimage_alloc_init_fndecl_16737 kimage_alloc_init fndecl 3 16737 &enable_so_udf_add_extendedattr_fndecl_16737
154816 +enable_so_r_root_dir_omfs_root_block_16742 r_root_dir omfs_root_block 0 16742 NULL
154817 +enable_so_blockshift_sddr55_card_info_16749 blockshift sddr55_card_info 0 16749 NULL
154818 +enable_so_lib80211_wep_encrypt_fndecl_16752 lib80211_wep_encrypt fndecl 2 16752 NULL
154819 +enable_so_skb_pull_rcsum_fndecl_16757 skb_pull_rcsum fndecl 2 16757 NULL
154820 +enable_so_discard_next_dnode_fndecl_16758 discard_next_dnode fndecl 2 16758 NULL
154821 +enable_so_cpu_msix_table_sz_MPT2SAS_ADAPTER_16760 cpu_msix_table_sz MPT2SAS_ADAPTER 0 16760 NULL
154822 +enable_so___vfs_write_fndecl_16765 __vfs_write fndecl 0-3 16765 NULL
154823 +enable_so___blk_end_request_all_fndecl_16766 __blk_end_request_all fndecl 2 16766 NULL
154824 +enable_so_cluster_vardecl_pd_c_16770 cluster vardecl_pd.c 0 16770 NULL nohasharray
154825 +enable_so_num_q_csio_wrm_16770 num_q csio_wrm 0 16770 &enable_so_cluster_vardecl_pd_c_16770
154826 +enable_so_cfg80211_classify8021d_fndecl_16771 cfg80211_classify8021d fndecl 0 16771 NULL
154827 +enable_so_key_len_iw_encode_ext_16773 key_len iw_encode_ext 0 16773 NULL
154828 +enable_so_len_f2fs_str_16776 len f2fs_str 0 16776 NULL
154829 +enable_so_security_inode_need_killpriv_fndecl_16777 security_inode_need_killpriv fndecl 0 16777 NULL
154830 +enable_so_csio_fcoe_rnodes_vardecl_16778 csio_fcoe_rnodes vardecl 0 16778 NULL
154831 +enable_so_qxl_draw_opaque_fb_fndecl_16781 qxl_draw_opaque_fb fndecl 2 16781 NULL
154832 +enable_so_u132_hcd_giveback_urb_fndecl_16783 u132_hcd_giveback_urb fndecl 4 16783 NULL nohasharray
154833 +enable_so_extra_prefix_len_ieee80211_crypto_ops_16783 extra_prefix_len ieee80211_crypto_ops 0 16783 &enable_so_u132_hcd_giveback_urb_fndecl_16783
154834 +enable_so_max_iu_len_srp_target_port_16784 max_iu_len srp_target_port 0 16784 NULL nohasharray
154835 +enable_so_iscsit_build_text_rsp_fndecl_16784 iscsit_build_text_rsp fndecl 0 16784 &enable_so_max_iu_len_srp_target_port_16784 nohasharray
154836 +enable_so_num_pfns_virtio_balloon_16784 num_pfns virtio_balloon 0 16784 &enable_so_iscsit_build_text_rsp_fndecl_16784
154837 +enable_so_get_string_fndecl_16789 get_string fndecl 0 16789 NULL
154838 +enable_so_data_in_size_mpt2_ioctl_command_16804 data_in_size mpt2_ioctl_command 0 16804 NULL
154839 +enable_so_batch_shrinker_16806 batch shrinker 0 16806 NULL
154840 +enable_so_spu_subctxt_cnt_qib_user_info_16810 spu_subctxt_cnt qib_user_info 0 16810 NULL nohasharray
154841 +enable_so_iscsit_map_iovec_fndecl_16810 iscsit_map_iovec fndecl 4-3-0 16810 &enable_so_spu_subctxt_cnt_qib_user_info_16810
154842 +enable_so_diva_xdi_read_fndecl_16814 diva_xdi_read fndecl 0 16814 NULL
154843 +enable_so_offset_btrfs_disk_key_16819 offset btrfs_disk_key 0 16819 NULL
154844 +enable_so_hfs_cat_build_record_fndecl_16823 hfs_cat_build_record fndecl 2 16823 NULL nohasharray
154845 +enable_so_vxlan_gro_remcsum_fndecl_16823 vxlan_gro_remcsum fndecl 5-4-2 16823 &enable_so_hfs_cat_build_record_fndecl_16823
154846 +enable_so_count_range_bits_fndecl_16830 count_range_bits fndecl 0-3 16830 NULL
154847 +enable_so_audit_send_reply_fndecl_16835 audit_send_reply fndecl 7 16835 NULL
154848 +enable_so_nr_p2m_frames_start_info_16837 nr_p2m_frames start_info 0 16837 NULL
154849 +enable_so_max_gen_ptrs_vardecl_net_namespace_c_16838 max_gen_ptrs vardecl_net_namespace.c 0 16838 NULL
154850 +enable_so_alignment_ubi_mkvol_req_16842 alignment ubi_mkvol_req 0 16842 NULL nohasharray
154851 +enable_so_execute_tuning_mmc_host_ops_16842 execute_tuning mmc_host_ops 0 16842 &enable_so_alignment_ubi_mkvol_req_16842 nohasharray
154852 +enable_so_esrt_data_size_vardecl_esrt_c_16842 esrt_data_size vardecl_esrt.c 0 16842 &enable_so_execute_tuning_mmc_host_ops_16842
154853 +enable_so_tx_headroom_nfc_digital_dev_16844 tx_headroom nfc_digital_dev 0 16844 NULL
154854 +enable_so_ccp_do_cmac_update_fndecl_16848 ccp_do_cmac_update fndecl 2 16848 NULL
154855 +enable_so_base_jfs_log_16858 base jfs_log 0 16858 NULL
154856 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathTimeout_fndecl_16859 ieee80211_if_read_dot11MeshHWMPactivePathTimeout fndecl 3 16859 NULL
154857 +enable_so_radeon_bo_create_fndecl_16863 radeon_bo_create fndecl 2 16863 NULL
154858 +enable_so_no_channels_ltr501_chip_info_16866 no_channels ltr501_chip_info 0 16866 NULL nohasharray
154859 +enable_so_cnic_alloc_new_id_fndecl_16866 cnic_alloc_new_id fndecl 0 16866 &enable_so_no_channels_ltr501_chip_info_16866
154860 +enable_so_drm_property_create_blob_fndecl_16869 drm_property_create_blob fndecl 2 16869 NULL
154861 +enable_so_size_nvs_page_16880 size nvs_page 0 16880 NULL
154862 +enable_so_cik_get_csb_size_fndecl_16882 cik_get_csb_size fndecl 0 16882 NULL
154863 +enable_so__ore_add_stripe_unit_fndecl_16884 _ore_add_stripe_unit fndecl 3-6 16884 NULL nohasharray
154864 +enable_so_odm_stripe_unit_pnfs_osd_data_map_16884 odm_stripe_unit pnfs_osd_data_map 0 16884 &enable_so__ore_add_stripe_unit_fndecl_16884
154865 +enable_so_from_offset_xt_string_info_16886 from_offset xt_string_info 0 16886 NULL nohasharray
154866 +enable_so_dma_buf_size_ddb_output_16886 dma_buf_size ddb_output 0 16886 &enable_so_from_offset_xt_string_info_16886
154867 +enable_so_sl_change_mtu_fndecl_16887 sl_change_mtu fndecl 2 16887 NULL
154868 +enable_so_register_sound_special_device_fndecl_16891 register_sound_special_device fndecl 2 16891 NULL nohasharray
154869 +enable_so_audmux_read_file_fndecl_16891 audmux_read_file fndecl 3 16891 &enable_so_register_sound_special_device_fndecl_16891
154870 +enable_so_buf_sz_ath10k_pci_pipe_16896 buf_sz ath10k_pci_pipe 0 16896 NULL
154871 +enable_so_ncbflooders_vardecl_rcutorture_c_16899 ncbflooders vardecl_rcutorture.c 0 16899 NULL
154872 +enable_so_smk_write_load_self_fndecl_16901 smk_write_load_self fndecl 3 16901 NULL
154873 +enable_so_cqe_size_mlx4_caps_16902 cqe_size mlx4_caps 0 16902 NULL
154874 +enable_so_integrity_digsig_verify_fndecl_16903 integrity_digsig_verify fndecl 3 16903 NULL
154875 +enable_so_msi2500_ctrl_msg_fndecl_16907 msi2500_ctrl_msg fndecl 0 16907 NULL
154876 +enable_so_n_ai_urbs_usbduxsigma_private_16912 n_ai_urbs usbduxsigma_private 0 16912 NULL
154877 +enable_so_tx_ring_order_vardecl_main_c_16915 tx_ring_order vardecl_main.c 0 16915 NULL
154878 +enable_so_fsnotify_fndecl_16916 fsnotify fndecl 0 16916 NULL nohasharray
154879 +enable_so_idx_mxser_board_16916 idx mxser_board 0 16916 &enable_so_fsnotify_fndecl_16916
154880 +enable_so_bpf_program_num_elem_xt_bpf_info_16920 bpf_program_num_elem xt_bpf_info 0 16920 NULL
154881 +enable_so_cont_size_rock_state_16925 cont_size rock_state 0 16925 NULL
154882 +enable_so_snd_rawmidi_transmit_fndecl_16928 snd_rawmidi_transmit fndecl 0-3 16928 NULL
154883 +enable_so_sys_mbind_fndecl_16933 sys_mbind fndecl 2-1-5 16933 NULL
154884 +enable_so_size_intel_ringbuffer_16937 size intel_ringbuffer 0 16937 NULL
154885 +enable_so_len_t3_cqe_16946 len t3_cqe 0 16946 NULL
154886 +enable_so_vidioc_dqbuf_fndecl_16948 vidioc_dqbuf fndecl 0 16948 NULL
154887 +enable_so_ath10k_wmi_alloc_skb_fndecl_16949 ath10k_wmi_alloc_skb fndecl 2 16949 NULL
154888 +enable_so_len_pcan_usb_pro_rxmsg_16950 len pcan_usb_pro_rxmsg 0 16950 NULL
154889 +enable_so_intel_framebuffer_pitch_for_width_fndecl_16956 intel_framebuffer_pitch_for_width fndecl 0-2-1 16956 NULL
154890 +enable_so_admin_mtu_ipoib_dev_priv_16960 admin_mtu ipoib_dev_priv 0 16960 NULL
154891 +enable_so_vcs_read_fndecl_16962 vcs_read fndecl 3 16962 NULL
154892 +enable_so_call_id_rxrpc_call_16964 call_id rxrpc_call 0 16964 NULL
154893 +enable_so_minor_oss_minor_dev_16965 minor oss_minor_dev 0 16965 NULL
154894 +enable_so_cifs_sync_write_fndecl_16972 cifs_sync_write fndecl 6 16972 NULL
154895 +enable_so_fat_reserved_fat_bios_param_block_16977 fat_reserved fat_bios_param_block 0 16977 NULL
154896 +enable_so_virtio_gpu_alloc_cmd_fndecl_16978 virtio_gpu_alloc_cmd fndecl 3 16978 NULL
154897 +enable_so_size_drm_vmw_shader_create_arg_16979 size drm_vmw_shader_create_arg 0 16979 NULL
154898 +enable_so_inquiry_len_scsi_device_16981 inquiry_len scsi_device 0 16981 NULL nohasharray
154899 +enable_so_num_tx_queues_ixgbe_adapter_16981 num_tx_queues ixgbe_adapter 0 16981 &enable_so_inquiry_len_scsi_device_16981
154900 +enable_so_zlib_uncompress_fndecl_16988 zlib_uncompress fndecl 6-5 16988 NULL
154901 +enable_so_tt3650_ci_msg_locked_fndecl_16990 tt3650_ci_msg_locked fndecl 4 16990 NULL
154902 +enable_so_iser_rcv_completion_fndecl_16995 iser_rcv_completion fndecl 2 16995 NULL nohasharray
154903 +enable_so_src_base_apei_exec_context_16995 src_base apei_exec_context 0 16995 &enable_so_iser_rcv_completion_fndecl_16995
154904 +enable_so_endp_out2_zd1201_16998 endp_out2 zd1201 0 16998 NULL
154905 +enable_so_be_fill_vf_res_template_fndecl_16999 be_fill_vf_res_template fndecl 3 16999 NULL
154906 +enable_so_cifs_min_rcv_vardecl_17001 cifs_min_rcv vardecl 0 17001 NULL
154907 +enable_so_xfs_dir_replace_fndecl_17002 xfs_dir_replace fndecl 7 17002 NULL
154908 +enable_so_offset_ipw_tx_packet_17004 offset ipw_tx_packet 0 17004 NULL
154909 +enable_so_id_rtc_device_17005 id rtc_device 0 17005 NULL
154910 +enable_so_snd_hdac_bus_exec_verb_fndecl_17009 snd_hdac_bus_exec_verb fndecl 0 17009 NULL
154911 +enable_so_consumed_unix_skb_parms_17012 consumed unix_skb_parms 0 17012 NULL
154912 +enable_so_ds_segment_shift_logfs_disk_super_17013 ds_segment_shift logfs_disk_super 0 17013 NULL
154913 +enable_so_u132_hcd_abandon_urb_fndecl_17016 u132_hcd_abandon_urb fndecl 4 17016 NULL
154914 +enable_so_error_param2_vardecl_einj_c_17022 error_param2 vardecl_einj.c 0 17022 NULL nohasharray
154915 +enable_so_num_pads_media_entity_17022 num_pads media_entity 0 17022 &enable_so_error_param2_vardecl_einj_c_17022
154916 +enable_so_ext4_mb_load_buddy_fndecl_17030 ext4_mb_load_buddy fndecl 2-0 17030 NULL
154917 +enable_so_rx_buf_len_i40e_ring_17034 rx_buf_len i40e_ring 0 17034 NULL
154918 +enable_so_hw_context_size_drm_i915_private_17036 hw_context_size drm_i915_private 0 17036 NULL
154919 +enable_so_inuse_kmem_cache_17038 inuse kmem_cache 0 17038 NULL
154920 +enable_so_reiserfs_sync_file_fndecl_17045 reiserfs_sync_file fndecl 2-3 17045 NULL
154921 +enable_so_alloc_targets_fndecl_17049 alloc_targets fndecl 2 17049 NULL nohasharray
154922 +enable_so_qla4xxx_post_ping_evt_work_fndecl_17049 qla4xxx_post_ping_evt_work fndecl 4 17049 &enable_so_alloc_targets_fndecl_17049
154923 +enable_so_spi_write_then_read_fndecl_17050 spi_write_then_read fndecl 3-5 17050 NULL
154924 +enable_so_ext4_ext_map_blocks_fndecl_17053 ext4_ext_map_blocks fndecl 0 17053 NULL nohasharray
154925 +enable_so_max_sge_rds_ib_device_17053 max_sge rds_ib_device 0 17053 &enable_so_ext4_ext_map_blocks_fndecl_17053
154926 +enable_so_xstate_size_vardecl_17054 xstate_size vardecl 0 17054 NULL
154927 +enable_so_command_setcompressiontarget_fndecl_17055 command_setcompressiontarget fndecl 0 17055 NULL
154928 +enable_so_ufx_submit_urb_fndecl_17065 ufx_submit_urb fndecl 3 17065 NULL
154929 +enable_so_venus_lookup_fndecl_17066 venus_lookup fndecl 4 17066 NULL
154930 +enable_so___scsi_error_from_host_byte_fndecl_17069 __scsi_error_from_host_byte fndecl 0 17069 NULL nohasharray
154931 +enable_so_number_of_packets_usbip_header_cmd_submit_17069 number_of_packets usbip_header_cmd_submit 0 17069 &enable_so___scsi_error_from_host_byte_fndecl_17069
154932 +enable_so_vmbus_sendpacket_pagebuffer_ctl_fndecl_17076 vmbus_sendpacket_pagebuffer_ctl fndecl 3-5 17076 NULL
154933 +enable_so_offset_xen_netif_tx_request_17081 offset xen_netif_tx_request 0 17081 NULL
154934 +enable_so_rsp_que_len_qla_hw_data_17082 rsp_que_len qla_hw_data 0 17082 NULL nohasharray
154935 +enable_so_ax88179_read_cmd_fndecl_17082 ax88179_read_cmd fndecl 5 17082 &enable_so_rsp_que_len_qla_hw_data_17082
154936 +enable_so_ccp_prepare_data_fndecl_17091 ccp_prepare_data fndecl 4 17091 NULL
154937 +enable_so_xfs_file_fallocate_fndecl_17093 xfs_file_fallocate fndecl 3-4 17093 NULL
154938 +enable_so_obfuscate_tx_buffer_fndecl_17095 obfuscate_tx_buffer fndecl 0-2 17095 NULL
154939 +enable_so_tx_tx_stop_read_fndecl_17096 tx_tx_stop_read fndecl 3 17096 NULL
154940 +enable_so_size_ipack_region_17100 size ipack_region 0 17100 NULL nohasharray
154941 +enable_so_phys_base_fore200e_17100 phys_base fore200e 0 17100 &enable_so_size_ipack_region_17100
154942 +enable_so_ocfs2_xattr_trusted_set_fndecl_17102 ocfs2_xattr_trusted_set fndecl 4 17102 NULL nohasharray
154943 +enable_so_nr_voices_seq_oss_synth_17102 nr_voices seq_oss_synth 0 17102 &enable_so_ocfs2_xattr_trusted_set_fndecl_17102
154944 +enable_so_cx18_queue_get_mdl_fndecl_17103 cx18_queue_get_mdl fndecl 3 17103 NULL
154945 +enable_so_len_st_fifo_entry_17104 len st_fifo_entry 0 17104 NULL nohasharray
154946 +enable_so_ro_step_fndecl_17104 ro_step fndecl 2 17104 &enable_so_len_st_fifo_entry_17104 nohasharray
154947 +enable_so_dlm_user_request_fndecl_17104 dlm_user_request fndecl 6 17104 &enable_so_ro_step_fndecl_17104
154948 +enable_so_sdio_readsb_fndecl_17108 sdio_readsb fndecl 4 17108 NULL
154949 +enable_so_count_stframe_17112 count stframe 0 17112 NULL
154950 +enable_so_minors_gendisk_17113 minors gendisk 0 17113 NULL
154951 +enable_so_zoneshift_alauda_media_info_17115 zoneshift alauda_media_info 0 17115 NULL
154952 +enable_so_xfs_iomap_prealloc_size_fndecl_17118 xfs_iomap_prealloc_size fndecl 3 17118 NULL
154953 +enable_so_sample_rate_pcxhr_mgr_17120 sample_rate pcxhr_mgr 0 17120 NULL
154954 +enable_so_mlx4_en_activate_tx_ring_fndecl_17126 mlx4_en_activate_tx_ring fndecl 4 17126 NULL
154955 +enable_so_in___kfifo_17131 in __kfifo 0 17131 NULL nohasharray
154956 +enable_so_hci_sock_recvmsg_fndecl_17131 hci_sock_recvmsg fndecl 3 17131 &enable_so_in___kfifo_17131
154957 +enable_so_nilfs_sufile_do_set_error_fndecl_17133 nilfs_sufile_do_set_error fndecl 2 17133 NULL
154958 +enable_so_fsl_edma_desc_residue_fndecl_17134 fsl_edma_desc_residue fndecl 0 17134 NULL
154959 +enable_so_lnet_ipif_enumerate_fndecl_17135 lnet_ipif_enumerate fndecl 0 17135 NULL
154960 +enable_so_dccp_send_sync_fndecl_17137 dccp_send_sync fndecl 2 17137 NULL nohasharray
154961 +enable_so_irq_stmpe_variant_block_17137 irq stmpe_variant_block 0 17137 &enable_so_dccp_send_sync_fndecl_17137
154962 +enable_so_csio_lun_qdepth_vardecl_17143 csio_lun_qdepth vardecl 0 17143 NULL
154963 +enable_so_blockSize_ms_lib_ctrl_17144 blockSize ms_lib_ctrl 0 17144 NULL
154964 +enable_so_irq_dma_yealink_dev_17149 irq_dma yealink_dev 0 17149 NULL
154965 +enable_so_mr_page_mask_srp_device_17151 mr_page_mask srp_device 0 17151 NULL nohasharray
154966 +enable_so_size_buf_image_desc_17151 size_buf image_desc 0 17151 &enable_so_mr_page_mask_srp_device_17151
154967 +enable_so_bfad_iocmd_tfru_write_fndecl_17162 bfad_iocmd_tfru_write fndecl 0 17162 NULL
154968 +enable_so_unmap_region_fndecl_17166 unmap_region fndecl 1 17166 NULL nohasharray
154969 +enable_so_len_read_buffer_17166 len read_buffer 0 17166 &enable_so_unmap_region_fndecl_17166
154970 +enable_so_x86_clflush_size_cpuinfo_x86_17167 x86_clflush_size cpuinfo_x86 0 17167 NULL
154971 +enable_so_di_next_unlinked_xfs_dinode_17169 di_next_unlinked xfs_dinode 0 17169 NULL
154972 +enable_so_mcp251x_hw_tx_frame_fndecl_17170 mcp251x_hw_tx_frame fndecl 3 17170 NULL
154973 +enable_so_skb_copy_expand_fndecl_17174 skb_copy_expand fndecl 2 17174 NULL nohasharray
154974 +enable_so_acpi_ex_allocate_name_string_fndecl_17174 acpi_ex_allocate_name_string fndecl 1-2 17174 &enable_so_skb_copy_expand_fndecl_17174
154975 +enable_so_mtu_vnic_enet_config_17176 mtu vnic_enet_config 0 17176 NULL nohasharray
154976 +enable_so_ip_options_get_finish_fndecl_17176 ip_options_get_finish fndecl 4 17176 &enable_so_mtu_vnic_enet_config_17176
154977 +enable_so_start_block_swap_extent_17179 start_block swap_extent 0 17179 NULL nohasharray
154978 +enable_so_bfad_iocmd_qos_get_stats_fndecl_17179 bfad_iocmd_qos_get_stats fndecl 0 17179 &enable_so_start_block_swap_extent_17179
154979 +enable_so_offset_rbuf_info_17181 offset rbuf_info 0 17181 NULL
154980 +enable_so_luma_size_s5p_mfc_ctx_17182 luma_size s5p_mfc_ctx 0 17182 NULL
154981 +enable_so_pci_raw_set_power_state_fndecl_17186 pci_raw_set_power_state fndecl 0 17186 NULL
154982 +enable_so_sys_pread64_fndecl_17210 sys_pread64 fndecl 3 17210 NULL
154983 +enable_so_type_to_neq_fw_pfvf_cmd_17213 type_to_neq fw_pfvf_cmd 0 17213 NULL
154984 +enable_so_logical_blk_num_osst_tape_17216 logical_blk_num osst_tape 0 17216 NULL
154985 +enable_so_ud_clear_fndecl_17219 ud_clear fndecl 6-4-5-3 17219 NULL nohasharray
154986 +enable_so_srp_map_finish_fmr_fndecl_17219 srp_map_finish_fmr fndecl 0 17219 &enable_so_ud_clear_fndecl_17219
154987 +enable_so_iwl_dbgfs_bt_cmd_read_fndecl_17225 iwl_dbgfs_bt_cmd_read fndecl 3 17225 NULL
154988 +enable_so_eth_type_trans_fndecl_17226 eth_type_trans fndecl 0 17226 NULL
154989 +enable_so_vsync_start_drm_display_mode_17229 vsync_start drm_display_mode 0 17229 NULL
154990 +enable_so_ioread32be_fndecl_17230 ioread32be fndecl 0 17230 NULL
154991 +enable_so___btrfs_add_ordered_extent_fndecl_17234 __btrfs_add_ordered_extent fndecl 4-2-5-3 17234 NULL
154992 +enable_so_vxge_device_register_fndecl_17243 vxge_device_register fndecl 4 17243 NULL nohasharray
154993 +enable_so_alloc_isa_irq_from_domain_fndecl_17243 alloc_isa_irq_from_domain fndecl 2 17243 &enable_so_vxge_device_register_fndecl_17243
154994 +enable_so_relocated_ramdisk_vardecl_17246 relocated_ramdisk vardecl 0 17246 NULL
154995 +enable_so_get_pdptr_kvm_mmu_17247 get_pdptr kvm_mmu 0 17247 NULL
154996 +enable_so_count_acpi_object_package_17250 count acpi_object_package 0 17250 NULL
154997 +enable_so_diva_os_copy_from_user_fndecl_17251 diva_os_copy_from_user fndecl 4 17251 NULL
154998 +enable_so_htc_proc_trailer_fndecl_17252 htc_proc_trailer fndecl 3 17252 NULL nohasharray
154999 +enable_so_len_spi_ioc_transfer_17252 len spi_ioc_transfer 0 17252 &enable_so_htc_proc_trailer_fndecl_17252
155000 +enable_so_bm_resync_fo_drbd_device_17253 bm_resync_fo drbd_device 0 17253 NULL nohasharray
155001 +enable_so_LastFreeEUN_INFTLrecord_17253 LastFreeEUN INFTLrecord 0 17253 &enable_so_bm_resync_fo_drbd_device_17253
155002 +enable_so_sctp_v6_err_fndecl_17257 sctp_v6_err fndecl 5-6 17257 NULL nohasharray
155003 +enable_so_num_vfs_be_adapter_17257 num_vfs be_adapter 0 17257 &enable_so_sctp_v6_err_fndecl_17257
155004 +enable_so_tegra_spi_start_transfer_one_fndecl_17260 tegra_spi_start_transfer_one fndecl 0 17260 NULL
155005 +enable_so_page_to_skb_fndecl_17261 page_to_skb fndecl 5-4-6 17261 NULL
155006 +enable_so_line_uart_port_17263 line uart_port 0 17263 NULL
155007 +enable_so_fat_sec_per_clus_fat_bios_param_block_17264 fat_sec_per_clus fat_bios_param_block 0 17264 NULL
155008 +enable_so_subpgsize_vardecl_subpagetest_c_17265 subpgsize vardecl_subpagetest.c 0 17265 NULL
155009 +enable_so_rbd_img_obj_parent_read_full_fndecl_17267 rbd_img_obj_parent_read_full fndecl 0 17267 NULL nohasharray
155010 +enable_so_alloc_candev_fndecl_17267 alloc_candev fndecl 2-1 17267 &enable_so_rbd_img_obj_parent_read_full_fndecl_17267
155011 +enable_so_bnx2_rx_skb_fndecl_17272 bnx2_rx_skb fndecl 5-4 17272 NULL nohasharray
155012 +enable_so_dfs_global_file_read_fndecl_17272 dfs_global_file_read fndecl 3 17272 &enable_so_bnx2_rx_skb_fndecl_17272 nohasharray
155013 +enable_so_offs_nand_bbt_descr_17272 offs nand_bbt_descr 0 17272 &enable_so_dfs_global_file_read_fndecl_17272
155014 +enable_so_w_stk_size_17273 w stk_size 0 17273 NULL nohasharray
155015 +enable_so_size_msdos_dir_entry_17273 size msdos_dir_entry 0 17273 &enable_so_w_stk_size_17273
155016 +enable_so_bnx2_nvram_write_fndecl_17277 bnx2_nvram_write fndecl 2-4 17277 NULL
155017 +enable_so_seq_buf_alloc_fndecl_17287 seq_buf_alloc fndecl 1 17287 NULL
155018 +enable_so_desired_speed_ide_drive_s_17293 desired_speed ide_drive_s 0 17293 NULL
155019 +enable_so_rtl8821ae_c2h_packet_handler_fndecl_17297 rtl8821ae_c2h_packet_handler fndecl 3 17297 NULL
155020 +enable_so_sup_segnum_nilfs_suinfo_update_17298 sup_segnum nilfs_suinfo_update 0 17298 NULL
155021 +enable_so_div_round_integer_fndecl_17300 div_round_integer fndecl 0-2-1 17300 NULL
155022 +enable_so_read_reg_sja1000_priv_17306 read_reg sja1000_priv 0 17306 NULL
155023 +enable_so_bytes_per_scan_line_vbe_mode_ib_17308 bytes_per_scan_line vbe_mode_ib 0 17308 NULL
155024 +enable_so_dlen_isdn_ppp_resetparams_17312 dlen isdn_ppp_resetparams 0 17312 NULL
155025 +enable_so_cfs_trace_dump_debug_buffer_usrstr_fndecl_17318 cfs_trace_dump_debug_buffer_usrstr fndecl 2 17318 NULL
155026 +enable_so_rpcrdma_create_chunks_fndecl_17322 rpcrdma_create_chunks fndecl 0 17322 NULL
155027 +enable_so___add_pages_fndecl_17323 __add_pages fndecl 3 17323 NULL
155028 +enable_so_top_mthca_alloc_17324 top mthca_alloc 0 17324 NULL nohasharray
155029 +enable_so_fw_memory_size_qla_hw_data_17324 fw_memory_size qla_hw_data 0 17324 &enable_so_top_mthca_alloc_17324
155030 +enable_so_blockmask_sddr09_card_info_17325 blockmask sddr09_card_info 0 17325 NULL
155031 +enable_so_mru_ipw_network_17329 mru ipw_network 0 17329 NULL
155032 +enable_so_reserved_eqs_mlx4_caps_17333 reserved_eqs mlx4_caps 0 17333 NULL
155033 +enable_so_freeblk_xfs_da_geometry_17334 freeblk xfs_da_geometry 0 17334 NULL
155034 +enable_so_dev_count_kvm_io_bus_17340 dev_count kvm_io_bus 0 17340 NULL
155035 +enable_so_MaxBuses__MSG_IOC_FACTS_REPLY_17350 MaxBuses _MSG_IOC_FACTS_REPLY 0 17350 NULL
155036 +enable_so_dvb_dmxdev_read_sec_fndecl_17351 dvb_dmxdev_read_sec fndecl 4 17351 NULL
155037 +enable_so_xfs_trans_get_efi_fndecl_17353 xfs_trans_get_efi fndecl 2 17353 NULL nohasharray
155038 +enable_so_audio_buf_size_f_uac1_opts_17353 audio_buf_size f_uac1_opts 0 17353 &enable_so_xfs_trans_get_efi_fndecl_17353
155039 +enable_so_tipc_alloc_entry_fndecl_17360 tipc_alloc_entry fndecl 2 17360 NULL
155040 +enable_so_udf_tgetblk_fndecl_17362 udf_tgetblk fndecl 2 17362 NULL nohasharray
155041 +enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362
155042 +enable_so_fdt_translate_one_fndecl_17363 fdt_translate_one fndecl 2 17363 NULL
155043 +enable_so_config_desc_fndecl_17365 config_desc fndecl 0 17365 NULL
155044 +enable_so_extra_inflate_state_17367 extra inflate_state 0 17367 NULL
155045 +enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nilfs_sufile_mark_dirty fndecl 2 17370 NULL nohasharray
155046 +enable_so_pn533_set_configuration_fndecl_17370 pn533_set_configuration fndecl 4 17370 &enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nohasharray
155047 +enable_so_num_txd_qlcnic_adapter_17370 num_txd qlcnic_adapter 0 17370 &enable_so_pn533_set_configuration_fndecl_17370
155048 +enable_so_name_len_vardecl_initramfs_c_17373 name_len vardecl_initramfs.c 0 17373 NULL
155049 +enable_so_acl_len_nfs_getaclargs_17378 acl_len nfs_getaclargs 0 17378 NULL
155050 +enable_so_vram_total_vardecl_uvesafb_c_17381 vram_total vardecl_uvesafb.c 0 17381 NULL
155051 +enable_so_scatt_size_eata_info_17383 scatt_size eata_info 0 17383 NULL
155052 +enable_so_hw_hdr_len_cardstate_17385 hw_hdr_len cardstate 0 17385 NULL
155053 +enable_so_ata_read_log_page_fndecl_17386 ata_read_log_page fndecl 5 17386 NULL
155054 +enable_so_f_hidg_write_fndecl_17391 f_hidg_write fndecl 3 17391 NULL
155055 +enable_so_raw_issuer_size_pkcs7_parse_context_17399 raw_issuer_size pkcs7_parse_context 0 17399 NULL
155056 +enable_so_lines_ak881x_17403 lines ak881x 0 17403 NULL
155057 +enable_so_snd_hda_create_spdif_in_ctls_fndecl_17414 snd_hda_create_spdif_in_ctls fndecl 2 17414 NULL
155058 +enable_so_posix_acl_fix_xattr_userns_fndecl_17415 posix_acl_fix_xattr_userns fndecl 4 17415 NULL
155059 +enable_so_dlm_master_lookup_fndecl_17417 dlm_master_lookup fndecl 4 17417 NULL
155060 +enable_so_ufx_setup_modes_fndecl_17419 ufx_setup_modes fndecl 4 17419 NULL
155061 +enable_so_l2up_create_fndecl_17421 l2up_create fndecl 3 17421 NULL
155062 +enable_so_keys_jset_17429 keys jset 0 17429 NULL
155063 +enable_so_btrfs_cmp_data_prepare_fndecl_17436 btrfs_cmp_data_prepare fndecl 5 17436 NULL
155064 +enable_so_gsmld_receive_buf_fndecl_17440 gsmld_receive_buf fndecl 4 17440 NULL
155065 +enable_so_dd_fcvport_size_fc_function_template_17449 dd_fcvport_size fc_function_template 0 17449 NULL
155066 +enable_so_reply_size_ncp_server_17456 reply_size ncp_server 0 17456 NULL
155067 +enable_so_bufsz_kexec_segment_17458 bufsz kexec_segment 0 17458 NULL
155068 +enable_so___alloc_bootmem_node_nopanic_fndecl_17459 __alloc_bootmem_node_nopanic fndecl 3-2-4 17459 NULL
155069 +enable_so_bits_bgpio_chip_17461 bits bgpio_chip 0 17461 NULL
155070 +enable_so_custom_sig_size_s3fwrn5_fw_image_17467 custom_sig_size s3fwrn5_fw_image 0 17467 NULL nohasharray
155071 +enable_so_t4_cfg_pfvf_fndecl_17467 t4_cfg_pfvf fndecl 8-7-13-10-9-5-12-11-6-15-14 17467 &enable_so_custom_sig_size_s3fwrn5_fw_image_17467
155072 +enable_so_cipso_v4_map_lvl_hton_fndecl_17481 cipso_v4_map_lvl_hton fndecl 0 17481 NULL
155073 +enable_so_sddr09_write_inplace_fndecl_17484 sddr09_write_inplace fndecl 4-3-6 17484 NULL nohasharray
155074 +enable_so_replace_fd_fndecl_17484 replace_fd fndecl 1 17484 &enable_so_sddr09_write_inplace_fndecl_17484
155075 +enable_so_e_block_mb_cache_entry_17485 e_block mb_cache_entry 0 17485 NULL
155076 +enable_so_mlx4_ib_reg_user_mr_fndecl_17492 mlx4_ib_reg_user_mr fndecl 2-3 17492 NULL
155077 +enable_so_qp_memcpy_from_queue_fndecl_17500 qp_memcpy_from_queue fndecl 5-4 17500 NULL
155078 +enable_so_user_buffer_offset_binder_proc_17508 user_buffer_offset binder_proc 0 17508 NULL
155079 +enable_so_invalidate_fndecl_17509 invalidate fndecl 4-3 17509 NULL
155080 +enable_so_brcmf_fil_iovar_data_set_fndecl_17512 brcmf_fil_iovar_data_set fndecl 4 17512 NULL
155081 +enable_so_read_dst_fndecl_17513 read_dst fndecl 3 17513 NULL nohasharray
155082 +enable_so_npages_free_dma_pool_17513 npages_free dma_pool 0 17513 &enable_so_read_dst_fndecl_17513
155083 +enable_so_dvb_dmxdev_init_fndecl_17523 dvb_dmxdev_init fndecl 0 17523 NULL
155084 +enable_so_id_rtsx_pcr_17526 id rtsx_pcr 0 17526 NULL
155085 +enable_so_ext4_iget_fndecl_17527 ext4_iget fndecl 2 17527 NULL
155086 +enable_so_mei_read_fndecl_17528 mei_read fndecl 3 17528 NULL
155087 +enable_so_max3421_urb_dequeue_fndecl_17530 max3421_urb_dequeue fndecl 3 17530 NULL
155088 +enable_so_offset_icmp_bxm_17531 offset icmp_bxm 0 17531 NULL
155089 +enable_so_start_nilfs_write_info_17534 start nilfs_write_info 0 17534 NULL
155090 +enable_so_next_romfs_inode_17535 next romfs_inode 0 17535 NULL
155091 +enable_so_encode_nfspath3_fndecl_17536 encode_nfspath3 fndecl 3 17536 NULL nohasharray
155092 +enable_so_rndis_set_oid_fndecl_17536 rndis_set_oid fndecl 4 17536 &enable_so_encode_nfspath3_fndecl_17536
155093 +enable_so_how_many_channels_fndecl_17540 how_many_channels fndecl 0 17540 NULL
155094 +enable_so_wdm_read_fndecl_17542 wdm_read fndecl 3 17542 NULL
155095 +enable_so_fb_alloc_cmap_fndecl_17545 fb_alloc_cmap fndecl 2 17545 NULL
155096 +enable_so_root_cluster_msdos_sb_info_17547 root_cluster msdos_sb_info 0 17547 NULL
155097 +enable_so_mlx4_en_rx_skb_fndecl_17554 mlx4_en_rx_skb fndecl 4 17554 NULL
155098 +enable_so_mchip_comp_read_frame_fndecl_17555 mchip_comp_read_frame fndecl 0-1 17555 NULL
155099 +enable_so_ufs_truncate_fndecl_17556 ufs_truncate fndecl 2 17556 NULL
155100 +enable_so_channels_cardstate_17560 channels cardstate 0 17560 NULL
155101 +enable_so_qcaspi_read_legacy_fndecl_17563 qcaspi_read_legacy fndecl 3 17563 NULL
155102 +enable_so_lcd_vsync_len_atyfb_par_17565 lcd_vsync_len atyfb_par 0 17565 NULL
155103 +enable_so_stack_size_ahd_softc_17574 stack_size ahd_softc 0 17574 NULL
155104 +enable_so_wMaxPacketSize_usb_rpipe_descriptor_17578 wMaxPacketSize usb_rpipe_descriptor 0 17578 NULL
155105 +enable_so_sb_fs_size_hpfs_sb_info_17581 sb_fs_size hpfs_sb_info 0 17581 NULL
155106 +enable_so_SyS_semtimedop_fndecl_17584 SyS_semtimedop fndecl 3 17584 NULL
155107 +enable_so_opcode_mmc_command_17586 opcode mmc_command 0 17586 NULL
155108 +enable_so_bfad_iocmd_itnim_get_iostats_fndecl_17592 bfad_iocmd_itnim_get_iostats fndecl 0 17592 NULL
155109 +enable_so_fdt_delprop_fndecl_17595 fdt_delprop fndecl 2 17595 NULL
155110 +enable_so_reg_bytes_regmap_format_17598 reg_bytes regmap_format 0 17598 NULL
155111 +enable_so_disk_num_bytes_btrfs_file_extent_item_17599 disk_num_bytes btrfs_file_extent_item 0 17599 NULL
155112 +enable_so_qlf_len_xfs_dq_logformat_17603 qlf_len xfs_dq_logformat 0 17603 NULL nohasharray
155113 +enable_so_ent_bread_fatent_operations_17603 ent_bread fatent_operations 0 17603 &enable_so_qlf_len_xfs_dq_logformat_17603
155114 +enable_so_isoc_ep_stk_camera_17604 isoc_ep stk_camera 0 17604 NULL
155115 +enable_so_tl_retry_count_srp_target_port_17624 tl_retry_count srp_target_port 0 17624 NULL
155116 +enable_so_min_alloc_order_gen_pool_17628 min_alloc_order gen_pool 0 17628 NULL
155117 +enable_so_ctxts_extrabuf_qib_devdata_17634 ctxts_extrabuf qib_devdata 0 17634 NULL
155118 +enable_so_video_linelength_sis_video_info_17642 video_linelength sis_video_info 0 17642 NULL
155119 +enable_so_wl12xx_sdio_raw_read_fndecl_17648 wl12xx_sdio_raw_read fndecl 4 17648 NULL
155120 +enable_so_buf_len_ceph_none_authorizer_17652 buf_len ceph_none_authorizer 0 17652 NULL nohasharray
155121 +enable_so_dvb_dmx_init_fndecl_17652 dvb_dmx_init fndecl 0 17652 &enable_so_buf_len_ceph_none_authorizer_17652
155122 +enable_so_size_mem_array_17655 size mem_array 0 17655 NULL
155123 +enable_so_snd_wscale_tcp_options_received_17658 snd_wscale tcp_options_received 0 17658 NULL
155124 +enable_so_size_scsi_host_sg_pool_17661 size scsi_host_sg_pool 0 17661 NULL nohasharray
155125 +enable_so_batadv_tt_add_temporary_global_entry_fndecl_17661 batadv_tt_add_temporary_global_entry fndecl 4 17661 &enable_so_size_scsi_host_sg_pool_17661
155126 +enable_so_stereo_cmipci_sb_reg_17667 stereo cmipci_sb_reg 0 17667 NULL
155127 +enable_so_maybe_insert_hole_fndecl_17668 maybe_insert_hole fndecl 4-3 17668 NULL
155128 +enable_so_f2fs_update_extent_cache_range_fndecl_17671 f2fs_update_extent_cache_range fndecl 4-2-3 17671 NULL
155129 +enable_so_vdma_mem_alloc_fndecl_17672 vdma_mem_alloc fndecl 1 17672 NULL
155130 +enable_so_wl1251_cmd_template_set_fndecl_17679 wl1251_cmd_template_set fndecl 4 17679 NULL
155131 +enable_so_iwl_dbgfs_tof_range_request_read_fndecl_17682 iwl_dbgfs_tof_range_request_read fndecl 3 17682 NULL
155132 +enable_so_memory_block_size_probed_vardecl_init_64_c_17683 memory_block_size_probed vardecl_init_64.c 0 17683 NULL nohasharray
155133 +enable_so_whci_capdata_quirks_fndecl_17683 whci_capdata_quirks fndecl 0-2 17683 &enable_so_memory_block_size_probed_vardecl_init_64_c_17683
155134 +enable_so_iov_misc_count_iscsi_cmd_17684 iov_misc_count iscsi_cmd 0 17684 NULL nohasharray
155135 +enable_so_NFTL_formatblock_fndecl_17684 NFTL_formatblock fndecl 2 17684 &enable_so_iov_misc_count_iscsi_cmd_17684
155136 +enable_so_private_data_size_mpa_message_17685 private_data_size mpa_message 0 17685 NULL
155137 +enable_so_maxfrsize_bfa_bsg_port_cfg_maxfrsize_s_17688 maxfrsize bfa_bsg_port_cfg_maxfrsize_s 0 17688 NULL
155138 +enable_so_ivtv_copy_buf_to_user_fndecl_17692 ivtv_copy_buf_to_user fndecl 4 17692 NULL
155139 +enable_so_opcfg_ofs_cyttsp4_sysinfo_ofs_17693 opcfg_ofs cyttsp4_sysinfo_ofs 0 17693 NULL
155140 +enable_so_bytes_left_ccp_sg_workarea_17701 bytes_left ccp_sg_workarea 0 17701 NULL
155141 +enable_so__snd_pcm_hw_param_max_fndecl_17702 _snd_pcm_hw_param_max fndecl 3 17702 NULL
155142 +enable_so_rx_dma_buf_sz_altera_tse_private_17708 rx_dma_buf_sz altera_tse_private 0 17708 NULL
155143 +enable_so_u132_urb_dequeue_fndecl_17714 u132_urb_dequeue fndecl 3 17714 NULL
155144 +enable_so_csio_wr_alloc_q_fndecl_17717 csio_wr_alloc_q fndecl 3-2-6 17717 NULL nohasharray
155145 +enable_so_SyS_setgroups_fndecl_17717 SyS_setgroups fndecl 1 17717 &enable_so_csio_wr_alloc_q_fndecl_17717
155146 +enable_so_rx_max_ring_bnx2_17721 rx_max_ring bnx2 0 17721 NULL
155147 +enable_so_r592_transfer_fifo_pio_fndecl_17724 r592_transfer_fifo_pio fndecl 0 17724 NULL nohasharray
155148 +enable_so_st21nfca_hci_probe_fndecl_17724 st21nfca_hci_probe fndecl 6-4 17724 &enable_so_r592_transfer_fifo_pio_fndecl_17724
155149 +enable_so_snd_efw_command_get_phys_meters_fndecl_17725 snd_efw_command_get_phys_meters fndecl 3 17725 NULL
155150 +enable_so_qp_host_get_user_memory_fndecl_17726 qp_host_get_user_memory fndecl 1-2 17726 NULL
155151 +enable_so_nilfs_cpfile_delete_checkpoint_fndecl_17728 nilfs_cpfile_delete_checkpoint fndecl 2 17728 NULL
155152 +enable_so_xdr_write_pages_fndecl_17729 xdr_write_pages fndecl 4-3 17729 NULL
155153 +enable_so_minor_video_device_17733 minor video_device 0 17733 NULL
155154 +enable_so_ios_per_ctrl_hba_parameters_17734 ios_per_ctrl hba_parameters 0 17734 NULL
155155 +enable_so_mqueue_read_file_fndecl_17735 mqueue_read_file fndecl 3 17735 NULL
155156 +enable_so_f_hidg_read_fndecl_17741 f_hidg_read fndecl 3 17741 NULL
155157 +enable_so_num_desc_blocks_fndecl_17744 num_desc_blocks fndecl 0-2 17744 NULL
155158 +enable_so_set_le_ih_k_offset_fndecl_17745 set_le_ih_k_offset fndecl 2 17745 NULL
155159 +enable_so_pkg_len_hanwang_features_17749 pkg_len hanwang_features 0 17749 NULL nohasharray
155160 +enable_so_sock_no_sendpage_fndecl_17749 sock_no_sendpage fndecl 0-4 17749 &enable_so_pkg_len_hanwang_features_17749
155161 +enable_so_sector_size_scsi_device_17750 sector_size scsi_device 0 17750 NULL
155162 +enable_so_cmd_per_lun_Scsi_Host_17757 cmd_per_lun Scsi_Host 0 17757 NULL
155163 +enable_so_g_token_size_fndecl_17759 g_token_size fndecl 0-2 17759 NULL nohasharray
155164 +enable_so_actual_length_spi_message_17759 actual_length spi_message 0 17759 &enable_so_g_token_size_fndecl_17759
155165 +enable_so_max_queues_fm10k_mac_info_17760 max_queues fm10k_mac_info 0 17760 NULL
155166 +enable_so_read_hwrng_17766 read hwrng 0 17766 NULL
155167 +enable_so_of_gpio_count_fndecl_17773 of_gpio_count fndecl 0 17773 NULL
155168 +enable_so_fbcon_prepare_logo_fndecl_17781 fbcon_prepare_logo fndecl 4-5 17781 NULL
155169 +enable_so___e820_update_range_fndecl_17791 __e820_update_range fndecl 2-3 17791 NULL
155170 +enable_so_usX2Y_audio_stream_new_fndecl_17792 usX2Y_audio_stream_new fndecl 2-3 17792 NULL nohasharray
155171 +enable_so_db_to_fdb_xfs_dir_ops_17792 db_to_fdb xfs_dir_ops 0 17792 &enable_so_usX2Y_audio_stream_new_fndecl_17792
155172 +enable_so_nf_nat_ipv6_manip_pkt_fndecl_17794 nf_nat_ipv6_manip_pkt fndecl 2 17794 NULL
155173 +enable_so_number_of_blocks_ms_boot_attr_info_17802 number_of_blocks ms_boot_attr_info 0 17802 NULL
155174 +enable_so_read_cam_control_dvb_ca_en50221_17812 read_cam_control dvb_ca_en50221 0 17812 NULL
155175 +enable_so_sr_read_cd_fndecl_17813 sr_read_cd fndecl 5 17813 NULL
155176 +enable_so_list_size_acpi_pnp_device_id_list_17814 list_size acpi_pnp_device_id_list 0 17814 NULL
155177 +enable_so_b_page_count_xfs_buf_17815 b_page_count xfs_buf 0 17815 NULL nohasharray
155178 +enable_so_acpi_unregister_gsi_ioapic_fndecl_17815 acpi_unregister_gsi_ioapic fndecl 1 17815 &enable_so_b_page_count_xfs_buf_17815
155179 +enable_so_posix_acl_fix_xattr_to_user_fndecl_17816 posix_acl_fix_xattr_to_user fndecl 2 17816 NULL
155180 +enable_so_snd_hda_override_conn_list_fndecl_17817 snd_hda_override_conn_list fndecl 3 17817 NULL nohasharray
155181 +enable_so_xenbus_file_write_fndecl_17817 xenbus_file_write fndecl 3 17817 &enable_so_snd_hda_override_conn_list_fndecl_17817
155182 +enable_so_tx_tx_start_null_frame_read_fndecl_17818 tx_tx_start_null_frame_read fndecl 3 17818 NULL
155183 +enable_so_i_blkbits_inode_17823 i_blkbits inode 0 17823 NULL
155184 +enable_so_tipc_recvmsg_fndecl_17825 tipc_recvmsg fndecl 3 17825 NULL
155185 +enable_so_SyS_mincore_fndecl_17834 SyS_mincore fndecl 1-2 17834 NULL
155186 +enable_so_max_sgl_entries_vardecl_mpt2sas_base_c_17839 max_sgl_entries vardecl_mpt2sas_base.c 0 17839 NULL
155187 +enable_so_qlcnic_sriov_alloc_bc_msg_fndecl_17846 qlcnic_sriov_alloc_bc_msg fndecl 2 17846 NULL
155188 +enable_so_mid_get_vbt_data_r10_fndecl_17847 mid_get_vbt_data_r10 fndecl 2 17847 NULL
155189 +enable_so_xenvif_count_requests_fndecl_17849 xenvif_count_requests fndecl 0 17849 NULL
155190 +enable_so_cifs_lockv_fndecl_17853 cifs_lockv fndecl 6-5 17853 NULL
155191 +enable_so_discard_alignment_queue_limits_17856 discard_alignment queue_limits 0 17856 NULL
155192 +enable_so_preferred_minor_md_rdev_17857 preferred_minor md_rdev 0 17857 NULL
155193 +enable_so_mei_dbgfs_read_devstate_fndecl_17859 mei_dbgfs_read_devstate fndecl 3 17859 NULL
155194 +enable_so_current_table_count_acpi_table_list_17862 current_table_count acpi_table_list 0 17862 NULL
155195 +enable_so_bip_vcnt_bio_integrity_payload_17865 bip_vcnt bio_integrity_payload 0 17865 NULL
155196 +enable_so_len_hfi1_cmd_17873 len hfi1_cmd 0 17873 NULL
155197 +enable_so_fuse_get_req_for_background_fndecl_17874 fuse_get_req_for_background fndecl 2 17874 NULL nohasharray
155198 +enable_so_used_ebs_ubi_fm_volhdr_17874 used_ebs ubi_fm_volhdr 0 17874 &enable_so_fuse_get_req_for_background_fndecl_17874 nohasharray
155199 +enable_so_secondary_tail_adu_device_17874 secondary_tail adu_device 0 17874 &enable_so_used_ebs_ubi_fm_volhdr_17874
155200 +enable_so_ucs2_strnlen_fndecl_17877 ucs2_strnlen fndecl 0 17877 NULL
155201 +enable_so_max_pkt_size_au0828_usb_isoc_ctl_17891 max_pkt_size au0828_usb_isoc_ctl 0 17891 NULL
155202 +enable_so_del_ba_param_set_host_cmd_ds_11n_delba_17899 del_ba_param_set host_cmd_ds_11n_delba 0 17899 NULL
155203 +enable_so_s_firstinodezone_sysv_sb_info_17901 s_firstinodezone sysv_sb_info 0 17901 NULL
155204 +enable_so_used_aead_ctx_17910 used aead_ctx 0 17910 NULL
155205 +enable_so_leb_start_ubifs_info_17911 leb_start ubifs_info 0 17911 NULL nohasharray
155206 +enable_so_arch_gnttab_valloc_fndecl_17911 arch_gnttab_valloc fndecl 2 17911 &enable_so_leb_start_ubifs_info_17911
155207 +enable_so_fd_size_fip_size_desc_17912 fd_size fip_size_desc 0 17912 NULL nohasharray
155208 +enable_so_msb_write_block_fndecl_17912 msb_write_block fndecl 0-5-2-3 17912 &enable_so_fd_size_fip_size_desc_17912
155209 +enable_so_osd_req_read_sg_kern_fndecl_17913 osd_req_read_sg_kern fndecl 5 17913 NULL nohasharray
155210 +enable_so_sync_fence_alloc_fndecl_17913 sync_fence_alloc fndecl 1 17913 &enable_so_osd_req_read_sg_kern_fndecl_17913
155211 +enable_so_sg_pcopy_to_buffer_fndecl_17914 sg_pcopy_to_buffer fndecl 5-4 17914 NULL
155212 +enable_so_translate_compat_table_fndecl_17917 translate_compat_table fndecl 7 17917 NULL
155213 +enable_so_ipath_verbs_send_dma_fndecl_17922 ipath_verbs_send_dma fndecl 6 17922 NULL
155214 +enable_so_br_blockcount_xfs_bmbt_irec_17931 br_blockcount xfs_bmbt_irec 0 17931 NULL
155215 +enable_so___kfifo_dma_in_finish_r_fndecl_17938 __kfifo_dma_in_finish_r fndecl 3-2 17938 NULL
155216 +enable_so_mmio_base_sis_video_info_17941 mmio_base sis_video_info 0 17941 NULL
155217 +enable_so___vxge_hw_mempool_create_fndecl_17944 __vxge_hw_mempool_create fndecl 3-2-6-4 17944 NULL
155218 +enable_so_rtl2830_regmap_read_fndecl_17947 rtl2830_regmap_read fndecl 3-5 17947 NULL
155219 +enable_so_vb2_internal_dqbuf_fndecl_17949 vb2_internal_dqbuf fndecl 0 17949 NULL nohasharray
155220 +enable_so_cache_do_downcall_fndecl_17949 cache_do_downcall fndecl 3 17949 &enable_so_vb2_internal_dqbuf_fndecl_17949
155221 +enable_so_ath6kl_wmi_data_sync_send_fndecl_17951 ath6kl_wmi_data_sync_send fndecl 4 17951 NULL
155222 +enable_so_videobuf_dma_init_kernel_fndecl_17952 videobuf_dma_init_kernel fndecl 3 17952 NULL
155223 +enable_so_dm_io_fndecl_17953 dm_io fndecl 0 17953 NULL nohasharray
155224 +enable_so_ieee80211_tx_radiotap_len_fndecl_17953 ieee80211_tx_radiotap_len fndecl 0 17953 &enable_so_dm_io_fndecl_17953
155225 +enable_so_pch_uart_hal_read_fndecl_17954 pch_uart_hal_read fndecl 0 17954 NULL
155226 +enable_so_n_special_skd_device_17960 n_special skd_device 0 17960 NULL
155227 +enable_so_pkt_align_netvsc_device_17961 pkt_align netvsc_device 0 17961 NULL nohasharray
155228 +enable_so_cydata_size_cyttsp4_sysinfo_ofs_17961 cydata_size cyttsp4_sysinfo_ofs 0 17961 &enable_so_pkt_align_netvsc_device_17961
155229 +enable_so_scan_async_group_fndecl_17964 scan_async_group fndecl 3 17964 NULL
155230 +enable_so_do_tee_fndecl_17969 do_tee fndecl 3 17969 NULL
155231 +enable_so_qsfp_cks_fndecl_17970 qsfp_cks fndecl 2-0 17970 NULL
155232 +enable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 4 17972 NULL
155233 +enable_so_qpn_mlx5_core_qp_17975 qpn mlx5_core_qp 0 17975 NULL
155234 +enable_so_length_ore_io_state_17977 length ore_io_state 0 17977 NULL
155235 +enable_so_nilfs_set_last_segment_fndecl_17983 nilfs_set_last_segment fndecl 2-4 17983 NULL
155236 +enable_so_data3_sisusb_command_17984 data3 sisusb_command 0 17984 NULL nohasharray
155237 +enable_so_pci_addr_of_pci_range_17984 pci_addr of_pci_range 0 17984 &enable_so_data3_sisusb_command_17984
155238 +enable_so_vector_msix_entry_17987 vector msix_entry 0 17987 NULL nohasharray
155239 +enable_so_count_mlxsw_pci_queue_17987 count mlxsw_pci_queue 0 17987 &enable_so_vector_msix_entry_17987
155240 +enable_so_channels_tiadc_device_17992 channels tiadc_device 0 17992 NULL
155241 +enable_so_fill_inquiry_response_fndecl_17994 fill_inquiry_response fndecl 3 17994 NULL
155242 +enable_so_cipso_v4_gentag_enum_fndecl_17997 cipso_v4_gentag_enum fndecl 0 17997 NULL
155243 +enable_so_get_context_size_fndecl_17999 get_context_size fndecl 0 17999 NULL
155244 +enable_so_order_per_bit_cma_18000 order_per_bit cma 0 18000 NULL
155245 +enable_so_target_xcopy_read_source_fndecl_18003 target_xcopy_read_source fndecl 5 18003 NULL
155246 +enable_so_size_aper_size_info_8_18012 size aper_size_info_8 0 18012 NULL nohasharray
155247 +enable_so_data_xfer_length_aac_srb_reply_18012 data_xfer_length aac_srb_reply 0 18012 &enable_so_size_aper_size_info_8_18012
155248 +enable_so_request_key_async_fndecl_18013 request_key_async fndecl 4 18013 NULL
155249 +enable_so_rx_frag_size_vardecl_be_main_c_18017 rx_frag_size vardecl_be_main.c 0 18017 NULL
155250 +enable_so_raid56_parity_recover_fndecl_18019 raid56_parity_recover fndecl 0-4 18019 NULL
155251 +enable_so_wimax_msg_fndecl_18021 wimax_msg fndecl 4 18021 NULL
155252 +enable_so_cmdlog_vardecl_ipw2200_c_18024 cmdlog vardecl_ipw2200.c 0 18024 NULL
155253 +enable_so_sl811h_urb_dequeue_fndecl_18025 sl811h_urb_dequeue fndecl 3 18025 NULL nohasharray
155254 +enable_so_condc_tomoyo_condition_18025 condc tomoyo_condition 0 18025 &enable_so_sl811h_urb_dequeue_fndecl_18025
155255 +enable_so_rawv6_recvmsg_fndecl_18026 rawv6_recvmsg fndecl 3 18026 NULL nohasharray
155256 +enable_so_ceph_kvmalloc_fndecl_18026 ceph_kvmalloc fndecl 1 18026 &enable_so_rawv6_recvmsg_fndecl_18026
155257 +enable_so_mq_msgsize_max_ipc_namespace_18027 mq_msgsize_max ipc_namespace 0 18027 NULL nohasharray
155258 +enable_so_fcoe_hmc_filt_num_i40e_pf_18027 fcoe_hmc_filt_num i40e_pf 0 18027 &enable_so_mq_msgsize_max_ipc_namespace_18027
155259 +enable_so_splice_read_file_operations_18028 splice_read file_operations 0 18028 NULL
155260 +enable_so_start_data_mm_struct_18029 start_data mm_struct 0 18029 NULL
155261 +enable_so_fip_dl_len_fip_header_18032 fip_dl_len fip_header 0 18032 NULL
155262 +enable_so_fi_ino_nilfs_finfo_18034 fi_ino nilfs_finfo 0 18034 NULL
155263 +enable_so_copy_items_fndecl_18039 copy_items fndecl 7 18039 NULL
155264 +enable_so_virtio_gpu_cmd_transfer_to_host_2d_fndecl_18040 virtio_gpu_cmd_transfer_to_host_2d fndecl 5-4 18040 NULL
155265 +enable_so_read_device_fndecl_18043 read_device fndecl 3 18043 NULL
155266 +enable_so_ld_usb_write_fndecl_18045 ld_usb_write fndecl 3 18045 NULL
155267 +enable_so_len_ib_ucm_private_data_18046 len ib_ucm_private_data 0 18046 NULL
155268 +enable_so_xfer_len_iscsi_seq_18047 xfer_len iscsi_seq 0 18047 NULL
155269 +enable_so_sctp_make_op_error_fndecl_18050 sctp_make_op_error fndecl 5-6 18050 NULL
155270 +enable_so_ts_packet_size_cx23885_tsport_18052 ts_packet_size cx23885_tsport 0 18052 NULL
155271 +enable_so_rmsg_pgcnt_hv_netvsc_packet_18054 rmsg_pgcnt hv_netvsc_packet 0 18054 NULL
155272 +enable_so_sll_halen_sockaddr_ll_18063 sll_halen sockaddr_ll 0 18063 NULL
155273 +enable_so_ipath_get_base_info_fndecl_18064 ipath_get_base_info fndecl 3 18064 NULL
155274 +enable_so_beacon_interval_read_fndecl_18080 beacon_interval_read fndecl 3 18080 NULL
155275 +enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083 req_ie_len brcmf_cfg80211_connect_info 0 18083 NULL nohasharray
155276 +enable_so_add_wpa_key_fndecl_18083 add_wpa_key fndecl 3 18083 &enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083
155277 +enable_so__osdv2_req_encode_common_fndecl_18086 _osdv2_req_encode_common fndecl 2 18086 NULL
155278 +enable_so_bits_per_pixel_drm_framebuffer_18087 bits_per_pixel drm_framebuffer 0 18087 NULL
155279 +enable_so_di_nextents_xfs_icdinode_18090 di_nextents xfs_icdinode 0 18090 NULL
155280 +enable_so_bfad_iocmd_ioc_fw_sig_inv_fndecl_18091 bfad_iocmd_ioc_fw_sig_inv fndecl 0 18091 NULL
155281 +enable_so_inode2sd_fndecl_18094 inode2sd fndecl 3 18094 NULL
155282 +enable_so_thermal_irq_thr_high_read_fndecl_18102 thermal_irq_thr_high_read fndecl 3 18102 NULL
155283 +enable_so_do_async_mmap_readahead_fndecl_18112 do_async_mmap_readahead fndecl 5 18112 NULL nohasharray
155284 +enable_so_readcount_usblp_18112 readcount usblp 0 18112 &enable_so_do_async_mmap_readahead_fndecl_18112
155285 +enable_so_addr_width_fsl_edma_slave_config_18115 addr_width fsl_edma_slave_config 0 18115 NULL
155286 +enable_so_befs_read_datastream_fndecl_18116 befs_read_datastream fndecl 3 18116 NULL
155287 +enable_so_mod_len_ccp_ecc_engine_18119 mod_len ccp_ecc_engine 0 18119 NULL nohasharray
155288 +enable_so_index_vardecl_ali5451_c_18119 index vardecl_ali5451.c 0 18119 &enable_so_mod_len_ccp_ecc_engine_18119
155289 +enable_so_send_mpa_reject_fndecl_18124 send_mpa_reject fndecl 3 18124 NULL
155290 +enable_so_ring_prod_per_user_data_18125 ring_prod per_user_data 0 18125 NULL
155291 +enable_so_bnx2x_num_queues_vardecl_18126 bnx2x_num_queues vardecl 0 18126 NULL
155292 +enable_so_pipeline_enc_rx_stat_fifo_int_read_fndecl_18128 pipeline_enc_rx_stat_fifo_int_read fndecl 3 18128 NULL
155293 +enable_so_tlb_preload_count_gru_create_context_req_18130 tlb_preload_count gru_create_context_req 0 18130 NULL nohasharray
155294 +enable_so_reshape_request_fndecl_18130 reshape_request fndecl 2 18130 &enable_so_tlb_preload_count_gru_create_context_req_18130
155295 +enable_so_fs_start_hfs_sb_info_18132 fs_start hfs_sb_info 0 18132 NULL
155296 +enable_so_num_ddr_avs_mthca_av_table_18139 num_ddr_avs mthca_av_table 0 18139 NULL
155297 +enable_so_byte_cnt_rx_desc_18142 byte_cnt rx_desc 0 18142 NULL
155298 +enable_so_i_iget5_block_iso_inode_info_18143 i_iget5_block iso_inode_info 0 18143 NULL
155299 +enable_so_softback_in_vardecl_fbcon_c_18148 softback_in vardecl_fbcon.c 0 18148 NULL nohasharray
155300 +enable_so_mtu_net_device_18148 mtu net_device 0 18148 &enable_so_softback_in_vardecl_fbcon_c_18148
155301 +enable_so_read_word_onenand_chip_18150 read_word onenand_chip 0 18150 NULL
155302 +enable_so_bmv_length_getbmapx_18151 bmv_length getbmapx 0 18151 NULL
155303 +enable_so_nfs_dreq_bytes_left_fndecl_18154 nfs_dreq_bytes_left fndecl 0 18154 NULL
155304 +enable_so_acpi_rs_get_resource_source_fndecl_18168 acpi_rs_get_resource_source fndecl 0 18168 NULL
155305 +enable_so_qlcnic_enable_msix_fndecl_18171 qlcnic_enable_msix fndecl 2 18171 NULL
155306 +enable_so_iscsi_sw_tcp_pdu_init_fndecl_18173 iscsi_sw_tcp_pdu_init fndecl 3-2 18173 NULL
155307 +enable_so_num_gpu_pages_radeon_gart_18177 num_gpu_pages radeon_gart 0 18177 NULL
155308 +enable_so_ide_read_error_fndecl_18180 ide_read_error fndecl 0 18180 NULL nohasharray
155309 +enable_so_ocfs2_test_suballoc_bit_fndecl_18180 ocfs2_test_suballoc_bit fndecl 6-5-4 18180 &enable_so_ide_read_error_fndecl_18180 nohasharray
155310 +enable_so_process_rcvd_data_fndecl_18180 process_rcvd_data fndecl 3 18180 &enable_so_ocfs2_test_suballoc_bit_fndecl_18180
155311 +enable_so_offset_pktcdvd_device_18183 offset pktcdvd_device 0 18183 NULL
155312 +enable_so_aac_srcv_ioremap_fndecl_18192 aac_srcv_ioremap fndecl 2 18192 NULL
155313 +enable_so_natsemi_change_mtu_fndecl_18207 natsemi_change_mtu fndecl 2 18207 NULL
155314 +enable_so_sd_head_align_brcmfmac_sdio_platform_data_18210 sd_head_align brcmfmac_sdio_platform_data 0 18210 NULL
155315 +enable_so_ibmpex_query_sensor_count_fndecl_18214 ibmpex_query_sensor_count fndecl 0 18214 NULL nohasharray
155316 +enable_so_fw_size_intel_dmc_header_18214 fw_size intel_dmc_header 0 18214 &enable_so_ibmpex_query_sensor_count_fndecl_18214
155317 +enable_so_mpeg_read_fndecl_18215 mpeg_read fndecl 3 18215 NULL
155318 +enable_so___xfs_get_blocks_fndecl_18216 __xfs_get_blocks fndecl 2 18216 NULL
155319 +enable_so_check_clk_sync_fndecl_18222 check_clk_sync fndecl 2 18222 NULL
155320 +enable_so_xmit_cnt_mgsl_struct_18223 xmit_cnt mgsl_struct 0 18223 NULL
155321 +enable_so_ql_process_mac_rx_skb_fndecl_18226 ql_process_mac_rx_skb fndecl 5-4 18226 NULL
155322 +enable_so_rx_buf_size_bnx2_18228 rx_buf_size bnx2 0 18228 NULL
155323 +enable_so_ps_pspoll_max_apturn_read_fndecl_18232 ps_pspoll_max_apturn_read fndecl 3 18232 NULL
155324 +enable_so_nvkm_fifo_ctor_fndecl_18233 nvkm_fifo_ctor fndecl 4 18233 NULL
155325 +enable_so_btrfs_lookup_csums_range_fndecl_18235 btrfs_lookup_csums_range fndecl 3-2 18235 NULL
155326 +enable_so_vol_id_ubi_volume_18238 vol_id ubi_volume 0 18238 NULL
155327 +enable_so_ocfs2_insert_extent_fndecl_18242 ocfs2_insert_extent fndecl 4-3 18242 NULL
155328 +enable_so_payload_size_vmci_datagram_18243 payload_size vmci_datagram 0 18243 NULL
155329 +enable_so_next_free_transient_c_18248 next_free transient_c 0 18248 NULL
155330 +enable_so_vid_batadv_bla_claim_18249 vid batadv_bla_claim 0 18249 NULL nohasharray
155331 +enable_so_hfi1_reg_phys_mr_fndecl_18249 hfi1_reg_phys_mr fndecl 3 18249 &enable_so_vid_batadv_bla_claim_18249
155332 +enable_so_inet_recv_error_fndecl_18251 inet_recv_error fndecl 3 18251 NULL
155333 +enable_so_rxf_size_bdx_priv_18260 rxf_size bdx_priv 0 18260 NULL
155334 +enable_so_posix_acl_xattr_count_fndecl_18262 posix_acl_xattr_count fndecl 1-0 18262 NULL
155335 +enable_so_video_proc_write_fndecl_18263 video_proc_write fndecl 3 18263 NULL
155336 +enable_so_rds_rdma_pages_fndecl_18268 rds_rdma_pages fndecl 0 18268 NULL
155337 +enable_so_end_extent_state_18270 end extent_state 0 18270 NULL
155338 +enable_so_sfi_check_table_fndecl_18279 sfi_check_table fndecl 1 18279 NULL
155339 +enable_so__nfs4_get_security_label_fndecl_18285 _nfs4_get_security_label fndecl 3 18285 NULL
155340 +enable_so_tda18218_rd_regs_fndecl_18293 tda18218_rd_regs fndecl 4-2 18293 NULL
155341 +enable_so_i915_parse_cmds_fndecl_18295 i915_parse_cmds fndecl 4-5 18295 NULL
155342 +enable_so_index_sg_device_18304 index sg_device 0 18304 NULL
155343 +enable_so_ocfs2_calc_refcount_meta_credits_fndecl_18305 ocfs2_calc_refcount_meta_credits fndecl 5-4 18305 NULL
155344 +enable_so_essid_len_iw_scan_req_18306 essid_len iw_scan_req 0 18306 NULL
155345 +enable_so_add_pfn_range_mapped_fndecl_18307 add_pfn_range_mapped fndecl 2-1 18307 NULL
155346 +enable_so_twl4030_init_irq_fndecl_18308 twl4030_init_irq fndecl 0 18308 NULL
155347 +enable_so_do_kmem_cache_create_fndecl_18316 do_kmem_cache_create fndecl 3-4-2 18316 NULL
155348 +enable_so_zone_spanned_pages_in_node_fndecl_18320 zone_spanned_pages_in_node fndecl 0-3-4 18320 NULL
155349 +enable_so_ieee80211_if_read_fndecl_18322 ieee80211_if_read fndecl 3 18322 NULL
155350 +enable_so_iwl_dbgfs_channels_read_fndecl_18323 iwl_dbgfs_channels_read fndecl 3 18323 NULL nohasharray
155351 +enable_so_rpipes_wahc_18323 rpipes wahc 0 18323 &enable_so_iwl_dbgfs_channels_read_fndecl_18323
155352 +enable_so_e820_end_of_low_ram_pfn_fndecl_18324 e820_end_of_low_ram_pfn fndecl 0 18324 NULL
155353 +enable_so_bfad_iocmd_fcpim_throttle_set_fndecl_18326 bfad_iocmd_fcpim_throttle_set fndecl 0 18326 NULL nohasharray
155354 +enable_so_radeon_sa_bo_manager_init_fndecl_18326 radeon_sa_bo_manager_init fndecl 3 18326 &enable_so_bfad_iocmd_fcpim_throttle_set_fndecl_18326
155355 +enable_so_hdlcdrv_register_fndecl_18331 hdlcdrv_register fndecl 2 18331 NULL nohasharray
155356 +enable_so_lpfc_lun_queue_depth_vardecl_lpfc_attr_c_18331 lpfc_lun_queue_depth vardecl_lpfc_attr.c 0 18331 &enable_so_hdlcdrv_register_fndecl_18331
155357 +enable_so_tx_tx_done_data_read_fndecl_18332 tx_tx_done_data_read fndecl 3 18332 NULL nohasharray
155358 +enable_so_taps_oslec_state_18332 taps oslec_state 0 18332 &enable_so_tx_tx_done_data_read_fndecl_18332
155359 +enable_so_m_blockmask_xfs_mount_18334 m_blockmask xfs_mount 0 18334 NULL
155360 +enable_so_blk_alloc_flush_queue_fndecl_18340 blk_alloc_flush_queue fndecl 3 18340 NULL
155361 +enable_so_calc_pages_for_fndecl_18341 calc_pages_for fndecl 0-2-1 18341 NULL
155362 +enable_so_mon_bin_read_fndecl_18346 mon_bin_read fndecl 3 18346 NULL
155363 +enable_so_snd_cs4281_BA0_read_fndecl_18348 snd_cs4281_BA0_read fndecl 5 18348 NULL
155364 +enable_so_xfs_da_reada_buf_fndecl_18349 xfs_da_reada_buf fndecl 2 18349 NULL
155365 +enable_so_mb_cache_entry_insert_fndecl_18350 mb_cache_entry_insert fndecl 3 18350 NULL
155366 +enable_so_rfcomm_send_frame_fndecl_18352 rfcomm_send_frame fndecl 3 18352 NULL
155367 +enable_so_mgsl_load_tx_dma_buffer_fndecl_18355 mgsl_load_tx_dma_buffer fndecl 3 18355 NULL
155368 +enable_so_vm_pgoff_vm_area_struct_18357 vm_pgoff vm_area_struct 0 18357 NULL nohasharray
155369 +enable_so_elfnotes_sz_vardecl_vmcore_c_18357 elfnotes_sz vardecl_vmcore.c 0 18357 &enable_so_vm_pgoff_vm_area_struct_18357
155370 +enable_so_lbs_rdrf_write_fndecl_18361 lbs_rdrf_write fndecl 3 18361 NULL
155371 +enable_so_ascii2desc_fndecl_18370 ascii2desc fndecl 0-3 18370 NULL
155372 +enable_so_ecryptfs_write_lower_fndecl_18373 ecryptfs_write_lower fndecl 4 18373 NULL
155373 +enable_so_extent_write_locked_range_fndecl_18375 extent_write_locked_range fndecl 3-4 18375 NULL nohasharray
155374 +enable_so_perf_output_sample_ustack_fndecl_18375 perf_output_sample_ustack fndecl 2 18375 &enable_so_extent_write_locked_range_fndecl_18375
155375 +enable_so_len_btrfs_ordered_extent_18377 len btrfs_ordered_extent 0 18377 NULL
155376 +enable_so_n_bssids_wmi_start_scan_arg_18378 n_bssids wmi_start_scan_arg 0 18378 NULL
155377 +enable_so_rss_size_port_info_18379 rss_size port_info 0 18379 NULL
155378 +enable_so_o_width_fimc_frame_18380 o_width fimc_frame 0 18380 NULL nohasharray
155379 +enable_so_dio_complete_fndecl_18380 dio_complete fndecl 0-2-3 18380 &enable_so_o_width_fimc_frame_18380
155380 +enable_so_xfs_rtany_summary_fndecl_18384 xfs_rtany_summary fndecl 5-3 18384 NULL
155381 +enable_so_reply_payload_rcv_len_fc_bsg_reply_18392 reply_payload_rcv_len fc_bsg_reply 0 18392 NULL
155382 +enable_so_spc_modesense_blockdesc_fndecl_18397 spc_modesense_blockdesc fndecl 0 18397 NULL
155383 +enable_so_vid_batadv_bla_backbone_gw_18402 vid batadv_bla_backbone_gw 0 18402 NULL
155384 +enable_so_veth_change_mtu_fndecl_18405 veth_change_mtu fndecl 2 18405 NULL
155385 +enable_so_max_psize_uac2_rtd_params_18407 max_psize uac2_rtd_params 0 18407 NULL
155386 +enable_so_proc_sessionid_read_fndecl_18412 proc_sessionid_read fndecl 3 18412 NULL nohasharray
155387 +enable_so_acm_alloc_minor_fndecl_18412 acm_alloc_minor fndecl 0 18412 &enable_so_proc_sessionid_read_fndecl_18412
155388 +enable_so_bNrChannels_uac2_as_header_descriptor_18413 bNrChannels uac2_as_header_descriptor 0 18413 NULL
155389 +enable_so_ath6kl_wmi_ap_set_mlme_fndecl_18414 ath6kl_wmi_ap_set_mlme fndecl 2 18414 NULL
155390 +enable_so_CommandStatus__ErrorInfo_struct_18416 CommandStatus _ErrorInfo_struct 0 18416 NULL
155391 +enable_so_bpl_sh_vou_fmt_18422 bpl sh_vou_fmt 0 18422 NULL
155392 +enable_so_raw_seticmpfilter_fndecl_18427 raw_seticmpfilter fndecl 3 18427 NULL
155393 +enable_so_vlan_proto_vlan_dev_priv_18429 vlan_proto vlan_dev_priv 0 18429 NULL
155394 +enable_so_dlmfs_file_write_fndecl_18431 dlmfs_file_write fndecl 3 18431 NULL nohasharray
155395 +enable_so_hlen_hfi1_packet_18431 hlen hfi1_packet 0 18431 &enable_so_dlmfs_file_write_fndecl_18431
155396 +enable_so_fb_find_mode_fndecl_18438 fb_find_mode fndecl 7 18438 NULL
155397 +enable_so_device_pci_device_id_18441 device pci_device_id 0 18441 NULL
155398 +enable_so_recommended_prio_be_adapter_18442 recommended_prio be_adapter 0 18442 NULL
155399 +enable_so_count_iov_iter_18447 count iov_iter 0 18447 NULL
155400 +enable_so_data_len_hfa384x_tx_frame_18449 data_len hfa384x_tx_frame 0 18449 NULL nohasharray
155401 +enable_so_mp_tx_agg_buf_size_sdio_mmc_card_18449 mp_tx_agg_buf_size sdio_mmc_card 0 18449 &enable_so_data_len_hfa384x_tx_frame_18449
155402 +enable_so_copy_range_nfulnl_instance_18460 copy_range nfulnl_instance 0 18460 NULL nohasharray
155403 +enable_so_error_bar_retry_read_fndecl_18460 error_bar_retry_read fndecl 3 18460 &enable_so_copy_range_nfulnl_instance_18460
155404 +enable_so_get_next_ino_fndecl_18465 get_next_ino fndecl 0 18465 NULL
155405 +enable_so_bsize_jfs_sb_info_18477 bsize jfs_sb_info 0 18477 NULL
155406 +enable_so_xfs_free_extent_fndecl_18480 xfs_free_extent fndecl 2-3 18480 NULL
155407 +enable_so_exynos4_jpeg_get_stream_size_fndecl_18485 exynos4_jpeg_get_stream_size fndecl 0 18485 NULL nohasharray
155408 +enable_so_ring_buffer_size_netup_dma_18485 ring_buffer_size netup_dma 0 18485 &enable_so_exynos4_jpeg_get_stream_size_fndecl_18485
155409 +enable_so_mdata_ofsl_cyttsp4_sysinfo_data_18486 mdata_ofsl cyttsp4_sysinfo_data 0 18486 NULL
155410 +enable_so_mddev_find_fndecl_18492 mddev_find fndecl 1 18492 NULL
155411 +enable_so_xfs_efd_init_fndecl_18500 xfs_efd_init fndecl 3 18500 NULL
155412 +enable_so_sfi_map_table_fndecl_18501 sfi_map_table fndecl 1 18501 NULL
155413 +enable_so_wil_pmc_read_fndecl_18503 wil_pmc_read fndecl 3 18503 NULL
155414 +enable_so_vxfs_getfsh_fndecl_18506 vxfs_getfsh fndecl 2 18506 NULL
155415 +enable_so_kernfs_fop_write_fndecl_18508 kernfs_fop_write fndecl 3 18508 NULL
155416 +enable_so_chspc_adf4350_state_18514 chspc adf4350_state 0 18514 NULL
155417 +enable_so_scat_entries_hif_scatter_req_18522 scat_entries hif_scatter_req 0 18522 NULL nohasharray
155418 +enable_so_iwl_queue_init_fndecl_18522 iwl_queue_init fndecl 2 18522 &enable_so_scat_entries_hif_scatter_req_18522
155419 +enable_so_ttm_bo_init_fndecl_18524 ttm_bo_init fndecl 3 18524 NULL
155420 +enable_so_tty_write_fndecl_18533 tty_write fndecl 3 18533 NULL
155421 +enable_so_bfad_iocmd_fcpim_lunmask_query_fndecl_18536 bfad_iocmd_fcpim_lunmask_query fndecl 0 18536 NULL
155422 +enable_so_tomoyo_update_domain_fndecl_18537 tomoyo_update_domain fndecl 2 18537 NULL
155423 +enable_so_progress_kcopyd_job_18540 progress kcopyd_job 0 18540 NULL
155424 +enable_so_sect_floppy_struct_18543 sect floppy_struct 0 18543 NULL
155425 +enable_so_ubi_leb_write_fndecl_18549 ubi_leb_write fndecl 5-4 18549 NULL
155426 +enable_so_xfs_efi_init_fndecl_18551 xfs_efi_init fndecl 2 18551 NULL
155427 +enable_so_kvm_hv_set_msr_pw_fndecl_18553 kvm_hv_set_msr_pw fndecl 3 18553 NULL nohasharray
155428 +enable_so_inodes_squashfs_sb_info_18553 inodes squashfs_sb_info 0 18553 &enable_so_kvm_hv_set_msr_pw_fndecl_18553 nohasharray
155429 +enable_so_pci_enable_msix_exact_fndecl_18553 pci_enable_msix_exact fndecl 0 18553 &enable_so_inodes_squashfs_sb_info_18553
155430 +enable_so_ucode_size_bytes_common_firmware_header_18554 ucode_size_bytes common_firmware_header 0 18554 NULL
155431 +enable_so_memblock_reserve_fndecl_18556 memblock_reserve fndecl 1-2 18556 NULL
155432 +enable_so_cifs_security_flags_proc_write_fndecl_18559 cifs_security_flags_proc_write fndecl 3 18559 NULL
155433 +enable_so_riva_get_memlen_fndecl_18562 riva_get_memlen fndecl 0 18562 NULL
155434 +enable_so_change_protection_fndecl_18568 change_protection fndecl 3-2 18568 NULL
155435 +enable_so_rocker_group_l2_flood_fndecl_18575 rocker_group_l2_flood fndecl 5 18575 NULL
155436 +enable_so___max_nr_grant_frames_fndecl_18578 __max_nr_grant_frames fndecl 0 18578 NULL
155437 +enable_so_index_xtsplit_18586 index xtsplit 0 18586 NULL
155438 +enable_so_spidev_message_fndecl_18589 spidev_message fndecl 3 18589 NULL
155439 +enable_so_omfs_fill_chain_fndecl_18591 omfs_fill_chain fndecl 3 18591 NULL
155440 +enable_so_le_readq_fndecl_18598 le_readq fndecl 0 18598 NULL
155441 +enable_so_brcmu_pkt_buf_get_skb_fndecl_18599 brcmu_pkt_buf_get_skb fndecl 1 18599 NULL
155442 +enable_so_extLocation_extent_ad_18601 extLocation extent_ad 0 18601 NULL
155443 +enable_so_m25p80_write_fndecl_18603 m25p80_write fndecl 3 18603 NULL
155444 +enable_so_logfs_write_je_buf_fndecl_18606 logfs_write_je_buf fndecl 4 18606 NULL nohasharray
155445 +enable_so_num_of_queues_iwl_base_params_18606 num_of_queues iwl_base_params 0 18606 &enable_so_logfs_write_je_buf_fndecl_18606
155446 +enable_so_size_uhid_input_req_18611 size uhid_input_req 0 18611 NULL
155447 +enable_so_befs_get_block_fndecl_18612 befs_get_block fndecl 2 18612 NULL
155448 +enable_so_dstpos_isdnhdlc_vars_18616 dstpos isdnhdlc_vars 0 18616 NULL nohasharray
155449 +enable_so_iwl_pcie_txq_init_fndecl_18616 iwl_pcie_txq_init fndecl 3 18616 &enable_so_dstpos_isdnhdlc_vars_18616
155450 +enable_so_ks8995_registers_write_fndecl_18618 ks8995_registers_write fndecl 6 18618 NULL
155451 +enable_so_ctxt_qib_ctxtdata_18626 ctxt qib_ctxtdata 0 18626 NULL
155452 +enable_so_sec_per_clus_fat_boot_sector_18633 sec_per_clus fat_boot_sector 0 18633 NULL
155453 +enable_so_store_bss_info_fndecl_18643 store_bss_info fndecl 7 18643 NULL
155454 +enable_so_fir16_create_fndecl_18645 fir16_create fndecl 3 18645 NULL
155455 +enable_so_rbd_parent_request_create_fndecl_18646 rbd_parent_request_create fndecl 2-3 18646 NULL
155456 +enable_so_speaker_outs_auto_pin_cfg_18648 speaker_outs auto_pin_cfg 0 18648 NULL
155457 +enable_so_ax25_sendmsg_fndecl_18649 ax25_sendmsg fndecl 3 18649 NULL
155458 +enable_so_bioset_create_fndecl_18655 bioset_create fndecl 2-1 18655 NULL
155459 +enable_so_ext2_xattr_set_fndecl_18656 ext2_xattr_set fndecl 5 18656 NULL nohasharray
155460 +enable_so_MaxDevices__MSG_IOC_FACTS_REPLY_18656 MaxDevices _MSG_IOC_FACTS_REPLY 0 18656 &enable_so_ext2_xattr_set_fndecl_18656
155461 +enable_so_compat_copy_entries_fndecl_18658 compat_copy_entries fndecl 0 18658 NULL
155462 +enable_so_gfs2_unstuffer_page_fndecl_18663 gfs2_unstuffer_page fndecl 3 18663 NULL
155463 +enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665 num_ccells_per_conn iscsi_kwqe_init1 0 18665 NULL nohasharray
155464 +enable_so_SYSC_init_module_fndecl_18665 SYSC_init_module fndecl 2 18665 &enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665
155465 +enable_so_nilfs_move_2nd_super_fndecl_18666 nilfs_move_2nd_super fndecl 2 18666 NULL
155466 +enable_so_iterate_extent_inodes_fndecl_18668 iterate_extent_inodes fndecl 2 18668 NULL
155467 +enable_so_len_xdr_netobj_18672 len xdr_netobj 0 18672 NULL
155468 +enable_so_pn_recvmsg_fndecl_18676 pn_recvmsg fndecl 3 18676 NULL
155469 +enable_so_ldm_frag_add_fndecl_18680 ldm_frag_add fndecl 2 18680 NULL
155470 +enable_so_used_chaoskey_18682 used chaoskey 0 18682 NULL nohasharray
155471 +enable_so_ocd_max_easize_obd_connect_data_18682 ocd_max_easize obd_connect_data 0 18682 &enable_so_used_chaoskey_18682
155472 +enable_so_domain_pci_sysdata_18686 domain pci_sysdata 0 18686 NULL
155473 +enable_so_i2c_wr_max_cx24120_config_18687 i2c_wr_max cx24120_config 0 18687 NULL nohasharray
155474 +enable_so_length_iwl_nvm_access_resp_18687 length iwl_nvm_access_resp 0 18687 &enable_so_i2c_wr_max_cx24120_config_18687
155475 +enable_so_num_tc_net_device_18703 num_tc net_device 0 18703 NULL
155476 +enable_so_size_rxdone_entry_desc_18704 size rxdone_entry_desc 0 18704 NULL
155477 +enable_so_den_step_snd_ratnum_18705 den_step snd_ratnum 0 18705 NULL nohasharray
155478 +enable_so_num_dup_tsns_sctp_tsnmap_18705 num_dup_tsns sctp_tsnmap 0 18705 &enable_so_den_step_snd_ratnum_18705
155479 +enable_so_ascot2e_i2c_debug_fndecl_18708 ascot2e_i2c_debug fndecl 5 18708 NULL
155480 +enable_so_ent_get_fatent_operations_18715 ent_get fatent_operations 0 18715 NULL
155481 +enable_so_read_reg_isar_hw_18717 read_reg isar_hw 0 18717 NULL
155482 +enable_so_feature_len_mic_device_desc_18719 feature_len mic_device_desc 0 18719 NULL
155483 +enable_so_iwl_dbgfs_status_read_fndecl_18720 iwl_dbgfs_status_read fndecl 3 18720 NULL
155484 +enable_so___az6007_write_fndecl_18721 __az6007_write fndecl 6 18721 NULL
155485 +enable_so_max_pkeys_ib_device_attr_18722 max_pkeys ib_device_attr 0 18722 NULL
155486 +enable_so_trf7970a_read_cont_fndecl_18728 trf7970a_read_cont fndecl 4 18728 NULL
155487 +enable_so_ioapic_copy_alloc_attr_fndecl_18729 ioapic_copy_alloc_attr fndecl 3 18729 NULL
155488 +enable_so_acpi_pcc_get_sqty_fndecl_18731 acpi_pcc_get_sqty fndecl 0 18731 NULL
155489 +enable_so_sfi_map_memory_fndecl_18732 sfi_map_memory fndecl 2-1 18732 NULL
155490 +enable_so_sinit_num_ostreams_sctp_cookie_18733 sinit_num_ostreams sctp_cookie 0 18733 NULL
155491 +enable_so_pkcs7_sig_note_serial_fndecl_18735 pkcs7_sig_note_serial fndecl 5 18735 NULL
155492 +enable_so_rdb_per_qp_mthca_profile_18738 rdb_per_qp mthca_profile 0 18738 NULL
155493 +enable_so_bulk_out_ipheth_device_18739 bulk_out ipheth_device 0 18739 NULL
155494 +enable_so_o2net_recv_tcp_msg_fndecl_18741 o2net_recv_tcp_msg fndecl 3-0 18741 NULL
155495 +enable_so_count_configs_fndecl_18742 count_configs fndecl 0 18742 NULL
155496 +enable_so_max_sges_ocrdma_qp_hwq_info_18746 max_sges ocrdma_qp_hwq_info 0 18746 NULL
155497 +enable_so_seq_end_offset_iscsi_cmd_18748 seq_end_offset iscsi_cmd 0 18748 NULL
155498 +enable_so_max_in_size_ims_pcu_18752 max_in_size ims_pcu 0 18752 NULL
155499 +enable_so___ocfs2_error_fndecl_18758 __ocfs2_error fndecl 0 18758 NULL
155500 +enable_so_pipe_set_size_fndecl_18759 pipe_set_size fndecl 2 18759 NULL
155501 +enable_so_i_pos_msdos_inode_info_18764 i_pos msdos_inode_info 0 18764 NULL
155502 +enable_so_ppp_cp_parse_cr_fndecl_18765 ppp_cp_parse_cr fndecl 4-2 18765 NULL
155503 +enable_so_xdr_get_next_encode_buffer_fndecl_18770 xdr_get_next_encode_buffer fndecl 2 18770 NULL nohasharray
155504 +enable_so_adjust_memory_fndecl_18770 adjust_memory fndecl 3-4 18770 &enable_so_xdr_get_next_encode_buffer_fndecl_18770
155505 +enable_so_data_len_ieee80211_mgd_auth_data_18778 data_len ieee80211_mgd_auth_data 0 18778 NULL
155506 +enable_so_nvif_device_init_fndecl_18779 nvif_device_init fndecl 5 18779 NULL
155507 +enable_so_cur_len_drm_dp_sideband_msg_tx_18787 cur_len drm_dp_sideband_msg_tx 0 18787 NULL
155508 +enable_so_mcopy_atomic_fndecl_18790 mcopy_atomic fndecl 2 18790 NULL
155509 +enable_so_isdn_ppp_skb_push_fndecl_18791 isdn_ppp_skb_push fndecl 2 18791 NULL
155510 +enable_so_sctp_abort_pkt_new_fndecl_18794 sctp_abort_pkt_new fndecl 6 18794 NULL
155511 +enable_so_max_low_pfn_vardecl_18798 max_low_pfn vardecl 0 18798 NULL
155512 +enable_so_readbuffers_v4l2_captureparm_18801 readbuffers v4l2_captureparm 0 18801 NULL
155513 +enable_so_dwc2_hcd_urb_alloc_fndecl_18802 dwc2_hcd_urb_alloc fndecl 2 18802 NULL
155514 +enable_so_rd_length_gfs2_rgrpd_18804 rd_length gfs2_rgrpd 0 18804 NULL
155515 +enable_so_md_capture_size_netxen_minidump_18805 md_capture_size netxen_minidump 0 18805 NULL
155516 +enable_so___irq_domain_alloc_irqs_fndecl_18810 __irq_domain_alloc_irqs fndecl 0-2 18810 NULL
155517 +enable_so_ath6kl_debug_roam_tbl_event_fndecl_18811 ath6kl_debug_roam_tbl_event fndecl 3 18811 NULL
155518 +enable_so_ssb_ioremap_fndecl_18815 ssb_ioremap fndecl 2 18815 NULL
155519 +enable_so_length_xfs_extent_busy_18817 length xfs_extent_busy 0 18817 NULL
155520 +enable_so_gfn_to_hva_memslot_fndecl_18818 gfn_to_hva_memslot fndecl 2 18818 NULL
155521 +enable_so_tx_cnt_IsdnCardState_18819 tx_cnt IsdnCardState 0 18819 NULL
155522 +enable_so_dvb_ringbuffer_write_user_fndecl_18821 dvb_ringbuffer_write_user fndecl 3 18821 NULL
155523 +enable_so_shmem_seek_hole_data_fndecl_18824 shmem_seek_hole_data fndecl 0-2-3 18824 NULL
155524 +enable_so_p_memsz_elf32_phdr_18830 p_memsz elf32_phdr 0 18830 NULL
155525 +enable_so_num_entries_compat_ipt_replace_18835 num_entries compat_ipt_replace 0 18835 NULL
155526 +enable_so_xfs_inobt_insert_rec_fndecl_18839 xfs_inobt_insert_rec fndecl 4 18839 NULL nohasharray
155527 +enable_so_DriverQueueDepth_DAC960_Controller_18839 DriverQueueDepth DAC960_Controller 0 18839 &enable_so_xfs_inobt_insert_rec_fndecl_18839
155528 +enable_so_rsn_ie_len_hostap_bss_info_18840 rsn_ie_len hostap_bss_info 0 18840 NULL
155529 +enable_so_number_snd_card_18845 number snd_card 0 18845 NULL
155530 +enable_so_n_targets_rsxx_cardinfo_18847 n_targets rsxx_cardinfo 0 18847 NULL
155531 +enable_so_private_data_len_ib_cm_req_param_18848 private_data_len ib_cm_req_param 0 18848 NULL
155532 +enable_so_master_xfer_i2c_algorithm_18849 master_xfer i2c_algorithm 0 18849 NULL nohasharray
155533 +enable_so_taglen_nfsd4_compoundargs_18849 taglen nfsd4_compoundargs 0 18849 &enable_so_master_xfer_i2c_algorithm_18849
155534 +enable_so_usb_descriptor_fillbuf_fndecl_18853 usb_descriptor_fillbuf fndecl 0 18853 NULL nohasharray
155535 +enable_so_sco_sock_sendmsg_fndecl_18853 sco_sock_sendmsg fndecl 3 18853 &enable_so_usb_descriptor_fillbuf_fndecl_18853
155536 +enable_so_nreaders_vardecl_rcutorture_c_18862 nreaders vardecl_rcutorture.c 0 18862 NULL
155537 +enable_so_length_acpi_resource_18863 length acpi_resource 0 18863 NULL
155538 +enable_so_max_payload_fwnet_packet_task_18867 max_payload fwnet_packet_task 0 18867 NULL
155539 +enable_so_alloc_cache_blocks_with_hash_fndecl_18870 alloc_cache_blocks_with_hash fndecl 2 18870 NULL
155540 +enable_so_osd_y_pan_yuv_playback_info_18877 osd_y_pan yuv_playback_info 0 18877 NULL
155541 +enable_so_rx_buffer_len_atl1_adapter_18882 rx_buffer_len atl1_adapter 0 18882 NULL nohasharray
155542 +enable_so_allocate_cnodes_fndecl_18882 allocate_cnodes fndecl 1 18882 &enable_so_rx_buffer_len_atl1_adapter_18882
155543 +enable_so_rxd_rfsw_s_smt_fp_rxd_18889 rxd_rfsw s_smt_fp_rxd 0 18889 NULL
155544 +enable_so_uinput_ioctl_fndecl_18893 uinput_ioctl fndecl 2 18893 NULL
155545 +enable_so_vm_insert_pfn_fndecl_18894 vm_insert_pfn fndecl 3 18894 NULL nohasharray
155546 +enable_so_count_objects_shrinker_18894 count_objects shrinker 0 18894 &enable_so_vm_insert_pfn_fndecl_18894
155547 +enable_so_nr_stripes_bcache_device_18895 nr_stripes bcache_device 0 18895 NULL
155548 +enable_so_rx_ps_hdr_size_igbvf_adapter_18896 rx_ps_hdr_size igbvf_adapter 0 18896 NULL nohasharray
155549 +enable_so_r592_write_fifo_pio_fndecl_18896 r592_write_fifo_pio fndecl 3 18896 &enable_so_rx_ps_hdr_size_igbvf_adapter_18896
155550 +enable_so_num_freq_table_entries_vardecl_sfi_cpufreq_c_18898 num_freq_table_entries vardecl_sfi-cpufreq.c 0 18898 NULL
155551 +enable_so_nilfs_max_size_fndecl_18901 nilfs_max_size fndecl 0-1 18901 NULL nohasharray
155552 +enable_so_op_dmaoff_rm_data_op_18901 op_dmaoff rm_data_op 0 18901 &enable_so_nilfs_max_size_fndecl_18901
155553 +enable_so_sbc_get_write_same_sectors_fndecl_18902 sbc_get_write_same_sectors fndecl 0 18902 NULL
155554 +enable_so_pep_sendmsg_fndecl_18903 pep_sendmsg fndecl 3 18903 NULL
155555 +enable_so_extent_invalidatepage_fndecl_18906 extent_invalidatepage fndecl 3 18906 NULL
155556 +enable_so_pwr_elp_enter_read_fndecl_18911 pwr_elp_enter_read fndecl 3 18911 NULL
155557 +enable_so_sectors_ssfdcr_record_18912 sectors ssfdcr_record 0 18912 NULL
155558 +enable_so_ps_pspoll_utilization_read_fndecl_18914 ps_pspoll_utilization_read fndecl 3 18914 NULL
155559 +enable_so_dccpd_opt_len_dccp_skb_cb_18917 dccpd_opt_len dccp_skb_cb 0 18917 NULL
155560 +enable_so_fuse_write_update_size_fndecl_18918 fuse_write_update_size fndecl 2 18918 NULL
155561 +enable_so_kvm_pin_pages_fndecl_18922 kvm_pin_pages fndecl 2 18922 NULL
155562 +enable_so_cciss_allocate_sg_chain_blocks_fndecl_18923 cciss_allocate_sg_chain_blocks fndecl 3-2 18923 NULL
155563 +enable_so_capacity_vmci_handle_arr_18924 capacity vmci_handle_arr 0 18924 NULL
155564 +enable_so_segment_size_kaweth_ethernet_configuration_18925 segment_size kaweth_ethernet_configuration 0 18925 NULL nohasharray
155565 +enable_so_vxfs_bread_fndecl_18925 vxfs_bread fndecl 2 18925 &enable_so_segment_size_kaweth_ethernet_configuration_18925
155566 +enable_so_size_gf100_gr_18928 size gf100_gr 0 18928 NULL
155567 +enable_so_ad714x_i2c_read_fndecl_18930 ad714x_i2c_read fndecl 4 18930 NULL
155568 +enable_so_spidev_get_ioc_message_fndecl_18931 spidev_get_ioc_message fndecl 1 18931 NULL
155569 +enable_so_maxReplyBytes_mpt_ioctl_command_18942 maxReplyBytes mpt_ioctl_command 0 18942 NULL
155570 +enable_so_read_pci_config_fndecl_18943 read_pci_config fndecl 0 18943 NULL
155571 +enable_so_rbd_segment_length_fndecl_18944 rbd_segment_length fndecl 0-2-3 18944 NULL
155572 +enable_so_cram_hmac_alg_len_net_conf_18947 cram_hmac_alg_len net_conf 0 18947 NULL nohasharray
155573 +enable_so_port_show_regs_fndecl_18947 port_show_regs fndecl 3 18947 &enable_so_cram_hmac_alg_len_net_conf_18947
155574 +enable_so_i2c_hack_cx25840_fndecl_18948 i2c_hack_cx25840 fndecl 4-6 18948 NULL nohasharray
155575 +enable_so_uhci_debug_read_fndecl_18948 uhci_debug_read fndecl 3 18948 &enable_so_i2c_hack_cx25840_fndecl_18948
155576 +enable_so_length_rsp_que_18950 length rsp_que 0 18950 NULL
155577 +enable_so_cookie_sg_count_realtek_pci_sdmmc_18954 cookie_sg_count realtek_pci_sdmmc 0 18954 NULL
155578 +enable_so_qla82xx_pci_mem_read_2M_fndecl_18955 qla82xx_pci_mem_read_2M fndecl 2 18955 NULL
155579 +enable_so_rss_queues_igb_adapter_18957 rss_queues igb_adapter 0 18957 NULL
155580 +enable_so_new_sync_read_fndecl_18960 new_sync_read fndecl 0-3 18960 NULL
155581 +enable_so_file_offset_btrfs_ordered_extent_18963 file_offset btrfs_ordered_extent 0 18963 NULL
155582 +enable_so_len_dm_target_18965 len dm_target 0 18965 NULL
155583 +enable_so_size_ceph_cap_snap_18977 size ceph_cap_snap 0 18977 NULL nohasharray
155584 +enable_so_mlx4_en_create_tx_ring_fndecl_18977 mlx4_en_create_tx_ring fndecl 3-4 18977 &enable_so_size_ceph_cap_snap_18977
155585 +enable_so_read_off_videobuf_queue_18978 read_off videobuf_queue 0 18978 NULL
155586 +enable_so_rtsx_usb_read_register_fndecl_18981 rtsx_usb_read_register fndecl 0 18981 NULL
155587 +enable_so_edac_device_alloc_ctl_info_fndecl_18982 edac_device_alloc_ctl_info fndecl 1 18982 NULL
155588 +enable_so_rcount_mkiss_18984 rcount mkiss 0 18984 NULL nohasharray
155589 +enable_so_l2cap_sock_sendmsg_fndecl_18984 l2cap_sock_sendmsg fndecl 3 18984 &enable_so_rcount_mkiss_18984
155590 +enable_so_preferred_bpp_intel_fbdev_18985 preferred_bpp intel_fbdev 0 18985 NULL
155591 +enable_so_p9_get_mapped_pages_fndecl_18988 p9_get_mapped_pages fndecl 4-0 18988 NULL nohasharray
155592 +enable_so_ebcnt_vardecl_subpagetest_c_18988 ebcnt vardecl_subpagetest.c 0 18988 &enable_so_p9_get_mapped_pages_fndecl_18988
155593 +enable_so_ttm_bo_kmap_ttm_fndecl_18993 ttm_bo_kmap_ttm fndecl 3 18993 NULL
155594 +enable_so_virtio_gpu_alloc_cmd_resp_fndecl_18996 virtio_gpu_alloc_cmd_resp fndecl 4-5 18996 NULL
155595 +enable_so_end_sk_buff_18998 end sk_buff 0 18998 NULL
155596 +enable_so_usb_hcd_check_unlink_urb_fndecl_18999 usb_hcd_check_unlink_urb fndecl 3 18999 NULL
155597 +enable_so_lbs_highsnr_read_fndecl_19000 lbs_highsnr_read fndecl 3 19000 NULL
155598 +enable_so_dm_alloc_md_mempools_fndecl_19008 dm_alloc_md_mempools fndecl 4 19008 NULL
155599 +enable_so_max_sectors_ata_device_19016 max_sectors ata_device 0 19016 NULL
155600 +enable_so_generic_splice_sendpage_fndecl_19018 generic_splice_sendpage fndecl 4 19018 NULL
155601 +enable_so_prevUnitNo_inftl_unithead1_19020 prevUnitNo inftl_unithead1 0 19020 NULL
155602 +enable_so_SyS_semop_fndecl_19023 SyS_semop fndecl 3 19023 NULL
155603 +enable_so_rsxx_queue_discard_fndecl_19027 rsxx_queue_discard fndecl 0 19027 NULL
155604 +enable_so_tcp_recvmsg_fndecl_19029 tcp_recvmsg fndecl 3 19029 NULL
155605 +enable_so_sge_size_MPT3SAS_ADAPTER_19030 sge_size MPT3SAS_ADAPTER 0 19030 NULL nohasharray
155606 +enable_so_tipc_subseq_alloc_fndecl_19030 tipc_subseq_alloc fndecl 1 19030 &enable_so_sge_size_MPT3SAS_ADAPTER_19030
155607 +enable_so_ipv6_gro_complete_fndecl_19031 ipv6_gro_complete fndecl 2 19031 NULL
155608 +enable_so_ll_statahead_one_fndecl_19033 ll_statahead_one fndecl 3 19033 NULL
155609 +enable_so_scrollback_max_vardecl_fbcon_c_19040 scrollback_max vardecl_fbcon.c 0 19040 NULL nohasharray
155610 +enable_so_next_cnid_hfsplus_sb_info_19040 next_cnid hfsplus_sb_info 0 19040 &enable_so_scrollback_max_vardecl_fbcon_c_19040
155611 +enable_so_tsize_nfs2_fsstat_19041 tsize nfs2_fsstat 0 19041 NULL
155612 +enable_so_len_ath10k_dump_file_data_19052 len ath10k_dump_file_data 0 19052 NULL
155613 +enable_so_dma_usb_request_19054 dma usb_request 0 19054 NULL
155614 +enable_so_mod_len_extent_map_19058 mod_len extent_map 0 19058 NULL
155615 +enable_so_count_sgmapraw_19066 count sgmapraw 0 19066 NULL
155616 +enable_so_mem_size_memory_type_mapping_19073 mem_size memory_type_mapping 0 19073 NULL
155617 +enable_so_offs_ubifs_zbranch_19074 offs ubifs_zbranch 0 19074 NULL
155618 +enable_so_mei_cl_read_start_fndecl_19077 mei_cl_read_start fndecl 2-0 19077 NULL nohasharray
155619 +enable_so_max_srq_sge_ocrdma_dev_attr_19077 max_srq_sge ocrdma_dev_attr 0 19077 &enable_so_mei_cl_read_start_fndecl_19077
155620 +enable_so_s_blocksize_super_block_19081 s_blocksize super_block 0 19081 NULL
155621 +enable_so_gsi_kvm_assigned_msix_entry_19082 gsi kvm_assigned_msix_entry 0 19082 NULL
155622 +enable_so_data_size_hpi_msg_data_19086 data_size hpi_msg_data 0 19086 NULL
155623 +enable_so_mei_hbm_cl_flow_control_req_fndecl_19089 mei_hbm_cl_flow_control_req fndecl 0 19089 NULL
155624 +enable_so_duplex_pxa168_eth_platform_data_19097 duplex pxa168_eth_platform_data 0 19097 NULL
155625 +enable_so_sb_logsectsize_xfs_sb_19098 sb_logsectsize xfs_sb 0 19098 NULL
155626 +enable_so_btrfs_qgroup_inherit_fndecl_19103 btrfs_qgroup_inherit fndecl 4 19103 NULL
155627 +enable_so_walk_node_fndecl_19114 walk_node fndecl 2 19114 NULL nohasharray
155628 +enable_so_sctp_setsockopt_connectx_fndecl_19114 sctp_setsockopt_connectx fndecl 3 19114 &enable_so_walk_node_fndecl_19114
155629 +enable_so_ceph_entity_name_encode_fndecl_19115 ceph_entity_name_encode fndecl 0 19115 NULL nohasharray
155630 +enable_so_alloc_msg_fndecl_19115 alloc_msg fndecl 1 19115 &enable_so_ceph_entity_name_encode_fndecl_19115
155631 +enable_so_default_qos_mlx4_vport_state_19116 default_qos mlx4_vport_state 0 19116 NULL
155632 +enable_so_sel_make_class_dir_entries_fndecl_19123 sel_make_class_dir_entries fndecl 2 19123 NULL
155633 +enable_so_rx_keycache_size_p54_common_19128 rx_keycache_size p54_common 0 19128 NULL
155634 +enable_so_ssid_len_ieee80211_mgd_assoc_data_19143 ssid_len ieee80211_mgd_assoc_data 0 19143 NULL
155635 +enable_so_start_vivitar_cam_fndecl_19144 start_vivitar_cam fndecl 0 19144 NULL
155636 +enable_so_ctrl_set_res_hor_fndecl_19146 ctrl_set_res_hor fndecl 3 19146 NULL nohasharray
155637 +enable_so_count_c2_ring_19146 count c2_ring 0 19146 &enable_so_ctrl_set_res_hor_fndecl_19146
155638 +enable_so_ipmi_addr_length_fndecl_19149 ipmi_addr_length fndecl 0 19149 NULL
155639 +enable_so_pgbase_nfs_readlinkargs_19150 pgbase nfs_readlinkargs 0 19150 NULL
155640 +enable_so_inftl_write_oob_fndecl_19154 inftl_write_oob fndecl 2-3 19154 NULL
155641 +enable_so_alloc_indirect_fndecl_19156 alloc_indirect fndecl 2 19156 NULL
155642 +enable_so_do_get_thread_area_fndecl_19157 do_get_thread_area fndecl 2 19157 NULL
155643 +enable_so_page_array_size_firmware_buf_19163 page_array_size firmware_buf 0 19163 NULL
155644 +enable_so_ve_attrlen_nfsd4_verify_19164 ve_attrlen nfsd4_verify 0 19164 NULL
155645 +enable_so_ms_nvme_ns_19166 ms nvme_ns 0 19166 NULL
155646 +enable_so_dma_start_hi_rx_buf_desc_19167 dma_start_hi rx_buf_desc 0 19167 NULL
155647 +enable_so_isp116x_urb_dequeue_fndecl_19169 isp116x_urb_dequeue fndecl 3 19169 NULL
155648 +enable_so_max_pages_per_mr_srp_device_19171 max_pages_per_mr srp_device 0 19171 NULL
155649 +enable_so_lprocfs_alloc_stats_fndecl_19181 lprocfs_alloc_stats fndecl 1 19181 NULL
155650 +enable_so_mic_read_spad_fndecl_19184 mic_read_spad fndecl 0 19184 NULL
155651 +enable_so_dfs_global_file_write_fndecl_19187 dfs_global_file_write fndecl 3 19187 NULL
155652 +enable_so_vmw_user_shader_alloc_fndecl_19188 vmw_user_shader_alloc fndecl 3 19188 NULL
155653 +enable_so_xen_max_p2m_pfn_vardecl_19189 xen_max_p2m_pfn vardecl 0 19189 NULL
155654 +enable_so_nci_allocate_device_fndecl_19192 nci_allocate_device fndecl 3 19192 NULL
155655 +enable_so_____smiapp_read_fndecl_19193 ____smiapp_read fndecl 3 19193 NULL
155656 +enable_so_queue_depth_hpsa_scsi_dev_t_19194 queue_depth hpsa_scsi_dev_t 0 19194 NULL
155657 +enable_so_slot_nr_nfs4_slot_19196 slot_nr nfs4_slot 0 19196 NULL nohasharray
155658 +enable_so_num_retune_mobile_texts_wm8996_priv_19196 num_retune_mobile_texts wm8996_priv 0 19196 &enable_so_slot_nr_nfs4_slot_19196
155659 +enable_so_decode_height_yuv_playback_info_19201 decode_height yuv_playback_info 0 19201 NULL
155660 +enable_so_irq_dma_handle_ttusb_dec_19208 irq_dma_handle ttusb_dec 0 19208 NULL nohasharray
155661 +enable_so_sd_tuning_phase_fndecl_19208 sd_tuning_phase fndecl 2 19208 &enable_so_irq_dma_handle_ttusb_dec_19208
155662 +enable_so_ext4_xattr_get_fndecl_19214 ext4_xattr_get fndecl 0 19214 NULL
155663 +enable_so_size_afs_file_status_19215 size afs_file_status 0 19215 NULL
155664 +enable_so_extensions_edid_19218 extensions edid 0 19218 NULL
155665 +enable_so_lfb_size_screen_info_19219 lfb_size screen_info 0 19219 NULL
155666 +enable_so_SYSC_fsetxattr_fndecl_19220 SYSC_fsetxattr fndecl 4 19220 NULL
155667 +enable_so_vmw_cmdbuf_alloc_fndecl_19226 vmw_cmdbuf_alloc fndecl 2 19226 NULL
155668 +enable_so_csio_add_debugfs_mem_fndecl_19228 csio_add_debugfs_mem fndecl 4 19228 NULL
155669 +enable_so___ai_size_pcpu_alloc_info_19229 __ai_size pcpu_alloc_info 0 19229 NULL
155670 +enable_so_cmds_vardecl_ambassador_c_19230 cmds vardecl_ambassador.c 0 19230 NULL
155671 +enable_so_spi_populate_ppr_msg_fndecl_19239 spi_populate_ppr_msg fndecl 0 19239 NULL
155672 +enable_so_matroxfb_pitch_adjust_fndecl_19243 matroxfb_pitch_adjust fndecl 0-2 19243 NULL nohasharray
155673 +enable_so_tcp_fastretrans_alert_fndecl_19243 tcp_fastretrans_alert fndecl 2 19243 &enable_so_matroxfb_pitch_adjust_fndecl_19243
155674 +enable_so_get_arg_fndecl_19245 get_arg fndecl 3 19245 NULL
155675 +enable_so_mthca_map_reg_fndecl_19251 mthca_map_reg fndecl 3-2 19251 NULL
155676 +enable_so_ieee802154_hdr_push_sechdr_fndecl_19265 ieee802154_hdr_push_sechdr fndecl 0 19265 NULL
155677 +enable_so_batadv_frag_create_fndecl_19270 batadv_frag_create fndecl 3 19270 NULL
155678 +enable_so_tail_aio_ring_19271 tail aio_ring 0 19271 NULL
155679 +enable_so_vmw_kms_readback_fndecl_19276 vmw_kms_readback fndecl 6 19276 NULL nohasharray
155680 +enable_so_sb_segnum_nilfs_segment_buffer_19276 sb_segnum nilfs_segment_buffer 0 19276 &enable_so_vmw_kms_readback_fndecl_19276
155681 +enable_so_early_init_dt_reserve_memory_arch_fndecl_19285 early_init_dt_reserve_memory_arch fndecl 2-1 19285 NULL
155682 +enable_so_inode_minix_dir_entry_19287 inode minix_dir_entry 0 19287 NULL
155683 +enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291 virtio_gpu_cmd_resource_flush fndecl 5-6 19291 NULL nohasharray
155684 +enable_so_index_scsi_tape_19291 index scsi_tape 0 19291 &enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291
155685 +enable_so_subbuf_read_actor_fndecl_19295 subbuf_read_actor fndecl 3 19295 NULL
155686 +enable_so_get_packet_fndecl_19296 get_packet fndecl 3 19296 NULL
155687 +enable_so_vxge_change_mtu_fndecl_19297 vxge_change_mtu fndecl 2 19297 NULL
155688 +enable_so_ext_len_xfs_extent_19299 ext_len xfs_extent 0 19299 NULL
155689 +enable_so_ubi_calc_fm_size_fndecl_19302 ubi_calc_fm_size fndecl 0 19302 NULL
155690 +enable_so_copy_vma_fndecl_19303 copy_vma fndecl 3-2-4 19303 NULL
155691 +enable_so_cl_cpg_ocfs2_chain_list_19308 cl_cpg ocfs2_chain_list 0 19308 NULL
155692 +enable_so_sys_sched_getattr_fndecl_19313 sys_sched_getattr fndecl 3 19313 NULL
155693 +enable_so_ve4_indsize_vxfs_ext4_19315 ve4_indsize vxfs_ext4 0 19315 NULL
155694 +enable_so_reply_sz_MPT3SAS_ADAPTER_19317 reply_sz MPT3SAS_ADAPTER 0 19317 NULL
155695 +enable_so_bpp_vardecl_nvidia_c_19325 bpp vardecl_nvidia.c 0 19325 NULL
155696 +enable_so_meta_dev_len_disk_conf_19326 meta_dev_len disk_conf 0 19326 NULL
155697 +enable_so_mlx4_alloc_resize_buf_fndecl_19329 mlx4_alloc_resize_buf fndecl 3 19329 NULL
155698 +enable_so_pkt_len_or_gro_seg_len_eth_fast_path_rx_cqe_19330 pkt_len_or_gro_seg_len eth_fast_path_rx_cqe 0 19330 NULL nohasharray
155699 +enable_so_finish_request_fndecl_19330 finish_request fndecl 4 19330 &enable_so_pkt_len_or_gro_seg_len_eth_fast_path_rx_cqe_19330
155700 +enable_so_rule_size_fib_rules_ops_19335 rule_size fib_rules_ops 0 19335 NULL
155701 +enable_so___vxge_hw_blockpool_malloc_fndecl_19337 __vxge_hw_blockpool_malloc fndecl 2 19337 NULL
155702 +enable_so_compat_sys_writev_fndecl_19339 compat_sys_writev fndecl 3 19339 NULL
155703 +enable_so_sock_alloc_send_pskb_fndecl_19354 sock_alloc_send_pskb fndecl 3 19354 NULL
155704 +enable_so_data_sge_offset_mpt3_ioctl_command_19355 data_sge_offset mpt3_ioctl_command 0 19355 NULL
155705 +enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356 qlcnic_83xx_sysfs_flash_read_handler fndecl 6 19356 NULL nohasharray
155706 +enable_so_sctp_setsockopt_autoclose_fndecl_19356 sctp_setsockopt_autoclose fndecl 3 19356 &enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356
155707 +enable_so_ds_channels_snd_rme9652_19357 ds_channels snd_rme9652 0 19357 NULL
155708 +enable_so_of_fdt_is_compatible_fndecl_19359 of_fdt_is_compatible fndecl 2 19359 NULL nohasharray
155709 +enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359 lpfc_sriov_nr_virtfn_init fndecl 2 19359 &enable_so_of_fdt_is_compatible_fndecl_19359 nohasharray
155710 +enable_so_minimum_acpi_resource_io_19359 minimum acpi_resource_io 0 19359 &enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359
155711 +enable_so_nodesize_scrub_ctx_19371 nodesize scrub_ctx 0 19371 NULL
155712 +enable_so_size_mdu_array_info_s_19374 size mdu_array_info_s 0 19374 NULL
155713 +enable_so_nvme_trans_bdev_char_page_fndecl_19382 nvme_trans_bdev_char_page fndecl 3 19382 NULL
155714 +enable_so_do_anonymous_page_fndecl_19385 do_anonymous_page fndecl 3 19385 NULL
155715 +enable_so_cx25840_read_fndecl_19386 cx25840_read fndecl 0 19386 NULL nohasharray
155716 +enable_so_ControllerQueueDepth_DAC960_Controller_19386 ControllerQueueDepth DAC960_Controller 0 19386 &enable_so_cx25840_read_fndecl_19386
155717 +enable_so_error_param1_vardecl_einj_c_19392 error_param1 vardecl_einj.c 0 19392 NULL
155718 +enable_so_padlen_ip_beet_phdr_19393 padlen ip_beet_phdr 0 19393 NULL
155719 +enable_so_ixgb_check_copybreak_fndecl_19396 ixgb_check_copybreak fndecl 3 19396 NULL nohasharray
155720 +enable_so_at25_bin_write_fndecl_19396 at25_bin_write fndecl 6-5 19396 &enable_so_ixgb_check_copybreak_fndecl_19396
155721 +enable_so_ceph_msg_new_fndecl_19397 ceph_msg_new fndecl 2 19397 NULL
155722 +enable_so_rx_filter_max_arp_queue_dep_read_fndecl_19400 rx_filter_max_arp_queue_dep_read fndecl 3 19400 NULL
155723 +enable_so_hash_chain_affs_tail_19402 hash_chain affs_tail 0 19402 NULL
155724 +enable_so_ext4_xattr_set_fndecl_19403 ext4_xattr_set fndecl 5 19403 NULL nohasharray
155725 +enable_so_setup_req_fndecl_19403 setup_req fndecl 3-0 19403 &enable_so_ext4_xattr_set_fndecl_19403
155726 +enable_so_max_sqes_bnx2i_hba_19405 max_sqes bnx2i_hba 0 19405 NULL
155727 +enable_so_rec_len_ocfs2_dir_entry_19408 rec_len ocfs2_dir_entry 0 19408 NULL
155728 +enable_so_ip_tot_len_net_lro_desc_19411 ip_tot_len net_lro_desc 0 19411 NULL
155729 +enable_so_proc_read_atmdev_ops_19414 proc_read atmdev_ops 0 19414 NULL
155730 +enable_so_num_ip_blocks_amdgpu_device_19419 num_ip_blocks amdgpu_device 0 19419 NULL
155731 +enable_so_size_mthca_resource_19420 size mthca_resource 0 19420 NULL
155732 +enable_so_fw_card_add_fndecl_19423 fw_card_add fndecl 2 19423 NULL
155733 +enable_so_mixer_nid_hda_gen_spec_19429 mixer_nid hda_gen_spec 0 19429 NULL
155734 +enable_so_config_buf_fndecl_19445 config_buf fndecl 0 19445 NULL nohasharray
155735 +enable_so_bfad_iocmd_ethboot_cfg_fndecl_19445 bfad_iocmd_ethboot_cfg fndecl 0 19445 &enable_so_config_buf_fndecl_19445 nohasharray
155736 +enable_so_sn9c2028_long_command_fndecl_19445 sn9c2028_long_command fndecl 0 19445 &enable_so_bfad_iocmd_ethboot_cfg_fndecl_19445
155737 +enable_so_compat_sys_move_pages_fndecl_19446 compat_sys_move_pages fndecl 2 19446 NULL nohasharray
155738 +enable_so_uinput_compat_ioctl_fndecl_19446 uinput_compat_ioctl fndecl 2 19446 &enable_so_compat_sys_move_pages_fndecl_19446
155739 +enable_so_i_parent_dir_hpfs_inode_info_19451 i_parent_dir hpfs_inode_info 0 19451 NULL
155740 +enable_so_ilf_ino_xfs_inode_log_format_19454 ilf_ino xfs_inode_log_format 0 19454 NULL
155741 +enable_so_dvb_ringbuffer_read_fndecl_19457 dvb_ringbuffer_read fndecl 3 19457 NULL
155742 +enable_so_sys_setdomainname_fndecl_19462 sys_setdomainname fndecl 2 19462 NULL
155743 +enable_so_i965_gtt_total_entries_fndecl_19464 i965_gtt_total_entries fndecl 0 19464 NULL
155744 +enable_so_vcc_connect_fndecl_19469 vcc_connect fndecl 4-3 19469 NULL nohasharray
155745 +enable_so_size_nvbios_image_19469 size nvbios_image 0 19469 &enable_so_vcc_connect_fndecl_19469
155746 +enable_so_dvb_ep_bulk_em28xx_19472 dvb_ep_bulk em28xx 0 19472 NULL nohasharray
155747 +enable_so_kclist_add_fndecl_19472 kclist_add fndecl 3 19472 &enable_so_dvb_ep_bulk_em28xx_19472
155748 +enable_so_dma_xfer_cnt_ivtv_buffer_19475 dma_xfer_cnt ivtv_buffer 0 19475 NULL
155749 +enable_so_orig_block_len_extent_map_19476 orig_block_len extent_map 0 19476 NULL
155750 +enable_so_ath6kl_wmi_ap_hidden_ssid_fndecl_19481 ath6kl_wmi_ap_hidden_ssid fndecl 2 19481 NULL
155751 +enable_so_fackets_out_tcp_sock_19484 fackets_out tcp_sock 0 19484 NULL
155752 +enable_so_ieee80211_change_mtu_fndecl_19486 ieee80211_change_mtu fndecl 2 19486 NULL nohasharray
155753 +enable_so_lookup_string_fndecl_19486 lookup_string fndecl 0 19486 &enable_so_ieee80211_change_mtu_fndecl_19486
155754 +enable_so_bfad_iocmd_preboot_query_fndecl_19487 bfad_iocmd_preboot_query fndecl 0 19487 NULL
155755 +enable_so_ath6kl_set_bitrate_mask32_fndecl_19488 ath6kl_set_bitrate_mask32 fndecl 2 19488 NULL
155756 +enable_so_drm_gtf_mode_fndecl_19489 drm_gtf_mode fndecl 3-2-4 19489 NULL nohasharray
155757 +enable_so_add_device_fndecl_19489 add_device fndecl 2 19489 &enable_so_drm_gtf_mode_fndecl_19489
155758 +enable_so_length_mwifiex_types_power_group_19491 length mwifiex_types_power_group 0 19491 NULL
155759 +enable_so_reg_read_fndecl_19498 reg_read fndecl 0 19498 NULL
155760 +enable_so_len_ib_ucm_sidr_req_19499 len ib_ucm_sidr_req 0 19499 NULL
155761 +enable_so_libfc_vport_create_fndecl_19500 libfc_vport_create fndecl 2 19500 NULL
155762 +enable_so_access_process_vm_fndecl_19503 access_process_vm fndecl 4-0-2 19503 NULL nohasharray
155763 +enable_so_cxacru_cm_get_array_fndecl_19503 cxacru_cm_get_array fndecl 4 19503 &enable_so_access_process_vm_fndecl_19503
155764 +enable_so_sctp_sendmsg_fndecl_19508 sctp_sendmsg fndecl 3 19508 NULL
155765 +enable_so_ecryptfs_write_tag_70_packet_fndecl_19510 ecryptfs_write_tag_70_packet fndecl 6 19510 NULL nohasharray
155766 +enable_so_dev_cdev_19510 dev cdev 0 19510 &enable_so_ecryptfs_write_tag_70_packet_fndecl_19510
155767 +enable_so_count_sgmap64_19513 count sgmap64 0 19513 NULL
155768 +enable_so_ndoms_cur_vardecl_core_c_19519 ndoms_cur vardecl_core.c 0 19519 NULL
155769 +enable_so_pglen_nfs_readlinkargs_19521 pglen nfs_readlinkargs 0 19521 NULL
155770 +enable_so_do_pages_stat_fndecl_19526 do_pages_stat fndecl 2 19526 NULL
155771 +enable_so_i40e_reconfig_rss_queues_fndecl_19528 i40e_reconfig_rss_queues fndecl 2 19528 NULL
155772 +enable_so_height_simplefb_platform_data_19532 height simplefb_platform_data 0 19532 NULL
155773 +enable_so_memparse_fndecl_19535 memparse fndecl 0 19535 NULL
155774 +enable_so_in_dma_usb_keyspan_19540 in_dma usb_keyspan 0 19540 NULL
155775 +enable_so_npins_chv_gpio_pinrange_19542 npins chv_gpio_pinrange 0 19542 NULL nohasharray
155776 +enable_so_rtw_android_get_rssi_fndecl_19542 rtw_android_get_rssi fndecl 0 19542 &enable_so_npins_chv_gpio_pinrange_19542
155777 +enable_so_nilfs_sufile_set_alloc_range_fndecl_19543 nilfs_sufile_set_alloc_range fndecl 3-2 19543 NULL nohasharray
155778 +enable_so_entries_size_ebt_table_info_19543 entries_size ebt_table_info 0 19543 &enable_so_nilfs_sufile_set_alloc_range_fndecl_19543
155779 +enable_so_get_response_hdac_bus_ops_19545 get_response hdac_bus_ops 0 19545 NULL
155780 +enable_so_read_code_fndecl_19550 read_code fndecl 4 19550 NULL
155781 +enable_so_send_size_send_ctx_19552 send_size send_ctx 0 19552 NULL
155782 +enable_so_softback_curr_vardecl_fbcon_c_19553 softback_curr vardecl_fbcon.c 0 19553 NULL
155783 +enable_so_at76_set_card_command_fndecl_19556 at76_set_card_command fndecl 4 19556 NULL
155784 +enable_so_cmpt_entry_sz_mlx4_dev_cap_19564 cmpt_entry_sz mlx4_dev_cap 0 19564 NULL
155785 +enable_so_Val_hfs_cat_dir_19565 Val hfs_cat_dir 0 19565 NULL
155786 +enable_so_rtsx_pci_card_exclusive_check_fndecl_19570 rtsx_pci_card_exclusive_check fndecl 0 19570 NULL
155787 +enable_so_uni16_to_x8_fndecl_19571 uni16_to_x8 fndecl 0 19571 NULL
155788 +enable_so_sd_pkt_scan_bayer_fndecl_19581 sd_pkt_scan_bayer fndecl 3 19581 NULL
155789 +enable_so_ath6kl_wmi_set_txe_notify_fndecl_19582 ath6kl_wmi_set_txe_notify fndecl 2 19582 NULL
155790 +enable_so_bytes_per_track_mspro_devinfo_19584 bytes_per_track mspro_devinfo 0 19584 NULL
155791 +enable_so_set_link_security_fndecl_19589 set_link_security fndecl 4 19589 NULL
155792 +enable_so_rx_max_pending_ethtool_ringparam_19591 rx_max_pending ethtool_ringparam 0 19591 NULL
155793 +enable_so_l1oip_socket_parse_fndecl_19592 l1oip_socket_parse fndecl 4 19592 NULL
155794 +enable_so_icc_empty_fifo_fndecl_19594 icc_empty_fifo fndecl 2 19594 NULL
155795 +enable_so_xdr_stream_pos_fndecl_19598 xdr_stream_pos fndecl 0 19598 NULL
155796 +enable_so_snd_seq_expand_var_event_fndecl_19602 snd_seq_expand_var_event fndecl 0 19602 NULL
155797 +enable_so_readpos_seq_buf_19607 readpos seq_buf 0 19607 NULL
155798 +enable_so_di_eattr_gfs2_dinode_19609 di_eattr gfs2_dinode 0 19609 NULL
155799 +enable_so_rs_user_bytes_rds_sock_19611 rs_user_bytes rds_sock 0 19611 NULL
155800 +enable_so_gspca_frame_add_fndecl_19612 gspca_frame_add fndecl 4 19612 NULL nohasharray
155801 +enable_so_vmbus_establish_gpadl_fndecl_19612 vmbus_establish_gpadl fndecl 3 19612 &enable_so_gspca_frame_add_fndecl_19612
155802 +enable_so_logical_btrfs_io_bio_19616 logical btrfs_io_bio 0 19616 NULL
155803 +enable_so___gfn_to_pfn_memslot_fndecl_19617 __gfn_to_pfn_memslot fndecl 2 19617 NULL
155804 +enable_so_fc_plogi_build_fndecl_19619 fc_plogi_build fndecl 8 19619 NULL
155805 +enable_so_sys_llistxattr_fndecl_19623 sys_llistxattr fndecl 3 19623 NULL
155806 +enable_so_name_len_ext4_dir_entry_2_19628 name_len ext4_dir_entry_2 0 19628 NULL
155807 +enable_so_logical_io_failure_record_19631 logical io_failure_record 0 19631 NULL
155808 +enable_so_max_queue_depth_vardecl_eata_c_19636 max_queue_depth vardecl_eata.c 0 19636 NULL
155809 +enable_so_softback_buf_vardecl_fbcon_c_19637 softback_buf vardecl_fbcon.c 0 19637 NULL
155810 +enable_so_sdio_io_rw_ext_helper_fndecl_19641 sdio_io_rw_ext_helper fndecl 6 19641 NULL
155811 +enable_so_pcfg_ofsh_cyttsp4_sysinfo_data_19644 pcfg_ofsh cyttsp4_sysinfo_data 0 19644 NULL
155812 +enable_so_memory_maker_code_mspro_sys_info_19650 memory_maker_code mspro_sys_info 0 19650 NULL
155813 +enable_so_af9033_rd_regs_fndecl_19652 af9033_rd_regs fndecl 4 19652 NULL
155814 +enable_so_shadow_step_fndecl_19653 shadow_step fndecl 2 19653 NULL
155815 +enable_so_thermal_false_irq_read_fndecl_19654 thermal_false_irq_read fndecl 3 19654 NULL
155816 +enable_so_hr_itemcount_hsm_request_19657 hr_itemcount hsm_request 0 19657 NULL
155817 +enable_so_configfs_dir_lseek_fndecl_19658 configfs_dir_lseek fndecl 2 19658 NULL
155818 +enable_so_btrfs_file_extent_inline_item_len_fndecl_19660 btrfs_file_extent_inline_item_len fndecl 0 19660 NULL
155819 +enable_so_count_kernel_pbes_fndecl_19664 count_kernel_pbes fndecl 0 19664 NULL
155820 +enable_so_tty_register_device_fndecl_19667 tty_register_device fndecl 2 19667 NULL
155821 +enable_so_usdhi6_error_code_fndecl_19670 usdhi6_error_code fndecl 0 19670 NULL
155822 +enable_so_videobuf_vmalloc_to_sg_fndecl_19671 videobuf_vmalloc_to_sg fndecl 2 19671 NULL
155823 +enable_so_fsl_edma_prep_slave_sg_fndecl_19672 fsl_edma_prep_slave_sg fndecl 3 19672 NULL
155824 +enable_so_recv_intr_pipe_us_data_19678 recv_intr_pipe us_data 0 19678 NULL
155825 +enable_so_bch_alloc_fndecl_19682 bch_alloc fndecl 1 19682 NULL
155826 +enable_so_ath10k_dbg_sta_write_delba_fndecl_19689 ath10k_dbg_sta_write_delba fndecl 3 19689 NULL
155827 +enable_so_depth_em28xx_fmt_19696 depth em28xx_fmt 0 19696 NULL nohasharray
155828 +enable_so_size_pkt_hdr_19696 size pkt_hdr 0 19696 &enable_so_depth_em28xx_fmt_19696 nohasharray
155829 +enable_so_pcnt_bits_ubifs_info_19696 pcnt_bits ubifs_info 0 19696 &enable_so_size_pkt_hdr_19696 nohasharray
155830 +enable_so_prealloc_bufsz_comedi_async_19696 prealloc_bufsz comedi_async 0 19696 &enable_so_pcnt_bits_ubifs_info_19696
155831 +enable_so_st_fixed_buffer_size_vardecl_st_c_19699 st_fixed_buffer_size vardecl_st.c 0 19699 NULL
155832 +enable_so_xfs_buf_get_maps_fndecl_19702 xfs_buf_get_maps fndecl 2 19702 NULL
155833 +enable_so_gfs2_file_splice_write_fndecl_19705 gfs2_file_splice_write fndecl 4 19705 NULL
155834 +enable_so_fnic_max_qdepth_vardecl_fnic_main_c_19707 fnic_max_qdepth vardecl_fnic_main.c 0 19707 NULL
155835 +enable_so_acpi_read_fast_fndecl_19709 acpi_read_fast fndecl 3-2 19709 NULL
155836 +enable_so_max_blksize_sdio_func_19715 max_blksize sdio_func 0 19715 NULL
155837 +enable_so_LastFreeEUN_NFTLrecord_19717 LastFreeEUN NFTLrecord 0 19717 NULL
155838 +enable_so_slots_end_qxl_rom_19718 slots_end qxl_rom 0 19718 NULL
155839 +enable_so_fat32_info_sector_fat_bios_param_block_19727 fat32_info_sector fat_bios_param_block 0 19727 NULL
155840 +enable_so_mps_trc_write_fndecl_19736 mps_trc_write fndecl 3 19736 NULL
155841 +enable_so_small_smb_init_no_tc_fndecl_19738 small_smb_init_no_tc fndecl 2 19738 NULL
155842 +enable_so_max_active_conns_bnx2i_hba_19740 max_active_conns bnx2i_hba 0 19740 NULL
155843 +enable_so_bytesperline_v4l2_pix_format_19741 bytesperline v4l2_pix_format 0 19741 NULL
155844 +enable_so_writelen_iuu_private_19742 writelen iuu_private 0 19742 NULL
155845 +enable_so_dccph_ack_nr_low_dccp_hdr_ack_bits_19743 dccph_ack_nr_low dccp_hdr_ack_bits 0 19743 NULL
155846 +enable_so_ntb_netdev_change_mtu_fndecl_19744 ntb_netdev_change_mtu fndecl 2 19744 NULL
155847 +enable_so_nftl_write_oob_fndecl_19745 nftl_write_oob fndecl 2-3 19745 NULL nohasharray
155848 +enable_so_nmap_ib_umem_19745 nmap ib_umem 0 19745 &enable_so_nftl_write_oob_fndecl_19745
155849 +enable_so_tm6000_read_fndecl_19748 tm6000_read fndecl 3 19748 NULL
155850 +enable_so_mpt_raid_phys_disk_get_num_paths_fndecl_19752 mpt_raid_phys_disk_get_num_paths fndecl 0 19752 NULL
155851 +enable_so_instances_vardecl_iio_simple_dummy_c_19753 instances vardecl_iio_simple_dummy.c 0 19753 NULL
155852 +enable_so_si2168_i2c_master_send_unlocked_fndecl_19760 si2168_i2c_master_send_unlocked fndecl 3 19760 NULL
155853 +enable_so_c67x00_giveback_urb_fndecl_19761 c67x00_giveback_urb fndecl 3 19761 NULL
155854 +enable_so_vram_base_qxl_device_19773 vram_base qxl_device 0 19773 NULL
155855 +enable_so_onenand_read_ops_nolock_fndecl_19774 onenand_read_ops_nolock fndecl 2 19774 NULL
155856 +enable_so_fw_mem_block_size_wl1271_19784 fw_mem_block_size wl1271 0 19784 NULL
155857 +enable_so_gss_decrypt_xdr_buf_fndecl_19786 gss_decrypt_xdr_buf fndecl 3 19786 NULL
155858 +enable_so_get_alua_req_fndecl_19797 get_alua_req fndecl 3 19797 NULL
155859 +enable_so_pvscsi_get_max_targets_fndecl_19802 pvscsi_get_max_targets fndecl 0 19802 NULL
155860 +enable_so_fromlen_nfs3_symlinkargs_19803 fromlen nfs3_symlinkargs 0 19803 NULL
155861 +enable_so_exit_error_msb_data_19810 exit_error msb_data 0 19810 NULL
155862 +enable_so_len_rpcsec_gss_oid_19814 len rpcsec_gss_oid 0 19814 NULL
155863 +enable_so_eeprom_len_niu_19815 eeprom_len niu 0 19815 NULL
155864 +enable_so_size_vring_19817 size vring 0 19817 NULL
155865 +enable_so_ip_send_unicast_reply_fndecl_19820 ip_send_unicast_reply fndecl 7 19820 NULL
155866 +enable_so_packet_space_tso_state_19824 packet_space tso_state 0 19824 NULL
155867 +enable_so_vring_new_virtqueue_fndecl_19828 vring_new_virtqueue fndecl 2 19828 NULL
155868 +enable_so___nfs4_get_acl_uncached_fndecl_19830 __nfs4_get_acl_uncached fndecl 3 19830 NULL
155869 +enable_so_size_asix_rx_fixup_info_19833 size asix_rx_fixup_info 0 19833 NULL
155870 +enable_so__osd_req_list_objects_fndecl_19839 _osd_req_list_objects fndecl 6-2 19839 NULL
155871 +enable_so_buf_used_uvc_video_queue_19843 buf_used uvc_video_queue 0 19843 NULL
155872 +enable_so_s3c_hsotg_send_reply_fndecl_19844 s3c_hsotg_send_reply fndecl 4 19844 NULL nohasharray
155873 +enable_so_rpos_cm4000_dev_19844 rpos cm4000_dev 0 19844 &enable_so_s3c_hsotg_send_reply_fndecl_19844
155874 +enable_so_fbmem_start_viafb_dev_19849 fbmem_start viafb_dev 0 19849 NULL
155875 +enable_so_num_jumbo_rxd_qlcnic_adapter_19850 num_jumbo_rxd qlcnic_adapter 0 19850 NULL
155876 +enable_so_xen_released_pages_vardecl_19851 xen_released_pages vardecl 0 19851 NULL
155877 +enable_so_qp_guest_endpoint_create_fndecl_19852 qp_guest_endpoint_create fndecl 5-4 19852 NULL
155878 +enable_so_i5k_channel_probe_fndecl_19853 i5k_channel_probe fndecl 2 19853 NULL
155879 +enable_so_ext4_direct_IO_fndecl_19865 ext4_direct_IO fndecl 3 19865 NULL
155880 +enable_so_max_msix_vectors_ixgbe_mac_info_19874 max_msix_vectors ixgbe_mac_info 0 19874 NULL
155881 +enable_so_ath6kl_force_roam_write_fndecl_19881 ath6kl_force_roam_write fndecl 3 19881 NULL
155882 +enable_so_msb_do_write_request_fndecl_19885 msb_do_write_request fndecl 0-2 19885 NULL
155883 +enable_so_size_sst_block_19887 size sst_block 0 19887 NULL nohasharray
155884 +enable_so_goldfish_audio_write_fndecl_19887 goldfish_audio_write fndecl 3 19887 &enable_so_size_sst_block_19887
155885 +enable_so_ide_find_dma_mode_fndecl_19889 ide_find_dma_mode fndecl 0 19889 NULL
155886 +enable_so_register_sound_midi_fndecl_19894 register_sound_midi fndecl 2 19894 NULL
155887 +enable_so_truncate_inline_extent_fndecl_19906 truncate_inline_extent fndecl 5 19906 NULL
155888 +enable_so___pool_find_fndecl_19911 __pool_find fndecl 3 19911 NULL
155889 +enable_so_count_strings_fndecl_19912 count_strings fndecl 0 19912 NULL
155890 +enable_so_slot_dlm_slot_19913 slot dlm_slot 0 19913 NULL
155891 +enable_so_maxLen_group_data_19920 maxLen group_data 0 19920 NULL nohasharray
155892 +enable_so_get_connectors_for_crtc_fndecl_19920 get_connectors_for_crtc fndecl 0 19920 &enable_so_maxLen_group_data_19920
155893 +enable_so_cp_change_mtu_fndecl_19922 cp_change_mtu fndecl 2 19922 NULL nohasharray
155894 +enable_so_xt_compat_add_offset_fndecl_19922 xt_compat_add_offset fndecl 0 19922 &enable_so_cp_change_mtu_fndecl_19922
155895 +enable_so_sector_number_phys_req_19923 sector_number phys_req 0 19923 NULL
155896 +enable_so_dev_init_pre_alt_sd_19924 dev_init_pre_alt sd 0 19924 NULL
155897 +enable_so_brcmu_dbg_hex_dump_fndecl_19925 brcmu_dbg_hex_dump fndecl 2 19925 NULL
155898 +enable_so___usbnet_read_cmd_fndecl_19928 __usbnet_read_cmd fndecl 7 19928 NULL
155899 +enable_so_iic_tpm_write_generic_fndecl_19931 iic_tpm_write_generic fndecl 3 19931 NULL
155900 +enable_so_dvb_ringbuffer_pkt_read_user_fndecl_19932 dvb_ringbuffer_pkt_read_user fndecl 2-3-5 19932 NULL
155901 +enable_so_ima_eventdigest_init_common_fndecl_19937 ima_eventdigest_init_common fndecl 2 19937 NULL
155902 +enable_so_unix_stream_sendmsg_fndecl_19940 unix_stream_sendmsg fndecl 3 19940 NULL
155903 +enable_so_max_buckets_crush_map_19942 max_buckets crush_map 0 19942 NULL
155904 +enable_so_ieee802154_nl_fill_phy_fndecl_19951 ieee802154_nl_fill_phy fndecl 0 19951 NULL
155905 +enable_so_wusbhc_giveback_urb_fndecl_19954 wusbhc_giveback_urb fndecl 3 19954 NULL
155906 +enable_so_check_crc_fndecl_19956 check_crc fndecl 2 19956 NULL
155907 +enable_so_snd_rawmidi_kernel_read_fndecl_19963 snd_rawmidi_kernel_read fndecl 3 19963 NULL
155908 +enable_so_ipoib_sendq_size_vardecl_19969 ipoib_sendq_size vardecl 0 19969 NULL
155909 +enable_so_src_len_ccp_passthru_engine_19970 src_len ccp_passthru_engine 0 19970 NULL
155910 +enable_so_vga_arb_read_fndecl_19973 vga_arb_read fndecl 3 19973 NULL
155911 +enable_so_le_max_key_size_read_fndecl_19975 le_max_key_size_read fndecl 3 19975 NULL
155912 +enable_so_protocol_gre_base_hdr_19981 protocol gre_base_hdr 0 19981 NULL
155913 +enable_so_size_packet_settings_19984 size packet_settings 0 19984 NULL
155914 +enable_so_m5mols_read_fndecl_19986 m5mols_read fndecl 2 19986 NULL
155915 +enable_so_palign_qib_devdata_19988 palign qib_devdata 0 19988 NULL
155916 +enable_so_f2fs_insert_range_fndecl_19990 f2fs_insert_range fndecl 2 19990 NULL
155917 +enable_so_hid_register_field_fndecl_19993 hid_register_field fndecl 3-2 19993 NULL
155918 +enable_so_ocfs2_defrag_extent_fndecl_19994 ocfs2_defrag_extent fndecl 3-2 19994 NULL
155919 +enable_so_of_get_nand_ecc_step_size_fndecl_20001 of_get_nand_ecc_step_size fndecl 0 20001 NULL
155920 +enable_so_move_extent_per_page_fndecl_20004 move_extent_per_page fndecl 6-5-4-3 20004 NULL
155921 +enable_so_copybreak_vardecl_sky2_c_20006 copybreak vardecl_sky2.c 0 20006 NULL
155922 +enable_so_def_bpp_sm501_platdata_fbsub_20007 def_bpp sm501_platdata_fbsub 0 20007 NULL
155923 +enable_so_i_inline_size_ext4_inode_info_20015 i_inline_size ext4_inode_info 0 20015 NULL
155924 +enable_so_y_drm_fb_helper_crtc_20016 y drm_fb_helper_crtc 0 20016 NULL nohasharray
155925 +enable_so_start_bus_number_acpi_mcfg_allocation_20016 start_bus_number acpi_mcfg_allocation 0 20016 &enable_so_y_drm_fb_helper_crtc_20016
155926 +enable_so_ctl_dma_cm109_dev_20023 ctl_dma cm109_dev 0 20023 NULL
155927 +enable_so_zone_absent_pages_in_node_fndecl_20027 zone_absent_pages_in_node fndecl 0 20027 NULL nohasharray
155928 +enable_so_build_skb_fndecl_20027 build_skb fndecl 2 20027 &enable_so_zone_absent_pages_in_node_fndecl_20027
155929 +enable_so_nr_max310x_devtype_20030 nr max310x_devtype 0 20030 NULL
155930 +enable_so_sample_rate_lola_20032 sample_rate lola 0 20032 NULL
155931 +enable_so_block_size_osst_tape_20034 block_size osst_tape 0 20034 NULL
155932 +enable_so_rcvhdrentsize_qib_devdata_20040 rcvhdrentsize qib_devdata 0 20040 NULL
155933 +enable_so_batadv_interface_change_mtu_fndecl_20043 batadv_interface_change_mtu fndecl 2 20043 NULL nohasharray
155934 +enable_so_id_len_netdev_phys_item_id_20043 id_len netdev_phys_item_id 0 20043 &enable_so_batadv_interface_change_mtu_fndecl_20043
155935 +enable_so_ocrdma_alloc_lkey_fndecl_20045 ocrdma_alloc_lkey fndecl 5 20045 NULL
155936 +enable_so_sys_process_vm_writev_fndecl_20051 sys_process_vm_writev fndecl 3-5 20051 NULL
155937 +enable_so_bfad_iocmd_port_cfg_bbcr_fndecl_20055 bfad_iocmd_port_cfg_bbcr fndecl 0 20055 NULL
155938 +enable_so_prctl_set_auxv_fndecl_20068 prctl_set_auxv fndecl 3 20068 NULL
155939 +enable_so_bfad_iocmd_fcport_get_stats_fndecl_20078 bfad_iocmd_fcport_get_stats fndecl 0 20078 NULL
155940 +enable_so_max_rqst_sz_nfs4_channel_attrs_20083 max_rqst_sz nfs4_channel_attrs 0 20083 NULL nohasharray
155941 +enable_so_fb_deferred_io_fsync_fndecl_20083 fb_deferred_io_fsync fndecl 2-3 20083 &enable_so_max_rqst_sz_nfs4_channel_attrs_20083
155942 +enable_so_compat_rawv6_setsockopt_fndecl_20084 compat_rawv6_setsockopt fndecl 5 20084 NULL
155943 +enable_so_rxsize_grcan_device_config_20087 rxsize grcan_device_config 0 20087 NULL
155944 +enable_so_ath10k_read_chip_id_fndecl_20090 ath10k_read_chip_id fndecl 3 20090 NULL
155945 +enable_so_bnx2_set_rx_ring_size_fndecl_20092 bnx2_set_rx_ring_size fndecl 2 20092 NULL
155946 +enable_so_r8712_read32_fndecl_20095 r8712_read32 fndecl 0 20095 NULL
155947 +enable_so_reg_count_cs_extent_def_20096 reg_count cs_extent_def 0 20096 NULL
155948 +enable_so_dm_bufio_get_block_number_fndecl_20097 dm_bufio_get_block_number fndecl 0 20097 NULL nohasharray
155949 +enable_so_get_hwirq_msi_domain_ops_20097 get_hwirq msi_domain_ops 0 20097 &enable_so_dm_bufio_get_block_number_fndecl_20097
155950 +enable_so_qla82xx_pci_mem_write_direct_fndecl_20099 qla82xx_pci_mem_write_direct fndecl 2 20099 NULL
155951 +enable_so_minimum_v4l2_ctrl_20103 minimum v4l2_ctrl 0 20103 NULL
155952 +enable_so_do_mincore_fndecl_20105 do_mincore fndecl 0-2-1 20105 NULL
155953 +enable_so_max_acl_len_hci_rp_read_data_block_size_20119 max_acl_len hci_rp_read_data_block_size 0 20119 NULL
155954 +enable_so_source_sctphdr_20129 source sctphdr 0 20129 NULL nohasharray
155955 +enable_so_ao_chans_pci224_board_20129 ao_chans pci224_board 0 20129 &enable_so_source_sctphdr_20129
155956 +enable_so_btrfs_punch_hole_fndecl_20130 btrfs_punch_hole fndecl 2-3 20130 NULL
155957 +enable_so_in_ep_snd_usb_midi_endpoint_info_20132 in_ep snd_usb_midi_endpoint_info 0 20132 NULL
155958 +enable_so_data_sectors_per_block_partition_20138 data_sectors_per_block partition 0 20138 NULL
155959 +enable_so_pos_f_hidg_req_list_20147 pos f_hidg_req_list 0 20147 NULL
155960 +enable_so_sk_protocol_sock_20150 sk_protocol sock 0 20150 NULL
155961 +enable_so_ep_in_if_usb_card_20154 ep_in if_usb_card 0 20154 NULL
155962 +enable_so_tpci200_create_device_fndecl_20157 tpci200_create_device fndecl 2 20157 NULL
155963 +enable_so_trans_usbhs_pkt_20158 trans usbhs_pkt 0 20158 NULL nohasharray
155964 +enable_so_byte_cnt_mlx5_cqe64_20158 byte_cnt mlx5_cqe64 0 20158 &enable_so_trans_usbhs_pkt_20158
155965 +enable_so_snd_mixart_BA1_read_fndecl_20169 snd_mixart_BA1_read fndecl 5 20169 NULL
155966 +enable_so_nr_gpio_tle62x0_state_20178 nr_gpio tle62x0_state 0 20178 NULL
155967 +enable_so_usb_ftdi_elan_edset_single_fndecl_20181 usb_ftdi_elan_edset_single fndecl 0 20181 NULL nohasharray
155968 +enable_so_swapRB_sd_20181 swapRB sd 0 20181 &enable_so_usb_ftdi_elan_edset_single_fndecl_20181
155969 +enable_so___kmalloc_track_caller_fndecl_20188 __kmalloc_track_caller fndecl 1 20188 NULL
155970 +enable_so_lookup_memtype_fndecl_20192 lookup_memtype fndecl 1 20192 NULL
155971 +enable_so_agp_memory_reserved_vardecl_20196 agp_memory_reserved vardecl 0 20196 NULL nohasharray
155972 +enable_so_iram_base_intel_sst_drv_20196 iram_base intel_sst_drv 0 20196 &enable_so_agp_memory_reserved_vardecl_20196
155973 +enable_so_qxl_gem_object_create_with_handle_fndecl_20198 qxl_gem_object_create_with_handle fndecl 4 20198 NULL
155974 +enable_so_fpage_size_genwqe_sgl_20199 fpage_size genwqe_sgl 0 20199 NULL
155975 +enable_so_sectors_per_block_bits_dm_bufio_client_20202 sectors_per_block_bits dm_bufio_client 0 20202 NULL
155976 +enable_so_max_frame_size__mgslpc_info_20204 max_frame_size _mgslpc_info 0 20204 NULL
155977 +enable_so_sbq_len_rx_ring_20205 sbq_len rx_ring 0 20205 NULL
155978 +enable_so_i40e_dbg_netdev_ops_write_fndecl_20206 i40e_dbg_netdev_ops_write fndecl 3 20206 NULL
155979 +enable_so_kfifo_copy_from_user_fndecl_20208 kfifo_copy_from_user fndecl 3-4-0 20208 NULL
155980 +enable_so_dma_limit_tg3_20210 dma_limit tg3 0 20210 NULL
155981 +enable_so_objlayout_write_done_fndecl_20211 objlayout_write_done fndecl 2 20211 NULL nohasharray
155982 +enable_so_sglen_usbtest_param_20211 sglen usbtest_param 0 20211 &enable_so_objlayout_write_done_fndecl_20211
155983 +enable_so_compr_fill_fndecl_20214 compr_fill fndecl 2 20214 NULL
155984 +enable_so_rx_buffer_size_freelQ_20218 rx_buffer_size freelQ 0 20218 NULL
155985 +enable_so_dmah_acm_wb_20221 dmah acm_wb 0 20221 NULL nohasharray
155986 +enable_so_sound_write_fndecl_20221 sound_write fndecl 3 20221 &enable_so_dmah_acm_wb_20221
155987 +enable_so_produce_va_vmci_qp_page_file_info_20224 produce_va vmci_qp_page_file_info 0 20224 NULL
155988 +enable_so_use_sg_osst_buffer_20225 use_sg osst_buffer 0 20225 NULL
155989 +enable_so_iwl_dbgfs_tx_queue_read_fndecl_20232 iwl_dbgfs_tx_queue_read fndecl 3 20232 NULL
155990 +enable_so_ll_rw_extents_stats_seq_write_fndecl_20234 ll_rw_extents_stats_seq_write fndecl 3 20234 NULL
155991 +enable_so_setup_sgl_buf_fndecl_20237 setup_sgl_buf fndecl 4 20237 NULL
155992 +enable_so_phys_map_info_20239 phys map_info 0 20239 NULL
155993 +enable_so_mac_find_mode_fndecl_20243 mac_find_mode fndecl 4 20243 NULL
155994 +enable_so_vtotal_psb_pipe_20245 vtotal psb_pipe 0 20245 NULL
155995 +enable_so_nilfs_read_super_block_fndecl_20246 nilfs_read_super_block fndecl 3-2 20246 NULL
155996 +enable_so_i2c_writebytes_fndecl_20248 i2c_writebytes fndecl 3 20248 NULL
155997 +enable_so_max_size_inet_frag_queue_20249 max_size inet_frag_queue 0 20249 NULL
155998 +enable_so_ip_append_page_fndecl_20261 ip_append_page fndecl 5-4 20261 NULL
155999 +enable_so_value_len_ocfs2_security_xattr_info_20265 value_len ocfs2_security_xattr_info 0 20265 NULL
156000 +enable_so_build_header_fndecl_20275 build_header fndecl 4-2 20275 NULL
156001 +enable_so_y_skip_top_mt9t031_20278 y_skip_top mt9t031 0 20278 NULL
156002 +enable_so_fifo_size_eg20t_port_20279 fifo_size eg20t_port 0 20279 NULL
156003 +enable_so_f2fs_xattr_generic_set_fndecl_20280 f2fs_xattr_generic_set fndecl 4 20280 NULL
156004 +enable_so_size_vx_ibl_info_20282 size vx_ibl_info 0 20282 NULL
156005 +enable_so_soc_mbus_bytes_per_line_fndecl_20288 soc_mbus_bytes_per_line fndecl 0-1 20288 NULL
156006 +enable_so_kone_receive_fndecl_20289 kone_receive fndecl 4 20289 NULL
156007 +enable_so___gre_xmit_fndecl_20291 __gre_xmit fndecl 4 20291 NULL
156008 +enable_so_blk_queue_io_min_fndecl_20293 blk_queue_io_min fndecl 2 20293 NULL
156009 +enable_so_gen8_get_total_gtt_size_fndecl_20302 gen8_get_total_gtt_size fndecl 0-1 20302 NULL nohasharray
156010 +enable_so_total_blocks_partition_20302 total_blocks partition 0 20302 &enable_so_gen8_get_total_gtt_size_fndecl_20302 nohasharray
156011 +enable_so_round_pipe_size_fndecl_20302 round_pipe_size fndecl 0 20302 &enable_so_total_blocks_partition_20302
156012 +enable_so_mpegbufs_vardecl_cx231xx_417_c_20303 mpegbufs vardecl_cx231xx-417.c 0 20303 NULL
156013 +enable_so_fallback_aper_order_vardecl_20308 fallback_aper_order vardecl 0 20308 NULL
156014 +enable_so_xfs_dir2_leaf_trim_data_fndecl_20310 xfs_dir2_leaf_trim_data fndecl 3 20310 NULL nohasharray
156015 +enable_so_index_vardecl_nm256_c_20310 index vardecl_nm256.c 0 20310 &enable_so_xfs_dir2_leaf_trim_data_fndecl_20310
156016 +enable_so_cx18_read_pos_fndecl_20312 cx18_read_pos fndecl 3 20312 NULL
156017 +enable_so_short_retry_limit_read_fndecl_20316 short_retry_limit_read fndecl 3 20316 NULL
156018 +enable_so_cas_change_mtu_fndecl_20320 cas_change_mtu fndecl 2 20320 NULL
156019 +enable_so_ati_create_gatt_pages_fndecl_20321 ati_create_gatt_pages fndecl 1 20321 NULL
156020 +enable_so_max_rxsz_cxgbi_ddp_info_20322 max_rxsz cxgbi_ddp_info 0 20322 NULL nohasharray
156021 +enable_so_num_cvts_hdmi_spec_20322 num_cvts hdmi_spec 0 20322 &enable_so_max_rxsz_cxgbi_ddp_info_20322
156022 +enable_so_len_cpl_iscsi_hdr_norss_20324 len cpl_iscsi_hdr_norss 0 20324 NULL
156023 +enable_so_i_ecryptfs_parse_tag_70_packet_silly_stack_20325 i ecryptfs_parse_tag_70_packet_silly_stack 0 20325 NULL
156024 +enable_so_at24_eeprom_read_fndecl_20329 at24_eeprom_read fndecl 4-0 20329 NULL
156025 +enable_so_qlf_blkno_xfs_dq_logformat_20330 qlf_blkno xfs_dq_logformat 0 20330 NULL
156026 +enable_so_ext4_ext_put_gap_in_cache_fndecl_20333 ext4_ext_put_gap_in_cache fndecl 3 20333 NULL
156027 +enable_so_cxgbi_alloc_big_mem_fndecl_20336 cxgbi_alloc_big_mem fndecl 1 20336 NULL
156028 +enable_so_ss_out_channels_hdspm_20338 ss_out_channels hdspm 0 20338 NULL
156029 +enable_so_offset_videobuf_dmabuf_20339 offset videobuf_dmabuf 0 20339 NULL
156030 +enable_so_request_sz_MPT2SAS_ADAPTER_20341 request_sz MPT2SAS_ADAPTER 0 20341 NULL
156031 +enable_so_translate_gpa_kvm_mmu_20350 translate_gpa kvm_mmu 0 20350 NULL nohasharray
156032 +enable_so_sq_wqe_count_mlx5_ib_create_qp_20350 sq_wqe_count mlx5_ib_create_qp 0 20350 &enable_so_translate_gpa_kvm_mmu_20350
156033 +enable_so_sections_pe_hdr_20351 sections pe_hdr 0 20351 NULL
156034 +enable_so_snap_type_rfc1042_hdr_20355 snap_type rfc1042_hdr 0 20355 NULL
156035 +enable_so_memblock_find_in_range_fndecl_20356 memblock_find_in_range fndecl 0-4-3-1-2 20356 NULL
156036 +enable_so_chipshift_alauda_card_info_20364 chipshift alauda_card_info 0 20364 NULL
156037 +enable_so_type_usbdevfs_urb_20367 type usbdevfs_urb 0 20367 NULL
156038 +enable_so_scsi_debug_num_tgts_vardecl_scsi_debug_c_20370 scsi_debug_num_tgts vardecl_scsi_debug.c 0 20370 NULL
156039 +enable_so_ll_rw_offset_stats_seq_write_fndecl_20371 ll_rw_offset_stats_seq_write fndecl 3 20371 NULL
156040 +enable_so_hw_block_size_se_dev_attrib_20373 hw_block_size se_dev_attrib 0 20373 NULL nohasharray
156041 +enable_so_cfgctxts_qib_devdata_20373 cfgctxts qib_devdata 0 20373 &enable_so_hw_block_size_se_dev_attrib_20373
156042 +enable_so_nstamps_max_mask_recent_table_20374 nstamps_max_mask recent_table 0 20374 NULL
156043 +enable_so_drm_fb_helper_sys_read_fndecl_20376 drm_fb_helper_sys_read fndecl 3 20376 NULL
156044 +enable_so_xfs_qm_fill_state_fndecl_20384 xfs_qm_fill_state fndecl 4 20384 NULL nohasharray
156045 +enable_so_ms_transfer_data_fndecl_20384 ms_transfer_data fndecl 0 20384 &enable_so_xfs_qm_fill_state_fndecl_20384
156046 +enable_so_opts1_rx_desc_20387 opts1 rx_desc 0 20387 NULL
156047 +enable_so_btrfs_del_items_fndecl_20388 btrfs_del_items fndecl 5 20388 NULL
156048 +enable_so_periodic_size_fotg210_hcd_20395 periodic_size fotg210_hcd 0 20395 NULL
156049 +enable_so_leb_size_ubi_device_20396 leb_size ubi_device 0 20396 NULL
156050 +enable_so_inode_efs_dentry_20401 inode efs_dentry 0 20401 NULL
156051 +enable_so_xfs_qm_dqusage_adjust_fndecl_20403 xfs_qm_dqusage_adjust fndecl 2 20403 NULL nohasharray
156052 +enable_so_regulator_register_always_on_fndecl_20403 regulator_register_always_on fndecl 1 20403 &enable_so_xfs_qm_dqusage_adjust_fndecl_20403
156053 +enable_so_pwr_rcvd_bcns_cnt_read_fndecl_20405 pwr_rcvd_bcns_cnt_read fndecl 3 20405 NULL
156054 +enable_so_diversity_total_num_of_toggles_read_fndecl_20407 diversity_total_num_of_toggles_read fndecl 3 20407 NULL
156055 +enable_so_mc_rreg_radeon_device_20418 mc_rreg radeon_device 0 20418 NULL
156056 +enable_so_sd_log_head_gfs2_sbd_20435 sd_log_head gfs2_sbd 0 20435 NULL
156057 +enable_so_max_vblank_mt9v032_model_data_20437 max_vblank mt9v032_model_data 0 20437 NULL nohasharray
156058 +enable_so_blob_len_trusted_key_payload_20437 blob_len trusted_key_payload 0 20437 &enable_so_max_vblank_mt9v032_model_data_20437 nohasharray
156059 +enable_so_raw_skid_size_x509_certificate_20437 raw_skid_size x509_certificate 0 20437 &enable_so_blob_len_trusted_key_payload_20437
156060 +enable_so_ncp__vol2io_fndecl_20439 ncp__vol2io fndecl 5 20439 NULL
156061 +enable_so_gigaset_isoc_receive_fndecl_20447 gigaset_isoc_receive fndecl 2 20447 NULL
156062 +enable_so___smiapp_read_fndecl_20448 __smiapp_read fndecl 2 20448 NULL
156063 +enable_so_ib_max_size_mvumi_hba_20452 ib_max_size mvumi_hba 0 20452 NULL
156064 +enable_so_stride_banshee_reg_20459 stride banshee_reg 0 20459 NULL
156065 +enable_so_error_elp_while_rx_exch_read_fndecl_20460 error_elp_while_rx_exch_read fndecl 3 20460 NULL
156066 +enable_so_key_tx_spec_read_fndecl_20461 key_tx_spec_read fndecl 3 20461 NULL
156067 +enable_so_gigaset_if_receive_fndecl_20462 gigaset_if_receive fndecl 3 20462 NULL
156068 +enable_so_xfs_setsize_buftarg_fndecl_20465 xfs_setsize_buftarg fndecl 2 20465 NULL
156069 +enable_so_scsi_end_request_fndecl_20468 scsi_end_request fndecl 3-4-2 20468 NULL
156070 +enable_so_tx_data_fndecl_20470 tx_data fndecl 4-3 20470 NULL
156071 +enable_so_wMaxCommand_usb_cdc_dmm_desc_20473 wMaxCommand usb_cdc_dmm_desc 0 20473 NULL
156072 +enable_so_iptunnel_pull_header_fndecl_20476 iptunnel_pull_header fndecl 3-2 20476 NULL nohasharray
156073 +enable_so_vlen_nfsd3_readargs_20476 vlen nfsd3_readargs 0 20476 &enable_so_iptunnel_pull_header_fndecl_20476
156074 +enable_so_gsm_control_rls_fndecl_20490 gsm_control_rls fndecl 3 20490 NULL
156075 +enable_so_rose_recvmsg_fndecl_20491 rose_recvmsg fndecl 3 20491 NULL
156076 +enable_so_ext4_ext_insert_index_fndecl_20492 ext4_ext_insert_index fndecl 4 20492 NULL
156077 +enable_so_pref_width_vmw_display_unit_20493 pref_width vmw_display_unit 0 20493 NULL
156078 +enable_so_pageshift_sddr09_card_info_20494 pageshift sddr09_card_info 0 20494 NULL
156079 +enable_so_nrbchan_mISDNdevice_20497 nrbchan mISDNdevice 0 20497 NULL
156080 +enable_so_ocfs2_extend_xattr_bucket_fndecl_20499 ocfs2_extend_xattr_bucket fndecl 4 20499 NULL
156081 +enable_so_aac_rkt_ioremap_fndecl_20502 aac_rkt_ioremap fndecl 2 20502 NULL nohasharray
156082 +enable_so___f2fs_add_link_fndecl_20502 __f2fs_add_link fndecl 4 20502 &enable_so_aac_rkt_ioremap_fndecl_20502
156083 +enable_so_nzones_adfs_discrecord_20503 nzones adfs_discrecord 0 20503 NULL nohasharray
156084 +enable_so_max_pfn_mapped_vardecl_20503 max_pfn_mapped vardecl 0 20503 &enable_so_nzones_adfs_discrecord_20503 nohasharray
156085 +enable_so_id_platform_device_20503 id platform_device 0 20503 &enable_so_max_pfn_mapped_vardecl_20503
156086 +enable_so_sysfs_create_group_fndecl_20504 sysfs_create_group fndecl 0 20504 NULL
156087 +enable_so_tty_port_register_device_attr_fndecl_20510 tty_port_register_device_attr fndecl 3 20510 NULL
156088 +enable_so_data_len_icmp_bxm_20511 data_len icmp_bxm 0 20511 NULL
156089 +enable_so_newImageSize_mpt_ioctl_replace_fw_20513 newImageSize mpt_ioctl_replace_fw 0 20513 NULL
156090 +enable_so_cifs_write_fndecl_20515 cifs_write fndecl 4 20515 NULL
156091 +enable_so_vdc_mem_base_vml_par_20521 vdc_mem_base vml_par 0 20521 NULL
156092 +enable_so_tclass_flowlabel_mlx5_qp_path_20522 tclass_flowlabel mlx5_qp_path 0 20522 NULL
156093 +enable_so_xtAppend_fndecl_20525 xtAppend fndecl 4 20525 NULL
156094 +enable_so_x86_emulate_instruction_fndecl_20526 x86_emulate_instruction fndecl 2 20526 NULL
156095 +enable_so_expand_downwards_fndecl_20533 expand_downwards fndecl 2 20533 NULL nohasharray
156096 +enable_so_sr_read_fndecl_20533 sr_read fndecl 3 20533 &enable_so_expand_downwards_fndecl_20533
156097 +enable_so_pnfs_generic_pg_init_write_fndecl_20539 pnfs_generic_pg_init_write fndecl 3 20539 NULL
156098 +enable_so_mlx5_core_req_pages_handler_fndecl_20540 mlx5_core_req_pages_handler fndecl 3 20540 NULL
156099 +enable_so_s_first_data_block_ext2_super_block_20541 s_first_data_block ext2_super_block 0 20541 NULL
156100 +enable_so_dti_buf_size_wahc_20547 dti_buf_size wahc 0 20547 NULL
156101 +enable_so_crtc_hdisplay_drm_display_mode_20548 crtc_hdisplay drm_display_mode 0 20548 NULL nohasharray
156102 +enable_so_input_estimate_events_per_packet_fndecl_20548 input_estimate_events_per_packet fndecl 0 20548 &enable_so_crtc_hdisplay_drm_display_mode_20548
156103 +enable_so_dataflash_write_fndecl_20550 dataflash_write fndecl 2-3 20550 NULL
156104 +enable_so_dma_base_sst_pdata_20554 dma_base sst_pdata 0 20554 NULL
156105 +enable_so_wacom_calc_hid_res_fndecl_20558 wacom_calc_hid_res fndecl 1 20558 NULL
156106 +enable_so_mtdchar_writeoob_fndecl_20562 mtdchar_writeoob fndecl 3-4 20562 NULL
156107 +enable_so_sg_write_fndecl_20563 sg_write fndecl 3 20563 NULL
156108 +enable_so_isdn_readbchan_fndecl_20570 isdn_readbchan fndecl 5-0 20570 NULL
156109 +enable_so_nullb_indexes_vardecl_null_blk_c_20571 nullb_indexes vardecl_null_blk.c 0 20571 NULL
156110 +enable_so_check_defrag_in_cache_fndecl_20573 check_defrag_in_cache fndecl 3-2 20573 NULL
156111 +enable_so_hp_outs_auto_pin_cfg_20574 hp_outs auto_pin_cfg 0 20574 NULL
156112 +enable_so_fifo_size_pxa_ep_20587 fifo_size pxa_ep 0 20587 NULL
156113 +enable_so_nrof_flowrings_brcmf_pcie_shared_info_20590 nrof_flowrings brcmf_pcie_shared_info 0 20590 NULL
156114 +enable_so_pci_add_cap_save_buffer_fndecl_20593 pci_add_cap_save_buffer fndecl 3 20593 NULL
156115 +enable_so_target_complete_cmd_with_length_fndecl_20597 target_complete_cmd_with_length fndecl 3 20597 NULL
156116 +enable_so_max_deviceinfo_size_pnfs_layoutdriver_type_20599 max_deviceinfo_size pnfs_layoutdriver_type 0 20599 NULL
156117 +enable_so_bblog_shift_mdp_superblock_1_20604 bblog_shift mdp_superblock_1 0 20604 NULL
156118 +enable_so_get_alt_usb_function_20605 get_alt usb_function 0 20605 NULL nohasharray
156119 +enable_so_cdrom_read_block_fndecl_20605 cdrom_read_block fndecl 4-6 20605 &enable_so_get_alt_usb_function_20605
156120 +enable_so_ext4_inode_table_set_fndecl_20611 ext4_inode_table_set fndecl 3 20611 NULL
156121 +enable_so_nilfs_cpfile_set_snapshot_fndecl_20616 nilfs_cpfile_set_snapshot fndecl 2 20616 NULL
156122 +enable_so_ocfs2_allocate_refcount_tree_fndecl_20626 ocfs2_allocate_refcount_tree fndecl 2 20626 NULL
156123 +enable_so___nla_put_nohdr_fndecl_20631 __nla_put_nohdr fndecl 2 20631 NULL
156124 +enable_so_snd_pcm_lib_readv_transfer_fndecl_20635 snd_pcm_lib_readv_transfer fndecl 5 20635 NULL
156125 +enable_so_gx1_frame_buffer_size_fndecl_20638 gx1_frame_buffer_size fndecl 0 20638 NULL
156126 +enable_so_num_comp_vectors_ib_device_20639 num_comp_vectors ib_device 0 20639 NULL
156127 +enable_so_cursor_size_fbcon_ops_20640 cursor_size fbcon_ops 0 20640 NULL
156128 +enable_so_hpi_outstream_write_buf_fndecl_20645 hpi_outstream_write_buf fndecl 3 20645 NULL
156129 +enable_so_offset_iscsi_seq_20646 offset iscsi_seq 0 20646 NULL
156130 +enable_so_nr_pages_ore_io_state_20648 nr_pages ore_io_state 0 20648 NULL
156131 +enable_so_m_pblk_ext4_map_blocks_20649 m_pblk ext4_map_blocks 0 20649 NULL
156132 +enable_so_security_context_to_sid_default_fndecl_20663 security_context_to_sid_default fndecl 2 20663 NULL
156133 +enable_so_dlm_process_incoming_buffer_fndecl_20665 dlm_process_incoming_buffer fndecl 0 20665 NULL nohasharray
156134 +enable_so_max_feed_count_dvb_usb_adapter_20665 max_feed_count dvb_usb_adapter 0 20665 &enable_so_dlm_process_incoming_buffer_fndecl_20665
156135 +enable_so_kvm_handle_bad_page_fndecl_20668 kvm_handle_bad_page fndecl 2 20668 NULL
156136 +enable_so_shim_size_sst_res_info_20670 shim_size sst_res_info 0 20670 NULL
156137 +enable_so_nilfs_load_super_root_fndecl_20676 nilfs_load_super_root fndecl 3 20676 NULL
156138 +enable_so_max_qp_wr_ib_device_attr_20681 max_qp_wr ib_device_attr 0 20681 NULL
156139 +enable_so_btrfs_dir_name_len_fndecl_20686 btrfs_dir_name_len fndecl 0 20686 NULL
156140 +enable_so_write_to_8820_fndecl_20687 write_to_8820 fndecl 3 20687 NULL
156141 +enable_so_num_evt_qs_be_adapter_20688 num_evt_qs be_adapter 0 20688 NULL
156142 +enable_so_SyS_semtimedop_fndecl_20703 SyS_semtimedop fndecl 3 20703 NULL
156143 +enable_so_erase_size_vardecl_mtdram_c_20704 erase_size vardecl_mtdram.c 0 20704 NULL
156144 +enable_so_evtchn_read_fndecl_20706 evtchn_read fndecl 3 20706 NULL
156145 +enable_so_err_dev_e752x_dev_info_20708 err_dev e752x_dev_info 0 20708 NULL
156146 +enable_so_nilfs_sufile_do_free_fndecl_20709 nilfs_sufile_do_free fndecl 2 20709 NULL
156147 +enable_so_src_len_ccp_rsa_engine_20712 src_len ccp_rsa_engine 0 20712 NULL
156148 +enable_so_w_s5p_jpeg_q_data_20716 w s5p_jpeg_q_data 0 20716 NULL
156149 +enable_so_ip_blkno_ocfs2_inode_info_20717 ip_blkno ocfs2_inode_info 0 20717 NULL nohasharray
156150 +enable_so_len_asymmetric_key_id_20717 len asymmetric_key_id 0 20717 &enable_so_ip_blkno_ocfs2_inode_info_20717
156151 +enable_so_dlc_rx_msg_20720 dlc rx_msg 0 20720 NULL
156152 +enable_so_add_range_fndecl_20721 add_range fndecl 5-4 20721 NULL
156153 +enable_so_txq_data_size_ieee80211_hw_20725 txq_data_size ieee80211_hw 0 20725 NULL
156154 +enable_so_sv_nrthreads_svc_serv_20732 sv_nrthreads svc_serv 0 20732 NULL
156155 +enable_so_alloc_smp_resp_fndecl_20733 alloc_smp_resp fndecl 1 20733 NULL
156156 +enable_so_flush_data_end_io_fndecl_20735 flush_data_end_io fndecl 2 20735 NULL nohasharray
156157 +enable_so_stv0680_set_video_mode_fndecl_20735 stv0680_set_video_mode fndecl 0 20735 &enable_so_flush_data_end_io_fndecl_20735
156158 +enable_so_max_io_length_ore_layout_20738 max_io_length ore_layout 0 20738 NULL
156159 +enable_so_bio_integrity_intervals_fndecl_20741 bio_integrity_intervals fndecl 0-2 20741 NULL
156160 +enable_so_read_data_done_iscsi_cmd_20745 read_data_done iscsi_cmd 0 20745 NULL
156161 +enable_so_max_sge_qib_rq_20746 max_sge qib_rq 0 20746 NULL nohasharray
156162 +enable_so_msgbuflen_blogic_adapter_20746 msgbuflen blogic_adapter 0 20746 &enable_so_max_sge_qib_rq_20746
156163 +enable_so_rb_alloc_fndecl_20749 rb_alloc fndecl 1 20749 NULL
156164 +enable_so_sb_pseg_start_nilfs_segment_buffer_20750 sb_pseg_start nilfs_segment_buffer 0 20750 NULL
156165 +enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751 ath6kl_wmi_probedssid_cmd fndecl 2 20751 NULL nohasharray
156166 +enable_so_ttusb2_msg_fndecl_20751 ttusb2_msg fndecl 4 20751 &enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751
156167 +enable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 3 20758 NULL
156168 +enable_so_TransferCount__MPI2_SCSI_IO_REPLY_20759 TransferCount _MPI2_SCSI_IO_REPLY 0 20759 NULL
156169 +enable_so_do_numa_page_fndecl_20764 do_numa_page fndecl 3 20764 NULL nohasharray
156170 +enable_so_r_readdir_offset_ceph_mds_request_20764 r_readdir_offset ceph_mds_request 0 20764 &enable_so_do_numa_page_fndecl_20764
156171 +enable_so_read_in_block_fndecl_20766 read_in_block fndecl 3 20766 NULL
156172 +enable_so_simple_write_to_buffer_fndecl_20769 simple_write_to_buffer fndecl 2-5 20769 NULL
156173 +enable_so_channels_min_snd_soc_pcm_stream_20771 channels_min snd_soc_pcm_stream 0 20771 NULL nohasharray
156174 +enable_so_tx_ring_size_mlx4_en_port_profile_20771 tx_ring_size mlx4_en_port_profile 0 20771 &enable_so_channels_min_snd_soc_pcm_stream_20771
156175 +enable_so_ltab_sz_ubifs_info_20776 ltab_sz ubifs_info 0 20776 NULL
156176 +enable_so_fat_fats_fat_bios_param_block_20785 fat_fats fat_bios_param_block 0 20785 NULL
156177 +enable_so_orig_x_screen_info_20787 orig_x screen_info 0 20787 NULL nohasharray
156178 +enable_so_ncp_search_for_fileset_fndecl_20787 ncp_search_for_fileset fndecl 6 20787 &enable_so_orig_x_screen_info_20787
156179 +enable_so_final_block_in_request_dio_submit_20788 final_block_in_request dio_submit 0 20788 NULL
156180 +enable_so_map_size_pcmcia_socket_20792 map_size pcmcia_socket 0 20792 NULL
156181 +enable_so_max_seg_size_mmc_host_20795 max_seg_size mmc_host 0 20795 NULL nohasharray
156182 +enable_so_pos_vb2_fileio_buf_20795 pos vb2_fileio_buf 0 20795 &enable_so_max_seg_size_mmc_host_20795
156183 +enable_so_rds_iw_ring_init_fndecl_20797 rds_iw_ring_init fndecl 2 20797 NULL
156184 +enable_so_namelen_xfs_da_args_20803 namelen xfs_da_args 0 20803 NULL nohasharray
156185 +enable_so_win_sz_wmi_addba_req_event_20803 win_sz wmi_addba_req_event 0 20803 &enable_so_namelen_xfs_da_args_20803
156186 +enable_so_compat_sys_migrate_pages_fndecl_20806 compat_sys_migrate_pages fndecl 2 20806 NULL
156187 +enable_so_g_mic_devno_vardecl_mic_main_c_20812 g_mic_devno vardecl_mic_main.c 0 20812 NULL
156188 +enable_so_mgmt_index_event_fndecl_20813 mgmt_index_event fndecl 4 20813 NULL
156189 +enable_so_rcvidx_isac_20815 rcvidx isac 0 20815 NULL
156190 +enable_so_filldir_fndecl_20820 filldir fndecl 3 20820 NULL
156191 +enable_so_fill_write_buffer_fndecl_20821 fill_write_buffer fndecl 3 20821 NULL
156192 +enable_so_irq_msi_desc_20822 irq msi_desc 0 20822 NULL
156193 +enable_so_via686a_device_add_fndecl_20823 via686a_device_add fndecl 1 20823 NULL
156194 +enable_so_aux_size_dm_bufio_client_20827 aux_size dm_bufio_client 0 20827 NULL
156195 +enable_so_drm_fb_helper_single_fb_probe_fndecl_20828 drm_fb_helper_single_fb_probe fndecl 2 20828 NULL
156196 +enable_so_compat_do_ip6t_set_ctl_fndecl_20835 compat_do_ip6t_set_ctl fndecl 4 20835 NULL
156197 +enable_so_mempool_create_node_fndecl_20836 mempool_create_node fndecl 1 20836 NULL
156198 +enable_so_adv_smbus_read_byte_data_check_fndecl_20838 adv_smbus_read_byte_data_check fndecl 0 20838 NULL nohasharray
156199 +enable_so_num_crtc_radeon_device_20838 num_crtc radeon_device 0 20838 &enable_so_adv_smbus_read_byte_data_check_fndecl_20838
156200 +enable_so_alloc_context_fndecl_20841 alloc_context fndecl 1 20841 NULL
156201 +enable_so_pathlen_nfs3_symlinkargs_20843 pathlen nfs3_symlinkargs 0 20843 NULL
156202 +enable_so_udp_sendpage_fndecl_20845 udp_sendpage fndecl 4-3 20845 NULL nohasharray
156203 +enable_so_shmem_pread_slow_fndecl_20845 shmem_pread_slow fndecl 2-3 20845 &enable_so_udp_sendpage_fndecl_20845
156204 +enable_so_dma_init_coherent_memory_fndecl_20846 dma_init_coherent_memory fndecl 3 20846 NULL
156205 +enable_so_store_limit_l_fscache_object_20847 store_limit_l fscache_object 0 20847 NULL
156206 +enable_so_cur_page_block_dio_submit_20851 cur_page_block dio_submit 0 20851 NULL
156207 +enable_so_pkcs7_sig_note_signature_fndecl_20857 pkcs7_sig_note_signature fndecl 5 20857 NULL
156208 +enable_so_lpfc_bg_setup_bpl_fndecl_20862 lpfc_bg_setup_bpl fndecl 0 20862 NULL nohasharray
156209 +enable_so_uinput_ioctl_handler_fndecl_20862 uinput_ioctl_handler fndecl 2 20862 &enable_so_lpfc_bg_setup_bpl_fndecl_20862 nohasharray
156210 +enable_so_uvc_video_stats_dump_fndecl_20862 uvc_video_stats_dump fndecl 0 20862 &enable_so_uinput_ioctl_handler_fndecl_20862
156211 +enable_so_beb_rsvd_pebs_ubi_device_20863 beb_rsvd_pebs ubi_device 0 20863 NULL
156212 +enable_so_num_rx_descs_octeon_nic_if_config_20865 num_rx_descs octeon_nic_if_config 0 20865 NULL
156213 +enable_so_offset44_cm_req_msg_20869 offset44 cm_req_msg 0 20869 NULL nohasharray
156214 +enable_so_num_mlx4_resource_20869 num mlx4_resource 0 20869 &enable_so_offset44_cm_req_msg_20869
156215 +enable_so_length_iwl_ucode_tlv_20871 length iwl_ucode_tlv 0 20871 NULL
156216 +enable_so_btrfs_prealloc_file_range_fndecl_20872 btrfs_prealloc_file_range fndecl 3 20872 NULL
156217 +enable_so_nr_hotspot_blocks_smq_policy_20876 nr_hotspot_blocks smq_policy 0 20876 NULL
156218 +enable_so_usb_stor_intr_transfer_fndecl_20883 usb_stor_intr_transfer fndecl 3 20883 NULL
156219 +enable_so_codec_reg_write_file_fndecl_20887 codec_reg_write_file fndecl 3 20887 NULL
156220 +enable_so_cl_local_node_o2nm_cluster_20896 cl_local_node o2nm_cluster 0 20896 NULL
156221 +enable_so_idiag_info_size_inet_diag_handler_20898 idiag_info_size inet_diag_handler 0 20898 NULL
156222 +enable_so_check_vendor_extension_fndecl_20901 check_vendor_extension fndecl 1 20901 NULL
156223 +enable_so_num_rows_vardecl_arcfb_c_20902 num_rows vardecl_arcfb.c 0 20902 NULL
156224 +enable_so_radeon_vm_directory_size_fndecl_20909 radeon_vm_directory_size fndecl 0 20909 NULL
156225 +enable_so_aggr_size_tx_agg_len_read_fndecl_20910 aggr_size_tx_agg_len_read fndecl 3 20910 NULL
156226 +enable_so_write_adapter_mem_fndecl_20913 write_adapter_mem fndecl 3 20913 NULL
156227 +enable_so_n_dir_band_hpfs_super_block_20914 n_dir_band hpfs_super_block 0 20914 NULL nohasharray
156228 +enable_so_dvb_ringbuffer_pkt_write_fndecl_20914 dvb_ringbuffer_pkt_write fndecl 3 20914 &enable_so_n_dir_band_hpfs_super_block_20914
156229 +enable_so_btrfs_next_leaf_fndecl_20915 btrfs_next_leaf fndecl 0 20915 NULL
156230 +enable_so_zisofs_uncompress_block_fndecl_20917 zisofs_uncompress_block fndecl 2-3-6-0-4 20917 NULL
156231 +enable_so_key_key_read_fndecl_20922 key_key_read fndecl 3 20922 NULL
156232 +enable_so_mmap_piobufs_fndecl_20927 mmap_piobufs fndecl 4 20927 NULL
156233 +enable_so_qbuf_scan_fndecl_20933 qbuf_scan fndecl 3 20933 NULL
156234 +enable_so_pkey_index_mlx4_qp_path_20950 pkey_index mlx4_qp_path 0 20950 NULL
156235 +enable_so_gid_table_len_mthca_limits_20957 gid_table_len mthca_limits 0 20957 NULL
156236 +enable_so_npages_mlx5_buf_20958 npages mlx5_buf 0 20958 NULL
156237 +enable_so__iwl_dbgfs_d3_sram_write_fndecl_20960 _iwl_dbgfs_d3_sram_write fndecl 3 20960 NULL
156238 +enable_so_calc_plane_fndecl_20962 calc_plane fndecl 0-2-1 20962 NULL
156239 +enable_so_range_start_writeback_control_20965 range_start writeback_control 0 20965 NULL
156240 +enable_so_dbDiscardAG_fndecl_20969 dbDiscardAG fndecl 0-3 20969 NULL
156241 +enable_so_count_cma_20973 count cma 0 20973 NULL nohasharray
156242 +enable_so_compat_sys_setsockopt_fndecl_20973 compat_sys_setsockopt fndecl 5 20973 &enable_so_count_cma_20973
156243 +enable_so_skd_preop_sg_list_fndecl_20975 skd_preop_sg_list fndecl 0 20975 NULL
156244 +enable_so_ieee80211_if_write_beacon_loss_fndecl_20979 ieee80211_if_write_beacon_loss fndecl 3 20979 NULL
156245 +enable_so_offset_fuse_notify_store_out_20985 offset fuse_notify_store_out 0 20985 NULL
156246 +enable_so___set_extent_bit_fndecl_20986 __set_extent_bit fndecl 3-2 20986 NULL nohasharray
156247 +enable_so_spidev_compat_ioc_message_fndecl_20986 spidev_compat_ioc_message fndecl 2 20986 &enable_so___set_extent_bit_fndecl_20986
156248 +enable_so_dy_fb_image_20988 dy fb_image 0 20988 NULL
156249 +enable_so_gfn_guest_walker32_20990 gfn guest_walker32 0 20990 NULL
156250 +enable_so_do_set_pte_fndecl_20994 do_set_pte fndecl 2 20994 NULL
156251 +enable_so_rate_ib_sa_mcmember_rec_20997 rate ib_sa_mcmember_rec 0 20997 NULL
156252 +enable_so_udf_direct_IO_fndecl_20999 udf_direct_IO fndecl 3 20999 NULL
156253 +enable_so_get_fd_set_fndecl_21001 get_fd_set fndecl 1 21001 NULL
156254 +enable_so_sst_hsw_module_set_param_fndecl_21007 sst_hsw_module_set_param fndecl 5 21007 NULL
156255 +enable_so_cxns_per_ctrl_hba_parameters_21008 cxns_per_ctrl hba_parameters 0 21008 NULL
156256 +enable_so_controller_function_mspro_sys_info_21011 controller_function mspro_sys_info 0 21011 NULL
156257 +enable_so_s_log_cluster_size_ext4_super_block_21014 s_log_cluster_size ext4_super_block 0 21014 NULL
156258 +enable_so_shrink_zone_span_fndecl_21018 shrink_zone_span fndecl 3-2 21018 NULL
156259 +enable_so_create_one_cdev_fndecl_21023 create_one_cdev fndecl 2 21023 NULL
156260 +enable_so___build_skb_fndecl_21024 __build_skb fndecl 2 21024 NULL
156261 +enable_so_minix_new_block_fndecl_21026 minix_new_block fndecl 0 21026 NULL
156262 +enable_so_bfad_iocmd_lport_get_rports_fndecl_21027 bfad_iocmd_lport_get_rports fndecl 0 21027 NULL
156263 +enable_so_count_debug_buffer_21028 count debug_buffer 0 21028 NULL
156264 +enable_so_nvram_write_fndecl_21029 nvram_write fndecl 3 21029 NULL
156265 +enable_so_efivarfs_file_read_fndecl_21030 efivarfs_file_read fndecl 3 21030 NULL
156266 +enable_so_comedi_buf_read_n_available_fndecl_21032 comedi_buf_read_n_available fndecl 0 21032 NULL
156267 +enable_so_fw_resource_count_efi_system_resource_table_21033 fw_resource_count efi_system_resource_table 0 21033 NULL nohasharray
156268 +enable_so_pipeline_pre_proc_swi_read_fndecl_21033 pipeline_pre_proc_swi_read fndecl 3 21033 &enable_so_fw_resource_count_efi_system_resource_table_21033
156269 +enable_so_start_range_21034 start range 0 21034 NULL
156270 +enable_so_crtc_vdisplay_drm_display_mode_21037 crtc_vdisplay drm_display_mode 0 21037 NULL
156271 +enable_so_garp_attr_create_fndecl_21048 garp_attr_create fndecl 3 21048 NULL
156272 +enable_so_prep_umr_reg_wqe_fndecl_21050 prep_umr_reg_wqe fndecl 5 21050 NULL
156273 +enable_so_erase_shift_onenand_chip_21052 erase_shift onenand_chip 0 21052 NULL nohasharray
156274 +enable_so_tx_queues_rt2x00_ops_21052 tx_queues rt2x00_ops 0 21052 &enable_so_erase_shift_onenand_chip_21052
156275 +enable_so_xfs_alloc_min_freelist_fndecl_21056 xfs_alloc_min_freelist fndecl 0 21056 NULL
156276 +enable_so_size_nvkm_memory_func_21058 size nvkm_memory_func 0 21058 NULL
156277 +enable_so_SyS_move_pages_fndecl_21059 SyS_move_pages fndecl 2 21059 NULL
156278 +enable_so_chaoskey_rng_read_fndecl_21064 chaoskey_rng_read fndecl 3 21064 NULL
156279 +enable_so___send_prepared_auth_request_fndecl_21067 __send_prepared_auth_request fndecl 2 21067 NULL
156280 +enable_so_ts_packet_count_cx231xx_tsport_21071 ts_packet_count cx231xx_tsport 0 21071 NULL
156281 +enable_so_usbip_recv_fndecl_21076 usbip_recv fndecl 3 21076 NULL
156282 +enable_so_vcs_write_fndecl_21077 vcs_write fndecl 3 21077 NULL
156283 +enable_so_thread_self_inum_vardecl_thread_self_c_21079 thread_self_inum vardecl_thread_self.c 0 21079 NULL
156284 +enable_so_consume_size_qp_entry_21087 consume_size qp_entry 0 21087 NULL
156285 +enable_so_queue_pages_test_walk_fndecl_21089 queue_pages_test_walk fndecl 2-1 21089 NULL
156286 +enable_so_max_counters_mlx4_caps_21095 max_counters mlx4_caps 0 21095 NULL
156287 +enable_so_ext4_block_truncate_page_fndecl_21098 ext4_block_truncate_page fndecl 3 21098 NULL
156288 +enable_so__fdt_node_end_offset_fndecl_21102 _fdt_node_end_offset fndecl 0-2 21102 NULL
156289 +enable_so_ext4_bg_has_super_fndecl_21104 ext4_bg_has_super fndecl 0 21104 NULL
156290 +enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108 sge_size_ieee MPT3SAS_ADAPTER 0 21108 NULL nohasharray
156291 +enable_so_rb_alloc_aux_fndecl_21108 rb_alloc_aux fndecl 4 21108 &enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108
156292 +enable_so___vfs_read_fndecl_21109 __vfs_read fndecl 0-3 21109 NULL nohasharray
156293 +enable_so_port_number_board_info_21109 port_number board_info 0 21109 &enable_so___vfs_read_fndecl_21109
156294 +enable_so_m5mols_read_u8_fndecl_21112 m5mols_read_u8 fndecl 2 21112 NULL nohasharray
156295 +enable_so_dm_rh_get_region_size_fndecl_21112 dm_rh_get_region_size fndecl 0 21112 &enable_so_m5mols_read_u8_fndecl_21112
156296 +enable_so_memblock_mark_hotplug_fndecl_21114 memblock_mark_hotplug fndecl 2-1 21114 NULL
156297 +enable_so_hdlc_irq_one_fndecl_21115 hdlc_irq_one fndecl 2 21115 NULL nohasharray
156298 +enable_so_max_slots_ocfs2_super_21115 max_slots ocfs2_super 0 21115 &enable_so_hdlc_irq_one_fndecl_21115
156299 +enable_so_header_length_scsi_mode_data_21117 header_length scsi_mode_data 0 21117 NULL
156300 +enable_so_hdrlen_ipv6_opt_hdr_21121 hdrlen ipv6_opt_hdr 0 21121 NULL nohasharray
156301 +enable_so_chunk_mask_dm_exception_store_21121 chunk_mask dm_exception_store 0 21121 &enable_so_hdrlen_ipv6_opt_hdr_21121
156302 +enable_so_produce_size_vmci_transport_21124 produce_size vmci_transport 0 21124 NULL nohasharray
156303 +enable_so_size_ndis_80211_key_21124 size ndis_80211_key 0 21124 &enable_so_produce_size_vmci_transport_21124
156304 +enable_so_virtfn_add_fndecl_21127 virtfn_add fndecl 2 21127 NULL
156305 +enable_so_s_desc_per_block_bits_ext4_sb_info_21130 s_desc_per_block_bits ext4_sb_info 0 21130 NULL
156306 +enable_so_do_add_counters_fndecl_21131 do_add_counters fndecl 3 21131 NULL
156307 +enable_so_xfs_bmbt_lookup_eq_fndecl_21134 xfs_bmbt_lookup_eq fndecl 3-2-4 21134 NULL
156308 +enable_so_metadata_dst_alloc_fndecl_21136 metadata_dst_alloc fndecl 1 21136 NULL
156309 +enable_so_clk_get_rate_fndecl_21147 clk_get_rate fndecl 0 21147 NULL nohasharray
156310 +enable_so_copied_iscsi_segment_21147 copied iscsi_segment 0 21147 &enable_so_clk_get_rate_fndecl_21147
156311 +enable_so_req_queue_pairs_i40e_vsi_21151 req_queue_pairs i40e_vsi 0 21151 NULL
156312 +enable_so_hsu_dma_prep_slave_sg_fndecl_21155 hsu_dma_prep_slave_sg fndecl 3 21155 NULL
156313 +enable_so_ext4_xattr_find_entry_fndecl_21162 ext4_xattr_find_entry fndecl 0 21162 NULL
156314 +enable_so_blk_end_request_fndecl_21163 blk_end_request fndecl 3-2 21163 NULL
156315 +enable_so_gfs2_dir_get_existing_buffer_fndecl_21172 gfs2_dir_get_existing_buffer fndecl 2 21172 NULL
156316 +enable_so_mei_write_fndecl_21174 mei_write fndecl 3 21174 NULL nohasharray
156317 +enable_so_xfs_check_block_fndecl_21174 xfs_check_block fndecl 4 21174 &enable_so_mei_write_fndecl_21174
156318 +enable_so_snd_hdsp_capture_copy_fndecl_21176 snd_hdsp_capture_copy fndecl 5 21176 NULL
156319 +enable_so_udf_try_read_meta_fndecl_21178 udf_try_read_meta fndecl 4 21178 NULL
156320 +enable_so_bfad_iocmd_lport_get_stats_fndecl_21180 bfad_iocmd_lport_get_stats fndecl 0 21180 NULL
156321 +enable_so_transport_lba_21_fndecl_21182 transport_lba_21 fndecl 0 21182 NULL
156322 +enable_so_usage_index_hid_local_21183 usage_index hid_local 0 21183 NULL
156323 +enable_so_init_ppi_data_fndecl_21184 init_ppi_data fndecl 2 21184 NULL
156324 +enable_so_major_vardecl_dm_c_21185 major vardecl_dm.c 0 21185 NULL
156325 +enable_so_crtc_hsync_end_drm_display_mode_21187 crtc_hsync_end drm_display_mode 0 21187 NULL
156326 +enable_so_ucNumEntries__ATOM_PPLIB_Clock_Voltage_Dependency_Table_21191 ucNumEntries _ATOM_PPLIB_Clock_Voltage_Dependency_Table 0 21191 NULL
156327 +enable_so_sb_inodesize_xfs_sb_21192 sb_inodesize xfs_sb 0 21192 NULL
156328 +enable_so_usbnet_write_cmd_async_fndecl_21200 usbnet_write_cmd_async fndecl 7 21200 NULL
156329 +enable_so_n_ir_fw_ohci_21205 n_ir fw_ohci 0 21205 NULL
156330 +enable_so_mtip_hw_read_registers_fndecl_21206 mtip_hw_read_registers fndecl 3 21206 NULL
156331 +enable_so_xfs_free_ag_extent_fndecl_21207 xfs_free_ag_extent fndecl 5 21207 NULL
156332 +enable_so_drm_plane_helper_update_fndecl_21218 drm_plane_helper_update fndecl 6-7 21218 NULL
156333 +enable_so___logfs_segment_write_fndecl_21219 __logfs_segment_write fndecl 5 21219 NULL
156334 +enable_so_length_nand_oobfree_21222 length nand_oobfree 0 21222 NULL
156335 +enable_so_hpfs_get_4sectors_fndecl_21224 hpfs_get_4sectors fndecl 2 21224 NULL
156336 +enable_so_tx_ptr_catc_21231 tx_ptr catc 0 21231 NULL nohasharray
156337 +enable_so_ext4_blks_to_allocate_fndecl_21231 ext4_blks_to_allocate fndecl 0-4-3 21231 &enable_so_tx_ptr_catc_21231
156338 +enable_so_ptr_mask_radeon_ring_21233 ptr_mask radeon_ring 0 21233 NULL
156339 +enable_so_bytes_xfered_mmc_data_21235 bytes_xfered mmc_data 0 21235 NULL
156340 +enable_so_RamAmountKBytes_nvidia_par_21238 RamAmountKBytes nvidia_par 0 21238 NULL nohasharray
156341 +enable_so_num_msix_qlcnic_hardware_context_21238 num_msix qlcnic_hardware_context 0 21238 &enable_so_RamAmountKBytes_nvidia_par_21238
156342 +enable_so_rp_buflen_nfs4_replay_21241 rp_buflen nfs4_replay 0 21241 NULL
156343 +enable_so_ring_size_amdgpu_ih_ring_21243 ring_size amdgpu_ih_ring 0 21243 NULL
156344 +enable_so_fbcon_do_set_font_fndecl_21244 fbcon_do_set_font fndecl 3-2 21244 NULL
156345 +enable_so_nilfs_cpfile_change_cpmode_fndecl_21246 nilfs_cpfile_change_cpmode fndecl 2 21246 NULL
156346 +enable_so_size_seq_buf_21247 size seq_buf 0 21247 NULL nohasharray
156347 +enable_so_rxq_depth_bnad_21247 rxq_depth bnad 0 21247 &enable_so_size_seq_buf_21247
156348 +enable_so_sctp_getsockopt_events_fndecl_21252 sctp_getsockopt_events fndecl 2 21252 NULL
156349 +enable_so_edac_mc_alloc_fndecl_21256 edac_mc_alloc fndecl 4 21256 NULL
156350 +enable_so_ufs_clear_frags_fndecl_21263 ufs_clear_frags fndecl 2 21263 NULL
156351 +enable_so_vc_resize_fndecl_21266 vc_resize fndecl 2-3 21266 NULL nohasharray
156352 +enable_so_num_fh_nfs4_filelayout_segment_21266 num_fh nfs4_filelayout_segment 0 21266 &enable_so_vc_resize_fndecl_21266
156353 +enable_so_elfcorebuf_sz_vardecl_vmcore_c_21270 elfcorebuf_sz vardecl_vmcore.c 0 21270 NULL
156354 +enable_so_object_name_len_compat_ncp_objectname_ioctl_21274 object_name_len compat_ncp_objectname_ioctl 0 21274 NULL
156355 +enable_so_gsi_top_vardecl_21275 gsi_top vardecl 0 21275 NULL
156356 +enable_so_nfs23_validate_mount_data_fndecl_21276 nfs23_validate_mount_data fndecl 0 21276 NULL
156357 +enable_so_hsync_len_fb_var_screeninfo_21279 hsync_len fb_var_screeninfo 0 21279 NULL
156358 +enable_so_height_simplefb_params_21280 height simplefb_params 0 21280 NULL nohasharray
156359 +enable_so_plen_nci_ctrl_hdr_21280 plen nci_ctrl_hdr 0 21280 &enable_so_height_simplefb_params_21280
156360 +enable_so_fm10k_alloc_q_vector_fndecl_21285 fm10k_alloc_q_vector fndecl 6-4 21285 NULL
156361 +enable_so_max_channels_atiixp_21295 max_channels atiixp 0 21295 NULL
156362 +enable_so_cmds_max_iscsi_session_21296 cmds_max iscsi_session 0 21296 NULL
156363 +enable_so_tx_tx_starts_read_fndecl_21298 tx_tx_starts_read fndecl 3 21298 NULL
156364 +enable_so_osd_yres_vardecl_ivtvfb_c_21299 osd_yres vardecl_ivtvfb.c 0 21299 NULL nohasharray
156365 +enable_so_count_nfsd3_readdirres_21299 count nfsd3_readdirres 0 21299 &enable_so_osd_yres_vardecl_ivtvfb_c_21299 nohasharray
156366 +enable_so_efx_rx_deliver_fndecl_21299 efx_rx_deliver fndecl 4 21299 &enable_so_count_nfsd3_readdirres_21299
156367 +enable_so_wSamplesPerFrame_uac_format_type_ii_discrete_descriptor_21300 wSamplesPerFrame uac_format_type_ii_discrete_descriptor 0 21300 NULL
156368 +enable_so_nvdimm_major_vardecl_21302 nvdimm_major vardecl 0 21302 NULL
156369 +enable_so_xblk_next_xblk_qnx4_xblk_21303 xblk_next_xblk qnx4_xblk 0 21303 NULL
156370 +enable_so_tx_num_pg_ch_pm_21307 tx_num_pg ch_pm 0 21307 NULL
156371 +enable_so_bfad_iocmd_cee_reset_stats_fndecl_21308 bfad_iocmd_cee_reset_stats fndecl 0 21308 NULL
156372 +enable_so_aligned_kmalloc_fndecl_21311 aligned_kmalloc fndecl 1 21311 NULL
156373 +enable_so_num_paths_bna_rx_config_21315 num_paths bna_rx_config 0 21315 NULL
156374 +enable_so_fuse_copy_page_fndecl_21316 fuse_copy_page fndecl 4-3 21316 NULL
156375 +enable_so_tcp_fragment_fndecl_21318 tcp_fragment fndecl 3 21318 NULL
156376 +enable_so__iwl_dbgfs_tx_flush_write_fndecl_21320 _iwl_dbgfs_tx_flush_write fndecl 3 21320 NULL
156377 +enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321 packet_present_len cfg80211_wowlan_wakeup 0 21321 NULL nohasharray
156378 +enable_so_sq_len_queue_set_21321 sq_len queue_set 0 21321 &enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321
156379 +enable_so_mincore_unmapped_range_fndecl_21322 mincore_unmapped_range fndecl 1 21322 NULL
156380 +enable_so_UniformBlockSizeShift_qinfo_chip_21323 UniformBlockSizeShift qinfo_chip 0 21323 NULL
156381 +enable_so_word14_lpfc_mbx_read_config_21331 word14 lpfc_mbx_read_config 0 21331 NULL
156382 +enable_so_i915_compat_ioctl_fndecl_21339 i915_compat_ioctl fndecl 2 21339 NULL
156383 +enable_so_fl_dump_key_val_fndecl_21344 fl_dump_key_val fndecl 6 21344 NULL
156384 +enable_so_snd_util_mem_alloc_fndecl_21347 snd_util_mem_alloc fndecl 2 21347 NULL
156385 +enable_so_h_blkno_ocfs2_extent_block_21357 h_blkno ocfs2_extent_block 0 21357 NULL nohasharray
156386 +enable_so_nfs_direct_wait_fndecl_21357 nfs_direct_wait fndecl 0 21357 &enable_so_h_blkno_ocfs2_extent_block_21357
156387 +enable_so_videobuf_pages_to_sg_fndecl_21359 videobuf_pages_to_sg fndecl 3-4-2 21359 NULL
156388 +enable_so_igbvf_change_mtu_fndecl_21361 igbvf_change_mtu fndecl 2 21361 NULL
156389 +enable_so_ro_map_rpcrdma_memreg_ops_21369 ro_map rpcrdma_memreg_ops 0 21369 NULL
156390 +enable_so_dest_sctphdr_21370 dest sctphdr 0 21370 NULL
156391 +enable_so_len_idma64_hw_desc_21376 len idma64_hw_desc 0 21376 NULL nohasharray
156392 +enable_so_pad_ieee80211_vendor_radiotap_21376 pad ieee80211_vendor_radiotap 0 21376 &enable_so_len_idma64_hw_desc_21376
156393 +enable_so_omap_hsmmc_pre_dma_transfer_fndecl_21377 omap_hsmmc_pre_dma_transfer fndecl 0 21377 NULL
156394 +enable_so_chunk_size_dm_exception_store_21381 chunk_size dm_exception_store 0 21381 NULL
156395 +enable_so_inppos_net_local_21383 inppos net_local 0 21383 NULL
156396 +enable_so_num_vfs_enic_21386 num_vfs enic 0 21386 NULL
156397 +enable_so_temp_count_applesmc_registers_21387 temp_count applesmc_registers 0 21387 NULL
156398 +enable_so_ci_ll_write_fndecl_21391 ci_ll_write fndecl 4 21391 NULL
156399 +enable_so_vc_scan_lines_vc_data_21393 vc_scan_lines vc_data 0 21393 NULL
156400 +enable_so_digest_size_dm_verity_21399 digest_size dm_verity 0 21399 NULL
156401 +enable_so_pg_count_agp_allocate32_21404 pg_count agp_allocate32 0 21404 NULL
156402 +enable_so_v4l2_fh_open_fndecl_21406 v4l2_fh_open fndecl 0 21406 NULL
156403 +enable_so_ext4_inode_blocks_set_fndecl_21407 ext4_inode_blocks_set fndecl 0 21407 NULL nohasharray
156404 +enable_so_length_r3964_block_header_21407 length r3964_block_header 0 21407 &enable_so_ext4_inode_blocks_set_fndecl_21407
156405 +enable_so_mesh_id_len_ieee80211_if_mesh_21412 mesh_id_len ieee80211_if_mesh 0 21412 NULL
156406 +enable_so_ex_length_extent_s_21417 ex_length extent_s 0 21417 NULL
156407 +enable_so_ping_recvmsg_fndecl_21422 ping_recvmsg fndecl 3 21422 NULL
156408 +enable_so_managed_pages_zone_21425 managed_pages zone 0 21425 NULL
156409 +enable_so_intbufferhandle_kaweth_device_21438 intbufferhandle kaweth_device 0 21438 NULL nohasharray
156410 +enable_so_tool_spad_write_fndecl_21438 tool_spad_write fndecl 3 21438 &enable_so_intbufferhandle_kaweth_device_21438
156411 +enable_so_sctp_setsockopt_auth_key_fndecl_21442 sctp_setsockopt_auth_key fndecl 3 21442 NULL
156412 +enable_so_major_vardecl_pg_c_21451 major vardecl_pg.c 0 21451 NULL
156413 +enable_so_buffer_size_vardecl_event_buffer_c_21452 buffer_size vardecl_event_buffer.c 0 21452 NULL
156414 +enable_so_video_width_sis_video_info_21454 video_width sis_video_info 0 21454 NULL
156415 +enable_so_stripes_stripe_c_21457 stripes stripe_c 0 21457 NULL
156416 +enable_so_indirect2direct_fndecl_21459 indirect2direct fndecl 6 21459 NULL
156417 +enable_so_wp_pfn_shared_fndecl_21469 wp_pfn_shared fndecl 3 21469 NULL nohasharray
156418 +enable_so_acpi_current_gpe_count_vardecl_21469 acpi_current_gpe_count vardecl 0 21469 &enable_so_wp_pfn_shared_fndecl_21469
156419 +enable_so_msm_otg_mode_write_fndecl_21471 msm_otg_mode_write fndecl 3 21471 NULL
156420 +enable_so_ufs_inode_by_name_fndecl_21473 ufs_inode_by_name fndecl 0 21473 NULL
156421 +enable_so_ezusb_access_ltv_fndecl_21485 ezusb_access_ltv fndecl 3 21485 NULL
156422 +enable_so_mmio_start_fb_fix_screeninfo_21486 mmio_start fb_fix_screeninfo 0 21486 NULL
156423 +enable_so_fuse_do_ioctl_fndecl_21491 fuse_do_ioctl fndecl 2 21491 NULL
156424 +enable_so_hpfs_ea_ext_remove_fndecl_21492 hpfs_ea_ext_remove fndecl 4-2 21492 NULL
156425 +enable_so_memsize_vgastate_21493 memsize vgastate 0 21493 NULL nohasharray
156426 +enable_so_num_iac_hci_cp_write_current_iac_lap_21493 num_iac hci_cp_write_current_iac_lap 0 21493 &enable_so_memsize_vgastate_21493
156427 +enable_so_video_pbase_vivid_dev_21503 video_pbase vivid_dev 0 21503 NULL
156428 +enable_so_vmw_cmdbuf_set_pool_size_fndecl_21513 vmw_cmdbuf_set_pool_size fndecl 2 21513 NULL
156429 +enable_so_module_load_offset_vardecl_module_c_21518 module_load_offset vardecl_module.c 0 21518 NULL
156430 +enable_so_max_io_support_mvumi_hs_page1_21519 max_io_support mvumi_hs_page1 0 21519 NULL
156431 +enable_so_fifo_size_hscx_hw_21522 fifo_size hscx_hw 0 21522 NULL nohasharray
156432 +enable_so_c67x00_urb_dequeue_fndecl_21522 c67x00_urb_dequeue fndecl 3 21522 &enable_so_fifo_size_hscx_hw_21522
156433 +enable_so_data_offset_mdp_superblock_1_21524 data_offset mdp_superblock_1 0 21524 NULL nohasharray
156434 +enable_so_intel_sdvo_set_value_fndecl_21524 intel_sdvo_set_value fndecl 4 21524 &enable_so_data_offset_mdp_superblock_1_21524
156435 +enable_so_kvm_clear_guest_page_fndecl_21527 kvm_clear_guest_page fndecl 2-4 21527 NULL
156436 +enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530 xennet_max_queues vardecl_xen-netfront.c 0 21530 NULL
156437 +enable_so_ooblen_mtd_oob_ops_21531 ooblen mtd_oob_ops 0 21531 NULL
156438 +enable_so_hfsplus_find_init_fndecl_21533 hfsplus_find_init fndecl 0 21533 NULL nohasharray
156439 +enable_so_alloc_btrfs_bio_fndecl_21533 alloc_btrfs_bio fndecl 2-1 21533 &enable_so_hfsplus_find_init_fndecl_21533 nohasharray
156440 +enable_so_picolcd_fb_write_fndecl_21533 picolcd_fb_write fndecl 3 21533 &enable_so_alloc_btrfs_bio_fndecl_21533
156441 +enable_so_zr364xx_read_fndecl_21537 zr364xx_read fndecl 3 21537 NULL
156442 +enable_so_pvid_be_adapter_21538 pvid be_adapter 0 21538 NULL
156443 +enable_so_viafb_iga2_odev_proc_write_fndecl_21544 viafb_iga2_odev_proc_write fndecl 3 21544 NULL
156444 +enable_so_ql_get_full_dup_fndecl_21549 ql_get_full_dup fndecl 0 21549 NULL
156445 +enable_so_nSkipped_vardecl_gl860_c_21557 nSkipped vardecl_gl860.c 0 21557 NULL
156446 +enable_so___erst_read_to_erange_fndecl_21558 __erst_read_to_erange fndecl 0-1 21558 NULL
156447 +enable_so_sl_max_ip6_sf_socklist_21563 sl_max ip6_sf_socklist 0 21563 NULL
156448 +enable_so_log_sq_stride_mlx4_ib_create_qp_21564 log_sq_stride mlx4_ib_create_qp 0 21564 NULL
156449 +enable_so_total_len_ieee802_11_elems_21565 total_len ieee802_11_elems 0 21565 NULL
156450 +enable_so_ino_logfs_obj_alias_21569 ino logfs_obj_alias 0 21569 NULL
156451 +enable_so_rtl_port_map_fndecl_21570 rtl_port_map fndecl 2-1 21570 NULL
156452 +enable_so_start_resource_21572 start resource 0 21572 NULL nohasharray
156453 +enable_so_cont_extent_rock_state_21572 cont_extent rock_state 0 21572 &enable_so_start_resource_21572
156454 +enable_so_le_min_key_size_write_fndecl_21573 le_min_key_size_write fndecl 3 21573 NULL
156455 +enable_so_uv_possible_blades_vardecl_21579 uv_possible_blades vardecl 0 21579 NULL
156456 +enable_so_il_dbgfs_sensitivity_read_fndecl_21585 il_dbgfs_sensitivity_read fndecl 3 21585 NULL
156457 +enable_so_xfs_buf_map_from_irec_fndecl_21587 xfs_buf_map_from_irec fndecl 5 21587 NULL
156458 +enable_so_buf_len_wmi_mgmt_rx_hdr_v1_21592 buf_len wmi_mgmt_rx_hdr_v1 0 21592 NULL
156459 +enable_so_device_count_vardecl_portman2x4_c_21593 device_count vardecl_portman2x4.c 0 21593 NULL
156460 +enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595 myri10ge_initial_mtu vardecl_myri10ge.c 0 21595 NULL nohasharray
156461 +enable_so_virtnet_set_queues_fndecl_21595 virtnet_set_queues fndecl 2 21595 &enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595
156462 +enable_so_xcl_max_payload_svc_xprt_class_21596 xcl_max_payload svc_xprt_class 0 21596 NULL
156463 +enable_so_st_kim_recv_fndecl_21600 st_kim_recv fndecl 3 21600 NULL
156464 +enable_so_isdn_v110_open_fndecl_21601 isdn_v110_open fndecl 3 21601 NULL
156465 +enable_so_irq_dma_cm109_dev_21602 irq_dma cm109_dev 0 21602 NULL nohasharray
156466 +enable_so_do_otp_write_fndecl_21602 do_otp_write fndecl 2 21602 &enable_so_irq_dma_cm109_dev_21602
156467 +enable_so_p54spi_spi_write_dma_fndecl_21608 p54spi_spi_write_dma fndecl 4 21608 NULL nohasharray
156468 +enable_so_hfcpci_empty_fifo_fndecl_21608 hfcpci_empty_fifo fndecl 4 21608 &enable_so_p54spi_spi_write_dma_fndecl_21608 nohasharray
156469 +enable_so_snd_seq_pool_new_fndecl_21608 snd_seq_pool_new fndecl 1 21608 &enable_so_hfcpci_empty_fifo_fndecl_21608
156470 +enable_so_cw1200_spi_memcpy_toio_fndecl_21615 cw1200_spi_memcpy_toio fndecl 4 21615 NULL nohasharray
156471 +enable_so_alloc_irq_from_domain_fndecl_21615 alloc_irq_from_domain fndecl 3 21615 &enable_so_cw1200_spi_memcpy_toio_fndecl_21615
156472 +enable_so_rxpipe_rx_prep_beacon_drop_read_fndecl_21616 rxpipe_rx_prep_beacon_drop_read fndecl 3 21616 NULL
156473 +enable_so_size_meye_grab_buffer_21622 size meye_grab_buffer 0 21622 NULL
156474 +enable_so_num_snaps_ceph_snap_realm_21623 num_snaps ceph_snap_realm 0 21623 NULL
156475 +enable_so_sector_r1bio_21627 sector r1bio 0 21627 NULL
156476 +enable_so___lbtf_cmd_fndecl_21631 __lbtf_cmd fndecl 4 21631 NULL
156477 +enable_so_hlength_iscsi_hdr_21640 hlength iscsi_hdr 0 21640 NULL
156478 +enable_so_ioremap_nocache_fndecl_21652 ioremap_nocache fndecl 2-1 21652 NULL nohasharray
156479 +enable_so_nvram_npiv_size_qla_hw_data_21652 nvram_npiv_size qla_hw_data 0 21652 &enable_so_ioremap_nocache_fndecl_21652
156480 +enable_so_arch_add_memory_fndecl_21655 arch_add_memory fndecl 3-2 21655 NULL nohasharray
156481 +enable_so_cxd2841er_write_regs_fndecl_21655 cxd2841er_write_regs fndecl 5 21655 &enable_so_arch_add_memory_fndecl_21655
156482 +enable_so_tps6507x_i2c_read_device_fndecl_21660 tps6507x_i2c_read_device fndecl 3 21660 NULL
156483 +enable_so_overlay_cap_left_vivid_dev_21663 overlay_cap_left vivid_dev 0 21663 NULL
156484 +enable_so_update_pmkid_fndecl_21666 update_pmkid fndecl 4 21666 NULL
156485 +enable_so_affs_file_fsync_fndecl_21669 affs_file_fsync fndecl 2-3 21669 NULL
156486 +enable_so_length_ccp_dma_info_21671 length ccp_dma_info 0 21671 NULL nohasharray
156487 +enable_so_bio_alloc_bioset_fndecl_21671 bio_alloc_bioset fndecl 2 21671 &enable_so_length_ccp_dma_info_21671 nohasharray
156488 +enable_so_lwtunnel_state_alloc_fndecl_21671 lwtunnel_state_alloc fndecl 1 21671 &enable_so_bio_alloc_bioset_fndecl_21671
156489 +enable_so_start_data_prctl_mm_map_21673 start_data prctl_mm_map 0 21673 NULL
156490 +enable_so_in_min_chans_snd_card_asihpi_21686 in_min_chans snd_card_asihpi 0 21686 NULL
156491 +enable_so_b43legacy_debugfs_read_fndecl_21690 b43legacy_debugfs_read fndecl 3 21690 NULL
156492 +enable_so_fc_fcp_send_data_fndecl_21692 fc_fcp_send_data fndecl 4-3 21692 NULL
156493 +enable_so_resync_max_sectors_mddev_21693 resync_max_sectors mddev 0 21693 NULL
156494 +enable_so_max_pkt_size_pktgen_dev_21696 max_pkt_size pktgen_dev 0 21696 NULL nohasharray
156495 +enable_so_bsg_job_size_request_queue_21696 bsg_job_size request_queue 0 21696 &enable_so_max_pkt_size_pktgen_dev_21696
156496 +enable_so_ext4_get_inode_loc_fndecl_21703 ext4_get_inode_loc fndecl 0 21703 NULL
156497 +enable_so_nfsacl_encode_fndecl_21708 nfsacl_encode fndecl 2-0 21708 NULL nohasharray
156498 +enable_so_pread_dvb_ringbuffer_21708 pread dvb_ringbuffer 0 21708 &enable_so_nfsacl_encode_fndecl_21708
156499 +enable_so_get_rndis_request_fndecl_21709 get_rndis_request fndecl 3 21709 NULL
156500 +enable_so_batadv_tvlv_container_list_size_fndecl_21711 batadv_tvlv_container_list_size fndecl 0 21711 NULL
156501 +enable_so_buf_size_m5mols_capture_21716 buf_size m5mols_capture 0 21716 NULL
156502 +enable_so_residual_fcpio_icmnd_cmpl_21718 residual fcpio_icmnd_cmpl 0 21718 NULL
156503 +enable_so_set_blocksize_fndecl_21720 set_blocksize fndecl 2 21720 NULL
156504 +enable_so_squashfs_read_fragment_index_table_fndecl_21721 squashfs_read_fragment_index_table fndecl 4 21721 NULL
156505 +enable_so_len_nfs4_label_21722 len nfs4_label 0 21722 NULL
156506 +enable_so_buff_size_host_cmd_ds_txbuf_cfg_21725 buff_size host_cmd_ds_txbuf_cfg 0 21725 NULL
156507 +enable_so_hpfs_set_ea_fndecl_21731 hpfs_set_ea fndecl 5 21731 NULL
156508 +enable_so_amdgpu_cgs_gmap_kmem_fndecl_21734 amdgpu_cgs_gmap_kmem fndecl 3 21734 NULL
156509 +enable_so_groups_netlink_kernel_cfg_21741 groups netlink_kernel_cfg 0 21741 NULL
156510 +enable_so_blk_rq_map_integrity_sg_fndecl_21744 blk_rq_map_integrity_sg fndecl 0 21744 NULL nohasharray
156511 +enable_so_sdricoh_blockio_fndecl_21744 sdricoh_blockio fndecl 0 21744 &enable_so_blk_rq_map_integrity_sg_fndecl_21744
156512 +enable_so_smk_write_syslog_fndecl_21746 smk_write_syslog fndecl 3 21746 NULL
156513 +enable_so_skb_ts_get_next_block_fndecl_21748 skb_ts_get_next_block fndecl 1 21748 NULL
156514 +enable_so___ceph_setxattr_fndecl_21751 __ceph_setxattr fndecl 4 21751 NULL
156515 +enable_so_bufsiz_mousedev_client_21759 bufsiz mousedev_client 0 21759 NULL
156516 +enable_so_width_tm6000_fh_21761 width tm6000_fh 0 21761 NULL
156517 +enable_so_req_lim_delta_srp_login_rsp_21762 req_lim_delta srp_login_rsp 0 21762 NULL
156518 +enable_so_br_startblock_xfs_bmbt_irec_21769 br_startblock xfs_bmbt_irec 0 21769 NULL
156519 +enable_so_regmap_get_val_bytes_fndecl_21774 regmap_get_val_bytes fndecl 0 21774 NULL
156520 +enable_so_ath6kl_fwlog_mask_read_fndecl_21777 ath6kl_fwlog_mask_read fndecl 3 21777 NULL
156521 +enable_so_byte_len_spi_eeprom_21786 byte_len spi_eeprom 0 21786 NULL
156522 +enable_so_tpg_alloc_fndecl_21789 tpg_alloc fndecl 2 21789 NULL
156523 +enable_so_find_group_dir_fndecl_21790 find_group_dir fndecl 0 21790 NULL
156524 +enable_so_idetape_chrdev_read_fndecl_21794 idetape_chrdev_read fndecl 3 21794 NULL
156525 +enable_so_iwl_dbgfs_log_event_read_fndecl_21800 iwl_dbgfs_log_event_read fndecl 3 21800 NULL
156526 +enable_so_reg_stride_regmap_21801 reg_stride regmap 0 21801 NULL
156527 +enable_so_num_vss_hpf_cfgs_wm8994_pdata_21802 num_vss_hpf_cfgs wm8994_pdata 0 21802 NULL
156528 +enable_so___svc_create_fndecl_21804 __svc_create fndecl 2-3 21804 NULL
156529 +enable_so_ecryptfs_encrypt_and_encode_filename_fndecl_21806 ecryptfs_encrypt_and_encode_filename fndecl 6 21806 NULL
156530 +enable_so_vx_vni_vxlanhdr_21808 vx_vni vxlanhdr 0 21808 NULL
156531 +enable_so_hwi_ws_sz_hba_parameters_21815 hwi_ws_sz hba_parameters 0 21815 NULL
156532 +enable_so_mlx4_ib_process_mad_fndecl_21823 mlx4_ib_process_mad fndecl 3 21823 NULL
156533 +enable_so_m5mols_read_rational_fndecl_21825 m5mols_read_rational fndecl 2-3 21825 NULL
156534 +enable_so_numacb_vardecl_21828 numacb vardecl 0 21828 NULL
156535 +enable_so_snd_pcm_plug_slave_format_fndecl_21831 snd_pcm_plug_slave_format fndecl 0-1 21831 NULL
156536 +enable_so_check_load_and_stores_fndecl_21836 check_load_and_stores fndecl 2 21836 NULL nohasharray
156537 +enable_so_firm_cfg_version_AdapterControlBlock_21836 firm_cfg_version AdapterControlBlock 0 21836 &enable_so_check_load_and_stores_fndecl_21836
156538 +enable_so_device_create_vargs_fndecl_21838 device_create_vargs fndecl 3 21838 NULL nohasharray
156539 +enable_so_n_descsz_elf32_note_21838 n_descsz elf32_note 0 21838 &enable_so_device_create_vargs_fndecl_21838
156540 +enable_so_enable_read_fndecl_21846 enable_read fndecl 3 21846 NULL
156541 +enable_so_length_acpi_table_desc_21847 length acpi_table_desc 0 21847 NULL nohasharray
156542 +enable_so_btrfs_file_extent_inline_len_fndecl_21847 btrfs_file_extent_inline_len fndecl 0 21847 &enable_so_length_acpi_table_desc_21847
156543 +enable_so_sge_control2_sge_params_21854 sge_control2 sge_params 0 21854 NULL
156544 +enable_so_rtsx_pci_transfer_data_fndecl_21860 rtsx_pci_transfer_data fndecl 0 21860 NULL
156545 +enable_so__ore_get_io_state_fndecl_21861 _ore_get_io_state fndecl 5-4-3 21861 NULL nohasharray
156546 +enable_so_data_read_hwrng_21861 data_read hwrng 0 21861 &enable_so__ore_get_io_state_fndecl_21861
156547 +enable_so_update_hidden_ssid_fndecl_21871 update_hidden_ssid fndecl 0 21871 NULL
156548 +enable_so_sizeimage_vim2m_q_data_21875 sizeimage vim2m_q_data 0 21875 NULL nohasharray
156549 +enable_so_ext4_zero_partial_blocks_fndecl_21875 ext4_zero_partial_blocks fndecl 3-4 21875 &enable_so_sizeimage_vim2m_q_data_21875
156550 +enable_so_ad_sd_read_reg_fndecl_21876 ad_sd_read_reg fndecl 3 21876 NULL nohasharray
156551 +enable_so_mlx4_init_icm_table_fndecl_21876 mlx4_init_icm_table fndecl 4-5 21876 &enable_so_ad_sd_read_reg_fndecl_21876
156552 +enable_so__drbd_send_page_fndecl_21886 _drbd_send_page fndecl 4 21886 NULL nohasharray
156553 +enable_so___copy_to_user_ll_fndecl_21886 __copy_to_user_ll fndecl 0 21886 &enable_so__drbd_send_page_fndecl_21886
156554 +enable_so_picolcd_debug_reset_write_fndecl_21888 picolcd_debug_reset_write fndecl 3 21888 NULL
156555 +enable_so_bio_integrity_alloc_fndecl_21889 bio_integrity_alloc fndecl 3 21889 NULL
156556 +enable_so_npwm_pwm_chip_21895 npwm pwm_chip 0 21895 NULL
156557 +enable_so_fat_get_block_fndecl_21902 fat_get_block fndecl 2 21902 NULL
156558 +enable_so_max_torch_intensity_adp1653_platform_data_21907 max_torch_intensity adp1653_platform_data 0 21907 NULL
156559 +enable_so_nodesize_btrfs_super_block_21912 nodesize btrfs_super_block 0 21912 NULL
156560 +enable_so_ieee80211_build_preq_ies_fndecl_21915 ieee80211_build_preq_ies fndecl 0-6 21915 NULL
156561 +enable_so_sym_compute_residual_fndecl_21916 sym_compute_residual fndecl 0 21916 NULL
156562 +enable_so_error_bio_and_error_21918 error bio_and_error 0 21918 NULL
156563 +enable_so_addr_width_snd_dmaengine_dai_dma_data_21920 addr_width snd_dmaengine_dai_dma_data 0 21920 NULL
156564 +enable_so_ceph_osdc_new_request_fndecl_21921 ceph_osdc_new_request fndecl 7 21921 NULL
156565 +enable_so_membase_pm8001_hba_memspace_21924 membase pm8001_hba_memspace 0 21924 NULL nohasharray
156566 +enable_so_max_q_depth_req_que_21924 max_q_depth req_que 0 21924 &enable_so_membase_pm8001_hba_memspace_21924
156567 +enable_so_ath6kl_sdio_bmi_read_fndecl_21930 ath6kl_sdio_bmi_read fndecl 3 21930 NULL
156568 +enable_so_error_memstick_request_21931 error memstick_request 0 21931 NULL nohasharray
156569 +enable_so_bfad_iocmd_rport_set_speed_fndecl_21931 bfad_iocmd_rport_set_speed fndecl 0 21931 &enable_so_error_memstick_request_21931 nohasharray
156570 +enable_so_rx_eth_fndecl_21931 rx_eth fndecl 4 21931 &enable_so_bfad_iocmd_rport_set_speed_fndecl_21931
156571 +enable_so_page_cache_async_readahead_fndecl_21944 page_cache_async_readahead fndecl 5 21944 NULL nohasharray
156572 +enable_so_u32_array_read_fndecl_21944 u32_array_read fndecl 3 21944 &enable_so_page_cache_async_readahead_fndecl_21944 nohasharray
156573 +enable_so_mei_dbgfs_read_meclients_fndecl_21944 mei_dbgfs_read_meclients fndecl 3 21944 &enable_so_u32_array_read_fndecl_21944
156574 +enable_so_ssb_bus_ssbbus_register_fndecl_21946 ssb_bus_ssbbus_register fndecl 2 21946 NULL
156575 +enable_so_in_pipe_ttusb_dec_21947 in_pipe ttusb_dec 0 21947 NULL
156576 +enable_so_xprt_max_tcp_slot_table_entries_vardecl_xprtsock_c_21949 xprt_max_tcp_slot_table_entries vardecl_xprtsock.c 0 21949 NULL
156577 +enable_so_do_update_counters_fndecl_21952 do_update_counters fndecl 4 21952 NULL
156578 +enable_so_nrprocs_rpc_version_21954 nrprocs rpc_version 0 21954 NULL
156579 +enable_so_sel_write_avc_cache_threshold_fndecl_21955 sel_write_avc_cache_threshold fndecl 3 21955 NULL
156580 +enable_so_length_iscsi_datain_21959 length iscsi_datain 0 21959 NULL
156581 +enable_so_ocfs2_find_refcount_rec_in_rl_fndecl_21962 ocfs2_find_refcount_rec_in_rl fndecl 3-4 21962 NULL
156582 +enable_so_num_desc_qlcnic_host_rds_ring_21963 num_desc qlcnic_host_rds_ring 0 21963 NULL
156583 +enable_so_reg_page_map_set_fndecl_21967 reg_page_map_set fndecl 0 21967 NULL
156584 +enable_so_dblock_gfs2_journal_extent_21971 dblock gfs2_journal_extent 0 21971 NULL nohasharray
156585 +enable_so_ms_os_descs_ext_prop_count_ffs_data_21971 ms_os_descs_ext_prop_count ffs_data 0 21971 &enable_so_dblock_gfs2_journal_extent_21971
156586 +enable_so_bulk_out_size_usb_cardstate_21974 bulk_out_size usb_cardstate 0 21974 NULL
156587 +enable_so_max_data_sg_nents_target_core_fabric_ops_21975 max_data_sg_nents target_core_fabric_ops 0 21975 NULL nohasharray
156588 +enable_so_fat_start_msdos_sb_info_21975 fat_start msdos_sb_info 0 21975 &enable_so_max_data_sg_nents_target_core_fabric_ops_21975 nohasharray
156589 +enable_so_mlx4_buddy_init_fndecl_21975 mlx4_buddy_init fndecl 2 21975 &enable_so_fat_start_msdos_sb_info_21975
156590 +enable_so_sched_queue_mlx4_qp_path_21976 sched_queue mlx4_qp_path 0 21976 NULL
156591 +enable_so_nxt200x_writebytes_fndecl_21977 nxt200x_writebytes fndecl 4 21977 NULL nohasharray
156592 +enable_so_donor_start_move_extent_21977 donor_start move_extent 0 21977 &enable_so_nxt200x_writebytes_fndecl_21977
156593 +enable_so_ieee80211_if_read_dot11MeshHWMPRannInterval_fndecl_21978 ieee80211_if_read_dot11MeshHWMPRannInterval fndecl 3 21978 NULL
156594 +enable_so_calc_fat_clusters_fndecl_21982 calc_fat_clusters fndecl 0 21982 NULL
156595 +enable_so__scif_send_fndecl_21987 _scif_send fndecl 3-0 21987 NULL
156596 +enable_so_split_nodes_interleave_fndecl_21988 split_nodes_interleave fndecl 3-5-4 21988 NULL
156597 +enable_so_skb_rx_extra_cxgbi_device_21990 skb_rx_extra cxgbi_device 0 21990 NULL
156598 +enable_so_process_ipsec_fndecl_21991 process_ipsec fndecl 3 21991 NULL
156599 +enable_so_sr_read_cmd_fndecl_21992 sr_read_cmd fndecl 5 21992 NULL
156600 +enable_so_sec_per_clus_msdos_sb_info_21995 sec_per_clus msdos_sb_info 0 21995 NULL
156601 +enable_so_ath6kl_wmi_bssinfo_event_rx_fndecl_22000 ath6kl_wmi_bssinfo_event_rx fndecl 3 22000 NULL
156602 +enable_so_ath6kl_wmi_set_tx_pwr_cmd_fndecl_22001 ath6kl_wmi_set_tx_pwr_cmd fndecl 2 22001 NULL
156603 +enable_so_length_ib_sge_22002 length ib_sge 0 22002 NULL
156604 +enable_so_video_v_stop_saa7134_tvnorm_22005 video_v_stop saa7134_tvnorm 0 22005 NULL nohasharray
156605 +enable_so_vpdma_alloc_desc_buf_fndecl_22005 vpdma_alloc_desc_buf fndecl 2 22005 &enable_so_video_v_stop_saa7134_tvnorm_22005
156606 +enable_so_num_pointers_user_acl_role_db_22011 num_pointers user_acl_role_db 0 22011 NULL
156607 +enable_so_itd1000_write_regs_fndecl_22013 itd1000_write_regs fndecl 4 22013 NULL
156608 +enable_so_atio_q_length_qlt_hw_data_22018 atio_q_length qlt_hw_data 0 22018 NULL
156609 +enable_so_buffer_size_nm256_22021 buffer_size nm256 0 22021 NULL
156610 +enable_so_GlobalCredits__MSG_IOC_FACTS_REPLY_22031 GlobalCredits _MSG_IOC_FACTS_REPLY 0 22031 NULL
156611 +enable_so_nv50_dmac_create_fndecl_22035 nv50_dmac_create fndecl 6 22035 NULL
156612 +enable_so_rtl8723be_c2h_packet_handler_fndecl_22040 rtl8723be_c2h_packet_handler fndecl 3 22040 NULL
156613 +enable_so_dm_exception_store_set_chunk_size_fndecl_22042 dm_exception_store_set_chunk_size fndecl 2 22042 NULL
156614 +enable_so_roccat_connect_fndecl_22044 roccat_connect fndecl 3 22044 NULL
156615 +enable_so_sel_read_enforce_fndecl_22047 sel_read_enforce fndecl 3 22047 NULL
156616 +enable_so_mmc_queue_map_sg_fndecl_22053 mmc_queue_map_sg fndecl 0 22053 NULL
156617 +enable_so_held_root_thin_disk_superblock_22055 held_root thin_disk_superblock 0 22055 NULL
156618 +enable_so_zl10039_read_fndecl_22056 zl10039_read fndecl 4 22056 NULL
156619 +enable_so_w_input_res_22061 w input_res 0 22061 NULL
156620 +enable_so_param_sata_completion_resp_22065 param sata_completion_resp 0 22065 NULL
156621 +enable_so_i2c_wr_max_tda18218_config_22066 i2c_wr_max tda18218_config 0 22066 NULL nohasharray
156622 +enable_so_l2t_start_adapter_22066 l2t_start adapter 0 22066 &enable_so_i2c_wr_max_tda18218_config_22066
156623 +enable_so_rom_base_qxl_device_22067 rom_base qxl_device 0 22067 NULL
156624 +enable_so_ufs_free_fragments_fndecl_22074 ufs_free_fragments fndecl 2 22074 NULL
156625 +enable_so_irnet_ctrl_read_fndecl_22076 irnet_ctrl_read fndecl 4 22076 NULL
156626 +enable_so_sfq_alloc_fndecl_22078 sfq_alloc fndecl 1 22078 NULL
156627 +enable_so_iuu_uart_write_fndecl_22079 iuu_uart_write fndecl 4 22079 NULL
156628 +enable_so_xfs_bmse_shift_one_fndecl_22080 xfs_bmse_shift_one fndecl 3 22080 NULL
156629 +enable_so_absent_pages_in_range_fndecl_22083 absent_pages_in_range fndecl 0-1-2 22083 NULL nohasharray
156630 +enable_so_rx_ring_size_mlx4_en_port_profile_22083 rx_ring_size mlx4_en_port_profile 0 22083 &enable_so_absent_pages_in_range_fndecl_22083 nohasharray
156631 +enable_so_cmm_write_fndecl_22083 cmm_write fndecl 3 22083 &enable_so_rx_ring_size_mlx4_en_port_profile_22083
156632 +enable_so_horus3a_write_regs_fndecl_22092 horus3a_write_regs fndecl 4 22092 NULL
156633 +enable_so_mgt_response_to_str_fndecl_22094 mgt_response_to_str fndecl 0 22094 NULL
156634 +enable_so_size_drm_i915_gem_pread_22096 size drm_i915_gem_pread 0 22096 NULL nohasharray
156635 +enable_so_len_setup_data_node_22096 len setup_data_node 0 22096 &enable_so_size_drm_i915_gem_pread_22096 nohasharray
156636 +enable_so_frame_seq_number_osst_tape_22096 frame_seq_number osst_tape 0 22096 &enable_so_len_setup_data_node_22096
156637 +enable_so_allocsz_cfv_info_22104 allocsz cfv_info 0 22104 NULL
156638 +enable_so_size_perf_output_handle_22117 size perf_output_handle 0 22117 NULL
156639 +enable_so_xfs_da_get_buf_fndecl_22120 xfs_da_get_buf fndecl 3 22120 NULL
156640 +enable_so_ore_check_io_fndecl_22131 ore_check_io fndecl 0 22131 NULL nohasharray
156641 +enable_so_small_ttm_pool_opts_22131 small ttm_pool_opts 0 22131 &enable_so_ore_check_io_fndecl_22131 nohasharray
156642 +enable_so_xferlen_uioc_22131 xferlen uioc 0 22131 &enable_so_small_ttm_pool_opts_22131
156643 +enable_so_numa_add_memblk_fndecl_22136 numa_add_memblk fndecl 2-3 22136 NULL
156644 +enable_so_dm_tm_shadow_block_fndecl_22139 dm_tm_shadow_block fndecl 2 22139 NULL
156645 +enable_so_xfs_trans_get_buf_map_fndecl_22140 xfs_trans_get_buf_map fndecl 4 22140 NULL
156646 +enable_so_num_phys_eqs_mlx4_phys_caps_22142 num_phys_eqs mlx4_phys_caps 0 22142 NULL
156647 +enable_so_jffs2_scan_make_ino_cache_fndecl_22144 jffs2_scan_make_ino_cache fndecl 2 22144 NULL nohasharray
156648 +enable_so_radeon_benchmark_move_fndecl_22144 radeon_benchmark_move fndecl 2 22144 &enable_so_jffs2_scan_make_ino_cache_fndecl_22144
156649 +enable_so_moving_threshold_mms114_platform_data_22146 moving_threshold mms114_platform_data 0 22146 NULL nohasharray
156650 +enable_so_svc_rdma_xdr_encode_error_fndecl_22146 svc_rdma_xdr_encode_error fndecl 0 22146 &enable_so_moving_threshold_mms114_platform_data_22146
156651 +enable_so_max_cos_bnx2x_22147 max_cos bnx2x 0 22147 NULL
156652 +enable_so_cmd_pipe_uas_dev_info_22148 cmd_pipe uas_dev_info 0 22148 NULL
156653 +enable_so_seg_size_ib_mad_send_buf_22149 seg_size ib_mad_send_buf 0 22149 NULL
156654 +enable_so_ppp_cp_event_fndecl_22150 ppp_cp_event fndecl 6-2 22150 NULL
156655 +enable_so_rxq_entries_efx_nic_22154 rxq_entries efx_nic 0 22154 NULL
156656 +enable_so_collect_rx_frame_fndecl_22155 collect_rx_frame fndecl 3 22155 NULL
156657 +enable_so_nes_read_indexed_fndecl_22161 nes_read_indexed fndecl 0 22161 NULL
156658 +enable_so_rs_datalen_ath5k_rx_status_22164 rs_datalen ath5k_rx_status 0 22164 NULL nohasharray
156659 +enable_so_i40e_dbg_prep_dump_buf_fndecl_22164 i40e_dbg_prep_dump_buf fndecl 2 22164 &enable_so_rs_datalen_ath5k_rx_status_22164
156660 +enable_so_tm6000_i2c_recv_regs16_fndecl_22166 tm6000_i2c_recv_regs16 fndecl 5 22166 NULL
156661 +enable_so_set_fast_connectable_fndecl_22171 set_fast_connectable fndecl 4 22171 NULL
156662 +enable_so_tegra_spi_start_cpu_based_transfer_fndecl_22176 tegra_spi_start_cpu_based_transfer fndecl 0 22176 NULL
156663 +enable_so_name_len_ceph_inode_xattr_22177 name_len ceph_inode_xattr 0 22177 NULL
156664 +enable_so_rts51x_bulk_transport_special_fndecl_22181 rts51x_bulk_transport_special fndecl 6 22181 NULL
156665 +enable_so_buf_len_bu_info_22182 buf_len bu_info 0 22182 NULL nohasharray
156666 +enable_so_bnx2x_mcast_handle_pending_cmds_e1_fndecl_22182 bnx2x_mcast_handle_pending_cmds_e1 fndecl 0 22182 &enable_so_buf_len_bu_info_22182
156667 +enable_so_ieee80211_parse_bitrates_fndecl_22187 ieee80211_parse_bitrates fndecl 0 22187 NULL
156668 +enable_so_ch_count_vardecl_ib_srp_c_22190 ch_count vardecl_ib_srp.c 0 22190 NULL
156669 +enable_so_affs_alloc_block_fndecl_22192 affs_alloc_block fndecl 0-2 22192 NULL
156670 +enable_so_sector_packet_data_22197 sector packet_data 0 22197 NULL
156671 +enable_so_length_ntlmssp2_name_22211 length ntlmssp2_name 0 22211 NULL
156672 +enable_so_req_len_brcmf_cfg80211_assoc_ielen_le_22213 req_len brcmf_cfg80211_assoc_ielen_le 0 22213 NULL
156673 +enable_so_nreaders_stress_vardecl_locktorture_c_22217 nreaders_stress vardecl_locktorture.c 0 22217 NULL nohasharray
156674 +enable_so_xfrm_dst_alloc_copy_fndecl_22217 xfrm_dst_alloc_copy fndecl 3 22217 &enable_so_nreaders_stress_vardecl_locktorture_c_22217
156675 +enable_so_ram_size_async_extent_22219 ram_size async_extent 0 22219 NULL
156676 +enable_so_get_max_acpi_id_fndecl_22220 get_max_acpi_id fndecl 0 22220 NULL
156677 +enable_so_lpfc_idiag_mbxacc_write_fndecl_22221 lpfc_idiag_mbxacc_write fndecl 3 22221 NULL
156678 +enable_so_s_dirsize_minix_sb_info_22225 s_dirsize minix_sb_info 0 22225 NULL
156679 +enable_so_num_areas_prism2_download_param_22233 num_areas prism2_download_param 0 22233 NULL
156680 +enable_so_num_vlan_batadv_tvlv_tt_data_22234 num_vlan batadv_tvlv_tt_data 0 22234 NULL
156681 +enable_so_thermal_adc_source_unexpected_read_fndecl_22235 thermal_adc_source_unexpected_read fndecl 3 22235 NULL
156682 +enable_so_max_fingers_pixcir_i2c_ts_data_22237 max_fingers pixcir_i2c_ts_data 0 22237 NULL
156683 +enable_so_depth_write_fndecl_22238 depth_write fndecl 3 22238 NULL
156684 +enable_so_num_udav_mthca_profile_22243 num_udav mthca_profile 0 22243 NULL
156685 +enable_so_ieee80211_check_pending_bar_fndecl_22244 ieee80211_check_pending_bar fndecl 3 22244 NULL
156686 +enable_so_rf_suballoc_loc_ocfs2_refcount_block_22248 rf_suballoc_loc ocfs2_refcount_block 0 22248 NULL
156687 +enable_so_hfsplus_asc2uni_fndecl_22252 hfsplus_asc2uni fndecl 0 22252 NULL nohasharray
156688 +enable_so_dac960_user_command_proc_write_fndecl_22252 dac960_user_command_proc_write fndecl 3 22252 &enable_so_hfsplus_asc2uni_fndecl_22252
156689 +enable_so___blk_end_bidi_request_fndecl_22253 __blk_end_bidi_request fndecl 3-4-2 22253 NULL
156690 +enable_so_qp_alloc_ppn_set_fndecl_22255 qp_alloc_ppn_set fndecl 2-4 22255 NULL
156691 +enable_so_nr_free_buffer_pages_fndecl_22263 nr_free_buffer_pages fndecl 0 22263 NULL
156692 +enable_so_bbio_error_fndecl_22264 bbio_error fndecl 3 22264 NULL
156693 +enable_so_usCRTC_V_Total__ATOM_MODE_TIMING_22265 usCRTC_V_Total _ATOM_MODE_TIMING 0 22265 NULL
156694 +enable_so_il3945_ucode_rx_stats_read_fndecl_22267 il3945_ucode_rx_stats_read fndecl 3 22267 NULL
156695 +enable_so_mangle_contents_fndecl_22272 mangle_contents fndecl 4-6 22272 NULL
156696 +enable_so_gtt_total_entries__intel_private_22281 gtt_total_entries _intel_private 0 22281 NULL nohasharray
156697 +enable_so_reord_tcp_sacktag_state_22281 reord tcp_sacktag_state 0 22281 &enable_so_gtt_total_entries__intel_private_22281
156698 +enable_so_mgsl_write_fndecl_22284 mgsl_write fndecl 3 22284 NULL
156699 +enable_so_sn9c2028_read4_fndecl_22290 sn9c2028_read4 fndecl 0 22290 NULL
156700 +enable_so_gspca_dev_probe_fndecl_22297 gspca_dev_probe fndecl 4 22297 NULL
156701 +enable_so_gfs2_listxattr_fndecl_22298 gfs2_listxattr fndecl 3 22298 NULL nohasharray
156702 +enable_so_di_depth_gfs2_dinode_22298 di_depth gfs2_dinode 0 22298 &enable_so_gfs2_listxattr_fndecl_22298
156703 +enable_so_cb710_mmc_receive_fndecl_22303 cb710_mmc_receive fndecl 0 22303 NULL
156704 +enable_so_slot_bytes_fndecl_22306 slot_bytes fndecl 0 22306 NULL
156705 +enable_so_smk_write_logging_fndecl_22313 smk_write_logging fndecl 3 22313 NULL
156706 +enable_so_read_head_n_tty_data_22317 read_head n_tty_data 0 22317 NULL nohasharray
156707 +enable_so_index_start_nozomi_22317 index_start nozomi 0 22317 &enable_so_read_head_n_tty_data_22317
156708 +enable_so_swiotlb_late_init_with_default_size_fndecl_22319 swiotlb_late_init_with_default_size fndecl 1 22319 NULL
156709 +enable_so_sb_rbmino_xfs_sb_22320 sb_rbmino xfs_sb 0 22320 NULL nohasharray
156710 +enable_so_be_fill_queue_fndecl_22320 be_fill_queue fndecl 2 22320 &enable_so_sb_rbmino_xfs_sb_22320
156711 +enable_so_vc_size_row_vc_data_22325 vc_size_row vc_data 0 22325 NULL
156712 +enable_so_user_data_len_uioc_22327 user_data_len uioc 0 22327 NULL nohasharray
156713 +enable_so_iwl_dbgfs_tof_range_response_read_fndecl_22327 iwl_dbgfs_tof_range_response_read fndecl 3 22327 &enable_so_user_data_len_uioc_22327
156714 +enable_so_atmel_change_mtu_fndecl_22328 atmel_change_mtu fndecl 2 22328 NULL
156715 +enable_so_limit_sfq_sched_data_22334 limit sfq_sched_data 0 22334 NULL
156716 +enable_so_f2fs_getxattr_fndecl_22337 f2fs_getxattr fndecl 0 22337 NULL
156717 +enable_so_mtu_tipc_link_22341 mtu tipc_link 0 22341 NULL
156718 +enable_so_vid_batadv_orig_node_vlan_22342 vid batadv_orig_node_vlan 0 22342 NULL
156719 +enable_so_svc_recvfrom_fndecl_22345 svc_recvfrom fndecl 0-4-3 22345 NULL
156720 +enable_so_drv_info_size_mwifiex_adapter_22352 drv_info_size mwifiex_adapter 0 22352 NULL
156721 +enable_so_tlv_put_string_fndecl_22356 tlv_put_string fndecl 4-0 22356 NULL
156722 +enable_so_genwqe_alloc_sync_sgl_fndecl_22358 genwqe_alloc_sync_sgl fndecl 4 22358 NULL
156723 +enable_so__proc_do_string_fndecl_22363 _proc_do_string fndecl 2 22363 NULL
156724 +enable_so____pskb_trim_fndecl_22365 ___pskb_trim fndecl 2 22365 NULL
156725 +enable_so_kvm_gfn_to_hva_cache_init_fndecl_22367 kvm_gfn_to_hva_cache_init fndecl 3 22367 NULL
156726 +enable_so_drXTFlSize_hfs_mdb_22371 drXTFlSize hfs_mdb 0 22371 NULL nohasharray
156727 +enable_so_ffs_ep0_read_fndecl_22371 ffs_ep0_read fndecl 3 22371 &enable_so_drXTFlSize_hfs_mdb_22371
156728 +enable_so_digi_write_fndecl_22372 digi_write fndecl 4 22372 NULL
156729 +enable_so_nfs4_xattr_set_nfs4_acl_fndecl_22385 nfs4_xattr_set_nfs4_acl fndecl 4 22385 NULL
156730 +enable_so_exposure_step_sd_22386 exposure_step sd 0 22386 NULL
156731 +enable_so_ecc_size_persistent_ram_ecc_info_22390 ecc_size persistent_ram_ecc_info 0 22390 NULL
156732 +enable_so_phys_lcr_base_mgsl_struct_22391 phys_lcr_base mgsl_struct 0 22391 NULL
156733 +enable_so_clipt_end_adapter_22397 clipt_end adapter 0 22397 NULL
156734 +enable_so_nr_blocks_jffs2_sb_info_22399 nr_blocks jffs2_sb_info 0 22399 NULL
156735 +enable_so_size_dsp_segment_desc_22400 size dsp_segment_desc 0 22400 NULL
156736 +enable_so_rawsock_sendmsg_fndecl_22401 rawsock_sendmsg fndecl 3 22401 NULL
156737 +enable_so_udf_setsize_fndecl_22402 udf_setsize fndecl 2 22402 NULL
156738 +enable_so_lprocfs_stats_counter_size_fndecl_22407 lprocfs_stats_counter_size fndecl 0 22407 NULL
156739 +enable_so_use_inline_bio_fndecl_22408 use_inline_bio fndecl 3 22408 NULL
156740 +enable_so_do_truncate_fndecl_22411 do_truncate fndecl 2 22411 NULL nohasharray
156741 +enable_so_twl4030_init_sih_modules_fndecl_22411 twl4030_init_sih_modules fndecl 0 22411 &enable_so_do_truncate_fndecl_22411 nohasharray
156742 +enable_so_len_usbdevfs_bulktransfer_22411 len usbdevfs_bulktransfer 0 22411 &enable_so_twl4030_init_sih_modules_fndecl_22411
156743 +enable_so_max_ccb_vardecl_hpilo_c_22414 max_ccb vardecl_hpilo.c 0 22414 NULL
156744 +enable_so_oti6858_write_fndecl_22423 oti6858_write fndecl 4 22423 NULL
156745 +enable_so_bbRcvSizeMsb_csp_22425 bbRcvSizeMsb csp 0 22425 NULL
156746 +enable_so_nfc_llcp_send_ui_frame_fndecl_22429 nfc_llcp_send_ui_frame fndecl 5 22429 NULL
156747 +enable_so_add_size_pci_dev_resource_22434 add_size pci_dev_resource 0 22434 NULL
156748 +enable_so_start_async_cow_22445 start async_cow 0 22445 NULL
156749 +enable_so_do_send_fragment_fndecl_22447 do_send_fragment fndecl 3 22447 NULL
156750 +enable_so_frame_len_ksz_desc_rx_stat_22454 frame_len ksz_desc_rx_stat 0 22454 NULL
156751 +enable_so_ntfs_attr_vcn_to_lcn_nolock_fndecl_22455 ntfs_attr_vcn_to_lcn_nolock fndecl 2 22455 NULL
156752 +enable_so_llc_ui_recvmsg_fndecl_22457 llc_ui_recvmsg fndecl 3 22457 NULL
156753 +enable_so_ceph_zero_pagecache_range_fndecl_22464 ceph_zero_pagecache_range fndecl 3-2 22464 NULL nohasharray
156754 +enable_so_mon_bin_ioctl_fndecl_22464 mon_bin_ioctl fndecl 3 22464 &enable_so_ceph_zero_pagecache_range_fndecl_22464
156755 +enable_so_params1_mthca_qp_context_22465 params1 mthca_qp_context 0 22465 NULL
156756 +enable_so_fsl_edma_alloc_desc_fndecl_22466 fsl_edma_alloc_desc fndecl 2 22466 NULL
156757 +enable_so_s35390a_set_reg_fndecl_22468 s35390a_set_reg fndecl 4 22468 NULL
156758 +enable_so_vmbus_sendpacket_fndecl_22469 vmbus_sendpacket fndecl 3 22469 NULL nohasharray
156759 +enable_so__sctp_make_chunk_fndecl_22469 _sctp_make_chunk fndecl 2 22469 &enable_so_vmbus_sendpacket_fndecl_22469
156760 +enable_so_s_data_blksize_affs_sb_info_22478 s_data_blksize affs_sb_info 0 22478 NULL
156761 +enable_so_vram_size_aty128fb_par_22489 vram_size aty128fb_par 0 22489 NULL nohasharray
156762 +enable_so_hid_report_raw_event_fndecl_22489 hid_report_raw_event fndecl 4 22489 &enable_so_vram_size_aty128fb_par_22489
156763 +enable_so_find_group_other_fndecl_22490 find_group_other fndecl 0 22490 NULL
156764 +enable_so_xfs_readdir_fndecl_22492 xfs_readdir fndecl 3 22492 NULL
156765 +enable_so_offset_rbd_img_request_22494 offset rbd_img_request 0 22494 NULL
156766 +enable_so_tx_hr_cfv_info_22495 tx_hr cfv_info 0 22495 NULL nohasharray
156767 +enable_so_ovl_cache_entry_new_fndecl_22495 ovl_cache_entry_new fndecl 3 22495 &enable_so_tx_hr_cfv_info_22495
156768 +enable_so_hiface_pcm_init_urb_fndecl_22500 hiface_pcm_init_urb fndecl 3 22500 NULL
156769 +enable_so_iwl_dbgfs_clear_ucode_statistics_write_fndecl_22503 iwl_dbgfs_clear_ucode_statistics_write fndecl 3 22503 NULL
156770 +enable_so_irq_bcma_device_22505 irq bcma_device 0 22505 NULL
156771 +enable_so_cur_rx_pos_tegra_slink_data_22510 cur_rx_pos tegra_slink_data 0 22510 NULL
156772 +enable_so_ctx_len_xfrm_sec_ctx_22511 ctx_len xfrm_sec_ctx 0 22511 NULL
156773 +enable_so_h_mode_size_22514 h mode_size 0 22514 NULL
156774 +enable_so_len_bna_mem_info_22518 len bna_mem_info 0 22518 NULL
156775 +enable_so_rocker_dma_ring_bufs_alloc_fndecl_22520 rocker_dma_ring_bufs_alloc fndecl 4 22520 NULL
156776 +enable_so_ls_lvblen_dlm_ls_22525 ls_lvblen dlm_ls 0 22525 NULL
156777 +enable_so_ocfs2_bg_discontig_add_extent_fndecl_22531 ocfs2_bg_discontig_add_extent fndecl 4 22531 NULL
156778 +enable_so_posix_acl_xattr_set_fndecl_22534 posix_acl_xattr_set fndecl 4 22534 NULL nohasharray
156779 +enable_so_count_pch_gbe_tx_ring_22534 count pch_gbe_tx_ring 0 22534 &enable_so_posix_acl_xattr_set_fndecl_22534
156780 +enable_so_pci_iomap_wc_range_fndecl_22536 pci_iomap_wc_range fndecl 4-3 22536 NULL
156781 +enable_so_submit_queue_fndecl_22542 submit_queue fndecl 5 22542 NULL
156782 +enable_so_SyS_flistxattr_fndecl_22548 SyS_flistxattr fndecl 3 22548 NULL
156783 +enable_so_clsb_isar_reg_22551 clsb isar_reg 0 22551 NULL
156784 +enable_so_tx_frag_in_process_called_read_fndecl_22553 tx_frag_in_process_called_read fndecl 3 22553 NULL nohasharray
156785 +enable_so_sadb_x_ctx_len_sadb_x_sec_ctx_22553 sadb_x_ctx_len sadb_x_sec_ctx 0 22553 &enable_so_tx_frag_in_process_called_read_fndecl_22553 nohasharray
156786 +enable_so_msg_done_handler_fndecl_22553 msg_done_handler fndecl 4 22553 &enable_so_sadb_x_ctx_len_sadb_x_sec_ctx_22553
156787 +enable_so_w9968cf_i2c_r_fndecl_22560 w9968cf_i2c_r fndecl 0 22560 NULL
156788 +enable_so_max_frame_size_pch_gbe_mac_info_22562 max_frame_size pch_gbe_mac_info 0 22562 NULL
156789 +enable_so_max_xor_dma_device_22564 max_xor dma_device 0 22564 NULL
156790 +enable_so_carl9170_rx_stream_fndecl_22565 carl9170_rx_stream fndecl 3 22565 NULL
156791 +enable_so_fsync_file_operations_22566 fsync file_operations 0 22566 NULL
156792 +enable_so_skd_next_devno_vardecl_skd_main_c_22569 skd_next_devno vardecl_skd_main.c 0 22569 NULL
156793 +enable_so_burst_fsl_edma_slave_config_22570 burst fsl_edma_slave_config 0 22570 NULL
156794 +enable_so_id_rfcomm_dev_22580 id rfcomm_dev 0 22580 NULL
156795 +enable_so_wm_adsp_buf_alloc_fndecl_22582 wm_adsp_buf_alloc fndecl 2 22582 NULL
156796 +enable_so_push_node_left_fndecl_22588 push_node_left fndecl 0 22588 NULL nohasharray
156797 +enable_so_qlcnic_pci_sriov_configure_fndecl_22588 qlcnic_pci_sriov_configure fndecl 2 22588 &enable_so_push_node_left_fndecl_22588 nohasharray
156798 +enable_so_rx_queue_size_pxa168_eth_platform_data_22588 rx_queue_size pxa168_eth_platform_data 0 22588 &enable_so_qlcnic_pci_sriov_configure_fndecl_22588
156799 +enable_so_scif_rb_get_next_fndecl_22601 scif_rb_get_next fndecl 3 22601 NULL nohasharray
156800 +enable_so_swevent_hlist_get_cpu_fndecl_22601 swevent_hlist_get_cpu fndecl 0 22601 &enable_so_scif_rb_get_next_fndecl_22601
156801 +enable_so_fw_stats_raw_read_fndecl_22602 fw_stats_raw_read fndecl 3 22602 NULL
156802 +enable_so_tx_data_max_size_sst_generic_ipc_22604 tx_data_max_size sst_generic_ipc 0 22604 NULL
156803 +enable_so_brcmf_fil_cmd_data_get_fndecl_22605 brcmf_fil_cmd_data_get fndecl 4 22605 NULL
156804 +enable_so_maxauthsize_aead_alg_22608 maxauthsize aead_alg 0 22608 NULL nohasharray
156805 +enable_so_btrfs_submit_compressed_write_fndecl_22608 btrfs_submit_compressed_write fndecl 4-5 22608 &enable_so_maxauthsize_aead_alg_22608
156806 +enable_so_count_mspro_attribute_22612 count mspro_attribute 0 22612 NULL
156807 +enable_so_len_aironet_ioctl_22615 len aironet_ioctl 0 22615 NULL
156808 +enable_so_ir_startino_xfs_inobt_rec_incore_22616 ir_startino xfs_inobt_rec_incore 0 22616 NULL
156809 +enable_so_mem_hole_size_fndecl_22619 mem_hole_size fndecl 0-1-2 22619 NULL nohasharray
156810 +enable_so_wil_write_pmccfg_fndecl_22619 wil_write_pmccfg fndecl 3 22619 &enable_so_mem_hole_size_fndecl_22619 nohasharray
156811 +enable_so_bond_verify_device_path_fndecl_22619 bond_verify_device_path fndecl 3 22619 &enable_so_wil_write_pmccfg_fndecl_22619
156812 +enable_so_curr_block_migrate_struct_22621 curr_block migrate_struct 0 22621 NULL
156813 +enable_so_length_obj_key_22626 length obj_key 0 22626 NULL
156814 +enable_so_SYSC_io_getevents_fndecl_22627 SYSC_io_getevents fndecl 3 22627 NULL
156815 +enable_so_n_compat_sel_arg_struct_22628 n compat_sel_arg_struct 0 22628 NULL
156816 +enable_so_buf_height_s5p_mfc_ctx_22637 buf_height s5p_mfc_ctx 0 22637 NULL
156817 +enable_so_hci_si_event_fndecl_22639 hci_si_event fndecl 3 22639 NULL
156818 +enable_so_logfs_write_header_fndecl_22642 logfs_write_header fndecl 3 22642 NULL
156819 +enable_so_num_rcv_bufs_visornic_devdata_22643 num_rcv_bufs visornic_devdata 0 22643 NULL
156820 +enable_so_sctp_setsockopt_initmsg_fndecl_22644 sctp_setsockopt_initmsg fndecl 3 22644 NULL
156821 +enable_so_queue_size_snd_timer_params_22646 queue_size snd_timer_params 0 22646 NULL
156822 +enable_so_do_msgsnd_fndecl_22648 do_msgsnd fndecl 4 22648 NULL
156823 +enable_so_isight_decode_fndecl_22650 isight_decode fndecl 4 22650 NULL
156824 +enable_so_sample_rate_usb_stream_config_22662 sample_rate usb_stream_config 0 22662 NULL
156825 +enable_so_md_probe_fndecl_22668 md_probe fndecl 1 22668 NULL
156826 +enable_so_init_rs_internal_fndecl_22671 init_rs_internal fndecl 6-1 22671 NULL
156827 +enable_so_create_huge_pmd_fndecl_22677 create_huge_pmd fndecl 3 22677 NULL
156828 +enable_so_ieee80211_mesh_rx_bcn_presp_fndecl_22678 ieee80211_mesh_rx_bcn_presp fndecl 4 22678 NULL
156829 +enable_so_fbcon_redraw_softback_fndecl_22679 fbcon_redraw_softback fndecl 3 22679 NULL nohasharray
156830 +enable_so_bop_propagate_nilfs_bmap_operations_22679 bop_propagate nilfs_bmap_operations 0 22679 &enable_so_fbcon_redraw_softback_fndecl_22679
156831 +enable_so_vlan_tag_bnx2x_agg_info_22683 vlan_tag bnx2x_agg_info 0 22683 NULL nohasharray
156832 +enable_so_cfs_trace_copyout_string_fndecl_22683 cfs_trace_copyout_string fndecl 2 22683 &enable_so_vlan_tag_bnx2x_agg_info_22683
156833 +enable_so_irq_pipe_ttusb_dec_22685 irq_pipe ttusb_dec 0 22685 NULL
156834 +enable_so_sctp_sf_abort_violation_fndecl_22687 sctp_sf_abort_violation fndecl 7 22687 NULL
156835 +enable_so_vidioc_s_input_fndecl_22689 vidioc_s_input fndecl 3 22689 NULL
156836 +enable_so_qca_recv_fndecl_22690 qca_recv fndecl 3 22690 NULL
156837 +enable_so_ino_nilfs_iget_args_22691 ino nilfs_iget_args 0 22691 NULL
156838 +enable_so_tx_queue_len_read_fndecl_22692 tx_queue_len_read fndecl 3 22692 NULL
156839 +enable_so_ctl_dma_yealink_dev_22696 ctl_dma yealink_dev 0 22696 NULL
156840 +enable_so_len_vring_desc_22700 len vring_desc 0 22700 NULL
156841 +enable_so_brcmf_sdio_read_control_fndecl_22712 brcmf_sdio_read_control fndecl 3 22712 NULL
156842 +enable_so_scif_rb_write_fndecl_22718 scif_rb_write fndecl 0-3 22718 NULL
156843 +enable_so_tail_inbuf_t_22719 tail inbuf_t 0 22719 NULL nohasharray
156844 +enable_so_fc_trace_max_entries_vardecl_fnic_trace_c_22719 fc_trace_max_entries vardecl_fnic_trace.c 0 22719 &enable_so_tail_inbuf_t_22719
156845 +enable_so_SMB2_ioctl_fndecl_22721 SMB2_ioctl fndecl 8 22721 NULL
156846 +enable_so_ath6kl_wmi_get_tx_pwr_cmd_fndecl_22722 ath6kl_wmi_get_tx_pwr_cmd fndecl 2 22722 NULL nohasharray
156847 +enable_so_niu_parent_index_vardecl_niu_c_22722 niu_parent_index vardecl_niu.c 0 22722 &enable_so_ath6kl_wmi_get_tx_pwr_cmd_fndecl_22722
156848 +enable_so_sta_num_ps_buf_frames_read_fndecl_22723 sta_num_ps_buf_frames_read fndecl 3 22723 NULL
156849 +enable_so_odm_mirror_cnt_pnfs_osd_data_map_22727 odm_mirror_cnt pnfs_osd_data_map 0 22727 NULL
156850 +enable_so_fcoe_hmc_cntx_num_i40e_pf_22730 fcoe_hmc_cntx_num i40e_pf 0 22730 NULL nohasharray
156851 +enable_so_fpregs_set_fndecl_22730 fpregs_set fndecl 4 22730 &enable_so_fcoe_hmc_cntx_num_i40e_pf_22730
156852 +enable_so___blk_bios_map_sg_fndecl_22734 __blk_bios_map_sg fndecl 0 22734 NULL
156853 +enable_so_xprt_alloc_fndecl_22736 xprt_alloc fndecl 4-3-2 22736 NULL
156854 +enable_so_num_fcoe_qps_i40e_pf_22740 num_fcoe_qps i40e_pf 0 22740 NULL
156855 +enable_so_SYSC_syslog_fndecl_22742 SYSC_syslog fndecl 3 22742 NULL
156856 +enable_so_iwlagn_pass_packet_to_mac80211_fndecl_22746 iwlagn_pass_packet_to_mac80211 fndecl 3 22746 NULL
156857 +enable_so_slave_num_ad7280_state_22755 slave_num ad7280_state 0 22755 NULL
156858 +enable_so_alloc_perm_bits_fndecl_22767 alloc_perm_bits fndecl 2 22767 NULL
156859 +enable_so_rambase_brcmf_chip_22773 rambase brcmf_chip 0 22773 NULL
156860 +enable_so_xfs_bmap_add_free_fndecl_22778 xfs_bmap_add_free fndecl 1-2 22778 NULL
156861 +enable_so_tomoyo_round2_fndecl_22781 tomoyo_round2 fndecl 0 22781 NULL
156862 +enable_so_orig_video_cols_screen_info_22783 orig_video_cols screen_info 0 22783 NULL
156863 +enable_so_len_cpl_iscsi_hdr_22787 len cpl_iscsi_hdr 0 22787 NULL
156864 +enable_so_h_start_saa7134_tvnorm_22798 h_start saa7134_tvnorm 0 22798 NULL
156865 +enable_so_i_next_section_block_iso_inode_info_22800 i_next_section_block iso_inode_info 0 22800 NULL nohasharray
156866 +enable_so_adapter_index_hpi_adapter_res_22800 adapter_index hpi_adapter_res 0 22800 &enable_so_i_next_section_block_iso_inode_info_22800
156867 +enable_so_cp_rdfs_fc_els_cssp_22809 cp_rdfs fc_els_cssp 0 22809 NULL nohasharray
156868 +enable_so_my_inptr_vardecl_initramfs_c_22809 my_inptr vardecl_initramfs.c 0 22809 &enable_so_cp_rdfs_fc_els_cssp_22809
156869 +enable_so_agp_create_memory_fndecl_22816 agp_create_memory fndecl 1 22816 NULL
156870 +enable_so_aper_size_amdgpu_mc_22824 aper_size amdgpu_mc 0 22824 NULL
156871 +enable_so_tx_size_uart_8250_dma_22825 tx_size uart_8250_dma 0 22825 NULL
156872 +enable_so_pwr_sleep_cycle_avg_read_fndecl_22826 pwr_sleep_cycle_avg_read fndecl 3 22826 NULL
156873 +enable_so_nfs_pgarray_set_fndecl_22830 nfs_pgarray_set fndecl 2 22830 NULL
156874 +enable_so_ScsiStatus__ErrorInfo_struct_22836 ScsiStatus _ErrorInfo_struct 0 22836 NULL
156875 +enable_so_gigaset_initdriver_fndecl_22839 gigaset_initdriver fndecl 2-1 22839 NULL
156876 +enable_so_batadv_bla_del_claim_fndecl_22840 batadv_bla_del_claim fndecl 3 22840 NULL
156877 +enable_so_lan78xx_change_mtu_fndecl_22844 lan78xx_change_mtu fndecl 2 22844 NULL
156878 +enable_so_sys_mremap_fndecl_22848 sys_mremap fndecl 3-5-1-2 22848 NULL nohasharray
156879 +enable_so_clean_io_failure_fndecl_22848 clean_io_failure fndecl 4 22848 &enable_so_sys_mremap_fndecl_22848
156880 +enable_so_rlen_si2168_cmd_22851 rlen si2168_cmd 0 22851 NULL
156881 +enable_so_var2_apei_exec_context_22852 var2 apei_exec_context 0 22852 NULL
156882 +enable_so_utf8s_to_utf16s_fndecl_22856 utf8s_to_utf16s fndecl 0 22856 NULL
156883 +enable_so_size_proc_dir_entry_22859 size proc_dir_entry 0 22859 NULL
156884 +enable_so_sst_fill_and_send_cmd_unlocked_fndecl_22862 sst_fill_and_send_cmd_unlocked fndecl 7 22862 NULL
156885 +enable_so_xs_sendpages_fndecl_22864 xs_sendpages fndecl 5-3 22864 NULL
156886 +enable_so_hpfs_get_block_fndecl_22865 hpfs_get_block fndecl 2 22865 NULL
156887 +enable_so_usCRTC_H_SyncStart__ATOM_MODE_TIMING_22868 usCRTC_H_SyncStart _ATOM_MODE_TIMING 0 22868 NULL
156888 +enable_so_n_subbufs_rchan_22872 n_subbufs rchan 0 22872 NULL
156889 +enable_so_max_part_vardecl_brd_c_22873 max_part vardecl_brd.c 0 22873 NULL
156890 +enable_so_enc28j60_mem_read_fndecl_22875 enc28j60_mem_read fndecl 3 22875 NULL
156891 +enable_so_count_nfs3_readdirargs_22881 count nfs3_readdirargs 0 22881 NULL
156892 +enable_so_max_wrs_rds_iw_device_22882 max_wrs rds_iw_device 0 22882 NULL
156893 +enable_so_len_prism2_download_area_22884 len prism2_download_area 0 22884 NULL
156894 +enable_so_frag_len_atmel_private_22893 frag_len atmel_private 0 22893 NULL
156895 +enable_so_snap_names_len_rbd_image_header_ondisk_22898 snap_names_len rbd_image_header_ondisk 0 22898 NULL
156896 +enable_so___btrfs_cow_block_fndecl_22902 __btrfs_cow_block fndecl 0 22902 NULL
156897 +enable_so_lpfc_fcp_io_channel_init_fndecl_22903 lpfc_fcp_io_channel_init fndecl 2 22903 NULL
156898 +enable_so_count_ioctl_gntdev_map_grant_ref_22904 count ioctl_gntdev_map_grant_ref 0 22904 NULL nohasharray
156899 +enable_so_bcma_hcd_create_pdev_fndecl_22904 bcma_hcd_create_pdev fndecl 3 22904 &enable_so_count_ioctl_gntdev_map_grant_ref_22904
156900 +enable_so_num_y_edt_ft5x06_ts_data_22905 num_y edt_ft5x06_ts_data 0 22905 NULL
156901 +enable_so_membase_phys_efx_nic_22907 membase_phys efx_nic 0 22907 NULL
156902 +enable_so_vmalloc_32_fndecl_22908 vmalloc_32 fndecl 1 22908 NULL
156903 +enable_so_cfg80211_report_obss_beacon_fndecl_22910 cfg80211_report_obss_beacon fndecl 3 22910 NULL
156904 +enable_so_lmd_exclude_count_lustre_mount_data_22915 lmd_exclude_count lustre_mount_data 0 22915 NULL
156905 +enable_so_len_policy_load_memory_22916 len policy_load_memory 0 22916 NULL
156906 +enable_so_node_con_driver_22919 node con_driver 0 22919 NULL
156907 +enable_so_len_ext4_allocation_request_22920 len ext4_allocation_request 0 22920 NULL
156908 +enable_so_e_name_len_ext4_xattr_entry_22925 e_name_len ext4_xattr_entry 0 22925 NULL
156909 +enable_so_port100_send_frame_async_fndecl_22927 port100_send_frame_async fndecl 4 22927 NULL
156910 +enable_so_event_data_len_msgbuf_rx_event_22931 event_data_len msgbuf_rx_event 0 22931 NULL
156911 +enable_so_i2400m_rx_ctl_fndecl_22934 i2400m_rx_ctl fndecl 4 22934 NULL
156912 +enable_so_vid_begin_switchdev_obj_vlan_22941 vid_begin switchdev_obj_vlan 0 22941 NULL
156913 +enable_so_num_counters_ip6t_replace_22944 num_counters ip6t_replace 0 22944 NULL
156914 +enable_so_i2cdev_read_fndecl_22949 i2cdev_read fndecl 3 22949 NULL
156915 +enable_so_bulk_out_usbatm_driver_22950 bulk_out usbatm_driver 0 22950 NULL
156916 +enable_so_al_stripe_size_4k_drbd_md_22954 al_stripe_size_4k drbd_md 0 22954 NULL
156917 +enable_so_lov_ost_pool_init_fndecl_22956 lov_ost_pool_init fndecl 2 22956 NULL
156918 +enable_so_osd_full_h_yuv_playback_info_22967 osd_full_h yuv_playback_info 0 22967 NULL
156919 +enable_so_data_swap_cluster_info_22969 data swap_cluster_info 0 22969 NULL
156920 +enable_so_ipc_alloc_fndecl_22971 ipc_alloc fndecl 1 22971 NULL
156921 +enable_so_i2400m_rx_ctl_ack_fndecl_22972 i2400m_rx_ctl_ack fndecl 3 22972 NULL
156922 +enable_so_port_rcvegrbuf_chunks_ipath_portdata_22973 port_rcvegrbuf_chunks ipath_portdata 0 22973 NULL
156923 +enable_so_nilfs_palloc_init_blockgroup_fndecl_22978 nilfs_palloc_init_blockgroup fndecl 2 22978 NULL
156924 +enable_so_do_mmap_fndecl_22981 do_mmap fndecl 0-3-7 22981 NULL nohasharray
156925 +enable_so_kernfs_file_direct_read_fndecl_22981 kernfs_file_direct_read fndecl 3 22981 &enable_so_do_mmap_fndecl_22981
156926 +enable_so_max_pkt_size_stk1160_isoc_ctl_22983 max_pkt_size stk1160_isoc_ctl 0 22983 NULL
156927 +enable_so___do_huge_pmd_anonymous_page_fndecl_22987 __do_huge_pmd_anonymous_page fndecl 3 22987 NULL nohasharray
156928 +enable_so_acpi_battery_write_alarm_fndecl_22987 acpi_battery_write_alarm fndecl 3 22987 &enable_so___do_huge_pmd_anonymous_page_fndecl_22987
156929 +enable_so_max_bio_size_p_sizes_22989 max_bio_size p_sizes 0 22989 NULL
156930 +enable_so_sector_size_flash_info_22990 sector_size flash_info 0 22990 NULL nohasharray
156931 +enable_so_snd_hdac_read_fndecl_22990 snd_hdac_read fndecl 0 22990 &enable_so_sector_size_flash_info_22990
156932 +enable_so_p54spi_spi_write_fndecl_22994 p54spi_spi_write fndecl 4 22994 NULL
156933 +enable_so_total_xfs_da_args_22999 total xfs_da_args 0 22999 NULL nohasharray
156934 +enable_so_size_wil_memio_block_22999 size wil_memio_block 0 22999 &enable_so_total_xfs_da_args_22999
156935 +enable_so_dvb_register_adapter_fndecl_23000 dvb_register_adapter fndecl 0 23000 NULL
156936 +enable_so_ipw_packet_received_skb_fndecl_23005 ipw_packet_received_skb fndecl 2 23005 NULL
156937 +enable_so_memblock_alloc_range_fndecl_23015 memblock_alloc_range fndecl 2-1-3-4 23015 NULL nohasharray
156938 +enable_so_fb_height_drm_fb_helper_surface_size_23015 fb_height drm_fb_helper_surface_size 0 23015 &enable_so_memblock_alloc_range_fndecl_23015 nohasharray
156939 +enable_so_desc_size_data_queue_23015 desc_size data_queue 0 23015 &enable_so_fb_height_drm_fb_helper_surface_size_23015 nohasharray
156940 +enable_so_tx_size_iscsi_cmd_23015 tx_size iscsi_cmd 0 23015 &enable_so_desc_size_data_queue_23015
156941 +enable_so_bLength_usb_endpoint_descriptor_23016 bLength usb_endpoint_descriptor 0 23016 NULL
156942 +enable_so_tim_len_wmi_tim_info_arg_23018 tim_len wmi_tim_info_arg 0 23018 NULL nohasharray
156943 +enable_so_ioctl_private_iw_point_fndecl_23018 ioctl_private_iw_point fndecl 7 23018 &enable_so_tim_len_wmi_tim_info_arg_23018
156944 +enable_so_fw_vif_idx_ath6kl_vif_23020 fw_vif_idx ath6kl_vif 0 23020 NULL
156945 +enable_so_nested_get_page_fndecl_23031 nested_get_page fndecl 2 23031 NULL
156946 +enable_so_rx_frag_size_atl1c_adapter_23034 rx_frag_size atl1c_adapter 0 23034 NULL nohasharray
156947 +enable_so_remap_fndecl_23034 remap fndecl 3 23034 &enable_so_rx_frag_size_atl1c_adapter_23034
156948 +enable_so_io_tlb_start_vardecl_swiotlb_c_23035 io_tlb_start vardecl_swiotlb.c 0 23035 NULL
156949 +enable_so_in_ep_smsusb_device_t_23038 in_ep smsusb_device_t 0 23038 NULL
156950 +enable_so_lost_cnt_hint_tcp_sock_23039 lost_cnt_hint tcp_sock 0 23039 NULL
156951 +enable_so_num_comp_vectors_mlx5_eq_table_23047 num_comp_vectors mlx5_eq_table 0 23047 NULL
156952 +enable_so_y1_drm_clip_rect_23048 y1 drm_clip_rect 0 23048 NULL nohasharray
156953 +enable_so_sta_aid_read_fndecl_23048 sta_aid_read fndecl 3 23048 &enable_so_y1_drm_clip_rect_23048
156954 +enable_so_gnttab_free_count_vardecl_grant_table_c_23049 gnttab_free_count vardecl_grant-table.c 0 23049 NULL
156955 +enable_so_gfs2_read_super_fndecl_23055 gfs2_read_super fndecl 2 23055 NULL
156956 +enable_so_ueth_change_mtu_fndecl_23057 ueth_change_mtu fndecl 2 23057 NULL
156957 +enable_so_fcoe_ctlr_device_add_fndecl_23058 fcoe_ctlr_device_add fndecl 3 23058 NULL
156958 +enable_so_usb_dmac_desc_alloc_fndecl_23059 usb_dmac_desc_alloc fndecl 2 23059 NULL
156959 +enable_so_agp_base_radeon_mc_23066 agp_base radeon_mc 0 23066 NULL nohasharray
156960 +enable_so_fe_start_ext4_free_extent_23066 fe_start ext4_free_extent 0 23066 &enable_so_agp_base_radeon_mc_23066
156961 +enable_so_to_clkrc_fndecl_23074 to_clkrc fndecl 0-2-3 23074 NULL
156962 +enable_so_scif_rb_count_fndecl_23076 scif_rb_count fndecl 0 23076 NULL
156963 +enable_so_fm10k_iov_configure_fndecl_23078 fm10k_iov_configure fndecl 2 23078 NULL
156964 +enable_so_xfs_vm_write_end_fndecl_23085 xfs_vm_write_end fndecl 3-4 23085 NULL nohasharray
156965 +enable_so_ext_ofs_sym_ccb_23085 ext_ofs sym_ccb 0 23085 &enable_so_xfs_vm_write_end_fndecl_23085
156966 +enable_so_vicam_set_camera_power_fndecl_23091 vicam_set_camera_power fndecl 0 23091 NULL
156967 +enable_so_devfn_pci_dev_23093 devfn pci_dev 0 23093 NULL
156968 +enable_so_l2_len_ovs_frag_data_23095 l2_len ovs_frag_data 0 23095 NULL nohasharray
156969 +enable_so_s_cluster_ratio_ext4_sb_info_23095 s_cluster_ratio ext4_sb_info 0 23095 &enable_so_l2_len_ovs_frag_data_23095
156970 +enable_so_qla27xx_fwdt_template_default_size_fndecl_23103 qla27xx_fwdt_template_default_size fndecl 0 23103 NULL
156971 +enable_so___minimum_chunk_size_fndecl_23105 __minimum_chunk_size fndecl 0 23105 NULL
156972 +enable_so___netlink_create_fndecl_23110 __netlink_create fndecl 4 23110 NULL
156973 +enable_so_aim_vdev_read_fndecl_23120 aim_vdev_read fndecl 3 23120 NULL
156974 +enable_so_sq_max_sges_c4iw_qp_attributes_23123 sq_max_sges c4iw_qp_attributes 0 23123 NULL
156975 +enable_so_rtsx_usb_ms_issue_cmd_fndecl_23136 rtsx_usb_ms_issue_cmd fndecl 0 23136 NULL
156976 +enable_so_numchips_nand_chip_23137 numchips nand_chip 0 23137 NULL
156977 +enable_so_num_dv_ports_adv76xx_chip_info_23140 num_dv_ports adv76xx_chip_info 0 23140 NULL
156978 +enable_so_udf_load_pvoldesc_fndecl_23141 udf_load_pvoldesc fndecl 2 23141 NULL
156979 +enable_so_max_tx_urbs_kvaser_usb_23152 max_tx_urbs kvaser_usb 0 23152 NULL
156980 +enable_so_bits_key_vector_23153 bits key_vector 0 23153 NULL
156981 +enable_so_memblock_free_fndecl_23154 memblock_free fndecl 2-1 23154 NULL
156982 +enable_so_oxu_create_fndecl_23159 oxu_create fndecl 3-2 23159 NULL
156983 +enable_so_isdn_audio_xlaw2adpcm_fndecl_23162 isdn_audio_xlaw2adpcm fndecl 0 23162 NULL nohasharray
156984 +enable_so_rx_defrag_called_read_fndecl_23162 rx_defrag_called_read fndecl 3 23162 &enable_so_isdn_audio_xlaw2adpcm_fndecl_23162
156985 +enable_so_width_linux_logo_23166 width linux_logo 0 23166 NULL
156986 +enable_so_ip6_tnl_rcv_fndecl_23167 ip6_tnl_rcv fndecl 2 23167 NULL nohasharray
156987 +enable_so_SyS_add_key_fndecl_23167 SyS_add_key fndecl 4 23167 &enable_so_ip6_tnl_rcv_fndecl_23167
156988 +enable_so_memblock_alloc_base_fndecl_23169 memblock_alloc_base fndecl 2-1-3 23169 NULL nohasharray
156989 +enable_so_MaxIoCommands_aac_init_23169 MaxIoCommands aac_init 0 23169 &enable_so_memblock_alloc_base_fndecl_23169
156990 +enable_so_retry_count_ib_cm_req_param_23173 retry_count ib_cm_req_param 0 23173 NULL
156991 +enable_so_cyttsp_probe_fndecl_23175 cyttsp_probe fndecl 4 23175 NULL
156992 +enable_so_x_res_vbe_mode_ib_23177 x_res vbe_mode_ib 0 23177 NULL
156993 +enable_so_nslot_nd_namespace_index_23178 nslot nd_namespace_index 0 23178 NULL
156994 +enable_so_uhid_char_read_fndecl_23187 uhid_char_read fndecl 3 23187 NULL
156995 +enable_so_tx_tx_retry_data_read_fndecl_23189 tx_tx_retry_data_read fndecl 3 23189 NULL
156996 +enable_so_ir_context_mask_fw_ohci_23196 ir_context_mask fw_ohci 0 23196 NULL
156997 +enable_so_seq_lseek_fndecl_23197 seq_lseek fndecl 2 23197 NULL
156998 +enable_so_bdev_erase_fndecl_23198 bdev_erase fndecl 2-3 23198 NULL
156999 +enable_so_offs_aim_fh_23201 offs aim_fh 0 23201 NULL
157000 +enable_so_ib_uverbs_reg_mr_fndecl_23214 ib_uverbs_reg_mr fndecl 4 23214 NULL
157001 +enable_so_btt_major_vardecl_btt_c_23220 btt_major vardecl_btt.c 0 23220 NULL
157002 +enable_so_read_swap_header_fndecl_23222 read_swap_header fndecl 0 23222 NULL
157003 +enable_so_num_channels_sh_mtu2_device_23224 num_channels sh_mtu2_device 0 23224 NULL
157004 +enable_so_clk_core_get_rate_fndecl_23225 clk_core_get_rate fndecl 0 23225 NULL nohasharray
157005 +enable_so_vid_hdr_offset_ubi_device_23225 vid_hdr_offset ubi_device 0 23225 &enable_so_clk_core_get_rate_fndecl_23225
157006 +enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
157007 +enable_so_nvkm_client_map_fndecl_23228 nvkm_client_map fndecl 3-2 23228 NULL
157008 +enable_so_ubifs_prep_grp_node_fndecl_23231 ubifs_prep_grp_node fndecl 3 23231 NULL nohasharray
157009 +enable_so_ivtv_v4l2_read_fndecl_23231 ivtv_v4l2_read fndecl 3 23231 &enable_so_ubifs_prep_grp_node_fndecl_23231
157010 +enable_so__major_vardecl_dm_c_23233 _major vardecl_dm.c 0 23233 NULL
157011 +enable_so_sb_min_blocksize_fndecl_23239 sb_min_blocksize fndecl 2-0 23239 NULL
157012 +enable_so_num_rxd_rx_ring_config_23240 num_rxd rx_ring_config 0 23240 NULL
157013 +enable_so_rx_rx_defrag_read_fndecl_23241 rx_rx_defrag_read fndecl 3 23241 NULL
157014 +enable_so_dir_per_block_bits_msdos_sb_info_23245 dir_per_block_bits msdos_sb_info 0 23245 NULL
157015 +enable_so_ksm_madvise_fndecl_23247 ksm_madvise fndecl 2 23247 NULL
157016 +enable_so___alloc_bootmem_node_fndecl_23259 __alloc_bootmem_node fndecl 3-2-4 23259 NULL
157017 +enable_so_fr_resid_fcp_resp_ext_23265 fr_resid fcp_resp_ext 0 23265 NULL
157018 +enable_so_avc_data_length_firedtv_23266 avc_data_length firedtv 0 23266 NULL
157019 +enable_so_devm_ioremap_nocache_fndecl_23271 devm_ioremap_nocache fndecl 3-2 23271 NULL nohasharray
157020 +enable_so_mlx4_slave_convert_port_fndecl_23271 mlx4_slave_convert_port fndecl 0-3 23271 &enable_so_devm_ioremap_nocache_fndecl_23271
157021 +enable_so_cifs_read_fndecl_23274 cifs_read fndecl 3 23274 NULL
157022 +enable_so_udf_table_new_block_fndecl_23276 udf_table_new_block fndecl 0 23276 NULL
157023 +enable_so_start_blkpg_partition_23281 start blkpg_partition 0 23281 NULL
157024 +enable_so_n_tty_receive_buf2_fndecl_23286 n_tty_receive_buf2 fndecl 4 23286 NULL nohasharray
157025 +enable_so_write_flush_pipefs_fndecl_23286 write_flush_pipefs fndecl 3 23286 &enable_so_n_tty_receive_buf2_fndecl_23286
157026 +enable_so_ino_node_info_23289 ino node_info 0 23289 NULL nohasharray
157027 +enable_so_modedb_len_fb_monspecs_23289 modedb_len fb_monspecs 0 23289 &enable_so_ino_node_info_23289
157028 +enable_so_shmac_num_idents_sctp_hmacalgo_23292 shmac_num_idents sctp_hmacalgo 0 23292 NULL
157029 +enable_so_vtbl_slots_ubi_device_23293 vtbl_slots ubi_device 0 23293 NULL
157030 +enable_so_fnic_get_trace_data_fndecl_23305 fnic_get_trace_data fndecl 0 23305 NULL
157031 +enable_so_transfersize_scsi_cmnd_23314 transfersize scsi_cmnd 0 23314 NULL
157032 +enable_so_s_blocks_per_segment_nilfs_super_block_23318 s_blocks_per_segment nilfs_super_block 0 23318 NULL
157033 +enable_so_max_send_sge_ocrdma_dev_attr_23321 max_send_sge ocrdma_dev_attr 0 23321 NULL
157034 +enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime fndecl 3 23334 NULL nohasharray
157035 +enable_so_naces_nfs4_acl_23334 naces nfs4_acl 0 23334 &enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334
157036 +enable_so_reply_queue_count_MPT2SAS_ADAPTER_23337 reply_queue_count MPT2SAS_ADAPTER 0 23337 NULL
157037 +enable_so_max_header_size_tsap_cb_23342 max_header_size tsap_cb 0 23342 NULL
157038 +enable_so_compat_sys_vmsplice_fndecl_23344 compat_sys_vmsplice fndecl 3 23344 NULL
157039 +enable_so_mark_block_processed_fndecl_23353 mark_block_processed fndecl 3-2 23353 NULL nohasharray
157040 +enable_so_pci_iov_virtfn_devfn_fndecl_23353 pci_iov_virtfn_devfn fndecl 0-2 23353 &enable_so_mark_block_processed_fndecl_23353
157041 +enable_so_bfad_iocmd_handler_fndecl_23357 bfad_iocmd_handler fndecl 0 23357 NULL
157042 +enable_so_vxres_crtc_23359 vxres crtc 0 23359 NULL
157043 +enable_so_v9fs_fid_xattr_get_fndecl_23361 v9fs_fid_xattr_get fndecl 0-4 23361 NULL
157044 +enable_so_default_blksize_st_modedef_23371 default_blksize st_modedef 0 23371 NULL
157045 +enable_so_packet_buffer_init_fndecl_23380 packet_buffer_init fndecl 2 23380 NULL
157046 +enable_so_kernel_map_sync_memtype_fndecl_23381 kernel_map_sync_memtype fndecl 1 23381 NULL
157047 +enable_so_length_dmi_header_23383 length dmi_header 0 23383 NULL
157048 +enable_so_pcpu_atom_size_vardecl_percpu_c_23384 pcpu_atom_size vardecl_percpu.c 0 23384 NULL
157049 +enable_so_sf_entsize_xfs_dir_ops_23386 sf_entsize xfs_dir_ops 0 23386 NULL nohasharray
157050 +enable_so_dstirq_mpc_intsrc_23386 dstirq mpc_intsrc 0 23386 &enable_so_sf_entsize_xfs_dir_ops_23386
157051 +enable_so_new_SSID_size_atmel_private_23387 new_SSID_size atmel_private 0 23387 NULL
157052 +enable_so___irlan_insert_param_fndecl_23389 __irlan_insert_param fndecl 7 23389 NULL nohasharray
157053 +enable_so_btmrvl_hscmd_read_fndecl_23389 btmrvl_hscmd_read fndecl 3 23389 &enable_so___irlan_insert_param_fndecl_23389
157054 +enable_so_xfs_alloc_file_space_fndecl_23394 xfs_alloc_file_space fndecl 2-3 23394 NULL
157055 +enable_so_ptr_mask_amdgpu_ring_23397 ptr_mask amdgpu_ring 0 23397 NULL
157056 +enable_so_de_name_len_gfs2_dirent_23398 de_name_len gfs2_dirent 0 23398 NULL
157057 +enable_so_kt_serial_setup_fndecl_23400 kt_serial_setup fndecl 4 23400 NULL
157058 +enable_so_max_cmds_ips_ha_23401 max_cmds ips_ha 0 23401 NULL nohasharray
157059 +enable_so_ikconfig_read_current_fndecl_23401 ikconfig_read_current fndecl 3 23401 &enable_so_max_cmds_ips_ha_23401
157060 +enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405 s5p_jpeg_get_subsampling_mode fndecl 0 23405 NULL nohasharray
157061 +enable_so_map_block_for_writepage_fndecl_23405 map_block_for_writepage fndecl 3 23405 &enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405
157062 +enable_so_nx_fw_cmd_set_gbe_port_fndecl_23412 nx_fw_cmd_set_gbe_port fndecl 3 23412 NULL
157063 +enable_so_numerator_v4l2_fract_23413 numerator v4l2_fract 0 23413 NULL
157064 +enable_so_logfs_safe_iget_fndecl_23415 logfs_safe_iget fndecl 2 23415 NULL
157065 +enable_so_cifs_write_end_fndecl_23416 cifs_write_end fndecl 5 23416 NULL
157066 +enable_so_max_snd_interval_23422 max snd_interval 0 23422 NULL
157067 +enable_so_r_caps_to_nethctrl_fw_pfvf_cmd_23424 r_caps_to_nethctrl fw_pfvf_cmd 0 23424 NULL nohasharray
157068 +enable_so_configfs_read_file_fndecl_23424 configfs_read_file fndecl 3 23424 &enable_so_r_caps_to_nethctrl_fw_pfvf_cmd_23424
157069 +enable_so___qib_get_user_pages_fndecl_23426 __qib_get_user_pages fndecl 1 23426 NULL
157070 +enable_so_nilfs_attach_snapshot_fndecl_23434 nilfs_attach_snapshot fndecl 2 23434 NULL
157071 +enable_so_ftdi_instances_vardecl_ftdi_elan_c_23438 ftdi_instances vardecl_ftdi-elan.c 0 23438 NULL
157072 +enable_so_set_xfer_rate_fndecl_23440 set_xfer_rate fndecl 2 23440 NULL
157073 +enable_so_mei_cl_recv_fndecl_23442 mei_cl_recv fndecl 0-3 23442 NULL
157074 +enable_so_seg_size_wa_xfer_23450 seg_size wa_xfer 0 23450 NULL
157075 +enable_so_name_len_ocfs2_dir_entry_23452 name_len ocfs2_dir_entry 0 23452 NULL nohasharray
157076 +enable_so_bytes_number_item_operations_23452 bytes_number item_operations 0 23452 &enable_so_name_len_ocfs2_dir_entry_23452
157077 +enable_so_btrfs_dir_data_len_fndecl_23457 btrfs_dir_data_len fndecl 0 23457 NULL
157078 +enable_so_size_mwifiex_opt_sleep_confirm_23460 size mwifiex_opt_sleep_confirm 0 23460 NULL
157079 +enable_so_rsi_sdio_write_register_multiple_fndecl_23471 rsi_sdio_write_register_multiple fndecl 4 23471 NULL
157080 +enable_so_offset_ttm_bus_placement_23475 offset ttm_bus_placement 0 23475 NULL
157081 +enable_so_iwl_dbgfs_d0i3_refs_read_fndecl_23482 iwl_dbgfs_d0i3_refs_read fndecl 3 23482 NULL
157082 +enable_so_gfn_to_hva_prot_fndecl_23484 gfn_to_hva_prot fndecl 2 23484 NULL nohasharray
157083 +enable_so_coda_psdev_write_fndecl_23484 coda_psdev_write fndecl 3 23484 &enable_so_gfn_to_hva_prot_fndecl_23484
157084 +enable_so_control_skge_rx_desc_23486 control skge_rx_desc 0 23486 NULL
157085 +enable_so_cyy_init_card_fndecl_23488 cyy_init_card fndecl 0 23488 NULL
157086 +enable_so_tx_frag_called_read_fndecl_23495 tx_frag_called_read fndecl 3 23495 NULL
157087 +enable_so_egr_sz_sge_23500 egr_sz sge 0 23500 NULL
157088 +enable_so_mxt_read_and_process_messages_fndecl_23502 mxt_read_and_process_messages fndecl 2-0 23502 NULL
157089 +enable_so_internal_create_group_fndecl_23510 internal_create_group fndecl 0 23510 NULL
157090 +enable_so_objectid_btrfs_disk_key_23513 objectid btrfs_disk_key 0 23513 NULL
157091 +enable_so_usb_ep_align_maybe_fndecl_23516 usb_ep_align_maybe fndecl 0-3 23516 NULL
157092 +enable_so_dev_irnet_read_fndecl_23518 dev_irnet_read fndecl 3 23518 NULL
157093 +enable_so_data_size_rxkad_level2_hdr_23519 data_size rxkad_level2_hdr 0 23519 NULL
157094 +enable_so_rxHeader2_edgeport_serial_23525 rxHeader2 edgeport_serial 0 23525 NULL
157095 +enable_so_ieee80211_new_mesh_header_fndecl_23538 ieee80211_new_mesh_header fndecl 0 23538 NULL
157096 +enable_so_FbUsableSize_nvidia_par_23541 FbUsableSize nvidia_par 0 23541 NULL nohasharray
157097 +enable_so_mem_size_pch_dev_23541 mem_size pch_dev 0 23541 &enable_so_FbUsableSize_nvidia_par_23541
157098 +enable_so_max_pkt_size_cx231xx_bulk_ctl_23542 max_pkt_size cx231xx_bulk_ctl 0 23542 NULL
157099 +enable_so_ebt_size_mwt_fndecl_23547 ebt_size_mwt fndecl 0 23547 NULL
157100 +enable_so_cosa_write_fndecl_23549 cosa_write fndecl 3 23549 NULL
157101 +enable_so_ufs_inode_getblock_fndecl_23550 ufs_inode_getblock fndecl 4-3-2-0 23550 NULL nohasharray
157102 +enable_so_inode_no_exofs_dir_entry_23550 inode_no exofs_dir_entry 0 23550 &enable_so_ufs_inode_getblock_fndecl_23550
157103 +enable_so_xfs_dabuf_map_fndecl_23558 xfs_dabuf_map fndecl 2 23558 NULL
157104 +enable_so_p_chmask_f_uac2_opts_23559 p_chmask f_uac2_opts 0 23559 NULL
157105 +enable_so_max_length_axi_dmac_chan_23560 max_length axi_dmac_chan 0 23560 NULL
157106 +enable_so_bdx_change_mtu_fndecl_23561 bdx_change_mtu fndecl 2 23561 NULL
157107 +enable_so_lblock_gfs2_journal_extent_23574 lblock gfs2_journal_extent 0 23574 NULL
157108 +enable_so_e_next_omfs_extent_23580 e_next omfs_extent 0 23580 NULL nohasharray
157109 +enable_so_secblob_len_cifs_spnego_msg_23580 secblob_len cifs_spnego_msg 0 23580 &enable_so_e_next_omfs_extent_23580
157110 +enable_so_rx_max_size_cxgbi_device_23582 rx_max_size cxgbi_device 0 23582 NULL
157111 +enable_so_syslog_print_fndecl_23584 syslog_print fndecl 2 23584 NULL nohasharray
157112 +enable_so_resource_length_aml_resource_large_header_23584 resource_length aml_resource_large_header 0 23584 &enable_so_syslog_print_fndecl_23584
157113 +enable_so_nr_devices_ssb_bus_23589 nr_devices ssb_bus 0 23589 NULL
157114 +enable_so_max_cmd_size_ath6kl_bmi_23591 max_cmd_size ath6kl_bmi 0 23591 NULL
157115 +enable_so_dn_setsockopt_fndecl_23593 dn_setsockopt fndecl 5 23593 NULL
157116 +enable_so_hugetlb_no_page_fndecl_23597 hugetlb_no_page fndecl 5 23597 NULL
157117 +enable_so_c67x00_probe_sie_fndecl_23602 c67x00_probe_sie fndecl 3 23602 NULL
157118 +enable_so_read_file_war_stats_fndecl_23607 read_file_war_stats fndecl 3 23607 NULL
157119 +enable_so_nr_grant_frames_vardecl_grant_table_c_23609 nr_grant_frames vardecl_grant-table.c 0 23609 NULL
157120 +enable_so_mthca_alloc_icm_pages_fndecl_23615 mthca_alloc_icm_pages fndecl 2 23615 NULL nohasharray
157121 +enable_so_sctp_make_control_fndecl_23615 sctp_make_control fndecl 2 23615 &enable_so_mthca_alloc_icm_pages_fndecl_23615
157122 +enable_so_video_size_sis_video_info_23622 video_size sis_video_info 0 23622 NULL nohasharray
157123 +enable_so_mthca_alloc_fndecl_23622 mthca_alloc fndecl 0 23622 &enable_so_video_size_sis_video_info_23622
157124 +enable_so_blocksize_iso9660_options_23626 blocksize iso9660_options 0 23626 NULL
157125 +enable_so_skge_rx_setup_fndecl_23628 skge_rx_setup fndecl 4 23628 NULL
157126 +enable_so_vb_bytes_per_line_cx18_stream_23630 vb_bytes_per_line cx18_stream 0 23630 NULL nohasharray
157127 +enable_so_ll_zero_fndecl_23630 ll_zero fndecl 3-4 23630 &enable_so_vb_bytes_per_line_cx18_stream_23630
157128 +enable_so_ath9k_wmi_cmd_fndecl_23636 ath9k_wmi_cmd fndecl 4 23636 NULL
157129 +enable_so_nr_tags_blk_mq_tags_23638 nr_tags blk_mq_tags 0 23638 NULL
157130 +enable_so_packet_do_bind_fndecl_23642 packet_do_bind fndecl 4 23642 NULL
157131 +enable_so_ceph_sync_read_fndecl_23643 ceph_sync_read fndecl 0 23643 NULL
157132 +enable_so_map_urb_for_dma_fndecl_23647 map_urb_for_dma fndecl 0 23647 NULL
157133 +enable_so_size_crush_bucket_23650 size crush_bucket 0 23650 NULL
157134 +enable_so_piobcnt4k_qib_devdata_23655 piobcnt4k qib_devdata 0 23655 NULL
157135 +enable_so_viafb_bpp1_vardecl_viafbdev_c_23657 viafb_bpp1 vardecl_viafbdev.c 0 23657 NULL
157136 +enable_so_cmtp_send_interopmsg_fndecl_23659 cmtp_send_interopmsg fndecl 7 23659 NULL
157137 +enable_so_unix_stream_sendpage_fndecl_23660 unix_stream_sendpage fndecl 3-4 23660 NULL nohasharray
157138 +enable_so_elem_count_mlxsw_pci_queue_ops_23660 elem_count mlxsw_pci_queue_ops 0 23660 &enable_so_unix_stream_sendpage_fndecl_23660
157139 +enable_so_fat_length_msdos_sb_info_23672 fat_length msdos_sb_info 0 23672 NULL
157140 +enable_so_mlx5_core_access_reg_fndecl_23674 mlx5_core_access_reg fndecl 3-5 23674 NULL
157141 +enable_so_xfs_get_blocks_fndecl_23679 xfs_get_blocks fndecl 2 23679 NULL nohasharray
157142 +enable_so___send_discard_fndecl_23679 __send_discard fndecl 0 23679 &enable_so_xfs_get_blocks_fndecl_23679
157143 +enable_so_xfs_ialloc_next_ag_fndecl_23680 xfs_ialloc_next_ag fndecl 0 23680 NULL
157144 +enable_so_buf_size_vmci_ctx_chkpt_buf_info_23686 buf_size vmci_ctx_chkpt_buf_info 0 23686 NULL
157145 +enable_so_vxfs_bmap1_fndecl_23688 vxfs_bmap1 fndecl 0-2 23688 NULL
157146 +enable_so_aio_read_events_ring_fndecl_23689 aio_read_events_ring fndecl 3 23689 NULL
157147 +enable_so_aac_fib_adapter_complete_fndecl_23697 aac_fib_adapter_complete fndecl 2 23697 NULL
157148 +enable_so_size_ubifs_ino_node_23699 size ubifs_ino_node 0 23699 NULL
157149 +enable_so_rmtvaluelen_xfs_da_args_23709 rmtvaluelen xfs_da_args 0 23709 NULL nohasharray
157150 +enable_so_word_offset_bm_xfer_ctx_23709 word_offset bm_xfer_ctx 0 23709 &enable_so_rmtvaluelen_xfs_da_args_23709
157151 +enable_so_vgacon_scroll_fndecl_23715 vgacon_scroll fndecl 5 23715 NULL
157152 +enable_so_ath6kl_sdio_bmi_write_fndecl_23717 ath6kl_sdio_bmi_write fndecl 3 23717 NULL
157153 +enable_so_num_retune_mobile_texts_wm8904_priv_23719 num_retune_mobile_texts wm8904_priv 0 23719 NULL
157154 +enable_so_len_cmdbuf_t_23720 len cmdbuf_t 0 23720 NULL
157155 +enable_so_acpi_ev_create_gpe_block_fndecl_23722 acpi_ev_create_gpe_block fndecl 4 23722 NULL
157156 +enable_so_size_p9_fcall_23725 size p9_fcall 0 23725 NULL
157157 +enable_so_lbs_rdmac_read_fndecl_23729 lbs_rdmac_read fndecl 3 23729 NULL
157158 +enable_so_mlx4_set_vf_vlan_fndecl_23734 mlx4_set_vf_vlan fndecl 5 23734 NULL
157159 +enable_so_hugetlb_fault_fndecl_23735 hugetlb_fault fndecl 3 23735 NULL
157160 +enable_so_logfs_compress_fndecl_23746 logfs_compress fndecl 0-3-4 23746 NULL
157161 +enable_so__alloc_get_attr_desc_fndecl_23749 _alloc_get_attr_desc fndecl 2 23749 NULL
157162 +enable_so_writesize_acm_23756 writesize acm 0 23756 NULL
157163 +enable_so_dccp_manip_pkt_fndecl_23759 dccp_manip_pkt fndecl 4 23759 NULL
157164 +enable_so_fat_ent_bread_fndecl_23760 fat_ent_bread fndecl 4 23760 NULL
157165 +enable_so_fnic_max_trace_entries_vardecl_fnic_trace_c_23762 fnic_max_trace_entries vardecl_fnic_trace.c 0 23762 NULL
157166 +enable_so_i915_gem_create_fndecl_23768 i915_gem_create fndecl 3 23768 NULL
157167 +enable_so_size_romfs_inode_23773 size romfs_inode 0 23773 NULL
157168 +enable_so_dev_mem_seek_fndecl_23776 dev_mem_seek fndecl 2 23776 NULL nohasharray
157169 +enable_so_rec_len_ext4_dir_entry_2_23776 rec_len ext4_dir_entry_2 0 23776 &enable_so_dev_mem_seek_fndecl_23776 nohasharray
157170 +enable_so_start_pnfs_block_dev_map_23776 start pnfs_block_dev_map 0 23776 &enable_so_rec_len_ext4_dir_entry_2_23776
157171 +enable_so_read_vbt_r0_fndecl_23780 read_vbt_r0 fndecl 1 23780 NULL
157172 +enable_so_tail_p9_rdir_23781 tail p9_rdir 0 23781 NULL nohasharray
157173 +enable_so_iwl_dbgfs_protection_mode_write_fndecl_23781 iwl_dbgfs_protection_mode_write fndecl 3 23781 &enable_so_tail_p9_rdir_23781
157174 +enable_so_count_uvc_debugfs_buffer_23783 count uvc_debugfs_buffer 0 23783 NULL
157175 +enable_so_rx_rx_defrag_end_read_fndecl_23786 rx_rx_defrag_end_read fndecl 3 23786 NULL
157176 +enable_so_read_buffer_length_lego_usb_tower_23787 read_buffer_length lego_usb_tower 0 23787 NULL
157177 +enable_so_nr_kvm_irq_routing_23794 nr kvm_irq_routing 0 23794 NULL
157178 +enable_so_ubi_attach_mtd_dev_fndecl_23797 ubi_attach_mtd_dev fndecl 3-4 23797 NULL nohasharray
157179 +enable_so_parity_devs_raid_type_23797 parity_devs raid_type 0 23797 &enable_so_ubi_attach_mtd_dev_fndecl_23797
157180 +enable_so_free_tiger_ch_23798 free tiger_ch 0 23798 NULL
157181 +enable_so_ra_offset_xfs_dir2_leaf_map_info_23799 ra_offset xfs_dir2_leaf_map_info 0 23799 NULL
157182 +enable_so_skip_tx_en_setup_fndecl_23801 skip_tx_en_setup fndecl 4 23801 NULL
157183 +enable_so_nr_node_ids_vardecl_23803 nr_node_ids vardecl 0 23803 NULL nohasharray
157184 +enable_so_nvme_trans_modesel_data_fndecl_23803 nvme_trans_modesel_data fndecl 4 23803 &enable_so_nr_node_ids_vardecl_23803
157185 +enable_so_desc_list_len_timb_dma_desc_23804 desc_list_len timb_dma_desc 0 23804 NULL
157186 +enable_so_sctp_skb_pull_fndecl_23806 sctp_skb_pull fndecl 2-0 23806 NULL
157187 +enable_so_cdrom_read_cdda_bpc_fndecl_23812 cdrom_read_cdda_bpc fndecl 4 23812 NULL nohasharray
157188 +enable_so_compat_sock_setsockopt_fndecl_23812 compat_sock_setsockopt fndecl 5 23812 &enable_so_cdrom_read_cdda_bpc_fndecl_23812
157189 +enable_so_sctp_init_cause_fndecl_23813 sctp_init_cause fndecl 3 23813 NULL nohasharray
157190 +enable_so_storvsc_connect_to_vsp_fndecl_23813 storvsc_connect_to_vsp fndecl 2 23813 &enable_so_sctp_init_cause_fndecl_23813
157191 +enable_so_carl9170_alloc_fndecl_23816 carl9170_alloc fndecl 1 23816 NULL
157192 +enable_so_ocfs2_get_refcount_tree_fndecl_23824 ocfs2_get_refcount_tree fndecl 2 23824 NULL
157193 +enable_so_intel_fake_agp_alloc_by_type_fndecl_23826 intel_fake_agp_alloc_by_type fndecl 1 23826 NULL nohasharray
157194 +enable_so_nbytes_ahash_request_23826 nbytes ahash_request 0 23826 &enable_so_intel_fake_agp_alloc_by_type_fndecl_23826
157195 +enable_so___xfs_dir3_free_read_fndecl_23827 __xfs_dir3_free_read fndecl 3 23827 NULL nohasharray
157196 +enable_so_bios_hardcoded_edid_size_radeon_mode_info_23827 bios_hardcoded_edid_size radeon_mode_info 0 23827 &enable_so___xfs_dir3_free_read_fndecl_23827
157197 +enable_so_vbi_v_stop_0_saa7134_tvnorm_23830 vbi_v_stop_0 saa7134_tvnorm 0 23830 NULL
157198 +enable_so_buffer_total_count_pvr2_stream_23834 buffer_total_count pvr2_stream 0 23834 NULL
157199 +enable_so_key_dm_region_23838 key dm_region 0 23838 NULL nohasharray
157200 +enable_so_dreq_gsr_dccp_request_sock_23838 dreq_gsr dccp_request_sock 0 23838 &enable_so_key_dm_region_23838
157201 +enable_so_compressed_bio_alloc_fndecl_23839 compressed_bio_alloc fndecl 2 23839 NULL
157202 +enable_so_rx_buf_size_skge_port_23843 rx_buf_size skge_port 0 23843 NULL
157203 +enable_so_padzero_fndecl_23844 padzero fndecl 1 23844 NULL nohasharray
157204 +enable_so_sel_read_policyvers_fndecl_23844 sel_read_policyvers fndecl 3 23844 &enable_so_padzero_fndecl_23844
157205 +enable_so_vlan_free_res_fndecl_23846 vlan_free_res fndecl 7 23846 NULL
157206 +enable_so_osd_request_async_done_fndecl_23847 osd_request_async_done fndecl 2 23847 NULL nohasharray
157207 +enable_so_pci_fastcom335_setup_fndecl_23847 pci_fastcom335_setup fndecl 4 23847 &enable_so_osd_request_async_done_fndecl_23847 nohasharray
157208 +enable_so_tidcnt_qib_tid_info_23847 tidcnt qib_tid_info 0 23847 &enable_so_pci_fastcom335_setup_fndecl_23847
157209 +enable_so_efx_ef10_sriov_configure_fndecl_23850 efx_ef10_sriov_configure fndecl 2 23850 NULL nohasharray
157210 +enable_so_SpareReplUnitNum_nftl_uci0_23850 SpareReplUnitNum nftl_uci0 0 23850 &enable_so_efx_ef10_sriov_configure_fndecl_23850
157211 +enable_so_am_length_compat_xfs_attr_multiop_23853 am_length compat_xfs_attr_multiop 0 23853 NULL
157212 +enable_so_max_srq_wqes_mlx4_caps_23857 max_srq_wqes mlx4_caps 0 23857 NULL
157213 +enable_so_clutsize_linux_logo_23865 clutsize linux_logo 0 23865 NULL
157214 +enable_so_vdisplay_drm_display_mode_23870 vdisplay drm_display_mode 0 23870 NULL
157215 +enable_so_ohead_offs_ubifs_info_23876 ohead_offs ubifs_info 0 23876 NULL nohasharray
157216 +enable_so_c_data_offs_pvr2_ioread_23876 c_data_offs pvr2_ioread 0 23876 &enable_so_ohead_offs_ubifs_info_23876
157217 +enable_so_write_file_tpc_fndecl_23877 write_file_tpc fndecl 3 23877 NULL
157218 +enable_so_operand_2_len_ccp_ecc_modular_math_23882 operand_2_len ccp_ecc_modular_math 0 23882 NULL
157219 +enable_so_load_msg_fndecl_23884 load_msg fndecl 2 23884 NULL
157220 +enable_so_snd_korg1212_copy_to_fndecl_23887 snd_korg1212_copy_to fndecl 6 23887 NULL
157221 +enable_so_bytes_snd_dma_buffer_23890 bytes snd_dma_buffer 0 23890 NULL nohasharray
157222 +enable_so_sb_dirband_size_hpfs_sb_info_23890 sb_dirband_size hpfs_sb_info 0 23890 &enable_so_bytes_snd_dma_buffer_23890
157223 +enable_so_batadv_backbone_hash_find_fndecl_23891 batadv_backbone_hash_find fndecl 3 23891 NULL
157224 +enable_so_in_base_pos_ceph_connection_23892 in_base_pos ceph_connection 0 23892 NULL
157225 +enable_so_vxfs_inode_by_name_fndecl_23899 vxfs_inode_by_name fndecl 0 23899 NULL nohasharray
157226 +enable_so___skb_to_sgvec_fndecl_23899 __skb_to_sgvec fndecl 0-4-3 23899 &enable_so_vxfs_inode_by_name_fndecl_23899
157227 +enable_so_block_log_squashfs_sb_info_23905 block_log squashfs_sb_info 0 23905 NULL
157228 +enable_so_status_adm8211_desc_23909 status adm8211_desc 0 23909 NULL nohasharray
157229 +enable_so_al_offset_drbd_md_23909 al_offset drbd_md 0 23909 &enable_so_status_adm8211_desc_23909
157230 +enable_so_ipath_verbs_send_fndecl_23910 ipath_verbs_send fndecl 5-3 23910 NULL
157231 +enable_so_num_pages_fuse_req_23911 num_pages fuse_req 0 23911 NULL
157232 +enable_so_avail_pebs_ubi_device_23916 avail_pebs ubi_device 0 23916 NULL
157233 +enable_so_data_len_iser_data_buf_23917 data_len iser_data_buf 0 23917 NULL
157234 +enable_so_rd_data_gfs2_rgrpd_23919 rd_data gfs2_rgrpd 0 23919 NULL
157235 +enable_so_nr_items_list_lru_one_23925 nr_items list_lru_one 0 23925 NULL
157236 +enable_so_p9_client_readdir_fndecl_23927 p9_client_readdir fndecl 0-3 23927 NULL
157237 +enable_so_disk_len_btrfs_ordered_extent_23932 disk_len btrfs_ordered_extent 0 23932 NULL
157238 +enable_so_smiapp_write_8_fndecl_23937 smiapp_write_8 fndecl 2 23937 NULL
157239 +enable_so_tracing_trace_options_write_fndecl_23946 tracing_trace_options_write fndecl 3 23946 NULL
157240 +enable_so_btrfs_setxattr_fndecl_23956 btrfs_setxattr fndecl 4 23956 NULL
157241 +enable_so_init_q_fndecl_23959 init_q fndecl 4 23959 NULL
157242 +enable_so_input_buffer_size_vardecl_seq_midi_c_23961 input_buffer_size vardecl_seq_midi.c 0 23961 NULL
157243 +enable_so_rx_ip_align_efx_nic_23965 rx_ip_align efx_nic 0 23965 NULL nohasharray
157244 +enable_so_memstick_alloc_host_fndecl_23965 memstick_alloc_host fndecl 1 23965 &enable_so_rx_ip_align_efx_nic_23965
157245 +enable_so_memblock_add_range_fndecl_23974 memblock_add_range fndecl 2-3 23974 NULL nohasharray
157246 +enable_so_fw_status_len_wl1271_23974 fw_status_len wl1271 0 23974 &enable_so_memblock_add_range_fndecl_23974
157247 +enable_so_li_channels__DIVA_CAPI_ADAPTER_23977 li_channels _DIVA_CAPI_ADAPTER 0 23977 NULL
157248 +enable_so_xfs_buf_item_get_format_fndecl_23982 xfs_buf_item_get_format fndecl 2 23982 NULL nohasharray
157249 +enable_so_sinfo_stream_sctp_sndrcvinfo_23982 sinfo_stream sctp_sndrcvinfo 0 23982 &enable_so_xfs_buf_item_get_format_fndecl_23982
157250 +enable_so_vsync_len_fb_var_screeninfo_23987 vsync_len fb_var_screeninfo 0 23987 NULL
157251 +enable_so_length_acpi_object_string_23992 length acpi_object_string 0 23992 NULL
157252 +enable_so_EventDataLength__MPI2_EVENT_NOTIFICATION_REPLY_23993 EventDataLength _MPI2_EVENT_NOTIFICATION_REPLY 0 23993 NULL
157253 +enable_so_usb_stream_next_packet_size_fndecl_23994 usb_stream_next_packet_size fndecl 0 23994 NULL nohasharray
157254 +enable_so_pci_request_selected_regions_fndecl_23994 pci_request_selected_regions fndecl 0 23994 &enable_so_usb_stream_next_packet_size_fndecl_23994
157255 +enable_so___pn533_send_async_fndecl_24001 __pn533_send_async fndecl 5 24001 NULL
157256 +enable_so_anchor_udf_options_24004 anchor udf_options 0 24004 NULL
157257 +enable_so_dir_band_start_hpfs_super_block_24005 dir_band_start hpfs_super_block 0 24005 NULL
157258 +enable_so_truncate_setsize_fndecl_24013 truncate_setsize fndecl 2 24013 NULL
157259 +enable_so_ath6kl_wmi_bssfilter_cmd_fndecl_24014 ath6kl_wmi_bssfilter_cmd fndecl 2 24014 NULL
157260 +enable_so_vlan_id_bond_vlan_tag_24019 vlan_id bond_vlan_tag 0 24019 NULL
157261 +enable_so_minimum_pcc_memory_resource_24022 minimum pcc_memory_resource 0 24022 NULL
157262 +enable_so_iscsi_session_setup_fndecl_24023 iscsi_session_setup fndecl 4-5-3 24023 NULL
157263 +enable_so_ip_base_len_tso_state_24026 ip_base_len tso_state 0 24026 NULL
157264 +enable_so_btt_map_write_fndecl_24029 btt_map_write fndecl 0 24029 NULL nohasharray
157265 +enable_so_fill_user_desc_fndecl_24029 fill_user_desc fndecl 2 24029 &enable_so_btt_map_write_fndecl_24029
157266 +enable_so_bpp__sisbios_mode_24033 bpp _sisbios_mode 0 24033 NULL
157267 +enable_so_mbo_offs_aim_channel_24035 mbo_offs aim_channel 0 24035 NULL
157268 +enable_so_namelen_cramfs_inode_24036 namelen cramfs_inode 0 24036 NULL
157269 +enable_so_obj_size_request_sock_ops_24037 obj_size request_sock_ops 0 24037 NULL
157270 +enable_so_chunk_mask_geom_24040 chunk_mask geom 0 24040 NULL
157271 +enable_so_start_block_v4l2_edid_24041 start_block v4l2_edid 0 24041 NULL
157272 +enable_so_fwnet_header_cache_fndecl_24043 fwnet_header_cache fndecl 3 24043 NULL
157273 +enable_so_vpdma_create_desc_list_fndecl_24044 vpdma_create_desc_list fndecl 2 24044 NULL
157274 +enable_so_start_switch_path_24046 start switch_path 0 24046 NULL nohasharray
157275 +enable_so_buf_size_conf_writedata_24046 buf_size conf_writedata 0 24046 &enable_so_start_switch_path_24046
157276 +enable_so_erase_shift_mmc_card_24051 erase_shift mmc_card 0 24051 NULL nohasharray
157277 +enable_so_size_pernet_operations_24051 size pernet_operations 0 24051 &enable_so_erase_shift_mmc_card_24051
157278 +enable_so_osst_int_ioctl_fndecl_24052 osst_int_ioctl fndecl 4 24052 NULL nohasharray
157279 +enable_so_bNumEndpoints_usb_interface_descriptor_24052 bNumEndpoints usb_interface_descriptor 0 24052 &enable_so_osst_int_ioctl_fndecl_24052
157280 +enable_so_inode_minix3_dir_entry_24054 inode minix3_dir_entry 0 24054 NULL
157281 +enable_so_shdma_init_fndecl_24059 shdma_init fndecl 3 24059 NULL
157282 +enable_so_ws_row_winsize_24064 ws_row winsize 0 24064 NULL
157283 +enable_so_jbd2_journal_dirty_metadata_fndecl_24067 jbd2_journal_dirty_metadata fndecl 0 24067 NULL
157284 +enable_so_ebx_v86_regs_24072 ebx v86_regs 0 24072 NULL
157285 +enable_so_fnic_get_stats_data_fndecl_24075 fnic_get_stats_data fndecl 0 24075 NULL
157286 +enable_so_tpg_get_default_depth_target_core_fabric_ops_24077 tpg_get_default_depth target_core_fabric_ops 0 24077 NULL
157287 +enable_so_h_sync_strt_wid_aty128_crtc_24079 h_sync_strt_wid aty128_crtc 0 24079 NULL nohasharray
157288 +enable_so_cur_tx_pos_tegra_slink_data_24079 cur_tx_pos tegra_slink_data 0 24079 &enable_so_h_sync_strt_wid_aty128_crtc_24079
157289 +enable_so_last_mark_lbn_os_aux_s_24082 last_mark_lbn os_aux_s 0 24082 NULL
157290 +enable_so_cylinders_ssfdcr_record_24084 cylinders ssfdcr_record 0 24084 NULL
157291 +enable_so_gfs2_meta_new_fndecl_24087 gfs2_meta_new fndecl 2 24087 NULL
157292 +enable_so_pat_pagerange_is_ram_fndecl_24089 pat_pagerange_is_ram fndecl 1-2 24089 NULL
157293 +enable_so_mw_count_ntb_transport_ctx_24094 mw_count ntb_transport_ctx 0 24094 NULL nohasharray
157294 +enable_so_cfs_trace_allocate_string_buffer_fndecl_24094 cfs_trace_allocate_string_buffer fndecl 2 24094 &enable_so_mw_count_ntb_transport_ctx_24094
157295 +enable_so_irq_base_pm860x_chip_24096 irq_base pm860x_chip 0 24096 NULL
157296 +enable_so_sectors_md_rdev_24098 sectors md_rdev 0 24098 NULL
157297 +enable_so_capture_bufsize_vardecl_nm256_c_24100 capture_bufsize vardecl_nm256.c 0 24100 NULL
157298 +enable_so_dcbp_set_pad_bits_fndecl_24101 dcbp_set_pad_bits fndecl 2 24101 NULL
157299 +enable_so_bus_mtu_brcmf_usbdev_24102 bus_mtu brcmf_usbdev 0 24102 NULL
157300 +enable_so_max_ib_mtu_ipoib_dev_priv_24105 max_ib_mtu ipoib_dev_priv 0 24105 NULL nohasharray
157301 +enable_so_read_fifo_fndecl_24105 read_fifo fndecl 3 24105 &enable_so_max_ib_mtu_ipoib_dev_priv_24105
157302 +enable_so_add_td_to_list_fndecl_24113 add_td_to_list fndecl 3 24113 NULL nohasharray
157303 +enable_so_get_rx_frame_len_stmmac_desc_ops_24113 get_rx_frame_len stmmac_desc_ops 0 24113 &enable_so_add_td_to_list_fndecl_24113
157304 +enable_so_packet_multiplier_em28xx_24119 packet_multiplier em28xx 0 24119 NULL nohasharray
157305 +enable_so_rax_vmcb_save_area_24119 rax vmcb_save_area 0 24119 &enable_so_packet_multiplier_em28xx_24119
157306 +enable_so_size_sge_rspq_24120 size sge_rspq 0 24120 NULL
157307 +enable_so_srpt_build_cmd_rsp_fndecl_24126 srpt_build_cmd_rsp fndecl 0 24126 NULL
157308 +enable_so_um_idi_read_fndecl_24129 um_idi_read fndecl 3 24129 NULL
157309 +enable_so_e_cluster_omfs_extent_entry_24130 e_cluster omfs_extent_entry 0 24130 NULL
157310 +enable_so_ieee80211_assoc_success_fndecl_24131 ieee80211_assoc_success fndecl 4 24131 NULL
157311 +enable_so_radix_tree_locate_item_fndecl_24133 radix_tree_locate_item fndecl 0 24133 NULL
157312 +enable_so_num_snaps_ceph_snap_context_24136 num_snaps ceph_snap_context 0 24136 NULL nohasharray
157313 +enable_so_error_state_read_fndecl_24136 error_state_read fndecl 5-6 24136 &enable_so_num_snaps_ceph_snap_context_24136
157314 +enable_so_transp_elsa_hw_24137 transp elsa_hw 0 24137 NULL nohasharray
157315 +enable_so_scif_user_send_fndecl_24137 scif_user_send fndecl 3 24137 &enable_so_transp_elsa_hw_24137
157316 +enable_so_key_update_fndecl_24140 key_update fndecl 3 24140 NULL
157317 +enable_so_segs_wa_xfer_24141 segs wa_xfer 0 24141 NULL nohasharray
157318 +enable_so_sdram_size_solo_dev_24141 sdram_size solo_dev 0 24141 &enable_so_segs_wa_xfer_24141 nohasharray
157319 +enable_so_elem_size_v4l2_ctrl_config_24141 elem_size v4l2_ctrl_config 0 24141 &enable_so_sdram_size_solo_dev_24141
157320 +enable_so_t_task_nolb_se_cmd_24142 t_task_nolb se_cmd 0 24142 NULL
157321 +enable_so_len_event_data_24144 len event_data 0 24144 NULL
157322 +enable_so_fat_fat_length_fat_bios_param_block_24145 fat_fat_length fat_bios_param_block 0 24145 NULL
157323 +enable_so_initial_tsn_sctp_inithdr_host_24149 initial_tsn sctp_inithdr_host 0 24149 NULL
157324 +enable_so_lro_add_page_fndecl_24166 lro_add_page fndecl 4 24166 NULL
157325 +enable_so___alloc_extent_buffer_fndecl_24167 __alloc_extent_buffer fndecl 3-2 24167 NULL nohasharray
157326 +enable_so_ppp_sync_input_fndecl_24167 ppp_sync_input fndecl 4 24167 &enable_so___alloc_extent_buffer_fndecl_24167
157327 +enable_so_vd_tlb_preload_count_gru_vma_data_24168 vd_tlb_preload_count gru_vma_data 0 24168 NULL
157328 +enable_so_vram_start_radeon_mc_24170 vram_start radeon_mc 0 24170 NULL
157329 +enable_so_bpp_drm_mode_create_dumb_24171 bpp drm_mode_create_dumb 0 24171 NULL
157330 +enable_so_drop_count_codel_stats_24173 drop_count codel_stats 0 24173 NULL nohasharray
157331 +enable_so_ttymajor_vardecl_synclink_c_24173 ttymajor vardecl_synclink.c 0 24173 &enable_so_drop_count_codel_stats_24173
157332 +enable_so_top_v4l2_rect_24176 top v4l2_rect 0 24176 NULL
157333 +enable_so_ext4_split_extent_fndecl_24180 ext4_split_extent fndecl 0 24180 NULL
157334 +enable_so_o2net_send_message_vec_fndecl_24188 o2net_send_message_vec fndecl 4 24188 NULL nohasharray
157335 +enable_so_iwl_dbgfs_fh_reg_read_fndecl_24188 iwl_dbgfs_fh_reg_read fndecl 3 24188 &enable_so_o2net_send_message_vec_fndecl_24188
157336 +enable_so_iv_size_crypt_config_24199 iv_size crypt_config 0 24199 NULL
157337 +enable_so_kernel_sendpage_fndecl_24200 kernel_sendpage fndecl 0-4 24200 NULL nohasharray
157338 +enable_so_play_video_cb_fndecl_24200 play_video_cb fndecl 2 24200 &enable_so_kernel_sendpage_fndecl_24200 nohasharray
157339 +enable_so_n_multicast_vfpf_set_q_filters_tlv_24200 n_multicast vfpf_set_q_filters_tlv 0 24200 &enable_so_play_video_cb_fndecl_24200
157340 +enable_so_f2fs_update_extent_tree_range_fndecl_24206 f2fs_update_extent_tree_range fndecl 4-2-3 24206 NULL
157341 +enable_so_yenta_search_res_fndecl_24211 yenta_search_res fndecl 3 24211 NULL nohasharray
157342 +enable_so_bfad_iocmd_flash_get_attr_fndecl_24211 bfad_iocmd_flash_get_attr fndecl 0 24211 &enable_so_yenta_search_res_fndecl_24211
157343 +enable_so_erase_size_falcon_spi_device_24212 erase_size falcon_spi_device 0 24212 NULL
157344 +enable_so_amdgpu_benchmark_move_fndecl_24214 amdgpu_benchmark_move fndecl 2 24214 NULL
157345 +enable_so_size_drm_gem_object_24219 size drm_gem_object 0 24219 NULL
157346 +enable_so_stride_usbatm_channel_24224 stride usbatm_channel 0 24224 NULL
157347 +enable_so_carl9170_cmd_buf_fndecl_24229 carl9170_cmd_buf fndecl 3 24229 NULL
157348 +enable_so_get_ramdisk_size_fndecl_24233 get_ramdisk_size fndecl 0 24233 NULL
157349 +enable_so_udf_process_sequence_fndecl_24235 udf_process_sequence fndecl 2 24235 NULL
157350 +enable_so_num_tx_queues_fm10k_intfc_24236 num_tx_queues fm10k_intfc 0 24236 NULL
157351 +enable_so___nodes_weight_fndecl_24239 __nodes_weight fndecl 0 24239 NULL
157352 +enable_so_common_qdepth_blogic_adapter_24241 common_qdepth blogic_adapter 0 24241 NULL
157353 +enable_so_pcicfg_base_sst_pdata_24243 pcicfg_base sst_pdata 0 24243 NULL
157354 +enable_so_vlan_qos_vlan_ioctl_args_24244 vlan_qos vlan_ioctl_args 0 24244 NULL nohasharray
157355 +enable_so_qi_dqchunklen_xfs_quotainfo_24244 qi_dqchunklen xfs_quotainfo 0 24244 &enable_so_vlan_qos_vlan_ioctl_args_24244
157356 +enable_so_vmbus_sendpacket_mpb_desc_fndecl_24250 vmbus_sendpacket_mpb_desc fndecl 3-5 24250 NULL
157357 +enable_so_inode_ext2_dir_entry_2_24254 inode ext2_dir_entry_2 0 24254 NULL
157358 +enable_so_move_pfn_range_left_fndecl_24256 move_pfn_range_left fndecl 3-4 24256 NULL
157359 +enable_so_ali1535_offset_vardecl_i2c_ali1535_c_24257 ali1535_offset vardecl_i2c-ali1535.c 0 24257 NULL
157360 +enable_so_in_wm8994_fll_config_24259 in wm8994_fll_config 0 24259 NULL
157361 +enable_so_width_vpe_q_data_24262 width vpe_q_data 0 24262 NULL
157362 +enable_so_src_length_btrfs_ioctl_clone_range_args_24266 src_length btrfs_ioctl_clone_range_args 0 24266 NULL
157363 +enable_so_crtc_hblank_end_drm_display_mode_24268 crtc_hblank_end drm_display_mode 0 24268 NULL
157364 +enable_so_totalsize_microcode_header_intel_24274 totalsize microcode_header_intel 0 24274 NULL
157365 +enable_so_blockshift_alauda_card_info_24288 blockshift alauda_card_info 0 24288 NULL
157366 +enable_so_bop_delete_nilfs_bmap_operations_24290 bop_delete nilfs_bmap_operations 0 24290 NULL
157367 +enable_so_mlx4_set_alt_path_fndecl_24292 mlx4_set_alt_path fndecl 6 24292 NULL
157368 +enable_so__do_truncate_fndecl_24296 _do_truncate fndecl 2 24296 NULL
157369 +enable_so_sg_copy_buffer_fndecl_24297 sg_copy_buffer fndecl 0-5-4 24297 NULL
157370 +enable_so_smk_write_cipso2_fndecl_24302 smk_write_cipso2 fndecl 3 24302 NULL
157371 +enable_so_rf_our_slot_rcom_config_24309 rf_our_slot rcom_config 0 24309 NULL
157372 +enable_so_hdlcdev_rx_fndecl_24310 hdlcdev_rx fndecl 3 24310 NULL nohasharray
157373 +enable_so_ocfs2_info_scan_inode_alloc_fndecl_24310 ocfs2_info_scan_inode_alloc fndecl 3 24310 &enable_so_hdlcdev_rx_fndecl_24310 nohasharray
157374 +enable_so_pte_prefetch_gfn_to_pfn_fndecl_24310 pte_prefetch_gfn_to_pfn fndecl 2 24310 &enable_so_ocfs2_info_scan_inode_alloc_fndecl_24310
157375 +enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 udc_get_ppbdu_rxbytes fndecl 0 24313 NULL nohasharray
157376 +enable_so_dm_accept_partial_bio_fndecl_24313 dm_accept_partial_bio fndecl 2 24313 &enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 nohasharray
157377 +enable_so_io_apic_get_redir_entries_fndecl_24313 io_apic_get_redir_entries fndecl 0 24313 &enable_so_dm_accept_partial_bio_fndecl_24313
157378 +enable_so_pch_udc_create_dma_chain_fndecl_24314 pch_udc_create_dma_chain fndecl 3 24314 NULL nohasharray
157379 +enable_so_pstore_file_llseek_fndecl_24314 pstore_file_llseek fndecl 2 24314 &enable_so_pch_udc_create_dma_chain_fndecl_24314
157380 +enable_so_byte_per_page_nand_jedec_params_24315 byte_per_page nand_jedec_params 0 24315 NULL
157381 +enable_so_remove_monitor_info_fndecl_24319 remove_monitor_info fndecl 3 24319 NULL
157382 +enable_so_iova_qib_mregion_24323 iova qib_mregion 0 24323 NULL
157383 +enable_so_xennet_make_txreqs_fndecl_24328 xennet_make_txreqs fndecl 5-6 24328 NULL
157384 +enable_so_zlib_deflate_workspacesize_fndecl_24330 zlib_deflate_workspacesize fndecl 0-2-1 24330 NULL
157385 +enable_so_bfad_iocmd_diag_led_fndecl_24333 bfad_iocmd_diag_led fndecl 0 24333 NULL
157386 +enable_so_num_rports_bfa_iocfc_fwcfg_s_24334 num_rports bfa_iocfc_fwcfg_s 0 24334 NULL
157387 +enable_so_next_offset_ceph_file_info_24335 next_offset ceph_file_info 0 24335 NULL nohasharray
157388 +enable_so_iwl_dbgfs_wowlan_sram_read_fndecl_24335 iwl_dbgfs_wowlan_sram_read fndecl 3 24335 &enable_so_next_offset_ceph_file_info_24335
157389 +enable_so_in_iso_pipe_usbtest_dev_24336 in_iso_pipe usbtest_dev 0 24336 NULL
157390 +enable_so_word2_lpfc_rcqe_24338 word2 lpfc_rcqe 0 24338 NULL
157391 +enable_so_smp_send_cmd_fndecl_24339 smp_send_cmd fndecl 3 24339 NULL
157392 +enable_so_blocks_v4l2_edid_24340 blocks v4l2_edid 0 24340 NULL nohasharray
157393 +enable_so_flags_rtl8187_rx_hdr_24340 flags rtl8187_rx_hdr 0 24340 &enable_so_blocks_v4l2_edid_24340
157394 +enable_so_airo_change_mtu_fndecl_24345 airo_change_mtu fndecl 2 24345 NULL
157395 +enable_so_stride_simplefb_params_24347 stride simplefb_params 0 24347 NULL
157396 +enable_so_ocfs2_validate_meta_ecc_bhs_fndecl_24348 ocfs2_validate_meta_ecc_bhs fndecl 0 24348 NULL
157397 +enable_so_sd_inptrs_gfs2_sbd_24356 sd_inptrs gfs2_sbd 0 24356 NULL
157398 +enable_so_start_isoc_chain_fndecl_24358 start_isoc_chain fndecl 4-2 24358 NULL
157399 +enable_so_isdn_header_cache_fndecl_24361 isdn_header_cache fndecl 3 24361 NULL
157400 +enable_so_ieee_il3945_rate_info_24363 ieee il3945_rate_info 0 24363 NULL
157401 +enable_so_dst_h_yuv_frame_info_24364 dst_h yuv_frame_info 0 24364 NULL
157402 +enable_so_ls_recover_size_lm_lockstruct_24365 ls_recover_size lm_lockstruct 0 24365 NULL
157403 +enable_so_plip_type_trans_fndecl_24367 plip_type_trans fndecl 0 24367 NULL
157404 +enable_so_len_ath6kl_mgmt_buff_24368 len ath6kl_mgmt_buff 0 24368 NULL
157405 +enable_so_atr_len_cm4000_dev_24376 atr_len cm4000_dev 0 24376 NULL
157406 +enable_so_virt_begin_dm_thin_new_mapping_24377 virt_begin dm_thin_new_mapping 0 24377 NULL
157407 +enable_so_sco_sock_setsockopt_fndecl_24379 sco_sock_setsockopt fndecl 5 24379 NULL
157408 +enable_so_wqe_shift_mthca_srq_24381 wqe_shift mthca_srq 0 24381 NULL
157409 +enable_so_read_reg_c_can_priv_24389 read_reg c_can_priv 0 24389 NULL
157410 +enable_so_demote_then_promote_fndecl_24392 demote_then_promote fndecl 5-3-4 24392 NULL
157411 +enable_so_ext4_rename_dir_finish_fndecl_24394 ext4_rename_dir_finish fndecl 3 24394 NULL nohasharray
157412 +enable_so_error_elp_while_nvic_pending_read_fndecl_24394 error_elp_while_nvic_pending_read fndecl 3 24394 &enable_so_ext4_rename_dir_finish_fndecl_24394
157413 +enable_so_tail_sk_buff_24399 tail sk_buff 0 24399 NULL
157414 +enable_so_fw_base_sst_pdata_24402 fw_base sst_pdata 0 24402 NULL
157415 +enable_so_compat_sys_preadv_fndecl_24404 compat_sys_preadv fndecl 3 24404 NULL
157416 +enable_so_max_frame_size_slgt_info_24405 max_frame_size slgt_info 0 24405 NULL
157417 +enable_so_ocfs2_alloc_write_ctxt_fndecl_24406 ocfs2_alloc_write_ctxt fndecl 3 24406 NULL nohasharray
157418 +enable_so_hfs_ext_find_block_fndecl_24406 hfs_ext_find_block fndecl 0-2 24406 &enable_so_ocfs2_alloc_write_ctxt_fndecl_24406
157419 +enable_so_completed_vringh_24407 completed vringh 0 24407 NULL
157420 +enable_so_max_scbs_hw_profile_24409 max_scbs hw_profile 0 24409 NULL
157421 +enable_so_smk_write_load_self2_fndecl_24412 smk_write_load_self2 fndecl 3 24412 NULL
157422 +enable_so_start_soundfont_sample_info_24413 start soundfont_sample_info 0 24413 NULL
157423 +enable_so_mtu_ArcProto_24415 mtu ArcProto 0 24415 NULL
157424 +enable_so_srq_entry_sz_mthca_dev_lim_24422 srq_entry_sz mthca_dev_lim 0 24422 NULL
157425 +enable_so_ni_gpct_device_construct_fndecl_24433 ni_gpct_device_construct fndecl 5 24433 NULL
157426 +enable_so_init_cdrom_command_fndecl_24438 init_cdrom_command fndecl 3 24438 NULL nohasharray
157427 +enable_so_size_tty_buffer_24438 size tty_buffer 0 24438 &enable_so_init_cdrom_command_fndecl_24438
157428 +enable_so_usHBlanking_Time__ATOM_DTD_FORMAT_24440 usHBlanking_Time _ATOM_DTD_FORMAT 0 24440 NULL
157429 +enable_so_fuse_request_alloc_nofs_fndecl_24442 fuse_request_alloc_nofs fndecl 1 24442 NULL
157430 +enable_so_dwTransferLength_wa_xfer_result_24445 dwTransferLength wa_xfer_result 0 24445 NULL
157431 +enable_so_ptlrpc_lprocfs_nrs_seq_write_fndecl_24446 ptlrpc_lprocfs_nrs_seq_write fndecl 3 24446 NULL
157432 +enable_so_batadv_tt_global_del_fndecl_24455 batadv_tt_global_del fndecl 4 24455 NULL
157433 +enable_so_s_last_pseg_nilfs_super_block_24457 s_last_pseg nilfs_super_block 0 24457 NULL
157434 +enable_so_wm8996_set_fll_fndecl_24459 wm8996_set_fll fndecl 4-5 24459 NULL
157435 +enable_so_drbd_bm_find_next_fndecl_24464 drbd_bm_find_next fndecl 0-2 24464 NULL nohasharray
157436 +enable_so_cfs_hash_bkt_size_fndecl_24464 cfs_hash_bkt_size fndecl 0 24464 &enable_so_drbd_bm_find_next_fndecl_24464
157437 +enable_so_remap_to_cache_fndecl_24467 remap_to_cache fndecl 3 24467 NULL
157438 +enable_so_unlink_queued_fndecl_24470 unlink_queued fndecl 4-2-3 24470 NULL
157439 +enable_so_rq_db_page_mthca_create_qp_24471 rq_db_page mthca_create_qp 0 24471 NULL
157440 +enable_so_get_filter_fndecl_24472 get_filter fndecl 0 24472 NULL
157441 +enable_so_qset_remove_urb_fndecl_24474 qset_remove_urb fndecl 4 24474 NULL nohasharray
157442 +enable_so_st_max_sg_segs_vardecl_st_c_24474 st_max_sg_segs vardecl_st.c 0 24474 &enable_so_qset_remove_urb_fndecl_24474
157443 +enable_so_dtim_interval_read_fndecl_24477 dtim_interval_read fndecl 3 24477 NULL
157444 +enable_so_elog_base_vardecl_acpi_extlog_c_24485 elog_base vardecl_acpi_extlog.c 0 24485 NULL
157445 +enable_so_WriteBlock_fndecl_24489 WriteBlock fndecl 3 24489 NULL nohasharray
157446 +enable_so_shim_phy_add_intel_sst_drv_24489 shim_phy_add intel_sst_drv 0 24489 &enable_so_WriteBlock_fndecl_24489
157447 +enable_so_sensor_yres_em28xx_v4l2_24490 sensor_yres em28xx_v4l2 0 24490 NULL
157448 +enable_so_len_ceph_crypto_key_24496 len ceph_crypto_key 0 24496 NULL nohasharray
157449 +enable_so_drv_block_st_partstat_24496 drv_block st_partstat 0 24496 &enable_so_len_ceph_crypto_key_24496
157450 +enable_so_buf_sz_rx_info_24497 buf_sz rx_info 0 24497 NULL
157451 +enable_so_default_priority_binder_proc_24499 default_priority binder_proc 0 24499 NULL
157452 +enable_so_virtio_gpu_get_vbuf_fndecl_24501 virtio_gpu_get_vbuf fndecl 2-3 24501 NULL
157453 +enable_so_sys_sendfile64_fndecl_24508 sys_sendfile64 fndecl 4 24508 NULL
157454 +enable_so_octeon_allocate_device_fndecl_24509 octeon_allocate_device fndecl 2 24509 NULL
157455 +enable_so_max_size_usb_fifo_24517 max_size usb_fifo 0 24517 NULL
157456 +enable_so_vc_y_vc_data_24521 vc_y vc_data 0 24521 NULL
157457 +enable_so_size_firmware_24525 size firmware 0 24525 NULL
157458 +enable_so_rtl8169_try_rx_copy_fndecl_24530 rtl8169_try_rx_copy fndecl 3 24530 NULL nohasharray
157459 +enable_so_max_length__diva_um_idi_data_queue_24530 max_length _diva_um_idi_data_queue 0 24530 &enable_so_rtl8169_try_rx_copy_fndecl_24530
157460 +enable_so_max_sgl_entries_vardecl_mpt3sas_base_c_24531 max_sgl_entries vardecl_mpt3sas_base.c 0 24531 NULL
157461 +enable_so_dvb_video_write_fndecl_24545 dvb_video_write fndecl 3 24545 NULL
157462 +enable_so_width_pcm_format_data_24546 width pcm_format_data 0 24546 NULL
157463 +enable_so_xfs_xattr_set_fndecl_24547 xfs_xattr_set fndecl 4 24547 NULL
157464 +enable_so_btrfs_issue_discard_fndecl_24553 btrfs_issue_discard fndecl 2-3 24553 NULL
157465 +enable_so_size_memblock_region_24555 size memblock_region 0 24555 NULL
157466 +enable_so_log_len_vardecl_verifier_c_24556 log_len vardecl_verifier.c 0 24556 NULL
157467 +enable_so_boot_size_il4965_firmware_pieces_24557 boot_size il4965_firmware_pieces 0 24557 NULL
157468 +enable_so_ocfs2_test_inode_bit_fndecl_24558 ocfs2_test_inode_bit fndecl 2 24558 NULL
157469 +enable_so_residual_count_se_cmd_24562 residual_count se_cmd 0 24562 NULL
157470 +enable_so_blksize_nbd_device_24565 blksize nbd_device 0 24565 NULL
157471 +enable_so_ddp_set_map_fndecl_24572 ddp_set_map fndecl 4 24572 NULL
157472 +enable_so_len_mlxsw_reg_info_24575 len mlxsw_reg_info 0 24575 NULL
157473 +enable_so_blk_extent_info_24576 blk extent_info 0 24576 NULL nohasharray
157474 +enable_so_port_subport_cnt_ipath_portdata_24576 port_subport_cnt ipath_portdata 0 24576 &enable_so_blk_extent_info_24576
157475 +enable_so_size_ceph_mds_caps_24581 size ceph_mds_caps 0 24581 NULL
157476 +enable_so_pkt_size_gspca_dev_24583 pkt_size gspca_dev 0 24583 NULL
157477 +enable_so_joydev_handle_JSIOCSBTNMAP_fndecl_24584 joydev_handle_JSIOCSBTNMAP fndecl 3 24584 NULL
157478 +enable_so_pipeline_hs_tx_stat_fifo_int_read_fndecl_24585 pipeline_hs_tx_stat_fifo_int_read fndecl 3 24585 NULL nohasharray
157479 +enable_so_tomoyo_scan_bprm_fndecl_24585 tomoyo_scan_bprm fndecl 4-2 24585 &enable_so_pipeline_hs_tx_stat_fifo_int_read_fndecl_24585
157480 +enable_so_ebcnt_vardecl_oobtest_c_24588 ebcnt vardecl_oobtest.c 0 24588 NULL
157481 +enable_so_chunk_shift_geom_24589 chunk_shift geom 0 24589 NULL
157482 +enable_so_st_int_write_fndecl_24593 st_int_write fndecl 0 24593 NULL
157483 +enable_so_img_width_zoran_jpg_settings_24594 img_width zoran_jpg_settings 0 24594 NULL
157484 +enable_so_head_TxFifo_24599 head TxFifo 0 24599 NULL nohasharray
157485 +enable_so_ea_size_l_fnode_24599 ea_size_l fnode 0 24599 &enable_so_head_TxFifo_24599
157486 +enable_so_dsp_cmx_send_member_fndecl_24602 dsp_cmx_send_member fndecl 2 24602 NULL
157487 +enable_so_root_level_kvm_mmu_24604 root_level kvm_mmu 0 24604 NULL
157488 +enable_so_ubifs_add_bud_to_log_fndecl_24607 ubifs_add_bud_to_log fndecl 4 24607 NULL
157489 +enable_so_raid_disks_mddev_24609 raid_disks mddev 0 24609 NULL
157490 +enable_so_datalen_ip_tunnel_prl_24610 datalen ip_tunnel_prl 0 24610 NULL
157491 +enable_so_unix_bind_fndecl_24615 unix_bind fndecl 3 24615 NULL
157492 +enable_so_irda_connect_indication_fndecl_24616 irda_connect_indication fndecl 4-5 24616 NULL
157493 +enable_so_dm_read_fndecl_24617 dm_read fndecl 3 24617 NULL
157494 +enable_so_s5k5baf_i2c_read_fndecl_24620 s5k5baf_i2c_read fndecl 0 24620 NULL
157495 +enable_so_ntfs_new_extent_inode_fndecl_24624 ntfs_new_extent_inode fndecl 2 24624 NULL
157496 +enable_so_fs_path_add_fndecl_24627 fs_path_add fndecl 3 24627 NULL
157497 +enable_so_qlcnic_process_rcv_diag_fndecl_24628 qlcnic_process_rcv_diag fndecl 3 24628 NULL
157498 +enable_so_compat_sys_fcntl_fndecl_24629 compat_sys_fcntl fndecl 3 24629 NULL
157499 +enable_so_xsd_read_fndecl_24630 xsd_read fndecl 3 24630 NULL
157500 +enable_so_elan_i2c_read_block_fndecl_24636 elan_i2c_read_block fndecl 4 24636 NULL nohasharray
157501 +enable_so_txq_depth_bnad_24636 txq_depth bnad 0 24636 &enable_so_elan_i2c_read_block_fndecl_24636
157502 +enable_so_len_n_flags_il_rx_pkt_24642 len_n_flags il_rx_pkt 0 24642 NULL
157503 +enable_so_agf_seqno_xfs_agf_24643 agf_seqno xfs_agf 0 24643 NULL
157504 +enable_so_data_mcp_cmd_response_24644 data mcp_cmd_response 0 24644 NULL
157505 +enable_so_array_len_xdr_array2_desc_24652 array_len xdr_array2_desc 0 24652 NULL
157506 +enable_so_cur_sg_ore_per_dev_state_24654 cur_sg ore_per_dev_state 0 24654 NULL
157507 +enable_so_intr_cnt_vxgedev_24656 intr_cnt vxgedev 0 24656 NULL
157508 +enable_so_offset_musb_qh_24658 offset musb_qh 0 24658 NULL
157509 +enable_so_lcd_hsync_dly_atyfb_par_24660 lcd_hsync_dly atyfb_par 0 24660 NULL
157510 +enable_so_out_iso_pipe_usbtest_dev_24664 out_iso_pipe usbtest_dev 0 24664 NULL
157511 +enable_so_spidev_read_fndecl_24668 spidev_read fndecl 3 24668 NULL nohasharray
157512 +enable_so_rds_ib_sysctl_max_recv_wr_vardecl_24668 rds_ib_sysctl_max_recv_wr vardecl 0 24668 &enable_so_spidev_read_fndecl_24668 nohasharray
157513 +enable_so_uinput_str_to_user_fndecl_24668 uinput_str_to_user fndecl 3 24668 &enable_so_rds_ib_sysctl_max_recv_wr_vardecl_24668
157514 +enable_so_rx_pipe_brcmf_usbdev_info_24671 rx_pipe brcmf_usbdev_info 0 24671 NULL
157515 +enable_so_id_platform_device_info_24673 id platform_device_info 0 24673 NULL nohasharray
157516 +enable_so_pinctrl_utils_reserve_map_fndecl_24673 pinctrl_utils_reserve_map fndecl 5 24673 &enable_so_id_platform_device_info_24673
157517 +enable_so_uhci_fixup_short_transfer_fndecl_24676 uhci_fixup_short_transfer fndecl 0 24676 NULL
157518 +enable_so_src_width_tpg_data_24681 src_width tpg_data 0 24681 NULL nohasharray
157519 +enable_so_arizona_calc_fll_fndecl_24681 arizona_calc_fll fndecl 3 24681 &enable_so_src_width_tpg_data_24681
157520 +enable_so_inet_insert_ifa_fndecl_24688 inet_insert_ifa fndecl 0 24688 NULL
157521 +enable_so_nbits_nvmem_cell_24691 nbits nvmem_cell 0 24691 NULL
157522 +enable_so_full_height_mxr_crop_24694 full_height mxr_crop 0 24694 NULL
157523 +enable_so_ocfs2_split_tree_fndecl_24695 ocfs2_split_tree fndecl 5 24695 NULL
157524 +enable_so_transport_generic_map_mem_to_cmd_fndecl_24700 transport_generic_map_mem_to_cmd fndecl 3 24700 NULL
157525 +enable_so_rio_request_inb_dbell_fndecl_24701 rio_request_inb_dbell fndecl 4-3 24701 NULL
157526 +enable_so_size_aper_size_info_16_24703 size aper_size_info_16 0 24703 NULL
157527 +enable_so_block_ack_param_set_host_cmd_ds_11n_addba_rsp_24704 block_ack_param_set host_cmd_ds_11n_addba_rsp 0 24704 NULL
157528 +enable_so_start_qla_flt_region_24707 start qla_flt_region 0 24707 NULL
157529 +enable_so_udp4_gro_complete_fndecl_24711 udp4_gro_complete fndecl 2 24711 NULL
157530 +enable_so_queue_depth_blk_mq_tag_set_24719 queue_depth blk_mq_tag_set 0 24719 NULL
157531 +enable_so_qxl_ttm_tt_create_fndecl_24720 qxl_ttm_tt_create fndecl 2 24720 NULL
157532 +enable_so_bfs_get_block_fndecl_24726 bfs_get_block fndecl 2 24726 NULL
157533 +enable_so_VBP_kyrofb_info_24731 VBP kyrofb_info 0 24731 NULL nohasharray
157534 +enable_so_HiSax_readstatus_fndecl_24731 HiSax_readstatus fndecl 2 24731 &enable_so_VBP_kyrofb_info_24731
157535 +enable_so_next_idtentry_24734 next idtentry 0 24734 NULL
157536 +enable_so_sb_pquotino_xfs_sb_24739 sb_pquotino xfs_sb 0 24739 NULL
157537 +enable_so_shmem_undo_range_fndecl_24742 shmem_undo_range fndecl 2-3 24742 NULL
157538 +enable_so_smk_read_direct_fndecl_24744 smk_read_direct fndecl 3 24744 NULL
157539 +enable_so_set_ltab_fndecl_24745 set_ltab fndecl 3 24745 NULL
157540 +enable_so_ud_putcs_fndecl_24751 ud_putcs fndecl 4-6-5 24751 NULL
157541 +enable_so_data_dotdot_offset_xfs_dir_ops_24758 data_dotdot_offset xfs_dir_ops 0 24758 NULL
157542 +enable_so_n_ao_urbs_usbduxsigma_private_24760 n_ao_urbs usbduxsigma_private 0 24760 NULL
157543 +enable_so_inftl_read_oob_fndecl_24761 inftl_read_oob fndecl 2-3 24761 NULL
157544 +enable_so_pending_deflate_state_24766 pending deflate_state 0 24766 NULL
157545 +enable_so_drbd_bm_total_weight_fndecl_24776 drbd_bm_total_weight fndecl 0 24776 NULL
157546 +enable_so_xlog_state_switch_iclogs_fndecl_24782 xlog_state_switch_iclogs fndecl 3 24782 NULL
157547 +enable_so_gx1_read_conf_reg_fndecl_24794 gx1_read_conf_reg fndecl 0 24794 NULL nohasharray
157548 +enable_so_gnttab_expand_fndecl_24794 gnttab_expand fndecl 1 24794 &enable_so_gx1_read_conf_reg_fndecl_24794
157549 +enable_so_afs_proc_rootcell_write_fndecl_24797 afs_proc_rootcell_write fndecl 3 24797 NULL
157550 +enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801 usHSyncWidth _ATOM_DTD_FORMAT 0 24801 NULL nohasharray
157551 +enable_so_index_vardecl_atiixp_c_24801 index vardecl_atiixp.c 0 24801 &enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801
157552 +enable_so_mprotect_fixup_fndecl_24803 mprotect_fixup fndecl 4-3 24803 NULL nohasharray
157553 +enable_so_write_file_tx99_fndecl_24803 write_file_tx99 fndecl 3 24803 &enable_so_mprotect_fixup_fndecl_24803
157554 +enable_so___read_extent_tree_block_fndecl_24804 __read_extent_tree_block fndecl 4 24804 NULL
157555 +enable_so_num_q_vectors_i40e_vsi_24807 num_q_vectors i40e_vsi 0 24807 NULL
157556 +enable_so_ceph_auth_build_hello_fndecl_24808 ceph_auth_build_hello fndecl 0 24808 NULL
157557 +enable_so_analog_ep_isoc_em28xx_24810 analog_ep_isoc em28xx 0 24810 NULL
157558 +enable_so_ubi_io_write_fndecl_24813 ubi_io_write fndecl 5-4 24813 NULL nohasharray
157559 +enable_so_media_entity_init_fndecl_24813 media_entity_init fndecl 4-2 24813 &enable_so_ubi_io_write_fndecl_24813
157560 +enable_so_cdc_ncm_eth_hlen_fndecl_24814 cdc_ncm_eth_hlen fndecl 0 24814 NULL nohasharray
157561 +enable_so_do_huge_pmd_numa_page_fndecl_24814 do_huge_pmd_numa_page fndecl 3 24814 &enable_so_cdc_ncm_eth_hlen_fndecl_24814
157562 +enable_so_RxLastCount_via_ircc_cb_24815 RxLastCount via_ircc_cb 0 24815 NULL nohasharray
157563 +enable_so_array_resync_offset_dm_raid_superblock_24815 array_resync_offset dm_raid_superblock 0 24815 &enable_so_RxLastCount_via_ircc_cb_24815
157564 +enable_so_HBP_kyrofb_info_24818 HBP kyrofb_info 0 24818 NULL
157565 +enable_so_readahead_cached_dev_24826 readahead cached_dev 0 24826 NULL
157566 +enable_so_fq_codel_zalloc_fndecl_24833 fq_codel_zalloc fndecl 1 24833 NULL
157567 +enable_so_alloc_fddidev_fndecl_24837 alloc_fddidev fndecl 1 24837 NULL
157568 +enable_so_lprocfs_alloc_md_stats_fndecl_24846 lprocfs_alloc_md_stats fndecl 2 24846 NULL
157569 +enable_so_cx88_alsa_dma_init_fndecl_24851 cx88_alsa_dma_init fndecl 2 24851 NULL nohasharray
157570 +enable_so_acpi_ut_create_string_object_fndecl_24851 acpi_ut_create_string_object fndecl 1 24851 &enable_so_cx88_alsa_dma_init_fndecl_24851 nohasharray
157571 +enable_so_wLength_usbdevfs_ctrltransfer_24851 wLength usbdevfs_ctrltransfer 0 24851 &enable_so_acpi_ut_create_string_object_fndecl_24851
157572 +enable_so_pa_len_ext4_prealloc_space_24852 pa_len ext4_prealloc_space 0 24852 NULL
157573 +enable_so_body_len_vardecl_initramfs_c_24853 body_len vardecl_initramfs.c 0 24853 NULL
157574 +enable_so_usbhs_pipe_config_update_fndecl_24856 usbhs_pipe_config_update fndecl 4 24856 NULL
157575 +enable_so_compat_sys_process_vm_readv_fndecl_24861 compat_sys_process_vm_readv fndecl 5-3 24861 NULL nohasharray
157576 +enable_so_bgpio_init_fndecl_24861 bgpio_init fndecl 3 24861 &enable_so_compat_sys_process_vm_readv_fndecl_24861
157577 +enable_so_r592_transfer_fifo_dma_fndecl_24869 r592_transfer_fifo_dma fndecl 0 24869 NULL
157578 +enable_so___videobuf_copy_to_user_fndecl_24876 __videobuf_copy_to_user fndecl 4-0 24876 NULL
157579 +enable_so_x86_cache_alignment_cpuinfo_x86_24878 x86_cache_alignment cpuinfo_x86 0 24878 NULL
157580 +enable_so_rx_buf_per_pkt_vmxnet3_adapter_24879 rx_buf_per_pkt vmxnet3_adapter 0 24879 NULL
157581 +enable_so_zone_count_sm_ftl_24881 zone_count sm_ftl 0 24881 NULL
157582 +enable_so_nvme_cmb_qdepth_fndecl_24896 nvme_cmb_qdepth fndecl 0 24896 NULL
157583 +enable_so_i_truncate_size_ceph_inode_info_24902 i_truncate_size ceph_inode_info 0 24902 NULL
157584 +enable_so_memweight_fndecl_24905 memweight fndecl 0 24905 NULL
157585 +enable_so_io_limit_vardecl_at24_c_24907 io_limit vardecl_at24.c 0 24907 NULL
157586 +enable_so_iscsi_sw_tcp_send_linear_data_prep_fndecl_24908 iscsi_sw_tcp_send_linear_data_prep fndecl 3 24908 NULL
157587 +enable_so_ceph_tcp_recvpage_fndecl_24910 ceph_tcp_recvpage fndecl 0-4 24910 NULL nohasharray
157588 +enable_so_buffer_len_stats_debug_info_24910 buffer_len stats_debug_info 0 24910 &enable_so_ceph_tcp_recvpage_fndecl_24910
157589 +enable_so_len_fb_cmap_24911 len fb_cmap 0 24911 NULL
157590 +enable_so_num_tx_queues_igb_adapter_24917 num_tx_queues igb_adapter 0 24917 NULL
157591 +enable_so_data_len_ib_ucm_info_24922 data_len ib_ucm_info 0 24922 NULL
157592 +enable_so_scif_rb_init_fndecl_24923 scif_rb_init fndecl 5 24923 NULL
157593 +enable_so_tcp_mtu_to_mss_fndecl_24925 tcp_mtu_to_mss fndecl 0-2 24925 NULL
157594 +enable_so_current_area_pstore_24931 current_area pstore 0 24931 NULL
157595 +enable_so_max_sectors_per_io_vardecl_megaraid_c_24934 max_sectors_per_io vardecl_megaraid.c 0 24934 NULL
157596 +enable_so_unxz_fndecl_24936 unxz fndecl 2 24936 NULL
157597 +enable_so_rtl_download_firmware_fndecl_24937 rtl_download_firmware fndecl 3 24937 NULL
157598 +enable_so_key_len_cfg80211_connect_params_24952 key_len cfg80211_connect_params 0 24952 NULL
157599 +enable_so_vmalloc_fndecl_24955 vmalloc fndecl 1 24955 NULL nohasharray
157600 +enable_so_size_video_still_picture_24955 size video_still_picture 0 24955 &enable_so_vmalloc_fndecl_24955
157601 +enable_so_exp_row_interval_ov965x_24963 exp_row_interval ov965x 0 24963 NULL
157602 +enable_so_nilfs_cpfile_clear_snapshot_fndecl_24964 nilfs_cpfile_clear_snapshot fndecl 2 24964 NULL
157603 +enable_so_outmsg_len_hvutil_transport_24966 outmsg_len hvutil_transport 0 24966 NULL
157604 +enable_so_accent_table_size_vardecl_24972 accent_table_size vardecl 0 24972 NULL
157605 +enable_so_pppol2tp_sendmsg_fndecl_24975 pppol2tp_sendmsg fndecl 3 24975 NULL nohasharray
157606 +enable_so_system_dir_blkno_ocfs2_super_24975 system_dir_blkno ocfs2_super 0 24975 &enable_so_pppol2tp_sendmsg_fndecl_24975 nohasharray
157607 +enable_so_max_dma_count_asc_dvc_var_24975 max_dma_count asc_dvc_var 0 24975 &enable_so_system_dir_blkno_ocfs2_super_24975
157608 +enable_so_i_rbytes_ceph_inode_info_24976 i_rbytes ceph_inode_info 0 24976 NULL
157609 +enable_so_exofs_inode_by_name_fndecl_24982 exofs_inode_by_name fndecl 0 24982 NULL
157610 +enable_so_vringh_iov_pull_user_fndecl_24984 vringh_iov_pull_user fndecl 3 24984 NULL
157611 +enable_so___clone_and_map_data_bio_fndecl_24985 __clone_and_map_data_bio fndecl 3 24985 NULL
157612 +enable_so_batadv_tt_global_hash_find_fndecl_24987 batadv_tt_global_hash_find fndecl 3 24987 NULL
157613 +enable_so_dr_suballoc_bit_ocfs2_dx_root_block_24992 dr_suballoc_bit ocfs2_dx_root_block 0 24992 NULL
157614 +enable_so_ql_process_mac_rx_page_fndecl_24996 ql_process_mac_rx_page fndecl 5-4 24996 NULL
157615 +enable_so___rh_find_fndecl_24997 __rh_find fndecl 2 24997 NULL
157616 +enable_so_jfs_extendfs_fndecl_25001 jfs_extendfs fndecl 2-3 25001 NULL
157617 +enable_so_zero_the_pointer_fndecl_25003 zero_the_pointer fndecl 0 25003 NULL
157618 +enable_so_default_density_st_modedef_25006 default_density st_modedef 0 25006 NULL
157619 +enable_so_xfrm_state_mtu_fndecl_25007 xfrm_state_mtu fndecl 0-2 25007 NULL nohasharray
157620 +enable_so_sdp0length__SpiCfgData_25007 sdp0length _SpiCfgData 0 25007 &enable_so_xfrm_state_mtu_fndecl_25007
157621 +enable_so_memory_map_top_down_fndecl_25011 memory_map_top_down fndecl 1-2 25011 NULL
157622 +enable_so_ifx_spi_write_fndecl_25016 ifx_spi_write fndecl 3 25016 NULL
157623 +enable_so_rx_jumbo_pending_ethtool_ringparam_25018 rx_jumbo_pending ethtool_ringparam 0 25018 NULL
157624 +enable_so_bfad_iocmd_fabric_get_lports_fndecl_25022 bfad_iocmd_fabric_get_lports fndecl 0 25022 NULL nohasharray
157625 +enable_so_num_bd_ethoc_25022 num_bd ethoc 0 25022 &enable_so_bfad_iocmd_fabric_get_lports_fndecl_25022
157626 +enable_so__rtl_usb_tx_urb_setup_fndecl_25024 _rtl_usb_tx_urb_setup fndecl 3 25024 NULL
157627 +enable_so_height_fb_fillrect_25027 height fb_fillrect 0 25027 NULL nohasharray
157628 +enable_so_iwl_nvm_read_section_fndecl_25027 iwl_nvm_read_section fndecl 0 25027 &enable_so_height_fb_fillrect_25027
157629 +enable_so_vlan_cq_enet_rq_desc_25028 vlan cq_enet_rq_desc 0 25028 NULL nohasharray
157630 +enable_so_error_nfs_direct_req_25028 error nfs_direct_req 0 25028 &enable_so_vlan_cq_enet_rq_desc_25028
157631 +enable_so_crc_size_cas_25030 crc_size cas 0 25030 NULL nohasharray
157632 +enable_so_size_sym_tblmove_25030 size sym_tblmove 0 25030 &enable_so_crc_size_cas_25030
157633 +enable_so_pagesize_nand_flash_dev_25033 pagesize nand_flash_dev 0 25033 NULL
157634 +enable_so_bnx2fc_process_unsol_compl_fndecl_25035 bnx2fc_process_unsol_compl fndecl 2 25035 NULL
157635 +enable_so_dma_size_netup_unidvb_dev_25039 dma_size netup_unidvb_dev 0 25039 NULL
157636 +enable_so_db_free_next_ocfs2_dir_block_trailer_25041 db_free_next ocfs2_dir_block_trailer 0 25041 NULL
157637 +enable_so_stv0299_readregs_fndecl_25043 stv0299_readregs fndecl 4 25043 NULL
157638 +enable_so_ieee80211_amsdu_to_8023s_fndecl_25050 ieee80211_amsdu_to_8023s fndecl 5 25050 NULL
157639 +enable_so_aio_private_file_fndecl_25052 aio_private_file fndecl 2 25052 NULL nohasharray
157640 +enable_so_acpi_gpio_count_fndecl_25052 acpi_gpio_count fndecl 0 25052 &enable_so_aio_private_file_fndecl_25052
157641 +enable_so_bufsz_drm_radeon_kcmd_buffer_25056 bufsz drm_radeon_kcmd_buffer 0 25056 NULL
157642 +enable_so_size_object_info_25058 size object_info 0 25058 NULL
157643 +enable_so_in_max_chans_snd_card_asihpi_25063 in_max_chans snd_card_asihpi 0 25063 NULL
157644 +enable_so_cuse_file_compat_ioctl_fndecl_25067 cuse_file_compat_ioctl fndecl 2 25067 NULL
157645 +enable_so_ovl_alloc_entry_fndecl_25069 ovl_alloc_entry fndecl 1 25069 NULL
157646 +enable_so_buffer_size_snd_compr_runtime_25072 buffer_size snd_compr_runtime 0 25072 NULL nohasharray
157647 +enable_so_vme_user_write_fndecl_25072 vme_user_write fndecl 3 25072 &enable_so_buffer_size_snd_compr_runtime_25072
157648 +enable_so_rx_fifo_size_sh_msiof_spi_priv_25079 rx_fifo_size sh_msiof_spi_priv 0 25079 NULL nohasharray
157649 +enable_so_batadv_is_my_client_fndecl_25079 batadv_is_my_client fndecl 3 25079 &enable_so_rx_fifo_size_sh_msiof_spi_priv_25079
157650 +enable_so_ocfs2_truncate_rec_fndecl_25080 ocfs2_truncate_rec fndecl 7 25080 NULL
157651 +enable_so_transfer_snd_pcm_plugin_25081 transfer snd_pcm_plugin 0 25081 NULL
157652 +enable_so_length_bus_request_25082 length bus_request 0 25082 NULL
157653 +enable_so_len_ocrdma_sge_25084 len ocrdma_sge 0 25084 NULL nohasharray
157654 +enable_so_id_count_ocfs2_inline_data_25084 id_count ocfs2_inline_data 0 25084 &enable_so_len_ocrdma_sge_25084 nohasharray
157655 +enable_so_k_offset_offset_v1_25084 k_offset offset_v1 0 25084 &enable_so_id_count_ocfs2_inline_data_25084
157656 +enable_so_dwc3_prepare_one_trb_fndecl_25092 dwc3_prepare_one_trb fndecl 4 25092 NULL
157657 +enable_so_pix_clock_aptina_pll_25093 pix_clock aptina_pll 0 25093 NULL nohasharray
157658 +enable_so_hidp_send_intr_message_fndecl_25093 hidp_send_intr_message fndecl 4 25093 &enable_so_pix_clock_aptina_pll_25093
157659 +enable_so_ext4_xattr_block_get_fndecl_25095 ext4_xattr_block_get fndecl 0 25095 NULL
157660 +enable_so_coff_ddb_input_25097 coff ddb_input 0 25097 NULL
157661 +enable_so_namelen_xfs_attr_sf_entry_25099 namelen xfs_attr_sf_entry 0 25099 NULL
157662 +enable_so_mgmt_device_found_fndecl_25100 mgmt_device_found fndecl 11-9 25100 NULL
157663 +enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102 TxDescriptors vardecl_pch_gbe_param.c 0 25102 NULL nohasharray
157664 +enable_so_num_pbls_ocrdma_hw_mr_25102 num_pbls ocrdma_hw_mr 0 25102 &enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102
157665 +enable_so_compat_sys_select_fndecl_25104 compat_sys_select fndecl 1 25104 NULL
157666 +enable_so_vbi_height_au0828_dev_25107 vbi_height au0828_dev 0 25107 NULL
157667 +enable_so_fsm_init_fndecl_25109 fsm_init fndecl 2 25109 NULL
157668 +enable_so_blen_if_spi_packet_25117 blen if_spi_packet 0 25117 NULL
157669 +enable_so_svcrdma_max_requests_vardecl_25118 svcrdma_max_requests vardecl 0 25118 NULL nohasharray
157670 +enable_so_clipt_start_adapter_25118 clipt_start adapter 0 25118 &enable_so_svcrdma_max_requests_vardecl_25118
157671 +enable_so_minimum_acpi_resource_memory24_25122 minimum acpi_resource_memory24 0 25122 NULL
157672 +enable_so_i40e_allocate_virt_mem_d_fndecl_25132 i40e_allocate_virt_mem_d fndecl 3 25132 NULL nohasharray
157673 +enable_so_max_sge_ipath_rq_25132 max_sge ipath_rq 0 25132 &enable_so_i40e_allocate_virt_mem_d_fndecl_25132
157674 +enable_so_snd_interval_step_fndecl_25134 snd_interval_step fndecl 2 25134 NULL
157675 +enable_so_mapping_level_fndecl_25135 mapping_level fndecl 0-2 25135 NULL nohasharray
157676 +enable_so_gb_len_nfc_hci_dev_25135 gb_len nfc_hci_dev 0 25135 &enable_so_mapping_level_fndecl_25135 nohasharray
157677 +enable_so_tmpl_hdr_size_qlcnic_fw_dump_25135 tmpl_hdr_size qlcnic_fw_dump 0 25135 &enable_so_gb_len_nfc_hci_dev_25135
157678 +enable_so_bnx2i_get_cid_num_fndecl_25141 bnx2i_get_cid_num fndecl 0 25141 NULL
157679 +enable_so_ocfs2_init_xattr_bucket_fndecl_25146 ocfs2_init_xattr_bucket fndecl 2 25146 NULL
157680 +enable_so_gnttab_alloc_pages_fndecl_25149 gnttab_alloc_pages fndecl 1 25149 NULL nohasharray
157681 +enable_so_rate_max_snd_pcm_hardware_25149 rate_max snd_pcm_hardware 0 25149 &enable_so_gnttab_alloc_pages_fndecl_25149
157682 +enable_so_SyS_pselect6_fndecl_25153 SyS_pselect6 fndecl 1 25153 NULL
157683 +enable_so_numchips_cfi_private_25154 numchips cfi_private 0 25154 NULL
157684 +enable_so_vram_base_cirrus_mc_25157 vram_base cirrus_mc 0 25157 NULL
157685 +enable_so_create_table_fndecl_25158 create_table fndecl 2 25158 NULL
157686 +enable_so_si476x_core_send_command_fndecl_25160 si476x_core_send_command fndecl 4-6 25160 NULL
157687 +enable_so_max_transfer_size_mvumi_hba_25161 max_transfer_size mvumi_hba 0 25161 NULL
157688 +enable_so_width_emmaprp_q_data_25163 width emmaprp_q_data 0 25163 NULL
157689 +enable_so_tcp_syn_options_fndecl_25174 tcp_syn_options fndecl 0 25174 NULL
157690 +enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176 cipso_v4_map_cat_rng_hton fndecl 0 25176 NULL nohasharray
157691 +enable_so_s_writesize_logfs_super_25176 s_writesize logfs_super 0 25176 &enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176
157692 +enable_so_btrfs_create_repair_bio_fndecl_25181 btrfs_create_repair_bio fndecl 5 25181 NULL
157693 +enable_so_heapstart_sis_video_info_25184 heapstart sis_video_info 0 25184 NULL
157694 +enable_so_i40e_dbg_dump_read_fndecl_25188 i40e_dbg_dump_read fndecl 3 25188 NULL
157695 +enable_so_il_dbgfs_disable_ht40_write_fndecl_25194 il_dbgfs_disable_ht40_write fndecl 3 25194 NULL
157696 +enable_so_coex_tx_win_size_mwifiex_adapter_25195 coex_tx_win_size mwifiex_adapter 0 25195 NULL
157697 +enable_so_run_filter_fndecl_25196 run_filter fndecl 0-3 25196 NULL
157698 +enable_so_iso_in_endp_ttusbir_25197 iso_in_endp ttusbir 0 25197 NULL nohasharray
157699 +enable_so_SyS_fgetxattr_fndecl_25197 SyS_fgetxattr fndecl 4 25197 &enable_so_iso_in_endp_ttusbir_25197
157700 +enable_so_do_shrink_fndecl_25198 do_shrink fndecl 3-2 25198 NULL
157701 +enable_so_backing_dev_len_disk_conf_25199 backing_dev_len disk_conf 0 25199 NULL
157702 +enable_so_size_ioc_sts_mv_dtd_25203 size_ioc_sts mv_dtd 0 25203 NULL
157703 +enable_so_ip_set_elem_len_fndecl_25209 ip_set_elem_len fndecl 0-3 25209 NULL
157704 +enable_so_eth_get_headlen_fndecl_25213 eth_get_headlen fndecl 0-2 25213 NULL
157705 +enable_so_ext4_insert_range_fndecl_25217 ext4_insert_range fndecl 2-3 25217 NULL
157706 +enable_so_ocfs2_xattr_bucket_value_truncate_fndecl_25220 ocfs2_xattr_bucket_value_truncate fndecl 4 25220 NULL
157707 +enable_so_nand_bch_init_fndecl_25227 nand_bch_init fndecl 3-2 25227 NULL
157708 +enable_so_jumpshot_read_data_fndecl_25228 jumpshot_read_data fndecl 4 25228 NULL
157709 +enable_so_spy_number_iw_spy_data_25234 spy_number iw_spy_data 0 25234 NULL
157710 +enable_so_offset_zatm_pool_info_25250 offset zatm_pool_info 0 25250 NULL
157711 +enable_so_of_property_read_string_helper_fndecl_25257 of_property_read_string_helper fndecl 0-5 25257 NULL
157712 +enable_so_ar5523_cmd_fndecl_25261 ar5523_cmd fndecl 4 25261 NULL
157713 +enable_so_start_page_swap_extent_25262 start_page swap_extent 0 25262 NULL nohasharray
157714 +enable_so_first_cluster_group_blkno_ocfs2_super_25262 first_cluster_group_blkno ocfs2_super 0 25262 &enable_so_start_page_swap_extent_25262
157715 +enable_so_stk_allocate_buffers_fndecl_25264 stk_allocate_buffers fndecl 2 25264 NULL
157716 +enable_so_vol_id_ubi_mkvol_req_25267 vol_id ubi_mkvol_req 0 25267 NULL
157717 +enable_so_out_iovs_fuse_ioctl_out_25272 out_iovs fuse_ioctl_out 0 25272 NULL nohasharray
157718 +enable_so_get_fold_mark_fndecl_25272 get_fold_mark fndecl 2 25272 &enable_so_out_iovs_fuse_ioctl_out_25272 nohasharray
157719 +enable_so_register_count_acpi_gpe_block_info_25272 register_count acpi_gpe_block_info 0 25272 &enable_so_get_fold_mark_fndecl_25272
157720 +enable_so_authorizer_len_ceph_msg_connect_reply_25279 authorizer_len ceph_msg_connect_reply 0 25279 NULL
157721 +enable_so_collapse_huge_page_fndecl_25281 collapse_huge_page fndecl 2 25281 NULL
157722 +enable_so_dst_put_ci_fndecl_25284 dst_put_ci fndecl 3 25284 NULL
157723 +enable_so___install_special_mapping_fndecl_25286 __install_special_mapping fndecl 3-2 25286 NULL nohasharray
157724 +enable_so_exynos4_jpeg_get_frame_fmt_fndecl_25286 exynos4_jpeg_get_frame_fmt fndecl 0 25286 &enable_so___install_special_mapping_fndecl_25286
157725 +enable_so_ex_bn_extent_s_25293 ex_bn extent_s 0 25293 NULL
157726 +enable_so_string_length_acpi_resource_source_25296 string_length acpi_resource_source 0 25296 NULL
157727 +enable_so_part_start_hfs_sb_info_25310 part_start hfs_sb_info 0 25310 NULL
157728 +enable_so_vmw_cursor_update_image_fndecl_25311 vmw_cursor_update_image fndecl 4-3 25311 NULL nohasharray
157729 +enable_so_sz_m1_mlx5_wq_cyc_25311 sz_m1 mlx5_wq_cyc 0 25311 &enable_so_vmw_cursor_update_image_fndecl_25311
157730 +enable_so_cropw_val_pvr2_hdw_25312 cropw_val pvr2_hdw 0 25312 NULL
157731 +enable_so_resindex_dma_base_sst_acpi_desc_25313 resindex_dma_base sst_acpi_desc 0 25313 NULL
157732 +enable_so_fw_size_bcm203x_data_25314 fw_size bcm203x_data 0 25314 NULL
157733 +enable_so_num_desc_nx_host_rds_ring_25321 num_desc nx_host_rds_ring 0 25321 NULL
157734 +enable_so_cnt_i40e_hmc_obj_info_25322 cnt i40e_hmc_obj_info 0 25322 NULL
157735 +enable_so_iscsi_tcp_conn_setup_fndecl_25323 iscsi_tcp_conn_setup fndecl 2 25323 NULL
157736 +enable_so_max_outstanding_tx_usbcan_msg_softinfo_25327 max_outstanding_tx usbcan_msg_softinfo 0 25327 NULL
157737 +enable_so_bmv_count_getbmapx_25336 bmv_count getbmapx 0 25336 NULL
157738 +enable_so_width_deinterlace_q_data_25337 width deinterlace_q_data 0 25337 NULL
157739 +enable_so_vc_init_fndecl_25338 vc_init fndecl 3-2 25338 NULL
157740 +enable_so_sysfs_create_groups_fndecl_25339 sysfs_create_groups fndecl 0 25339 NULL
157741 +enable_so_enc_key_size_ecryptfs_key_record_25340 enc_key_size ecryptfs_key_record 0 25340 NULL nohasharray
157742 +enable_so_bytesperline_zoran_v4l_settings_25340 bytesperline zoran_v4l_settings 0 25340 &enable_so_enc_key_size_ecryptfs_key_record_25340 nohasharray
157743 +enable_so_xfs_inobt_lookup_fndecl_25340 xfs_inobt_lookup fndecl 2 25340 &enable_so_bytesperline_zoran_v4l_settings_25340
157744 +enable_so_total_ps_buffered_read_fndecl_25342 total_ps_buffered_read fndecl 3 25342 NULL
157745 +enable_so_svc_meta_len_htc_conn_service_msg_25346 svc_meta_len htc_conn_service_msg 0 25346 NULL nohasharray
157746 +enable_so_init_data_size_il4965_firmware_pieces_25346 init_data_size il4965_firmware_pieces 0 25346 &enable_so_svc_meta_len_htc_conn_service_msg_25346
157747 +enable_so_skb_add_rx_frag_fndecl_25355 skb_add_rx_frag fndecl 2-4-5-6 25355 NULL
157748 +enable_so_spi_rd_buf_fndecl_25357 spi_rd_buf fndecl 4 25357 NULL
157749 +enable_so___mptctl_ioctl_fndecl_25360 __mptctl_ioctl fndecl 2 25360 NULL
157750 +enable_so_bfs_move_block_fndecl_25369 bfs_move_block fndecl 1-2 25369 NULL
157751 +enable_so_encode_string_fndecl_25371 encode_string fndecl 2 25371 NULL
157752 +enable_so_sddr55_bulk_transport_fndecl_25377 sddr55_bulk_transport fndecl 4 25377 NULL nohasharray
157753 +enable_so_mt312_write_fndecl_25377 mt312_write fndecl 4 25377 &enable_so_sddr55_bulk_transport_fndecl_25377
157754 +enable_so_unix_dgram_recvmsg_fndecl_25379 unix_dgram_recvmsg fndecl 3 25379 NULL
157755 +enable_so_bio_copy_kern_fndecl_25382 bio_copy_kern fndecl 3 25382 NULL
157756 +enable_so_grefs_per_grant_frame_vardecl_grant_table_c_25386 grefs_per_grant_frame vardecl_grant-table.c 0 25386 NULL nohasharray
157757 +enable_so_req_buf_size_f_uac1_opts_25386 req_buf_size f_uac1_opts 0 25386 &enable_so_grefs_per_grant_frame_vardecl_grant_table_c_25386
157758 +enable_so_nr_channels_timb_dma_platform_data_25387 nr_channels timb_dma_platform_data 0 25387 NULL
157759 +enable_so_tda18218_wr_regs_fndecl_25388 tda18218_wr_regs fndecl 4 25388 NULL
157760 +enable_so_xlog_write_start_rec_fndecl_25394 xlog_write_start_rec fndecl 0 25394 NULL
157761 +enable_so_atom_size_pcpu_alloc_info_25396 atom_size pcpu_alloc_info 0 25396 NULL
157762 +enable_so___reserved_mem_reserve_reg_fndecl_25400 __reserved_mem_reserve_reg fndecl 1 25400 NULL
157763 +enable_so_brcmf_pcie_read_tcm16_fndecl_25401 brcmf_pcie_read_tcm16 fndecl 0 25401 NULL
157764 +enable_so_memsize_devlog_fw_devlog_cmd_25403 memsize_devlog fw_devlog_cmd 0 25403 NULL
157765 +enable_so_metromem_dma_metronomefb_par_25407 metromem_dma metronomefb_par 0 25407 NULL
157766 +enable_so_memblock_virt_alloc_try_nid_fndecl_25409 memblock_virt_alloc_try_nid fndecl 2-1-3-4 25409 NULL nohasharray
157767 +enable_so_hfs_ext_build_key_fndecl_25409 hfs_ext_build_key fndecl 3 25409 &enable_so_memblock_virt_alloc_try_nid_fndecl_25409 nohasharray
157768 +enable_so_memsize_t4_cq_25409 memsize t4_cq 0 25409 &enable_so_hfs_ext_build_key_fndecl_25409
157769 +enable_so_pci_wch_ch353_setup_fndecl_25411 pci_wch_ch353_setup fndecl 4 25411 NULL nohasharray
157770 +enable_so_snd_pcm_lib_read_transfer_fndecl_25411 snd_pcm_lib_read_transfer fndecl 5 25411 &enable_so_pci_wch_ch353_setup_fndecl_25411
157771 +enable_so_entries_size_ebt_replace_kernel_25413 entries_size ebt_replace_kernel 0 25413 NULL
157772 +enable_so_image_len_gspca_dev_25419 image_len gspca_dev 0 25419 NULL
157773 +enable_so_ib_init_ah_from_wc_fndecl_25420 ib_init_ah_from_wc fndecl 2 25420 NULL
157774 +enable_so_remap_pci_mem_fndecl_25421 remap_pci_mem fndecl 2-1 25421 NULL nohasharray
157775 +enable_so_find_rsb_fndecl_25421 find_rsb fndecl 3 25421 &enable_so_remap_pci_mem_fndecl_25421
157776 +enable_so_power_read_fndecl_25424 power_read fndecl 3 25424 NULL
157777 +enable_so_num_bytes_btrfs_file_extent_item_25435 num_bytes btrfs_file_extent_item 0 25435 NULL
157778 +enable_so_def_rx_buf_size_octeon_config_25436 def_rx_buf_size octeon_config 0 25436 NULL
157779 +enable_so_i2c_write_fndecl_25439 i2c_write fndecl 4 25439 NULL nohasharray
157780 +enable_so_free_pfn_range_fndecl_25439 free_pfn_range fndecl 1-2 25439 &enable_so_i2c_write_fndecl_25439 nohasharray
157781 +enable_so_lpfc_idiag_drbacc_read_fndecl_25439 lpfc_idiag_drbacc_read fndecl 3 25439 &enable_so_free_pfn_range_fndecl_25439
157782 +enable_so_size_xen_netif_tx_request_25440 size xen_netif_tx_request 0 25440 NULL
157783 +enable_so_alloc_vm_area_fndecl_25446 alloc_vm_area fndecl 1 25446 NULL
157784 +enable_so_ds_nvme_lbaf_25461 ds nvme_lbaf 0 25461 NULL nohasharray
157785 +enable_so_smk_read_ptrace_fndecl_25461 smk_read_ptrace fndecl 3 25461 &enable_so_ds_nvme_lbaf_25461
157786 +enable_so_tx_count_slgt_info_25462 tx_count slgt_info 0 25462 NULL
157787 +enable_so_sddr09_send_scsi_command_fndecl_25467 sddr09_send_scsi_command fndecl 3 25467 NULL nohasharray
157788 +enable_so_id_stmpe_platform_data_25467 id stmpe_platform_data 0 25467 &enable_so_sddr09_send_scsi_command_fndecl_25467
157789 +enable_so_frame_alloc_fndecl_25470 frame_alloc fndecl 4 25470 NULL
157790 +enable_so_size_user_regset_25473 size user_regset 0 25473 NULL nohasharray
157791 +enable_so_viafb_vt1636_proc_write_fndecl_25473 viafb_vt1636_proc_write fndecl 3 25473 &enable_so_size_user_regset_25473
157792 +enable_so_playback_periodsize_rme96_25479 playback_periodsize rme96 0 25479 NULL
157793 +enable_so_chunk_sectors_mddev_25484 chunk_sectors mddev 0 25484 NULL
157794 +enable_so_got_frame_fndecl_25487 got_frame fndecl 2 25487 NULL
157795 +enable_so_rx_transfer_len_hif_device_usb_25494 rx_transfer_len hif_device_usb 0 25494 NULL nohasharray
157796 +enable_so_next_cmd_len_sg_fd_25494 next_cmd_len sg_fd 0 25494 &enable_so_rx_transfer_len_hif_device_usb_25494
157797 +enable_so_bfad_iocmd_vhba_query_fndecl_25495 bfad_iocmd_vhba_query fndecl 0 25495 NULL
157798 +enable_so_max_buckets_out_mpt_lan_priv_25498 max_buckets_out mpt_lan_priv 0 25498 NULL
157799 +enable_so_count_seq_file_25501 count seq_file 0 25501 NULL
157800 +enable_so_size_map_info_25510 size map_info 0 25510 NULL
157801 +enable_so_hidp_send_message_fndecl_25511 hidp_send_message fndecl 6 25511 NULL nohasharray
157802 +enable_so_blk_init_tags_fndecl_25511 blk_init_tags fndecl 1 25511 &enable_so_hidp_send_message_fndecl_25511
157803 +enable_so_SYSC_kexec_file_load_fndecl_25513 SYSC_kexec_file_load fndecl 3 25513 NULL
157804 +enable_so_pppoe_recvmsg_fndecl_25514 pppoe_recvmsg fndecl 3 25514 NULL nohasharray
157805 +enable_so_n_sg_list_25514 n sg_list 0 25514 &enable_so_pppoe_recvmsg_fndecl_25514 nohasharray
157806 +enable_so_read_file_spectral_period_fndecl_25514 read_file_spectral_period fndecl 3 25514 &enable_so_n_sg_list_25514
157807 +enable_so_bfad_iocmd_lport_get_attr_fndecl_25521 bfad_iocmd_lport_get_attr fndecl 0 25521 NULL
157808 +enable_so_cuse_file_ioctl_fndecl_25529 cuse_file_ioctl fndecl 2 25529 NULL
157809 +enable_so_smk_write_unconfined_fndecl_25530 smk_write_unconfined fndecl 3 25530 NULL
157810 +enable_so_screen_fb_size_vardecl_hyperv_fb_c_25531 screen_fb_size vardecl_hyperv_fb.c 0 25531 NULL
157811 +enable_so_size_i40e_hmc_obj_info_25536 size i40e_hmc_obj_info 0 25536 NULL
157812 +enable_so_IOCRequestFrameSize_mpt2sas_facts_25540 IOCRequestFrameSize mpt2sas_facts 0 25540 NULL nohasharray
157813 +enable_so_ioh_gpio_setup_fndecl_25540 ioh_gpio_setup fndecl 2 25540 &enable_so_IOCRequestFrameSize_mpt2sas_facts_25540
157814 +enable_so_f_adc_rtl2832_sdr_dev_25544 f_adc rtl2832_sdr_dev 0 25544 NULL
157815 +enable_so_width_efifb_dmi_info_25557 width efifb_dmi_info 0 25557 NULL
157816 +enable_so_iommu_map_mmio_space_fndecl_25569 iommu_map_mmio_space fndecl 2-1 25569 NULL
157817 +enable_so_max_beb_per1024_ubi_attach_req_25573 max_beb_per1024 ubi_attach_req 0 25573 NULL nohasharray
157818 +enable_so_frame_length_sh_eth_rxdesc_25573 frame_length sh_eth_rxdesc 0 25573 &enable_so_max_beb_per1024_ubi_attach_req_25573
157819 +enable_so_num_stations_iwl_priv_25574 num_stations iwl_priv 0 25574 NULL
157820 +enable_so_hpi_outstream_ancillary_read_fndecl_25575 hpi_outstream_ancillary_read fndecl 4 25575 NULL nohasharray
157821 +enable_so_wsm_write_mib_fndecl_25575 wsm_write_mib fndecl 4 25575 &enable_so_hpi_outstream_ancillary_read_fndecl_25575
157822 +enable_so_lpage_size_genwqe_sgl_25578 lpage_size genwqe_sgl 0 25578 NULL
157823 +enable_so_bytes_per_pixel_usbvision_v4l2_format_st_25584 bytes_per_pixel usbvision_v4l2_format_st 0 25584 NULL
157824 +enable_so_cifs_mapchar_fndecl_25586 cifs_mapchar fndecl 0 25586 NULL
157825 +enable_so_test_ofs_cyttsp4_sysinfo_ofs_25587 test_ofs cyttsp4_sysinfo_ofs 0 25587 NULL
157826 +enable_so_isr_tx_exch_complete_read_fndecl_25588 isr_tx_exch_complete_read fndecl 3 25588 NULL
157827 +enable_so_last_page_snd_emu10k1_memblk_25591 last_page snd_emu10k1_memblk 0 25591 NULL
157828 +enable_so_s_partition_len_udf_part_map_25593 s_partition_len udf_part_map 0 25593 NULL nohasharray
157829 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt3sas_facts_25593 MaxReplyDescriptorPostQueueDepth mpt3sas_facts 0 25593 &enable_so_s_partition_len_udf_part_map_25593
157830 +enable_so_isr_hw_pm_mode_changes_read_fndecl_25597 isr_hw_pm_mode_changes_read fndecl 3 25597 NULL nohasharray
157831 +enable_so_dma_tx_requested_read_fndecl_25597 dma_tx_requested_read fndecl 3 25597 &enable_so_isr_hw_pm_mode_changes_read_fndecl_25597
157832 +enable_so_max_cmd_sg_entries_ctlr_info_25601 max_cmd_sg_entries ctlr_info 0 25601 NULL
157833 +enable_so_matroxfb_test_and_set_rounding_fndecl_25619 matroxfb_test_and_set_rounding fndecl 0-2 25619 NULL nohasharray
157834 +enable_so_size_hpi_message_header_25619 size hpi_message_header 0 25619 &enable_so_matroxfb_test_and_set_rounding_fndecl_25619
157835 +enable_so_ceph_osdc_alloc_request_fndecl_25622 ceph_osdc_alloc_request fndecl 3 25622 NULL
157836 +enable_so_nfs4_xattr_get_nfs4_label_fndecl_25623 nfs4_xattr_get_nfs4_label fndecl 4 25623 NULL
157837 +enable_so_pmcraid_major_vardecl_pmcraid_c_25627 pmcraid_major vardecl_pmcraid.c 0 25627 NULL
157838 +enable_so_ocfs2_trim_group_fndecl_25634 ocfs2_trim_group fndecl 0 25634 NULL nohasharray
157839 +enable_so_status_xen_netif_rx_response_25634 status xen_netif_rx_response 0 25634 &enable_so_ocfs2_trim_group_fndecl_25634
157840 +enable_so_dib9000_risc_mem_read_fndecl_25636 dib9000_risc_mem_read fndecl 4 25636 NULL
157841 +enable_so_profile_replace_fndecl_25647 profile_replace fndecl 3 25647 NULL
157842 +enable_so_rpipe_get_by_ep_fndecl_25656 rpipe_get_by_ep fndecl 0 25656 NULL
157843 +enable_so_getxattr_inode_operations_25660 getxattr inode_operations 0 25660 NULL
157844 +enable_so_s5c73m3_spi_write_fndecl_25661 s5c73m3_spi_write fndecl 4-3 25661 NULL nohasharray
157845 +enable_so_btt_write_pg_fndecl_25661 btt_write_pg fndecl 0 25661 &enable_so_s5c73m3_spi_write_fndecl_25661
157846 +enable_so_min_bytes_needed_fndecl_25664 min_bytes_needed fndecl 0 25664 NULL
157847 +enable_so_eec_entry_sz_mthca_dev_lim_25665 eec_entry_sz mthca_dev_lim 0 25665 NULL
157848 +enable_so_m_ag_maxlevels_xfs_mount_25666 m_ag_maxlevels xfs_mount 0 25666 NULL nohasharray
157849 +enable_so_HWPartsNum_qinfo_chip_25666 HWPartsNum qinfo_chip 0 25666 &enable_so_m_ag_maxlevels_xfs_mount_25666
157850 +enable_so_bfad_iocmd_qos_reset_stats_fndecl_25670 bfad_iocmd_qos_reset_stats fndecl 0 25670 NULL nohasharray
157851 +enable_so_nvme_trans_log_info_exceptions_fndecl_25670 nvme_trans_log_info_exceptions fndecl 3 25670 &enable_so_bfad_iocmd_qos_reset_stats_fndecl_25670
157852 +enable_so_pipeline_enc_tx_stat_fifo_int_read_fndecl_25675 pipeline_enc_tx_stat_fifo_int_read fndecl 3 25675 NULL
157853 +enable_so_tsi148_master_set_fndecl_25678 tsi148_master_set fndecl 4 25678 NULL
157854 +enable_so_layout_mdp_superblock_s_25680 layout mdp_superblock_s 0 25680 NULL
157855 +enable_so_max_cmd_per_lun_vardecl_megaraid_c_25693 max_cmd_per_lun vardecl_megaraid.c 0 25693 NULL
157856 +enable_so_persistent_ram_ecc_string_fndecl_25699 persistent_ram_ecc_string fndecl 0 25699 NULL
157857 +enable_so_chv_get_total_gtt_size_fndecl_25701 chv_get_total_gtt_size fndecl 0-1 25701 NULL nohasharray
157858 +enable_so_xh_num_buckets_ocfs2_xattr_header_25701 xh_num_buckets ocfs2_xattr_header 0 25701 &enable_so_chv_get_total_gtt_size_fndecl_25701
157859 +enable_so_sysctl_numa_balancing_scan_size_vardecl_25704 sysctl_numa_balancing_scan_size vardecl 0 25704 NULL nohasharray
157860 +enable_so_ir_post_altera_jtag_25704 ir_post altera_jtag 0 25704 &enable_so_sysctl_numa_balancing_scan_size_vardecl_25704
157861 +enable_so_cmnd_out_ep_vub300_mmc_host_25705 cmnd_out_ep vub300_mmc_host 0 25705 NULL nohasharray
157862 +enable_so_get_bio_block_fndecl_25705 get_bio_block fndecl 0 25705 &enable_so_cmnd_out_ep_vub300_mmc_host_25705
157863 +enable_so_ntfs_file_fsync_fndecl_25706 ntfs_file_fsync fndecl 2-3 25706 NULL
157864 +enable_so_max_cid_space_cnic_local_25708 max_cid_space cnic_local 0 25708 NULL
157865 +enable_so___sector_request_25709 __sector request 0 25709 NULL
157866 +enable_so_vfd_write_fndecl_25710 vfd_write fndecl 3 25710 NULL
157867 +enable_so_buf_count_drm_buf_entry_25716 buf_count drm_buf_entry 0 25716 NULL
157868 +enable_so_svc_max_payload_fndecl_25718 svc_max_payload fndecl 0 25718 NULL
157869 +enable_so_left_margin_fb_var_screeninfo_25722 left_margin fb_var_screeninfo 0 25722 NULL
157870 +enable_so_data_cnt_adv_scsi_req_q_25725 data_cnt adv_scsi_req_q 0 25725 NULL nohasharray
157871 +enable_so_SyS_fsetxattr_fndecl_25725 SyS_fsetxattr fndecl 4 25725 &enable_so_data_cnt_adv_scsi_req_q_25725
157872 +enable_so_nr_scanned_scan_control_25733 nr_scanned scan_control 0 25733 NULL
157873 +enable_so_raid1_resize_fndecl_25735 raid1_resize fndecl 2 25735 NULL
157874 +enable_so_res_cnt_common_sol_cqe_25739 res_cnt common_sol_cqe 0 25739 NULL
157875 +enable_so_ms_read_copyblock_fndecl_25740 ms_read_copyblock fndecl 7 25740 NULL
157876 +enable_so_ext4_da_map_blocks_fndecl_25744 ext4_da_map_blocks fndecl 2 25744 NULL
157877 +enable_so_iov_iter_kvec_fndecl_25747 iov_iter_kvec fndecl 5-4 25747 NULL
157878 +enable_so_tics_vardecl_hfcpci_c_25752 tics vardecl_hfcpci.c 0 25752 NULL
157879 +enable_so_burst_kirkwood_dma_data_25753 burst kirkwood_dma_data 0 25753 NULL
157880 +enable_so_pvr2_i2c_write_fndecl_25754 pvr2_i2c_write fndecl 4 25754 NULL nohasharray
157881 +enable_so___blk_end_request_fndecl_25754 __blk_end_request fndecl 3-2 25754 &enable_so_pvr2_i2c_write_fndecl_25754
157882 +enable_so_buffer_size_command_25757 buffer_size command 0 25757 NULL
157883 +enable_so_rh_urb_enqueue_fndecl_25758 rh_urb_enqueue fndecl 0 25758 NULL
157884 +enable_so_regmap_range_read_file_fndecl_25764 regmap_range_read_file fndecl 3 25764 NULL
157885 +enable_so_max_memblock_type_25766 max memblock_type 0 25766 NULL
157886 +enable_so_src_len_ccp_aes_engine_25770 src_len ccp_aes_engine 0 25770 NULL
157887 +enable_so_event_len_fanotify_event_metadata_25772 event_len fanotify_event_metadata 0 25772 NULL
157888 +enable_so_rx_rx_cmplt_read_fndecl_25778 rx_rx_cmplt_read fndecl 3 25778 NULL
157889 +enable_so_btrfs_inode_extref_name_len_fndecl_25779 btrfs_inode_extref_name_len fndecl 0 25779 NULL
157890 +enable_so_extension_affs_tail_25782 extension affs_tail 0 25782 NULL
157891 +enable_so___remove_pages_fndecl_25788 __remove_pages fndecl 3-2 25788 NULL
157892 +enable_so_qla82xx_pci_mem_write_2M_fndecl_25790 qla82xx_pci_mem_write_2M fndecl 2 25790 NULL
157893 +enable_so_hpet_readl_fndecl_25794 hpet_readl fndecl 0 25794 NULL
157894 +enable_so_num_prealloc_crypto_pages_vardecl_crypto_c_25796 num_prealloc_crypto_pages vardecl_crypto.c 0 25796 NULL
157895 +enable_so_pg_base_nfs_pgio_mirror_25798 pg_base nfs_pgio_mirror 0 25798 NULL
157896 +enable_so_stolen_base_i915_gem_mm_25807 stolen_base i915_gem_mm 0 25807 NULL
157897 +enable_so_sgentry_align_brcmf_sdio_25813 sgentry_align brcmf_sdio 0 25813 NULL nohasharray
157898 +enable_so_lf_depth_gfs2_leaf_25813 lf_depth gfs2_leaf 0 25813 &enable_so_sgentry_align_brcmf_sdio_25813
157899 +enable_so_keys_proc_write_fndecl_25819 keys_proc_write fndecl 3 25819 NULL
157900 +enable_so___kfifo_in_fndecl_25822 __kfifo_in fndecl 3-0 25822 NULL
157901 +enable_so_ext4_kvmalloc_fndecl_25823 ext4_kvmalloc fndecl 1 25823 NULL
157902 +enable_so_bfad_iocmd_tfru_read_fndecl_25830 bfad_iocmd_tfru_read fndecl 0 25830 NULL
157903 +enable_so_pages_per_rd_bio_scrub_ctx_25831 pages_per_rd_bio scrub_ctx 0 25831 NULL
157904 +enable_so_depth_cx25821_fmt_25832 depth cx25821_fmt 0 25832 NULL
157905 +enable_so_cookie_offset_nfsd4_readdir_25834 cookie_offset nfsd4_readdir 0 25834 NULL
157906 +enable_so_mmc_test_area_map_fndecl_25839 mmc_test_area_map fndecl 2-4 25839 NULL
157907 +enable_so_start_cxgb4_range_25845 start cxgb4_range 0 25845 NULL
157908 +enable_so_ric_ies_len_cfg80211_ft_event_params_25853 ric_ies_len cfg80211_ft_event_params 0 25853 NULL
157909 +enable_so_table_size_drm_ati_pcigart_info_25856 table_size drm_ati_pcigart_info 0 25856 NULL
157910 +enable_so_num_sg_lists_vardecl_25860 num_sg_lists vardecl 0 25860 NULL
157911 +enable_so_asize_mypriv_25864 asize mypriv 0 25864 NULL
157912 +enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867 usVBlanking_Time _ATOM_DTD_FORMAT 0 25867 NULL nohasharray
157913 +enable_so_ether_type_efx_filter_spec_25867 ether_type efx_filter_spec 0 25867 &enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867
157914 +enable_so_vlan_dev_change_mtu_fndecl_25871 vlan_dev_change_mtu fndecl 2 25871 NULL
157915 +enable_so_buf_size_regmap_format_25880 buf_size regmap_format 0 25880 NULL
157916 +enable_so_al_stripes_meta_data_on_disk_25883 al_stripes meta_data_on_disk 0 25883 NULL
157917 +enable_so_alloc_tx_struct_fndecl_25886 alloc_tx_struct fndecl 1 25886 NULL
157918 +enable_so_sb_agblocks_xfs_sb_25887 sb_agblocks xfs_sb 0 25887 NULL
157919 +enable_so_width_virtio_gpu_rect_25892 width virtio_gpu_rect 0 25892 NULL
157920 +enable_so_i915_gem_batch_pool_get_fndecl_25893 i915_gem_batch_pool_get fndecl 2 25893 NULL nohasharray
157921 +enable_so_offset_usnic_uiom_reg_25893 offset usnic_uiom_reg 0 25893 &enable_so_i915_gem_batch_pool_get_fndecl_25893 nohasharray
157922 +enable_so_intf_num_smi_info_25893 intf_num smi_info 0 25893 &enable_so_offset_usnic_uiom_reg_25893 nohasharray
157923 +enable_so_gid_tbl_len_ib_port_immutable_25893 gid_tbl_len ib_port_immutable 0 25893 &enable_so_intf_num_smi_info_25893
157924 +enable_so_walk_page_range_fndecl_25894 walk_page_range fndecl 0 25894 NULL
157925 +enable_so_ath6kl_regdump_read_fndecl_25898 ath6kl_regdump_read fndecl 3 25898 NULL
157926 +enable_so_vram_remap_vardecl_uvesafb_c_25907 vram_remap vardecl_uvesafb.c 0 25907 NULL
157927 +enable_so_kvm_vcpu_gfn_to_hva_prot_fndecl_25911 kvm_vcpu_gfn_to_hva_prot fndecl 2 25911 NULL
157928 +enable_so_acpi_get_override_irq_fndecl_25918 acpi_get_override_irq fndecl 1 25918 NULL
157929 +enable_so_mtd_concat_create_fndecl_25923 mtd_concat_create fndecl 2 25923 NULL
157930 +enable_so_get_kcore_size_fndecl_25930 get_kcore_size fndecl 0 25930 NULL
157931 +enable_so_ioat_ring_alloc_order_vardecl_25933 ioat_ring_alloc_order vardecl 0 25933 NULL
157932 +enable_so_ircomm_tty_connect_indication_fndecl_25936 ircomm_tty_connect_indication fndecl 4-5 25936 NULL
157933 +enable_so_debugfs_read_file_bool_fndecl_25937 debugfs_read_file_bool fndecl 3 25937 NULL
157934 +enable_so_smk_write_onlycap_fndecl_25939 smk_write_onlycap fndecl 3 25939 NULL
157935 +enable_so_n_piobufs_efx_ef10_nic_data_25940 n_piobufs efx_ef10_nic_data 0 25940 NULL nohasharray
157936 +enable_so_kvm_hv_set_msr_common_fndecl_25940 kvm_hv_set_msr_common fndecl 3 25940 &enable_so_n_piobufs_efx_ef10_nic_data_25940
157937 +enable_so___xfs_bmbt_get_all_fndecl_25952 __xfs_bmbt_get_all fndecl 2-1 25952 NULL
157938 +enable_so_cyttsp_spi_read_block_data_fndecl_25954 cyttsp_spi_read_block_data fndecl 4 25954 NULL
157939 +enable_so_len_xsd_sockmsg_25963 len xsd_sockmsg 0 25963 NULL
157940 +enable_so_ieee802154_hdr_get_sechdr_fndecl_25965 ieee802154_hdr_get_sechdr fndecl 0 25965 NULL
157941 +enable_so_memblock_remove_range_fndecl_25969 memblock_remove_range fndecl 3-2 25969 NULL
157942 +enable_so__iwl_dbgfs_sram_write_fndecl_25972 _iwl_dbgfs_sram_write fndecl 3 25972 NULL
157943 +enable_so_tx_max_out_mpt_lan_priv_25974 tx_max_out mpt_lan_priv 0 25974 NULL
157944 +enable_so_pci_ni8430_setup_fndecl_25977 pci_ni8430_setup fndecl 4 25977 NULL
157945 +enable_so_ns_blocksize_bits_the_nilfs_25985 ns_blocksize_bits the_nilfs 0 25985 NULL
157946 +enable_so_ieee80211_if_read_dot11MeshGateAnnouncementProtocol_fndecl_25989 ieee80211_if_read_dot11MeshGateAnnouncementProtocol fndecl 3 25989 NULL
157947 +enable_so_split_state_fndecl_25992 split_state fndecl 4 25992 NULL
157948 +enable_so_vga_vram_size_vardecl_vgacon_c_25995 vga_vram_size vardecl_vgacon.c 0 25995 NULL
157949 +enable_so_len_ieee_types_header_26006 len ieee_types_header 0 26006 NULL
157950 +enable_so_udplite_getfrag_fndecl_26012 udplite_getfrag fndecl 4 26012 NULL
157951 +enable_so_core_name_size_vardecl_coredump_c_26013 core_name_size vardecl_coredump.c 0 26013 NULL
157952 +enable_so_ufs_load_cylinder_fndecl_26018 ufs_load_cylinder fndecl 2 26018 NULL nohasharray
157953 +enable_so_add_delayed_ref_head_fndecl_26018 add_delayed_ref_head fndecl 5 26018 &enable_so_ufs_load_cylinder_fndecl_26018
157954 +enable_so_platform_id_cb710_chip_26021 platform_id cb710_chip 0 26021 NULL
157955 +enable_so_touch_max_wacom_features_26029 touch_max wacom_features 0 26029 NULL
157956 +enable_so___gfs2_fallocate_fndecl_26035 __gfs2_fallocate fndecl 4-3 26035 NULL
157957 +enable_so_hex_dump_to_buffer_fndecl_26039 hex_dump_to_buffer fndecl 0-2-4-3 26039 NULL
157958 +enable_so_EraseSize_NFTLrecord_26040 EraseSize NFTLrecord 0 26040 NULL nohasharray
157959 +enable_so_ocfs2_debug_read_fndecl_26040 ocfs2_debug_read fndecl 3 26040 &enable_so_EraseSize_NFTLrecord_26040
157960 +enable_so_ll_recv_fndecl_26047 ll_recv fndecl 3 26047 NULL
157961 +enable_so_md_template_size_netxen_minidump_26050 md_template_size netxen_minidump 0 26050 NULL
157962 +enable_so_port_ipoib_dev_priv_26051 port ipoib_dev_priv 0 26051 NULL
157963 +enable_so_picolcd_debug_eeprom_read_fndecl_26054 picolcd_debug_eeprom_read fndecl 3 26054 NULL
157964 +enable_so_l2cap_send_cmd_fndecl_26055 l2cap_send_cmd fndecl 4 26055 NULL
157965 +enable_so__pcol_init_fndecl_26056 _pcol_init fndecl 2 26056 NULL
157966 +enable_so_physical_for_dev_replace_scrub_copy_nocow_ctx_26059 physical_for_dev_replace scrub_copy_nocow_ctx 0 26059 NULL
157967 +enable_so_nfc_hci_hcp_message_tx_fndecl_26069 nfc_hci_hcp_message_tx fndecl 6 26069 NULL
157968 +enable_so_dataflash_read_user_otp_fndecl_26075 dataflash_read_user_otp fndecl 3-2 26075 NULL nohasharray
157969 +enable_so_ep0_write_fndecl_26075 ep0_write fndecl 3 26075 &enable_so_dataflash_read_user_otp_fndecl_26075
157970 +enable_so_hfsplus_ext_build_key_fndecl_26076 hfsplus_ext_build_key fndecl 3 26076 NULL
157971 +enable_so_fratio_arizona_fll_cfg_26082 fratio arizona_fll_cfg 0 26082 NULL
157972 +enable_so_fdt_first_subnode_fndecl_26084 fdt_first_subnode fndecl 2 26084 NULL nohasharray
157973 +enable_so_remap_to_origin_then_cache_fndecl_26084 remap_to_origin_then_cache fndecl 4 26084 &enable_so_fdt_first_subnode_fndecl_26084
157974 +enable_so_max_flash_timeout_lm3560_platform_data_26088 max_flash_timeout lm3560_platform_data 0 26088 NULL nohasharray
157975 +enable_so_skb_buf_size_vmxnet3_adapter_26088 skb_buf_size vmxnet3_adapter 0 26088 &enable_so_max_flash_timeout_lm3560_platform_data_26088 nohasharray
157976 +enable_so_protocol_sk_buff_26088 protocol sk_buff 0 26088 &enable_so_skb_buf_size_vmxnet3_adapter_26088
157977 +enable_so_vmci_transport_set_max_buffer_size_fndecl_26089 vmci_transport_set_max_buffer_size fndecl 2 26089 NULL
157978 +enable_so_idmap_pipe_downcall_fndecl_26092 idmap_pipe_downcall fndecl 3 26092 NULL
157979 +enable_so_rds_ib_ring_resize_fndecl_26097 rds_ib_ring_resize fndecl 2 26097 NULL
157980 +enable_so_qp_host_alloc_queue_fndecl_26101 qp_host_alloc_queue fndecl 1 26101 NULL
157981 +enable_so_used_bytes_ubi_volume_26113 used_bytes ubi_volume 0 26113 NULL
157982 +enable_so_multi_len_ssif_info_26118 multi_len ssif_info 0 26118 NULL nohasharray
157983 +enable_so_log_store_fndecl_26118 log_store fndecl 8 26118 &enable_so_multi_len_ssif_info_26118
157984 +enable_so_blk_limits_max_hw_sectors_fndecl_26121 blk_limits_max_hw_sectors fndecl 2 26121 NULL
157985 +enable_so_maxflows_sfq_sched_data_26122 maxflows sfq_sched_data 0 26122 NULL
157986 +enable_so_nf_nat_sdp_session_fndecl_26130 nf_nat_sdp_session fndecl 2 26130 NULL
157987 +enable_so_hba_queue_depth_MPT2SAS_ADAPTER_26142 hba_queue_depth MPT2SAS_ADAPTER 0 26142 NULL
157988 +enable_so_ipwireless_ppp_mru_fndecl_26146 ipwireless_ppp_mru fndecl 0 26146 NULL
157989 +enable_so_size_cyttsp4_tch_rec_params_26150 size cyttsp4_tch_rec_params 0 26150 NULL
157990 +enable_so_translate_compat_table_fndecl_26151 translate_compat_table fndecl 6 26151 NULL
157991 +enable_so_hid_register_report_fndecl_26154 hid_register_report fndecl 3 26154 NULL
157992 +enable_so_sense_len_megasas_iocpacket_26161 sense_len megasas_iocpacket 0 26161 NULL
157993 +enable_so_nfs4_xattr_set_nfs4_label_fndecl_26162 nfs4_xattr_set_nfs4_label fndecl 4 26162 NULL
157994 +enable_so_addr_smiapp_reg_limits_26169 addr smiapp_reg_limits 0 26169 NULL
157995 +enable_so_r_bitcnt_tiger_hw_26171 r_bitcnt tiger_hw 0 26171 NULL
157996 +enable_so_src_sz_max_ce_attr_26172 src_sz_max ce_attr 0 26172 NULL
157997 +enable_so_ci_buffer_size_dlm_config_info_26176 ci_buffer_size dlm_config_info 0 26176 NULL
157998 +enable_so_qcaspi_burst_len_vardecl_qca_spi_c_26179 qcaspi_burst_len vardecl_qca_spi.c 0 26179 NULL
157999 +enable_so_zram_major_vardecl_zram_drv_c_26180 zram_major vardecl_zram_drv.c 0 26180 NULL
158000 +enable_so_iscsi_create_endpoint_fndecl_26186 iscsi_create_endpoint fndecl 1 26186 NULL
158001 +enable_so_video_vsize_solo_dev_26188 video_vsize solo_dev 0 26188 NULL
158002 +enable_so_drm_atomic_plane_set_property_fndecl_26190 drm_atomic_plane_set_property fndecl 4 26190 NULL nohasharray
158003 +enable_so_level_guest_walkerEPT_26190 level guest_walkerEPT 0 26190 &enable_so_drm_atomic_plane_set_property_fndecl_26190
158004 +enable_so_len_ext4_encrypted_symlink_data_26199 len ext4_encrypted_symlink_data 0 26199 NULL
158005 +enable_so_ocontext_read_fndecl_26201 ocontext_read fndecl 0 26201 NULL
158006 +enable_so_gue_remcsum_fndecl_26202 gue_remcsum fndecl 4 26202 NULL
158007 +enable_so_et131x_change_mtu_fndecl_26203 et131x_change_mtu fndecl 2 26203 NULL
158008 +enable_so_SYSC_setdomainname_fndecl_26207 SYSC_setdomainname fndecl 2 26207 NULL
158009 +enable_so_data_len_kernel_ipmi_msg_26209 data_len kernel_ipmi_msg 0 26209 NULL nohasharray
158010 +enable_so_bfad_debugfs_write_regrd_fndecl_26209 bfad_debugfs_write_regrd fndecl 3 26209 &enable_so_data_len_kernel_ipmi_msg_26209
158011 +enable_so_s_log_zone_size_isofs_sb_info_26211 s_log_zone_size isofs_sb_info 0 26211 NULL
158012 +enable_so_dev_cnt_usnic_uiom_pd_26213 dev_cnt usnic_uiom_pd 0 26213 NULL
158013 +enable_so_hfsplus_submit_bio_fndecl_26217 hfsplus_submit_bio fndecl 2 26217 NULL nohasharray
158014 +enable_so_sst_wake_up_block_fndecl_26217 sst_wake_up_block fndecl 6 26217 &enable_so_hfsplus_submit_bio_fndecl_26217
158015 +enable_so_ufx_handle_damage_fndecl_26219 ufx_handle_damage fndecl 5-4 26219 NULL nohasharray
158016 +enable_so_dr_post_altera_jtag_26219 dr_post altera_jtag 0 26219 &enable_so_ufx_handle_damage_fndecl_26219
158017 +enable_so_base_snd_cs46xx_region_26223 base snd_cs46xx_region 0 26223 NULL
158018 +enable_so_vlan_tci_ovs_action_push_vlan_26224 vlan_tci ovs_action_push_vlan 0 26224 NULL
158019 +enable_so_blk_queue_init_tags_fndecl_26227 blk_queue_init_tags fndecl 2 26227 NULL
158020 +enable_so_match_length_deflate_state_26231 match_length deflate_state 0 26231 NULL
158021 +enable_so_command_setflickerctrl_fndecl_26233 command_setflickerctrl fndecl 0 26233 NULL
158022 +enable_so_tct_size_idt77252_dev_26240 tct_size idt77252_dev 0 26240 NULL
158023 +enable_so_max_srq_wr_ib_device_attr_26242 max_srq_wr ib_device_attr 0 26242 NULL
158024 +enable_so_ecp_write_data_parport_operations_26253 ecp_write_data parport_operations 0 26253 NULL
158025 +enable_so_can_gather_numa_stats_fndecl_26254 can_gather_numa_stats fndecl 3 26254 NULL
158026 +enable_so_iwl_dbgfs_sram_write_fndecl_26260 iwl_dbgfs_sram_write fndecl 3 26260 NULL
158027 +enable_so_den_snd_ratden_26264 den snd_ratden 0 26264 NULL nohasharray
158028 +enable_so_il_dbgfs_rx_stats_read_fndecl_26264 il_dbgfs_rx_stats_read fndecl 3 26264 &enable_so_den_snd_ratden_26264
158029 +enable_so_check_pages_isolated_fndecl_26267 check_pages_isolated fndecl 0-1-2 26267 NULL
158030 +enable_so_jumbo_size_qset_params_26273 jumbo_size qset_params 0 26273 NULL
158031 +enable_so_fw_realloc_buffer_fndecl_26275 fw_realloc_buffer fndecl 2 26275 NULL
158032 +enable_so_width_stk1160_26279 width stk1160 0 26279 NULL nohasharray
158033 +enable_so_n_hdlc_tty_write_fndecl_26279 n_hdlc_tty_write fndecl 4 26279 &enable_so_width_stk1160_26279
158034 +enable_so_simple_io_fndecl_26280 simple_io fndecl 4 26280 NULL nohasharray
158035 +enable_so_xlate_dev_mem_ptr_fndecl_26280 xlate_dev_mem_ptr fndecl 1 26280 &enable_so_simple_io_fndecl_26280
158036 +enable_so_send_write_fndecl_26285 send_write fndecl 6-0-5 26285 NULL
158037 +enable_so_tx_data_length_hso_serial_26287 tx_data_length hso_serial 0 26287 NULL
158038 +enable_so_wacom_led_putimage_fndecl_26291 wacom_led_putimage fndecl 4 26291 NULL
158039 +enable_so_hub_port_connect_fndecl_26292 hub_port_connect fndecl 2 26292 NULL nohasharray
158040 +enable_so_sc_max_sge_svcxprt_rdma_26292 sc_max_sge svcxprt_rdma 0 26292 &enable_so_hub_port_connect_fndecl_26292
158041 +enable_so_members_count_dlm_space_26293 members_count dlm_space 0 26293 NULL
158042 +enable_so_devm_gen_pool_create_fndecl_26295 devm_gen_pool_create fndecl 2 26295 NULL
158043 +enable_so_xskip_mt9t031_26297 xskip mt9t031 0 26297 NULL
158044 +enable_so_xhci_common_hub_descriptor_fndecl_26304 xhci_common_hub_descriptor fndecl 3 26304 NULL nohasharray
158045 +enable_so_model_data_size_oxygen_model_26304 model_data_size oxygen_model 0 26304 &enable_so_xhci_common_hub_descriptor_fndecl_26304
158046 +enable_so_debugfs_create_file_size_fndecl_26309 debugfs_create_file_size fndecl 6 26309 NULL
158047 +enable_so_used_core_name_26313 used core_name 0 26313 NULL
158048 +enable_so_at25_mem_read_fndecl_26314 at25_mem_read fndecl 3-4 26314 NULL
158049 +enable_so_drxdap_fasi_write_block_fndecl_26315 drxdap_fasi_write_block fndecl 3 26315 NULL
158050 +enable_so_irlan_connect_indication_fndecl_26316 irlan_connect_indication fndecl 5 26316 NULL
158051 +enable_so_mc_mask_radeon_mc_26322 mc_mask radeon_mc 0 26322 NULL
158052 +enable_so_drNmAlBlks_hfs_mdb_26326 drNmAlBlks hfs_mdb 0 26326 NULL
158053 +enable_so_ocfs2_read_refcount_block_fndecl_26330 ocfs2_read_refcount_block fndecl 2 26330 NULL
158054 +enable_so_fcoe_ctlr_send_keep_alive_fndecl_26335 fcoe_ctlr_send_keep_alive fndecl 3 26335 NULL
158055 +enable_so_maxchild_usb_device_26337 maxchild usb_device 0 26337 NULL
158056 +enable_so_alloc_ring_fndecl_26338 alloc_ring fndecl 4-2 26338 NULL
158057 +enable_so_ept_prefetch_gpte_fndecl_26343 ept_prefetch_gpte fndecl 4 26343 NULL nohasharray
158058 +enable_so_broadcast_xmt_max_payload_fwnet_device_26343 broadcast_xmt_max_payload fwnet_device 0 26343 &enable_so_ept_prefetch_gpte_fndecl_26343
158059 +enable_so_vmw_cotable_resize_fndecl_26346 vmw_cotable_resize fndecl 2 26346 NULL
158060 +enable_so_i_sibling_omfs_inode_26348 i_sibling omfs_inode 0 26348 NULL
158061 +enable_so_blkdev_readpages_fndecl_26350 blkdev_readpages fndecl 4 26350 NULL nohasharray
158062 +enable_so_hugetlbfs_pagecache_present_fndecl_26350 hugetlbfs_pagecache_present fndecl 3 26350 &enable_so_blkdev_readpages_fndecl_26350
158063 +enable_so___ocfs2_remove_xattr_range_fndecl_26353 __ocfs2_remove_xattr_range fndecl 5-4-3 26353 NULL
158064 +enable_so_kovaplus_sysfs_read_fndecl_26362 kovaplus_sysfs_read fndecl 6 26362 NULL
158065 +enable_so_ioread16_fndecl_26365 ioread16 fndecl 0 26365 NULL nohasharray
158066 +enable_so_scsi_eh_prep_cmnd_fndecl_26365 scsi_eh_prep_cmnd fndecl 5 26365 &enable_so_ioread16_fndecl_26365
158067 +enable_so_max_mthca_alloc_26367 max mthca_alloc 0 26367 NULL
158068 +enable_so_xpnet_send_fndecl_26368 xpnet_send fndecl 3-4 26368 NULL nohasharray
158069 +enable_so_ts_tsid_gru_thread_state_26368 ts_tsid gru_thread_state 0 26368 &enable_so_xpnet_send_fndecl_26368
158070 +enable_so_buffer_length_TAG_TW_Ioctl_Driver_Command_26369 buffer_length TAG_TW_Ioctl_Driver_Command 0 26369 NULL
158071 +enable_so_ac_last_group_ocfs2_alloc_context_26384 ac_last_group ocfs2_alloc_context 0 26384 NULL
158072 +enable_so_dccp_sendmsg_fndecl_26385 dccp_sendmsg fndecl 3 26385 NULL
158073 +enable_so_mrp_attr_create_fndecl_26390 mrp_attr_create fndecl 3 26390 NULL
158074 +enable_so_dict_size_comp_opts_26391 dict_size comp_opts 0 26391 NULL
158075 +enable_so_maximum_num_physicals_aac_dev_26393 maximum_num_physicals aac_dev 0 26393 NULL
158076 +enable_so_lcd_write_fndecl_26394 lcd_write fndecl 3 26394 NULL nohasharray
158077 +enable_so___krealloc_fndecl_26394 __krealloc fndecl 2 26394 &enable_so_lcd_write_fndecl_26394
158078 +enable_so_transcnt_elsa_hw_26395 transcnt elsa_hw 0 26395 NULL
158079 +enable_so_get_user_cpu_mask_fndecl_26398 get_user_cpu_mask fndecl 2 26398 NULL
158080 +enable_so_convert_ctx_access_bpf_verifier_ops_26399 convert_ctx_access bpf_verifier_ops 0 26399 NULL
158081 +enable_so_ea_init_fndecl_26400 ea_init fndecl 5 26400 NULL
158082 +enable_so_gbuffers_vardecl_meye_c_26402 gbuffers vardecl_meye.c 0 26402 NULL
158083 +enable_so_xhci_giveback_urb_in_irq_fndecl_26403 xhci_giveback_urb_in_irq fndecl 3 26403 NULL nohasharray
158084 +enable_so_bad_peb_limit_ubi_device_26403 bad_peb_limit ubi_device 0 26403 &enable_so_xhci_giveback_urb_in_irq_fndecl_26403
158085 +enable_so_netlbl_catmap_walk_fndecl_26405 netlbl_catmap_walk fndecl 0-2 26405 NULL
158086 +enable_so_height_drm_mode_create_dumb_26406 height drm_mode_create_dumb 0 26406 NULL
158087 +enable_so_residualByteCnt_status_entry_26414 residualByteCnt status_entry 0 26414 NULL
158088 +enable_so_krealloc_fndecl_26415 krealloc fndecl 2 26415 NULL
158089 +enable_so_crtc_htotal_drm_display_mode_26418 crtc_htotal drm_display_mode 0 26418 NULL
158090 +enable_so_ext_clk_smiapp_platform_data_26420 ext_clk smiapp_platform_data 0 26420 NULL
158091 +enable_so_mmio_size_lpss_private_data_26423 mmio_size lpss_private_data 0 26423 NULL
158092 +enable_so_mmc_spi_readblock_fndecl_26424 mmc_spi_readblock fndecl 0 26424 NULL
158093 +enable_so_mod_start_extent_map_26431 mod_start extent_map 0 26431 NULL nohasharray
158094 +enable_so_acpi_os_allocate_fndecl_26431 acpi_os_allocate fndecl 1 26431 &enable_so_mod_start_extent_map_26431
158095 +enable_so_wtmax_nfs_fsinfo_26434 wtmax nfs_fsinfo 0 26434 NULL
158096 +enable_so___adjust_resource_fndecl_26436 __adjust_resource fndecl 3-2 26436 NULL
158097 +enable_so_packets_snd_urb_ctx_26437 packets snd_urb_ctx 0 26437 NULL
158098 +enable_so_map_capacity_cw1200_queue_stats_26439 map_capacity cw1200_queue_stats 0 26439 NULL
158099 +enable_so_start_cif_cam_fndecl_26442 start_cif_cam fndecl 0 26442 NULL
158100 +enable_so_compute_pipe_count_kgd2kfd_shared_resources_26445 compute_pipe_count kgd2kfd_shared_resources 0 26445 NULL
158101 +enable_so_sierra_net_change_mtu_fndecl_26446 sierra_net_change_mtu fndecl 2 26446 NULL nohasharray
158102 +enable_so_max_req_size_mmc_host_26446 max_req_size mmc_host 0 26446 &enable_so_sierra_net_change_mtu_fndecl_26446 nohasharray
158103 +enable_so_ri_data0_gfs2_rindex_26446 ri_data0 gfs2_rindex 0 26446 &enable_so_max_req_size_mmc_host_26446
158104 +enable_so_size_aper_size_info_fixed_26447 size aper_size_info_fixed 0 26447 NULL
158105 +enable_so_width_cobalt_stream_26451 width cobalt_stream 0 26451 NULL
158106 +enable_so___xfs_end_io_direct_write_fndecl_26454 __xfs_end_io_direct_write fndecl 3-4 26454 NULL
158107 +enable_so_op_count_rm_rdma_op_26455 op_count rm_rdma_op 0 26455 NULL
158108 +enable_so_qp_memcpy_to_queue_iov_fndecl_26456 qp_memcpy_to_queue_iov fndecl 5-2 26456 NULL
158109 +enable_so_global_irq_base_acpi_madt_io_apic_26467 global_irq_base acpi_madt_io_apic 0 26467 NULL
158110 +enable_so_usbat_bulk_read_fndecl_26469 usbat_bulk_read fndecl 3-4 26469 NULL
158111 +enable_so_tpg_reset_source_fndecl_26472 tpg_reset_source fndecl 2-3 26472 NULL
158112 +enable_so_pbufsctxt_qib_devdata_26473 pbufsctxt qib_devdata 0 26473 NULL
158113 +enable_so_iscsi_conn_context_id_iscsi_kcqe_26475 iscsi_conn_context_id iscsi_kcqe 0 26475 NULL
158114 +enable_so_nr_kioctx_table_26477 nr kioctx_table 0 26477 NULL
158115 +enable_so_btt_read_pg_fndecl_26478 btt_read_pg fndecl 0 26478 NULL
158116 +enable_so_len_seq_buf_26481 len seq_buf 0 26481 NULL
158117 +enable_so_page_cache_next_hole_fndecl_26482 page_cache_next_hole fndecl 0-2 26482 NULL
158118 +enable_so_max_osd_ceph_osdmap_26483 max_osd ceph_osdmap 0 26483 NULL
158119 +enable_so_queue_cnt_fndecl_26484 queue_cnt fndecl 0 26484 NULL
158120 +enable_so_count_xfs_dir2_sf_hdr_26486 count xfs_dir2_sf_hdr 0 26486 NULL
158121 +enable_so_setup_max_cpus_vardecl_26488 setup_max_cpus vardecl 0 26488 NULL
158122 +enable_so_pa_lstart_ext4_prealloc_space_26493 pa_lstart ext4_prealloc_space 0 26493 NULL
158123 +enable_so_videobuf_read_stream_fndecl_26495 videobuf_read_stream fndecl 3 26495 NULL
158124 +enable_so_ndr_start_nd_region_26496 ndr_start nd_region 0 26496 NULL
158125 +enable_so_remap_and_issue_overwrite_fndecl_26499 remap_and_issue_overwrite fndecl 3 26499 NULL
158126 +enable_so_setkey_fndecl_26520 setkey fndecl 3 26520 NULL nohasharray
158127 +enable_so_num_tc_mlx5e_params_26520 num_tc mlx5e_params 0 26520 &enable_so_setkey_fndecl_26520
158128 +enable_so_t4_max_cq_depth_c4iw_hw_queue_26526 t4_max_cq_depth c4iw_hw_queue 0 26526 NULL
158129 +enable_so_devm_memremap_fndecl_26527 devm_memremap fndecl 3-2 26527 NULL
158130 +enable_so_vmap_fndecl_26530 vmap fndecl 2 26530 NULL
158131 +enable_so_header_assemble_fndecl_26534 header_assemble fndecl 4 26534 NULL nohasharray
158132 +enable_so_sync_buf_offs_pvr2_ioread_26534 sync_buf_offs pvr2_ioread 0 26534 &enable_so_header_assemble_fndecl_26534
158133 +enable_so_myri10ge_max_slices_vardecl_myri10ge_c_26536 myri10ge_max_slices vardecl_myri10ge.c 0 26536 NULL
158134 +enable_so_npages_kvm_memory_slot_26541 npages kvm_memory_slot 0 26541 NULL
158135 +enable_so_nfsd_drc_max_mem_vardecl_26544 nfsd_drc_max_mem vardecl 0 26544 NULL nohasharray
158136 +enable_so_sctp_setsockopt_default_sndinfo_fndecl_26544 sctp_setsockopt_default_sndinfo fndecl 3 26544 &enable_so_nfsd_drc_max_mem_vardecl_26544
158137 +enable_so_onenand_write_fndecl_26546 onenand_write fndecl 2 26546 NULL
158138 +enable_so_pci_irq_pcmcia_socket_26558 pci_irq pcmcia_socket 0 26558 NULL
158139 +enable_so_maxdepth_sfq_sched_data_26560 maxdepth sfq_sched_data 0 26560 NULL
158140 +enable_so_cld_pipe_downcall_fndecl_26561 cld_pipe_downcall fndecl 3 26561 NULL
158141 +enable_so_fifo_blocks_vxge_hw_fifo_config_26565 fifo_blocks vxge_hw_fifo_config 0 26565 NULL
158142 +enable_so_ieee80211_if_read_uapsd_max_sp_len_fndecl_26568 ieee80211_if_read_uapsd_max_sp_len fndecl 3 26568 NULL
158143 +enable_so_br_change_mtu_fndecl_26571 br_change_mtu fndecl 2 26571 NULL
158144 +enable_so_wMaxSegmentSize_usb_cdc_mbim_desc_26572 wMaxSegmentSize usb_cdc_mbim_desc 0 26572 NULL
158145 +enable_so_nfs4_write_cached_acl_fndecl_26573 nfs4_write_cached_acl fndecl 4 26573 NULL
158146 +enable_so_sd_log_flush_head_gfs2_sbd_26577 sd_log_flush_head gfs2_sbd 0 26577 NULL
158147 +enable_so_smbios_entry_point_size_vardecl_dmi_scan_c_26579 smbios_entry_point_size vardecl_dmi_scan.c 0 26579 NULL nohasharray
158148 +enable_so_read_file_node_aggr_fndecl_26579 read_file_node_aggr fndecl 3 26579 &enable_so_smbios_entry_point_size_vardecl_dmi_scan_c_26579
158149 +enable_so_read_tree_block_fndecl_26587 read_tree_block fndecl 2 26587 NULL
158150 +enable_so_early_init_dt_scan_chosen_fndecl_26588 early_init_dt_scan_chosen fndecl 1 26588 NULL
158151 +enable_so_bytes_per_word_tegra_slink_data_26590 bytes_per_word tegra_slink_data 0 26590 NULL
158152 +enable_so_nvme_trans_completion_fndecl_26597 nvme_trans_completion fndecl 0 26597 NULL
158153 +enable_so_tx_desc_count_xgbe_prv_data_26603 tx_desc_count xgbe_prv_data 0 26603 NULL
158154 +enable_so_UMAsize_sis_video_info_26611 UMAsize sis_video_info 0 26611 NULL
158155 +enable_so_width_drm_vmw_size_26615 width drm_vmw_size 0 26615 NULL
158156 +enable_so_control_blocks_gru_create_context_req_26616 control_blocks gru_create_context_req 0 26616 NULL
158157 +enable_so_data_out_ep_vub300_mmc_host_26618 data_out_ep vub300_mmc_host 0 26618 NULL
158158 +enable_so_airspy_convert_stream_fndecl_26619 airspy_convert_stream fndecl 0-4 26619 NULL
158159 +enable_so_usb_rh_urb_dequeue_fndecl_26620 usb_rh_urb_dequeue fndecl 3 26620 NULL
158160 +enable_so_smscore_load_firmware_family2_fndecl_26621 smscore_load_firmware_family2 fndecl 3 26621 NULL
158161 +enable_so_hub_port_connect_change_fndecl_26625 hub_port_connect_change fndecl 2 26625 NULL
158162 +enable_so_xfs_qm_init_dquot_blk_fndecl_26626 xfs_qm_init_dquot_blk fndecl 3 26626 NULL nohasharray
158163 +enable_so_data_len_ipmi_msg_26626 data_len ipmi_msg 0 26626 &enable_so_xfs_qm_init_dquot_blk_fndecl_26626
158164 +enable_so_l2_fhdr_pkt_len_l2_fhdr_26630 l2_fhdr_pkt_len l2_fhdr 0 26630 NULL nohasharray
158165 +enable_so_cache_write_fndecl_26630 cache_write fndecl 3 26630 &enable_so_l2_fhdr_pkt_len_l2_fhdr_26630
158166 +enable_so_facs_acpi_table_fadt_26632 facs acpi_table_fadt 0 26632 NULL
158167 +enable_so_mpt_lan_receive_post_turbo_fndecl_26635 mpt_lan_receive_post_turbo fndecl 2 26635 NULL
158168 +enable_so_qxl_draw_dirty_fb_fndecl_26636 qxl_draw_dirty_fb fndecl 7 26636 NULL
158169 +enable_so_i40e_change_mtu_fndecl_26637 i40e_change_mtu fndecl 2 26637 NULL
158170 +enable_so_aac_sa_ioremap_fndecl_26639 aac_sa_ioremap fndecl 2 26639 NULL nohasharray
158171 +enable_so_h_length_dlm_header_26639 h_length dlm_header 0 26639 &enable_so_aac_sa_ioremap_fndecl_26639 nohasharray
158172 +enable_so_irias_new_octseq_value_fndecl_26639 irias_new_octseq_value fndecl 2 26639 &enable_so_h_length_dlm_header_26639
158173 +enable_so_fh_size_knfsd_fh_26641 fh_size knfsd_fh 0 26641 NULL
158174 +enable_so_sys_madvise_fndecl_26642 sys_madvise fndecl 2-1 26642 NULL nohasharray
158175 +enable_so_size_drm_global_reference_26642 size drm_global_reference 0 26642 &enable_so_sys_madvise_fndecl_26642
158176 +enable_so_platform_device_alloc_fndecl_26645 platform_device_alloc fndecl 2 26645 NULL nohasharray
158177 +enable_so_read_file_antenna_fndecl_26645 read_file_antenna fndecl 3 26645 &enable_so_platform_device_alloc_fndecl_26645
158178 +enable_so_n_namesz_elf64_note_26646 n_namesz elf64_note 0 26646 NULL
158179 +enable_so_max_wqes_mlx4_caps_26647 max_wqes mlx4_caps 0 26647 NULL
158180 +enable_so_spi_populate_width_msg_fndecl_26651 spi_populate_width_msg fndecl 0 26651 NULL
158181 +enable_so_front_len_ceph_msgpool_26653 front_len ceph_msgpool 0 26653 NULL
158182 +enable_so_pmcraid_get_minor_fndecl_26656 pmcraid_get_minor fndecl 0 26656 NULL
158183 +enable_so_nr_recvmsg_fndecl_26658 nr_recvmsg fndecl 3 26658 NULL
158184 +enable_so_jbd2_journal_begin_ordered_truncate_fndecl_26661 jbd2_journal_begin_ordered_truncate fndecl 3 26661 NULL
158185 +enable_so_iio_device_add_event_sysfs_fndecl_26664 iio_device_add_event_sysfs fndecl 0 26664 NULL
158186 +enable_so_hdlc_change_mtu_fndecl_26672 hdlc_change_mtu fndecl 2 26672 NULL
158187 +enable_so_oobsize_mtd_info_26683 oobsize mtd_info 0 26683 NULL
158188 +enable_so_swap_cgroup_swapon_fndecl_26685 swap_cgroup_swapon fndecl 2 26685 NULL
158189 +enable_so_omap1_spi100k_txrx_pio_fndecl_26692 omap1_spi100k_txrx_pio fndecl 0 26692 NULL nohasharray
158190 +enable_so_blk_msg_write_fndecl_26692 blk_msg_write fndecl 3 26692 &enable_so_omap1_spi100k_txrx_pio_fndecl_26692
158191 +enable_so_rx_buff_len_amd8111e_priv_26693 rx_buff_len amd8111e_priv 0 26693 NULL
158192 +enable_so_raw_request_hid_ll_driver_26699 raw_request hid_ll_driver 0 26699 NULL
158193 +enable_so_packet_snd_fndecl_26705 packet_snd fndecl 3 26705 NULL
158194 +enable_so_musb_ep_program_fndecl_26707 musb_ep_program fndecl 7 26707 NULL
158195 +enable_so_x509_extract_name_segment_fndecl_26716 x509_extract_name_segment fndecl 5 26716 NULL
158196 +enable_so_i915_gem_obj_ggtt_offset_view_fndecl_26723 i915_gem_obj_ggtt_offset_view fndecl 0 26723 NULL
158197 +enable_so_wil_read_back_fndecl_26724 wil_read_back fndecl 3 26724 NULL
158198 +enable_so_max_transfer_size_rndis_init_c_26725 max_transfer_size rndis_init_c 0 26725 NULL
158199 +enable_so_fuse_copy_pages_fndecl_26731 fuse_copy_pages fndecl 2 26731 NULL
158200 +enable_so_ocfs2_xattr_set_handle_fndecl_26732 ocfs2_xattr_set_handle fndecl 7 26732 NULL
158201 +enable_so_cache_downcall_fndecl_26737 cache_downcall fndecl 3 26737 NULL
158202 +enable_so_minor_uart_driver_26739 minor uart_driver 0 26739 NULL
158203 +enable_so_add_index_fndecl_26744 add_index fndecl 0 26744 NULL nohasharray
158204 +enable_so_xfs_filestream_lookup_ag_fndecl_26744 xfs_filestream_lookup_ag fndecl 0 26744 &enable_so_add_index_fndecl_26744
158205 +enable_so_block_size_befs_sb_info_26751 block_size befs_sb_info 0 26751 NULL
158206 +enable_so_len_osd_sg_entry_26755 len osd_sg_entry 0 26755 NULL
158207 +enable_so_number_of_pins_gpio_rcar_config_26759 number_of_pins gpio_rcar_config 0 26759 NULL
158208 +enable_so_raw_serial_size_pkcs7_parse_context_26761 raw_serial_size pkcs7_parse_context 0 26761 NULL
158209 +enable_so_flash_max_current_as3645a_platform_data_26764 flash_max_current as3645a_platform_data 0 26764 NULL
158210 +enable_so_num_phys_expander_device_26765 num_phys expander_device 0 26765 NULL
158211 +enable_so_nAcks_rxrpc_ackpacket_26767 nAcks rxrpc_ackpacket 0 26767 NULL
158212 +enable_so_tipc_send_stream_fndecl_26771 tipc_send_stream fndecl 3 26771 NULL
158213 +enable_so_hb_size_hashbin_t_26779 hb_size hashbin_t 0 26779 NULL nohasharray
158214 +enable_so_fw_iso_buffer_alloc_fndecl_26779 fw_iso_buffer_alloc fndecl 2 26779 &enable_so_hb_size_hashbin_t_26779
158215 +enable_so___perf_event_read_size_fndecl_26786 __perf_event_read_size fndecl 2 26786 NULL
158216 +enable_so_audit_unpack_string_fndecl_26791 audit_unpack_string fndecl 3 26791 NULL
158217 +enable_so_ocfs2_cache_block_dealloc_fndecl_26800 ocfs2_cache_block_dealloc fndecl 6-5-4 26800 NULL
158218 +enable_so_width_v4l2_rect_26802 width v4l2_rect 0 26802 NULL nohasharray
158219 +enable_so_sge_cnt_rdma_iu_26802 sge_cnt rdma_iu 0 26802 &enable_so_width_v4l2_rect_26802
158220 +enable_so_fb_sys_read_fndecl_26817 fb_sys_read fndecl 3 26817 NULL
158221 +enable_so_ramdisk_image_setup_header_26821 ramdisk_image setup_header 0 26821 NULL nohasharray
158222 +enable_so_do_read_fault_fndecl_26821 do_read_fault fndecl 3-5 26821 &enable_so_ramdisk_image_setup_header_26821
158223 +enable_so_qlcnic_max_rings_fndecl_26823 qlcnic_max_rings fndecl 0-2 26823 NULL
158224 +enable_so_l2tp_ip_recvmsg_fndecl_26826 l2tp_ip_recvmsg fndecl 3 26826 NULL
158225 +enable_so_ath6kl_mgmt_powersave_ap_fndecl_26828 ath6kl_mgmt_powersave_ap fndecl 6 26828 NULL
158226 +enable_so_bEndpointAddress_usb_endpoint_descriptor_26829 bEndpointAddress usb_endpoint_descriptor 0 26829 NULL
158227 +enable_so_vc_screenbuf_size_vc_data_26832 vc_screenbuf_size vc_data 0 26832 NULL nohasharray
158228 +enable_so_ath6kl_wmi_add_del_mcast_filter_cmd_fndecl_26832 ath6kl_wmi_add_del_mcast_filter_cmd fndecl 2 26832 &enable_so_vc_screenbuf_size_vc_data_26832
158229 +enable_so_edid_size_ufx_data_26833 edid_size ufx_data 0 26833 NULL
158230 +enable_so_header_sectors_per_block_partition_26836 header_sectors_per_block partition 0 26836 NULL
158231 +enable_so_at24_write_fndecl_26838 at24_write fndecl 4-3 26838 NULL
158232 +enable_so_size_sram_reserve_26839 size sram_reserve 0 26839 NULL
158233 +enable_so_ipath_sdma_descq_cnt_ipath_devdata_26843 ipath_sdma_descq_cnt ipath_devdata 0 26843 NULL
158234 +enable_so_offset_resource_entry_26851 offset resource_entry 0 26851 NULL
158235 +enable_so_ethertype_hippi_snap_hdr_26852 ethertype hippi_snap_hdr 0 26852 NULL
158236 +enable_so_hsi_register_board_info_fndecl_26863 hsi_register_board_info fndecl 2 26863 NULL
158237 +enable_so_osd_req_add_get_attr_page_fndecl_26866 osd_req_add_get_attr_page fndecl 4 26866 NULL
158238 +enable_so_dlc_usb_8dev_rx_msg_26873 dlc usb_8dev_rx_msg 0 26873 NULL nohasharray
158239 +enable_so_pipe_in_lan78xx_net_26873 pipe_in lan78xx_net 0 26873 &enable_so_dlc_usb_8dev_rx_msg_26873
158240 +enable_so_pci_address_to_pio_fndecl_26876 pci_address_to_pio fndecl 0-1 26876 NULL
158241 +enable_so_mwifiex_sdio_card_to_host_mp_aggr_fndecl_26877 mwifiex_sdio_card_to_host_mp_aggr fndecl 2 26877 NULL
158242 +enable_so_n_allocated_vis_efx_ef10_nic_data_26878 n_allocated_vis efx_ef10_nic_data 0 26878 NULL
158243 +enable_so_sym_set_cam_result_error_fndecl_26882 sym_set_cam_result_error fndecl 3 26882 NULL nohasharray
158244 +enable_so_dev_bytenr_btrfsic_block_data_ctx_26882 dev_bytenr btrfsic_block_data_ctx 0 26882 &enable_so_sym_set_cam_result_error_fndecl_26882
158245 +enable_so_out_skip_ceph_connection_26886 out_skip ceph_connection 0 26886 NULL
158246 +enable_so_xdr_process_buf_fndecl_26887 xdr_process_buf fndecl 3-2 26887 NULL
158247 +enable_so_head_floppy_struct_26890 head floppy_struct 0 26890 NULL nohasharray
158248 +enable_so_kvm_read_nested_guest_page_fndecl_26890 kvm_read_nested_guest_page fndecl 5 26890 &enable_so_head_floppy_struct_26890
158249 +enable_so_agno_xfs_alloc_arg_26892 agno xfs_alloc_arg 0 26892 NULL
158250 +enable_so_async_io_fndecl_26900 async_io fndecl 0 26900 NULL
158251 +enable_so_read_file_phy_err_fndecl_26901 read_file_phy_err fndecl 3 26901 NULL
158252 +enable_so_find_get_pages_contig_fndecl_26902 find_get_pages_contig fndecl 0 26902 NULL
158253 +enable_so_raid_disks_r5conf_26904 raid_disks r5conf 0 26904 NULL
158254 +enable_so_reexecute_instruction_fndecl_26906 reexecute_instruction fndecl 2 26906 NULL
158255 +enable_so_ctx_len_xfrm_user_sec_ctx_26911 ctx_len xfrm_user_sec_ctx 0 26911 NULL nohasharray
158256 +enable_so_stack_user_size_perf_sample_data_26911 stack_user_size perf_sample_data 0 26911 &enable_so_ctx_len_xfrm_user_sec_ctx_26911
158257 +enable_so_port_event_fndecl_26912 port_event fndecl 2 26912 NULL
158258 +enable_so_num_slots_rtsx_pcr_26914 num_slots rtsx_pcr 0 26914 NULL
158259 +enable_so_hscx_empty_fifo_fndecl_26915 hscx_empty_fifo fndecl 2 26915 NULL nohasharray
158260 +enable_so_jffs2_flash_writev_fndecl_26915 jffs2_flash_writev fndecl 4 26915 &enable_so_hscx_empty_fifo_fndecl_26915
158261 +enable_so_get_wep_key_fndecl_26919 get_wep_key fndecl 0-4 26919 NULL nohasharray
158262 +enable_so_cache_ctr_fndecl_26919 cache_ctr fndecl 2 26919 &enable_so_get_wep_key_fndecl_26919
158263 +enable_so_amdgpu_bo_create_restricted_fndecl_26920 amdgpu_bo_create_restricted fndecl 2 26920 NULL
158264 +enable_so_to_skip_sd_26922 to_skip sd 0 26922 NULL
158265 +enable_so_count_vnic_res_26925 count vnic_res 0 26925 NULL
158266 +enable_so_depth_vpdma_data_format_26927 depth vpdma_data_format 0 26927 NULL
158267 +enable_so_round_event_name_len_fndecl_26935 round_event_name_len fndecl 0 26935 NULL
158268 +enable_so_scsi_max_sectors_iser_conn_26937 scsi_max_sectors iser_conn 0 26937 NULL
158269 +enable_so_get_bits_fndecl_26938 get_bits fndecl 0-2 26938 NULL
158270 +enable_so_granularity_vx_ibl_info_26939 granularity vx_ibl_info 0 26939 NULL
158271 +enable_so_il4965_pass_packet_to_mac80211_fndecl_26945 il4965_pass_packet_to_mac80211 fndecl 3 26945 NULL
158272 +enable_so_br_vlan_set_default_pvid_fndecl_26946 br_vlan_set_default_pvid fndecl 2 26946 NULL nohasharray
158273 +enable_so_chunk_size_drxk_config_26946 chunk_size drxk_config 0 26946 &enable_so_br_vlan_set_default_pvid_fndecl_26946
158274 +enable_so_stripe_set_idx_fndecl_26948 stripe_set_idx fndecl 1 26948 NULL
158275 +enable_so_width_v4l2_pix_format_mplane_26950 width v4l2_pix_format_mplane 0 26950 NULL
158276 +enable_so_cid_cnic_context_26952 cid cnic_context 0 26952 NULL
158277 +enable_so_axi_dmac_prep_dma_cyclic_fndecl_26953 axi_dmac_prep_dma_cyclic fndecl 4-3 26953 NULL
158278 +enable_so_bulk_out_endp_ttusbir_26955 bulk_out_endp ttusbir 0 26955 NULL nohasharray
158279 +enable_so_id_tps6586x_subdev_info_26955 id tps6586x_subdev_info 0 26955 &enable_so_bulk_out_endp_ttusbir_26955
158280 +enable_so_sky2_receive_fndecl_26956 sky2_receive fndecl 2 26956 NULL
158281 +enable_so_kvm_vcpu_gfn_to_hva_fndecl_26957 kvm_vcpu_gfn_to_hva fndecl 2 26957 NULL
158282 +enable_so_fdt_add_subnode_fndecl_26958 fdt_add_subnode fndecl 2 26958 NULL nohasharray
158283 +enable_so_carl9170_rx_untie_data_fndecl_26958 carl9170_rx_untie_data fndecl 3 26958 &enable_so_fdt_add_subnode_fndecl_26958
158284 +enable_so_bulk_in_ep_bfusb_data_26959 bulk_in_ep bfusb_data 0 26959 NULL
158285 +enable_so_cfpkt_extr_trail_fndecl_26960 cfpkt_extr_trail fndecl 3 26960 NULL
158286 +enable_so_wep_key_not_found_read_fndecl_26962 wep_key_not_found_read fndecl 3 26962 NULL nohasharray
158287 +enable_so_iso_sched_alloc_fndecl_26962 iso_sched_alloc fndecl 1 26962 &enable_so_wep_key_not_found_read_fndecl_26962
158288 +enable_so_len_hidraw_report_26966 len hidraw_report 0 26966 NULL
158289 +enable_so_bt_sock_recvmsg_fndecl_26967 bt_sock_recvmsg fndecl 3 26967 NULL
158290 +enable_so_lov_mds_md_size_fndecl_26975 lov_mds_md_size fndecl 1-0 26975 NULL
158291 +enable_so_brk_mm_struct_26976 brk mm_struct 0 26976 NULL nohasharray
158292 +enable_so_init_allocator_fndecl_26976 init_allocator fndecl 3 26976 &enable_so_brk_mm_struct_26976
158293 +enable_so_ctrl_out_pipe_hfcusb_data_26981 ctrl_out_pipe hfcusb_data 0 26981 NULL
158294 +enable_so_skd_skreq_prep_buffering_fndecl_26987 skd_skreq_prep_buffering fndecl 3 26987 NULL
158295 +enable_so___tipc_send_stream_fndecl_26990 __tipc_send_stream fndecl 3 26990 NULL nohasharray
158296 +enable_so_smb_sendv_fndecl_26990 smb_sendv fndecl 3 26990 &enable_so___tipc_send_stream_fndecl_26990
158297 +enable_so_address_length_acpi_address64_attribute_26992 address_length acpi_address64_attribute 0 26992 NULL
158298 +enable_so_delete_empty_dnode_fndecl_26994 delete_empty_dnode fndecl 2 26994 NULL
158299 +enable_so_buffer_bytes_snd_card_asihpi_pcm_26997 buffer_bytes snd_card_asihpi_pcm 0 26997 NULL
158300 +enable_so_ser_write_chunk_vardecl_caif_serial_c_26999 ser_write_chunk vardecl_caif_serial.c 0 26999 NULL
158301 +enable_so_get_mpc_size_fndecl_27000 get_mpc_size fndecl 0 27000 NULL
158302 +enable_so_netxen_alloc_sds_rings_fndecl_27002 netxen_alloc_sds_rings fndecl 2 27002 NULL
158303 +enable_so_retry_cnt_ib_qp_attr_27003 retry_cnt ib_qp_attr 0 27003 NULL
158304 +enable_so_task_array_size_cnic_local_27004 task_array_size cnic_local 0 27004 NULL
158305 +enable_so_n_tty_receive_buf_common_fndecl_27013 n_tty_receive_buf_common fndecl 4 27013 NULL
158306 +enable_so_batadv_handle_request_fndecl_27018 batadv_handle_request fndecl 5 27018 NULL nohasharray
158307 +enable_so_nfs4_set_security_label_fndecl_27018 nfs4_set_security_label fndecl 3 27018 &enable_so_batadv_handle_request_fndecl_27018
158308 +enable_so_mclk_frequency_ov965x_27019 mclk_frequency ov965x 0 27019 NULL
158309 +enable_so_lpfcdiag_loop_self_reg_fndecl_27022 lpfcdiag_loop_self_reg fndecl 0 27022 NULL
158310 +enable_so_ath6kl_cfg80211_connect_event_fndecl_27024 ath6kl_cfg80211_connect_event fndecl 7-8-9 27024 NULL nohasharray
158311 +enable_so_cts_cbc_decrypt_fndecl_27024 cts_cbc_decrypt fndecl 5 27024 &enable_so_ath6kl_cfg80211_connect_event_fndecl_27024
158312 +enable_so_dx_fb_copyarea_27025 dx fb_copyarea 0 27025 NULL
158313 +enable_so___bufio_new_fndecl_27029 __bufio_new fndecl 2 27029 NULL
158314 +enable_so_overhead_sctp_packet_27032 overhead sctp_packet 0 27032 NULL
158315 +enable_so_read_capacity_16_fndecl_27039 read_capacity_16 fndecl 0 27039 NULL
158316 +enable_so_device_pci_dev_27044 device pci_dev 0 27044 NULL
158317 +enable_so_data_read_fndecl_27045 data_read fndecl 3 27045 NULL
158318 +enable_so_remains_vardecl_initramfs_c_27049 remains vardecl_initramfs.c 0 27049 NULL
158319 +enable_so_brcmf_sdiod_ramrw_fndecl_27055 brcmf_sdiod_ramrw fndecl 5-3 27055 NULL
158320 +enable_so_indices_fm10k_ring_feature_27057 indices fm10k_ring_feature 0 27057 NULL
158321 +enable_so_iscsi_post_host_event_fndecl_27058 iscsi_post_host_event fndecl 4 27058 NULL
158322 +enable_so_sb_init_dio_done_wq_fndecl_27065 sb_init_dio_done_wq fndecl 0 27065 NULL
158323 +enable_so_bfad_iocmd_fcpim_clr_modstats_fndecl_27068 bfad_iocmd_fcpim_clr_modstats fndecl 0 27068 NULL
158324 +enable_so_z_decompress_fndecl_27072 z_decompress fndecl 5-3 27072 NULL
158325 +enable_so_bm_init_fndecl_27082 bm_init fndecl 2 27082 NULL
158326 +enable_so_new_layout_mddev_27083 new_layout mddev 0 27083 NULL
158327 +enable_so_max_wqes_rqes_per_q_ocrdma_mbx_query_config_27086 max_wqes_rqes_per_q ocrdma_mbx_query_config 0 27086 NULL
158328 +enable_so_far_set_size_geom_27088 far_set_size geom 0 27088 NULL
158329 +enable_so_vid_hdr_aloffset_ubi_device_27089 vid_hdr_aloffset ubi_device 0 27089 NULL
158330 +enable_so_file_size_perf_mmap_event_27090 file_size perf_mmap_event 0 27090 NULL nohasharray
158331 +enable_so_mei_devt_vardecl_main_c_27090 mei_devt vardecl_main.c 0 27090 &enable_so_file_size_perf_mmap_event_27090
158332 +enable_so_num_counters_compat_arpt_replace_27091 num_counters compat_arpt_replace 0 27091 NULL
158333 +enable_so_smk_write_mapped_fndecl_27100 smk_write_mapped fndecl 3 27100 NULL
158334 +enable_so___btrfs_alloc_chunk_fndecl_27105 __btrfs_alloc_chunk fndecl 3 27105 NULL nohasharray
158335 +enable_so_i_suballoc_bit_ocfs2_dinode_27105 i_suballoc_bit ocfs2_dinode 0 27105 &enable_so___btrfs_alloc_chunk_fndecl_27105
158336 +enable_so_lastctxt_piobuf_qib_devdata_27106 lastctxt_piobuf qib_devdata 0 27106 NULL
158337 +enable_so_iser_max_sectors_vardecl_27108 iser_max_sectors vardecl 0 27108 NULL
158338 +enable_so_ieee80211_if_read_ap_power_level_fndecl_27109 ieee80211_if_read_ap_power_level fndecl 3 27109 NULL
158339 +enable_so_usb_hcd_link_urb_to_ep_fndecl_27115 usb_hcd_link_urb_to_ep fndecl 0 27115 NULL nohasharray
158340 +enable_so_len_lpfc_debug_27115 len lpfc_debug 0 27115 &enable_so_usb_hcd_link_urb_to_ep_fndecl_27115
158341 +enable_so_gpa_gfn_to_hva_cache_27125 gpa gfn_to_hva_cache 0 27125 NULL
158342 +enable_so_mwifiex_sdio_card_to_host_fndecl_27127 mwifiex_sdio_card_to_host fndecl 4 27127 NULL nohasharray
158343 +enable_so_non_atomic_pte_lookup_fndecl_27127 non_atomic_pte_lookup fndecl 2 27127 &enable_so_mwifiex_sdio_card_to_host_fndecl_27127
158344 +enable_so_pd_count_ocrdma_alloc_pd_range_rsp_27128 pd_count ocrdma_alloc_pd_range_rsp 0 27128 NULL
158345 +enable_so_sys32_fadvise64_fndecl_27136 sys32_fadvise64 fndecl 4 27136 NULL
158346 +enable_so_mtu_rfcomm_dlc_27139 mtu rfcomm_dlc 0 27139 NULL nohasharray
158347 +enable_so_do_proc_readlink_fndecl_27139 do_proc_readlink fndecl 3 27139 &enable_so_mtu_rfcomm_dlc_27139
158348 +enable_so_rxkad_sg_set_buf2_fndecl_27140 rxkad_sg_set_buf2 fndecl 3 27140 NULL
158349 +enable_so_rx_ps_bsize0_e1000_adapter_27144 rx_ps_bsize0 e1000_adapter 0 27144 NULL
158350 +enable_so_compat_sys_pselect6_fndecl_27146 compat_sys_pselect6 fndecl 1 27146 NULL
158351 +enable_so_nilfs_attach_checkpoint_fndecl_27152 nilfs_attach_checkpoint fndecl 2 27152 NULL
158352 +enable_so__nfs4_proc_readdir_fndecl_27153 _nfs4_proc_readdir fndecl 5 27153 NULL
158353 +enable_so_dgram_recvmsg_fndecl_27155 dgram_recvmsg fndecl 3 27155 NULL
158354 +enable_so_total_h_mt9m001_27157 total_h mt9m001 0 27157 NULL
158355 +enable_so_len_nf_ct_ext_type_27159 len nf_ct_ext_type 0 27159 NULL
158356 +enable_so_bbRcvSizeLsb_csp_27167 bbRcvSizeLsb csp 0 27167 NULL
158357 +enable_so_len_rdesc0_27169 len rdesc0 0 27169 NULL
158358 +enable_so_cow_start_ocfs2_cow_context_27171 cow_start ocfs2_cow_context 0 27171 NULL
158359 +enable_so_bnep_send_fndecl_27175 bnep_send fndecl 3 27175 NULL
158360 +enable_so_e100_change_mtu_fndecl_27180 e100_change_mtu fndecl 2 27180 NULL
158361 +enable_so_isku_sysfs_read_light_fndecl_27183 isku_sysfs_read_light fndecl 6 27183 NULL
158362 +enable_so_compat_sys_ftruncate_fndecl_27189 compat_sys_ftruncate fndecl 2 27189 NULL
158363 +enable_so_brcmf_sdio_bus_txctl_fndecl_27192 brcmf_sdio_bus_txctl fndecl 3 27192 NULL
158364 +enable_so_write_tty_operations_27198 write tty_operations 0 27198 NULL nohasharray
158365 +enable_so_caif_stream_recvmsg_fndecl_27198 caif_stream_recvmsg fndecl 3 27198 &enable_so_write_tty_operations_27198
158366 +enable_so_netup_unidvb_dma_init_fndecl_27199 netup_unidvb_dma_init fndecl 2 27199 NULL
158367 +enable_so_bfad_iocmd_ioc_enable_fndecl_27205 bfad_iocmd_ioc_enable fndecl 0 27205 NULL
158368 +enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208 ath6kl_wmi_scanparams_cmd fndecl 2 27208 NULL nohasharray
158369 +enable_so_cfs_hash_rehash_bits_fndecl_27208 cfs_hash_rehash_bits fndecl 0 27208 &enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208
158370 +enable_so___ext4_read_dirblock_fndecl_27210 __ext4_read_dirblock fndecl 2 27210 NULL
158371 +enable_so_block_size_scsi_tape_27212 block_size scsi_tape 0 27212 NULL
158372 +enable_so_num_prior_parent_snaps_ceph_mds_snap_realm_27215 num_prior_parent_snaps ceph_mds_snap_realm 0 27215 NULL
158373 +enable_so_sdio_memcpy_fromio_fndecl_27218 sdio_memcpy_fromio fndecl 4 27218 NULL
158374 +enable_so_sym_prepare_nego_fndecl_27219 sym_prepare_nego fndecl 0 27219 NULL
158375 +enable_so_em_canid_change_fndecl_27221 em_canid_change fndecl 3 27221 NULL
158376 +enable_so_bm_bn_xfs_buf_map_27223 bm_bn xfs_buf_map 0 27223 NULL
158377 +enable_so_gsm_dlci_data_fndecl_27224 gsm_dlci_data fndecl 3 27224 NULL
158378 +enable_so_arm_db_page_mthca_create_cq_27227 arm_db_page mthca_create_cq 0 27227 NULL
158379 +enable_so_iwl_store_ucode_sec_fndecl_27235 iwl_store_ucode_sec fndecl 4 27235 NULL
158380 +enable_so_qib_cfgctxts_vardecl_27236 qib_cfgctxts vardecl 0 27236 NULL nohasharray
158381 +enable_so_acks_winsz_rxrpc_call_27236 acks_winsz rxrpc_call 0 27236 &enable_so_qib_cfgctxts_vardecl_27236
158382 +enable_so_do_splice_fndecl_27239 do_splice fndecl 5 27239 NULL
158383 +enable_so_hfsplus_brec_find_fndecl_27243 hfsplus_brec_find fndecl 0 27243 NULL
158384 +enable_so_sisusb_recv_bulk_msg_fndecl_27246 sisusb_recv_bulk_msg fndecl 3-2 27246 NULL
158385 +enable_so_skb_read_pdu_data_fndecl_27249 skb_read_pdu_data fndecl 4 27249 NULL
158386 +enable_so_ocfs2_xattr_value_truncate_fndecl_27252 ocfs2_xattr_value_truncate fndecl 3 27252 NULL nohasharray
158387 +enable_so_zoneshift_alauda_card_info_27252 zoneshift alauda_card_info 0 27252 &enable_so_ocfs2_xattr_value_truncate_fndecl_27252
158388 +enable_so_amb_base_i5k_amb_data_27255 amb_base i5k_amb_data 0 27255 NULL
158389 +enable_so_datafab_read_data_fndecl_27257 datafab_read_data fndecl 4 27257 NULL
158390 +enable_so_mx_sb_len_sg_io_hdr_27261 mx_sb_len sg_io_hdr 0 27261 NULL
158391 +enable_so_sector_drbd_interval_27266 sector drbd_interval 0 27266 NULL
158392 +enable_so_truesize_iwl_rx_cmd_buffer_27273 truesize iwl_rx_cmd_buffer 0 27273 NULL
158393 +enable_so_ieee80211_if_write_uapsd_max_sp_len_fndecl_27274 ieee80211_if_write_uapsd_max_sp_len fndecl 3 27274 NULL
158394 +enable_so_bios_hardcoded_edid_size_amdgpu_mode_info_27277 bios_hardcoded_edid_size amdgpu_mode_info 0 27277 NULL
158395 +enable_so_netxen_process_rcv_fndecl_27279 netxen_process_rcv fndecl 4 27279 NULL
158396 +enable_so_alloc_async_fndecl_27283 alloc_async fndecl 1 27283 NULL
158397 +enable_so___nvme_alloc_iod_fndecl_27289 __nvme_alloc_iod fndecl 2-1 27289 NULL
158398 +enable_so_sys_kexec_load_fndecl_27293 sys_kexec_load fndecl 2 27293 NULL
158399 +enable_so_sector_r10bio_27298 sector r10bio 0 27298 NULL
158400 +enable_so_offset_mlx5_ib_wq_27302 offset mlx5_ib_wq 0 27302 NULL
158401 +enable_so_ath6kl_connect_event_fndecl_27304 ath6kl_connect_event fndecl 7-8-9 27304 NULL
158402 +enable_so_gpu_mem_size_vml_par_27308 gpu_mem_size vml_par 0 27308 NULL nohasharray
158403 +enable_so_cifs_strict_fsync_fndecl_27308 cifs_strict_fsync fndecl 2-3 27308 &enable_so_gpu_mem_size_vml_par_27308
158404 +enable_so_nrelocs_radeon_cs_parser_27313 nrelocs radeon_cs_parser 0 27313 NULL
158405 +enable_so_sctp_recvmsg_fndecl_27314 sctp_recvmsg fndecl 3 27314 NULL
158406 +enable_so_btrfs_token_file_extent_ram_bytes_fndecl_27316 btrfs_token_file_extent_ram_bytes fndecl 0 27316 NULL
158407 +enable_so_chunk_sectors_r5conf_27317 chunk_sectors r5conf 0 27317 NULL
158408 +enable_so_dma_declare_coherent_memory_fndecl_27319 dma_declare_coherent_memory fndecl 4 27319 NULL
158409 +enable_so_lpe_size_sst_pdata_27329 lpe_size sst_pdata 0 27329 NULL
158410 +enable_so_write_buffer_fndecl_27339 write_buffer fndecl 2-0 27339 NULL nohasharray
158411 +enable_so_port_num_ib_wc_27339 port_num ib_wc 0 27339 &enable_so_write_buffer_fndecl_27339
158412 +enable_so_align_pad_cqe_rx_t_27341 align_pad cqe_rx_t 0 27341 NULL nohasharray
158413 +enable_so_read_default_ldt_fndecl_27341 read_default_ldt fndecl 2 27341 &enable_so_align_pad_cqe_rx_t_27341
158414 +enable_so_sndbuf_tun_struct_27345 sndbuf tun_struct 0 27345 NULL
158415 +enable_so_acpi_os_map_iomem_fndecl_27346 acpi_os_map_iomem fndecl 2-1 27346 NULL nohasharray
158416 +enable_so_add_numbered_child_fndecl_27346 add_numbered_child fndecl 7-8-3 27346 &enable_so_acpi_os_map_iomem_fndecl_27346
158417 +enable_so_snd_seq_oss_readq_new_fndecl_27352 snd_seq_oss_readq_new fndecl 2 27352 NULL
158418 +enable_so_pix_format_set_size_fndecl_27356 pix_format_set_size fndecl 3-4 27356 NULL nohasharray
158419 +enable_so_offset_gtt_range_27356 offset gtt_range 0 27356 &enable_so_pix_format_set_size_fndecl_27356
158420 +enable_so_static_data_priv_len_wl1271_27357 static_data_priv_len wl1271 0 27357 NULL
158421 +enable_so_n_mcgrps_genl_family_27362 n_mcgrps genl_family 0 27362 NULL
158422 +enable_so_find_new_extents_fndecl_27368 find_new_extents fndecl 5 27368 NULL
158423 +enable_so_channels_pda_pa_curve_data_27369 channels pda_pa_curve_data 0 27369 NULL
158424 +enable_so_num_altsetting_usb_interface_27371 num_altsetting usb_interface 0 27371 NULL
158425 +enable_so_mod_len_ccp_rsa_engine_27374 mod_len ccp_rsa_engine 0 27374 NULL nohasharray
158426 +enable_so_urb_size_tm6000_core_27374 urb_size tm6000_core 0 27374 &enable_so_mod_len_ccp_rsa_engine_27374
158427 +enable_so_dwNtbOutMaxSize_usb_cdc_ncm_ntb_parameters_27384 dwNtbOutMaxSize usb_cdc_ncm_ntb_parameters 0 27384 NULL
158428 +enable_so_mem_base_pch_dev_27386 mem_base pch_dev 0 27386 NULL
158429 +enable_so_msg_namelen_msghdr_27389 msg_namelen msghdr 0 27389 NULL
158430 +enable_so_frame_size_audioformat_27394 frame_size audioformat 0 27394 NULL
158431 +enable_so_ccid_kmem_cache_create_fndecl_27397 ccid_kmem_cache_create fndecl 1 27397 NULL
158432 +enable_so_evdev_ioctl_compat_fndecl_27400 evdev_ioctl_compat fndecl 2 27400 NULL
158433 +enable_so_enc_pools_insert_fndecl_27402 enc_pools_insert fndecl 3 27402 NULL
158434 +enable_so_m_bsize_xfs_mount_27405 m_bsize xfs_mount 0 27405 NULL
158435 +enable_so_max_payload_rpc_xprt_27408 max_payload rpc_xprt 0 27408 NULL
158436 +enable_so_bucket_table_alloc_fndecl_27422 bucket_table_alloc fndecl 2 27422 NULL
158437 +enable_so_dst_frames_snd_pcm_plugin_27424 dst_frames snd_pcm_plugin 0 27424 NULL nohasharray
158438 +enable_so_service_name_len_nfc_llcp_sock_27424 service_name_len nfc_llcp_sock 0 27424 &enable_so_dst_frames_snd_pcm_plugin_27424
158439 +enable_so_build_virtual_key_fndecl_27427 build_virtual_key fndecl 2 27427 NULL
158440 +enable_so_ad9523_read_fndecl_27434 ad9523_read fndecl 2 27434 NULL
158441 +enable_so_qp_memcpy_to_queue_fndecl_27437 qp_memcpy_to_queue fndecl 5-2 27437 NULL nohasharray
158442 +enable_so___fsnotify_parent_fndecl_27437 __fsnotify_parent fndecl 0 27437 &enable_so_qp_memcpy_to_queue_fndecl_27437
158443 +enable_so_regmap_spi_async_write_fndecl_27439 regmap_spi_async_write fndecl 3-5 27439 NULL
158444 +enable_so_produce_size_vmci_qp_alloc_info_vmvm_27440 produce_size vmci_qp_alloc_info_vmvm 0 27440 NULL
158445 +enable_so_radeon_vm_block_size_vardecl_27445 radeon_vm_block_size vardecl 0 27445 NULL
158446 +enable_so_lpfc_sriov_nr_virtfn_vardecl_lpfc_attr_c_27446 lpfc_sriov_nr_virtfn vardecl_lpfc_attr.c 0 27446 NULL
158447 +enable_so_dm_table_get_num_targets_fndecl_27451 dm_table_get_num_targets fndecl 0 27451 NULL
158448 +enable_so_compat_ip_setsockopt_fndecl_27453 compat_ip_setsockopt fndecl 5 27453 NULL
158449 +enable_so_set_offset_v2_k_type_fndecl_27455 set_offset_v2_k_type fndecl 2 27455 NULL
158450 +enable_so_nilfs_bmap_do_truncate_fndecl_27459 nilfs_bmap_do_truncate fndecl 0 27459 NULL
158451 +enable_so_xfs_dir3_data_init_fndecl_27460 xfs_dir3_data_init fndecl 2 27460 NULL
158452 +enable_so_io_opt_queue_limits_27462 io_opt queue_limits 0 27462 NULL
158453 +enable_so_next_header_vardecl_initramfs_c_27464 next_header vardecl_initramfs.c 0 27464 NULL
158454 +enable_so_uar_page_sz_mlx4_init_hca_param_27465 uar_page_sz mlx4_init_hca_param 0 27465 NULL
158455 +enable_so_max_slots_nfs4_slot_table_27470 max_slots nfs4_slot_table 0 27470 NULL
158456 +enable_so_window_alignment_fndecl_27476 window_alignment fndecl 0 27476 NULL
158457 +enable_so_l2cap_sock_create_fndecl_27477 l2cap_sock_create fndecl 3 27477 NULL nohasharray
158458 +enable_so_size_btrfs_ioctl_ino_path_args_27477 size btrfs_ioctl_ino_path_args 0 27477 &enable_so_l2cap_sock_create_fndecl_27477
158459 +enable_so_mq_msgsize_default_ipc_namespace_27478 mq_msgsize_default ipc_namespace 0 27478 NULL
158460 +enable_so_min_pnp_mem_27484 min pnp_mem 0 27484 NULL
158461 +enable_so_kim_int_recv_fndecl_27486 kim_int_recv fndecl 3 27486 NULL nohasharray
158462 +enable_so_snd_seq_fifo_resize_fndecl_27486 snd_seq_fifo_resize fndecl 2 27486 &enable_so_kim_int_recv_fndecl_27486
158463 +enable_so_status_udc_data_dma_27488 status udc_data_dma 0 27488 NULL nohasharray
158464 +enable_so_exofs_parent_ino_fndecl_27488 exofs_parent_ino fndecl 0 27488 &enable_so_status_udc_data_dma_27488
158465 +enable_so_drbd_send_drequest_csum_fndecl_27489 drbd_send_drequest_csum fndecl 2-3-5 27489 NULL nohasharray
158466 +enable_so_local_nentries_xpc_channel_27489 local_nentries xpc_channel 0 27489 &enable_so_drbd_send_drequest_csum_fndecl_27489
158467 +enable_so_iwl_dbgfs_protection_mode_read_fndecl_27492 iwl_dbgfs_protection_mode_read fndecl 3 27492 NULL
158468 +enable_so_wb_index_nfs_page_27494 wb_index nfs_page 0 27494 NULL
158469 +enable_so_ocfs2_xa_value_truncate_fndecl_27495 ocfs2_xa_value_truncate fndecl 2 27495 NULL nohasharray
158470 +enable_so_ieee80211_if_read_dot11MeshForwarding_fndecl_27495 ieee80211_if_read_dot11MeshForwarding fndecl 3 27495 &enable_so_ocfs2_xa_value_truncate_fndecl_27495
158471 +enable_so_qib_mmap_mem_fndecl_27496 qib_mmap_mem fndecl 3 27496 NULL
158472 +enable_so_rq_size_srpt_rdma_ch_27500 rq_size srpt_rdma_ch 0 27500 NULL nohasharray
158473 +enable_so_ath10k_read_nf_cal_period_fndecl_27500 ath10k_read_nf_cal_period fndecl 3 27500 &enable_so_rq_size_srpt_rdma_ch_27500
158474 +enable_so_lpfc_idiag_queacc_read_fndecl_27501 lpfc_idiag_queacc_read fndecl 3 27501 NULL
158475 +enable_so_rx_buf_size_bnx2x_fastpath_27506 rx_buf_size bnx2x_fastpath 0 27506 NULL
158476 +enable_so_max_qp_sz_mthca_dev_lim_27511 max_qp_sz mthca_dev_lim 0 27511 NULL
158477 +enable_so_stripe_len_map_lookup_27512 stripe_len map_lookup 0 27512 NULL
158478 +enable_so_vis_h_yuv_frame_info_27514 vis_h yuv_frame_info 0 27514 NULL
158479 +enable_so_com90xx_found_fndecl_27525 com90xx_found fndecl 3 27525 NULL
158480 +enable_so_eeprom_size_netdev_private_27532 eeprom_size netdev_private 0 27532 NULL
158481 +enable_so_dvb_demux_read_fndecl_27534 dvb_demux_read fndecl 3 27534 NULL
158482 +enable_so_hlen_raw6_frag_vec_27535 hlen raw6_frag_vec 0 27535 NULL
158483 +enable_so_hsr_dev_change_mtu_fndecl_27537 hsr_dev_change_mtu fndecl 2 27537 NULL
158484 +enable_so_max_mem_ttm_mem_zone_27542 max_mem ttm_mem_zone 0 27542 NULL nohasharray
158485 +enable_so_onenand_mlc_read_ops_nolock_fndecl_27542 onenand_mlc_read_ops_nolock fndecl 2 27542 &enable_so_max_mem_ttm_mem_zone_27542
158486 +enable_so_snd_pcm_plug_slave_size_fndecl_27548 snd_pcm_plug_slave_size fndecl 0-2 27548 NULL
158487 +enable_so_remap_and_issue_fndecl_27555 remap_and_issue fndecl 3 27555 NULL
158488 +enable_so_svc_rdma_xdr_encode_array_chunk_fndecl_27563 svc_rdma_xdr_encode_array_chunk fndecl 5 27563 NULL
158489 +enable_so_sddr09_write_data_fndecl_27565 sddr09_write_data fndecl 3-2 27565 NULL
158490 +enable_so_size_gf100_gr_fuc_27570 size gf100_gr_fuc 0 27570 NULL
158491 +enable_so__wm8993_set_fll_fndecl_27571 _wm8993_set_fll fndecl 4-5 27571 NULL
158492 +enable_so_disabled_cpus_vardecl_27577 disabled_cpus vardecl 0 27577 NULL
158493 +enable_so_count_cxgbi_task_data_27578 count cxgbi_task_data 0 27578 NULL
158494 +enable_so_dev_count_vardecl_smsc_ircc2_c_27579 dev_count vardecl_smsc-ircc2.c 0 27579 NULL
158495 +enable_so_nregions_vhost_memory_27586 nregions vhost_memory 0 27586 NULL
158496 +enable_so_pci_add_ext_cap_save_buffer_fndecl_27587 pci_add_ext_cap_save_buffer fndecl 3 27587 NULL nohasharray
158497 +enable_so_active_key_id_sctp_association_27587 active_key_id sctp_association 0 27587 &enable_so_pci_add_ext_cap_save_buffer_fndecl_27587
158498 +enable_so_fc_pdisc_build_fndecl_27591 fc_pdisc_build fndecl 7 27591 NULL nohasharray
158499 +enable_so_dvb_usercopy_fndecl_27591 dvb_usercopy fndecl 2 27591 &enable_so_fc_pdisc_build_fndecl_27591
158500 +enable_so_md_alloc_fndecl_27600 md_alloc fndecl 1 27600 NULL
158501 +enable_so_btrfs_get_blocks_direct_fndecl_27603 btrfs_get_blocks_direct fndecl 2 27603 NULL
158502 +enable_so_iscsi_create_flashnode_conn_fndecl_27605 iscsi_create_flashnode_conn fndecl 4 27605 NULL
158503 +enable_so__rtl92s_firmware_downloadcode_fndecl_27606 _rtl92s_firmware_downloadcode fndecl 3 27606 NULL
158504 +enable_so_packet_length_gl_packet_27608 packet_length gl_packet 0 27608 NULL nohasharray
158505 +enable_so_EraseSize_INFTLrecord_27608 EraseSize INFTLrecord 0 27608 &enable_so_packet_length_gl_packet_27608
158506 +enable_so_p1_min_aptina_pll_limits_27620 p1_min aptina_pll_limits 0 27620 NULL
158507 +enable_so_read_isac_isac_27627 read_isac isac 0 27627 NULL nohasharray
158508 +enable_so_ino_logfs_disk_dentry_27627 ino logfs_disk_dentry 0 27627 &enable_so_read_isac_isac_27627
158509 +enable_so_data_length_se_cmd_27629 data_length se_cmd 0 27629 NULL
158510 +enable_so_group_size_rcv_array_data_27633 group_size rcv_array_data 0 27633 NULL
158511 +enable_so_snoop_urb_data_fndecl_27635 snoop_urb_data fndecl 2 27635 NULL
158512 +enable_so_sta_agg_status_read_fndecl_27641 sta_agg_status_read fndecl 3 27641 NULL
158513 +enable_so_st_scsi_execute_fndecl_27643 st_scsi_execute fndecl 5 27643 NULL
158514 +enable_so_bsize_videobuf_buffer_27645 bsize videobuf_buffer 0 27645 NULL
158515 +enable_so_error_res_proc_context_27648 error res_proc_context 0 27648 NULL
158516 +enable_so_nvkm_event_init_fndecl_27654 nvkm_event_init fndecl 2-3 27654 NULL
158517 +enable_so_period_frames_usb_stream_config_27656 period_frames usb_stream_config 0 27656 NULL
158518 +enable_so_WriteRegs_fndecl_27658 WriteRegs fndecl 4 27658 NULL
158519 +enable_so_xen_get_pages_limit_fndecl_27661 xen_get_pages_limit fndecl 0 27661 NULL
158520 +enable_so_efx_ef10_mem_map_size_fndecl_27664 efx_ef10_mem_map_size fndecl 0 27664 NULL
158521 +enable_so_mr_write_fndecl_27670 mr_write fndecl 0 27670 NULL
158522 +enable_so_size_compat_ip6t_replace_27672 size compat_ip6t_replace 0 27672 NULL
158523 +enable_so_ib_umem_get_fndecl_27678 ib_umem_get fndecl 2-3 27678 NULL
158524 +enable_so_tlbflush_write_file_fndecl_27685 tlbflush_write_file fndecl 3 27685 NULL
158525 +enable_so__iwl_dbgfs_prph_reg_write_fndecl_27686 _iwl_dbgfs_prph_reg_write fndecl 3 27686 NULL
158526 +enable_so_bnx2x_iov_init_one_fndecl_27687 bnx2x_iov_init_one fndecl 3 27687 NULL
158527 +enable_so_mt9m111_get_global_gain_fndecl_27689 mt9m111_get_global_gain fndecl 0 27689 NULL
158528 +enable_so_ipv6_get_l4proto_fndecl_27691 ipv6_get_l4proto fndecl 2 27691 NULL
158529 +enable_so_vhci_put_user_fndecl_27695 vhci_put_user fndecl 4 27695 NULL
158530 +enable_so_hvc_alloc_fndecl_27696 hvc_alloc fndecl 4 27696 NULL
158531 +enable_so_mru_ppp_27697 mru ppp 0 27697 NULL
158532 +enable_so_rx_buf_sz_de_private_27701 rx_buf_sz de_private 0 27701 NULL
158533 +enable_so_snd_pcm_plugin_alloc_fndecl_27703 snd_pcm_plugin_alloc fndecl 2 27703 NULL
158534 +enable_so_actual_size_mlx4_en_rx_ring_27705 actual_size mlx4_en_rx_ring 0 27705 NULL
158535 +enable_so_sequence_num_usb_ftdi_27707 sequence_num usb_ftdi 0 27707 NULL
158536 +enable_so_niu_rx_skb_append_fndecl_27708 niu_rx_skb_append fndecl 4-3-5 27708 NULL
158537 +enable_so_pcpu_extend_area_map_fndecl_27710 pcpu_extend_area_map fndecl 2 27710 NULL
158538 +enable_so_ns83820_change_mtu_fndecl_27711 ns83820_change_mtu fndecl 2 27711 NULL
158539 +enable_so_sdhci_pltfm_init_fndecl_27712 sdhci_pltfm_init fndecl 3 27712 NULL
158540 +enable_so_min_out_pixsize_fimc_variant_27716 min_out_pixsize fimc_variant 0 27716 NULL
158541 +enable_so_fsblog_xfs_da_geometry_27717 fsblog xfs_da_geometry 0 27717 NULL
158542 +enable_so_create_xrc_srq_cmd_fndecl_27718 create_xrc_srq_cmd fndecl 0 27718 NULL
158543 +enable_so_pwr_rcvd_awake_bcns_cnt_read_fndecl_27723 pwr_rcvd_awake_bcns_cnt_read fndecl 3 27723 NULL
158544 +enable_so_xstate_size__fpx_sw_bytes_27731 xstate_size _fpx_sw_bytes 0 27731 NULL
158545 +enable_so_ioat_dca_count_dca_slots_fndecl_27732 ioat_dca_count_dca_slots fndecl 0 27732 NULL
158546 +enable_so_ieee80211_ie_split_vendor_fndecl_27738 ieee80211_ie_split_vendor fndecl 0-3 27738 NULL nohasharray
158547 +enable_so_qla27xx_fwdt_calculate_dump_size_fndecl_27738 qla27xx_fwdt_calculate_dump_size fndecl 0 27738 &enable_so_ieee80211_ie_split_vendor_fndecl_27738
158548 +enable_so_word_size_e1000_eeprom_info_27741 word_size e1000_eeprom_info 0 27741 NULL
158549 +enable_so_si_blocks_ocfs2_slot_info_27753 si_blocks ocfs2_slot_info 0 27753 NULL
158550 +enable_so_sparse_mem_maps_populate_node_fndecl_27758 sparse_mem_maps_populate_node fndecl 4 27758 NULL nohasharray
158551 +enable_so_sel_read_class_fndecl_27758 sel_read_class fndecl 3 27758 &enable_so_sparse_mem_maps_populate_node_fndecl_27758
158552 +enable_so_dwc3_link_state_write_fndecl_27762 dwc3_link_state_write fndecl 3 27762 NULL
158553 +enable_so_nr_sendmsg_fndecl_27763 nr_sendmsg fndecl 3 27763 NULL
158554 +enable_so_h_drm_vmw_rect_27765 h drm_vmw_rect 0 27765 NULL
158555 +enable_so_instat_endpoint_keyspan_device_details_27768 instat_endpoint keyspan_device_details 0 27768 NULL nohasharray
158556 +enable_so_wb_create_fndecl_27768 wb_create fndecl 1 27768 &enable_so_instat_endpoint_keyspan_device_details_27768
158557 +enable_so_be_queue_alloc_fndecl_27771 be_queue_alloc fndecl 3 27771 NULL
158558 +enable_so_max_cyttsp4_tch_abs_params_27772 max cyttsp4_tch_abs_params 0 27772 NULL nohasharray
158559 +enable_so_rtw_android_get_link_speed_fndecl_27772 rtw_android_get_link_speed fndecl 0 27772 &enable_so_max_cyttsp4_tch_abs_params_27772
158560 +enable_so_rs_datalen_ath_rx_status_27774 rs_datalen ath_rx_status 0 27774 NULL
158561 +enable_so_raid_disks_pool_info_27784 raid_disks pool_info 0 27784 NULL
158562 +enable_so_vlan_qos_vlan_priority_tci_mapping_27789 vlan_qos vlan_priority_tci_mapping 0 27789 NULL nohasharray
158563 +enable_so_ext4_bg_num_gdb_meta_fndecl_27789 ext4_bg_num_gdb_meta fndecl 0 27789 &enable_so_vlan_qos_vlan_priority_tci_mapping_27789
158564 +enable_so_flags_mmio_74xx_gpio_priv_27797 flags mmio_74xx_gpio_priv 0 27797 NULL
158565 +enable_so_nilfs_segbuf_set_next_segnum_fndecl_27802 nilfs_segbuf_set_next_segnum fndecl 2 27802 NULL
158566 +enable_so_bm_offset_drbd_md_27803 bm_offset drbd_md 0 27803 NULL
158567 +enable_so_nr_ports_solos_card_27804 nr_ports solos_card 0 27804 NULL
158568 +enable_so_e1000_receive_skb_fndecl_27809 e1000_receive_skb fndecl 3 27809 NULL
158569 +enable_so_ivtv_write_fndecl_27810 ivtv_write fndecl 3 27810 NULL
158570 +enable_so_ule_sndu_remain_dvb_net_priv_27812 ule_sndu_remain dvb_net_priv 0 27812 NULL
158571 +enable_so_page_is_ram_fndecl_27814 page_is_ram fndecl 1 27814 NULL
158572 +enable_so_dm_block_manager_create_fndecl_27815 dm_block_manager_create fndecl 2 27815 NULL
158573 +enable_so_sizeimage_v4l2_pix_format_27824 sizeimage v4l2_pix_format 0 27824 NULL nohasharray
158574 +enable_so_iwl_dbgfs_calib_disabled_write_fndecl_27824 iwl_dbgfs_calib_disabled_write fndecl 3 27824 &enable_so_sizeimage_v4l2_pix_format_27824
158575 +enable_so_consumed_vringh_kiov_27828 consumed vringh_kiov 0 27828 NULL
158576 +enable_so_corruption_check_size_vardecl_check_c_27830 corruption_check_size vardecl_check.c 0 27830 NULL
158577 +enable_so_number_of_effective_blocks_ms_boot_attr_info_27832 number_of_effective_blocks ms_boot_attr_info 0 27832 NULL
158578 +enable_so_roundup_brcmf_sdio_27833 roundup brcmf_sdio 0 27833 NULL nohasharray
158579 +enable_so_type_kqid_27833 type kqid 0 27833 &enable_so_roundup_brcmf_sdio_27833
158580 +enable_so_num_bcma_bus_27835 num bcma_bus 0 27835 NULL
158581 +enable_so_adm8211_tx_raw_fndecl_27839 adm8211_tx_raw fndecl 3-4 27839 NULL nohasharray
158582 +enable_so_ieee80211_if_read_num_buffered_multicast_fndecl_27839 ieee80211_if_read_num_buffered_multicast fndecl 3 27839 &enable_so_adm8211_tx_raw_fndecl_27839
158583 +enable_so___getblk_slow_fndecl_27842 __getblk_slow fndecl 3-2 27842 NULL nohasharray
158584 +enable_so_cfg_niq_csio_hw_27842 cfg_niq csio_hw 0 27842 &enable_so___getblk_slow_fndecl_27842
158585 +enable_so_ieee80211_if_read_dot11MeshMaxRetries_fndecl_27847 ieee80211_if_read_dot11MeshMaxRetries fndecl 3 27847 NULL
158586 +enable_so_dd_bsg_size_fc_function_template_27852 dd_bsg_size fc_function_template 0 27852 NULL
158587 +enable_so_size_pnp_port_27856 size pnp_port 0 27856 NULL
158588 +enable_so_xfs_da3_node_read_fndecl_27858 xfs_da3_node_read fndecl 3 27858 NULL
158589 +enable_so_key_rx_spec_read_fndecl_27859 key_rx_spec_read fndecl 3 27859 NULL
158590 +enable_so_pb_count_s5p_mfc_ctx_27861 pb_count s5p_mfc_ctx 0 27861 NULL
158591 +enable_so_pkey_index_cm_av_27866 pkey_index cm_av 0 27866 NULL nohasharray
158592 +enable_so_vlan_proto_sk_buff_27866 vlan_proto sk_buff 0 27866 &enable_so_pkey_index_cm_av_27866
158593 +enable_so_max_slave_count_w1_master_27872 max_slave_count w1_master 0 27872 NULL nohasharray
158594 +enable_so_ngroups_rcv_array_data_27872 ngroups rcv_array_data 0 27872 &enable_so_max_slave_count_w1_master_27872
158595 +enable_so_lo_len_nfsd4_lookup_27874 lo_len nfsd4_lookup 0 27874 NULL
158596 +enable_so_l_blkno_lbuf_27876 l_blkno lbuf 0 27876 NULL
158597 +enable_so_msb_sg_copy_fndecl_27886 msb_sg_copy fndecl 5-4 27886 NULL
158598 +enable_so__rotate_left_fndecl_27889 _rotate_left fndecl 2 27889 NULL
158599 +enable_so_do_blktrans_request_fndecl_27890 do_blktrans_request fndecl 0 27890 NULL nohasharray
158600 +enable_so_listxattr_fndecl_27890 listxattr fndecl 3 27890 &enable_so_do_blktrans_request_fndecl_27890
158601 +enable_so___lbs_cmd_fndecl_27904 __lbs_cmd fndecl 4 27904 NULL
158602 +enable_so_reada_tree_block_flagged_fndecl_27912 reada_tree_block_flagged fndecl 2 27912 NULL
158603 +enable_so_lbq_len_rx_ring_27913 lbq_len rx_ring 0 27913 NULL
158604 +enable_so_il_dbgfs_nvm_read_fndecl_27923 il_dbgfs_nvm_read fndecl 3 27923 NULL
158605 +enable_so_tp_datalen_bcm5974_config_27927 tp_datalen bcm5974_config 0 27927 NULL
158606 +enable_so_numchips_lpddr_private_27938 numchips lpddr_private 0 27938 NULL
158607 +enable_so_get_burstcount_fndecl_27942 get_burstcount fndecl 0 27942 NULL nohasharray
158608 +enable_so_capacity_cdrom_device_info_27942 capacity cdrom_device_info 0 27942 &enable_so_get_burstcount_fndecl_27942
158609 +enable_so_usbat_hp8200e_rw_block_test_fndecl_27957 usbat_hp8200e_rw_block_test fndecl 5-12-13 27957 NULL
158610 +enable_so_size_plx_pci_channel_map_27958 size plx_pci_channel_map 0 27958 NULL
158611 +enable_so_pcbit_writecmd_fndecl_27967 pcbit_writecmd fndecl 2 27967 NULL
158612 +enable_so_fat_build_inode_fndecl_27970 fat_build_inode fndecl 3 27970 NULL
158613 +enable_so_parser_init_byte_stream_fndecl_27973 parser_init_byte_stream fndecl 2 27973 NULL
158614 +enable_so_iip_ubifs_znode_27974 iip ubifs_znode 0 27974 NULL
158615 +enable_so_sxgbe_init_rx_buffers_fndecl_27984 sxgbe_init_rx_buffers fndecl 4 27984 NULL nohasharray
158616 +enable_so_mptctl_ioctl_fndecl_27984 mptctl_ioctl fndecl 2 27984 &enable_so_sxgbe_init_rx_buffers_fndecl_27984
158617 +enable_so_snd_sb16_setup_rate_fndecl_27986 snd_sb16_setup_rate fndecl 2 27986 NULL
158618 +enable_so_ext4_seek_hole_fndecl_27990 ext4_seek_hole fndecl 2 27990 NULL
158619 +enable_so_write_mei_hw_ops_27991 write mei_hw_ops 0 27991 NULL
158620 +enable_so_alloc_ccbs_blogic_adapter_27993 alloc_ccbs blogic_adapter 0 27993 NULL
158621 +enable_so___nf_ct_ext_add_length_fndecl_27999 __nf_ct_ext_add_length fndecl 3 27999 NULL
158622 +enable_so_ubifs_end_scan_fndecl_28000 ubifs_end_scan fndecl 4 28000 NULL nohasharray
158623 +enable_so_page_count_scrub_block_28000 page_count scrub_block 0 28000 &enable_so_ubifs_end_scan_fndecl_28000
158624 +enable_so_max_x_fb_monspecs_28003 max_x fb_monspecs 0 28003 NULL
158625 +enable_so_bytes_str_to_int_fndecl_28004 bytes_str_to_int fndecl 0 28004 NULL
158626 +enable_so_scif_recv_fndecl_28006 scif_recv fndecl 3 28006 NULL
158627 +enable_so_resp_ie_len_brcmf_cfg80211_connect_info_28007 resp_ie_len brcmf_cfg80211_connect_info 0 28007 NULL
158628 +enable_so_memtest_fndecl_28012 memtest fndecl 2 28012 NULL
158629 +enable_so_ext4_bg_num_gdb_nometa_fndecl_28014 ext4_bg_num_gdb_nometa fndecl 0 28014 NULL
158630 +enable_so_xfs_iext_inline_to_direct_fndecl_28019 xfs_iext_inline_to_direct fndecl 2 28019 NULL
158631 +enable_so_write_file_dump_fndecl_28020 write_file_dump fndecl 3 28020 NULL
158632 +enable_so_cfs_array_alloc_fndecl_28042 cfs_array_alloc fndecl 2 28042 NULL
158633 +enable_so_min_size_vx_ibl_info_28043 min_size vx_ibl_info 0 28043 NULL
158634 +enable_so_new_chunk_dm_exception_28044 new_chunk dm_exception 0 28044 NULL
158635 +enable_so_ieee80211_if_read_num_mcast_sta_fndecl_28048 ieee80211_if_read_num_mcast_sta fndecl 3 28048 NULL nohasharray
158636 +enable_so_num_intr_mic_intr_info_28048 num_intr mic_intr_info 0 28048 &enable_so_ieee80211_if_read_num_mcast_sta_fndecl_28048
158637 +enable_so_vc_top_vc_data_28051 vc_top vc_data 0 28051 NULL
158638 +enable_so_virtio_gpu_cmd_set_scanout_fndecl_28053 virtio_gpu_cmd_set_scanout fndecl 4-5 28053 NULL
158639 +enable_so_maxpacket_usbnet_28054 maxpacket usbnet 0 28054 NULL
158640 +enable_so_cl_nodelen_rpc_clnt_28055 cl_nodelen rpc_clnt 0 28055 NULL
158641 +enable_so_s_imap_blocks_minix_sb_info_28062 s_imap_blocks minix_sb_info 0 28062 NULL
158642 +enable_so_gfs2_llseek_fndecl_28067 gfs2_llseek fndecl 2 28067 NULL
158643 +enable_so_xfs_qm_scall_setqlim_fndecl_28074 xfs_qm_scall_setqlim fndecl 2 28074 NULL
158644 +enable_so_rsi_prepare_skb_fndecl_28075 rsi_prepare_skb fndecl 4-3 28075 NULL
158645 +enable_so_qla4_82xx_pci_mem_write_direct_fndecl_28076 qla4_82xx_pci_mem_write_direct fndecl 2 28076 NULL
158646 +enable_so_abituguru_detect_fndecl_28078 abituguru_detect fndecl 0 28078 NULL
158647 +enable_so_bio_slab_max_vardecl_bio_c_28087 bio_slab_max vardecl_bio.c 0 28087 NULL
158648 +enable_so_buflen_qce_sha_reqctx_28088 buflen qce_sha_reqctx 0 28088 NULL nohasharray
158649 +enable_so_ddr_start_mthca_dev_28088 ddr_start mthca_dev 0 28088 &enable_so_buflen_qce_sha_reqctx_28088
158650 +enable_so_xlog_state_get_iclog_space_fndecl_28090 xlog_state_get_iclog_space fndecl 2 28090 NULL
158651 +enable_so_vxfs_read_olt_fndecl_28091 vxfs_read_olt fndecl 2 28091 NULL
158652 +enable_so_llcp_sock_recvmsg_fndecl_28095 llcp_sock_recvmsg fndecl 3 28095 NULL
158653 +enable_so_fnic_trace_ctrl_read_fndecl_28098 fnic_trace_ctrl_read fndecl 3 28098 NULL
158654 +enable_so___ceph_osdc_start_request_fndecl_28101 __ceph_osdc_start_request fndecl 0 28101 NULL nohasharray
158655 +enable_so_vmw_fb_create_bo_fndecl_28101 vmw_fb_create_bo fndecl 2 28101 &enable_so___ceph_osdc_start_request_fndecl_28101
158656 +enable_so_ath6kl_wmi_set_wmm_txop_fndecl_28102 ath6kl_wmi_set_wmm_txop fndecl 2 28102 NULL
158657 +enable_so_tool_peer_db_write_fndecl_28104 tool_peer_db_write fndecl 3 28104 NULL
158658 +enable_so_xlvbd_init_blk_queue_fndecl_28107 xlvbd_init_blk_queue fndecl 2-3-4 28107 NULL nohasharray
158659 +enable_so_udf_check_anchor_block_fndecl_28107 udf_check_anchor_block fndecl 2 28107 &enable_so_xlvbd_init_blk_queue_fndecl_28107
158660 +enable_so_gru_alloc_thread_state_fndecl_28109 gru_alloc_thread_state fndecl 2 28109 NULL
158661 +enable_so_ufs_inode_getfrag_fndecl_28110 ufs_inode_getfrag fndecl 3-0 28110 NULL
158662 +enable_so_stream_next_buffer_check_queue_fndecl_28114 stream_next_buffer_check_queue fndecl 0 28114 NULL
158663 +enable_so___iwl_read_prph_fndecl_28120 __iwl_read_prph fndecl 0 28120 NULL
158664 +enable_so_comm_base_mlx4_fw_28125 comm_base mlx4_fw 0 28125 NULL
158665 +enable_so_minimum_mfc_control_28126 minimum mfc_control 0 28126 NULL nohasharray
158666 +enable_so_mtip_send_trim_fndecl_28126 mtip_send_trim fndecl 0 28126 &enable_so_minimum_mfc_control_28126
158667 +enable_so_xfs_get_extsz_hint_fndecl_28128 xfs_get_extsz_hint fndecl 0 28128 NULL
158668 +enable_so_vlan_id_qlcnic_esw_func_cfg_28139 vlan_id qlcnic_esw_func_cfg 0 28139 NULL
158669 +enable_so_wLength_usb_ctrlrequest_28143 wLength usb_ctrlrequest 0 28143 NULL
158670 +enable_so_unit_size_pcpu_alloc_info_28146 unit_size pcpu_alloc_info 0 28146 NULL
158671 +enable_so_adv_smbus_read_byte_data_fndecl_28147 adv_smbus_read_byte_data fndecl 0 28147 NULL
158672 +enable_so_rc_framerate_denom_s5p_mfc_enc_params_28151 rc_framerate_denom s5p_mfc_enc_params 0 28151 NULL
158673 +enable_so_cur_page_offset_dio_submit_28153 cur_page_offset dio_submit 0 28153 NULL
158674 +enable_so_bNumPorts_usb_wa_descriptor_28154 bNumPorts usb_wa_descriptor 0 28154 NULL
158675 +enable_so_pipe_intr_lan78xx_net_28155 pipe_intr lan78xx_net 0 28155 NULL nohasharray
158676 +enable_so_cfg80211_disconnected_fndecl_28155 cfg80211_disconnected fndecl 4 28155 &enable_so_pipe_intr_lan78xx_net_28155
158677 +enable_so_af9013_rd_regs_fndecl_28157 af9013_rd_regs fndecl 4 28157 NULL
158678 +enable_so_sock_hlen_vhost_net_virtqueue_28159 sock_hlen vhost_net_virtqueue 0 28159 NULL
158679 +enable_so_read_file_tpc_fndecl_28162 read_file_tpc fndecl 3 28162 NULL
158680 +enable_so_aio_nbytes_iocb_28163 aio_nbytes iocb 0 28163 NULL
158681 +enable_so_x_drm_fb_helper_crtc_28166 x drm_fb_helper_crtc 0 28166 NULL
158682 +enable_so__ocfs2_free_suballoc_bits_fndecl_28174 _ocfs2_free_suballoc_bits fndecl 5 28174 NULL
158683 +enable_so___iscsi_conn_send_pdu_fndecl_28181 __iscsi_conn_send_pdu fndecl 4 28181 NULL
158684 +enable_so___dn_setsockopt_fndecl_28183 __dn_setsockopt fndecl 5 28183 NULL
158685 +enable_so_res_length_dlm_rsb_28184 res_length dlm_rsb 0 28184 NULL
158686 +enable_so_fw_cid_ep_handles_28190 fw_cid ep_handles 0 28190 NULL
158687 +enable_so_ixgbe_fcoe_get_tc_fndecl_28191 ixgbe_fcoe_get_tc fndecl 0 28191 NULL
158688 +enable_so_size_genwqe_mem_28192 size genwqe_mem 0 28192 NULL
158689 +enable_so_ttm_dma_pool_alloc_new_pages_fndecl_28194 ttm_dma_pool_alloc_new_pages fndecl 3 28194 NULL
158690 +enable_so_snd_rme96_playback_copy_fndecl_28196 snd_rme96_playback_copy fndecl 5 28196 NULL
158691 +enable_so_cirrus_gem_create_fndecl_28197 cirrus_gem_create fndecl 2 28197 NULL nohasharray
158692 +enable_so_next_power_fndecl_28197 next_power fndecl 0 28197 &enable_so_cirrus_gem_create_fndecl_28197
158693 +enable_so_snd_pcm_lib_preallocate_pages_for_all_fndecl_28203 snd_pcm_lib_preallocate_pages_for_all fndecl 4 28203 NULL
158694 +enable_so_bfad_debugfs_read_fndecl_28204 bfad_debugfs_read fndecl 3 28204 NULL
158695 +enable_so_region_shift_dm_region_hash_28205 region_shift dm_region_hash 0 28205 NULL
158696 +enable_so_ast_bo_create_fndecl_28209 ast_bo_create fndecl 2 28209 NULL nohasharray
158697 +enable_so_xattr_getsecurity_fndecl_28209 xattr_getsecurity fndecl 0 28209 &enable_so_ast_bo_create_fndecl_28209
158698 +enable_so_lec_change_mtu_fndecl_28213 lec_change_mtu fndecl 2 28213 NULL
158699 +enable_so_ext4_get_block_write_nolock_fndecl_28214 ext4_get_block_write_nolock fndecl 2 28214 NULL
158700 +enable_so_blk_rq_map_sg_fndecl_28215 blk_rq_map_sg fndecl 0 28215 NULL
158701 +enable_so_mpt_base_mthca_mr_table_28221 mpt_base mthca_mr_table 0 28221 NULL
158702 +enable_so_s_blocksize_bits_super_block_28225 s_blocksize_bits super_block 0 28225 NULL nohasharray
158703 +enable_so_wil_seq_hexdump_fndecl_28225 wil_seq_hexdump fndecl 3 28225 &enable_so_s_blocksize_bits_super_block_28225
158704 +enable_so_eth_type_ath6kl_llc_snap_hdr_28228 eth_type ath6kl_llc_snap_hdr 0 28228 NULL
158705 +enable_so_space_slots_btrfs_ioctl_space_args_28231 space_slots btrfs_ioctl_space_args 0 28231 NULL
158706 +enable_so_blk_update_request_fndecl_28233 blk_update_request fndecl 3-2 28233 NULL
158707 +enable_so_mux_device_request_fndecl_28235 mux_device_request fndecl 7 28235 NULL nohasharray
158708 +enable_so_l2cap_mtu_vardecl_core_c_28235 l2cap_mtu vardecl_core.c 0 28235 &enable_so_mux_device_request_fndecl_28235
158709 +enable_so_loop_end_patch_info_28242 loop_end patch_info 0 28242 NULL
158710 +enable_so_ino_bfs_dirent_28246 ino bfs_dirent 0 28246 NULL
158711 +enable_so_tcpmss_mangle_packet_fndecl_28248 tcpmss_mangle_packet fndecl 0 28248 NULL
158712 +enable_so_rcv_fr_sz_fcoe_rdev_entry_28249 rcv_fr_sz fcoe_rdev_entry 0 28249 NULL
158713 +enable_so_ip_make_skb_fndecl_28250 ip_make_skb fndecl 6-5 28250 NULL
158714 +enable_so_ea_set_i_fndecl_28261 ea_set_i fndecl 5 28261 NULL nohasharray
158715 +enable_so_count_e1000_tx_ring_28261 count e1000_tx_ring 0 28261 &enable_so_ea_set_i_fndecl_28261
158716 +enable_so_of_setup_earlycon_fndecl_28264 of_setup_earlycon fndecl 1 28264 NULL
158717 +enable_so_ucs2_strlen_fndecl_28265 ucs2_strlen fndecl 0 28265 NULL
158718 +enable_so_x1_osd_cmd_s_28266 x1 osd_cmd_s 0 28266 NULL
158719 +enable_so_pwr_disable_ps_read_fndecl_28267 pwr_disable_ps_read fndecl 3 28267 NULL
158720 +enable_so_mt7601u_rx_process_seg_fndecl_28268 mt7601u_rx_process_seg fndecl 3 28268 NULL
158721 +enable_so_needed_headroom_net_device_28272 needed_headroom net_device 0 28272 NULL
158722 +enable_so_rxbufsize_dma_info_28275 rxbufsize dma_info 0 28275 NULL
158723 +enable_so_mtu_tipc_bearer_28279 mtu tipc_bearer 0 28279 NULL
158724 +enable_so_pio2k_bufbase_qib_devdata_28282 pio2k_bufbase qib_devdata 0 28282 NULL nohasharray
158725 +enable_so_buf_start_hi_rx_buf_desc_28282 buf_start_hi rx_buf_desc 0 28282 &enable_so_pio2k_bufbase_qib_devdata_28282 nohasharray
158726 +enable_so_reg_start_ath6kl_diag_reg_info_28282 reg_start ath6kl_diag_reg_info 0 28282 &enable_so_buf_start_hi_rx_buf_desc_28282
158727 +enable_so_mem_cgroup_try_charge_fndecl_28289 mem_cgroup_try_charge fndecl 0 28289 NULL
158728 +enable_so_read32_ssb_bus_ops_28292 read32 ssb_bus_ops 0 28292 NULL
158729 +enable_so_mmc_ext_csd_read_fndecl_28294 mmc_ext_csd_read fndecl 3 28294 NULL
158730 +enable_so_save_total_len_pch_spi_data_28296 save_total_len pch_spi_data 0 28296 NULL
158731 +enable_so_rxsupport_size_ipg_nic_private_28297 rxsupport_size ipg_nic_private 0 28297 NULL nohasharray
158732 +enable_so_data_pad_ubi_vtbl_record_28297 data_pad ubi_vtbl_record 0 28297 &enable_so_rxsupport_size_ipg_nic_private_28297
158733 +enable_so_byte_count_il_rx_phy_res_28304 byte_count il_rx_phy_res 0 28304 NULL
158734 +enable_so_flags2_psb_s_28305 flags2 psb_s 0 28305 NULL
158735 +enable_so_sst25l_read_fndecl_28315 sst25l_read fndecl 3 28315 NULL
158736 +enable_so_comedi_read_fndecl_28316 comedi_read fndecl 3 28316 NULL
158737 +enable_so_npages_mlx4_buf_28321 npages mlx4_buf 0 28321 NULL
158738 +enable_so_version_tclass_flow_ib_grh_28322 version_tclass_flow ib_grh 0 28322 NULL
158739 +enable_so_set_video_mode_Kiara_fndecl_28325 set_video_mode_Kiara fndecl 4 28325 NULL
158740 +enable_so__iwl_dbgfs_disable_power_off_write_fndecl_28328 _iwl_dbgfs_disable_power_off_write fndecl 3 28328 NULL nohasharray
158741 +enable_so_raw_descs_length_ffs_data_28328 raw_descs_length ffs_data 0 28328 &enable_so__iwl_dbgfs_disable_power_off_write_fndecl_28328
158742 +enable_so_max_segment_size_brcmf_sdio_dev_28330 max_segment_size brcmf_sdio_dev 0 28330 NULL nohasharray
158743 +enable_so_size_videobuf_dmabuf_28330 size videobuf_dmabuf 0 28330 &enable_so_max_segment_size_brcmf_sdio_dev_28330
158744 +enable_so_asix_read_cmd_fndecl_28334 asix_read_cmd fndecl 5 28334 NULL
158745 +enable_so_mwifiex_debug_mask_read_fndecl_28341 mwifiex_debug_mask_read fndecl 3 28341 NULL
158746 +enable_so_ie_length_ndis_80211_bssid_ex_28346 ie_length ndis_80211_bssid_ex 0 28346 NULL
158747 +enable_so_irq_domain_alloc_irqs_recursive_fndecl_28349 irq_domain_alloc_irqs_recursive fndecl 0 28349 NULL
158748 +enable_so_fnic_trace_ctrl_write_fndecl_28350 fnic_trace_ctrl_write fndecl 3 28350 NULL
158749 +enable_so_j_blocksize_journal_s_28358 j_blocksize journal_s 0 28358 NULL nohasharray
158750 +enable_so_c4iw_reg_user_mr_fndecl_28358 c4iw_reg_user_mr fndecl 2-3 28358 &enable_so_j_blocksize_journal_s_28358
158751 +enable_so_pmcraid_notify_aen_fndecl_28361 pmcraid_notify_aen fndecl 3 28361 NULL
158752 +enable_so_carl9170_rx_fndecl_28363 carl9170_rx fndecl 3 28363 NULL
158753 +enable_so_kvm_lapic_enable_pv_eoi_fndecl_28370 kvm_lapic_enable_pv_eoi fndecl 2 28370 NULL
158754 +enable_so_snd_emu10k1_fx8010_tram_setup_fndecl_28371 snd_emu10k1_fx8010_tram_setup fndecl 2 28371 NULL
158755 +enable_so_hostap_80211_get_hdrlen_fndecl_28372 hostap_80211_get_hdrlen fndecl 0 28372 NULL nohasharray
158756 +enable_so_count_atl1e_tx_ring_28372 count atl1e_tx_ring 0 28372 &enable_so_hostap_80211_get_hdrlen_fndecl_28372
158757 +enable_so_usbat_multiple_write_fndecl_28375 usbat_multiple_write fndecl 4 28375 NULL nohasharray
158758 +enable_so_init_tid_tabs_fndecl_28375 init_tid_tabs fndecl 4-3-2 28375 &enable_so_usbat_multiple_write_fndecl_28375
158759 +enable_so_bio_integrity_trim_fndecl_28376 bio_integrity_trim fndecl 2-3 28376 NULL
158760 +enable_so_simple_attr_write_fndecl_28383 simple_attr_write fndecl 3 28383 NULL
158761 +enable_so_dst_uffdio_copy_28391 dst uffdio_copy 0 28391 NULL
158762 +enable_so___bpf_fill_ja_fndecl_28393 __bpf_fill_ja fndecl 2 28393 NULL
158763 +enable_so_interrupt_in_endpointAddress_usb_serial_port_28398 interrupt_in_endpointAddress usb_serial_port 0 28398 NULL
158764 +enable_so_lpfc_idiag_mbxacc_get_setup_fndecl_28401 lpfc_idiag_mbxacc_get_setup fndecl 0 28401 NULL
158765 +enable_so_cxd2820r_rd_regs_fndecl_28402 cxd2820r_rd_regs fndecl 4 28402 NULL nohasharray
158766 +enable_so_il4965_stats_flag_fndecl_28402 il4965_stats_flag fndecl 0 28402 &enable_so_cxd2820r_rd_regs_fndecl_28402
158767 +enable_so_channel_bc_state_28411 channel bc_state 0 28411 NULL
158768 +enable_so_sd_major_fndecl_28413 sd_major fndecl 0-1 28413 NULL
158769 +enable_so_xfs_inumbers_fmt_fndecl_28418 xfs_inumbers_fmt fndecl 3 28418 NULL nohasharray
158770 +enable_so___inet_insert_ifa_fndecl_28418 __inet_insert_ifa fndecl 0 28418 &enable_so_xfs_inumbers_fmt_fndecl_28418
158771 +enable_so_dma_size_cx25821_audio_dev_28423 dma_size cx25821_audio_dev 0 28423 NULL
158772 +enable_so_afs_fs_store_data64_fndecl_28429 afs_fs_store_data64 fndecl 5-6 28429 NULL
158773 +enable_so_hpi_init_messageV1_fndecl_28435 hpi_init_messageV1 fndecl 2 28435 NULL
158774 +enable_so_jfs_issue_discard_fndecl_28440 jfs_issue_discard fndecl 3-2 28440 NULL
158775 +enable_so_sb_agcount_xfs_sb_28441 sb_agcount xfs_sb 0 28441 NULL nohasharray
158776 +enable_so_mgmt_event_fndecl_28441 mgmt_event fndecl 4 28441 &enable_so_sb_agcount_xfs_sb_28441
158777 +enable_so_iscsi_iser_session_create_fndecl_28447 iscsi_iser_session_create fndecl 3 28447 NULL
158778 +enable_so_nilfs_bmap_do_insert_fndecl_28453 nilfs_bmap_do_insert fndecl 0 28453 NULL
158779 +enable_so_stripe_size_bcache_device_28454 stripe_size bcache_device 0 28454 NULL
158780 +enable_so_mi_entries_per_block_nilfs_mdt_info_28458 mi_entries_per_block nilfs_mdt_info 0 28458 NULL
158781 +enable_so_irda_connect_confirm_fndecl_28460 irda_connect_confirm fndecl 4-5 28460 NULL
158782 +enable_so_pc87360_device_add_fndecl_28461 pc87360_device_add fndecl 1 28461 NULL
158783 +enable_so_s_alt_pkey_index_qib_qp_28462 s_alt_pkey_index qib_qp 0 28462 NULL
158784 +enable_so_SyS_add_key_fndecl_28465 SyS_add_key fndecl 4 28465 NULL
158785 +enable_so_md_offset_drbd_md_28466 md_offset drbd_md 0 28466 NULL
158786 +enable_so_data_out_size_mpt3_ioctl_command_28472 data_out_size mpt3_ioctl_command 0 28472 NULL
158787 +enable_so_osd_upper_vardecl_ivtvfb_c_28473 osd_upper vardecl_ivtvfb.c 0 28473 NULL nohasharray
158788 +enable_so_ath6kl_wmi_add_wow_pattern_cmd_fndecl_28473 ath6kl_wmi_add_wow_pattern_cmd fndecl 4-2 28473 &enable_so_osd_upper_vardecl_ivtvfb_c_28473
158789 +enable_so_spidev_ioctl_fndecl_28477 spidev_ioctl fndecl 2 28477 NULL
158790 +enable_so_pa_pstart_ext4_prealloc_space_28478 pa_pstart ext4_prealloc_space 0 28478 NULL nohasharray
158791 +enable_so_mgslpc_device_count_vardecl_synclink_cs_c_28478 mgslpc_device_count vardecl_synclink_cs.c 0 28478 &enable_so_pa_pstart_ext4_prealloc_space_28478
158792 +enable_so_block_size_sd_28480 block_size sd 0 28480 NULL
158793 +enable_so_rbuf_fill_level_slgt_info_28481 rbuf_fill_level slgt_info 0 28481 NULL
158794 +enable_so_amdgpu_align_pitch_fndecl_28483 amdgpu_align_pitch fndecl 0-2 28483 NULL
158795 +enable_so_service_map_len_wmi_svc_rdy_ev_arg_28484 service_map_len wmi_svc_rdy_ev_arg 0 28484 NULL
158796 +enable_so_csa_nrclists_cb_sequenceargs_28491 csa_nrclists cb_sequenceargs 0 28491 NULL
158797 +enable_so_wl1271_sdio_set_block_size_fndecl_28494 wl1271_sdio_set_block_size fndecl 2 28494 NULL
158798 +enable_so_get_leb_cnt_fndecl_28495 get_leb_cnt fndecl 0-2 28495 NULL
158799 +enable_so_len_sctp_tsnmap_28496 len sctp_tsnmap 0 28496 NULL
158800 +enable_so_xfs_rtallocate_extent_exact_fndecl_28498 xfs_rtallocate_extent_exact fndecl 3-5-9 28498 NULL nohasharray
158801 +enable_so_num_sgpgs_bfa_iocfc_drvcfg_s_28498 num_sgpgs bfa_iocfc_drvcfg_s 0 28498 &enable_so_xfs_rtallocate_extent_exact_fndecl_28498
158802 +enable_so_num_vmdq_msix_i40e_pf_28501 num_vmdq_msix i40e_pf 0 28501 NULL
158803 +enable_so_read_file_operations_28504 read file_operations 0 28504 NULL
158804 +enable_so_dln2_send_wait_fndecl_28510 dln2_send_wait fndecl 0 28510 NULL
158805 +enable_so_fll_fout_wm8993_priv_28516 fll_fout wm8993_priv 0 28516 NULL
158806 +enable_so_xen_add_extra_mem_fndecl_28519 xen_add_extra_mem fndecl 1-2 28519 NULL
158807 +enable_so_pkey_index_ib_qp_attr_28520 pkey_index ib_qp_attr 0 28520 NULL
158808 +enable_so_rds_pages_in_vec_fndecl_28521 rds_pages_in_vec fndecl 0 28521 NULL
158809 +enable_so_free_tind_blocks_fndecl_28525 free_tind_blocks fndecl 3 28525 NULL
158810 +enable_so_src_width_snd_pcm_plugin_28529 src_width snd_pcm_plugin 0 28529 NULL
158811 +enable_so_max_rds_rings_qlcnic_adapter_28536 max_rds_rings qlcnic_adapter 0 28536 NULL
158812 +enable_so_ext4_bread_fndecl_28538 ext4_bread fndecl 3 28538 NULL
158813 +enable_so_btcx_screen_clips_fndecl_28540 btcx_screen_clips fndecl 2-1-0-5 28540 NULL
158814 +enable_so_get_virtual_node_size_fndecl_28543 get_virtual_node_size fndecl 0 28543 NULL
158815 +enable_so_md_minor_mdp_superblock_s_28551 md_minor mdp_superblock_s 0 28551 NULL
158816 +enable_so_raw_cmd_copyin_fndecl_28554 raw_cmd_copyin fndecl 0 28554 NULL
158817 +enable_so_len_s3fwrn5_fw_header_28556 len s3fwrn5_fw_header 0 28556 NULL
158818 +enable_so_mwifiex_send_delba_fndecl_28557 mwifiex_send_delba fndecl 2 28557 NULL
158819 +enable_so_ci_ll_init_fndecl_28561 ci_ll_init fndecl 3 28561 NULL nohasharray
158820 +enable_so_num_pads_uvc_entity_28561 num_pads uvc_entity 0 28561 &enable_so_ci_ll_init_fndecl_28561
158821 +enable_so_PRO_RATE_DEFAULT_vardecl_ice1712_c_28563 PRO_RATE_DEFAULT vardecl_ice1712.c 0 28563 NULL
158822 +enable_so_wil_write_back_fndecl_28568 wil_write_back fndecl 3 28568 NULL
158823 +enable_so_nvme_npages_fndecl_28569 nvme_npages fndecl 0-1 28569 NULL
158824 +enable_so_out_max_chans_snd_card_asihpi_28574 out_max_chans snd_card_asihpi 0 28574 NULL nohasharray
158825 +enable_so_ufx_i2c_wait_busy_fndecl_28574 ufx_i2c_wait_busy fndecl 0 28574 &enable_so_out_max_chans_snd_card_asihpi_28574
158826 +enable_so_charcount_console_font_op_28585 charcount console_font_op 0 28585 NULL
158827 +enable_so__iwl_dbgfs_ss_force_write_fndecl_28587 _iwl_dbgfs_ss_force_write fndecl 3 28587 NULL
158828 +enable_so_uhci_map_status_fndecl_28591 uhci_map_status fndecl 0 28591 NULL
158829 +enable_so_icsk_pmtu_cookie_inet_connection_sock_28598 icsk_pmtu_cookie inet_connection_sock 0 28598 NULL
158830 +enable_so_n_devs_pci_id_table_28599 n_devs pci_id_table 0 28599 NULL nohasharray
158831 +enable_so_menu_count_uvc_xu_control_mapping_28599 menu_count uvc_xu_control_mapping 0 28599 &enable_so_n_devs_pci_id_table_28599 nohasharray
158832 +enable_so_bm_status_write_fndecl_28599 bm_status_write fndecl 3 28599 &enable_so_menu_count_uvc_xu_control_mapping_28599
158833 +enable_so_status_smsc9420_dma_desc_28600 status smsc9420_dma_desc 0 28600 NULL
158834 +enable_so_stride_usX2Ydev_28605 stride usX2Ydev 0 28605 NULL
158835 +enable_so_ubifs_scan_a_node_fndecl_28611 ubifs_scan_a_node fndecl 0 28611 NULL nohasharray
158836 +enable_so_hmac_id_sctp_authhdr_28611 hmac_id sctp_authhdr 0 28611 &enable_so_ubifs_scan_a_node_fndecl_28611
158837 +enable_so_msb_erase_block_fndecl_28612 msb_erase_block fndecl 0-2 28612 NULL
158838 +enable_so_ccmp_encrypt_skb_fndecl_28613 ccmp_encrypt_skb fndecl 3 28613 NULL
158839 +enable_so_bytesused_v4l2_plane_28616 bytesused v4l2_plane 0 28616 NULL nohasharray
158840 +enable_so_gru_assign_context_number_fndecl_28616 gru_assign_context_number fndecl 0 28616 &enable_so_bytesused_v4l2_plane_28616
158841 +enable_so_subsystem_filter_write_fndecl_28621 subsystem_filter_write fndecl 3 28621 NULL
158842 +enable_so_hfi1_rcvarr_split_vardecl_init_c_28624 hfi1_rcvarr_split vardecl_init.c 0 28624 NULL
158843 +enable_so_s_inode_size_ext4_sb_info_28625 s_inode_size ext4_sb_info 0 28625 NULL
158844 +enable_so_cdc_ncm_min_dgram_size_fndecl_28632 cdc_ncm_min_dgram_size fndecl 0 28632 NULL nohasharray
158845 +enable_so_max_indicator_intensity_adp1653_platform_data_28632 max_indicator_intensity adp1653_platform_data 0 28632 &enable_so_cdc_ncm_min_dgram_size_fndecl_28632 nohasharray
158846 +enable_so__get_block_create_0_fndecl_28632 _get_block_create_0 fndecl 2 28632 &enable_so_max_indicator_intensity_adp1653_platform_data_28632
158847 +enable_so_drbd_recv_all_fndecl_28633 drbd_recv_all fndecl 3 28633 NULL nohasharray
158848 +enable_so_key_size_ethtool_rxfh_28633 key_size ethtool_rxfh 0 28633 &enable_so_drbd_recv_all_fndecl_28633
158849 +enable_so_log_max_len_server_hdr_28634 log_max_len server_hdr 0 28634 NULL
158850 +enable_so_device_count_vardecl_mts64_c_28635 device_count vardecl_mts64.c 0 28635 NULL
158851 +enable_so_usb_stream_new_fndecl_28646 usb_stream_new fndecl 6-8-5-7-3-4 28646 NULL nohasharray
158852 +enable_so_ocfs2_write_begin_fndecl_28646 ocfs2_write_begin fndecl 3 28646 &enable_so_usb_stream_new_fndecl_28646
158853 +enable_so_cw1200_spi_memcpy_fromio_fndecl_28649 cw1200_spi_memcpy_fromio fndecl 4 28649 NULL
158854 +enable_so_alt_port_num_ib_qp_attr_28655 alt_port_num ib_qp_attr 0 28655 NULL nohasharray
158855 +enable_so_cur_offset_drm_dp_sideband_msg_tx_28655 cur_offset drm_dp_sideband_msg_tx 0 28655 &enable_so_alt_port_num_ib_qp_attr_28655
158856 +enable_so_alloc_size_chunk_28657 alloc_size chunk 0 28657 NULL
158857 +enable_so_ipg_nic_change_mtu_fndecl_28665 ipg_nic_change_mtu fndecl 2 28665 NULL
158858 +enable_so_bfad_iocmd_lunmask_fndecl_28667 bfad_iocmd_lunmask fndecl 0 28667 NULL
158859 +enable_so_x25_create_facilities_fndecl_28684 x25_create_facilities fndecl 0 28684 NULL
158860 +enable_so_fill_isoc_urb_fndecl_28690 fill_isoc_urb fndecl 6-5-3 28690 NULL
158861 +enable_so_stolen_size_psb_gtt_28693 stolen_size psb_gtt 0 28693 NULL
158862 +enable_so_offset_cache_reader_28697 offset cache_reader 0 28697 NULL
158863 +enable_so_register_size_fe_priv_28698 register_size fe_priv 0 28698 NULL
158864 +enable_so_bclean_fndecl_28699 bclean fndecl 3 28699 NULL
158865 +enable_so_data_len_rndis_data_hdr_28701 data_len rndis_data_hdr 0 28701 NULL
158866 +enable_so_cw_bmove_fndecl_28704 cw_bmove fndecl 7-5-3-6-8-4 28704 NULL nohasharray
158867 +enable_so_size_fuse_notify_store_out_28704 size fuse_notify_store_out 0 28704 &enable_so_cw_bmove_fndecl_28704
158868 +enable_so_CIFSSMBWrite2_fndecl_28705 CIFSSMBWrite2 fndecl 5 28705 NULL
158869 +enable_so_mlx4_init_cmpt_table_fndecl_28706 mlx4_init_cmpt_table fndecl 3 28706 NULL
158870 +enable_so_v9fs_xattr_get_acl_fndecl_28714 v9fs_xattr_get_acl fndecl 4 28714 NULL
158871 +enable_so_lpfc_idiag_ctlacc_write_fndecl_28715 lpfc_idiag_ctlacc_write fndecl 3 28715 NULL
158872 +enable_so_nilfs_bmap_lookup_contig_fndecl_28717 nilfs_bmap_lookup_contig fndecl 0 28717 NULL nohasharray
158873 +enable_so_oprofilefs_ulong_to_user_fndecl_28717 oprofilefs_ulong_to_user fndecl 3 28717 &enable_so_nilfs_bmap_lookup_contig_fndecl_28717
158874 +enable_so_phys_smscore_buffer_t_28719 phys smscore_buffer_t 0 28719 NULL nohasharray
158875 +enable_so_start_fjes_hw_resource_28719 start fjes_hw_resource 0 28719 &enable_so_phys_smscore_buffer_t_28719
158876 +enable_so_getexposure_fndecl_28720 getexposure fndecl 0 28720 NULL nohasharray
158877 +enable_so_radix_tree_extend_fndecl_28720 radix_tree_extend fndecl 0 28720 &enable_so_getexposure_fndecl_28720
158878 +enable_so_xfs_rtcheck_alloc_range_fndecl_28722 xfs_rtcheck_alloc_range fndecl 3 28722 NULL
158879 +enable_so_note_last_dentry_fndecl_28724 note_last_dentry fndecl 4-3 28724 NULL
158880 +enable_so_skb_cow_data_fndecl_28734 skb_cow_data fndecl 0 28734 NULL
158881 +enable_so_num_pports_qib_devdata_28736 num_pports qib_devdata 0 28736 NULL
158882 +enable_so_size_mspro_sys_attr_28742 size mspro_sys_attr 0 28742 NULL
158883 +enable_so_batadv_iv_ogm_orig_del_if_fndecl_28743 batadv_iv_ogm_orig_del_if fndecl 2 28743 NULL
158884 +enable_so_ns_pseg_offset_the_nilfs_28744 ns_pseg_offset the_nilfs 0 28744 NULL
158885 +enable_so_batadv_iv_ogm_orig_add_if_fndecl_28753 batadv_iv_ogm_orig_add_if fndecl 2 28753 NULL
158886 +enable_so_src_h_yuv_frame_info_28759 src_h yuv_frame_info 0 28759 NULL
158887 +enable_so_fw_device_op_ioctl_fndecl_28760 fw_device_op_ioctl fndecl 2 28760 NULL
158888 +enable_so_enc28j60_packet_write_fndecl_28762 enc28j60_packet_write fndecl 2 28762 NULL
158889 +enable_so_ncp_write_kernel_fndecl_28776 ncp_write_kernel fndecl 4 28776 NULL
158890 +enable_so_snic_print_desc_fndecl_28784 snic_print_desc fndecl 3 28784 NULL
158891 +enable_so_C_SYSC_migrate_pages_fndecl_28785 C_SYSC_migrate_pages fndecl 2 28785 NULL
158892 +enable_so_tcp_parse_fastopen_option_fndecl_28793 tcp_parse_fastopen_option fndecl 1 28793 NULL
158893 +enable_so_fill_swm_input_fndecl_28799 fill_swm_input fndecl 0 28799 NULL
158894 +enable_so_psbfb_alloc_fndecl_28804 psbfb_alloc fndecl 2 28804 NULL
158895 +enable_so_ext4_nfs_get_inode_fndecl_28806 ext4_nfs_get_inode fndecl 2 28806 NULL nohasharray
158896 +enable_so_items_max_vxge_hw_mempool_28806 items_max vxge_hw_mempool 0 28806 &enable_so_ext4_nfs_get_inode_fndecl_28806 nohasharray
158897 +enable_so_brcmf_fil_bsscfg_data_set_fndecl_28806 brcmf_fil_bsscfg_data_set fndecl 4 28806 &enable_so_items_max_vxge_hw_mempool_28806
158898 +enable_so_e820_remove_range_fndecl_28810 e820_remove_range fndecl 1-2 28810 NULL nohasharray
158899 +enable_so_ide_queue_pc_tail_fndecl_28810 ide_queue_pc_tail fndecl 5 28810 &enable_so_e820_remove_range_fndecl_28810
158900 +enable_so_sisusb_send_bridge_packet_fndecl_28818 sisusb_send_bridge_packet fndecl 2 28818 NULL
158901 +enable_so_fifo_size_s3c_hsotg_ep_28821 fifo_size s3c_hsotg_ep 0 28821 NULL
158902 +enable_so_ceph_build_auth_fndecl_28825 ceph_build_auth fndecl 0 28825 NULL
158903 +enable_so_sdio_memcpy_toio_fndecl_28828 sdio_memcpy_toio fndecl 4 28828 NULL
158904 +enable_so_vram_end_radeon_mc_28831 vram_end radeon_mc 0 28831 NULL
158905 +enable_so_right_qxl_urect_28833 right qxl_urect 0 28833 NULL nohasharray
158906 +enable_so_ivtv_udma_get_page_info_fndecl_28833 ivtv_udma_get_page_info fndecl 2-3 28833 &enable_so_right_qxl_urect_28833
158907 +enable_so_dm_table_add_target_fndecl_28838 dm_table_add_target fndecl 4-3 28838 NULL
158908 +enable_so_dest_qp_num_ib_qp_attr_28844 dest_qp_num ib_qp_attr 0 28844 NULL
158909 +enable_so_sctp_setsockopt_hmac_ident_fndecl_28852 sctp_setsockopt_hmac_ident fndecl 3 28852 NULL
158910 +enable_so_dsp_buffer_alloc_fndecl_28855 dsp_buffer_alloc fndecl 2 28855 NULL
158911 +enable_so_split_fndecl_28856 split fndecl 2 28856 NULL
158912 +enable_so_snd_ctl_elem_user_tlv_fndecl_28860 snd_ctl_elem_user_tlv fndecl 3 28860 NULL
158913 +enable_so_mt9t031_set_params_fndecl_28862 mt9t031_set_params fndecl 4-3 28862 NULL
158914 +enable_so_tx_pending_ethtool_ringparam_28864 tx_pending ethtool_ringparam 0 28864 NULL
158915 +enable_so_ie_length_brcmf_bss_info_le_28867 ie_length brcmf_bss_info_le 0 28867 NULL
158916 +enable_so_usb_stor_access_xfer_buf_fndecl_28868 usb_stor_access_xfer_buf fndecl 0-2 28868 NULL
158917 +enable_so_i2c_master_recv_fndecl_28869 i2c_master_recv fndecl 3-0 28869 NULL
158918 +enable_so_ep_out_mcs_cb_28872 ep_out mcs_cb 0 28872 NULL nohasharray
158919 +enable_so_receive_new_fndecl_28872 receive_new fndecl 3 28872 &enable_so_ep_out_mcs_cb_28872
158920 +enable_so_TupleOffset_tuple_t_28876 TupleOffset tuple_t 0 28876 NULL
158921 +enable_so_rx_win_size_mwifiex_ie_types_btcoex_aggr_win_size_28878 rx_win_size mwifiex_ie_types_btcoex_aggr_win_size 0 28878 NULL
158922 +enable_so_zlib_inflateInit2_fndecl_28887 zlib_inflateInit2 fndecl 2 28887 NULL
158923 +enable_so_request_len_bsg_job_28889 request_len bsg_job 0 28889 NULL
158924 +enable_so_map_count_mm_struct_28894 map_count mm_struct 0 28894 NULL
158925 +enable_so_nci_set_config_fndecl_28899 nci_set_config fndecl 3 28899 NULL
158926 +enable_so_t_elist_cb_state_28900 t elist_cb_state 0 28900 NULL nohasharray
158927 +enable_so_capi_major_vardecl_capi_c_28900 capi_major vardecl_capi.c 0 28900 &enable_so_t_elist_cb_state_28900
158928 +enable_so_ss_in_channels_hdspm_28903 ss_in_channels hdspm 0 28903 NULL nohasharray
158929 +enable_so_flags_read_fndecl_28903 flags_read fndecl 3 28903 &enable_so_ss_in_channels_hdspm_28903
158930 +enable_so_ngpios_sx150x_device_data_28905 ngpios sx150x_device_data 0 28905 NULL
158931 +enable_so_ieee80211_get_num_supported_channels_fndecl_28907 ieee80211_get_num_supported_channels fndecl 0 28907 NULL
158932 +enable_so_stat_rate_mlx4_av_28909 stat_rate mlx4_av 0 28909 NULL
158933 +enable_so_usb_pipe_handle_ath6kl_usb_pipe_28910 usb_pipe_handle ath6kl_usb_pipe 0 28910 NULL
158934 +enable_so_hslen_vardecl_matroxfb_base_c_28914 hslen vardecl_matroxfb_base.c 0 28914 NULL
158935 +enable_so_port_c67x00_urb_priv_28917 port c67x00_urb_priv 0 28917 NULL
158936 +enable_so_iwl_dbgfs_qos_read_fndecl_28922 iwl_dbgfs_qos_read fndecl 3 28922 NULL nohasharray
158937 +enable_so_c_ssize_f_uac2_opts_28922 c_ssize f_uac2_opts 0 28922 &enable_so_iwl_dbgfs_qos_read_fndecl_28922
158938 +enable_so_suspend_nvs_register_fndecl_28923 suspend_nvs_register fndecl 2-1 28923 NULL
158939 +enable_so_tegra_sflash_start_cpu_based_transfer_fndecl_28927 tegra_sflash_start_cpu_based_transfer fndecl 0 28927 NULL
158940 +enable_so_block_hfs_extent_28930 block hfs_extent 0 28930 NULL
158941 +enable_so_rpcrdma_count_chunks_fndecl_28931 rpcrdma_count_chunks fndecl 0 28931 NULL
158942 +enable_so_usbat_write_block_fndecl_28938 usbat_write_block fndecl 4-6 28938 NULL
158943 +enable_so_alsa_index_vardecl_thinkpad_acpi_c_28952 alsa_index vardecl_thinkpad_acpi.c 0 28952 NULL
158944 +enable_so_ath6kl_power_params_write_fndecl_28953 ath6kl_power_params_write fndecl 3 28953 NULL
158945 +enable_so_gb_len_pn533_28959 gb_len pn533 0 28959 NULL
158946 +enable_so_hpfs_alloc_anode_fndecl_28960 hpfs_alloc_anode fndecl 2 28960 NULL
158947 +enable_so_usb_stor_bulk_transfer_buf_fndecl_28961 usb_stor_bulk_transfer_buf fndecl 4-2 28961 NULL
158948 +enable_so_split_vma_fndecl_28963 split_vma fndecl 3 28963 NULL
158949 +enable_so_tcp_send_rcvq_fndecl_28967 tcp_send_rcvq fndecl 3 28967 NULL nohasharray
158950 +enable_so_intel_mid_serial_setup_fndecl_28967 intel_mid_serial_setup fndecl 4 28967 &enable_so_tcp_send_rcvq_fndecl_28967
158951 +enable_so_iwl_dbgfs_ss_force_read_fndecl_28968 iwl_dbgfs_ss_force_read fndecl 3 28968 NULL
158952 +enable_so_ath6kl_wmi_set_wow_mode_cmd_fndecl_28969 ath6kl_wmi_set_wow_mode_cmd fndecl 2 28969 NULL
158953 +enable_so_sctp_transport_update_pmtu_fndecl_28973 sctp_transport_update_pmtu fndecl 3 28973 NULL
158954 +enable_so_syncmaxsize_snd_usb_endpoint_28987 syncmaxsize snd_usb_endpoint 0 28987 NULL
158955 +enable_so_aper_size_agp_kern_info_28990 aper_size agp_kern_info 0 28990 NULL
158956 +enable_so_klen_WepKeyRid_28997 klen WepKeyRid 0 28997 NULL
158957 +enable_so_ext4_get_inline_size_fndecl_28998 ext4_get_inline_size fndecl 0 28998 NULL
158958 +enable_so_handle_unit_fndecl_29000 handle_unit fndecl 0-1 29000 NULL nohasharray
158959 +enable_so_prio_io_fndecl_29000 prio_io fndecl 2 29000 &enable_so_handle_unit_fndecl_29000 nohasharray
158960 +enable_so_rawsize_nd_namespace_label_29000 rawsize nd_namespace_label 0 29000 &enable_so_prio_io_fndecl_29000
158961 +enable_so_len_p54p_desc_29001 len p54p_desc 0 29001 NULL nohasharray
158962 +enable_so_buf_read_ptr_comedi_async_29001 buf_read_ptr comedi_async 0 29001 &enable_so_len_p54p_desc_29001
158963 +enable_so_nl80211_send_mgmt_fndecl_29002 nl80211_send_mgmt fndecl 7 29002 NULL nohasharray
158964 +enable_so_sel_write_create_fndecl_29002 sel_write_create fndecl 3 29002 &enable_so_nl80211_send_mgmt_fndecl_29002
158965 +enable_so_num_lns_csio_hw_29004 num_lns csio_hw 0 29004 NULL
158966 +enable_so___kfifo_out_peek_fndecl_29010 __kfifo_out_peek fndecl 0-3 29010 NULL nohasharray
158967 +enable_so_construct_key_fndecl_29010 construct_key fndecl 3 29010 &enable_so___kfifo_out_peek_fndecl_29010
158968 +enable_so_ivtvfb_prep_dec_dma_to_device_fndecl_29011 ivtvfb_prep_dec_dma_to_device fndecl 4 29011 NULL
158969 +enable_so_seq_copy_in_user_fndecl_29019 seq_copy_in_user fndecl 3 29019 NULL
158970 +enable_so_sb_dmap_hpfs_sb_info_29020 sb_dmap hpfs_sb_info 0 29020 NULL
158971 +enable_so_j_len_reiserfs_journal_list_29021 j_len reiserfs_journal_list 0 29021 NULL
158972 +enable_so___spi_queued_transfer_fndecl_29024 __spi_queued_transfer fndecl 0 29024 NULL
158973 +enable_so_nft_value_dump_fndecl_29030 nft_value_dump fndecl 3 29030 NULL nohasharray
158974 +enable_so_tcf_register_action_fndecl_29030 tcf_register_action fndecl 2 29030 &enable_so_nft_value_dump_fndecl_29030
158975 +enable_so_at24_read_fndecl_29031 at24_read fndecl 4 29031 NULL
158976 +enable_so_drm_vblank_init_fndecl_29041 drm_vblank_init fndecl 2 29041 NULL
158977 +enable_so_of_get_available_child_count_fndecl_29042 of_get_available_child_count fndecl 0 29042 NULL
158978 +enable_so_batadv_skb_head_push_fndecl_29043 batadv_skb_head_push fndecl 2 29043 NULL
158979 +enable_so_memory_size_kvm_userspace_memory_region_29047 memory_size kvm_userspace_memory_region 0 29047 NULL
158980 +enable_so_qib_get_base_info_fndecl_29050 qib_get_base_info fndecl 3 29050 NULL
158981 +enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056 scsi_debug_max_queue vardecl_scsi_debug.c 0 29056 NULL nohasharray
158982 +enable_so_str_to_user_fndecl_29056 str_to_user fndecl 2 29056 &enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056
158983 +enable_so____alloc_bootmem_fndecl_29057 ___alloc_bootmem fndecl 2-1-3-4 29057 NULL
158984 +enable_so_fbcon_scroll_fndecl_29060 fbcon_scroll fndecl 5 29060 NULL nohasharray
158985 +enable_so_len_wmi_rx_mgmt_info_29060 len wmi_rx_mgmt_info 0 29060 &enable_so_fbcon_scroll_fndecl_29060
158986 +enable_so_use_dmio_fndecl_29065 use_dmio fndecl 3 29065 NULL
158987 +enable_so_adis16480_show_firmware_revision_fndecl_29066 adis16480_show_firmware_revision fndecl 3 29066 NULL
158988 +enable_so_ucFakeEDIDLength__ATOM_FAKE_EDID_PATCH_RECORD_29067 ucFakeEDIDLength _ATOM_FAKE_EDID_PATCH_RECORD 0 29067 NULL
158989 +enable_so_i40e_dbg_command_write_fndecl_29070 i40e_dbg_command_write fndecl 3 29070 NULL
158990 +enable_so_isku_sysfs_read_keys_capslock_fndecl_29075 isku_sysfs_read_keys_capslock fndecl 6 29075 NULL
158991 +enable_so_tse_change_mtu_fndecl_29076 tse_change_mtu fndecl 2 29076 NULL
158992 +enable_so_dev_irnet_write_fndecl_29077 dev_irnet_write fndecl 3 29077 NULL
158993 +enable_so_lprocfs_wr_evict_client_fndecl_29081 lprocfs_wr_evict_client fndecl 3 29081 NULL
158994 +enable_so_ath6kl_wmi_deletekey_cmd_fndecl_29086 ath6kl_wmi_deletekey_cmd fndecl 2 29086 NULL
158995 +enable_so_remote_qpn_mlx4_qp_context_29102 remote_qpn mlx4_qp_context 0 29102 NULL
158996 +enable_so_dlm_lowcomms_get_buffer_fndecl_29111 dlm_lowcomms_get_buffer fndecl 2 29111 NULL
158997 +enable_so_bttv_read_fndecl_29115 bttv_read fndecl 3 29115 NULL
158998 +enable_so_st_nci_probe_fndecl_29121 st_nci_probe fndecl 2 29121 NULL
158999 +enable_so_jfs_iget_fndecl_29122 jfs_iget fndecl 2 29122 NULL
159000 +enable_so_pci_set_power_state_fndecl_29124 pci_set_power_state fndecl 0 29124 NULL nohasharray
159001 +enable_so_sca3000_read_first_n_hw_rb_fndecl_29124 sca3000_read_first_n_hw_rb fndecl 2 29124 &enable_so_pci_set_power_state_fndecl_29124
159002 +enable_so_ioctl_code_usbdevfs_ioctl_29134 ioctl_code usbdevfs_ioctl 0 29134 NULL
159003 +enable_so_max_dump_cnt_ramoops_context_29141 max_dump_cnt ramoops_context 0 29141 NULL
159004 +enable_so_pci_pericom_setup_fndecl_29142 pci_pericom_setup fndecl 4 29142 NULL
159005 +enable_so_y1_virtio_gpu_framebuffer_29147 y1 virtio_gpu_framebuffer 0 29147 NULL
159006 +enable_so_send_bulk_pipe_us_data_29148 send_bulk_pipe us_data 0 29148 NULL
159007 +enable_so_hidp_sock_create_fndecl_29151 hidp_sock_create fndecl 3 29151 NULL
159008 +enable_so_width_usbtv_29152 width usbtv 0 29152 NULL
159009 +enable_so_algorithm_raid_type_29156 algorithm raid_type 0 29156 NULL
159010 +enable_so_kmem_zalloc_fndecl_29157 kmem_zalloc fndecl 1 29157 NULL
159011 +enable_so_W6692B_empty_fifo_fndecl_29159 W6692B_empty_fifo fndecl 2 29159 NULL
159012 +enable_so_md_dump_size_qla_hw_data_29160 md_dump_size qla_hw_data 0 29160 NULL
159013 +enable_so_current_rx_bytes_printer_dev_29165 current_rx_bytes printer_dev 0 29165 NULL
159014 +enable_so_error_bio_list_fndecl_29166 error_bio_list fndecl 2 29166 NULL
159015 +enable_so_surface_height_drm_fb_helper_surface_size_29174 surface_height drm_fb_helper_surface_size 0 29174 NULL
159016 +enable_so_dma_in_streamzap_ir_29180 dma_in streamzap_ir 0 29180 NULL nohasharray
159017 +enable_so_num_segments_acpi_namestring_info_29180 num_segments acpi_namestring_info 0 29180 &enable_so_dma_in_streamzap_ir_29180
159018 +enable_so_vp_try_to_find_vqs_fndecl_29181 vp_try_to_find_vqs fndecl 2 29181 NULL
159019 +enable_so_ieee80211_if_read_user_power_level_fndecl_29185 ieee80211_if_read_user_power_level fndecl 3 29185 NULL
159020 +enable_so_ircomm_control_indication_fndecl_29186 ircomm_control_indication fndecl 3 29186 NULL
159021 +enable_so_release_mem_region_adjustable_fndecl_29187 release_mem_region_adjustable fndecl 3-2 29187 NULL
159022 +enable_so_em28xx_i2c_read_block_fndecl_29188 em28xx_i2c_read_block fndecl 5 29188 NULL
159023 +enable_so_brcmf_config_wowl_pattern_fndecl_29198 brcmf_config_wowl_pattern fndecl 4 29198 NULL
159024 +enable_so_HFC_inw_nodebug_hfc_multi_29199 HFC_inw_nodebug hfc_multi 0 29199 NULL
159025 +enable_so_vcc_sendmsg_fndecl_29205 vcc_sendmsg fndecl 3 29205 NULL
159026 +enable_so_x25_parse_facilities_fndecl_29207 x25_parse_facilities fndecl 0 29207 NULL
159027 +enable_so_ftdi_elan_total_command_size_fndecl_29214 ftdi_elan_total_command_size fndecl 0 29214 NULL
159028 +enable_so_video_rbase_osd_info_29225 video_rbase osd_info 0 29225 NULL
159029 +enable_so_mpx_get_bt_entry_offset_bytes_fndecl_29230 mpx_get_bt_entry_offset_bytes fndecl 0-2 29230 NULL
159030 +enable_so_change_pte_range_fndecl_29232 change_pte_range fndecl 3 29232 NULL
159031 +enable_so_dvb_dmxdev_buffer_write_fndecl_29234 dvb_dmxdev_buffer_write fndecl 3-0 29234 NULL
159032 +enable_so_il4965_ucode_tx_stats_read_fndecl_29235 il4965_ucode_tx_stats_read fndecl 3 29235 NULL
159033 +enable_so_rq_pagesz_smb_rqst_29240 rq_pagesz smb_rqst 0 29240 NULL
159034 +enable_so_sb_dirband_start_hpfs_sb_info_29242 sb_dirband_start hpfs_sb_info 0 29242 NULL
159035 +enable_so_ubifs_recover_log_leb_fndecl_29244 ubifs_recover_log_leb fndecl 3 29244 NULL
159036 +enable_so_ptc_proc_write_fndecl_29247 ptc_proc_write fndecl 3 29247 NULL
159037 +enable_so_sg_pcopy_from_buffer_fndecl_29248 sg_pcopy_from_buffer fndecl 5-4 29248 NULL
159038 +enable_so_offset_rbd_obj_request_29253 offset rbd_obj_request 0 29253 NULL
159039 +enable_so_i_dir_acl_ext2_inode_29264 i_dir_acl ext2_inode 0 29264 NULL
159040 +enable_so_sisusb_lseek_fndecl_29268 sisusb_lseek fndecl 2 29268 NULL nohasharray
159041 +enable_so_maxlen_ctl_table_29268 maxlen ctl_table 0 29268 &enable_so_sisusb_lseek_fndecl_29268
159042 +enable_so_start_block_hfsplus_ext_key_29269 start_block hfsplus_ext_key 0 29269 NULL nohasharray
159043 +enable_so_rtw_malloc2d_fndecl_29269 rtw_malloc2d fndecl 3-2-1 29269 &enable_so_start_block_hfsplus_ext_key_29269
159044 +enable_so_ib_uverbs_open_xrcd_fndecl_29276 ib_uverbs_open_xrcd fndecl 4 29276 NULL
159045 +enable_so_offs_replay_entry_29277 offs replay_entry 0 29277 NULL
159046 +enable_so_convert_dma_width_fndecl_29278 convert_dma_width fndecl 0 29278 NULL
159047 +enable_so_reg_shift_sccnxp_pdata_29283 reg_shift sccnxp_pdata 0 29283 NULL
159048 +enable_so_sh_last_alloc_nilfs_sufile_header_29285 sh_last_alloc nilfs_sufile_header 0 29285 NULL
159049 +enable_so_vmbus_open_fndecl_29289 vmbus_open fndecl 3-2 29289 NULL
159050 +enable_so_data_len_ceph_msg_header_29290 data_len ceph_msg_header 0 29290 NULL nohasharray
159051 +enable_so__iwl_dbgfs_tof_range_req_ext_write_fndecl_29290 _iwl_dbgfs_tof_range_req_ext_write fndecl 3 29290 &enable_so_data_len_ceph_msg_header_29290
159052 +enable_so_btmrvl_sdio_host_to_card_fndecl_29291 btmrvl_sdio_host_to_card fndecl 3 29291 NULL
159053 +enable_so_leb_start_ubi_device_29292 leb_start ubi_device 0 29292 NULL
159054 +enable_so_user_ptr_drm_i915_gem_userptr_29294 user_ptr drm_i915_gem_userptr 0 29294 NULL
159055 +enable_so_msg_size_adf_etr_ring_data_29295 msg_size adf_etr_ring_data 0 29295 NULL
159056 +enable_so_set_powered_fndecl_29298 set_powered fndecl 4 29298 NULL
159057 +enable_so_xfs_handle_to_dentry_fndecl_29300 xfs_handle_to_dentry fndecl 3 29300 NULL
159058 +enable_so_ramoops_init_prz_fndecl_29301 ramoops_init_prz fndecl 5 29301 NULL
159059 +enable_so_mb_find_extent_fndecl_29303 mb_find_extent fndecl 2 29303 NULL
159060 +enable_so_generic_file_llseek_fndecl_29304 generic_file_llseek fndecl 2 29304 NULL
159061 +enable_so_read_w5300_priv_29306 read w5300_priv 0 29306 NULL nohasharray
159062 +enable_so_tail_ivtv_dma_page_info_29306 tail ivtv_dma_page_info 0 29306 &enable_so_read_w5300_priv_29306 nohasharray
159063 +enable_so_rawv6_seticmpfilter_fndecl_29306 rawv6_seticmpfilter fndecl 5-0 29306 &enable_so_tail_ivtv_dma_page_info_29306
159064 +enable_so_vmw_fifo_reserve_fndecl_29310 vmw_fifo_reserve fndecl 2 29310 NULL
159065 +enable_so_soc_mbus_image_size_fndecl_29311 soc_mbus_image_size fndecl 0-3-2 29311 NULL
159066 +enable_so_ddp_make_gl_fndecl_29312 ddp_make_gl fndecl 1 29312 NULL
159067 +enable_so_fnic_reset_stats_write_fndecl_29314 fnic_reset_stats_write fndecl 3 29314 NULL
159068 +enable_so_num_msix_roce_vec_be_adapter_29319 num_msix_roce_vec be_adapter 0 29319 NULL
159069 +enable_so_ip_generic_getfrag_fndecl_29320 ip_generic_getfrag fndecl 4 29320 NULL
159070 +enable_so_compat_do_arpt_set_ctl_fndecl_29323 compat_do_arpt_set_ctl fndecl 4 29323 NULL
159071 +enable_so_gather_pte_stats_fndecl_29329 gather_pte_stats fndecl 2 29329 NULL
159072 +enable_so_scan_map_fndecl_29331 scan_map fndecl 0 29331 NULL
159073 +enable_so_num_sge_ib_recv_wr_29333 num_sge ib_recv_wr 0 29333 NULL
159074 +enable_so_n_reg_rules_ieee80211_regdomain_29334 n_reg_rules ieee80211_regdomain 0 29334 NULL
159075 +enable_so_y_res_vbe_mode_ib_29340 y_res vbe_mode_ib 0 29340 NULL
159076 +enable_so_sctp_icmp_frag_needed_fndecl_29342 sctp_icmp_frag_needed fndecl 4 29342 NULL
159077 +enable_so_sgeCnt_aac_raw_io2_29350 sgeCnt aac_raw_io2 0 29350 NULL
159078 +enable_so_snd_pcm_kernel_ioctl_fndecl_29352 snd_pcm_kernel_ioctl fndecl 0 29352 NULL
159079 +enable_so_alloced_snd_array_29353 alloced snd_array 0 29353 NULL
159080 +enable_so_receive_copy_fndecl_29355 receive_copy fndecl 3 29355 NULL
159081 +enable_so_max_sgs_per_cmd_snic_fw_info_29357 max_sgs_per_cmd snic_fw_info 0 29357 NULL nohasharray
159082 +enable_so_xfs_attr3_leaf_read_fndecl_29357 xfs_attr3_leaf_read fndecl 3 29357 &enable_so_max_sgs_per_cmd_snic_fw_info_29357
159083 +enable_so_fuse_get_req_fndecl_29358 fuse_get_req fndecl 2 29358 NULL nohasharray
159084 +enable_so_aat2870_reg_read_file_fndecl_29358 aat2870_reg_read_file fndecl 3 29358 &enable_so_fuse_get_req_fndecl_29358
159085 +enable_so_s_dat_entry_size_nilfs_super_block_29359 s_dat_entry_size nilfs_super_block 0 29359 NULL
159086 +enable_so_qt2160_read_block_fndecl_29365 qt2160_read_block fndecl 4 29365 NULL
159087 +enable_so_dummy_perform_transfer_fndecl_29372 dummy_perform_transfer fndecl 0-3 29372 NULL nohasharray
159088 +enable_so_tx_ring_size_pxa168_eth_private_29372 tx_ring_size pxa168_eth_private 0 29372 &enable_so_dummy_perform_transfer_fndecl_29372
159089 +enable_so_n_devices_whc_29373 n_devices whc 0 29373 NULL
159090 +enable_so_l2bsize_jfs_sb_info_29377 l2bsize jfs_sb_info 0 29377 NULL nohasharray
159091 +enable_so_count_e1000_rx_ring_29377 count e1000_rx_ring 0 29377 &enable_so_l2bsize_jfs_sb_info_29377
159092 +enable_so_extHint_fndecl_29378 extHint fndecl 2 29378 NULL
159093 +enable_so_next_cluster_fat_boot_fsinfo_29380 next_cluster fat_boot_fsinfo 0 29380 NULL
159094 +enable_so_ib_uverbs_unmarshall_recv_fndecl_29384 ib_uverbs_unmarshall_recv fndecl 5 29384 NULL
159095 +enable_so_reiserfs_get_unused_objectid_fndecl_29387 reiserfs_get_unused_objectid fndecl 0 29387 NULL
159096 +enable_so_write_buffer_size_vardecl_ldusb_c_29393 write_buffer_size vardecl_ldusb.c 0 29393 NULL nohasharray
159097 +enable_so_acpi_id_xenpf_pcpuinfo_29393 acpi_id xenpf_pcpuinfo 0 29393 &enable_so_write_buffer_size_vardecl_ldusb_c_29393
159098 +enable_so_tun_net_change_mtu_fndecl_29398 tun_net_change_mtu fndecl 2 29398 NULL
159099 +enable_so___alloc_bootmem_low_nopanic_fndecl_29400 __alloc_bootmem_low_nopanic fndecl 2-1-3 29400 NULL nohasharray
159100 +enable_so_irq_set_msi_desc_off_fndecl_29400 irq_set_msi_desc_off fndecl 1 29400 &enable_so___alloc_bootmem_low_nopanic_fndecl_29400 nohasharray
159101 +enable_so_octeon_alloc_recv_info_fndecl_29400 octeon_alloc_recv_info fndecl 1 29400 &enable_so_irq_set_msi_desc_off_fndecl_29400
159102 +enable_so_hpfs_map_sector_fndecl_29402 hpfs_map_sector fndecl 2 29402 NULL
159103 +enable_so_udp_gro_complete_fndecl_29407 udp_gro_complete fndecl 2 29407 NULL
159104 +enable_so_sisfb_mem_sis_video_info_29418 sisfb_mem sis_video_info 0 29418 NULL
159105 +enable_so_xop_data_nents_xcopy_op_29423 xop_data_nents xcopy_op 0 29423 NULL
159106 +enable_so_block_extra_size_snd_util_memhdr_29432 block_extra_size snd_util_memhdr 0 29432 NULL
159107 +enable_so_ocfs2_xattr_user_set_fndecl_29433 ocfs2_xattr_user_set fndecl 4 29433 NULL
159108 +enable_so_size_vm_struct_29439 size vm_struct 0 29439 NULL
159109 +enable_so_xfs_attr3_rmt_blocks_fndecl_29445 xfs_attr3_rmt_blocks fndecl 0-2 29445 NULL
159110 +enable_so_ep_in_dln2_dev_29451 ep_in dln2_dev 0 29451 NULL
159111 +enable_so_ebt_buf_add_fndecl_29456 ebt_buf_add fndecl 0-3 29456 NULL
159112 +enable_so_vol_cdev_llseek_fndecl_29458 vol_cdev_llseek fndecl 2 29458 NULL
159113 +enable_so_read_into_pages_cifs_readdata_29473 read_into_pages cifs_readdata 0 29473 NULL
159114 +enable_so_i2c_hid_set_or_send_report_fndecl_29475 i2c_hid_set_or_send_report fndecl 5 29475 NULL
159115 +enable_so_macvtap_put_user_fndecl_29476 macvtap_put_user fndecl 0 29476 NULL
159116 +enable_so_rts51x_read_status_fndecl_29477 rts51x_read_status fndecl 4 29477 NULL
159117 +enable_so_tx_header_len_pn533_frame_ops_29478 tx_header_len pn533_frame_ops 0 29478 NULL nohasharray
159118 +enable_so_sctp_setsockopt_maxseg_fndecl_29478 sctp_setsockopt_maxseg fndecl 3 29478 &enable_so_tx_header_len_pn533_frame_ops_29478 nohasharray
159119 +enable_so_osst_read_back_buffer_and_rewrite_fndecl_29478 osst_read_back_buffer_and_rewrite fndecl 4-3-5 29478 &enable_so_sctp_setsockopt_maxseg_fndecl_29478
159120 +enable_so_ns_last_pseg_the_nilfs_29482 ns_last_pseg the_nilfs 0 29482 NULL
159121 +enable_so_qs_out_channels_hdsp_29483 qs_out_channels hdsp 0 29483 NULL
159122 +enable_so_bsg_request_iscsi_transport_29485 bsg_request iscsi_transport 0 29485 NULL
159123 +enable_so_befs_bt_read_node_fndecl_29490 befs_bt_read_node fndecl 4 29490 NULL nohasharray
159124 +enable_so_gpiochip_add_pin_range_fndecl_29490 gpiochip_add_pin_range fndecl 5 29490 &enable_so_befs_bt_read_node_fndecl_29490 nohasharray
159125 +enable_so_phys_out_snd_efw_29490 phys_out snd_efw 0 29490 &enable_so_gpiochip_add_pin_range_fndecl_29490
159126 +enable_so_mlx4_en_fill_qp_context_fndecl_29495 mlx4_en_fill_qp_context fndecl 8 29495 NULL
159127 +enable_so_pcpu_fc_alloc_fndecl_29497 pcpu_fc_alloc fndecl 3-2 29497 NULL
159128 +enable_so_cx23885_alsa_dma_init_fndecl_29499 cx23885_alsa_dma_init fndecl 2 29499 NULL
159129 +enable_so_raid_disks_mdu_array_info_s_29501 raid_disks mdu_array_info_s 0 29501 NULL
159130 +enable_so_type_length_fru_type_length_29503 type_length fru_type_length 0 29503 NULL
159131 +enable_so_nf_nat_sdp_media_fndecl_29508 nf_nat_sdp_media fndecl 2-9 29508 NULL
159132 +enable_so_ecryptfs_copy_filename_fndecl_29519 ecryptfs_copy_filename fndecl 4 29519 NULL
159133 +enable_so_nritems_btrfs_header_29521 nritems btrfs_header 0 29521 NULL
159134 +enable_so_unix_stream_connect_fndecl_29527 unix_stream_connect fndecl 3 29527 NULL
159135 +enable_so_h4_recv_buf_fndecl_29532 h4_recv_buf fndecl 4 29532 NULL nohasharray
159136 +enable_so_blocks_mmc_ioc_cmd_29532 blocks mmc_ioc_cmd 0 29532 &enable_so_h4_recv_buf_fndecl_29532
159137 +enable_so_nvme_error_status_fndecl_29541 nvme_error_status fndecl 0 29541 NULL
159138 +enable_so_forw_xfs_da3_icnode_hdr_29543 forw xfs_da3_icnode_hdr 0 29543 NULL
159139 +enable_so_ooboffs_mtd_oob_ops_29549 ooboffs mtd_oob_ops 0 29549 NULL
159140 +enable_so_local_max_bio_size_drbd_device_29550 local_max_bio_size drbd_device 0 29550 NULL
159141 +enable_so_zone_mem_ttm_mem_zone_29551 zone_mem ttm_mem_zone 0 29551 NULL
159142 +enable_so_ext4_xattr_trusted_set_fndecl_29556 ext4_xattr_trusted_set fndecl 4 29556 NULL nohasharray
159143 +enable_so_befs_read_lsymlink_fndecl_29556 befs_read_lsymlink fndecl 4 29556 &enable_so_ext4_xattr_trusted_set_fndecl_29556
159144 +enable_so_l2cap_chan_send_fndecl_29557 l2cap_chan_send fndecl 3 29557 NULL
159145 +enable_so_iwl_mvm_send_cmd_pdu_fndecl_29560 iwl_mvm_send_cmd_pdu fndecl 0 29560 NULL
159146 +enable_so_calculate_iosize_fndecl_29562 calculate_iosize fndecl 0-4-5-3-2-1 29562 NULL
159147 +enable_so_ieee80211_rx_bss_info_fndecl_29564 ieee80211_rx_bss_info fndecl 3 29564 NULL
159148 +enable_so_fs_devrw_entry_fndecl_29575 fs_devrw_entry fndecl 3 29575 NULL
159149 +enable_so_addr_drm_amdgpu_gem_userptr_29582 addr drm_amdgpu_gem_userptr 0 29582 NULL
159150 +enable_so_xstateregs_get_fndecl_29585 xstateregs_get fndecl 4 29585 NULL nohasharray
159151 +enable_so_valid_hooks_xt_table_29585 valid_hooks xt_table 0 29585 &enable_so_xstateregs_get_fndecl_29585
159152 +enable_so____mic_ioremap_fndecl_29587 ___mic_ioremap fndecl 3-2 29587 NULL
159153 +enable_so_num_rx_queues_e1000_adapter_29589 num_rx_queues e1000_adapter 0 29589 NULL
159154 +enable_so_max_requests_hptiop_hba_29596 max_requests hptiop_hba 0 29596 NULL
159155 +enable_so_ti_write_fndecl_29599 ti_write fndecl 4 29599 NULL
159156 +enable_so_btmrvl_download_cal_data_fndecl_29602 btmrvl_download_cal_data fndecl 3 29602 NULL
159157 +enable_so_read_b43_debugfs_fops_29607 read b43_debugfs_fops 0 29607 NULL nohasharray
159158 +enable_so_queue_size_snd_timer_user_29607 queue_size snd_timer_user 0 29607 &enable_so_read_b43_debugfs_fops_29607
159159 +enable_so_r1_sync_page_io_fndecl_29608 r1_sync_page_io fndecl 3-2 29608 NULL
159160 +enable_so_width_mxr_block_29613 width mxr_block 0 29613 NULL
159161 +enable_so_efd_group_ext4_free_data_29619 efd_group ext4_free_data 0 29619 NULL
159162 +enable_so_msb_exit_state_machine_fndecl_29622 msb_exit_state_machine fndecl 2 29622 NULL
159163 +enable_so_nr_cells_axp20x_dev_29628 nr_cells axp20x_dev 0 29628 NULL
159164 +enable_so_escd_size_escd_info_struc_29631 escd_size escd_info_struc 0 29631 NULL
159165 +enable_so_vbi_vlen_saa7134_dev_29640 vbi_vlen saa7134_dev 0 29640 NULL nohasharray
159166 +enable_so_nicvf_init_snd_queue_fndecl_29640 nicvf_init_snd_queue fndecl 3 29640 &enable_so_vbi_vlen_saa7134_dev_29640
159167 +enable_so_acpi_rs_set_resource_header_fndecl_29642 acpi_rs_set_resource_header fndecl 2 29642 NULL
159168 +enable_so_vb_bytes_per_frame_cx18_stream_29644 vb_bytes_per_frame cx18_stream 0 29644 NULL
159169 +enable_so_placement_offset_eth_fast_path_rx_cqe_29646 placement_offset eth_fast_path_rx_cqe 0 29646 NULL nohasharray
159170 +enable_so_er_extcount_xfs_ext_irec_29646 er_extcount xfs_ext_irec 0 29646 &enable_so_placement_offset_eth_fast_path_rx_cqe_29646
159171 +enable_so_num_counters_arpt_replace_29649 num_counters arpt_replace 0 29649 NULL nohasharray
159172 +enable_so_reserve_mc_sibling_devs_fndecl_29649 reserve_mc_sibling_devs fndecl 2-3 29649 &enable_so_num_counters_arpt_replace_29649 nohasharray
159173 +enable_so_control_read_fndecl_29649 control_read fndecl 6 29649 &enable_so_reserve_mc_sibling_devs_fndecl_29649
159174 +enable_so_count_vfio_pci_hot_reset_info_29655 count vfio_pci_hot_reset_info 0 29655 NULL
159175 +enable_so_split_node_fndecl_29659 split_node fndecl 0 29659 NULL nohasharray
159176 +enable_so_ls_num_lprocfs_stats_29659 ls_num lprocfs_stats 0 29659 &enable_so_split_node_fndecl_29659
159177 +enable_so_items_per_memblock_vxge_hw_mempool_29661 items_per_memblock vxge_hw_mempool 0 29661 NULL
159178 +enable_so_pci_cfg_space_size_fndecl_29666 pci_cfg_space_size fndecl 0 29666 NULL
159179 +enable_so___ipv4_tun_to_nlattr_fndecl_29678 __ipv4_tun_to_nlattr fndecl 4 29678 NULL nohasharray
159180 +enable_so_num_tagged_esp_lun_data_29678 num_tagged esp_lun_data 0 29678 &enable_so___ipv4_tun_to_nlattr_fndecl_29678
159181 +enable_so_rtsx_usb_seq_read_register_fndecl_29680 rtsx_usb_seq_read_register fndecl 3-0 29680 NULL nohasharray
159182 +enable_so_mon_buff_area_alloc_contiguous_fndecl_29680 mon_buff_area_alloc_contiguous fndecl 2 29680 &enable_so_rtsx_usb_seq_read_register_fndecl_29680
159183 +enable_so_comps_used_isert_device_29683 comps_used isert_device 0 29683 NULL
159184 +enable_so_APP_len_camera_data_29686 APP_len camera_data 0 29686 NULL
159185 +enable_so_i40e_pci_sriov_configure_fndecl_29688 i40e_pci_sriov_configure fndecl 2 29688 NULL
159186 +enable_so_osd_req_write_sg_kern_fndecl_29697 osd_req_write_sg_kern fndecl 5 29697 NULL
159187 +enable_so_qlcnic_pci_sriov_enable_fndecl_29700 qlcnic_pci_sriov_enable fndecl 2 29700 NULL
159188 +enable_so_rds_message_alloc_fndecl_29702 rds_message_alloc fndecl 1 29702 NULL
159189 +enable_so_get_vm_area_caller_fndecl_29708 get_vm_area_caller fndecl 1 29708 NULL
159190 +enable_so_of_flat_dt_is_compatible_fndecl_29709 of_flat_dt_is_compatible fndecl 1 29709 NULL nohasharray
159191 +enable_so_ocfs2_add_refcounted_extent_fndecl_29709 ocfs2_add_refcounted_extent fndecl 6-7-5 29709 &enable_so_of_flat_dt_is_compatible_fndecl_29709
159192 +enable_so_usdhi6_cmd_flags_fndecl_29713 usdhi6_cmd_flags fndecl 0 29713 NULL
159193 +enable_so_SGE_size__MPT_ADAPTER_29715 SGE_size _MPT_ADAPTER 0 29715 NULL
159194 +enable_so_first_sect_blkif_request_segment_29716 first_sect blkif_request_segment 0 29716 NULL
159195 +enable_so_ca91cx42_alloc_resource_fndecl_29717 ca91cx42_alloc_resource fndecl 2 29717 NULL
159196 +enable_so_ext4_itable_unused_count_fndecl_29718 ext4_itable_unused_count fndecl 0 29718 NULL
159197 +enable_so_maxframe_vardecl_n_hdlc_c_29719 maxframe vardecl_n_hdlc.c 0 29719 NULL
159198 +enable_so_qib_alloc_fast_reg_page_list_fndecl_29720 qib_alloc_fast_reg_page_list fndecl 2 29720 NULL
159199 +enable_so_bpp_aty128_crtc_29724 bpp aty128_crtc 0 29724 NULL nohasharray
159200 +enable_so_sel_write_disable_fndecl_29724 sel_write_disable fndecl 3 29724 &enable_so_bpp_aty128_crtc_29724
159201 +enable_so_Zlen_hfc_multi_29733 Zlen hfc_multi 0 29733 NULL nohasharray
159202 +enable_so_num_resources_mfd_cell_29733 num_resources mfd_cell 0 29733 &enable_so_Zlen_hfc_multi_29733
159203 +enable_so_target_pages_balloon_stats_29734 target_pages balloon_stats 0 29734 NULL
159204 +enable_so___ceph_tcp_sendpage_fndecl_29744 __ceph_tcp_sendpage fndecl 0-4 29744 NULL
159205 +enable_so_ba_param_set_wil_back_rx_29752 ba_param_set wil_back_rx 0 29752 NULL
159206 +enable_so_snd_pcm_lib_read_fndecl_29755 snd_pcm_lib_read fndecl 0 29755 NULL
159207 +enable_so_mmio_phys_ivhd_header_29762 mmio_phys ivhd_header 0 29762 NULL
159208 +enable_so_hotplug_pages_balloon_stats_29763 hotplug_pages balloon_stats 0 29763 NULL nohasharray
159209 +enable_so_ext4_write_begin_fndecl_29763 ext4_write_begin fndecl 4-3 29763 &enable_so_hotplug_pages_balloon_stats_29763
159210 +enable_so_physical_scrub_bio_29776 physical scrub_bio 0 29776 NULL
159211 +enable_so_ath6kl_wmi_ap_set_dtim_cmd_fndecl_29779 ath6kl_wmi_ap_set_dtim_cmd fndecl 2 29779 NULL
159212 +enable_so_eqp_bdi_bd_list_29780 eqp_bdi bd_list 0 29780 NULL nohasharray
159213 +enable_so_starting_psn_ib_cm_req_param_29780 starting_psn ib_cm_req_param 0 29780 &enable_so_eqp_bdi_bd_list_29780
159214 +enable_so_io_min_queue_limits_29785 io_min queue_limits 0 29785 NULL
159215 +enable_so_serial_in_uart_port_29788 serial_in uart_port 0 29788 NULL nohasharray
159216 +enable_so_pipeline_defrag_to_rx_xfer_swi_read_fndecl_29788 pipeline_defrag_to_rx_xfer_swi_read fndecl 3 29788 &enable_so_serial_in_uart_port_29788
159217 +enable_so_first_index_zap_details_29790 first_index zap_details 0 29790 NULL
159218 +enable_so_supply_map_read_file_fndecl_29795 supply_map_read_file fndecl 3 29795 NULL
159219 +enable_so_blk_queue_max_discard_sectors_fndecl_29799 blk_queue_max_discard_sectors fndecl 2 29799 NULL
159220 +enable_so_ima_show_htable_violations_fndecl_29800 ima_show_htable_violations fndecl 3 29800 NULL
159221 +enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807 cxgb3_get_cpl_reply_skb fndecl 2 29807 NULL nohasharray
159222 +enable_so_i_disksize_ext4_inode_info_29807 i_disksize ext4_inode_info 0 29807 &enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807
159223 +enable_so_otp_read_fndecl_29809 otp_read fndecl 5-4-2 29809 NULL nohasharray
159224 +enable_so_vbe_state_size_uvesafb_par_29809 vbe_state_size uvesafb_par 0 29809 &enable_so_otp_read_fndecl_29809
159225 +enable_so_vmw_shader_define_fndecl_29819 vmw_shader_define fndecl 5 29819 NULL
159226 +enable_so_double_offset_smbios_cru64_info_29825 double_offset smbios_cru64_info 0 29825 NULL
159227 +enable_so_num_ports_ohci_hcd_29835 num_ports ohci_hcd 0 29835 NULL
159228 +enable_so_si_lasti_bfs_sb_info_29842 si_lasti bfs_sb_info 0 29842 NULL
159229 +enable_so_len_ethtool_dump_29843 len ethtool_dump 0 29843 NULL
159230 +enable_so_fq_alloc_node_fndecl_29850 fq_alloc_node fndecl 1 29850 NULL
159231 +enable_so_rr_len_rpcrdma_rep_29856 rr_len rpcrdma_rep 0 29856 NULL
159232 +enable_so_pvr2_buffer_get_count_fndecl_29860 pvr2_buffer_get_count fndecl 0 29860 NULL
159233 +enable_so_lower_vardecl_matroxfb_base_c_29861 lower vardecl_matroxfb_base.c 0 29861 NULL nohasharray
159234 +enable_so_bnx2x_get_num_non_def_sbs_fndecl_29861 bnx2x_get_num_non_def_sbs fndecl 0-2 29861 &enable_so_lower_vardecl_matroxfb_base_c_29861
159235 +enable_so_bfs_add_entry_fndecl_29864 bfs_add_entry fndecl 4 29864 NULL
159236 +enable_so_alloc_vmap_area_fndecl_29865 alloc_vmap_area fndecl 1-2-3 29865 NULL
159237 +enable_so_ip6_nd_hdr_fndecl_29872 ip6_nd_hdr fndecl 5 29872 NULL
159238 +enable_so_xprt_complete_rqst_fndecl_29874 xprt_complete_rqst fndecl 2 29874 NULL
159239 +enable_so_fat_attach_fndecl_29877 fat_attach fndecl 2 29877 NULL
159240 +enable_so_nfs_idmap_lookup_id_fndecl_29879 nfs_idmap_lookup_id fndecl 2 29879 NULL
159241 +enable_so_current_size_ncp_server_29882 current_size ncp_server 0 29882 NULL
159242 +enable_so_parport_write_fndecl_29886 parport_write fndecl 0 29886 NULL
159243 +enable_so_length_ndis_80211_pmkid_29893 length ndis_80211_pmkid 0 29893 NULL
159244 +enable_so_selinux_inode_setxattr_fndecl_29895 selinux_inode_setxattr fndecl 4 29895 NULL
159245 +enable_so_residual_st_cmdstatus_29897 residual st_cmdstatus 0 29897 NULL
159246 +enable_so_ovl_fill_lower_fndecl_29899 ovl_fill_lower fndecl 3 29899 NULL
159247 +enable_so_be_pci_sriov_configure_fndecl_29900 be_pci_sriov_configure fndecl 2 29900 NULL
159248 +enable_so_data_in_res_cnt_srp_rsp_29904 data_in_res_cnt srp_rsp 0 29904 NULL
159249 +enable_so_edge_write_fndecl_29911 edge_write fndecl 4 29911 NULL
159250 +enable_so_io_error_dio_29914 io_error dio 0 29914 NULL
159251 +enable_so_fw_imem_len_rt_firmware_29916 fw_imem_len rt_firmware 0 29916 NULL nohasharray
159252 +enable_so_PageLength__CONFIG_PAGE_HEADER_29916 PageLength _CONFIG_PAGE_HEADER 0 29916 &enable_so_fw_imem_len_rt_firmware_29916
159253 +enable_so_base_sock_create_fndecl_29918 base_sock_create fndecl 3 29918 NULL
159254 +enable_so_error_error_frame_ctrl_read_fndecl_29919 error_error_frame_ctrl_read fndecl 3 29919 NULL
159255 +enable_so_mc_s3c_hsotg_ep_29920 mc s3c_hsotg_ep 0 29920 NULL
159256 +enable_so_size_ipt_replace_29921 size ipt_replace 0 29921 NULL
159257 +enable_so_sctp_getsockopt_maxseg_fndecl_29922 sctp_getsockopt_maxseg fndecl 2 29922 NULL
159258 +enable_so_nr_frags_skb_shared_info_29925 nr_frags skb_shared_info 0 29925 NULL
159259 +enable_so_mtt_base_mthca_mr_table_29926 mtt_base mthca_mr_table 0 29926 NULL
159260 +enable_so_sys_syslog_fndecl_29929 sys_syslog fndecl 3 29929 NULL
159261 +enable_so_fll_fref_wm8993_priv_29931 fll_fref wm8993_priv 0 29931 NULL
159262 +enable_so_read_pstore_info_29933 read pstore_info 0 29933 NULL
159263 +enable_so_pvr2_ioread_read_fndecl_29939 pvr2_ioread_read fndecl 3 29939 NULL
159264 +enable_so_titan_400l_800l_setup_fndecl_29940 titan_400l_800l_setup fndecl 4 29940 NULL
159265 +enable_so___iscsi_complete_pdu_fndecl_29941 __iscsi_complete_pdu fndecl 4 29941 NULL
159266 +enable_so_spi_sync_fndecl_29944 spi_sync fndecl 0 29944 NULL
159267 +enable_so_core_size_rx_module_29949 core_size_rx module 0 29949 NULL
159268 +enable_so_s_min_extra_isize_ext4_super_block_29952 s_min_extra_isize ext4_super_block 0 29952 NULL nohasharray
159269 +enable_so_rx_endpoint_acm_29952 rx_endpoint acm 0 29952 &enable_so_s_min_extra_isize_ext4_super_block_29952 nohasharray
159270 +enable_so_cciss_proc_write_fndecl_29952 cciss_proc_write fndecl 3 29952 &enable_so_rx_endpoint_acm_29952
159271 +enable_so_opts1_mask_rtl8169_private_29953 opts1_mask rtl8169_private 0 29953 NULL
159272 +enable_so_max_mlx5_core_srq_29956 max mlx5_core_srq 0 29956 NULL nohasharray
159273 +enable_so_state_count_Fsm_29956 state_count Fsm 0 29956 &enable_so_max_mlx5_core_srq_29956 nohasharray
159274 +enable_so_implemented_capacity_ms_boot_attr_info_29956 implemented_capacity ms_boot_attr_info 0 29956 &enable_so_state_count_Fsm_29956
159275 +enable_so_memconsole_length_vardecl_memconsole_c_29962 memconsole_length vardecl_memconsole.c 0 29962 NULL
159276 +enable_so_c_phys_ocfs2_write_cluster_desc_29971 c_phys ocfs2_write_cluster_desc 0 29971 NULL
159277 +enable_so_idef5upd_gru_control_block_extended_29974 idef5upd gru_control_block_extended 0 29974 NULL
159278 +enable_so_ds_in_channels_hdsp_29975 ds_in_channels hdsp 0 29975 NULL
159279 +enable_so_ubi_leb_change_fndecl_29986 ubi_leb_change fndecl 4 29986 NULL nohasharray
159280 +enable_so_i_suballoc_loc_ocfs2_dinode_29986 i_suballoc_loc ocfs2_dinode 0 29986 &enable_so_ubi_leb_change_fndecl_29986
159281 +enable_so_scrub_chunk_fndecl_29988 scrub_chunk fndecl 3 29988 NULL
159282 +enable_so_init_size_il4965_firmware_pieces_29990 init_size il4965_firmware_pieces 0 29990 NULL
159283 +enable_so_hfs_vbm_search_free_fndecl_30000 hfs_vbm_search_free fndecl 0-2 30000 NULL
159284 +enable_so_snd_pcm_lib_preallocate_pages1_fndecl_30002 snd_pcm_lib_preallocate_pages1 fndecl 2 30002 NULL
159285 +enable_so_btrfs_add_ordered_extent_compress_fndecl_30005 btrfs_add_ordered_extent_compress fndecl 4-2-5-3 30005 NULL nohasharray
159286 +enable_so_iwl_dbgfs_tof_enable_read_fndecl_30005 iwl_dbgfs_tof_enable_read fndecl 3 30005 &enable_so_btrfs_add_ordered_extent_compress_fndecl_30005
159287 +enable_so_msc_nfinalizers_lnet_msg_container_30006 msc_nfinalizers lnet_msg_container 0 30006 NULL
159288 +enable_so_obj_offset_ore_striping_info_30010 obj_offset ore_striping_info 0 30010 NULL nohasharray
159289 +enable_so___qlcnic_pci_sriov_enable_fndecl_30010 __qlcnic_pci_sriov_enable fndecl 2 30010 &enable_so_obj_offset_ore_striping_info_30010
159290 +enable_so_size_fstioc_write_30011 size fstioc_write 0 30011 NULL
159291 +enable_so_snd_rme9652_capture_copy_fndecl_30012 snd_rme9652_capture_copy fndecl 5 30012 NULL
159292 +enable_so_period_em28xx_audio_30017 period em28xx_audio 0 30017 NULL
159293 +enable_so_send_hole_fndecl_30019 send_hole fndecl 2 30019 NULL nohasharray
159294 +enable_so_read_file_spectral_count_fndecl_30019 read_file_spectral_count fndecl 3 30019 &enable_so_send_hole_fndecl_30019
159295 +enable_so_netlbl_catmap_setbit_fndecl_30024 netlbl_catmap_setbit fndecl 2 30024 NULL
159296 +enable_so_read_emulate_fndecl_30037 read_emulate fndecl 2-4 30037 NULL nohasharray
159297 +enable_so_max_wqes_mthca_limits_30037 max_wqes mthca_limits 0 30037 &enable_so_read_emulate_fndecl_30037
159298 +enable_so_ethertype_fcllc_30040 ethertype fcllc 0 30040 NULL
159299 +enable_so_xdr_set_scratch_buffer_fndecl_30045 xdr_set_scratch_buffer fndecl 3 30045 NULL
159300 +enable_so_ath6kl_listen_int_read_fndecl_30048 ath6kl_listen_int_read fndecl 3 30048 NULL
159301 +enable_so_max_header_proto_30054 max_header proto 0 30054 NULL
159302 +enable_so_sta_ht_capa_read_fndecl_30061 sta_ht_capa_read fndecl 3 30061 NULL
159303 +enable_so_io_throttle_count_vnic_fc_config_30064 io_throttle_count vnic_fc_config 0 30064 NULL
159304 +enable_so_add_swap_extent_fndecl_30065 add_swap_extent fndecl 2-4-3 30065 NULL nohasharray
159305 +enable_so_get_dump_page_fndecl_30065 get_dump_page fndecl 1 30065 &enable_so_add_swap_extent_fndecl_30065
159306 +enable_so___smb_init_fndecl_30067 __smb_init fndecl 2 30067 NULL
159307 +enable_so_psb_gem_create_fndecl_30068 psb_gem_create fndecl 3 30068 NULL nohasharray
159308 +enable_so_dio_read_error_fndecl_30068 dio_read_error fndecl 5-4 30068 &enable_so_psb_gem_create_fndecl_30068
159309 +enable_so_to_ifla_vlan_qos_mapping_30070 to ifla_vlan_qos_mapping 0 30070 NULL
159310 +enable_so_SenseLen__ErrorInfo_struct_30071 SenseLen _ErrorInfo_struct 0 30071 NULL nohasharray
159311 +enable_so_SYSC_io_setup_fndecl_30071 SYSC_io_setup fndecl 1 30071 &enable_so_SenseLen__ErrorInfo_struct_30071
159312 +enable_so_mwifiex_send_tdls_data_frame_fndecl_30072 mwifiex_send_tdls_data_frame fndecl 7 30072 NULL
159313 +enable_so_wapi_ie_len_mwifiex_private_30073 wapi_ie_len mwifiex_private 0 30073 NULL
159314 +enable_so_cur_pos_kobil_private_30076 cur_pos kobil_private 0 30076 NULL
159315 +enable_so_ufx_alloc_urb_list_fndecl_30078 ufx_alloc_urb_list fndecl 3 30078 NULL
159316 +enable_so_num_pages_vmw_mob_30089 num_pages vmw_mob 0 30089 NULL
159317 +enable_so_ie_len_ieee80211_mgd_assoc_data_30093 ie_len ieee80211_mgd_assoc_data 0 30093 NULL nohasharray
159318 +enable_so_do_compat_pselect_fndecl_30093 do_compat_pselect fndecl 1 30093 &enable_so_ie_len_ieee80211_mgd_assoc_data_30093
159319 +enable_so_id_watchdog_device_30094 id watchdog_device 0 30094 NULL
159320 +enable_so_length_ehci_qtd_30102 length ehci_qtd 0 30102 NULL
159321 +enable_so_ecryptfs_decode_and_decrypt_filename_fndecl_30104 ecryptfs_decode_and_decrypt_filename fndecl 5 30104 NULL
159322 +enable_so_mmc_test_seq_write_perf_fndecl_30107 mmc_test_seq_write_perf fndecl 2 30107 NULL
159323 +enable_so_of_translate_address_fndecl_30111 of_translate_address fndecl 0 30111 NULL
159324 +enable_so_read_iwl_rxq_30117 read iwl_rxq 0 30117 NULL
159325 +enable_so_bio_integrity_process_fndecl_30121 bio_integrity_process fndecl 0 30121 NULL
159326 +enable_so_if_real_bytes_xfs_ifork_30126 if_real_bytes xfs_ifork 0 30126 NULL
159327 +enable_so_max_total_qng_asc_dvc_var_30137 max_total_qng asc_dvc_var 0 30137 NULL
159328 +enable_so_hdr_len_ieee80211_fast_tx_30143 hdr_len ieee80211_fast_tx 0 30143 NULL
159329 +enable_so_i915_gem_object_create_stolen_for_preallocated_fndecl_30151 i915_gem_object_create_stolen_for_preallocated fndecl 4-2-3 30151 NULL nohasharray
159330 +enable_so_hpfs_remove_fnode_fndecl_30151 hpfs_remove_fnode fndecl 2 30151 &enable_so_i915_gem_object_create_stolen_for_preallocated_fndecl_30151
159331 +enable_so_num_tx_queues_ixgbevf_adapter_30155 num_tx_queues ixgbevf_adapter 0 30155 NULL
159332 +enable_so_scif_get_node_ids_fndecl_30156 scif_get_node_ids fndecl 0 30156 NULL
159333 +enable_so_buffer_len_fnic_dbgfs_30157 buffer_len fnic_dbgfs 0 30157 NULL
159334 +enable_so_iobuf_dma_us_data_30159 iobuf_dma us_data 0 30159 NULL
159335 +enable_so_mmio_base_drm_mga_private_30161 mmio_base drm_mga_private 0 30161 NULL
159336 +enable_so_tool_peer_mask_read_fndecl_30164 tool_peer_mask_read fndecl 3 30164 NULL
159337 +enable_so_bulk_in_size_hdpvr_device_30165 bulk_in_size hdpvr_device 0 30165 NULL nohasharray
159338 +enable_so_pci_wch_ch38x_setup_fndecl_30165 pci_wch_ch38x_setup fndecl 4 30165 &enable_so_bulk_in_size_hdpvr_device_30165
159339 +enable_so_rx_buf_sz_epic_private_30166 rx_buf_sz epic_private 0 30166 NULL nohasharray
159340 +enable_so_send_section_size_netvsc_device_30166 send_section_size netvsc_device 0 30166 &enable_so_rx_buf_sz_epic_private_30166
159341 +enable_so_tailsz_cifs_writedata_30171 tailsz cifs_writedata 0 30171 NULL
159342 +enable_so_rx_ring_size_pxa168_eth_private_30172 rx_ring_size pxa168_eth_private 0 30172 NULL
159343 +enable_so_bnx2x_set_gro_params_fndecl_30177 bnx2x_set_gro_params fndecl 3 30177 NULL
159344 +enable_so_prism2_ap_get_sta_qual_fndecl_30181 prism2_ap_get_sta_qual fndecl 0 30181 NULL
159345 +enable_so_in_ep_num_rtl_hal_usbint_cfg_30182 in_ep_num rtl_hal_usbint_cfg 0 30182 NULL
159346 +enable_so_SyS_io_setup_fndecl_30191 SyS_io_setup fndecl 1 30191 NULL
159347 +enable_so_event_phy_transmit_error_read_fndecl_30196 event_phy_transmit_error_read fndecl 3 30196 NULL
159348 +enable_so_alloc_pci_root_info_fndecl_30198 alloc_pci_root_info fndecl 2-1 30198 NULL
159349 +enable_so_buf_len_uvesafb_task_30200 buf_len uvesafb_task 0 30200 NULL
159350 +enable_so_pos_drm_i915_error_state_buf_30203 pos drm_i915_error_state_buf 0 30203 NULL
159351 +enable_so_pipe_size_renesas_usbhs_driver_param_30206 pipe_size renesas_usbhs_driver_param 0 30206 NULL
159352 +enable_so_len_header_msg_30207 len header_msg 0 30207 NULL
159353 +enable_so_hrp_nthrs_ptlrpc_hr_partition_30214 hrp_nthrs ptlrpc_hr_partition 0 30214 NULL
159354 +enable_so_xennet_make_one_txreq_fndecl_30215 xennet_make_one_txreq fndecl 4-5 30215 NULL
159355 +enable_so_minor_rbd_device_30216 minor rbd_device 0 30216 NULL
159356 +enable_so_bm_bits_bm_xfer_ctx_30221 bm_bits bm_xfer_ctx 0 30221 NULL nohasharray
159357 +enable_so_rd_offset_nfsd4_read_30221 rd_offset nfsd4_read 0 30221 &enable_so_bm_bits_bm_xfer_ctx_30221
159358 +enable_so_le_mtu_hci_dev_30225 le_mtu hci_dev 0 30225 NULL
159359 +enable_so_tegra_spi_start_rx_dma_fndecl_30226 tegra_spi_start_rx_dma fndecl 0-2 30226 NULL
159360 +enable_so_major_vardecl_pt_c_30228 major vardecl_pt.c 0 30228 NULL
159361 +enable_so_vtag_atl1e_recv_ret_status_30229 vtag atl1e_recv_ret_status 0 30229 NULL
159362 +enable_so___add_keyed_refs_fndecl_30230 __add_keyed_refs fndecl 3 30230 NULL
159363 +enable_so_tcp_header_len_tcp_sock_30231 tcp_header_len tcp_sock 0 30231 NULL
159364 +enable_so__brk_start_vardecl_setup_c_30236 _brk_start vardecl_setup.c 0 30236 NULL nohasharray
159365 +enable_so_SetLineNumber_fndecl_30236 SetLineNumber fndecl 0 30236 &enable_so__brk_start_vardecl_setup_c_30236
159366 +enable_so_reiserfs_breada_fndecl_30247 reiserfs_breada fndecl 3-2 30247 NULL
159367 +enable_so_ndisc_fill_redirect_hdr_option_fndecl_30248 ndisc_fill_redirect_hdr_option fndecl 3 30248 NULL
159368 +enable_so_id_kern_ipc_perm_30249 id kern_ipc_perm 0 30249 NULL
159369 +enable_so_compat_sys_truncate_fndecl_30258 compat_sys_truncate fndecl 2 30258 NULL
159370 +enable_so_max_host_qng_adv_dvc_var_30264 max_host_qng adv_dvc_var 0 30264 NULL
159371 +enable_so_tda10048_writeregbulk_fndecl_30265 tda10048_writeregbulk fndecl 4 30265 NULL
159372 +enable_so_sys_sendfile_fndecl_30267 sys_sendfile fndecl 4 30267 NULL nohasharray
159373 +enable_so_rawsock_recvmsg_fndecl_30267 rawsock_recvmsg fndecl 3 30267 &enable_so_sys_sendfile_fndecl_30267
159374 +enable_so_tda665x_write_fndecl_30269 tda665x_write fndecl 3 30269 NULL
159375 +enable_so_minor_count_vardecl_30272 minor_count vardecl 0 30272 NULL
159376 +enable_so_data_size_netup_dma_30274 data_size netup_dma 0 30274 NULL
159377 +enable_so_blockshift_alauda_media_info_30287 blockshift alauda_media_info 0 30287 NULL
159378 +enable_so_xfs_collapse_file_space_fndecl_30288 xfs_collapse_file_space fndecl 2-3 30288 NULL
159379 +enable_so_blk_queue_dma_drain_fndecl_30290 blk_queue_dma_drain fndecl 4 30290 NULL
159380 +enable_so_tcp_send_mss_fndecl_30292 tcp_send_mss fndecl 0 30292 NULL
159381 +enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296 t_tinc_hdr_rem rds_tcp_connection 0 30296 NULL nohasharray
159382 +enable_so_count_argc_fndecl_30296 count_argc fndecl 0 30296 &enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296
159383 +enable_so_wlength_at76_rx_buffer_30301 wlength at76_rx_buffer 0 30301 NULL
159384 +enable_so_logi_dj_raw_event_fndecl_30304 logi_dj_raw_event fndecl 4 30304 NULL
159385 +enable_so_m_ts_msg_msg_30307 m_ts msg_msg 0 30307 NULL
159386 +enable_so_alloc_alien_cache_fndecl_30308 alloc_alien_cache fndecl 2 30308 NULL
159387 +enable_so_tracing_buffers_read_fndecl_30311 tracing_buffers_read fndecl 3 30311 NULL
159388 +enable_so_ki_pos_kiocb_30312 ki_pos kiocb 0 30312 NULL
159389 +enable_so_wbuf_pagesize_jffs2_sb_info_30318 wbuf_pagesize jffs2_sb_info 0 30318 NULL
159390 +enable_so_nfakewriters_vardecl_rcutorture_c_30320 nfakewriters vardecl_rcutorture.c 0 30320 NULL
159391 +enable_so_kvm_write_guest_cached_fndecl_30321 kvm_write_guest_cached fndecl 4 30321 NULL
159392 +enable_so_avc_stream_set_format_fndecl_30322 avc_stream_set_format fndecl 5 30322 NULL
159393 +enable_so_name_len_discovery_t_30331 name_len discovery_t 0 30331 NULL
159394 +enable_so_tc90522_master_xfer_fndecl_30332 tc90522_master_xfer fndecl 3 30332 NULL
159395 +enable_so_bfad_iocmd_vport_get_stats_fndecl_30341 bfad_iocmd_vport_get_stats fndecl 0 30341 NULL
159396 +enable_so_acpi_os_map_memory_fndecl_30346 acpi_os_map_memory fndecl 2-1 30346 NULL
159397 +enable_so_overflow_maj_vardecl_ucm_c_30347 overflow_maj vardecl_ucm.c 0 30347 NULL
159398 +enable_so_p_ssize_f_uac2_opts_30353 p_ssize f_uac2_opts 0 30353 NULL
159399 +enable_so_max_rq_sg_mlx4_caps_30357 max_rq_sg mlx4_caps 0 30357 NULL
159400 +enable_so_bt_datalen_bcm5974_config_30374 bt_datalen bcm5974_config 0 30374 NULL nohasharray
159401 +enable_so_len_snd_seq_ev_ext_30374 len snd_seq_ev_ext 0 30374 &enable_so_bt_datalen_bcm5974_config_30374
159402 +enable_so_ubifs_pad_fndecl_30375 ubifs_pad fndecl 3 30375 NULL
159403 +enable_so_max_r2t_iscsi_session_30376 max_r2t iscsi_session 0 30376 NULL
159404 +enable_so_vni_to_tunnel_id_fndecl_30379 vni_to_tunnel_id fndecl 0 30379 NULL
159405 +enable_so_pnp_add_bus_resource_fndecl_30381 pnp_add_bus_resource fndecl 3-2 30381 NULL
159406 +enable_so_qnx4_iget_fndecl_30383 qnx4_iget fndecl 2 30383 NULL
159407 +enable_so_get_callback_via_fndecl_30387 get_callback_via fndecl 0 30387 NULL
159408 +enable_so_ssid_len_cfg80211_ssid_30393 ssid_len cfg80211_ssid 0 30393 NULL
159409 +enable_so_datalen_port100_frame_30394 datalen port100_frame 0 30394 NULL
159410 +enable_so_ocfs2_dx_entry_list_insert_fndecl_30397 ocfs2_dx_entry_list_insert fndecl 3 30397 NULL
159411 +enable_so_sq_overhead_fndecl_30401 sq_overhead fndecl 0 30401 NULL
159412 +enable_so_clone_and_map_rq_target_type_30404 clone_and_map_rq target_type 0 30404 NULL
159413 +enable_so_dbgp_control_msg_fndecl_30405 dbgp_control_msg fndecl 7 30405 NULL
159414 +enable_so_il_dbgfs_rx_queue_read_fndecl_30406 il_dbgfs_rx_queue_read fndecl 3 30406 NULL
159415 +enable_so_hwm_tx_init_fndecl_30411 hwm_tx_init fndecl 4 30411 NULL
159416 +enable_so_decode_opaque_fixed_fndecl_30421 decode_opaque_fixed fndecl 3 30421 NULL
159417 +enable_so_width_bttv_fh_30432 width bttv_fh 0 30432 NULL
159418 +enable_so_bytes_committed_mlx5_pagefault_30434 bytes_committed mlx5_pagefault 0 30434 NULL
159419 +enable_so_of_irq_count_fndecl_30438 of_irq_count fndecl 0 30438 NULL
159420 +enable_so_ubifs_write_node_fndecl_30441 ubifs_write_node fndecl 3-5 30441 NULL
159421 +enable_so_count_snd_kcontrol_new_30443 count snd_kcontrol_new 0 30443 NULL
159422 +enable_so_pmd_entry_mm_walk_30448 pmd_entry mm_walk 0 30448 NULL
159423 +enable_so_comedi_alloc_spriv_fndecl_30449 comedi_alloc_spriv fndecl 2 30449 NULL
159424 +enable_so_num_channels_iio_dev_30451 num_channels iio_dev 0 30451 NULL
159425 +enable_so___add_zone_fndecl_30452 __add_zone fndecl 2 30452 NULL
159426 +enable_so_m5mols_write_fndecl_30453 m5mols_write fndecl 2 30453 NULL
159427 +enable_so_xfs_map_direct_fndecl_30459 xfs_map_direct fndecl 4 30459 NULL
159428 +enable_so_mmap_region_fndecl_30460 mmap_region fndecl 0-2-3-5 30460 NULL
159429 +enable_so_grow_pgdat_span_fndecl_30467 grow_pgdat_span fndecl 2 30467 NULL
159430 +enable_so_height_drm_qxl_alloc_surf_30468 height drm_qxl_alloc_surf 0 30468 NULL
159431 +enable_so___qp_memcpy_to_queue_fndecl_30472 __qp_memcpy_to_queue fndecl 4-2 30472 NULL
159432 +enable_so_nouveau_gem_new_fndecl_30476 nouveau_gem_new fndecl 2 30476 NULL nohasharray
159433 +enable_so_packet_size_ncp_server_30476 packet_size ncp_server 0 30476 &enable_so_nouveau_gem_new_fndecl_30476
159434 +enable_so_produce_size_vmci_qp_alloc_info_30480 produce_size vmci_qp_alloc_info 0 30480 NULL nohasharray
159435 +enable_so_btrfs_sync_file_fndecl_30480 btrfs_sync_file fndecl 2-3 30480 &enable_so_produce_size_vmci_qp_alloc_info_30480
159436 +enable_so_xfs_inode_alloc_fndecl_30482 xfs_inode_alloc fndecl 2 30482 NULL nohasharray
159437 +enable_so_additional_sense_code_scsi_sense_descriptor_based_30482 additional_sense_code scsi_sense_descriptor_based 0 30482 &enable_so_xfs_inode_alloc_fndecl_30482
159438 +enable_so_xdr_buf_trim_fndecl_30485 xdr_buf_trim fndecl 2 30485 NULL
159439 +enable_so_SyS_io_getevents_fndecl_30487 SyS_io_getevents fndecl 3 30487 NULL
159440 +enable_so_data_len_ib_ucm_sidr_rep_30488 data_len ib_ucm_sidr_rep 0 30488 NULL
159441 +enable_so_rd_build_prot_space_fndecl_30490 rd_build_prot_space fndecl 3-2 30490 NULL
159442 +enable_so_vhost_add_used_n_fndecl_30491 vhost_add_used_n fndecl 3 30491 NULL
159443 +enable_so_height_s2255_vc_30492 height s2255_vc 0 30492 NULL
159444 +enable_so_kvm_read_guest_atomic_fndecl_30494 kvm_read_guest_atomic fndecl 2-4 30494 NULL
159445 +enable_so_nfcwilink_send_bts_cmd_fndecl_30497 nfcwilink_send_bts_cmd fndecl 3 30497 NULL
159446 +enable_so_tolen_nfs3_linkargs_30505 tolen nfs3_linkargs 0 30505 NULL
159447 +enable_so___blkdev_issue_discard_async_fndecl_30509 __blkdev_issue_discard_async fndecl 2-3-0 30509 NULL
159448 +enable_so_rocker_group_l2_fan_out_fndecl_30512 rocker_group_l2_fan_out fndecl 4 30512 NULL
159449 +enable_so___skb_udp_tunnel_segment_fndecl_30522 __skb_udp_tunnel_segment fndecl 4 30522 NULL nohasharray
159450 +enable_so_ip_list_hash_size_vardecl_xt_recent_c_30522 ip_list_hash_size vardecl_xt_recent.c 0 30522 &enable_so___skb_udp_tunnel_segment_fndecl_30522
159451 +enable_so_buf_start_lo_rx_buf_desc_30523 buf_start_lo rx_buf_desc 0 30523 NULL
159452 +enable_so_ttm_dma_page_pool_free_fndecl_30527 ttm_dma_page_pool_free fndecl 2 30527 NULL
159453 +enable_so_nvme_submit_sync_cmd_fndecl_30530 nvme_submit_sync_cmd fndecl 4 30530 NULL
159454 +enable_so_send_command_fndecl_30531 send_command fndecl 4 30531 NULL
159455 +enable_so_InitiatorRecvDataSegmentLength_iscsi_conn_ops_30535 InitiatorRecvDataSegmentLength iscsi_conn_ops 0 30535 NULL
159456 +enable_so_len_nfsd_readlinkres_30541 len nfsd_readlinkres 0 30541 NULL
159457 +enable_so_num_ports_mlx4_ib_dev_30542 num_ports mlx4_ib_dev 0 30542 NULL
159458 +enable_so_xen_blkif_max_segments_vardecl_xen_blkfront_c_30543 xen_blkif_max_segments vardecl_xen-blkfront.c 0 30543 NULL
159459 +enable_so_pstore_compress_fndecl_30549 pstore_compress fndecl 3-4 30549 NULL
159460 +enable_so_nfcid_len_pn533_target_type_a_30554 nfcid_len pn533_target_type_a 0 30554 NULL
159461 +enable_so_left_vardecl_matroxfb_base_c_30557 left vardecl_matroxfb_base.c 0 30557 NULL
159462 +enable_so_min_size_rhashtable_params_30562 min_size rhashtable_params 0 30562 NULL
159463 +enable_so_wMaxCommand_wdm_device_30565 wMaxCommand wdm_device 0 30565 NULL
159464 +enable_so_entries_usb_sg_request_30570 entries usb_sg_request 0 30570 NULL
159465 +enable_so_snd_pcm_oss_write1_fndecl_30571 snd_pcm_oss_write1 fndecl 3 30571 NULL
159466 +enable_so_s_iblkno_ufs_sb_private_info_30572 s_iblkno ufs_sb_private_info 0 30572 NULL nohasharray
159467 +enable_so_wiidebug_drm_write_fndecl_30572 wiidebug_drm_write fndecl 3 30572 &enable_so_s_iblkno_ufs_sb_private_info_30572 nohasharray
159468 +enable_so_key_len_ubifs_info_30572 key_len ubifs_info 0 30572 &enable_so_wiidebug_drm_write_fndecl_30572
159469 +enable_so_udf_get_pblock_virt20_fndecl_30574 udf_get_pblock_virt20 fndecl 4 30574 NULL
159470 +enable_so_pio_ide_pio_info_30575 pio ide_pio_info 0 30575 NULL nohasharray
159471 +enable_so_mid_get_vbt_data_r0_fndecl_30575 mid_get_vbt_data_r0 fndecl 2 30575 &enable_so_pio_ide_pio_info_30575
159472 +enable_so_userptr_amdgpu_ttm_tt_30577 userptr amdgpu_ttm_tt 0 30577 NULL
159473 +enable_so_fuse_conn_max_background_read_fndecl_30580 fuse_conn_max_background_read fndecl 3 30580 NULL
159474 +enable_so_delta_stack_mm_struct_30582 delta_stack mm_struct 0 30582 NULL nohasharray
159475 +enable_so_ida_get_new_above_fndecl_30582 ida_get_new_above fndecl 0 30582 &enable_so_delta_stack_mm_struct_30582
159476 +enable_so_max_intr_slots_myri10ge_priv_30588 max_intr_slots myri10ge_priv 0 30588 NULL
159477 +enable_so_group_ext4_new_group_data_30590 group ext4_new_group_data 0 30590 NULL nohasharray
159478 +enable_so_rsize_cifs_sb_info_30590 rsize cifs_sb_info 0 30590 &enable_so_group_ext4_new_group_data_30590
159479 +enable_so_read_edid_block_fndecl_30591 read_edid_block fndecl 4 30591 NULL
159480 +enable_so_readsize_acm_30592 readsize acm 0 30592 NULL nohasharray
159481 +enable_so_size_drm_savage_cmdbuf_30592 size drm_savage_cmdbuf 0 30592 &enable_so_readsize_acm_30592
159482 +enable_so_get_scq_fndecl_30594 get_scq fndecl 2 30594 NULL
159483 +enable_so_tifm_alloc_adapter_fndecl_30596 tifm_alloc_adapter fndecl 1 30596 NULL
159484 +enable_so_sctp_addto_chunk_fndecl_30597 sctp_addto_chunk fndecl 2 30597 NULL
159485 +enable_so_ext4_collapse_range_fndecl_30598 ext4_collapse_range fndecl 2-3 30598 NULL
159486 +enable_so_offset_drm_i915_gem_pread_30601 offset drm_i915_gem_pread 0 30601 NULL
159487 +enable_so_update_backups_fndecl_30602 update_backups fndecl 2 30602 NULL
159488 +enable_so_add_ino_fndecl_30603 add_ino fndecl 4-2 30603 NULL
159489 +enable_so_rx_win_size_mwifiex_add_ba_param_30610 rx_win_size mwifiex_add_ba_param 0 30610 NULL
159490 +enable_so_total_data_placed_lpfc_wcqe_complete_30612 total_data_placed lpfc_wcqe_complete 0 30612 NULL nohasharray
159491 +enable_so_blk_sz_os_dat_entry_s_30612 blk_sz os_dat_entry_s 0 30612 &enable_so_total_data_placed_lpfc_wcqe_complete_30612
159492 +enable_so_ieee802_11_parse_elems_crc_fndecl_30615 ieee802_11_parse_elems_crc fndecl 2 30615 NULL
159493 +enable_so_size_cmdQ_30622 size cmdQ 0 30622 NULL
159494 +enable_so_si2168_i2c_master_recv_unlocked_fndecl_30633 si2168_i2c_master_recv_unlocked fndecl 3 30633 NULL
159495 +enable_so_lprocfs_wr_atomic_fndecl_30643 lprocfs_wr_atomic fndecl 3 30643 NULL
159496 +enable_so_catc_ctrl_async_fndecl_30648 catc_ctrl_async fndecl 7 30648 NULL
159497 +enable_so_drbd_md_sync_page_io_fndecl_30651 drbd_md_sync_page_io fndecl 3 30651 NULL
159498 +enable_so_size_vmcore_30652 size vmcore 0 30652 NULL
159499 +enable_so_start_numa_memblk_30656 start numa_memblk 0 30656 NULL nohasharray
159500 +enable_so_shrink_pgdat_span_fndecl_30656 shrink_pgdat_span fndecl 3-2 30656 &enable_so_start_numa_memblk_30656 nohasharray
159501 +enable_so_TargetRecvDataSegmentLength_iscsi_conn_ops_30656 TargetRecvDataSegmentLength iscsi_conn_ops 0 30656 &enable_so_shrink_pgdat_span_fndecl_30656
159502 +enable_so_ci_port_test_write_fndecl_30657 ci_port_test_write fndecl 3 30657 NULL
159503 +enable_so_ext4_mb_new_blocks_fndecl_30662 ext4_mb_new_blocks fndecl 0 30662 NULL
159504 +enable_so_tun_put_user_fndecl_30676 tun_put_user fndecl 0 30676 NULL
159505 +enable_so_max_count_pvr2_buffer_30678 max_count pvr2_buffer 0 30678 NULL
159506 +enable_so_nvme_cmd_size_fndecl_30679 nvme_cmd_size fndecl 0 30679 NULL
159507 +enable_so_log_num_srqs_mlx4_init_hca_param_30681 log_num_srqs mlx4_init_hca_param 0 30681 NULL
159508 +enable_so_ramsize_brcmf_chip_30687 ramsize brcmf_chip 0 30687 NULL nohasharray
159509 +enable_so_curr_queue_pairs_virtnet_info_30687 curr_queue_pairs virtnet_info 0 30687 &enable_so_ramsize_brcmf_chip_30687
159510 +enable_so_mac_drv_rx_complete_fndecl_30692 mac_drv_rx_complete fndecl 4 30692 NULL
159511 +enable_so_keybytes_gss_krb5_enctype_30694 keybytes gss_krb5_enctype 0 30694 NULL nohasharray
159512 +enable_so_xfrm_hash_alloc_fndecl_30694 xfrm_hash_alloc fndecl 1 30694 &enable_so_keybytes_gss_krb5_enctype_30694
159513 +enable_so_status_urb_30696 status urb 0 30696 NULL nohasharray
159514 +enable_so_rx_filter_accum_arp_pend_requests_read_fndecl_30696 rx_filter_accum_arp_pend_requests_read fndecl 3 30696 &enable_so_status_urb_30696
159515 +enable_so_hdsp_spdif_sample_rate_fndecl_30700 hdsp_spdif_sample_rate fndecl 0 30700 NULL
159516 +enable_so_bm_entry_read_fndecl_30707 bm_entry_read fndecl 3 30707 NULL
159517 +enable_so_sched_autogroup_write_fndecl_30715 sched_autogroup_write fndecl 3 30715 NULL
159518 +enable_so_numPhys_PVSCSIConfigPageController_30726 numPhys PVSCSIConfigPageController 0 30726 NULL
159519 +enable_so___alloc_preds_fndecl_30727 __alloc_preds fndecl 2 30727 NULL
159520 +enable_so_lbs_threshold_write_fndecl_30733 lbs_threshold_write fndecl 5 30733 NULL
159521 +enable_so_sock_recvmsg_fndecl_30735 sock_recvmsg fndecl 0 30735 NULL nohasharray
159522 +enable_so_num_descriptors_pmc_ctx_30735 num_descriptors pmc_ctx 0 30735 &enable_so_sock_recvmsg_fndecl_30735
159523 +enable_so_bop_seek_key_nilfs_bmap_operations_30741 bop_seek_key nilfs_bmap_operations 0 30741 NULL nohasharray
159524 +enable_so_nci_hci_send_data_fndecl_30741 nci_hci_send_data fndecl 5 30741 &enable_so_bop_seek_key_nilfs_bmap_operations_30741 nohasharray
159525 +enable_so_mlx5_wq_cyc_get_size_fndecl_30741 mlx5_wq_cyc_get_size fndecl 0 30741 &enable_so_nci_hci_send_data_fndecl_30741
159526 +enable_so_iwl_dbgfs_fw_dbg_conf_read_fndecl_30753 iwl_dbgfs_fw_dbg_conf_read fndecl 3 30753 NULL
159527 +enable_so_command_setvloffset_fndecl_30761 command_setvloffset fndecl 0 30761 NULL nohasharray
159528 +enable_so_n_scan_channels_iwl_ucode_capabilities_30761 n_scan_channels iwl_ucode_capabilities 0 30761 &enable_so_command_setvloffset_fndecl_30761
159529 +enable_so_lp_write_fndecl_30772 lp_write fndecl 3 30772 NULL
159530 +enable_so_ocrdma_alloc_mr_fndecl_30774 ocrdma_alloc_mr fndecl 3 30774 NULL
159531 +enable_so_leb_size_ubifs_info_30775 leb_size ubifs_info 0 30775 NULL
159532 +enable_so_nzones_high_adfs_discrecord_30776 nzones_high adfs_discrecord 0 30776 NULL
159533 +enable_so_isoc_in_pipe_ttusb_30778 isoc_in_pipe ttusb 0 30778 NULL
159534 +enable_so_inj_readme_read_fndecl_30779 inj_readme_read fndecl 3 30779 NULL
159535 +enable_so_hdrlen_brcmf_pub_30788 hdrlen brcmf_pub 0 30788 NULL nohasharray
159536 +enable_so_fw_node_create_fndecl_30788 fw_node_create fndecl 2 30788 &enable_so_hdrlen_brcmf_pub_30788
159537 +enable_so_batadv_send_roam_adv_fndecl_30791 batadv_send_roam_adv fndecl 3 30791 NULL
159538 +enable_so_netup_write_i2c_fndecl_30793 netup_write_i2c fndecl 5 30793 NULL
159539 +enable_so_queue_depth_scsi_device_30796 queue_depth scsi_device 0 30796 NULL
159540 +enable_so_kobj_map_fndecl_30797 kobj_map fndecl 2-3 30797 NULL
159541 +enable_so_wr_sz_csio_q_30799 wr_sz csio_q 0 30799 NULL
159542 +enable_so_remove_one_fndecl_30800 remove_one fndecl 2 30800 NULL
159543 +enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803 extra_mpdu_postfix_len lib80211_crypto_ops 0 30803 NULL nohasharray
159544 +enable_so_fwlen_mpt_fw_xfer_30803 fwlen mpt_fw_xfer 0 30803 &enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803
159545 +enable_so_iwl_dbgfs_bf_params_read_fndecl_30805 iwl_dbgfs_bf_params_read fndecl 3 30805 NULL
159546 +enable_so_ResidualCnt_ErrorInfo_30806 ResidualCnt ErrorInfo 0 30806 NULL
159547 +enable_so_buf_dma_gtco_30808 buf_dma gtco 0 30808 NULL nohasharray
159548 +enable_so_sadb_key_bits_sadb_key_30808 sadb_key_bits sadb_key 0 30808 &enable_so_buf_dma_gtco_30808
159549 +enable_so_unmerge_ksm_pages_fndecl_30809 unmerge_ksm_pages fndecl 2 30809 NULL nohasharray
159550 +enable_so_il_dbgfs_missed_beacon_write_fndecl_30809 il_dbgfs_missed_beacon_write fndecl 3 30809 &enable_so_unmerge_ksm_pages_fndecl_30809
159551 +enable_so_si21_readregs_fndecl_30810 si21_readregs fndecl 4 30810 NULL nohasharray
159552 +enable_so_xfs_ialloc_read_agi_fndecl_30810 xfs_ialloc_read_agi fndecl 3 30810 &enable_so_si21_readregs_fndecl_30810
159553 +enable_so_totalram_sysinfo_30812 totalram sysinfo 0 30812 NULL
159554 +enable_so_num_mcg_mthca_profile_30814 num_mcg mthca_profile 0 30814 NULL
159555 +enable_so_offset16_cm_rep_msg_30815 offset16 cm_rep_msg 0 30815 NULL nohasharray
159556 +enable_so_audit_log_n_untrustedstring_fndecl_30815 audit_log_n_untrustedstring fndecl 3 30815 &enable_so_offset16_cm_rep_msg_30815
159557 +enable_so_orig_y_screen_info_30817 orig_y screen_info 0 30817 NULL nohasharray
159558 +enable_so_commit_head_n_tty_data_30817 commit_head n_tty_data 0 30817 &enable_so_orig_y_screen_info_30817
159559 +enable_so_shmem_write_begin_fndecl_30822 shmem_write_begin fndecl 3 30822 NULL
159560 +enable_so_report_count_hid_field_30826 report_count hid_field 0 30826 NULL
159561 +enable_so_s_root_blkno_ocfs2_super_block_30828 s_root_blkno ocfs2_super_block 0 30828 NULL
159562 +enable_so_add_memory_fndecl_30836 add_memory fndecl 3-2 30836 NULL
159563 +enable_so_f2fs_read_data_pages_fndecl_30837 f2fs_read_data_pages fndecl 4 30837 NULL
159564 +enable_so_shadow_root_level_kvm_mmu_30842 shadow_root_level kvm_mmu 0 30842 NULL
159565 +enable_so_resp_size_virtio_gpu_vbuffer_30847 resp_size virtio_gpu_vbuffer 0 30847 NULL
159566 +enable_so_wm2200_set_fll_fndecl_30852 wm2200_set_fll fndecl 4-5 30852 NULL
159567 +enable_so_notify_offset_multiplier_virtio_pci_device_30853 notify_offset_multiplier virtio_pci_device 0 30853 NULL
159568 +enable_so_default_pvid_net_bridge_30856 default_pvid net_bridge 0 30856 NULL nohasharray
159569 +enable_so_count_acpi_object_list_30856 count acpi_object_list 0 30856 &enable_so_default_pvid_net_bridge_30856 nohasharray
159570 +enable_so_saa7164_buffer_alloc_user_fndecl_30856 saa7164_buffer_alloc_user fndecl 2 30856 &enable_so_count_acpi_object_list_30856
159571 +enable_so_lov_ost_pool_add_fndecl_30857 lov_ost_pool_add fndecl 3 30857 NULL
159572 +enable_so_spi_sh_send_fndecl_30862 spi_sh_send fndecl 0 30862 NULL
159573 +enable_so_al_size_4k_drbd_md_30864 al_size_4k drbd_md 0 30864 NULL
159574 +enable_so_width_cx2341x_handler_30869 width cx2341x_handler 0 30869 NULL nohasharray
159575 +enable_so_memory_size_hp100_private_30869 memory_size hp100_private 0 30869 &enable_so_width_cx2341x_handler_30869
159576 +enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 batadv_send_skb_push_fill_unicast fndecl 2 30870 NULL nohasharray
159577 +enable_so_xfs_qm_dqattach_one_fndecl_30870 xfs_qm_dqattach_one fndecl 2 30870 &enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 nohasharray
159578 +enable_so_snd_emu10k1_fx8010_read_fndecl_30870 snd_emu10k1_fx8010_read fndecl 5 30870 &enable_so_xfs_qm_dqattach_one_fndecl_30870
159579 +enable_so_do_sync_fndecl_30871 do_sync fndecl 1 30871 NULL
159580 +enable_so_sddr09_send_command_fndecl_30873 sddr09_send_command fndecl 5 30873 NULL nohasharray
159581 +enable_so_r_clusters_ocfs2_refcount_rec_30873 r_clusters ocfs2_refcount_rec 0 30873 &enable_so_sddr09_send_command_fndecl_30873
159582 +enable_so_current_page_mspro_block_data_30876 current_page mspro_block_data 0 30876 NULL
159583 +enable_so_dma_buf_sz_stmmac_priv_30880 dma_buf_sz stmmac_priv 0 30880 NULL
159584 +enable_so_eq_textcnt_max98088_priv_30885 eq_textcnt max98088_priv 0 30885 NULL
159585 +enable_so_ocfs2_xattr_get_rec_fndecl_30887 ocfs2_xattr_get_rec fndecl 0 30887 NULL nohasharray
159586 +enable_so_fifo_size_serial8250_config_30887 fifo_size serial8250_config 0 30887 &enable_so_ocfs2_xattr_get_rec_fndecl_30887 nohasharray
159587 +enable_so_max_ti_iu_len_srpt_rdma_ch_30887 max_ti_iu_len srpt_rdma_ch 0 30887 &enable_so_fifo_size_serial8250_config_30887
159588 +enable_so_queue_received_packet_fndecl_30890 queue_received_packet fndecl 5 30890 NULL
159589 +enable_so_ceph_copy_user_to_page_vector_fndecl_30896 ceph_copy_user_to_page_vector fndecl 3-4 30896 NULL
159590 +enable_so_compat_sys_keyctl_fndecl_30900 compat_sys_keyctl fndecl 4 30900 NULL
159591 +enable_so_host_addrlen_nfs4_mount_data_30905 host_addrlen nfs4_mount_data 0 30905 NULL
159592 +enable_so_word12_lpfc_mbx_read_config_30908 word12 lpfc_mbx_read_config 0 30908 NULL
159593 +enable_so_log_sq_bb_count_mlx4_ib_create_qp_30909 log_sq_bb_count mlx4_ib_create_qp 0 30909 NULL
159594 +enable_so_max_datagram_size_cdc_ncm_ctx_30918 max_datagram_size cdc_ncm_ctx 0 30918 NULL
159595 +enable_so___erst_read_from_storage_fndecl_30921 __erst_read_from_storage fndecl 0-2-1 30921 NULL
159596 +enable_so_rx_buffer_len_pch_gbe_adapter_30924 rx_buffer_len pch_gbe_adapter 0 30924 NULL nohasharray
159597 +enable_so_squashfs_export_iget_fndecl_30924 squashfs_export_iget fndecl 2 30924 &enable_so_rx_buffer_len_pch_gbe_adapter_30924
159598 +enable_so_cudlength_x25_calluserdata_30930 cudlength x25_calluserdata 0 30930 NULL
159599 +enable_so_cqe_size_mlx5_ib_resize_cq_30931 cqe_size mlx5_ib_resize_cq 0 30931 NULL
159600 +enable_so_cpci_hp_register_bus_fndecl_30935 cpci_hp_register_bus fndecl 2 30935 NULL
159601 +enable_so_id_virtio_console_control_30940 id virtio_console_control 0 30940 NULL
159602 +enable_so_dns_query_fndecl_30943 dns_query fndecl 3 30943 NULL
159603 +enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 cfg80211_tx_mlme_mgmt fndecl 3 30944 NULL nohasharray
159604 +enable_so_stride_mlx4_en_tx_ring_30944 stride mlx4_en_tx_ring 0 30944 &enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 nohasharray
159605 +enable_so_hwparams4_dwc3_hwparams_30944 hwparams4 dwc3_hwparams 0 30944 &enable_so_stride_mlx4_en_tx_ring_30944
159606 +enable_so_page_len_gssp_in_token_30948 page_len gssp_in_token 0 30948 NULL
159607 +enable_so_parse_uac2_sample_rate_range_fndecl_30949 parse_uac2_sample_rate_range fndecl 0 30949 NULL
159608 +enable_so_SYSC_ppoll_fndecl_30954 SYSC_ppoll fndecl 2 30954 NULL
159609 +enable_so_pvr2_stream_setup_fndecl_30955 pvr2_stream_setup fndecl 3 30955 NULL
159610 +enable_so_leaf_shift_right_fndecl_30957 leaf_shift_right fndecl 3 30957 NULL
159611 +enable_so_lowpan_control_write_fndecl_30960 lowpan_control_write fndecl 3 30960 NULL
159612 +enable_so___list_lru_count_one_fndecl_30962 __list_lru_count_one fndecl 0 30962 NULL
159613 +enable_so_ring_start__drm_i810_init_30964 ring_start _drm_i810_init 0 30964 NULL
159614 +enable_so_tool_mask_write_fndecl_30968 tool_mask_write fndecl 3 30968 NULL
159615 +enable_so_max_sdu_atm_trafprm_30969 max_sdu atm_trafprm 0 30969 NULL
159616 +enable_so_ieee80211_if_read_aid_fndecl_30970 ieee80211_if_read_aid fndecl 3 30970 NULL
159617 +enable_so_mt7601u_rx_skb_from_seg_fndecl_30971 mt7601u_rx_skb_from_seg fndecl 5 30971 NULL
159618 +enable_so_get_leaf_fndecl_30972 get_leaf fndecl 2 30972 NULL
159619 +enable_so_avail_out_z_stream_s_30974 avail_out z_stream_s 0 30974 NULL
159620 +enable_so__usb_write_async_fndecl_30976 _usb_write_async fndecl 4 30976 NULL nohasharray
159621 +enable_so_l2tp_ip_sendmsg_fndecl_30976 l2tp_ip_sendmsg fndecl 3 30976 &enable_so__usb_write_async_fndecl_30976
159622 +enable_so_tid_mwifiex_tx_ba_stream_tbl_30977 tid mwifiex_tx_ba_stream_tbl 0 30977 NULL
159623 +enable_so_ext4_mark_iloc_dirty_fndecl_30980 ext4_mark_iloc_dirty fndecl 0 30980 NULL
159624 +enable_so_offset_nfsd_readargs_30989 offset nfsd_readargs 0 30989 NULL
159625 +enable_so_offset_isofs_fid_30994 offset isofs_fid 0 30994 NULL
159626 +enable_so_vti6_change_mtu_fndecl_30995 vti6_change_mtu fndecl 2 30995 NULL
159627 +enable_so_s_victim_ino_logfs_super_30996 s_victim_ino logfs_super 0 30996 NULL
159628 +enable_so_l2cap_create_connless_pdu_fndecl_30997 l2cap_create_connless_pdu fndecl 3 30997 NULL
159629 +enable_so_tx_tx_prepared_descs_read_fndecl_30998 tx_tx_prepared_descs_read fndecl 3 30998 NULL
159630 +enable_so_lro_append_pkt_fndecl_31003 lro_append_pkt fndecl 4 31003 NULL
159631 +enable_so_btrfs_search_slot_fndecl_31011 btrfs_search_slot fndecl 0 31011 NULL
159632 +enable_so_max_order_mthca_buddy_31017 max_order mthca_buddy 0 31017 NULL
159633 +enable_so_hdpvr_read_fndecl_31018 hdpvr_read fndecl 3 31018 NULL
159634 +enable_so_ipoib_change_mtu_fndecl_31020 ipoib_change_mtu fndecl 2 31020 NULL
159635 +enable_so_DevSize_cfi_ident_31031 DevSize cfi_ident 0 31031 NULL
159636 +enable_so_tcf_csum_ipv4_icmp_fndecl_31033 tcf_csum_ipv4_icmp fndecl 3 31033 NULL
159637 +enable_so_ocfs2_clear_ext_refcount_fndecl_31035 ocfs2_clear_ext_refcount fndecl 4-3 31035 NULL nohasharray
159638 +enable_so_internal_depth_MPT3SAS_ADAPTER_31035 internal_depth MPT3SAS_ADAPTER 0 31035 &enable_so_ocfs2_clear_ext_refcount_fndecl_31035
159639 +enable_so_hfsplus_bnode_read_u16_fndecl_31037 hfsplus_bnode_read_u16 fndecl 0 31037 NULL
159640 +enable_so_krb5_nfold_fndecl_31038 krb5_nfold fndecl 3-1 31038 NULL
159641 +enable_so_migrate_misplaced_transhuge_page_fndecl_31041 migrate_misplaced_transhuge_page fndecl 5 31041 NULL
159642 +enable_so_qla82xx_pci_set_window_fndecl_31044 qla82xx_pci_set_window fndecl 0-2 31044 NULL
159643 +enable_so_dsp_registers_phys_echoaudio_31045 dsp_registers_phys echoaudio 0 31045 NULL
159644 +enable_so_valueblk_xfs_attr_leaf_name_remote_31051 valueblk xfs_attr_leaf_name_remote 0 31051 NULL
159645 +enable_so_ceph_sync_setxattr_fndecl_31053 ceph_sync_setxattr fndecl 4 31053 NULL
159646 +enable_so_iwl_dbgfs_stations_read_fndecl_31054 iwl_dbgfs_stations_read fndecl 3 31054 NULL
159647 +enable_so_pci_sriov_get_totalvfs_fndecl_31059 pci_sriov_get_totalvfs fndecl 0 31059 NULL nohasharray
159648 +enable_so_t4_max_qp_depth_c4iw_hw_queue_31059 t4_max_qp_depth c4iw_hw_queue 0 31059 &enable_so_pci_sriov_get_totalvfs_fndecl_31059
159649 +enable_so_drbd_bm_bits_fndecl_31061 drbd_bm_bits fndecl 0 31061 NULL
159650 +enable_so_si_lf_eblk_bfs_sb_info_31064 si_lf_eblk bfs_sb_info 0 31064 NULL
159651 +enable_so_hdr_offset_xfrm_type_31067 hdr_offset xfrm_type 0 31067 NULL
159652 +enable_so_le_max_key_size_write_fndecl_31068 le_max_key_size_write fndecl 3 31068 NULL
159653 +enable_so_bulk_in_endpointAddress_usb_serial_port_31069 bulk_in_endpointAddress usb_serial_port 0 31069 NULL
159654 +enable_so_segsize_musb_qh_31074 segsize musb_qh 0 31074 NULL
159655 +enable_so_brcmf_sdiod_recv_buf_fndecl_31083 brcmf_sdiod_recv_buf fndecl 3 31083 NULL
159656 +enable_so_get_pipes_num_fndecl_31084 get_pipes_num fndecl 0 31084 NULL
159657 +enable_so_ocfs2_orphan_for_truncate_fndecl_31085 ocfs2_orphan_for_truncate fndecl 4 31085 NULL
159658 +enable_so_nvme_trans_fmt_get_parm_header_fndecl_31087 nvme_trans_fmt_get_parm_header fndecl 2 31087 NULL
159659 +enable_so_DAC960_ControllerCount_vardecl_DAC960_c_31089 DAC960_ControllerCount vardecl_DAC960.c 0 31089 NULL
159660 +enable_so_max_fingers_rmi_data_31091 max_fingers rmi_data 0 31091 NULL
159661 +enable_so_num_crtc_vgastate_31093 num_crtc vgastate 0 31093 NULL
159662 +enable_so_screen_depth_vardecl_hyperv_fb_c_31095 screen_depth vardecl_hyperv_fb.c 0 31095 NULL nohasharray
159663 +enable_so_regmap_i2c_read_fndecl_31095 regmap_i2c_read fndecl 3-5 31095 &enable_so_screen_depth_vardecl_hyperv_fb_c_31095
159664 +enable_so_s_segsize_logfs_super_31101 s_segsize logfs_super 0 31101 NULL
159665 +enable_so_max3421_transfer_in_done_fndecl_31109 max3421_transfer_in_done fndecl 0 31109 NULL
159666 +enable_so_status_tulip_desc_t_31113 status tulip_desc_t 0 31113 NULL
159667 +enable_so_name_len_inotify_event_info_31116 name_len inotify_event_info 0 31116 NULL
159668 +enable_so_reiserfs_write_end_fndecl_31117 reiserfs_write_end fndecl 5-3 31117 NULL
159669 +enable_so_dbgfs_sram_len_iwl_priv_31119 dbgfs_sram_len iwl_priv 0 31119 NULL
159670 +enable_so_udf_UTF8toCS0_fndecl_31120 udf_UTF8toCS0 fndecl 0 31120 NULL
159671 +enable_so_dm_bm_read_lock_fndecl_31121 dm_bm_read_lock fndecl 2 31121 NULL
159672 +enable_so_amdgpu_afmt_acr_fndecl_31127 amdgpu_afmt_acr fndecl 1 31127 NULL nohasharray
159673 +enable_so_nr_chips_dsa_platform_data_31127 nr_chips dsa_platform_data 0 31127 &enable_so_amdgpu_afmt_acr_fndecl_31127
159674 +enable_so_uhci_result_isochronous_fndecl_31133 uhci_result_isochronous fndecl 0 31133 NULL nohasharray
159675 +enable_so_write_device_fndecl_31133 write_device fndecl 3 31133 &enable_so_uhci_result_isochronous_fndecl_31133
159676 +enable_so_virtqueue_add_outbuf_fndecl_31136 virtqueue_add_outbuf fndecl 3 31136 NULL
159677 +enable_so__AscCopyLramScsiDoneQ_fndecl_31137 _AscCopyLramScsiDoneQ fndecl 4 31137 NULL
159678 +enable_so_read_fndecl_31142 read fndecl 3 31142 NULL
159679 +enable_so_mwifiex_get_supported_rates_fndecl_31144 mwifiex_get_supported_rates fndecl 0 31144 NULL
159680 +enable_so_batadv_handle_claim_fndecl_31148 batadv_handle_claim fndecl 5 31148 NULL
159681 +enable_so_irttp_connect_indication_fndecl_31149 irttp_connect_indication fndecl 4-5 31149 NULL
159682 +enable_so_hpfs_count_dnodes_fndecl_31152 hpfs_count_dnodes fndecl 2 31152 NULL
159683 +enable_so_max_rx_ip_filters_efx_nic_type_31156 max_rx_ip_filters efx_nic_type 0 31156 NULL
159684 +enable_so_max_seg_size_tsap_cb_31158 max_seg_size tsap_cb 0 31158 NULL
159685 +enable_so_ocfs2_direct_IO_zero_extend_fndecl_31171 ocfs2_direct_IO_zero_extend fndecl 4 31171 NULL
159686 +enable_so_bm_realloc_pages_fndecl_31172 bm_realloc_pages fndecl 2 31172 NULL
159687 +enable_so_rcvbuf_size_bas_cardstate_31177 rcvbuf_size bas_cardstate 0 31177 NULL
159688 +enable_so_bRPipeBlockSize_usb_wa_descriptor_31178 bRPipeBlockSize usb_wa_descriptor 0 31178 NULL
159689 +enable_so_ffs_ep0_write_fndecl_31181 ffs_ep0_write fndecl 3 31181 NULL
159690 +enable_so_op_size_ost_pool_31182 op_size ost_pool 0 31182 NULL
159691 +enable_so_con_do_clear_unimap_fndecl_31185 con_do_clear_unimap fndecl 0 31185 NULL
159692 +enable_so_slhc_compress_fndecl_31190 slhc_compress fndecl 0-3 31190 NULL
159693 +enable_so_nf_nat_sip_expect_fndecl_31193 nf_nat_sip_expect fndecl 2-8 31193 NULL
159694 +enable_so_alloc_huge_page_noerr_fndecl_31196 alloc_huge_page_noerr fndecl 2 31196 NULL nohasharray
159695 +enable_so_btrfs_drop_extents_fndecl_31196 btrfs_drop_extents fndecl 5-4 31196 &enable_so_alloc_huge_page_noerr_fndecl_31196 nohasharray
159696 +enable_so_st_int_recv_fndecl_31196 st_int_recv fndecl 3 31196 &enable_so_btrfs_drop_extents_fndecl_31196
159697 +enable_so_snoop_inline_pio_send_fndecl_31206 snoop_inline_pio_send fndecl 5 31206 NULL
159698 +enable_so_agp_generic_alloc_user_fndecl_31213 agp_generic_alloc_user fndecl 1 31213 NULL nohasharray
159699 +enable_so_get_registers_fndecl_31213 get_registers fndecl 4 31213 &enable_so_agp_generic_alloc_user_fndecl_31213
159700 +enable_so_wr_ep_alauda_info_31218 wr_ep alauda_info 0 31218 NULL
159701 +enable_so_io_size_smbus_lpc_sch_info_31219 io_size_smbus lpc_sch_info 0 31219 NULL
159702 +enable_so_kmalloc_array_fndecl_31223 kmalloc_array fndecl 1-2 31223 NULL
159703 +enable_so_put_pfn_fndecl_31225 put_pfn fndecl 0 31225 NULL
159704 +enable_so_fl_align_sge_31227 fl_align sge 0 31227 NULL
159705 +enable_so_mcs_unwrap_mir_fndecl_31228 mcs_unwrap_mir fndecl 3 31228 NULL nohasharray
159706 +enable_so_iscsi_tcp_segment_done_fndecl_31228 iscsi_tcp_segment_done fndecl 4 31228 &enable_so_mcs_unwrap_mir_fndecl_31228 nohasharray
159707 +enable_so_choose_log_fs_mgm_entry_size_fndecl_31228 choose_log_fs_mgm_entry_size fndecl 0 31228 &enable_so_iscsi_tcp_segment_done_fndecl_31228
159708 +enable_so_ceph_oloc_oid_to_pg_fndecl_31232 ceph_oloc_oid_to_pg fndecl 0 31232 NULL
159709 +enable_so_kaweth_control_fndecl_31233 kaweth_control fndecl 8-2 31233 NULL
159710 +enable_so_len_ip_vs_iphdr_31235 len ip_vs_iphdr 0 31235 NULL
159711 +enable_so_length_wdm_device_31248 length wdm_device 0 31248 NULL
159712 +enable_so_SYSC_move_pages_fndecl_31249 SYSC_move_pages fndecl 2 31249 NULL
159713 +enable_so_virtio_gpu_dirty_update_fndecl_31253 virtio_gpu_dirty_update fndecl 4-3-5-6 31253 NULL
159714 +enable_so_source_id_acpi_hest_header_31256 source_id acpi_hest_header 0 31256 NULL
159715 +enable_so_rbdr_len_queue_set_31258 rbdr_len queue_set 0 31258 NULL
159716 +enable_so_orig_video_lines_screen_info_31267 orig_video_lines screen_info 0 31267 NULL nohasharray
159717 +enable_so_data_dma_hanwang_31267 data_dma hanwang 0 31267 &enable_so_orig_video_lines_screen_info_31267
159718 +enable_so_vm_iomap_memory_fndecl_31269 vm_iomap_memory fndecl 2 31269 NULL
159719 +enable_so_end_incl_vringh_range_31272 end_incl vringh_range 0 31272 NULL
159720 +enable_so_ascot2e_read_regs_fndecl_31273 ascot2e_read_regs fndecl 4 31273 NULL
159721 +enable_so_packet_length_rc_config_31278 packet_length rc_config 0 31278 NULL
159722 +enable_so_aat2870_dump_reg_fndecl_31280 aat2870_dump_reg fndecl 0 31280 NULL
159723 +enable_so_irq_pcmcia_device_31283 irq pcmcia_device 0 31283 NULL nohasharray
159724 +enable_so_ecp_read_data_parport_operations_31283 ecp_read_data parport_operations 0 31283 &enable_so_irq_pcmcia_device_31283
159725 +enable_so_mmap_base_kioctx_31285 mmap_base kioctx 0 31285 NULL
159726 +enable_so_igb_enable_sriov_fndecl_31288 igb_enable_sriov fndecl 2 31288 NULL
159727 +enable_so_nfs_readdir_page_filler_fndecl_31292 nfs_readdir_page_filler fndecl 5 31292 NULL
159728 +enable_so_asymmetric_key_generate_id_fndecl_31299 asymmetric_key_generate_id fndecl 4-2 31299 NULL
159729 +enable_so_fs_shift_hfsplus_sb_info_31309 fs_shift hfsplus_sb_info 0 31309 NULL
159730 +enable_so_rxblen_brcmf_sdio_31317 rxblen brcmf_sdio 0 31317 NULL
159731 +enable_so_bio_integrity_add_page_fndecl_31320 bio_integrity_add_page fndecl 4-3 31320 NULL
159732 +enable_so_gsi_end_mp_ioapic_gsi_31327 gsi_end mp_ioapic_gsi 0 31327 NULL
159733 +enable_so_scatter_len_efx_rx_queue_31330 scatter_len efx_rx_queue 0 31330 NULL nohasharray
159734 +enable_so_drm_do_probe_ddc_edid_fndecl_31330 drm_do_probe_ddc_edid fndecl 4 31330 &enable_so_scatter_len_efx_rx_queue_31330
159735 +enable_so_ubifs_tnc_add_fndecl_31332 ubifs_tnc_add fndecl 5-4 31332 NULL
159736 +enable_so_cur_frames_osst_tape_31335 cur_frames osst_tape 0 31335 NULL
159737 +enable_so_size_ttm_bus_placement_31338 size ttm_bus_placement 0 31338 NULL
159738 +enable_so_get_elem_size_fndecl_31341 get_elem_size fndecl 0-2 31341 NULL
159739 +enable_so_block_sz_htc_target_31342 block_sz htc_target 0 31342 NULL
159740 +enable_so_sdio_writesb_fndecl_31345 sdio_writesb fndecl 4 31345 NULL
159741 +enable_so_bulk_in_size_usb_serial_driver_31350 bulk_in_size usb_serial_driver 0 31350 NULL
159742 +enable_so_cifs_llseek_fndecl_31352 cifs_llseek fndecl 2 31352 NULL
159743 +enable_so_nr_create_fndecl_31357 nr_create fndecl 3 31357 NULL nohasharray
159744 +enable_so_size_power_iwl_fw_dbg_dest_tlv_31357 size_power iwl_fw_dbg_dest_tlv 0 31357 &enable_so_nr_create_fndecl_31357
159745 +enable_so_device_acpiphp_slot_31359 device acpiphp_slot 0 31359 NULL
159746 +enable_so_romfs_dev_strcmp_fndecl_31365 romfs_dev_strcmp fndecl 4-2 31365 NULL nohasharray
159747 +enable_so_SyS_migrate_pages_fndecl_31365 SyS_migrate_pages fndecl 2 31365 &enable_so_romfs_dev_strcmp_fndecl_31365
159748 +enable_so_req_lim_delta_srp_rsp_31371 req_lim_delta srp_rsp 0 31371 NULL
159749 +enable_so_ioctl_fndecl_31375 ioctl fndecl 3 31375 NULL
159750 +enable_so_gfs2_meta_read_fndecl_31379 gfs2_meta_read fndecl 2 31379 NULL
159751 +enable_so_s_stripe_ext4_sb_info_31391 s_stripe ext4_sb_info 0 31391 NULL
159752 +enable_so_spi_populate_sync_msg_fndecl_31392 spi_populate_sync_msg fndecl 0 31392 NULL
159753 +enable_so_brcmf_msgbuf_init_pktids_fndecl_31395 brcmf_msgbuf_init_pktids fndecl 1 31395 NULL
159754 +enable_so_ip_tunnel_bind_dev_fndecl_31398 ip_tunnel_bind_dev fndecl 0 31398 NULL nohasharray
159755 +enable_so_asd_store_update_bios_fndecl_31398 asd_store_update_bios fndecl 4 31398 &enable_so_ip_tunnel_bind_dev_fndecl_31398
159756 +enable_so_persistent_ram_vmap_fndecl_31402 persistent_ram_vmap fndecl 1-2 31402 NULL
159757 +enable_so_number_xt_table_info_31404 number xt_table_info 0 31404 NULL
159758 +enable_so_num_types_amdgpu_irq_src_31405 num_types amdgpu_irq_src 0 31405 NULL
159759 +enable_so_proc_pid_attr_read_fndecl_31406 proc_pid_attr_read fndecl 3 31406 NULL nohasharray
159760 +enable_so_rxrpc_rx_window_size_vardecl_31406 rxrpc_rx_window_size vardecl 0 31406 &enable_so_proc_pid_attr_read_fndecl_31406
159761 +enable_so_data_offset_msgbuf_rx_complete_31409 data_offset msgbuf_rx_complete 0 31409 NULL
159762 +enable_so_zone_count_msb_data_31413 zone_count msb_data 0 31413 NULL
159763 +enable_so_sg_tablesize_sg_device_31415 sg_tablesize sg_device 0 31415 NULL
159764 +enable_so_unmap_region_fndecl_31420 unmap_region fndecl 5-4 31420 NULL
159765 +enable_so_bch_bucket_alloc_fndecl_31421 bch_bucket_alloc fndecl 0 31421 NULL
159766 +enable_so_rx_out_of_mem_read_fndecl_31422 rx_out_of_mem_read fndecl 3 31422 NULL
159767 +enable_so_recovery_offset_md_rdev_31426 recovery_offset md_rdev 0 31426 NULL
159768 +enable_so_len_brcmf_vs_tlv_31430 len brcmf_vs_tlv 0 31430 NULL nohasharray
159769 +enable_so_onenand_read_oob_nolock_fndecl_31430 onenand_read_oob_nolock fndecl 2 31430 &enable_so_len_brcmf_vs_tlv_31430
159770 +enable_so_mpx_unmap_tables_fndecl_31439 mpx_unmap_tables fndecl 2-3 31439 NULL
159771 +enable_so_vc_x_vc_data_31443 vc_x vc_data 0 31443 NULL
159772 +enable_so_jffs2_user_setxattr_fndecl_31445 jffs2_user_setxattr fndecl 4 31445 NULL nohasharray
159773 +enable_so_fid_ino_xfs_fid_31445 fid_ino xfs_fid 0 31445 &enable_so_jffs2_user_setxattr_fndecl_31445
159774 +enable_so_gro_size_bnx2x_agg_info_31450 gro_size bnx2x_agg_info 0 31450 NULL
159775 +enable_so_length_wsm_ssid_31452 length wsm_ssid 0 31452 NULL
159776 +enable_so_max_sz_mmc_test_area_31453 max_sz mmc_test_area 0 31453 NULL
159777 +enable_so_i_eattr_gfs2_inode_31461 i_eattr gfs2_inode 0 31461 NULL
159778 +enable_so_length__diva_xdi_um_cfg_cmd_data_read_sdram_31465 length _diva_xdi_um_cfg_cmd_data_read_sdram 0 31465 NULL
159779 +enable_so_drbd_send_all_fndecl_31468 drbd_send_all fndecl 4 31468 NULL
159780 +enable_so_ip_encap_hlen_fndecl_31469 ip_encap_hlen fndecl 0 31469 NULL
159781 +enable_so_len_mmap_arg_struct32_31471 len mmap_arg_struct32 0 31471 NULL nohasharray
159782 +enable_so_videobuf_dma_init_overlay_fndecl_31471 videobuf_dma_init_overlay fndecl 4 31471 &enable_so_len_mmap_arg_struct32_31471
159783 +enable_so_wl12xx_spi_raw_write_fndecl_31482 wl12xx_spi_raw_write fndecl 4 31482 NULL
159784 +enable_so_nr_voices_seq_oss_synthinfo_31487 nr_voices seq_oss_synthinfo 0 31487 NULL
159785 +enable_so_length_rsd_31489 length rsd 0 31489 NULL
159786 +enable_so_regmap_multi_reg_write_bypassed_fndecl_31492 regmap_multi_reg_write_bypassed fndecl 3 31492 NULL
159787 +enable_so_bfa_lun_queue_depth_vardecl_31497 bfa_lun_queue_depth vardecl 0 31497 NULL
159788 +enable_so_size_intel_stolen_funcs_31503 size intel_stolen_funcs 0 31503 NULL
159789 +enable_so_PIXDEPTH_kyrofb_info_31509 PIXDEPTH kyrofb_info 0 31509 NULL
159790 +enable_so_fixed_size_llseek_fndecl_31512 fixed_size_llseek fndecl 2-4 31512 NULL
159791 +enable_so_bfad_iocmd_pcifn_bw_fndecl_31515 bfad_iocmd_pcifn_bw fndecl 0 31515 NULL
159792 +enable_so_ddb_input_read_fndecl_31516 ddb_input_read fndecl 3-0 31516 NULL
159793 +enable_so_shmem_replace_page_fndecl_31519 shmem_replace_page fndecl 4 31519 NULL
159794 +enable_so_tx_iovlen_ncp_request_reply_31522 tx_iovlen ncp_request_reply 0 31522 NULL
159795 +enable_so_ext4_mb_init_group_fndecl_31530 ext4_mb_init_group fndecl 0 31530 NULL
159796 +enable_so_port_mlx5_qp_path_31531 port mlx5_qp_path 0 31531 NULL nohasharray
159797 +enable_so_residual_datacnt_status_pkt_31531 residual_datacnt status_pkt 0 31531 &enable_so_port_mlx5_qp_path_31531
159798 +enable_so_rx_pipe_usbpn_dev_31540 rx_pipe usbpn_dev 0 31540 NULL
159799 +enable_so_tcp_tso_acked_fndecl_31549 tcp_tso_acked fndecl 0 31549 NULL
159800 +enable_so_stride_drm_qxl_alloc_surf_31551 stride drm_qxl_alloc_surf 0 31551 NULL nohasharray
159801 +enable_so_ks_rdreg16_fndecl_31551 ks_rdreg16 fndecl 0 31551 &enable_so_stride_drm_qxl_alloc_surf_31551
159802 +enable_so_start_genius_videocam_live_fndecl_31552 start_genius_videocam_live fndecl 0 31552 NULL
159803 +enable_so_ieee80211_if_read_state_fndecl_31558 ieee80211_if_read_state fndecl 3 31558 NULL
159804 +enable_so_resp_sas_pcd_m_spg_fndecl_31559 resp_sas_pcd_m_spg fndecl 0 31559 NULL
159805 +enable_so_kernel_physical_mapping_init_fndecl_31561 kernel_physical_mapping_init fndecl 0-2 31561 NULL
159806 +enable_so_qlcnic_validate_ringparam_fndecl_31569 qlcnic_validate_ringparam fndecl 0 31569 NULL
159807 +enable_so_bio_alloc_map_data_fndecl_31573 bio_alloc_map_data fndecl 1 31573 NULL
159808 +enable_so_vmcb_nested_state_31575 vmcb nested_state 0 31575 NULL
159809 +enable_so_can_change_mtu_fndecl_31583 can_change_mtu fndecl 2 31583 NULL nohasharray
159810 +enable_so_ib_uverbs_resize_cq_fndecl_31583 ib_uverbs_resize_cq fndecl 4 31583 &enable_so_can_change_mtu_fndecl_31583
159811 +enable_so_dvb_dvr_set_buffer_size_fndecl_31587 dvb_dvr_set_buffer_size fndecl 2 31587 NULL
159812 +enable_so_num_txq_bna_attr_31588 num_txq bna_attr 0 31588 NULL
159813 +enable_so_v_max_out_saa7146_standard_31591 v_max_out saa7146_standard 0 31591 NULL
159814 +enable_so_nbchannel_capi_profile_31592 nbchannel capi_profile 0 31592 NULL
159815 +enable_so_radeon_gart_size_auto_fndecl_31605 radeon_gart_size_auto fndecl 0 31605 NULL
159816 +enable_so_sys_mprotect_fndecl_31611 sys_mprotect fndecl 2-1 31611 NULL
159817 +enable_so_ino_logfs_object_header_31613 ino logfs_object_header 0 31613 NULL
159818 +enable_so_iterate_fd_fndecl_31615 iterate_fd fndecl 0 31615 NULL
159819 +enable_so_wil_read_file_ioblob_fndecl_31621 wil_read_file_ioblob fndecl 3 31621 NULL
159820 +enable_so_a_entry_exec_31622 a_entry exec 0 31622 NULL nohasharray
159821 +enable_so_PyLen_hfs_cat_file_31622 PyLen hfs_cat_file 0 31622 &enable_so_a_entry_exec_31622
159822 +enable_so_vma_merge_fndecl_31624 vma_merge fndecl 4-3 31624 NULL nohasharray
159823 +enable_so_ping_v4_sendmsg_fndecl_31624 ping_v4_sendmsg fndecl 3 31624 &enable_so_vma_merge_fndecl_31624
159824 +enable_so_port_num_ib_ah_attr_31626 port_num ib_ah_attr 0 31626 NULL
159825 +enable_so_num_gap_ack_blocks_sctp_sackhdr_31630 num_gap_ack_blocks sctp_sackhdr 0 31630 NULL
159826 +enable_so_eq_textcnt_max98095_priv_31635 eq_textcnt max98095_priv 0 31635 NULL
159827 +enable_so_nv04_fifo_new__fndecl_31639 nv04_fifo_new_ fndecl 4 31639 NULL
159828 +enable_so_segsize_dn_skb_cb_31640 segsize dn_skb_cb 0 31640 NULL
159829 +enable_so_pep_recvmsg_fndecl_31641 pep_recvmsg fndecl 3 31641 NULL
159830 +enable_so_pmcraid_alloc_sglist_fndecl_31643 pmcraid_alloc_sglist fndecl 1 31643 NULL
159831 +enable_so_ext4_free_blocks_fndecl_31648 ext4_free_blocks fndecl 4-5 31648 NULL nohasharray
159832 +enable_so_av_buf_tail_dccp_ackvec_31648 av_buf_tail dccp_ackvec 0 31648 &enable_so_ext4_free_blocks_fndecl_31648
159833 +enable_so_mwifiex_set_wpa_ie_helper_fndecl_31650 mwifiex_set_wpa_ie_helper fndecl 3 31650 NULL
159834 +enable_so_brk_prctl_mm_map_31652 brk prctl_mm_map 0 31652 NULL
159835 +enable_so_bpp_uvc_format_31654 bpp uvc_format 0 31654 NULL
159836 +enable_so_nonpaging_page_fault_fndecl_31655 nonpaging_page_fault fndecl 2 31655 NULL
159837 +enable_so_compat_sys_ipc_fndecl_31659 compat_sys_ipc fndecl 3 31659 NULL
159838 +enable_so_ext4_map_blocks_fndecl_31663 ext4_map_blocks fndecl 0 31663 NULL
159839 +enable_so_hp_hpet_phys_hpets_31664 hp_hpet_phys hpets 0 31664 NULL
159840 +enable_so_read_dma_ims_pcu_31667 read_dma ims_pcu 0 31667 NULL nohasharray
159841 +enable_so_len_hda_conn_list_31667 len hda_conn_list 0 31667 &enable_so_read_dma_ims_pcu_31667
159842 +enable_so_residual_count_iscsi_scsi_rsp_31668 residual_count iscsi_scsi_rsp 0 31668 NULL
159843 +enable_so_bm_register_write_fndecl_31670 bm_register_write fndecl 3 31670 NULL nohasharray
159844 +enable_so_snd_midi_event_new_fndecl_31670 snd_midi_event_new fndecl 1 31670 &enable_so_bm_register_write_fndecl_31670 nohasharray
159845 +enable_so_set_capacity_fndecl_31670 set_capacity fndecl 2 31670 &enable_so_snd_midi_event_new_fndecl_31670
159846 +enable_so_fragment_ufs_buffer_head_31676 fragment ufs_buffer_head 0 31676 NULL
159847 +enable_so_rx_header_len_pn533_frame_ops_31680 rx_header_len pn533_frame_ops 0 31680 NULL
159848 +enable_so_dsa_of_setup_routing_table_fndecl_31686 dsa_of_setup_routing_table fndecl 0 31686 NULL
159849 +enable_so_end_hdmi_pulse_31692 end hdmi_pulse 0 31692 NULL
159850 +enable_so_set_rxd_buffer_pointer_fndecl_31693 set_rxd_buffer_pointer fndecl 8 31693 NULL
159851 +enable_so_read_file_misc_fndecl_31695 read_file_misc fndecl 3 31695 NULL
159852 +enable_so_sr_write_cmd_async_fndecl_31698 sr_write_cmd_async fndecl 5 31698 NULL
159853 +enable_so_TargetsPerBus_aac_bus_info_response_31699 TargetsPerBus aac_bus_info_response 0 31699 NULL
159854 +enable_so_init_pipe_urbs_fndecl_31704 init_pipe_urbs fndecl 2-6 31704 NULL
159855 +enable_so_len_ib_ucm_lap_31705 len ib_ucm_lap 0 31705 NULL
159856 +enable_so_iwl_dbgfs_prph_reg_read_fndecl_31707 iwl_dbgfs_prph_reg_read fndecl 3 31707 NULL
159857 +enable_so_get_free_serial_index_fndecl_31714 get_free_serial_index fndecl 0 31714 NULL
159858 +enable_so_s5p_jpeg_compressed_size_fndecl_31715 s5p_jpeg_compressed_size fndecl 0 31715 NULL
159859 +enable_so_seg_count_ib_mad_send_buf_31716 seg_count ib_mad_send_buf 0 31716 NULL
159860 +enable_so_btrfs_add_link_fndecl_31718 btrfs_add_link fndecl 5 31718 NULL
159861 +enable_so_compat_import_iovec_fndecl_31721 compat_import_iovec fndecl 3 31721 NULL
159862 +enable_so_offset_nfs_pgio_args_31727 offset nfs_pgio_args 0 31727 NULL
159863 +enable_so_ext2_new_blocks_fndecl_31729 ext2_new_blocks fndecl 0-2 31729 NULL nohasharray
159864 +enable_so_channels_mask_sh_timer_config_31729 channels_mask sh_timer_config 0 31729 &enable_so_ext2_new_blocks_fndecl_31729
159865 +enable_so_recv_bm_rle_bits_fndecl_31731 recv_bm_rle_bits fndecl 4 31731 NULL
159866 +enable_so_SyS_gethostname_fndecl_31743 SyS_gethostname fndecl 2 31743 NULL
159867 +enable_so_ih_ring_entry_size_kfd_device_info_31745 ih_ring_entry_size kfd_device_info 0 31745 NULL
159868 +enable_so_nxt200x_writereg_multibyte_fndecl_31757 nxt200x_writereg_multibyte fndecl 4 31757 NULL
159869 +enable_so_bio_readpage_error_fndecl_31761 bio_readpage_error fndecl 4-5 31761 NULL
159870 +enable_so_ahc_linux_user_tagdepth_fndecl_31764 ahc_linux_user_tagdepth fndecl 0 31764 NULL
159871 +enable_so_i_size_dio_31770 i_size dio 0 31770 NULL
159872 +enable_so_i40e_init_msix_fndecl_31776 i40e_init_msix fndecl 0 31776 NULL
159873 +enable_so_iommu_pgshift_gk20a_instmem_31778 iommu_pgshift gk20a_instmem 0 31778 NULL
159874 +enable_so_fore200e_chunk_alloc_fndecl_31782 fore200e_chunk_alloc fndecl 4-3 31782 NULL
159875 +enable_so_passdown_double_checking_shared_status_fndecl_31783 passdown_double_checking_shared_status fndecl 0 31783 NULL
159876 +enable_so_dev_config_fndecl_31785 dev_config fndecl 3 31785 NULL
159877 +enable_so_endpt_ubifs_scan_leb_31792 endpt ubifs_scan_leb 0 31792 NULL
159878 +enable_so_minix_V2_raw_inode_fndecl_31793 minix_V2_raw_inode fndecl 2 31793 NULL nohasharray
159879 +enable_so_irq_gpio_lpc_sch_info_31793 irq_gpio lpc_sch_info 0 31793 &enable_so_minix_V2_raw_inode_fndecl_31793 nohasharray
159880 +enable_so_afs_cell_lookup_fndecl_31793 afs_cell_lookup fndecl 2 31793 &enable_so_irq_gpio_lpc_sch_info_31793
159881 +enable_so_mml_isar_ch_31799 mml isar_ch 0 31799 NULL
159882 +enable_so_pcslen_udp_sock_31800 pcslen udp_sock 0 31800 NULL
159883 +enable_so_parent_i_pos_low_fat_fid_31802 parent_i_pos_low fat_fid 0 31802 NULL
159884 +enable_so_bg_inode_table_ext2_group_desc_31805 bg_inode_table ext2_group_desc 0 31805 NULL
159885 +enable_so_target_submit_cmd_map_sgls_fndecl_31806 target_submit_cmd_map_sgls fndecl 6-11-15 31806 NULL
159886 +enable_so_secure_dccp_sequence_number_fndecl_31815 secure_dccp_sequence_number fndecl 0 31815 NULL nohasharray
159887 +enable_so_track_pfn_insert_fndecl_31815 track_pfn_insert fndecl 3 31815 &enable_so_secure_dccp_sequence_number_fndecl_31815 nohasharray
159888 +enable_so_snd_malloc_sgbuf_pages_fndecl_31815 snd_malloc_sgbuf_pages fndecl 2 31815 &enable_so_track_pfn_insert_fndecl_31815
159889 +enable_so_NumPhys__MPI2_CONFIG_PAGE_EXPANDER_0_31816 NumPhys _MPI2_CONFIG_PAGE_EXPANDER_0 0 31816 NULL
159890 +enable_so_const_channel_count_hda_gen_spec_31817 const_channel_count hda_gen_spec 0 31817 NULL nohasharray
159891 +enable_so_spu_read_fndecl_31817 spu_read fndecl 4-0 31817 &enable_so_const_channel_count_hda_gen_spec_31817
159892 +enable_so___skb_get_poff_fndecl_31821 __skb_get_poff fndecl 0 31821 NULL
159893 +enable_so_needed_size_conf_writedata_31827 needed_size conf_writedata 0 31827 NULL
159894 +enable_so_fw_iocb_count_qla_hw_data_31830 fw_iocb_count qla_hw_data 0 31830 NULL
159895 +enable_so_byte_len_svc_rdma_op_ctxt_31832 byte_len svc_rdma_op_ctxt 0 31832 NULL nohasharray
159896 +enable_so_num_partition_entries__gpt_header_31832 num_partition_entries _gpt_header 0 31832 &enable_so_byte_len_svc_rdma_op_ctxt_31832
159897 +enable_so_num_tty_driver_31834 num tty_driver 0 31834 NULL
159898 +enable_so_n_channels_efx_nic_31838 n_channels efx_nic 0 31838 NULL nohasharray
159899 +enable_so_locked_vm_mm_struct_31838 locked_vm mm_struct 0 31838 &enable_so_n_channels_efx_nic_31838
159900 +enable_so_opticon_process_data_packet_fndecl_31839 opticon_process_data_packet fndecl 3 31839 NULL
159901 +enable_so_ds_block_shift_logfs_disk_super_31840 ds_block_shift logfs_disk_super 0 31840 NULL
159902 +enable_so_cache_slow_downcall_fndecl_31849 cache_slow_downcall fndecl 2 31849 NULL
159903 +enable_so_sys_munlock_fndecl_31851 sys_munlock fndecl 1-2 31851 NULL
159904 +enable_so_isr_dma0_done_read_fndecl_31853 isr_dma0_done_read fndecl 3 31853 NULL
159905 +enable_so_vco_mult_arizona_fll_31858 vco_mult arizona_fll 0 31858 NULL
159906 +enable_so_msi2500_convert_stream_fndecl_31862 msi2500_convert_stream fndecl 0 31862 NULL
159907 +enable_so_LgLen_hfs_cat_file_31866 LgLen hfs_cat_file 0 31866 NULL
159908 +enable_so_profile_remove_fndecl_31871 profile_remove fndecl 3 31871 NULL
159909 +enable_so_maxp_usbhs_pipe_31872 maxp usbhs_pipe 0 31872 NULL
159910 +enable_so_gseg_gru_set_context_option_req_31876 gseg gru_set_context_option_req 0 31876 NULL
159911 +enable_so_i_lastfrag_ufs_inode_info_31879 i_lastfrag ufs_inode_info 0 31879 NULL
159912 +enable_so_sctp_user_addto_chunk_fndecl_31881 sctp_user_addto_chunk fndecl 2 31881 NULL
159913 +enable_so_reallocate_resource_fndecl_31885 reallocate_resource fndecl 3 31885 NULL
159914 +enable_so_first_user_ctxt_qib_devdata_31889 first_user_ctxt qib_devdata 0 31889 NULL
159915 +enable_so_max_tasks_bnx2fc_hba_31893 max_tasks bnx2fc_hba 0 31893 NULL
159916 +enable_so_tower_write_fndecl_31895 tower_write fndecl 3 31895 NULL
159917 +enable_so_max_packet_size_snd_line6_pcm_31899 max_packet_size snd_line6_pcm 0 31899 NULL
159918 +enable_so_ieee80211_get_hdrlen_from_buf_fndecl_31900 ieee80211_get_hdrlen_from_buf fndecl 0 31900 NULL
159919 +enable_so_size_macb_tx_skb_31904 size macb_tx_skb 0 31904 NULL
159920 +enable_so_vram_vardecl_atyfb_base_c_31909 vram vardecl_atyfb_base.c 0 31909 NULL nohasharray
159921 +enable_so_lengthExtendedAttr_fileEntry_31909 lengthExtendedAttr fileEntry 0 31909 &enable_so_vram_vardecl_atyfb_base_c_31909
159922 +enable_so_it821x_firmware_command_fndecl_31911 it821x_firmware_command fndecl 3 31911 NULL
159923 +enable_so_num_packets_em28xx_usb_bufs_31912 num_packets em28xx_usb_bufs 0 31912 NULL nohasharray
159924 +enable_so_rxkad_secure_packet_fndecl_31912 rxkad_secure_packet fndecl 3 31912 &enable_so_num_packets_em28xx_usb_bufs_31912
159925 +enable_so_drvr_qdepth_blogic_adapter_31915 drvr_qdepth blogic_adapter 0 31915 NULL nohasharray
159926 +enable_so_scsi_dma_map_fndecl_31915 scsi_dma_map fndecl 0 31915 &enable_so_drvr_qdepth_blogic_adapter_31915
159927 +enable_so_mtu_gsm_mux_31917 mtu gsm_mux 0 31917 NULL
159928 +enable_so_fuse_send_write_pages_fndecl_31919 fuse_send_write_pages fndecl 0-5 31919 NULL
159929 +enable_so_db_to_fdindex_xfs_dir_ops_31920 db_to_fdindex xfs_dir_ops 0 31920 NULL
159930 +enable_so_bus_bm_wait_for_ack_i2400m_31925 bus_bm_wait_for_ack i2400m 0 31925 NULL
159931 +enable_so_cfs_cpt_number_fndecl_31929 cfs_cpt_number fndecl 0 31929 NULL
159932 +enable_so_physical_block_size_scsi_disk_31931 physical_block_size scsi_disk 0 31931 NULL
159933 +enable_so_rmmio_size_radeon_device_31934 rmmio_size radeon_device 0 31934 NULL
159934 +enable_so_mthca_rate_to_ib_fndecl_31936 mthca_rate_to_ib fndecl 0 31936 NULL nohasharray
159935 +enable_so_tool_spad_read_fndecl_31936 tool_spad_read fndecl 3 31936 &enable_so_mthca_rate_to_ib_fndecl_31936
159936 +enable_so_channel_iio_chan_spec_31939 channel iio_chan_spec 0 31939 NULL nohasharray
159937 +enable_so_mesh_rx_plink_frame_fndecl_31939 mesh_rx_plink_frame fndecl 3 31939 &enable_so_channel_iio_chan_spec_31939
159938 +enable_so_mlx5_vzalloc_fndecl_31940 mlx5_vzalloc fndecl 1 31940 NULL
159939 +enable_so_ptr_i915_gem_userptr_31948 ptr i915_gem_userptr 0 31948 NULL
159940 +enable_so__read_mtd_info_31950 _read mtd_info 0 31950 NULL
159941 +enable_so_buf_height_tpg_data_31953 buf_height tpg_data 0 31953 NULL
159942 +enable_so_udp6_gro_complete_fndecl_31954 udp6_gro_complete fndecl 2 31954 NULL
159943 +enable_so_usHSyncOffset__ATOM_DTD_FORMAT_31956 usHSyncOffset _ATOM_DTD_FORMAT 0 31956 NULL
159944 +enable_so_ufs_add_fragments_fndecl_31963 ufs_add_fragments fndecl 2-0 31963 NULL
159945 +enable_so_bmc150_accel_fifo_flush_fndecl_31972 bmc150_accel_fifo_flush fndecl 2 31972 NULL nohasharray
159946 +enable_so_isdn_tty_write_fndecl_31972 isdn_tty_write fndecl 3 31972 &enable_so_bmc150_accel_fifo_flush_fndecl_31972
159947 +enable_so_se_dev_align_max_sectors_fndecl_31975 se_dev_align_max_sectors fndecl 0-2-1 31975 NULL
159948 +enable_so_buffer_max_vardecl_floppy_c_31976 buffer_max vardecl_floppy.c 0 31976 NULL
159949 +enable_so_i_size_read_fndecl_31980 i_size_read fndecl 0 31980 NULL
159950 +enable_so_arcfb_write_fndecl_31981 arcfb_write fndecl 3 31981 NULL
159951 +enable_so_max_commands_ctlr_info_31984 max_commands ctlr_info 0 31984 NULL
159952 +enable_so_record_size_ramoops_context_31989 record_size ramoops_context 0 31989 NULL nohasharray
159953 +enable_so_flash_offset_jffs2_raw_node_ref_31989 flash_offset jffs2_raw_node_ref 0 31989 &enable_so_record_size_ramoops_context_31989 nohasharray
159954 +enable_so_lbs_bcnmiss_read_fndecl_31989 lbs_bcnmiss_read fndecl 3 31989 &enable_so_flash_offset_jffs2_raw_node_ref_31989
159955 +enable_so_e_blocks_omfs_extent_entry_31992 e_blocks omfs_extent_entry 0 31992 NULL
159956 +enable_so_link_duplex_qlcnic_hardware_context_31996 link_duplex qlcnic_hardware_context 0 31996 NULL
159957 +enable_so_rproc_trace_read_fndecl_31997 rproc_trace_read fndecl 3 31997 NULL
159958 +enable_so_isofs_get_block_fndecl_32000 isofs_get_block fndecl 2 32000 NULL
159959 +enable_so_blocksize_sddr09_card_info_32003 blocksize sddr09_card_info 0 32003 NULL nohasharray
159960 +enable_so_bg_next_group_ocfs2_group_desc_32003 bg_next_group ocfs2_group_desc 0 32003 &enable_so_blocksize_sddr09_card_info_32003 nohasharray
159961 +enable_so_bfad_iocmd_port_enable_fndecl_32003 bfad_iocmd_port_enable fndecl 0 32003 &enable_so_bg_next_group_ocfs2_group_desc_32003
159962 +enable_so_ss_descs_count_ffs_data_32006 ss_descs_count ffs_data 0 32006 NULL
159963 +enable_so_rt2x00debug_write_bbp_fndecl_32007 rt2x00debug_write_bbp fndecl 3 32007 NULL
159964 +enable_so_play_iframe_fndecl_32008 play_iframe fndecl 3 32008 NULL
159965 +enable_so_ad7879_spi_multi_read_fndecl_32009 ad7879_spi_multi_read fndecl 3 32009 NULL
159966 +enable_so_size_tiger_dma_32013 size tiger_dma 0 32013 NULL nohasharray
159967 +enable_so_elants_i2c_read_fndecl_32013 elants_i2c_read fndecl 3 32013 &enable_so_size_tiger_dma_32013
159968 +enable_so_m_lblk_f2fs_map_blocks_32016 m_lblk f2fs_map_blocks 0 32016 NULL
159969 +enable_so_blocksize_udf_options_32019 blocksize udf_options 0 32019 NULL
159970 +enable_so_depth_zr364xx_fmt_32028 depth zr364xx_fmt 0 32028 NULL
159971 +enable_so_recent_mt_proc_write_fndecl_32029 recent_mt_proc_write fndecl 3 32029 NULL
159972 +enable_so_check_xattr_ref_inode_fndecl_32039 check_xattr_ref_inode fndecl 0 32039 NULL
159973 +enable_so_base_efifb_dmi_info_32041 base efifb_dmi_info 0 32041 NULL
159974 +enable_so_balloon_set_new_target_fndecl_32044 balloon_set_new_target fndecl 1 32044 NULL
159975 +enable_so_next_free_pstore_32049 next_free pstore 0 32049 NULL
159976 +enable_so_kvm_mmu_page_set_gfn_fndecl_32050 kvm_mmu_page_set_gfn fndecl 2 32050 NULL
159977 +enable_so_g_num_of_iommus_vardecl_intel_iommu_c_32059 g_num_of_iommus vardecl_intel-iommu.c 0 32059 NULL
159978 +enable_so_config_size_nd_cmd_get_config_size_32073 config_size nd_cmd_get_config_size 0 32073 NULL
159979 +enable_so_rproc_recovery_write_fndecl_32074 rproc_recovery_write fndecl 3 32074 NULL
159980 +enable_so_add_rx_skb_fndecl_32082 add_rx_skb fndecl 3 32082 NULL
159981 +enable_so_s_first_data_block_nilfs_super_block_32083 s_first_data_block nilfs_super_block 0 32083 NULL nohasharray
159982 +enable_so_chunk_size_irctl_32083 chunk_size irctl 0 32083 &enable_so_s_first_data_block_nilfs_super_block_32083
159983 +enable_so_ip6_tnl_err_fndecl_32086 ip6_tnl_err fndecl 8 32086 NULL nohasharray
159984 +enable_so_t3_init_l2t_fndecl_32086 t3_init_l2t fndecl 1 32086 &enable_so_ip6_tnl_err_fndecl_32086
159985 +enable_so_omfs_clear_range_fndecl_32087 omfs_clear_range fndecl 2 32087 NULL
159986 +enable_so_write_tty_ldisc_ops_32094 write tty_ldisc_ops 0 32094 NULL
159987 +enable_so_ocfs2_ilookup_fndecl_32100 ocfs2_ilookup fndecl 2 32100 NULL
159988 +enable_so_pci_scan_slot_fndecl_32102 pci_scan_slot fndecl 2 32102 NULL
159989 +enable_so_rate_min_audioformat_32106 rate_min audioformat 0 32106 NULL
159990 +enable_so_offset_p9_fcall_32116 offset p9_fcall 0 32116 NULL nohasharray
159991 +enable_so_jffs2_sum_scan_sumnode_fndecl_32116 jffs2_sum_scan_sumnode fndecl 4 32116 &enable_so_offset_p9_fcall_32116
159992 +enable_so_config_rom_length_fw_device_32117 config_rom_length fw_device 0 32117 NULL
159993 +enable_so_height_drm_mode_fb_cmd2_32120 height drm_mode_fb_cmd2 0 32120 NULL
159994 +enable_so_rcvegrcnt_qib_ctxtdata_32127 rcvegrcnt qib_ctxtdata 0 32127 NULL
159995 +enable_so_ip6_make_skb_fndecl_32129 ip6_make_skb fndecl 5-4 32129 NULL nohasharray
159996 +enable_so_first_slot_vardecl_cpcihp_generic_c_32129 first_slot vardecl_cpcihp_generic.c 0 32129 &enable_so_ip6_make_skb_fndecl_32129
159997 +enable_so_lpfc_debugfs_max_slow_ring_trc_vardecl_lpfc_debugfs_c_32130 lpfc_debugfs_max_slow_ring_trc vardecl_lpfc_debugfs.c 0 32130 NULL
159998 +enable_so_sb_gquotino_xfs_sb_32131 sb_gquotino xfs_sb 0 32131 NULL
159999 +enable_so_sync_request_fndecl_32141 sync_request fndecl 2 32141 NULL nohasharray
160000 +enable_so_fsector_t_vardecl_floppy_c_32141 fsector_t vardecl_floppy.c 0 32141 &enable_so_sync_request_fndecl_32141
160001 +enable_so_prof_shift_vardecl_profile_c_32143 prof_shift vardecl_profile.c 0 32143 NULL
160002 +enable_so_mlx4_en_complete_rx_desc_fndecl_32150 mlx4_en_complete_rx_desc fndecl 0 32150 NULL
160003 +enable_so_ipwireless_send_packet_fndecl_32155 ipwireless_send_packet fndecl 4 32155 NULL
160004 +enable_so_s_clustersize_ocfs2_super_32156 s_clustersize ocfs2_super 0 32156 NULL nohasharray
160005 +enable_so_pwm_buf_sz_usbduxsigma_private_32156 pwm_buf_sz usbduxsigma_private 0 32156 &enable_so_s_clustersize_ocfs2_super_32156
160006 +enable_so_num_entries_msg_get_chap_32158 num_entries msg_get_chap 0 32158 NULL
160007 +enable_so_insert_zbranch_fndecl_32159 insert_zbranch fndecl 3 32159 NULL
160008 +enable_so_max_recv_dlength_iscsi_conn_32168 max_recv_dlength iscsi_conn 0 32168 NULL
160009 +enable_so_current_pages_balloon_stats_32169 current_pages balloon_stats 0 32169 NULL
160010 +enable_so_nfs41_maxwrite_overhead_vardecl_32172 nfs41_maxwrite_overhead vardecl 0 32172 NULL
160011 +enable_so_length_vring_rx_dma_32178 length vring_rx_dma 0 32178 NULL
160012 +enable_so_resp_format_pg_fndecl_32182 resp_format_pg fndecl 0 32182 NULL
160013 +enable_so_vmalloc_usercopy_fndecl_32186 vmalloc_usercopy fndecl 1 32186 NULL
160014 +enable_so_ping_getfrag_fndecl_32187 ping_getfrag fndecl 4 32187 NULL
160015 +enable_so_init_page_buffers_fndecl_32189 init_page_buffers fndecl 3 32189 NULL nohasharray
160016 +enable_so_len_sigma_action_32189 len sigma_action 0 32189 &enable_so_init_page_buffers_fndecl_32189
160017 +enable_so_tail_len_beacon_data_32194 tail_len beacon_data 0 32194 NULL
160018 +enable_so_batadv_bla_tx_fndecl_32195 batadv_bla_tx fndecl 3 32195 NULL
160019 +enable_so_s_system_dir_blkno_ocfs2_super_block_32196 s_system_dir_blkno ocfs2_super_block 0 32196 NULL
160020 +enable_so_smk_write_change_rule_fndecl_32200 smk_write_change_rule fndecl 3 32200 NULL
160021 +enable_so_ioat_alloc_ring_fndecl_32201 ioat_alloc_ring fndecl 2 32201 NULL
160022 +enable_so_nr_registers_ioapic_32204 nr_registers ioapic 0 32204 NULL
160023 +enable_so_len_bnep_ext_hdr_32205 len bnep_ext_hdr 0 32205 NULL
160024 +enable_so_dma_buf_size_tegra_slink_data_32206 dma_buf_size tegra_slink_data 0 32206 NULL
160025 +enable_so_ocfs2_decrease_refcount_rec_fndecl_32210 ocfs2_decrease_refcount_rec fndecl 6-7 32210 NULL
160026 +enable_so_k_offset_in_core_key_32212 k_offset in_core_key 0 32212 NULL
160027 +enable_so_seq_hex_dump_fndecl_32213 seq_hex_dump fndecl 7-4-5 32213 NULL
160028 +enable_so_num_sbs_pf_vf_resc_32216 num_sbs pf_vf_resc 0 32216 NULL nohasharray
160029 +enable_so_xdi_copy_from_user_fndecl_32216 xdi_copy_from_user fndecl 4 32216 &enable_so_num_sbs_pf_vf_resc_32216
160030 +enable_so_mag_length_ssp_sensorhub_info_32219 mag_length ssp_sensorhub_info 0 32219 NULL
160031 +enable_so_residual_task_status_struct_32220 residual task_status_struct 0 32220 NULL
160032 +enable_so_count_igb_ring_32225 count igb_ring 0 32225 NULL
160033 +enable_so_sys_munmap_fndecl_32226 sys_munmap fndecl 1-2 32226 NULL
160034 +enable_so_fragments_snd_compressed_buffer_32230 fragments snd_compressed_buffer 0 32230 NULL
160035 +enable_so_endpoint_usbatm_channel_32232 endpoint usbatm_channel 0 32232 NULL
160036 +enable_so_generic_bin_search_fndecl_32235 generic_bin_search fndecl 0 32235 NULL
160037 +enable_so_ts_packet_count_cx8802_dev_32239 ts_packet_count cx8802_dev 0 32239 NULL
160038 +enable_so_nasync_board_t_32240 nasync board_t 0 32240 NULL
160039 +enable_so_roccat_common2_sysfs_read_fndecl_32252 roccat_common2_sysfs_read fndecl 6 32252 NULL
160040 +enable_so_n_ids_vport_portids_32258 n_ids vport_portids 0 32258 NULL
160041 +enable_so_report_count_hid_global_32260 report_count hid_global 0 32260 NULL
160042 +enable_so_sony_register_touchpad_fndecl_32262 sony_register_touchpad fndecl 2 32262 NULL
160043 +enable_so_msb_verify_block_fndecl_32264 msb_verify_block fndecl 0-2 32264 NULL nohasharray
160044 +enable_so_oslec_create_fndecl_32264 oslec_create fndecl 1 32264 &enable_so_msb_verify_block_fndecl_32264
160045 +enable_so_venus_mkdir_fndecl_32276 venus_mkdir fndecl 4 32276 NULL
160046 +enable_so_qib_qsfp_dump_fndecl_32277 qib_qsfp_dump fndecl 0 32277 NULL
160047 +enable_so___v4l2_ctrl_s_ctrl_fndecl_32278 __v4l2_ctrl_s_ctrl fndecl 2 32278 NULL nohasharray
160048 +enable_so_buf_len_lpfc_sli_config_hbd_32278 buf_len lpfc_sli_config_hbd 0 32278 &enable_so___v4l2_ctrl_s_ctrl_fndecl_32278
160049 +enable_so_usb_allocate_stream_buffers_fndecl_32279 usb_allocate_stream_buffers fndecl 3 32279 NULL
160050 +enable_so_find_num_cache_leaves_fndecl_32280 find_num_cache_leaves fndecl 0 32280 NULL
160051 +enable_so_mapsize_uart_port_32282 mapsize uart_port 0 32282 NULL
160052 +enable_so_vol_cdev_read_fndecl_32283 vol_cdev_read fndecl 3 32283 NULL nohasharray
160053 +enable_so_seq_open_net_fndecl_32283 seq_open_net fndecl 4 32283 &enable_so_vol_cdev_read_fndecl_32283
160054 +enable_so_get_pipes_fndecl_32291 get_pipes fndecl 0 32291 NULL
160055 +enable_so_num_gpes_vardecl_sysfs_c_32294 num_gpes vardecl_sysfs.c 0 32294 NULL
160056 +enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295 IA_TX_BUF_SZ vardecl_iphase.c 0 32295 NULL nohasharray
160057 +enable_so_dma_size_sst_pdata_32295 dma_size sst_pdata 0 32295 &enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295
160058 +enable_so_il_dbgfs_clear_ucode_stats_write_fndecl_32299 il_dbgfs_clear_ucode_stats_write fndecl 3 32299 NULL
160059 +enable_so_rept_size_usbtouch_device_info_32306 rept_size usbtouch_device_info 0 32306 NULL
160060 +enable_so_int_clock_max_aptina_pll_limits_32312 int_clock_max aptina_pll_limits 0 32312 NULL nohasharray
160061 +enable_so_sizeof_namespace_index_fndecl_32312 sizeof_namespace_index fndecl 0 32312 &enable_so_int_clock_max_aptina_pll_limits_32312
160062 +enable_so_snd_info_text_entry_write_fndecl_32315 snd_info_text_entry_write fndecl 3 32315 NULL
160063 +enable_so_nla_put_fndecl_32321 nla_put fndecl 3 32321 NULL
160064 +enable_so_khugepaged_scan_pmd_fndecl_32330 khugepaged_scan_pmd fndecl 3 32330 NULL
160065 +enable_so_bochs_ttm_tt_create_fndecl_32333 bochs_ttm_tt_create fndecl 2 32333 NULL nohasharray
160066 +enable_so_datablock_size_btrfsic_state_32333 datablock_size btrfsic_state 0 32333 &enable_so_bochs_ttm_tt_create_fndecl_32333
160067 +enable_so_mem_start_net_device_32337 mem_start net_device 0 32337 NULL
160068 +enable_so_fd_ioctl_fndecl_32343 fd_ioctl fndecl 3 32343 NULL
160069 +enable_so_fib_info_hash_alloc_fndecl_32352 fib_info_hash_alloc fndecl 1 32352 NULL
160070 +enable_so_scrub_raid56_parity_fndecl_32354 scrub_raid56_parity fndecl 5 32354 NULL
160071 +enable_so_max_q_vectors_ixgbe_adapter_32359 max_q_vectors ixgbe_adapter 0 32359 NULL
160072 +enable_so_end_crash_mem_range_32361 end crash_mem_range 0 32361 NULL
160073 +enable_so_netlbl_catmap_setlong_fndecl_32363 netlbl_catmap_setlong fndecl 2 32363 NULL nohasharray
160074 +enable_so_backlight_sd_gl860_32363 backlight sd_gl860 0 32363 &enable_so_netlbl_catmap_setlong_fndecl_32363
160075 +enable_so_datalen_ncp_request_reply_32365 datalen ncp_request_reply 0 32365 NULL
160076 +enable_so_xfs_setfilesize_fndecl_32370 xfs_setfilesize fndecl 4-3 32370 NULL
160077 +enable_so_snd_gus_dram_peek_fndecl_32373 snd_gus_dram_peek fndecl 4 32373 NULL
160078 +enable_so_snd_emu10k1_synth_copy_from_user_fndecl_32374 snd_emu10k1_synth_copy_from_user fndecl 5-3 32374 NULL
160079 +enable_so_hci_req_add_fndecl_32376 hci_req_add fndecl 3 32376 NULL
160080 +enable_so_transport_get_sectors_16_fndecl_32385 transport_get_sectors_16 fndecl 0 32385 NULL
160081 +enable_so_datablk_xfs_da_geometry_32386 datablk xfs_da_geometry 0 32386 NULL
160082 +enable_so_header_size_smb_version_values_32387 header_size smb_version_values 0 32387 NULL
160083 +enable_so_INFTL_formatblock_fndecl_32390 INFTL_formatblock fndecl 2 32390 NULL
160084 +enable_so_adxl34x_spi_read_block_fndecl_32391 adxl34x_spi_read_block fndecl 3 32391 NULL
160085 +enable_so_reco_default_priority_be_async_event_grp5_cos_priority_32392 reco_default_priority be_async_event_grp5_cos_priority 0 32392 NULL
160086 +enable_so_offset_pnfs_layout_range_32403 offset pnfs_layout_range 0 32403 NULL nohasharray
160087 +enable_so_create_queues_fndecl_32403 create_queues fndecl 3-2 32403 &enable_so_offset_pnfs_layout_range_32403
160088 +enable_so_ftdi_prepare_write_buffer_fndecl_32406 ftdi_prepare_write_buffer fndecl 3 32406 NULL
160089 +enable_so_cont_add_fndecl_32409 cont_add fndecl 4 32409 NULL
160090 +enable_so_agbno_xfs_alloc_arg_32410 agbno xfs_alloc_arg 0 32410 NULL
160091 +enable_so_ext4_list_backups_fndecl_32417 ext4_list_backups fndecl 0 32417 NULL
160092 +enable_so_nxt200x_readreg_multibyte_fndecl_32418 nxt200x_readreg_multibyte fndecl 4 32418 NULL nohasharray
160093 +enable_so_pt_buffer_setup_aux_fndecl_32418 pt_buffer_setup_aux fndecl 3 32418 &enable_so_nxt200x_readreg_multibyte_fndecl_32418
160094 +enable_so_ci_rsbtbl_size_dlm_config_info_32423 ci_rsbtbl_size dlm_config_info 0 32423 NULL
160095 +enable_so_srpt_build_tskmgmt_rsp_fndecl_32427 srpt_build_tskmgmt_rsp fndecl 0 32427 NULL
160096 +enable_so_qib_skip_sge_fndecl_32432 qib_skip_sge fndecl 2 32432 NULL
160097 +enable_so_di_next_index_dinode_32437 di_next_index dinode 0 32437 NULL nohasharray
160098 +enable_so_gso_size_xenvif_rx_meta_32437 gso_size xenvif_rx_meta 0 32437 &enable_so_di_next_index_dinode_32437 nohasharray
160099 +enable_so_xs_udp_set_buffer_size_fndecl_32437 xs_udp_set_buffer_size fndecl 2 32437 &enable_so_gso_size_xenvif_rx_meta_32437
160100 +enable_so_btrfs_get_extent_fndecl_32440 btrfs_get_extent fndecl 4-3-5 32440 NULL nohasharray
160101 +enable_so_truncated_len_btrfs_ordered_extent_32440 truncated_len btrfs_ordered_extent 0 32440 &enable_so_btrfs_get_extent_fndecl_32440
160102 +enable_so_t_blk_res_used_xfs_trans_32443 t_blk_res_used xfs_trans 0 32443 NULL
160103 +enable_so_mlx4_alloc_resize_umem_fndecl_32447 mlx4_alloc_resize_umem fndecl 3 32447 NULL
160104 +enable_so_permission_inode_operations_32455 permission inode_operations 0 32455 NULL
160105 +enable_so_ext4_da_write_inline_data_end_fndecl_32456 ext4_da_write_inline_data_end fndecl 2-4 32456 NULL
160106 +enable_so_snd_buf_bytes_vardecl_usbatm_c_32457 snd_buf_bytes vardecl_usbatm.c 0 32457 NULL
160107 +enable_so_isr_irqs_read_fndecl_32462 isr_irqs_read fndecl 3 32462 NULL nohasharray
160108 +enable_so_ddata_ofs_cyttsp4_sysinfo_ofs_32462 ddata_ofs cyttsp4_sysinfo_ofs 0 32462 &enable_so_isr_irqs_read_fndecl_32462
160109 +enable_so_neighbormtu_mastersmsl_ib_port_info_32464 neighbormtu_mastersmsl ib_port_info 0 32464 NULL
160110 +enable_so_blk_execute_rq_fndecl_32470 blk_execute_rq fndecl 0 32470 NULL nohasharray
160111 +enable_so_out_kvec_left_ceph_connection_32470 out_kvec_left ceph_connection 0 32470 &enable_so_blk_execute_rq_fndecl_32470
160112 +enable_so_start_ordered_ops_fndecl_32475 start_ordered_ops fndecl 2-3 32475 NULL
160113 +enable_so_skb_shift_fndecl_32480 skb_shift fndecl 3 32480 NULL
160114 +enable_so_flctl_dma_fifo0_transfer_fndecl_32481 flctl_dma_fifo0_transfer fndecl 3 32481 NULL nohasharray
160115 +enable_so_j_len_reiserfs_journal_desc_32481 j_len reiserfs_journal_desc 0 32481 &enable_so_flctl_dma_fifo0_transfer_fndecl_32481
160116 +enable_so_sigmadsp_write_i2c_fndecl_32482 sigmadsp_write_i2c fndecl 4 32482 NULL
160117 +enable_so_iwl_dbgfs_frame_stats_read_fndecl_32488 iwl_dbgfs_frame_stats_read fndecl 3 32488 NULL
160118 +enable_so_s_fshift_ufs_sb_private_info_32491 s_fshift ufs_sb_private_info 0 32491 NULL
160119 +enable_so_card_send_command_fndecl_32492 card_send_command fndecl 3 32492 NULL
160120 +enable_so_read_pci_config_16_fndecl_32499 read_pci_config_16 fndecl 0 32499 NULL
160121 +enable_so_reply_nvif_notify_req_v0_32501 reply nvif_notify_req_v0 0 32501 NULL
160122 +enable_so_altera_swap_ir_fndecl_32505 altera_swap_ir fndecl 2 32505 NULL nohasharray
160123 +enable_so_alloc_group_attrs_fndecl_32505 alloc_group_attrs fndecl 2 32505 &enable_so_altera_swap_ir_fndecl_32505
160124 +enable_so_opa_smi_get_fwd_port_fndecl_32506 opa_smi_get_fwd_port fndecl 0 32506 NULL nohasharray
160125 +enable_so_lmLogFormat_fndecl_32506 lmLogFormat fndecl 2 32506 &enable_so_opa_smi_get_fwd_port_fndecl_32506 nohasharray
160126 +enable_so_acpi_unmap_fndecl_32506 acpi_unmap fndecl 1 32506 &enable_so_lmLogFormat_fndecl_32506
160127 +enable_so_num_tgtdevs_btrfs_bio_32507 num_tgtdevs btrfs_bio 0 32507 NULL
160128 +enable_so_transport_get_sectors_12_fndecl_32508 transport_get_sectors_12 fndecl 0 32508 NULL
160129 +enable_so_gx1_gx_base_fndecl_32509 gx1_gx_base fndecl 0 32509 NULL
160130 +enable_so_set_16kib_bfsize_stmmac_mode_ops_32520 set_16kib_bfsize stmmac_mode_ops 0 32520 NULL
160131 +enable_so_fc_flogi_acc_build_fndecl_32521 fc_flogi_acc_build fndecl 7-9 32521 NULL nohasharray
160132 +enable_so_f_dupfd_fndecl_32521 f_dupfd fndecl 1 32521 &enable_so_fc_flogi_acc_build_fndecl_32521
160133 +enable_so_jffs2_acl_count_fndecl_32522 jffs2_acl_count fndecl 0-1 32522 NULL
160134 +enable_so_ext4_xattr_user_set_fndecl_32523 ext4_xattr_user_set fndecl 4 32523 NULL
160135 +enable_so_asrc_rate_fsl_asoc_card_priv_32525 asrc_rate fsl_asoc_card_priv 0 32525 NULL nohasharray
160136 +enable_so_frameoffset_b43_dmaring_32525 frameoffset b43_dmaring 0 32525 &enable_so_asrc_rate_fsl_asoc_card_priv_32525
160137 +enable_so_map_iommu_fndecl_32528 map_iommu fndecl 2 32528 NULL
160138 +enable_so_BBAR_rio_detail_32529 BBAR rio_detail 0 32529 NULL
160139 +enable_so_xenvif_max_queues_vardecl_32530 xenvif_max_queues vardecl 0 32530 NULL
160140 +enable_so_HDLC_irq_fndecl_32534 HDLC_irq fndecl 2 32534 NULL nohasharray
160141 +enable_so_num_comp_vectors_mlx4_caps_32534 num_comp_vectors mlx4_caps 0 32534 &enable_so_HDLC_irq_fndecl_32534
160142 +enable_so_ctrl_out_fndecl_32539 ctrl_out fndecl 5-3 32539 NULL
160143 +enable_so_ev_next_dev_data_32542 ev_next dev_data 0 32542 NULL
160144 +enable_so_wm8900_set_dai_pll_fndecl_32543 wm8900_set_dai_pll fndecl 4-5 32543 NULL
160145 +enable_so_cfg80211_inform_bss_width_fndecl_32545 cfg80211_inform_bss_width fndecl 10 32545 NULL
160146 +enable_so_rq_auth_slack_svc_rqst_32548 rq_auth_slack svc_rqst 0 32548 NULL
160147 +enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554 TransferCount _MSG_SCSI_IO_REPLY 0 32554 NULL nohasharray
160148 +enable_so_yurex_write_fndecl_32554 yurex_write fndecl 3 32554 &enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554
160149 +enable_so_x32_arch_ptrace_fndecl_32556 x32_arch_ptrace fndecl 3 32556 NULL
160150 +enable_so_sys_prctl_fndecl_32557 sys_prctl fndecl 3-4 32557 NULL
160151 +enable_so_pkey_table_len_mlx5_port_caps_32558 pkey_table_len mlx5_port_caps 0 32558 NULL nohasharray
160152 +enable_so_joydev_compat_ioctl_fndecl_32558 joydev_compat_ioctl fndecl 2 32558 &enable_so_pkey_table_len_mlx5_port_caps_32558
160153 +enable_so_bcd2000_midi_handle_input_fndecl_32572 bcd2000_midi_handle_input fndecl 3 32572 NULL
160154 +enable_so_tx_tx_exch_expiry_read_fndecl_32574 tx_tx_exch_expiry_read fndecl 3 32574 NULL nohasharray
160155 +enable_so_syt_interval_amdtp_stream_32574 syt_interval amdtp_stream 0 32574 &enable_so_tx_tx_exch_expiry_read_fndecl_32574
160156 +enable_so_iov_iter_zero_fndecl_32575 iov_iter_zero fndecl 1 32575 NULL
160157 +enable_so_ext4_try_to_write_inline_data_fndecl_32578 ext4_try_to_write_inline_data fndecl 4-3 32578 NULL
160158 +enable_so_msg_print_ext_header_fndecl_32580 msg_print_ext_header fndecl 0 32580 NULL
160159 +enable_so_fnic_fc_trace_get_data_fndecl_32585 fnic_fc_trace_get_data fndecl 0 32585 NULL nohasharray
160160 +enable_so_check_right_item_operations_32585 check_right item_operations 0 32585 &enable_so_fnic_fc_trace_get_data_fndecl_32585
160161 +enable_so_bop_assign_nilfs_bmap_operations_32598 bop_assign nilfs_bmap_operations 0 32598 NULL
160162 +enable_so_paging32_prefetch_gpte_fndecl_32604 paging32_prefetch_gpte fndecl 4 32604 NULL
160163 +enable_so_channel_num_sh_dmae_pdata_32606 channel_num sh_dmae_pdata 0 32606 NULL
160164 +enable_so_resp_len_brcmf_cfg80211_assoc_ielen_le_32607 resp_len brcmf_cfg80211_assoc_ielen_le 0 32607 NULL
160165 +enable_so_vlan_tag_atl1c_recv_ret_status_32608 vlan_tag atl1c_recv_ret_status 0 32608 NULL nohasharray
160166 +enable_so__osd_req_encode_common_fndecl_32608 _osd_req_encode_common fndecl 2 32608 &enable_so_vlan_tag_atl1c_recv_ret_status_32608
160167 +enable_so_maxdevUnits_ore_striping_info_32610 maxdevUnits ore_striping_info 0 32610 NULL
160168 +enable_so_metronomefb_write_fndecl_32612 metronomefb_write fndecl 3 32612 NULL
160169 +enable_so_ceph_osd_data_length_fndecl_32615 ceph_osd_data_length fndecl 0 32615 NULL
160170 +enable_so_usb_alloc_streams_fndecl_32617 usb_alloc_streams fndecl 0 32617 NULL
160171 +enable_so_hfsplus_direct_IO_fndecl_32619 hfsplus_direct_IO fndecl 3 32619 NULL nohasharray
160172 +enable_so_SyS_llistxattr_fndecl_32619 SyS_llistxattr fndecl 3 32619 &enable_so_hfsplus_direct_IO_fndecl_32619
160173 +enable_so_ntfs_commit_pages_after_write_fndecl_32634 ntfs_commit_pages_after_write fndecl 0-4-3 32634 NULL
160174 +enable_so_pagesz_cifs_writedata_32638 pagesz cifs_writedata 0 32638 NULL
160175 +enable_so_do_page_add_anon_rmap_fndecl_32642 do_page_add_anon_rmap fndecl 3 32642 NULL
160176 +enable_so_digest_decode_fndecl_32644 digest_decode fndecl 0 32644 NULL
160177 +enable_so_wa_nep_queue_fndecl_32649 wa_nep_queue fndecl 2 32649 NULL
160178 +enable_so_phys_sca_base__synclinkmp_info_32654 phys_sca_base _synclinkmp_info 0 32654 NULL
160179 +enable_so_mgmt_generic_event_fndecl_32657 mgmt_generic_event fndecl 4 32657 NULL nohasharray
160180 +enable_so_dvb_ringbuffer_pkt_next_fndecl_32657 dvb_ringbuffer_pkt_next fndecl 0-2 32657 &enable_so_mgmt_generic_event_fndecl_32657
160181 +enable_so_icmpv6_manip_pkt_fndecl_32658 icmpv6_manip_pkt fndecl 4 32658 NULL nohasharray
160182 +enable_so_get_queue_depth_fndecl_32658 get_queue_depth fndecl 0 32658 &enable_so_icmpv6_manip_pkt_fndecl_32658
160183 +enable_so_mmc_wait_for_cmd_fndecl_32659 mmc_wait_for_cmd fndecl 0 32659 NULL
160184 +enable_so_nrof_flowrings_brcmf_msgbuf_32666 nrof_flowrings brcmf_msgbuf 0 32666 NULL
160185 +enable_so_rtsx_usb_transfer_data_fndecl_32669 rtsx_usb_transfer_data fndecl 4-2-0-5 32669 NULL
160186 +enable_so_compressed_bio_size_fndecl_32676 compressed_bio_size fndecl 0-2 32676 NULL
160187 +enable_so_engine_start_viafb_dev_32681 engine_start viafb_dev 0 32681 NULL nohasharray
160188 +enable_so_ab3100_get_set_reg_fndecl_32681 ab3100_get_set_reg fndecl 3 32681 &enable_so_engine_start_viafb_dev_32681
160189 +enable_so_length_ib_umem_32690 length ib_umem 0 32690 NULL
160190 +enable_so_radeon_drm_ioctl_fndecl_32696 radeon_drm_ioctl fndecl 2 32696 NULL
160191 +enable_so_ubifs_prepare_node_fndecl_32700 ubifs_prepare_node fndecl 3 32700 NULL
160192 +enable_so_ext4_get_block_dax_fndecl_32702 ext4_get_block_dax fndecl 2 32702 NULL
160193 +enable_so_write_file_ani_fndecl_32709 write_file_ani fndecl 3 32709 NULL
160194 +enable_so_dma_common_contiguous_remap_fndecl_32714 dma_common_contiguous_remap fndecl 2 32714 NULL
160195 +enable_so_size_hid_report_32715 size hid_report 0 32715 NULL
160196 +enable_so_layout_commit_fndecl_32717 layout_commit fndecl 3 32717 NULL
160197 +enable_so_f71882fg_device_add_fndecl_32719 f71882fg_device_add fndecl 1 32719 NULL
160198 +enable_so_residual_len_sts_entry_24xx_32720 residual_len sts_entry_24xx 0 32720 NULL
160199 +enable_so_ks8995_registers_read_fndecl_32738 ks8995_registers_read fndecl 6 32738 NULL
160200 +enable_so_driver_stats_read_fndecl_32739 driver_stats_read fndecl 3 32739 NULL
160201 +enable_so_goto_low_power_fndecl_32741 goto_low_power fndecl 0 32741 NULL
160202 +enable_so_requested_nr_virtfn_bnx2x_32742 requested_nr_virtfn bnx2x 0 32742 NULL
160203 +enable_so_read_file_tgt_stats_fndecl_32748 read_file_tgt_stats fndecl 3 32748 NULL
160204 +enable_so_vga_video_num_columns_vardecl_vgacon_c_32749 vga_video_num_columns vardecl_vgacon.c 0 32749 NULL nohasharray
160205 +enable_so_rds_tcp_xmit_fndecl_32749 rds_tcp_xmit fndecl 3 32749 &enable_so_vga_video_num_columns_vardecl_vgacon_c_32749
160206 +enable_so_lookup_zone_fndecl_32751 lookup_zone fndecl 0 32751 NULL
160207 +enable_so_adjust_priv_size_fndecl_32756 adjust_priv_size fndecl 0-1 32756 NULL
160208 +enable_so_cp2112_hid_get_fndecl_32758 cp2112_hid_get fndecl 4 32758 NULL
160209 +enable_so_fuse_file_ioctl_fndecl_32760 fuse_file_ioctl fndecl 2 32760 NULL
160210 +enable_so_i2400m_rx_edata_fndecl_32764 i2400m_rx_edata fndecl 5 32764 NULL
160211 +enable_so_rc_via_alen_mpls_route_config_32766 rc_via_alen mpls_route_config 0 32766 NULL
160212 +enable_so_gro_pull_from_frag0_fndecl_32770 gro_pull_from_frag0 fndecl 2 32770 NULL
160213 +enable_so_sm501_create_mem_fndecl_32778 sm501_create_mem fndecl 4 32778 NULL
160214 +enable_so_test_ofsl_cyttsp4_sysinfo_data_32781 test_ofsl cyttsp4_sysinfo_data 0 32781 NULL
160215 +enable_so_ack_to_rnr_rtc_dest_qpn_ocrdma_qp_params_32783 ack_to_rnr_rtc_dest_qpn ocrdma_qp_params 0 32783 NULL
160216 +enable_so_xfs_fsb_to_db_fndecl_32785 xfs_fsb_to_db fndecl 0-2 32785 NULL
160217 +enable_so_hpi_instream_ancillary_write_fndecl_32786 hpi_instream_ancillary_write fndecl 4 32786 NULL nohasharray
160218 +enable_so_reg_word_size_snd_soc_codec_driver_32786 reg_word_size snd_soc_codec_driver 0 32786 &enable_so_hpi_instream_ancillary_write_fndecl_32786
160219 +enable_so_portcntrs_2_read_fndecl_32793 portcntrs_2_read fndecl 3 32793 NULL
160220 +enable_so_mp_register_ioapic_fndecl_32802 mp_register_ioapic fndecl 3 32802 NULL
160221 +enable_so_pipe_usb_fifo_32805 pipe usb_fifo 0 32805 NULL nohasharray
160222 +enable_so_nfc_allocate_device_fndecl_32805 nfc_allocate_device fndecl 3 32805 &enable_so_pipe_usb_fifo_32805
160223 +enable_so_info_len_ib_ucm_info_32807 info_len ib_ucm_info 0 32807 NULL
160224 +enable_so_m_len_f2fs_map_blocks_32808 m_len f2fs_map_blocks 0 32808 NULL
160225 +enable_so_l_start_xfs_flock64_32809 l_start xfs_flock64 0 32809 NULL
160226 +enable_so_length_ppp_option_data_32814 length ppp_option_data 0 32814 NULL
160227 +enable_so_event_filter_write_fndecl_32818 event_filter_write fndecl 3 32818 NULL
160228 +enable_so_namelen_jfs_ea_32820 namelen jfs_ea 0 32820 NULL
160229 +enable_so_nvme_trans_log_temperature_fndecl_32822 nvme_trans_log_temperature fndecl 3 32822 NULL
160230 +enable_so_scrub_fixup_readpage_fndecl_32830 scrub_fixup_readpage fndecl 2 32830 NULL nohasharray
160231 +enable_so_num_rcv_urbs_vardecl_usbatm_c_32830 num_rcv_urbs vardecl_usbatm.c 0 32830 &enable_so_scrub_fixup_readpage_fndecl_32830
160232 +enable_so_ds_out_channels_hdspm_32836 ds_out_channels hdspm 0 32836 NULL nohasharray
160233 +enable_so_lpfc_sli4_bsg_set_link_diag_state_fndecl_32836 lpfc_sli4_bsg_set_link_diag_state fndecl 0 32836 &enable_so_ds_out_channels_hdspm_32836
160234 +enable_so_num_amgms_mthca_limits_32845 num_amgms mthca_limits 0 32845 NULL
160235 +enable_so_s_inodes_per_block_bits_sysv_sb_info_32849 s_inodes_per_block_bits sysv_sb_info 0 32849 NULL
160236 +enable_so_gather_array_fndecl_32850 gather_array fndecl 3 32850 NULL
160237 +enable_so_ep_in_mcs_cb_32852 ep_in mcs_cb 0 32852 NULL
160238 +enable_so_br_startoff_xfs_bmbt_irec_32854 br_startoff xfs_bmbt_irec 0 32854 NULL
160239 +enable_so_size_mem_cgroup_threshold_ary_32855 size mem_cgroup_threshold_ary 0 32855 NULL
160240 +enable_so_uvc_debugfs_stats_read_fndecl_32856 uvc_debugfs_stats_read fndecl 3 32856 NULL
160241 +enable_so_should_defrag_range_fndecl_32859 should_defrag_range fndecl 2 32859 NULL
160242 +enable_so_hfi1_qp_table_size_vardecl_qp_c_32860 hfi1_qp_table_size vardecl_qp.c 0 32860 NULL
160243 +enable_so_tx_buf_clear_used_ks959_cb_32864 tx_buf_clear_used ks959_cb 0 32864 NULL
160244 +enable_so_duplex_phy_device_32869 duplex phy_device 0 32869 NULL
160245 +enable_so_wTotalLength_usb_security_descriptor_32872 wTotalLength usb_security_descriptor 0 32872 NULL
160246 +enable_so_buffer_len_bfad_debug_info_32873 buffer_len bfad_debug_info 0 32873 NULL
160247 +enable_so_dvb_ringbuffer_read_user_fndecl_32877 dvb_ringbuffer_read_user fndecl 3-0 32877 NULL nohasharray
160248 +enable_so_dz_divisor_dn_zone_32877 dz_divisor dn_zone 0 32877 &enable_so_dvb_ringbuffer_read_user_fndecl_32877
160249 +enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 mem_cgroup_move_charge_pte_range fndecl 2 32885 NULL nohasharray
160250 +enable_so_btrfs_cow_block_fndecl_32885 btrfs_cow_block fndecl 0 32885 &enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885
160251 +enable_so_m_ialloc_inos_xfs_mount_32889 m_ialloc_inos xfs_mount 0 32889 NULL
160252 +enable_so_snoop_table_size_ib_mad_qp_info_32891 snoop_table_size ib_mad_qp_info 0 32891 NULL
160253 +enable_so_snd_gus_dram_read_fndecl_32893 snd_gus_dram_read fndecl 4 32893 NULL
160254 +enable_so_min_dump_alloc_netlink_callback_32897 min_dump_alloc netlink_callback 0 32897 NULL
160255 +enable_so___wa_xfer_setup_segs_fndecl_32902 __wa_xfer_setup_segs fndecl 2 32902 NULL
160256 +enable_so_wm831x_num_wm831x_pdata_32904 wm831x_num wm831x_pdata 0 32904 NULL
160257 +enable_so_copy_off_netrx_pending_operations_32906 copy_off netrx_pending_operations 0 32906 NULL
160258 +enable_so_adnp_gpio_setup_fndecl_32910 adnp_gpio_setup fndecl 2 32910 NULL
160259 +enable_so_space_init_fndecl_32911 space_init fndecl 2 32911 NULL
160260 +enable_so_max_r2t_iscsi_bus_flash_session_32912 max_r2t iscsi_bus_flash_session 0 32912 NULL
160261 +enable_so_num_vfs_qlcnic_sriov_32913 num_vfs qlcnic_sriov 0 32913 NULL
160262 +enable_so_ipv6_getsockopt_sticky_fndecl_32916 ipv6_getsockopt_sticky fndecl 5-0 32916 NULL
160263 +enable_so_proto_ipoib_header_32917 proto ipoib_header 0 32917 NULL nohasharray
160264 +enable_so_sta_flags_read_fndecl_32917 sta_flags_read fndecl 3 32917 &enable_so_proto_ipoib_header_32917
160265 +enable_so_conn_send_command_fndecl_32918 conn_send_command fndecl 6-4 32918 NULL
160266 +enable_so_pci_get_related_function_fndecl_32920 pci_get_related_function fndecl 2 32920 NULL
160267 +enable_so_nr_events_kioctx_32925 nr_events kioctx 0 32925 NULL
160268 +enable_so_vram_base_mga_mc_32927 vram_base mga_mc 0 32927 NULL
160269 +enable_so___add_action_fndecl_32937 __add_action fndecl 4 32937 NULL
160270 +enable_so___copy_from_user_ll_fndecl_32945 __copy_from_user_ll fndecl 0 32945 NULL
160271 +enable_so_al_stripes_resize_parms_32950 al_stripes resize_parms 0 32950 NULL
160272 +enable_so_diva_data_q_init_fndecl_32954 diva_data_q_init fndecl 2 32954 NULL
160273 +enable_so_btrfsic_map_block_fndecl_32956 btrfsic_map_block fndecl 3 32956 NULL
160274 +enable_so_drm_agp_bind_pages_fndecl_32959 drm_agp_bind_pages fndecl 3 32959 NULL
160275 +enable_so___carl9170_rx_fndecl_32963 __carl9170_rx fndecl 3 32963 NULL
160276 +enable_so_bop_gather_data_nilfs_bmap_operations_32964 bop_gather_data nilfs_bmap_operations 0 32964 NULL
160277 +enable_so_total_data_buflen_hv_netvsc_packet_32967 total_data_buflen hv_netvsc_packet 0 32967 NULL
160278 +enable_so_ttm_alloc_new_pages_fndecl_32971 ttm_alloc_new_pages fndecl 5 32971 NULL
160279 +enable_so_s_max_slots_ocfs2_super_block_32972 s_max_slots ocfs2_super_block 0 32972 NULL
160280 +enable_so_proc_bus_pci_lseek_fndecl_32974 proc_bus_pci_lseek fndecl 2 32974 NULL
160281 +enable_so_p_replen_rpc_procinfo_32991 p_replen rpc_procinfo 0 32991 NULL nohasharray
160282 +enable_so_bn_read_lock_fndecl_32991 bn_read_lock fndecl 2 32991 &enable_so_p_replen_rpc_procinfo_32991
160283 +enable_so_resid_len_request_32994 resid_len request 0 32994 NULL
160284 +enable_so_wtpref_nfs_fsinfo_33003 wtpref nfs_fsinfo 0 33003 NULL
160285 +enable_so_mtdchar_write_fndecl_33004 mtdchar_write fndecl 3 33004 NULL
160286 +enable_so_dwNtbInMaxSize_usb_cdc_ncm_ntb_parameters_33006 dwNtbInMaxSize usb_cdc_ncm_ntb_parameters 0 33006 NULL
160287 +enable_so_pktshift_sge_33011 pktshift sge 0 33011 NULL nohasharray
160288 +enable_so_offset_fl_pg_chunk_33011 offset fl_pg_chunk 0 33011 &enable_so_pktshift_sge_33011
160289 +enable_so_size_qlcnic_82xx_dump_template_hdr_33013 size qlcnic_82xx_dump_template_hdr 0 33013 NULL nohasharray
160290 +enable_so_ion_ioctl_fndecl_33013 ion_ioctl fndecl 2 33013 &enable_so_size_qlcnic_82xx_dump_template_hdr_33013
160291 +enable_so_nr_regions_amd_flash_info_33022 nr_regions amd_flash_info 0 33022 NULL
160292 +enable_so_rq_size_nes_hw_qp_33024 rq_size nes_hw_qp 0 33024 NULL
160293 +enable_so_snd_rawmidi_read_fndecl_33026 snd_rawmidi_read fndecl 3 33026 NULL
160294 +enable_so_offset_xen_netif_rx_response_33028 offset xen_netif_rx_response 0 33028 NULL
160295 +enable_so_bfad_iocmd_set_port_cfg_fndecl_33030 bfad_iocmd_set_port_cfg fndecl 0 33030 NULL
160296 +enable_so_amdgpu_afmt_calc_cts_fndecl_33031 amdgpu_afmt_calc_cts fndecl 1-4 33031 NULL
160297 +enable_so_rsi_sdio_read_register_multiple_fndecl_33035 rsi_sdio_read_register_multiple fndecl 3 33035 NULL
160298 +enable_so_sacked_out_tcp_sock_33038 sacked_out tcp_sock 0 33038 NULL
160299 +enable_so_pipeline_pre_to_defrag_swi_read_fndecl_33042 pipeline_pre_to_defrag_swi_read fndecl 3 33042 NULL
160300 +enable_so_files_ceph_mds_reply_inode_33047 files ceph_mds_reply_inode 0 33047 NULL
160301 +enable_so_HighPriorityCredit_mpt2sas_facts_33050 HighPriorityCredit mpt2sas_facts 0 33050 NULL
160302 +enable_so_svc_rdma_xdr_get_reply_hdr_len_fndecl_33056 svc_rdma_xdr_get_reply_hdr_len fndecl 0 33056 NULL nohasharray
160303 +enable_so_ath10k_read_simulate_fw_crash_fndecl_33056 ath10k_read_simulate_fw_crash fndecl 3 33056 &enable_so_svc_rdma_xdr_get_reply_hdr_len_fndecl_33056
160304 +enable_so_dev_read_fndecl_33058 dev_read fndecl 3 33058 NULL
160305 +enable_so_iov_iter_copy_from_user_atomic_fndecl_33059 iov_iter_copy_from_user_atomic fndecl 4-0 33059 NULL nohasharray
160306 +enable_so_gfs2_qstr2dirent_fndecl_33059 gfs2_qstr2dirent fndecl 2 33059 &enable_so_iov_iter_copy_from_user_atomic_fndecl_33059
160307 +enable_so_rxbufsz_ar5523_33060 rxbufsz ar5523 0 33060 NULL nohasharray
160308 +enable_so_nfilters_mc5_params_33060 nfilters mc5_params 0 33060 &enable_so_rxbufsz_ar5523_33060
160309 +enable_so_size_ec168_req_33061 size ec168_req 0 33061 NULL
160310 +enable_so_iio_device_add_info_mask_type_fndecl_33062 iio_device_add_info_mask_type fndecl 0 33062 NULL
160311 +enable_so_compress_compressor_33066 compress compressor 0 33066 NULL
160312 +enable_so_wil_read_pmccfg_fndecl_33071 wil_read_pmccfg fndecl 3 33071 NULL
160313 +enable_so_prepare_inurb_fndecl_33073 prepare_inurb fndecl 1 33073 NULL
160314 +enable_so___fat_nfs_get_inode_fndecl_33079 __fat_nfs_get_inode fndecl 4 33079 NULL
160315 +enable_so_default_size_vmw_cmdbuf_man_33080 default_size vmw_cmdbuf_man 0 33080 NULL
160316 +enable_so_descriptor_size_pmc_ctx_33081 descriptor_size pmc_ctx 0 33081 NULL
160317 +enable_so_e1000_alloc_rx_skb_fndecl_33089 e1000_alloc_rx_skb fndecl 2 33089 NULL nohasharray
160318 +enable_so_tx_headroom_llc_shdlc_33089 tx_headroom llc_shdlc 0 33089 &enable_so_e1000_alloc_rx_skb_fndecl_33089
160319 +enable_so_sl_tclass_flowlabel_mlx4_eth_av_33090 sl_tclass_flowlabel mlx4_eth_av 0 33090 NULL
160320 +enable_so_spu_base_info_size_qib_user_info_33091 spu_base_info_size qib_user_info 0 33091 NULL
160321 +enable_so_vram_size_cirrus_mc_33094 vram_size cirrus_mc 0 33094 NULL nohasharray
160322 +enable_so_ocfs2_control_read_fndecl_33094 ocfs2_control_read fndecl 3 33094 &enable_so_vram_size_cirrus_mc_33094
160323 +enable_so_write_gssp_fndecl_33095 write_gssp fndecl 3 33095 NULL
160324 +enable_so_do_get_write_access_fndecl_33097 do_get_write_access fndecl 0 33097 NULL
160325 +enable_so_return_wc_byte_len_ib_mad_local_private_33101 return_wc_byte_len ib_mad_local_private 0 33101 NULL
160326 +enable_so___snd_util_memblk_new_fndecl_33112 __snd_util_memblk_new fndecl 2 33112 NULL
160327 +enable_so_nla_strlcpy_fndecl_33113 nla_strlcpy fndecl 0 33113 NULL
160328 +enable_so_hdr_len_virtnet_info_33118 hdr_len virtnet_info 0 33118 NULL
160329 +enable_so_len_cfg80211_mgmt_tx_params_33119 len cfg80211_mgmt_tx_params 0 33119 NULL
160330 +enable_so_fl_create_fndecl_33120 fl_create fndecl 5 33120 NULL
160331 +enable_so_hw_token_ehci_qtd_33122 hw_token ehci_qtd 0 33122 NULL
160332 +enable_so_omninet_write_fndecl_33123 omninet_write fndecl 4 33123 NULL nohasharray
160333 +enable_so_ring_size_amdgpu_ring_33123 ring_size amdgpu_ring 0 33123 &enable_so_omninet_write_fndecl_33123
160334 +enable_so_gnttab_map_fndecl_33124 gnttab_map fndecl 2 33124 NULL
160335 +enable_so_max_resp_sz_nfs4_channel_attrs_33127 max_resp_sz nfs4_channel_attrs 0 33127 NULL nohasharray
160336 +enable_so_ari_length_ib_cm_rej_event_param_33127 ari_length ib_cm_rej_event_param 0 33127 &enable_so_max_resp_sz_nfs4_channel_attrs_33127
160337 +enable_so_masklength_iio_dev_33129 masklength iio_dev 0 33129 NULL
160338 +enable_so_hvutil_transport_send_fndecl_33131 hvutil_transport_send fndecl 3 33131 NULL nohasharray
160339 +enable_so_readrids_fndecl_33131 readrids fndecl 0 33131 &enable_so_hvutil_transport_send_fndecl_33131
160340 +enable_so_trebleinit_CHIPDESC_33133 trebleinit CHIPDESC 0 33133 NULL
160341 +enable_so_in_words_ib_uverbs_cmd_hdr_33134 in_words ib_uverbs_cmd_hdr 0 33134 NULL
160342 +enable_so_store_msg_fndecl_33138 store_msg fndecl 3 33138 NULL
160343 +enable_so_acpi_os_write_memory_fndecl_33139 acpi_os_write_memory fndecl 3-1 33139 NULL nohasharray
160344 +enable_so___get_vm_area_caller_fndecl_33139 __get_vm_area_caller fndecl 1-3 33139 &enable_so_acpi_os_write_memory_fndecl_33139
160345 +enable_so_size_bmp_header_33141 size bmp_header 0 33141 NULL nohasharray
160346 +enable_so_hostname_len_nlm_lookup_host_info_33141 hostname_len nlm_lookup_host_info 0 33141 &enable_so_size_bmp_header_33141
160347 +enable_so_fm_extent_count_fiemap_33144 fm_extent_count fiemap 0 33144 NULL
160348 +enable_so_l2cap_segment_le_sdu_fndecl_33145 l2cap_segment_le_sdu fndecl 4 33145 NULL
160349 +enable_so_putused_user_fndecl_33152 putused_user fndecl 3 33152 NULL
160350 +enable_so_osd_req_list_partition_objects_fndecl_33155 osd_req_list_partition_objects fndecl 5 33155 NULL nohasharray
160351 +enable_so_starting_cid_cnic_eth_dev_33155 starting_cid cnic_eth_dev 0 33155 &enable_so_osd_req_list_partition_objects_fndecl_33155
160352 +enable_so_lbs_rdmac_write_fndecl_33156 lbs_rdmac_write fndecl 3 33156 NULL
160353 +enable_so_len_ip_set_ext_type_33164 len ip_set_ext_type 0 33164 NULL
160354 +enable_so_mml_isar_hw_33168 mml isar_hw 0 33168 NULL
160355 +enable_so_walk_pgd_range_fndecl_33169 walk_pgd_range fndecl 0 33169 NULL
160356 +enable_so_cx231xx_init_isoc_fndecl_33174 cx231xx_init_isoc fndecl 4-2-3 33174 NULL
160357 +enable_so_hcs_params2_xhci_hcd_33175 hcs_params2 xhci_hcd 0 33175 NULL
160358 +enable_so_set_connectable_fndecl_33177 set_connectable fndecl 4 33177 NULL
160359 +enable_so_rw_devices_btrfs_fs_devices_33182 rw_devices btrfs_fs_devices 0 33182 NULL
160360 +enable_so_arp_filter_size_mwifiex_adapter_33183 arp_filter_size mwifiex_adapter 0 33183 NULL
160361 +enable_so_niqflint_vf_resources_33189 niqflint vf_resources 0 33189 NULL
160362 +enable_so_ath6kl_wmi_set_ip_cmd_fndecl_33191 ath6kl_wmi_set_ip_cmd fndecl 2 33191 NULL
160363 +enable_so_Memhscx_empty_fifo_fndecl_33197 Memhscx_empty_fifo fndecl 2 33197 NULL
160364 +enable_so_data_avail_vardecl_core_c_33198 data_avail vardecl_core.c 0 33198 NULL
160365 +enable_so_init_map_ip_fndecl_33199 init_map_ip fndecl 5 33199 NULL
160366 +enable_so_ieee80211_rx_mgmt_probe_beacon_fndecl_33208 ieee80211_rx_mgmt_probe_beacon fndecl 3 33208 NULL
160367 +enable_so_block_size_dm_bufio_client_33221 block_size dm_bufio_client 0 33221 NULL
160368 +enable_so_num_lan_msix_i40e_pf_33223 num_lan_msix i40e_pf 0 33223 NULL
160369 +enable_so_ip_options_get_fndecl_33225 ip_options_get fndecl 4 33225 NULL
160370 +enable_so_l1oip_socket_recv_fndecl_33226 l1oip_socket_recv fndecl 6 33226 NULL
160371 +enable_so_segment_count_main_f2fs_super_block_33230 segment_count_main f2fs_super_block 0 33230 NULL
160372 +enable_so_cfg80211_connect_result_fndecl_33232 cfg80211_connect_result fndecl 4-6 33232 NULL
160373 +enable_so_ext4_zeroout_es_fndecl_33233 ext4_zeroout_es fndecl 0 33233 NULL
160374 +enable_so_nsumblk_nilfs_segsum_info_33238 nsumblk nilfs_segsum_info 0 33238 NULL
160375 +enable_so_udf_load_partdesc_fndecl_33239 udf_load_partdesc fndecl 2 33239 NULL
160376 +enable_so_error_mmc_command_33242 error mmc_command 0 33242 NULL
160377 +enable_so_save_tx_buffer_request_fndecl_33245 save_tx_buffer_request fndecl 3 33245 NULL
160378 +enable_so_mfs_fc_lport_33249 mfs fc_lport 0 33249 NULL
160379 +enable_so_alloc_apertures_fndecl_33250 alloc_apertures fndecl 1 33250 NULL
160380 +enable_so_metadata_size_ecryptfs_crypt_stat_33252 metadata_size ecryptfs_crypt_stat 0 33252 NULL
160381 +enable_so_wb_offset_nfs_page_33255 wb_offset nfs_page 0 33255 NULL
160382 +enable_so_handle_bytes_file_handle_33261 handle_bytes file_handle 0 33261 NULL
160383 +enable_so_rs_sta_dbgfs_stats_table_read_fndecl_33262 rs_sta_dbgfs_stats_table_read fndecl 3 33262 NULL
160384 +enable_so_mem_size_ramoops_platform_data_33263 mem_size ramoops_platform_data 0 33263 NULL
160385 +enable_so_ip_vs_prepare_tunneled_skb_fndecl_33269 ip_vs_prepare_tunneled_skb fndecl 3 33269 NULL
160386 +enable_so_ocfs2_change_extent_flag_fndecl_33270 ocfs2_change_extent_flag fndecl 5-3 33270 NULL nohasharray
160387 +enable_so_mem_end_net_device_33270 mem_end net_device 0 33270 &enable_so_ocfs2_change_extent_flag_fndecl_33270
160388 +enable_so_rbd_img_request_fill_fndecl_33274 rbd_img_request_fill fndecl 0 33274 NULL
160389 +enable_so_drv_file_st_partstat_33277 drv_file st_partstat 0 33277 NULL
160390 +enable_so_ep_msg_out_peak_usb_device_33281 ep_msg_out peak_usb_device 0 33281 NULL nohasharray
160391 +enable_so_hpfs_readpages_fndecl_33281 hpfs_readpages fndecl 4 33281 &enable_so_ep_msg_out_peak_usb_device_33281 nohasharray
160392 +enable_so_sbsector_iso9660_options_33281 sbsector iso9660_options 0 33281 &enable_so_hpfs_readpages_fndecl_33281
160393 +enable_so_mappable_end_i915_gtt_33282 mappable_end i915_gtt 0 33282 NULL
160394 +enable_so_cipso_v4_gentag_loc_fndecl_33292 cipso_v4_gentag_loc fndecl 0 33292 NULL nohasharray
160395 +enable_so_frame_size_camera_data_33292 frame_size camera_data 0 33292 &enable_so_cipso_v4_gentag_loc_fndecl_33292
160396 +enable_so_port_mlx4_ib_qp_33295 port mlx4_ib_qp 0 33295 NULL
160397 +enable_so_num_vls_vardecl_33298 num_vls vardecl 0 33298 NULL
160398 +enable_so_vlen_nfsd_readargs_33302 vlen nfsd_readargs 0 33302 NULL
160399 +enable_so_e_phnum_elf64_hdr_33305 e_phnum elf64_hdr 0 33305 NULL
160400 +enable_so_tracing_set_trace_write_fndecl_33307 tracing_set_trace_write fndecl 3 33307 NULL
160401 +enable_so_max_width_vsp1_rwpf_33314 max_width vsp1_rwpf 0 33314 NULL
160402 +enable_so_nl80211_send_deauth_fndecl_33315 nl80211_send_deauth fndecl 4 33315 NULL nohasharray
160403 +enable_so_ima_show_htable_value_fndecl_33315 ima_show_htable_value fndecl 2 33315 &enable_so_nl80211_send_deauth_fndecl_33315
160404 +enable_so_static_rate_ib_ah_attr_33316 static_rate ib_ah_attr 0 33316 NULL
160405 +enable_so__iwl_dbgfs_bf_params_write_fndecl_33318 _iwl_dbgfs_bf_params_write fndecl 3 33318 NULL
160406 +enable_so_index_vardecl_via82xx_modem_c_33320 index vardecl_via82xx_modem.c 0 33320 NULL
160407 +enable_so_acpi_gsb_i2c_read_bytes_fndecl_33322 acpi_gsb_i2c_read_bytes fndecl 4 33322 NULL
160408 +enable_so_hlen_h4_recv_pkt_33324 hlen h4_recv_pkt 0 33324 NULL
160409 +enable_so_ahd_sg_setup_fndecl_33341 ahd_sg_setup fndecl 4-5 33341 NULL
160410 +enable_so_dump_packet_fndecl_33346 dump_packet fndecl 2 33346 NULL
160411 +enable_so_stk_prepare_sio_buffers_fndecl_33347 stk_prepare_sio_buffers fndecl 2 33347 NULL
160412 +enable_so_max_vpi_lpfc_max_cfg_param_33350 max_vpi lpfc_max_cfg_param 0 33350 NULL
160413 +enable_so_setup_mcfg_map_fndecl_33351 setup_mcfg_map fndecl 3-4-5 33351 NULL
160414 +enable_so_rx_hw_stuck_read_fndecl_33352 rx_hw_stuck_read fndecl 3 33352 NULL
160415 +enable_so_netlink_create_fndecl_33353 netlink_create fndecl 3 33353 NULL
160416 +enable_so_dvb_register_device_fndecl_33363 dvb_register_device fndecl 0 33363 NULL
160417 +enable_so_udl_prime_create_fndecl_33364 udl_prime_create fndecl 2 33364 NULL nohasharray
160418 +enable_so_scanlength_usbvision_frame_33364 scanlength usbvision_frame 0 33364 &enable_so_udl_prime_create_fndecl_33364 nohasharray
160419 +enable_so_bpa10x_recv_fndecl_33364 bpa10x_recv fndecl 4 33364 &enable_so_scanlength_usbvision_frame_33364
160420 +enable_so_ihandlen_xfs_fsop_handlereq_33370 ihandlen xfs_fsop_handlereq 0 33370 NULL
160421 +enable_so_lpfc_sg_seg_cnt_init_fndecl_33371 lpfc_sg_seg_cnt_init fndecl 2 33371 NULL
160422 +enable_so_ib_qib_max_srq_wrs_vardecl_33376 ib_qib_max_srq_wrs vardecl 0 33376 NULL
160423 +enable_so_sys_io_getevents_fndecl_33381 sys_io_getevents fndecl 3 33381 NULL
160424 +enable_so_length_mac_configuration_hdr_33392 length mac_configuration_hdr 0 33392 NULL
160425 +enable_so_sys_poll_fndecl_33397 sys_poll fndecl 2 33397 NULL
160426 +enable_so_data_offset_rndis_packet_33403 data_offset rndis_packet 0 33403 NULL
160427 +enable_so_drbg_blocklen_fndecl_33412 drbg_blocklen fndecl 0 33412 NULL
160428 +enable_so_dma_fifo_alloc_fndecl_33415 dma_fifo_alloc fndecl 2-3-5 33415 NULL
160429 +enable_so_flush_space_fndecl_33418 flush_space fndecl 0 33418 NULL
160430 +enable_so_lbmRead_fndecl_33420 lbmRead fndecl 2 33420 NULL
160431 +enable_so_dreq_gss_dccp_request_sock_33423 dreq_gss dccp_request_sock 0 33423 NULL nohasharray
160432 +enable_so_rsxx_cram_write_fndecl_33423 rsxx_cram_write fndecl 3 33423 &enable_so_dreq_gss_dccp_request_sock_33423
160433 +enable_so_tt3650_ci_msg_fndecl_33424 tt3650_ci_msg fndecl 4 33424 NULL
160434 +enable_so_offset_vb2_dma_sg_buf_33426 offset vb2_dma_sg_buf 0 33426 NULL
160435 +enable_so_intr_dma_usb_pcwd_private_33427 intr_dma usb_pcwd_private 0 33427 NULL
160436 +enable_so_change_mtu_fndecl_33432 change_mtu fndecl 2 33432 NULL nohasharray
160437 +enable_so_vlan_id_fnic_33432 vlan_id fnic 0 33432 &enable_so_change_mtu_fndecl_33432 nohasharray
160438 +enable_so_in_nextiag_dinomap_33432 in_nextiag dinomap 0 33432 &enable_so_vlan_id_fnic_33432
160439 +enable_so__nfs4_proc_readlink_fndecl_33436 _nfs4_proc_readlink fndecl 4-3 33436 NULL
160440 +enable_so_wqe_size_ib_uverbs_post_send_33437 wqe_size ib_uverbs_post_send 0 33437 NULL
160441 +enable_so_nilfs_set_nsegments_fndecl_33438 nilfs_set_nsegments fndecl 2 33438 NULL
160442 +enable_so_mmc_test_area_io_seq_fndecl_33440 mmc_test_area_io_seq fndecl 2-9 33440 NULL
160443 +enable_so_w_dloarea_33444 w dloarea 0 33444 NULL
160444 +enable_so_mt7601u_mcu_msg_alloc_fndecl_33453 mt7601u_mcu_msg_alloc fndecl 3 33453 NULL
160445 +enable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 3-4 33455 NULL
160446 +enable_so_oprofilefs_ulong_from_user_fndecl_33456 oprofilefs_ulong_from_user fndecl 3 33456 NULL
160447 +enable_so_alloc_flex_gd_fndecl_33464 alloc_flex_gd fndecl 1 33464 NULL
160448 +enable_so_tx_pipe_usbpn_dev_33474 tx_pipe usbpn_dev 0 33474 NULL
160449 +enable_so_packets_out_tcp_sock_33478 packets_out tcp_sock 0 33478 NULL
160450 +enable_so___nbd_ioctl_fndecl_33480 __nbd_ioctl fndecl 4 33480 NULL
160451 +enable_so_pci_asix_setup_fndecl_33482 pci_asix_setup fndecl 4 33482 NULL
160452 +enable_so_ath6kl_buf_alloc_fndecl_33483 ath6kl_buf_alloc fndecl 1 33483 NULL
160453 +enable_so_ftdi_elan_write_fndecl_33486 ftdi_elan_write fndecl 3 33486 NULL
160454 +enable_so_ath6kl_wmi_cmd_send_fndecl_33493 ath6kl_wmi_cmd_send fndecl 2 33493 NULL
160455 +enable_so_root_size_adfs_discrecord_33498 root_size adfs_discrecord 0 33498 NULL
160456 +enable_so_pstore_file_read_fndecl_33499 pstore_file_read fndecl 3 33499 NULL nohasharray
160457 +enable_so_num_rx_descs_iser_conn_33499 num_rx_descs iser_conn 0 33499 &enable_so_pstore_file_read_fndecl_33499
160458 +enable_so_remote_vni_vxlan_rdst_33505 remote_vni vxlan_rdst 0 33505 NULL
160459 +enable_so_ocfs2_xattr_shrink_size_fndecl_33507 ocfs2_xattr_shrink_size fndecl 3 33507 NULL
160460 +enable_so_chunk_io_fndecl_33510 chunk_io fndecl 3 33510 NULL
160461 +enable_so_pcigart_offset_drm_radeon_private_33512 pcigart_offset drm_radeon_private 0 33512 NULL
160462 +enable_so_error_rx_excessive_frame_len_read_fndecl_33513 error_rx_excessive_frame_len_read fndecl 3 33513 NULL nohasharray
160463 +enable_so___asymmetric_key_hex_to_key_id_fndecl_33513 __asymmetric_key_hex_to_key_id fndecl 3 33513 &enable_so_error_rx_excessive_frame_len_read_fndecl_33513
160464 +enable_so_check_mirror_fndecl_33517 check_mirror fndecl 2-1 33517 NULL nohasharray
160465 +enable_so_usblp_read_fndecl_33517 usblp_read fndecl 3 33517 &enable_so_check_mirror_fndecl_33517
160466 +enable_so_len_writequeue_entry_33522 len writequeue_entry 0 33522 NULL nohasharray
160467 +enable_so_write_file_regval_fndecl_33522 write_file_regval fndecl 3 33522 &enable_so_len_writequeue_entry_33522
160468 +enable_so_iwl_dbgfs_tx_pwr_lmt_read_fndecl_33527 iwl_dbgfs_tx_pwr_lmt_read fndecl 3 33527 NULL
160469 +enable_so_offset_port_buffer_33530 offset port_buffer 0 33530 NULL
160470 +enable_so___mxt_write_reg_fndecl_33533 __mxt_write_reg fndecl 3 33533 NULL
160471 +enable_so_ieee802154_hdr_addr_len_fndecl_33535 ieee802154_hdr_addr_len fndecl 0 33535 NULL
160472 +enable_so_si476x_radio_read_agc_blob_fndecl_33538 si476x_radio_read_agc_blob fndecl 3 33538 NULL
160473 +enable_so_sq_size_nes_hw_qp_33544 sq_size nes_hw_qp 0 33544 NULL nohasharray
160474 +enable_so_num_seq_vgastate_33544 num_seq vgastate 0 33544 &enable_so_sq_size_nes_hw_qp_33544
160475 +enable_so_tx_queues_nicvf_33546 tx_queues nicvf 0 33546 NULL
160476 +enable_so_dlfb_setup_modes_fndecl_33548 dlfb_setup_modes fndecl 4 33548 NULL
160477 +enable_so_kvm_vcpu_read_guest_fndecl_33552 kvm_vcpu_read_guest fndecl 2-4 33552 NULL
160478 +enable_so_tcf_hash_create_fndecl_33553 tcf_hash_create fndecl 4 33553 NULL
160479 +enable_so_mwifiex_create_ba_tbl_fndecl_33555 mwifiex_create_ba_tbl fndecl 3 33555 NULL
160480 +enable_so_cpb_s5p_mfc_buf_size_33560 cpb s5p_mfc_buf_size 0 33560 NULL
160481 +enable_so_nfc_llcp_build_sdreq_tlv_fndecl_33563 nfc_llcp_build_sdreq_tlv fndecl 3 33563 NULL
160482 +enable_so_snd_rawmidi_kernel_write1_fndecl_33564 snd_rawmidi_kernel_write1 fndecl 4-0 33564 NULL
160483 +enable_so_snb_pci2phy_map_init_fndecl_33565 snb_pci2phy_map_init fndecl 1 33565 NULL
160484 +enable_so_recv_buf_size_netvsc_device_33569 recv_buf_size netvsc_device 0 33569 NULL nohasharray
160485 +enable_so_qlen_status_event_list_33569 qlen status_event_list 0 33569 &enable_so_recv_buf_size_netvsc_device_33569
160486 +enable_so_source_irq_acpi_madt_interrupt_override_33574 source_irq acpi_madt_interrupt_override 0 33574 NULL
160487 +enable_so_lcm_fndecl_33580 lcm fndecl 0-2-1 33580 NULL nohasharray
160488 +enable_so_self_dnode_33580 self dnode 0 33580 &enable_so_lcm_fndecl_33580 nohasharray
160489 +enable_so_batadv_tt_update_changes_fndecl_33580 batadv_tt_update_changes fndecl 3 33580 &enable_so_self_dnode_33580
160490 +enable_so_btt_do_bvec_fndecl_33585 btt_do_bvec fndecl 0 33585 NULL
160491 +enable_so_btrfs_direct_IO_fndecl_33586 btrfs_direct_IO fndecl 3 33586 NULL
160492 +enable_so_bfad_iocmd_port_cfg_mode_fndecl_33588 bfad_iocmd_port_cfg_mode fndecl 0 33588 NULL
160493 +enable_so_i2c_readregs_fndecl_33590 i2c_readregs fndecl 5 33590 NULL
160494 +enable_so_hci_mgmt_cmd_fndecl_33591 hci_mgmt_cmd fndecl 4 33591 NULL
160495 +enable_so_num_ae_requests_vardecl_33594 num_ae_requests vardecl 0 33594 NULL
160496 +enable_so_lde_namelen_lu_dirent_33595 lde_namelen lu_dirent 0 33595 NULL
160497 +enable_so_copy_range_nfulnl_msg_config_mode_33596 copy_range nfulnl_msg_config_mode 0 33596 NULL
160498 +enable_so_fsl_spi_bufs_fndecl_33599 fsl_spi_bufs fndecl 0 33599 NULL
160499 +enable_so_max_header_size_iriap_cb_33603 max_header_size iriap_cb 0 33603 NULL
160500 +enable_so___kfifo_out_fndecl_33612 __kfifo_out fndecl 0-3 33612 NULL nohasharray
160501 +enable_so_drm_prime_pages_to_sg_fndecl_33612 drm_prime_pages_to_sg fndecl 2 33612 &enable_so___kfifo_out_fndecl_33612
160502 +enable_so_hfsplus_find_cat_fndecl_33616 hfsplus_find_cat fndecl 0 33616 NULL nohasharray
160503 +enable_so_names_size_ceph_inode_xattrs_info_33616 names_size ceph_inode_xattrs_info 0 33616 &enable_so_hfsplus_find_cat_fndecl_33616
160504 +enable_so_lpfc_gen_req_fndecl_33617 lpfc_gen_req fndecl 8 33617 NULL
160505 +enable_so_num_retune_mobile_texts_wm8994_priv_33620 num_retune_mobile_texts wm8994_priv 0 33620 NULL
160506 +enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 rc_framerate_num s5p_mfc_enc_params 0 33630 NULL nohasharray
160507 +enable_so_nf_getsockopt_fndecl_33630 nf_getsockopt fndecl 0 33630 &enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 nohasharray
160508 +enable_so_scif_setup_qp_accept_fndecl_33630 scif_setup_qp_accept fndecl 4 33630 &enable_so_nf_getsockopt_fndecl_33630
160509 +enable_so_data_size_kretprobe_33633 data_size kretprobe 0 33633 NULL
160510 +enable_so_find_smallest_section_pfn_fndecl_33641 find_smallest_section_pfn fndecl 0-3 33641 NULL
160511 +enable_so_memblock_size_vxge_hw_mempool_33647 memblock_size vxge_hw_mempool 0 33647 NULL
160512 +enable_so_size_dma_buf_33648 size dma_buf 0 33648 NULL nohasharray
160513 +enable_so_s_want_extra_isize_ext4_sb_info_33648 s_want_extra_isize ext4_sb_info 0 33648 &enable_so_size_dma_buf_33648
160514 +enable_so_check_header_fndecl_33649 check_header fndecl 2 33649 NULL
160515 +enable_so_tool_peer_spad_write_fndecl_33652 tool_peer_spad_write fndecl 3 33652 NULL
160516 +enable_so_hfs_inode_read_fork_fndecl_33654 hfs_inode_read_fork fndecl 4-3 33654 NULL
160517 +enable_so_savage_init_hw_fndecl_33678 savage_init_hw fndecl 0 33678 NULL
160518 +enable_so_data_size_vxge_rx_priv_33684 data_size vxge_rx_priv 0 33684 NULL
160519 +enable_so_port_mlx4_net_trans_rule_hw_ctrl_33685 port mlx4_net_trans_rule_hw_ctrl 0 33685 NULL
160520 +enable_so_mb_find_order_for_block_fndecl_33691 mb_find_order_for_block fndecl 0 33691 NULL
160521 +enable_so_ide_cdrom_probe_capabilities_fndecl_33699 ide_cdrom_probe_capabilities fndecl 0 33699 NULL
160522 +enable_so_alignment_offset_queue_limits_33701 alignment_offset queue_limits 0 33701 NULL
160523 +enable_so_jffs2_sum_write_data_fndecl_33705 jffs2_sum_write_data fndecl 3-4 33705 NULL nohasharray
160524 +enable_so_mmc_test_map_sg_max_scatter_fndecl_33705 mmc_test_map_sg_max_scatter fndecl 2-5 33705 &enable_so_jffs2_sum_write_data_fndecl_33705
160525 +enable_so_calculate_memsize_fndecl_33706 calculate_memsize fndecl 0-5-3-4-2-1 33706 NULL
160526 +enable_so_network_header_sk_buff_33708 network_header sk_buff 0 33708 NULL
160527 +enable_so_out_phase_usb_stream_kernel_33720 out_phase usb_stream_kernel 0 33720 NULL nohasharray
160528 +enable_so_vlsi_alloc_ring_fndecl_33720 vlsi_alloc_ring fndecl 3-4 33720 &enable_so_out_phase_usb_stream_kernel_33720
160529 +enable_so_video_height_sis_video_info_33732 video_height sis_video_info 0 33732 NULL nohasharray
160530 +enable_so_atwrite_submit_fndecl_33732 atwrite_submit fndecl 3 33732 &enable_so_video_height_sis_video_info_33732
160531 +enable_so_amdgpu_bo_create_fndecl_33733 amdgpu_bo_create fndecl 2 33733 NULL nohasharray
160532 +enable_so_hpfs_bmap_fndecl_33733 hpfs_bmap fndecl 2-0 33733 &enable_so_amdgpu_bo_create_fndecl_33733
160533 +enable_so_xres_fb_var_screeninfo_33734 xres fb_var_screeninfo 0 33734 NULL
160534 +enable_so_ovl_copy_up_data_fndecl_33738 ovl_copy_up_data fndecl 3 33738 NULL
160535 +enable_so_stub_chips_nr_vardecl_i2c_stub_c_33739 stub_chips_nr vardecl_i2c-stub.c 0 33739 NULL
160536 +enable_so_raw_cmd_copyout_fndecl_33741 raw_cmd_copyout fndecl 0 33741 NULL
160537 +enable_so_xfs_buf_read_map_fndecl_33742 xfs_buf_read_map fndecl 3 33742 NULL
160538 +enable_so_aircable_process_packet_fndecl_33744 aircable_process_packet fndecl 4 33744 NULL
160539 +enable_so_lengthComponentIdent_pathComponent_33758 lengthComponentIdent pathComponent 0 33758 NULL
160540 +enable_so_avr_ack_ptr_dccp_ackvec_record_33759 avr_ack_ptr dccp_ackvec_record 0 33759 NULL
160541 +enable_so_cim_la_size_adapter_params_33761 cim_la_size adapter_params 0 33761 NULL
160542 +enable_so_efx_farch_dimension_resources_fndecl_33764 efx_farch_dimension_resources fndecl 2 33764 NULL
160543 +enable_so_default_bpp_vardecl_sm501fb_c_33765 default_bpp vardecl_sm501fb.c 0 33765 NULL
160544 +enable_so_wmi_send_fndecl_33768 wmi_send fndecl 4 33768 NULL
160545 +enable_so_f_height_gsc_frame_33772 f_height gsc_frame 0 33772 NULL
160546 +enable_so_cx2341x_ctrl_new_std_fndecl_33782 cx2341x_ctrl_new_std fndecl 4-3-6 33782 NULL
160547 +enable_so_max_gpios_rdc321x_gpio_pdata_33783 max_gpios rdc321x_gpio_pdata 0 33783 NULL
160548 +enable_so_do_jit_fndecl_33785 do_jit fndecl 0 33785 NULL nohasharray
160549 +enable_so_pcmcia_replace_cis_fndecl_33785 pcmcia_replace_cis fndecl 3 33785 &enable_so_do_jit_fndecl_33785 nohasharray
160550 +enable_so_fm_mapped_extents_ll_user_fiemap_33785 fm_mapped_extents ll_user_fiemap 0 33785 &enable_so_pcmcia_replace_cis_fndecl_33785
160551 +enable_so_sca3000_read_data_fndecl_33787 sca3000_read_data fndecl 4 33787 NULL
160552 +enable_so_sis190_try_rx_copy_fndecl_33790 sis190_try_rx_copy fndecl 3 33790 NULL
160553 +enable_so_sd_write_data_fndecl_33792 sd_write_data fndecl 5-0 33792 NULL
160554 +enable_so_icv_truncbits_xfrm_algo_auth_info_33798 icv_truncbits xfrm_algo_auth_info 0 33798 NULL
160555 +enable_so_edt_ft5x06_register_read_fndecl_33803 edt_ft5x06_register_read fndecl 0 33803 NULL
160556 +enable_so_page_size_vmw_cmdbuf_alloc_info_33815 page_size vmw_cmdbuf_alloc_info 0 33815 NULL nohasharray
160557 +enable_so_next_send_psn_mthca_qp_context_33815 next_send_psn mthca_qp_context 0 33815 &enable_so_page_size_vmw_cmdbuf_alloc_info_33815
160558 +enable_so_custom_length_iscsi_stats_33819 custom_length iscsi_stats 0 33819 NULL
160559 +enable_so_snd_find_free_minor_fndecl_33820 snd_find_free_minor fndecl 0 33820 NULL
160560 +enable_so_dn_ide_drive_s_33823 dn ide_drive_s 0 33823 NULL
160561 +enable_so_SyS_keyctl_fndecl_33825 SyS_keyctl fndecl 4 33825 NULL
160562 +enable_so_mult_usb_ep_33831 mult usb_ep 0 33831 NULL
160563 +enable_so_selinux_setprocattr_fndecl_33832 selinux_setprocattr fndecl 4 33832 NULL
160564 +enable_so_blk_size_ide_tape_obj_33837 blk_size ide_tape_obj 0 33837 NULL
160565 +enable_so_targetsize_xt_target_33840 targetsize xt_target 0 33840 NULL
160566 +enable_so_depth_drm_vmw_size_33842 depth drm_vmw_size 0 33842 NULL
160567 +enable_so_mgmt_cmd_complete_fndecl_33845 mgmt_cmd_complete fndecl 6 33845 NULL
160568 +enable_so_add_partition_fndecl_33847 add_partition fndecl 3-4-2 33847 NULL
160569 +enable_so_sctp_addto_chunk_fixed_fndecl_33853 sctp_addto_chunk_fixed fndecl 2 33853 NULL
160570 +enable_so_xfs_qm_scall_trunc_qfile_fndecl_33855 xfs_qm_scall_trunc_qfile fndecl 2 33855 NULL
160571 +enable_so_rx_buf_total_size__mgslpc_info_33856 rx_buf_total_size _mgslpc_info 0 33856 NULL
160572 +enable_so_valuelen_xfs_attr_leaf_name_remote_33863 valuelen xfs_attr_leaf_name_remote 0 33863 NULL
160573 +enable_so_dvb_dmxdev_set_buffer_size_fndecl_33864 dvb_dmxdev_set_buffer_size fndecl 2 33864 NULL
160574 +enable_so_root_adfs_discrecord_33866 root adfs_discrecord 0 33866 NULL nohasharray
160575 +enable_so_h5_link_control_fndecl_33866 h5_link_control fndecl 3 33866 &enable_so_root_adfs_discrecord_33866
160576 +enable_so_edge_tty_recv_fndecl_33877 edge_tty_recv fndecl 3 33877 NULL
160577 +enable_so_tolen_nfs_linkargs_33881 tolen nfs_linkargs 0 33881 NULL nohasharray
160578 +enable_so_walk_system_ram_res_fndecl_33881 walk_system_ram_res fndecl 2-1 33881 &enable_so_tolen_nfs_linkargs_33881
160579 +enable_so_len_gsm_control_33882 len gsm_control 0 33882 NULL
160580 +enable_so_reiserfs_xattr_get_fndecl_33887 reiserfs_xattr_get fndecl 0 33887 NULL nohasharray
160581 +enable_so_pktgen_if_write_fndecl_33887 pktgen_if_write fndecl 3 33887 &enable_so_reiserfs_xattr_get_fndecl_33887
160582 +enable_so_il_dbgfs_tx_queue_read_fndecl_33895 il_dbgfs_tx_queue_read fndecl 3 33895 NULL
160583 +enable_so_src_len_ccp_xts_aes_engine_33899 src_len ccp_xts_aes_engine 0 33899 NULL
160584 +enable_so_init_stripe_fndecl_33902 init_stripe fndecl 2 33902 NULL nohasharray
160585 +enable_so_direct2indirect_fndecl_33902 direct2indirect fndecl 5 33902 &enable_so_init_stripe_fndecl_33902
160586 +enable_so_xfs_bmbt_maxrecs_fndecl_33906 xfs_bmbt_maxrecs fndecl 0-2 33906 NULL
160587 +enable_so__install_special_mapping_fndecl_33907 _install_special_mapping fndecl 3-2 33907 NULL
160588 +enable_so_vxlan_fdb_append_fndecl_33909 vxlan_fdb_append fndecl 4 33909 NULL
160589 +enable_so_rx_desc_count_xgbe_prv_data_33915 rx_desc_count xgbe_prv_data 0 33915 NULL
160590 +enable_so_lpfc_idiag_queinfo_read_fndecl_33917 lpfc_idiag_queinfo_read fndecl 3 33917 NULL
160591 +enable_so_w83627hf_device_add_fndecl_33919 w83627hf_device_add fndecl 1 33919 NULL
160592 +enable_so_wil_vring_alloc_skb_fndecl_33924 wil_vring_alloc_skb fndecl 4 33924 NULL
160593 +enable_so_size_cmdline_vardecl_dma_contiguous_c_33925 size_cmdline vardecl_dma-contiguous.c 0 33925 NULL
160594 +enable_so_ad9389b_rd_fndecl_33927 ad9389b_rd fndecl 0 33927 NULL nohasharray
160595 +enable_so_seq_num_rdma_id_private_33927 seq_num rdma_id_private 0 33927 &enable_so_ad9389b_rd_fndecl_33927
160596 +enable_so_genl_allocate_reserve_groups_fndecl_33930 genl_allocate_reserve_groups fndecl 1 33930 NULL
160597 +enable_so_max_channels_snd_midi_channel_set_33931 max_channels snd_midi_channel_set 0 33931 NULL
160598 +enable_so_numa_add_memblk_to_fndecl_33934 numa_add_memblk_to fndecl 2-3 33934 NULL nohasharray
160599 +enable_so_isl1208_i2c_set_regs_fndecl_33934 isl1208_i2c_set_regs fndecl 4 33934 &enable_so_numa_add_memblk_to_fndecl_33934 nohasharray
160600 +enable_so_tcp_push_fndecl_33934 tcp_push fndecl 3 33934 &enable_so_isl1208_i2c_set_regs_fndecl_33934
160601 +enable_so_pci_scan_device_fndecl_33935 pci_scan_device fndecl 2 33935 NULL
160602 +enable_so_iwl_dbgfs_plcp_delta_write_fndecl_33937 iwl_dbgfs_plcp_delta_write fndecl 3 33937 NULL
160603 +enable_so_get_info_fndecl_33938 get_info fndecl 3 33938 NULL
160604 +enable_so_bulk_in_usbatm_driver_33939 bulk_in usbatm_driver 0 33939 NULL
160605 +enable_so_wMaxPacketSize_usb_endpoint_descriptor_33942 wMaxPacketSize usb_endpoint_descriptor 0 33942 NULL
160606 +enable_so_ext4_alloc_file_blocks_fndecl_33946 ext4_alloc_file_blocks fndecl 2-3 33946 NULL
160607 +enable_so_i_first_extent_iso_inode_info_33947 i_first_extent iso_inode_info 0 33947 NULL
160608 +enable_so_num_rsp_hci_inquiry_req_33953 num_rsp hci_inquiry_req 0 33953 NULL
160609 +enable_so_lpfc_sg_seg_cnt_vardecl_lpfc_attr_c_33956 lpfc_sg_seg_cnt vardecl_lpfc_attr.c 0 33956 NULL
160610 +enable_so_ext4_get_block_fndecl_33967 ext4_get_block fndecl 2 33967 NULL
160611 +enable_so_nfc_hci_send_cmd_fndecl_33969 nfc_hci_send_cmd fndecl 5 33969 NULL
160612 +enable_so_ocfs2_lock_refcount_tree_fndecl_33972 ocfs2_lock_refcount_tree fndecl 2 33972 NULL nohasharray
160613 +enable_so_mtdswap_init_fndecl_33972 mtdswap_init fndecl 2 33972 &enable_so_ocfs2_lock_refcount_tree_fndecl_33972
160614 +enable_so_pm8001_store_update_fw_fndecl_33975 pm8001_store_update_fw fndecl 4 33975 NULL
160615 +enable_so_max_indirect_segments_blkfront_info_33976 max_indirect_segments blkfront_info 0 33976 NULL
160616 +enable_so_cwarn_cm4000_dev_33978 cwarn cm4000_dev 0 33978 NULL
160617 +enable_so_buf_len_wmi_tlv_mgmt_rx_ev_33979 buf_len wmi_tlv_mgmt_rx_ev 0 33979 NULL
160618 +enable_so_usbat_bulk_write_fndecl_33983 usbat_bulk_write fndecl 3-4 33983 NULL
160619 +enable_so_unit_off_ore_striping_info_33989 unit_off ore_striping_info 0 33989 NULL
160620 +enable_so_size_fjes_hw_resource_33991 size fjes_hw_resource 0 33991 NULL
160621 +enable_so_sectorsize_scrub_ctx_33993 sectorsize scrub_ctx 0 33993 NULL
160622 +enable_so_num_ioim_reqs_bfa_iocfc_fwcfg_s_33994 num_ioim_reqs bfa_iocfc_fwcfg_s 0 33994 NULL nohasharray
160623 +enable_so_ethtool_copy_validate_indir_fndecl_33994 ethtool_copy_validate_indir fndecl 4 33994 &enable_so_num_ioim_reqs_bfa_iocfc_fwcfg_s_33994
160624 +enable_so_count_xfs_attr_sf_hdr_33996 count xfs_attr_sf_hdr 0 33996 NULL
160625 +enable_so_dib9000_risc_apb_access_write_fndecl_34004 dib9000_risc_apb_access_write fndecl 5 34004 NULL
160626 +enable_so_batadv_tvlv_unicast_send_fndecl_34005 batadv_tvlv_unicast_send fndecl 7 34005 NULL
160627 +enable_so_rxextrahdrroom_dma_info_34007 rxextrahdrroom dma_info 0 34007 NULL
160628 +enable_so_ctxtcnt_qib_devdata_34012 ctxtcnt qib_devdata 0 34012 NULL
160629 +enable_so_size_vmw_cotable_info_34013 size vmw_cotable_info 0 34013 NULL nohasharray
160630 +enable_so_periodic_size_ehci_hcd_34013 periodic_size ehci_hcd 0 34013 &enable_so_size_vmw_cotable_info_34013
160631 +enable_so_wl12xx_spi_raw_read_fndecl_34014 wl12xx_spi_raw_read fndecl 4 34014 NULL nohasharray
160632 +enable_so_set_local_name_fndecl_34014 set_local_name fndecl 4 34014 &enable_so_wl12xx_spi_raw_read_fndecl_34014
160633 +enable_so_parent_len_fndecl_34020 parent_len fndecl 0 34020 NULL nohasharray
160634 +enable_so_uwb_rc_neh_grok_event_fndecl_34020 uwb_rc_neh_grok_event fndecl 3 34020 &enable_so_parent_len_fndecl_34020
160635 +enable_so___kvm_write_guest_page_fndecl_34021 __kvm_write_guest_page fndecl 2-5 34021 NULL
160636 +enable_so_membase_jsm_board_34030 membase jsm_board 0 34030 NULL
160637 +enable_so_size_edac_mc_layer_34031 size edac_mc_layer 0 34031 NULL nohasharray
160638 +enable_so_b_cnt_chip_select_34031 b_cnt chip_select 0 34031 &enable_so_size_edac_mc_layer_34031
160639 +enable_so_strlen_fndecl_34033 strlen fndecl 0 34033 NULL
160640 +enable_so_mmc_switch_status_fndecl_34034 mmc_switch_status fndecl 0 34034 NULL
160641 +enable_so_blksize_sdio_cis_34036 blksize sdio_cis 0 34036 NULL
160642 +enable_so_sector_number_blkif_request_discard_34039 sector_number blkif_request_discard 0 34039 NULL nohasharray
160643 +enable_so_wil_addba_tx_request_fndecl_34039 wil_addba_tx_request fndecl 3 34039 &enable_so_sector_number_blkif_request_discard_34039
160644 +enable_so_req_bio_endio_fndecl_34041 req_bio_endio fndecl 3-4 34041 NULL nohasharray
160645 +enable_so_conf_read_fndecl_34041 conf_read fndecl 3 34041 &enable_so_req_bio_endio_fndecl_34041
160646 +enable_so_len_hdlcdrv_hdlcrx_34043 len hdlcdrv_hdlcrx 0 34043 NULL
160647 +enable_so_dma_size_nx_host_rds_ring_34047 dma_size nx_host_rds_ring 0 34047 NULL
160648 +enable_so_ide_do_setfeature_fndecl_34050 ide_do_setfeature fndecl 3 34050 NULL
160649 +enable_so_sys_mmap_pgoff_fndecl_34056 sys_mmap_pgoff fndecl 2 34056 NULL
160650 +enable_so_lov_get_stripecnt_fndecl_34066 lov_get_stripecnt fndecl 0-3 34066 NULL
160651 +enable_so_gsm_control_modem_fndecl_34068 gsm_control_modem fndecl 3 34068 NULL
160652 +enable_so_memmap_exclude_ranges_fndecl_34071 memmap_exclude_ranges fndecl 3-4 34071 NULL nohasharray
160653 +enable_so_wb_bytes_nfs_page_34071 wb_bytes nfs_page 0 34071 &enable_so_memmap_exclude_ranges_fndecl_34071 nohasharray
160654 +enable_so_opt_val_tcp_repair_opt_34071 opt_val tcp_repair_opt 0 34071 &enable_so_wb_bytes_nfs_page_34071 nohasharray
160655 +enable_so_RLgLen_hfs_cat_file_34071 RLgLen hfs_cat_file 0 34071 &enable_so_opt_val_tcp_repair_opt_34071
160656 +enable_so_qp_alloc_guest_work_fndecl_34074 qp_alloc_guest_work fndecl 5-3 34074 NULL nohasharray
160657 +enable_so___get_vm_area_node_fndecl_34074 __get_vm_area_node fndecl 1-4-2 34074 &enable_so_qp_alloc_guest_work_fndecl_34074
160658 +enable_so_bfad_iocmd_fruvpd_get_max_size_fndecl_34082 bfad_iocmd_fruvpd_get_max_size fndecl 0 34082 NULL
160659 +enable_so_isert_build_rdma_wr_fndecl_34085 isert_build_rdma_wr fndecl 5-6 34085 NULL
160660 +enable_so_rec_len_ext2_dir_entry_2_34086 rec_len ext2_dir_entry_2 0 34086 NULL nohasharray
160661 +enable_so_get_info_tcp_congestion_ops_34086 get_info tcp_congestion_ops 0 34086 &enable_so_rec_len_ext2_dir_entry_2_34086
160662 +enable_so_mst_node_alsz_ubifs_info_34087 mst_node_alsz ubifs_info 0 34087 NULL
160663 +enable_so_LFBsize_sis_video_info_34089 LFBsize sis_video_info 0 34089 NULL
160664 +enable_so___memblock_alloc_base_fndecl_34092 __memblock_alloc_base fndecl 2-1-0-3 34092 NULL
160665 +enable_so_dccm_len_iwl_cfg_34095 dccm_len iwl_cfg 0 34095 NULL
160666 +enable_so_max_frame_ft_sess_34098 max_frame ft_sess 0 34098 NULL nohasharray
160667 +enable_so_compat_SyS_mbind_fndecl_34098 compat_SyS_mbind fndecl 5 34098 &enable_so_max_frame_ft_sess_34098
160668 +enable_so_c_chmask_f_uac2_opts_34103 c_chmask f_uac2_opts 0 34103 NULL
160669 +enable_so_vme_user_read_fndecl_34105 vme_user_read fndecl 3 34105 NULL
160670 +enable_so_reg_read_fndecl_34106 reg_read fndecl 0 34106 NULL
160671 +enable_so_do_shmat_fndecl_34107 do_shmat fndecl 5 34107 NULL
160672 +enable_so___wa_xfer_setup_sizes_fndecl_34109 __wa_xfer_setup_sizes fndecl 0 34109 NULL
160673 +enable_so_lcd_right_margin_atyfb_par_34110 lcd_right_margin atyfb_par 0 34110 NULL
160674 +enable_so_reserved_eq_mlx4_func_cap_34117 reserved_eq mlx4_func_cap 0 34117 NULL
160675 +enable_so_chunk_size_lirc_driver_34118 chunk_size lirc_driver 0 34118 NULL
160676 +enable_so_qxl_alloc_bo_reserved_fndecl_34119 qxl_alloc_bo_reserved fndecl 3 34119 NULL
160677 +enable_so_nf_nat_ipv4_manip_pkt_fndecl_34120 nf_nat_ipv4_manip_pkt fndecl 2 34120 NULL
160678 +enable_so_cw1200_sdio_align_size_fndecl_34124 cw1200_sdio_align_size fndecl 2 34124 NULL nohasharray
160679 +enable_so_size_qlcnic_fw_dump_34124 size qlcnic_fw_dump 0 34124 &enable_so_cw1200_sdio_align_size_fndecl_34124
160680 +enable_so_nfs_vmtruncate_fndecl_34126 nfs_vmtruncate fndecl 2 34126 NULL
160681 +enable_so_do_command_fndecl_34128 do_command fndecl 0 34128 NULL
160682 +enable_so_digestsize_hash_tfm_34135 digestsize hash_tfm 0 34135 NULL
160683 +enable_so_dst_width_snd_pcm_plugin_34144 dst_width snd_pcm_plugin 0 34144 NULL
160684 +enable_so_substream_count_snd_pcm_str_34149 substream_count snd_pcm_str 0 34149 NULL
160685 +enable_so_object_size_kmem_cache_34151 object_size kmem_cache 0 34151 NULL
160686 +enable_so_vmax_packet_size_pwc_device_34153 vmax_packet_size pwc_device 0 34153 NULL
160687 +enable_so_sky2_change_mtu_fndecl_34157 sky2_change_mtu fndecl 2 34157 NULL nohasharray
160688 +enable_so_data_size_dm_ulog_request_34157 data_size dm_ulog_request 0 34157 &enable_so_sky2_change_mtu_fndecl_34157
160689 +enable_so_nb_if_sdio_packet_34158 nb if_sdio_packet 0 34158 NULL nohasharray
160690 +enable_so_usb_pipe_ua101_stream_34158 usb_pipe ua101_stream 0 34158 &enable_so_nb_if_sdio_packet_34158 nohasharray
160691 +enable_so_max_requests_rpcrdma_create_data_internal_34158 max_requests rpcrdma_create_data_internal 0 34158 &enable_so_usb_pipe_ua101_stream_34158
160692 +enable_so_krb5_decrypt_fndecl_34166 krb5_decrypt fndecl 5 34166 NULL
160693 +enable_so_save_mr_fndecl_34167 save_mr fndecl 4 34167 NULL
160694 +enable_so_blockmask_sddr55_card_info_34172 blockmask sddr55_card_info 0 34172 NULL nohasharray
160695 +enable_so_iwl_dbgfs_plcp_delta_read_fndecl_34172 iwl_dbgfs_plcp_delta_read fndecl 3 34172 &enable_so_blockmask_sddr55_card_info_34172
160696 +enable_so_osst_seek_sector_fndecl_34173 osst_seek_sector fndecl 3 34173 NULL
160697 +enable_so_bfad_iocmd_phy_update_fndecl_34178 bfad_iocmd_phy_update fndecl 0 34178 NULL
160698 +enable_so_buffers_pipe_inode_info_34187 buffers pipe_inode_info 0 34187 NULL
160699 +enable_so_sys_recv_fndecl_34188 sys_recv fndecl 3 34188 NULL
160700 +enable_so_new_oblock_dm_cache_migration_34189 new_oblock dm_cache_migration 0 34189 NULL
160701 +enable_so_si476x_radio_read_rds_blckcnt_blob_fndecl_34192 si476x_radio_read_rds_blckcnt_blob fndecl 3 34192 NULL
160702 +enable_so_length_dm_target_spec_34193 length dm_target_spec 0 34193 NULL
160703 +enable_so_map_length_scrub_recover_34196 map_length scrub_recover 0 34196 NULL
160704 +enable_so_write_room_tty_operations_34200 write_room tty_operations 0 34200 NULL
160705 +enable_so_cxgb4vf_change_mtu_fndecl_34204 cxgb4vf_change_mtu fndecl 2 34204 NULL
160706 +enable_so_cx23888_ir_rx_read_fndecl_34210 cx23888_ir_rx_read fndecl 3 34210 NULL nohasharray
160707 +enable_so_usbip_dump_buffer_fndecl_34210 usbip_dump_buffer fndecl 2 34210 &enable_so_cx23888_ir_rx_read_fndecl_34210
160708 +enable_so_xen_evtchn_max_channels_fndecl_34213 xen_evtchn_max_channels fndecl 0 34213 NULL
160709 +enable_so_snd_pcm_lib_write_fndecl_34216 snd_pcm_lib_write fndecl 0 34216 NULL
160710 +enable_so_new_sync_write_fndecl_34217 new_sync_write fndecl 0-3 34217 NULL
160711 +enable_so_total_out_z_stream_s_34221 total_out z_stream_s 0 34221 NULL
160712 +enable_so_ext4_expand_extra_isize_fndecl_34225 ext4_expand_extra_isize fndecl 2 34225 NULL
160713 +enable_so_ath6kl_wmi_simple_cmd_fndecl_34229 ath6kl_wmi_simple_cmd fndecl 2 34229 NULL nohasharray
160714 +enable_so___vxge_hw_channel_allocate_fndecl_34229 __vxge_hw_channel_allocate fndecl 3 34229 &enable_so_ath6kl_wmi_simple_cmd_fndecl_34229
160715 +enable_so_isdn_net_type_trans_fndecl_34232 isdn_net_type_trans fndecl 0 34232 NULL
160716 +enable_so_isdnhdlc_decode_fndecl_34233 isdnhdlc_decode fndecl 0 34233 NULL nohasharray
160717 +enable_so_m_len_s_mbuf_34233 m_len s_mbuf 0 34233 &enable_so_isdnhdlc_decode_fndecl_34233
160718 +enable_so_max_devs_supported_ipr_ioa_cfg_34240 max_devs_supported ipr_ioa_cfg 0 34240 NULL
160719 +enable_so_cfpkt_pad_trail_fndecl_34244 cfpkt_pad_trail fndecl 2 34244 NULL nohasharray
160720 +enable_so_tx_tx_done_int_template_read_fndecl_34244 tx_tx_done_int_template_read fndecl 3 34244 &enable_so_cfpkt_pad_trail_fndecl_34244
160721 +enable_so_agno_xfs_extent_busy_34245 agno xfs_extent_busy 0 34245 NULL
160722 +enable_so_rss_cpus_vardecl_efx_c_34253 rss_cpus vardecl_efx.c 0 34253 NULL nohasharray
160723 +enable_so_pktgen_finalize_skb_fndecl_34253 pktgen_finalize_skb fndecl 3 34253 &enable_so_rss_cpus_vardecl_efx_c_34253
160724 +enable_so___reserve_region_with_split_fndecl_34259 __reserve_region_with_split fndecl 3-2 34259 NULL
160725 +enable_so_status_tulip_rx_desc_34260 status tulip_rx_desc 0 34260 NULL
160726 +enable_so_MaxTransactSize_smb2_negotiate_rsp_34261 MaxTransactSize smb2_negotiate_rsp 0 34261 NULL
160727 +enable_so_count_igbvf_ring_34264 count igbvf_ring 0 34264 NULL
160728 +enable_so_smiapp_read_8only_fndecl_34265 smiapp_read_8only fndecl 2 34265 NULL
160729 +enable_so_reg_read_smsc911x_ops_34274 reg_read smsc911x_ops 0 34274 NULL
160730 +enable_so_port_qib_pportdata_34275 port qib_pportdata 0 34275 NULL
160731 +enable_so_max_segs_mmc_host_34276 max_segs mmc_host 0 34276 NULL nohasharray
160732 +enable_so_tty_port_register_device_fndecl_34276 tty_port_register_device fndecl 3 34276 &enable_so_max_segs_mmc_host_34276
160733 +enable_so_btt_map_read_fndecl_34281 btt_map_read fndecl 0 34281 NULL
160734 +enable_so_buf_len_wmi_10_4_mgmt_rx_hdr_34285 buf_len wmi_10_4_mgmt_rx_hdr 0 34285 NULL
160735 +enable_so_ea_get_fndecl_34289 ea_get fndecl 3 34289 NULL nohasharray
160736 +enable_so_ocfs2_group_from_res_fndecl_34289 ocfs2_group_from_res fndecl 0 34289 &enable_so_ea_get_fndecl_34289
160737 +enable_so_cpu_msix_table_sz_MPT3SAS_ADAPTER_34295 cpu_msix_table_sz MPT3SAS_ADAPTER 0 34295 NULL
160738 +enable_so_skb_coalesce_rx_frag_fndecl_34296 skb_coalesce_rx_frag fndecl 3-4 34296 NULL
160739 +enable_so_edid_blocks_written_tc358743_state_34303 edid_blocks_written tc358743_state 0 34303 NULL
160740 +enable_so_fl_pg_order_sge_34307 fl_pg_order sge 0 34307 NULL
160741 +enable_so_p1_FS_QENTRY_34311 p1 FS_QENTRY 0 34311 NULL
160742 +enable_so_usb6fire_pcm_init_urb_fndecl_34318 usb6fire_pcm_init_urb fndecl 4 34318 NULL
160743 +enable_so_acm_tty_write_fndecl_34323 acm_tty_write fndecl 3 34323 NULL
160744 +enable_so_quirk_strict_duplicate_filter_read_fndecl_34330 quirk_strict_duplicate_filter_read fndecl 3 34330 NULL
160745 +enable_so_dccpd_ack_seq_dccp_skb_cb_34331 dccpd_ack_seq dccp_skb_cb 0 34331 NULL
160746 +enable_so_usb_alloc_stream_buffers_fndecl_34344 usb_alloc_stream_buffers fndecl 3 34344 NULL
160747 +enable_so_blkdev_minors_vardecl_dev_c_34365 blkdev_minors vardecl_dev.c 0 34365 NULL
160748 +enable_so_write_file_frameerrors_fndecl_34370 write_file_frameerrors fndecl 3 34370 NULL
160749 +enable_so_get_bad_peb_limit_fndecl_34374 get_bad_peb_limit fndecl 0-2 34374 NULL
160750 +enable_so_bytes_to_read_mpt2_diag_read_buffer_34380 bytes_to_read mpt2_diag_read_buffer 0 34380 NULL
160751 +enable_so_r_minimode_34384 r minimode 0 34384 NULL
160752 +enable_so_pfn_mthca_uar_34385 pfn mthca_uar 0 34385 NULL
160753 +enable_so_vd_blocknr_nilfs_vdesc_34386 vd_blocknr nilfs_vdesc 0 34386 NULL
160754 +enable_so_max_sge_rds_iw_device_34387 max_sge rds_iw_device 0 34387 NULL
160755 +enable_so_sel_read_handle_status_fndecl_34392 sel_read_handle_status fndecl 3 34392 NULL
160756 +enable_so_ath6kl_wmi_set_inact_period_fndecl_34398 ath6kl_wmi_set_inact_period fndecl 2 34398 NULL
160757 +enable_so_min_scaled_height_bttv_crop_34408 min_scaled_height bttv_crop 0 34408 NULL
160758 +enable_so___i2c_transfer_fndecl_34417 __i2c_transfer fndecl 0 34417 NULL
160759 +enable_so_w_minimode_34418 w minimode 0 34418 NULL
160760 +enable_so_rawv6_setsockopt_fndecl_34422 rawv6_setsockopt fndecl 5 34422 NULL
160761 +enable_so_fragsize_inet_cork_34425 fragsize inet_cork 0 34425 NULL
160762 +enable_so_vs_xdrsize_svc_version_34426 vs_xdrsize svc_version 0 34426 NULL
160763 +enable_so_meta_ino_num_f2fs_sb_info_34435 meta_ino_num f2fs_sb_info 0 34435 NULL
160764 +enable_so_ctrl_set_res_ver_fndecl_34447 ctrl_set_res_ver fndecl 3 34447 NULL
160765 +enable_so_ath9k_dump_legacy_btcoex_fndecl_34449 ath9k_dump_legacy_btcoex fndecl 0 34449 NULL nohasharray
160766 +enable_so_window_len_regmap_range_node_34449 window_len regmap_range_node 0 34449 &enable_so_ath9k_dump_legacy_btcoex_fndecl_34449
160767 +enable_so_copy_size_vmxnet3_tx_ctx_34453 copy_size vmxnet3_tx_ctx 0 34453 NULL
160768 +enable_so_exceptions_per_area_pstore_34460 exceptions_per_area pstore 0 34460 NULL
160769 +enable_so_offsets_size_binder_transaction_data_34461 offsets_size binder_transaction_data 0 34461 NULL nohasharray
160770 +enable_so_len_gsm_msg_34461 len gsm_msg 0 34461 &enable_so_offsets_size_binder_transaction_data_34461
160771 +enable_so_num_regs_regmap_irq_chip_34465 num_regs regmap_irq_chip 0 34465 NULL
160772 +enable_so_fd_copyin_fndecl_34468 fd_copyin fndecl 3 34468 NULL
160773 +enable_so_MaxMSIxVectors_mpt2sas_facts_34470 MaxMSIxVectors mpt2sas_facts 0 34470 NULL
160774 +enable_so_MaxCommands_DAC960_V1_Enquiry_34475 MaxCommands DAC960_V1_Enquiry 0 34475 NULL
160775 +enable_so_start_btrfs_ordered_extent_34479 start btrfs_ordered_extent 0 34479 NULL
160776 +enable_so_num_rx_queues_net_device_34480 num_rx_queues net_device 0 34480 NULL
160777 +enable_so_i2c_hid_command_fndecl_34481 i2c_hid_command fndecl 4 34481 NULL
160778 +enable_so_ocfs2_find_xe_in_bucket_fndecl_34483 ocfs2_find_xe_in_bucket fndecl 0 34483 NULL
160779 +enable_so_cp210x_get_config_fndecl_34486 cp210x_get_config fndecl 4 34486 NULL
160780 +enable_so_dma_bd_table_34490 dma bd_table 0 34490 NULL
160781 +enable_so_do_ipt_set_ctl_fndecl_34493 do_ipt_set_ctl fndecl 4 34493 NULL
160782 +enable_so_acpi_ex_get_serial_access_length_fndecl_34496 acpi_ex_get_serial_access_length fndecl 0-2 34496 NULL
160783 +enable_so_il4965_ucode_general_stats_read_fndecl_34502 il4965_ucode_general_stats_read fndecl 3 34502 NULL
160784 +enable_so_buf_len_rx_sci_port_34512 buf_len_rx sci_port 0 34512 NULL
160785 +enable_so_count_res_proc_context_34514 count res_proc_context 0 34514 NULL
160786 +enable_so_clk_enable_fndecl_34522 clk_enable fndecl 0 34522 NULL
160787 +enable_so_overflow_maj_vardecl_user_mad_c_34524 overflow_maj vardecl_user_mad.c 0 34524 NULL
160788 +enable_so_srp_free_req_fndecl_34531 srp_free_req fndecl 4 34531 NULL
160789 +enable_so_SavagePanelHeight_savagefb_par_34532 SavagePanelHeight savagefb_par 0 34532 NULL nohasharray
160790 +enable_so_ogm_buff_len_batadv_hard_iface_bat_iv_34532 ogm_buff_len batadv_hard_iface_bat_iv 0 34532 &enable_so_SavagePanelHeight_savagefb_par_34532
160791 +enable_so_speakup_file_write_fndecl_34533 speakup_file_write fndecl 3 34533 NULL
160792 +enable_so_bfad_iocmd_itnim_get_itnstats_fndecl_34534 bfad_iocmd_itnim_get_itnstats fndecl 0 34534 NULL nohasharray
160793 +enable_so_track_pfn_remap_fndecl_34534 track_pfn_remap fndecl 3-5 34534 &enable_so_bfad_iocmd_itnim_get_itnstats_fndecl_34534
160794 +enable_so_resid_sg_io_hdr_34541 resid sg_io_hdr 0 34541 NULL
160795 +enable_so_host_size_scsi_transport_template_34551 host_size scsi_transport_template 0 34551 NULL
160796 +enable_so_dvb_aplay_fndecl_34555 dvb_aplay fndecl 3 34555 NULL
160797 +enable_so_btmrvl_hscfgcmd_read_fndecl_34556 btmrvl_hscfgcmd_read fndecl 3 34556 NULL
160798 +enable_so_maximum_mfc_control_34558 maximum mfc_control 0 34558 NULL
160799 +enable_so_maxpacket_limit_usb_ep_34566 maxpacket_limit usb_ep 0 34566 NULL
160800 +enable_so_rx_ring_num_config_param_34571 rx_ring_num config_param 0 34571 NULL
160801 +enable_so_sb16_copy_from_user_fndecl_34575 sb16_copy_from_user fndecl 10-7-6 34575 NULL
160802 +enable_so_blkno_range2trim_34581 blkno range2trim 0 34581 NULL
160803 +enable_so_inum_ubifs_dent_node_34584 inum ubifs_dent_node 0 34584 NULL
160804 +enable_so_dwc3_ep0_start_trans_fndecl_34586 dwc3_ep0_start_trans fndecl 4 34586 NULL
160805 +enable_so_blk_queue_alignment_offset_fndecl_34591 blk_queue_alignment_offset fndecl 2 34591 NULL
160806 +enable_so_hcd_alloc_coherent_fndecl_34597 hcd_alloc_coherent fndecl 0-5 34597 NULL
160807 +enable_so_min_resource_constraint_34598 min resource_constraint 0 34598 NULL
160808 +enable_so_shmem_setxattr_fndecl_34600 shmem_setxattr fndecl 4 34600 NULL
160809 +enable_so_ath6kl_wmi_data_hdr_add_fndecl_34601 ath6kl_wmi_data_hdr_add fndecl 8 34601 NULL
160810 +enable_so_sys_sync_file_range_fndecl_34604 sys_sync_file_range fndecl 2-3 34604 NULL
160811 +enable_so___check_block_validity_fndecl_34606 __check_block_validity fndecl 0 34606 NULL
160812 +enable_so_end_shift_iwl_fw_dbg_dest_tlv_34608 end_shift iwl_fw_dbg_dest_tlv 0 34608 NULL
160813 +enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614 bcm63xx_hsspi_do_txrx fndecl 0 34614 NULL nohasharray
160814 +enable_so_fip_dlen_fip_desc_34614 fip_dlen fip_desc 0 34614 &enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614
160815 +enable_so_vram_total_vardecl_vesafb_c_34615 vram_total vardecl_vesafb.c 0 34615 NULL nohasharray
160816 +enable_so_size_vb2_vmalloc_buf_34615 size vb2_vmalloc_buf 0 34615 &enable_so_vram_total_vardecl_vesafb_c_34615
160817 +enable_so_ip_hdrlen_fndecl_34618 ip_hdrlen fndecl 0 34618 NULL
160818 +enable_so_cpu_npartitions_vardecl_linux_cpu_c_34622 cpu_npartitions vardecl_linux-cpu.c 0 34622 NULL
160819 +enable_so_batadv_tt_global_is_isolated_fndecl_34623 batadv_tt_global_is_isolated fndecl 3 34623 NULL
160820 +enable_so_pm_qos_power_read_fndecl_34624 pm_qos_power_read fndecl 3 34624 NULL
160821 +enable_so_ace_change_mtu_fndecl_34639 ace_change_mtu fndecl 2 34639 NULL
160822 +enable_so_hsc_write_fndecl_34640 hsc_write fndecl 3 34640 NULL
160823 +enable_so_idef6cpy_gru_control_block_extended_34646 idef6cpy gru_control_block_extended 0 34646 NULL
160824 +enable_so_ramdisk_store_fndecl_34654 ramdisk_store fndecl 4 34654 NULL
160825 +enable_so_uwb_est_used_vardecl_est_c_34662 uwb_est_used vardecl_est.c 0 34662 NULL
160826 +enable_so_init_evtlog_size_iwl_fw_34663 init_evtlog_size iwl_fw 0 34663 NULL
160827 +enable_so_ext4_convert_unwritten_extents_endio_fndecl_34667 ext4_convert_unwritten_extents_endio fndecl 0 34667 NULL
160828 +enable_so_num_leaves_cpu_cacheinfo_34676 num_leaves cpu_cacheinfo 0 34676 NULL
160829 +enable_so_inode_ext4_dir_entry_2_34680 inode ext4_dir_entry_2 0 34680 NULL
160830 +enable_so_pnp_add_mem_resource_fndecl_34681 pnp_add_mem_resource fndecl 3-2 34681 NULL
160831 +enable_so_offset_ethtool_eeprom_34683 offset ethtool_eeprom 0 34683 NULL
160832 +enable_so_snd_pcm_hw_param_value_min_fndecl_34686 snd_pcm_hw_param_value_min fndecl 0 34686 NULL
160833 +enable_so_bassinit_CHIPDESC_34688 bassinit CHIPDESC 0 34688 NULL nohasharray
160834 +enable_so_slip_maxdev_vardecl_slip_c_34688 slip_maxdev vardecl_slip.c 0 34688 &enable_so_bassinit_CHIPDESC_34688
160835 +enable_so_radeon_ring_init_fndecl_34693 radeon_ring_init fndecl 3 34693 NULL
160836 +enable_so_simple_read_from_buffer_fndecl_34694 simple_read_from_buffer fndecl 0-2-5 34694 NULL
160837 +enable_so_ceph_get_direct_page_vector_fndecl_34695 ceph_get_direct_page_vector fndecl 2 34695 NULL
160838 +enable_so_max_payload_fc_fcp_pkt_34696 max_payload fc_fcp_pkt 0 34696 NULL
160839 +enable_so_out_clock_max_aptina_pll_limits_34698 out_clock_max aptina_pll_limits 0 34698 NULL
160840 +enable_so_writesize_mtd_info_34702 writesize mtd_info 0 34702 NULL
160841 +enable_so_efi_memmap_efi_info_34704 efi_memmap efi_info 0 34704 NULL
160842 +enable_so_sel_read_policy_fndecl_34712 sel_read_policy fndecl 3 34712 NULL
160843 +enable_so_gfs2_log_alloc_bio_fndecl_34714 gfs2_log_alloc_bio fndecl 2 34714 NULL
160844 +enable_so_kvm_write_guest_virt_system_fndecl_34715 kvm_write_guest_virt_system fndecl 4-2 34715 NULL
160845 +enable_so_in_sector_offset_vardecl_floppy_c_34720 in_sector_offset vardecl_floppy.c 0 34720 NULL
160846 +enable_so_cache_word_size_regmap_34722 cache_word_size regmap 0 34722 NULL
160847 +enable_so_W6692_empty_Dfifo_fndecl_34725 W6692_empty_Dfifo fndecl 2 34725 NULL nohasharray
160848 +enable_so_tx_num_pgs_tp_params_34725 tx_num_pgs tp_params 0 34725 &enable_so_W6692_empty_Dfifo_fndecl_34725
160849 +enable_so_ocfs2_dx_dir_format_cluster_fndecl_34730 ocfs2_dx_dir_format_cluster fndecl 6 34730 NULL nohasharray
160850 +enable_so_eqc_entry_sz_mlx4_dev_cap_34730 eqc_entry_sz mlx4_dev_cap 0 34730 &enable_so_ocfs2_dx_dir_format_cluster_fndecl_34730
160851 +enable_so_wa_xfer_create_subset_sg_fndecl_34731 wa_xfer_create_subset_sg fndecl 2-3 34731 NULL
160852 +enable_so_memblock_double_array_fndecl_34732 memblock_double_array fndecl 3-2 34732 NULL
160853 +enable_so_trunc_start_fndecl_34735 trunc_start fndecl 3-2 34735 NULL nohasharray
160854 +enable_so__c4iw_write_mem_inline_fndecl_34735 _c4iw_write_mem_inline fndecl 3 34735 &enable_so_trunc_start_fndecl_34735
160855 +enable_so_flags_rtl8187b_rx_hdr_34741 flags rtl8187b_rx_hdr 0 34741 NULL
160856 +enable_so_inbuf_dma_usbhid_device_34742 inbuf_dma usbhid_device 0 34742 NULL
160857 +enable_so_blockshift_sddr09_card_info_34748 blockshift sddr09_card_info 0 34748 NULL
160858 +enable_so_u132_hcd_bulk_input_recv_fndecl_34756 u132_hcd_bulk_input_recv fndecl 4 34756 NULL nohasharray
160859 +enable_so_acct_stack_growth_fndecl_34756 acct_stack_growth fndecl 3-2 34756 &enable_so_u132_hcd_bulk_input_recv_fndecl_34756 nohasharray
160860 +enable_so_nfs4_validate_mount_data_fndecl_34756 nfs4_validate_mount_data fndecl 0 34756 &enable_so_acct_stack_growth_fndecl_34756
160861 +enable_so_extent_size_ecryptfs_crypt_stat_34757 extent_size ecryptfs_crypt_stat 0 34757 NULL nohasharray
160862 +enable_so_sc_frmr_pg_list_len_svcxprt_rdma_34757 sc_frmr_pg_list_len svcxprt_rdma 0 34757 &enable_so_extent_size_ecryptfs_crypt_stat_34757 nohasharray
160863 +enable_so_zone_spare_adfs_discrecord_34757 zone_spare adfs_discrecord 0 34757 &enable_so_sc_frmr_pg_list_len_svcxprt_rdma_34757
160864 +enable_so_ssb_bus_pcmciabus_register_fndecl_34759 ssb_bus_pcmciabus_register fndecl 3 34759 NULL
160865 +enable_so_qla2x00_mem_alloc_fndecl_34771 qla2x00_mem_alloc fndecl 3-2 34771 NULL
160866 +enable_so_hvt_op_write_fndecl_34774 hvt_op_write fndecl 3 34774 NULL
160867 +enable_so_cyapa_i2c_pip_read_fndecl_34788 cyapa_i2c_pip_read fndecl 3 34788 NULL
160868 +enable_so_qxl_image_alloc_objects_fndecl_34790 qxl_image_alloc_objects fndecl 4-5 34790 NULL
160869 +enable_so_sizeimage_soc_camera_device_34794 sizeimage soc_camera_device 0 34794 NULL nohasharray
160870 +enable_so_addrlen_svc_deferred_req_34794 addrlen svc_deferred_req 0 34794 &enable_so_sizeimage_soc_camera_device_34794
160871 +enable_so_rq_count_st_card_info_34798 rq_count st_card_info 0 34798 NULL
160872 +enable_so_nfs_write_end_fndecl_34801 nfs_write_end fndecl 3-5 34801 NULL
160873 +enable_so_num_q_vectors_ixgbe_adapter_34808 num_q_vectors ixgbe_adapter 0 34808 NULL
160874 +enable_so_wBlockID_ms_bootblock_header_34809 wBlockID ms_bootblock_header 0 34809 NULL
160875 +enable_so_page_size_flash_info_34810 page_size flash_info 0 34810 NULL
160876 +enable_so_rcv_array_groups_hfi1_ctxtdata_34813 rcv_array_groups hfi1_ctxtdata 0 34813 NULL
160877 +enable_so_blk_cnt_os_dat_entry_s_34817 blk_cnt os_dat_entry_s 0 34817 NULL
160878 +enable_so_lbs_lowsnr_write_fndecl_34822 lbs_lowsnr_write fndecl 3 34822 NULL
160879 +enable_so_wps_ie_len_mwifiex_private_34823 wps_ie_len mwifiex_private 0 34823 NULL nohasharray
160880 +enable_so_alg_key_len_xfrm_algo_34823 alg_key_len xfrm_algo 0 34823 &enable_so_wps_ie_len_mwifiex_private_34823
160881 +enable_so_madvise_behavior_fndecl_34827 madvise_behavior fndecl 4-3 34827 NULL
160882 +enable_so_mwifiex_usb_submit_rx_urb_fndecl_34829 mwifiex_usb_submit_rx_urb fndecl 2 34829 NULL
160883 +enable_so_rcvegrbufs_perchunk_qib_ctxtdata_34831 rcvegrbufs_perchunk qib_ctxtdata 0 34831 NULL
160884 +enable_so_xenvif_check_gop_fndecl_34832 xenvif_check_gop fndecl 0 34832 NULL
160885 +enable_so_unix_dgram_connect_fndecl_34836 unix_dgram_connect fndecl 3 34836 NULL
160886 +enable_so_eblks_mtdswap_dev_34840 eblks mtdswap_dev 0 34840 NULL nohasharray
160887 +enable_so_setsockopt_fndecl_34840 setsockopt fndecl 5 34840 &enable_so_eblks_mtdswap_dev_34840
160888 +enable_so_in_usbnet_34842 in usbnet 0 34842 NULL
160889 +enable_so_vma_end_reservation_fndecl_34848 vma_end_reservation fndecl 3 34848 NULL nohasharray
160890 +enable_so_ath6kl_wmi_create_pstream_cmd_fndecl_34848 ath6kl_wmi_create_pstream_cmd fndecl 2 34848 &enable_so_vma_end_reservation_fndecl_34848
160891 +enable_so_nfsd_vfs_write_fndecl_34850 nfsd_vfs_write fndecl 6 34850 NULL
160892 +enable_so_good_peb_count_ubi_device_34853 good_peb_count ubi_device 0 34853 NULL nohasharray
160893 +enable_so_log_sz_mlx5_flow_table_group_34853 log_sz mlx5_flow_table_group 0 34853 &enable_so_good_peb_count_ubi_device_34853 nohasharray
160894 +enable_so_fw_iso_buffer_init_fndecl_34853 fw_iso_buffer_init fndecl 3 34853 &enable_so_log_sz_mlx5_flow_table_group_34853
160895 +enable_so_nilfs_ioctl_do_get_suinfo_fndecl_34854 nilfs_ioctl_do_get_suinfo fndecl 6 34854 NULL
160896 +enable_so_flags_write_fndecl_34858 flags_write fndecl 3 34858 NULL
160897 +enable_so_max_msix_vectors_fm10k_mac_info_34860 max_msix_vectors fm10k_mac_info 0 34860 NULL
160898 +enable_so_gk20a_instobj_ctor_iommu_fndecl_34861 gk20a_instobj_ctor_iommu fndecl 2 34861 NULL
160899 +enable_so_pfkey_recvmsg_fndecl_34863 pfkey_recvmsg fndecl 3 34863 NULL nohasharray
160900 +enable_so_s_map_size_adfs_sb_info_34863 s_map_size adfs_sb_info 0 34863 &enable_so_pfkey_recvmsg_fndecl_34863
160901 +enable_so_odm_num_comps_pnfs_osd_data_map_34865 odm_num_comps pnfs_osd_data_map 0 34865 NULL
160902 +enable_so_size_g2d_frame_34866 size g2d_frame 0 34866 NULL
160903 +enable_so_sddr09_writeX_fndecl_34870 sddr09_writeX fndecl 5-7 34870 NULL
160904 +enable_so_in_len_tso_state_34871 in_len tso_state 0 34871 NULL
160905 +enable_so_dout_xfer_len_sg_io_v4_34879 dout_xfer_len sg_io_v4 0 34879 NULL
160906 +enable_so_mmc_flush_cache_fndecl_34882 mmc_flush_cache fndecl 0 34882 NULL
160907 +enable_so_bgx_get_lmac_count_fndecl_34883 bgx_get_lmac_count fndecl 0 34883 NULL
160908 +enable_so_drm_cvt_mode_fndecl_34886 drm_cvt_mode fndecl 3-2-4 34886 NULL
160909 +enable_so_Wa_tvnorm_34892 Wa tvnorm 0 34892 NULL
160910 +enable_so_vb2_dma_sg_alloc_fndecl_34894 vb2_dma_sg_alloc fndecl 2 34894 NULL nohasharray
160911 +enable_so_len_coda_ioctl_out_34894 len coda_ioctl_out 0 34894 &enable_so_vb2_dma_sg_alloc_fndecl_34894
160912 +enable_so_sb_logstart_xfs_sb_34900 sb_logstart xfs_sb 0 34900 NULL
160913 +enable_so_fat_ent_read_fndecl_34902 fat_ent_read fndecl 0-3 34902 NULL
160914 +enable_so_block_size_ath6kl_mbox_info_34904 block_size ath6kl_mbox_info 0 34904 NULL
160915 +enable_so_vxlan_fdb_replace_fndecl_34912 vxlan_fdb_replace fndecl 4 34912 NULL
160916 +enable_so_irq_of_parse_and_map_fndecl_34917 irq_of_parse_and_map fndecl 0 34917 NULL nohasharray
160917 +enable_so_num_channels_ad5380_chip_info_34917 num_channels ad5380_chip_info 0 34917 &enable_so_irq_of_parse_and_map_fndecl_34917
160918 +enable_so_ath10k_htc_alloc_skb_fndecl_34920 ath10k_htc_alloc_skb fndecl 2 34920 NULL
160919 +enable_so_consume_size_vmci_qp_alloc_info_34922 consume_size vmci_qp_alloc_info 0 34922 NULL
160920 +enable_so_rcc__DMABUFFERENTRY_34925 rcc _DMABUFFERENTRY 0 34925 NULL
160921 +enable_so_shared_secret_len_net_conf_34926 shared_secret_len net_conf 0 34926 NULL
160922 +enable_so_port_fops_write_fndecl_34928 port_fops_write fndecl 3 34928 NULL
160923 +enable_so_len_wil6210_mbox_hdr_34930 len wil6210_mbox_hdr 0 34930 NULL
160924 +enable_so_swiotlb_init_with_tbl_fndecl_34935 swiotlb_init_with_tbl fndecl 2 34935 NULL
160925 +enable_so_register_sound_special_fndecl_34937 register_sound_special fndecl 2 34937 NULL
160926 +enable_so_recv_resync_read_fndecl_34939 recv_resync_read fndecl 2 34939 NULL
160927 +enable_so_max_receive_fw_card_34941 max_receive fw_card 0 34941 NULL
160928 +enable_so_evm_read_key_fndecl_34945 evm_read_key fndecl 3 34945 NULL
160929 +enable_so_ips_scmd_buf_write_fndecl_34946 ips_scmd_buf_write fndecl 3 34946 NULL
160930 +enable_so_bio_kmalloc_fndecl_34947 bio_kmalloc fndecl 2 34947 NULL
160931 +enable_so_reiserfs_get_block_create_0_fndecl_34954 reiserfs_get_block_create_0 fndecl 2 34954 NULL
160932 +enable_so_fs_path_add_path_fndecl_34955 fs_path_add_path fndecl 0 34955 NULL
160933 +enable_so_dns_resolver_read_fndecl_34961 dns_resolver_read fndecl 3 34961 NULL
160934 +enable_so_n_it_fw_ohci_34963 n_it fw_ohci 0 34963 NULL
160935 +enable_so_simple_alloc_urb_fndecl_34966 simple_alloc_urb fndecl 3-2 34966 NULL
160936 +enable_so___bmc150_accel_fifo_flush_fndecl_34967 __bmc150_accel_fifo_flush fndecl 2 34967 NULL
160937 +enable_so_s35390a_get_reg_fndecl_34971 s35390a_get_reg fndecl 4 34971 NULL
160938 +enable_so_cw1200_queue_stats_init_fndecl_34973 cw1200_queue_stats_init fndecl 2 34973 NULL
160939 +enable_so_at24_bin_write_fndecl_34977 at24_bin_write fndecl 6-5 34977 NULL nohasharray
160940 +enable_so_gcr_base_intel_pmc_ipc_dev_34977 gcr_base intel_pmc_ipc_dev 0 34977 &enable_so_at24_bin_write_fndecl_34977
160941 +enable_so_rfkill_fop_read_fndecl_34980 rfkill_fop_read fndecl 3 34980 NULL
160942 +enable_so_amdgpu_cgs_add_irq_source_fndecl_34994 amdgpu_cgs_add_irq_source fndecl 3 34994 NULL
160943 +enable_so_kfd_gtt_sa_init_fndecl_34996 kfd_gtt_sa_init fndecl 3-2 34996 NULL
160944 +enable_so_error_elp_while_tx_read_fndecl_35002 error_elp_while_tx_read fndecl 3 35002 NULL
160945 +enable_so_rx_ring_count_ixgbe_adapter_35004 rx_ring_count ixgbe_adapter 0 35004 NULL
160946 +enable_so_amb_len_i5k_amb_data_35007 amb_len i5k_amb_data 0 35007 NULL
160947 +enable_so_num_snaps_ceph_mds_snap_realm_35009 num_snaps ceph_mds_snap_realm 0 35009 NULL
160948 +enable_so_ocfs2_control_write_fndecl_35010 ocfs2_control_write fndecl 3 35010 NULL
160949 +enable_so_fc_set_mfs_fndecl_35014 fc_set_mfs fndecl 2 35014 NULL
160950 +enable_so_kzalloc_fndecl_35015 kzalloc fndecl 1 35015 NULL
160951 +enable_so_skb_zerocopy_fndecl_35016 skb_zerocopy fndecl 4-3 35016 NULL
160952 +enable_so_read_capacity_10_fndecl_35017 read_capacity_10 fndecl 0 35017 NULL
160953 +enable_so_wep_iv_read_fndecl_35019 wep_iv_read fndecl 3 35019 NULL
160954 +enable_so_no_ids_squashfs_super_block_35022 no_ids squashfs_super_block 0 35022 NULL nohasharray
160955 +enable_so_lpfc_idiag_pcicfg_write_fndecl_35022 lpfc_idiag_pcicfg_write fndecl 3 35022 &enable_so_no_ids_squashfs_super_block_35022
160956 +enable_so__add_sg_continuation_descriptor_fndecl_35026 _add_sg_continuation_descriptor fndecl 3 35026 NULL
160957 +enable_so_vSync_width_panel_info_35029 vSync_width panel_info 0 35029 NULL nohasharray
160958 +enable_so_set_nservers_fndecl_35029 set_nservers fndecl 2 35029 &enable_so_vSync_width_panel_info_35029
160959 +enable_so_w_nr_rds_ib_work_ring_35048 w_nr rds_ib_work_ring 0 35048 NULL
160960 +enable_so_uarc_size_mthca_profile_35053 uarc_size mthca_profile 0 35053 NULL
160961 +enable_so_n_ports_rp2_card_35055 n_ports rp2_card 0 35055 NULL
160962 +enable_so_tda18218_rd_reg_fndecl_35057 tda18218_rd_reg fndecl 2 35057 NULL
160963 +enable_so_iio_event_chrdev_read_fndecl_35062 iio_event_chrdev_read fndecl 3 35062 NULL
160964 +enable_so_ring_size_radeon_ring_35063 ring_size radeon_ring 0 35063 NULL
160965 +enable_so_pci_create_root_bus_fndecl_35065 pci_create_root_bus fndecl 2 35065 NULL nohasharray
160966 +enable_so_adis16480_show_firmware_date_fndecl_35065 adis16480_show_firmware_date fndecl 3 35065 &enable_so_pci_create_root_bus_fndecl_35065
160967 +enable_so_jffs2_flash_direct_write_fndecl_35070 jffs2_flash_direct_write fndecl 3 35070 NULL
160968 +enable_so_altera_set_dr_post_fndecl_35072 altera_set_dr_post fndecl 2 35072 NULL
160969 +enable_so_set_video_mode_Timon_fndecl_35074 set_video_mode_Timon fndecl 4 35074 NULL
160970 +enable_so_number_scales_vardecl_powernow_k7_c_35080 number_scales vardecl_powernow-k7.c 0 35080 NULL
160971 +enable_so_get_iovec_page_array_fndecl_35081 get_iovec_page_array fndecl 0 35081 NULL
160972 +enable_so_inbuf_dma_ati_remote_35083 inbuf_dma ati_remote 0 35083 NULL nohasharray
160973 +enable_so_sys_kexec_file_load_fndecl_35083 sys_kexec_file_load fndecl 3 35083 &enable_so_inbuf_dma_ati_remote_35083 nohasharray
160974 +enable_so_dlm_alloc_pagevec_fndecl_35083 dlm_alloc_pagevec fndecl 1 35083 &enable_so_sys_kexec_file_load_fndecl_35083
160975 +enable_so_agi_newino_xfs_agi_35086 agi_newino xfs_agi 0 35086 NULL nohasharray
160976 +enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086 ieee80211_add_rx_radiotap_header fndecl 4 35086 &enable_so_agi_newino_xfs_agi_35086 nohasharray
160977 +enable_so_reclaim_pages_fndecl_35086 reclaim_pages fndecl 3 35086 &enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086
160978 +enable_so_ubi_calc_data_len_fndecl_35092 ubi_calc_data_len fndecl 0-3 35092 NULL
160979 +enable_so_er_data_len_gfs2_ea_request_35098 er_data_len gfs2_ea_request 0 35098 NULL
160980 +enable_so_num_vf_qps_i40e_pf_35102 num_vf_qps i40e_pf 0 35102 NULL
160981 +enable_so_prot_length_se_device_35103 prot_length se_device 0 35103 NULL nohasharray
160982 +enable_so_get_crop_info_v_s5p_mfc_hw_ops_35103 get_crop_info_v s5p_mfc_hw_ops 0 35103 &enable_so_prot_length_se_device_35103
160983 +enable_so_dma_common_get_sgtable_fndecl_35105 dma_common_get_sgtable fndecl 5 35105 NULL
160984 +enable_so___do_page_fault_fndecl_35107 __do_page_fault fndecl 3 35107 NULL
160985 +enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108 ath6kl_wmi_set_bitrate_mask fndecl 2 35108 NULL nohasharray
160986 +enable_so_size_kcore_list_35108 size kcore_list 0 35108 &enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108
160987 +enable_so_pn_raw_send_fndecl_35113 pn_raw_send fndecl 2 35113 NULL
160988 +enable_so_d_ino_vxfs_direct_35117 d_ino vxfs_direct 0 35117 NULL
160989 +enable_so_max_uc_mac_be_resources_35119 max_uc_mac be_resources 0 35119 NULL
160990 +enable_so_vxfs_bmap_indir_fndecl_35120 vxfs_bmap_indir fndecl 2-0-4 35120 NULL
160991 +enable_so_sm501_alloc_mem_fndecl_35125 sm501_alloc_mem fndecl 4 35125 NULL
160992 +enable_so_bch_empty_fifo_fndecl_35126 bch_empty_fifo fndecl 2 35126 NULL
160993 +enable_so_vmw_mob_create_fndecl_35127 vmw_mob_create fndecl 1 35127 NULL nohasharray
160994 +enable_so_path_setxattr_fndecl_35127 path_setxattr fndecl 4 35127 &enable_so_vmw_mob_create_fndecl_35127 nohasharray
160995 +enable_so_nilfs_sufile_get_suinfo_fndecl_35127 nilfs_sufile_get_suinfo fndecl 5-2 35127 &enable_so_path_setxattr_fndecl_35127
160996 +enable_so_FbMapSize_nvidia_par_35128 FbMapSize nvidia_par 0 35128 NULL nohasharray
160997 +enable_so_mlx4_en_create_rx_ring_fndecl_35128 mlx4_en_create_rx_ring fndecl 3-4 35128 &enable_so_FbMapSize_nvidia_par_35128
160998 +enable_so_channels_min_snd_pcm_hardware_35132 channels_min snd_pcm_hardware 0 35132 NULL nohasharray
160999 +enable_so_bio_add_pc_page_fndecl_35132 bio_add_pc_page fndecl 5-4 35132 &enable_so_channels_min_snd_pcm_hardware_35132
161000 +enable_so_xdr_restrict_buflen_fndecl_35133 xdr_restrict_buflen fndecl 2 35133 NULL
161001 +enable_so__osd_realloc_seg_fndecl_35139 _osd_realloc_seg fndecl 3 35139 NULL nohasharray
161002 +enable_so___get_free_pages_fndecl_35139 __get_free_pages fndecl 0 35139 &enable_so__osd_realloc_seg_fndecl_35139
161003 +enable_so_blockoffset_hfsplus_sb_info_35140 blockoffset hfsplus_sb_info 0 35140 NULL
161004 +enable_so_tx_ring_size_adm8211_priv_35143 tx_ring_size adm8211_priv 0 35143 NULL
161005 +enable_so_len_mwifiex_ie_types_header_35146 len mwifiex_ie_types_header 0 35146 NULL
161006 +enable_so_read_file_credit_dist_stats_fndecl_35148 read_file_credit_dist_stats fndecl 3 35148 NULL
161007 +enable_so_num_usb3_ports_xhci_hcd_35149 num_usb3_ports xhci_hcd 0 35149 NULL nohasharray
161008 +enable_so_readlink_copy_fndecl_35149 readlink_copy fndecl 2 35149 &enable_so_num_usb3_ports_xhci_hcd_35149
161009 +enable_so_br_fdb_fillbuf_fndecl_35152 br_fdb_fillbuf fndecl 0 35152 NULL
161010 +enable_so_pageshift_alauda_card_info_35154 pageshift alauda_card_info 0 35154 NULL
161011 +enable_so___alloc_dev_table_fndecl_35156 __alloc_dev_table fndecl 2 35156 NULL
161012 +enable_so_num_rx_qp_i40e_hw_capabilities_35165 num_rx_qp i40e_hw_capabilities 0 35165 NULL
161013 +enable_so_snd_pcm_oss_read2_fndecl_35168 snd_pcm_oss_read2 fndecl 3-0 35168 NULL nohasharray
161014 +enable_so_count_sgmap_35168 count sgmap 0 35168 &enable_so_snd_pcm_oss_read2_fndecl_35168
161015 +enable_so_mlx4_en_hwtstamp_get_fndecl_35174 mlx4_en_hwtstamp_get fndecl 0 35174 NULL
161016 +enable_so_memblock_size_vxge_hw_fifo_config_35179 memblock_size vxge_hw_fifo_config 0 35179 NULL nohasharray
161017 +enable_so_nd_blk_major_vardecl_blk_c_35179 nd_blk_major vardecl_blk.c 0 35179 &enable_so_memblock_size_vxge_hw_fifo_config_35179 nohasharray
161018 +enable_so_iwl_dbgfs_power_save_status_read_fndecl_35179 iwl_dbgfs_power_save_status_read fndecl 3 35179 &enable_so_nd_blk_major_vardecl_blk_c_35179
161019 +enable_so_blk_rq_count_integrity_sg_fndecl_35185 blk_rq_count_integrity_sg fndecl 0 35185 NULL
161020 +enable_so___sound_insert_unit_fndecl_35186 __sound_insert_unit fndecl 4-5 35186 NULL
161021 +enable_so_wHeight_uvc_frame_35189 wHeight uvc_frame 0 35189 NULL
161022 +enable_so_ah_alloc_tmp_fndecl_35193 ah_alloc_tmp fndecl 2-3 35193 NULL
161023 +enable_so_do_dccp_setsockopt_fndecl_35194 do_dccp_setsockopt fndecl 5 35194 NULL nohasharray
161024 +enable_so_intel_sdvo_write_cmd_fndecl_35194 intel_sdvo_write_cmd fndecl 4 35194 &enable_so_do_dccp_setsockopt_fndecl_35194
161025 +enable_so_copy_gadget_strings_fndecl_35202 copy_gadget_strings fndecl 3-2 35202 NULL
161026 +enable_so_new_lockspace_fndecl_35208 new_lockspace fndecl 4 35208 NULL
161027 +enable_so_tx_ring_size_pcnet32_private_35210 tx_ring_size pcnet32_private 0 35210 NULL
161028 +enable_so_xfs_ialloc_inode_init_fndecl_35212 xfs_ialloc_inode_init fndecl 6-5 35212 NULL
161029 +enable_so_maxpacksize_snd_usb_endpoint_35216 maxpacksize snd_usb_endpoint 0 35216 NULL nohasharray
161030 +enable_so_sset_mask_ethtool_sset_info_35216 sset_mask ethtool_sset_info 0 35216 &enable_so_maxpacksize_snd_usb_endpoint_35216
161031 +enable_so_snd_pcm_add_chmap_ctls_fndecl_35223 snd_pcm_add_chmap_ctls fndecl 4 35223 NULL
161032 +enable_so_vmbus_sendpacket_ctl_fndecl_35225 vmbus_sendpacket_ctl fndecl 3 35225 NULL
161033 +enable_so_root_blkno_ocfs2_super_35227 root_blkno ocfs2_super 0 35227 NULL
161034 +enable_so_d_off_p9_dirent_35247 d_off p9_dirent 0 35247 NULL nohasharray
161035 +enable_so_policy_idx_hmask_netns_xfrm_35247 policy_idx_hmask netns_xfrm 0 35247 &enable_so_d_off_p9_dirent_35247
161036 +enable_so_whc_urb_dequeue_fndecl_35255 whc_urb_dequeue fndecl 3 35255 NULL nohasharray
161037 +enable_so_oprofile_buffer_size_vardecl_35255 oprofile_buffer_size vardecl 0 35255 &enable_so_whc_urb_dequeue_fndecl_35255
161038 +enable_so_max_gs_mthca_srq_35258 max_gs mthca_srq 0 35258 NULL
161039 +enable_so_dm_bm_write_lock_fndecl_35261 dm_bm_write_lock fndecl 2 35261 NULL
161040 +enable_so_gss_unwrap_kerberos_fndecl_35263 gss_unwrap_kerberos fndecl 2 35263 NULL
161041 +enable_so_wstatus_usblp_35266 wstatus usblp 0 35266 NULL
161042 +enable_so_r592_test_io_error_fndecl_35267 r592_test_io_error fndecl 0 35267 NULL
161043 +enable_so_sparse_early_mem_maps_alloc_node_fndecl_35270 sparse_early_mem_maps_alloc_node fndecl 4 35270 NULL
161044 +enable_so_rsp_size_ipmi_smi_msg_35282 rsp_size ipmi_smi_msg 0 35282 NULL
161045 +enable_so_maxburst_snd_dmaengine_dai_dma_data_35287 maxburst snd_dmaengine_dai_dma_data 0 35287 NULL
161046 +enable_so_ceph_msg_data_advance_fndecl_35288 ceph_msg_data_advance fndecl 2 35288 NULL
161047 +enable_so_offs_ubifs_wbuf_35290 offs ubifs_wbuf 0 35290 NULL
161048 +enable_so_sctp_make_asconf_update_ip_fndecl_35294 sctp_make_asconf_update_ip fndecl 5 35294 NULL
161049 +enable_so_xc_send_i2c_data_fndecl_35297 xc_send_i2c_data fndecl 3 35297 NULL
161050 +enable_so_maybe_indirect_to_direct_fndecl_35307 maybe_indirect_to_direct fndecl 6 35307 NULL
161051 +enable_so_p54_parse_default_country_fndecl_35309 p54_parse_default_country fndecl 3 35309 NULL nohasharray
161052 +enable_so_viacam_read_fndecl_35309 viacam_read fndecl 3 35309 &enable_so_p54_parse_default_country_fndecl_35309
161053 +enable_so_vmci_transport_dgram_enqueue_fndecl_35310 vmci_transport_dgram_enqueue fndecl 4 35310 NULL nohasharray
161054 +enable_so_walk_pud_range_fndecl_35310 walk_pud_range fndecl 0 35310 &enable_so_vmci_transport_dgram_enqueue_fndecl_35310
161055 +enable_so_ieee80211_tdls_mgmt_setup_fndecl_35316 ieee80211_tdls_mgmt_setup fndecl 10 35316 NULL
161056 +enable_so_btrfs_ordered_sum_size_fndecl_35326 btrfs_ordered_sum_size fndecl 0-2 35326 NULL
161057 +enable_so_l2cap_create_basic_pdu_fndecl_35327 l2cap_create_basic_pdu fndecl 3 35327 NULL
161058 +enable_so_channels_twl4030_priv_35329 channels twl4030_priv 0 35329 NULL nohasharray
161059 +enable_so_ssid_len_cfg80211_ibss_params_35329 ssid_len cfg80211_ibss_params 0 35329 &enable_so_channels_twl4030_priv_35329
161060 +enable_so_xb_suballoc_bit_ocfs2_xattr_block_35331 xb_suballoc_bit ocfs2_xattr_block 0 35331 NULL
161061 +enable_so_extra_msdu_postfix_len_lib80211_crypto_ops_35341 extra_msdu_postfix_len lib80211_crypto_ops 0 35341 NULL
161062 +enable_so_drCTFlSize_hfs_mdb_35349 drCTFlSize hfs_mdb 0 35349 NULL
161063 +enable_so_nr_pages_bts_buffer_35350 nr_pages bts_buffer 0 35350 NULL
161064 +enable_so_num_reg_mic_smpt_hw_info_35353 num_reg mic_smpt_hw_info 0 35353 NULL
161065 +enable_so_udf_get_pblock_meta25_fndecl_35356 udf_get_pblock_meta25 fndecl 4 35356 NULL
161066 +enable_so_cache_mode_control_mms114_data_35358 cache_mode_control mms114_data 0 35358 NULL
161067 +enable_so_efw_transaction_fndecl_35359 efw_transaction fndecl 5-7 35359 NULL
161068 +enable_so_hx8357_spi_write_array_fndecl_35364 hx8357_spi_write_array fndecl 3 35364 NULL
161069 +enable_so_IA_RX_BUF_SZ_vardecl_iphase_c_35365 IA_RX_BUF_SZ vardecl_iphase.c 0 35365 NULL
161070 +enable_so_previous_raid_disks_r5conf_35368 previous_raid_disks r5conf 0 35368 NULL nohasharray
161071 +enable_so_count_param_range_35368 count param_range 0 35368 &enable_so_previous_raid_disks_r5conf_35368 nohasharray
161072 +enable_so_input_pool_snd_seq_client_pool_35368 input_pool snd_seq_client_pool 0 35368 &enable_so_count_param_range_35368
161073 +enable_so_num_channels_ad7266_chan_info_35372 num_channels ad7266_chan_info 0 35372 NULL
161074 +enable_so_update_raid_disks_fndecl_35375 update_raid_disks fndecl 2 35375 NULL
161075 +enable_so_apei_exec_run_fndecl_35376 apei_exec_run fndecl 0 35376 NULL
161076 +enable_so_microcode_B_fe_size_dib9000_config_35377 microcode_B_fe_size dib9000_config 0 35377 NULL nohasharray
161077 +enable_so_drm_dp_mst_topology_mgr_init_fndecl_35377 drm_dp_mst_topology_mgr_init fndecl 4-5 35377 &enable_so_microcode_B_fe_size_dib9000_config_35377
161078 +enable_so_mmio_base_phys_radeonfb_info_35378 mmio_base_phys radeonfb_info 0 35378 NULL
161079 +enable_so_hc_erase_size_mmc_ext_csd_35384 hc_erase_size mmc_ext_csd 0 35384 NULL
161080 +enable_so_ath9k_hw_read_array_fndecl_35386 ath9k_hw_read_array fndecl 3 35386 NULL
161081 +enable_so_read_dma_fndecl_35389 read_dma fndecl 3 35389 NULL
161082 +enable_so_writeback_fndecl_35390 writeback fndecl 4-3 35390 NULL
161083 +enable_so_corrupt_data_fndecl_35395 corrupt_data fndecl 0-3 35395 NULL nohasharray
161084 +enable_so_sg_set_page_fndecl_35395 sg_set_page fndecl 3 35395 &enable_so_corrupt_data_fndecl_35395
161085 +enable_so_blk_queue_io_opt_fndecl_35405 blk_queue_io_opt fndecl 2 35405 NULL
161086 +enable_so_use_sg_st_buffer_35407 use_sg st_buffer 0 35407 NULL
161087 +enable_so_rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read_fndecl_35409 rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read fndecl 3 35409 NULL
161088 +enable_so__drbd_md_sync_page_io_fndecl_35411 _drbd_md_sync_page_io fndecl 3 35411 NULL
161089 +enable_so_cdce925_pll_set_rate_fndecl_35418 cdce925_pll_set_rate fndecl 3-2 35418 NULL
161090 +enable_so_ali15x3_smba_vardecl_i2c_ali15x3_c_35421 ali15x3_smba vardecl_i2c-ali15x3.c 0 35421 NULL
161091 +enable_so_cqc_entry_sz_mthca_dev_lim_35422 cqc_entry_sz mthca_dev_lim 0 35422 NULL
161092 +enable_so_fb_width_drm_fb_helper_surface_size_35426 fb_width drm_fb_helper_surface_size 0 35426 NULL
161093 +enable_so_btrfs_fdatawrite_range_fndecl_35427 btrfs_fdatawrite_range fndecl 2-3 35427 NULL
161094 +enable_so_xfs_bulkstat_one_compat_fndecl_35428 xfs_bulkstat_one_compat fndecl 2 35428 NULL
161095 +enable_so_offset_tx_buf_35429 offset tx_buf 0 35429 NULL
161096 +enable_so_bmAttributes_usb_ss_ep_comp_descriptor_35434 bmAttributes usb_ss_ep_comp_descriptor 0 35434 NULL
161097 +enable_so_ocfs2_prepare_refcount_change_for_del_fndecl_35442 ocfs2_prepare_refcount_change_for_del fndecl 4-3-2 35442 NULL
161098 +enable_so_major_gendisk_35443 major gendisk 0 35443 NULL
161099 +enable_so_wake_len_cfg80211_wowlan_tcp_35448 wake_len cfg80211_wowlan_tcp 0 35448 NULL nohasharray
161100 +enable_so_len_he_buff_35448 len he_buff 0 35448 &enable_so_wake_len_cfg80211_wowlan_tcp_35448
161101 +enable_so_ieee80211_if_read_uapsd_queues_fndecl_35453 ieee80211_if_read_uapsd_queues fndecl 3 35453 NULL
161102 +enable_so_ocfs2_truncate_file_fndecl_35455 ocfs2_truncate_file fndecl 3 35455 NULL
161103 +enable_so_octeon_create_droq_fndecl_35457 octeon_create_droq fndecl 4-3 35457 NULL
161104 +enable_so_bytes_to_read_mpt3_diag_read_buffer_35460 bytes_to_read mpt3_diag_read_buffer 0 35460 NULL
161105 +enable_so_drbd_send_fndecl_35461 drbd_send fndecl 4 35461 NULL
161106 +enable_so_sel_write_relabel_fndecl_35464 sel_write_relabel fndecl 3 35464 NULL
161107 +enable_so_width_physmap_flash_data_35470 width physmap_flash_data 0 35470 NULL
161108 +enable_so_qxl_monitors_config_set_fndecl_35471 qxl_monitors_config_set fndecl 6-5 35471 NULL nohasharray
161109 +enable_so_max_links_media_entity_35471 max_links media_entity 0 35471 &enable_so_qxl_monitors_config_set_fndecl_35471
161110 +enable_so___rpipe_set_descr_fndecl_35478 __rpipe_set_descr fndecl 0 35478 NULL
161111 +enable_so_length_wl1251_rx_descriptor_35483 length wl1251_rx_descriptor 0 35483 NULL
161112 +enable_so_ieee80211_report_disconnect_fndecl_35488 ieee80211_report_disconnect fndecl 3 35488 NULL
161113 +enable_so_onenand_read_fndecl_35491 onenand_read fndecl 2 35491 NULL nohasharray
161114 +enable_so_qxl_alloc_client_monitors_config_fndecl_35491 qxl_alloc_client_monitors_config fndecl 2 35491 &enable_so_onenand_read_fndecl_35491
161115 +enable_so_alloc_clips_fndecl_35492 alloc_clips fndecl 3 35492 NULL nohasharray
161116 +enable_so_f71805f_device_add_fndecl_35492 f71805f_device_add fndecl 1 35492 &enable_so_alloc_clips_fndecl_35492
161117 +enable_so_firm_send_command_fndecl_35493 firm_send_command fndecl 4 35493 NULL nohasharray
161118 +enable_so_nbox_drm_savage_cmdbuf_35493 nbox drm_savage_cmdbuf 0 35493 &enable_so_firm_send_command_fndecl_35493
161119 +enable_so_cfg_lun_queue_depth_lpfc_vport_35503 cfg_lun_queue_depth lpfc_vport 0 35503 NULL
161120 +enable_so_sched_feat_write_fndecl_35505 sched_feat_write fndecl 3 35505 NULL
161121 +enable_so_cnt_usnic_vnic_res_desc_35511 cnt usnic_vnic_res_desc 0 35511 NULL
161122 +enable_so___kfifo_dma_out_prepare_r_fndecl_35512 __kfifo_dma_out_prepare_r fndecl 4-5 35512 NULL
161123 +enable_so_dlci_change_mtu_fndecl_35513 dlci_change_mtu fndecl 2 35513 NULL
161124 +enable_so_ht40allow_map_read_fndecl_35514 ht40allow_map_read fndecl 3 35514 NULL
161125 +enable_so_acpi_nvs_register_fndecl_35515 acpi_nvs_register fndecl 2-1 35515 NULL
161126 +enable_so_do_raw_setsockopt_fndecl_35516 do_raw_setsockopt fndecl 5-0 35516 NULL
161127 +enable_so_install_special_mapping_fndecl_35519 install_special_mapping fndecl 3-2 35519 NULL
161128 +enable_so_count_atl1_rfd_ring_35523 count atl1_rfd_ring 0 35523 NULL
161129 +enable_so_shift_mlxsw_item_35524 shift mlxsw_item 0 35524 NULL
161130 +enable_so_clr_int_base_mlx4_fw_35529 clr_int_base mlx4_fw 0 35529 NULL
161131 +enable_so_additional_cdb_length_scsi_varlen_cdb_hdr_35533 additional_cdb_length scsi_varlen_cdb_hdr 0 35533 NULL
161132 +enable_so_find_inode_fndecl_35534 find_inode fndecl 2 35534 NULL
161133 +enable_so_gigaset_tty_receive_fndecl_35535 gigaset_tty_receive fndecl 4 35535 NULL
161134 +enable_so_phys_ck804xrom_window_35536 phys ck804xrom_window 0 35536 NULL
161135 +enable_so_ssp_send_instruction_fndecl_35549 ssp_send_instruction fndecl 5 35549 NULL
161136 +enable_so_inet_sendpage_fndecl_35554 inet_sendpage fndecl 4 35554 NULL
161137 +enable_so_vsync_ast_vbios_enhtable_35556 vsync ast_vbios_enhtable 0 35556 NULL
161138 +enable_so_rx_streaming_interval_read_fndecl_35560 rx_streaming_interval_read fndecl 3 35560 NULL
161139 +enable_so_ptrace_request_fndecl_35563 ptrace_request fndecl 3 35563 NULL
161140 +enable_so_find_min_pfn_for_node_fndecl_35569 find_min_pfn_for_node fndecl 0 35569 NULL nohasharray
161141 +enable_so_data_offset_brcmf_proto_bcdc_header_35569 data_offset brcmf_proto_bcdc_header 0 35569 &enable_so_find_min_pfn_for_node_fndecl_35569
161142 +enable_so_edma_readl_fndecl_35573 edma_readl fndecl 0 35573 NULL
161143 +enable_so_cfg80211_mlme_auth_fndecl_35577 cfg80211_mlme_auth fndecl 14-9 35577 NULL
161144 +enable_so_cur_blksize_sdio_func_35582 cur_blksize sdio_func 0 35582 NULL nohasharray
161145 +enable_so_size_of_priv_dvb_usb_device_properties_35582 size_of_priv dvb_usb_device_properties 0 35582 &enable_so_cur_blksize_sdio_func_35582
161146 +enable_so_lbs_failcount_write_fndecl_35583 lbs_failcount_write fndecl 3 35583 NULL
161147 +enable_so_offset_inflate_state_35587 offset inflate_state 0 35587 NULL
161148 +enable_so_actual_length_usb_iso_packet_descriptor_35588 actual_length usb_iso_packet_descriptor 0 35588 NULL
161149 +enable_so_cyttsp_i2c_read_block_data_fndecl_35590 cyttsp_i2c_read_block_data fndecl 4 35590 NULL
161150 +enable_so_minor_start_rp2_card_35592 minor_start rp2_card 0 35592 NULL
161151 +enable_so_nfsd_write_fndecl_35594 nfsd_write fndecl 6 35594 NULL nohasharray
161152 +enable_so_send_wr_num_isert_rdma_wr_35594 send_wr_num isert_rdma_wr 0 35594 &enable_so_nfsd_write_fndecl_35594
161153 +enable_so_ext2_iget_fndecl_35598 ext2_iget fndecl 2 35598 NULL
161154 +enable_so_xfs_rtallocate_extent_block_fndecl_35604 xfs_rtallocate_extent_block fndecl 5-10 35604 NULL
161155 +enable_so_hback_porch_videomode_35606 hback_porch videomode 0 35606 NULL nohasharray
161156 +enable_so_count_nfs_direct_req_35606 count nfs_direct_req 0 35606 &enable_so_hback_porch_videomode_35606
161157 +enable_so_f2fs_iget_fndecl_35610 f2fs_iget fndecl 2 35610 NULL nohasharray
161158 +enable_so_flexcop_device_kmalloc_fndecl_35610 flexcop_device_kmalloc fndecl 1 35610 &enable_so_f2fs_iget_fndecl_35610
161159 +enable_so_blocksize_brcmf_sdio_35612 blocksize brcmf_sdio 0 35612 NULL
161160 +enable_so_sqp_demux_mlx4_caps_35613 sqp_demux mlx4_caps 0 35613 NULL nohasharray
161161 +enable_so_maxcontacts_mt_device_35613 maxcontacts mt_device 0 35613 &enable_so_sqp_demux_mlx4_caps_35613
161162 +enable_so_offset_lv_35617 offset lv 0 35617 NULL
161163 +enable_so_generic_perform_write_fndecl_35619 generic_perform_write fndecl 0-3 35619 NULL nohasharray
161164 +enable_so_ext4_update_final_de_fndecl_35619 ext4_update_final_de fndecl 2-3 35619 &enable_so_generic_perform_write_fndecl_35619 nohasharray
161165 +enable_so_count_fm10k_ring_35619 count fm10k_ring 0 35619 &enable_so_ext4_update_final_de_fndecl_35619
161166 +enable_so_ips_scmd_buf_read_fndecl_35622 ips_scmd_buf_read fndecl 3 35622 NULL nohasharray
161167 +enable_so_write_rio_fndecl_35622 write_rio fndecl 3 35622 &enable_so_ips_scmd_buf_read_fndecl_35622
161168 +enable_so_netxen_process_lro_fndecl_35630 netxen_process_lro fndecl 5-4 35630 NULL
161169 +enable_so_cciss_add_gendisk_fndecl_35636 cciss_add_gendisk fndecl 0 35636 NULL
161170 +enable_so_smsc47b397_device_add_fndecl_35649 smsc47b397_device_add fndecl 1 35649 NULL
161171 +enable_so_prism_build_supp_rates_fndecl_35650 prism_build_supp_rates fndecl 0 35650 NULL
161172 +enable_so_viafb_second_xres_vardecl_35651 viafb_second_xres vardecl 0 35651 NULL nohasharray
161173 +enable_so_broadsheet_spiflash_rewrite_sector_fndecl_35651 broadsheet_spiflash_rewrite_sector fndecl 2 35651 &enable_so_viafb_second_xres_vardecl_35651
161174 +enable_so_urb_size_uvc_streaming_35654 urb_size uvc_streaming 0 35654 NULL
161175 +enable_so_urb_enqueue_hc_driver_35656 urb_enqueue hc_driver 0 35656 NULL
161176 +enable_so_max_cmd_sgentries_ctlr_info_35659 max_cmd_sgentries ctlr_info 0 35659 NULL
161177 +enable_so_xfs_alloc_read_agfl_fndecl_35660 xfs_alloc_read_agfl fndecl 3 35660 NULL
161178 +enable_so_xfs_vm_direct_IO_fndecl_35663 xfs_vm_direct_IO fndecl 3 35663 NULL nohasharray
161179 +enable_so_base_bus_num_i2c_mux_pinctrl_platform_data_35663 base_bus_num i2c_mux_pinctrl_platform_data 0 35663 &enable_so_xfs_vm_direct_IO_fndecl_35663
161180 +enable_so_printer_read_fndecl_35664 printer_read fndecl 3 35664 NULL
161181 +enable_so_ufx_ops_write_fndecl_35667 ufx_ops_write fndecl 3 35667 NULL
161182 +enable_so_numdevs_ore_components_35671 numdevs ore_components 0 35671 NULL
161183 +enable_so_qib_reg_user_mr_fndecl_35673 qib_reg_user_mr fndecl 2-3-4 35673 NULL
161184 +enable_so_ncntrs_qib_chip_specific_35675 ncntrs qib_chip_specific 0 35675 NULL
161185 +enable_so_rate_clk_core_35677 rate clk_core 0 35677 NULL
161186 +enable_so_read_into_fndecl_35681 read_into fndecl 2 35681 NULL nohasharray
161187 +enable_so_size_xpnet_message_35681 size xpnet_message 0 35681 &enable_so_read_into_fndecl_35681
161188 +enable_so_id_mfd_cell_35684 id mfd_cell 0 35684 NULL
161189 +enable_so_do_io_nd_blk_region_35687 do_io nd_blk_region 0 35687 NULL nohasharray
161190 +enable_so_rx_words_eob_pch_gbe_rx_desc_35687 rx_words_eob pch_gbe_rx_desc 0 35687 &enable_so_do_io_nd_blk_region_35687
161191 +enable_so_affs_extent_file_ofs_fndecl_35690 affs_extent_file_ofs fndecl 2 35690 NULL
161192 +enable_so_at_max_vardecl_35692 at_max vardecl 0 35692 NULL
161193 +enable_so_width_drm_radeon_tex_image_35693 width drm_radeon_tex_image 0 35693 NULL
161194 +enable_so_isert_map_data_buf_fndecl_35701 isert_map_data_buf fndecl 6-5-4 35701 NULL
161195 +enable_so_wil_pmc_alloc_fndecl_35702 wil_pmc_alloc fndecl 2-3 35702 NULL
161196 +enable_so_gfs2_write_alloc_required_fndecl_35708 gfs2_write_alloc_required fndecl 3-2 35708 NULL
161197 +enable_so_gcr_size_intel_pmc_ipc_dev_35709 gcr_size intel_pmc_ipc_dev 0 35709 NULL
161198 +enable_so_bnx2x_change_mtu_fndecl_35710 bnx2x_change_mtu fndecl 2 35710 NULL
161199 +enable_so_srp_post_send_fndecl_35713 srp_post_send fndecl 3 35713 NULL
161200 +enable_so_remote_nentries_xpc_channel_35714 remote_nentries xpc_channel 0 35714 NULL
161201 +enable_so_len_igb_tx_buffer_35715 len igb_tx_buffer 0 35715 NULL nohasharray
161202 +enable_so_credits_csio_q_35715 credits csio_q 0 35715 &enable_so_len_igb_tx_buffer_35715
161203 +enable_so_bio_add_page_fndecl_35718 bio_add_page fndecl 4-0-3 35718 NULL nohasharray
161204 +enable_so_RequestCredit_mpt3sas_facts_35718 RequestCredit mpt3sas_facts 0 35718 &enable_so_bio_add_page_fndecl_35718
161205 +enable_so_mxms_structlen_fndecl_35720 mxms_structlen fndecl 0 35720 NULL
161206 +enable_so_mod_num_sdma_vardecl_35721 mod_num_sdma vardecl 0 35721 NULL
161207 +enable_so_lowpan_xmit_fragment_fndecl_35724 lowpan_xmit_fragment fndecl 4-6 35724 NULL
161208 +enable_so_fdt_translate_address_fndecl_35726 fdt_translate_address fndecl 2-0 35726 NULL nohasharray
161209 +enable_so_add_port_fndecl_35726 add_port fndecl 2 35726 &enable_so_fdt_translate_address_fndecl_35726
161210 +enable_so_size_irq_routing_options_35727 size irq_routing_options 0 35727 NULL
161211 +enable_so_last_xfer_len_ide_cmd_35728 last_xfer_len ide_cmd 0 35728 NULL
161212 +enable_so_iscsi_pool_init_fndecl_35730 iscsi_pool_init fndecl 2-4 35730 NULL
161213 +enable_so_mwifiex_append_rate_tlv_fndecl_35735 mwifiex_append_rate_tlv fndecl 0 35735 NULL
161214 +enable_so_priv_size_data_queue_35740 priv_size data_queue 0 35740 NULL
161215 +enable_so_offset_ext4_io_end_35743 offset ext4_io_end 0 35743 NULL
161216 +enable_so_ggtt_probe_common_fndecl_35744 ggtt_probe_common fndecl 2 35744 NULL nohasharray
161217 +enable_so_qib_uc_rcv_fndecl_35744 qib_uc_rcv fndecl 5 35744 &enable_so_ggtt_probe_common_fndecl_35744
161218 +enable_so_alauda_write_data_fndecl_35748 alauda_write_data fndecl 3-2 35748 NULL
161219 +enable_so_goodix_i2c_read_fndecl_35755 goodix_i2c_read fndecl 4 35755 NULL nohasharray
161220 +enable_so__drbd_bm_total_weight_fndecl_35755 _drbd_bm_total_weight fndecl 0 35755 &enable_so_goodix_i2c_read_fndecl_35755 nohasharray
161221 +enable_so_c4_add_card_fndecl_35755 c4_add_card fndecl 3 35755 &enable_so__drbd_bm_total_weight_fndecl_35755
161222 +enable_so_left_qxl_urect_35760 left qxl_urect 0 35760 NULL
161223 +enable_so_scsi_sg_tablesize_iser_conn_35762 scsi_sg_tablesize iser_conn 0 35762 NULL
161224 +enable_so_fh_epd_frame_35764 fh epd_frame 0 35764 NULL
161225 +enable_so_ath9k_dump_btcoex_fndecl_35766 ath9k_dump_btcoex fndecl 0 35766 NULL
161226 +enable_so_channels_snd_usb_substream_35767 channels snd_usb_substream 0 35767 NULL
161227 +enable_so_virtscsi_compute_resid_fndecl_35772 virtscsi_compute_resid fndecl 2 35772 NULL nohasharray
161228 +enable_so_s_hdrwords_qib_qp_35772 s_hdrwords qib_qp 0 35772 &enable_so_virtscsi_compute_resid_fndecl_35772
161229 +enable_so_data0_sisusb_command_35773 data0 sisusb_command 0 35773 NULL
161230 +enable_so_arizona_find_fratio_fndecl_35779 arizona_find_fratio fndecl 0 35779 NULL
161231 +enable_so_mem_vardecl_matroxfb_base_c_35780 mem vardecl_matroxfb_base.c 0 35780 NULL
161232 +enable_so_uv_systab_efi_35786 uv_systab efi 0 35786 NULL
161233 +enable_so_encap_size_brnf_frag_data_35787 encap_size brnf_frag_data 0 35787 NULL
161234 +enable_so_alloc_mon_bin_get_35804 alloc mon_bin_get 0 35804 NULL
161235 +enable_so_send_ctrl_pipe_us_data_35813 send_ctrl_pipe us_data 0 35813 NULL
161236 +enable_so_used_tty_buffer_35815 used tty_buffer 0 35815 NULL
161237 +enable_so_number_of_controls_controlcache_6205_35817 number_of_controls controlcache_6205 0 35817 NULL
161238 +enable_so_rbio_orig_end_io_fndecl_35820 rbio_orig_end_io fndecl 2 35820 NULL
161239 +enable_so_headroom_caifsock_35821 headroom caifsock 0 35821 NULL
161240 +enable_so_leaf_cut_from_buffer_fndecl_35824 leaf_cut_from_buffer fndecl 4 35824 NULL
161241 +enable_so_rx_buffer_padding_efx_nic_type_35825 rx_buffer_padding efx_nic_type 0 35825 NULL
161242 +enable_so_VFP_kyrofb_info_35826 VFP kyrofb_info 0 35826 NULL
161243 +enable_so_cx231xx_v4l2_read_fndecl_35829 cx231xx_v4l2_read fndecl 3 35829 NULL nohasharray
161244 +enable_so_length_hfi1_packet_filter_command_35829 length hfi1_packet_filter_command 0 35829 &enable_so_cx231xx_v4l2_read_fndecl_35829
161245 +enable_so_env_end_mm_struct_35831 env_end mm_struct 0 35831 NULL nohasharray
161246 +enable_so_twl_load_sgl_fndecl_35831 twl_load_sgl fndecl 5 35831 &enable_so_env_end_mm_struct_35831 nohasharray
161247 +enable_so_num_pmkids_ndis_80211_capability_35831 num_pmkids ndis_80211_capability 0 35831 &enable_so_twl_load_sgl_fndecl_35831
161248 +enable_so_blocksize_hfsplus_vh_35832 blocksize hfsplus_vh 0 35832 NULL
161249 +enable_so_srq_size_srpt_device_35833 srq_size srpt_device 0 35833 NULL
161250 +enable_so_request_sz_MPT3SAS_ADAPTER_35834 request_sz MPT3SAS_ADAPTER 0 35834 NULL
161251 +enable_so_paging32_get_level1_sp_gpa_fndecl_35837 paging32_get_level1_sp_gpa fndecl 0 35837 NULL
161252 +enable_so_clk_core_enable_fndecl_35844 clk_core_enable fndecl 0 35844 NULL
161253 +enable_so_l_iclog_size_xlog_35849 l_iclog_size xlog 0 35849 NULL
161254 +enable_so_snd_pcm_format_physical_width_fndecl_35858 snd_pcm_format_physical_width fndecl 0 35858 NULL
161255 +enable_so_ipw_write_packet_sent_callback_fndecl_35859 ipw_write_packet_sent_callback fndecl 2 35859 NULL
161256 +enable_so_start_vga_cam_fndecl_35860 start_vga_cam fndecl 0 35860 NULL
161257 +enable_so_check_acl_fndecl_35867 check_acl fndecl 0 35867 NULL
161258 +enable_so_usb_stor_bulk_transfer_sglist_fndecl_35871 usb_stor_bulk_transfer_sglist fndecl 5-2-4 35871 NULL
161259 +enable_so_pcol_add_page_fndecl_35872 pcol_add_page fndecl 3 35872 NULL nohasharray
161260 +enable_so_processed_length_mbo_35872 processed_length mbo 0 35872 &enable_so_pcol_add_page_fndecl_35872
161261 +enable_so_snd_hdsp_midi_output_possible_fndecl_35873 snd_hdsp_midi_output_possible fndecl 0 35873 NULL
161262 +enable_so_shared_out_nid_ca0132_spec_35876 shared_out_nid ca0132_spec 0 35876 NULL
161263 +enable_so_h_proto_fwnet_header_35877 h_proto fwnet_header 0 35877 NULL
161264 +enable_so_st_sensors_spi_read_fndecl_35890 st_sensors_spi_read fndecl 4 35890 NULL
161265 +enable_so_lpuart_dma_tx_fndecl_35902 lpuart_dma_tx fndecl 2 35902 NULL nohasharray
161266 +enable_so_nft_data_dump_fndecl_35902 nft_data_dump fndecl 5 35902 &enable_so_lpuart_dma_tx_fndecl_35902
161267 +enable_so_fe_group_ext4_free_extent_35905 fe_group ext4_free_extent 0 35905 NULL nohasharray
161268 +enable_so_max_sq_desc_sz_mlx4_caps_35905 max_sq_desc_sz mlx4_caps 0 35905 &enable_so_fe_group_ext4_free_extent_35905
161269 +enable_so_lirc_base_dev_vardecl_lirc_dev_c_35907 lirc_base_dev vardecl_lirc_dev.c 0 35907 NULL
161270 +enable_so_btrfs_set_stack_chunk_num_stripes_fndecl_35911 btrfs_set_stack_chunk_num_stripes fndecl 2 35911 NULL
161271 +enable_so_cifs_utf16_bytes_fndecl_35914 cifs_utf16_bytes fndecl 0 35914 NULL
161272 +enable_so_num_sensors_fimc_md_35915 num_sensors fimc_md 0 35915 NULL
161273 +enable_so_right_vardecl_matroxfb_base_c_35916 right vardecl_matroxfb_base.c 0 35916 NULL
161274 +enable_so_packet_count_efx_loopback_state_35918 packet_count efx_loopback_state 0 35918 NULL
161275 +enable_so_max_height_sh_mobile_ceu_dev_35922 max_height sh_mobile_ceu_dev 0 35922 NULL nohasharray
161276 +enable_so_sigma_fw_load_control_fndecl_35922 sigma_fw_load_control fndecl 3 35922 &enable_so_max_height_sh_mobile_ceu_dev_35922
161277 +enable_so_softback_end_vardecl_fbcon_c_35923 softback_end vardecl_fbcon.c 0 35923 NULL
161278 +enable_so_n_algs_wmfw_adsp1_id_hdr_35926 n_algs wmfw_adsp1_id_hdr 0 35926 NULL
161279 +enable_so_ieee802154_hdr_minlen_fndecl_35927 ieee802154_hdr_minlen fndecl 0 35927 NULL
161280 +enable_so_bytes_written_cq_fcp_rq_desc_35931 bytes_written cq_fcp_rq_desc 0 35931 NULL
161281 +enable_so_length_isp1362_ep_35933 length isp1362_ep 0 35933 NULL nohasharray
161282 +enable_so_dma_buf_size_ddb_input_35933 dma_buf_size ddb_input 0 35933 &enable_so_length_isp1362_ep_35933 nohasharray
161283 +enable_so_width_drm_radeon_texture_35933 width drm_radeon_texture 0 35933 &enable_so_dma_buf_size_ddb_input_35933
161284 +enable_so_snd_pcm_new_stream_fndecl_35934 snd_pcm_new_stream fndecl 3 35934 NULL
161285 +enable_so_disk_stack_limits_fndecl_35936 disk_stack_limits fndecl 3 35936 NULL
161286 +enable_so_dib9000_mbx_send_attr_fndecl_35937 dib9000_mbx_send_attr fndecl 4 35937 NULL
161287 +enable_so_wMaxPacketSize_wdm_device_35940 wMaxPacketSize wdm_device 0 35940 NULL
161288 +enable_so____alloc_bootmem_nopanic_fndecl_35945 ___alloc_bootmem_nopanic fndecl 2-1-3-4 35945 NULL nohasharray
161289 +enable_so_wil_write_file_txmgmt_fndecl_35945 wil_write_file_txmgmt fndecl 3 35945 &enable_so____alloc_bootmem_nopanic_fndecl_35945
161290 +enable_so_isl1208_i2c_read_regs_fndecl_35952 isl1208_i2c_read_regs fndecl 4 35952 NULL
161291 +enable_so_nx_fw_cmd_set_mtu_fndecl_35954 nx_fw_cmd_set_mtu fndecl 2 35954 NULL
161292 +enable_so_fat_uni_to_x8_fndecl_35959 fat_uni_to_x8 fndecl 0 35959 NULL
161293 +enable_so_s_root_block_affs_sb_info_35962 s_root_block affs_sb_info 0 35962 NULL
161294 +enable_so_snoop_urb_fndecl_35965 snoop_urb fndecl 8 35965 NULL
161295 +enable_so_num_entries_compat_ip6t_replace_35966 num_entries compat_ip6t_replace 0 35966 NULL nohasharray
161296 +enable_so_buf_size_si470x_device_35966 buf_size si470x_device 0 35966 &enable_so_num_entries_compat_ip6t_replace_35966
161297 +enable_so_flows_tc_sfq_qopt_35973 flows tc_sfq_qopt 0 35973 NULL
161298 +enable_so_max_df_size_ipq_35974 max_df_size ipq 0 35974 NULL nohasharray
161299 +enable_so_pf_num_bnx2x_35974 pf_num bnx2x 0 35974 &enable_so_max_df_size_ipq_35974
161300 +enable_so_bus_myri10ge_rx_done_35977 bus myri10ge_rx_done 0 35977 NULL
161301 +enable_so_pn_sendmsg_fndecl_35979 pn_sendmsg fndecl 3 35979 NULL
161302 +enable_so_num_dacs_hda_multi_out_35981 num_dacs hda_multi_out 0 35981 NULL
161303 +enable_so_ccid_getsockopt_builtin_ccids_fndecl_35985 ccid_getsockopt_builtin_ccids fndecl 2 35985 NULL
161304 +enable_so_if_spi_prog_main_firmware_check_len_fndecl_35990 if_spi_prog_main_firmware_check_len fndecl 0 35990 NULL
161305 +enable_so_perf_output_skip_fndecl_35994 perf_output_skip fndecl 2 35994 NULL
161306 +enable_so_mss_cache_tcp_sock_35995 mss_cache tcp_sock 0 35995 NULL
161307 +enable_so_daddr_fsl_edma_hw_tcd_35996 daddr fsl_edma_hw_tcd 0 35996 NULL nohasharray
161308 +enable_so_address_acpi_nfit_system_address_35996 address acpi_nfit_system_address 0 35996 &enable_so_daddr_fsl_edma_hw_tcd_35996
161309 +enable_so_poll_vardecl_hfcpci_c_36001 poll vardecl_hfcpci.c 0 36001 NULL nohasharray
161310 +enable_so_fuse_fill_write_pages_fndecl_36001 fuse_fill_write_pages fndecl 4-0 36001 &enable_so_poll_vardecl_hfcpci_c_36001 nohasharray
161311 +enable_so_mcast_list_len_bnx2x_mcast_ramrod_params_36001 mcast_list_len bnx2x_mcast_ramrod_params 0 36001 &enable_so_fuse_fill_write_pages_fndecl_36001
161312 +enable_so_v4l2_event_subscribe_fndecl_36004 v4l2_event_subscribe fndecl 3 36004 NULL
161313 +enable_so_ntb_transport_max_size_fndecl_36009 ntb_transport_max_size fndecl 0 36009 NULL nohasharray
161314 +enable_so_max_rx_kingsun_cb_36009 max_rx kingsun_cb 0 36009 &enable_so_ntb_transport_max_size_fndecl_36009 nohasharray
161315 +enable_so_bfad_iocmd_fcpim_get_modstats_fndecl_36009 bfad_iocmd_fcpim_get_modstats fndecl 0 36009 &enable_so_max_rx_kingsun_cb_36009 nohasharray
161316 +enable_so_igb_alloc_q_vector_fndecl_36009 igb_alloc_q_vector fndecl 4-6 36009 &enable_so_bfad_iocmd_fcpim_get_modstats_fndecl_36009 nohasharray
161317 +enable_so_bdev_logical_block_size_fndecl_36009 bdev_logical_block_size fndecl 0 36009 &enable_so_igb_alloc_q_vector_fndecl_36009
161318 +enable_so___nfs4_proc_set_acl_fndecl_36018 __nfs4_proc_set_acl fndecl 3 36018 NULL
161319 +enable_so_n_sg_vscsibk_pend_36028 n_sg vscsibk_pend 0 36028 NULL
161320 +enable_so_setup_efi_info_memmap_fndecl_36029 setup_efi_info_memmap fndecl 3-2-4 36029 NULL
161321 +enable_so_count_sgentry64_36033 count sgentry64 0 36033 NULL
161322 +enable_so_NumEraseUnits_NFTLMediaHeader_36036 NumEraseUnits NFTLMediaHeader 0 36036 NULL
161323 +enable_so_insert_bio_sectors_search_36037 insert_bio_sectors search 0 36037 NULL
161324 +enable_so_thread_notes_elf_note_info_36040 thread_notes elf_note_info 0 36040 NULL
161325 +enable_so_update_ind_extent_range_fndecl_36049 update_ind_extent_range fndecl 3 36049 NULL
161326 +enable_so_rx_status_len_bcm_rsb_36064 rx_status_len bcm_rsb 0 36064 NULL
161327 +enable_so_piobcnt2k_qib_devdata_36065 piobcnt2k qib_devdata 0 36065 NULL
161328 +enable_so_xfrm_compile_policy_fndecl_36070 xfrm_compile_policy fndecl 4 36070 NULL
161329 +enable_so_lpfc_idiag_queacc_read_qe_fndecl_36072 lpfc_idiag_queacc_read_qe fndecl 0-2 36072 NULL
161330 +enable_so_usb_stor_control_msg_fndecl_36073 usb_stor_control_msg fndecl 8-2 36073 NULL
161331 +enable_so_wa_populate_buf_in_urb_fndecl_36077 wa_populate_buf_in_urb fndecl 4-3 36077 NULL
161332 +enable_so_blocksize_alauda_media_info_36080 blocksize alauda_media_info 0 36080 NULL nohasharray
161333 +enable_so_nwriters_stress_vardecl_locktorture_c_36080 nwriters_stress vardecl_locktorture.c 0 36080 &enable_so_blocksize_alauda_media_info_36080
161334 +enable_so_wdm_write_fndecl_36084 wdm_write fndecl 3 36084 NULL
161335 +enable_so_xfs_extent_busy_insert_fndecl_36087 xfs_extent_busy_insert fndecl 3-4-2 36087 NULL
161336 +enable_so_smq_create_fndecl_36088 smq_create fndecl 1 36088 NULL
161337 +enable_so_wil_write_file_ssid_fndecl_36097 wil_write_file_ssid fndecl 3 36097 NULL
161338 +enable_so_avc_recv_fndecl_36099 avc_recv fndecl 3 36099 NULL
161339 +enable_so_set_extent_uptodate_fndecl_36117 set_extent_uptodate fndecl 3-2 36117 NULL nohasharray
161340 +enable_so_nr_requests_request_queue_36117 nr_requests request_queue 0 36117 &enable_so_set_extent_uptodate_fndecl_36117
161341 +enable_so_xfs_trans_read_buf_map_fndecl_36121 xfs_trans_read_buf_map fndecl 5 36121 NULL
161342 +enable_so_ipr_change_queue_depth_fndecl_36124 ipr_change_queue_depth fndecl 2 36124 NULL
161343 +enable_so_dictionary_size_disk_comp_opts_36125 dictionary_size disk_comp_opts 0 36125 NULL
161344 +enable_so_bytesperline_v4l2_plane_pix_format_36133 bytesperline v4l2_plane_pix_format 0 36133 NULL
161345 +enable_so___i2400m_bm_ack_verify_fndecl_36139 __i2400m_bm_ack_verify fndecl 0-4 36139 NULL
161346 +enable_so_x25_sendmsg_fndecl_36140 x25_sendmsg fndecl 3 36140 NULL
161347 +enable_so_f2fs_fiemap_fndecl_36141 f2fs_fiemap fndecl 3-4 36141 NULL
161348 +enable_so_lirc_buffer_init_fndecl_36145 lirc_buffer_init fndecl 2 36145 NULL
161349 +enable_so_spi_xcomm_sync_config_fndecl_36146 spi_xcomm_sync_config fndecl 0 36146 NULL
161350 +enable_so_create_empty_buffers_fndecl_36152 create_empty_buffers fndecl 2 36152 NULL
161351 +enable_so_payload_camif_vp_36153 payload camif_vp 0 36153 NULL
161352 +enable_so_ad9523_reg_access_fndecl_36157 ad9523_reg_access fndecl 2 36157 NULL
161353 +enable_so_ieee80211_send_probe_req_fndecl_36159 ieee80211_send_probe_req fndecl 7-5 36159 NULL
161354 +enable_so_next_nilfs_segsum_info_36161 next nilfs_segsum_info 0 36161 NULL
161355 +enable_so_clone_sources_count_btrfs_ioctl_send_args_36165 clone_sources_count btrfs_ioctl_send_args 0 36165 NULL
161356 +enable_so_gsm_control_reply_fndecl_36166 gsm_control_reply fndecl 4 36166 NULL
161357 +enable_so_vm_mmap_fndecl_36168 vm_mmap fndecl 3-0 36168 NULL
161358 +enable_so_qd2offset_fndecl_36177 qd2offset fndecl 0 36177 NULL
161359 +enable_so_length_octeon_droq_info_36178 length octeon_droq_info 0 36178 NULL
161360 +enable_so_nr_ion_platform_data_36179 nr ion_platform_data 0 36179 NULL
161361 +enable_so_sm_sl_ib_port_attr_36181 sm_sl ib_port_attr 0 36181 NULL
161362 +enable_so_len_ib_ucm_mra_36185 len ib_ucm_mra 0 36185 NULL
161363 +enable_so_flash_size_jffs2_sb_info_36187 flash_size jffs2_sb_info 0 36187 NULL
161364 +enable_so_batadv_interface_rx_fndecl_36190 batadv_interface_rx fndecl 4 36190 NULL
161365 +enable_so_prealloc_buffer_size_snd_dmaengine_pcm_config_36192 prealloc_buffer_size snd_dmaengine_pcm_config 0 36192 NULL
161366 +enable_so_objlayout_read_done_fndecl_36193 objlayout_read_done fndecl 2 36193 NULL
161367 +enable_so_range_min_regmap_range_36196 range_min regmap_range 0 36196 NULL
161368 +enable_so_n_cap_bufs_via_camera_36198 n_cap_bufs via_camera 0 36198 NULL
161369 +enable_so_ubifs_write_end_fndecl_36202 ubifs_write_end fndecl 4-3 36202 NULL nohasharray
161370 +enable_so_sock_setbindtodevice_fndecl_36202 sock_setbindtodevice fndecl 3 36202 &enable_so_ubifs_write_end_fndecl_36202
161371 +enable_so_hmask_xfrm_policy_hash_36203 hmask xfrm_policy_hash 0 36203 NULL
161372 +enable_so_f2fs_zero_range_fndecl_36204 f2fs_zero_range fndecl 2-3 36204 NULL
161373 +enable_so_blksz_mmc_ioc_cmd_36207 blksz mmc_ioc_cmd 0 36207 NULL
161374 +enable_so_xfs_vm_write_begin_fndecl_36211 xfs_vm_write_begin fndecl 3-4 36211 NULL
161375 +enable_so_nfs_try_to_update_request_fndecl_36213 nfs_try_to_update_request fndecl 3-4 36213 NULL nohasharray
161376 +enable_so_btrfs_find_all_roots_fndecl_36213 btrfs_find_all_roots fndecl 3 36213 &enable_so_nfs_try_to_update_request_fndecl_36213
161377 +enable_so_v4l2_ctrl_g_ctrl_fndecl_36216 v4l2_ctrl_g_ctrl fndecl 0 36216 NULL
161378 +enable_so_bnx2i_send_nl_mesg_fndecl_36218 bnx2i_send_nl_mesg fndecl 4 36218 NULL
161379 +enable_so_alloc_xen_mmio_fndecl_36220 alloc_xen_mmio fndecl 0-1 36220 NULL
161380 +enable_so_page_size_spi_eeprom_36227 page_size spi_eeprom 0 36227 NULL nohasharray
161381 +enable_so_MaxDevHandle_mpt3sas_facts_36227 MaxDevHandle mpt3sas_facts 0 36227 &enable_so_page_size_spi_eeprom_36227
161382 +enable_so_reserve_space_fndecl_36229 reserve_space fndecl 2 36229 NULL
161383 +enable_so_add_async_extent_fndecl_36239 add_async_extent fndecl 3-2 36239 NULL
161384 +enable_so_surfaceram_base_qxl_device_36241 surfaceram_base qxl_device 0 36241 NULL nohasharray
161385 +enable_so_data_queues_rt2x00_dev_36241 data_queues rt2x00_dev 0 36241 &enable_so_surfaceram_base_qxl_device_36241
161386 +enable_so_l2cap_sock_alloc_fndecl_36242 l2cap_sock_alloc fndecl 3 36242 NULL nohasharray
161387 +enable_so_vhost_kvzalloc_fndecl_36242 vhost_kvzalloc fndecl 1 36242 &enable_so_l2cap_sock_alloc_fndecl_36242
161388 +enable_so_histogram_alloc_size_dm_stat_36247 histogram_alloc_size dm_stat 0 36247 NULL nohasharray
161389 +enable_so_fpage_offs_genwqe_sgl_36247 fpage_offs genwqe_sgl 0 36247 &enable_so_histogram_alloc_size_dm_stat_36247
161390 +enable_so_xfs_imap_fndecl_36254 xfs_imap fndecl 3 36254 NULL
161391 +enable_so_dma_nv_skb_map_36260 dma nv_skb_map 0 36260 NULL
161392 +enable_so_size_sge_txq_36261 size sge_txq 0 36261 NULL
161393 +enable_so_isr_cmd_cmplt_read_fndecl_36268 isr_cmd_cmplt_read fndecl 3 36268 NULL nohasharray
161394 +enable_so_msb_mark_bad_fndecl_36268 msb_mark_bad fndecl 2 36268 &enable_so_isr_cmd_cmplt_read_fndecl_36268
161395 +enable_so_pwc_get_fps_Timon_fndecl_36269 pwc_get_fps_Timon fndecl 0 36269 NULL nohasharray
161396 +enable_so_cydata_ofsl_cyttsp4_sysinfo_data_36269 cydata_ofsl cyttsp4_sysinfo_data 0 36269 &enable_so_pwc_get_fps_Timon_fndecl_36269
161397 +enable_so_scsi_alloc_sgtable_fndecl_36270 scsi_alloc_sgtable fndecl 2 36270 NULL
161398 +enable_so_num_uf_bufs_bfa_iocfc_fwcfg_s_36271 num_uf_bufs bfa_iocfc_fwcfg_s 0 36271 NULL
161399 +enable_so_s_clusters_per_group_ext4_sb_info_36278 s_clusters_per_group ext4_sb_info 0 36278 NULL nohasharray
161400 +enable_so_iwl_pcie_txq_alloc_fndecl_36278 iwl_pcie_txq_alloc fndecl 3 36278 &enable_so_s_clusters_per_group_ext4_sb_info_36278
161401 +enable_so__dump_buf_dif_order_vardecl_36281 _dump_buf_dif_order vardecl 0 36281 NULL
161402 +enable_so_hci_check_pending_name_fndecl_36282 hci_check_pending_name fndecl 5 36282 NULL
161403 +enable_so_calc_sectors_fndecl_36288 calc_sectors fndecl 2 36288 NULL nohasharray
161404 +enable_so_len_ethtool_tunable_36288 len ethtool_tunable 0 36288 &enable_so_calc_sectors_fndecl_36288
161405 +enable_so_collection_size_hid_device_36289 collection_size hid_device 0 36289 NULL
161406 +enable_so___btrfs_lookup_bio_sums_fndecl_36290 __btrfs_lookup_bio_sums fndecl 4 36290 NULL
161407 +enable_so_offs_h_fimc_frame_36295 offs_h fimc_frame 0 36295 NULL nohasharray
161408 +enable_so_iscsi_tcp_recv_skb_fndecl_36295 iscsi_tcp_recv_skb fndecl 3-0 36295 &enable_so_offs_h_fimc_frame_36295
161409 +enable_so_mru_ovs_skb_cb_36300 mru ovs_skb_cb 0 36300 NULL
161410 +enable_so_vertical_smiapp_binning_subtype_36302 vertical smiapp_binning_subtype 0 36302 NULL nohasharray
161411 +enable_so_ssl_next_nilfs_snapshot_list_36302 ssl_next nilfs_snapshot_list 0 36302 &enable_so_vertical_smiapp_binning_subtype_36302
161412 +enable_so_paging64_prefetch_gpte_fndecl_36303 paging64_prefetch_gpte fndecl 4 36303 NULL
161413 +enable_so_command_size_drm_vmw_execbuf_arg_36305 command_size drm_vmw_execbuf_arg 0 36305 NULL
161414 +enable_so_size_kernfs_elem_attr_36307 size kernfs_elem_attr 0 36307 NULL
161415 +enable_so_snd_dma_alloc_pages_fndecl_36308 snd_dma_alloc_pages fndecl 3 36308 NULL nohasharray
161416 +enable_so_mwifiex_info_read_fndecl_36308 mwifiex_info_read fndecl 3 36308 &enable_so_snd_dma_alloc_pages_fndecl_36308
161417 +enable_so_max_transfer_snd_usb_midi_out_endpoint_36311 max_transfer snd_usb_midi_out_endpoint 0 36311 NULL
161418 +enable_so_chunk_size_mdp_superblock_s_36313 chunk_size mdp_superblock_s 0 36313 NULL
161419 +enable_so_n_descsz_elf64_note_36314 n_descsz elf64_note 0 36314 NULL
161420 +enable_so_dpdData_size_wsm_configuration_36315 dpdData_size wsm_configuration 0 36315 NULL
161421 +enable_so_acpi_tb_parse_root_table_fndecl_36316 acpi_tb_parse_root_table fndecl 1 36316 NULL
161422 +enable_so_fsbno_xfs_alloc_arg_36318 fsbno xfs_alloc_arg 0 36318 NULL nohasharray
161423 +enable_so_move_buffer_data_fndecl_36318 move_buffer_data fndecl 2 36318 &enable_so_fsbno_xfs_alloc_arg_36318
161424 +enable_so_apei_exec_run_optional_fndecl_36319 apei_exec_run_optional fndecl 0 36319 NULL
161425 +enable_so_file_size_squashfs_lreg_inode_36323 file_size squashfs_lreg_inode 0 36323 NULL
161426 +enable_so_client_channels_snd_pcm_plugin_36324 client_channels snd_pcm_plugin 0 36324 NULL
161427 +enable_so_xferred_rbd_obj_request_36326 xferred rbd_obj_request 0 36326 NULL nohasharray
161428 +enable_so_xfs_symlink_blocks_fndecl_36326 xfs_symlink_blocks fndecl 0-2 36326 &enable_so_xferred_rbd_obj_request_36326
161429 +enable_so_do_verify_xattr_datum_fndecl_36328 do_verify_xattr_datum fndecl 0 36328 NULL
161430 +enable_so_ima_write_template_field_data_fndecl_36336 ima_write_template_field_data fndecl 2 36336 NULL
161431 +enable_so_hidp_send_frame_fndecl_36338 hidp_send_frame fndecl 3 36338 NULL nohasharray
161432 +enable_so_c_size_p_sizes_36338 c_size p_sizes 0 36338 &enable_so_hidp_send_frame_fndecl_36338
161433 +enable_so_digest_encode_fndecl_36340 digest_encode fndecl 0 36340 NULL
161434 +enable_so_rds_tcp_data_recv_fndecl_36343 rds_tcp_data_recv fndecl 4-3 36343 NULL
161435 +enable_so_iowarrior_read_fndecl_36344 iowarrior_read fndecl 3 36344 NULL
161436 +enable_so_osd_req_write_kern_fndecl_36349 osd_req_write_kern fndecl 5 36349 NULL
161437 +enable_so_inode_blocks_efs_sb_info_36351 inode_blocks efs_sb_info 0 36351 NULL
161438 +enable_so_num_crtc_cirrus_device_36358 num_crtc cirrus_device 0 36358 NULL
161439 +enable_so_ipxrtr_route_packet_fndecl_36359 ipxrtr_route_packet fndecl 4 36359 NULL
161440 +enable_so_snd_pcm_lib_write_transfer_fndecl_36369 snd_pcm_lib_write_transfer fndecl 5 36369 NULL
161441 +enable_so_kvm_vcpu_read_guest_atomic_fndecl_36372 kvm_vcpu_read_guest_atomic fndecl 2-4 36372 NULL
161442 +enable_so_addr_len_ipmi_req_36374 addr_len ipmi_req 0 36374 NULL
161443 +enable_so_rx_ring_size_adm8211_priv_36391 rx_ring_size adm8211_priv 0 36391 NULL
161444 +enable_so_mtu_l2cap_le_conn_rsp_36399 mtu l2cap_le_conn_rsp 0 36399 NULL nohasharray
161445 +enable_so_max_rxsz_ulp_iscsi_info_36399 max_rxsz ulp_iscsi_info 0 36399 &enable_so_mtu_l2cap_le_conn_rsp_36399
161446 +enable_so_batadv_tt_update_orig_fndecl_36402 batadv_tt_update_orig fndecl 4-6 36402 NULL
161447 +enable_so_iser_calc_scsi_params_fndecl_36403 iser_calc_scsi_params fndecl 2 36403 NULL
161448 +enable_so_pipeline_dec_packet_out_read_fndecl_36407 pipeline_dec_packet_out_read fndecl 3 36407 NULL
161449 +enable_so_rproc_state_read_fndecl_36410 rproc_state_read fndecl 3 36410 NULL
161450 +enable_so_nl80211_send_disconnected_fndecl_36411 nl80211_send_disconnected fndecl 5 36411 NULL
161451 +enable_so_iter_file_splice_write_fndecl_36415 iter_file_splice_write fndecl 4 36415 NULL
161452 +enable_so_data_len_hfa384x_rx_frame_36417 data_len hfa384x_rx_frame 0 36417 NULL
161453 +enable_so_altera_set_ir_pre_fndecl_36420 altera_set_ir_pre fndecl 2 36420 NULL nohasharray
161454 +enable_so_lustre_posix_acl_xattr_filter_fndecl_36420 lustre_posix_acl_xattr_filter fndecl 2 36420 &enable_so_altera_set_ir_pre_fndecl_36420
161455 +enable_so_create_xattr_fndecl_36425 create_xattr fndecl 5 36425 NULL
161456 +enable_so_essid_len_ipw2100_priv_36426 essid_len ipw2100_priv 0 36426 NULL
161457 +enable_so_mt2266_writeregs_fndecl_36430 mt2266_writeregs fndecl 3 36430 NULL
161458 +enable_so_rx_fifo_override_sh_msiof_spi_info_36440 rx_fifo_override sh_msiof_spi_info 0 36440 NULL
161459 +enable_so_reserved_page_order_st_buffer_36445 reserved_page_order st_buffer 0 36445 NULL
161460 +enable_so_size_packet_info_36454 size packet_info 0 36454 NULL
161461 +enable_so_hSync_width_panel_info_36455 hSync_width panel_info 0 36455 NULL
161462 +enable_so_ov511_i2c_r_fndecl_36459 ov511_i2c_r fndecl 0 36459 NULL nohasharray
161463 +enable_so_isr_host_acknowledges_read_fndecl_36459 isr_host_acknowledges_read fndecl 3 36459 &enable_so_ov511_i2c_r_fndecl_36459
161464 +enable_so_avail_snd_compr_avail_36463 avail snd_compr_avail 0 36463 NULL
161465 +enable_so_strn_len_fndecl_36473 strn_len fndecl 0 36473 NULL
161466 +enable_so_rlim_max_rlimit_36476 rlim_max rlimit 0 36476 NULL nohasharray
161467 +enable_so_v9fs_xattr_get_fndecl_36476 v9fs_xattr_get fndecl 4 36476 &enable_so_rlim_max_rlimit_36476
161468 +enable_so_portnum_lvs_rh_36480 portnum lvs_rh 0 36480 NULL
161469 +enable_so_rx_len_yam_port_36481 rx_len yam_port 0 36481 NULL
161470 +enable_so_fb_show_logo_line_fndecl_36485 fb_show_logo_line fndecl 4 36485 NULL nohasharray
161471 +enable_so_t_task_lba_se_cmd_36485 t_task_lba se_cmd 0 36485 &enable_so_fb_show_logo_line_fndecl_36485 nohasharray
161472 +enable_so_i2400m_zrealloc_2x_fndecl_36485 i2400m_zrealloc_2x fndecl 3 36485 &enable_so_t_task_lba_se_cmd_36485
161473 +enable_so_read_bufsize_carl9170_debugfs_fops_36488 read_bufsize carl9170_debugfs_fops 0 36488 NULL
161474 +enable_so_p9_client_prepare_req_fndecl_36492 p9_client_prepare_req fndecl 3 36492 NULL
161475 +enable_so_tipc_msg_make_bundle_fndecl_36497 tipc_msg_make_bundle fndecl 3 36497 NULL
161476 +enable_so_do_fault_around_fndecl_36500 do_fault_around fndecl 2-4 36500 NULL
161477 +enable_so_queue_rx_frame_fndecl_36501 queue_rx_frame fndecl 2 36501 NULL nohasharray
161478 +enable_so_sg_max_nents_hwif_s_36501 sg_max_nents hwif_s 0 36501 &enable_so_queue_rx_frame_fndecl_36501
161479 +enable_so_start_nid_hdac_device_36504 start_nid hdac_device 0 36504 NULL
161480 +enable_so_create_pinned_em_fndecl_36508 create_pinned_em fndecl 3-2-4-5-7-6 36508 NULL
161481 +enable_so_skge_change_mtu_fndecl_36510 skge_change_mtu fndecl 2 36510 NULL
161482 +enable_so_byte_count_vmtransfer_page_range_36511 byte_count vmtransfer_page_range 0 36511 NULL
161483 +enable_so_hpfs_map_4sectors_fndecl_36523 hpfs_map_4sectors fndecl 2 36523 NULL
161484 +enable_so_igu_sb_cnt_bnx2x_36525 igu_sb_cnt bnx2x 0 36525 NULL
161485 +enable_so_ue_num_asd_bios_chim_struct_36526 ue_num asd_bios_chim_struct 0 36526 NULL nohasharray
161486 +enable_so_sdma_descq_cnt_vardecl_sdma_c_36526 sdma_descq_cnt vardecl_sdma.c 0 36526 &enable_so_ue_num_asd_bios_chim_struct_36526
161487 +enable_so_vid_end_switchdev_obj_vlan_36528 vid_end switchdev_obj_vlan 0 36528 NULL
161488 +enable_so_ftdi_elan_edset_output_fndecl_36530 ftdi_elan_edset_output fndecl 0 36530 NULL
161489 +enable_so_sk_tcplen_svc_sock_36531 sk_tcplen svc_sock 0 36531 NULL
161490 +enable_so_nbpf_bytes_left_fndecl_36536 nbpf_bytes_left fndecl 0 36536 NULL
161491 +enable_so_acpi_os_read_memory_fndecl_36537 acpi_os_read_memory fndecl 3-1 36537 NULL
161492 +enable_so_actual_resp_len_be_cmd_resp_hdr_36543 actual_resp_len be_cmd_resp_hdr 0 36543 NULL
161493 +enable_so_pi_read_regr_fndecl_36548 pi_read_regr fndecl 0 36548 NULL
161494 +enable_so_net2272_write_packet_fndecl_36550 net2272_write_packet fndecl 4 36550 NULL
161495 +enable_so_max_sg_segs_vardecl_st_c_36551 max_sg_segs vardecl_st.c 0 36551 NULL
161496 +enable_so_ocfs2_fallocate_fndecl_36555 ocfs2_fallocate fndecl 3-4 36555 NULL nohasharray
161497 +enable_so_capture_chips_pcxhr_mgr_36555 capture_chips pcxhr_mgr 0 36555 &enable_so_ocfs2_fallocate_fndecl_36555
161498 +enable_so_fb_try_mode_fndecl_36560 fb_try_mode fndecl 4 36560 NULL
161499 +enable_so_fuse_file_compat_ioctl_fndecl_36564 fuse_file_compat_ioctl fndecl 2 36564 NULL
161500 +enable_so_sc_sq_depth_svcxprt_rdma_36568 sc_sq_depth svcxprt_rdma 0 36568 NULL
161501 +enable_so_sge_size_MPT2SAS_ADAPTER_36569 sge_size MPT2SAS_ADAPTER 0 36569 NULL nohasharray
161502 +enable_so_vlan_tag_eth_fast_path_rx_cqe_36569 vlan_tag eth_fast_path_rx_cqe 0 36569 &enable_so_sge_size_MPT2SAS_ADAPTER_36569
161503 +enable_so_frag_thresh_orinoco_private_36570 frag_thresh orinoco_private 0 36570 NULL
161504 +enable_so_page_count_agp_memory_36571 page_count agp_memory 0 36571 NULL
161505 +enable_so___register_chrdev_fndecl_36572 __register_chrdev fndecl 0-2-1-3 36572 NULL
161506 +enable_so_do_sys_poll_fndecl_36574 do_sys_poll fndecl 2 36574 NULL
161507 +enable_so_ceph_msgpool_get_fndecl_36577 ceph_msgpool_get fndecl 2 36577 NULL
161508 +enable_so_num_shared_regs_intel_uncore_type_36581 num_shared_regs intel_uncore_type 0 36581 NULL
161509 +enable_so_wusb_prf_fndecl_36582 wusb_prf fndecl 7 36582 NULL nohasharray
161510 +enable_so_audio_write_fndecl_36582 audio_write fndecl 4 36582 &enable_so_wusb_prf_fndecl_36582
161511 +enable_so_rx_ring_size_pcnet32_private_36586 rx_ring_size pcnet32_private 0 36586 NULL nohasharray
161512 +enable_so_vmw_user_dmabuf_alloc_fndecl_36586 vmw_user_dmabuf_alloc fndecl 3 36586 &enable_so_rx_ring_size_pcnet32_private_36586
161513 +enable_so_mwifiex_getlog_read_fndecl_36590 mwifiex_getlog_read fndecl 3 36590 NULL
161514 +enable_so_scan_cnt_ad7280_state_36592 scan_cnt ad7280_state 0 36592 NULL
161515 +enable_so_alloc_fw_event_work_fndecl_36593 alloc_fw_event_work fndecl 1 36593 NULL
161516 +enable_so_bgrt_image_size_vardecl_36594 bgrt_image_size vardecl 0 36594 NULL
161517 +enable_so_reada_add_block_fndecl_36596 reada_add_block fndecl 2 36596 NULL
161518 +enable_so_num_max_snd_ratden_36597 num_max snd_ratden 0 36597 NULL nohasharray
161519 +enable_so_mcp23s08_read_regs_fndecl_36597 mcp23s08_read_regs fndecl 4 36597 &enable_so_num_max_snd_ratden_36597 nohasharray
161520 +enable_so_UnitSizeFactor_NFTLMediaHeader_36597 UnitSizeFactor NFTLMediaHeader 0 36597 &enable_so_mcp23s08_read_regs_fndecl_36597
161521 +enable_so_update_block_group_fndecl_36600 update_block_group fndecl 4-3 36600 NULL
161522 +enable_so_write_file_spec_scan_ctl_fndecl_36603 write_file_spec_scan_ctl fndecl 3 36603 NULL
161523 +enable_so_xfs_dir2_sf_addname_hard_fndecl_36605 xfs_dir2_sf_addname_hard fndecl 3 36605 NULL nohasharray
161524 +enable_so_reply_len_sg_header_36605 reply_len sg_header 0 36605 &enable_so_xfs_dir2_sf_addname_hard_fndecl_36605
161525 +enable_so_drm_mm_insert_node_generic_fndecl_36608 drm_mm_insert_node_generic fndecl 3 36608 NULL
161526 +enable_so_len_nci_prop_cmd_param_36611 len nci_prop_cmd_param 0 36611 NULL
161527 +enable_so_set_user_nice_fndecl_36618 set_user_nice fndecl 2 36618 NULL
161528 +enable_so_f_pos_file_36619 f_pos file 0 36619 NULL
161529 +enable_so_gamma_size_drm_mode_crtc_lut_36622 gamma_size drm_mode_crtc_lut 0 36622 NULL
161530 +enable_so_raw_serial_size_x509_certificate_36629 raw_serial_size x509_certificate 0 36629 NULL
161531 +enable_so_block_count_mspro_sys_info_36630 block_count mspro_sys_info 0 36630 NULL
161532 +enable_so_i915_gem_execbuffer_parse_fndecl_36633 i915_gem_execbuffer_parse fndecl 6-5 36633 NULL nohasharray
161533 +enable_so_opcfg_ofsh_cyttsp4_sysinfo_data_36633 opcfg_ofsh cyttsp4_sysinfo_data 0 36633 &enable_so_i915_gem_execbuffer_parse_fndecl_36633
161534 +enable_so_read_super_block_fndecl_36638 read_super_block fndecl 2 36638 NULL
161535 +enable_so_lpfc_idiag_ctlacc_read_reg_fndecl_36642 lpfc_idiag_ctlacc_read_reg fndecl 0-3 36642 NULL
161536 +enable_so_nls_nullsize_fndecl_36644 nls_nullsize fndecl 0 36644 NULL
161537 +enable_so_dm_done_fndecl_36648 dm_done fndecl 2 36648 NULL
161538 +enable_so_pvr2_encoder_write_words_fndecl_36653 pvr2_encoder_write_words fndecl 4 36653 NULL nohasharray
161539 +enable_so_context_id_iscsi_kwqe_conn_destroy_36653 context_id iscsi_kwqe_conn_destroy 0 36653 &enable_so_pvr2_encoder_write_words_fndecl_36653 nohasharray
161540 +enable_so_setup_data_read_fndecl_36653 setup_data_read fndecl 3 36653 &enable_so_context_id_iscsi_kwqe_conn_destroy_36653
161541 +enable_so___kfifo_dma_in_prepare_r_fndecl_36659 __kfifo_dma_in_prepare_r fndecl 4-5 36659 NULL nohasharray
161542 +enable_so_shmem_alloc_page_fndecl_36659 shmem_alloc_page fndecl 3 36659 &enable_so___kfifo_dma_in_prepare_r_fndecl_36659
161543 +enable_so___tty_alloc_driver_fndecl_36660 __tty_alloc_driver fndecl 1 36660 NULL
161544 +enable_so_qp_alloc_host_work_fndecl_36661 qp_alloc_host_work fndecl 3-5 36661 NULL
161545 +enable_so_dac_channels_mixer_oxygen_model_36662 dac_channels_mixer oxygen_model 0 36662 NULL
161546 +enable_so_max_queue_pairs_virtnet_info_36669 max_queue_pairs virtnet_info 0 36669 NULL
161547 +enable_so_i_file_acl_lo_ext4_inode_36684 i_file_acl_lo ext4_inode 0 36684 NULL
161548 +enable_so_size_drm_map_36685 size drm_map 0 36685 NULL
161549 +enable_so_size_drm_agp_buffer_36687 size drm_agp_buffer 0 36687 NULL
161550 +enable_so_esas2r_max_sectors_vardecl_36688 esas2r_max_sectors vardecl 0 36688 NULL nohasharray
161551 +enable_so_nnode_sz_ubifs_info_36688 nnode_sz ubifs_info 0 36688 &enable_so_esas2r_max_sectors_vardecl_36688 nohasharray
161552 +enable_so_out_kvec_bytes_ceph_connection_36688 out_kvec_bytes ceph_connection 0 36688 &enable_so_nnode_sz_ubifs_info_36688
161553 +enable_so_rx_buffer_len_atl1c_adapter_36691 rx_buffer_len atl1c_adapter 0 36691 NULL
161554 +enable_so_expected_pages_page_collect_36693 expected_pages page_collect 0 36693 NULL
161555 +enable_so_total_len_snoop_packet_36694 total_len snoop_packet 0 36694 NULL
161556 +enable_so_hga_vram_len_vardecl_hgafb_c_36700 hga_vram_len vardecl_hgafb.c 0 36700 NULL
161557 +enable_so_btrfs_free_reserved_extent_fndecl_36706 btrfs_free_reserved_extent fndecl 3-2 36706 NULL
161558 +enable_so_map_szh_cyttsp4_sysinfo_data_36711 map_szh cyttsp4_sysinfo_data 0 36711 NULL
161559 +enable_so_dev_num_tpm_chip_36718 dev_num tpm_chip 0 36718 NULL nohasharray
161560 +enable_so_null_major_vardecl_null_blk_c_36718 null_major vardecl_null_blk.c 0 36718 &enable_so_dev_num_tpm_chip_36718
161561 +enable_so_reply_usif_notify_36722 reply usif_notify 0 36722 NULL
161562 +enable_so_alloc_blocks_hfsplus_inode_info_36725 alloc_blocks hfsplus_inode_info 0 36725 NULL nohasharray
161563 +enable_so_bnx2x_mcast_set_rdata_hdr_e1_fndecl_36725 bnx2x_mcast_set_rdata_hdr_e1 fndecl 3 36725 &enable_so_alloc_blocks_hfsplus_inode_info_36725
161564 +enable_so_drAlBlSt_hfs_mdb_36727 drAlBlSt hfs_mdb 0 36727 NULL
161565 +enable_so_id_hfsplus_cat_folder_36733 id hfsplus_cat_folder 0 36733 NULL nohasharray
161566 +enable_so_pnfs_update_layout_fndecl_36733 pnfs_update_layout fndecl 3-4 36733 &enable_so_id_hfsplus_cat_folder_36733
161567 +enable_so_common_buffer_phys_smscore_device_t_36739 common_buffer_phys smscore_device_t 0 36739 NULL
161568 +enable_so_batadv_tt_tvlv_ogm_handler_v1_fndecl_36742 batadv_tt_tvlv_ogm_handler_v1 fndecl 5 36742 NULL
161569 +enable_so_early_reserve_e820_fndecl_36744 early_reserve_e820 fndecl 2-1 36744 NULL
161570 +enable_so_s2255_got_frame_fndecl_36746 s2255_got_frame fndecl 2 36746 NULL
161571 +enable_so_channel_hwif_s_36751 channel hwif_s 0 36751 NULL
161572 +enable_so_saved_raid_disk_md_rdev_36752 saved_raid_disk md_rdev 0 36752 NULL
161573 +enable_so_SyS_sched_getattr_fndecl_36760 SyS_sched_getattr fndecl 3 36760 NULL
161574 +enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763 ath6kl_wmi_add_krk_cmd fndecl 2 36763 NULL nohasharray
161575 +enable_so_bufsiz_vardecl_spidev_c_36763 bufsiz vardecl_spidev.c 0 36763 &enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763
161576 +enable_so_iget_xattr_fndecl_36765 iget_xattr fndecl 2 36765 NULL nohasharray
161577 +enable_so_netdev_flow_limit_table_len_vardecl_36765 netdev_flow_limit_table_len vardecl 0 36765 &enable_so_iget_xattr_fndecl_36765
161578 +enable_so_last_index_zap_details_36766 last_index zap_details 0 36766 NULL
161579 +enable_so_ocfs2_rm_xattr_cluster_fndecl_36767 ocfs2_rm_xattr_cluster fndecl 5-4-3 36767 NULL nohasharray
161580 +enable_so_SyS_setgroups_fndecl_36767 SyS_setgroups fndecl 1 36767 &enable_so_ocfs2_rm_xattr_cluster_fndecl_36767
161581 +enable_so_ocfs2_make_clusters_writable_fndecl_36769 ocfs2_make_clusters_writable fndecl 5-4-3 36769 NULL
161582 +enable_so_num_nodes_crush_bucket_tree_36776 num_nodes crush_bucket_tree 0 36776 NULL
161583 +enable_so_usb_serial_generic_write_fndecl_36788 usb_serial_generic_write fndecl 4 36788 NULL
161584 +enable_so_mmio_base_controller_36793 mmio_base controller 0 36793 NULL
161585 +enable_so_rx_count_cooked_sixpack_36794 rx_count_cooked sixpack 0 36794 NULL
161586 +enable_so_pad_bytes_regmap_format_36795 pad_bytes regmap_format 0 36795 NULL
161587 +enable_so_efi_runtime_map_setup_fndecl_36796 efi_runtime_map_setup fndecl 3-2 36796 NULL
161588 +enable_so_sector_stripe_head_36797 sector stripe_head 0 36797 NULL nohasharray
161589 +enable_so_copy_io_fndecl_36797 copy_io fndecl 3 36797 &enable_so_sector_stripe_head_36797
161590 +enable_so_v4l_bufsize_vardecl_36803 v4l_bufsize vardecl 0 36803 NULL
161591 +enable_so_idetape_chrdev_write_fndecl_36811 idetape_chrdev_write fndecl 3 36811 NULL
161592 +enable_so_mthca_reg_user_mr_fndecl_36815 mthca_reg_user_mr fndecl 2-3 36815 NULL
161593 +enable_so_mthca_setup_cmd_doorbells_fndecl_36817 mthca_setup_cmd_doorbells fndecl 2 36817 NULL
161594 +enable_so_card_type_nozomi_36822 card_type nozomi 0 36822 NULL
161595 +enable_so_ir_pre_altera_jtag_36823 ir_pre altera_jtag 0 36823 NULL
161596 +enable_so_orig_nents_sg_table_36824 orig_nents sg_table 0 36824 NULL
161597 +enable_so_mlx4_num_eq_uar_fndecl_36830 mlx4_num_eq_uar fndecl 0 36830 NULL
161598 +enable_so_acpi_initialize_tables_fndecl_36832 acpi_initialize_tables fndecl 2 36832 NULL
161599 +enable_so_rx_pg_ring_size_bnx2_36835 rx_pg_ring_size bnx2 0 36835 NULL
161600 +enable_so_total_bytes_btrfs_super_block_36845 total_bytes btrfs_super_block 0 36845 NULL
161601 +enable_so_hfsplus_attr_build_key_fndecl_36846 hfsplus_attr_build_key fndecl 0 36846 NULL
161602 +enable_so_reply_sz_MPT2SAS_ADAPTER_36858 reply_sz MPT2SAS_ADAPTER 0 36858 NULL
161603 +enable_so_raid5_compute_sector_fndecl_36860 raid5_compute_sector fndecl 0-2 36860 NULL
161604 +enable_so_acpi_register_gsi_pic_fndecl_36869 acpi_register_gsi_pic fndecl 0-2 36869 NULL
161605 +enable_so_vtotal_drm_display_mode_36870 vtotal drm_display_mode 0 36870 NULL
161606 +enable_so_int_tasklet_entry_fndecl_36871 int_tasklet_entry fndecl 3 36871 NULL
161607 +enable_so_qlcnic_83xx_sysfs_flash_write_fndecl_36872 qlcnic_83xx_sysfs_flash_write fndecl 4 36872 NULL
161608 +enable_so_self_inum_vardecl_self_c_36873 self_inum vardecl_self.c 0 36873 NULL nohasharray
161609 +enable_so_txd_size_bdx_priv_36873 txd_size bdx_priv 0 36873 &enable_so_self_inum_vardecl_self_c_36873 nohasharray
161610 +enable_so_netlbl_unlabel_init_fndecl_36873 netlbl_unlabel_init fndecl 1 36873 &enable_so_txd_size_bdx_priv_36873
161611 +enable_so_uwb_est_size_vardecl_est_c_36881 uwb_est_size vardecl_est.c 0 36881 NULL
161612 +enable_so_tipc_sendmsg_fndecl_36882 tipc_sendmsg fndecl 3 36882 NULL nohasharray
161613 +enable_so_buf_ptr_size_iscsi_cmd_36882 buf_ptr_size iscsi_cmd 0 36882 &enable_so_tipc_sendmsg_fndecl_36882
161614 +enable_so_h_self_omfs_header_36891 h_self omfs_header 0 36891 NULL
161615 +enable_so_size_cxgb4_range_36893 size cxgb4_range 0 36893 NULL
161616 +enable_so_sge_congestion_control_sge_params_36896 sge_congestion_control sge_params 0 36896 NULL
161617 +enable_so_limit_ixgbe_ring_feature_36904 limit ixgbe_ring_feature 0 36904 NULL
161618 +enable_so_actual_usb_request_36913 actual usb_request 0 36913 NULL
161619 +enable_so_tool_spadfn_write_fndecl_36915 tool_spadfn_write fndecl 3 36915 NULL
161620 +enable_so_dup_variable_bug_fndecl_36926 dup_variable_bug fndecl 3 36926 NULL
161621 +enable_so_len_xfs_name_36929 len xfs_name 0 36929 NULL nohasharray
161622 +enable_so_ocfs2_make_right_split_rec_fndecl_36929 ocfs2_make_right_split_rec fndecl 3 36929 &enable_so_len_xfs_name_36929
161623 +enable_so_nfsacl_decode_fndecl_36931 nfsacl_decode fndecl 2-0 36931 NULL
161624 +enable_so_page_base_gssp_in_token_36935 page_base gssp_in_token 0 36935 NULL
161625 +enable_so_debug_level_proc_write_fndecl_36943 debug_level_proc_write fndecl 3 36943 NULL
161626 +enable_so_end_offset_xilly_buffer_36946 end_offset xilly_buffer 0 36946 NULL
161627 +enable_so_priv_size_rtnl_link_ops_36947 priv_size rtnl_link_ops 0 36947 NULL
161628 +enable_so_ntfs_prepare_pages_for_non_resident_write_fndecl_36959 ntfs_prepare_pages_for_non_resident_write fndecl 0 36959 NULL
161629 +enable_so_s_rename_dir_logfs_super_36976 s_rename_dir logfs_super 0 36976 NULL nohasharray
161630 +enable_so_reserved_kmem_cache_36976 reserved kmem_cache 0 36976 &enable_so_s_rename_dir_logfs_super_36976
161631 +enable_so_rx_bufsize_ath_common_36977 rx_bufsize ath_common 0 36977 NULL
161632 +enable_so_loopend_soundfont_sample_info_36981 loopend soundfont_sample_info 0 36981 NULL
161633 +enable_so_usbvision_frames_alloc_fndecl_36983 usbvision_frames_alloc fndecl 0-2 36983 NULL
161634 +enable_so_isku_sysfs_read_macro_fndecl_36984 isku_sysfs_read_macro fndecl 6 36984 NULL
161635 +enable_so_v_sync_strt_wid_aty128_crtc_36987 v_sync_strt_wid aty128_crtc 0 36987 NULL
161636 +enable_so_lbmAllocate_fndecl_36995 lbmAllocate fndecl 2 36995 NULL
161637 +enable_so_exp_len_ccp_rsa_engine_36998 exp_len ccp_rsa_engine 0 36998 NULL
161638 +enable_so_ll_sa_entry_alloc_fndecl_37008 ll_sa_entry_alloc fndecl 4 37008 NULL
161639 +enable_so_num_rxp_per_rx_bnad_37010 num_rxp_per_rx bnad 0 37010 NULL
161640 +enable_so_ip6_mc_hdr_fndecl_37013 ip6_mc_hdr fndecl 7 37013 NULL
161641 +enable_so_to_fw_map_37020 to fw_map 0 37020 NULL
161642 +enable_so_cb_group_width_exofs_dt_data_map_37027 cb_group_width exofs_dt_data_map 0 37027 NULL
161643 +enable_so_result_fc_bsg_reply_37029 result fc_bsg_reply 0 37029 NULL
161644 +enable_so_mmio_size_vmw_private_37038 mmio_size vmw_private 0 37038 NULL nohasharray
161645 +enable_so_dirty_poll_interval_fndecl_37038 dirty_poll_interval fndecl 0 37038 &enable_so_mmio_size_vmw_private_37038
161646 +enable_so_adjust_resource_fndecl_37046 adjust_resource fndecl 3-2 37046 NULL
161647 +enable_so_setcc_fndecl_37048 setcc fndecl 1 37048 NULL
161648 +enable_so_yres__sisbios_mode_37051 yres _sisbios_mode 0 37051 NULL nohasharray
161649 +enable_so_update_sm_ah_fndecl_37051 update_sm_ah fndecl 4-2 37051 &enable_so_yres__sisbios_mode_37051
161650 +enable_so_memory_model_code_mspro_sys_info_37057 memory_model_code mspro_sys_info 0 37057 NULL
161651 +enable_so_neq_vf_resources_37066 neq vf_resources 0 37066 NULL
161652 +enable_so_vmw_cmdbuf_reserve_fndecl_37071 vmw_cmdbuf_reserve fndecl 2 37071 NULL
161653 +enable_so_SYSC_gethostname_fndecl_37078 SYSC_gethostname fndecl 2 37078 NULL
161654 +enable_so_rq_xprt_hlen_svc_rqst_37082 rq_xprt_hlen svc_rqst 0 37082 NULL
161655 +enable_so_rtc_devt_vardecl_rtc_dev_c_37090 rtc_devt vardecl_rtc-dev.c 0 37090 NULL
161656 +enable_so_filter_get_rx_ids_efx_nic_type_37093 filter_get_rx_ids efx_nic_type 0 37093 NULL
161657 +enable_so_cx25840_ir_rx_read_fndecl_37095 cx25840_ir_rx_read fndecl 3 37095 NULL
161658 +enable_so_last_eb_bytes_ubi_fm_volhdr_37099 last_eb_bytes ubi_fm_volhdr 0 37099 NULL
161659 +enable_so_relay_alloc_page_array_fndecl_37100 relay_alloc_page_array fndecl 1 37100 NULL
161660 +enable_so_gfs2_meta_ra_fndecl_37101 gfs2_meta_ra fndecl 2 37101 NULL
161661 +enable_so_filled_kobil_private_37104 filled kobil_private 0 37104 NULL
161662 +enable_so_vlan_tag_rx_return_desc_37115 vlan_tag rx_return_desc 0 37115 NULL
161663 +enable_so_fuse_request_alloc_fndecl_37120 fuse_request_alloc fndecl 1 37120 NULL nohasharray
161664 +enable_so_raid10_format_to_md_layout_fndecl_37120 raid10_format_to_md_layout fndecl 0-2 37120 &enable_so_fuse_request_alloc_fndecl_37120
161665 +enable_so_probe_memory_block_size_fndecl_37124 probe_memory_block_size fndecl 0 37124 NULL
161666 +enable_so_find_biggest_section_pfn_fndecl_37125 find_biggest_section_pfn fndecl 0-4 37125 NULL nohasharray
161667 +enable_so_ocfs2_check_if_ancestor_fndecl_37125 ocfs2_check_if_ancestor fndecl 2 37125 &enable_so_find_biggest_section_pfn_fndecl_37125
161668 +enable_so_sc_blk_cnt_nilfs_sc_info_37130 sc_blk_cnt nilfs_sc_info 0 37130 NULL nohasharray
161669 +enable_so___rh_alloc_fndecl_37130 __rh_alloc fndecl 2 37130 &enable_so_sc_blk_cnt_nilfs_sc_info_37130
161670 +enable_so_nfs_updatepage_fndecl_37131 nfs_updatepage fndecl 3-4 37131 NULL
161671 +enable_so_num_report_ids_mxt_object_37133 num_report_ids mxt_object 0 37133 NULL
161672 +enable_so_audio_mute_fndecl_37139 audio_mute fndecl 2 37139 NULL
161673 +enable_so_m5mols_busy_wait_fndecl_37140 m5mols_busy_wait fndecl 2 37140 NULL
161674 +enable_so_wdata_send_pages_fndecl_37142 wdata_send_pages fndecl 2 37142 NULL
161675 +enable_so_pd_num_mthca_pd_37155 pd_num mthca_pd 0 37155 NULL
161676 +enable_so_mlx5_query_port_pvlc_fndecl_37159 mlx5_query_port_pvlc fndecl 3 37159 NULL
161677 +enable_so_max_pdu_size_l2cap_conf_rfc_37161 max_pdu_size l2cap_conf_rfc 0 37161 NULL
161678 +enable_so_ld_tgt_count_lov_desc_37163 ld_tgt_count lov_desc 0 37163 NULL
161679 +enable_so_l_logBBstart_xlog_37164 l_logBBstart xlog 0 37164 NULL
161680 +enable_so_txCredits_edgeport_port_37166 txCredits edgeport_port 0 37166 NULL
161681 +enable_so_read_mmp_block_fndecl_37168 read_mmp_block fndecl 3 37168 NULL nohasharray
161682 +enable_so_mdiobus_alloc_size_fndecl_37168 mdiobus_alloc_size fndecl 1 37168 &enable_so_read_mmp_block_fndecl_37168
161683 +enable_so_t_blk_res_xfs_trans_37169 t_blk_res xfs_trans 0 37169 NULL
161684 +enable_so_expect_bt_skb_cb_37170 expect bt_skb_cb 0 37170 NULL
161685 +enable_so_hva_to_pfn_slow_fndecl_37173 hva_to_pfn_slow fndecl 1 37173 NULL nohasharray
161686 +enable_so_gpe_count_acpi_gpe_block_info_37173 gpe_count acpi_gpe_block_info 0 37173 &enable_so_hva_to_pfn_slow_fndecl_37173
161687 +enable_so_copy_pte_range_fndecl_37175 copy_pte_range fndecl 6 37175 NULL
161688 +enable_so_sisusbcon_do_font_op_fndecl_37180 sisusbcon_do_font_op fndecl 9 37180 NULL nohasharray
161689 +enable_so_octeon_init_droq_fndecl_37180 octeon_init_droq fndecl 4-3 37180 &enable_so_sisusbcon_do_font_op_fndecl_37180
161690 +enable_so_of_address_to_resource_fndecl_37191 of_address_to_resource fndecl 2 37191 NULL
161691 +enable_so_ssd1307fb_write_fndecl_37192 ssd1307fb_write fndecl 3 37192 NULL
161692 +enable_so_rx_status_0_ath5k_hw_rx_status_37197 rx_status_0 ath5k_hw_rx_status 0 37197 NULL nohasharray
161693 +enable_so_hwflags_read_fndecl_37197 hwflags_read fndecl 3 37197 &enable_so_rx_status_0_ath5k_hw_rx_status_37197
161694 +enable_so_nbperpage_jfs_sb_info_37199 nbperpage jfs_sb_info 0 37199 NULL
161695 +enable_so_gva_to_gpa_kvm_mmu_37200 gva_to_gpa kvm_mmu 0 37200 NULL
161696 +enable_so_digestsize_shash_alg_37203 digestsize shash_alg 0 37203 NULL
161697 +enable_so_last_message_count_mxt_data_37205 last_message_count mxt_data 0 37205 NULL
161698 +enable_so_offset_jffs2_eraseblock_37206 offset jffs2_eraseblock 0 37206 NULL
161699 +enable_so_num_VFs_pci_sriov_37207 num_VFs pci_sriov 0 37207 NULL
161700 +enable_so_hur_len_fndecl_37216 hur_len fndecl 0 37216 NULL
161701 +enable_so_xfs_dir2_node_trim_free_fndecl_37218 xfs_dir2_node_trim_free fndecl 2 37218 NULL
161702 +enable_so_gsc_set_frame_size_fndecl_37233 gsc_set_frame_size fndecl 3-2 37233 NULL
161703 +enable_so_height_fb_image_37238 height fb_image 0 37238 NULL
161704 +enable_so_write_max_at24_data_37243 write_max at24_data 0 37243 NULL
161705 +enable_so_csum_and_copy_to_iter_fndecl_37244 csum_and_copy_to_iter fndecl 2 37244 NULL
161706 +enable_so_test_unaligned_bulk_fndecl_37246 test_unaligned_bulk fndecl 3-2 37246 NULL
161707 +enable_so_iwl_dump_fh_fndecl_37248 iwl_dump_fh fndecl 0 37248 NULL
161708 +enable_so_i_refcount_loc_ocfs2_dinode_37249 i_refcount_loc ocfs2_dinode 0 37249 NULL
161709 +enable_so_hfsplus_find_attr_fndecl_37253 hfsplus_find_attr fndecl 0 37253 NULL
161710 +enable_so_ath6kl_wmi_ap_set_beacon_intvl_cmd_fndecl_37254 ath6kl_wmi_ap_set_beacon_intvl_cmd fndecl 2 37254 NULL
161711 +enable_so_pfkey_sockaddr_pair_size_fndecl_37257 pfkey_sockaddr_pair_size fndecl 0 37257 NULL
161712 +enable_so_isdn_writebuf_stub_fndecl_37260 isdn_writebuf_stub fndecl 4 37260 NULL
161713 +enable_so_size_uhci_debug_37265 size uhci_debug 0 37265 NULL
161714 +enable_so___pskb_trim_head_fndecl_37267 __pskb_trim_head fndecl 2 37267 NULL
161715 +enable_so_ieee80211_rx_radiotap_hdrlen_fndecl_37268 ieee80211_rx_radiotap_hdrlen fndecl 0 37268 NULL
161716 +enable_so_blk_queue_update_dma_pad_fndecl_37275 blk_queue_update_dma_pad fndecl 2 37275 NULL
161717 +enable_so_copy_entries_to_user_fndecl_37276 copy_entries_to_user fndecl 1 37276 NULL nohasharray
161718 +enable_so_sc_max_sge_rd_svcxprt_rdma_37276 sc_max_sge_rd svcxprt_rdma 0 37276 &enable_so_copy_entries_to_user_fndecl_37276
161719 +enable_so_max_packet_sz_rx_musb_hw_ep_37278 max_packet_sz_rx musb_hw_ep 0 37278 NULL
161720 +enable_so_scrollback_current_vardecl_fbcon_c_37279 scrollback_current vardecl_fbcon.c 0 37279 NULL
161721 +enable_so_reg_end_ath6kl_diag_reg_info_37280 reg_end ath6kl_diag_reg_info 0 37280 NULL
161722 +enable_so_do_ncp_rpc_call_fndecl_37285 do_ncp_rpc_call fndecl 2-4 37285 NULL
161723 +enable_so_aac_rx_ioremap_fndecl_37289 aac_rx_ioremap fndecl 2 37289 NULL nohasharray
161724 +enable_so_buf_size_mlx4_en_tx_ring_37289 buf_size mlx4_en_tx_ring 0 37289 &enable_so_aac_rx_ioremap_fndecl_37289
161725 +enable_so_cyz_load_fw_fndecl_37290 cyz_load_fw fndecl 0 37290 NULL
161726 +enable_so_num_bna_mem_info_37294 num bna_mem_info 0 37294 NULL
161727 +enable_so_lcd_hsync_len_atyfb_par_37297 lcd_hsync_len atyfb_par 0 37297 NULL
161728 +enable_so_jfs_setxattr_fndecl_37302 jfs_setxattr fndecl 4 37302 NULL
161729 +enable_so_aer_inject_write_fndecl_37308 aer_inject_write fndecl 3 37308 NULL
161730 +enable_so_svc_partial_recvfrom_fndecl_37311 svc_partial_recvfrom fndecl 0-5-4-3 37311 NULL
161731 +enable_so_ath6kl_delete_qos_write_fndecl_37312 ath6kl_delete_qos_write fndecl 3 37312 NULL
161732 +enable_so_fbcon_scrolldelta_fndecl_37317 fbcon_scrolldelta fndecl 2 37317 NULL nohasharray
161733 +enable_so_batadv_handle_unclaim_fndecl_37317 batadv_handle_unclaim fndecl 5 37317 &enable_so_fbcon_scrolldelta_fndecl_37317 nohasharray
161734 +enable_so_tx_win_size_mwifiex_ie_types_btcoex_aggr_win_size_37317 tx_win_size mwifiex_ie_types_btcoex_aggr_win_size 0 37317 &enable_so_batadv_handle_unclaim_fndecl_37317
161735 +enable_so_size_dm_header_37319 size dm_header 0 37319 NULL
161736 +enable_so_mt76_mac_process_rx_fndecl_37334 mt76_mac_process_rx fndecl 0 37334 NULL
161737 +enable_so_ie_len_cfg80211_sched_scan_request_37335 ie_len cfg80211_sched_scan_request 0 37335 NULL nohasharray
161738 +enable_so_ufs_change_blocknr_fndecl_37335 ufs_change_blocknr fndecl 2-4-5 37335 &enable_so_ie_len_cfg80211_sched_scan_request_37335
161739 +enable_so_ud_cursor_fndecl_37338 ud_cursor fndecl 4 37338 NULL nohasharray
161740 +enable_so_line6_midibuf_init_fndecl_37338 line6_midibuf_init fndecl 2 37338 &enable_so_ud_cursor_fndecl_37338
161741 +enable_so_hso_serial_common_create_fndecl_37343 hso_serial_common_create fndecl 3-4 37343 NULL
161742 +enable_so_dlen_pg_read_hdr_37352 dlen pg_read_hdr 0 37352 NULL
161743 +enable_so_blksize_fuse_mount_data_37357 blksize fuse_mount_data 0 37357 NULL
161744 +enable_so_ieee80211_alloc_txb_fndecl_37358 ieee80211_alloc_txb fndecl 1 37358 NULL
161745 +enable_so_pdev_id_sm501_devdata_37360 pdev_id sm501_devdata 0 37360 NULL
161746 +enable_so_rc_len_whcrc_37363 rc_len whcrc 0 37363 NULL
161747 +enable_so_gsm_change_mtu_fndecl_37364 gsm_change_mtu fndecl 2 37364 NULL
161748 +enable_so_alauda_read_data_fndecl_37367 alauda_read_data fndecl 3-2 37367 NULL
161749 +enable_so_bt_alloc_fndecl_37370 bt_alloc fndecl 2 37370 NULL
161750 +enable_so_peer_addr_len_drbd_connection_37371 peer_addr_len drbd_connection 0 37371 NULL
161751 +enable_so_orig_bi_size_usb_idmouse_37372 orig_bi_size usb_idmouse 0 37372 NULL
161752 +enable_so_virtscsi_add_cmd_fndecl_37379 virtscsi_add_cmd fndecl 3-4 37379 NULL
161753 +enable_so_gotoxay_fndecl_37380 gotoxay fndecl 2-3 37380 NULL
161754 +enable_so_nvkm_ramht_new_fndecl_37381 nvkm_ramht_new fndecl 2 37381 NULL
161755 +enable_so_size_pnp_mem_37384 size pnp_mem 0 37384 NULL
161756 +enable_so_tx_tx_exch_pending_read_fndecl_37385 tx_tx_exch_pending_read fndecl 3 37385 NULL
161757 +enable_so_btrfs_free_and_pin_reserved_extent_fndecl_37387 btrfs_free_and_pin_reserved_extent fndecl 3-2 37387 NULL
161758 +enable_so_alloc_blksz_hfs_sb_info_37390 alloc_blksz hfs_sb_info 0 37390 NULL nohasharray
161759 +enable_so_smscore_createbuffer_fndecl_37390 smscore_createbuffer fndecl 3 37390 &enable_so_alloc_blksz_hfs_sb_info_37390
161760 +enable_so_batadv_check_management_packet_fndecl_37394 batadv_check_management_packet fndecl 3 37394 NULL
161761 +enable_so_hsc_msg_len_set_fndecl_37398 hsc_msg_len_set fndecl 2 37398 NULL
161762 +enable_so_jdvbt90502_reg_read_fndecl_37400 jdvbt90502_reg_read fndecl 4 37400 NULL
161763 +enable_so_ieee80211_send_null_response_fndecl_37403 ieee80211_send_null_response fndecl 3 37403 NULL
161764 +enable_so_num_msix_vectors_i40e_hw_capabilities_37406 num_msix_vectors i40e_hw_capabilities 0 37406 NULL
161765 +enable_so_ath6kl_wmi_implicit_create_pstream_fndecl_37407 ath6kl_wmi_implicit_create_pstream fndecl 2 37407 NULL
161766 +enable_so_xfs_rtfree_extent_fndecl_37427 xfs_rtfree_extent fndecl 3-2 37427 NULL
161767 +enable_so_hr_block_bits_o2hb_region_37433 hr_block_bits o2hb_region 0 37433 NULL
161768 +enable_so_radeon_gart_size_vardecl_37434 radeon_gart_size vardecl 0 37434 NULL nohasharray
161769 +enable_so_inode_table_ext4_new_group_data_37434 inode_table ext4_new_group_data 0 37434 &enable_so_radeon_gart_size_vardecl_37434
161770 +enable_so_nice_workqueue_attrs_37437 nice workqueue_attrs 0 37437 NULL
161771 +enable_so_mwifiex_debug_read_fndecl_37441 mwifiex_debug_read fndecl 3 37441 NULL
161772 +enable_so_dib0700_ctrl_rd_fndecl_37445 dib0700_ctrl_rd fndecl 0 37445 NULL
161773 +enable_so_size_erst_record_id_cache_37450 size erst_record_id_cache 0 37450 NULL
161774 +enable_so_right_margin_fb_var_screeninfo_37453 right_margin fb_var_screeninfo 0 37453 NULL nohasharray
161775 +enable_so_file_size_squashfs_dir_inode_37453 file_size squashfs_dir_inode 0 37453 &enable_so_right_margin_fb_var_screeninfo_37453
161776 +enable_so_header_size_rxrpc_connection_37458 header_size rxrpc_connection 0 37458 NULL
161777 +enable_so_get_user_pages_locked_fndecl_37465 get_user_pages_locked fndecl 3 37465 NULL nohasharray
161778 +enable_so_devnum_mtd_blktrans_dev_37465 devnum mtd_blktrans_dev 0 37465 &enable_so_get_user_pages_locked_fndecl_37465 nohasharray
161779 +enable_so_cfi_read_query_fndecl_37465 cfi_read_query fndecl 0 37465 &enable_so_devnum_mtd_blktrans_dev_37465
161780 +enable_so_bi_sector_bvec_iter_37467 bi_sector bvec_iter 0 37467 NULL
161781 +enable_so_rate_ua101_37469 rate ua101 0 37469 NULL
161782 +enable_so_length_drm_event_37471 length drm_event 0 37471 NULL
161783 +enable_so_s_apbshift_ufs_sb_private_info_37473 s_apbshift ufs_sb_private_info 0 37473 NULL
161784 +enable_so_TupleLink_tuple_t_37482 TupleLink tuple_t 0 37482 NULL
161785 +enable_so_squashfs_iget_fndecl_37485 squashfs_iget fndecl 3 37485 NULL nohasharray
161786 +enable_so_ath10k_mac_create_fndecl_37485 ath10k_mac_create fndecl 1 37485 &enable_so_squashfs_iget_fndecl_37485
161787 +enable_so_qib_resize_cq_fndecl_37489 qib_resize_cq fndecl 2 37489 NULL
161788 +enable_so_params_len_nfc_evt_transaction_37500 params_len nfc_evt_transaction 0 37500 NULL
161789 +enable_so_lines_ivtv_osd_coords_37504 lines ivtv_osd_coords 0 37504 NULL nohasharray
161790 +enable_so_heads_mspro_devinfo_37504 heads mspro_devinfo 0 37504 &enable_so_lines_ivtv_osd_coords_37504
161791 +enable_so_ipoib_add_port_fndecl_37508 ipoib_add_port fndecl 3 37508 NULL
161792 +enable_so_ks8851_rdfifo_fndecl_37510 ks8851_rdfifo fndecl 3 37510 NULL
161793 +enable_so_inode_newsize_ok_fndecl_37511 inode_newsize_ok fndecl 0-2 37511 NULL
161794 +enable_so_ncpus_vardecl_aoecmd_c_37517 ncpus vardecl_aoecmd.c 0 37517 NULL nohasharray
161795 +enable_so_copy_user_segment_list_fndecl_37517 copy_user_segment_list fndecl 2 37517 &enable_so_ncpus_vardecl_aoecmd_c_37517
161796 +enable_so_etherMtu_mac_eeprom_port_cfg_37523 etherMtu_mac eeprom_port_cfg 0 37523 NULL nohasharray
161797 +enable_so___data_len_request_37523 __data_len request 0 37523 &enable_so_etherMtu_mac_eeprom_port_cfg_37523
161798 +enable_so_efx_realloc_channels_fndecl_37528 efx_realloc_channels fndecl 2-3 37528 NULL
161799 +enable_so_num_txd_netxen_adapter_37529 num_txd netxen_adapter 0 37529 NULL
161800 +enable_so_parent_ino_xfs_fid64_37533 parent_ino xfs_fid64 0 37533 NULL
161801 +enable_so_ieee80211_bss_info_update_fndecl_37537 ieee80211_bss_info_update fndecl 4 37537 NULL nohasharray
161802 +enable_so_dwords_qib_verbs_txreq_37537 dwords qib_verbs_txreq 0 37537 &enable_so_ieee80211_bss_info_update_fndecl_37537
161803 +enable_so_fuse_fsync_common_fndecl_37543 fuse_fsync_common fndecl 2-3 37543 NULL
161804 +enable_so_btrfs_io_bio_alloc_fndecl_37544 btrfs_io_bio_alloc fndecl 2 37544 NULL
161805 +enable_so_keylen_ppp_mppe_state_37546 keylen ppp_mppe_state 0 37546 NULL nohasharray
161806 +enable_so_divisor_sfq_sched_data_37546 divisor sfq_sched_data 0 37546 &enable_so_keylen_ppp_mppe_state_37546
161807 +enable_so_extent_shift_ecryptfs_crypt_stat_37548 extent_shift ecryptfs_crypt_stat 0 37548 NULL nohasharray
161808 +enable_so_num_rand_bytes_ecryptfs_write_tag_70_packet_silly_stack_37548 num_rand_bytes ecryptfs_write_tag_70_packet_silly_stack 0 37548 &enable_so_extent_shift_ecryptfs_crypt_stat_37548
161809 +enable_so_srp_map_desc_fndecl_37569 srp_map_desc fndecl 3 37569 NULL
161810 +enable_so_dln2_transfer_fndecl_37576 dln2_transfer fndecl 0 37576 NULL
161811 +enable_so_fixup_user_fault_fndecl_37577 fixup_user_fault fndecl 3 37577 NULL
161812 +enable_so_len_efx_rx_buffer_37579 len efx_rx_buffer 0 37579 NULL
161813 +enable_so_catas_offset_mlx4_fw_37594 catas_offset mlx4_fw 0 37594 NULL
161814 +enable_so_n_ai_urbs_usbdux_private_37595 n_ai_urbs usbdux_private 0 37595 NULL
161815 +enable_so_ocfs2_cp_xattr_bucket_fndecl_37598 ocfs2_cp_xattr_bucket fndecl 3-4 37598 NULL
161816 +enable_so_data_sock_create_fndecl_37606 data_sock_create fndecl 3 37606 NULL
161817 +enable_so_tun_do_read_fndecl_37614 tun_do_read fndecl 0 37614 NULL
161818 +enable_so_tx_tx_start_data_read_fndecl_37616 tx_tx_start_data_read fndecl 3 37616 NULL nohasharray
161819 +enable_so_eeprom_len_fmc_device_37616 eeprom_len fmc_device 0 37616 &enable_so_tx_tx_start_data_read_fndecl_37616
161820 +enable_so_balloon_hotplug_balloon_stats_37629 balloon_hotplug balloon_stats 0 37629 NULL
161821 +enable_so_dcbp_set_code_fndecl_37633 dcbp_set_code fndecl 2 37633 NULL
161822 +enable_so_lfb_height_screen_info_37634 lfb_height screen_info 0 37634 NULL
161823 +enable_so_rmtblkcnt2_xfs_da_args_37635 rmtblkcnt2 xfs_da_args 0 37635 NULL
161824 +enable_so_b_in_mon_reader_bin_37636 b_in mon_reader_bin 0 37636 NULL
161825 +enable_so_usb_stor_bulk_srb_fndecl_37641 usb_stor_bulk_srb fndecl 2 37641 NULL
161826 +enable_so_copy_ctr_args_fndecl_37642 copy_ctr_args fndecl 2 37642 NULL
161827 +enable_so_addrlen_rpc_xprt_37643 addrlen rpc_xprt 0 37643 NULL
161828 +enable_so_bufsize_vardecl_pagetest_c_37645 bufsize vardecl_pagetest.c 0 37645 NULL
161829 +enable_so_alloc_ldt_struct_fndecl_37649 alloc_ldt_struct fndecl 1 37649 NULL
161830 +enable_so_v9fs_xattr_user_get_fndecl_37650 v9fs_xattr_user_get fndecl 4 37650 NULL nohasharray
161831 +enable_so_cache_size_cache_37650 cache_size cache 0 37650 &enable_so_v9fs_xattr_user_get_fndecl_37650
161832 +enable_so_spu_subport_cnt_ipath_user_info_37652 spu_subport_cnt ipath_user_info 0 37652 NULL
161833 +enable_so_bop_check_insert_nilfs_bmap_operations_37658 bop_check_insert nilfs_bmap_operations 0 37658 NULL nohasharray
161834 +enable_so_hfcsusb_rx_frame_fndecl_37658 hfcsusb_rx_frame fndecl 3 37658 &enable_so_bop_check_insert_nilfs_bmap_operations_37658
161835 +enable_so_efi_nextents_xfs_efi_log_format_37664 efi_nextents xfs_efi_log_format 0 37664 NULL
161836 +enable_so_early_bytes_rchan_buf_37669 early_bytes rchan_buf 0 37669 NULL
161837 +enable_so_lsave_sz_ubifs_info_37672 lsave_sz ubifs_info 0 37672 NULL
161838 +enable_so_len_ethtool_eeprom_37676 len ethtool_eeprom 0 37676 NULL
161839 +enable_so_eeprom_blob_size_iwl_priv_37680 eeprom_blob_size iwl_priv 0 37680 NULL
161840 +enable_so_lastextent_efs_inode_info_37681 lastextent efs_inode_info 0 37681 NULL
161841 +enable_so_nvme_trans_ext_inq_page_fndecl_37691 nvme_trans_ext_inq_page fndecl 3 37691 NULL
161842 +enable_so_zm_wmfw_adsp2_alg_hdr_37694 zm wmfw_adsp2_alg_hdr 0 37694 NULL
161843 +enable_so_usb_ftdi_elan_edset_setup_fndecl_37695 usb_ftdi_elan_edset_setup fndecl 0 37695 NULL
161844 +enable_so_snic_trace_max_pages_vardecl_37696 snic_trace_max_pages vardecl 0 37696 NULL
161845 +enable_so_orig_video_points_screen_info_37702 orig_video_points screen_info 0 37702 NULL
161846 +enable_so_xenvif_write_io_ring_fndecl_37713 xenvif_write_io_ring fndecl 3 37713 NULL
161847 +enable_so_num_tx_ring_sh_eth_private_37717 num_tx_ring sh_eth_private 0 37717 NULL
161848 +enable_so_regset_tls_get_fndecl_37721 regset_tls_get fndecl 3 37721 NULL
161849 +enable_so_zap_bt_entries_mapping_fndecl_37722 zap_bt_entries_mapping fndecl 3-4-2 37722 NULL
161850 +enable_so_run_start_commands_fndecl_37723 run_start_commands fndecl 0 37723 NULL
161851 +enable_so_bfad_debugfs_lseek_fndecl_37724 bfad_debugfs_lseek fndecl 2 37724 NULL
161852 +enable_so_des3_dwceqos_dma_desc_37725 des3 dwceqos_dma_desc 0 37725 NULL
161853 +enable_so_cciss_geometry_inquiry_fndecl_37730 cciss_geometry_inquiry fndecl 4 37730 NULL
161854 +enable_so_sk_wmem_queued_sock_37733 sk_wmem_queued sock 0 37733 NULL
161855 +enable_so_len_cap_mon_bin_hdr_37739 len_cap mon_bin_hdr 0 37739 NULL
161856 +enable_so_mon_bin_get_event_fndecl_37740 mon_bin_get_event fndecl 6-4 37740 NULL
161857 +enable_so_pwr_rcvd_beacons_read_fndecl_37751 pwr_rcvd_beacons_read fndecl 3 37751 NULL
161858 +enable_so_num_enh_eq_cfgs_wm8994_pdata_37752 num_enh_eq_cfgs wm8994_pdata 0 37752 NULL
161859 +enable_so_vmw_kms_ldu_do_dmabuf_dirty_fndecl_37757 vmw_kms_ldu_do_dmabuf_dirty fndecl 6 37757 NULL
161860 +enable_so_ath6kl_dbg_dump_fndecl_37760 ath6kl_dbg_dump fndecl 5 37760 NULL
161861 +enable_so_cache_read_procfs_fndecl_37761 cache_read_procfs fndecl 3 37761 NULL
161862 +enable_so_length_acpi_object_buffer_37768 length acpi_object_buffer 0 37768 NULL
161863 +enable_so_prot_length_se_cmd_37769 prot_length se_cmd 0 37769 NULL
161864 +enable_so_per_bio_data_size_dm_target_37772 per_bio_data_size dm_target 0 37772 NULL
161865 +enable_so_kvm_kvzalloc_fndecl_37773 kvm_kvzalloc fndecl 1 37773 NULL
161866 +enable_so_access_length_acpi_object_region_field_37774 access_length acpi_object_region_field 0 37774 NULL
161867 +enable_so_block_size_mspro_sys_info_37775 block_size mspro_sys_info 0 37775 NULL
161868 +enable_so_buf_size_usb_data_stream_37781 buf_size usb_data_stream 0 37781 NULL
161869 +enable_so_ext4_init_dot_dotdot_fndecl_37792 ext4_init_dot_dotdot fndecl 4-3-5 37792 NULL
161870 +enable_so_update_interval_frames_snd_card_asihpi_37794 update_interval_frames snd_card_asihpi 0 37794 NULL
161871 +enable_so_bytes_per_block_svga3d_surface_desc_37798 bytes_per_block svga3d_surface_desc 0 37798 NULL
161872 +enable_so_nilfs_sufile_read_fndecl_37800 nilfs_sufile_read fndecl 2 37800 NULL
161873 +enable_so_eo_get_last_eb_blk_ocfs2_extent_tree_operations_37802 eo_get_last_eb_blk ocfs2_extent_tree_operations 0 37802 NULL
161874 +enable_so_exec_verb_hdac_device_37803 exec_verb hdac_device 0 37803 NULL
161875 +enable_so_word_4_ns_rsqe_37805 word_4 ns_rsqe 0 37805 NULL
161876 +enable_so_gid_tbl_len_ib_port_attr_37809 gid_tbl_len ib_port_attr 0 37809 NULL nohasharray
161877 +enable_so_devnum_genwqe_genwqe_dev_37809 devnum_genwqe genwqe_dev 0 37809 &enable_so_gid_tbl_len_ib_port_attr_37809
161878 +enable_so_buf_size_mlx5_ib_qp_37812 buf_size mlx5_ib_qp 0 37812 NULL
161879 +enable_so_page_shift_qib_mregion_37818 page_shift qib_mregion 0 37818 NULL nohasharray
161880 +enable_so_touchpad_num_ad714x_platform_data_37818 touchpad_num ad714x_platform_data 0 37818 &enable_so_page_shift_qib_mregion_37818
161881 +enable_so_out_ep_snd_usb_midi_endpoint_info_37819 out_ep snd_usb_midi_endpoint_info 0 37819 NULL
161882 +enable_so_max_header_size_ircomm_tty_cb_37822 max_header_size ircomm_tty_cb 0 37822 NULL
161883 +enable_so_my_addr_len_drbd_connection_37828 my_addr_len drbd_connection 0 37828 NULL
161884 +enable_so_rbd_img_request_create_fndecl_37833 rbd_img_request_create fndecl 2-3 37833 NULL
161885 +enable_so_mru_syncppp_37835 mru syncppp 0 37835 NULL
161886 +enable_so_slot_width_mvs_chip_info_37839 slot_width mvs_chip_info 0 37839 NULL nohasharray
161887 +enable_so_ifc_len_ifconf_37839 ifc_len ifconf 0 37839 &enable_so_slot_width_mvs_chip_info_37839
161888 +enable_so___kfifo_skip_r_fndecl_37849 __kfifo_skip_r fndecl 2 37849 NULL
161889 +enable_so_iblock_get_bio_fndecl_37851 iblock_get_bio fndecl 2-3 37851 NULL
161890 +enable_so_sctp_init_cause_fixed_fndecl_37853 sctp_init_cause_fixed fndecl 3 37853 NULL
161891 +enable_so_ioread16be_fndecl_37854 ioread16be fndecl 0 37854 NULL
161892 +enable_so_nofill_fndecl_37857 nofill fndecl 0 37857 NULL
161893 +enable_so_usbat_read_block_fndecl_37858 usbat_read_block fndecl 3-4 37858 NULL
161894 +enable_so_nents_usnic_uiom_chunk_37860 nents usnic_uiom_chunk 0 37860 NULL
161895 +enable_so_tx_tx_exch_read_fndecl_37865 tx_tx_exch_read fndecl 3 37865 NULL
161896 +enable_so_assoclen_aead_request_37866 assoclen aead_request 0 37866 NULL
161897 +enable_so_xdr_copy_to_scratch_fndecl_37868 xdr_copy_to_scratch fndecl 2 37868 NULL
161898 +enable_so_btrfs_set_header_nritems_fndecl_37869 btrfs_set_header_nritems fndecl 2 37869 NULL
161899 +enable_so_sd_write_long_data_fndecl_37870 sd_write_long_data fndecl 0 37870 NULL nohasharray
161900 +enable_so_num_node_state_fndecl_37870 num_node_state fndecl 0 37870 &enable_so_sd_write_long_data_fndecl_37870
161901 +enable_so_hx8357_spi_write_then_read_fndecl_37879 hx8357_spi_write_then_read fndecl 3-5 37879 NULL
161902 +enable_so_leaf_delete_items_fndecl_37885 leaf_delete_items fndecl 5 37885 NULL
161903 +enable_so_____alloc_ei_netdev_fndecl_37888 ____alloc_ei_netdev fndecl 1 37888 NULL
161904 +enable_so_dm_bufio_client_create_fndecl_37889 dm_bufio_client_create fndecl 2-4 37889 NULL
161905 +enable_so_gss_wrap_kerberos_fndecl_37890 gss_wrap_kerberos fndecl 2 37890 NULL
161906 +enable_so_bulk_in_ipheth_device_37894 bulk_in ipheth_device 0 37894 NULL nohasharray
161907 +enable_so_xfs_buf_get_uncached_fndecl_37894 xfs_buf_get_uncached fndecl 2 37894 &enable_so_bulk_in_ipheth_device_37894
161908 +enable_so_prod_xfs_alloc_arg_37897 prod xfs_alloc_arg 0 37897 NULL
161909 +enable_so_calc_send_wqe_fndecl_37899 calc_send_wqe fndecl 0 37899 NULL nohasharray
161910 +enable_so_logi_dj_hidpp_event_fndecl_37899 logi_dj_hidpp_event fndecl 4 37899 &enable_so_calc_send_wqe_fndecl_37899
161911 +enable_so_datalen_user_key_payload_37906 datalen user_key_payload 0 37906 NULL
161912 +enable_so_pasid_kfd_process_37907 pasid kfd_process 0 37907 NULL
161913 +enable_so_pvr2_i2c_basic_op_fndecl_37917 pvr2_i2c_basic_op fndecl 4-6 37917 NULL
161914 +enable_so_spk_ye_vardecl_37920 spk_ye vardecl 0 37920 NULL
161915 +enable_so_ep_urb_context_37938 ep urb_context 0 37938 NULL nohasharray
161916 +enable_so_num_escbs_asd_seq_data_37938 num_escbs asd_seq_data 0 37938 &enable_so_ep_urb_context_37938
161917 +enable_so_kvm_fetch_guest_virt_fndecl_37942 kvm_fetch_guest_virt fndecl 2-4 37942 NULL
161918 +enable_so_seq_write_fndecl_37946 seq_write fndecl 3 37946 NULL
161919 +enable_so_phys_memory_base_mgsl_struct_37952 phys_memory_base mgsl_struct 0 37952 NULL
161920 +enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953 wpa_ie_len islpci_bss_wpa_ie 0 37953 NULL nohasharray
161921 +enable_so___handle_mm_fault_fndecl_37953 __handle_mm_fault fndecl 3 37953 &enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953
161922 +enable_so_rx_ring_count_fm10k_intfc_37957 rx_ring_count fm10k_intfc 0 37957 NULL
161923 +enable_so_cleanmarker_size_jffs2_sb_info_37959 cleanmarker_size jffs2_sb_info 0 37959 NULL
161924 +enable_so_consume_size_vmci_qp_alloc_info_vmvm_37962 consume_size vmci_qp_alloc_info_vmvm 0 37962 NULL
161925 +enable_so_unmap_vmas_fndecl_37967 unmap_vmas fndecl 4-3 37967 NULL nohasharray
161926 +enable_so_mbox_write_fndecl_37967 mbox_write fndecl 3 37967 &enable_so_unmap_vmas_fndecl_37967
161927 +enable_so_ieee80211_if_write_uapsd_queues_fndecl_37973 ieee80211_if_write_uapsd_queues fndecl 3 37973 NULL
161928 +enable_so_vortex_core_init_fndecl_37980 vortex_core_init fndecl 0 37980 NULL
161929 +enable_so_key_search_fndecl_37982 key_search fndecl 0 37982 NULL
161930 +enable_so_count_nfsd_readres_37988 count nfsd_readres 0 37988 NULL
161931 +enable_so_nlmsvc_lookup_host_fndecl_37992 nlmsvc_lookup_host fndecl 3 37992 NULL
161932 +enable_so_data_size_cyttsp4_sysinfo_ofs_37994 data_size cyttsp4_sysinfo_ofs 0 37994 NULL
161933 +enable_so_size_qla_flt_region_37995 size qla_flt_region 0 37995 NULL
161934 +enable_so_arizona_set_fll_fndecl_37996 arizona_set_fll fndecl 4 37996 NULL nohasharray
161935 +enable_so_key_size_bpf_map_37996 key_size bpf_map 0 37996 &enable_so_arizona_set_fll_fndecl_37996
161936 +enable_so_bt_sock_stream_recvmsg_fndecl_37997 bt_sock_stream_recvmsg fndecl 3 37997 NULL
161937 +enable_so_icmp_manip_pkt_fndecl_38011 icmp_manip_pkt fndecl 4 38011 NULL
161938 +enable_so_rfcomm_tty_write_fndecl_38016 rfcomm_tty_write fndecl 3 38016 NULL
161939 +enable_so_l_len_xfs_flock64_38022 l_len xfs_flock64 0 38022 NULL nohasharray
161940 +enable_so_max_cmnds_vardecl_aic94xx_hwi_c_38022 max_cmnds vardecl_aic94xx_hwi.c 0 38022 &enable_so_l_len_xfs_flock64_38022
161941 +enable_so_num_entries_ipt_replace_38023 num_entries ipt_replace 0 38023 NULL
161942 +enable_so_iriap_connect_confirm_fndecl_38027 iriap_connect_confirm fndecl 5 38027 NULL
161943 +enable_so_length_mcp_slot_38029 length mcp_slot 0 38029 NULL nohasharray
161944 +enable_so_ath6kl_set_bitrate_mask64_fndecl_38029 ath6kl_set_bitrate_mask64 fndecl 2 38029 &enable_so_length_mcp_slot_38029
161945 +enable_so_tsn_sctp_datahdr_38032 tsn sctp_datahdr 0 38032 NULL
161946 +enable_so_sensb_res_len_nfc_target_38034 sensb_res_len nfc_target 0 38034 NULL
161947 +enable_so_get_cur_path_fndecl_38038 get_cur_path fndecl 0 38038 NULL
161948 +enable_so_ip6_tnl_change_mtu_fndecl_38041 ip6_tnl_change_mtu fndecl 2 38041 NULL
161949 +enable_so_DataUnits_partition_t_38043 DataUnits partition_t 0 38043 NULL
161950 +enable_so_x25_negotiate_facilities_fndecl_38044 x25_negotiate_facilities fndecl 0 38044 NULL
161951 +enable_so_aac_convert_sgraw2_fndecl_38045 aac_convert_sgraw2 fndecl 2-4 38045 NULL nohasharray
161952 +enable_so_open_devices_btrfs_fs_devices_38045 open_devices btrfs_fs_devices 0 38045 &enable_so_aac_convert_sgraw2_fndecl_38045
161953 +enable_so_get_vmcore_size_fndecl_38046 get_vmcore_size fndecl 0-2-1 38046 NULL
161954 +enable_so_reference_rate_vardecl_xfi_c_38047 reference_rate vardecl_xfi.c 0 38047 NULL
161955 +enable_so_group_devt_vfio_38048 group_devt vfio 0 38048 NULL
161956 +enable_so_node_present_pages_pglist_data_38050 node_present_pages pglist_data 0 38050 NULL
161957 +enable_so_pending_buf_size_deflate_state_38053 pending_buf_size deflate_state 0 38053 NULL
161958 +enable_so_offset_drm_local_map_38055 offset drm_local_map 0 38055 NULL
161959 +enable_so_isd200_set_srb_fndecl_38056 isd200_set_srb fndecl 4 38056 NULL nohasharray
161960 +enable_so_nrpacks_vardecl_usbusx2yaudio_c_38056 nrpacks vardecl_usbusx2yaudio.c 0 38056 &enable_so_isd200_set_srb_fndecl_38056
161961 +enable_so_length_ipw_rx_packet_38058 length ipw_rx_packet 0 38058 NULL nohasharray
161962 +enable_so_sctp_auth_create_key_fndecl_38058 sctp_auth_create_key fndecl 1 38058 &enable_so_length_ipw_rx_packet_38058
161963 +enable_so_iscsi_create_session_fndecl_38060 iscsi_create_session fndecl 3 38060 NULL
161964 +enable_so_ubifs_iget_fndecl_38065 ubifs_iget fndecl 2 38065 NULL
161965 +enable_so_add_vol_fndecl_38066 add_vol fndecl 3-6 38066 NULL
161966 +enable_so_extent_fiemap_fndecl_38070 extent_fiemap fndecl 4-3 38070 NULL
161967 +enable_so_numPartitionMaps_logicalVolDesc_38073 numPartitionMaps logicalVolDesc 0 38073 NULL
161968 +enable_so_length_wpa_param_38074 length wpa_param 0 38074 NULL
161969 +enable_so_fb_bpp_vardecl_udl_fb_c_38075 fb_bpp vardecl_udl_fb.c 0 38075 NULL
161970 +enable_so_ps_upsd_utilization_read_fndecl_38086 ps_upsd_utilization_read fndecl 3 38086 NULL
161971 +enable_so_bd_group_ext4_buddy_38101 bd_group ext4_buddy 0 38101 NULL nohasharray
161972 +enable_so_la_bm_off_ocfs2_local_alloc_38101 la_bm_off ocfs2_local_alloc 0 38101 &enable_so_bd_group_ext4_buddy_38101
161973 +enable_so_softingcs_index_vardecl_softing_cs_c_38102 softingcs_index vardecl_softing_cs.c 0 38102 NULL
161974 +enable_so_data_size_il4965_firmware_pieces_38105 data_size il4965_firmware_pieces 0 38105 NULL
161975 +enable_so_host_mapping_level_fndecl_38115 host_mapping_level fndecl 0-2 38115 NULL
161976 +enable_so_length_floppy_raw_cmd_38116 length floppy_raw_cmd 0 38116 NULL
161977 +enable_so_wm8994_get_fll_config_fndecl_38117 wm8994_get_fll_config fndecl 3-4 38117 NULL
161978 +enable_so_rmtblkno_xfs_da_args_38121 rmtblkno xfs_da_args 0 38121 NULL
161979 +enable_so_sel_write_access_fndecl_38123 sel_write_access fndecl 3 38123 NULL
161980 +enable_so_actual_usbhs_pkt_38126 actual usbhs_pkt 0 38126 NULL
161981 +enable_so_len_rxd_desc_38127 len rxd_desc 0 38127 NULL
161982 +enable_so_usbhs_pipe_get_maxpacket_fndecl_38131 usbhs_pipe_get_maxpacket fndecl 0 38131 NULL
161983 +enable_so_crtc_h_drm_plane_state_38132 crtc_h drm_plane_state 0 38132 NULL
161984 +enable_so_sctp_setsockopt_associnfo_fndecl_38135 sctp_setsockopt_associnfo fndecl 3 38135 NULL
161985 +enable_so_sfi_sysfs_install_table_fndecl_38139 sfi_sysfs_install_table fndecl 1 38139 NULL
161986 +enable_so_rtw_os_xmit_resource_alloc23a_fndecl_38142 rtw_os_xmit_resource_alloc23a fndecl 3 38142 NULL
161987 +enable_so_nentries_ebt_replace_kernel_38149 nentries ebt_replace_kernel 0 38149 NULL
161988 +enable_so_btrfs_get_io_failure_record_fndecl_38153 btrfs_get_io_failure_record fndecl 3-2 38153 NULL
161989 +enable_so_iwl_dbgfs_bcast_filters_macs_read_fndecl_38156 iwl_dbgfs_bcast_filters_macs_read fndecl 3 38156 NULL
161990 +enable_so_st_read_fndecl_38176 st_read fndecl 3 38176 NULL
161991 +enable_so___mxt_read_reg_fndecl_38178 __mxt_read_reg fndecl 3-0 38178 NULL
161992 +enable_so_compat_dccp_setsockopt_fndecl_38188 compat_dccp_setsockopt fndecl 5 38188 NULL
161993 +enable_so_zone_end_strip_zone_38191 zone_end strip_zone 0 38191 NULL
161994 +enable_so_nf_ct_ext_create_fndecl_38195 nf_ct_ext_create fndecl 3 38195 NULL
161995 +enable_so_drm_property_create_fndecl_38196 drm_property_create fndecl 4 38196 NULL
161996 +enable_so_nilfs_cpfile_checkpoints_in_block_fndecl_38197 nilfs_cpfile_checkpoints_in_block fndecl 0-2-3 38197 NULL
161997 +enable_so_goto_high_power_fndecl_38198 goto_high_power fndecl 0 38198 NULL
161998 +enable_so_driver_data_i2c_device_id_38200 driver_data i2c_device_id 0 38200 NULL
161999 +enable_so_raw_sig_size_x509_certificate_38211 raw_sig_size x509_certificate 0 38211 NULL
162000 +enable_so_ath6kl_wmi_del_wow_pattern_cmd_fndecl_38224 ath6kl_wmi_del_wow_pattern_cmd fndecl 2 38224 NULL nohasharray
162001 +enable_so_prealloc_stream_buf_vardecl_hpioctl_c_38224 prealloc_stream_buf vardecl_hpioctl.c 0 38224 &enable_so_ath6kl_wmi_del_wow_pattern_cmd_fndecl_38224
162002 +enable_so_target_alloc_sgl_fndecl_38227 target_alloc_sgl fndecl 3 38227 NULL nohasharray
162003 +enable_so_ath10k_dbg_sta_write_addba_fndecl_38227 ath10k_dbg_sta_write_addba fndecl 3 38227 &enable_so_target_alloc_sgl_fndecl_38227
162004 +enable_so_sh_mmcif_error_manage_fndecl_38230 sh_mmcif_error_manage fndecl 0 38230 NULL
162005 +enable_so_dvb_audio_write_fndecl_38232 dvb_audio_write fndecl 3 38232 NULL
162006 +enable_so_max_buf_size_tegra_spi_data_38233 max_buf_size tegra_spi_data 0 38233 NULL
162007 +enable_so_firm_numbers_queue_AdapterControlBlock_38236 firm_numbers_queue AdapterControlBlock 0 38236 NULL
162008 +enable_so_ipwireless_network_packet_received_fndecl_38238 ipwireless_network_packet_received fndecl 4 38238 NULL
162009 +enable_so_periodic_bytes_fndecl_38241 periodic_bytes fndecl 0 38241 NULL
162010 +enable_so_submit_bio_start_async_submit_bio_38242 submit_bio_start async_submit_bio 0 38242 NULL
162011 +enable_so_i2400m_bm_cmd_fndecl_38243 i2400m_bm_cmd fndecl 0-5 38243 NULL
162012 +enable_so_init_map_ipmac_fndecl_38246 init_map_ipmac fndecl 5 38246 NULL
162013 +enable_so_get_cell_fndecl_38247 get_cell fndecl 2 38247 NULL
162014 +enable_so_isd200_try_enum_fndecl_38250 isd200_try_enum fndecl 2 38250 NULL nohasharray
162015 +enable_so_name_len_ext2_dir_entry_2_38250 name_len ext2_dir_entry_2 0 38250 &enable_so_isd200_try_enum_fndecl_38250
162016 +enable_so_alloc_hippi_dev_fndecl_38251 alloc_hippi_dev fndecl 1 38251 NULL
162017 +enable_so_ext2_xattr_get_fndecl_38252 ext2_xattr_get fndecl 0 38252 NULL
162018 +enable_so_bdbars_count_intel8x0m_38253 bdbars_count intel8x0m 0 38253 NULL
162019 +enable_so_mwifiex_11n_delba_fndecl_38254 mwifiex_11n_delba fndecl 2 38254 NULL
162020 +enable_so_rsize_nfs_server_38256 rsize nfs_server 0 38256 NULL nohasharray
162021 +enable_so_bLength_usb_cdc_country_functional_desc_38256 bLength usb_cdc_country_functional_desc 0 38256 &enable_so_rsize_nfs_server_38256
162022 +enable_so__osd_req_cdb_len_fndecl_38259 _osd_req_cdb_len fndecl 0 38259 NULL
162023 +enable_so_prepare_header100_fndecl_38275 prepare_header100 fndecl 3-0 38275 NULL nohasharray
162024 +enable_so_amdgpu_cs_parser_create_fndecl_38275 amdgpu_cs_parser_create fndecl 5 38275 &enable_so_prepare_header100_fndecl_38275
162025 +enable_so_min_pnp_port_38276 min pnp_port 0 38276 NULL
162026 +enable_so_irnet_connect_confirm_fndecl_38277 irnet_connect_confirm fndecl 5 38277 NULL
162027 +enable_so_ipath_rcvegrbufsize_ipath_devdata_38283 ipath_rcvegrbufsize ipath_devdata 0 38283 NULL
162028 +enable_so_len_osd_attr_38284 len osd_attr 0 38284 NULL nohasharray
162029 +enable_so_header_length_fw_iso_packet_38284 header_length fw_iso_packet 0 38284 &enable_so_len_osd_attr_38284
162030 +enable_so_pci_cardbus_mem_size_vardecl_38290 pci_cardbus_mem_size vardecl 0 38290 NULL
162031 +enable_so_smk_write_ptrace_fndecl_38294 smk_write_ptrace fndecl 3 38294 NULL
162032 +enable_so_compat_arch_ptrace_fndecl_38298 compat_arch_ptrace fndecl 3 38298 NULL nohasharray
162033 +enable_so_alloc_smp_req_fndecl_38298 alloc_smp_req fndecl 1 38298 &enable_so_compat_arch_ptrace_fndecl_38298
162034 +enable_so_num_kcontrols_snd_soc_dapm_widget_38302 num_kcontrols snd_soc_dapm_widget 0 38302 NULL nohasharray
162035 +enable_so_ipw_get_event_log_len_fndecl_38302 ipw_get_event_log_len fndecl 0 38302 &enable_so_num_kcontrols_snd_soc_dapm_widget_38302
162036 +enable_so_img_width_s5p_mfc_ctx_38303 img_width s5p_mfc_ctx 0 38303 NULL
162037 +enable_so_height_zoran_v4l_settings_38307 height zoran_v4l_settings 0 38307 NULL
162038 +enable_so_bad_peb_count_ubi_attach_info_38310 bad_peb_count ubi_attach_info 0 38310 NULL nohasharray
162039 +enable_so_ath10k_dbg_sta_read_aggr_mode_fndecl_38310 ath10k_dbg_sta_read_aggr_mode fndecl 3 38310 &enable_so_bad_peb_count_ubi_attach_info_38310
162040 +enable_so_ext4_get_block_write_fndecl_38313 ext4_get_block_write fndecl 2 38313 NULL nohasharray
162041 +enable_so_ftid_base_tid_info_38313 ftid_base tid_info 0 38313 &enable_so_ext4_get_block_write_fndecl_38313
162042 +enable_so_nr_siblings_perf_event_38320 nr_siblings perf_event 0 38320 NULL
162043 +enable_so_ob_max_size_mvumi_hba_38327 ob_max_size mvumi_hba 0 38327 NULL
162044 +enable_so_radeon_kms_compat_ioctl_fndecl_38328 radeon_kms_compat_ioctl fndecl 2 38328 NULL
162045 +enable_so_xfs_vn_fiemap_fndecl_38336 xfs_vn_fiemap fndecl 3-4 38336 NULL
162046 +enable_so_iov_len_sg_iovec_38337 iov_len sg_iovec 0 38337 NULL
162047 +enable_so_num_sys_eqs_mlx4_dev_cap_38340 num_sys_eqs mlx4_dev_cap 0 38340 NULL
162048 +enable_so_get_first_ref_fndecl_38342 get_first_ref fndecl 0 38342 NULL
162049 +enable_so_record_size_vardecl_mtdoops_c_38343 record_size vardecl_mtdoops.c 0 38343 NULL
162050 +enable_so_len_nft_data_desc_38346 len nft_data_desc 0 38346 NULL
162051 +enable_so_shim_offset_sst_res_info_38347 shim_offset sst_res_info 0 38347 NULL
162052 +enable_so_pf_fhlen_nfsd4_putfh_38348 pf_fhlen nfsd4_putfh 0 38348 NULL
162053 +enable_so_len_ethtool_regs_38354 len ethtool_regs 0 38354 NULL
162054 +enable_so_xfs_dir3_free_get_buf_fndecl_38355 xfs_dir3_free_get_buf fndecl 2 38355 NULL
162055 +enable_so_rate_snd_soc_dai_38358 rate snd_soc_dai 0 38358 NULL
162056 +enable_so_pci_sriov_resource_alignment_fndecl_38365 pci_sriov_resource_alignment fndecl 0 38365 NULL
162057 +enable_so_flush_buffer_fndecl_38367 flush_buffer fndecl 2 38367 NULL
162058 +enable_so_ieee80211_if_read_dot11MeshHWMPRootMode_fndecl_38370 ieee80211_if_read_dot11MeshHWMPRootMode fndecl 3 38370 NULL
162059 +enable_so_ri_length_gfs2_rindex_38375 ri_length gfs2_rindex 0 38375 NULL
162060 +enable_so_wsm_handle_exception_fndecl_38377 wsm_handle_exception fndecl 3 38377 NULL
162061 +enable_so_options_len_ip_tunnel_info_38380 options_len ip_tunnel_info 0 38380 NULL
162062 +enable_so_dvb_register_frontend_fndecl_38382 dvb_register_frontend fndecl 0 38382 NULL
162063 +enable_so_chrdev_setup_rx_fndecl_38384 chrdev_setup_rx fndecl 2 38384 NULL
162064 +enable_so_blk_register_region_fndecl_38387 blk_register_region fndecl 1-2 38387 NULL
162065 +enable_so_mwifiex_rdeeprom_read_fndecl_38390 mwifiex_rdeeprom_read fndecl 3 38390 NULL
162066 +enable_so_ext4_ext_rm_leaf_fndecl_38397 ext4_ext_rm_leaf fndecl 5 38397 NULL
162067 +enable_so_hfsplus_brec_read_fndecl_38399 hfsplus_brec_read fndecl 0 38399 NULL
162068 +enable_so_ath6kl_sdio_alloc_prep_scat_req_fndecl_38401 ath6kl_sdio_alloc_prep_scat_req fndecl 2 38401 NULL
162069 +enable_so_sl_tclass_flowlabel_mthca_qp_path_38402 sl_tclass_flowlabel mthca_qp_path 0 38402 NULL
162070 +enable_so__c4iw_write_mem_dma_fndecl_38404 _c4iw_write_mem_dma fndecl 3 38404 NULL
162071 +enable_so_parent_offset_isofs_fid_38408 parent_offset isofs_fid 0 38408 NULL
162072 +enable_so_dwc3_mode_write_fndecl_38414 dwc3_mode_write fndecl 3 38414 NULL
162073 +enable_so___rocker_port_mem_alloc_fndecl_38416 __rocker_port_mem_alloc fndecl 4 38416 NULL
162074 +enable_so_xdr_xcode_array2_fndecl_38417 xdr_xcode_array2 fndecl 2 38417 NULL
162075 +enable_so_bond_next_port_mlx4_ib_dev_38423 bond_next_port mlx4_ib_dev 0 38423 NULL nohasharray
162076 +enable_so_read_page_fndecl_38423 read_page fndecl 2 38423 &enable_so_bond_next_port_mlx4_ib_dev_38423 nohasharray
162077 +enable_so_todo_dmxdev_filter_38423 todo dmxdev_filter 0 38423 &enable_so_read_page_fndecl_38423
162078 +enable_so_remap_exception_fndecl_38426 remap_exception fndecl 4 38426 NULL
162079 +enable_so_mwifiex_get_rates_from_cfg80211_fndecl_38427 mwifiex_get_rates_from_cfg80211 fndecl 0 38427 NULL
162080 +enable_so_ide_set_dma_mode_fndecl_38428 ide_set_dma_mode fndecl 2 38428 NULL
162081 +enable_so_lpfc_issue_reg_vfi_fndecl_38430 lpfc_issue_reg_vfi fndecl 0 38430 NULL
162082 +enable_so_m_chunk_size_drxk_state_38431 m_chunk_size drxk_state 0 38431 NULL
162083 +enable_so_num_total_adcs_snd_ice1712_38432 num_total_adcs snd_ice1712 0 38432 NULL
162084 +enable_so_r820t_write_fndecl_38436 r820t_write fndecl 4 38436 NULL
162085 +enable_so_ocfs2_iterate_xattr_buckets_fndecl_38437 ocfs2_iterate_xattr_buckets fndecl 2 38437 NULL
162086 +enable_so_cw1200_sdio_memcpy_toio_fndecl_38442 cw1200_sdio_memcpy_toio fndecl 4 38442 NULL
162087 +enable_so_vxge_rx_alloc_fndecl_38443 vxge_rx_alloc fndecl 3 38443 NULL
162088 +enable_so___ieee80211_tx_skb_tid_band_fndecl_38444 __ieee80211_tx_skb_tid_band fndecl 3 38444 NULL nohasharray
162089 +enable_so_test_ofsh_cyttsp4_sysinfo_data_38444 test_ofsh cyttsp4_sysinfo_data 0 38444 &enable_so___ieee80211_tx_skb_tid_band_fndecl_38444
162090 +enable_so_slave_count_w1_master_38454 slave_count w1_master 0 38454 NULL
162091 +enable_so_tsoffset_tcp_sock_38456 tsoffset tcp_sock 0 38456 NULL
162092 +enable_so_dvb_ringbuffer_avail_fndecl_38474 dvb_ringbuffer_avail fndecl 0 38474 NULL
162093 +enable_so_blocksize_gss_krb5_enctype_38477 blocksize gss_krb5_enctype 0 38477 NULL
162094 +enable_so___fuse_request_alloc_fndecl_38479 __fuse_request_alloc fndecl 1 38479 NULL
162095 +enable_so_min_pfn_mapped_vardecl_init_c_38481 min_pfn_mapped vardecl_init.c 0 38481 NULL
162096 +enable_so_irda_create_fndecl_38489 irda_create fndecl 3 38489 NULL
162097 +enable_so_dma_rx_errors_read_fndecl_38494 dma_rx_errors_read fndecl 3 38494 NULL
162098 +enable_so_copy_block_fndecl_38500 copy_block fndecl 3 38500 NULL
162099 +enable_so_create_rcom_fndecl_38501 create_rcom fndecl 4 38501 NULL nohasharray
162100 +enable_so_info_len_ib_ucm_sidr_rep_38501 info_len ib_ucm_sidr_rep 0 38501 &enable_so_create_rcom_fndecl_38501
162101 +enable_so_nsm_get_handle_fndecl_38506 nsm_get_handle fndecl 4 38506 NULL
162102 +enable_so_udp_recvmsg_fndecl_38509 udp_recvmsg fndecl 3 38509 NULL nohasharray
162103 +enable_so_msdu_len_htt_rx_offload_msdu_38509 msdu_len htt_rx_offload_msdu 0 38509 &enable_so_udp_recvmsg_fndecl_38509
162104 +enable_so_isofs_readpages_fndecl_38512 isofs_readpages fndecl 4 38512 NULL
162105 +enable_so_prepare_merge_dm_exception_store_type_38515 prepare_merge dm_exception_store_type 0 38515 NULL
162106 +enable_so_max_sg_mthca_limits_38517 max_sg mthca_limits 0 38517 NULL
162107 +enable_so_if_broot_bytes_xfs_ifork_38518 if_broot_bytes xfs_ifork 0 38518 NULL
162108 +enable_so_mxuport_process_read_urb_data_fndecl_38523 mxuport_process_read_urb_data fndecl 3 38523 NULL nohasharray
162109 +enable_so_octeon_init_instr_queue_fndecl_38523 octeon_init_instr_queue fndecl 3 38523 &enable_so_mxuport_process_read_urb_data_fndecl_38523
162110 +enable_so_emu_setup_memblk_fndecl_38524 emu_setup_memblk fndecl 5 38524 NULL
162111 +enable_so_set_extent_dirty_fndecl_38529 set_extent_dirty fndecl 3-2 38529 NULL nohasharray
162112 +enable_so_smsdvb_stats_read_fndecl_38529 smsdvb_stats_read fndecl 3 38529 &enable_so_set_extent_dirty_fndecl_38529
162113 +enable_so_max_pde_used_radeon_vm_38536 max_pde_used radeon_vm 0 38536 NULL
162114 +enable_so_amdgpu_sa_bo_manager_init_fndecl_38537 amdgpu_sa_bo_manager_init fndecl 3 38537 NULL
162115 +enable_so_prism2_ap_translate_scan_fndecl_38540 prism2_ap_translate_scan fndecl 0 38540 NULL
162116 +enable_so_cx18_av_read_fndecl_38542 cx18_av_read fndecl 0 38542 NULL
162117 +enable_so_hw_channels_sh_cmt_device_38544 hw_channels sh_cmt_device 0 38544 NULL
162118 +enable_so_clk_fd_set_rate_fndecl_38545 clk_fd_set_rate fndecl 2-3 38545 NULL
162119 +enable_so_ulist_add_merge_fndecl_38547 ulist_add_merge fndecl 0-2 38547 NULL nohasharray
162120 +enable_so_krb5_encrypt_fndecl_38547 krb5_encrypt fndecl 5 38547 &enable_so_ulist_add_merge_fndecl_38547
162121 +enable_so_fb_base_phys_radeonfb_info_38551 fb_base_phys radeonfb_info 0 38551 NULL
162122 +enable_so_set_stream_hw_fndecl_38553 set_stream_hw fndecl 3 38553 NULL nohasharray
162123 +enable_so_tx_win_size_mwifiex_add_ba_param_38553 tx_win_size mwifiex_add_ba_param 0 38553 &enable_so_set_stream_hw_fndecl_38553
162124 +enable_so_o2net_debug_read_fndecl_38554 o2net_debug_read fndecl 3 38554 NULL
162125 +enable_so_rx_max_size_rtl_usb_38560 rx_max_size rtl_usb 0 38560 NULL
162126 +enable_so_ext2_alloc_blocks_fndecl_38562 ext2_alloc_blocks fndecl 2 38562 NULL nohasharray
162127 +enable_so_hysdn_conf_write_fndecl_38562 hysdn_conf_write fndecl 3 38562 &enable_so_ext2_alloc_blocks_fndecl_38562
162128 +enable_so_offset_writequeue_entry_38565 offset writequeue_entry 0 38565 NULL
162129 +enable_so_this_header_vardecl_initramfs_c_38567 this_header vardecl_initramfs.c 0 38567 NULL nohasharray
162130 +enable_so_gfs2_dir_read_leaf_fndecl_38567 gfs2_dir_read_leaf fndecl 5 38567 &enable_so_this_header_vardecl_initramfs_c_38567 nohasharray
162131 +enable_so_htable_size_fndecl_38567 htable_size fndecl 0-1 38567 &enable_so_gfs2_dir_read_leaf_fndecl_38567
162132 +enable_so_memblock_alloc_base_nid_fndecl_38568 memblock_alloc_base_nid fndecl 2-1-0-3 38568 NULL nohasharray
162133 +enable_so_smk_write_load2_fndecl_38568 smk_write_load2 fndecl 3 38568 &enable_so_memblock_alloc_base_nid_fndecl_38568
162134 +enable_so_nvme_major_vardecl_nvme_core_c_38572 nvme_major vardecl_nvme-core.c 0 38572 NULL
162135 +enable_so_setup_dma_urb_38573 setup_dma urb 0 38573 NULL nohasharray
162136 +enable_so_len_port_buffer_38573 len port_buffer 0 38573 &enable_so_setup_dma_urb_38573
162137 +enable_so_block_mtu_hci_dev_38575 block_mtu hci_dev 0 38575 NULL
162138 +enable_so_data_dma_aiptek_38577 data_dma aiptek 0 38577 NULL
162139 +enable_so_rsr_ct_atc_38578 rsr ct_atc 0 38578 NULL nohasharray
162140 +enable_so_bfad_iocmd_port_get_bbcr_attr_fndecl_38578 bfad_iocmd_port_get_bbcr_attr fndecl 0 38578 &enable_so_rsr_ct_atc_38578 nohasharray
162141 +enable_so_retry_count_read_fndecl_38578 retry_count_read fndecl 3 38578 &enable_so_bfad_iocmd_port_get_bbcr_attr_fndecl_38578
162142 +enable_so_usVActive__ATOM_DTD_FORMAT_38581 usVActive _ATOM_DTD_FORMAT 0 38581 NULL
162143 +enable_so_gdm_usb_hci_send_fndecl_38585 gdm_usb_hci_send fndecl 3 38585 NULL
162144 +enable_so_sub_alloc_fndecl_38591 sub_alloc fndecl 0 38591 NULL
162145 +enable_so_print_prefix_fndecl_38595 print_prefix fndecl 0 38595 NULL
162146 +enable_so_set_nfilters_fndecl_38597 set_nfilters fndecl 2 38597 NULL
162147 +enable_so_proc_pid_readlink_fndecl_38601 proc_pid_readlink fndecl 3 38601 NULL
162148 +enable_so_s_cgmask_ufs_sb_private_info_38603 s_cgmask ufs_sb_private_info 0 38603 NULL
162149 +enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 reiserfs_posix_acl_from_disk fndecl 2 38604 NULL nohasharray
162150 +enable_so_v_offset_v2_38604 v offset_v2 0 38604 &enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 nohasharray
162151 +enable_so_maxburst_usb_ep_38604 maxburst usb_ep 0 38604 &enable_so_v_offset_v2_38604
162152 +enable_so_fpWidth_nvidia_par_38605 fpWidth nvidia_par 0 38605 NULL
162153 +enable_so_p_arglen_rpc_procinfo_38611 p_arglen rpc_procinfo 0 38611 NULL
162154 +enable_so_objectid_reiserfs_iget_args_38612 objectid reiserfs_iget_args 0 38612 NULL
162155 +enable_so_mga_compat_ioctl_fndecl_38617 mga_compat_ioctl fndecl 2 38617 NULL
162156 +enable_so_max_wqe_rqe_ocrdma_create_qp_rsp_38618 max_wqe_rqe ocrdma_create_qp_rsp 0 38618 NULL
162157 +enable_so_ieee80211_if_read_dot11MeshRetryTimeout_fndecl_38619 ieee80211_if_read_dot11MeshRetryTimeout fndecl 3 38619 NULL
162158 +enable_so_pageshift_sddr55_card_info_38623 pageshift sddr55_card_info 0 38623 NULL
162159 +enable_so_ar5523_config_multi_fndecl_38630 ar5523_config_multi fndecl 4 38630 NULL
162160 +enable_so_level_kvm_shadow_walk_iterator_38631 level kvm_shadow_walk_iterator 0 38631 NULL
162161 +enable_so_next_burst_len_iscsi_datain_req_38632 next_burst_len iscsi_datain_req 0 38632 NULL nohasharray
162162 +enable_so_iscsi_if_send_reply_fndecl_38632 iscsi_if_send_reply fndecl 7 38632 &enable_so_next_burst_len_iscsi_datain_req_38632
162163 +enable_so_vmci_qp_broker_alloc_fndecl_38635 vmci_qp_broker_alloc fndecl 5-6 38635 NULL
162164 +enable_so_size_bucket_table_38640 size bucket_table 0 38640 NULL
162165 +enable_so_f2fs_seek_block_fndecl_38641 f2fs_seek_block fndecl 2 38641 NULL
162166 +enable_so_uart_offset_pciserial_board_38647 uart_offset pciserial_board 0 38647 NULL nohasharray
162167 +enable_so_max_ssns_csio_fcoe_res_info_38647 max_ssns csio_fcoe_res_info 0 38647 &enable_so_uart_offset_pciserial_board_38647
162168 +enable_so_truncate_pagecache_range_fndecl_38652 truncate_pagecache_range fndecl 2-3 38652 NULL
162169 +enable_so_str_read_fndecl_38656 str_read fndecl 4 38656 NULL
162170 +enable_so_tcp_metrics_hash_log_vardecl_tcp_metrics_c_38657 tcp_metrics_hash_log vardecl_tcp_metrics.c 0 38657 NULL
162171 +enable_so_rx_buffer_len_igbvf_adapter_38659 rx_buffer_len igbvf_adapter 0 38659 NULL
162172 +enable_so_fll_in_wm8900_priv_38661 fll_in wm8900_priv 0 38661 NULL
162173 +enable_so_ext4_setent_fndecl_38662 ext4_setent fndecl 3 38662 NULL
162174 +enable_so_cm4040_read_fndecl_38663 cm4040_read fndecl 3 38663 NULL
162175 +enable_so_hid_parse_report_fndecl_38666 hid_parse_report fndecl 3 38666 NULL
162176 +enable_so_def_bpp_mb862xx_gc_mode_38668 def_bpp mb862xx_gc_mode 0 38668 NULL nohasharray
162177 +enable_so_end_clone_request_fndecl_38668 end_clone_request fndecl 2 38668 &enable_so_def_bpp_mb862xx_gc_mode_38668
162178 +enable_so_tty_cdev_add_fndecl_38673 tty_cdev_add fndecl 2-4 38673 NULL
162179 +enable_so_drm_compat_ioctl_fndecl_38678 drm_compat_ioctl fndecl 2 38678 NULL
162180 +enable_so_v9fs_alloc_rdir_buf_fndecl_38679 v9fs_alloc_rdir_buf fndecl 2 38679 NULL
162181 +enable_so_txq_max_tg3_38686 txq_max tg3 0 38686 NULL
162182 +enable_so_sg_read_oxfer_fndecl_38687 sg_read_oxfer fndecl 3 38687 NULL
162183 +enable_so_sc_uaddr_len_nfs4_setclientid_38689 sc_uaddr_len nfs4_setclientid 0 38689 NULL
162184 +enable_so_len_irda_device_list_38690 len irda_device_list 0 38690 NULL
162185 +enable_so_iio_buffer_add_channel_sysfs_fndecl_38693 iio_buffer_add_channel_sysfs fndecl 0 38693 NULL
162186 +enable_so_ioremap_prot_fndecl_38695 ioremap_prot fndecl 2-1 38695 NULL
162187 +enable_so_bulk_in_ep_irda_usb_cb_38699 bulk_in_ep irda_usb_cb 0 38699 NULL
162188 +enable_so_get_user_pages_fast_fndecl_38708 get_user_pages_fast fndecl 0-1 38708 NULL
162189 +enable_so_cxgbi_ddp_init_fndecl_38714 cxgbi_ddp_init fndecl 4-5 38714 NULL nohasharray
162190 +enable_so_aac_change_queue_depth_fndecl_38714 aac_change_queue_depth fndecl 2 38714 &enable_so_cxgbi_ddp_init_fndecl_38714
162191 +enable_so_ifx_spi_insert_flip_string_fndecl_38715 ifx_spi_insert_flip_string fndecl 3 38715 NULL
162192 +enable_so_free_index_fndecl_38718 free_index fndecl 3 38718 NULL
162193 +enable_so_if_write_fndecl_38719 if_write fndecl 3 38719 NULL
162194 +enable_so_esrt_data_vardecl_esrt_c_38729 esrt_data vardecl_esrt.c 0 38729 NULL
162195 +enable_so_acpi_table_parse_entries_fndecl_38730 acpi_table_parse_entries fndecl 0 38730 NULL
162196 +enable_so_vram_vardecl_lxfb_core_c_38739 vram vardecl_lxfb_core.c 0 38739 NULL
162197 +enable_so___fswab32_fndecl_38742 __fswab32 fndecl 0 38742 NULL
162198 +enable_so_ports_max_wusbhc_38743 ports_max wusbhc 0 38743 NULL
162199 +enable_so___page_file_index_fndecl_38744 __page_file_index fndecl 0 38744 NULL
162200 +enable_so_ds_cc_ravb_ex_rx_desc_38745 ds_cc ravb_ex_rx_desc 0 38745 NULL nohasharray
162201 +enable_so_max_num_clients_vardecl_ntb_transport_c_38745 max_num_clients vardecl_ntb_transport.c 0 38745 &enable_so_ds_cc_ravb_ex_rx_desc_38745
162202 +enable_so_ssd1307fb_alloc_array_fndecl_38751 ssd1307fb_alloc_array fndecl 1 38751 NULL
162203 +enable_so_ts_tlb_preload_count_gru_thread_state_38752 ts_tlb_preload_count gru_thread_state 0 38752 NULL nohasharray
162204 +enable_so_myri10ge_small_bytes_vardecl_myri10ge_c_38752 myri10ge_small_bytes vardecl_myri10ge.c 0 38752 &enable_so_ts_tlb_preload_count_gru_thread_state_38752 nohasharray
162205 +enable_so_length_snd_hwdep_dsp_image_38752 length snd_hwdep_dsp_image 0 38752 &enable_so_myri10ge_small_bytes_vardecl_myri10ge_c_38752
162206 +enable_so_buffer_from_user_fndecl_38753 buffer_from_user fndecl 3 38753 NULL
162207 +enable_so_tag_ctrl_info_amd8111e_rx_dr_38754 tag_ctrl_info amd8111e_rx_dr 0 38754 NULL
162208 +enable_so_t4_max_iq_size_c4iw_hw_queue_38756 t4_max_iq_size c4iw_hw_queue 0 38756 NULL
162209 +enable_so_nr_pages_max_splice_pipe_desc_38758 nr_pages_max splice_pipe_desc 0 38758 NULL
162210 +enable_so_o_height_g2d_frame_38760 o_height g2d_frame 0 38760 NULL
162211 +enable_so_egr_start_sge_38761 egr_start sge 0 38761 NULL
162212 +enable_so_default_advmss_dst_ops_38765 default_advmss dst_ops 0 38765 NULL
162213 +enable_so_az6007_read_fndecl_38771 az6007_read fndecl 6 38771 NULL
162214 +enable_so_inet_gro_complete_fndecl_38772 inet_gro_complete fndecl 2 38772 NULL
162215 +enable_so_qib_alloc_devdata_fndecl_38776 qib_alloc_devdata fndecl 2 38776 NULL
162216 +enable_so_ih_blkno_ocfs2_inode_handle_38779 ih_blkno ocfs2_inode_handle 0 38779 NULL
162217 +enable_so_height_cx231xx_38782 height cx231xx 0 38782 NULL
162218 +enable_so_create_rmp_cmd_fndecl_38783 create_rmp_cmd fndecl 0 38783 NULL
162219 +enable_so_pointer_size_read_fndecl_38788 pointer_size_read fndecl 3 38788 NULL
162220 +enable_so_spi_read_buf_fndecl_38792 spi_read_buf fndecl 2 38792 NULL
162221 +enable_so_get_indirect_ea_fndecl_38798 get_indirect_ea fndecl 4-3 38798 NULL
162222 +enable_so_ioread32_fndecl_38804 ioread32 fndecl 0 38804 NULL nohasharray
162223 +enable_so_size_esb2rom_window_38804 size esb2rom_window 0 38804 &enable_so_ioread32_fndecl_38804 nohasharray
162224 +enable_so_read_file_tgt_tx_stats_fndecl_38804 read_file_tgt_tx_stats fndecl 3 38804 &enable_so_size_esb2rom_window_38804
162225 +enable_so_raw6_getfrag_fndecl_38805 raw6_getfrag fndecl 3-4 38805 NULL
162226 +enable_so_taglen_compound_hdr_38807 taglen compound_hdr 0 38807 NULL
162227 +enable_so_maxpacksize_snd_usX2Y_substream_38808 maxpacksize snd_usX2Y_substream 0 38808 NULL
162228 +enable_so_do_readv_writev_fndecl_38810 do_readv_writev fndecl 4 38810 NULL
162229 +enable_so_pad_ib_mad_send_wr_private_38811 pad ib_mad_send_wr_private 0 38811 NULL
162230 +enable_so_vlan_tci_sk_buff_38825 vlan_tci sk_buff 0 38825 NULL
162231 +enable_so_algorithm_r5conf_38831 algorithm r5conf 0 38831 NULL
162232 +enable_so_count_hfs_extent_38834 count hfs_extent 0 38834 NULL
162233 +enable_so_user_read_fndecl_38842 user_read fndecl 3 38842 NULL
162234 +enable_so_do_fault_fndecl_38845 do_fault fndecl 3 38845 NULL
162235 +enable_so_memblock_alloc_fndecl_38847 memblock_alloc fndecl 2-1 38847 NULL
162236 +enable_so_logfs_fsync_fndecl_38849 logfs_fsync fndecl 2-3 38849 NULL
162237 +enable_so_datablob_len_encrypted_key_payload_38850 datablob_len encrypted_key_payload 0 38850 NULL
162238 +enable_so_srs_nslot_sptlrpc_rule_set_38854 srs_nslot sptlrpc_rule_set 0 38854 NULL
162239 +enable_so_count_ixgbevf_ring_38867 count ixgbevf_ring 0 38867 NULL
162240 +enable_so_sectors_per_track_mspro_devinfo_38870 sectors_per_track mspro_devinfo 0 38870 NULL
162241 +enable_so_mask_mthca_alloc_38874 mask mthca_alloc 0 38874 NULL nohasharray
162242 +enable_so_if_sdio_handle_data_fndecl_38874 if_sdio_handle_data fndecl 3 38874 &enable_so_mask_mthca_alloc_38874
162243 +enable_so_wmi_set_ie_fndecl_38876 wmi_set_ie fndecl 3 38876 NULL
162244 +enable_so_mmc_spi_skip_fndecl_38879 mmc_spi_skip fndecl 3-0 38879 NULL nohasharray
162245 +enable_so_error_dvb_ringbuffer_38879 error dvb_ringbuffer 0 38879 &enable_so_mmc_spi_skip_fndecl_38879
162246 +enable_so_static_prio_task_struct_38880 static_prio task_struct 0 38880 NULL
162247 +enable_so_atalk_route_packet_fndecl_38886 atalk_route_packet fndecl 4-5 38886 NULL
162248 +enable_so_read_dummy_spi_nor_38888 read_dummy spi_nor 0 38888 NULL
162249 +enable_so_num_bna_intr_info_38889 num bna_intr_info 0 38889 NULL
162250 +enable_so_beb_rsvd_level_ubi_device_38898 beb_rsvd_level ubi_device 0 38898 NULL nohasharray
162251 +enable_so_reg_phys_intel_iommu_38898 reg_phys intel_iommu 0 38898 &enable_so_beb_rsvd_level_ubi_device_38898
162252 +enable_so_sg_width_mvs_chip_info_38900 sg_width mvs_chip_info 0 38900 NULL
162253 +enable_so_wr_buflen_nfsd4_write_38903 wr_buflen nfsd4_write 0 38903 NULL
162254 +enable_so_generic_elem_len_local_info_38904 generic_elem_len local_info 0 38904 NULL
162255 +enable_so_surface_bpp_drm_fb_helper_surface_size_38906 surface_bpp drm_fb_helper_surface_size 0 38906 NULL
162256 +enable_so_vid_batadv_tvlv_tt_change_38907 vid batadv_tvlv_tt_change 0 38907 NULL
162257 +enable_so_dst_ci_command_fndecl_38908 dst_ci_command fndecl 4 38908 NULL nohasharray
162258 +enable_so_scsi_get_vpd_page_fndecl_38908 scsi_get_vpd_page fndecl 4 38908 &enable_so_dst_ci_command_fndecl_38908
162259 +enable_so_pgctrl_write_fndecl_38918 pgctrl_write fndecl 3 38918 NULL
162260 +enable_so_qlcnic_diag_free_res_fndecl_38922 qlcnic_diag_free_res fndecl 2 38922 NULL
162261 +enable_so_max_window_tcp_sock_38923 max_window tcp_sock 0 38923 NULL
162262 +enable_so_data_size_ms_system_item_38924 data_size ms_system_item 0 38924 NULL
162263 +enable_so_usb_sg_init_fndecl_38925 usb_sg_init fndecl 7-3-6 38925 NULL nohasharray
162264 +enable_so_num_txqs_octeon_nic_if_config_38925 num_txqs octeon_nic_if_config 0 38925 &enable_so_usb_sg_init_fndecl_38925
162265 +enable_so_refresh_drm_cmdline_mode_38926 refresh drm_cmdline_mode 0 38926 NULL
162266 +enable_so_seek_holedata_direct_fndecl_38928 seek_holedata_direct fndecl 0-2 38928 NULL
162267 +enable_so_tx_queues_vardecl_bond_main_c_38932 tx_queues vardecl_bond_main.c 0 38932 NULL
162268 +enable_so_fdt_open_into_fndecl_38935 fdt_open_into fndecl 3 38935 NULL
162269 +enable_so_qib_restart_rc_fndecl_38939 qib_restart_rc fndecl 2 38939 NULL
162270 +enable_so_depth_cx231xx_fmt_38940 depth cx231xx_fmt 0 38940 NULL
162271 +enable_so_pcm_open_fndecl_38941 pcm_open fndecl 2 38941 NULL
162272 +enable_so_ecryptfs_write_lower_page_segment_fndecl_38943 ecryptfs_write_lower_page_segment fndecl 4 38943 NULL
162273 +enable_so_drm_fb_helper_sys_write_fndecl_38945 drm_fb_helper_sys_write fndecl 3 38945 NULL
162274 +enable_so_sc_page_off_o2net_sock_container_38950 sc_page_off o2net_sock_container 0 38950 NULL
162275 +enable_so_in_length_nd_cmd_set_config_hdr_38954 in_length nd_cmd_set_config_hdr 0 38954 NULL
162276 +enable_so_of_irq_parse_one_fndecl_38957 of_irq_parse_one fndecl 0 38957 NULL
162277 +enable_so_tcp_copied_sock_xprt_38964 tcp_copied sock_xprt 0 38964 NULL
162278 +enable_so_uregbase_qib_devdata_38972 uregbase qib_devdata 0 38972 NULL nohasharray
162279 +enable_so_wm8350_register_regulator_fndecl_38972 wm8350_register_regulator fndecl 2 38972 &enable_so_uregbase_qib_devdata_38972
162280 +enable_so_cdrom_read_cdda_fndecl_38973 cdrom_read_cdda fndecl 4 38973 NULL
162281 +enable_so_register_buffer_fndecl_38990 register_buffer fndecl 3 38990 NULL
162282 +enable_so_hsc_read_fndecl_38991 hsc_read fndecl 3 38991 NULL
162283 +enable_so_pcm_buf_elapsed_dma_ofs_snd_card_asihpi_pcm_38998 pcm_buf_elapsed_dma_ofs snd_card_asihpi_pcm 0 38998 NULL
162284 +enable_so_maxqlen_vardecl_seq_oss_init_c_39001 maxqlen vardecl_seq_oss_init.c 0 39001 NULL
162285 +enable_so_sh_mmcif_data_trans_fndecl_39002 sh_mmcif_data_trans fndecl 0 39002 NULL nohasharray
162286 +enable_so_pwr_rcvd_awake_beacons_read_fndecl_39002 pwr_rcvd_awake_beacons_read fndecl 3 39002 &enable_so_sh_mmcif_data_trans_fndecl_39002
162287 +enable_so_tlv_len_nfc_llcp_sdp_tlv_39007 tlv_len nfc_llcp_sdp_tlv 0 39007 NULL
162288 +enable_so_dram_end_intel_sst_drv_39008 dram_end intel_sst_drv 0 39008 NULL
162289 +enable_so_xfs_dialloc_ag_inobt_fndecl_39015 xfs_dialloc_ag_inobt fndecl 3 39015 NULL nohasharray
162290 +enable_so_trigger_request_store_fndecl_39015 trigger_request_store fndecl 4 39015 &enable_so_xfs_dialloc_ag_inobt_fndecl_39015
162291 +enable_so_usbat_flash_write_data_fndecl_39018 usbat_flash_write_data fndecl 4 39018 NULL
162292 +enable_so_dlfb_submit_urb_fndecl_39028 dlfb_submit_urb fndecl 3 39028 NULL
162293 +enable_so_alloc_send_rmpp_list_fndecl_39029 alloc_send_rmpp_list fndecl 2 39029 NULL
162294 +enable_so_at25_ee_read_fndecl_39032 at25_ee_read fndecl 3-4 39032 NULL nohasharray
162295 +enable_so_video_pbase_osd_info_39032 video_pbase osd_info 0 39032 &enable_so_at25_ee_read_fndecl_39032 nohasharray
162296 +enable_so_ath6kl_set_ap_probe_resp_ies_fndecl_39032 ath6kl_set_ap_probe_resp_ies fndecl 3 39032 &enable_so_video_pbase_osd_info_39032
162297 +enable_so_fwnet_receive_packet_fndecl_39034 fwnet_receive_packet fndecl 9 39034 NULL
162298 +enable_so_error_burst_mismatch_read_fndecl_39035 error_burst_mismatch_read fndecl 3 39035 NULL
162299 +enable_so_reserve_st_proto_s_39036 reserve st_proto_s 0 39036 NULL
162300 +enable_so_free_ubifs_lprops_39039 free ubifs_lprops 0 39039 NULL
162301 +enable_so_fat_readpages_fndecl_39045 fat_readpages fndecl 4 39045 NULL nohasharray
162302 +enable_so_pep_reply_fndecl_39045 pep_reply fndecl 5 39045 &enable_so_fat_readpages_fndecl_39045
162303 +enable_so_iwl_dbgfs_missed_beacon_read_fndecl_39051 iwl_dbgfs_missed_beacon_read fndecl 3 39051 NULL
162304 +enable_so_num_ports_u132_39052 num_ports u132 0 39052 NULL
162305 +enable_so_ttm_agp_tt_create_fndecl_39056 ttm_agp_tt_create fndecl 3 39056 NULL nohasharray
162306 +enable_so_get_key_fscache_cookie_def_39056 get_key fscache_cookie_def 0 39056 &enable_so_ttm_agp_tt_create_fndecl_39056
162307 +enable_so_ncp_fsync_fndecl_39057 ncp_fsync fndecl 2-3 39057 NULL
162308 +enable_so_frameLen_rx_desc_39058 frameLen rx_desc 0 39058 NULL nohasharray
162309 +enable_so_minor_gigaset_driver_39058 minor gigaset_driver 0 39058 &enable_so_frameLen_rx_desc_39058
162310 +enable_so_send_set_xattr_fndecl_39062 send_set_xattr fndecl 6-4 39062 NULL
162311 +enable_so_n_buckets_bpf_htab_39067 n_buckets bpf_htab 0 39067 NULL
162312 +enable_so_iscsit_handle_immediate_data_fndecl_39071 iscsit_handle_immediate_data fndecl 3 39071 NULL
162313 +enable_so_max_rules_crush_map_39073 max_rules crush_map 0 39073 NULL
162314 +enable_so_usbatm_write_cells_fndecl_39074 usbatm_write_cells fndecl 0 39074 NULL
162315 +enable_so_block_id_ms_boot_header_39075 block_id ms_boot_header 0 39075 NULL
162316 +enable_so_frame_len_b43_rxhdr_fw4_39076 frame_len b43_rxhdr_fw4 0 39076 NULL
162317 +enable_so_inode_sysv_dir_entry_39082 inode sysv_dir_entry 0 39082 NULL
162318 +enable_so_sparse_early_usemaps_alloc_node_fndecl_39084 sparse_early_usemaps_alloc_node fndecl 4 39084 NULL
162319 +enable_so_msb_run_state_machine_fndecl_39085 msb_run_state_machine fndecl 0 39085 NULL
162320 +enable_so_pop_mpls_fndecl_39086 pop_mpls fndecl 3 39086 NULL
162321 +enable_so_sge_rx_fndecl_39089 sge_rx fndecl 3 39089 NULL
162322 +enable_so_d0_vring_rx_dma_39093 d0 vring_rx_dma 0 39093 NULL
162323 +enable_so_negotiate_rsize_smb_version_operations_39094 negotiate_rsize smb_version_operations 0 39094 NULL
162324 +enable_so_xillybus_write_fndecl_39102 xillybus_write fndecl 3 39102 NULL
162325 +enable_so_grow_zone_span_fndecl_39112 grow_zone_span fndecl 2-3 39112 NULL nohasharray
162326 +enable_so_audio_ins_vx_core_39112 audio_ins vx_core 0 39112 &enable_so_grow_zone_span_fndecl_39112
162327 +enable_so_array_size_drm_vmw_gb_surface_create_req_39114 array_size drm_vmw_gb_surface_create_req 0 39114 NULL
162328 +enable_so_bg_bits_ocfs2_group_desc_39116 bg_bits ocfs2_group_desc 0 39116 NULL
162329 +enable_so_fat_direct_IO_fndecl_39117 fat_direct_IO fndecl 3 39117 NULL
162330 +enable_so_rds_ib_sysctl_max_send_wr_vardecl_39120 rds_ib_sysctl_max_send_wr vardecl 0 39120 NULL
162331 +enable_so_rl_namelen_rcom_lock_39122 rl_namelen rcom_lock 0 39122 NULL
162332 +enable_so_user_block_count_mspro_sys_info_39124 user_block_count mspro_sys_info 0 39124 NULL
162333 +enable_so_bytes_per_datum_iio_buffer_39125 bytes_per_datum iio_buffer 0 39125 NULL
162334 +enable_so_calc_memmap_size_fndecl_39130 calc_memmap_size fndecl 0-2-1 39130 NULL nohasharray
162335 +enable_so_l2t_end_adapter_39130 l2t_end adapter 0 39130 &enable_so_calc_memmap_size_fndecl_39130 nohasharray
162336 +enable_so_simple_transaction_get_fndecl_39130 simple_transaction_get fndecl 3 39130 &enable_so_l2t_end_adapter_39130
162337 +enable_so_syst_pa_vardecl_sfi_core_c_39133 syst_pa vardecl_sfi_core.c 0 39133 NULL
162338 +enable_so_ceph_build_auth_request_fndecl_39135 ceph_build_auth_request fndecl 0 39135 NULL
162339 +enable_so_system_sample_rate_hdsp_39140 system_sample_rate hdsp 0 39140 NULL
162340 +enable_so_drvr_sglimit_blogic_adapter_39142 drvr_sglimit blogic_adapter 0 39142 NULL
162341 +enable_so_mlx4_set_path_fndecl_39148 mlx4_set_path fndecl 6 39148 NULL
162342 +enable_so_mmc_test_buffer_transfer_fndecl_39150 mmc_test_buffer_transfer fndecl 4 39150 NULL
162343 +enable_so_raid56_parity_alloc_scrub_rbio_fndecl_39153 raid56_parity_alloc_scrub_rbio fndecl 4 39153 NULL
162344 +enable_so_port_srpt_port_39154 port srpt_port 0 39154 NULL
162345 +enable_so_size_intel_initial_plane_config_39155 size intel_initial_plane_config 0 39155 NULL
162346 +enable_so_log_root_btrfs_super_block_39157 log_root btrfs_super_block 0 39157 NULL
162347 +enable_so_fcoe_start_cid_cnic_local_39162 fcoe_start_cid cnic_local 0 39162 NULL
162348 +enable_so_ath6kl_tm_rx_event_fndecl_39163 ath6kl_tm_rx_event fndecl 3 39163 NULL nohasharray
162349 +enable_so_sys_readv_fndecl_39163 sys_readv fndecl 3 39163 &enable_so_ath6kl_tm_rx_event_fndecl_39163
162350 +enable_so_num_mcg_mlx4_profile_39164 num_mcg mlx4_profile 0 39164 NULL
162351 +enable_so_ext2_try_to_allocate_with_rsv_fndecl_39166 ext2_try_to_allocate_with_rsv fndecl 0-4 39166 NULL
162352 +enable_so_ast_gem_create_fndecl_39167 ast_gem_create fndecl 2 39167 NULL
162353 +enable_so_blf_len_xfs_buf_log_format_39169 blf_len xfs_buf_log_format 0 39169 NULL
162354 +enable_so_qsize_inet_frags_39172 qsize inet_frags 0 39172 NULL nohasharray
162355 +enable_so_lib80211_michael_mic_verify_fndecl_39172 lib80211_michael_mic_verify fndecl 3 39172 &enable_so_qsize_inet_frags_39172
162356 +enable_so_cfg80211_roamed_bss_fndecl_39173 cfg80211_roamed_bss fndecl 4-6 39173 NULL
162357 +enable_so_cyttsp4_probe_fndecl_39178 cyttsp4_probe fndecl 4 39178 NULL
162358 +enable_so_l2cap_sock_setsockopt_fndecl_39180 l2cap_sock_setsockopt fndecl 5 39180 NULL
162359 +enable_so_mthca_buddy_init_fndecl_39181 mthca_buddy_init fndecl 2 39181 NULL
162360 +enable_so_skb_put_fndecl_39184 skb_put fndecl 2 39184 NULL
162361 +enable_so_ttymajor_vardecl_mxser_c_39193 ttymajor vardecl_mxser.c 0 39193 NULL
162362 +enable_so_udc_create_dma_chain_fndecl_39194 udc_create_dma_chain fndecl 3 39194 NULL
162363 +enable_so_maxentry_xtheader_39202 maxentry xtheader 0 39202 NULL
162364 +enable_so_port_num_ib_mad_agent_39205 port_num ib_mad_agent 0 39205 NULL
162365 +enable_so_mon_bin_compat_ioctl_fndecl_39209 mon_bin_compat_ioctl fndecl 3 39209 NULL
162366 +enable_so_len_vmci_datagram_snd_rcv_info_39211 len vmci_datagram_snd_rcv_info 0 39211 NULL
162367 +enable_so_ieee80211_skb_resize_fndecl_39216 ieee80211_skb_resize fndecl 3 39216 NULL
162368 +enable_so_num_gpu_pages_amdgpu_gart_39218 num_gpu_pages amdgpu_gart 0 39218 NULL
162369 +enable_so_lpfc_bg_setup_bpl_prot_fndecl_39221 lpfc_bg_setup_bpl_prot fndecl 0 39221 NULL
162370 +enable_so_seq_buf_to_user_fndecl_39222 seq_buf_to_user fndecl 3 39222 NULL
162371 +enable_so_max_reqs_kioctx_39227 max_reqs kioctx 0 39227 NULL
162372 +enable_so_forw_xfs_da_blkinfo_39230 forw xfs_da_blkinfo 0 39230 NULL
162373 +enable_so_vlan_dev_hard_header_fndecl_39236 vlan_dev_hard_header fndecl 3-6 39236 NULL
162374 +enable_so_afs_extract_data_fndecl_39238 afs_extract_data fndecl 5 39238 NULL
162375 +enable_so_sel_start_vardecl_selection_c_39245 sel_start vardecl_selection.c 0 39245 NULL
162376 +enable_so_ext_clock_aptina_pll_39246 ext_clock aptina_pll 0 39246 NULL
162377 +enable_so_remote_mps_l2cap_chan_39250 remote_mps l2cap_chan 0 39250 NULL nohasharray
162378 +enable_so_mon_buff_area_fill_fndecl_39250 mon_buff_area_fill fndecl 3 39250 &enable_so_remote_mps_l2cap_chan_39250
162379 +enable_so_sg_kmalloc_fndecl_39251 sg_kmalloc fndecl 1 39251 NULL
162380 +enable_so_data_offset_napi_gro_cb_39263 data_offset napi_gro_cb 0 39263 NULL
162381 +enable_so_fdt_get_phandle_fndecl_39273 fdt_get_phandle fndecl 2 39273 NULL
162382 +enable_so_sky2_rx_tag_fndecl_39276 sky2_rx_tag fndecl 2 39276 NULL
162383 +enable_so_soc_codec_reg_show_fndecl_39277 soc_codec_reg_show fndecl 0-3 39277 NULL
162384 +enable_so_idata_dma_usb_xpad_39278 idata_dma usb_xpad 0 39278 NULL
162385 +enable_so_size_tomoyo_condition_39281 size tomoyo_condition 0 39281 NULL
162386 +enable_so_find_parent_nodes_fndecl_39282 find_parent_nodes fndecl 3 39282 NULL
162387 +enable_so_rxrpc_setsockopt_fndecl_39293 rxrpc_setsockopt fndecl 5 39293 NULL
162388 +enable_so_page_size_msb_data_39297 page_size msb_data 0 39297 NULL nohasharray
162389 +enable_so_encoding_p_compressed_bm_39297 encoding p_compressed_bm 0 39297 &enable_so_page_size_msb_data_39297 nohasharray
162390 +enable_so_max_vfi_lpfc_max_cfg_param_39297 max_vfi lpfc_max_cfg_param 0 39297 &enable_so_encoding_p_compressed_bm_39297
162391 +enable_so_sel_make_perm_files_fndecl_39298 sel_make_perm_files fndecl 2 39298 NULL
162392 +enable_so_m5mols_read_u16_fndecl_39305 m5mols_read_u16 fndecl 2 39305 NULL
162393 +enable_so_do_launder_page_fndecl_39306 do_launder_page fndecl 0 39306 NULL
162394 +enable_so_lpfc_idiag_pcicfg_read_fndecl_39309 lpfc_idiag_pcicfg_read fndecl 3 39309 NULL
162395 +enable_so_SYSC_flistxattr_fndecl_39312 SYSC_flistxattr fndecl 3 39312 NULL
162396 +enable_so_e820_end_of_ram_pfn_fndecl_39315 e820_end_of_ram_pfn fndecl 0 39315 NULL nohasharray
162397 +enable_so_rio_request_outb_dbell_fndecl_39315 rio_request_outb_dbell fndecl 3-2 39315 &enable_so_e820_end_of_ram_pfn_fndecl_39315
162398 +enable_so_SYSC_sched_setaffinity_fndecl_39317 SYSC_sched_setaffinity fndecl 2 39317 NULL
162399 +enable_so_len_buflist_39320 len buflist 0 39320 NULL
162400 +enable_so_depth_tw68_format_39322 depth tw68_format 0 39322 NULL
162401 +enable_so_soc_camera_read_fndecl_39324 soc_camera_read fndecl 3 39324 NULL nohasharray
162402 +enable_so_ri_data_gfs2_rindex_39324 ri_data gfs2_rindex 0 39324 &enable_so_soc_camera_read_fndecl_39324 nohasharray
162403 +enable_so_rx_dataoffset_brcmf_msgbuf_39324 rx_dataoffset brcmf_msgbuf 0 39324 &enable_so_ri_data_gfs2_rindex_39324
162404 +enable_so_size_bts_action_39331 size bts_action 0 39331 NULL
162405 +enable_so_page_jfs_log_39335 page jfs_log 0 39335 NULL nohasharray
162406 +enable_so_isdn_ppp_read_fndecl_39335 isdn_ppp_read fndecl 4 39335 &enable_so_page_jfs_log_39335
162407 +enable_so_nilfs_sufile_segment_usages_in_block_fndecl_39336 nilfs_sufile_segment_usages_in_block fndecl 0-2-3 39336 NULL
162408 +enable_so_tx_pipe_brcmf_usbdev_info_39337 tx_pipe brcmf_usbdev_info 0 39337 NULL nohasharray
162409 +enable_so_num_channels_hw_mode_spec_39337 num_channels hw_mode_spec 0 39337 &enable_so_tx_pipe_brcmf_usbdev_info_39337 nohasharray
162410 +enable_so_iwl_dbgfs_echo_test_write_fndecl_39337 iwl_dbgfs_echo_test_write fndecl 3 39337 &enable_so_num_channels_hw_mode_spec_39337
162411 +enable_so_musb_softconnect_write_fndecl_39339 musb_softconnect_write fndecl 3 39339 NULL
162412 +enable_so_setbrightness_fndecl_39342 setbrightness fndecl 0 39342 NULL
162413 +enable_so_svc_create_fndecl_39343 svc_create fndecl 2 39343 NULL
162414 +enable_so_nhead_offs_ubifs_info_39346 nhead_offs ubifs_info 0 39346 NULL
162415 +enable_so_root_offs_ubifs_mst_node_39347 root_offs ubifs_mst_node 0 39347 NULL
162416 +enable_so_ksm_might_need_to_copy_fndecl_39350 ksm_might_need_to_copy fndecl 3 39350 NULL
162417 +enable_so_efs_validate_vh_fndecl_39352 efs_validate_vh fndecl 0 39352 NULL
162418 +enable_so_nsize_jffs2_sum_dirent_mem_39355 nsize jffs2_sum_dirent_mem 0 39355 NULL nohasharray
162419 +enable_so_tpm_read_fndecl_39355 tpm_read fndecl 3 39355 &enable_so_nsize_jffs2_sum_dirent_mem_39355
162420 +enable_so_hub_status_data_hc_driver_39357 hub_status_data hc_driver 0 39357 NULL nohasharray
162421 +enable_so_rbd_obj_request_create_fndecl_39357 rbd_obj_request_create fndecl 3-2 39357 &enable_so_hub_status_data_hc_driver_39357
162422 +enable_so_max_sge_hfi1_rq_39362 max_sge hfi1_rq 0 39362 NULL
162423 +enable_so_tx_ndp_modulus_cdc_ncm_ctx_39369 tx_ndp_modulus cdc_ncm_ctx 0 39369 NULL
162424 +enable_so_nftl_read_oob_fndecl_39370 nftl_read_oob fndecl 2-3 39370 NULL
162425 +enable_so_num_frames_camera_data_39372 num_frames camera_data 0 39372 NULL
162426 +enable_so_length_btrfs_ioctl_same_args_39374 length btrfs_ioctl_same_args 0 39374 NULL
162427 +enable_so_roccat_common2_receive_fndecl_39378 roccat_common2_receive fndecl 4 39378 NULL
162428 +enable_so_vsi_fshino_vxfs_sb_info_39379 vsi_fshino vxfs_sb_info 0 39379 NULL
162429 +enable_so_height_v4l2_mbus_framefmt_39383 height v4l2_mbus_framefmt 0 39383 NULL
162430 +enable_so_tx_count_ethtool_channels_39384 tx_count ethtool_channels 0 39384 NULL nohasharray
162431 +enable_so_from_offset_text_match_39384 from_offset text_match 0 39384 &enable_so_tx_count_ethtool_channels_39384
162432 +enable_so_lfb_depth_screen_info_39385 lfb_depth screen_info 0 39385 NULL
162433 +enable_so_read16_ssb_bus_ops_39388 read16 ssb_bus_ops 0 39388 NULL
162434 +enable_so_sl_alloc_bufs_fndecl_39391 sl_alloc_bufs fndecl 2 39391 NULL
162435 +enable_so___page_set_anon_rmap_fndecl_39401 __page_set_anon_rmap fndecl 3 39401 NULL
162436 +enable_so_iscsi_create_conn_fndecl_39402 iscsi_create_conn fndecl 2 39402 NULL
162437 +enable_so_userptr_radeon_ttm_tt_39408 userptr radeon_ttm_tt 0 39408 NULL
162438 +enable_so_total_vfs_fm10k_iov_info_39412 total_vfs fm10k_iov_info 0 39412 NULL
162439 +enable_so_payld_len_htc_frame_hdr_39418 payld_len htc_frame_hdr 0 39418 NULL
162440 +enable_so_vramsize_sisusb_usb_data_39419 vramsize sisusb_usb_data 0 39419 NULL
162441 +enable_so_board_sample_rate_lx6464es_39420 board_sample_rate lx6464es 0 39420 NULL nohasharray
162442 +enable_so_stretch_height_usb_usbvision_39420 stretch_height usb_usbvision 0 39420 &enable_so_board_sample_rate_lx6464es_39420
162443 +enable_so_read_eeprom_fndecl_39423 read_eeprom fndecl 4 39423 NULL
162444 +enable_so_cros_ec_spi_receive_response_fndecl_39426 cros_ec_spi_receive_response fndecl 2 39426 NULL
162445 +enable_so_nftl_writeblock_fndecl_39428 nftl_writeblock fndecl 2 39428 NULL
162446 +enable_so_jpeg_len_solo_enc_dev_39431 jpeg_len solo_enc_dev 0 39431 NULL
162447 +enable_so_btrfs_del_csums_fndecl_39434 btrfs_del_csums fndecl 3-4 39434 NULL
162448 +enable_so_ring_size__drm_i810_init_39437 ring_size _drm_i810_init 0 39437 NULL nohasharray
162449 +enable_so_iov_len_iovec_39437 iov_len iovec 0 39437 &enable_so_ring_size__drm_i810_init_39437
162450 +enable_so_show_device_status_fndecl_39440 show_device_status fndecl 0 39440 NULL
162451 +enable_so_virtio_cread16_fndecl_39444 virtio_cread16 fndecl 0 39444 NULL
162452 +enable_so_tp_la_write_fndecl_39445 tp_la_write fndecl 3 39445 NULL
162453 +enable_so_sdio_uart_write_fndecl_39449 sdio_uart_write fndecl 3 39449 NULL
162454 +enable_so_zl10036_write_fndecl_39451 zl10036_write fndecl 3 39451 NULL nohasharray
162455 +enable_so_ocfs2_add_refcount_flag_fndecl_39451 ocfs2_add_refcount_flag fndecl 6-7-5 39451 &enable_so_zl10036_write_fndecl_39451
162456 +enable_so_SyS_setxattr_fndecl_39454 SyS_setxattr fndecl 4 39454 NULL
162457 +enable_so_recovery_cp_mddev_39459 recovery_cp mddev 0 39459 NULL
162458 +enable_so_security_load_policy_fndecl_39462 security_load_policy fndecl 2 39462 NULL
162459 +enable_so_proc_write_fndecl_39464 proc_write fndecl 3 39464 NULL
162460 +enable_so_LMC_PKT_BUF_SZ_vardecl_lmc_main_c_39465 LMC_PKT_BUF_SZ vardecl_lmc_main.c 0 39465 NULL
162461 +enable_so_num_buffers_vardecl_cpia2_v4l_c_39466 num_buffers vardecl_cpia2_v4l.c 0 39466 NULL
162462 +enable_so_max_count_octeon_droq_39475 max_count octeon_droq 0 39475 NULL
162463 +enable_so_iwl_statistics_flag_fndecl_39478 iwl_statistics_flag fndecl 0 39478 NULL
162464 +enable_so_qib_verbs_send_pio_fndecl_39482 qib_verbs_send_pio fndecl 5 39482 NULL
162465 +enable_so_address_length_acpi_resource_fixed_memory32_39483 address_length acpi_resource_fixed_memory32 0 39483 NULL
162466 +enable_so_iov_iter_bvec_fndecl_39493 iov_iter_bvec fndecl 5-4 39493 NULL
162467 +enable_so_fuse_conn_congestion_threshold_read_fndecl_39495 fuse_conn_congestion_threshold_read fndecl 3 39495 NULL
162468 +enable_so_network_header_len_dwceqos_tx_39500 network_header_len dwceqos_tx 0 39500 NULL
162469 +enable_so_map_rq_target_type_39503 map_rq target_type 0 39503 NULL
162470 +enable_so_pktdev_major_vardecl_pktcdvd_c_39506 pktdev_major vardecl_pktcdvd.c 0 39506 NULL
162471 +enable_so_rds_iw_sysctl_max_recv_wr_vardecl_39508 rds_iw_sysctl_max_recv_wr vardecl 0 39508 NULL
162472 +enable_so_ppp_read_fndecl_39514 ppp_read fndecl 3 39514 NULL
162473 +enable_so_lbs_dev_info_fndecl_39516 lbs_dev_info fndecl 3 39516 NULL
162474 +enable_so_error_tx_resume_failure_read_fndecl_39521 error_tx_resume_failure_read fndecl 3 39521 NULL
162475 +enable_so_len_batadv_tvlv_hdr_39527 len batadv_tvlv_hdr 0 39527 NULL nohasharray
162476 +enable_so_txsize_grcan_device_config_39527 txsize grcan_device_config 0 39527 &enable_so_len_batadv_tvlv_hdr_39527
162477 +enable_so_rsc_mgr_init_fndecl_39528 rsc_mgr_init fndecl 3 39528 NULL
162478 +enable_so_wusb_prf_64_fndecl_39530 wusb_prf_64 fndecl 7 39530 NULL
162479 +enable_so_num_queues_bnx2x_39531 num_queues bnx2x 0 39531 NULL
162480 +enable_so_reply_len_bsg_job_39533 reply_len bsg_job 0 39533 NULL
162481 +enable_so_hugepage_add_new_anon_rmap_fndecl_39534 hugepage_add_new_anon_rmap fndecl 3 39534 NULL
162482 +enable_so_srpt_alloc_ioctx_fndecl_39537 srpt_alloc_ioctx fndecl 2-3 39537 NULL
162483 +enable_so_elem_size_v4l2_ctrl_39540 elem_size v4l2_ctrl 0 39540 NULL
162484 +enable_so_sqn_mlx5e_sq_39542 sqn mlx5e_sq 0 39542 NULL
162485 +enable_so_do_arpt_set_ctl_fndecl_39550 do_arpt_set_ctl fndecl 4 39550 NULL
162486 +enable_so_kaweth_internal_control_msg_fndecl_39552 kaweth_internal_control_msg fndecl 5-2 39552 NULL nohasharray
162487 +enable_so_do_trim_fndecl_39552 do_trim fndecl 4-5-3-2 39552 &enable_so_kaweth_internal_control_msg_fndecl_39552
162488 +enable_so_from_fw_map_39555 from fw_map 0 39555 NULL nohasharray
162489 +enable_so_jbd2_journal_init_revoke_fndecl_39555 jbd2_journal_init_revoke fndecl 2 39555 &enable_so_from_fw_map_39555
162490 +enable_so_l2specific_len_l2tp_session_39558 l2specific_len l2tp_session 0 39558 NULL
162491 +enable_so_build_backref_tree_fndecl_39561 build_backref_tree fndecl 4 39561 NULL nohasharray
162492 +enable_so_ci_flags_ext4_crypt_info_39561 ci_flags ext4_crypt_info 0 39561 &enable_so_build_backref_tree_fndecl_39561
162493 +enable_so___ocfs2_find_path_fndecl_39563 __ocfs2_find_path fndecl 0 39563 NULL
162494 +enable_so_disk_size_disk_conf_39567 disk_size disk_conf 0 39567 NULL
162495 +enable_so_qp_table_size_hfi1_qp_ibdev_39571 qp_table_size hfi1_qp_ibdev 0 39571 NULL
162496 +enable_so_sys32_pwrite_fndecl_39572 sys32_pwrite fndecl 3 39572 NULL
162497 +enable_so_oh_len_omninet_header_39576 oh_len omninet_header 0 39576 NULL
162498 +enable_so_nfs4_file_llseek_fndecl_39578 nfs4_file_llseek fndecl 2 39578 NULL
162499 +enable_so_flush_mtd_blktrans_ops_39582 flush mtd_blktrans_ops 0 39582 NULL nohasharray
162500 +enable_so_snbep_pci2phy_map_init_fndecl_39582 snbep_pci2phy_map_init fndecl 1 39582 &enable_so_flush_mtd_blktrans_ops_39582
162501 +enable_so_len_ubifs_scan_node_39584 len ubifs_scan_node 0 39584 NULL
162502 +enable_so_iunique_fndecl_39586 iunique fndecl 0-2 39586 NULL
162503 +enable_so_req_que_len_qla_hw_data_39587 req_que_len qla_hw_data 0 39587 NULL
162504 +enable_so_buf_size_fm_rds_39590 buf_size fm_rds 0 39590 NULL
162505 +enable_so_rq_bytes_sent_rpc_rqst_39591 rq_bytes_sent rpc_rqst 0 39591 NULL
162506 +enable_so_count_snd_ctl_elem_info_39594 count snd_ctl_elem_info 0 39594 NULL
162507 +enable_so_amanda_help_fndecl_39598 amanda_help fndecl 2 39598 NULL
162508 +enable_so_dm_consult_userspace_fndecl_39601 dm_consult_userspace fndecl 5 39601 NULL
162509 +enable_so_ti_recv_fndecl_39605 ti_recv fndecl 3 39605 NULL nohasharray
162510 +enable_so_midi_ports_snd_emux_39605 midi_ports snd_emux 0 39605 &enable_so_ti_recv_fndecl_39605
162511 +enable_so_double_length_smbios_cru64_info_39607 double_length smbios_cru64_info 0 39607 NULL nohasharray
162512 +enable_so_e1000e_hwtstamp_set_fndecl_39607 e1000e_hwtstamp_set fndecl 0 39607 &enable_so_double_length_smbios_cru64_info_39607
162513 +enable_so_of_clk_get_parent_count_fndecl_39609 of_clk_get_parent_count fndecl 0 39609 NULL
162514 +enable_so_iscsi_nop_out_rsp_fndecl_39614 iscsi_nop_out_rsp fndecl 4 39614 NULL
162515 +enable_so_rx_buffer_order_efx_nic_39620 rx_buffer_order efx_nic 0 39620 NULL
162516 +enable_so_cookie_len_l2tp_session_39629 cookie_len l2tp_session 0 39629 NULL
162517 +enable_so_max_cq_sz_mthca_dev_lim_39630 max_cq_sz mthca_dev_lim 0 39630 NULL
162518 +enable_so_fb_phys_ocfb_dev_39632 fb_phys ocfb_dev 0 39632 NULL
162519 +enable_so_xfs_bmbt_lookup_ge_fndecl_39633 xfs_bmbt_lookup_ge fndecl 3-2-4 39633 NULL
162520 +enable_so_saa7134_alsa_dma_init_fndecl_39636 saa7134_alsa_dma_init fndecl 2 39636 NULL
162521 +enable_so_simple_xattr_set_fndecl_39639 simple_xattr_set fndecl 4 39639 NULL
162522 +enable_so_compat_sys_pwritev64_fndecl_39644 compat_sys_pwritev64 fndecl 3 39644 NULL
162523 +enable_so_setup_arg_pages_fndecl_39645 setup_arg_pages fndecl 2 39645 NULL
162524 +enable_so_xfs_trans_get_efd_fndecl_39647 xfs_trans_get_efd fndecl 3 39647 NULL
162525 +enable_so_tx_len_hw_modul_39649 tx_len hw_modul 0 39649 NULL
162526 +enable_so_v9fs_listxattr_fndecl_39654 v9fs_listxattr fndecl 3 39654 NULL
162527 +enable_so_skb_copy_datagram_iter_fndecl_39662 skb_copy_datagram_iter fndecl 4-2-0 39662 NULL
162528 +enable_so_viafb_get_fb_size_from_pci_fndecl_39663 viafb_get_fb_size_from_pci fndecl 0 39663 NULL
162529 +enable_so_timeout_max_as3645a_platform_data_39664 timeout_max as3645a_platform_data 0 39664 NULL
162530 +enable_so_mq_bytes_user_struct_39665 mq_bytes user_struct 0 39665 NULL
162531 +enable_so_snd_rawmidi_transmit_peek_fndecl_39668 snd_rawmidi_transmit_peek fndecl 0-3 39668 NULL
162532 +enable_so_der_length_size_fndecl_39673 der_length_size fndecl 0 39673 NULL
162533 +enable_so_sectorsize_btrfs_super_block_39674 sectorsize btrfs_super_block 0 39674 NULL
162534 +enable_so_rdma_read_chunk_frmr_fndecl_39676 rdma_read_chunk_frmr fndecl 7 39676 NULL
162535 +enable_so_num_q_vectors_fm10k_intfc_39681 num_q_vectors fm10k_intfc 0 39681 NULL nohasharray
162536 +enable_so_dev_mem_read_fndecl_39681 dev_mem_read fndecl 3 39681 &enable_so_num_q_vectors_fm10k_intfc_39681
162537 +enable_so_fd_block_size_fd_dev_39692 fd_block_size fd_dev 0 39692 NULL nohasharray
162538 +enable_so_priv_size_Qdisc_ops_39692 priv_size Qdisc_ops 0 39692 &enable_so_fd_block_size_fd_dev_39692
162539 +enable_so_badblockpos_nand_chip_39700 badblockpos nand_chip 0 39700 NULL
162540 +enable_so_at24_macc_write_fndecl_39705 at24_macc_write fndecl 4-3 39705 NULL
162541 +enable_so_xfs_growfs_get_hdr_buf_fndecl_39706 xfs_growfs_get_hdr_buf fndecl 2-3 39706 NULL
162542 +enable_so_blk_check_plugged_fndecl_39715 blk_check_plugged fndecl 3 39715 NULL
162543 +enable_so_e1000_change_mtu_fndecl_39722 e1000_change_mtu fndecl 2 39722 NULL
162544 +enable_so_pglen_pnfs_device_39724 pglen pnfs_device 0 39724 NULL
162545 +enable_so_epool_init_fndecl_39728 epool_init fndecl 2 39728 NULL
162546 +enable_so_max_wrs_iwch_rnic_attributes_39735 max_wrs iwch_rnic_attributes 0 39735 NULL
162547 +enable_so___hostap_add_bss_fndecl_39739 __hostap_add_bss fndecl 4 39739 NULL nohasharray
162548 +enable_so_bfad_iocmd_faa_query_fndecl_39739 bfad_iocmd_faa_query fndecl 0 39739 &enable_so___hostap_add_bss_fndecl_39739
162549 +enable_so__ubh_bread__fndecl_39744 _ubh_bread_ fndecl 3 39744 NULL
162550 +enable_so_pipe_handler_request_fndecl_39749 pipe_handler_request fndecl 5 39749 NULL nohasharray
162551 +enable_so_tm6000_read_write_usb_fndecl_39749 tm6000_read_write_usb fndecl 7 39749 &enable_so_pipe_handler_request_fndecl_39749
162552 +enable_so_ocfs2_xattr_block_get_fndecl_39750 ocfs2_xattr_block_get fndecl 0 39750 NULL nohasharray
162553 +enable_so_total_blocks_hfsplus_sb_info_39750 total_blocks hfsplus_sb_info 0 39750 &enable_so_ocfs2_xattr_block_get_fndecl_39750 nohasharray
162554 +enable_so_devpts_new_index_fndecl_39750 devpts_new_index fndecl 0 39750 &enable_so_total_blocks_hfsplus_sb_info_39750
162555 +enable_so_drm_gtf2_2j_fndecl_39751 drm_gtf2_2j fndecl 0 39751 NULL
162556 +enable_so_am_length_xfs_attr_multiop_39754 am_length xfs_attr_multiop 0 39754 NULL
162557 +enable_so_delta_disks_mddev_39759 delta_disks mddev 0 39759 NULL
162558 +enable_so_free_full_branch_fndecl_39768 free_full_branch fndecl 2 39768 NULL nohasharray
162559 +enable_so_map_swap_page_fndecl_39768 map_swap_page fndecl 0 39768 &enable_so_free_full_branch_fndecl_39768
162560 +enable_so_write_flush_fndecl_39776 write_flush fndecl 3 39776 NULL
162561 +enable_so_add_range_with_merge_fndecl_39778 add_range_with_merge fndecl 5-4 39778 NULL
162562 +enable_so___collapse_huge_page_isolate_fndecl_39784 __collapse_huge_page_isolate fndecl 2 39784 NULL
162563 +enable_so_dvb_play_fndecl_39789 dvb_play fndecl 3 39789 NULL
162564 +enable_so_buf_rte_log_le_39791 buf rte_log_le 0 39791 NULL
162565 +enable_so_digital_dep_link_up_fndecl_39793 digital_dep_link_up fndecl 5 39793 NULL
162566 +enable_so_den_max_snd_ratnum_39802 den_max snd_ratnum 0 39802 NULL
162567 +enable_so_root_ino_num_f2fs_sb_info_39805 root_ino_num f2fs_sb_info 0 39805 NULL nohasharray
162568 +enable_so_tpm_write_fndecl_39805 tpm_write fndecl 3 39805 &enable_so_root_ino_num_f2fs_sb_info_39805
162569 +enable_so_meta_dev_idx_disk_conf_39810 meta_dev_idx disk_conf 0 39810 NULL
162570 +enable_so_videobuf_dma_init_user_fndecl_39812 videobuf_dma_init_user fndecl 4-3 39812 NULL
162571 +enable_so_nft_trans_alloc_fndecl_39815 nft_trans_alloc fndecl 3 39815 NULL
162572 +enable_so_btrfs_search_slot_for_read_fndecl_39816 btrfs_search_slot_for_read fndecl 0 39816 NULL
162573 +enable_so_jffs2_link_node_ref_fndecl_39817 jffs2_link_node_ref fndecl 3-4 39817 NULL nohasharray
162574 +enable_so_defcmd_set_count_vardecl_kdb_main_c_39817 defcmd_set_count vardecl_kdb_main.c 0 39817 &enable_so_jffs2_link_node_ref_fndecl_39817
162575 +enable_so_pan_y_yuv_frame_info_39830 pan_y yuv_frame_info 0 39830 NULL
162576 +enable_so_dpcm_show_state_fndecl_39832 dpcm_show_state fndecl 0 39832 NULL nohasharray
162577 +enable_so_init_rx_ring_fndecl_39832 init_rx_ring fndecl 4 39832 &enable_so_dpcm_show_state_fndecl_39832
162578 +enable_so_sb_inopblock_xfs_sb_39837 sb_inopblock xfs_sb 0 39837 NULL nohasharray
162579 +enable_so_io_vardecl_arc_rimi_c_39837 io vardecl_arc-rimi.c 0 39837 &enable_so_sb_inopblock_xfs_sb_39837 nohasharray
162580 +enable_so_pci_scan_root_bus_fndecl_39837 pci_scan_root_bus fndecl 2 39837 &enable_so_io_vardecl_arc_rimi_c_39837
162581 +enable_so__offset_iwl_rx_cmd_buffer_39841 _offset iwl_rx_cmd_buffer 0 39841 NULL nohasharray
162582 +enable_so_maxattr_genl_family_39841 maxattr genl_family 0 39841 &enable_so__offset_iwl_rx_cmd_buffer_39841
162583 +enable_so_da_last_ino_logfs_je_anchor_39843 da_last_ino logfs_je_anchor 0 39843 NULL
162584 +enable_so_ref_div_factor_adf4350_platform_data_39844 ref_div_factor adf4350_platform_data 0 39844 NULL
162585 +enable_so_digi_write_inb_command_fndecl_39846 digi_write_inb_command fndecl 3 39846 NULL
162586 +enable_so_height_cx25821_channel_39847 height cx25821_channel 0 39847 NULL
162587 +enable_so_xres_panel_info_39849 xres panel_info 0 39849 NULL
162588 +enable_so_di_nextents_xfs_dinode_39855 di_nextents xfs_dinode 0 39855 NULL
162589 +enable_so_imtu_l2cap_chan_39857 imtu l2cap_chan 0 39857 NULL
162590 +enable_so_usb_stor_reset_common_fndecl_39866 usb_stor_reset_common fndecl 7 39866 NULL nohasharray
162591 +enable_so_carl9170_debugfs_write_fndecl_39866 carl9170_debugfs_write fndecl 3 39866 &enable_so_usb_stor_reset_common_fndecl_39866
162592 +enable_so_self_check_write_fndecl_39867 self_check_write fndecl 5 39867 NULL
162593 +enable_so___bdev_writeseg_fndecl_39876 __bdev_writeseg fndecl 2-4 39876 NULL
162594 +enable_so_do_shrink_slab_fndecl_39881 do_shrink_slab fndecl 4-3 39881 NULL
162595 +enable_so_resync_offset_mdp_superblock_1_39883 resync_offset mdp_superblock_1 0 39883 NULL
162596 +enable_so_btrfs_bio_wq_end_io_fndecl_39884 btrfs_bio_wq_end_io fndecl 0 39884 NULL
162597 +enable_so_xfs_iext_remove_fndecl_39886 xfs_iext_remove fndecl 3 39886 NULL
162598 +enable_so_osd_req_write_sg_fndecl_39887 osd_req_write_sg fndecl 5 39887 NULL nohasharray
162599 +enable_so_debug_fcp_fndecl_39887 debug_fcp fndecl 2 39887 &enable_so_osd_req_write_sg_fndecl_39887
162600 +enable_so_len_cache_request_39888 len cache_request 0 39888 NULL
162601 +enable_so_video_base_sis_video_info_39896 video_base sis_video_info 0 39896 NULL
162602 +enable_so_SyS_lgetxattr_fndecl_39898 SyS_lgetxattr fndecl 4 39898 NULL
162603 +enable_so_s_inodes_per_group_ext4_sb_info_39910 s_inodes_per_group ext4_sb_info 0 39910 NULL
162604 +enable_so_frame_vector_create_fndecl_39918 frame_vector_create fndecl 1 39918 NULL
162605 +enable_so_spi_map_buf_fndecl_39919 spi_map_buf fndecl 0-5 39919 NULL
162606 +enable_so_i_eoffset_bfs_inode_39921 i_eoffset bfs_inode 0 39921 NULL
162607 +enable_so___logfs_write_header_fndecl_39923 __logfs_write_header fndecl 3-4 39923 NULL
162608 +enable_so_max_mp_regs_mwifiex_sdio_card_reg_39936 max_mp_regs mwifiex_sdio_card_reg 0 39936 NULL
162609 +enable_so_height_font_desc_39938 height font_desc 0 39938 NULL nohasharray
162610 +enable_so_btrfs_i_size_write_fndecl_39938 btrfs_i_size_write fndecl 2 39938 &enable_so_height_font_desc_39938
162611 +enable_so_fc_fdisc_build_fndecl_39940 fc_fdisc_build fndecl 7 39940 NULL
162612 +enable_so_row_shift_omap4_keypad_39944 row_shift omap4_keypad 0 39944 NULL
162613 +enable_so_find_ts_ops_39950 find ts_ops 0 39950 NULL nohasharray
162614 +enable_so_pid_proto_39950 pid proto 0 39950 &enable_so_find_ts_ops_39950
162615 +enable_so_inode2sd_v1_fndecl_39954 inode2sd_v1 fndecl 3 39954 NULL
162616 +enable_so___hfsplus_getxattr_fndecl_39975 __hfsplus_getxattr fndecl 0 39975 NULL nohasharray
162617 +enable_so_msg_length_pcnet32_rx_head_39975 msg_length pcnet32_rx_head 0 39975 &enable_so___hfsplus_getxattr_fndecl_39975 nohasharray
162618 +enable_so_cn_size_x509_parse_context_39975 cn_size x509_parse_context 0 39975 &enable_so_msg_length_pcnet32_rx_head_39975
162619 +enable_so_readbuf_size_tomoyo_io_buffer_39976 readbuf_size tomoyo_io_buffer 0 39976 NULL
162620 +enable_so_agp_3_5_isochronous_node_enable_fndecl_39978 agp_3_5_isochronous_node_enable fndecl 3 39978 NULL
162621 +enable_so_btrfs_pin_extent_fndecl_39983 btrfs_pin_extent fndecl 3-2 39983 NULL
162622 +enable_so_compat_do_msg_fill_fndecl_39987 compat_do_msg_fill fndecl 3 39987 NULL
162623 +enable_so_spi_tcnt_fsl_dspi_39994 spi_tcnt fsl_dspi 0 39994 NULL
162624 +enable_so_playback_bufsize_vardecl_nm256_c_39995 playback_bufsize vardecl_nm256.c 0 39995 NULL
162625 +enable_so_pitch_drm_radeon_texture_39996 pitch drm_radeon_texture 0 39996 NULL nohasharray
162626 +enable_so_size_fm10k_l2_accel_39996 size fm10k_l2_accel 0 39996 &enable_so_pitch_drm_radeon_texture_39996
162627 +enable_so_start_sram_reserve_39999 start sram_reserve 0 39999 NULL
162628 +enable_so_isr_decrypt_done_read_fndecl_40001 isr_decrypt_done_read fndecl 3 40001 NULL
162629 +enable_so_mld2q_nsrcs_mld2_query_40004 mld2q_nsrcs mld2_query 0 40004 NULL
162630 +enable_so_r820t_read_fndecl_40007 r820t_read fndecl 4 40007 NULL
162631 +enable_so_memblock_isolate_range_fndecl_40008 memblock_isolate_range fndecl 3-2 40008 NULL
162632 +enable_so_dch_empty_fifo_fndecl_40013 dch_empty_fifo fndecl 2 40013 NULL nohasharray
162633 +enable_so_cifs_dump_mem_fndecl_40013 cifs_dump_mem fndecl 3 40013 &enable_so_dch_empty_fifo_fndecl_40013
162634 +enable_so_ieee80211_ie_split_fndecl_40017 ieee80211_ie_split fndecl 5-0 40017 NULL
162635 +enable_so_zlib_compress_pages_fndecl_40018 zlib_compress_pages fndecl 4 40018 NULL
162636 +enable_so_xfs_iformat_local_fndecl_40019 xfs_iformat_local fndecl 4 40019 NULL
162637 +enable_so_verify_alg_len_net_conf_40020 verify_alg_len net_conf 0 40020 NULL
162638 +enable_so_vmw_mob_calculate_pt_pages_fndecl_40022 vmw_mob_calculate_pt_pages fndecl 0-1 40022 NULL
162639 +enable_so_tipc_bclink_get_mtu_fndecl_40024 tipc_bclink_get_mtu fndecl 0 40024 NULL nohasharray
162640 +enable_so_esp4_get_mtu_fndecl_40024 esp4_get_mtu fndecl 0-2 40024 &enable_so_tipc_bclink_get_mtu_fndecl_40024
162641 +enable_so_emulator_write_phys_fndecl_40035 emulator_write_phys fndecl 2-4 40035 NULL
162642 +enable_so_lpfc_debugfs_nodelist_data_fndecl_40039 lpfc_debugfs_nodelist_data fndecl 0 40039 NULL
162643 +enable_so_pos_splice_desc_40040 pos splice_desc 0 40040 NULL
162644 +enable_so_memdiff_vardecl_tridentfb_c_40043 memdiff vardecl_tridentfb.c 0 40043 NULL nohasharray
162645 +enable_so_read_partial_fndecl_40043 read_partial fndecl 2 40043 &enable_so_memdiff_vardecl_tridentfb_c_40043
162646 +enable_so_add_nested_action_start_fndecl_40044 add_nested_action_start fndecl 0 40044 NULL
162647 +enable_so_bind_cmd_count_vmw_ctx_binding_state_40054 bind_cmd_count vmw_ctx_binding_state 0 40054 NULL
162648 +enable_so_SyS_listxattr_fndecl_40060 SyS_listxattr fndecl 3 40060 NULL
162649 +enable_so_smp_execute_task_fndecl_40062 smp_execute_task fndecl 3-5-0 40062 NULL nohasharray
162650 +enable_so_iwl_dbgfs_disable_power_off_read_fndecl_40062 iwl_dbgfs_disable_power_off_read fndecl 3 40062 &enable_so_smp_execute_task_fndecl_40062
162651 +enable_so_region_size_switch_ctx_40069 region_size switch_ctx 0 40069 NULL
162652 +enable_so_max_pq_dma_device_40070 max_pq dma_device 0 40070 NULL
162653 +enable_so_smk_write_access_fndecl_40074 smk_write_access fndecl 3 40074 NULL nohasharray
162654 +enable_so_x25_asy_maxdev_vardecl_x25_asy_c_40074 x25_asy_maxdev vardecl_x25_asy.c 0 40074 &enable_so_smk_write_access_fndecl_40074
162655 +enable_so_tda18271_write_regs_fndecl_40082 tda18271_write_regs fndecl 3 40082 NULL
162656 +enable_so_num_parents_clk_core_40091 num_parents clk_core 0 40091 NULL
162657 +enable_so_wIELength_uwb_rc_cmd_set_ie_40094 wIELength uwb_rc_cmd_set_ie 0 40094 NULL nohasharray
162658 +enable_so_rx_buf_use_size_bnx2_40094 rx_buf_use_size bnx2 0 40094 &enable_so_wIELength_uwb_rc_cmd_set_ie_40094
162659 +enable_so_zap_page_range_fndecl_40097 zap_page_range fndecl 3-2 40097 NULL
162660 +enable_so_vma_needs_reservation_fndecl_40101 vma_needs_reservation fndecl 3 40101 NULL
162661 +enable_so_num_ibs_amdgpu_cs_parser_40104 num_ibs amdgpu_cs_parser 0 40104 NULL
162662 +enable_so_lh_blkno_gfs2_log_header_host_40105 lh_blkno gfs2_log_header_host 0 40105 NULL nohasharray
162663 +enable_so_evm_inode_setattr_fndecl_40105 evm_inode_setattr fndecl 0 40105 &enable_so_lh_blkno_gfs2_log_header_host_40105
162664 +enable_so_frag_rx_path_fndecl_40106 frag_rx_path fndecl 3 40106 NULL nohasharray
162665 +enable_so_u_dsize_user32_40106 u_dsize user32 0 40106 &enable_so_frag_rx_path_fndecl_40106 nohasharray
162666 +enable_so_allocation_floor_vardecl_dell_rbu_c_40106 allocation_floor vardecl_dell_rbu.c 0 40106 &enable_so_u_dsize_user32_40106
162667 +enable_so_r8a66597_urb_dequeue_fndecl_40110 r8a66597_urb_dequeue fndecl 3 40110 NULL
162668 +enable_so_alloc_chunk_fndecl_40116 alloc_chunk fndecl 1 40116 NULL nohasharray
162669 +enable_so_drv_data_size_rt2x00_ops_40116 drv_data_size rt2x00_ops 0 40116 &enable_so_alloc_chunk_fndecl_40116
162670 +enable_so_usdhi6_rq_start_fndecl_40120 usdhi6_rq_start fndecl 0 40120 NULL
162671 +enable_so_byte_count_vardecl_initramfs_c_40121 byte_count vardecl_initramfs.c 0 40121 NULL nohasharray
162672 +enable_so_sd_pkt_scan_fndecl_40121 sd_pkt_scan fndecl 3 40121 &enable_so_byte_count_vardecl_initramfs_c_40121 nohasharray
162673 +enable_so_sctp_setsockopt_default_send_param_fndecl_40121 sctp_setsockopt_default_send_param fndecl 3 40121 &enable_so_sd_pkt_scan_fndecl_40121
162674 +enable_so_smk_write_doi_fndecl_40134 smk_write_doi fndecl 3 40134 NULL
162675 +enable_so_mspi_apply_qe_mode_quirks_fndecl_40137 mspi_apply_qe_mode_quirks fndecl 0-3 40137 NULL nohasharray
162676 +enable_so_num_jumbo_rxd_netxen_adapter_40137 num_jumbo_rxd netxen_adapter 0 40137 &enable_so_mspi_apply_qe_mode_quirks_fndecl_40137 nohasharray
162677 +enable_so_port_fops_read_fndecl_40137 port_fops_read fndecl 3 40137 &enable_so_num_jumbo_rxd_netxen_adapter_40137
162678 +enable_so_off_fuse_notify_inval_inode_out_40142 off fuse_notify_inval_inode_out 0 40142 NULL
162679 +enable_so_isr_wakeups_read_fndecl_40148 isr_wakeups_read fndecl 3 40148 NULL
162680 +enable_so_fdt_appendprop_fndecl_40157 fdt_appendprop fndecl 2-5 40157 NULL nohasharray
162681 +enable_so_ftdi_elan_edset_single_fndecl_40157 ftdi_elan_edset_single fndecl 0 40157 &enable_so_fdt_appendprop_fndecl_40157
162682 +enable_so_xfs_ialloc_get_rec_fndecl_40163 xfs_ialloc_get_rec fndecl 2 40163 NULL
162683 +enable_so_sh_size_elf64_shdr_40164 sh_size elf64_shdr 0 40164 NULL
162684 +enable_so_at24_bin_read_fndecl_40165 at24_bin_read fndecl 6 40165 NULL
162685 +enable_so_pge_ctl_drm_psb_private_40167 pge_ctl drm_psb_private 0 40167 NULL
162686 +enable_so_dev_stripes_btrfs_raid_attr_40170 dev_stripes btrfs_raid_attr 0 40170 NULL
162687 +enable_so_bluecard_write_fndecl_40179 bluecard_write fndecl 0-4 40179 NULL
162688 +enable_so_status_boom_rx_desc_40185 status boom_rx_desc 0 40185 NULL
162689 +enable_so_protocol_inet_protosw_40187 protocol inet_protosw 0 40187 NULL nohasharray
162690 +enable_so_command_setlights_fndecl_40187 command_setlights fndecl 0 40187 &enable_so_protocol_inet_protosw_40187
162691 +enable_so_reshape_progress_r5conf_40192 reshape_progress r5conf 0 40192 NULL
162692 +enable_so_peb_size_ubi_device_40195 peb_size ubi_device 0 40195 NULL
162693 +enable_so_dma_contiguous_reserve_area_fndecl_40196 dma_contiguous_reserve_area fndecl 1-2-3 40196 NULL nohasharray
162694 +enable_so___jfs_setxattr_fndecl_40196 __jfs_setxattr fndecl 5 40196 &enable_so_dma_contiguous_reserve_area_fndecl_40196
162695 +enable_so_vga_video_num_lines_vardecl_vgacon_c_40199 vga_video_num_lines vardecl_vgacon.c 0 40199 NULL
162696 +enable_so_ath6kl_bgscan_int_write_fndecl_40201 ath6kl_bgscan_int_write fndecl 3 40201 NULL
162697 +enable_so_pvr2_ctrl_get_min_fndecl_40204 pvr2_ctrl_get_min fndecl 0 40204 NULL
162698 +enable_so_dvb_dvr_ioctl_fndecl_40205 dvb_dvr_ioctl fndecl 2 40205 NULL
162699 +enable_so_num_amgms_mlx4_caps_40207 num_amgms mlx4_caps 0 40207 NULL
162700 +enable_so_ipwireless_tty_received_fndecl_40209 ipwireless_tty_received fndecl 3 40209 NULL
162701 +enable_so_kbuf_alloc_2_sgl_fndecl_40216 kbuf_alloc_2_sgl fndecl 1 40216 NULL
162702 +enable_so_ipw_queue_tx_init_fndecl_40218 ipw_queue_tx_init fndecl 3 40218 NULL
162703 +enable_so_len_p80211ioctl_req_40220 len p80211ioctl_req 0 40220 NULL
162704 +enable_so_bochs_bo_create_fndecl_40223 bochs_bo_create fndecl 2 40223 NULL
162705 +enable_so_il4965_rs_sta_dbgfs_stats_table_read_fndecl_40229 il4965_rs_sta_dbgfs_stats_table_read fndecl 3 40229 NULL
162706 +enable_so_do_jffs2_getxattr_fndecl_40233 do_jffs2_getxattr fndecl 0 40233 NULL
162707 +enable_so_find_gmch_fndecl_40235 find_gmch fndecl 1 40235 NULL
162708 +enable_so_ndr_size_nd_region_40243 ndr_size nd_region 0 40243 NULL
162709 +enable_so_lola_init_stream_fndecl_40245 lola_init_stream fndecl 3 40245 NULL
162710 +enable_so_default_value_mfc_control_40246 default_value mfc_control 0 40246 NULL
162711 +enable_so_dec_src_buf_size_s5p_mfc_ctx_40247 dec_src_buf_size s5p_mfc_ctx 0 40247 NULL
162712 +enable_so_mmap_file_operations_40250 mmap file_operations 0 40250 NULL nohasharray
162713 +enable_so_layoutupdate_len_nfs4_layoutcommit_args_40250 layoutupdate_len nfs4_layoutcommit_args 0 40250 &enable_so_mmap_file_operations_40250
162714 +enable_so_max_sectors_queue_limits_40252 max_sectors queue_limits 0 40252 NULL nohasharray
162715 +enable_so_iwl_dbgfs_ucode_general_stats_read_fndecl_40252 iwl_dbgfs_ucode_general_stats_read fndecl 3 40252 &enable_so_max_sectors_queue_limits_40252
162716 +enable_so__iwl_dbgfs_netdetect_write_fndecl_40255 _iwl_dbgfs_netdetect_write fndecl 3 40255 NULL
162717 +enable_so_ucNumOfPowerModeEntries__ATOM_POWERPLAY_INFO_40261 ucNumOfPowerModeEntries _ATOM_POWERPLAY_INFO 0 40261 NULL
162718 +enable_so_stop_discovery_fndecl_40262 stop_discovery fndecl 4 40262 NULL
162719 +enable_so_ino_jffs2_inode_cache_40264 ino jffs2_inode_cache 0 40264 NULL
162720 +enable_so_fill_pg_buf_fndecl_40265 fill_pg_buf fndecl 0 40265 NULL
162721 +enable_so_es_len_extent_status_40276 es_len extent_status 0 40276 NULL
162722 +enable_so_memcg_nr_cache_ids_vardecl_40280 memcg_nr_cache_ids vardecl 0 40280 NULL
162723 +enable_so_mask___kfifo_40288 mask __kfifo 0 40288 NULL
162724 +enable_so_isku_sysfs_read_keys_media_fndecl_40295 isku_sysfs_read_keys_media fndecl 6 40295 NULL
162725 +enable_so_update_end_of_memory_vars_fndecl_40298 update_end_of_memory_vars fndecl 2-1 40298 NULL
162726 +enable_so_rx_filter_beacon_filter_read_fndecl_40300 rx_filter_beacon_filter_read fndecl 3 40300 NULL
162727 +enable_so_osd_req_add_get_attr_list_fndecl_40301 osd_req_add_get_attr_list fndecl 3 40301 NULL
162728 +enable_so_cyttsp_spi_xfer_fndecl_40307 cyttsp_spi_xfer fndecl 6 40307 NULL
162729 +enable_so_gfs2_free_meta_fndecl_40312 gfs2_free_meta fndecl 2 40312 NULL
162730 +enable_so_ieee80211_if_read_rssi_threshold_fndecl_40319 ieee80211_if_read_rssi_threshold fndecl 3 40319 NULL
162731 +enable_so_max_scaled_width_bttv_crop_40325 max_scaled_width bttv_crop 0 40325 NULL
162732 +enable_so_uio_read_fndecl_40327 uio_read fndecl 3 40327 NULL
162733 +enable_so_cur_pos_tegra_spi_data_40338 cur_pos tegra_spi_data 0 40338 NULL
162734 +enable_so_dm_rh_get_region_key_fndecl_40342 dm_rh_get_region_key fndecl 0 40342 NULL nohasharray
162735 +enable_so_nvif_notify_init_fndecl_40342 nvif_notify_init fndecl 7-6 40342 &enable_so_dm_rh_get_region_key_fndecl_40342
162736 +enable_so_sector_p_block_req_40343 sector p_block_req 0 40343 NULL nohasharray
162737 +enable_so___ext4_ext_dirty_fndecl_40343 __ext4_ext_dirty fndecl 0 40343 &enable_so_sector_p_block_req_40343 nohasharray
162738 +enable_so_minimum_acpi_resource_memory32_40343 minimum acpi_resource_memory32 0 40343 &enable_so___ext4_ext_dirty_fndecl_40343
162739 +enable_so_free_ubifs_lpt_lprops_40346 free ubifs_lpt_lprops 0 40346 NULL
162740 +enable_so_default_llseek_fndecl_40353 default_llseek fndecl 2 40353 NULL nohasharray
162741 +enable_so_srpt_alloc_ioctx_ring_fndecl_40353 srpt_alloc_ioctx_ring fndecl 3-4-2 40353 &enable_so_default_llseek_fndecl_40353
162742 +enable_so_pgbase_pnfs_device_40355 pgbase pnfs_device 0 40355 NULL
162743 +enable_so_rbd_img_request_submit_fndecl_40356 rbd_img_request_submit fndecl 0 40356 NULL
162744 +enable_so_cblock_dm_cache_migration_40361 cblock dm_cache_migration 0 40361 NULL
162745 +enable_so_cfpkt_setlen_fndecl_40364 cfpkt_setlen fndecl 2 40364 NULL nohasharray
162746 +enable_so_max_wrs_rds_ib_device_40364 max_wrs rds_ib_device 0 40364 &enable_so_cfpkt_setlen_fndecl_40364
162747 +enable_so_isku_sysfs_read_keys_macro_fndecl_40371 isku_sysfs_read_keys_macro fndecl 6 40371 NULL
162748 +enable_so_SYSC_mincore_fndecl_40372 SYSC_mincore fndecl 2-1 40372 NULL
162749 +enable_so_pages_per_wr_bio_scrub_wr_ctx_40374 pages_per_wr_bio scrub_wr_ctx 0 40374 NULL
162750 +enable_so_align_kmem_cache_40377 align kmem_cache 0 40377 NULL
162751 +enable_so_ilm_len_mt76_fw_header_40389 ilm_len mt76_fw_header 0 40389 NULL
162752 +enable_so_px_raw_event_fndecl_40392 px_raw_event fndecl 4 40392 NULL
162753 +enable_so_file_secno_bplus_leaf_node_40394 file_secno bplus_leaf_node 0 40394 NULL nohasharray
162754 +enable_so_sb_root_hpfs_sb_info_40394 sb_root hpfs_sb_info 0 40394 &enable_so_file_secno_bplus_leaf_node_40394
162755 +enable_so_snd_ak4113_external_rate_fndecl_40404 snd_ak4113_external_rate fndecl 0 40404 NULL nohasharray
162756 +enable_so_max_scaled_height_bttv_crop_40404 max_scaled_height bttv_crop 0 40404 &enable_so_snd_ak4113_external_rate_fndecl_40404 nohasharray
162757 +enable_so_prli_len_fc_els_prli_40404 prli_len fc_els_prli 0 40404 &enable_so_max_scaled_height_bttv_crop_40404
162758 +enable_so_line_no_pch_uart_driver_data_40410 line_no pch_uart_driver_data 0 40410 NULL
162759 +enable_so_level3cnt_capi_register_params_40411 level3cnt capi_register_params 0 40411 NULL
162760 +enable_so_bulk_out_epnum_usb_cardstate_40412 bulk_out_epnum usb_cardstate 0 40412 NULL nohasharray
162761 +enable_so_joydev_ioctl_common_fndecl_40412 joydev_ioctl_common fndecl 2 40412 &enable_so_bulk_out_epnum_usb_cardstate_40412
162762 +enable_so_vm_end_vm_area_struct_40413 vm_end vm_area_struct 0 40413 NULL nohasharray
162763 +enable_so_vma_commit_reservation_fndecl_40413 vma_commit_reservation fndecl 3 40413 &enable_so_vm_end_vm_area_struct_40413
162764 +enable_so___ioremap_caller_fndecl_40419 __ioremap_caller fndecl 2-1 40419 NULL nohasharray
162765 +enable_so_applesmc_create_nodes_fndecl_40419 applesmc_create_nodes fndecl 2 40419 &enable_so___ioremap_caller_fndecl_40419
162766 +enable_so_rx_streaming_always_read_fndecl_40426 rx_streaming_always_read fndecl 3 40426 NULL
162767 +enable_so_buf_size_in_bytes_kfd_ioctl_dbg_wave_control_args_40427 buf_size_in_bytes kfd_ioctl_dbg_wave_control_args 0 40427 NULL
162768 +enable_so_tnode_alloc_fndecl_40428 tnode_alloc fndecl 1 40428 NULL
162769 +enable_so_readisac_IsdnCardState_40429 readisac IsdnCardState 0 40429 NULL
162770 +enable_so_skb_partial_csum_set_fndecl_40436 skb_partial_csum_set fndecl 2 40436 NULL nohasharray
162771 +enable_so_write_tag_block_fndecl_40436 write_tag_block fndecl 3 40436 &enable_so_skb_partial_csum_set_fndecl_40436
162772 +enable_so___i915_error_advance_fndecl_40440 __i915_error_advance fndecl 2 40440 NULL
162773 +enable_so_begin_switchdev_vlan_dump_40443 begin switchdev_vlan_dump 0 40443 NULL
162774 +enable_so_iscsi_alloc_session_fndecl_40445 iscsi_alloc_session fndecl 3 40445 NULL
162775 +enable_so_qd2index_fndecl_40449 qd2index fndecl 0 40449 NULL
162776 +enable_so_gnttab_setup_auto_xlat_frames_fndecl_40455 gnttab_setup_auto_xlat_frames fndecl 1 40455 NULL
162777 +enable_so_curpacksize_snd_usb_endpoint_40462 curpacksize snd_usb_endpoint 0 40462 NULL
162778 +enable_so_nr_i2c_adapter_40466 nr i2c_adapter 0 40466 NULL
162779 +enable_so_bfad_iocmd_boot_cfg_fndecl_40470 bfad_iocmd_boot_cfg fndecl 0 40470 NULL
162780 +enable_so_di_size_logfs_disk_inode_40484 di_size logfs_disk_inode 0 40484 NULL nohasharray
162781 +enable_so_memblock_add_node_fndecl_40484 memblock_add_node fndecl 1-2 40484 &enable_so_di_size_logfs_disk_inode_40484
162782 +enable_so_eh_depth_ext4_extent_header_40488 eh_depth ext4_extent_header 0 40488 NULL
162783 +enable_so_s_cgoffset_ufs_sb_private_info_40490 s_cgoffset ufs_sb_private_info 0 40490 NULL
162784 +enable_so_tx_max_cdc_ncm_ctx_40493 tx_max cdc_ncm_ctx 0 40493 NULL nohasharray
162785 +enable_so_length_mtd_oob_buf32_40493 length mtd_oob_buf32 0 40493 &enable_so_tx_max_cdc_ncm_ctx_40493 nohasharray
162786 +enable_so_num_mtts_mlx4_caps_40493 num_mtts mlx4_caps 0 40493 &enable_so_length_mtd_oob_buf32_40493
162787 +enable_so_len_tx_buf_40498 len tx_buf 0 40498 NULL
162788 +enable_so_header_length_datalink_proto_40501 header_length datalink_proto 0 40501 NULL
162789 +enable_so_size_iscsi_segment_40510 size iscsi_segment 0 40510 NULL nohasharray
162790 +enable_so_start_cnic_id_tbl_40510 start cnic_id_tbl 0 40510 &enable_so_size_iscsi_segment_40510
162791 +enable_so_max_soc_bytes_ext_40512 max soc_bytes_ext 0 40512 NULL
162792 +enable_so_dn_mss_from_pmtu_fndecl_40520 dn_mss_from_pmtu fndecl 0-2 40520 NULL
162793 +enable_so_num_substreams_snd_m3_40528 num_substreams snd_m3 0 40528 NULL
162794 +enable_so_bnx2x_change_num_queues_fndecl_40532 bnx2x_change_num_queues fndecl 2 40532 NULL
162795 +enable_so_rsxx_queue_dma_fndecl_40533 rsxx_queue_dma fndecl 0 40533 NULL nohasharray
162796 +enable_so_smb2_lockv_fndecl_40533 smb2_lockv fndecl 6 40533 &enable_so_rsxx_queue_dma_fndecl_40533 nohasharray
162797 +enable_so_w_size_deflate_state_40533 w_size deflate_state 0 40533 &enable_so_smb2_lockv_fndecl_40533 nohasharray
162798 +enable_so_drm_buffer_copy_from_user_fndecl_40533 drm_buffer_copy_from_user fndecl 3 40533 &enable_so_w_size_deflate_state_40533
162799 +enable_so_xfs_qm_reset_dqcounts_fndecl_40540 xfs_qm_reset_dqcounts fndecl 3 40540 NULL nohasharray
162800 +enable_so_is_acpi_reserved_fndecl_40540 is_acpi_reserved fndecl 2-1 40540 &enable_so_xfs_qm_reset_dqcounts_fndecl_40540
162801 +enable_so_sky2_get_rx_data_size_fndecl_40544 sky2_get_rx_data_size fndecl 0 40544 NULL nohasharray
162802 +enable_so_bnx2x_get_preset_regs_len_fndecl_40544 bnx2x_get_preset_regs_len fndecl 0 40544 &enable_so_sky2_get_rx_data_size_fndecl_40544
162803 +enable_so_base_start_aac_dev_40550 base_start aac_dev 0 40550 NULL nohasharray
162804 +enable_so_num_ios_vardecl_40550 num_ios vardecl 0 40550 &enable_so_base_start_aac_dev_40550
162805 +enable_so_read_partial_message_section_fndecl_40551 read_partial_message_section fndecl 3 40551 NULL
162806 +enable_so_nf_sockopt_fndecl_40555 nf_sockopt fndecl 0 40555 NULL
162807 +enable_so_alloc_ebda_hpc_fndecl_40557 alloc_ebda_hpc fndecl 1-2 40557 NULL
162808 +enable_so_security_context_to_sid_fndecl_40560 security_context_to_sid fndecl 2 40560 NULL
162809 +enable_so_mmc_retune_fndecl_40561 mmc_retune fndecl 0 40561 NULL
162810 +enable_so_maxpacket_isp1362_ep_40564 maxpacket isp1362_ep 0 40564 NULL
162811 +enable_so_isdn_read_fndecl_40566 isdn_read fndecl 3 40566 NULL
162812 +enable_so_ptrace_readdata_fndecl_40567 ptrace_readdata fndecl 4-2 40567 NULL
162813 +enable_so_ucNumStates__ATOM_PPLIB_POWERPLAYTABLE_40568 ucNumStates _ATOM_PPLIB_POWERPLAYTABLE 0 40568 NULL
162814 +enable_so_caif_stream_sendmsg_fndecl_40573 caif_stream_sendmsg fndecl 3 40573 NULL
162815 +enable_so_qp_alloc_queue_fndecl_40575 qp_alloc_queue fndecl 1 40575 NULL nohasharray
162816 +enable_so_xlog_recovery_process_trans_fndecl_40575 xlog_recovery_process_trans fndecl 4 40575 &enable_so_qp_alloc_queue_fndecl_40575
162817 +enable_so_dm_bufio_read_fndecl_40577 dm_bufio_read fndecl 2 40577 NULL
162818 +enable_so_bfad_iocmd_ablk_optrom_fndecl_40586 bfad_iocmd_ablk_optrom fndecl 0 40586 NULL
162819 +enable_so_ioread8_fndecl_40594 ioread8 fndecl 0 40594 NULL
162820 +enable_so_dram_size_sst_res_info_40602 dram_size sst_res_info 0 40602 NULL nohasharray
162821 +enable_so_rose_ndevs_vardecl_af_rose_c_40602 rose_ndevs vardecl_af_rose.c 0 40602 &enable_so_dram_size_sst_res_info_40602
162822 +enable_so_value_len_ext4_xattr_info_40604 value_len ext4_xattr_info 0 40604 NULL
162823 +enable_so_rf_size_rt2x00_ops_40605 rf_size rt2x00_ops 0 40605 NULL
162824 +enable_so_vyres_aty128_crtc_40610 vyres aty128_crtc 0 40610 NULL
162825 +enable_so_android_set_cntry_fndecl_40615 android_set_cntry fndecl 0 40615 NULL
162826 +enable_so_read_file_slot_fndecl_40620 read_file_slot fndecl 3 40620 NULL
162827 +enable_so_mailbox_start_sst_info_40624 mailbox_start sst_info 0 40624 NULL
162828 +enable_so___kfifo_dma_in_prepare_fndecl_40626 __kfifo_dma_in_prepare fndecl 4 40626 NULL
162829 +enable_so_libcfs_ioctl_popdata_fndecl_40628 libcfs_ioctl_popdata fndecl 3 40628 NULL
162830 +enable_so_pcpu_get_vm_areas_fndecl_40630 pcpu_get_vm_areas fndecl 4-3 40630 NULL
162831 +enable_so_dev_set_alias_fndecl_40631 dev_set_alias fndecl 3 40631 NULL
162832 +enable_so_cf_uniqueid_cifs_fattr_40632 cf_uniqueid cifs_fattr 0 40632 NULL
162833 +enable_so_altera_swap_dr_fndecl_40633 altera_swap_dr fndecl 2 40633 NULL
162834 +enable_so_map_dirent_fndecl_40635 map_dirent fndecl 2 40635 NULL nohasharray
162835 +enable_so_cfg_fcp_io_channel_lpfc_hba_40635 cfg_fcp_io_channel lpfc_hba 0 40635 &enable_so_map_dirent_fndecl_40635 nohasharray
162836 +enable_so_sock_setsockopt_fndecl_40635 sock_setsockopt fndecl 5 40635 &enable_so_cfg_fcp_io_channel_lpfc_hba_40635
162837 +enable_so_rotate_buf_a_little_fndecl_40654 rotate_buf_a_little fndecl 2 40654 NULL
162838 +enable_so_rq_rcvsize_rpc_rqst_40660 rq_rcvsize rpc_rqst 0 40660 NULL
162839 +enable_so_ipoib_ib_dev_init_fndecl_40661 ipoib_ib_dev_init fndecl 3 40661 NULL nohasharray
162840 +enable_so_number_xt_af_40661 number xt_af 0 40661 &enable_so_ipoib_ib_dev_init_fndecl_40661
162841 +enable_so_ocrdma_dbgfs_ops_write_fndecl_40664 ocrdma_dbgfs_ops_write fndecl 3 40664 NULL
162842 +enable_so___ext_tree_remove_fndecl_40666 __ext_tree_remove fndecl 2-3 40666 NULL
162843 +enable_so_coded_len_batadv_coded_packet_40670 coded_len batadv_coded_packet 0 40670 NULL
162844 +enable_so_aac_nark_ioremap_fndecl_40672 aac_nark_ioremap fndecl 2 40672 NULL nohasharray
162845 +enable_so_kmalloc_node_fndecl_40672 kmalloc_node fndecl 1 40672 &enable_so_aac_nark_ioremap_fndecl_40672
162846 +enable_so_rx_filter_ibss_filter_read_fndecl_40676 rx_filter_ibss_filter_read fndecl 3 40676 NULL
162847 +enable_so_odev_update_fndecl_40682 odev_update fndecl 2 40682 NULL nohasharray
162848 +enable_so_num_queue_pairs_i40e_virtchnl_vsi_resource_40682 num_queue_pairs i40e_virtchnl_vsi_resource 0 40682 &enable_so_odev_update_fndecl_40682
162849 +enable_so_ahd_probe_stack_size_fndecl_40683 ahd_probe_stack_size fndecl 0 40683 NULL
162850 +enable_so_ubi_resize_volume_fndecl_40687 ubi_resize_volume fndecl 2 40687 NULL nohasharray
162851 +enable_so_xfs_get_blocks_direct_fndecl_40687 xfs_get_blocks_direct fndecl 2 40687 &enable_so_ubi_resize_volume_fndecl_40687
162852 +enable_so_tx_frag_need_fragmentation_read_fndecl_40698 tx_frag_need_fragmentation_read fndecl 3 40698 NULL
162853 +enable_so_height_timblogiw_tvnorm_40699 height timblogiw_tvnorm 0 40699 NULL
162854 +enable_so_errors_request_40701 errors request 0 40701 NULL
162855 +enable_so_aa_simple_write_to_buffer_fndecl_40704 aa_simple_write_to_buffer fndecl 3-4 40704 NULL
162856 +enable_so_max_znode_sz_ubifs_info_40705 max_znode_sz ubifs_info 0 40705 NULL
162857 +enable_so_ctrl_out_pipe_hfcsusb_40706 ctrl_out_pipe hfcsusb 0 40706 NULL
162858 +enable_so___x86_set_memory_region_fndecl_40708 __x86_set_memory_region fndecl 4 40708 NULL nohasharray
162859 +enable_so_nTxBlock_vardecl_jfs_txnmgr_c_40708 nTxBlock vardecl_jfs_txnmgr.c 0 40708 &enable_so___x86_set_memory_region_fndecl_40708
162860 +enable_so_lfb_linelength_screen_info_40728 lfb_linelength screen_info 0 40728 NULL
162861 +enable_so_cryptlen_aead_request_40734 cryptlen aead_request 0 40734 NULL
162862 +enable_so_NumberOfLogBlock_ms_lib_ctrl_40736 NumberOfLogBlock ms_lib_ctrl 0 40736 NULL
162863 +enable_so_do_splice_to_fndecl_40737 do_splice_to fndecl 4-0 40737 NULL
162864 +enable_so_sisfb_getheapstart_fndecl_40740 sisfb_getheapstart fndecl 0 40740 NULL nohasharray
162865 +enable_so_intel_gtt_mappable_entries_fndecl_40740 intel_gtt_mappable_entries fndecl 0 40740 &enable_so_sisfb_getheapstart_fndecl_40740
162866 +enable_so_write_pool_fndecl_40741 write_pool fndecl 3 40741 NULL
162867 +enable_so_IELength_wlan_bssid_ex_40743 IELength wlan_bssid_ex 0 40743 NULL
162868 +enable_so_smsc47b397_find_fndecl_40748 smsc47b397_find fndecl 0 40748 NULL
162869 +enable_so_ctrl_macb_dma_desc_40750 ctrl macb_dma_desc 0 40750 NULL
162870 +enable_so_sys_gethostname_fndecl_40753 sys_gethostname fndecl 2 40753 NULL
162871 +enable_so_read_reg_isac_hw_40755 read_reg isac_hw 0 40755 NULL
162872 +enable_so_snd_usb_endpoint_set_params_fndecl_40756 snd_usb_endpoint_set_params fndecl 3-4 40756 NULL
162873 +enable_so_vfs_iter_write_fndecl_40761 vfs_iter_write fndecl 0 40761 NULL
162874 +enable_so_total_xfer_length_ScsiReqBlk_40768 total_xfer_length ScsiReqBlk 0 40768 NULL
162875 +enable_so_btrfs_chunk_num_stripes_fndecl_40772 btrfs_chunk_num_stripes fndecl 0 40772 NULL
162876 +enable_so_snd_hdac_get_connections_fndecl_40773 snd_hdac_get_connections fndecl 0 40773 NULL
162877 +enable_so_pdu_write_fndecl_40774 pdu_write fndecl 3 40774 NULL
162878 +enable_so_xprt_tcp_slot_table_entries_vardecl_xprtsock_c_40779 xprt_tcp_slot_table_entries vardecl_xprtsock.c 0 40779 NULL
162879 +enable_so_key_conf_keylen_read_fndecl_40781 key_conf_keylen_read fndecl 3 40781 NULL
162880 +enable_so_s_bpfshift_ufs_sb_private_info_40782 s_bpfshift ufs_sb_private_info 0 40782 NULL
162881 +enable_so_scsi_log_print_sense_fndecl_40783 scsi_log_print_sense fndecl 5 40783 NULL
162882 +enable_so_increase_reservation_fndecl_40785 increase_reservation fndecl 1 40785 NULL
162883 +enable_so_sys_fsetxattr_fndecl_40795 sys_fsetxattr fndecl 4 40795 NULL
162884 +enable_so_private_data_len_rdma_conn_param_40796 private_data_len rdma_conn_param 0 40796 NULL
162885 +enable_so_check_frame_fndecl_40798 check_frame fndecl 0 40798 NULL nohasharray
162886 +enable_so_ext4_multi_mount_protect_fndecl_40798 ext4_multi_mount_protect fndecl 2 40798 &enable_so_check_frame_fndecl_40798
162887 +enable_so_multi_write_idx_wmi_40801 multi_write_idx wmi 0 40801 NULL nohasharray
162888 +enable_so_cmd_len_request_40801 cmd_len request 0 40801 &enable_so_multi_write_idx_wmi_40801 nohasharray
162889 +enable_so_num_channels_hpb_dmae_pdata_40801 num_channels hpb_dmae_pdata 0 40801 &enable_so_cmd_len_request_40801
162890 +enable_so_sz_m1_mlx5_wq_ll_40805 sz_m1 mlx5_wq_ll 0 40805 NULL
162891 +enable_so_ceph_osdc_readpages_fndecl_40814 ceph_osdc_readpages fndecl 0 40814 NULL nohasharray
162892 +enable_so_sysctl_wmem_max_vardecl_40814 sysctl_wmem_max vardecl 0 40814 &enable_so_ceph_osdc_readpages_fndecl_40814
162893 +enable_so_dma_pad_mask_request_queue_40816 dma_pad_mask request_queue 0 40816 NULL
162894 +enable_so_fuse_conn_waiting_read_fndecl_40817 fuse_conn_waiting_read fndecl 3 40817 NULL
162895 +enable_so_INFTL_findfreeblock_fndecl_40819 INFTL_findfreeblock fndecl 0 40819 NULL
162896 +enable_so_length_sst_dsp_header_40829 length sst_dsp_header 0 40829 NULL
162897 +enable_so_l2_fhdr_ip_xsum_l2_fhdr_40843 l2_fhdr_ip_xsum l2_fhdr 0 40843 NULL
162898 +enable_so_v9fs_file_fsync_dotl_fndecl_40845 v9fs_file_fsync_dotl fndecl 2-3 40845 NULL
162899 +enable_so_newblocks_xfs_growfs_data_40847 newblocks xfs_growfs_data 0 40847 NULL
162900 +enable_so_nfs_file_fsync_fndecl_40851 nfs_file_fsync fndecl 2-3 40851 NULL
162901 +enable_so___of_parse_phandle_with_args_fndecl_40860 __of_parse_phandle_with_args fndecl 0 40860 NULL
162902 +enable_so_ov_left_drbd_device_40861 ov_left drbd_device 0 40861 NULL nohasharray
162903 +enable_so_extended_capabilities_len_wiphy_40861 extended_capabilities_len wiphy 0 40861 &enable_so_ov_left_drbd_device_40861
162904 +enable_so_resize_zone_fndecl_40862 resize_zone fndecl 2-3 40862 NULL
162905 +enable_so_ext2_splice_branch_fndecl_40864 ext2_splice_branch fndecl 5 40864 NULL
162906 +enable_so_iraw_loop_fndecl_40865 iraw_loop fndecl 0-1 40865 NULL
162907 +enable_so_nvram_llseek_fndecl_40869 nvram_llseek fndecl 2 40869 NULL
162908 +enable_so_reply_queue_count_MPT3SAS_ADAPTER_40870 reply_queue_count MPT3SAS_ADAPTER 0 40870 NULL
162909 +enable_so_sector_count_partition_40874 sector_count partition 0 40874 NULL
162910 +enable_so_scsi_dispatch_cmd_entry_fndecl_40875 scsi_dispatch_cmd_entry fndecl 3 40875 NULL
162911 +enable_so_config_len_mic_device_desc_40877 config_len mic_device_desc 0 40877 NULL
162912 +enable_so_min_agbno_xfs_alloc_arg_40884 min_agbno xfs_alloc_arg 0 40884 NULL nohasharray
162913 +enable_so_osst_set_options_fndecl_40884 osst_set_options fndecl 2 40884 &enable_so_min_agbno_xfs_alloc_arg_40884
162914 +enable_so_tcf_csum_ipv4_tcp_fndecl_40889 tcf_csum_ipv4_tcp fndecl 3 40889 NULL
162915 +enable_so_size_drm_i915_gem_mmap_40890 size drm_i915_gem_mmap 0 40890 NULL nohasharray
162916 +enable_so_gtt_sa_num_of_chunks_kfd_dev_40890 gtt_sa_num_of_chunks kfd_dev 0 40890 &enable_so_size_drm_i915_gem_mmap_40890
162917 +enable_so_pci_add_dynid_fndecl_40893 pci_add_dynid fndecl 3-8 40893 NULL
162918 +enable_so_ath6kl_fwlog_block_read_fndecl_40895 ath6kl_fwlog_block_read fndecl 3 40895 NULL
162919 +enable_so_uart_write_fndecl_40916 uart_write fndecl 3 40916 NULL
162920 +enable_so_vmw_cmdbuf_send_device_command_fndecl_40925 vmw_cmdbuf_send_device_command fndecl 3 40925 NULL nohasharray
162921 +enable_so_sctp_setsockopt_bindx_fndecl_40925 sctp_setsockopt_bindx fndecl 3 40925 &enable_so_vmw_cmdbuf_send_device_command_fndecl_40925
162922 +enable_so_ea_put_fndecl_40928 ea_put fndecl 4 40928 NULL nohasharray
162923 +enable_so_platform_mmio_vardecl_platform_pci_c_40928 platform_mmio vardecl_platform-pci.c 0 40928 &enable_so_ea_put_fndecl_40928
162924 +enable_so_opcount_xfs_fsop_attrmulti_handlereq_40929 opcount xfs_fsop_attrmulti_handlereq 0 40929 NULL
162925 +enable_so_scsiback_do_resp_with_sense_fndecl_40934 scsiback_do_resp_with_sense fndecl 3 40934 NULL
162926 +enable_so_fuse_send_write_fndecl_40936 fuse_send_write fndecl 0-4 40936 NULL
162927 +enable_so_ecryptfs_filldir_fndecl_40939 ecryptfs_filldir fndecl 3 40939 NULL
162928 +enable_so_s_log_groups_per_flex_ext4_sb_info_40945 s_log_groups_per_flex ext4_sb_info 0 40945 NULL
162929 +enable_so_az6007_write_fndecl_40948 az6007_write fndecl 6 40948 NULL
162930 +enable_so_size_v4l2_ext_control_40952 size v4l2_ext_control 0 40952 NULL
162931 +enable_so_intel_fbc_alloc_cfb_fndecl_40957 intel_fbc_alloc_cfb fndecl 2 40957 NULL
162932 +enable_so_ns_segnum_the_nilfs_40959 ns_segnum the_nilfs 0 40959 NULL
162933 +enable_so_ext4_fill_fiemap_extents_fndecl_40966 ext4_fill_fiemap_extents fndecl 2-3 40966 NULL nohasharray
162934 +enable_so_isr_low_rssi_read_fndecl_40966 isr_low_rssi_read fndecl 3 40966 &enable_so_ext4_fill_fiemap_extents_fndecl_40966
162935 +enable_so_bottom_qxl_urect_40968 bottom qxl_urect 0 40968 NULL
162936 +enable_so_arena_read_bytes_fndecl_40973 arena_read_bytes fndecl 0 40973 NULL nohasharray
162937 +enable_so_regmap_reg_ranges_read_file_fndecl_40973 regmap_reg_ranges_read_file fndecl 3 40973 &enable_so_arena_read_bytes_fndecl_40973
162938 +enable_so_a_text_exec_40977 a_text exec 0 40977 NULL
162939 +enable_so_compat_sys_recvfrom_fndecl_40978 compat_sys_recvfrom fndecl 3 40978 NULL
162940 +enable_so_read_iter_file_operations_40980 read_iter file_operations 0 40980 NULL
162941 +enable_so_s_psn_qib_qp_40983 s_psn qib_qp 0 40983 NULL
162942 +enable_so_blk_mq_init_tags_fndecl_40986 blk_mq_init_tags fndecl 2-1 40986 NULL
162943 +enable_so_ecryptfs_send_miscdev_fndecl_40995 ecryptfs_send_miscdev fndecl 2 40995 NULL
162944 +enable_so_gfn_to_page_fndecl_41001 gfn_to_page fndecl 2 41001 NULL nohasharray
162945 +enable_so_start_fb_cmap_41001 start fb_cmap 0 41001 &enable_so_gfn_to_page_fndecl_41001
162946 +enable_so_selfballoon_min_usable_mb_vardecl_xen_selfballoon_c_41004 selfballoon_min_usable_mb vardecl_xen-selfballoon.c 0 41004 NULL
162947 +enable_so_bfad_iocmd_itnim_get_ioprofile_fndecl_41011 bfad_iocmd_itnim_get_ioprofile fndecl 0 41011 NULL nohasharray
162948 +enable_so_nfsctl_transaction_write_fndecl_41011 nfsctl_transaction_write fndecl 3 41011 &enable_so_bfad_iocmd_itnim_get_ioprofile_fndecl_41011
162949 +enable_so_ath6kl_target_config_wlan_params_fndecl_41017 ath6kl_target_config_wlan_params fndecl 2 41017 NULL nohasharray
162950 +enable_so_proc_projid_map_write_fndecl_41017 proc_projid_map_write fndecl 3 41017 &enable_so_ath6kl_target_config_wlan_params_fndecl_41017
162951 +enable_so_rfkill_fop_write_fndecl_41019 rfkill_fop_write fndecl 3 41019 NULL
162952 +enable_so_dma_handle_videobuf_dma_contig_memory_41025 dma_handle videobuf_dma_contig_memory 0 41025 NULL
162953 +enable_so_store_mfn_start_info_41034 store_mfn start_info 0 41034 NULL
162954 +enable_so_altera_set_dr_pre_fndecl_41037 altera_set_dr_pre fndecl 2 41037 NULL
162955 +enable_so_fofs_extent_info_41041 fofs extent_info 0 41041 NULL
162956 +enable_so_d0_vring_rx_mac_41042 d0 vring_rx_mac 0 41042 NULL
162957 +enable_so_ieee802154_hdr_pull_fndecl_41051 ieee802154_hdr_pull fndecl 0 41051 NULL
162958 +enable_so_resp_len_bnx2fc_mp_req_41057 resp_len bnx2fc_mp_req 0 41057 NULL
162959 +enable_so_lprocfs_write_u64_helper_fndecl_41059 lprocfs_write_u64_helper fndecl 2 41059 NULL
162960 +enable_so_bits_per_word_spi_transfer_41063 bits_per_word spi_transfer 0 41063 NULL
162961 +enable_so_vdc_mem_size_vml_par_41069 vdc_mem_size vml_par 0 41069 NULL
162962 +enable_so_gfn_to_pfn_fndecl_41077 gfn_to_pfn fndecl 2 41077 NULL
162963 +enable_so_DirID_hfs_cat_dir_41079 DirID hfs_cat_dir 0 41079 NULL
162964 +enable_so_shtc1_update_values_fndecl_41080 shtc1_update_values fndecl 4 41080 NULL
162965 +enable_so_zl10039_write_fndecl_41082 zl10039_write fndecl 4 41082 NULL
162966 +enable_so_pci_vc_do_save_buffer_fndecl_41087 pci_vc_do_save_buffer fndecl 0 41087 NULL
162967 +enable_so_wdt87xx_get_feature_fndecl_41089 wdt87xx_get_feature fndecl 3 41089 NULL nohasharray
162968 +enable_so_iq_autocal_len_p54_common_41089 iq_autocal_len p54_common 0 41089 &enable_so_wdt87xx_get_feature_fndecl_41089
162969 +enable_so_pskb_put_fndecl_41096 pskb_put fndecl 3 41096 NULL nohasharray
162970 +enable_so_sigma_fw_load_data_fndecl_41096 sigma_fw_load_data fndecl 3 41096 &enable_so_pskb_put_fndecl_41096
162971 +enable_so_nr_gpio_sc16is7xx_devtype_41097 nr_gpio sc16is7xx_devtype 0 41097 NULL
162972 +enable_so_input_leds_get_count_fndecl_41102 input_leds_get_count fndecl 0 41102 NULL
162973 +enable_so_ieee80211_if_read_ave_beacon_fndecl_41103 ieee80211_if_read_ave_beacon fndecl 3 41103 NULL
162974 +enable_so_res_ver_val_pvr2_hdw_41107 res_ver_val pvr2_hdw 0 41107 NULL
162975 +enable_so_physical_start_stripe_41108 physical_start stripe 0 41108 NULL
162976 +enable_so_xfs_imap_lookup_fndecl_41113 xfs_imap_lookup fndecl 4-3 41113 NULL
162977 +enable_so_in_iovs_fuse_ioctl_out_41117 in_iovs fuse_ioctl_out 0 41117 NULL
162978 +enable_so_ubifs_wbuf_write_nolock_fndecl_41121 ubifs_wbuf_write_nolock fndecl 3 41121 NULL nohasharray
162979 +enable_so_bfad_iocmd_diag_dport_disable_fndecl_41121 bfad_iocmd_diag_dport_disable fndecl 0 41121 &enable_so_ubifs_wbuf_write_nolock_fndecl_41121
162980 +enable_so_datalen_brcmf_event_msg_41123 datalen brcmf_event_msg 0 41123 NULL
162981 +enable_so_ip_options_get_from_user_fndecl_41133 ip_options_get_from_user fndecl 4 41133 NULL
162982 +enable_so_data_out_pipe_uas_dev_info_41134 data_out_pipe uas_dev_info 0 41134 NULL
162983 +enable_so_data_len_b43_dfs_file_41135 data_len b43_dfs_file 0 41135 NULL
162984 +enable_so_qcaspi_read_burst_fndecl_41137 qcaspi_read_burst fndecl 3 41137 NULL
162985 +enable_so_nilfs_sufile_get_blkoff_fndecl_41139 nilfs_sufile_get_blkoff fndecl 0-2 41139 NULL
162986 +enable_so_hidp_process_report_fndecl_41140 hidp_process_report fndecl 4 41140 NULL
162987 +enable_so_usb_reset_and_verify_device_fndecl_41142 usb_reset_and_verify_device fndecl 0 41142 NULL
162988 +enable_so_ieee80211_cs_headroom_fndecl_41144 ieee80211_cs_headroom fndecl 0 41144 NULL
162989 +enable_so_rx_drvinfo_size_rtl_stats_41161 rx_drvinfo_size rtl_stats 0 41161 NULL
162990 +enable_so___blk_recalc_rq_segments_fndecl_41164 __blk_recalc_rq_segments fndecl 0 41164 NULL
162991 +enable_so_l2tp_ip6_sendmsg_fndecl_41166 l2tp_ip6_sendmsg fndecl 3 41166 NULL
162992 +enable_so_get_blocks_target_backend_ops_41168 get_blocks target_backend_ops 0 41168 NULL
162993 +enable_so_calib_fail_count_read_fndecl_41171 calib_fail_count_read fndecl 3 41171 NULL
162994 +enable_so_suspend_dtim_interval_read_fndecl_41176 suspend_dtim_interval_read fndecl 3 41176 NULL
162995 +enable_so_size_brnf_frag_data_41177 size brnf_frag_data 0 41177 NULL
162996 +enable_so_start_flakey_c_41178 start flakey_c 0 41178 NULL
162997 +enable_so_lro_wqe_sz_mlx5e_params_41180 lro_wqe_sz mlx5e_params 0 41180 NULL
162998 +enable_so_gfn_guest_walker64_41182 gfn guest_walker64 0 41182 NULL
162999 +enable_so_index_vardecl_via82xx_c_41183 index vardecl_via82xx.c 0 41183 NULL
163000 +enable_so_binder_set_nice_fndecl_41184 binder_set_nice fndecl 1 41184 NULL
163001 +enable_so_ndlc_probe_fndecl_41195 ndlc_probe fndecl 4 41195 NULL
163002 +enable_so_nr_pages_page_collect_41197 nr_pages page_collect 0 41197 NULL
163003 +enable_so_bfad_iocmd_qos_fndecl_41198 bfad_iocmd_qos fndecl 0 41198 NULL
163004 +enable_so_msb_cache_flush_fndecl_41200 msb_cache_flush fndecl 0 41200 NULL
163005 +enable_so_sq905_command_fndecl_41201 sq905_command fndecl 0 41201 NULL
163006 +enable_so_ipv4_tun_to_nlattr_fndecl_41204 ipv4_tun_to_nlattr fndecl 4 41204 NULL
163007 +enable_so_nr_acpi_bits_vardecl_xen_acpi_processor_c_41210 nr_acpi_bits vardecl_xen-acpi-processor.c 0 41210 NULL
163008 +enable_so_fanout_set_data_fndecl_41219 fanout_set_data fndecl 3 41219 NULL
163009 +enable_so_qib_n_krcv_queues_vardecl_41222 qib_n_krcv_queues vardecl 0 41222 NULL
163010 +enable_so_p9_client_read_fndecl_41223 p9_client_read fndecl 0 41223 NULL
163011 +enable_so_prctl_set_mm_fndecl_41225 prctl_set_mm fndecl 2-3 41225 NULL
163012 +enable_so_enic_change_mtu_fndecl_41227 enic_change_mtu fndecl 2 41227 NULL nohasharray
163013 +enable_so_iscsi_first_burst_len_dev_db_entry_41227 iscsi_first_burst_len dev_db_entry 0 41227 &enable_so_enic_change_mtu_fndecl_41227
163014 +enable_so_out_count_mdc800_data_41228 out_count mdc800_data 0 41228 NULL
163015 +enable_so_len_driver_data_41237 len driver_data 0 41237 NULL
163016 +enable_so_opera1_usb_i2c_msgxfer_fndecl_41242 opera1_usb_i2c_msgxfer fndecl 4 41242 NULL
163017 +enable_so_ses_send_diag_fndecl_41244 ses_send_diag fndecl 4 41244 NULL
163018 +enable_so_iwl_dbgfs_ucode_tracing_write_fndecl_41247 iwl_dbgfs_ucode_tracing_write fndecl 3 41247 NULL
163019 +enable_so___apei_exec_run_fndecl_41248 __apei_exec_run fndecl 0 41248 NULL
163020 +enable_so___spi_sync_fndecl_41250 __spi_sync fndecl 0 41250 NULL nohasharray
163021 +enable_so_init_size_rx_module_41250 init_size_rx module 0 41250 &enable_so___spi_sync_fndecl_41250
163022 +enable_so_croph_val_pvr2_hdw_41253 croph_val pvr2_hdw 0 41253 NULL
163023 +enable_so_get_res_add_align_fndecl_41257 get_res_add_align fndecl 0 41257 NULL
163024 +enable_so_qlen_sk_buff_head_41259 qlen sk_buff_head 0 41259 NULL nohasharray
163025 +enable_so_diva_os_alloc_message_buffer_fndecl_41259 diva_os_alloc_message_buffer fndecl 1 41259 &enable_so_qlen_sk_buff_head_41259
163026 +enable_so_byte_cnt_mlx4_cqe_41260 byte_cnt mlx4_cqe 0 41260 NULL
163027 +enable_so_do_erase_fndecl_41261 do_erase fndecl 2-4 41261 NULL
163028 +enable_so_lm8323_read_fndecl_41264 lm8323_read fndecl 4 41264 NULL
163029 +enable_so_blkdev_issue_zeroout_fndecl_41272 blkdev_issue_zeroout fndecl 3-2-0 41272 NULL
163030 +enable_so_rbd_obj_read_sync_fndecl_41273 rbd_obj_read_sync fndecl 4-3 41273 NULL
163031 +enable_so___btrfs_prealloc_file_range_fndecl_41278 __btrfs_prealloc_file_range fndecl 3 41278 NULL
163032 +enable_so_size_data_s_41281 size data_s 0 41281 NULL
163033 +enable_so_num_reg_defaults_raw_regmap_41282 num_reg_defaults_raw regmap 0 41282 NULL
163034 +enable_so_centre_horizontally_fndecl_41284 centre_horizontally fndecl 2 41284 NULL nohasharray
163035 +enable_so_vxfs_getblk_fndecl_41284 vxfs_getblk fndecl 2 41284 &enable_so_centre_horizontally_fndecl_41284
163036 +enable_so_dy_fb_fillrect_41289 dy fb_fillrect 0 41289 NULL nohasharray
163037 +enable_so_tcp_write_xmit_fndecl_41289 tcp_write_xmit fndecl 2 41289 &enable_so_dy_fb_fillrect_41289
163038 +enable_so_vb2_queue_init_fndecl_41292 vb2_queue_init fndecl 0 41292 NULL
163039 +enable_so_uni2char_nls_table_41293 uni2char nls_table 0 41293 NULL
163040 +enable_so_kfd_set_pasid_limit_fndecl_41300 kfd_set_pasid_limit fndecl 1 41300 NULL
163041 +enable_so_bop_check_delete_nilfs_bmap_operations_41302 bop_check_delete nilfs_bmap_operations 0 41302 NULL
163042 +enable_so_register_vlan_device_fndecl_41310 register_vlan_device fndecl 2 41310 NULL
163043 +enable_so_img_SRAM_size_fw_hdr_41311 img_SRAM_size fw_hdr 0 41311 NULL
163044 +enable_so_cma_declare_contiguous_fndecl_41316 cma_declare_contiguous fndecl 4-2-1-3-5 41316 NULL nohasharray
163045 +enable_so_block_start_extent_map_41316 block_start extent_map 0 41316 &enable_so_cma_declare_contiguous_fndecl_41316
163046 +enable_so_pc_len_s_pcon_41324 pc_len s_pcon 0 41324 NULL
163047 +enable_so_alt_port_mlx5_ib_qp_41327 alt_port mlx5_ib_qp 0 41327 NULL
163048 +enable_so_fdt_subnode_offset_fndecl_41332 fdt_subnode_offset fndecl 2 41332 NULL
163049 +enable_so_max_fcoe_exchanges_cnic_dev_41335 max_fcoe_exchanges cnic_dev 0 41335 NULL
163050 +enable_so_last_alloc_physical_block_ext2_block_alloc_info_41336 last_alloc_physical_block ext2_block_alloc_info 0 41336 NULL
163051 +enable_so_fanotify_write_fndecl_41340 fanotify_write fndecl 3 41340 NULL
163052 +enable_so_regmap_read_debugfs_fndecl_41345 regmap_read_debugfs fndecl 5 41345 NULL
163053 +enable_so_key_len_wmi_vdev_install_key_arg_41347 key_len wmi_vdev_install_key_arg 0 41347 NULL
163054 +enable_so_transport_lba_64_fndecl_41348 transport_lba_64 fndecl 0 41348 NULL
163055 +enable_so_ocfs2_read_xattr_block_fndecl_41350 ocfs2_read_xattr_block fndecl 0-2 41350 NULL nohasharray
163056 +enable_so_pool_create_fndecl_41350 pool_create fndecl 3 41350 &enable_so_ocfs2_read_xattr_block_fndecl_41350 nohasharray
163057 +enable_so_size_snd_info_entry_41350 size snd_info_entry 0 41350 &enable_so_pool_create_fndecl_41350 nohasharray
163058 +enable_so_tlbflush_read_file_fndecl_41350 tlbflush_read_file fndecl 3 41350 &enable_so_size_snd_info_entry_41350
163059 +enable_so_efx_tsoh_get_buffer_fndecl_41355 efx_tsoh_get_buffer fndecl 3 41355 NULL
163060 +enable_so_usb_stor_probe1_fndecl_41357 usb_stor_probe1 fndecl 0 41357 NULL
163061 +enable_so_rx_rx_out_of_mpdu_nodes_read_fndecl_41359 rx_rx_out_of_mpdu_nodes_read fndecl 3 41359 NULL
163062 +enable_so__iwl_dbgfs_d0i3_refs_write_fndecl_41361 _iwl_dbgfs_d0i3_refs_write fndecl 3 41361 NULL
163063 +enable_so_sl_ocrdma_dev_41367 sl ocrdma_dev 0 41367 NULL
163064 +enable_so_num_eq_entries_hba_parameters_41369 num_eq_entries hba_parameters 0 41369 NULL
163065 +enable_so_wrsent_cyberjack_private_41371 wrsent cyberjack_private 0 41371 NULL
163066 +enable_so_snic_dump_desc_fndecl_41372 snic_dump_desc fndecl 3 41372 NULL
163067 +enable_so_do_device_access_fndecl_41373 do_device_access fndecl 0-2-3 41373 NULL
163068 +enable_so_max_frame_size_mgsl_struct_41374 max_frame_size mgsl_struct 0 41374 NULL
163069 +enable_so_mremap_to_fndecl_41376 mremap_to fndecl 4-3-1-2 41376 NULL nohasharray
163070 +enable_so_sectors_per_block_era_41376 sectors_per_block era 0 41376 &enable_so_mremap_to_fndecl_41376 nohasharray
163071 +enable_so_TupleDataMax_tuple_t_41376 TupleDataMax tuple_t 0 41376 &enable_so_sectors_per_block_era_41376
163072 +enable_so_wsize_nfs_server_41387 wsize nfs_server 0 41387 NULL nohasharray
163073 +enable_so_atomic_write_len_kernfs_ops_41387 atomic_write_len kernfs_ops 0 41387 &enable_so_wsize_nfs_server_41387
163074 +enable_so_l_tree_depth_ocfs2_extent_list_41398 l_tree_depth ocfs2_extent_list 0 41398 NULL
163075 +enable_so_fat32_root_cluster_fat_bios_param_block_41399 fat32_root_cluster fat_bios_param_block 0 41399 NULL
163076 +enable_so_nr_free_zone_pages_fndecl_41403 nr_free_zone_pages fndecl 0 41403 NULL
163077 +enable_so_i2400m_msg_to_dev_fndecl_41409 i2400m_msg_to_dev fndecl 3 41409 NULL
163078 +enable_so_num_channels_fndecl_41411 num_channels fndecl 0-1 41411 NULL
163079 +enable_so_virtio_cread8_fndecl_41431 virtio_cread8 fndecl 0 41431 NULL
163080 +enable_so_dapm_bias_read_file_fndecl_41432 dapm_bias_read_file fndecl 3 41432 NULL
163081 +enable_so_snd_pcm_oss_capture_position_fixup_fndecl_41434 snd_pcm_oss_capture_position_fixup fndecl 0 41434 NULL
163082 +enable_so_l1_size_vardecl_acpi_extlog_c_41440 l1_size vardecl_acpi_extlog.c 0 41440 NULL
163083 +enable_so_vram_remap_vardecl_vesafb_c_41441 vram_remap vardecl_vesafb.c 0 41441 NULL
163084 +enable_so_rt2x00debug_write_csr_fndecl_41442 rt2x00debug_write_csr fndecl 3 41442 NULL
163085 +enable_so_udf_NLStoCS0_fndecl_41451 udf_NLStoCS0 fndecl 0 41451 NULL
163086 +enable_so_rf_blkno_ocfs2_refcount_tree_41452 rf_blkno ocfs2_refcount_tree 0 41452 NULL
163087 +enable_so_dm_wmfw_adsp1_alg_hdr_41454 dm wmfw_adsp1_alg_hdr 0 41454 NULL
163088 +enable_so_sensor_write_reg_fndecl_41455 sensor_write_reg fndecl 0 41455 NULL
163089 +enable_so_squashfs_read_inode_lookup_table_fndecl_41456 squashfs_read_inode_lookup_table fndecl 4 41456 NULL nohasharray
163090 +enable_so_max_pd_ib_device_attr_41456 max_pd ib_device_attr 0 41456 &enable_so_squashfs_read_inode_lookup_table_fndecl_41456
163091 +enable_so_mem_lseek_fndecl_41457 mem_lseek fndecl 2 41457 NULL nohasharray
163092 +enable_so_s_inodes_per_block_ext4_sb_info_41457 s_inodes_per_block ext4_sb_info 0 41457 &enable_so_mem_lseek_fndecl_41457
163093 +enable_so_tx_fifo_override_sh_msiof_spi_info_41461 tx_fifo_override sh_msiof_spi_info 0 41461 NULL
163094 +enable_so_bio_map_kern_fndecl_41468 bio_map_kern fndecl 3 41468 NULL
163095 +enable_so_pageshift_alauda_media_info_41469 pageshift alauda_media_info 0 41469 NULL nohasharray
163096 +enable_so_sd_qc_per_block_gfs2_sbd_41469 sd_qc_per_block gfs2_sbd 0 41469 &enable_so_pageshift_alauda_media_info_41469
163097 +enable_so_s_len_qib_qp_41471 s_len qib_qp 0 41471 NULL nohasharray
163098 +enable_so_major_nr_vardecl_umem_c_41471 major_nr vardecl_umem.c 0 41471 &enable_so_s_len_qib_qp_41471
163099 +enable_so_redirected_tty_write_fndecl_41474 redirected_tty_write fndecl 3 41474 NULL
163100 +enable_so_get_var_len_fndecl_41483 get_var_len fndecl 0 41483 NULL
163101 +enable_so_video_offset_sis_video_info_41491 video_offset sis_video_info 0 41491 NULL
163102 +enable_so_lpddr_info_query_fndecl_41492 lpddr_info_query fndecl 0 41492 NULL
163103 +enable_so_compat_core_sys_select_fndecl_41494 compat_core_sys_select fndecl 1 41494 NULL
163104 +enable_so_dir_entries_fat_floppy_defaults_41499 dir_entries fat_floppy_defaults 0 41499 NULL
163105 +enable_so_mpi_set_buffer_fndecl_41501 mpi_set_buffer fndecl 3 41501 NULL
163106 +enable_so_irda_param_insert_fndecl_41502 irda_param_insert fndecl 0 41502 NULL
163107 +enable_so_max_shutter_mt9v032_model_data_41509 max_shutter mt9v032_model_data 0 41509 NULL
163108 +enable_so_b_fifo_size_hfcSX_hw_41512 b_fifo_size hfcSX_hw 0 41512 NULL
163109 +enable_so_dccp_setsockopt_service_fndecl_41515 dccp_setsockopt_service fndecl 4 41515 NULL
163110 +enable_so_vpi_atm_vcc_41519 vpi atm_vcc 0 41519 NULL
163111 +enable_so_nfc_hci_execute_cmd_async_fndecl_41521 nfc_hci_execute_cmd_async fndecl 5 41521 NULL
163112 +enable_so_lv_niovecs_xfs_log_vec_41525 lv_niovecs xfs_log_vec 0 41525 NULL nohasharray
163113 +enable_so_pcpu_unit_pages_vardecl_percpu_c_41525 pcpu_unit_pages vardecl_percpu.c 0 41525 &enable_so_lv_niovecs_xfs_log_vec_41525 nohasharray
163114 +enable_so_unpack_array_fndecl_41525 unpack_array fndecl 0 41525 &enable_so_pcpu_unit_pages_vardecl_percpu_c_41525
163115 +enable_so_max_targets_orc_host_41530 max_targets orc_host 0 41530 NULL
163116 +enable_so_pci_vpd_find_tag_fndecl_41534 pci_vpd_find_tag fndecl 0-2 41534 NULL
163117 +enable_so_alloc_cpu_rmap_fndecl_41536 alloc_cpu_rmap fndecl 1 41536 NULL
163118 +enable_so_sv_xdrsize_svc_serv_41544 sv_xdrsize svc_serv 0 41544 NULL nohasharray
163119 +enable_so_iwl_dbgfs_netdetect_read_fndecl_41544 iwl_dbgfs_netdetect_read fndecl 3 41544 &enable_so_sv_xdrsize_svc_serv_41544
163120 +enable_so_velocity_change_mtu_fndecl_41548 velocity_change_mtu fndecl 2 41548 NULL
163121 +enable_so_nr_online_nodes_vardecl_41549 nr_online_nodes vardecl 0 41549 NULL
163122 +enable_so_ntargets_aoedev_41550 ntargets aoedev 0 41550 NULL
163123 +enable_so_set_extent_defrag_fndecl_41558 set_extent_defrag fndecl 3-2 41558 NULL
163124 +enable_so_max_nr_ports_virtio_console_config_41559 max_nr_ports virtio_console_config 0 41559 NULL
163125 +enable_so_dma_rx_requested_read_fndecl_41561 dma_rx_requested_read fndecl 3 41561 NULL
163126 +enable_so_stv0680_handle_error_fndecl_41563 stv0680_handle_error fndecl 0-2 41563 NULL
163127 +enable_so_sb_blocklog_xfs_sb_41568 sb_blocklog xfs_sb 0 41568 NULL
163128 +enable_so___alloc_bootmem_nopanic_fndecl_41574 __alloc_bootmem_nopanic fndecl 2-1-3 41574 NULL
163129 +enable_so___read_vmcore_fndecl_41577 __read_vmcore fndecl 2 41577 NULL
163130 +enable_so_mtd_get_device_size_fndecl_41579 mtd_get_device_size fndecl 0 41579 NULL
163131 +enable_so_FirstBurstLength_iscsi_sess_ops_41581 FirstBurstLength iscsi_sess_ops 0 41581 NULL nohasharray
163132 +enable_so_iio_device_add_channel_sysfs_fndecl_41581 iio_device_add_channel_sysfs fndecl 0 41581 &enable_so_FirstBurstLength_iscsi_sess_ops_41581
163133 +enable_so_rx_buffersize_b43legacy_dmaring_41583 rx_buffersize b43legacy_dmaring 0 41583 NULL
163134 +enable_so_fuse_write_end_fndecl_41587 fuse_write_end fndecl 5-3 41587 NULL
163135 +enable_so_pwr_sleep_percent_read_fndecl_41600 pwr_sleep_percent_read fndecl 3 41600 NULL
163136 +enable_so_vmw_gb_shader_init_fndecl_41607 vmw_gb_shader_init fndecl 3 41607 NULL
163137 +enable_so_xpc_kzalloc_cacheline_aligned_fndecl_41610 xpc_kzalloc_cacheline_aligned fndecl 1 41610 NULL
163138 +enable_so_vmalloc_to_pfn_fndecl_41614 vmalloc_to_pfn fndecl 0 41614 NULL
163139 +enable_so_ocfs2_write_begin_nolock_fndecl_41617 ocfs2_write_begin_nolock fndecl 3 41617 NULL nohasharray
163140 +enable_so_hba_queue_depth_MPT3SAS_ADAPTER_41617 hba_queue_depth MPT3SAS_ADAPTER 0 41617 &enable_so_ocfs2_write_begin_nolock_fndecl_41617
163141 +enable_so_jffs2_gc_fetch_inode_fndecl_41629 jffs2_gc_fetch_inode fndecl 2 41629 NULL
163142 +enable_so_drm_calloc_large_fndecl_41630 drm_calloc_large fndecl 1-2 41630 NULL
163143 +enable_so_read_buf_fndecl_41631 read_buf fndecl 3-0 41631 NULL
163144 +enable_so_dev_major_cuse_init_out_41635 dev_major cuse_init_out 0 41635 NULL
163145 +enable_so_dm_bm_prefetch_fndecl_41636 dm_bm_prefetch fndecl 2 41636 NULL
163146 +enable_so_tx_ring_size_jme_adapter_41640 tx_ring_size jme_adapter 0 41640 NULL
163147 +enable_so_bfad_iocmd_diag_temp_fndecl_41641 bfad_iocmd_diag_temp fndecl 0 41641 NULL
163148 +enable_so_rate_twl4030_priv_41642 rate twl4030_priv 0 41642 NULL
163149 +enable_so_fnode_hpfs_dirent_41643 fnode hpfs_dirent 0 41643 NULL
163150 +enable_so_clear_user_fndecl_41645 clear_user fndecl 2 41645 NULL
163151 +enable_so_rx_buffer_len_e1000_adapter_41647 rx_buffer_len e1000_adapter 0 41647 NULL
163152 +enable_so_usb_alloc_coherent_fndecl_41655 usb_alloc_coherent fndecl 2 41655 NULL
163153 +enable_so_data_length_bnx2i_reject_msg_41661 data_length bnx2i_reject_msg 0 41661 NULL
163154 +enable_so_blk_mq_end_request_fndecl_41663 blk_mq_end_request fndecl 2 41663 NULL
163155 +enable_so_dpcm_state_read_file_fndecl_41666 dpcm_state_read_file fndecl 3 41666 NULL
163156 +enable_so_error_null_frame_cts_start_read_fndecl_41668 error_null_frame_cts_start_read fndecl 3 41668 NULL
163157 +enable_so_selnl_msglen_fndecl_41672 selnl_msglen fndecl 0 41672 NULL
163158 +enable_so_qib_create_ctxtdata_fndecl_41674 qib_create_ctxtdata fndecl 2 41674 NULL
163159 +enable_so_vram_start_vmw_private_41679 vram_start vmw_private 0 41679 NULL
163160 +enable_so_link_frequency_ov2659_platform_data_41684 link_frequency ov2659_platform_data 0 41684 NULL
163161 +enable_so_encrypted_filename_size_ecryptfs_filename_41686 encrypted_filename_size ecryptfs_filename 0 41686 NULL nohasharray
163162 +enable_so_firstUnit_INFTLPartition_41686 firstUnit INFTLPartition 0 41686 &enable_so_encrypted_filename_size_ecryptfs_filename_41686
163163 +enable_so_mem_zatm_dev_41696 mem zatm_dev 0 41696 NULL
163164 +enable_so_nvme_trans_standard_inquiry_page_fndecl_41701 nvme_trans_standard_inquiry_page fndecl 4 41701 NULL
163165 +enable_so_length_usbtest_param_41702 length usbtest_param 0 41702 NULL
163166 +enable_so_zoran_v4l2_calc_bufsize_fndecl_41703 zoran_v4l2_calc_bufsize fndecl 0 41703 NULL
163167 +enable_so_bfs_move_blocks_fndecl_41706 bfs_move_blocks fndecl 2-4 41706 NULL
163168 +enable_so_tree_mod_log_eb_copy_fndecl_41708 tree_mod_log_eb_copy fndecl 6 41708 NULL
163169 +enable_so_mac_free_res_fndecl_41714 mac_free_res fndecl 7 41714 NULL nohasharray
163170 +enable_so_ax25_recvmsg_fndecl_41714 ax25_recvmsg fndecl 3 41714 &enable_so_mac_free_res_fndecl_41714
163171 +enable_so_l_curr_block_xlog_41718 l_curr_block xlog 0 41718 NULL
163172 +enable_so_strstart_deflate_state_41719 strstart deflate_state 0 41719 NULL
163173 +enable_so_hlen_ip_tunnel_41720 hlen ip_tunnel 0 41720 NULL
163174 +enable_so_width_tw68_dev_41726 width tw68_dev 0 41726 NULL
163175 +enable_so_xp_max_npartitions_vardecl_41728 xp_max_npartitions vardecl 0 41728 NULL
163176 +enable_so_gfs2_dir_mvino_fndecl_41733 gfs2_dir_mvino fndecl 4 41733 NULL
163177 +enable_so_sb_sectlog_xfs_sb_41740 sb_sectlog xfs_sb 0 41740 NULL
163178 +enable_so_v4l2_ctrl_handler_init_class_fndecl_41742 v4l2_ctrl_handler_init_class fndecl 2 41742 NULL
163179 +enable_so_cxgb3i_max_connect_vardecl_cxgb3i_c_41744 cxgb3i_max_connect vardecl_cxgb3i.c 0 41744 NULL
163180 +enable_so_val_xfs_sysctl_val_41747 val xfs_sysctl_val 0 41747 NULL
163181 +enable_so_iic_tpm_read_fndecl_41748 iic_tpm_read fndecl 3 41748 NULL
163182 +enable_so_intel_fb_align_height_fndecl_41750 intel_fb_align_height fndecl 0-2 41750 NULL
163183 +enable_so_bm_key_affs_bm_info_41751 bm_key affs_bm_info 0 41751 NULL
163184 +enable_so_encode_filename3_fndecl_41752 encode_filename3 fndecl 3 41752 NULL
163185 +enable_so_insert_dent_fndecl_41753 insert_dent fndecl 3-4-7 41753 NULL
163186 +enable_so_i_metasize_romfs_inode_info_41756 i_metasize romfs_inode_info 0 41756 NULL
163187 +enable_so_ovs_nla_add_action_fndecl_41757 ovs_nla_add_action fndecl 4-0 41757 NULL
163188 +enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763 bnx2fc_process_l2_frame_compl fndecl 3 41763 NULL nohasharray
163189 +enable_so_size_port_buffer_41763 size port_buffer 0 41763 &enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763
163190 +enable_so_len_cbuf_41764 len cbuf 0 41764 NULL nohasharray
163191 +enable_so_bbt_erase_shift_nand_chip_41764 bbt_erase_shift nand_chip 0 41764 &enable_so_len_cbuf_41764
163192 +enable_so___alloc_bootmem_node_high_fndecl_41767 __alloc_bootmem_node_high fndecl 3-2-4 41767 NULL
163193 +enable_so_batadv_socket_write_fndecl_41768 batadv_socket_write fndecl 3 41768 NULL
163194 +enable_so_ocfs2_truncate_cluster_pages_fndecl_41773 ocfs2_truncate_cluster_pages fndecl 2-3 41773 NULL
163195 +enable_so_pcibios_enable_device_fndecl_41776 pcibios_enable_device fndecl 0 41776 NULL
163196 +enable_so_ath9k_multi_regread_fndecl_41779 ath9k_multi_regread fndecl 4 41779 NULL
163197 +enable_so_dma_rx_size_stmmac_priv_41781 dma_rx_size stmmac_priv 0 41781 NULL nohasharray
163198 +enable_so_pg_vec_len_packet_ring_buffer_41781 pg_vec_len packet_ring_buffer 0 41781 &enable_so_dma_rx_size_stmmac_priv_41781
163199 +enable_so_numtx_velocity_opt_41785 numtx velocity_opt 0 41785 NULL
163200 +enable_so_num_bytes_drm_dp_remote_i2c_write_41786 num_bytes drm_dp_remote_i2c_write 0 41786 NULL
163201 +enable_so_make_idx_node_fndecl_41791 make_idx_node fndecl 6-5 41791 NULL nohasharray
163202 +enable_so_max_msg_length_mei_client_properties_41791 max_msg_length mei_client_properties 0 41791 &enable_so_make_idx_node_fndecl_41791
163203 +enable_so_usbtest_alloc_urb_fndecl_41800 usbtest_alloc_urb fndecl 3-5-2 41800 NULL
163204 +enable_so_rx_pkt_length_rxpd_41805 rx_pkt_length rxpd 0 41805 NULL
163205 +enable_so_alloc_ksz_desc_info_41806 alloc ksz_desc_info 0 41806 NULL nohasharray
163206 +enable_so_outlen_mlx5_cmd_debug_41806 outlen mlx5_cmd_debug 0 41806 &enable_so_alloc_ksz_desc_info_41806
163207 +enable_so_ath9k_dump_mci_btcoex_fndecl_41809 ath9k_dump_mci_btcoex fndecl 0 41809 NULL
163208 +enable_so_udf_get_pblock_fndecl_41813 udf_get_pblock fndecl 0-4-2 41813 NULL nohasharray
163209 +enable_so_T9_reportid_min_mxt_data_41813 T9_reportid_min mxt_data 0 41813 &enable_so_udf_get_pblock_fndecl_41813
163210 +enable_so_sisusb_num_columns_sisusb_usb_data_41814 sisusb_num_columns sisusb_usb_data 0 41814 NULL nohasharray
163211 +enable_so_scsi_add_host_with_dma_fndecl_41814 scsi_add_host_with_dma fndecl 0 41814 &enable_so_sisusb_num_columns_sisusb_usb_data_41814
163212 +enable_so_nports_cxgb4_lld_info_41815 nports cxgb4_lld_info 0 41815 NULL
163213 +enable_so_vmw_cmdbuf_alloc_space_fndecl_41823 vmw_cmdbuf_alloc_space fndecl 3 41823 NULL
163214 +enable_so_n_ssids_wmi_start_scan_arg_41826 n_ssids wmi_start_scan_arg 0 41826 NULL
163215 +enable_so_fcs_del_mlx4_en_rx_ring_41830 fcs_del mlx4_en_rx_ring 0 41830 NULL
163216 +enable_so_wdt87xx_get_string_fndecl_41835 wdt87xx_get_string fndecl 4 41835 NULL
163217 +enable_so_root_btrfs_super_block_41846 root btrfs_super_block 0 41846 NULL
163218 +enable_so_al_tr_number_drbd_device_41847 al_tr_number drbd_device 0 41847 NULL
163219 +enable_so_max_tags_index_Tekram_nvram_41851 max_tags_index Tekram_nvram 0 41851 NULL
163220 +enable_so_ar5523_cmd_write_fndecl_41852 ar5523_cmd_write fndecl 4 41852 NULL nohasharray
163221 +enable_so_free_bootmem_node_fndecl_41852 free_bootmem_node fndecl 3-2 41852 &enable_so_ar5523_cmd_write_fndecl_41852 nohasharray
163222 +enable_so_nf_setsockopt_fndecl_41852 nf_setsockopt fndecl 0 41852 &enable_so_free_bootmem_node_fndecl_41852
163223 +enable_so_tx_headroom_nfc_dev_41854 tx_headroom nfc_dev 0 41854 NULL nohasharray
163224 +enable_so_compatsize_xt_target_41854 compatsize xt_target 0 41854 &enable_so_tx_headroom_nfc_dev_41854
163225 +enable_so_max_header_size_smb_version_values_41855 max_header_size smb_version_values 0 41855 NULL
163226 +enable_so_dm_add_exception_fndecl_41858 dm_add_exception fndecl 3-2 41858 NULL nohasharray
163227 +enable_so_ino_nilfs_fid_41858 ino nilfs_fid 0 41858 &enable_so_dm_add_exception_fndecl_41858
163228 +enable_so_ext_tree_mark_written_fndecl_41860 ext_tree_mark_written fndecl 2-3 41860 NULL nohasharray
163229 +enable_so_nla_reserve_nohdr_fndecl_41860 nla_reserve_nohdr fndecl 2 41860 &enable_so_ext_tree_mark_written_fndecl_41860
163230 +enable_so_num_tags_esp_41863 num_tags esp 0 41863 NULL
163231 +enable_so_i2c_smbus_xfer_emulated_fndecl_41868 i2c_smbus_xfer_emulated fndecl 0 41868 NULL nohasharray
163232 +enable_so_ssb_bus_register_fndecl_41868 ssb_bus_register fndecl 3 41868 &enable_so_i2c_smbus_xfer_emulated_fndecl_41868
163233 +enable_so_snd_rme96_capture_getrate_fndecl_41874 snd_rme96_capture_getrate fndecl 0 41874 NULL
163234 +enable_so_md_size_sect_drbd_md_41886 md_size_sect drbd_md 0 41886 NULL
163235 +enable_so_rcvidx_fritz_bcs_41889 rcvidx fritz_bcs 0 41889 NULL
163236 +enable_so_qib_rcvhdrcnt_vardecl_qib_iba7322_c_41890 qib_rcvhdrcnt vardecl_qib_iba7322.c 0 41890 NULL
163237 +enable_so_RequestFrameSize__MSG_IOC_FACTS_REPLY_41895 RequestFrameSize _MSG_IOC_FACTS_REPLY 0 41895 NULL
163238 +enable_so_from_seq_file_41897 from seq_file 0 41897 NULL
163239 +enable_so_mem_unit_sysinfo_41901 mem_unit sysinfo 0 41901 NULL
163240 +enable_so_wm8900_set_fll_fndecl_41903 wm8900_set_fll fndecl 3-4 41903 NULL
163241 +enable_so_length_zoran_sync_41909 length zoran_sync 0 41909 NULL
163242 +enable_so_vid_batadv_tvlv_tt_vlan_data_41912 vid batadv_tvlv_tt_vlan_data 0 41912 NULL
163243 +enable_so_raw_decoder_line_size_vbi_info_41920 raw_decoder_line_size vbi_info 0 41920 NULL
163244 +enable_so_b_read_mon_reader_bin_41923 b_read mon_reader_bin 0 41923 NULL nohasharray
163245 +enable_so_print_endpoint_stat_fndecl_41923 print_endpoint_stat fndecl 0-4 41923 &enable_so_b_read_mon_reader_bin_41923
163246 +enable_so_wil_pmc_llseek_fndecl_41924 wil_pmc_llseek fndecl 2 41924 NULL nohasharray
163247 +enable_so_num_descriptors_wmi_p2p_noa_info_41924 num_descriptors wmi_p2p_noa_info 0 41924 &enable_so_wil_pmc_llseek_fndecl_41924
163248 +enable_so_dm_complete_request_fndecl_41925 dm_complete_request fndecl 2 41925 NULL
163249 +enable_so_byte_cnt_mthca_cqe_41927 byte_cnt mthca_cqe 0 41927 NULL
163250 +enable_so_whci_n_caps_fndecl_41932 whci_n_caps fndecl 0 41932 NULL
163251 +enable_so_ss_nblocks_nilfs_segment_summary_41935 ss_nblocks nilfs_segment_summary 0 41935 NULL
163252 +enable_so_rx_rx_done_read_fndecl_41938 rx_rx_done_read fndecl 3 41938 NULL
163253 +enable_so_n_sel_arg_struct_41940 n sel_arg_struct 0 41940 NULL
163254 +enable_so_rmmio_size_cirrus_device_41950 rmmio_size cirrus_device 0 41950 NULL
163255 +enable_so_smb_buf_length_smb_hdr_41959 smb_buf_length smb_hdr 0 41959 NULL nohasharray
163256 +enable_so_kmem_zalloc_greedy_fndecl_41959 kmem_zalloc_greedy fndecl 3-2 41959 &enable_so_smb_buf_length_smb_hdr_41959
163257 +enable_so_ide_init_sg_cmd_fndecl_41962 ide_init_sg_cmd fndecl 2 41962 NULL
163258 +enable_so_xfs_hex_dump_fndecl_41963 xfs_hex_dump fndecl 2 41963 NULL
163259 +enable_so_relay_open_fndecl_41964 relay_open fndecl 3-4 41964 NULL nohasharray
163260 +enable_so_ccp_reverse_get_dm_area_fndecl_41964 ccp_reverse_get_dm_area fndecl 3 41964 &enable_so_relay_open_fndecl_41964 nohasharray
163261 +enable_so_connector_dcb_output_41964 connector dcb_output 0 41964 &enable_so_ccp_reverse_get_dm_area_fndecl_41964 nohasharray
163262 +enable_so_kmalloc_parameter_fndecl_41964 kmalloc_parameter fndecl 1 41964 &enable_so_connector_dcb_output_41964
163263 +enable_so_n_rbuf_srpt_send_ioctx_41965 n_rbuf srpt_send_ioctx 0 41965 NULL
163264 +enable_so_length_ccp_dm_workarea_41966 length ccp_dm_workarea 0 41966 NULL
163265 +enable_so_ctl_mapbase_timberdale_device_41969 ctl_mapbase timberdale_device 0 41969 NULL
163266 +enable_so_width_fb_copyarea_41973 width fb_copyarea 0 41973 NULL
163267 +enable_so_hsync_ast_vbios_enhtable_41977 hsync ast_vbios_enhtable 0 41977 NULL nohasharray
163268 +enable_so_max_req_queues_qla_hw_data_41977 max_req_queues qla_hw_data 0 41977 &enable_so_hsync_ast_vbios_enhtable_41977
163269 +enable_so_f3_id_amd64_family_type_41979 f3_id amd64_family_type 0 41979 NULL
163270 +enable_so___send_control_msg_fndecl_41986 __send_control_msg fndecl 2-0 41986 NULL
163271 +enable_so_va_end_vmap_area_41988 va_end vmap_area 0 41988 NULL
163272 +enable_so_snd_pcm_oss_read1_fndecl_41992 snd_pcm_oss_read1 fndecl 3 41992 NULL
163273 +enable_so_snd_opl4_mem_proc_read_fndecl_41997 snd_opl4_mem_proc_read fndecl 5 41997 NULL
163274 +enable_so_total_byte_count_els_sts_entry_24xx_41999 total_byte_count els_sts_entry_24xx 0 41999 NULL
163275 +enable_so_vb2_vmalloc_attach_dmabuf_fndecl_42001 vb2_vmalloc_attach_dmabuf fndecl 3 42001 NULL
163276 +enable_so_selinux_secctx_to_secid_fndecl_42003 selinux_secctx_to_secid fndecl 2 42003 NULL
163277 +enable_so_set_flicker_fndecl_42011 set_flicker fndecl 0 42011 NULL
163278 +enable_so_batadv_tt_global_hash_count_fndecl_42014 batadv_tt_global_hash_count fndecl 3 42014 NULL
163279 +enable_so_svc_rdma_xdr_decode_req_fndecl_42015 svc_rdma_xdr_decode_req fndecl 0 42015 NULL nohasharray
163280 +enable_so_pci_add_new_bus_fndecl_42015 pci_add_new_bus fndecl 3 42015 &enable_so_svc_rdma_xdr_decode_req_fndecl_42015
163281 +enable_so___ieee80211_start_rx_ba_session_fndecl_42023 __ieee80211_start_rx_ba_session fndecl 7 42023 NULL
163282 +enable_so_seq_ports_snd_emu10k1_synth_arg_42026 seq_ports snd_emu10k1_synth_arg 0 42026 NULL
163283 +enable_so_do_mem_probe_fndecl_42028 do_mem_probe fndecl 3-2 42028 NULL nohasharray
163284 +enable_so_copy_nodes_to_user_fndecl_42028 copy_nodes_to_user fndecl 2 42028 &enable_so_do_mem_probe_fndecl_42028
163285 +enable_so_mwifiex_11n_create_rx_reorder_tbl_fndecl_42029 mwifiex_11n_create_rx_reorder_tbl fndecl 4 42029 NULL
163286 +enable_so_spidev_compat_ioctl_fndecl_42033 spidev_compat_ioctl fndecl 2 42033 NULL
163287 +enable_so_ctrl_frame_len_brcmf_sdio_42037 ctrl_frame_len brcmf_sdio 0 42037 NULL
163288 +enable_so_reiserfs_new_inode_fndecl_42039 reiserfs_new_inode fndecl 5 42039 NULL
163289 +enable_so_rx_hr_cfv_info_42044 rx_hr cfv_info 0 42044 NULL
163290 +enable_so_num_tx_qp_i40e_hw_capabilities_42045 num_tx_qp i40e_hw_capabilities 0 42045 NULL nohasharray
163291 +enable_so_num_tid_range_42045 num tid_range 0 42045 &enable_so_num_tx_qp_i40e_hw_capabilities_42045
163292 +enable_so_PortSCSIID__MSG_PORT_FACTS_REPLY_42048 PortSCSIID _MSG_PORT_FACTS_REPLY 0 42048 NULL
163293 +enable_so_regmap_multi_reg_write_fndecl_42049 regmap_multi_reg_write fndecl 3 42049 NULL
163294 +enable_so_sel_write_load_fndecl_42053 sel_write_load fndecl 3 42053 NULL
163295 +enable_so_kvm_init_fndecl_42057 kvm_init fndecl 2-3 42057 NULL nohasharray
163296 +enable_so_fm_tx_get_tune_cap_val_fndecl_42057 fm_tx_get_tune_cap_val fndecl 0 42057 &enable_so_kvm_init_fndecl_42057
163297 +enable_so_fat_add_new_entries_fndecl_42062 fat_add_new_entries fndecl 0 42062 NULL
163298 +enable_so_blk_limits_io_min_fndecl_42065 blk_limits_io_min fndecl 2 42065 NULL nohasharray
163299 +enable_so_b_flags_ivtv_buffer_42065 b_flags ivtv_buffer 0 42065 &enable_so_blk_limits_io_min_fndecl_42065
163300 +enable_so_frag_size_ipv6_pinfo_42073 frag_size ipv6_pinfo 0 42073 NULL
163301 +enable_so_nci_hci_send_event_fndecl_42074 nci_hci_send_event fndecl 5 42074 NULL
163302 +enable_so_ieee80211_scan_results_fndecl_42078 ieee80211_scan_results fndecl 0 42078 NULL
163303 +enable_so_mlx4_ib_rereg_user_mr_fndecl_42079 mlx4_ib_rereg_user_mr fndecl 3-4 42079 NULL nohasharray
163304 +enable_so_ath6kl_wmi_set_rx_frame_format_cmd_fndecl_42079 ath6kl_wmi_set_rx_frame_format_cmd fndecl 2 42079 &enable_so_mlx4_ib_rereg_user_mr_fndecl_42079
163305 +enable_so_i2c_bus_vardecl_i2c_kempld_c_42082 i2c_bus vardecl_i2c-kempld.c 0 42082 NULL
163306 +enable_so_namelen_xenpf_symdata_42085 namelen xenpf_symdata 0 42085 NULL
163307 +enable_so_raw_issuer_size_x509_certificate_42091 raw_issuer_size x509_certificate 0 42091 NULL
163308 +enable_so_rtsx_pci_send_cmd_fndecl_42093 rtsx_pci_send_cmd fndecl 0 42093 NULL
163309 +enable_so_outsize_cros_ec_command_42095 outsize cros_ec_command 0 42095 NULL
163310 +enable_so_do_syslog_fndecl_42100 do_syslog fndecl 3 42100 NULL
163311 +enable_so_gtt_size_radeon_mc_42102 gtt_size radeon_mc 0 42102 NULL nohasharray
163312 +enable_so_proc_pid_attr_write_fndecl_42102 proc_pid_attr_write fndecl 3 42102 &enable_so_gtt_size_radeon_mc_42102
163313 +enable_so_value_xen_hvm_param_42103 value xen_hvm_param 0 42103 NULL
163314 +enable_so_image_offset_sd_42111 image_offset sd 0 42111 NULL
163315 +enable_so_efs_bmap_fndecl_42112 efs_bmap fndecl 0-2 42112 NULL
163316 +enable_so_jbd2_journal_init_dev_fndecl_42115 jbd2_journal_init_dev fndecl 5-3 42115 NULL
163317 +enable_so_ceph_tcp_sendmsg_fndecl_42116 ceph_tcp_sendmsg fndecl 0-4-3 42116 NULL
163318 +enable_so_xhci_alloc_stream_info_fndecl_42125 xhci_alloc_stream_info fndecl 3 42125 NULL
163319 +enable_so_divas_write_fndecl_42126 divas_write fndecl 3 42126 NULL
163320 +enable_so_mlx4_en_init_netdev_fndecl_42133 mlx4_en_init_netdev fndecl 2 42133 NULL
163321 +enable_so_smb2_sync_write_fndecl_42139 smb2_sync_write fndecl 6 42139 NULL
163322 +enable_so_snd_compr_write_fndecl_42144 snd_compr_write fndecl 3 42144 NULL
163323 +enable_so_uvc_alloc_urb_buffers_fndecl_42145 uvc_alloc_urb_buffers fndecl 0-3-2 42145 NULL
163324 +enable_so_num_cliprects_drm_i915_gem_execbuffer2_42146 num_cliprects drm_i915_gem_execbuffer2 0 42146 NULL
163325 +enable_so_ath6kl_wmi_set_lpreamble_cmd_fndecl_42153 ath6kl_wmi_set_lpreamble_cmd fndecl 2 42153 NULL
163326 +enable_so_channels_audioformat_42156 channels audioformat 0 42156 NULL nohasharray
163327 +enable_so_cnic_support_bnx2x_42156 cnic_support bnx2x 0 42156 &enable_so_channels_audioformat_42156
163328 +enable_so_bfad_iocmd_cfg_trunk_fndecl_42157 bfad_iocmd_cfg_trunk fndecl 0 42157 NULL
163329 +enable_so_status_de4x5_desc_42161 status de4x5_desc 0 42161 NULL
163330 +enable_so_height_em28xx_v4l2_42166 height em28xx_v4l2 0 42166 NULL
163331 +enable_so_s_root_block_reiserfs_super_block_v1_42167 s_root_block reiserfs_super_block_v1 0 42167 NULL
163332 +enable_so_copy_from_iter_nocache_fndecl_42168 copy_from_iter_nocache fndecl 2 42168 NULL
163333 +enable_so_next_bucket_prio_set_42171 next_bucket prio_set 0 42171 NULL
163334 +enable_so_start_file_extent_cluster_42173 start file_extent_cluster 0 42173 NULL
163335 +enable_so_block_size_msb_data_42179 block_size msb_data 0 42179 NULL
163336 +enable_so_id_sh_mobile_ceu_companion_42182 id sh_mobile_ceu_companion 0 42182 NULL
163337 +enable_so_stv0367_writeregs_fndecl_42183 stv0367_writeregs fndecl 4 42183 NULL
163338 +enable_so_s2255_fillbuff_fndecl_42189 s2255_fillbuff fndecl 3 42189 NULL
163339 +enable_so___team_options_register_fndecl_42198 __team_options_register fndecl 3 42198 NULL
163340 +enable_so_mc_handle_present_pte_fndecl_42199 mc_handle_present_pte fndecl 2 42199 NULL nohasharray
163341 +enable_so_afs_send_simple_reply_fndecl_42199 afs_send_simple_reply fndecl 3 42199 &enable_so_mc_handle_present_pte_fndecl_42199
163342 +enable_so_udl_alloc_urb_list_fndecl_42203 udl_alloc_urb_list fndecl 3 42203 NULL
163343 +enable_so_construct_key_and_link_fndecl_42210 construct_key_and_link fndecl 3 42210 NULL
163344 +enable_so_skb_push_fndecl_42213 skb_push fndecl 2 42213 NULL
163345 +enable_so_scan_padding_bytes_fndecl_42218 scan_padding_bytes fndecl 0 42218 NULL
163346 +enable_so_proto_tnl_ptk_info_42224 proto tnl_ptk_info 0 42224 NULL
163347 +enable_so_set_bredr_fndecl_42228 set_bredr fndecl 4 42228 NULL nohasharray
163348 +enable_so_diva_xdi_write_fndecl_42228 diva_xdi_write fndecl 4 42228 &enable_so_set_bredr_fndecl_42228
163349 +enable_so_dwMaxVideoFrameBufferSize_uvc_frame_42230 dwMaxVideoFrameBufferSize uvc_frame 0 42230 NULL
163350 +enable_so_num_q_vectors_igb_adapter_42232 num_q_vectors igb_adapter 0 42232 NULL
163351 +enable_so_chunksize_mdp_superblock_1_42236 chunksize mdp_superblock_1 0 42236 NULL nohasharray
163352 +enable_so_max_data_size_irda_sock_42236 max_data_size irda_sock 0 42236 &enable_so_chunksize_mdp_superblock_1_42236
163353 +enable_so_scrollback_phys_max_vardecl_fbcon_c_42241 scrollback_phys_max vardecl_fbcon.c 0 42241 NULL
163354 +enable_so_len_wmi_tlv_42244 len wmi_tlv 0 42244 NULL
163355 +enable_so_buf_write_ptr_comedi_async_42247 buf_write_ptr comedi_async 0 42247 NULL
163356 +enable_so_nchunks_radeon_cs_parser_42251 nchunks radeon_cs_parser 0 42251 NULL
163357 +enable_so_iwl_dbgfs_bcast_filters_read_fndecl_42258 iwl_dbgfs_bcast_filters_read fndecl 3 42258 NULL
163358 +enable_so_read_kcore_fndecl_42259 read_kcore fndecl 3 42259 NULL
163359 +enable_so_bfad_iocmd_rport_get_attr_fndecl_42263 bfad_iocmd_rport_get_attr fndecl 0 42263 NULL
163360 +enable_so_snd_pcm_plug_write_transfer_fndecl_42268 snd_pcm_plug_write_transfer fndecl 3-0 42268 NULL
163361 +enable_so_sge_length_qib_sge_42274 sge_length qib_sge 0 42274 NULL
163362 +enable_so_write_file_spectral_period_fndecl_42275 write_file_spectral_period fndecl 3 42275 NULL
163363 +enable_so_if_sdio_read_scratch_fndecl_42279 if_sdio_read_scratch fndecl 0 42279 NULL
163364 +enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280 cfg_sriov_nr_virtfn lpfc_hba 0 42280 NULL nohasharray
163365 +enable_so_rx_pending_ethtool_ringparam_42280 rx_pending ethtool_ringparam 0 42280 &enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280
163366 +enable_so_append_to_buffer_fndecl_42285 append_to_buffer fndecl 3 42285 NULL
163367 +enable_so_reiserfs_xattr_set_handle_fndecl_42289 reiserfs_xattr_set_handle fndecl 5 42289 NULL
163368 +enable_so_pll_multiplier_smiapp_pll_42292 pll_multiplier smiapp_pll 0 42292 NULL
163369 +enable_so_efx_mcdi_rpc_async_fndecl_42298 efx_mcdi_rpc_async fndecl 4-5 42298 NULL
163370 +enable_so_generic_cont_expand_simple_fndecl_42301 generic_cont_expand_simple fndecl 2 42301 NULL nohasharray
163371 +enable_so_ubi_more_leb_change_data_fndecl_42301 ubi_more_leb_change_data fndecl 4 42301 &enable_so_generic_cont_expand_simple_fndecl_42301
163372 +enable_so_dcache_dir_lseek_fndecl_42308 dcache_dir_lseek fndecl 2 42308 NULL nohasharray
163373 +enable_so_iwch_reg_user_mr_fndecl_42308 iwch_reg_user_mr fndecl 2-3 42308 &enable_so_dcache_dir_lseek_fndecl_42308
163374 +enable_so_rproc_alloc_fndecl_42314 rproc_alloc fndecl 5 42314 NULL
163375 +enable_so_log_pg_sz_remote_qpn_mlx5_qp_context_42315 log_pg_sz_remote_qpn mlx5_qp_context 0 42315 NULL
163376 +enable_so_num_rcv_contexts_hfi1_devdata_42317 num_rcv_contexts hfi1_devdata 0 42317 NULL
163377 +enable_so_kvm_write_guest_page_fndecl_42320 kvm_write_guest_page fndecl 2-5 42320 NULL nohasharray
163378 +enable_so_pg_test_nfs_pageio_ops_42320 pg_test nfs_pageio_ops 0 42320 &enable_so_kvm_write_guest_page_fndecl_42320 nohasharray
163379 +enable_so_dbg_leb_write_fndecl_42320 dbg_leb_write fndecl 5-4 42320 &enable_so_pg_test_nfs_pageio_ops_42320
163380 +enable_so_gsi_base_mp_ioapic_gsi_42330 gsi_base mp_ioapic_gsi 0 42330 NULL
163381 +enable_so_ib_register_mad_agent_fndecl_42332 ib_register_mad_agent fndecl 2 42332 NULL
163382 +enable_so_mlx4_ib_alloc_cq_buf_fndecl_42345 mlx4_ib_alloc_cq_buf fndecl 3 42345 NULL
163383 +enable_so_fw_xcb_count_qla_hw_data_42354 fw_xcb_count qla_hw_data 0 42354 NULL
163384 +enable_so_nftl_readblock_fndecl_42358 nftl_readblock fndecl 2 42358 NULL
163385 +enable_so_gart_start_crash_elf_data_42365 gart_start crash_elf_data 0 42365 NULL
163386 +enable_so_minor_mei_device_42366 minor mei_device 0 42366 NULL
163387 +enable_so_inbufBitCount_bunzip_data_42367 inbufBitCount bunzip_data 0 42367 NULL
163388 +enable_so_symbol_build_supp_rates_fndecl_42369 symbol_build_supp_rates fndecl 0 42369 NULL
163389 +enable_so_acc_len_rcv_sli3_42370 acc_len rcv_sli3 0 42370 NULL
163390 +enable_so_devpts_pty_new_fndecl_42373 devpts_pty_new fndecl 3 42373 NULL
163391 +enable_so_hid_report_len_fndecl_42374 hid_report_len fndecl 0 42374 NULL
163392 +enable_so_ext4_ext_get_access_fndecl_42377 ext4_ext_get_access fndecl 0 42377 NULL nohasharray
163393 +enable_so_salt_size_dm_verity_42377 salt_size dm_verity 0 42377 &enable_so_ext4_ext_get_access_fndecl_42377
163394 +enable_so_mlx5_wq_ll_get_size_fndecl_42379 mlx5_wq_ll_get_size fndecl 0 42379 NULL
163395 +enable_so_placement_offset_bnx2x_agg_info_42380 placement_offset bnx2x_agg_info 0 42380 NULL
163396 +enable_so___spi_validate_fndecl_42385 __spi_validate fndecl 0 42385 NULL
163397 +enable_so_remote_payload_max_nfc_digital_dev_42391 remote_payload_max nfc_digital_dev 0 42391 NULL
163398 +enable_so_no_of_vpath_vxgedev_42396 no_of_vpath vxgedev 0 42396 NULL
163399 +enable_so_module_alloc_fndecl_42397 module_alloc fndecl 1 42397 NULL
163400 +enable_so_prof_len_vardecl_profile_c_42405 prof_len vardecl_profile.c 0 42405 NULL
163401 +enable_so_maximum_v4l2_ctrl_42407 maximum v4l2_ctrl 0 42407 NULL
163402 +enable_so_dma_rxsize_vardecl_stmmac_main_c_42409 dma_rxsize vardecl_stmmac_main.c 0 42409 NULL
163403 +enable_so_vbi_read_fndecl_42410 vbi_read fndecl 3 42410 NULL
163404 +enable_so_length_mei_msg_hdr_42413 length mei_msg_hdr 0 42413 NULL
163405 +enable_so_ext2_xattr_security_set_fndecl_42417 ext2_xattr_security_set fndecl 4 42417 NULL
163406 +enable_so_data_offset_iscsi_r2t_info_42419 data_offset iscsi_r2t_info 0 42419 NULL
163407 +enable_so_defrag_lookup_extent_fndecl_42423 defrag_lookup_extent fndecl 2 42423 NULL
163408 +enable_so_hidraw_ioctl_fndecl_42425 hidraw_ioctl fndecl 2 42425 NULL
163409 +enable_so_bin_search_fndecl_42434 bin_search fndecl 0 42434 NULL
163410 +enable_so_write_file_spectral_fft_period_fndecl_42435 write_file_spectral_fft_period fndecl 3 42435 NULL
163411 +enable_so_s_sys_blocksize_omfs_sb_info_42439 s_sys_blocksize omfs_sb_info 0 42439 NULL
163412 +enable_so_rx_ring_size_jme_adapter_42440 rx_ring_size jme_adapter 0 42440 NULL
163413 +enable_so_max_srqs_mthca_dev_lim_42450 max_srqs mthca_dev_lim 0 42450 NULL nohasharray
163414 +enable_so_buffer_chain_size_fndecl_42450 buffer_chain_size fndecl 0 42450 &enable_so_max_srqs_mthca_dev_lim_42450
163415 +enable_so_rx_size_uart_8250_dma_42452 rx_size uart_8250_dma 0 42452 NULL nohasharray
163416 +enable_so_read_b43legacy_debugfs_fops_42452 read b43legacy_debugfs_fops 0 42452 &enable_so_rx_size_uart_8250_dma_42452
163417 +enable_so_inquiry_cache_dump_fndecl_42455 inquiry_cache_dump fndecl 0 42455 NULL
163418 +enable_so_s_cssize_ufs_sb_private_info_42456 s_cssize ufs_sb_private_info 0 42456 NULL
163419 +enable_so_num_srqs_mlx4_caps_42462 num_srqs mlx4_caps 0 42462 NULL
163420 +enable_so_rxq_max_tg3_42464 rxq_max tg3 0 42464 NULL
163421 +enable_so_rtl92ee_c2h_packet_handler_fndecl_42467 rtl92ee_c2h_packet_handler fndecl 3 42467 NULL
163422 +enable_so_amdgpu_vm_block_size_vardecl_42475 amdgpu_vm_block_size vardecl 0 42475 NULL nohasharray
163423 +enable_so_ext4_get_journal_fndecl_42475 ext4_get_journal fndecl 2 42475 &enable_so_amdgpu_vm_block_size_vardecl_42475
163424 +enable_so_wm9081_set_fll_fndecl_42479 wm9081_set_fll fndecl 3-4 42479 NULL
163425 +enable_so_ip_tunnel_xmit_fndecl_42480 ip_tunnel_xmit fndecl 4 42480 NULL
163426 +enable_so_num_adc_nids_hda_gen_spec_42481 num_adc_nids hda_gen_spec 0 42481 NULL nohasharray
163427 +enable_so_max_allowed_qxl_monitors_config_42481 max_allowed qxl_monitors_config 0 42481 &enable_so_num_adc_nids_hda_gen_spec_42481
163428 +enable_so_snd_vxpocket_new_fndecl_42483 snd_vxpocket_new fndecl 2 42483 NULL
163429 +enable_so_block_shift_befs_sb_info_42485 block_shift befs_sb_info 0 42485 NULL
163430 +enable_so_tot_len_pkt_gl_42487 tot_len pkt_gl 0 42487 NULL
163431 +enable_so_hid_sensor_client_cnt_sensor_hub_data_42488 hid_sensor_client_cnt sensor_hub_data 0 42488 NULL
163432 +enable_so_keylength_gss_krb5_enctype_42493 keylength gss_krb5_enctype 0 42493 NULL
163433 +enable_so_hsi_alloc_msg_fndecl_42496 hsi_alloc_msg fndecl 1 42496 NULL
163434 +enable_so_bpf_check_classic_fndecl_42501 bpf_check_classic fndecl 2 42501 NULL
163435 +enable_so_DataTransferLength_DAC960_V1_UserCommand_42502 DataTransferLength DAC960_V1_UserCommand 0 42502 NULL
163436 +enable_so_ath6kl_sdio_read_write_sync_fndecl_42504 ath6kl_sdio_read_write_sync fndecl 4 42504 NULL
163437 +enable_so_fs_start_efs_sb_info_42506 fs_start efs_sb_info 0 42506 NULL
163438 +enable_so_dec_cluster_info_page_fndecl_42521 dec_cluster_info_page fndecl 3 42521 NULL
163439 +enable_so_xfs_rtmodify_summary_fndecl_42522 xfs_rtmodify_summary fndecl 4-3 42522 NULL
163440 +enable_so_cn_netlink_send_mult_fndecl_42523 cn_netlink_send_mult fndecl 2 42523 NULL
163441 +enable_so_maxframe_size_fc_rport_priv_42527 maxframe_size fc_rport_priv 0 42527 NULL
163442 +enable_so_size_rx_desc_42538 size rx_desc 0 42538 NULL
163443 +enable_so_max_payload_len_pn533_frame_ops_42544 max_payload_len pn533_frame_ops 0 42544 NULL
163444 +enable_so_fdt_num_mem_rsv_fndecl_42546 fdt_num_mem_rsv fndecl 0 42546 NULL nohasharray
163445 +enable_so_num_reg_channel_bounds_42546 num reg_channel_bounds 0 42546 &enable_so_fdt_num_mem_rsv_fndecl_42546
163446 +enable_so_xfs_dir_cilookup_result_fndecl_42547 xfs_dir_cilookup_result fndecl 3 42547 NULL
163447 +enable_so_mr_page_size_srp_device_42550 mr_page_size srp_device 0 42550 NULL
163448 +enable_so_ocfs2_block_check_validate_bhs_fndecl_42557 ocfs2_block_check_validate_bhs fndecl 0 42557 NULL
163449 +enable_so_bfad_iocmd_diag_dport_start_fndecl_42560 bfad_iocmd_diag_dport_start fndecl 0 42560 NULL
163450 +enable_so_qla8044_write_optrom_data_fndecl_42561 qla8044_write_optrom_data fndecl 4 42561 NULL
163451 +enable_so_mtu_max_vardecl_42563 mtu_max vardecl 0 42563 NULL nohasharray
163452 +enable_so_ts_write_fndecl_42563 ts_write fndecl 3 42563 &enable_so_mtu_max_vardecl_42563
163453 +enable_so_do_write_orph_node_fndecl_42564 do_write_orph_node fndecl 2 42564 NULL nohasharray
163454 +enable_so_s_block_base_sysv_sb_info_42564 s_block_base sysv_sb_info 0 42564 &enable_so_do_write_orph_node_fndecl_42564 nohasharray
163455 +enable_so_qib_map_phys_fmr_fndecl_42564 qib_map_phys_fmr fndecl 4 42564 &enable_so_s_block_base_sysv_sb_info_42564
163456 +enable_so_usbtmc_write_fndecl_42567 usbtmc_write fndecl 3 42567 NULL
163457 +enable_so_mwifiex_send_addba_fndecl_42572 mwifiex_send_addba fndecl 2 42572 NULL
163458 +enable_so_ufs_read_cylinder_fndecl_42577 ufs_read_cylinder fndecl 2 42577 NULL
163459 +enable_so_max_target_id_mvumi_hba_42578 max_target_id mvumi_hba 0 42578 NULL
163460 +enable_so_irq_create_of_mapping_fndecl_42583 irq_create_of_mapping fndecl 0 42583 NULL
163461 +enable_so_tipc_send_packet_fndecl_42584 tipc_send_packet fndecl 3 42584 NULL
163462 +enable_so_sisusbcon_clear_fndecl_42586 sisusbcon_clear fndecl 5-3-4 42586 NULL
163463 +enable_so_map_region_fndecl_42587 map_region fndecl 1 42587 NULL
163464 +enable_so_bcm3510_readbytes_fndecl_42592 bcm3510_readbytes fndecl 4 42592 NULL
163465 +enable_so_name_len_jffs2_xattr_datum_42593 name_len jffs2_xattr_datum 0 42593 NULL
163466 +enable_so_offset_dmi_ipmi_data_42594 offset dmi_ipmi_data 0 42594 NULL nohasharray
163467 +enable_so_cdc_ncm_set_dgram_size_fndecl_42594 cdc_ncm_set_dgram_size fndecl 2 42594 &enable_so_offset_dmi_ipmi_data_42594
163468 +enable_so_bsize_nfs_parsed_mount_data_42598 bsize nfs_parsed_mount_data 0 42598 NULL
163469 +enable_so_wrap_bcma_device_42599 wrap bcma_device 0 42599 NULL nohasharray
163470 +enable_so_reg_create_fndecl_42599 reg_create fndecl 5 42599 &enable_so_wrap_bcma_device_42599
163471 +enable_so_maxSenseBytes_mpt_ioctl_command_42600 maxSenseBytes mpt_ioctl_command 0 42600 NULL
163472 +enable_so_ilo_write_fndecl_42601 ilo_write fndecl 3 42601 NULL nohasharray
163473 +enable_so_ndev_init_isr_fndecl_42601 ndev_init_isr fndecl 3 42601 &enable_so_ilo_write_fndecl_42601
163474 +enable_so_nilfs_alloc_seg_bio_fndecl_42604 nilfs_alloc_seg_bio fndecl 2-3 42604 NULL
163475 +enable_so_qlcnic_82xx_calculate_msix_vector_fndecl_42609 qlcnic_82xx_calculate_msix_vector fndecl 0 42609 NULL
163476 +enable_so_n_channels_wmi_start_scan_arg_42610 n_channels wmi_start_scan_arg 0 42610 NULL
163477 +enable_so_hashsize_Qdisc_class_hash_42616 hashsize Qdisc_class_hash 0 42616 NULL
163478 +enable_so_size_ck804xrom_window_42617 size ck804xrom_window 0 42617 NULL
163479 +enable_so_HFP_kyrofb_info_42618 HFP kyrofb_info 0 42618 NULL
163480 +enable_so_user_regset_copyin_fndecl_42619 user_regset_copyin fndecl 7 42619 NULL
163481 +enable_so_vmw_kms_sou_do_surface_dirty_fndecl_42620 vmw_kms_sou_do_surface_dirty fndecl 8 42620 NULL nohasharray
163482 +enable_so_wlc_phy_loadsampletable_nphy_fndecl_42620 wlc_phy_loadsampletable_nphy fndecl 3 42620 &enable_so_vmw_kms_sou_do_surface_dirty_fndecl_42620
163483 +enable_so_opt_len_genevehdr_42621 opt_len genevehdr 0 42621 NULL
163484 +enable_so_nfs42_proc_deallocate_fndecl_42622 nfs42_proc_deallocate fndecl 2-3 42622 NULL
163485 +enable_so_ir_lirc_transmit_ir_fndecl_42624 ir_lirc_transmit_ir fndecl 3 42624 NULL
163486 +enable_so_length_bplus_leaf_node_42626 length bplus_leaf_node 0 42626 NULL
163487 +enable_so_rx_hdr_overflow_read_fndecl_42628 rx_hdr_overflow_read fndecl 3 42628 NULL
163488 +enable_so_pidlist_allocate_fndecl_42631 pidlist_allocate fndecl 1 42631 NULL
163489 +enable_so_dm_set_device_limits_fndecl_42632 dm_set_device_limits fndecl 3 42632 NULL
163490 +enable_so_lbs_cmd_async_fndecl_42634 lbs_cmd_async fndecl 4 42634 NULL
163491 +enable_so_valid_ide_tape_obj_42635 valid ide_tape_obj 0 42635 NULL
163492 +enable_so_find_rsb_dir_fndecl_42636 find_rsb_dir fndecl 3 42636 NULL
163493 +enable_so_snd_emu10k1_create_fndecl_42637 snd_emu10k1_create fndecl 5 42637 NULL nohasharray
163494 +enable_so_n_algs_wmfw_adsp2_id_hdr_42637 n_algs wmfw_adsp2_id_hdr 0 42637 &enable_so_snd_emu10k1_create_fndecl_42637
163495 +enable_so_brcmf_sdio_download_nvram_fndecl_42648 brcmf_sdio_download_nvram fndecl 3 42648 NULL
163496 +enable_so_fuse_getxattr_fndecl_42649 fuse_getxattr fndecl 4 42649 NULL
163497 +enable_so___kfifo_dma_out_finish_r_fndecl_42656 __kfifo_dma_out_finish_r fndecl 2 42656 NULL
163498 +enable_so_type_packet_type_42658 type packet_type 0 42658 NULL
163499 +enable_so_jffs2_scan_dirty_space_fndecl_42666 jffs2_scan_dirty_space fndecl 3 42666 NULL
163500 +enable_so_vOver_plus_panel_info_42670 vOver_plus panel_info 0 42670 NULL
163501 +enable_so_keyctl_get_security_fndecl_42673 keyctl_get_security fndecl 3 42673 NULL
163502 +enable_so_max_probe_length_iwl_ucode_capabilities_42674 max_probe_length iwl_ucode_capabilities 0 42674 NULL
163503 +enable_so_fdt_check_header_fndecl_42681 fdt_check_header fndecl 0 42681 NULL nohasharray
163504 +enable_so_mxm_shadow_rom_fetch_fndecl_42681 mxm_shadow_rom_fetch fndecl 4 42681 &enable_so_fdt_check_header_fndecl_42681
163505 +enable_so_num_rx_bds_bcm_sysport_priv_42683 num_rx_bds bcm_sysport_priv 0 42683 NULL
163506 +enable_so_ext4_trim_extent_fndecl_42684 ext4_trim_extent fndecl 0-3-4-2 42684 NULL nohasharray
163507 +enable_so_n_sections_pefile_context_42684 n_sections pefile_context 0 42684 &enable_so_ext4_trim_extent_fndecl_42684 nohasharray
163508 +enable_so_read_file_spectral_short_repeat_fndecl_42684 read_file_spectral_short_repeat fndecl 3 42684 &enable_so_n_sections_pefile_context_42684
163509 +enable_so_oom_adj_write_fndecl_42687 oom_adj_write fndecl 3 42687 NULL
163510 +enable_so_ccp_update_sg_workarea_fndecl_42688 ccp_update_sg_workarea fndecl 2 42688 NULL
163511 +enable_so_BufferLength_respQ_e_42691 BufferLength respQ_e 0 42691 NULL
163512 +enable_so_data_size_dm_ioctl_42701 data_size dm_ioctl 0 42701 NULL
163513 +enable_so_transport_lba_64_ext_fndecl_42705 transport_lba_64_ext fndecl 0 42705 NULL
163514 +enable_so_len_nfs4_layoutdriver_data_42714 len nfs4_layoutdriver_data 0 42714 NULL nohasharray
163515 +enable_so_reordering_tcp_sock_42714 reordering tcp_sock 0 42714 &enable_so_len_nfs4_layoutdriver_data_42714
163516 +enable_so_start_sect_hd_struct_42718 start_sect hd_struct 0 42718 NULL
163517 +enable_so_rcvtidcnt_qib_devdata_42719 rcvtidcnt qib_devdata 0 42719 NULL
163518 +enable_so_clsb_isar_hw_42720 clsb isar_hw 0 42720 NULL
163519 +enable_so_status_full_rx_done_desc_42726 status full_rx_done_desc 0 42726 NULL
163520 +enable_so_brcmf_fil_bsscfg_data_get_fndecl_42728 brcmf_fil_bsscfg_data_get fndecl 4 42728 NULL
163521 +enable_so_handle_abnormal_pfn_fndecl_42730 handle_abnormal_pfn fndecl 3 42730 NULL
163522 +enable_so_maxbcnt_aoedev_42731 maxbcnt aoedev 0 42731 NULL
163523 +enable_so_irq_domain_alloc_descs_fndecl_42732 irq_domain_alloc_descs fndecl 0 42732 NULL
163524 +enable_so_single_open_size_fndecl_42736 single_open_size fndecl 4 42736 NULL
163525 +enable_so_nilfs_skip_summary_info_fndecl_42739 nilfs_skip_summary_info fndecl 4-5 42739 NULL
163526 +enable_so_head_hid_debug_list_42742 head hid_debug_list 0 42742 NULL
163527 +enable_so_Ha_tvnorm_42743 Ha tvnorm 0 42743 NULL nohasharray
163528 +enable_so_tcp_adjust_pcount_fndecl_42743 tcp_adjust_pcount fndecl 3 42743 &enable_so_Ha_tvnorm_42743 nohasharray
163529 +enable_so_hfi1_sdma_comp_ring_size_vardecl_user_sdma_c_42743 hfi1_sdma_comp_ring_size vardecl_user_sdma.c 0 42743 &enable_so_tcp_adjust_pcount_fndecl_42743
163530 +enable_so_p54_parse_rssical_fndecl_42750 p54_parse_rssical fndecl 3 42750 NULL
163531 +enable_so_SyS_rt_sigpending_fndecl_42753 SyS_rt_sigpending fndecl 2 42753 NULL
163532 +enable_so_unmap_entire_bt_fndecl_42755 unmap_entire_bt fndecl 3 42755 NULL nohasharray
163533 +enable_so_bmc150_accel_fifo_transfer_fndecl_42755 bmc150_accel_fifo_transfer fndecl 3 42755 &enable_so_unmap_entire_bt_fndecl_42755
163534 +enable_so_tcf_csum_skb_nextlayer_fndecl_42762 tcf_csum_skb_nextlayer fndecl 3 42762 NULL
163535 +enable_so_elems_v4l2_ctrl_42763 elems v4l2_ctrl 0 42763 NULL
163536 +enable_so_maxdev_blogic_adapter_42764 maxdev blogic_adapter 0 42764 NULL
163537 +enable_so_dc_block_number_disk_child_42766 dc_block_number disk_child 0 42766 NULL
163538 +enable_so_cmd_idx_rtsx_ucr_42770 cmd_idx rtsx_ucr 0 42770 NULL nohasharray
163539 +enable_so_ie_len_wmi_start_scan_arg_42770 ie_len wmi_start_scan_arg 0 42770 &enable_so_cmd_idx_rtsx_ucr_42770 nohasharray
163540 +enable_so_read_file_frameerrors_fndecl_42770 read_file_frameerrors fndecl 3 42770 &enable_so_ie_len_wmi_start_scan_arg_42770
163541 +enable_so_fw_len_mwifiex_fw_image_42772 fw_len mwifiex_fw_image 0 42772 NULL
163542 +enable_so_sync_maxlen_ipvs_sync_daemon_cfg_42773 sync_maxlen ipvs_sync_daemon_cfg 0 42773 NULL
163543 +enable_so_skb_size_pxa168_eth_private_42775 skb_size pxa168_eth_private 0 42775 NULL
163544 +enable_so_hsr_get_max_mtu_fndecl_42776 hsr_get_max_mtu fndecl 0 42776 NULL
163545 +enable_so_lov_tgt_size_lov_obd_42782 lov_tgt_size lov_obd 0 42782 NULL
163546 +enable_so_rx_data_length_hso_serial_42783 rx_data_length hso_serial 0 42783 NULL
163547 +enable_so_usbnet_change_mtu_fndecl_42784 usbnet_change_mtu fndecl 2 42784 NULL nohasharray
163548 +enable_so_ssid_len_ath6kl_vif_42784 ssid_len ath6kl_vif 0 42784 &enable_so_usbnet_change_mtu_fndecl_42784 nohasharray
163549 +enable_so_dvb_dmxdev_ts_callback_fndecl_42784 dvb_dmxdev_ts_callback fndecl 2-4 42784 &enable_so_ssid_len_ath6kl_vif_42784
163550 +enable_so_offset_fuse_page_desc_42785 offset fuse_page_desc 0 42785 NULL
163551 +enable_so_memblock_add_region_fndecl_42790 memblock_add_region fndecl 1-2 42790 NULL
163552 +enable_so_xdr_encode_word_fndecl_42802 xdr_encode_word fndecl 2 42802 NULL
163553 +enable_so_SyS_fsetxattr_fndecl_42804 SyS_fsetxattr fndecl 4 42804 NULL
163554 +enable_so_ext4_quota_write_fndecl_42809 ext4_quota_write fndecl 5 42809 NULL nohasharray
163555 +enable_so_len_il3945_rx_frame_hdr_42809 len il3945_rx_frame_hdr 0 42809 &enable_so_ext4_quota_write_fndecl_42809
163556 +enable_so_nl80211_send_rx_assoc_fndecl_42811 nl80211_send_rx_assoc fndecl 4 42811 NULL
163557 +enable_so_fc_header_fndecl_42816 fc_header fndecl 3 42816 NULL
163558 +enable_so_usb_hcd_unlink_urb_fndecl_42819 usb_hcd_unlink_urb fndecl 2 42819 NULL
163559 +enable_so_sl_realloc_bufs_fndecl_42821 sl_realloc_bufs fndecl 2 42821 NULL
163560 +enable_so_m_agino_log_xfs_mount_42823 m_agino_log xfs_mount 0 42823 NULL
163561 +enable_so_lbs_highrssi_read_fndecl_42826 lbs_highrssi_read fndecl 3 42826 NULL
163562 +enable_so_clear_update_marker_fndecl_42827 clear_update_marker fndecl 3 42827 NULL
163563 +enable_so_ezusb_program_bytes_fndecl_42828 ezusb_program_bytes fndecl 4 42828 NULL
163564 +enable_so_dev_addr_fsl_edma_slave_config_42835 dev_addr fsl_edma_slave_config 0 42835 NULL
163565 +enable_so_pcifront_bus_write_fndecl_42836 pcifront_bus_write fndecl 5 42836 NULL
163566 +enable_so_decompress_compressor_42840 decompress compressor 0 42840 NULL
163567 +enable_so_memory_block_size_bytes_fndecl_42846 memory_block_size_bytes fndecl 0 42846 NULL
163568 +enable_so_old_oblock_dm_cache_migration_42847 old_oblock dm_cache_migration 0 42847 NULL
163569 +enable_so_int_in_endpointAddr_usb_yurex_42850 int_in_endpointAddr usb_yurex 0 42850 NULL
163570 +enable_so_ipoib_hard_header_fndecl_42855 ipoib_hard_header fndecl 3 42855 NULL nohasharray
163571 +enable_so_rdma_addr_size_fndecl_42855 rdma_addr_size fndecl 0 42855 &enable_so_ipoib_hard_header_fndecl_42855
163572 +enable_so_vxlan_remcsum_fndecl_42858 vxlan_remcsum fndecl 4-3 42858 NULL
163573 +enable_so_ext4_prepare_inline_data_fndecl_42863 ext4_prepare_inline_data fndecl 3 42863 NULL nohasharray
163574 +enable_so_wqe_size_ib_uverbs_post_srq_recv_42863 wqe_size ib_uverbs_post_srq_recv 0 42863 &enable_so_ext4_prepare_inline_data_fndecl_42863
163575 +enable_so_SyS_set_mempolicy_fndecl_42867 SyS_set_mempolicy fndecl 3 42867 NULL
163576 +enable_so_mmio_start_vmw_private_42869 mmio_start vmw_private 0 42869 NULL
163577 +enable_so_register_memory_resource_fndecl_42873 register_memory_resource fndecl 2-1 42873 NULL
163578 +enable_so_dlfb_ops_write_fndecl_42885 dlfb_ops_write fndecl 3 42885 NULL
163579 +enable_so_snic_req_init_fndecl_42890 snic_req_init fndecl 2 42890 NULL
163580 +enable_so_reset_poll_ide_port_ops_42895 reset_poll ide_port_ops 0 42895 NULL nohasharray
163581 +enable_so_number_of_tds_fndecl_42895 number_of_tds fndecl 0 42895 &enable_so_reset_poll_ide_port_ops_42895
163582 +enable_so_init_bch_fndecl_42897 init_bch fndecl 1-2 42897 NULL
163583 +enable_so_ql2xmaxqdepth_vardecl_qla_os_c_42899 ql2xmaxqdepth vardecl_qla_os.c 0 42899 NULL
163584 +enable_so_memblock_find_in_range_node_fndecl_42905 memblock_find_in_range_node fndecl 0-2-1-3-4 42905 NULL
163585 +enable_so_name_length_spar_controlvm_parameters_header_42909 name_length spar_controlvm_parameters_header 0 42909 NULL
163586 +enable_so_vd_vblocknr_nilfs_vdesc_42910 vd_vblocknr nilfs_vdesc 0 42910 NULL
163587 +enable_so_rts51x_bulk_transport_fndecl_42911 rts51x_bulk_transport fndecl 6 42911 NULL
163588 +enable_so_length_drm_property_blob_42912 length drm_property_blob 0 42912 NULL
163589 +enable_so_do_command_extended_fndecl_42913 do_command_extended fndecl 0 42913 NULL
163590 +enable_so_clkin_adf4350_state_42914 clkin adf4350_state 0 42914 NULL
163591 +enable_so_i915_gem_stolen_insert_node_fndecl_42918 i915_gem_stolen_insert_node fndecl 3 42918 NULL
163592 +enable_so_carl9170_handle_command_response_fndecl_42930 carl9170_handle_command_response fndecl 3 42930 NULL
163593 +enable_so_wMaxInputLength_i2c_hid_desc_42932 wMaxInputLength i2c_hid_desc 0 42932 NULL
163594 +enable_so_bnx2x_vf_mcast_fndecl_42933 bnx2x_vf_mcast fndecl 4 42933 NULL
163595 +enable_so_max_mad_size_ib_port_immutable_42934 max_mad_size ib_port_immutable 0 42934 NULL
163596 +enable_so_nblocks_nvme_user_io_42935 nblocks nvme_user_io 0 42935 NULL
163597 +enable_so_mc_vram_size_radeon_mc_42937 mc_vram_size radeon_mc 0 42937 NULL
163598 +enable_so_spi_bpw_vardecl_ifx6x60_c_42939 spi_bpw vardecl_ifx6x60.c 0 42939 NULL
163599 +enable_so_length__SCADESC_42942 length _SCADESC 0 42942 NULL
163600 +enable_so_hippi_change_mtu_fndecl_42953 hippi_change_mtu fndecl 2 42953 NULL
163601 +enable_so_vb2_dc_get_userptr_fndecl_42957 vb2_dc_get_userptr fndecl 2-3 42957 NULL
163602 +enable_so_brcmf_usb_tx_ctlpkt_fndecl_42958 brcmf_usb_tx_ctlpkt fndecl 3 42958 NULL
163603 +enable_so_kernfs_iop_setxattr_fndecl_42959 kernfs_iop_setxattr fndecl 4 42959 NULL
163604 +enable_so_gpio_count_async_state_42965 gpio_count async_state 0 42965 NULL nohasharray
163605 +enable_so_udf_get_block_fndecl_42965 udf_get_block fndecl 2 42965 &enable_so_gpio_count_async_state_42965
163606 +enable_so___pskb_copy_fclone_fndecl_42969 __pskb_copy_fclone fndecl 2 42969 NULL
163607 +enable_so_periods_max_snd_pcm_hardware_42979 periods_max snd_pcm_hardware 0 42979 NULL
163608 +enable_so_brcmf_sdiod_send_buf_fndecl_42982 brcmf_sdiod_send_buf fndecl 3 42982 NULL
163609 +enable_so_max_pfn_amdgpu_vm_manager_42989 max_pfn amdgpu_vm_manager 0 42989 NULL
163610 +enable_so_len_kvaser_msg_42994 len kvaser_msg 0 42994 NULL
163611 +enable_so_hw_token_fotg210_qh_hw_42995 hw_token fotg210_qh_hw 0 42995 NULL
163612 +enable_so_num_mappings_nd_region_desc_42998 num_mappings nd_region_desc 0 42998 NULL nohasharray
163613 +enable_so_ea_len_fndecl_42998 ea_len fndecl 0 42998 &enable_so_num_mappings_nd_region_desc_42998
163614 +enable_so_buf_size_ivtv_stream_43002 buf_size ivtv_stream 0 43002 NULL
163615 +enable_so_header_len_fndecl_43003 header_len fndecl 0 43003 NULL
163616 +enable_so_drm_mm_insert_helper_fndecl_43005 drm_mm_insert_helper fndecl 3 43005 NULL
163617 +enable_so_btrfs_check_shared_fndecl_43007 btrfs_check_shared fndecl 5 43007 NULL
163618 +enable_so_pkt_size_be_rx_compl_info_43008 pkt_size be_rx_compl_info 0 43008 NULL
163619 +enable_so_ide_inb_fndecl_43010 ide_inb fndecl 0 43010 NULL
163620 +enable_so_icl_agbno_xfs_icreate_log_43012 icl_agbno xfs_icreate_log 0 43012 NULL
163621 +enable_so_len_i2c_msg_43014 len i2c_msg 0 43014 NULL nohasharray
163622 +enable_so_obd_ioctl_popdata_fndecl_43014 obd_ioctl_popdata fndecl 3 43014 &enable_so_len_i2c_msg_43014
163623 +enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 ath6kl_wmi_reconnect_cmd fndecl 2 43017 NULL nohasharray
163624 +enable_so_key_replays_read_fndecl_43017 key_replays_read fndecl 3 43017 &enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 nohasharray
163625 +enable_so_phonet_rxq_size_vardecl_f_phonet_c_43017 phonet_rxq_size vardecl_f_phonet.c 0 43017 &enable_so_key_replays_read_fndecl_43017
163626 +enable_so_PacketLength__MSG_LAN_RECEIVE_POST_REPLY_43028 PacketLength _MSG_LAN_RECEIVE_POST_REPLY 0 43028 NULL
163627 +enable_so_a_bss_exec_43030 a_bss exec 0 43030 NULL
163628 +enable_so_usHActive__ATOM_DTD_FORMAT_43031 usHActive _ATOM_DTD_FORMAT 0 43031 NULL nohasharray
163629 +enable_so_count_ixgbe_ring_43031 count ixgbe_ring 0 43031 &enable_so_usHActive__ATOM_DTD_FORMAT_43031
163630 +enable_so_pagl_leftrec_xfs_perag_43033 pagl_leftrec xfs_perag 0 43033 NULL
163631 +enable_so_channels_max_snd_usb_substream_43034 channels_max snd_usb_substream 0 43034 NULL
163632 +enable_so_qpc_entry_sz_mthca_dev_lim_43040 qpc_entry_sz mthca_dev_lim 0 43040 NULL
163633 +enable_so_copy_page_to_iter_iovec_fndecl_43041 copy_page_to_iter_iovec fndecl 3 43041 NULL
163634 +enable_so_init_chip_wc_pat_fndecl_43043 init_chip_wc_pat fndecl 2 43043 NULL
163635 +enable_so_stmmac_change_mtu_fndecl_43052 stmmac_change_mtu fndecl 2 43052 NULL
163636 +enable_so_logical_block_size_queue_limits_43053 logical_block_size queue_limits 0 43053 NULL
163637 +enable_so_s_reserved_gdt_blocks_ext4_super_block_43054 s_reserved_gdt_blocks ext4_super_block 0 43054 NULL
163638 +enable_so_mwifiex_rdeeprom_write_fndecl_43057 mwifiex_rdeeprom_write fndecl 3 43057 NULL
163639 +enable_so_inode_number_squashfs_base_inode_43062 inode_number squashfs_base_inode 0 43062 NULL nohasharray
163640 +enable_so_acpi_dev_get_ioresource_fndecl_43062 acpi_dev_get_ioresource fndecl 3-2 43062 &enable_so_inode_number_squashfs_base_inode_43062
163641 +enable_so_len_ib_ucm_rep_43064 len ib_ucm_rep 0 43064 NULL
163642 +enable_so_len_srp_direct_buf_43066 len srp_direct_buf 0 43066 NULL
163643 +enable_so_quirk_simultaneous_discovery_write_fndecl_43076 quirk_simultaneous_discovery_write fndecl 3 43076 NULL
163644 +enable_so_raw_skid_size_pkcs7_parse_context_43081 raw_skid_size pkcs7_parse_context 0 43081 NULL
163645 +enable_so_output_buffer_size_vardecl_seq_midi_c_43084 output_buffer_size vardecl_seq_midi.c 0 43084 NULL
163646 +enable_so_bttv_prepare_buffer_fndecl_43088 bttv_prepare_buffer fndecl 6-5 43088 NULL
163647 +enable_so_SyS_sched_getaffinity_fndecl_43089 SyS_sched_getaffinity fndecl 2 43089 NULL
163648 +enable_so_i2c_wr_max_cx24116_config_43094 i2c_wr_max cx24116_config 0 43094 NULL
163649 +enable_so__create_message_fndecl_43096 _create_message fndecl 2 43096 NULL
163650 +enable_so_printf_size_mon_reader_text_43097 printf_size mon_reader_text 0 43097 NULL
163651 +enable_so_hpsa_change_queue_depth_fndecl_43098 hpsa_change_queue_depth fndecl 2 43098 NULL
163652 +enable_so_if_sdio_read_rx_unit_fndecl_43099 if_sdio_read_rx_unit fndecl 0 43099 NULL
163653 +enable_so_sector_badblocks_43102 sector badblocks 0 43102 NULL
163654 +enable_so_cyttsp_i2c_write_block_data_fndecl_43104 cyttsp_i2c_write_block_data fndecl 4 43104 NULL
163655 +enable_so_xlog_recover_add_to_trans_fndecl_43108 xlog_recover_add_to_trans fndecl 4 43108 NULL
163656 +enable_so___rounddown_pow_of_two_fndecl_43111 __rounddown_pow_of_two fndecl 0 43111 NULL
163657 +enable_so_ore_verify_layout_fndecl_43114 ore_verify_layout fndecl 1 43114 NULL nohasharray
163658 +enable_so_valuelen_hi_extended_attribute_43114 valuelen_hi extended_attribute 0 43114 &enable_so_ore_verify_layout_fndecl_43114
163659 +enable_so_range_max_regmap_range_43116 range_max regmap_range 0 43116 NULL
163660 +enable_so_rx_fcs_err_read_fndecl_43119 rx_fcs_err_read fndecl 3 43119 NULL
163661 +enable_so_meta_prod_netrx_pending_operations_43121 meta_prod netrx_pending_operations 0 43121 NULL nohasharray
163662 +enable_so_of_alias_get_id_fndecl_43121 of_alias_get_id fndecl 0 43121 &enable_so_meta_prod_netrx_pending_operations_43121
163663 +enable_so_prepare_elf64_ram_headers_callback_fndecl_43123 prepare_elf64_ram_headers_callback fndecl 1-2 43123 NULL
163664 +enable_so_output_pool_snd_seq_client_pool_43126 output_pool snd_seq_client_pool 0 43126 NULL
163665 +enable_so_fm10k_change_mtu_fndecl_43135 fm10k_change_mtu fndecl 2 43135 NULL
163666 +enable_so_pcf8563_read_block_data_fndecl_43139 pcf8563_read_block_data fndecl 3 43139 NULL
163667 +enable_so_Size_aac_fibhdr_43144 Size aac_fibhdr 0 43144 NULL
163668 +enable_so_btrfs_create_subvol_root_fndecl_43148 btrfs_create_subvol_root fndecl 4 43148 NULL
163669 +enable_so_xfs_rtmodify_range_fndecl_43150 xfs_rtmodify_range fndecl 3 43150 NULL
163670 +enable_so_bblog_offset_mdp_superblock_1_43154 bblog_offset mdp_superblock_1 0 43154 NULL
163671 +enable_so_kvm_vcpu_gfn_to_pfn_fndecl_43158 kvm_vcpu_gfn_to_pfn fndecl 2 43158 NULL
163672 +enable_so___f2fs_setxattr_fndecl_43162 __f2fs_setxattr fndecl 5 43162 NULL
163673 +enable_so_filename_size_ecryptfs_filename_43164 filename_size ecryptfs_filename 0 43164 NULL nohasharray
163674 +enable_so_doc_config_location_vardecl_diskonchip_c_43164 doc_config_location vardecl_diskonchip.c 0 43164 &enable_so_filename_size_ecryptfs_filename_43164
163675 +enable_so_hpi_read_word_fndecl_43165 hpi_read_word fndecl 0 43165 NULL
163676 +enable_so_xlog_bread_noalign_fndecl_43170 xlog_bread_noalign fndecl 2 43170 NULL
163677 +enable_so_byte_count_il_rx_mpdu_res_start_43171 byte_count il_rx_mpdu_res_start 0 43171 NULL
163678 +enable_so_packetizeRx_fndecl_43175 packetizeRx fndecl 3 43175 NULL
163679 +enable_so_getdqbuf_fndecl_43183 getdqbuf fndecl 1 43183 NULL
163680 +enable_so_unxlate_dev_mem_ptr_fndecl_43184 unxlate_dev_mem_ptr fndecl 1 43184 NULL nohasharray
163681 +enable_so_aoechr_write_fndecl_43184 aoechr_write fndecl 3 43184 &enable_so_unxlate_dev_mem_ptr_fndecl_43184
163682 +enable_so_length_ib_mac_iocb_rsp_43186 length ib_mac_iocb_rsp 0 43186 NULL
163683 +enable_so_block_end_dm_cell_key_43191 block_end dm_cell_key 0 43191 NULL
163684 +enable_so_if_spi_host_to_card_fndecl_43193 if_spi_host_to_card fndecl 4 43193 NULL
163685 +enable_so_nilfs_cpfile_block_get_snapshot_list_fndecl_43198 nilfs_cpfile_block_get_snapshot_list fndecl 2 43198 NULL
163686 +enable_so_tidno_ath_atx_tid_43202 tidno ath_atx_tid 0 43202 NULL nohasharray
163687 +enable_so_rx_data_eaten_rxrpc_call_43202 rx_data_eaten rxrpc_call 0 43202 &enable_so_tidno_ath_atx_tid_43202
163688 +enable_so_root_id___prelim_ref_43204 root_id __prelim_ref 0 43204 NULL
163689 +enable_so_dm_bufio_release_move_fndecl_43207 dm_bufio_release_move fndecl 2 43207 NULL
163690 +enable_so_device_id_ipmi_device_id_43213 device_id ipmi_device_id 0 43213 NULL
163691 +enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216 nr_efi_runtime_map vardecl_runtime-map.c 0 43216 NULL nohasharray
163692 +enable_so_tc_to_nexactf_fw_pfvf_cmd_43216 tc_to_nexactf fw_pfvf_cmd 0 43216 &enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216
163693 +enable_so_ramdisk_size_setup_header_43217 ramdisk_size setup_header 0 43217 NULL nohasharray
163694 +enable_so_try_async_pf_fndecl_43217 try_async_pf fndecl 3 43217 &enable_so_ramdisk_size_setup_header_43217
163695 +enable_so_get_data_block_dio_fndecl_43221 get_data_block_dio fndecl 2 43221 NULL
163696 +enable_so_i2c_add_mux_adapter_fndecl_43222 i2c_add_mux_adapter fndecl 4 43222 NULL
163697 +enable_so_mic_len_ieee80211_cipher_scheme_43227 mic_len ieee80211_cipher_scheme 0 43227 NULL
163698 +enable_so_nvif_object_mthd_fndecl_43235 nvif_object_mthd fndecl 4 43235 NULL
163699 +enable_so_vlan_tag_be_async_event_qnq_43239 vlan_tag be_async_event_qnq 0 43239 NULL
163700 +enable_so_send_write_fndecl_43242 send_write fndecl 2-0 43242 NULL
163701 +enable_so_actual_size_rfd_43243 actual_size rfd 0 43243 NULL
163702 +enable_so_sb_rextents_xfs_sb_43244 sb_rextents xfs_sb 0 43244 NULL
163703 +enable_so_num_vc_iadev_priv_43250 num_vc iadev_priv 0 43250 NULL
163704 +enable_so_agp_create_user_memory_fndecl_43256 agp_create_user_memory fndecl 1 43256 NULL
163705 +enable_so_regspacing_si_sm_io_43277 regspacing si_sm_io 0 43277 NULL
163706 +enable_so_persistent_ram_new_fndecl_43278 persistent_ram_new fndecl 2-1 43278 NULL
163707 +enable_so_tx_modulus_cdc_ncm_ctx_43289 tx_modulus cdc_ncm_ctx 0 43289 NULL
163708 +enable_so_size_oid_t_43292 size oid_t 0 43292 NULL
163709 +enable_so_ip_vs_icmp_xmit_v6_fndecl_43294 ip_vs_icmp_xmit_v6 fndecl 4 43294 NULL
163710 +enable_so_transfer_dma_urb_43305 transfer_dma urb 0 43305 NULL
163711 +enable_so_total_nic_func_qlcnic_hardware_context_43307 total_nic_func qlcnic_hardware_context 0 43307 NULL
163712 +enable_so_rio_request_outb_mbox_fndecl_43309 rio_request_outb_mbox fndecl 3 43309 NULL
163713 +enable_so_add_to_list_fndecl_43311 add_to_list fndecl 5-4 43311 NULL
163714 +enable_so_header_len_gether_43313 header_len gether 0 43313 NULL
163715 +enable_so_smsc9420_rx_handoff_fndecl_43315 smsc9420_rx_handoff fndecl 3 43315 NULL
163716 +enable_so_group_count_ore_layout_43325 group_count ore_layout 0 43325 NULL
163717 +enable_so_qib_refresh_qsfp_cache_fndecl_43328 qib_refresh_qsfp_cache fndecl 0 43328 NULL
163718 +enable_so_lpddr_write_buffers_fndecl_43330 lpddr_write_buffers fndecl 3 43330 NULL
163719 +enable_so_max_packet_bytes_ua101_stream_43333 max_packet_bytes ua101_stream 0 43333 NULL
163720 +enable_so_s5c73m3_spi_read_fndecl_43335 s5c73m3_spi_read fndecl 4-3 43335 NULL
163721 +enable_so_b_num_l1oip_43336 b_num l1oip 0 43336 NULL
163722 +enable_so_file_size_hpfs_dirent_43338 file_size hpfs_dirent 0 43338 NULL
163723 +enable_so_vactive_videomode_43345 vactive videomode 0 43345 NULL
163724 +enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348 wake_packet_bufsize iwl_wowlan_status_data 0 43348 NULL nohasharray
163725 +enable_so_debugfs_read_fndecl_43348 debugfs_read fndecl 3 43348 &enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348
163726 +enable_so_test_iso_queue_fndecl_43349 test_iso_queue fndecl 5-3 43349 NULL nohasharray
163727 +enable_so___kmalloc_node_track_caller_fndecl_43349 __kmalloc_node_track_caller fndecl 1 43349 &enable_so_test_iso_queue_fndecl_43349
163728 +enable_so_pktsz_fifo_43351 pktsz fifo 0 43351 NULL nohasharray
163729 +enable_so_entry_size_xpc_channel_43351 entry_size xpc_channel 0 43351 &enable_so_pktsz_fifo_43351
163730 +enable_so_header_len_dst_entry_43355 header_len dst_entry 0 43355 NULL nohasharray
163731 +enable_so_get_module_load_offset_fndecl_43355 get_module_load_offset fndecl 0 43355 &enable_so_header_len_dst_entry_43355
163732 +enable_so_inftl_write_fndecl_43357 inftl_write fndecl 2 43357 NULL
163733 +enable_so_bulk_out_endpoint_edgeport_serial_43358 bulk_out_endpoint edgeport_serial 0 43358 NULL
163734 +enable_so_get_subdir_fndecl_43366 get_subdir fndecl 3 43366 NULL
163735 +enable_so_compat_SyS_rt_sigpending_fndecl_43367 compat_SyS_rt_sigpending fndecl 2 43367 NULL
163736 +enable_so_port_count_rocker_43373 port_count rocker 0 43373 NULL
163737 +enable_so_snd_usb_endpoint_next_packet_size_fndecl_43377 snd_usb_endpoint_next_packet_size fndecl 0 43377 NULL
163738 +enable_so_dtcs033_pkt_scan_fndecl_43381 dtcs033_pkt_scan fndecl 3 43381 NULL
163739 +enable_so_tci_Vmxnet3_RxCompDesc_43383 tci Vmxnet3_RxCompDesc 0 43383 NULL
163740 +enable_so_mthca_alloc_sqp_fndecl_43386 mthca_alloc_sqp fndecl 8 43386 NULL
163741 +enable_so_sca_detect_ram_fndecl_43387 sca_detect_ram fndecl 0 43387 NULL
163742 +enable_so_x509_note_signature_fndecl_43388 x509_note_signature fndecl 5 43388 NULL
163743 +enable_so_xfrm_user_policy_fndecl_43390 xfrm_user_policy fndecl 4 43390 NULL
163744 +enable_so_lpt_spc_bits_ubifs_info_43392 lpt_spc_bits ubifs_info 0 43392 NULL
163745 +enable_so_offset_isert_data_buf_43395 offset isert_data_buf 0 43395 NULL
163746 +enable_so_id_via_isa_bridge_43399 id via_isa_bridge 0 43399 NULL
163747 +enable_so_base_nr_i2c_mux_gpio_platform_data_43400 base_nr i2c_mux_gpio_platform_data 0 43400 NULL
163748 +enable_so_depth_saa7146_format_43402 depth saa7146_format 0 43402 NULL
163749 +enable_so_teql_master_mtu_fndecl_43403 teql_master_mtu fndecl 2 43403 NULL
163750 +enable_so_i2c_readbytes_fndecl_43409 i2c_readbytes fndecl 4 43409 NULL
163751 +enable_so_init_range_memory_mapping_fndecl_43414 init_range_memory_mapping fndecl 1-2 43414 NULL
163752 +enable_so_gss_wrap_kerberos_v1_fndecl_43417 gss_wrap_kerberos_v1 fndecl 2 43417 NULL nohasharray
163753 +enable_so_packet_alloc_skb_fndecl_43417 packet_alloc_skb fndecl 5-4-3 43417 &enable_so_gss_wrap_kerberos_v1_fndecl_43417
163754 +enable_so_pof_write_open_fndecl_43418 pof_write_open fndecl 0 43418 NULL
163755 +enable_so_tegra_spi_start_dma_based_transfer_fndecl_43421 tegra_spi_start_dma_based_transfer fndecl 0 43421 NULL
163756 +enable_so_prism2_send_mgmt_fndecl_43422 prism2_send_mgmt fndecl 4 43422 NULL
163757 +enable_so_status_fealnx_desc_43423 status fealnx_desc 0 43423 NULL
163758 +enable_so_ath6kl_wmi_set_apsd_bfrd_traf_fndecl_43427 ath6kl_wmi_set_apsd_bfrd_traf fndecl 2 43427 NULL
163759 +enable_so_clk_fd_round_rate_fndecl_43428 clk_fd_round_rate fndecl 2 43428 NULL
163760 +enable_so_lpfc_sli4_queue_alloc_fndecl_43429 lpfc_sli4_queue_alloc fndecl 3 43429 NULL
163761 +enable_so_offset_afs_call_43431 offset afs_call 0 43431 NULL
163762 +enable_so_nfs4_proc_set_acl_fndecl_43435 nfs4_proc_set_acl fndecl 3 43435 NULL
163763 +enable_so_XRES_kyrofb_info_43436 XRES kyrofb_info 0 43436 NULL
163764 +enable_so_bfad_fcxp_bsg_send_fndecl_43437 bfad_fcxp_bsg_send fndecl 0 43437 NULL
163765 +enable_so_memblock_alloc_nid_fndecl_43439 memblock_alloc_nid fndecl 2-1 43439 NULL nohasharray
163766 +enable_so_rds_buf_vardecl_radio_si470x_usb_c_43439 rds_buf vardecl_radio-si470x-usb.c 0 43439 &enable_so_memblock_alloc_nid_fndecl_43439
163767 +enable_so_ems_pcmcia_add_card_fndecl_43440 ems_pcmcia_add_card fndecl 2 43440 NULL nohasharray
163768 +enable_so_fsg_common_set_num_buffers_fndecl_43440 fsg_common_set_num_buffers fndecl 2 43440 &enable_so_ems_pcmcia_add_card_fndecl_43440
163769 +enable_so_per_txdl_space_vxge_hw_fifo_attr_43441 per_txdl_space vxge_hw_fifo_attr 0 43441 NULL nohasharray
163770 +enable_so___offline_pages_fndecl_43441 __offline_pages fndecl 1-2 43441 &enable_so_per_txdl_space_vxge_hw_fifo_attr_43441
163771 +enable_so_dut_mode_write_fndecl_43445 dut_mode_write fndecl 3 43445 NULL nohasharray
163772 +enable_so_len_imgchunk_43445 len imgchunk 0 43445 &enable_so_dut_mode_write_fndecl_43445
163773 +enable_so_max_pkt_tipc_sock_43446 max_pkt tipc_sock 0 43446 NULL
163774 +enable_so_wReportDescLength_i2c_hid_desc_43447 wReportDescLength i2c_hid_desc 0 43447 NULL
163775 +enable_so_vfs_fsync_range_fndecl_43448 vfs_fsync_range fndecl 0 43448 NULL
163776 +enable_so_vary_usbtest_param_43450 vary usbtest_param 0 43450 NULL
163777 +enable_so_eeprom_len_adm8211_priv_43457 eeprom_len adm8211_priv 0 43457 NULL
163778 +enable_so_aper_base_radeon_mc_43460 aper_base radeon_mc 0 43460 NULL
163779 +enable_so_l_start_ocfs2_space_resv_43461 l_start ocfs2_space_resv 0 43461 NULL
163780 +enable_so_meta_dev_idx_drbd_md_43468 meta_dev_idx drbd_md 0 43468 NULL nohasharray
163781 +enable_so_pda_size_fw_info_43468 pda_size fw_info 0 43468 &enable_so_meta_dev_idx_drbd_md_43468 nohasharray
163782 +enable_so_printer_req_alloc_fndecl_43468 printer_req_alloc fndecl 2 43468 &enable_so_pda_size_fw_info_43468
163783 +enable_so_xfrm_count_pfkey_auth_supported_fndecl_43471 xfrm_count_pfkey_auth_supported fndecl 0 43471 NULL
163784 +enable_so_nfs_pgio_rpcsetup_fndecl_43472 nfs_pgio_rpcsetup fndecl 2-3 43472 NULL
163785 +enable_so_max_VF_buses_pci_sriov_43475 max_VF_buses pci_sriov 0 43475 NULL
163786 +enable_so_mmio_base_phys_mb862xxfb_par_43476 mmio_base_phys mb862xxfb_par 0 43476 NULL
163787 +enable_so_read_pci_config_byte_fndecl_43477 read_pci_config_byte fndecl 0 43477 NULL nohasharray
163788 +enable_so_cmd_drm_ioctl_desc_43477 cmd drm_ioctl_desc 0 43477 &enable_so_read_pci_config_byte_fndecl_43477
163789 +enable_so_total_size_vardecl_mtdram_c_43478 total_size vardecl_mtdram.c 0 43478 NULL nohasharray
163790 +enable_so_length_cpcs_trailer_43478 length cpcs_trailer 0 43478 &enable_so_total_size_vardecl_mtdram_c_43478
163791 +enable_so_sd_jbsize_gfs2_sbd_43480 sd_jbsize gfs2_sbd 0 43480 NULL
163792 +enable_so_sysv_iget_fndecl_43483 sysv_iget fndecl 2 43483 NULL
163793 +enable_so_atl1e_change_mtu_fndecl_43485 atl1e_change_mtu fndecl 2 43485 NULL
163794 +enable_so_secondary_bin_count_drm_mga_dma_bootstrap_43491 secondary_bin_count drm_mga_dma_bootstrap 0 43491 NULL
163795 +enable_so_bioset_integrity_create_fndecl_43495 bioset_integrity_create fndecl 2 43495 NULL
163796 +enable_so_size_TxFifo_43497 size TxFifo 0 43497 NULL
163797 +enable_so_netlink_recvmsg_fndecl_43499 netlink_recvmsg fndecl 3 43499 NULL
163798 +enable_so_Count_smb_com_write_rsp_43500 Count smb_com_write_rsp 0 43500 NULL
163799 +enable_so_gfs2_log_write_fndecl_43502 gfs2_log_write fndecl 4-3 43502 NULL nohasharray
163800 +enable_so_max_reqs_rpc_xprt_43502 max_reqs rpc_xprt 0 43502 &enable_so_gfs2_log_write_fndecl_43502
163801 +enable_so_adxl34x_i2c_read_block_fndecl_43504 adxl34x_i2c_read_block fndecl 3 43504 NULL nohasharray
163802 +enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504 limit_cmdline vardecl_dma-contiguous.c 0 43504 &enable_so_adxl34x_i2c_read_block_fndecl_43504
163803 +enable_so_ext4_ind_map_blocks_fndecl_43505 ext4_ind_map_blocks fndecl 0 43505 NULL
163804 +enable_so_ioremap_wc_fndecl_43508 ioremap_wc fndecl 2-1 43508 NULL
163805 +enable_so_size_compat_ipt_replace_43509 size compat_ipt_replace 0 43509 NULL
163806 +enable_so_size_uvc_control_info_43512 size uvc_control_info 0 43512 NULL
163807 +enable_so_snd_es1968_new_memory_fndecl_43515 snd_es1968_new_memory fndecl 2 43515 NULL
163808 +enable_so_fddi_header_fndecl_43519 fddi_header fndecl 3 43519 NULL nohasharray
163809 +enable_so_ieee80211_set_probe_resp_fndecl_43519 ieee80211_set_probe_resp fndecl 3 43519 &enable_so_fddi_header_fndecl_43519
163810 +enable_so_sb_rextslog_xfs_sb_43520 sb_rextslog xfs_sb 0 43520 NULL nohasharray
163811 +enable_so_ptp_read_fndecl_43520 ptp_read fndecl 4 43520 &enable_so_sb_rextslog_xfs_sb_43520
163812 +enable_so_fifo_pool_size_snd_seq_user_client_43523 fifo_pool_size snd_seq_user_client 0 43523 NULL
163813 +enable_so__iwl_dbgfs_rx_phyinfo_write_fndecl_43525 _iwl_dbgfs_rx_phyinfo_write fndecl 3 43525 NULL
163814 +enable_so_xfs_dir2_leaf_getdents_fndecl_43533 xfs_dir2_leaf_getdents fndecl 3 43533 NULL
163815 +enable_so_mei_amthif_read_start_fndecl_43534 mei_amthif_read_start fndecl 0 43534 NULL
163816 +enable_so_dccps_gsr_dccp_sock_43535 dccps_gsr dccp_sock 0 43535 NULL
163817 +enable_so_points_per_channel_pda_pa_curve_data_43548 points_per_channel pda_pa_curve_data 0 43548 NULL
163818 +enable_so_offset_qcafrm_handle_43553 offset qcafrm_handle 0 43553 NULL
163819 +enable_so_bg_inode_table_lo_ext4_group_desc_43555 bg_inode_table_lo ext4_group_desc 0 43555 NULL
163820 +enable_so_hdrlen_hip_hdr_43556 hdrlen hip_hdr 0 43556 NULL
163821 +enable_so_buffer_size_budget_43564 buffer_size budget 0 43564 NULL
163822 +enable_so_tx_buf_clear_sent_ks959_cb_43565 tx_buf_clear_sent ks959_cb 0 43565 NULL
163823 +enable_so_ib_create_send_mad_fndecl_43569 ib_create_send_mad fndecl 6-5 43569 NULL
163824 +enable_so_wMemorySize_ms_bootblock_sysinf_43576 wMemorySize ms_bootblock_sysinf 0 43576 NULL
163825 +enable_so_ccp_fill_queue_buf_fndecl_43580 ccp_fill_queue_buf fndecl 0 43580 NULL
163826 +enable_so_xfs_difree_fndecl_43581 xfs_difree fndecl 2 43581 NULL
163827 +enable_so___br_vlan_set_default_pvid_fndecl_43587 __br_vlan_set_default_pvid fndecl 2 43587 NULL
163828 +enable_so_size_ext4_io_end_43590 size ext4_io_end 0 43590 NULL
163829 +enable_so_ath10k_read_fw_dbglog_fndecl_43592 ath10k_read_fw_dbglog fndecl 3 43592 NULL
163830 +enable_so_recv_data_fndecl_43596 recv_data fndecl 3 43596 NULL
163831 +enable_so_rem_len_hci_rp_read_local_amp_assoc_43602 rem_len hci_rp_read_local_amp_assoc 0 43602 NULL nohasharray
163832 +enable_so_mult_req_ide_drive_s_43602 mult_req ide_drive_s 0 43602 &enable_so_rem_len_hci_rp_read_local_amp_assoc_43602 nohasharray
163833 +enable_so_isdn_ppp_ccp_xmit_reset_fndecl_43602 isdn_ppp_ccp_xmit_reset fndecl 6 43602 &enable_so_mult_req_ide_drive_s_43602
163834 +enable_so_nfsd_vfs_read_fndecl_43608 nfsd_vfs_read fndecl 3-5 43608 NULL
163835 +enable_so_raid5_resize_fndecl_43609 raid5_resize fndecl 2 43609 NULL
163836 +enable_so_ssize_datafab_info_43610 ssize datafab_info 0 43610 NULL
163837 +enable_so_minor_usb_serial_port_43611 minor usb_serial_port 0 43611 NULL
163838 +enable_so_phys_ctlmem_fst_card_info_43612 phys_ctlmem fst_card_info 0 43612 NULL
163839 +enable_so_sg_limit_blogic_ext_setup_43615 sg_limit blogic_ext_setup 0 43615 NULL nohasharray
163840 +enable_so_qnx4_block_map_fndecl_43615 qnx4_block_map fndecl 0-2 43615 &enable_so_sg_limit_blogic_ext_setup_43615
163841 +enable_so_camera_fbmem_size_viafb_dev_43616 camera_fbmem_size viafb_dev 0 43616 NULL
163842 +enable_so_ceph_fill_file_size_fndecl_43619 ceph_fill_file_size fndecl 4-5 43619 NULL
163843 +enable_so_drm_format_plane_cpp_fndecl_43621 drm_format_plane_cpp fndecl 0 43621 NULL nohasharray
163844 +enable_so_chipshift_cfi_private_43621 chipshift cfi_private 0 43621 &enable_so_drm_format_plane_cpp_fndecl_43621
163845 +enable_so_btusb_recv_isoc_fndecl_43628 btusb_recv_isoc fndecl 3 43628 NULL
163846 +enable_so_drm_gtf2_k_fndecl_43638 drm_gtf2_k fndecl 0 43638 NULL nohasharray
163847 +enable_so_technisat_usb2_eeprom_lrc_read_fndecl_43638 technisat_usb2_eeprom_lrc_read fndecl 4 43638 &enable_so_drm_gtf2_k_fndecl_43638
163848 +enable_so_sdricoh_mmc_cmd_fndecl_43641 sdricoh_mmc_cmd fndecl 0 43641 NULL
163849 +enable_so_info_server_fndecl_43644 info_server fndecl 4 43644 NULL
163850 +enable_so_bfad_iocmd_pcifn_create_fndecl_43645 bfad_iocmd_pcifn_create fndecl 0 43645 NULL
163851 +enable_so_nf_nat_sip_fndecl_43657 nf_nat_sip fndecl 2 43657 NULL
163852 +enable_so_usbnet_read_cmd_nopm_fndecl_43663 usbnet_read_cmd_nopm fndecl 7 43663 NULL nohasharray
163853 +enable_so_edac_pci_alloc_ctl_info_fndecl_43663 edac_pci_alloc_ctl_info fndecl 1 43663 &enable_so_usbnet_read_cmd_nopm_fndecl_43663
163854 +enable_so_bop_last_key_nilfs_bmap_operations_43669 bop_last_key nilfs_bmap_operations 0 43669 NULL
163855 +enable_so_gsi_kvm_irq_routing_entry_43676 gsi kvm_irq_routing_entry 0 43676 NULL
163856 +enable_so_idmouse_read_fndecl_43677 idmouse_read fndecl 3 43677 NULL
163857 +enable_so_header_size_perf_event_43679 header_size perf_event 0 43679 NULL
163858 +enable_so_width_mxr_crop_43682 width mxr_crop 0 43682 NULL
163859 +enable_so_data_offset_nfsd4_compound_state_43684 data_offset nfsd4_compound_state 0 43684 NULL
163860 +enable_so_ingr_sz_sge_43689 ingr_sz sge 0 43689 NULL
163861 +enable_so_nxt200x_readbytes_fndecl_43693 nxt200x_readbytes fndecl 4 43693 NULL
163862 +enable_so_num_tx_descs_octeon_nic_if_config_43704 num_tx_descs octeon_nic_if_config 0 43704 NULL
163863 +enable_so_rx_buf_len_bcmgenet_priv_43705 rx_buf_len bcmgenet_priv 0 43705 NULL
163864 +enable_so_verity_verify_level_fndecl_43710 verity_verify_level fndecl 0 43710 NULL nohasharray
163865 +enable_so_gtk_icvlen_iwl_mvm_43710 gtk_icvlen iwl_mvm 0 43710 &enable_so_verity_verify_level_fndecl_43710 nohasharray
163866 +enable_so_rxpipe_missed_beacon_host_int_trig_rx_data_read_fndecl_43710 rxpipe_missed_beacon_host_int_trig_rx_data_read fndecl 3 43710 &enable_so_gtk_icvlen_iwl_mvm_43710
163867 +enable_so_of_irq_get_fndecl_43712 of_irq_get fndecl 0 43712 NULL
163868 +enable_so_data_block_quadlets_amdtp_stream_43723 data_block_quadlets amdtp_stream 0 43723 NULL
163869 +enable_so_in_size_xz_buf_43724 in_size xz_buf 0 43724 NULL
163870 +enable_so_tpm_tis_init_fndecl_43728 tpm_tis_init fndecl 4-3 43728 NULL
163871 +enable_so_ReplyFrameSize_mpt3sas_facts_43736 ReplyFrameSize mpt3sas_facts 0 43736 NULL
163872 +enable_so_gfn_to_hva_many_fndecl_43742 gfn_to_hva_many fndecl 2 43742 NULL
163873 +enable_so_acpi_rs_strcpy_fndecl_43746 acpi_rs_strcpy fndecl 0 43746 NULL
163874 +enable_so_used_map_cnt_verifier_env_43747 used_map_cnt verifier_env 0 43747 NULL
163875 +enable_so_stat_end_vardecl_drv_c_43748 stat_end vardecl_drv.c 0 43748 NULL
163876 +enable_so_sas_host_smp_write_gpio_fndecl_43749 sas_host_smp_write_gpio fndecl 0 43749 NULL
163877 +enable_so_osd_req_encode_op_fndecl_43755 osd_req_encode_op fndecl 0 43755 NULL
163878 +enable_so_data1_sisusb_command_43756 data1 sisusb_command 0 43756 NULL nohasharray
163879 +enable_so_len_meta_value_43756 len meta_value 0 43756 &enable_so_data1_sisusb_command_43756 nohasharray
163880 +enable_so___copy_from_user_ll_nocache_fndecl_43756 __copy_from_user_ll_nocache fndecl 0 43756 &enable_so_len_meta_value_43756
163881 +enable_so_reada_find_extent_fndecl_43757 reada_find_extent fndecl 2 43757 NULL
163882 +enable_so_firstEUN_INFTLrecord_43763 firstEUN INFTLrecord 0 43763 NULL
163883 +enable_so_tipc_connect_fndecl_43766 tipc_connect fndecl 3 43766 NULL
163884 +enable_so_cached_start_hfsplus_inode_info_43773 cached_start hfsplus_inode_info 0 43773 NULL
163885 +enable_so_mlx4_ib_alloc_demux_ctx_fndecl_43775 mlx4_ib_alloc_demux_ctx fndecl 3 43775 NULL
163886 +enable_so___smiapp_pll_calculate_fndecl_43779 __smiapp_pll_calculate fndecl 7-6 43779 NULL nohasharray
163887 +enable_so_hwdep_read_fndecl_43779 hwdep_read fndecl 3 43779 &enable_so___smiapp_pll_calculate_fndecl_43779
163888 +enable_so_generic_file_fsync_fndecl_43780 generic_file_fsync fndecl 2-3 43780 NULL
163889 +enable_so_clipcount_cap_vivid_dev_43781 clipcount_cap vivid_dev 0 43781 NULL
163890 +enable_so_prepare_packet_fndecl_43783 prepare_packet fndecl 0 43783 NULL
163891 +enable_so_data_pad_ubi_volume_43787 data_pad ubi_volume 0 43787 NULL
163892 +enable_so_smsc47m1_device_add_fndecl_43796 smsc47m1_device_add fndecl 1 43796 NULL
163893 +enable_so_uhci_urb_dequeue_fndecl_43804 uhci_urb_dequeue fndecl 3 43804 NULL
163894 +enable_so_xfs_trans_reserve_fndecl_43809 xfs_trans_reserve fndecl 3 43809 NULL
163895 +enable_so_len_nft_set_ext_tmpl_43815 len nft_set_ext_tmpl 0 43815 NULL
163896 +enable_so_rdes0_rx_desc_43817 rdes0 rx_desc 0 43817 NULL
163897 +enable_so___vb2_perform_fileio_fndecl_43818 __vb2_perform_fileio fndecl 3 43818 NULL
163898 +enable_so__save_mc_fndecl_43819 _save_mc fndecl 0-3 43819 NULL
163899 +enable_so_i915_gem_object_create_stolen_fndecl_43837 i915_gem_object_create_stolen fndecl 2 43837 NULL
163900 +enable_so_unlink1_fndecl_43840 unlink1 fndecl 3-2 43840 NULL
163901 +enable_so_ath6kl_wmi_enable_sched_scan_cmd_fndecl_43841 ath6kl_wmi_enable_sched_scan_cmd fndecl 2 43841 NULL
163902 +enable_so_bfad_iocmd_diag_lb_stat_fndecl_43844 bfad_iocmd_diag_lb_stat fndecl 0 43844 NULL
163903 +enable_so_initrd_start_vardecl_43848 initrd_start vardecl 0 43848 NULL nohasharray
163904 +enable_so_parport_ieee1284_ecp_write_data_fndecl_43848 parport_ieee1284_ecp_write_data fndecl 0 43848 &enable_so_initrd_start_vardecl_43848
163905 +enable_so_xen_set_nslabs_fndecl_43849 xen_set_nslabs fndecl 0-1 43849 NULL
163906 +enable_so_wlcore_scan_fndecl_43850 wlcore_scan fndecl 4 43850 NULL
163907 +enable_so_iwl_dbgfs_fw_rx_stats_read_fndecl_43853 iwl_dbgfs_fw_rx_stats_read fndecl 3 43853 NULL
163908 +enable_so_scsi_host_alloc_fndecl_43858 scsi_host_alloc fndecl 2 43858 NULL
163909 +enable_so_indat_endpoint_keyspan_device_details_43860 indat_endpoint keyspan_device_details 0 43860 NULL
163910 +enable_so_get_sset_count_ethtool_ops_43861 get_sset_count ethtool_ops 0 43861 NULL
163911 +enable_so_s_l2bsize_jfs_superblock_43870 s_l2bsize jfs_superblock 0 43870 NULL
163912 +enable_so_Xdsdt_acpi_table_fadt_43871 Xdsdt acpi_table_fadt 0 43871 NULL
163913 +enable_so_bulk_in_endpointAddr_hdpvr_device_43874 bulk_in_endpointAddr hdpvr_device 0 43874 NULL nohasharray
163914 +enable_so_of_property_read_u32_array_fndecl_43874 of_property_read_u32_array fndecl 0 43874 &enable_so_bulk_in_endpointAddr_hdpvr_device_43874
163915 +enable_so_iovec_count_sg_io_hdr_43875 iovec_count sg_io_hdr 0 43875 NULL
163916 +enable_so_ts_ctxnum_gru_thread_state_43878 ts_ctxnum gru_thread_state 0 43878 NULL
163917 +enable_so_m_logbsize_xfs_mount_43888 m_logbsize xfs_mount 0 43888 NULL
163918 +enable_so_zap_page_range_single_fndecl_43890 zap_page_range_single fndecl 3-2 43890 NULL
163919 +enable_so_len_libipw_info_element_43892 len libipw_info_element 0 43892 NULL
163920 +enable_so_ocfs2_decrease_refcount_fndecl_43893 ocfs2_decrease_refcount fndecl 4-3 43893 NULL
163921 +enable_so_skb_vlan_push_fndecl_43895 skb_vlan_push fndecl 3-2 43895 NULL nohasharray
163922 +enable_so_device_id_onenand_chip_43895 device_id onenand_chip 0 43895 &enable_so_skb_vlan_push_fndecl_43895
163923 +enable_so_xstats_len_gnet_dump_43898 xstats_len gnet_dump 0 43898 NULL
163924 +enable_so_bfad_iocmd_vf_clr_stats_fndecl_43899 bfad_iocmd_vf_clr_stats fndecl 0 43899 NULL
163925 +enable_so_pnp_add_dma_resource_fndecl_43903 pnp_add_dma_resource fndecl 2 43903 NULL
163926 +enable_so_lc_up_len_nfsd4_layoutcommit_43904 lc_up_len nfsd4_layoutcommit 0 43904 NULL
163927 +enable_so_sta_data_size_ieee80211_hw_43910 sta_data_size ieee80211_hw 0 43910 NULL
163928 +enable_so_xres_drm_cmdline_mode_43915 xres drm_cmdline_mode 0 43915 NULL
163929 +enable_so_vcount_snd_emu10k1_fx8010_ctl_43917 vcount snd_emu10k1_fx8010_ctl 0 43917 NULL
163930 +enable_so_in_int_pipe_usbtest_dev_43922 in_int_pipe usbtest_dev 0 43922 NULL
163931 +enable_so_phys_statctrl_base__synclinkmp_info_43923 phys_statctrl_base _synclinkmp_info 0 43923 NULL
163932 +enable_so_rd_length_nfsd4_read_43924 rd_length nfsd4_read 0 43924 NULL
163933 +enable_so_mbind_range_fndecl_43926 mbind_range fndecl 3-2 43926 NULL
163934 +enable_so_iwl_dbgfs_sensitivity_read_fndecl_43935 iwl_dbgfs_sensitivity_read fndecl 3 43935 NULL
163935 +enable_so_req_fiv_s5k5baf_43938 req_fiv s5k5baf 0 43938 NULL nohasharray
163936 +enable_so_iwl_mvm_coex_dump_mbox_fndecl_43938 iwl_mvm_coex_dump_mbox fndecl 0-3 43938 &enable_so_req_fiv_s5k5baf_43938
163937 +enable_so_max_threads_vardecl_43940 max_threads vardecl 0 43940 NULL nohasharray
163938 +enable_so_queue_pages_pte_range_fndecl_43940 queue_pages_pte_range fndecl 2 43940 &enable_so_max_threads_vardecl_43940
163939 +enable_so_ubifs_change_one_lp_fndecl_43942 ubifs_change_one_lp fndecl 3 43942 NULL
163940 +enable_so_dce_pvc_count_frad_state_43946 dce_pvc_count frad_state 0 43946 NULL
163941 +enable_so_carm_handle_scan_chan_fndecl_43950 carm_handle_scan_chan fndecl 4 43950 NULL
163942 +enable_so_sddr09_readX_fndecl_43951 sddr09_readX fndecl 5-7 43951 NULL
163943 +enable_so_brcmf_fil_cmd_data_set_fndecl_43952 brcmf_fil_cmd_data_set fndecl 4 43952 NULL
163944 +enable_so_size_soundfont_sample_info_43957 size soundfont_sample_info 0 43957 NULL
163945 +enable_so_primary_offset88_cm_req_msg_43962 primary_offset88 cm_req_msg 0 43962 NULL
163946 +enable_so_num_drc_cfgs_wm8904_pdata_43963 num_drc_cfgs wm8904_pdata 0 43963 NULL
163947 +enable_so_rx_ring_count_igb_adapter_43964 rx_ring_count igb_adapter 0 43964 NULL
163948 +enable_so_tpacket_fill_skb_fndecl_43967 tpacket_fill_skb fndecl 6-8 43967 NULL
163949 +enable_so_s_firstdatazone_isofs_sb_info_43968 s_firstdatazone isofs_sb_info 0 43968 NULL
163950 +enable_so_csum_start_virtio_net_hdr_43969 csum_start virtio_net_hdr 0 43969 NULL nohasharray
163951 +enable_so_hfsplus_file_fsync_fndecl_43969 hfsplus_file_fsync fndecl 2-3 43969 &enable_so_csum_start_virtio_net_hdr_43969
163952 +enable_so_len_diag_pkt_43974 len diag_pkt 0 43974 NULL
163953 +enable_so_nilfs_get_dentry_fndecl_43979 nilfs_get_dentry fndecl 3 43979 NULL
163954 +enable_so_s_first_cluster_group_ocfs2_super_block_43980 s_first_cluster_group ocfs2_super_block 0 43980 NULL nohasharray
163955 +enable_so_value_size_bpf_map_43980 value_size bpf_map 0 43980 &enable_so_s_first_cluster_group_ocfs2_super_block_43980
163956 +enable_so_security_policydb_len_fndecl_43981 security_policydb_len fndecl 0 43981 NULL
163957 +enable_so_cur_size_zr364xx_framei_43985 cur_size zr364xx_framei 0 43985 NULL
163958 +enable_so_free_memtype_fndecl_43986 free_memtype fndecl 1-2 43986 NULL
163959 +enable_so_smk_write_revoke_subj_fndecl_43990 smk_write_revoke_subj fndecl 3 43990 NULL
163960 +enable_so_SyS_syslog_fndecl_43993 SyS_syslog fndecl 3 43993 NULL
163961 +enable_so_nsize_jffs2_raw_dirent_43995 nsize jffs2_raw_dirent 0 43995 NULL nohasharray
163962 +enable_so_pvm_determine_end_fndecl_43995 pvm_determine_end fndecl 0-3 43995 &enable_so_nsize_jffs2_raw_dirent_43995 nohasharray
163963 +enable_so_ovl_fill_merge_fndecl_43995 ovl_fill_merge fndecl 3 43995 &enable_so_pvm_determine_end_fndecl_43995
163964 +enable_so_copy_templates_fndecl_43996 copy_templates fndecl 3 43996 NULL
163965 +enable_so_snd_pcm_lib_malloc_pages_fndecl_43997 snd_pcm_lib_malloc_pages fndecl 2 43997 NULL
163966 +enable_so___e820_add_region_fndecl_44001 __e820_add_region fndecl 3 44001 NULL
163967 +enable_so_vme_master_read_fndecl_44006 vme_master_read fndecl 0 44006 NULL
163968 +enable_so_SyS_gethostname_fndecl_44008 SyS_gethostname fndecl 2 44008 NULL
163969 +enable_so_max_io_sz_snic_fw_info_44009 max_io_sz snic_fw_info 0 44009 NULL
163970 +enable_so_rbd_img_obj_exists_submit_fndecl_44011 rbd_img_obj_exists_submit fndecl 0 44011 NULL
163971 +enable_so_ext2_direct_IO_fndecl_44012 ext2_direct_IO fndecl 3 44012 NULL
163972 +enable_so_level_pid_namespace_44021 level pid_namespace 0 44021 NULL
163973 +enable_so_rx_buffer_truesize_efx_nic_44027 rx_buffer_truesize efx_nic 0 44027 NULL
163974 +enable_so_SyS_kexec_file_load_fndecl_44032 SyS_kexec_file_load fndecl 3 44032 NULL
163975 +enable_so_fragmentation_threshold_read_fndecl_44037 fragmentation_threshold_read fndecl 3 44037 NULL
163976 +enable_so_regsize_octeon_mdiobus_44041 regsize octeon_mdiobus 0 44041 NULL
163977 +enable_so_convert_extent_bit_fndecl_44046 convert_extent_bit fndecl 3-2 44046 NULL
163978 +enable_so_ahc_linux_map_seg_fndecl_44059 ahc_linux_map_seg fndecl 4-5 44059 NULL nohasharray
163979 +enable_so_btrfs_submit_direct_fndecl_44059 btrfs_submit_direct fndecl 4 44059 &enable_so_ahc_linux_map_seg_fndecl_44059
163980 +enable_so_prog_page_fndecl_44060 prog_page fndecl 2 44060 NULL
163981 +enable_so_blksize_xfs_da_geometry_44068 blksize xfs_da_geometry 0 44068 NULL
163982 +enable_so_xen_io_tlb_nslabs_vardecl_swiotlb_xen_c_44077 xen_io_tlb_nslabs vardecl_swiotlb-xen.c 0 44077 NULL
163983 +enable_so_maxports_board_t_44081 maxports board_t 0 44081 NULL
163984 +enable_so_debug_pmt_fndecl_44082 debug_pmt fndecl 2 44082 NULL
163985 +enable_so_read_file_regval_fndecl_44093 read_file_regval fndecl 3 44093 NULL
163986 +enable_so_netup_read_i2c_fndecl_44096 netup_read_i2c fndecl 5 44096 NULL
163987 +enable_so_ipoib_cm_create_srq_fndecl_44098 ipoib_cm_create_srq fndecl 2 44098 NULL
163988 +enable_so_xdr_decode_array2_fndecl_44099 xdr_decode_array2 fndecl 2-0 44099 NULL
163989 +enable_so_m_inode_cluster_size_xfs_mount_44101 m_inode_cluster_size xfs_mount 0 44101 NULL
163990 +enable_so_payload_sz_storvsc_cmd_request_44107 payload_sz storvsc_cmd_request 0 44107 NULL
163991 +enable_so_fats_fat_boot_sector_44112 fats fat_boot_sector 0 44112 NULL
163992 +enable_so_ext4_mb_get_buddy_page_lock_fndecl_44127 ext4_mb_get_buddy_page_lock fndecl 0 44127 NULL
163993 +enable_so_udp_sendmsg_fndecl_44135 udp_sendmsg fndecl 3 44135 NULL nohasharray
163994 +enable_so_mls_compute_context_len_fndecl_44135 mls_compute_context_len fndecl 0 44135 &enable_so_udp_sendmsg_fndecl_44135
163995 +enable_so_base_nforce2_smbus_44136 base nforce2_smbus 0 44136 NULL
163996 +enable_so_tps65912_i2c_read_fndecl_44137 tps65912_i2c_read fndecl 3 44137 NULL
163997 +enable_so_key_maxval_mcs_platform_data_44139 key_maxval mcs_platform_data 0 44139 NULL
163998 +enable_so_npins_pinctrl_gpio_range_44148 npins pinctrl_gpio_range 0 44148 NULL
163999 +enable_so_batadv_dat_snoop_incoming_arp_reply_fndecl_44154 batadv_dat_snoop_incoming_arp_reply fndecl 3 44154 NULL
164000 +enable_so_octeon_setup_droq_fndecl_44160 octeon_setup_droq fndecl 4-3 44160 NULL
164001 +enable_so_bfad_debugfs_write_regwr_fndecl_44162 bfad_debugfs_write_regwr fndecl 3 44162 NULL
164002 +enable_so_recvmsg_proto_ops_44163 recvmsg proto_ops 0 44163 NULL
164003 +enable_so_sizeimage_v4l2_plane_pix_format_44168 sizeimage v4l2_plane_pix_format 0 44168 NULL nohasharray
164004 +enable_so_y_len_ccp_ecc_point_44168 y_len ccp_ecc_point 0 44168 &enable_so_sizeimage_v4l2_plane_pix_format_44168
164005 +enable_so_size_drm_mode_create_dumb_44176 size drm_mode_create_dumb 0 44176 NULL
164006 +enable_so_tcfp_nkeys_tcf_pedit_44184 tcfp_nkeys tcf_pedit 0 44184 NULL nohasharray
164007 +enable_so_error_tx_abort_failure_read_fndecl_44184 error_tx_abort_failure_read fndecl 3 44184 &enable_so_tcfp_nkeys_tcf_pedit_44184
164008 +enable_so_qlcnic_change_mtu_fndecl_44186 qlcnic_change_mtu fndecl 2 44186 NULL
164009 +enable_so_btrfs_file_llseek_fndecl_44189 btrfs_file_llseek fndecl 2 44189 NULL
164010 +enable_so_btrfs_ioctl_clone_fndecl_44205 btrfs_ioctl_clone fndecl 5-3-4 44205 NULL
164011 +enable_so_wm8993_set_fll_fndecl_44206 wm8993_set_fll fndecl 4-5 44206 NULL
164012 +enable_so_evdev_compute_buffer_size_fndecl_44212 evdev_compute_buffer_size fndecl 0 44212 NULL
164013 +enable_so_s_bsize_jfs_superblock_44215 s_bsize jfs_superblock 0 44215 NULL
164014 +enable_so_ext2_inode_by_name_fndecl_44217 ext2_inode_by_name fndecl 0 44217 NULL nohasharray
164015 +enable_so_IA_TX_BUF_vardecl_iphase_c_44217 IA_TX_BUF vardecl_iphase.c 0 44217 &enable_so_ext2_inode_by_name_fndecl_44217
164016 +enable_so_SYSC_lsetxattr_fndecl_44222 SYSC_lsetxattr fndecl 4 44222 NULL
164017 +enable_so_len_args_fndecl_44226 len_args fndecl 0 44226 NULL
164018 +enable_so_clear_refs_write_fndecl_44227 clear_refs_write fndecl 3 44227 NULL
164019 +enable_so_ufs_extend_tail_fndecl_44228 ufs_extend_tail fndecl 2 44228 NULL
164020 +enable_so_it_context_support_fw_ohci_44232 it_context_support fw_ohci 0 44232 NULL
164021 +enable_so_rx_filter_arp_filter_read_fndecl_44233 rx_filter_arp_filter_read fndecl 3 44233 NULL
164022 +enable_so_usbhsf_fifo_rcv_len_fndecl_44234 usbhsf_fifo_rcv_len fndecl 0 44234 NULL
164023 +enable_so_au0828_init_isoc_fndecl_44238 au0828_init_isoc fndecl 4-2-3 44238 NULL nohasharray
164024 +enable_so_ns_first_data_block_the_nilfs_44238 ns_first_data_block the_nilfs 0 44238 &enable_so_au0828_init_isoc_fndecl_44238 nohasharray
164025 +enable_so_iriap_connect_indication_fndecl_44238 iriap_connect_indication fndecl 5 44238 &enable_so_ns_first_data_block_the_nilfs_44238
164026 +enable_so_irda_sendmsg_fndecl_44239 irda_sendmsg fndecl 3 44239 NULL nohasharray
164027 +enable_so_frag_stride_mlx4_en_frag_info_44239 frag_stride mlx4_en_frag_info 0 44239 &enable_so_irda_sendmsg_fndecl_44239
164028 +enable_so_num_pages_vb2_dma_sg_buf_44241 num_pages vb2_dma_sg_buf 0 44241 NULL
164029 +enable_so_spk_xs_vardecl_44242 spk_xs vardecl 0 44242 NULL
164030 +enable_so_features_virtio_device_44247 features virtio_device 0 44247 NULL
164031 +enable_so_cxgb4_pktgl_to_skb_fndecl_44248 cxgb4_pktgl_to_skb fndecl 2-3 44248 NULL nohasharray
164032 +enable_so_ax25_addr_size_fndecl_44248 ax25_addr_size fndecl 0 44248 &enable_so_cxgb4_pktgl_to_skb_fndecl_44248
164033 +enable_so_num_reg_defaults_raw_regmap_config_44249 num_reg_defaults_raw regmap_config 0 44249 NULL
164034 +enable_so_lprocfs_write_frac_u64_helper_fndecl_44250 lprocfs_write_frac_u64_helper fndecl 2 44250 NULL
164035 +enable_so_nolb_xcopy_op_44252 nolb xcopy_op 0 44252 NULL
164036 +enable_so_s_cur_size_qib_qp_44254 s_cur_size qib_qp 0 44254 NULL nohasharray
164037 +enable_so_roundup_ring_size_fndecl_44254 roundup_ring_size fndecl 0 44254 &enable_so_s_cur_size_qib_qp_44254
164038 +enable_so_gfn_to_pfn_memslot_atomic_fndecl_44264 gfn_to_pfn_memslot_atomic fndecl 2 44264 NULL nohasharray
164039 +enable_so_skd_sgs_per_request_vardecl_skd_main_c_44264 skd_sgs_per_request vardecl_skd_main.c 0 44264 &enable_so_gfn_to_pfn_memslot_atomic_fndecl_44264
164040 +enable_so_SyS_kexec_load_fndecl_44265 SyS_kexec_load fndecl 2 44265 NULL
164041 +enable_so_length_ceph_pagelist_44267 length ceph_pagelist 0 44267 NULL
164042 +enable_so_s_blocks_per_group_ext2_sb_info_44270 s_blocks_per_group ext2_sb_info 0 44270 NULL nohasharray
164043 +enable_so_skb_put_frags_fndecl_44270 skb_put_frags fndecl 3-2 44270 &enable_so_s_blocks_per_group_ext2_sb_info_44270
164044 +enable_so_il4965_ucode_rx_stats_read_fndecl_44271 il4965_ucode_rx_stats_read fndecl 3 44271 NULL
164045 +enable_so_efi_get_runtime_map_size_fndecl_44276 efi_get_runtime_map_size fndecl 0 44276 NULL
164046 +enable_so_new_raid_disk_md_rdev_44282 new_raid_disk md_rdev 0 44282 NULL
164047 +enable_so_rsp_len_bfad_fcxp_44290 rsp_len bfad_fcxp 0 44290 NULL
164048 +enable_so_pbus_size_mem_fndecl_44293 pbus_size_mem fndecl 6 44293 NULL
164049 +enable_so_NumberOfPorts_mpt3sas_facts_44306 NumberOfPorts mpt3sas_facts 0 44306 NULL
164050 +enable_so_mlx5e_build_netdev_priv_fndecl_44314 mlx5e_build_netdev_priv fndecl 3 44314 NULL
164051 +enable_so_plen_iwch_ep_44317 plen iwch_ep 0 44317 NULL
164052 +enable_so_rq_num_entries_c4iw_qp_attributes_44321 rq_num_entries c4iw_qp_attributes 0 44321 NULL
164053 +enable_so_produce_size_qp_entry_44325 produce_size qp_entry 0 44325 NULL
164054 +enable_so_encode_op_hdr_fndecl_44327 encode_op_hdr fndecl 3 44327 NULL
164055 +enable_so_size_drm_radeon_gem_userptr_44334 size drm_radeon_gem_userptr 0 44334 NULL
164056 +enable_so_bytesused_cx18_buffer_44339 bytesused cx18_buffer 0 44339 NULL
164057 +enable_so_snd_pcm_lib_writev_transfer_fndecl_44344 snd_pcm_lib_writev_transfer fndecl 5 44344 NULL
164058 +enable_so_tail_circ_buf_44346 tail circ_buf 0 44346 NULL nohasharray
164059 +enable_so_count_v4l2_ext_controls_44346 count v4l2_ext_controls 0 44346 &enable_so_tail_circ_buf_44346
164060 +enable_so_vb2_dvb_register_bus_fndecl_44349 vb2_dvb_register_bus fndecl 0 44349 NULL
164061 +enable_so_btrfs_item_size_fndecl_44350 btrfs_item_size fndecl 0 44350 NULL
164062 +enable_so_query_xrc_srq_cmd_fndecl_44353 query_xrc_srq_cmd fndecl 0 44353 NULL
164063 +enable_so_brcmf_sdio_txpkt_prep_sg_fndecl_44354 brcmf_sdio_txpkt_prep_sg fndecl 4-0 44354 NULL
164064 +enable_so_irlan_connect_confirm_fndecl_44361 irlan_connect_confirm fndecl 5 44361 NULL
164065 +enable_so_jffs2_write_end_fndecl_44362 jffs2_write_end fndecl 3 44362 NULL
164066 +enable_so_data_size_ubi_vid_hdr_44367 data_size ubi_vid_hdr 0 44367 NULL
164067 +enable_so___logfs_iget_fndecl_44371 __logfs_iget fndecl 2 44371 NULL
164068 +enable_so_pwm_buf_sz_usbdux_private_44375 pwm_buf_sz usbdux_private 0 44375 NULL
164069 +enable_so_ocfs2_get_refcount_rec_fndecl_44377 ocfs2_get_refcount_rec fndecl 3-4 44377 NULL
164070 +enable_so_rnr_retry_count_cm_id_private_44380 rnr_retry_count cm_id_private 0 44380 NULL
164071 +enable_so_epp_read_data_parport_operations_44383 epp_read_data parport_operations 0 44383 NULL
164072 +enable_so_wmi_evt_connect_fndecl_44385 wmi_evt_connect fndecl 4 44385 NULL
164073 +enable_so_ip_gre_calc_hlen_fndecl_44386 ip_gre_calc_hlen fndecl 0 44386 NULL
164074 +enable_so_dvb_net_ioctl_fndecl_44388 dvb_net_ioctl fndecl 2 44388 NULL
164075 +enable_so_reiserfs_xattr_set_fndecl_44389 reiserfs_xattr_set fndecl 4 44389 NULL nohasharray
164076 +enable_so_bfad_iocmd_ioc_get_attr_fndecl_44389 bfad_iocmd_ioc_get_attr fndecl 0 44389 &enable_so_reiserfs_xattr_set_fndecl_44389
164077 +enable_so_hidpp_prefix_name_fndecl_44393 hidpp_prefix_name fndecl 2 44393 NULL
164078 +enable_so_s_raid_stripe_width_ext4_super_block_44401 s_raid_stripe_width ext4_super_block 0 44401 NULL
164079 +enable_so_num_iscsi_tasks_cnic_local_44404 num_iscsi_tasks cnic_local 0 44404 NULL
164080 +enable_so_compat_SyS_select_fndecl_44405 compat_SyS_select fndecl 1 44405 NULL
164081 +enable_so_child_mtu_cached_xfrm_dst_44407 child_mtu_cached xfrm_dst 0 44407 NULL
164082 +enable_so_drbd_create_device_fndecl_44410 drbd_create_device fndecl 2 44410 NULL
164083 +enable_so_yres_virtual_fb_var_screeninfo_44414 yres_virtual fb_var_screeninfo 0 44414 NULL
164084 +enable_so_count_configfs_buffer_44416 count configfs_buffer 0 44416 NULL
164085 +enable_so_ept_gpte_to_gfn_lvl_fndecl_44420 ept_gpte_to_gfn_lvl fndecl 0-2-1 44420 NULL
164086 +enable_so_seq_open_private_fndecl_44422 seq_open_private fndecl 3 44422 NULL
164087 +enable_so___get_vm_area_fndecl_44428 __get_vm_area fndecl 1-3 44428 NULL nohasharray
164088 +enable_so_rq_ecount_lpfc_sli4_hba_44428 rq_ecount lpfc_sli4_hba 0 44428 &enable_so___get_vm_area_fndecl_44428
164089 +enable_so_ieee80211_if_read_rc_rateidx_mask_2ghz_fndecl_44433 ieee80211_if_read_rc_rateidx_mask_2ghz fndecl 3 44433 NULL
164090 +enable_so_fan_proc_write_fndecl_44434 fan_proc_write fndecl 3 44434 NULL
164091 +enable_so_fd_do_rw_fndecl_44435 fd_do_rw fndecl 5 44435 NULL
164092 +enable_so_nchunks_amdgpu_cs_parser_44436 nchunks amdgpu_cs_parser 0 44436 NULL
164093 +enable_so_nbd_ioctl_fndecl_44444 nbd_ioctl fndecl 4 44444 NULL
164094 +enable_so_get_pages_array_fndecl_44453 get_pages_array fndecl 1 44453 NULL
164095 +enable_so_configfs_write_file_fndecl_44454 configfs_write_file fndecl 3 44454 NULL
164096 +enable_so_hh_len_hh_cache_44455 hh_len hh_cache 0 44455 NULL
164097 +enable_so___get_inode_info_fndecl_44463 __get_inode_info fndecl 0 44463 NULL
164098 +enable_so_cx2341x_handler_init_fndecl_44466 cx2341x_handler_init fndecl 2 44466 NULL
164099 +enable_so_bfa_fcport_get_maxfrsize_fndecl_44467 bfa_fcport_get_maxfrsize fndecl 0 44467 NULL nohasharray
164100 +enable_so_cap_height_usbtv_norm_params_44467 cap_height usbtv_norm_params 0 44467 &enable_so_bfa_fcport_get_maxfrsize_fndecl_44467
164101 +enable_so_get_data_block_bmap_fndecl_44468 get_data_block_bmap fndecl 2 44468 NULL
164102 +enable_so_address_length_acpi_address32_attribute_44471 address_length acpi_address32_attribute 0 44471 NULL
164103 +enable_so_seq_count_iscsi_cmd_44476 seq_count iscsi_cmd 0 44476 NULL
164104 +enable_so_resize_stripes_fndecl_44481 resize_stripes fndecl 2 44481 NULL nohasharray
164105 +enable_so_skb_find_text_fndecl_44481 skb_find_text fndecl 2-0 44481 &enable_so_resize_stripes_fndecl_44481
164106 +enable_so_virtio_gpu_gem_create_fndecl_44491 virtio_gpu_gem_create fndecl 3 44491 NULL
164107 +enable_so_s_first_data_block_ext4_super_block_44495 s_first_data_block ext4_super_block 0 44495 NULL
164108 +enable_so_mmcies_max_wusbhc_44498 mmcies_max wusbhc 0 44498 NULL
164109 +enable_so_pci_cardbus_io_size_vardecl_44500 pci_cardbus_io_size vardecl 0 44500 NULL
164110 +enable_so_io_start_nfs_pgio_header_44501 io_start nfs_pgio_header 0 44501 NULL
164111 +enable_so_omfs_bread_fndecl_44502 omfs_bread fndecl 2 44502 NULL nohasharray
164112 +enable_so_skb_append_pagefrags_fndecl_44502 skb_append_pagefrags fndecl 3 44502 &enable_so_omfs_bread_fndecl_44502
164113 +enable_so_snd_pcm_oss_read3_fndecl_44504 snd_pcm_oss_read3 fndecl 0 44504 NULL
164114 +enable_so_btrfs_add_ordered_extent_fndecl_44505 btrfs_add_ordered_extent fndecl 4-2-5-3 44505 NULL
164115 +enable_so_len_de4x5_ioctl_44508 len de4x5_ioctl 0 44508 NULL
164116 +enable_so_ftdi_elan_edset_setup_fndecl_44513 ftdi_elan_edset_setup fndecl 0 44513 NULL nohasharray
164117 +enable_so_ubifs_add_snod_fndecl_44513 ubifs_add_snod fndecl 4 44513 &enable_so_ftdi_elan_edset_setup_fndecl_44513
164118 +enable_so_li_height_logfs_inode_44514 li_height logfs_inode 0 44514 NULL nohasharray
164119 +enable_so_lock_loop_fndecl_44514 lock_loop fndecl 1-0 44514 &enable_so_li_height_logfs_inode_44514
164120 +enable_so_sco_sock_create_fndecl_44517 sco_sock_create fndecl 3 44517 NULL
164121 +enable_so_sddr09_read20_fndecl_44519 sddr09_read20 fndecl 4-3-6 44519 NULL nohasharray
164122 +enable_so___do_tune_cpucache_fndecl_44519 __do_tune_cpucache fndecl 3-2-4 44519 &enable_so_sddr09_read20_fndecl_44519
164123 +enable_so_video_bpp_sis_video_info_44522 video_bpp sis_video_info 0 44522 NULL nohasharray
164124 +enable_so_length_mtd_oob_buf_44522 length mtd_oob_buf 0 44522 &enable_so_video_bpp_sis_video_info_44522
164125 +enable_so_rbytes_tree_balance_44523 rbytes tree_balance 0 44523 NULL
164126 +enable_so_set_le_key_k_type_fndecl_44525 set_le_key_k_type fndecl 3 44525 NULL
164127 +enable_so_xlog_recover_clear_agi_bucket_fndecl_44526 xlog_recover_clear_agi_bucket fndecl 2 44526 NULL
164128 +enable_so_filter_read_fndecl_44527 filter_read fndecl 3 44527 NULL
164129 +enable_so_yenta_search_one_res_fndecl_44533 yenta_search_one_res fndecl 3 44533 NULL
164130 +enable_so_max_cqes_mthca_limits_44535 max_cqes mthca_limits 0 44535 NULL
164131 +enable_so_consume_size_vmci_transport_44542 consume_size vmci_transport 0 44542 NULL
164132 +enable_so_smk_read_syslog_fndecl_44544 smk_read_syslog fndecl 3 44544 NULL
164133 +enable_so_add_debugfs_mem_fndecl_44546 add_debugfs_mem fndecl 4 44546 NULL nohasharray
164134 +enable_so_numps_powernow_k8_data_44546 numps powernow_k8_data 0 44546 &enable_so_add_debugfs_mem_fndecl_44546
164135 +enable_so_mmc_execute_tuning_fndecl_44557 mmc_execute_tuning fndecl 0 44557 NULL nohasharray
164136 +enable_so_chanctx_data_size_ieee80211_hw_44557 chanctx_data_size ieee80211_hw 0 44557 &enable_so_mmc_execute_tuning_fndecl_44557
164137 +enable_so_hpfs_fnode_dno_fndecl_44569 hpfs_fnode_dno fndecl 0-2 44569 NULL nohasharray
164138 +enable_so_wTotalLength_usb_config_descriptor_44569 wTotalLength usb_config_descriptor 0 44569 &enable_so_hpfs_fnode_dno_fndecl_44569
164139 +enable_so_parent_i_pos_hi_fat_fid_44570 parent_i_pos_hi fat_fid 0 44570 NULL
164140 +enable_so_tw_transfer_internal_fndecl_44581 tw_transfer_internal fndecl 4 44581 NULL nohasharray
164141 +enable_so_ion_handle_test_dma_fndecl_44581 ion_handle_test_dma fndecl 4-5 44581 &enable_so_tw_transfer_internal_fndecl_44581
164142 +enable_so_smsc47m1_find_fndecl_44589 smsc47m1_find fndecl 0 44589 NULL
164143 +enable_so_rd_data0_gfs2_rgrpd_44591 rd_data0 gfs2_rgrpd 0 44591 NULL
164144 +enable_so_maxcontacts_pm_44593 maxcontacts pm 0 44593 NULL
164145 +enable_so_allocate_partition_fndecl_44598 allocate_partition fndecl 4 44598 NULL
164146 +enable_so_len_poll_list_44603 len poll_list 0 44603 NULL
164147 +enable_so_of_io_request_and_map_fndecl_44605 of_io_request_and_map fndecl 2 44605 NULL
164148 +enable_so_bop_mark_nilfs_bmap_operations_44618 bop_mark nilfs_bmap_operations 0 44618 NULL
164149 +enable_so_il_dbgfs_sram_read_fndecl_44619 il_dbgfs_sram_read fndecl 3 44619 NULL
164150 +enable_so_vid_hdr_offset_ubi_attach_req_44622 vid_hdr_offset ubi_attach_req 0 44622 NULL nohasharray
164151 +enable_so_irq_cros_ec_device_44622 irq cros_ec_device 0 44622 &enable_so_vid_hdr_offset_ubi_attach_req_44622
164152 +enable_so_security_file_permission_fndecl_44629 security_file_permission fndecl 0 44629 NULL
164153 +enable_so_max_sectors_Scsi_Host_44630 max_sectors Scsi_Host 0 44630 NULL nohasharray
164154 +enable_so_sel_last_ino_vardecl_selinuxfs_c_44630 sel_last_ino vardecl_selinuxfs.c 0 44630 &enable_so_max_sectors_Scsi_Host_44630
164155 +enable_so_data_len_krb5_tagged_data_44634 data_len krb5_tagged_data 0 44634 NULL
164156 +enable_so_bd_block_size_block_device_44635 bd_block_size block_device 0 44635 NULL
164157 +enable_so_osst_write_error_recovery_fndecl_44636 osst_write_error_recovery fndecl 3 44636 NULL
164158 +enable_so_chunk_root_btrfs_super_block_44639 chunk_root btrfs_super_block 0 44639 NULL
164159 +enable_so_hfcpci_empty_bfifo_fndecl_44640 hfcpci_empty_bfifo fndecl 4 44640 NULL
164160 +enable_so_nb_dev_strip_zone_44645 nb_dev strip_zone 0 44645 NULL
164161 +enable_so_len_nlm_lock_44646 len nlm_lock 0 44646 NULL
164162 +enable_so_bank_mask_stub_chip_44647 bank_mask stub_chip 0 44647 NULL
164163 +enable_so_cp_payload_f2fs_super_block_44648 cp_payload f2fs_super_block 0 44648 NULL
164164 +enable_so_rel_sectors_mmc_ext_csd_44650 rel_sectors mmc_ext_csd 0 44650 NULL
164165 +enable_so_cm_cno_nilfs_cpmode_44654 cm_cno nilfs_cpmode 0 44654 NULL nohasharray
164166 +enable_so_iscsi_segment_init_linear_fndecl_44654 iscsi_segment_init_linear fndecl 3 44654 &enable_so_cm_cno_nilfs_cpmode_44654
164167 +enable_so_nr_sectors_blkif_request_discard_44655 nr_sectors blkif_request_discard 0 44655 NULL nohasharray
164168 +enable_so_bLength_usb_interface_descriptor_44655 bLength usb_interface_descriptor 0 44655 &enable_so_nr_sectors_blkif_request_discard_44655
164169 +enable_so_sparse_early_usemaps_alloc_pgdat_section_fndecl_44659 sparse_early_usemaps_alloc_pgdat_section fndecl 2 44659 NULL
164170 +enable_so_import_single_range_fndecl_44662 import_single_range fndecl 3 44662 NULL
164171 +enable_so_max_rqe_pdid_ocrdma_query_srq_rsp_44663 max_rqe_pdid ocrdma_query_srq_rsp 0 44663 NULL
164172 +enable_so_udf_sb_alloc_partition_maps_fndecl_44666 udf_sb_alloc_partition_maps fndecl 2 44666 NULL nohasharray
164173 +enable_so_num_desc_pages__drm_via_sg_info_44666 num_desc_pages _drm_via_sg_info 0 44666 &enable_so_udf_sb_alloc_partition_maps_fndecl_44666
164174 +enable_so_fe_len_ext4_free_extent_44669 fe_len ext4_free_extent 0 44669 NULL
164175 +enable_so_lfb_width_screen_info_44670 lfb_width screen_info 0 44670 NULL
164176 +enable_so_overlay_cap_top_vivid_dev_44672 overlay_cap_top vivid_dev 0 44672 NULL
164177 +enable_so_mad_sendq_size_vardecl_mad_c_44673 mad_sendq_size vardecl_mad.c 0 44673 NULL nohasharray
164178 +enable_so_flash_write_fndecl_44673 flash_write fndecl 3 44673 &enable_so_mad_sendq_size_vardecl_mad_c_44673
164179 +enable_so_pipes_psb_ops_44679 pipes psb_ops 0 44679 NULL nohasharray
164180 +enable_so_sys_io_setup_fndecl_44679 sys_io_setup fndecl 1 44679 &enable_so_pipes_psb_ops_44679
164181 +enable_so_xfpregs_set_fndecl_44680 xfpregs_set fndecl 4 44680 NULL
164182 +enable_so_COM_len_camera_data_44681 COM_len camera_data 0 44681 NULL nohasharray
164183 +enable_so_setup_swap_map_and_extents_fndecl_44681 setup_swap_map_and_extents fndecl 5 44681 &enable_so_COM_len_camera_data_44681 nohasharray
164184 +enable_so_length_ore_striping_info_44681 length ore_striping_info 0 44681 &enable_so_setup_swap_map_and_extents_fndecl_44681
164185 +enable_so_msg_size_ecryptfs_msg_ctx_44687 msg_size ecryptfs_msg_ctx 0 44687 NULL
164186 +enable_so_offset_drm_map_44692 offset drm_map 0 44692 NULL
164187 +enable_so_start_linear_c_44708 start linear_c 0 44708 NULL
164188 +enable_so_ts_packet_count_saa7164_port_44712 ts_packet_count saa7164_port 0 44712 NULL nohasharray
164189 +enable_so_au_rslack_rpc_auth_44712 au_rslack rpc_auth 0 44712 &enable_so_ts_packet_count_saa7164_port_44712
164190 +enable_so_altera_irscan_fndecl_44719 altera_irscan fndecl 2 44719 NULL
164191 +enable_so___nilfs_get_page_block_fndecl_44723 __nilfs_get_page_block fndecl 4 44723 NULL
164192 +enable_so_inlen_mimd_44727 inlen mimd 0 44727 NULL nohasharray
164193 +enable_so_kmalloc_order_fndecl_44727 kmalloc_order fndecl 1 44727 &enable_so_inlen_mimd_44727
164194 +enable_so_nd_blk_rw_integrity_fndecl_44728 nd_blk_rw_integrity fndecl 0 44728 NULL
164195 +enable_so_assoc_req_ies_len_station_info_44731 assoc_req_ies_len station_info 0 44731 NULL nohasharray
164196 +enable_so_buffer_size_st_buffer_44731 buffer_size st_buffer 0 44731 &enable_so_assoc_req_ies_len_station_info_44731
164197 +enable_so_ino_nilfs_recovery_block_44737 ino nilfs_recovery_block 0 44737 NULL
164198 +enable_so_name_len_name_cache_entry_44739 name_len name_cache_entry 0 44739 NULL
164199 +enable_so_lpfc_hba_init_link_fc_topology_fndecl_44740 lpfc_hba_init_link_fc_topology fndecl 0 44740 NULL
164200 +enable_so_erst_clearer_fndecl_44743 erst_clearer fndecl 2 44743 NULL
164201 +enable_so_page_size_mspro_sys_info_44749 page_size mspro_sys_info 0 44749 NULL
164202 +enable_so_max_phy_id_vardecl_x86_pkg_temp_thermal_c_44750 max_phy_id vardecl_x86_pkg_temp_thermal.c 0 44750 NULL
164203 +enable_so_dev_sectors_mddev_44756 dev_sectors mddev 0 44756 NULL
164204 +enable_so_brd_probe_fndecl_44758 brd_probe fndecl 1 44758 NULL
164205 +enable_so_set_ssp_fndecl_44760 set_ssp fndecl 4 44760 NULL
164206 +enable_so_p_memsz_elf64_phdr_44763 p_memsz elf64_phdr 0 44763 NULL
164207 +enable_so_mt9m111_reg_read_fndecl_44764 mt9m111_reg_read fndecl 0 44764 NULL
164208 +enable_so_sys_tee_fndecl_44769 sys_tee fndecl 3 44769 NULL
164209 +enable_so_cb710_mmc_send_fndecl_44773 cb710_mmc_send fndecl 0 44773 NULL nohasharray
164210 +enable_so_count_snd_kcontrol_44773 count snd_kcontrol 0 44773 &enable_so_cb710_mmc_send_fndecl_44773
164211 +enable_so_dce_v8_0_afmt_update_ACR_fndecl_44781 dce_v8_0_afmt_update_ACR fndecl 2 44781 NULL
164212 +enable_so_nbp_vlan_add_fndecl_44783 nbp_vlan_add fndecl 2 44783 NULL
164213 +enable_so_ocfs2_handle_error_fndecl_44785 ocfs2_handle_error fndecl 0 44785 NULL nohasharray
164214 +enable_so_vb2_vmalloc_alloc_fndecl_44785 vb2_vmalloc_alloc fndecl 2 44785 &enable_so_ocfs2_handle_error_fndecl_44785
164215 +enable_so_btt_data_write_fndecl_44793 btt_data_write fndecl 0 44793 NULL
164216 +enable_so_truncate_size_ceph_mds_caps_44794 truncate_size ceph_mds_caps 0 44794 NULL
164217 +enable_so_sg_used_ccp_sg_workarea_44796 sg_used ccp_sg_workarea 0 44796 NULL
164218 +enable_so_n_caps_whci_card_44799 n_caps whci_card 0 44799 NULL nohasharray
164219 +enable_so_ioc_queue_depth_bfad_cfg_param_s_44799 ioc_queue_depth bfad_cfg_param_s 0 44799 &enable_so_n_caps_whci_card_44799
164220 +enable_so_tclass_sq_psn_ocrdma_qp_params_44805 tclass_sq_psn ocrdma_qp_params 0 44805 NULL
164221 +enable_so_cow_file_range_fndecl_44808 cow_file_range fndecl 3-4 44808 NULL
164222 +enable_so_fd_locked_ioctl_fndecl_44809 fd_locked_ioctl fndecl 3 44809 NULL
164223 +enable_so_raw_getfrag_fndecl_44811 raw_getfrag fndecl 3-4 44811 NULL nohasharray
164224 +enable_so___remove_privs_fndecl_44811 __remove_privs fndecl 0 44811 &enable_so_raw_getfrag_fndecl_44811 nohasharray
164225 +enable_so_resp_ctrl_m_pg_fndecl_44811 resp_ctrl_m_pg fndecl 0 44811 &enable_so___remove_privs_fndecl_44811
164226 +enable_so_ndev_debugfs_read_fndecl_44812 ndev_debugfs_read fndecl 3 44812 NULL
164227 +enable_so_set_extent_delalloc_fndecl_44813 set_extent_delalloc fndecl 3-2 44813 NULL
164228 +enable_so_sb_uquotino_xfs_sb_44820 sb_uquotino xfs_sb 0 44820 NULL
164229 +enable_so_cluster_pages_for_defrag_fndecl_44823 cluster_pages_for_defrag fndecl 0 44823 NULL
164230 +enable_so_bytesize_nbd_device_44824 bytesize nbd_device 0 44824 NULL nohasharray
164231 +enable_so_count_atl1c_tpd_ring_44824 count atl1c_tpd_ring 0 44824 &enable_so_bytesize_nbd_device_44824
164232 +enable_so_squashfs_read_id_index_table_fndecl_44826 squashfs_read_id_index_table fndecl 4 44826 NULL
164233 +enable_so_vlan_tag_be_rx_compl_info_44830 vlan_tag be_rx_compl_info 0 44830 NULL nohasharray
164234 +enable_so_fix_read_error_fndecl_44830 fix_read_error fndecl 4-3 44830 &enable_so_vlan_tag_be_rx_compl_info_44830
164235 +enable_so_dequeue_event_fndecl_44835 dequeue_event fndecl 3 44835 NULL
164236 +enable_so_name_len_exofs_dir_entry_44838 name_len exofs_dir_entry 0 44838 NULL
164237 +enable_so_xt_compat_match_offset_fndecl_44840 xt_compat_match_offset fndecl 0 44840 NULL
164238 +enable_so_exofs_readpages_fndecl_44841 exofs_readpages fndecl 4 44841 NULL
164239 +enable_so_submit_bh_wbc_fndecl_44843 submit_bh_wbc fndecl 0 44843 NULL
164240 +enable_so_num_zones_quirk_entry_44844 num_zones quirk_entry 0 44844 NULL
164241 +enable_so_btrfs_shrink_device_fndecl_44845 btrfs_shrink_device fndecl 2 44845 NULL
164242 +enable_so_spi_sh_receive_fndecl_44846 spi_sh_receive fndecl 0 44846 NULL
164243 +enable_so_ext4_da_get_block_prep_fndecl_44848 ext4_da_get_block_prep fndecl 2 44848 NULL
164244 +enable_so_primary_size_drm_mga_dma_bootstrap_44851 primary_size drm_mga_dma_bootstrap 0 44851 NULL
164245 +enable_so_viafb_second_yres_vardecl_44862 viafb_second_yres vardecl 0 44862 NULL nohasharray
164246 +enable_so_offset_isofs_iget5_callback_data_44862 offset isofs_iget5_callback_data 0 44862 &enable_so_viafb_second_yres_vardecl_44862
164247 +enable_so_pmcraid_build_passthrough_ioadls_fndecl_44865 pmcraid_build_passthrough_ioadls fndecl 2 44865 NULL
164248 +enable_so_crypt_extent_fndecl_44866 crypt_extent fndecl 4 44866 NULL nohasharray
164249 +enable_so_h4_recv_fndecl_44866 h4_recv fndecl 3 44866 &enable_so_crypt_extent_fndecl_44866
164250 +enable_so_intel_setup_irq_remapping_fndecl_44868 intel_setup_irq_remapping fndecl 0 44868 NULL
164251 +enable_so_alloc_rc_map_44870 alloc rc_map 0 44870 NULL
164252 +enable_so_romfs_blk_read_fndecl_44875 romfs_blk_read fndecl 4-2 44875 NULL
164253 +enable_so_ppp_tx_cp_fndecl_44879 ppp_tx_cp fndecl 5-2 44879 NULL
164254 +enable_so_SyS_setxattr_fndecl_44880 SyS_setxattr fndecl 4 44880 NULL
164255 +enable_so_port_mlx4_en_priv_44883 port mlx4_en_priv 0 44883 NULL
164256 +enable_so___cookie_v4_check_fndecl_44887 __cookie_v4_check fndecl 0 44887 NULL nohasharray
164257 +enable_so_jffs2_do_unlink_fndecl_44887 jffs2_do_unlink fndecl 4 44887 &enable_so___cookie_v4_check_fndecl_44887
164258 +enable_so_code_length_lirc_driver_44888 code_length lirc_driver 0 44888 NULL
164259 +enable_so_deh_len_hops_ddpehdr_44891 deh_len_hops ddpehdr 0 44891 NULL nohasharray
164260 +enable_so_msg_len_rndis_data_hdr_44891 msg_len rndis_data_hdr 0 44891 &enable_so_deh_len_hops_ddpehdr_44891 nohasharray
164261 +enable_so_SYSC_select_fndecl_44891 SYSC_select fndecl 1 44891 &enable_so_msg_len_rndis_data_hdr_44891
164262 +enable_so_inst_evtlog_size_iwl_fw_44893 inst_evtlog_size iwl_fw 0 44893 NULL
164263 +enable_so_FormattedSize_NFTLMediaHeader_44896 FormattedSize NFTLMediaHeader 0 44896 NULL
164264 +enable_so_io_size_gpio_lpc_sch_info_44898 io_size_gpio lpc_sch_info 0 44898 NULL
164265 +enable_so_pcpu_alloc_bootmem_fndecl_44905 pcpu_alloc_bootmem fndecl 3-2 44905 NULL
164266 +enable_so_gotoxy_fndecl_44908 gotoxy fndecl 2-3 44908 NULL
164267 +enable_so_write_packet_fndecl_44910 write_packet fndecl 3 44910 NULL
164268 +enable_so_catas_size_mlx4_fw_44916 catas_size mlx4_fw 0 44916 NULL
164269 +enable_so_do_pselect_fndecl_44926 do_pselect fndecl 1 44926 NULL
164270 +enable_so_bvec_iter_advance_fndecl_44933 bvec_iter_advance fndecl 3 44933 NULL
164271 +enable_so_jffs2_security_setxattr_fndecl_44936 jffs2_security_setxattr fndecl 4 44936 NULL
164272 +enable_so_data_dev_block_bits_dm_verity_44943 data_dev_block_bits dm_verity 0 44943 NULL
164273 +enable_so_data_block_dm_thin_new_mapping_44944 data_block dm_thin_new_mapping 0 44944 NULL nohasharray
164274 +enable_so_acpiphp_max_busnr_fndecl_44944 acpiphp_max_busnr fndecl 0 44944 &enable_so_data_block_dm_thin_new_mapping_44944
164275 +enable_so_srp_sq_size_srpt_port_attrib_44947 srp_sq_size srpt_port_attrib 0 44947 NULL
164276 +enable_so_sd_diptrs_gfs2_sbd_44954 sd_diptrs gfs2_sbd 0 44954 NULL nohasharray
164277 +enable_so_max_msix_vectors_vardecl_mpt2sas_base_c_44954 max_msix_vectors vardecl_mpt2sas_base.c 0 44954 &enable_so_sd_diptrs_gfs2_sbd_44954
164278 +enable_so_coff_ddb_output_44962 coff ddb_output 0 44962 NULL
164279 +enable_so_qib_diag_write_fndecl_44966 qib_diag_write fndecl 3 44966 NULL
164280 +enable_so_fat12_ent_bread_fndecl_44968 fat12_ent_bread fndecl 4 44968 NULL
164281 +enable_so_i915_pages_create_for_stolen_fndecl_44970 i915_pages_create_for_stolen fndecl 3 44970 NULL
164282 +enable_so_x0_osd_cmd_s_44978 x0 osd_cmd_s 0 44978 NULL
164283 +enable_so_length_mtd_oob_buf64_44979 length mtd_oob_buf64 0 44979 NULL
164284 +enable_so_ip_recv_error_fndecl_44982 ip_recv_error fndecl 3 44982 NULL nohasharray
164285 +enable_so_num_free_virtqueue_44982 num_free virtqueue 0 44982 &enable_so_ip_recv_error_fndecl_44982
164286 +enable_so_generic_block_fiemap_fndecl_44985 generic_block_fiemap fndecl 4 44985 NULL
164287 +enable_so_snd_ak4114_external_rate_fndecl_44987 snd_ak4114_external_rate fndecl 0 44987 NULL
164288 +enable_so_num_carats_acpi_namestring_info_44990 num_carats acpi_namestring_info 0 44990 NULL
164289 +enable_so_transport_lba_32_fndecl_44994 transport_lba_32 fndecl 0 44994 NULL
164290 +enable_so_fts_libipw_device_44996 fts libipw_device 0 44996 NULL
164291 +enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997 iscsi_max_outsnd_r2t dev_db_entry 0 44997 NULL nohasharray
164292 +enable_so_SyS_getxattr_fndecl_44997 SyS_getxattr fndecl 4 44997 &enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997
164293 +enable_so_eeprom_size_il_cfg_44998 eeprom_size il_cfg 0 44998 NULL
164294 +enable_so_ocfs2_list_xattr_tree_rec_fndecl_45001 ocfs2_list_xattr_tree_rec fndecl 3 45001 NULL
164295 +enable_so_prism54_wpa_bss_ie_get_fndecl_45006 prism54_wpa_bss_ie_get fndecl 0 45006 NULL
164296 +enable_so_bnx2fc_initiate_els_fndecl_45008 bnx2fc_initiate_els fndecl 4 45008 NULL
164297 +enable_so_video_usercopy_fndecl_45012 video_usercopy fndecl 2 45012 NULL
164298 +enable_so_size_e820entry_45018 size e820entry 0 45018 NULL
164299 +enable_so_num_cqs_mthca_limits_45021 num_cqs mthca_limits 0 45021 NULL
164300 +enable_so_membase_vgastate_45022 membase vgastate 0 45022 NULL
164301 +enable_so_rd_size_hidp_session_45023 rd_size hidp_session 0 45023 NULL
164302 +enable_so_nvalid_xfs_dir3_icfree_hdr_45035 nvalid xfs_dir3_icfree_hdr 0 45035 NULL
164303 +enable_so_sock_kmalloc_fndecl_45038 sock_kmalloc fndecl 2 45038 NULL
164304 +enable_so_write_file_dfs_fndecl_45047 write_file_dfs fndecl 3 45047 NULL
164305 +enable_so_alloc_upcall_fndecl_45049 alloc_upcall fndecl 2 45049 NULL nohasharray
164306 +enable_so_ib_uverbs_rereg_mr_fndecl_45049 ib_uverbs_rereg_mr fndecl 4 45049 &enable_so_alloc_upcall_fndecl_45049
164307 +enable_so_hs_extra_bytes_cfs_hash_45050 hs_extra_bytes cfs_hash 0 45050 NULL
164308 +enable_so_bfad_iocmd_debug_fw_core_fndecl_45051 bfad_iocmd_debug_fw_core fndecl 0 45051 NULL nohasharray
164309 +enable_so_small_smb_init_fndecl_45051 small_smb_init fndecl 2 45051 &enable_so_bfad_iocmd_debug_fw_core_fndecl_45051
164310 +enable_so_tx_ring_count_e1000_adapter_45060 tx_ring_count e1000_adapter 0 45060 NULL
164311 +enable_so_sd_sgentry_align_brcmfmac_sdio_platform_data_45061 sd_sgentry_align brcmfmac_sdio_platform_data 0 45061 NULL
164312 +enable_so_write_buffer_size_vardecl_legousbtower_c_45062 write_buffer_size vardecl_legousbtower.c 0 45062 NULL
164313 +enable_so_read_vbt_r10_fndecl_45076 read_vbt_r10 fndecl 1 45076 NULL
164314 +enable_so_sendpage_iscsi_sw_tcp_conn_45081 sendpage iscsi_sw_tcp_conn 0 45081 NULL
164315 +enable_so_unmap_mapping_range_vma_fndecl_45084 unmap_mapping_range_vma fndecl 2-3 45084 NULL
164316 +enable_so_regshift_uart_port_45089 regshift uart_port 0 45089 NULL
164317 +enable_so_revmap_size_irq_domain_45091 revmap_size irq_domain 0 45091 NULL
164318 +enable_so_ocfs2_lock_reflink_xattr_rec_allocators_fndecl_45097 ocfs2_lock_reflink_xattr_rec_allocators fndecl 3 45097 NULL
164319 +enable_so_bblog_size_mdp_superblock_1_45102 bblog_size mdp_superblock_1 0 45102 NULL
164320 +enable_so_nd_cmd_out_size_fndecl_45105 nd_cmd_out_size fndecl 0 45105 NULL nohasharray
164321 +enable_so_pitch_tmHWStreamParameters_45105 pitch tmHWStreamParameters 0 45105 &enable_so_nd_cmd_out_size_fndecl_45105 nohasharray
164322 +enable_so_head_timestamp_event_queue_45105 head timestamp_event_queue 0 45105 &enable_so_pitch_tmHWStreamParameters_45105
164323 +enable_so_skb_tx_rsvd_cxgbi_device_45109 skb_tx_rsvd cxgbi_device 0 45109 NULL
164324 +enable_so_init_data_container_fndecl_45110 init_data_container fndecl 1 45110 NULL nohasharray
164325 +enable_so_watchdog_devt_vardecl_watchdog_dev_c_45110 watchdog_devt vardecl_watchdog_dev.c 0 45110 &enable_so_init_data_container_fndecl_45110
164326 +enable_so_ea_size_s_fnode_45115 ea_size_s fnode 0 45115 NULL
164327 +enable_so_ov518_pkt_scan_fndecl_45121 ov518_pkt_scan fndecl 3 45121 NULL
164328 +enable_so_vblk_size_vmdb_45123 vblk_size vmdb 0 45123 NULL
164329 +enable_so_early_init_dt_scan_root_fndecl_45127 early_init_dt_scan_root fndecl 1 45127 NULL nohasharray
164330 +enable_so_key_len_mwifiex_ds_encrypt_key_45127 key_len mwifiex_ds_encrypt_key 0 45127 &enable_so_early_init_dt_scan_root_fndecl_45127
164331 +enable_so_img_x_zoran_jpg_settings_45135 img_x zoran_jpg_settings 0 45135 NULL
164332 +enable_so_offset_mlx4_clock_params_45137 offset mlx4_clock_params 0 45137 NULL
164333 +enable_so_specified_table_size_vardecl_45152 specified_table_size vardecl 0 45152 NULL
164334 +enable_so_MaxLanBuckets__MSG_PORT_FACTS_REPLY_45155 MaxLanBuckets _MSG_PORT_FACTS_REPLY 0 45155 NULL
164335 +enable_so_ocfs2_set_refcount_tree_fndecl_45158 ocfs2_set_refcount_tree fndecl 3 45158 NULL
164336 +enable_so_pwc_get_fps_Nala_fndecl_45162 pwc_get_fps_Nala fndecl 0 45162 NULL
164337 +enable_so_cmd_sg_cnt_srp_target_port_45169 cmd_sg_cnt srp_target_port 0 45169 NULL
164338 +enable_so_desc_len_skb_frame_desc_45170 desc_len skb_frame_desc 0 45170 NULL nohasharray
164339 +enable_so_pkcs7_sig_note_issuer_fndecl_45170 pkcs7_sig_note_issuer fndecl 5 45170 &enable_so_desc_len_skb_frame_desc_45170
164340 +enable_so_hpfs_remove_dirent_fndecl_45171 hpfs_remove_dirent fndecl 2 45171 NULL nohasharray
164341 +enable_so_remove_nearest_fndecl_45171 remove_nearest fndecl 4 45171 &enable_so_hpfs_remove_dirent_fndecl_45171 nohasharray
164342 +enable_so_n_ao_urbs_usbdux_private_45171 n_ao_urbs usbdux_private 0 45171 &enable_so_remove_nearest_fndecl_45171
164343 +enable_so_opticon_write_fndecl_45172 opticon_write fndecl 4 45172 NULL
164344 +enable_so_sel_write_checkreqprot_fndecl_45173 sel_write_checkreqprot fndecl 3 45173 NULL
164345 +enable_so_leaf_cut_entries_fndecl_45176 leaf_cut_entries fndecl 4-0 45176 NULL
164346 +enable_so_acl_alloc_num_fndecl_45177 acl_alloc_num fndecl 2-1 45177 NULL
164347 +enable_so_nfsd_splice_read_fndecl_45181 nfsd_splice_read fndecl 3 45181 NULL nohasharray
164348 +enable_so_quirk_awe32_add_ports_fndecl_45181 quirk_awe32_add_ports fndecl 3 45181 &enable_so_nfsd_splice_read_fndecl_45181
164349 +enable_so_n_namesz_elf32_note_45186 n_namesz elf32_note 0 45186 NULL
164350 +enable_so_gfs2_bmap_alloc_fndecl_45189 gfs2_bmap_alloc fndecl 7 45189 NULL
164351 +enable_so_mtu_l2cap_conn_45195 mtu l2cap_conn 0 45195 NULL
164352 +enable_so_count_user_sgentry_45207 count user_sgentry 0 45207 NULL
164353 +enable_so_pwr_tx_with_ps_read_fndecl_45216 pwr_tx_with_ps_read fndecl 3 45216 NULL
164354 +enable_so_l2cap_sock_recvmsg_fndecl_45221 l2cap_sock_recvmsg fndecl 3 45221 NULL
164355 +enable_so_ep_out_usbtest_info_45222 ep_out usbtest_info 0 45222 NULL
164356 +enable_so_nwords_xdr_stream_45223 nwords xdr_stream 0 45223 NULL
164357 +enable_so_hsu_dma_alloc_desc_fndecl_45228 hsu_dma_alloc_desc fndecl 1 45228 NULL
164358 +enable_so_cmt_orphans_ubifs_info_45232 cmt_orphans ubifs_info 0 45232 NULL
164359 +enable_so_packet_buffer_put_fndecl_45234 packet_buffer_put fndecl 3 45234 NULL
164360 +enable_so_ensure_zone_is_initialized_fndecl_45235 ensure_zone_is_initialized fndecl 2 45235 NULL
164361 +enable_so_max_cqes_mlx4_caps_45237 max_cqes mlx4_caps 0 45237 NULL
164362 +enable_so_internal_dev_change_mtu_fndecl_45242 internal_dev_change_mtu fndecl 2 45242 NULL
164363 +enable_so_aggregate_new_rx_fndecl_45246 aggregate_new_rx fndecl 4 45246 NULL
164364 +enable_so_f_height_fimc_frame_45250 f_height fimc_frame 0 45250 NULL
164365 +enable_so_base_erst_erange_45255 base erst_erange 0 45255 NULL
164366 +enable_so_ext4_update_inline_data_fndecl_45259 ext4_update_inline_data fndecl 3 45259 NULL
164367 +enable_so_nameLen_nw_info_struct_45260 nameLen nw_info_struct 0 45260 NULL
164368 +enable_so_check_sectors_in_chain_fndecl_45261 check_sectors_in_chain fndecl 2 45261 NULL
164369 +enable_so_num_rx_ring_sh_eth_private_45262 num_rx_ring sh_eth_private 0 45262 NULL
164370 +enable_so_alloc_buf_fndecl_45267 alloc_buf fndecl 2-3 45267 NULL
164371 +enable_so_generic_writepages_fndecl_45268 generic_writepages fndecl 0 45268 NULL nohasharray
164372 +enable_so_vmw_dmabuf_init_fndecl_45268 vmw_dmabuf_init fndecl 3 45268 &enable_so_generic_writepages_fndecl_45268
164373 +enable_so_uart_input_count_oxygen_45274 uart_input_count oxygen 0 45274 NULL
164374 +enable_so_mq_msgsize_mq_attr_45276 mq_msgsize mq_attr 0 45276 NULL
164375 +enable_so_rss_size_max_i40e_pf_45282 rss_size_max i40e_pf 0 45282 NULL
164376 +enable_so_mgt_set_varlen_fndecl_45287 mgt_set_varlen fndecl 4 45287 NULL
164377 +enable_so_ath6kl_sdio_write_async_fndecl_45290 ath6kl_sdio_write_async fndecl 4 45290 NULL
164378 +enable_so_rcvhdrcnt_qib_devdata_45297 rcvhdrcnt qib_devdata 0 45297 NULL
164379 +enable_so_hugetlbfs_read_actor_fndecl_45304 hugetlbfs_read_actor fndecl 0-4-2 45304 NULL
164380 +enable_so_iio_debugfs_read_reg_fndecl_45311 iio_debugfs_read_reg fndecl 3 45311 NULL
164381 +enable_so_atl1_change_mtu_fndecl_45313 atl1_change_mtu fndecl 2 45313 NULL nohasharray
164382 +enable_so_rx_count_ethtool_channels_45313 rx_count ethtool_channels 0 45313 &enable_so_atl1_change_mtu_fndecl_45313 nohasharray
164383 +enable_so_rx_ring_count_xgbe_prv_data_45313 rx_ring_count xgbe_prv_data 0 45313 &enable_so_rx_count_ethtool_channels_45313
164384 +enable_so_tstats_write_fndecl_45315 tstats_write fndecl 3 45315 NULL
164385 +enable_so_tipc_buf_acquire_fndecl_45318 tipc_buf_acquire fndecl 1 45318 NULL
164386 +enable_so_rx_data_fndecl_45321 rx_data fndecl 4 45321 NULL
164387 +enable_so_len_qib_diag_xpkt_45322 len qib_diag_xpkt 0 45322 NULL
164388 +enable_so_tipc_recv_stream_fndecl_45323 tipc_recv_stream fndecl 3 45323 NULL
164389 +enable_so_back_xfs_dir3_icleaf_hdr_45324 back xfs_dir3_icleaf_hdr 0 45324 NULL
164390 +enable_so_tcf_csum_ipv4_igmp_fndecl_45325 tcf_csum_ipv4_igmp fndecl 3 45325 NULL
164391 +enable_so_ubi_eba_read_leb_sg_fndecl_45326 ubi_eba_read_leb_sg fndecl 0 45326 NULL
164392 +enable_so_excessive_retries_read_fndecl_45338 excessive_retries_read fndecl 3 45338 NULL
164393 +enable_so_peer_chan_len_wmi_tdls_peer_capab_arg_45339 peer_chan_len wmi_tdls_peer_capab_arg 0 45339 NULL
164394 +enable_so_vm_munmap_fndecl_45341 vm_munmap fndecl 1-2 45341 NULL
164395 +enable_so_fdt_node_offset_by_compatible_fndecl_45345 fdt_node_offset_by_compatible fndecl 2 45345 NULL
164396 +enable_so___snd_util_mem_alloc_fndecl_45349 __snd_util_mem_alloc fndecl 2 45349 NULL
164397 +enable_so_uar_size_mlx4_dev_cap_45351 uar_size mlx4_dev_cap 0 45351 NULL
164398 +enable_so_fps_timblogiw_tvnorm_45355 fps timblogiw_tvnorm 0 45355 NULL
164399 +enable_so_reserve_bad_mem_fndecl_45356 reserve_bad_mem fndecl 2-3 45356 NULL
164400 +enable_so_icq_size_elevator_type_45359 icq_size elevator_type 0 45359 NULL
164401 +enable_so_mad_recvq_size_vardecl_mad_c_45372 mad_recvq_size vardecl_mad.c 0 45372 NULL
164402 +enable_so_get_urb_status_from_qtd_fndecl_45378 get_urb_status_from_qtd fndecl 0 45378 NULL
164403 +enable_so_txq_entries_efx_nic_45383 txq_entries efx_nic 0 45383 NULL
164404 +enable_so_verity_finish_io_fndecl_45387 verity_finish_io fndecl 2 45387 NULL nohasharray
164405 +enable_so_nchildren_retu_data_45387 nchildren retu_data 0 45387 &enable_so_verity_finish_io_fndecl_45387
164406 +enable_so_min_hblank_mt9v032_model_data_45392 min_hblank mt9v032_model_data 0 45392 NULL
164407 +enable_so_mmc_do_erase_fndecl_45393 mmc_do_erase fndecl 0 45393 NULL
164408 +enable_so_ebcnt_vardecl_speedtest_c_45398 ebcnt vardecl_speedtest.c 0 45398 NULL
164409 +enable_so_get_dpb_count_s5p_mfc_hw_ops_45399 get_dpb_count s5p_mfc_hw_ops 0 45399 NULL
164410 +enable_so_xpc_nasid_mask_nbytes_vardecl_xpc_partition_c_45405 xpc_nasid_mask_nbytes vardecl_xpc_partition.c 0 45405 NULL
164411 +enable_so_mtu_l2cap_le_conn_req_45411 mtu l2cap_le_conn_req 0 45411 NULL
164412 +enable_so_brcmf_init_nvram_parser_fndecl_45415 brcmf_init_nvram_parser fndecl 3 45415 NULL
164413 +enable_so_lastUnit_INFTLPartition_45416 lastUnit INFTLPartition 0 45416 NULL
164414 +enable_so_pos_c4iw_debugfs_data_45424 pos c4iw_debugfs_data 0 45424 NULL
164415 +enable_so_fats_msdos_sb_info_45426 fats msdos_sb_info 0 45426 NULL
164416 +enable_so___munlock_pagevec_fill_fndecl_45430 __munlock_pagevec_fill fndecl 0-4 45430 NULL
164417 +enable_so_compat_SyS_get_mempolicy_fndecl_45436 compat_SyS_get_mempolicy fndecl 3 45436 NULL
164418 +enable_so_rn_tnamelen_nfsd4_rename_45437 rn_tnamelen nfsd4_rename 0 45437 NULL
164419 +enable_so_radeon_ttm_tt_set_userptr_fndecl_45438 radeon_ttm_tt_set_userptr fndecl 2 45438 NULL
164420 +enable_so_nfsd_hashsize_fndecl_45441 nfsd_hashsize fndecl 0 45441 NULL
164421 +enable_so_qcaspi_netdev_change_mtu_fndecl_45450 qcaspi_netdev_change_mtu fndecl 2 45450 NULL
164422 +enable_so_start_bdi_bd_transfer_45454 start_bdi bd_transfer 0 45454 NULL
164423 +enable_so_wTotalLength_usb_bos_descriptor_45455 wTotalLength usb_bos_descriptor 0 45455 NULL
164424 +enable_so_nonpaging_map_fndecl_45460 nonpaging_map fndecl 4 45460 NULL
164425 +enable_so_cfrfml_create_fndecl_45463 cfrfml_create fndecl 3 45463 NULL
164426 +enable_so_ssize_jumpshot_info_45467 ssize jumpshot_info 0 45467 NULL
164427 +enable_so_index_nullb_45470 index nullb 0 45470 NULL
164428 +enable_so_sockaddr_len_audit_context_45471 sockaddr_len audit_context 0 45471 NULL
164429 +enable_so_elf_load_addr_kimage_arch_45472 elf_load_addr kimage_arch 0 45472 NULL
164430 +enable_so_gx_line_delta_fndecl_45476 gx_line_delta fndecl 0-2-1 45476 NULL
164431 +enable_so_i_pos_fat_slot_info_45481 i_pos fat_slot_info 0 45481 NULL
164432 +enable_so_hdisplay_drm_display_mode_45484 hdisplay drm_display_mode 0 45484 NULL
164433 +enable_so_memblock_virt_alloc_try_nid_nopanic_fndecl_45487 memblock_virt_alloc_try_nid_nopanic fndecl 2-1-3-4 45487 NULL
164434 +enable_so_ovl_cache_entry_add_rb_fndecl_45488 ovl_cache_entry_add_rb fndecl 3 45488 NULL
164435 +enable_so_convert_initialized_extent_fndecl_45492 convert_initialized_extent fndecl 0-6 45492 NULL
164436 +enable_so_pipe_out_lan78xx_net_45497 pipe_out lan78xx_net 0 45497 NULL nohasharray
164437 +enable_so_isofs_bmap_fndecl_45497 isofs_bmap fndecl 0-2 45497 &enable_so_pipe_out_lan78xx_net_45497
164438 +enable_so_bdeSize_ULP_BDL_45501 bdeSize ULP_BDL 0 45501 NULL
164439 +enable_so_nci_uart_default_recv_buf_fndecl_45502 nci_uart_default_recv_buf fndecl 4 45502 NULL
164440 +enable_so_mwifiex_set_gen_ie_fndecl_45504 mwifiex_set_gen_ie fndecl 3 45504 NULL
164441 +enable_so_acl_alloc_stack_init_fndecl_45509 acl_alloc_stack_init fndecl 1 45509 NULL
164442 +enable_so_free_dind_blocks_fndecl_45512 free_dind_blocks fndecl 3 45512 NULL
164443 +enable_so_ubifs_recover_leb_fndecl_45516 ubifs_recover_leb fndecl 3 45516 NULL
164444 +enable_so_stv6110_write_regs_fndecl_45517 stv6110_write_regs fndecl 4 45517 NULL nohasharray
164445 +enable_so_buffer_size_vardecl_cpia2_v4l_c_45517 buffer_size vardecl_cpia2_v4l.c 0 45517 &enable_so_stv6110_write_regs_fndecl_45517
164446 +enable_so_inode_change_ok_fndecl_45525 inode_change_ok fndecl 0 45525 NULL
164447 +enable_so_cifs_partialpagewrite_fndecl_45527 cifs_partialpagewrite fndecl 2-3 45527 NULL nohasharray
164448 +enable_so_callback_via_vardecl_platform_pci_c_45527 callback_via vardecl_platform-pci.c 0 45527 &enable_so_cifs_partialpagewrite_fndecl_45527
164449 +enable_so_ssb_hcd_create_pdev_fndecl_45528 ssb_hcd_create_pdev fndecl 4-3 45528 NULL
164450 +enable_so_sizeof_dev_private_peak_usb_adapter_45529 sizeof_dev_private peak_usb_adapter 0 45529 NULL
164451 +enable_so_hpfs_trim_fs_fndecl_45531 hpfs_trim_fs fndecl 2-3 45531 NULL
164452 +enable_so_wl1273_fm_fops_write_fndecl_45534 wl1273_fm_fops_write fndecl 3 45534 NULL
164453 +enable_so_rtsx_usb_bulk_transfer_sglist_fndecl_45538 rtsx_usb_bulk_transfer_sglist fndecl 5-2-0-4 45538 NULL
164454 +enable_so_size_nft_expr_ops_45543 size nft_expr_ops 0 45543 NULL
164455 +enable_so_if_sdio_host_to_card_fndecl_45545 if_sdio_host_to_card fndecl 4 45545 NULL
164456 +enable_so_mp_agg_pkt_limit_sdio_mmc_card_45546 mp_agg_pkt_limit sdio_mmc_card 0 45546 NULL
164457 +enable_so_ieee80211_if_read_dot11MeshConfirmTimeout_fndecl_45549 ieee80211_if_read_dot11MeshConfirmTimeout fndecl 3 45549 NULL
164458 +enable_so_driver_max_VFs_pci_sriov_45552 driver_max_VFs pci_sriov 0 45552 NULL
164459 +enable_so_bpp_via_format_45554 bpp via_format 0 45554 NULL
164460 +enable_so_pci_quatech_setup_fndecl_45560 pci_quatech_setup fndecl 4 45560 NULL
164461 +enable_so_syncinterval_snd_usb_endpoint_45567 syncinterval snd_usb_endpoint 0 45567 NULL
164462 +enable_so_SyS_prctl_fndecl_45569 SyS_prctl fndecl 4 45569 NULL
164463 +enable_so_height_pwc_device_45570 height pwc_device 0 45570 NULL
164464 +enable_so_get_gate_page_fndecl_45571 get_gate_page fndecl 2 45571 NULL
164465 +enable_so_srp_create_fr_pool_fndecl_45572 srp_create_fr_pool fndecl 3 45572 NULL
164466 +enable_so_s_partition_func_udf_part_map_45579 s_partition_func udf_part_map 0 45579 NULL
164467 +enable_so_f2fs_sync_file_fndecl_45585 f2fs_sync_file fndecl 2-3 45585 NULL
164468 +enable_so_wpan_phy_new_fndecl_45593 wpan_phy_new fndecl 2 45593 NULL
164469 +enable_so_h_len_rds_header_45594 h_len rds_header 0 45594 NULL
164470 +enable_so_upd_received_ubi_volume_45595 upd_received ubi_volume 0 45595 NULL
164471 +enable_so_slave_init_fndecl_45597 slave_init fndecl 0 45597 NULL
164472 +enable_so_readpos_cx18_buffer_45604 readpos cx18_buffer 0 45604 NULL
164473 +enable_so_l_logBBsize_xlog_45614 l_logBBsize xlog 0 45614 NULL
164474 +enable_so_crtc_vblank_end_drm_display_mode_45620 crtc_vblank_end drm_display_mode 0 45620 NULL
164475 +enable_so_smk_read_ambient_fndecl_45623 smk_read_ambient fndecl 3 45623 NULL
164476 +enable_so_image_size_nvbios_npdeT_45624 image_size nvbios_npdeT 0 45624 NULL
164477 +enable_so_blocknr_disk_index_entry_45635 blocknr disk_index_entry 0 45635 NULL
164478 +enable_so_advmss_tcp_sock_45637 advmss tcp_sock 0 45637 NULL nohasharray
164479 +enable_so_btrfs_bio_alloc_fndecl_45637 btrfs_bio_alloc fndecl 2-3 45637 &enable_so_advmss_tcp_sock_45637 nohasharray
164480 +enable_so_ifalias_store_fndecl_45637 ifalias_store fndecl 4 45637 &enable_so_btrfs_bio_alloc_fndecl_45637
164481 +enable_so_tcfv_push_vid_tcf_vlan_45639 tcfv_push_vid tcf_vlan 0 45639 NULL
164482 +enable_so_ib_uverbs_modify_srq_fndecl_45645 ib_uverbs_modify_srq fndecl 4 45645 NULL
164483 +enable_so___verify_planes_array_fndecl_45650 __verify_planes_array fndecl 0 45650 NULL
164484 +enable_so_inftl_writeblock_fndecl_45653 inftl_writeblock fndecl 2 45653 NULL
164485 +enable_so_preproc_res_proc_context_45654 preproc res_proc_context 0 45654 NULL
164486 +enable_so_size_core_name_45656 size core_name 0 45656 NULL
164487 +enable_so_submit_bh_fndecl_45660 submit_bh fndecl 0 45660 NULL
164488 +enable_so_jfs_direct_IO_fndecl_45661 jfs_direct_IO fndecl 3 45661 NULL
164489 +enable_so_blockmask_alauda_media_info_45662 blockmask alauda_media_info 0 45662 NULL
164490 +enable_so_xfer_from_user_fndecl_45672 xfer_from_user fndecl 3 45672 NULL
164491 +enable_so_dmi_base_vardecl_dmi_scan_c_45673 dmi_base vardecl_dmi_scan.c 0 45673 NULL nohasharray
164492 +enable_so_videobuf_dqbuf_fndecl_45673 videobuf_dqbuf fndecl 0 45673 &enable_so_dmi_base_vardecl_dmi_scan_c_45673
164493 +enable_so__snd_pcm_hw_param_min_fndecl_45677 _snd_pcm_hw_param_min fndecl 3 45677 NULL
164494 +enable_so_ocfs2_get_sector_fndecl_45678 ocfs2_get_sector fndecl 4-3 45678 NULL
164495 +enable_so_ib_umem_odp_map_dma_pages_fndecl_45679 ib_umem_odp_map_dma_pages fndecl 0-2 45679 NULL nohasharray
164496 +enable_so_lhead_offs_ubifs_info_45679 lhead_offs ubifs_info 0 45679 &enable_so_ib_umem_odp_map_dma_pages_fndecl_45679
164497 +enable_so_hfsplus_getxattr_finder_info_fndecl_45680 hfsplus_getxattr_finder_info fndecl 0 45680 NULL
164498 +enable_so_src_y_yuv_frame_info_45681 src_y yuv_frame_info 0 45681 NULL
164499 +enable_so_sys_add_key_fndecl_45691 sys_add_key fndecl 4 45691 NULL nohasharray
164500 +enable_so_nvme_trans_copy_to_user_fndecl_45691 nvme_trans_copy_to_user fndecl 3 45691 &enable_so_sys_add_key_fndecl_45691
164501 +enable_so_endpt_ubifs_unclean_leb_45692 endpt ubifs_unclean_leb 0 45692 NULL nohasharray
164502 +enable_so_hd_end_request_cur_fndecl_45692 hd_end_request_cur fndecl 1 45692 &enable_so_endpt_ubifs_unclean_leb_45692
164503 +enable_so___netdev_adjacent_dev_insert_fndecl_45697 __netdev_adjacent_dev_insert fndecl 0 45697 NULL
164504 +enable_so_write_file_spectral_short_repeat_fndecl_45700 write_file_spectral_short_repeat fndecl 3 45700 NULL
164505 +enable_so_shift_badblocks_45703 shift badblocks 0 45703 NULL
164506 +enable_so_offset_ixgbe_ring_feature_45704 offset ixgbe_ring_feature 0 45704 NULL
164507 +enable_so_data_transfer_length_hpt_iop_request_get_config_45705 data_transfer_length hpt_iop_request_get_config 0 45705 NULL
164508 +enable_so_do_splice_direct_fndecl_45710 do_splice_direct fndecl 5-0 45710 NULL nohasharray
164509 +enable_so_fi_nblocks_nilfs_finfo_45710 fi_nblocks nilfs_finfo 0 45710 &enable_so_do_splice_direct_fndecl_45710
164510 +enable_so_st5481_setup_isocpipes_fndecl_45711 st5481_setup_isocpipes fndecl 6-4 45711 NULL
164511 +enable_so_rl_niovs_rpcrdma_req_45712 rl_niovs rpcrdma_req 0 45712 NULL
164512 +enable_so_width_cx23885_dev_45714 width cx23885_dev 0 45714 NULL
164513 +enable_so_ocfs2_xattr_set_fndecl_45720 ocfs2_xattr_set fndecl 5 45720 NULL
164514 +enable_so_num_cqs_mlx4_caps_45727 num_cqs mlx4_caps 0 45727 NULL
164515 +enable_so_len_bnx2x_fw_file_section_45732 len bnx2x_fw_file_section 0 45732 NULL
164516 +enable_so_sys_ptrace_fndecl_45738 sys_ptrace fndecl 3 45738 NULL
164517 +enable_so___add_inline_refs_fndecl_45744 __add_inline_refs fndecl 3 45744 NULL
164518 +enable_so_get_args_iw_priv_args_45748 get_args iw_priv_args 0 45748 NULL
164519 +enable_so_wil_write_file_recovery_fndecl_45753 wil_write_file_recovery fndecl 3 45753 NULL
164520 +enable_so_vslen_vardecl_matroxfb_base_c_45755 vslen vardecl_matroxfb_base.c 0 45755 NULL
164521 +enable_so_extra_postfix_len_ieee80211_crypto_ops_45763 extra_postfix_len ieee80211_crypto_ops 0 45763 NULL
164522 +enable_so_blk_end_request_all_fndecl_45767 blk_end_request_all fndecl 2 45767 NULL nohasharray
164523 +enable_so_count_n_hdlc_buf_45767 count n_hdlc_buf 0 45767 &enable_so_blk_end_request_all_fndecl_45767
164524 +enable_so_mlx4_set_sched_fndecl_45771 mlx4_set_sched fndecl 2 45771 NULL nohasharray
164525 +enable_so_size_entry_mwt_fndecl_45771 size_entry_mwt fndecl 0 45771 &enable_so_mlx4_set_sched_fndecl_45771
164526 +enable_so_set_acoustic_fndecl_45772 set_acoustic fndecl 2 45772 NULL
164527 +enable_so_flows_cnt_fq_codel_sched_data_45775 flows_cnt fq_codel_sched_data 0 45775 NULL
164528 +enable_so_r592_wait_status_fndecl_45781 r592_wait_status fndecl 0 45781 NULL nohasharray
164529 +enable_so_len_ch_mem_range_45781 len ch_mem_range 0 45781 &enable_so_r592_wait_status_fndecl_45781
164530 +enable_so_get_inode_info_fndecl_45784 get_inode_info fndecl 0 45784 NULL nohasharray
164531 +enable_so_ath6kl_wmi_set_htcap_cmd_fndecl_45784 ath6kl_wmi_set_htcap_cmd fndecl 2 45784 &enable_so_get_inode_info_fndecl_45784
164532 +enable_so_online_pages_fndecl_45786 online_pages fndecl 1-2 45786 NULL
164533 +enable_so_change_xattr_fndecl_45789 change_xattr fndecl 5 45789 NULL
164534 +enable_so_i2c_r_fndecl_45804 i2c_r fndecl 0 45804 NULL
164535 +enable_so_h_suballoc_loc_ocfs2_extent_block_45805 h_suballoc_loc ocfs2_extent_block 0 45805 NULL
164536 +enable_so_len_sync_pt_info_45809 len sync_pt_info 0 45809 NULL
164537 +enable_so_max_node_size_pnp_dev_node_info_45813 max_node_size pnp_dev_node_info 0 45813 NULL
164538 +enable_so_xfs_zero_remaining_bytes_fndecl_45820 xfs_zero_remaining_bytes fndecl 3-2 45820 NULL
164539 +enable_so_smk_write_net4addr_fndecl_45821 smk_write_net4addr fndecl 3 45821 NULL
164540 +enable_so_msg_init_fndecl_45825 msg_init fndecl 4 45825 NULL
164541 +enable_so_tx_cmd_ep_usb_card_rec_45833 tx_cmd_ep usb_card_rec 0 45833 NULL
164542 +enable_so_max_channels_evtchn_ops_45841 max_channels evtchn_ops 0 45841 NULL
164543 +enable_so_width_zr364xx_camera_45844 width zr364xx_camera 0 45844 NULL nohasharray
164544 +enable_so_mwifiex_cfg80211_assoc_fndecl_45844 mwifiex_cfg80211_assoc fndecl 2 45844 &enable_so_width_zr364xx_camera_45844
164545 +enable_so_bochs_gem_create_fndecl_45847 bochs_gem_create fndecl 2 45847 NULL nohasharray
164546 +enable_so_sys_mlock_fndecl_45847 sys_mlock fndecl 1-2 45847 &enable_so_bochs_gem_create_fndecl_45847
164547 +enable_so_xfs_rtallocate_extent_size_fndecl_45848 xfs_rtallocate_extent_size fndecl 4-8 45848 NULL
164548 +enable_so_num_fault_mutexes_vardecl_hugetlb_c_45857 num_fault_mutexes vardecl_hugetlb.c 0 45857 NULL
164549 +enable_so_num_wsm_udp_port_filter_hdr_45858 num wsm_udp_port_filter_hdr 0 45858 NULL
164550 +enable_so_data_used_cx18_mdl_ack_45859 data_used cx18_mdl_ack 0 45859 NULL
164551 +enable_so_net_header_len_inet_connection_sock_af_ops_45863 net_header_len inet_connection_sock_af_ops 0 45863 NULL
164552 +enable_so___a2mp_build_fndecl_45864 __a2mp_build fndecl 3 45864 NULL
164553 +enable_so_xfrm_nr_xfrm_policy_45865 xfrm_nr xfrm_policy 0 45865 NULL
164554 +enable_so_parity_ore_layout_45869 parity ore_layout 0 45869 NULL nohasharray
164555 +enable_so_hsc_msg_alloc_fndecl_45869 hsc_msg_alloc fndecl 1 45869 &enable_so_parity_ore_layout_45869
164556 +enable_so_fpfd_adf4350_state_45870 fpfd adf4350_state 0 45870 NULL
164557 +enable_so_aead_sendpage_fndecl_45873 aead_sendpage fndecl 4-3 45873 NULL
164558 +enable_so_mwifiex_alloc_sdio_mpa_buffers_fndecl_45874 mwifiex_alloc_sdio_mpa_buffers fndecl 2-3 45874 NULL
164559 +enable_so_pti_char_write_fndecl_45875 pti_char_write fndecl 3 45875 NULL
164560 +enable_so_ext4_es_remove_extent_fndecl_45877 ext4_es_remove_extent fndecl 3-2 45877 NULL
164561 +enable_so_quality_v4l2_jpegcompression_45881 quality v4l2_jpegcompression 0 45881 NULL
164562 +enable_so_max_buffer_sectors_vardecl_floppy_c_45884 max_buffer_sectors vardecl_floppy.c 0 45884 NULL
164563 +enable_so_index_cnt_btrfs_inode_45890 index_cnt btrfs_inode 0 45890 NULL
164564 +enable_so_do_shared_fault_fndecl_45891 do_shared_fault fndecl 3-5 45891 NULL
164565 +enable_so___absent_pages_in_range_fndecl_45892 __absent_pages_in_range fndecl 0-2-3 45892 NULL nohasharray
164566 +enable_so_map_target_type_45892 map target_type 0 45892 &enable_so___absent_pages_in_range_fndecl_45892
164567 +enable_so_smbase_kvm_vcpu_arch_45895 smbase kvm_vcpu_arch 0 45895 NULL nohasharray
164568 +enable_so_lldd_write_gpio_sas_domain_function_template_45895 lldd_write_gpio sas_domain_function_template 0 45895 &enable_so_smbase_kvm_vcpu_arch_45895
164569 +enable_so_ath6kl_lrssi_roam_read_fndecl_45901 ath6kl_lrssi_roam_read fndecl 3 45901 NULL
164570 +enable_so_dfs_num_of_radar_detections_read_fndecl_45903 dfs_num_of_radar_detections_read fndecl 3 45903 NULL
164571 +enable_so_generic_file_direct_write_fndecl_45904 generic_file_direct_write fndecl 3-0 45904 NULL nohasharray
164572 +enable_so_bLength_usb_descriptor_header_45904 bLength usb_descriptor_header 0 45904 &enable_so_generic_file_direct_write_fndecl_45904
164573 +enable_so_jhead_cnt_ubifs_info_45905 jhead_cnt ubifs_info 0 45905 NULL
164574 +enable_so_init_currently_empty_zone_fndecl_45907 init_currently_empty_zone fndecl 2 45907 NULL
164575 +enable_so_vce_v1_0_bo_size_fndecl_45909 vce_v1_0_bo_size fndecl 0 45909 NULL
164576 +enable_so_bg_itable_unused_hi_ext4_group_desc_45918 bg_itable_unused_hi ext4_group_desc 0 45918 NULL
164577 +enable_so_lpfc_idiag_queacc_write_fndecl_45920 lpfc_idiag_queacc_write fndecl 3 45920 NULL
164578 +enable_so_wl1271_tx_allocate_fndecl_45921 wl1271_tx_allocate fndecl 4 45921 NULL
164579 +enable_so_mru_asyncppp_45929 mru asyncppp 0 45929 NULL
164580 +enable_so_fan_count_applesmc_registers_45934 fan_count applesmc_registers 0 45934 NULL
164581 +enable_so_num_ports_pciserial_board_45938 num_ports pciserial_board 0 45938 NULL
164582 +enable_so_sdhci_pltfm_register_fndecl_45940 sdhci_pltfm_register fndecl 3 45940 NULL
164583 +enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 ath6kl_wmi_setpmkid_cmd fndecl 2 45949 NULL nohasharray
164584 +enable_so_num_vfs_be_pcie_res_desc_45949 num_vfs be_pcie_res_desc 0 45949 &enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 nohasharray
164585 +enable_so_smbus_base_vardecl_i2c_sis630_c_45949 smbus_base vardecl_i2c-sis630.c 0 45949 &enable_so_num_vfs_be_pcie_res_desc_45949
164586 +enable_so_fraglen_decryptor_desc_45950 fraglen decryptor_desc 0 45950 NULL nohasharray
164587 +enable_so_read_file_ackto_fndecl_45950 read_file_ackto fndecl 3 45950 &enable_so_fraglen_decryptor_desc_45950
164588 +enable_so_sigma_fw_load_samplerates_fndecl_45951 sigma_fw_load_samplerates fndecl 3 45951 NULL
164589 +enable_so_security_set_fndecl_45953 security_set fndecl 4 45953 NULL
164590 +enable_so_max_sge_ib_srq_attr_45956 max_sge ib_srq_attr 0 45956 NULL
164591 +enable_so_qnx6_find_entry_fndecl_45969 qnx6_find_entry fndecl 0 45969 NULL nohasharray
164592 +enable_so_len_ippp_buf_queue_45969 len ippp_buf_queue 0 45969 &enable_so_qnx6_find_entry_fndecl_45969
164593 +enable_so_ext_tree_split_fndecl_45973 ext_tree_split fndecl 3 45973 NULL
164594 +enable_so_dbdma_cmd_yellowfin_desc_45980 dbdma_cmd yellowfin_desc 0 45980 NULL nohasharray
164595 +enable_so_target_size_ebt_entry_target_45980 target_size ebt_entry_target 0 45980 &enable_so_dbdma_cmd_yellowfin_desc_45980
164596 +enable_so_i40e_calculate_l2fpm_size_fndecl_45987 i40e_calculate_l2fpm_size fndecl 0-1-2-3-4 45987 NULL
164597 +enable_so_up_fnode_45991 up fnode 0 45991 NULL
164598 +enable_so_alloc_chrdev_region_fndecl_45995 alloc_chrdev_region fndecl 0 45995 NULL
164599 +enable_so___probe_kernel_read_fndecl_45996 __probe_kernel_read fndecl 3 45996 NULL
164600 +enable_so_sctp_v4_err_fndecl_45997 sctp_v4_err fndecl 2 45997 NULL nohasharray
164601 +enable_so_num_total_dacs_snd_ice1712_45997 num_total_dacs snd_ice1712 0 45997 &enable_so_sctp_v4_err_fndecl_45997
164602 +enable_so_finish_request_fndecl_46010 finish_request fndecl 5 46010 NULL
164603 +enable_so_pcs_duplex_stmmac_extra_stats_46013 pcs_duplex stmmac_extra_stats 0 46013 NULL
164604 +enable_so_get_derived_key_fndecl_46015 get_derived_key fndecl 4 46015 NULL
164605 +enable_so_afs_proc_cells_write_fndecl_46016 afs_proc_cells_write fndecl 3 46016 NULL
164606 +enable_so_vmemmap_alloc_block_buf_fndecl_46037 vmemmap_alloc_block_buf fndecl 1 46037 NULL
164607 +enable_so_acl_mtu_hci_dev_46038 acl_mtu hci_dev 0 46038 NULL
164608 +enable_so_dma_size_qlcnic_host_rds_ring_46045 dma_size qlcnic_host_rds_ring 0 46045 NULL
164609 +enable_so___vmalloc_fndecl_46051 __vmalloc fndecl 1 46051 NULL
164610 +enable_so_pair_device_fndecl_46052 pair_device fndecl 4 46052 NULL nohasharray
164611 +enable_so_event_oom_late_read_fndecl_46052 event_oom_late_read fndecl 3 46052 &enable_so_pair_device_fndecl_46052 nohasharray
164612 +enable_so_num_wsm_mib_beacon_filter_table_46052 num wsm_mib_beacon_filter_table 0 46052 &enable_so_event_oom_late_read_fndecl_46052
164613 +enable_so_sys_lsetxattr_fndecl_46058 sys_lsetxattr fndecl 4 46058 NULL
164614 +enable_so_data_len_fc_fcp_pkt_46059 data_len fc_fcp_pkt 0 46059 NULL
164615 +enable_so_sisfb_parm_mem_sis_video_info_46063 sisfb_parm_mem sis_video_info 0 46063 NULL nohasharray
164616 +enable_so_get_tx_data_len_rt2x00lib_ops_46063 get_tx_data_len rt2x00lib_ops 0 46063 &enable_so_sisfb_parm_mem_sis_video_info_46063
164617 +enable_so_MaxBurstLength_iscsi_sess_ops_46064 MaxBurstLength iscsi_sess_ops 0 46064 NULL nohasharray
164618 +enable_so_s_start_bfs_super_block_46064 s_start bfs_super_block 0 46064 &enable_so_MaxBurstLength_iscsi_sess_ops_46064
164619 +enable_so_seg_count_drm_buf_entry_46065 seg_count drm_buf_entry 0 46065 NULL
164620 +enable_so_piobufs_qib_ctxtdata_46066 piobufs qib_ctxtdata 0 46066 NULL
164621 +enable_so_FirstPhysicalEUN_NFTLMediaHeader_46068 FirstPhysicalEUN NFTLMediaHeader 0 46068 NULL
164622 +enable_so_iwl_dbgfs_mac_params_read_fndecl_46081 iwl_dbgfs_mac_params_read fndecl 3 46081 NULL
164623 +enable_so___devcgroup_check_permission_fndecl_46082 __devcgroup_check_permission fndecl 0 46082 NULL
164624 +enable_so_wSamplesPerFrame_uac_format_type_ii_ext_descriptor_46084 wSamplesPerFrame uac_format_type_ii_ext_descriptor 0 46084 NULL
164625 +enable_so_alloc_dca_provider_fndecl_46085 alloc_dca_provider fndecl 2 46085 NULL
164626 +enable_so_dm_startblk_adfs_discmap_46088 dm_startblk adfs_discmap 0 46088 NULL
164627 +enable_so_nr_pages_splice_pipe_desc_46095 nr_pages splice_pipe_desc 0 46095 NULL
164628 +enable_so_v9fs_xattr_set_acl_fndecl_46096 v9fs_xattr_set_acl fndecl 4 46096 NULL
164629 +enable_so_len_sfi_table_header_46097 len sfi_table_header 0 46097 NULL nohasharray
164630 +enable_so_ubifs_setxattr_fndecl_46097 ubifs_setxattr fndecl 4 46097 &enable_so_len_sfi_table_header_46097 nohasharray
164631 +enable_so_hidraw_read_fndecl_46097 hidraw_read fndecl 3 46097 &enable_so_ubifs_setxattr_fndecl_46097
164632 +enable_so_rxsz_fc_plogi_csp_s_46103 rxsz fc_plogi_csp_s 0 46103 NULL nohasharray
164633 +enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 jbd2_journal_write_metadata_buffer fndecl 4 46103 &enable_so_rxsz_fc_plogi_csp_s_46103 nohasharray
164634 +enable_so_ym_wmfw_adsp2_alg_hdr_46103 ym wmfw_adsp2_alg_hdr 0 46103 &enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 nohasharray
164635 +enable_so_control_write_fndecl_46103 control_write fndecl 6 46103 &enable_so_ym_wmfw_adsp2_alg_hdr_46103
164636 +enable_so_bs_vardecl_null_blk_c_46104 bs vardecl_null_blk.c 0 46104 NULL
164637 +enable_so_page_add_new_anon_rmap_fndecl_46112 page_add_new_anon_rmap fndecl 3 46112 NULL
164638 +enable_so_ioperm_get_fndecl_46118 ioperm_get fndecl 4-3 46118 NULL
164639 +enable_so_mic_calc_failure_read_fndecl_46119 mic_calc_failure_read fndecl 3 46119 NULL
164640 +enable_so_len_eeprom_private_46124 len eeprom_private 0 46124 NULL
164641 +enable_so_height_saa7134_dev_46126 height saa7134_dev 0 46126 NULL nohasharray
164642 +enable_so_tx_totallen_ncp_request_reply_46126 tx_totallen ncp_request_reply 0 46126 &enable_so_height_saa7134_dev_46126
164643 +enable_so_len_cp_header_46128 len cp_header 0 46128 NULL nohasharray
164644 +enable_so_get_mctgt_type_fndecl_46128 get_mctgt_type fndecl 2 46128 &enable_so_len_cp_header_46128
164645 +enable_so_sriov_enable_fndecl_46138 sriov_enable fndecl 2 46138 NULL
164646 +enable_so_prism2_info_scanresults_fndecl_46146 prism2_info_scanresults fndecl 3 46146 NULL
164647 +enable_so_memblock_alloc_range_nid_fndecl_46147 memblock_alloc_range_nid fndecl 2-1-3-0-4 46147 NULL
164648 +enable_so_port_mthca_qp_46155 port mthca_qp 0 46155 NULL
164649 +enable_so_udf_put_filename_fndecl_46157 udf_put_filename fndecl 0 46157 NULL
164650 +enable_so_ieee80211_if_read_fwded_unicast_fndecl_46159 ieee80211_if_read_fwded_unicast fndecl 3 46159 NULL
164651 +enable_so_bfad_iocmd_diag_sfp_fndecl_46160 bfad_iocmd_diag_sfp fndecl 0 46160 NULL
164652 +enable_so_transfer_len_xhci_transfer_event_46161 transfer_len xhci_transfer_event 0 46161 NULL
164653 +enable_so_max_segs_mmc_test_area_46176 max_segs mmc_test_area 0 46176 NULL
164654 +enable_so_key_size_ecryptfs_private_key_46181 key_size ecryptfs_private_key 0 46181 NULL nohasharray
164655 +enable_so_long_retry_limit_read_fndecl_46181 long_retry_limit_read fndecl 3 46181 &enable_so_key_size_ecryptfs_private_key_46181
164656 +enable_so_mlock_fixup_fndecl_46182 mlock_fixup fndecl 4-3 46182 NULL
164657 +enable_so_size_aper_size_info_32_46193 size aper_size_info_32 0 46193 NULL nohasharray
164658 +enable_so_fuse_file_llseek_fndecl_46193 fuse_file_llseek fndecl 2 46193 &enable_so_size_aper_size_info_32_46193
164659 +enable_so_length_usb_iso_packet_descriptor_46197 length usb_iso_packet_descriptor 0 46197 NULL
164660 +enable_so_sctp_manip_pkt_fndecl_46198 sctp_manip_pkt fndecl 4 46198 NULL
164661 +enable_so_musb_readb_vardecl_46199 musb_readb vardecl 0 46199 NULL nohasharray
164662 +enable_so_snd_interval_refine_set_fndecl_46199 snd_interval_refine_set fndecl 2 46199 &enable_so_musb_readb_vardecl_46199
164663 +enable_so_efx_rx_packet_gro_fndecl_46201 efx_rx_packet_gro fndecl 3 46201 NULL
164664 +enable_so_count_raw_sock_46204 count raw_sock 0 46204 NULL
164665 +enable_so_bfad_iocmd_boot_query_fndecl_46207 bfad_iocmd_boot_query fndecl 0 46207 NULL
164666 +enable_so_hdrlen_ip_beet_phdr_46210 hdrlen ip_beet_phdr 0 46210 NULL nohasharray
164667 +enable_so_sync_request_md_personality_46210 sync_request md_personality 0 46210 &enable_so_hdrlen_ip_beet_phdr_46210
164668 +enable_so_assocresp_ies_len_cfg80211_beacon_data_46212 assocresp_ies_len cfg80211_beacon_data 0 46212 NULL
164669 +enable_so_modify_index_fndecl_46216 modify_index fndecl 3 46216 NULL
164670 +enable_so_unuse_pte_fndecl_46217 unuse_pte fndecl 3 46217 NULL
164671 +enable_so_cob_size_savagefb_par_46219 cob_size savagefb_par 0 46219 NULL nohasharray
164672 +enable_so_mult_to_ib_rate_fndecl_46219 mult_to_ib_rate fndecl 0 46219 &enable_so_cob_size_savagefb_par_46219
164673 +enable_so_ipw_write_fndecl_46220 ipw_write fndecl 3 46220 NULL
164674 +enable_so_bLength_usb_interface_assoc_descriptor_46229 bLength usb_interface_assoc_descriptor 0 46229 NULL
164675 +enable_so_venus_remove_fndecl_46230 venus_remove fndecl 4 46230 NULL nohasharray
164676 +enable_so_batadv_tt_local_hash_find_fndecl_46230 batadv_tt_local_hash_find fndecl 3 46230 &enable_so_venus_remove_fndecl_46230
164677 +enable_so_mei_nfc_recv_fndecl_46235 mei_nfc_recv fndecl 0-3 46235 NULL
164678 +enable_so_rsn_ie_len_libipw_network_46238 rsn_ie_len libipw_network 0 46238 NULL nohasharray
164679 +enable_so_xlog_do_recover_fndecl_46238 xlog_do_recover fndecl 3 46238 &enable_so_rsn_ie_len_libipw_network_46238
164680 +enable_so_response_length_mlx4_uverbs_ex_query_device_resp_46245 response_length mlx4_uverbs_ex_query_device_resp 0 46245 NULL
164681 +enable_so_ieee80211_if_read_dot11MeshHWMPmaxPREQretries_fndecl_46246 ieee80211_if_read_dot11MeshHWMPmaxPREQretries fndecl 3 46246 NULL
164682 +enable_so_node_acl_size_target_core_fabric_ops_46247 node_acl_size target_core_fabric_ops 0 46247 NULL
164683 +enable_so_erst_clear_fndecl_46248 erst_clear fndecl 1 46248 NULL
164684 +enable_so_proc_pid_cmdline_read_fndecl_46249 proc_pid_cmdline_read fndecl 3 46249 NULL
164685 +enable_so_gspca_dev_probe2_fndecl_46250 gspca_dev_probe2 fndecl 4 46250 NULL
164686 +enable_so_extra_beacon_tailroom_ieee80211_hw_46256 extra_beacon_tailroom ieee80211_hw 0 46256 NULL
164687 +enable_so_rocker_port_change_mtu_fndecl_46262 rocker_port_change_mtu fndecl 2 46262 NULL
164688 +enable_so_size_xenvif_rx_meta_46270 size xenvif_rx_meta 0 46270 NULL
164689 +enable_so_qla27xx_fwdt_template_size_fndecl_46273 qla27xx_fwdt_template_size fndecl 0 46273 NULL
164690 +enable_so_onenand_read_oob_fndecl_46274 onenand_read_oob fndecl 2 46274 NULL
164691 +enable_so_smem_len_iwl_cfg_46276 smem_len iwl_cfg 0 46276 NULL
164692 +enable_so_desc_nr_md_rdev_46281 desc_nr md_rdev 0 46281 NULL
164693 +enable_so_xi_value_len_ocfs2_xattr_info_46285 xi_value_len ocfs2_xattr_info 0 46285 NULL
164694 +enable_so_dq_local_phys_blk_ocfs2_dquot_46292 dq_local_phys_blk ocfs2_dquot 0 46292 NULL
164695 +enable_so_len_nfs3_setaclargs_46293 len nfs3_setaclargs 0 46293 NULL
164696 +enable_so_tx_data_size_ircomm_tty_cb_46294 tx_data_size ircomm_tty_cb 0 46294 NULL
164697 +enable_so_omfs_allocate_block_fndecl_46295 omfs_allocate_block fndecl 2 46295 NULL
164698 +enable_so_status2_ar9003_rxs_46299 status2 ar9003_rxs 0 46299 NULL
164699 +enable_so_offset_nfsd3_readargs_46311 offset nfsd3_readargs 0 46311 NULL nohasharray
164700 +enable_so_ffs_prepare_buffer_fndecl_46311 ffs_prepare_buffer fndecl 2 46311 &enable_so_offset_nfsd3_readargs_46311
164701 +enable_so_num_vci_lanai_dev_46318 num_vci lanai_dev 0 46318 NULL
164702 +enable_so_biovec_create_pool_fndecl_46325 biovec_create_pool fndecl 1 46325 NULL nohasharray
164703 +enable_so_unit_qib_devdata_46325 unit qib_devdata 0 46325 &enable_so_biovec_create_pool_fndecl_46325
164704 +enable_so_i_size_inode_46327 i_size inode 0 46327 NULL
164705 +enable_so_pvr2_ioread_set_sync_key_fndecl_46329 pvr2_ioread_set_sync_key fndecl 3 46329 NULL
164706 +enable_so_shmem_zero_setup_fndecl_46334 shmem_zero_setup fndecl 0 46334 NULL nohasharray
164707 +enable_so_max_vnic_func_qlcnic_hardware_context_46334 max_vnic_func qlcnic_hardware_context 0 46334 &enable_so_shmem_zero_setup_fndecl_46334
164708 +enable_so_mwifiex_cfg80211_tdls_mgmt_fndecl_46335 mwifiex_cfg80211_tdls_mgmt fndecl 10 46335 NULL
164709 +enable_so_fh_ox_id_fc_frame_header_46336 fh_ox_id fc_frame_header 0 46336 NULL
164710 +enable_so_stv6110_read_regs_fndecl_46339 stv6110_read_regs fndecl 4 46339 NULL
164711 +enable_so_af9013_rd_regs_i2c_fndecl_46343 af9013_rd_regs_i2c fndecl 5 46343 NULL nohasharray
164712 +enable_so_isku_sysfs_read_keys_function_fndecl_46343 isku_sysfs_read_keys_function fndecl 6 46343 &enable_so_af9013_rd_regs_i2c_fndecl_46343
164713 +enable_so_recently_deleted_fndecl_46346 recently_deleted fndecl 3 46346 NULL
164714 +enable_so_zoran_v4l_set_format_fndecl_46347 zoran_v4l_set_format fndecl 2-3 46347 NULL
164715 +enable_so_fc_frame_alloc_fill_fndecl_46353 fc_frame_alloc_fill fndecl 2 46353 NULL
164716 +enable_so_wm_adsp_debugfs_bin_read_fndecl_46356 wm_adsp_debugfs_bin_read fndecl 3 46356 NULL
164717 +enable_so_dvb_ep_isoc_em28xx_46357 dvb_ep_isoc em28xx 0 46357 NULL
164718 +enable_so_shadow_image_fndecl_46361 shadow_image fndecl 3 46361 NULL
164719 +enable_so_debilen_av7110_46363 debilen av7110 0 46363 NULL
164720 +enable_so_ring_cons_per_user_data_46365 ring_cons per_user_data 0 46365 NULL
164721 +enable_so_max_write_size_ubifs_info_46369 max_write_size ubifs_info 0 46369 NULL
164722 +enable_so_device_create_with_groups_fndecl_46371 device_create_with_groups fndecl 3 46371 NULL
164723 +enable_so_descriptor_loc_fndecl_46373 descriptor_loc fndecl 0-3-2 46373 NULL
164724 +enable_so_bnx2_change_mtu_fndecl_46374 bnx2_change_mtu fndecl 2 46374 NULL nohasharray
164725 +enable_so_fs_path_ensure_buf_fndecl_46374 fs_path_ensure_buf fndecl 2 46374 &enable_so_bnx2_change_mtu_fndecl_46374
164726 +enable_so_acpi_ds_build_internal_buffer_obj_fndecl_46379 acpi_ds_build_internal_buffer_obj fndecl 3 46379 NULL
164727 +enable_so_max_loop_vardecl_loop_c_46402 max_loop vardecl_loop.c 0 46402 NULL
164728 +enable_so_srp_map_finish_fr_fndecl_46405 srp_map_finish_fr fndecl 0 46405 NULL
164729 +enable_so_piosize4k_qib_devdata_46406 piosize4k qib_devdata 0 46406 NULL
164730 +enable_so_SavagePanelWidth_savagefb_par_46407 SavagePanelWidth savagefb_par 0 46407 NULL
164731 +enable_so_skb_maybe_pull_tail_fndecl_46422 skb_maybe_pull_tail fndecl 3 46422 NULL
164732 +enable_so_proberesp_ies_len_cfg80211_beacon_data_46424 proberesp_ies_len cfg80211_beacon_data 0 46424 NULL
164733 +enable_so_len_minstrel_debugfs_info_46425 len minstrel_debugfs_info 0 46425 NULL
164734 +enable_so_rds_pin_pages_fndecl_46432 rds_pin_pages fndecl 1-0 46432 NULL
164735 +enable_so_st21nfca_hci_dep_link_up_fndecl_46438 st21nfca_hci_dep_link_up fndecl 5 46438 NULL nohasharray
164736 +enable_so_qib_dev_vardecl_qib_file_ops_c_46438 qib_dev vardecl_qib_file_ops.c 0 46438 &enable_so_st21nfca_hci_dep_link_up_fndecl_46438
164737 +enable_so_vid_bridge_vlan_info_46442 vid bridge_vlan_info 0 46442 NULL nohasharray
164738 +enable_so_len_acm_wb_46442 len acm_wb 0 46442 &enable_so_vid_bridge_vlan_info_46442 nohasharray
164739 +enable_so_nframes_gspca_dev_46442 nframes gspca_dev 0 46442 &enable_so_len_acm_wb_46442
164740 +enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444 btrfsic_process_superblock_dev_mirror fndecl 4 46444 NULL nohasharray
164741 +enable_so_iblock_execute_unmap_fndecl_46444 iblock_execute_unmap fndecl 3-2 46444 &enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444
164742 +enable_so_C_SYSC_get_mempolicy_fndecl_46447 C_SYSC_get_mempolicy fndecl 3 46447 NULL
164743 +enable_so__iwl_dbgfs_bcast_filters_write_fndecl_46448 _iwl_dbgfs_bcast_filters_write fndecl 3 46448 NULL
164744 +enable_so_fb_base_phys_mb862xxfb_par_46449 fb_base_phys mb862xxfb_par 0 46449 NULL
164745 +enable_so_untranslate_fndecl_46453 untranslate fndecl 3 46453 NULL
164746 +enable_so_snd_seq_oss_writeq_new_fndecl_46455 snd_seq_oss_writeq_new fndecl 2 46455 NULL
164747 +enable_so_nfsd_nrpools_fndecl_46460 nfsd_nrpools fndecl 0 46460 NULL
164748 +enable_so_ib_copy_from_udata_fndecl_46461 ib_copy_from_udata fndecl 3 46461 NULL
164749 +enable_so_size_drm_local_map_46462 size drm_local_map 0 46462 NULL
164750 +enable_so_get_znode_fndecl_46463 get_znode fndecl 3 46463 NULL
164751 +enable_so_ssid_len_hfa384x_hostscan_result_46466 ssid_len hfa384x_hostscan_result 0 46466 NULL
164752 +enable_so_ext4_resize_fs_fndecl_46468 ext4_resize_fs fndecl 2 46468 NULL
164753 +enable_so_kmalloc_large_node_fndecl_46469 kmalloc_large_node fndecl 1 46469 NULL
164754 +enable_so_hpfs_add_de_fndecl_46472 hpfs_add_de fndecl 4 46472 NULL
164755 +enable_so_idr_alloc_fndecl_46474 idr_alloc fndecl 0 46474 NULL
164756 +enable_so_mpi_get_nbits_fndecl_46476 mpi_get_nbits fndecl 0 46476 NULL
164757 +enable_so_nla_put_nohdr_fndecl_46479 nla_put_nohdr fndecl 2 46479 NULL
164758 +enable_so_hr_num_pages_o2hb_region_46481 hr_num_pages o2hb_region 0 46481 NULL nohasharray
164759 +enable_so_ro_slot_rcom_slot_46481 ro_slot rcom_slot 0 46481 &enable_so_hr_num_pages_o2hb_region_46481
164760 +enable_so_ssid_len_ieee80211_bss_conf_46483 ssid_len ieee80211_bss_conf 0 46483 NULL
164761 +enable_so_xen_early_virt_to_phys_fndecl_46486 xen_early_virt_to_phys fndecl 0 46486 NULL
164762 +enable_so_usb_wwan_write_fndecl_46494 usb_wwan_write fndecl 4 46494 NULL
164763 +enable_so___copy_from_user_ll_nozero_fndecl_46496 __copy_from_user_ll_nozero fndecl 0 46496 NULL
164764 +enable_so_afs_fsync_fndecl_46498 afs_fsync fndecl 2-3 46498 NULL
164765 +enable_so_iram_size_sst_res_info_46499 iram_size sst_res_info 0 46499 NULL
164766 +enable_so_align_ieee80211_vendor_radiotap_46503 align ieee80211_vendor_radiotap 0 46503 NULL
164767 +enable_so_write_pbl_fndecl_46508 write_pbl fndecl 4 46508 NULL
164768 +enable_so_pagesz_cifs_readdata_46514 pagesz cifs_readdata 0 46514 NULL
164769 +enable_so_tunables_write_fndecl_46520 tunables_write fndecl 3 46520 NULL
164770 +enable_so_free_bootmem_with_active_regions_fndecl_46521 free_bootmem_with_active_regions fndecl 2 46521 NULL
164771 +enable_so_bio_split_fndecl_46527 bio_split fndecl 2 46527 NULL
164772 +enable_so_sddr09_request_sense_fndecl_46529 sddr09_request_sense fndecl 3 46529 NULL
164773 +enable_so_dr_suballoc_loc_ocfs2_dx_root_block_46531 dr_suballoc_loc ocfs2_dx_root_block 0 46531 NULL
164774 +enable_so_fcoe_ctlr_vn_send_fndecl_46532 fcoe_ctlr_vn_send fndecl 4 46532 NULL
164775 +enable_so_bNrChannels_uac_format_type_i_continuous_descriptor_46536 bNrChannels uac_format_type_i_continuous_descriptor 0 46536 NULL
164776 +enable_so_contrast_sd_gl860_46538 contrast sd_gl860 0 46538 NULL
164777 +enable_so_hsub_vsp1_format_info_46540 hsub vsp1_format_info 0 46540 NULL
164778 +enable_so_size_kstat_46541 size kstat 0 46541 NULL
164779 +enable_so_resp_write_same_fndecl_46544 resp_write_same fndecl 2 46544 NULL
164780 +enable_so_sc18is602_check_transfer_fndecl_46545 sc18is602_check_transfer fndecl 0 46545 NULL
164781 +enable_so_size_p_trim_46549 size p_trim 0 46549 NULL nohasharray
164782 +enable_so_memdup_user_fndecl_46549 memdup_user fndecl 2 46549 &enable_so_size_p_trim_46549
164783 +enable_so_seq_open_tab_fndecl_46562 seq_open_tab fndecl 2-3 46562 NULL
164784 +enable_so_erasesize_shift_mtd_info_46565 erasesize_shift mtd_info 0 46565 NULL nohasharray
164785 +enable_so_xt_compat_init_offsets_fndecl_46565 xt_compat_init_offsets fndecl 2 46565 &enable_so_erasesize_shift_mtd_info_46565
164786 +enable_so_max_msix_vectors_vardecl_mpt3sas_base_c_46566 max_msix_vectors vardecl_mpt3sas_base.c 0 46566 NULL
164787 +enable_so_SyS_setdomainname_fndecl_46573 SyS_setdomainname fndecl 2 46573 NULL
164788 +enable_so_sock_sendpage_fndecl_46581 sock_sendpage fndecl 4 46581 NULL
164789 +enable_so_f2fs_nfs_get_inode_fndecl_46582 f2fs_nfs_get_inode fndecl 2 46582 NULL
164790 +enable_so_qxl_num_crtc_vardecl_46583 qxl_num_crtc vardecl 0 46583 NULL
164791 +enable_so___f2fs_replace_block_fndecl_46588 __f2fs_replace_block fndecl 4 46588 NULL
164792 +enable_so_sg_build_sgat_fndecl_46592 sg_build_sgat fndecl 3-0 46592 NULL nohasharray
164793 +enable_so_jffs2_alloc_full_dirent_fndecl_46592 jffs2_alloc_full_dirent fndecl 1 46592 &enable_so_sg_build_sgat_fndecl_46592
164794 +enable_so_back_xfs_attr3_icleaf_hdr_46595 back xfs_attr3_icleaf_hdr 0 46595 NULL
164795 +enable_so_fuse_async_req_send_fndecl_46596 fuse_async_req_send fndecl 0-3 46596 NULL nohasharray
164796 +enable_so_mmc_do_calc_max_discard_fndecl_46596 mmc_do_calc_max_discard fndecl 0 46596 &enable_so_fuse_async_req_send_fndecl_46596
164797 +enable_so_cfpkt_extr_head_fndecl_46598 cfpkt_extr_head fndecl 3 46598 NULL
164798 +enable_so_len_ext4_str_46600 len ext4_str 0 46600 NULL
164799 +enable_so_cma_init_reserved_mem_fndecl_46602 cma_init_reserved_mem fndecl 3-2 46602 NULL
164800 +enable_so_init_state_fndecl_46614 init_state fndecl 2 46614 NULL
164801 +enable_so_pci_scan_bridge_fndecl_46615 pci_scan_bridge fndecl 3-0 46615 NULL nohasharray
164802 +enable_so_jmb38x_ms_count_slots_fndecl_46615 jmb38x_ms_count_slots fndecl 0 46615 &enable_so_pci_scan_bridge_fndecl_46615
164803 +enable_so_snd_usb_parse_datainterval_fndecl_46616 snd_usb_parse_datainterval fndecl 0 46616 NULL nohasharray
164804 +enable_so_emulator_set_smbase_fndecl_46616 emulator_set_smbase fndecl 2 46616 &enable_so_snd_usb_parse_datainterval_fndecl_46616
164805 +enable_so_fw_cdev_major_vardecl_46618 fw_cdev_major vardecl 0 46618 NULL
164806 +enable_so_usbvision_read_reg_fndecl_46623 usbvision_read_reg fndecl 0 46623 NULL nohasharray
164807 +enable_so_num_ppns_qp_guest_endpoint_46623 num_ppns qp_guest_endpoint 0 46623 &enable_so_usbvision_read_reg_fndecl_46623
164808 +enable_so_cl_maxproc_rpc_clnt_46627 cl_maxproc rpc_clnt 0 46627 NULL
164809 +enable_so_start_ipack_region_46628 start ipack_region 0 46628 NULL
164810 +enable_so_qlcnic_83xx_diag_free_res_fndecl_46632 qlcnic_83xx_diag_free_res fndecl 2 46632 NULL
164811 +enable_so_alloc_size_nf_ct_ext_type_46634 alloc_size nf_ct_ext_type 0 46634 NULL
164812 +enable_so_ccp_queue_buf_fndecl_46635 ccp_queue_buf fndecl 0 46635 NULL
164813 +enable_so_btrfs_get_token_16_fndecl_46639 btrfs_get_token_16 fndecl 0 46639 NULL
164814 +enable_so_data_offset_iscsi_tcp_task_46641 data_offset iscsi_tcp_task 0 46641 NULL
164815 +enable_so_rx_rx_tkip_replays_read_fndecl_46642 rx_rx_tkip_replays_read fndecl 3 46642 NULL
164816 +enable_so_roaming_rssi_level_read_fndecl_46643 roaming_rssi_level_read fndecl 3 46643 NULL
164817 +enable_so_qib_reg_phys_mr_fndecl_46649 qib_reg_phys_mr fndecl 3 46649 NULL
164818 +enable_so_mwifiex_set_wps_ie_fndecl_46650 mwifiex_set_wps_ie fndecl 3 46650 NULL
164819 +enable_so_transfer_buffer_length_usbip_header_cmd_submit_46658 transfer_buffer_length usbip_header_cmd_submit 0 46658 NULL
164820 +enable_so_btrfs_get_extent_fiemap_fndecl_46659 btrfs_get_extent_fiemap fndecl 5-4-3 46659 NULL
164821 +enable_so_bmap_fndecl_46663 bmap fndecl 0 46663 NULL
164822 +enable_so_physical_block_size_queue_limits_46666 physical_block_size queue_limits 0 46666 NULL
164823 +enable_so_mpx_notify_unmap_fndecl_46669 mpx_notify_unmap fndecl 3-4 46669 NULL
164824 +enable_so_xfs_difree_inode_chunk_fndecl_46677 xfs_difree_inode_chunk fndecl 2 46677 NULL
164825 +enable_so_got_bytes_cifs_readdata_46678 got_bytes cifs_readdata 0 46678 NULL
164826 +enable_so_max_wr_ib_srq_attr_46680 max_wr ib_srq_attr 0 46680 NULL
164827 +enable_so_selfballoon_uphysteresis_vardecl_xen_selfballoon_c_46686 selfballoon_uphysteresis vardecl_xen-selfballoon.c 0 46686 NULL
164828 +enable_so_usb_ftdi_elan_edset_input_fndecl_46689 usb_ftdi_elan_edset_input fndecl 0 46689 NULL
164829 +enable_so_display_crc_ctl_write_fndecl_46690 display_crc_ctl_write fndecl 3 46690 NULL
164830 +enable_so_printer_write_fndecl_46695 printer_write fndecl 3 46695 NULL
164831 +enable_so___pskb_pull_tail_fndecl_46700 __pskb_pull_tail fndecl 2 46700 NULL
164832 +enable_so_compat_sys_fcntl64_fndecl_46707 compat_sys_fcntl64 fndecl 3 46707 NULL
164833 +enable_so_cmsg_len_cmsghdr_46711 cmsg_len cmsghdr 0 46711 NULL
164834 +enable_so_extra_priv_size_ehci_driver_overrides_46713 extra_priv_size ehci_driver_overrides 0 46713 NULL
164835 +enable_so_irq_alloc_domain_generic_chips_fndecl_46715 irq_alloc_domain_generic_chips fndecl 3-2 46715 NULL
164836 +enable_so_length_page_collect_46716 length page_collect 0 46716 NULL
164837 +enable_so_peer_max_bio_size_drbd_device_46722 peer_max_bio_size drbd_device 0 46722 NULL
164838 +enable_so_first_ino_xfs_icluster_46725 first_ino xfs_icluster 0 46725 NULL
164839 +enable_so_virtio_gpu_cmd_resource_attach_backing_fndecl_46726 virtio_gpu_cmd_resource_attach_backing fndecl 4 46726 NULL
164840 +enable_so_get_ep_limit_fndecl_46743 get_ep_limit fndecl 0 46743 NULL
164841 +enable_so_wm8994_set_fll_fndecl_46745 wm8994_set_fll fndecl 4-5 46745 NULL
164842 +enable_so_rxsz_fc_plogi_clp_s_46751 rxsz fc_plogi_clp_s 0 46751 NULL
164843 +enable_so_cvmx_bootmem_phy_named_block_find_fndecl_46752 cvmx_bootmem_phy_named_block_find fndecl 0 46752 NULL
164844 +enable_so_v9fs_xattr_security_get_fndecl_46758 v9fs_xattr_security_get fndecl 4 46758 NULL
164845 +enable_so_count_nfs_readdirargs_46759 count nfs_readdirargs 0 46759 NULL
164846 +enable_so___kfifo_from_user_r_fndecl_46762 __kfifo_from_user_r fndecl 3-5 46762 NULL nohasharray
164847 +enable_so_perf_aux_output_skip_fndecl_46762 perf_aux_output_skip fndecl 2 46762 &enable_so___kfifo_from_user_r_fndecl_46762
164848 +enable_so_wptr_amdgpu_ring_46763 wptr amdgpu_ring 0 46763 NULL
164849 +enable_so_s_bshift_ufs_sb_private_info_46773 s_bshift ufs_sb_private_info 0 46773 NULL nohasharray
164850 +enable_so_target_begin_dm_region_hash_46773 target_begin dm_region_hash 0 46773 &enable_so_s_bshift_ufs_sb_private_info_46773
164851 +enable_so_mc_groups_longs_vardecl_genetlink_c_46774 mc_groups_longs vardecl_genetlink.c 0 46774 NULL
164852 +enable_so_bytes_remaining_parser_context_46791 bytes_remaining parser_context 0 46791 NULL
164853 +enable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 5 46792 NULL
164854 +enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799 brcmf_usb_rx_ctlpkt fndecl 3 46799 NULL nohasharray
164855 +enable_so_drbd_alloc_peer_req_fndecl_46799 drbd_alloc_peer_req fndecl 4-3 46799 &enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799
164856 +enable_so_be_cmd_set_sriov_config_fndecl_46800 be_cmd_set_sriov_config fndecl 3 46800 NULL
164857 +enable_so_ceph_msg_data_bio_advance_fndecl_46804 ceph_msg_data_bio_advance fndecl 2 46804 NULL
164858 +enable_so_mlx4_en_change_mtu_fndecl_46805 mlx4_en_change_mtu fndecl 2 46805 NULL
164859 +enable_so_mesh_rx_csa_frame_fndecl_46810 mesh_rx_csa_frame fndecl 3 46810 NULL
164860 +enable_so_dccp_setsockopt_fndecl_46812 dccp_setsockopt fndecl 5 46812 NULL
164861 +enable_so_buffer_size_snd_rawmidi_params_46813 buffer_size snd_rawmidi_params 0 46813 NULL
164862 +enable_so_nfulnl_set_mode_fndecl_46818 nfulnl_set_mode fndecl 3 46818 NULL
164863 +enable_so_frame_size_ipw2100_status_46819 frame_size ipw2100_status 0 46819 NULL
164864 +enable_so_major_hwif_s_46820 major hwif_s 0 46820 NULL
164865 +enable_so_numberoflines_tmHWStreamParameters_46824 numberoflines tmHWStreamParameters 0 46824 NULL
164866 +enable_so_residue_c67x00_td_46828 residue c67x00_td 0 46828 NULL
164867 +enable_so_extra_priv_size_xhci_driver_overrides_46837 extra_priv_size xhci_driver_overrides 0 46837 NULL
164868 +enable_so_hexdump_fndecl_46840 hexdump fndecl 3 46840 NULL
164869 +enable_so_num_prior_parent_snaps_ceph_snap_realm_46841 num_prior_parent_snaps ceph_snap_realm 0 46841 NULL nohasharray
164870 +enable_so_mthca_alloc_resize_buf_fndecl_46841 mthca_alloc_resize_buf fndecl 3 46841 &enable_so_num_prior_parent_snaps_ceph_snap_realm_46841
164871 +enable_so_n_channels_wmi_scan_chan_list_arg_46842 n_channels wmi_scan_chan_list_arg 0 46842 NULL
164872 +enable_so_len_wl12xx_rx_filter_field_46843 len wl12xx_rx_filter_field 0 46843 NULL
164873 +enable_so_driver_names_read_fndecl_46844 driver_names_read fndecl 3 46844 NULL
164874 +enable_so_tveeprom_read_fndecl_46846 tveeprom_read fndecl 3 46846 NULL nohasharray
164875 +enable_so_vt596_smba_vardecl_i2c_viapro_c_46846 vt596_smba vardecl_i2c-viapro.c 0 46846 &enable_so_tveeprom_read_fndecl_46846
164876 +enable_so_flags_f2fs_encryption_context_46847 flags f2fs_encryption_context 0 46847 NULL
164877 +enable_so___bread_gfp_fndecl_46858 __bread_gfp fndecl 3-2 46858 NULL
164878 +enable_so_xwrite_fndecl_46865 xwrite fndecl 3 46865 NULL
164879 +enable_so_lookup_node_fndecl_46882 lookup_node fndecl 2 46882 NULL
164880 +enable_so_il_dbgfs_missed_beacon_read_fndecl_46887 il_dbgfs_missed_beacon_read fndecl 3 46887 NULL
164881 +enable_so_len_nfsd3_readlinkres_46888 len nfsd3_readlinkres 0 46888 NULL
164882 +enable_so_ksi_nthreads_max_ksock_sched_info_46891 ksi_nthreads_max ksock_sched_info 0 46891 NULL
164883 +enable_so_buffer_size_snd_urb_ctx_46897 buffer_size snd_urb_ctx 0 46897 NULL
164884 +enable_so_cb_break_head_afs_server_46900 cb_break_head afs_server 0 46900 NULL
164885 +enable_so_ql_process_mac_rx_gro_page_fndecl_46902 ql_process_mac_rx_gro_page fndecl 5-4 46902 NULL
164886 +enable_so_ipoib_recvq_size_vardecl_46904 ipoib_recvq_size vardecl 0 46904 NULL
164887 +enable_so_il_dbgfs_rxon_flags_read_fndecl_46909 il_dbgfs_rxon_flags_read fndecl 3 46909 NULL nohasharray
164888 +enable_so_dapm_widget_power_read_file_fndecl_46909 dapm_widget_power_read_file fndecl 3 46909 &enable_so_il_dbgfs_rxon_flags_read_fndecl_46909
164889 +enable_so_ath10k_read_dfs_stats_fndecl_46910 ath10k_read_dfs_stats fndecl 3 46910 NULL
164890 +enable_so_size_vbt_r0_46913 size vbt_r0 0 46913 NULL
164891 +enable_so_num_sacks_tcp_options_received_46914 num_sacks tcp_options_received 0 46914 NULL nohasharray
164892 +enable_so_mmc_queue_packed_map_sg_fndecl_46914 mmc_queue_packed_map_sg fndecl 0 46914 &enable_so_num_sacks_tcp_options_received_46914
164893 +enable_so_rd_size_hidp_connadd_req_46916 rd_size hidp_connadd_req 0 46916 NULL
164894 +enable_so_osd_req_read_kern_fndecl_46917 osd_req_read_kern fndecl 5 46917 NULL
164895 +enable_so_tot_len_ipv6_txoptions_46931 tot_len ipv6_txoptions 0 46931 NULL
164896 +enable_so_c_iusedoff_ufs_cg_private_info_46933 c_iusedoff ufs_cg_private_info 0 46933 NULL
164897 +enable_so___free_pages_bootmem_fndecl_46937 __free_pages_bootmem fndecl 3 46937 NULL nohasharray
164898 +enable_so_squashfs_max_decompressors_fndecl_46937 squashfs_max_decompressors fndecl 0 46937 &enable_so___free_pages_bootmem_fndecl_46937
164899 +enable_so_periodic_size_fusbh200_hcd_46943 periodic_size fusbh200_hcd 0 46943 NULL
164900 +enable_so_devblksize_squashfs_sb_info_46950 devblksize squashfs_sb_info 0 46950 NULL
164901 +enable_so_osd_req_list_dev_partitions_fndecl_46952 osd_req_list_dev_partitions fndecl 4 46952 NULL
164902 +enable_so_tx_ring_num_mlx4_en_priv_46953 tx_ring_num mlx4_en_priv 0 46953 NULL
164903 +enable_so_xlog_bread_offset_fndecl_46957 xlog_bread_offset fndecl 2-3 46957 NULL nohasharray
164904 +enable_so_steer_qpn_count_mlx4_ib_dev_46957 steer_qpn_count mlx4_ib_dev 0 46957 &enable_so_xlog_bread_offset_fndecl_46957
164905 +enable_so_s_desc_per_block_ext2_sb_info_46964 s_desc_per_block ext2_sb_info 0 46964 NULL nohasharray
164906 +enable_so_vmw_piter_start_fndecl_46964 vmw_piter_start fndecl 3 46964 &enable_so_s_desc_per_block_ext2_sb_info_46964 nohasharray
164907 +enable_so_cy_next_channel_vardecl_cyclades_c_46964 cy_next_channel vardecl_cyclades.c 0 46964 &enable_so_vmw_piter_start_fndecl_46964
164908 +enable_so_can_queue_Scsi_Host_46966 can_queue Scsi_Host 0 46966 NULL
164909 +enable_so_mthca_init_cq_fndecl_46968 mthca_init_cq fndecl 2 46968 NULL
164910 +enable_so_fsl_spi_cpu_bufs_fndecl_46969 fsl_spi_cpu_bufs fndecl 3-0 46969 NULL
164911 +enable_so_register_device_fndecl_46972 register_device fndecl 3-2 46972 NULL
164912 +enable_so_f71882fg_find_fndecl_46975 f71882fg_find fndecl 0 46975 NULL
164913 +enable_so_vcs_size_fndecl_46977 vcs_size fndecl 0 46977 NULL
164914 +enable_so_numbers_count_tomoyo_condition_46984 numbers_count tomoyo_condition 0 46984 NULL
164915 +enable_so_size_dwc3_trb_46986 size dwc3_trb 0 46986 NULL
164916 +enable_so_gru_alloc_gts_fndecl_46987 gru_alloc_gts fndecl 4-6-3-2 46987 NULL
164917 +enable_so_compat_writev_fndecl_46988 compat_writev fndecl 3 46988 NULL nohasharray
164918 +enable_so_tx_queue_size_pxa168_eth_platform_data_46988 tx_queue_size pxa168_eth_platform_data 0 46988 &enable_so_compat_writev_fndecl_46988
164919 +enable_so_msb_cache_write_fndecl_46992 msb_cache_write fndecl 0-6-2 46992 NULL
164920 +enable_so_lrg_buffer_len_ql3_adapter_46994 lrg_buffer_len ql3_adapter 0 46994 NULL nohasharray
164921 +enable_so_sys_sched_getaffinity_fndecl_46994 sys_sched_getaffinity fndecl 2 46994 &enable_so_lrg_buffer_len_ql3_adapter_46994
164922 +enable_so_buflen_cdrom_generic_command_47000 buflen cdrom_generic_command 0 47000 NULL
164923 +enable_so_do_ip6t_set_ctl_fndecl_47003 do_ip6t_set_ctl fndecl 4 47003 NULL
164924 +enable_so_pmcraid_change_queue_depth_fndecl_47007 pmcraid_change_queue_depth fndecl 2 47007 NULL
164925 +enable_so_y_offset_mxr_crop_47012 y_offset mxr_crop 0 47012 NULL
164926 +enable_so_vmw_kms_update_proxy_fndecl_47016 vmw_kms_update_proxy fndecl 3 47016 NULL nohasharray
164927 +enable_so_va_start_vmap_area_47016 va_start vmap_area 0 47016 &enable_so_vmw_kms_update_proxy_fndecl_47016
164928 +enable_so_bytesused_uvc_buffer_47017 bytesused uvc_buffer 0 47017 NULL
164929 +enable_so_length_acpi_buffer_47024 length acpi_buffer 0 47024 NULL
164930 +enable_so_ath6kl_listen_int_write_fndecl_47025 ath6kl_listen_int_write fndecl 3 47025 NULL
164931 +enable_so_length_ixgb_rx_desc_47027 length ixgb_rx_desc 0 47027 NULL
164932 +enable_so_usb_os_desc_prepare_interf_dir_fndecl_47032 usb_os_desc_prepare_interf_dir fndecl 2 47032 NULL
164933 +enable_so_desc_size_shdma_dev_47035 desc_size shdma_dev 0 47035 NULL
164934 +enable_so_rtl2832_regmap_read_fndecl_47037 rtl2832_regmap_read fndecl 3-5 47037 NULL
164935 +enable_so_minor_index_cardstate_47038 minor_index cardstate 0 47038 NULL
164936 +enable_so_fdt_add_subnode_namelen_fndecl_47039 fdt_add_subnode_namelen fndecl 2-4 47039 NULL
164937 +enable_so_ttm_bo_kmap_fndecl_47045 ttm_bo_kmap fndecl 3-2 47045 NULL
164938 +enable_so_icds_per_ctrl_hba_parameters_47047 icds_per_ctrl hba_parameters 0 47047 NULL
164939 +enable_so_amdgpu_drm_ioctl_fndecl_47050 amdgpu_drm_ioctl fndecl 2 47050 NULL
164940 +enable_so_ip_set_max_ip_set_net_47054 ip_set_max ip_set_net 0 47054 NULL
164941 +enable_so_nfs_idmap_request_key_fndecl_47055 nfs_idmap_request_key fndecl 2 47055 NULL
164942 +enable_so_width_tm6000_core_47057 width tm6000_core 0 47057 NULL nohasharray
164943 +enable_so_vbi_width_em28xx_v4l2_47057 vbi_width em28xx_v4l2 0 47057 &enable_so_width_tm6000_core_47057
164944 +enable_so_sect_ide_drive_s_47062 sect ide_drive_s 0 47062 NULL
164945 +enable_so_len_Vmxnet3_RxCompDesc_47066 len Vmxnet3_RxCompDesc 0 47066 NULL
164946 +enable_so___remove_zone_fndecl_47073 __remove_zone fndecl 2 47073 NULL
164947 +enable_so_ccp_reverse_set_dm_area_fndecl_47074 ccp_reverse_set_dm_area fndecl 4-3 47074 NULL
164948 +enable_so_ext_clk_mt9t001_platform_data_47078 ext_clk mt9t001_platform_data 0 47078 NULL
164949 +enable_so_buf_size_usbatm_channel_47081 buf_size usbatm_channel 0 47081 NULL
164950 +enable_so_epnum_isp116x_ep_47082 epnum isp116x_ep 0 47082 NULL
164951 +enable_so_yres_fb_videomode_47087 yres fb_videomode 0 47087 NULL nohasharray
164952 +enable_so_authorizer_buf_len_ceph_auth_handshake_47087 authorizer_buf_len ceph_auth_handshake 0 47087 &enable_so_yres_fb_videomode_47087 nohasharray
164953 +enable_so_ld_usb_read_fndecl_47087 ld_usb_read fndecl 3 47087 &enable_so_authorizer_buf_len_ceph_auth_handshake_47087
164954 +enable_so_ext2_get_inode_fndecl_47089 ext2_get_inode fndecl 2 47089 NULL
164955 +enable_so___send_empty_flush_fndecl_47094 __send_empty_flush fndecl 0 47094 NULL nohasharray
164956 +enable_so_pcpu_need_to_extend_fndecl_47094 pcpu_need_to_extend fndecl 0 47094 &enable_so___send_empty_flush_fndecl_47094
164957 +enable_so_begin_dm_target_47098 begin dm_target 0 47098 NULL
164958 +enable_so_spu_wait_for_u16_fndecl_47101 spu_wait_for_u16 fndecl 0 47101 NULL
164959 +enable_so_len_wmi_rx_action_event_47102 len wmi_rx_action_event 0 47102 NULL
164960 +enable_so___scsi_print_sense_fndecl_47105 __scsi_print_sense fndecl 4 47105 NULL
164961 +enable_so_agp_size_drm_mga_dma_bootstrap_47108 agp_size drm_mga_dma_bootstrap 0 47108 NULL
164962 +enable_so_f_height_camif_frame_47111 f_height camif_frame 0 47111 NULL
164963 +enable_so_total_len_lro_47113 total_len lro 0 47113 NULL
164964 +enable_so_num_mthca_resource_47114 num mthca_resource 0 47114 NULL nohasharray
164965 +enable_so_num_outstanding_cmds_req_que_47114 num_outstanding_cmds req_que 0 47114 &enable_so_num_mthca_resource_47114
164966 +enable_so_tx_tx_start_fw_gen_read_fndecl_47115 tx_tx_start_fw_gen_read fndecl 3 47115 NULL
164967 +enable_so_iwl_dbgfs_rx_handlers_write_fndecl_47116 iwl_dbgfs_rx_handlers_write fndecl 3 47116 NULL
164968 +enable_so_nportcntrs_qib_chip_specific_47118 nportcntrs qib_chip_specific 0 47118 NULL
164969 +enable_so_usnic_uiom_reg_get_fndecl_47120 usnic_uiom_reg_get fndecl 2-3 47120 NULL
164970 +enable_so_j_len_reiserfs_journal_47121 j_len reiserfs_journal 0 47121 NULL
164971 +enable_so_filemap_fdatawrite_range_fndecl_47125 filemap_fdatawrite_range fndecl 2-3 47125 NULL
164972 +enable_so_i2400m_rx_fake_eth_header_fndecl_47128 i2400m_rx_fake_eth_header fndecl 3 47128 NULL
164973 +enable_so_efi_ioremap_fndecl_47129 efi_ioremap fndecl 2-1 47129 NULL
164974 +enable_so_acl_pgbase_nfs_getaclargs_47131 acl_pgbase nfs_getaclargs 0 47131 NULL
164975 +enable_so_bfad_iocmd_ratelim_fndecl_47133 bfad_iocmd_ratelim fndecl 0 47133 NULL
164976 +enable_so_target_xcopy_write_destination_fndecl_47134 target_xcopy_write_destination fndecl 5 47134 NULL
164977 +enable_so_of_fdt_is_big_endian_fndecl_47137 of_fdt_is_big_endian fndecl 2 47137 NULL
164978 +enable_so_data_len_nvme_passthru_cmd_47145 data_len nvme_passthru_cmd 0 47145 NULL
164979 +enable_so_do_otp_lock_fndecl_47148 do_otp_lock fndecl 3 47148 NULL
164980 +enable_so_vmw_kms_sou_readback_fndecl_47150 vmw_kms_sou_readback fndecl 6 47150 NULL nohasharray
164981 +enable_so_mcs7830_set_reg_async_fndecl_47150 mcs7830_set_reg_async fndecl 3 47150 &enable_so_vmw_kms_sou_readback_fndecl_47150
164982 +enable_so_ttm_dma_tt_init_fndecl_47159 ttm_dma_tt_init fndecl 3 47159 NULL nohasharray
164983 +enable_so_req_xfer_ide_atapi_pc_47159 req_xfer ide_atapi_pc 0 47159 &enable_so_ttm_dma_tt_init_fndecl_47159
164984 +enable_so_mlxsw_sx_port_change_mtu_fndecl_47160 mlxsw_sx_port_change_mtu fndecl 2 47160 NULL nohasharray
164985 +enable_so_mspro_block_complete_req_fndecl_47160 mspro_block_complete_req fndecl 2 47160 &enable_so_mlxsw_sx_port_change_mtu_fndecl_47160
164986 +enable_so_bfad_iocmd_itnim_reset_stats_fndecl_47168 bfad_iocmd_itnim_reset_stats fndecl 0 47168 NULL
164987 +enable_so_issue_discard_fndecl_47169 issue_discard fndecl 2-3-0 47169 NULL nohasharray
164988 +enable_so_e1000e_hwtstamp_get_fndecl_47169 e1000e_hwtstamp_get fndecl 0 47169 &enable_so_issue_discard_fndecl_47169
164989 +enable_so_start_block_hfsplus_extent_47172 start_block hfsplus_extent 0 47172 NULL
164990 +enable_so_max_blk_size_mmc_host_47174 max_blk_size mmc_host 0 47174 NULL
164991 +enable_so_value_drm_radeon_setparam_47185 value drm_radeon_setparam 0 47185 NULL
164992 +enable_so_msix_count_qla_hw_data_47192 msix_count qla_hw_data 0 47192 NULL
164993 +enable_so_max_sq_sg_mlx4_caps_47193 max_sq_sg mlx4_caps 0 47193 NULL
164994 +enable_so_block_count_msb_data_47194 block_count msb_data 0 47194 NULL
164995 +enable_so_max_inline_data_ib_qp_cap_47196 max_inline_data ib_qp_cap 0 47196 NULL
164996 +enable_so_rnr_retry_ib_qp_attr_47198 rnr_retry ib_qp_attr 0 47198 NULL
164997 +enable_so_vmalloc_node_fndecl_47199 vmalloc_node fndecl 1 47199 NULL
164998 +enable_so_bi_phys_segments_bio_47200 bi_phys_segments bio 0 47200 NULL
164999 +enable_so_max_outstanding_cmds_bnx2fc_hba_47210 max_outstanding_cmds bnx2fc_hba 0 47210 NULL
165000 +enable_so_wpos_p9_conn_47212 wpos p9_conn 0 47212 NULL
165001 +enable_so_ieee80211_if_write_tkip_mic_test_fndecl_47215 ieee80211_if_write_tkip_mic_test fndecl 3 47215 NULL
165002 +enable_so_authsize_crypto_aead_47219 authsize crypto_aead 0 47219 NULL nohasharray
165003 +enable_so_smb_init_nttransact_fndecl_47219 smb_init_nttransact fndecl 2 47219 &enable_so_authsize_crypto_aead_47219
165004 +enable_so_mwifiex_form_mgmt_frame_fndecl_47220 mwifiex_form_mgmt_frame fndecl 3 47220 NULL
165005 +enable_so_fdt_setprop_fndecl_47221 fdt_setprop fndecl 2-5 47221 NULL
165006 +enable_so_acpi_map_fndecl_47222 acpi_map fndecl 2-1 47222 NULL
165007 +enable_so_get_byte_fndecl_47224 get_byte fndecl 0 47224 NULL
165008 +enable_so_csum_exist_in_range_fndecl_47225 csum_exist_in_range fndecl 3-2 47225 NULL
165009 +enable_so_at25_mem_write_fndecl_47235 at25_mem_write fndecl 4-3 47235 NULL
165010 +enable_so_mac_alloc_res_fndecl_47236 mac_alloc_res fndecl 7 47236 NULL
165011 +enable_so_qlf_id_xfs_dq_logformat_47243 qlf_id xfs_dq_logformat 0 47243 NULL
165012 +enable_so_decrease_reservation_fndecl_47244 decrease_reservation fndecl 1 47244 NULL
165013 +enable_so_fuse_reverse_inval_inode_fndecl_47245 fuse_reverse_inval_inode fndecl 4-3 47245 NULL
165014 +enable_so_translate_desc_fndecl_47247 translate_desc fndecl 3-2-0 47247 NULL
165015 +enable_so___do_config_autodelink_fndecl_47256 __do_config_autodelink fndecl 3 47256 NULL nohasharray
165016 +enable_so_seek_holedata_loop_fndecl_47256 seek_holedata_loop fndecl 0-2 47256 &enable_so___do_config_autodelink_fndecl_47256
165017 +enable_so_agp_allocate_memory_fndecl_47258 agp_allocate_memory fndecl 2 47258 NULL
165018 +enable_so_num_srqs_mthca_limits_47260 num_srqs mthca_limits 0 47260 NULL
165019 +enable_so_ring_size_dw_mci_47261 ring_size dw_mci 0 47261 NULL
165020 +enable_so_num_ifaces_batadv_priv_47263 num_ifaces batadv_priv 0 47263 NULL
165021 +enable_so_isku_sysfs_read_fndecl_47269 isku_sysfs_read fndecl 5 47269 NULL
165022 +enable_so_bts_buffer_setup_aux_fndecl_47274 bts_buffer_setup_aux fndecl 3 47274 NULL
165023 +enable_so_progress_btrfs_caching_control_47276 progress btrfs_caching_control 0 47276 NULL
165024 +enable_so_write_file_fndecl_47279 write_file fndecl 4 47279 NULL
165025 +enable_so_rom_size_qxl_device_47287 rom_size qxl_device 0 47287 NULL
165026 +enable_so___wa_xfer_submit_fndecl_47289 __wa_xfer_submit fndecl 0 47289 NULL nohasharray
165027 +enable_so_ipx_sendmsg_fndecl_47289 ipx_sendmsg fndecl 3 47289 &enable_so___wa_xfer_submit_fndecl_47289
165028 +enable_so_dev_number_mdp_superblock_1_47292 dev_number mdp_superblock_1 0 47292 NULL
165029 +enable_so_pppol2tp_recvmsg_fndecl_47301 pppol2tp_recvmsg fndecl 3 47301 NULL
165030 +enable_so_command_write_fndecl_47306 command_write fndecl 3 47306 NULL
165031 +enable_so_bigdirsize_adfs_bigdirheader_47315 bigdirsize adfs_bigdirheader 0 47315 NULL
165032 +enable_so_ufshcd_change_queue_depth_fndecl_47318 ufshcd_change_queue_depth fndecl 2 47318 NULL
165033 +enable_so_special_e1000_rx_desc_47320 special e1000_rx_desc 0 47320 NULL
165034 +enable_so_nr_pages_swap_extent_47325 nr_pages swap_extent 0 47325 NULL
165035 +enable_so_dma_buffer_size_vardecl_budget_core_c_47332 dma_buffer_size vardecl_budget-core.c 0 47332 NULL
165036 +enable_so_words_nf_conn_labels_47334 words nf_conn_labels 0 47334 NULL
165037 +enable_so_thermal_irq_thr_low_read_fndecl_47339 thermal_irq_thr_low_read fndecl 3 47339 NULL
165038 +enable_so_brcmf_chip_core_read32_fndecl_47346 brcmf_chip_core_read32 fndecl 0 47346 NULL
165039 +enable_so_nd_label_active_count_fndecl_47348 nd_label_active_count fndecl 0 47348 NULL
165040 +enable_so_gtt_base_align_amdgpu_mc_47351 gtt_base_align amdgpu_mc 0 47351 NULL nohasharray
165041 +enable_so_myri10ge_change_mtu_fndecl_47351 myri10ge_change_mtu fndecl 2 47351 &enable_so_gtt_base_align_amdgpu_mc_47351
165042 +enable_so_dmi_memdev_nr_vardecl_dmi_scan_c_47352 dmi_memdev_nr vardecl_dmi_scan.c 0 47352 NULL
165043 +enable_so_dump_midi_fndecl_47356 dump_midi fndecl 3 47356 NULL
165044 +enable_so_erasesize_mtd_info_47358 erasesize mtd_info 0 47358 NULL
165045 +enable_so_ath6kl_wmi_send_action_cmd_fndecl_47359 ath6kl_wmi_send_action_cmd fndecl 7-2 47359 NULL nohasharray
165046 +enable_so_altc_entry_sz_mlx4_dev_cap_47359 altc_entry_sz mlx4_dev_cap 0 47359 &enable_so_ath6kl_wmi_send_action_cmd_fndecl_47359
165047 +enable_so_ie_len_ieee80211_if_mesh_47360 ie_len ieee80211_if_mesh 0 47360 NULL nohasharray
165048 +enable_so_get_vaddr_frames_fndecl_47360 get_vaddr_frames fndecl 1 47360 &enable_so_ie_len_ieee80211_if_mesh_47360
165049 +enable_so_SYSC_sched_getattr_fndecl_47361 SYSC_sched_getattr fndecl 3 47361 NULL
165050 +enable_so_nr_sects_hd_struct_47364 nr_sects hd_struct 0 47364 NULL
165051 +enable_so_rx_position_r3964_info_47365 rx_position r3964_info 0 47365 NULL
165052 +enable_so_il_dbgfs_status_read_fndecl_47367 il_dbgfs_status_read fndecl 3 47367 NULL
165053 +enable_so_batadv_iv_ogm_aggregate_fndecl_47372 batadv_iv_ogm_aggregate fndecl 3 47372 NULL
165054 +enable_so_btt_data_read_fndecl_47374 btt_data_read fndecl 0 47374 NULL
165055 +enable_so_max_fibre_devices_qla_hw_data_47375 max_fibre_devices qla_hw_data 0 47375 NULL
165056 +enable_so_nilfs_bmap_convert_error_fndecl_47376 nilfs_bmap_convert_error fndecl 0-3 47376 NULL
165057 +enable_so_vmw_ttm_tt_create_fndecl_47378 vmw_ttm_tt_create fndecl 2 47378 NULL
165058 +enable_so_data_in_pipe_uas_dev_info_47380 data_in_pipe uas_dev_info 0 47380 NULL
165059 +enable_so_max_tx_length_macb_47385 max_tx_length macb 0 47385 NULL nohasharray
165060 +enable_so_do_huge_pmd_anonymous_page_fndecl_47385 do_huge_pmd_anonymous_page fndecl 3 47385 &enable_so_max_tx_length_macb_47385
165061 +enable_so_memblocks_max_vxge_hw_mempool_47387 memblocks_max vxge_hw_mempool 0 47387 NULL
165062 +enable_so_access_vm_operations_struct_47395 access vm_operations_struct 0 47395 NULL
165063 +enable_so_sr_bg_stable_blkno_ocfs2_suballoc_result_47398 sr_bg_stable_blkno ocfs2_suballoc_result 0 47398 NULL
165064 +enable_so_efd_start_cluster_ext4_free_data_47399 efd_start_cluster ext4_free_data 0 47399 NULL
165065 +enable_so_ino_cifs_dirent_47402 ino cifs_dirent 0 47402 NULL nohasharray
165066 +enable_so_iscsi_offload_mesg_fndecl_47402 iscsi_offload_mesg fndecl 5 47402 &enable_so_ino_cifs_dirent_47402
165067 +enable_so_datalen_key_preparsed_payload_47406 datalen key_preparsed_payload 0 47406 NULL
165068 +enable_so_vmw_kms_generic_present_fndecl_47407 vmw_kms_generic_present fndecl 9 47407 NULL
165069 +enable_so_tp_len_tpacket_hdr_47410 tp_len tpacket_hdr 0 47410 NULL
165070 +enable_so_idetape_pad_zeros_fndecl_47413 idetape_pad_zeros fndecl 2 47413 NULL
165071 +enable_so_cdc_ncm_update_rxtx_max_fndecl_47421 cdc_ncm_update_rxtx_max fndecl 3-2 47421 NULL
165072 +enable_so_move_pfn_range_right_fndecl_47425 move_pfn_range_right fndecl 3-4 47425 NULL
165073 +enable_so_sinit_max_instreams_sctp_cookie_47433 sinit_max_instreams sctp_cookie 0 47433 NULL
165074 +enable_so_capabilities_read_fndecl_47434 capabilities_read fndecl 3 47434 NULL
165075 +enable_so_usnic_vnic_get_resources_fndecl_47437 usnic_vnic_get_resources fndecl 3 47437 NULL
165076 +enable_so_depth_bttv_format_47442 depth bttv_format 0 47442 NULL nohasharray
165077 +enable_so_ufs_frag_map_fndecl_47442 ufs_frag_map fndecl 0 47442 &enable_so_depth_bttv_format_47442
165078 +enable_so_MaxChainDepth_mpt2sas_facts_47453 MaxChainDepth mpt2sas_facts 0 47453 NULL
165079 +enable_so_dw_spi_show_regs_fndecl_47461 dw_spi_show_regs fndecl 3 47461 NULL
165080 +enable_so_part_bits_mtd_blktrans_ops_47462 part_bits mtd_blktrans_ops 0 47462 NULL
165081 +enable_so_len_wmfw_region_47463 len wmfw_region 0 47463 NULL nohasharray
165082 +enable_so_snd_rme96_capture_copy_fndecl_47463 snd_rme96_capture_copy fndecl 5 47463 &enable_so_len_wmfw_region_47463
165083 +enable_so_batadv_bla_is_backbone_gw_fndecl_47467 batadv_bla_is_backbone_gw fndecl 3 47467 NULL
165084 +enable_so_memblock_alloc_try_nid_fndecl_47470 memblock_alloc_try_nid fndecl 2-1 47470 NULL
165085 +enable_so_compat_do_ipt_set_ctl_fndecl_47473 compat_do_ipt_set_ctl fndecl 4 47473 NULL nohasharray
165086 +enable_so_lpfc_idiag_baracc_read_fndecl_47473 lpfc_idiag_baracc_read fndecl 3 47473 &enable_so_compat_do_ipt_set_ctl_fndecl_47473
165087 +enable_so_maxDataSize__mpt_ioctl_header_47477 maxDataSize _mpt_ioctl_header 0 47477 NULL
165088 +enable_so_fifo_len_tx_fifo_config_47480 fifo_len tx_fifo_config 0 47480 NULL
165089 +enable_so_affs_write_end_ofs_fndecl_47486 affs_write_end_ofs fndecl 4-3 47486 NULL
165090 +enable_so_value_acpi_rsconvert_info_47488 value acpi_rsconvert_info 0 47488 NULL nohasharray
165091 +enable_so_report_length_f_hidg_47488 report_length f_hidg 0 47488 &enable_so_value_acpi_rsconvert_info_47488
165092 +enable_so_mac_offset_skb_gso_cb_47491 mac_offset skb_gso_cb 0 47491 NULL
165093 +enable_so_page_size_cas_47493 page_size cas 0 47493 NULL
165094 +enable_so_first_block_efs_sb_info_47499 first_block efs_sb_info 0 47499 NULL
165095 +enable_so_cifs_write_from_iter_fndecl_47501 cifs_write_from_iter fndecl 1-2 47501 NULL
165096 +enable_so_gr_ep_init_fndecl_47502 gr_ep_init fndecl 4 47502 NULL
165097 +enable_so_try_unmap_single_bt_fndecl_47503 try_unmap_single_bt fndecl 2-3 47503 NULL
165098 +enable_so_btrfs_cont_expand_fndecl_47505 btrfs_cont_expand fndecl 3-2 47505 NULL
165099 +enable_so_romfs_blk_strcmp_fndecl_47510 romfs_blk_strcmp fndecl 4-2 47510 NULL
165100 +enable_so_setcontrast_fndecl_47513 setcontrast fndecl 0 47513 NULL
165101 +enable_so_elf_header_exclude_ranges_fndecl_47518 elf_header_exclude_ranges fndecl 2-3 47518 NULL nohasharray
165102 +enable_so_gfs2_dir_get_new_buffer_fndecl_47518 gfs2_dir_get_new_buffer fndecl 2 47518 &enable_so_elf_header_exclude_ranges_fndecl_47518 nohasharray
165103 +enable_so_num_connector_drm_mode_config_47518 num_connector drm_mode_config 0 47518 &enable_so_gfs2_dir_get_new_buffer_fndecl_47518
165104 +enable_so_horizontal_smiapp_binning_subtype_47521 horizontal smiapp_binning_subtype 0 47521 NULL nohasharray
165105 +enable_so_ib_uverbs_create_qp_fndecl_47521 ib_uverbs_create_qp fndecl 4 47521 &enable_so_horizontal_smiapp_binning_subtype_47521
165106 +enable_so_xbf_count_xfs_bmap_free_47529 xbf_count xfs_bmap_free 0 47529 NULL
165107 +enable_so_rome_tlv_send_segment_fndecl_47531 rome_tlv_send_segment fndecl 3 47531 NULL
165108 +enable_so_pq_sources_dmatest_params_47534 pq_sources dmatest_params 0 47534 NULL
165109 +enable_so_llcp_sock_sendmsg_fndecl_47535 llcp_sock_sendmsg fndecl 3 47535 NULL
165110 +enable_so_bytes_nvmem_cell_47539 bytes nvmem_cell 0 47539 NULL
165111 +enable_so_skb_headers_offset_update_fndecl_47543 skb_headers_offset_update fndecl 2 47543 NULL
165112 +enable_so_show_sysfs_ops_47546 show sysfs_ops 0 47546 NULL
165113 +enable_so_relocs_num_drm_qxl_command_47550 relocs_num drm_qxl_command 0 47550 NULL
165114 +enable_so_add_replay_bud_fndecl_47552 add_replay_bud fndecl 3 47552 NULL
165115 +enable_so_max_concur_ios_snic_fw_info_47556 max_concur_ios snic_fw_info 0 47556 NULL
165116 +enable_so_cur_wm_latency_write_fndecl_47558 cur_wm_latency_write fndecl 3 47558 NULL
165117 +enable_so_max_xmit_dlength_iscsi_bus_flash_conn_47565 max_xmit_dlength iscsi_bus_flash_conn 0 47565 NULL nohasharray
165118 +enable_so_isku_sysfs_read_keys_thumbster_fndecl_47565 isku_sysfs_read_keys_thumbster fndecl 6 47565 &enable_so_max_xmit_dlength_iscsi_bus_flash_conn_47565
165119 +enable_so_ubh_bread_uspi_fndecl_47568 ubh_bread_uspi fndecl 3 47568 NULL
165120 +enable_so_wep_decrypt_fail_read_fndecl_47572 wep_decrypt_fail_read fndecl 3 47572 NULL
165121 +enable_so_bnx2x_calc_num_queues_fndecl_47576 bnx2x_calc_num_queues fndecl 0 47576 NULL
165122 +enable_so_traffic_class_ib_global_route_47589 traffic_class ib_global_route 0 47589 NULL nohasharray
165123 +enable_so_i_start_msdos_inode_info_47589 i_start msdos_inode_info 0 47589 &enable_so_traffic_class_ib_global_route_47589
165124 +enable_so_acpi_check_region_fndecl_47594 acpi_check_region fndecl 2-1 47594 NULL
165125 +enable_so_dir_logfs_transaction_47599 dir logfs_transaction 0 47599 NULL
165126 +enable_so_ecryptfs_write_end_fndecl_47601 ecryptfs_write_end fndecl 5-3 47601 NULL
165127 +enable_so_rx_page_order_iwl_trans_pcie_47605 rx_page_order iwl_trans_pcie 0 47605 NULL
165128 +enable_so_ebt_buf_count_fndecl_47612 ebt_buf_count fndecl 2 47612 NULL
165129 +enable_so_control_1_vxge_hw_ring_rxd_1_47616 control_1 vxge_hw_ring_rxd_1 0 47616 NULL
165130 +enable_so_mincore_pte_range_fndecl_47625 mincore_pte_range fndecl 2 47625 NULL nohasharray
165131 +enable_so_len_ib_ucm_req_47625 len ib_ucm_req 0 47625 &enable_so_mincore_pte_range_fndecl_47625
165132 +enable_so_ubifs_load_znode_fndecl_47628 ubifs_load_znode fndecl 4 47628 NULL
165133 +enable_so_allocate_resource_fndecl_47629 allocate_resource fndecl 4-3-5-6 47629 NULL
165134 +enable_so___iio_add_event_config_attrs_fndecl_47635 __iio_add_event_config_attrs fndecl 0 47635 NULL
165135 +enable_so_nentries_ebt_table_info_47639 nentries ebt_table_info 0 47639 NULL
165136 +enable_so_buffer_alignment_fore200e_bus_47640 buffer_alignment fore200e_bus 0 47640 NULL
165137 +enable_so_num_phys_hw_profile_47641 num_phys hw_profile 0 47641 NULL
165138 +enable_so_nilfs_cpfile_get_offset_fndecl_47642 nilfs_cpfile_get_offset fndecl 0-2 47642 NULL nohasharray
165139 +enable_so_framebuffer_alloc_fndecl_47642 framebuffer_alloc fndecl 1 47642 &enable_so_nilfs_cpfile_get_offset_fndecl_47642
165140 +enable_so_pch_gbe_change_mtu_fndecl_47643 pch_gbe_change_mtu fndecl 2 47643 NULL
165141 +enable_so_radeon_compat_ioctl_fndecl_47645 radeon_compat_ioctl fndecl 2 47645 NULL
165142 +enable_so_ocfs2_move_extent_fndecl_47648 ocfs2_move_extent fndecl 5-3-2 47648 NULL nohasharray
165143 +enable_so_fetch_to_dev_buffer_fndecl_47648 fetch_to_dev_buffer fndecl 3 47648 &enable_so_ocfs2_move_extent_fndecl_47648
165144 +enable_so_rate_max_snd_soc_pcm_stream_47650 rate_max snd_soc_pcm_stream 0 47650 NULL
165145 +enable_so_lpfc_sli_issue_iocb_fndecl_47651 lpfc_sli_issue_iocb fndecl 0 47651 NULL
165146 +enable_so_max_sge_rqe_allocated_ocrdma_create_srq_rsp_47654 max_sge_rqe_allocated ocrdma_create_srq_rsp 0 47654 NULL
165147 +enable_so_height_console_font_47655 height console_font 0 47655 NULL
165148 +enable_so_length_fw_cdev_add_descriptor_47656 length fw_cdev_add_descriptor 0 47656 NULL
165149 +enable_so_atomic_write_len_kernfs_open_file_47658 atomic_write_len kernfs_open_file 0 47658 NULL
165150 +enable_so___of_address_to_resource_fndecl_47662 __of_address_to_resource fndecl 3 47662 NULL
165151 +enable_so_wPropertyNameLength_usb_ext_prop_desc_47663 wPropertyNameLength usb_ext_prop_desc 0 47663 NULL
165152 +enable_so_xfs_qm_quotacheck_dqadjust_fndecl_47666 xfs_qm_quotacheck_dqadjust fndecl 2 47666 NULL
165153 +enable_so_dlm_rcom_names_fndecl_47668 dlm_rcom_names fndecl 4 47668 NULL nohasharray
165154 +enable_so_frame_seq_num_os_aux_s_47668 frame_seq_num os_aux_s 0 47668 &enable_so_dlm_rcom_names_fndecl_47668
165155 +enable_so_chans_zatm_dev_47669 chans zatm_dev 0 47669 NULL
165156 +enable_so_setup_window_fndecl_47673 setup_window fndecl 3-2-7-5-4 47673 NULL
165157 +enable_so_rtsx_pci_write_register_fndecl_47674 rtsx_pci_write_register fndecl 0 47674 NULL
165158 +enable_so_ksize_fndecl_47675 ksize fndecl 0 47675 NULL
165159 +enable_so_height_v4l2_pix_format_47682 height v4l2_pix_format 0 47682 NULL
165160 +enable_so_rs_length_rpcrdma_segment_47683 rs_length rpcrdma_segment 0 47683 NULL
165161 +enable_so_ath10k_debug_cal_data_read_fndecl_47685 ath10k_debug_cal_data_read fndecl 3 47685 NULL
165162 +enable_so_pci_iov_bus_range_fndecl_47686 pci_iov_bus_range fndecl 0 47686 NULL
165163 +enable_so_maxframesize_snd_usb_endpoint_47687 maxframesize snd_usb_endpoint 0 47687 NULL
165164 +enable_so_batadv_hardif_min_mtu_fndecl_47691 batadv_hardif_min_mtu fndecl 0 47691 NULL nohasharray
165165 +enable_so_cno_nilfs_super_data_47691 cno nilfs_super_data 0 47691 &enable_so_batadv_hardif_min_mtu_fndecl_47691 nohasharray
165166 +enable_so_max_active_ib_mad_queue_47691 max_active ib_mad_queue 0 47691 &enable_so_cno_nilfs_super_data_47691
165167 +enable_so_virtblk_queue_depth_vardecl_virtio_blk_c_47692 virtblk_queue_depth vardecl_virtio_blk.c 0 47692 NULL
165168 +enable_so_paging64_gpte_to_gfn_lvl_fndecl_47694 paging64_gpte_to_gfn_lvl fndecl 0-2-1 47694 NULL
165169 +enable_so_afavlab_setup_fndecl_47698 afavlab_setup fndecl 4 47698 NULL
165170 +enable_so_gpu_mem_base_vml_par_47703 gpu_mem_base vml_par 0 47703 NULL
165171 +enable_so_xfs_iext_realloc_indirect_fndecl_47704 xfs_iext_realloc_indirect fndecl 2 47704 NULL nohasharray
165172 +enable_so_onenand_bbt_read_oob_fndecl_47704 onenand_bbt_read_oob fndecl 2 47704 &enable_so_xfs_iext_realloc_indirect_fndecl_47704
165173 +enable_so_ino_fuse_attr_47705 ino fuse_attr 0 47705 NULL nohasharray
165174 +enable_so_report_size_roccat_device_47705 report_size roccat_device 0 47705 &enable_so_ino_fuse_attr_47705
165175 +enable_so_ppp_sync_receive_fndecl_47706 ppp_sync_receive fndecl 4 47706 NULL
165176 +enable_so_nilfs_iget_for_gc_fndecl_47708 nilfs_iget_for_gc fndecl 2 47708 NULL
165177 +enable_so_i2c_hid_raw_request_fndecl_47709 i2c_hid_raw_request fndecl 4 47709 NULL nohasharray
165178 +enable_so_fast_rx_path_fndecl_47709 fast_rx_path fndecl 3 47709 &enable_so_i2c_hid_raw_request_fndecl_47709 nohasharray
165179 +enable_so_small_bytes_myri10ge_priv_47709 small_bytes myri10ge_priv 0 47709 &enable_so_fast_rx_path_fndecl_47709
165180 +enable_so_oxu_init_fndecl_47714 oxu_init fndecl 3-2 47714 NULL
165181 +enable_so_tegra_sflash_start_transfer_one_fndecl_47723 tegra_sflash_start_transfer_one fndecl 0 47723 NULL
165182 +enable_so_max_size_ttm_pool_opts_47726 max_size ttm_pool_opts 0 47726 NULL
165183 +enable_so_bdev_stack_limits_fndecl_47732 bdev_stack_limits fndecl 3 47732 NULL
165184 +enable_so_copy_nocow_pages_for_inode_fndecl_47736 copy_nocow_pages_for_inode fndecl 2 47736 NULL
165185 +enable_so_SMB2_write_fndecl_47741 SMB2_write fndecl 5 47741 NULL
165186 +enable_so_eccbytes_nand_ecclayout_47742 eccbytes nand_ecclayout 0 47742 NULL
165187 +enable_so_minbcnt_aoetgt_47744 minbcnt aoetgt 0 47744 NULL
165188 +enable_so_acpi_tb_install_fixed_table_fndecl_47749 acpi_tb_install_fixed_table fndecl 1 47749 NULL
165189 +enable_so_width_ssd1307fb_par_47753 width ssd1307fb_par 0 47753 NULL nohasharray
165190 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_47753 buffer_size snd_emu10k1_fx8010_pcm 0 47753 &enable_so_width_ssd1307fb_par_47753
165191 +enable_so_fixed_out_len_gether_47754 fixed_out_len gether 0 47754 NULL
165192 +enable_so_key_instantiate_and_link_fndecl_47756 key_instantiate_and_link fndecl 3 47756 NULL
165193 +enable_so_num_def_rx_descs_octeon_config_47759 num_def_rx_descs octeon_config 0 47759 NULL
165194 +enable_so_write_chunk_fndecl_47763 write_chunk fndecl 4 47763 NULL
165195 +enable_so_build_smp_wc_fndecl_47764 build_smp_wc fndecl 5 47764 NULL nohasharray
165196 +enable_so_ticket_length_rxrpc_key_data_v1_47764 ticket_length rxrpc_key_data_v1 0 47764 &enable_so_build_smp_wc_fndecl_47764
165197 +enable_so_mq_ecount_lpfc_sli4_hba_47770 mq_ecount lpfc_sli4_hba 0 47770 NULL
165198 +enable_so_rx_count_ll_struct_47772 rx_count ll_struct 0 47772 NULL nohasharray
165199 +enable_so_minor_osd_uld_device_47772 minor osd_uld_device 0 47772 &enable_so_rx_count_ll_struct_47772
165200 +enable_so_fill_func_debug_buffer_47773 fill_func debug_buffer 0 47773 NULL
165201 +enable_so_snic_reset_stats_read_fndecl_47774 snic_reset_stats_read fndecl 3 47774 NULL
165202 +enable_so_dma1_shift_es1938_47776 dma1_shift es1938 0 47776 NULL
165203 +enable_so_v9fs_remote_set_acl_fndecl_47784 v9fs_remote_set_acl fndecl 4 47784 NULL nohasharray
165204 +enable_so_rx_ring_size_bnx2x_47784 rx_ring_size bnx2x 0 47784 &enable_so_v9fs_remote_set_acl_fndecl_47784 nohasharray
165205 +enable_so_fd_copyout_fndecl_47784 fd_copyout fndecl 3 47784 &enable_so_rx_ring_size_bnx2x_47784
165206 +enable_so_bg_blkno_ocfs2_group_desc_47785 bg_blkno ocfs2_group_desc 0 47785 NULL
165207 +enable_so_skb_prepare_seq_read_fndecl_47790 skb_prepare_seq_read fndecl 2 47790 NULL nohasharray
165208 +enable_so_max_cmds_mlx4_cmd_47790 max_cmds mlx4_cmd 0 47790 &enable_so_skb_prepare_seq_read_fndecl_47790
165209 +enable_so_do_otp_read_fndecl_47794 do_otp_read fndecl 2 47794 NULL
165210 +enable_so_num_vmdq_qps_i40e_pf_47795 num_vmdq_qps i40e_pf 0 47795 NULL
165211 +enable_so_mxt_bootloader_read_fndecl_47796 mxt_bootloader_read fndecl 3 47796 NULL nohasharray
165212 +enable_so_major_vardecl_sound_c_47796 major vardecl_sound.c 0 47796 &enable_so_mxt_bootloader_read_fndecl_47796
165213 +enable_so_get_key_haup_common_fndecl_47797 get_key_haup_common fndecl 5 47797 NULL nohasharray
165214 +enable_so___push_leaf_right_fndecl_47797 __push_leaf_right fndecl 8 47797 &enable_so_get_key_haup_common_fndecl_47797
165215 +enable_so_i_eblock_bfs_inode_47799 i_eblock bfs_inode 0 47799 NULL
165216 +enable_so_h_suballoc_bit_ocfs2_extent_block_47802 h_suballoc_bit ocfs2_extent_block 0 47802 NULL
165217 +enable_so_odd_byte_adjustment_sym_ccb_47803 odd_byte_adjustment sym_ccb 0 47803 NULL
165218 +enable_so_xfs_attrmulti_attr_set_fndecl_47809 xfs_attrmulti_attr_set fndecl 4 47809 NULL nohasharray
165219 +enable_so_paging64_get_level1_sp_gpa_fndecl_47809 paging64_get_level1_sp_gpa fndecl 0 47809 &enable_so_xfs_attrmulti_attr_set_fndecl_47809
165220 +enable_so___map_request_fndecl_47813 __map_request fndecl 0 47813 NULL
165221 +enable_so_size_ncp_ioctl_request_47816 size ncp_ioctl_request 0 47816 NULL
165222 +enable_so_fuse_copy_do_fndecl_47822 fuse_copy_do fndecl 0 47822 NULL
165223 +enable_so_rom_length_fw_cdev_get_info_47831 rom_length fw_cdev_get_info 0 47831 NULL
165224 +enable_so_rx_defrag_in_process_called_read_fndecl_47833 rx_defrag_in_process_called_read fndecl 3 47833 NULL
165225 +enable_so_f2fs_fallocate_fndecl_47842 f2fs_fallocate fndecl 3-4 47842 NULL nohasharray
165226 +enable_so_tcp_check_reno_reordering_fndecl_47842 tcp_check_reno_reordering fndecl 2 47842 &enable_so_f2fs_fallocate_fndecl_47842
165227 +enable_so_assoc_len_amp_ctrl_47844 assoc_len amp_ctrl 0 47844 NULL nohasharray
165228 +enable_so_ieee80211_tdls_add_setup_start_ies_fndecl_47844 ieee80211_tdls_add_setup_start_ies fndecl 7 47844 &enable_so_assoc_len_amp_ctrl_47844
165229 +enable_so_rl_rgrps_gfs2_rgrp_list_47847 rl_rgrps gfs2_rgrp_list 0 47847 NULL
165230 +enable_so_ch_t_tlevel_jsm_channel_47848 ch_t_tlevel jsm_channel 0 47848 NULL
165231 +enable_so_s_mmp_block_ext4_super_block_47865 s_mmp_block ext4_super_block 0 47865 NULL
165232 +enable_so_nilfs_cpfile_find_checkpoint_block_fndecl_47868 nilfs_cpfile_find_checkpoint_block fndecl 2-3 47868 NULL
165233 +enable_so_length_ar9170_stream_47870 length ar9170_stream 0 47870 NULL
165234 +enable_so_smssdio_sendrequest_fndecl_47873 smssdio_sendrequest fndecl 3 47873 NULL
165235 +enable_so_len_nlm_cookie_47875 len nlm_cookie 0 47875 NULL nohasharray
165236 +enable_so_ivtv_convert_ivtv_vbi_fndecl_47875 ivtv_convert_ivtv_vbi fndecl 0 47875 &enable_so_len_nlm_cookie_47875
165237 +enable_so_smt_send_ecf_fndecl_47881 smt_send_ecf fndecl 6 47881 NULL
165238 +enable_so_gs_alloc_req_fndecl_47888 gs_alloc_req fndecl 2 47888 NULL
165239 +enable_so_end_bus_number_acpi_mcfg_allocation_47894 end_bus_number acpi_mcfg_allocation 0 47894 NULL
165240 +enable_so_sb_inoalignmt_xfs_sb_47899 sb_inoalignmt xfs_sb 0 47899 NULL
165241 +enable_so_set_offset_v2_k_offset_fndecl_47902 set_offset_v2_k_offset fndecl 2 47902 NULL
165242 +enable_so_msize_p9_client_47905 msize p9_client 0 47905 NULL
165243 +enable_so_write_pmsg_fndecl_47911 write_pmsg fndecl 3 47911 NULL
165244 +enable_so_spi_map_msg_fndecl_47912 spi_map_msg fndecl 0 47912 NULL
165245 +enable_so_nbytes_fsl_edma_hw_tcd_47913 nbytes fsl_edma_hw_tcd 0 47913 NULL
165246 +enable_so_compat_fillonedir_fndecl_47921 compat_fillonedir fndecl 3 47921 NULL
165247 +enable_so_mxl111sf_stream_config_isoc_fndecl_47924 mxl111sf_stream_config_isoc fndecl 2 47924 NULL
165248 +enable_so_phys_esb2rom_window_47933 phys esb2rom_window 0 47933 NULL
165249 +enable_so_fddi_change_mtu_fndecl_47942 fddi_change_mtu fndecl 2 47942 NULL
165250 +enable_so_rxd_vlan_rxd_desc_47943 rxd_vlan rxd_desc 0 47943 NULL
165251 +enable_so_max_param_range_47945 max param_range 0 47945 NULL
165252 +enable_so_produce_q_size_vmci_qp_47948 produce_q_size vmci_qp 0 47948 NULL
165253 +enable_so_dlm_new_lockspace_fndecl_47954 dlm_new_lockspace fndecl 4 47954 NULL
165254 +enable_so_l2bsize_jfs_log_47956 l2bsize jfs_log 0 47956 NULL
165255 +enable_so_depth_pitch_drm_r128_private_47959 depth_pitch drm_r128_private 0 47959 NULL
165256 +enable_so_netpoll_send_udp_fndecl_47960 netpoll_send_udp fndecl 3 47960 NULL
165257 +enable_so_st5481_isoc_flatten_fndecl_47963 st5481_isoc_flatten fndecl 0 47963 NULL
165258 +enable_so_handle_rx_packet_fndecl_47970 handle_rx_packet fndecl 3 47970 NULL
165259 +enable_so_reg_size_sci_port_47971 reg_size sci_port 0 47971 NULL nohasharray
165260 +enable_so_encap_hlen_ip_tunnel_encap_ops_47971 encap_hlen ip_tunnel_encap_ops 0 47971 &enable_so_reg_size_sci_port_47971 nohasharray
165261 +enable_so_length_xfs_bmalloca_47971 length xfs_bmalloca 0 47971 &enable_so_encap_hlen_ip_tunnel_encap_ops_47971
165262 +enable_so_le_ih_k_offset_fndecl_47992 le_ih_k_offset fndecl 0 47992 NULL
165263 +enable_so_remap_to_cache_dirty_fndecl_47996 remap_to_cache_dirty fndecl 4 47996 NULL
165264 +enable_so_size_sc_config_sizes_47998 size sc_config_sizes 0 47998 NULL
165265 +enable_so_blocks_num_c2port_ops_47999 blocks_num c2port_ops 0 47999 NULL
165266 +enable_so__fdt_check_node_offset_fndecl_48002 _fdt_check_node_offset fndecl 0-2 48002 NULL
165267 +enable_so_width_console_font_op_48005 width console_font_op 0 48005 NULL
165268 +enable_so_setgain_fndecl_48010 setgain fndecl 0 48010 NULL nohasharray
165269 +enable_so_init_pci_cap_msi_perm_fndecl_48010 init_pci_cap_msi_perm fndecl 2 48010 &enable_so_setgain_fndecl_48010
165270 +enable_so_size_netlbl_unlhsh_tbl_48011 size netlbl_unlhsh_tbl 0 48011 NULL
165271 +enable_so_selinux_transaction_write_fndecl_48013 selinux_transaction_write fndecl 3 48013 NULL
165272 +enable_so_size_nfs_fh_48014 size nfs_fh 0 48014 NULL
165273 +enable_so_temp_end_applesmc_registers_48016 temp_end applesmc_registers 0 48016 NULL
165274 +enable_so_lpfc_idiag_baracc_write_fndecl_48021 lpfc_idiag_baracc_write fndecl 3 48021 NULL
165275 +enable_so_original_mtu_slave_48025 original_mtu slave 0 48025 NULL
165276 +enable_so_hmac_len_sctp_hmac_48030 hmac_len sctp_hmac 0 48030 NULL
165277 +enable_so_aim_write_fndecl_48032 aim_write fndecl 3 48032 NULL
165278 +enable_so_dlci_header_fndecl_48034 dlci_header fndecl 3 48034 NULL
165279 +enable_so_init_page_array_fndecl_48038 init_page_array fndecl 2-0 48038 NULL
165280 +enable_so_rm_namelen_nfsd4_remove_48040 rm_namelen nfsd4_remove 0 48040 NULL
165281 +enable_so_fc_flogi_build_fndecl_48042 fc_flogi_build fndecl 7 48042 NULL
165282 +enable_so_s_reserved_affs_sb_info_48043 s_reserved affs_sb_info 0 48043 NULL
165283 +enable_so_sb_size_md_rdev_48046 sb_size md_rdev 0 48046 NULL
165284 +enable_so_num_pages_ttm_buffer_object_48047 num_pages ttm_buffer_object 0 48047 NULL
165285 +enable_so_num_privcmd_mmapbatch_v2_48051 num privcmd_mmapbatch_v2 0 48051 NULL
165286 +enable_so_rds_buf_vardecl_radio_si470x_i2c_c_48053 rds_buf vardecl_radio-si470x-i2c.c 0 48053 NULL
165287 +enable_so_ioctl_datasize_ips_ha_48058 ioctl_datasize ips_ha 0 48058 NULL
165288 +enable_so_lso_max_fc_lport_48064 lso_max fc_lport 0 48064 NULL
165289 +enable_so_zonesize_alauda_media_info_48068 zonesize alauda_media_info 0 48068 NULL
165290 +enable_so_sc16is7xx_alloc_line_fndecl_48075 sc16is7xx_alloc_line fndecl 0 48075 NULL
165291 +enable_so_xfs_zero_eof_fndecl_48076 xfs_zero_eof fndecl 3-2 48076 NULL
165292 +enable_so_mt9t031_skip_fndecl_48078 mt9t031_skip fndecl 0-3-2 48078 NULL
165293 +enable_so_blocksize_sddr55_card_info_48082 blocksize sddr55_card_info 0 48082 NULL
165294 +enable_so_osst_max_dev_vardecl_osst_c_48086 osst_max_dev vardecl_osst.c 0 48086 NULL
165295 +enable_so_ipath_rcvegrcnt_ipath_devdata_48089 ipath_rcvegrcnt ipath_devdata 0 48089 NULL
165296 +enable_so_count_atl1c_rfd_ring_48095 count atl1c_rfd_ring 0 48095 NULL
165297 +enable_so_scsi_io_completion_fndecl_48097 scsi_io_completion fndecl 2 48097 NULL nohasharray
165298 +enable_so_seg_count_agp_region32_48097 seg_count agp_region32 0 48097 &enable_so_scsi_io_completion_fndecl_48097
165299 +enable_so_icq_align_elevator_type_48098 icq_align elevator_type 0 48098 NULL
165300 +enable_so_ep_out_mts_desc_48099 ep_out mts_desc 0 48099 NULL
165301 +enable_so___lbs_cmd_async_fndecl_48102 __lbs_cmd_async fndecl 4 48102 NULL
165302 +enable_so_pre_pll_clk_div_smiapp_pll_48103 pre_pll_clk_div smiapp_pll 0 48103 NULL
165303 +enable_so_nfc_llcp_send_i_frame_fndecl_48105 nfc_llcp_send_i_frame fndecl 3 48105 NULL nohasharray
165304 +enable_so_bit_offset_nvmem_cell_info_48105 bit_offset nvmem_cell_info 0 48105 &enable_so_nfc_llcp_send_i_frame_fndecl_48105 nohasharray
165305 +enable_so___cvmx_bootmem_desc_get_fndecl_48105 __cvmx_bootmem_desc_get fndecl 0 48105 &enable_so_bit_offset_nvmem_cell_info_48105
165306 +enable_so_m25p80_write_reg_fndecl_48115 m25p80_write_reg fndecl 4 48115 NULL
165307 +enable_so_max_pkt_size_cx231xx_audio_48117 max_pkt_size cx231xx_audio 0 48117 NULL nohasharray
165308 +enable_so_namelen_xensyms_48117 namelen xensyms 0 48117 &enable_so_max_pkt_size_cx231xx_audio_48117
165309 +enable_so_discard_granularity_queue_limits_48119 discard_granularity queue_limits 0 48119 NULL
165310 +enable_so_curr_dma_words_tegra_slink_data_48129 curr_dma_words tegra_slink_data 0 48129 NULL nohasharray
165311 +enable_so_gfs2_write_begin_fndecl_48129 gfs2_write_begin fndecl 4-3 48129 &enable_so_curr_dma_words_tegra_slink_data_48129
165312 +enable_so_vma_kernel_pagesize_fndecl_48131 vma_kernel_pagesize fndecl 0 48131 NULL
165313 +enable_so_tx_tx_retry_template_read_fndecl_48132 tx_tx_retry_template_read fndecl 3 48132 NULL
165314 +enable_so_mem_read_fndecl_48140 mem_read fndecl 3 48140 NULL
165315 +enable_so_sisusbcon_putcs_fndecl_48141 sisusbcon_putcs fndecl 3 48141 NULL nohasharray
165316 +enable_so_osdmap_set_max_osd_fndecl_48141 osdmap_set_max_osd fndecl 2 48141 &enable_so_sisusbcon_putcs_fndecl_48141
165317 +enable_so_max_gs_mlx5_core_srq_48153 max_gs mlx5_core_srq 0 48153 NULL
165318 +enable_so_fdt_get_property_fndecl_48155 fdt_get_property fndecl 2 48155 NULL nohasharray
165319 +enable_so_isdnhdlc_encode_fndecl_48155 isdnhdlc_encode fndecl 0-6 48155 &enable_so_fdt_get_property_fndecl_48155
165320 +enable_so_usb_endpoint_data_queue_48158 usb_endpoint data_queue 0 48158 NULL nohasharray
165321 +enable_so_update_res_fndecl_48158 update_res fndecl 3-2 48158 &enable_so_usb_endpoint_data_queue_48158 nohasharray
165322 +enable_so_hpi_cobranet_hmi_write_fndecl_48158 hpi_cobranet_hmi_write fndecl 3 48158 &enable_so_update_res_fndecl_48158
165323 +enable_so_qs_in_channels_hdsp_48166 qs_in_channels hdsp 0 48166 NULL
165324 +enable_so_r3964_write_fndecl_48173 r3964_write fndecl 4 48173 NULL
165325 +enable_so_hub_control_hc_driver_48178 hub_control hc_driver 0 48178 NULL
165326 +enable_so_mwifiex_parse_cal_cfg_fndecl_48179 mwifiex_parse_cal_cfg fndecl 0 48179 NULL
165327 +enable_so_mr_read_fndecl_48180 mr_read fndecl 0 48180 NULL
165328 +enable_so_num_pages_vmw_sg_table_48192 num_pages vmw_sg_table 0 48192 NULL
165329 +enable_so_qcafrm_fsm_decode_fndecl_48193 qcafrm_fsm_decode fndecl 0-4 48193 NULL nohasharray
165330 +enable_so_data_transfer_length_pmcraid_ioarcb_48193 data_transfer_length pmcraid_ioarcb 0 48193 &enable_so_qcafrm_fsm_decode_fndecl_48193
165331 +enable_so_xres_virtual_fb_var_screeninfo_48196 xres_virtual fb_var_screeninfo 0 48196 NULL nohasharray
165332 +enable_so_sy_fb_copyarea_48196 sy fb_copyarea 0 48196 &enable_so_xres_virtual_fb_var_screeninfo_48196
165333 +enable_so_snd_rawmidi_transmit_ack_fndecl_48200 snd_rawmidi_transmit_ack fndecl 0-2 48200 NULL
165334 +enable_so_rxoffset_dma_info_48202 rxoffset dma_info 0 48202 NULL
165335 +enable_so_btusb_recv_bulk_intel_fndecl_48211 btusb_recv_bulk_intel fndecl 3 48211 NULL nohasharray
165336 +enable_so_proc_ns_readlink_fndecl_48211 proc_ns_readlink fndecl 3 48211 &enable_so_btusb_recv_bulk_intel_fndecl_48211
165337 +enable_so___lgwrite_fndecl_48214 __lgwrite fndecl 4 48214 NULL
165338 +enable_so_ramoops_console_size_vardecl_ram_c_48215 ramoops_console_size vardecl_ram.c 0 48215 NULL
165339 +enable_so_srp_response_common_fndecl_48216 srp_response_common fndecl 4-2 48216 NULL nohasharray
165340 +enable_so_ax88179_read_cmd_nopm_fndecl_48216 ax88179_read_cmd_nopm fndecl 5 48216 &enable_so_srp_response_common_fndecl_48216
165341 +enable_so_cur_inode_last_extent_send_ctx_48219 cur_inode_last_extent send_ctx 0 48219 NULL
165342 +enable_so_qib_rkey_ok_fndecl_48221 qib_rkey_ok fndecl 3-4 48221 NULL
165343 +enable_so_b_map_count_xfs_buf_48228 b_map_count xfs_buf 0 48228 NULL
165344 +enable_so_sys_nice_fndecl_48229 sys_nice fndecl 1 48229 NULL
165345 +enable_so_ieee80211_if_read_dot11MeshHWMPconfirmationInterval_fndecl_48233 ieee80211_if_read_dot11MeshHWMPconfirmationInterval fndecl 3 48233 NULL
165346 +enable_so_xdr_buf_read_netobj_fndecl_48238 xdr_buf_read_netobj fndecl 3 48238 NULL
165347 +enable_so_num_rx_rings_bnx2_48240 num_rx_rings bnx2 0 48240 NULL
165348 +enable_so_i2400m_rx_stats_read_fndecl_48249 i2400m_rx_stats_read fndecl 3 48249 NULL
165349 +enable_so_qib_make_grh_fndecl_48250 qib_make_grh fndecl 0 48250 NULL
165350 +enable_so_height_cx88_core_48255 height cx88_core 0 48255 NULL
165351 +enable_so_ib_uverbs_create_xsrq_fndecl_48257 ib_uverbs_create_xsrq fndecl 4 48257 NULL
165352 +enable_so_vrows_display_48275 vrows display 0 48275 NULL
165353 +enable_so_qdisc_tree_decrease_qlen_fndecl_48281 qdisc_tree_decrease_qlen fndecl 2 48281 NULL
165354 +enable_so_compat_sys_set_mempolicy_fndecl_48285 compat_sys_set_mempolicy fndecl 3 48285 NULL
165355 +enable_so_reg_shift_pciserial_board_48293 reg_shift pciserial_board 0 48293 NULL
165356 +enable_so_add_packet_fndecl_48295 add_packet fndecl 3 48295 NULL
165357 +enable_so_next_dtslot_48300 next dtslot 0 48300 NULL
165358 +enable_so_hackrf_convert_stream_fndecl_48309 hackrf_convert_stream fndecl 0-4 48309 NULL
165359 +enable_so_nep_buffer_size_wahc_48313 nep_buffer_size wahc 0 48313 NULL
165360 +enable_so_ci_flags_f2fs_crypt_info_48318 ci_flags f2fs_crypt_info 0 48318 NULL
165361 +enable_so_ngroups_group_info_48320 ngroups group_info 0 48320 NULL
165362 +enable_so_pin_down_extent_fndecl_48324 pin_down_extent fndecl 4-3 48324 NULL
165363 +enable_so_acpi_efi_48328 acpi efi 0 48328 NULL nohasharray
165364 +enable_so_btn_rec_size_cyttsp4_sysinfo_ofs_48328 btn_rec_size cyttsp4_sysinfo_ofs 0 48328 &enable_so_acpi_efi_48328
165365 +enable_so_vga_scan_lines_vardecl_vgacon_c_48330 vga_scan_lines vardecl_vgacon.c 0 48330 NULL
165366 +enable_so_region_table_entry_bits_switch_ctx_48332 region_table_entry_bits switch_ctx 0 48332 NULL
165367 +enable_so_tch_rec_size_cyttsp4_opcfg_48339 tch_rec_size cyttsp4_opcfg 0 48339 NULL
165368 +enable_so_ion_test_ioctl_fndecl_48340 ion_test_ioctl fndecl 2 48340 NULL
165369 +enable_so_ivtv_read_fndecl_48343 ivtv_read fndecl 3 48343 NULL
165370 +enable_so_spare_bytes_per_page_nand_jedec_params_48344 spare_bytes_per_page nand_jedec_params 0 48344 NULL
165371 +enable_so_bno_xfs_extent_busy_48346 bno xfs_extent_busy 0 48346 NULL
165372 +enable_so_generic_ptrace_peekdata_fndecl_48349 generic_ptrace_peekdata fndecl 2 48349 NULL
165373 +enable_so_hwahc_op_urb_dequeue_fndecl_48351 hwahc_op_urb_dequeue fndecl 3 48351 NULL
165374 +enable_so_flash_read_fndecl_48352 flash_read fndecl 3 48352 NULL
165375 +enable_so_kiblnd_create_tx_pool_fndecl_48357 kiblnd_create_tx_pool fndecl 2 48357 NULL
165376 +enable_so_qib_make_rc_ack_fndecl_48361 qib_make_rc_ack fndecl 4 48361 NULL
165377 +enable_so_ule_sndu_len_dvb_net_priv_48367 ule_sndu_len dvb_net_priv 0 48367 NULL
165378 +enable_so_xlog_write_setup_copy_fndecl_48368 xlog_write_setup_copy fndecl 0-4-3 48368 NULL
165379 +enable_so_gmch_chip_id_intel_gtt_driver_description_48370 gmch_chip_id intel_gtt_driver_description 0 48370 NULL
165380 +enable_so_bfad_debugfs_read_regrd_fndecl_48373 bfad_debugfs_read_regrd fndecl 3 48373 NULL
165381 +enable_so_width_dt3155_priv_48375 width dt3155_priv 0 48375 NULL
165382 +enable_so_copy_to_user_fndecl_48376 copy_to_user fndecl 3-0 48376 NULL
165383 +enable_so_driver_data_pci_device_id_48380 driver_data pci_device_id 0 48380 NULL
165384 +enable_so_hfs_ext_read_extent_fndecl_48383 hfs_ext_read_extent fndecl 2 48383 NULL nohasharray
165385 +enable_so_punit_size_intel_pmc_ipc_dev_48383 punit_size intel_pmc_ipc_dev 0 48383 &enable_so_hfs_ext_read_extent_fndecl_48383
165386 +enable_so__snd_pcm_hw_param_set_fndecl_48394 _snd_pcm_hw_param_set fndecl 3 48394 NULL
165387 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_rdqs_get_fndecl_48399 mlxsw_cmd_mbox_query_aq_cap_max_num_rdqs_get fndecl 0 48399 NULL
165388 +enable_so_blk_queue_dma_pad_fndecl_48409 blk_queue_dma_pad fndecl 2 48409 NULL
165389 +enable_so_osd_depth_vardecl_ivtvfb_c_48413 osd_depth vardecl_ivtvfb.c 0 48413 NULL
165390 +enable_so_seq_buf_putmem_fndecl_48421 seq_buf_putmem fndecl 3 48421 NULL
165391 +enable_so_max_kioc_mraid_mmadp_48422 max_kioc mraid_mmadp 0 48422 NULL
165392 +enable_so_sys_fadvise64_64_fndecl_48424 sys_fadvise64_64 fndecl 2-3 48424 NULL nohasharray
165393 +enable_so_stex_copy_data_fndecl_48424 stex_copy_data fndecl 3 48424 &enable_so_sys_fadvise64_64_fndecl_48424
165394 +enable_so_read_file_blob_fndecl_48429 read_file_blob fndecl 3 48429 NULL
165395 +enable_so_bMaxBurst_usb_wireless_ep_comp_descriptor_48430 bMaxBurst usb_wireless_ep_comp_descriptor 0 48430 NULL
165396 +enable_so_mmio_phys_end_amd_iommu_48432 mmio_phys_end amd_iommu 0 48432 NULL
165397 +enable_so_tty_register_device_attr_fndecl_48438 tty_register_device_attr fndecl 2 48438 NULL
165398 +enable_so_natids_tid_info_48439 natids tid_info 0 48439 NULL
165399 +enable_so_bzImage64_load_fndecl_48447 bzImage64_load fndecl 5-7 48447 NULL
165400 +enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452 compat_keyctl_instantiate_key_iov fndecl 3 48452 NULL
165401 +enable_so_read_file_eeprom_fndecl_48455 read_file_eeprom fndecl 3 48455 NULL
165402 +enable_so_dp_out_buf_len_digi_port_48457 dp_out_buf_len digi_port 0 48457 NULL nohasharray
165403 +enable_so_xen_align_and_add_e820_region_fndecl_48457 xen_align_and_add_e820_region fndecl 2-1 48457 &enable_so_dp_out_buf_len_digi_port_48457 nohasharray
165404 +enable_so_pwr_ap_sleep_active_conf_read_fndecl_48457 pwr_ap_sleep_active_conf_read fndecl 3 48457 &enable_so_xen_align_and_add_e820_region_fndecl_48457
165405 +enable_so_copy_to_user_fromio_fndecl_48459 copy_to_user_fromio fndecl 3 48459 NULL
165406 +enable_so_len_rx_header_48462 len rx_header 0 48462 NULL
165407 +enable_so___nla_reserve_nohdr_fndecl_48468 __nla_reserve_nohdr fndecl 2 48468 NULL nohasharray
165408 +enable_so_carl9170_read_mreg_fndecl_48468 carl9170_read_mreg fndecl 2 48468 &enable_so___nla_reserve_nohdr_fndecl_48468
165409 +enable_so_length_acpi_ipmi_buffer_48471 length acpi_ipmi_buffer 0 48471 NULL nohasharray
165410 +enable_so_enclosure_register_fndecl_48471 enclosure_register fndecl 3 48471 &enable_so_length_acpi_ipmi_buffer_48471
165411 +enable_so_gre_manip_pkt_fndecl_48475 gre_manip_pkt fndecl 4 48475 NULL
165412 +enable_so_parport_ieee1284_epp_read_data_fndecl_48478 parport_ieee1284_epp_read_data fndecl 0 48478 NULL
165413 +enable_so_nr_domains_rapl_package_48482 nr_domains rapl_package 0 48482 NULL
165414 +enable_so_xe_value_size_ocfs2_xattr_entry_48485 xe_value_size ocfs2_xattr_entry 0 48485 NULL
165415 +enable_so___roundup_pow_of_two_fndecl_48486 __roundup_pow_of_two fndecl 0 48486 NULL
165416 +enable_so___origin_write_fndecl_48487 __origin_write fndecl 2 48487 NULL nohasharray
165417 +enable_so_addidata_apci7800_setup_fndecl_48487 addidata_apci7800_setup fndecl 4 48487 &enable_so___origin_write_fndecl_48487
165418 +enable_so_sisusb_clear_vram_fndecl_48489 sisusb_clear_vram fndecl 2-3 48489 NULL
165419 +enable_so_l_len_ocfs2_space_resv_48490 l_len ocfs2_space_resv 0 48490 NULL
165420 +enable_so_ieee80211_if_read_flags_fndecl_48493 ieee80211_if_read_flags fndecl 3 48493 NULL
165421 +enable_so_ydepth_sh_veu_format_48498 ydepth sh_veu_format 0 48498 NULL nohasharray
165422 +enable_so_rss_key_write_fndecl_48498 rss_key_write fndecl 3 48498 &enable_so_ydepth_sh_veu_format_48498
165423 +enable_so_ping_v6_sendmsg_fndecl_48499 ping_v6_sendmsg fndecl 3 48499 NULL
165424 +enable_so_encode_filename_fndecl_48501 encode_filename fndecl 3 48501 NULL
165425 +enable_so_len_cfg80211_bss_ies_48503 len cfg80211_bss_ies 0 48503 NULL
165426 +enable_so_sys_pselect6_fndecl_48506 sys_pselect6 fndecl 1 48506 NULL
165427 +enable_so_channels_snd_soc_dai_48509 channels snd_soc_dai 0 48509 NULL
165428 +enable_so_rx_count_kim_data_s_48513 rx_count kim_data_s 0 48513 NULL nohasharray
165429 +enable_so_read_file_skb_rx_fndecl_48513 read_file_skb_rx fndecl 3 48513 &enable_so_rx_count_kim_data_s_48513
165430 +enable_so_get_lr_context_size_fndecl_48518 get_lr_context_size fndecl 0 48518 NULL
165431 +enable_so_octeon_read_device_mem32_fndecl_48520 octeon_read_device_mem32 fndecl 0 48520 NULL
165432 +enable_so_fcoe_get_paged_crc_eof_fndecl_48522 fcoe_get_paged_crc_eof fndecl 2 48522 NULL
165433 +enable_so_copy_in_user_fndecl_48525 copy_in_user fndecl 3 48525 NULL
165434 +enable_so_receive_buf_fndecl_48528 receive_buf fndecl 4 48528 NULL nohasharray
165435 +enable_so_max_sense_bytes_mpt3_ioctl_command_48528 max_sense_bytes mpt3_ioctl_command 0 48528 &enable_so_receive_buf_fndecl_48528
165436 +enable_so_dxfer_len_sg_io_hdr_48532 dxfer_len sg_io_hdr 0 48532 NULL
165437 +enable_so_nilfs_sufile_update_fndecl_48533 nilfs_sufile_update fndecl 2 48533 NULL
165438 +enable_so_ocfs2_write_cluster_fndecl_48536 ocfs2_write_cluster fndecl 2-8 48536 NULL
165439 +enable_so_discard_block_size_cache_48539 discard_block_size cache 0 48539 NULL
165440 +enable_so_tot_len_iphdr_48541 tot_len iphdr 0 48541 NULL
165441 +enable_so_fack_count_tcp_sacktag_state_48543 fack_count tcp_sacktag_state 0 48543 NULL
165442 +enable_so_aid_len_nfc_evt_transaction_48544 aid_len nfc_evt_transaction 0 48544 NULL
165443 +enable_so_cmm_read_fndecl_48547 cmm_read fndecl 3 48547 NULL
165444 +enable_so_dm_stats_create_fndecl_48550 dm_stats_create fndecl 4-2-3-6 48550 NULL
165445 +enable_so_inode_permission_fndecl_48552 inode_permission fndecl 0 48552 NULL nohasharray
165446 +enable_so_max_reply_bytes_mpt2_ioctl_command_48552 max_reply_bytes mpt2_ioctl_command 0 48552 &enable_so_inode_permission_fndecl_48552
165447 +enable_so_dccp_sync_mss_fndecl_48556 dccp_sync_mss fndecl 2 48556 NULL
165448 +enable_so_acpi_dev_get_resources_fndecl_48557 acpi_dev_get_resources fndecl 0 48557 NULL
165449 +enable_so___vlan_vid_add_fndecl_48559 __vlan_vid_add fndecl 3 48559 NULL
165450 +enable_so_eth_header_cache_fndecl_48564 eth_header_cache fndecl 3 48564 NULL nohasharray
165451 +enable_so_internal_depth_MPT2SAS_ADAPTER_48564 internal_depth MPT2SAS_ADAPTER 0 48564 &enable_so_eth_header_cache_fndecl_48564
165452 +enable_so_intel_tile_height_fndecl_48566 intel_tile_height fndecl 0 48566 NULL
165453 +enable_so_init_tag_map_fndecl_48568 init_tag_map fndecl 3 48568 NULL
165454 +enable_so_start_spy_cam_fndecl_48570 start_spy_cam fndecl 0 48570 NULL
165455 +enable_so_len_wep_key_t_48574 len wep_key_t 0 48574 NULL nohasharray
165456 +enable_so_il_dbgfs_force_reset_read_fndecl_48574 il_dbgfs_force_reset_read fndecl 3 48574 &enable_so_len_wep_key_t_48574 nohasharray
165457 +enable_so_wil_read_file_ssid_fndecl_48574 wil_read_file_ssid fndecl 3 48574 &enable_so_il_dbgfs_force_reset_read_fndecl_48574
165458 +enable_so_iomem_reg_shift_old_serial_port_48579 iomem_reg_shift old_serial_port 0 48579 NULL nohasharray
165459 +enable_so_dynamic_fw_traces_read_fndecl_48579 dynamic_fw_traces_read fndecl 3 48579 &enable_so_iomem_reg_shift_old_serial_port_48579
165460 +enable_so_vce_v2_0_bo_size_fndecl_48581 vce_v2_0_bo_size fndecl 0 48581 NULL
165461 +enable_so_tx_ring_size_bnx2x_48584 tx_ring_size bnx2x 0 48584 NULL
165462 +enable_so_rc_position_rpcrdma_read_chunk_48586 rc_position rpcrdma_read_chunk 0 48586 NULL
165463 +enable_so_flow_label_ib_sa_path_rec_48590 flow_label ib_sa_path_rec 0 48590 NULL nohasharray
165464 +enable_so_backup_size_vmw_resource_48590 backup_size vmw_resource 0 48590 &enable_so_flow_label_ib_sa_path_rec_48590
165465 +enable_so_driver_register_fndecl_48593 driver_register fndecl 0 48593 NULL
165466 +enable_so_len_isert_data_buf_48596 len isert_data_buf 0 48596 NULL
165467 +enable_so_wm_adsp_debugfs_wmfw_read_fndecl_48599 wm_adsp_debugfs_wmfw_read fndecl 3 48599 NULL
165468 +enable_so_datalen_atp_info_48607 datalen atp_info 0 48607 NULL nohasharray
165469 +enable_so_aggr_size_tx_agg_rate_read_fndecl_48607 aggr_size_tx_agg_rate_read fndecl 3 48607 &enable_so_datalen_atp_info_48607
165470 +enable_so_count_e8390_pkt_hdr_48610 count e8390_pkt_hdr 0 48610 NULL
165471 +enable_so_mmc_test_prepare_mrq_fndecl_48612 mmc_test_prepare_mrq fndecl 7-6-4 48612 NULL
165472 +enable_so_read_file_spectral_fft_period_fndecl_48618 read_file_spectral_fft_period fndecl 3 48618 NULL
165473 +enable_so_xen_get_max_pages_fndecl_48626 xen_get_max_pages fndecl 0 48626 NULL
165474 +enable_so_crc_eof_offset_fcoe_percpu_s_48630 crc_eof_offset fcoe_percpu_s 0 48630 NULL
165475 +enable_so_bcma_of_get_irq_fndecl_48631 bcma_of_get_irq fndecl 0 48631 NULL
165476 +enable_so_ili210x_read_reg_fndecl_48632 ili210x_read_reg fndecl 4 48632 NULL nohasharray
165477 +enable_so_get_bridge_ifindices_fndecl_48632 get_bridge_ifindices fndecl 0 48632 &enable_so_ili210x_read_reg_fndecl_48632
165478 +enable_so_srcbusirq_mpc_intsrc_48636 srcbusirq mpc_intsrc 0 48636 NULL
165479 +enable_so_nsymbols_dsp_symbol_desc_48638 nsymbols dsp_symbol_desc 0 48638 NULL
165480 +enable_so_check_next_phase_fndecl_48641 check_next_phase fndecl 2 48641 NULL
165481 +enable_so_submit_extent_page_fndecl_48642 submit_extent_page fndecl 7-5-6 48642 NULL nohasharray
165482 +enable_so_savemem_fndecl_48642 savemem fndecl 3 48642 &enable_so_submit_extent_page_fndecl_48642
165483 +enable_so_w_panel_info_48643 w panel_info 0 48643 NULL
165484 +enable_so_ipv6_flowlabel_opt_fndecl_48644 ipv6_flowlabel_opt fndecl 3 48644 NULL nohasharray
165485 +enable_so_slhc_init_fndecl_48644 slhc_init fndecl 1-2 48644 &enable_so_ipv6_flowlabel_opt_fndecl_48644
165486 +enable_so_origin_sectors_cache_48650 origin_sectors cache 0 48650 NULL
165487 +enable_so_libcfs_kvzalloc_cpt_fndecl_48651 libcfs_kvzalloc_cpt fndecl 3 48651 NULL
165488 +enable_so_tx_pvid_qlcnic_adapter_48655 tx_pvid qlcnic_adapter 0 48655 NULL
165489 +enable_so_pkt_len_eth_end_agg_rx_cqe_48658 pkt_len eth_end_agg_rx_cqe 0 48658 NULL nohasharray
165490 +enable_so_length_fw_cdev_send_request_48658 length fw_cdev_send_request 0 48658 &enable_so_pkt_len_eth_end_agg_rx_cqe_48658
165491 +enable_so_mmc_test_rnd_perf_fndecl_48660 mmc_test_rnd_perf fndecl 4 48660 NULL
165492 +enable_so_nn_rs_control_48667 nn rs_control 0 48667 NULL
165493 +enable_so_snd_seq_fifo_new_fndecl_48670 snd_seq_fifo_new fndecl 1 48670 NULL
165494 +enable_so_ep_out_if_usb_card_48678 ep_out if_usb_card 0 48678 NULL
165495 +enable_so_vscan_drm_display_mode_48680 vscan drm_display_mode 0 48680 NULL nohasharray
165496 +enable_so_ext4_bg_num_gdb_fndecl_48680 ext4_bg_num_gdb fndecl 0 48680 &enable_so_vscan_drm_display_mode_48680
165497 +enable_so_simple_transaction_set_fndecl_48684 simple_transaction_set fndecl 2 48684 NULL
165498 +enable_so_max_eqs_mlx4_dev_cap_48689 max_eqs mlx4_dev_cap 0 48689 NULL
165499 +enable_so_sb_dblocks_xfs_sb_48691 sb_dblocks xfs_sb 0 48691 NULL
165500 +enable_so_usCRTC_H_Disp__ATOM_MODE_TIMING_48694 usCRTC_H_Disp _ATOM_MODE_TIMING 0 48694 NULL nohasharray
165501 +enable_so_ib_qib_max_qp_wrs_vardecl_48694 ib_qib_max_qp_wrs vardecl 0 48694 &enable_so_usCRTC_H_Disp__ATOM_MODE_TIMING_48694
165502 +enable_so_max_rds_rings_netxen_adapter_48699 max_rds_rings netxen_adapter 0 48699 NULL nohasharray
165503 +enable_so_make_cpu_key_fndecl_48699 make_cpu_key fndecl 3 48699 &enable_so_max_rds_rings_netxen_adapter_48699
165504 +enable_so_tx_load_fndecl_48707 tx_load fndecl 3 48707 NULL nohasharray
165505 +enable_so_cqe_ib_cq_init_attr_48707 cqe ib_cq_init_attr 0 48707 &enable_so_tx_load_fndecl_48707
165506 +enable_so_sect_count_hfsplus_sb_info_48715 sect_count hfsplus_sb_info 0 48715 NULL
165507 +enable_so_base_gfn_kvm_memory_slot_48716 base_gfn kvm_memory_slot 0 48716 NULL
165508 +enable_so_nci_send_cmd_fndecl_48717 nci_send_cmd fndecl 3 48717 NULL nohasharray
165509 +enable_so_num_cols_vardecl_arcfb_c_48717 num_cols vardecl_arcfb.c 0 48717 &enable_so_nci_send_cmd_fndecl_48717
165510 +enable_so_rx_max_cdc_ncm_ctx_48720 rx_max cdc_ncm_ctx 0 48720 NULL nohasharray
165511 +enable_so_mdata_ofs_cyttsp4_sysinfo_ofs_48720 mdata_ofs cyttsp4_sysinfo_ofs 0 48720 &enable_so_rx_max_cdc_ncm_ctx_48720
165512 +enable_so_ceph_tcp_recvmsg_fndecl_48722 ceph_tcp_recvmsg fndecl 0-3 48722 NULL
165513 +enable_so_vmw_view_add_fndecl_48730 vmw_view_add fndecl 7 48730 NULL
165514 +enable_so_garmin_write_bulk_fndecl_48732 garmin_write_bulk fndecl 3 48732 NULL
165515 +enable_so_can_dlc_can_frame_48738 can_dlc can_frame 0 48738 NULL
165516 +enable_so_bad_peb_count_ubi_device_48741 bad_peb_count ubi_device 0 48741 NULL nohasharray
165517 +enable_so_numEntries__ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table_48741 numEntries _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table 0 48741 &enable_so_bad_peb_count_ubi_device_48741
165518 +enable_so_iommu_size_vardecl_amd_gart_64_c_48749 iommu_size vardecl_amd_gart_64.c 0 48749 NULL
165519 +enable_so_default_value_v4l2_ctrl_48751 default_value v4l2_ctrl 0 48751 NULL
165520 +enable_so_i40evf_allocate_virt_mem_d_fndecl_48753 i40evf_allocate_virt_mem_d fndecl 3 48753 NULL
165521 +enable_so_e_blkno_ocfs2_extent_rec_48756 e_blkno ocfs2_extent_rec 0 48756 NULL nohasharray
165522 +enable_so_bfad_iocmd_port_get_stats_fndecl_48756 bfad_iocmd_port_get_stats fndecl 0 48756 &enable_so_e_blkno_ocfs2_extent_rec_48756
165523 +enable_so_ide_rate_filter_fndecl_48764 ide_rate_filter fndecl 0 48764 NULL
165524 +enable_so_nfree_arena_info_48769 nfree arena_info 0 48769 NULL
165525 +enable_so_read_file_debug_fndecl_48771 read_file_debug fndecl 3 48771 NULL
165526 +enable_so_xmit_size_modem_info_48775 xmit_size modem_info 0 48775 NULL
165527 +enable_so_usable_leb_size_ubi_volume_info_48776 usable_leb_size ubi_volume_info 0 48776 NULL nohasharray
165528 +enable_so_profile_load_fndecl_48776 profile_load fndecl 3 48776 &enable_so_usable_leb_size_ubi_volume_info_48776
165529 +enable_so_cfg80211_mgmt_tx_status_fndecl_48777 cfg80211_mgmt_tx_status fndecl 4 48777 NULL
165530 +enable_so_acpi_ds_build_internal_package_obj_fndecl_48780 acpi_ds_build_internal_package_obj fndecl 3 48780 NULL
165531 +enable_so_height_drm_framebuffer_48781 height drm_framebuffer 0 48781 NULL
165532 +enable_so_value_len_jffs2_xattr_datum_48786 value_len jffs2_xattr_datum 0 48786 NULL nohasharray
165533 +enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786 mwifiex_host_to_card_mp_aggr fndecl 3 48786 &enable_so_value_len_jffs2_xattr_datum_48786 nohasharray
165534 +enable_so_hva_to_pfn_fndecl_48786 hva_to_pfn fndecl 1 48786 &enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786
165535 +enable_so_head_len_cfg80211_beacon_data_48794 head_len cfg80211_beacon_data 0 48794 NULL
165536 +enable_so_unit_size_mspro_sys_info_48796 unit_size mspro_sys_info 0 48796 NULL
165537 +enable_so_len_spi_transfer_48802 len spi_transfer 0 48802 NULL
165538 +enable_so_twl6030_init_irq_fndecl_48804 twl6030_init_irq fndecl 0 48804 NULL
165539 +enable_so_iscsi_decode_text_input_fndecl_48807 iscsi_decode_text_input fndecl 4 48807 NULL
165540 +enable_so_dev_id_rbd_device_48813 dev_id rbd_device 0 48813 NULL
165541 +enable_so_len_pci_vpd_48814 len pci_vpd 0 48814 NULL
165542 +enable_so_r100_mm_rreg_fndecl_48823 r100_mm_rreg fndecl 0 48823 NULL
165543 +enable_so_sharpness_sd_gl860_48824 sharpness sd_gl860 0 48824 NULL
165544 +enable_so_endpoint_pvr2_stream_48828 endpoint pvr2_stream 0 48828 NULL
165545 +enable_so_xbofs_irda_skb_cb_48831 xbofs irda_skb_cb 0 48831 NULL nohasharray
165546 +enable_so_num_vring_48831 num vring 0 48831 &enable_so_xbofs_irda_skb_cb_48831
165547 +enable_so_mic_virtio_copy_from_user_fndecl_48832 mic_virtio_copy_from_user fndecl 3 48832 NULL
165548 +enable_so___generic_file_fsync_fndecl_48835 __generic_file_fsync fndecl 2-3 48835 NULL
165549 +enable_so_osst_init_aux_fndecl_48837 osst_init_aux fndecl 5-6-3 48837 NULL
165550 +enable_so_tx_tx_start_int_templates_read_fndecl_48839 tx_tx_start_int_templates_read fndecl 3 48839 NULL
165551 +enable_so_bfad_iocmd_flash_update_part_fndecl_48840 bfad_iocmd_flash_update_part fndecl 0 48840 NULL
165552 +enable_so_busnum_usb_bus_48843 busnum usb_bus 0 48843 NULL
165553 +enable_so_agf_flcount_xfs_agf_48844 agf_flcount xfs_agf 0 48844 NULL
165554 +enable_so_pcim_iomap_fndecl_48845 pcim_iomap fndecl 3 48845 NULL
165555 +enable_so_ieee80211_if_read_dot11MeshTTL_fndecl_48848 ieee80211_if_read_dot11MeshTTL fndecl 3 48848 NULL
165556 +enable_so_end_io_target_type_48863 end_io target_type 0 48863 NULL
165557 +enable_so_pagefault_single_data_segment_fndecl_48864 pagefault_single_data_segment fndecl 4 48864 NULL
165558 +enable_so_vmalloc_to_sg_fndecl_48865 vmalloc_to_sg fndecl 2 48865 NULL
165559 +enable_so_num_desc_i40e_vsi_48872 num_desc i40e_vsi 0 48872 NULL
165560 +enable_so_log_mtts_per_seg_vardecl_48880 log_mtts_per_seg vardecl 0 48880 NULL
165561 +enable_so_ax25_create_fndecl_48882 ax25_create fndecl 3 48882 NULL nohasharray
165562 +enable_so_skb_ensure_writable_fndecl_48882 skb_ensure_writable fndecl 2 48882 &enable_so_ax25_create_fndecl_48882 nohasharray
165563 +enable_so___copy_from_user_swizzled_fndecl_48882 __copy_from_user_swizzled fndecl 2-4 48882 &enable_so_skb_ensure_writable_fndecl_48882
165564 +enable_so_diva_init_dma_map_fndecl_48883 diva_init_dma_map fndecl 3 48883 NULL nohasharray
165565 +enable_so_memblock_clear_hotplug_fndecl_48883 memblock_clear_hotplug fndecl 2-1 48883 &enable_so_diva_init_dma_map_fndecl_48883
165566 +enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890 cl_in_max_entry_size mvumi_hs_page1 0 48890 NULL nohasharray
165567 +enable_so_bylength_atto_vda_ae_hdr_48890 bylength atto_vda_ae_hdr 0 48890 &enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890
165568 +enable_so_regmap_cache_only_write_file_fndecl_48899 regmap_cache_only_write_file fndecl 3 48899 NULL
165569 +enable_so_radeon_ttm_gtt_read_fndecl_48900 radeon_ttm_gtt_read fndecl 3 48900 NULL
165570 +enable_so_nr_buffers_drm_nouveau_gem_pushbuf_48902 nr_buffers drm_nouveau_gem_pushbuf 0 48902 NULL
165571 +enable_so_RPyLen_hfs_cat_file_48906 RPyLen hfs_cat_file 0 48906 NULL
165572 +enable_so_offset_scatterlist_48908 offset scatterlist 0 48908 NULL nohasharray
165573 +enable_so_max_devices_support_mvumi_hs_page1_48908 max_devices_support mvumi_hs_page1 0 48908 &enable_so_offset_scatterlist_48908
165574 +enable_so_ucNumEntries__StateArray_48910 ucNumEntries _StateArray 0 48910 NULL
165575 +enable_so_iscsit_tpg_set_initiator_node_queue_depth_fndecl_48914 iscsit_tpg_set_initiator_node_queue_depth fndecl 3 48914 NULL
165576 +enable_so_s_groups_count_ext2_sb_info_48915 s_groups_count ext2_sb_info 0 48915 NULL
165577 +enable_so_tailsz_cifs_readdata_48919 tailsz cifs_readdata 0 48919 NULL
165578 +enable_so_minix_iget_fndecl_48927 minix_iget fndecl 2 48927 NULL
165579 +enable_so__scif_nodeqp_send_fndecl_48929 _scif_nodeqp_send fndecl 0 48929 NULL
165580 +enable_so_write_file_operations_48930 write file_operations 0 48930 NULL nohasharray
165581 +enable_so_rx_ring_count_ixgbevf_adapter_48930 rx_ring_count ixgbevf_adapter 0 48930 &enable_so_write_file_operations_48930
165582 +enable_so_iio_read_first_n_kfifo_fndecl_48933 iio_read_first_n_kfifo fndecl 2 48933 NULL
165583 +enable_so_min_inp_pixsize_fimc_variant_48943 min_inp_pixsize fimc_variant 0 48943 NULL nohasharray
165584 +enable_so_w1_reply_len_fndecl_48943 w1_reply_len fndecl 0 48943 &enable_so_min_inp_pixsize_fimc_variant_48943
165585 +enable_so_set_dma_reserve_fndecl_48948 set_dma_reserve fndecl 1 48948 NULL nohasharray
165586 +enable_so_start_mthca_resource_48948 start mthca_resource 0 48948 &enable_so_set_dma_reserve_fndecl_48948
165587 +enable_so_to_index_fndecl_48953 to_index fndecl 0 48953 NULL
165588 +enable_so_xt_alloc_table_info_fndecl_48956 xt_alloc_table_info fndecl 1 48956 NULL
165589 +enable_so_user_dlm_lock_fndecl_48959 user_dlm_lock fndecl 6 48959 NULL nohasharray
165590 +enable_so_wptr_radeon_ring_48959 wptr radeon_ring 0 48959 &enable_so_user_dlm_lock_fndecl_48959
165591 +enable_so_xfs_mru_cache_create_fndecl_48964 xfs_mru_cache_create fndecl 3 48964 NULL nohasharray
165592 +enable_so_num_requests_vardecl_48964 num_requests vardecl 0 48964 &enable_so_xfs_mru_cache_create_fndecl_48964
165593 +enable_so_SyS_io_setup_fndecl_48965 SyS_io_setup fndecl 1 48965 NULL
165594 +enable_so_block_size_sm_ftl_48967 block_size sm_ftl 0 48967 NULL
165595 +enable_so_key_algorithm_read_fndecl_48969 key_algorithm_read fndecl 3 48969 NULL
165596 +enable_so_rx_fndecl_48971 rx fndecl 4 48971 NULL
165597 +enable_so_twl_i2c_write_fndecl_48976 twl_i2c_write fndecl 0 48976 NULL
165598 +enable_so_mwifiex_hscfg_read_fndecl_48979 mwifiex_hscfg_read fndecl 3 48979 NULL
165599 +enable_so_num_packet_sock_48980 num packet_sock 0 48980 NULL
165600 +enable_so_pkt_overhead_pktgen_dev_48989 pkt_overhead pktgen_dev 0 48989 NULL
165601 +enable_so_sel_read_handle_unknown_fndecl_48990 sel_read_handle_unknown fndecl 3 48990 NULL
165602 +enable_so_iov_iter_npages_fndecl_49000 iov_iter_npages fndecl 0-2 49000 NULL nohasharray
165603 +enable_so_pid_task_struct_49000 pid task_struct 0 49000 &enable_so_iov_iter_npages_fndecl_49000
165604 +enable_so_rec_len_exofs_dir_entry_49002 rec_len exofs_dir_entry 0 49002 NULL
165605 +enable_so_size_mlx4_en_tx_ring_49005 size mlx4_en_tx_ring 0 49005 NULL
165606 +enable_so_ip_set_alloc_fndecl_49010 ip_set_alloc fndecl 1 49010 NULL
165607 +enable_so_bm_len_xfs_buf_map_49022 bm_len xfs_buf_map 0 49022 NULL
165608 +enable_so_rx_reset_counter_read_fndecl_49026 rx_reset_counter_read fndecl 3 49026 NULL
165609 +enable_so_usb_dmac_prep_slave_sg_fndecl_49027 usb_dmac_prep_slave_sg fndecl 3 49027 NULL
165610 +enable_so_size_vmw_otable_49032 size vmw_otable 0 49032 NULL
165611 +enable_so___ip6_append_data_fndecl_49037 __ip6_append_data fndecl 10-9 49037 NULL
165612 +enable_so_dev_id_rfcomm_dev_req_49039 dev_id rfcomm_dev_req 0 49039 NULL
165613 +enable_so_reg_r_fndecl_49040 reg_r fndecl 0 49040 NULL
165614 +enable_so_dwMaxVideoFrameSize_uvc_streaming_control_49044 dwMaxVideoFrameSize uvc_streaming_control 0 49044 NULL
165615 +enable_so_devices_per_bus__MPT_ADAPTER_49051 devices_per_bus _MPT_ADAPTER 0 49051 NULL nohasharray
165616 +enable_so_devno_skd_device_49051 devno skd_device 0 49051 &enable_so_devices_per_bus__MPT_ADAPTER_49051
165617 +enable_so_cxacru_cm_fndecl_49052 cxacru_cm fndecl 4 49052 NULL
165618 +enable_so_iguanair_send_fndecl_49054 iguanair_send fndecl 2 49054 NULL
165619 +enable_so_route_key_size_nf_afinfo_49055 route_key_size nf_afinfo 0 49055 NULL
165620 +enable_so_ide_pio_bytes_fndecl_49063 ide_pio_bytes fndecl 4 49063 NULL
165621 +enable_so_cm_size_tp_params_49065 cm_size tp_params 0 49065 NULL
165622 +enable_so_transport_mtu_vardecl_ntb_transport_c_49067 transport_mtu vardecl_ntb_transport.c 0 49067 NULL
165623 +enable_so_do_writepage_fndecl_49068 do_writepage fndecl 2 49068 NULL
165624 +enable_so_iwl_dbgfs_ucode_rx_stats_read_fndecl_49076 iwl_dbgfs_ucode_rx_stats_read fndecl 3 49076 NULL
165625 +enable_so_ccid_hc_tx_obj_size_ccid_operations_49077 ccid_hc_tx_obj_size ccid_operations 0 49077 NULL
165626 +enable_so_max_ctrl_pkt_payload_len_nci_core_conn_create_rsp_49079 max_ctrl_pkt_payload_len nci_core_conn_create_rsp 0 49079 NULL
165627 +enable_so_tty_major_vardecl_hso_c_49084 tty_major vardecl_hso.c 0 49084 NULL
165628 +enable_so_dev_priv_size_drm_buf_49086 dev_priv_size drm_buf 0 49086 NULL
165629 +enable_so_optrom_region_size_qla_hw_data_49087 optrom_region_size qla_hw_data 0 49087 NULL
165630 +enable_so_ocfs2_find_leaf_fndecl_49090 ocfs2_find_leaf fndecl 0 49090 NULL nohasharray
165631 +enable_so_bi_vcnt_bio_49090 bi_vcnt bio 0 49090 &enable_so_ocfs2_find_leaf_fndecl_49090
165632 +enable_so_ocfs2_mv_xattr_bucket_cross_cluster_fndecl_49091 ocfs2_mv_xattr_bucket_cross_cluster fndecl 5-6 49091 NULL
165633 +enable_so_end_sector_dev_info_49096 end_sector dev_info 0 49096 NULL nohasharray
165634 +enable_so_misc_sbp_command_block_orb_49096 misc sbp_command_block_orb 0 49096 &enable_so_end_sector_dev_info_49096
165635 +enable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 4 49098 NULL
165636 +enable_so_usb_stor_acquire_resources_fndecl_49100 usb_stor_acquire_resources fndecl 0 49100 NULL nohasharray
165637 +enable_so_cm4040_write_fndecl_49100 cm4040_write fndecl 3 49100 &enable_so_usb_stor_acquire_resources_fndecl_49100
165638 +enable_so_xdr_align_pages_fndecl_49102 xdr_align_pages fndecl 0-2 49102 NULL
165639 +enable_so_ri_super_root_nilfs_recovery_info_49105 ri_super_root nilfs_recovery_info 0 49105 NULL
165640 +enable_so_vmci_qpair_alloc_fndecl_49107 vmci_qpair_alloc fndecl 4-3 49107 NULL nohasharray
165641 +enable_so_qnx6_block_map_fndecl_49107 qnx6_block_map fndecl 0 49107 &enable_so_vmci_qpair_alloc_fndecl_49107
165642 +enable_so_ino_kernfs_node_49113 ino kernfs_node 0 49113 NULL
165643 +enable_so_vxlan_fdb_create_fndecl_49127 vxlan_fdb_create fndecl 7 49127 NULL
165644 +enable_so_alloc_rbio_fndecl_49128 alloc_rbio fndecl 3 49128 NULL
165645 +enable_so_m_ialloc_min_blks_xfs_mount_49129 m_ialloc_min_blks xfs_mount 0 49129 NULL
165646 +enable_so_mad_seg_size_ib_mad_recv_wc_49134 mad_seg_size ib_mad_recv_wc 0 49134 NULL
165647 +enable_so_neo_init_hw_fndecl_49135 neo_init_hw fndecl 0 49135 NULL
165648 +enable_so_snd_pcm_hw_param_min_fndecl_49139 snd_pcm_hw_param_min fndecl 4 49139 NULL
165649 +enable_so_batch_len_drm_i915_gem_execbuffer2_49145 batch_len drm_i915_gem_execbuffer2 0 49145 NULL
165650 +enable_so_fll_out_wm8900_priv_49147 fll_out wm8900_priv 0 49147 NULL
165651 +enable_so_max_dev_mdp_superblock_1_49148 max_dev mdp_superblock_1 0 49148 NULL
165652 +enable_so_ufx_reg_clear_and_set_bits_fndecl_49150 ufx_reg_clear_and_set_bits fndecl 0 49150 NULL
165653 +enable_so_ecryptfs_inode_newsize_ok_fndecl_49153 ecryptfs_inode_newsize_ok fndecl 2 49153 NULL
165654 +enable_so_port_mlx4_ib_demux_pv_ctx_49165 port mlx4_ib_demux_pv_ctx 0 49165 NULL
165655 +enable_so_d_size_p_sizes_49167 d_size p_sizes 0 49167 NULL
165656 +enable_so_tx_tr_cfv_info_49171 tx_tr cfv_info 0 49171 NULL
165657 +enable_so_ipr_alloc_ucode_buffer_fndecl_49172 ipr_alloc_ucode_buffer fndecl 1 49172 NULL
165658 +enable_so_nilfs_sufile_do_cancel_free_fndecl_49183 nilfs_sufile_do_cancel_free fndecl 2 49183 NULL
165659 +enable_so_s_last_ino_logfs_super_49185 s_last_ino logfs_super 0 49185 NULL
165660 +enable_so_len_fb_cmap_user_49195 len fb_cmap_user 0 49195 NULL
165661 +enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197 fsl_edma_prep_dma_cyclic fndecl 4-2-3 49197 NULL nohasharray
165662 +enable_so_of_get_child_count_fndecl_49197 of_get_child_count fndecl 0 49197 &enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197
165663 +enable_so_offset_page_chunk_49201 offset page_chunk 0 49201 NULL
165664 +enable_so_ocrdma_dbgfs_ops_read_fndecl_49211 ocrdma_dbgfs_ops_read fndecl 3 49211 NULL
165665 +enable_so_osst_read_fndecl_49214 osst_read fndecl 3 49214 NULL
165666 +enable_so_i_pos_low_fat_fid_49216 i_pos_low fat_fid 0 49216 NULL nohasharray
165667 +enable_so_nleft_ide_cmd_49216 nleft ide_cmd 0 49216 &enable_so_i_pos_low_fat_fid_49216 nohasharray
165668 +enable_so_usbnet_read_cmd_fndecl_49216 usbnet_read_cmd fndecl 7 49216 &enable_so_nleft_ide_cmd_49216
165669 +enable_so_rx_xfr_hint_trig_read_fndecl_49224 rx_xfr_hint_trig_read fndecl 3 49224 NULL
165670 +enable_so_offset_rq_map_data_49234 offset rq_map_data 0 49234 NULL nohasharray
165671 +enable_so_bfad_iocmd_fcpim_cfg_profile_fndecl_49234 bfad_iocmd_fcpim_cfg_profile fndecl 0 49234 &enable_so_offset_rq_map_data_49234
165672 +enable_so_rs_sta_dbgfs_scale_table_read_fndecl_49237 rs_sta_dbgfs_scale_table_read fndecl 3 49237 NULL
165673 +enable_so_ext_ramdisk_image_boot_params_49238 ext_ramdisk_image boot_params 0 49238 NULL
165674 +enable_so_mos7840_write_fndecl_49240 mos7840_write fndecl 4 49240 NULL
165675 +enable_so_persistent_ram_iomap_fndecl_49243 persistent_ram_iomap fndecl 2-1 49243 NULL
165676 +enable_so_ext2_fiemap_fndecl_49244 ext2_fiemap fndecl 4 49244 NULL
165677 +enable_so_dmpt_entry_sz_mlx4_dev_cap_49245 dmpt_entry_sz mlx4_dev_cap 0 49245 NULL
165678 +enable_so_xfs_map_buffer_fndecl_49246 xfs_map_buffer fndecl 4 49246 NULL
165679 +enable_so_mppe_compress_fndecl_49248 mppe_compress fndecl 4 49248 NULL
165680 +enable_so_nfs_file_llseek_fndecl_49249 nfs_file_llseek fndecl 2 49249 NULL
165681 +enable_so_fifo_reserve_size_vmw_kms_dirty_49255 fifo_reserve_size vmw_kms_dirty 0 49255 NULL
165682 +enable_so_rdmarc_shift_mlx4_qp_table_49259 rdmarc_shift mlx4_qp_table 0 49259 NULL
165683 +enable_so_di_size_qnx4_inode_entry_49263 di_size qnx4_inode_entry 0 49263 NULL
165684 +enable_so_rate_floppy_struct_49273 rate floppy_struct 0 49273 NULL
165685 +enable_so_dwDefaultFrameInterval_uvc_frame_49276 dwDefaultFrameInterval uvc_frame 0 49276 NULL
165686 +enable_so_name_len_audit_names_49277 name_len audit_names 0 49277 NULL
165687 +enable_so_of_irq_parse_raw_fndecl_49280 of_irq_parse_raw fndecl 0 49280 NULL
165688 +enable_so_ib_get_mad_data_offset_fndecl_49283 ib_get_mad_data_offset fndecl 0 49283 NULL
165689 +enable_so_idetape_blkdev_ioctl_fndecl_49292 idetape_blkdev_ioctl fndecl 0 49292 NULL
165690 +enable_so_header_length_ipr_ucode_image_header_49294 header_length ipr_ucode_image_header 0 49294 NULL nohasharray
165691 +enable_so_alloc_dev_fndecl_49294 alloc_dev fndecl 1 49294 &enable_so_header_length_ipr_ucode_image_header_49294
165692 +enable_so_bTransferSegment_wa_xfer_result_49303 bTransferSegment wa_xfer_result 0 49303 NULL
165693 +enable_so_SAL_nasids_size_xpc_rsvd_page_49304 SAL_nasids_size xpc_rsvd_page 0 49304 NULL
165694 +enable_so_splice_direct_to_actor_fndecl_49310 splice_direct_to_actor fndecl 0 49310 NULL
165695 +enable_so_membase_avmcard_49314 membase avmcard 0 49314 NULL
165696 +enable_so_get_chars_fndecl_49318 get_chars fndecl 3 49318 NULL
165697 +enable_so_filternum_dmxdev_49322 filternum dmxdev 0 49322 NULL nohasharray
165698 +enable_so_via_cputemp_device_add_fndecl_49322 via_cputemp_device_add fndecl 1 49322 &enable_so_filternum_dmxdev_49322
165699 +enable_so_cmtp_sock_create_fndecl_49326 cmtp_sock_create fndecl 3 49326 NULL
165700 +enable_so_fwnet_incoming_packet_fndecl_49327 fwnet_incoming_packet fndecl 3 49327 NULL
165701 +enable_so_ocfs2_release_clusters_fndecl_49328 ocfs2_release_clusters fndecl 4 49328 NULL
165702 +enable_so_length_iwl_wipan_noa_data_49332 length iwl_wipan_noa_data 0 49332 NULL
165703 +enable_so_cmnd_res_ep_vub300_mmc_host_49334 cmnd_res_ep vub300_mmc_host 0 49334 NULL
165704 +enable_so_event_rx_mem_empty_read_fndecl_49336 event_rx_mem_empty_read fndecl 3 49336 NULL
165705 +enable_so_s3fwrn5_fw_enter_update_mode_fndecl_49342 s3fwrn5_fw_enter_update_mode fndecl 3-5 49342 NULL
165706 +enable_so_vxlan_xmit_skb_fndecl_49345 vxlan_xmit_skb fndecl 11 49345 NULL
165707 +enable_so_db_handle_buf_size_vmci_ctx_notify_recv_info_49346 db_handle_buf_size vmci_ctx_notify_recv_info 0 49346 NULL
165708 +enable_so_mute_bttv_49358 mute bttv 0 49358 NULL
165709 +enable_so_num_msix_entries_qib_chip_specific_49373 num_msix_entries qib_chip_specific 0 49373 NULL
165710 +enable_so_fsbcount_xfs_da_geometry_49380 fsbcount xfs_da_geometry 0 49380 NULL nohasharray
165711 +enable_so_x509_akid_note_serial_fndecl_49380 x509_akid_note_serial fndecl 5 49380 &enable_so_fsbcount_xfs_da_geometry_49380
165712 +enable_so_pe_data_len_ip_vs_conn_49384 pe_data_len ip_vs_conn 0 49384 NULL
165713 +enable_so_short_mark_sd_49388 short_mark sd 0 49388 NULL
165714 +enable_so_pci_iov_resource_size_fndecl_49389 pci_iov_resource_size fndecl 0 49389 NULL
165715 +enable_so_exofs_nfs_get_inode_fndecl_49391 exofs_nfs_get_inode fndecl 2 49391 NULL
165716 +enable_so_ecryptfs_read_lower_fndecl_49392 ecryptfs_read_lower fndecl 3 49392 NULL
165717 +enable_so_current_font_height_sisusb_usb_data_49394 current_font_height sisusb_usb_data 0 49394 NULL nohasharray
165718 +enable_so_usb_ftdi_elan_edset_empty_fndecl_49394 usb_ftdi_elan_edset_empty fndecl 0 49394 &enable_so_current_font_height_sisusb_usb_data_49394 nohasharray
165719 +enable_so_send_cmd_iwl_trans_ops_49394 send_cmd iwl_trans_ops 0 49394 &enable_so_usb_ftdi_elan_edset_empty_fndecl_49394
165720 +enable_so_max_exp_lines_ov965x_framesize_49400 max_exp_lines ov965x_framesize 0 49400 NULL
165721 +enable_so_tty_prepare_flip_string_fndecl_49408 tty_prepare_flip_string fndecl 3 49408 NULL
165722 +enable_so_ss_next_nilfs_segment_summary_49410 ss_next nilfs_segment_summary 0 49410 NULL nohasharray
165723 +enable_so_pnp_register_port_resource_fndecl_49410 pnp_register_port_resource fndecl 6-3-5 49410 &enable_so_ss_next_nilfs_segment_summary_49410
165724 +enable_so_lstcon_group_list_fndecl_49413 lstcon_group_list fndecl 2 49413 NULL
165725 +enable_so_base_doorbell_index_nes_device_49415 base_doorbell_index nes_device 0 49415 NULL nohasharray
165726 +enable_so_size_efx_farch_filter_table_49415 size efx_farch_filter_table 0 49415 &enable_so_base_doorbell_index_nes_device_49415
165727 +enable_so_bio_chain_clone_range_fndecl_49420 bio_chain_clone_range fndecl 3 49420 NULL
165728 +enable_so_tipc_msg_build_fndecl_49424 tipc_msg_build fndecl 4-5 49424 NULL
165729 +enable_so_ds_out_channels_hdsp_49429 ds_out_channels hdsp 0 49429 NULL
165730 +enable_so_onenand_write_oob_fndecl_49431 onenand_write_oob fndecl 2 49431 NULL
165731 +enable_so_fwnet_pd_new_fndecl_49432 fwnet_pd_new fndecl 4 49432 NULL nohasharray
165732 +enable_so_set_run_fndecl_49432 set_run fndecl 2 49432 &enable_so_fwnet_pd_new_fndecl_49432 nohasharray
165733 +enable_so_bytenr_tree_block_49432 bytenr tree_block 0 49432 &enable_so_set_run_fndecl_49432
165734 +enable_so_main_segments_f2fs_sm_info_49433 main_segments f2fs_sm_info 0 49433 NULL
165735 +enable_so_nr_ndevs_vardecl_af_netrom_c_49435 nr_ndevs vardecl_af_netrom.c 0 49435 NULL
165736 +enable_so_mthca_array_init_fndecl_49440 mthca_array_init fndecl 2 49440 NULL
165737 +enable_so_fw_device_op_read_fndecl_49445 fw_device_op_read fndecl 3 49445 NULL
165738 +enable_so_perf_output_copy_fndecl_49448 perf_output_copy fndecl 3 49448 NULL
165739 +enable_so_global_irq_acpi_madt_interrupt_override_49451 global_irq acpi_madt_interrupt_override 0 49451 NULL
165740 +enable_so_get_setup_data_total_num_fndecl_49455 get_setup_data_total_num fndecl 1 49455 NULL nohasharray
165741 +enable_so_dwc3_readl_fndecl_49455 dwc3_readl fndecl 0 49455 &enable_so_get_setup_data_total_num_fndecl_49455
165742 +enable_so_rtl2832_regmap_write_fndecl_49456 rtl2832_regmap_write fndecl 3 49456 NULL
165743 +enable_so_dma_push_rx_fndecl_49462 dma_push_rx fndecl 2 49462 NULL
165744 +enable_so_minix_inode_by_name_fndecl_49464 minix_inode_by_name fndecl 0 49464 NULL
165745 +enable_so_NumberOfPorts_mpt2sas_facts_49465 NumberOfPorts mpt2sas_facts 0 49465 NULL nohasharray
165746 +enable_so_ch_count_srp_target_port_49465 ch_count srp_target_port 0 49465 &enable_so_NumberOfPorts_mpt2sas_facts_49465
165747 +enable_so_usb_tx_block_fndecl_49466 usb_tx_block fndecl 3 49466 NULL
165748 +enable_so_broadsheetfb_write_fndecl_49467 broadsheetfb_write fndecl 3 49467 NULL
165749 +enable_so_len_r6040_descriptor_49471 len r6040_descriptor 0 49471 NULL
165750 +enable_so_s_cblkno_ufs_sb_private_info_49472 s_cblkno ufs_sb_private_info 0 49472 NULL
165751 +enable_so_xen_hvm_config_fndecl_49473 xen_hvm_config fndecl 2 49473 NULL
165752 +enable_so_ks8995_read_fndecl_49475 ks8995_read fndecl 4 49475 NULL
165753 +enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476 nf_nat_icmpv6_reply_translation fndecl 5 49476 NULL nohasharray
165754 +enable_so_ivtvfb_write_fndecl_49476 ivtvfb_write fndecl 3 49476 &enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476
165755 +enable_so_make_rx_response_fndecl_49477 make_rx_response fndecl 5-4-3 49477 NULL
165756 +enable_so_mc_mask_amdgpu_mc_49478 mc_mask amdgpu_mc 0 49478 NULL nohasharray
165757 +enable_so_rpc_max_payload_fndecl_49478 rpc_max_payload fndecl 0 49478 &enable_so_mc_mask_amdgpu_mc_49478
165758 +enable_so_max_queue_depth_vardecl_mpt2sas_base_c_49479 max_queue_depth vardecl_mpt2sas_base.c 0 49479 NULL
165759 +enable_so_i2c_readn_fndecl_49490 i2c_readn fndecl 4 49490 NULL
165760 +enable_so_xfs_file_llseek_fndecl_49492 xfs_file_llseek fndecl 2 49492 NULL
165761 +enable_so_din_xfer_len_sg_io_v4_49498 din_xfer_len sg_io_v4 0 49498 NULL
165762 +enable_so_smb_send_fndecl_49500 smb_send fndecl 3 49500 NULL
165763 +enable_so_usCRTC_H_Total__ATOM_MODE_TIMING_49501 usCRTC_H_Total _ATOM_MODE_TIMING 0 49501 NULL
165764 +enable_so_intel_framebuffer_create_for_mode_fndecl_49508 intel_framebuffer_create_for_mode fndecl 4 49508 NULL nohasharray
165765 +enable_so_l2cap_create_iframe_pdu_fndecl_49508 l2cap_create_iframe_pdu fndecl 3 49508 &enable_so_intel_framebuffer_create_for_mode_fndecl_49508 nohasharray
165766 +enable_so___bnx2x_get_preset_regs_len_fndecl_49508 __bnx2x_get_preset_regs_len fndecl 0 49508 &enable_so_l2cap_create_iframe_pdu_fndecl_49508 nohasharray
165767 +enable_so_add_tty_fndecl_49508 add_tty fndecl 1 49508 &enable_so___bnx2x_get_preset_regs_len_fndecl_49508
165768 +enable_so_tx_blk_size_rsi_91x_sdiodev_49511 tx_blk_size rsi_91x_sdiodev 0 49511 NULL
165769 +enable_so_usbvision_write_reg_irq_fndecl_49516 usbvision_write_reg_irq fndecl 4 49516 NULL
165770 +enable_so_buf_size_sge_fl_49517 buf_size sge_fl 0 49517 NULL
165771 +enable_so_Zmin_hfc_multi_49520 Zmin hfc_multi 0 49520 NULL
165772 +enable_so_log_mtts_per_seg_vardecl_mthca_main_c_49524 log_mtts_per_seg vardecl_mthca_main.c 0 49524 NULL
165773 +enable_so_num_eps_bdc_49525 num_eps bdc 0 49525 NULL nohasharray
165774 +enable_so_datablob_hmac_append_fndecl_49525 datablob_hmac_append fndecl 3 49525 &enable_so_num_eps_bdc_49525
165775 +enable_so_mtt_entry_sz_mlx4_caps_49531 mtt_entry_sz mlx4_caps 0 49531 NULL
165776 +enable_so_num_connector_drm_atomic_state_49542 num_connector drm_atomic_state 0 49542 NULL
165777 +enable_so_disk_offset_pnfs_block_dev_map_49546 disk_offset pnfs_block_dev_map 0 49546 NULL
165778 +enable_so_oobavail_nand_ecclayout_49548 oobavail nand_ecclayout 0 49548 NULL
165779 +enable_so_lpfc_debugfs_hbqinfo_data_fndecl_49551 lpfc_debugfs_hbqinfo_data fndecl 0 49551 NULL
165780 +enable_so_ioremap_wt_fndecl_49562 ioremap_wt fndecl 2-1 49562 NULL
165781 +enable_so_nrs_num_pols_ptlrpc_nrs_49564 nrs_num_pols ptlrpc_nrs 0 49564 NULL
165782 +enable_so_nilfs_mdt_delete_block_fndecl_49565 nilfs_mdt_delete_block fndecl 2 49565 NULL
165783 +enable_so_max_cm_mtu_ipoib_cm_dev_priv_49566 max_cm_mtu ipoib_cm_dev_priv 0 49566 NULL
165784 +enable_so_xfs_insert_file_space_fndecl_49569 xfs_insert_file_space fndecl 2-3 49569 NULL
165785 +enable_so_hpi_cmd_mmc_ext_csd_49585 hpi_cmd mmc_ext_csd 0 49585 NULL
165786 +enable_so_ncp_request2_fndecl_49589 ncp_request2 fndecl 4 49589 NULL
165787 +enable_so_ssid_length_beacon_format_49591 ssid_length beacon_format 0 49591 NULL
165788 +enable_so_xfs_rtbuf_get_fndecl_49592 xfs_rtbuf_get fndecl 3 49592 NULL
165789 +enable_so_tag_enabled_ocrdma_ae_pvid_mcqe_49596 tag_enabled ocrdma_ae_pvid_mcqe 0 49596 NULL
165790 +enable_so_width_vim2m_q_data_49600 width vim2m_q_data 0 49600 NULL
165791 +enable_so_iwch_alloc_fastreg_pbl_fndecl_49610 iwch_alloc_fastreg_pbl fndecl 2 49610 NULL
165792 +enable_so_pt_write_fndecl_49612 pt_write fndecl 3 49612 NULL
165793 +enable_so_hsync_start_drm_display_mode_49613 hsync_start drm_display_mode 0 49613 NULL nohasharray
165794 +enable_so_start_drm_mm_node_49613 start drm_mm_node 0 49613 &enable_so_hsync_start_drm_display_mode_49613
165795 +enable_so_ocfs2_sync_file_fndecl_49614 ocfs2_sync_file fndecl 2-3 49614 NULL
165796 +enable_so_spare_bytes_per_page_nand_onfi_params_49617 spare_bytes_per_page nand_onfi_params 0 49617 NULL
165797 +enable_so_lengthExtendedAttr_extendedFileEntry_49618 lengthExtendedAttr extendedFileEntry 0 49618 NULL
165798 +enable_so_write_cmd_usb_fndecl_49619 write_cmd_usb fndecl 3 49619 NULL
165799 +enable_so_ieee80211_tdls_add_setup_cfm_ies_fndecl_49620 ieee80211_tdls_add_setup_cfm_ies fndecl 6 49620 NULL
165800 +enable_so_size_ethtool_perm_addr_49621 size ethtool_perm_addr 0 49621 NULL
165801 +enable_so_reg_read_range_fndecl_49623 reg_read_range fndecl 4-0 49623 NULL nohasharray
165802 +enable_so_dwc2_max_desc_num_fndecl_49623 dwc2_max_desc_num fndecl 0 49623 &enable_so_reg_read_range_fndecl_49623
165803 +enable_so_end_async_cow_49625 end async_cow 0 49625 NULL nohasharray
165804 +enable_so_nn_nvme_id_ctrl_49625 nn nvme_id_ctrl 0 49625 &enable_so_end_async_cow_49625
165805 +enable_so_ath10k_write_simulate_fw_crash_fndecl_49628 ath10k_write_simulate_fw_crash fndecl 3 49628 NULL
165806 +enable_so_srsize_brcmf_chip_49639 srsize brcmf_chip 0 49639 NULL
165807 +enable_so_list_size_of_flash_49643 list_size of_flash 0 49643 NULL
165808 +enable_so_stride_mlx4_en_priv_49644 stride mlx4_en_priv 0 49644 NULL
165809 +enable_so_start_io_failure_record_49645 start io_failure_record 0 49645 NULL
165810 +enable_so_align_resource_constraint_49647 align resource_constraint 0 49647 NULL nohasharray
165811 +enable_so_iocbq_lookup_len_lpfc_sli_49647 iocbq_lookup_len lpfc_sli 0 49647 &enable_so_align_resource_constraint_49647
165812 +enable_so_mlx4_alloc_icm_pages_fndecl_49658 mlx4_alloc_icm_pages fndecl 2 49658 NULL
165813 +enable_so_dwMaxPayloadTransferSize_uvc_streaming_control_49668 dwMaxPayloadTransferSize uvc_streaming_control 0 49668 NULL
165814 +enable_so_bytes_ubi_leb_change_req_49669 bytes ubi_leb_change_req 0 49669 NULL
165815 +enable_so_smiapp_read_no_quirk_fndecl_49670 smiapp_read_no_quirk fndecl 2 49670 NULL
165816 +enable_so_size_unit_element_struct_49673 size unit_element_struct 0 49673 NULL
165817 +enable_so_intel_gtt_map_memory_fndecl_49677 intel_gtt_map_memory fndecl 2 49677 NULL
165818 +enable_so_port_priv_size_team_mode_49682 port_priv_size team_mode 0 49682 NULL
165819 +enable_so_clk_core_get_rate_nolock_fndecl_49685 clk_core_get_rate_nolock fndecl 0 49685 NULL
165820 +enable_so_subsampling_s5p_jpeg_fmt_49688 subsampling s5p_jpeg_fmt 0 49688 NULL nohasharray
165821 +enable_so___seq_open_private_fndecl_49688 __seq_open_private fndecl 3 49688 &enable_so_subsampling_s5p_jpeg_fmt_49688
165822 +enable_so_report_size_iowarrior_49692 report_size iowarrior 0 49692 NULL nohasharray
165823 +enable_so_set_extent_bit_fndecl_49692 set_extent_bit fndecl 3-2 49692 &enable_so_report_size_iowarrior_49692
165824 +enable_so_slider_num_ad714x_platform_data_49695 slider_num ad714x_platform_data 0 49695 NULL
165825 +enable_so_security_inode_listxattr_fndecl_49699 security_inode_listxattr fndecl 0 49699 NULL
165826 +enable_so_s_segshift_logfs_super_49707 s_segshift logfs_super 0 49707 NULL
165827 +enable_so_pg_write_fndecl_49709 pg_write fndecl 3 49709 NULL
165828 +enable_so_ieee80211_if_read_rc_rateidx_vht_mcs_mask_5ghz_fndecl_49710 ieee80211_if_read_rc_rateidx_vht_mcs_mask_5ghz fndecl 3 49710 NULL
165829 +enable_so_end_resource_49712 end resource 0 49712 NULL
165830 +enable_so_fuse_readpages_fndecl_49714 fuse_readpages fndecl 4 49714 NULL
165831 +enable_so_brd_init_one_fndecl_49718 brd_init_one fndecl 1 49718 NULL
165832 +enable_so_geneve_build_skb_fndecl_49723 geneve_build_skb fndecl 5 49723 NULL nohasharray
165833 +enable_so_xfs_iext_remove_direct_fndecl_49723 xfs_iext_remove_direct fndecl 3 49723 &enable_so_geneve_build_skb_fndecl_49723
165834 +enable_so_sof_len_sd_49729 sof_len sd 0 49729 NULL
165835 +enable_so_num_uars_mthca_limits_49735 num_uars mthca_limits 0 49735 NULL
165836 +enable_so_pyra_sysfs_read_fndecl_49736 pyra_sysfs_read fndecl 6 49736 NULL
165837 +enable_so_wqe_size_ib_uverbs_post_recv_49738 wqe_size ib_uverbs_post_recv 0 49738 NULL
165838 +enable_so_xfs_bmap_split_extent_fndecl_49740 xfs_bmap_split_extent fndecl 2 49740 NULL
165839 +enable_so_kernfs_fop_read_fndecl_49745 kernfs_fop_read fndecl 3 49745 NULL
165840 +enable_so_ts_packet_size_saa7164_port_49752 ts_packet_size saa7164_port 0 49752 NULL
165841 +enable_so_hpfs_add_dirent_fndecl_49754 hpfs_add_dirent fndecl 3 49754 NULL
165842 +enable_so_provider_in_words_ib_uverbs_ex_cmd_hdr_49757 provider_in_words ib_uverbs_ex_cmd_hdr 0 49757 NULL
165843 +enable_so_ngroups_netlink_sock_49758 ngroups netlink_sock 0 49758 NULL
165844 +enable_so_match_size_compat_ebt_entry_mwt_49763 match_size compat_ebt_entry_mwt 0 49763 NULL
165845 +enable_so_nl80211_send_roamed_fndecl_49770 nl80211_send_roamed fndecl 5-7 49770 NULL
165846 +enable_so_dwFrameInterval_uvc_streaming_control_49771 dwFrameInterval uvc_streaming_control 0 49771 NULL
165847 +enable_so_cifs_sign_smbv_fndecl_49776 cifs_sign_smbv fndecl 2 49776 NULL
165848 +enable_so_hci_sock_create_fndecl_49778 hci_sock_create fndecl 3 49778 NULL nohasharray
165849 +enable_so_rtw_add_beacon_fndecl_49778 rtw_add_beacon fndecl 5-3 49778 &enable_so_hci_sock_create_fndecl_49778
165850 +enable_so_sprom_size_ssb_bus_49781 sprom_size ssb_bus 0 49781 NULL
165851 +enable_so_page2_len_ses_device_49783 page2_len ses_device 0 49783 NULL
165852 +enable_so_scale_factor_s5p_jpeg_ctx_49787 scale_factor s5p_jpeg_ctx 0 49787 NULL
165853 +enable_so_seeks_shrinker_49793 seeks shrinker 0 49793 NULL
165854 +enable_so_nilfs_mdt_init_fndecl_49794 nilfs_mdt_init fndecl 3 49794 NULL
165855 +enable_so_outlen_mimd_49796 outlen mimd 0 49796 NULL
165856 +enable_so_write_file_wow_fndecl_49799 write_file_wow fndecl 3 49799 NULL
165857 +enable_so_substream_alloc_pages_fndecl_49800 substream_alloc_pages fndecl 3 49800 NULL
165858 +enable_so_n_mmc_ies_whc_49802 n_mmc_ies whc 0 49802 NULL
165859 +enable_so_ocfs2_zero_partial_clusters_fndecl_49803 ocfs2_zero_partial_clusters fndecl 2-3 49803 NULL
165860 +enable_so_max_fib_size_aac_dev_49804 max_fib_size aac_dev 0 49804 NULL
165861 +enable_so_logfs_seek_hole_fndecl_49805 logfs_seek_hole fndecl 0-2 49805 NULL
165862 +enable_so_num_uar_mthca_profile_49807 num_uar mthca_profile 0 49807 NULL
165863 +enable_so___free_pages_boot_core_fndecl_49810 __free_pages_boot_core fndecl 3 49810 NULL
165864 +enable_so_fat_chain_add_fndecl_49812 fat_chain_add fndecl 2 49812 NULL
165865 +enable_so_fat_bits_msdos_sb_info_49817 fat_bits msdos_sb_info 0 49817 NULL
165866 +enable_so_reserved_fat_boot_sector_49818 reserved fat_boot_sector 0 49818 NULL
165867 +enable_so_nr_pages_flash_info_49822 nr_pages flash_info 0 49822 NULL
165868 +enable_so_elemsize_nft_set_ops_49830 elemsize nft_set_ops 0 49830 NULL
165869 +enable_so_response_length_ib_uverbs_ex_query_device_resp_49831 response_length ib_uverbs_ex_query_device_resp 0 49831 NULL
165870 +enable_so_wl12xx_cmd_build_probe_req_fndecl_49835 wl12xx_cmd_build_probe_req fndecl 10-8-6 49835 NULL
165871 +enable_so_read_file_queue_fndecl_49836 read_file_queue fndecl 3 49836 NULL
165872 +enable_so_fifosize_uart_port_49843 fifosize uart_port 0 49843 NULL
165873 +enable_so_read_endpoint_s2255_dev_49848 read_endpoint s2255_dev 0 49848 NULL
165874 +enable_so_scsi_send_eh_cmnd_fndecl_49849 scsi_send_eh_cmnd fndecl 5 49849 NULL
165875 +enable_so_bytes_per_word_tegra_spi_data_49851 bytes_per_word tegra_spi_data 0 49851 NULL
165876 +enable_so_plen_c4iw_ep_49856 plen c4iw_ep 0 49856 NULL nohasharray
165877 +enable_so_vol_cdev_write_fndecl_49856 vol_cdev_write fndecl 3 49856 &enable_so_plen_c4iw_ep_49856
165878 +enable_so_kempld_gpio_pincount_fndecl_49860 kempld_gpio_pincount fndecl 0 49860 NULL
165879 +enable_so___kfifo_init_fndecl_49861 __kfifo_init fndecl 4 49861 NULL nohasharray
165880 +enable_so_r592_stop_dma_fndecl_49861 r592_stop_dma fndecl 2 49861 &enable_so___kfifo_init_fndecl_49861
165881 +enable_so_si_get_csb_size_fndecl_49864 si_get_csb_size fndecl 0 49864 NULL
165882 +enable_so_bucket_bits_cache_set_49869 bucket_bits cache_set 0 49869 NULL
165883 +enable_so_record_inode_for_nocow_fndecl_49872 record_inode_for_nocow fndecl 2 49872 NULL
165884 +enable_so_waiters_read_fndecl_49877 waiters_read fndecl 3 49877 NULL
165885 +enable_so___i915_error_seek_fndecl_49882 __i915_error_seek fndecl 2 49882 NULL nohasharray
165886 +enable_so_isdn_add_channels_fndecl_49882 isdn_add_channels fndecl 3 49882 &enable_so___i915_error_seek_fndecl_49882
165887 +enable_so_tty_audit_add_data_fndecl_49885 tty_audit_add_data fndecl 3 49885 NULL
165888 +enable_so_path_listxattr_fndecl_49894 path_listxattr fndecl 3 49894 NULL nohasharray
165889 +enable_so_walk_iomem_res_fndecl_49894 walk_iomem_res fndecl 4-3 49894 &enable_so_path_listxattr_fndecl_49894
165890 +enable_so_sg_alloc_table_fndecl_49895 sg_alloc_table fndecl 0-2 49895 NULL nohasharray
165891 +enable_so_snd_vx_create_fndecl_49895 snd_vx_create fndecl 4 49895 &enable_so_sg_alloc_table_fndecl_49895
165892 +enable_so_offset_drm_i915_gem_pwrite_49896 offset drm_i915_gem_pwrite 0 49896 NULL nohasharray
165893 +enable_so_max_sds_rings_netxen_adapter_49896 max_sds_rings netxen_adapter 0 49896 &enable_so_offset_drm_i915_gem_pwrite_49896
165894 +enable_so_max_desc_sz_mthca_dev_lim_49905 max_desc_sz mthca_dev_lim 0 49905 NULL
165895 +enable_so_block_descriptor_length_scsi_mode_data_49918 block_descriptor_length scsi_mode_data 0 49918 NULL
165896 +enable_so_current_size_ipg_jumbo_49923 current_size ipg_jumbo 0 49923 NULL
165897 +enable_so_SyS_select_fndecl_49930 SyS_select fndecl 1 49930 NULL
165898 +enable_so_skd_max_queue_depth_vardecl_skd_main_c_49938 skd_max_queue_depth vardecl_skd_main.c 0 49938 NULL
165899 +enable_so_cx18_prepare_buffer_fndecl_49942 cx18_prepare_buffer fndecl 6-5 49942 NULL
165900 +enable_so_inode_number_squashfs_dir_entry_49943 inode_number squashfs_dir_entry 0 49943 NULL nohasharray
165901 +enable_so_repair_io_failure_fndecl_49943 repair_io_failure fndecl 6-3 49943 &enable_so_inode_number_squashfs_dir_entry_49943
165902 +enable_so_internal_ewma_pkt_len_49944 internal ewma_pkt_len 0 49944 NULL nohasharray
165903 +enable_so_mmc_switch_fndecl_49944 mmc_switch fndecl 0 49944 &enable_so_internal_ewma_pkt_len_49944
165904 +enable_so_tomoyo_update_policy_fndecl_49945 tomoyo_update_policy fndecl 2 49945 NULL
165905 +enable_so_rcvcnt_elsa_hw_49949 rcvcnt elsa_hw 0 49949 NULL
165906 +enable_so_segsize_rem_dn_scp_49951 segsize_rem dn_scp 0 49951 NULL
165907 +enable_so_smbus_xfer_i2c_algorithm_49954 smbus_xfer i2c_algorithm 0 49954 NULL
165908 +enable_so_zlib_decompress_fndecl_49955 zlib_decompress fndecl 5 49955 NULL
165909 +enable_so_len_lmc_xilinx_control_49960 len lmc_xilinx_control 0 49960 NULL
165910 +enable_so_ceph_inode_set_size_fndecl_49962 ceph_inode_set_size fndecl 2 49962 NULL
165911 +enable_so___ethtool_get_sset_count_fndecl_49964 __ethtool_get_sset_count fndecl 0 49964 NULL
165912 +enable_so_pcm512x_find_pll_coeff_fndecl_49973 pcm512x_find_pll_coeff fndecl 2-3 49973 NULL
165913 +enable_so_afs_fs_store_data_fndecl_49975 afs_fs_store_data fndecl 5-6 49975 NULL
165914 +enable_so_mms114_write_reg_fndecl_49977 mms114_write_reg fndecl 3 49977 NULL
165915 +enable_so_dig_in_nid_hda_gen_spec_49979 dig_in_nid hda_gen_spec 0 49979 NULL
165916 +enable_so_subtract_range_fndecl_49980 subtract_range fndecl 3-4 49980 NULL nohasharray
165917 +enable_so_tty_write_room_fndecl_49980 tty_write_room fndecl 0 49980 &enable_so_subtract_range_fndecl_49980
165918 +enable_so_mbox_size_wl1271_49981 mbox_size wl1271 0 49981 NULL
165919 +enable_so___mms114_read_reg_fndecl_49983 __mms114_read_reg fndecl 3-0 49983 NULL
165920 +enable_so_eqc_entry_sz_mthca_dev_lim_49984 eqc_entry_sz mthca_dev_lim 0 49984 NULL
165921 +enable_so_pgbase_nfs3_readlinkargs_49993 pgbase nfs3_readlinkargs 0 49993 NULL
165922 +enable_so_buffer_target_count_pvr2_stream_49996 buffer_target_count pvr2_stream 0 49996 NULL
165923 +enable_so_leafblk_xfs_da_geometry_49997 leafblk xfs_da_geometry 0 49997 NULL
165924 +enable_so_ff_effects_max_uinput_device_49998 ff_effects_max uinput_device 0 49998 NULL
165925 +enable_so_make_checksum_fndecl_49999 make_checksum fndecl 3-5 49999 NULL nohasharray
165926 +enable_so_ixgbe_dbg_reg_ops_read_fndecl_49999 ixgbe_dbg_reg_ops_read fndecl 3 49999 &enable_so_make_checksum_fndecl_49999
165927 +enable_so_block_isofs_iget5_callback_data_50000 block isofs_iget5_callback_data 0 50000 NULL
165928 +enable_so_vbi_v_start_0_saa7134_tvnorm_50002 vbi_v_start_0 saa7134_tvnorm 0 50002 NULL
165929 +enable_so_tcm_qla2xxx_handle_cmd_fndecl_50016 tcm_qla2xxx_handle_cmd fndecl 4 50016 NULL
165930 +enable_so_bi_size_bvec_iter_50026 bi_size bvec_iter 0 50026 NULL nohasharray
165931 +enable_so_bl_alloc_init_bio_fndecl_50026 bl_alloc_init_bio fndecl 3-1 50026 &enable_so_bi_size_bvec_iter_50026
165932 +enable_so_snd_oss_kernel_minor_fndecl_50028 snd_oss_kernel_minor fndecl 0 50028 NULL
165933 +enable_so_length_fotg210_qtd_50029 length fotg210_qtd 0 50029 NULL
165934 +enable_so_BlockMultiplierBits_INFTLMediaHeader_50032 BlockMultiplierBits INFTLMediaHeader 0 50032 NULL
165935 +enable_so_depth_zoran_format_50033 depth zoran_format 0 50033 NULL
165936 +enable_so_c_plan_ahead_p_rs_param_95_50035 c_plan_ahead p_rs_param_95 0 50035 NULL
165937 +enable_so_ima_write_policy_fndecl_50039 ima_write_policy fndecl 3 50039 NULL
165938 +enable_so_esp_alloc_tmp_fndecl_50045 esp_alloc_tmp fndecl 2-3 50045 NULL
165939 +enable_so_pwc_vidioc_fill_fmt_fndecl_50048 pwc_vidioc_fill_fmt fndecl 2-3 50048 NULL
165940 +enable_so_len_nft_userdata_50052 len nft_userdata 0 50052 NULL
165941 +enable_so_skge_rx_get_fndecl_50053 skge_rx_get fndecl 3 50053 NULL
165942 +enable_so_num_crtc_amdgpu_mode_info_50055 num_crtc amdgpu_mode_info 0 50055 NULL
165943 +enable_so_pf_end_request_fndecl_50064 pf_end_request fndecl 1 50064 NULL
165944 +enable_so_lba_to_map_index_fndecl_50071 lba_to_map_index fndecl 0-1 50071 NULL
165945 +enable_so_rtsx_pci_read_ppbuf_fndecl_50078 rtsx_pci_read_ppbuf fndecl 0 50078 NULL
165946 +enable_so_n_tags_ata_host_50082 n_tags ata_host 0 50082 NULL
165947 +enable_so_memblock_reserve_region_fndecl_50083 memblock_reserve_region fndecl 1-2 50083 NULL
165948 +enable_so_sem_nsems_sem_array_50085 sem_nsems sem_array 0 50085 NULL nohasharray
165949 +enable_so_sch56xx_find_fndecl_50085 sch56xx_find fndecl 0 50085 &enable_so_sem_nsems_sem_array_50085
165950 +enable_so_bfad_iocmd_ioc_get_stats_fndecl_50095 bfad_iocmd_ioc_get_stats fndecl 0 50095 NULL
165951 +enable_so_get_priv_descr_and_size_fndecl_50103 get_priv_descr_and_size fndecl 0 50103 NULL
165952 +enable_so_total_len_splice_desc_50112 total_len splice_desc 0 50112 NULL
165953 +enable_so_fst_rx_dma_complete_fndecl_50118 fst_rx_dma_complete fndecl 3 50118 NULL
165954 +enable_so_pipeline_rx_complete_stat_fifo_int_read_fndecl_50124 pipeline_rx_complete_stat_fifo_int_read fndecl 3 50124 NULL
165955 +enable_so_usb_set_interface_fndecl_50126 usb_set_interface fndecl 0 50126 NULL
165956 +enable_so___cfg80211_roamed_fndecl_50127 __cfg80211_roamed fndecl 4-6 50127 NULL
165957 +enable_so_max_burst_whc_qset_50130 max_burst whc_qset 0 50130 NULL
165958 +enable_so_i_files_ceph_inode_info_50132 i_files ceph_inode_info 0 50132 NULL
165959 +enable_so_tool_peer_db_read_fndecl_50135 tool_peer_db_read fndecl 3 50135 NULL
165960 +enable_so_d_size_lowpan_frag_info_50136 d_size lowpan_frag_info 0 50136 NULL
165961 +enable_so_num_entries_ip6t_replace_50138 num_entries ip6t_replace 0 50138 NULL
165962 +enable_so_pid_nr_ns_fndecl_50141 pid_nr_ns fndecl 0 50141 NULL
165963 +enable_so_usb_tx_block_fndecl_50144 usb_tx_block fndecl 3 50144 NULL
165964 +enable_so_vendpoint_pwc_device_50145 vendpoint pwc_device 0 50145 NULL
165965 +enable_so_htotal_drm_display_mode_50148 htotal drm_display_mode 0 50148 NULL
165966 +enable_so_nfc_hci_set_param_fndecl_50154 nfc_hci_set_param fndecl 5 50154 NULL nohasharray
165967 +enable_so_size_ubifs_data_node_50154 size ubifs_data_node 0 50154 &enable_so_nfc_hci_set_param_fndecl_50154
165968 +enable_so_idr_get_empty_slot_fndecl_50161 idr_get_empty_slot fndecl 0 50161 NULL
165969 +enable_so_ext4_mark_inode_dirty_fndecl_50162 ext4_mark_inode_dirty fndecl 0 50162 NULL
165970 +enable_so_length_ib_ip_iocb_rsp_50163 length ib_ip_iocb_rsp 0 50163 NULL nohasharray
165971 +enable_so_fops_read_fndecl_50163 fops_read fndecl 3 50163 &enable_so_length_ib_ip_iocb_rsp_50163
165972 +enable_so_videobuf_dma_init_user_locked_fndecl_50165 videobuf_dma_init_user_locked fndecl 4-3 50165 NULL
165973 +enable_so_next_burst_len_iscsi_cmd_50168 next_burst_len iscsi_cmd 0 50168 NULL
165974 +enable_so_pci_enable_resources_fndecl_50171 pci_enable_resources fndecl 0 50171 NULL nohasharray
165975 +enable_so_rd_buf_size_xilly_channel_50171 rd_buf_size xilly_channel 0 50171 &enable_so_pci_enable_resources_fndecl_50171
165976 +enable_so_xfs_qm_scall_getquota_fndecl_50173 xfs_qm_scall_getquota fndecl 2 50173 NULL
165977 +enable_so_mclk_rate_wm9081_priv_50176 mclk_rate wm9081_priv 0 50176 NULL
165978 +enable_so_hdr_len_atm_flow_data_50178 hdr_len atm_flow_data 0 50178 NULL
165979 +enable_so_ubi_more_update_data_fndecl_50182 ubi_more_update_data fndecl 4 50182 NULL
165980 +enable_so_nested_cr3_nested_state_50183 nested_cr3 nested_state 0 50183 NULL
165981 +enable_so_gfs2_create_inode_fndecl_50184 gfs2_create_inode fndecl 7 50184 NULL
165982 +enable_so_echo_client_kbrw_fndecl_50193 echo_client_kbrw fndecl 6 50193 NULL
165983 +enable_so___isofs_iget_fndecl_50194 __isofs_iget fndecl 2-3 50194 NULL
165984 +enable_so_gbufsize_vardecl_meye_c_50205 gbufsize vardecl_meye.c 0 50205 NULL
165985 +enable_so_s_zmap_blocks_minix_sb_info_50206 s_zmap_blocks minix_sb_info 0 50206 NULL
165986 +enable_so_ivtv_v4l2_write_fndecl_50217 ivtv_v4l2_write fndecl 3 50217 NULL
165987 +enable_so_sched_priority_sched_attr_50220 sched_priority sched_attr 0 50220 NULL
165988 +enable_so_length_dfw_binrec_50222 length dfw_binrec 0 50222 NULL
165989 +enable_so_pin_pci_dev_50231 pin pci_dev 0 50231 NULL
165990 +enable_so_qla4_82xx_pci_mem_read_direct_fndecl_50235 qla4_82xx_pci_mem_read_direct fndecl 2 50235 NULL
165991 +enable_so_efi_memmap_size_efi_info_50236 efi_memmap_size efi_info 0 50236 NULL
165992 +enable_so_vd_ino_nilfs_vdesc_50241 vd_ino nilfs_vdesc 0 50241 NULL nohasharray
165993 +enable_so_pwr_cont_miss_bcns_spread_read_fndecl_50241 pwr_cont_miss_bcns_spread_read fndecl 3 50241 &enable_so_vd_ino_nilfs_vdesc_50241 nohasharray
165994 +enable_so_r128_compat_ioctl_fndecl_50241 r128_compat_ioctl fndecl 2 50241 &enable_so_pwr_cont_miss_bcns_spread_read_fndecl_50241
165995 +enable_so_i915_error_state_read_fndecl_50245 i915_error_state_read fndecl 3 50245 NULL
165996 +enable_so_fnic_trace_max_pages_vardecl_50246 fnic_trace_max_pages vardecl 0 50246 NULL
165997 +enable_so_h_tot_disp_crtc_50258 h_tot_disp crtc 0 50258 NULL
165998 +enable_so_posix_acl_to_xattr_fndecl_50262 posix_acl_to_xattr fndecl 0 50262 NULL nohasharray
165999 +enable_so_len_mrp_attr_50262 len mrp_attr 0 50262 &enable_so_posix_acl_to_xattr_fndecl_50262
166000 +enable_so_buf_struct_size_vb2_queue_50266 buf_struct_size vb2_queue 0 50266 NULL
166001 +enable_so_end_range_50270 end range 0 50270 NULL nohasharray
166002 +enable_so_bLength_usb_ss_ep_comp_descriptor_50270 bLength usb_ss_ep_comp_descriptor 0 50270 &enable_so_end_range_50270
166003 +enable_so_vframes_pwc_device_50272 vframes pwc_device 0 50272 NULL
166004 +enable_so_curr_resync_completed_mddev_50273 curr_resync_completed mddev 0 50273 NULL nohasharray
166005 +enable_so_rx_filter_protection_filter_read_fndecl_50273 rx_filter_protection_filter_read fndecl 3 50273 &enable_so_curr_resync_completed_mddev_50273
166006 +enable_so_count_defcmd_set_50274 count defcmd_set 0 50274 NULL
166007 +enable_so_phys_amd76xrom_window_50277 phys amd76xrom_window 0 50277 NULL
166008 +enable_so_ath6kl_wmi_set_appie_cmd_fndecl_50289 ath6kl_wmi_set_appie_cmd fndecl 5-2 50289 NULL
166009 +enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296 mwifiex_append_rsn_ie_wpa_wpa2 fndecl 0 50296 NULL nohasharray
166010 +enable_so_wptr_old_amdgpu_ring_50296 wptr_old amdgpu_ring 0 50296 &enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296
166011 +enable_so_insert_reserved_file_extent_fndecl_50316 insert_reserved_file_extent fndecl 6-3 50316 NULL
166012 +enable_so___cfg80211_connect_result_fndecl_50317 __cfg80211_connect_result fndecl 4-6 50317 NULL nohasharray
166013 +enable_so_fs_cgfsize_efs_super_50317 fs_cgfsize efs_super 0 50317 &enable_so___cfg80211_connect_result_fndecl_50317
166014 +enable_so__iwl_dbgfs_pm_params_write_fndecl_50318 _iwl_dbgfs_pm_params_write fndecl 3 50318 NULL
166015 +enable_so_rbytes_ceph_mds_reply_inode_50321 rbytes ceph_mds_reply_inode 0 50321 NULL
166016 +enable_so_VST_kyrofb_info_50324 VST kyrofb_info 0 50324 NULL
166017 +enable_so_level_guest_walker64_50325 level guest_walker64 0 50325 NULL
166018 +enable_so_ucNumEntries__ATOM_PPLIB_CAC_Leakage_Table_50326 ucNumEntries _ATOM_PPLIB_CAC_Leakage_Table 0 50326 NULL
166019 +enable_so___vmalloc_node_fndecl_50335 __vmalloc_node fndecl 1-2 50335 NULL nohasharray
166020 +enable_so_size_nand_ecc_ctrl_50335 size nand_ecc_ctrl 0 50335 &enable_so___vmalloc_node_fndecl_50335
166021 +enable_so_aim_read_fndecl_50336 aim_read fndecl 3 50336 NULL
166022 +enable_so___copy_from_user_nocache_fndecl_50340 __copy_from_user_nocache fndecl 0-3 50340 NULL
166023 +enable_so_ide_complete_rq_fndecl_50345 ide_complete_rq fndecl 3-2 50345 NULL
166024 +enable_so_nextindex_xtheader_50354 nextindex xtheader 0 50354 NULL
166025 +enable_so_next_minor_vardecl_md_c_50357 next_minor vardecl_md.c 0 50357 NULL
166026 +enable_so_wimax_msg_alloc_fndecl_50364 wimax_msg_alloc fndecl 4 50364 NULL
166027 +enable_so_regmap_name_read_file_fndecl_50368 regmap_name_read_file fndecl 3 50368 NULL
166028 +enable_so_fnic_trace_debugfs_read_fndecl_50375 fnic_trace_debugfs_read fndecl 3 50375 NULL
166029 +enable_so___send_to_port_fndecl_50377 __send_to_port fndecl 3 50377 NULL
166030 +enable_so_table_size_amdgpu_gart_50380 table_size amdgpu_gart 0 50380 NULL
166031 +enable_so_NumberOfReferrals_smb_com_transaction_get_dfs_refer_rsp_50387 NumberOfReferrals smb_com_transaction_get_dfs_refer_rsp 0 50387 NULL
166032 +enable_so_len_udphdr_50395 len udphdr 0 50395 NULL
166033 +enable_so_max_write_len_cftype_50399 max_write_len cftype 0 50399 NULL
166034 +enable_so_user_power_read_fndecl_50405 user_power_read fndecl 3 50405 NULL
166035 +enable_so_init_urbs_fndecl_50408 init_urbs fndecl 2-4-5 50408 NULL
166036 +enable_so_sgx_offset_psb_ops_50417 sgx_offset psb_ops 0 50417 NULL
166037 +enable_so_size_uvc_clock_50418 size uvc_clock 0 50418 NULL
166038 +enable_so_length_acpi_srat_mem_affinity_50419 length acpi_srat_mem_affinity 0 50419 NULL
166039 +enable_so___initramfs_size_vardecl_50420 __initramfs_size vardecl 0 50420 NULL nohasharray
166040 +enable_so_jffs2_scan_xattr_node_fndecl_50420 jffs2_scan_xattr_node fndecl 4 50420 &enable_so___initramfs_size_vardecl_50420
166041 +enable_so_sd_max_rg_data_gfs2_sbd_50430 sd_max_rg_data gfs2_sbd 0 50430 NULL
166042 +enable_so___vcc_connect_fndecl_50431 __vcc_connect fndecl 4-3 50431 NULL
166043 +enable_so_nilfs_gccache_submit_read_data_fndecl_50434 nilfs_gccache_submit_read_data fndecl 3-4 50434 NULL
166044 +enable_so_pkt_size_asender_cmd_50437 pkt_size asender_cmd 0 50437 NULL
166045 +enable_so_sbp_count_se_tpg_luns_fndecl_50444 sbp_count_se_tpg_luns fndecl 0 50444 NULL
166046 +enable_so_il_dbgfs_sram_write_fndecl_50445 il_dbgfs_sram_write fndecl 3 50445 NULL
166047 +enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449 nfsd4_encode_fattr_to_buf fndecl 2 50449 NULL nohasharray
166048 +enable_so_nr_phys_segments_request_50449 nr_phys_segments request 0 50449 &enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449
166049 +enable_so_nfsd_drc_mem_used_vardecl_50456 nfsd_drc_mem_used vardecl 0 50456 NULL
166050 +enable_so_extra_tx_headroom_ieee802154_hw_50457 extra_tx_headroom ieee802154_hw 0 50457 NULL
166051 +enable_so_iscsi_iolen_cxgb4_lld_info_50467 iscsi_iolen cxgb4_lld_info 0 50467 NULL
166052 +enable_so_vmw_cmdbuf_reserve_cur_fndecl_50468 vmw_cmdbuf_reserve_cur fndecl 2 50468 NULL
166053 +enable_so___ath6kl_wmi_send_mgmt_cmd_fndecl_50472 __ath6kl_wmi_send_mgmt_cmd fndecl 7-2 50472 NULL
166054 +enable_so_buf_size_dmatest_params_50477 buf_size dmatest_params 0 50477 NULL
166055 +enable_so_len_fuse_ioctl_iovec_50481 len fuse_ioctl_iovec 0 50481 NULL
166056 +enable_so_consume_va_vmci_qp_page_file_info_50487 consume_va vmci_qp_page_file_info 0 50487 NULL
166057 +enable_so_br_multicast_has_querier_anywhere_fndecl_50488 br_multicast_has_querier_anywhere fndecl 2 50488 NULL
166058 +enable_so_snd_sbmixer_add_ctl_fndecl_50491 snd_sbmixer_add_ctl fndecl 5 50491 NULL
166059 +enable_so_max_pages_nilfs_write_info_50494 max_pages nilfs_write_info 0 50494 NULL
166060 +enable_so_udf_new_block_fndecl_50500 udf_new_block fndecl 0 50500 NULL
166061 +enable_so_lpfc_idiag_extacc_write_fndecl_50501 lpfc_idiag_extacc_write fndecl 3 50501 NULL
166062 +enable_so_bio_clone_range_fndecl_50502 bio_clone_range fndecl 2-3 50502 NULL
166063 +enable_so_mwifiex_read_data_sync_fndecl_50504 mwifiex_read_data_sync fndecl 3 50504 NULL
166064 +enable_so_readahead_tree_block_fndecl_50505 readahead_tree_block fndecl 2 50505 NULL
166065 +enable_so_listxattr_inode_operations_50507 listxattr inode_operations 0 50507 NULL
166066 +enable_so_i2c_hid_output_report_fndecl_50508 i2c_hid_output_report fndecl 3 50508 NULL
166067 +enable_so_t4vf_pktgl_to_skb_fndecl_50510 t4vf_pktgl_to_skb fndecl 3 50510 NULL
166068 +enable_so_adfs_fplus_read_fndecl_50514 adfs_fplus_read fndecl 2 50514 NULL nohasharray
166069 +enable_so_usb_maxpacket_fndecl_50514 usb_maxpacket fndecl 0 50514 &enable_so_adfs_fplus_read_fndecl_50514
166070 +enable_so_len_nfs3_mkdirargs_50515 len nfs3_mkdirargs 0 50515 NULL
166071 +enable_so_nframes_cdrom_read_audio_50517 nframes cdrom_read_audio 0 50517 NULL
166072 +enable_so_OSDSetBlock_fndecl_50521 OSDSetBlock fndecl 2-4 50521 NULL
166073 +enable_so_iwl_mvm_pass_packet_to_mac80211_fndecl_50528 iwl_mvm_pass_packet_to_mac80211 fndecl 7-5 50528 NULL
166074 +enable_so_ohci_urb_dequeue_fndecl_50529 ohci_urb_dequeue fndecl 3 50529 NULL
166075 +enable_so_rtmax_nfs_fsinfo_50537 rtmax nfs_fsinfo 0 50537 NULL nohasharray
166076 +enable_so_dccpd_seq_dccp_skb_cb_50537 dccpd_seq dccp_skb_cb 0 50537 &enable_so_rtmax_nfs_fsinfo_50537
166077 +enable_so_get_nodes_fndecl_50551 get_nodes fndecl 3 50551 NULL
166078 +enable_so_blk_flush_complete_seq_fndecl_50552 blk_flush_complete_seq fndecl 4 50552 NULL
166079 +enable_so_spi_rd8_fndecl_50555 spi_rd8 fndecl 0 50555 NULL
166080 +enable_so_frag_threshold_wiphy_50556 frag_threshold wiphy 0 50556 NULL
166081 +enable_so___blkdev_issue_zeroout_fndecl_50559 __blkdev_issue_zeroout fndecl 3-2-0 50559 NULL
166082 +enable_so_gen_pool_create_fndecl_50571 gen_pool_create fndecl 1 50571 NULL
166083 +enable_so_img_y_zoran_jpg_settings_50573 img_y zoran_jpg_settings 0 50573 NULL nohasharray
166084 +enable_so_W6692_empty_fifo_fndecl_50573 W6692_empty_fifo fndecl 2 50573 &enable_so_img_y_zoran_jpg_settings_50573
166085 +enable_so_hdr_len_ib_mad_send_buf_50577 hdr_len ib_mad_send_buf 0 50577 NULL nohasharray
166086 +enable_so__osd_req_alist_size_fndecl_50577 _osd_req_alist_size fndecl 0 50577 &enable_so_hdr_len_ib_mad_send_buf_50577
166087 +enable_so_xfs_attr_calc_size_fndecl_50579 xfs_attr_calc_size fndecl 0 50579 NULL
166088 +enable_so_length_fuse_page_desc_50581 length fuse_page_desc 0 50581 NULL
166089 +enable_so_do_write_kmem_fndecl_50584 do_write_kmem fndecl 1-3-0 50584 NULL
166090 +enable_so_do_huge_pmd_wp_page_fallback_fndecl_50585 do_huge_pmd_wp_page_fallback fndecl 7 50585 NULL
166091 +enable_so_off2_xad_50592 off2 xad 0 50592 NULL
166092 +enable_so_pwrite_dvb_ringbuffer_50594 pwrite dvb_ringbuffer 0 50594 NULL
166093 +enable_so_intel_gtt_total_entries_fndecl_50599 intel_gtt_total_entries fndecl 0 50599 NULL
166094 +enable_so___i915_gem_userptr_set_pages_fndecl_50600 __i915_gem_userptr_set_pages fndecl 3 50600 NULL
166095 +enable_so_count_slgt_desc_50607 count slgt_desc 0 50607 NULL
166096 +enable_so_ipoib_max_conn_qp_vardecl_50615 ipoib_max_conn_qp vardecl 0 50615 NULL
166097 +enable_so_len_fuse_notify_inval_inode_out_50619 len fuse_notify_inval_inode_out 0 50619 NULL nohasharray
166098 +enable_so_dle_count__isdn_audio_data_50619 dle_count _isdn_audio_data 0 50619 &enable_so_len_fuse_notify_inval_inode_out_50619
166099 +enable_so_cb_mirror_cnt_exofs_dt_data_map_50623 cb_mirror_cnt exofs_dt_data_map 0 50623 NULL nohasharray
166100 +enable_so_zr364xx_fillbuff_fndecl_50623 zr364xx_fillbuff fndecl 3 50623 &enable_so_cb_mirror_cnt_exofs_dt_data_map_50623
166101 +enable_so___kfifo_to_user_r_fndecl_50624 __kfifo_to_user_r fndecl 5-3 50624 NULL
166102 +enable_so_phys_port_cnt_ib_device_50625 phys_port_cnt ib_device 0 50625 NULL
166103 +enable_so_pglen_nfs3_readlinkargs_50630 pglen nfs3_readlinkargs 0 50630 NULL nohasharray
166104 +enable_so_data_len_pmcraid_hcam_hdr_50630 data_len pmcraid_hcam_hdr 0 50630 &enable_so_pglen_nfs3_readlinkargs_50630
166105 +enable_so_l2tp_ip6_recvmsg_fndecl_50633 l2tp_ip6_recvmsg fndecl 3 50633 NULL
166106 +enable_so_ircomm_tty_write_fndecl_50642 ircomm_tty_write fndecl 3 50642 NULL nohasharray
166107 +enable_so_tomoyo_truncate_fndecl_50642 tomoyo_truncate fndecl 0 50642 &enable_so_ircomm_tty_write_fndecl_50642
166108 +enable_so_num_regs_soc_bytes_50648 num_regs soc_bytes 0 50648 NULL
166109 +enable_so_usb_hcd_giveback_urb_fndecl_50649 usb_hcd_giveback_urb fndecl 3 50649 NULL
166110 +enable_so_xor_sources_dmatest_params_50653 xor_sources dmatest_params 0 50653 NULL
166111 +enable_so_recalc_rate_clk_ops_50655 recalc_rate clk_ops 0 50655 NULL
166112 +enable_so_io_size_tulip_chip_table_50656 io_size tulip_chip_table 0 50656 NULL nohasharray
166113 +enable_so_create_bounce_buffer_fndecl_50656 create_bounce_buffer fndecl 3 50656 &enable_so_io_size_tulip_chip_table_50656
166114 +enable_so_proc_coredump_filter_read_fndecl_50658 proc_coredump_filter_read fndecl 3 50658 NULL
166115 +enable_so_enc_pools_release_free_pages_fndecl_50669 enc_pools_release_free_pages fndecl 1 50669 NULL
166116 +enable_so_i915_gem_alloc_context_obj_fndecl_50671 i915_gem_alloc_context_obj fndecl 2 50671 NULL
166117 +enable_so_nclips_bttv_overlay_50673 nclips bttv_overlay 0 50673 NULL
166118 +enable_so_dig_in_ca0132_spec_50677 dig_in ca0132_spec 0 50677 NULL
166119 +enable_so_pci_iomap_wc_fndecl_50679 pci_iomap_wc fndecl 3 50679 NULL nohasharray
166120 +enable_so___kernfs_create_file_fndecl_50679 __kernfs_create_file fndecl 4 50679 &enable_so_pci_iomap_wc_fndecl_50679 nohasharray
166121 +enable_so_size_snd_util_memblk_50679 size snd_util_memblk 0 50679 &enable_so___kernfs_create_file_fndecl_50679
166122 +enable_so_count_dm_io_region_50683 count dm_io_region 0 50683 NULL
166123 +enable_so_sr_offset_nfs42_seek_res_50684 sr_offset nfs42_seek_res 0 50684 NULL nohasharray
166124 +enable_so_alloc_ring_fndecl_50684 alloc_ring fndecl 4-2 50684 &enable_so_sr_offset_nfs42_seek_res_50684
166125 +enable_so_generic_permission_fndecl_50685 generic_permission fndecl 0 50685 NULL
166126 +enable_so_hv_mem_hot_add_fndecl_50687 hv_mem_hot_add fndecl 1 50687 NULL nohasharray
166127 +enable_so_rxkad_secure_packet_encrypt_fndecl_50687 rxkad_secure_packet_encrypt fndecl 3 50687 &enable_so_hv_mem_hot_add_fndecl_50687
166128 +enable_so_dm_bm_read_try_lock_fndecl_50688 dm_bm_read_try_lock fndecl 2 50688 NULL
166129 +enable_so___find_rev_next_bit_fndecl_50712 __find_rev_next_bit fndecl 0-2-3 50712 NULL
166130 +enable_so_back_xfs_da3_icnode_hdr_50715 back xfs_da3_icnode_hdr 0 50715 NULL
166131 +enable_so_sc18is602_wait_ready_fndecl_50717 sc18is602_wait_ready fndecl 0 50717 NULL
166132 +enable_so_get_device_info_fndecl_50718 get_device_info fndecl 0 50718 NULL
166133 +enable_so_ibnl_put_msg_fndecl_50721 ibnl_put_msg fndecl 4 50721 NULL nohasharray
166134 +enable_so_num_lbufq_entries_ql3_adapter_50721 num_lbufq_entries ql3_adapter 0 50721 &enable_so_ibnl_put_msg_fndecl_50721
166135 +enable_so_mpdu_header_off_wcn36xx_pdu_50723 mpdu_header_off wcn36xx_pdu 0 50723 NULL
166136 +enable_so_i915_gem_alloc_object_fndecl_50728 i915_gem_alloc_object fndecl 2 50728 NULL
166137 +enable_so_srp_change_queue_depth_fndecl_50733 srp_change_queue_depth fndecl 2 50733 NULL nohasharray
166138 +enable_so_max_table_count_acpi_table_list_50733 max_table_count acpi_table_list 0 50733 &enable_so_srp_change_queue_depth_fndecl_50733
166139 +enable_so_agg_wsize_vardecl_50735 agg_wsize vardecl 0 50735 NULL nohasharray
166140 +enable_so_max_mr_size_ib_device_attr_50735 max_mr_size ib_device_attr 0 50735 &enable_so_agg_wsize_vardecl_50735
166141 +enable_so_data_size_usbtouch_usb_50738 data_size usbtouch_usb 0 50738 NULL
166142 +enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742 MaximumDataTransferSizeInBlocks DAC960_V2_ControllerInfo 0 50742 NULL nohasharray
166143 +enable_so_rx_count_st_data_s_50742 rx_count st_data_s 0 50742 &enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742
166144 +enable_so_opt_flen_ipv6_txoptions_50747 opt_flen ipv6_txoptions 0 50747 NULL
166145 +enable_so_nicvf_change_mtu_fndecl_50748 nicvf_change_mtu fndecl 2 50748 NULL nohasharray
166146 +enable_so_sd_tuning_rx_fndecl_50748 sd_tuning_rx fndecl 2 50748 &enable_so_nicvf_change_mtu_fndecl_50748
166147 +enable_so_dm_create_fndecl_50754 dm_create fndecl 1 50754 NULL
166148 +enable_so_i_dataoffset_romfs_inode_info_50755 i_dataoffset romfs_inode_info 0 50755 NULL
166149 +enable_so_root_len_ubifs_mst_node_50757 root_len ubifs_mst_node 0 50757 NULL
166150 +enable_so_cluster_bits_msdos_sb_info_50763 cluster_bits msdos_sb_info 0 50763 NULL
166151 +enable_so_usb_hcd_map_urb_for_dma_fndecl_50765 usb_hcd_map_urb_for_dma fndecl 0 50765 NULL
166152 +enable_so_cifs_readpages_read_into_pages_fndecl_50770 cifs_readpages_read_into_pages fndecl 3 50770 NULL
166153 +enable_so_hpfs_get_sector_fndecl_50776 hpfs_get_sector fndecl 2 50776 NULL
166154 +enable_so_cmd_size_blk_mq_tag_set_50782 cmd_size blk_mq_tag_set 0 50782 NULL
166155 +enable_so_readdir_nfs_rpc_ops_50783 readdir nfs_rpc_ops 0 50783 NULL
166156 +enable_so_ip_vs_sync_buff_create_fndecl_50787 ip_vs_sync_buff_create fndecl 2 50787 NULL
166157 +enable_so_remove_pmkid_fndecl_50793 remove_pmkid fndecl 4 50793 NULL
166158 +enable_so_ib_uverbs_get_context_fndecl_50799 ib_uverbs_get_context fndecl 4 50799 NULL
166159 +enable_so_len_rfd_50801 len rfd 0 50801 NULL
166160 +enable_so_persistent_ram_buffer_map_fndecl_50803 persistent_ram_buffer_map fndecl 2-1 50803 NULL
166161 +enable_so_malloc_size__BIG_IOCTL_Command_struct_50805 malloc_size _BIG_IOCTL_Command_struct 0 50805 NULL
166162 +enable_so_cmdQueueSize_sis_video_info_50807 cmdQueueSize sis_video_info 0 50807 NULL nohasharray
166163 +enable_so_argslen_svc_deferred_req_50807 argslen svc_deferred_req 0 50807 &enable_so_cmdQueueSize_sis_video_info_50807
166164 +enable_so_port_num_cm_port_50808 port_num cm_port 0 50808 NULL
166165 +enable_so_hpfs_map_dnode_fndecl_50813 hpfs_map_dnode fndecl 2 50813 NULL nohasharray
166166 +enable_so_ocfs2_pages_per_cluster_fndecl_50813 ocfs2_pages_per_cluster fndecl 0 50813 &enable_so_hpfs_map_dnode_fndecl_50813
166167 +enable_so_clkrc_ov7670_info_50815 clkrc ov7670_info 0 50815 NULL
166168 +enable_so_sys_migrate_pages_fndecl_50818 sys_migrate_pages fndecl 2 50818 NULL
166169 +enable_so_cdce925_regmap_i2c_read_fndecl_50819 cdce925_regmap_i2c_read fndecl 5 50819 NULL
166170 +enable_so_rq_nvec_smb_rqst_50820 rq_nvec smb_rqst 0 50820 NULL
166171 +enable_so_get_priv_size_fndecl_50823 get_priv_size fndecl 0-1 50823 NULL
166172 +enable_so_xdr_read_pages_fndecl_50824 xdr_read_pages fndecl 2 50824 NULL nohasharray
166173 +enable_so_bcast_ring_order_vardecl_main_c_50824 bcast_ring_order vardecl_main.c 0 50824 &enable_so_xdr_read_pages_fndecl_50824
166174 +enable_so_t_tinc_data_rem_rds_tcp_connection_50828 t_tinc_data_rem rds_tcp_connection 0 50828 NULL
166175 +enable_so_bssid_info_count_ndis_80211_pmkid_50829 bssid_info_count ndis_80211_pmkid 0 50829 NULL
166176 +enable_so_filelayout_get_dserver_offset_fndecl_50833 filelayout_get_dserver_offset fndecl 0-2 50833 NULL
166177 +enable_so_security_inode_listsecurity_fndecl_50839 security_inode_listsecurity fndecl 0 50839 NULL
166178 +enable_so_m_rsumlevels_xfs_mount_50843 m_rsumlevels xfs_mount 0 50843 NULL
166179 +enable_so_exynos3250_jpeg_compressed_size_fndecl_50845 exynos3250_jpeg_compressed_size fndecl 0 50845 NULL
166180 +enable_so_decrypted_key_size_ecryptfs_session_key_50847 decrypted_key_size ecryptfs_session_key 0 50847 NULL
166181 +enable_so_pwr_ap_sleep_user_conf_read_fndecl_50848 pwr_ap_sleep_user_conf_read fndecl 3 50848 NULL
166182 +enable_so__brk_end_vardecl_50849 _brk_end vardecl 0 50849 NULL
166183 +enable_so_journal_read_transaction_fndecl_50853 journal_read_transaction fndecl 2 50853 NULL
166184 +enable_so_x2_drm_clip_rect_50854 x2 drm_clip_rect 0 50854 NULL
166185 +enable_so_force_bredr_smp_read_fndecl_50855 force_bredr_smp_read fndecl 3 50855 NULL
166186 +enable_so_dat_offset_brcmf_sdio_hdrinfo_50859 dat_offset brcmf_sdio_hdrinfo 0 50859 NULL
166187 +enable_so_alloc_disk_fndecl_50861 alloc_disk fndecl 1 50861 NULL
166188 +enable_so_alg_key_len_xfrm_algo_auth_50871 alg_key_len xfrm_algo_auth 0 50871 NULL
166189 +enable_so_mtu_adj_ipvl_dev_50874 mtu_adj ipvl_dev 0 50874 NULL
166190 +enable_so_mmc_select_hs400_fndecl_50875 mmc_select_hs400 fndecl 0 50875 NULL
166191 +enable_so_qib_read_kreg64_fndecl_50881 qib_read_kreg64 fndecl 0 50881 NULL
166192 +enable_so___nvme_submit_sync_cmd_fndecl_50882 __nvme_submit_sync_cmd fndecl 5 50882 NULL
166193 +enable_so_get_ramdisk_image_fndecl_50888 get_ramdisk_image fndecl 0 50888 NULL
166194 +enable_so_pkt_add_fndecl_50890 pkt_add fndecl 3 50890 NULL nohasharray
166195 +enable_so_size_t4_sq_50890 size t4_sq 0 50890 &enable_so_pkt_add_fndecl_50890 nohasharray
166196 +enable_so_ie_len_ieee80211_if_ibss_50890 ie_len ieee80211_if_ibss 0 50890 &enable_so_size_t4_sq_50890
166197 +enable_so_nvkm_vm_create_fndecl_50895 nvkm_vm_create fndecl 3-2 50895 NULL
166198 +enable_so_get_result_si_sm_handlers_50904 get_result si_sm_handlers 0 50904 NULL
166199 +enable_so_netlbl_catmap_walkrng_fndecl_50910 netlbl_catmap_walkrng fndecl 2-0 50910 NULL
166200 +enable_so_exofs_read_kern_fndecl_50914 exofs_read_kern fndecl 6 50914 NULL nohasharray
166201 +enable_so_oom_score_adj_read_fndecl_50914 oom_score_adj_read fndecl 3 50914 &enable_so_exofs_read_kern_fndecl_50914
166202 +enable_so_vnet_hdr_sz_tun_struct_50916 vnet_hdr_sz tun_struct 0 50916 NULL
166203 +enable_so_num_chunks_drm_radeon_cs_50925 num_chunks drm_radeon_cs 0 50925 NULL nohasharray
166204 +enable_so_first_minor_gendisk_50925 first_minor gendisk 0 50925 &enable_so_num_chunks_drm_radeon_cs_50925
166205 +enable_so___spi_async_fndecl_50927 __spi_async fndecl 0 50927 NULL
166206 +enable_so_j_start_reiserfs_journal_50930 j_start reiserfs_journal 0 50930 NULL
166207 +enable_so_ssidLen_BSSListRid_50931 ssidLen BSSListRid 0 50931 NULL nohasharray
166208 +enable_so_ReplyFrameSize_mpt2sas_facts_50931 ReplyFrameSize mpt2sas_facts 0 50931 &enable_so_ssidLen_BSSListRid_50931
166209 +enable_so_efs_map_block_fndecl_50932 efs_map_block fndecl 0-2 50932 NULL
166210 +enable_so_read_file_modal_eeprom_fndecl_50934 read_file_modal_eeprom fndecl 3 50934 NULL
166211 +enable_so_sge_pktshift_cxgb4_lld_info_50935 sge_pktshift cxgb4_lld_info 0 50935 NULL
166212 +enable_so_dw210x_op_rw_fndecl_50936 dw210x_op_rw fndecl 6 50936 NULL
166213 +enable_so_gen_pool_add_virt_fndecl_50938 gen_pool_add_virt fndecl 4 50938 NULL
166214 +enable_so_wil_rx_init_fndecl_50939 wil_rx_init fndecl 2 50939 NULL
166215 +enable_so_ubi_start_update_fndecl_50948 ubi_start_update fndecl 3 50948 NULL
166216 +enable_so_kvm_hv_set_msr_fndecl_50949 kvm_hv_set_msr fndecl 3 50949 NULL
166217 +enable_so_sync_key_len_pvr2_ioread_50952 sync_key_len pvr2_ioread 0 50952 NULL
166218 +enable_so_iser_prepare_write_cmd_fndecl_50953 iser_prepare_write_cmd fndecl 2 50953 NULL
166219 +enable_so_reg_list_size_radeon_rlc_50955 reg_list_size radeon_rlc 0 50955 NULL nohasharray
166220 +enable_so___vb2_get_done_vb_fndecl_50955 __vb2_get_done_vb fndecl 0 50955 &enable_so_reg_list_size_radeon_rlc_50955
166221 +enable_so_alloc_agpphysmem_i8xx_fndecl_50960 alloc_agpphysmem_i8xx fndecl 1 50960 NULL
166222 +enable_so_nsegments_dsp_module_desc_50965 nsegments dsp_module_desc 0 50965 NULL
166223 +enable_so_gamma_sd_gl860_50970 gamma sd_gl860 0 50970 NULL
166224 +enable_so_sdma_get_descq_cnt_fndecl_50975 sdma_get_descq_cnt fndecl 0 50975 NULL
166225 +enable_so_irq_ssb_device_50977 irq ssb_device 0 50977 NULL nohasharray
166226 +enable_so_setkey_unaligned_fndecl_50977 setkey_unaligned fndecl 3 50977 &enable_so_irq_ssb_device_50977
166227 +enable_so_n_hdlc_tty_receive_fndecl_50980 n_hdlc_tty_receive fndecl 4 50980 NULL
166228 +enable_so_seq_start_offset_iscsi_cmd_50983 seq_start_offset iscsi_cmd 0 50983 NULL
166229 +enable_so_usif_ioctl_fndecl_50986 usif_ioctl fndecl 3 50986 NULL
166230 +enable_so_first_burst_len_iscsi_cmd_50987 first_burst_len iscsi_cmd 0 50987 NULL
166231 +enable_so_do_get_mempolicy_fndecl_50990 do_get_mempolicy fndecl 3 50990 NULL
166232 +enable_so_cb_break_tail_afs_server_51003 cb_break_tail afs_server 0 51003 NULL
166233 +enable_so_resize_size_resize_parms_51005 resize_size resize_parms 0 51005 NULL
166234 +enable_so_room_ceph_pagelist_51016 room ceph_pagelist 0 51016 NULL
166235 +enable_so_sg_count_realtek_pci_sdmmc_51022 sg_count realtek_pci_sdmmc 0 51022 NULL
166236 +enable_so_num_of_queues_il_cfg_51023 num_of_queues il_cfg 0 51023 NULL
166237 +enable_so_ib_uverbs_create_srq_fndecl_51025 ib_uverbs_create_srq fndecl 4 51025 NULL
166238 +enable_so_img_sram_size_fw_hdr_51027 img_sram_size fw_hdr 0 51027 NULL
166239 +enable_so_cpu_count_MPT2SAS_ADAPTER_51044 cpu_count MPT2SAS_ADAPTER 0 51044 NULL
166240 +enable_so_int_proc_write_fndecl_51045 int_proc_write fndecl 3 51045 NULL
166241 +enable_so_setattr_inode_operations_51054 setattr inode_operations 0 51054 NULL
166242 +enable_so_vfs_truncate_fndecl_51056 vfs_truncate fndecl 2 51056 NULL nohasharray
166243 +enable_so_cl_req_alloc_fndecl_51056 cl_req_alloc fndecl 4 51056 &enable_so_vfs_truncate_fndecl_51056
166244 +enable_so_romfs_dev_strnlen_fndecl_51058 romfs_dev_strnlen fndecl 2-3-0 51058 NULL nohasharray
166245 +enable_so_xfs_trans_log_efi_extent_fndecl_51058 xfs_trans_log_efi_extent fndecl 3-4 51058 &enable_so_romfs_dev_strnlen_fndecl_51058
166246 +enable_so_index_vardecl_atiixp_modem_c_51061 index vardecl_atiixp_modem.c 0 51061 NULL
166247 +enable_so_crtc_vtotal_drm_display_mode_51070 crtc_vtotal drm_display_mode 0 51070 NULL
166248 +enable_so_fbmem_len_viafb_dev_51071 fbmem_len viafb_dev 0 51071 NULL
166249 +enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072 ieee80211_if_read_fwded_mcast fndecl 3 51072 NULL nohasharray
166250 +enable_so_datablob_format_fndecl_51072 datablob_format fndecl 2 51072 &enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072
166251 +enable_so_size_p9_wstat_51083 size p9_wstat 0 51083 NULL
166252 +enable_so_td_end_whc_qset_51089 td_end whc_qset 0 51089 NULL nohasharray
166253 +enable_so_pp_write_fndecl_51089 pp_write fndecl 3 51089 &enable_so_td_end_whc_qset_51089
166254 +enable_so_order_mmc_test_pages_51098 order mmc_test_pages 0 51098 NULL
166255 +enable_so_namelen_hpfs_dirent_51099 namelen hpfs_dirent 0 51099 NULL
166256 +enable_so_ocfs2_file_llseek_fndecl_51102 ocfs2_file_llseek fndecl 2 51102 NULL
166257 +enable_so_copy_chunked_from_user_fndecl_51106 copy_chunked_from_user fndecl 3 51106 NULL
166258 +enable_so_memblock_virt_alloc_internal_fndecl_51107 memblock_virt_alloc_internal fndecl 2-1-3-4 51107 NULL nohasharray
166259 +enable_so_bu_blocks_ocfs2_xattr_bucket_51107 bu_blocks ocfs2_xattr_bucket 0 51107 &enable_so_memblock_virt_alloc_internal_fndecl_51107
166260 +enable_so_msb_read_page_fndecl_51110 msb_read_page fndecl 0-6-2 51110 NULL
166261 +enable_so_elog_size_vardecl_acpi_extlog_c_51112 elog_size vardecl_acpi_extlog.c 0 51112 NULL
166262 +enable_so_fbmem_free_viafb_par_51115 fbmem_free viafb_par 0 51115 NULL
166263 +enable_so_len_garp_attr_hdr_51119 len garp_attr_hdr 0 51119 NULL
166264 +enable_so_ls_num_slots_dlm_ls_51120 ls_num_slots dlm_ls 0 51120 NULL
166265 +enable_so_new_read_fndecl_51123 new_read fndecl 2 51123 NULL
166266 +enable_so_adau1373_set_pll_fndecl_51130 adau1373_set_pll fndecl 4-5 51130 NULL
166267 +enable_so_igb_pci_enable_sriov_fndecl_51131 igb_pci_enable_sriov fndecl 2 51131 NULL
166268 +enable_so_wqe_cnt_mlx4_ib_wq_51135 wqe_cnt mlx4_ib_wq 0 51135 NULL
166269 +enable_so_cachelsz_ath_common_51138 cachelsz ath_common 0 51138 NULL
166270 +enable_so_length_sky2_status_le_51139 length sky2_status_le 0 51139 NULL
166271 +enable_so_fm_send_cmd_fndecl_51140 fm_send_cmd fndecl 0-5 51140 NULL nohasharray
166272 +enable_so_arg_start_mm_struct_51140 arg_start mm_struct 0 51140 &enable_so_fm_send_cmd_fndecl_51140 nohasharray
166273 +enable_so_pin_2_irq_fndecl_51140 pin_2_irq fndecl 3 51140 &enable_so_arg_start_mm_struct_51140 nohasharray
166274 +enable_so_drm_dp_send_dpcd_write_fndecl_51140 drm_dp_send_dpcd_write fndecl 4 51140 &enable_so_pin_2_irq_fndecl_51140
166275 +enable_so_num_rx_bnad_51141 num_rx bnad 0 51141 NULL
166276 +enable_so_set_dev_class_fndecl_51150 set_dev_class fndecl 4 51150 NULL nohasharray
166277 +enable_so_dm_exception_table_init_fndecl_51150 dm_exception_table_init fndecl 2 51150 &enable_so_set_dev_class_fndecl_51150
166278 +enable_so_mss_net_lro_desc_51151 mss net_lro_desc 0 51151 NULL
166279 +enable_so_sdio_readb_fndecl_51153 sdio_readb fndecl 0 51153 NULL
166280 +enable_so_nfs_idmap_get_key_fndecl_51155 nfs_idmap_get_key fndecl 2 51155 NULL
166281 +enable_so_n_krcvqs_vardecl_51157 n_krcvqs vardecl 0 51157 NULL
166282 +enable_so_num_backlights_lm3533_platform_data_51165 num_backlights lm3533_platform_data 0 51165 NULL
166283 +enable_so_bytes_per_pixel_osd_info_51169 bytes_per_pixel osd_info 0 51169 NULL nohasharray
166284 +enable_so_kvm_read_guest_cached_fndecl_51169 kvm_read_guest_cached fndecl 4 51169 &enable_so_bytes_per_pixel_osd_info_51169 nohasharray
166285 +enable_so_max_sge_rd_ib_device_attr_51169 max_sge_rd ib_device_attr 0 51169 &enable_so_kvm_read_guest_cached_fndecl_51169
166286 +enable_so_raid10_takeover_raid0_fndecl_51171 raid10_takeover_raid0 fndecl 3-2 51171 NULL
166287 +enable_so_v4l_stk_read_fndecl_51179 v4l_stk_read fndecl 3 51179 NULL
166288 +enable_so_splice_write_null_fndecl_51181 splice_write_null fndecl 4 51181 NULL
166289 +enable_so_snd_rme32_capture_copy_fndecl_51190 snd_rme32_capture_copy fndecl 5 51190 NULL
166290 +enable_so_prism2_info_hostscanresults_fndecl_51194 prism2_info_hostscanresults fndecl 3 51194 NULL nohasharray
166291 +enable_so_fip_op_fip_header_51194 fip_op fip_header 0 51194 &enable_so_prism2_info_hostscanresults_fndecl_51194
166292 +enable_so_mlx5_ib_invalidate_range_fndecl_51195 mlx5_ib_invalidate_range fndecl 2 51195 NULL
166293 +enable_so_pfkey_sockaddr_size_fndecl_51198 pfkey_sockaddr_size fndecl 0 51198 NULL
166294 +enable_so_btrfs_extent_same_fndecl_51200 btrfs_extent_same fndecl 2-5-3 51200 NULL
166295 +enable_so_max_num_vringh_kiov_51202 max_num vringh_kiov 0 51202 NULL
166296 +enable_so_cirrus_ttm_tt_create_fndecl_51204 cirrus_ttm_tt_create fndecl 2 51204 NULL
166297 +enable_so_vcc_recvmsg_fndecl_51205 vcc_recvmsg fndecl 3 51205 NULL
166298 +enable_so_kvm_clear_guest_fndecl_51207 kvm_clear_guest fndecl 2-3 51207 NULL
166299 +enable_so_phys_vram_area_51217 phys vram_area 0 51217 NULL
166300 +enable_so_mt9v032_calc_ratio_fndecl_51219 mt9v032_calc_ratio fndecl 0 51219 NULL
166301 +enable_so_vsi_oltext_vxfs_sb_info_51222 vsi_oltext vxfs_sb_info 0 51222 NULL
166302 +enable_so_mem_cgroup_count_precharge_pte_range_fndecl_51229 mem_cgroup_count_precharge_pte_range fndecl 2 51229 NULL
166303 +enable_so_rt2x00debug_write_rf_fndecl_51232 rt2x00debug_write_rf fndecl 3 51232 NULL
166304 +enable_so_stb0899_read_regs_fndecl_51234 stb0899_read_regs fndecl 4 51234 NULL nohasharray
166305 +enable_so_pte_entry_mm_walk_51234 pte_entry mm_walk 0 51234 &enable_so_stb0899_read_regs_fndecl_51234
166306 +enable_so_proc_set_size_fndecl_51237 proc_set_size fndecl 2 51237 NULL
166307 +enable_so_get_ucode_user_fndecl_51241 get_ucode_user fndecl 3 51241 NULL
166308 +enable_so_key_tnl_ptk_info_51242 key tnl_ptk_info 0 51242 NULL
166309 +enable_so_unlinked_urb_51246 unlinked urb 0 51246 NULL
166310 +enable_so_max_desc_sz_mthca_limits_51248 max_desc_sz mthca_limits 0 51248 NULL
166311 +enable_so_max_gs_mlx4_ib_wq_51251 max_gs mlx4_ib_wq 0 51251 NULL nohasharray
166312 +enable_so_cdev_add_fndecl_51251 cdev_add fndecl 2-3 51251 &enable_so_max_gs_mlx4_ib_wq_51251
166313 +enable_so_create_srq_user_fndecl_51260 create_srq_user fndecl 5 51260 NULL
166314 +enable_so_maxdatafieldsize_vnic_fc_config_51275 maxdatafieldsize vnic_fc_config 0 51275 NULL
166315 +enable_so_ceph_decode_16_fndecl_51276 ceph_decode_16 fndecl 0 51276 NULL
166316 +enable_so_xfs_rtallocate_range_fndecl_51292 xfs_rtallocate_range fndecl 3-4 51292 NULL nohasharray
166317 +enable_so_osd_req_list_partition_collections_fndecl_51292 osd_req_list_partition_collections fndecl 5 51292 &enable_so_xfs_rtallocate_range_fndecl_51292
166318 +enable_so_first_burst_iscsi_bus_flash_session_51294 first_burst iscsi_bus_flash_session 0 51294 NULL
166319 +enable_so_size_autofs_dev_ioctl_51298 size autofs_dev_ioctl 0 51298 NULL
166320 +enable_so_iscsi_ping_comp_event_fndecl_51300 iscsi_ping_comp_event fndecl 5 51300 NULL nohasharray
166321 +enable_so_ramoops_read_kmsg_hdr_fndecl_51300 ramoops_read_kmsg_hdr fndecl 0 51300 &enable_so_iscsi_ping_comp_event_fndecl_51300
166322 +enable_so_xfs_qm_dqrepair_fndecl_51301 xfs_qm_dqrepair fndecl 4 51301 NULL
166323 +enable_so_vmci_qp_broker_set_page_store_fndecl_51303 vmci_qp_broker_set_page_store fndecl 2-3 51303 NULL
166324 +enable_so_y2_virtio_gpu_framebuffer_51309 y2 virtio_gpu_framebuffer 0 51309 NULL
166325 +enable_so_ieee80211_if_read_auto_open_plinks_fndecl_51311 ieee80211_if_read_auto_open_plinks fndecl 3 51311 NULL nohasharray
166326 +enable_so_mthca_alloc_icm_table_fndecl_51311 mthca_alloc_icm_table fndecl 3-4 51311 &enable_so_ieee80211_if_read_auto_open_plinks_fndecl_51311
166327 +enable_so__ipw_read_reg32_fndecl_51318 _ipw_read_reg32 fndecl 0 51318 NULL
166328 +enable_so_drv_sds_rings_qlcnic_adapter_51319 drv_sds_rings qlcnic_adapter 0 51319 NULL
166329 +enable_so_size_bts_phys_51332 size bts_phys 0 51332 NULL
166330 +enable_so_sync_dma_snd_usb_endpoint_51333 sync_dma snd_usb_endpoint 0 51333 NULL
166331 +enable_so_counter_vardecl_inode_c_51334 counter vardecl_inode.c 0 51334 NULL
166332 +enable_so_skb_put_frags_fndecl_51337 skb_put_frags fndecl 2-3 51337 NULL
166333 +enable_so_s_first_meta_bg_ext4_super_block_51338 s_first_meta_bg ext4_super_block 0 51338 NULL
166334 +enable_so_zd_mac_rx_fndecl_51339 zd_mac_rx fndecl 3 51339 NULL nohasharray
166335 +enable_so_C_SYSC_pselect6_fndecl_51339 C_SYSC_pselect6 fndecl 1 51339 &enable_so_zd_mac_rx_fndecl_51339
166336 +enable_so_xfs_bmbt_to_bmdr_fndecl_51344 xfs_bmbt_to_bmdr fndecl 3 51344 NULL nohasharray
166337 +enable_so_xfs_bmdr_to_bmbt_fndecl_51344 xfs_bmdr_to_bmbt fndecl 5 51344 &enable_so_xfs_bmbt_to_bmdr_fndecl_51344
166338 +enable_so_dev_change_flags_fndecl_51349 dev_change_flags fndecl 0 51349 NULL
166339 +enable_so_omap1_spi100k_setup_transfer_fndecl_51353 omap1_spi100k_setup_transfer fndecl 0 51353 NULL
166340 +enable_so_ftdi_process_packet_fndecl_51354 ftdi_process_packet fndecl 4 51354 NULL nohasharray
166341 +enable_so_size_seq_file_51354 size seq_file 0 51354 &enable_so_ftdi_process_packet_fndecl_51354
166342 +enable_so_get_frame_size_fndecl_51358 get_frame_size fndecl 0 51358 NULL
166343 +enable_so_length_mpc_table_51364 length mpc_table 0 51364 NULL
166344 +enable_so_ida_simple_get_fndecl_51365 ida_simple_get fndecl 0 51365 NULL nohasharray
166345 +enable_so_la_size_sect_drbd_md_51365 la_size_sect drbd_md 0 51365 &enable_so_ida_simple_get_fndecl_51365
166346 +enable_so_isr_rx_headers_read_fndecl_51366 isr_rx_headers_read fndecl 3 51366 NULL
166347 +enable_so_uvc_try_frame_interval_fndecl_51372 uvc_try_frame_interval fndecl 0-2 51372 NULL nohasharray
166348 +enable_so_sb_logblocks_xfs_sb_51372 sb_logblocks xfs_sb 0 51372 &enable_so_uvc_try_frame_interval_fndecl_51372
166349 +enable_so_callNumber_rxrpc_header_51373 callNumber rxrpc_header 0 51373 NULL
166350 +enable_so_bfad_iocmd_rport_clr_stats_fndecl_51377 bfad_iocmd_rport_clr_stats fndecl 0 51377 NULL
166351 +enable_so_ucma_query_path_fndecl_51378 ucma_query_path fndecl 3 51378 NULL
166352 +enable_so_i915_ggtt_view_size_fndecl_51385 i915_ggtt_view_size fndecl 0 51385 NULL
166353 +enable_so_num_queues_virtio_scsi_51387 num_queues virtio_scsi 0 51387 NULL
166354 +enable_so_ath6kl_wmi_addkey_cmd_fndecl_51389 ath6kl_wmi_addkey_cmd fndecl 2 51389 NULL
166355 +enable_so_reshape_progress_r10conf_51390 reshape_progress r10conf 0 51390 NULL
166356 +enable_so_size_hbucket_51397 size hbucket 0 51397 NULL
166357 +enable_so_rss_size_i40e_pf_51407 rss_size i40e_pf 0 51407 NULL
166358 +enable_so_ext4_ext_next_allocated_block_fndecl_51410 ext4_ext_next_allocated_block fndecl 0 51410 NULL
166359 +enable_so_max_header_size_irnet_socket_51423 max_header_size irnet_socket 0 51423 NULL
166360 +enable_so_base_memblock_region_51424 base memblock_region 0 51424 NULL
166361 +enable_so_num_rx_queues_ixgbevf_adapter_51428 num_rx_queues ixgbevf_adapter 0 51428 NULL
166362 +enable_so_nethctrl_vf_resources_51438 nethctrl vf_resources 0 51438 NULL
166363 +enable_so_max_cmds_ipr_ioa_cfg_51439 max_cmds ipr_ioa_cfg 0 51439 NULL
166364 +enable_so_xfs_free_file_space_fndecl_51452 xfs_free_file_space fndecl 2-3 51452 NULL
166365 +enable_so_pcpu_fc_free_fndecl_51456 pcpu_fc_free fndecl 2 51456 NULL
166366 +enable_so_nr_segments_blkif_request_indirect_51457 nr_segments blkif_request_indirect 0 51457 NULL
166367 +enable_so_size_hashlimit_cfg1_51460 size hashlimit_cfg1 0 51460 NULL
166368 +enable_so_rx_urb_size_usbnet_51461 rx_urb_size usbnet 0 51461 NULL
166369 +enable_so_nTxLock_vardecl_jfs_txnmgr_c_51464 nTxLock vardecl_jfs_txnmgr.c 0 51464 NULL
166370 +enable_so_orig_offset_iscsi_seq_51477 orig_offset iscsi_seq 0 51477 NULL
166371 +enable_so_write_ec_fiforeg_fndecl_51478 write_ec_fiforeg fndecl 2 51478 NULL
166372 +enable_so_compat_sys_rt_sigpending_fndecl_51480 compat_sys_rt_sigpending fndecl 2 51480 NULL
166373 +enable_so_finish_urb_fndecl_51484 finish_urb fndecl 3 51484 NULL
166374 +enable_so_num_vectors_mic_irq_info_51485 num_vectors mic_irq_info 0 51485 NULL
166375 +enable_so_xlog_alloc_log_fndecl_51486 xlog_alloc_log fndecl 3-4 51486 NULL
166376 +enable_so_log_blocksize_f2fs_super_block_51487 log_blocksize f2fs_super_block 0 51487 NULL
166377 +enable_so_dm_kill_unmapped_request_fndecl_51490 dm_kill_unmapped_request fndecl 2 51490 NULL
166378 +enable_so_end_soundfont_sample_info_51497 end soundfont_sample_info 0 51497 NULL
166379 +enable_so_height_drm_radeon_tex_image_51500 height drm_radeon_tex_image 0 51500 NULL
166380 +enable_so_fw_handle_comment_fndecl_51503 fw_handle_comment fndecl 3 51503 NULL
166381 +enable_so_inftl_readblock_fndecl_51508 inftl_readblock fndecl 2 51508 NULL
166382 +enable_so_xfer_len_scb_platform_data_51509 xfer_len scb_platform_data 0 51509 NULL
166383 +enable_so_count_atl1_tpd_ring_51510 count atl1_tpd_ring 0 51510 NULL
166384 +enable_so_pkt_alloc_packet_data_fndecl_51515 pkt_alloc_packet_data fndecl 1 51515 NULL nohasharray
166385 +enable_so__rtw_malloc_fndecl_51515 _rtw_malloc fndecl 1 51515 &enable_so_pkt_alloc_packet_data_fndecl_51515
166386 +enable_so_size_fb_pixmap_51528 size fb_pixmap 0 51528 NULL
166387 +enable_so_index_v4l2_subdev_frame_interval_enum_51537 index v4l2_subdev_frame_interval_enum 0 51537 NULL
166388 +enable_so_mft_no__ntfs_inode_51541 mft_no _ntfs_inode 0 51541 NULL
166389 +enable_so_len_hfa384x_info_frame_51543 len hfa384x_info_frame 0 51543 NULL
166390 +enable_so_scan_bytes_iio_dev_51546 scan_bytes iio_dev 0 51546 NULL nohasharray
166391 +enable_so_fifo_alloc_fndecl_51546 fifo_alloc fndecl 1 51546 &enable_so_scan_bytes_iio_dev_51546
166392 +enable_so_segCnt_Vmxnet3_RxCompDescExt_51547 segCnt Vmxnet3_RxCompDescExt 0 51547 NULL
166393 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_rec_51548 buffer_size snd_emu10k1_fx8010_pcm_rec 0 51548 NULL
166394 +enable_so_rcv_buf_bytes_vardecl_usbatm_c_51558 rcv_buf_bytes vardecl_usbatm.c 0 51558 NULL
166395 +enable_so_residual_len_vscsiif_response_51559 residual_len vscsiif_response 0 51559 NULL
166396 +enable_so_vfs_readv_fndecl_51560 vfs_readv fndecl 3 51560 NULL
166397 +enable_so_tegra_slink_start_tx_dma_fndecl_51568 tegra_slink_start_tx_dma fndecl 2 51568 NULL
166398 +enable_so_FABN_hfs_ext_key_51569 FABN hfs_ext_key 0 51569 NULL
166399 +enable_so_size_mdp_superblock_1_51572 size mdp_superblock_1 0 51572 NULL
166400 +enable_so_netxen_nic_change_mtu_fndecl_51573 netxen_nic_change_mtu fndecl 2 51573 NULL nohasharray
166401 +enable_so_rds_rdma_extra_size_fndecl_51573 rds_rdma_extra_size fndecl 0 51573 &enable_so_netxen_nic_change_mtu_fndecl_51573
166402 +enable_so_aio_setup_vectored_rw_fndecl_51577 aio_setup_vectored_rw fndecl 3 51577 NULL
166403 +enable_so_ino_f2fs_dir_entry_51578 ino f2fs_dir_entry 0 51578 NULL nohasharray
166404 +enable_so_s_writeshift_logfs_super_51578 s_writeshift logfs_super 0 51578 &enable_so_ino_f2fs_dir_entry_51578
166405 +enable_so_lbasize_nd_namespace_blk_51579 lbasize nd_namespace_blk 0 51579 NULL
166406 +enable_so_i_blkno_ocfs2_dinode_51582 i_blkno ocfs2_dinode 0 51582 NULL nohasharray
166407 +enable_so_persistent_ram_old_size_fndecl_51582 persistent_ram_old_size fndecl 0 51582 &enable_so_i_blkno_ocfs2_dinode_51582
166408 +enable_so_octeon_download_firmware_fndecl_51583 octeon_download_firmware fndecl 3 51583 NULL
166409 +enable_so_aggr_recv_addba_req_evt_fndecl_51590 aggr_recv_addba_req_evt fndecl 4 51590 NULL
166410 +enable_so_rx_buf_missing_hso_net_51595 rx_buf_missing hso_net 0 51595 NULL
166411 +enable_so_klsi_105_prepare_write_buffer_fndecl_51599 klsi_105_prepare_write_buffer fndecl 3 51599 NULL nohasharray
166412 +enable_so_af9013_wr_regs_i2c_fndecl_51599 af9013_wr_regs_i2c fndecl 5 51599 &enable_so_klsi_105_prepare_write_buffer_fndecl_51599 nohasharray
166413 +enable_so_ep_count_bytes_remain_fndecl_51599 ep_count_bytes_remain fndecl 0 51599 &enable_so_af9013_wr_regs_i2c_fndecl_51599 nohasharray
166414 +enable_so_il_dbgfs_chain_noise_read_fndecl_51599 il_dbgfs_chain_noise_read fndecl 3 51599 &enable_so_ep_count_bytes_remain_fndecl_51599
166415 +enable_so_receive_mergeable_fndecl_51601 receive_mergeable fndecl 5-4 51601 NULL
166416 +enable_so_data_transfer_length_vmscsi_request_51616 data_transfer_length vmscsi_request 0 51616 NULL nohasharray
166417 +enable_so_cur_vfio_pci_fill_info_51616 cur vfio_pci_fill_info 0 51616 &enable_so_data_transfer_length_vmscsi_request_51616
166418 +enable_so_alloc_ltalkdev_fndecl_51620 alloc_ltalkdev fndecl 1 51620 NULL
166419 +enable_so_ioc_plen1_obd_ioctl_data_51625 ioc_plen1 obd_ioctl_data 0 51625 NULL
166420 +enable_so_btuart_write_fndecl_51627 btuart_write fndecl 0 51627 NULL
166421 +enable_so_cifs_send_async_read_fndecl_51630 cifs_send_async_read fndecl 2 51630 NULL
166422 +enable_so_m25p80_read_fndecl_51631 m25p80_read fndecl 3 51631 NULL
166423 +enable_so_nodesize_btrfs_root_51633 nodesize btrfs_root 0 51633 NULL nohasharray
166424 +enable_so_wil_vring_init_bcast_fndecl_51633 wil_vring_init_bcast fndecl 3 51633 &enable_so_nodesize_btrfs_root_51633 nohasharray
166425 +enable_so__iwl_dbgfs_fw_dbg_conf_write_fndecl_51633 _iwl_dbgfs_fw_dbg_conf_write fndecl 3 51633 &enable_so_wil_vring_init_bcast_fndecl_51633
166426 +enable_so_SyS_llistxattr_fndecl_51635 SyS_llistxattr fndecl 3 51635 NULL
166427 +enable_so_SsidLength_ndis_802_11_ssid_51638 SsidLength ndis_802_11_ssid 0 51638 NULL
166428 +enable_so_remap_cell_to_cache_dirty_fndecl_51640 remap_cell_to_cache_dirty fndecl 4 51640 NULL
166429 +enable_so__xfs_buf_alloc_fndecl_51641 _xfs_buf_alloc fndecl 3 51641 NULL
166430 +enable_so_nsm_create_handle_fndecl_51647 nsm_create_handle fndecl 4 51647 NULL
166431 +enable_so_ath10k_mem_value_read_fndecl_51648 ath10k_mem_value_read fndecl 3 51648 NULL
166432 +enable_so_kernfs_dir_fop_llseek_fndecl_51649 kernfs_dir_fop_llseek fndecl 2 51649 NULL
166433 +enable_so_max_txsz_cxgbi_ddp_info_51655 max_txsz cxgbi_ddp_info 0 51655 NULL
166434 +enable_so_o2hb_read_slots_fndecl_51658 o2hb_read_slots fndecl 2 51658 NULL
166435 +enable_so_inet_set_ifa_fndecl_51661 inet_set_ifa fndecl 0 51661 NULL
166436 +enable_so_snd_pcm_oss_write_fndecl_51663 snd_pcm_oss_write fndecl 3 51663 NULL
166437 +enable_so_xfs_buf_readahead_map_fndecl_51666 xfs_buf_readahead_map fndecl 3 51666 NULL nohasharray
166438 +enable_so_wcn36xx_smd_rsp_process_fndecl_51666 wcn36xx_smd_rsp_process fndecl 3 51666 &enable_so_xfs_buf_readahead_map_fndecl_51666
166439 +enable_so_phys_mdio_mux_mmioreg_state_51673 phys mdio_mux_mmioreg_state 0 51673 NULL nohasharray
166440 +enable_so_resource_list_create_entry_fndecl_51673 resource_list_create_entry fndecl 2 51673 &enable_so_phys_mdio_mux_mmioreg_state_51673
166441 +enable_so_tcf_csum_ipv4_udp_fndecl_51674 tcf_csum_ipv4_udp fndecl 3 51674 NULL nohasharray
166442 +enable_so_seq_create_client1_fndecl_51674 seq_create_client1 fndecl 2 51674 &enable_so_tcf_csum_ipv4_udp_fndecl_51674
166443 +enable_so_nr_dirtied_task_struct_51675 nr_dirtied task_struct 0 51675 NULL
166444 +enable_so_ep0_read_fndecl_51676 ep0_read fndecl 3 51676 NULL
166445 +enable_so_proc_self_readlink_fndecl_51677 proc_self_readlink fndecl 3 51677 NULL
166446 +enable_so_request_key_auth_new_fndecl_51679 request_key_auth_new fndecl 3 51679 NULL
166447 +enable_so_vmw_kms_present_fndecl_51681 vmw_kms_present fndecl 9 51681 NULL nohasharray
166448 +enable_so_ls_num_nodes_dlm_ls_51681 ls_num_nodes dlm_ls 0 51681 &enable_so_vmw_kms_present_fndecl_51681
166449 +enable_so_virtio_gpu_object_create_fndecl_51692 virtio_gpu_object_create fndecl 2 51692 NULL nohasharray
166450 +enable_so_extsize_xfs_growfs_rt_51692 extsize xfs_growfs_rt 0 51692 &enable_so_virtio_gpu_object_create_fndecl_51692
166451 +enable_so_rtl8169_change_mtu_fndecl_51693 rtl8169_change_mtu fndecl 2 51693 NULL
166452 +enable_so_ms_os_descs_ext_prop_data_len_ffs_data_51698 ms_os_descs_ext_prop_data_len ffs_data 0 51698 NULL
166453 +enable_so_gfx_v7_0_get_csb_size_fndecl_51701 gfx_v7_0_get_csb_size fndecl 0 51701 NULL
166454 +enable_so_bb_numrecs_xfs_bmdr_block_51702 bb_numrecs xfs_bmdr_block 0 51702 NULL
166455 +enable_so_bNumMMCIEs_usb_wa_descriptor_51706 bNumMMCIEs usb_wa_descriptor 0 51706 NULL
166456 +enable_so_num_req_context_skd_device_51707 num_req_context skd_device 0 51707 NULL
166457 +enable_so_ubifs_scan_fndecl_51715 ubifs_scan fndecl 3 51715 NULL nohasharray
166458 +enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715 mwifiex_cmd_append_11n_tlv fndecl 0 51715 &enable_so_ubifs_scan_fndecl_51715
166459 +enable_so_tt_stat_ofs_cyttsp4_sysinfo_ofs_51717 tt_stat_ofs cyttsp4_sysinfo_ofs 0 51717 NULL
166460 +enable_so_iscsit_dump_data_payload_fndecl_51720 iscsit_dump_data_payload fndecl 2 51720 NULL
166461 +enable_so_do_wp_page_fndecl_51721 do_wp_page fndecl 3 51721 NULL nohasharray
166462 +enable_so_nlimbs_gcry_mpi_51721 nlimbs gcry_mpi 0 51721 &enable_so_do_wp_page_fndecl_51721 nohasharray
166463 +enable_so_ib_uverbs_modify_qp_fndecl_51721 ib_uverbs_modify_qp fndecl 4 51721 &enable_so_nlimbs_gcry_mpi_51721
166464 +enable_so_rx_ring_num_mlx4_en_priv_51723 rx_ring_num mlx4_en_priv 0 51723 NULL
166465 +enable_so_MaxChainDepth__MSG_IOC_FACTS_REPLY_51731 MaxChainDepth _MSG_IOC_FACTS_REPLY 0 51731 NULL
166466 +enable_so_type_learning_pkt_51733 type learning_pkt 0 51733 NULL
166467 +enable_so_xfs_da3_node_create_fndecl_51737 xfs_da3_node_create fndecl 2 51737 NULL
166468 +enable_so_bnx2_change_ring_size_fndecl_51748 bnx2_change_ring_size fndecl 3-2 51748 NULL
166469 +enable_so_sie_num_c67x00_sie_51754 sie_num c67x00_sie 0 51754 NULL
166470 +enable_so_sd_size_stat_data_v1_51758 sd_size stat_data_v1 0 51758 NULL
166471 +enable_so_find_next_usable_block_fndecl_51759 find_next_usable_block fndecl 0 51759 NULL
166472 +enable_so_rxbuf_size_alx_priv_51766 rxbuf_size alx_priv 0 51766 NULL nohasharray
166473 +enable_so_z_compress_fndecl_51766 z_compress fndecl 4-5 51766 &enable_so_rxbuf_size_alx_priv_51766
166474 +enable_so_num_var_ranges_vardecl_51769 num_var_ranges vardecl 0 51769 NULL
166475 +enable_so_ls_slot_dlm_ls_51774 ls_slot dlm_ls 0 51774 NULL
166476 +enable_so_rbio_add_io_page_fndecl_51775 rbio_add_io_page fndecl 5-6 51775 NULL
166477 +enable_so_s_blocksize_reiserfs_super_block_v1_51777 s_blocksize reiserfs_super_block_v1 0 51777 NULL
166478 +enable_so_SSID_size_atmel_private_51778 SSID_size atmel_private 0 51778 NULL
166479 +enable_so_snd_rme32_capture_getrate_fndecl_51779 snd_rme32_capture_getrate fndecl 0 51779 NULL
166480 +enable_so_btusb_qca_send_vendor_req_fndecl_51785 btusb_qca_send_vendor_req fndecl 4 51785 NULL
166481 +enable_so_msb_do_read_request_fndecl_51789 msb_do_read_request fndecl 0-2 51789 NULL
166482 +enable_so_pci_bar2_map_lpfc_hba_51792 pci_bar2_map lpfc_hba 0 51792 NULL
166483 +enable_so_ns_nextnum_the_nilfs_51797 ns_nextnum the_nilfs 0 51797 NULL
166484 +enable_so_uar_page_size_mlx4_caps_51798 uar_page_size mlx4_caps 0 51798 NULL
166485 +enable_so_fs_cgisize_efs_super_51811 fs_cgisize efs_super 0 51811 NULL
166486 +enable_so_iwl_dbgfs_thermal_throttling_read_fndecl_51816 iwl_dbgfs_thermal_throttling_read fndecl 3 51816 NULL
166487 +enable_so_si476x_core_i2c_xfer_fndecl_51818 si476x_core_i2c_xfer fndecl 4 51818 NULL
166488 +enable_so_val_ulist_node_51819 val ulist_node 0 51819 NULL
166489 +enable_so_bcache_device_init_fndecl_51822 bcache_device_init fndecl 2-3 51822 NULL
166490 +enable_so_isac_empty_fifo_fndecl_51832 isac_empty_fifo fndecl 2 51832 NULL
166491 +enable_so_udf_readpages_fndecl_51834 udf_readpages fndecl 4 51834 NULL
166492 +enable_so_hde_ast_vbios_enhtable_51835 hde ast_vbios_enhtable 0 51835 NULL
166493 +enable_so_do_pci_enable_device_fndecl_51841 do_pci_enable_device fndecl 0 51841 NULL
166494 +enable_so_nfs4_xattr_get_nfs4_acl_fndecl_51843 nfs4_xattr_get_nfs4_acl fndecl 4 51843 NULL
166495 +enable_so_mmio_len_mb862xxfb_par_51844 mmio_len mb862xxfb_par 0 51844 NULL
166496 +enable_so_xfs_qm_dqiter_bufs_fndecl_51846 xfs_qm_dqiter_bufs fndecl 3-2 51846 NULL
166497 +enable_so_max_bdi_bd_list_51847 max_bdi bd_list 0 51847 NULL
166498 +enable_so_free_size_jffs2_eraseblock_51848 free_size jffs2_eraseblock 0 51848 NULL
166499 +enable_so_xprt_rdma_max_inline_read_vardecl_transport_c_51852 xprt_rdma_max_inline_read vardecl_transport.c 0 51852 NULL
166500 +enable_so_ipv6_renew_option_fndecl_51854 ipv6_renew_option fndecl 3 51854 NULL
166501 +enable_so_nr_dma_pages_drm_savage_private_51862 nr_dma_pages drm_savage_private 0 51862 NULL
166502 +enable_so_fmr_message_size_vardecl_51869 fmr_message_size vardecl 0 51869 NULL
166503 +enable_so_TupleDataLen_tuple_t_51870 TupleDataLen tuple_t 0 51870 NULL
166504 +enable_so_efs_get_block_fndecl_51871 efs_get_block fndecl 2 51871 NULL
166505 +enable_so_MaxFrameSize_s_smt_os_51875 MaxFrameSize s_smt_os 0 51875 NULL
166506 +enable_so_vbi_height_em28xx_v4l2_51876 vbi_height em28xx_v4l2 0 51876 NULL
166507 +enable_so_lright_ext4_allocation_request_51877 lright ext4_allocation_request 0 51877 NULL
166508 +enable_so_direct_entry_fndecl_51879 direct_entry fndecl 3 51879 NULL
166509 +enable_so_compat_udp_setsockopt_fndecl_51883 compat_udp_setsockopt fndecl 5 51883 NULL
166510 +enable_so_skb_headroom_port100_51893 skb_headroom port100 0 51893 NULL nohasharray
166511 +enable_so___vlan_add_flags_fndecl_51893 __vlan_add_flags fndecl 2 51893 &enable_so_skb_headroom_port100_51893
166512 +enable_so_sys_select_fndecl_51896 sys_select fndecl 1 51896 NULL
166513 +enable_so_len_sdla_mem_51902 len sdla_mem 0 51902 NULL
166514 +enable_so_datainterval_audioformat_51903 datainterval audioformat 0 51903 NULL
166515 +enable_so_rx_buf_sz_yellowfin_private_51912 rx_buf_sz yellowfin_private 0 51912 NULL
166516 +enable_so_len_nfs3_diropargs_51913 len nfs3_diropargs 0 51913 NULL
166517 +enable_so_port_pkey_mthca_qp_path_51919 port_pkey mthca_qp_path 0 51919 NULL
166518 +enable_so_pgbase_nfs4_readlink_51921 pgbase nfs4_readlink 0 51921 NULL
166519 +enable_so_aead_sendmsg_fndecl_51926 aead_sendmsg fndecl 3 51926 NULL
166520 +enable_so_interfaces_fndecl_51928 interfaces fndecl 2 51928 NULL
166521 +enable_so_start_discovery_fndecl_51929 start_discovery fndecl 4 51929 NULL
166522 +enable_so_xfs_dir_createname_fndecl_51936 xfs_dir_createname fndecl 7 51936 NULL
166523 +enable_so___fswab16_fndecl_51937 __fswab16 fndecl 0-1 51937 NULL
166524 +enable_so_traverse_fndecl_51938 traverse fndecl 2 51938 NULL
166525 +enable_so_len_probe_resp_51942 len probe_resp 0 51942 NULL nohasharray
166526 +enable_so_probe_parport_driver_51942 probe parport_driver 0 51942 &enable_so_len_probe_resp_51942
166527 +enable_so_vram_vardecl_gxfb_core_c_51945 vram vardecl_gxfb_core.c 0 51945 NULL nohasharray
166528 +enable_so_tidcnt_ipath_tid_info_51945 tidcnt ipath_tid_info 0 51945 &enable_so_vram_vardecl_gxfb_core_c_51945
166529 +enable_so_nci_core_conn_create_fndecl_51946 nci_core_conn_create fndecl 4 51946 NULL
166530 +enable_so_rsi_mgmt_pkt_to_core_fndecl_51950 rsi_mgmt_pkt_to_core fndecl 3 51950 NULL
166531 +enable_so_size_mdp_superblock_s_51954 size mdp_superblock_s 0 51954 NULL
166532 +enable_so_max_channels_efx_nic_51955 max_channels efx_nic 0 51955 NULL nohasharray
166533 +enable_so___remaining_sg_mapping_iter_51955 __remaining sg_mapping_iter 0 51955 &enable_so_max_channels_efx_nic_51955 nohasharray
166534 +enable_so_start_drm_i915_error_state_buf_51955 start drm_i915_error_state_buf 0 51955 &enable_so___remaining_sg_mapping_iter_51955 nohasharray
166535 +enable_so_num_mpt_mlx4_profile_51955 num_mpt mlx4_profile 0 51955 &enable_so_start_drm_i915_error_state_buf_51955
166536 +enable_so___blk_queue_init_tags_fndecl_51956 __blk_queue_init_tags fndecl 2 51956 NULL
166537 +enable_so_pipe_src_w_intel_crtc_state_51963 pipe_src_w intel_crtc_state 0 51963 NULL nohasharray
166538 +enable_so_num_eqs_mthca_limits_51963 num_eqs mthca_limits 0 51963 &enable_so_pipe_src_w_intel_crtc_state_51963
166539 +enable_so_bufsize_usbhid_device_51964 bufsize usbhid_device 0 51964 NULL nohasharray
166540 +enable_so_max_data_size_mpt3_ioctl_header_51964 max_data_size mpt3_ioctl_header 0 51964 &enable_so_bufsize_usbhid_device_51964
166541 +enable_so_dbgfs_state_fndecl_51965 dbgfs_state fndecl 3 51965 NULL
166542 +enable_so_should_error_unserviceable_bio_fndecl_51968 should_error_unserviceable_bio fndecl 0 51968 NULL nohasharray
166543 +enable_so_pad_bits_regmap_config_51968 pad_bits regmap_config 0 51968 &enable_so_should_error_unserviceable_bio_fndecl_51968 nohasharray
166544 +enable_so_ieee80211_if_read_dtim_count_fndecl_51968 ieee80211_if_read_dtim_count fndecl 3 51968 &enable_so_pad_bits_regmap_config_51968
166545 +enable_so_req_lim_delta_srp_cred_req_51971 req_lim_delta srp_cred_req 0 51971 NULL
166546 +enable_so_asix_write_cmd_async_fndecl_51975 asix_write_cmd_async fndecl 5 51975 NULL
166547 +enable_so_insert_one_name_fndecl_51977 insert_one_name fndecl 6 51977 NULL
166548 +enable_so_pmcraid_copy_sglist_fndecl_51980 pmcraid_copy_sglist fndecl 3 51980 NULL
166549 +enable_so_result_rbd_obj_request_51982 result rbd_obj_request 0 51982 NULL
166550 +enable_so_pcnet32_realloc_tx_ring_fndecl_51983 pcnet32_realloc_tx_ring fndecl 3 51983 NULL
166551 +enable_so_bus_num_sm501_platdata_gpio_i2c_51989 bus_num sm501_platdata_gpio_i2c 0 51989 NULL
166552 +enable_so_f2fs_inode_by_name_fndecl_51991 f2fs_inode_by_name fndecl 0 51991 NULL
166553 +enable_so_ocfs2_which_cluster_group_fndecl_51998 ocfs2_which_cluster_group fndecl 0-2 51998 NULL
166554 +enable_so_mlx5_query_port_ptys_fndecl_52003 mlx5_query_port_ptys fndecl 3 52003 NULL
166555 +enable_so_kvm_write_guest_fndecl_52005 kvm_write_guest fndecl 2-4 52005 NULL
166556 +enable_so_s_last_psn_qib_qp_52008 s_last_psn qib_qp 0 52008 NULL nohasharray
166557 +enable_so_videobuf_waiton_fndecl_52008 videobuf_waiton fndecl 0 52008 &enable_so_s_last_psn_qib_qp_52008
166558 +enable_so_mISDN_sock_create_fndecl_52009 mISDN_sock_create fndecl 3 52009 NULL
166559 +enable_so_immediate_data_length_iscsi_build_list_52017 immediate_data_length iscsi_build_list 0 52017 NULL nohasharray
166560 +enable_so_size_fuse_write_out_52017 size fuse_write_out 0 52017 &enable_so_immediate_data_length_iscsi_build_list_52017
166561 +enable_so_batadv_iv_ogm_aggregate_new_fndecl_52022 batadv_iv_ogm_aggregate_new fndecl 2 52022 NULL
166562 +enable_so_seq_commit_fndecl_52023 seq_commit fndecl 2 52023 NULL
166563 +enable_so_dev_set_mtu_fndecl_52028 dev_set_mtu fndecl 2 52028 NULL
166564 +enable_so_blk_end_bidi_request_fndecl_52033 blk_end_bidi_request fndecl 3-4-2 52033 NULL
166565 +enable_so_kvm_arch_setup_async_pf_fndecl_52034 kvm_arch_setup_async_pf fndecl 3 52034 NULL
166566 +enable_so_c_height_g2d_frame_52036 c_height g2d_frame 0 52036 NULL
166567 +enable_so_ttm_dma_page_alloc_init_fndecl_52037 ttm_dma_page_alloc_init fndecl 2 52037 NULL nohasharray
166568 +enable_so_oobavail_mtd_info_52037 oobavail mtd_info 0 52037 &enable_so_ttm_dma_page_alloc_init_fndecl_52037
166569 +enable_so_gfs2_setattr_size_fndecl_52038 gfs2_setattr_size fndecl 2 52038 NULL nohasharray
166570 +enable_so_mapbase_priv_52038 mapbase priv 0 52038 &enable_so_gfs2_setattr_size_fndecl_52038
166571 +enable_so_xdr_shrink_pagelen_fndecl_52043 xdr_shrink_pagelen fndecl 2 52043 NULL nohasharray
166572 +enable_so_sysctl_sync_sock_size_netns_ipvs_52043 sysctl_sync_sock_size netns_ipvs 0 52043 &enable_so_xdr_shrink_pagelen_fndecl_52043
166573 +enable_so_num_controls_op_x86_model_spec_52044 num_controls op_x86_model_spec 0 52044 NULL
166574 +enable_so_min_initial_entries_vmw_cotable_info_52048 min_initial_entries vmw_cotable_info 0 52048 NULL
166575 +enable_so_btrfs_next_old_leaf_fndecl_52050 btrfs_next_old_leaf fndecl 0 52050 NULL nohasharray
166576 +enable_so_section_size_nvsp_1_message_send_send_buffer_complete_52050 section_size nvsp_1_message_send_send_buffer_complete 0 52050 &enable_so_btrfs_next_old_leaf_fndecl_52050
166577 +enable_so_cxgb_change_mtu_fndecl_52055 cxgb_change_mtu fndecl 2 52055 NULL
166578 +enable_so__iwl_dbgfs_scan_ant_rxchain_write_fndecl_52060 _iwl_dbgfs_scan_ant_rxchain_write fndecl 3 52060 NULL
166579 +enable_so_event_rx_mismatch_read_fndecl_52069 event_rx_mismatch_read fndecl 3 52069 NULL
166580 +enable_so_lpfc_bsg_copy_data_fndecl_52084 lpfc_bsg_copy_data fndecl 0-3 52084 NULL
166581 +enable_so_iscsi_create_iface_fndecl_52093 iscsi_create_iface fndecl 5 52093 NULL
166582 +enable_so_dev_names_read_fndecl_52094 dev_names_read fndecl 3 52094 NULL
166583 +enable_so_assoc_rem_len_amp_ctrl_52099 assoc_rem_len amp_ctrl 0 52099 NULL
166584 +enable_so_drv_tx_rings_qlcnic_adapter_52102 drv_tx_rings qlcnic_adapter 0 52102 NULL
166585 +enable_so_btindex_jfs_inode_info_52105 btindex jfs_inode_info 0 52105 NULL nohasharray
166586 +enable_so_ceph_handle_auth_reply_fndecl_52105 ceph_handle_auth_reply fndecl 0 52105 &enable_so_btindex_jfs_inode_info_52105
166587 +enable_so_attr_bytes_osdv1_attributes_list_element_52106 attr_bytes osdv1_attributes_list_element 0 52106 NULL
166588 +enable_so_acl_pgbase_nfs_setaclargs_52107 acl_pgbase nfs_setaclargs 0 52107 NULL
166589 +enable_so_logical_offset_btrfs_ioctl_same_args_52108 logical_offset btrfs_ioctl_same_args 0 52108 NULL
166590 +enable_so_mmc_test_nonblock_transfer_fndecl_52112 mmc_test_nonblock_transfer fndecl 6-5-3 52112 NULL nohasharray
166591 +enable_so_MaxDevices__MSG_PORT_FACTS_REPLY_52112 MaxDevices _MSG_PORT_FACTS_REPLY 0 52112 &enable_so_mmc_test_nonblock_transfer_fndecl_52112
166592 +enable_so_mlx4_ib_db_map_user_fndecl_52114 mlx4_ib_db_map_user fndecl 2 52114 NULL
166593 +enable_so_logfs_new_meta_inode_fndecl_52119 logfs_new_meta_inode fndecl 2 52119 NULL
166594 +enable_so_max3421_transfer_out_done_fndecl_52121 max3421_transfer_out_done fndecl 0 52121 NULL nohasharray
166595 +enable_so_length_wsm_update_ie_52121 length wsm_update_ie 0 52121 &enable_so_max3421_transfer_out_done_fndecl_52121
166596 +enable_so_db_page_mthca_create_srq_52122 db_page mthca_create_srq 0 52122 NULL
166597 +enable_so_bfad_iocmd_trunk_get_attr_fndecl_52123 bfad_iocmd_trunk_get_attr fndecl 0 52123 NULL
166598 +enable_so_mtu_cmtp_session_52125 mtu cmtp_session 0 52125 NULL
166599 +enable_so_prepare_header95_fndecl_52127 prepare_header95 fndecl 3-0 52127 NULL
166600 +enable_so_fjes_hw_get_max_epid_fndecl_52129 fjes_hw_get_max_epid fndecl 0 52129 NULL
166601 +enable_so_iscsi_sw_tcp_recv_fndecl_52131 iscsi_sw_tcp_recv fndecl 3 52131 NULL
166602 +enable_so_s_inode_size_ext2_sb_info_52134 s_inode_size ext2_sb_info 0 52134 NULL
166603 +enable_so_copy_ctl_value_to_user_fndecl_52136 copy_ctl_value_to_user fndecl 4 52136 NULL
166604 +enable_so_isofs_export_iget_fndecl_52144 isofs_export_iget fndecl 2-3 52144 NULL
166605 +enable_so_qib_rc_rcv_fndecl_52145 qib_rc_rcv fndecl 5 52145 NULL
166606 +enable_so_tcp_sendmsg_fndecl_52147 tcp_sendmsg fndecl 3 52147 NULL nohasharray
166607 +enable_so_tcp_update_reordering_fndecl_52147 tcp_update_reordering fndecl 2 52147 &enable_so_tcp_sendmsg_fndecl_52147
166608 +enable_so_snd_nm256_playback_copy_fndecl_52148 snd_nm256_playback_copy fndecl 5 52148 NULL
166609 +enable_so_set_le_ih_k_type_fndecl_52149 set_le_ih_k_type fndecl 2 52149 NULL
166610 +enable_so_il4965_rs_sta_dbgfs_scale_table_read_fndecl_52151 il4965_rs_sta_dbgfs_scale_table_read fndecl 3 52151 NULL
166611 +enable_so_pep_indicate_fndecl_52160 pep_indicate fndecl 5 52160 NULL
166612 +enable_so_indirect_sg_entries_vardecl_ib_srp_c_52165 indirect_sg_entries vardecl_ib_srp.c 0 52165 NULL
166613 +enable_so_mpx_mmap_fndecl_52167 mpx_mmap fndecl 0-1 52167 NULL
166614 +enable_so_nf_ct_sack_adjust_fndecl_52168 nf_ct_sack_adjust fndecl 2 52168 NULL
166615 +enable_so_mtdchar_lseek_fndecl_52170 mtdchar_lseek fndecl 2 52170 NULL
166616 +enable_so_di_numextents_efs_dinode_52171 di_numextents efs_dinode 0 52171 NULL
166617 +enable_so_compat_sys_ptrace_fndecl_52176 compat_sys_ptrace fndecl 3 52176 NULL
166618 +enable_so_b_length_xfs_buf_52177 b_length xfs_buf 0 52177 NULL
166619 +enable_so_log_sq_size_mlx5e_params_52182 log_sq_size mlx5e_params 0 52182 NULL
166620 +enable_so_smb_send_kvec_fndecl_52185 smb_send_kvec fndecl 3 52185 NULL
166621 +enable_so_rd_allocate_sgl_table_fndecl_52188 rd_allocate_sgl_table fndecl 3 52188 NULL
166622 +enable_so_virtfn_add_bus_fndecl_52190 virtfn_add_bus fndecl 2 52190 NULL
166623 +enable_so_ext2_readpages_fndecl_52195 ext2_readpages fndecl 4 52195 NULL nohasharray
166624 +enable_so_regmap_calc_reg_len_fndecl_52195 regmap_calc_reg_len fndecl 0 52195 &enable_so_ext2_readpages_fndecl_52195
166625 +enable_so_qp_broker_alloc_fndecl_52197 qp_broker_alloc fndecl 5-6 52197 NULL nohasharray
166626 +enable_so_patch_regs_regmap_52197 patch_regs regmap 0 52197 &enable_so_qp_broker_alloc_fndecl_52197
166627 +enable_so_audit_init_entry_fndecl_52199 audit_init_entry fndecl 1 52199 NULL
166628 +enable_so_metapage_get_blocks_fndecl_52200 metapage_get_blocks fndecl 0-2 52200 NULL
166629 +enable_so_mmc_send_cxd_data_fndecl_52204 mmc_send_cxd_data fndecl 5-3 52204 NULL
166630 +enable_so_hd29l2_rd_regs_fndecl_52207 hd29l2_rd_regs fndecl 4 52207 NULL
166631 +enable_so_num_lro_rxd_netxen_adapter_52211 num_lro_rxd netxen_adapter 0 52211 NULL
166632 +enable_so_write_enabled_file_bool_fndecl_52213 write_enabled_file_bool fndecl 3 52213 NULL
166633 +enable_so_num_dtv_properties_52216 num dtv_properties 0 52216 NULL
166634 +enable_so_numlower_ovl_entry_52218 numlower ovl_entry 0 52218 NULL
166635 +enable_so_BlockSize_erase_unit_header_t_52231 BlockSize erase_unit_header_t 0 52231 NULL
166636 +enable_so_lpc_sch_get_io_fndecl_52232 lpc_sch_get_io fndecl 5 52232 NULL
166637 +enable_so_nfs3_proc_readlink_fndecl_52235 nfs3_proc_readlink fndecl 4-3 52235 NULL
166638 +enable_so_num_ports_mthca_limits_52246 num_ports mthca_limits 0 52246 NULL
166639 +enable_so_efs_iget_fndecl_52247 efs_iget fndecl 2 52247 NULL
166640 +enable_so_size_elf_note_info_52250 size elf_note_info 0 52250 NULL
166641 +enable_so_snd_hda_get_conn_list_fndecl_52255 snd_hda_get_conn_list fndecl 0 52255 NULL
166642 +enable_so_bufsize_brcmf_console_52266 bufsize brcmf_console 0 52266 NULL
166643 +enable_so_value_len_xattr_52269 value_len xattr 0 52269 NULL nohasharray
166644 +enable_so_pd_idx_stripe_head_52269 pd_idx stripe_head 0 52269 &enable_so_value_len_xattr_52269
166645 +enable_so_hdsp_set_rate_fndecl_52271 hdsp_set_rate fndecl 2 52271 NULL nohasharray
166646 +enable_so_hfsplus_ext_find_block_fndecl_52271 hfsplus_ext_find_block fndecl 0-2 52271 &enable_so_hdsp_set_rate_fndecl_52271 nohasharray
166647 +enable_so_req_depth_pvscsi_adapter_52271 req_depth pvscsi_adapter 0 52271 &enable_so_hfsplus_ext_find_block_fndecl_52271
166648 +enable_so_set_multcount_fndecl_52272 set_multcount fndecl 2 52272 NULL
166649 +enable_so_hlen_raw_frag_vec_52276 hlen raw_frag_vec 0 52276 NULL
166650 +enable_so_num_alt_cx231xx_audio_52283 num_alt cx231xx_audio 0 52283 NULL
166651 +enable_so_length_sigma_fw_chunk_52285 length sigma_fw_chunk 0 52285 NULL
166652 +enable_so_hpfs_alloc_dnode_fndecl_52288 hpfs_alloc_dnode fndecl 2 52288 NULL
166653 +enable_so_read_pointer_osst_buffer_52292 read_pointer osst_buffer 0 52292 NULL
166654 +enable_so_reserve_low_vardecl_setup_c_52293 reserve_low vardecl_setup.c 0 52293 NULL
166655 +enable_so_rts51x_get_max_lun_fndecl_52294 rts51x_get_max_lun fndecl 0 52294 NULL
166656 +enable_so_npage_vwork_52298 npage vwork 0 52298 NULL
166657 +enable_so_slot_legacy_probe_52300 slot legacy_probe 0 52300 NULL
166658 +enable_so_setup_items_for_insert_fndecl_52301 setup_items_for_insert fndecl 7 52301 NULL
166659 +enable_so_origin_size_thin_c_52302 origin_size thin_c 0 52302 NULL
166660 +enable_so_longest_match_fndecl_52304 longest_match fndecl 0 52304 NULL
166661 +enable_so_alloc_page_ext_fndecl_52310 alloc_page_ext fndecl 1 52310 NULL
166662 +enable_so_h_stop_saa7134_tvnorm_52311 h_stop saa7134_tvnorm 0 52311 NULL
166663 +enable_so_rss_table_entry_width_i40e_hw_capabilities_52312 rss_table_entry_width i40e_hw_capabilities 0 52312 NULL
166664 +enable_so_ep_out_kingsun_cb_52317 ep_out kingsun_cb 0 52317 NULL
166665 +enable_so_pglen_nfs4_readlink_52318 pglen nfs4_readlink 0 52318 NULL
166666 +enable_so_cmd_len_c2h_evt_hdr_52322 cmd_len c2h_evt_hdr 0 52322 NULL
166667 +enable_so_rx_filter_dup_filter_read_fndecl_52325 rx_filter_dup_filter_read fndecl 3 52325 NULL
166668 +enable_so_iwl_dbgfs_d3_sram_read_fndecl_52326 iwl_dbgfs_d3_sram_read fndecl 3 52326 NULL
166669 +enable_so_cxgbi_conn_init_pdu_fndecl_52327 cxgbi_conn_init_pdu fndecl 3 52327 NULL
166670 +enable_so_inline_rsize_rpcrdma_create_data_internal_52331 inline_rsize rpcrdma_create_data_internal 0 52331 NULL
166671 +enable_so_regmap_access_read_file_fndecl_52340 regmap_access_read_file fndecl 3 52340 NULL nohasharray
166672 +enable_so_epp_max_pages_ptlrpc_enc_page_pool_52340 epp_max_pages ptlrpc_enc_page_pool 0 52340 &enable_so_regmap_access_read_file_fndecl_52340
166673 +enable_so___do_replace_fndecl_52344 __do_replace fndecl 5 52344 NULL
166674 +enable_so_xpc_connect_fndecl_52346 xpc_connect fndecl 5 52346 NULL
166675 +enable_so_mac_header_sk_buff_52356 mac_header sk_buff 0 52356 NULL
166676 +enable_so__iwl_dbgfs_fw_restart_write_fndecl_52357 _iwl_dbgfs_fw_restart_write fndecl 3 52357 NULL
166677 +enable_so_pipe_src_h_intel_crtc_state_52358 pipe_src_h intel_crtc_state 0 52358 NULL nohasharray
166678 +enable_so_blk_queue_max_hw_sectors_fndecl_52358 blk_queue_max_hw_sectors fndecl 2 52358 &enable_so_pipe_src_h_intel_crtc_state_52358 nohasharray
166679 +enable_so_rtl_read_byte_fndecl_52358 rtl_read_byte fndecl 0 52358 &enable_so_blk_queue_max_hw_sectors_fndecl_52358
166680 +enable_so_nested_svm_map_fndecl_52359 nested_svm_map fndecl 2 52359 NULL
166681 +enable_so_nr_upid_52360 nr upid 0 52360 NULL
166682 +enable_so_lro_add_common_fndecl_52363 lro_add_common fndecl 4 52363 NULL
166683 +enable_so_r_cpos_ocfs2_refcount_rec_52365 r_cpos ocfs2_refcount_rec 0 52365 NULL nohasharray
166684 +enable_so_create_cq_user_fndecl_52365 create_cq_user fndecl 5 52365 &enable_so_r_cpos_ocfs2_refcount_rec_52365
166685 +enable_so_se_callback_netid_len_nfsd4_setclientid_52366 se_callback_netid_len nfsd4_setclientid 0 52366 NULL
166686 +enable_so_req_depth__MPT_ADAPTER_52375 req_depth _MPT_ADAPTER 0 52375 NULL nohasharray
166687 +enable_so_num_phys_mptsas_portinfo_52375 num_phys mptsas_portinfo 0 52375 &enable_so_req_depth__MPT_ADAPTER_52375
166688 +enable_so_rh_string_fndecl_52376 rh_string fndecl 0-4 52376 NULL nohasharray
166689 +enable_so_nrealreaders_vardecl_rcutorture_c_52376 nrealreaders vardecl_rcutorture.c 0 52376 &enable_so_rh_string_fndecl_52376
166690 +enable_so_bMaxBurst_usb_ss_ep_comp_descriptor_52382 bMaxBurst usb_ss_ep_comp_descriptor 0 52382 NULL
166691 +enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383 ath6kl_wmi_set_ie_cmd fndecl 6-2 52383 NULL nohasharray
166692 +enable_so_sg_pgoffset_sg_page_iter_52383 sg_pgoffset sg_page_iter 0 52383 &enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383
166693 +enable_so_error_tbc_exch_mismatch_read_fndecl_52388 error_tbc_exch_mismatch_read fndecl 3 52388 NULL
166694 +enable_so_raw_bufsize_edt_ft5x06_ts_data_52390 raw_bufsize edt_ft5x06_ts_data 0 52390 NULL
166695 +enable_so_ieee80211_if_read_power_mode_fndecl_52394 ieee80211_if_read_power_mode fndecl 3 52394 NULL
166696 +enable_so_jffs2_write_dirent_fndecl_52396 jffs2_write_dirent fndecl 5 52396 NULL
166697 +enable_so_u132_hcd_initial_input_recv_fndecl_52397 u132_hcd_initial_input_recv fndecl 4 52397 NULL
166698 +enable_so_srp_map_idb_fndecl_52402 srp_map_idb fndecl 0-5 52402 NULL
166699 +enable_so_length_TAG_TW_SG_Entry_52403 length TAG_TW_SG_Entry 0 52403 NULL
166700 +enable_so_eapol_len_wmi_eapol_rx_event_52408 eapol_len wmi_eapol_rx_event 0 52408 NULL
166701 +enable_so_command_fndecl_52411 command fndecl 0 52411 NULL
166702 +enable_so_wm8904_set_fll_fndecl_52413 wm8904_set_fll fndecl 4-5 52413 NULL nohasharray
166703 +enable_so_type_sctp_chunkhdr_52413 type sctp_chunkhdr 0 52413 &enable_so_wm8904_set_fll_fndecl_52413
166704 +enable_so_agp_return_size_fndecl_52417 agp_return_size fndecl 0 52417 NULL nohasharray
166705 +enable_so_scsi_mode_select_fndecl_52417 scsi_mode_select fndecl 6 52417 &enable_so_agp_return_size_fndecl_52417
166706 +enable_so_sddr09_read_control_fndecl_52418 sddr09_read_control fndecl 3-5 52418 NULL
166707 +enable_so_group_ocfs2_new_group_input_52421 group ocfs2_new_group_input 0 52421 NULL
166708 +enable_so_move_vma_fndecl_52430 move_vma fndecl 4-5-2-3 52430 NULL
166709 +enable_so_zap_pte_range_fndecl_52434 zap_pte_range fndecl 4-0 52434 NULL
166710 +enable_so_min_scaled_width_bttv_crop_52442 min_scaled_width bttv_crop 0 52442 NULL
166711 +enable_so_alt_offset132_cm_req_msg_52443 alt_offset132 cm_req_msg 0 52443 NULL nohasharray
166712 +enable_so_max_tag_sym_driver_setup_52443 max_tag sym_driver_setup 0 52443 &enable_so_alt_offset132_cm_req_msg_52443
166713 +enable_so_dvb_max_pkt_size_isoc_em28xx_52444 dvb_max_pkt_size_isoc em28xx 0 52444 NULL nohasharray
166714 +enable_so_map_nth_dirent_fndecl_52444 map_nth_dirent fndecl 2 52444 &enable_so_dvb_max_pkt_size_isoc_em28xx_52444
166715 +enable_so_read_rsp_size_smb_version_values_52446 read_rsp_size smb_version_values 0 52446 NULL
166716 +enable_so_bulk_out_size_usb_serial_port_52448 bulk_out_size usb_serial_port 0 52448 NULL
166717 +enable_so_wl1251_spi_write_fndecl_52450 wl1251_spi_write fndecl 4 52450 NULL nohasharray
166718 +enable_so_corr_peb_count_ubi_device_52450 corr_peb_count ubi_device 0 52450 &enable_so_wl1251_spi_write_fndecl_52450
166719 +enable_so_can_queue_scsi_host_template_52454 can_queue scsi_host_template 0 52454 NULL
166720 +enable_so_end_bus_pci_mmcfg_region_52468 end_bus pci_mmcfg_region 0 52468 NULL
166721 +enable_so_nvi_vf_resources_52470 nvi vf_resources 0 52470 NULL
166722 +enable_so_sz_field_t_52472 sz field_t 0 52472 NULL
166723 +enable_so_security_inode_getsecurity_fndecl_52473 security_inode_getsecurity fndecl 0 52473 NULL
166724 +enable_so_metadata_snap_era_metadata_52475 metadata_snap era_metadata 0 52475 NULL
166725 +enable_so_ppp_hard_header_fndecl_52482 ppp_hard_header fndecl 3 52482 NULL
166726 +enable_so_ib_ucm_alloc_data_fndecl_52486 ib_ucm_alloc_data fndecl 3 52486 NULL
166727 +enable_so_eqpc_entry_sz_mthca_dev_lim_52498 eqpc_entry_sz mthca_dev_lim 0 52498 NULL
166728 +enable_so_s_clustersize_bits_ocfs2_super_52499 s_clustersize_bits ocfs2_super 0 52499 NULL
166729 +enable_so_tx_tx_data_programmed_read_fndecl_52500 tx_tx_data_programmed_read fndecl 3 52500 NULL
166730 +enable_so_ControllerNumber_DAC960_Controller_52503 ControllerNumber DAC960_Controller 0 52503 NULL nohasharray
166731 +enable_so_ipath_portcnt_ipath_devdata_52503 ipath_portcnt ipath_devdata 0 52503 &enable_so_ControllerNumber_DAC960_Controller_52503
166732 +enable_so_used_ubifs_wbuf_52504 used ubifs_wbuf 0 52504 NULL
166733 +enable_so_xfs_vm_kill_delalloc_range_fndecl_52505 xfs_vm_kill_delalloc_range fndecl 2 52505 NULL
166734 +enable_so_svc_setsockopt_fndecl_52511 svc_setsockopt fndecl 5 52511 NULL
166735 +enable_so_num_sprole_pws_gr_arg_52515 num_sprole_pws gr_arg 0 52515 NULL
166736 +enable_so_size_virtio_gpu_vbuffer_52521 size virtio_gpu_vbuffer 0 52521 NULL
166737 +enable_so_copy_batch_fndecl_52524 copy_batch fndecl 3-4 52524 NULL
166738 +enable_so_mode_data_length_mode_page_header_52525 mode_data_length mode_page_header 0 52525 NULL
166739 +enable_so_refcount_loc_ocfs2_move_extents_context_52526 refcount_loc ocfs2_move_extents_context 0 52526 NULL
166740 +enable_so_vm_cmdline_id_vardecl_virtio_mmio_c_52527 vm_cmdline_id vardecl_virtio_mmio.c 0 52527 NULL
166741 +enable_so_tas5086_register_size_fndecl_52528 tas5086_register_size fndecl 0 52528 NULL
166742 +enable_so_fps_solo_dev_52530 fps solo_dev 0 52530 NULL
166743 +enable_so_selinux_inode_notifysecctx_fndecl_52531 selinux_inode_notifysecctx fndecl 3 52531 NULL
166744 +enable_so_iov_offset_iov_iter_52535 iov_offset iov_iter 0 52535 NULL
166745 +enable_so_rx_buf_sz_hamachi_private_52536 rx_buf_sz hamachi_private 0 52536 NULL
166746 +enable_so_psn_ib_ucm_req_52539 psn ib_ucm_req 0 52539 NULL
166747 +enable_so_queue_pair_size_vmci_transport_52540 queue_pair_size vmci_transport 0 52540 NULL
166748 +enable_so_packet_sendmsg_spkt_fndecl_52542 packet_sendmsg_spkt fndecl 3 52542 NULL
166749 +enable_so_rdb_shift_mthca_qp_table_52547 rdb_shift mthca_qp_table 0 52547 NULL
166750 +enable_so_bfad_iocmd_phy_get_stats_fndecl_52549 bfad_iocmd_phy_get_stats fndecl 0 52549 NULL
166751 +enable_so_dccp_insert_option_fndecl_52554 dccp_insert_option fndecl 4 52554 NULL
166752 +enable_so_ovfx2_i2c_r_fndecl_52555 ovfx2_i2c_r fndecl 0 52555 NULL
166753 +enable_so_write_leb_fndecl_52558 write_leb fndecl 5 52558 NULL
166754 +enable_so_num_mtt_mlx4_profile_52565 num_mtt mlx4_profile 0 52565 NULL
166755 +enable_so_data_size_binder_transaction_data_52567 data_size binder_transaction_data 0 52567 NULL
166756 +enable_so_nents_isert_data_buf_52570 nents isert_data_buf 0 52570 NULL
166757 +enable_so_end_logsuper_52574 end logsuper 0 52574 NULL
166758 +enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575 amdgpu_ttm_tt_set_userptr fndecl 2 52575 NULL nohasharray
166759 +enable_so_data_length_iscsi_r2t_info_52575 data_length iscsi_r2t_info 0 52575 &enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575
166760 +enable_so_device_create_groups_vargs_fndecl_52576 device_create_groups_vargs fndecl 3 52576 NULL nohasharray
166761 +enable_so_il4965_rs_sta_dbgfs_scale_table_write_fndecl_52576 il4965_rs_sta_dbgfs_scale_table_write fndecl 3 52576 &enable_so_device_create_groups_vargs_fndecl_52576
166762 +enable_so___mincore_unmapped_range_fndecl_52595 __mincore_unmapped_range fndecl 1 52595 NULL
166763 +enable_so_xfs_shift_file_space_fndecl_52596 xfs_shift_file_space fndecl 2-3 52596 NULL
166764 +enable_so_cached_dev_init_fndecl_52600 cached_dev_init fndecl 2 52600 NULL
166765 +enable_so_length_usbdevfs_iso_packet_desc_52610 length usbdevfs_iso_packet_desc 0 52610 NULL
166766 +enable_so_ondemand_readahead_fndecl_52612 ondemand_readahead fndecl 5 52612 NULL
166767 +enable_so_datalen_tcf_ematch_52613 datalen tcf_ematch 0 52613 NULL
166768 +enable_so_wl1251_spi_read_fndecl_52615 wl1251_spi_read fndecl 4 52615 NULL
166769 +enable_so___logfs_write_je_fndecl_52617 __logfs_write_je fndecl 4 52617 NULL nohasharray
166770 +enable_so_max_sge_ib_device_attr_52617 max_sge ib_device_attr 0 52617 &enable_so___logfs_write_je_fndecl_52617
166771 +enable_so__set_error_resid_fndecl_52623 _set_error_resid fndecl 3 52623 NULL
166772 +enable_so_drbd_new_dev_size_fndecl_52629 drbd_new_dev_size fndecl 0-3 52629 NULL
166773 +enable_so_auok190xfb_write_fndecl_52634 auok190xfb_write fndecl 3 52634 NULL
166774 +enable_so_setxattr_fndecl_52637 setxattr fndecl 4 52637 NULL nohasharray
166775 +enable_so_burst_len_qcaspi_52637 burst_len qcaspi 0 52637 &enable_so_setxattr_fndecl_52637
166776 +enable_so___do_fault_fndecl_52642 __do_fault fndecl 3 52642 NULL
166777 +enable_so_page_count_drm_device_dma_52645 page_count drm_device_dma 0 52645 NULL
166778 +enable_so_num_txq_per_tx_bnad_52646 num_txq_per_tx bnad 0 52646 NULL
166779 +enable_so_vni_vxlan_config_52649 vni vxlan_config 0 52649 NULL
166780 +enable_so_bop_insert_nilfs_bmap_operations_52653 bop_insert nilfs_bmap_operations 0 52653 NULL
166781 +enable_so_qp_broker_create_fndecl_52654 qp_broker_create fndecl 5-6 52654 NULL
166782 +enable_so_extra_bytes_sym_ccb_52656 extra_bytes sym_ccb 0 52656 NULL
166783 +enable_so_block_size_ms_boot_attr_info_52659 block_size ms_boot_attr_info 0 52659 NULL
166784 +enable_so_ieee80211_chsw_switch_vifs_fndecl_52661 ieee80211_chsw_switch_vifs fndecl 2 52661 NULL
166785 +enable_so_ec_i2c_xfer_fndecl_52662 ec_i2c_xfer fndecl 3 52662 NULL
166786 +enable_so_snd_hdac_get_sub_nodes_fndecl_52668 snd_hdac_get_sub_nodes fndecl 0 52668 NULL
166787 +enable_so_vt_ast_vbios_enhtable_52669 vt ast_vbios_enhtable 0 52669 NULL nohasharray
166788 +enable_so_command_file_read_fndecl_52669 command_file_read fndecl 3 52669 &enable_so_vt_ast_vbios_enhtable_52669
166789 +enable_so_vmap_batch_fndecl_52675 vmap_batch fndecl 2-3 52675 NULL
166790 +enable_so_parse_command_fndecl_52676 parse_command fndecl 2 52676 NULL
166791 +enable_so_pcm512x_sck_max_fndecl_52677 pcm512x_sck_max fndecl 0 52677 NULL nohasharray
166792 +enable_so_SYSC_setxattr_fndecl_52677 SYSC_setxattr fndecl 4 52677 &enable_so_pcm512x_sck_max_fndecl_52677
166793 +enable_so_drm_mode_create_rotation_property_fndecl_52681 drm_mode_create_rotation_property fndecl 2 52681 NULL
166794 +enable_so_lvb_iclusters_ocfs2_meta_lvb_52684 lvb_iclusters ocfs2_meta_lvb 0 52684 NULL
166795 +enable_so_num_snd_urbs_vardecl_usbatm_c_52685 num_snd_urbs vardecl_usbatm.c 0 52685 NULL
166796 +enable_so_btrfs_double_extent_unlock_fndecl_52687 btrfs_double_extent_unlock fndecl 2-4-5 52687 NULL
166797 +enable_so_fpHeight_nvidia_par_52691 fpHeight nvidia_par 0 52691 NULL nohasharray
166798 +enable_so_urb_done_max3421_hcd_52691 urb_done max3421_hcd 0 52691 &enable_so_fpHeight_nvidia_par_52691
166799 +enable_so_max_data_link_payload_nfc_hci_dev_52699 max_data_link_payload nfc_hci_dev 0 52699 NULL
166800 +enable_so__iwl_dbgfs_bcast_filters_macs_write_fndecl_52702 _iwl_dbgfs_bcast_filters_macs_write fndecl 3 52702 NULL
166801 +enable_so_count_vfio_pci_hot_reset_52708 count vfio_pci_hot_reset 0 52708 NULL
166802 +enable_so_gen_ie_buf_len_mwifiex_private_52710 gen_ie_buf_len mwifiex_private 0 52710 NULL
166803 +enable_so_s_je_fill_logfs_super_52713 s_je_fill logfs_super 0 52713 NULL
166804 +enable_so_videomemorysize_vardecl_vfb_c_52716 videomemorysize vardecl_vfb.c 0 52716 NULL nohasharray
166805 +enable_so_wptr_old_radeon_ring_52716 wptr_old radeon_ring 0 52716 &enable_so_videomemorysize_vardecl_vfb_c_52716
166806 +enable_so_einj_error_inject_fndecl_52724 einj_error_inject fndecl 4-3 52724 NULL
166807 +enable_so_cifs_min_small_vardecl_52732 cifs_min_small vardecl 0 52732 NULL
166808 +enable_so_hmac_id_sctp_hmac_52747 hmac_id sctp_hmac 0 52747 NULL
166809 +enable_so_vmw_framebuffer_dmabuf_dirty_fndecl_52750 vmw_framebuffer_dmabuf_dirty fndecl 6 52750 NULL
166810 +enable_so_dd_fcrport_size_fc_function_template_52753 dd_fcrport_size fc_function_template 0 52753 NULL
166811 +enable_so_SyS_mbind_fndecl_52757 SyS_mbind fndecl 5 52757 NULL
166812 +enable_so_num_btns_cyttsp4_sysinfo_ofs_52758 num_btns cyttsp4_sysinfo_ofs 0 52758 NULL
166813 +enable_so_usbhs_pkt_push_fndecl_52759 usbhs_pkt_push fndecl 5 52759 NULL nohasharray
166814 +enable_so_dr_blkno_ocfs2_dx_root_block_52759 dr_blkno ocfs2_dx_root_block 0 52759 &enable_so_usbhs_pkt_push_fndecl_52759
166815 +enable_so_playback_frlog_rme96_52763 playback_frlog rme96 0 52763 NULL
166816 +enable_so_height_drm_radeon_texture_52764 height drm_radeon_texture 0 52764 NULL
166817 +enable_so_wIDIbytesPerSector_ms_bootblock_idi_52770 wIDIbytesPerSector ms_bootblock_idi 0 52770 NULL
166818 +enable_so_size_drm_i915_gem_create_52771 size drm_i915_gem_create 0 52771 NULL
166819 +enable_so_maxBuf_TCP_Server_Info_52774 maxBuf TCP_Server_Info 0 52774 NULL nohasharray
166820 +enable_so_regmap_map_read_file_fndecl_52774 regmap_map_read_file fndecl 3 52774 &enable_so_maxBuf_TCP_Server_Info_52774
166821 +enable_so_leaf_paste_entries_fndecl_52780 leaf_paste_entries fndecl 4-7 52780 NULL
166822 +enable_so_SYSC_get_mempolicy_fndecl_52787 SYSC_get_mempolicy fndecl 3 52787 NULL
166823 +enable_so_avc_ca_pmt_fndecl_52789 avc_ca_pmt fndecl 3 52789 NULL
166824 +enable_so_setup_transfer_spi_bitbang_52790 setup_transfer spi_bitbang 0 52790 NULL
166825 +enable_so_qxl_allocate_chunk_fndecl_52791 qxl_allocate_chunk fndecl 4 52791 NULL nohasharray
166826 +enable_so_tcp_mss_split_point_fndecl_52791 tcp_mss_split_point fndecl 0 52791 &enable_so_qxl_allocate_chunk_fndecl_52791
166827 +enable_so_batadv_get_vid_fndecl_52792 batadv_get_vid fndecl 0-2 52792 NULL nohasharray
166828 +enable_so_ieee80211_if_read_rc_rateidx_mcs_mask_2ghz_fndecl_52792 ieee80211_if_read_rc_rateidx_mcs_mask_2ghz fndecl 3 52792 &enable_so_batadv_get_vid_fndecl_52792
166829 +enable_so___wa_seg_calculate_isoc_frame_count_fndecl_52795 __wa_seg_calculate_isoc_frame_count fndecl 0 52795 NULL
166830 +enable_so_buffer_size_vardecl_ethoc_c_52796 buffer_size vardecl_ethoc.c 0 52796 NULL
166831 +enable_so_payload_len_bfa_bsg_data_52800 payload_len bfa_bsg_data 0 52800 NULL
166832 +enable_so_i40e_dbg_dump_data_len_vardecl_i40e_debugfs_c_52806 i40e_dbg_dump_data_len vardecl_i40e_debugfs.c 0 52806 NULL nohasharray
166833 +enable_so_parport_ieee1284_epp_write_data_fndecl_52806 parport_ieee1284_epp_write_data fndecl 0 52806 &enable_so_i40e_dbg_dump_data_len_vardecl_i40e_debugfs_c_52806
166834 +enable_so_ule_sndu_type_dvb_net_priv_52811 ule_sndu_type dvb_net_priv 0 52811 NULL
166835 +enable_so_mmc_test_map_sg_fndecl_52812 mmc_test_map_sg fndecl 6-5-8-2 52812 NULL
166836 +enable_so_ata_scsi_change_queue_depth_fndecl_52821 ata_scsi_change_queue_depth fndecl 2 52821 NULL
166837 +enable_so_brcmf_sdiod_recv_chain_fndecl_52822 brcmf_sdiod_recv_chain fndecl 3 52822 NULL
166838 +enable_so_wiphy_new_nm_fndecl_52833 wiphy_new_nm fndecl 2 52833 NULL
166839 +enable_so_xdr_encode_array2_fndecl_52834 xdr_encode_array2 fndecl 0-2 52834 NULL
166840 +enable_so_ocfs2_control_cfu_fndecl_52837 ocfs2_control_cfu fndecl 2 52837 NULL
166841 +enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838 ocfs2_duplicate_clusters_by_jbd fndecl 4-5 52838 NULL nohasharray
166842 +enable_so_xfs_read_agf_fndecl_52838 xfs_read_agf fndecl 3 52838 &enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838
166843 +enable_so_xfs_cross_rename_fndecl_52839 xfs_cross_rename fndecl 10 52839 NULL
166844 +enable_so_ext2_fsync_fndecl_52850 ext2_fsync fndecl 2-3 52850 NULL
166845 +enable_so_netxen_validate_ringparam_fndecl_52863 netxen_validate_ringparam fndecl 0 52863 NULL
166846 +enable_so_wqe_shift_mlx5_ib_wq_52867 wqe_shift mlx5_ib_wq 0 52867 NULL nohasharray
166847 +enable_so_mlx4_load_one_fndecl_52867 mlx4_load_one fndecl 3 52867 &enable_so_wqe_shift_mlx5_ib_wq_52867
166848 +enable_so_video_ram_radeonfb_info_52868 video_ram radeonfb_info 0 52868 NULL
166849 +enable_so_ddata_ofsh_cyttsp4_sysinfo_data_52870 ddata_ofsh cyttsp4_sysinfo_data 0 52870 NULL
166850 +enable_so_scsi_debug_sector_size_vardecl_scsi_debug_c_52879 scsi_debug_sector_size vardecl_scsi_debug.c 0 52879 NULL
166851 +enable_so_offset_pipe_buffer_52880 offset pipe_buffer 0 52880 NULL
166852 +enable_so_address_length_acpi_resource_memory24_52885 address_length acpi_resource_memory24 0 52885 NULL nohasharray
166853 +enable_so_dccp_setsockopt_cscov_fndecl_52885 dccp_setsockopt_cscov fndecl 2-0 52885 &enable_so_address_length_acpi_resource_memory24_52885
166854 +enable_so_nvram_len_nvram_parser_52887 nvram_len nvram_parser 0 52887 NULL
166855 +enable_so_buffer_size_vardecl_ir_usb_c_52893 buffer_size vardecl_ir-usb.c 0 52893 NULL
166856 +enable_so_ino_jffs2_full_dirent_52898 ino jffs2_full_dirent 0 52898 NULL nohasharray
166857 +enable_so_max_pde_used_amdgpu_vm_52898 max_pde_used amdgpu_vm 0 52898 &enable_so_ino_jffs2_full_dirent_52898
166858 +enable_so_ocrdma_alloc_frmr_page_list_fndecl_52900 ocrdma_alloc_frmr_page_list fndecl 2 52900 NULL
166859 +enable_so_data_len_hermes_rx_descriptor_52909 data_len hermes_rx_descriptor 0 52909 NULL
166860 +enable_so_rx_decrypt_key_not_found_read_fndecl_52911 rx_decrypt_key_not_found_read fndecl 3 52911 NULL
166861 +enable_so_buf_width_s5p_mfc_ctx_52912 buf_width s5p_mfc_ctx 0 52912 NULL
166862 +enable_so_il4965_rs_sta_dbgfs_rate_scale_data_read_fndecl_52915 il4965_rs_sta_dbgfs_rate_scale_data_read fndecl 3 52915 NULL
166863 +enable_so_dir_seek_data_fndecl_52916 dir_seek_data fndecl 2-0 52916 NULL nohasharray
166864 +enable_so_of_alias_add_fndecl_52916 of_alias_add fndecl 3 52916 &enable_so_dir_seek_data_fndecl_52916 nohasharray
166865 +enable_so_cqc_entry_sz_mlx4_dev_cap_52916 cqc_entry_sz mlx4_dev_cap 0 52916 &enable_so_of_alias_add_fndecl_52916
166866 +enable_so_num_tx_queues_e1000_adapter_52922 num_tx_queues e1000_adapter 0 52922 NULL
166867 +enable_so_smk_read_logging_fndecl_52927 smk_read_logging fndecl 3 52927 NULL
166868 +enable_so_swd_swregs_state_52928 swd swregs_state 0 52928 NULL
166869 +enable_so_max_write_shift_ubifs_info_52936 max_write_shift ubifs_info 0 52936 NULL nohasharray
166870 +enable_so_count_i40e_ring_52936 count i40e_ring 0 52936 &enable_so_max_write_shift_ubifs_info_52936 nohasharray
166871 +enable_so_o2hb_debug_read_fndecl_52936 o2hb_debug_read fndecl 3 52936 &enable_so_count_i40e_ring_52936
166872 +enable_so_si2165_write_fndecl_52941 si2165_write fndecl 4 52941 NULL
166873 +enable_so_rules_count_canid_match_52943 rules_count canid_match 0 52943 NULL nohasharray
166874 +enable_so_num_rx_ethoc_52943 num_rx ethoc 0 52943 &enable_so_rules_count_canid_match_52943
166875 +enable_so_pipe_urb_52947 pipe urb 0 52947 NULL
166876 +enable_so_minor_drbd_genlmsghdr_52949 minor drbd_genlmsghdr 0 52949 NULL
166877 +enable_so_position_jfs_dirent_52952 position jfs_dirent 0 52952 NULL
166878 +enable_so_trigger_level_eg20t_port_52953 trigger_level eg20t_port 0 52953 NULL
166879 +enable_so_i2c_read_demod_bytes_fndecl_52958 i2c_read_demod_bytes fndecl 4 52958 NULL
166880 +enable_so_bnx2fc_get_paged_crc_eof_fndecl_52960 bnx2fc_get_paged_crc_eof fndecl 2 52960 NULL
166881 +enable_so_fw_size_pvr2_hdw_52961 fw_size pvr2_hdw 0 52961 NULL
166882 +enable_so_rsp_size_srpt_rdma_ch_52963 rsp_size srpt_rdma_ch 0 52963 NULL
166883 +enable_so_musb_h_ep0_continue_fndecl_52966 musb_h_ep0_continue fndecl 2 52966 NULL
166884 +enable_so_sys_setxattr_fndecl_52971 sys_setxattr fndecl 4 52971 NULL
166885 +enable_so_dma_start_lo_rx_buf_desc_52972 dma_start_lo rx_buf_desc 0 52972 NULL
166886 +enable_so_dataOutSize_mpt_ioctl_command_52974 dataOutSize mpt_ioctl_command 0 52974 NULL
166887 +enable_so_dvb_net_sec_fndecl_52975 dvb_net_sec fndecl 3 52975 NULL nohasharray
166888 +enable_so_xdr_truncate_encode_fndecl_52975 xdr_truncate_encode fndecl 2 52975 &enable_so_dvb_net_sec_fndecl_52975
166889 +enable_so_scatter_n_efx_rx_queue_52988 scatter_n efx_rx_queue 0 52988 NULL
166890 +enable_so_xfs_dir2_block_to_sf_fndecl_52991 xfs_dir2_block_to_sf fndecl 3 52991 NULL
166891 +enable_so_max_rx_agg_size_iwl_cfg_52997 max_rx_agg_size iwl_cfg 0 52997 NULL
166892 +enable_so_hidp_output_report_fndecl_53002 hidp_output_report fndecl 3 53002 NULL
166893 +enable_so_actual_length_urb_53003 actual_length urb 0 53003 NULL
166894 +enable_so___shadow_block_fndecl_53011 __shadow_block fndecl 2 53011 NULL nohasharray
166895 +enable_so_max_mlx4_srq_53011 max mlx4_srq 0 53011 &enable_so___shadow_block_fndecl_53011
166896 +enable_so_gfs2_direct_IO_fndecl_53014 gfs2_direct_IO fndecl 3 53014 NULL
166897 +enable_so_BC_Read_Reg_IsdnCardState_53020 BC_Read_Reg IsdnCardState 0 53020 NULL
166898 +enable_so_bytesused_ivtv_buffer_53021 bytesused ivtv_buffer 0 53021 NULL
166899 +enable_so_tty_insert_flip_string_fixed_flag_fndecl_53031 tty_insert_flip_string_fixed_flag fndecl 4-0 53031 NULL
166900 +enable_so___vlan_del_fndecl_53037 __vlan_del fndecl 2 53037 NULL
166901 +enable_so_xfs_filestream_pick_ag_fndecl_53040 xfs_filestream_pick_ag fndecl 2 53040 NULL nohasharray
166902 +enable_so_nports0_adapter_info_53040 nports0 adapter_info 0 53040 &enable_so_xfs_filestream_pick_ag_fndecl_53040
166903 +enable_so_xmit_fifo_size_serial_struct_53048 xmit_fifo_size serial_struct 0 53048 NULL
166904 +enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049 fcoe_alloc_paged_crc_eof fndecl 2 53049 NULL nohasharray
166905 +enable_so_sys_getxattr_fndecl_53049 sys_getxattr fndecl 4 53049 &enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049
166906 +enable_so_rqsize_hwif_s_53050 rqsize hwif_s 0 53050 NULL
166907 +enable_so_rx_pad_len_hif_device_usb_53051 rx_pad_len hif_device_usb 0 53051 NULL
166908 +enable_so_dm_bm_write_lock_zero_fndecl_53053 dm_bm_write_lock_zero fndecl 2 53053 NULL nohasharray
166909 +enable_so_acpi_os_allocate_zeroed_fndecl_53053 acpi_os_allocate_zeroed fndecl 1 53053 &enable_so_dm_bm_write_lock_zero_fndecl_53053
166910 +enable_so_cols_cros_ec_keyb_53054 cols cros_ec_keyb 0 53054 NULL
166911 +enable_so_m_len_ext4_map_blocks_53056 m_len ext4_map_blocks 0 53056 NULL
166912 +enable_so_s_inode_size_nilfs_super_block_53064 s_inode_size nilfs_super_block 0 53064 NULL
166913 +enable_so_get_pdev_same_bus_fndecl_53069 get_pdev_same_bus fndecl 2 53069 NULL
166914 +enable_so_kvm_vcpu_write_guest_page_fndecl_53070 kvm_vcpu_write_guest_page fndecl 2-5 53070 NULL
166915 +enable_so_rcvegrcnt_qib_chip_specific_53071 rcvegrcnt qib_chip_specific 0 53071 NULL
166916 +enable_so_fru_alloc_fndecl_53073 fru_alloc fndecl 1 53073 NULL
166917 +enable_so_get_rx_frame_len_sxgbe_desc_ops_53074 get_rx_frame_len sxgbe_desc_ops 0 53074 NULL
166918 +enable_so_wMTU_usb_cdc_mbim_extended_desc_53075 wMTU usb_cdc_mbim_extended_desc 0 53075 NULL nohasharray
166919 +enable_so_tty_audit_log_fndecl_53075 tty_audit_log fndecl 5 53075 &enable_so_wMTU_usb_cdc_mbim_extended_desc_53075
166920 +enable_so_params1_mlx4_qp_context_53076 params1 mlx4_qp_context 0 53076 NULL
166921 +enable_so_vmw_shader_alloc_fndecl_53077 vmw_shader_alloc fndecl 3 53077 NULL
166922 +enable_so_tcp_established_options_fndecl_53081 tcp_established_options fndecl 0 53081 NULL nohasharray
166923 +enable_so_map_swap_entry_fndecl_53081 map_swap_entry fndecl 0 53081 &enable_so_tcp_established_options_fndecl_53081 nohasharray
166924 +enable_so_request_len_sg_io_v4_53081 request_len sg_io_v4 0 53081 &enable_so_map_swap_entry_fndecl_53081 nohasharray
166925 +enable_so_ravb_hwtstamp_get_fndecl_53081 ravb_hwtstamp_get fndecl 0 53081 &enable_so_request_len_sg_io_v4_53081
166926 +enable_so___hci_cmd_sync_ev_fndecl_53090 __hci_cmd_sync_ev fndecl 3 53090 NULL nohasharray
166927 +enable_so_kmem_realloc_fndecl_53090 kmem_realloc fndecl 2 53090 &enable_so___hci_cmd_sync_ev_fndecl_53090
166928 +enable_so_ext4_itable_unused_set_fndecl_53091 ext4_itable_unused_set fndecl 3 53091 NULL
166929 +enable_so_ntfs_dir_fsync_fndecl_53093 ntfs_dir_fsync fndecl 2-3 53093 NULL
166930 +enable_so_length_tpm_output_header_53094 length tpm_output_header 0 53094 NULL
166931 +enable_so_h_vlan_TCI_vlan_ethhdr_53095 h_vlan_TCI vlan_ethhdr 0 53095 NULL
166932 +enable_so_packet_create_fndecl_53098 packet_create fndecl 3 53098 NULL nohasharray
166933 +enable_so_size_fuse_attr_53098 size fuse_attr 0 53098 &enable_so_packet_create_fndecl_53098
166934 +enable_so_s_blocksize_minix3_super_block_53099 s_blocksize minix3_super_block 0 53099 NULL
166935 +enable_so_brcmf_fw_nvram_strip_fndecl_53102 brcmf_fw_nvram_strip fndecl 2 53102 NULL
166936 +enable_so_prepare_header80_fndecl_53108 prepare_header80 fndecl 3-0 53108 NULL
166937 +enable_so_count_vbi_info_53110 count vbi_info 0 53110 NULL
166938 +enable_so_fb_max_width_vmw_private_53114 fb_max_width vmw_private 0 53114 NULL
166939 +enable_so_reserve_region_with_split_fndecl_53115 reserve_region_with_split fndecl 3-2 53115 NULL
166940 +enable_so_logi_dj_recv_forward_hidpp_fndecl_53117 logi_dj_recv_forward_hidpp fndecl 3 53117 NULL
166941 +enable_so_bfad_iocmd_vf_get_stats_fndecl_53119 bfad_iocmd_vf_get_stats fndecl 0 53119 NULL
166942 +enable_so_xz_dec_test_write_fndecl_53124 xz_dec_test_write fndecl 3 53124 NULL
166943 +enable_so_real_vram_size_radeon_mc_53132 real_vram_size radeon_mc 0 53132 NULL
166944 +enable_so_fault_inject_read_fndecl_53133 fault_inject_read fndecl 3 53133 NULL
166945 +enable_so_data_dma_td_53137 data_dma td 0 53137 NULL
166946 +enable_so_log_rq_size_mlx5e_params_53140 log_rq_size mlx5e_params 0 53140 NULL
166947 +enable_so_mmc_spi_readbytes_fndecl_53146 mmc_spi_readbytes fndecl 2-0 53146 NULL
166948 +enable_so_zlib_tr_stored_block_fndecl_53147 zlib_tr_stored_block fndecl 3 53147 NULL
166949 +enable_so_bdev_writeseg_fndecl_53148 bdev_writeseg fndecl 2-3 53148 NULL nohasharray
166950 +enable_so_vmalloc_32_user_fndecl_53148 vmalloc_32_user fndecl 1 53148 &enable_so_bdev_writeseg_fndecl_53148
166951 +enable_so_private_data_len_ib_cm_sidr_req_param_53150 private_data_len ib_cm_sidr_req_param 0 53150 NULL
166952 +enable_so_xoffset_fb_var_screeninfo_53153 xoffset fb_var_screeninfo 0 53153 NULL
166953 +enable_so_fat_cont_expand_fndecl_53155 fat_cont_expand fndecl 2 53155 NULL
166954 +enable_so_sb_blocksize_xfs_sb_53160 sb_blocksize xfs_sb 0 53160 NULL
166955 +enable_so_lpfc_debugfs_max_disc_trc_vardecl_lpfc_debugfs_c_53169 lpfc_debugfs_max_disc_trc vardecl_lpfc_debugfs.c 0 53169 NULL
166956 +enable_so_uhci_debug_lseek_fndecl_53171 uhci_debug_lseek fndecl 2 53171 NULL
166957 +enable_so_buf_size_mwifiex_event_scan_result_53175 buf_size mwifiex_event_scan_result 0 53175 NULL
166958 +enable_so_tegra_spi_start_tx_dma_fndecl_53177 tegra_spi_start_tx_dma fndecl 0-2 53177 NULL
166959 +enable_so_offset_page_frag_53180 offset page_frag 0 53180 NULL
166960 +enable_so_tpm_devt_vardecl_53182 tpm_devt vardecl 0 53182 NULL nohasharray
166961 +enable_so_batadv_tt_global_client_is_roaming_fndecl_53182 batadv_tt_global_client_is_roaming fndecl 3 53182 &enable_so_tpm_devt_vardecl_53182
166962 +enable_so_PID_frhdr_53185 PID frhdr 0 53185 NULL nohasharray
166963 +enable_so_xhci_alloc_streams_fndecl_53185 xhci_alloc_streams fndecl 5 53185 &enable_so_PID_frhdr_53185
166964 +enable_so_rate_min_snd_soc_pcm_stream_53186 rate_min snd_soc_pcm_stream 0 53186 NULL
166965 +enable_so_len_nxtfrm_brcmf_sdio_hdrinfo_53193 len_nxtfrm brcmf_sdio_hdrinfo 0 53193 NULL
166966 +enable_so_mpage_process_page_bufs_fndecl_53197 mpage_process_page_bufs fndecl 4 53197 NULL
166967 +enable_so_tcp_synack_options_fndecl_53200 tcp_synack_options fndecl 0 53200 NULL
166968 +enable_so_minor_start_tty_driver_53214 minor_start tty_driver 0 53214 NULL
166969 +enable_so_write_iter_file_operations_53218 write_iter file_operations 0 53218 NULL
166970 +enable_so_SYSC_mbind_fndecl_53221 SYSC_mbind fndecl 5 53221 NULL
166971 +enable_so_udf_block_map_fndecl_53224 udf_block_map fndecl 0 53224 NULL nohasharray
166972 +enable_so_aio_run_iocb_fndecl_53224 aio_run_iocb fndecl 4 53224 &enable_so_udf_block_map_fndecl_53224
166973 +enable_so_blksize_p_block_req_53230 blksize p_block_req 0 53230 NULL nohasharray
166974 +enable_so_meta_slots_used_xenvif_rx_cb_53230 meta_slots_used xenvif_rx_cb 0 53230 &enable_so_blksize_p_block_req_53230
166975 +enable_so_bnx2x_sriov_configure_fndecl_53235 bnx2x_sriov_configure fndecl 2 53235 NULL nohasharray
166976 +enable_so_debugfs_reg_len_regmap_53235 debugfs_reg_len regmap 0 53235 &enable_so_bnx2x_sriov_configure_fndecl_53235
166977 +enable_so_mlx4_get_mgm_entry_size_fndecl_53236 mlx4_get_mgm_entry_size fndecl 0 53236 NULL
166978 +enable_so_svcxdr_init_encode_from_buffer_fndecl_53239 svcxdr_init_encode_from_buffer fndecl 4 53239 NULL nohasharray
166979 +enable_so_mmc_test_rw_multiple_fndecl_53239 mmc_test_rw_multiple fndecl 3-5 53239 &enable_so_svcxdr_init_encode_from_buffer_fndecl_53239
166980 +enable_so_kvm_read_guest_page_mmu_fndecl_53240 kvm_read_guest_page_mmu fndecl 6 53240 NULL
166981 +enable_so_pnw_serial_setup_fndecl_53243 pnw_serial_setup fndecl 4 53243 NULL
166982 +enable_so_sys_sync_file_range2_fndecl_53247 sys_sync_file_range2 fndecl 3-4 53247 NULL
166983 +enable_so_vga_arb_write_fndecl_53251 vga_arb_write fndecl 3 53251 NULL
166984 +enable_so_xpc_nasid_mask_nlongs_vardecl_53252 xpc_nasid_mask_nlongs vardecl 0 53252 NULL
166985 +enable_so_simple_xattr_alloc_fndecl_53253 simple_xattr_alloc fndecl 2 53253 NULL
166986 +enable_so_rawv6_geticmpfilter_fndecl_53256 rawv6_geticmpfilter fndecl 0 53256 NULL
166987 +enable_so_readpos_ivtv_buffer_53258 readpos ivtv_buffer 0 53258 NULL
166988 +enable_so_qxl_bo_create_fndecl_53261 qxl_bo_create fndecl 2 53261 NULL nohasharray
166989 +enable_so_num_cq_mlx4_profile_53261 num_cq mlx4_profile 0 53261 &enable_so_qxl_bo_create_fndecl_53261
166990 +enable_so_rx_enable_fndecl_53262 rx_enable fndecl 2 53262 NULL
166991 +enable_so_add_new_ctl_fndecl_53263 add_new_ctl fndecl 8 53263 NULL
166992 +enable_so_asl_urb_dequeue_fndecl_53268 asl_urb_dequeue fndecl 3 53268 NULL
166993 +enable_so_update_dind_extent_range_fndecl_53271 update_dind_extent_range fndecl 3 53271 NULL
166994 +enable_so_length_pppoe_hdr_53272 length pppoe_hdr 0 53272 NULL
166995 +enable_so_wp_huge_pmd_fndecl_53275 wp_huge_pmd fndecl 3 53275 NULL
166996 +enable_so_rx_pkt_n_frags_efx_channel_53276 rx_pkt_n_frags efx_channel 0 53276 NULL
166997 +enable_so_vb2_dc_attach_dmabuf_fndecl_53278 vb2_dc_attach_dmabuf fndecl 3 53278 NULL nohasharray
166998 +enable_so_nr_cmds_ctlr_info_53278 nr_cmds ctlr_info 0 53278 &enable_so_vb2_dc_attach_dmabuf_fndecl_53278
166999 +enable_so_enc_dst_buf_size_s5p_mfc_ctx_53279 enc_dst_buf_size s5p_mfc_ctx 0 53279 NULL
167000 +enable_so_maxreqs_nfsd4_channel_attrs_53285 maxreqs nfsd4_channel_attrs 0 53285 NULL
167001 +enable_so_alloc_vm_area_fndecl_53286 alloc_vm_area fndecl 1 53286 NULL
167002 +enable_so_b1_alloc_card_fndecl_53288 b1_alloc_card fndecl 1 53288 NULL
167003 +enable_so_alignment_acpi_resource_memory32_53289 alignment acpi_resource_memory32 0 53289 NULL
167004 +enable_so_compat_ptrace_request_fndecl_53296 compat_ptrace_request fndecl 3 53296 NULL
167005 +enable_so_vmalloc_exec_fndecl_53303 vmalloc_exec fndecl 1 53303 NULL
167006 +enable_so_fuse_ioctl_common_fndecl_53305 fuse_ioctl_common fndecl 2 53305 NULL
167007 +enable_so_bfad_iocmd_qos_get_vc_attr_fndecl_53307 bfad_iocmd_qos_get_vc_attr fndecl 0 53307 NULL nohasharray
167008 +enable_so_dma_size_cx23885_audio_dev_53307 dma_size cx23885_audio_dev 0 53307 &enable_so_bfad_iocmd_qos_get_vc_attr_fndecl_53307 nohasharray
167009 +enable_so_gtt_start_radeon_mc_53307 gtt_start radeon_mc 0 53307 &enable_so_dma_size_cx23885_audio_dev_53307
167010 +enable_so_isoc_in_usbatm_driver_53310 isoc_in usbatm_driver 0 53310 NULL nohasharray
167011 +enable_so___gfs2_free_blocks_fndecl_53310 __gfs2_free_blocks fndecl 2 53310 &enable_so_isoc_in_usbatm_driver_53310
167012 +enable_so___sync_dirty_buffer_fndecl_53315 __sync_dirty_buffer fndecl 0 53315 NULL
167013 +enable_so_transport_get_sectors_10_fndecl_53319 transport_get_sectors_10 fndecl 0 53319 NULL
167014 +enable_so_nfsd4_block_get_device_info_simple_fndecl_53320 nfsd4_block_get_device_info_simple fndecl 0 53320 NULL
167015 +enable_so_sys_send_fndecl_53330 sys_send fndecl 3 53330 NULL
167016 +enable_so_s_inode_readahead_blks_ext4_sb_info_53337 s_inode_readahead_blks ext4_sb_info 0 53337 NULL
167017 +enable_so_snd_korg1212_copy_from_fndecl_53338 snd_korg1212_copy_from fndecl 6 53338 NULL
167018 +enable_so_v9fs_xattr_set_fndecl_53342 v9fs_xattr_set fndecl 4 53342 NULL
167019 +enable_so_SYSC_sched_getaffinity_fndecl_53347 SYSC_sched_getaffinity fndecl 2 53347 NULL
167020 +enable_so_ioc_len_libcfs_ioctl_hdr_53352 ioc_len libcfs_ioctl_hdr 0 53352 NULL
167021 +enable_so_ali1563_smba_vardecl_i2c_ali1563_c_53362 ali1563_smba vardecl_i2c-ali1563.c 0 53362 NULL
167022 +enable_so___xdr_inline_decode_fndecl_53363 __xdr_inline_decode fndecl 2 53363 NULL
167023 +enable_so_ramoops_init_przs_fndecl_53364 ramoops_init_przs fndecl 4 53364 NULL
167024 +enable_so_rsize_hid_device_53365 rsize hid_device 0 53365 NULL
167025 +enable_so_ubiblock_read_fndecl_53366 ubiblock_read fndecl 0 53366 NULL
167026 +enable_so_xattr_len_ceph_mds_reply_info_in_53369 xattr_len ceph_mds_reply_info_in 0 53369 NULL
167027 +enable_so_CIFSMaxBufSize_vardecl_53372 CIFSMaxBufSize vardecl 0 53372 NULL
167028 +enable_so_xdr_inline_pages_fndecl_53377 xdr_inline_pages fndecl 5-4-2 53377 NULL nohasharray
167029 +enable_so_SYSC_getxattr_fndecl_53377 SYSC_getxattr fndecl 4 53377 &enable_so_xdr_inline_pages_fndecl_53377
167030 +enable_so_viafb_iga1_odev_proc_write_fndecl_53378 viafb_iga1_odev_proc_write fndecl 3 53378 NULL
167031 +enable_so_dummy_urb_dequeue_fndecl_53380 dummy_urb_dequeue fndecl 3 53380 NULL
167032 +enable_so_vmsplice_to_user_fndecl_53382 vmsplice_to_user fndecl 3 53382 NULL nohasharray
167033 +enable_so_rproc_recovery_read_fndecl_53382 rproc_recovery_read fndecl 3 53382 &enable_so_vmsplice_to_user_fndecl_53382
167034 +enable_so_scrub_stripe_fndecl_53387 scrub_stripe fndecl 5 53387 NULL
167035 +enable_so_isd200_action_fndecl_53390 isd200_action fndecl 4 53390 NULL
167036 +enable_so_command_setformat_fndecl_53392 command_setformat fndecl 0 53392 NULL
167037 +enable_so_nfqnl_mangle_fndecl_53393 nfqnl_mangle fndecl 2-4 53393 NULL
167038 +enable_so_wil_agg_size_fndecl_53398 wil_agg_size fndecl 0-2 53398 NULL
167039 +enable_so_irda_recvmsg_stream_fndecl_53403 irda_recvmsg_stream fndecl 3 53403 NULL
167040 +enable_so_num_entries_s2io_nic_53404 num_entries s2io_nic 0 53404 NULL
167041 +enable_so_len_nft_cmp_fast_expr_53407 len nft_cmp_fast_expr 0 53407 NULL
167042 +enable_so_dib9000_firmware_download_fndecl_53415 dib9000_firmware_download fndecl 5 53415 NULL nohasharray
167043 +enable_so_cfs_hash_buckets_realloc_fndecl_53415 cfs_hash_buckets_realloc fndecl 4 53415 &enable_so_dib9000_firmware_download_fndecl_53415
167044 +enable_so_vlan_dev_set_egress_priority_fndecl_53418 vlan_dev_set_egress_priority fndecl 3 53418 NULL nohasharray
167045 +enable_so_rxHeader3_edgeport_serial_53418 rxHeader3 edgeport_serial 0 53418 &enable_so_vlan_dev_set_egress_priority_fndecl_53418
167046 +enable_so_codec_reg_read_file_fndecl_53419 codec_reg_read_file fndecl 3 53419 NULL
167047 +enable_so_expand_stack_fndecl_53426 expand_stack fndecl 2 53426 NULL nohasharray
167048 +enable_so_nbits_nvmem_cell_info_53426 nbits nvmem_cell_info 0 53426 &enable_so_expand_stack_fndecl_53426
167049 +enable_so_compat_sys_mbind_fndecl_53427 compat_sys_mbind fndecl 2-1-5 53427 NULL nohasharray
167050 +enable_so_dn_mk_ack_header_fndecl_53427 dn_mk_ack_header fndecl 4 53427 &enable_so_compat_sys_mbind_fndecl_53427 nohasharray
167051 +enable_so_mq_maxmsg_mq_attr_53427 mq_maxmsg mq_attr 0 53427 &enable_so_dn_mk_ack_header_fndecl_53427
167052 +enable_so_len_type_frame_head_53438 len type_frame_head 0 53438 NULL nohasharray
167053 +enable_so_chipsize_nand_chip_53438 chipsize nand_chip 0 53438 &enable_so_len_type_frame_head_53438
167054 +enable_so_cfg80211_rx_mlme_mgmt_fndecl_53441 cfg80211_rx_mlme_mgmt fndecl 3 53441 NULL
167055 +enable_so_ad7879_spi_xfer_fndecl_53444 ad7879_spi_xfer fndecl 3 53444 NULL
167056 +enable_so_first_offset_pciserial_board_53452 first_offset pciserial_board 0 53452 NULL
167057 +enable_so_nouveau_cli_create_fndecl_53462 nouveau_cli_create fndecl 3 53462 NULL
167058 +enable_so_c_blkno_ocfs2_chain_rec_53466 c_blkno ocfs2_chain_rec 0 53466 NULL
167059 +enable_so_lpfc_debugfs_dif_err_read_fndecl_53468 lpfc_debugfs_dif_err_read fndecl 3 53468 NULL
167060 +enable_so_jbd2_journal_init_revoke_table_fndecl_53475 jbd2_journal_init_revoke_table fndecl 1 53475 NULL
167061 +enable_so_isku_sysfs_read_key_mask_fndecl_53476 isku_sysfs_read_key_mask fndecl 6 53476 NULL
167062 +enable_so_new_chunk_sectors_mddev_53479 new_chunk_sectors mddev 0 53479 NULL
167063 +enable_so_ext2_nfs_get_inode_fndecl_53480 ext2_nfs_get_inode fndecl 2 53480 NULL
167064 +enable_so_map_sector_fndecl_53483 map_sector fndecl 0 53483 NULL
167065 +enable_so_nfs4_proc_readlink_fndecl_53484 nfs4_proc_readlink fndecl 4-3 53484 NULL nohasharray
167066 +enable_so_ath6kl_regwrite_write_fndecl_53484 ath6kl_regwrite_write fndecl 3 53484 &enable_so_nfs4_proc_readlink_fndecl_53484
167067 +enable_so_ramoops_ecc_vardecl_ram_c_53486 ramoops_ecc vardecl_ram.c 0 53486 NULL
167068 +enable_so_size_mthca_catas_err_53487 size mthca_catas_err 0 53487 NULL
167069 +enable_so_oper_log_mgm_entry_size_mlx4_dev_53488 oper_log_mgm_entry_size mlx4_dev 0 53488 NULL
167070 +enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489 usCRTC_V_SyncWidth _ATOM_MODE_TIMING 0 53489 NULL nohasharray
167071 +enable_so_len_rx_pool_53489 len rx_pool 0 53489 &enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489
167072 +enable_so_len_nft_cmp_expr_53491 len nft_cmp_expr 0 53491 NULL
167073 +enable_so_isdn_getnum_fndecl_53492 isdn_getnum fndecl 0 53492 NULL
167074 +enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495 get_allocated_memblock_memory_regions_info fndecl 0 53495 NULL nohasharray
167075 +enable_so_subctxt_cnt_qib_ctxtdata_53495 subctxt_cnt qib_ctxtdata 0 53495 &enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495
167076 +enable_so___blk_end_request_err_fndecl_53498 __blk_end_request_err fndecl 2 53498 NULL
167077 +enable_so___compat_sys_pwritev64_fndecl_53499 __compat_sys_pwritev64 fndecl 3 53499 NULL
167078 +enable_so_lc_create_fndecl_53503 lc_create fndecl 4 53503 NULL
167079 +enable_so_data_out_size_mpt2_ioctl_command_53510 data_out_size mpt2_ioctl_command 0 53510 NULL nohasharray
167080 +enable_so_mthca_buf_alloc_fndecl_53510 mthca_buf_alloc fndecl 2 53510 &enable_so_data_out_size_mpt2_ioctl_command_53510
167081 +enable_so_mmc_io_rw_extended_fndecl_53515 mmc_io_rw_extended fndecl 8-7 53515 NULL
167082 +enable_so_dme1737_isa_device_add_fndecl_53516 dme1737_isa_device_add fndecl 1 53516 NULL
167083 +enable_so_max_dev_vardecl_osst_c_53523 max_dev vardecl_osst.c 0 53523 NULL
167084 +enable_so_fsinfo_sector_msdos_sb_info_53531 fsinfo_sector msdos_sb_info 0 53531 NULL nohasharray
167085 +enable_so_m_max_mds_ceph_mdsmap_53531 m_max_mds ceph_mdsmap 0 53531 &enable_so_fsinfo_sector_msdos_sb_info_53531
167086 +enable_so_tx_tx_cmplt_read_fndecl_53533 tx_tx_cmplt_read fndecl 3 53533 NULL
167087 +enable_so_unix_seqpacket_sendmsg_fndecl_53534 unix_seqpacket_sendmsg fndecl 3 53534 NULL
167088 +enable_so_tcp_mark_head_lost_fndecl_53540 tcp_mark_head_lost fndecl 2 53540 NULL nohasharray
167089 +enable_so_e820_add_region_fndecl_53540 e820_add_region fndecl 2 53540 &enable_so_tcp_mark_head_lost_fndecl_53540
167090 +enable_so_crtc_w_drm_plane_state_53541 crtc_w drm_plane_state 0 53541 NULL
167091 +enable_so_smi_num_vardecl_ipmi_si_intf_c_53542 smi_num vardecl_ipmi_si_intf.c 0 53542 NULL
167092 +enable_so_uwb_rc_cmd_done_fndecl_53543 uwb_rc_cmd_done fndecl 4 53543 NULL
167093 +enable_so_start_extent_state_53546 start extent_state 0 53546 NULL
167094 +enable_so_block_size_partition_53549 block_size partition 0 53549 NULL
167095 +enable_so_height_rcar_vin_cam_53550 height rcar_vin_cam 0 53550 NULL
167096 +enable_so_num_req_vfs_i40e_pf_53554 num_req_vfs i40e_pf 0 53554 NULL
167097 +enable_so_r_result_ceph_osd_request_53555 r_result ceph_osd_request 0 53555 NULL
167098 +enable_so_vnode_afs_fid_53569 vnode afs_fid 0 53569 NULL
167099 +enable_so_balance_node_right_fndecl_53571 balance_node_right fndecl 0 53571 NULL
167100 +enable_so_sctp_tsnmap_mark_fndecl_53578 sctp_tsnmap_mark fndecl 2 53578 NULL
167101 +enable_so_rx_defrag_init_called_read_fndecl_53580 rx_defrag_init_called_read fndecl 3 53580 NULL
167102 +enable_so_log_mpt_sz_mlx4_init_hca_param_53586 log_mpt_sz mlx4_init_hca_param 0 53586 NULL
167103 +enable_so_tokens_size_cfg80211_wowlan_tcp_53588 tokens_size cfg80211_wowlan_tcp 0 53588 NULL nohasharray
167104 +enable_so_num_ports_mlx4_caps_53588 num_ports mlx4_caps 0 53588 &enable_so_tokens_size_cfg80211_wowlan_tcp_53588
167105 +enable_so_mlx5_get_gid_table_len_fndecl_53590 mlx5_get_gid_table_len fndecl 0-1 53590 NULL
167106 +enable_so_nr_labels_pktgen_dev_53591 nr_labels pktgen_dev 0 53591 NULL
167107 +enable_so_ocfs2_orphan_filldir_fndecl_53593 ocfs2_orphan_filldir fndecl 5 53593 NULL
167108 +enable_so_kernel_setsockopt_fndecl_53594 kernel_setsockopt fndecl 5 53594 NULL
167109 +enable_so_cow_file_range_async_fndecl_53595 cow_file_range_async fndecl 4-3 53595 NULL
167110 +enable_so_nilfs_load_super_block_fndecl_53596 nilfs_load_super_block fndecl 3 53596 NULL
167111 +enable_so_ramoops_pmsg_size_vardecl_ram_c_53601 ramoops_pmsg_size vardecl_ram.c 0 53601 NULL
167112 +enable_so_xfs_add_to_ioend_fndecl_53604 xfs_add_to_ioend fndecl 3 53604 NULL
167113 +enable_so_hwptr_done_snd_usb_substream_53606 hwptr_done snd_usb_substream 0 53606 NULL
167114 +enable_so_pcfg_ofsl_cyttsp4_sysinfo_data_53607 pcfg_ofsl cyttsp4_sysinfo_data 0 53607 NULL
167115 +enable_so_md_dump_size_netxen_minidump_53611 md_dump_size netxen_minidump 0 53611 NULL
167116 +enable_so_put_cmsg_compat_fndecl_53618 put_cmsg_compat fndecl 4 53618 NULL nohasharray
167117 +enable_so_len_rproc_vring_53618 len rproc_vring 0 53618 &enable_so_put_cmsg_compat_fndecl_53618
167118 +enable_so_header_len_tso_state_53620 header_len tso_state 0 53620 NULL
167119 +enable_so_qcaspi_write_legacy_fndecl_53623 qcaspi_write_legacy fndecl 3 53623 NULL
167120 +enable_so_pc_npartners_ptlrpcd_ctl_53625 pc_npartners ptlrpcd_ctl 0 53625 NULL
167121 +enable_so_btt_flog_write_fndecl_53628 btt_flog_write fndecl 0 53628 NULL
167122 +enable_so_num_channels_mlx5e_params_53632 num_channels mlx5e_params 0 53632 NULL
167123 +enable_so_selfballoon_downhysteresis_vardecl_xen_selfballoon_c_53636 selfballoon_downhysteresis vardecl_xen-selfballoon.c 0 53636 NULL
167124 +enable_so_remote_nentries_xpc_openclose_args_53643 remote_nentries xpc_openclose_args 0 53643 NULL
167125 +enable_so_locks_mandatory_area_fndecl_53644 locks_mandatory_area fndecl 0 53644 NULL nohasharray
167126 +enable_so_ticket2_len_rxk5_key_53644 ticket2_len rxk5_key 0 53644 &enable_so_locks_mandatory_area_fndecl_53644
167127 +enable_so_write_file_antenna_fndecl_53645 write_file_antenna fndecl 3 53645 NULL nohasharray
167128 +enable_so_kuc_alloc_fndecl_53645 kuc_alloc fndecl 1 53645 &enable_so_write_file_antenna_fndecl_53645
167129 +enable_so_ioc_plen2_obd_ioctl_data_53648 ioc_plen2 obd_ioctl_data 0 53648 NULL
167130 +enable_so_extra_tx_headroom_rt2x00_dev_53650 extra_tx_headroom rt2x00_dev 0 53650 NULL
167131 +enable_so_ceph_buffer_new_fndecl_53653 ceph_buffer_new fndecl 1 53653 NULL nohasharray
167132 +enable_so_generic_ocp_read_fndecl_53653 generic_ocp_read fndecl 3 53653 &enable_so_ceph_buffer_new_fndecl_53653
167133 +enable_so_acl_alloc_fndecl_53656 acl_alloc fndecl 1 53656 NULL
167134 +enable_so_ethertype_fddi_snap_hdr_53659 ethertype fddi_snap_hdr 0 53659 NULL
167135 +enable_so_page_add_anon_rmap_fndecl_53660 page_add_anon_rmap fndecl 3 53660 NULL
167136 +enable_so_hr_data_len_hsm_request_53666 hr_data_len hsm_request 0 53666 NULL
167137 +enable_so_num_sge_ib_uverbs_send_wr_53667 num_sge ib_uverbs_send_wr 0 53667 NULL nohasharray
167138 +enable_so_il3945_ucode_tx_stats_read_fndecl_53667 il3945_ucode_tx_stats_read fndecl 3 53667 &enable_so_num_sge_ib_uverbs_send_wr_53667
167139 +enable_so_cpu_addr_of_pci_range_53670 cpu_addr of_pci_range 0 53670 NULL
167140 +enable_so_kvec_array_init_fndecl_53672 kvec_array_init fndecl 4-0-3 53672 NULL
167141 +enable_so___videobuf_alloc_fndecl_53676 __videobuf_alloc fndecl 1 53676 NULL
167142 +enable_so_ubi_eba_write_leb_fndecl_53678 ubi_eba_write_leb fndecl 6-5 53678 NULL nohasharray
167143 +enable_so_sesskey_len_cifs_spnego_msg_53678 sesskey_len cifs_spnego_msg 0 53678 &enable_so_ubi_eba_write_leb_fndecl_53678
167144 +enable_so_list_lru_count_one_fndecl_53682 list_lru_count_one fndecl 0 53682 NULL
167145 +enable_so_console_store_fndecl_53684 console_store fndecl 4 53684 NULL
167146 +enable_so_length_acpi_memory_info_53691 length acpi_memory_info 0 53691 NULL nohasharray
167147 +enable_so_lov_mds_md_max_stripe_count_fndecl_53691 lov_mds_md_max_stripe_count fndecl 0-1 53691 &enable_so_length_acpi_memory_info_53691
167148 +enable_so_i_depth_gfs2_inode_53692 i_depth gfs2_inode 0 53692 NULL
167149 +enable_so_ql_is_full_dup_fndecl_53694 ql_is_full_dup fndecl 0 53694 NULL nohasharray
167150 +enable_so_carl9170_rx_untie_cmds_fndecl_53694 carl9170_rx_untie_cmds fndecl 3 53694 &enable_so_ql_is_full_dup_fndecl_53694
167151 +enable_so_length_iscsi_pdu_53695 length iscsi_pdu 0 53695 NULL
167152 +enable_so_vgt_balloon_space_fndecl_53697 vgt_balloon_space fndecl 3-4 53697 NULL
167153 +enable_so_gpio_power_read_fndecl_53704 gpio_power_read fndecl 3 53704 NULL nohasharray
167154 +enable_so_check_revision_fndecl_53704 check_revision fndecl 0 53704 &enable_so_gpio_power_read_fndecl_53704
167155 +enable_so_qlge_change_mtu_fndecl_53706 qlge_change_mtu fndecl 2 53706 NULL
167156 +enable_so_pos_hdpvr_buffer_53708 pos hdpvr_buffer 0 53708 NULL
167157 +enable_so_create_header_ops_53712 create header_ops 0 53712 NULL
167158 +enable_so_xdr_inline_decode_fndecl_53721 xdr_inline_decode fndecl 2 53721 NULL
167159 +enable_so_sys_init_module_fndecl_53724 sys_init_module fndecl 2 53724 NULL nohasharray
167160 +enable_so_onenand_write_ops_nolock_fndecl_53724 onenand_write_ops_nolock fndecl 2 53724 &enable_so_sys_init_module_fndecl_53724
167161 +enable_so_btt_rw_integrity_fndecl_53727 btt_rw_integrity fndecl 0 53727 NULL
167162 +enable_so_mtip_hw_read_device_status_fndecl_53729 mtip_hw_read_device_status fndecl 3 53729 NULL
167163 +enable_so_r_rcv_len_qib_qp_53730 r_rcv_len qib_qp 0 53730 NULL nohasharray
167164 +enable_so_ino_xfs_fid64_53730 ino xfs_fid64 0 53730 &enable_so_r_rcv_len_qib_qp_53730
167165 +enable_so_snd_pcm_plug_read_transfer_fndecl_53731 snd_pcm_plug_read_transfer fndecl 3-0 53731 NULL
167166 +enable_so_dnode_scif_peer_dev_53733 dnode scif_peer_dev 0 53733 NULL nohasharray
167167 +enable_so_adp5588_build_gpiomap_fndecl_53733 adp5588_build_gpiomap fndecl 0 53733 &enable_so_dnode_scif_peer_dev_53733
167168 +enable_so_max_data_size_vardecl_hsi_char_c_53736 max_data_size vardecl_hsi_char.c 0 53736 NULL
167169 +enable_so_map_capability_fndecl_53738 map_capability fndecl 5 53738 NULL
167170 +enable_so_chunk_size_stripe_c_53745 chunk_size stripe_c 0 53745 NULL
167171 +enable_so_write_emulate_fndecl_53746 write_emulate fndecl 2-4 53746 NULL
167172 +enable_so_get_crop_info_h_s5p_mfc_hw_ops_53747 get_crop_info_h s5p_mfc_hw_ops 0 53747 NULL
167173 +enable_so_count_user_sgmap_53748 count user_sgmap 0 53748 NULL
167174 +enable_so_ieee80211_if_write_tsf_fndecl_53758 ieee80211_if_write_tsf fndecl 3 53758 NULL nohasharray
167175 +enable_so_SenderSize_aac_fibhdr_53758 SenderSize aac_fibhdr 0 53758 &enable_so_ieee80211_if_write_tsf_fndecl_53758
167176 +enable_so_seg_num_mad_rmpp_recv_53761 seg_num mad_rmpp_recv 0 53761 NULL
167177 +enable_so_dies_onenand_chip_53762 dies onenand_chip 0 53762 NULL
167178 +enable_so_padding_iscsi_cmd_53768 padding iscsi_cmd 0 53768 NULL
167179 +enable_so_end_nilfs_write_info_53770 end nilfs_write_info 0 53770 NULL
167180 +enable_so_msb_read_oob_fndecl_53772 msb_read_oob fndecl 2 53772 NULL
167181 +enable_so_vxge_config_vpaths_fndecl_53775 vxge_config_vpaths fndecl 0 53775 NULL nohasharray
167182 +enable_so_get_slot_from_bitmask_fndecl_53775 get_slot_from_bitmask fndecl 0-1 53775 &enable_so_vxge_config_vpaths_fndecl_53775
167183 +enable_so_do_sendfile_fndecl_53777 do_sendfile fndecl 5-4 53777 NULL
167184 +enable_so_index_nsc_ircc_cb_53782 index nsc_ircc_cb 0 53782 NULL
167185 +enable_so_src_maxburst_dma_slave_config_53783 src_maxburst dma_slave_config 0 53783 NULL
167186 +enable_so_locations_count_nfsd4_fs_locations_53786 locations_count nfsd4_fs_locations 0 53786 NULL
167187 +enable_so_resp_iec_m_pg_fndecl_53792 resp_iec_m_pg fndecl 0 53792 NULL
167188 +enable_so_Control_2_RxD_t_53794 Control_2 RxD_t 0 53794 NULL nohasharray
167189 +enable_so_qlcnic_process_rcv_fndecl_53794 qlcnic_process_rcv fndecl 4 53794 &enable_so_Control_2_RxD_t_53794
167190 +enable_so_epnum_isp1362_ep_53803 epnum isp1362_ep 0 53803 NULL nohasharray
167191 +enable_so_osd_req_list_collection_objects_fndecl_53803 osd_req_list_collection_objects fndecl 5 53803 &enable_so_epnum_isp1362_ep_53803 nohasharray
167192 +enable_so_mgmt_send_event_fndecl_53803 mgmt_send_event fndecl 5 53803 &enable_so_osd_req_list_collection_objects_fndecl_53803
167193 +enable_so_iscsi_host_alloc_fndecl_53804 iscsi_host_alloc fndecl 2 53804 NULL
167194 +enable_so_ring_size_netvsc_device_info_53811 ring_size netvsc_device_info 0 53811 NULL
167195 +enable_so_msix_count_xhci_hcd_53816 msix_count xhci_hcd 0 53816 NULL
167196 +enable_so_jffs2_flash_write_fndecl_53819 jffs2_flash_write fndecl 3-2 53819 NULL nohasharray
167197 +enable_so_lpfc_idiag_extacc_alloc_get_fndecl_53819 lpfc_idiag_extacc_alloc_get fndecl 0-3 53819 &enable_so_jffs2_flash_write_fndecl_53819 nohasharray
167198 +enable_so_tty_copy_to_user_fndecl_53819 tty_copy_to_user fndecl 4 53819 &enable_so_lpfc_idiag_extacc_alloc_get_fndecl_53819
167199 +enable_so_doorbell_start_nes_device_53820 doorbell_start nes_device 0 53820 NULL nohasharray
167200 +enable_so_logical_minimum_hid_field_53820 logical_minimum hid_field 0 53820 &enable_so_doorbell_start_nes_device_53820
167201 +enable_so_choose_rate_fndecl_53821 choose_rate fndecl 3 53821 NULL nohasharray
167202 +enable_so_tx_data_ep_usb_card_rec_53821 tx_data_ep usb_card_rec 0 53821 &enable_so_choose_rate_fndecl_53821
167203 +enable_so_smem_len_fb_fix_screeninfo_53824 smem_len fb_fix_screeninfo 0 53824 NULL
167204 +enable_so_cam_get_response16_fndecl_53836 cam_get_response16 fndecl 0 53836 NULL
167205 +enable_so_gsmtty_write_fndecl_53837 gsmtty_write fndecl 3 53837 NULL
167206 +enable_so_num_sensors_ibmpex_bmc_data_53838 num_sensors ibmpex_bmc_data 0 53838 NULL
167207 +enable_so_resp_ie_length_ndis_80211_assoc_info_53840 resp_ie_length ndis_80211_assoc_info 0 53840 NULL
167208 +enable_so_xillybus_read_fndecl_53845 xillybus_read fndecl 3 53845 NULL
167209 +enable_so_ext4_mb_discard_group_preallocations_fndecl_53854 ext4_mb_discard_group_preallocations fndecl 2 53854 NULL
167210 +enable_so_minleft_xfs_alloc_arg_53855 minleft xfs_alloc_arg 0 53855 NULL
167211 +enable_so_saa7134_i2c_eeprom_fndecl_53866 saa7134_i2c_eeprom fndecl 3 53866 NULL
167212 +enable_so_data_len_msgbuf_rx_complete_53868 data_len msgbuf_rx_complete 0 53868 NULL
167213 +enable_so_discard_alignment_hd_struct_53874 discard_alignment hd_struct 0 53874 NULL
167214 +enable_so_br_fill_ifvlaninfo_range_fndecl_53875 br_fill_ifvlaninfo_range fndecl 2-3 53875 NULL
167215 +enable_so_buffer_blocks_st_buffer_53878 buffer_blocks st_buffer 0 53878 NULL
167216 +enable_so_lnum_bits_ubifs_info_53884 lnum_bits ubifs_info 0 53884 NULL
167217 +enable_so_nilfs_sufile_set_segment_usage_fndecl_53885 nilfs_sufile_set_segment_usage fndecl 2 53885 NULL
167218 +enable_so_cx25821_alsa_dma_init_fndecl_53886 cx25821_alsa_dma_init fndecl 2 53886 NULL nohasharray
167219 +enable_so_path_getxattr_fndecl_53886 path_getxattr fndecl 4 53886 &enable_so_cx25821_alsa_dma_init_fndecl_53886
167220 +enable_so_drbd_setbufsize_fndecl_53887 drbd_setbufsize fndecl 2 53887 NULL
167221 +enable_so_amdgpu_vce_sw_init_fndecl_53888 amdgpu_vce_sw_init fndecl 2 53888 NULL
167222 +enable_so_total_read_TCP_Server_Info_53900 total_read TCP_Server_Info 0 53900 NULL
167223 +enable_so_alignf_resource_constraint_53903 alignf resource_constraint 0 53903 NULL nohasharray
167224 +enable_so_e1000_consume_page_fndecl_53903 e1000_consume_page fndecl 3 53903 &enable_so_alignf_resource_constraint_53903
167225 +enable_so_amdtp_stream_set_parameters_fndecl_53905 amdtp_stream_set_parameters fndecl 4-3 53905 NULL
167226 +enable_so_image_len_brcmf_usbdev_info_53909 image_len brcmf_usbdev_info 0 53909 NULL
167227 +enable_so_vop_len_solo_enc_dev_53910 vop_len solo_enc_dev 0 53910 NULL
167228 +enable_so_snd_rawmidi_kernel_read1_fndecl_53911 snd_rawmidi_kernel_read1 fndecl 4-0 53911 NULL nohasharray
167229 +enable_so_oobavail_jffs2_sb_info_53911 oobavail jffs2_sb_info 0 53911 &enable_so_snd_rawmidi_kernel_read1_fndecl_53911
167230 +enable_so_cxgbi_device_register_fndecl_53913 cxgbi_device_register fndecl 2-1 53913 NULL
167231 +enable_so___remove_range_fndecl_53925 __remove_range fndecl 0 53925 NULL
167232 +enable_so_vlan_info_mlx5_cqe64_53926 vlan_info mlx5_cqe64 0 53926 NULL
167233 +enable_so_usb_stor_sg_tablesize_fndecl_53929 usb_stor_sg_tablesize fndecl 0 53929 NULL
167234 +enable_so_of_iomap_fndecl_53930 of_iomap fndecl 2 53930 NULL
167235 +enable_so_chip_sdma_engines_hfi1_devdata_53934 chip_sdma_engines hfi1_devdata 0 53934 NULL
167236 +enable_so_i40e_init_lan_hmc_fndecl_53935 i40e_init_lan_hmc fndecl 2-3-4-5 53935 NULL
167237 +enable_so_depth_tm6000_fmt_53938 depth tm6000_fmt 0 53938 NULL
167238 +enable_so_ip4ip6_err_fndecl_53943 ip4ip6_err fndecl 5 53943 NULL
167239 +enable_so_llc_mac_header_len_fndecl_53947 llc_mac_header_len fndecl 0 53947 NULL
167240 +enable_so_buffer_end_nm256_53949 buffer_end nm256 0 53949 NULL
167241 +enable_so_swiotlb_nr_tbl_fndecl_53950 swiotlb_nr_tbl fndecl 0 53950 NULL
167242 +enable_so_p_size_drbd_device_53954 p_size drbd_device 0 53954 NULL
167243 +enable_so_hiddev_ioctl_fndecl_53955 hiddev_ioctl fndecl 2 53955 NULL
167244 +enable_so_tcf_csum_ipv6_tcp_fndecl_53957 tcf_csum_ipv6_tcp fndecl 3 53957 NULL
167245 +enable_so_vmw_sou_backing_alloc_fndecl_53962 vmw_sou_backing_alloc fndecl 3 53962 NULL nohasharray
167246 +enable_so_c_srate_f_uac2_opts_53962 c_srate f_uac2_opts 0 53962 &enable_so_vmw_sou_backing_alloc_fndecl_53962
167247 +enable_so_recover_orphan_inode_fndecl_53969 recover_orphan_inode fndecl 2 53969 NULL nohasharray
167248 +enable_so_proc_fault_inject_read_fndecl_53969 proc_fault_inject_read fndecl 3 53969 &enable_so_recover_orphan_inode_fndecl_53969
167249 +enable_so_dib9000_fw_boot_fndecl_53978 dib9000_fw_boot fndecl 3-5 53978 NULL
167250 +enable_so_rx_buf_sz_cp_private_53982 rx_buf_sz cp_private 0 53982 NULL
167251 +enable_so_assoc_resp_len_wmi_connect_event_53983 assoc_resp_len wmi_connect_event 0 53983 NULL
167252 +enable_so_nfs_proc_mknod_fndecl_53987 nfs_proc_mknod fndecl 4 53987 NULL
167253 +enable_so_hfsplus_create_cat_fndecl_53990 hfsplus_create_cat fndecl 1 53990 NULL nohasharray
167254 +enable_so_cfpkt_add_head_fndecl_53990 cfpkt_add_head fndecl 3 53990 &enable_so_hfsplus_create_cat_fndecl_53990
167255 +enable_so_cm_write_fndecl_53993 cm_write fndecl 3 53993 NULL
167256 +enable_so_btrfs_init_new_buffer_fndecl_53996 btrfs_init_new_buffer fndecl 3 53996 NULL
167257 +enable_so_size_drbd_interval_54002 size drbd_interval 0 54002 NULL nohasharray
167258 +enable_so_int_hardware_entry_fndecl_54002 int_hardware_entry fndecl 3 54002 &enable_so_size_drbd_interval_54002
167259 +enable_so_ax88179_change_mtu_fndecl_54007 ax88179_change_mtu fndecl 2 54007 NULL
167260 +enable_so_nonstatic_find_io_fndecl_54015 nonstatic_find_io fndecl 4 54015 NULL
167261 +enable_so_submit_stripe_bio_fndecl_54016 submit_stripe_bio fndecl 4 54016 NULL
167262 +enable_so_rsi_setblocklength_fndecl_54024 rsi_setblocklength fndecl 2 54024 NULL
167263 +enable_so_dlen_hci_vendor_hdr_54025 dlen hci_vendor_hdr 0 54025 NULL
167264 +enable_so_xz_dec_lzma2_create_fndecl_54034 xz_dec_lzma2_create fndecl 2 54034 NULL
167265 +enable_so_sum_size_jffs2_summary_54035 sum_size jffs2_summary 0 54035 NULL
167266 +enable_so_s_nextid_exofs_sb_info_54042 s_nextid exofs_sb_info 0 54042 NULL
167267 +enable_so_sierra_write_fndecl_54049 sierra_write fndecl 4 54049 NULL
167268 +enable_so_sci_probe_single_fndecl_54053 sci_probe_single fndecl 2 54053 NULL
167269 +enable_so__iwl_dbgfs_uapsd_misbehaving_write_fndecl_54054 _iwl_dbgfs_uapsd_misbehaving_write fndecl 3 54054 NULL
167270 +enable_so_storvsc_ringbuffer_size_vardecl_storvsc_drv_c_54060 storvsc_ringbuffer_size vardecl_storvsc_drv.c 0 54060 NULL
167271 +enable_so_msb_update_block_fndecl_54063 msb_update_block fndecl 0-4-2 54063 NULL
167272 +enable_so_tunables_read_fndecl_54066 tunables_read fndecl 3 54066 NULL
167273 +enable_so_process_ptload_program_headers_elf32_fndecl_54067 process_ptload_program_headers_elf32 fndecl 3-2 54067 NULL
167274 +enable_so_width_fb_image_54071 width fb_image 0 54071 NULL
167275 +enable_so_i_next_section_offset_iso_inode_info_54074 i_next_section_offset iso_inode_info 0 54074 NULL nohasharray
167276 +enable_so_rp2_minor_next_vardecl_rp2_c_54074 rp2_minor_next vardecl_rp2.c 0 54074 &enable_so_i_next_section_offset_iso_inode_info_54074
167277 +enable_so_xennet_change_mtu_fndecl_54076 xennet_change_mtu fndecl 2 54076 NULL nohasharray
167278 +enable_so_afs_alloc_flat_call_fndecl_54076 afs_alloc_flat_call fndecl 2-3 54076 &enable_so_xennet_change_mtu_fndecl_54076
167279 +enable_so_bytes_cifs_writedata_54089 bytes cifs_writedata 0 54089 NULL
167280 +enable_so_get_mtu_xfrm_type_54090 get_mtu xfrm_type 0 54090 NULL
167281 +enable_so_align_pnp_port_54093 align pnp_port 0 54093 NULL nohasharray
167282 +enable_so_sctp_tsnmap_init_fndecl_54093 sctp_tsnmap_init fndecl 3-2 54093 &enable_so_align_pnp_port_54093
167283 +enable_so_port_num_ib_qp_init_attr_54099 port_num ib_qp_init_attr 0 54099 NULL
167284 +enable_so_fat_ent_write_fndecl_54100 fat_ent_write fndecl 0 54100 NULL
167285 +enable_so_bytes_read_usbvision_frame_54101 bytes_read usbvision_frame 0 54101 NULL
167286 +enable_so_br_min_mtu_fndecl_54113 br_min_mtu fndecl 0 54113 NULL
167287 +enable_so_bfad_iocmd_pcifn_delete_fndecl_54115 bfad_iocmd_pcifn_delete fndecl 0 54115 NULL
167288 +enable_so_xfs_rtmodify_summary_int_fndecl_54118 xfs_rtmodify_summary_int fndecl 4-3 54118 NULL nohasharray
167289 +enable_so_rio_request_inb_mbox_fndecl_54118 rio_request_inb_mbox fndecl 3 54118 &enable_so_xfs_rtmodify_summary_int_fndecl_54118
167290 +enable_so_vringh_iov_push_kern_fndecl_54119 vringh_iov_push_kern fndecl 3 54119 NULL
167291 +enable_so_s5p_jpeg_to_user_subsampling_fndecl_54125 s5p_jpeg_to_user_subsampling fndecl 0 54125 NULL
167292 +enable_so_alloc_etherdev_mqs_fndecl_54129 alloc_etherdev_mqs fndecl 2-1-3 54129 NULL
167293 +enable_so_skb_trim_fndecl_54132 skb_trim fndecl 2 54132 NULL
167294 +enable_so_io_offset_xfs_ioend_54137 io_offset xfs_ioend 0 54137 NULL nohasharray
167295 +enable_so_bdx_fifo_init_fndecl_54137 bdx_fifo_init fndecl 3 54137 &enable_so_io_offset_xfs_ioend_54137
167296 +enable_so_tcf_csum_ipv6_udp_fndecl_54138 tcf_csum_ipv6_udp fndecl 3 54138 NULL
167297 +enable_so_change_protection_range_fndecl_54141 change_protection_range fndecl 3-2 54141 NULL nohasharray
167298 +enable_so_carl9170_exec_cmd_fndecl_54141 carl9170_exec_cmd fndecl 3 54141 &enable_so_change_protection_range_fndecl_54141 nohasharray
167299 +enable_so_gfs2_inode_ra_len_fndecl_54141 gfs2_inode_ra_len fndecl 0 54141 &enable_so_carl9170_exec_cmd_fndecl_54141
167300 +enable_so_netvsc_change_mtu_fndecl_54142 netvsc_change_mtu fndecl 2 54142 NULL
167301 +enable_so_brcmf_usb_dl_writeimage_fndecl_54144 brcmf_usb_dl_writeimage fndecl 3 54144 NULL
167302 +enable_so_hs_cur_bits_cfs_hash_54147 hs_cur_bits cfs_hash 0 54147 NULL
167303 +enable_so_sp2_write_i2c_fndecl_54157 sp2_write_i2c fndecl 4 54157 NULL nohasharray
167304 +enable_so___hwahc_op_set_ptk_fndecl_54157 __hwahc_op_set_ptk fndecl 5 54157 &enable_so_sp2_write_i2c_fndecl_54157
167305 +enable_so_num_qp_mthca_profile_54160 num_qp mthca_profile 0 54160 NULL
167306 +enable_so_b43_nphy_load_samples_fndecl_54162 b43_nphy_load_samples fndecl 3 54162 NULL
167307 +enable_so_lock_and_cleanup_extent_if_need_fndecl_54163 lock_and_cleanup_extent_if_need fndecl 3-4 54163 NULL
167308 +enable_so_buf_len_lpfc_sli_config_mse_54165 buf_len lpfc_sli_config_mse 0 54165 NULL
167309 +enable_so_cmd_loop_fndecl_54168 cmd_loop fndecl 0 54168 NULL
167310 +enable_so_ip6_append_data_fndecl_54169 ip6_append_data fndecl 5-4 54169 NULL nohasharray
167311 +enable_so_writebuf_size_tomoyo_io_buffer_54169 writebuf_size tomoyo_io_buffer 0 54169 &enable_so_ip6_append_data_fndecl_54169
167312 +enable_so_handle_one_ule_extension_fndecl_54174 handle_one_ule_extension fndecl 0 54174 NULL
167313 +enable_so__osd_req_encode_partition_fndecl_54177 _osd_req_encode_partition fndecl 2 54177 NULL
167314 +enable_so_num_bytes_drm_dp_remote_dpcd_write_54181 num_bytes drm_dp_remote_dpcd_write 0 54181 NULL
167315 +enable_so_len_xfs_alloc_arg_54187 len xfs_alloc_arg 0 54187 NULL
167316 +enable_so_cpu_type_read_fndecl_54191 cpu_type_read fndecl 3 54191 NULL
167317 +enable_so_nfs_llseek_dir_fndecl_54192 nfs_llseek_dir fndecl 2 54192 NULL nohasharray
167318 +enable_so__iwl_dbgfs_fw_nmi_write_fndecl_54192 _iwl_dbgfs_fw_nmi_write fndecl 3 54192 &enable_so_nfs_llseek_dir_fndecl_54192
167319 +enable_so_tp_ep_bcm5974_config_54193 tp_ep bcm5974_config 0 54193 NULL
167320 +enable_so_current_speed_ide_drive_s_54197 current_speed ide_drive_s 0 54197 NULL
167321 +enable_so_ipw2100_set_essid_fndecl_54200 ipw2100_set_essid fndecl 3 54200 NULL
167322 +enable_so_ieee80211_if_read_fwded_frames_fndecl_54203 ieee80211_if_read_fwded_frames fndecl 3 54203 NULL
167323 +enable_so_contexts_nouveau_fence_priv_54204 contexts nouveau_fence_priv 0 54204 NULL nohasharray
167324 +enable_so_p_filesz_elf32_phdr_54204 p_filesz elf32_phdr 0 54204 &enable_so_contexts_nouveau_fence_priv_54204 nohasharray
167325 +enable_so_ath6kl_interface_add_fndecl_54204 ath6kl_interface_add fndecl 5 54204 &enable_so_p_filesz_elf32_phdr_54204
167326 +enable_so_min_priority_binder_node_54207 min_priority binder_node 0 54207 NULL nohasharray
167327 +enable_so_nframes_bcm_msg_head_54207 nframes bcm_msg_head 0 54207 &enable_so_min_priority_binder_node_54207
167328 +enable_so_mxt_bootloader_write_fndecl_54210 mxt_bootloader_write fndecl 3 54210 NULL nohasharray
167329 +enable_so___lock_page_killable_fndecl_54210 __lock_page_killable fndecl 0 54210 &enable_so_mxt_bootloader_write_fndecl_54210
167330 +enable_so_ep93xx_spi_enable_fndecl_54214 ep93xx_spi_enable fndecl 0 54214 NULL nohasharray
167331 +enable_so_page_offset_ixgbe_rx_buffer_54214 page_offset ixgbe_rx_buffer 0 54214 &enable_so_ep93xx_spi_enable_fndecl_54214
167332 +enable_so_post_send_ib_device_54215 post_send ib_device 0 54215 NULL
167333 +enable_so_append_frame_to_pkt_fndecl_54220 append_frame_to_pkt fndecl 2 54220 NULL nohasharray
167334 +enable_so_tx_ring_size_ql_adapter_54220 tx_ring_size ql_adapter 0 54220 &enable_so_append_frame_to_pkt_fndecl_54220
167335 +enable_so_lib80211_tkip_encrypt_fndecl_54222 lib80211_tkip_encrypt fndecl 2 54222 NULL
167336 +enable_so_btrfs_get_token_64_fndecl_54223 btrfs_get_token_64 fndecl 0 54223 NULL nohasharray
167337 +enable_so_numeraseregions_mtd_info_54223 numeraseregions mtd_info 0 54223 &enable_so_btrfs_get_token_64_fndecl_54223
167338 +enable_so_num_boxes_intel_uncore_type_54227 num_boxes intel_uncore_type 0 54227 NULL
167339 +enable_so_vbi_hlen_saa7134_dev_54228 vbi_hlen saa7134_dev 0 54228 NULL
167340 +enable_so___kfifo_to_user_fndecl_54232 __kfifo_to_user fndecl 3 54232 NULL
167341 +enable_so_skb_copy_and_csum_datagram_msg_fndecl_54237 skb_copy_and_csum_datagram_msg fndecl 2 54237 NULL
167342 +enable_so_fdt_next_node_fndecl_54242 fdt_next_node fndecl 0-2 54242 NULL nohasharray
167343 +enable_so_tcp_queue_rcv_fndecl_54242 tcp_queue_rcv fndecl 3 54242 &enable_so_fdt_next_node_fndecl_54242
167344 +enable_so_upper_margin_fb_var_screeninfo_54245 upper_margin fb_var_screeninfo 0 54245 NULL nohasharray
167345 +enable_so_pcnet32_realloc_rx_ring_fndecl_54245 pcnet32_realloc_rx_ring fndecl 3 54245 &enable_so_upper_margin_fb_var_screeninfo_54245
167346 +enable_so_la_last_gd_ocfs2_super_54246 la_last_gd ocfs2_super 0 54246 NULL
167347 +enable_so_num_counters_compat_ipt_replace_54249 num_counters compat_ipt_replace 0 54249 NULL
167348 +enable_so_ttm_object_device_init_fndecl_54252 ttm_object_device_init fndecl 2 54252 NULL
167349 +enable_so_fl_size_qset_params_54254 fl_size qset_params 0 54254 NULL
167350 +enable_so___erst_read_fndecl_54256 __erst_read fndecl 0-1 54256 NULL
167351 +enable_so_ssb_bus_scan_fndecl_54257 ssb_bus_scan fndecl 2 54257 NULL
167352 +enable_so_qnx6_iget_fndecl_54262 qnx6_iget fndecl 2 54262 NULL
167353 +enable_so_txrx_bufs_spi_bitbang_54265 txrx_bufs spi_bitbang 0 54265 NULL
167354 +enable_so_put_cmsg_fndecl_54270 put_cmsg fndecl 4 54270 NULL
167355 +enable_so_msdu_len_htt_rx_in_ord_msdu_desc_54278 msdu_len htt_rx_in_ord_msdu_desc 0 54278 NULL
167356 +enable_so_key_size_crypt_config_54287 key_size crypt_config 0 54287 NULL
167357 +enable_so_fat_file_fsync_fndecl_54291 fat_file_fsync fndecl 2-3 54291 NULL
167358 +enable_so_thoff_flow_dissector_key_control_54299 thoff flow_dissector_key_control 0 54299 NULL
167359 +enable_so_ntfs_attr_extend_initialized_fndecl_54303 ntfs_attr_extend_initialized fndecl 2 54303 NULL nohasharray
167360 +enable_so_count_ext4_new_flex_group_data_54303 count ext4_new_flex_group_data 0 54303 &enable_so_ntfs_attr_extend_initialized_fndecl_54303
167361 +enable_so_ceph_osdc_start_request_fndecl_54305 ceph_osdc_start_request fndecl 0 54305 NULL
167362 +enable_so_pvr2_issue_simple_cmd_fndecl_54313 pvr2_issue_simple_cmd fndecl 2 54313 NULL
167363 +enable_so_capi_write_fndecl_54323 capi_write fndecl 3 54323 NULL nohasharray
167364 +enable_so_tx_tx_done_template_read_fndecl_54323 tx_tx_done_template_read fndecl 3 54323 &enable_so_capi_write_fndecl_54323
167365 +enable_so_ide_settings_proc_write_fndecl_54325 ide_settings_proc_write fndecl 3 54325 NULL
167366 +enable_so_nla_alloc_flow_actions_fndecl_54328 nla_alloc_flow_actions fndecl 1 54328 NULL
167367 +enable_so_determine_backup_region_fndecl_54330 determine_backup_region fndecl 1-2 54330 NULL
167368 +enable_so_length_acpi_table_header_54332 length acpi_table_header 0 54332 NULL
167369 +enable_so_vringh_iov_push_user_fndecl_54340 vringh_iov_push_user fndecl 3 54340 NULL nohasharray
167370 +enable_so_iscsi_conn_setup_fndecl_54340 iscsi_conn_setup fndecl 2 54340 &enable_so_vringh_iov_push_user_fndecl_54340
167371 +enable_so_max_rcvbuf_size_tipc_server_54342 max_rcvbuf_size tipc_server 0 54342 NULL
167372 +enable_so_ieee80211_if_read_bssid_fndecl_54346 ieee80211_if_read_bssid fndecl 3 54346 NULL
167373 +enable_so_max_raw_minors_vardecl_raw_c_54348 max_raw_minors vardecl_raw.c 0 54348 NULL
167374 +enable_so_wm8997_set_fll_fndecl_54349 wm8997_set_fll fndecl 5 54349 NULL
167375 +enable_so_k_objectid_in_core_key_54352 k_objectid in_core_key 0 54352 NULL nohasharray
167376 +enable_so_p_offset_elf32_phdr_54352 p_offset elf32_phdr 0 54352 &enable_so_k_objectid_in_core_key_54352
167377 +enable_so_hfsplus_block_allocate_fndecl_54353 hfsplus_block_allocate fndecl 0-3-2 54353 NULL
167378 +enable_so_s_fpbmask_ufs_sb_private_info_54354 s_fpbmask ufs_sb_private_info 0 54354 NULL
167379 +enable_so_encode_netobj_fndecl_54356 encode_netobj fndecl 3 54356 NULL
167380 +enable_so_radeon_vram_limit_vardecl_54357 radeon_vram_limit vardecl 0 54357 NULL
167381 +enable_so_tpm_tis_i2c_send_fndecl_54358 tpm_tis_i2c_send fndecl 3 54358 NULL
167382 +enable_so_pkt_size_rx_pkt_status_54360 pkt_size rx_pkt_status 0 54360 NULL
167383 +enable_so_gntdev_alloc_map_fndecl_54362 gntdev_alloc_map fndecl 2 54362 NULL
167384 +enable_so_ceph_get_caps_fndecl_54363 ceph_get_caps fndecl 0 54363 NULL
167385 +enable_so_size_ramoops_context_54365 size ramoops_context 0 54365 NULL
167386 +enable_so_usb_cdc_wdm_register_fndecl_54371 usb_cdc_wdm_register fndecl 3 54371 NULL nohasharray
167387 +enable_so_mlx4_ib_get_cq_umem_fndecl_54371 mlx4_ib_get_cq_umem fndecl 5-6 54371 &enable_so_usb_cdc_wdm_register_fndecl_54371 nohasharray
167388 +enable_so_num_cpu_pages_radeon_gart_54371 num_cpu_pages radeon_gart 0 54371 &enable_so_mlx4_ib_get_cq_umem_fndecl_54371
167389 +enable_so_scif_setup_qp_connect_fndecl_54372 scif_setup_qp_connect fndecl 3 54372 NULL
167390 +enable_so_saved_priority_binder_transaction_54377 saved_priority binder_transaction 0 54377 NULL
167391 +enable_so_iwl_nvm_read_chunk_fndecl_54381 iwl_nvm_read_chunk fndecl 0 54381 NULL
167392 +enable_so_bt878_adr_bt878_54384 bt878_adr bt878 0 54384 NULL
167393 +enable_so_mt7601u_rx_next_seg_len_fndecl_54390 mt7601u_rx_next_seg_len fndecl 0 54390 NULL
167394 +enable_so_nbufs_mlx4_buf_54391 nbufs mlx4_buf 0 54391 NULL
167395 +enable_so_ring_size_netvsc_device_54397 ring_size netvsc_device 0 54397 NULL
167396 +enable_so_memsize_viafb_par_54399 memsize viafb_par 0 54399 NULL nohasharray
167397 +enable_so_SyS_init_module_fndecl_54399 SyS_init_module fndecl 2 54399 &enable_so_memsize_viafb_par_54399
167398 +enable_so_striped_read_fndecl_54401 striped_read fndecl 0-2 54401 NULL nohasharray
167399 +enable_so_leaf_shift_left_fndecl_54401 leaf_shift_left fndecl 3 54401 &enable_so_striped_read_fndecl_54401 nohasharray
167400 +enable_so_security_key_getsecurity_fndecl_54401 security_key_getsecurity fndecl 0 54401 &enable_so_leaf_shift_left_fndecl_54401
167401 +enable_so__osd_req_alist_elem_size_fndecl_54403 _osd_req_alist_elem_size fndecl 0-2 54403 NULL
167402 +enable_so_gr_ep0_respond_fndecl_54405 gr_ep0_respond fndecl 3 54405 NULL
167403 +enable_so_len_a2mp_cmd_54407 len a2mp_cmd 0 54407 NULL
167404 +enable_so_vmw_execbuf_submit_fifo_fndecl_54409 vmw_execbuf_submit_fifo fndecl 3 54409 NULL nohasharray
167405 +enable_so_xfs_ialloc_ag_select_fndecl_54409 xfs_ialloc_ag_select fndecl 2-0 54409 &enable_so_vmw_execbuf_submit_fifo_fndecl_54409 nohasharray
167406 +enable_so_wp_retry_size_smb_version_operations_54409 wp_retry_size smb_version_operations 0 54409 &enable_so_xfs_ialloc_ag_select_fndecl_54409 nohasharray
167407 +enable_so_rx_rx_cmplt_task_read_fndecl_54409 rx_rx_cmplt_task_read fndecl 3 54409 &enable_so_wp_retry_size_smb_version_operations_54409
167408 +enable_so_mthca_alloc_icm_coherent_fndecl_54412 mthca_alloc_icm_coherent fndecl 3 54412 NULL
167409 +enable_so_qat_hal_get_ins_num_fndecl_54416 qat_hal_get_ins_num fndecl 0 54416 NULL nohasharray
167410 +enable_so_compat_SyS_pselect6_fndecl_54416 compat_SyS_pselect6 fndecl 1 54416 &enable_so_qat_hal_get_ins_num_fndecl_54416
167411 +enable_so_user_height_soc_camera_device_54417 user_height soc_camera_device 0 54417 NULL nohasharray
167412 +enable_so_nrof_flowrings_brcmf_bus_msgbuf_54417 nrof_flowrings brcmf_bus_msgbuf 0 54417 &enable_so_user_height_soc_camera_device_54417
167413 +enable_so_subsampling_s5p_jpeg_ctx_54418 subsampling s5p_jpeg_ctx 0 54418 NULL nohasharray
167414 +enable_so_qlcnic_process_lro_fndecl_54418 qlcnic_process_lro fndecl 4-3 54418 &enable_so_subsampling_s5p_jpeg_ctx_54418
167415 +enable_so_oxygen_pci_probe_fndecl_54423 oxygen_pci_probe fndecl 2 54423 NULL
167416 +enable_so_follow_page_mask_fndecl_54427 follow_page_mask fndecl 2 54427 NULL
167417 +enable_so_qnx6_get_devblock_fndecl_54428 qnx6_get_devblock fndecl 0 54428 NULL
167418 +enable_so_startbit_netlbl_lsm_catmap_54432 startbit netlbl_lsm_catmap 0 54432 NULL
167419 +enable_so_set_fd_set_fndecl_54434 set_fd_set fndecl 1 54434 NULL
167420 +enable_so_ieee80211_add_tx_radiotap_header_fndecl_54443 ieee80211_add_tx_radiotap_header fndecl 5 54443 NULL
167421 +enable_so_jbd2_journal_get_write_access_fndecl_54444 jbd2_journal_get_write_access fndecl 0 54444 NULL
167422 +enable_so_gfn_to_page_many_atomic_fndecl_54449 gfn_to_page_many_atomic fndecl 2 54449 NULL
167423 +enable_so_kimage_file_prepare_segments_fndecl_54451 kimage_file_prepare_segments fndecl 5 54451 NULL
167424 +enable_so_regmap_cache_bypass_write_file_fndecl_54455 regmap_cache_bypass_write_file fndecl 3 54455 NULL
167425 +enable_so_upd_ltab_fndecl_54459 upd_ltab fndecl 3 54459 NULL
167426 +enable_so_a_count_posix_acl_54461 a_count posix_acl 0 54461 NULL nohasharray
167427 +enable_so_vringh_init_kern_fndecl_54461 vringh_init_kern fndecl 3 54461 &enable_so_a_count_posix_acl_54461
167428 +enable_so_s_rnr_retry_cnt_qib_qp_54462 s_rnr_retry_cnt qib_qp 0 54462 NULL nohasharray
167429 +enable_so_ide_mm_inb_fndecl_54462 ide_mm_inb fndecl 0 54462 &enable_so_s_rnr_retry_cnt_qib_qp_54462
167430 +enable_so_isr_rx_rdys_read_fndecl_54464 isr_rx_rdys_read fndecl 3 54464 NULL nohasharray
167431 +enable_so_nvkm_notify_init_fndecl_54464 nvkm_notify_init fndecl 7 54464 &enable_so_isr_rx_rdys_read_fndecl_54464
167432 +enable_so_max_flash_timeout_adp1653_platform_data_54465 max_flash_timeout adp1653_platform_data 0 54465 NULL
167433 +enable_so_mlxsw_emad_alloc_fndecl_54469 mlxsw_emad_alloc fndecl 2 54469 NULL
167434 +enable_so_memory_device_code_ms_boot_attr_info_54474 memory_device_code ms_boot_attr_info 0 54474 NULL
167435 +enable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 3-4 54477 NULL
167436 +enable_so_initial_height_vmw_private_54479 initial_height vmw_private 0 54479 NULL
167437 +enable_so_spi_write_buf_fndecl_54490 spi_write_buf fndecl 2 54490 NULL
167438 +enable_so_n_chan_comedi_subdevice_54496 n_chan comedi_subdevice 0 54496 NULL
167439 +enable_so_dev_start_strip_zone_54501 dev_start strip_zone 0 54501 NULL
167440 +enable_so_max_fds_fdtable_54502 max_fds fdtable 0 54502 NULL
167441 +enable_so_mwifiex_set_gen_ie_helper_fndecl_54506 mwifiex_set_gen_ie_helper fndecl 3 54506 NULL
167442 +enable_so_sys_setsockopt_fndecl_54507 sys_setsockopt fndecl 5 54507 NULL
167443 +enable_so_m_agfrotor_xfs_mount_54510 m_agfrotor xfs_mount 0 54510 NULL nohasharray
167444 +enable_so_get_rxfh_indir_size_ethtool_ops_54510 get_rxfh_indir_size ethtool_ops 0 54510 &enable_so_m_agfrotor_xfs_mount_54510
167445 +enable_so_depth_camif_fmt_54512 depth camif_fmt 0 54512 NULL
167446 +enable_so_btrfs_map_bio_fndecl_54519 btrfs_map_bio fndecl 0 54519 NULL
167447 +enable_so___btrfs_buffered_write_fndecl_54524 __btrfs_buffered_write fndecl 3 54524 NULL
167448 +enable_so_ocfs2_read_dir_block_direct_fndecl_54528 ocfs2_read_dir_block_direct fndecl 2 54528 NULL
167449 +enable_so_bio_segments_fndecl_54531 bio_segments fndecl 0 54531 NULL
167450 +enable_so_b43_debugfs_write_fndecl_54533 b43_debugfs_write fndecl 3 54533 NULL
167451 +enable_so_num_ccells_cnic_local_54538 num_ccells cnic_local 0 54538 NULL
167452 +enable_so_v_sync_strt_wid_crtc_54541 v_sync_strt_wid crtc 0 54541 NULL nohasharray
167453 +enable_so_bandlength_Kiara_table_entry_54541 bandlength Kiara_table_entry 0 54541 &enable_so_v_sync_strt_wid_crtc_54541
167454 +enable_so_s_dev_table_count_exofs_fscb_54542 s_dev_table_count exofs_fscb 0 54542 NULL
167455 +enable_so_bpp_vardecl_tridentfb_c_54547 bpp vardecl_tridentfb.c 0 54547 NULL
167456 +enable_so_pages_snd_sg_buf_54557 pages snd_sg_buf 0 54557 NULL
167457 +enable_so_ieee80211_if_read_txpower_fndecl_54564 ieee80211_if_read_txpower fndecl 3 54564 NULL
167458 +enable_so_num_cache_leaves_vardecl_54568 num_cache_leaves vardecl 0 54568 NULL
167459 +enable_so_ath6kl_wmi_probe_report_req_cmd_fndecl_54576 ath6kl_wmi_probe_report_req_cmd fndecl 2 54576 NULL
167460 +enable_so_qnx6_check_first_superblock_fndecl_54577 qnx6_check_first_superblock fndecl 2 54577 NULL
167461 +enable_so_priority_sk_buff_54581 priority sk_buff 0 54581 NULL
167462 +enable_so_acpi_system_write_wakeup_device_fndecl_54582 acpi_system_write_wakeup_device fndecl 3 54582 NULL
167463 +enable_so_size_acpi_gpio_mapping_54583 size acpi_gpio_mapping 0 54583 NULL
167464 +enable_so_usb_serial_generic_prepare_write_buffer_fndecl_54586 usb_serial_generic_prepare_write_buffer fndecl 3 54586 NULL
167465 +enable_so_erase_size_mmc_card_54587 erase_size mmc_card 0 54587 NULL
167466 +enable_so_pci_netmos_9900_setup_fndecl_54589 pci_netmos_9900_setup fndecl 4 54589 NULL
167467 +enable_so_near_copies_geom_54591 near_copies geom 0 54591 NULL nohasharray
167468 +enable_so_width_cx231xx_54591 width cx231xx 0 54591 &enable_so_near_copies_geom_54591
167469 +enable_so_viafb_i2c_readbytes_fndecl_54593 viafb_i2c_readbytes fndecl 5 54593 NULL
167470 +enable_so_rfcomm_sock_create_fndecl_54598 rfcomm_sock_create fndecl 3 54598 NULL
167471 +enable_so_vmw_local_fifo_reserve_fndecl_54601 vmw_local_fifo_reserve fndecl 2 54601 NULL
167472 +enable_so_x25_create_fndecl_54604 x25_create fndecl 3 54604 NULL
167473 +enable_so_mipi_dsi_dcs_write_fndecl_54605 mipi_dsi_dcs_write fndecl 4 54605 NULL
167474 +enable_so_fat32_length_fat_bios_param_block_54606 fat32_length fat_bios_param_block 0 54606 NULL
167475 +enable_so_nfs4_get_acl_uncached_fndecl_54608 nfs4_get_acl_uncached fndecl 3 54608 NULL
167476 +enable_so_adfs_f_read_fndecl_54612 adfs_f_read fndecl 2 54612 NULL
167477 +enable_so_msg_print_text_fndecl_54618 msg_print_text fndecl 0 54618 NULL
167478 +enable_so_ieee80211_if_write_fndecl_54621 ieee80211_if_write fndecl 3 54621 NULL
167479 +enable_so_pages_in_unit___stripe_pages_2d_54623 pages_in_unit __stripe_pages_2d 0 54623 NULL nohasharray
167480 +enable_so_nr_frames_frame_vector_54623 nr_frames frame_vector 0 54623 &enable_so_pages_in_unit___stripe_pages_2d_54623
167481 +enable_so_fb_aper_offset_drm_radeon_private_54625 fb_aper_offset drm_radeon_private 0 54625 NULL
167482 +enable_so_ext4_new_meta_blocks_fndecl_54631 ext4_new_meta_blocks fndecl 0 54631 NULL
167483 +enable_so_len_ncp_privatedata_ioctl_54632 len ncp_privatedata_ioctl 0 54632 NULL
167484 +enable_so_vt1211_device_add_fndecl_54634 vt1211_device_add fndecl 1 54634 NULL
167485 +enable_so_bits_per_sample_soc_mbus_pixelfmt_54636 bits_per_sample soc_mbus_pixelfmt 0 54636 NULL nohasharray
167486 +enable_so_text_len_printk_log_54636 text_len printk_log 0 54636 &enable_so_bits_per_sample_soc_mbus_pixelfmt_54636
167487 +enable_so_n_tx_channels_efx_nic_54638 n_tx_channels efx_nic 0 54638 NULL nohasharray
167488 +enable_so_max_dvc_qng_adv_dvc_var_54638 max_dvc_qng adv_dvc_var 0 54638 &enable_so_n_tx_channels_efx_nic_54638
167489 +enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644 extra_mpdu_prefix_len lib80211_crypto_ops 0 54644 NULL nohasharray
167490 +enable_so_nchannels_cosa_data_54644 nchannels cosa_data 0 54644 &enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644
167491 +enable_so_MaxChainDepth_mpt3sas_facts_54646 MaxChainDepth mpt3sas_facts 0 54646 NULL
167492 +enable_so_write_msg_fndecl_54647 write_msg fndecl 3 54647 NULL nohasharray
167493 +enable_so_si476x_radio_read_rsq_primary_blob_fndecl_54647 si476x_radio_read_rsq_primary_blob fndecl 3 54647 &enable_so_write_msg_fndecl_54647
167494 +enable_so___inode_permission_fndecl_54654 __inode_permission fndecl 0 54654 NULL
167495 +enable_so_tx_flags_fe_priv_54658 tx_flags fe_priv 0 54658 NULL
167496 +enable_so_target_freq_mt9p031_platform_data_54660 target_freq mt9p031_platform_data 0 54660 NULL nohasharray
167497 +enable_so_truncate_pagecache_fndecl_54660 truncate_pagecache fndecl 2 54660 &enable_so_target_freq_mt9p031_platform_data_54660 nohasharray
167498 +enable_so_reshape_position_mddev_54660 reshape_position mddev 0 54660 &enable_so_truncate_pagecache_fndecl_54660
167499 +enable_so_s_session_udf_sb_info_54662 s_session udf_sb_info 0 54662 NULL
167500 +enable_so_ssid_len_hostap_bss_info_54670 ssid_len hostap_bss_info 0 54670 NULL
167501 +enable_so_sb_imax_pct_xfs_sb_54671 sb_imax_pct xfs_sb 0 54671 NULL
167502 +enable_so_compat_SyS_kexec_load_fndecl_54672 compat_SyS_kexec_load fndecl 2 54672 NULL
167503 +enable_so_id_pps_device_54684 id pps_device 0 54684 NULL
167504 +enable_so_i2c_transfer_fndecl_54685 i2c_transfer fndecl 0 54685 NULL
167505 +enable_so___lpfc_sli_issue_iocb_fndecl_54687 __lpfc_sli_issue_iocb fndecl 0 54687 NULL
167506 +enable_so_fwbulkwritelen_tda10048_config_54693 fwbulkwritelen tda10048_config 0 54693 NULL
167507 +enable_so_num_queue_pairs_i40e_vsi_54696 num_queue_pairs i40e_vsi 0 54696 NULL nohasharray
167508 +enable_so_mlx4_en_create_cq_fndecl_54696 mlx4_en_create_cq fndecl 3 54696 &enable_so_num_queue_pairs_i40e_vsi_54696
167509 +enable_so_rx_rx_hdr_overflow_read_fndecl_54697 rx_rx_hdr_overflow_read fndecl 3 54697 NULL
167510 +enable_so_max_pages_per_frmr_ocrdma_dev_attr_54699 max_pages_per_frmr ocrdma_dev_attr 0 54699 NULL
167511 +enable_so_lookahead_deflate_state_54700 lookahead deflate_state 0 54700 NULL
167512 +enable_so_bo_number_drm_amdgpu_bo_list_in_54706 bo_number drm_amdgpu_bo_list_in 0 54706 NULL
167513 +enable_so_read_endpoint_zr364xx_camera_54710 read_endpoint zr364xx_camera 0 54710 NULL
167514 +enable_so_mpls_ethertype_ovs_action_push_mpls_54711 mpls_ethertype ovs_action_push_mpls 0 54711 NULL
167515 +enable_so_min_shutter_mt9v032_model_data_54716 min_shutter mt9v032_model_data 0 54716 NULL
167516 +enable_so_process_rcvd_status_fndecl_54722 process_rcvd_status fndecl 3 54722 NULL nohasharray
167517 +enable_so_status_usb_sg_request_54722 status usb_sg_request 0 54722 &enable_so_process_rcvd_status_fndecl_54722
167518 +enable_so_coda_psdev_read_fndecl_54726 coda_psdev_read fndecl 3 54726 NULL
167519 +enable_so_proc_setgroups_write_fndecl_54732 proc_setgroups_write fndecl 3 54732 NULL
167520 +enable_so_queue_size_eata_info_54734 queue_size eata_info 0 54734 NULL nohasharray
167521 +enable_so_hwdep_read_locked_fndecl_54734 hwdep_read_locked fndecl 3 54734 &enable_so_queue_size_eata_info_54734
167522 +enable_so_brcmf_fws_hdrpull_fndecl_54736 brcmf_fws_hdrpull fndecl 3 54736 NULL
167523 +enable_so_wBytesPerInterval_usb_ss_ep_comp_descriptor_54739 wBytesPerInterval usb_ss_ep_comp_descriptor 0 54739 NULL
167524 +enable_so_sisusb_copy_memory_fndecl_54747 sisusb_copy_memory fndecl 4 54747 NULL
167525 +enable_so_end_writequeue_entry_54752 end writequeue_entry 0 54752 NULL
167526 +enable_so_lpfc_hba_queue_depth_init_fndecl_54754 lpfc_hba_queue_depth_init fndecl 2 54754 NULL
167527 +enable_so_size__drm_via_cmdbuffer_54755 size _drm_via_cmdbuffer 0 54755 NULL
167528 +enable_so_spi_xcomm_setup_transfer_fndecl_54757 spi_xcomm_setup_transfer fndecl 0 54757 NULL
167529 +enable_so_pwr_connection_out_of_sync_read_fndecl_54758 pwr_connection_out_of_sync_read fndecl 3 54758 NULL
167530 +enable_so_ds_rename_dir_logfs_je_dynsb_54760 ds_rename_dir logfs_je_dynsb 0 54760 NULL
167531 +enable_so_hsc_major_vardecl_hsi_char_c_54769 hsc_major vardecl_hsi_char.c 0 54769 NULL
167532 +enable_so_x_len_ccp_ecc_point_54774 x_len ccp_ecc_point 0 54774 NULL
167533 +enable_so_start_fstrim_range_54775 start fstrim_range 0 54775 NULL
167534 +enable_so_append_cnt_ixgbe_cb_54776 append_cnt ixgbe_cb 0 54776 NULL
167535 +enable_so_ext_channel_count_hda_gen_spec_54778 ext_channel_count hda_gen_spec 0 54778 NULL
167536 +enable_so_xfs_rtallocate_extent_fndecl_54783 xfs_rtallocate_extent fndecl 2-8-4 54783 NULL
167537 +enable_so_rcvegrbuf_chunks_qib_ctxtdata_54789 rcvegrbuf_chunks qib_ctxtdata 0 54789 NULL
167538 +enable_so_size_dvb_ringbuffer_54794 size dvb_ringbuffer 0 54794 NULL
167539 +enable_so_num_sg_agp_memory_54800 num_sg agp_memory 0 54800 NULL
167540 +enable_so_spk_msg_set_fndecl_54801 spk_msg_set fndecl 3 54801 NULL
167541 +enable_so_num_snd_bebob_meter_spec_54805 num snd_bebob_meter_spec 0 54805 NULL
167542 +enable_so_unlock_extent_cached_fndecl_54806 unlock_extent_cached fndecl 2-3 54806 NULL nohasharray
167543 +enable_so_buf_size__BIG_IOCTL_Command_struct_54806 buf_size _BIG_IOCTL_Command_struct 0 54806 &enable_so_unlock_extent_cached_fndecl_54806
167544 +enable_so_dma_reserve_vardecl_page_alloc_c_54807 dma_reserve vardecl_page_alloc.c 0 54807 NULL
167545 +enable_so_nr_cached_objects_super_operations_54808 nr_cached_objects super_operations 0 54808 NULL
167546 +enable_so_fsx_extsize_fsxattr_54812 fsx_extsize fsxattr 0 54812 NULL
167547 +enable_so_pci_request_regions_fndecl_54816 pci_request_regions fndecl 0 54816 NULL
167548 +enable_so_ep_out_ksdazzle_cb_54817 ep_out ksdazzle_cb 0 54817 NULL nohasharray
167549 +enable_so_nv50_vm_create_fndecl_54817 nv50_vm_create fndecl 3-2 54817 &enable_so_ep_out_ksdazzle_cb_54817
167550 +enable_so_target_count_dm_ioctl_54826 target_count dm_ioctl 0 54826 NULL
167551 +enable_so_last_adv_data_len_discovery_state_54833 last_adv_data_len discovery_state 0 54833 NULL
167552 +enable_so_kernel_readv_fndecl_54834 kernel_readv fndecl 3 54834 NULL
167553 +enable_so_ixgbe_pci_sriov_configure_fndecl_54843 ixgbe_pci_sriov_configure fndecl 2 54843 NULL
167554 +enable_so_reiserfs_readpages_fndecl_54846 reiserfs_readpages fndecl 4 54846 NULL
167555 +enable_so_blkdev_direct_IO_fndecl_54850 blkdev_direct_IO fndecl 3 54850 NULL
167556 +enable_so_request_lock_fndecl_54853 request_lock fndecl 4 54853 NULL
167557 +enable_so_addr_len_net_device_54857 addr_len net_device 0 54857 NULL nohasharray
167558 +enable_so_compat_sys_kexec_load_fndecl_54857 compat_sys_kexec_load fndecl 2 54857 &enable_so_addr_len_net_device_54857
167559 +enable_so_batadv_bla_get_backbone_gw_fndecl_54858 batadv_bla_get_backbone_gw fndecl 3 54858 NULL
167560 +enable_so_sr_blkno_ocfs2_suballoc_result_54860 sr_blkno ocfs2_suballoc_result 0 54860 NULL
167561 +enable_so_vb2_vmalloc_get_userptr_fndecl_54862 vb2_vmalloc_get_userptr fndecl 2-3 54862 NULL
167562 +enable_so_mru_ippp_struct_54863 mru ippp_struct 0 54863 NULL nohasharray
167563 +enable_so_shmem_file_llseek_fndecl_54863 shmem_file_llseek fndecl 2 54863 &enable_so_mru_ippp_struct_54863
167564 +enable_so_spi_register_board_info_fndecl_54864 spi_register_board_info fndecl 2 54864 NULL
167565 +enable_so_usb_dmac_desc_get_fndecl_54869 usb_dmac_desc_get fndecl 2 54869 NULL
167566 +enable_so_leaf_copy_boundary_item_fndecl_54870 leaf_copy_boundary_item fndecl 4 54870 NULL
167567 +enable_so_bufsize_nm256_stream_54875 bufsize nm256_stream 0 54875 NULL
167568 +enable_so_md_super_write_fndecl_54884 md_super_write fndecl 4-3 54884 NULL
167569 +enable_so_compress_sliced_buf_fndecl_54891 compress_sliced_buf fndecl 0 54891 NULL
167570 +enable_so_lmc_proto_type_fndecl_54893 lmc_proto_type fndecl 0 54893 NULL
167571 +enable_so___breadahead_fndecl_54896 __breadahead fndecl 3-2 54896 NULL
167572 +enable_so_num_uars_mlx5_uuar_info_54898 num_uars mlx5_uuar_info 0 54898 NULL
167573 +enable_so_dm_table_create_fndecl_54900 dm_table_create fndecl 3 54900 NULL
167574 +enable_so_buffer_size_qcaspi_54902 buffer_size qcaspi 0 54902 NULL nohasharray
167575 +enable_so_sr_read_tochdr_fndecl_54902 sr_read_tochdr fndecl 0 54902 &enable_so_buffer_size_qcaspi_54902
167576 +enable_so_rds_page_copy_user_fndecl_54904 rds_page_copy_user fndecl 4 54904 NULL
167577 +enable_so_ext4_es_cache_extent_fndecl_54906 ext4_es_cache_extent fndecl 2-3 54906 NULL
167578 +enable_so_numa_distance_cnt_vardecl_numa_c_54911 numa_distance_cnt vardecl_numa.c 0 54911 NULL
167579 +enable_so_pcan_dump_mem_fndecl_54915 pcan_dump_mem fndecl 3 54915 NULL
167580 +enable_so_iscsit_build_pdu_and_seq_lists_fndecl_54916 iscsit_build_pdu_and_seq_lists fndecl 2 54916 NULL
167581 +enable_so_ib_init_ah_from_path_fndecl_54917 ib_init_ah_from_path fndecl 2 54917 NULL
167582 +enable_so_sd_start_ov361x_fndecl_54922 sd_start_ov361x fndecl 0 54922 NULL
167583 +enable_so_line_length_fb_fix_screeninfo_54923 line_length fb_fix_screeninfo 0 54923 NULL nohasharray
167584 +enable_so_ipr_copy_ucode_buffer_fndecl_54923 ipr_copy_ucode_buffer fndecl 3 54923 &enable_so_line_length_fb_fix_screeninfo_54923
167585 +enable_so_sector_dm_io_region_54924 sector dm_io_region 0 54924 NULL
167586 +enable_so_cc2520_write_txfifo_fndecl_54930 cc2520_write_txfifo fndecl 3 54930 NULL
167587 +enable_so_xfs_end_io_direct_write_fndecl_54936 xfs_end_io_direct_write fndecl 2-3 54936 NULL
167588 +enable_so_hfs_find_set_zero_bits_fndecl_54937 hfs_find_set_zero_bits fndecl 0-3-2 54937 NULL
167589 +enable_so_blk_queue_logical_block_size_fndecl_54946 blk_queue_logical_block_size fndecl 2 54946 NULL nohasharray
167590 +enable_so_iwl_dbgfs_disable_ht40_read_fndecl_54946 iwl_dbgfs_disable_ht40_read fndecl 3 54946 &enable_so_blk_queue_logical_block_size_fndecl_54946
167591 +enable_so_per_rxd_space_vxge_hw_ring_attr_54953 per_rxd_space vxge_hw_ring_attr 0 54953 NULL
167592 +enable_so_log_blocks_per_seg_f2fs_super_block_54960 log_blocks_per_seg f2fs_super_block 0 54960 NULL
167593 +enable_so_pci_enable_sriov_fndecl_54962 pci_enable_sriov fndecl 2 54962 NULL
167594 +enable_so_offset_usb_iso_packet_descriptor_54977 offset usb_iso_packet_descriptor 0 54977 NULL
167595 +enable_so_v4l2_src_w_yuv_playback_info_54979 v4l2_src_w yuv_playback_info 0 54979 NULL
167596 +enable_so_len_cn_msg_54981 len cn_msg 0 54981 NULL
167597 +enable_so_size_qib_rq_54983 size qib_rq 0 54983 NULL
167598 +enable_so_ocfs2_direct_IO_write_fndecl_54985 ocfs2_direct_IO_write fndecl 3 54985 NULL
167599 +enable_so_alloc_netdev_mqs_fndecl_54989 alloc_netdev_mqs fndecl 5-1-6 54989 NULL
167600 +enable_so_rx_frame_size_pn533_frame_ops_54990 rx_frame_size pn533_frame_ops 0 54990 NULL
167601 +enable_so_ns_last_cno_the_nilfs_54997 ns_last_cno the_nilfs 0 54997 NULL
167602 +enable_so_rx_bufsize_bc_state_54999 rx_bufsize bc_state 0 54999 NULL nohasharray
167603 +enable_so_send_wqe_overhead_fndecl_54999 send_wqe_overhead fndecl 0 54999 &enable_so_rx_bufsize_bc_state_54999
167604 +enable_so_udf_alloc_i_data_fndecl_55001 udf_alloc_i_data fndecl 2 55001 NULL
167605 +enable_so_of_irq_to_resource_fndecl_55008 of_irq_to_resource fndecl 2 55008 NULL
167606 +enable_so_pvr2_hdw_cpufw_get_fndecl_55011 pvr2_hdw_cpufw_get fndecl 0-2-4 55011 NULL
167607 +enable_so_reply_payload_rcv_len_iscsi_bsg_reply_55012 reply_payload_rcv_len iscsi_bsg_reply 0 55012 NULL
167608 +enable_so_of_pci_get_host_bridge_resources_fndecl_55015 of_pci_get_host_bridge_resources fndecl 3-2 55015 NULL
167609 +enable_so_cz_smu_populate_single_scratch_entry_fndecl_55022 cz_smu_populate_single_scratch_entry fndecl 3 55022 NULL
167610 +enable_so_spec_romfs_inode_55023 spec romfs_inode 0 55023 NULL
167611 +enable_so_command_setcompressionparams_fndecl_55026 command_setcompressionparams fndecl 0 55026 NULL
167612 +enable_so_get_memsize_fndecl_55032 get_memsize fndecl 0 55032 NULL
167613 +enable_so_flash_timeout_lm3646_platform_data_55033 flash_timeout lm3646_platform_data 0 55033 NULL
167614 +enable_so_ov518_i2c_r_fndecl_55039 ov518_i2c_r fndecl 0 55039 NULL
167615 +enable_so_length_i2400m_tlv_hdr_55043 length i2400m_tlv_hdr 0 55043 NULL
167616 +enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044 ieee80211_rx_mgmt_deauth fndecl 3 55044 NULL nohasharray
167617 +enable_so_hpi_alloc_control_cache_fndecl_55044 hpi_alloc_control_cache fndecl 1 55044 &enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044
167618 +enable_so_vram_end_amdgpu_mc_55051 vram_end amdgpu_mc 0 55051 NULL
167619 +enable_so_h_panel_info_55057 h panel_info 0 55057 NULL nohasharray
167620 +enable_so_osd_xres_vardecl_ivtvfb_c_55057 osd_xres vardecl_ivtvfb.c 0 55057 &enable_so_h_panel_info_55057
167621 +enable_so_olo_num_comps_pnfs_osd_layout_55062 olo_num_comps pnfs_osd_layout 0 55062 NULL nohasharray
167622 +enable_so___mic_dma_alloc_fndecl_55062 __mic_dma_alloc fndecl 2 55062 &enable_so_olo_num_comps_pnfs_osd_layout_55062
167623 +enable_so_mlx4_alloc_hwq_res_fndecl_55064 mlx4_alloc_hwq_res fndecl 3 55064 NULL
167624 +enable_so_restart_sge_fndecl_55067 restart_sge fndecl 0-4-3 55067 NULL
167625 +enable_so_size_netup_unidvb_buffer_55068 size netup_unidvb_buffer 0 55068 NULL
167626 +enable_so_sddr55_get_capacity_fndecl_55072 sddr55_get_capacity fndecl 0 55072 NULL
167627 +enable_so_p9_virtio_zc_request_fndecl_55074 p9_virtio_zc_request fndecl 6-5-7 55074 NULL
167628 +enable_so_dev_dm_ioctl_55075 dev dm_ioctl 0 55075 NULL
167629 +enable_so_cp_pad_len_eata_info_55079 cp_pad_len eata_info 0 55079 NULL
167630 +enable_so_ext4_iget_normal_fndecl_55086 ext4_iget_normal fndecl 2 55086 NULL nohasharray
167631 +enable_so_frame_len_b43legacy_rxhdr_fw3_55086 frame_len b43legacy_rxhdr_fw3 0 55086 &enable_so_ext4_iget_normal_fndecl_55086
167632 +enable_so_width_smiapp_csi_data_format_55090 width smiapp_csi_data_format 0 55090 NULL
167633 +enable_so_vlan_rx_desc_55097 vlan rx_desc 0 55097 NULL
167634 +enable_so_usrtags_sym_tcb_55101 usrtags sym_tcb 0 55101 NULL
167635 +enable_so_read_kmem_fndecl_55103 read_kmem fndecl 3 55103 NULL
167636 +enable_so_fat_mirror_bhs_fndecl_55104 fat_mirror_bhs fndecl 0 55104 NULL nohasharray
167637 +enable_so_nftids_tid_info_55104 nftids tid_info 0 55104 &enable_so_fat_mirror_bhs_fndecl_55104
167638 +enable_so_fat_dir_entries_fat_bios_param_block_55106 fat_dir_entries fat_bios_param_block 0 55106 NULL nohasharray
167639 +enable_so_num_channels_ad5360_chip_info_55106 num_channels ad5360_chip_info 0 55106 &enable_so_fat_dir_entries_fat_bios_param_block_55106
167640 +enable_so_pnfs_num_cont_bytes_fndecl_55107 pnfs_num_cont_bytes fndecl 0-2 55107 NULL nohasharray
167641 +enable_so_SyS_getxattr_fndecl_55107 SyS_getxattr fndecl 4 55107 &enable_so_pnfs_num_cont_bytes_fndecl_55107
167642 +enable_so_min_channel_count_hda_gen_spec_55108 min_channel_count hda_gen_spec 0 55108 NULL
167643 +enable_so_scatterwalk_ffwd_fndecl_55110 scatterwalk_ffwd fndecl 3 55110 NULL
167644 +enable_so_y_zoran_overlay_settings_55113 y zoran_overlay_settings 0 55113 NULL
167645 +enable_so_unpack_to_rootfs_fndecl_55124 unpack_to_rootfs fndecl 2 55124 NULL
167646 +enable_so_length_dw_radeon_cs_chunk_55128 length_dw radeon_cs_chunk 0 55128 NULL
167647 +enable_so_btrfs_search_old_slot_fndecl_55133 btrfs_search_old_slot fndecl 0 55133 NULL
167648 +enable_so_ea_data_len_gfs2_ea_header_55134 ea_data_len gfs2_ea_header 0 55134 NULL
167649 +enable_so_namelen_dlm_lock_params_55146 namelen dlm_lock_params 0 55146 NULL
167650 +enable_so_gigaset_isowbuf_getbytes_fndecl_55147 gigaset_isowbuf_getbytes fndecl 0-2 55147 NULL
167651 +enable_so_befs_find_brun_dblindirect_fndecl_55152 befs_find_brun_dblindirect fndecl 3 55152 NULL
167652 +enable_so_offset_req_ies_ndis_80211_assoc_info_55155 offset_req_ies ndis_80211_assoc_info 0 55155 NULL
167653 +enable_so_iwl_dbgfs_drv_rx_stats_read_fndecl_55157 iwl_dbgfs_drv_rx_stats_read fndecl 3 55157 NULL
167654 +enable_so_sb_start_md_rdev_55161 sb_start md_rdev 0 55161 NULL
167655 +enable_so_buffer_to_user_fndecl_55164 buffer_to_user fndecl 3 55164 NULL
167656 +enable_so_len_replay_entry_55168 len replay_entry 0 55168 NULL
167657 +enable_so_pid_filter_count_dvb_usb_adapter_fe_properties_55180 pid_filter_count dvb_usb_adapter_fe_properties 0 55180 NULL
167658 +enable_so_hpfs_load_code_page_fndecl_55184 hpfs_load_code_page fndecl 2 55184 NULL
167659 +enable_so_virtqueue_get_vring_size_fndecl_55188 virtqueue_get_vring_size fndecl 0 55188 NULL
167660 +enable_so_result_dio_55189 result dio 0 55189 NULL
167661 +enable_so_efx_mcdi_rpc_async_quiet_fndecl_55191 efx_mcdi_rpc_async_quiet fndecl 4-5 55191 NULL
167662 +enable_so_vmxnet3_change_mtu_fndecl_55195 vmxnet3_change_mtu fndecl 2 55195 NULL
167663 +enable_so_seg_count_agp_region_55196 seg_count agp_region 0 55196 NULL
167664 +enable_so_drm_gtf2_2c_fndecl_55202 drm_gtf2_2c fndecl 0 55202 NULL
167665 +enable_so_len_uffdio_range_55211 len uffdio_range 0 55211 NULL
167666 +enable_so_num_eqs_mlx4_caps_55225 num_eqs mlx4_caps 0 55225 NULL
167667 +enable_so_adv_instance_cnt_hci_dev_55228 adv_instance_cnt hci_dev 0 55228 NULL
167668 +enable_so_iwl_read_prph_fndecl_55229 iwl_read_prph fndecl 0 55229 NULL
167669 +enable_so_btrfs_prealloc_file_range_trans_fndecl_55231 btrfs_prealloc_file_range_trans fndecl 4 55231 NULL
167670 +enable_so_rxpipe_tx_xfr_host_int_trig_rx_data_read_fndecl_55233 rxpipe_tx_xfr_host_int_trig_rx_data_read fndecl 3 55233 NULL
167671 +enable_so_offset56_cm_lap_msg_55235 offset56 cm_lap_msg 0 55235 NULL nohasharray
167672 +enable_so_pstore_mkfile_fndecl_55235 pstore_mkfile fndecl 7 55235 &enable_so_offset56_cm_lap_msg_55235
167673 +enable_so_sb_logsunit_xfs_sb_55236 sb_logsunit xfs_sb 0 55236 NULL
167674 +enable_so_ibnl_put_attr_fndecl_55238 ibnl_put_attr fndecl 3 55238 NULL
167675 +enable_so_ieee80211_if_write_smps_fndecl_55245 ieee80211_if_write_smps fndecl 3 55245 NULL
167676 +enable_so_mwifiex_set_encode_fndecl_55247 mwifiex_set_encode fndecl 4 55247 NULL
167677 +enable_so_async_setkey_fndecl_55250 async_setkey fndecl 3 55250 NULL
167678 +enable_so_req_ring_size_srp_target_port_55251 req_ring_size srp_target_port 0 55251 NULL
167679 +enable_so_d_reclen_venus_dirent_55253 d_reclen venus_dirent 0 55253 NULL
167680 +enable_so_size_pci_cap_saved_data_55258 size pci_cap_saved_data 0 55258 NULL
167681 +enable_so___filemap_fdatawrite_range_fndecl_55259 __filemap_fdatawrite_range fndecl 0-2-3 55259 NULL
167682 +enable_so_iwl_dbgfs_bt_traffic_read_fndecl_55261 iwl_dbgfs_bt_traffic_read fndecl 3 55261 NULL
167683 +enable_so_bpf_convert_filter_fndecl_55264 bpf_convert_filter fndecl 2 55264 NULL
167684 +enable_so_mbox_count_blogic_adapter_55274 mbox_count blogic_adapter 0 55274 NULL
167685 +enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277 bSubframeSize uac_format_type_i_discrete_descriptor 0 55277 NULL nohasharray
167686 +enable_so_sgoffset_cxgbi_task_data_55277 sgoffset cxgbi_task_data 0 55277 &enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277
167687 +enable_so_apic_phys_vardecl_apic_c_55279 apic_phys vardecl_apic.c 0 55279 NULL nohasharray
167688 +enable_so_ext2_acl_from_disk_fndecl_55279 ext2_acl_from_disk fndecl 2 55279 &enable_so_apic_phys_vardecl_apic_c_55279 nohasharray
167689 +enable_so_num_radar_types_dfs_pattern_detector_55279 num_radar_types dfs_pattern_detector 0 55279 &enable_so_ext2_acl_from_disk_fndecl_55279
167690 +enable_so_ld_default_stripe_count_lov_desc_55281 ld_default_stripe_count lov_desc 0 55281 NULL
167691 +enable_so_vb2_dqbuf_fndecl_55284 vb2_dqbuf fndecl 0 55284 NULL
167692 +enable_so_hdrlen_ipv6_rt_hdr_55289 hdrlen ipv6_rt_hdr 0 55289 NULL nohasharray
167693 +enable_so_readlen_proc_data_55289 readlen proc_data 0 55289 &enable_so_hdrlen_ipv6_rt_hdr_55289
167694 +enable_so_c_can_read_msg_object_fndecl_55291 c_can_read_msg_object fndecl 3 55291 NULL
167695 +enable_so_sq905c_command_fndecl_55293 sq905c_command fndecl 0 55293 NULL
167696 +enable_so_regmap_irq_chip_get_base_fndecl_55298 regmap_irq_chip_get_base fndecl 0 55298 NULL
167697 +enable_so_upd_bytes_ubi_volume_55301 upd_bytes ubi_volume 0 55301 NULL
167698 +enable_so_memcg_update_all_caches_fndecl_55303 memcg_update_all_caches fndecl 1 55303 NULL
167699 +enable_so_tgt_cnt_snic_report_tgts_cmpl_55306 tgt_cnt snic_report_tgts_cmpl 0 55306 NULL
167700 +enable_so_mxl111sf_stream_config_bulk_fndecl_55308 mxl111sf_stream_config_bulk fndecl 2 55308 NULL
167701 +enable_so_xfs_dialloc_fndecl_55309 xfs_dialloc fndecl 2 55309 NULL
167702 +enable_so_xfs_log_mount_fndecl_55312 xfs_log_mount fndecl 3-4 55312 NULL
167703 +enable_so_dataflash_read_fndecl_55313 dataflash_read fndecl 3 55313 NULL nohasharray
167704 +enable_so_bm_page_io_async_fndecl_55313 bm_page_io_async fndecl 2 55313 &enable_so_dataflash_read_fndecl_55313
167705 +enable_so_mon_buff_area_shrink_fndecl_55317 mon_buff_area_shrink fndecl 2 55317 NULL
167706 +enable_so_pcibios_iov_resource_alignment_fndecl_55327 pcibios_iov_resource_alignment fndecl 0 55327 NULL
167707 +enable_so_proc_scsi_host_write_fndecl_55336 proc_scsi_host_write fndecl 3 55336 NULL
167708 +enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356 pipeline_pipeline_fifo_full_read fndecl 3 55356 NULL nohasharray
167709 +enable_so_alc_alloc_spec_fndecl_55356 alc_alloc_spec fndecl 2 55356 &enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356
167710 +enable_so_fdt_del_node_fndecl_55357 fdt_del_node fndecl 2 55357 NULL
167711 +enable_so_islpci_mgt_transmit_fndecl_55366 islpci_mgt_transmit fndecl 5 55366 NULL
167712 +enable_so_btrfs_csum_one_bio_fndecl_55370 btrfs_csum_one_bio fndecl 0 55370 NULL
167713 +enable_so_cdc_mbim_process_dgram_fndecl_55371 cdc_mbim_process_dgram fndecl 4-3 55371 NULL nohasharray
167714 +enable_so_sctp_addto_param_fndecl_55371 sctp_addto_param fndecl 2 55371 &enable_so_cdc_mbim_process_dgram_fndecl_55371
167715 +enable_so_ixgbe_dbg_netdev_ops_write_fndecl_55374 ixgbe_dbg_netdev_ops_write fndecl 3 55374 NULL
167716 +enable_so_connect_frontend_dmx_demux_55378 connect_frontend dmx_demux 0 55378 NULL
167717 +enable_so_DataLength_smb2_write_rsp_55389 DataLength smb2_write_rsp 0 55389 NULL
167718 +enable_so_st_sensors_spi_read_multiple_byte_fndecl_55393 st_sensors_spi_read_multiple_byte fndecl 4 55393 NULL
167719 +enable_so_dxfer_len_skd_sg_io_55394 dxfer_len skd_sg_io 0 55394 NULL
167720 +enable_so_nprim_symtab_55398 nprim symtab 0 55398 NULL
167721 +enable_so_skb_to_sgvec_fndecl_55400 skb_to_sgvec fndecl 0-4-3 55400 NULL
167722 +enable_so_periodic_size_oxu_hcd_55401 periodic_size oxu_hcd 0 55401 NULL
167723 +enable_so_data_len_nf_conntrack_helper_55405 data_len nf_conntrack_helper 0 55405 NULL
167724 +enable_so_shmem_pread_fast_fndecl_55408 shmem_pread_fast fndecl 3 55408 NULL
167725 +enable_so_mpt_lan_type_trans_fndecl_55419 mpt_lan_type_trans fndecl 0 55419 NULL nohasharray
167726 +enable_so_min_param_range_55419 min param_range 0 55419 &enable_so_mpt_lan_type_trans_fndecl_55419
167727 +enable_so_memblock_trim_memory_fndecl_55423 memblock_trim_memory fndecl 1 55423 NULL
167728 +enable_so_snd_pcm_format_width_fndecl_55426 snd_pcm_format_width fndecl 0 55426 NULL
167729 +enable_so_hidp_set_raw_report_fndecl_55427 hidp_set_raw_report fndecl 4 55427 NULL
167730 +enable_so_rate_via_rate_lock_55434 rate via_rate_lock 0 55434 NULL
167731 +enable_so_rbd_osd_req_create_fndecl_55437 rbd_osd_req_create fndecl 3 55437 NULL
167732 +enable_so_wake_packet_length_iwl_wowlan_status_data_55438 wake_packet_length iwl_wowlan_status_data 0 55438 NULL
167733 +enable_so_nilfs_read_log_header_fndecl_55445 nilfs_read_log_header fndecl 2 55445 NULL nohasharray
167734 +enable_so_scan_read32_fndecl_55445 scan_read32 fndecl 0 55445 &enable_so_nilfs_read_log_header_fndecl_55445
167735 +enable_so_nilfs_direct_IO_fndecl_55447 nilfs_direct_IO fndecl 3 55447 NULL nohasharray
167736 +enable_so_dma_length_scatterlist_55447 dma_length scatterlist 0 55447 &enable_so_nilfs_direct_IO_fndecl_55447 nohasharray
167737 +enable_so_klen_nft_set_55447 klen nft_set 0 55447 &enable_so_dma_length_scatterlist_55447
167738 +enable_so_set_sample_rate_fndecl_55451 set_sample_rate fndecl 2 55451 NULL
167739 +enable_so_acpi_register_gsi_fndecl_55453 acpi_register_gsi fndecl 0 55453 NULL
167740 +enable_so_len_wm_coeff_parsed_coeff_55454 len wm_coeff_parsed_coeff 0 55454 NULL
167741 +enable_so_n_tty_receive_buf_fndecl_55457 n_tty_receive_buf fndecl 4 55457 NULL
167742 +enable_so_bcma_bus_next_num_vardecl_main_c_55461 bcma_bus_next_num vardecl_main.c 0 55461 NULL
167743 +enable_so_rx_ring2_size_vmxnet3_adapter_55465 rx_ring2_size vmxnet3_adapter 0 55465 NULL
167744 +enable_so_dma_buf_size_tegra_spi_data_55467 dma_buf_size tegra_spi_data 0 55467 NULL
167745 +enable_so_start_genius_cam_fndecl_55469 start_genius_cam fndecl 0 55469 NULL nohasharray
167746 +enable_so_macvtap_major_vardecl_macvtap_c_55469 macvtap_major vardecl_macvtap.c 0 55469 &enable_so_start_genius_cam_fndecl_55469
167747 +enable_so_hfsplus_cat_build_record_fndecl_55471 hfsplus_cat_build_record fndecl 2 55471 NULL
167748 +enable_so_xfs_bmapi_write_fndecl_55475 xfs_bmapi_write fndecl 4-3 55475 NULL nohasharray
167749 +enable_so_len_inet_frag_queue_55475 len inet_frag_queue 0 55475 &enable_so_xfs_bmapi_write_fndecl_55475
167750 +enable_so_ext4_da_write_begin_fndecl_55476 ext4_da_write_begin fndecl 4-3 55476 NULL
167751 +enable_so_vrefresh_drm_display_mode_55481 vrefresh drm_display_mode 0 55481 NULL nohasharray
167752 +enable_so___send_command_fndecl_55481 __send_command fndecl 7-5 55481 &enable_so_vrefresh_drm_display_mode_55481
167753 +enable_so_ocfs2_read_dx_leaf_fndecl_55488 ocfs2_read_dx_leaf fndecl 2 55488 NULL nohasharray
167754 +enable_so_data_offset_rndis_data_hdr_55488 data_offset rndis_data_hdr 0 55488 &enable_so_ocfs2_read_dx_leaf_fndecl_55488
167755 +enable_so_nft_set_ext_add_length_fndecl_55489 nft_set_ext_add_length fndecl 3 55489 NULL
167756 +enable_so_rx_jumbo_thresh_bnx2_55494 rx_jumbo_thresh bnx2 0 55494 NULL nohasharray
167757 +enable_so_r_offset_rds_page_remainder_55494 r_offset rds_page_remainder 0 55494 &enable_so_rx_jumbo_thresh_bnx2_55494 nohasharray
167758 +enable_so_data_length_iscsi_data_count_55494 data_length iscsi_data_count 0 55494 &enable_so_r_offset_rds_page_remainder_55494
167759 +enable_so_bl_pipe_downcall_fndecl_55499 bl_pipe_downcall fndecl 3 55499 NULL
167760 +enable_so_setup_nodes_for_search_fndecl_55515 setup_nodes_for_search fndecl 0 55515 NULL
167761 +enable_so_iram_offset_sst_res_info_55518 iram_offset sst_res_info 0 55518 NULL
167762 +enable_so_reg_bits_regmap_config_55521 reg_bits regmap_config 0 55521 NULL
167763 +enable_so_NumBlockTypes_cfi_intelext_regioninfo_55526 NumBlockTypes cfi_intelext_regioninfo 0 55526 NULL
167764 +enable_so_bofs_count_irlap_cb_55531 bofs_count irlap_cb 0 55531 NULL nohasharray
167765 +enable_so_iscsi_login_rx_data_fndecl_55531 iscsi_login_rx_data fndecl 3 55531 &enable_so_bofs_count_irlap_cb_55531
167766 +enable_so_blkdev_max_hw_sectors_vardecl_dev_c_55533 blkdev_max_hw_sectors vardecl_dev.c 0 55533 NULL
167767 +enable_so_irq_intel_lpss_platform_info_55538 irq intel_lpss_platform_info 0 55538 NULL
167768 +enable_so_crtcs_psb_ops_55540 crtcs psb_ops 0 55540 NULL
167769 +enable_so_rf_blkno_ocfs2_refcount_block_55545 rf_blkno ocfs2_refcount_block 0 55545 NULL
167770 +enable_so_isoc_enable_fndecl_55546 isoc_enable fndecl 0 55546 NULL
167771 +enable_so_tmp_afs_call_55554 tmp afs_call 0 55554 NULL
167772 +enable_so_usVSyncOffset__ATOM_DTD_FORMAT_55558 usVSyncOffset _ATOM_DTD_FORMAT 0 55558 NULL
167773 +enable_so_read_reg_fndecl_55560 read_reg fndecl 0 55560 NULL nohasharray
167774 +enable_so_filter_write_fndecl_55560 filter_write fndecl 3 55560 &enable_so_read_reg_fndecl_55560
167775 +enable_so_iv_len_ieee80211_key_conf_55561 iv_len ieee80211_key_conf 0 55561 NULL
167776 +enable_so_io_tlb_overflow_vardecl_swiotlb_c_55570 io_tlb_overflow vardecl_swiotlb.c 0 55570 NULL
167777 +enable_so_if_sdio_read_rx_len_fndecl_55579 if_sdio_read_rx_len fndecl 0 55579 NULL
167778 +enable_so_index_vardecl_pcsp_c_55582 index vardecl_pcsp.c 0 55582 NULL
167779 +enable_so_bfad_iocmd_phy_read_fndecl_55583 bfad_iocmd_phy_read fndecl 0 55583 NULL
167780 +enable_so_coh_page_bufsize_cl_object_header_55585 coh_page_bufsize cl_object_header 0 55585 NULL
167781 +enable_so_exofs_file_fsync_fndecl_55588 exofs_file_fsync fndecl 2-3 55588 NULL
167782 +enable_so_ext4_punch_hole_fndecl_55604 ext4_punch_hole fndecl 2-3 55604 NULL
167783 +enable_so_overlay_out_top_vivid_dev_55610 overlay_out_top vivid_dev 0 55610 NULL nohasharray
167784 +enable_so_amdgpu_vm_bo_map_fndecl_55610 amdgpu_vm_bo_map fndecl 5-3 55610 &enable_so_overlay_out_top_vivid_dev_55610
167785 +enable_so_udplite_manip_pkt_fndecl_55611 udplite_manip_pkt fndecl 4 55611 NULL
167786 +enable_so_length_ipw_rx_frame_55612 length ipw_rx_frame 0 55612 NULL
167787 +enable_so_alg_trunc_len_xfrm_algo_auth_55613 alg_trunc_len xfrm_algo_auth 0 55613 NULL
167788 +enable_so_initial_width_vmw_private_55615 initial_width vmw_private 0 55615 NULL nohasharray
167789 +enable_so_ybpp_camif_fmt_55615 ybpp camif_fmt 0 55615 &enable_so_initial_width_vmw_private_55615
167790 +enable_so_vmci_transport_dgram_dequeue_fndecl_55628 vmci_transport_dgram_dequeue fndecl 3 55628 NULL
167791 +enable_so_bin_string_fndecl_55631 bin_string fndecl 5-3 55631 NULL
167792 +enable_so_hfsplus_ext_read_extent_fndecl_55633 hfsplus_ext_read_extent fndecl 2 55633 NULL
167793 +enable_so_tcfv_push_proto_tcf_vlan_55635 tcfv_push_proto tcf_vlan 0 55635 NULL
167794 +enable_so_max_pkt_size_cx231xx_isoc_ctl_55637 max_pkt_size cx231xx_isoc_ctl 0 55637 NULL
167795 +enable_so_extra_tx_headroom_ieee80211_hw_55638 extra_tx_headroom ieee80211_hw 0 55638 NULL
167796 +enable_so_vmw_setup_otable_base_fndecl_55639 vmw_setup_otable_base fndecl 4 55639 NULL
167797 +enable_so_rcvidx_isar_hw_55643 rcvidx isar_hw 0 55643 NULL
167798 +enable_so_sr_read_sector_fndecl_55647 sr_read_sector fndecl 3 55647 NULL
167799 +enable_so_start_sector_mspro_sys_info_55650 start_sector mspro_sys_info 0 55650 NULL
167800 +enable_so_sg_nents_fndecl_55654 sg_nents fndecl 0 55654 NULL
167801 +enable_so_get_user_pages_fndecl_55655 get_user_pages fndecl 0-3 55655 NULL
167802 +enable_so_ath6kl_roam_mode_write_fndecl_55659 ath6kl_roam_mode_write fndecl 3 55659 NULL
167803 +enable_so_queue_logical_block_size_fndecl_55661 queue_logical_block_size fndecl 0 55661 NULL
167804 +enable_so_ath6kl_sdio_io_fndecl_55662 ath6kl_sdio_io fndecl 5 55662 NULL
167805 +enable_so_hfs_ext_lastblock_fndecl_55665 hfs_ext_lastblock fndecl 0 55665 NULL
167806 +enable_so_pagl_rightrec_xfs_perag_55670 pagl_rightrec xfs_perag 0 55670 NULL
167807 +enable_so_smsc47m1_handle_resources_fndecl_55676 smsc47m1_handle_resources fndecl 1 55676 NULL
167808 +enable_so_al_stripes_drbd_md_55679 al_stripes drbd_md 0 55679 NULL
167809 +enable_so_lpfc_idiag_ctlacc_read_fndecl_55684 lpfc_idiag_ctlacc_read fndecl 3 55684 NULL
167810 +enable_so_sel_read_avc_cache_threshold_fndecl_55685 sel_read_avc_cache_threshold fndecl 3 55685 NULL
167811 +enable_so_rs_sta_dbgfs_drv_tx_stats_read_fndecl_55689 rs_sta_dbgfs_drv_tx_stats_read fndecl 3 55689 NULL
167812 +enable_so_stv06xx_write_bridge_fndecl_55690 stv06xx_write_bridge fndecl 0 55690 NULL
167813 +enable_so_read_file_tgt_rx_stats_fndecl_55691 read_file_tgt_rx_stats fndecl 3 55691 NULL
167814 +enable_so_omfs_iget_fndecl_55693 omfs_iget fndecl 2 55693 NULL
167815 +enable_so_unique_pos_vardecl_jfs_dtree_c_55709 unique_pos vardecl_jfs_dtree.c 0 55709 NULL
167816 +enable_so_inline_wsize_rpcrdma_create_data_internal_55719 inline_wsize rpcrdma_create_data_internal 0 55719 NULL
167817 +enable_so_fbcon_resize_fndecl_55724 fbcon_resize fndecl 3-2 55724 NULL
167818 +enable_so_kvm_vcpu_gfn_to_page_fndecl_55725 kvm_vcpu_gfn_to_page fndecl 2 55725 NULL
167819 +enable_so_dst_command_fndecl_55728 dst_command fndecl 3 55728 NULL
167820 +enable_so_vsi_iext_vxfs_sb_info_55734 vsi_iext vxfs_sb_info 0 55734 NULL nohasharray
167821 +enable_so_nilfs_direct_delete_and_convert_fndecl_55734 nilfs_direct_delete_and_convert fndecl 0 55734 &enable_so_vsi_iext_vxfs_sb_info_55734
167822 +enable_so_btrfs_delalloc_reserve_metadata_fndecl_55736 btrfs_delalloc_reserve_metadata fndecl 0 55736 NULL
167823 +enable_so_cnt_mon_text_ptr_55741 cnt mon_text_ptr 0 55741 NULL
167824 +enable_so_max_eq_mlx4_func_55747 max_eq mlx4_func 0 55747 NULL
167825 +enable_so_pad_len_ubifs_pad_node_55751 pad_len ubifs_pad_node 0 55751 NULL nohasharray
167826 +enable_so_nilfs_mdt_set_entry_size_fndecl_55751 nilfs_mdt_set_entry_size fndecl 2-3 55751 &enable_so_pad_len_ubifs_pad_node_55751
167827 +enable_so_idma64_active_desc_size_fndecl_55752 idma64_active_desc_size fndecl 0 55752 NULL nohasharray
167828 +enable_so___az6007_read_fndecl_55752 __az6007_read fndecl 6 55752 &enable_so_idma64_active_desc_size_fndecl_55752
167829 +enable_so_nilfs_cpfile_read_fndecl_55758 nilfs_cpfile_read fndecl 2 55758 NULL
167830 +enable_so_vga_switcheroo_debugfs_write_fndecl_55763 vga_switcheroo_debugfs_write fndecl 3 55763 NULL
167831 +enable_so_offset_xfs_bmalloca_55767 offset xfs_bmalloca 0 55767 NULL
167832 +enable_so_s_next_psn_qib_qp_55768 s_next_psn qib_qp 0 55768 NULL
167833 +enable_so_flag_lpfc_dmabufext_55771 flag lpfc_dmabufext 0 55771 NULL
167834 +enable_so_dump_emit_fndecl_55772 dump_emit fndecl 3 55772 NULL nohasharray
167835 +enable_so_cmd_read_size_wiimote_state_55772 cmd_read_size wiimote_state 0 55772 &enable_so_dump_emit_fndecl_55772
167836 +enable_so_ppp_write_fndecl_55777 ppp_write fndecl 3 55777 NULL
167837 +enable_so_rx_rx_xfr_read_fndecl_55779 rx_rx_xfr_read fndecl 3 55779 NULL
167838 +enable_so_width_cx25821_channel_55782 width cx25821_channel 0 55782 NULL
167839 +enable_so_MaxLiteCmds_vardecl_ips_c_55793 MaxLiteCmds vardecl_ips.c 0 55793 NULL
167840 +enable_so_lbs_lowrssi_write_fndecl_55802 lbs_lowrssi_write fndecl 3 55802 NULL
167841 +enable_so_media_dev_t_vardecl_media_devnode_c_55805 media_dev_t vardecl_media-devnode.c 0 55805 NULL
167842 +enable_so_velocity_rx_copy_fndecl_55812 velocity_rx_copy fndecl 2 55812 NULL
167843 +enable_so_init_send_hfcd_fndecl_55817 init_send_hfcd fndecl 1 55817 NULL
167844 +enable_so_result_status_yellowfin_desc_55822 result_status yellowfin_desc 0 55822 NULL
167845 +enable_so_sd_blksz_fw_dl_btmrvl_sdio_card_55832 sd_blksz_fw_dl btmrvl_sdio_card 0 55832 NULL
167846 +enable_so_dvb_ringbuffer_init_fndecl_55834 dvb_ringbuffer_init fndecl 3 55834 NULL
167847 +enable_so_or51132_readbuf_fndecl_55836 or51132_readbuf fndecl 3 55836 NULL
167848 +enable_so_rd_host_buf_pos_xilly_channel_55837 rd_host_buf_pos xilly_channel 0 55837 NULL
167849 +enable_so___jffs2_ref_totlen_fndecl_55842 __jffs2_ref_totlen fndecl 0 55842 NULL
167850 +enable_so_dr_free_blk_ocfs2_dx_root_block_55848 dr_free_blk ocfs2_dx_root_block 0 55848 NULL
167851 +enable_so_s_segment_usage_size_nilfs_super_block_55851 s_segment_usage_size nilfs_super_block 0 55851 NULL
167852 +enable_so___cfg80211_disconnected_fndecl_55853 __cfg80211_disconnected fndecl 3 55853 NULL
167853 +enable_so_ceph_msgpool_init_fndecl_55860 ceph_msgpool_init fndecl 3-4 55860 NULL nohasharray
167854 +enable_so_cw1200_queue_init_fndecl_55860 cw1200_queue_init fndecl 4 55860 &enable_so_ceph_msgpool_init_fndecl_55860
167855 +enable_so_do_raw_getsockopt_fndecl_55863 do_raw_getsockopt fndecl 0 55863 NULL
167856 +enable_so_cramino_fndecl_55864 cramino fndecl 0-2 55864 NULL
167857 +enable_so_nports_cyclades_card_55865 nports cyclades_card 0 55865 NULL nohasharray
167858 +enable_so_bio_integrity_bytes_fndecl_55865 bio_integrity_bytes fndecl 0-2 55865 &enable_so_nports_cyclades_card_55865
167859 +enable_so___find_pending_exception_fndecl_55867 __find_pending_exception fndecl 3 55867 NULL
167860 +enable_so___nonstatic_find_io_region_fndecl_55871 __nonstatic_find_io_region fndecl 2-3 55871 NULL
167861 +enable_so_m_aptina_pll_55874 m aptina_pll 0 55874 NULL nohasharray
167862 +enable_so_cnic_alloc_dma_fndecl_55874 cnic_alloc_dma fndecl 3 55874 &enable_so_m_aptina_pll_55874
167863 +enable_so_usVSyncWidth__ATOM_DTD_FORMAT_55875 usVSyncWidth _ATOM_DTD_FORMAT 0 55875 NULL
167864 +enable_so_frame_size_usb_stream_config_55876 frame_size usb_stream_config 0 55876 NULL
167865 +enable_so_gtt_phys_start_psb_gtt_55877 gtt_phys_start psb_gtt 0 55877 NULL
167866 +enable_so_cp_table_size_amdgpu_rlc_55879 cp_table_size amdgpu_rlc 0 55879 NULL
167867 +enable_so_tomoyo_dump_page_fndecl_55882 tomoyo_dump_page fndecl 2 55882 NULL
167868 +enable_so_tlclk_major_vardecl_tlclk_c_55901 tlclk_major vardecl_tlclk.c 0 55901 NULL
167869 +enable_so_fragment_size_snd_compressed_buffer_55903 fragment_size snd_compressed_buffer 0 55903 NULL
167870 +enable_so_major_char_device_struct_55907 major char_device_struct 0 55907 NULL
167871 +enable_so_ad7280_chain_setup_fndecl_55912 ad7280_chain_setup fndecl 0 55912 NULL
167872 +enable_so_isr_fiqs_read_fndecl_55916 isr_fiqs_read fndecl 3 55916 NULL
167873 +enable_so__iwl_dbgfs_tof_enable_write_fndecl_55919 _iwl_dbgfs_tof_enable_write fndecl 3 55919 NULL
167874 +enable_so_nf_nat_mangle_udp_packet_fndecl_55926 nf_nat_mangle_udp_packet fndecl 4-6-8 55926 NULL
167875 +enable_so_change_prot_numa_fndecl_55935 change_prot_numa fndecl 3-2 55935 NULL
167876 +enable_so_pktlen_pkt_attrib_55936 pktlen pkt_attrib 0 55936 NULL
167877 +enable_so__fdt_add_property_fndecl_55938 _fdt_add_property fndecl 2-4 55938 NULL
167878 +enable_so_autofs4_write_fndecl_55944 autofs4_write fndecl 4 55944 NULL
167879 +enable_so_image_size_nvbios_pcirT_55946 image_size nvbios_pcirT 0 55946 NULL
167880 +enable_so_ib_create_ah_from_wc_fndecl_55949 ib_create_ah_from_wc fndecl 4 55949 NULL
167881 +enable_so_osst_seek_logical_blk_fndecl_55950 osst_seek_logical_blk fndecl 3 55950 NULL
167882 +enable_so_batadv_tvlv_realloc_packet_buff_fndecl_55955 batadv_tvlv_realloc_packet_buff fndecl 4-3 55955 NULL
167883 +enable_so___generic_file_write_iter_fndecl_55960 __generic_file_write_iter fndecl 0 55960 NULL
167884 +enable_so_hptiop_adjust_disk_queue_depth_fndecl_55961 hptiop_adjust_disk_queue_depth fndecl 2 55961 NULL
167885 +enable_so_pkey_table_len_mthca_limits_55962 pkey_table_len mthca_limits 0 55962 NULL
167886 +enable_so_transfer_buffer_length_urb_55970 transfer_buffer_length urb 0 55970 NULL nohasharray
167887 +enable_so_data2_sisusb_command_55970 data2 sisusb_command 0 55970 &enable_so_transfer_buffer_length_urb_55970 nohasharray
167888 +enable_so_sctp_make_datafrag_empty_fndecl_55970 sctp_make_datafrag_empty fndecl 5 55970 &enable_so_data2_sisusb_command_55970
167889 +enable_so_reg_w_ixbuf_fndecl_55971 reg_w_ixbuf fndecl 4 55971 NULL
167890 +enable_so_hippi_type_trans_fndecl_55978 hippi_type_trans fndecl 0 55978 NULL
167891 +enable_so_subbuf_size_rchan_55979 subbuf_size rchan 0 55979 NULL nohasharray
167892 +enable_so_scsi_sense_length_se_cmd_55979 scsi_sense_length se_cmd 0 55979 &enable_so_subbuf_size_rchan_55979
167893 +enable_so_ieee80211_if_read_num_sta_ps_fndecl_55985 ieee80211_if_read_num_sta_ps fndecl 3 55985 NULL
167894 +enable_so_out_clock_min_aptina_pll_limits_55990 out_clock_min aptina_pll_limits 0 55990 NULL
167895 +enable_so_platform_list_read_file_fndecl_55997 platform_list_read_file fndecl 3 55997 NULL
167896 +enable_so_mon_bin_get_data_fndecl_55998 mon_bin_get_data fndecl 0-4 55998 NULL
167897 +enable_so_mmc_send_cxd_native_fndecl_56003 mmc_send_cxd_native fndecl 4 56003 NULL
167898 +enable_so_max_degraded_r5conf_56004 max_degraded r5conf 0 56004 NULL
167899 +enable_so_len_pipe_buffer_56007 len pipe_buffer 0 56007 NULL
167900 +enable_so_qib_cdev_init_fndecl_56009 qib_cdev_init fndecl 1 56009 NULL
167901 +enable_so__osdv1_req_encode_common_fndecl_56013 _osdv1_req_encode_common fndecl 2 56013 NULL
167902 +enable_so_ath10k_read_ani_enable_fndecl_56020 ath10k_read_ani_enable fndecl 3 56020 NULL
167903 +enable_so_i2400m_change_mtu_fndecl_56021 i2400m_change_mtu fndecl 2 56021 NULL
167904 +enable_so_num_pins_lola_pin_array_56022 num_pins lola_pin_array 0 56022 NULL
167905 +enable_so___ocfs2_change_file_space_fndecl_56023 __ocfs2_change_file_space fndecl 3 56023 NULL
167906 +enable_so_vm_memory_committed_fndecl_56024 vm_memory_committed fndecl 0 56024 NULL
167907 +enable_so_vlan_id_ib_mac_iocb_rsp_56025 vlan_id ib_mac_iocb_rsp 0 56025 NULL nohasharray
167908 +enable_so_bootmode_store_fndecl_56025 bootmode_store fndecl 4 56025 &enable_so_vlan_id_ib_mac_iocb_rsp_56025
167909 +enable_so_ov519_pkt_scan_fndecl_56026 ov519_pkt_scan fndecl 3 56026 NULL
167910 +enable_so___iio_device_attr_init_fndecl_56028 __iio_device_attr_init fndecl 0 56028 NULL
167911 +enable_so_bfad_iocmd_itnim_get_attr_fndecl_56032 bfad_iocmd_itnim_get_attr fndecl 0 56032 NULL
167912 +enable_so_can_nocow_extent_fndecl_56034 can_nocow_extent fndecl 2 56034 NULL
167913 +enable_so_SYSC_keyctl_fndecl_56035 SYSC_keyctl fndecl 4 56035 NULL
167914 +enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037 vbi_pixel_to_capture vardecl_saa7146_vbi.c 0 56037 NULL nohasharray
167915 +enable_so_sg_update_list_fndecl_56037 sg_update_list fndecl 2 56037 &enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037
167916 +enable_so_totalram_pages_vardecl_56043 totalram_pages vardecl 0 56043 NULL
167917 +enable_so_hpi_instream_read_buf_fndecl_56045 hpi_instream_read_buf fndecl 3 56045 NULL
167918 +enable_so_punit_base_intel_pmc_ipc_dev_56048 punit_base intel_pmc_ipc_dev 0 56048 NULL
167919 +enable_so_status_whc_qtd_56049 status whc_qtd 0 56049 NULL
167920 +enable_so_usb_wwan_setup_urb_fndecl_56054 usb_wwan_setup_urb fndecl 6-3-2 56054 NULL
167921 +enable_so_mod_xfs_alloc_arg_56058 mod xfs_alloc_arg 0 56058 NULL
167922 +enable_so_drm_mm_insert_helper_range_fndecl_56060 drm_mm_insert_helper_range fndecl 3 56060 NULL
167923 +enable_so_chainsize_ctlr_info_56067 chainsize ctlr_info 0 56067 NULL
167924 +enable_so_iov_iter_single_seg_count_fndecl_56069 iov_iter_single_seg_count fndecl 0 56069 NULL
167925 +enable_so_frag_ceph_mds_reply_dirfrag_56070 frag ceph_mds_reply_dirfrag 0 56070 NULL
167926 +enable_so_full_page_bnx2x_agg_info_56071 full_page bnx2x_agg_info 0 56071 NULL
167927 +enable_so_batch_start_offset_drm_i915_gem_execbuffer2_56077 batch_start_offset drm_i915_gem_execbuffer2 0 56077 NULL nohasharray
167928 +enable_so_tx_fifo_num_vardecl_s2io_c_56077 tx_fifo_num vardecl_s2io.c 0 56077 &enable_so_batch_start_offset_drm_i915_gem_execbuffer2_56077
167929 +enable_so_fdt_first_property_offset_fndecl_56079 fdt_first_property_offset fndecl 2 56079 NULL
167930 +enable_so_gprs_type_trans_fndecl_56082 gprs_type_trans fndecl 0 56082 NULL
167931 +enable_so_bfad_iocmd_ioc_get_pcifn_cfg_fndecl_56085 bfad_iocmd_ioc_get_pcifn_cfg fndecl 0 56085 NULL nohasharray
167932 +enable_so_cb710_wait_for_event_fndecl_56085 cb710_wait_for_event fndecl 0 56085 &enable_so_bfad_iocmd_ioc_get_pcifn_cfg_fndecl_56085
167933 +enable_so_num_chunks_drm_amdgpu_cs_in_56088 num_chunks drm_amdgpu_cs_in 0 56088 NULL
167934 +enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096 xprt_udp_slot_table_entries vardecl_xprtsock.c 0 56096 NULL nohasharray
167935 +enable_so_size_perf_event_header_56096 size perf_event_header 0 56096 &enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096
167936 +enable_so_datalength_fwheader_56097 datalength fwheader 0 56097 NULL
167937 +enable_so_snic_change_queue_depth_fndecl_56099 snic_change_queue_depth fndecl 2 56099 NULL
167938 +enable_so_proc_thread_self_readlink_fndecl_56102 proc_thread_self_readlink fndecl 3 56102 NULL
167939 +enable_so_l_sectBBsize_xlog_56103 l_sectBBsize xlog 0 56103 NULL
167940 +enable_so_max_frame_size__synclinkmp_info_56104 max_frame_size _synclinkmp_info 0 56104 NULL nohasharray
167941 +enable_so_sync_page_io_fndecl_56104 sync_page_io fndecl 3-2 56104 &enable_so_max_frame_size__synclinkmp_info_56104
167942 +enable_so_play_audio_cb_fndecl_56108 play_audio_cb fndecl 2 56108 NULL nohasharray
167943 +enable_so_maximum_input_absinfo_56108 maximum input_absinfo 0 56108 &enable_so_play_audio_cb_fndecl_56108
167944 +enable_so_p54_alloc_skb_fndecl_56109 p54_alloc_skb fndecl 3 56109 NULL
167945 +enable_so_zlib_inflate_blob_fndecl_56117 zlib_inflate_blob fndecl 2-4 56117 NULL nohasharray
167946 +enable_so_block_size_ecryptfs_write_tag_70_packet_silly_stack_56117 block_size ecryptfs_write_tag_70_packet_silly_stack 0 56117 &enable_so_zlib_inflate_blob_fndecl_56117
167947 +enable_so_ssl_prev_nilfs_snapshot_list_56120 ssl_prev nilfs_snapshot_list 0 56120 NULL
167948 +enable_so_q0_depth_bna_rx_config_56122 q0_depth bna_rx_config 0 56122 NULL
167949 +enable_so_ath5k_setup_channels_fndecl_56123 ath5k_setup_channels fndecl 0 56123 NULL nohasharray
167950 +enable_so_max_queue_depth_vardecl_mpt3sas_base_c_56123 max_queue_depth vardecl_mpt3sas_base.c 0 56123 &enable_so_ath5k_setup_channels_fndecl_56123
167951 +enable_so_usbvision_v4l2_read_fndecl_56129 usbvision_v4l2_read fndecl 3 56129 NULL
167952 +enable_so_size_direct_56131 size direct 0 56131 NULL nohasharray
167953 +enable_so_av7110_vbi_write_fndecl_56131 av7110_vbi_write fndecl 3 56131 &enable_so_size_direct_56131
167954 +enable_so_xenvif_gop_frag_copy_fndecl_56135 xenvif_gop_frag_copy fndecl 5-6 56135 NULL
167955 +enable_so_sl_max_ip_sf_socklist_56140 sl_max ip_sf_socklist 0 56140 NULL
167956 +enable_so_prepare_add_efi_setup_data_fndecl_56147 prepare_add_efi_setup_data fndecl 3-2 56147 NULL
167957 +enable_so__iwl_dbgfs_low_latency_write_fndecl_56153 _iwl_dbgfs_low_latency_write fndecl 3 56153 NULL
167958 +enable_so_reiserfs_resize_fndecl_56154 reiserfs_resize fndecl 2 56154 NULL
167959 +enable_so_i2c_hid_get_raw_report_fndecl_56155 i2c_hid_get_raw_report fndecl 4 56155 NULL
167960 +enable_so_ipx_pktsize_ipxhdr_56157 ipx_pktsize ipxhdr 0 56157 NULL
167961 +enable_so_bfa_fcport_cfg_maxfrsize_fndecl_56160 bfa_fcport_cfg_maxfrsize fndecl 2 56160 NULL nohasharray
167962 +enable_so_nd_num_o2nm_node_56160 nd_num o2nm_node 0 56160 &enable_so_bfa_fcport_cfg_maxfrsize_fndecl_56160
167963 +enable_so_lpfc_do_offline_fndecl_56165 lpfc_do_offline fndecl 0 56165 NULL
167964 +enable_so_block_len_extent_map_56171 block_len extent_map 0 56171 NULL nohasharray
167965 +enable_so_nl80211_send_disassoc_fndecl_56171 nl80211_send_disassoc fndecl 4 56171 &enable_so_block_len_extent_map_56171
167966 +enable_so_ivtv_read_pos_fndecl_56179 ivtv_read_pos fndecl 3 56179 NULL nohasharray
167967 +enable_so_iwl_calib_set_fndecl_56179 iwl_calib_set fndecl 3 56179 &enable_so_ivtv_read_pos_fndecl_56179
167968 +enable_so_csum_offset_virtio_net_hdr_56180 csum_offset virtio_net_hdr 0 56180 NULL
167969 +enable_so_sccb_reg_read_fndecl_56181 sccb_reg_read fndecl 0 56181 NULL nohasharray
167970 +enable_so_ivsize_vardecl_encrypted_c_56181 ivsize vardecl_encrypted.c 0 56181 &enable_so_sccb_reg_read_fndecl_56181
167971 +enable_so_sctp_make_heartbeat_ack_fndecl_56184 sctp_make_heartbeat_ack fndecl 4 56184 NULL
167972 +enable_so_rx_ring_size_bnx2_56185 rx_ring_size bnx2 0 56185 NULL
167973 +enable_so_size_netlbl_domhsh_tbl_56186 size netlbl_domhsh_tbl 0 56186 NULL
167974 +enable_so_wl1271_tx_fill_hdr_fndecl_56191 wl1271_tx_fill_hdr fndecl 4 56191 NULL
167975 +enable_so_bfad_iocmd_diag_loopback_fndecl_56192 bfad_iocmd_diag_loopback fndecl 0 56192 NULL
167976 +enable_so_qgroupid_btrfs_qgroup_56202 qgroupid btrfs_qgroup 0 56202 NULL nohasharray
167977 +enable_so_rx_data_fndecl_56202 rx_data fndecl 4-3 56202 &enable_so_qgroupid_btrfs_qgroup_56202
167978 +enable_so_dma_rx_size_sxgbe_priv_data_56205 dma_rx_size sxgbe_priv_data 0 56205 NULL
167979 +enable_so_dlen_pg_56210 dlen pg 0 56210 NULL
167980 +enable_so_jffs2_fill_wbuf_fndecl_56212 jffs2_fill_wbuf fndecl 3 56212 NULL
167981 +enable_so_width_v4l2_mbus_framefmt_56214 width v4l2_mbus_framefmt 0 56214 NULL
167982 +enable_so_sample_stack_user_perf_event_attr_56220 sample_stack_user perf_event_attr 0 56220 NULL
167983 +enable_so_offset_cifs_writedata_56222 offset cifs_writedata 0 56222 NULL nohasharray
167984 +enable_so_reg_cache_size_snd_soc_codec_driver_56222 reg_cache_size snd_soc_codec_driver 0 56222 &enable_so_offset_cifs_writedata_56222
167985 +enable_so_offset_iscsi_data_rsp_56223 offset iscsi_data_rsp 0 56223 NULL
167986 +enable_so_depth_s2255_fmt_56229 depth s2255_fmt 0 56229 NULL
167987 +enable_so_ocfs2_mv_xattr_buckets_fndecl_56231 ocfs2_mv_xattr_buckets fndecl 6-3-5-4 56231 NULL
167988 +enable_so_security_inode_permission_fndecl_56235 security_inode_permission fndecl 0 56235 NULL
167989 +enable_so_wm8350_register_led_fndecl_56237 wm8350_register_led fndecl 2-4-3 56237 NULL
167990 +enable_so_max_recv_dlength_iscsi_bus_flash_conn_56238 max_recv_dlength iscsi_bus_flash_conn 0 56238 NULL
167991 +enable_so_af9013_wr_regs_fndecl_56239 af9013_wr_regs fndecl 4 56239 NULL
167992 +enable_so_wBlockNumber_ms_bootblock_sysinf_56240 wBlockNumber ms_bootblock_sysinf 0 56240 NULL
167993 +enable_so_qlcnic_set_tx_ring_count_fndecl_56242 qlcnic_set_tx_ring_count fndecl 2 56242 NULL
167994 +enable_so_cfpkt_peek_head_fndecl_56245 cfpkt_peek_head fndecl 3 56245 NULL nohasharray
167995 +enable_so_dt_gpio_count_fndecl_56245 dt_gpio_count fndecl 0 56245 &enable_so_cfpkt_peek_head_fndecl_56245
167996 +enable_so_qtd_fill_fndecl_56249 qtd_fill fndecl 5-6-3-0-4 56249 NULL
167997 +enable_so_mwifiex_regrdwr_read_fndecl_56251 mwifiex_regrdwr_read fndecl 3 56251 NULL
167998 +enable_so_size_uvc_xu_control_query_56263 size uvc_xu_control_query 0 56263 NULL
167999 +enable_so_dmreq_start_crypt_config_56268 dmreq_start crypt_config 0 56268 NULL
168000 +enable_so_qp_alloc_res_fndecl_56275 qp_alloc_res fndecl 5 56275 NULL
168001 +enable_so_vyres_crtc_56276 vyres crtc 0 56276 NULL
168002 +enable_so_s_raid_stride_ext4_super_block_56277 s_raid_stride ext4_super_block 0 56277 NULL
168003 +enable_so_fi_ino_ocfs2_find_inode_args_56279 fi_ino ocfs2_find_inode_args 0 56279 NULL nohasharray
168004 +enable_so_pci_mmconfig_add_fndecl_56279 pci_mmconfig_add fndecl 2-3-4 56279 &enable_so_fi_ino_ocfs2_find_inode_args_56279
168005 +enable_so_dram_base_intel_sst_drv_56282 dram_base intel_sst_drv 0 56282 NULL
168006 +enable_so_x_max_wacom_features_56285 x_max wacom_features 0 56285 NULL
168007 +enable_so_header_length_txentry_desc_56288 header_length txentry_desc 0 56288 NULL
168008 +enable_so_nr_rates_audioformat_56293 nr_rates audioformat 0 56293 NULL
168009 +enable_so_ttymajor_vardecl_synclink_gt_c_56300 ttymajor vardecl_synclink_gt.c 0 56300 NULL
168010 +enable_so_pd_handles_sz_MPT2SAS_ADAPTER_56310 pd_handles_sz MPT2SAS_ADAPTER 0 56310 NULL
168011 +enable_so_ext4_fallocate_fndecl_56314 ext4_fallocate fndecl 3-4 56314 NULL
168012 +enable_so_essid_len_ipw_priv_56318 essid_len ipw_priv 0 56318 NULL
168013 +enable_so_SYSC_lgetxattr_fndecl_56330 SYSC_lgetxattr fndecl 4 56330 NULL
168014 +enable_so_ebt_compat_match_offset_fndecl_56334 ebt_compat_match_offset fndecl 0-2 56334 NULL
168015 +enable_so_pipeline_dec_packet_in_fifo_full_read_fndecl_56335 pipeline_dec_packet_in_fifo_full_read fndecl 3 56335 NULL
168016 +enable_so_ath6kl_wmi_ap_set_apsd_fndecl_56339 ath6kl_wmi_ap_set_apsd fndecl 2 56339 NULL
168017 +enable_so_drm_atomic_helper_plane_set_property_fndecl_56340 drm_atomic_helper_plane_set_property fndecl 3 56340 NULL
168018 +enable_so_blocked_fl_read_fndecl_56341 blocked_fl_read fndecl 3 56341 NULL
168019 +enable_so_tx_ring_size_bnx2_56345 tx_ring_size bnx2 0 56345 NULL
168020 +enable_so_blksize_vardecl_encrypted_c_56348 blksize vardecl_encrypted.c 0 56348 NULL
168021 +enable_so_dccp_ackvec_add_new_fndecl_56359 dccp_ackvec_add_new fndecl 2-3 56359 NULL
168022 +enable_so_acl_permission_check_fndecl_56360 acl_permission_check fndecl 0 56360 NULL
168023 +enable_so_i_ino_xfs_inode_56363 i_ino xfs_inode 0 56363 NULL
168024 +enable_so_interrupt_out_endpointAddress_usb_serial_port_56364 interrupt_out_endpointAddress usb_serial_port 0 56364 NULL
168025 +enable_so_ide_set_pio_mode_fndecl_56371 ide_set_pio_mode fndecl 2 56371 NULL
168026 +enable_so_stats_dot11RTSSuccessCount_read_fndecl_56378 stats_dot11RTSSuccessCount_read fndecl 3 56378 NULL
168027 +enable_so_len_asd_ha_addrspace_56381 len asd_ha_addrspace 0 56381 NULL
168028 +enable_so_sel_read_checkreqprot_fndecl_56383 sel_read_checkreqprot fndecl 3 56383 NULL
168029 +enable_so_nd_cmd_in_size_fndecl_56386 nd_cmd_in_size fndecl 0 56386 NULL
168030 +enable_so_stride_geom_56394 stride geom 0 56394 NULL
168031 +enable_so_ieee80211_fragment_fndecl_56395 ieee80211_fragment fndecl 4-3 56395 NULL
168032 +enable_so_lost_out_tcp_sock_56397 lost_out tcp_sock 0 56397 NULL
168033 +enable_so_buf_count_drm_device_dma_56399 buf_count drm_device_dma 0 56399 NULL
168034 +enable_so_ccw_clear_fndecl_56408 ccw_clear fndecl 3-5-6-4 56408 NULL
168035 +enable_so_f2fs_llseek_fndecl_56409 f2fs_llseek fndecl 2 56409 NULL
168036 +enable_so_ieee80211_auth_challenge_fndecl_56418 ieee80211_auth_challenge fndecl 3 56418 NULL
168037 +enable_so_notify_change_fndecl_56420 notify_change fndecl 0 56420 NULL
168038 +enable_so_max_recv_wr_ib_qp_cap_56426 max_recv_wr ib_qp_cap 0 56426 NULL
168039 +enable_so_max_eps_mv_u3d_56428 max_eps mv_u3d 0 56428 NULL
168040 +enable_so_llc_ui_sendmsg_fndecl_56432 llc_ui_sendmsg fndecl 3 56432 NULL nohasharray
168041 +enable_so_stat_len_sge_56432 stat_len sge 0 56432 &enable_so_llc_ui_sendmsg_fndecl_56432
168042 +enable_so_write_node_fndecl_56434 write_node fndecl 4 56434 NULL nohasharray
168043 +enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434 ath6kl_wmi_cancel_remain_on_chnl_cmd fndecl 2 56434 &enable_so_write_node_fndecl_56434
168044 +enable_so_hsync_end_drm_display_mode_56439 hsync_end drm_display_mode 0 56439 NULL nohasharray
168045 +enable_so_bdbars_count_intel8x0_56439 bdbars_count intel8x0 0 56439 &enable_so_hsync_end_drm_display_mode_56439 nohasharray
168046 +enable_so_idx_lebs_ubifs_lp_stats_56439 idx_lebs ubifs_lp_stats 0 56439 &enable_so_bdbars_count_intel8x0_56439
168047 +enable_so_sas_change_queue_depth_fndecl_56440 sas_change_queue_depth fndecl 2 56440 NULL
168048 +enable_so_vlan_tag_lro_56441 vlan_tag lro 0 56441 NULL nohasharray
168049 +enable_so_fb_sys_write_fndecl_56441 fb_sys_write fndecl 0-3 56441 &enable_so_vlan_tag_lro_56441
168050 +enable_so_gtk_ivlen_iwl_mvm_56442 gtk_ivlen iwl_mvm 0 56442 NULL nohasharray
168051 +enable_so_num_rx_queues_igb_adapter_56442 num_rx_queues igb_adapter 0 56442 &enable_so_gtk_ivlen_iwl_mvm_56442
168052 +enable_so_alloc_gid_table_fndecl_56444 alloc_gid_table fndecl 1 56444 NULL
168053 +enable_so_DataTransferLength_bulk_cb_wrap_56447 DataTransferLength bulk_cb_wrap 0 56447 NULL
168054 +enable_so___ocfs2_increase_refcount_fndecl_56450 __ocfs2_increase_refcount fndecl 5-4 56450 NULL
168055 +enable_so_size_tcp_fastopen_request_56457 size tcp_fastopen_request 0 56457 NULL nohasharray
168056 +enable_so_block_dm_thin_lookup_result_56457 block dm_thin_lookup_result 0 56457 &enable_so_size_tcp_fastopen_request_56457
168057 +enable_so_winfo_size_data_queue_56462 winfo_size data_queue 0 56462 NULL nohasharray
168058 +enable_so_scnt_aoe_cfghdr_56462 scnt aoe_cfghdr 0 56462 &enable_so_winfo_size_data_queue_56462
168059 +enable_so_tpg_init_fndecl_56464 tpg_init fndecl 2-3 56464 NULL
168060 +enable_so_packet_sendmsg_fndecl_56465 packet_sendmsg fndecl 3 56465 NULL nohasharray
168061 +enable_so_ia_size_iattr_56465 ia_size iattr 0 56465 &enable_so_packet_sendmsg_fndecl_56465
168062 +enable_so__pci_add_cap_save_buffer_fndecl_56466 _pci_add_cap_save_buffer fndecl 4 56466 NULL
168063 +enable_so_SyS_poll_fndecl_56467 SyS_poll fndecl 2 56467 NULL
168064 +enable_so_banks_mca_config_56472 banks mca_config 0 56472 NULL
168065 +enable_so___erst_clear_from_storage_fndecl_56476 __erst_clear_from_storage fndecl 1 56476 NULL
168066 +enable_so_func_suspend_usb_function_56478 func_suspend usb_function 0 56478 NULL
168067 +enable_so_dataflash_read_fact_otp_fndecl_56487 dataflash_read_fact_otp fndecl 3-2 56487 NULL
168068 +enable_so_xen_allocate_irqs_dynamic_fndecl_56489 xen_allocate_irqs_dynamic fndecl 0 56489 NULL nohasharray
168069 +enable_so_pp_read_fndecl_56489 pp_read fndecl 3 56489 &enable_so_xen_allocate_irqs_dynamic_fndecl_56489
168070 +enable_so_ext4_split_convert_extents_fndecl_56493 ext4_split_convert_extents fndecl 0 56493 NULL
168071 +enable_so_active_ahd_linux_device_56494 active ahd_linux_device 0 56494 NULL
168072 +enable_so_nci_hci_send_cmd_fndecl_56495 nci_hci_send_cmd fndecl 5 56495 NULL
168073 +enable_so_free_bit_ocfs2_cached_block_free_56500 free_bit ocfs2_cached_block_free 0 56500 NULL
168074 +enable_so_choose_mtu_fndecl_56503 choose_mtu fndecl 0 56503 NULL nohasharray
168075 +enable_so_len_audit_proctitle_56503 len audit_proctitle 0 56503 &enable_so_choose_mtu_fndecl_56503
168076 +enable_so_process_ptload_program_headers_elf64_fndecl_56505 process_ptload_program_headers_elf64 fndecl 3-2 56505 NULL
168077 +enable_so_batadv_socket_receive_packet_fndecl_56509 batadv_socket_receive_packet fndecl 2 56509 NULL
168078 +enable_so_stream_size_yuv_playback_info_56511 stream_size yuv_playback_info 0 56511 NULL
168079 +enable_so_error_retry_list_with_code_fndecl_56518 error_retry_list_with_code fndecl 2 56518 NULL nohasharray
168080 +enable_so_ntb_netdev_rx_handler_fndecl_56518 ntb_netdev_rx_handler fndecl 4 56518 &enable_so_error_retry_list_with_code_fndecl_56518
168081 +enable_so___vb2_wait_for_done_vb_fndecl_56525 __vb2_wait_for_done_vb fndecl 0 56525 NULL
168082 +enable_so_xbfi_startblock_xfs_bmap_free_item_56529 xbfi_startblock xfs_bmap_free_item 0 56529 NULL
168083 +enable_so_vp_modern_find_vqs_fndecl_56530 vp_modern_find_vqs fndecl 2 56530 NULL nohasharray
168084 +enable_so_nm_block_nr_nl_mmap_req_56530 nm_block_nr nl_mmap_req 0 56530 &enable_so_vp_modern_find_vqs_fndecl_56530
168085 +enable_so_core_size_rw_module_56544 core_size_rw module 0 56544 NULL nohasharray
168086 +enable_so_snd_pcm_plug_client_size_fndecl_56544 snd_pcm_plug_client_size fndecl 0-2 56544 &enable_so_core_size_rw_module_56544
168087 +enable_so_max_ethqsets_sge_56552 max_ethqsets sge 0 56552 NULL
168088 +enable_so_cachefiles_cook_key_fndecl_56553 cachefiles_cook_key fndecl 2 56553 NULL
168089 +enable_so_sf_size_adapter_params_56574 sf_size adapter_params 0 56574 NULL
168090 +enable_so_sctp_tsnmap_grow_fndecl_56579 sctp_tsnmap_grow fndecl 2 56579 NULL
168091 +enable_so_nbp_vlan_delete_fndecl_56582 nbp_vlan_delete fndecl 2 56582 NULL
168092 +enable_so_rss_table_size_i40e_pf_56586 rss_table_size i40e_pf 0 56586 NULL
168093 +enable_so_buf_bytes_mmc_blk_ioc_data_56589 buf_bytes mmc_blk_ioc_data 0 56589 NULL
168094 +enable_so_offset_cramfs_inode_56601 offset cramfs_inode 0 56601 NULL
168095 +enable_so_qt2_write_fndecl_56603 qt2_write fndecl 4 56603 NULL
168096 +enable_so_cb_irq_yenta_socket_56604 cb_irq yenta_socket 0 56604 NULL
168097 +enable_so_security_size_rxrpc_connection_56613 security_size rxrpc_connection 0 56613 NULL
168098 +enable_so_pll_op_clk_freq_hz_smiapp_pll_56615 pll_op_clk_freq_hz smiapp_pll 0 56615 NULL
168099 +enable_so_pci_map_size_iadev_priv_56617 pci_map_size iadev_priv 0 56617 NULL
168100 +enable_so_ieee80211_tdls_mgmt_fndecl_56618 ieee80211_tdls_mgmt fndecl 10 56618 NULL
168101 +enable_so_memremap_fndecl_56619 memremap fndecl 2-1 56619 NULL
168102 +enable_so_afs_dir_iterate_block_fndecl_56630 afs_dir_iterate_block fndecl 3 56630 NULL nohasharray
168103 +enable_so_rproc_name_read_fndecl_56630 rproc_name_read fndecl 3 56630 &enable_so_afs_dir_iterate_block_fndecl_56630
168104 +enable_so_x509_note_issuer_fndecl_56631 x509_note_issuer fndecl 5 56631 NULL
168105 +enable_so_max_blk_count_mmc_host_56634 max_blk_count mmc_host 0 56634 NULL nohasharray
168106 +enable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 5 56634 &enable_so_max_blk_count_mmc_host_56634 nohasharray
168107 +enable_so_num_disc_configs_nci_rf_disc_cmd_56634 num_disc_configs nci_rf_disc_cmd 0 56634 &enable_so_get_register_page_interruptible_fndecl_56634
168108 +enable_so_arena_write_bytes_fndecl_56636 arena_write_bytes fndecl 0 56636 NULL
168109 +enable_so_devt_device_56638 devt device 0 56638 NULL
168110 +enable_so_last_sect_blkif_request_segment_56644 last_sect blkif_request_segment 0 56644 NULL
168111 +enable_so_count_v4l2_requestbuffers_56650 count v4l2_requestbuffers 0 56650 NULL
168112 +enable_so_bytenr_btrfs_root_item_56657 bytenr btrfs_root_item 0 56657 NULL
168113 +enable_so___ksize_fndecl_56662 __ksize fndecl 0 56662 NULL
168114 +enable_so___memblock_find_range_top_down_fndecl_56669 __memblock_find_range_top_down fndecl 0-4-3-1-2 56669 NULL nohasharray
168115 +enable_so_csio_scsi_iqlen_vardecl_56669 csio_scsi_iqlen vardecl 0 56669 &enable_so___memblock_find_range_top_down_fndecl_56669
168116 +enable_so_fdt_supernode_atdepth_offset_fndecl_56670 fdt_supernode_atdepth_offset fndecl 0 56670 NULL
168117 +enable_so_cifs_writedata_alloc_fndecl_56675 cifs_writedata_alloc fndecl 1 56675 NULL nohasharray
168118 +enable_so_ath6kl_usb_submit_ctrl_in_fndecl_56675 ath6kl_usb_submit_ctrl_in fndecl 6 56675 &enable_so_cifs_writedata_alloc_fndecl_56675
168119 +enable_so_len_fw_desc_56676 len fw_desc 0 56676 NULL
168120 +enable_so_vp702x_usb_inout_cmd_fndecl_56679 vp702x_usb_inout_cmd fndecl 4-6 56679 NULL
168121 +enable_so_pbl_top_rdma_info_56683 pbl_top rdma_info 0 56683 NULL
168122 +enable_so_max_channels_hda_multi_out_56686 max_channels hda_multi_out 0 56686 NULL nohasharray
168123 +enable_so_test_buf_size_vardecl_dmatest_c_56686 test_buf_size vardecl_dmatest.c 0 56686 &enable_so_max_channels_hda_multi_out_56686
168124 +enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687 ath6kl_usb_post_recv_transfers fndecl 2 56687 NULL nohasharray
168125 +enable_so_npages_in_use_dma_pool_56687 npages_in_use dma_pool 0 56687 &enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687
168126 +enable_so_new_tape_buffer_fndecl_56689 new_tape_buffer fndecl 2 56689 NULL
168127 +enable_so_ks8851_rdreg_fndecl_56695 ks8851_rdreg fndecl 4 56695 NULL
168128 +enable_so_remove_migration_pte_fndecl_56701 remove_migration_pte fndecl 3 56701 NULL nohasharray
168129 +enable_so_ath6kl_wmi_set_rssi_filter_cmd_fndecl_56701 ath6kl_wmi_set_rssi_filter_cmd fndecl 2 56701 &enable_so_remove_migration_pte_fndecl_56701
168130 +enable_so_usb_err_gspca_dev_56706 usb_err gspca_dev 0 56706 NULL nohasharray
168131 +enable_so_il_dbgfs_tx_stats_read_fndecl_56706 il_dbgfs_tx_stats_read fndecl 3 56706 &enable_so_usb_err_gspca_dev_56706
168132 +enable_so_mmc_erase_fndecl_56707 mmc_erase fndecl 0 56707 NULL
168133 +enable_so_zlib_inflate_workspacesize_fndecl_56716 zlib_inflate_workspacesize fndecl 0 56716 NULL
168134 +enable_so_qgroupid_btrfs_ioctl_qgroup_create_args_56717 qgroupid btrfs_ioctl_qgroup_create_args 0 56717 NULL
168135 +enable_so_munlock_vma_pages_range_fndecl_56718 munlock_vma_pages_range fndecl 2 56718 NULL
168136 +enable_so_mmc_hs400_to_hs200_fndecl_56719 mmc_hs400_to_hs200 fndecl 0 56719 NULL
168137 +enable_so_ext4_get_group_number_fndecl_56720 ext4_get_group_number fndecl 0 56720 NULL nohasharray
168138 +enable_so_rcvegrbuf_size_qib_ctxtdata_56720 rcvegrbuf_size qib_ctxtdata 0 56720 &enable_so_ext4_get_group_number_fndecl_56720
168139 +enable_so_opcnt_nfsd4_compoundargs_56722 opcnt nfsd4_compoundargs 0 56722 NULL
168140 +enable_so_offset_cw1200_txpriv_56729 offset cw1200_txpriv 0 56729 NULL
168141 +enable_so_search_empty_fndecl_56737 search_empty fndecl 2 56737 NULL
168142 +enable_so_val_len_ceph_inode_xattr_56742 val_len ceph_inode_xattr 0 56742 NULL
168143 +enable_so_sb_logsectlog_xfs_sb_56750 sb_logsectlog xfs_sb 0 56750 NULL
168144 +enable_so_page_offset_skb_frag_struct_56751 page_offset skb_frag_struct 0 56751 NULL
168145 +enable_so_read_pipe_ezusb_priv_56753 read_pipe ezusb_priv 0 56753 NULL nohasharray
168146 +enable_so_xprt_complete_bc_request_fndecl_56753 xprt_complete_bc_request fndecl 2 56753 &enable_so_read_pipe_ezusb_priv_56753
168147 +enable_so_length_scatterlist_56760 length scatterlist 0 56760 NULL nohasharray
168148 +enable_so_cfg_fof_lpfc_hba_56760 cfg_fof lpfc_hba 0 56760 &enable_so_length_scatterlist_56760
168149 +enable_so_npkt_cam_56768 npkt cam 0 56768 NULL
168150 +enable_so_arch_ptrace_fndecl_56774 arch_ptrace fndecl 3 56774 NULL
168151 +enable_so_max_rpi_lpfc_max_cfg_param_56782 max_rpi lpfc_max_cfg_param 0 56782 NULL
168152 +enable_so_mlx5_set_path_fndecl_56783 mlx5_set_path fndecl 4 56783 NULL
168153 +enable_so_mem_size_mxt_data_56785 mem_size mxt_data 0 56785 NULL
168154 +enable_so_vc_saved_y_vc_data_56792 vc_saved_y vc_data 0 56792 NULL nohasharray
168155 +enable_so_ext4_group_overhead_blocks_fndecl_56792 ext4_group_overhead_blocks fndecl 0 56792 &enable_so_vc_saved_y_vc_data_56792
168156 +enable_so_ib_uverbs_create_cq_fndecl_56793 ib_uverbs_create_cq fndecl 4 56793 NULL
168157 +enable_so_context_id_bnx2fc_rport_56807 context_id bnx2fc_rport 0 56807 NULL nohasharray
168158 +enable_so_state_count_acpi_processor_performance_56807 state_count acpi_processor_performance 0 56807 &enable_so_context_id_bnx2fc_rport_56807
168159 +enable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 3 56808 NULL
168160 +enable_so_num_pages_vmci_queue_kern_if_56812 num_pages vmci_queue_kern_if 0 56812 NULL
168161 +enable_so_di_entries_gfs2_dinode_56817 di_entries gfs2_dinode 0 56817 NULL
168162 +enable_so_dm_thin_remove_range_fndecl_56819 dm_thin_remove_range fndecl 0 56819 NULL
168163 +enable_so_hugetlbfs_pagecache_page_fndecl_56822 hugetlbfs_pagecache_page fndecl 3 56822 NULL
168164 +enable_so_page_base_xdr_buf_56823 page_base xdr_buf 0 56823 NULL
168165 +enable_so_netdev_change_mtu_fndecl_56827 netdev_change_mtu fndecl 2 56827 NULL
168166 +enable_so_SyS_syslog_fndecl_56828 SyS_syslog fndecl 3 56828 NULL
168167 +enable_so_io_size_smi_info_56832 io_size smi_info 0 56832 NULL nohasharray
168168 +enable_so_ds_victim_ino_logfs_je_dynsb_56832 ds_victim_ino logfs_je_dynsb 0 56832 &enable_so_io_size_smi_info_56832
168169 +enable_so_truesize_sk_buff_56834 truesize sk_buff 0 56834 NULL
168170 +enable_so_sc_max_requests_svcxprt_rdma_56840 sc_max_requests svcxprt_rdma 0 56840 NULL
168171 +enable_so_tail_TxFifo_56844 tail TxFifo 0 56844 NULL
168172 +enable_so_capacity_alauda_media_info_56845 capacity alauda_media_info 0 56845 NULL
168173 +enable_so_tomoyo_read_self_fndecl_56848 tomoyo_read_self fndecl 3 56848 NULL
168174 +enable_so_blocks_mmc_test_area_56853 blocks mmc_test_area 0 56853 NULL
168175 +enable_so_transfer_one_spi_master_56858 transfer_one spi_master 0 56858 NULL
168176 +enable_so_dup_array_fndecl_56860 dup_array fndecl 3 56860 NULL
168177 +enable_so_max_cq_sz_mlx4_dev_cap_56868 max_cq_sz mlx4_dev_cap 0 56868 NULL nohasharray
168178 +enable_so_count_subheaders_fndecl_56868 count_subheaders fndecl 0 56868 &enable_so_max_cq_sz_mlx4_dev_cap_56868
168179 +enable_so_status_pipe_uas_dev_info_56869 status_pipe uas_dev_info 0 56869 NULL
168180 +enable_so_combined_count_ethtool_channels_56871 combined_count ethtool_channels 0 56871 NULL
168181 +enable_so_freecom_writedata_fndecl_56872 freecom_writedata fndecl 4 56872 NULL
168182 +enable_so_read_aperture_fndecl_56876 read_aperture fndecl 0 56876 NULL
168183 +enable_so_fat_rebuild_parent_fndecl_56877 fat_rebuild_parent fndecl 2 56877 NULL nohasharray
168184 +enable_so_ath6kl_wmi_set_pvb_cmd_fndecl_56877 ath6kl_wmi_set_pvb_cmd fndecl 2 56877 &enable_so_fat_rebuild_parent_fndecl_56877
168185 +enable_so_xfs_itruncate_extents_fndecl_56879 xfs_itruncate_extents fndecl 4 56879 NULL nohasharray
168186 +enable_so_scsi_execute_fndecl_56879 scsi_execute fndecl 5 56879 &enable_so_xfs_itruncate_extents_fndecl_56879
168187 +enable_so___btrfs_set_prop_fndecl_56883 __btrfs_set_prop fndecl 5 56883 NULL
168188 +enable_so_dx_dirent_blk_ocfs2_dx_entry_56884 dx_dirent_blk ocfs2_dx_entry 0 56884 NULL
168189 +enable_so_cmtp_send_frame_fndecl_56890 cmtp_send_frame fndecl 3 56890 NULL
168190 +enable_so_zr364xx_got_frame_fndecl_56891 zr364xx_got_frame fndecl 2 56891 NULL
168191 +enable_so_byte_count_drm_device_dma_56892 byte_count drm_device_dma 0 56892 NULL nohasharray
168192 +enable_so_prev_adaption_gsm_dlci_56892 prev_adaption gsm_dlci 0 56892 &enable_so_byte_count_drm_device_dma_56892
168193 +enable_so_width_font_desc_56899 width font_desc 0 56899 NULL
168194 +enable_so_xen_find_free_area_fndecl_56905 xen_find_free_area fndecl 0-1 56905 NULL
168195 +enable_so___process_new_xattr_fndecl_56906 __process_new_xattr fndecl 6-4 56906 NULL nohasharray
168196 +enable_so_length_fw_cdev_send_response_56906 length fw_cdev_send_response 0 56906 &enable_so___process_new_xattr_fndecl_56906
168197 +enable_so_max_port_number_tb_regs_switch_header_56907 max_port_number tb_regs_switch_header 0 56907 NULL
168198 +enable_so_mcopy_atomic_pte_fndecl_56913 mcopy_atomic_pte fndecl 4 56913 NULL
168199 +enable_so_diff_objects_assoc_array_ops_56914 diff_objects assoc_array_ops 0 56914 NULL
168200 +enable_so_cifs_fsync_fndecl_56917 cifs_fsync fndecl 2-3 56917 NULL nohasharray
168201 +enable_so_total_size_hfsplus_fork_raw_56917 total_size hfsplus_fork_raw 0 56917 &enable_so_cifs_fsync_fndecl_56917
168202 +enable_so_comedi_buf_write_n_allocated_fndecl_56919 comedi_buf_write_n_allocated fndecl 0 56919 NULL
168203 +enable_so_ip6_find_1stfragopt_fndecl_56923 ip6_find_1stfragopt fndecl 0 56923 NULL nohasharray
168204 +enable_so_xt_compat_target_offset_fndecl_56923 xt_compat_target_offset fndecl 0 56923 &enable_so_ip6_find_1stfragopt_fndecl_56923
168205 +enable_so_il_dbgfs_qos_read_fndecl_56924 il_dbgfs_qos_read fndecl 3 56924 NULL nohasharray
168206 +enable_so_usb_gstrings_attach_fndecl_56924 usb_gstrings_attach fndecl 3 56924 &enable_so_il_dbgfs_qos_read_fndecl_56924
168207 +enable_so_vram_vardecl_nvidia_c_56925 vram vardecl_nvidia.c 0 56925 NULL
168208 +enable_so_beiscsi_process_async_pdu_fndecl_56929 beiscsi_process_async_pdu fndecl 6 56929 NULL
168209 +enable_so_data_len_ib_mac_iocb_rsp_56930 data_len ib_mac_iocb_rsp 0 56930 NULL
168210 +enable_so_align_buffer_sz_sdhci_host_56931 align_buffer_sz sdhci_host 0 56931 NULL
168211 +enable_so_csize_jffs2_tmp_dnode_info_56933 csize jffs2_tmp_dnode_info 0 56933 NULL
168212 +enable_so_max_tar_initio_host_56934 max_tar initio_host 0 56934 NULL
168213 +enable_so_hotadd_new_pgdat_fndecl_56936 hotadd_new_pgdat fndecl 2 56936 NULL
168214 +enable_so_vmw_gmr_bind_fndecl_56940 vmw_gmr_bind fndecl 3 56940 NULL
168215 +enable_so_drm_property_replace_global_blob_fndecl_56945 drm_property_replace_global_blob fndecl 3 56945 NULL
168216 +enable_so_len_rx_hdr_56949 len rx_hdr 0 56949 NULL
168217 +enable_so_target_submit_cmd_fndecl_56950 target_submit_cmd fndecl 6 56950 NULL
168218 +enable_so_memblock_set_node_fndecl_56955 memblock_set_node fndecl 2-1 56955 NULL
168219 +enable_so_DevSizeShift_qinfo_chip_56957 DevSizeShift qinfo_chip 0 56957 NULL
168220 +enable_so_i_lastalloc_affs_inode_info_56961 i_lastalloc affs_inode_info 0 56961 NULL
168221 +enable_so_cur_pkt_size_pktgen_dev_56962 cur_pkt_size pktgen_dev 0 56962 NULL
168222 +enable_so_n_mem_slots_qxl_device_56964 n_mem_slots qxl_device 0 56964 NULL
168223 +enable_so_maxresp_cached_nfsd4_channel_attrs_56966 maxresp_cached nfsd4_channel_attrs 0 56966 NULL
168224 +enable_so_spanned_pages_zone_56972 spanned_pages zone 0 56972 NULL
168225 +enable_so_ceph_write_end_fndecl_56973 ceph_write_end fndecl 5-3 56973 NULL
168226 +enable_so_irq_blk_threshold_read_fndecl_56977 irq_blk_threshold_read fndecl 3 56977 NULL
168227 +enable_so_fddi_type_trans_fndecl_56978 fddi_type_trans fndecl 0 56978 NULL
168228 +enable_so_arp_hdr_len_fndecl_56980 arp_hdr_len fndecl 0 56980 NULL
168229 +enable_so_find_next_chunk_fndecl_56983 find_next_chunk fndecl 0 56983 NULL
168230 +enable_so_ath6kl_wmi_startscan_cmd_fndecl_56985 ath6kl_wmi_startscan_cmd fndecl 8-2 56985 NULL
168231 +enable_so_i2c_hid_alloc_buffers_fndecl_56986 i2c_hid_alloc_buffers fndecl 2 56986 NULL
168232 +enable_so_max_packet_whc_qset_56991 max_packet whc_qset 0 56991 NULL nohasharray
168233 +enable_so_btrfs_dio_bio_alloc_fndecl_56991 btrfs_dio_bio_alloc fndecl 2 56991 &enable_so_max_packet_whc_qset_56991
168234 +enable_so_lpfc_selective_reset_fndecl_56994 lpfc_selective_reset fndecl 0 56994 NULL
168235 +enable_so_pvr2_stream_buffer_count_fndecl_56996 pvr2_stream_buffer_count fndecl 2 56996 NULL
168236 +enable_so_write_file_spectral_count_fndecl_57000 write_file_spectral_count fndecl 3 57000 NULL
168237 +enable_so_num_tx_rings_bnx2_57001 num_tx_rings bnx2 0 57001 NULL nohasharray
168238 +enable_so_file_remove_privs_fndecl_57001 file_remove_privs fndecl 0 57001 &enable_so_num_tx_rings_bnx2_57001
168239 +enable_so_edid_size_dlfb_data_57003 edid_size dlfb_data 0 57003 NULL
168240 +enable_so_ext4_clear_blocks_fndecl_57012 ext4_clear_blocks fndecl 4-5 57012 NULL
168241 +enable_so_i2c_hack_wm8775_fndecl_57014 i2c_hack_wm8775 fndecl 4-6 57014 NULL
168242 +enable_so_expand_corename_fndecl_57021 expand_corename fndecl 2 57021 NULL
168243 +enable_so_buffer_bytes_max_snd_pcm_substream_57022 buffer_bytes_max snd_pcm_substream 0 57022 NULL
168244 +enable_so_sys_keyctl_fndecl_57023 sys_keyctl fndecl 4 57023 NULL nohasharray
168245 +enable_so_xs_send_kvec_fndecl_57023 xs_send_kvec fndecl 5-3 57023 &enable_so_sys_keyctl_fndecl_57023
168246 +enable_so_nfs_idmap_instantiate_fndecl_57026 nfs_idmap_instantiate fndecl 4 57026 NULL
168247 +enable_so_usb_packet_maxlen_usb_fifo_57029 usb_packet_maxlen usb_fifo 0 57029 NULL
168248 +enable_so_s_pkey_index_qib_qp_57031 s_pkey_index qib_qp 0 57031 NULL nohasharray
168249 +enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031 xfrm_count_pfkey_enc_supported fndecl 0 57031 &enable_so_s_pkey_index_qib_qp_57031 nohasharray
168250 +enable_so_stacksize_xt_table_info_57031 stacksize xt_table_info 0 57031 &enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031
168251 +enable_so_do_munmap_fndecl_57035 do_munmap fndecl 2-3 57035 NULL
168252 +enable_so_size_mb_flash_desc_57036 size_mb flash_desc 0 57036 NULL
168253 +enable_so_port_pd_mthca_av_57038 port_pd mthca_av 0 57038 NULL
168254 +enable_so_read_file_node_recv_fndecl_57042 read_file_node_recv fndecl 3 57042 NULL
168255 +enable_so_ib_qib_max_cqes_vardecl_57049 ib_qib_max_cqes vardecl 0 57049 NULL nohasharray
168256 +enable_so_iwl_dbgfs_tof_responder_params_read_fndecl_57049 iwl_dbgfs_tof_responder_params_read fndecl 3 57049 &enable_so_ib_qib_max_cqes_vardecl_57049
168257 +enable_so_i_subdirs_ceph_inode_info_57052 i_subdirs ceph_inode_info 0 57052 NULL
168258 +enable_so_index_scsi_disk_57053 index scsi_disk 0 57053 NULL
168259 +enable_so_nsindex_size_nvdimm_drvdata_57060 nsindex_size nvdimm_drvdata 0 57060 NULL
168260 +enable_so___btrfs_free_reserved_extent_fndecl_57061 __btrfs_free_reserved_extent fndecl 3-2 57061 NULL nohasharray
168261 +enable_so_size_garmin_packet_57061 size garmin_packet 0 57061 &enable_so___btrfs_free_reserved_extent_fndecl_57061
168262 +enable_so_log_blocks_per_seg_f2fs_sb_info_57063 log_blocks_per_seg f2fs_sb_info 0 57063 NULL
168263 +enable_so_dm_pool_block_is_used_fndecl_57067 dm_pool_block_is_used fndecl 0 57067 NULL
168264 +enable_so_ezusb_write_ltv_fndecl_57071 ezusb_write_ltv fndecl 4 57071 NULL
168265 +enable_so_vifs_state_read_fndecl_57073 vifs_state_read fndecl 3 57073 NULL
168266 +enable_so_set_one_prio_fndecl_57075 set_one_prio fndecl 2 57075 NULL
168267 +enable_so_mem_map_size_efx_nic_type_57089 mem_map_size efx_nic_type 0 57089 NULL
168268 +enable_so_num_uars_mlx4_caps_57093 num_uars mlx4_caps 0 57093 NULL
168269 +enable_so_part_shift_vardecl_loop_c_57103 part_shift vardecl_loop.c 0 57103 NULL nohasharray
168270 +enable_so_mcs7830_get_reg_fndecl_57103 mcs7830_get_reg fndecl 3 57103 &enable_so_part_shift_vardecl_loop_c_57103
168271 +enable_so_sync_pt_create_fndecl_57105 sync_pt_create fndecl 2 57105 NULL
168272 +enable_so_total_sections_f2fs_sb_info_57118 total_sections f2fs_sb_info 0 57118 NULL
168273 +enable_so_size_nvif_notify_57130 size nvif_notify 0 57130 NULL
168274 +enable_so_gsm_mux_rx_netchar_fndecl_57131 gsm_mux_rx_netchar fndecl 3 57131 NULL
168275 +enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132 ath10k_htt_rx_crypto_tail_len fndecl 0 57132 NULL nohasharray
168276 +enable_so_joydev_ioctl_fndecl_57132 joydev_ioctl fndecl 2 57132 &enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132
168277 +enable_so_msg_controllen_msghdr_57136 msg_controllen msghdr 0 57136 NULL
168278 +enable_so_max_write_same_sectors_queue_limits_57138 max_write_same_sectors queue_limits 0 57138 NULL
168279 +enable_so_ha_end_pfn_hv_hotadd_state_57139 ha_end_pfn hv_hotadd_state 0 57139 NULL
168280 +enable_so_pci_set_dma_max_seg_size_fndecl_57140 pci_set_dma_max_seg_size fndecl 2 57140 NULL
168281 +enable_so_isku_sysfs_read_keys_easyzone_fndecl_57141 isku_sysfs_read_keys_easyzone fndecl 6 57141 NULL
168282 +enable_so_pack_sg_list_p_fndecl_57142 pack_sg_list_p fndecl 7-6 57142 NULL
168283 +enable_so_sb_agblklog_xfs_sb_57145 sb_agblklog xfs_sb 0 57145 NULL
168284 +enable_so_error_dm_rq_target_io_57148 error dm_rq_target_io 0 57148 NULL
168285 +enable_so_vlan_dev_vlan_id_fndecl_57152 vlan_dev_vlan_id fndecl 0 57152 NULL
168286 +enable_so_ofs_in_node_dnode_of_data_57156 ofs_in_node dnode_of_data 0 57156 NULL
168287 +enable_so_sd_rw_multi_fndecl_57157 sd_rw_multi fndecl 0 57157 NULL
168288 +enable_so_bytes_written_flags_cq_enet_rq_desc_57164 bytes_written_flags cq_enet_rq_desc 0 57164 NULL
168289 +enable_so_spi_wr_buf_fndecl_57169 spi_wr_buf fndecl 4 57169 NULL
168290 +enable_so_alloc_len_xps_map_57174 alloc_len xps_map 0 57174 NULL
168291 +enable_so_pd_points_ath5k_pdgain_info_57180 pd_points ath5k_pdgain_info 0 57180 NULL
168292 +enable_so_dpcm_playback_snd_soc_dai_link_57182 dpcm_playback snd_soc_dai_link 0 57182 NULL
168293 +enable_so_create_xattr_datum_fndecl_57183 create_xattr_datum fndecl 5 57183 NULL nohasharray
168294 +enable_so_irq_pkt_threshold_read_fndecl_57183 irq_pkt_threshold_read fndecl 3 57183 &enable_so_create_xattr_datum_fndecl_57183
168295 +enable_so_num_vfs_mlx4_dev_persistent_57187 num_vfs mlx4_dev_persistent 0 57187 NULL
168296 +enable_so_z1_zt_57189 z1 zt 0 57189 NULL nohasharray
168297 +enable_so_h_datalen_logfs_journal_header_57189 h_datalen logfs_journal_header 0 57189 &enable_so_z1_zt_57189
168298 +enable_so_cfs_trace_copyin_string_fndecl_57191 cfs_trace_copyin_string fndecl 4 57191 NULL
168299 +enable_so_OutputCount_smb2_ioctl_rsp_57198 OutputCount smb2_ioctl_rsp 0 57198 NULL
168300 +enable_so_ieee80211_if_read_dropped_frames_no_route_fndecl_57204 ieee80211_if_read_dropped_frames_no_route fndecl 3 57204 NULL
168301 +enable_so_sector_dm_crypt_io_57208 sector dm_crypt_io 0 57208 NULL
168302 +enable_so_frag_max_size_inet6_skb_parm_57210 frag_max_size inet6_skb_parm 0 57210 NULL
168303 +enable_so_osd_req_op_xattr_init_fndecl_57211 osd_req_op_xattr_init fndecl 6 57211 NULL
168304 +enable_so_mon_buff_area_free_fndecl_57212 mon_buff_area_free fndecl 2 57212 NULL
168305 +enable_so_le_min_key_size_read_fndecl_57214 le_min_key_size_read fndecl 3 57214 NULL
168306 +enable_so_overflow_maj_vardecl_uverbs_main_c_57216 overflow_maj vardecl_uverbs_main.c 0 57216 NULL
168307 +enable_so_mss_Vmxnet3_RxCompDescExt_57228 mss Vmxnet3_RxCompDescExt 0 57228 NULL
168308 +enable_so_RxDescriptors_vardecl_pch_gbe_param_c_57229 RxDescriptors vardecl_pch_gbe_param.c 0 57229 NULL
168309 +enable_so_sm_sl_qib_ibport_57230 sm_sl qib_ibport 0 57230 NULL
168310 +enable_so_len_setup_data_57234 len setup_data 0 57234 NULL nohasharray
168311 +enable_so_ufs_getfrag_block_fndecl_57234 ufs_getfrag_block fndecl 2 57234 &enable_so_len_setup_data_57234
168312 +enable_so_ext4_meta_bg_first_block_no_fndecl_57235 ext4_meta_bg_first_block_no fndecl 0-2 57235 NULL
168313 +enable_so_header_asix_rx_fixup_info_57237 header asix_rx_fixup_info 0 57237 NULL nohasharray
168314 +enable_so_li_namelen_nfsd4_link_57237 li_namelen nfsd4_link 0 57237 &enable_so_header_asix_rx_fixup_info_57237
168315 +enable_so_memfree_rate_to_ib_fndecl_57240 memfree_rate_to_ib fndecl 0 57240 NULL
168316 +enable_so_offset_ion_test_rw_data_57241 offset ion_test_rw_data 0 57241 NULL
168317 +enable_so_sys_dup3_fndecl_57246 sys_dup3 fndecl 2 57246 NULL
168318 +enable_so_maxlen_xfs_alloc_arg_57260 maxlen xfs_alloc_arg 0 57260 NULL
168319 +enable_so_si2165_read_fndecl_57262 si2165_read fndecl 4 57262 NULL
168320 +enable_so_sc18is602_setup_transfer_fndecl_57266 sc18is602_setup_transfer fndecl 0 57266 NULL
168321 +enable_so_fuse_dev_do_write_fndecl_57267 fuse_dev_do_write fndecl 3 57267 NULL
168322 +enable_so_port_srp_host_57271 port srp_host 0 57271 NULL
168323 +enable_so_mps_l2cap_le_conn_rsp_57280 mps l2cap_le_conn_rsp 0 57280 NULL
168324 +enable_so_entry_nr_kvm_assigned_msix_nr_57282 entry_nr kvm_assigned_msix_nr 0 57282 NULL
168325 +enable_so_dds_flags_p_sizes_57290 dds_flags p_sizes 0 57290 NULL
168326 +enable_so_h_vlan_encapsulated_proto_vlan_hdr_57295 h_vlan_encapsulated_proto vlan_hdr 0 57295 NULL
168327 +enable_so_packet_sz_musb_ep_57296 packet_sz musb_ep 0 57296 NULL nohasharray
168328 +enable_so_ovs_vport_alloc_fndecl_57296 ovs_vport_alloc fndecl 1 57296 &enable_so_packet_sz_musb_ep_57296
168329 +enable_so_ie_len_parsed_vndr_ie_info_57299 ie_len parsed_vndr_ie_info 0 57299 NULL
168330 +enable_so_create_entry_fndecl_57300 create_entry fndecl 2 57300 NULL
168331 +enable_so_pldbuflen_qid_rsp_ctrl_57301 pldbuflen_qid rsp_ctrl 0 57301 NULL
168332 +enable_so_tcp_off_tso_state_57305 tcp_off tso_state 0 57305 NULL
168333 +enable_so_qtd_copy_status_fndecl_57306 qtd_copy_status fndecl 0-4-3 57306 NULL
168334 +enable_so_ptk_ivlen_iwl_mvm_57307 ptk_ivlen iwl_mvm 0 57307 NULL
168335 +enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 usCRTC_V_SyncStart _ATOM_MODE_TIMING 0 57308 NULL nohasharray
168336 +enable_so_elf_map_fndecl_57308 elf_map fndecl 6 57308 &enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 nohasharray
168337 +enable_so_ip_setsockopt_fndecl_57308 ip_setsockopt fndecl 5-0 57308 &enable_so_elf_map_fndecl_57308
168338 +enable_so_nes_alloc_fast_reg_page_list_fndecl_57312 nes_alloc_fast_reg_page_list fndecl 2 57312 NULL
168339 +enable_so_orinoco_hw_get_essid_fndecl_57314 orinoco_hw_get_essid fndecl 0 57314 NULL
168340 +enable_so_aggr_size_rx_size_read_fndecl_57317 aggr_size_rx_size_read fndecl 3 57317 NULL
168341 +enable_so_interrupt_in_endpoint_size_ld_usb_57321 interrupt_in_endpoint_size ld_usb 0 57321 NULL
168342 +enable_so_acpi_gsi_to_irq_fndecl_57326 acpi_gsi_to_irq fndecl 1 57326 NULL
168343 +enable_so_fb_read_fndecl_57329 fb_read fndecl 3 57329 NULL
168344 +enable_so_musb_test_mode_write_fndecl_57341 musb_test_mode_write fndecl 3 57341 NULL
168345 +enable_so_ext4_expand_extra_isize_ea_fndecl_57344 ext4_expand_extra_isize_ea fndecl 2 57344 NULL
168346 +enable_so_root_hpfs_super_block_57345 root hpfs_super_block 0 57345 NULL
168347 +enable_so_ath10k_read_htt_max_amsdu_ampdu_fndecl_57346 ath10k_read_htt_max_amsdu_ampdu fndecl 3 57346 NULL
168348 +enable_so_align_nf_ct_ext_type_57348 align nf_ct_ext_type 0 57348 NULL
168349 +enable_so_ixgbe_pci_sriov_enable_fndecl_57353 ixgbe_pci_sriov_enable fndecl 2 57353 NULL
168350 +enable_so_lbs_debugfs_write_fndecl_57358 lbs_debugfs_write fndecl 3 57358 NULL
168351 +enable_so_usFirmwareUseInKb__ATOM_FIRMWARE_VRAM_RESERVE_INFO_57360 usFirmwareUseInKb _ATOM_FIRMWARE_VRAM_RESERVE_INFO 0 57360 NULL
168352 +enable_so_next_burst_len_iscsi_seq_57361 next_burst_len iscsi_seq 0 57361 NULL
168353 +enable_so_nfs_create_request_fndecl_57363 nfs_create_request fndecl 5-4 57363 NULL
168354 +enable_so_au_sd_ssr_57367 au sd_ssr 0 57367 NULL
168355 +enable_so_dqi_giblk_ocfs2_mem_dqinfo_57374 dqi_giblk ocfs2_mem_dqinfo 0 57374 NULL
168356 +enable_so_rcount_slip_57376 rcount slip 0 57376 NULL
168357 +enable_so_kfd_pasid_alloc_fndecl_57381 kfd_pasid_alloc fndecl 0 57381 NULL
168358 +enable_so_icl_ag_xfs_icreate_log_57387 icl_ag xfs_icreate_log 0 57387 NULL
168359 +enable_so_rs_total_drbd_device_57388 rs_total drbd_device 0 57388 NULL
168360 +enable_so_div64_u64_rem_fndecl_57393 div64_u64_rem fndecl 0 57393 NULL
168361 +enable_so_uhid_event_from_user_fndecl_57394 uhid_event_from_user fndecl 2 57394 NULL
168362 +enable_so_ocfs2_reflink_xattr_bucket_fndecl_57395 ocfs2_reflink_xattr_bucket fndecl 2-6-3 57395 NULL
168363 +enable_so_radeon_audio_acr_fndecl_57396 radeon_audio_acr fndecl 1 57396 NULL nohasharray
168364 +enable_so_pwr_tx_without_ps_read_fndecl_57396 pwr_tx_without_ps_read fndecl 3 57396 &enable_so_radeon_audio_acr_fndecl_57396
168365 +enable_so_kfd_ioctl_fndecl_57397 kfd_ioctl fndecl 2 57397 NULL
168366 +enable_so_nr_cpu_ids_vardecl_57399 nr_cpu_ids vardecl 0 57399 NULL
168367 +enable_so_nfs4_alloc_pages_fndecl_57401 nfs4_alloc_pages fndecl 1 57401 NULL
168368 +enable_so_skb_pull_fndecl_57408 skb_pull fndecl 2 57408 NULL nohasharray
168369 +enable_so_cryptlen_chachapoly_req_ctx_57408 cryptlen chachapoly_req_ctx 0 57408 &enable_so_skb_pull_fndecl_57408
168370 +enable_so_copy_page_from_iter_iovec_fndecl_57409 copy_page_from_iter_iovec fndecl 3 57409 NULL
168371 +enable_so__iwl_dbgfs_bt_tx_prio_write_fndecl_57418 _iwl_dbgfs_bt_tx_prio_write fndecl 3 57418 NULL
168372 +enable_so_numbered_hid_report_enum_57419 numbered hid_report_enum 0 57419 NULL
168373 +enable_so_blkdev_get_block_fndecl_57432 blkdev_get_block fndecl 2 57432 NULL
168374 +enable_so_key_size_ecryptfs_crypt_stat_57436 key_size ecryptfs_crypt_stat 0 57436 NULL
168375 +enable_so_pci_hp_diva_setup_fndecl_57437 pci_hp_diva_setup fndecl 4 57437 NULL
168376 +enable_so_send_control_msg_fndecl_57441 send_control_msg fndecl 6 57441 NULL
168377 +enable_so_convert_tail_for_hole_fndecl_57444 convert_tail_for_hole fndecl 3 57444 NULL
168378 +enable_so_segsize_loc_dn_scp_57445 segsize_loc dn_scp 0 57445 NULL
168379 +enable_so_dln2_i2c_read_fndecl_57452 dln2_i2c_read fndecl 0-4 57452 NULL
168380 +enable_so_diva_os_copy_to_user_fndecl_57455 diva_os_copy_to_user fndecl 4 57455 NULL
168381 +enable_so_pix_clock_mt9m032_platform_data_57458 pix_clock mt9m032_platform_data 0 57458 NULL
168382 +enable_so_cp_table_size_radeon_rlc_57462 cp_table_size radeon_rlc 0 57462 NULL
168383 +enable_so_ib_ipath_lkey_table_size_vardecl_57463 ib_ipath_lkey_table_size vardecl 0 57463 NULL
168384 +enable_so_r8712_usbctrl_vendorreq_fndecl_57466 r8712_usbctrl_vendorreq fndecl 6 57466 NULL
168385 +enable_so_drbd_bm_capacity_fndecl_57473 drbd_bm_capacity fndecl 0 57473 NULL
168386 +enable_so_hfs_add_extent_fndecl_57475 hfs_add_extent fndecl 4-3 57475 NULL
168387 +enable_so_leaf_copy_dir_entries_fndecl_57477 leaf_copy_dir_entries fndecl 6 57477 NULL
168388 +enable_so_nutrs_ufs_hba_57478 nutrs ufs_hba 0 57478 NULL
168389 +enable_so_data_len_ib_mad_send_buf_57480 data_len ib_mad_send_buf 0 57480 NULL
168390 +enable_so_item_udata_fndecl_57481 item_udata fndecl 0 57481 NULL nohasharray
168391 +enable_so_gfs2_log_get_bio_fndecl_57481 gfs2_log_get_bio fndecl 2 57481 &enable_so_item_udata_fndecl_57481
168392 +enable_so_lrc_setup_wa_ctx_obj_fndecl_57482 lrc_setup_wa_ctx_obj fndecl 2 57482 NULL
168393 +enable_so_brcmf_sdio_glom_len_fndecl_57483 brcmf_sdio_glom_len fndecl 0 57483 NULL
168394 +enable_so_mps_l2cap_le_conn_req_57484 mps l2cap_le_conn_req 0 57484 NULL
168395 +enable_so_phantom_get_free_fndecl_57489 phantom_get_free fndecl 0 57489 NULL
168396 +enable_so_consume_q_size_vmci_qp_57492 consume_q_size vmci_qp 0 57492 NULL
168397 +enable_so_max_srq_rqe_sge_ocrdma_mbx_query_config_57494 max_srq_rqe_sge ocrdma_mbx_query_config 0 57494 NULL
168398 +enable_so_r8a66597_urb_done_fndecl_57497 r8a66597_urb_done fndecl 3 57497 NULL
168399 +enable_so_ath10k_fw_stats_read_fndecl_57506 ath10k_fw_stats_read fndecl 3 57506 NULL
168400 +enable_so_usnic_uiom_get_pages_fndecl_57510 usnic_uiom_get_pages fndecl 1-2 57510 NULL nohasharray
168401 +enable_so_truncate_data_blocks_range_fndecl_57510 truncate_data_blocks_range fndecl 2 57510 &enable_so_usnic_uiom_get_pages_fndecl_57510 nohasharray
168402 +enable_so_command_resume_fndecl_57510 command_resume fndecl 0 57510 &enable_so_truncate_data_blocks_range_fndecl_57510
168403 +enable_so_raid10_size_fndecl_57512 raid10_size fndecl 0-3-2 57512 NULL
168404 +enable_so_s_log_block_size_ext4_super_block_57520 s_log_block_size ext4_super_block 0 57520 NULL
168405 +enable_so_igb_rd32_fndecl_57524 igb_rd32 fndecl 0 57524 NULL
168406 +enable_so_nvbios_extend_fndecl_57525 nvbios_extend fndecl 2 57525 NULL
168407 +enable_so_temp_begin_applesmc_registers_57532 temp_begin applesmc_registers 0 57532 NULL
168408 +enable_so_f2fs_direct_IO_fndecl_57535 f2fs_direct_IO fndecl 3 57535 NULL nohasharray
168409 +enable_so_height_tw68_dev_57535 height tw68_dev 0 57535 &enable_so_f2fs_direct_IO_fndecl_57535
168410 +enable_so_diFindFree_fndecl_57537 diFindFree fndecl 0-2 57537 NULL
168411 +enable_so_trimmed_cp_control_57542 trimmed cp_control 0 57542 NULL
168412 +enable_so_i_file_sec_hpfs_inode_info_57545 i_file_sec hpfs_inode_info 0 57545 NULL nohasharray
168413 +enable_so_y_max_wacom_features_57545 y_max wacom_features 0 57545 &enable_so_i_file_sec_hpfs_inode_info_57545
168414 +enable_so_ext4_ind_direct_IO_fndecl_57548 ext4_ind_direct_IO fndecl 3 57548 NULL nohasharray
168415 +enable_so_is_zd1211b_zd_usb_57548 is_zd1211b zd_usb 0 57548 &enable_so_ext4_ind_direct_IO_fndecl_57548
168416 +enable_so_last_to_afs_call_57563 last_to afs_call 0 57563 NULL
168417 +enable_so_ocfs2_increase_refcount_fndecl_57564 ocfs2_increase_refcount fndecl 5-4 57564 NULL
168418 +enable_so_resp_len_ql4_task_data_57567 resp_len ql4_task_data 0 57567 NULL
168419 +enable_so_offset_mtd_part_57572 offset mtd_part 0 57572 NULL
168420 +enable_so_i40e_receive_skb_fndecl_57575 i40e_receive_skb fndecl 3 57575 NULL nohasharray
168421 +enable_so_pvr2_ctrl_get_max_fndecl_57575 pvr2_ctrl_get_max fndecl 0 57575 &enable_so_i40e_receive_skb_fndecl_57575
168422 +enable_so_do_mpage_readpage_fndecl_57577 do_mpage_readpage fndecl 3 57577 NULL nohasharray
168423 +enable_so_blkstol2_fndecl_57577 blkstol2 fndecl 0 57577 &enable_so_do_mpage_readpage_fndecl_57577
168424 +enable_so_opt_optl_optdata_dn_57580 opt_optl optdata_dn 0 57580 NULL
168425 +enable_so_shared_max_reservation_object_list_57587 shared_max reservation_object_list 0 57587 NULL
168426 +enable_so_unmap_blk_desc_data_len_scsi_unmap_parm_list_57591 unmap_blk_desc_data_len scsi_unmap_parm_list 0 57591 NULL nohasharray
168427 +enable_so_data_dot_offset_xfs_dir_ops_57591 data_dot_offset xfs_dir_ops 0 57591 &enable_so_unmap_blk_desc_data_len_scsi_unmap_parm_list_57591
168428 +enable_so_usCRTC_V_Disp__ATOM_MODE_TIMING_57594 usCRTC_V_Disp _ATOM_MODE_TIMING 0 57594 NULL
168429 +enable_so_parent_ino_nilfs_fid_57597 parent_ino nilfs_fid 0 57597 NULL
168430 +enable_so_update_regset_xstate_info_fndecl_57602 update_regset_xstate_info fndecl 1 57602 NULL nohasharray
168431 +enable_so_dn_fib_count_nhs_fndecl_57602 dn_fib_count_nhs fndecl 0 57602 &enable_so_update_regset_xstate_info_fndecl_57602
168432 +enable_so_sc_pwd_len_wl18xx_event_mailbox_57604 sc_pwd_len wl18xx_event_mailbox 0 57604 NULL nohasharray
168433 +enable_so_buffer_bytes_osst_buffer_57604 buffer_bytes osst_buffer 0 57604 &enable_so_sc_pwd_len_wl18xx_event_mailbox_57604
168434 +enable_so___tcp_push_pending_frames_fndecl_57607 __tcp_push_pending_frames fndecl 2 57607 NULL nohasharray
168435 +enable_so_mch_bar_vardecl_cr_pll_c_57607 mch_bar vardecl_cr_pll.c 0 57607 &enable_so___tcp_push_pending_frames_fndecl_57607
168436 +enable_so_data_xfer_len_bnx2fc_cmd_57611 data_xfer_len bnx2fc_cmd 0 57611 NULL nohasharray
168437 +enable_so__add_to_r4w_fndecl_57611 _add_to_r4w fndecl 4 57611 &enable_so_data_xfer_len_bnx2fc_cmd_57611
168438 +enable_so_isr_dma1_done_read_fndecl_57612 isr_dma1_done_read fndecl 3 57612 NULL
168439 +enable_so_wWidth_uvc_frame_57615 wWidth uvc_frame 0 57615 NULL
168440 +enable_so_vmw_framebuffer_surface_dirty_fndecl_57623 vmw_framebuffer_surface_dirty fndecl 6 57623 NULL
168441 +enable_so_f2fs_collapse_range_fndecl_57627 f2fs_collapse_range fndecl 2 57627 NULL
168442 +enable_so_memblock_enforce_memory_limit_fndecl_57628 memblock_enforce_memory_limit fndecl 1 57628 NULL
168443 +enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630 ieee80211_mesh_rx_probe_req fndecl 3 57630 NULL nohasharray
168444 +enable_so_set_discoverable_fndecl_57630 set_discoverable fndecl 4 57630 &enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630
168445 +enable_so_ieee80211_ie_split_ric_fndecl_57640 ieee80211_ie_split_ric fndecl 0-7 57640 NULL nohasharray
168446 +enable_so_init_ipath_fndecl_57640 init_ipath fndecl 1 57640 &enable_so_ieee80211_ie_split_ric_fndecl_57640
168447 +enable_so_alloc_cc770dev_fndecl_57641 alloc_cc770dev fndecl 1 57641 NULL
168448 +enable_so_node_ino_f2fs_super_block_57645 node_ino f2fs_super_block 0 57645 NULL
168449 +enable_so_num_stripes_btrfs_bio_57647 num_stripes btrfs_bio 0 57647 NULL
168450 +enable_so_ctl_out_pipe_brcmf_usbdev_info_57648 ctl_out_pipe brcmf_usbdev_info 0 57648 NULL nohasharray
168451 +enable_so_c4iw_id_table_alloc_fndecl_57648 c4iw_id_table_alloc fndecl 3 57648 &enable_so_ctl_out_pipe_brcmf_usbdev_info_57648
168452 +enable_so_ttymajor_vardecl_moxa_c_57652 ttymajor vardecl_moxa.c 0 57652 NULL
168453 +enable_so_tc358743_get_reg_size_fndecl_57653 tc358743_get_reg_size fndecl 0 57653 NULL nohasharray
168454 +enable_so_ql2xmaxqueues_vardecl_57653 ql2xmaxqueues vardecl 0 57653 &enable_so_tc358743_get_reg_size_fndecl_57653
168455 +enable_so_bnx2x_gunzip_fndecl_57655 bnx2x_gunzip fndecl 3 57655 NULL
168456 +enable_so_fuse_request_init_fndecl_57656 fuse_request_init fndecl 4 57656 NULL
168457 +enable_so_rbd_obj_method_sync_fndecl_57657 rbd_obj_method_sync fndecl 8-6 57657 NULL
168458 +enable_so_curheight_usb_usbvision_57669 curheight usb_usbvision 0 57669 NULL
168459 +enable_so_len_pn533_poll_modulations_57671 len pn533_poll_modulations 0 57671 NULL
168460 +enable_so_PQTAG_rdesc1_57683 PQTAG rdesc1 0 57683 NULL nohasharray
168461 +enable_so_xfs_dir3_data_readahead_fndecl_57683 xfs_dir3_data_readahead fndecl 2 57683 &enable_so_PQTAG_rdesc1_57683
168462 +enable_so_srp_finish_mapping_fndecl_57687 srp_finish_mapping fndecl 0 57687 NULL
168463 +enable_so_data_dma_kbtab_57688 data_dma kbtab 0 57688 NULL
168464 +enable_so_length_ib_reth_57691 length ib_reth 0 57691 NULL nohasharray
168465 +enable_so_cfg80211_process_deauth_fndecl_57691 cfg80211_process_deauth fndecl 3 57691 &enable_so_length_ib_reth_57691
168466 +enable_so_conflen_gss_krb5_enctype_57693 conflen gss_krb5_enctype 0 57693 NULL nohasharray
168467 +enable_so_phys_base_ptr_vbe_mode_ib_57693 phys_base_ptr vbe_mode_ib 0 57693 &enable_so_conflen_gss_krb5_enctype_57693
168468 +enable_so_nfsctl_transaction_read_fndecl_57705 nfsctl_transaction_read fndecl 3 57705 NULL
168469 +enable_so_residual_datacnt_initiator_status_57708 residual_datacnt initiator_status 0 57708 NULL nohasharray
168470 +enable_so_qla2x00_bsg_job_done_fndecl_57708 qla2x00_bsg_job_done fndecl 3 57708 &enable_so_residual_datacnt_initiator_status_57708
168471 +enable_so_uv_blade_nr_possible_cpus_fndecl_57713 uv_blade_nr_possible_cpus fndecl 0 57713 NULL
168472 +enable_so_de_size_fndecl_57715 de_size fndecl 0-1 57715 NULL
168473 +enable_so_ttm_bo_create_fndecl_57717 ttm_bo_create fndecl 2 57717 NULL
168474 +enable_so_nilfs_readpages_fndecl_57718 nilfs_readpages fndecl 4 57718 NULL
168475 +enable_so_nports_adap_ports_57721 nports adap_ports 0 57721 NULL
168476 +enable_so_read_file_recv_fndecl_57723 read_file_recv fndecl 3 57723 NULL
168477 +enable_so_x509_akid_note_kid_fndecl_57725 x509_akid_note_kid fndecl 5 57725 NULL
168478 +enable_so_partition_sched_domains_fndecl_57727 partition_sched_domains fndecl 1 57727 NULL
168479 +enable_so_byte_read_data_parport_operations_57730 byte_read_data parport_operations 0 57730 NULL
168480 +enable_so_max_devs_vardecl_aic94xx_hwi_c_57731 max_devs vardecl_aic94xx_hwi.c 0 57731 NULL
168481 +enable_so_opts1_cp_desc_57736 opts1 cp_desc 0 57736 NULL nohasharray
168482 +enable_so_compat_sys_io_getevents_fndecl_57736 compat_sys_io_getevents fndecl 3 57736 &enable_so_opts1_cp_desc_57736
168483 +enable_so_buffer_width_budget_57739 buffer_width budget 0 57739 NULL
168484 +enable_so_disk_recovery_offset_dm_raid_superblock_57740 disk_recovery_offset dm_raid_superblock 0 57740 NULL
168485 +enable_so_prepare_message_spi_master_57743 prepare_message spi_master 0 57743 NULL nohasharray
168486 +enable_so_used_ebs_ubi_ainf_volume_57743 used_ebs ubi_ainf_volume 0 57743 &enable_so_prepare_message_spi_master_57743
168487 +enable_so_residue_bfi_ioim_rsp_s_57746 residue bfi_ioim_rsp_s 0 57746 NULL nohasharray
168488 +enable_so_batadv_socket_read_fndecl_57746 batadv_socket_read fndecl 3 57746 &enable_so_residue_bfi_ioim_rsp_s_57746
168489 +enable_so_usb_hcd_submit_urb_fndecl_57747 usb_hcd_submit_urb fndecl 0 57747 NULL
168490 +enable_so_acpi_ex_convert_to_ascii_fndecl_57750 acpi_ex_convert_to_ascii fndecl 0 57750 NULL
168491 +enable_so___videobuf_free_fndecl_57751 __videobuf_free fndecl 0 57751 NULL
168492 +enable_so_mdts_nvme_id_ctrl_57754 mdts nvme_id_ctrl 0 57754 NULL nohasharray
168493 +enable_so_res_hor_val_pvr2_hdw_57754 res_hor_val pvr2_hdw 0 57754 &enable_so_mdts_nvme_id_ctrl_57754
168494 +enable_so_remove_memory_fndecl_57755 remove_memory fndecl 3-2 57755 NULL
168495 +enable_so_cache_write_pipefs_fndecl_57757 cache_write_pipefs fndecl 3 57757 NULL
168496 +enable_so_timblogiw_read_fndecl_57762 timblogiw_read fndecl 3 57762 NULL
168497 +enable_so_kernel_sendmsg_fndecl_57763 kernel_sendmsg fndecl 0-5-4 57763 NULL
168498 +enable_so_numEntries__ATOM_PPLIB_ACPClk_Voltage_Limit_Table_57767 numEntries _ATOM_PPLIB_ACPClk_Voltage_Limit_Table 0 57767 NULL
168499 +enable_so_MaxDevHandle_mpt2sas_facts_57768 MaxDevHandle mpt2sas_facts 0 57768 NULL
168500 +enable_so_mdp_major_vardecl_57774 mdp_major vardecl 0 57774 NULL nohasharray
168501 +enable_so_minor_media_devnode_57774 minor media_devnode 0 57774 &enable_so_mdp_major_vardecl_57774
168502 +enable_so_read_data_parport_operations_57776 read_data parport_operations 0 57776 NULL
168503 +enable_so_send_set_info_fndecl_57779 send_set_info fndecl 7 57779 NULL
168504 +enable_so_height_fb_copyarea_57780 height fb_copyarea 0 57780 NULL nohasharray
168505 +enable_so_end_numa_memblk_57780 end numa_memblk 0 57780 &enable_so_height_fb_copyarea_57780
168506 +enable_so_fp_array_size_bnx2x_57781 fp_array_size bnx2x 0 57781 NULL
168507 +enable_so_bfad_iocmd_phy_get_attr_fndecl_57786 bfad_iocmd_phy_get_attr fndecl 0 57786 NULL
168508 +enable_so_lpfc_idiag_extacc_read_fndecl_57790 lpfc_idiag_extacc_read fndecl 3 57790 NULL
168509 +enable_so_mp_rx_agg_buf_size_sdio_mmc_card_57794 mp_rx_agg_buf_size sdio_mmc_card 0 57794 NULL
168510 +enable_so_pos_lzma_header_57804 pos lzma_header 0 57804 NULL nohasharray
168511 +enable_so_spk_xe_vardecl_57804 spk_xe vardecl 0 57804 &enable_so_pos_lzma_header_57804
168512 +enable_so_nic_num_sqs_en_fndecl_57805 nic_num_sqs_en fndecl 0-2 57805 NULL
168513 +enable_so_blocks_mmc_data_57821 blocks mmc_data 0 57821 NULL
168514 +enable_so_force_size_vardecl_pcmciamtd_c_57827 force_size vardecl_pcmciamtd.c 0 57827 NULL nohasharray
168515 +enable_so_eth_proto_xfrm_state_afinfo_57827 eth_proto xfrm_state_afinfo 0 57827 &enable_so_force_size_vardecl_pcmciamtd_c_57827
168516 +enable_so_ioc_count_obd_ioctl_data_57830 ioc_count obd_ioctl_data 0 57830 NULL
168517 +enable_so_vxfs_bmap_ext4_fndecl_57831 vxfs_bmap_ext4 fndecl 0-2 57831 NULL nohasharray
168518 +enable_so_iscsi_complete_pdu_fndecl_57831 iscsi_complete_pdu fndecl 4 57831 &enable_so_vxfs_bmap_ext4_fndecl_57831
168519 +enable_so_tx_frag_init_called_read_fndecl_57834 tx_frag_init_called_read fndecl 3 57834 NULL
168520 +enable_so___pn533_send_frame_async_fndecl_57850 __pn533_send_frame_async fndecl 4 57850 NULL nohasharray
168521 +enable_so_i_pos_hi_fat_fid_57850 i_pos_hi fat_fid 0 57850 &enable_so___pn533_send_frame_async_fndecl_57850
168522 +enable_so_vd_dsr_au_count_gru_vma_data_57855 vd_dsr_au_count gru_vma_data 0 57855 NULL
168523 +enable_so_nilfs_resize_fs_fndecl_57861 nilfs_resize_fs fndecl 2 57861 NULL
168524 +enable_so_len_splice_desc_57862 len splice_desc 0 57862 NULL
168525 +enable_so__usbctrl_vendorreq_async_write_fndecl_57866 _usbctrl_vendorreq_async_write fndecl 6 57866 NULL
168526 +enable_so_lpfc_sli4_get_els_iocb_cnt_fndecl_57869 lpfc_sli4_get_els_iocb_cnt fndecl 0 57869 NULL
168527 +enable_so_fsl_spi_setup_transfer_fndecl_57873 fsl_spi_setup_transfer fndecl 0 57873 NULL nohasharray
168528 +enable_so_mac_drv_rx_init_fndecl_57873 mac_drv_rx_init fndecl 2 57873 &enable_so_fsl_spi_setup_transfer_fndecl_57873 nohasharray
168529 +enable_so_joydev_handle_JSIOCSAXMAP_fndecl_57873 joydev_handle_JSIOCSAXMAP fndecl 3 57873 &enable_so_mac_drv_rx_init_fndecl_57873
168530 +enable_so_len_wmfw_coeff_item_57875 len wmfw_coeff_item 0 57875 NULL nohasharray
168531 +enable_so_length_ib_umad_packet_57875 length ib_umad_packet 0 57875 &enable_so_len_wmfw_coeff_item_57875 nohasharray
168532 +enable_so_init_pci_serial_quirk_57875 init pci_serial_quirk 0 57875 &enable_so_length_ib_umad_packet_57875
168533 +enable_so_v4l2_src_h_yuv_playback_info_57877 v4l2_src_h yuv_playback_info 0 57877 NULL
168534 +enable_so_num_dup_tsns_sctp_sackhdr_57878 num_dup_tsns sctp_sackhdr 0 57878 NULL
168535 +enable_so_xdi_copy_to_user_fndecl_57879 xdi_copy_to_user fndecl 4 57879 NULL
168536 +enable_so_max_devices_hpt_iop_request_get_config_57889 max_devices hpt_iop_request_get_config 0 57889 NULL
168537 +enable_so_psn_qib_swqe_57901 psn qib_swqe 0 57901 NULL
168538 +enable_so_fat_sectors_fat_bios_param_block_57917 fat_sectors fat_bios_param_block 0 57917 NULL
168539 +enable_so_MaxXmitDataSegmentLength_iscsi_conn_ops_57926 MaxXmitDataSegmentLength iscsi_conn_ops 0 57926 NULL
168540 +enable_so_radeon_audio_update_acr_fndecl_57929 radeon_audio_update_acr fndecl 2 57929 NULL
168541 +enable_so__alloc_set_attr_list_fndecl_57932 _alloc_set_attr_list fndecl 4 57932 NULL
168542 +enable_so_memblock_set_current_limit_fndecl_57935 memblock_set_current_limit fndecl 1 57935 NULL
168543 +enable_so_event_heart_beat_read_fndecl_57938 event_heart_beat_read fndecl 3 57938 NULL
168544 +enable_so_nand_ecc_test_run_fndecl_57941 nand_ecc_test_run fndecl 1 57941 NULL
168545 +enable_so_ilf_size_xfs_inode_log_format_57942 ilf_size xfs_inode_log_format 0 57942 NULL
168546 +enable_so_vmci_handle_arr_create_fndecl_57944 vmci_handle_arr_create fndecl 1 57944 NULL
168547 +enable_so_eeprom_size_rt2x00_ops_57953 eeprom_size rt2x00_ops 0 57953 NULL
168548 +enable_so_logical_block_count_msb_data_57955 logical_block_count msb_data 0 57955 NULL
168549 +enable_so_i2c_read_fndecl_57956 i2c_read fndecl 0 57956 NULL
168550 +enable_so_ticket_len_rxkad_response_57960 ticket_len rxkad_response 0 57960 NULL
168551 +enable_so_filemap_check_errors_fndecl_57965 filemap_check_errors fndecl 0 57965 NULL
168552 +enable_so_mei_cl_alloc_cb_fndecl_57971 mei_cl_alloc_cb fndecl 2 57971 NULL
168553 +enable_so_sel_write_enforce_fndecl_57973 sel_write_enforce fndecl 3 57973 NULL
168554 +enable_so_rds_rm_size_fndecl_57975 rds_rm_size fndecl 0-2 57975 NULL
168555 +enable_so_hpfs_map_anode_fndecl_57993 hpfs_map_anode fndecl 2 57993 NULL
168556 +enable_so_faultin_page_fndecl_57994 faultin_page fndecl 3 57994 NULL
168557 +enable_so_perf_sample_ustack_size_fndecl_57995 perf_sample_ustack_size fndecl 0-2-1 57995 NULL
168558 +enable_so_max_idx_node_sz_ubifs_info_57997 max_idx_node_sz ubifs_info 0 57997 NULL
168559 +enable_so_SSIDlen_StatusRid_58002 SSIDlen StatusRid 0 58002 NULL nohasharray
168560 +enable_so_di_size_dinode_58002 di_size dinode 0 58002 &enable_so_SSIDlen_StatusRid_58002
168561 +enable_so_set_alt_usb_function_58003 set_alt usb_function 0 58003 NULL
168562 +enable_so_max_master_fs_adau1977_58013 max_master_fs adau1977 0 58013 NULL
168563 +enable_so_pvscsi_change_queue_depth_fndecl_58014 pvscsi_change_queue_depth fndecl 2 58014 NULL
168564 +enable_so_atl2_change_mtu_fndecl_58020 atl2_change_mtu fndecl 2 58020 NULL nohasharray
168565 +enable_so_wdata_prepare_pages_fndecl_58020 wdata_prepare_pages fndecl 0 58020 &enable_so_atl2_change_mtu_fndecl_58020
168566 +enable_so_xdr_buf_subsegment_fndecl_58027 xdr_buf_subsegment fndecl 4-3 58027 NULL
168567 +enable_so_xfs_extent_busy_reuse_fndecl_58034 xfs_extent_busy_reuse fndecl 4-3 58034 NULL
168568 +enable_so_rindex_sc18is602_58043 rindex sc18is602 0 58043 NULL nohasharray
168569 +enable_so_rtw_check_beacon_data23a_fndecl_58043 rtw_check_beacon_data23a fndecl 3 58043 &enable_so_rindex_sc18is602_58043
168570 +enable_so_len_mic_vring_58048 len mic_vring 0 58048 NULL nohasharray
168571 +enable_so_num_sqsets_csio_hw_58048 num_sqsets csio_hw 0 58048 &enable_so_len_mic_vring_58048
168572 +enable_so_acpi_gbl_integer_byte_width_vardecl_58054 acpi_gbl_integer_byte_width vardecl 0 58054 NULL
168573 +enable_so_cylinders_mspro_devinfo_58057 cylinders mspro_devinfo 0 58057 NULL
168574 +enable_so_buffer_size_octeon_droq_58063 buffer_size octeon_droq 0 58063 NULL nohasharray
168575 +enable_so_offset_m48t59_plat_data_58063 offset m48t59_plat_data 0 58063 &enable_so_buffer_size_octeon_droq_58063 nohasharray
168576 +enable_so_wpa_ie_len_hostap_bss_info_58063 wpa_ie_len hostap_bss_info 0 58063 &enable_so_offset_m48t59_plat_data_58063
168577 +enable_so_deflate_decompress_fndecl_58064 deflate_decompress fndecl 3 58064 NULL
168578 +enable_so_ath10k_htt_rx_nwifi_hdrlen_fndecl_58065 ath10k_htt_rx_nwifi_hdrlen fndecl 0 58065 NULL
168579 +enable_so_n_dma_bufs_vardecl_mcam_core_c_58067 n_dma_bufs vardecl_mcam-core.c 0 58067 NULL
168580 +enable_so_scsi_register_fndecl_58069 scsi_register fndecl 2 58069 NULL
168581 +enable_so_max_fast_reg_page_list_len_ib_device_attr_58072 max_fast_reg_page_list_len ib_device_attr 0 58072 NULL
168582 +enable_so_compat_do_readv_writev_fndecl_58077 compat_do_readv_writev fndecl 4 58077 NULL
168583 +enable_so_read_file_fndecl_58082 read_file fndecl 4 58082 NULL
168584 +enable_so_qib_user_sdma_pin_pages_fndecl_58083 qib_user_sdma_pin_pages fndecl 5-4 58083 NULL nohasharray
168585 +enable_so_netxen_setup_msi_interrupts_fndecl_58083 netxen_setup_msi_interrupts fndecl 2 58083 &enable_so_qib_user_sdma_pin_pages_fndecl_58083 nohasharray
168586 +enable_so_pt_read_fndecl_58083 pt_read fndecl 3 58083 &enable_so_netxen_setup_msi_interrupts_fndecl_58083
168587 +enable_so_buffer_count_drm_i915_gem_execbuffer2_58084 buffer_count drm_i915_gem_execbuffer2 0 58084 NULL
168588 +enable_so_nentries_xpc_registration_58085 nentries xpc_registration 0 58085 NULL
168589 +enable_so_next_bofs_irlap_cb_58088 next_bofs irlap_cb 0 58088 NULL
168590 +enable_so_chipsize_onenand_chip_58089 chipsize onenand_chip 0 58089 NULL
168591 +enable_so_p9_client_zc_rpc_fndecl_58092 p9_client_zc_rpc fndecl 7 58092 NULL nohasharray
168592 +enable_so_atyfb_setup_generic_fndecl_58092 atyfb_setup_generic fndecl 3 58092 &enable_so_p9_client_zc_rpc_fndecl_58092
168593 +enable_so_floppy_end_request_fndecl_58094 floppy_end_request fndecl 2 58094 NULL
168594 +enable_so_done_scsi_driver_58095 done scsi_driver 0 58095 NULL
168595 +enable_so_fifo_load_s3c_hsotg_ep_58096 fifo_load s3c_hsotg_ep 0 58096 NULL
168596 +enable_so_ll_max_cached_mb_seq_write_fndecl_58097 ll_max_cached_mb_seq_write fndecl 3 58097 NULL
168597 +enable_so_button_num_ad714x_platform_data_58098 button_num ad714x_platform_data 0 58098 NULL
168598 +enable_so_walk_pmd_range_fndecl_58100 walk_pmd_range fndecl 0 58100 NULL
168599 +enable_so_lf_next_gfs2_leaf_58104 lf_next gfs2_leaf 0 58104 NULL
168600 +enable_so_head_p9_rdir_58110 head p9_rdir 0 58110 NULL
168601 +enable_so_usb_stor_ctrl_transfer_fndecl_58117 usb_stor_ctrl_transfer fndecl 8-2 58117 NULL
168602 +enable_so_ore_get_rw_state_fndecl_58120 ore_get_rw_state fndecl 4-5 58120 NULL
168603 +enable_so_nvkm_disp_new__fndecl_58125 nvkm_disp_new_ fndecl 4 58125 NULL
168604 +enable_so_sys_setgroups_fndecl_58127 sys_setgroups fndecl 1 58127 NULL nohasharray
168605 +enable_so_sm501_create_subdev_fndecl_58127 sm501_create_subdev fndecl 4-3 58127 &enable_so_sys_setgroups_fndecl_58127 nohasharray
168606 +enable_so_mlx4_en_hwtstamp_set_fndecl_58127 mlx4_en_hwtstamp_set fndecl 0 58127 &enable_so_sm501_create_subdev_fndecl_58127
168607 +enable_so_bufsize_vardecl_subpagetest_c_58128 bufsize vardecl_subpagetest.c 0 58128 NULL
168608 +enable_so_l_pn_lbuf_58130 l_pn lbuf 0 58130 NULL nohasharray
168609 +enable_so_do_ip_vs_set_ctl_fndecl_58130 do_ip_vs_set_ctl fndecl 4 58130 &enable_so_l_pn_lbuf_58130
168610 +enable_so_n_bitrates_ieee80211_supported_band_58136 n_bitrates ieee80211_supported_band 0 58136 NULL nohasharray
168611 +enable_so_ll_rw_extents_stats_pp_seq_write_fndecl_58136 ll_rw_extents_stats_pp_seq_write fndecl 3 58136 &enable_so_n_bitrates_ieee80211_supported_band_58136
168612 +enable_so_nvif_object_init_fndecl_58137 nvif_object_init fndecl 5 58137 NULL
168613 +enable_so_mtd_read_fndecl_58140 mtd_read fndecl 0 58140 NULL
168614 +enable_so_pci_alloc_child_bus_fndecl_58142 pci_alloc_child_bus fndecl 3 58142 NULL
168615 +enable_so_packet_recvmsg_fndecl_58143 packet_recvmsg fndecl 3 58143 NULL
168616 +enable_so_hr_block_bytes_o2hb_region_58145 hr_block_bytes o2hb_region 0 58145 NULL
168617 +enable_so_security_inode_setattr_fndecl_58146 security_inode_setattr fndecl 0 58146 NULL nohasharray
168618 +enable_so_nroutes_mc5_params_58146 nroutes mc5_params 0 58146 &enable_so_security_inode_setattr_fndecl_58146
168619 +enable_so_sci_init_single_fndecl_58149 sci_init_single fndecl 3 58149 NULL
168620 +enable_so_i_clusters_ocfs2_dinode_58151 i_clusters ocfs2_dinode 0 58151 NULL
168621 +enable_so_altera_drscan_fndecl_58153 altera_drscan fndecl 2 58153 NULL
168622 +enable_so_rx_status_rx_desc_58154 rx_status rx_desc 0 58154 NULL
168623 +enable_so_f2fs_mpage_readpages_fndecl_58161 f2fs_mpage_readpages fndecl 4 58161 NULL nohasharray
168624 +enable_so_size_drm_i915_gem_pwrite_58161 size drm_i915_gem_pwrite 0 58161 &enable_so_f2fs_mpage_readpages_fndecl_58161
168625 +enable_so_l2cap_build_cmd_fndecl_58167 l2cap_build_cmd fndecl 4 58167 NULL
168626 +enable_so_init_size_rw_module_58168 init_size_rw module 0 58168 NULL
168627 +enable_so_head_len_beacon_data_58173 head_len beacon_data 0 58173 NULL
168628 +enable_so_num_clips_drm_vmw_present_readback_arg_58182 num_clips drm_vmw_present_readback_arg 0 58182 NULL
168629 +enable_so_total_num_uuars_mlx5_ib_alloc_ucontext_req_v2_58191 total_num_uuars mlx5_ib_alloc_ucontext_req_v2 0 58191 NULL
168630 +enable_so_virtfn_remove_fndecl_58193 virtfn_remove fndecl 2 58193 NULL
168631 +enable_so_npages_ttm_page_pool_58200 npages ttm_page_pool 0 58200 NULL
168632 +enable_so_lpfc_idiag_drbacc_write_fndecl_58203 lpfc_idiag_drbacc_write fndecl 3 58203 NULL
168633 +enable_so_o2net_init_msg_fndecl_58204 o2net_init_msg fndecl 2 58204 NULL nohasharray
168634 +enable_so_SyS_lgetxattr_fndecl_58204 SyS_lgetxattr fndecl 4 58204 &enable_so_o2net_init_msg_fndecl_58204
168635 +enable_so_maxOutstanding_AdapterControlBlock_58208 maxOutstanding AdapterControlBlock 0 58208 NULL
168636 +enable_so_rx_pipe_at76_priv_58217 rx_pipe at76_priv 0 58217 NULL
168637 +enable_so_size_skb_frag_struct_58222 size skb_frag_struct 0 58222 NULL
168638 +enable_so_xfs_attr_set_fndecl_58225 xfs_attr_set fndecl 4 58225 NULL
168639 +enable_so_ubifs_jnl_write_data_fndecl_58229 ubifs_jnl_write_data fndecl 5 58229 NULL
168640 +enable_so_ath6kl_regwrite_read_fndecl_58232 ath6kl_regwrite_read fndecl 3 58232 NULL
168641 +enable_so_ath6kl_usb_bmi_read_fndecl_58234 ath6kl_usb_bmi_read fndecl 3 58234 NULL
168642 +enable_so_len_on_bd_bnx2x_agg_info_58236 len_on_bd bnx2x_agg_info 0 58236 NULL
168643 +enable_so_i915_displayport_test_active_write_fndecl_58241 i915_displayport_test_active_write fndecl 3 58241 NULL
168644 +enable_so_num_rx_queues_fm10k_intfc_58243 num_rx_queues fm10k_intfc 0 58243 NULL
168645 +enable_so_font_backup_height_sisusb_usb_data_58247 font_backup_height sisusb_usb_data 0 58247 NULL
168646 +enable_so_ies_len_cfg80211_ft_event_params_58259 ies_len cfg80211_ft_event_params 0 58259 NULL
168647 +enable_so_gpiod_count_fndecl_58262 gpiod_count fndecl 0 58262 NULL
168648 +enable_so_l2cap_segment_sdu_fndecl_58263 l2cap_segment_sdu fndecl 4 58263 NULL
168649 +enable_so_cb710_mmc_transfer_data_fndecl_58265 cb710_mmc_transfer_data fndecl 0 58265 NULL
168650 +enable_so_file_size_fnode_58268 file_size fnode 0 58268 NULL
168651 +enable_so_em28xx_set_video_format_fndecl_58273 em28xx_set_video_format fndecl 3-4 58273 NULL
168652 +enable_so_tcp_push_one_fndecl_58275 tcp_push_one fndecl 2 58275 NULL nohasharray
168653 +enable_so_pages_in_block_msb_data_58275 pages_in_block msb_data 0 58275 &enable_so_tcp_push_one_fndecl_58275
168654 +enable_so_iso_size_usbtv_58278 iso_size usbtv 0 58278 NULL
168655 +enable_so_vmw_fifo_reserve_dx_fndecl_58283 vmw_fifo_reserve_dx fndecl 2 58283 NULL
168656 +enable_so_lib80211_michael_mic_add_fndecl_58285 lib80211_michael_mic_add fndecl 2 58285 NULL
168657 +enable_so_tx_desc_count_i40evf_adapter_58286 tx_desc_count i40evf_adapter 0 58286 NULL
168658 +enable_so_v9fs_fid_xattr_set_fndecl_58288 v9fs_fid_xattr_set fndecl 4 58288 NULL nohasharray
168659 +enable_so_unique_len_drm_unique_58288 unique_len drm_unique 0 58288 &enable_so_v9fs_fid_xattr_set_fndecl_58288
168660 +enable_so_il3945_sta_dbgfs_stats_table_read_fndecl_58289 il3945_sta_dbgfs_stats_table_read fndecl 3 58289 NULL
168661 +enable_so_adfs_map_lookup_fndecl_58299 adfs_map_lookup fndecl 0-3 58299 NULL
168662 +enable_so_y2_drm_clip_rect_58302 y2 drm_clip_rect 0 58302 NULL
168663 +enable_so_buffer_size_snd_pcm_runtime_58304 buffer_size snd_pcm_runtime 0 58304 NULL
168664 +enable_so_CountHigh_smb_com_write_rsp_58306 CountHigh smb_com_write_rsp 0 58306 NULL
168665 +enable_so_protocol_iphdr_58316 protocol iphdr 0 58316 NULL
168666 +enable_so_adau1977_set_tdm_slot_fndecl_58318 adau1977_set_tdm_slot fndecl 4-5 58318 NULL
168667 +enable_so_vc_do_resize_fndecl_58329 vc_do_resize fndecl 3-4 58329 NULL nohasharray
168668 +enable_so_num_tx_ethoc_58329 num_tx ethoc 0 58329 &enable_so_vc_do_resize_fndecl_58329
168669 +enable_so_sys_setgroups16_fndecl_58337 sys_setgroups16 fndecl 1 58337 NULL
168670 +enable_so_smp_handler_sas_function_template_58339 smp_handler sas_function_template 0 58339 NULL
168671 +enable_so_nlmon_change_mtu_fndecl_58340 nlmon_change_mtu fndecl 2 58340 NULL nohasharray
168672 +enable_so_start_crypt_config_58340 start crypt_config 0 58340 &enable_so_nlmon_change_mtu_fndecl_58340
168673 +enable_so_s2io_change_mtu_fndecl_58344 s2io_change_mtu fndecl 2 58344 NULL
168674 +enable_so_ext2_alloc_branch_fndecl_58346 ext2_alloc_branch fndecl 4 58346 NULL
168675 +enable_so_actions_len_sw_flow_actions_58353 actions_len sw_flow_actions 0 58353 NULL
168676 +enable_so_viafb_dvp1_proc_write_fndecl_58355 viafb_dvp1_proc_write fndecl 3 58355 NULL
168677 +enable_so_xgmac_change_mtu_fndecl_58357 xgmac_change_mtu fndecl 2 58357 NULL nohasharray
168678 +enable_so_mms114_read_reg_fndecl_58357 mms114_read_reg fndecl 0 58357 &enable_so_xgmac_change_mtu_fndecl_58357
168679 +enable_so___ffs_ep0_read_events_fndecl_58359 __ffs_ep0_read_events fndecl 3 58359 NULL
168680 +enable_so_length_qib_swqe_58364 length qib_swqe 0 58364 NULL
168681 +enable_so_add_regulator_fndecl_58367 add_regulator fndecl 1 58367 NULL
168682 +enable_so_tun_recvmsg_fndecl_58372 tun_recvmsg fndecl 3 58372 NULL
168683 +enable_so_ingr_start_sge_58376 ingr_start sge 0 58376 NULL
168684 +enable_so_esas2r_log_hexdump_fndecl_58381 esas2r_log_hexdump fndecl 3 58381 NULL
168685 +enable_so_dma_contiguous_reserve_fndecl_58386 dma_contiguous_reserve fndecl 1 58386 NULL
168686 +enable_so_max_resource_constraint_58388 max resource_constraint 0 58388 NULL
168687 +enable_so_kvm_arch_create_memslot_fndecl_58391 kvm_arch_create_memslot fndecl 3 58391 NULL
168688 +enable_so_window_vardecl_tcp_cdg_c_58396 window vardecl_tcp_cdg.c 0 58396 NULL
168689 +enable_so_hci_prepare_cmd_fndecl_58399 hci_prepare_cmd fndecl 3 58399 NULL
168690 +enable_so_ip_vs_sync_buff_create_v0_fndecl_58401 ip_vs_sync_buff_create_v0 fndecl 2 58401 NULL
168691 +enable_so_sta_vht_capa_read_fndecl_58402 sta_vht_capa_read fndecl 3 58402 NULL
168692 +enable_so_lbs_wrrf_write_fndecl_58409 lbs_wrrf_write fndecl 3 58409 NULL
168693 +enable_so_remove_raw_fndecl_58413 remove_raw fndecl 4 58413 NULL
168694 +enable_so_vzalloc_fndecl_58414 vzalloc fndecl 1 58414 NULL nohasharray
168695 +enable_so_offset_snd_util_memblk_58414 offset snd_util_memblk 0 58414 &enable_so_vzalloc_fndecl_58414 nohasharray
168696 +enable_so_bufsize_vardecl_tcp_probe_c_58414 bufsize vardecl_tcp_probe.c 0 58414 &enable_so_offset_snd_util_memblk_58414
168697 +enable_so_skip_to_level_assoc_array_shortcut_58418 skip_to_level assoc_array_shortcut 0 58418 NULL
168698 +enable_so_channels__isdn_driver_58419 channels _isdn_driver 0 58419 NULL
168699 +enable_so_gfn_to_pfn_prot_fndecl_58421 gfn_to_pfn_prot fndecl 2 58421 NULL
168700 +enable_so_align4k_qib_devdata_58424 align4k qib_devdata 0 58424 NULL
168701 +enable_so_walk_pte_range_fndecl_58425 walk_pte_range fndecl 0 58425 NULL
168702 +enable_so_lbs_wrmac_write_fndecl_58427 lbs_wrmac_write fndecl 3 58427 NULL
168703 +enable_so_sys32_ftruncate64_fndecl_58429 sys32_ftruncate64 fndecl 2-3 58429 NULL
168704 +enable_so_SiS_GetReg_fndecl_58436 SiS_GetReg fndecl 0 58436 NULL
168705 +enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438 exynos3250_jpeg_get_subsampling_mode fndecl 0 58438 NULL nohasharray
168706 +enable_so_deflate_compress_fndecl_58438 deflate_compress fndecl 3 58438 &enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438
168707 +enable_so_environ_read_fndecl_58440 environ_read fndecl 3 58440 NULL
168708 +enable_so_params1_mlx5_qp_context_58441 params1 mlx5_qp_context 0 58441 NULL
168709 +enable_so_nr_pages_fuse_fill_data_58443 nr_pages fuse_fill_data 0 58443 NULL
168710 +enable_so_num_vhost_virtqueue_58446 num vhost_virtqueue 0 58446 NULL nohasharray
168711 +enable_so_len_ethtool_test_58446 len ethtool_test 0 58446 &enable_so_num_vhost_virtqueue_58446
168712 +enable_so_val_bytes_snd_soc_component_58447 val_bytes snd_soc_component 0 58447 NULL nohasharray
168713 +enable_so_set_cpu_key_k_offset_fndecl_58447 set_cpu_key_k_offset fndecl 2 58447 &enable_so_val_bytes_snd_soc_component_58447
168714 +enable_so_f_adc_msi2500_dev_58451 f_adc msi2500_dev 0 58451 NULL
168715 +enable_so_fwlen_mpt_fw_xfer32_58453 fwlen mpt_fw_xfer32 0 58453 NULL
168716 +enable_so_di_anextents_xfs_icdinode_58455 di_anextents xfs_icdinode 0 58455 NULL
168717 +enable_so_caif_seqpkt_sendmsg_fndecl_58458 caif_seqpkt_sendmsg fndecl 3 58458 NULL
168718 +enable_so_NumProtectionFields_cfi_pri_intelext_58461 NumProtectionFields cfi_pri_intelext 0 58461 NULL
168719 +enable_so_btrfs_clone_fndecl_58462 btrfs_clone fndecl 5-3-6 58462 NULL
168720 +enable_so_ebcnt_vardecl_torturetest_c_58475 ebcnt vardecl_torturetest.c 0 58475 NULL
168721 +enable_so_newpart_fndecl_58478 newpart fndecl 6-4 58478 NULL
168722 +enable_so_nbchan_capidrv_contr_58481 nbchan capidrv_contr 0 58481 NULL
168723 +enable_so_highest_ino_jffs2_sb_info_58485 highest_ino jffs2_sb_info 0 58485 NULL
168724 +enable_so_C_SYSC_set_mempolicy_fndecl_58489 C_SYSC_set_mempolicy fndecl 3 58489 NULL
168725 +enable_so_try_lock_extent_fndecl_58490 try_lock_extent fndecl 3-2 58490 NULL nohasharray
168726 +enable_so_r2tq_size_cnic_local_58490 r2tq_size cnic_local 0 58490 &enable_so_try_lock_extent_fndecl_58490
168727 +enable_so_set_console_size_fndecl_58495 set_console_size fndecl 3-2 58495 NULL
168728 +enable_so_unlink_simple_fndecl_58497 unlink_simple fndecl 3-2 58497 NULL nohasharray
168729 +enable_so_unit_minor_sound_unit_58497 unit_minor sound_unit 0 58497 &enable_so_unlink_simple_fndecl_58497
168730 +enable_so_alloc_arraycache_fndecl_58498 alloc_arraycache fndecl 2 58498 NULL
168731 +enable_so_pstore_decompress_fndecl_58501 pstore_decompress fndecl 0-3-4 58501 NULL
168732 +enable_so_max_segment_size_device_dma_parameters_58507 max_segment_size device_dma_parameters 0 58507 NULL
168733 +enable_so_ec_i2c_count_response_fndecl_58509 ec_i2c_count_response fndecl 0 58509 NULL
168734 +enable_so_mcp23s17_read_regs_fndecl_58512 mcp23s17_read_regs fndecl 4 58512 NULL nohasharray
168735 +enable_so_phys_in_snd_efw_58512 phys_in snd_efw 0 58512 &enable_so_mcp23s17_read_regs_fndecl_58512
168736 +enable_so_pixel_stride_ivtv_osd_coords_58513 pixel_stride ivtv_osd_coords 0 58513 NULL
168737 +enable_so_pmsg_size_ramoops_platform_data_58514 pmsg_size ramoops_platform_data 0 58514 NULL
168738 +enable_so___frontswap_curr_pages_fndecl_58517 __frontswap_curr_pages fndecl 0 58517 NULL nohasharray
168739 +enable_so_brcmf_vndr_ie_fndecl_58517 brcmf_vndr_ie fndecl 0-4 58517 &enable_so___frontswap_curr_pages_fndecl_58517 nohasharray
168740 +enable_so_core_sys_select_fndecl_58517 core_sys_select fndecl 1 58517 &enable_so_brcmf_vndr_ie_fndecl_58517
168741 +enable_so_sco_sock_alloc_fndecl_58518 sco_sock_alloc fndecl 3 58518 NULL
168742 +enable_so_read_block_for_search_fndecl_58525 read_block_for_search fndecl 0 58525 NULL
168743 +enable_so_rx_frag_size_bnx2x_fastpath_58531 rx_frag_size bnx2x_fastpath 0 58531 NULL
168744 +enable_so_cfpkt_split_fndecl_58534 cfpkt_split fndecl 2 58534 NULL
168745 +enable_so_remote_qpn_cm_id_private_58535 remote_qpn cm_id_private 0 58535 NULL
168746 +enable_so_leb_read_sanity_check_fndecl_58540 leb_read_sanity_check fndecl 0 58540 NULL nohasharray
168747 +enable_so_drbg_statelen_fndecl_58540 drbg_statelen fndecl 0 58540 &enable_so_leb_read_sanity_check_fndecl_58540
168748 +enable_so_populate_vma_page_range_fndecl_58544 populate_vma_page_range fndecl 2-0 58544 NULL
168749 +enable_so_volinit_CHIPDESC_58545 volinit CHIPDESC 0 58545 NULL
168750 +enable_so_ddata_ofsl_cyttsp4_sysinfo_data_58549 ddata_ofsl cyttsp4_sysinfo_data 0 58549 NULL
168751 +enable_so_usb_hcd_alloc_bandwidth_fndecl_58550 usb_hcd_alloc_bandwidth fndecl 0 58550 NULL
168752 +enable_so_size_vram_area_58552 size vram_area 0 58552 NULL
168753 +enable_so_xfs_inobt_insert_fndecl_58558 xfs_inobt_insert fndecl 4 58558 NULL nohasharray
168754 +enable_so_process_vm_rw_fndecl_58558 process_vm_rw fndecl 3-5 58558 &enable_so_xfs_inobt_insert_fndecl_58558
168755 +enable_so_read_ldt_fndecl_58561 read_ldt fndecl 2 58561 NULL
168756 +enable_so_pci_iomap_fndecl_58564 pci_iomap fndecl 3 58564 NULL
168757 +enable_so_qib_copy_from_sge_fndecl_58565 qib_copy_from_sge fndecl 3 58565 NULL
168758 +enable_so_isku_sysfs_read_last_set_fndecl_58567 isku_sysfs_read_last_set fndecl 6 58567 NULL
168759 +enable_so_gsmld_output_fndecl_58570 gsmld_output fndecl 3 58570 NULL
168760 +enable_so_llc_shdlc_init_fndecl_58573 llc_shdlc_init fndecl 4 58573 NULL nohasharray
168761 +enable_so_index_vardecl_intel8x0m_c_58573 index vardecl_intel8x0m.c 0 58573 &enable_so_llc_shdlc_init_fndecl_58573
168762 +enable_so_acpi_gpio_package_count_fndecl_58585 acpi_gpio_package_count fndecl 0 58585 NULL
168763 +enable_so_sysctl_tcp_reordering_vardecl_58592 sysctl_tcp_reordering vardecl 0 58592 NULL
168764 +enable_so_ext4_kvzalloc_fndecl_58598 ext4_kvzalloc fndecl 1 58598 NULL
168765 +enable_so_aoe_maxsectors_vardecl_aoeblk_c_58600 aoe_maxsectors vardecl_aoeblk.c 0 58600 NULL
168766 +enable_so_sctp_ssnmap_new_fndecl_58603 sctp_ssnmap_new fndecl 1-2 58603 NULL
168767 +enable_so_cache_read_pipefs_fndecl_58604 cache_read_pipefs fndecl 3 58604 NULL
168768 +enable_so_rd_count_ring_descr_hw_58616 rd_count ring_descr_hw 0 58616 NULL nohasharray
168769 +enable_so_thermal_tx_resume_read_fndecl_58616 thermal_tx_resume_read fndecl 3 58616 &enable_so_rd_count_ring_descr_hw_58616
168770 +enable_so_mousedev_read_fndecl_58624 mousedev_read fndecl 3 58624 NULL
168771 +enable_so_wusb_key_dump_fndecl_58627 wusb_key_dump fndecl 2 58627 NULL nohasharray
168772 +enable_so___erst_write_to_storage_fndecl_58627 __erst_write_to_storage fndecl 1 58627 &enable_so_wusb_key_dump_fndecl_58627
168773 +enable_so_epp_pages_short_ptlrpc_enc_page_pool_58628 epp_pages_short ptlrpc_enc_page_pool 0 58628 NULL
168774 +enable_so_dccps_gss_dccp_sock_58634 dccps_gss dccp_sock 0 58634 NULL
168775 +enable_so_layout_mdu_array_info_s_58636 layout mdu_array_info_s 0 58636 NULL nohasharray
168776 +enable_so_ext4_ext_handle_unwritten_extents_fndecl_58636 ext4_ext_handle_unwritten_extents fndecl 7-0-6 58636 &enable_so_layout_mdu_array_info_s_58636
168777 +enable_so_pgbase_nfs4_readdir_arg_58643 pgbase nfs4_readdir_arg 0 58643 NULL nohasharray
168778 +enable_so_offset_qib_mregion_58643 offset qib_mregion 0 58643 &enable_so_pgbase_nfs4_readdir_arg_58643
168779 +enable_so_report_id_hid_global_58647 report_id hid_global 0 58647 NULL
168780 +enable_so_page10_len_ses_device_58648 page10_len ses_device 0 58648 NULL
168781 +enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656 mwifiex_alloc_dma_align_buf fndecl 1 58656 NULL nohasharray
168782 +enable_so_highest_bit_swap_info_struct_58656 highest_bit swap_info_struct 0 58656 &enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656
168783 +enable_so_mxms_headerlen_fndecl_58666 mxms_headerlen fndecl 0 58666 NULL
168784 +enable_so_rx_rx_rts_timeout_read_fndecl_58667 rx_rx_rts_timeout_read fndecl 3 58667 NULL
168785 +enable_so_rs_sta_dbgfs_rate_scale_data_read_fndecl_58670 rs_sta_dbgfs_rate_scale_data_read fndecl 3 58670 NULL
168786 +enable_so_max_key_len_hfs_btree_58671 max_key_len hfs_btree 0 58671 NULL
168787 +enable_so_sb_inopblog_xfs_sb_58672 sb_inopblog xfs_sb 0 58672 NULL
168788 +enable_so_s_dirblksize_ufs_sb_private_info_58675 s_dirblksize ufs_sb_private_info 0 58675 NULL
168789 +enable_so_ses_recv_diag_fndecl_58676 ses_recv_diag fndecl 4 58676 NULL nohasharray
168790 +enable_so_acpi_ut_initialize_buffer_fndecl_58676 acpi_ut_initialize_buffer fndecl 2 58676 &enable_so_ses_recv_diag_fndecl_58676
168791 +enable_so_s_partition_size_affs_sb_info_58677 s_partition_size affs_sb_info 0 58677 NULL
168792 +enable_so_sctp_get_port_fndecl_58684 sctp_get_port fndecl 2 58684 NULL
168793 +enable_so_ramoops_ftrace_size_vardecl_ram_c_58686 ramoops_ftrace_size vardecl_ram.c 0 58686 NULL
168794 +enable_so_max_response_len_sg_io_v4_58687 max_response_len sg_io_v4 0 58687 NULL
168795 +enable_so_subdirs_ceph_mds_reply_inode_58689 subdirs ceph_mds_reply_inode 0 58689 NULL
168796 +enable_so_ioremap_cache_fndecl_58694 ioremap_cache fndecl 2-1 58694 NULL
168797 +enable_so_rx_dma_len_efx_nic_58695 rx_dma_len efx_nic 0 58695 NULL
168798 +enable_so_s5k5baf_read_fndecl_58696 s5k5baf_read fndecl 0 58696 NULL
168799 +enable_so_root_ino_f2fs_super_block_58700 root_ino f2fs_super_block 0 58700 NULL
168800 +enable_so_wdt87xx_get_desc_fndecl_58707 wdt87xx_get_desc fndecl 4 58707 NULL
168801 +enable_so_fw_emem_len_rt_firmware_58718 fw_emem_len rt_firmware 0 58718 NULL nohasharray
168802 +enable_so_btrfs_del_inode_ref_fndecl_58718 btrfs_del_inode_ref fndecl 4 58718 &enable_so_fw_emem_len_rt_firmware_58718 nohasharray
168803 +enable_so_svc_pool_map_alloc_arrays_fndecl_58718 svc_pool_map_alloc_arrays fndecl 2-0 58718 &enable_so_btrfs_del_inode_ref_fndecl_58718
168804 +enable_so_valid_chaoskey_58736 valid chaoskey 0 58736 NULL
168805 +enable_so_Residue_bulk_cs_wrap_58746 Residue bulk_cs_wrap 0 58746 NULL
168806 +enable_so_imaxpct_xfs_growfs_data_58747 imaxpct xfs_growfs_data 0 58747 NULL
168807 +enable_so___rds_create_fndecl_58751 __rds_create fndecl 3 58751 NULL
168808 +enable_so_skb_copy_datagram_from_iter_fndecl_58758 skb_copy_datagram_from_iter fndecl 4-2 58758 NULL nohasharray
168809 +enable_so_portcntrs_1_read_fndecl_58758 portcntrs_1_read fndecl 3 58758 &enable_so_skb_copy_datagram_from_iter_fndecl_58758
168810 +enable_so_ocfs2_xattr_free_block_fndecl_58767 ocfs2_xattr_free_block fndecl 2 58767 NULL
168811 +enable_so_port_fops_splice_write_fndecl_58771 port_fops_splice_write fndecl 4 58771 NULL
168812 +enable_so_snd_ctl_enum_info_fndecl_58778 snd_ctl_enum_info fndecl 2 58778 NULL
168813 +enable_so_bi_bvec_done_bvec_iter_58781 bi_bvec_done bvec_iter 0 58781 NULL nohasharray
168814 +enable_so_ucNumEntries__ATOM_PPLIB_PhaseSheddingLimits_Table_58781 ucNumEntries _ATOM_PPLIB_PhaseSheddingLimits_Table 0 58781 &enable_so_bi_bvec_done_bvec_iter_58781
168815 +enable_so_get_formats_soc_camera_host_ops_58784 get_formats soc_camera_host_ops 0 58784 NULL
168816 +enable_so_meta_ino_f2fs_super_block_58785 meta_ino f2fs_super_block 0 58785 NULL nohasharray
168817 +enable_so_off1_xad_58785 off1 xad 0 58785 &enable_so_meta_ino_f2fs_super_block_58785
168818 +enable_so_gfs2_readpages_fndecl_58790 gfs2_readpages fndecl 4 58790 NULL
168819 +enable_so_at24_macc_read_fndecl_58791 at24_macc_read fndecl 4 58791 NULL
168820 +enable_so_vsnprintf_fndecl_58792 vsnprintf fndecl 0 58792 NULL
168821 +enable_so_mppe_decompress_fndecl_58795 mppe_decompress fndecl 3 58795 NULL
168822 +enable_so_blkbits_dio_submit_58797 blkbits dio_submit 0 58797 NULL
168823 +enable_so_wNumRPipes_usb_wa_descriptor_58804 wNumRPipes usb_wa_descriptor 0 58804 NULL
168824 +enable_so_snd_pcm_hw_constraint_minmax_fndecl_58816 snd_pcm_hw_constraint_minmax fndecl 4-3 58816 NULL
168825 +enable_so_data_size_iser_page_vec_58817 data_size iser_page_vec 0 58817 NULL
168826 +enable_so_slen_snap_58819 slen snap 0 58819 NULL
168827 +enable_so_num_counters_op_x86_model_spec_58827 num_counters op_x86_model_spec 0 58827 NULL
168828 +enable_so_set_db_page_mthca_create_cq_58830 set_db_page mthca_create_cq 0 58830 NULL nohasharray
168829 +enable_so_al_stripe_size_4k_meta_data_on_disk_58830 al_stripe_size_4k meta_data_on_disk 0 58830 &enable_so_set_db_page_mthca_create_cq_58830
168830 +enable_so_f2fs_replace_block_fndecl_58838 f2fs_replace_block fndecl 4 58838 NULL
168831 +enable_so_tx_internal_desc_overflow_read_fndecl_58839 tx_internal_desc_overflow_read fndecl 3 58839 NULL
168832 +enable_so_virtqueue_add_fndecl_58841 virtqueue_add fndecl 3 58841 NULL
168833 +enable_so_nr_scratch_dwc3_58852 nr_scratch dwc3 0 58852 NULL
168834 +enable_so_ms_lib_read_extrablock_fndecl_58857 ms_lib_read_extrablock fndecl 4 58857 NULL
168835 +enable_so_exofs_iget_fndecl_58862 exofs_iget fndecl 2 58862 NULL
168836 +enable_so_ieee80211_if_read_dot11MeshHoldingTimeout_fndecl_58863 ieee80211_if_read_dot11MeshHoldingTimeout fndecl 3 58863 NULL
168837 +enable_so_vid_batadv_softif_vlan_58864 vid batadv_softif_vlan 0 58864 NULL
168838 +enable_so_channel_num_sudmac_pdata_58865 channel_num sudmac_pdata 0 58865 NULL
168839 +enable_so_uvc_ctrl_add_info_fndecl_58870 uvc_ctrl_add_info fndecl 0 58870 NULL
168840 +enable_so_hfp_ast_vbios_enhtable_58872 hfp ast_vbios_enhtable 0 58872 NULL
168841 +enable_so_gbuffers_vardecl_bttv_driver_c_58873 gbuffers vardecl_bttv-driver.c 0 58873 NULL
168842 +enable_so_xm_wmfw_adsp2_alg_hdr_58884 xm wmfw_adsp2_alg_hdr 0 58884 NULL
168843 +enable_so_rx_buf_sz_fe_priv_58888 rx_buf_sz fe_priv 0 58888 NULL
168844 +enable_so_max_xfer_nd_cmd_get_config_size_58894 max_xfer nd_cmd_get_config_size 0 58894 NULL
168845 +enable_so_usb_stor_bulk_transfer_sg_fndecl_58896 usb_stor_bulk_transfer_sg fndecl 4-2-5 58896 NULL
168846 +enable_so_size__iohandle_58897 size _iohandle 0 58897 NULL
168847 +enable_so_v9fs_file_fsync_fndecl_58898 v9fs_file_fsync fndecl 2-3 58898 NULL
168848 +enable_so_vhci_read_fndecl_58901 vhci_read fndecl 3 58901 NULL
168849 +enable_so_mwifiex_write_data_sync_fndecl_58903 mwifiex_write_data_sync fndecl 3 58903 NULL nohasharray
168850 +enable_so_xfs_nfs_get_inode_fndecl_58903 xfs_nfs_get_inode fndecl 2 58903 &enable_so_mwifiex_write_data_sync_fndecl_58903
168851 +enable_so_rpos_p9_conn_58910 rpos p9_conn 0 58910 NULL
168852 +enable_so_cmodio_setup_subdevice_fndecl_58913 cmodio_setup_subdevice fndecl 4 58913 NULL
168853 +enable_so_comedi_write_fndecl_58917 comedi_write fndecl 3 58917 NULL
168854 +enable_so_befs_bread_fndecl_58922 befs_bread fndecl 2 58922 NULL
168855 +enable_so_rfcomm_sock_alloc_fndecl_58926 rfcomm_sock_alloc fndecl 3 58926 NULL nohasharray
168856 +enable_so_parent_block_isofs_fid_58926 parent_block isofs_fid 0 58926 &enable_so_rfcomm_sock_alloc_fndecl_58926
168857 +enable_so_fore200e_pca_dma_chunk_alloc_fndecl_58927 fore200e_pca_dma_chunk_alloc fndecl 4-3 58927 NULL
168858 +enable_so_osd_req_read_sg_fndecl_58930 osd_req_read_sg fndecl 5 58930 NULL
168859 +enable_so_send_reply_chunks_fndecl_58933 send_reply_chunks fndecl 0 58933 NULL
168860 +enable_so_leaf_item_bottle_fndecl_58937 leaf_item_bottle fndecl 5 58937 NULL
168861 +enable_so_cfs_percpt_alloc_fndecl_58941 cfs_percpt_alloc fndecl 2 58941 NULL
168862 +enable_so_lpe_base_sst_pdata_58946 lpe_base sst_pdata 0 58946 NULL
168863 +enable_so_num_req_rx_rings_bnx2_58949 num_req_rx_rings bnx2 0 58949 NULL
168864 +enable_so_size_drm_nouveau_gem_info_58954 size drm_nouveau_gem_info 0 58954 NULL
168865 +enable_so__ext4_get_block_fndecl_58959 _ext4_get_block fndecl 2 58959 NULL
168866 +enable_so_query_len_tomoyo_query_58960 query_len tomoyo_query 0 58960 NULL
168867 +enable_so_mq_flush_data_end_io_fndecl_58961 mq_flush_data_end_io fndecl 2 58961 NULL
168868 +enable_so_integrity_alg_len_net_conf_58973 integrity_alg_len net_conf 0 58973 NULL
168869 +enable_so_adjust_managed_page_count_fndecl_58974 adjust_managed_page_count fndecl 2 58974 NULL
168870 +enable_so_pglen_nfs4_layoutdriver_data_58977 pglen nfs4_layoutdriver_data 0 58977 NULL nohasharray
168871 +enable_so_info0_rx_msdu_start_common_58977 info0 rx_msdu_start_common 0 58977 &enable_so_pglen_nfs4_layoutdriver_data_58977
168872 +enable_so_nent_mthca_eq_58979 nent mthca_eq 0 58979 NULL
168873 +enable_so_len_extent_buffer_58980 len extent_buffer 0 58980 NULL nohasharray
168874 +enable_so_ptk_icvlen_iwl_mvm_58980 ptk_icvlen iwl_mvm 0 58980 &enable_so_len_extent_buffer_58980
168875 +enable_so_sg_miter_skip_fndecl_58982 sg_miter_skip fndecl 2 58982 NULL
168876 +enable_so_len_cont_58983 len cont 0 58983 NULL
168877 +enable_so_megasas_mgmt_ioctl_fw_fndecl_58984 megasas_mgmt_ioctl_fw fndecl 0 58984 NULL
168878 +enable_so_ib_umad_write_fndecl_58986 ib_umad_write fndecl 3 58986 NULL
168879 +enable_so___tda18271_write_regs_fndecl_58989 __tda18271_write_regs fndecl 3 58989 NULL nohasharray
168880 +enable_so_index_ldtentry_58989 index ldtentry 0 58989 &enable_so___tda18271_write_regs_fndecl_58989
168881 +enable_so_nfs4_proc_get_acl_fndecl_58998 nfs4_proc_get_acl fndecl 3 58998 NULL
168882 +enable_so_trace_max_pages_vardecl_59000 trace_max_pages vardecl 0 59000 NULL
168883 +enable_so_private_value_snd_kcontrol_59001 private_value snd_kcontrol 0 59001 NULL
168884 +enable_so_iwl_dbgfs_ucode_tracing_read_fndecl_59004 iwl_dbgfs_ucode_tracing_read fndecl 3 59004 NULL
168885 +enable_so_wa_urb_dequeue_fndecl_59008 wa_urb_dequeue fndecl 3 59008 NULL
168886 +enable_so_numextents_efs_inode_info_59009 numextents efs_inode_info 0 59009 NULL
168887 +enable_so_amdgpu_vram_location_fndecl_59010 amdgpu_vram_location fndecl 3 59010 NULL
168888 +enable_so___kvm_read_guest_atomic_fndecl_59011 __kvm_read_guest_atomic fndecl 2-5 59011 NULL
168889 +enable_so_dccpsl_nr_dccp_service_list_59022 dccpsl_nr dccp_service_list 0 59022 NULL
168890 +enable_so_lustre_cfg_len_fndecl_59025 lustre_cfg_len fndecl 0 59025 NULL
168891 +enable_so_frag_max_size_inet_skb_parm_59029 frag_max_size inet_skb_parm 0 59029 NULL
168892 +enable_so_frags_len_lro_59030 frags_len lro 0 59030 NULL
168893 +enable_so_nclips_saa7146_overlay_59032 nclips saa7146_overlay 0 59032 NULL
168894 +enable_so_in_epnum_usb_gadget_59033 in_epnum usb_gadget 0 59033 NULL
168895 +enable_so_max_inbound_frames__i2o_status_block_59034 max_inbound_frames _i2o_status_block 0 59034 NULL
168896 +enable_so_iwl_mvm_fw_dbg_collect_fndecl_59043 iwl_mvm_fw_dbg_collect fndecl 4 59043 NULL
168897 +enable_so_head_inbuf_t_59044 head inbuf_t 0 59044 NULL
168898 +enable_so_len_nand_bbt_descr_59045 len nand_bbt_descr 0 59045 NULL
168899 +enable_so_ref_node_alsz_ubifs_info_59046 ref_node_alsz ubifs_info 0 59046 NULL
168900 +enable_so_data0_myri10ge_cmd_59049 data0 myri10ge_cmd 0 59049 NULL
168901 +enable_so_max_block_docg3_59051 max_block docg3 0 59051 NULL nohasharray
168902 +enable_so_aligned_pep_sock_59051 aligned pep_sock 0 59051 &enable_so_max_block_docg3_59051
168903 +enable_so_posix_acl_alloc_fndecl_59052 posix_acl_alloc fndecl 1 59052 NULL nohasharray
168904 +enable_so_nr_strip_zones_r0conf_59052 nr_strip_zones r0conf 0 59052 &enable_so_posix_acl_alloc_fndecl_59052
168905 +enable_so_len_ar5523_rx_desc_59055 len ar5523_rx_desc 0 59055 NULL
168906 +enable_so_s_block_count_reiserfs_super_block_v1_59058 s_block_count reiserfs_super_block_v1 0 59058 NULL
168907 +enable_so_mpeglinesize_vardecl_cx231xx_417_c_59059 mpeglinesize vardecl_cx231xx-417.c 0 59059 NULL
168908 +enable_so_sys32_pread_fndecl_59062 sys32_pread fndecl 3 59062 NULL
168909 +enable_so_piobufbase_qib_devdata_59067 piobufbase qib_devdata 0 59067 NULL
168910 +enable_so_axi_dmac_prep_slave_sg_fndecl_59073 axi_dmac_prep_slave_sg fndecl 3 59073 NULL
168911 +enable_so_vlan_id_ib_ah_attr_59074 vlan_id ib_ah_attr 0 59074 NULL
168912 +enable_so_bmv_offset_getbmapx_59079 bmv_offset getbmapx 0 59079 NULL
168913 +enable_so_buffer_mousedev_client_59098 buffer mousedev_client 0 59098 NULL
168914 +enable_so_rcvidx_hscx_hw_59100 rcvidx hscx_hw 0 59100 NULL
168915 +enable_so_ctrl_dma_ims_pcu_59106 ctrl_dma ims_pcu 0 59106 NULL
168916 +enable_so_out_wm8994_fll_config_59112 out wm8994_fll_config 0 59112 NULL
168917 +enable_so_remap_and_issue_shared_cell_fndecl_59114 remap_and_issue_shared_cell fndecl 3 59114 NULL
168918 +enable_so_wm_latency_write_fndecl_59118 wm_latency_write fndecl 3 59118 NULL
168919 +enable_so_sec_per_clus_fat_floppy_defaults_59119 sec_per_clus fat_floppy_defaults 0 59119 NULL
168920 +enable_so_mmc_alloc_host_fndecl_59122 mmc_alloc_host fndecl 1 59122 NULL
168921 +enable_so_width_em28xx_v4l2_59127 width em28xx_v4l2 0 59127 NULL nohasharray
168922 +enable_so_xfs_read_agi_fndecl_59127 xfs_read_agi fndecl 3 59127 &enable_so_width_em28xx_v4l2_59127
168923 +enable_so_bitrate_ieee80211_rate_59130 bitrate ieee80211_rate 0 59130 NULL
168924 +enable_so_wrt_pass_cntr_os_partition_s_59135 wrt_pass_cntr os_partition_s 0 59135 NULL
168925 +enable_so_retry_count_cm_id_private_59136 retry_count cm_id_private 0 59136 NULL nohasharray
168926 +enable_so_do_sys_ftruncate_fndecl_59136 do_sys_ftruncate fndecl 2 59136 &enable_so_retry_count_cm_id_private_59136
168927 +enable_so_tx_count__synclinkmp_info_59147 tx_count _synclinkmp_info 0 59147 NULL
168928 +enable_so_h_vlan_TCI_vlan_hdr_59149 h_vlan_TCI vlan_hdr 0 59149 NULL
168929 +enable_so_rx_data_ep_usb_card_rec_59150 rx_data_ep usb_card_rec 0 59150 NULL
168930 +enable_so_get_desc_rtl_hal_ops_59151 get_desc rtl_hal_ops 0 59151 NULL
168931 +enable_so_blk_mq_complete_request_fndecl_59157 blk_mq_complete_request fndecl 2 59157 NULL
168932 +enable_so_free_low_memory_core_early_fndecl_59160 free_low_memory_core_early fndecl 0 59160 NULL
168933 +enable_so_log_buf_len_vardecl_printk_c_59170 log_buf_len vardecl_printk.c 0 59170 NULL
168934 +enable_so_address_length_acpi_resource_io_59176 address_length acpi_resource_io 0 59176 NULL
168935 +enable_so_read_mii_bus_59181 read mii_bus 0 59181 NULL
168936 +enable_so_av_buf_ackno_dccp_ackvec_59183 av_buf_ackno dccp_ackvec 0 59183 NULL
168937 +enable_so_comps_used_iser_device_59187 comps_used iser_device 0 59187 NULL
168938 +enable_so_img_height_zoran_jpg_settings_59188 img_height zoran_jpg_settings 0 59188 NULL
168939 +enable_so_isl12022_read_regs_fndecl_59190 isl12022_read_regs fndecl 4 59190 NULL
168940 +enable_so_vtag_rx_pkt_status_59191 vtag rx_pkt_status 0 59191 NULL
168941 +enable_so_cdc_ncm_check_rx_max_fndecl_59192 cdc_ncm_check_rx_max fndecl 0-2 59192 NULL
168942 +enable_so_gr_learn_resource_fndecl_59200 gr_learn_resource fndecl 3 59200 NULL
168943 +enable_so_ms_os_descs_ext_prop_name_len_ffs_data_59205 ms_os_descs_ext_prop_name_len ffs_data 0 59205 NULL
168944 +enable_so_s_bmap_bits_affs_sb_info_59206 s_bmap_bits affs_sb_info 0 59206 NULL
168945 +enable_so_fat_sector_size_fat_bios_param_block_59207 fat_sector_size fat_bios_param_block 0 59207 NULL nohasharray
168946 +enable_so_nblocks_nilfs_segsum_info_59207 nblocks nilfs_segsum_info 0 59207 &enable_so_fat_sector_size_fat_bios_param_block_59207
168947 +enable_so_max_data_size_mpt2_ioctl_header_59209 max_data_size mpt2_ioctl_header 0 59209 NULL
168948 +enable_so_jade_empty_fifo_fndecl_59210 jade_empty_fifo fndecl 2 59210 NULL
168949 +enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211 usCRTC_H_SyncWidth _ATOM_MODE_TIMING 0 59211 NULL nohasharray
168950 +enable_so_wbits_inflate_state_59211 wbits inflate_state 0 59211 &enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211
168951 +enable_so_xfs_bmapi_trim_map_fndecl_59212 xfs_bmapi_trim_map fndecl 6 59212 NULL nohasharray
168952 +enable_so_mpdu_len_wcn36xx_pdu_59212 mpdu_len wcn36xx_pdu 0 59212 &enable_so_xfs_bmapi_trim_map_fndecl_59212
168953 +enable_so_cqe_size_mlx5_ib_create_cq_59213 cqe_size mlx5_ib_create_cq 0 59213 NULL
168954 +enable_so_lock_extent_direct_fndecl_59219 lock_extent_direct fndecl 3-2 59219 NULL
168955 +enable_so_fbmem_used_viafb_par_59221 fbmem_used viafb_par 0 59221 NULL nohasharray
168956 +enable_so_rtl8723b_parse_firmware_fndecl_59221 rtl8723b_parse_firmware fndecl 0 59221 &enable_so_fbmem_used_viafb_par_59221
168957 +enable_so_gprs_set_mtu_fndecl_59222 gprs_set_mtu fndecl 2 59222 NULL
168958 +enable_so_up_anode_59225 up anode 0 59225 NULL
168959 +enable_so_walk_page_test_fndecl_59232 walk_page_test fndecl 0 59232 NULL
168960 +enable_so_sierra_net_skb_clone_fndecl_59236 sierra_net_skb_clone fndecl 3 59236 NULL
168961 +enable_so_nfs_direct_IO_fndecl_59238 nfs_direct_IO fndecl 3 59238 NULL nohasharray
168962 +enable_so_bits_to_user_fndecl_59238 bits_to_user fndecl 2-3-0 59238 &enable_so_nfs_direct_IO_fndecl_59238
168963 +enable_so_nr_segs_iov_iter_59239 nr_segs iov_iter 0 59239 NULL
168964 +enable_so_num_mbc_cfgs_wm8994_pdata_59240 num_mbc_cfgs wm8994_pdata 0 59240 NULL
168965 +enable_so_cxd2841er_i2c_debug_fndecl_59241 cxd2841er_i2c_debug fndecl 6 59241 NULL nohasharray
168966 +enable_so_carl9170_debugfs_read_fndecl_59241 carl9170_debugfs_read fndecl 3 59241 &enable_so_cxd2841er_i2c_debug_fndecl_59241
168967 +enable_so_nlp_maxframe_lpfc_nodelist_59242 nlp_maxframe lpfc_nodelist 0 59242 NULL
168968 +enable_so_req_it_iu_len_srp_login_req_59250 req_it_iu_len srp_login_req 0 59250 NULL
168969 +enable_so_save_microcode_fndecl_59254 save_microcode fndecl 3 59254 NULL
168970 +enable_so_rcvidx_hdlc_hw_59264 rcvidx hdlc_hw 0 59264 NULL nohasharray
168971 +enable_so_nilfs_sufile_get_offset_fndecl_59264 nilfs_sufile_get_offset fndecl 0-2 59264 &enable_so_rcvidx_hdlc_hw_59264
168972 +enable_so_indir_size_ethtool_rxfh_59267 indir_size ethtool_rxfh 0 59267 NULL
168973 +enable_so_h_lsn_xlog_rec_header_59275 h_lsn xlog_rec_header 0 59275 NULL
168974 +enable_so_bfad_iocmd_lport_reset_stats_fndecl_59279 bfad_iocmd_lport_reset_stats fndecl 0 59279 NULL nohasharray
168975 +enable_so_data_length_bnx2i_cmd_response_59279 data_length bnx2i_cmd_response 0 59279 &enable_so_bfad_iocmd_lport_reset_stats_fndecl_59279
168976 +enable_so_ir_prepare_write_buffer_fndecl_59280 ir_prepare_write_buffer fndecl 3 59280 NULL
168977 +enable_so_nentries_afs_dir_pagehdr_59283 nentries afs_dir_pagehdr 0 59283 NULL
168978 +enable_so_used_snd_array_59285 used snd_array 0 59285 NULL nohasharray
168979 +enable_so_mvumi_alloc_mem_resource_fndecl_59285 mvumi_alloc_mem_resource fndecl 3 59285 &enable_so_used_snd_array_59285
168980 +enable_so_written_coredump_params_59286 written coredump_params 0 59286 NULL
168981 +enable_so_alloc_sched_domains_fndecl_59295 alloc_sched_domains fndecl 1 59295 NULL
168982 +enable_so_posix_acl_fix_xattr_from_user_fndecl_59298 posix_acl_fix_xattr_from_user fndecl 2 59298 NULL
168983 +enable_so_sb_rootino_xfs_sb_59299 sb_rootino xfs_sb 0 59299 NULL nohasharray
168984 +enable_so_range_oid_t_59299 range oid_t 0 59299 &enable_so_sb_rootino_xfs_sb_59299
168985 +enable_so_jffs2_write_dnode_fndecl_59301 jffs2_write_dnode fndecl 5 59301 NULL
168986 +enable_so_next_segno_curseg_info_59302 next_segno curseg_info 0 59302 NULL
168987 +enable_so_stretch_width_usb_usbvision_59304 stretch_width usb_usbvision 0 59304 NULL
168988 +enable_so_RequestCredit_mpt2sas_facts_59309 RequestCredit mpt2sas_facts 0 59309 NULL
168989 +enable_so_W6692_empty_Bfifo_fndecl_59311 W6692_empty_Bfifo fndecl 2 59311 NULL
168990 +enable_so_frame_bytes_ua101_stream_59312 frame_bytes ua101_stream 0 59312 NULL
168991 +enable_so_befs_fblock2brun_fndecl_59313 befs_fblock2brun fndecl 3 59313 NULL
168992 +enable_so_qib_copy_sge_fndecl_59314 qib_copy_sge fndecl 3 59314 NULL
168993 +enable_so_pcpu_nr_units_vardecl_percpu_c_59323 pcpu_nr_units vardecl_percpu.c 0 59323 NULL
168994 +enable_so_nv_getlen_fndecl_59327 nv_getlen fndecl 0-3 59327 NULL
168995 +enable_so_i2c_inb_fndecl_59328 i2c_inb fndecl 0 59328 NULL
168996 +enable_so_read_file_spectral_bins_fndecl_59334 read_file_spectral_bins fndecl 3 59334 NULL
168997 +enable_so_pinconf_dbg_config_write_fndecl_59336 pinconf_dbg_config_write fndecl 3 59336 NULL
168998 +enable_so_stmmac_set_bfsize_fndecl_59337 stmmac_set_bfsize fndecl 0 59337 NULL
168999 +enable_so_raw_sendmsg_fndecl_59341 raw_sendmsg fndecl 3 59341 NULL
169000 +enable_so_affs_iget_fndecl_59342 affs_iget fndecl 2 59342 NULL
169001 +enable_so_mbox_size_sst_res_info_59343 mbox_size sst_res_info 0 59343 NULL
169002 +enable_so_ttymajor_vardecl_synclinkmp_c_59344 ttymajor vardecl_synclinkmp.c 0 59344 NULL
169003 +enable_so_lov_packmd_fndecl_59345 lov_packmd fndecl 0 59345 NULL
169004 +enable_so_offset_first_afs_writeback_59348 offset_first afs_writeback 0 59348 NULL
169005 +enable_so_rtl_cmd_width_vardecl_ibm_rtl_c_59349 rtl_cmd_width vardecl_ibm_rtl.c 0 59349 NULL
169006 +enable_so_size_s5p_jpeg_q_data_59350 size s5p_jpeg_q_data 0 59350 NULL
169007 +enable_so_vc_cols_vc_data_59351 vc_cols vc_data 0 59351 NULL
169008 +enable_so_mw_count_ntb_dev_ops_59352 mw_count ntb_dev_ops 0 59352 NULL
169009 +enable_so_vsync_end_drm_display_mode_59355 vsync_end drm_display_mode 0 59355 NULL nohasharray
169010 +enable_so_ov_start_sector_drbd_device_59355 ov_start_sector drbd_device 0 59355 &enable_so_vsync_end_drm_display_mode_59355
169011 +enable_so_hpfs_alloc_fnode_fndecl_59356 hpfs_alloc_fnode fndecl 2 59356 NULL nohasharray
169012 +enable_so_tree_mod_log_insert_move_fndecl_59356 tree_mod_log_insert_move fndecl 5 59356 &enable_so_hpfs_alloc_fnode_fndecl_59356
169013 +enable_so_omap_hsmmc_prepare_data_fndecl_59357 omap_hsmmc_prepare_data fndecl 0 59357 NULL
169014 +enable_so_base_tsn_sctp_tsnmap_59358 base_tsn sctp_tsnmap 0 59358 NULL
169015 +enable_so_ie_len_cfg80211_assoc_request_59359 ie_len cfg80211_assoc_request 0 59359 NULL
169016 +enable_so_sys_mmap_fndecl_59360 sys_mmap fndecl 2 59360 NULL
169017 +enable_so_ixgbe_change_mtu_fndecl_59370 ixgbe_change_mtu fndecl 2 59370 NULL nohasharray
169018 +enable_so_buf_len_i40e_arq_event_info_59370 buf_len i40e_arq_event_info 0 59370 &enable_so_ixgbe_change_mtu_fndecl_59370
169019 +enable_so_default_drvbuffer_scsi_tape_59374 default_drvbuffer scsi_tape 0 59374 NULL
169020 +enable_so_max_size_drm_vmw_get_3d_cap_arg_59378 max_size drm_vmw_get_3d_cap_arg 0 59378 NULL
169021 +enable_so_frag_point_sctp_association_59379 frag_point sctp_association 0 59379 NULL
169022 +enable_so_num_fcxp_reqs_bfa_iocfc_fwcfg_s_59383 num_fcxp_reqs bfa_iocfc_fwcfg_s 0 59383 NULL
169023 +enable_so_free_list_size_eni_dev_59386 free_list_size eni_dev 0 59386 NULL
169024 +enable_so_line_outs_auto_pin_cfg_59389 line_outs auto_pin_cfg 0 59389 NULL nohasharray
169025 +enable_so_tso_build_hdr_fndecl_59389 tso_build_hdr fndecl 4 59389 &enable_so_line_outs_auto_pin_cfg_59389
169026 +enable_so_iwl_dbgfs_chain_noise_read_fndecl_59392 iwl_dbgfs_chain_noise_read fndecl 3 59392 NULL
169027 +enable_so_batadv_iv_ogm_queue_add_fndecl_59398 batadv_iv_ogm_queue_add fndecl 3 59398 NULL nohasharray
169028 +enable_so_size_freelQ_59398 size freelQ 0 59398 &enable_so_batadv_iv_ogm_queue_add_fndecl_59398
169029 +enable_so_fm_size_ubi_device_59399 fm_size ubi_device 0 59399 NULL
169030 +enable_so_max_tx_channels_efx_nic_59400 max_tx_channels efx_nic 0 59400 NULL nohasharray
169031 +enable_so_smk_write_direct_fndecl_59400 smk_write_direct fndecl 3 59400 &enable_so_max_tx_channels_efx_nic_59400
169032 +enable_so_drm_legacy_addmap_fndecl_59402 drm_legacy_addmap fndecl 3-2 59402 NULL nohasharray
169033 +enable_so_type_trans_hdlc_proto_59402 type_trans hdlc_proto 0 59402 &enable_so_drm_legacy_addmap_fndecl_59402
169034 +enable_so_btrfs_lookup_bio_sums_fndecl_59404 btrfs_lookup_bio_sums fndecl 0 59404 NULL
169035 +enable_so_alloc_mad_private_fndecl_59408 alloc_mad_private fndecl 1 59408 NULL
169036 +enable_so_elem_size_bpf_htab_59409 elem_size bpf_htab 0 59409 NULL
169037 +enable_so_secure_dccpv6_sequence_number_fndecl_59410 secure_dccpv6_sequence_number fndecl 0 59410 NULL
169038 +enable_so_optlen_xfrm_mode_skb_cb_59411 optlen xfrm_mode_skb_cb 0 59411 NULL
169039 +enable_so_fotg210_urb_dequeue_fndecl_59414 fotg210_urb_dequeue fndecl 3 59414 NULL nohasharray
169040 +enable_so_num_vfs_ixgbe_adapter_59414 num_vfs ixgbe_adapter 0 59414 &enable_so_fotg210_urb_dequeue_fndecl_59414
169041 +enable_so_desc_elems_timb_dma_chan_59416 desc_elems timb_dma_chan 0 59416 NULL
169042 +enable_so_start_crash_mem_range_59421 start crash_mem_range 0 59421 NULL
169043 +enable_so_vma_adjust_fndecl_59429 vma_adjust fndecl 3-4-2 59429 NULL nohasharray
169044 +enable_so_ext2_xattr_user_set_fndecl_59429 ext2_xattr_user_set fndecl 4 59429 &enable_so_vma_adjust_fndecl_59429
169045 +enable_so_mmap_ureg_fndecl_59431 mmap_ureg fndecl 3 59431 NULL
169046 +enable_so_s_checkpoint_size_nilfs_super_block_59433 s_checkpoint_size nilfs_super_block 0 59433 NULL
169047 +enable_so_nilfs_cpfile_block_get_checkpoint_fndecl_59441 nilfs_cpfile_block_get_checkpoint fndecl 2 59441 NULL
169048 +enable_so_offset_ipfrag_skb_cb_59445 offset ipfrag_skb_cb 0 59445 NULL
169049 +enable_so_z2_zt_59452 z2 zt 0 59452 NULL
169050 +enable_so_rng_get_data_fndecl_59453 rng_get_data fndecl 0 59453 NULL
169051 +enable_so_ubi_dump_flash_fndecl_59454 ubi_dump_flash fndecl 4 59454 NULL
169052 +enable_so_platform_gpio_count_fndecl_59459 platform_gpio_count fndecl 0 59459 NULL
169053 +enable_so_vmbus_sendpacket_pagebuffer_fndecl_59463 vmbus_sendpacket_pagebuffer fndecl 3-5 59463 NULL
169054 +enable_so_ath6kl_wmi_mcast_filter_cmd_fndecl_59465 ath6kl_wmi_mcast_filter_cmd fndecl 2 59465 NULL
169055 +enable_so_ttm_page_pool_get_pages_fndecl_59468 ttm_page_pool_get_pages fndecl 5-0 59468 NULL
169056 +enable_so__pmcraid_io_done_fndecl_59469 _pmcraid_io_done fndecl 2 59469 NULL
169057 +enable_so_common_ie_len_ieee80211_scan_ies_59478 common_ie_len ieee80211_scan_ies 0 59478 NULL
169058 +enable_so_phys_acpi_ioremap_59485 phys acpi_ioremap 0 59485 NULL
169059 +enable_so_i2c_hid_output_raw_report_fndecl_59486 i2c_hid_output_raw_report fndecl 3 59486 NULL
169060 +enable_so_length_acpi_pnp_device_id_59493 length acpi_pnp_device_id 0 59493 NULL
169061 +enable_so_vma_to_resize_fndecl_59495 vma_to_resize fndecl 2-3 59495 NULL
169062 +enable_so_rx_ringsz_alx_priv_59496 rx_ringsz alx_priv 0 59496 NULL
169063 +enable_so_src_addr_width_dma_slave_config_59497 src_addr_width dma_slave_config 0 59497 NULL nohasharray
169064 +enable_so_il_dbgfs_clear_traffic_stats_write_fndecl_59497 il_dbgfs_clear_traffic_stats_write fndecl 3 59497 &enable_so_src_addr_width_dma_slave_config_59497
169065 +enable_so_hd29l2_wr_regs_fndecl_59501 hd29l2_wr_regs fndecl 4 59501 NULL nohasharray
169066 +enable_so_pci_frontend_enable_msix_fndecl_59501 pci_frontend_enable_msix fndecl 3 59501 &enable_so_hd29l2_wr_regs_fndecl_59501
169067 +enable_so_lastbuf_for_pio_qib_chip_specific_59509 lastbuf_for_pio qib_chip_specific 0 59509 NULL
169068 +enable_so_wdata_alloc_and_fillpages_fndecl_59510 wdata_alloc_and_fillpages fndecl 1 59510 NULL
169069 +enable_so_rmtblkno2_xfs_da_args_59516 rmtblkno2 xfs_da_args 0 59516 NULL nohasharray
169070 +enable_so_cp210x_set_config_fndecl_59516 cp210x_set_config fndecl 4 59516 &enable_so_rmtblkno2_xfs_da_args_59516
169071 +enable_so_qlcnic_get_vnic_func_count_fndecl_59521 qlcnic_get_vnic_func_count fndecl 0 59521 NULL
169072 +enable_so_queue_length_vardecl_ua101_c_59524 queue_length vardecl_ua101.c 0 59524 NULL
169073 +enable_so_resultsize_vardecl_floppy_c_59525 resultsize vardecl_floppy.c 0 59525 NULL nohasharray
169074 +enable_so_limit_data_queue_59525 limit data_queue 0 59525 &enable_so_resultsize_vardecl_floppy_c_59525
169075 +enable_so_ocfs2_adjust_xattr_cross_cluster_fndecl_59528 ocfs2_adjust_xattr_cross_cluster fndecl 5-6 59528 NULL
169076 +enable_so_handle_ule_extensions_fndecl_59533 handle_ule_extensions fndecl 0 59533 NULL
169077 +enable_so_type_trans_fndecl_59541 type_trans fndecl 0 59541 NULL
169078 +enable_so_mmc_spi_writeblock_fndecl_59545 mmc_spi_writeblock fndecl 0 59545 NULL
169079 +enable_so___btrfs_map_block_fndecl_59552 __btrfs_map_block fndecl 0 59552 NULL
169080 +enable_so_snd_pcm_oss_format_from_fndecl_59553 snd_pcm_oss_format_from fndecl 0 59553 NULL nohasharray
169081 +enable_so_kmsg_read_fndecl_59553 kmsg_read fndecl 3 59553 &enable_so_snd_pcm_oss_format_from_fndecl_59553 nohasharray
169082 +enable_so_nouveau_drm_ioctl_fndecl_59553 nouveau_drm_ioctl fndecl 2 59553 &enable_so_kmsg_read_fndecl_59553
169083 +enable_so_pci_get_subsys_fndecl_59555 pci_get_subsys fndecl 2 59555 NULL nohasharray
169084 +enable_so_mthca_alloc_cq_buf_fndecl_59555 mthca_alloc_cq_buf fndecl 3 59555 &enable_so_pci_get_subsys_fndecl_59555
169085 +enable_so_num_stripes_btrfs_chunk_59557 num_stripes btrfs_chunk 0 59557 NULL
169086 +enable_so_nlm_end_grace_write_fndecl_59558 nlm_end_grace_write fndecl 3 59558 NULL
169087 +enable_so_rest_blocks_nilfs_write_info_59560 rest_blocks nilfs_write_info 0 59560 NULL
169088 +enable_so_chunk_size_disk_header_59563 chunk_size disk_header 0 59563 NULL
169089 +enable_so_bdx_rxdb_create_fndecl_59566 bdx_rxdb_create fndecl 1 59566 NULL
169090 +enable_so_sd_response_type_fndecl_59567 sd_response_type fndecl 0 59567 NULL
169091 +enable_so_fill_in_write_vector_fndecl_59569 fill_in_write_vector fndecl 0 59569 NULL nohasharray
169092 +enable_so_vringh_complete_multi_user_fndecl_59569 vringh_complete_multi_user fndecl 3 59569 &enable_so_fill_in_write_vector_fndecl_59569
169093 +enable_so_unmap_mapping_range_fndecl_59573 unmap_mapping_range fndecl 2-3 59573 NULL
169094 +enable_so_pin_code_reply_fndecl_59581 pin_code_reply fndecl 4 59581 NULL
169095 +enable_so_key_count_applesmc_registers_59587 key_count applesmc_registers 0 59587 NULL
169096 +enable_so_length_sctp_paramhdr_59588 length sctp_paramhdr 0 59588 NULL
169097 +enable_so_port_num_ib_umad_port_59589 port_num ib_umad_port 0 59589 NULL
169098 +enable_so_reserved_tags_blk_mq_tag_set_59594 reserved_tags blk_mq_tag_set 0 59594 NULL
169099 +enable_so_bMaxPacketSize0_usb_device_descriptor_59595 bMaxPacketSize0 usb_device_descriptor 0 59595 NULL
169100 +enable_so_size_amd76xrom_window_59596 size amd76xrom_window 0 59596 NULL nohasharray
169101 +enable_so_last_sgs_total_ore_per_dev_state_59596 last_sgs_total ore_per_dev_state 0 59596 &enable_so_size_amd76xrom_window_59596
169102 +enable_so_min_coredump_linux_binfmt_59604 min_coredump linux_binfmt 0 59604 NULL
169103 +enable_so_height_mxr_crop_59619 height mxr_crop 0 59619 NULL
169104 +enable_so_serverworks_create_gatt_pages_fndecl_59621 serverworks_create_gatt_pages fndecl 1 59621 NULL
169105 +enable_so_br_vlan_delete_fndecl_59631 br_vlan_delete fndecl 2 59631 NULL
169106 +enable_so_unmap_single_vma_fndecl_59634 unmap_single_vma fndecl 4-3 59634 NULL
169107 +enable_so_gpio_count_tle62x0_pdata_59637 gpio_count tle62x0_pdata 0 59637 NULL
169108 +enable_so_q_fileoffset_xfs_dquot_59638 q_fileoffset xfs_dquot 0 59638 NULL
169109 +enable_so_trf7970a_transmit_fndecl_59648 trf7970a_transmit fndecl 5-3 59648 NULL
169110 +enable_so_SSID_len_brcmf_pno_net_info_le_59653 SSID_len brcmf_pno_net_info_le 0 59653 NULL
169111 +enable_so_xfs_trim_extents_fndecl_59654 xfs_trim_extents fndecl 2 59654 NULL
169112 +enable_so_num_subchannels_nvsp_5_subchannel_complete_59660 num_subchannels nvsp_5_subchannel_complete 0 59660 NULL nohasharray
169113 +enable_so_il3945_ucode_general_stats_read_fndecl_59660 il3945_ucode_general_stats_read fndecl 3 59660 &enable_so_num_subchannels_nvsp_5_subchannel_complete_59660
169114 +enable_so_fat_free_clusters_fndecl_59665 fat_free_clusters fndecl 2 59665 NULL
169115 +enable_so_mgmt_remote_name_fndecl_59667 mgmt_remote_name fndecl 7 59667 NULL nohasharray
169116 +enable_so_amdgpu_kms_compat_ioctl_fndecl_59667 amdgpu_kms_compat_ioctl fndecl 2 59667 &enable_so_mgmt_remote_name_fndecl_59667
169117 +enable_so_ipmi_pci_probe_regspacing_fndecl_59668 ipmi_pci_probe_regspacing fndecl 0 59668 NULL nohasharray
169118 +enable_so_page_buf_cnt_hv_netvsc_packet_59668 page_buf_cnt hv_netvsc_packet 0 59668 &enable_so_ipmi_pci_probe_regspacing_fndecl_59668
169119 +enable_so_ms_read_bytes_fndecl_59672 ms_read_bytes fndecl 4-0 59672 NULL
169120 +enable_so_old_block_size_swap_info_struct_59674 old_block_size swap_info_struct 0 59674 NULL
169121 +enable_so_xprt_hlen_svc_deferred_req_59683 xprt_hlen svc_deferred_req 0 59683 NULL
169122 +enable_so_rtw_buf_update_fndecl_59689 rtw_buf_update fndecl 4 59689 NULL
169123 +enable_so_intel_fbc_setup_cfb_fndecl_59691 intel_fbc_setup_cfb fndecl 2 59691 NULL
169124 +enable_so_capacity_sddr55_card_info_59695 capacity sddr55_card_info 0 59695 NULL
169125 +enable_so_mlx4_ib_alloc_fast_reg_page_list_fndecl_59700 mlx4_ib_alloc_fast_reg_page_list fndecl 2 59700 NULL
169126 +enable_so_flt_region_bootload_ql82xx_hw_data_59701 flt_region_bootload ql82xx_hw_data 0 59701 NULL
169127 +enable_so_remote_qpn_mthca_qp_context_59707 remote_qpn mthca_qp_context 0 59707 NULL
169128 +enable_so_atalk_sendmsg_fndecl_59718 atalk_sendmsg fndecl 3 59718 NULL nohasharray
169129 +enable_so_aux_entry_sz_mlx4_dev_cap_59718 aux_entry_sz mlx4_dev_cap 0 59718 &enable_so_atalk_sendmsg_fndecl_59718
169130 +enable_so_dock_station_count_vardecl_dock_c_59728 dock_station_count vardecl_dock.c 0 59728 NULL
169131 +enable_so___walk_page_range_fndecl_59729 __walk_page_range fndecl 0 59729 NULL
169132 +enable_so_nilfs_btnode_create_block_fndecl_59734 nilfs_btnode_create_block fndecl 2 59734 NULL
169133 +enable_so_val_i2400m_pld_59735 val i2400m_pld 0 59735 NULL
169134 +enable_so_ddp_clear_map_fndecl_59739 ddp_clear_map fndecl 4 59739 NULL
169135 +enable_so_original_affs_tail_59741 original affs_tail 0 59741 NULL nohasharray
169136 +enable_so_offset_bts_phys_59741 offset bts_phys 0 59741 &enable_so_original_affs_tail_59741
169137 +enable_so_l_iclog_hsize_xlog_59743 l_iclog_hsize xlog 0 59743 NULL nohasharray
169138 +enable_so___netlink_change_ngroups_fndecl_59743 __netlink_change_ngroups fndecl 2 59743 &enable_so_l_iclog_hsize_xlog_59743
169139 +enable_so_ocfs2_read_dx_leaves_fndecl_59744 ocfs2_read_dx_leaves fndecl 2 59744 NULL nohasharray
169140 +enable_so_fq_resize_fndecl_59744 fq_resize fndecl 2 59744 &enable_so_ocfs2_read_dx_leaves_fndecl_59744
169141 +enable_so_nx_fw_cmd_set_phy_fndecl_59745 nx_fw_cmd_set_phy fndecl 3 59745 NULL
169142 +enable_so_mt_count_mtop_59746 mt_count mtop 0 59746 NULL
169143 +enable_so_xlog_write_calc_vec_length_fndecl_59749 xlog_write_calc_vec_length fndecl 0 59749 NULL
169144 +enable_so_request_size_afs_call_59750 request_size afs_call 0 59750 NULL nohasharray
169145 +enable_so_add_conn_list_fndecl_59750 add_conn_list fndecl 3 59750 &enable_so_request_size_afs_call_59750
169146 +enable_so_addr_phys_netup_dma_59759 addr_phys netup_dma 0 59759 NULL
169147 +enable_so_ib_mad_port_open_fndecl_59763 ib_mad_port_open fndecl 2 59763 NULL
169148 +enable_so_mtu_dst_ops_59765 mtu dst_ops 0 59765 NULL
169149 +enable_so_au_cslack_rpc_auth_59766 au_cslack rpc_auth 0 59766 NULL
169150 +enable_so__fdt_splice_mem_rsv_fndecl_59770 _fdt_splice_mem_rsv fndecl 3-4 59770 NULL
169151 +enable_so_vxge_os_dma_malloc_fndecl_59771 vxge_os_dma_malloc fndecl 2 59771 NULL
169152 +enable_so_tipc_msg_create_fndecl_59776 tipc_msg_create fndecl 4-3 59776 NULL
169153 +enable_so_tx_tx_cfe1_read_fndecl_59777 tx_tx_cfe1_read fndecl 3 59777 NULL
169154 +enable_so_osd_full_w_yuv_playback_info_59778 osd_full_w yuv_playback_info 0 59778 NULL
169155 +enable_so_reiserfs_new_symlink_fndecl_59783 reiserfs_new_symlink fndecl 6 59783 NULL nohasharray
169156 +enable_so_max_segments_queue_limits_59783 max_segments queue_limits 0 59783 &enable_so_reiserfs_new_symlink_fndecl_59783
169157 +enable_so_mlx4_buf_alloc_fndecl_59788 mlx4_buf_alloc fndecl 2 59788 NULL
169158 +enable_so_sdio_set_block_size_fndecl_59792 sdio_set_block_size fndecl 2 59792 NULL nohasharray
169159 +enable_so_dma_npages_rds_iw_scatterlist_59792 dma_npages rds_iw_scatterlist 0 59792 &enable_so_sdio_set_block_size_fndecl_59792
169160 +enable_so_bandlength_Timon_table_entry_59793 bandlength Timon_table_entry 0 59793 NULL nohasharray
169161 +enable_so_num_leds_lm3533_platform_data_59793 num_leds lm3533_platform_data 0 59793 &enable_so_bandlength_Timon_table_entry_59793
169162 +enable_so_tm6000_i2c_recv_regs_fndecl_59796 tm6000_i2c_recv_regs fndecl 5 59796 NULL
169163 +enable_so_length_lv_59797 length lv 0 59797 NULL
169164 +enable_so_i2400m_op_msg_from_user_fndecl_59798 i2400m_op_msg_from_user fndecl 4 59798 NULL
169165 +enable_so_NumPhys__CONFIG_PAGE_SAS_IO_UNIT_0_59799 NumPhys _CONFIG_PAGE_SAS_IO_UNIT_0 0 59799 NULL
169166 +enable_so_rcount_sixpack_59806 rcount sixpack 0 59806 NULL
169167 +enable_so_vcan_change_mtu_fndecl_59807 vcan_change_mtu fndecl 2 59807 NULL
169168 +enable_so_vmw_surface_gb_priv_define_fndecl_59811 vmw_surface_gb_priv_define fndecl 8 59811 NULL
169169 +enable_so_to_last_afs_writeback_59812 to_last afs_writeback 0 59812 NULL
169170 +enable_so_drbd_setup_queue_param_fndecl_59813 drbd_setup_queue_param fndecl 3 59813 NULL nohasharray
169171 +enable_so_setup_sgtable_fndecl_59813 setup_sgtable fndecl 4 59813 &enable_so_drbd_setup_queue_param_fndecl_59813
169172 +enable_so_frsz_gspca_dev_59816 frsz gspca_dev 0 59816 NULL
169173 +enable_so_nf_nat_ftp_fndecl_59818 nf_nat_ftp fndecl 6 59818 NULL
169174 +enable_so_num_entries_arpt_replace_59819 num_entries arpt_replace 0 59819 NULL
169175 +enable_so_numpstates_pst_s_59820 numpstates pst_s 0 59820 NULL
169176 +enable_so_xen_setup_msi_irqs_fndecl_59830 xen_setup_msi_irqs fndecl 2 59830 NULL
169177 +enable_so_length_inflate_state_59831 length inflate_state 0 59831 NULL
169178 +enable_so_dig_outs_auto_pin_cfg_59832 dig_outs auto_pin_cfg 0 59832 NULL
169179 +enable_so_mpi_read_raw_data_fndecl_59835 mpi_read_raw_data fndecl 2 59835 NULL
169180 +enable_so_plen_hci_command_hdr_59837 plen hci_command_hdr 0 59837 NULL
169181 +enable_so_dvb_net_init_fndecl_59840 dvb_net_init fndecl 0 59840 NULL
169182 +enable_so_max_len_xc2028_ctrl_59842 max_len xc2028_ctrl 0 59842 NULL
169183 +enable_so_tcp_sendmsg_fastopen_fndecl_59843 tcp_sendmsg_fastopen fndecl 4 59843 NULL
169184 +enable_so_f2fs_fill_dentries_fndecl_59844 f2fs_fill_dentries fndecl 3 59844 NULL
169185 +enable_so_status_mei_cl_cb_59845 status mei_cl_cb 0 59845 NULL
169186 +enable_so_sst_fill_byte_control_fndecl_59850 sst_fill_byte_control fndecl 6 59850 NULL
169187 +enable_so_acpi_rs_decode_bitmask_fndecl_59851 acpi_rs_decode_bitmask fndecl 0 59851 NULL
169188 +enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852 dce_v11_0_afmt_update_ACR fndecl 2 59852 NULL nohasharray
169189 +enable_so_pep_alloc_skb_fndecl_59852 pep_alloc_skb fndecl 3 59852 &enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852
169190 +enable_so_count_audit_chunk_59856 count audit_chunk 0 59856 NULL
169191 +enable_so_im_blkno_xfs_imap_59866 im_blkno xfs_imap 0 59866 NULL nohasharray
169192 +enable_so_length_pm8001_ioctl_payload_59866 length pm8001_ioctl_payload 0 59866 &enable_so_im_blkno_xfs_imap_59866
169193 +enable_so_arch_remove_memory_fndecl_59869 arch_remove_memory fndecl 2-1 59869 NULL
169194 +enable_so___process_changed_deleted_xattr_fndecl_59870 __process_changed_deleted_xattr fndecl 4 59870 NULL
169195 +enable_so_max_loop_vardecl_lloop_c_59872 max_loop vardecl_lloop.c 0 59872 NULL
169196 +enable_so_qlcnic_83xx_sysfs_flash_bulk_write_fndecl_59875 qlcnic_83xx_sysfs_flash_bulk_write fndecl 4 59875 NULL
169197 +enable_so_src_offset_btrfs_ioctl_clone_range_args_59876 src_offset btrfs_ioctl_clone_range_args 0 59876 NULL
169198 +enable_so_ide_scan_pio_blacklist_fndecl_59877 ide_scan_pio_blacklist fndecl 0 59877 NULL
169199 +enable_so_dx_fb_fillrect_59878 dx fb_fillrect 0 59878 NULL
169200 +enable_so___hwahc_dev_set_key_fndecl_59883 __hwahc_dev_set_key fndecl 5 59883 NULL
169201 +enable_so_vfs_allocated_count_igb_adapter_59900 vfs_allocated_count igb_adapter 0 59900 NULL
169202 +enable_so_mos7720_write_fndecl_59901 mos7720_write fndecl 4 59901 NULL nohasharray
169203 +enable_so_rxbuffersize_rtl_pci_59901 rxbuffersize rtl_pci 0 59901 &enable_so_mos7720_write_fndecl_59901
169204 +enable_so_num_gpio_wm831x_59907 num_gpio wm831x 0 59907 NULL
169205 +enable_so_x86_set_memory_region_fndecl_59911 x86_set_memory_region fndecl 4 59911 NULL
169206 +enable_so_wheel_num_ad714x_platform_data_59912 wheel_num ad714x_platform_data 0 59912 NULL
169207 +enable_so_qp_memcpy_from_queue_iov_fndecl_59913 qp_memcpy_from_queue_iov fndecl 5-4 59913 NULL
169208 +enable_so_rvmalloc_fndecl_59914 rvmalloc fndecl 1 59914 NULL
169209 +enable_so_video_endp_usb_usbvision_59918 video_endp usb_usbvision 0 59918 NULL
169210 +enable_so_nr_virtfn_bnx2x_sriov_59919 nr_virtfn bnx2x_sriov 0 59919 NULL nohasharray
169211 +enable_so_lov_iocontrol_fndecl_59919 lov_iocontrol fndecl 3 59919 &enable_so_nr_virtfn_bnx2x_sriov_59919
169212 +enable_so_wOverTheAirPacketSize_usb_wireless_ep_comp_descriptor_59926 wOverTheAirPacketSize usb_wireless_ep_comp_descriptor 0 59926 NULL
169213 +enable_so_n_user_regset_59935 n user_regset 0 59935 NULL nohasharray
169214 +enable_so_bfad_iocmd_vport_get_attr_fndecl_59935 bfad_iocmd_vport_get_attr fndecl 0 59935 &enable_so_n_user_regset_59935
169215 +enable_so_maximum_acpi_address32_attribute_59936 maximum acpi_address32_attribute 0 59936 NULL
169216 +enable_so_blk_queue_max_write_same_sectors_fndecl_59954 blk_queue_max_write_same_sectors fndecl 2 59954 NULL
169217 +enable_so_bpl_cx25821_buffer_59964 bpl cx25821_buffer 0 59964 NULL nohasharray
169218 +enable_so_ixgbe_dbg_reg_ops_write_fndecl_59964 ixgbe_dbg_reg_ops_write fndecl 3 59964 &enable_so_bpl_cx25821_buffer_59964
169219 +enable_so_pull_to_netfront_cb_59965 pull_to netfront_cb 0 59965 NULL
169220 +enable_so_acpi_os_create_cache_fndecl_59968 acpi_os_create_cache fndecl 2 59968 NULL
169221 +enable_so_mwifiex_set_wapi_ie_fndecl_59972 mwifiex_set_wapi_ie fndecl 3 59972 NULL
169222 +enable_so_calc_line_length_fndecl_59973 calc_line_length fndecl 0-3-2 59973 NULL
169223 +enable_so_fuse_file_fallocate_fndecl_59983 fuse_file_fallocate fndecl 3-4 59983 NULL nohasharray
169224 +enable_so_scrub_pages_fndecl_59983 scrub_pages fndecl 3-2-11-4 59983 &enable_so_fuse_file_fallocate_fndecl_59983
169225 +enable_so_wlcore_alloc_hw_fndecl_59990 wlcore_alloc_hw fndecl 1-3 59990 NULL
169226 +enable_so_affs_write_begin_ofs_fndecl_59991 affs_write_begin_ofs fndecl 3 59991 NULL
169227 +enable_so_real_stripes_btrfs_raid_bio_59993 real_stripes btrfs_raid_bio 0 59993 NULL
169228 +enable_so_count_drm_buf_desc_59998 count drm_buf_desc 0 59998 NULL
169229 +enable_so_fb_write_fndecl_59999 fb_write fndecl 3 59999 NULL
169230 +enable_so_size_fuse_arg_60001 size fuse_arg 0 60001 NULL
169231 +enable_so_SYSC_poll_fndecl_60006 SYSC_poll fndecl 2 60006 NULL
169232 +enable_so___find_resource_fndecl_60011 __find_resource fndecl 4 60011 NULL
169233 +enable_so_len_ubifs_ch_60014 len ubifs_ch 0 60014 NULL
169234 +enable_so_skb_priority_pktgen_dev_60015 skb_priority pktgen_dev 0 60015 NULL nohasharray
169235 +enable_so_prlo_len_fc_els_prlo_60015 prlo_len fc_els_prlo 0 60015 &enable_so_skb_priority_pktgen_dev_60015
169236 +enable_so_portnum_usb_device_60022 portnum usb_device 0 60022 NULL nohasharray
169237 +enable_so___sctp_setsockopt_connectx_fndecl_60022 __sctp_setsockopt_connectx fndecl 3 60022 &enable_so_portnum_usb_device_60022
169238 +enable_so_ntfs_truncate_fndecl_60026 ntfs_truncate fndecl 0 60026 NULL nohasharray
169239 +enable_so_qla4xxx_post_aen_work_fndecl_60026 qla4xxx_post_aen_work fndecl 3 60026 &enable_so_ntfs_truncate_fndecl_60026
169240 +enable_so_alloc_in_bmp_fndecl_60028 alloc_in_bmp fndecl 0-4-3-2 60028 NULL
169241 +enable_so_calculate_alignment_fndecl_60029 calculate_alignment fndecl 0-2 60029 NULL nohasharray
169242 +enable_so_coda_fsync_fndecl_60029 coda_fsync fndecl 2-3 60029 &enable_so_calculate_alignment_fndecl_60029
169243 +enable_so_write_tx_buf_fndecl_60032 write_tx_buf fndecl 4 60032 NULL
169244 +enable_so_print_bad_pte_fndecl_60036 print_bad_pte fndecl 2 60036 NULL
169245 +enable_so_hdrlen_ip_auth_hdr_60037 hdrlen ip_auth_hdr 0 60037 NULL
169246 +enable_so_sel_write_bool_fndecl_60039 sel_write_bool fndecl 3 60039 NULL
169247 +enable_so_MaxMSIxVectors_mpt3sas_facts_60045 MaxMSIxVectors mpt3sas_facts 0 60045 NULL
169248 +enable_so_blk_rq_map_kern_fndecl_60047 blk_rq_map_kern fndecl 4 60047 NULL
169249 +enable_so_mgmt_pending_add_fndecl_60051 mgmt_pending_add fndecl 5 60051 NULL
169250 +enable_so_drm_atomic_helper_update_plane_fndecl_60059 drm_atomic_helper_update_plane fndecl 6-7 60059 NULL
169251 +enable_so_user_set_fndecl_60060 user_set fndecl 4 60060 NULL
169252 +enable_so_cx231xx_init_bulk_fndecl_60067 cx231xx_init_bulk fndecl 4-2-3 60067 NULL
169253 +enable_so_level_ubifs_znode_60069 level ubifs_znode 0 60069 NULL
169254 +enable_so_lpfc_hba_queue_depth_vardecl_lpfc_attr_c_60071 lpfc_hba_queue_depth vardecl_lpfc_attr.c 0 60071 NULL
169255 +enable_so_hpi_outstream_host_buffer_allocate_fndecl_60074 hpi_outstream_host_buffer_allocate fndecl 2 60074 NULL
169256 +enable_so_debugfs_create_u32_array_fndecl_60082 debugfs_create_u32_array fndecl 5 60082 NULL
169257 +enable_so_dram_offset_sst_res_info_60089 dram_offset sst_res_info 0 60089 NULL
169258 +enable_so_f2fs_issue_discard_fndecl_60090 f2fs_issue_discard fndecl 3-2 60090 NULL
169259 +enable_so_persistent_gnts_c_blkfront_info_60091 persistent_gnts_c blkfront_info 0 60091 NULL
169260 +enable_so_udpv6_sendmsg_fndecl_60103 udpv6_sendmsg fndecl 3 60103 NULL
169261 +enable_so_sample_rate_min_lola_60104 sample_rate_min lola 0 60104 NULL nohasharray
169262 +enable_so_event_trigger_regex_write_fndecl_60104 event_trigger_regex_write fndecl 3 60104 &enable_so_sample_rate_min_lola_60104
169263 +enable_so_vxfs_iget_fndecl_60105 vxfs_iget fndecl 2 60105 NULL
169264 +enable_so_ufs_new_fragments_fndecl_60109 ufs_new_fragments fndecl 4-5-3 60109 NULL
169265 +enable_so_tegra_slink_start_rx_dma_fndecl_60111 tegra_slink_start_rx_dma fndecl 2 60111 NULL
169266 +enable_so_raid10_find_virt_fndecl_60115 raid10_find_virt fndecl 0-3-2 60115 NULL nohasharray
169267 +enable_so_num_tx_bnad_60115 num_tx bnad 0 60115 &enable_so_raid10_find_virt_fndecl_60115
169268 +enable_so_display_height_vivid_dev_60116 display_height vivid_dev 0 60116 NULL
169269 +enable_so_ht_ast_vbios_enhtable_60121 ht ast_vbios_enhtable 0 60121 NULL
169270 +enable_so_vga_vram_end_vardecl_vgacon_c_60130 vga_vram_end vardecl_vgacon.c 0 60130 NULL nohasharray
169271 +enable_so_iwl_dump_nic_event_log_fndecl_60130 iwl_dump_nic_event_log fndecl 0 60130 &enable_so_vga_vram_end_vardecl_vgacon_c_60130
169272 +enable_so_fb_base_drm_mode_config_60135 fb_base drm_mode_config 0 60135 NULL
169273 +enable_so_external_rate_fndecl_60138 external_rate fndecl 0 60138 NULL
169274 +enable_so_pci_xr17c154_setup_fndecl_60140 pci_xr17c154_setup fndecl 4 60140 NULL
169275 +enable_so_data_len_ib_ucm_event_60142 data_len ib_ucm_event 0 60142 NULL
169276 +enable_so_scalar_len_ccp_ecc_point_math_60144 scalar_len ccp_ecc_point_math 0 60144 NULL
169277 +enable_so_index_drm_minor_60149 index drm_minor 0 60149 NULL
169278 +enable_so_pipeline_dec_packet_in_read_fndecl_60151 pipeline_dec_packet_in_read fndecl 3 60151 NULL
169279 +enable_so_skb_checksum_setup_ip_fndecl_60154 skb_checksum_setup_ip fndecl 3 60154 NULL
169280 +enable_so_pvid_net_port_vlans_60155 pvid net_port_vlans 0 60155 NULL
169281 +enable_so_dt_mem_next_cell_fndecl_60162 dt_mem_next_cell fndecl 0 60162 NULL
169282 +enable_so_drm_fb_helper_initial_config_fndecl_60163 drm_fb_helper_initial_config fndecl 2 60163 NULL nohasharray
169283 +enable_so_smem_start_fb_fix_screeninfo_60163 smem_start fb_fix_screeninfo 0 60163 &enable_so_drm_fb_helper_initial_config_fndecl_60163
169284 +enable_so_num_pages_mlx5_eqe_page_req_60166 num_pages mlx5_eqe_page_req 0 60166 NULL nohasharray
169285 +enable_so_stream_start_fndecl_60166 stream_start fndecl 0 60166 &enable_so_num_pages_mlx5_eqe_page_req_60166
169286 +enable_so_wm8962_set_fll_fndecl_60167 wm8962_set_fll fndecl 4-5 60167 NULL
169287 +enable_so_vscnprintf_fndecl_60170 vscnprintf fndecl 0 60170 NULL
169288 +enable_so___kfifo_out_r_fndecl_60172 __kfifo_out_r fndecl 4 60172 NULL
169289 +enable_so_acpi_parse_entries_fndecl_60174 acpi_parse_entries fndecl 0 60174 NULL
169290 +enable_so_dccp_ackvec_buflen_fndecl_60177 dccp_ackvec_buflen fndecl 0 60177 NULL nohasharray
169291 +enable_so_ec_device_read_fndecl_60177 ec_device_read fndecl 3 60177 &enable_so_dccp_ackvec_buflen_fndecl_60177
169292 +enable_so_snd_compr_write_data_fndecl_60179 snd_compr_write_data fndecl 3 60179 NULL
169293 +enable_so_cc2520_write_ram_fndecl_60183 cc2520_write_ram fndecl 3 60183 NULL
169294 +enable_so_priority_binder_transaction_60184 priority binder_transaction 0 60184 NULL
169295 +enable_so_unlink1_fndecl_60188 unlink1 fndecl 3 60188 NULL
169296 +enable_so_il3945_stats_flag_fndecl_60189 il3945_stats_flag fndecl 0 60189 NULL
169297 +enable_so_pci_enable_device_fndecl_60193 pci_enable_device fndecl 0 60193 NULL
169298 +enable_so_vsub_vsp1_format_info_60198 vsub vsp1_format_info 0 60198 NULL
169299 +enable_so_esrt_efi_60200 esrt efi 0 60200 NULL
169300 +enable_so_vfs_getxattr_alloc_fndecl_60202 vfs_getxattr_alloc fndecl 0 60202 NULL
169301 +enable_so_av7110_ipack_init_fndecl_60204 av7110_ipack_init fndecl 2 60204 NULL
169302 +enable_so_bio_advance_iter_fndecl_60205 bio_advance_iter fndecl 3 60205 NULL
169303 +enable_so_src_frames_snd_pcm_plugin_60210 src_frames snd_pcm_plugin 0 60210 NULL nohasharray
169304 +enable_so_iuu_read_buf_fndecl_60210 iuu_read_buf fndecl 2 60210 &enable_so_src_frames_snd_pcm_plugin_60210
169305 +enable_so_request_key_async_with_auxdata_fndecl_60211 request_key_async_with_auxdata fndecl 4 60211 NULL
169306 +enable_so_lpfc_fcp_io_channel_vardecl_lpfc_attr_c_60216 lpfc_fcp_io_channel vardecl_lpfc_attr.c 0 60216 NULL
169307 +enable_so_iget_locked_fndecl_60218 iget_locked fndecl 2 60218 NULL nohasharray
169308 +enable_so_rmmio_base_radeon_device_60218 rmmio_base radeon_device 0 60218 &enable_so_iget_locked_fndecl_60218
169309 +enable_so_btusb_recv_bulk_fndecl_60219 btusb_recv_bulk fndecl 3 60219 NULL
169310 +enable_so_MaximumParallelCommands_DAC960_V2_ControllerInfo_60222 MaximumParallelCommands DAC960_V2_ControllerInfo 0 60222 NULL
169311 +enable_so_l2cap_parse_conf_rsp_fndecl_60232 l2cap_parse_conf_rsp fndecl 0 60232 NULL
169312 +enable_so_l2cap_create_le_flowctl_pdu_fndecl_60233 l2cap_create_le_flowctl_pdu fndecl 3 60233 NULL
169313 +enable_so_dlfb_alloc_urb_list_fndecl_60234 dlfb_alloc_urb_list fndecl 3 60234 NULL
169314 +enable_so_bttv_crop_adjust_fndecl_60236 bttv_crop_adjust fndecl 4-3 60236 NULL nohasharray
169315 +enable_so_irnet_connect_indication_fndecl_60236 irnet_connect_indication fndecl 5 60236 &enable_so_bttv_crop_adjust_fndecl_60236
169316 +enable_so_mwifiex_usb_host_to_card_fndecl_60239 mwifiex_usb_host_to_card fndecl 2 60239 NULL
169317 +enable_so_frag_len_pau_fpdu_frag_60242 frag_len pau_fpdu_frag 0 60242 NULL
169318 +enable_so_max_pages_per_fmr_ib_fmr_pool_param_60248 max_pages_per_fmr ib_fmr_pool_param 0 60248 NULL
169319 +enable_so_length_squashfs_page_actor_60249 length squashfs_page_actor 0 60249 NULL
169320 +enable_so_ah_rf_banks_size_ath5k_hw_60250 ah_rf_banks_size ath5k_hw 0 60250 NULL
169321 +enable_so_dirty_bytes_extent_io_tree_60254 dirty_bytes extent_io_tree 0 60254 NULL
169322 +enable_so_sector_size_jffs2_sb_info_60255 sector_size jffs2_sb_info 0 60255 NULL nohasharray
169323 +enable_so__iwl_dbgfs_tof_range_request_write_fndecl_60255 _iwl_dbgfs_tof_range_request_write fndecl 3 60255 &enable_so_sector_size_jffs2_sb_info_60255
169324 +enable_so_xenvif_change_mtu_fndecl_60258 xenvif_change_mtu fndecl 2 60258 NULL
169325 +enable_so_len_mwifiex_assoc_event_60259 len mwifiex_assoc_event 0 60259 NULL
169326 +enable_so_size_of_priv_dvb_usb_adapter_properties_60261 size_of_priv dvb_usb_adapter_properties 0 60261 NULL
169327 +enable_so_data_len_sym_ccb_60262 data_len sym_ccb 0 60262 NULL
169328 +enable_so_erst_dbg_write_fndecl_60264 erst_dbg_write fndecl 3 60264 NULL
169329 +enable_so_rotate_left_fndecl_60276 rotate_left fndecl 3-1 60276 NULL
169330 +enable_so_empty_dir_llseek_fndecl_60280 empty_dir_llseek fndecl 2 60280 NULL
169331 +enable_so_alloc_data_packet_fndecl_60281 alloc_data_packet fndecl 1 60281 NULL
169332 +enable_so_f2fs_update_dentry_fndecl_60285 f2fs_update_dentry fndecl 1 60285 NULL
169333 +enable_so___receive_buf_fndecl_60286 __receive_buf fndecl 4 60286 NULL
169334 +enable_so_length_ore_per_dev_state_60287 length ore_per_dev_state 0 60287 NULL
169335 +enable_so___ata_change_queue_depth_fndecl_60290 __ata_change_queue_depth fndecl 3 60290 NULL
169336 +enable_so_read_file_tx99_fndecl_60294 read_file_tx99 fndecl 3 60294 NULL
169337 +enable_so_s_retry_cnt_qib_qp_60301 s_retry_cnt qib_qp 0 60301 NULL
169338 +enable_so_recv_actor_unix_stream_read_state_60306 recv_actor unix_stream_read_state 0 60306 NULL nohasharray
169339 +enable_so_wl1271_rx_filter_alloc_field_fndecl_60306 wl1271_rx_filter_alloc_field fndecl 5 60306 &enable_so_recv_actor_unix_stream_read_state_60306
169340 +enable_so_area_whcrc_60320 area whcrc 0 60320 NULL
169341 +enable_so_inet6_create_fndecl_60321 inet6_create fndecl 3 60321 NULL nohasharray
169342 +enable_so_check_ref_fndecl_60321 check_ref fndecl 3 60321 &enable_so_inet6_create_fndecl_60321 nohasharray
169343 +enable_so_pnp_add_irq_resource_fndecl_60321 pnp_add_irq_resource fndecl 2 60321 &enable_so_check_ref_fndecl_60321
169344 +enable_so_kvm_vcpu_write_guest_fndecl_60323 kvm_vcpu_write_guest fndecl 2-4 60323 NULL
169345 +enable_so_pg_count_nfs_pgio_mirror_60324 pg_count nfs_pgio_mirror 0 60324 NULL
169346 +enable_so_transfer_fndecl_60326 transfer fndecl 4-0 60326 NULL
169347 +enable_so_eor_jfs_log_60327 eor jfs_log 0 60327 NULL
169348 +enable_so_rq_addrlen_svc_rqst_60328 rq_addrlen svc_rqst 0 60328 NULL
169349 +enable_so_upper_vardecl_matroxfb_base_c_60329 upper vardecl_matroxfb_base.c 0 60329 NULL
169350 +enable_so_int_hw_irq_en_fndecl_60331 int_hw_irq_en fndecl 3 60331 NULL
169351 +enable_so_bd_add_to_bdi_fndecl_60336 bd_add_to_bdi fndecl 0-2 60336 NULL
169352 +enable_so_buf_size__IOCTL_Command_struct_60338 buf_size _IOCTL_Command_struct 0 60338 NULL
169353 +enable_so_offset_nvkm_mem_60339 offset nvkm_mem 0 60339 NULL
169354 +enable_so_qib_rc_rcv_resp_fndecl_60341 qib_rc_rcv_resp fndecl 7-9-8-4 60341 NULL
169355 +enable_so_h_dloarea_60342 h dloarea 0 60342 NULL
169356 +enable_so_pagesize_alauda_media_info_60348 pagesize alauda_media_info 0 60348 NULL
169357 +enable_so_hest_ghes_dev_register_fndecl_60349 hest_ghes_dev_register fndecl 1 60349 NULL
169358 +enable_so_setup_geo_fndecl_60351 setup_geo fndecl 0 60351 NULL nohasharray
169359 +enable_so_rq_wqe_shift_mlx5_ib_create_qp_60351 rq_wqe_shift mlx5_ib_create_qp 0 60351 &enable_so_setup_geo_fndecl_60351
169360 +enable_so_softback_lines_vardecl_fbcon_c_60357 softback_lines vardecl_fbcon.c 0 60357 NULL
169361 +enable_so_length_dfw_pllrec_60358 length dfw_pllrec 0 60358 NULL
169362 +enable_so_num_counters_vardecl_sysfs_c_60371 num_counters vardecl_sysfs.c 0 60371 NULL
169363 +enable_so_idd_bar0_ioc4_driver_data_60385 idd_bar0 ioc4_driver_data 0 60385 NULL
169364 +enable_so_s_inodes_per_group_ext4_super_block_60387 s_inodes_per_group ext4_super_block 0 60387 NULL
169365 +enable_so_acpi_dev_get_memresource_fndecl_60389 acpi_dev_get_memresource fndecl 3-2 60389 NULL
169366 +enable_so_count_tx_ring_60390 count tx_ring 0 60390 NULL
169367 +enable_so_shmem_pwrite_fast_fndecl_60393 shmem_pwrite_fast fndecl 3 60393 NULL
169368 +enable_so_block_in_file_dio_submit_60403 block_in_file dio_submit 0 60403 NULL
169369 +enable_so_btrfs_insert_empty_items_fndecl_60405 btrfs_insert_empty_items fndecl 6 60405 NULL
169370 +enable_so_max_vfs_vardecl_ixgbe_main_c_60408 max_vfs vardecl_ixgbe_main.c 0 60408 NULL
169371 +enable_so_xfs_iroot_realloc_fndecl_60409 xfs_iroot_realloc fndecl 2 60409 NULL
169372 +enable_so_xfs_bulkstat_one_int_fndecl_60410 xfs_bulkstat_one_int fndecl 2 60410 NULL
169373 +enable_so_da_num_tokens_vardecl_dell_laptop_c_60413 da_num_tokens vardecl_dell-laptop.c 0 60413 NULL
169374 +enable_so_hw_token_fusbh200_qtd_60416 hw_token fusbh200_qtd 0 60416 NULL
169375 +enable_so_sched_nice_sched_attr_60426 sched_nice sched_attr 0 60426 NULL
169376 +enable_so___ocfs2_mknod_locked_fndecl_60427 __ocfs2_mknod_locked fndecl 8-9-10 60427 NULL
169377 +enable_so_hippi_header_fndecl_60434 hippi_header fndecl 3 60434 NULL
169378 +enable_so_alloc_xenballooned_pages_fndecl_60439 alloc_xenballooned_pages fndecl 1 60439 NULL
169379 +enable_so___i2c_hid_command_fndecl_60442 __i2c_hid_command fndecl 6-8 60442 NULL
169380 +enable_so_minimum_cx88_ctrl_60444 minimum cx88_ctrl 0 60444 NULL
169381 +enable_so_digestsize_hash_alg_common_60446 digestsize hash_alg_common 0 60446 NULL nohasharray
169382 +enable_so_quirk_strict_duplicate_filter_write_fndecl_60446 quirk_strict_duplicate_filter_write fndecl 3 60446 &enable_so_digestsize_hash_alg_common_60446
169383 +enable_so_count_hscx_hw_60448 count hscx_hw 0 60448 NULL
169384 +enable_so_lib80211_tkip_decrypt_fndecl_60450 lib80211_tkip_decrypt fndecl 2 60450 NULL
169385 +enable_so_maxsgentries_ctlr_info_60455 maxsgentries ctlr_info 0 60455 NULL
169386 +enable_so_sd_quota_slots_gfs2_sbd_60466 sd_quota_slots gfs2_sbd 0 60466 NULL
169387 +enable_so_write_fndecl_60467 write fndecl 3 60467 NULL
169388 +enable_so_ath10k_dbg_dump_fndecl_60482 ath10k_dbg_dump fndecl 6 60482 NULL
169389 +enable_so_drm_vma_offset_add_fndecl_60483 drm_vma_offset_add fndecl 3 60483 NULL nohasharray
169390 +enable_so_osd_left_vardecl_ivtvfb_c_60483 osd_left vardecl_ivtvfb.c 0 60483 &enable_so_drm_vma_offset_add_fndecl_60483
169391 +enable_so_lane2_associate_req_fndecl_60485 lane2_associate_req fndecl 4 60485 NULL
169392 +enable_so_v_nmembs_nilfs_argv_60498 v_nmembs nilfs_argv 0 60498 NULL
169393 +enable_so_stat_rate_sl_mlx5_av_60503 stat_rate_sl mlx5_av 0 60503 NULL
169394 +enable_so_cap_intel_iommu_60508 cap intel_iommu 0 60508 NULL
169395 +enable_so_tiadc_channel_init_fndecl_60514 tiadc_channel_init fndecl 2 60514 NULL
169396 +enable_so_gfs2_xattr_set_fndecl_60515 gfs2_xattr_set fndecl 4 60515 NULL
169397 +enable_so_rpcrdma_convert_iovs_fndecl_60516 rpcrdma_convert_iovs fndecl 0 60516 NULL
169398 +enable_so_n_host_mvs_chip_info_60517 n_host mvs_chip_info 0 60517 NULL nohasharray
169399 +enable_so_ll_iocontrol_register_fndecl_60517 ll_iocontrol_register fndecl 2 60517 &enable_so_n_host_mvs_chip_info_60517
169400 +enable_so_tty_buffer_alloc_fndecl_60526 tty_buffer_alloc fndecl 2 60526 NULL
169401 +enable_so_b44_change_mtu_fndecl_60528 b44_change_mtu fndecl 2 60528 NULL
169402 +enable_so_hso_serial_write_fndecl_60530 hso_serial_write fndecl 3 60530 NULL nohasharray
169403 +enable_so_ima_store_measurement_fndecl_60530 ima_store_measurement fndecl 5 60530 &enable_so_hso_serial_write_fndecl_60530
169404 +enable_so_sock_recv_errqueue_fndecl_60535 sock_recv_errqueue fndecl 3 60535 NULL
169405 +enable_so_qib_sdma_verbs_send_fndecl_60539 qib_sdma_verbs_send fndecl 3 60539 NULL
169406 +enable_so_mic_card_map_fndecl_60546 mic_card_map fndecl 3-2 60546 NULL nohasharray
169407 +enable_so_device_size_scsi_transport_template_60546 device_size scsi_transport_template 0 60546 &enable_so_mic_card_map_fndecl_60546
169408 +enable_so_dma_tx_bytes_lpuart_port_60550 dma_tx_bytes lpuart_port 0 60550 NULL
169409 +enable_so_udp_manip_pkt_fndecl_60552 udp_manip_pkt fndecl 4 60552 NULL
169410 +enable_so_PSize_RxDesc_60553 PSize RxDesc 0 60553 NULL
169411 +enable_so___calc_request_pg_fndecl_60557 __calc_request_pg fndecl 0 60557 NULL
169412 +enable_so_max_response_cros_ec_device_60558 max_response cros_ec_device 0 60558 NULL
169413 +enable_so_chr_major_ports_device_60572 chr_major ports_device 0 60572 NULL
169414 +enable_so_slot_dlm_member_60581 slot dlm_member 0 60581 NULL
169415 +enable_so_nibble_read_data_parport_operations_60589 nibble_read_data parport_operations 0 60589 NULL
169416 +enable_so_xfs_dir2_free_try_read_fndecl_60591 xfs_dir2_free_try_read fndecl 3 60591 NULL nohasharray
169417 +enable_so_vfcount_arch_specific_params_60591 vfcount arch_specific_params 0 60591 &enable_so_xfs_dir2_free_try_read_fndecl_60591
169418 +enable_so_assoclen_chachapoly_req_ctx_60596 assoclen chachapoly_req_ctx 0 60596 NULL
169419 +enable_so_in_size_ide_task_request_s_60603 in_size ide_task_request_s 0 60603 NULL
169420 +enable_so___split_vma_fndecl_60609 __split_vma fndecl 3 60609 NULL
169421 +enable_so_fuse_ref_page_fndecl_60613 fuse_ref_page fndecl 4-3 60613 NULL nohasharray
169422 +enable_so_first_page_mpage_da_data_60613 first_page mpage_da_data 0 60613 &enable_so_fuse_ref_page_fndecl_60613
169423 +enable_so_sys_lgetxattr_fndecl_60616 sys_lgetxattr fndecl 4 60616 NULL
169424 +enable_so_qpc_entry_sz_mlx4_dev_cap_60618 qpc_entry_sz mlx4_dev_cap 0 60618 NULL
169425 +enable_so_dqi_usable_bs_qtree_mem_dqinfo_60619 dqi_usable_bs qtree_mem_dqinfo 0 60619 NULL
169426 +enable_so_copy_macs_fndecl_60621 copy_macs fndecl 4 60621 NULL
169427 +enable_so_copy_nocow_pages_fndecl_60628 copy_nocow_pages fndecl 3-5 60628 NULL nohasharray
169428 +enable_so_i40e_alloc_vfs_fndecl_60628 i40e_alloc_vfs fndecl 2 60628 &enable_so_copy_nocow_pages_fndecl_60628 nohasharray
169429 +enable_so_htable_bits_htable_60628 htable_bits htable 0 60628 &enable_so_i40e_alloc_vfs_fndecl_60628
169430 +enable_so_gso_size_skb_shared_info_60636 gso_size skb_shared_info 0 60636 NULL nohasharray
169431 +enable_so_num_tx_desc_iadev_priv_60636 num_tx_desc iadev_priv 0 60636 &enable_so_gso_size_skb_shared_info_60636
169432 +enable_so_btrfs_new_extent_direct_fndecl_60642 btrfs_new_extent_direct fndecl 2 60642 NULL
169433 +enable_so_stats_dot11ACKFailureCount_read_fndecl_60645 stats_dot11ACKFailureCount_read fndecl 3 60645 NULL
169434 +enable_so_num_mpts_mthca_limits_60648 num_mpts mthca_limits 0 60648 NULL
169435 +enable_so_venus_rmdir_fndecl_60655 venus_rmdir fndecl 4 60655 NULL
169436 +enable_so_neo_map_video_fndecl_60656 neo_map_video fndecl 3 60656 NULL
169437 +enable_so_i_extra_isize_ext4_inode_info_60659 i_extra_isize ext4_inode_info 0 60659 NULL nohasharray
169438 +enable_so___ax88179_read_cmd_fndecl_60659 __ax88179_read_cmd fndecl 5 60659 &enable_so_i_extra_isize_ext4_inode_info_60659
169439 +enable_so_eld_size_hdmi_eld_60661 eld_size hdmi_eld 0 60661 NULL
169440 +enable_so_secondary_head_adu_device_60665 secondary_head adu_device 0 60665 NULL
169441 +enable_so_cxd2820r_rd_regs_i2c_fndecl_60668 cxd2820r_rd_regs_i2c fndecl 5 60668 NULL
169442 +enable_so_cx18_copy_mdl_to_user_fndecl_60670 cx18_copy_mdl_to_user fndecl 4 60670 NULL
169443 +enable_so_set_extent_bits_fndecl_60673 set_extent_bits fndecl 3-2 60673 NULL nohasharray
169444 +enable_so_h_mspro_block_setup_cmd_fndecl_60673 h_mspro_block_setup_cmd fndecl 3 60673 &enable_so_set_extent_bits_fndecl_60673
169445 +enable_so_tx_tx_cfe2_read_fndecl_60677 tx_tx_cfe2_read fndecl 3 60677 NULL
169446 +enable_so_pos_saa7164_user_buffer_60678 pos saa7164_user_buffer 0 60678 NULL
169447 +enable_so_bytenr_btrfs_qgroup_extent_record_60692 bytenr btrfs_qgroup_extent_record 0 60692 NULL
169448 +enable_so_vnic_dev_mtu_fndecl_60693 vnic_dev_mtu fndecl 0 60693 NULL nohasharray
169449 +enable_so_MaxBufSize_lanman_neg_rsp_60693 MaxBufSize lanman_neg_rsp 0 60693 &enable_so_vnic_dev_mtu_fndecl_60693
169450 +enable_so_mon_bin_collate_isodesc_fndecl_60695 mon_bin_collate_isodesc fndecl 0 60695 NULL nohasharray
169451 +enable_so_sel_write_user_fndecl_60695 sel_write_user fndecl 3 60695 &enable_so_mon_bin_collate_isodesc_fndecl_60695
169452 +enable_so_ubifs_fsync_fndecl_60696 ubifs_fsync fndecl 2-3 60696 NULL
169453 +enable_so_max_size_vx_ibl_info_60702 max_size vx_ibl_info 0 60702 NULL nohasharray
169454 +enable_so_snd_mixart_BA0_read_fndecl_60702 snd_mixart_BA0_read fndecl 5 60702 &enable_so_max_size_vx_ibl_info_60702
169455 +enable_so_count_vma_pages_range_fndecl_60705 count_vma_pages_range fndecl 0-2-3 60705 NULL
169456 +enable_so_snd_card_new_fndecl_60707 snd_card_new fndecl 2-5 60707 NULL
169457 +enable_so_kvm_mmu_page_get_gfn_fndecl_60709 kvm_mmu_page_get_gfn fndecl 0-2 60709 NULL
169458 +enable_so_usbdev_read_fndecl_60713 usbdev_read fndecl 3 60713 NULL
169459 +enable_so_pwr_missing_bcns_cnt_read_fndecl_60714 pwr_missing_bcns_cnt_read fndecl 3 60714 NULL
169460 +enable_so_sock_sendmsg_fndecl_60718 sock_sendmsg fndecl 0 60718 NULL nohasharray
169461 +enable_so_v9fs_xattr_user_set_fndecl_60718 v9fs_xattr_user_set fndecl 4 60718 &enable_so_sock_sendmsg_fndecl_60718
169462 +enable_so_bsg_request_fc_function_template_60721 bsg_request fc_function_template 0 60721 NULL nohasharray
169463 +enable_so_HighPriorityCredit_mpt3sas_facts_60721 HighPriorityCredit mpt3sas_facts 0 60721 &enable_so_bsg_request_fc_function_template_60721
169464 +enable_so_reserved_pebs_ubi_volume_60725 reserved_pebs ubi_volume 0 60725 NULL
169465 +enable_so_count_ptd_60735 count ptd 0 60735 NULL nohasharray
169466 +enable_so_splice_from_pipe_fndecl_60735 splice_from_pipe fndecl 4 60735 &enable_so_count_ptd_60735
169467 +enable_so___vlan_vid_del_fndecl_60738 __vlan_vid_del fndecl 3 60738 NULL
169468 +enable_so_hwarc_filter_cmd_set_drp_ie_WUSB_0100_fndecl_60739 hwarc_filter_cmd_set_drp_ie_WUSB_0100 fndecl 0 60739 NULL
169469 +enable_so_command_setapcor_fndecl_60740 command_setapcor fndecl 0 60740 NULL
169470 +enable_so_ns_inode_size_the_nilfs_60742 ns_inode_size the_nilfs 0 60742 NULL nohasharray
169471 +enable_so_send_to_tty_fndecl_60742 send_to_tty fndecl 3 60742 &enable_so_ns_inode_size_the_nilfs_60742
169472 +enable_so_cfs_trace_daemon_command_usrstr_fndecl_60744 cfs_trace_daemon_command_usrstr fndecl 2 60744 NULL
169473 +enable_so_io_size_wdt_lpc_sch_info_60747 io_size_wdt lpc_sch_info 0 60747 NULL
169474 +enable_so_max_cluster_msdos_sb_info_60753 max_cluster msdos_sb_info 0 60753 NULL
169475 +enable_so_index_vardecl_intel8x0_c_60756 index vardecl_intel8x0.c 0 60756 NULL nohasharray
169476 +enable_so_index_hpi_adapter_obj_60756 index hpi_adapter_obj 0 60756 &enable_so_index_vardecl_intel8x0_c_60756
169477 +enable_so_chipshift_nand_flash_dev_60758 chipshift nand_flash_dev 0 60758 NULL
169478 +enable_so_jpg_bufsize_vardecl_60761 jpg_bufsize vardecl 0 60761 NULL
169479 +enable_so_devid_intel_lpss_60766 devid intel_lpss 0 60766 NULL
169480 +enable_so_base_ttm_bus_placement_60769 base ttm_bus_placement 0 60769 NULL
169481 +enable_so_i_block_group_ext2_inode_info_60771 i_block_group ext2_inode_info 0 60771 NULL
169482 +enable_so_a_channels_libipw_geo_60784 a_channels libipw_geo 0 60784 NULL nohasharray
169483 +enable_so_sd_read_long_data_fndecl_60784 sd_read_long_data fndecl 0 60784 &enable_so_a_channels_libipw_geo_60784
169484 +enable_so_length_blkpg_partition_60788 length blkpg_partition 0 60788 NULL
169485 +enable_so_x2_virtio_gpu_framebuffer_60789 x2 virtio_gpu_framebuffer 0 60789 NULL
169486 +enable_so_ocfs2_remove_inode_range_fndecl_60791 ocfs2_remove_inode_range fndecl 3-4 60791 NULL nohasharray
169487 +enable_so_device_write_fndecl_60791 device_write fndecl 3 60791 &enable_so_ocfs2_remove_inode_range_fndecl_60791
169488 +enable_so_full_width_mxr_crop_60792 full_width mxr_crop 0 60792 NULL
169489 +enable_so_tomoyo_write_self_fndecl_60794 tomoyo_write_self fndecl 3 60794 NULL
169490 +enable_so_count_hdlc_hw_60796 count hdlc_hw 0 60796 NULL
169491 +enable_so_in_modifier_mlx4_vhcr_60797 in_modifier mlx4_vhcr 0 60797 NULL
169492 +enable_so_sta_agg_status_write_fndecl_60799 sta_agg_status_write fndecl 3 60799 NULL
169493 +enable_so_iso_alloc_urb_fndecl_60805 iso_alloc_urb fndecl 4-5-2 60805 NULL
169494 +enable_so_mpt_lan_change_mtu_fndecl_60806 mpt_lan_change_mtu fndecl 2 60806 NULL
169495 +enable_so_perdev_minors_vardecl_block_c_60809 perdev_minors vardecl_block.c 0 60809 NULL
169496 +enable_so_sctp_pack_cookie_fndecl_60821 sctp_pack_cookie fndecl 6 60821 NULL
169497 +enable_so_new_log_buf_len_vardecl_printk_c_60824 new_log_buf_len vardecl_printk.c 0 60824 NULL
169498 +enable_so___radix_tree_preload_fndecl_60830 __radix_tree_preload fndecl 0 60830 NULL
169499 +enable_so_beacon_ies_len_cfg80211_beacon_data_60831 beacon_ies_len cfg80211_beacon_data 0 60831 NULL
169500 +enable_so_ieee80211_if_read_peer_fndecl_60834 ieee80211_if_read_peer fndecl 3 60834 NULL
169501 +enable_so_register_sound_dsp_fndecl_60835 register_sound_dsp fndecl 2 60835 NULL
169502 +enable_so_bInterval_usb_endpoint_descriptor_60843 bInterval usb_endpoint_descriptor 0 60843 NULL nohasharray
169503 +enable_so_limit_fm10k_ring_feature_60843 limit fm10k_ring_feature 0 60843 &enable_so_bInterval_usb_endpoint_descriptor_60843
169504 +enable_so_prism2_pda_proc_read_fndecl_60845 prism2_pda_proc_read fndecl 3 60845 NULL
169505 +enable_so_wlen_si2168_cmd_60850 wlen si2168_cmd 0 60850 NULL
169506 +enable_so_spi_alloc_master_fndecl_60852 spi_alloc_master fndecl 2 60852 NULL
169507 +enable_so_channels_max_snd_pcm_hardware_60854 channels_max snd_pcm_hardware 0 60854 NULL
169508 +enable_so_cb710_mmc_receive_pio_fndecl_60864 cb710_mmc_receive_pio fndecl 0 60864 NULL
169509 +enable_so_dev_priv_size_drm_driver_60870 dev_priv_size drm_driver 0 60870 NULL
169510 +enable_so_sectors_per_block_cache_60872 sectors_per_block cache 0 60872 NULL
169511 +enable_so_input_mt_init_slots_fndecl_60876 input_mt_init_slots fndecl 2 60876 NULL
169512 +enable_so_reiserfs_bmap_fndecl_60877 reiserfs_bmap fndecl 2 60877 NULL
169513 +enable_so_map_size_tpm_inf_dev_60880 map_size tpm_inf_dev 0 60880 NULL
169514 +enable_so_osd_y_offset_yuv_playback_info_60883 osd_y_offset yuv_playback_info 0 60883 NULL
169515 +enable_so_xenvif_add_frag_responses_fndecl_60886 xenvif_add_frag_responses fndecl 2 60886 NULL
169516 +enable_so_last_data_size_ubi_ainf_volume_60887 last_data_size ubi_ainf_volume 0 60887 NULL nohasharray
169517 +enable_so_msg_size_c2_mq_60887 msg_size c2_mq 0 60887 &enable_so_last_data_size_ubi_ainf_volume_60887
169518 +enable_so_snd_pcm_oss_sync1_fndecl_60897 snd_pcm_oss_sync1 fndecl 2 60897 NULL nohasharray
169519 +enable_so_orig_start_extent_map_60897 orig_start extent_map 0 60897 &enable_so_snd_pcm_oss_sync1_fndecl_60897 nohasharray
169520 +enable_so_sn9c2028_short_command_fndecl_60897 sn9c2028_short_command fndecl 0 60897 &enable_so_orig_start_extent_map_60897
169521 +enable_so_btmrvl_send_sync_cmd_fndecl_60899 btmrvl_send_sync_cmd fndecl 4 60899 NULL
169522 +enable_so_fusbh200_urb_dequeue_fndecl_60900 fusbh200_urb_dequeue fndecl 3 60900 NULL
169523 +enable_so_bNrChannels_uac_input_terminal_descriptor_60901 bNrChannels uac_input_terminal_descriptor 0 60901 NULL
169524 +enable_so_xdr_shrink_bufhead_fndecl_60908 xdr_shrink_bufhead fndecl 2 60908 NULL
169525 +enable_so_gfs2_fiemap_fndecl_60913 gfs2_fiemap fndecl 4 60913 NULL
169526 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_sdqs_get_fndecl_60914 mlxsw_cmd_mbox_query_aq_cap_max_num_sdqs_get fndecl 0 60914 NULL
169527 +enable_so_ctrl_set_cropw_fndecl_60918 ctrl_set_cropw fndecl 3 60918 NULL
169528 +enable_so_blf_blkno_xfs_buf_log_format_60925 blf_blkno xfs_buf_log_format 0 60925 NULL
169529 +enable_so_tool_peer_mask_write_fndecl_60928 tool_peer_mask_write fndecl 3 60928 NULL
169530 +enable_so_tclass_flowlabel_mlx4_qp_path_60935 tclass_flowlabel mlx4_qp_path 0 60935 NULL
169531 +enable_so_read_ltv_hermes_ops_60939 read_ltv hermes_ops 0 60939 NULL nohasharray
169532 +enable_so_insert_state_fndecl_60939 insert_state fndecl 4-3 60939 &enable_so_read_ltv_hermes_ops_60939
169533 +enable_so_x509_process_extension_fndecl_60941 x509_process_extension fndecl 5 60941 NULL
169534 +enable_so_msix_vector_count_MPT3SAS_ADAPTER_60944 msix_vector_count MPT3SAS_ADAPTER 0 60944 NULL
169535 +enable_so_low_ino_proc_dir_entry_60945 low_ino proc_dir_entry 0 60945 NULL
169536 +enable_so_segments_adv7511_state_edid_60947 segments adv7511_state_edid 0 60947 NULL
169537 +enable_so_ipv6_recv_rxpmtu_fndecl_60949 ipv6_recv_rxpmtu fndecl 3 60949 NULL
169538 +enable_so_efi_memmap_hi_efi_info_60951 efi_memmap_hi efi_info 0 60951 NULL
169539 +enable_so_audit_make_reply_fndecl_60952 audit_make_reply fndecl 7 60952 NULL
169540 +enable_so_ocfs2_dx_dir_new_cluster_fndecl_60953 ocfs2_dx_dir_new_cluster fndecl 3 60953 NULL
169541 +enable_so_s_partition_root_udf_part_map_60954 s_partition_root udf_part_map 0 60954 NULL
169542 +enable_so_ath10k_reg_value_read_fndecl_60958 ath10k_reg_value_read fndecl 3 60958 NULL
169543 +enable_so_get_rdac_req_fndecl_60969 get_rdac_req fndecl 3 60969 NULL
169544 +enable_so_tx_remainder_cdc_ncm_ctx_60973 tx_remainder cdc_ncm_ctx 0 60973 NULL
169545 +enable_so_xfs_extent_busy_update_extent_fndecl_60975 xfs_extent_busy_update_extent fndecl 5-4 60975 NULL
169546 +enable_so_hcs_params1_xhci_hcd_60979 hcs_params1 xhci_hcd 0 60979 NULL
169547 +enable_so_isdn_write_fndecl_60980 isdn_write fndecl 3 60980 NULL nohasharray
169548 +enable_so_count_nvif_ioctl_sclass_v0_60980 count nvif_ioctl_sclass_v0 0 60980 &enable_so_isdn_write_fndecl_60980
169549 +enable_so_first_block_migrate_struct_60989 first_block migrate_struct 0 60989 NULL nohasharray
169550 +enable_so_weight_dlm_member_60989 weight dlm_member 0 60989 &enable_so_first_block_migrate_struct_60989
169551 +enable_so_rtl8152_change_mtu_fndecl_60996 rtl8152_change_mtu fndecl 2 60996 NULL
169552 +enable_so_endp_out_zd1201_61001 endp_out zd1201 0 61001 NULL
169553 +enable_so_dbgfs_frame_fndecl_61006 dbgfs_frame fndecl 3 61006 NULL
169554 +enable_so_ocfs2_xattr_block_find_fndecl_61008 ocfs2_xattr_block_find fndecl 0 61008 NULL
169555 +enable_so_cfs_cpt_weight_fndecl_61020 cfs_cpt_weight fndecl 0 61020 NULL
169556 +enable_so_size_page_frag_61029 size page_frag 0 61029 NULL
169557 +enable_so_setup_possible_cpus_vardecl_smpboot_c_61040 setup_possible_cpus vardecl_smpboot.c 0 61040 NULL nohasharray
169558 +enable_so_ath6kl_wmi_listeninterval_cmd_fndecl_61040 ath6kl_wmi_listeninterval_cmd fndecl 2 61040 &enable_so_setup_possible_cpus_vardecl_smpboot_c_61040
169559 +enable_so_nports1_adapter_info_61044 nports1 adapter_info 0 61044 NULL
169560 +enable_so_nf_nat_ftp_fmt_cmd_fndecl_61045 nf_nat_ftp_fmt_cmd fndecl 0 61045 NULL
169561 +enable_so__dln2_transfer_fndecl_61049 _dln2_transfer fndecl 0 61049 NULL
169562 +enable_so_alloc_mr_fndecl_61052 alloc_mr fndecl 1 61052 NULL
169563 +enable_so_len_tcp_fastopen_cookie_61053 len tcp_fastopen_cookie 0 61053 NULL
169564 +enable_so_copy_to_fndecl_61058 copy_to fndecl 3 61058 NULL
169565 +enable_so_get_rx_packet_len_wlcore_ops_61070 get_rx_packet_len wlcore_ops 0 61070 NULL
169566 +enable_so_untag_qdepth_blogic_adapter_61071 untag_qdepth blogic_adapter 0 61071 NULL
169567 +enable_so_dccph_seq_dccp_hdr_61073 dccph_seq dccp_hdr 0 61073 NULL
169568 +enable_so_blk_end_request_cur_fndecl_61075 blk_end_request_cur fndecl 2 61075 NULL
169569 +enable_so_s_root_block_omfs_super_block_61078 s_root_block omfs_super_block 0 61078 NULL
169570 +enable_so_tavor_rate_to_ib_fndecl_61079 tavor_rate_to_ib fndecl 0 61079 NULL
169571 +enable_so_reply_len_fc_bsg_job_61088 reply_len fc_bsg_job 0 61088 NULL
169572 +enable_so_left_v4l2_rect_61093 left v4l2_rect 0 61093 NULL
169573 +enable_so_rtl2832_regmap_gather_write_fndecl_61096 rtl2832_regmap_gather_write fndecl 5 61096 NULL
169574 +enable_so_snd_hdac_exec_verb_fndecl_61100 snd_hdac_exec_verb fndecl 0 61100 NULL
169575 +enable_so_current_write_offset_scif_rb_61107 current_write_offset scif_rb 0 61107 NULL
169576 +enable_so_bv_offset_bio_vec_61109 bv_offset bio_vec 0 61109 NULL
169577 +enable_so_f2fs_fname_crypto_alloc_buffer_fndecl_61116 f2fs_fname_crypto_alloc_buffer fndecl 2 61116 NULL
169578 +enable_so_tcp_adjust_fackets_out_fndecl_61118 tcp_adjust_fackets_out fndecl 3 61118 NULL
169579 +enable_so_nilfs_bmap_do_delete_fndecl_61120 nilfs_bmap_do_delete fndecl 0 61120 NULL
169580 +enable_so_blocknr_nilfs_write_info_61124 blocknr nilfs_write_info 0 61124 NULL
169581 +enable_so_rx_hdr_len_i40e_ring_61127 rx_hdr_len i40e_ring 0 61127 NULL
169582 +enable_so_insert_node_fndecl_61132 insert_node fndecl 3-4 61132 NULL
169583 +enable_so_atr_len_retry_cm4000_dev_61135 atr_len_retry cm4000_dev 0 61135 NULL
169584 +enable_so_ore_calc_stripe_info_fndecl_61140 ore_calc_stripe_info fndecl 3 61140 NULL
169585 +enable_so_display_byte_stride_osd_info_61141 display_byte_stride osd_info 0 61141 NULL
169586 +enable_so___access_remote_vm_fndecl_61148 __access_remote_vm fndecl 5-0-3 61148 NULL
169587 +enable_so_get_free_entries_fndecl_61149 get_free_entries fndecl 1 61149 NULL nohasharray
169588 +enable_so_fnic_reset_stats_read_fndecl_61149 fnic_reset_stats_read fndecl 3 61149 &enable_so_get_free_entries_fndecl_61149
169589 +enable_so_sierra_setup_urb_fndecl_61150 sierra_setup_urb fndecl 5-3-2 61150 NULL
169590 +enable_so_slhc_toss_fndecl_61153 slhc_toss fndecl 0 61153 NULL
169591 +enable_so_ctl_mt7601u_rxwi_61155 ctl mt7601u_rxwi 0 61155 NULL
169592 +enable_so___vmalloc_node_range_fndecl_61157 __vmalloc_node_range fndecl 1-3-2 61157 NULL nohasharray
169593 +enable_so_max_rsp_queues_qla_hw_data_61157 max_rsp_queues qla_hw_data 0 61157 &enable_so___vmalloc_node_range_fndecl_61157
169594 +enable_so_addr_kcore_list_61158 addr kcore_list 0 61158 NULL
169595 +enable_so_ceph_locks_to_pagelist_fndecl_61162 ceph_locks_to_pagelist fndecl 3-4 61162 NULL
169596 +enable_so_sel_commit_bools_write_fndecl_61166 sel_commit_bools_write fndecl 3 61166 NULL
169597 +enable_so_ftdi_elan_edset_empty_fndecl_61170 ftdi_elan_edset_empty fndecl 0 61170 NULL nohasharray
169598 +enable_so_lldd_execute_task_sas_domain_function_template_61170 lldd_execute_task sas_domain_function_template 0 61170 &enable_so_ftdi_elan_edset_empty_fndecl_61170
169599 +enable_so_in_length_nd_cmd_vendor_hdr_61172 in_length nd_cmd_vendor_hdr 0 61172 NULL
169600 +enable_so_phys_memory_base__synclinkmp_info_61174 phys_memory_base _synclinkmp_info 0 61174 NULL
169601 +enable_so_pvr2_buffer_set_buffer_fndecl_61176 pvr2_buffer_set_buffer fndecl 3 61176 NULL
169602 +enable_so_register_sound_mixer_fndecl_61179 register_sound_mixer fndecl 2 61179 NULL
169603 +enable_so___ocfs2_move_extent_fndecl_61183 __ocfs2_move_extent fndecl 4-5-6-3 61183 NULL nohasharray
169604 +enable_so_dma_tx_errors_read_fndecl_61183 dma_tx_errors_read fndecl 3 61183 &enable_so___ocfs2_move_extent_fndecl_61183
169605 +enable_so_fbcon_softback_size_vardecl_fbcon_c_61184 fbcon_softback_size vardecl_fbcon.c 0 61184 NULL
169606 +enable_so_pos_dir_context_61195 pos dir_context 0 61195 NULL nohasharray
169607 +enable_so_rdma_set_ib_paths_fndecl_61195 rdma_set_ib_paths fndecl 3 61195 &enable_so_pos_dir_context_61195
169608 +enable_so_port_id_ssp_device_61196 port_id ssp_device 0 61196 NULL nohasharray
169609 +enable_so_spk_ys_vardecl_61196 spk_ys vardecl 0 61196 &enable_so_port_id_ssp_device_61196
169610 +enable_so_add_qgroup_rb_fndecl_61197 add_qgroup_rb fndecl 2 61197 NULL
169611 +enable_so_num_qps_mthca_limits_61203 num_qps mthca_limits 0 61203 NULL
169612 +enable_so_parsed_tag_70_packet_size_ecryptfs_parse_tag_70_packet_silly_stack_61204 parsed_tag_70_packet_size ecryptfs_parse_tag_70_packet_silly_stack 0 61204 NULL
169613 +enable_so_ts_nr_packets_vardecl_saa7134_ts_c_61205 ts_nr_packets vardecl_saa7134-ts.c 0 61205 NULL
169614 +enable_so_of_get_flat_dt_prop_fndecl_61207 of_get_flat_dt_prop fndecl 1 61207 NULL
169615 +enable_so_audit_log_n_hex_fndecl_61218 audit_log_n_hex fndecl 3 61218 NULL
169616 +enable_so_rx_buffersize_b43_dmaring_61223 rx_buffersize b43_dmaring 0 61223 NULL nohasharray
169617 +enable_so_rmtblkcnt_xfs_da_args_61223 rmtblkcnt xfs_da_args 0 61223 &enable_so_rx_buffersize_b43_dmaring_61223 nohasharray
169618 +enable_so_register_chrdev_region_fndecl_61223 register_chrdev_region fndecl 2-1 61223 &enable_so_rmtblkcnt_xfs_da_args_61223
169619 +enable_so_rx_tail_len_pn533_frame_ops_61226 rx_tail_len pn533_frame_ops 0 61226 NULL
169620 +enable_so_resource_clip_fndecl_61231 resource_clip fndecl 2-3 61231 NULL
169621 +enable_so_size_ceph_mds_reply_inode_61235 size ceph_mds_reply_inode 0 61235 NULL
169622 +enable_so_max_data_pkt_payload_size_nci_rf_intf_activated_ntf_61238 max_data_pkt_payload_size nci_rf_intf_activated_ntf 0 61238 NULL nohasharray
169623 +enable_so_channels_max_hdmi_spec_61238 channels_max hdmi_spec 0 61238 &enable_so_max_data_pkt_payload_size_nci_rf_intf_activated_ntf_61238
169624 +enable_so_tipc_add_tlv_fndecl_61239 tipc_add_tlv fndecl 4 61239 NULL
169625 +enable_so_hidraw_get_report_fndecl_61242 hidraw_get_report fndecl 3 61242 NULL
169626 +enable_so_rcar_dmac_prep_dma_cyclic_fndecl_61249 rcar_dmac_prep_dma_cyclic fndecl 4-3 61249 NULL
169627 +enable_so_ext4_reserve_inode_write_fndecl_61253 ext4_reserve_inode_write fndecl 0 61253 NULL nohasharray
169628 +enable_so_CombinedStatusBufferLength_DAC960_Controller_61253 CombinedStatusBufferLength DAC960_Controller 0 61253 &enable_so_ext4_reserve_inode_write_fndecl_61253
169629 +enable_so_primary_traffic_class_cm_req_msg_61255 primary_traffic_class cm_req_msg 0 61255 NULL
169630 +enable_so_b_blocknr_buffer_head_61260 b_blocknr buffer_head 0 61260 NULL
169631 +enable_so_key_create_or_update_fndecl_61266 key_create_or_update fndecl 5 61266 NULL
169632 +enable_so_split_boundary_dm_origin_61269 split_boundary dm_origin 0 61269 NULL
169633 +enable_so_len_ubifs_zbranch_61279 len ubifs_zbranch 0 61279 NULL
169634 +enable_so_h_minimode_61280 h minimode 0 61280 NULL
169635 +enable_so_i_file_acl_ext4_inode_info_61282 i_file_acl ext4_inode_info 0 61282 NULL
169636 +enable_so_smk_write_ambient_fndecl_61288 smk_write_ambient fndecl 3 61288 NULL
169637 +enable_so_dataSgeOffset_mpt_ioctl_command_61289 dataSgeOffset mpt_ioctl_command 0 61289 NULL
169638 +enable_so_jpg_nbufs_vardecl_61299 jpg_nbufs vardecl 0 61299 NULL nohasharray
169639 +enable_so_it87_device_add_fndecl_61299 it87_device_add fndecl 1 61299 &enable_so_jpg_nbufs_vardecl_61299
169640 +enable_so_u_size_p_sizes_61300 u_size p_sizes 0 61300 NULL nohasharray
169641 +enable_so_compat_mpctl_ioctl_fndecl_61300 compat_mpctl_ioctl fndecl 2 61300 &enable_so_u_size_p_sizes_61300
169642 +enable_so_efs_nfs_get_inode_fndecl_61302 efs_nfs_get_inode fndecl 2 61302 NULL
169643 +enable_so_fat_length_fat_floppy_defaults_61308 fat_length fat_floppy_defaults 0 61308 NULL
169644 +enable_so_ufx_i2c_configure_fndecl_61311 ufx_i2c_configure fndecl 0 61311 NULL
169645 +enable_so_wlcore_smart_config_decode_event_fndecl_61313 wlcore_smart_config_decode_event fndecl 2-4 61313 NULL nohasharray
169646 +enable_so_snic_max_qdepth_vardecl_61313 snic_max_qdepth vardecl 0 61313 &enable_so_wlcore_smart_config_decode_event_fndecl_61313
169647 +enable_so_dvb_ca_en50221_init_fndecl_61317 dvb_ca_en50221_init fndecl 4 61317 NULL
169648 +enable_so_s3c_hsotg_rx_data_fndecl_61321 s3c_hsotg_rx_data fndecl 3 61321 NULL
169649 +enable_so_ufs_iget_fndecl_61332 ufs_iget fndecl 2 61332 NULL
169650 +enable_so_rtl2830_regmap_write_fndecl_61335 rtl2830_regmap_write fndecl 3 61335 NULL
169651 +enable_so_wbuf_len_jffs2_sb_info_61340 wbuf_len jffs2_sb_info 0 61340 NULL
169652 +enable_so_iscsit_put_login_tx_fndecl_61345 iscsit_put_login_tx fndecl 3 61345 NULL
169653 +enable_so_v4l2_ctrl_new_std_fndecl_61351 v4l2_ctrl_new_std fndecl 5-4-7 61351 NULL nohasharray
169654 +enable_so_rw_copy_check_uvector_fndecl_61351 rw_copy_check_uvector fndecl 0-3 61351 &enable_so_v4l2_ctrl_new_std_fndecl_61351
169655 +enable_so_fdt_get_property_namelen_fndecl_61353 fdt_get_property_namelen fndecl 2 61353 NULL nohasharray
169656 +enable_so_size_sge_fl_61353 size sge_fl 0 61353 &enable_so_fdt_get_property_namelen_fndecl_61353
169657 +enable_so_conn_num_hci_conn_list_req_61354 conn_num hci_conn_list_req 0 61354 NULL
169658 +enable_so_hfs_get_block_fndecl_61360 hfs_get_block fndecl 2 61360 NULL
169659 +enable_so_snd_cs46xx_io_read_fndecl_61365 snd_cs46xx_io_read fndecl 5 61365 NULL
169660 +enable_so_handle_response_icmp_fndecl_61366 handle_response_icmp fndecl 7 61366 NULL
169661 +enable_so_tx_headroom_libipw_device_61370 tx_headroom libipw_device 0 61370 NULL
169662 +enable_so_sync_dirty_buffer_fndecl_61371 sync_dirty_buffer fndecl 0 61371 NULL
169663 +enable_so_data_dma_usb_onetouch_61372 data_dma usb_onetouch 0 61372 NULL
169664 +enable_so_devs_max_btrfs_raid_attr_61376 devs_max btrfs_raid_attr 0 61376 NULL
169665 +enable_so_bfa_cb_ioim_done_fndecl_61381 bfa_cb_ioim_done fndecl 7 61381 NULL
169666 +enable_so_ip6gre_tunnel_change_mtu_fndecl_61385 ip6gre_tunnel_change_mtu fndecl 2 61385 NULL
169667 +enable_so_sections_per_block_vardecl_memory_c_61386 sections_per_block vardecl_memory.c 0 61386 NULL nohasharray
169668 +enable_so_osc_checksum_type_seq_write_fndecl_61386 osc_checksum_type_seq_write fndecl 3 61386 &enable_so_sections_per_block_vardecl_memory_c_61386
169669 +enable_so_xfs_dir3_data_read_fndecl_61387 xfs_dir3_data_read fndecl 3 61387 NULL
169670 +enable_so_npages_nfs_page_array_61390 npages nfs_page_array 0 61390 NULL nohasharray
169671 +enable_so_num_msix_vectors_i40evf_adapter_61390 num_msix_vectors i40evf_adapter 0 61390 &enable_so_npages_nfs_page_array_61390
169672 +enable_so_byte_len_at24_platform_data_61393 byte_len at24_platform_data 0 61393 NULL
169673 +enable_so___pci_register_driver_fndecl_61400 __pci_register_driver fndecl 0 61400 NULL
169674 +enable_so_parent_affs_tail_61402 parent affs_tail 0 61402 NULL
169675 +enable_so_alloc_ts_config_fndecl_61404 alloc_ts_config fndecl 1 61404 NULL
169676 +enable_so_buf_sz_vardecl_stmmac_main_c_61408 buf_sz vardecl_stmmac_main.c 0 61408 NULL
169677 +enable_so_pcpu_alloc_alloc_info_fndecl_61414 pcpu_alloc_alloc_info fndecl 1-2 61414 NULL nohasharray
169678 +enable_so_keylen_tcp_md5sig_key_61414 keylen tcp_md5sig_key 0 61414 &enable_so_pcpu_alloc_alloc_info_fndecl_61414
169679 +enable_so_size_aper_size_info_lvl2_61417 size aper_size_info_lvl2 0 61417 NULL nohasharray
169680 +enable_so_get_pas_size_fndecl_61417 get_pas_size fndecl 0 61417 &enable_so_size_aper_size_info_lvl2_61417
169681 +enable_so_nservers_mc5_params_61428 nservers mc5_params 0 61428 NULL nohasharray
169682 +enable_so_tst_size_idt77252_dev_61428 tst_size idt77252_dev 0 61428 &enable_so_nservers_mc5_params_61428
169683 +enable_so_quirk_simultaneous_discovery_read_fndecl_61433 quirk_simultaneous_discovery_read fndecl 3 61433 NULL
169684 +enable_so_raw_setsockopt_fndecl_61435 raw_setsockopt fndecl 5 61435 NULL nohasharray
169685 +enable_so_pkey_index_mlx5_qp_path_61435 pkey_index mlx5_qp_path 0 61435 &enable_so_raw_setsockopt_fndecl_61435 nohasharray
169686 +enable_so_length_drm_mode_create_blob_61435 length drm_mode_create_blob 0 61435 &enable_so_pkey_index_mlx5_qp_path_61435 nohasharray
169687 +enable_so_rows_omap4_keypad_61435 rows omap4_keypad 0 61435 &enable_so_length_drm_mode_create_blob_61435
169688 +enable_so_nd_opt_len_nd_opt_hdr_61437 nd_opt_len nd_opt_hdr 0 61437 NULL
169689 +enable_so_lbs_rdbbp_read_fndecl_61438 lbs_rdbbp_read fndecl 3 61438 NULL
169690 +enable_so_group_size_efs_sb_info_61441 group_size efs_sb_info 0 61441 NULL
169691 +enable_so_bulk_out_size_usb_serial_driver_61450 bulk_out_size usb_serial_driver 0 61450 NULL
169692 +enable_so_total_size_iscsi_segment_61454 total_size iscsi_segment 0 61454 NULL
169693 +enable_so_ocfs2_zero_range_for_truncate_fndecl_61461 ocfs2_zero_range_for_truncate fndecl 3-4 61461 NULL nohasharray
169694 +enable_so_next_interface_id_usb_configuration_61461 next_interface_id usb_configuration 0 61461 &enable_so_ocfs2_zero_range_for_truncate_fndecl_61461
169695 +enable_so_ath6kl_keepalive_read_fndecl_61468 ath6kl_keepalive_read fndecl 3 61468 NULL
169696 +enable_so_irlan_client_ctrl_connect_confirm_fndecl_61475 irlan_client_ctrl_connect_confirm fndecl 5 61475 NULL
169697 +enable_so_ubi_eba_write_leb_st_fndecl_61476 ubi_eba_write_leb_st fndecl 5 61476 NULL
169698 +enable_so_buf_kern_offset_ebt_entries_buf_state_61478 buf_kern_offset ebt_entries_buf_state 0 61478 NULL
169699 +enable_so_dreq_iss_dccp_request_sock_61480 dreq_iss dccp_request_sock 0 61480 NULL
169700 +enable_so_radix_tree_maybe_preload_fndecl_61481 radix_tree_maybe_preload fndecl 0 61481 NULL
169701 +enable_so_new_chunk_mdp_superblock_s_61482 new_chunk mdp_superblock_s 0 61482 NULL
169702 +enable_so_nmatches_tcf_ematch_tree_hdr_61486 nmatches tcf_ematch_tree_hdr 0 61486 NULL
169703 +enable_so_nlen_ubifs_dent_node_61488 nlen ubifs_dent_node 0 61488 NULL
169704 +enable_so_adau17x1_set_dai_pll_fndecl_61491 adau17x1_set_dai_pll fndecl 4-5 61491 NULL nohasharray
169705 +enable_so_generic_file_read_iter_fndecl_61491 generic_file_read_iter fndecl 0 61491 &enable_so_adau17x1_set_dai_pll_fndecl_61491 nohasharray
169706 +enable_so_dispatch_proc_write_fndecl_61491 dispatch_proc_write fndecl 3 61491 &enable_so_generic_file_read_iter_fndecl_61491
169707 +enable_so_rs_init_fndecl_61492 rs_init fndecl 6-1 61492 NULL
169708 +enable_so_f_adc_hackrf_dev_61493 f_adc hackrf_dev 0 61493 NULL
169709 +enable_so_ccp_init_data_fndecl_61495 ccp_init_data fndecl 5-4 61495 NULL nohasharray
169710 +enable_so_writing_st_buffer_61495 writing st_buffer 0 61495 &enable_so_ccp_init_data_fndecl_61495
169711 +enable_so_vb_size_drm_savage_cmdbuf_61501 vb_size drm_savage_cmdbuf 0 61501 NULL
169712 +enable_so_mgag200_gem_create_fndecl_61507 mgag200_gem_create fndecl 2 61507 NULL nohasharray
169713 +enable_so_width_pwc_device_61507 width pwc_device 0 61507 &enable_so_mgag200_gem_create_fndecl_61507
169714 +enable_so_count_sgentry_61508 count sgentry 0 61508 NULL
169715 +enable_so_depth_cx8800_fmt_61510 depth cx8800_fmt 0 61510 NULL
169716 +enable_so_maxcontacts_wtp_data_61511 maxcontacts wtp_data 0 61511 NULL
169717 +enable_so_total_sect_fat_boot_sector_61513 total_sect fat_boot_sector 0 61513 NULL
169718 +enable_so_nfs_fscache_get_super_cookie_fndecl_61520 nfs_fscache_get_super_cookie fndecl 3 61520 NULL
169719 +enable_so_sys_write_fndecl_61526 sys_write fndecl 3-0 61526 NULL
169720 +enable_so_irq_base_regmap_irq_chip_data_61532 irq_base regmap_irq_chip_data 0 61532 NULL
169721 +enable_so_strlcpy_fndecl_61539 strlcpy fndecl 0 61539 NULL
169722 +enable_so_tag_be_async_event_grp5_pvid_state_61541 tag be_async_event_grp5_pvid_state 0 61541 NULL
169723 +enable_so_drm_buffer_alloc_fndecl_61542 drm_buffer_alloc fndecl 2 61542 NULL
169724 +enable_so_osst_do_scsi_fndecl_61545 osst_do_scsi fndecl 4 61545 NULL
169725 +enable_so_iterate_dir_item_fndecl_61553 iterate_dir_item fndecl 0 61553 NULL
169726 +enable_so_rts_threshold_read_fndecl_61555 rts_threshold_read fndecl 3 61555 NULL
169727 +enable_so_datalen_iscsi_tcp_recv_61556 datalen iscsi_tcp_recv 0 61556 NULL
169728 +enable_so_xdr_init_decode_pages_fndecl_61557 xdr_init_decode_pages fndecl 4 61557 NULL
169729 +enable_so_get_gart_ranges_callback_fndecl_61560 get_gart_ranges_callback fndecl 1-2 61560 NULL
169730 +enable_so_aoedev_flush_fndecl_61565 aoedev_flush fndecl 2 61565 NULL
169731 +enable_so_ei_block_ext4_extent_idx_61567 ei_block ext4_extent_idx 0 61567 NULL nohasharray
169732 +enable_so_mtip_hw_read_flags_fndecl_61567 mtip_hw_read_flags fndecl 3 61567 &enable_so_ei_block_ext4_extent_idx_61567
169733 +enable_so__fdt_splice_struct_fndecl_61570 _fdt_splice_struct fndecl 3-4 61570 NULL
169734 +enable_so_smiapp_read_fndecl_61581 smiapp_read fndecl 2 61581 NULL
169735 +enable_so_pos_in_item_tree_balance_61583 pos_in_item tree_balance 0 61583 NULL
169736 +enable_so_ieee80211_if_read_rc_rateidx_mcs_mask_5ghz_fndecl_61588 ieee80211_if_read_rc_rateidx_mcs_mask_5ghz fndecl 3 61588 NULL
169737 +enable_so_usb_internal_control_msg_fndecl_61589 usb_internal_control_msg fndecl 5-2 61589 NULL
169738 +enable_so_blkdev_issue_write_same_fndecl_61596 blkdev_issue_write_same fndecl 2-3 61596 NULL
169739 +enable_so_hdisplay_moderec_61597 hdisplay moderec 0 61597 NULL
169740 +enable_so___hci_cmd_sync_fndecl_61598 __hci_cmd_sync fndecl 3 61598 NULL
169741 +enable_so_ext4_max_size_fndecl_61600 ext4_max_size fndecl 0-1 61600 NULL
169742 +enable_so_head_align_brcmf_sdio_61610 head_align brcmf_sdio 0 61610 NULL nohasharray
169743 +enable_so_filternum_dvb_demux_61610 filternum dvb_demux 0 61610 &enable_so_head_align_brcmf_sdio_61610
169744 +enable_so_mic_virtio_copy_to_user_fndecl_61611 mic_virtio_copy_to_user fndecl 3-4 61611 NULL nohasharray
169745 +enable_so_extra_priv_size_ohci_driver_overrides_61611 extra_priv_size ohci_driver_overrides 0 61611 &enable_so_mic_virtio_copy_to_user_fndecl_61611
169746 +enable_so_btrfs_chunk_item_size_fndecl_61613 btrfs_chunk_item_size fndecl 0-1 61613 NULL
169747 +enable_so_write_file_debug_fndecl_61615 write_file_debug fndecl 3 61615 NULL
169748 +enable_so_eth_change_mtu_fndecl_61617 eth_change_mtu fndecl 2 61617 NULL
169749 +enable_so_af_alg_make_sg_fndecl_61624 af_alg_make_sg fndecl 0-3 61624 NULL
169750 +enable_so_efx_tx_max_skb_descs_fndecl_61628 efx_tx_max_skb_descs fndecl 0 61628 NULL
169751 +enable_so_ext4_xattr_shift_entries_fndecl_61629 ext4_xattr_shift_entries fndecl 2 61629 NULL
169752 +enable_so____alloc_bootmem_node_nopanic_fndecl_61630 ___alloc_bootmem_node_nopanic fndecl 3-2-4-5 61630 NULL
169753 +enable_so_nr_slots_b43_dmaring_61631 nr_slots b43_dmaring 0 61631 NULL
169754 +enable_so_bio_advance_fndecl_61635 bio_advance fndecl 2 61635 NULL
169755 +enable_so_btrfsic_process_written_block_fndecl_61638 btrfsic_process_written_block fndecl 2 61638 NULL
169756 +enable_so_ieee80211_if_read_dropped_frames_ttl_fndecl_61639 ieee80211_if_read_dropped_frames_ttl fndecl 3 61639 NULL
169757 +enable_so_iwl_dbgfs_sram_read_fndecl_61642 iwl_dbgfs_sram_read fndecl 3 61642 NULL nohasharray
169758 +enable_so_security_getprocattr_fndecl_61642 security_getprocattr fndecl 0 61642 &enable_so_iwl_dbgfs_sram_read_fndecl_61642
169759 +enable_so_spidev_write_fndecl_61645 spidev_write fndecl 3 61645 NULL
169760 +enable_so_vc_bottom_vc_data_61647 vc_bottom vc_data 0 61647 NULL nohasharray
169761 +enable_so_sci_req_tx_bytes_fndecl_61647 sci_req_tx_bytes fndecl 0 61647 &enable_so_vc_bottom_vc_data_61647 nohasharray
169762 +enable_so_index_count_applesmc_registers_61647 index_count applesmc_registers 0 61647 &enable_so_sci_req_tx_bytes_fndecl_61647
169763 +enable_so_height_cx23885_dev_61651 height cx23885_dev 0 61651 NULL
169764 +enable_so_security_socket_sendmsg_fndecl_61654 security_socket_sendmsg fndecl 0 61654 NULL
169765 +enable_so_anode_lookup_fndecl_61656 anode_lookup fndecl 0-3-2 61656 NULL
169766 +enable_so_sdio_align_size_fndecl_61658 sdio_align_size fndecl 0-2 61658 NULL
169767 +enable_so_min_io_size_ubi_device_info_61673 min_io_size ubi_device_info 0 61673 NULL
169768 +enable_so_sys_msgsnd_fndecl_61674 sys_msgsnd fndecl 3 61674 NULL nohasharray
169769 +enable_so_comm_write_fndecl_61674 comm_write fndecl 3 61674 &enable_so_sys_msgsnd_fndecl_61674
169770 +enable_so_len_l2cap_cmd_hdr_61676 len l2cap_cmd_hdr 0 61676 NULL
169771 +enable_so_sd_fsb2bb_shift_gfs2_sbd_61677 sd_fsb2bb_shift gfs2_sbd 0 61677 NULL
169772 +enable_so_page_size_ms_boot_attr_info_61681 page_size ms_boot_attr_info 0 61681 NULL
169773 +enable_so_sv_max_mesg_svc_serv_61683 sv_max_mesg svc_serv 0 61683 NULL
169774 +enable_so_SyS_io_getevents_fndecl_61684 SyS_io_getevents fndecl 3 61684 NULL
169775 +enable_so_ip_clusters_ocfs2_inode_info_61689 ip_clusters ocfs2_inode_info 0 61689 NULL
169776 +enable_so_cma_set_req_event_data_fndecl_61691 cma_set_req_event_data fndecl 4 61691 NULL
169777 +enable_so_batadv_transtable_search_fndecl_61693 batadv_transtable_search fndecl 4 61693 NULL
169778 +enable_so_ieee80211_rx_mgmt_assoc_resp_fndecl_61694 ieee80211_rx_mgmt_assoc_resp fndecl 3 61694 NULL
169779 +enable_so_qib_ud_rcv_fndecl_61701 qib_ud_rcv fndecl 5 61701 NULL
169780 +enable_so_segnum_nilfs_segment_entry_61704 segnum nilfs_segment_entry 0 61704 NULL
169781 +enable_so_find_key_fndecl_61711 find_key fndecl 2 61711 NULL
169782 +enable_so_paclen_ax25_cb_61712 paclen ax25_cb 0 61712 NULL
169783 +enable_so_xtypecpy_gru_control_block_extended_61714 xtypecpy gru_control_block_extended 0 61714 NULL
169784 +enable_so_bfad_iocmd_cfg_fcpim_fndecl_61715 bfad_iocmd_cfg_fcpim fndecl 0 61715 NULL
169785 +enable_so_BytesPerSector_ms_lib_ctrl_61717 BytesPerSector ms_lib_ctrl 0 61717 NULL
169786 +enable_so_do_lfb_size_fndecl_61720 do_lfb_size fndecl 0 61720 NULL
169787 +enable_so_dm_bufio_new_fndecl_61727 dm_bufio_new fndecl 2 61727 NULL
169788 +enable_so_btrfs_prev_leaf_fndecl_61728 btrfs_prev_leaf fndecl 0 61728 NULL
169789 +enable_so_n_patterns_cfg80211_wowlan_61737 n_patterns cfg80211_wowlan 0 61737 NULL
169790 +enable_so_pci_msix_vec_count_fndecl_61742 pci_msix_vec_count fndecl 0 61742 NULL
169791 +enable_so_nvkm_disp_ctor_fndecl_61743 nvkm_disp_ctor fndecl 4 61743 NULL
169792 +enable_so_count_nfs_pgio_args_61745 count nfs_pgio_args 0 61745 NULL nohasharray
169793 +enable_so_wmi_call_fndecl_61745 wmi_call fndecl 4 61745 &enable_so_count_nfs_pgio_args_61745
169794 +enable_so_h_len_xlog_rec_header_61748 h_len xlog_rec_header 0 61748 NULL nohasharray
169795 +enable_so_drbd_recv_short_fndecl_61748 drbd_recv_short fndecl 3-0 61748 &enable_so_h_len_xlog_rec_header_61748 nohasharray
169796 +enable_so_smt_add_frame_len_fndecl_61748 smt_add_frame_len fndecl 2 61748 &enable_so_drbd_recv_short_fndecl_61748
169797 +enable_so_mon_buff_area_alloc_fndecl_61752 mon_buff_area_alloc fndecl 2 61752 NULL
169798 +enable_so_SYSC_add_key_fndecl_61756 SYSC_add_key fndecl 4 61756 NULL
169799 +enable_so_sl_count_ip_sf_socklist_61758 sl_count ip_sf_socklist 0 61758 NULL
169800 +enable_so_rsp_residual_count_sts_entry_24xx_61762 rsp_residual_count sts_entry_24xx 0 61762 NULL
169801 +enable_so_len_s_skfp_ioctl_61764 len s_skfp_ioctl 0 61764 NULL
169802 +enable_so_height_zr364xx_camera_61781 height zr364xx_camera 0 61781 NULL nohasharray
169803 +enable_so_xlog_recover_add_to_cont_trans_fndecl_61781 xlog_recover_add_to_cont_trans fndecl 4 61781 &enable_so_height_zr364xx_camera_61781
169804 +enable_so_pclk_max_ov6650_61784 pclk_max ov6650 0 61784 NULL
169805 +enable_so_xdr_enter_page_fndecl_61791 xdr_enter_page fndecl 2 61791 NULL
169806 +enable_so_num_gpios_htcpld_chip_platform_data_61792 num_gpios htcpld_chip_platform_data 0 61792 NULL
169807 +enable_so_address_length_pcc_memory_resource_61793 address_length pcc_memory_resource 0 61793 NULL
169808 +enable_so_num_arfs_vnic_enet_config_61794 num_arfs vnic_enet_config 0 61794 NULL
169809 +enable_so_size_snd_cs46xx_region_61796 size snd_cs46xx_region 0 61796 NULL
169810 +enable_so_vxfs_bmap_typed_fndecl_61801 vxfs_bmap_typed fndecl 0-2 61801 NULL
169811 +enable_so_imm_count_iscsi_task_61804 imm_count iscsi_task 0 61804 NULL
169812 +enable_so_end_map_range_61813 end map_range 0 61813 NULL nohasharray
169813 +enable_so_fat_alloc_clusters_fndecl_61813 fat_alloc_clusters fndecl 0 61813 &enable_so_end_map_range_61813
169814 +enable_so_len_nfs_createargs_61814 len nfs_createargs 0 61814 NULL
169815 +enable_so_m_rsumsize_xfs_mount_61815 m_rsumsize xfs_mount 0 61815 NULL
169816 +enable_so_ttm_get_pages_fndecl_61821 ttm_get_pages fndecl 2 61821 NULL
169817 +enable_so_bnx2x_init_wr_zp_fndecl_61822 bnx2x_init_wr_zp fndecl 3 61822 NULL
169818 +enable_so_tracing_resize_saved_cmdlines_fndecl_61823 tracing_resize_saved_cmdlines fndecl 1 61823 NULL
169819 +enable_so_mmc_switch_status_error_fndecl_61826 mmc_switch_status_error fndecl 0 61826 NULL
169820 +enable_so_SYSC_set_mempolicy_fndecl_61827 SYSC_set_mempolicy fndecl 3 61827 NULL
169821 +enable_so_txq_req_tg3_61834 txq_req tg3 0 61834 NULL nohasharray
169822 +enable_so_xfs_bulkstat_one_fndecl_61834 xfs_bulkstat_one fndecl 2 61834 &enable_so_txq_req_tg3_61834
169823 +enable_so_num_virt_counters_op_x86_model_spec_61835 num_virt_counters op_x86_model_spec 0 61835 NULL
169824 +enable_so_size_rocker_dma_ring_info_61839 size rocker_dma_ring_info 0 61839 NULL
169825 +enable_so_start_segno_free_segmap_info_61843 start_segno free_segmap_info 0 61843 NULL
169826 +enable_so_dib9000_read16_attr_fndecl_61850 dib9000_read16_attr fndecl 4 61850 NULL
169827 +enable_so_ocfs2_xattr_bucket_find_fndecl_61853 ocfs2_xattr_bucket_find fndecl 0-5 61853 NULL
169828 +enable_so_dma_len_rx_fst_card_info_61862 dma_len_rx fst_card_info 0 61862 NULL
169829 +enable_so_num_mpts_mlx4_caps_61866 num_mpts mlx4_caps 0 61866 NULL
169830 +enable_so_f_read_portcntrs_qib_devdata_61868 f_read_portcntrs qib_devdata 0 61868 NULL
169831 +enable_so___section_nr_fndecl_61869 __section_nr fndecl 0 61869 NULL
169832 +enable_so_nfs4_file_fsync_fndecl_61872 nfs4_file_fsync fndecl 2-3 61872 NULL
169833 +enable_so_handle_eviocgbit_fndecl_61874 handle_eviocgbit fndecl 3 61874 NULL
169834 +enable_so_wm5100_set_fll_fndecl_61876 wm5100_set_fll fndecl 4-5 61876 NULL nohasharray
169835 +enable_so_wil_vring_init_tx_fndecl_61876 wil_vring_init_tx fndecl 3 61876 &enable_so_wm5100_set_fll_fndecl_61876
169836 +enable_so_bq_textcnt_max98095_priv_61877 bq_textcnt max98095_priv 0 61877 NULL
169837 +enable_so_mptscsih_change_queue_depth_fndecl_61879 mptscsih_change_queue_depth fndecl 2 61879 NULL
169838 +enable_so_virtinput_cfg_select_fndecl_61880 virtinput_cfg_select fndecl 0 61880 NULL
169839 +enable_so_ehci_urb_done_fndecl_61889 ehci_urb_done fndecl 3 61889 NULL
169840 +enable_so_vp_find_vqs_fndecl_61892 vp_find_vqs fndecl 2 61892 NULL
169841 +enable_so__fdt_packblocks_fndecl_61894 _fdt_packblocks fndecl 4-3 61894 NULL
169842 +enable_so_find_group_orlov_fndecl_61896 find_group_orlov fndecl 0 61896 NULL
169843 +enable_so_srp_alloc_iu_fndecl_61904 srp_alloc_iu fndecl 2 61904 NULL nohasharray
169844 +enable_so_MaxRecvDataSegmentLength_iscsi_conn_ops_61904 MaxRecvDataSegmentLength iscsi_conn_ops 0 61904 &enable_so_srp_alloc_iu_fndecl_61904
169845 +enable_so_maxframe_size_fc_rport_61909 maxframe_size fc_rport 0 61909 NULL
169846 +enable_so_rxsize_channel_data_61912 rxsize channel_data 0 61912 NULL
169847 +enable_so_scsi_track_queue_full_fndecl_61916 scsi_track_queue_full fndecl 2 61916 NULL
169848 +enable_so_cxd2820r_wr_regs_i2c_fndecl_61922 cxd2820r_wr_regs_i2c fndecl 5 61922 NULL
169849 +enable_so_pino_nlink_jffs2_inode_cache_61933 pino_nlink jffs2_inode_cache 0 61933 NULL
169850 +enable_so_net2272_ep_read_fndecl_61935 net2272_ep_read fndecl 0 61935 NULL
169851 +enable_so_alloc_size_ttm_pool_opts_61945 alloc_size ttm_pool_opts 0 61945 NULL
169852 +enable_so_rx_std_ring_mask_tg3_61948 rx_std_ring_mask tg3 0 61948 NULL
169853 +enable_so_pfid_bnx2x_61952 pfid bnx2x 0 61952 NULL
169854 +enable_so_next_ldtentry_61954 next ldtentry 0 61954 NULL
169855 +enable_so_ntrips___thermal_zone_61955 ntrips __thermal_zone 0 61955 NULL
169856 +enable_so_indirect_size_srp_target_port_61962 indirect_size srp_target_port 0 61962 NULL
169857 +enable_so_s_maxbytes_super_block_61963 s_maxbytes super_block 0 61963 NULL
169858 +enable_so_periods_min_snd_pcm_hardware_61965 periods_min snd_pcm_hardware 0 61965 NULL
169859 +enable_so_radeon_audio_calc_cts_fndecl_61966 radeon_audio_calc_cts fndecl 1-4 61966 NULL
169860 +enable_so_nfs_set_pgio_error_fndecl_61975 nfs_set_pgio_error fndecl 3 61975 NULL
169861 +enable_so_physical_for_dev_replace_scrub_page_61977 physical_for_dev_replace scrub_page 0 61977 NULL
169862 +enable_so_qla4xxx_alloc_work_fndecl_61982 qla4xxx_alloc_work fndecl 2 61982 NULL
169863 +enable_so_x25_pacsize_to_bytes_fndecl_61983 x25_pacsize_to_bytes fndecl 0 61983 NULL
169864 +enable_so_qib_verbs_send_dma_fndecl_61985 qib_verbs_send_dma fndecl 7-5-6-3 61985 NULL
169865 +enable_so_opts1_de_desc_61986 opts1 de_desc 0 61986 NULL nohasharray
169866 +enable_so_sub_stripes_map_lookup_61986 sub_stripes map_lookup 0 61986 &enable_so_opts1_de_desc_61986
169867 +enable_so_copydesc_user_fndecl_61988 copydesc_user fndecl 3 61988 NULL
169868 +enable_so_vblank_panel_info_61990 vblank panel_info 0 61990 NULL
169869 +enable_so_num_srq_mlx4_profile_61993 num_srq mlx4_profile 0 61993 NULL
169870 +enable_so_iscsi_login_tx_data_fndecl_61998 iscsi_login_tx_data fndecl 4 61998 NULL
169871 +enable_so_sisusb_write_fndecl_62001 sisusb_write fndecl 3 62001 NULL
169872 +enable_so_sc_reader_svcxprt_rdma_62004 sc_reader svcxprt_rdma 0 62004 NULL
169873 +enable_so___add_discard_entry_fndecl_62006 __add_discard_entry fndecl 4-5 62006 NULL
169874 +enable_so_s3c_hsotg_set_ep_maxpacket_fndecl_62008 s3c_hsotg_set_ep_maxpacket fndecl 3 62008 NULL
169875 +enable_so_ext4_ext_convert_to_initialized_fndecl_62009 ext4_ext_convert_to_initialized fndecl 0 62009 NULL
169876 +enable_so_length_snd_efw_transaction_62012 length snd_efw_transaction 0 62012 NULL
169877 +enable_so_memblock_setclr_flag_fndecl_62013 memblock_setclr_flag fndecl 2-1 62013 NULL
169878 +enable_so_bfad_iocmd_diag_dport_enable_fndecl_62020 bfad_iocmd_diag_dport_enable fndecl 0 62020 NULL
169879 +enable_so_iwl_dbgfs_tof_range_req_ext_read_fndecl_62021 iwl_dbgfs_tof_range_req_ext_read fndecl 3 62021 NULL
169880 +enable_so_size_mtd_blktrans_dev_62024 size mtd_blktrans_dev 0 62024 NULL
169881 +enable_so_nf_bridge_encap_header_len_fndecl_62025 nf_bridge_encap_header_len fndecl 0 62025 NULL
169882 +enable_so_filter_count_rx_used_efx_nic_type_62026 filter_count_rx_used efx_nic_type 0 62026 NULL
169883 +enable_so_encode_diropargs_fndecl_62031 encode_diropargs fndecl 4 62031 NULL
169884 +enable_so_num_qps_mlx4_caps_62033 num_qps mlx4_caps 0 62033 NULL
169885 +enable_so_n_rx_channels_efx_nic_62034 n_rx_channels efx_nic 0 62034 NULL
169886 +enable_so_dev_sectors_r10conf_62035 dev_sectors r10conf 0 62035 NULL
169887 +enable_so_set_advertising_fndecl_62037 set_advertising fndecl 4 62037 NULL
169888 +enable_so_tfcpad_xfrm_state_62038 tfcpad xfrm_state 0 62038 NULL
169889 +enable_so_init_rs_fndecl_62042 init_rs fndecl 5-1 62042 NULL nohasharray
169890 +enable_so_lmm_stripe_count_lov_user_md_v3_62042 lmm_stripe_count lov_user_md_v3 0 62042 &enable_so_init_rs_fndecl_62042
169891 +enable_so_online_queues_nvme_dev_62043 online_queues nvme_dev 0 62043 NULL
169892 +enable_so_flag_count_sg_simple_element_62044 flag_count sg_simple_element 0 62044 NULL
169893 +enable_so_block_aligned_filename_size_ecryptfs_write_tag_70_packet_silly_stack_62050 block_aligned_filename_size ecryptfs_write_tag_70_packet_silly_stack 0 62050 NULL
169894 +enable_so_entries_size_ebt_replace_62051 entries_size ebt_replace 0 62051 NULL
169895 +enable_so_regmap_spi_read_fndecl_62058 regmap_spi_read fndecl 3-5 62058 NULL
169896 +enable_so_ex_offset_extent_s_62059 ex_offset extent_s 0 62059 NULL
169897 +enable_so_num_attr_vgastate_62064 num_attr vgastate 0 62064 NULL
169898 +enable_so_do_tty_write_fndecl_62067 do_tty_write fndecl 5 62067 NULL
169899 +enable_so_cb_stripe_unit_exofs_dt_data_map_62068 cb_stripe_unit exofs_dt_data_map 0 62068 NULL
169900 +enable_so__scsih_change_queue_depth_fndecl_62069 _scsih_change_queue_depth fndecl 2 62069 NULL
169901 +enable_so_ip_vs_send_async_fndecl_62075 ip_vs_send_async fndecl 3 62075 NULL
169902 +enable_so_wBlockSize_ms_bootblock_sysinf_62081 wBlockSize ms_bootblock_sysinf 0 62081 NULL
169903 +enable_so_ieee80211_build_probe_req_fndecl_62084 ieee80211_build_probe_req fndecl 9-7 62084 NULL
169904 +enable_so_rtsx_usb_seq_write_register_fndecl_62088 rtsx_usb_seq_write_register fndecl 3-0 62088 NULL
169905 +enable_so_cur_rx_pos_tegra_spi_data_62091 cur_rx_pos tegra_spi_data 0 62091 NULL
169906 +enable_so_init_shash_alg_62095 init shash_alg 0 62095 NULL
169907 +enable_so_max_xid_bnx2fc_hba_62096 max_xid bnx2fc_hba 0 62096 NULL
169908 +enable_so_bcm_recvmsg_fndecl_62099 bcm_recvmsg fndecl 3 62099 NULL nohasharray
169909 +enable_so_word3_atl1c_recv_ret_status_62099 word3 atl1c_recv_ret_status 0 62099 &enable_so_bcm_recvmsg_fndecl_62099
169910 +enable_so_task_ctx_size_pmu_62102 task_ctx_size pmu 0 62102 NULL
169911 +enable_so_yoffset_fb_var_screeninfo_62110 yoffset fb_var_screeninfo 0 62110 NULL nohasharray
169912 +enable_so_bulk_out_ep_bfusb_data_62110 bulk_out_ep bfusb_data 0 62110 &enable_so_yoffset_fb_var_screeninfo_62110
169913 +enable_so_tx_queue_status_read_fndecl_62113 tx_queue_status_read fndecl 3 62113 NULL
169914 +enable_so_bo_offset_vmw_surface_offset_62116 bo_offset vmw_surface_offset 0 62116 NULL
169915 +enable_so_sched_read_attr_fndecl_62123 sched_read_attr fndecl 3 62123 NULL
169916 +enable_so_vcs_lseek_fndecl_62125 vcs_lseek fndecl 2 62125 NULL
169917 +enable_so___process_deleted_xattr_fndecl_62133 __process_deleted_xattr fndecl 4 62133 NULL
169918 +enable_so_hfs_cat_create_fndecl_62139 hfs_cat_create fndecl 1 62139 NULL
169919 +enable_so_next_setup_data_62142 next setup_data 0 62142 NULL
169920 +enable_so_drbd_recv_all_warn_fndecl_62144 drbd_recv_all_warn fndecl 3 62144 NULL
169921 +enable_so_cciss_tape_cmds_vardecl_cciss_c_62147 cciss_tape_cmds vardecl_cciss.c 0 62147 NULL
169922 +enable_so_tcp_trim_head_fndecl_62157 tcp_trim_head fndecl 3 62157 NULL
169923 +enable_so_ptrace_writedata_fndecl_62158 ptrace_writedata fndecl 4-3 62158 NULL
169924 +enable_so_map_index_to_lba_fndecl_62162 map_index_to_lba fndecl 0-1 62162 NULL
169925 +enable_so_user_frag_sctp_association_62167 user_frag sctp_association 0 62167 NULL nohasharray
169926 +enable_so_alloc_huge_page_fndecl_62167 alloc_huge_page fndecl 2 62167 &enable_so_user_frag_sctp_association_62167
169927 +enable_so_len_scrub_copy_nocow_ctx_62170 len scrub_copy_nocow_ctx 0 62170 NULL
169928 +enable_so_igb_change_mtu_fndecl_62189 igb_change_mtu fndecl 2 62189 NULL
169929 +enable_so_agent_send_response_fndecl_62193 agent_send_response fndecl 7-5 62193 NULL nohasharray
169930 +enable_so_eps_count_ffs_data_62193 eps_count ffs_data 0 62193 &enable_so_agent_send_response_fndecl_62193
169931 +enable_so_rose_sendmsg_fndecl_62194 rose_sendmsg fndecl 3 62194 NULL nohasharray
169932 +enable_so_dm_kvzalloc_fndecl_62194 dm_kvzalloc fndecl 1 62194 &enable_so_rose_sendmsg_fndecl_62194
169933 +enable_so_max_pkt_size_em28xx_62196 max_pkt_size em28xx 0 62196 NULL
169934 +enable_so_maxframe_caifsock_62201 maxframe caifsock 0 62201 NULL nohasharray
169935 +enable_so_wm_adsp_create_control_fndecl_62201 wm_adsp_create_control fndecl 4 62201 &enable_so_maxframe_caifsock_62201
169936 +enable_so_param_count_acpi_evaluate_info_62202 param_count acpi_evaluate_info 0 62202 NULL
169937 +enable_so_inum_size_entry_62204 inum size_entry 0 62204 NULL
169938 +enable_so_locked_rate_snd_sb_62221 locked_rate snd_sb 0 62221 NULL
169939 +enable_so_datainterval_snd_usb_endpoint_62227 datainterval snd_usb_endpoint 0 62227 NULL
169940 +enable_so_sense_len_request_62229 sense_len request 0 62229 NULL
169941 +enable_so_shmem_getpage_gfp_fndecl_62239 shmem_getpage_gfp fndecl 2 62239 NULL
169942 +enable_so_snd_pcm_alloc_vmalloc_buffer_fndecl_62240 snd_pcm_alloc_vmalloc_buffer fndecl 2 62240 NULL
169943 +enable_so_btrfs_set_extent_delalloc_fndecl_62264 btrfs_set_extent_delalloc fndecl 3-2 62264 NULL
169944 +enable_so_num_rxqs_octeon_nic_if_config_62266 num_rxqs octeon_nic_if_config 0 62266 NULL
169945 +enable_so_usable_leb_size_ubi_volume_62272 usable_leb_size ubi_volume 0 62272 NULL
169946 +enable_so_cfpkt_add_body_fndecl_62277 cfpkt_add_body fndecl 3 62277 NULL
169947 +enable_so_msb_get_free_block_fndecl_62282 msb_get_free_block fndecl 0 62282 NULL
169948 +enable_so_email_size_x509_parse_context_62283 email_size x509_parse_context 0 62283 NULL
169949 +enable_so_gx1_line_delta_fndecl_62286 gx1_line_delta fndecl 0 62286 NULL
169950 +enable_so_omfs_scan_list_fndecl_62289 omfs_scan_list fndecl 2 62289 NULL
169951 +enable_so___kvm_read_guest_page_fndecl_62291 __kvm_read_guest_page fndecl 2-5 62291 NULL
169952 +enable_so_num_arq_entries_i40e_adminq_info_62293 num_arq_entries i40e_adminq_info 0 62293 NULL
169953 +enable_so_max_io_mvumi_hba_62301 max_io mvumi_hba 0 62301 NULL
169954 +enable_so_ceph_llseek_fndecl_62305 ceph_llseek fndecl 2 62305 NULL
169955 +enable_so_sb_rbmblocks_xfs_sb_62307 sb_rbmblocks xfs_sb 0 62307 NULL
169956 +enable_so_rtl2832_sdr_convert_stream_fndecl_62308 rtl2832_sdr_convert_stream fndecl 0-4 62308 NULL
169957 +enable_so_ircomm_tty_connect_confirm_fndecl_62310 ircomm_tty_connect_confirm fndecl 4-5 62310 NULL nohasharray
169958 +enable_so_iov_data_count_iscsi_cmd_62310 iov_data_count iscsi_cmd 0 62310 &enable_so_ircomm_tty_connect_confirm_fndecl_62310
169959 +enable_so_map_extent_mft_record_fndecl_62312 map_extent_mft_record fndecl 2 62312 NULL nohasharray
169960 +enable_so_alloc_ctrl_packet_fndecl_62312 alloc_ctrl_packet fndecl 1 62312 &enable_so_map_extent_mft_record_fndecl_62312
169961 +enable_so_ss_channels_snd_rme9652_62315 ss_channels snd_rme9652 0 62315 NULL
169962 +enable_so_erst_writer_fndecl_62318 erst_writer fndecl 7 62318 NULL
169963 +enable_so_vlan_tag_ocrdma_eth_vlan_62320 vlan_tag ocrdma_eth_vlan 0 62320 NULL
169964 +enable_so_ext2_new_block_fndecl_62326 ext2_new_block fndecl 0-2 62326 NULL
169965 +enable_so_qib_get_user_pages_fndecl_62338 qib_get_user_pages fndecl 1 62338 NULL nohasharray
169966 +enable_so_hdrlen_adm8211_tx_ring_info_62338 hdrlen adm8211_tx_ring_info 0 62338 &enable_so_qib_get_user_pages_fndecl_62338 nohasharray
169967 +enable_so_bbtskipbytes_denali_nand_info_62338 bbtskipbytes denali_nand_info 0 62338 &enable_so_hdrlen_adm8211_tx_ring_info_62338
169968 +enable_so_pagf_flcount_xfs_perag_62340 pagf_flcount xfs_perag 0 62340 NULL
169969 +enable_so_reiserfs_update_sd_size_fndecl_62345 reiserfs_update_sd_size fndecl 3 62345 NULL nohasharray
169970 +enable_so_lov_emerg_alloc_fndecl_62345 lov_emerg_alloc fndecl 1 62345 &enable_so_reiserfs_update_sd_size_fndecl_62345
169971 +enable_so_write_file_spectral_bins_fndecl_62347 write_file_spectral_bins fndecl 3 62347 NULL
169972 +enable_so_pcl_status_pcl_62348 pcl_status pcl 0 62348 NULL
169973 +enable_so_C_SYSC_select_fndecl_62350 C_SYSC_select fndecl 1 62350 NULL
169974 +enable_so_mpi_resize_fndecl_62353 mpi_resize fndecl 2 62353 NULL
169975 +enable_so_raid56_parity_write_fndecl_62355 raid56_parity_write fndecl 0-4 62355 NULL
169976 +enable_so_reglen_bfad_s_62360 reglen bfad_s 0 62360 NULL
169977 +enable_so_fm10k_iov_alloc_data_fndecl_62361 fm10k_iov_alloc_data fndecl 2 62361 NULL
169978 +enable_so_rawv6_sendmsg_fndecl_62363 rawv6_sendmsg fndecl 3 62363 NULL
169979 +enable_so_ts_read_fndecl_62364 ts_read fndecl 3 62364 NULL
169980 +enable_so_drxbsp_i2c_write_read_fndecl_62366 drxbsp_i2c_write_read fndecl 5-2 62366 NULL
169981 +enable_so_punit_base2_intel_pmc_ipc_dev_62373 punit_base2 intel_pmc_ipc_dev 0 62373 NULL
169982 +enable_so_num_subauth_cifs_sid_62374 num_subauth cifs_sid 0 62374 NULL
169983 +enable_so_num_entries_compat_arpt_replace_62377 num_entries compat_arpt_replace 0 62377 NULL nohasharray
169984 +enable_so_fib_count_nexthops_fndecl_62377 fib_count_nexthops fndecl 0 62377 &enable_so_num_entries_compat_arpt_replace_62377
169985 +enable_so_clusterip_proc_write_fndecl_62378 clusterip_proc_write fndecl 3 62378 NULL
169986 +enable_so_new_chunk_mdp_superblock_1_62380 new_chunk mdp_superblock_1 0 62380 NULL
169987 +enable_so_efx_wanted_parallelism_fndecl_62383 efx_wanted_parallelism fndecl 0 62383 NULL nohasharray
169988 +enable_so_max_cnt_ocrdma_qp_hwq_info_62383 max_cnt ocrdma_qp_hwq_info 0 62383 &enable_so_efx_wanted_parallelism_fndecl_62383
169989 +enable_so_ivsize_aead_alg_62386 ivsize aead_alg 0 62386 NULL
169990 +enable_so_m_blkbb_log_xfs_mount_62391 m_blkbb_log xfs_mount 0 62391 NULL
169991 +enable_so___generic_block_fiemap_fndecl_62394 __generic_block_fiemap fndecl 4 62394 NULL nohasharray
169992 +enable_so_xfer_to_user_fndecl_62394 xfer_to_user fndecl 3 62394 &enable_so___generic_block_fiemap_fndecl_62394
169993 +enable_so_hwCBP_td_62396 hwCBP td 0 62396 NULL
169994 +enable_so_len_scifioctl_node_ids_62402 len scifioctl_node_ids 0 62402 NULL
169995 +enable_so_pty_write_fndecl_62406 pty_write fndecl 3 62406 NULL nohasharray
169996 +enable_so_tnode_new_fndecl_62406 tnode_new fndecl 3 62406 &enable_so_pty_write_fndecl_62406
169997 +enable_so_segment_acpi_pci_root_62407 segment acpi_pci_root 0 62407 NULL
169998 +enable_so_rtsx_usb_get_rsp_fndecl_62408 rtsx_usb_get_rsp fndecl 2-0 62408 NULL nohasharray
169999 +enable_so_do_huge_pmd_wp_page_fndecl_62408 do_huge_pmd_wp_page fndecl 3 62408 &enable_so_rtsx_usb_get_rsp_fndecl_62408 nohasharray
170000 +enable_so_fill_holes_fndecl_62408 fill_holes fndecl 4-5 62408 &enable_so_do_huge_pmd_wp_page_fndecl_62408
170001 +enable_so_gfs2_log_bmap_fndecl_62411 gfs2_log_bmap fndecl 0 62411 NULL
170002 +enable_so_unmap_page_range_fndecl_62415 unmap_page_range fndecl 4-3 62415 NULL
170003 +enable_so_adap_id_pca954x_platform_mode_62418 adap_id pca954x_platform_mode 0 62418 NULL
170004 +enable_so_data_offset_v4l2_plane_62423 data_offset v4l2_plane 0 62423 NULL
170005 +enable_so_WIL_GET_BITS_fndecl_62424 WIL_GET_BITS fndecl 0-3-2-1 62424 NULL
170006 +enable_so_set_brk_fndecl_62430 set_brk fndecl 2 62430 NULL nohasharray
170007 +enable_so_io_size_xfs_ioend_62430 io_size xfs_ioend 0 62430 &enable_so_set_brk_fndecl_62430
170008 +enable_so_sctp_setsockopt_fndecl_62439 sctp_setsockopt fndecl 5 62439 NULL
170009 +enable_so_rx_urb_size_lan78xx_net_62443 rx_urb_size lan78xx_net 0 62443 NULL nohasharray
170010 +enable_so_sum_link_node_ref_fndecl_62443 sum_link_node_ref fndecl 3-4 62443 &enable_so_rx_urb_size_lan78xx_net_62443
170011 +enable_so_rx_dropped_read_fndecl_62444 rx_dropped_read fndecl 3 62444 NULL nohasharray
170012 +enable_so_openings_ahc_linux_device_62444 openings ahc_linux_device 0 62444 &enable_so_rx_dropped_read_fndecl_62444
170013 +enable_so___videobuf_copy_stream_fndecl_62450 __videobuf_copy_stream fndecl 0-4 62450 NULL
170014 +enable_so_lpfc_sli4_diag_fcport_reg_setup_fndecl_62456 lpfc_sli4_diag_fcport_reg_setup fndecl 0 62456 NULL
170015 +enable_so_btrfs_new_inode_fndecl_62463 btrfs_new_inode fndecl 7 62463 NULL
170016 +enable_so_lower_offset_skb_seq_state_62465 lower_offset skb_seq_state 0 62465 NULL
170017 +enable_so_ipx_recvmsg_fndecl_62469 ipx_recvmsg fndecl 3 62469 NULL nohasharray
170018 +enable_so_get_pad_size_fndecl_62469 get_pad_size fndecl 0-2-1-3 62469 &enable_so_ipx_recvmsg_fndecl_62469
170019 +enable_so_ram_alignment_fndecl_62470 ram_alignment fndecl 0 62470 NULL
170020 +enable_so_payload_bytes_controlvm_message_header_62474 payload_bytes controlvm_message_header 0 62474 NULL
170021 +enable_so_page_size_mspro_block_data_62479 page_size mspro_block_data 0 62479 NULL
170022 +enable_so___netlink_kernel_create_fndecl_62480 __netlink_kernel_create fndecl 2 62480 NULL
170023 +enable_so_fw_stats_bus_myri10ge_slice_state_62482 fw_stats_bus myri10ge_slice_state 0 62482 NULL
170024 +enable_so_ide_end_rq_fndecl_62486 ide_end_rq fndecl 4-3 62486 NULL nohasharray
170025 +enable_so_rx_ring_tail_sc92031_priv_62486 rx_ring_tail sc92031_priv 0 62486 &enable_so_ide_end_rq_fndecl_62486
170026 +enable_so_mlx5_ib_reg_user_mr_fndecl_62488 mlx5_ib_reg_user_mr fndecl 4-2-3 62488 NULL nohasharray
170027 +enable_so_oh_len_xlog_op_header_62488 oh_len xlog_op_header 0 62488 &enable_so_mlx5_ib_reg_user_mr_fndecl_62488
170028 +enable_so_symsize_persistent_ram_ecc_info_62489 symsize persistent_ram_ecc_info 0 62489 NULL
170029 +enable_so_residual_len_sts_entry_fx00_62491 residual_len sts_entry_fx00 0 62491 NULL nohasharray
170030 +enable_so_dlen_ippp_ccp_reset_state_62491 dlen ippp_ccp_reset_state 0 62491 &enable_so_residual_len_sts_entry_fx00_62491
170031 +enable_so_filemap_write_and_wait_range_fndecl_62492 filemap_write_and_wait_range fndecl 0-2-3 62492 NULL nohasharray
170032 +enable_so_svc_sock_setbufsize_fndecl_62492 svc_sock_setbufsize fndecl 2 62492 &enable_so_filemap_write_and_wait_range_fndecl_62492
170033 +enable_so_evtchn_write_fndecl_62493 evtchn_write fndecl 3 62493 NULL
170034 +enable_so_try_charge_fndecl_62496 try_charge fndecl 0 62496 NULL
170035 +enable_so_vmci_transport_set_buffer_size_fndecl_62498 vmci_transport_set_buffer_size fndecl 2 62498 NULL
170036 +enable_so_de_type_gfs2_dirent_62502 de_type gfs2_dirent 0 62502 NULL
170037 +enable_so_max_enic_rfs_flw_tbl_62505 max enic_rfs_flw_tbl 0 62505 NULL
170038 +enable_so_rq_tailsz_smb_rqst_62506 rq_tailsz smb_rqst 0 62506 NULL
170039 +enable_so_jade_ale_bkm_hw_62507 jade_ale bkm_hw 0 62507 NULL
170040 +enable_so_sgs_per_request_skd_device_62508 sgs_per_request skd_device 0 62508 NULL
170041 +enable_so_mpage_alloc_fndecl_62512 mpage_alloc fndecl 2-3 62512 NULL
170042 +enable_so_dma_phys_netup_unidvb_dev_62519 dma_phys netup_unidvb_dev 0 62519 NULL
170043 +enable_so_batadv_is_ap_isolated_fndecl_62523 batadv_is_ap_isolated fndecl 4 62523 NULL
170044 +enable_so_rx_buf_sz_iadev_priv_62524 rx_buf_sz iadev_priv 0 62524 NULL
170045 +enable_so_local_len_t3_rdma_read_wr_62533 local_len t3_rdma_read_wr 0 62533 NULL
170046 +enable_so_kvm_host_page_size_fndecl_62535 kvm_host_page_size fndecl 0-2 62535 NULL
170047 +enable_so_len_ErrMsg_62547 len ErrMsg 0 62547 NULL
170048 +enable_so___ext4_get_inode_loc_fndecl_62551 __ext4_get_inode_loc fndecl 0 62551 NULL
170049 +enable_so_num_cq_entries_hba_parameters_62556 num_cq_entries hba_parameters 0 62556 NULL
170050 +enable_so_rsi_sdio_host_intf_read_pkt_fndecl_62557 rsi_sdio_host_intf_read_pkt fndecl 3 62557 NULL
170051 +enable_so_lx_framebuffer_size_fndecl_62562 lx_framebuffer_size fndecl 0 62562 NULL
170052 +enable_so_wDatagramLength_usb_cdc_ncm_dpe16_62564 wDatagramLength usb_cdc_ncm_dpe16 0 62564 NULL
170053 +enable_so_outbuf_dma_ati_remote_62567 outbuf_dma ati_remote 0 62567 NULL
170054 +enable_so_svc_pool_map_get_fndecl_62569 svc_pool_map_get fndecl 0 62569 NULL
170055 +enable_so_numscales_vardecl_longhaul_c_62570 numscales vardecl_longhaul.c 0 62570 NULL
170056 +enable_so_get_active_stripe_fndecl_62581 get_active_stripe fndecl 2 62581 NULL
170057 +enable_so_btrfs_check_data_free_space_fndecl_62583 btrfs_check_data_free_space fndecl 0 62583 NULL
170058 +enable_so_xenfb_write_fndecl_62599 xenfb_write fndecl 3 62599 NULL
170059 +enable_so_mon_bin_dev0_vardecl_mon_bin_c_62600 mon_bin_dev0 vardecl_mon_bin.c 0 62600 NULL
170060 +enable_so_i2c_rd_fndecl_62601 i2c_rd fndecl 4 62601 NULL
170061 +enable_so___alloc_bootmem_low_fndecl_62604 __alloc_bootmem_low fndecl 2-1-3 62604 NULL nohasharray
170062 +enable_so_max_header_size_irlan_cb_62604 max_header_size irlan_cb 0 62604 &enable_so___alloc_bootmem_low_fndecl_62604
170063 +enable_so_ext4_xattr_check_names_fndecl_62605 ext4_xattr_check_names fndecl 0 62605 NULL
170064 +enable_so_agi_root_xfs_agi_62607 agi_root xfs_agi 0 62607 NULL
170065 +enable_so_get_user_pages_unlocked_fndecl_62612 get_user_pages_unlocked fndecl 0-3 62612 NULL
170066 +enable_so_pci_sriov_set_totalvfs_fndecl_62615 pci_sriov_set_totalvfs fndecl 2 62615 NULL
170067 +enable_so_cell_locker_fndecl_62618 cell_locker fndecl 2 62618 NULL
170068 +enable_so_hor_offs_align_fimc_variant_62619 hor_offs_align fimc_variant 0 62619 NULL
170069 +enable_so_usb_string_fndecl_62624 usb_string fndecl 0 62624 NULL
170070 +enable_so_l2linesize_linelock_62626 l2linesize linelock 0 62626 NULL
170071 +enable_so_min_pkt_size_pktgen_dev_62629 min_pkt_size pktgen_dev 0 62629 NULL
170072 +enable_so_get_vm_area_size_fndecl_62631 get_vm_area_size fndecl 0 62631 NULL
170073 +enable_so_virtio_gpu_ttm_tt_create_fndecl_62636 virtio_gpu_ttm_tt_create fndecl 2 62636 NULL nohasharray
170074 +enable_so_wil_change_mtu_fndecl_62636 wil_change_mtu fndecl 2 62636 &enable_so_virtio_gpu_ttm_tt_create_fndecl_62636
170075 +enable_so_fs_path_prepare_for_add_fndecl_62638 fs_path_prepare_for_add fndecl 0-2 62638 NULL nohasharray
170076 +enable_so_ath6kl_wmi_get_stats_cmd_fndecl_62638 ath6kl_wmi_get_stats_cmd fndecl 2 62638 &enable_so_fs_path_prepare_for_add_fndecl_62638
170077 +enable_so_fts_rtllib_device_62643 fts rtllib_device 0 62643 NULL
170078 +enable_so_cfg_sg_seg_cnt_lpfc_hba_62646 cfg_sg_seg_cnt lpfc_hba 0 62646 NULL nohasharray
170079 +enable_so_i_iget5_offset_iso_inode_info_62646 i_iget5_offset iso_inode_info 0 62646 &enable_so_cfg_sg_seg_cnt_lpfc_hba_62646
170080 +enable_so_usb_alloc_urb_fndecl_62655 usb_alloc_urb fndecl 1 62655 NULL
170081 +enable_so_curr_len_max3421_hcd_62658 curr_len max3421_hcd 0 62658 NULL
170082 +enable_so_count_pch_gbe_rx_ring_62662 count pch_gbe_rx_ring 0 62662 NULL
170083 +enable_so_irq_max_tg3_62664 irq_max tg3 0 62664 NULL
170084 +enable_so_calculate_discard_block_size_fndecl_62667 calculate_discard_block_size fndecl 0-1 62667 NULL nohasharray
170085 +enable_so_alloc_new_reservation_fndecl_62667 alloc_new_reservation fndecl 0 62667 &enable_so_calculate_discard_block_size_fndecl_62667 nohasharray
170086 +enable_so_base_i40e_hmc_obj_info_62667 base i40e_hmc_obj_info 0 62667 &enable_so_alloc_new_reservation_fndecl_62667
170087 +enable_so_qxl_gem_object_create_fndecl_62668 qxl_gem_object_create fndecl 2 62668 NULL
170088 +enable_so_max_outstanding_tx_leaf_msg_softinfo_62669 max_outstanding_tx leaf_msg_softinfo 0 62669 NULL nohasharray
170089 +enable_so_bss_priv_size_wiphy_62669 bss_priv_size wiphy 0 62669 &enable_so_max_outstanding_tx_leaf_msg_softinfo_62669
170090 +enable_so_pci_cfg_space_size_ext_fndecl_62679 pci_cfg_space_size_ext fndecl 0 62679 NULL
170091 +enable_so_encode_rpcb_string_fndecl_62680 encode_rpcb_string fndecl 3 62680 NULL
170092 +enable_so_nvme_trans_device_id_page_fndecl_62681 nvme_trans_device_id_page fndecl 4 62681 NULL
170093 +enable_so_bpp_sh_vou_fmt_62683 bpp sh_vou_fmt 0 62683 NULL
170094 +enable_so_num_vsis_i40e_hw_capabilities_62685 num_vsis i40e_hw_capabilities 0 62685 NULL
170095 +enable_so_start_ttm_mem_reg_62688 start ttm_mem_reg 0 62688 NULL
170096 +enable_so_vmemdup_fndecl_62706 vmemdup fndecl 2 62706 NULL
170097 +enable_so_curwidth_usb_usbvision_62710 curwidth usb_usbvision 0 62710 NULL
170098 +enable_so_tx_tx_data_prepared_read_fndecl_62714 tx_tx_data_prepared_read fndecl 3 62714 NULL
170099 +enable_so_mtu_ring_info_62721 mtu ring_info 0 62721 NULL
170100 +enable_so_isr_rx_mem_overflow_read_fndecl_62722 isr_rx_mem_overflow_read fndecl 3 62722 NULL
170101 +enable_so_jffs2_write_begin_fndecl_62728 jffs2_write_begin fndecl 3 62728 NULL nohasharray
170102 +enable_so_limit_tc_sfq_qopt_62728 limit tc_sfq_qopt 0 62728 &enable_so_jffs2_write_begin_fndecl_62728 nohasharray
170103 +enable_so_wep_default_key_count_read_fndecl_62728 wep_default_key_count_read fndecl 3 62728 &enable_so_limit_tc_sfq_qopt_62728
170104 +enable_so_total_len_android_wifi_priv_cmd_62735 total_len android_wifi_priv_cmd 0 62735 NULL
170105 +enable_so_smi_read_eeprom_fndecl_62737 smi_read_eeprom fndecl 4 62737 NULL
170106 +enable_so_match_size_ebt_entry_match_62738 match_size ebt_entry_match 0 62738 NULL nohasharray
170107 +enable_so_hpi_init_message_responseV1_fndecl_62738 hpi_init_message_responseV1 fndecl 4-2 62738 &enable_so_match_size_ebt_entry_match_62738
170108 +enable_so_xfs_da_read_buf_fndecl_62739 xfs_da_read_buf fndecl 3 62739 NULL
170109 +enable_so_payload_size_hv_message_header_62742 payload_size hv_message_header 0 62742 NULL
170110 +enable_so_twa_load_sgl_fndecl_62743 twa_load_sgl fndecl 5 62743 NULL
170111 +enable_so_fs_wm9081_priv_62744 fs wm9081_priv 0 62744 NULL
170112 +enable_so_clear_extent_dirty_fndecl_62746 clear_extent_dirty fndecl 2-3 62746 NULL
170113 +enable_so_mi_first_entry_offset_nilfs_mdt_info_62749 mi_first_entry_offset nilfs_mdt_info 0 62749 NULL
170114 +enable_so_num_counters_vardecl_op_model_amd_c_62750 num_counters vardecl_op_model_amd.c 0 62750 NULL
170115 +enable_so___bioset_create_fndecl_62752 __bioset_create fndecl 2-1 62752 NULL
170116 +enable_so_min_align_pci_dev_resource_62768 min_align pci_dev_resource 0 62768 NULL
170117 +enable_so_e_value_size_ext4_xattr_entry_62783 e_value_size ext4_xattr_entry 0 62783 NULL
170118 +enable_so_tomoyo_read_fndecl_62786 tomoyo_read fndecl 3 62786 NULL
170119 +enable_so_mt2131_writeregs_fndecl_62788 mt2131_writeregs fndecl 3 62788 NULL
170120 +enable_so_dump_skip_fndecl_62793 dump_skip fndecl 2 62793 NULL
170121 +enable_so_buffer_size_tx_holding_buffer_62794 buffer_size tx_holding_buffer 0 62794 NULL
170122 +enable_so_len_cx24120_cmd_62796 len cx24120_cmd 0 62796 NULL
170123 +enable_so_mmc_start_request_fndecl_62798 mmc_start_request fndecl 0 62798 NULL
170124 +enable_so_cur_tx_netdev_private_62799 cur_tx netdev_private 0 62799 NULL
170125 +enable_so_v9fs_qid2ino_fndecl_62801 v9fs_qid2ino fndecl 0 62801 NULL
170126 +enable_so_xattr_len_ima_event_data_62811 xattr_len ima_event_data 0 62811 NULL
170127 +enable_so_mlx4_ib_send_to_slave_fndecl_62812 mlx4_ib_send_to_slave fndecl 3 62812 NULL nohasharray
170128 +enable_so_head_aio_ring_62812 head aio_ring 0 62812 &enable_so_mlx4_ib_send_to_slave_fndecl_62812
170129 +enable_so_min_pll_multiplier_smiapp_pll_limits_62814 min_pll_multiplier smiapp_pll_limits 0 62814 NULL
170130 +enable_so_capture_frlog_rme32_62817 capture_frlog rme32 0 62817 NULL
170131 +enable_so_coex_rx_win_size_mwifiex_adapter_62818 coex_rx_win_size mwifiex_adapter 0 62818 NULL
170132 +enable_so_tlen_hfi1_packet_62825 tlen hfi1_packet 0 62825 NULL
170133 +enable_so_wq_len_tx_ring_62826 wq_len tx_ring 0 62826 NULL
170134 +enable_so_gfs2_journaled_truncate_fndecl_62839 gfs2_journaled_truncate fndecl 3-2 62839 NULL
170135 +enable_so_ix2505v_write_fndecl_62840 ix2505v_write fndecl 3 62840 NULL
170136 +enable_so_calculate_node_totalpages_fndecl_62845 calculate_node_totalpages fndecl 2-3 62845 NULL
170137 +enable_so_fuse_read_fill_fndecl_62851 fuse_read_fill fndecl 4 62851 NULL
170138 +enable_so_cfs_cpt_table_alloc_fndecl_62852 cfs_cpt_table_alloc fndecl 1 62852 NULL
170139 +enable_so_func_num_vardecl_g_ffs_c_62856 func_num vardecl_g_ffs.c 0 62856 NULL
170140 +enable_so_vlan_cpl_rx_pkt_62857 vlan cpl_rx_pkt 0 62857 NULL nohasharray
170141 +enable_so_max_register_regmap_62857 max_register regmap 0 62857 &enable_so_vlan_cpl_rx_pkt_62857
170142 +enable_so_nr_vecs_nilfs_write_info_62858 nr_vecs nilfs_write_info 0 62858 NULL
170143 +enable_so_spi_xcomm_txrx_bufs_fndecl_62860 spi_xcomm_txrx_bufs fndecl 0 62860 NULL
170144 +enable_so_bfad_iocmd_lport_get_iostats_fndecl_62861 bfad_iocmd_lport_get_iostats fndecl 0 62861 NULL
170145 +enable_so_il_dbgfs_power_save_status_read_fndecl_62862 il_dbgfs_power_save_status_read fndecl 3 62862 NULL
170146 +enable_so_height_tm6000_core_62864 height tm6000_core 0 62864 NULL
170147 +enable_so_c67x00_td_to_error_fndecl_62867 c67x00_td_to_error fndecl 0 62867 NULL
170148 +enable_so_ext2_max_size_fndecl_62871 ext2_max_size fndecl 0-1 62871 NULL
170149 +enable_so_wPageSize_ms_bootblock_sysinf_62873 wPageSize ms_bootblock_sysinf 0 62873 NULL
170150 +enable_so_i2c_hid_get_report_fndecl_62874 i2c_hid_get_report fndecl 5 62874 NULL nohasharray
170151 +enable_so_read_file_dfs_fndecl_62874 read_file_dfs fndecl 3 62874 &enable_so_i2c_hid_get_report_fndecl_62874
170152 +enable_so_qp_count_ntb_transport_ctx_62876 qp_count ntb_transport_ctx 0 62876 NULL
170153 +enable_so_xfs_dir3_leaf_read_fndecl_62878 xfs_dir3_leaf_read fndecl 3 62878 NULL
170154 +enable_so_ath6kl_set_assoc_req_ies_fndecl_62882 ath6kl_set_assoc_req_ies fndecl 3 62882 NULL
170155 +enable_so_create_kmalloc_cache_fndecl_62883 create_kmalloc_cache fndecl 2 62883 NULL
170156 +enable_so_valueblk_xfs_attr_inactive_list_62884 valueblk xfs_attr_inactive_list 0 62884 NULL
170157 +enable_so_phys_start_nvs_page_62885 phys_start nvs_page 0 62885 NULL nohasharray
170158 +enable_so_data_sge_offset_mpt2_ioctl_command_62885 data_sge_offset mpt2_ioctl_command 0 62885 &enable_so_phys_start_nvs_page_62885
170159 +enable_so_send_cmd_fndecl_62899 send_cmd fndecl 0 62899 NULL
170160 +enable_so_arg2__cdrp_cmd_62906 arg2 _cdrp_cmd 0 62906 NULL
170161 +enable_so_length_uvc_buffer_62907 length uvc_buffer 0 62907 NULL
170162 +enable_so_buflen_xdr_buf_62914 buflen xdr_buf 0 62914 NULL nohasharray
170163 +enable_so_n_subdevices_comedi_device_62914 n_subdevices comedi_device 0 62914 &enable_so_buflen_xdr_buf_62914
170164 +enable_so_elf_core_extra_phdrs_fndecl_62917 elf_core_extra_phdrs fndecl 0 62917 NULL
170165 +enable_so_out_size_ide_task_request_s_62924 out_size ide_task_request_s 0 62924 NULL
170166 +enable_so_uar_size_mthca_dev_lim_62925 uar_size mthca_dev_lim 0 62925 NULL
170167 +enable_so_uio_write_fndecl_62929 uio_write fndecl 3 62929 NULL
170168 +enable_so_teiup_create_fndecl_62930 teiup_create fndecl 3 62930 NULL nohasharray
170169 +enable_so_queue_size_srp_target_port_62930 queue_size srp_target_port 0 62930 &enable_so_teiup_create_fndecl_62930
170170 +enable_so_ext4_xattr_ibody_get_fndecl_62931 ext4_xattr_ibody_get fndecl 0 62931 NULL
170171 +enable_so_bfad_send_fcpt_cb_fndecl_62936 bfad_send_fcpt_cb fndecl 5 62936 NULL
170172 +enable_so_f2fs_acl_from_disk_fndecl_62937 f2fs_acl_from_disk fndecl 2 62937 NULL
170173 +enable_so_iso_callback_fndecl_62939 iso_callback fndecl 3 62939 NULL
170174 +enable_so_ovl_split_lowerdirs_fndecl_62941 ovl_split_lowerdirs fndecl 0 62941 NULL
170175 +enable_so_mtu_atmlec_config_msg_62946 mtu atmlec_config_msg 0 62946 NULL
170176 +enable_so_ax88178_change_mtu_fndecl_62947 ax88178_change_mtu fndecl 2 62947 NULL
170177 +enable_so_fixup_leb_fndecl_62955 fixup_leb fndecl 3 62955 NULL
170178 +enable_so_bfad_iocmd_diag_memtest_fndecl_62963 bfad_iocmd_diag_memtest fndecl 0 62963 NULL
170179 +enable_so_batadv_tt_tvlv_unicast_handler_v1_fndecl_62964 batadv_tt_tvlv_unicast_handler_v1 fndecl 5 62964 NULL
170180 +enable_so_adfs_get_block_fndecl_62966 adfs_get_block fndecl 2 62966 NULL
170181 +enable_so_bfad_iocmd_flash_erase_part_fndecl_62968 bfad_iocmd_flash_erase_part fndecl 0 62968 NULL nohasharray
170182 +enable_so_i_sblock_bfs_inode_62968 i_sblock bfs_inode 0 62968 &enable_so_bfad_iocmd_flash_erase_part_fndecl_62968
170183 +enable_so_io_tlb_nslabs_vardecl_swiotlb_c_62972 io_tlb_nslabs vardecl_swiotlb.c 0 62972 NULL
170184 +enable_so_vmemmap_alloc_block_fndecl_62974 vmemmap_alloc_block fndecl 1 62974 NULL
170185 +enable_so_max_requests_hpt_iop_request_get_config_62975 max_requests hpt_iop_request_get_config 0 62975 NULL
170186 +enable_so_pt_firstlbn_partition_table_62980 pt_firstlbn partition_table 0 62980 NULL
170187 +enable_so_move_to_top_fndecl_62981 move_to_top fndecl 2-3 62981 NULL
170188 +enable_so_memblock_insert_region_fndecl_62987 memblock_insert_region fndecl 3-4 62987 NULL
170189 +enable_so_btrfs_copy_from_user_fndecl_62989 btrfs_copy_from_user fndecl 1-0-3 62989 NULL
170190 +enable_so_integrity_kernel_read_fndecl_62991 integrity_kernel_read fndecl 4 62991 NULL
170191 +enable_so_layout_mddev_62992 layout mddev 0 62992 NULL
170192 +enable_so_i2c_smbus_write_word_data_fndecl_62993 i2c_smbus_write_word_data fndecl 0 62993 NULL
170193 +enable_so_alloc_name_seq_62994 alloc name_seq 0 62994 NULL
170194 +enable_so_ocfs2_xattr_get_value_outside_fndecl_63000 ocfs2_xattr_get_value_outside fndecl 0 63000 NULL
170195 +enable_so_pagesize_flash_info_63006 pagesize flash_info 0 63006 NULL nohasharray
170196 +enable_so_print_hex_dump_fndecl_63006 print_hex_dump fndecl 7-4-5 63006 &enable_so_pagesize_flash_info_63006
170197 +enable_so_cache_size_raw_regmap_63010 cache_size_raw regmap 0 63010 NULL
170198 +enable_so_get_rsb_struct_fndecl_63014 get_rsb_struct fndecl 3 63014 NULL
170199 +enable_so_vb2_dc_alloc_fndecl_63021 vb2_dc_alloc fndecl 2 63021 NULL
170200 +enable_so_packets_per_second_ua101_63022 packets_per_second ua101 0 63022 NULL
170201 +enable_so_mmio_size_controller_63024 mmio_size controller 0 63024 NULL
170202 +enable_so_hci_send_cmd_fndecl_63025 hci_send_cmd fndecl 3 63025 NULL
170203 +enable_so_gspca_coarse_grained_expo_autogain_fndecl_63033 gspca_coarse_grained_expo_autogain fndecl 4-2-3 63033 NULL
170204 +enable_so_rsi_sdio_host_intf_write_pkt_fndecl_63034 rsi_sdio_host_intf_write_pkt fndecl 3 63034 NULL
170205 +enable_so_size_align_rxrpc_connection_63035 size_align rxrpc_connection 0 63035 NULL
170206 +enable_so_display_width_vivid_dev_63040 display_width vivid_dev 0 63040 NULL
170207 +enable_so_reset_psn_fndecl_63045 reset_psn fndecl 2 63045 NULL
170208 +enable_so_ttymajor_vardecl_synclink_cs_c_63046 ttymajor vardecl_synclink_cs.c 0 63046 NULL
170209 +enable_so_len_ixgbe_tx_buffer_63047 len ixgbe_tx_buffer 0 63047 NULL
170210 +enable_so_sizeimage_deinterlace_q_data_63050 sizeimage deinterlace_q_data 0 63050 NULL
170211 +enable_so_atl1c_change_mtu_fndecl_63051 atl1c_change_mtu fndecl 2 63051 NULL
170212 +enable_so_p54_download_eeprom_fndecl_63057 p54_download_eeprom fndecl 4 63057 NULL
170213 +enable_so_nr_perf_branch_stack_63058 nr perf_branch_stack 0 63058 NULL nohasharray
170214 +enable_so_q0_num_vecs_bna_rx_config_63058 q0_num_vecs bna_rx_config 0 63058 &enable_so_nr_perf_branch_stack_63058
170215 +enable_so_pcibios_scan_root_fndecl_63059 pcibios_scan_root fndecl 1 63059 NULL
170216 +enable_so_read_flush_fndecl_63064 read_flush fndecl 3 63064 NULL
170217 +enable_so_if_bytes_xfs_ifork_63066 if_bytes xfs_ifork 0 63066 NULL
170218 +enable_so_writesize_onenand_chip_63069 writesize onenand_chip 0 63069 NULL
170219 +enable_so_dm_ring_size_vardecl_hv_balloon_c_63071 dm_ring_size vardecl_hv_balloon.c 0 63071 NULL
170220 +enable_so_prev_algo_r5conf_63075 prev_algo r5conf 0 63075 NULL
170221 +enable_so_start_bus_pci_mmcfg_region_63086 start_bus pci_mmcfg_region 0 63086 NULL
170222 +enable_so_width_saa7134_dev_63087 width saa7134_dev 0 63087 NULL nohasharray
170223 +enable_so_s_anchor_udf_sb_info_63087 s_anchor udf_sb_info 0 63087 &enable_so_width_saa7134_dev_63087 nohasharray
170224 +enable_so_init_labels_fndecl_63087 init_labels fndecl 2 63087 &enable_so_s_anchor_udf_sb_info_63087
170225 +enable_so_nfc_hci_execute_cmd_fndecl_63097 nfc_hci_execute_cmd fndecl 5 63097 NULL
170226 +enable_so_rd_page_count_rd_dev_63098 rd_page_count rd_dev 0 63098 NULL
170227 +enable_so_get_registry_size_bnx2x_mcast_obj_63102 get_registry_size bnx2x_mcast_obj 0 63102 NULL
170228 +enable_so_size_devlog_params_63104 size devlog_params 0 63104 NULL
170229 +enable_so_drxdap_fasi_read_block_fndecl_63113 drxdap_fasi_read_block fndecl 3 63113 NULL
170230 +enable_so_ticket_len_rxkad_key_63114 ticket_len rxkad_key 0 63114 NULL
170231 +enable_so_reiserfs_get_dentry_fndecl_63118 reiserfs_get_dentry fndecl 2 63118 NULL nohasharray
170232 +enable_so_max_recv_sge_ib_qp_cap_63118 max_recv_sge ib_qp_cap 0 63118 &enable_so_reiserfs_get_dentry_fndecl_63118
170233 +enable_so_max_cqe_ib_device_attr_63121 max_cqe ib_device_attr 0 63121 NULL
170234 +enable_so_txf_size_bdx_priv_63122 txf_size bdx_priv 0 63122 NULL
170235 +enable_so_uvc_video_decode_data_fndecl_63124 uvc_video_decode_data fndecl 4 63124 NULL
170236 +enable_so_elements_array_data_63130 elements array_data 0 63130 NULL
170237 +enable_so_in_width_sh_vou_geometry_63131 in_width sh_vou_geometry 0 63131 NULL
170238 +enable_so_prism2_sta_send_mgmt_fndecl_63135 prism2_sta_send_mgmt fndecl 5 63135 NULL
170239 +enable_so_peer_cookie_len_l2tp_session_63142 peer_cookie_len l2tp_session 0 63142 NULL
170240 +enable_so_bfad_iocmd_ioc_set_name_fndecl_63147 bfad_iocmd_ioc_set_name fndecl 0 63147 NULL
170241 +enable_so_gk104_fifo_new__fndecl_63149 gk104_fifo_new_ fndecl 4 63149 NULL
170242 +enable_so_vback_porch_videomode_63152 vback_porch videomode 0 63152 NULL
170243 +enable_so_obj_order_rbd_image_header_63156 obj_order rbd_image_header 0 63156 NULL
170244 +enable_so_reiserfs_get_blocks_direct_io_fndecl_63157 reiserfs_get_blocks_direct_io fndecl 2 63157 NULL
170245 +enable_so_length_req_que_63158 length req_que 0 63158 NULL
170246 +enable_so_inode_nilfs_dir_entry_63159 inode nilfs_dir_entry 0 63159 NULL
170247 +enable_so_dst_y_yuv_frame_info_63162 dst_y yuv_frame_info 0 63162 NULL
170248 +enable_so_get_pattern_len_ts_ops_63165 get_pattern_len ts_ops 0 63165 NULL
170249 +enable_so_nports_ahci_host_priv_63166 nports ahci_host_priv 0 63166 NULL
170250 +enable_so_stats_dot11RTSFailureCount_read_fndecl_63167 stats_dot11RTSFailureCount_read fndecl 3 63167 NULL
170251 +enable_so_word_4_rsq_entry_63169 word_4 rsq_entry 0 63169 NULL
170252 +enable_so_nla_reserve_fndecl_63171 nla_reserve fndecl 3 63171 NULL
170253 +enable_so_vma_hugecache_offset_fndecl_63172 vma_hugecache_offset fndecl 0-3 63172 NULL
170254 +enable_so___clkdev_alloc_fndecl_63173 __clkdev_alloc fndecl 1 63173 NULL
170255 +enable_so_ulist_add_fndecl_63177 ulist_add fndecl 0-2 63177 NULL nohasharray
170256 +enable_so_mlxsw_cmd_mbox_query_fw_fw_pages_get_fndecl_63177 mlxsw_cmd_mbox_query_fw_fw_pages_get fndecl 0 63177 &enable_so_ulist_add_fndecl_63177
170257 +enable_so_send_repeat_remove_fndecl_63179 send_repeat_remove fndecl 3 63179 NULL nohasharray
170258 +enable_so_kvm_read_guest_virt_fndecl_63179 kvm_read_guest_virt fndecl 4-2 63179 &enable_so_send_repeat_remove_fndecl_63179 nohasharray
170259 +enable_so_scsi_command_size_fndecl_63179 scsi_command_size fndecl 0 63179 &enable_so_kvm_read_guest_virt_fndecl_63179
170260 +enable_so_size_dib9000_fe_memory_map_63180 size dib9000_fe_memory_map 0 63180 NULL
170261 +enable_so_nr_to_scan_shrink_control_63181 nr_to_scan shrink_control 0 63181 NULL
170262 +enable_so_srpt_srq_size_vardecl_ib_srpt_c_63183 srpt_srq_size vardecl_ib_srpt.c 0 63183 NULL
170263 +enable_so_cache_request_fndecl_63187 cache_request fndecl 0 63187 NULL
170264 +enable_so_csums_alg_len_net_conf_63190 csums_alg_len net_conf 0 63190 NULL nohasharray
170265 +enable_so___sg_page_iter_start_fndecl_63190 __sg_page_iter_start fndecl 4 63190 &enable_so_csums_alg_len_net_conf_63190
170266 +enable_so_ieee80211_if_read_rc_rateidx_vht_mcs_mask_2ghz_fndecl_63191 ieee80211_if_read_rc_rateidx_vht_mcs_mask_2ghz fndecl 3 63191 NULL
170267 +enable_so_squashfs_xz_uncompress_fndecl_63193 squashfs_xz_uncompress fndecl 6-5 63193 NULL
170268 +enable_so_val_v4l2_ctrl_63196 val v4l2_ctrl 0 63196 NULL
170269 +enable_so___get_required_blob_size_fndecl_63199 __get_required_blob_size fndecl 0-3-2 63199 NULL
170270 +enable_so_mwl8k_add_dma_header_fndecl_63203 mwl8k_add_dma_header fndecl 3 63203 NULL
170271 +enable_so_lcd_lower_margin_atyfb_par_63209 lcd_lower_margin atyfb_par 0 63209 NULL nohasharray
170272 +enable_so_selfballoon_reserved_mb_vardecl_xen_selfballoon_c_63209 selfballoon_reserved_mb vardecl_xen-selfballoon.c 0 63209 &enable_so_lcd_lower_margin_atyfb_par_63209
170273 +enable_so_sizeimage_emmaprp_q_data_63224 sizeimage emmaprp_q_data 0 63224 NULL nohasharray
170274 +enable_so_write_flush_procfs_fndecl_63224 write_flush_procfs fndecl 3 63224 &enable_so_sizeimage_emmaprp_q_data_63224
170275 +enable_so_amdgpu_cgs_alloc_gpu_mem_fndecl_63225 amdgpu_cgs_alloc_gpu_mem fndecl 3 63225 NULL
170276 +enable_so_ufs_alloccg_block_fndecl_63239 ufs_alloccg_block fndecl 0-3 63239 NULL nohasharray
170277 +enable_so_tx_frag_failed_read_fndecl_63239 tx_frag_failed_read fndecl 3 63239 &enable_so_ufs_alloccg_block_fndecl_63239
170278 +enable_so_mod_len_start_info_63244 mod_len start_info 0 63244 NULL
170279 +enable_so_acpi_ut_get_resource_length_fndecl_63256 acpi_ut_get_resource_length fndecl 0 63256 NULL
170280 +enable_so_ep_image_mts_desc_63258 ep_image mts_desc 0 63258 NULL
170281 +enable_so_cachefiles_daemon_write_fndecl_63260 cachefiles_daemon_write fndecl 3 63260 NULL
170282 +enable_so_pdu_write_u_fndecl_63261 pdu_write_u fndecl 3 63261 NULL nohasharray
170283 +enable_so_read_events_fndecl_63261 read_events fndecl 3 63261 &enable_so_pdu_write_u_fndecl_63261
170284 +enable_so_dvb_ca_en50221_io_write_fndecl_63262 dvb_ca_en50221_io_write fndecl 3 63262 NULL
170285 +enable_so_sch56xx_device_add_fndecl_63264 sch56xx_device_add fndecl 1 63264 NULL
170286 +enable_so__fc_frame_alloc_fndecl_63267 _fc_frame_alloc fndecl 1 63267 NULL
170287 +enable_so_rpc_malloc_fndecl_63270 rpc_malloc fndecl 2 63270 NULL
170288 +enable_so_sb_rsumino_xfs_sb_63283 sb_rsumino xfs_sb 0 63283 NULL nohasharray
170289 +enable_so_s_mb_last_start_ext4_sb_info_63283 s_mb_last_start ext4_sb_info 0 63283 &enable_so_sb_rsumino_xfs_sb_63283
170290 +enable_so_length_sctp_errhdr_63285 length sctp_errhdr 0 63285 NULL
170291 +enable_so_num_counters_ebt_replace_63286 num_counters ebt_replace 0 63286 NULL
170292 +enable_so_xprt_rdma_slot_table_entries_vardecl_transport_c_63290 xprt_rdma_slot_table_entries vardecl_transport.c 0 63290 NULL
170293 +enable_so_video_buffer_size_osd_info_63299 video_buffer_size osd_info 0 63299 NULL
170294 +enable_so_lpfc_idiag_drbacc_read_reg_fndecl_63301 lpfc_idiag_drbacc_read_reg fndecl 0-3 63301 NULL
170295 +enable_so_num_req_tx_rings_bnx2_63306 num_req_tx_rings bnx2 0 63306 NULL
170296 +enable_so_xfs_map_blocks_fndecl_63308 xfs_map_blocks fndecl 2 63308 NULL
170297 +enable_so_valuelen_jfs_ea_63309 valuelen jfs_ea 0 63309 NULL nohasharray
170298 +enable_so_proc_read_fndecl_63309 proc_read fndecl 3 63309 &enable_so_valuelen_jfs_ea_63309
170299 +enable_so_adv7511_rd_fndecl_63313 adv7511_rd fndecl 0 63313 NULL
170300 +enable_so_con_out_kvec_add_fndecl_63316 con_out_kvec_add fndecl 2 63316 NULL
170301 +enable_so_doorbell_start_offset_kgd2kfd_shared_resources_63332 doorbell_start_offset kgd2kfd_shared_resources 0 63332 NULL
170302 +enable_so_gf100_vm_create_fndecl_63335 gf100_vm_create fndecl 3-2 63335 NULL
170303 +enable_so_bulk_out_endpointAddress_usb_serial_port_63340 bulk_out_endpointAddress usb_serial_port 0 63340 NULL
170304 +enable_so_clipcount_out_vivid_dev_63343 clipcount_out vivid_dev 0 63343 NULL
170305 +enable_so_len_n_flags_iwl_rx_packet_63345 len_n_flags iwl_rx_packet 0 63345 NULL
170306 +enable_so_alloc_thread_groups_fndecl_63354 alloc_thread_groups fndecl 2 63354 NULL
170307 +enable_so_x_zoran_overlay_settings_63359 x zoran_overlay_settings 0 63359 NULL
170308 +enable_so_lbq_buf_size_rx_ring_63363 lbq_buf_size rx_ring 0 63363 NULL
170309 +enable_so_phys_mem_fst_card_info_63365 phys_mem fst_card_info 0 63365 NULL
170310 +enable_so_ascot2e_write_regs_fndecl_63369 ascot2e_write_regs fndecl 4 63369 NULL
170311 +enable_so_start_ms350_cam_fndecl_63372 start_ms350_cam fndecl 0 63372 NULL
170312 +enable_so_alloc_irq_domain_ops_63379 alloc irq_domain_ops 0 63379 NULL
170313 +enable_so_max_lun_rts51x_chip_63381 max_lun rts51x_chip 0 63381 NULL
170314 +enable_so_data_len_ubifs_inode_63396 data_len ubifs_inode 0 63396 NULL
170315 +enable_so_buflen_audit_rule_data_63397 buflen audit_rule_data 0 63397 NULL nohasharray
170316 +enable_so_h_vlan_encapsulated_proto_vlan_ethhdr_63397 h_vlan_encapsulated_proto vlan_ethhdr 0 63397 &enable_so_buflen_audit_rule_data_63397 nohasharray
170317 +enable_so_hidp_send_ctrl_message_fndecl_63397 hidp_send_ctrl_message fndecl 4 63397 &enable_so_h_vlan_encapsulated_proto_vlan_ethhdr_63397
170318 +enable_so_efi_memdesc_size_vardecl_runtime_map_c_63399 efi_memdesc_size vardecl_runtime-map.c 0 63399 NULL nohasharray
170319 +enable_so_max_cqes_per_cq_iwch_rnic_attributes_63399 max_cqes_per_cq iwch_rnic_attributes 0 63399 &enable_so_efi_memdesc_size_vardecl_runtime_map_c_63399
170320 +enable_so_e820_end_pfn_fndecl_63402 e820_end_pfn fndecl 0-1 63402 NULL nohasharray
170321 +enable_so_bnx2_find_max_ring_fndecl_63402 bnx2_find_max_ring fndecl 0-2 63402 &enable_so_e820_end_pfn_fndecl_63402
170322 +enable_so_flt_chap_size_ql82xx_hw_data_63406 flt_chap_size ql82xx_hw_data 0 63406 NULL
170323 +enable_so__drbd_no_send_page_fndecl_63409 _drbd_no_send_page fndecl 4 63409 NULL
170324 +enable_so_lib80211_wep_decrypt_fndecl_63419 lib80211_wep_decrypt fndecl 2 63419 NULL
170325 +enable_so_write_midi_fndecl_63421 write_midi fndecl 0-3 63421 NULL
170326 +enable_so_xfs_buf_set_empty_fndecl_63425 xfs_buf_set_empty fndecl 2 63425 NULL
170327 +enable_so_i2400m_tx_fndecl_63427 i2400m_tx fndecl 3-4 63427 NULL
170328 +enable_so_brcmf_sdio_download_firmware_fndecl_63429 brcmf_sdio_download_firmware fndecl 4 63429 NULL nohasharray
170329 +enable_so___alloc_alien_cache_fndecl_63429 __alloc_alien_cache fndecl 2 63429 &enable_so_brcmf_sdio_download_firmware_fndecl_63429
170330 +enable_so_tas571x_register_size_fndecl_63430 tas571x_register_size fndecl 0 63430 NULL nohasharray
170331 +enable_so_ad_sd_read_reg_raw_fndecl_63430 ad_sd_read_reg_raw fndecl 3 63430 &enable_so_tas571x_register_size_fndecl_63430 nohasharray
170332 +enable_so_ocfs2_replace_clusters_fndecl_63430 ocfs2_replace_clusters fndecl 5-3 63430 &enable_so_ad_sd_read_reg_raw_fndecl_63430
170333 +enable_so_snd_rme32_playback_copy_fndecl_63431 snd_rme32_playback_copy fndecl 5 63431 NULL
170334 +enable_so_mem_len_bfa_mem_kva_s_63432 mem_len bfa_mem_kva_s 0 63432 NULL
170335 +enable_so_resp_sas_sf_m_pg_fndecl_63437 resp_sas_sf_m_pg fndecl 0 63437 NULL
170336 +enable_so_check_bandwidth_hc_driver_63438 check_bandwidth hc_driver 0 63438 NULL
170337 +enable_so_m_max_file_size_ceph_mdsmap_63449 m_max_file_size ceph_mdsmap 0 63449 NULL
170338 +enable_so_max_send_wr_ib_qp_cap_63450 max_send_wr ib_qp_cap 0 63450 NULL
170339 +enable_so_vb2_create_framevec_fndecl_63451 vb2_create_framevec fndecl 1-2 63451 NULL
170340 +enable_so_cmd_status_netdev_desc_63452 cmd_status netdev_desc 0 63452 NULL
170341 +enable_so_fuse_send_read_fndecl_63454 fuse_send_read fndecl 4 63454 NULL
170342 +enable_so_sysv_raw_inode_fndecl_63458 sysv_raw_inode fndecl 2 63458 NULL
170343 +enable_so_c_width_g2d_frame_63459 c_width g2d_frame 0 63459 NULL
170344 +enable_so_btrfs_drop_extent_cache_fndecl_63461 btrfs_drop_extent_cache fndecl 3-2 63461 NULL
170345 +enable_so_skb_read_pdu_bhs_fndecl_63463 skb_read_pdu_bhs fndecl 0 63463 NULL
170346 +enable_so_biter_fsl_edma_hw_tcd_63464 biter fsl_edma_hw_tcd 0 63464 NULL
170347 +enable_so_count_ceph_inode_xattrs_info_63465 count ceph_inode_xattrs_info 0 63465 NULL
170348 +enable_so_rcvhdrq_size_qib_ctxtdata_63468 rcvhdrq_size qib_ctxtdata 0 63468 NULL
170349 +enable_so_srq_lmt_max_sge_ocrdma_query_srq_rsp_63477 srq_lmt_max_sge ocrdma_query_srq_rsp 0 63477 NULL
170350 +enable_so___bm_find_next_fndecl_63479 __bm_find_next fndecl 0-2 63479 NULL
170351 +enable_so_mlx5_ib_read_user_wqe_fndecl_63480 mlx5_ib_read_user_wqe fndecl 3-5 63480 NULL nohasharray
170352 +enable_so_sctp_setsockopt_active_key_fndecl_63480 sctp_setsockopt_active_key fndecl 3 63480 &enable_so_mlx5_ib_read_user_wqe_fndecl_63480
170353 +enable_so_gigaset_initcs_fndecl_63482 gigaset_initcs fndecl 2 63482 NULL nohasharray
170354 +enable_so_length_dw_amdgpu_cs_chunk_63482 length_dw amdgpu_cs_chunk 0 63482 &enable_so_gigaset_initcs_fndecl_63482
170355 +enable_so_width_v4l2_pix_format_63491 width v4l2_pix_format 0 63491 NULL
170356 +enable_so_sb_spino_align_xfs_sb_63492 sb_spino_align xfs_sb 0 63492 NULL
170357 +enable_so_find_last_bit_fndecl_63495 find_last_bit fndecl 0-2 63495 NULL
170358 +enable_so___pcpu_size_to_slot_fndecl_63500 __pcpu_size_to_slot fndecl 0 63500 NULL
170359 +enable_so_read_data_offset_smb_version_operations_63502 read_data_offset smb_version_operations 0 63502 NULL
170360 +enable_so_ufs_nfs_get_inode_fndecl_63508 ufs_nfs_get_inode fndecl 2 63508 NULL
170361 +enable_so_xfs_rtfree_range_fndecl_63511 xfs_rtfree_range fndecl 3-4 63511 NULL
170362 +enable_so_bNrChannels_uac_format_type_i_discrete_descriptor_63512 bNrChannels uac_format_type_i_discrete_descriptor 0 63512 NULL
170363 +enable_so_num_usb2_ports_xhci_hcd_63514 num_usb2_ports xhci_hcd 0 63514 NULL
170364 +enable_so_rx_defrag_need_decrypt_read_fndecl_63518 rx_defrag_need_decrypt_read fndecl 3 63518 NULL
170365 +enable_so_wIELength_uwb_rc_cmd_set_drp_ie_63528 wIELength uwb_rc_cmd_set_drp_ie 0 63528 NULL
170366 +enable_so_wq_sig_mlx5_ib_qp_63533 wq_sig mlx5_ib_qp 0 63533 NULL nohasharray
170367 +enable_so_sel_read_perm_fndecl_63533 sel_read_perm fndecl 3 63533 &enable_so_wq_sig_mlx5_ib_qp_63533
170368 +enable_so_maxvram_video_board_63535 maxvram video_board 0 63535 NULL
170369 +enable_so_num_wsm_ether_type_filter_hdr_63536 num wsm_ether_type_filter_hdr 0 63536 NULL
170370 +enable_so_num_clips_drm_mode_fb_dirty_cmd_63540 num_clips drm_mode_fb_dirty_cmd 0 63540 NULL
170371 +enable_so___tty_buffer_request_room_fndecl_63543 __tty_buffer_request_room fndecl 0-2 63543 NULL
170372 +enable_so_hi_priority_depth_MPT2SAS_ADAPTER_63544 hi_priority_depth MPT2SAS_ADAPTER 0 63544 NULL
170373 +enable_so_snd_pcm_hw_param_value_max_fndecl_63547 snd_pcm_hw_param_value_max fndecl 0 63547 NULL
170374 +enable_so_tlv_data_size_user_element_63549 tlv_data_size user_element 0 63549 NULL
170375 +enable_so_ath10k_htc_process_trailer_fndecl_63552 ath10k_htc_process_trailer fndecl 3 63552 NULL
170376 +enable_so_word_size_ixgbe_eeprom_info_63556 word_size ixgbe_eeprom_info 0 63556 NULL
170377 +enable_so_multi_rmw_idx_wmi_63557 multi_rmw_idx wmi 0 63557 NULL
170378 +enable_so_tcp_sync_mss_fndecl_63561 tcp_sync_mss fndecl 0-2 63561 NULL
170379 +enable_so_gfn_to_hva_fndecl_63570 gfn_to_hva fndecl 2 63570 NULL
170380 +enable_so_ulong_read_file_fndecl_63571 ulong_read_file fndecl 3 63571 NULL nohasharray
170381 +enable_so_sctp_setsockopt_del_key_fndecl_63571 sctp_setsockopt_del_key fndecl 3 63571 &enable_so_ulong_read_file_fndecl_63571
170382 +enable_so_unmap_granularity_scsi_disk_63574 unmap_granularity scsi_disk 0 63574 NULL
170383 +enable_so_xfs_vm_readpages_fndecl_63575 xfs_vm_readpages fndecl 4 63575 NULL
170384 +enable_so_bnep_sock_create_fndecl_63577 bnep_sock_create fndecl 3 63577 NULL
170385 +enable_so_num_ethernet_queues_bnx2x_63578 num_ethernet_queues bnx2x 0 63578 NULL
170386 +enable_so_xfs_vm_write_failed_fndecl_63582 xfs_vm_write_failed fndecl 3 63582 NULL
170387 +enable_so__mlx4_set_path_fndecl_63583 _mlx4_set_path fndecl 7 63583 NULL
170388 +enable_so_ide_raw_taskfile_fndecl_63584 ide_raw_taskfile fndecl 4 63584 NULL
170389 +enable_so_cit_get_packet_size_fndecl_63585 cit_get_packet_size fndecl 0 63585 NULL
170390 +enable_so_qp_num_ib_cm_req_param_63588 qp_num ib_cm_req_param 0 63588 NULL
170391 +enable_so_width_console_font_63590 width console_font 0 63590 NULL
170392 +enable_so_fbmem_viafb_par_63594 fbmem viafb_par 0 63594 NULL nohasharray
170393 +enable_so_ri_cno_nilfs_recovery_info_63594 ri_cno nilfs_recovery_info 0 63594 &enable_so_fbmem_viafb_par_63594
170394 +enable_so_srp_map_data_fndecl_63596 srp_map_data fndecl 0 63596 NULL
170395 +enable_so_size_dmaengine_unmap_pool_63599 size dmaengine_unmap_pool 0 63599 NULL nohasharray
170396 +enable_so_dbFree_fndecl_63599 dbFree fndecl 3-2 63599 &enable_so_size_dmaengine_unmap_pool_63599
170397 +enable_so_snd_pcm_plug_alloc_fndecl_63600 snd_pcm_plug_alloc fndecl 2 63600 NULL
170398 +enable_so_offset_pci_sriov_63604 offset pci_sriov 0 63604 NULL
170399 +enable_so_zone_start_pfn_zone_63616 zone_start_pfn zone 0 63616 NULL
170400 +enable_so_il_dbgfs_disable_ht40_read_fndecl_63617 il_dbgfs_disable_ht40_read fndecl 3 63617 NULL
170401 +enable_so_rx_mtu_p54_common_63619 rx_mtu p54_common 0 63619 NULL
170402 +enable_so_w_nr_rds_iw_work_ring_63620 w_nr rds_iw_work_ring 0 63620 NULL
170403 +enable_so_buf_len_mwifiex_sdio_mpa_rx_63636 buf_len mwifiex_sdio_mpa_rx 0 63636 NULL nohasharray
170404 +enable_so_find_run_fndecl_63636 find_run fndecl 0 63636 &enable_so_buf_len_mwifiex_sdio_mpa_rx_63636
170405 +enable_so_be_v_offset_pnfs_block_extent_63637 be_v_offset pnfs_block_extent 0 63637 NULL
170406 +enable_so_o_height_fimc_frame_63639 o_height fimc_frame 0 63639 NULL nohasharray
170407 +enable_so_snic_queue_wq_desc_fndecl_63639 snic_queue_wq_desc fndecl 3 63639 &enable_so_o_height_fimc_frame_63639
170408 +enable_so_mlxsw_pci_fw_area_init_fndecl_63657 mlxsw_pci_fw_area_init fndecl 3 63657 NULL
170409 +enable_so_id_nvdimm_63666 id nvdimm 0 63666 NULL
170410 +enable_so_msnd_fifo_read_fndecl_63669 msnd_fifo_read fndecl 0 63669 NULL
170411 +enable_so_r_len_qib_qp_63672 r_len qib_qp 0 63672 NULL
170412 +enable_so_nr_map_e820map_63674 nr_map e820map 0 63674 NULL
170413 +enable_so_min_vblank_mt9v032_model_data_63675 min_vblank mt9v032_model_data 0 63675 NULL
170414 +enable_so_nfs_writepage_setup_fndecl_63682 nfs_writepage_setup fndecl 3-4 63682 NULL
170415 +enable_so_height_ssd1307fb_par_63688 height ssd1307fb_par 0 63688 NULL
170416 +enable_so_pci_get_device_func_fndecl_63689 pci_get_device_func fndecl 2 63689 NULL nohasharray
170417 +enable_so_fanout_set_data_cbpf_fndecl_63689 fanout_set_data_cbpf fndecl 3 63689 &enable_so_pci_get_device_func_fndecl_63689
170418 +enable_so_cell_error_with_code_fndecl_63693 cell_error_with_code fndecl 3 63693 NULL
170419 +enable_so_obj_size_proto_63697 obj_size proto 0 63697 NULL nohasharray
170420 +enable_so___iio_add_chan_devattr_fndecl_63697 __iio_add_chan_devattr fndecl 0 63697 &enable_so_obj_size_proto_63697
170421 +enable_so_gsm_data_alloc_fndecl_63702 gsm_data_alloc fndecl 3 63702 NULL
170422 +enable_so_key_conf_keyidx_read_fndecl_63704 key_conf_keyidx_read fndecl 3 63704 NULL
170423 +enable_so_spr_wm_latency_write_fndecl_63706 spr_wm_latency_write fndecl 3 63706 NULL
170424 +enable_so_real_trim_memory_fndecl_63709 real_trim_memory fndecl 1-2 63709 NULL
170425 +enable_so_owner_snd_ctl_elem_info_63711 owner snd_ctl_elem_info 0 63711 NULL
170426 +enable_so_index_dtsplit_63712 index dtsplit 0 63712 NULL nohasharray
170427 +enable_so_xfs_alloc_compute_aligned_fndecl_63712 xfs_alloc_compute_aligned fndecl 3-2 63712 &enable_so_index_dtsplit_63712
170428 +enable_so_kernel_recvmsg_fndecl_63713 kernel_recvmsg fndecl 0-5-4 63713 NULL
170429 +enable_so_omfs_readpages_fndecl_63721 omfs_readpages fndecl 4 63721 NULL
170430 +enable_so_osd_vis_h_yuv_playback_info_63734 osd_vis_h yuv_playback_info 0 63734 NULL
170431 +enable_so_pci_hotplug_mem_size_vardecl_63735 pci_hotplug_mem_size vardecl 0 63735 NULL
170432 +enable_so_get_mergeable_buf_len_fndecl_63736 get_mergeable_buf_len fndecl 0 63736 NULL
170433 +enable_so___simple_xattr_set_fndecl_63737 __simple_xattr_set fndecl 4 63737 NULL
170434 +enable_so_print_section_fndecl_63738 print_section fndecl 3 63738 NULL
170435 +enable_so___register_chrdev_region_fndecl_63741 __register_chrdev_region fndecl 1 63741 NULL
170436 +enable_so_len_ath10k_hif_sg_item_63747 len ath10k_hif_sg_item 0 63747 NULL
170437 +enable_so_size_vb2_dc_buf_63751 size vb2_dc_buf 0 63751 NULL
170438 +enable_so_target_size_scsi_transport_template_63753 target_size scsi_transport_template 0 63753 NULL
170439 +enable_so_smtc_map_smem_fndecl_63754 smtc_map_smem fndecl 3 63754 NULL
170440 +enable_so_spidev_sync_read_fndecl_63757 spidev_sync_read fndecl 0 63757 NULL
170441 +enable_so_mp_irqdomain_get_attr_fndecl_63759 mp_irqdomain_get_attr fndecl 1 63759 NULL nohasharray
170442 +enable_so_pool_allocate_fndecl_63759 pool_allocate fndecl 3 63759 &enable_so_mp_irqdomain_get_attr_fndecl_63759
170443 +enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760 ath6kl_wmi_remain_on_chnl_cmd fndecl 2 63760 NULL nohasharray
170444 +enable_so_msix_count_skd_device_63760 msix_count skd_device 0 63760 &enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760
170445 +enable_so_xfs_qm_dqalloc_fndecl_63762 xfs_qm_dqalloc fndecl 5 63762 NULL nohasharray
170446 +enable_so_index_isi_board_63762 index isi_board 0 63762 &enable_so_xfs_qm_dqalloc_fndecl_63762
170447 +enable_so_insn_size_kprobe_insn_cache_63777 insn_size kprobe_insn_cache 0 63777 NULL
170448 +enable_so___hwahc_op_set_gtk_fndecl_63781 __hwahc_op_set_gtk fndecl 4 63781 NULL
170449 +enable_so_items_priv_size_vxge_hw_mempool_63785 items_priv_size vxge_hw_mempool 0 63785 NULL
170450 +enable_so_num_slices_myri10ge_priv_63789 num_slices myri10ge_priv 0 63789 NULL
170451 +enable_so_order_pmcraid_sglist_63792 order pmcraid_sglist 0 63792 NULL nohasharray
170452 +enable_so_orinoco_mic_fndecl_63792 orinoco_mic fndecl 7 63792 &enable_so_order_pmcraid_sglist_63792 nohasharray
170453 +enable_so__scif_recv_fndecl_63792 _scif_recv fndecl 0-3 63792 &enable_so_orinoco_mic_fndecl_63792
170454 +enable_so_modem_write_cmd_fndecl_63794 modem_write_cmd fndecl 3 63794 NULL nohasharray
170455 +enable_so_dpcm_capture_snd_soc_dai_link_63794 dpcm_capture snd_soc_dai_link 0 63794 &enable_so_modem_write_cmd_fndecl_63794 nohasharray
170456 +enable_so_rs_sta_dbgfs_scale_table_write_fndecl_63794 rs_sta_dbgfs_scale_table_write fndecl 3 63794 &enable_so_dpcm_capture_snd_soc_dai_link_63794
170457 +enable_so_ioaccel_maxsg_ctlr_info_63798 ioaccel_maxsg ctlr_info 0 63798 NULL
170458 +enable_so_read_prph_iwl_trans_ops_63799 read_prph iwl_trans_ops 0 63799 NULL
170459 +enable_so_nouveau_ttm_tt_create_fndecl_63801 nouveau_ttm_tt_create fndecl 2 63801 NULL nohasharray
170460 +enable_so_nbds_max_vardecl_nbd_c_63801 nbds_max vardecl_nbd.c 0 63801 &enable_so_nouveau_ttm_tt_create_fndecl_63801
170461 +enable_so_acpi_ut_create_buffer_object_fndecl_63805 acpi_ut_create_buffer_object fndecl 1 63805 NULL
170462 +enable_so_bfad_iocmd_fruvpd_read_fndecl_63808 bfad_iocmd_fruvpd_read fndecl 0 63808 NULL
170463 +enable_so_ncp_add_mem_fndecl_63822 ncp_add_mem fndecl 3 63822 NULL nohasharray
170464 +enable_so_named_prepare_buf_fndecl_63822 named_prepare_buf fndecl 3 63822 &enable_so_ncp_add_mem_fndecl_63822
170465 +enable_so_len_extent_map_63823 len extent_map 0 63823 NULL
170466 +enable_so_jffs2_do_link_fndecl_63827 jffs2_do_link fndecl 6 63827 NULL
170467 +enable_so_compat_sys_sendfile_fndecl_63828 compat_sys_sendfile fndecl 4 63828 NULL
170468 +enable_so_alt_mem_k_boot_params_63829 alt_mem_k boot_params 0 63829 NULL
170469 +enable_so_rpipe_aim_fndecl_63832 rpipe_aim fndecl 0 63832 NULL nohasharray
170470 +enable_so_bfad_iocmd_port_get_attr_fndecl_63832 bfad_iocmd_port_get_attr fndecl 0 63832 &enable_so_rpipe_aim_fndecl_63832
170471 +enable_so_p_end_nilfs_period_63833 p_end nilfs_period 0 63833 NULL
170472 +enable_so_iwl_mvm_scan_size_fndecl_63834 iwl_mvm_scan_size fndecl 0 63834 NULL
170473 +enable_so_error_elp_while_tx_exch_read_fndecl_63835 error_elp_while_tx_exch_read fndecl 3 63835 NULL
170474 +enable_so_flags_flat_binder_object_63836 flags flat_binder_object 0 63836 NULL
170475 +enable_so_rx_ring_order_vardecl_main_c_63838 rx_ring_order vardecl_main.c 0 63838 NULL
170476 +enable_so_ext4_sync_file_fndecl_63847 ext4_sync_file fndecl 2-3 63847 NULL
170477 +enable_so_yskip_mt9t031_63853 yskip mt9t031 0 63853 NULL
170478 +enable_so_rx_data_size_sky2_port_63855 rx_data_size sky2_port 0 63855 NULL nohasharray
170479 +enable_so_submit_inquiry_fndecl_63855 submit_inquiry fndecl 3 63855 &enable_so_rx_data_size_sky2_port_63855
170480 +enable_so_addrlen_at25_data_63857 addrlen at25_data 0 63857 NULL
170481 +enable_so_da_height_logfs_je_anchor_63858 da_height logfs_je_anchor 0 63858 NULL
170482 +enable_so_out_phase_peeked_usb_stream_kernel_63871 out_phase_peeked usb_stream_kernel 0 63871 NULL
170483 +enable_so_ssid_len_ieee80211_if_ibss_63872 ssid_len ieee80211_if_ibss 0 63872 NULL nohasharray
170484 +enable_so_Read_hfc16_stable_fndecl_63872 Read_hfc16_stable fndecl 0 63872 &enable_so_ssid_len_ieee80211_if_ibss_63872
170485 +enable_so_xlvbd_alloc_gendisk_fndecl_63874 xlvbd_alloc_gendisk fndecl 4-5 63874 NULL
170486 +enable_so_di_size_xfs_dinode_63875 di_size xfs_dinode 0 63875 NULL
170487 +enable_so_srqn_mlx5_cqe64_63883 srqn mlx5_cqe64 0 63883 NULL
170488 +enable_so___btrfs_unlink_inode_fndecl_63889 __btrfs_unlink_inode fndecl 6 63889 NULL
170489 +enable_so_dw_dma_cyclic_prep_fndecl_63890 dw_dma_cyclic_prep fndecl 4-3 63890 NULL
170490 +enable_so_lmWriteRecord_fndecl_63896 lmWriteRecord fndecl 0 63896 NULL
170491 +enable_so_ext4_do_update_inode_fndecl_63900 ext4_do_update_inode fndecl 0 63900 NULL
170492 +enable_so_tx_cnt_fritz_bcs_63901 tx_cnt fritz_bcs 0 63901 NULL
170493 +enable_so_mmc_align_data_size_fndecl_63906 mmc_align_data_size fndecl 0-2 63906 NULL nohasharray
170494 +enable_so_fraglen_encryptor_desc_63906 fraglen encryptor_desc 0 63906 &enable_so_mmc_align_data_size_fndecl_63906
170495 +enable_so_blk_ioctl_zeroout_fndecl_63907 blk_ioctl_zeroout fndecl 3-2 63907 NULL
170496 +enable_so_len_sock_fprog_kern_63914 len sock_fprog_kern 0 63914 NULL
170497 +enable_so_fw_stats_len_wl1271_stats_63915 fw_stats_len wl1271_stats 0 63915 NULL nohasharray
170498 +enable_so_read_file_base_eeprom_fndecl_63915 read_file_base_eeprom fndecl 3 63915 &enable_so_fw_stats_len_wl1271_stats_63915
170499 +enable_so_iwl_mvm_send_cmd_fndecl_63918 iwl_mvm_send_cmd fndecl 0 63918 NULL
170500 +enable_so_new_data_offset_md_rdev_63919 new_data_offset md_rdev 0 63919 NULL nohasharray
170501 +enable_so_align_nft_set_ext_type_63919 align nft_set_ext_type 0 63919 &enable_so_new_data_offset_md_rdev_63919
170502 +enable_so_nilfs_ifile_read_fndecl_63921 nilfs_ifile_read fndecl 3 63921 NULL
170503 +enable_so_start_btrfs_ioctl_defrag_range_args_63924 start btrfs_ioctl_defrag_range_args 0 63924 NULL
170504 +enable_so_efx_change_mtu_fndecl_63926 efx_change_mtu fndecl 2 63926 NULL
170505 +enable_so_cqm_max_rmid_vardecl_perf_event_intel_cqm_c_63930 cqm_max_rmid vardecl_perf_event_intel_cqm.c 0 63930 NULL
170506 +enable_so_dentry_needs_remove_privs_fndecl_63934 dentry_needs_remove_privs fndecl 0 63934 NULL
170507 +enable_so_ro_maxpages_rpcrdma_memreg_ops_63937 ro_maxpages rpcrdma_memreg_ops 0 63937 NULL nohasharray
170508 +enable_so_filemark_cnt_osst_tape_63937 filemark_cnt osst_tape 0 63937 &enable_so_ro_maxpages_rpcrdma_memreg_ops_63937
170509 +enable_so_Xfacs_acpi_table_fadt_63943 Xfacs acpi_table_fadt 0 63943 NULL
170510 +enable_so_replen_compound_hdr_63944 replen compound_hdr 0 63944 NULL
170511 +enable_so_get_znodes_to_commit_fndecl_63946 get_znodes_to_commit fndecl 0 63946 NULL nohasharray
170512 +enable_so_hdr_dwords_qib_verbs_txreq_63946 hdr_dwords qib_verbs_txreq 0 63946 &enable_so_get_znodes_to_commit_fndecl_63946
170513 +enable_so_map_szl_cyttsp4_sysinfo_data_63948 map_szl cyttsp4_sysinfo_data 0 63948 NULL
170514 +enable_so_pcfg_ofs_cyttsp4_sysinfo_ofs_63956 pcfg_ofs cyttsp4_sysinfo_ofs 0 63956 NULL
170515 +enable_so_oprofilefs_str_to_user_fndecl_63957 oprofilefs_str_to_user fndecl 3 63957 NULL
170516 +enable_so_pvr2_send_request_fndecl_63959 pvr2_send_request fndecl 3-5 63959 NULL
170517 +enable_so_rb_max_requests_rpcrdma_buffer_63960 rb_max_requests rpcrdma_buffer 0 63960 NULL
170518 +enable_so_write_file_beacon_fndecl_63962 write_file_beacon fndecl 3 63962 NULL
170519 +enable_so_psb_gtt_alloc_range_fndecl_63966 psb_gtt_alloc_range fndecl 2-5 63966 NULL
170520 +enable_so_len_wm_coeff_ctl_63967 len wm_coeff_ctl 0 63967 NULL
170521 +enable_so_pla_ocp_read_fndecl_63976 pla_ocp_read fndecl 3 63976 NULL
170522 +enable_so_bt_ep_bcm5974_config_63978 bt_ep bcm5974_config 0 63978 NULL
170523 +enable_so_pos_pagemapread_63988 pos pagemapread 0 63988 NULL
170524 +enable_so_befs_iget_fndecl_63989 befs_iget fndecl 2 63989 NULL
170525 +enable_so_max_lba_sm_ftl_63992 max_lba sm_ftl 0 63992 NULL
170526 +enable_so_ihandlen_compat_xfs_fsop_handlereq_63994 ihandlen compat_xfs_fsop_handlereq 0 63994 NULL
170527 +enable_so_subctxt_qib_filedata_63995 subctxt qib_filedata 0 63995 NULL
170528 +enable_so_vram_start_amdgpu_mc_63998 vram_start amdgpu_mc 0 63998 NULL
170529 +enable_so_iscsi_conn_send_pdu_fndecl_64002 iscsi_conn_send_pdu fndecl 4 64002 NULL
170530 +enable_so_pvr2_send_request_ex_fndecl_64004 pvr2_send_request_ex fndecl 5-7 64004 NULL
170531 +enable_so_field_count_audit_krule_64007 field_count audit_krule 0 64007 NULL
170532 +enable_so_rx_ring_size_fe_priv_64012 rx_ring_size fe_priv 0 64012 NULL
170533 +enable_so_wBlocks_usb_rpipe_descriptor_64014 wBlocks usb_rpipe_descriptor 0 64014 NULL nohasharray
170534 +enable_so_isku_sysfs_read_info_fndecl_64014 isku_sysfs_read_info fndecl 6 64014 &enable_so_wBlocks_usb_rpipe_descriptor_64014
170535 +enable_so_ext4_orphan_get_fndecl_64015 ext4_orphan_get fndecl 2 64015 NULL nohasharray
170536 +enable_so_snd_midi_event_decode_fndecl_64015 snd_midi_event_decode fndecl 0 64015 &enable_so_ext4_orphan_get_fndecl_64015
170537 +enable_so_space_snd_ctl_elem_list_64016 space snd_ctl_elem_list 0 64016 NULL
170538 +enable_so_n_sectors_flash_info_64017 n_sectors flash_info 0 64017 NULL
170539 +enable_so_dma_drain_size_request_queue_64023 dma_drain_size request_queue 0 64023 NULL
170540 +enable_so_extAlloc_fndecl_64026 extAlloc fndecl 3 64026 NULL
170541 +enable_so_fw_device_op_compat_ioctl_fndecl_64039 fw_device_op_compat_ioctl fndecl 2 64039 NULL
170542 +enable_so_kxtj9_i2c_read_fndecl_64041 kxtj9_i2c_read fndecl 4 64041 NULL
170543 +enable_so_ieee80211_request_ibss_scan_fndecl_64043 ieee80211_request_ibss_scan fndecl 3 64043 NULL
170544 +enable_so_xdr_partial_copy_from_skb_fndecl_64046 xdr_partial_copy_from_skb fndecl 0 64046 NULL nohasharray
170545 +enable_so_drm_ioctl_fndecl_64046 drm_ioctl fndecl 2 64046 &enable_so_xdr_partial_copy_from_skb_fndecl_64046
170546 +enable_so_devs_increment_btrfs_raid_attr_64050 devs_increment btrfs_raid_attr 0 64050 NULL
170547 +enable_so_koneplus_sysfs_read_fndecl_64059 koneplus_sysfs_read fndecl 6 64059 NULL
170548 +enable_so_claim_region_fndecl_64076 claim_region fndecl 3-2 64076 NULL
170549 +enable_so_link_duplex_pch_gbe_mac_info_64077 link_duplex pch_gbe_mac_info 0 64077 NULL
170550 +enable_so_dma_size_cx88_audio_dev_64082 dma_size cx88_audio_dev 0 64082 NULL
170551 +enable_so_xfs_iomap_eof_prealloc_initial_size_fndecl_64085 xfs_iomap_eof_prealloc_initial_size fndecl 3 64085 NULL
170552 +enable_so_iwl_dbgfs_ucode_bt_stats_read_fndecl_64087 iwl_dbgfs_ucode_bt_stats_read fndecl 3 64087 NULL
170553 +enable_so_si476x_radio_read_rsq_blob_fndecl_64088 si476x_radio_read_rsq_blob fndecl 3 64088 NULL
170554 +enable_so_size_mxr_block_64090 size mxr_block 0 64090 NULL
170555 +enable_so_set_arg_fndecl_64091 set_arg fndecl 3 64091 NULL
170556 +enable_so_s_end_bfs_super_block_64092 s_end bfs_super_block 0 64092 NULL
170557 +enable_so_act_len_htc_packet_64101 act_len htc_packet 0 64101 NULL
170558 +enable_so_cxgbi_hbas_add_fndecl_64102 cxgbi_hbas_add fndecl 3 64102 NULL
170559 +enable_so_rx_mini_pending_ethtool_ringparam_64104 rx_mini_pending ethtool_ringparam 0 64104 NULL
170560 +enable_so_ubiblock_major_vardecl_block_c_64105 ubiblock_major vardecl_block.c 0 64105 NULL
170561 +enable_so_j_first_unflushed_offset_reiserfs_journal_header_64107 j_first_unflushed_offset reiserfs_journal_header 0 64107 NULL
170562 +enable_so_ncells_nvmem_config_64108 ncells nvmem_config 0 64108 NULL nohasharray
170563 +enable_so_nvme_trans_unit_serial_page_fndecl_64108 nvme_trans_unit_serial_page fndecl 4 64108 &enable_so_ncells_nvmem_config_64108
170564 +enable_so_lmac_count_bgx_64109 lmac_count bgx 0 64109 NULL
170565 +enable_so_btmrvl_fwdump_write_fndecl_64113 btmrvl_fwdump_write fndecl 3 64113 NULL
170566 +enable_so_fc_copy_buffer_to_sglist_fndecl_64115 fc_copy_buffer_to_sglist fndecl 0-2 64115 NULL
170567 +enable_so_compat_write_data_parport_operations_64123 compat_write_data parport_operations 0 64123 NULL
170568 +enable_so_tx_shift_at91_devtype_data_64126 tx_shift at91_devtype_data 0 64126 NULL
170569 +enable_so_gigaset_fill_inbuf_fndecl_64130 gigaset_fill_inbuf fndecl 3 64130 NULL
170570 +enable_so_gru_alloc_locked_gts_fndecl_64132 gru_alloc_locked_gts fndecl 1 64132 NULL nohasharray
170571 +enable_so_test_walk_mm_walk_64132 test_walk mm_walk 0 64132 &enable_so_gru_alloc_locked_gts_fndecl_64132
170572 +enable_so_rds_create_fndecl_64136 rds_create fndecl 3 64136 NULL
170573 +enable_so_alx_change_mtu_fndecl_64137 alx_change_mtu fndecl 2 64137 NULL
170574 +enable_so_ieee80211_tdls_mgmt_teardown_fndecl_64138 ieee80211_tdls_mgmt_teardown fndecl 10 64138 NULL
170575 +enable_so_hd_end_request_fndecl_64139 hd_end_request fndecl 2-1 64139 NULL
170576 +enable_so_sl_tclass_flowlabel_mlx4_av_64141 sl_tclass_flowlabel mlx4_av 0 64141 NULL
170577 +enable_so_pskb_expand_head_fndecl_64146 pskb_expand_head fndecl 2 64146 NULL
170578 +enable_so_free_bootmem_fndecl_64150 free_bootmem fndecl 2-1 64150 NULL
170579 +enable_so_xpc_kmalloc_cacheline_aligned_fndecl_64156 xpc_kmalloc_cacheline_aligned fndecl 1 64156 NULL
170580 +enable_so_btrfs_readpage_end_io_hook_fndecl_64160 btrfs_readpage_end_io_hook fndecl 4-5 64160 NULL
170581 +enable_so_drbd_header_size_fndecl_64163 drbd_header_size fndecl 0 64163 NULL
170582 +enable_so_max_gs_mthca_wq_64165 max_gs mthca_wq 0 64165 NULL
170583 +enable_so_ext4_get_stripe_size_fndecl_64170 ext4_get_stripe_size fndecl 0 64170 NULL
170584 +enable_so_sctp_getsockopt_maxburst_fndecl_64174 sctp_getsockopt_maxburst fndecl 2-0 64174 NULL
170585 +enable_so_max_fcoe_conn_cnic_dev_64181 max_fcoe_conn cnic_dev 0 64181 NULL
170586 +enable_so_nfcid1_len_nfc_target_64182 nfcid1_len nfc_target 0 64182 NULL
170587 +enable_so_lba_to_arena_fndecl_64185 lba_to_arena fndecl 0 64185 NULL
170588 +enable_so_phys_pcm_format_data_64188 phys pcm_format_data 0 64188 NULL nohasharray
170589 +enable_so_min_pll_op_freq_hz_smiapp_pll_limits_64188 min_pll_op_freq_hz smiapp_pll_limits 0 64188 &enable_so_phys_pcm_format_data_64188
170590 +enable_so_bi_error_bio_64189 bi_error bio 0 64189 NULL
170591 +enable_so_out___kfifo_64192 out __kfifo 0 64192 NULL
170592 +enable_so_sys_sethostname_fndecl_64193 sys_sethostname fndecl 2 64193 NULL
170593 +enable_so_bulk_out_endpointAddr_usb_ftdi_64197 bulk_out_endpointAddr usb_ftdi 0 64197 NULL
170594 +enable_so_contact_threshold_mms114_platform_data_64198 contact_threshold mms114_platform_data 0 64198 NULL
170595 +enable_so_pcibios_scan_specific_bus_fndecl_64203 pcibios_scan_specific_bus fndecl 1 64203 NULL
170596 +enable_so_ath6kl_wmi_pmparams_cmd_fndecl_64204 ath6kl_wmi_pmparams_cmd fndecl 2 64204 NULL
170597 +enable_so_st_set_options_fndecl_64214 st_set_options fndecl 2 64214 NULL
170598 +enable_so_mlx5e_change_mtu_fndecl_64217 mlx5e_change_mtu fndecl 2 64217 NULL
170599 +enable_so_outbuf_dma_usbhid_device_64218 outbuf_dma usbhid_device 0 64218 NULL
170600 +enable_so_start_pfn_xen_memory_region_64226 start_pfn xen_memory_region 0 64226 NULL
170601 +enable_so_balance_dirty_pages_fndecl_64228 balance_dirty_pages fndecl 3 64228 NULL
170602 +enable_so_hfs_free_extents_fndecl_64234 hfs_free_extents fndecl 4 64234 NULL
170603 +enable_so_format_chain_fndecl_64242 format_chain fndecl 2 64242 NULL
170604 +enable_so_bNbrPorts_usb_hub_descriptor_64245 bNbrPorts usb_hub_descriptor 0 64245 NULL
170605 +enable_so_compat_udpv6_setsockopt_fndecl_64246 compat_udpv6_setsockopt fndecl 5 64246 NULL
170606 +enable_so_payload_sz_status_msg_64247 payload_sz status_msg 0 64247 NULL
170607 +enable_so_pwr_ap_sleep_counter_read_fndecl_64248 pwr_ap_sleep_counter_read fndecl 3 64248 NULL
170608 +enable_so_adf4350_tune_r_cnt_fndecl_64249 adf4350_tune_r_cnt fndecl 2-0 64249 NULL
170609 +enable_so_nfs_idmap_get_desc_fndecl_64253 nfs_idmap_get_desc fndecl 2-4 64253 NULL nohasharray
170610 +enable_so_rtw_os_xmit_resource_alloc_fndecl_64253 rtw_os_xmit_resource_alloc fndecl 3 64253 &enable_so_nfs_idmap_get_desc_fndecl_64253
170611 +enable_so_ccid_hc_rx_obj_size_ccid_operations_64257 ccid_hc_rx_obj_size ccid_operations 0 64257 NULL
170612 +enable_so_num_entries_wmi_target_roam_tbl_64263 num_entries wmi_target_roam_tbl 0 64263 NULL
170613 +enable_so_getxattr_cb_ceph_vxattr_64271 getxattr_cb ceph_vxattr 0 64271 NULL nohasharray
170614 +enable_so_dio_bio_complete_fndecl_64271 dio_bio_complete fndecl 0 64271 &enable_so_getxattr_cb_ceph_vxattr_64271
170615 +enable_so_dm_tm_read_lock_fndecl_64272 dm_tm_read_lock fndecl 2 64272 NULL
170616 +enable_so_denominator_v4l2_fract_64280 denominator v4l2_fract 0 64280 NULL
170617 +enable_so_t_prot_nents_se_cmd_64282 t_prot_nents se_cmd 0 64282 NULL
170618 +enable_so_SyS_mincore_fndecl_64284 SyS_mincore fndecl 2-1 64284 NULL
170619 +enable_so__dump_buf_data_order_vardecl_64288 _dump_buf_data_order vardecl 0 64288 NULL
170620 +enable_so_dev_minor_cuse_init_out_64292 dev_minor cuse_init_out 0 64292 NULL
170621 +enable_so_ath6kl_wmi_proc_events_vif_fndecl_64294 ath6kl_wmi_proc_events_vif fndecl 5 64294 NULL
170622 +enable_so_fdt_getprop_fndecl_64301 fdt_getprop fndecl 2 64301 NULL
170623 +enable_so_num_bds_table_bd_list_64306 num_bds_table bd_list 0 64306 NULL
170624 +enable_so_vfp_ast_vbios_enhtable_64307 vfp ast_vbios_enhtable 0 64307 NULL nohasharray
170625 +enable_so_sq_size_vardecl_64307 sq_size vardecl 0 64307 &enable_so_vfp_ast_vbios_enhtable_64307
170626 +enable_so_sys_vmsplice_fndecl_64310 sys_vmsplice fndecl 3 64310 NULL nohasharray
170627 +enable_so_snd_emux_create_port_fndecl_64310 snd_emux_create_port fndecl 3 64310 &enable_so_sys_vmsplice_fndecl_64310
170628 +enable_so_cw_putcs_fndecl_64311 cw_putcs fndecl 4-5-6 64311 NULL
170629 +enable_so___wa_xfer_setup_fndecl_64316 __wa_xfer_setup fndecl 0 64316 NULL
170630 +enable_so_smk_read_unconfined_fndecl_64317 smk_read_unconfined fndecl 3 64317 NULL
170631 +enable_so_hs_descs_count_ffs_data_64332 hs_descs_count ffs_data 0 64332 NULL
170632 +enable_so_cciss_add_disk_fndecl_64338 cciss_add_disk fndecl 3 64338 NULL
170633 +enable_so_tx_padding_usbatm_driver_64341 tx_padding usbatm_driver 0 64341 NULL
170634 +enable_so_vif_data_size_ieee80211_hw_64342 vif_data_size ieee80211_hw 0 64342 NULL
170635 +enable_so_part_start_hfsplus_sb_info_64347 part_start hfsplus_sb_info 0 64347 NULL
170636 +enable_so_bytesperline_au0828_dev_64350 bytesperline au0828_dev 0 64350 NULL
170637 +enable_so_r592_test_fifo_empty_fndecl_64351 r592_test_fifo_empty fndecl 0 64351 NULL
170638 +enable_so_opcount_compat_xfs_fsop_attrmulti_handlereq_64355 opcount compat_xfs_fsop_attrmulti_handlereq 0 64355 NULL
170639 +enable_so_logfs_truncate_fndecl_64356 logfs_truncate fndecl 2 64356 NULL
170640 +enable_so__iwl_dbgfs_tof_range_abort_write_fndecl_64357 _iwl_dbgfs_tof_range_abort_write fndecl 3 64357 NULL
170641 +enable_so_cur_tx_pos_tegra_spi_data_64362 cur_tx_pos tegra_spi_data 0 64362 NULL
170642 +enable_so_isofs_get_blocks_fndecl_64368 isofs_get_blocks fndecl 2 64368 NULL nohasharray
170643 +enable_so_hpi_instream_host_buffer_allocate_fndecl_64368 hpi_instream_host_buffer_allocate fndecl 2 64368 &enable_so_isofs_get_blocks_fndecl_64368
170644 +enable_so_oom_score_adj_write_fndecl_64369 oom_score_adj_write fndecl 3 64369 NULL
170645 +enable_so_ext_freq_mt9p031_platform_data_64376 ext_freq mt9p031_platform_data 0 64376 NULL
170646 +enable_so_map_state_fndecl_64377 map_state fndecl 1 64377 NULL
170647 +enable_so_hdr_len_ib_mac_iocb_rsp_64379 hdr_len ib_mac_iocb_rsp 0 64379 NULL nohasharray
170648 +enable_so_hpi_init_responseV1_fndecl_64379 hpi_init_responseV1 fndecl 2 64379 &enable_so_hdr_len_ib_mac_iocb_rsp_64379
170649 +enable_so_num_rxd_qlcnic_adapter_64380 num_rxd qlcnic_adapter 0 64380 NULL
170650 +enable_so_segments_ad9389b_state_edid_64384 segments ad9389b_state_edid 0 64384 NULL
170651 +enable_so_endio_readpage_release_extent_fndecl_64387 endio_readpage_release_extent fndecl 3-2 64387 NULL
170652 +enable_so_s_max_sge_qib_qp_64390 s_max_sge qib_qp 0 64390 NULL
170653 +enable_so_tvlv_len_batadv_ogm_packet_64392 tvlv_len batadv_ogm_packet 0 64392 NULL
170654 +enable_so_mem_kexec_segment_64393 mem kexec_segment 0 64393 NULL
170655 +enable_so_MemoryWindowSize_DAC960_privdata_64399 MemoryWindowSize DAC960_privdata 0 64399 NULL
170656 +enable_so_fdt_node_check_compatible_fndecl_64400 fdt_node_check_compatible fndecl 2 64400 NULL nohasharray
170657 +enable_so_diversity_num_of_packets_per_ant_read_fndecl_64400 diversity_num_of_packets_per_ant_read fndecl 3 64400 &enable_so_fdt_node_check_compatible_fndecl_64400 nohasharray
170658 +enable_so_oobretlen_mtd_oob_ops_64400 oobretlen mtd_oob_ops 0 64400 &enable_so_diversity_num_of_packets_per_ant_read_fndecl_64400
170659 +enable_so_sys_move_pages_fndecl_64401 sys_move_pages fndecl 2 64401 NULL
170660 +enable_so_init_data_si_sm_handlers_64406 init_data si_sm_handlers 0 64406 NULL
170661 +enable_so___get_user_pages_unlocked_fndecl_64409 __get_user_pages_unlocked fndecl 3 64409 NULL nohasharray
170662 +enable_so___blk_end_request_cur_fndecl_64409 __blk_end_request_cur fndecl 2 64409 &enable_so___get_user_pages_unlocked_fndecl_64409
170663 +enable_so_cdc_ncm_max_dgram_size_fndecl_64415 cdc_ncm_max_dgram_size fndecl 0 64415 NULL
170664 +enable_so_l2tp_xmit_skb_fndecl_64419 l2tp_xmit_skb fndecl 3 64419 NULL
170665 +enable_so_ssid_len_cfg80211_ap_settings_64422 ssid_len cfg80211_ap_settings 0 64422 NULL
170666 +enable_so_head_len_icmp_bxm_64424 head_len icmp_bxm 0 64424 NULL
170667 +enable_so_nfs4_new_slot_fndecl_64436 nfs4_new_slot fndecl 2 64436 NULL
170668 +enable_so_batadv_dat_get_vid_fndecl_64442 batadv_dat_get_vid fndecl 0 64442 NULL nohasharray
170669 +enable_so_index_v4l2_frmivalenum_64442 index v4l2_frmivalenum 0 64442 &enable_so_batadv_dat_get_vid_fndecl_64442
170670 +enable_so_bfad_iocmd_sfp_media_fndecl_64444 bfad_iocmd_sfp_media fndecl 0 64444 NULL
170671 +enable_so_bLength_uvc_control_endpoint_descriptor_64456 bLength uvc_control_endpoint_descriptor 0 64456 NULL
170672 +enable_so_jpg_size_s2255_vc_64457 jpg_size s2255_vc 0 64457 NULL
170673 +enable_so_num_ch_st_sensor_settings_64459 num_ch st_sensor_settings 0 64459 NULL
170674 +enable_so___ocfs2_decrease_refcount_fndecl_64462 __ocfs2_decrease_refcount fndecl 5-4 64462 NULL
170675 +enable_so_new_node_page_fndecl_64464 new_node_page fndecl 2 64464 NULL
170676 +enable_so_send_write_chunks_fndecl_64466 send_write_chunks fndecl 0 64466 NULL
170677 +enable_so_btrfs_grow_device_fndecl_64468 btrfs_grow_device fndecl 3 64468 NULL
170678 +enable_so_acpi_dev_get_irqresource_fndecl_64469 acpi_dev_get_irqresource fndecl 2 64469 NULL
170679 +enable_so_request_key_and_link_fndecl_64470 request_key_and_link fndecl 4 64470 NULL
170680 +enable_so_nilfs_btnode_submit_block_fndecl_64473 nilfs_btnode_submit_block fndecl 3-2 64473 NULL
170681 +enable_so_vb2_read_fndecl_64476 vb2_read fndecl 3 64476 NULL
170682 +enable_so_nr_dirtied_pause_task_struct_64480 nr_dirtied_pause task_struct 0 64480 NULL nohasharray
170683 +enable_so_pid_vnr_fndecl_64480 pid_vnr fndecl 0 64480 &enable_so_nr_dirtied_pause_task_struct_64480
170684 +enable_so_set_aoe_iflist_fndecl_64482 set_aoe_iflist fndecl 2 64482 NULL
170685 +enable_so_transport_header_sk_buff_64483 transport_header sk_buff 0 64483 NULL
170686 +enable_so_SendReceive2_fndecl_64485 SendReceive2 fndecl 4 64485 NULL
170687 +enable_so_ax25_setsockopt_fndecl_64487 ax25_setsockopt fndecl 5 64487 NULL
170688 +enable_so_vhost_hlen_vhost_net_virtqueue_64488 vhost_hlen vhost_net_virtqueue 0 64488 NULL
170689 +enable_so_val_reginit_item_64493 val reginit_item 0 64493 NULL
170690 +enable_so___FIXADDR_TOP_vardecl_64494 __FIXADDR_TOP vardecl 0 64494 NULL
170691 +enable_so_ddr_end_intel_sst_drv_64496 ddr_end intel_sst_drv 0 64496 NULL
170692 +enable_so_read_status_fndecl_64497 read_status fndecl 0 64497 NULL
170693 +enable_so_ext_ramdisk_size_boot_params_64498 ext_ramdisk_size boot_params 0 64498 NULL
170694 +enable_so_iwl_mvm_coex_dump_mbox_old_fndecl_64500 iwl_mvm_coex_dump_mbox_old fndecl 0-3 64500 NULL
170695 +enable_so_num_def_tx_descs_octeon_config_64501 num_def_tx_descs octeon_config 0 64501 NULL
170696 +enable_so_omap_hsmmc_dma_cleanup_fndecl_64504 omap_hsmmc_dma_cleanup fndecl 2 64504 NULL
170697 +enable_so_dvb_demux_ioctl_fndecl_64510 dvb_demux_ioctl fndecl 2 64510 NULL
170698 +enable_so_fc_plogi_get_maxframe_fndecl_64511 fc_plogi_get_maxframe fndecl 0-2 64511 NULL
170699 +enable_so_reg_smiapp_reg_8_64519 reg smiapp_reg_8 0 64519 NULL
170700 +enable_so_insize_cros_ec_command_64521 insize cros_ec_command 0 64521 NULL
170701 +enable_so_hdr_len_st_proto_s_64523 hdr_len st_proto_s 0 64523 NULL
170702 +enable_so_tun_alloc_skb_fndecl_64531 tun_alloc_skb fndecl 4-3-2 64531 NULL
170703 +enable_so_txq_cnt_tg3_64539 txq_cnt tg3 0 64539 NULL
170704 +enable_so_cfg80211_process_disassoc_fndecl_64540 cfg80211_process_disassoc fndecl 3 64540 NULL
170705 +enable_so_fw_dump_tmplt_size_scsi_qla_host_64541 fw_dump_tmplt_size scsi_qla_host 0 64541 NULL
170706 +enable_so_xfs_icreate_log_fndecl_64543 xfs_icreate_log fndecl 3-2 64543 NULL
170707 +enable_so_phys_size_ntb_transport_mw_64544 phys_size ntb_transport_mw 0 64544 NULL
170708 +enable_so_id_nfc_protocol_64548 id nfc_protocol 0 64548 NULL nohasharray
170709 +enable_so_ath10k_p2p_noa_ie_len_compute_fndecl_64548 ath10k_p2p_noa_ie_len_compute fndecl 0 64548 &enable_so_id_nfc_protocol_64548
170710 +enable_so_dccph_ack_nr_high_dccp_hdr_ack_bits_64553 dccph_ack_nr_high dccp_hdr_ack_bits 0 64553 NULL
170711 +enable_so_minix_V1_raw_inode_fndecl_64554 minix_V1_raw_inode fndecl 2 64554 NULL
170712 +enable_so_num_channels_sh_tmu_device_64556 num_channels sh_tmu_device 0 64556 NULL
170713 +enable_so_expected_count_hfi1_ctxtdata_64557 expected_count hfi1_ctxtdata 0 64557 NULL
170714 +enable_so_xfs_zero_last_block_fndecl_64560 xfs_zero_last_block fndecl 3 64560 NULL nohasharray
170715 +enable_so_valid_tty_audit_buf_64560 valid tty_audit_buf 0 64560 &enable_so_xfs_zero_last_block_fndecl_64560
170716 +enable_so_stv090x_write_regs_fndecl_64562 stv090x_write_regs fndecl 4 64562 NULL
170717 +enable_so_hiddev_compat_ioctl_fndecl_64564 hiddev_compat_ioctl fndecl 2 64564 NULL
170718 +enable_so_blockshift_nand_flash_dev_64570 blockshift nand_flash_dev 0 64570 NULL
170719 +enable_so_offset_seg_buf_64571 offset seg_buf 0 64571 NULL
170720 +enable_so___fprog_create_fndecl_64572 __fprog_create fndecl 2 64572 NULL
170721 +enable_so_rq_enc_pages_num_rpc_rqst_64573 rq_enc_pages_num rpc_rqst 0 64573 NULL
170722 +enable_so_mirrors_p1_ore_layout_64575 mirrors_p1 ore_layout 0 64575 NULL nohasharray
170723 +enable_so_cdc_ncm_align_tail_fndecl_64575 cdc_ncm_align_tail fndecl 4-3-2 64575 &enable_so_mirrors_p1_ore_layout_64575 nohasharray
170724 +enable_so_erst_read_fndecl_64575 erst_read fndecl 0-1 64575 &enable_so_cdc_ncm_align_tail_fndecl_64575
170725 +enable_so_hfsplus_iget_fndecl_64576 hfsplus_iget fndecl 2 64576 NULL nohasharray
170726 +enable_so_msb_set_overwrite_flag_fndecl_64576 msb_set_overwrite_flag fndecl 2 64576 &enable_so_hfsplus_iget_fndecl_64576
170727 +enable_so_len_fuse_copy_state_64585 len fuse_copy_state 0 64585 NULL nohasharray
170728 +enable_so_long_len_fat_ioctl_filldir_callback_64585 long_len fat_ioctl_filldir_callback 0 64585 &enable_so_len_fuse_copy_state_64585
170729 +enable_so_blocks_per_seg_f2fs_sb_info_64587 blocks_per_seg f2fs_sb_info 0 64587 NULL
170730 +enable_so_t4_init_l2t_fndecl_64588 t4_init_l2t fndecl 1-2 64588 NULL
170731 +enable_so_udl_gem_create_fndecl_64590 udl_gem_create fndecl 3 64590 NULL
170732 +enable_so_alloc_context_fndecl_64592 alloc_context fndecl 1 64592 NULL
170733 +enable_so_isp1362_urb_dequeue_fndecl_64595 isp1362_urb_dequeue fndecl 3 64595 NULL
170734 +enable_so_of_count_phandle_with_args_fndecl_64600 of_count_phandle_with_args fndecl 0 64600 NULL
170735 +enable_so_logical_offset_btrfs_ioctl_same_extent_info_64608 logical_offset btrfs_ioctl_same_extent_info 0 64608 NULL
170736 +enable_so_s_gdb_count_ext4_sb_info_64617 s_gdb_count ext4_sb_info 0 64617 NULL
170737 +enable_so_o2hb_setup_one_bio_fndecl_64622 o2hb_setup_one_bio fndecl 4 64622 NULL nohasharray
170738 +enable_so_vid_batadv_tvlv_roam_adv_64622 vid batadv_tvlv_roam_adv 0 64622 &enable_so_o2hb_setup_one_bio_fndecl_64622
170739 +enable_so_xfs_iext_remove_indirect_fndecl_64624 xfs_iext_remove_indirect fndecl 3 64624 NULL
170740 +enable_so_objio_alloc_io_state_fndecl_64631 objio_alloc_io_state fndecl 6-7 64631 NULL
170741 +enable_so_bsg_job_done_fndecl_64640 bsg_job_done fndecl 3-2 64640 NULL
170742 +enable_so_netlink_alloc_large_skb_fndecl_64652 netlink_alloc_large_skb fndecl 1 64652 NULL
170743 +enable_so_kmp_init_fndecl_64654 kmp_init fndecl 2 64654 NULL
170744 +enable_so_num_allowed_vlans_qlcnic_sriov_64661 num_allowed_vlans qlcnic_sriov 0 64661 NULL
170745 +enable_so_cnic_init_id_tbl_fndecl_64665 cnic_init_id_tbl fndecl 3-2 64665 NULL
170746 +enable_so_usnic_ib_reg_mr_fndecl_64668 usnic_ib_reg_mr fndecl 2-3 64668 NULL nohasharray
170747 +enable_so_jbd2_alloc_fndecl_64668 jbd2_alloc fndecl 1 64668 &enable_so_usnic_ib_reg_mr_fndecl_64668
170748 +enable_so_maximum_num_containers_aac_dev_64672 maximum_num_containers aac_dev 0 64672 NULL
170749 +enable_so_isr_commands_read_fndecl_64677 isr_commands_read fndecl 3 64677 NULL nohasharray
170750 +enable_so_cciss_update_drive_info_fndecl_64677 cciss_update_drive_info fndecl 2 64677 &enable_so_isr_commands_read_fndecl_64677
170751 +enable_so_mapbase_uart_port_64681 mapbase uart_port 0 64681 NULL
170752 +enable_so_xfs_trans_mod_sb_fndecl_64682 xfs_trans_mod_sb fndecl 3 64682 NULL
170753 +enable_so_sys_flistxattr_fndecl_64684 sys_flistxattr fndecl 3 64684 NULL
170754 +enable_so_num_fields_ima_template_desc_64688 num_fields ima_template_desc 0 64688 NULL nohasharray
170755 +enable_so_get_base_info_fndecl_64688 get_base_info fndecl 3 64688 &enable_so_num_fields_ima_template_desc_64688
170756 +enable_so_srp_sg_tablesize_vardecl_ib_srp_c_64692 srp_sg_tablesize vardecl_ib_srp.c 0 64692 NULL
170757 +enable_so_size_cramfs_inode_64704 size cramfs_inode 0 64704 NULL
170758 +enable_so_lbs_rdrf_read_fndecl_64708 lbs_rdrf_read fndecl 3 64708 NULL
170759 +enable_so_alloc_bytenr_btrfs_root_64709 alloc_bytenr btrfs_root 0 64709 NULL
170760 +enable_so_bfad_iocmd_port_cfg_maxfrsize_fndecl_64711 bfad_iocmd_port_cfg_maxfrsize fndecl 0 64711 NULL nohasharray
170761 +enable_so_isdn_ppp_fill_rq_fndecl_64711 isdn_ppp_fill_rq fndecl 2 64711 &enable_so_bfad_iocmd_port_cfg_maxfrsize_fndecl_64711
170762 +enable_so_base_cmdline_vardecl_dma_contiguous_c_64713 base_cmdline vardecl_dma-contiguous.c 0 64713 NULL
170763 +enable_so_rcount_x25_asy_64715 rcount x25_asy 0 64715 NULL
170764 +enable_so_width_drm_framebuffer_64716 width drm_framebuffer 0 64716 NULL
170765 +enable_so_spc_modesense_long_blockdesc_fndecl_64717 spc_modesense_long_blockdesc fndecl 0 64717 NULL
170766 +enable_so_vs_bsize_vxfs_sb_64718 vs_bsize vxfs_sb 0 64718 NULL
170767 +enable_so_mt7601u_dma_fw_fndecl_64719 mt7601u_dma_fw fndecl 4 64719 NULL
170768 +enable_so_rx_defrag_decrypt_failed_read_fndecl_64720 rx_defrag_decrypt_failed_read fndecl 3 64720 NULL
170769 +enable_so_size_host_cmd_ds_command_64722 size host_cmd_ds_command 0 64722 NULL
170770 +enable_so_max_touch_num_goodix_ts_data_64725 max_touch_num goodix_ts_data 0 64725 NULL
170771 +enable_so_xfs_iext_add_fndecl_64733 xfs_iext_add fndecl 3 64733 NULL
170772 +enable_so_last_mgmt_tx_frame_len_wmi_64739 last_mgmt_tx_frame_len wmi 0 64739 NULL
170773 +enable_so_se_io_cb_fndecl_64742 se_io_cb fndecl 3 64742 NULL
170774 +enable_so_ulite_assign_fndecl_64744 ulite_assign fndecl 3-2 64744 NULL
170775 +enable_so_net_frag_header_len_inet_connection_sock_af_ops_64745 net_frag_header_len inet_connection_sock_af_ops 0 64745 NULL
170776 +enable_so_layout_leb_in_gaps_fndecl_64749 layout_leb_in_gaps fndecl 0 64749 NULL
170777 +enable_so_tun_id_ip_tunnel_key_64751 tun_id ip_tunnel_key 0 64751 NULL
170778 +enable_so_pcpu_build_alloc_info_fndecl_64752 pcpu_build_alloc_info fndecl 3-2-1 64752 NULL
170779 +enable_so_create_pid_cachep_fndecl_64753 create_pid_cachep fndecl 1 64753 NULL
170780 +enable_so_ocfs2_fill_initial_dirents_fndecl_64755 ocfs2_fill_initial_dirents fndecl 4 64755 NULL nohasharray
170781 +enable_so_iio_device_alloc_fndecl_64755 iio_device_alloc fndecl 1 64755 &enable_so_ocfs2_fill_initial_dirents_fndecl_64755
170782 +enable_so_datasz_memelfnote_64760 datasz memelfnote 0 64760 NULL
170783 +enable_so_raid_disk_mdp_device_descriptor_s_64762 raid_disk mdp_device_descriptor_s 0 64762 NULL
170784 +enable_so_smtcfb_read_fndecl_64764 smtcfb_read fndecl 3 64764 NULL
170785 +enable_so_ima_appraise_measurement_fndecl_64769 ima_appraise_measurement fndecl 6 64769 NULL
170786 +enable_so_jfs_get_block_fndecl_64772 jfs_get_block fndecl 2 64772 NULL
170787 +enable_so_at24_eeprom_write_fndecl_64775 at24_eeprom_write fndecl 3-0-4 64775 NULL nohasharray
170788 +enable_so_scsi_debug_unmap_alignment_vardecl_scsi_debug_c_64775 scsi_debug_unmap_alignment vardecl_scsi_debug.c 0 64775 &enable_so_at24_eeprom_write_fndecl_64775
170789 +enable_so_ib_qib_max_srq_sges_vardecl_64786 ib_qib_max_srq_sges vardecl 0 64786 NULL nohasharray
170790 +enable_so_bfad_iocmd_ethboot_query_fndecl_64786 bfad_iocmd_ethboot_query fndecl 0 64786 &enable_so_ib_qib_max_srq_sges_vardecl_64786
170791 +enable_so_tun_hlen_ip_tunnel_64791 tun_hlen ip_tunnel 0 64791 NULL
170792 +enable_so_fw_size_sst_pdata_64793 fw_size sst_pdata 0 64793 NULL
170793 +enable_so_mac80211_format_buffer_fndecl_64801 mac80211_format_buffer fndecl 2 64801 NULL
170794 +enable_so__update_journal_header_block_fndecl_64803 _update_journal_header_block fndecl 2 64803 NULL nohasharray
170795 +enable_so_fr_max_payload_fcoe_rcv_info_64803 fr_max_payload fcoe_rcv_info 0 64803 &enable_so__update_journal_header_block_fndecl_64803
170796 +enable_so_pmsg_size_ramoops_context_64804 pmsg_size ramoops_context 0 64804 NULL
170797 +enable_so_tx_headroom_nci_dev_64805 tx_headroom nci_dev 0 64805 NULL
170798 +enable_so_alloc_align_snd_array_64806 alloc_align snd_array 0 64806 NULL
170799 +enable_so_il_dbgfs_fh_reg_read_fndecl_64818 il_dbgfs_fh_reg_read fndecl 3 64818 NULL
170800 +enable_so_xen_count_remap_pages_fndecl_64820 xen_count_remap_pages fndecl 0-1 64820 NULL nohasharray
170801 +enable_so_iwl_dbgfs_scan_ant_rxchain_read_fndecl_64820 iwl_dbgfs_scan_ant_rxchain_read fndecl 3 64820 &enable_so_xen_count_remap_pages_fndecl_64820
170802 +enable_so_reg_list_size_amdgpu_rlc_64826 reg_list_size amdgpu_rlc 0 64826 NULL
170803 +enable_so_atr_csum_cm4000_dev_64828 atr_csum cm4000_dev 0 64828 NULL
170804 +enable_so_ocfs2_xattr_index_block_find_fndecl_64835 ocfs2_xattr_index_block_find fndecl 0 64835 NULL
170805 +enable_so_lprocfs_write_frac_helper_fndecl_64841 lprocfs_write_frac_helper fndecl 2 64841 NULL
170806 +enable_so_iov_iter_truncate_fndecl_64844 iov_iter_truncate fndecl 2 64844 NULL
170807 +enable_so_smsc75xx_change_mtu_fndecl_64845 smsc75xx_change_mtu fndecl 2 64845 NULL nohasharray
170808 +enable_so_ngpio_gpio_chip_64845 ngpio gpio_chip 0 64845 &enable_so_smsc75xx_change_mtu_fndecl_64845
170809 +enable_so__send_fndecl_64846 _send fndecl 3 64846 NULL nohasharray
170810 +enable_so_ath6kl_wmi_sta_bmiss_enhance_cmd_fndecl_64846 ath6kl_wmi_sta_bmiss_enhance_cmd fndecl 2 64846 &enable_so__send_fndecl_64846
170811 +enable_so__req_append_segment_fndecl_64852 _req_append_segment fndecl 2 64852 NULL nohasharray
170812 +enable_so_tool_dbfn_write_fndecl_64852 tool_dbfn_write fndecl 3 64852 &enable_so__req_append_segment_fndecl_64852
170813 +enable_so_log_max_len_client_hdr_64853 log_max_len client_hdr 0 64853 NULL nohasharray
170814 +enable_so_E_info_CARD_PROPERTIES_64853 E_info CARD_PROPERTIES 0 64853 &enable_so_log_max_len_client_hdr_64853
170815 +enable_so_bud_wbuf_callback_fndecl_64863 bud_wbuf_callback fndecl 3 64863 NULL
170816 +enable_so_rh_inc_fndecl_64864 rh_inc fndecl 2 64864 NULL
170817 +enable_so_raw_recvmsg_fndecl_64866 raw_recvmsg fndecl 3 64866 NULL nohasharray
170818 +enable_so_len_discard_entry_64866 len discard_entry 0 64866 &enable_so_raw_recvmsg_fndecl_64866
170819 +enable_so_p_linux_binprm_64868 p linux_binprm 0 64868 NULL
170820 +enable_so_sc_only_mode_read_fndecl_64871 sc_only_mode_read fndecl 3 64871 NULL
170821 +enable_so_rq_count_enic_64875 rq_count enic 0 64875 NULL
170822 +enable_so_tx_ring_size_fe_priv_64876 tx_ring_size fe_priv 0 64876 NULL
170823 +enable_so_tx_max_frame_ntb_transport_qp_64878 tx_max_frame ntb_transport_qp 0 64878 NULL
170824 +enable_so_logfs_read_meta_inode_fndecl_64880 logfs_read_meta_inode fndecl 2 64880 NULL
170825 +enable_so_vfs_listxattr_fndecl_64885 vfs_listxattr fndecl 0 64885 NULL
170826 +enable_so_snd_pcm_hw_param_max_fndecl_64887 snd_pcm_hw_param_max fndecl 4 64887 NULL nohasharray
170827 +enable_so_qs_in_channels_hdspm_64887 qs_in_channels hdspm 0 64887 &enable_so_snd_pcm_hw_param_max_fndecl_64887 nohasharray
170828 +enable_so_xbfi_blockcount_xfs_bmap_free_item_64887 xbfi_blockcount xfs_bmap_free_item 0 64887 &enable_so_qs_in_channels_hdspm_64887
170829 +enable_so_ks8995_write_fndecl_64889 ks8995_write fndecl 4 64889 NULL nohasharray
170830 +enable_so_count_ioctl_gntalloc_alloc_gref_64889 count ioctl_gntalloc_alloc_gref 0 64889 &enable_so_ks8995_write_fndecl_64889
170831 +enable_so_reserve_sfa_size_fndecl_64893 reserve_sfa_size fndecl 2 64893 NULL
170832 +enable_so_mpeglinesize_vardecl_cx23885_417_c_64898 mpeglinesize vardecl_cx23885-417.c 0 64898 NULL nohasharray
170833 +enable_so_provide_user_output_fndecl_64898 provide_user_output fndecl 3 64898 &enable_so_mpeglinesize_vardecl_cx23885_417_c_64898
170834 +enable_so_f_audio_buffer_alloc_fndecl_64901 f_audio_buffer_alloc fndecl 1 64901 NULL
170835 +enable_so_unuse_pte_range_fndecl_64903 unuse_pte_range fndecl 3 64903 NULL
170836 +enable_so_maxctl_brcmf_bus_64907 maxctl brcmf_bus 0 64907 NULL nohasharray
170837 +enable_so_ath10k_read_wmi_services_fndecl_64907 ath10k_read_wmi_services fndecl 3 64907 &enable_so_maxctl_brcmf_bus_64907
170838 +enable_so_data_size_event_reader_64909 data_size event_reader 0 64909 NULL
170839 +enable_so_nmsgs_i2c_rdwr_ioctl_data_64911 nmsgs i2c_rdwr_ioctl_data 0 64911 NULL
170840 +enable_so_next_block_for_io_dio_submit_64914 next_block_for_io dio_submit 0 64914 NULL
170841 +enable_so_rd_size_uhid_create_req_64916 rd_size uhid_create_req 0 64916 NULL
170842 +enable_so_dma_attach_fndecl_64917 dma_attach fndecl 8-7-10-5-6 64917 NULL
170843 +enable_so_roccat_read_fndecl_64918 roccat_read fndecl 3 64918 NULL
170844 +enable_so_nl80211_send_mlme_event_fndecl_64920 nl80211_send_mlme_event fndecl 4 64920 NULL
170845 +enable_so_ath10k_wmi_tlv_op_gen_bcn_tmpl_fndecl_64938 ath10k_wmi_tlv_op_gen_bcn_tmpl fndecl 8 64938 NULL nohasharray
170846 +enable_so_sq_max_wqes_per_wr_mlx4_ib_qp_64938 sq_max_wqes_per_wr mlx4_ib_qp 0 64938 &enable_so_ath10k_wmi_tlv_op_gen_bcn_tmpl_fndecl_64938
170847 +enable_so_pci_iov_virtfn_bus_fndecl_64949 pci_iov_virtfn_bus fndecl 0-2 64949 NULL
170848 +enable_so_ieee80211_tdls_add_ies_fndecl_64954 ieee80211_tdls_add_ies fndecl 8 64954 NULL
170849 +enable_so_status_spi_message_64956 status spi_message 0 64956 NULL
170850 +enable_so_BlockCount_DAC960_Command_64957 BlockCount DAC960_Command 0 64957 NULL
170851 +enable_so_dvb_ca_write_fndecl_64960 dvb_ca_write fndecl 3 64960 NULL
170852 +enable_so_count_acpi_processor_power_64969 count acpi_processor_power 0 64969 NULL
170853 +enable_so_len_ctrl_queue_64975 len ctrl_queue 0 64975 NULL
170854 +enable_so_io_init_fndecl_64981 io_init fndecl 2 64981 NULL nohasharray
170855 +enable_so_print_pkt_fndecl_64981 print_pkt fndecl 2 64981 &enable_so_io_init_fndecl_64981
170856 +enable_so_rp2_alloc_ports_fndecl_64987 rp2_alloc_ports fndecl 0-1 64987 NULL nohasharray
170857 +enable_so_hq_size_cnic_local_64987 hq_size cnic_local 0 64987 &enable_so_rp2_alloc_ports_fndecl_64987
170858 +enable_so_tx_frag_mpdu_alloc_failed_read_fndecl_64988 tx_frag_mpdu_alloc_failed_read fndecl 3 64988 NULL
170859 +enable_so_maxTxCredits_edgeport_port_64991 maxTxCredits edgeport_port 0 64991 NULL
170860 +enable_so_UpdateRegs_fndecl_64995 UpdateRegs fndecl 2-3 64995 NULL nohasharray
170861 +enable_so_vt8231_device_add_fndecl_64995 vt8231_device_add fndecl 1 64995 &enable_so_UpdateRegs_fndecl_64995
170862 +enable_so___mlxsw_item_get32_fndecl_64999 __mlxsw_item_get32 fndecl 0 64999 NULL
170863 +enable_so_access_length_acpi_connection_info_65000 access_length acpi_connection_info 0 65000 NULL nohasharray
170864 +enable_so_shkey_id_sctp_authhdr_65000 shkey_id sctp_authhdr 0 65000 &enable_so_access_length_acpi_connection_info_65000
170865 +enable_so_mask_cbuf_65001 mask cbuf 0 65001 NULL
170866 +enable_so_cc2520_read_rxfifo_fndecl_65006 cc2520_read_rxfifo fndecl 3 65006 NULL
170867 +enable_so_netif_get_num_default_rss_queues_fndecl_65008 netif_get_num_default_rss_queues fndecl 0 65008 NULL
170868 +enable_so_actual_size_saa7164_user_buffer_65010 actual_size saa7164_user_buffer 0 65010 NULL
170869 +enable_so_compat_sys_process_vm_writev_fndecl_65017 compat_sys_process_vm_writev fndecl 5-3 65017 NULL
170870 +enable_so_cmd_len_sg_io_hdr_65018 cmd_len sg_io_hdr 0 65018 NULL
170871 +enable_so_dfs_file_write_fndecl_65023 dfs_file_write fndecl 3 65023 NULL
170872 +enable_so_intr_size_usb_pcwd_private_65024 intr_size usb_pcwd_private 0 65024 NULL
170873 +enable_so_au8522_rc_read_fndecl_65026 au8522_rc_read fndecl 5 65026 NULL
170874 +enable_so_ocfs2_block_group_fill_fndecl_65027 ocfs2_block_group_fill fndecl 4 65027 NULL
170875 +enable_so_prev_length_deflate_state_65029 prev_length deflate_state 0 65029 NULL
170876 +enable_so_xfs_calc_dquots_per_chunk_fndecl_65040 xfs_calc_dquots_per_chunk fndecl 0-1 65040 NULL
170877 +enable_so_rtsx_pci_ms_issue_cmd_fndecl_65049 rtsx_pci_ms_issue_cmd fndecl 0 65049 NULL
170878 +enable_so_brcmf_cfg80211_vndr_cmds_dcmd_handler_fndecl_65059 brcmf_cfg80211_vndr_cmds_dcmd_handler fndecl 4 65059 NULL
170879 +enable_so_iscsi_max_rcv_data_seg_len_dev_db_entry_65060 iscsi_max_rcv_data_seg_len dev_db_entry 0 65060 NULL nohasharray
170880 +enable_so_xen_free_ro_pages_fndecl_65060 xen_free_ro_pages fndecl 2-1 65060 &enable_so_iscsi_max_rcv_data_seg_len_dev_db_entry_65060 nohasharray
170881 +enable_so_bus_add_driver_fndecl_65060 bus_add_driver fndecl 0 65060 &enable_so_xen_free_ro_pages_fndecl_65060
170882 +enable_so_flag_node_footer_65063 flag node_footer 0 65063 NULL
170883 +enable_so_ResidualCnt__ErrorInfo_struct_65074 ResidualCnt _ErrorInfo_struct 0 65074 NULL
170884 +enable_so_mmc_test_transfer_fndecl_65076 mmc_test_transfer fndecl 6-5-3 65076 NULL
170885 +enable_so_xfs_growfs_rt_alloc_fndecl_65079 xfs_growfs_rt_alloc fndecl 2-3 65079 NULL
170886 +enable_so_SyS_bpf_fndecl_65081 SyS_bpf fndecl 3 65081 NULL
170887 +enable_so_frame_size_pwc_device_65084 frame_size pwc_device 0 65084 NULL
170888 +enable_so_fcoe_len_fcoe_rport_65085 fcoe_len fcoe_rport 0 65085 NULL
170889 +enable_so_width_cx88_core_65086 width cx88_core 0 65086 NULL nohasharray
170890 +enable_so_capi_ttyminors_vardecl_capi_c_65086 capi_ttyminors vardecl_capi.c 0 65086 &enable_so_width_cx88_core_65086
170891 +enable_so_num_tx_bds_bcmgenet_priv_65087 num_tx_bds bcmgenet_priv 0 65087 NULL
170892 +enable_so_size_ion_test_rw_data_65088 size ion_test_rw_data 0 65088 NULL
170893 +enable_so_queue_depth_se_node_acl_65089 queue_depth se_node_acl 0 65089 NULL
170894 +enable_so_max_write_send_sge_ocrdma_mbx_query_config_65090 max_write_send_sge ocrdma_mbx_query_config 0 65090 NULL
170895 +enable_so_sco_send_frame_fndecl_65092 sco_send_frame fndecl 3 65092 NULL
170896 +enable_so_rtw_android_get_macaddr_fndecl_65095 rtw_android_get_macaddr fndecl 0 65095 NULL
170897 +enable_so_cfg_num_qs_be_adapter_65098 cfg_num_qs be_adapter 0 65098 NULL
170898 +enable_so_ecryptfs_write_begin_fndecl_65099 ecryptfs_write_begin fndecl 3 65099 NULL
170899 +enable_so_ieee802154_hdr_push_fndecl_65100 ieee802154_hdr_push fndecl 0 65100 NULL nohasharray
170900 +enable_so_max_xri_lpfc_max_cfg_param_65100 max_xri lpfc_max_cfg_param 0 65100 &enable_so_ieee802154_hdr_push_fndecl_65100
170901 +enable_so_sndsize_sock_xprt_65105 sndsize sock_xprt 0 65105 NULL nohasharray
170902 +enable_so_iwl_dbgfs_bt_notif_read_fndecl_65105 iwl_dbgfs_bt_notif_read fndecl 3 65105 &enable_so_sndsize_sock_xprt_65105
170903 +enable_so_x25_recvmsg_fndecl_65106 x25_recvmsg fndecl 3 65106 NULL nohasharray
170904 +enable_so_ocfs2_dx_dir_rebalance_fndecl_65106 ocfs2_dx_dir_rebalance fndecl 7-0 65106 &enable_so_x25_recvmsg_fndecl_65106
170905 +enable_so_ntb_mw_count_fndecl_65108 ntb_mw_count fndecl 0 65108 NULL
170906 +enable_so_nilfs_cpfile_is_snapshot_fndecl_65110 nilfs_cpfile_is_snapshot fndecl 2 65110 NULL
170907 +enable_so_mmc_test_seq_read_perf_fndecl_65111 mmc_test_seq_read_perf fndecl 2 65111 NULL
170908 +enable_so_hsi_alloc_controller_fndecl_65113 hsi_alloc_controller fndecl 1 65113 NULL
170909 +enable_so_fat_alloc_new_dir_fndecl_65115 fat_alloc_new_dir fndecl 0 65115 NULL
170910 +enable_so_amdgpu_bo_list_set_fndecl_65117 amdgpu_bo_list_set fndecl 5 65117 NULL
170911 +enable_so_wpa_ie_len_libipw_device_65120 wpa_ie_len libipw_device 0 65120 NULL
170912 +enable_so_scrub_extent_for_parity_fndecl_65123 scrub_extent_for_parity fndecl 3-2-4 65123 NULL
170913 +enable_so_keyctl_instantiate_key_fndecl_65132 keyctl_instantiate_key fndecl 3 65132 NULL
170914 +enable_so_qib_rcvhdrentsize_vardecl_qib_iba7322_c_65133 qib_rcvhdrentsize vardecl_qib_iba7322.c 0 65133 NULL
170915 +enable_so_do_ip_setsockopt_fndecl_65135 do_ip_setsockopt fndecl 5 65135 NULL
170916 +enable_so_kimage_file_alloc_init_fndecl_65136 kimage_file_alloc_init fndecl 5 65136 NULL
170917 +enable_so_num_pipe_drm_psb_private_65138 num_pipe drm_psb_private 0 65138 NULL
170918 +enable_so_ixgbe_dbg_netdev_ops_read_fndecl_65148 ixgbe_dbg_netdev_ops_read fndecl 3 65148 NULL
170919 +enable_so_depth_sh_veu_format_65150 depth sh_veu_format 0 65150 NULL
170920 +enable_so___recover_dot_dentries_fndecl_65151 __recover_dot_dentries fndecl 2 65151 NULL
170921 +enable_so_piocnt_qib_ctxtdata_65161 piocnt qib_ctxtdata 0 65161 NULL nohasharray
170922 +enable_so_nexthdrlen_lowpan_nhc_65161 nexthdrlen lowpan_nhc 0 65161 &enable_so_piocnt_qib_ctxtdata_65161 nohasharray
170923 +enable_so_dma_txsize_vardecl_stmmac_main_c_65161 dma_txsize vardecl_stmmac_main.c 0 65161 &enable_so_nexthdrlen_lowpan_nhc_65161
170924 +enable_so_mwifiex_cmd_append_vsie_tlv_fndecl_65164 mwifiex_cmd_append_vsie_tlv fndecl 0 65164 NULL
170925 +enable_so_ccp_get_dm_area_fndecl_65170 ccp_get_dm_area fndecl 4 65170 NULL
170926 +enable_so___ext4_block_zero_page_range_fndecl_65173 __ext4_block_zero_page_range fndecl 3 65173 NULL
170927 +enable_so_crb_read_netxen_adapter_65178 crb_read netxen_adapter 0 65178 NULL
170928 +enable_so_xfs_rtget_summary_fndecl_65179 xfs_rtget_summary fndecl 4-3 65179 NULL
170929 +enable_so_usb_gadget_get_string_fndecl_65180 usb_gadget_get_string fndecl 0 65180 NULL
170930 +enable_so_fat_total_sect_fat_bios_param_block_65184 fat_total_sect fat_bios_param_block 0 65184 NULL
170931 +enable_so_svc_tcp_restore_pages_fndecl_65189 svc_tcp_restore_pages fndecl 0 65189 NULL
170932 +enable_so_free_blk_ocfs2_cached_block_free_65195 free_blk ocfs2_cached_block_free 0 65195 NULL
170933 +enable_so_get_fdb_entries_fndecl_65199 get_fdb_entries fndecl 3 65199 NULL
170934 +enable_so_xfs_bmap_shift_extents_fndecl_65200 xfs_bmap_shift_extents fndecl 4 65200 NULL
170935 +enable_so_NumIdentPartitions_cfi_intelext_regioninfo_65201 NumIdentPartitions cfi_intelext_regioninfo 0 65201 NULL
170936 +enable_so_SyS_sched_getattr_fndecl_65202 SyS_sched_getattr fndecl 3 65202 NULL
170937 +enable_so_ackr_win_top_rxrpc_call_65205 ackr_win_top rxrpc_call 0 65205 NULL
170938 +enable_so_height_dt3155_priv_65206 height dt3155_priv 0 65206 NULL nohasharray
170939 +enable_so_fat_shortname2uni_fndecl_65206 fat_shortname2uni fndecl 0 65206 &enable_so_height_dt3155_priv_65206
170940 +enable_so_aper_size_radeon_mc_65212 aper_size radeon_mc 0 65212 NULL
170941 +enable_so_get_regs_len_ethtool_ops_65213 get_regs_len ethtool_ops 0 65213 NULL
170942 +enable_so_i40evf_change_mtu_fndecl_65220 i40evf_change_mtu fndecl 2 65220 NULL nohasharray
170943 +enable_so_port_num_ib_qp_attr_65220 port_num ib_qp_attr 0 65220 &enable_so_i40evf_change_mtu_fndecl_65220
170944 +enable_so_maxresp_sz_nfsd4_channel_attrs_65221 maxresp_sz nfsd4_channel_attrs 0 65221 NULL
170945 +enable_so_read_gssp_fndecl_65224 read_gssp fndecl 3 65224 NULL nohasharray
170946 +enable_so_memory_manufacturer_code_ms_boot_attr_info_65224 memory_manufacturer_code ms_boot_attr_info 0 65224 &enable_so_read_gssp_fndecl_65224
170947 +enable_so_sci_rxfill_fndecl_65226 sci_rxfill fndecl 0 65226 NULL
170948 +enable_so_ocfs2_xattr_bucket_get_name_value_fndecl_65230 ocfs2_xattr_bucket_get_name_value fndecl 0 65230 NULL
170949 +enable_so_iscsi_iser_recv_fndecl_65231 iscsi_iser_recv fndecl 4 65231 NULL
170950 +enable_so_fb_max_height_vmw_private_65243 fb_max_height vmw_private 0 65243 NULL
170951 +enable_so_ext4_da_write_inline_data_begin_fndecl_65244 ext4_da_write_inline_data_begin fndecl 4-3 65244 NULL nohasharray
170952 +enable_so_word3_alx_rrd_65244 word3 alx_rrd 0 65244 &enable_so_ext4_da_write_inline_data_begin_fndecl_65244
170953 +enable_so_range_end_writeback_control_65245 range_end writeback_control 0 65245 NULL
170954 +enable_so_bytes_dump_iterator_65249 bytes dump_iterator 0 65249 NULL
170955 +enable_so_cx24116_writeregN_fndecl_65252 cx24116_writeregN fndecl 4 65252 NULL
170956 +enable_so_ctx_blk_size_cnic_eth_dev_65262 ctx_blk_size cnic_eth_dev 0 65262 NULL
170957 +enable_so_tool_peer_spad_read_fndecl_65263 tool_peer_spad_read fndecl 3 65263 NULL
170958 +enable_so_get_dir_index_using_offset_fndecl_65267 get_dir_index_using_offset fndecl 0-7 65267 NULL
170959 +enable_so_ubi_self_check_all_ff_fndecl_65268 ubi_self_check_all_ff fndecl 4 65268 NULL
170960 +enable_so_portnames_read_fndecl_65269 portnames_read fndecl 3 65269 NULL
170961 +enable_so_m_ialloc_blks_xfs_mount_65284 m_ialloc_blks xfs_mount 0 65284 NULL
170962 +enable_so_size_t4_rq_65285 size t4_rq 0 65285 NULL
170963 +enable_so_update_stat_data_fndecl_65289 update_stat_data fndecl 3 65289 NULL
170964 +enable_so_hpfs_translate_name_fndecl_65290 hpfs_translate_name fndecl 3 65290 NULL
170965 +enable_so_wear_eb_count_vardecl_nandsim_c_65291 wear_eb_count vardecl_nandsim.c 0 65291 NULL
170966 +enable_so_usb_stor_probe2_fndecl_65298 usb_stor_probe2 fndecl 0 65298 NULL nohasharray
170967 +enable_so_rt2x00debug_write_rfcsr_fndecl_65298 rt2x00debug_write_rfcsr fndecl 3 65298 &enable_so_usb_stor_probe2_fndecl_65298
170968 +enable_so_txfifo_size_lpuart_port_65300 txfifo_size lpuart_port 0 65300 NULL nohasharray
170969 +enable_so_ntfs_bmap_fndecl_65300 ntfs_bmap fndecl 2 65300 &enable_so_txfifo_size_lpuart_port_65300
170970 +enable_so_memory_lseek_fndecl_65306 memory_lseek fndecl 2 65306 NULL
170971 +enable_so_in_param_mlx4_vhcr_65311 in_param mlx4_vhcr 0 65311 NULL
170972 +enable_so_mt312_read_fndecl_65312 mt312_read fndecl 4 65312 NULL
170973 +enable_so_max_pfn_vardecl_65317 max_pfn vardecl 0 65317 NULL
170974 +enable_so_ExtPageLength__MPI2_CONFIG_REPLY_65319 ExtPageLength _MPI2_CONFIG_REPLY 0 65319 NULL
170975 +enable_so_data_length_iscsi_scsi_req_65321 data_length iscsi_scsi_req 0 65321 NULL nohasharray
170976 +enable_so_info_arc_emac_bd_65321 info arc_emac_bd 0 65321 &enable_so_data_length_iscsi_scsi_req_65321
170977 +enable_so_dm_get_reserved_rq_based_ios_fndecl_65322 dm_get_reserved_rq_based_ios fndecl 0 65322 NULL
170978 +enable_so_brcmf_flowring_attach_fndecl_65325 brcmf_flowring_attach fndecl 2 65325 NULL
170979 +enable_so_align_size_hwbus_ops_65327 align_size hwbus_ops 0 65327 NULL
170980 +enable_so_ath10k_wmi_start_scan_tlvs_len_fndecl_65331 ath10k_wmi_start_scan_tlvs_len fndecl 0 65331 NULL
170981 +enable_so_alloc_in_dirband_fndecl_65332 alloc_in_dirband fndecl 2 65332 NULL
170982 +enable_so_panel_count_vbt_r10_65334 panel_count vbt_r10 0 65334 NULL
170983 +enable_so_ldisc_receive_fndecl_65343 ldisc_receive fndecl 4 65343 NULL
170984 +enable_so_ath6kl_endpoint_stats_read_fndecl_65345 ath6kl_endpoint_stats_read fndecl 3 65345 NULL
170985 +enable_so_gss_krb5_cts_crypt_fndecl_65346 gss_krb5_cts_crypt fndecl 3 65346 NULL
170986 +enable_so_si476x_radio_fops_read_fndecl_65348 si476x_radio_fops_read fndecl 3 65348 NULL nohasharray
170987 +enable_so_snap_count_rbd_image_header_ondisk_65348 snap_count rbd_image_header_ondisk 0 65348 &enable_so_si476x_radio_fops_read_fndecl_65348
170988 +enable_so_len_rpc_pipe_msg_65361 len rpc_pipe_msg 0 65361 NULL
170989 +enable_so_dma_out_iguanair_65368 dma_out iguanair 0 65368 NULL nohasharray
170990 +enable_so_add_excluded_extent_fndecl_65368 add_excluded_extent fndecl 3-2 65368 &enable_so_dma_out_iguanair_65368
170991 +enable_so_fbucket_size_qlcnic_filter_hash_65369 fbucket_size qlcnic_filter_hash 0 65369 NULL
170992 +enable_so_drbd_send_command_fndecl_65377 drbd_send_command fndecl 6-4 65377 NULL
170993 +enable_so_nfsd_readv_fndecl_65378 nfsd_readv fndecl 4 65378 NULL
170994 +enable_so_edid_max_blocks_vivid_dev_65383 edid_max_blocks vivid_dev 0 65383 NULL nohasharray
170995 +enable_so_batadv_tvlv_container_ogm_append_fndecl_65383 batadv_tvlv_container_ogm_append fndecl 0-4 65383 &enable_so_edid_max_blocks_vivid_dev_65383
170996 +enable_so_rpcrdma_tail_pullup_fndecl_65388 rpcrdma_tail_pullup fndecl 0 65388 NULL
170997 +enable_so_may_expand_vm_fndecl_65389 may_expand_vm fndecl 2 65389 NULL
170998 +enable_so_max_rx_aggregation_subframes_ieee80211_hw_65391 max_rx_aggregation_subframes ieee80211_hw 0 65391 NULL
170999 +enable_so_rcvegrbufsize_qib_devdata_65397 rcvegrbufsize qib_devdata 0 65397 NULL
171000 +enable_so_digital_in_send_atr_req_fndecl_65398 digital_in_send_atr_req fndecl 5 65398 NULL
171001 +enable_so_num_rx_queues_ixgbe_adapter_65402 num_rx_queues ixgbe_adapter 0 65402 NULL
171002 +enable_so_wl12xx_sdio_raw_write_fndecl_65406 wl12xx_sdio_raw_write fndecl 4 65406 NULL nohasharray
171003 +enable_so_bfad_iocmd_diag_beacon_lport_fndecl_65406 bfad_iocmd_diag_beacon_lport fndecl 0 65406 &enable_so_wl12xx_sdio_raw_write_fndecl_65406 nohasharray
171004 +enable_so_rng_dev_read_fndecl_65406 rng_dev_read fndecl 3 65406 &enable_so_bfad_iocmd_diag_beacon_lport_fndecl_65406
171005 +enable_so___napi_alloc_skb_fndecl_65409 __napi_alloc_skb fndecl 2 65409 NULL
171006 +enable_so_macb_init_rx_buffer_size_fndecl_65410 macb_init_rx_buffer_size fndecl 2 65410 NULL
171007 +enable_so_lstcon_batch_list_fndecl_65416 lstcon_batch_list fndecl 2 65416 NULL
171008 +enable_so_fat_zeroed_cluster_fndecl_65422 fat_zeroed_cluster fndecl 3-2-0 65422 NULL
171009 +enable_so_free_bud_entry_65425 free bud_entry 0 65425 NULL nohasharray
171010 +enable_so_fq_trees_log_fq_sched_data_65425 fq_trees_log fq_sched_data 0 65425 &enable_so_free_bud_entry_65425
171011 +enable_so_block_size_card_cfg_data_65426 block_size card_cfg_data 0 65426 NULL
171012 +enable_so_fdt_get_name_fndecl_65428 fdt_get_name fndecl 2 65428 NULL
171013 +enable_so_period_bytes_snd_usb_substream_65430 period_bytes snd_usb_substream 0 65430 NULL
171014 +enable_so_tcp_hdrlen_fndecl_65433 tcp_hdrlen fndecl 0 65433 NULL
171015 +enable_so_data_in_size_mpt3_ioctl_command_65434 data_in_size mpt3_ioctl_command 0 65434 NULL
171016 +enable_so_a2mp_send_fndecl_65436 a2mp_send fndecl 4 65436 NULL
171017 +enable_so_lbs_bcnmiss_write_fndecl_65438 lbs_bcnmiss_write fndecl 3 65438 NULL
171018 +enable_so_rx_rx_pre_complt_read_fndecl_65446 rx_rx_pre_complt_read fndecl 3 65446 NULL
171019 +enable_so_carm_handle_generic_fndecl_65450 carm_handle_generic fndecl 3 65450 NULL
171020 +enable_so_squashfs_cache_init_fndecl_65451 squashfs_cache_init fndecl 3-2 65451 NULL
171021 +enable_so_xfs_dir3_data_block_free_fndecl_65456 xfs_dir3_data_block_free fndecl 5-4 65456 NULL
171022 +enable_so_wNtbOutMaxDatagrams_usb_cdc_ncm_ntb_parameters_65459 wNtbOutMaxDatagrams usb_cdc_ncm_ntb_parameters 0 65459 NULL
171023 +enable_so_lfb_base_screen_info_65479 lfb_base screen_info 0 65479 NULL
171024 +enable_so_pci_hotplug_io_size_vardecl_65480 pci_hotplug_io_size vardecl 0 65480 NULL
171025 +enable_so_isoc_size_wa_seg_65482 isoc_size wa_seg 0 65482 NULL
171026 +enable_so_aac_src_ioremap_fndecl_65483 aac_src_ioremap fndecl 2 65483 NULL
171027 +enable_so_logical_tree_mod_root_65499 logical tree_mod_root 0 65499 NULL
171028 +enable_so_rw_bytes_nd_namespace_common_65501 rw_bytes nd_namespace_common 0 65501 NULL
171029 +enable_so_xfs_dir2_shrink_inode_fndecl_65502 xfs_dir2_shrink_inode fndecl 2 65502 NULL
171030 +enable_so_bdx_tx_db_init_fndecl_65508 bdx_tx_db_init fndecl 2 65508 NULL
171031 +enable_so_remove_device_fndecl_65513 remove_device fndecl 4 65513 NULL nohasharray
171032 +enable_so_sys_pwritev_fndecl_65513 sys_pwritev fndecl 3 65513 &enable_so_remove_device_fndecl_65513
171033 +enable_so__recv_fndecl_65526 _recv fndecl 0-3 65526 NULL nohasharray
171034 +enable_so_cts_cbc_encrypt_fndecl_65526 cts_cbc_encrypt fndecl 5 65526 &enable_so__recv_fndecl_65526
171035 +enable_so_write_page_nocow_fndecl_65527 write_page_nocow fndecl 2 65527 NULL
171036 +enable_so_size_mei_msg_data_65529 size mei_msg_data 0 65529 NULL
171037 +enable_so_connector_write_fndecl_65534 connector_write fndecl 3 65534 NULL
171038 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
171039 new file mode 100644
171040 index 0000000..17bc0d8
171041 --- /dev/null
171042 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
171043 @@ -0,0 +1,92 @@
171044 +enable_so_spa_set_aux_vdevs_fndecl_746 spa_set_aux_vdevs fndecl 3 746 NULL
171045 +enable_so_zfs_lookup_fndecl_2144 zfs_lookup fndecl 0 2144 NULL
171046 +enable_so_mappedread_fndecl_2627 mappedread fndecl 2 2627 NULL
171047 +enable_so_vdev_disk_dio_alloc_fndecl_2957 vdev_disk_dio_alloc fndecl 1 2957 NULL
171048 +enable_so_nv_alloc_pushpage_spl_fndecl_4286 nv_alloc_pushpage_spl fndecl 2 4286 NULL
171049 +enable_so_zpl_xattr_get_fndecl_4574 zpl_xattr_get fndecl 0 4574 NULL
171050 +enable_so_sa_replace_all_by_template_fndecl_5699 sa_replace_all_by_template fndecl 3 5699 NULL
171051 +enable_so_dmu_write_fndecl_6048 dmu_write fndecl 4-3 6048 NULL
171052 +enable_so_dmu_buf_hold_array_fndecl_6095 dmu_buf_hold_array fndecl 4-3 6095 NULL
171053 +enable_so_update_pages_fndecl_6225 update_pages fndecl 2-3 6225 NULL
171054 +enable_so_bio_nr_pages_fndecl_7117 bio_nr_pages fndecl 0-2 7117 NULL
171055 +enable_so_dmu_buf_hold_array_by_bonus_fndecl_8562 dmu_buf_hold_array_by_bonus fndecl 3-2 8562 NULL
171056 +enable_so_zpios_dmu_write_fndecl_8858 zpios_dmu_write fndecl 4-5 8858 NULL
171057 +enable_so_ddi_copyout_fndecl_9401 ddi_copyout fndecl 3 9401 NULL
171058 +enable_so_avl_numnodes_fndecl_12384 avl_numnodes fndecl 0 12384 NULL
171059 +enable_so_dmu_write_uio_dnode_fndecl_12473 dmu_write_uio_dnode fndecl 3 12473 NULL
171060 +enable_so_dmu_xuio_init_fndecl_12866 dmu_xuio_init fndecl 2 12866 NULL
171061 +enable_so_zpl_read_common_fndecl_14389 zpl_read_common fndecl 0 14389 NULL
171062 +enable_so_dmu_snapshot_realname_fndecl_14632 dmu_snapshot_realname fndecl 4 14632 NULL
171063 +enable_so_kmem_alloc_debug_fndecl_14852 kmem_alloc_debug fndecl 1 14852 NULL
171064 +enable_so_kmalloc_node_nofail_fndecl_15151 kmalloc_node_nofail fndecl 1 15151 NULL
171065 +enable_so_dmu_write_uio_fndecl_16351 dmu_write_uio fndecl 4 16351 NULL
171066 +enable_so_zfs_log_write_fndecl_16524 zfs_log_write fndecl 6-5 16524 NULL
171067 +enable_so_sa_build_layouts_fndecl_16910 sa_build_layouts fndecl 3 16910 NULL
171068 +enable_so_dsl_dir_namelen_fndecl_17053 dsl_dir_namelen fndecl 0 17053 NULL
171069 +enable_so_kcopy_copy_to_user_fndecl_17336 kcopy_copy_to_user fndecl 5 17336 NULL
171070 +enable_so_sa_add_layout_entry_fndecl_17507 sa_add_layout_entry fndecl 3 17507 NULL
171071 +enable_so_sa_attr_table_setup_fndecl_18029 sa_attr_table_setup fndecl 3 18029 NULL
171072 +enable_so_uiocopy_fndecl_18680 uiocopy fndecl 2 18680 NULL
171073 +enable_so_dmu_buf_hold_array_by_dnode_fndecl_19125 dmu_buf_hold_array_by_dnode fndecl 2-3 19125 NULL
171074 +enable_so_zpl_acl_from_xattr_fndecl_21141 zpl_acl_from_xattr fndecl 2 21141 NULL
171075 +enable_so_dsl_pool_tx_assign_init_fndecl_22518 dsl_pool_tx_assign_init fndecl 2 22518 NULL
171076 +enable_so_nvlist_lookup_byte_array_fndecl_22527 nvlist_lookup_byte_array fndecl 0 22527 NULL
171077 +enable_so_sa_replace_all_by_template_locked_fndecl_22533 sa_replace_all_by_template_locked fndecl 3 22533 NULL
171078 +enable_so_tsd_hash_table_init_fndecl_22559 tsd_hash_table_init fndecl 1 22559 NULL
171079 +enable_so_spa_vdev_remove_aux_fndecl_23966 spa_vdev_remove_aux fndecl 4 23966 NULL
171080 +enable_so_zpl_xattr_acl_set_access_fndecl_24129 zpl_xattr_acl_set_access fndecl 4 24129 NULL
171081 +enable_so_dmu_assign_arcbuf_fndecl_24622 dmu_assign_arcbuf fndecl 2 24622 NULL
171082 +enable_so_zap_lookup_norm_fndecl_25166 zap_lookup_norm fndecl 9 25166 NULL
171083 +enable_so_dmu_prealloc_fndecl_25456 dmu_prealloc fndecl 4-3 25456 NULL
171084 +enable_so_kmalloc_nofail_fndecl_26347 kmalloc_nofail fndecl 1 26347 NULL
171085 +enable_so_zfsctl_snapshot_zpath_fndecl_27578 zfsctl_snapshot_zpath fndecl 2 27578 NULL
171086 +enable_so_zpios_dmu_read_fndecl_30015 zpios_dmu_read fndecl 4-5 30015 NULL
171087 +enable_so_splat_write_fndecl_30943 splat_write fndecl 3 30943 NULL
171088 +enable_so_zpl_xattr_get_sa_fndecl_31183 zpl_xattr_get_sa fndecl 0 31183 NULL
171089 +enable_so_dmu_read_uio_fndecl_31467 dmu_read_uio fndecl 4 31467 NULL
171090 +enable_so_zfs_replay_fuids_fndecl_31479 zfs_replay_fuids fndecl 4 31479 NULL
171091 +enable_so_spa_history_log_to_phys_fndecl_31632 spa_history_log_to_phys fndecl 0-1 31632 NULL
171092 +enable_so___zpl_xattr_get_fndecl_32601 __zpl_xattr_get fndecl 0 32601 NULL
171093 +enable_so_proc_copyout_string_fndecl_34049 proc_copyout_string fndecl 2 34049 NULL
171094 +enable_so_nv_alloc_sleep_spl_fndecl_34544 nv_alloc_sleep_spl fndecl 2 34544 NULL
171095 +enable_so_nv_alloc_nosleep_spl_fndecl_34761 nv_alloc_nosleep_spl fndecl 2 34761 NULL
171096 +enable_so_zap_leaf_array_match_fndecl_36922 zap_leaf_array_match fndecl 4 36922 NULL
171097 +enable_so_copyinstr_fndecl_36980 copyinstr fndecl 3 36980 NULL
171098 +enable_so_zpl_xattr_acl_set_default_fndecl_37864 zpl_xattr_acl_set_default fndecl 4 37864 NULL
171099 +enable_so_splat_read_fndecl_38116 splat_read fndecl 3 38116 NULL
171100 +enable_so_sa_setup_fndecl_38756 sa_setup fndecl 4 38756 NULL
171101 +enable_so_vdev_disk_physio_fndecl_39898 vdev_disk_physio fndecl 3 39898 NULL
171102 +enable_so_arc_buf_size_fndecl_39982 arc_buf_size fndecl 0 39982 NULL
171103 +enable_so_kzalloc_nofail_fndecl_40719 kzalloc_nofail fndecl 1 40719 NULL
171104 +enable_so_fuidstr_to_sid_fndecl_40777 fuidstr_to_sid fndecl 4 40777 NULL
171105 +enable_so_vdev_raidz_matrix_reconstruct_fndecl_40852 vdev_raidz_matrix_reconstruct fndecl 2-3 40852 NULL
171106 +enable_so_sa_find_layout_fndecl_40892 sa_find_layout fndecl 4 40892 NULL
171107 +enable_so_zpl_xattr_get_dir_fndecl_41918 zpl_xattr_get_dir fndecl 0 41918 NULL
171108 +enable_so_zfs_sa_get_xattr_fndecl_42600 zfs_sa_get_xattr fndecl 0 42600 NULL
171109 +enable_so_zpl_xattr_acl_set_fndecl_42808 zpl_xattr_acl_set fndecl 4 42808 NULL
171110 +enable_so_xdr_dec_array_fndecl_43091 xdr_dec_array fndecl 5 43091 NULL
171111 +enable_so_dsl_dataset_namelen_fndecl_43136 dsl_dataset_namelen fndecl 0 43136 NULL
171112 +enable_so_kcopy_write_fndecl_43683 kcopy_write fndecl 3 43683 NULL
171113 +enable_so_uiomove_fndecl_44355 uiomove fndecl 2 44355 NULL
171114 +enable_so_dmu_read_fndecl_44418 dmu_read fndecl 4-3 44418 NULL
171115 +enable_so_ddi_copyin_fndecl_44846 ddi_copyin fndecl 3 44846 NULL
171116 +enable_so_kcopy_do_get_fndecl_45061 kcopy_do_get fndecl 5 45061 NULL
171117 +enable_so_copyin_fndecl_45945 copyin fndecl 3 45945 NULL
171118 +enable_so_zil_itx_create_fndecl_46555 zil_itx_create fndecl 2 46555 NULL
171119 +enable_so_dmu_write_uio_dbuf_fndecl_48064 dmu_write_uio_dbuf fndecl 3 48064 NULL
171120 +enable_so_blk_rq_pos_fndecl_48233 blk_rq_pos fndecl 0 48233 NULL
171121 +enable_so_spa_history_write_fndecl_49650 spa_history_write fndecl 3 49650 NULL
171122 +enable_so_kcopy_copy_pages_to_user_fndecl_49823 kcopy_copy_pages_to_user fndecl 3-4 49823 NULL
171123 +enable_so_zfs_log_write_fndecl_50162 zfs_log_write fndecl 6-5 50162 NULL
171124 +enable_so_i_fm_alloc_fndecl_51038 i_fm_alloc fndecl 2 51038 NULL
171125 +enable_so_copyout_fndecl_51409 copyout fndecl 3 51409 NULL
171126 +enable_so_zvol_log_write_fndecl_54898 zvol_log_write fndecl 4-3 54898 NULL
171127 +enable_so_zfs_acl_node_alloc_fndecl_55641 zfs_acl_node_alloc fndecl 1 55641 NULL
171128 +enable_so_get_nvlist_fndecl_56685 get_nvlist fndecl 2 56685 NULL
171129 +enable_so_zprop_get_numprops_fndecl_56820 zprop_get_numprops fndecl 0 56820 NULL
171130 +enable_so_splat_taskq_test4_common_fndecl_59829 splat_taskq_test4_common fndecl 5 59829 NULL
171131 +enable_so_zfs_replay_domain_cnt_fndecl_61399 zfs_replay_domain_cnt fndecl 0 61399 NULL
171132 +enable_so_zpios_write_fndecl_61823 zpios_write fndecl 3 61823 NULL
171133 +enable_so_proc_copyin_string_fndecl_62019 proc_copyin_string fndecl 4 62019 NULL
171134 +enable_so_random_get_pseudo_bytes_fndecl_64611 random_get_pseudo_bytes fndecl 2 64611 NULL
171135 +enable_so_zpios_read_fndecl_64734 zpios_read fndecl 3 64734 NULL
171136 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_ipa.c b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
171137 new file mode 100644
171138 index 0000000..d972178
171139 --- /dev/null
171140 +++ b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
171141 @@ -0,0 +1,1226 @@
171142 +/*
171143 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
171144 + * Licensed under the GPL v2, or (at your option) v3
171145 + *
171146 + * Homepage:
171147 + * https://github.com/ephox-gcc-plugins/size_overflow
171148 + *
171149 + * Documentation:
171150 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
171151 + *
171152 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
171153 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
171154 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
171155 + *
171156 + * Usage:
171157 + * $ make
171158 + * $ make run
171159 + */
171160 +
171161 +#include "size_overflow.h"
171162 +#include <libgen.h>
171163 +
171164 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs);
171165 +
171166 +next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
171167 +static bool global_changed;
171168 +#define PRINT_DATA_FLOW true
171169 +#define NO_PRINT_DATA_FLOW false
171170 +
171171 +static struct cgraph_node_hook_list *function_insertion_hook_holder;
171172 +static struct cgraph_2node_hook_list *node_duplication_hook_holder;
171173 +
171174 +struct cgraph_node *get_cnode(const_tree fndecl)
171175 +{
171176 + gcc_assert(TREE_CODE(fndecl) == FUNCTION_DECL);
171177 +#if BUILDING_GCC_VERSION <= 4005
171178 + return cgraph_get_node((tree)fndecl);
171179 +#else
171180 + return cgraph_get_node(fndecl);
171181 +#endif
171182 +}
171183 +
171184 +static bool compare_next_interesting_functions(next_interesting_function_t cur_node, const char *decl_name, const char *context, unsigned int num)
171185 +{
171186 + // Ignore num without a value
171187 + if (num != NONE_ARGNUM && cur_node->num != num)
171188 + return false;
171189 + if (strcmp(cur_node->context, context))
171190 + return false;
171191 + return !strcmp(cur_node->decl_name, decl_name);
171192 +}
171193 +
171194 +// Return the context of vardecl. If it is in a file scope then the context is vardecl_filebasename
171195 +static const char* get_vardecl_context(const_tree decl)
171196 +{
171197 + expanded_location xloc;
171198 + char *buf, *path;
171199 + const char *bname;
171200 + int len;
171201 +
171202 + xloc = expand_location(DECL_SOURCE_LOCATION(decl));
171203 + gcc_assert(xloc.file);
171204 + path = xstrdup(xloc.file);
171205 + bname = basename(path);
171206 +
171207 + len = asprintf(&buf, "vardecl_%s", bname);
171208 + gcc_assert(len > 0);
171209 + return buf;
171210 +}
171211 +
171212 +// Return the type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
171213 +const char* get_decl_context(const_tree decl)
171214 +{
171215 + switch (TREE_CODE(decl)) {
171216 + case FUNCTION_DECL:
171217 + return "fndecl";
171218 + // TODO: Ignore anonymous types for now
171219 + case FIELD_DECL:
171220 + return get_type_name_from_field(decl);
171221 + case VAR_DECL:
171222 + if (TREE_PUBLIC(decl) || DECL_EXTERNAL(decl))
171223 + return "vardecl";
171224 + if (TREE_STATIC(decl) && !TREE_PUBLIC(decl))
171225 + return get_vardecl_context(decl);
171226 + // ignore local variable
171227 + if (!TREE_STATIC(decl) && !DECL_EXTERNAL(decl))
171228 + return NULL;
171229 + default:
171230 + debug_tree((tree)decl);
171231 + gcc_unreachable();
171232 + }
171233 +}
171234 +
171235 +// Find the function with the specified argument in the list
171236 +next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data)
171237 +{
171238 + next_interesting_function_t cur_node, head;
171239 +
171240 + head = global_next_interesting_function[raw_data->hash];
171241 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
171242 + if (raw_data->marked != ASM_STMT_SO_MARK && cur_node->marked == ASM_STMT_SO_MARK)
171243 + continue;
171244 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
171245 + return cur_node;
171246 + }
171247 + return NULL;
171248 +}
171249 +
171250 +next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data)
171251 +{
171252 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
171253 + if (raw_data->hash == NO_HASH)
171254 + return NULL;
171255 +
171256 + raw_data->context = get_decl_context(raw_data->decl);
171257 + if (!raw_data->context)
171258 + return NULL;
171259 + return get_global_next_interesting_function_entry(raw_data);
171260 +}
171261 +
171262 +next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
171263 +{
171264 + next_interesting_function_t new_node;
171265 +
171266 + new_node = (next_interesting_function_t)xmalloc(sizeof(*new_node));
171267 + new_node->decl_name = xstrdup(raw_data->decl_str);
171268 +
171269 + gcc_assert(raw_data->context);
171270 + new_node->context = xstrdup(raw_data->context);
171271 + new_node->hash = raw_data->hash;
171272 + new_node->num = raw_data->num;
171273 + new_node->next = NULL;
171274 + new_node->children = NULL;
171275 + new_node->marked = raw_data->marked;
171276 + new_node->orig_next_node = orig_next_node;
171277 + return new_node;
171278 +}
171279 +
171280 +// Ignore these functions to not explode coverage (+strncmp+fndecl+3+35130+)
171281 +static bool temporary_skip_these_functions(struct fn_raw_data *raw_data)
171282 +{
171283 + if (raw_data->hash == 35130 && !strcmp(raw_data->decl_str, "strncmp"))
171284 + return true;
171285 + if (raw_data->hash == 46193 && !strcmp(raw_data->decl_str, "strnlen"))
171286 + return true;
171287 + if (raw_data->hash == 43267 && !strcmp(raw_data->decl_str, "strncpy"))
171288 + return true;
171289 + if (raw_data->hash == 10300 && !strcmp(raw_data->decl_str, "strncpy_from_user"))
171290 + return true;
171291 + if (raw_data->hash == 26117 && !strcmp(raw_data->decl_str, "memchr"))
171292 + return true;
171293 + if (raw_data->hash == 16203 && !strcmp(raw_data->decl_str, "memchr_inv"))
171294 + return true;
171295 + if (raw_data->hash == 24269 && !strcmp(raw_data->decl_str, "memcmp"))
171296 + return true;
171297 + if (raw_data->hash == 60390 && !strcmp(raw_data->decl_str, "memcpy"))
171298 + return true;
171299 + if (raw_data->hash == 25040 && !strcmp(raw_data->decl_str, "memmove"))
171300 + return true;
171301 + if (raw_data->hash == 29763 && !strcmp(raw_data->decl_str, "memset"))
171302 + return true;
171303 + return false;
171304 +}
171305 +
171306 +// Create the main data structure
171307 +next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
171308 +{
171309 + enum tree_code decl_code = TREE_CODE(raw_data->decl);
171310 +
171311 + gcc_assert(decl_code == FIELD_DECL || decl_code == FUNCTION_DECL || decl_code == VAR_DECL);
171312 +
171313 + if (is_vararg(raw_data->decl, raw_data->num))
171314 + return NULL;
171315 +
171316 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
171317 + if (raw_data->hash == NO_HASH)
171318 + return NULL;
171319 + if (get_size_overflow_hash_entry_tree(raw_data->decl, raw_data->num, DISABLE_SIZE_OVERFLOW))
171320 + return NULL;
171321 + if (temporary_skip_these_functions(raw_data))
171322 + return NULL;
171323 +
171324 + gcc_assert(raw_data->num <= MAX_PARAM);
171325 + // Clones must have an orig_next_node
171326 + gcc_assert(!made_by_compiler(raw_data->decl) || orig_next_node);
171327 +
171328 + raw_data->context = get_decl_context(raw_data->decl);
171329 + if (!raw_data->context)
171330 + return NULL;
171331 + return create_new_next_interesting_entry(raw_data, orig_next_node);
171332 +}
171333 +
171334 +void add_to_global_next_interesting_function(next_interesting_function_t new_entry)
171335 +{
171336 + next_interesting_function_t cur_global_head, cur_global, cur_global_end = NULL;
171337 +
171338 + // new_entry is appended to the end of a list
171339 + new_entry->next = NULL;
171340 +
171341 + cur_global_head = global_next_interesting_function[new_entry->hash];
171342 + if (!cur_global_head) {
171343 + global_next_interesting_function[new_entry->hash] = new_entry;
171344 + return;
171345 + }
171346 +
171347 +
171348 + for (cur_global = cur_global_head; cur_global; cur_global = cur_global->next) {
171349 + if (!cur_global->next)
171350 + cur_global_end = cur_global;
171351 +
171352 + if (compare_next_interesting_functions(cur_global, new_entry->decl_name, new_entry->context, new_entry->num))
171353 + return;
171354 + }
171355 +
171356 + gcc_assert(cur_global_end);
171357 + cur_global_end->next = new_entry;
171358 +}
171359 +
171360 +/* If the interesting function is a clone then find or create its original next_interesting_function_t node
171361 + * and add it to global_next_interesting_function
171362 + */
171363 +static next_interesting_function_t create_orig_next_node_for_a_clone(struct fn_raw_data *clone_raw_data)
171364 +{
171365 + struct fn_raw_data orig_raw_data;
171366 + next_interesting_function_t orig_next_node;
171367 + enum tree_code decl_code;
171368 +
171369 + orig_raw_data.decl = get_orig_fndecl(clone_raw_data->decl);
171370 +
171371 + if (DECL_BUILT_IN(orig_raw_data.decl) || DECL_BUILT_IN_CLASS(orig_raw_data.decl) == BUILT_IN_NORMAL)
171372 + return NULL;
171373 +
171374 + decl_code = TREE_CODE(orig_raw_data.decl);
171375 + if (decl_code == FIELD_DECL || decl_code == VAR_DECL)
171376 + orig_raw_data.num = clone_raw_data->num;
171377 + else
171378 + orig_raw_data.num = get_correct_argnum(clone_raw_data->decl, orig_raw_data.decl, clone_raw_data->num);
171379 +
171380 + // Skip over ISRA.162 parm decls
171381 + if (orig_raw_data.num == CANNOT_FIND_ARG)
171382 + return NULL;
171383 +
171384 + orig_raw_data.decl_str = get_orig_decl_name(orig_raw_data.decl);
171385 + orig_raw_data.marked = NO_SO_MARK;
171386 + orig_next_node = get_global_next_interesting_function_entry_with_hash(&orig_raw_data);
171387 + if (orig_next_node)
171388 + return orig_next_node;
171389 +
171390 + orig_raw_data.marked = clone_raw_data->marked;
171391 + orig_next_node = create_new_next_interesting_decl(&orig_raw_data, NULL);
171392 + if (!orig_next_node)
171393 + return NULL;
171394 +
171395 + add_to_global_next_interesting_function(orig_next_node);
171396 + return orig_next_node;
171397 +}
171398 +
171399 +// Find or create the next_interesting_function_t node for decl and num
171400 +next_interesting_function_t get_and_create_next_node_from_global_next_nodes(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
171401 +{
171402 + next_interesting_function_t cur_next_cnode;
171403 +
171404 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
171405 + return NULL;
171406 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
171407 +
171408 + cur_next_cnode = get_global_next_interesting_function_entry_with_hash(raw_data);
171409 + if (cur_next_cnode)
171410 + goto out;
171411 +
171412 + if (!orig_next_node && made_by_compiler(raw_data->decl)) {
171413 + orig_next_node = create_orig_next_node_for_a_clone(raw_data);
171414 + if (!orig_next_node)
171415 + return NULL;
171416 + }
171417 +
171418 + cur_next_cnode = create_new_next_interesting_decl(raw_data, orig_next_node);
171419 + if (!cur_next_cnode)
171420 + return NULL;
171421 +
171422 + add_to_global_next_interesting_function(cur_next_cnode);
171423 +out:
171424 + if (cur_next_cnode->marked != raw_data->marked && cur_next_cnode->marked != NO_SO_MARK)
171425 + return cur_next_cnode;
171426 +
171427 + if (raw_data->marked != NO_SO_MARK && cur_next_cnode->marked == NO_SO_MARK)
171428 + cur_next_cnode->marked = raw_data->marked;
171429 +
171430 + return cur_next_cnode;
171431 +}
171432 +
171433 +static bool has_next_interesting_function_chain_node(next_interesting_function_t next_cnodes_head, struct fn_raw_data *raw_data)
171434 +{
171435 + next_interesting_function_t cur_node;
171436 +
171437 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
171438 + raw_data->context = get_decl_context(raw_data->decl);
171439 + // Ignore function if there is no context
171440 + if (!raw_data->context)
171441 + return true;
171442 +
171443 + for (cur_node = next_cnodes_head; cur_node; cur_node = cur_node->next) {
171444 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
171445 + return true;
171446 + }
171447 + return false;
171448 +}
171449 +
171450 +static void handle_function(struct walk_use_def_data *use_def_data, tree fndecl, const_tree arg)
171451 +{
171452 + struct fn_raw_data raw_data;
171453 + next_interesting_function_t orig_next_node, new_node;
171454 +
171455 + gcc_assert(fndecl != NULL_TREE);
171456 +
171457 + // ignore builtins to not explode coverage (e.g., memcpy)
171458 + if (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL)
171459 + return;
171460 +
171461 + if (get_intentional_attr_type(fndecl) == MARK_TURN_OFF)
171462 + return;
171463 +
171464 + raw_data.decl = fndecl;
171465 + raw_data.decl_str = DECL_NAME_POINTER(fndecl);
171466 + raw_data.marked = NO_SO_MARK;
171467 +
171468 + // convert arg into its position
171469 + if (arg == NULL_TREE)
171470 + raw_data.num = 0;
171471 + else
171472 + raw_data.num = find_arg_number_tree(arg, raw_data.decl);
171473 + if (raw_data.num == CANNOT_FIND_ARG)
171474 + return;
171475 +
171476 + if (has_next_interesting_function_chain_node(use_def_data->next_cnodes_head, &raw_data))
171477 + return;
171478 +
171479 + if (made_by_compiler(raw_data.decl)) {
171480 + orig_next_node = create_orig_next_node_for_a_clone(&raw_data);
171481 + if (!orig_next_node)
171482 + return;
171483 + } else
171484 + orig_next_node = NULL;
171485 +
171486 + new_node = create_new_next_interesting_decl(&raw_data, orig_next_node);
171487 + if (!new_node)
171488 + return;
171489 + new_node->next = use_def_data->next_cnodes_head;
171490 + use_def_data->next_cnodes_head = new_node;
171491 +}
171492 +
171493 +static void walk_use_def_next_functions_phi(struct walk_use_def_data *use_def_data, const_tree result)
171494 +{
171495 + gphi *phi = as_a_gphi(get_def_stmt(result));
171496 + unsigned int i, n = gimple_phi_num_args(phi);
171497 +
171498 + pointer_set_insert(use_def_data->visited, phi);
171499 + for (i = 0; i < n; i++) {
171500 + tree arg = gimple_phi_arg_def(phi, i);
171501 +
171502 + walk_use_def_next_functions(use_def_data, arg);
171503 + }
171504 +}
171505 +
171506 +static void walk_use_def_next_functions_binary(struct walk_use_def_data *use_def_data, const_tree lhs)
171507 +{
171508 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
171509 + tree rhs1, rhs2;
171510 +
171511 + rhs1 = gimple_assign_rhs1(def_stmt);
171512 + rhs2 = gimple_assign_rhs2(def_stmt);
171513 +
171514 + walk_use_def_next_functions(use_def_data, rhs1);
171515 + walk_use_def_next_functions(use_def_data, rhs2);
171516 +}
171517 +
171518 +static void walk_use_def_next_functions_unary(struct walk_use_def_data *use_def_data, const gassign *stmt)
171519 +{
171520 + tree rhs1 = gimple_assign_rhs1(stmt);
171521 +
171522 + walk_use_def_next_functions(use_def_data, rhs1);
171523 +}
171524 +
171525 +void __attribute__((weak)) handle_function_ptr_ret(struct walk_use_def_data *use_def_data __unused, const_tree fn_ptr __unused)
171526 +{
171527 +}
171528 +
171529 +static void create_and_append_new_next_interesting_field_var_decl(struct walk_use_def_data *use_def_data, struct fn_raw_data *raw_data)
171530 +{
171531 + next_interesting_function_t new_node;
171532 +
171533 + if (raw_data->decl == NULL_TREE)
171534 + return;
171535 +
171536 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
171537 + return;
171538 +
171539 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
171540 + raw_data->num = 0;
171541 + raw_data->marked = NO_SO_MARK;
171542 +
171543 + new_node = create_new_next_interesting_decl(raw_data, NULL);
171544 + if (!new_node)
171545 + return;
171546 + new_node->next = use_def_data->next_cnodes_head;
171547 + use_def_data->next_cnodes_head = new_node;
171548 +}
171549 +
171550 +static void handle_struct_fields(struct walk_use_def_data *use_def_data, const_tree node)
171551 +{
171552 + struct fn_raw_data raw_data;
171553 +
171554 + switch (TREE_CODE(node)) {
171555 + case ARRAY_REF:
171556 +#if BUILDING_GCC_VERSION >= 4006
171557 + case MEM_REF:
171558 +#endif
171559 + case INDIRECT_REF:
171560 + case COMPONENT_REF:
171561 + raw_data.decl = get_ref_field(node);
171562 + break;
171563 + // TODO
171564 + case BIT_FIELD_REF:
171565 + case VIEW_CONVERT_EXPR:
171566 + case REALPART_EXPR:
171567 + case IMAGPART_EXPR:
171568 + return;
171569 + default:
171570 + debug_tree((tree)node);
171571 + gcc_unreachable();
171572 + }
171573 +
171574 + if (get_intentional_attr_type(raw_data.decl) == MARK_TURN_OFF)
171575 + return;
171576 +
171577 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
171578 +}
171579 +
171580 +static void handle_vardecl(struct walk_use_def_data *use_def_data, tree node)
171581 +{
171582 + struct fn_raw_data raw_data;
171583 +
171584 + raw_data.decl = node;
171585 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
171586 +}
171587 +
171588 +/* Find all functions that influence lhs
171589 + *
171590 + * Encountered functions are added to the children vector (next_interesting_function_t).
171591 + */
171592 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs)
171593 +{
171594 + enum tree_code code;
171595 + const_gimple def_stmt;
171596 +
171597 + if (skip_types(lhs))
171598 + return;
171599 +
171600 + if (VAR_P(lhs)) {
171601 + handle_vardecl(use_def_data, lhs);
171602 + return;
171603 + }
171604 +
171605 + code = TREE_CODE(lhs);
171606 + if (code == PARM_DECL) {
171607 + handle_function(use_def_data, current_function_decl, lhs);
171608 + return;
171609 + }
171610 +
171611 + if (TREE_CODE_CLASS(code) == tcc_reference) {
171612 + handle_struct_fields(use_def_data, lhs);
171613 + return;
171614 + }
171615 +
171616 + if (code != SSA_NAME)
171617 + return;
171618 +
171619 + def_stmt = get_def_stmt(lhs);
171620 + if (!def_stmt)
171621 + return;
171622 +
171623 + if (pointer_set_insert(use_def_data->visited, def_stmt))
171624 + return;
171625 +
171626 + switch (gimple_code(def_stmt)) {
171627 + case GIMPLE_NOP:
171628 + walk_use_def_next_functions(use_def_data, SSA_NAME_VAR(lhs));
171629 + return;
171630 + case GIMPLE_ASM:
171631 + if (!is_size_overflow_asm(def_stmt))
171632 + return;
171633 + walk_use_def_next_functions(use_def_data, get_size_overflow_asm_input(as_a_const_gasm(def_stmt)));
171634 + return;
171635 + case GIMPLE_CALL: {
171636 + tree fndecl = gimple_call_fndecl(def_stmt);
171637 +
171638 + if (fndecl != NULL_TREE) {
171639 + handle_function(use_def_data, fndecl, NULL_TREE);
171640 + return;
171641 + }
171642 + fndecl = gimple_call_fn(def_stmt);
171643 + handle_function_ptr_ret(use_def_data, fndecl);
171644 + return;
171645 + }
171646 + case GIMPLE_PHI:
171647 + walk_use_def_next_functions_phi(use_def_data, lhs);
171648 + return;
171649 + case GIMPLE_ASSIGN:
171650 + switch (gimple_num_ops(def_stmt)) {
171651 + case 2:
171652 + walk_use_def_next_functions_unary(use_def_data, as_a_const_gassign(def_stmt));
171653 + return;
171654 + case 3:
171655 + walk_use_def_next_functions_binary(use_def_data, lhs);
171656 + return;
171657 + }
171658 + default:
171659 + debug_gimple_stmt((gimple)def_stmt);
171660 + error("%s: unknown gimple code", __func__);
171661 + gcc_unreachable();
171662 + }
171663 +}
171664 +
171665 +// Start the search for next_interesting_function_t children based on the (next_interesting_function_t) parent node
171666 +static next_interesting_function_t search_next_functions(tree node, next_interesting_function_t parent)
171667 +{
171668 + struct walk_use_def_data use_def_data;
171669 +
171670 + use_def_data.parent = parent;
171671 + use_def_data.next_cnodes_head = NULL;
171672 + use_def_data.visited = pointer_set_create();
171673 +
171674 + walk_use_def_next_functions(&use_def_data, node);
171675 +
171676 + pointer_set_destroy(use_def_data.visited);
171677 + return use_def_data.next_cnodes_head;
171678 +}
171679 +
171680 +// True if child already exists in the next_interesting_function_t children vector
171681 +bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node)
171682 +{
171683 + unsigned int i;
171684 + next_interesting_function_t cur;
171685 +
171686 + gcc_assert(next_node);
171687 + // handle recursion
171688 + if (!strcmp(target->decl_name, next_node->decl_name) && target->num == next_node->num)
171689 + return true;
171690 +
171691 +#if BUILDING_GCC_VERSION <= 4007
171692 + if (VEC_empty(next_interesting_function_t, target->children))
171693 + return false;
171694 + FOR_EACH_VEC_ELT(next_interesting_function_t, target->children, i, cur) {
171695 +#else
171696 + FOR_EACH_VEC_SAFE_ELT(target->children, i, cur) {
171697 +#endif
171698 + if (compare_next_interesting_functions(cur, next_node->decl_name, next_node->context, next_node->num))
171699 + return true;
171700 + }
171701 + return false;
171702 +}
171703 +
171704 +void push_child(next_interesting_function_t parent, next_interesting_function_t child)
171705 +{
171706 + if (!has_next_interesting_function_vec(parent, child)) {
171707 +#if BUILDING_GCC_VERSION <= 4007
171708 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
171709 +#else
171710 + vec_safe_push(parent->children, child);
171711 +#endif
171712 + }
171713 +}
171714 +
171715 +void __attribute__((weak)) check_local_variables(next_interesting_function_t next_node __unused) {}
171716 +
171717 +// Add children to parent and global_next_interesting_function
171718 +static void collect_data_for_execute(next_interesting_function_t parent, next_interesting_function_t children)
171719 +{
171720 + next_interesting_function_t cur = children;
171721 +
171722 + gcc_assert(parent);
171723 +
171724 + while (cur) {
171725 + struct fn_raw_data child_raw_data;
171726 + next_interesting_function_t next, child;
171727 +
171728 + next = cur->next;
171729 +
171730 + child_raw_data.decl_str = cur->decl_name;
171731 + child_raw_data.context = cur->context;
171732 + child_raw_data.hash = cur->hash;
171733 + child_raw_data.num = cur->num;
171734 + child_raw_data.marked = NO_SO_MARK;
171735 + child = get_global_next_interesting_function_entry(&child_raw_data);
171736 + if (!child) {
171737 + add_to_global_next_interesting_function(cur);
171738 + child = cur;
171739 + }
171740 +
171741 + check_local_variables(child);
171742 +
171743 + push_child(parent, child);
171744 +
171745 + cur = next;
171746 + }
171747 +
171748 + check_local_variables(parent);
171749 +}
171750 +
171751 +next_interesting_function_t __attribute__((weak)) get_and_create_next_node_from_global_next_nodes_fnptr(const_tree fn_ptr __unused, struct fn_raw_data *raw_data __unused)
171752 +{
171753 + return NULL;
171754 +}
171755 +
171756 +static next_interesting_function_t create_parent_next_cnode(const_gimple stmt, unsigned int num)
171757 +{
171758 + struct fn_raw_data raw_data;
171759 +
171760 + raw_data.num = num;
171761 + raw_data.marked = NO_SO_MARK;
171762 +
171763 + switch (gimple_code(stmt)) {
171764 + case GIMPLE_ASM:
171765 + raw_data.decl = current_function_decl;
171766 + raw_data.marked = ASM_STMT_SO_MARK;
171767 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
171768 + case GIMPLE_CALL:
171769 + raw_data.decl = gimple_call_fndecl(stmt);
171770 + if (raw_data.decl != NULL_TREE)
171771 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
171772 + raw_data.decl = gimple_call_fn(stmt);
171773 + return get_and_create_next_node_from_global_next_nodes_fnptr(raw_data.decl, &raw_data);
171774 + case GIMPLE_RETURN:
171775 + raw_data.decl = current_function_decl;
171776 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
171777 + case GIMPLE_ASSIGN: {
171778 + tree lhs = gimple_assign_lhs(stmt);
171779 +
171780 + if (VAR_P(lhs))
171781 + raw_data.decl = lhs;
171782 + else
171783 + raw_data.decl = get_ref_field(lhs);
171784 + if (raw_data.decl == NULL_TREE)
171785 + return NULL;
171786 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
171787 + }
171788 + default:
171789 + debug_gimple_stmt((gimple)stmt);
171790 + gcc_unreachable();
171791 + }
171792 +}
171793 +
171794 +// Handle potential next_interesting_function_t parent if its argument has an integer type
171795 +static void collect_all_possible_size_overflow_fns(const_gimple stmt, tree start_var, unsigned int num)
171796 +{
171797 + next_interesting_function_t children_next_cnode, parent_next_cnode;
171798 +
171799 + // skip void return values
171800 + if (start_var == NULL_TREE)
171801 + return;
171802 +
171803 + if (skip_types(start_var))
171804 + return;
171805 +
171806 + // handle intentional MARK_TURN_OFF
171807 + if (check_intentional_size_overflow_asm_and_attribute(start_var) == MARK_TURN_OFF)
171808 + return;
171809 +
171810 + parent_next_cnode = create_parent_next_cnode(stmt, num);
171811 + if (!parent_next_cnode)
171812 + return;
171813 +
171814 + children_next_cnode = search_next_functions(start_var, parent_next_cnode);
171815 + collect_data_for_execute(parent_next_cnode, children_next_cnode);
171816 +}
171817 +
171818 +static void collect_all_possible_size_overflow_fields_and_vars(const gassign *assign)
171819 +{
171820 + tree start_var, decl, lhs = gimple_assign_lhs(assign);
171821 +
171822 + if (VAR_P(lhs))
171823 + decl = lhs;
171824 + else
171825 + decl = get_ref_field(lhs);
171826 + if (decl == NULL_TREE)
171827 + return;
171828 +
171829 + if (get_intentional_attr_type(decl) == MARK_TURN_OFF)
171830 + return;
171831 +
171832 + start_var = gimple_assign_rhs1(assign);
171833 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
171834 +
171835 + start_var = gimple_assign_rhs2(assign);
171836 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
171837 +
171838 +#if BUILDING_GCC_VERSION >= 4006
171839 + start_var = gimple_assign_rhs3(assign);
171840 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
171841 +#endif
171842 +}
171843 +
171844 +// Find potential next_interesting_function_t parents
171845 +static void handle_cgraph_node(struct cgraph_node *node)
171846 +{
171847 + basic_block bb;
171848 + tree cur_fndecl = NODE_DECL(node);
171849 +
171850 + set_current_function_decl(cur_fndecl);
171851 +
171852 + FOR_EACH_BB_FN(bb, cfun) {
171853 + gimple_stmt_iterator gsi;
171854 +
171855 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
171856 + tree start_var;
171857 + gimple stmt = gsi_stmt(gsi);
171858 +
171859 + switch (gimple_code(stmt)) {
171860 + case GIMPLE_RETURN: {
171861 + const greturn *return_stmt = as_a_const_greturn(stmt);
171862 +
171863 + start_var = gimple_return_retval(return_stmt);
171864 + collect_all_possible_size_overflow_fns(return_stmt, start_var, 0);
171865 + break;
171866 + }
171867 + case GIMPLE_ASM: {
171868 + const gasm *asm_stmt = as_a_const_gasm(stmt);
171869 +
171870 + if (!is_size_overflow_insert_check_asm(asm_stmt))
171871 + break;
171872 + start_var = get_size_overflow_asm_input(asm_stmt);
171873 + collect_all_possible_size_overflow_fns(asm_stmt, start_var, 0);
171874 + break;
171875 + }
171876 + case GIMPLE_CALL: {
171877 + unsigned int i, len;
171878 + const gcall *call = as_a_const_gcall(stmt);
171879 + tree fndecl = gimple_call_fndecl(call);
171880 +
171881 + if (fndecl != NULL_TREE && (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL))
171882 + break;
171883 +
171884 + len = gimple_call_num_args(call);
171885 + for (i = 0; i < len; i++) {
171886 + start_var = gimple_call_arg(call, i);
171887 + collect_all_possible_size_overflow_fns(call, start_var, i + 1);
171888 + }
171889 + break;
171890 + }
171891 + case GIMPLE_ASSIGN:
171892 + collect_all_possible_size_overflow_fields_and_vars(as_a_const_gassign(stmt));
171893 + break;
171894 + default:
171895 + break;
171896 + }
171897 + }
171898 + }
171899 +
171900 + unset_current_function_decl();
171901 +}
171902 +
171903 +/* Collect all potentially interesting function parameters and return values of integer types
171904 + * and store their data flow dependencies
171905 + */
171906 +static void size_overflow_generate_summary(void)
171907 +{
171908 + struct cgraph_node *node;
171909 +
171910 + size_overflow_register_hooks();
171911 +
171912 + FOR_EACH_FUNCTION(node) {
171913 + if (is_valid_cgraph_node(node))
171914 + handle_cgraph_node(node);
171915 + }
171916 +}
171917 +
171918 +static void size_overflow_function_insertion_hook(struct cgraph_node *node __unused, void *data __unused)
171919 +{
171920 + debug_cgraph_node(node);
171921 + gcc_unreachable();
171922 +}
171923 +
171924 +/* Handle dst if src is in the global_next_interesting_function list.
171925 + * If src is a clone then dst inherits the orig_next_node of src otherwise
171926 + * src will become the orig_next_node of dst.
171927 + */
171928 +static void size_overflow_node_duplication_hook(struct cgraph_node *src, struct cgraph_node *dst, void *data __unused)
171929 +{
171930 + next_interesting_function_t head, cur;
171931 + struct fn_raw_data src_raw_data;
171932 +
171933 + src_raw_data.decl = NODE_DECL(src);
171934 + src_raw_data.decl_str = DECL_NAME_POINTER(src_raw_data.decl);
171935 + src_raw_data.context = get_decl_context(src_raw_data.decl);
171936 + if (!src_raw_data.context)
171937 + return;
171938 +
171939 + src_raw_data.num = NONE_ARGNUM;
171940 + src_raw_data.marked = NO_SO_MARK;
171941 +
171942 + head = get_global_next_interesting_function_entry_with_hash(&src_raw_data);
171943 + if (!head)
171944 + return;
171945 +
171946 + for (cur = head; cur; cur = cur->next) {
171947 + struct fn_raw_data dst_raw_data;
171948 + next_interesting_function_t orig_next_node, next_node;
171949 +
171950 + if (!compare_next_interesting_functions(cur, src_raw_data.decl_str, src_raw_data.context, src_raw_data.num))
171951 + continue;
171952 +
171953 + dst_raw_data.decl = NODE_DECL(dst);
171954 + dst_raw_data.decl_str = cgraph_node_name(dst);
171955 + dst_raw_data.marked = cur->marked;
171956 +
171957 + if (!made_by_compiler(dst_raw_data.decl))
171958 + break;
171959 +
171960 + // For clones use the original node instead
171961 + if (cur->orig_next_node)
171962 + orig_next_node = cur->orig_next_node;
171963 + else
171964 + orig_next_node = cur;
171965 +
171966 + dst_raw_data.num = get_correct_argnum_fndecl(src_raw_data.decl, dst_raw_data.decl, cur->num);
171967 + if (dst_raw_data.num == CANNOT_FIND_ARG)
171968 + continue;
171969 +
171970 + next_node = create_new_next_interesting_decl(&dst_raw_data, orig_next_node);
171971 + if (next_node)
171972 + add_to_global_next_interesting_function(next_node);
171973 + }
171974 +}
171975 +
171976 +void size_overflow_register_hooks(void)
171977 +{
171978 + static bool init_p = false;
171979 +
171980 + if (init_p)
171981 + return;
171982 + init_p = true;
171983 +
171984 + function_insertion_hook_holder = cgraph_add_function_insertion_hook(&size_overflow_function_insertion_hook, NULL);
171985 + node_duplication_hook_holder = cgraph_add_node_duplication_hook(&size_overflow_node_duplication_hook, NULL);
171986 +}
171987 +
171988 +static void set_yes_so_mark(next_interesting_function_t next_node)
171989 +{
171990 + if (next_node->marked == NO_SO_MARK) {
171991 + next_node->marked = YES_SO_MARK;
171992 + global_changed = true;
171993 + }
171994 + // Mark the orig decl as well if it's a clone
171995 + if (next_node->orig_next_node && next_node->orig_next_node->marked == NO_SO_MARK) {
171996 + next_node->orig_next_node->marked = YES_SO_MARK;
171997 + global_changed = true;
171998 + }
171999 +}
172000 +
172001 +// Determine whether node or orig node is part of a tracked data flow
172002 +static bool marked_fn(next_interesting_function_t next_node)
172003 +{
172004 + bool is_marked_fn, is_marked_orig = false;
172005 +
172006 + is_marked_fn = next_node->marked != NO_SO_MARK;
172007 +
172008 + if (next_node->orig_next_node)
172009 + is_marked_orig = next_node->orig_next_node->marked != NO_SO_MARK;
172010 +
172011 + return is_marked_fn || is_marked_orig;
172012 +}
172013 +
172014 +// Determine whether node or orig node is in the hash table already
172015 +static bool already_in_the_hashtable(next_interesting_function_t next_node)
172016 +{
172017 + if (next_node->orig_next_node)
172018 + next_node = next_node->orig_next_node;
172019 + return get_size_overflow_hash_entry(next_node->hash, next_node->decl_name, next_node->context, next_node->num) != NULL;
172020 +}
172021 +
172022 +// Propagate the size_overflow marks up the use-def chains
172023 +static bool has_marked_child(next_interesting_function_t next_node)
172024 +{
172025 + bool ret = false;
172026 + unsigned int i;
172027 + next_interesting_function_t child;
172028 +
172029 +#if BUILDING_GCC_VERSION <= 4007
172030 + if (VEC_empty(next_interesting_function_t, next_node->children))
172031 + return false;
172032 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, child) {
172033 +#else
172034 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, child) {
172035 +#endif
172036 + if (marked_fn(child) || already_in_the_hashtable(child))
172037 + ret = true;
172038 + }
172039 +
172040 + return ret;
172041 +}
172042 +
172043 +/* Set YES_SO_MARK on the function, its orig node and children if:
172044 + * * the function or its orig node or one of its children is in the hash table already
172045 + * * the function's orig node is marked with YES_SO_MARK or ASM_STMT_SO_MARK
172046 + * * one of the children is marked with YES_SO_MARK or ASM_STMT_SO_MARK
172047 + */
172048 +static bool set_fn_so_mark(next_interesting_function_t next_node)
172049 +{
172050 + bool so_fn, so_hashtable, so_child;
172051 +
172052 + so_hashtable = already_in_the_hashtable(next_node);
172053 + so_fn = marked_fn(next_node);
172054 + so_child = has_marked_child(next_node);
172055 +
172056 + if (!so_fn && !so_hashtable && !so_child)
172057 + return false;
172058 + set_yes_so_mark(next_node);
172059 + return true;
172060 +}
172061 +
172062 +// Determine if any of the function pointer targets have data flow between the return value and one of the arguments
172063 +static next_interesting_function_t get_same_not_ret_child(next_interesting_function_t parent)
172064 +{
172065 + unsigned int i;
172066 + next_interesting_function_t child;
172067 +
172068 +#if BUILDING_GCC_VERSION <= 4007
172069 + if (VEC_empty(next_interesting_function_t, parent->children))
172070 + return NULL;
172071 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
172072 +#else
172073 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
172074 +#endif
172075 + if (child->num == 0)
172076 + continue;
172077 + if (strcmp(parent->decl_name, child->decl_name))
172078 + continue;
172079 + if (!strcmp(child->context, "fndecl"))
172080 + return child;
172081 + }
172082 + return NULL;
172083 +}
172084 +
172085 +/* Trace a return value of function pointer type back to an argument via a concrete function
172086 + fnptr 0 && fn 0 && (fn 0 -> fn 2) => fnptr 2 */
172087 +static void search_missing_fptr_arg(next_interesting_function_t parent)
172088 +{
172089 + next_interesting_function_t child;
172090 + unsigned int i;
172091 +#if BUILDING_GCC_VERSION <= 4007
172092 + VEC(next_interesting_function_t, heap) *new_children = NULL;
172093 +#else
172094 + vec<next_interesting_function_t, va_heap, vl_embed> *new_children = NULL;
172095 +#endif
172096 +
172097 + if (parent->num != 0)
172098 + return;
172099 + if (!strcmp(parent->context, "fndecl"))
172100 + return;
172101 + if (!strncmp(parent->context, "vardecl", sizeof("vardecl") - 1))
172102 + return;
172103 +
172104 + // fnptr 0 && fn 0
172105 +#if BUILDING_GCC_VERSION <= 4007
172106 + if (VEC_empty(next_interesting_function_t, parent->children))
172107 + return;
172108 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
172109 +#else
172110 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
172111 +#endif
172112 + next_interesting_function_t cur_next_node, tracked_fn;
172113 +
172114 + if (child->num != 0)
172115 + continue;
172116 + // (fn 0 -> fn 2)
172117 + tracked_fn = get_same_not_ret_child(child);
172118 + if (!tracked_fn)
172119 + continue;
172120 +
172121 + // fn 2 => fnptr 2
172122 + for (cur_next_node = global_next_interesting_function[parent->hash]; cur_next_node; cur_next_node = cur_next_node->next) {
172123 + if (cur_next_node->num != tracked_fn->num)
172124 + continue;
172125 +
172126 + if (strcmp(parent->decl_name, cur_next_node->decl_name))
172127 + continue;
172128 +
172129 + if (!has_next_interesting_function_vec(parent, cur_next_node)) {
172130 +#if BUILDING_GCC_VERSION <= 4007
172131 + VEC_safe_push(next_interesting_function_t, heap, new_children, cur_next_node);
172132 +#else
172133 + vec_safe_push(new_children, cur_next_node);
172134 +#endif
172135 + }
172136 + }
172137 + }
172138 +
172139 +#if BUILDING_GCC_VERSION == 4005
172140 + if (VEC_empty(next_interesting_function_t, new_children))
172141 + return;
172142 + FOR_EACH_VEC_ELT(next_interesting_function_t, new_children, i, child)
172143 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
172144 +#elif BUILDING_GCC_VERSION <= 4007
172145 + VEC_safe_splice(next_interesting_function_t, heap, parent->children, new_children);
172146 +#else
172147 + vec_safe_splice(parent->children, new_children);
172148 +#endif
172149 +}
172150 +
172151 +static void walk_so_marked_fns(next_interesting_function_set *visited, next_interesting_function_t parent, bool debug)
172152 +{
172153 + unsigned int i;
172154 + next_interesting_function_t child;
172155 +
172156 + gcc_assert(parent);
172157 + if (!set_fn_so_mark(parent))
172158 + return;
172159 +
172160 +#if BUILDING_GCC_VERSION <= 4007
172161 + if (VEC_empty(next_interesting_function_t, parent->children))
172162 + return;
172163 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
172164 +#else
172165 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
172166 +#endif
172167 + set_yes_so_mark(child);
172168 +
172169 + if (in_lto_p && debug == PRINT_DATA_FLOW) {
172170 + fprintf(stderr, " PARENT: decl: %s-%u context: %s %p\n", parent->decl_name, parent->num, parent->context, parent);
172171 + fprintf(stderr, " \tCHILD: decl: %s-%u context: %s %p\n", child->decl_name, child->num, child->context, child);
172172 + }
172173 +
172174 + if (!pointer_set_insert(visited, child))
172175 + walk_so_marked_fns(visited, child, debug);
172176 + }
172177 +}
172178 +
172179 +// Do a depth-first recursive dump of the next_interesting_function_t children vector
172180 +static void print_missing_functions(next_interesting_function_set *visited, next_interesting_function_t parent)
172181 +{
172182 + unsigned int i;
172183 + next_interesting_function_t child;
172184 +
172185 + gcc_assert(parent);
172186 + gcc_assert(parent->marked != NO_SO_MARK);
172187 + print_missing_function(parent);
172188 +
172189 +#if BUILDING_GCC_VERSION <= 4007
172190 + if (VEC_empty(next_interesting_function_t, parent->children))
172191 + return;
172192 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
172193 +#else
172194 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
172195 +#endif
172196 + gcc_assert(child->marked != NO_SO_MARK);
172197 + if (!pointer_set_insert(visited, child))
172198 + print_missing_functions(visited, child);
172199 + }
172200 +}
172201 +
172202 +// Set YES_SO_MARK on functions that will be emitted into the hash table
172203 +static void search_so_marked_fns(bool debug)
172204 +{
172205 +
172206 + unsigned int i;
172207 + next_interesting_function_set *visited;
172208 + next_interesting_function_t cur_global;
172209 +
172210 + visited = next_interesting_function_pointer_set_create();
172211 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
172212 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
172213 + if (cur_global->marked == NO_SO_MARK || pointer_set_insert(visited, cur_global))
172214 + continue;
172215 +
172216 + if (in_lto_p && debug == PRINT_DATA_FLOW)
172217 + fprintf(stderr, "Data flow: decl: %s-%u context: %s %p\n", cur_global->decl_name, cur_global->num, cur_global->context, cur_global);
172218 +
172219 + walk_so_marked_fns(visited, cur_global, debug);
172220 +
172221 + if (in_lto_p && debug == PRINT_DATA_FLOW)
172222 + fprintf(stderr, "\n");
172223 + }
172224 + }
172225 + pointer_set_destroy(visited);
172226 +}
172227 +
172228 +// Print functions missing from the hash table
172229 +static void print_so_marked_fns(void)
172230 +{
172231 + unsigned int i;
172232 + next_interesting_function_set *visited;
172233 + next_interesting_function_t cur_global;
172234 +
172235 + visited = next_interesting_function_pointer_set_create();
172236 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
172237 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
172238 + if (cur_global->marked != NO_SO_MARK && !pointer_set_insert(visited, cur_global))
172239 + print_missing_functions(visited, cur_global);
172240 + }
172241 + }
172242 + pointer_set_destroy(visited);
172243 +}
172244 +
172245 +void __attribute__((weak)) check_global_variables(next_interesting_function_t cur_global __unused) {}
172246 +
172247 +// Print all missing interesting functions
172248 +static unsigned int size_overflow_execute(void)
172249 +{
172250 + unsigned int i;
172251 + next_interesting_function_t cur_global;
172252 +
172253 + if (flag_lto && !in_lto_p)
172254 + return 0;
172255 +
172256 + // Collect vardecls and funtions reachable by function pointers
172257 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
172258 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
172259 + check_global_variables(cur_global);
172260 + search_missing_fptr_arg(cur_global);
172261 + }
172262 + }
172263 +
172264 + search_so_marked_fns(PRINT_DATA_FLOW);
172265 + while (global_changed) {
172266 + global_changed = false;
172267 + search_so_marked_fns(NO_PRINT_DATA_FLOW);
172268 + }
172269 +
172270 + print_so_marked_fns();
172271 +
172272 + if (in_lto_p) {
172273 + fprintf(stderr, "%s: SIZE_OVERFLOW EXECUTE\n", __func__);
172274 + print_global_next_interesting_functions();
172275 + }
172276 +
172277 + return 0;
172278 +}
172279 +
172280 +// Omit the IPA/LTO callbacks until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61311 gets fixed (license concerns)
172281 +#if BUILDING_GCC_VERSION >= 4008
172282 +void __attribute__((weak)) size_overflow_write_summary_lto(void) {}
172283 +#elif BUILDING_GCC_VERSION >= 4006
172284 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused, varpool_node_set vset __unused) {}
172285 +#else
172286 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused) {}
172287 +#endif
172288 +
172289 +void __attribute__((weak)) size_overflow_read_summary_lto(void) {}
172290 +
172291 +#if BUILDING_GCC_VERSION >= 4009
172292 +static const struct pass_data size_overflow_functions_pass_data = {
172293 +#else
172294 +static struct ipa_opt_pass_d size_overflow_functions_pass = {
172295 + .pass = {
172296 +#endif
172297 + .type = IPA_PASS,
172298 + .name = "size_overflow_functions",
172299 +#if BUILDING_GCC_VERSION >= 4008
172300 + .optinfo_flags = OPTGROUP_NONE,
172301 +#endif
172302 +#if BUILDING_GCC_VERSION >= 5000
172303 +#elif BUILDING_GCC_VERSION >= 4009
172304 + .has_gate = false,
172305 + .has_execute = true,
172306 +#else
172307 + .gate = NULL,
172308 + .execute = size_overflow_execute,
172309 + .sub = NULL,
172310 + .next = NULL,
172311 + .static_pass_number = 0,
172312 +#endif
172313 + .tv_id = TV_NONE,
172314 + .properties_required = 0,
172315 + .properties_provided = 0,
172316 + .properties_destroyed = 0,
172317 + .todo_flags_start = 0,
172318 + .todo_flags_finish = 0,
172319 +#if BUILDING_GCC_VERSION < 4009
172320 + },
172321 + .generate_summary = size_overflow_generate_summary,
172322 + .write_summary = size_overflow_write_summary_lto,
172323 + .read_summary = size_overflow_read_summary_lto,
172324 +#if BUILDING_GCC_VERSION >= 4006
172325 + .write_optimization_summary = size_overflow_write_summary_lto,
172326 + .read_optimization_summary = size_overflow_read_summary_lto,
172327 +#endif
172328 + .stmt_fixup = NULL,
172329 + .function_transform_todo_flags_start = 0,
172330 + .function_transform = size_overflow_transform,
172331 + .variable_transform = NULL,
172332 +#endif
172333 +};
172334 +
172335 +#if BUILDING_GCC_VERSION >= 4009
172336 +namespace {
172337 +class size_overflow_functions_pass : public ipa_opt_pass_d {
172338 +public:
172339 + size_overflow_functions_pass() : ipa_opt_pass_d(size_overflow_functions_pass_data,
172340 + g,
172341 + size_overflow_generate_summary,
172342 + size_overflow_write_summary_lto,
172343 + size_overflow_read_summary_lto,
172344 + size_overflow_write_summary_lto,
172345 + size_overflow_read_summary_lto,
172346 + NULL,
172347 + 0,
172348 + size_overflow_transform,
172349 + NULL) {}
172350 +#if BUILDING_GCC_VERSION >= 5000
172351 + virtual unsigned int execute(function *) { return size_overflow_execute(); }
172352 +#else
172353 + unsigned int execute() { return size_overflow_execute(); }
172354 +#endif
172355 +};
172356 +}
172357 +
172358 +opt_pass *make_size_overflow_functions_pass(void)
172359 +{
172360 + return new size_overflow_functions_pass();
172361 +}
172362 +#else
172363 +struct opt_pass *make_size_overflow_functions_pass(void)
172364 +{
172365 + return &size_overflow_functions_pass.pass;
172366 +}
172367 +#endif
172368 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_misc.c b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
172369 new file mode 100644
172370 index 0000000..6075e8f
172371 --- /dev/null
172372 +++ b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
172373 @@ -0,0 +1,505 @@
172374 +/*
172375 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
172376 + * Licensed under the GPL v2, or (at your option) v3
172377 + *
172378 + * Homepage:
172379 + * https://github.com/ephox-gcc-plugins/size_overflow
172380 + *
172381 + * Documentation:
172382 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
172383 + *
172384 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
172385 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
172386 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
172387 + *
172388 + * Usage:
172389 + * $ make
172390 + * $ make run
172391 + */
172392 +
172393 +#include "size_overflow.h"
172394 +
172395 +bool is_vararg(const_tree fn, unsigned int num)
172396 +{
172397 + tree arg_list;
172398 +
172399 + if (num == 0)
172400 + return false;
172401 + if (fn == NULL_TREE)
172402 + return false;
172403 + if (TREE_CODE(fn) != FUNCTION_DECL)
172404 + return false;
172405 +
172406 + arg_list = TYPE_ARG_TYPES(TREE_TYPE(fn));
172407 + if (arg_list == NULL_TREE)
172408 + return false;
172409 +
172410 + if (tree_last(arg_list) == void_list_node)
172411 + return false;
172412 +
172413 + return num >= (unsigned int)list_length(arg_list);
172414 +}
172415 +
172416 +// Extract the field decl from memory references
172417 +tree get_ref_field(const_tree ref)
172418 +{
172419 + tree field;
172420 +
172421 + // TODO: handle nested memory references
172422 + switch (TREE_CODE(ref)) {
172423 + case ARRAY_REF:
172424 + return NULL_TREE;
172425 +#if BUILDING_GCC_VERSION >= 4006
172426 + case MEM_REF:
172427 +#endif
172428 + case INDIRECT_REF:
172429 + field = TREE_OPERAND(ref, 0);
172430 + break;
172431 + case COMPONENT_REF:
172432 + field = TREE_OPERAND(ref, 1);
172433 + break;
172434 + default:
172435 + return NULL_TREE;
172436 + }
172437 +
172438 + // TODO
172439 + if (TREE_CODE(field) == SSA_NAME)
172440 + return NULL_TREE;
172441 + // TODO
172442 + if (TREE_CODE(field) != FIELD_DECL)
172443 + return NULL_TREE;
172444 + // TODO
172445 + if (TREE_CODE(field) == ADDR_EXPR)
172446 + return NULL_TREE;
172447 +
172448 + return field;
172449 +}
172450 +
172451 +const char *get_type_name_from_field(const_tree field_decl)
172452 +{
172453 + const_tree context, type_name;
172454 +
172455 + if (TREE_CODE(field_decl) != FIELD_DECL)
172456 + return NULL;
172457 +
172458 + context = DECL_CONTEXT(field_decl);
172459 + // TODO
172460 + if (TREE_CODE(context) != RECORD_TYPE)
172461 + return NULL;
172462 + gcc_assert(TREE_CODE(context) == RECORD_TYPE);
172463 + type_name = TYPE_NAME(TYPE_MAIN_VARIANT(context));
172464 + if (type_name == NULL_TREE)
172465 + return NULL;
172466 +
172467 + if (TREE_CODE(type_name) == IDENTIFIER_NODE)
172468 + return IDENTIFIER_POINTER(type_name);
172469 + else if (TREE_CODE(type_name) == TYPE_DECL)
172470 + return DECL_NAME_POINTER(type_name);
172471 +
172472 + debug_tree((tree)field_decl);
172473 + debug_tree((tree)type_name);
172474 + gcc_unreachable();
172475 +}
172476 +
172477 +// Was the function created by the compiler itself?
172478 +bool made_by_compiler(const_tree decl)
172479 +{
172480 + enum tree_code decl_code;
172481 + struct cgraph_node *node;
172482 +
172483 + if (FUNCTION_PTR_P(decl))
172484 + return false;
172485 + decl_code = TREE_CODE(decl);
172486 + if (decl_code == VAR_DECL || decl_code == FIELD_DECL)
172487 + return false;
172488 +
172489 + gcc_assert(decl_code == FUNCTION_DECL);
172490 + if (DECL_ABSTRACT_ORIGIN(decl) != NULL_TREE)
172491 + return true;
172492 + if (DECL_ARTIFICIAL(decl))
172493 + return true;
172494 +
172495 + node = get_cnode(decl);
172496 + if (!node)
172497 + return false;
172498 + return node->clone_of != NULL;
172499 +}
172500 +
172501 +bool skip_types(const_tree var)
172502 +{
172503 + const_tree type;
172504 +
172505 + type = TREE_TYPE(var);
172506 + if (type == NULL_TREE)
172507 + return true;
172508 +
172509 + switch (TREE_CODE(type)) {
172510 + case INTEGER_TYPE:
172511 + case ENUMERAL_TYPE:
172512 + return false;
172513 + default:
172514 + return true;
172515 + }
172516 +}
172517 +
172518 +gimple get_fnptr_def_stmt(const_tree fn_ptr)
172519 +{
172520 + gimple def_stmt;
172521 +
172522 + gcc_assert(fn_ptr != NULL_TREE);
172523 + gcc_assert(FUNCTION_PTR_P(fn_ptr));
172524 +
172525 + if (is_gimple_constant(fn_ptr))
172526 + return NULL;
172527 +
172528 + def_stmt = get_def_stmt(fn_ptr);
172529 + gcc_assert(def_stmt);
172530 + return def_stmt;
172531 +}
172532 +
172533 +gimple get_def_stmt(const_tree node)
172534 +{
172535 + gcc_assert(node != NULL_TREE);
172536 +
172537 + if (TREE_CODE(node) != SSA_NAME)
172538 + return NULL;
172539 + return SSA_NAME_DEF_STMT(node);
172540 +}
172541 +
172542 +tree create_new_var(tree type)
172543 +{
172544 + tree new_var = create_tmp_var(type, "cicus");
172545 +
172546 + add_referenced_var(new_var);
172547 + return new_var;
172548 +}
172549 +
172550 +static bool skip_cast(tree dst_type, const_tree rhs, bool force)
172551 +{
172552 + const_gimple def_stmt = get_def_stmt(rhs);
172553 +
172554 + if (force)
172555 + return false;
172556 +
172557 + if (is_gimple_constant(rhs))
172558 + return false;
172559 +
172560 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
172561 + return false;
172562 +
172563 + if (!types_compatible_p(dst_type, TREE_TYPE(rhs)))
172564 + return false;
172565 +
172566 + // DI type can be on 32 bit (from create_assign) but overflow type stays DI
172567 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
172568 + return false;
172569 +
172570 + return true;
172571 +}
172572 +
172573 +tree cast_a_tree(tree type, tree var)
172574 +{
172575 + gcc_assert(type != NULL_TREE);
172576 + gcc_assert(var != NULL_TREE);
172577 + gcc_assert(fold_convertible_p(type, var));
172578 +
172579 + return fold_convert(type, var);
172580 +}
172581 +
172582 +gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force)
172583 +{
172584 + gassign *assign;
172585 + gimple def_stmt;
172586 +
172587 + gcc_assert(dst_type != NULL_TREE && rhs != NULL_TREE);
172588 + gcc_assert(!is_gimple_constant(rhs));
172589 + if (gsi_end_p(*gsi) && before == AFTER_STMT)
172590 + gcc_unreachable();
172591 +
172592 + def_stmt = get_def_stmt(rhs);
172593 + if (def_stmt && gimple_code(def_stmt) != GIMPLE_NOP && skip_cast(dst_type, rhs, force) && pointer_set_contains(visited->my_stmts, def_stmt))
172594 + return def_stmt;
172595 +
172596 + if (lhs == CREATE_NEW_VAR)
172597 + lhs = create_new_var(dst_type);
172598 +
172599 + assign = gimple_build_assign(lhs, cast_a_tree(dst_type, rhs));
172600 +
172601 + if (!gsi_end_p(*gsi)) {
172602 + location_t loc = gimple_location(gsi_stmt(*gsi));
172603 + gimple_set_location(assign, loc);
172604 + }
172605 +
172606 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
172607 +
172608 + if (before)
172609 + gsi_insert_before(gsi, assign, GSI_NEW_STMT);
172610 + else
172611 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
172612 + update_stmt(assign);
172613 + return assign;
172614 +}
172615 +
172616 +bool is_size_overflow_type(const_tree var)
172617 +{
172618 + const char *name;
172619 + const_tree type_name, type;
172620 +
172621 + if (var == NULL_TREE)
172622 + return false;
172623 +
172624 + type = TREE_TYPE(var);
172625 + type_name = TYPE_NAME(type);
172626 + if (type_name == NULL_TREE)
172627 + return false;
172628 +
172629 + if (DECL_P(type_name))
172630 + name = DECL_NAME_POINTER(type_name);
172631 + else
172632 + name = IDENTIFIER_POINTER(type_name);
172633 +
172634 + if (!strncmp(name, "size_overflow_type", 18))
172635 + return true;
172636 + return false;
172637 +}
172638 +
172639 +// Determine if a cloned function has all the original arguments
172640 +static bool unchanged_arglist(struct cgraph_node *new_node, struct cgraph_node *old_node)
172641 +{
172642 + const_tree new_decl_list, old_decl_list;
172643 +
172644 + if (new_node->clone_of && new_node->clone.tree_map)
172645 + return !new_node->clone.args_to_skip;
172646 +
172647 + new_decl_list = DECL_ARGUMENTS(NODE_DECL(new_node));
172648 + old_decl_list = DECL_ARGUMENTS(NODE_DECL(old_node));
172649 + if (new_decl_list != NULL_TREE && old_decl_list != NULL_TREE)
172650 + gcc_assert(list_length(new_decl_list) == list_length(old_decl_list));
172651 +
172652 + return true;
172653 +}
172654 +
172655 +unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num)
172656 +{
172657 + unsigned int new_num;
172658 + const_tree fndecl_arg;
172659 + tree fndecl_arglist = DECL_ARGUMENTS(fndecl);
172660 + const_tree arg, target_fndecl_arglist;
172661 +
172662 + if (num == 0)
172663 + return num;
172664 +
172665 + if (fndecl == correct_argnum_of_fndecl && !DECL_ARTIFICIAL(fndecl))
172666 + return num;
172667 + else if (fndecl == correct_argnum_of_fndecl && DECL_ARTIFICIAL(fndecl))
172668 + return CANNOT_FIND_ARG;
172669 +
172670 + target_fndecl_arglist = DECL_ARGUMENTS(correct_argnum_of_fndecl);
172671 + if (fndecl_arglist == NULL_TREE || target_fndecl_arglist == NULL_TREE)
172672 + return CANNOT_FIND_ARG;
172673 +
172674 + fndecl_arg = chain_index(num - 1, fndecl_arglist);
172675 + if (fndecl_arg == NULL_TREE)
172676 + return CANNOT_FIND_ARG;
172677 +
172678 + for (arg = target_fndecl_arglist, new_num = 1; arg; arg = TREE_CHAIN(arg), new_num++) {
172679 + if (arg == fndecl_arg || !strcmp(DECL_NAME_POINTER(arg), DECL_NAME_POINTER(fndecl_arg)))
172680 + return new_num;
172681 + }
172682 +
172683 + return CANNOT_FIND_ARG;
172684 +}
172685 +
172686 +// Find the specified argument in the originally cloned function
172687 +static unsigned int clone_argnum_on_orig(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int clone_argnum)
172688 +{
172689 + bitmap args_to_skip;
172690 + unsigned int i, new_argnum = clone_argnum;
172691 +
172692 + if (unchanged_arglist(new_node, old_node))
172693 + return clone_argnum;
172694 +
172695 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
172696 + args_to_skip = new_node->clone.args_to_skip;
172697 + for (i = 0; i < clone_argnum; i++) {
172698 + if (bitmap_bit_p(args_to_skip, i))
172699 + new_argnum++;
172700 + }
172701 + return new_argnum;
172702 +}
172703 +
172704 +// Find the specified argument in the clone
172705 +static unsigned int orig_argnum_on_clone(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int orig_argnum)
172706 +{
172707 + bitmap args_to_skip;
172708 + unsigned int i, new_argnum = orig_argnum;
172709 +
172710 + if (unchanged_arglist(new_node, old_node))
172711 + return orig_argnum;
172712 +
172713 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
172714 + args_to_skip = new_node->clone.args_to_skip;
172715 + if (bitmap_bit_p(args_to_skip, orig_argnum - 1))
172716 + // XXX torolni kellene a nodeot
172717 + return CANNOT_FIND_ARG;
172718 +
172719 + for (i = 0; i < orig_argnum; i++) {
172720 + if (bitmap_bit_p(args_to_skip, i))
172721 + new_argnum--;
172722 + }
172723 + return new_argnum;
172724 +}
172725 +
172726 +// Associate the argument between a clone and a cloned function
172727 +static unsigned int get_correct_argnum_cnode(struct cgraph_node *node, struct cgraph_node *correct_argnum_of_node, unsigned int argnum)
172728 +{
172729 + bool node_clone, correct_argnum_of_node_clone;
172730 + const_tree correct_argnum_of_node_decl, node_decl;
172731 +
172732 + if (node == correct_argnum_of_node)
172733 + return argnum;
172734 + if (argnum == 0)
172735 + return argnum;
172736 +
172737 + correct_argnum_of_node_decl = NODE_DECL(correct_argnum_of_node);
172738 + gcc_assert(correct_argnum_of_node_decl != NULL_TREE);
172739 + gcc_assert(correct_argnum_of_node && !DECL_ARTIFICIAL(correct_argnum_of_node_decl));
172740 +
172741 + if (node) {
172742 + node_decl = NODE_DECL(node);
172743 + gcc_assert(!DECL_ARTIFICIAL(node_decl));
172744 + node_clone = made_by_compiler(node_decl);
172745 + } else {
172746 + node_decl = NULL_TREE;
172747 + node_clone = false;
172748 + }
172749 +
172750 + if (correct_argnum_of_node_decl == node_decl)
172751 + return argnum;
172752 +
172753 + correct_argnum_of_node_clone = made_by_compiler(correct_argnum_of_node_decl);
172754 + // the original decl is lost if both nodes are clones
172755 + if (node_clone && correct_argnum_of_node_clone) {
172756 + gcc_assert(unchanged_arglist(node, correct_argnum_of_node));
172757 + return argnum;
172758 + }
172759 +
172760 + if (node_clone && !correct_argnum_of_node_clone)
172761 + return clone_argnum_on_orig(correct_argnum_of_node, node, argnum);
172762 + else if (!node_clone && correct_argnum_of_node_clone)
172763 + return orig_argnum_on_clone(correct_argnum_of_node, node, argnum);
172764 +
172765 + if (node)
172766 + debug_tree((tree)NODE_DECL(node));
172767 + debug_tree((tree)correct_argnum_of_node_decl);
172768 + gcc_unreachable();
172769 +}
172770 +
172771 +unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum)
172772 +{
172773 + struct cgraph_node *node, *correct_argnum_of_node;
172774 +
172775 + gcc_assert(decl != NULL_TREE);
172776 + gcc_assert(correct_argnum_of_decl != NULL_TREE);
172777 +
172778 + correct_argnum_of_node = get_cnode(correct_argnum_of_decl);
172779 + if (!correct_argnum_of_node || DECL_ARTIFICIAL(decl) || DECL_ARTIFICIAL(correct_argnum_of_decl))
172780 + return get_correct_argnum_fndecl(decl, correct_argnum_of_decl, argnum);
172781 +
172782 + node = get_cnode(decl);
172783 + return get_correct_argnum_cnode(node, correct_argnum_of_node, argnum);
172784 +}
172785 +
172786 +// Find the original cloned function
172787 +tree get_orig_fndecl(const_tree clone_fndecl)
172788 +{
172789 + struct cgraph_node *node;
172790 +
172791 + gcc_assert(TREE_CODE(clone_fndecl) == FUNCTION_DECL);
172792 +
172793 + if (DECL_ABSTRACT_ORIGIN(clone_fndecl))
172794 + return (tree)DECL_ORIGIN(clone_fndecl);
172795 + node = get_cnode(clone_fndecl);
172796 + if (!node)
172797 + return (tree)clone_fndecl;
172798 +
172799 + while (node->clone_of)
172800 + node = node->clone_of;
172801 + if (!made_by_compiler(NODE_DECL(node)))
172802 + return NODE_DECL(node);
172803 + // Return the cloned decl because it is needed for the transform callback
172804 + return (tree)clone_fndecl;
172805 +}
172806 +
172807 +static tree get_interesting_fndecl_from_stmt(const gcall *stmt)
172808 +{
172809 + if (gimple_call_num_args(stmt) == 0)
172810 + return NULL_TREE;
172811 + return gimple_call_fndecl(stmt);
172812 +}
172813 +
172814 +tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt)
172815 +{
172816 + tree fndecl;
172817 +
172818 + fndecl = get_interesting_fndecl_from_stmt(stmt);
172819 + if (fndecl == NULL_TREE)
172820 + return NULL_TREE;
172821 + return get_orig_fndecl(fndecl);
172822 +}
172823 +
172824 +void set_dominance_info(void)
172825 +{
172826 + calculate_dominance_info(CDI_DOMINATORS);
172827 + calculate_dominance_info(CDI_POST_DOMINATORS);
172828 +}
172829 +
172830 +void unset_dominance_info(void)
172831 +{
172832 + free_dominance_info(CDI_DOMINATORS);
172833 + free_dominance_info(CDI_POST_DOMINATORS);
172834 +}
172835 +
172836 +void set_current_function_decl(tree fndecl)
172837 +{
172838 + gcc_assert(fndecl != NULL_TREE);
172839 +
172840 + push_cfun(DECL_STRUCT_FUNCTION(fndecl));
172841 +#if BUILDING_GCC_VERSION <= 4007
172842 + current_function_decl = fndecl;
172843 +#endif
172844 + set_dominance_info();
172845 +}
172846 +
172847 +void unset_current_function_decl(void)
172848 +{
172849 + unset_dominance_info();
172850 +#if BUILDING_GCC_VERSION <= 4007
172851 + current_function_decl = NULL_TREE;
172852 +#endif
172853 + pop_cfun();
172854 +}
172855 +
172856 +bool is_valid_cgraph_node(struct cgraph_node *node)
172857 +{
172858 + if (cgraph_function_body_availability(node) == AVAIL_NOT_AVAILABLE)
172859 + return false;
172860 + if (node->thunk.thunk_p || node->alias)
172861 + return false;
172862 + return true;
172863 +}
172864 +
172865 +tree get_lhs(const_gimple stmt)
172866 +{
172867 + switch (gimple_code(stmt)) {
172868 + case GIMPLE_ASSIGN:
172869 + case GIMPLE_CALL:
172870 + return gimple_get_lhs(stmt);
172871 + case GIMPLE_PHI:
172872 + return gimple_phi_result(stmt);
172873 + default:
172874 + debug_gimple_stmt((gimple)stmt);
172875 + gcc_unreachable();
172876 + }
172877 +}
172878 +
172879 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
172880 new file mode 100644
172881 index 0000000..f1cc040
172882 --- /dev/null
172883 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
172884 @@ -0,0 +1,318 @@
172885 +/*
172886 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
172887 + * Licensed under the GPL v2, or (at your option) v3
172888 + *
172889 + * Homepage:
172890 + * https://github.com/ephox-gcc-plugins/size_overflow
172891 + *
172892 + * Documentation:
172893 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
172894 + *
172895 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
172896 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
172897 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
172898 + *
172899 + * Usage:
172900 + * $ make
172901 + * $ make run
172902 + */
172903 +
172904 +#include "size_overflow.h"
172905 +
172906 +int plugin_is_GPL_compatible;
172907 +
172908 +tree report_size_overflow_decl;
172909 +
172910 +tree size_overflow_type_HI;
172911 +tree size_overflow_type_SI;
172912 +tree size_overflow_type_DI;
172913 +tree size_overflow_type_TI;
172914 +
172915 +static struct plugin_info size_overflow_plugin_info = {
172916 + .version = "20151201",
172917 + .help = "no-size-overflow\tturn off size overflow checking\n",
172918 +};
172919 +
172920 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
172921 +{
172922 + unsigned int arg_count;
172923 + enum tree_code code = TREE_CODE(*node);
172924 +
172925 + switch (code) {
172926 + case FUNCTION_DECL:
172927 + arg_count = type_num_arguments(TREE_TYPE(*node));
172928 + break;
172929 + case FUNCTION_TYPE:
172930 + case METHOD_TYPE:
172931 + arg_count = type_num_arguments(*node);
172932 + break;
172933 + default:
172934 + *no_add_attrs = true;
172935 + debug_tree(*node);
172936 + error("%s: %qE attribute only applies to functions", __func__, name);
172937 + return NULL_TREE;
172938 + }
172939 +
172940 + for (; args; args = TREE_CHAIN(args)) {
172941 + int cur_val;
172942 + tree position = TREE_VALUE(args);
172943 +
172944 + if (TREE_CODE(position) != INTEGER_CST) {
172945 + error("%s: parameter isn't an integer", __func__);
172946 + debug_tree(args);
172947 + *no_add_attrs = true;
172948 + return NULL_TREE;
172949 + }
172950 +
172951 + cur_val = tree_to_shwi(position);
172952 + if (cur_val < 0 || arg_count < (unsigned int)cur_val) {
172953 + error("%s: parameter %d is outside range.", __func__, cur_val);
172954 + *no_add_attrs = true;
172955 + return NULL_TREE;
172956 + }
172957 + }
172958 + return NULL_TREE;
172959 +}
172960 +
172961 +static tree handle_intentional_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
172962 +{
172963 + unsigned int arg_count;
172964 + HOST_WIDE_INT s_first_arg;
172965 + enum tree_code code = TREE_CODE(*node);
172966 +
172967 + switch (code) {
172968 + case FUNCTION_DECL:
172969 + arg_count = type_num_arguments(TREE_TYPE(*node));
172970 + break;
172971 + case FUNCTION_TYPE:
172972 + case METHOD_TYPE:
172973 + arg_count = type_num_arguments(*node);
172974 + break;
172975 + case VAR_DECL:
172976 + case FIELD_DECL:
172977 + return NULL_TREE;
172978 + default:
172979 + *no_add_attrs = true;
172980 + debug_tree(*node);
172981 + error("%qE attribute only applies to functions, fields or vars", name);
172982 + return NULL_TREE;
172983 + }
172984 +
172985 + s_first_arg = tree_to_shwi(TREE_VALUE(args));
172986 + if (s_first_arg == -1)
172987 + return NULL_TREE;
172988 + if (s_first_arg < -1)
172989 + error("%s: parameter %d is outside range.", __func__, (int)s_first_arg);
172990 +
172991 + for (; args; args = TREE_CHAIN(args)) {
172992 + unsigned int cur_val;
172993 +
172994 + if (TREE_CODE(TREE_VALUE(args)) != INTEGER_CST) {
172995 + error("%s: parameter isn't an integer", __func__);
172996 + debug_tree(args);
172997 + *no_add_attrs = true;
172998 + return NULL_TREE;
172999 + }
173000 +
173001 + cur_val = (unsigned int)tree_to_uhwi(TREE_VALUE(args));
173002 + if (cur_val > arg_count ) {
173003 + error("%s: parameter %u is outside range. (arg_count: %u)", __func__, cur_val, arg_count);
173004 + *no_add_attrs = true;
173005 + return NULL_TREE;
173006 + }
173007 + }
173008 + return NULL_TREE;
173009 +}
173010 +
173011 +static struct attribute_spec size_overflow_attr = {
173012 + .name = "size_overflow",
173013 + .min_length = 1,
173014 + .max_length = -1,
173015 + .decl_required = true,
173016 + .type_required = false,
173017 + .function_type_required = false,
173018 + .handler = handle_size_overflow_attribute,
173019 +#if BUILDING_GCC_VERSION >= 4007
173020 + .affects_type_identity = false
173021 +#endif
173022 +};
173023 +
173024 +static struct attribute_spec intentional_overflow_attr = {
173025 + .name = "intentional_overflow",
173026 + .min_length = 1,
173027 + .max_length = -1,
173028 + .decl_required = true,
173029 + .type_required = false,
173030 + .function_type_required = false,
173031 + .handler = handle_intentional_overflow_attribute,
173032 +#if BUILDING_GCC_VERSION >= 4007
173033 + .affects_type_identity = false
173034 +#endif
173035 +};
173036 +
173037 +static void register_attributes(void __unused *event_data, void __unused *data)
173038 +{
173039 + register_attribute(&size_overflow_attr);
173040 + register_attribute(&intentional_overflow_attr);
173041 +}
173042 +
173043 +static tree create_typedef(tree type, const char* ident)
173044 +{
173045 + tree new_type, decl;
173046 +
173047 + new_type = build_variant_type_copy(type);
173048 + decl = build_decl(BUILTINS_LOCATION, TYPE_DECL, get_identifier(ident), new_type);
173049 + DECL_ORIGINAL_TYPE(decl) = type;
173050 + TYPE_NAME(new_type) = decl;
173051 + return new_type;
173052 +}
173053 +
173054 +// Create the noreturn report_size_overflow() function decl.
173055 +static void size_overflow_start_unit(void __unused *gcc_data, void __unused *user_data)
173056 +{
173057 + tree const_char_ptr_type_node;
173058 + tree fntype;
173059 +
173060 + const_char_ptr_type_node = build_pointer_type(build_type_variant(char_type_node, 1, 0));
173061 +
173062 + size_overflow_type_HI = create_typedef(intHI_type_node, "size_overflow_type_HI");
173063 + size_overflow_type_SI = create_typedef(intSI_type_node, "size_overflow_type_SI");
173064 + size_overflow_type_DI = create_typedef(intDI_type_node, "size_overflow_type_DI");
173065 + size_overflow_type_TI = create_typedef(intTI_type_node, "size_overflow_type_TI");
173066 +
173067 + // void report_size_overflow(const char *loc_file, unsigned int loc_line, const char *current_func, const char *ssa_var)
173068 + fntype = build_function_type_list(void_type_node,
173069 + const_char_ptr_type_node,
173070 + unsigned_type_node,
173071 + const_char_ptr_type_node,
173072 + const_char_ptr_type_node,
173073 + NULL_TREE);
173074 + report_size_overflow_decl = build_fn_decl("report_size_overflow", fntype);
173075 +
173076 + DECL_ASSEMBLER_NAME(report_size_overflow_decl);
173077 + TREE_PUBLIC(report_size_overflow_decl) = 1;
173078 + DECL_EXTERNAL(report_size_overflow_decl) = 1;
173079 + DECL_ARTIFICIAL(report_size_overflow_decl) = 1;
173080 +// TREE_THIS_VOLATILE(report_size_overflow_decl) = 1;
173081 +// !!!
173082 + DECL_PRESERVE_P(report_size_overflow_decl) = 1;
173083 + DECL_UNINLINABLE(report_size_overflow_decl) = 1;
173084 + TREE_USED(report_size_overflow_decl) = 1;
173085 + TREE_NOTHROW(report_size_overflow_decl) = 1;
173086 +}
173087 +
173088 +#if BUILDING_GCC_VERSION >= 4009
173089 +static bool gate_disable_ubsan_si_overflow(void)
173090 +{
173091 + flag_sanitize &= ~SANITIZE_SI_OVERFLOW;
173092 + return true;
173093 +}
173094 +
173095 +static const struct pass_data disable_ubsan_si_overflow_pass_data = {
173096 + .type = GIMPLE_PASS,
173097 + .name = "disable_ubsan_si_overflow",
173098 + .optinfo_flags = OPTGROUP_NONE,
173099 +#if BUILDING_GCC_VERSION >= 5000
173100 +#else
173101 + .has_gate = true,
173102 + .has_execute = false,
173103 +#endif
173104 + .tv_id = TV_NONE,
173105 + .properties_required = 0,
173106 + .properties_provided = 0,
173107 + .properties_destroyed = 0,
173108 + .todo_flags_start = 0,
173109 + .todo_flags_finish = 0
173110 +};
173111 +
173112 +namespace {
173113 +class disable_ubsan_si_overflow_pass : public gimple_opt_pass {
173114 +public:
173115 + disable_ubsan_si_overflow_pass() : gimple_opt_pass(disable_ubsan_si_overflow_pass_data, g) {}
173116 +#if BUILDING_GCC_VERSION >= 5000
173117 + virtual bool gate(function *) { return gate_disable_ubsan_si_overflow(); }
173118 +#else
173119 + bool gate() { return gate_disable_ubsan_si_overflow(); }
173120 +#endif
173121 +};
173122 +}
173123 +
173124 +opt_pass *make_disable_ubsan_si_overflow_pass(void)
173125 +{
173126 + return new disable_ubsan_si_overflow_pass();
173127 +}
173128 +#endif
173129 +
173130 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
173131 +{
173132 + int i;
173133 + const char * const plugin_name = plugin_info->base_name;
173134 + const int argc = plugin_info->argc;
173135 + const struct plugin_argument * const argv = plugin_info->argv;
173136 + bool enable = true;
173137 + struct register_pass_info insert_size_overflow_asm_pass_info;
173138 + struct register_pass_info size_overflow_functions_pass_info;
173139 +#if BUILDING_GCC_VERSION >= 4009
173140 + struct register_pass_info disable_ubsan_si_overflow_pass_info;
173141 +#endif
173142 +
173143 + static const struct ggc_root_tab gt_ggc_r_gt_size_overflow[] = {
173144 + {
173145 + .base = &report_size_overflow_decl,
173146 + .nelt = 1,
173147 + .stride = sizeof(report_size_overflow_decl),
173148 + .cb = &gt_ggc_mx_tree_node,
173149 + .pchw = &gt_pch_nx_tree_node
173150 + },
173151 + LAST_GGC_ROOT_TAB
173152 + };
173153 +
173154 + insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
173155 + insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
173156 + insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
173157 + insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
173158 +
173159 + size_overflow_functions_pass_info.pass = make_size_overflow_functions_pass();
173160 + size_overflow_functions_pass_info.reference_pass_name = "inline";
173161 + size_overflow_functions_pass_info.ref_pass_instance_number = 1;
173162 + size_overflow_functions_pass_info.pos_op = PASS_POS_INSERT_AFTER;
173163 +
173164 + if (!plugin_default_version_check(version, &gcc_version)) {
173165 + error(G_("incompatible gcc/plugin versions"));
173166 + return 1;
173167 + }
173168 +
173169 + for (i = 0; i < argc; ++i) {
173170 + if (!strcmp(argv[i].key, "no-size-overflow")) {
173171 + enable = false;
173172 + continue;
173173 + }
173174 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
173175 + }
173176 +
173177 + register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
173178 + if (enable) {
173179 +#if BUILDING_GCC_VERSION >= 4009
173180 + if (flag_sanitize & SANITIZE_SI_OVERFLOW) {
173181 + error(G_("ubsan SANITIZE_SI_OVERFLOW option is unsupported"));
173182 + return 1;
173183 + }
173184 +#endif
173185 + register_callback(plugin_name, PLUGIN_START_UNIT, &size_overflow_start_unit, NULL);
173186 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_size_overflow);
173187 +#if BUILDING_GCC_VERSION >= 4009
173188 + flag_sanitize |= SANITIZE_SI_OVERFLOW;
173189 + disable_ubsan_si_overflow_pass_info.pass = make_disable_ubsan_si_overflow_pass();
173190 + disable_ubsan_si_overflow_pass_info.reference_pass_name = "ubsan";
173191 + disable_ubsan_si_overflow_pass_info.ref_pass_instance_number = 1;
173192 + disable_ubsan_si_overflow_pass_info.pos_op = PASS_POS_REPLACE;
173193 +
173194 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &disable_ubsan_si_overflow_pass_info);
173195 +#endif
173196 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &insert_size_overflow_asm_pass_info);
173197 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &size_overflow_functions_pass_info);
173198 + }
173199 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
173200 +
173201 + return 0;
173202 +}
173203 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
173204 new file mode 100644
173205 index 0000000..317cd6c
173206 --- /dev/null
173207 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
173208 @@ -0,0 +1,352 @@
173209 +/*
173210 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
173211 + * Licensed under the GPL v2, or (at your option) v3
173212 + *
173213 + * Homepage:
173214 + * https://github.com/ephox-gcc-plugins/size_overflow
173215 + *
173216 + * Documentation:
173217 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
173218 + *
173219 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
173220 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
173221 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
173222 + *
173223 + * Usage:
173224 + * $ make
173225 + * $ make run
173226 + */
173227 +
173228 +#include "size_overflow.h"
173229 +
173230 +#include "size_overflow_hash.h"
173231 +#include "disable_size_overflow_hash.h"
173232 +#include "size_overflow_hash_aux.h"
173233 +
173234 +static const_tree get_function_type(const_tree decl)
173235 +{
173236 + if (FUNCTION_PTR_P(decl))
173237 + return TREE_TYPE(TREE_TYPE(decl));
173238 + gcc_assert(TREE_CODE(decl) == FUNCTION_DECL);
173239 + return TREE_TYPE(decl);
173240 +}
173241 +
173242 +static unsigned char get_tree_code(const_tree type)
173243 +{
173244 + switch (TREE_CODE(type)) {
173245 + case ARRAY_TYPE:
173246 + return 0;
173247 + case BOOLEAN_TYPE:
173248 + return 1;
173249 + case ENUMERAL_TYPE:
173250 + return 2;
173251 + case FUNCTION_TYPE:
173252 + return 3;
173253 + case INTEGER_TYPE:
173254 + return 4;
173255 + case POINTER_TYPE:
173256 + return 5;
173257 + case RECORD_TYPE:
173258 + return 6;
173259 + case UNION_TYPE:
173260 + return 7;
173261 + case VOID_TYPE:
173262 + return 8;
173263 + case REAL_TYPE:
173264 + return 9;
173265 + case VECTOR_TYPE:
173266 + return 10;
173267 + case REFERENCE_TYPE:
173268 + return 11;
173269 + case OFFSET_TYPE:
173270 + return 12;
173271 + case COMPLEX_TYPE:
173272 + return 13;
173273 + default:
173274 + debug_tree((tree)type);
173275 + gcc_unreachable();
173276 + }
173277 +}
173278 +
173279 +// http://www.team5150.com/~andrew/noncryptohashzoo2~/CrapWow.html
173280 +static unsigned int CrapWow(const char *key, unsigned int len, unsigned int seed)
173281 +{
173282 +#define cwfold( a, b, lo, hi ) { p = (unsigned int)(a) * (unsigned long long)(b); lo ^= (unsigned int)p; hi ^= (unsigned int)(p >> 32); }
173283 +#define cwmixa( in ) { cwfold( in, m, k, h ); }
173284 +#define cwmixb( in ) { cwfold( in, n, h, k ); }
173285 +
173286 + unsigned int m = 0x57559429;
173287 + unsigned int n = 0x5052acdb;
173288 + const unsigned int *key4 = (const unsigned int *)key;
173289 + unsigned int h = len;
173290 + unsigned int k = len + seed + n;
173291 + unsigned long long p;
173292 +
173293 + while (len >= 8) {
173294 + cwmixb(key4[0]) cwmixa(key4[1]) key4 += 2;
173295 + len -= 8;
173296 + }
173297 + if (len >= 4) {
173298 + cwmixb(key4[0]) key4 += 1;
173299 + len -= 4;
173300 + }
173301 + if (len)
173302 + cwmixa(key4[0] & ((1 << (len * 8)) - 1 ));
173303 + cwmixb(h ^ (k + n));
173304 + return k ^ h;
173305 +
173306 +#undef cwfold
173307 +#undef cwmixa
173308 +#undef cwmixb
173309 +}
173310 +
173311 +static void set_hash(struct decl_hash *decl_hash_data)
173312 +{
173313 + unsigned int fn, type, codes, seed = 0;
173314 +
173315 + fn = CrapWow(decl_hash_data->fn_name, strlen(decl_hash_data->fn_name), seed) & 0xffff;
173316 + codes = CrapWow((const char*)decl_hash_data->tree_codes, decl_hash_data->tree_codes_len, seed) & 0xffff;
173317 + type = CrapWow(decl_hash_data->context, strlen(decl_hash_data->context), 0) & 0xffff;
173318 + decl_hash_data->hash = type ^ fn ^ codes;
173319 +}
173320 +
173321 +static void set_decl_type_codes(const_tree type, struct decl_hash *decl_hash_data)
173322 +{
173323 + gcc_assert(type != NULL_TREE);
173324 + gcc_assert(TREE_CODE_CLASS(TREE_CODE(type)) == tcc_type);
173325 +
173326 + while (type && decl_hash_data->tree_codes_len < CODES_LIMIT) {
173327 + decl_hash_data->tree_codes[decl_hash_data->tree_codes_len] = get_tree_code(type);
173328 + decl_hash_data->tree_codes_len++;
173329 + type = TREE_TYPE(type);
173330 + }
173331 +}
173332 +
173333 +static void set_result_codes(const_tree node, struct decl_hash *decl_hash_data)
173334 +{
173335 + const_tree result;
173336 +
173337 + gcc_assert(node != NULL_TREE);
173338 +
173339 + if (DECL_P(node)) {
173340 + result = DECL_RESULT(node);
173341 + if (result != NULL_TREE)
173342 + return set_decl_type_codes(TREE_TYPE(result), decl_hash_data);
173343 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
173344 + }
173345 +
173346 + gcc_assert(TYPE_P(node));
173347 +
173348 + if (TREE_CODE(node) == FUNCTION_TYPE)
173349 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
173350 +
173351 + return set_decl_type_codes(node, decl_hash_data);
173352 +}
173353 +
173354 +static void set_decl_codes(struct decl_hash *decl_hash_data)
173355 +{
173356 + const_tree arg, type;
173357 + enum tree_code code;
173358 +
173359 + if (TREE_CODE(decl_hash_data->decl) == VAR_DECL || TREE_CODE(decl_hash_data->decl) == FIELD_DECL) {
173360 + set_decl_type_codes(TREE_TYPE(decl_hash_data->decl), decl_hash_data);
173361 + return;
173362 + }
173363 +
173364 + type = get_function_type(decl_hash_data->decl);
173365 + code = TREE_CODE(type);
173366 + gcc_assert(code == FUNCTION_TYPE || code == METHOD_TYPE);
173367 +
173368 + if (FUNCTION_PTR_P(decl_hash_data->decl))
173369 + set_result_codes(type, decl_hash_data);
173370 + else
173371 + set_result_codes(decl_hash_data->decl, decl_hash_data);
173372 +
173373 + for (arg = TYPE_ARG_TYPES(type); arg != NULL_TREE && decl_hash_data->tree_codes_len < CODES_LIMIT; arg = TREE_CHAIN(arg))
173374 + set_decl_type_codes(TREE_VALUE(arg), decl_hash_data);
173375 +}
173376 +
173377 +static const struct size_overflow_hash *get_proper_hash_chain(const struct size_overflow_hash *entry, const char *func_name, const char *context)
173378 +{
173379 + for (; entry; entry = entry->next) {
173380 + if (strcmp(entry->name, func_name))
173381 + continue;
173382 + if (!strcmp(entry->context, context))
173383 + return entry;
173384 + }
173385 + return NULL;
173386 +}
173387 +
173388 +unsigned int get_decl_hash(const_tree decl, const char *decl_name)
173389 +{
173390 + struct decl_hash decl_hash_data;
173391 + enum tree_code code = TREE_CODE(decl);
173392 +
173393 + gcc_assert(code == FIELD_DECL || code == FUNCTION_DECL || code == VAR_DECL);
173394 +
173395 + // skip builtins __builtin_constant_p
173396 + if (code == FUNCTION_DECL && (DECL_BUILT_IN(decl) || DECL_BUILT_IN_CLASS(decl) == BUILT_IN_NORMAL))
173397 + return NO_HASH;
173398 +
173399 + decl_hash_data.fn_name = decl_name;
173400 + decl_hash_data.decl = decl;
173401 + decl_hash_data.context = get_decl_context(decl);
173402 + if (!decl_hash_data.context)
173403 + return NO_HASH;
173404 + decl_hash_data.tree_codes_len = 0;
173405 +
173406 + set_decl_codes(&decl_hash_data);
173407 + gcc_assert(decl_hash_data.tree_codes_len != 0);
173408 + set_hash(&decl_hash_data);
173409 + return decl_hash_data.hash;
173410 +}
173411 +
173412 +const char *get_orig_decl_name(const_tree decl)
173413 +{
173414 + const char *name;
173415 + unsigned int len;
173416 + const void *end;
173417 + const_tree orig_decl;
173418 +
173419 + if (TREE_CODE(decl) == FUNCTION_DECL)
173420 + orig_decl = DECL_ORIGIN(decl);
173421 + else
173422 + orig_decl = decl;
173423 +
173424 + len = DECL_NAME_LENGTH(orig_decl);
173425 + name = DECL_NAME_POINTER(orig_decl);
173426 +
173427 + /* Sometimes gcc loses the original cgraph node leaving only clones behind.
173428 + * In such cases we will extract the name from the clone and use it in the hash table
173429 + * without checking the parameter number on the original (unavailable) decl.
173430 + */
173431 +
173432 + if (made_by_compiler(orig_decl)) {
173433 + end = memchr(name, '.', len);
173434 + if (!end)
173435 + return xstrndup(name, len);
173436 + len = (long)end - (long)name;
173437 + gcc_assert(len > 0);
173438 + }
173439 +
173440 + return xstrndup(name, len);
173441 +}
173442 +
173443 +const struct size_overflow_hash *get_disable_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
173444 +{
173445 + const struct size_overflow_hash *entry, *entry_node;
173446 +
173447 + entry = disable_size_overflow_hash[hash];
173448 + entry_node = get_proper_hash_chain(entry, decl_name, context);
173449 + if (entry_node && entry_node->param & (1U << argnum))
173450 + return entry_node;
173451 + return NULL;
173452 +}
173453 +
173454 +const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
173455 +{
173456 + const struct size_overflow_hash *entry, *entry_node;
173457 +
173458 + entry = size_overflow_hash[hash];
173459 + entry_node = get_proper_hash_chain(entry, decl_name, context);
173460 + if (entry_node && entry_node->param & (1U << argnum))
173461 + return entry_node;
173462 +
173463 + entry = size_overflow_hash_aux[hash];
173464 + entry_node = get_proper_hash_chain(entry, decl_name, context);
173465 + if (entry_node && entry_node->param & (1U << argnum))
173466 + return entry_node;
173467 + return NULL;
173468 +}
173469 +
173470 +const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table)
173471 +{
173472 + const_tree orig_decl;
173473 + unsigned int orig_argnum, hash;
173474 + const char *decl_name, *context;
173475 +
173476 + if (made_by_compiler(fndecl)) {
173477 + orig_decl = get_orig_fndecl(fndecl);
173478 + orig_argnum = get_correct_argnum(fndecl, orig_decl, argnum);
173479 + } else {
173480 + orig_decl = fndecl;
173481 + orig_argnum = argnum;
173482 + }
173483 +
173484 + if (orig_argnum == CANNOT_FIND_ARG)
173485 + return NULL;
173486 +
173487 + decl_name = get_orig_decl_name(orig_decl);
173488 + hash = get_decl_hash(orig_decl, decl_name);
173489 + if (hash == NO_HASH)
173490 + return NULL;
173491 +
173492 + context = get_decl_context(orig_decl);
173493 + if (!context)
173494 + return NULL;
173495 +
173496 + if (hash_table == SIZE_OVERFLOW)
173497 + return get_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
173498 + return get_disable_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
173499 +}
173500 +
173501 +unsigned int find_arg_number_tree(const_tree arg, const_tree func)
173502 +{
173503 + tree var;
173504 + unsigned int argnum = 1;
173505 +
173506 + if (DECL_ARGUMENTS(func) == NULL_TREE)
173507 + return CANNOT_FIND_ARG;
173508 +
173509 + if (TREE_CODE(arg) == SSA_NAME)
173510 + arg = SSA_NAME_VAR(arg);
173511 +
173512 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
173513 + if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
173514 + continue;
173515 + if (!skip_types(var))
173516 + return argnum;
173517 + }
173518 +
173519 + return CANNOT_FIND_ARG;
173520 +}
173521 +
173522 +const_tree get_attribute(const char* attr_name, const_tree decl)
173523 +{
173524 + const_tree attr = lookup_attribute(attr_name, DECL_ATTRIBUTES(decl));
173525 + if (attr && TREE_VALUE(attr))
173526 + return attr;
173527 + return NULL_TREE;
173528 +}
173529 +
173530 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
173531 + * If the function is missing everywhere then print the missing message into stderr.
173532 + */
173533 +void print_missing_function(next_interesting_function_t node)
173534 +{
173535 + unsigned int argnum, hash;
173536 + const struct size_overflow_hash *entry;
173537 + const char *decl_name;
173538 +
173539 + if (node->marked == ASM_STMT_SO_MARK)
173540 + return;
173541 +
173542 + if (node->orig_next_node) {
173543 + hash = node->orig_next_node->hash;
173544 + decl_name = node->orig_next_node->decl_name;
173545 + argnum = node->orig_next_node->num;
173546 + gcc_assert(!strcmp(node->context, node->orig_next_node->context));
173547 + } else {
173548 + hash = node->hash;
173549 + decl_name = node->decl_name;
173550 + argnum = node->num;
173551 + }
173552 +
173553 + entry = get_size_overflow_hash_entry(hash, decl_name, node->context, argnum);
173554 + if (entry)
173555 + return;
173556 +
173557 + // inform() would be too slow
173558 + fprintf(stderr, "Function %s is missing from the size_overflow hash table +%s+%s+%u+%u+\n", decl_name, decl_name, node->context, argnum, hash);
173559 +}
173560 +
173561 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform.c b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
173562 new file mode 100644
173563 index 0000000..8f42c7e
173564 --- /dev/null
173565 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
173566 @@ -0,0 +1,749 @@
173567 +/*
173568 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
173569 + * Licensed under the GPL v2, or (at your option) v3
173570 + *
173571 + * Homepage:
173572 + * https://github.com/ephox-gcc-plugins/size_overflow
173573 + *
173574 + * Documentation:
173575 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
173576 + *
173577 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
173578 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
173579 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
173580 + *
173581 + * Usage:
173582 + * $ make
173583 + * $ make run
173584 + */
173585 +
173586 +#include "size_overflow.h"
173587 +
173588 +static tree cast_to_orig_type(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node)
173589 +{
173590 + gimple def_stmt;
173591 + const_gimple assign;
173592 + tree result, orig_type = TREE_TYPE(orig_node);
173593 + gimple_stmt_iterator gsi;
173594 +
173595 + if (gimple_code(stmt) != GIMPLE_PHI) {
173596 + gsi = gsi_for_stmt(stmt);
173597 + assign = build_cast_stmt(visited, orig_type, new_node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
173598 + return get_lhs(assign);
173599 + }
173600 +
173601 + def_stmt = get_def_stmt(new_node);
173602 + if (gimple_code(def_stmt) == GIMPLE_PHI)
173603 + gsi = gsi_after_labels(gimple_bb(def_stmt));
173604 + else
173605 + gsi = gsi_for_stmt(def_stmt);
173606 +
173607 + result = gimple_phi_result(stmt);
173608 + assign = build_cast_stmt(visited, orig_type, new_node, SSA_NAME_VAR(result), &gsi, AFTER_STMT, false);
173609 + return get_lhs(assign);
173610 +}
173611 +
173612 +static void change_size_overflow_asm_input(gasm *stmt, tree new_input)
173613 +{
173614 + tree list;
173615 +
173616 + gcc_assert(is_size_overflow_insert_check_asm(stmt));
173617 +
173618 + list = build_tree_list(NULL_TREE, build_string(3, "rm"));
173619 + list = chainon(NULL_TREE, build_tree_list(list, new_input));
173620 + gimple_asm_set_input_op(stmt, 0, list);
173621 +}
173622 +
173623 +static void change_field_write_rhs(gassign *assign, const_tree orig_rhs, tree new_rhs)
173624 +{
173625 + const_tree rhs1, rhs2, rhs3 = NULL_TREE;
173626 +
173627 + rhs1 = gimple_assign_rhs1(assign);
173628 + if (rhs1 == orig_rhs) {
173629 + gimple_assign_set_rhs1(assign, new_rhs);
173630 + return;
173631 + }
173632 +
173633 + rhs2 = gimple_assign_rhs2(assign);
173634 + if (rhs2 == orig_rhs) {
173635 + gimple_assign_set_rhs2(assign, new_rhs);
173636 + return;
173637 + }
173638 +
173639 +#if BUILDING_GCC_VERSION >= 4006
173640 + rhs3 = gimple_assign_rhs3(assign);
173641 + if (rhs3 == orig_rhs) {
173642 + gimple_assign_set_rhs3(assign, new_rhs);
173643 + return;
173644 + }
173645 +#endif
173646 +
173647 + debug_gimple_stmt(assign);
173648 + fprintf(stderr, "orig_rhs:\n");
173649 + debug_tree((tree)orig_rhs);
173650 + fprintf(stderr, "rhs1:\n");
173651 + debug_tree((tree)rhs1);
173652 + fprintf(stderr, "rhs2:\n");
173653 + debug_tree((tree)rhs2);
173654 + fprintf(stderr, "rhs3:\n");
173655 + debug_tree((tree)rhs3);
173656 + gcc_unreachable();
173657 +}
173658 +
173659 +static void change_phi_arg(gphi *phi, tree new_node, unsigned int num)
173660 +{
173661 + unsigned int i;
173662 + location_t loc = gimple_location(phi);
173663 +
173664 + for (i = 0; i < gimple_phi_num_args(phi); i++) {
173665 + if (i == num)
173666 + add_phi_arg(phi, new_node, gimple_phi_arg_edge(phi, i), loc);
173667 + }
173668 +}
173669 +
173670 +static void change_orig_node(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node, unsigned int num)
173671 +{
173672 + tree cast_lhs = cast_to_orig_type(visited, stmt, orig_node, new_node);
173673 +
173674 + switch (gimple_code(stmt)) {
173675 + case GIMPLE_RETURN:
173676 + gimple_return_set_retval(as_a_greturn(stmt), cast_lhs);
173677 + break;
173678 + case GIMPLE_CALL:
173679 + gimple_call_set_arg(as_a_gcall(stmt), num - 1, cast_lhs);
173680 + break;
173681 + case GIMPLE_ASM:
173682 + change_size_overflow_asm_input(as_a_gasm(stmt), cast_lhs);
173683 + break;
173684 + case GIMPLE_ASSIGN:
173685 + change_field_write_rhs(as_a_gassign(stmt), orig_node, cast_lhs);
173686 + break;
173687 + case GIMPLE_PHI:
173688 + change_phi_arg(as_a_gphi(stmt), cast_lhs, num);
173689 + break;
173690 + default:
173691 + debug_gimple_stmt(stmt);
173692 + gcc_unreachable();
173693 + }
173694 +
173695 + update_stmt(stmt);
173696 +}
173697 +
173698 +// e.g., 3.8.2, 64, arch/x86/ia32/ia32_signal.c copy_siginfo_from_user32(): compat_ptr() u32 max
173699 +static bool skip_asm_cast(const_tree arg)
173700 +{
173701 + gimple def_stmt = get_def_stmt(arg);
173702 +
173703 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
173704 + return false;
173705 +
173706 + def_stmt = get_def_stmt(gimple_assign_rhs1(def_stmt));
173707 + if (is_size_overflow_asm(def_stmt))
173708 + return false;
173709 + return def_stmt && gimple_code(def_stmt) == GIMPLE_ASM;
173710 +}
173711 +
173712 +static interesting_stmts_t create_interesting_stmts(interesting_stmts_t head, next_interesting_function_t next_node, tree orig_node, gimple first_stmt, unsigned int num)
173713 +{
173714 + interesting_stmts_t new_node;
173715 +
173716 + new_node = (interesting_stmts_t )xmalloc(sizeof(*new_node));
173717 + new_node->first_stmt = first_stmt;
173718 + new_node->num = num;
173719 + new_node->orig_node = orig_node;
173720 + new_node->next = head;
173721 + new_node->next_node = next_node;
173722 + return new_node;
173723 +}
173724 +
173725 +static void free_interesting_stmts(interesting_stmts_t head)
173726 +{
173727 + while (head) {
173728 + interesting_stmts_t cur = head->next;
173729 + free(head);
173730 + head = cur;
173731 + }
173732 +}
173733 +
173734 +/* This function calls the main recursion function (expand) that duplicates the stmts. Before that it checks the intentional_overflow attribute,
173735 + * it decides whether the duplication is necessary or not. After expand() it changes the orig node to the duplicated node
173736 + * in the original stmt (first stmt) and it inserts the overflow check for the arg of the callee or for the return value.
173737 + */
173738 +static interesting_stmts_t search_interesting_stmt(interesting_stmts_t head, next_interesting_function_t next_node, gimple first_stmt, tree orig_node, unsigned int num)
173739 +{
173740 + enum tree_code orig_code;
173741 +
173742 + gcc_assert(orig_node != NULL_TREE);
173743 +
173744 + if (is_gimple_constant(orig_node))
173745 + return head;
173746 +
173747 + orig_code = TREE_CODE(orig_node);
173748 + gcc_assert(orig_code != FIELD_DECL && orig_code != FUNCTION_DECL);
173749 +
173750 + if (skip_types(orig_node))
173751 + return head;
173752 + // !!! temporarily ignore bitfield types
173753 + if (orig_code == FIELD_DECL && DECL_BIT_FIELD_TYPE(orig_node))
173754 + return head;
173755 +
173756 + // find a defining marked caller argument or struct field for arg
173757 + if (check_intentional_size_overflow_asm_and_attribute(orig_node) != MARK_NO)
173758 + return head;
173759 +
173760 + if (skip_asm_cast(orig_node))
173761 + return head;
173762 +
173763 + return create_interesting_stmts(head, next_node, orig_node, first_stmt, num);
173764 +}
173765 +
173766 +static bool is_signed_error_code_const(const_tree node)
173767 +{
173768 + HOST_WIDE_INT constant = tree_to_shwi(node);
173769 +
173770 + return constant >= -4095 && constant <= -1;
173771 +}
173772 +
173773 +static bool is_unsigned_error_code_const(const_tree node)
173774 +{
173775 + unsigned HOST_WIDE_INT constant = tree_to_uhwi(node);
173776 +
173777 + // ulong -4095
173778 + if (constant >= 0xfffffffffffff001)
173779 + return true;
173780 + // uint -4095
173781 + return constant >= 0xfffff001;
173782 +}
173783 +
173784 +static bool is_error_code_const(const_tree node)
173785 +{
173786 + enum machine_mode mode;
173787 +
173788 + if (!is_gimple_constant(node))
173789 + return false;
173790 + mode = TYPE_MODE(TREE_TYPE(node));
173791 + if (mode != SImode && mode != DImode)
173792 + return false;
173793 +
173794 + if (!TYPE_UNSIGNED(TREE_TYPE(node)) && is_signed_error_code_const(node))
173795 + return true;
173796 + return TYPE_UNSIGNED(TREE_TYPE(node)) && is_unsigned_error_code_const(node);
173797 +}
173798 +
173799 +static bool has_error_code(gphi *phi)
173800 +{
173801 + unsigned int i, len = gimple_phi_num_args(phi);
173802 +
173803 + for (i = 0; i < len; i++) {
173804 + const_tree arg = gimple_phi_arg_def(phi, i);
173805 +
173806 + if (is_error_code_const(arg))
173807 + return true;
173808 + }
173809 +
173810 + return false;
173811 +}
173812 +
173813 +static interesting_stmts_t search_interesting_rets(interesting_stmts_t head, next_interesting_function_t next_node_ret, greturn *ret)
173814 +{
173815 + tree first_node;
173816 +
173817 + if (!next_node_ret || next_node_ret->marked == ASM_STMT_SO_MARK)
173818 + return head;
173819 +
173820 + first_node = gimple_return_retval(ret);
173821 + if (first_node == NULL_TREE)
173822 + return head;
173823 +
173824 + return search_interesting_stmt(head, next_node_ret, ret, first_node, 0);
173825 +}
173826 +
173827 +static void handle_binary_assign(struct visited *visited, interesting_stmts_t expand_from, gassign *assign, tree rhs)
173828 +{
173829 + tree new_node;
173830 + gimple def_orig_node;
173831 +
173832 + new_node = expand(visited, expand_from, rhs);
173833 + if (new_node == NULL_TREE)
173834 + return;
173835 +
173836 + def_orig_node = get_def_stmt(rhs);
173837 + change_orig_node(visited, assign, rhs, new_node, 0);
173838 +
173839 + if (pointer_set_contains(visited->no_cast_check, def_orig_node))
173840 + return;
173841 + check_size_overflow(expand_from, assign, TREE_TYPE(new_node), new_node, rhs, BEFORE_STMT);
173842 +}
173843 +
173844 +static bool search_error_codes(struct visited *visited, gimple_set *visited_error_codes, interesting_stmts_t expand_from, tree lhs, bool error_code)
173845 +{
173846 + gimple def_stmt;
173847 +
173848 + def_stmt = get_def_stmt(lhs);
173849 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
173850 + return error_code;
173851 +
173852 + if (pointer_set_insert(visited_error_codes, def_stmt))
173853 + return error_code;
173854 +
173855 + if (is_gimple_constant(lhs))
173856 + return error_code;
173857 + if (skip_types(lhs))
173858 + return is_error_code_const(lhs);
173859 +
173860 + switch (gimple_code(def_stmt)) {
173861 + case GIMPLE_CALL:
173862 + case GIMPLE_ASM:
173863 + return error_code;
173864 + case GIMPLE_ASSIGN: {
173865 + tree rhs1, rhs2;
173866 + gassign *assign = as_a_gassign(def_stmt);
173867 +
173868 + switch (gimple_num_ops(assign)) {
173869 + case 2:
173870 + return search_error_codes(visited, visited_error_codes, expand_from, gimple_assign_rhs1(def_stmt), error_code);
173871 + case 3:
173872 + if (!error_code)
173873 + return error_code;
173874 +
173875 + /* Run stmt duplication from the binary assignment ops (rhs1 and rhs2)
173876 + * so that size_overflow checking skips the lhs of the last binary assignment
173877 + * before the error code PHI.
173878 + */
173879 + rhs1 = gimple_assign_rhs1(assign);
173880 + handle_binary_assign(visited, expand_from, assign, rhs1);
173881 + rhs2 = gimple_assign_rhs2(assign);
173882 + handle_binary_assign(visited, expand_from, assign, rhs2);
173883 + return error_code;
173884 + }
173885 + gcc_unreachable();
173886 + }
173887 + case GIMPLE_PHI: {
173888 + unsigned int i;
173889 +
173890 + error_code = has_error_code(as_a_gphi(def_stmt));
173891 + for (i = 0; i < gimple_phi_num_args(def_stmt); i++) {
173892 + error_code = search_error_codes(visited, visited_error_codes, expand_from, gimple_phi_arg_def(def_stmt, i), error_code);
173893 + }
173894 + return error_code;
173895 + }
173896 + default:
173897 + debug_gimple_stmt(def_stmt);
173898 + error("%s: unknown gimple code", __func__);
173899 + gcc_unreachable();
173900 + }
173901 +}
173902 +
173903 +static bool handle_error_codes(struct visited *visited, interesting_stmts_t expand_from)
173904 +{
173905 + bool error_code;
173906 + gimple_set *visited_error_codes;
173907 +
173908 + // expand the data flow from a return stmt
173909 + if (expand_from->next_node->num != 0 || strcmp(expand_from->next_node->context, "fndecl"))
173910 + return false;
173911 +
173912 + visited_error_codes = pointer_set_create();
173913 + error_code = search_error_codes(visited, visited_error_codes, expand_from, expand_from->orig_node, false);
173914 + pointer_set_destroy(visited_error_codes);
173915 +
173916 + return error_code;
173917 +}
173918 +
173919 +static void handle_interesting_stmt(struct visited *visited, interesting_stmts_t head)
173920 +{
173921 + interesting_stmts_t cur;
173922 +
173923 + for (cur = head; cur; cur = cur->next) {
173924 + tree new_node;
173925 + gimple orig_def_stmt;
173926 +
173927 + if (handle_error_codes(visited, cur))
173928 + continue;
173929 +
173930 + new_node = expand(visited, cur, cur->orig_node);
173931 + if (new_node == NULL_TREE)
173932 + continue;
173933 +
173934 + orig_def_stmt = get_def_stmt(cur->orig_node);
173935 +
173936 + change_orig_node(visited, cur->first_stmt, cur->orig_node, new_node, cur->num);
173937 +
173938 + if (pointer_set_contains(visited->no_cast_check, orig_def_stmt))
173939 + continue;
173940 + check_size_overflow(cur, cur->first_stmt, TREE_TYPE(new_node), new_node, cur->orig_node, BEFORE_STMT);
173941 + }
173942 +}
173943 +
173944 +static next_interesting_function_t get_interesting_function_next_node(tree decl, unsigned int num)
173945 +{
173946 + next_interesting_function_t next_node;
173947 + const struct size_overflow_hash *so_hash;
173948 + struct fn_raw_data raw_data;
173949 +
173950 + raw_data.decl = decl;
173951 + raw_data.decl_str = DECL_NAME_POINTER(decl);
173952 + raw_data.num = num;
173953 + raw_data.marked = YES_SO_MARK;
173954 +
173955 + next_node = get_global_next_interesting_function_entry_with_hash(&raw_data);
173956 + if (next_node && next_node->marked != NO_SO_MARK)
173957 + return next_node;
173958 +
173959 + so_hash = get_size_overflow_hash_entry_tree(raw_data.decl, raw_data.num, SIZE_OVERFLOW);
173960 + if (so_hash)
173961 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
173962 + return NULL;
173963 +}
173964 +
173965 +tree handle_fnptr_assign(const_gimple stmt)
173966 +{
173967 + tree field, rhs, op0;
173968 + const_tree op0_type;
173969 + enum tree_code rhs_code;
173970 +
173971 + // TODO skip binary assignments for now (fs/sync.c _591 = __bpf_call_base + _590;)
173972 + if (gimple_num_ops(stmt) != 2)
173973 + return NULL_TREE;
173974 +
173975 + gcc_assert(gimple_num_ops(stmt) == 2);
173976 + // TODO skip asm_stmt for now
173977 + if (gimple_code(stmt) == GIMPLE_ASM)
173978 + return NULL_TREE;
173979 + rhs = gimple_assign_rhs1(stmt);
173980 + if (is_gimple_constant(rhs))
173981 + return NULL_TREE;
173982 +
173983 + rhs_code = TREE_CODE(rhs);
173984 + if (rhs_code == VAR_DECL)
173985 + return rhs;
173986 +
173987 + switch (rhs_code) {
173988 + case ADDR_EXPR:
173989 + op0 = TREE_OPERAND(rhs, 0);
173990 + gcc_assert(TREE_CODE(op0) == FUNCTION_DECL);
173991 + return op0;
173992 + case COMPONENT_REF:
173993 + break;
173994 + // TODO skip array_ref for now
173995 + case ARRAY_REF:
173996 + return NULL_TREE;
173997 + // TODO skip ssa_name because it can lead to parm_decl
173998 + case SSA_NAME:
173999 + return NULL_TREE;
174000 + // TODO skip mem_ref and indirect_ref for now
174001 +#if BUILDING_GCC_VERSION >= 4006
174002 + case MEM_REF:
174003 +#endif
174004 + case INDIRECT_REF:
174005 + return NULL_TREE;
174006 + default:
174007 + debug_tree(rhs);
174008 + debug_gimple_stmt((gimple)stmt);
174009 + gcc_unreachable();
174010 + }
174011 +
174012 + op0 = TREE_OPERAND(rhs, 0);
174013 + switch (TREE_CODE(op0)) {
174014 + // TODO skip array_ref and parm_decl for now
174015 + case ARRAY_REF:
174016 + case PARM_DECL:
174017 + return NULL_TREE;
174018 + case COMPONENT_REF:
174019 +#if BUILDING_GCC_VERSION >= 4006
174020 + case MEM_REF:
174021 +#endif
174022 + case INDIRECT_REF:
174023 + case VAR_DECL:
174024 + break;
174025 + default:
174026 + debug_tree(op0);
174027 + gcc_unreachable();
174028 + }
174029 +
174030 + op0_type = TREE_TYPE(op0);
174031 + // TODO skip unions for now
174032 + if (TREE_CODE(op0_type) == UNION_TYPE)
174033 + return NULL_TREE;
174034 + gcc_assert(TREE_CODE(op0_type) == RECORD_TYPE);
174035 +
174036 + field = TREE_OPERAND(rhs, 1);
174037 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
174038 + return field;
174039 +}
174040 +
174041 +static tree get_fn_or_fnptr_decl(const gcall *call_stmt)
174042 +{
174043 + const_tree fnptr;
174044 + const_gimple def_stmt;
174045 + tree decl = gimple_call_fndecl(call_stmt);
174046 +
174047 + if (decl != NULL_TREE)
174048 + return decl;
174049 +
174050 + fnptr = gimple_call_fn(call_stmt);
174051 + if (fnptr == NULL_TREE)
174052 + return NULL_TREE;
174053 +
174054 + // !!! assertot kell irni 0-ra, mert csak az lehet ott
174055 + if (is_gimple_constant(fnptr))
174056 + return NULL_TREE;
174057 + def_stmt = get_fnptr_def_stmt(fnptr);
174058 + return handle_fnptr_assign(def_stmt);
174059 +}
174060 +
174061 +// Start stmt duplication on marked function parameters
174062 +static interesting_stmts_t search_interesting_calls(interesting_stmts_t head, gcall *call_stmt)
174063 +{
174064 + tree decl;
174065 + unsigned int i, len;
174066 +
174067 + len = gimple_call_num_args(call_stmt);
174068 + if (len == 0)
174069 + return head;
174070 +
174071 + decl = get_fn_or_fnptr_decl(call_stmt);
174072 + if (decl == NULL_TREE)
174073 + return head;
174074 +
174075 + for (i = 0; i < len; i++) {
174076 + tree arg;
174077 + next_interesting_function_t next_node;
174078 +
174079 + arg = gimple_call_arg(call_stmt, i);
174080 + if (is_gimple_constant(arg))
174081 + continue;
174082 + if (skip_types(arg))
174083 + continue;
174084 + next_node = get_interesting_function_next_node(decl, i + 1);
174085 + if (next_node)
174086 + head = search_interesting_stmt(head, next_node, call_stmt, arg, i + 1);
174087 + }
174088 +
174089 + return head;
174090 +}
174091 +
174092 +// Find assignements to structure fields and vardecls
174093 +static interesting_stmts_t search_interesting_structs_vardecls(interesting_stmts_t head, gassign *assign)
174094 +{
174095 + enum intentional_mark mark;
174096 + next_interesting_function_t next_node;
174097 + tree rhs1, rhs2, lhs, decl;
174098 +#if BUILDING_GCC_VERSION >= 4006
174099 + tree rhs3;
174100 +#endif
174101 +
174102 + lhs = gimple_assign_lhs(assign);
174103 +
174104 + if (VAR_P(lhs))
174105 + decl = lhs;
174106 + else
174107 + decl = get_ref_field(lhs);
174108 + if (decl == NULL_TREE)
174109 + return head;
174110 + if (DECL_NAME(decl) == NULL_TREE)
174111 + return head;
174112 +
174113 + // !!! temporarily ignore bitfield types
174114 + if (TREE_CODE(decl) == FIELD_DECL && DECL_BIT_FIELD_TYPE(decl))
174115 + return head;
174116 +
174117 + next_node = get_interesting_function_next_node(decl, 0);
174118 + if (!next_node)
174119 + return head;
174120 +
174121 + mark = get_intentional_attr_type(decl);
174122 + if (mark != MARK_NO)
174123 + return head;
174124 +
174125 + rhs1 = gimple_assign_rhs1(assign);
174126 + head = search_interesting_stmt(head, next_node, assign, rhs1, 0);
174127 +
174128 + rhs2 = gimple_assign_rhs2(assign);
174129 + if (rhs2)
174130 + head = search_interesting_stmt(head, next_node, assign, rhs2, 0);
174131 +
174132 +#if BUILDING_GCC_VERSION >= 4006
174133 + rhs3 = gimple_assign_rhs3(assign);
174134 + if (rhs3)
174135 + head = search_interesting_stmt(head, next_node, assign, rhs3, 0);
174136 +#endif
174137 + return head;
174138 +}
174139 +
174140 +static next_interesting_function_t create_so_asm_next_interesting_function_node(const gasm *stmt)
174141 +{
174142 + next_interesting_function_t next_node;
174143 + struct fn_raw_data raw_data;
174144 +
174145 + raw_data.decl = NULL_TREE;
174146 + raw_data.decl_str = gimple_asm_string(stmt);
174147 + raw_data.context = "attr";
174148 + raw_data.hash = 0;
174149 + raw_data.num = 0;
174150 + raw_data.marked = ASM_STMT_SO_MARK;
174151 +
174152 + next_node = get_global_next_interesting_function_entry(&raw_data);
174153 + if (next_node)
174154 + return next_node;
174155 + next_node = create_new_next_interesting_entry(&raw_data, NULL);
174156 + gcc_assert(next_node);
174157 +
174158 + add_to_global_next_interesting_function(next_node);
174159 + return next_node;
174160 +}
174161 +
174162 +// Collect interesting stmts for duplication
174163 +static void search_interesting_stmts(struct visited *visited)
174164 +{
174165 + basic_block bb;
174166 + next_interesting_function_t next_node_ret;
174167 + interesting_stmts_t head = NULL;
174168 +
174169 + next_node_ret = get_interesting_function_next_node(current_function_decl, 0);
174170 +
174171 + FOR_EACH_BB_FN(bb, cfun) {
174172 + gimple_stmt_iterator gsi;
174173 +
174174 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
174175 + gimple stmt = gsi_stmt(gsi);
174176 +
174177 + switch (gimple_code(stmt)) {
174178 + case GIMPLE_ASM: {
174179 + tree first_node;
174180 + next_interesting_function_t next_node;
174181 + const gasm *asm_stmt = as_a_gasm(stmt);
174182 +
174183 + if (!is_size_overflow_insert_check_asm(asm_stmt))
174184 + continue;
174185 + next_node = create_so_asm_next_interesting_function_node(asm_stmt);
174186 + first_node = get_size_overflow_asm_input(asm_stmt);
174187 + head = search_interesting_stmt(head, next_node, stmt, first_node, 0);
174188 + break;
174189 + }
174190 + case GIMPLE_RETURN:
174191 + head = search_interesting_rets(head, next_node_ret, as_a_greturn(stmt));
174192 + break;
174193 + case GIMPLE_CALL:
174194 + head = search_interesting_calls(head, as_a_gcall(stmt));
174195 + break;
174196 + case GIMPLE_ASSIGN:
174197 + /* !!! TODO LTO modeban nincs duplikalas a globalis valtozora, mert a tree mergek
174198 + * utan mar nem lehet megkulonboztetni attol a globalis valtozotol, aminek a scopeja csak a file
174199 + * igy a context nem vardecl lesz, hanem vardecl_filenev. De execute-ban kiirja, ha hianyzik a hash tablabol
174200 + * IPA-ban van duplikalas.
174201 + */
174202 + head = search_interesting_structs_vardecls(head, as_a_gassign(stmt));
174203 + break;
174204 + default:
174205 + break;
174206 + }
174207 + }
174208 + }
174209 +
174210 + handle_interesting_stmt(visited, head);
174211 + free_interesting_stmts(head);
174212 +}
174213 +
174214 +static struct visited *create_visited(void)
174215 +{
174216 + struct visited *new_node;
174217 +
174218 + new_node = (struct visited *)xmalloc(sizeof(*new_node));
174219 + new_node->stmts = pointer_set_create();
174220 + new_node->my_stmts = pointer_set_create();
174221 + new_node->skip_expr_casts = pointer_set_create();
174222 + new_node->no_cast_check = pointer_set_create();
174223 + return new_node;
174224 +}
174225 +
174226 +static void free_visited(struct visited *visited)
174227 +{
174228 + pointer_set_destroy(visited->stmts);
174229 + pointer_set_destroy(visited->my_stmts);
174230 + pointer_set_destroy(visited->skip_expr_casts);
174231 + pointer_set_destroy(visited->no_cast_check);
174232 +
174233 + free(visited);
174234 +}
174235 +
174236 +// Remove the size_overflow asm stmt and create an assignment from the input and output of the asm
174237 +static void replace_size_overflow_asm_with_assign(gasm *asm_stmt, tree lhs, tree rhs)
174238 +{
174239 + gassign *assign;
174240 + gimple_stmt_iterator gsi;
174241 +
174242 + // already removed
174243 + if (gimple_bb(asm_stmt) == NULL)
174244 + return;
174245 + gsi = gsi_for_stmt(asm_stmt);
174246 +
174247 + assign = gimple_build_assign(lhs, rhs);
174248 + gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
174249 + SSA_NAME_DEF_STMT(lhs) = assign;
174250 +
174251 + gsi_remove(&gsi, true);
174252 +}
174253 +
174254 +// Replace our asm stmts with assignments (they are no longer needed and may interfere with later optimizations)
174255 +static void remove_size_overflow_asm(gimple stmt)
174256 +{
174257 + gimple_stmt_iterator gsi;
174258 + tree input, output;
174259 +
174260 + if (!is_size_overflow_asm(stmt))
174261 + return;
174262 +
174263 + if (gimple_asm_noutputs(as_a_gasm(stmt)) == 0) {
174264 + gsi = gsi_for_stmt(stmt);
174265 +
174266 + ipa_remove_stmt_references(cgraph_get_node(current_function_decl), stmt);
174267 + gsi_remove(&gsi, true);
174268 + return;
174269 + }
174270 +
174271 + input = gimple_asm_input_op(as_a_gasm(stmt), 0);
174272 + output = gimple_asm_output_op(as_a_gasm(stmt), 0);
174273 + replace_size_overflow_asm_with_assign(as_a_gasm(stmt), TREE_VALUE(output), TREE_VALUE(input));
174274 +}
174275 +
174276 +static void remove_all_size_overflow_asm(void)
174277 +{
174278 + basic_block bb;
174279 +
174280 + FOR_EACH_BB_FN(bb, cfun) {
174281 + gimple_stmt_iterator si;
174282 +
174283 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
174284 + remove_size_overflow_asm(gsi_stmt(si));
174285 + }
174286 +}
174287 +
174288 +unsigned int size_overflow_transform(struct cgraph_node *node __unused)
174289 +{
174290 + struct visited *visited;
174291 +
174292 +#if BUILDING_GCC_VERSION >= 4008
174293 + if (dump_file) {
174294 + fprintf(dump_file, "BEFORE TRANSFORM -------------------------\n");
174295 + size_overflow_dump_function(dump_file, node);
174296 + }
174297 +#endif
174298 + visited = create_visited();
174299 + set_dominance_info();
174300 +
174301 + search_interesting_stmts(visited);
174302 +
174303 + remove_all_size_overflow_asm();
174304 +
174305 + unset_dominance_info();
174306 + free_visited(visited);
174307 +
174308 +#if BUILDING_GCC_VERSION >= 4008
174309 + if (dump_file) {
174310 + fprintf(dump_file, "AFTER TRANSFORM -------------------------\n");
174311 + size_overflow_dump_function(dump_file, node);
174312 + }
174313 +#endif
174314 + return TODO_dump_func | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_ggc_collect | TODO_verify_flow;
174315 +}
174316 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
174317 new file mode 100644
174318 index 0000000..8a30b3b
174319 --- /dev/null
174320 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
174321 @@ -0,0 +1,1010 @@
174322 +/*
174323 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
174324 + * Licensed under the GPL v2, or (at your option) v3
174325 + *
174326 + * Homepage:
174327 + * https://github.com/ephox-gcc-plugins/size_overflow
174328 + *
174329 + * Documentation:
174330 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
174331 + *
174332 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
174333 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
174334 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
174335 + *
174336 + * Usage:
174337 + * $ make
174338 + * $ make run
174339 + */
174340 +
174341 +#include "size_overflow.h"
174342 +
174343 +#define MIN_CHECK true
174344 +#define MAX_CHECK false
174345 +
174346 +unsigned int call_count = 0;
174347 +
174348 +tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node)
174349 +{
174350 + const_tree type;
174351 + tree new_type;
174352 +
174353 + gcc_assert(node != NULL_TREE);
174354 +
174355 + type = TREE_TYPE(node);
174356 +
174357 + if (pointer_set_contains(visited->my_stmts, stmt))
174358 + return TREE_TYPE(node);
174359 +
174360 + switch (TYPE_MODE(type)) {
174361 + case QImode:
174362 + case HImode:
174363 + new_type = size_overflow_type_SI;
174364 + break;
174365 + case SImode:
174366 + new_type = size_overflow_type_DI;
174367 + break;
174368 + case DImode:
174369 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
174370 + new_type = TYPE_UNSIGNED(type) ? unsigned_intDI_type_node : intDI_type_node;
174371 + else
174372 + new_type = size_overflow_type_TI;
174373 + break;
174374 + case TImode:
174375 + gcc_assert(!TYPE_UNSIGNED(type));
174376 + new_type = size_overflow_type_TI;
174377 + break;
174378 + default:
174379 + debug_tree((tree)node);
174380 + error("%s: unsupported gcc configuration (%qE).", __func__, current_function_decl);
174381 + gcc_unreachable();
174382 + }
174383 +
174384 + if (TYPE_QUALS(type) != 0)
174385 + return build_qualified_type(new_type, TYPE_QUALS(type));
174386 + return new_type;
174387 +}
174388 +
174389 +tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before)
174390 +{
174391 + gimple_stmt_iterator gsi;
174392 + gimple new_stmt;
174393 +
174394 + if (rhs == NULL_TREE)
174395 + return NULL_TREE;
174396 +
174397 + gsi = gsi_for_stmt(stmt);
174398 + new_stmt = build_cast_stmt(visited, size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before, false);
174399 + if (gimple_assign_cast_p(new_stmt))
174400 + gimple_assign_set_rhs_code(new_stmt, CONVERT_EXPR);
174401 + pointer_set_insert(visited->my_stmts, new_stmt);
174402 +
174403 + return get_lhs(new_stmt);
174404 +}
174405 +
174406 +tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before)
174407 +{
174408 + tree lhs, dst_type;
174409 + gimple_stmt_iterator gsi;
174410 +
174411 + if (rhs1 == NULL_TREE) {
174412 + debug_gimple_stmt(oldstmt);
174413 + error("%s: rhs1 is NULL_TREE", __func__);
174414 + gcc_unreachable();
174415 + }
174416 +
174417 + switch (gimple_code(oldstmt)) {
174418 + case GIMPLE_ASM:
174419 + lhs = rhs1;
174420 + break;
174421 + case GIMPLE_CALL:
174422 + case GIMPLE_ASSIGN:
174423 + lhs = gimple_get_lhs(oldstmt);
174424 + break;
174425 + default:
174426 + debug_gimple_stmt(oldstmt);
174427 + gcc_unreachable();
174428 + }
174429 +
174430 + gsi = gsi_for_stmt(oldstmt);
174431 + pointer_set_insert(visited->stmts, oldstmt);
174432 + if (lookup_stmt_eh_lp(oldstmt) != 0) {
174433 + basic_block next_bb, cur_bb;
174434 + const_edge e;
174435 +
174436 + gcc_assert(before == false);
174437 + gcc_assert(stmt_can_throw_internal(oldstmt));
174438 + gcc_assert(gimple_code(oldstmt) == GIMPLE_CALL);
174439 + gcc_assert(!gsi_end_p(gsi));
174440 +
174441 + cur_bb = gimple_bb(oldstmt);
174442 + next_bb = cur_bb->next_bb;
174443 + e = find_edge(cur_bb, next_bb);
174444 + gcc_assert(e != NULL);
174445 + gcc_assert(e->flags & EDGE_FALLTHRU);
174446 +
174447 + gsi = gsi_after_labels(next_bb);
174448 + gcc_assert(!gsi_end_p(gsi));
174449 +
174450 + before = true;
174451 + oldstmt = gsi_stmt(gsi);
174452 + }
174453 +
174454 + if (is_gimple_constant(rhs1) && TREE_CODE_CLASS(gimple_assign_rhs_code(oldstmt)) == tcc_comparison)
174455 + dst_type = get_size_overflow_type(visited, oldstmt, rhs1);
174456 + else
174457 + dst_type = get_size_overflow_type(visited, oldstmt, lhs);
174458 +
174459 + if (is_gimple_constant(rhs1))
174460 + return cast_a_tree(dst_type, rhs1);
174461 + return cast_to_new_size_overflow_type(visited, oldstmt, rhs1, dst_type, before);
174462 +}
174463 +
174464 +tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3)
174465 +{
174466 + gassign *stmt;
174467 + gimple_stmt_iterator gsi;
174468 + tree size_overflow_type, new_var, lhs = gimple_assign_lhs(oldstmt);
174469 +
174470 + if (pointer_set_contains(visited->my_stmts, oldstmt))
174471 + return lhs;
174472 +
174473 + if (gimple_num_ops(oldstmt) != 4 && rhs1 == NULL_TREE) {
174474 + rhs1 = gimple_assign_rhs1(oldstmt);
174475 + rhs1 = create_assign(visited, oldstmt, rhs1, BEFORE_STMT);
174476 + }
174477 + if (gimple_num_ops(oldstmt) == 3 && rhs2 == NULL_TREE) {
174478 + rhs2 = gimple_assign_rhs2(oldstmt);
174479 + rhs2 = create_assign(visited, oldstmt, rhs2, BEFORE_STMT);
174480 + }
174481 +
174482 + stmt = as_a_gassign(gimple_copy(oldstmt));
174483 + gimple_set_location(stmt, gimple_location(oldstmt));
174484 + pointer_set_insert(visited->my_stmts, stmt);
174485 +
174486 + if (gimple_assign_rhs_code(oldstmt) == WIDEN_MULT_EXPR)
174487 + gimple_assign_set_rhs_code(stmt, MULT_EXPR);
174488 +
174489 + size_overflow_type = get_size_overflow_type(visited, oldstmt, node);
174490 +
174491 + new_var = create_new_var(size_overflow_type);
174492 + new_var = make_ssa_name(new_var, stmt);
174493 + gimple_assign_set_lhs(stmt, new_var);
174494 +
174495 + if (rhs1 != NULL_TREE)
174496 + gimple_assign_set_rhs1(stmt, rhs1);
174497 +
174498 + if (rhs2 != NULL_TREE)
174499 + gimple_assign_set_rhs2(stmt, rhs2);
174500 +#if BUILDING_GCC_VERSION >= 4006
174501 + if (rhs3 != NULL_TREE)
174502 + gimple_assign_set_rhs3(stmt, rhs3);
174503 +#endif
174504 + gimple_set_vuse(stmt, gimple_vuse(oldstmt));
174505 + gimple_set_vdef(stmt, gimple_vdef(oldstmt));
174506 +
174507 + gsi = gsi_for_stmt(oldstmt);
174508 + gsi_insert_after(&gsi, stmt, GSI_SAME_STMT);
174509 + update_stmt(stmt);
174510 + pointer_set_insert(visited->stmts, oldstmt);
174511 + return gimple_assign_lhs(stmt);
174512 +}
174513 +
174514 +static tree cast_parm_decl(struct visited *visited, tree phi_ssa_name, tree arg, tree size_overflow_type, basic_block bb)
174515 +{
174516 + const_gimple assign;
174517 + gimple_stmt_iterator gsi;
174518 + basic_block first_bb;
174519 +
174520 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
174521 +
174522 + if (bb->index == 0) {
174523 + first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
174524 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
174525 + set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
174526 + bb = first_bb;
174527 + }
174528 +
174529 + gsi = gsi_after_labels(bb);
174530 + assign = build_cast_stmt(visited, size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false);
174531 + pointer_set_insert(visited->my_stmts, assign);
174532 + return get_lhs(assign);
174533 +}
174534 +
174535 +static tree use_phi_ssa_name(struct visited *visited, tree ssa_name_var, tree new_arg)
174536 +{
174537 + gimple_stmt_iterator gsi;
174538 + const_gimple assign;
174539 + gimple def_stmt = get_def_stmt(new_arg);
174540 +
174541 + if (gimple_code(def_stmt) == GIMPLE_PHI) {
174542 + gsi = gsi_after_labels(gimple_bb(def_stmt));
174543 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, BEFORE_STMT, true);
174544 + } else {
174545 + gsi = gsi_for_stmt(def_stmt);
174546 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, AFTER_STMT, true);
174547 + }
174548 +
174549 + pointer_set_insert(visited->my_stmts, assign);
174550 + return get_lhs(assign);
174551 +}
174552 +
174553 +static tree cast_visited_phi_arg(struct visited *visited, tree ssa_name_var, tree arg, tree size_overflow_type)
174554 +{
174555 + basic_block bb;
174556 + gimple_stmt_iterator gsi;
174557 + const_gimple def_stmt;
174558 + const_gimple assign;
174559 +
174560 + def_stmt = get_def_stmt(arg);
174561 + bb = gimple_bb(def_stmt);
174562 + gcc_assert(bb->index != 0);
174563 + gsi = gsi_after_labels(bb);
174564 +
174565 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, BEFORE_STMT, false);
174566 + pointer_set_insert(visited->my_stmts, assign);
174567 + return get_lhs(assign);
174568 +}
174569 +
174570 +static tree create_new_phi_arg(struct visited *visited, tree ssa_name_var, tree new_arg, gphi *oldstmt, unsigned int i)
174571 +{
174572 + tree size_overflow_type;
174573 + tree arg;
174574 + const_gimple def_stmt;
174575 +
174576 + if (new_arg != NULL_TREE && is_gimple_constant(new_arg))
174577 + return new_arg;
174578 +
174579 + arg = gimple_phi_arg_def(oldstmt, i);
174580 + def_stmt = get_def_stmt(arg);
174581 + gcc_assert(def_stmt != NULL);
174582 + size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
174583 +
174584 + switch (gimple_code(def_stmt)) {
174585 + case GIMPLE_PHI:
174586 + return cast_visited_phi_arg(visited, ssa_name_var, arg, size_overflow_type);
174587 + case GIMPLE_NOP: {
174588 + basic_block bb;
174589 +
174590 + bb = gimple_phi_arg_edge(oldstmt, i)->src;
174591 + return cast_parm_decl(visited, ssa_name_var, arg, size_overflow_type, bb);
174592 + }
174593 + case GIMPLE_ASM: {
174594 + gimple_stmt_iterator gsi;
174595 + const_gimple assign;
174596 + gimple stmt = get_def_stmt(arg);
174597 +
174598 + gsi = gsi_for_stmt(stmt);
174599 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, AFTER_STMT, false);
174600 + pointer_set_insert(visited->my_stmts, assign);
174601 + return get_lhs(assign);
174602 + }
174603 + default:
174604 + gcc_assert(new_arg != NULL_TREE);
174605 + gcc_assert(types_compatible_p(TREE_TYPE(new_arg), size_overflow_type));
174606 + return use_phi_ssa_name(visited, ssa_name_var, new_arg);
174607 + }
174608 +}
174609 +
174610 +static gphi *overflow_create_phi_node(struct visited *visited, gphi *oldstmt, tree result)
174611 +{
174612 + basic_block bb;
174613 + gphi *phi;
174614 + gimple_seq seq;
174615 + gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
174616 +
174617 + bb = gsi_bb(gsi);
174618 +
174619 + if (result == NULL_TREE) {
174620 + tree old_result = gimple_phi_result(oldstmt);
174621 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, old_result);
174622 +
174623 + result = create_new_var(size_overflow_type);
174624 + }
174625 +
174626 + phi = as_a_gphi(create_phi_node(result, bb));
174627 + gimple_phi_set_result(phi, make_ssa_name(result, phi));
174628 + seq = phi_nodes(bb);
174629 + gsi = gsi_last(seq);
174630 + gsi_remove(&gsi, false);
174631 +
174632 + gsi = gsi_for_stmt(oldstmt);
174633 + gsi_insert_after(&gsi, phi, GSI_NEW_STMT);
174634 + gimple_set_bb(phi, bb);
174635 + return phi;
174636 +}
174637 +
174638 +#if BUILDING_GCC_VERSION <= 4007
174639 +static tree create_new_phi_node(struct visited *visited, VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
174640 +#else
174641 +static tree create_new_phi_node(struct visited *visited, vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gphi *oldstmt)
174642 +#endif
174643 +{
174644 + gphi *new_phi;
174645 + unsigned int i;
174646 + tree arg, result;
174647 + location_t loc = gimple_location(oldstmt);
174648 +
174649 +#if BUILDING_GCC_VERSION <= 4007
174650 + gcc_assert(!VEC_empty(tree, *args));
174651 +#else
174652 + gcc_assert(!args->is_empty());
174653 +#endif
174654 +
174655 + new_phi = overflow_create_phi_node(visited, oldstmt, ssa_name_var);
174656 + result = gimple_phi_result(new_phi);
174657 + ssa_name_var = SSA_NAME_VAR(result);
174658 +
174659 +#if BUILDING_GCC_VERSION <= 4007
174660 + FOR_EACH_VEC_ELT(tree, *args, i, arg) {
174661 +#else
174662 + FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
174663 +#endif
174664 + arg = create_new_phi_arg(visited, ssa_name_var, arg, oldstmt, i);
174665 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
174666 + }
174667 +
174668 +#if BUILDING_GCC_VERSION <= 4007
174669 + VEC_free(tree, heap, *args);
174670 +#else
174671 + vec_free(args);
174672 +#endif
174673 + update_stmt(new_phi);
174674 + pointer_set_insert(visited->my_stmts, new_phi);
174675 + return result;
174676 +}
174677 +
174678 +static tree handle_phi(struct visited *visited, interesting_stmts_t expand_from, tree orig_result)
174679 +{
174680 +#if BUILDING_GCC_VERSION <= 4007
174681 + VEC(tree, heap) *args = NULL;
174682 +#else
174683 + vec<tree, va_heap, vl_embed> *args = NULL;
174684 +#endif
174685 + unsigned int i, len;
174686 + tree ssa_name_var = NULL_TREE;
174687 + gphi *oldstmt = as_a_gphi(get_def_stmt(orig_result));
174688 +
174689 + len = gimple_phi_num_args(oldstmt);
174690 + pointer_set_insert(visited->stmts, oldstmt);
174691 + for (i = 0; i < len; i++) {
174692 + tree arg, new_arg;
174693 +
174694 + arg = gimple_phi_arg_def(oldstmt, i);
174695 + new_arg = expand(visited, expand_from, arg);
174696 +
174697 + if (ssa_name_var == NULL_TREE && new_arg != NULL_TREE)
174698 + ssa_name_var = SSA_NAME_VAR(new_arg);
174699 +
174700 + if (is_gimple_constant(arg)) {
174701 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
174702 +
174703 + new_arg = cast_a_tree(size_overflow_type, arg);
174704 + }
174705 +
174706 +#if BUILDING_GCC_VERSION <= 4007
174707 + VEC_safe_push(tree, heap, args, new_arg);
174708 +#else
174709 + vec_safe_push(args, new_arg);
174710 +#endif
174711 + }
174712 +
174713 +#if BUILDING_GCC_VERSION <= 4007
174714 + return create_new_phi_node(visited, &args, ssa_name_var, oldstmt);
174715 +#else
174716 + return create_new_phi_node(visited, args, ssa_name_var, oldstmt);
174717 +#endif
174718 +}
174719 +
174720 +static tree create_cast_assign(struct visited *visited, gassign *stmt)
174721 +{
174722 + tree rhs1 = gimple_assign_rhs1(stmt);
174723 + tree lhs = gimple_assign_lhs(stmt);
174724 + const_tree rhs1_type = TREE_TYPE(rhs1);
174725 + const_tree lhs_type = TREE_TYPE(lhs);
174726 +
174727 + if (TYPE_UNSIGNED(rhs1_type) == TYPE_UNSIGNED(lhs_type))
174728 + return create_assign(visited, stmt, lhs, AFTER_STMT);
174729 +
174730 + return create_assign(visited, stmt, rhs1, AFTER_STMT);
174731 +}
174732 +
174733 +static bool skip_lhs_cast_check(const gassign *stmt)
174734 +{
174735 + const_tree rhs = gimple_assign_rhs1(stmt);
174736 + const_gimple def_stmt = get_def_stmt(rhs);
174737 +
174738 + // 3.8.2 kernel/futex_compat.c compat_exit_robust_list(): get_user() 64 ulong -> int (compat_long_t), int max
174739 + if (gimple_code(def_stmt) == GIMPLE_ASM)
174740 + return true;
174741 +
174742 + if (is_const_plus_unsigned_signed_truncation(rhs))
174743 + return true;
174744 +
174745 + return false;
174746 +}
174747 +
174748 +static tree create_string_param(tree string)
174749 +{
174750 + tree i_type, a_type;
174751 + const int length = TREE_STRING_LENGTH(string);
174752 +
174753 + gcc_assert(length > 0);
174754 +
174755 + i_type = build_index_type(build_int_cst(NULL_TREE, length - 1));
174756 + a_type = build_array_type(char_type_node, i_type);
174757 +
174758 + TREE_TYPE(string) = a_type;
174759 + TREE_CONSTANT(string) = 1;
174760 + TREE_READONLY(string) = 1;
174761 +
174762 + return build1(ADDR_EXPR, ptr_type_node, string);
174763 +}
174764 +
174765 +static void insert_cond(basic_block cond_bb, tree arg, enum tree_code cond_code, tree type_value)
174766 +{
174767 + gcond *cond_stmt;
174768 + gimple_stmt_iterator gsi = gsi_last_bb(cond_bb);
174769 +
174770 + cond_stmt = gimple_build_cond(cond_code, arg, type_value, NULL_TREE, NULL_TREE);
174771 + gsi_insert_after(&gsi, cond_stmt, GSI_CONTINUE_LINKING);
174772 + update_stmt(cond_stmt);
174773 +}
174774 +
174775 +static void insert_cond_result(interesting_stmts_t expand_from, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
174776 +{
174777 + gcall *func_stmt;
174778 + const_gimple def_stmt;
174779 + const_tree loc_line;
174780 + tree loc_file, ssa_name, current_func;
174781 + expanded_location xloc;
174782 + char *ssa_name_buf;
174783 + int len;
174784 + struct cgraph_edge *edge;
174785 + struct cgraph_node *report_node;
174786 + int frequency;
174787 + gimple_stmt_iterator gsi = gsi_start_bb(bb_true);
174788 +
174789 + def_stmt = get_def_stmt(arg);
174790 + if (gimple_has_location(def_stmt))
174791 + xloc = expand_location(gimple_location(def_stmt));
174792 + else if (gimple_has_location(stmt))
174793 + xloc = expand_location(gimple_location(stmt));
174794 + else
174795 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
174796 +
174797 + loc_line = build_int_cstu(unsigned_type_node, xloc.line);
174798 +
174799 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
174800 + loc_file = create_string_param(loc_file);
174801 +
174802 + current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
174803 + current_func = create_string_param(current_func);
174804 +
174805 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
174806 + call_count++;
174807 + len = asprintf(&ssa_name_buf, "%s_%u %s, count: %u, decl: %s; num: %u; context: %s;\n", DECL_NAME_POINTER(SSA_NAME_VAR(arg)), SSA_NAME_VERSION(arg), min ? "min" : "max", call_count, expand_from->next_node->decl_name, expand_from->next_node->num, expand_from->next_node->context);
174808 + gcc_assert(len > 0);
174809 + ssa_name = build_string(len + 1, ssa_name_buf);
174810 + free(ssa_name_buf);
174811 + ssa_name = create_string_param(ssa_name);
174812 +
174813 + // void report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
174814 + func_stmt = as_a_gcall(gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name));
174815 + gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
174816 +
174817 + report_node = cgraph_get_create_node(report_size_overflow_decl);
174818 + gcc_assert(report_node);
174819 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
174820 +
174821 + edge = cgraph_create_edge(get_cnode(current_function_decl), report_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
174822 + gcc_assert(edge != NULL);
174823 +}
174824 +
174825 +static void insert_check_size_overflow(interesting_stmts_t expand_from, gimple stmt, enum tree_code cond_code, tree arg, tree type_value, bool before, bool min)
174826 +{
174827 + basic_block cond_bb, join_bb, bb_true;
174828 + edge e;
174829 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
174830 +
174831 + cond_bb = gimple_bb(stmt);
174832 + if (before)
174833 + gsi_prev(&gsi);
174834 + if (gsi_end_p(gsi))
174835 + e = split_block_after_labels(cond_bb);
174836 + else
174837 + e = split_block(cond_bb, gsi_stmt(gsi));
174838 + cond_bb = e->src;
174839 + join_bb = e->dest;
174840 + e->flags = EDGE_FALSE_VALUE;
174841 + e->probability = REG_BR_PROB_BASE;
174842 +
174843 + bb_true = create_empty_bb(cond_bb);
174844 + make_edge(cond_bb, bb_true, EDGE_TRUE_VALUE);
174845 + make_edge(cond_bb, join_bb, EDGE_FALSE_VALUE);
174846 + make_edge(bb_true, join_bb, EDGE_FALLTHRU);
174847 +
174848 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
174849 + set_immediate_dominator(CDI_DOMINATORS, bb_true, cond_bb);
174850 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
174851 +
174852 + if (current_loops != NULL) {
174853 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
174854 + add_bb_to_loop(bb_true, cond_bb->loop_father);
174855 + }
174856 +
174857 + insert_cond(cond_bb, arg, cond_code, type_value);
174858 + insert_cond_result(expand_from, bb_true, stmt, arg, min);
174859 +
174860 +// print_the_code_insertions(stmt);
174861 +}
174862 +
174863 +void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before)
174864 +{
174865 + const_tree rhs_type = TREE_TYPE(rhs);
174866 + tree cast_rhs_type, type_max_type, type_min_type, type_max, type_min;
174867 +
174868 + gcc_assert(rhs_type != NULL_TREE);
174869 + if (TREE_CODE(rhs_type) == POINTER_TYPE)
174870 + return;
174871 +
174872 + gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE);
174873 +
174874 + if (is_const_plus_unsigned_signed_truncation(rhs))
174875 + return;
174876 + if (is_gimple_assign(stmt) && neg_short_add_intentional_overflow(as_a_gassign(stmt)))
174877 + return;
174878 +
174879 + type_max = cast_a_tree(size_overflow_type, TYPE_MAX_VALUE(rhs_type));
174880 + // typemax (-1) < typemin (0)
174881 + if (TREE_OVERFLOW(type_max))
174882 + return;
174883 +
174884 + type_min = cast_a_tree(size_overflow_type, TYPE_MIN_VALUE(rhs_type));
174885 +
174886 + cast_rhs_type = TREE_TYPE(cast_rhs);
174887 + type_max_type = TREE_TYPE(type_max);
174888 + gcc_assert(types_compatible_p(cast_rhs_type, type_max_type));
174889 +
174890 + insert_check_size_overflow(expand_from, stmt, GT_EXPR, cast_rhs, type_max, before, MAX_CHECK);
174891 +
174892 + // special case: get_size_overflow_type(), 32, u64->s
174893 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && TYPE_UNSIGNED(size_overflow_type) && !TYPE_UNSIGNED(rhs_type))
174894 + return;
174895 +
174896 + type_min_type = TREE_TYPE(type_min);
174897 + gcc_assert(types_compatible_p(type_max_type, type_min_type));
174898 + insert_check_size_overflow(expand_from, stmt, LT_EXPR, cast_rhs, type_min, before, MIN_CHECK);
174899 +}
174900 +
174901 +static tree get_my_stmt_lhs(struct visited *visited, gimple stmt)
174902 +{
174903 + gimple_stmt_iterator gsi;
174904 + gimple next_stmt = NULL;
174905 +
174906 + gsi = gsi_for_stmt(stmt);
174907 +
174908 + do {
174909 + gsi_next(&gsi);
174910 + next_stmt = gsi_stmt(gsi);
174911 +
174912 + if (gimple_code(stmt) == GIMPLE_PHI && !pointer_set_contains(visited->my_stmts, next_stmt))
174913 + return NULL_TREE;
174914 +
174915 + if (pointer_set_contains(visited->my_stmts, next_stmt) && !pointer_set_contains(visited->skip_expr_casts, next_stmt))
174916 + break;
174917 +
174918 + gcc_assert(pointer_set_contains(visited->my_stmts, next_stmt));
174919 + } while (!gsi_end_p(gsi));
174920 +
174921 + gcc_assert(next_stmt);
174922 + return get_lhs(next_stmt);
174923 +}
174924 +
174925 +/* When the result of the negation is cast to a signed type then move
174926 + * the size_overflow cast check before negation.
174927 + * ssa:
174928 + * unsigned _588
174929 + * _588 = _587 >> 12;
174930 + * _589 = -_588;
174931 + * _590 = (long int) _589;
174932 + */
174933 +static bool handle_unsigned_neg_or_bit_not(struct visited *visited, interesting_stmts_t expand_from, const gassign *stmt)
174934 +{
174935 + gimple def_neg_stmt, neg_stmt;
174936 + tree lhs, new_neg_rhs;
174937 + const_tree rhs, neg_rhs;
174938 + enum tree_code rhs_code;
174939 +
174940 + rhs = gimple_assign_rhs1(stmt);
174941 + lhs = gimple_assign_lhs(stmt);
174942 + if (TYPE_UNSIGNED(TREE_TYPE(lhs)) || !TYPE_UNSIGNED(TREE_TYPE(rhs)))
174943 + return false;
174944 +
174945 + neg_stmt = get_def_stmt(rhs);
174946 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
174947 + return false;
174948 +
174949 + rhs_code = gimple_assign_rhs_code(neg_stmt);
174950 + if (rhs_code != BIT_NOT_EXPR && rhs_code != NEGATE_EXPR)
174951 + return false;
174952 +
174953 + neg_rhs = gimple_assign_rhs1(neg_stmt);
174954 + def_neg_stmt = get_def_stmt(neg_rhs);
174955 + if (!def_neg_stmt)
174956 + return false;
174957 +
174958 + new_neg_rhs = get_my_stmt_lhs(visited, def_neg_stmt);
174959 + check_size_overflow(expand_from, neg_stmt, TREE_TYPE(new_neg_rhs), new_neg_rhs, lhs, BEFORE_STMT);
174960 + pointer_set_insert(visited->no_cast_check, stmt);
174961 + return true;
174962 +}
174963 +
174964 +static tree create_cast_overflow_check(struct visited *visited, interesting_stmts_t expand_from, tree new_rhs1, gassign *stmt)
174965 +{
174966 + bool cast_lhs, cast_rhs;
174967 + tree lhs = gimple_assign_lhs(stmt);
174968 + tree rhs = gimple_assign_rhs1(stmt);
174969 + const_tree lhs_type = TREE_TYPE(lhs);
174970 + const_tree rhs_type = TREE_TYPE(rhs);
174971 + enum machine_mode lhs_mode = TYPE_MODE(lhs_type);
174972 + enum machine_mode rhs_mode = TYPE_MODE(rhs_type);
174973 + unsigned int lhs_size = GET_MODE_BITSIZE(lhs_mode);
174974 + unsigned int rhs_size = GET_MODE_BITSIZE(rhs_mode);
174975 +
174976 + static bool check_lhs[3][4] = {
174977 + // ss su us uu
174978 + { false, true, true, false }, // lhs > rhs
174979 + { false, false, false, false }, // lhs = rhs
174980 + { true, true, true, true }, // lhs < rhs
174981 + };
174982 +
174983 + static bool check_rhs[3][4] = {
174984 + // ss su us uu
174985 + { true, false, true, true }, // lhs > rhs
174986 + { true, false, true, true }, // lhs = rhs
174987 + { true, false, true, true }, // lhs < rhs
174988 + };
174989 +
174990 + if (handle_unsigned_neg_or_bit_not(visited, expand_from, stmt))
174991 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
174992 +
174993 + // skip lhs check on HI -> QI cast
174994 + if (rhs_mode == HImode && lhs_mode == QImode) {
174995 + pointer_set_insert(visited->no_cast_check, stmt);
174996 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
174997 + }
174998 +
174999 + // skip lhs check on signed SI -> HI cast or signed SI -> QI cast
175000 + if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode))
175001 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175002 +
175003 + if (lhs_size > rhs_size) {
175004 + cast_lhs = check_lhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175005 + cast_rhs = check_rhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175006 + } else if (lhs_size == rhs_size) {
175007 + cast_lhs = check_lhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175008 + cast_rhs = check_rhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175009 + } else {
175010 + cast_lhs = check_lhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175011 + cast_rhs = check_rhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
175012 + }
175013 +
175014 + if (!cast_lhs && !cast_rhs)
175015 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
175016 +
175017 + if (cast_lhs && !skip_lhs_cast_check(stmt))
175018 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, lhs, BEFORE_STMT);
175019 +
175020 + if (cast_rhs)
175021 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs, BEFORE_STMT);
175022 +
175023 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
175024 +}
175025 +
175026 +static tree handle_unary_rhs(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
175027 +{
175028 + enum tree_code rhs_code;
175029 + tree rhs1, new_rhs1, lhs = gimple_assign_lhs(stmt);
175030 +
175031 + if (pointer_set_contains(visited->my_stmts, stmt))
175032 + return lhs;
175033 +
175034 + rhs1 = gimple_assign_rhs1(stmt);
175035 + if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE)
175036 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175037 +
175038 + new_rhs1 = expand(visited, expand_from, rhs1);
175039 +
175040 + if (new_rhs1 == NULL_TREE)
175041 + return create_cast_assign(visited, stmt);
175042 +
175043 + if (pointer_set_contains(visited->no_cast_check, stmt))
175044 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
175045 +
175046 + rhs_code = gimple_assign_rhs_code(stmt);
175047 + if (rhs_code == BIT_NOT_EXPR || rhs_code == NEGATE_EXPR) {
175048 + tree size_overflow_type = get_size_overflow_type(visited, stmt, rhs1);
175049 +
175050 + new_rhs1 = cast_to_new_size_overflow_type(visited, stmt, new_rhs1, size_overflow_type, BEFORE_STMT);
175051 + check_size_overflow(expand_from, stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT);
175052 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175053 + }
175054 +
175055 + if (!gimple_assign_cast_p(stmt))
175056 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
175057 +
175058 + return create_cast_overflow_check(visited, expand_from, new_rhs1, stmt);
175059 +}
175060 +
175061 +static tree handle_unary_ops(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
175062 +{
175063 + tree rhs1, lhs = gimple_assign_lhs(stmt);
175064 + gimple def_stmt = get_def_stmt(lhs);
175065 +
175066 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP);
175067 + rhs1 = gimple_assign_rhs1(def_stmt);
175068 +
175069 + if (is_gimple_constant(rhs1))
175070 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
175071 +
175072 + switch (TREE_CODE(rhs1)) {
175073 + case SSA_NAME: {
175074 + tree ret = handle_unary_rhs(visited, expand_from, as_a_gassign(def_stmt));
175075 +
175076 + if (gimple_assign_cast_p(stmt))
175077 + unsigned_signed_cast_intentional_overflow(visited, stmt);
175078 + return ret;
175079 + }
175080 + case ARRAY_REF:
175081 + case BIT_FIELD_REF:
175082 + case ADDR_EXPR:
175083 + case COMPONENT_REF:
175084 + case INDIRECT_REF:
175085 +#if BUILDING_GCC_VERSION >= 4006
175086 + case MEM_REF:
175087 +#endif
175088 + case TARGET_MEM_REF:
175089 + case VIEW_CONVERT_EXPR:
175090 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
175091 + case PARM_DECL:
175092 + case VAR_DECL:
175093 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175094 +
175095 + default:
175096 + debug_gimple_stmt(def_stmt);
175097 + debug_tree(rhs1);
175098 + gcc_unreachable();
175099 + }
175100 +}
175101 +
175102 +static void __unused print_the_code_insertions(const_gimple stmt)
175103 +{
175104 + location_t loc = gimple_location(stmt);
175105 +
175106 + inform(loc, "Integer size_overflow check applied here.");
175107 +}
175108 +
175109 +static bool is_from_cast(const_tree node)
175110 +{
175111 + gimple def_stmt = get_def_stmt(node);
175112 +
175113 + if (!def_stmt)
175114 + return false;
175115 +
175116 + if (gimple_assign_cast_p(def_stmt))
175117 + return true;
175118 +
175119 + return false;
175120 +}
175121 +
175122 +// Skip duplication when there is a minus expr and the type of rhs1 or rhs2 is a pointer_type.
175123 +static bool is_ptr_diff(gassign *stmt)
175124 +{
175125 + const_tree rhs1, rhs2, ptr1_rhs, ptr2_rhs;
175126 +
175127 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
175128 + return false;
175129 +
175130 + rhs1 = gimple_assign_rhs1(stmt);
175131 + if (!is_from_cast(rhs1))
175132 + return false;
175133 +
175134 + rhs2 = gimple_assign_rhs2(stmt);
175135 + if (!is_from_cast(rhs2))
175136 + return false;
175137 +
175138 + ptr1_rhs = gimple_assign_rhs1(get_def_stmt(rhs1));
175139 + ptr2_rhs = gimple_assign_rhs1(get_def_stmt(rhs2));
175140 +
175141 + if (TREE_CODE(TREE_TYPE(ptr1_rhs)) != POINTER_TYPE && TREE_CODE(TREE_TYPE(ptr2_rhs)) != POINTER_TYPE)
175142 + return false;
175143 +
175144 + return true;
175145 +}
175146 +
175147 +static tree handle_comparison_code_class(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt, tree new_rhs1, tree new_rhs2)
175148 +{
175149 + tree rhs1, rhs2, lhs;
175150 +
175151 + rhs1 = gimple_assign_rhs1(stmt);
175152 + if (!is_gimple_constant(rhs1) && new_rhs1 != NULL_TREE)
175153 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs1, BEFORE_STMT);
175154 +
175155 + lhs = gimple_assign_lhs(stmt);
175156 + if (new_rhs2 == NULL_TREE)
175157 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175158 +
175159 + rhs2 = gimple_assign_rhs2(stmt);
175160 + if (!is_gimple_constant(rhs2))
175161 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs2), new_rhs2, rhs2, BEFORE_STMT);
175162 + return create_assign(visited, stmt, lhs, AFTER_STMT);
175163 +}
175164 +
175165 +static tree handle_binary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
175166 +{
175167 + enum intentional_overflow_type res;
175168 + tree rhs1, rhs2, new_lhs;
175169 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
175170 + tree new_rhs1 = NULL_TREE;
175171 + tree new_rhs2 = NULL_TREE;
175172 +
175173 + if (is_ptr_diff(def_stmt))
175174 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
175175 +
175176 + rhs1 = gimple_assign_rhs1(def_stmt);
175177 + rhs2 = gimple_assign_rhs2(def_stmt);
175178 +
175179 + /* no DImode/TImode division in the 32/64 bit kernel */
175180 + switch (gimple_assign_rhs_code(def_stmt)) {
175181 + case RDIV_EXPR:
175182 + case TRUNC_DIV_EXPR:
175183 + case CEIL_DIV_EXPR:
175184 + case FLOOR_DIV_EXPR:
175185 + case ROUND_DIV_EXPR:
175186 + case TRUNC_MOD_EXPR:
175187 + case CEIL_MOD_EXPR:
175188 + case FLOOR_MOD_EXPR:
175189 + case ROUND_MOD_EXPR:
175190 + case EXACT_DIV_EXPR:
175191 + case POINTER_PLUS_EXPR:
175192 + case BIT_AND_EXPR:
175193 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
175194 + default:
175195 + break;
175196 + }
175197 +
175198 + new_lhs = handle_integer_truncation(visited, expand_from, lhs);
175199 + if (new_lhs != NULL_TREE)
175200 + return new_lhs;
175201 +
175202 + if (TREE_CODE(rhs1) == SSA_NAME)
175203 + new_rhs1 = expand(visited, expand_from, rhs1);
175204 + if (TREE_CODE(rhs2) == SSA_NAME)
175205 + new_rhs2 = expand(visited, expand_from, rhs2);
175206 +
175207 + res = add_mul_intentional_overflow(def_stmt);
175208 + if (res != NO_INTENTIONAL_OVERFLOW) {
175209 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
175210 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), res);
175211 + return new_lhs;
175212 + }
175213 +
175214 + if (skip_expr_on_double_type(def_stmt)) {
175215 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
175216 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), NO_INTENTIONAL_OVERFLOW);
175217 + return new_lhs;
175218 + }
175219 +
175220 + if (is_a_neg_overflow(def_stmt, rhs2))
175221 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs1, NULL_TREE);
175222 + if (is_a_neg_overflow(def_stmt, rhs1))
175223 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs2, new_rhs2);
175224 +
175225 +
175226 + if (is_a_constant_overflow(def_stmt, rhs2))
175227 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, NULL_TREE);
175228 + if (is_a_constant_overflow(def_stmt, rhs1))
175229 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, new_rhs2);
175230 +
175231 + // the const is between 0 and (signed) MAX
175232 + if (is_gimple_constant(rhs1))
175233 + new_rhs1 = create_assign(visited, def_stmt, rhs1, BEFORE_STMT);
175234 + if (is_gimple_constant(rhs2))
175235 + new_rhs2 = create_assign(visited, def_stmt, rhs2, BEFORE_STMT);
175236 +
175237 + if (TREE_CODE_CLASS(gimple_assign_rhs_code(def_stmt)) == tcc_comparison)
175238 + return handle_comparison_code_class(visited, expand_from, def_stmt, new_rhs1, new_rhs2);
175239 +
175240 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
175241 +}
175242 +
175243 +#if BUILDING_GCC_VERSION >= 4006
175244 +static tree get_new_rhs(struct visited *visited, interesting_stmts_t expand_from, tree size_overflow_type, tree rhs)
175245 +{
175246 + if (is_gimple_constant(rhs))
175247 + return cast_a_tree(size_overflow_type, rhs);
175248 + if (TREE_CODE(rhs) != SSA_NAME)
175249 + return NULL_TREE;
175250 + return expand(visited, expand_from, rhs);
175251 +}
175252 +
175253 +static tree handle_ternary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
175254 +{
175255 + tree rhs1, rhs2, rhs3, new_rhs1, new_rhs2, new_rhs3, size_overflow_type;
175256 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
175257 +
175258 + size_overflow_type = get_size_overflow_type(visited, def_stmt, lhs);
175259 +
175260 + rhs1 = gimple_assign_rhs1(def_stmt);
175261 + rhs2 = gimple_assign_rhs2(def_stmt);
175262 + rhs3 = gimple_assign_rhs3(def_stmt);
175263 + new_rhs1 = get_new_rhs(visited, expand_from, size_overflow_type, rhs1);
175264 + new_rhs2 = get_new_rhs(visited, expand_from, size_overflow_type, rhs2);
175265 + new_rhs3 = get_new_rhs(visited, expand_from, size_overflow_type, rhs3);
175266 +
175267 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, new_rhs3);
175268 +}
175269 +#endif
175270 +
175271 +static tree expand_visited(struct visited *visited, gimple def_stmt)
175272 +{
175273 + gimple_stmt_iterator gsi;
175274 + enum gimple_code code = gimple_code(def_stmt);
175275 +
175276 + if (code == GIMPLE_ASM)
175277 + return NULL_TREE;
175278 +
175279 + gsi = gsi_for_stmt(def_stmt);
175280 + gsi_next(&gsi);
175281 +
175282 + if (gimple_code(def_stmt) == GIMPLE_PHI && gsi_end_p(gsi))
175283 + return NULL_TREE;
175284 + return get_my_stmt_lhs(visited, def_stmt);
175285 +}
175286 +
175287 +tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
175288 +{
175289 + gimple def_stmt;
175290 +
175291 + def_stmt = get_def_stmt(lhs);
175292 +
175293 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
175294 + return NULL_TREE;
175295 +
175296 + if (pointer_set_contains(visited->my_stmts, def_stmt))
175297 + return lhs;
175298 +
175299 + if (pointer_set_contains(visited->stmts, def_stmt))
175300 + return expand_visited(visited, def_stmt);
175301 +
175302 + if (is_gimple_constant(lhs))
175303 + return NULL_TREE;
175304 + if (skip_types(lhs))
175305 + return NULL_TREE;
175306 +
175307 + switch (gimple_code(def_stmt)) {
175308 + case GIMPLE_PHI:
175309 + return handle_phi(visited, expand_from, lhs);
175310 + case GIMPLE_CALL:
175311 + case GIMPLE_ASM:
175312 + if (is_size_overflow_asm(def_stmt))
175313 + return expand(visited, expand_from, get_size_overflow_asm_input(as_a_gasm(def_stmt)));
175314 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
175315 + case GIMPLE_ASSIGN:
175316 + switch (gimple_num_ops(def_stmt)) {
175317 + case 2:
175318 + return handle_unary_ops(visited, expand_from, as_a_gassign(def_stmt));
175319 + case 3:
175320 + return handle_binary_ops(visited, expand_from, lhs);
175321 +#if BUILDING_GCC_VERSION >= 4006
175322 + case 4:
175323 + return handle_ternary_ops(visited, expand_from, lhs);
175324 +#endif
175325 + }
175326 + default:
175327 + debug_gimple_stmt(def_stmt);
175328 + error("%s: unknown gimple code", __func__);
175329 + gcc_unreachable();
175330 + }
175331 +}
175332 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
175333 new file mode 100644
175334 index 0000000..dd62d1c
175335 --- /dev/null
175336 +++ b/tools/gcc/stackleak_plugin.c
175337 @@ -0,0 +1,444 @@
175338 +/*
175339 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
175340 + * Licensed under the GPL v2
175341 + *
175342 + * Note: the choice of the license means that the compilation process is
175343 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
175344 + * but for the kernel it doesn't matter since it doesn't link against
175345 + * any of the gcc libraries
175346 + *
175347 + * gcc plugin to help implement various PaX features
175348 + *
175349 + * - track lowest stack pointer
175350 + *
175351 + * TODO:
175352 + * - initialize all local variables
175353 + *
175354 + * BUGS:
175355 + * - none known
175356 + */
175357 +
175358 +#include "gcc-common.h"
175359 +
175360 +int plugin_is_GPL_compatible;
175361 +
175362 +static int track_frame_size = -1;
175363 +static const char track_function[] = "pax_track_stack";
175364 +static const char check_function[] = "pax_check_alloca";
175365 +static GTY(()) tree track_function_decl;
175366 +static GTY(()) tree check_function_decl;
175367 +static bool init_locals;
175368 +
175369 +static struct plugin_info stackleak_plugin_info = {
175370 + .version = "201512150205",
175371 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
175372 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
175373 +};
175374 +
175375 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
175376 +{
175377 + gimple stmt;
175378 + gcall *check_alloca;
175379 + tree alloca_size;
175380 + cgraph_node_ptr node;
175381 + int frequency;
175382 + basic_block bb;
175383 +
175384 + // insert call to void pax_check_alloca(unsigned long size)
175385 + alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
175386 + stmt = gimple_build_call(check_function_decl, 1, alloca_size);
175387 + check_alloca = as_a_gcall(stmt);
175388 + gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
175389 +
175390 + // update the cgraph
175391 + bb = gimple_bb(check_alloca);
175392 + node = cgraph_get_create_node(check_function_decl);
175393 + gcc_assert(node);
175394 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
175395 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, check_alloca, bb->count, frequency, bb->loop_depth);
175396 +}
175397 +
175398 +static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi, bool after)
175399 +{
175400 + gimple stmt;
175401 + gcall *track_stack;
175402 + cgraph_node_ptr node;
175403 + int frequency;
175404 + basic_block bb;
175405 +
175406 + // insert call to void pax_track_stack(void)
175407 + stmt = gimple_build_call(track_function_decl, 0);
175408 + track_stack = as_a_gcall(stmt);
175409 + if (after)
175410 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
175411 + else
175412 + gsi_insert_before(gsi, track_stack, GSI_SAME_STMT);
175413 +
175414 + // update the cgraph
175415 + bb = gimple_bb(track_stack);
175416 + node = cgraph_get_create_node(track_function_decl);
175417 + gcc_assert(node);
175418 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
175419 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, track_stack, bb->count, frequency, bb->loop_depth);
175420 +}
175421 +
175422 +static bool is_alloca(gimple stmt)
175423 +{
175424 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
175425 + return true;
175426 +
175427 +#if BUILDING_GCC_VERSION >= 4007
175428 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
175429 + return true;
175430 +#endif
175431 +
175432 + return false;
175433 +}
175434 +
175435 +static unsigned int execute_stackleak_tree_instrument(void)
175436 +{
175437 + basic_block bb, entry_bb;
175438 + bool prologue_instrumented = false, is_leaf = true;
175439 +
175440 + entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
175441 +
175442 + // 1. loop through BBs and GIMPLE statements
175443 + FOR_EACH_BB_FN(bb, cfun) {
175444 + gimple_stmt_iterator gsi;
175445 +
175446 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
175447 + gimple stmt;
175448 +
175449 + stmt = gsi_stmt(gsi);
175450 +
175451 + if (is_gimple_call(stmt))
175452 + is_leaf = false;
175453 +
175454 + // gimple match: align 8 built-in BUILT_IN_NORMAL:BUILT_IN_ALLOCA attributes <tree_list 0xb7576450>
175455 + if (!is_alloca(stmt))
175456 + continue;
175457 +
175458 + // 2. insert stack overflow check before each __builtin_alloca call
175459 + stackleak_check_alloca(&gsi);
175460 +
175461 + // 3. insert track call after each __builtin_alloca call
175462 + stackleak_add_instrumentation(&gsi, true);
175463 + if (bb == entry_bb)
175464 + prologue_instrumented = true;
175465 + }
175466 + }
175467 +
175468 + // special cases for some bad linux code: taking the address of static inline functions will materialize them
175469 + // but we mustn't instrument some of them as the resulting stack alignment required by the function call ABI
175470 + // will break other assumptions regarding the expected (but not otherwise enforced) register clobbering ABI.
175471 + // case in point: native_save_fl on amd64 when optimized for size clobbers rdx if it were instrumented here.
175472 + if (is_leaf && !TREE_PUBLIC(current_function_decl) && DECL_DECLARED_INLINE_P(current_function_decl))
175473 + return 0;
175474 + if (is_leaf && !strncmp(IDENTIFIER_POINTER(DECL_NAME(current_function_decl)), "_paravirt_", 10))
175475 + return 0;
175476 +
175477 + // 4. insert track call at the beginning
175478 + if (!prologue_instrumented) {
175479 + gimple_stmt_iterator gsi;
175480 +
175481 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175482 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
175483 + if (!single_pred_p(bb)) {
175484 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
175485 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175486 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175487 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
175488 + }
175489 + gsi = gsi_after_labels(bb);
175490 + stackleak_add_instrumentation(&gsi, false);
175491 + }
175492 +
175493 + return 0;
175494 +}
175495 +
175496 +static unsigned int execute_stackleak_final(void)
175497 +{
175498 + rtx_insn *insn, *next;
175499 +
175500 + if (cfun->calls_alloca)
175501 + return 0;
175502 +
175503 + // keep calls only if function frame is big enough
175504 + if (get_frame_size() >= track_frame_size)
175505 + return 0;
175506 +
175507 + // 1. find pax_track_stack calls
175508 + for (insn = get_insns(); insn; insn = next) {
175509 + // rtl match: (call_insn 8 7 9 3 (call (mem (symbol_ref ("pax_track_stack") [flags 0x41] <function_decl 0xb7470e80 pax_track_stack>) [0 S1 A8]) (4)) -1 (nil) (nil))
175510 + rtx body;
175511 +
175512 + next = NEXT_INSN(insn);
175513 + if (!CALL_P(insn))
175514 + continue;
175515 + body = PATTERN(insn);
175516 + if (GET_CODE(body) != CALL)
175517 + continue;
175518 + body = XEXP(body, 0);
175519 + if (GET_CODE(body) != MEM)
175520 + continue;
175521 + body = XEXP(body, 0);
175522 + if (GET_CODE(body) != SYMBOL_REF)
175523 + continue;
175524 +// if (strcmp(XSTR(body, 0), track_function))
175525 + if (SYMBOL_REF_DECL(body) != track_function_decl)
175526 + continue;
175527 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
175528 + // 2. delete call
175529 + delete_insn_and_edges(insn);
175530 +#if BUILDING_GCC_VERSION >= 4007
175531 + if (GET_CODE(next) == NOTE && NOTE_KIND(next) == NOTE_INSN_CALL_ARG_LOCATION) {
175532 + insn = next;
175533 + next = NEXT_INSN(insn);
175534 + delete_insn_and_edges(insn);
175535 + }
175536 +#endif
175537 + }
175538 +
175539 +// print_simple_rtl(stderr, get_insns());
175540 +// print_rtl(stderr, get_insns());
175541 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
175542 +
175543 + return 0;
175544 +}
175545 +
175546 +static bool gate_stackleak_track_stack(void)
175547 +{
175548 + tree section;
175549 +
175550 + if (ix86_cmodel != CM_KERNEL)
175551 + return false;
175552 +
175553 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
175554 + if (section && TREE_VALUE(section)) {
175555 + section = TREE_VALUE(TREE_VALUE(section));
175556 +
175557 + if (!strncmp(TREE_STRING_POINTER(section), ".init.text", 10))
175558 + return false;
175559 + if (!strncmp(TREE_STRING_POINTER(section), ".devinit.text", 13))
175560 + return false;
175561 + if (!strncmp(TREE_STRING_POINTER(section), ".cpuinit.text", 13))
175562 + return false;
175563 + if (!strncmp(TREE_STRING_POINTER(section), ".meminit.text", 13))
175564 + return false;
175565 + }
175566 +
175567 + return track_frame_size >= 0;
175568 +}
175569 +
175570 +static void stackleak_start_unit(void *gcc_data, void *user_data)
175571 +{
175572 + tree fntype;
175573 +
175574 + // void pax_track_stack(void)
175575 + fntype = build_function_type_list(void_type_node, NULL_TREE);
175576 + track_function_decl = build_fn_decl(track_function, fntype);
175577 + DECL_ASSEMBLER_NAME(track_function_decl); // for LTO
175578 + TREE_PUBLIC(track_function_decl) = 1;
175579 + TREE_USED(track_function_decl) = 1;
175580 + DECL_EXTERNAL(track_function_decl) = 1;
175581 + DECL_ARTIFICIAL(track_function_decl) = 1;
175582 + DECL_PRESERVE_P(track_function_decl) = 1;
175583 +
175584 + // void pax_check_alloca(unsigned long)
175585 + fntype = build_function_type_list(void_type_node, long_unsigned_type_node, NULL_TREE);
175586 + check_function_decl = build_fn_decl(check_function, fntype);
175587 + DECL_ASSEMBLER_NAME(check_function_decl); // for LTO
175588 + TREE_PUBLIC(check_function_decl) = 1;
175589 + TREE_USED(check_function_decl) = 1;
175590 + DECL_EXTERNAL(check_function_decl) = 1;
175591 + DECL_ARTIFICIAL(check_function_decl) = 1;
175592 + DECL_PRESERVE_P(check_function_decl) = 1;
175593 +}
175594 +
175595 +#if BUILDING_GCC_VERSION >= 4009
175596 +namespace {
175597 +static const struct pass_data stackleak_tree_instrument_pass_data = {
175598 +#else
175599 +static struct gimple_opt_pass stackleak_tree_instrument_pass = {
175600 + .pass = {
175601 +#endif
175602 + .type = GIMPLE_PASS,
175603 + .name = "stackleak_tree_instrument",
175604 +#if BUILDING_GCC_VERSION >= 4008
175605 + .optinfo_flags = OPTGROUP_NONE,
175606 +#endif
175607 +#if BUILDING_GCC_VERSION >= 5000
175608 +#elif BUILDING_GCC_VERSION == 4009
175609 + .has_gate = true,
175610 + .has_execute = true,
175611 +#else
175612 + .gate = gate_stackleak_track_stack,
175613 + .execute = execute_stackleak_tree_instrument,
175614 + .sub = NULL,
175615 + .next = NULL,
175616 + .static_pass_number = 0,
175617 +#endif
175618 + .tv_id = TV_NONE,
175619 + .properties_required = PROP_gimple_leh | PROP_cfg,
175620 + .properties_provided = 0,
175621 + .properties_destroyed = 0,
175622 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
175623 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa | TODO_rebuild_cgraph_edges
175624 +#if BUILDING_GCC_VERSION < 4009
175625 + }
175626 +#endif
175627 +};
175628 +
175629 +#if BUILDING_GCC_VERSION >= 4009
175630 +static const struct pass_data stackleak_final_rtl_opt_pass_data = {
175631 +#else
175632 +static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
175633 + .pass = {
175634 +#endif
175635 + .type = RTL_PASS,
175636 + .name = "stackleak_final",
175637 +#if BUILDING_GCC_VERSION >= 4008
175638 + .optinfo_flags = OPTGROUP_NONE,
175639 +#endif
175640 +#if BUILDING_GCC_VERSION >= 5000
175641 +#elif BUILDING_GCC_VERSION == 4009
175642 + .has_gate = true,
175643 + .has_execute = true,
175644 +#else
175645 + .gate = gate_stackleak_track_stack,
175646 + .execute = execute_stackleak_final,
175647 + .sub = NULL,
175648 + .next = NULL,
175649 + .static_pass_number = 0,
175650 +#endif
175651 + .tv_id = TV_NONE,
175652 + .properties_required = 0,
175653 + .properties_provided = 0,
175654 + .properties_destroyed = 0,
175655 + .todo_flags_start = 0,
175656 + .todo_flags_finish = TODO_dump_func
175657 +#if BUILDING_GCC_VERSION < 4009
175658 + }
175659 +#endif
175660 +};
175661 +
175662 +#if BUILDING_GCC_VERSION >= 4009
175663 +class stackleak_tree_instrument_pass : public gimple_opt_pass {
175664 +public:
175665 + stackleak_tree_instrument_pass() : gimple_opt_pass(stackleak_tree_instrument_pass_data, g) {}
175666 +#if BUILDING_GCC_VERSION >= 5000
175667 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
175668 + virtual unsigned int execute(function *) { return execute_stackleak_tree_instrument(); }
175669 +#else
175670 + bool gate() { return gate_stackleak_track_stack(); }
175671 + unsigned int execute() { return execute_stackleak_tree_instrument(); }
175672 +#endif
175673 +};
175674 +
175675 +class stackleak_final_rtl_opt_pass : public rtl_opt_pass {
175676 +public:
175677 + stackleak_final_rtl_opt_pass() : rtl_opt_pass(stackleak_final_rtl_opt_pass_data, g) {}
175678 +#if BUILDING_GCC_VERSION >= 5000
175679 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
175680 + virtual unsigned int execute(function *) { return execute_stackleak_final(); }
175681 +#else
175682 + bool gate() { return gate_stackleak_track_stack(); }
175683 + unsigned int execute() { return execute_stackleak_final(); }
175684 +#endif
175685 +};
175686 +}
175687 +
175688 +static opt_pass *make_stackleak_tree_instrument_pass(void)
175689 +{
175690 + return new stackleak_tree_instrument_pass();
175691 +}
175692 +
175693 +static opt_pass *make_stackleak_final_rtl_opt_pass(void)
175694 +{
175695 + return new stackleak_final_rtl_opt_pass();
175696 +}
175697 +#else
175698 +static struct opt_pass *make_stackleak_tree_instrument_pass(void)
175699 +{
175700 + return &stackleak_tree_instrument_pass.pass;
175701 +}
175702 +
175703 +static struct opt_pass *make_stackleak_final_rtl_opt_pass(void)
175704 +{
175705 + return &stackleak_final_rtl_opt_pass.pass;
175706 +}
175707 +#endif
175708 +
175709 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
175710 +{
175711 + const char * const plugin_name = plugin_info->base_name;
175712 + const int argc = plugin_info->argc;
175713 + const struct plugin_argument * const argv = plugin_info->argv;
175714 + int i;
175715 + struct register_pass_info stackleak_tree_instrument_pass_info;
175716 + struct register_pass_info stackleak_final_pass_info;
175717 + static const struct ggc_root_tab gt_ggc_r_gt_stackleak[] = {
175718 + {
175719 + .base = &track_function_decl,
175720 + .nelt = 1,
175721 + .stride = sizeof(track_function_decl),
175722 + .cb = &gt_ggc_mx_tree_node,
175723 + .pchw = &gt_pch_nx_tree_node
175724 + },
175725 + {
175726 + .base = &check_function_decl,
175727 + .nelt = 1,
175728 + .stride = sizeof(check_function_decl),
175729 + .cb = &gt_ggc_mx_tree_node,
175730 + .pchw = &gt_pch_nx_tree_node
175731 + },
175732 + LAST_GGC_ROOT_TAB
175733 + };
175734 +
175735 + stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
175736 +// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
175737 + stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
175738 + stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
175739 + stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
175740 +
175741 + stackleak_final_pass_info.pass = make_stackleak_final_rtl_opt_pass();
175742 + stackleak_final_pass_info.reference_pass_name = "final";
175743 + stackleak_final_pass_info.ref_pass_instance_number = 1;
175744 + stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
175745 +
175746 + if (!plugin_default_version_check(version, &gcc_version)) {
175747 + error(G_("incompatible gcc/plugin versions"));
175748 + return 1;
175749 + }
175750 +
175751 + register_callback(plugin_name, PLUGIN_INFO, NULL, &stackleak_plugin_info);
175752 +
175753 + for (i = 0; i < argc; ++i) {
175754 + if (!strcmp(argv[i].key, "track-lowest-sp")) {
175755 + if (!argv[i].value) {
175756 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
175757 + continue;
175758 + }
175759 + track_frame_size = atoi(argv[i].value);
175760 + if (argv[i].value[0] < '0' || argv[i].value[0] > '9' || track_frame_size < 0)
175761 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
175762 + continue;
175763 + }
175764 + if (!strcmp(argv[i].key, "initialize-locals")) {
175765 + if (argv[i].value) {
175766 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
175767 + continue;
175768 + }
175769 + init_locals = true;
175770 + continue;
175771 + }
175772 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
175773 + }
175774 +
175775 + register_callback(plugin_name, PLUGIN_START_UNIT, &stackleak_start_unit, NULL);
175776 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_stackleak);
175777 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_tree_instrument_pass_info);
175778 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_final_pass_info);
175779 +
175780 + return 0;
175781 +}
175782 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
175783 new file mode 100644
175784 index 0000000..c39261d
175785 --- /dev/null
175786 +++ b/tools/gcc/structleak_plugin.c
175787 @@ -0,0 +1,290 @@
175788 +/*
175789 + * Copyright 2013-2015 by PaX Team <pageexec@freemail.hu>
175790 + * Licensed under the GPL v2
175791 + *
175792 + * Note: the choice of the license means that the compilation process is
175793 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
175794 + * but for the kernel it doesn't matter since it doesn't link against
175795 + * any of the gcc libraries
175796 + *
175797 + * gcc plugin to forcibly initialize certain local variables that could
175798 + * otherwise leak kernel stack to userland if they aren't properly initialized
175799 + * by later code
175800 + *
175801 + * Homepage: http://pax.grsecurity.net/
175802 + *
175803 + * Usage:
175804 + * $ # for 4.5/4.6/C based 4.7
175805 + * $ gcc -I`gcc -print-file-name=plugin`/include -I`gcc -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c
175806 + * $ # for C++ based 4.7/4.8+
175807 + * $ g++ -I`g++ -print-file-name=plugin`/include -I`g++ -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o structleak_plugin.so structleak_plugin.c
175808 + * $ gcc -fplugin=./structleak_plugin.so test.c -O2
175809 + *
175810 + * TODO: eliminate redundant initializers
175811 + * increase type coverage
175812 + */
175813 +
175814 +#include "gcc-common.h"
175815 +
175816 +// unused C type flag in all versions 4.5-6
175817 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_5(TYPE)
175818 +
175819 +int plugin_is_GPL_compatible;
175820 +
175821 +static struct plugin_info structleak_plugin_info = {
175822 + .version = "201512150035",
175823 + .help = "disable\tdo not activate plugin\n",
175824 +};
175825 +
175826 +static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
175827 +{
175828 + *no_add_attrs = true;
175829 +
175830 + // check for types? for now accept everything linux has to offer
175831 + if (TREE_CODE(*node) != FIELD_DECL)
175832 + return NULL_TREE;
175833 +
175834 + *no_add_attrs = false;
175835 + return NULL_TREE;
175836 +}
175837 +
175838 +static struct attribute_spec user_attr = {
175839 + .name = "user",
175840 + .min_length = 0,
175841 + .max_length = 0,
175842 + .decl_required = false,
175843 + .type_required = false,
175844 + .function_type_required = false,
175845 + .handler = handle_user_attribute,
175846 +#if BUILDING_GCC_VERSION >= 4007
175847 + .affects_type_identity = true
175848 +#endif
175849 +};
175850 +
175851 +static void register_attributes(void *event_data, void *data)
175852 +{
175853 + register_attribute(&user_attr);
175854 +// register_attribute(&force_attr);
175855 +}
175856 +
175857 +static tree get_field_type(tree field)
175858 +{
175859 + return strip_array_types(TREE_TYPE(field));
175860 +}
175861 +
175862 +static bool is_userspace_type(tree type)
175863 +{
175864 + tree field;
175865 +
175866 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
175867 + tree fieldtype = get_field_type(field);
175868 + enum tree_code code = TREE_CODE(fieldtype);
175869 +
175870 + if (code == RECORD_TYPE || code == UNION_TYPE)
175871 + if (is_userspace_type(fieldtype))
175872 + return true;
175873 +
175874 + if (lookup_attribute("user", DECL_ATTRIBUTES(field)))
175875 + return true;
175876 + }
175877 + return false;
175878 +}
175879 +
175880 +static void finish_type(void *event_data, void *data)
175881 +{
175882 + tree type = (tree)event_data;
175883 +
175884 + if (type == NULL_TREE || type == error_mark_node)
175885 + return;
175886 +
175887 +#if BUILDING_GCC_VERSION >= 5000
175888 + if (TREE_CODE(type) == ENUMERAL_TYPE)
175889 + return;
175890 +#endif
175891 +
175892 + if (TYPE_USERSPACE(type))
175893 + return;
175894 +
175895 + if (is_userspace_type(type))
175896 + TYPE_USERSPACE(type) = 1;
175897 +}
175898 +
175899 +static void initialize(tree var)
175900 +{
175901 + basic_block bb;
175902 + gimple_stmt_iterator gsi;
175903 + tree initializer;
175904 + gimple init_stmt;
175905 +
175906 + // this is the original entry bb before the forced split
175907 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
175908 +
175909 + // first check if the variable is already initialized, warn otherwise
175910 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
175911 + gimple stmt = gsi_stmt(gsi);
175912 + tree rhs1;
175913 +
175914 + // we're looking for an assignment of a single rhs...
175915 + if (!gimple_assign_single_p(stmt))
175916 + continue;
175917 + rhs1 = gimple_assign_rhs1(stmt);
175918 +#if BUILDING_GCC_VERSION >= 4007
175919 + // ... of a non-clobbering expression...
175920 + if (TREE_CLOBBER_P(rhs1))
175921 + continue;
175922 +#endif
175923 + // ... to our variable...
175924 + if (gimple_get_lhs(stmt) != var)
175925 + continue;
175926 + // if it's an initializer then we're good
175927 + if (TREE_CODE(rhs1) == CONSTRUCTOR)
175928 + return;
175929 + }
175930 +
175931 + // these aren't the 0days you're looking for
175932 +// inform(DECL_SOURCE_LOCATION(var), "userspace variable will be forcibly initialized");
175933 +
175934 + // build the initializer expression
175935 + initializer = build_constructor(TREE_TYPE(var), NULL);
175936 +
175937 + // build the initializer stmt
175938 + init_stmt = gimple_build_assign(var, initializer);
175939 + gsi = gsi_after_labels(single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175940 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
175941 + update_stmt(init_stmt);
175942 +}
175943 +
175944 +static unsigned int handle_function(void)
175945 +{
175946 + basic_block bb;
175947 + unsigned int ret = 0;
175948 + tree var;
175949 + unsigned int i;
175950 +
175951 + // split the first bb where we can put the forced initializers
175952 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175953 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
175954 + if (!single_pred_p(bb)) {
175955 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
175956 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175957 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
175958 + }
175959 +
175960 + // enumarate all local variables and forcibly initialize our targets
175961 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
175962 + tree type = TREE_TYPE(var);
175963 +
175964 + gcc_assert(DECL_P(var));
175965 + if (!auto_var_in_fn_p(var, current_function_decl))
175966 + continue;
175967 +
175968 + // only care about structure types
175969 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
175970 + continue;
175971 +
175972 + // if the type is of interest, examine the variable
175973 + if (TYPE_USERSPACE(type))
175974 + initialize(var);
175975 + }
175976 +
175977 + return ret;
175978 +}
175979 +
175980 +#if BUILDING_GCC_VERSION >= 4009
175981 +namespace {
175982 +static const struct pass_data structleak_pass_data = {
175983 +#else
175984 +static struct gimple_opt_pass structleak_pass = {
175985 + .pass = {
175986 +#endif
175987 + .type = GIMPLE_PASS,
175988 + .name = "structleak",
175989 +#if BUILDING_GCC_VERSION >= 4008
175990 + .optinfo_flags = OPTGROUP_NONE,
175991 +#endif
175992 +#if BUILDING_GCC_VERSION >= 5000
175993 +#elif BUILDING_GCC_VERSION == 4009
175994 + .has_gate = false,
175995 + .has_execute = true,
175996 +#else
175997 + .gate = NULL,
175998 + .execute = handle_function,
175999 + .sub = NULL,
176000 + .next = NULL,
176001 + .static_pass_number = 0,
176002 +#endif
176003 + .tv_id = TV_NONE,
176004 + .properties_required = PROP_cfg,
176005 + .properties_provided = 0,
176006 + .properties_destroyed = 0,
176007 + .todo_flags_start = 0,
176008 + .todo_flags_finish = TODO_verify_il | TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow
176009 +#if BUILDING_GCC_VERSION < 4009
176010 + }
176011 +#endif
176012 +};
176013 +
176014 +#if BUILDING_GCC_VERSION >= 4009
176015 +class structleak_pass : public gimple_opt_pass {
176016 +public:
176017 + structleak_pass() : gimple_opt_pass(structleak_pass_data, g) {}
176018 +#if BUILDING_GCC_VERSION >= 5000
176019 + virtual unsigned int execute(function *) { return handle_function(); }
176020 +#else
176021 + unsigned int execute() { return handle_function(); }
176022 +#endif
176023 +};
176024 +}
176025 +
176026 +static opt_pass *make_structleak_pass(void)
176027 +{
176028 + return new structleak_pass();
176029 +}
176030 +#else
176031 +static struct opt_pass *make_structleak_pass(void)
176032 +{
176033 + return &structleak_pass.pass;
176034 +}
176035 +#endif
176036 +
176037 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
176038 +{
176039 + int i;
176040 + const char * const plugin_name = plugin_info->base_name;
176041 + const int argc = plugin_info->argc;
176042 + const struct plugin_argument * const argv = plugin_info->argv;
176043 + bool enable = true;
176044 + struct register_pass_info structleak_pass_info;
176045 +
176046 + structleak_pass_info.pass = make_structleak_pass();
176047 + structleak_pass_info.reference_pass_name = "ssa";
176048 + structleak_pass_info.ref_pass_instance_number = 1;
176049 + structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
176050 +
176051 + if (!plugin_default_version_check(version, &gcc_version)) {
176052 + error(G_("incompatible gcc/plugin versions"));
176053 + return 1;
176054 + }
176055 +
176056 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
176057 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
176058 + enable = false;
176059 + }
176060 +
176061 + for (i = 0; i < argc; ++i) {
176062 + if (!strcmp(argv[i].key, "disable")) {
176063 + enable = false;
176064 + continue;
176065 + }
176066 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
176067 + }
176068 +
176069 + register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info);
176070 + if (enable) {
176071 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info);
176072 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
176073 + }
176074 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
176075 +
176076 + return 0;
176077 +}
176078 diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
176079 index 9098083..18f0454 100644
176080 --- a/tools/include/linux/compiler.h
176081 +++ b/tools/include/linux/compiler.h
176082 @@ -39,6 +39,14 @@
176083 # define unlikely(x) __builtin_expect(!!(x), 0)
176084 #endif
176085
176086 +#ifndef __size_overflow
176087 +# define __size_overflow(...)
176088 +#endif
176089 +
176090 +#ifndef __intentional_overflow
176091 +# define __intentional_overflow(...)
176092 +#endif
176093 +
176094 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
176095
176096 #include <linux/types.h>
176097 diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
176098 index fe1b02c..a5eae4a 100644
176099 --- a/tools/lib/api/Makefile
176100 +++ b/tools/lib/api/Makefile
176101 @@ -16,7 +16,7 @@ MAKEFLAGS += --no-print-directory
176102 LIBFILE = $(OUTPUT)libapi.a
176103
176104 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
176105 -CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
176106 +CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
176107 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
176108
176109 RM = rm -f
176110 diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
176111 index 3a3a0f1..6cf679d 100644
176112 --- a/tools/perf/util/include/asm/alternative-asm.h
176113 +++ b/tools/perf/util/include/asm/alternative-asm.h
176114 @@ -6,4 +6,7 @@
176115 #define altinstruction_entry #
176116 #define ALTERNATIVE_2 #
176117
176118 + .macro pax_force_retaddr rip=0, reload=0
176119 + .endm
176120 +
176121 #endif
176122 diff --git a/tools/virtio/linux/uaccess.h b/tools/virtio/linux/uaccess.h
176123 index 0a578fe..b81f62d 100644
176124 --- a/tools/virtio/linux/uaccess.h
176125 +++ b/tools/virtio/linux/uaccess.h
176126 @@ -13,7 +13,7 @@ static inline void __chk_user_ptr(const volatile void *p, size_t size)
176127 ({ \
176128 typeof(ptr) __pu_ptr = (ptr); \
176129 __chk_user_ptr(__pu_ptr, sizeof(*__pu_ptr)); \
176130 - ACCESS_ONCE(*(__pu_ptr)) = x; \
176131 + ACCESS_ONCE_RW(*(__pu_ptr)) = x; \
176132 0; \
176133 })
176134
176135 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
176136 index 8db1d93..3233dee 100644
176137 --- a/virt/kvm/kvm_main.c
176138 +++ b/virt/kvm/kvm_main.c
176139 @@ -90,12 +90,17 @@ LIST_HEAD(vm_list);
176140
176141 static cpumask_var_t cpus_hardware_enabled;
176142 static int kvm_usage_count;
176143 -static atomic_t hardware_enable_failed;
176144 +static atomic_unchecked_t hardware_enable_failed;
176145
176146 struct kmem_cache *kvm_vcpu_cache;
176147 EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
176148
176149 -static __read_mostly struct preempt_ops kvm_preempt_ops;
176150 +static void kvm_sched_in(struct preempt_notifier *pn, int cpu);
176151 +static void kvm_sched_out(struct preempt_notifier *pn, struct task_struct *next);
176152 +static struct preempt_ops kvm_preempt_ops = {
176153 + .sched_in = kvm_sched_in,
176154 + .sched_out = kvm_sched_out,
176155 +};
176156
176157 struct dentry *kvm_debugfs_dir;
176158 EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
176159 @@ -839,7 +844,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
176160 /* We can read the guest memory with __xxx_user() later on. */
176161 if ((id < KVM_USER_MEM_SLOTS) &&
176162 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
176163 - !access_ok(VERIFY_WRITE,
176164 + !access_ok_noprefault(VERIFY_WRITE,
176165 (void __user *)(unsigned long)mem->userspace_addr,
176166 mem->memory_size)))
176167 goto out;
176168 @@ -1894,9 +1899,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
176169
176170 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
176171 {
176172 - const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
176173 + int r;
176174 + unsigned long addr;
176175
176176 - return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
176177 + addr = gfn_to_hva(kvm, gfn);
176178 + if (kvm_is_error_hva(addr))
176179 + return -EFAULT;
176180 + r = __clear_user((void __user *)addr + offset, len);
176181 + if (r)
176182 + return -EFAULT;
176183 + mark_page_dirty(kvm, gfn);
176184 + return 0;
176185 }
176186 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
176187
176188 @@ -2227,7 +2240,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
176189 return 0;
176190 }
176191
176192 -static struct file_operations kvm_vcpu_fops = {
176193 +static file_operations_no_const kvm_vcpu_fops __read_only = {
176194 .release = kvm_vcpu_release,
176195 .unlocked_ioctl = kvm_vcpu_ioctl,
176196 #ifdef CONFIG_KVM_COMPAT
176197 @@ -2942,7 +2955,7 @@ out:
176198 }
176199 #endif
176200
176201 -static struct file_operations kvm_vm_fops = {
176202 +static file_operations_no_const kvm_vm_fops __read_only = {
176203 .release = kvm_vm_release,
176204 .unlocked_ioctl = kvm_vm_ioctl,
176205 #ifdef CONFIG_KVM_COMPAT
176206 @@ -3013,7 +3026,7 @@ out:
176207 return r;
176208 }
176209
176210 -static struct file_operations kvm_chardev_ops = {
176211 +static file_operations_no_const kvm_chardev_ops __read_only = {
176212 .unlocked_ioctl = kvm_dev_ioctl,
176213 .compat_ioctl = kvm_dev_ioctl,
176214 .llseek = noop_llseek,
176215 @@ -3039,7 +3052,7 @@ static void hardware_enable_nolock(void *junk)
176216
176217 if (r) {
176218 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
176219 - atomic_inc(&hardware_enable_failed);
176220 + atomic_inc_unchecked(&hardware_enable_failed);
176221 pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
176222 }
176223 }
176224 @@ -3094,10 +3107,10 @@ static int hardware_enable_all(void)
176225
176226 kvm_usage_count++;
176227 if (kvm_usage_count == 1) {
176228 - atomic_set(&hardware_enable_failed, 0);
176229 + atomic_set_unchecked(&hardware_enable_failed, 0);
176230 on_each_cpu(hardware_enable_nolock, NULL, 1);
176231
176232 - if (atomic_read(&hardware_enable_failed)) {
176233 + if (atomic_read_unchecked(&hardware_enable_failed)) {
176234 hardware_disable_all_nolock();
176235 r = -EBUSY;
176236 }
176237 @@ -3561,7 +3574,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
176238 if (!vcpu_align)
176239 vcpu_align = __alignof__(struct kvm_vcpu);
176240 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
176241 - 0, NULL);
176242 + SLAB_USERCOPY, NULL);
176243 if (!kvm_vcpu_cache) {
176244 r = -ENOMEM;
176245 goto out_free_3;
176246 @@ -3571,9 +3584,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
176247 if (r)
176248 goto out_free;
176249
176250 + pax_open_kernel();
176251 kvm_chardev_ops.owner = module;
176252 kvm_vm_fops.owner = module;
176253 kvm_vcpu_fops.owner = module;
176254 + pax_close_kernel();
176255
176256 r = misc_register(&kvm_dev);
176257 if (r) {
176258 @@ -3583,9 +3598,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
176259
176260 register_syscore_ops(&kvm_syscore_ops);
176261
176262 - kvm_preempt_ops.sched_in = kvm_sched_in;
176263 - kvm_preempt_ops.sched_out = kvm_sched_out;
176264 -
176265 r = kvm_init_debug();
176266 if (r) {
176267 pr_err("kvm: create debugfs files failed\n");